Egy második generációs gép (az IBM 7094) felépítése Technikai részletek az információs rendszerek történetének 6. fejezetéhez Forrás: Hayes, John P.: Computer Achitecture and Organization. McGraw-Hill Book Company, 1978.
Az IBM 7094 előzményei 1955, csöves IBM 704: Indexregiszter Lebegőpontos aritmetika Az első üzleti számítógép, aminek volt egy „vezérlőprogramja”, egy kezdetleges operációs rendszer Későbbi modellek és az utód (IBM 709): Input-output processzor A 7090 és a 7094 gyakorlatilag az IBM 709 tranzisztorizált változata Az IBM 7094 tudományos célú számítógép
Az információ tárolási formája 36 bites szóhossz 1 szó = 1 előjeles fixpontos szám Az első (legnagyobb helyiértékű) bit az előjelbit Aztán a 2-1, 2-2, … 2-35 helyiérték 1 szó = 1 előjeles lebegőpontos szám Mantissza: 28 bit Karakterisztika: 8 bit 1 szó = 6 karakter (6 x 6 bit) (input-output esetén) 1 szó = 1 utasítás Az első 21 bit a művelet kódja 15 bit memóriacím (a másik operadusz az egyik regiszterben) Így 32 kiloszó közvetlenül címezhető
A CPU felépítése: az ALU Gyakorlatilag megegyezik az IAS felépítésével Az operátori konzol nem a CPU része, de közvetlen hozzáférést biztosít a regiszterek tartalmához
A CPU felépítése: az utasításpuffer szerepe A gép memóriája két független modulból áll Egyikben a páros, másik-ban a páratlan címek Egyidőben elérhetők (átlapolás, interleaving) Egy memóriából való olvasás mindig két egymás utáni cím tartalmát szolgáltatja A második utasítást félre kellett tenni az első szóban lévő utasítás végrehajtásáig
A CPU felépítése: az indexregiszterek használata 7 db 15 bites indexregiszter Az utasításkódokban egy 3 bites rész adta meg, hogy melyik indexregisztert kell használni. A tényleges tárcímet úgy kapták meg, hogy az AR címregiszter tartalmából a címkiszámító áramkörök kivonták a megadott indexregiszter tartalmát. Úgy lehetett ciklust szervezni, hogy a program eredeti utasításai nem változtak meg, csak az indexregiszter tartalmát változtatta a program.
Az indirekt címzés A gép egy másik hasznos lehetősége Ha ez volt előírva az utasításban, akkor a gép a szokásos módon ért el egy memóriacímet, de az utasítást nem annak a tartalmával hajtotta végre, hanem az ott lévő adatot egy újabb címként értelmezte, és ezen az újabb címen lévő adattal hajtotta végre az utasítást.
A gép utasításkészlete Több mint 200 utasítás Adatátviteli utasítások A CPU és a memória, vagy két regiszter között Fixpontos aritmetikai utasítások Lebegőpontos aritmetikai utasítások Logikai utasítások Az indexregiszterek módosítására szolgáló ut. Feltétlen és feltételes vezérlésátadás Input-output utasítások
Szubrutinhívás Hívásra TSX kódú utasítás (Transfer and Set indeX) HIVAS TSX SUB, 4 Az utasítás saját címét a 4-es index-regiszterbe teszi Átadja a vezérlést a SUB címkével jelzett helyre Visszatérésre TRA kódú utasítás (TRAnsfer) TRA 1, 4 1-et ad a 4-es index-regiszter tartalmához (így a HIVAS címke utáni címet kapja) Erre a címre adja a vezérlést
Paraméterátadás a szubrutinnak Pl. két paraméter esetén őket a HIVAS címke utáni két szóba teszik A szubrutin megtalálja őket a 4-es indexregiszter segítségével Visszatérés a TRA 3, 4 utasítással, ez a paraméterek utáni szóra adja a vezérlést
Az input-output végrehajtása Az IO processzorok speciális IO programot hajtottak végre (ez is az operatív tárban van) IO esetén a CPU elküldte az IO processzornak a periféria címét és az IO program kezdőcímét Adatátvitel az IOP és a memória között szavanként, az IOP és a periféria között karakterenként (6 bit) Az IO végén állapotregiszter beállítása (a CPU rendszeresen ellenőrzi) Az IOP küldhet speciális jelet (interrupt) is a CPU-nak
A memória-hozzáférés vezérlése A CPU is és az IO processzor is hozzá akar férni Vezérlőegység szükséges IO ritkábban van, ezért elsőbbséget élvez A CPU igényét egy ciklusra felfüggeszti a vezérlő (cikluslopás, cycle stealing)