# 32-bitine arvutiarhitektuur

**32-bitises** arvutiarhitektuuris on täisarvud, mäluaadressid või teised andmeüksused kuni 32 bitti (4 baiti) laiad. Samuti põhinevad **32-bitised** protsessorid ja ALU (*Arithmetic logic unit*) arhitektuurid sama suurtel registritel, aadressisiinidel ja andmesiinidel.

## Täisarvude salvestamise piirangud

32-bitine register suudab talletada 232 väärtust. Täisarvuliste väärtuste jaotumine 32 biti sisse sõltub täisarvude esitusviisist. Kaks kõige levinumat esitusviisi on (märgita) kahendsüsteem, kus saab esitada arve 0 kuni 4 294 967 295 (232–1) ja kahe täiend ehk –2 147 483 648 (–231) kuni 2 147 483 648(231).

Tähtis tähelepanek 32-bitise mäluaadressi puhul on see, et see suudab otse ligi pääseda maksimaalselt 4 GiB adresseeritavale mälule (praktikas on see piir madalam).

## Ajalooline ja tehniline perspektiiv

Mälu, digitaalse elektroonika vooluringid ja juhtmestik olid kallid 32-bitiste arhitektuuride esimestel aastakümnenditel (1960.–1980. aastad). Vanematel 32-bitistel protsessorite perekondadel (lihtsamatel ja seetõttu ka odavamatel) võis olla palju kompromisse ja piiranguid, et kulusid vähendada. Selleks võis olla näiteks 16-bitine ALU või välised (ka sisemised) siinid, mis on kitsamad kui 32-bitti, piirates mälu suurust või nõudes rohkem tsüklikorduseid käsu kättesaamiseks, täitmiseks ja/või tagasi kirjutamiseks.

Sellest hoolimata nimetati neid protsessoreid 32-bitisteks, kuna neil olid endiselt 32-bitised registrid ja käsud, mis olid võimelised käsitsema 32-bitiseid suurusi. Näitena võib tuua 1970. aastate Motorola 68000, mis oli 16-bitise baasdisainiga, aga selles olid 32-bitised registrid ja 32-bitine käsustik. Nii disainitud süsteeme nimetati ka 16/32-bitisteks.

Eelväljaanne XC68000 kiibist (Motorola), mis valmistati 1979
Uuemate 32-bitiste protsessorite disain ei ole enam niivõrd orienteeritud kulude vähendamisele. Näiteks 32-bitisel Pentium Pro protsessoril on 36 biti laiune väline aadressisiin, andes suurema aadressiruumi kui 4 GB, ning 64 biti laiune andmesiin, peamiselt selleks, et tagada tõhusama käskude ja andmete eelhanke.

## Arhitektuurid

Suuremad 32-bitised üldotstarbelised arvutiarhitektuurid on näiteks IBM System/360 ja selle 32-bitiseid järeltulijaid, DEC VAX, NS320XX, Motorola 68000 perekond, x86 arhitektuuri 32-bitine versioon Intel IA-32 ja 32-bitised versioonid ARM, SPARC, MIPS, PowerPC ja PA-RISC arhitektuuridest. Manusandmetöötluses kasutatavad 32-bitised arhitektuurid on näiteks 68000 perekond ning ColdFire, x86, ARM, MIPS, PowerPC ja Infineon TriCore.

## Rakendused

x86 arhitektuuris tähendab 32-bitine rakendus tarkvara, mis üldjuhul (kuid mitte alati) kasutab 32-bitist lineaarset aadressiruumi (või lamedat mälumudelit), mis on võimalik 80386 ja hilisemate kiipidega. Antud kontekstis nimetati rakendusi 32-bitisteks, et eristada neid rakendustest, mis olid kirjutatud 16-bitiste DOS-i, Microsoft Windowsi ja OS/2 jaoks protsessoritel 8088/8086 ja/või 80286. Nendel 16-bitistel mikroprotsessoritel oli segmenteeritud aadressiruum, kus rohkem kui 64 kilobaidi koodi ja/või andmete adresseerimiseks pidi programmid üle minema ühelt segmendilt teisele. Kuna see on väga aeganõudev võrreldes teiste operatsioonidega, võib sellest kannatada jõudlus. Lisaks on segmentidega programmeerimine üsna keeruline; spetsiaalseid mälumudeleid ning võtmesõnu *far* ja *near* tuli kasutada ettevaatlikult, mitte ainult assemblerkeeles, vaid ka kõrgtaseme keeltes nagu Pascal, kompileeritud BASIC, Fortran, C jne.

80386 ja selle järeltulijad toetavad täielikult 16-bitiste segmentidega 80286-t, aga ka 32-bitiseid aadressinihkeid (kasutades uusi 32-bitise laiusega põhi registreid). Kui põhiaadress kõikidel 32-bitistel segmentidel muuta 0-ks ja segmentide registreid ei kasutata otse, siis segmentatsioon võib ununeda ja protsessor hakkab näima olevat tavalise lineaarse 32-bitilise aadressiruumiga. Operatsioonisüsteemid nagu Windows või OS/2 hoolitsevad selle eest, et oleks võimalik kasutada nii 16-bitiseid (segmenteeritud) programme kui ka 32-bitiseid programme. Eelnev võimalus eksisteerib vaid tagasiühilduvuseks ning seda kasutatakse uue tarkvara arendamiseks.

## Pildid

Digitaalsetes piltides kasutatakse tihti RGBA-värviruumi, kus igal pikslil on 32-bitine värvus – 8 bitti punase, rohelise ja sinise jaoks ning 8 bitti läbipaistvuse ehk alfakanali jaoks. Mõned harvemini kasutatavad pildivormingud, näiteks RGBE, kasutavad samuti 32 bitti iga piksli jaoks.

Digitaalsete piltide korral võivad 32 bitti viidata ülisuure ulatusega pildivormingutele, mis kasutavad 32 bitti iga kanali jaoks – kokku 96 bitti piksli jaoks. Pildid, kus kanal kasutab 32 bitti, on mõeldud esindama väärtusi, mis on heledamad kui valge; neid väärtusi saab sel juhul kasutada, et täpsemini säilitada heledaid piirkondi siis, kui vähendada pildil olevat valgust või kui seda on näha läbi tumeda filtri või tuhmi peegelduse.

Näide selle kohta oleks peegeldus õliloigust; kuigi on näha vaid osake peegeldusest võrreldes peegli pinnaga, on heledate valguste peegeldused nähtavad säravate valgete aladena ja mitte tuhmide hallide kujudena.

## Viited

Artikli materjal on pärit  enne 1. Novembrit 2008  tingimustel.

## Välislingid

* HOW Stuff Works "How Bits and Bytes work (EN)"
* Ken Colburn on LockerGnome.com: *32-Bit Vs. 64-Bit Windows (EN)*