| Designer | Digital Equipment Corporation |
|---|---|
| Bits | 32-bit |
| Introduced | 1988 (cancelled) |
| Design | RISC |
| Successor | DEC Alpha |
| Registers | |
| |
PRISM (ParallelReducedInstructionSetMachine)[1] was a32-bitRISCinstruction set architecture (ISA) developed byDigital Equipment Corporation (DEC). It was the outcome of a number of DEC research projects from the 1982–1985 time-frame, and the project was subject to continually changing requirements and planned uses that delayed its introduction. This process eventually decided to use the design for a new line ofUnix workstations. Thearithmetic logic unit (ALU) of themicroPrism version had completed design in April 1988 and samples were fabricated, but the design of other components like thefloating point unit (FPU) andmemory management unit (MMU) were still not complete in the summer when DEC management decided to cancel the project in favor ofMIPS-based systems.[2] An operating system codenamedMICA was developed for the PRISM architecture, which was intended as a replacement for bothVAX/VMS andULTRIX on PRISM, although a standalone PRISM ULTRIX port was eventually created when the original multi-personality goal of MICA proved infeasible.[3][4]
PRISM's cancellation had significant effects within DEC. Many of the team members left the company over the next year, notablyDave Cutler who moved toMicrosoft and led the development ofWindows NT. The MIPS-based workstations were moderately successful among DEC's existingUltrix users but had little success competing against companies likeSun Microsystems. Meanwhile, DEC's cash-cowVAX line grew increasingly less performant as new RISC designs outperformed even the top-of-the-lineVAX 9000. As the company explored the future of the VAX they concluded that a PRISM-like processor with a few additional changes could address all of these markets. Starting where PRISM left off, theDEC Alpha program started in 1989.
Introduced in 1977, theVAX was a runaway success for DEC, cementing its place as the world's #2 computer vendor behindIBM. The VAX was noted for its richinstruction set architecture (ISA), which was implemented in complexmicrocode. The VMSoperating system was layered on top of this ISA, which drove it to have certain requirements forinterrupt handling and the memory model used formemory paging. By the early 1980s, VAX systems had become "the computing hub of many technology-driven companies, sending spokes of RS-232 cables out to a rim of VT-100 terminals that kept the science and engineering departments rolling."[5]
This happy situation was upset by the relentless improvement ofsemiconductor manufacturing as encoded byMoore's Law; by the early 1980s there were a number of capable32-bit single-chipmicroprocessors with performance similar to early VAX machines yet able to fit into a desktoppizza box form factor. Companies likeSun Microsystems introducedMotorola 68000 series-basedUnix workstations that could replace a huge multi-user VAX machine with one that provided even more performance but was inexpensive enough to be purchased for every user that required one. While DEC's own microprocessor teams were introducing a series of VAX implementations at lower price-points, theprice-performance ratio of their systems continued to be eroded. By the later half of the 1980s, DEC found itself being locked out of the technical market.[5]
During the 1970s,IBM had been carrying out studies of the performance of their computer systems and found, to their surprise, that 80% of the computer's time was spent performing only five operations. The hundreds of other instructions in their ISAs, implemented using microcode, went almost entirely unused. The presence of the microcode introduced a delay when the instructions were decoded, so even when one called one of those five instructions directly, it ran slower than it could if there was no microcode. This led to theIBM 801 design, the first modernRISC processor.[6]
Around the same time, in 1979,Dave Patterson was sent on asabbatical fromUniversity of California, Berkeley to help DEC's west-coast team improve the VAX microcode. Patterson was struck by the complexity of the coding process and concluded it was untenable. He first wrote a paper on ways to improve microcoding, but later changed his mind and decided microcode itself was the problem. He soon started theBerkeley RISC project.[7] The emergence of RISC sparked off a long-running debate within the computer industry about its merits; when Patterson first outlined his arguments for the concept in 1980, a dismissive dissenting opinion was published by DEC,[8] but by the mid-1980s the consensus at DEC was that RISC was at least twice as efficient as CISC. The company had two options: Improve VAX as much as possible until the limitation of its 32-bit address space forced a replacement around 1999, or develop RISC as fast as possible.[9][10]
By the mid-1980s practically every company with a processor design arm began exploring the RISC approach. In spite of any official disinterest, DEC was no exception. In the period from 1982 to 1985, no fewer than four attempts were made to create a RISC chip at different DEC divisions.Titan from DEC's Western Research Laboratory (WRL) inPalo Alto, California was a high-performanceECL based design that started in April 1982, intended to runUnix, and achieving this objective in December 1985.[11] Titan ran a modified version of Ultrix called Tunix (Titan Unix) with rewritten process and memory management functions.[12]
Titan was accompanied by the MultiTitan project, running from mid-1994 until January 1988 which explored instruction-level parallelism, shared memory multiprocessing, explicit cache management, high-performance floating-point arithmetic, unified scalar and vector processing, and the use of a "software definition" for the architecture.[13] In April 1988, this effort delivered samples of a microprocessor fabricated using a CMOS process that were tested within the existing Titan architecture, able to operate at frequencies up to between 70 MHz and 90 MHz depending on the individual part, but falling short of the desired 100 MHz. Without the accompanying floating-point and cache management chips, benchmarking could not be performed, with only estimates of 20 MIPS performance being made.[14]
SAFE (Streamlined Architecture for Fast Execution) was a64-bit design that started in 1982, designed byAlan Kotok (ofSpacewar! fame) and Dave Orbits and intended to run VMS.HR-32 (Hudson, RISC, 32-bit) started in 1984 by Rich Witek andDan Dobberpuhl at theHudson, MA fab, intended to be used as aco-processor inVAX machine. The same yearDave Cutler started theCASCADE project at DECwest in Bellevue, Washington.[15]
DEC used the large profits from VAX to fund the multiple competing projects, which caused delays and uncertainty.[10] Eventually, Cutler was asked to define a single RISC project in 1985, selecting Rich Witek as the chief architect. In August 1985 the first draft of a high-level design was delivered, and work began on the detailed design. The PRISM specification was developed over a period of many months by a five-person team: Dave Cutler, Dave Orbits, Rich Witek, Dileep Bhandarkar, and Wayne Cardoza. Through this early period, there were constant changes in the design as debates within the company argued over whether it should be 32- or 64-bit, aimed at a commercial or technical workload, and so forth.[15]
These constant changes meant the final ISA specification was not complete until September 1986. At the time, the decision was made to produce two versions of the basic concept, DECwest worked on a "high-end"ECL implementation known asCrystal, while the Semiconductor Advanced Development team worked onmicroPRISM, aCMOS version. This work was 98% done by 1985–86 and was heavily supported by simulations by Pete Benoit on a largeVAXcluster.[15]
Through this era there was still considerable scepticism on the part of DEC engineering as a whole about whether RISC was really faster, or simply faster on the trivial five-line programs being used to demonstrate its performance. Based on the Crystal design, in 1986 it was compared to the then-fastest machine in development, theVAX 8800. The conclusion was clear: for any given amount of investment, the RISC designs would outperform a VAX by 2-to-1.[16]
In the middle of 1987, the decision was made that both designs be 64-bit, although this lasted only a few weeks. In October 1987, Sun introduced theSun-4. Powered by a 16 MHzSPARC, a commercial version of Patterson's RISC design, it ran four times as fast as their previous top-end Sun-3 using a 20 MHzMotorola 68020. With this release, DEC once again changed the target for PRISM, aiming it solely at the workstation space. This resulted in the microPRISM being respecified as a 32-bit system while the Crystal project was canceled. This introduced more delays, putting the project far behind schedule.[15]
By early 1988 the system was still not complete; the CPU design was nearly complete, but the FPU and MMU, both based on the contemporaryRigel chipset for the VAX, were still being designed.[15] The team decided to stop work on those parts of the design and focus entirely on the CPU. Design was completed in March 1988 andtaped out by April.[15]
Throughout the PRISM period, DEC was involved in a major debate over the future direction of the company. As newer RISC-based workstations were introduced, the performance benefit of the VAX was constantly eroded, and theprice/performance ratio completely undermined. Different groups within the company debated how to best respond. Some advocated moving the VAX into the high-end, abandoning the low-end to the workstation vendors like Sun. This led to theVAX 9000 program, which was referred to internally as the "IBM killer". Others suggested moving into the workstation market using PRISM or a commodity processor. Still others suggested re-implementing the VAX on a RISC processor.[15]
Frustrated with the growing number of losses to cheaper faster competitive machines, independently, a smallskunkworks group inPalo Alto, outside of Central Engineering, focused on workstations and UNIX/Ultrix, entertained the idea of using an off-the-shelf RISC processor to build a new family of workstations. The group carried out due diligence, eventually choosing theMIPS R2000. This group acquired a development machine and prototyped a port of Ultrix to the system. From the initial meetings with MIPS to a prototype machine took only 90 days. Full production of a DEC version could begin as early as January 1989, whereas it would be at least another year before a PRISM based machine would be ready.[15]
When the matter was raised at DEC headquarters the company was split on which approach was better. Bob Supnik was asked to consider the issue for an upcoming project review. He concluded that while the PRISM system appeared to be faster, the MIPS approach would be less expensive and much earlier to market. At the acrimonious review meeting by the company's Executive Committee in July 1988, the company decided to cancel Prism, and continue with the MIPS workstations and high-end VAX products. The workstation emerged as theDECstation 3100.[9][15]
By this time samples of the microPRISM had been returned and were found to be mostly working. They also proved capable of running at speeds of 50 to 80 MHz, compared to the R2000's 16 to 20. Performance predictions based on these observations suggested a significant performance improvement over existing and announced RISC products from other vendors. However, without the accompanying floating-point unit, whose design had been halted, or the cache interface chip required for operating at such frequencies, which had been part of a cancelled project, floating-point performance predictions remained hypothetical.[17]
By the time of the July 1988 meeting, the company had swung almost entirely into the position that the RISC approach was a workstation play. But PRISM's performance was similar to that of the latest VAX machines and the RISC concept had considerable room for growth. As the meeting broke up,Ken Olsen asked Supnik to investigate ways that Digital could keep the performance of VMS systems competitive with RISC-based Unix systems.[18]
A group of engineers formed a team, variously referred to as the "RISCy VAX" or "Extended VAX" (EVAX) task force, to explore this issue.[18] By late summer, the group had explored three concepts, a subset of the VAX ISA with a RISC-like core, a translated VAX that ran native VAX code and translated it on-the-fly to RISC code and stored in a cache, and the ultrapipelined VAX, a much higher-performance CISC implementation. All of these approaches had issues that meant they would not be competitive with a simple RISC machine.[19]
The group next considered systems that combined both an existing VAX single-chip solution as well as a RISC chip for performance needs. These studies suggested that the system would inevitably be hamstrung by the lower-performance part and would offer no compelling advantage.[19]
It was at this point that Nancy Kronenberg pointed out that people ran VMS, not VAX, and that VMS only had a few hardware dependencies based on its modelling of interrupts and memory paging. There appeared to be no compelling reason why VMS could not be ported to a RISC chip as long as these small bits of the model were preserved. Further work on this concept suggested this was a workable approach.[19]
Supnik took the resulting report to the Strategy Task Force in February 1989. Two questions were raised: could the resulting RISC design also be a performance leader in the Unix market, and should the machine be an open standard? And with that, the decision was made to adopt the PRISM architecture with the appropriate modifications, eventually becoming theAlpha, and beganthe port of VMS to the new architecture.[20]
When PRISM and MICA were cancelled, Dave Cutler left Digital forMicrosoft, where he was put in charge of the development of what became known asWindows NT. Cutler's architecture for NT was heavily inspired by many aspects of MICA.[21][22][23]
In terms ofinteger operations, the PRISM architecture was similar to theMIPS designs. Of the 32-bits in theinstructions, the 6 highest and 5 lowestbits were the instruction, leaving the other 21 bits of the word for encoding either aconstant orregister locations. Sixty-four 32-bit registers were included, as opposed to thirty-two in the MIPS, but usage was otherwise similar. PRISM and MIPS both lack theregister windows that were a hallmark of the other major RISC design, Berkeley RISC.
The PRISM design was notable for several aspects of itsinstruction set. Notably, PRISM includedEpicode (extended processor instruction code), which defined a number of "special" instructions intended to offer theoperating system a stableABI across multiple implementations. Epicode was given its own set of 22 32-bit registers to use. A set ofvector processing instructions were later added as well, supported by an additional sixteen 64-bit vector registers that could be used in a variety of ways.
PRISM (Parallel Reduced Instruction Set Machine) ... first draft of PRISM architecture in August 1985; DEC cancels the project in 1988 in favor of a MIPS-based ...