C.mmp - C.mmp
C.mmp byl časný vícenásobné instrukce, více dat ( MIMD ) s více procesory systém vyvinutý na Carnegie Mellon University (CMU) od Williama Wulf (1971). Zápis C.mmp přišel z PMS notaci Gordon Bell a Allen Newell , kde centrální procesorová jednotka (CPU) byl označen jako C , varianta byla zaznamenána u tečkové notace a MMP stála Multi-Mini-Processor . Od roku 2020 je stroj vystaven na CMU ve Wean Hall v devátém patře.
Struktura
Jako prvky zpracování bylo v systému použito šestnáct minipočítačů PDP-11 Digital Equipment Corporation s názvem Compute Modules (CMs). Každý CM měl lokální paměť 8K a místní sadu periferních zařízení. Jednou z výzev bylo, že zařízení bylo k dispozici pouze prostřednictvím jedinečného připojeného procesoru, takže systém vstupu / výstupu (I / O) (navržený Royem Levienem ) skryl konektivitu zařízení a směroval požadavky na hostitelský procesor. Pokud procesor selhal, zařízení připojená k jeho Unibus byla nedostupná, což se stalo problémem v celkové spolehlivosti systému. Procesor 0 ( spouštěcí procesor ) měl připojené diskové jednotky.
Každý z výpočetních modulů sdílel tyto komunikační cesty:
- Meziprocesorová sběrnice - používá se k distribuci zpráv systému, hodin, přerušení a řízení procesů mezi CM
- Přepínač 16x16 - slouží k připojení 16 CM na jedné straně a 16 bank sdílené paměti na straně druhé. Pokud by všech 16 procesorů přistupovalo k různým bankám paměti, byly by všechny přístupy do paměti všechny souběžné. Pokud by se dva nebo více procesorů pokoušelo získat přístup ke stejné bance paměti, jednomu z nich by byl udělen přístup v jednom cyklu a zbytek by byl vyjednán v následujících paměťových cyklech.
Vzhledem k tomu, že PDP-11 měl logický adresní prostor 16 bitů, byla přidána další jednotka překladu adres, která rozšířila adresní prostor na 25 bitů pro sdílený paměťový prostor. Architektura Unibus poskytovala 18 bitů fyzické adresy a dva bity vyššího řádu byly použity k výběru jednoho ze čtyř relokačních registrů, které vybíraly banku paměti. Správná správa těchto registrů byla jednou z výzev programování jádra operačního systému (OS) .
Původní design C.mmp používal paměť s magnetickým jádrem , ale během své životnosti byla k dispozici výkonnější dynamická paměť s náhodným přístupem (RAM) a systém byl upgradován.
Původní procesory byly procesory PDP-11/20, ale v konečném systému bylo použito pouze pět z nich; zbývajících 11 bylo procesorů PDP-11/40, které byly upraveny tím, že měly extra zapisovatelný prostor pro mikrokód. Všechny úpravy těchto strojů byly navrženy a vyrobeny na CMU.
Většina modifikací 11/20 byla vlastními změnami propojené propojovací desky , ale protože PDP-11/40 byl implementován v mikrokódu , byla navržena samostatná deska proc-mod, která zachytávala určité pokyny a implementovala požadavky chráněného operačního systému. Například pro integritu operačního systému bylo nutné, aby registr ukazatele zásobníku nikdy nebyl lichý. Na 11/20, toto bylo provedeno oříznutím vedení na bit nižšího řádu registru zásobníku. Na 11/40 byl jakýkoli přístup k zásobníku zachycen deskou proc-mod a vygeneroval nelegální pasti pro přístup k datům, pokud byl bit nízkého řádu 1.
Operační systém
Operační systém (OS) byl jmenován Hydra . Bylo to na základě schopností , objektově orientované , víceuživatelské a mikrojádrové . Systémové prostředky byly reprezentovány jako objekty a chráněny pomocí funkcí.
OS a většina aplikačního softwaru byla napsána v programovacím jazyce BLISS -11, který vyžadoval křížovou kompilaci na PDP-10 . OS používal velmi málo montážního jazyka .
Mezi programovacími jazyky dostupnými v systému byla varianta ALGOL 68, která zahrnovala rozšíření podporující paralelní výpočty , aby bylo možné dobře využít C.mmp. Kompilátor ALGOL běžel nativně na Hydra OS.
Spolehlivost
Protože celková spolehlivost systému závisela na provozu všech 16 procesorů, došlo k vážným problémům s celkovou spolehlivostí hardwaru. Pokud byla průměrná doba mezi poruchami (MTBF) jednoho procesoru 24 hodin, pak byla celková spolehlivost systému 16/24 hodin nebo přibližně 40 minut. Celkově systém obvykle běžel dvě až šest hodin. Mnoho z těchto poruch bylo způsobeno časovými závadami v mnoha vlastních obvodech přidaných do procesorů. Bylo vynaloženo velké úsilí na zlepšení spolehlivosti hardwaru, a když procesor znatelně selhal, byl rozdělen na oddíly a několik hodin by běžel diagnostika. Když prošla první sadou diagnostiky, byla rozdělena zpět jako I / O procesor a nespustila by kód aplikace (ale její periferní zařízení byla nyní k dispozici); pokračovalo to v diagnostice. Pokud to prošlo po několika dalších hodinách, bylo obnoveno jako řádný člen sady procesorů. Podobně, pokud byl blok paměti (jedna stránka) detekován jako vadný, byl odstraněn z fondu dostupných stránek a dokud nebude oznámeno jinak, operační systém by tuto stránku ignoroval. OS se tak stal časným příkladem systému odolného proti chybám , který je nevyhnutelně schopen vypořádat se s hardwarovými problémy, které se objevily.
Reference
- Wulf, WA ; Bell, CG (1972). C.mmp: Multi-mini-processor (PDF) (Report). Univerzita Carnegie Mellon (CMU).
- Bell, CG ; Broadley, W .; Wulf, WA; Newell, A .; Pierson, C. (1971). C.mmp: Multiminiprocesorový počítač CMU: Požadavky a přehled původního návrhu (PDF) (zpráva). Univerzita Carnegie Mellon (CMU).
- Wulf, Wm. A.; Harbison, SP III (2000). „Reflections in a Pool of Processors: An Experience Report on C.mmp / Hydra“ . Čtení v počítačové architektuře . Gulf Professional Publishing. 561–573. ISBN 9781558605398.
- Wulf, Wm. A.; Harbison, Samuel P. III; Levin, Roy (1. ledna 1981). HYDRA / C.mmp: Experimentální počítačový systém . McGraw-Hill. ISBN 978-0070721203.)