For faster navigation, this Iframe is preloading the Wikiwand page for 31 bites architektúra.

31 bites architektúra

Bit
1 4 8 12 16 18 24 31 32 36 48 60 64 128 256 512
Alkalmazás
16 32 64
Lebegőpontos számítás pontossága
x1 x2 x4
Lebegőpontos számítás decimális pontossága
32 64 128

A számítógép-architektúrák területén 31 bites egészek, memóriacímek és más adategységek azok, melyek legfeljebb 31 biten (3,875 oktett) kifejezhetők, illetve ilyen szélesek. 31 bites mikroprocesszor-, illetve ALU-architektúrák továbbá azok, melyek ilyen méretű regisztereket, címsíneket és adatsíneket használnak.

Talán az egyetlen, 31 bites címzéssel rendelkező architektúra egyben a számítástechnika történetének leghíresebb és legtöbb jövedelmet hajtó gépcsaládja volt. Az IBM 1983-ban mutatta be a 31 bites címzésű System/370-XA mainframe-architektúrát a korábbi, 24 bites modellek frissítéseként. Ez a bővítés 128-szorosára növelte a megcímezhető memória méretét, lehetővé téve a programoknak a 16 MiB fölötti (a „vonal fölötti” az akkori technikai anyagokban) memória megcímzését.

Architektúra

[szerkesztés]

A System/360- és a korai System/370-architektúrák általános célú regiszterei 32 bit szélesek voltak, 32 bites aritmetikai utasításokat támogattak és a címeket is 32 bites szavakban tárolták, így az architektúrát 32 bitesnek lehet tekinteni, de a gépek figyelmen kívül hagyták a címek felső 8 bitjét, így valójában 24 bites címzésről volt szó. Az XA kiterjesztéssel elérték, hogy a címtartomány 2 GiB-ra bővüljön (31 kihasznált címbit).

Átállás

[szerkesztés]

Az átállás nehéznek bizonyult: az assembly programozók a cím 32 bitjének felső, szabad bájtját csaknem 20 éven keresztül jelzőbitekre használták el. Az IBM-nél kettős címzési forma támogatása mellett döntöttek, hogy az átállás a lehető legfájdalommentesebb legyen: ha a 32 bites cím legértékesebb bitje (MSB, bit 0) be van kapcsolva, a következő 31 bitet virtuális címként kell értelmezni. Ha az MSB ki van kapcsolva, akkor csak az alsó 24 bitet tekintik a cím részének, ahogy az XA előtti rendszereken volt szokásos. Így a programok továbbra is használhatták a felső bájt hét, legalsó helyiértékű bitjét egyéb célokra, csak arra kellett figyelniük, hogy a legfelső bitet kikapcsolva hagyják. Csak azokat a programokat kellett módosítani, amik a címet tartalmazó szó legfölső (balszélső) bitjét 1-re állították. Ez érintette a címekkel végzett összehasonlításokat is: a szó balszélső bitje előjelbitként is értelmezhető, aminek 0 értéke negatív számra utal. Az aritmetikai összehasonlításokat végző programok fordított eredményeket kaphattak. Két, különben azonos címet különbözőnek találhattak, ha éppen az egyik előjelbitje be volt kapcsolva, még ha a többi bitjeik pontosan meg is egyeztek. Szerencsére ezek a problémák a legtöbb, magas szintű nyelvet (leginkább COBOL-t vagy FORTRAN-t) használó programozó számára láthatatlanok maradtak. Az IBM ráadásul az átállás időszakában egy ideig mindkét üzemmódot támogató hardvert gyártottak.

A CPU két különböző üzemmódban képes működni, amelyek között a BASSM (Branch And Save [return address] and Set Mode) és a BSM (Branch and Set Mode) utasításokkal lehet átváltani.

24 bites módban a címek felső 8 bitje figyelmen kívül marad; minden kód- és adatterület az alső 16 MiB-os tartományban kell elhelyezkedjen; a BAL és BALR utasítások a visszatérési cím felső byte-jába más információt helyeznek (pl. a programmaszk értékét); az új BAS és BASR utasítások a visszatérési cím legfelső bájtját nullára állítják (az MSB 0 értéke a CPU 24 bites üzemmódját jelzi, a következő hét nulla értékű bit a 31 bites cím része).

31 bites módban a címek legfelső bitje figyelmen kívül marad; az adat- és kódterületek tetszőleges helyen lehetnek a teljes 2 GiB-os címtartományban; a BAL, BALR, BAS és BASR utasítások a visszatérési cím legfelső bitjét 1-re állítják, ami a CPU 31 bites üzemmódját jelenti.

Kompatibilitási probléma akkor léphet fel, amikor 24 bites módban BAL/BALR utasítással előállított címet 31 bites módban akarunk használni: a legfelső bájtban lévő „szemét” miatt a cím érvénytelen.

Kompatibilis programozáshoz a BAL/BALR helyett BAS/BASR-t kell használni (vagy esetleg egy LA (load address) és egy B/BR (branch) utasításból álló párt); a címeket mindig négy bájton tárolni, ideértve a saját és a külső komponenseket, például a rendszerhívásokat.

További tudnivaló, hogy az egyes CSECT-ek két új attribútumot kaptak: AMODE (címzési mód: milyen CPU üzemmódban futtatható a kód (ha a CSECT kódot tartalmaz)) és RMODE (elhelyezkedés: a címtartományban hová kerülhet a CSECT). AMODE lehetséges értékei 24, 31 és ANY (bármelyik); RMODE lehetséges értékei 24 és ANY. Gyakran használt kombinációk: AMODE=RMODE=24 és AMODE=RMODE=ANY. Érvénytelen kombináció: AMODE=24 és RMODE=ANY. A többi három kombináció speciális alkalmazásokhoz használható.

370/ESA architektúra

[szerkesztés]

Az IBM az 1990-es években bemutatott 370/ESA architektúrájával (későbbi nevén 390/ESA, végül ESA/390 vagy System/390, röviden S/390) teljesedett ki a 31 bites virtuális címzésre való áttérés, a címzési módot jelző bit megtartásával. Ezek a későbbi architektúrák 2 GiB fizikai memóriánál többet is tartalmazhatnak, és támogatják több, legfeljebb 2 GiB méretű címzési tér egyidejű használatát. 2006 közepén még mindig nem túl sok program volt, amit komolyan korlátozott volna ezen többszörös 31 bites címzési mód elégtelensége.

Z/architecture

[szerkesztés]

Ennek ellenére az IBM az ezredfordulóra áttörte a 2 GiB-os lineáris címzési korlátot, az első 64 bites z/Architecture rendszer, az IBM zSeries Model 900 2000-es megjelentetésével. Az XA-átállástól eltérően, a z/Architecture nem használja a legfelső bitet a korábbi kódok detektálására. Mégis, a z/Architecture fenntartja a kompatibilitást a korábbi 31 bites, sőt 24 bites kódokkal, akár az új, 64 bites kódokkal egyidőben futtatva is.

Linux/390

[szerkesztés]

Miután a Linux/390 1999-es megjelenésekor az akkori 32 bites adatot/31 bites címet támogató hardver volt elérhető, a z/Architecture előtti, kezdeti nagygépes Linux-alkalmazások 31 bites címzésre voltak korlátozva. Ez a korlát eltűnt a 64 bites hardver, a 64 bites Linux on zSeries és a 64 bites Linux-alkalmazások megjelenésével. Az IBM 31 bites címzési módja támogatja a kibővített tárterületet a 31 bites alkalmazások számára, azonban egy-egy alkalmazáspéldány számára csak 2 GiB munkaterület áll rendelkezésre. A 31 bites címzésű hardveren futó, nem 64 bites Linuxokon a 2 GiB fölötti memóriaterület RAM diskként használható.

Jegyzetek

[szerkesztés]

Fordítás

[szerkesztés]
  • Ez a szócikk részben vagy egészben a 31-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. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.

További információk

[szerkesztés]
{{bottomLinkPreText}} {{bottomLinkText}}
31 bites architektúra
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?