Ord (informatikk)

Ord (engelsk: word) er en benevnelse som benyttes om den naturlige datastørrelsen i en gitt datamaskin. Et ord er ganske enkelt en samling av bit som håndteres samtidig av maskinen. Antallet bit i et ord, kalt ordstørrelsen, er et viktig kjennetegn ved enhver datamaskinarkitektur. Vanlige ordstørrelser i dagens PC-er er 32 og 64 bit.
Ordstørrelsen påvirker mange sider av datamaskinens oppbygging og virkemåte. De aller fleste registrene er vanligvis på størrelse med et ord. Ordstørrelsen har sammenheng med hvor store tall datamaskinen opererer med. Mengden data som overføres mellom CPU og dataminnet er vanligvis på størrelse med et ord. Det samme er også adressene som brukes til å angi hvor noe ligger i minnet.
Moderne datamaskiner opererer ofte med ordstørrelser på 16, 32 og 64 bit. Et utall andre størrelser har blitt brukt opp gjennom historien, for eksempel 8, 9, 12, 18, 24, 36, 39, 40, 48 og 60 bit. Noen av de tidligste datamaskinene brukte titallsystemet istedenfor det binære, og hadde dermed ordstørrelser på 10 eller 12 desimale sifre. Noen hadde ikke noen fast ordstørrelse i det hele tatt.
Noen ganger er ordstørrelsen definert med tanke på kompatibilitet med tidligere datamaskiner. Den mest vanlige mikroprosessoren i personlige datamaskiner (slik som Intel Pentium og AMD Athlon) er eksempler på dette. Intels IA-32-arkitektur er en utvidelse av designet til Intel 8086, som hadde en ordstørrelse på 16 bit. IA-32-prosessorer støtter fortsatt programmer skrevet for 8086 (x86), så definisjonen av et ord forble på 16 bit, selv om de nå vanligvis opererer med datatyper med 32 bit. Dette har blitt overført videre til x86-64-arkitekturen, som også definerer et ord som 16 bit, til tross for at de er laget for å vanligvis jobbe med datatyper med 64 bit.

Valg av størrelse

Valg av ordstørrelse er en viktig faktor når man designer en ny datamaskinarkitektur. Ofte vil de forskjellige bruksområdene ha preferanser for forskjellige antall bit, men for designet i sin helhet vil det være best om man holder seg til én størrelse eller et lite antall størrelser. Disse størrelsene vil enten består av et helt antall av en grunnleggende størrelse, eller gå opp et helt antall ganger i en grunnleggende størrelse. Denne grunnleggende størrelsen blir ordstørrelsen.
Tegn- eller bytestørrelsen har ofte betydning for valget av ordstørrelse. Frem til midten av 1960-årene lagret man ofte tegn i seks bit, som gjorde det mulig å representere 64 forskjellig tegn (store bokstaver, sifre, osv.). Ettersom det var mest praktisk, valgte man å ha ord som bestod av et helt antall tegn. I 6-bit binære maskiner var en ordstørrelse på 36-bit vanlig, noe som også passet godt til flyttall.
Når IBM lanserte sin System/360 ble det standard å benytte 8 bit til å representere tegn, noe som gjorde at også små bokstaver kunne brukes. Ordstørrelsen ble følgelig multipler av 8 bit, med 16, 32 og 64 bit som vanlige ordstørrelser.

Arkitekturer med varierende ordstørrelse

Tidlige maskiner hadde gjerne arkitekturer som benyttet noe som har blitt kalt variabel ordstørrelse. I slike maskiner hadde ikke operander noen fast størrelse. En spesiell markering ble isteden brukt for å angi slutten. Slike maskiner lagret ofte tall som BCD-kode. Eksempler på slike maskiner er IBM 702, IBM 705, IBM 7080, IBM 7010, UNIVAC 1050, IBM 1401 og IBM 1620.

Ord- og byteadressering

Hvordan minnet er lagt opp i en arkitektur avhenger av ordstørrelsen, og da spesielt størrelsen på den minste minneenheten som kan adresseres direkte. Dette har ofte hvert et ord, noe som gjør at etterfølgende adressenumre viser til etterfølgende ord i minnet. Dette er hensiktsmessig for datamaskiner som nesten alltid opererer på data som består at ett eller flere hele ord. Dette gjør at adressene blir mindre enn om man hadde kunnet adressere mindre enheter, noe som sparer plass. Dette gjør det igjen mulig å ha mindre instruksjoner eller flere forskjellige typer instruksjoner.
Når behandling av individuelle byte er vanlig, vil det være mer praktisk å kunne adressere hvert enkelt byte i minnet fremfor de større ordene. Dette krever flere bit i adressen for samme mengde minne. Det er fortsatt mulig å adressere ord, så lenge de består av et helt antall byte. Dette var løsningen man valgte for IBM 360, og har vært den mest vanligste siden.

Toerpotens

Avhengig av presisjonen man er ute etter, trenger man forskjellige mengder minne for å lagre verdier. Det vanligste er at disse størrelsene er størrelsen på den minste adresserbare dataenheten (byte eller ord) ganget med en toerpotens. For å regne om en indeks inn i en tabell til en minneadresse trenger man dermed bare å utføre et bitskift fremfor å måtte utføre en multiplikasjon. Grunnet dette er antallet byte i et ord i moderne datamaskiner en toerpotens.

Størrelsefamilier

Ettersom datamaskiner har blitt mer komplekse, har viktigheten av én sentral ordstørrelse i en arkitektur gått ned. De mer avanserte prosessorene i dag kan håndtere mange forskjellige datastørrelser, men markedskreftene presser på for å beholde bakoverkompatibilitet med eksisterende prosessorer. Resultatet er at det som ville vært den sentrale ordstørrelsen i det nye designet blir nødt til å dele rollen med den sentrale ordstørrelsen i det gamle designet. Den originale ordstørrelsen blir dermed værende i alle fremtidige kompatible design og blir dermed basisen i en størrelsefamilie.
Midt i 1970-årene utviklet DEC VAX som en etterfølger til PDP-11. Selv om VAX var en 32-bit arkitektur, brukte de betegnelsen word (ord) om en størrelse på 16 bit mens betegnelsen longword (langt ord) ble benyttet om 32 bit. Dette står i kontrast til tidligere maskiner, hvor den naturlige datastørrelsen ble kalt ord og den halve størrelsen halvord, hvis noe i det hele tatt. I tillegg kalte VAX 64 bit for quadword, hvor quad kommer av det latinske ordet for fire.
Et annet eksempel er x86-familien. Den originale 8086-arkitekturen hadde en ordstørrelse på 16 bit, men den senere 80386 var en prosessor som opererte med 32 bit. Hadde 80386 vært et selvstendig design, ville ordstørrelsen vært 32 bit, men som en videreføring av 8086-designet forble benevnelsen ord knyttet til en datastørrelse på 16 bit. Det samme skjedde igjen med x86-64 som gikk over til 64 bit som naturlig enhet, men beholdt kompatibiliteten med de tidligere 16- og 32-bit prosessorene, og dermed 16-bit ord.
Dermed vil man i dag se datamaskinarkitekturer basert på en familie med nært beslektede størrelser snarere enn én enkelt altoverskyggende ordstørrelse. I en slik familie vil de mindre størrelsen gå et helt antall ganger opp i de større. Å trekke frem én av disse størrelsene som ordstørrelsen vil virke tilfeldig, og den størrelsen som kalles ord kan hete det kun av historiske grunner.

Dword, Qword og Oword

Sentrale størrelser utover ordet får gjerne egne navn. Dword (double word eller dobbeltord) er en enhet dobbelt så stor som et ord. På x86-maskiner, hvor ordstørrelsen er 16 bit, vil dword stå for en dataenhet på 32 bit eller 4 byte.
Qword (quadword eller kvadrupelord) er en dataenhet like stor som fire ord. For å igjen bruke x86 som eksempel, vil et Qword består av 64 bit siden et ord består av 16 bit enten prosessoren er 16-, 32- eller 64-bit.
Til slutt bruker Intel benevnelsen double quadrouple word eller DQword om dataenheten på 128 bit brukt av SSE. Microsoft Macro Assembler kaller den samme datastørrelsen Oword (octuple word).