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
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ěť
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í
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.
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.
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)
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.
Odkazy
Poznámky
- ↑ Dvojnásobek velikosti dostupné u pozdějšího System/370
- ↑ Při uvedení čísla registru 0 se místo obsahu registru 0 použije jako bázová adresa hodnota nula.
Reference
V tomto článku byl použit překlad textu z článku IBM System/360 architecture na anglické Wikipedii.
- ↑ IBM, 1964. IBM System/360 Principles of Operation. 1. vyd. [s.l.]: [s.n.]. Dostupné online. A22-6821-0.
- ↑ 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.
- ↑ 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.
- ↑ IBM CORPORATION. IBM System/360 System Summary. [s.l.]: [s.n.], 1974. Dostupné online. S. 3–3.
- ↑ Sperry Rand Corporation, 1962. Reference Manual UNIVAC III Data Processing System. [s.l.]: [s.n.]. Dostupné online. UT-2488.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ 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
- 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
Externí odkazy