Berkeley RISC

Berkeley RISC is one of two seminal research projects into reduced instruction set computer (RISC) based microprocessor design taking place under the Defense Advanced Research Projects Agency VLSI Project. RISC was led by David Patterson (who coined the term RISC) at the University of California, Berkeley between 1980 and 1984.[1] The other project took place a short distance away at Stanford University under their MIPS effort starting in 1981 and running until 1984.

Berkeley's project was so successful that it became the name for all similar designs to follow; even the MIPS would become known as a "RISC processor". The Berkeley RISC design was later commercialized by Sun Microsystems as the SPARC architecture, and inspired the ARM architecture.[2]

The RISC concept

Both RISC and MIPS were developed from the realization that the vast majority of programs used only a small minority of a processor's available instruction set. In a famous 1978 paper, Andrew S. Tanenbaum demonstrated that a complex 10,000 line high-level program could be represented using a simplified instruction set architecture using an 8-bit fixed-length opcode.[3] This was roughly the same conclusion reached at IBM, whose studies of their own code running on mainframes like the IBM 360 used only a small subset of all the instructions available. Both of these studies suggested that one could produce a much simpler CPU that would still run most real-world code. Another finding, not fully explored at the time, was Tanenbaum's note that 81% of the constants were either 0, 1, or 2.[3]

These realizations were taking place as the microprocessor market was moving from 8 to 16-bit with 32-bit designs about to appear. Those designs were premised on the goal of replicating some of the more well-respected existing ISAs from the mainframe and minicomputer world. For instance, the National Semiconductor NS32000 started out as an effort to produce a single-chip implementation of the VAX-11, which had a rich instruction set with a wide variety of addressing modes. The Motorola 68000 was similar in general layout. To provide this rich set of instructions, CPUs used microcode to decode the user-visible instruction into a series of internal operations. This microcode represented perhaps 14 to 13 of the transistors of the overall design.

If, as these other papers suggested, the majority of these opcodes would never be used in practice, then this significant resource was being wasted. If one were to simply build the same processor with the unused instructions removed it would be smaller and thus less expensive, while if one instead used those transistors to improve performance instead of decoding instructions that would not be used, a faster processor was possible. The RISC concept was to take advantage of both of these, producing a CPU that was the same level of complexity as the 68000, but much faster.

To do this, RISC concentrated on adding many more registers, small bits of memory holding temporary values that can be accessed very rapidly. This contrasts with normal main memory, which might take several cycles to access. By providing more registers, and making sure the compilers actually used them, programs should run much faster. Additionally, the speed of the processor would be more closely defined by its clock speed, because less of its time would be spent waiting for memory accesses. Transistor for transistor, a RISC design would outperform a conventional CPU.

On the downside, the instructions being removed were generally performing several "sub-instructions". For instance, the ADD instruction of a traditional design would generally come in several flavours, one that added the numbers in two registers and placed it in a third, another that added numbers found in main memory and put the result in a register, etc. The RISC designs, on the other hand, included only a single flavour of any particular instruction, the ADD, for instance, would always use registers for all operands. This forced the programmer to write additional instructions to load the values from memory, if needed, making a RISC program "less dense".

In the era of expensive memory this was a real concern, notably because memory was also much slower than the CPU. Since a RISC design's ADD would actually require four instructions (two loads, an add, and a save), the machine would have to do much more memory access to read the extra instructions, potentially slowing it down considerably. This was offset to some degree by the fact that the new designs used what was then a very large instruction word of 32-bits, allowing small constants to be folded directly into the instruction instead of having to be loaded separately. Additionally, the results of one operation are often used soon after by another, so by skipping the write to memory and storing the result in a register, the program did not end up much larger, and could in theory run much faster. For instance, a string of instructions carrying out a series of mathematical operations might require only a few loads from memory, while the majority of the numbers being used would be either constants in the instructions, or intermediate values left in the registers from prior calculations. In a sense, in this technique some registers are used to shadow memory locations, so that the registers are used as proxies for the memory locations until their final values after a group of instructions have been determined.

To the casual observer, it was not clear that the RISC concept would improve performance, and it might even make it worse. The only way to be sure was to simulate it. The results of such simulations were clear; in test after test, every simulation showed an enormous overall benefit in performance from this design.

Where the two projects, RISC and MIPS, differed was in the handling of the registers. MIPS simply added lots of registers and left it to the compilers (or assembly language programmers) to make use of them. RISC, on the other hand, added circuitry to the CPU to assist the compiler. RISC used the concept of register windows, in which the entire "register file" was broken down into blocks, allowing the compiler to "see" one block for global variables, and another for local variables.

The idea was to make one particularly common instruction, the procedure call, extremely easy to implement. Almost all programming languages use a system known as an activation record or stack frame for each procedure which contains the address from which the procedure was called, the data (parameters) that were passed in, and space for any result values that need to be returned. In the vast majority of cases these frames are small, typically with three or fewer inputs and one or no outputs (and sometimes an input is reused as an output). In the Berkeley design, then, a register window was a set of several registers, enough of them that the entire procedure stack frame would most likely fit entirely within the register window.

In this case, the call into and return from a procedure is simple and extremely fast. A single instruction is called to set up a new block of registers—a new register window—and then, with operands passed into the procedure in the "low end" of the new window, the program jumps into the procedure. On return, the results are placed in the window at the same end, and the procedure exits. The register windows are set up to overlap at the ends, so that the results from the call simply "appear" in the window of the caller, with no data having to be copied. Thus the common procedure call does not have to interact with main memory, greatly accelerating it.

On the downside, this approach means that procedures with large numbers of local variables are problematic, and ones with fewer lead to registers—an expensive resource—being wasted. There are a finite number of register windows in the design, e.g., eight, so procedures can only be nested that many levels deep before the register windowing mechanism reaches its limit; once the last window is reached, no new window can be set up for another nested call. And if procedures are only nested a few levels deep, registers in the windows above the deepest call nesting level can never be accessed at all, so these are completely wasted. It was Stanford's work on compilers that led them to ignore the register window concept, believing that an efficient compiler could make better use of the registers than a fixed system in hardware. (The same reasoning would apply for a smart assembly language programmer.)

RISC I

RISC I die shot. Most of the chip is occupied by the register file (bottom left area). Control logic only occupies the small top right corner.

The first attempt to implement the RISC concept was originally named Gold. Work on the design started in 1980 as part of a VLSI design course, but the then-complicated design crashed almost all existing design tools. The team had to spend considerable amounts of time improving or re-writing the tools, and even with these new tools it took just under an hour to extract the design on a VAX-11/780.

The final design, named RISC I, was published in Association for Computing Machinery (ACM) International Symposium on Computer Architecture (ISCA) in 1981. It had 44,500 transistors implementing 31 instructions and a register file containing 78 32-bit registers. This allowed for six register windows containing 14 registers. Of those 14 registers, 4 were overlapped from the prior window. The total is then: 10*6 registers in windows + 18 globals=78 registers total. The control and instruction decode section occupied only 6% of the die, whereas the typical design of the era used about 50% for the same role. The register file took up most of that space.[4]

RISC I also featured a two-stage instruction pipeline for additional speed, but without the complex instruction re-ordering of more modern designs. This makes conditional branches a problem, because the compiler has to fill the instruction following a conditional branch (the so-called branch delay slot), with something selected to be "safe" (i.e., not dependent on the outcome of the conditional). Sometimes the only suitable instruction in this case is NOP. A notable number of later RISC-style designs still require the consideration of branch delay.

After a month of validation and debugging, the design was sent to the innovative MOSIS service for production on June 22, 1981, using a 2 μm (2,000 nm) process. A variety of delays forced them to abandon their masks four separate times, and wafers with working examples did not arrive back at Berkeley until May 1982. The first working RISC I "computer" (actually a checkout board) ran on June 11. In testing, the chips proved to have lesser performance than expected. In general, an instruction would take 2 μs to complete, while the original design allotted for about .4 μs (five times as fast). The precise reasons for this problem were never fully explained. However, throughout testing it was clear that certain instructions did run at the expected speed, suggesting the problem was physical, not logical.

Had the design worked at full speed, performance would have been excellent. Simulations using a variety of small programs compared the 4 MHz RISC I to the 5 MHz 32-bit VAX 11/780 and the 5 MHz 16-bit Zilog Z8000 showed this clearly. Program size was about 30% larger than the VAX but very close to that of the Z8000, validating the argument that the higher code density of CISC designs was not actually all that impressive in reality. In terms of overall performance, the RISC I was twice as fast as the VAX, and about four times that of the Z8000. The programs ended up performing about the same overall number of memory accesses because the large register file dramatically improved the odds the needed operand was already on-chip.

It is important to put this performance in context. Even though the RISC design had run slower than the VAX, it made no difference to the importance of the design. RISC allowed for the production of a true 32-bit processor on a real chip die using what was already an older fab. Traditional designs simply could not do this; with so much of the chip surface dedicated to decoder logic, a true 32-bit design like the Motorola 68020 required newer fabs before becoming practical. Using the same fabs, RISC I could have largely outperformed the competition.

On February 12, 2015, IEEE installed a plaque at UC Berkeley to commemorate the contribution of RISC-I.[5] The plaque reads:

  • UC Berkeley students designed and built the first VLSI reduced instruction set computer in 1981. The simplified instructions of RISC-I reduced the hardware for instruction decode and control, which enabled a flat 32-bit address space, a large set of registers, and pipelined execution. A good match to C programs and the Unix operating system, RISC-I influenced instruction sets widely used today, including those for game consoles, smartphones and tablets.

RISC II

RISC II die shot

While the RISC I design ran into delays, work at Berkeley had already turned to the new Blue design. Work on Blue progressed slower than Gold, due both to the lack of a pressing need now that Gold was going to fab, and to changeovers in the classes and students staffing the effort. This pace also allowed them to add in several new features that would end up improving the design considerably.

The key difference was simpler cache circuitry that eliminated one line per bit (from three to two), dramatically shrinking the register file size. The change also required much tighter bus timing, but this was a small price to pay and in order to meet the needs several other parts of the design were sped up as well.

The savings due to the new design were tremendous. Whereas Gold contained a total of 78 registers in 6 windows, Blue contained 138 registers broken into 8 windows of 16 registers each, with another 10 globals. This expansion of the register file increases the chance that a given procedure can fit all of its local storage in registers, and increase the nesting depth. Nevertheless, the larger register file required fewer transistors, and the final Blue design, fabbed as RISC II, implemented all of the RISC instruction set with only 40,760 transistors.[6]

The other major change was to include an instruction-format expander, which invisibly "up-converted" 16-bit instructions into a 32-bit format.[citation needed] This allowed smaller instructions, typically things with one or no operands, like NOP, to be stored in memory in a smaller 16-bit format, and for two such instructions to be packed into a single machine word. The instructions would be invisibly expanded back to 32-bit versions before they reached the arithmetic logic unit (ALU), meaning that no changes were needed in the core logic. This simple technique yielded a surprising 30% improvement in code density, making an otherwise identical program on Blue run faster than on Gold due to the decreased number of memory accesses.

RISC II proved to be much more successful in silicon and in testing outperformed almost all minicomputers on almost all tasks. For instance, performance ranged from 85% of VAX speed to 256% on a variety of loads. RISC II was also benched against the famous Motorola 68000, then considered to be the best commercial chip implementation, and outperformed it by 140% to 420%.

Follow-ons

Work on the original RISC designs ended with RISC II, but the concept lived on at Berkeley. The basic core was re-used in SOAR in 1984, basically a RISC converted to run Smalltalk (in the same way that it could be claimed RISC ran C), and later in the similar VLSI-BAM that ran Prolog instead of Smalltalk. Another effort was SPUR, which was a full set of chips needed to build a full 32-bit workstation.

RISC is less famous, but more influential, for being the basis of the commercial SPARC processor design from Sun Microsystems. It was the SPARC that first clearly demonstrated the power of the RISC concept; when they shipped in the first Sun-4s they outperformed anything on the market. This led to virtually every Unix vendor hurrying for a RISC design of their own, leading to designs like the DEC Alpha and PA-RISC, while Silicon Graphics (SGI) purchased MIPS Computer Systems. By 1986, most large chip vendors followed, working on efforts like the Motorola 88000, Fairchild Clipper, AMD 29000 and the PowerPC. On February 13, 2015, IEEE installed a plaque at Oracle Corporation in Santa Clara.[7] It reads

  • Sun Microsystems introduced the Scalable Processor Architecture (SPARC) RISC in 1987. Building on UC Berkeley RISC and Sun compiler and operating system developments, SPARC architecture was highly adaptable to evolving semiconductor, software, and system technology and user needs. The architecture delivered the highest performance, scalable workstations and servers, for engineering, business, Internet, and cloud computing uses.

Techniques developed for and alongside the idea of the reduced instruction set have also been adopted in successively more powerful implementations and extensions of the traditional "complex" x86 architecture. Much of a modern microprocessor's transistor count is devoted to large caches, many pipeline stages, superscalar instruction dispatch, branch prediction and other modern techniques which are applicable regardless of instruction architecture. The amount of silicon dedicated to instruction decoding on a modern x86 implementation is proportionately quite small, so the distinction between "complex" and RISC processor implementations has become blurred.

See also

References

Citations

  1. ^ Reilly, Edwin D. (2003). Milestones in Computer Science and Information Technology. p. 50. ISBN 1573565210.
  2. ^ Chisnal, David (2010-08-23). "Understanding ARM Architectures". Informit. Retrieved 13 October 2015.
  3. ^ a b Tanenbaum, Andrew (March 1978). "Implications of Structured Programming for Machine Architecture". Communications of the ACM. 21 (3): 237–246. doi:10.1145/359361.359454. S2CID 3261560.
  4. ^ Peek, James B. (1983-06-02). The VLSI Circuitry of RISC I (PDF) (Technical report). Berkeley, CA, US: University of California at Berkeley. pp. 13, 59. CSD-83-135.
  5. ^ "memorabilia [RISC-I Reunion]". risc.berkeley.edu. Retrieved 2020-03-19.
  6. ^ "Berkeley Hardware Prototypes". people.eecs.berkeley.edu. Retrieved 2021-11-06.
  7. ^ Gee, Kelvin. "Oracle to Receive IEEE Milestone Award for SPARC RISC Architecture". blogs.oracle.com. Retrieved 2020-03-19.

Bibliography

Read other articles:

Hotel in the Jin Mao Tower Grand Hyatt ShanghaiThe Grand Hyatt Shanghai atriumGeneral informationStatusOperationalLocationJin Mao Tower, 88 Century Avenue, Pudong, Shanghai 200121ManagementHyatt Hotels CorporationTechnical detailsFloor count35Other informationNumber of rooms548Websitehttp://shanghai.grand.hyatt.com/ This article does not cite any sources. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources:...

 

Ostseite des ehemaligen Rathauses Cotta Rathaus Cotta (1899) Das Rathaus Cotta ist Sitz des Stadtbezirksamtes Cotta in Dresden. Es wurde in den Jahren 1899 bis 1901 erbaut und steht heute unter Denkmalschutz.[1] Inhaltsverzeichnis 1 Geschichte 2 Beschreibung 3 Siehe auch 4 Literatur 5 Weblinks 6 Einzelnachweise Geschichte Mit dem raschen Anwachsen der Einwohnerzahl von Cotta wurde gegen Ende des 19. Jahrhunderts der Bau eines Gebäudes für die kommunale Verwaltung notwendig. Der Besc...

 

هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إليها في مقالات متعلقة بها. (أكتوبر 2015) طريقة حمض الكبريتيك الرطب (طريقة WSA) هي إحدى الطرق الرئيسية لنزع الكبريت من الغاز والموجودة في السوق اليوم. ومنذ أن قدمت الشركة الدنماركية هولدر توبسو المصن...

Archeological site in Jerusalem Ketef Hinnom The area of Ketef Hinnom (just east of St Andrew's church) shown in a 1940s Survey of Palestine map Ketef Hinnom (Hebrew: כֵּתֵף הִינוֹם katef hinom, Shoulder of Hinnom)[1][2] is an archaeological site discovered in the 1970s southwest of the Old City of Jerusalem. Archaeological excavations held in the site uncovered a series of Iron Age period Judahite burial chambers, dating to the 7th and 6th centuries BCE. It is fa...

 

芬兰国王Suomen Kuningas芬兰国王陛下的纹章卡尔一世Karl I. 详情尊稱陛下开国君主斯沃克尔一世(瑞典-芬兰国王)末代君主卡尔一世(芬兰国王)建立1130年终结1918年12月14日产生方式继承制覬覦者海因里希·多纳图斯 本条目列出芬兰历史上的君主,包括瑞典国王与卡尔马联盟的摄政王和总督,芬兰大公爵,大多数瑞典君主使用的头衔,以及直到1917年独立后的两年摄政期,与真...

 

Modeling in fisheries economics This article is about fisheries economics. For the study of economic systems applying the laws of thermodynamics, see Thermoeconomics. Bioeconomics is closely related to the early development of theories in fisheries economics, initially in the mid-1950s by Canadian economists Scott Gordon (in 1954)[1] and Anthony Scott (1955). Their ideas used recent achievements in biological fisheries modelling, primarily the works by Schaefer in 1954 and 1957 on est...

2012 video gameTheatrhythm Final FantasyEuropean cover artDeveloper(s)Square Enix 1st Production DepartmentindieszeroPublisher(s)Square EnixDirector(s)Masanobu SuzuiProducer(s)Ichiro HazamaArtist(s)Atsuhiro TsuchiyaComposer(s) Featured composers Nobuo UematsuMasashi HamauzuHitoshi SakimotoKumi TaniokaNaoshi Mizuta SeriesFinal FantasyTheatrhythmPlatform(s)Nintendo 3DS, iOSRelease3DSJP: February 16, 2012[2]NA: July 3, 2012[1]AU: July 5, 2012EU: July 6, 2012[3]iOSWW: Dece...

 

У этого термина существуют и другие значения, см. Mitsubishi ASX. Mitsubishi Space Runner Общие данные Производитель Mitsubishi Motors Годы производства 1991—2002 Сборка Окадзаки, Айти, Япония Класс Компактвэн Иные обозначения Mitsubishi RVR Дизайн и конструкция Тип кузова 5‑дв. минивэн (5‑мест.) Компо...

 

Indian political party BJP redirects here. For other uses, see BJP (disambiguation). Indian political party Bharatiya Janata Party AbbreviationBJPPresidentJ. P. Nadda[1]General SecretaryGeneral Secretary (Organisation):B. L. Santhosh[2]Other General Secretaries Joint General Secretary: Shiv PrakashGeneral Secretaries:Arun SinghKailash VijayvargiyaDushyant Kumar GautamTarun ChughVinod TawdeSunil BansalSanjay Bandi KumarRadha Mohan Das AgarwalPresidiumNational Executive[3 ...

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Government of Oslo – news · newspapers · books · scholar · JSTOR (October 2020) (Learn how and when to remove this template message) Oslo City CouncilLeadershipMayorMarianne Borgen Governing MayorRaymond Johansen StructureSeats59Political groups   Red Part...

 

1818 novel by Walter Scott For other uses of Heart of Midlothian, see Heart of Midlothian (disambiguation). The Heart of Mid-Lothian Effie and Jeanie Deans embracing by Robert Herdman (1873)AuthorWalter ScottCountryScotlandLanguageEnglish, Lowland ScotsSeriesWaverley Novels; Tales of my Landlord, Second SeriesGenreHistorical novelPublication date25 July 1818[1]Media typePrintPages469 (Edinburgh Edition, 2004)Preceded by Rob Roy Followed byThe Bride of Lammermoor an...

 

1971 Mexican filmFear ChamberTheatrical release posterDirected byJuan Ibáñez (Mexican scenes)Jack Hill (U.S. scenes)Screenplay byJack HillLuis Enrique VergaraProduced byLuis Enrique VergaraStarringBoris KarloffCinematographyRaúl DomínguezAustin McKinneyEdited byFelipe MarinoMusic byEnrico C. CabiatiProductioncompaniesAzteca FilmsFilmica Vergara S.A.Distributed byColumbia PicturesRelease date1971[1]Running time88 min.CountryMexicoLanguageEnglish Fear Chamber (La camara del terror/ ...

Provincial archives in Canada This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Archives of Ontario – news · newspapers · books · scholar · JSTOR (February 2011) (Learn how and when to remove this template message) Archives of OntarioArchives publiques de l'OntarioAgency overviewFormed1903 (1903)Headquart...

 

Цілинна ділянка Цілинна ділянка у квітні 2020 рокуКраїна  УкраїнаРозташування Україна,Запорізька область, Вільнянський районПлоща 30 гаЗасновано 1984Оператор Московська сільська радаПосилання  Цілинна ділянка у Вікісховищі Цілинна ділянка  — ентомологічний зака...

 

Electoral constituency in the Khomas region of central Namibia Windhoek East constituency (red) in the Khomas Region (yellow) Windhoek East is a constituency in the Khomas Region of Namibia. It consists of the upper-class suburbs of Windhoek: Auasblick, Avis, Klein Windhoek, Ludwigsdorf, Luxury Hill, Olympia, and Suiderhof. It had a population of 22,712 in 2011, up from 17,674 in 2001.[1] As of 2020[update], it has 17,308 registered voters.[2] Windhoek East is the most...

St Medan's Cave and Chapel, Kirkmaiden, Wigtownshire; by Herbert Maxwell, 1885 Entrance to Inner Cell, St. Medan's Chapel, Kirkmaiden; by Herbert Maxwell, 1885 Old Kirkmaiden Church, Mull, Kirkmaiden Parish, Wigtownshire; photo by Jonathan Wilkins Saint Medan was a saint, apparently of the early British or Irish period, whose existence and name are inferred from the name Kirkmaiden in Wigtownshire, but who is also associated with Angus and Aberdeenshire. The occurrence and legend of Medan The...

 

楊念祖 中華民國國家安全會議諮詢委員任期2015年2月12日—2016年5月19日秘書長高華柱 中華民國第29任國防部部長任期2013年8月1日—2013年8月6日[1]行政院院长江宜樺前任高華柱继任高廣圻代理 → 嚴明 中華民國第7任國防部軍政副部長任期2009年9月16日—2013年7月31日部长高華柱前任張良任继任夏立言 个人资料性别男出生 (1955-05-15) 1955年5月15日(68歲) 中華民...

 

ジェットストリーム31 ジェットストリーム31 Description 初飛行 1967年 8月18日 全幅 14.65m 全長 15.85m(31型) 高さ 5.33m 翼面積 25.08 m2 乗員 2名 乗客 19 巡航速度 426km エンジン ギャレット・エアリサーチ社製 TPE331-10UFターボプロップ双発 馬力 840hp × 2 実用上昇高度 7,620m イースタンエアウェズのジェットストリーム31 ハンドレページ ジェットストリーム(Handley Page HP.137 Jetstrea...

SuperLiga 2023-2024Mozzart Bet SuperLiga 2023-2024 Competizione SuperLiga Sport Calcio Edizione 18ª Organizzatore FSS Date dal 29 luglio 2023al 14 aprile 2024 (stagione regolare) Luogo  Serbia Partecipanti 16 Cronologia della competizione 2022-2023 Manuale La SuperLiga 2023-2024, anche nota come Mozzart Bet SuperLiga per motivi di sponsorizzazione, è la diciottesima edizione della massima serie del campionato serbo di calcio, iniziata il 29 luglio 2023 e che vedrà terminare l...

 

Hs 126 Тип ближний разведчик и корректировщик Разработчик Henschel Производитель Henschel (заводы в Иоханнешталь и Шенефельде) Главный конструктор Фридрих Николаус Первый полёт осень 1936 года Начало эксплуатации январь 1938 года Конец эксплуатации май 1945 года Статус снят с эксплуат...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!