Share to: share facebook share twitter share wa share telegram print page

IBM 801

The 801 was an experimental central processing unit (CPU) design developed by IBM during the 1970s. It is considered to be the first modern RISC design, relying on processor registers for all computations and eliminating the many variant addressing modes found in CISC designs. Originally developed as the processor for a telephone switch, it was later used as the basis for a minicomputer and a number of products for their mainframe line. The initial design was a 24-bit processor; that was soon replaced by 32-bit implementations of the same concepts and the original 24-bit 801 was used only into the early 1980s.

The 801 was extremely influential in the computer market.[citation needed] Armed with huge amounts of performance data, IBM was able to demonstrate that the simple design was able to easily outperform even the most powerful classic CPU designs, while at the same time producing machine code that was only marginally larger than the heavily optimized CISC instructions. Applying these same techniques even to existing processors like the System/370 generally doubled the performance of those systems as well. This demonstrated the value of the RISC concept, and all of IBM's future systems were based on the principles developed during the 801 project.

For his work on the 801, John Cocke was recognized with several awards and medals, including the Turing Award in 1987, National Medal of Technology in 1991, and the National Medal of Science in 1994.

History

Original concept

In 1974, IBM began examining the possibility of constructing a telephone switch to handle one million calls an hour, or about 300 calls per second. They calculated that each call would require 20,000 instructions to complete, and when timing overhead and other considerations were added, such a machine required performance of about 12 MIPS.[1] This would require a significant advance in performance; their current top-of-the-line machine, the IBM System/370 Model 168 of late 1972, offered about 3 MIPS.[2]

The group working on this project at the Thomas J. Watson Research Center, including John Cocke, designed a processor for this purpose. To reach the required performance, they considered the sort of operations such a machine required and removed any that were not appropriate. This led to the removal of a floating-point unit for instance, which would not be needed in this application. More critically, they also removed many of the instructions that worked on data in main memory and left only those instructions that worked on the internal processor registers, as these were much faster to use and the simple code in a telephone switch could be written to use only these types of instructions. The result of this work was a conceptual design for a simplified processor with the required performance.[1]

The telephone switch project was canceled in 1975, but the team had made considerable progress on the concept and in October IBM decided to continue it as a general-purpose design. With no obvious project to attach it to, the team decided to call it the "801" after the building they worked in. For the general-purpose role, the team began to consider real-world programs that would be run on a typical minicomputer. IBM had collected enormous amounts of statistical data on the performance of real-world workloads on their machines and this data demonstrated that over half the time in a typical program was spent performing only five instructions: load value from memory, store value to memory, branch, compare fixed-point numbers, and add fixed-point numbers. This suggested that the same simplified processor design would work just as well for a general-purpose minicomputer as a special-purpose switch.[3]

Rationale against use of microcode

This conclusion flew in the face of contemporary processor design, which was based on the concept of using microcode. IBM had been among the first to make widespread use of this technique as part of their System/360 series. The 360s, and 370s, came in a variety of performance levels that all ran the same machine language code. On the high-end machines, many of these instructions were implemented directly in hardware, like a floating point unit, while low-end machines could instead simulate those instructions using a sequence of other instructions encoded in microcode. This allowed a single application binary interface to run across the entire lineup and allowed the customers to feel confident that if more performance was ever needed they could move up to a faster machine without any other changes.[4]

Microcode allowed a simple processor to offer many instructions, which had been used by the designers to implement a wide variety of addressing modes. For instance, an instruction like ADD might have a dozen versions, one that adds two numbers in internal registers, one that adds a register to a value in memory, one that adds two values from memory, etc. This allowed the programmer to select the exact variation that they needed for any particular task. The processor would read that instruction and use microcode to break it into a series of internal instructions. For instance, adding two numbers in memory might be implemented by loading those two numbers into registers, adding them, and then storing the sum back to memory.[3] The idea of offering all possible addressing modes for all instructions became a goal of processor designers, the concept becoming known as an orthogonal instruction set.

The 801 team noticed a side-effect of this concept; when faced with the plethora of possible versions of a given instruction, compiler authors would usually pick a single version. This was typically the one that was implemented in hardware on the low-end machines. That ensured that the machine code generated by the compiler would run as fast as possible on the entire lineup. While using other versions of instructions might run even faster on a machine that implemented them in hardware, the complexity of knowing which one to pick on an ever-changing list of machines made this extremely unattractive, and compiler authors largely ignored these possibilities.[3]

As a result, the majority of the instructions available in the instruction set were never used in compiled programs. And it was here that the team made the key realization of the 801 project:

Imposing microcode between a computer and its users imposes an expensive overhead in performing the most frequently executed instructions.[3]

Microcode takes a non-zero time to examine the instruction before it is performed. The same underlying processor with the microcode removed would eliminate this overhead and run those instructions faster. Since microcode essentially ran small subroutines dedicated to a particular hardware implementation, it was ultimately performing the same basic task that the compiler was, implementing higher-level instructions as a sequence of machine-specific instructions. Simply removing the microcode and implementing that in the compiler could result in a faster machine.[3]

One concern was that programs written for such a machine would take up more memory; some tasks that could be accomplished with a single instruction on the 370 would have to be expressed as multiple instructions on the 801. For instance, adding two numbers from memory would require two load-to-register instructions, a register-to-register add, and then a store-to-memory. This could potentially slow the system overall if it had to spend more time reading instructions from memory than it formerly took to decode them. As they continued work on the design and improved their compilers, they found that overall program length continued to fall, eventually becoming roughly the same length as those written for the 370.[5]

First implementations

The initially proposed architecture was a machine with sixteen 24-bit registers and without virtual memory.[6][7] It used a two-operand format in the instruction, so that instructions were generally of the form A = A + B, as opposed to the three-operand format, A = B + C. The resulting CPU was operational by the summer of 1980 and was implemented using Motorola MECL-10K discrete component technology[8] on large wire-wrapped custom boards. The CPU was clocked at 66 ns cycles (approximately 15.15 MHz) and could compute at the fast speed of approximately 15 MIPS.

The 801 architecture was used in a variety of IBM devices, including channel controllers for their S/370 mainframes (such as the IBM 3090),[9]: 377  various networking devices, and as a vertical microcode execution unit in the 9373 and 9375 processors of the IBM 9370 mainframe family.[10][11] The original version of the 801 architecture was the basis for the architecture of the IBM ROMP microprocessor[9]: 378  used in the IBM RT PC workstation computer and several experimental computers from IBM Research. A derivative of the 801 architecture with 32-bit addressing named Iliad was intended to serve as the primary processor of the unsuccessful Fort Knox midrange system project.[12]

Later modifications

Having been originally designed for a limited-function system, the 801 design lacked a number of features seen on larger machines. Notable among these was the lack of hardware support for virtual memory, which was not needed for the controller role and had been implemented in software on early 801 systems that needed it. For more widespread use, hardware support was a must-have feature. Additionally, by the 1980s the computer world as a whole was moving towards 32-bit systems, and there was a desire to do the same with the 801.[13]

Moving to a 32-bit format had another significant advantage. In practice, it was found that the two-operand format was difficult to use in typical math code. Ideally, both input operands would remain in registers where they could be reused in subsequent operations. In the two-operand format, one of the two values was overwritten with the result, and it was often the case that one of the values had to be re-loaded from memory. By moving to a 32-bit format, the extra bits in the instruction words allowed an additional register to be specified, so that the output of such operations could be directed to a separate register. The larger instruction word also allowed the number of registers to be increased from sixteen to thirty-two, a change that had been obvious from the examination of 801 code. Despite the expansion of the instruction words from 24 to 32-bits, programs did not grow by the corresponding 33% due to avoided loads and saves due to these two changes.[13]

Other desirable additions include instructions for working with string data that was encoded in "packed" format with several characters in a single memory word, and additions for working with binary-coded decimal, including an adder that could carry across four-bit decimal numbers.[13]

When the new version of the 801 was run as a simulator on the 370, the team was surprised to find that code compiled to the 801 and run in the simulator would often run faster than the same source code compiled directly to 370 machine code using the 370's PL/I compiler.[14] When they ported their experimental "PL.8" language back to the 370 and compiled applications using it, those applications ran as much as three times as fast as the PL/I versions. This was due to the compiler making RISC-like decisions about how the generated code uses the processor registers, thereby optimizing out as many memory accesses as possible. These were just as expensive on the 370 as the 801, but this cost was normally hidden by the simplicity of a single line of CISC code. The PL.8 compiler was much more aggressive about avoiding loads and saves, thereby resulting in higher performance even on a CISC processor.[14]

The Cheetah, Panther, and America projects

In the early 1980s, the lessons learned on the 801 were combined with those from the IBM Advanced Computer Systems project, resulting in an experimental processor called "Cheetah". Cheetah was a 2-way superscalar processor, which evolved into a processor called "Panther" in 1985, and finally into a 4-way superscalar design called "America" in 1986.[15] This was a three-chip processor set including an instruction processor that fetches and decodes instructions, a fixed-point processor that shares duty with the instruction processor, and a floating-point processor for those systems that require it. Designed by the 801 team, the final design was sent to IBM's Austin office in 1986, where it was developed into the IBM RS/6000 system. The RS/6000 running at 25 MHz was one of the fastest machines of its era. It outperformed other RISC machines by two to three times on common tests, and easily outperformed older CISC systems.[10]

After the RS/6000, the company turned its attention to a version of the 801 concepts that could be efficiently fabricated at various scales. The result was the IBM POWER instruction set architecture and the PowerPC offshoot.

Recognition

For his work on the 801, John Cocke was awarded several awards and medals:

Michael J. Flynn views the 801 as the first RISC.[22]

References

Citations

  1. ^ a b Cocke & Markstein 1990, p. 4.
  2. ^ Savard, John. "On the 370/165 and the 360/85".
  3. ^ a b c d e Cocke & Markstein 1990, p. 5.
  4. ^ Sack, Harald (7 April 2016). "The IBM System/360 and the Use of Microcode". SciHub.
  5. ^ Cocke & Markstein 1990, pp. 6–7.
  6. ^ "The 801 Minicomputer - An Overview" (PDF). October 8, 1976. p. 9.
  7. ^ "System 801 Principles of Operation" (PDF). January 16, 1976.
  8. ^ Radin 1982.
  9. ^ a b Dewar, Robert B.K.; Smosna, Matthew (1990). Microprocessors: A Programmer's View. McGraw-Hill.
  10. ^ a b Cocke & Markstein 1990, p. 9.
  11. ^ Mitchell, James (September 1988). "Implementing a mainframe architecture in a 9370 processor". ACM SIGMICRO Newsletter. 19 (3): 3–10. doi:10.1145/62185.62186. ISSN 1050-916X. S2CID 14602753.
  12. ^ Frank G. Soltis (1997). Inside the AS/400, Second Edition. Duke Press. ISBN 978-1882419661.
  13. ^ a b c Cocke & Markstein 1990, p. 7.
  14. ^ a b Cocke & Markstein 1990, p. 8.
  15. ^ Smotherman, Mark (2005). "Survey of Superscalar Processors". Modern Processor Design: Fundamentals of Superscalar Processors. By Shen, John Paul; Lipasti, Mikko H. McGraw-Hill.
  16. ^ "John Cocke". awards.acm.org. Retrieved 2022-08-29.
  17. ^ "John Cocke - A.M. Turing Award Laureate". amturing.acm.org. Retrieved 2022-08-29.
  18. ^ "IEEE Computer Society Women of ENIAC Computer Pioneer Award". 9 April 2018. Retrieved 2022-08-29.
  19. ^ a b "NSTMF". NSTMF. Retrieved 2020-05-12.
  20. ^ "IEEE John von Neumann Medal Receipients" (PDF). Institute of Electrical and Electronics Engineers (IEEE).
  21. ^ "John Cocke". The Franklin Institute. 2014-01-10. Retrieved 2022-08-29.
  22. ^ Flynn, Michael J. (1995). Computer architecture: pipelined and parallel processor design. Jones & Bartlett Learning. pp. 54–56. ISBN 0867202041.

Bibliography

Further reading

  • "Altering Computer Architecture is Way to Raise Throughput, Suggests IBM Researchers". Electronics. Vol. 49, no. 25. 23 December 1976. pp. 0–31.
  • McLellan, V. (October 1979). "IBM Mini a Radical Departure". Datamation. Vol. 25, no. 11. pp. 53–55.
  • Dewar, Robert B.K.; Smosna, Matthew (1990). Microprocessors: A Programmer's View. McGraw-Hill. pp. 258–264.
  • Tabak, Daniel (1987). RISC Architecture. Research Studies Press. pp. 69–72.

Read other articles:

Microsoft Office 2019PengembangMicrosoftSistem operasiWindows 10, Windows 11, Windows Server 2019, macOS Sierra dan setelahnya[1]PlatformIA-32, x64, ARM, WebTersedia dalam102 bahasaDaftar bahasa Penuh (40): Bahasa Inggris, Arab, Bulgaria, China (Sederhana), Cina (Tradisional), Kroasia, Ceko, Denmark, Belanda, Estonia, Finlandia, Prancis, Jerman, Yunani, Ibrani, Hindi, Hungaria, Indonesia, Italia, Jepang, Kazakh, Korea, Latvia, Lituania, Melayu (Latin), Norwegia Bokmål, Polandia, Port...

Schlacht bei Dunbar Teil von: Schottische Unabhängigkeitskriege Datum 27. April 1296 Ort Dunbar (Schottland) Ausgang Englischer Sieg Konfliktparteien England Konigreich England Schottland 0843 Schottland Befehlshaber John de Warenne John Comyn Truppenstärke etwa 300 Reiter und 2000 Fußsoldaten unbekannt Verluste unbekannt unbekannt, vermutlich gering Schottische Unabhängigkeitskriege (1296–1357) Schlachten des Ersten Schottischen Unabhängigkeitskrieges Berwick – Dunbar – ...

1919 German federal election جمهورية فايمار   → 1912 German federal election   الحزب DDP   الحزب SPD DVP أجريت الانتخابات الفيدرالية في ألمانيا في 19 يناير 1919، على الرغم من أن أعضاء الجيش الدائم في الشرق صوتوا لممثليهم فقط في 2 فبراير. كانت الانتخابات الأولى من جمهورية فايمار الجديدة التي أعقبت ال

Doktoranda (Dra.) Bendoro Raden Ayu (BRA) Murtiningrum adalah dosen bahasa Inggris di salah satu universitas di Yogyakarta yang aktif dalam HSI (Himpunan Sarjana Indonesia). Dia memiliki darah keraton Yogyakarta. Meski kakaknya adalah Sultan Hamengkubuwono IX, dia tetap kena ciduk rezim Orde Baru. Murtiningrum ditempatkan di blok C. Menurut Amurwani dalam Gerwani: Kisah Tapol Wanita di Kamp Plantungan, tempat itu untuk tahanan dengan klasifikasi berat, seperti dosen dan seniman yang punya nam...

Israeli politician (born 1981) Oren HazanFaction represented in the Knesset2015–2019Likud Personal detailsBorn (1981-10-28) 28 October 1981 (age 42) Oren Asaf Hazan (Hebrew: אורן אסף חזן, born 28 October 1981) is an Israeli politician. He served as a member of the Knesset for Likud between 2015 and 2019. Early life The son of former Likud Knesset member Yehiel Hazan,[1] Oren served in the Israeli Air Force during his IDF national service. He studied law at Ono Academi...

Frankfurt (Main) Hauptbahnhof underground stationTiefbahnhof im Hauptbahnhof von Frankfurt am MainUnderground stationS6 train to Friedberg in the underground stationGeneral informationLocationIm Hauptbahnhof, Frankfurt, HesseGermanyCoordinates50°6′25″N 8°39′45″E / 50.10694°N 8.66250°E / 50.10694; 8.66250Owned byDeutsche BahnOperated by DB Netz DB Station&Service Line(s) Frankfurt City Tunnel Platforms2 island platformsTracks4Train operatorsS-Bahn Rhein-...

Dalam nama yang mengikuti kebiasaan penamaan Slavia Timur ini, patronimiknya adalah Yevgenievich. Alexander LebedevLebedev pada 2019LahirAlexander Yevgenievich Lebedev16 Desember 1959 (umur 63)Moskaw, SFSR Rusia, Uni Soviet (kini Rusia)AlmamaterInstitut Hubungan Internasional Negeri MoskwaPekerjaanPengusahaDikenal atasMantan perwira KGBSuami/istriNatalia SokolovaPasanganElena Perminova (2005–kini)Anak5, termasuk Evgeny Lebedev Suara Alexander Lebedev direkam pada Maret 2013 Bermasalah ...

Competition between web browsing applications for share of worldwide usage This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article's tone or style may not reflect the encyclopedic tone used on Wikipedia. See Wikipedia's guide to writing better articles for suggestions. (January 2019) (Learn how and when to remove this template message) This article needs additional citations for veri...

Japanese bobsledder and sprinter Shinji AotoPersonal informationBorn (1967-05-07) 7 May 1967 (age 56)Wakayama, JapanEducationChukyo UniversityHeight1.78 m (5 ft 10 in)[1]Weight73 kg (161 lb)SportSportAthleticsEvent(s)60 m, 100 mAchievements and titlesPersonal best(s)60 m: 6.76 (1989) 100 m: 10.28 (1988, 1989) Medal record Men's athletics Representing  Japan Asian Games 1990 Seoul 4×100 m relay Universiade 1987 Zagreb 4×100 m relay Asian J...

Serbian handball club RK JugovićFull nameRukometni Klub JugovićNickname(s)Kaćki tići (The Kać's Fledglings)Founded1956; 67 years ago (1956)ArenaHram Sport Hall, KaćCapacity2,000Head coachPredrag TopićLeagueArkus LigaClub colours    Home Away Website Official site RK Jugović (Serbian Cyrillic: РК Југовић) is a Serbian handball club based in Kać, Novi Sad. They compete in the top tier Serbian handball league, the Arkus league. Kaćcla...

Induk University인덕대학교TypePrivateEstablished1971LocationSeoul, South KoreaWebsiteinduk.ac.krKorean nameHangul인덕대학교Hanja仁德大學校Revised RomanizationIndeok DaehakgyoMcCune–ReischauerIndŏk Taehakkyo Induk University is a university in Seoul, South Korea. It was established by Asian American writer Induk Pahk as Berea in Korea in 1963,[1][2] became the Induk Institute of Design in 1971,[3] and was renamed Induk University in 2009.[3] It...

2003 video gameLineage IIDeveloper(s)NCSoft, E&G StudiosPublisher(s)NCSoftTencent for ChinaInnova for EuropeSeriesLineageEngineUnreal Engine 2.5Platform(s)Microsoft WindowsReleaseKOR: October 1, 2003NA: April 27, 2004Genre(s)MMORPGMode(s)Multiplayer Lineage II is a massively multiplayer online role-playing game (MMORPG) for Microsoft Windows and the second game in the Lineage series. It is a prequel to Lineage and is set 150 years before the first game.[1] It has become popular si...

Kim Na-young Kim Na-young atau Nayoung (lahir 30 November 2002 adalah penyanyi dan penari Korea Selatan dalam grup musik LIGHTSUM. Nayoung memiliki tinggi badan 154 cm dan golongan darah O. Nayoung juga diketahui merupakan kontestan dari acara Produce 48, namun ia bergabung dengan Banana Culture Entertainment pada saat itu. Ia berhasil menduduki peringkat ke 21, kemudian ia akhirnya bergabung bersama CUBE Entertainment. Namun, ia juga diketahui berhasil lolos audisi di FNC Entertainment,...

Front and back side of coins, medals, orders of merit, and paper bills Obverse redirects here. For the concept in logic, see Obversion. For the book publisher, see Obverse Books. 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: Obverse and reverse – news · newspapers · books · scholar · JSTOR (January 2013) (...

Universiteit van Amerika, PueblaFundación Universidad de las Américas, Puebla Afkorting UdlAP Motto Sapientia, Pax, Fraternitas Locatie Cholula, Mexico Opgericht 1940 Type Privé Rector Luis Ernesto Derbez Studenten 7.723 (2006) Website Portaal    Onderwijs Bibliotheek De Universiteit van Amerika, Puebla (Spaans: Universidad de las Américas, Puebla) is een privéuniversiteit in Cholula. De universiteit werd opgericht in 1940 door de Amerikanen Henry L. Cain en Paul V. Murray in M...

В Википедии есть статьи о других людях с такой фамилией, см. Розов; Розов, Валерий. Розов Валерий Константинович Дата рождения 7 июня 1922(1922-06-07) Место рождения село Ёлнать, Юрьевецкий уезд, Иваново-Вознесенская губерния, Советская Россия Дата смерти 30 ноября 2005(2005-11-30) (83 года...

Bhadrakali Temple 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: Sarkaradevi Temple – news · newspapers · books · scholar · JSTOR (January 2022) (Learn how and when to remove this template message) Sarkaradevi TempleReligionAffiliationHinduismDistrictThiruvananthapuramDeityGoddess BhadrakaliFestivalsPongala...

Species of mammal Mongolian gazelle Conservation status Least Concern (IUCN 3.1)[1] Scientific classification Domain: Eukaryota Kingdom: Animalia Phylum: Chordata Class: Mammalia Order: Artiodactyla Family: Bovidae Subfamily: Antilopinae Tribe: Antilopini Genus: Procapra Species: P. gutturosa Binomial name Procapra gutturosa(Pallas, 1777) Synonyms[2] Antilope gutturosa Pallas, 1777 o Procapra gutturosa gutturosa Pallas, 1777 Procapra altaica Hollister, 1913 Procapra ...

This article is about the Awake episode. For the I Am Groot episode, see The Little Guy (I Am Groot). 2nd episode of the 1st season of Awake The Little GuyAwake episodeBernard Mackenzie's body after he is murdered, which was made to look like a heart attack.Episode no.Season 1Episode 2Directed byJeffrey ReinerWritten byKyle KillenProduction code1ATR01Original air dateMarch 8, 2012 (2012-03-08)Running time43 minutesGuest appearances Laura Innes as Tricia Harper Mark Harelik...

The honours system in the Republic of Austria is a means of rewarding individuals' personal achievement, or service to Austria by state decorations and medals. The system consists of several types of award which were established by the National Council (Austria) and are conferred by the President of Austria in accordance with the respective laws.[1] History Decoration for Services to the Republic of Austria (typical form) Over time, the National Council of Austria has enacted a series...

Kembali kehalaman sebelumnya