26 bit

A Wikipédiából, a szabad enciklopédiából

Az ARM processzor architektúrában a 26 bit az eredeti ARM processzorok egyik tervezési sajátosságára vonatkozik, mikor is a programszámláló (PC) és az állapotregiszter (PSR, processor status register) egyetlen regiszterbe van összevonva, ill. a kettő egyetlen 32 bites processzor-regisztert alkot, az R15-öst; amelyben az állapotbitek a felső 6 bitet foglalják el, a programszámláló pedig a maradék 26 bitet használja.

Az ARM2 processzor tervezésekor a címmezőt egyszerűen 26 bitesnek választották, ami 64 MiB memória címzését teszi lehetővé. A programszámlálónak a memóriában lévő utasításokat kell címeznie, ezért ennek mérete is szükségszerűen 26 bit. Azonban az eredeti ARM architektúrában az utasítások mérete rögzített 32 bit, azaz 4 bájt, és az utasításoknak szükségszerűen a négybájtos szóhatárra igazítva kell a memóriában elhelyezkedniük, ezért az utasítások címzésekor a programszámláló alsó 2 bitje mindig nulla. Ezt kihasználva a tervezők úgy döntöttek, hogy erre a két bitnyi helyre a processzor üzemmódbitjeit helyezik el, amely négy értéket kódolhat, azaz négy üzemmód jelzésére alkalmas. A négy üzemmód a USR26, SVC26, IRQ26, FIQ26 jelű, ellentétben a modern ARM processzorok 32 üzemmódjával (5 bit), amelyet már a programszámlálótól elkülönített programállapotszóban tárolnak az újabb ARM architektúrákban.

Ez a kialakítás hatékonyabb programvégrehajtást tett lehetővé, mivel a programszámláló és az állapotbitek egyetlen művelettel elmenthető vagy visszatölthető, ami gyorsabb szubrutinhívásokat és a megszakításokra való gyorsabb reagálást eredményezett a tradicionális kialakításokkal ellentétben, amelyekben két regiszter tartalmát kell elmenteni a szubrutinhívások esetén.

Rövid történet[szerkesztés]

Annak ellenére, hogy az ARM architektúra 32 bites, az architektúra 1-es és 2-es változatában a programszámláló és a processzor címsíne csak 26 bites, ami következésképpen 64 MiB-ra korlátozta a címezhető RAM méretét. Ez a csipek megjelenésekor még mindig hatalmas méretű memóriának számított, ám az architektúra későbbi változatai különböző módszerekkel igyekeznek elkerülni ezt a korlátozást.

Az ARM architektúra 3-as változatában bevezették a 32 bites PC-t és a különálló PSR regisztert, valamint a 32 bites címsínt, ami 4 GiB memória címzését engedi meg. Ez a változtatás a PC/PSR regiszterek elrendezésében inkompatibilitást okozott a korábbi architektúrákra írt programoknál, ezért az újabb processzoroknak van egy 26 bites kompatibilitási üzemmódjuk is, amelyben a korábbi PC/PSR kombinációt alkalmazzák. A processzor ebben a módban még mindig 4 MiB címzésére képes, azonban nem tud semmit végrehajtani a 3FFFFFC cím (64 MB) fölött. Ezt az üzemmódot használja az újabb processzorokkal szerelt Acorn Risc PC-ken futó RISC OS is, kihasználva az újabb processzorokat és megtartva a kompatibilitást a régebbi programokkal.

Az ARM architektúra 4-es változatában a 26 bites üzemmód támogatását opcionálissá (választhatóvá) tették, és az ARM architektúra 5-ös változatától kezdve teljesen el is hagyták, tehát ez az 5-ös és későbbi típusokból teljesen hiányzik.

MIPS[szerkesztés]

A MIPS architektúra nem tartalmazott ilyen korlátokat, de a 26 bit ennél is felbukkan az egyik utasítás formátumában: a 32 bites MIPS architektúrákban az elágazási utasítások ill. a programvezérlő utasítások J típusú utasításaiban szintén a 6+26 bites elrendezést alkalmazzák: ezekben a 6 felső bit kódolja az utasítást és a maradék 26 bit tárolja az ugrás v. elágazás célcímét, amely érdekes módon nem a PC-hez viszonyított relatív címkülönbség (ofszet), hanem egy 256 MiB-os szegmensen belüli abszolút cím. A cím kiszámításához az értéket még 4-gyel meg kell szorozni, mivel a MIPS utasítások szintén 4 bájtosak és a 32 bites szóhatárra igazítva tárolódnak a memóriában, így a címnek nem bájtra, hanem (32 bites) szóra kell mutatnia, és a legalsó 2 bit itt is elhagyható. Ez 228, azaz 256 MiB címzését engedi meg; a teljes 32 bites címet a processzor úgy képzi, hogy ezt a 28 bitet kiegészíti az éppen aktuális programszámláló legfelső 4 bitjével.[1]

A szegmenshatárokon átnyúló ugrásokra másfajta utasítások szolgálnak, amelyek regiszterben tárolt címeket használnak.[1]

Saturn Launch Vehicle Digital Computer[szerkesztés]

Mindezeket időben megelőzte a Saturn Launch Vehicle Digital Computer, amely a NASA egy konstrukciója, az 1960-as és 1970-es években volt üzemben a Saturn V rakéták automata vezérlőegységében. Ebben a gépben 13+1 bites memóriaszavakat használtak, amelyeket szótagoknaksyllable – neveztek. A szótagban 13 bit tárolta az értékes adatot és 1 bit pedig a paritásellenőrzést szolgálta. Az utasítások egy szótag, az adatszavak két szótag méretűek voltak, tehát egy adatszó mérete ebben a gépben is 26 bites volt. A memória ebben a gépben mágnesmagos kialakítású volt.

Jegyzetek[szerkesztés]

  1. ^ a b 1.5.2 Addressing and Memory Accesses. In Dominic Sweetman: See MIPS Run. (angolul) 2. kiad. (hely nélkül): Morgan Kaufman, Elsevier. 2007. 24–25. o. ISBN 9780120884216, ISBN 0120884216 „Rather than make this branch PC relative, this is interpreted as an absolute address within a 256-MB segment.”  

Fordítás[szerkesztés]

Ez a szócikk részben vagy egészben a(z) 26-bit című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel.

További információk[szerkesztés]

Kapcsolódó szócikkek[szerkesztés]