Pluribus

Pluribus på Wharton School, april 1979, fotografi av Tony Patti

Pluribus - multiprocessorn var en tidig multiprocessordator designad av BBN för användning som en paketväxel i ARPANET . Dess design påverkade senare BBN Butterfly -datorn.

Pluribus började 1972 när behovet av en andra generationens gränssnittsmeddelandeprocessor (IMP) blev uppenbart. Vid den tiden hade BBN redan installerat IMPs på mer än trettiofem ARPANET- platser. Dessa IMP:er var Honeywell 316 och 516 minidatorer. Nätverket växte snabbt i flera dimensioner: antal noder, värdar och terminaler; trafikvolym; och geografisk täckning (inklusive planer, nu realiserade, för satellitförlängningar till Europa och Hawaii).

Ett mål fastställdes att designa en modulär maskin som i sin nedre ände skulle vara mindre och billigare än 316:orna och 516:orna samtidigt som den kunde utökas i kapacitet för att ge tio gånger så mycket bandbredd som, och som skulle kunna betjäna fem gånger så många ingångar. output (I/O) enheter som 516. Relaterade mål inkluderade större minnesadresseringskapacitet och ökad tillförlitlighet.

Konstruktörerna bestämde sig för en multiprocessor-metod på grund av dess lovande potential för modularitet, för kostnad per prestandafördelar, för tillförlitlighet och för att IMP-paketväxlingsalgoritmerna var klart lämpade för parallell bearbetning av oberoende processorer.

Hårdvara

En Pluribus bestod av två eller flera vanliga 19" elektroniska utrustningsställ, var och en uppdelad i fyra fack. Varje fack innehöll en bakplansbuss och en oberoende strömförsörjning. Ett fack kan innehålla en processorbuss, en delad minnesbuss eller en I/O Skräddarsydda busskopplare kopplade facken till varandra så att processorerna kunde nå det delade minnet och I/O-enheterna.

En 6-processor Pluribus användes som en nätverksswitch för att koppla samman BBN:s fem Tenex /"Twenex" tidsdelningssystem tillsammans med 378 terminaler på direkta seriella och uppringda modemlinjer. Pluribus använde Lockheed SUE som sin processor. SUE:n liknade DEC:s PDP-11 .

programvara

Pluribus-mjukvaran implementerade MIMD symmetrisk multiprocessing. Programvaruprocesser implementerades med hjälp av icke-förebyggande multiprogrammering . Processschemaläggning använde en hårdvaruenhet, kallad pseudo-avbrottsenhet eller PID, som var tillgänglig för både program och I/O-enheter. Varje processor körde sin egen kopia av processschemaläggaren, som skulle läsa ett heltalsvärde från PID. Värdet användes för att välja den process som skulle köras. Om ett program eller en enhet behövde signalera att en annan process ska köras, skulle den skriva det processnumret i PID:n. PID:n skulle avge den högsta prioritetsprocess som någon hade begärt, och skickade dem till alla processorer.

En viktig aspekt av Pluribus-mjukvaran var "STAGE"-systemet, som upptäckte systemfel och vidtog åtgärder för att återställa dem. Processorklockorna hade avbrottshanterare som implementerade watchdog-timers på alla processorer. Om en processor slutade köra, skulle en annan processor upptäcka den och initiera en återställning. Återställningsprocessen skulle låsa upp alla lås som placerats på delade resurser, frigöra allokerat lagringsutrymme och starta om all bearbetning på alla processorer. Detta var acceptabelt på en ARPANET-routingnod, eftersom alla förlorade paket så småningom skulle återsändas.

Vidare läsning

  •   SM Ornstein, William R. Crowther, MF Kraley. RD Bressler, A. Michel, Frank E. Heart (1975). "Pluribus - En pålitlig multiprocessor". Proc. AFIPS . 44 : 551-559. doi : 10.1145/1499949.1500061 . S2CID 10813801 . {{ citera tidskrift }} : CS1 underhåll: flera namn: lista över författare ( länk )
  • CR Morgan; MF Kraley; et al. (april 1977). "Pluribus Document 2: System Handbook". BBN Report 2930. Bolt, Beranek och Newman, Inc. {{ citera journal }} : Citera journal kräver |journal= ( hjälp )
  •   D. Katsuki; ES Elsam; WF Mann; ES Roberts; JG Robinson; FS Skowronski; EW Wolf (1978). "Pluribus-En funktionell feltolerant multiprocessor". IEEE:s förfaranden . 66 (10): 1146–1159. doi : 10.1109/PROC.1978.11109 . S2CID 37125422 .