Реч (архитектура рачунара)

Из Википедије, слободне енциклопедије
Бит
1 4 8 12 16 18 24 26 31 32 36 48 60 64 128 256 512
Апликација
16 32 64
Покретан зарез прецизности
×½ ×1 ×2 ×4
Покретан зарез децималне прецизности
32 64 128

У рачунарству, реч је термин за природне јединице података које користе одређени дизајн процесора. Реч је део податка фиксне величине који рукује као целина од стране скупа инструкција или хардвера процесора. Број бита  у речи (величина текста, ширина речи, или дужина речи) је битна карактеристика било ког специфичног дизајна процесора или архитектуре рачунара.

Величина речи огледа се у многим аспектима структуре и операције рачунара; већина регистара у процесору су обично величине речи и највећи део података који се могу пренети у и из радне меморије у једној операцији је реч у многим (не свим) архитектурама. Највећа могућа величина адресе, коришћена да означи локацију у меморији, обично је реч хардвера (овде ", хардвер реч" означава пуне величине природе речи процесора, за разлику од било које друге коришћене дефиниције).

Модерни процесори, укључујући уграђене системе, обично имају реч величине 8, 16, 24, 32, или 64 бита, док модерни, опште намене рачунари, обично користе 32 или 64 бита. Наменски дигитални процесори, као што су DSP-ови на пример, могу да користе и друге величине и много различитих величина које су коришћене у прошлости, укључујући 8, 9, 12, 18, 24, 36, 39, 40, 48, и 60 бита. Плоча је пример система са ранијом величином речи. Неколико најстаријих рачунара (и неки модерни такође) користи BCD пре него обичан бинарни систем, обично имају реч величине 10 или 12 децималних цифара, а неки рани децимални рачунари нису имали фиксну дужину речи уопште.

Величина речи се понекад може разликовати од очекиваног због компатибилности са ранијим рачунарима. Ако више компатибилне варијације или фамилија процесора деле заједничку архитектуру и сет инструкција али се разликују у својим величинама речи, њихова документација и софтвер могу постати нотациони комплекс за смештај разлике (види величину породице испод).

Коришћење речи[уреди]

У зависности од тога како је организован рачунар,јединице величине речи могу да се користе за:

Фиксни број тачака
Држачи за фиксну тачку, обично је то цео број, нумеричке вредности могу бити доступне у једној или у више различитих димензија, али једна од доступних величина ће скоро увек бити реч. Остале величине, ако их има, вероватно ће бити дељиве или фракције величине речи. Мање величине се обично користе само за ефикасну употребу меморије; када се учитају у процесор, њихове вредности обично иду у већу, реч величине држача.
Покретан број тачака
Држачи за покретан број тачака нумеричке вредности су обично или реч или више речи.
Адресе
Носиоци за меморијске адресе морају бити величине која је у стању да изрази потребан опсег вредности, али неће бити претерано велика, тако често величина користи је реч мада то може бити вишеструко или део величине речи.
Регистри
Регистри процесора су дизајнирани са величином погодном за врсту података које држе, нпр. целих бројева, флоут бројева тачака или адреса. Многе рачунарске архитектуре користе "опште наменске регистре" које могу да држе било који од више врста података, ови регистри морају бити такве величине која ће да држи највећи од врсте, историјски ово је величина речи архитектуре, иако све специјалне намене, веће, регистри имају додане да се баве новим типовима.
Пренос меморија-процесор
Када процесор чита из подсистема меморије у регистар или пише вредности регистра у меморију, количина пренетих података је често реч. У једноставним меморијским подсистемима, реч се преноси преко магистрале података меморије, која обично има ширину велеичине речи или пола речи. У меморијским подсистемима који користе кеш, трансфер величине речи је онај између процесора и првог нивоа кеша; на нижим нивоима хијерархије меморије већих трансфера (који су вишеструки величине речи) се обично користе.
Јединица резолуције адресе
У датој архитектури, узастопне адресе вредности одређују узастопне јединице меморије; ова јединица је јединица резолуције адресе. У већини рачунара, јединица је или карактер (нпр. бајт) или реч. (Неколико рачунара је користило резолуцију бита.) Ако је јединица реч, онда се већој количини меморије може приступити користећи адресу дате величине по цени додате сложености како би се приступило појединачним знаковима. С друге стране, ако је јединица бајт, онда поједини карактери могу адресирани (тј. изабрани током операције меморије).
Инструкције
Упутства машине су обично величине архитектуре речи , као што су RISC архитектуре, или вишеструка "чар" величине која је део тога. Ово је природан избор јер инструкције и подаци обично деле исти меморијски подсистем. У Харвард архитектури речи величине инструкција и података не морају бити повезане, као и упутства и подаци се чувају у различитим меморијама; на пример, процесор у 1ЕSS електронској телефонској централи имао је 37-битне инструкције и 23-битне речи података.

Избор величине речи[уреди]

Када је архитектура рачунара дизајнирана, избор величине речи је од суштинског значаја. Постоје разматрања дизајна којима се подстичу одређене величине група бит за одређене намене (нпр. адресе), и ова разматрања указују на различите величине за различите намене. Међутим, разматрања економије у дизајну снажно се залажу за једну величину, или веома мале величине везане за више њих или фракције (умножака) на примарну величину. Та пожељна величина постаје величина речи архитектуре.

Величина знакова је у прошлости (пре величине променљивих карактера кодирања) један од утицаја на јединици резолуције адреса и избор величине речи. Пре него што су средином 1960-их, ликови најчешће чувани у шест бита; ово је дозвољавало не више од 64 карактера, тако да су алфабетици били ограничени великим словима. Пошто је ефикасно у времену и простору да имају величину речи и да буду вишеструке величине карактера, величине речи у овом периоду су обично дељиве са 6 бита (у бинарним машинама). Заједнички избор онда је 36-битна реч, што је такође добра величина за нумеричка својства плутајућег формата тачака.

Након увођења дизајна IBM-овог система / 360 , који је користио осмобитне знакове и подржавао мала слова, стандардне величине карактера (или прецизније, бајт) постао је осам битова. Величине речи након тога су природно дељиве са осам бита, са 16, 32 и 64 бита и то се најчешће користило.

Архитектуре речи променљиве[уреди]

Рани дизајн машина укључивао је и неке које су користиле оно што се често назива дужином речи променљиве. У овој врсти организације, нумеричка операнда није имала фиксну дужину, већ је њен крај откривао када је ознака наишла на карактер са посебном ознаком. Такве машине су често користиле бинарно кодиране децимале за бројеве. Ова класа машина је укључивала IBM 702, IBM 705, IBM 7080, IBM 7010, UNIVAC 1050, IBM 1401, и IBM 1620.

Већина ових машина ради на једној јединици меморије у исто време и пошто је свака инстукција или податак дужине неколико јединица, свакој инструкција је потребно неколико циклуса само да приступи меморији. Ове машине су често прилично споре због тога. На пример, инструкција која добавља на IBM 1620 моделу узима 8 циклуса само да прочитата 12 цифара инструкције модел II је смањио ово на 6 циклуса, или 4 циклуса ако упутству нису требала оба поља адресе). Извршење инструкција је узело потпуно променљиви број циклуса, у зависности од величине операнада.

Адресирање речи и бајта[уреди]

Модел меморије неке архитектуре је под јаким утицајем величине речи. Посебно резолуција меморијске адресе, то јест, најмања јединица која може да се одреди помоћу адресе, често је изабрана да буде реч. У овом приступу, вредности адресе које се разликују за једну одређују поред меморијских речи. То је природно у машинама које се баве готово увек у речима (или са више речи) јединица, и има предност што омогућава инструкцијама да користе минималне величине поља да садрже адресе, које могу дозволити мању величину инструкција или већи низ инструкција.

Када обрада бајта постане значајан део посла, обично је повољније да се користи бајт, а не реч, као јединица резолуције адресе. Ово омогућава произвољном карактеру у низ карактера да буде право адресиран. Реч још увек може бити адресирана, али адреса која ће се користити захтева још неколико битова више него алтернатива речи резолуције. Величина реч треба да буде вишеструки цео број величине карактера у овој организацији. Овај приступ решавању је коришћен у IBM 360, и био је најчешћи приступ у машинама дизајнираним од тада.

Појединачним бајтовима се може приступити на машини оријентисаној речју на један од два начина. Бајтовима се може манипулисати комбинацијом смене и маске операција у регистрима. Померање једног бајта од једне произвољне локације на другу може захтевати еквивалент следећег:

  • LOAD  реч која садржи изворни бајт
  • SHIFT изворна реч која треба да усклади жељени бајт у исправан положај у означеној речи
  • AND  изворна реч са маском до нуле све осим жељеног бита
  • LOAD реч која садржи означени бајт
  • AND означена реч са маском до нуле кроз означени бајт
  • OR регистри који садрже изворне и означене речи да који треба да убаце изворни бајт
  • STORE повратни резултат на означеној локацији

Алтернативно многе машине речју оријентисане спроводе операције бајтова са инструкцијама које користе посебне показиваче бајтова у регистре или меморију. На пример PDP-10 показивач бајта садржи величину бајта у битовима (дозвољава да се различитим величинама бајтова може приступити), брзину положаја бајта у оквиру реч, и адресу речи података. Упутства могу аутоматски да подесе показивач на следећи бајт, на пример, учитавање и депозит (складиштење) операција.

Снага двојке[уреди]

Различитие количине меморије се користе за чување вредности података са различитим степенима прецизности. Уобичајене величине су обично експонент двојке, вишеструке јединице резолуције адреса (бајт или реч). Претварање индекса ставке у низу у адресу ставке онда захтева само операцију смене уместо умножавања. У неким случајевима овај однос може да избегне употребу поделе рада. Као резултат тога, већина дизајна модерних рачунара има величине реч (и друге величине операнди) који су снага двоструке величине бајта.

Величина породице[уреди]

Како је рачунарски дизајн постао сложенији, централни значај појединачне величине архитектуре речи је смањен. Иако способнији хардвер може користити шири спектар величина података, тржишне снаге врше притисак да се одржи компатибилност док је се проширују могућности процесора. Као резултат тога, шта би могла да буде централна величина речи у свежем дизајну треба да коегзистира као алтернативна величина до оригиналне величине речи у компатибилном дизајну. Оригинални величина речи остаје на располагању у будућим пројектима, формирајући основу за величину породице.

Средином 1970-их, DEC је дизајнирао VAX да буде наследник PDP-11. Они су користили реч за 16-битну количину, док се дуга реч односила на 32-битну количину. То је у супротности са ранијим машинама, где би се природна јединица обраћања меморије назвала речју, док ће се количина која је половина речи звати halfword . У уклапање са овом шемом, VAX quadword је 64 бита.

Други пример је x86 породица, од које су процесори три различите дужине речи (16-битни, касније 32- и 64-битни) објављени. Како је софтвер рутински портован од дужине једне речи до друге, неки APIs (Апликациони програмски интерфејс)  и документација дефинишу или се односе на старију (а тиме и краћу) дужину речи уместо пуне дужине речи на CPU за који софтвер може бити састављен. Такође, слично начину на који се бајтови користе за мале бројеве у многим програмима, краћа реч (16 или 32 бита) може да се користи у контекстима у којима није потребан распон шире речи (нарочито када то може да уштеди значајни стек простор или кеш меморијски простор). На пример,Microsoft's Windows API одржава дефиницију програмског језика WORD (речи) као 16 бита, упркос чињеници да API може да се користи на 32 или 64-битном x86 процесору, где би стандардна величина речи била 32 или 64 бита, респективно . Структуре података које садрже такве различите величине речи односе се на њих као WORD (16 бита / 2 бајта), DWORD (32 бита / 4 бајта) и QWORD (64 бита / 8 бајтова), респективно. Сличан феномен је развијен у Интеловом x86 асемблерском језику - због подршке различитих величина (и компатибилности) у сету инструкција, нека инструкција мнемотехнике носи идентификатор  "d" или "q" који означава " дупло"  "четвородупло" или "двоструко-четвородупло-", које су у погледу архитектуре оригиналне 16-битне величине речи.

У принципу, нови процесори морају користити исте дужине података речи и виртуелну адресу ширине као старији процесор тако да имају бинарну компатибилност са тим старијим процесором.

Често пажљиво написани изворни код - писан са изворног кода компатибилности и преносивости софтвера на уму - може бити прекомпилиран тако да ради на различитим процесорима, чак и на оним са различитим дужинама речи података или различитој адреси ширине или обоје.

Табела величина речи[уреди]

кључ: b: битови, d: децималне цифре, w: величина речи архитектуре, n: величина променљиве
Година Архитектура

рачунара

Величина речи

w

Цео број величине Покретна тачка величине Инструкција величине Јединица адресе резолуције Знак величине
1837 Бебиџова Аналитичка машина 50 d w Пет различитих карата је коришћено за различите функције, тачна величина карата није позната w
1941 Zuse Z3 22 b w 8 b w
1942 АБС 50 b w
1944 Харвард Марк 1 23 d w 24 b
1946 (1948) {1953} ENIAC

(w/ Panel #16[1])

{w/ Panel #26[2]}

10 d w, 2w

(w)

{w}

(2d, 4d, 6d, 8d)

{2d, 4d, 6d, 8d}

{w}

1951 UNIVAC I 12 d w ½w w 1 d
1952 IAS machine 40 b w ½w w 5 b
1952 Fast Universal Digital Computer M-2 34 b w? w 34 b = 4 b опкод плус 3× 10 b адреса 10 b
1952 IBM 701 36 b ½w, w ½w ½w, w 6 b
1952 UNIVAC 60 n d 1d, ... 10d 2d, 3d
1953 IBM 702 n d 0d, ... 511d 5d d 1 d
1953 UNIVAC 120 n d 1d, ... 10d 2d, 3d
1954
(1955)
IBM 650
(w/IBM 653)
10 d w
(w)
w w 2 d
1954 IBM 704 36 b w w w w 6 b
1954 IBM 705 n d 0d, ... 255d 5d d 1 d
1954 IBM NORC 16 d w w, 2w w w
1956 IBM 305 n d 1d, ... 100d 10d d 1 d
1957 Autonetics Recomp I 40 b w, 79 b, 8d, 15d ½w ½w, w 5 b
1958 UNIVAC II 12 d w ½w w 1 d
1958 SAGE 32 b ½w w w 6 b
1958 Autonetics Recomp II 40 b w, 79 b, 8d, 15d 2w ½w ½w, w 5 b
1958 Setun 6 трит (~9.5 b) up to 6 Трит до 3 Трита 4 trit?
1959 IBM 1401 n d 1d, ... d, 2d, 4d, 5d, 7d, 8d d 1 d
1959
(TBD)
IBM 1620 n d 2d, ...
(4d, ... 102d)
12d d 2 d
1960 LARC 12 d w, 2w w, 2w w w 2 d
1960 CDC 1604 48 b w w ½w w 6 b
1960 IBM 1410 n d 1d, ... d, 2d, 6d, 7d, 11d, 12d d 1 d
1960 IBM 7070 10 d w w w w, d 2 d
1960 PDP-1 18 b w w w 6 b
1960 Elliott 803 39 b + 1 parity
1961 IBM 7030
(Растезање)
64 b 1b, ... 64b,
1d, ... 16d
w ½w, w b, ½w, w 1 b, ... 8 b
1961 IBM 7080 n d 0d, ... 255d 5d d 1 d
1962 GE-6xx 36 b w, 2 w w, 2 w, 80 b w w 6 b, 9 b
1962 UNIVAC III 25 b w, 2w, 3w, 4w, 6d, 12d w w 6 b
1962 Autonetics D-17B
Minuteman I Смернице рачунара
27 b 11 b, 24 b 24 b w
1962 UNIVAC 1107 36 b w, ⅓w, ½w, w w w w 6 b
1962 IBM 7010 n d 1d, ... d, 2d, 6d, 7d, 11d, 12d d 1 d
1962 IBM 7094 36 b w w, 2w w w 6 b
1963/1966 PDP-6/PDP-10 36 b w w, 2 w w w 6 b, 9 b (typical)
1963 Gemini Guidance Computer 39 b 26 b 13 b 13 b, 26 b
1963
(1966)
Apollo Guidance Computer 15 b w w, 2w w
1963 Saturn Launch Vehicle Digital Computer 26 b w 13 b w
1964 CDC 6600 60 b w w ¼w, ½w w 6 b
1964 Autonetics D-37C
Minuteman II Смернице рачунара
27 b 11 b, 24 b 24 b w 4 b, 5 b
1965 IBM 360 32 b ½w, w,
1d, ... 16d
w, 2w ½w, w, 1½w 8 b 8 b
1965 UNIVAC 1108 36 b w, ¼w, ⅓w, ½w, w, 2w w, 2w w w 6 b, 9 b
1965 PDP-8 12 b w w w 8 b
1970 PDP-11 16 b w 2w, 4w w, 2w, 3w 8 b 8 b
1971 Intel 4004 4 b w, d 2w, 4w w
1972 Intel 8008 8 b w, 2d w, 2w, 3w w 8 b
1972 Calcomp 900 9 b w w, 2w w 8 b
1974 Intel 8080 8 b w, 2w, 2d w, 2w, 3w w 8 b
1975 ILLIAC IV 64 b w w, ½w w w
1975 Motorola 6800 8 b w, 2d w, 2w, 3w w 8 b
1975 MOS Tech. 6501
MOS Tech. 6502
8 b w, 2d w, 2w, 3w w 8 b
1976 Cray-1 64 b 24 b, w w ¼w, ½w w 8 b
1976 Zilog Z80 8 b w, 2w, 2d w, 2w, 3w, 4w, 5w w 8 b
1978
(1980)
16-bit x86 (Intel 8086)
(w/покретна тачка: Intel 8087)
16 b ½w, w, 2d
(2w, 4w, 5w, 17d)
½w, w, ... 7w 8 b 8 b
1978 VAX 32 b ¼w, ½w, w, 1d, ... 31d, 1b, ... 32b w, 2w ¼w, ... 14¼w 8 b 8 b
1979
(1984)
Motorola 68000 series
(w/покретна тачка)
32 b ¼w, ½w, w, 2d
(w, 2w, 2½w)
½w, w, ... 7½w 8 b 8 b
1985 IA-32 (Intel 80386) (w/покретна тачка) 32 b ¼w, ½w, w, 2d
(w, 2w, 2½w, 17d)
¼w, ½w, w, ... 3¾w 8 b 8 b
1985 ARMv1 32 b ¼w, w w 8 b 8 b
1985 MIPS 32 b ¼w, ½w, w w, 2w w 8 b 8 b
1991 Cray C90 64 b 32 b, w w ¼w, ½w, 48b w 8 b
1992 Alpha 64 b 8b, ¼w, ½w, w w, 2w ½w 8 b 8 b
1992 PowerPC 32 b ¼w, ½w, w w, 2w w 8 b 8 b
1996 ARMv4
(w/Thumb)
32 b ¼w, ½w, w w
w, w)
8 b 8 b
2001 IA-64 64 b 8 b, ¼w, ½w, w ½w, w 41 b 8 b 8 b
2001 ARMv6
(w/VFP)
32 b ¼w, ½w, w
(w, 2w)
½w, w 8 b 8 b
2003 x86-64 64 b 8b, ¼w, ½w, w ½w, w, 1¼w, 17d 8b, ¼w, ½w, w, ... 1⅞w 8 b 8 b
2013 ARMv8-A 64 b 8b, ¼w, ½w, w ½w, w ½w 8 b 8 b
кључ: b: битови, d: децималне цифре, w: величина речи архитектуре, n: величина променљиве

[3][4]

Види још[уреди]

Референце[уреди]

  1. Computer History, Eniac coding, US: ARL 
  2. „8”, Computer History, Eniac coding, US: ARL 
  3. Gerrit A. Blaauw & Frederick P. Brooks (1997). Computer Architecture: Concepts and Evolution. Addison-Wesley. ISBN 0-201-10557-8. 
  4. Anthony Ralston & Edwin D. Reilly (1993). Encyclopedia of Computer Science Third Edition. Van Nostrand Reinhold. ISBN 0-442-27679-6.