Ord (datorterm)

Från Wikipedia
Hoppa till: navigering, sök
Bit
1 4 8 12 16 18 24 26 31 32 36 48 60 64 128 256 512
Applikation
16 32 64
Flyttalsprecision
×½ ×1 ×2 ×4
Flyttalsdecimalprecision
32 64 128

Ett ord är den dataenhet som en processor, eller ett minne av RAM-typ, kan behandla i ett stycke. Enhetens storlek anges som ordbredd i bitar och varierar mellan olika datorer.

Normalt avses med ett ord den dataenhet som ryms i ett av processorns register och därmed kan adderas med ett annat ord med en instruktion. På många datorer sammanfaller processorns ordbredd med bredden på den minsta minnesenhet som kan adresseras separat, bredden på minnesbussen, bredden på adressbussen och storleken i ordbredd på den minnesrymd som kan adresseras. Sambanden beror dock främst på ändamålsenlighetsavväganden och undantag är vanliga.

Moderna datorer har ofta en ordbredd på 32 eller 64 bitar. I äldre datorer, inbyggda system och andra speciella sammanhang används många andra ordbredder (inte nödvändigtvis potenser av två) och ordbredden kan också variera beroende på kontext (jfr Harvardarkitektur).

Moderna PC-datorer byggda på x86-arkitekturen kan arbeta med både 32 och 64 bitars ordbredd (i vanlig bemärkelse) och kan direkt adressera 232 respektive 252 bytes (ej 264 eftersom vissa bitar används på annat sätt). Ett systemprogram kan skrivas så att applikationer för 32- respektive 64-bitars ordlängd kan exekvera sida vid sida med full prestanda. I fallet x86 är begreppet WORD (ofta versalt) definierat som 16 bitar på assembler-nivå och i teknisk dokumentation. Detta bottnar i en långt gående tradition av bakåtkompatibilitet med äldre processorer (ända tillbaka till Intel 8086 från 1978) och motsvarar alltså vare sig bredden på processorregister, ALU, databuss eller adressbuss på en modern x86-processor (som också kan adressera och operera på såväl 16-bitars som 8-bitars kvantiteter separat, oavsett arbetsläge).

Då heltal som ryms i ett ord ofta kan hanteras särskilt effektivt kan man deklarera variabler av denna storlek med ett särskilt namn i de flesta programspråk. Sambandet är dock ofta beroende av både datorarkitektur och aktuell implementering eller kompilator, och även andra hänsyn kan spela in.

Se även[redigera | redigera wikitext]