Egy harmadik generációs számítógép
Mint már fentebb említettük, a korszak és a későbbi fejlődés meghatározó tényezője volt az IBM System/360-as gépcsalád. (Az RCA (Radio Corporation of America) által gyártott Spectra 70-es sorozat nagymértékben kompatibili
s volt az IBM gépeivel.)53. ábra:
IBM 360-as számítógép
Maga a számítógép a két nagy szekrényben a terem közepén látható, az egyiknek az oldalán a korábbi generációkból örökölt vezérlőpult, amin az egyes regiszterek ál
lapotát lehetett leolvasni és beállítani. A kép közepén van az operátori ún. konzolírógép: ezen keresztül lehetett parancsokat adni az operációs rendszernek és az üzeneteket is ide írta ki a gép. Balra elöl mágneslemezes egységek láthatók, a háttérben mindkét oldalon mágnesszalag-meghajtók, jobboldalt hátul pedig egy sornyomtató.
Tervezési szempontok
A 360-as gépek tervezésénél a fő szempontok az alábbiak voltak:
Az alábbi táblázat a 360-as gépcsalád egy kicsi és egy nagy tagjának paramétereit hasonlítja össze:
Alrendszer |
Paraméter |
Model 30 |
Model 70 |
Operatív tár |
A memória ciklusideje |
2 m s |
1 m s |
A memória-busz szélessége |
8 bit |
64 bit |
|
Az átlapolt memóriamodulok száma |
1 |
2 |
|
Maximális adatátviteli sebesség |
4 Mbit/s |
128 Mbit/s |
|
Ciklusidő |
1 m s |
0,2 m s |
|
CPU |
A regiszterek felépítése |
ferritgyűrűs |
félvezetős |
A belső busz szélessége |
8 bit |
64 bit |
|
Relatív számítási sebesség |
1 |
50 |
A rendszer felépítése
Az ábrán egy tipikus 360-as gép általános felépítése látható (a későbbi 370-es sorozat ugyanilyen szerkezetű volt). Igen nagy a hasonlóság a korábbi IBM 7094-es géphez.
Itt kétfajta IOP-ot használtak, a multiplexer (vagy multiplexor) csatornát és a szelektor csatornát. A multiplexer csatorna több perifériát is ki tudott szolgálni olyan módon, hogy az eszközök és az operatív tár közötti adatátvitelt átlapolta, multiplexelte. Erre a csatornára kapcsolták a lassú perifériákat (nyomtató, kártyaolvasó, kártyalyukasztó), mert az eszközök fizikai sebessége megengedte, hogy közben az IOP más igényeket is kiszolgáljon. A szelektor csatorna viszont csak egy hozzá kapcsolt eszköz kiszolgálásával foglalkozott egyidejűleg. Erre kapcsolták a gyors perifériákat, tipikusan a mágneslemezeket. Mindegyik IOP egy egységes szerkezetű buszra, az úgynevezett I/O interfészre csatlakozott. Ezt a buszt közösen használták az adott IOP-ra kapcsolt eszközök. Mindegyik eszközhöz, illetve az azonos típusú eszközök egy csoportjához volt még egy helyi vezérlő egység, ami már az adott fajta perifériára jellemző felépítésű volt.
A memória szervezése, adatformátumok
A memória bájt szervezésű volt, azaz a bájt volt a legkisebb elérhető egység és minden bájtnak saját címe volt. Használatos fogalom volt még a szó, ami 4 szomszédos bájtot jelentett. Ugyancsak használták a félszót (2 bájt) és a duplaszót (8 bájt).
A numerikus adatokat négy alakban lehetett tárolni: fixpontos bináris (2 vagy 4 bájt), lebegőpontos bináris (4, 8 vagy 16 bájt), zónázott decimális (1 számjegy/bájt) és pakolt decimális (2 számjegy/bájt). A decimális adatok változó hosszúságúak lehettek, a számjegyeket a BCD kódjukkal tárolták. A fixpontos bináris számokat kettes komplemens formában tárolták. A bináris számokat tudományos alkalmazásokhoz szánták, a decimálisakat pedig üzleti alkalmazásokhoz. A decimális számokkal való számolásra a processzornak külön decimális aritmetikai áramkörei voltak.
Az alfanumerikus adatok változó hosszúságúak lehettek. Egy bájtban egy karaktert tároltak, általában EBCDIC (Extended Binary Coded Decimal Interchange Code) kóddal.
A CPU felépítése
Az IBM 360-as (és a későbbi 370-es) gépcsalád jellemző CPU-felépítése az ábrán látható. Az aritmetikai-logikai egység három különböző funkciójú részre osztható:
A processzorban kétféle, egymástól független regiszter-garnitúra szolgált az adatok és a címek tárolására. Volt 16 db általános célú regiszter, amikben az operanduszokat és az eredményeket lehetett tárolni, de indexregiszterként is lehetett használni őket. A lebegőpontos műveletekhez külön volt 4 db lebegőpontos regiszter. Ezek az általános célú és lebegőpontos regiszterek a korábbi gépek akkumulátorát és szorzó-hányados regiszterét is helyettesítették. A DR adatregiszter, az AR címregiszter és az IR utasításregiszter funkciója megegyezik a korábbi gépeknél látottal.
Egy külön regiszter van a programállapot-szó (PSW, Program Status Word) tárolására. Ez a korábban látott utasításszámláló regiszter, a PC kiterjesztéseként is felfogható. A következőként végrehajtandó utasítás címén kívül a PSW arról is tartalmazott információt, hogy a CPU milyen interruptra reagálhat. A PSW-t alapvetően az interruptok feldolgozására szánták. Interrupt esetén a CPU a PSW-t elteszi az operatív tárba, majd onnan egy új PSW–t tölt be. Ez természetesen egy új címet tartalmaz a következő végrehajtandó utasításhoz, tehát így hívódik meg a megszakítást lekezelő program. E program végrehajtása után a régi PSW visszatölthető a memóriából, és így a megszakított program végrehajtása folytatható.
A CPU többfajta állapotban lehet. Amikor az operációs rendszer egy rutinját hajtja végre, akkor supervisor állapotban van. Bizonyos utasításokat csak ebben az állapotban lehet végrehajtani. A felhasználói programok végrehajtásakor a CPU program állapotban van, ez az általános helyzet. A CPU állapotát a PSW egy részének tartalma szabja meg.
A PSW tartalmazott egy kulcsmezőt is, amivel a memória védelmét oldották meg. Az operatív tárat 2 kbájtos blokkokra osztották és mindegyik blokkhoz meg lehetett adni egy memória-kulcsot. Ez a kulcs az adott blokkhoz való hozzáférést engedélyezte (csak olvasható, írható és olvasható, vagy egyik sem). Amikor egy utasítás egy tárcímre hivatkozott, az utasítás csak akkor hajtódott végre, ha a PSW-ben lévő kulcsmező tartalma megegyezett az elérendő memória-blokk kulcsával.
Utasításkészlet
Az IBM 360-as gépcsalád utasításai 2, 4 vagy 6 bájt hosszúak lehettek és egy, kettő vagy három címet tartalmaztak. Öt különböző típusú utasítás van az operanduszok helyének megfelelően:
Az utasítások funkcióját tekintve megvoltak a korábban is említett fő típusok: adatátviteli, aritmetikai, elágazó és IO utasítások. A különböző utasításkódok száma majdnem 200 volt. Ennek jó része abból adódott, hogy egy utasításnak, pl. az összeadásnak különböző altípusai voltak az operanduszok típusának megfelelően.
Voltak újfajta utasítások is. Volt utasítás pl. arra, hogy adott mennyiségű adatot az operatív tár egyik részéből a másikba mozgassanak. Sok utasítás volt a különböző típusú adatok közötti konverzióra is. Logikai műveleteket is végre lehetett hajtani. Volt egy csoport úgynevezett privilegizált utasítás, amelyeket csak a CPU supervisor állapotában lehetett végrehajtani. Ezek szolgáltak a PSW módosítására, a memóriavédelmi kulcsok beállítására, stb.