Разредност

от Уикипедия, свободната енциклопедия
Тази статия е за понятието в компютърната терминология. За числовите разреди вижте Бройна система.

Разредност (на английски: size, width) в компютърната терминология е параметър с дименсия [бит] или [разред] за количество информация, което се обменя по информационна шина за единица време, или което се съхранява в регистър или което се обработва в рамките на една машинна инструкция. Tермините „-разредни“ и „-битови“ са взаимно заменяеми. Разредността на информационните единици, използвани в съвременните компютри – байт (8-бита), полу-дума (16-бита), дума (32-бита) и двойна дума (64-бита) и тяхното разположение в паметта на точни адресни граници са дефинирани в IBM System 360. ([1] – стр. 8)

Дефиниции[редактиране | редактиране на кода]

Информационна единица (на английски: data unit) е единица за измерване на количество информация. Измерването на количеството информация е предложено от Ralph Hartley през 1928 г.[2] като част от основния принцип за съхранение на информация, според който информацията, която може да се съхрани в една система, е пропорционална на logb N, където b е основата на бройната система, а N е броят на състоянията на системата. Когато информацията е кодирана в десетична бройна система (b = 10), (decimal digit – dit) с десет състояния от 0 до 9, десетичната цифра е единицата за измерване на информация. Ако се премине от бройна система с основа b към бройна система с основа c, този преход може да се представи като logc N=logc b.logb N.[3] Следователно 1 дит = log2 10 бита. Единицата за измерване на количество информация, кодирана в троична бройна система (b = 3) е трит (trinary digit), 1 трит = log2 10 бита. Числото е (natural digit) се използва като база за спецификация на функции, които изпълняват трансформации на Тюринг[4], [5]т.е. b = e, и дефинира информационната единица нит (1 нит = log2 е бита). Информационните единици дит, трит и нит имат само теоретична стойност.

  • бит – двоична цифра (binary digit) с две състояния 0 и 1, която се използва за измерване на количество двоично кодирана информация. Устройство с две стабилни състояния (реле, тригер) може да съхранява един бит информация.[3] Терминът „бит“ е предложен от John Tuckey по аналогия на информационната единица за десетично кодирана информация „дит“ (decimal digit).[3]
  • байт – информационна единица, с която се кодира един текстов символ. Дълго време се е спорело за разредността на байта – 4-, 6- или 8 бита. Клод Шанън дефинира цифровия канал, като използва 5 бита за кодиране на символ.[3] Терминът байт (byte) като множество от 8-бита е дефиниран от Werner Buchholz през 1956 г. по време на началната фаза на разработката на IBM 7030 Stretch.[6] 1 байт кодира символ с 256 състояния.
  • полу-дума (half word) – в термините на IBM System 360, полу-думата е информационна единица с разредност, равна на половината от разредността на процесора на компютъра т.е. думата е 16-разредна или половин машинна дума. В термините на микропроцесорните системи полу-думата не се използва.
  • дума – в термините на IBM System 360, думата е информационна единица с разредност, равна на разредността на процесора на компютъра, която процесорът може да адресира и обменя с паметта за един цикъл на достъп т.е. думата е 32-разредна машинна дума. Разредността на машинната дума е променлива в зависимост от производителя и съдържа код за изпълнение (инструкция или част от инструкция) или данни за обработка. В термините на микропроцесорните системи (след TMS 9900) думата е информационна единица с разредност, фиксирана на 16-разреда, равна на 2 байта (вж. раздел „Разредност на операциите“).
  • двойна дума (doubleword) – в термините на IBM System 360, двойната дума е 64-разредна информационна единица, равна на 2 машинни думи. Двойната дума се използва в аритметичните операции с плаваща запетая. В термините на микропроцесорните системи двойната дума е информационна единица с разредност, фиксирана на 32-разреда, равна на 4 байта.
  • четворна дума (quadword) – в термините на микропроцесорните системи, четворната дума е информационна единица с разредност, фиксирана на 64-разреда, равна на 8 байта (4 думи).([7] – стр. 4 – 3)
  • осморна дума (octaword) – в термините на микропроцесорните системи, осморната дума е информационна единица с разредност, фиксирана на 128-разреда, равна на 16 байта (8 думи).
  • адресна граница(address boundary) – адрес на паметта, кратен на разредността на информационната единица, изразена в брой байтове, до която процесорът изпълнява достъп. С други думи, думата (16-бита, 2 байта) се разполага в паметта на думова адресна граница (адрес кратен на 2), двойната думата (32-бита, 4 байта) се разполага на двойно-думова адресна граница (адрес кратен на 4), четворната думата (64-бита, 8 байта) – на четворно-думова адресна граница (адрес кратен на 8). Байтът, като отделна информационна единица, се разполага на произволен адрес.

Разредност на инструкциите[редактиране | редактиране на кода]

Когато става въпрос за инструкции трябва да се прави разлика между разредност (size) и дължина на инструкцията (length). Дължина на инструкцията е броят байтове, необходими за кодиране на инструкцията в съответствие с използвания формат на инструкциите. Разредността на инструкцията се определя от разредността на операндите, които инструкцията обработва.

Разредност на операциите[редактиране | редактиране на кода]

Разпределение на байтове и думи при TMS9900

В IBM System 360/50 думата е най-малката адресируема единица и достъпа до паметта е на думова адресна граница. Байтовият обмен с входно-изходните устройства, свързани към мултиплексорен канал, се буферира и при запис думите се преобразуват в последователност от байтове, а при четене – последователността от байтове в думи. Подобен начин на работа се запазва и в първия 16-разреден микропроцесор TMS 9900 на Texas Instruments (1976 г.) където разредността се управлява на ниво инструкция, но достъпът до паметта винаги е 16-разреден на четен адрес (четна адресна граница). Инструкциите с 8-разредни операнди избират четен или нечетен байт от прочетената дума. При 8-разреден запис достъпът до паметта е 16-разреден, при което байта се допълва с нули до 16-разредна дума (padding). Всички устройства в микропроцесорната система се управляват като 16-разредни, независимо от тяхната физическа разредност (8- или 16-разряда).[8]

В 16-разредните микропроцесори от първо поколение (i8086 и MC68000) се въвеждат байтови операции за достъп до паметта т.е. процесорът има достъп за четене или запис само до част от „машинната дума“ без допълване с нули. Това намалява фрагментирането на паметта и предефинира информационните единици. В микропроцесорните системи термините полу-дума и машинна дума не се използват. Въвеждането на байтови операции в 16-разредните микропроцесорни системи превръщат байта в най-малката адресируема информационна единица.

Разредност на информационната шина (bus size)[редактиране | редактиране на кода]

Разредността на информационната шина е мощността на нареденото множество от разреди на информационната шина и определя максималното количеството информация, което процесорът може да обмени с ресурсите на системата (памет, буфери, входно-изходни устройства и т.н.) за единица време (времето за изпълнение на един цикъл за четене или запис). Например, една 8-разредна информационна шина позволява обмен на 8-бита информация за един цикъл на достъп до информационната шина, една 16-разредна информационна шина – 8- или 16-бита информация, една 32-разредна информационна шина – 8-, 16- или 32-бита информация. 8-разредните инструкции могат да обработват 8-битови операнди, 16-разредните инструкции – 16-битови операнди и т.н.

Управление на разредността на информационната шина[редактиране | редактиране на кода]

Разпределение на байтове и думи в PDP-11

Управлението на разредността на информационната шина започва с въвеждането на байтовите операции в асинхронната 16-разредна информационна шина Unibus[9] използвана в PDP-11 миникомпютрите на DEC (1970 г.)[notes 1]. Информационната шина се разделя на 8-разредни ленти (lanes). Адресът, който процесорът генерира е пълен и при изпълнение на байтова операция избира четна или нечетна 8-разредна лента (lane) на шината (bus).

Стандартна организация на информационната шина[редактиране | редактиране на кода]

При микропроцесорните системи със стандартна организация (MC68000, i80286, NS32032) информационна шина се разделя на 8-разредни ленти, независими една от друга, до които процесорът се обръща поотделно. В 16-разредните микропроцесорни системи 8-разредните ленти са младша (lower)и старша (upper).[notes 2] Младшата 8-разредна лента се използва при обмен на четен адрес, старшата – на нечетен адрес. Ресурсите на 16-разредните устройства, включени към 16-разредната информационна шина са достъпни на четен и нечетен адрес, адресното пространство е последователно и нефрагментирано. Ресурсите на 8-разредните устройства обаче, включени към младшата 8-разредна лента на информационната шина са достъпни само на четен адрес, ресурсите на 8-разредните устройства, включени към старшата 8-разредна лента – на нечетен адрес. С други думи, адресните пространства на 8-разредните устройства са фрагментирани.

Динамична организация на информационната шина[редактиране | редактиране на кода]

По принцип, микропроцесорните системи работят в два режима – програмен и режим на директен достъп.

Програмен режим[редактиране | редактиране на кода]

В програмен режим процесорът управлява достъпа до паметта и останалите ресурси на системата. За да се премахне фрагментацията на адресното пространство на 8-разредните устройства, свързани към 8-разредните ленти на 16-разредната информационна шина през 1981 г. Craig Kinnie от Intel предлага принципа на прехвърлящия буфер (swap buffer).[10] Този принцип на управление на разредността на шината предполага, че 8-разредните устройства да свързани само към младшата 8-разредна лента на 16-разредната информационна шина. Това нарушава баланса на шината и младшата 8-разредна лента на 16-разредната информационна шина е по-натоварена. На старшата 8-разредна лента се обменят само нечетни байтове с 16-разредни устройства.

Динамично управление на разредността на шината (dynamic bus sizing)[редактиране | редактиране на кода]
Разпределение на байтове и думи при 16-разредни системи с динамично управление на разредността на шината

В системите с динамично управление на разредността на шината, разредността на обмена се определя от разредността на операцията и разредността на устройството. Този принцип позволява по-високо разредни операции да бъдат изпълнявани с по-ниско разредни устройства и въвежда слоеве в системното адресно пространство. Слоевете се образуват в зависимост от разредността на устройствата включени към информационната шина. Динамично управление на разредността на шината, приложено към 16-разредна система (напр. Изот 1036C) превръща 8-разредните устройства в псевдо 16-разредни. Това подобрява производителността на системата. Вместо процесорът да изпълни две 8-разредни инструкции за обмен с 8-разредните устройства, може да изпълни една 16-разредна операция за обмен на дума с 8-разредно устройство като спестява времето за изпълнение на втората инструкция. Приложено към 32-разредна система (напр. MC68020 [11]), динамичното управление на разредността на шината превръща 8-разредните и 16-разредните устройства в псевдо 32-разредни. i80386 – Pentium, SBus (ACK[2 – 0])[12]

Ограничено динамично управление на разредността на шината[редактиране | редактиране на кода]

По дефиниция, динамичното управление на разредността на шината е метод за свързване на високо-разредни процесори с по-ниско разредни устройства и се прилага от страната на процесора.[13] По този начин методът е валиден за всички устройства в системата. Има два начина за ограничаване на динамичното управление на разредността на шината – ограничено за област от адресното пространство (Olivetti М-21/24) или ограничено до определена разредност (i386/486).

Режим на директен достъп[редактиране | редактиране на кода]

Режимът за директен достъп е разработен през 1956 г. от IBM за компютъра IBM SAGE (Semi-Automatic Ground Environment) като функция на входно-изходния канал. [14] Тази функция позволява на канала директно да записва и чете в/от паметта, без да ангажира за това процесора. Достъпът до паметта се арбитрира.

В IBM PC/XT и IBM PC/АT и всички ISA/EISA съвместими компютри разредността на обмена в режим на директен достъп е фиксирана и не подлежи на програмиране. При DMA каналите с фиксирана разредност информационният обмен винаги е на точна адресна граница. В IBM PC/XT разредността на обмена в режим на директен достъп е фиксирана, 8-разреда[15]. DMA каналите обменят байтове на произволен адрес. В IBM PC/АT разредността на обмена в режим на директен достъп е фиксирана, 8-разреда или 16-разредна т.е. каналите 0 – 3 са 8-разредни, каналите 4 – 7 са 16-разредни. [16][17] 16-разредните DMA канали обменят само думи (16-бита) на четен адрес.

Статично управление на разредността на обмена[редактиране | редактиране на кода]

Повечето 16-, 32-, 64-разредни контролери за директен достъп използват статично управление на разредността на обмена. При статичното управление на разредността на обмена разредността на каналите е програмируема преди началото на обмена и остава фиксирана по време на обмена. Когато един канал е програмиран да бъде 32-разреден той изпълнява изпълнява само 32-разресни операции и обменя само двойни думи (държината на блока от данни е кратна на 4), когато е програмиран да бъде 16-разреден той изпълнява изпълнява само 16-разресни операции и обменя само думи (държината на блока от данни е кратна на 2), когато е програмиран да бъде 8-разреден той изпълнява изпълнява само 8-разредни операции и обменя само байтове (дължината на блока от данни е произволна). Такива контролери са MC68440/450[18], SAB 82258A[19], Harris 82C237[20].

Динамично управление на разредността на обмена (dynamic DMA transfer sizing)[редактиране | редактиране на кода]

За първи път динамичен принцип за управление на разредност в режим на директен достъп се прилага в модификацията на българския 16-разреден персонален компютър ИЗОТ 1036С през 1986 – 1987 г. [21] Този принцип е наречен динамично управление на разредността на обмена в режим на директен достъп (dynamic DMA transfer sizing) защото между две подчинени устройства с различна разредност се договаря разредност на обмена, а не разредност на шината.

По принцип, в режим на директен достъп до паметта (DMA) има два типа обмен – едно-адресен и двуадресен обмен. Едно-адресният обмен в режим на директен достъп е обмен от тип точка-до-точка, между две подчинени устройства (slave devices) под управление на контролера за директен достъп и е известен в техническата литература още като bypass или fly-by DMA обмен. Данните се обменят между подчинените устройства без да минават през междинен буфер в контролера за директен достъп. Цикълът за достъп е комбиниран и едновременно изпълнява четене от източника (памет или входно-изходно устройство) и запис в получателя (входно-изходно устройство или памет). Едно-адресният обмен в режим на директен достъп е най-бързият обмен на данни в една компютърна система.

Двуадресният обмен в режим на директен достъп е обмен от тип точка-до-точка, между управляващо устройство (master device) и подчинено устройство (slave device) и е известен в техническата литература още като pass-through DMA обмен. Данните се обменят между подчинените устройства като минават през междинен буфер в контролера за директен достъп. Информационният обмен изисква два цикъла за обмен – цикъл за четене от източника (памет или входно-изходно устройство) и запис в междинния буфер на DMA котролера и цикъл за четене от междинния буфер на DMA котролера и запис в получателя (входно-изходно устройство или памет). Поради това двуадресният обмен в режим на директен достъп е бавен. Двуадресният обмен в режим на директен достъп е еквивалентен на изпълнение на отделни операции четене и запис от процесора като управляващо устройство.

Принципът за динамично управление на разредността на обмена в режим на директен достъп (dynamic DMA transfer sizing) се прилага към едно-адресен DMA обмен. В началото на всеки цикъл на обмен контролерът за директен достъп и двете подчинени устройства (източник и получател) договарят разредността на обмена. В зависимост от разредността на адреса и броя на байтовете, които остават да се обменят контролерът за директен достъп дефинира максималната разрешена разредност на операцията за достъп. Избраните подчинени устройства (източник и получател) отговарят с дефиниране на максимална разредност на данни които могат да обслужат (шината поддържа два конфигурационни интерфейса за дефиниране на разредност). Въз основа на това договаряне контролерът за директен достъп изпълнява едно-адресен DMA обмен с договорена разредност.

През 1988 г. IBM прилага принципа за динамично управление на разредността на шината в режим на директен достъп към MicroChannel архитектурата на IBM PS2.([22] – стр.50 – 60) Динамично управление на разредността на шината може да се приложи само към двуадресен обмен в режим на директен достъп. [23] По-късно, през 1999 г., IBM приложи динамично управление на разредността на шината в режим на директен достъп и в спецификацията на IBM OPB шината на CoreConnect архитектурата.[24] – стр.53)

Разредност на входно-изходното устройство[редактиране | редактиране на кода]

Човек работи със символи – буквено-цифрови, графични и т.н. В цифровите системи, в това число и в компютрите, тези символи са двоично кодирани в един или повече байтове. Клод Шанон дефинира цифровия канал за 5 или повече разредни символи. През 1957 г. IBM въвежда в своите машини като най-малката адресируема единица байта (8 разреда). До 1963 г. всяка фирма кодира символите по свой начин. През 1963 г. се възприема ASCII таблицата от 8-разредни символи. През 1988 г. се приема Unicode таблицата от 16-разредни символи. Графичните изображения могат да се разглеждат като набор от пиксели. Един пиксел се кодира в 8 или 12 бита т.е. в един или два байта. Комуникациите са процес, който създава и обменя информационен поток, и следователно той е символно ориентиран. В първите години входно-изходните устройства са 8-разредни. В IBM 360 разликата между разредността на машинната дума и входно-изходното устройство се управлява от селекторните канали. В мини-машините и микромашините процесорът има непосредствен достъп до входно-изходните устройства без помощта на каквито и да е канали.

Условия за управление на разредността се появяват при прехвърляне на блок от данни, например комуникационен пакет, от входно-изходното устройство в паметта, когато трябва да бъдат изпълнени операции с разредност, по-малка от разредността на информационната шина. Например при обмен между 16-разредна памет и 8-разредно устройство или между 32-разредна памет и 8-/16-разредно устройство. Условия за управление на разредността съществуват дори тогава, когато всички устройства в системата са с еднаква разредност. Например, в една 32-разредна система, условия за управление на разредността се появяват, когато в началото или в края на прехвърлянето на пакета от входно-изходното устройство в паметта, трябва да бъдат изпълнени байтови или думови операции. Причината за това е разликата в разредността на информационните единици на комуникационния процес и на компютърната архитектура, която го обработва. Компютърните архитектури могат да бъдат 16-, 32-, 64- и т.н. разредни архитектури, в които основната информационна единица е съответно дума (16-разреда), двойна дума (32-разреда), четворна дума (64-разреда) и т.н., а байтът като информационна единица е 1/2 дума, 1/4 двойна дума, 1/8 четворна дума. Колкото повече символи обработва компютърната система, толкова производителността ѝ е по-висока.

Входно-изходното устройство със стандартна организация[редактиране | редактиране на кода]

В програмен режим, процесорът проверява колко байта са останали в буфера на входно-изходното устройство и в зависимост от това изпълнява операция на четене или запис с определена разредност. В режим на директен достъп, контролерът за директен достъп няма логическата мощност на процесора и разредността на информационния обмен зависи от разредността на канала за директен достъп. Разредността на канала може да бъде програмирана предварително и определя разредността на операцията за обмен и дисциплината за управление на операциите, т.е. начина на модификация на системния адрес и брояча на байтовете (модификация с 1 при 8-разреден канал, с 2 при 16-пазреден канал, с 4 при 32-разреден канал и т.н.). В резултат на това, 16-разреден канал за директен достъп обменя само думи (16-разреда), разположени на четен системен адрес (кратен на 2), 32-разреден канал за директен достъп обменя само двойни думи (32-разреда), разположени на двойно четен системен адрес (кратен на 4). Този начин на фунциониране предполага, че при увеличаване на разредността (16-/32-разреда и т.н.) входно-изходните устройства удовлетворяват следните изисквания:

  • входно-изходното устройство разпознава условията за начало и край на блока от данни;
  • блокът от данни се прехвърля в паметта само когато е изцяло готов с непрекъснат обмен, т.е. буферът на входно-изходното устройство е достатъчно голям за да приеме целия блок от данни и обменът с паметта е непрекъснат; и
  • блокът не е произволен брой байтове а краен брой думи (кратен на 2) или двойни думи (кратен на 4).

Тези изисквания ограничават възможностите за увеличаване на разредността на входно-изходните устройства до комуникационни устройства с комутация на пакетите (например Ethernet контролер), дискови контролери и видео контролери. Например, дисковите контролери обменят цял сектор от 512 байта.

При комутация на пакетите, пакетите са разделени с делимитери (символи с уникален код) и комуникационните входно-изходни устройства с комутация на пакетите ясно разпознават начало и край на пакет. Пакетите, които се обменят с паметта, могат да бъдат с произволна дължина, и когато тя не е кратна на 2 (за 16-разредни устройства) или 4 (за 32-разредни устройства), пакетът се допълва с нули (padding). Това пречи на уплътняването на паметта.

Управление на разредността на входно-изходното устройство (Dynamic IO device sizing)[редактиране | редактиране на кода]

Входно-изходни устройства, в които комуникацията е поток от символи, без да са организирани в пакети, не изпълняват изискванията на каналите за директен достъп с фиксирана и програмируема разредност и при тях разредността не може да бъде увеличена на 16 или 32 бита. Такива входно-изходни устройства са RS232 контролер, Centronix принтер контролер, RS485 контролер и т.н. Например, в комуникация по RS232 интерфейс всеки символ има старт и стоп бит, но за контролера комуникационният поток е непрекъснат поток от символи и няма представа къде започва и къде свършва едно съобщение. Ако RS232 контролерът е 16-разреден, съшествува ситуация, при която ако в приемния буфер има един символ, той няма да бъде записан в паметта, докато не се приеме следващия и двата символа не образуват дума. Тази ситуация създава потенциал за непрекъсната грешка. Използването на 8-разредни входно-изходни устройства намалява производителността на системата.

Принципът за управление на разредността на входно-изходното устройство (dynamic IO device sizing)[25] е приложен към модификацията на българския 16-разреден персонален компютър ИЗОТ 1036С и работи заедно с принципа за управление на разредността на обмена в режим на директен достъп (dynamic DMA transfer sizing). Комбинацията на тези два динамични принципа за обмен премахва ограниченията, които каналите за директен достъп с фиксирана и програмируема разредност налагат върху начина на функциониране на входно-изходните устройства. Когато в приемния буфер на едно 16-разредно входно-изходно устройство остане един символ, устройството започва да отмерва таймаут (обикновено периода за приемане на един символ). Когато таймаута изтече и не е приет втори символ, устройството генерира заявка за обслужване в директен достъп и декларира разредност 8-бита, т.е. предизвиква предоговаряне на разредноста. Контролерът за директен достъп с динамично управление на разредността на обмена разпознава променената разредност на входно-изходното устройство и модифицира системния адрес и брояча на байтовете на канала в съответствие с предоговорената разредност на обмена.

Този принцип на работа на двойката канал за директен достъп/входно-изходно устройство премахва всички ограничения, наложени от каналите за директен достъп с фиксирана и програмируема разредност и позволява:

  • обмена в директен достъп с 16-/32-разредни устройства да се изпълнява на произволен адрес, не само на точни адресни граници;
  • произволна дължина на блока от данни в байтове, без използване на допълване с нули (padding) – това подобрява плътността на паметта;
  • повишаване на разредността на всички устройства в системата независимо от формата на обмена и протокола, не само на Ethernet контролери (комуникационни устройства с комутация на пакетите), дискови контролери и видео контролери; и
  • пректиране на хомогенна по разредност 16-/32-разредна система и повишаване на нейната производителност като цяло.

Принципът за управление на разредността на входно-изходното устройство (dynamic IO device sizing) заедно с принципа за управление на разредността на обмена в режим на директен достъп (dynamic DMA transfer sizing) позволява във всеки един момент разредността на системата да бъде равна на разредността на количеството информация (броя на символите), която входно-изходното устройство може да обработи. С други думи, премахва разликата между разредността на системата и разредността на информационния поток – каквато е разредността на информационния поток, такава е и разредността на системата.

Унификация на входно-изходните устройства[редактиране | редактиране на кода]

Дефинирането на USB връзката през 1995 г. въведе комутация на пакетите в комуникацията с всички периферни устройства (клавиатура, принтери, външни дискове и т.н.) и унифицира входно-изходните устройства (контролери). Първоначално, до версия 3.0, USB връзката използва NRZI кодиране с вмъкване на нули (bit stuffing), т.е. комуникацията по USB е символно ориентирана и пакетът е последователност от произволен брой байтове.

С увеличаване на скоростта на комуникациите, в гигабит Ethernet (1999 г.) се въвежда диференциална връзка и DC балансирано кодиране 8b/10b за да се намали съотношението шум/сигнал. [26]Този вид кодиране е възприет в USB версия 3.0 (2008 г.). При кодиране 8b/10b, 8 бита се кодират в 10 бита, т.е. служебната информация е 20% (2 бита на всеки 10). И тук комуникацията е символно ориентирана и пакетът е последователност от байтове.

Това означава, че каналите за директен достъп до паметта с програмируема разредност допълват с нули (padding) блоковете от данни, които не са кратни на 2 (при 16-разредна система), 4 (при 32-разредна система), 8 (при 64-разредна система), но допълването е ограничено до комуникацията по информационната шина на системата и не се появява на комуникационната линия.

Кодиране 64b/66b[редактиране | редактиране на кода]

През 2000 г. Agilent предлага кодиране 64b/66b за 10 гигабит Ethernet с цел намаляване на служебната информация (overhead) до 3,03%.[27] При кодиране 64b/66b всеки 64 бита (8 байта) се кодират в 66 бита, т.е. на всеки 64 бита има 2 бита служебна информация. Това означава, че дължината на комуникационния пакет не е произволен брой байтове, а кратна на 8. Когато дължината на пакета не е кратна на 8, се прави допълване с нули. Това допълнение се кодира и се появява на линията. Когато дължината на пакета не е кратна на 8, допълнението може да се разглежда като част от служебната информация и увеличава нейния дял. Колкото е по-къс пакетът, толкова влиянието на допълнението с нули (padding) е по-голямо. С други думи, служебната информация може да се намали до минимум 3,03%, когато дължината на блока е кратна на 8.

Капсулирането на данни в блокове от 8, 16 или повече байта не е нова идея. Тя се прилага към реда на кеш паметта, а през 90-те години и към организацията на основната памет (RAMBUS). Доказано е, че дължината на реда на кеш паметта не е универсална и зависи от пространствената локалност на приложението.[28], [29] При капсулирането на пакетите с кодиране 64b/66b и 128b/132b (PCI Express 4.0, USB 3.1) локалността е последователна т.е. всеки следващ байт гарантирано е част от пакета.

Разредност на паралелно-последователните шини[редактиране | редактиране на кода]

Паралелно-последователните шини са PCI Express, HyperTransport и QPI (QuickPath Interface). PCI Express се прилага за комуникация с входно-изходни устройства. HyperTransport и QPI (QuickPath Interface) се прилагат за комуникация между процесорите в много-процесорни системи.

Паралелно-последователните шини представляват двустранни мрежи (dual sided networks), наречени още interconnects. Този interconnect се състои от множество връзки от тип точка-до-точка, като управляващите устройства на шината са свързани от едната страна на двустранната мрежа, а подчинените от другата. Разредността на паралелно-последователните шини се определя от броя на лентите, които образуват връзката и може да бъде x1, x2, x4, x8, x12, x16 или x32. Разредността на връзката се договаря предварително и пакетите се обменят на части, наречени nibbles с разредност x1, x2, x4, x8, x12, x16 или x32.

Динамична модулация на разредността на връзката (Dynamic link width modulation)[редактиране | редактиране на кода]

QPI паралелно-последователната шина на Intel се състои от връзки, образувани от 20 ленти. Всяка лента е диференциална (плюс и минус). Всеки пакет е последоватевност от флитове (на английски: flit – flow control unit). Един флит е 80 бита и се състои от 4 фита (на английски: phit) от по 20 бита. Пакетите се обменят на части с разредност от 20 бита (1 фит).

За да се намали консумацията на шината, Intel въвежда принципа на динамична модулация на разредността (ширината) на връзката. Когато трафикът падне под определена граница, разредността на връзката се свива на половина (10 бита) или до 1/4 (5 бита).[30]

Бележки[редактиране | редактиране на кода]

  1. Unibus е изобретен от Gordon Bell и Harold McFarland (студент) през 1969 г. в Carnegie Mellon University.
  2. В компютърната техника има два формата за подреждане на информационните единици върху информационната шина – младши краен формат (little endian format) и старши краен формат (big endian format)

Източници[редактиране | редактиране на кода]

  1. IBM Corp., „IBM System/360 Principles of Operation“, A22-6821-0
  2. Hartley R.V. „Transmission of Information“, The Bell System Technical Journal, Vol.7, 1928
  3. а б в г Shannon C.E. „A Mathematical theory of Communication“, The Bell System Technical Journal, Vol.27, 1948
  4. Abramson N., „Information theory and coding“, McGraw-Hill, 1963
  5. Sanella D., Tarlecki A., Mind the gap! Abstract versus concrete models of specifications, Mathematical Foundations of Computer Science 1996, 21-st International simposium, MFCS'96, Cracow, Poland.
  6. Bonda M. „Fundamentals of information theory and Coding“, Springer, ISBN 978-3-642-20347-3, 2011
  7. DEC Corp., VAX11 780 Architecture Handbook, 1977
  8. Texas Instruments Inc., „TMS9900 Microprocessor Data Manual“ Dec. 1976
  9. DEC Corp. PDP-11 Unibus Design Description Архив на оригинала от 2016-03-04 в Wayback Machine., 1979.
  10. Intel Corp. „iAPX 86,88 User's Manual“, Application Note AP-28A „Intel Multibus interfacing“, A-183, 1981
  11. Motorola, „MC68020,MC68EC020 Microprocessors User's Manual“, M68020UM/AD, Rev. 2, 1992
  12. ISO/IEC 15205, IEEE Std. 1496 „Sbus – Chip and module interconnect bus“, IEEE Xplore, 2000
  13. worldwide.espacenet.com
  14. Astrahan M.M et al, „Data Processing Machine including program interrupt features“, US Pat. No. 3 319 230, filed Sept. 26, 1956, granted May 9, 1967
  15. IBM Corp. IBM Personal Computer XT – Technical Reference. No. 1502237, 1983.
  16. IBM Corp. Technical Reference, IBM Personal Computer Hardware Reference Library, No. 1502494, 1984.
  17. ISA DMA
  18. Motorola Semiconductors, MC68440 Dual Channel Direct Memory Access Controller Архив на оригинала от 2014-11-30 в Wayback Machine., 1984.
  19. Siemens, Advanced DMA Controiller SAB 82258A for 16-/32-bit Microcomputer Systems
  20. Harris Semiconductor, 82C237 CMOS High Performance Programmable DMA Controller. Март 1997.
  21. Барбутов В., „Устройство за динамично управление на разредността на обмена при директен достъп“, Български патентен офис, Авт. Св.47775 от 25.02.1988, /European Patent Office, GB2216304 (A)
  22. IBM Corp., „IBM Personal System/2 Hardware Interface Technical Manual“, Order No. 00F9809,1-st Edition, May 1988
  23. Amini N., et al. Dynamic Bus Sizing of DMA Transfer[неработеща препратка], United States Patent Office, US Pat. 5 548 786, filed: Apr. 6, 1994, granted: Aug. 20, 1996, IBM;
  24. IBM Corp., „On-Chip Peripheral Bus: Architecture Specification Version 2.1“, SA-14-2528-02, 2001;
  25. Барбутов В. „16-разредно устройство за приемане и предаване на данни“ заявка рег.№ 91528 от 21.03.1990, призната за авторско свидетелство с писмо № 91528/КЛ от 31.05.1990, спряно от публикация поради патентоване в чужбина
  26. Franazek P.A. et al, „Byte Oriented DC Balanced (0,4) 8b/10b Partitioned Block Transmission Code“, US patent 4 486 739 B1, filed Jun. 30, 1982, granted Dec. 4, 1984
  27. Walker R.C., „Decoding Method and Decoder for 64b/66b Coded Packetized Serial Data“, US patent 6 650 638 B1, filed Mar. 6, 2000, granted Nov. 18, 2003
  28. Veidenbaum V., „Adaptive Line Size Cache“, Technical Report ICS-99-55, Department of Information and Computer Science, University of California, Irvine, 1999
  29. Croxford D., Aldworth P.J., „Cache Memory“, US patent 7 822 926 B2, filed Apr. 16, 2007, granted Oct. 26, 2010
  30. Safranek R.J. et. al, „Dynamic Link Width Modulation“, Unite States Patent Office, US Pat. No. 8 027 358, filed Jun. 29, 2006, granted Sep. 27, 2011