Architektura IBM System/360
From Wikipedia, the free encyclopedia
Remove ads
Architektura IBM System/360 definuje vlastnosti společné sálovým počítačům IBM řady S/360 včetně instrukční sady. Prvky architektury jsou zdokumentované v příručkách IBM System/360 Principles of Operation[1][2] a IBM System/360 I/O Interface Channel to Control Unit Original Equipment Manufacturers' Information.[3]
Vlastnosti
Počítače řady System/360 mají následující vlastnosti:
- 16 32bitových registrů pro obecné použití
- 64bitový registr stavu procesoru (PSW), který obsahuje 24bitový čítač instrukcí (anglicky Instruction address)
- 24bitové adresy umožňují adresovat až 16 MB vnitřní paměti tvořené osmibitovými bajty
- volitelné 4 64bitové registry pro čísla s pohyblivou řádovou čárkou
- Byty a slova se ukládají do paměti v pořadí big endian
- Standardní instrukční sada zahrnující aritmetické operace s 32bitovými celými čísly a logické instrukce, je k dispozici na všech modelech System/360 (s výjimkou modelu 20, viz níže).
- Komerční instrukční sada přidává instrukce pro aritmetiku s desítkovými čísly s pevnou řádovou čárkou v kódování BCD; na některých modelech je volitelně, stejně jako vědecká instrukční sada, která přidává instrukce pro práci s čísly s pohyblivou řádovou čárkou. Univerzální instrukční sada zahrnuje obě výše uvedená rozšíření spolu s instrukcemi pro ochranu paměti a je na některých modelech standardem.
- Model 20 má zjednodušenou verzí standardní instrukční sady a pouze osm registrů pro obecné použití a s instrukcemi o délce půlslova (16 bitů), s komerční instrukční sadou a zvláštními instrukcemi pro vstup/výstup.
- Model 44 poskytuje několik speciálních instrukcí pro získávání dat a zpracování v reálném čase, a neobsahuje instrukce s dvěma paměťovými operandy. Firma IBM nabízela pro tento stroj emulátor 'Komerční instrukční sady“, který se zavedl do paměti a simuloval chybějící instrukce.
- Model 67 zahrnuje instrukce pro zpracovávání 32bitových adres a „dynamický překlad adres“ s přidanou privilegovanou instrukcí pro práci s virtuální pamětí.[4]
Remove ads
Vnitřní paměť
Vnitřní paměť (v terminologii IBM storage) počítačů System/360 sestává z 8bitových bytů. Některé instrukce pracují s většími jednotkami nazývanými půlslovo (halfword – 2 byty), slovo (fullword – 4 byty), dvojslovo (doubleword – 8 bytů), čtyřslovo (quad word – 16 bytů) a s bloky o velikosti 2048 bytů. Tato data jsou ukládána do paměti tak, že významnější byty jsou na nižších adresách (tzv. big-endian). Při použití datových jednotek větších než jeden byte je zpravidla nutné, aby byly umístěny na adrese, která je násobkem jejich velikosti (tzv. zarovnání).
Původní architektura System/360 umožňovala adresovat maximálně 224 = 16 777 216 bytů paměti. Pozdější rozšíření architektury modelu 67 umožňovalo adresovat až 232 = 4 294 967 296[Pozn 1] bytů virtuální paměti.
Remove ads
Adresování
Podobně jako u počítače UNIVAC III[5] neobsahují instrukce, které se odkazují na data ve vnitřní paměti, kompletní 24bitovou adresu; adresa je složena ze dvou složek: z tak zvané báze, uložené v bázovacím registru, a posunutí o velikosti 0 až 2047, které je uvedeno přímo v instrukci. Jako bázovací registr se mohou používat registry 1-15.[Pozn 2] V některých instrukcích, například posunech, se stejné výpočty provádějí pro 32bitové hodnoty, které nejsou adresami.
Datové formáty
Architektura S/360 definuje formát několika typů dat:
- Znaky (characters) se ukládají jako 8bitové byty.
- Binární celá čísla (integers) jsou zobrazena v doplňkovém kódu a mají velikost 16 bitů (půlslovo) nebo 32 bitů (slovo).
- Desítková čísla s pevnou řádovou čárkou jsou ukládána ve dvou formátech:
- BCD čísla ve zhuštěném (packed decimal) tvaru se ukládají jako 1-16 8bitových bytů obsahujících lichý počet desítkových číslic následovaný 4bitovým znaměnkem. Hodnoty A, C, E a F znamenají kladné znaménko a hodnoty B a D záporné znaménko. Hodnoty číslic A-F a hodnoty znaménka 0-9 nejsou platné, ale instrukce PACK a UNPK jejich validitu netestují.
- BCD čísla v zónovém tvaru (zoned decimal) se ukládají jako 1-16 8bitových bytů, z nichž každý obsahuje zónu v bitech 4-7 a číslici v bitech 0-3. Zóna posledního bytu je interpretována jako znaménko čísla.
- Čísla s pohyblivou řádovou čárkou (floating point) jsou na starších modelech uložena jako slova (32 bitů) nebo dvojslova (64 bitů). Na 360/85[6] a 360/195[7] existují také čísla s pohyblivou řádovou čárkou s rozšířenou přesností, která zabírají jedno čtyřslovo (16 bytů). Ve všech třech formátech obsahuje nejvyšší bit znaménko čísla, dalších 7 bitů obsahuje charakteristiku čísla (šestnáctkový exponent zvětšený o 64). Zbývající 3 byty nebo 7 bytů je mantisa. Kvůli použití šestnáctkového exponentu mohou být u nenulového čísla první tři bity mantisy nulové. Hodnoty s rozšířenou přesností mají v nižším dvojslově vlastní znaménko čísla a charakteristiky, které jsou na vstupu ignorována a na výstupu generována.
Instrukce pro práci se znaky a celými čísly jsou k dispozici na všech počítačích řady, instrukce pro práci s desítkovými čísly a čísly s pohyblivou řádovou čárkou jsou rozšiřující vlastnosti.
Remove ads
Formát instrukcí
Strojové instrukce pro S/360 mají délku dva, čtyři nebo šest bytů, přičemž kód operace (opcode) je vždy v první bytu (číslovaném jako byte 0). Instrukce mají jeden z následujících formátů:
- RR (dvoubytové). Byte 1 obvykle obsahuje dvě 4bitová čísla registrů, v některých případech, například u instrukce SVC, však tento byte obsahuje jediné 8bitové bezprostřední pole.
- RS (čtyřbytové). Byte 1 obsahuje dvě 4bitová čísla registrů; byty 2-3 udávají bázi a posunutí.
- RX (čtyřbytové). Bity 0-3 bytu 1 obsahují buď číslo registru nebo modifikátor; bity 4-7 téhož bytu obsahují číslo obecného registru, který slouží jako index; byty 2-3 udávají bázi a posunutí.
- SI (čtyřbytové). Byte 1 určuje bezprostřední pole; byty 2-3 udávají bázi a posunutí.
- SS (šestibytové). Byte 1 obsahuje dvě 4bitová pole nebo jedno 8bitové pole; každá dvojice bytů 2-3 a 4-5 udává bázi a posunutí. Kódování délky pole je délka-1.
Instrukce musí být v paměti uloženy vždy na sudé adrese; nejméně významný bit adresy instrukce je tedy vždy 0.
Remove ads
Stavové slovo programu (PSW)
Stavové slovo programu (Program Status Word, PSW)[2]:s.71–72 obsahuje množství příznaků pro řízení aktuálně běžícího programu. 64bitové PSW obsahuje (mimo jiné) adresu právě prováděné instrukce, podmínkový kód a masky přerušení.
Odchylky a rozšíření
System/360 Model 20 se natolik odlišuje od ostatních počítačů řady, že by neměl být pokládán za stroj s architekturou S/360.
System/360 Model 44 postrádá některé instrukce, ale bylo možné dokoupit programové vybavení, které chybějící instrukce simulovalo, což dovolovalo používat na těchto strojích standardní operační systémy a aplikace pro S/360.
Některé modely mají vlastnosti, které rozšiřují architekturu, například emulaci instrukcí nebo stránkování. Některé modely mají menší odchylky od architektury, jako např.
- Multisystémová podpora na S/360-65, která mění chování přímého ovládání a instrukci Set System Mask (SSM).[8]
- System/360 Model 67-2 měl podobné, ale nekompatibilní změny.[9]
Některé odchylky sloužily jako prototypy vlastností architektury S/370.
Remove ads
Odkazy
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads