Architektura IBM System/360

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 editovat

Registry IBM S/360
63 ... 47 ... 31 ... 15 ... 00 (číslo bitu)*
Registry pro obecné použití
0 R0
1 R1
2 R2
3 R3
4 R4
5 R5
6 R6
7 R7
8 R8
9 R9
10 R10
11 R11
12 R12
13 R13
14 R14
15 R15
Registry pro hodnoty s pohyblivou řádovou čárkou
FP0 FP0
FP2 FP2
FP4 FP4
FP6 FP6
Stavové slovo programu / Adresa instrukce
PSW (40 bitů) IA (24 bitů) Stavové slovo programu

 * V dokumentaci IBM jsou bity číslovány v opačném pořadí než zde
   tj. nejvýznamnější bit (zcela vlevo) se označuje jako bit číslo 0.

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]

Vnitřní paměť editovat

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.

Adresování editovat

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 editovat

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.

Formát instrukcí editovat

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.

Stavové slovo programu (PSW) editovat

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í editovat

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.

Odkazy editovat

Poznámky editovat

  1. Dvojnásobek velikosti dostupné u pozdějšího System/370
  2. Při uvedení čísla registru 0 se místo obsahu registru 0 použije jako bázová adresa hodnota nula.

Reference editovat

V tomto článku byl použit překlad textu z článku IBM System/360 architecture na anglické Wikipedii.

  1. IBM, 1964. IBM System/360 Principles of Operation. 1. vyd. [s.l.]: [s.n.]. Dostupné online. A22-6821-0. 
  2. a b IBM. IBM System/360 Principles of Operation. 8. vyd. [s.l.]: [s.n.], září 1968. Dostupné online. A22-6821-7.  Revised by IBM. ibid.. [s.l.]: [s.n.], 12. května 1970. GN22-0354.  a IBM. ibid.. [s.l.]: [s.n.], 8. června 1970. GN22-0361. 
  3. IBM. IBM System/360 I/O Interface Channel to Control Unit Original Equipment Manufacturers' Information. 5. vyd. [s.l.]: [s.n.] Dostupné online. A22-6843-3. 
  4. IBM CORPORATION. IBM System/360 System Summary. [s.l.]: [s.n.], 1974. Dostupné online. S. 3–3. 
  5. Sperry Rand Corporation, 1962. Reference Manual UNIVAC III Data Processing System. [s.l.]: [s.n.]. Dostupné online. UT-2488. 
  6. IBM. IBM System/360 Model 85 Functional Characteristics. 2. vyd. [s.l.]: [s.n.], červen 1968. Dostupné v archivu pořízeném dne 2012-03-14. A22-6916-1.  Archivováno 14. 3. 2012 na Wayback Machine.
  7. IBM. IBM System/360 Model 195 Functional Characteristics. 2. vyd. [s.l.]: [s.n.], srpen 1970. Dostupné v archivu pořízeném dne 2009-01-09. GA22-6943-1.  Archivováno 9. 1. 2009 na Wayback Machine.
  8. IBM. IBM System/360 Model 65 Functional Characteristics. 4. vyd. [s.l.]: [s.n.], září 1968. Dostupné v archivu pořízeném dne 2011-07-22. A22-6884-3. S. 30–34.  Archivováno 22. 7. 2011 na Wayback Machine.
  9. IBM. IBM System/360 Model 67 Functional Characteristics. 3. vyd. [s.l.]: [s.n.], únor 1972. Dostupné v archivu pořízeném dne 2021-03-05. GA27-2719-2.  Archivováno 5. 3. 2021 na Wayback Machine.

Literatura editovat

  • PRASAD, N.S. IBM Mainframes. [s.l.]: McGraw-Hill, 1989. Dostupné online. ISBN 0070506868.  Kapitola 3 (s. 41-110) popisuje architekturu System/360.

Související články editovat

Externí odkazy editovat