Inom datorer och annan programmerbar teknik är ett maskinord en dataenhet som väljs som naturlig för en given processorarkitektur.
Ett maskinord är en bit data av en fast storlek, bearbetad som en enhet av en instruktionsuppsättning eller processorhårdvara. Antalet bitar i ett maskinord - ordstorleken (alias ordbredd eller ordlängd) - är en viktig egenskap hos någon speciell processorarkitektur eller datorarkitektur.
Storleken på ett maskinord återspeglas i många aspekter av en dators struktur och funktion. De flesta register i en processor är vanligtvis storleken på ett maskinord, och den största mängden data som kan överföras till och från arbetsminnet i en enda operation är ett maskinord i många (inte alla) arkitekturer. Den största möjliga adressstorleken som används för att adressera minne (vanligtvis byte för byte) är vanligtvis ett hårdvaruord (här betyder "hårdvaruord" processorns naturliga ord i full storlek, i motsats till någon annan definition som används).
Tidiga datorer stötte på maskinordslängder som varierade ganska mycket. På den tiden var datorer indelade i affärsorienterade och vetenskapliga och tekniska. I affärsorienterade datorer som hanterade ekonomiska och redovisningsmässiga beräkningar krävdes ingen hög noggrannhet i beräkningarna , eftersom beloppen alltid avrundades till endast två hundradelar. I vetenskapliga beräkningar utförs oftast operationer med reella tal, och noggrannheten i beräkningarna (antalet decimaler / bråktal) är mycket viktigt. Eftersom minnesmoduler för tidiga datorer var dyra, påverkade valet av maskinordslängd både exaktheten i de beräkningar som gjordes av datorn och dess kostnad. Ett 48-bitars maskinord i vetenskapliga och tekniska datorer var mycket populärt [1] , eftersom ett 32-bitars ord gjorde det möjligt att uttrycka reella tal med 6–7 decimaler, vilket inte räckte på grund av ackumuleringen av avrundningsfel i komplexa beräkningar (särskilt tekniska sådana). ), och ett 64-bitars ord med 15-16 decimaler var långt över precisionskraven. Ett 48-bitars ord gjorde det möjligt att uttrycka ett reellt tal med 10 decimaler (det ansågs acceptabelt för den tidens vetenskapliga och tekniska beräkningar).
På 1950- och 1960-talen hade många datorer en ordlängd som var en multipel av 6 bitar. Sedan användes en sexbitarskodning , - 6 bitar räckte för att representera alla siffror och alla bokstäver i det engelska alfabetet : möjliga kombinationer gjorde det möjligt att koda 32 bokstäver (i versaler), 10 siffror och några skiljetecken .
Senare ökade kraven på noggrannheten i vetenskapliga och tekniska beräkningar, och 1974 dök den första maskinen med ett 64-bitars ord upp - superdatorn Cray-1 .
I de allra flesta moderna datorer är ordet längd i bitar en potens av två . I det här fallet används oftast 8- och 16-bitars tecken.
På tidiga datorer var ett ord den minsta adresserbara minnesplatsen. För närvarande är den minsta adresserbara minnescellen alltid en byte och ett ord består av flera byte. Detta leder till en tvetydig tolkning av ordlängden. Till exempel, på 8086-processorer och deras avkomlingar, kallas 16 bitar (2 byte) traditionellt för ett "ord", även om dessa processorer kan behandla större datablock samtidigt.
I allmänhet accepterar ett bitlångt ord osignerade heltalsvärden från 0 till inklusive det totala antalet värden själva .
År | Arkitektur | Ordstorlek ( w ) i bitar | Hel storlek | Flytpunktsstorlek _ | Instruktionsstorlek _ |
---|---|---|---|---|---|
1952 | IBM 701 | 36 | ½ w , w | — | ½v _ |
1954 | IBM 704 | 36 | w | w | w |
1960 | PDP-1 | arton | w | — | w |
1960 | CDC 1604 | 48 | w | w | ½v _ |
1964 | CDC6600 | 60 | w | w | ¼ w , ½ w , w |
1965 | IBM 360 | 32 | ½ w , w , 1 d … 31 d |
w , 2w | ½ w , w , 1½ w |
1965 | PDP-8 | 12 | w | — | w |
1968 | BESM-6 | 48 | w | w , 2w | ½v _ |
1970 | IBM 370 | 32 | ½ w , w , 1 d … 31 d |
w , 2 w , 4 w | ½ w , w , 1½ w |
1970 | PDP-11 | 16 | ½ w , w | 2w , 4w _ | w , 2 w , 3 w |
1971 | Intel 4004 | fyra | w , d | — | 2w , 4w _ |
1972 | Intel 8008 | åtta | w , 2d | — | w , 2 w , 3 w |
1974 | Intel 8080 | åtta | w , 2 w , 2 d | — | w , 2 w , 3 w |
1975 | Cray-1 | 64 | 24 b, w | w | ¼w , ½w _ |
1975 | MOS Tech. 6501 MOS Tech. 6502 |
åtta | w , 2d | — | w , 2 w , 3 w |
1976 | Zilog Z80 | åtta | w , 2 w , 2 d | — | w , 2 w , 3 w , 4 w |
1978 (1980) |
Intel 8086 (med Intel 8087 ) |
16 | ½ w , w , 2 d ( w , 2 w , 4 w ) |
- ( 2w , 4w , 5w , 17d ) |
½ w , w , … 7 w |
1978 | VAX -11/780 | 32 | ¼ w , ½ w , w , 1 d , … 31 d , 1 b , … 32 b | w , 2w | ¼w , … 14¼w |
1979 | Motorola 68000 | 32 | ¼ w , ½ w , w , 2 d | — | ½ w , w , … 7½ w |
1982 (1983) |
Motorola 68020 (med Motorola 68881) |
32 | ¼ w , ½ w , w , 2 d | — ( w , 2 w , 2½ w ) |
½ w , w , … 7½ w |
1985 | ARM 1 | 32 | w | — | w |
1985 | MIPS32 | 32 | ¼ w , ½ w , w | w , 2w | w |
1989 | Intel 80486 | 16 (32) * | ½w , w , 2w , 2dw , 2w , 4w _ _ |
2w , 4w , 5w , 17d _ | ½ w , w , … 7 w |
1989 | Motorola 68040 | 32 | ¼ w , ½ w , w , 2 d | w , 2 w , 2½ w | ½ w , w , … 7½ w |
1991 | MIPS64 | 64 | ¼ w , ½ w , w | w , 2w | w |
1991 | PowerPC | 32 | ¼ w , ½ w , w | w , 2w | w |
1992 | SPARC v8 | 32 | ¼ w , ½ w , w | w , 2w | w |
1994 | SPARC v9 | 64 | ¼ w , ½ w , w | w , 2w | w |
2001 | Itanium ( IA-64 ) | 64 | 8 b, ¼ w , ½ w , w | ½ w , w | 41b |
2002 | Xscale | 32 | w | w , 2w | ½ w , w |
2003 | x86-64 | 64 | 8b, ¼ w , ½ w , w | ½ w , w , 1¼ w , 17 d | 8b |
2010 | RISC-V 32/64/128 | 32 | ¼ w , ½ w , w , 2 w , 4 w | w , 2 w , 4 w | w , ½ w [2] |
Beteckningar:
För 32-bitars x86 - arkitekturprocessorer : historiskt sett anses 16 bitar vara ett maskinord, i verkligheten - 32 bitar .
Informationsenheter | |
---|---|
Basenheter | |
Relaterade enheter | |
Traditionella bitenheter | |
Traditionella byte-enheter | |
IEC bitenheter |
|
IEC -byteenheter |
Datatyper | |
---|---|
Otolkbart | |
Numerisk | |
Text | |
Referens | |
Sammansatt | |
abstrakt | |
Övrig | |
Relaterade ämnen |