ODRA 1204

A Wikipédiából, a szabad enciklopédiából
ODRA 1204 központi egység, monitor írógép, kezelőpult a BME Villamosmérnöki Kar Számítástechnikai Csoportjánál

Az ODRA 1204 lengyel fejlesztésű (ELWRO- Wrocławskie Zakłady Elektroniczne), szilícium tranzisztorokból felépített, műszaki-tudományos számításokra orientált, egycímes, gazdag utasításrendszerű, mikroprogramozott Archiválva 2017. augusztus 8-i dátummal a Wayback Machine-ben számítógép volt, csatorna- és többszintű megszakítási rendszerrel rendelkezett, amely lehetővé és szükségessé tette felügyelőprogram alatti működést. A gép lebegő- és duplaszavas fixpontos aritmetikával is rendelkezett.

Története[szerkesztés]

A wroclawi ELWRO számítástechnikai gyár, amely 1959-1993 között működött, számos önálló fejlesztésű (ODRA 1003, ODRA 1013, ODRA 1103, ODRA 1204) és licenc alapján fejlesztett (ODRA 1304, ODRA 1305, ODRA 1325, R32) számítógépet gyártott, KGST viszonyok között közepes/nagy sorozatban a lengyel és a szocialista piac számára. Magyarországon is számos ELWRO gyártmányú számítógép működött, elsődlegesen a felsőoktatásban. Az ODRA 1204 számítógépből 1967-72 között 179 példányt gyártottak, ebből 114-et export piacra.[1] Magyarországon 8 db ODRA 1204 működött.

Műszaki adatok[szerkesztés]

Architektúra[szerkesztés]

Az ODRA 1204 második generációs, szilícium tranzisztorokból felépített, 24 bites aritmetikával rendelkező, ferritmagos, szószervezésű (egy szó 24 bit), mikroprogramozott, egy címes, komplex utasítás és címzési rendszerrel rendelkező, univerzális célú számítógép volt (CISC).

Regiszterek[szerkesztés]

A gép fő regisztere a 24 bites „Aakkumulátor regiszter, amellyel az aritmetikai és logikai műveletek lettek végrehajtva. A másik a „W” (az akkumulátor meghosszabbítása) regiszter, amelyik a lebegő- és duplaszavas fixpontos műveleteknél került felhasználásra, szintén 24 bites volt.

Ezen kívül még 3 darab, úgynevezett index regiszter („B” regiszter) állt rendelkezésre az utasítás címének módosítására. Érdekességként megemlítjük, hogy ezek memória címen is elérhetők voltak. Az aritmetikai és logikai műveletek automatikusan beállították a 3 db 1 bites feltétel regisztert („U” negatív, „Z” nulla, „Nd” túlcsordulás), amelyek a feltételes programelágazásra szolgáltak. A gép rendelkezett utasításszámlálóval, ami a 16 bites „L” regiszter volt, ez az ugrási utasításoktól eltekintve meghatározta a szekvenciálisan következő utasítás címét.

A fent említetteken kívül a gépnek voltak még egyéb regiszterei is, amelyek csak a felügyelőprogram működésében játszottak szerepet, ezeket itt nem részletezzük.

Számábrázolás[szerkesztés]

A gép a normál (egyszeres pontosságú) fixpontos számokat egy szóban, 24 biten kettes komplemens formában ábrázolta, [-8388608, 8388607] tartományban. A gép a hosszú (kétszeres pontosságú) fixpontos számokat 48 biten kettes komplemens formában ábrázolta, [-140737488355328, 140737488355327] tartományban és tárolta azt az A & W regiszterben, vagy két egymást követő memória szóban. A lebegőpontos számokat 38 bites mantissza (kettes komplemensben) és 10 bites karakterisztikával (eltolt nullpontú értékben) ábrázolta, kerekítve és normalizálva, abszolút értékben [10−153, 10+153] tartományban kb. 11 decimális számjegy pontossággal tárolta az A & W regiszterben, vagy két egymást követő memória szóban.

Memória[szerkesztés]

Az ODRA 1204-nek 6 µs sebességű, szó szervezésű (24 adat+1 paritás bit) ferritgyűrűs memóriája volt. Alapkiépítésben 16 KiW (16384 szó azaz 48 Kibyte) volt a kapacitása, ami az utasítások 14 bites címrészével közvetlenül elérhető volt. Elvileg bővíthető volt 64KiW-ig, de hazánkban csak alapkiépítésű ODRA 1204 üzemelt. A címek (és az utasításrendszer elemeinek leírására is) az oktális (8-as számrendszert) használták (akkoriban még csak kevésbé volt elterjedve a hexadecimális számrendszer használata). A 0-37737 címtartomány állt rendelkezésre a felügyelőprogram és a felhasználói programok számára, míg a 37740-37777 címtartomány az írásvédett fixprogram (STALY) részére szolgált, ami rendszerprogramok bináris lyukszalagokról való betöltését tette lehetővé.

Utasításkészlet[szerkesztés]

Az ODRA 1204 számítógép 24 bites szóban tárolta az utasításokat, amelynek általános formája:

PB OR N

  • P indirekt címzés (1 bit)
  • B az index regiszter kiválasztása (2 bit)
  • OR a művelet kódja (7 bit)
  • N a művelet argumentuma/címe (14 bit)

A PB együtt 3 bit 1 jegyű, az OR 3 jegyű , az N 5 jegyű oktális számmal írható le (pl. 4 025 30015). Az assembly (JAS) nyelv a művelet elnevezésére mnemonikot használt.

Az ODRA 1204 igen gazdag utasításrendszerrel rendelkezett.[2] A gép lebegő- és normál/hosszú fixpontos adatok feldolgozására alkalmas utasításokkal is rendelkezett (beleértve a szorzást/osztást), ezen túl számos logikai és szervezési utasítás áll rendelkezésre. Érdekességként megemlítjük a csoportos kereső és adat mozgató utasításokat, a ciklusszervezést megkönnyítő utasításokat, vagy a 8 db felhasználó által definiálható utasítást, mindezek hatékonnyá tették a fordítóprogramok és az általuk generált tárgyprogramok működését.

Röviden érdemes kitérni a tényleges memóriacím kialakítására szolgáló igen komplex és hatékony címmódosítás folyamatára, amely révén direkt, indexelt, indirekt, láncolt indirekt címzést, és kényszermódosítást is képes volt elvégezni a művelet címének kialakításában, elősegítve kis tárigényű programok készítését. Az indirekt címzésnél nem az operandus címe található az utasítás címrészében, hanem annak a tárolóhelynek a címe, ahol az operandus címe van. Ez a címzési mód lehetett többszintű (láncolt indirekt címzés) is. Az adatsorozatokon való műveletvégzés megkönnyítésére szolgált az úgynevezett indexelt címzés, ahol az utasítás címrészében az adatsorozat első elemének a címe található és a „B” regiszterben található az, hogy az adatsorozat hányadik elemével kell az utasításban megadott műveletet elvégezni. A kényszermódosítás módosította az utána következő utasítás címét.

Csatorna és megszakítási rendszer, privilegizált utasítások[szerkesztés]

Az ODRA 1204 architektúrája lehetővé és szükségessé tette felügyelőprogram (supervisor, operációs rendszer) alkalmazását, amelynek feladata volt a hardver erőforrásainak kezelése, a beviteli/kiviteli fizikai szintű perifériális műveletek lebonyolítása és a számításokkal való átlapolása, a megszakítások kezelése, valamint biztosította a két módú programfuttatást (felhasználói- és rendszermód), a címtartományok védelmét.

Az ODRA 1204-ben két különböző adatcsatorna típus állt rendelkezésre:

  • Karakterátvivő csatorna (pl. lyukszalagos perifériák, monitor írógép, stb. számára)
  • Szóátviteli csatorna (háttértárolók számára)

amelyekhez 8-8 úgy nevezett perifériális modul volt kapcsolható, amelyek illesztették a perifériát a gép autonóm működésű csatornájához.

Az ODRA 1204 komplex megszakítási rendszerrel rendelkezett, amely a csatornaműveletekkel kapcsolatos események mellett az aritmetikai egység, a kezelőpult, a memóriavédelem, az óraregiszter megszakításait is kezelte.

Ezen feladatok programozását a felhasználok által nem használható, csak rendszermódban elfogadott, privilegizált utasítások biztosították.

Műveleti idők[szerkesztés]

Az ODRA 1204 a mikroprogramozott, 24 bites aritmetikájával a legegyszerűbb utasításokat 10 µs (100 000 művelet/s) alatt hajtotta végre, de a tipikus műveleti sebessége 60 000 művelet/s volt.

Művelet Végrehajtási idő

mikroszekundumban

Fixpontos összeadás 15
Fixpontos szorzás 80
Fixpontos osztás 188
Lebegőpontos összeadás 94
Lebegőpontos szorzás 356
Lebegőpontos osztás 1064
Szubrutin hívás 30
Ferritmemória olvasása 6

Beviteli/ kiviteli perifériák[szerkesztés]

  • lyukszalag olvasó 1000 jel/s
  • lyukszalag lyukasztó 150 jel/s
  • Monitor írógép (Optima/Soemtron 527)
  • Sornyomtató Data Products 2410 (132 karakter szélesség) vagy Data Products 2310 (80 karakter szélesség), 240 - 600 sor/perc sebesség
  • 4 db PB-204 mágnesdob (4*64KiW, 768 Kibyte)

A monitor írógép a felügyelőprogram segítségével az operátorral való kapcsolattartásra, a gép irányítására szolgált. (A BME Építőmérnöki Kar Számítástechnikai Csoportja egy IBM gömbfejes konzolírógéppel helyettesítette az eredeti OPTIMA monitor írógépet).

A sornyomtatók általában nem ELWRO, hanem Data Products gyártmányúak voltak, azokat a BME Központi Karbantartó Csoport illesztette az ODRA 1204 csatornájához.

A 4 mágnesdob kapacitása mai szemmel nézve igen kicsi volt, kb. feleannyi, mint egy, a régebben a PC-knél használt 3,5” floppy kapacitása, de az adatok elérési ideje jóval kisebb (≈10 ms), az átviteli sebessége is jóval nagyobb volt.

A BME Villamosmérnöki Kar Számítástechnikai Csoportjánál, az ODRA 1204-hez közvetlenül hozzákapcsoltak perifériaként egy UCC 3341 plottert, míg máshol lyukszalagon keresztül vezérelt rajzgép segítségével oldották meg az eredmények grafikus megjelenítését.

Ugyancsak a Villamosmérnöki Kar Számítástechnikai Csoportja a Folyamatszabályozási Tanszékkel kooperálva, az utóbbinál kifejlesztett TR-8085-ös mikroprocesszoros rendszerre támaszkodva, illesztett egy MOM 3200-a s 8” floppy diszkes meghajtót (80/160 Kbyte formázott kapacitású lemezek kezeléséhez) az ODRA 1204 szóátviteli csatornájára.

Optima 527 lyukszalagos adat-előkészítő berendezés

OPTIMA 8 csatornás lyukszalag kódtábla

VILATI Prepamat E 9031-es adat-előkészítő berendezés (FOTO:FORTEPAN/UVATERV)

A géphez szállított szoftver 8 csatornás Optima kódú lyukszalag feldolgozására volt csak alkalmas, amit az NDK (Robotron) gyártmányú OPTIMA 527 lyukszalagos előkészítő berendezéssel lehetett készíteni, javítani, későbbiekben ezt kiegészítette a hazai (VILATI) fejlesztésű ASCII kódú Prepamat valamint néhány szintén ASCII kodu teletype ASR33 lyukszalag előkészítő berendezés. Használható volt még az 5 csatornás telexkódú (CCITT-2, ITA2) lyukszalag is, forrásprogramok (kivéve az ALGOL nyelvű programokat), adatok rögzítésére telex gépek segítségével.

A központi egység szekrénye[szerkesztés]

A központi egység (a háttértároló mágnesdobok nélkül) 1680 x 900 x 510 mm méretű szekrényben helyezkedett el, ettől független volt a kisméretű kezelőpult, a monitor írógép az asztalával és a többi periféria. Megemlítendő, a gép rendelkezett a kezelőpultba épített (az ugró utasítások által vezérelt) hangszóróval, a végtelen programhurkok akusztikus felismerésére.

Szoftver ellátottság[szerkesztés]

Felügyelő programok[szerkesztés]

  • SOW (System Operacyjno-Wykonawczy). Mágnesdob nélküli konfiguráció esetén használt felügyelőprogram a JAS, MOST-2, ODRA-ALGOL programokhoz.
  • BOSS (Basic Operating Software System) (verzio 1.0- 5.0), Mágnesdobbal felszerelt konfiguráció esetén használt operációs rendszer FORTRAN-1204, JAS, MOST-2, ODRA-ALGOL programokhoz
  • MASON (Mało Aktywny System Obsługi i Nadzoru) felügyelőprogram, csak az ALGOL-1204-hez (mágnesdob nélküli konfiguráció)
  • MASON D mágnesdobbal felszerelt konfigurációhoz felügyelőprogram, csak az ALGOL-1204-hez
  • BOSS 6.0 minden felsorolt programozási nyelvhez

A felügyelőprogramok az operátor által a monitor írógép segítségével vezérelt (operator-driven shop), egy felhasználós üzemmódot biztosítottak. A beviteli/kiviteli folyamatok pufferezésével és azok a számításokkal való átlapolásával használták ki a hardver adta lehetőségeket.

  • BOSS 7.0 (1978-tól) A hazai fejlesztésű operációs rendszer,[3] már batch üzemmódban is (offline input/output/simple batch system) és minden felsorolt programozási nyelvhez biztosította a gép a korábbiaknál sokkal hatékonyabb kihasználását. Ez már lehetővé tette mind a hagyományos, operátor által vezérelt, mind a speciális Job control nyelven megadott batch utasítások által vezérelt üzemmódot. A BOSS 7.0 új, fontos lehetősége volt néhány beépített háttérfunkció a futó programokkal párhuzamos futtatása (pl. a batch vezérlő utasítások és a programok inputjának beolvasása, valamint a programok outputjának kivitele).

Programozási nyelvek[szerkesztés]

  • JAS[2](Język Adresów Symbolicznych, ≈szimbolikus címzések nyelve) egy assembler, amelyben az ODRA 1204 eredeti, lengyel nyelvű mnemonikot használhattak a műveletek elnevezésére. Rendelkezésre állt még JAS0, amely standalone programok (hardver teszt programok, felügyelőprogramok nélkül működő kiszolgáló programok) fordítását tette lehetővé. A Villamosmérnöki Kar Műszer és Szabályozástechnikai Szak számítástechnikai alapoktatásához a JASE[4] (saját fejlesztésű, angol nyelvű mnemonikos) változatot használták.
  • MOST-2[5] Az ODRA 1013-nál használt MOST-1 autókóddal (Az Elliott 803 autókódhoz hasonló), azzal felülről kompatibilis fordítóprogram volt. Főleg az ügyvitel-gépesítési feladatok, illetve az ODRA 1013 kidolgozott programadaptációk fordítására/futtatására szolgált.
  • ODRA-ALGOL Hazánkban nem igen használt, a SOW & BOSS alatt működő ALGOL fordítóprogram volt, mivel ez elég sok megszorítást tartalmazott, és hatékonyságban is hátramaradt az ALGOL 1204-hez képest.
  • ALGOL-1204[6] Eredetileg csak a MASON felügyelő program alatt működő, csaknem 100%-os ALGOL reprezentáció, amely igen hatékony kódot generált. Gyakorlatilag csak mennyiségi korlátozások voltak az ALGOL riporthoz képest, ezen felül igen használható, beépített diagnosztikai eszközök álltak rendelkezésre mind a szintaktikai hibák kijelzésére, mind a program belövés Archiválva 2015. május 5-i dátummal a Wayback Machine-ben támogatására. Az ODRA 1204 elterjedtségének és sikerének egyik legfontosabb tényezője, ez a világ egyik legjobb ALGOL fordítóprogramja volt, amelyet Jerzy Szczepkowicz és Krystyną Jerzykiewicz vezetésével a Wroclawi Egyetem Numerikus Módszerek Tanszéke dolgozott ki. Ez a tanszék részt vett más ODRA 1204 alapszoftver fejlesztésében is.
  • FORTAN-1204[7] Később (≈1975) a Művelődési Minisztérium közreműködésével beszerzésre került egy csehszlovák fejlesztésű, csaknem teljes ASA FORTRAN fordítóprogram, amely BOSS alatt működött, ez is jól használható volt az oktatásban a beépített diagnosztikai szolgáltatásai révén.

Hazai rendszerszoftver fejlesztés[szerkesztés]

Egri Tanárképző Főiskola[szerkesztés]

BME Építőmérnöki Kar Számítástechnikai Csoport[szerkesztés]

  • ASCII ->OPTIMA konverter ALGOL 1204 forrásprogramok számára
  • MBK Univerzális lyukszalagos javító program

BME Villamosmérnöki Kar Számítástechnikai Csoport[szerkesztés]

  • ASCII kódú lyukszalagok közvetlen feldolgozása (BOSS, ALGOL-1204)[8]
  • DP 2310 nyomtató szoftver támogatása (BOSS, MASON)
  • UCC 3341 plotter szoftver támogatása (BOSS, MASON, ALGOL 1204-hez grafikus programkönyvtári csomag, FORTRAN 1204)
  • JASE (angol mnemonikos assembler az alapoktatáshoz)
  • Speciális segédprogramok a 2 operációs rendszer (BOSS & MASON) közti gyors váltásra.[9]
  • BOSS 6.0 (BOSS & MASON API integrálása, az ALGOL 1204 fordítóprogram részleges átcímzése, az eltérő szabad címtartomány miatt.[8][10][11]
  • BOSS 7.0 A BOSS 6.0 továbbfejlesztése JOB CONTROL vezérlésre (kötegelt feldolgozás batch üzemmód)[3]

A rendszerszoftver fejlesztésben (BOSS MASON visszafejtése, analízise,[9][11] a fejlesztéshez szükséges kiegészítő programok,[12] kereszt referencia program, stb.) számos villamosmérnök hallgató vett részt, egymásra épülő, TDK (tudományos diákkör), önálló tanszéki gyakorlat, diplomaterv formájában.

Ügyvitel gépesítés[szerkesztés]

Már 1972-től az ODRA-1204 szolgált a Villamosmérnöki Kar és BME kezdeti ügyvitel gépesítési munkái gépi hátterének, így a kari, egyetemi, később a Központi Egyetemi Felvételi Rendszerhez, illetve a kari, később az egyetemi kísérleti bérszámfejtéshez. Később megalakult a Számítástechnikai és Ügyvitelgépesítési Osztály, amely az ESZR R32 (szintén ELWRO gyártmány) üzembeállításáig az ODRA-1204-et használta, alapvetően a MOST-2 nyelvre támaszkodva.

Más egyetemeken is az ODRA 1204–et használtak a kezdeti ügyvitel gépesítési feladatok beindításához.

ODRA 1204 Magyarországon[szerkesztés]

Az 1966-68 között a felsőoktatási intézetekben működő ODRA 1013-as számítógépek igen pozitív tapasztalatai alapján, 1970-72 között beállításra kerültek a lényegesen nagyobb teljesítményű ODRA 1204 számítógépek.

Az első ODRA 1204 számítógépet 1970. május 11-én helyezték üzembe a BME Építőmérnöki Karon.

  • BME Építőmérnöki Kar Számítástechnikai Csoport (1970)
  • BME Gépészmérnöki Kar Számítástechnikai Csoport (1971)
  • BME Közlekedésmérnöki Kar Számítástechnikai Csoport (1971)
  • BME Villamosmérnöki Kar Számítástechnikai Csoport (1971)
  • Debreceni Kossuth Lajos Tudomány Egyetem (1971) (1978-ban a Keszthelyi Agrártudományi Egyetemnek adta át)
  • Veszprémi Vegyipari Egyetem (1971)
  • Gödöllői Agrártudományi Egyetem (1971)
  • Egri Tanárképző Főiskola (1972)

Mivel 1966-1982 között 6 db ODRA 1013, 8 db ODRA 1204, 2 db ODRA 1304 számítógép szolgálta a felsőfokú informatika oktatást, jogosan nevezhetjük ezt az időszakot ODRA korszaknak.[13] A tanszékek az oktató tevékenység mellett tudományos kutatáshoz és ipari megbízások (KK) teljesítéséhez is alkalmazták a gépeket. Az ODRA 1204 igen nagy szerepet játszott sok ezer (>20 000), részben még mai is aktív mérnök, matematikus és más diplomás szakember informatikai kultúrájának kialakításában.[14]

Források[szerkesztés]

  • Kápolnai András - Kőrösi István: Az ODRA-1204 funkcionális leírása és programozása a JAS szimbolikus programnyelven. Egyetemi jegyzet, Budapest, Tankönyvkiadó, 1972, 138 old.
  • Havas Iván – Nagy Tamás: „Az Odra-1204 programozása ALGOL nyelven”. Tankönyvkiadó, Budapest, 1972. 129 old.
  • Jakobi Gyula: „Az Odra-1204 számológép programozása MOSZT 2 nyelven”. Egységes jegyzet. Tankönyvkiadó, Budapest, 1972. 70 old
  • Antos Gy., Kőrösi I., Langer L., Lantos B.: A Gépi Számítástechnika Alapjai Segédlet. Tankönyvkiadó, Budapest, 1976. 84 old.
  • Kőrösi István: FORTRAN 1204. A BME Számítástechnikai Csoportjának Közleményei 22. 1976. 100 old.
  • Sántáné-Tóth E.: „A számítástechnika felsőfokú oktatásának kezdetei Magyarországon”. Typotex, Budapest, 2012. 366 old.
  • Havas Iván: „45 éve történt” ODRA-1204. NEUMANN JÁNOS SZÁMÍTÓGÉP-TUDOMÁNYI TÁRSASÁG HÍRLEVELE 2015. március
  • Szabó Zoltán: A BOSS 6.0 operációs rendszerének tervezése és megvalósítása. XIII Országos TDK konferencia 1977. Konzulens: Kőrösi István
  • Kőrösi István – Szabó Zoltán: A BOSS 7.0 operációs rendszer implementálása XI. Kerületi Számítástechnikai Napok 1978.
  • https://web.archive.org/web/20171006130301/http://www.elwrowcy.republika.pl/
  • Odra 1204 (1968 r.) /CAŁY FILM/ – film az Odra 1024 gyártásáról (YouTube)

Jegyzetek[szerkesztés]

  1. https://pl.wikipedia.org/wiki/Odra_1204
  2. a b Kápolnai András - Kőrösi István: Az ODRA-1204 funkcionális leírása és programozása JAS szimbolikus programnyelven. Egyetemi jegyzet, Budapest Tankönyvkiadó, 1972, 138 old.
  3. a b Kőrösi István – Szabó Zoltán: A BOSS 7.0 operációs rendszer implementálása XI. Kerületi Számítástechnikai Napok 1978.
  4. Antos Gy., Kőrösi I., Langer L., Lantos B.: A Gépi Számítástechnika Alapjai Segédlet. Tankönyvkiadó, Budapest, 1976. 84 old
  5. Jakobi Gyula: „Az Odra-1204 számológép programozása MOSZT 2 nyelven”.
  6. Havas Iván – Nagy Tamás: „Az Odra-1204 programozása ALGOL nyelven”. Tankönyvkiadó, Budapest, 1972. 129 old.
  7. Kőrösi István: FORTRAN 1204. A BME Számítástechnikai Csoportjának Közleményei 22. 1976. 100 old.
  8. a b Várhelyi Ferenc villamosmérnök hallgató majd a BME Számítástechnikai és Ügyvitelgépesítési Osztály munkatársa végezte az ALGOL 1204 fordítóprogram módosításait, átcímzését
  9. a b Szabó Zoltán: Az ODRA 1204 operációs rendszereinek analízise és továbbfejlesztése. TDK konferencia 1975. Konzulens: Kőrösi István
  10. Szabó Zoltán: A BOSS 6.0 operációs rendszerének tervezése és megvalósítása. XIII Országos TDK konferencia 1977. Konzulens: Kőrösi István
  11. a b Dénes Tamás: Az ODRA 1204 MASON felügyelőprogram szerkezetének és szolgáltatásinak átdolgozása. TDK konferencia 1975 Konzulens: Kőrösi István
  12. Offella Jozsef: GPM 1204, makroprocesszor az ODRA 1204 számítógéphez. TDK konferencia 1974. Konzulens: Kőrösi István
  13. Sántáné-Tóth Edit: A számítástechnika felsőfokú oktatásának kezdetei Magyarországon”
  14. Havas Iván: „45 éve történt” ODRA-1204. NEUMANN JÁNOS SZÁMÍTÓGÉP-TUDOMÁNYI TÁRSASÁG HÍRLEVELE 2015. március