Mine sisu juurde

32-bitine arvutiarhitektuur

Allikas: Vikipeedia
(Ümber suunatud leheküljelt 32-bit)

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

[muuda | muuda lähteteksti]

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).[1]

Ajalooline ja tehniline perspektiiv

[muuda | muuda lähteteksti]

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.[2][3]

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.[4]

Arhitektuurid

[muuda | muuda lähteteksti]

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.[5] [6]

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[7] 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.[3][8]

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.[6]

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.[9][10]

  1. "What Is The Difference Between 32-bit & 64-bit Windows?, Karl L. Gechlik, makeuseof.com, 23. veebruar 2010". Vaadatud 29. jaanuar 2015.
  2. A History of Modern 64-bit Computing, Matthew Kerner, Neil Padgett, veebruar 2007
  3. 3,0 3,1 Benj Edwards (29. jaanuar 2016). "Birth of a Standard: The Intel 8086 Microprocessor".
  4. Gwennap, Linley (16. veebruar 1995). "Intel's P6 Uses Decoupled Superscalar Design" (PDF). Vaadatud 3. detsember 2012. {{cite journal}}: viitemall journal nõuab parameetrit |journal= (juhend)
  5. "What do IA-32, Intel® 64 and IA-64 Architecture mean?". Intel. Vaadatud 29. jaanuar 2015.
  6. 6,0 6,1 "Intel IA-32 Architecture" (PDF). 29. jaanuar 2016.
  7. 80286 jaoks oli ka UNIXi variante
  8. "iAPX 86,88 User's Manual" (PDF). 29. jaanuar 2016. Originaali (PDF) arhiivikoopia seisuga 3. aprill 2013. Vaadatud 29. jaanuar 2016.
  9. Steve Berardi (29. jaanuar 2016). "16-bit Vs. 32-bit Vs. 64-bit: What Does it All Mean?".
  10. "Is there a difference between 16-bit, 24-bit, and 32-bit color?". computerhope.com. 29. jaanuar 2016.

Artikli materjal on pärit https://en.wikipedia.org/wiki/Free_On-line_Dictionary_of_Computing enne 1. Novembrit 2008 https://en.wikipedia.org/wiki/GNU_Free_Documentation_License tingimustel.

Välislingid

[muuda | muuda lähteteksti]