ODRA 1013

korai lengyel univerzális számítógép


Az ODRA 1013 lengyel fejlesztésű (ELWRO Wroclawskie Zaklady Elektroniczne), germánium tranzisztorokból felépített, kis teljesítményű, 1+1 címes, 39 bit szóhosszúságú univerzális számítógép, amely lebegő- és fixpontos aritmetikával is rendelkezett.

ODRA 1013
ODRA 1013 nyitott központi egység szekrénnyel, amelyben látható az operatív mágnesdob, valamint megfigyelhető a sok nyomógombot és jelzőlámpát tartalmazó kezelőpult is. (A szekrény tetején a karbantartáshoz tartozó műszaki bemérő berendezés)
ODRA 1013 nyitott központi egység szekrénnyel, amelyben látható az operatív mágnesdob, valamint megfigyelhető a sok nyomógombot és jelzőlámpát tartalmazó kezelőpult is. (A szekrény tetején a karbantartáshoz tartozó műszaki bemérő berendezés)

GyártóElwro
A Wikimédia Commons tartalmaz ODRA 1013 témájú médiaállományokat.

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. Hazánkban is számos ELWRO gyártmányú számítógép működött, elsődlegesen a felsőoktatásban. Az ODRA 1013 a korábban (1960-1963) kifejlesztett és gyártott ODRA 1003 továbbfejlesztett, azzal felülről kompatibilis változata, amelyből 1966-67 között 84 példányt gyártottak,[1] ebből 53-at export piacra, Magyarországon kb. 7 ODRA 1013 működött.

Műszaki adatok szerkesztés

Architektúra szerkesztés

Az ODRA 1013 germánium tranzisztorokból felépített, 1 bites aritmetikával rendelkező, úgynevezett bitsoros szervezésű, 39 bit szóhosszúságú, univerzális célú számítógép volt.
A gép fő regisztere az A akkumulátor regiszter, amelyen az aritmetikai és logikai műveletek lettek végrehajtva. Ezen kívül még 7 darab, úgy nevezett index regiszter (B regiszterek) állt rendelkezésre. A B7, 39 bites , a többi B regiszter, a címzéssel összhangban csak 13 bites volt. Az aritmetikai és logikai műveletek automatikusan beállították a 3 feltétel regisztert (U negatív, Z nulla, Nd túlcsordulás), amelyek a feltételes programelágazásra szolgáltak. A gépnek nem volt hagyományos értelemben vett utasításszámlálója, mivel az 1+1 címes architektúrában az első cím a művelet argumentuma és általában a 2. cím határozza meg a következő utasítást. A gép nem rendelkezett megszakítási rendszerrel, a kiviteli/beviteli utasítások várakoztak az átvitel befejezésére.

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

A gép a fixpontos számokat 39 biten, kettes komplemens formában, ábrázolta, [-274877906944, 274877906943] tartományban.

A lebegőpontos számokat kb. 10 decimális számjegy pontossággal [-9.223372036*1018, +9.223372036*1018] tartományban, 32 bites mantissza és 7 bites karakterisztikával (mindkettő kettes komplemensben) ábrázolta.

Memória szerkesztés

Az ODRA 1013-nak a 13 bites címnek megfelelve összességben 8192 kapacitású operatív tárolója volt (< 40 KByte !), egy 7936 szavas mágnesdob és egy 256 szavas (≈1,2 Kbyte) ferritgyűrűs memória. A címek (és az utasításrendszer elemeinek leírására) az oktális (8-as számrendszert) használták (akkoriban még csak kevésbé terjedt el a hexadecimális számrendszer. ). A 0-17177 címtartomány a mágnesdob, a 17200-17577 címtartomány a ferritgyűrűs memória, majd a 17600-17777 címtartomány a mágnesdob írásvédett fixprogramja elérését tette lehetővé (amely a bináris lyukszalagok betöltésére szolgált).

A gép az utasítást a dobmemóriából kiolvasva és azt végrehajtva, a dob forgása miatt, a következő utasítást optimális esetben is csak a fizikailag 4. (negyedik) szóból lett volna képes végrehajtani. Tehát a következő utasításnak az eggyel nagyobb címről való végrehajtásához, meg kellett várni amíg a dob körbefordul (22 msec!), ami igen lassú futású programhoz vezetett. A dobmemóriának létezett egy kézi átkapcsolással elérhető, úgynevezett „átfonódó címzési” módja, ahol az egymás utáni címekhez tartozó szavak fizikailag nem közvetlenül egymás mellett voltak, hanem 7 fizikai szó „távolságra”, alkalmazkodva a gép kis sebességéhez.

A „blokk átviteli utasítások”, segítségével, gyorsan mozgathattunk maximum 128 szót a mágnesdob és a ferritgyűrűs memória között. A ferritgyűrűs memória nem limitálta a programok végrehajtási sebességét. Ezt is kihasználva un. optimális számítási idejű programot készíthettünk az alábbi módszerek valamelyikével:

  • kihasználva az 1+1 cím adta lehetőségeit, a programutasításokat a dob forgását figyelembe „lóugrásszerűen” helyezzük el (fáradságos feladat, csak kevés rendszerprogram pl. a gép védett fixprogramja, a STALY használta ezt)
  • az átfonódó címzési” mód használata, a program virtuálisan szekvenciálisan helyezkedik el, a munkaváltozóknak a ferritgyűrűs memóriában kell helyet foglalniuk. (pl. MOSZT-1 által generált tárgyprogram)
  • a program „feldarabolása” 128 szavas programszegmensekre, ezeknek a blokkátviteli utasítások segítségével a ferritgyűrűs memóriába mozgatása és onnan való futtatása, a munkaváltozók lehetőleg a ferritgyűrűs memóriában foglalnak helyet (pl. MOSZT-F által generált tárgyprogram)

Utasításkészlet szerkesztés

Az ODRA 1013 a 39 bites szóban tárolta az utasításokat, amelynek általános formája:

TPG N K BZ
Ahol az egyes elemeit oktális kódolással lehet leírni:

  • T a művelet fajtája (3 bit)
  • P a művelet argumentuma (3 bit)
  • G a művelet csoportja (3 bit)
  • N a művelet argumentuma (13 bit)
  • K a következő utasítás címe (13 bit)
  • B az index regiszter kiválasztása (3 bit)
  • Z az indexelés engedélyezése (1 bit)

A gép igen gazdag utasításrendszerrel rendelkezett, a közel 500 lehetséges utasítást oktálisan, 3 számjegy segítségével, szisztematikusan, strukturáltan kódolhattuk, így nem is használtak mnemonikot a műveletek elnevezésére.

A gép lebegőpontos és fixpontos aritmetikai utasításokkal is rendelkezett (beleértve a szorzást/osztást), ezek mellett számos logikai és szervezési utasítás is rendelkezésre állt a hatékony programok készítéséhez.

Műveleti idők szerkesztés

Az ODRA 1013 az 1 bites aritmetika és a bitsoros szervezés következményeként, az egyszerű fixpontos vagy logikai műveleteket 600 µsec (1500 művelet/sec) alatt hajtotta végre, ha az egyéb optimális feltételek fennálltak

Művelet Végrehajtási idő

mikroszekundumban

Fixpontos összeadás 600
Fixpontos szorzás 4200
Fixpontos osztás 7360
Lebegőpontos összeadás 1120
Lebegőpontos szorzás 3880
Lebegőpontos osztás 7680
Mágnesdob átlagos elérési ideje 1100

Beviteli/ kiviteli perifériák szerkesztés

 
5 csatornás telexkód

Az adatok bevitelére 1500 jel/sec sebességű FACIT gyártmányú lyukszalag olvasó, valamint egy 10 jel/sec sebességű telexgép szolgált.

Az eredmények kivitelére 150 jel/sec teljesítményű FACIT gyártmányú lyukszalag lyukasztó és a fent említett telexgép szolgált.

Az input/output műveleteknél az ODRA 1013 az 5 csatornás telexkódot (CCITT-2, ITA2) használt. Mint azt már az előzőiekben említettük, a kiviteli/beviteli utasítások várakoztak az átvitel befejezésére. Az eredmények kinyomtatására, a programok/adatok előkészítésére szintén (off-line) telex gépek szolgáltak.

Kezelőpult szerkesztés

A gép nem rendelkezett operációs rendszerrel, irányítása/ellenőrzése egy a központi egység szekrény előlapján található, közel 60 nyomógombot és még több jelzőlámpát tartalmazó kezelőpult segítségével történt, biztosítva a működtetéséhez szükséges alapvető tevékenységeket, és a programfutásba való külső beavatkozást. Innen volt lehetséges a programok betöltése, indítása, belövése. A jelzőlámpák segítségével megfigyelhettük, a nyomógombokkal módosíthattuk a STOP állapotban lévő program aktuális regisztereit, vagy egy tetszőleges memória szó tartalmát
A mágnesdob írásvédett fix programja (STALY, amely egyaránt működött normál és átfonódó címzési módban is) szolgált a bináris lyukszalagok betöltésére, amit a kezelőpult segítségével beállított speciális címről indítottak.

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

A központi egység (beleértve az operatív mágnes dobmemóriát) 640 × 1300 × 1600 mm méretű szekrénybe helyezkedett el, ennek előlapján volt a kezelőpult. A gép működése csak légkondicionált helységben volt lehetséges.

Szoftver ellátottság szerkesztés

  • Beviteli alapprogram, amely a gépi kódú (oktális művelet kód (nem mnemonik!) + 2 oktális címből álló) utasítássorozat beolvasására, valamint a futás alatt, decimális számok, szövegek ki/bevitelére szolgált. Ezt az ODRA 1003-ra fejlesztették ki.
  • MOST-1 autókód (Az Elliott 803 számítógépre kifejlesztett autókódhoz hasonló) fordítóprogram, amelyet szintén az ODRA 1003-ra fejlesztették ki, a lefordított program hatékonyan csak átfonódó címzési módban futott.
  • A későbbiek során rendelkezésre állt a MOST-F fordítóprogram, amely már kihasználhatóvá tette a 256 szó kapacitású ferrittárolót is az autókódban programozok számára, kihasználva a blokk átviteli utasításokat, valamint a fontos munka változókat lehetőleg a ferritgyűrűs memóriába allokálva.
  • Néhány speciális programkönyvtári, program.

Hazai rendszerszoftver fejlesztés szerkesztés

  • Szimbolikus címek beviteli alapprogramja (assembly-szerű programozás mnemonik nélkül) amely segített a programszegmensek olyfajta címzésére amelyek a mágnesdobon helyezkedtek el, de blokk átviteli utasítások segítségével a ferritgyűrűs memóriába kerültek végrehajtásra.[2]
  • Gyorsító program a MOST-F tárgyprogramhoz (a lefordított program utólagos optimalizálása)
  • Lyukszalag javítóprogram (hosszabb program szalagok, javítása, előre megadott, külön lyukszalagon lévő, javítást vezérlő információk alapján)
  • GRAFOMASZK/1 Transzlátor rendszer (Szigetelőalapú, vékony és vastagréteg ill. félvezető alapú integrált áramkörök maszk-ábráinak tervezése, vezérlő lyukszalag generálása)[3]
  • HTL language (Az ODRA 1013 hoz illesztett, saját fejlesztésű hardver (OB-1) működtetéséhez szükséges szoftver rendszer, amely logikai hálózatok számítógépes bemérő berendezés programozását tette lehetővé)[4]

ODRA 1013 Magyarországon szerkesztés

1965-ben Obádovics J. Gyula professzor egy Lengyelországi tanulmányútról szóló a Művelődésügyi Minisztériumhoz küldött beszámolójában szerepelt az ELWRO cég által gyártott ODRA 1013 típusú számítógép, ebben azt javasolta hogy az egyetemekre , tanszéki keretben is üzemeltethető számítógépet célszerű telepíteni.[5]
A Művelődésügyi Minisztérium 1966-ban megvásárolt 2 ODRA 1013-t, az egyiket a BME Folyamatszabályozási Tanszéke, a másikat Miskolci NME Matematikai Tanszék Számítástechnikai Laboratóriuma kapta. A következő években több egyetem és intézet kapott ODRA 1013 típusú számítógépet, (az ELTE Numerikus és Gépi Matematika Tanszéke, a debreceni KLTE Matematikai Tanszékcsoportja, a Veszprémi Vegyipari Egyetem Számítógépes Csoportja, valamint a debreceni ATOMKI kutatóintézet) és az EFKI-ben (Elektronikai és Finommechanikai Kutató Intézet). A gépeket, amelyek sikeresen vettek részt a számítástechnikai oktatás beindításában, 3-4 év múlva követte a lényegesen nagyobb teljesítményű, szintén ELWRO gyártmányú ODRA 1204 illetve ODRA 1304 beszerzése ezen illetve más felsőoktatási intézmények számára[6]

Források szerkesztés

  • Jakobi Gyula: Az ODRA 1013 digitális számológép programozása Tankönyvkiadó, 1967 122 old. (További kiadások: 1969; 1970)
  • Odra 1013 (lengyel Wikipedia)
  • Wroclawskie Zaklady Elektroniczne Mera-Elwro (lengyel Wikipedia)
  • ELWRO (https://en.wikipedia.org/wiki/Elwro
  • Kőrösi I. - Langer L - Pogàny E: Az ODRA 1013 programozási lehetőségeinek bővítése., Információ- Elektronika V. évf. 3. sz. 1970/3 pp. 197–199
  • Kőrösi István: Az ODRA 1013 és a RAZDAN 3 számítógépek softwaretechnikai együttműködésének megteremtése, Diplomaterv 1970 (konzulens Jakobi Gyula)
  • Arató P. - Kőrösi I. - Lantos B. : Logikai hálózatok számítógépes bemérésének egy módszere., Információ- Elektronika VII. évf. 4. sz., 1972.).
  • Sántáné-Tóth Edit: A számítástechnika elsőfokú oktatásának kezdetei Magyarországon.
  • Kőrösi I. - Langer L - Pogàny E:Számitógép felhasználása digitális rendszerek tervezésében és gyártástechnológiájában, TDK dolgozat 1970 (konzulens Jakobi Gyula)

A korabeli ODRA 1013-mal kapcsolatos magyar nyelvű szakkönyvek[7] szerkesztés

  • Erdélyi Zoltán – Obádovics J. Gyula – Törő Béla: „Odra-1013 programozási összefoglaló”. NME Számítástechnikai füzetek, Nehézipari Műszaki Egyetem, Miskolc, 1967. 22 old.
  • Erdélyi Zoltán – Obádovics J. Gyula: „Programozás MOST-1 autókódban”. NME Számítástechnikai füzetek, Nehézipari Műszaki Egyetem, Miskolc, 1967. 80 old.
  • Erdélyi Zoltán – Obádovics J. Gyula – Törő Béla: „Az Odra-1013 elektronikus digitális számológép programozása gépi kódban”. Pénzügyminisztérium Szervezési és Ügyvitelgépesítési Intézet, Budapest, 1967. 106 old. (2. javított és bővített kiadás: Nehézipari Műszaki Egyetem, Miskolc, 1969. 112 old.)
  • Jakobi Gyula: „Az Odra-1013 digitális számológép programozása”. Tankönyvkiadó, Budapest, 1967. 122 old. (További kiadások: 1969; 1970)
  • Forgács Tamás,Jakobi Gyula: Az ODRA-1013 számítógép programozása és kezelése Budapest, 1970 Számítástechnikai Oktató Központ 211 p.
  • Obádovics J. Gyula: „Gyakorlati számítási eljárások”. Gondolat Könyvkiadó, Budapest, 1972. 499 old.

Jegyzetek szerkesztés

  1. https://pl.wikipedia.org/wiki/Odra_1013
  2. Kőrösi I. - Langer L - Pogàny E: Az ODRA 1013 programozási lehetőségeinek bővítése., Információ- Elektronika V. évf. 3. sz. 1970/3 pp. 197-199
  3. Kőrösi I. - Langer L - Pogàny E:Számitogép felhasználása digitális rendszerek tervezésében és gyártástechnológiájában, TDK dolgozat 1970 (konzulens Jakobi Gyula)
  4. Arató P. - Kőrösi I. - Lantos B. : Logikai hálózatok számítógépes bemérésének egy módszere., Információ- Elektronika VII. évf. 4. sz., 1972.)
  5. Obádovics J. Gyula:Életem - Hiszek a végtelenben,SCOLAR KFT. 2017
  6. Sántáné-Tóth Edit: A számítástechnika felsőfokú oktatásának kezdetei Magyarországon
  7. Sántáné-Tóth Edit: A számítástechnika elsőfokú oktatásának kezdetei Magyarországon. Korabeli magyar nyelvű szakkönyvek felsőoktatási tankönyvek jegyzetek