C.mmp

Det C.mmp var en tidlig MIMD multiprocessorsystem udviklet på Carnegie Mellon University af William Wulf. Notationen C.mmp kom fra PMS notation af Bell og Newell, hvor en CPU blev udpeget som C og en variant blev bemærket af dot notation; MMP stod for Multi-Mini-processor

Seksten PDP-11 minicomputere blev anvendt som behandlingselementer. Hver CM havde en lokal hukommelse på 8K og en lokal sæt af perifere enheder. En af udfordringerne var, at en enhed kun var tilgængelige via sin unikke tilsluttede processor, så I / O-system skjulte konnektivitet af anordningerne og dirigeres de anmodninger til hosting processoren. Hvis en processor gik ned, de enheder, der er tilsluttet sin Unibus blev utilgængelig, som blev et problem i det samlede system pålidelighed. Processor 0 havde diskdrev vedlagt.

Hver af de Compute Moduler delte disse kommunikations veje:

  • En interprocessor bus - bruges til distribution af hele systemet ur, afbryde og processtyring messaging blandt CMS
  • En 16x16 overliggeren switch - bruges til at forbinde de 16 CMS på den ene side og 16 banker delt hukommelse på den anden. Hvis alle 16 processorer var adgang til forskellige banker hukommelse, vil den hukommelse adgange alle være samtidige. Hvis to eller flere processorer forsøgte at få adgang til den samme bank af hukommelse, ville en af ​​dem gives adgang på en cyklus og resten vil blive forhandlet på de efterfølgende hukommelse cyklusser.

Da PDP-11 havde kun en adresserum på 16-bit, blev en yderligere adresse oversættelseskontor hvormed udvide adresserum til 25 bit til den delte hukommelse. Den Unibus arkitektur forudsat 18 bits adresse, og de to high-order bits blev brugt til at vælge en af ​​fire udflytning registre, som markerede en bank af hukommelse. Korrekt forvaltning af flytning registrene var en af ​​udfordringerne ved programmering af operativsystemets kerne.

Det oprindelige C.mmp design brugt magnetiske kerne hukommelse, men i løbet af sin levetid, højere ydelse dynamisk RAM blev tilgængelige, og systemet blev opgraderet.

De oprindelige processorer var PDP-11/20 processorer, men i det endelige system, blev kun fem af disse brugte; de resterende 11 var PDP-11/40-processorer, som blev modificeret ved at have ekstra skrivbar mikrokode plads. Alle ændringer af disse maskiner er designet og bygget på CMU.

De fleste af de 11/20 modifikationer var brugerdefinerede ændringer i bundkortet, men fordi PDP-11/40 blev implementeret i mikrokode blev en separat "proc-mod" board konstrueret, at opfanget visse instrukser og gennemført de beskyttede krav operativsystem. For eksempel var det nødvendigt for operativsystemet integritet, at stakhenvisningen register aldrig være ulige. På den 11/20, var dette opnås ved klipning føringen til lav-ordre bit af stablen register. På den 11/40, var nogen adgang til stakken blev opsnappet af en proc-mod bestyrelse og genererede en ulovlig dataadgang fælde, hvis den lave ordens bit var 1.

Operativsystemet blev kaldt HYDRA. Det var en mulighed-baserede objekt-orienteret multi-user operativsystem. Systemressourcer var repræsenteret som objekter og beskyttet gennem kapaciteter.

Blandt de programmeringssprog der er tilgængelige på dette system var en delmængde af ALGOL 68. Dette sprog var faktisk mere en overordnet end en delmængde, da de funktioner, der støtter parallelitet blev kraftigt forbedret, for at gøre god brug af C.mmp. Operativsystemet og de fleste programmer blev skrevet på det sprog, Bliss-11, som krævede cross-kompilering fra et PDP-10. Den Algol-68 compiler kørte indfødt på Hydra operativsystem. Der var meget lidt samling kode anvendes i operativsystemet.

Fordi samlede system pålidelighed afhang have alle 16 CPU'er kører, der var alvorlige problemer med den samlede hardware pålidelighed; hvis MTBF på én processor var 24 timer, kan den samlede systemsikkerhed var 16/24 timer, eller cirka 40 minutter. Mange af disse fejl skyldes timing fejl i de mange tilpassede kredsløb føjet til processorerne. Betydelig indsats blev brugt i få hardware pålidelighed forbedres, og når en processor blev mærkbart mangel, blev det delt ud, og ville køre diagnostik i flere timer. Da det havde passeret et første sæt diagnostik, blev det partitioneret tilbage på som "I / O-processor" og ville ikke køre programkode; Det fortsatte med at køre diagnosticering. Hvis det passerede disse efter flere flere timer, blev det genindsat som fuldgyldigt medlem af processoren sættet. Tilsvarende, hvis en blok af hukommelse blev detekteret som defekt, blev det fjernet fra puljen af ​​tilgængelige sider og indtil andet meddeles, vil styresystemet ignorere denne side. Således styresystemet blev et tidligt eksempel på en fejltolerant system i stand til at håndtere hardware problemer, som uundgåeligt ville opstå.

  0   0
Næste artikel Alasdair Morgan

Kommentarer - 0

Ingen kommentar

Tilføj en kommentar

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Tegn tilbage: 3000
captcha