Slovo (počítačová architektura) - Word (computer architecture)


z Wikipedie, otevřené encyklopedie

V práci na počítači , je slovo je přirozeným jednotka dat používaných konkrétním procesoru design. Slovo je pevný velký kus dat nakládá jako s jednotkou u instrukční sadu nebo hardwaru procesoru. Počet bitů ve slově (na velikost slova , šířka slovo nebo délka slova ) je důležitou charakteristikou konkrétní návrh procesoru nebo počítačovou architekturu .

Velikost slova se odráží v mnoha aspektech struktury a fungování počítače je; Většina z registrů v procesoru jsou obvykle slovo velikosti a největší kus dat, které lze přenést do az operační paměti v jednom pracovním kroku je slovo v mnoha (ne všechny) architektury. Největší možný adresa velikosti, který se používá k označení umístění v paměti, je obvykle hardware slovo (tady, „hardware slovo“ se rozumí plné velikosti přirozené slovo procesoru, na rozdíl od jakékoli jiné definice používané).

Moderní procesory, včetně těch, ve vestavěných systémů , mají obvykle velikost slova 8, 16, 24, 32, nebo 64 bitů ; ti v moderních univerzálních počítačů zejména obvykle používají 32 nebo 64 bitů. Účelové digitální procesory, jako například DSP Například se může použít jiné rozměry, a mnoho jiných velikostí byly použity v minulosti, včetně 9, 12 , 18, 24, 26 , 36 , 39 , 40, 48, a 60 bitů. Několik z nejčasnějších počítačů (a některé moderní i) použitý BCD spíše než prostý binární , mající typicky velikost slova 10 a 12 desetinných míst, a některé časné desetinná počítače neměl pevnou délku slova vůbec.

Velikost slova může někdy lišit od očekávané kvůli zpětné kompatibilitě s předchozími počítači. Je-li více kompatibilní varianty ani rodina procesorů sdílí společné architektury a instrukční sadu, ale liší se v jejich velikosti slova, jejich dokumentace a software se může stát Notationally složité, aby se přizpůsobila rozdíl (viz Velikost rodin níže).

Použití slov

V závislosti na tom, jak je počítač organizována, může být slovo velikosti jednotky používají pro:

Čísla pevný bod
Držáky na pevném místě , obvykle číslo , může být číselné hodnoty k dispozici v jednom nebo v několika různých velikostech, ale jeden z rozměrů dispozici bude téměř vždy slovo. Ostatní rozměry, pokud vůbec, je pravděpodobné, že bude násobky nebo frakce o velikosti slova. Menší velikosti se obvykle používají pouze pro efektivní využití paměti; při načtení do procesoru, jejich hodnoty se obvykle jít do většího, slovní velikosti držáku.
Plovoucí desetinnou čárkou
Držáky pro plovoucí desetinnou čárkou číselné hodnoty jsou obvykle buď slovo nebo násobek slovo.
adresy
Držáky na adresy paměti musí mít takovou velikost, která je schopna vyjádřit potřebný rozsah hodnot, ale nesmí být příliš velký, takže často velikost používá slovo i když to může být také násobek nebo zlomek velikosti slova.
registry
Registr procesoru jsou navrženy s velikostí vhodnou pro daný typ dat mají v držení, například celých čísel s plovoucí desetinnou čárkou nebo adresy. Mnoho počítačové architektury používají „ univerzálních registrů “, které mohou mít jakýkoli z několika typů dat, tyto registry musí být dimenzován tak, aby držet největší z typů, historicky se jedná o velikost slova architektury však stále speciálního určení, větší, registry mají byl přidán do vypořádat s novějšími typy.
Přenos paměti procesoru
Je-li procesor čte z paměťového subsystému do registru nebo zapisuje hodnotu registru do paměti, množství přenesených dat je často slovo. Historicky, toto množství bitů, které mohou být převedeny v jednom cyklu byl také nazýván catena v některých prostředích (například Bull GAMMA 60  [ fr ] ). V jednoduchých paměťových podsystémů, slovo je převedeno přes paměťové datovou sběrnici , která má typicky šířku slova nebo půl slova. Paměťových subsystémů, které používají cache slovo velikosti přenos nastává mezi procesorem a první úroveň vyrovnávací paměti; na nižších úrovních hierarchie paměti větší převody (které jsou násobkem velikosti slova), se obvykle používají.
Jednotka překlad adres
V dané architektuře, po sobě jdoucí hodnoty adresy označují postupných jednotek paměti; tato jednotka je jednotka překlad adres. Ve většině počítačů, jednotka je buď znak (např byte), nebo slovo. (Několik počítačů využili bitové rozlišení.) Pokud je přístroj slovo, pak větší množství paměti lze přistupovat pomocí adresy dané velikosti za cenu zvýšené složitosti přístup jednotlivé znaky. Na druhé straně, v případě, že jednotka je byte, pak jednotlivé znaky mohou být řešeny (tj vybrány během operace paměti).
Instrukce
Strojové instrukce jsou obvykle o velikosti slova architektury je, jako je tomu v RISC architektuře , nebo násobkem „char“ velikost, která je zlomkem toho. Jedná se o přirozenou volbou, protože instrukce a data obvykle sdílejí stejný paměťový subsystém. V Harvard architektur slovo velikosti instrukce a data nemusí být ve vztahu, jako instrukce a data jsou uložena v různých částech paměti; Například procesor v 1ESS elektronické telefonní ústředny měli 37-bitové instrukce a 23-bitových datových slov.

Slovo volba velikosti

Je-li počítač navržena architektura, volba velikosti slova má podstatný význam. Existují design úvahy, které podporují určité velikosti bitové skupiny pro zvláštní účely (např adresy), a tyto úvahy poukazují na různých velikostech pro různé použití. Nicméně, je z hlediska ekonomiky v provedení silně tlačit na jedné velikosti, nebo velmi málo velikostí spojených násobky nebo frakcí (dílčí celky) na primární velikost. Že přednostní velikost stává velikost slova architektury.

Znak velikost byla v (pre-proměnlivou velikostí uplynulém kódování znaků ) jednoho z vlivů na jednotce překlad adres a výběrem velikosti slova. Předtím, než v polovině 1960, charaktery byly nejčastěji uloženy v šesti bitech; toto dovolilo ne více než 64 znaků, takže abeceda byl omezen na velká písmena. Vzhledem k tomu, že je účinný v čase a prostoru, aby se velikost slovo být násobkem velikosti postavy, velikosti slovo v tomto období byly obvykle násobky 6 bitů (v binárních strojů). Obyčejná volba pak byla 36-bitové slovo , což je také dobrá velikost pro číselné vlastnosti formátu s pohyblivou řádovou čárkou.

Po zavedení IBM System / 360 design, který používal osmibitové znaky a podporované malá písmena, standardní velikost povahy (nebo přesněji, je byte ) se stal osm bitů. Velikosti Word poté byly přirozeně násobky osmi bitů, s 16, 32, a 64 bitů je běžně používaný.

Variabilní slovo architektury

Brzy designy strojní zahrnuty některé, které používají to, co je často označován jako proměnnou délku slova . V tomto typu organizace, číselný operand neměl pevnou délku, ale spíše jeho konec byl zjištěn když charakter se speciálním označením, často volal slovní ochranné známky , došlo. Takové stroje se často používá BCD čísel. Tato třída strojů zahrnoval IBM 702 , IBM 705 , IBM 7080 , IBM 7010 , UNIVAC 1050 , IBM 1401 a IBM 1620 .

Většina z těchto strojů pracovat na jednu jednotku paměti najednou a protože každá instrukce nebo datum je několik jednotek dlouhá, každá instrukce trvá několik cyklů jen proto, aby přístup k paměti. Tyto stroje jsou často velmi pomalá kvůli tomu. Například instrukce vyzvedne na IBM 1620 model I trvat 8 cyklů jen ke čtení 12 číslic pokynu (dále jen Model II redukuje to v 6 cyklech nebo 4 cyklech v případě, že pokyn nepotřeboval obě pole adresy). Provádění instrukcí vzal zcela různý počet cyklů, v závislosti na velikosti operandů.

Word a byte adresování

Model paměť architektury je silně ovlivněno velikostí slov. Zejména na usnesení ze dne adresa paměti, to znamená, že nejmenší jednotka, která může být označena adresou, často byl vybrán, aby se slovo. V tomto přístupu, řešit hodnoty, které se liší jednou navržených sousedící paměti slova. To je přirozené, ve strojích, které se zabývají téměř vždy ve slově (nebo víceslovných) jednotek, a má tu výhodu, že umožňuje návod k použití minimálně dimenzován pole obsahují adresy, která může povolit menší velikost instrukční nebo větší množství instrukcí.

Při zpracování byte má být významná část pracovní zátěže, je obvykle výhodnější použít byte , spíše než slova, jako jednotku překlad adres. To umožňuje libovolný znak v řetězci znaků, které mají být řešeny přímočaře. Slovo může být ještě řešit, ale adresu, která bude použita vyžaduje několik dalších kousků než slovo rozlišením alternativu. Velikost Slovo musí být celočíselným násobkem velikosti znaku v této organizaci. Toto řešení přístup byl použit v IBM 360, a byl nejvíce obyčejný přístup do strojů určených od té doby.

Jednotlivé byty lze přistupovat na stroji slovo orientované v jednom ze dvou způsobů. Bajtů lze manipulovat pomocí kombinace kláves Shift a masky operací v registrech. Přesun jeden byte z jednoho libovolného místa na druhé mohou vyžadovat ekvivalent následující:

  1. Načíst slovo obsahující zdrojový bajt
  2. SHIFT zdrojové slovo pro vyrovnání požadovaného byte do správné polohy v cílové slovo
  3. A zdrojem slovo s maskou nula mimo všechny kromě požadovaných bitů
  4. Načíst slovo obsahující cílovou byte
  5. A cíl slovo s maskou nula mimo cílový bajt
  6. Nebo vedení evidence zdrojové a cílové slova k vložení zdrojového byte
  7. Uložení výsledku zpět do cílového místa

Jinak mnoho slovo orientované stroje realizovat byte operace instrukce pomocí speciálních bajt ukazatele do registrů nebo paměti. Pro příklad lze uvést PDP-10 bajt ukazatel obsahoval velikost bytu v bitech (umožňující různé velikosti bytů, které mají být přístupné), bitové pozici bajtu uvnitř slova a slovní adresu dat. Pokyny by automaticky nastaví ukazatel na další bajt, například na, zatížení a vkladů (uložit) operací.

Síly dva

Různá množství paměti slouží k uložení hodnoty dat s různým stupněm přesnosti. Běžně používané velikosti jsou obvykle síla dva násobek jednotky překlad adres (byte nebo slovo). Konverzi index položky v poli do adresy zásilky pak vyžaduje pouze řadicí operace spíše než násobení. V některých případech je tento vztah může také vyhnout se používání divize operací. Výsledkem je, že většina moderních počítačových designy mají rozměry slovo (a další velikosti operand), které jsou mocninou dvojnásobku velikosti bytu.

Velikost rodiny

Jako počítačové designy staly složitější, ústřední význam jedné velikosti slova k architektuře snížil. Ačkoliv je schopen hardware lze použít širší škálu velikostí dat, tržní síly vyvíjejí tlak na jejich zachování zpětné kompatibility , zatímco prodloužení schopnosti procesoru. V důsledku toho, co mohlo být ústředním velikost slova ve svěžím designu musí koexistovat jako alternativní velikostí původní velikosti slova v zpětně kompatibilní design. Originální velikost slovo zůstává k dispozici v budoucích návrzích, které tvoří základ rodiny velikosti.

V polovině 1970, prosinec navrhl VAX být 32-bit nástupce 16bitové PDP-11 . Oni používají slovo pro 16bitové množství, zatímco longword uvedené 32bitové množství. To bylo v rozporu s dřívějšími stroji, kde je přirozená jednotka adresování paměti by se dalo nazvat slovem , zatímco množství, které je jedna polovina slovo by bylo nazýváno Poloviční slovo . Koncovkou s tímto schématem, je VAX Čtyřslovo je 64 bitů. Pokračovali toto slovo / longword / Čtyřslovo terminologii s 64-bit Alpha .

Dalším příkladem je x86 rodiny, z nichž byla uvolněna procesory třech různých délkách slovo (16 bitů, později 32- a 64-bitů), přičemž slovo pokračuje k označení 16-bit množství. Jako software se běžně přenést z jednoho délkou slova na druhou, některé API a dokumentace definovat nebo odkazují na starší (a tím i kratší) délkou slova, než plnou délkou slova na CPU, které software možné sestavit pro. Také, podobně tomu, jak bajtů se používají pro malé počty v mnoha programech, kratší slovo (16 nebo 32 bitů) může být použit v kontextech, kde není potřeba rozsah širším slova (zejména tam, kde to může ušetřit značné místa zásobníku nebo mezipaměť paměťový prostor). Například Microsoft Windows API udržuje programovací jazyk definici WORD jako 16 bitů, a to navzdory skutečnosti, že API je možno použít na x86 procesor 32- nebo 64-bit, kde by standardní velikost slova je 32 nebo 64 bitů, v uvedeném pořadí , Datové struktury obsahující takové různé velikosti slova se na ně odkazovat jako WORD (16 bitů / 2 bajtů) DWORD (32 bitů / 4 bajty) a QWORD (64 bitů / 8 bytů) resp. Podobný jev byl vyvinut ve společnosti Intel x86 assembleru - kvůli podpoře různých velikostí (a zpětná kompatibilita) v instrukční sadě, některé instrukce symbolických instrukcí nesou „d“ a „q“ identifikátory označující „double“, „quad-“ nebo „double-quad-“, které jsou, pokud jde o původní 16bitové velikost slova architektury je.

Obecně platí, že nové procesory musí používat stejné délky datové slovo a šířky virtuální adresy jako starší procesor mít binární kompatibilita s tímto starším procesorem.

Často pečlivě psaný zdrojový kód - psaný s kompatibilitou zdrojového kódu a softwaru přenositelnost na mysli - může být recompiled k útoku na celou řadu procesorů, a to i ty s různými délkami datové slovo nebo různých šířek adres nebo obojí.

Tabulka velikostí slovních

Klíčovými: bit: bit , d: desetinná místa, w : slovem velikost architektury, n : variabilní velikost
Rok Počítačová
architektura
Velikost slova w integer
velikosti
s pohyblivou desetinnou čárkou
velikosti
instrukční
velikosti
Jednotka adres
rozlišení
velikost Char
1837 Babbage
Analytický motor
50 d w - Pět různých karty byly použity pro různé funkce, přesné velikosti karet nejsou známy. w -
1941 Zuse Z3 22 bit - w 8 bitů w -
1942 ABC 50 bit w - - - -
1944 Harvard Mark I 23 d w - 24 bit - -
V roce 1946
(1.948),
{1953}
ENIAC
(w / panel # 16)
{w / panely # 26}
10 d w , 2 w
(w)
{w}
- -
(2 d, 4 d, 6 d, 8 d)
{2 d, 4 d, 6 d, 8 d}
-
-
{w}
-
1951 UNIVAC I 12 d w - ½ w w 1 d
1952 IAS stroj 40 bit w - ½ w w 5 bit
1952 Fast Universal Digital Computer M-2 34 bit w? w 34 bit = 4-bitové operační kód a 3 x 10 bitů adresy 10 bit -
1952 IBM 701 36 bit Půl w , w - ½ w Půl w , w 6 bitů
1952 UNIVAC 60 n d 1 d, ... 10 d - - - 2 d, 3 d
1952 ARRA I 30 bit w - w w 5 bit
1953 IBM 702 n d 0 d ... 511 d - 5 d d 1 d
1953 UNIVAC 120 n d 1 d, ... 10 d - - - 2 d, 3 d
1953 ARRA II 30 bit w 2 w ½ w w 5 bit
Z roku 1954
(1955)
IBM 650
(w / IBM 653 )
10 d w -
(W)
w w 2 d
1954 IBM 704 36 bit w w w w 6 bitů
1954 IBM 705 n d 0 d ... 255 d - 5 d d 1 d
1954 IBM NORC 16 d w w , 2 w w w -
1956 IBM 305 n d 1 d ... 100 d - 10 d d 1 d
1956 ARMAC 34 bit w w ½ w w 5 bitů, 6 bitů
1957 Autonetics RECOMP I 40 bit w , 79 bit, 8 d, 15 d - ½ w Půl w , w 5 bit
1958 UNIVAC II 12 d w - ½ w w 1 d
1958 ŠALVĚJ 32 bit ½ w - w w 6 bitů
1958 Autonetics RECOMP II 40 bit w , 79 bit, 8 d, 15 d 2 w ½ w Půl w , w 5 bit
1958 Setun trit (~ 9,5 bit) až 6  tryte až 3 trytes 4 Trit ?
1958 Electrologica X1 27 bit w 2 w w w 5 bitů, 6 bitů
1959 IBM 1401 n d 1 d ... - 1 d, 2 d, 4 d, 5 d, 7 d, 8 d d 1 d
1959
(TBD)
IBM 1620 n d 2 d ... -
(4 d ... 102 d)
12 d d 2 d
1960 LARC 12 d w , 2 w w , 2 w w w 2 d
1960 CDC 1604 48 bit w w ½ w w 6 bitů
1960 IBM 1410 n d 1 d ... - 1 d, 2 d, 6 d, 7 d, 11 d, 12 d d 1 d
1960 IBM 7070 10 d w w w w , d 2 d
1960 PDP-1 18 bit w - w w 6 bitů
1960 Elliott 803 39 bit + 1 parita
1961 IBM 7030
(Stretch)
64 bit 1 bit, ... 64 bit,
1 d ... 16 d
w Půl w , w b, půl w , w 1 bit, ... 8 bitů
1961 IBM 7080 n d 0 d ... 255 d - 5 d d 1 d
1962 GE-6xx 36 bit w , 2 w w , 2 W , 80 bit w w 6 bitů, 9 bitů
1962 UNIVAC III 25 bit w , 2 t , 3 m , 4 m , 6 dnů, 12 d - w w 6 bitů
1962 Autonetics D-17B
Minuteman I Pokyny Computer
27 bit 11 bit, 24 bit - 24 bit w -
1962 UNIVAC 1107 36 bit w , ⅓ w , půl w , w w w w 6 bitů
1962 IBM 7010 n d 1 d ... - 1 d, 2 d, 6 d, 7 d, 11 d, 12 d d 1 d
1962 IBM 7094 36 bit w w , 2 w w w 6 bitů
1962 SDS 9 Series 24 bit w 2 w w w
1963,
(z roku 1966),
Apollo Guidance Computer 15 bit w - w , 2 w w -
1963 Digitální Saturn Launch Vehicle Computer 26 bit w - 13 bit w -
1964/1966 PDP-6 / PDP-10 36 bit w w , 2 w w w 6 bitů, 9 bitů (typické)
1964 titán 48 bit w w w w w
1964 CDC 6600 60 bit w w ¼ w , půl w w 6 bitů
1964 Autonetics D-37C
Minuteman II Pokyny Computer
27 bit 11 bit, 24 bit - 24 bit w 4 bit, 5 bit
1965 Gemini Guidance Computer 39 bit 26 bit - 13 bit 13 bit, 26 -bit
1965 IBM 360 32 bit Půl w , w ,
1 d, ... 16 d
w , 2 w Půl w , w , 1? W 8 bitů 8 bitů
1965 UNIVAC 1108 36 bit w , ¼ w , ⅓ w , půl w , w , 2 w w , 2 w w w 6 bitů, 9 bitů
1965 PDP-8 12 bit w - w w 8 bitů
1965 Electrologica X8 27 bit w 2 w w w 6 bitů, 7 bitů
1966 SDS Sigma 7 32 bit Půl w , w w , 2 w w 8 bitů 8 bitů
1969 Four Phase Systems AL1 8 bitů w - ? ? ?
1970 MP944 20 bit w - ? ? ?
1970 PDP-11 16 bit w 2 w , 4 w w , 2 t , 3 w 8 bitů 8 bitů
1971 TMS-1000 4 bit w - ? ? -
1971 Intel 4004 4 bit w , d - 2 w , 4 w w -
1972 Intel 8008 8 bitů w , 2 d - w , 2 t , 3 w w 8 bitů
1972 CalComp 900 9 bitů w - w , 2 w w 8 bitů
1974 Intel 8080 8 bitů w , 2 W , 2 d - w , 2 t , 3 w w 8 bitů
1975 ILLIAC IV 64 bit w w , ½ w w w -
1975 Motorola 6800 8 bitů w , 2 d - w , 2 t , 3 w w 8 bitů
1975 MOS Tech. 6501
MOS Tech. 6502
8 bitů w , 2 d - w , 2 t , 3 w w 8 bitů
1976 Cray-1 64 bit 24 bitů, w w ¼ w , půl w w 8 bitů
1976 Z80 8 bitů w , 2 W , 2 d - w , 2 t , 3 m , 4 m , 5. w w 8 bitů
1978,
(roku 1980)
16-bit x 86 ( Intel 8086 )
(w / plovoucí čárkou: Intel 8087 )
16 bit Půl w , w , 2 dny -
(2 w , 4 w 5 w , 17 d)
½ w , w , ... 7 W 8 bitů 8 bitů
1978 VAX 32 bit ¼ w , půl w , w , 1 d, ... 31 d, 1 bit, ... 32 bit w , 2 w ¼ w ... 14¼ w 8 bitů 8 bitů
1979,
(1984,),
Motorola 68000 série
(w / s plovoucí desetinnou čárkou)
32 bit ¼ w , půl w , w , 2 dny -
( m , 2 m , 2? W )
½ w , w , ... 7½ w 8 bitů 8 bitů
1985 IA-32 ( Intel 80386 ) (m / s plovoucí desetinnou čárkou) 32 bit 8 bitů, a půl w , w -
w , w , 80 bit)
8 bit, ... 15 bit 8 bitů 8 bitů
1985 ARMv1 32 bit ¼ w , w - w 8 bitů 8 bitů
1985 MIPS 32 bit ¼ w , půl w , w w , 2 w w 8 bitů 8 bitů
1991 Cray C90 64 bit 32 bitů, w w ¼ w , půl w , 48 bitů w 8 bitů
1992 Alpha 64 bit 8 bitů, ¼ w , půl w , w w , 2 w ½w 8 bitů 8 bitů
1992 PowerPC 32 bit ¼ w , půl w , w w , 2 w w 8 bitů 8 bitů
1996 Armv4
(w / palec )
32 bit ¼ w , půl w , w - w
(půl w , w )
8 bitů 8 bitů
2001 IA-64 64 bit 8 bitů, ¼ w , půl w , w Půl w , w 41 bit 8 bitů 8 bitů
2001 ARMv6
(w / VFP)
32 bit 8 bitů, a půl w , w -
(w, 2w)
Půl w , w 8 bitů 8 bitů
2003 x86-64 64 bit 8 bitů, ¼ w , půl w , w Půl w , w , 80 bit 8 bit, ... 15 bit 8 bitů 8 bitů
2013 ARMv8-A 64 bit 8 bitů, ¼ w , půl w , w Půl w , w ½ w 8 bitů 8 bitů
Rok Počítačová
architektura
Velikost slova w integer
velikosti
s pohyblivou desetinnou čárkou
velikosti
instrukční
velikosti
Jednotka adres
rozlišení
velikost Char
Klíčovými: bit: bit, d: desetinná místa, w : slovem velikost architektury, n : variabilní velikost

viz též

Reference