Minszk–22
Minszk–22 | |
Minszk–22 szovjet gyártmányú nagyszámítógép rajza 1966-ból | |
Forgalomban | 1964–1970 |
Utód | Minszk–32 |
A Wikimédia Commons tartalmaz Minszk–22 témájú médiaállományokat. |
A Minszk–22 szovjet gyártmányú félvezetős technológiára épülő nagyszámítógép (mainframe). A magyar számítástechnikai kultúra létrejöttének meghatározó számítógéptípusa, amely megalapozta magyar informatikusképzést. A Minszk–22-es sorozatot 1964-ben jelentették be, és 1965–1970 között 953 darab készült belőle. Ez a géptípus volt a szegedi József Attila Tudományegyetem Kibernetika Laborja és a Magyar Néphadsereg első számítógépe. Utódja a Minszk–32-es gép volt.
Története
[szerkesztés]1956-ban már az első generációs számítógépek több típusa működött a Szovjetunióban (Sztrela, BESZM, M–3, Ural–1), amikor a Szovjetunió minisztertanácsa határozatot hozott a számítástechnika fejlesztésének gyorsításáról, új, a második generációs számítógépek létrehozására képes kutató és gyártó bázisok létrehozásáról. Ekkor létesítették Fehéroroszország fővárosában az Ordzsonikidzéről elnevezett minszki számítógépgyárat. A gyár tervezőirodája 1958-ban kezdte meg működését. 1960-ban készült el az első számítógép, a Minszk–1. Ez még részben elektroncsöves gép volt, gyártását 1963-ban le is állították. Összességében különböző modifikációit is figyelembe véve 220 darabot gyártottak belőle.
1964-ben épült az első 100%-ban félvezetős technológiára épülő Minszk számítógép, a Minszk-22. Gyártása 1970-ig tartott, és közel 1000 darabot készítettek. Továbbfejlesztett változatának, a Minszk–32-nek a gyártása 1968-ban kezdődött. Ebből a típusból 1975-ig közel 3000 került eladásra. 1972-ben a KGST budapesti tanácskozásán a Minszk–32-t nyilvánították az automatikus vezérlési rendszerek alapgépévé. Magyarországra 1974 körül több Minszk–32-es került (Magyar Néphadsereg, Könnyűipari Minisztérium stb.).
Felépítése
[szerkesztés]A Minszk—22 egy klasszikus Neumann-architektúra alapján felépített gép volt. 37 bites szavakon másodpercenként 5–6000 művelet elvégzésére volt képes. A gép ferritgyűrűs operatív memóriája 8192, egyenként 37 bit hosszú szóból állt. (Működését tekintve, durva közelítésként, ez felel meg a PC-k memóriájának). A háttértár mágnesszalagos egységekből állt, amelyek egyenként 1 600 000, szintén 37 bites szót voltak képesek tárolni.
A mágnesszalagok mellett adatbeviteli perifériaként 80 oszlopos lyukkártya szolgált, míg adatkiviteli eszközként a lyukkártya mellett nyomtató is csatlakozott a géphez.
A félvezető elemekből épített gép teljes helyigénye a külső perifériák nélkül 80 m², nominális fogyasztása 10 kW volt.
Aritmetikai egység
[szerkesztés]A gép aritmetikai egysége 2 regiszterből: R1 és R2, valamint egy akkumulátorból állt. Ez az egység hajtotta végre az adatokon a különböző aritmetikai és logikai műveleteket.
Az első, R1 regiszter fogadta az operatív tárból (memóriából) a műveletekben részt vevő első 37 bites szót. A második, R2 regiszter a műveletek végrehajtásakor kisegítő szerepet játszott (például egy szorzás végrehajtásakor először itt tárolódott a szorzó, majd az eredmény alacsony helyi értékű része stb.). Ez a regiszter nem volt összekötve az operatív tárral.
Az akkumulátor egy harmadik 37 bites regiszter. Feladata a műveletekben részt vevő második operandus memóriából történő kiolvasása és tárolása volt. Azokban a műveletekben azonban, ahol a második operandus egy megelőző művelet eredménye volt, ez az adat nem az akkumulátorban, hanem az R2-es regiszterben tárolódott. Minden információ operatív tárba írása, az adatok operatív tár és külső tárak közötti cseréje, illetve a kimeneti eszközökre (nyomtató, lyukkártya) kiírása minden esetben vagy az R1-es regiszteren, vagy a akkumulátoron keresztül valósult meg.
A különböző műveletek átlagsebessége a következő volt:
- fixpontos összeadás – 96 μs,
- fixpontos szorzás – 300 μs,
- fixpontos osztás – 716 μs,
- lebegőpontos összeadás – 240 μs,
- lebegőpontos szorzás – 285 μs,
- lebegőpontos osztás – 600 μs
Vezérlő egység
[szerkesztés]A vezérlő egység biztosította a betöltött program végrehajtását. Egy utasításszámlálóból és egy műveletdekódoló regiszterből állt. A vezérlő egység működését minden egyes számítási ciklus első két ütemében munkaregiszterként az akkumulátor segítette.
Az utasításszámláló egy 13 bites egység volt, ez tartalmazta a végrehajtandó utasítás címét (a következő végrehajtandó utasítás kódját tartalmazó memóriahely sorszámát). A program szekvenciális végrehajtásakor az utasításszámláló értéke automatikusan mindig eggyel nőt, így a soron következő memóriarekesz tartalma került végrehajtásra. A műveletdekódoló-regiszter feladata a memóriából kiolvasott utasításkód értelmezése, ez egy 7 bites regiszter volt. Ez a két érték meghatározta a Minszk–22 számítógép alapvető paramétereit, az utasításszámláló memória maximális méretét (213 = 8192), és a műveletdekódoló-regiszterben maximálisan behuzalozható műveleti kódok számát (27 = 128).
Operatív tár (memória)
[szerkesztés]A gép belső memóriájának teljes mérete 8192 darab 37 bites szó, klasszikus ferritgyűrűs memória volt. Ez nyolcas számrendszerben volt besorszámozva, és a memória-címtartomány 0-tól 17 777-ig terjedt. A 0-s rekesz kivételével minden rekesz írható és olvasható volt és egyaránt tartalmazhatott utasítást, vagy adatot. A nullás rekesz tartalma egy 0-s kód volt, amit nem lehetett megváltoztatni. A memóriaelérés ideje 24 μs volt.
Utasításkészlet
[szerkesztés]A Minszk–22 kétcímes gép volt. Ez azt jelenti, hogy minden utasítás esetén két operandust használt, és ennek megfelelően a műveletekben két, az operatív tárban található rekesz (tárterület) címét kellett megadni. Minden gépi utasítás 37 bit hosszú volt és négy részből, azaz négy mezőből állt:
- Utasításkód 0–6. bitek (az utasításkód minden esetben egy előjeles 8-as számrendszerbeli szám).
- Indexmező címe 9–12. bitek (továbbiakban mint i jelöljük).
- Az első operandus címe 7. bit + 13–24. bitek (továbbiakban mint c1 jelöljük).
- A második operandus címe 8. bit + 25–36. bitek. (továbbiakban mint c2 jelöljük).
Egy szabványos műveletet végrehajtó ciklus öt lépésből állt, ettől eltért a vezérlést átadó utasítások végrehajtása. Az utasításkészlet négy csoportot alkotott:
- aritmetikai műveletek,
- logikai műveletek,
- vezérlő utasítások,
- input és output műveletek.
Minden műveletet egyértelműen meghatározott a 0–6. biteken található utasításkód (8-as számrendszerbeli szám).
Aritmetikai utasítások
[szerkesztés]Utasításkód | Az utasítás neve | Az utasítás formátuma |
---|---|---|
+1M | összeadás | +1М i c1 c2 |
+2M | kivonás | +2М i c1 c2 |
+3M | szorzás | +3М i c1 c2 |
+4M | osztás | +4М i c1 c2 |
+5M | kivonás* | +5М i c1 c2 |
-04 | kerekítés tiltása | -04 0 0 0 |
-05 | kerekítés | -05 0 0 0 |
-70 | szorzás alacsony helyi értékű részének tárolása | -70 i c1 c2 |
-71 | osztás maradék részének tárolása | -71 i c1 c2 |
-72 | kitevők összeadása | -72 i c1 c2 |
-73 | kitevők kivonása | -73 i c1 c2 |
-75 | normális alakra hozás | -75 i c1 c2 |
-76 | egyesek összeszámlálása | -76 i c1 c2 |
A fenti táblázatból látszik, hogy a Minszk 22 utasításkészlete a szovjet számítógép-építési tradícióknak megfelelően műszaki tudományos számítások végzésére volt tervezve.
Az összeadásnak, a kivonásnak, a szorzásnak és az osztásnak 8–8 változata volt. Ezeket jelöli a táblázatban az M (modifikáció) betű.
Először az utasításkód 4. bitje határozta meg, hogy a művelet fixpontos (tartalma = 0), vagy lebegőpontos (tartalma = 1). Az 5. és 6. bit pedig négy különböző végrehajtási módot definiált:
Az utasításkód 5. és 6. bitje | Az utasítás-végrehajtás módja | Megjegyzés |
---|---|---|
00 | Akkumulátor, (c2) := (c2) х (c1) | A művelet eredménye az akkumulátorban és második címen is tárolásra kerül. |
01 | Akkumulátor := (c2) х (c1) | A művelet eredménye csak az akkumulátorban kerül tárolásra. |
10 | Akkumulátor, (c2) := R2 х (c1) | A műveletet az R2 regiszter és az első cím tartalma között végzi a gép, és az eredmény az akkumulátorban és második címen is tárolásra kerül. |
11 | Akkumulátor := R2 х (c1) | A műveletet az R2 regiszter és az első cím tartalma között végzi a gép, és az eredmény csak az akkumulátorban kerül tárolásra. |
A táblázatnak megfelelően például a +22 ( binárisan 010 010) i c1 c2 egy fixpontos kivonás az R2 regiszter és az első cím tartalma között, és az eredmény az akkumulátorban és második címen is tárolásra kerül.
Logikai utasítások
[szerkesztés]Utasításkód | Az utasítás neve | Az utasítás formátuma | Megjegyzés |
---|---|---|---|
+0m* | kizáró vagy | +0m* i c1 c2 | |
+6m | logikai eltolás (shift) | +6m i c1 c2 | A második operandus (c2) minden bitje eltolásra kerül. Az eltolás irányát és hosszát az első operandus (c1) tartalmazza. |
+6m* | aritmetikai eltolás (shift) | +6m* i c1 c2 | A második operandus (c2) első bitje (az előjel bit) nem csak a maradék 36 bit kerül eltolásra. Az eltolás irányát és hosszát az első operandus (c1) tartalmazza. |
+7m | és | +7m i c1 c2 | Bitenkénti logikai konjunkció |
+7m* | vagy | +7m* i c1 c2 | Bitenkénti logikai diszjunkció |
-10 | adatátvitel | -10 i c1 c2 | Az első cím tartalmát áttölti a második címre és az akkumulátorba. |
-11 | adatátvitel előjelváltással | -11 i c1 c2 | Az első cím tartalmát áttölti a második címre és az akkumulátorba, miközben az előjelet bitet (0. bit) ellenkezőre változtatja. |
-12 | adatátvitel az előjel törlésével | -12 i c1 c2 | Az első cím tartalmát áttölti a második címre és az akkumulátorba, miközben az előjelet bitbe (0. bit) 0 értéket ír. |
-13 | beolvasás vezérlőpultról | -13 i 0 c2 | A c2-es memóriarekeszbe betölti a gép vezérlőpultján beállított 37 bites értéket. |
-14 | előjel-hozzárendelés | -14 i c1 c2 | A c1-es rekesz tartalmának előjelét hozzárendeli a c2-es rekesz tartalmához. |
-15 | címátadás regiszterből | -15 0 0 c2 | Külső adathordozóról történt információbevitelt követő kötelező utasítás. Az R1 regiszter tartalmát tölti be a c2 rekeszbe. Ez lesz az eltárolt információt tartalmazó utolsó rekeszt követő első rekesz címe. |
-16 | értékátadás | -16 i c1 c2 | A c1-es rekesz tartalmát áttölti a c2-es rekesz tartalmába. |
-74 | ciklikus összegzés | -74 i c1 c2 | A c1-es rekesz tartalmát hozzáadja a c2-es rekesz tartalmához, az utasítástömbök ellenőrző összegének (checksum) előállítását segíti. |
A logikai utasításoknak az aritmetikai utasításokhoz hasonlóan 4–4 végrehajtási módja volt. Ez az aritmetikai utasításoknál megadott táblázatban látható. Az m*-gal jelölt utasítások esetén az utasításkód 4 bitje minden esetben egyenlő 1, míg az m-mel jelölt utasítások esetén egyenlő 0.
Vezérlésátadó utasítások
[szerkesztés]A vezérlést átadó utasítások a számítógépes program végrehajtása során a program utasításainak módadósítására szolgálnak. Segítségükkel a szekvenciális végrehajtás módosítható valamilyen okból, vagy valamilyen feltétel alapján. Vezérlés átadáskor a utasításszámlálóba beírásra kerül egy cím, és a program végrehajtás ezen a címen folytatódik.
Utasításkód | Az utasítás neve | Az utasítás formátuma | Megjegyzés |
---|---|---|---|
-00 | a gép megállítása | -00 i c1 c2 | Ez egy programtesztelést segítő utasítás. A c1 cím tartalma az R1 regiszterbe, a c2-es cím tartalma az akkumulátorba, és a legutolsó végrehajtott művelet eredménye az R2-regiszterbe íródott. A gép megállását követően ezek az értékek a vezérlőpulton leolvashatók voltak. |
-30 | feltétel nélküli vezérlésátadás | -30 i c1 c2 | Az utolsó művelet eredménye a c2-es címen került tárolásra. Az utasításszámlálóba a c1 címen tárolt érték (cím) került betöltésre, és a program futása itt folytatódott. |
-31 | szubrutinba ugrás | -31 i c1 c2 | Az utasítás hatására a c2 címen tárolásra került egy feltétel nélküli vezérlésátadás „-30 00 k+1 0000” — a „k” az adott utasítás címe — (ez definiálja szubrutin visszatérési címét). Majd a program végrehajtása a c1 rekeszben tárolt címen folytatódott (a szubrutin kezdő címe). |
-32 | ugrás előjel szerint | -32 i c1 c2 | Ha az aktuális művelet eredménye pozitív a c1 címen, ha negatív a c2-es címen tárolt tartalom került betöltésre az utasításszámlálóba, és a programvégrehajtás itt folytatódott |
-33 | ugrás túlcsordulásra | -33 i c1 c2 | Akkumulátor túlcsordulás esetén (pl. nullával osztás) a program a c1-rekeszben tárolt címen folytatódott. |
-34 | ugrás nulla értékre | -34 i c1 c2 | Ha az aktuális művelet eredménye nulla a c2 címen, ha nem nulla a c1-es címen tárolt tartalom került betöltésre az utasításszámlálóba, és a programvégrehajtás itt folytatódott |
-35 | vezérlésátadás kulcs szerint | -35 i k c2 | Ha a vezérlőpulton található kapcsolók értéke megegyezik „k”-val, a vezérlés a c2-es címre kerül átadásra. |
-37 | vezérlés átadás eltérő érték alapján | -37 i c1 c2 | Lyukkártyalyukasztás ellenőrzésére szolgáló utasítás. Segítségével az éppen kilyukasztott lyukkártya visszaolvasásra és ellenőrzésre került. |
-20 | ciklus vége | -20 I c1 c2 | Az utasításban az „I“ ciklusváltózót jelent. Az művelet végrehajtásakor az ciklusváltózó 13–36. bitjeinek értékéhez adódott hozzá a c2 cím megfelelő bitjein tárolt érték a címmódosító-állandó. Az indexrekesz 0–12. bitjein tárolt értékéből minden végrehajtáskor kivonásra került 1. Ha értéke nullára vagy negatívra csökkent, a vezérlés a c1 címre került. A ciklus indításakor az I 0–12. bitjére a ciklusok száma mínusz egy értéket (n-1-et) kellett beírni, a 13–36-os bitekre pedig a ciklustörzsben használt címmódosító állandót. |
-06 | programmegszakítás engedélyezés — tiltás | -06 i k 0 | Ez az utasítás engedélyezte vagy tiltotta a perifériák számára a programmegszakítást (interrupt). A „k” állandó értéke határozta meg a perifériát. (0002 → lyukszalag, 0020 → lyukkártya stb.) |
-36 | programmegszakítás blokkolásának feloldása | -36 i c1 c2 | Programmegszakítás feldolgozását segítő utasítás (lásd.: „Kivételkezelés”). |
Beviteli és kiviteli utasítások (input, output)
[szerkesztés]Míg a fent felsorolt utasításcsoportok már a 60-as években kikristályosodtak, és csekély változtatásokkal a modern számítógépekben is a mai napig szinte változatlan formában megtalálhatók – legfeljebb a felhasználók 99%-a nem tud róluk, mert a szoftver eltakarja ezt a szintet –, addig a beviteli és kiviteli utasítások a mai eszközök mellett igazi őstörténeti különlegességek.
Utasításkód | Az utasítás neve | Az utasítás formátuma | Megjegyzés |
---|---|---|---|
-07 | lyukszalag visszatekerése | -07 0 0 0 | |
-50 | számok olvasása lyukszalagról | -50 i 0 c2 | Számsorozat beolvasása és tárolása a c2-es címtől kezdődően. A beolvasás végén az (utolsó számot tartalmazó rekesz címe)+1 érték került az R1 regiszterbe, és az akkumulátorban ellenőrzőösszeg generálódott. |
-51 | számolvasás ellenőrzése | -51 0 0 0 | A -50-es utasítás végrehajtásának ellenőrzése. Adattárolás nem történt, csak ellenőrzőösszeg-képzés. |
-52 | karakterek olvasása lyukszalagról | -52 i 0 c2 | Karaktersorozat beolvasása és tárolása a c2-es címtől kezdődően. A beolvasás végén az (utolsó karaktert tartalmazó rekesz címe)+1 érték került az R1 regiszterbe, és az akkumulátorban ellenőrzőösszeg generálódott |
-53 | karakterolvasás ellenőrzése | -53 0 0 0 | A -52-es utasítás végrehajtásának ellenőrzése. Adattárolás nem történt csak ellenőrzőösszeg képzés. |
-54 | lyukkártyák olvasása | -54 i k c2 | Lyukkártyakötet olvasása. A k konstansban adták meg a kártyák számát és azt, hogy a beolvasott kártyák programkártyák vagy adatkártyák. A kártyák tárolása a c2-es címtől kezdődött. A beolvasás végén az (utolsó karaktert tartalmazó rekesz címe)+1 érték került az R1 regiszterbe. |
-60 | nyomtatás sornyomtatóra vagy az 1-es lyukszalaglukasztóra (szám lukasztás) | -60 i s c2 | A c2-es rekesz tartalma került nyomtatásra vagy lukasztásra az s konstansban megadott formázás szerint. |
-61 | adatkivitel a 2-es lyukszalaglukasztóra (karakter lukasztás) vagy nyomtatás teletype-ra. | -61 i s c2 | A c2-es rekesz tartalma került lyukasztásra vagy nyomtatásra az „s” konstansban megadott formázás szerint. |
-62 | adatátvitel pufferbe | -62 i s c2 | A c2 rekesz tartalmának áttöltése pufferbe az „s” konstansban megadott formázás szerint. A Minszk–22 128 szavas kiviteli pufferrel rendelkezett. |
-63 | kártyalukasztás | -63 i 0 c2 | A c2 rekesz tartalmának átadása a kártyalukasztóra. |
-40 | zónakeresés mágnesszalagon előre | -40 i x | |
-41 | zónakeresés mágnesszalagon hátra | -41 i x | |
-46 -45 |
mágnesszalag olvasás előre – zónakeresés | -46 i x -45 i k c2 |
A két utasítást együtt kellett alkalmazni. |
-47 -45 |
mágnesszalag olvasás hátra – zónakeresés | -45 i k c2 | A két utasítást együtt kellett alkalmazni. |
-46 -43 |
írás mágnesszalagra előre – zónakeresés | -46 i x -43 i k c2 |
A két utasítást együtt kellett alkalmazni. |
-47 -43 |
írás mágnesszalagra hátra – zónakeresés | -47 i x -43 i k c2 |
A két utasítást együtt kellett alkalmazni. |
-46 -44 |
ellenőrző olvasás mágnesszalagról – zónakeresés | -46 i x -44 i k 0 |
A két utasítást együtt kellett alkalmazni. |
-47 -44 |
ellenőrző olvasás mágnesszalagról hátra – zónakeresés | -47 i x -44 i k 0 |
A két utasítást együtt kellett alkalmazni. |
-03 | kártyalukasztás indítása, leállítása | -03 0 k 0 | |
-17 | adatbevitel teletype billentyűzetről | -17 i c1 c2 |
A Minszk–22 programozása
[szerkesztés]A Minszk–22 életciklusának vége felé már meglehetősen sok fordítóprogrammal rendelkezett: COBOL, Fortran, ALGOL és ALGOL-68. Szegedre érkezésekor azonban a Minszk–22-n kizárólag egy „Inzsenyer” nevű autókód fordító (АКИ — Автокод инженер) futott. Az Inzsenyer, mint az nevéből kitalálható, mérnöki feladatok megoldására készült, és meglehetősen nagy műszaki-tudományos számítások végzésére kialakított szubrutinkönyvtárral rendelkezett. Az autókód nyelvek a számítástechnika fejlődésének kezdeti szakaszán alkalmazott, az assembler nyelvhez nagyon hasonlító, de annál egyszerűbb programozási nyelvek voltak, általában csak a gépi kód oktálisan megadott kódjait helyettesítették mnemonikus kódokkal. Szegeden a Kibernetikai Labor kutatási területein (matematikai nyelvészet, operációkutatás, fordítóprogramok stb.) alig volt alkalmazható, így a gépet leginkább gépi kódban programozták. Azonban hamarosan Fortran, majd ALGOL fordítót is kapott, és Kalmár professzor vezetésével a szegedi hallgatók egy ALGOL-68-as fordítót is készítettek hozzá.
A Minszk–22 Magyarországon
[szerkesztés]MN Számítástechnikai Központja (MN SZK)
[szerkesztés]1966-ban hozták létre a Magyar Néphadsereg Számítástechnikai Központját. Az első magyarországi Minszk–22-es számítógép 1967-ben a Néphadsereg Haditechnikai Intézetében kezdte meg működését.[1] Ezzel elkezdődött a honvédelem területén is az informatikai korszak. Ennek a központnak és számítógépnek a jelentősége jóval túlnyúlt a hadseregen. A szocialista idők állambiztonsági felfogásának megfelelően az államigazgatás működésével összefüggő információk is szigorúan titkosak voltak, így ez idő tájt azok kezelése is a Honvédelmi Minisztérium feladatkörébe tartozott. Az MN SZK parancsnoka Majdán Pál alezredes, tudományos vezetője (nem tartozott az állományhoz) Dömölky Bálint volt.[2]
Ezt a gépet 1974-ig használta az MN SZK. Ekkor a szervezet egy új Minszk–32-es gépet kapott, átalakult és elköltözött a Szilágyi Erzsébet fasorból. A Minszk–22 fizikailag a helyén maradva átkerült a Zrínyi Miklós Katonai Akadémia állományába, és még évekig szolgálta a leendő tisztek számítástechnikai oktatását.[3]
Felsőoktatás
[szerkesztés]A második Minszk—22-es gép 1968 tavaszán a Budapesti Nemzetközi Vásár szovjet pavilonjának volt a büszkesége. A vásár bezárását követően a gépet, mint a szovjet nép ajándékát adták át a magyar felsőoktatásnak. A számítógép Szegedre került, a József Attila Tudományegyetem Kalmár László akadémikus által vezetett Kibernetikai Laboratóriumába. Ez a gép biztosította az alapot a magyar informatikusképzés elindításához. A Kalmár professzor által oktatott Automatikus számítógépek tantárgy kiegészült számítógépi gyakorlatokkal. Ezeken a gyakorlatokon, évfolyamdolgozat gyanánt, különböző programokat kellett írni és futtatni a Minszk—22-n. A JATE Természettudományi karán 1970-ben végzett hallgatók (13 fő) oklevelébe került be Magyarországon először a programtervező matematikus végzettség.
Jegyzetek
[szerkesztés]Források
[szerkesztés]- ↑ JATE: Medve Zoltán: Múzeum a város szélén.... www.linuxvilag.hu, 2007. január 23. [2013. január 11-i dátummal az eredetiből archiválva]. (Hozzáférés: 2012. december 3.)
- ↑ HM: A Magyar Néphadsereg és a számítógép. (Hozzáférés: 2012. december 3.)
- Смирнов Геннадий Дмитриевич, Грекович Анатолий Викентьевич: Электронная цифровая вычислительная машина «Минск-22» (orosz nyelven). (Hozzáférés: 2012. december 3.)
- Автокод (orosz nyelven). Nagy szovjet enciklopédia. (Hozzáférés: 2012. december 11.)