DEC PRISM - DEC PRISM

DES PRISM
Dec-prism-logo.png
Designer Digital Equipment Corporation
Biter 32-bit
Introdusert 1988 (kansellert)
Design RISK
Etterfølger DEC Alpha
Registre
  • 64 × 32-biters generelle registre
  • 16 × 64-biters vektorregistre

PRISM ( P arallel R educed I nstruction S et M achine) var en 32-biters RISC instruksjonsarkitektur (ISA) utviklet av Digital Equipment Corporation (DEC). Det var resultatet av en rekke DEC-forskningsprosjekter fra tidsrammen 1982–85, og prosjektet var gjenstand for stadig skiftende krav og planlagte bruksområder som forsinket introduksjonen. Denne prosessen bestemte seg til slutt for å bruke designet til en ny serie Unix -arbeidsstasjoner . Den aritmetiske logiske enheten (ALU) i microPrism -versjonen hadde fullført designet i april 1988 og prøver ble produsert, men utformingen av andre komponenter som flytende punktenhet (FPU) og minnehåndteringsenhet (MMU) var fremdeles ikke fullført om sommeren da DEC -ledelsen bestemte seg for å kansellere prosjektet til fordel for MIPS -baserte systemer.

PRISMs kansellering hadde betydelige effekter innen DEC. Mange av teammedlemmene forlot selskapet i løpet av det neste året, særlig Dave Cutler som flyttet til Microsoft og ledet utviklingen av Windows NT . De MIPS-baserte arbeidsstasjonene var moderat vellykkede blant DECs eksisterende Ultrix- brukere, men hadde liten suksess med å konkurrere mot selskaper som Sun Microsystems . I mellomtiden ble DECs cash-cow- VAX- serie stadig dårligere da nye RISC-design overgikk selv toppen av serien VAX 9000 . Da selskapet utforsket fremtiden til VAX, konkluderte de med at en PRISM-lignende prosessor med noen få endringer kunne adressere alle disse markedene. Fra der PRISM sluttet, startet DEC Alpha -programmet i 1989.

Historie

Bakgrunn

VAX ble introdusert i 1977 og var en løpende suksess for DEC, og sementerte sin plass som verdens nest største datamaskinleverandør bak IBM . VAX ble kjent for sin rike instruksjonsarkitektur (ISA), som ble implementert i kompleks mikrokode . Den VAX / VMS operativsystemet ble lagt på toppen av denne ISA, som drev den å ha visse krav til avbruddshåndtering og minnemodell som brukes for minne paging . På begynnelsen av 1980-tallet hadde VAX-systemer blitt "databehandlingsnavet til mange teknologidrevne selskaper, og sendte eiker av RS-232-kabler ut til en kant av VT-100-terminaler som holdt avdelingene for vitenskap og ingeniørkunst rullende."

Denne lykkelige situasjonen ble opprørt av den nådeløse forbedringen av halvlederproduksjonen som er kodet av Moores lov ; Ved begynnelsen av 1980-tallet var det en rekke som er i stand 32-bits enkelt-brikke mikroprosessorer med ytelse i likhet med tidlige VAX maskiner ennå i stand til å passe inn i en stasjonær pizza eske formfaktor. Selskaper som Sun Microsystems introduserte Motorola 68000 -seriebaserte Unix -arbeidsstasjoner som kunne erstatte en enorm flerbruker -VAX -maskin med en som ga enda mer ytelse, men var billig nok til å bli kjøpt for hver bruker som krevde en. Mens DECs egne mikroprosessorteam introduserte en rekke VAX-implementeringer til lavere prispoeng, fortsatte pris-ytelsesforholdet til systemene å bli erodert. I senere halvdel av 1980 -årene befant DEC seg å bli låst utenfor det tekniske markedet.

RISK

I løpet av 1970 -årene hadde IBM utført studier av ytelsen til datasystemene sine og fant til deres overraskelse at 80% av datamaskinens tid ble brukt til å utføre bare fem operasjoner. De hundrevis av andre instruksjoner i ISA -ene deres, implementert ved bruk av mikrokode, gikk nesten helt ubrukt. Tilstedeværelsen av mikrokoden introduserte en forsinkelse da instruksjonene ble dekodet, så selv om man ringte en av disse fem instruksjonene direkte, gikk den tregere enn den kunne hvis det ikke var noen mikrokode. Dette førte til IBM 801 -designet, den første moderne RISC -prosessoren.

Omtrent på samme tid, i 1979, ble Dave Patterson sendt på et sabbatsår fra University of California, Berkeley for å hjelpe DECs vestkystlag med å forbedre VAX-mikrokoden. Patterson ble rammet av kompleksiteten i kodingsprosessen og konkluderte med at den var uholdbar. Han skrev først et papir om måter å forbedre mikrokoding på, men senere ombestemte han seg og bestemte at mikrokoden i seg selv var problemet. Han startet snart Berkeley RISC -prosjektet. Fremveksten av RISC utløste en langvarig debatt i datamaskinindustrien om dens fordeler; da Patterson først redegjorde for sine argumenter for konseptet i 1980, ble en avvisende avvikende mening publisert av DEC.

På midten av 1980-tallet begynte praktisk talt alle selskaper med prosessordesign å utforske RISC-tilnærmingen. Til tross for offisiell uinteresse var DEC intet unntak. I perioden fra 1982 til 1985 ble det gjort ikke færre enn fire forsøk på å lage en RISC -brikke ved forskjellige DEC -divisjoner. Titan fra DECs Western Research Laboratory (WRL) i Palo Alto, California var en ECL- basert design med høy ytelse som startet i 1982, og som skulle kjøre Unix . SAFE ( strømlinjeformet arkitektur for rask utførelse ) var en 64-biters design som startet samme år, designet av Alan Kotok (fra Spacewar! Fame) og Dave Orbits og som skulle kjøre VMS . HR-32 ( Hudson, RISC, 32-bit ) startet i 1984 av Rich Witek og Dan DobberpuhlHudson, MA fab, beregnet på å bli brukt som en co-prosessor i VAX- maskin. Samme år startet Dave Cutler CASCADE -prosjektet på DECwest i Bellevue, Washington.

PRISM

Etter hvert ble Cutler bedt om å definere et enkelt RISC -prosjekt i 1985, og valgte Rich Witek som hovedarkitekt. I august 1985 ble det første utkastet til et design på høyt nivå levert, og arbeidet med detaljdesignet begynte. PRISM-spesifikasjonen ble utviklet over en periode på mange måneder av et fempersoners team: Dave Cutler, Dave Orbits, Rich Witek, Dileep Bhandarkar og Wayne Cardoza. Gjennom denne tidlige perioden var det konstante endringer i designet da debatter i selskapet kranglet om det skulle være 32- eller 64-biters, rettet mot kommersiell eller teknisk arbeidsmengde, og så videre. Disse konstante endringene betydde at den endelige ISA-spesifikasjonen ikke var fullført før i september 1986. På den tiden ble det besluttet å produsere to versjoner av grunnkonseptet, DECwest jobbet med en "high-end" ECL- implementering kjent som Crystal , mens Semiconductor Avansert utviklingsteam jobbet med microPRISM , en CMOS -versjon. Dette arbeidet ble 98% utført 1985–86 og ble sterkt støttet av simuleringer av Pete Benoit på en stor VAXcluster .

I midten av 1987 ble beslutningen fattet om at begge designene skulle være 64-biters, selv om dette bare varte noen få uker. I oktober 1987 introduserte Sun Sun-4 . Drevet av en 16 MHz SPARC , en kommersiell versjon av Pattersons RISC-design, kjørte den fire ganger så fort som deres tidligere topp-Sun-3 ved hjelp av en 20 MHz Motorola 68020 . Med denne utgivelsen endret DEC nok en gang målet for PRISM, kun med sikte på arbeidsstasjonsplassen. Dette resulterte i at microPRISM ble respektert som et 32-biters system mens Crystal-prosjektet ble kansellert. Dette introduserte flere forsinkelser og satte prosjektet langt etter planen.

I begynnelsen av 1988 var systemet fremdeles ikke komplett; CPU -designet var nesten komplett, men FPU og MMU, begge basert på det moderne Rigel -brikkesettet for VAX, ble fortsatt designet. Teamet bestemte seg for å stoppe arbeidet med disse delene av designet og fokusere helt på CPU. Designet ble fullført i mars 1988 og tapet ut innen april.

Kansellering

Gjennom PRISM -perioden var DEC involvert i en stor debatt om selskapets fremtidige retning. Etter hvert som nyere RISC-baserte arbeidsstasjoner ble introdusert, ble ytelsesfordelen med VAX konstant erodert, og pris/ytelsesforholdet fullstendig undergravd. Ulike grupper i selskapet diskuterte hvordan de skulle svare best. Noen tok til orde for å flytte VAX inn i high-end, overgi low-end til arbeidsstasjonsleverandørene som Sun. Dette førte til VAX 9000 -programmet, som internt ble omtalt som "IBM -morderen". Andre foreslo å flytte inn på arbeidsstasjonsmarkedet ved å bruke PRISM eller en råvareprosessor. Atter andre foreslo å re-implementere VAX på en RISC-prosessor.

Frustrert over det økende antallet tap til billigere og raskere konkurransedyktige maskiner, uavhengig av hverandre , underholdt en liten skunkworks- gruppe i Palo Alto , utenfor Central Engineering, fokusert på arbeidsstasjoner og UNIX/ Ultrix , ideen om å bruke en RISC-prosessor på hyllen til bygge en ny familie av arbeidsstasjoner. Gruppen utførte due diligence og valgte til slutt MIPS R2000 . Denne gruppen anskaffet en utviklingsmaskin og prototypet en port av Ultrix til systemet. Fra de første møtene med MIPS til en prototypemaskin tok det bare 90 dager. Full produksjon av en DEC -versjon kan begynne allerede i januar 1989, mens det ville ta minst et år til før en PRISM -basert maskin ville være klar.

Da saken ble tatt opp i DECs hovedkvarter, ble selskapet delt om hvilken fremgangsmåte som var bedre. Bob Supnik ble bedt om å vurdere problemet for en kommende prosjektgjennomgang. Han konkluderte med at mens PRISM -systemet så ut til å være raskere, ville MIPS -tilnærmingen være billigere og mye tidligere å markedsføre. På det heftige gjennomgangsmøtet i selskapets eksekutivkomité i juli 1988, bestemte selskapet seg for å avbryte Prism og fortsette med MIPS-arbeidsstasjoner og avanserte VAX-produkter. Arbeidsstasjonen dukket opp som DECstation 3100 .

På dette tidspunktet hadde prøver av microPRISM blitt returnert og det ble funnet å virke stort sett. De viste seg også i stand til å kjøre med hastigheter på 50 til 80 MHz, sammenlignet med R2000s 16 til 20. Dette ville ha gitt en betydelig ytelsesforbedring i forhold til MIPS -systemene.

Legacy

På tidspunktet for møtet i juli 1988 hadde selskapet svingt nesten helt inn i posisjonen om at RISC -tilnærmingen var et spill på arbeidsstasjonen. Men PRISMs ytelse var lik den for de nyeste VAX -maskinene, og RISC -konseptet hadde betydelig rom for vekst. Da møtet brøt ut, ba Ken Olsen Supnik om å undersøke måter Digital kan holde ytelsen til VAX/VMS-systemer konkurransedyktig med RISC-baserte Unix-systemer.

En gruppe ingeniører dannet et team, på forskjellige måter kalt "RISCy VAX" eller "Extended VAX" (EVAX) arbeidsgruppe, for å utforske dette problemet. På sensommeren hadde gruppen utforsket tre konsepter, en delmengde av VAX ISA med en RISC-lignende kjerne, en oversatt VAX som kjørte opprinnelig VAX-kode og oversatte den med det samme til RISC-kode og lagret i en cache, og den ultrapipelinerte VAX, en mye høyere ytelse CISC-implementering. Alle disse tilnærmingene hadde problemer som betydde at de ikke ville være konkurransedyktige med en enkel RISC -maskin.

Gruppen vurderte deretter systemer som kombinerte både en eksisterende VAX single-chip løsning så vel som en RISC-chip for ytelsesbehov. Disse studiene antydet at systemet uunngåelig ville bli hindret av den lavere ytelsen og ikke ville tilby noen overbevisende fordel. Det var på dette tidspunktet Nancy Kronenberg påpekte at folk kjørte VMS, ikke VAX, og at VMS bare hadde noen få maskinvareavhengigheter basert på modelleringen av avbrudd og minnesøk. Det syntes ikke å være noen overbevisende grunn til at VMS ikke kunne portes til en RISC -brikke så lenge disse små bitene av modellen ble bevart. Videre arbeid med dette konseptet antydet at dette var en brukbar tilnærming.

Supnik tok den resulterende rapporten til Strategy Task Force i februar 1989. To spørsmål ble reist: kan det resulterende RISC -designet også være en ytelsesleder på Unix -markedet, og bør maskinen være en åpen standard? Og med det ble beslutningen tatt om å adoptere PRISM -arkitekturen med de riktige modifikasjonene og til slutt bli Alpha , og begynte havnen i VMS til den nye arkitekturen .

Da PRISM og MICA ble kansellert, forlot Dave Cutler Digital for Microsoft , hvor han fikk ansvaret for utviklingen av det som ble kjent som Windows NT . Cutlers arkitektur for NT ble sterkt inspirert av mange aspekter ved MICA. I tillegg til implementering av flere operativsystem -APIer på toppen av en felles kjerne ( Win32 , OS/2 og POSIX i NTs tilfelle) delte MICA og NT separasjonen av kjernen fra den utøvende , bruk av en Object Manager som abstraksjonen for grensesnitt med datastrukturer i operativsystemet, og støtte for multithreading og symmetrisk multiprosessering .

Design

Når det gjelder heltallsoperasjoner , var PRISM -arkitekturen lik MIPS -designene. Av de 32-bitene i instruksjonene var de 6 høyeste og 5 laveste bitene instruksjonen, og de andre 21 bitene av ordet etterlot for koding enten en konstant eller registerplassering . Seksti-fire 32-biters registre ble inkludert, i motsetning til trettito i MIPS, men bruken var ellers lik. PRISM og MIPS mangler begge registervinduene som var et kjennetegn for den andre store RISC -designen, Berkeley RISC.

PRISM -designet var kjent for flere aspekter av instruksjonssettet . Spesielt inkluderte PRISM Epicode ( utvidet prosessorinstruksjonskode ), som definerte en rekke "spesielle" instruksjoner som var ment å tilby operativsystemet et stabilt ABI på tvers av flere implementeringer. Epicode fikk sitt eget sett med 22 32-biters registre å bruke. Et sett med vektorbehandlingsinstruksjoner ble senere også lagt til, støttet av ytterligere seksten 64-biters vektorregistre som kan brukes på en rekke måter.

MICA

MICA var kodenavnet til operativsystemet utviklet for PRISM -arkitekturen. MICAs design ble drevet av Digitals behov for å gi en migrasjonsbane til PRISM for Digitals VAX/VMS -kunder , i tillegg til at PRISM -systemer kunne konkurrere i det stadig viktigere Unix -markedet. MICA forsøkte å imøtekomme disse kravene ved å implementere VMS- og ULTRIX -brukergrensesnitt på toppen av en felles kjerne som kunne støtte systemanrop (eller "systemtjenester" på VMS -språk), biblioteker og verktøy som trengs for begge miljøer.

Det opprinnelige målet for MICA var at alle applikasjoner skulle ha full og utskiftbar tilgang til både VMS- og ULTRIX -grensesnittene, og at en bruker kunne velge å logge på et ULTRIX- eller VMS -miljø, og kjøre alle MICA -applikasjoner fra begge miljøene. Imidlertid viste det seg å være umulig å tilby både full ULTRIX og full VMS -kompatibilitet til samme applikasjon samtidig, og Digital skrotet denne planen til fordel for å ha et eget Unix -operativsystem basert på OSF/1 (dette ble på forskjellige måter referert til som PRISM ULTRIX eller OZIX ). Som et resultat ville MICA ha fungert som en bærbar implementering av et VMS-lignende operativsystem, med kompatible implementeringer av DCL , RMS , Files-11 , VAXclusters og VAX/VMS RTL og systemtjenester. Det ble fremmet forslag om å gjenopprette Unix-kompatibilitet i MICA per applikasjonsbasis, slik at en MICA-applikasjon kunne kompileres og kobles mot VMS-grensesnittene, eller ULTRIX-grensesnittene, men ikke begge samtidig.

På grunn av planleggingsproblemer, ville de første PRISM -systemene blitt levert med begrensede undersett av hele MICA -operativsystemet. Dette inkluderte systemer som Cheyenne og Glacier som var dedikert til å kjøre spesifikke applikasjoner, og hvor direkte interaksjon med operativsystemet av kunder ville være begrenset.

MICA skulle skrives nesten utelukkende på et programmeringsspråk på høyt nivå ved navn PILLAR . PILLAR utviklet seg fra EPascal (den VAXELN -spesifikke dialekten til Pascal ) via et midlertidig språk kalt Systems Implementation Language (SIL). PILLAR ville ha blitt backportert til VAX/VMS, slik at applikasjoner kan utvikles som kan kompileres for både VAX/VMS og MICA. Et vanlig sett med kjøretidsbiblioteker på høyt nivå ved navn ARUS (Application Runtime Utility Services) ville ha ytterligere forenklet portabilitet mellom MICA, OSF/1, VAX/VMS og ULTRIX. Som en del av PRISM -prosjektet ble det utviklet en felles optimaliserende kompiler -backend ved navn GEM (denne overlevde og ble kompiler -backend for Alpha- og Itanium -portene til VMS, samt Tru64 ).

I tillegg til PILLAR, ga Mica førsteklasses støtte for ANSI C for å støtte Unix-applikasjoner. En montør ved navn SPASM (Simplified PRISM Assembler) var beregnet på den lille mengden monteringskode som trengs for operativsystemet, og ville ikke ha blitt gjort allment tilgjengelig for å avskrekke kunder fra å utvikle ikke-bærbar programvare. På samme måte ble en implementering av BLISS utviklet for kun intern bruk, for å tillate at eksisterende VAX/VMS-applikasjoner ble portet til MICA. MICA ville ha omtalt porter eller omskrivninger av mange VAX/VMS -lagdelte produkter, inkludert Rdb , VAXset , DECwindows og de fleste kompilatorer som er tilgjengelige for VAX/VMS.

Referanser

Bibliografi

Videre lesning