From Wikipedia, the free encyclopedia
У рачунарству, реч је термин за природне јединице података које користе одређени дизајн процесора. Реч је део податка фиксне величине који рукује као целина од стране скупа инструкција или хардвера процесора. Број бита у речи (величина текста, ширина речи, или дужина речи) је битна карактеристика било ког специфичног дизајна процесора или архитектуре рачунара.
Величина речи огледа се у многим аспектима структуре и операције рачунара; већина регистара у процесору су обично величине речи и највећи део података који се могу пренети у и из радне меморије у једној операцији је реч у многим (не свим) архитектурама. Највећа могућа величина адресе, коришћена да означи локацију у меморији, обично је реч хардвера (овде ", хардвер реч" означава пуне величине природе речи процесора, за разлику од било које друге коришћене дефиниције).
Модерни процесори, укључујући уграђене системе, обично имају реч величине 8, 16, 24, 32, или 64 бита, док модерни, опште намене рачунари, обично користе 32 или 64 бита. Наменски дигитални процесори, као што су DSP-ови на пример, могу да користе и друге величине и много различитих величина које су коришћене у прошлости, укључујући 8, 9, 12, 18, 24, 36, 39, 40, 48, и 60 бита. Плоча је пример система са ранијом величином речи. Неколико најстаријих рачунара (и неки модерни такође) користи BCD пре него обичан бинарни систем, обично имају реч величине 10 или 12 децималних цифара, а неки рани децимални рачунари нису имали фиксну дужину речи уопште.
Величина речи се понекад може разликовати од очекиваног због компатибилности са ранијим рачунарима. Ако више компатибилне варијације или фамилија процесора деле заједничку архитектуру и сет инструкција али се разликују у својим величинама речи, њихова документација и софтвер могу постати нотациони комплекс за смештај разлике (види величину породице испод).
У зависности од тога како је организован рачунар, јединице величине речи могу да се користе за:
Када је архитектура рачунара дизајнирана, избор величине речи је од суштинског значаја. Постоје разматрања дизајна којима се подстичу одређене величине група бит за одређене намене (нпр. адресе), и ова разматрања указују на различите величине за различите намене. Међутим, разматрања економије у дизајну снажно се залажу за једну величину, или веома мале величине везане за више њих или фракције (умножака) на примарну величину. Та пожељна величина постаје величина речи архитектуре.
Величина знакова је у прошлости (пре величине променљивих карактера кодирања) један од утицаја на јединици резолуције адреса и избор величине речи. Пре него што су средином 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, и био је најчешћи приступ у машинама дизајнираним од тада.
Појединачним бајтовима се може приступити на машини оријентисаној речју на један од два начина. Бајтовима се може манипулисати комбинацијом смене и маске операција у регистрима. Померање једног бајта од једне произвољне локације на другу може захтевати еквивалент следећег:
Алтернативно многе машине речју оријентисане спроводе операције бајтова са инструкцијама које користе посебне показиваче бајтова у регистре или меморију. На пример 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: величина променљиве |
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.