C.mmp - C.mmp

Paměťová jednotka C.mmp, se třemi viditelnými stojany, včetně předního panelu příčného spínače.

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