Reč (arhitektura računara)

U računarstvu, reč je termin za prirodne jedinice podataka koje koriste određeni dizajn procesora. Reč je deo podatka fiksne veličine koji rukuje kao celina od strane skupa instrukcija ili hardvera procesora. Broj bita  u reči (veličina teksta, širina reči, ili dužina reči) je bitna karakteristika bilo kog specifičnog dizajna procesora ili arhitekture računara.

Bit
1 4 8 12 16 18 24 26 31 32 36 48 60 64 128 256 512
Aplikacija
16 32 64
Pokretan zarez preciznosti
×½ ×1 ×2 ×4
Pokretan zarez decimalne preciznosti
32 64 128

Veličina reči ogleda se u mnogim aspektima strukture i operacije računara; većina registara u procesoru su obično veličine reči i najveći deo podataka koji se mogu preneti u i iz radne memorije u jednoj operaciji je reč u mnogim (ne svim) arhitekturama. Najveća moguća veličina adrese, korišćena da označi lokaciju u memoriji, obično je reč hardvera (ovde ", hardver reč" označava pune veličine prirode reči procesora, za razliku od bilo koje druge korišćene definicije).

Moderni procesori, uključujući ugrađene sisteme, obično imaju reč veličine 8, 16, 24, 32, ili 64 bita, dok moderni, opšte namene računari, obično koriste 32 ili 64 bita. Namenski digitalni procesori, kao što su DSP-ovi na primer, mogu da koriste i druge veličine i mnogo različitih veličina koje su korišćene u prošlosti, uključujući 8, 9, 12, 18, 24, 36, 39, 40, 48, i 60 bita. Ploča je primer sistema sa ranijom veličinom reči. Nekoliko najstarijih računara (i neki moderni takođe) koristi BCD pre nego običan binarni sistem, obično imaju reč veličine 10 ili 12 decimalnih cifara, a neki rani decimalni računari nisu imali fiksnu dužinu reči uopšte.

Veličina reči se ponekad može razlikovati od očekivanog zbog kompatibilnosti sa ranijim računarima. Ako više kompatibilne varijacije ili familija procesora dele zajedničku arhitekturu i set instrukcija ali se razlikuju u svojim veličinama reči, njihova dokumentacija i softver mogu postati notacioni kompleks za smeštaj razlike (vidi veličinu porodice ispod).

Korišćenje reči uredi

U zavisnosti od toga kako je organizovan računar, jedinice veličine reči mogu da se koriste za:

Fiksni broj tačaka
Držači za fiksnu tačku, obično je to ceo broj, numeričke vrednosti mogu biti dostupne u jednoj ili u više različitih dimenzija, ali jedna od dostupnih veličina će skoro uvek biti reč. Ostale veličine, ako ih ima, verovatno će biti deljive ili frakcije veličine reči. Manje veličine se obično koriste samo za efikasnu upotrebu memorije; kada se učitaju u procesor, njihove vrednosti obično idu u veću, reč veličine držača.
Pokretan broj tačaka
Držači za pokretan broj tačaka numeričke vrednosti su obično ili reč ili više reči.
Adrese
Nosioci za memorijske adrese moraju biti veličine koja je u stanju da izrazi potreban opseg vrednosti, ali neće biti preterano velika, tako često veličina koristi je reč mada to može biti višestruko ili deo veličine reči.
Registri
Registri procesora su dizajnirani sa veličinom pogodnom za vrstu podataka koje drže, npr. celih brojeva, flout brojeva tačaka ili adresa. Mnoge računarske arhitekture koriste "opšte namenske registre" koje mogu da drže bilo koji od više vrsta podataka, ovi registri moraju biti takve veličine koja će da drži najveći od vrste, istorijski ovo je veličina reči arhitekture, iako sve specijalne namene, veće, registri imaju dodane da se bave novim tipovima.
Prenos memorija-procesor
Kada procesor čita iz podsistema memorije u registar ili piše vrednosti registra u memoriju, količina prenetih podataka je često reč. U jednostavnim memorijskim podsistemima, reč se prenosi preko magistrale podataka memorije, koja obično ima širinu veleičine reči ili pola reči. U memorijskim podsistemima koji koriste keš, transfer veličine reči je onaj između procesora i prvog nivoa keša; na nižim nivoima hijerarhije memorije većih transfera (koji su višestruki veličine reči) se obično koriste.
Jedinica rezolucije adrese
U datoj arhitekturi, uzastopne adrese vrednosti određuju uzastopne jedinice memorije; ova jedinica je jedinica rezolucije adrese. U većini računara, jedinica je ili karakter (npr. bajt) ili reč. (Nekoliko računara je koristilo rezoluciju bita.) Ako je jedinica reč, onda se većoj količini memorije može pristupiti koristeći adresu date veličine po ceni dodate složenosti kako bi se pristupilo pojedinačnim znakovima. S druge strane, ako je jedinica bajt, onda pojedini karakteri mogu adresirani (tj. izabrani tokom operacije memorije).
Instrukcije
Uputstva mašine su obično veličine arhitekture reči, kao što su RISC arhitekture, ili višestruka "čar" veličine koja je deo toga. Ovo je prirodan izbor jer instrukcije i podaci obično dele isti memorijski podsistem. U Harvard arhitekturi reči veličine instrukcija i podataka ne moraju biti povezane, kao i uputstva i podaci se čuvaju u različitim memorijama; na primer, procesor u 1ESS elektronskoj telefonskoj centrali imao je 37-bitne instrukcije i 23-bitne reči podataka.

Izbor veličine reči uredi

Kada je arhitektura računara dizajnirana, izbor veličine reči je od suštinskog značaja. Postoje razmatranja dizajna kojima se podstiču određene veličine grupa bit za određene namene (npr. adrese), i ova razmatranja ukazuju na različite veličine za različite namene. Međutim, razmatranja ekonomije u dizajnu snažno se zalažu za jednu veličinu, ili veoma male veličine vezane za više njih ili frakcije (umnožaka) na primarnu veličinu. Ta poželjna veličina postaje veličina reči arhitekture.

Veličina znakova je u prošlosti (pre veličine promenljivih karaktera kodiranja) jedan od uticaja na jedinici rezolucije adresa i izbor veličine reči. Pre nego što su sredinom 1960-ih, likovi najčešće čuvani u šest bita; ovo je dozvoljavalo ne više od 64 karaktera, tako da su alfabetici bili ograničeni velikim slovima. Pošto je efikasno u vremenu i prostoru da imaju veličinu reči i da budu višestruke veličine karaktera, veličine reči u ovom periodu su obično deljive sa 6 bita (u binarnim mašinama). Zajednički izbor onda je 36-bitna reč, što je takođe dobra veličina za numerička svojstva plutajućeg formata tačaka.

Nakon uvođenja dizajna IBM-ovog sistema / 360 , koji je koristio osmobitne znakove i podržavao mala slova, standardne veličine karaktera (ili preciznije, bajt) postao je osam bitova. Veličine reči nakon toga su prirodno deljive sa osam bita, sa 16, 32 i 64 bita i to se najčešće koristilo.

Arhitekture reči promenljive uredi

Rani dizajn mašina uključivao je i neke koje su koristile ono što se često naziva dužinom reči promenljive. U ovoj vrsti organizacije, numerička operanda nije imala fiksnu dužinu, već je njen kraj otkrivao kada je oznaka naišla na karakter sa posebnom oznakom. Takve mašine su često koristile binarno kodirane decimale za brojeve. Ova klasa mašina je uključivala IBM 702, IBM 705, IBM 7080, IBM 7010, UNIVAC 1050, IBM 1401, i IBM 1620.

Većina ovih mašina radi na jednoj jedinici memorije u isto vreme i pošto je svaka instukcija ili podatak dužine nekoliko jedinica, svakoj instrukcija je potrebno nekoliko ciklusa samo da pristupi memoriji. Ove mašine su često prilično spore zbog toga. Na primer, instrukcija koja dobavlja na IBM 1620 modelu uzima 8 ciklusa samo da pročitata 12 cifara instrukcije model II je smanjio ovo na 6 ciklusa, ili 4 ciklusa ako uputstvu nisu trebala oba polja adrese). Izvršenje instrukcija je uzelo potpuno promenljivi broj ciklusa, u zavisnosti od veličine operanada.

Adresiranje reči i bajta uredi

Model memorije neke arhitekture je pod jakim uticajem veličine reči. Posebno rezolucija memorijske adrese, to jest, najmanja jedinica koja može da se odredi pomoću adrese, često je izabrana da bude reč. U ovom pristupu, vrednosti adrese koje se razlikuju za jednu određuju pored memorijskih reči. To je prirodno u mašinama koje se bave gotovo uvek u rečima (ili sa više reči) jedinica, i ima prednost što omogućava instrukcijama da koriste minimalne veličine polja da sadrže adrese, koje mogu dozvoliti manju veličinu instrukcija ili veći niz instrukcija.

Kada obrada bajta postane značajan deo posla, obično je povoljnije da se koristi bajt, a ne reč, kao jedinica rezolucije adrese. Ovo omogućava proizvoljnom karakteru u niz karaktera da bude pravo adresiran. Reč još uvek može biti adresirana, ali adresa koja će se koristiti zahteva još nekoliko bitova više nego alternativa reči rezolucije. Veličina reč treba da bude višestruki ceo broj veličine karaktera u ovoj organizaciji. Ovaj pristup rešavanju je korišćen u IBM 360, i bio je najčešći pristup u mašinama dizajniranim od tada.

Pojedinačnim bajtovima se može pristupiti na mašini orijentisanoj rečju na jedan od dva načina. Bajtovima se može manipulisati kombinacijom smene i maske operacija u registrima. Pomeranje jednog bajta od jedne proizvoljne lokacije na drugu može zahtevati ekvivalent sledećeg:

  • LOAD  reč koja sadrži izvorni bajt
  • SHIFT izvorna reč koja treba da uskladi željeni bajt u ispravan položaj u označenoj reči
  • AND  izvorna reč sa maskom do nule sve osim željenog bita
  • LOAD reč koja sadrži označeni bajt
  • AND označena reč sa maskom do nule kroz označeni bajt
  • OR registri koji sadrže izvorne i označene reči da koji treba da ubace izvorni bajt
  • STORE povratni rezultat na označenoj lokaciji

Alternativno mnoge mašine rečju orijentisane sprovode operacije bajtova sa instrukcijama koje koriste posebne pokazivače bajtova u registre ili memoriju. Na primer PDP-10 pokazivač bajta sadrži veličinu bajta u bitovima (dozvoljava da se različitim veličinama bajtova može pristupiti), brzinu položaja bajta u okviru reč, i adresu reči podataka. Uputstva mogu automatski da podese pokazivač na sledeći bajt, na primer, učitavanje i depozit (skladištenje) operacija.

Eksponent dvojke uredi

Različitie količine memorije se koriste za čuvanje vrednosti podataka sa različitim stepenima preciznosti. Uobičajene veličine su obično eksponent dvojke, višestruke jedinice rezolucije adresa (bajt ili reč). Pretvaranje indeksa stavke u nizu u adresu stavke onda zahteva samo operaciju smene umesto umnožavanja. U nekim slučajevima ovaj odnos može da izbegne upotrebu podele rada. Kao rezultat toga, većina dizajna modernih računara ima veličine reč (i druge veličine operandi) koji su snaga dvostruke veličine bajta.

Veličina porodice uredi

Kako je računarski dizajn postao složeniji, centralni značaj pojedinačne veličine arhitekture reči je smanjen. Iako sposobniji hardver može koristiti širi spektar veličina podataka, tržišne snage vrše pritisak da se održi kompatibilnost dok je se proširuju mogućnosti procesora. Kao rezultat toga, šta bi mogla da bude centralna veličina reči u svežem dizajnu treba da koegzistira kao alternativna veličina do originalne veličine reči u kompatibilnom dizajnu. Originalni veličina reči ostaje na raspolaganju u budućim projektima, formirajući osnovu za veličinu porodice.

Sredinom 1970-ih, DEC je dizajnirao VAX da bude naslednik PDP-11. Oni su koristili reč za 16-bitnu količinu, dok se duga reč odnosila na 32-bitnu količinu. To je u suprotnosti sa ranijim mašinama, gde bi se prirodna jedinica obraćanja memorije nazvala rečju, dok će se količina koja je polovina reči zvati halfword . U uklapanje sa ovom šemom, VAX quadword je 64 bita.

Drugi primer je x86 porodica, od koje su procesori tri različite dužine reči (16-bitni, kasnije 32- i 64-bitni) objavljeni. Kako je softver rutinski portovan od dužine jedne reči do druge, neki APIs (Aplikacioni programski interfejs)  i dokumentacija definišu ili se odnose na stariju (a time i kraću) dužinu reči umesto pune dužine reči na CPU za koji softver može biti sastavljen. Takođe, slično načinu na koji se bajtovi koriste za male brojeve u mnogim programima, kraća reč (16 ili 32 bita) može da se koristi u kontekstima u kojima nije potreban raspon šire reči (naročito kada to može da uštedi značajni stek prostor ili keš memorijski prostor). Na primer,Microsoft's Windows API održava definiciju programskog jezika WORD (reči) kao 16 bita, uprkos činjenici da API može da se koristi na 32 ili 64-bitnom x86 procesoru, gde bi standardna veličina reči bila 32 ili 64 bita, respektivno . Strukture podataka koje sadrže takve različite veličine reči odnose se na njih kao WORD (16 bita / 2 bajta), DWORD (32 bita / 4 bajta) i QWORD (64 bita / 8 bajtova), respektivno. Sličan fenomen je razvijen u Intelovom x86 asemblerskom jeziku - zbog podrške različitih veličina (i kompatibilnosti) u setu instrukcija, neka instrukcija mnemotehnike nosi identifikator  "d" ili "q" koji označava " duplo"  "četvorostruko" ili "dvostruko-četvorostruko-", koje su u pogledu arhitekture originalne 16-bitne veličine reči.

U principu, novi procesori moraju koristiti iste dužine podataka reči i virtuelnu adresu širine kao stariji procesor tako da imaju binarnu kompatibilnost sa tim starijim procesorom.

Često pažljivo napisani izvorni kod - pisan sa izvornog koda kompatibilnosti i prenosivosti softvera na umu - može biti prekompiliran tako da radi na različitim procesorima, čak i na onim sa različitim dužinama reči podataka ili različitoj adresi širine ili oboje.

Tabela veličina reči uredi

ključ: b: bitovi, d: decimalne cifre, w: veličina reči arhitekture, n: veličina promenljive
Godina Arhitektura

računara

Veličina reči

w

Ceo broj veličine Pokretna tačka veličine Instrukcija veličine Jedinica adrese rezolucije Znak veličine
1837 Bebidžova Analitička mašina 50 d w Pet različitih karata je korišćeno za različite funkcije, tačna veličina karata nije poznata w
1941 Zuse Z3 22 b w 8 b w
1942 ABS 50 b w
1944 Harvard Mark 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 opkod plus 3× 10 b adresa 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 trit (~9.5 b) up to 6 Trit do 3 Trita 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
(Rastezanje)
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 Smernice računara
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 Smernice računara
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/pokretna tačka: 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/pokretna tačka)
32 b ¼w, ½w, w, 2d
(w, 2w, 2½w)
½w, w, ... 7½w 8 b 8 b
1985 IA-32 (Intel 80386) (w/pokretna tačka) 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
ključ: b: bitovi, d: decimalne cifre, w: veličina reči arhitekture, n: veličina promenljive

[3][4]

Vidi još uredi

Reference uredi

  1. ^ Computer History, Eniac coding, US: ARL, Arhivirano iz originala 03. 01. 2010. g., Pristupljeno 21. 11. 2015 
  2. ^ „8”, Computer History, Eniac coding, US: ARL, Arhivirano iz originala 31. 12. 2005. g., Pristupljeno 21. 11. 2015 
  3. ^ Blaauw, Gerrit A. & Frederick P. Brooks (1997). Computer Architecture: Concepts and Evolution. Addison-Wesley. ISBN 978-0-201-10557-5. 
  4. ^ Anthony Ralston & Edwin D. Reilly (1993). Encyclopedia of Computer Science Third Edition. Van Nostrand Reinhold. ISBN 978-0-442-27679-9.