M–3

A Wikipédiából, a szabad enciklopédiából

Az M–3 első generációs számítógép. Az MTA Kibernetikai Kutatócsoportja által, szovjet tervdokumentáció alapján, az első Magyarországon épített elektronikus számítógép.

Története[szerkesztés]

Az M–3 terveit a Szovjetunió Tudományos Akadémiájának Energetikai Kutatóintézetében dolgozták ki. 1956-58 között. A cél egy, az abban az időben a működő katonai célokra szolgáló nagy számítógépeknél BESZM, Sztrela, olcsóbb és kisebb polgári felhasználásra alkalmas számítógép létrehozása volt. Innen származik az elnevezése is, a hivatalos orosz elnevezés első szavának kezdőbetűje, (Малая электронная счётная машина[1] — kis[méretű] elektronikus számológép). A Moszkvában elkészített tervek alapján több helyen épültek M–3-as számítógépek: Az örményországi Jerevánban ez a gép volt a Razdan sorozat alaptípusa, Fehéroroszországi Minszkben ezeknek a terveknek az alapján készültek a Minszk sorozat első gépei, Kínában 1957-ben szintén ezeknek a terveknek segítségével épült az első kínai számítógép. És ezeknek a terveknek az alapján (ma úgy mondanánk ezen licencnek az alapján) épült Magyarországon 4 darab M–3.

Magyarországon 1956-ban hozták létre Varga Sándor vezetésével az MTA Kibernetikai Kutatócsoportját. A forradalom miatt a kutatócsoport valójában 1957 februárjában kezdte meg működését de még ennek az évnek augusztusában hozzákezdett a Szovjetunióból kapott tervdokumentáció alapján az első magyar gyártású számítógép építéséhez. A számítógép kizárólag magyar gyártmányú a Tungsram által gyártott világszintvonalú szubminiatűr elektroncsövekből épült. Egyedi magyar fejlesztés volt a memóriát helyettesítő mágnesdob is.

Az első magyar M–3 az MTA Számítástechnikai Központjában 1960 és 1965 között működött üzemszerűen. 1965-ben a szegedi József Attila Tudományegyetemre szállították, ahol 1968. január 2-ig működött.[2]

Felépítése[szerkesztés]

Az M–3 kétcímes gép volt 31 bites szavakkal (ebből az első bit az előjel bit). A magyar változat operatív memóriája, magyar fejlesztésű 1024 szó tárolására képes, mágnesdob. Műveletei sebessége a mágnesdob lassúsága miatt 30 művelet/sec. A mágnesdobot később, a technikai fejlődésnek megfelelően, ferritgyűrűs memóriára cserélték. Ezzel a kapacitása ~80 000 szóra, sebessége 1500 művelet/sec-ra nőtt. A bemeneti periféria kezdetben 5-csatornás mechanikus (telex) lyukszalag, de ezt idővel 8-csatornás (teletype) szalag váltotta fel. Kimeneti periféria egy teletype írógép volt.

A gép összességében 770 elektroncsőből, és 2000 diódából állt, nagy meleget termelt, sok probléma volt a hűtésével. Fogyasztása 10 KW és nagyjából 3 m² alapterületet igényelt.

A gép maga 3 önálló szekrényből állt. A központi szekrényben helyezkedett el az aritmetikai egység, vezérlő egység és a vezérlő pult. Külön szekrényben volt az operatív tár szerepét játszó mágnesdob és a többi periféria vezérlője. Egy harmadik szekrény tartalmazta a tápegységeket. Általában ezen kívül a gépterem felszerelése volt még egy asztal a lyukszalagolvasó és a teletype részére, de ezeket a perifériákat a géptermen kívül is el lehetett helyezni hagyományos telekommunikációs kapcsolattal akár a „távmunka” is biztosítható volt..

A számítógépnek 4 regisztere: akkumulátor, indexregiszter, utasításszámláló és egy úgynevezett előválasztó szelekciós regisztere volt. Operációs rendszerrel, fordítóprogramokkal nem rendelkezett, kizárólag gépi kódban programozták.

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

Az M–3-a gép aritmetikai és logikai műveleteinek végrehajtását segítette az akkumulátor. Ide került az utoljára végrehajtott művelet eredménye és az akkumulátor tartalmát gyakran használták a következő művelet végrehajtásakor. Negatív eredmény esetén az előjel bit értéke 1 lett, pozitív érték esetén 0. A gép ismerte a negatív nullát, ezzel a programozás során jól lehetett „trükközni”. Az utasításkészlet két csoportra oszlott: aritmetikai-logikai utasításokra, és vezérlő utasításokra.

Aritmetikai – logikai utasítások[szerkesztés]

Az aritmetikai utasítások kódja két nyolcas számrendszerbeli számból állt össze xy

ahol x → utasításmodifikációs rész

modifikációs rész x utasítás módja megjegyzés
0 c2, akkumulátor = c1 * c2
1 akkumulátor = c1 * c2
2 c2, akkumulátor = akkumulátor * c1
3 akkumulátor = akkumulátor * c1
4 c2, akkumulátor = c1 * c2
5 akkumulátor = abs(c1) * abs(c2)
6 c2, akkumulátor = akkumulátor * c1
7 akkumulátor = abs(akkumulátor) * abs(c2)

és y → műveleti kód rész.

műveleti kód y művelet megjegyzés
0 összeadás
1 kivonás
2 osztás
3 szorzás
6 logikai és

A fenti két táblázatból következik, hogy például a „43 c1 c2” (binárisan: „100011 c1 c2”) utasítás végrehajtásakor a c1 és c2 rekeszek tartalma összeszorzásra kerül (a műveleti kód „3”) és a szorzás eredményét a gép a c2 rekeszbe és az akkumulátorban is tárolja (modifikátor „4”).

Vezérlőutasítások[szerkesztés]

A vezérlőutasítások nem tartalmaznak modifikátort így minden vezérlő utasítás két nyolcas számrendszerben megadott szám.

utasítás kód utasítás megjegyzés
07
27
adatbeolvasás lyukszalagról Lyukszalagról beolvasásra került egy érték a c2-es rekeszbe. Az akkumulátor értéke változatlan és az utasításban a c1 mező = 0.
05
15
számátvitel A c1 rekesz értéke átvitelre került a c2 rekeszbe.
45
55
számátvitel és nyomtatás A c1 rekesz tartalma a c2-es rekeszbe került és egyben kinyomtatásra a teletype-on.
24 feltétel nélküli ugrás c1-re A vezérlés átadásra került a c1 címre. Ezzel egy időben az akkumulátor tartalma betöltődött a c2 rekeszbe
64 feltétel nélküli ugrás c1-re és nyomtatás A vezérlés átadásra került a c1 címre. Ezzel egy időben az akkumulátor tartalma betöltődött a c2 rekeszbe és egyben kinyomtatásra a teletype-on.
74 feltétel nélküli ugrás c1-re A vezérlés átadásra került a c2 címre. Az utasítás c1 mezője kötelezően = 0. Az akkumulátor előjel bitje törlődött, azaz az akkumulátorban az eredeti érték abszolút értéke került (Ez az utasítás tette lehetővé a mínusz nullával való trükközést)
34 feltételes vezérlésátadás ha az előjelbit értéke w=1, a vezérlés a c1 címre került, ha w=0 a c2 címre.
37 megállítás a program futása leállt, a vezérlőpultra kivitelre került a c1 rekesz tartalma. Az akkumulátor értéke változatlan és az utasításban a c2 mező = 0

Jelentősége[szerkesztés]

Az M–3 elsődlegesen műszaki tudományos számítások végzésére tervezték. Kiválóan alkalmas volt közönséges és parciális differenciálegyenletek integrálására. Nem csak lineáris, hanem nemlineáris egyenletek esetén is. Sokváltozós algebrai és transzcendens egyenletek megoldására és lineáris programozási feladatok elvégzésére.

Az M–3-as számítógépnek, és a gépet létrehozó Kibernetikai Kutató Csoportnak a hatása a magyar informatikára szinte felmérhetetlen. Létrejött az a szakmai műhely amely képes volt az országban először egy működő számítógépet felépíteni, kialakult az az informatikus gárda amelyik a feladat kitűzésétől annak kódolásán át komplett feladatok megoldására képes volt. És nem utolsósorban, kialakult az a felhasználói kör, amely megértette a számítástechnika jelentőségét, és megszületett a számítógép használt iránti igény a gazdaság legkülönbözőbb területein.

Felsorolásként néhány az M–3 segítségével végzett nagyobb jelentőségű munka[3]:

Jegyzetek[szerkesztés]

  1. a МЭСМ (MESZM) a Малая электронная счётная машина (malaja elektronnaja szcsotnaja masina) rövidítése, ld. ru:МЭСМ
  2. http://ajovomultja.hu/m-3-szamitogep-alegyseg-vizsgalo
  3. Papellás

Források[szerkesztés]

További információk[szerkesztés]