Obsah
1. PDP-11 a SMEP (Systém malých elektronických počítačů)
2. Základní technické parametry počítačů SMEP
1. PDP-11 a SMEP (Systém malých elektronických počítačů)
V předchozí části článku o historii mikropočítačů navrhovaných a vyráběných firmou Digital Equipment Corporation (DEC) jsme si mj. popsali základní parametry počítače PDP-11, na němž byl Kenem Thompsonem a Dennisem Ritchiem vyvinut programovací jazyk C, včetně základních knihoven, jejichž API je mnohdy využíváno i v moderním ANSI/ISO C. Právě v programovacím jazyce C byla posléze napsána nová verze jádra operačního systému Unix (původní Unixové jádro bylo totiž naprogramováno s využitím makroassembleru minipočítače PDP-7, nikoli vyššího programovacího jazyka). Počítač PDP-11 však nebyl populární pouze v USA, ale i v mnoha dalších zemích. Jeho architekturou a instrukční sadou se dokonce inspirovali i ve státech RVHP (do níž mj. patřily země střední a východní Evropy a Sovětský svaz), kde posloužil jako základ pro návrh minipočítačů řady SMEP, neboli Systému malých elektronických počítačů.
2. Základní technické parametry počítačů SMEP
V zemích RVHP existovalo poměrně velké množství výrobců těchto minipočítačů i výrobců periferních zařízení, které se k těmto počítačům dala připojit přes universální sběrnici nazvanou příznačně Unibus. Mezi výrobci figurovaly i podniky z ČSSR, NDR, Bulharska, Maďarska a samozřejmě i SSSR. V následujících kapitolách si popíšeme některé modely počítačové řady SMEP 1 a SMEP 2 vyráběné v ČSSR. Do řady SMEP 1 jsou zařazeny minipočítače SM 3/20 a SM 4/20, v modelové řadě SMEP 2 pak minipočítače SM 52/11 a SM 52/12 (inspirovaný VAXem) i mikropočítače SM 50/40 a SM 50/50 (tyto mikropočítače jsou založeny na osmibitovém resp. šestnáctibitovém procesoru a v mnoha ohledech se odlišují od zbylých systémů). Základní technické parametry vybraných minipočítačů z obou zmíněných řad jsou vypsány v následující tabulce (kapacitou operační paměti je myšlen maximální objem operační paměti, protože některé počítače mohly mít z cenových důvodů pouze poloviční či dokonce jen čtvrtinovou kapacitu paměťových bloků):
Model | SM 3/20 | SM 4/20 | SM 52/11 | SM 52/12 |
---|---|---|---|---|
Odvozeno od | PDP 11/10 | PDP 11/40 | PDP 11/50 | VAX 11/780 |
Bitová šířka | 16 | 16 | 16 | 32 |
Operační paměť (max.kapacita) | 64 | 256 | 256 | 4096 |
Vyrovnávací paměť – cache (kB) | 0 | 0 | 2 | 4/8 |
Cyklus operační paměti (ns) | 500 | 850/1000 | 850 | 800 |
Cyklus vyrovnávací paměti (ns) | – | – | 80 | ? |
Výpočetní rychlost (MIPS) | 0,3 | 0,42 | 2,8 | 1,0 |
Počet instrukcí | 76 | 84 | 132 | 248 |
FP instrukce | ne | ano | ano | ano |
3. Model SM 3/20
Základní model minipočítačů řady SMEP 1 je představován typem SM 3/20 odvozeným od původního stroje PDP 11/10. Jednalo se o počítač vybavený procesorem, jehož aritmeticko-logická jednotka zpracovávala operandy o šířce šestnácti bitů, což je stejná šířka, jakou disponovala ALU v počítači PDP-11. Počítač SM 3/20 byl sestaven z několika modulů připojených na společnou sběrnici: procesoru, operační paměti, řídicí jednotky vnějších pamětí a adaptorů pro vstupní a výstupní jednotky. Procesor obsahoval osm registrů, přičemž šest těchto registrů bylo univerzálních (sloužily buď pro přímé uložení hodnot operandů, adres operandů popř. indexů), sedmý registr sloužil pro uložení ukazatele vrcholu zásobníku (SP – stack pointer) a poslední registr byl využit jako čítač instrukcí (PC – program counter). Instrukční sada procesoru počítače SM 3/20 bude ve svých základních rysech popsána v navazujících kapitolách.
Operační paměť mohla být sestavena buď z polovodičových paměťových modulů nebo se mohlo jednat o feritovou paměť (cyklus operační paměti, a tím i doba čtení a zápisu dat se však v tomto případě téměř zdvojnásobila). Jednalo se o minipočítač, ke kterému se, na rozdíl od dalších modelů, běžně nedodával specializovaný procesor pro provádění operací s pohyblivou řádovou čárkou (FPU – floating point unit, obdoba matematických koprocesorů), takže se tyto operace musely řešit pomocí podprogramů, což je samozřejmě mnohem pomalejší než využití specializovaných obvodů. Mezi zařízení, které bylo možné k SM 3/20 i k dalším modelům připojit, patřily například modemy, tiskárny, dálnopisy, displeje, snímače a děrovače děrné pásky i děrných štítků. Vnější paměti byly představovány magnetickými pásky a popř. diskovými paměťmi, jejichž kapacita dosahovala řádově jednotek megabajtů (typicky 5 MB).
4. Model SM 4/20
Na výše popsaný model SM 3/20 navazoval výkonnější typ počítače – SM 4/20 – který byl odvozen od modelu PDP 11/40 firmy Digital. Tento minipočítač má čtyřikrát větší kapacitu operační paměti než jeho předchůdce (v případě použití feritových pamětí pouze dvojnásobnou kapacitu), zvýšenou rychlost procesoru o cca 50% a v neposlední řadě také rozšířený repertoár strojových instrukcí. Pro provádění různých vědeckotechnických výpočtů bylo důležité, že původní aritmeticko-logická jednotka byla doplněna matematickým procesorem umožňujícím provádět výpočty s numerickými hodnotami uloženými v systému pohyblivé řádové čárky. Matematický procesor dokázal zpracovávat slova o šířce 32 nebo 64 bitů, tj. hodnoty uložené v jednoduché i dvojité přesnosti (v céčku by tyto hodnoty měly typy float a double). Aritmetické operace byly prováděny s šesti univerzálními registry, z nichž každý měl šířku 64 bitů. Zajímavé je, že operační paměť byla vybavena obvody pro detekci dvojnásobné chyby (inverzi dvou bitů) a korekci jednoduché chyby (inverze jednoho bitu) při čtení dat.
Podobně jako u dalších počítačů řady SMEP 1 a SMEP 2, byly i v tomto stroji všechny moduly navrženy tak, aby byly kompatibilní s původním minipočítačem PDP-11 firmy Digital. Testy kompatibility se prováděly jednoduše – modul se připojil k PDP-11 a právě na tomto „etalonu“ se funkčnost modulu odzkoušela. Díky tomu byla umožněna kooperace mezi různými výrobci modulů a současně se zaručila i dostatečná kvalita modulů.
Většina strojových instrukcí zpracovávaných procesorovou jednotkou počítačů SMEP má šířku 16 bitů. Instrukce lze podle jejich formátu rozdělit do pouhých čtyřech skupin, což mj. ukazuje na velkou ortogonalitu instrukční sady (viz též předchozí část tohoto článku). Kód instrukce může mít délku 4 bity, 7 bitů, 8 bitů či 10 bitů s formáty:
- 10 bitů pro kód instrukce + 6 bitů pro první (jediný) operand
- 4 bity pro kód instrukce + 6 bitů pro první operand + 6 bitů pro druhý operand
- 7 bitů pro kód instrukce + 3 bity pro číslo registru + 6 bitů pro adresu paměti
- 8 bitů pro kód instrukce + osmibitová hodnota posunu u skokové instrukce
5. Model SM 52/11
Počítač SM 52/11 je zástupcem výkonnější řady minipočítačů označovaných zkratkou SMEP 2. U tohoto počítače sice byla zachována zpětná programová kompatibilita s výše popsanými minipočítači řady SMEP 1, ovšem došlo k poměrně významným změnám celé architektury, což se příznivě projevilo na vyšší výpočetní rychlosti a taktéž zvýšené spolehlivosti. První poměrně významnou změnou bylo přidání vyrovnávací paměti s kapacitou dvou kilobajtů mezi operační paměť a aritmeticko-logickou jednotku (ALU). Vzhledem k tomu, že doba přístupu k této vyrovnávací paměti byla cca desetkrát kratší než doba přístupu k paměti operační, bylo možné urychlit výpočty prováděné v ALU nezávisle na tom, že technologie operačních pamětí zůstala obdobná jako u výše zmíněného počítače SM 4/20. Operační paměť byla opět vybavena obvody pro detekci dvojité chyby a korekci chyby jednoduché, navíc byl přítomen obvod, který rozšiřoval adresový rozsah z šestnácti bitů na bitů osmnáct a umožnil tak přímou adresaci celých 256 kB operační paměti.
Celý minipočítač SM 52/11 byl umístěn v poměrně kompaktní skříni o rozměrech cca 97×150×32 cm (šířka×výška×hloubka), v níž byly standardně nainstalovány dvě diskové paměti, každá s kapacitou 5 MB, dvě disketové mechaniky, pásková paměť, procesorová jednotka, operační paměť, zdroje a samozřejmě nezbytná ventilace. Terminál, tj. displej s klávesnicí, byl umístěn na samostatném stolku, stejně jako jehličková tiskárna.
6. Model SM 52/12
Dalším minipočítačem patřícím do produktové řady SMEP 2 je počítač nesoucí označení SM 52/12 navržený ve VUVT Žilina (dnes Slovensko) a vyráběný v ZVT Banská Bystrica (opět Slovensko). Jedná se o počítač s procesorovou jednotkou zpracovávající slova o šířce 32 bitů. Architektura tohoto počítače je odvozena od systému VAX 11/780 firmy Digital, což znamená, že je v několika ohledech odlišná od předchozích modelů. Kromě větší bitové šířky zpracovávaných údajů umožňuje procesorová jednotka současné provádění až čtyř operací. Vzhledem k tomu, že adresy jsou reprezentovány slovem o šířce 32 bitů, lze operační paměť (přesněji řečeno paměť virtuální, neboť se jednalo o jeden z prvních systémů s hardwarovou podporou virtuální paměti) rozšířit až na kapacitu 4 GB. Pro urychlení přístupu k často používaným datům se do systému mohla nainstalovat i rychlá vyrovnávací paměť o kapacitě 4 kB nebo 8 kB.
Řadič procesoru byl mikroprogramovatelný, což umožnilo, aby instrukční sada byla poměrně rozsáhlá komplikovaná (ve své podstatě se jedná o klasický CISC procesor) a současně byla zachována relativně malá složitost řadiče. Šířka jedné mikroinstrukce je rovna 96 bitům a organizace řídicí paměti je 8192 × 96 bitů. Zajímavé je, že už na tomto systému byly podporovány čtyři privilegované režimy podobné těm implementovaným i na architektuře i386 (ne všechny operační systémy však využívají všechny čtyři režimy). Nejvyšší úroveň privilegií mělo jádro operačního systému, druhou úroveň ovladače souborových systémů, třetí úroveň (druhou nejnižší) procesy spouštěné superuživatelem a konečně nejnižší úroveň procesy spouštěné běžnými uživateli. Spolu s podporou virtuální paměti tak VAX a tím pádem i minipočítač SM 52/12 představoval předchůdce moderního osobního počítače či serveru.
7. Sběrnice Unibus
Prakticky všechny moduly minipočítačů řady SMEP byly navzájem propojeny univerzální společnou sběrnicí nazvanou Unibus, jenž byla opět navržena firmou Digital. Tato sběrnice umožňovala přesuny dat organizovaných do šestnáctibitových slov s adresováním osmnáctibitovou adresou. Přesuny dat mohl provádět jak samotný procesor, tak i některý z modulů, který o přenos dat zažádal – jednalo se například o přenos dat mezi vnější a operační pamětí pomocí přímého přístupu do paměti (Direct Memory Access – DMA), do kterého procesor nemusel zasahovat. Celkový počet modulů, který mohl být na jeden segment sběrnice připojen, byl roven dvaceti, přičemž délka vodičů představujících sběrnici musela být rovna maximálně třinácti metrům. Pokud bylo zapotřebí připojit další moduly (externí paměti, měřicí přístroje atd.), musel se připojit další segment sběrnice oddělený zesilovači, které současně pracovaly i jako tvarovače signálů, protože zajišťovaly i obnovení zkosení hran binárních signálů atd.
Sběrnice Unibus byla tvořena 56 signálovými vodiči rozdělenými do několika skupin:
- 16 datových vodičů umožňujících obousměrný přenos šestnáctibitových slov
- 18 adresových vodičů, celkem bylo možné na každém zařízení adresovat až 256 kB
- 2 vodiče sloužící pro oznámení poruchy, například při výpadku napájení (AC low, DC low)
- 4 vodiče určené pro řízení přenosu dat
- 2 vodiče pro obousměrný přenos paritního bitu (detekce jednoduché chyby) a řízení parity
- 14 vodičů určených pro výběr zařízení a přenos přerušovacích signálů
Zařízení připojovaná na sběrnici Unibus byla vybavena dvojicí konektorů s 36 piny, což dohromady dává 72 pinů. V předchozím odstavci jsme si řekli, že je použito 56 signálových vodičů, protože zbylé vodiče (16) jsou použity pro rozvod napájecího napětí.
8. Literatura
- Krištoufek Karel: Kurs číslicových počítačů a mikropočítačů
- Blatný J. a kol.: Číslicové počítače
- Krištoufek Karel a kol.: Výpočetní a řídicí technika
- Marko Š., Štěpánek M.: Operačné systémy minipočítačov SMEP
9. Odkazy na Internetu
- Výpočtové stredisko SAV: Systém malých elektronických počítačov
http://www.vs.sav.sk/?… - Výpočtové stredisko SAV: Jednotný systém elektronických počítačov
http://www.vs.sav.sk/?… - Unibus
http://en.wikipedia.org/wiki/Unibus - VAX
http://en.wikipedia.org/wiki/VAX - The Development of the C Language
http://cm.bell-labs.com/…r/chist.html - B (programming language)
http://en.wikipedia.org/wiki/B_(programming_language) - Users' Reference to Bo
http://cm.bell-labs.com/…r/kbman.html - THE PROGRAMMING LANGUAGE B
http://cm.bell-labs.com/…/bintro.html - BCPL
http://en.wikipedia.org/wiki/BCPL - Ken Thompson
http://en.wikipedia.org/…en_Thompson_(computer_programmer) - Dennis Ritchie
http://en.wikipedia.org/…nnis_Ritchie - Brian Kernighan
http://en.wikipedia.org/…an_Kernighan - Douglas McIlroy
http://en.wikipedia.org/…glas_McIlroy - M. Douglas McIlroy, Adjunct Professor
http://www.cs.dartmouth.edu/~doug/ - PDP-7
http://en.wikipedia.org/wiki/PDP-7 - PDP-10
http://en.wikipedia.org/wiki/PDP-10 - PDP-11
http://en.wikipedia.org/wiki/PDP-11 - Road to Mac OS X Leopard Server: Collaborative Info Sharing Services
http://www.appleinsider.com/…ervices.html - PDP-1 Web Pages
http://www.pdp-1.org/ - PDP-1 Restoration Process
http://pdp-1.computerhistory.org/pdp-1/ - Programmed Data Processor
http://en.wikipedia.org/…ta_Processor - Digital Equipment Corporation
http://en.wikipedia.org/…_Corporation - PDP-1
http://en.wikipedia.org/wiki/PDP-1 - Ancient Computing Machinery
http://www.ee.ryerson.ca/…p/index.html - Spacewar – The first computer video game. Really!
http://www3.sympatico.ca/…pacewar.html - Programmed Data Processor-1 Handbook
http://www.dbit.com/…p1/pdp1.html