Joel McCormack

Joel McCormack is an American computer scientist who designed the NCR Corporation version of the p-code machine, which is a kind of stack machine popular in the 1970s as the preferred way to implement new computing architectures and languages such as Pascal and BCPL. The NCR design shares no common architecture with the Pascal MicroEngine designed by Western Digital but both were meant to execute the UCSD p-System.[1,2]

P-machine theory

Urs Ammann, a student of Niklaus Wirth, originally presented p-code in his PhD thesis (see Urs Ammann, On Code Generation in a Pascal Compiler, Software: Practice and Experience, Vol. 7, No. 3, 1977, pp. 391–423). The central idea is that a complex software system is coded for a non-existent, fictitious, minimal computer or virtual machine and that computer is realized on specific real hardware with an interpreting computer program that is typically small, simple, and quickly developed. The Pascal programming language had to be re-written for every new computer being acquired, so Ammann proposed writing the system one time to a virtual architecture. The successful academic implementation of Pascal was the UCSD p-System developed by Kenneth Bowles, a professor at UCSD, who began the project of developing a universal Pascal programming environment using the P-machine architecture for the multitude of different computing platforms in use at that time. McCormack was part of a team of undergraduates working on the project.[3] He took this familiarity and experience with him to NCR.

P-machine design

NCR hired McCormack directly out of college. They had previously developed a bit-sliced hardware implementation of a p-code machine using AMD's AM2900 chipset. A myriad of timing and performance problems plagued the machine; McCormack proposed a redesign of the processor, which would have a microsequencer based on programmable logic. When McCormack left NCR to start Volition Systems he continued his work on the processor as a contractor.

This new CPU used horizontal microcode which radically enhanced parallelism within the microarchitecture. These wide, 80-bit microwords allowed the CPU to perform many operations in a single microcycle: the processor could do an arithmetic operation while also performing a memory read into the internal stack, or transfer the contents of a register while at the same time reading new data into the ALU. Resultingly, many of the simpler p-code operations only took one or two microinstructions; some operations were constructed with tight, single-microword loops.

Two bits per clock selected one of four cycle times for each instruction: 130, 150, or 175 nanoseconds, which generated with a delay line. Faster parts from AMD would have also allowed for a 98 ns cycle time, but there was no correspondingly faster branch control unit. A separate prefetch/instruction formatting unit also used delay lines to generate asynchronous timing signals. This unit had a 32-bit buffer and could decode the next data in multiple formats: signed byte; unsigned byte; word; and compressed "big" format, which encoded small numbers in 0..127 in a single byte, and larger numbers within 128..32767 in two.

An on-board stack of 1024, 16-bit words held temporary values—scalars as well as sets. The stack addresses ran downwards, with the stack pointer decrementing before a write and incrementing after a read. A register in the AMD 2901's internal file held the top-of-stack value so as to accelerate simple operations. Integer addition took only a single instruction cycle; since one operand was always in the register file, only one fetch from stack memory was needed.

Each wide control word could either hold the address of the next microinstruction or it could control the next p-machine instruction to be fetched. Thus, the microsequencer could jump almost arbitrarily the control code. The first 256 microinstructions in memory corresponded to p-machine instructions, so the microassembler would place the first control word in its corresponding location. P-code instructions that took multiple multiple microinstructions to execute could not start with a branch, (as this field is already used to jump to the rest of the microprogram for the instruction). [citation needed]

P-machine architecture

The CPU used the technique of keeping the top word of the stack in one of the AMD 2901 registers. This often resulted in one fewer microinstructions. For example, here are a few p-codes the way they ended up. tos is a register, and q is a register. "|" means parallel activities in a single cycle. (The stack doesn't quite operate this way...it decrements before data is written to it, and increments after data is read.)

Since next-address control and next microcode location were in each wide microword, there was no penalty for any-order execution of the microcode. A table of 256 labels, and the microcode compiler moved the first instruction at each of those labels to the first 256 locations of microcode memory. The only restriction this placed upon the microcode was that if the p-code required more than one microinstruction, then the first microinstruction couldn't have any flow control specified (as it would be filled in with a "goto <rest of microcode for p-code>).

fetch	% Fetch and save in an AMD register the next byte opcode from
	% the prefetch unit, and go to that location in the microcode.
	q := ubyte | goto ubyte

SLDCI	% Short load constant integer (push opcode byte)
	% Push top-of-stack AMD register onto real stack, load
	% the top-of-stack register with the fetched opcode that got us here
	dec(sp) | stack := tos | tos := q | goto fetch

LDCI	% Load constant integer (push opcode word)
	% A lot like SLDCI, except fetch 2-byte word and "push" on stack
	dec(sp) | stack := tos | tos := word | goto fetch

SLDL1	% Short load local variable at offset 1
	% mpd0 is a pointer to local data at offset 0.  Write appropriate
	% data address into the byte-addressed memory-address-register
	mar := mpd0+2
	% Push tos, load new tos from memory
SLDX	dec(sp) | stack := tos | tos := memword | goto fetch

LDL	% Load local variable at offset specified by "big" operand
	r0 := big
	mar := mpd0 + r0 | goto sldx

INCR	% Increment top-of-stack by big operand
	tos := tos + big | goto fetch

ADI	% Add two words on top of stack
	tos := tos + stack | inc(sp) | goto fetch

EQUI	% Top two words of stack equal?
	test tos - stack | inc(sp)
	tos := 0 | if ~zero goto fetch
	tos := 1 | goto fetch

This architecture should be compared to the original P-code machine specification as proposed by Niklaus Wirth.

P-machine performance

The end result was a 9"x11" board for the CPU that ran UCSD p-System faster than anything else, by a wide margin. As much as 35-50 times faster than the LSI-11 interpreter, and 7-9 times faster than the Western Digital Pascal MicroEngine did by replacing the LSI-11 microcode with p-code microcode. It also ran faster than the Niklaus Wirth Lilith machine but lacked the bit-mapped graphics capabilities, and around the same speed as a VAX-11/750 running native code. (But the VAX was hampered by the poor code coming out of the Berkeley Pascal compiler, and was also a 32-bit machine.)

Education

Later employment

Publications

  • Joel McCormack, Robert McNamara. Efficient and Tiled Polygon Traversal Using Half-Plane Edge Functions, to appear as Research Report 2000/4, Compaq Western Research Laboratory, August 2000. [Superset of Workshop paper listed immediately below.]
  • Joel McCormack, Robert McNamara. Tiled Polygon Traversal Using Half-Plane Edge Functions, Proceedings of the 2000 EUROGRAPHICS/SIGGRAPH Workshop on Graphics Hardware, ACM Press, New York, August 2000, pp. 15–21.
  • Robert McNamara, Joel McCormack, Norman P. Jouppi. Prefiltered Antialiased Lines Using Half-Plane Distance Functions, Research Report 98/2, Compaq Western Research Laboratory, August 2000. [Superset of Workshop paper listed immediately below.]
  • Robert McNamara, Joel McCormack, Norman P. Jouppi. Prefiltered Antialiased Lines Using Half-Plane Distance Functions, Proceedings of the 2000 EUROGRAPHICS/SIGGRAPH Workshop on Graphics Hardware, ACM Press, New York, August 2000, pp. 77–85.
  • Joel McCormack, Keith I. Farkas, Ronald Perry, Norman P. Jouppi. Simple and Table Feline: Fast Elliptical Lines for Anisotropic Texture Mapping, Research Report 99/1, Compaq Western Research Laboratory, October 1999. [Superset of SIGGRAPH paper listed immediately below.]
  • Joel McCormack, Ronald Perry, Keith I. Farkas, Norman P. Jouppi. Feline: Fast Elliptical Lines for Anisotropic Texture Mapping, SIGGRAPH 99 Conference Proceedings, ACM Press, New York, August 1999, pp. 243–250.
  • Joel McCormack, Robert McNamara, Christopher Gianos, Larry Seiler, Norman P. Jouppi, Ken Correll, Todd Dutton, John Zurawski. Neon: A (Big) (Fast) Single-Chip 3D Workstation Graphics Accelerator, Research Report 98/1, Compaq Western Research Laboratory, Revised July 1999. [Superset of Workshop and IEEE Neon papers listed immediately below.]
  • Joel McCormack, Robert McNamara, Christopher Gianos, Larry Seiler, Norman P. Jouppi, Ken Correll, Todd Dutton, John Zurawski. Implementing Neon: A 256-bit Graphics Accelerator, IEEE Micro, Vol. 19, No. 2, March/April 1999, pp. 58–69.
  • Joel McCormack, Robert McNamara, Christopher Gianos, Larry Seiler, Norman P. Jouppi, Ken Correll. Neon: A Single-Chip 3D Workstation Graphics Accelerator, Proceedings of the 1998 EUROGRAPHICS/SIGGRAPH Workshop on Graphics Hardware, ACM Press, New York, August 1998, pp. 123–132. [Voted Best Paper/Presentation.]
  • Joel McCormack, Robert McNamara. A Smart Frame Buffer, Research Report 93/1, Digital Equipment Corporation, Western Research Laboratory, January 1993. [Superset of USENIX paper listed immediately below.]
  • Joel McCormack, Robert McNamara. A Sketch of the Smart Frame Buffer, Proceedings of the 1993 Winter USENIX Conference, USENIX Association, Berkeley, January 1993, pp. 169–179.
  • Joel McCormack. Writing Fast X Servers for Dumb Color Frame Buffers, Research Report 91/1, Digital Equipment Corporation, Western Research Laboratory, February 1991. [Superset of the Software: Practice and Experience paper listed immediately below.]
  • Joel McCormack. Writing Fast X Servers for Dumb Color Frame Buffers, Software: Practice and Experience, Vol 20(S2), John Wiley & Sons, Ltd., West Sussex, England, October 1990, pp. 83–108. [Translated and reprinted in the Japanese edition of UNIX Magazine, ASCII Corp., October 1991, pp. 76–96.]
  • Hania Gajewska, Mark S. Manasse, Joel McCormack. Why X is Not Our Ideal Window System, Software: Practice and Experience, Vol 20(S2), John Wiley & Sons, Ltd., West Sussex, England, October 1990, pp. 137–171.
  • Paul J. Asente and Ralph R. Swick, with Joel McCormack. X Window System Toolkit: The Complete Programmer's Guide and Specification, X Version 11, Release 4, Digital Press, Maynard, Massachusetts, 1990.
  • Joel McCormack, Paul Asente. An Overview of the X Toolkit, Proceedings of the ACM SIGGRAPH Symposium on User Interface Software, ACM Press, New York, October 1988, pp. 46–55.
  • Joel McCormack, Paul Asente. Using the X Toolkit, or, How to Write a Widget. Proceedings of the Summer 1988 USENIX Conference, USENIX Association, Berkeley, June 1988, pp. 1–14.
  • Joel McCormack. The Right Language for the Job. UNIX Review, REVIEW Publications Co., Renton, Washington, Vol. 3, No. 9, September 1985, pp. 22–32.
  • Joel McCormack, Richard Gleaves. Modula-2: A Worthy Successor to Pascal, BYTE, Byte Publications, Peterborough, New Hampshire, Vol. 8, No. 4, April 1983, pp. 385–395.

See also

References

  1. The Pascal Users' Group Newsletter Archive
  2. The UCSD P-system Museum
  3. The UCSD Pascal Reunion website

Read other articles:

Itaú Unibanco Holding S.AJenisSociedade AnônimaKode emitenBM&F Bovespa: ITUB3, ITUB4 NYSE: ITUBIndustriFinansialDidirikan2008KantorpusatSão Paulo, BrasilWilayah operasiDuniaTokohkunciRoberto Egydio Setubal, (CEO) Pedro Moreira Salles, (Ketua)ProdukBankPendapatan AS$ 71,4 Miliar (2010) [1]Laba bersih AS$ 8,3 Miliar(2010) [2]Total aset AS$ 540,2 Miliar (2011)Karyawan110.000IndukItaúsaAnakusahaRedecardBanco Itaú ChileBanco Itaú ArgentinaBanco Itaú ParaguaySitus webItau...

 

 

Artikel bermasalah Ini adalah artikel yang memenuhi kriteria penghapusan cepat karena alasan sebagai berikut: artikel tentang orang, hewan individu, organisasi (grup musik, klub, perusahaan, dll.), konten web, atau peristiwa yang terselenggara yang tidak mengindikasikan kepentingan subjeknya. Lihat KPC A7. karena dalam bentuk saat ini hanya berfungsi untuk promosi atau mempublikasikan entitas, orang, produk, atau ide, dan akan membutuhkan penulisan ulang mendasar untuk menj...

 

 

本條目存在以下問題,請協助改善本條目或在討論頁針對議題發表看法。 此條目需要补充更多来源。 (2018年3月17日)请协助補充多方面可靠来源以改善这篇条目,无法查证的内容可能會因為异议提出而被移除。致使用者:请搜索一下条目的标题(来源搜索:羅生門 (電影) — 网页、新闻、书籍、学术、图像),以检查网络上是否存在该主题的更多可靠来源(判定指引)。 �...

Untuk kegunaan lain, lihat Canton Solothurn. Solothurn Lambang kebesaranNegaraSwissKantonSolothurnDistrikSolothurnPemerintahan • WalikotaStadtpräsidentKurt Fluri FDP/PRD(per 2008)Luas[1] • Total6,28 km2 (2,42 sq mi)Ketinggian430 m (1,410 ft)Populasi (Kesalahan: waktu tidak sah.Templat:Swiss populations data CH-SO) • TotalKesalahan ekspresi: Karakter tanda baca "[" tidak dikenal.Kode pos4500Kode area...

 

 

جي بي إندوستريا وأرتيجياناتو 2018 تفاصيل السباقسلسلة41. جي بي إندوستريا وأرتيجياناتومسابقاتطواف أوروبا للدراجات 2018 1.HC‏كأس إيطاليا لركوب الدراجات على الطريق 2018التاريخ4 مارس 2018المسافات199٫2 كمالبلد إيطاليانقطة البدايةلاركانونقطة النهايةلاركانوالفرق24عدد المتسابقين في ا�...

 

 

Gunung TelomoyoJalan Bypass Ambarawa dari Eling Bening, 2017. Di latar belakang adalah Danau Rawa Pening dan Gunung Merbabu (kiri) dan Gunung Telomoyo,Titik tertinggiKetinggian1.996 m (6.213 kaki)GeografiLetakJawa Tengah, Indonesia Jalan menuju puncak Gunung Telomoyo Gunung Telomoyo (bahasa Jawa: Télåmåyå, Han.: ꦒꦸꦤꦸꦁꦠꦺꦭꦩꦪ) adalah gunung yang terletak di wilayah Kabupaten Semarang dan Kabupaten Magelang, Jawa Tengah. Gunung ini memiliki ketinggian 1.996 mdpl dan merupa...

WomanPoster teatrikalNama lainHangul여 Hanja女 Alih Aksara yang DisempurnakanYeoMcCune–ReischauerYŏ SutradaraKim Ki-young[1]Jung Jin-wooYu Hyun-mokProduserPark Gwan-sikDitulis olehLee Eun-seongKim Seung-okKim Ki-youngPemeranShin Seong-il Moon HeePenata musikHan Sang-kiSinematograferJang Seok-junSon Hyeon-chaeChoe Ho-jinPenyuntingKim Hee-suDistributorKorea Art Movie Co., Ltd.Tanggal rilis 23 Desember 1968 (1968-12-23) Durasi100 menitNegaraKorea SelatanBahasaKorea ...

 

 

Девушки с Макаровым Постер 1 сезона Жанр комедия Режиссёры Константин Смирнов (1 сезон), Радда Новикова (2 и 3 сезоны) Сценаристы Антон МорозенкоАлексей СлущевИлья Ипатов В главных ролях Павел МайковОлеся СудзиловскаяАлевтина ТуканЕлена ПолянскаяВладислава ЕрмолаеваВал...

 

 

Radio station in Omaha, Nebraska KGOROmaha, NebraskaBroadcast areaOmaha metropolitan areaFrequency99.9 MHz (HD Radio)Branding99.9 KGORProgrammingFormatClassic hitsSubchannelsHD3: Air1AffiliationsCompass Media NetworksPremiere NetworksOwnershipOwneriHeartMedia, Inc.(iHM Licenses, LLC)Sister stationsKFAB, KFFF, KISO, KXKTHistoryFirst air date1959 (as KFAB-FM)Former call signsKFAB-FM (1959–1975)Technical informationFacility ID26928ClassC0ERP115,000 wattsHAAT370 meters (1,210 ft)Transmitte...

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: Larry Zbyszko – news · newspapers · books · scholar · JSTOR (April 2024) (Learn how and when to remove this message) American professional wrestler Larry ZbyszkoZbyszko in 2016Birth nameLawrence WhistlerBorn (1951-12-05) December 5, 1951 (age 72)Chicago, I...

 

 

Vous lisez un « article de qualité » labellisé en 2021. Cet article concerne le satellite de la Terre. Pour les autres significations, voir Lune (homonymie). Lune Pleine lune en Amérique du Nord. Caractéristiques orbitales Demi-grand axe 384 399 km(0,002 57 au) Apogée 406 300 km(0,002 7 au) Périgée 356 700 km(0,002 4 au) Circonférence orbitale 2 449 000 km Excentricité 0,054 90 Période de ré...

 

 

Pool (billiards) game with elements borrowed from baseball The extra balls of baseball pocket billiards in a rack. Baseball pocket billiards or baseball pool (sometimes, in context, referred to simply as baseball) is a pocket billiards (pool) that is loosely based on the game of baseball. The game is played on a standard pool table and suitable for multiple players. In baseball pocket billiards, many of the game's features are named after baseball terms, such as the 9 ball being named the pit...

此條目可参照英語維基百科相應條目来扩充。 (2021年5月6日)若您熟悉来源语言和主题,请协助参考外语维基百科扩充条目。请勿直接提交机械翻译,也不要翻译不可靠、低品质内容。依版权协议,译文需在编辑摘要注明来源,或于讨论页顶部标记{{Translated page}}标签。 约翰斯顿环礁Kalama Atoll 美國本土外小島嶼 Johnston Atoll 旗幟颂歌:《星條旗》The Star-Spangled Banner約翰斯頓環礁�...

 

 

Railway station in Horonobe, Hokkaido, Japan W70 Minami-Horonobe Station南幌延駅 regional railMinami-Horonobe Station platform in May 2005General informationLocationMinami-horonobe, Horonobe-chō, Teshio-gun, Hokkaidō 098-3200JapanCoordinates44°57′54.9″N 141°53′4.8″E / 44.965250°N 141.884667°E / 44.965250; 141.884667Operated by JR HokkaidoLine(s)     Sōya Main LineDistance191.6 km (119.1 mi) from AsahikawaPlatforms1 ...

 

 

Sports track for the 1984 Olympics Sarajevo Olympic Bobsleigh and Luge TrackSarajevo Olympic Bobsleigh and Luge Track (with graffiti), August 2012Full nameOlimpijska staza za bob i sankanje TrebevićОлимпијска стаза за боб и санкање ТребевићLocation Sarajevo, Bosnia and HerzegovinaCoordinates43°50′28″N 18°26′32″E / 43.84111°N 18.44222°E / 43.84111; 18.44222OwnerKJP ZOI'84 OCSSurfaceArtificial, refrigerated concreteConstru...

Cet article est une ébauche concernant un coureur cycliste néerlandais. Vous pouvez partager vos connaissances en l’améliorant (comment ?). Pour plus d’informations, voyez le projet cyclisme. Kees PellenaarsKees Pellenaars en 1965InformationsNom de naissance Cornelis Petrus PellenaarsNaissance 10 mai 1913TerheijdenDécès 30 janvier 1988 (à 74 ans)BrédaNationalité néerlandaiseÉquipes professionnelles 1935individuel1936Colin-Wolber 1937-1948individuel1949Dunlop Rubber &a...

 

 

19th quadrennial U.S. presidential election 1860 United States presidential election ← 1856 November 6, 1860 1864 → 303 members of the Electoral College152 electoral votes needed to winTurnout81.8%[1] 2.4 pp   Nominee Abraham Lincoln John C. Breckinridge Party Republican Southern Democratic Home state Illinois Kentucky Running mate Hannibal Hamlin Joseph Lane Electoral vote 180 72 States carried 18 11 Popular vote 1,865,908 848,019 P...

 

 

Alias Systems CorporationFormerlyAlias ResearchAlias|WavefrontIndustrySoftwareFounded1983; 41 years ago (1983) in Toronto, OntarioFoundersStephen BinghamNigel McGrathSusan McKennaDefunct2006 (2006)FateAcquired by Autodesk Alias Systems Corporation (formerly Alias Research, Alias|Wavefront), headquartered in Toronto, Ontario, Canada, was a software company that produced high-end 3D graphics software. Alias was eventually bought by Autodesk. History Alias Systems Corporat...

Cette page contient des caractères spéciaux ou non latins. S’ils s’affichent mal (▯, ?, etc.), consultez la page d’aide Unicode. Pour les articles homonymes, voir Thêta (homonymie) et O barré. Thêta Versions modernes de la lettre grecque thêta en capitale et bas-de-casse, avec la police Times New Roman. Graphies Capitale Θ Bas de casse θ Utilisation Alphabets Grec Ordre 8e lettre Phonèmes principaux Grec ancien : [t̪ʰ] Grec moderne : [θ] modifier&...

 

 

Part of a series on theCatholic ChurchSt. Peter's Basilica, Vatican City Overview Pope: Francis Hierarchy History (timeline) Theology Liturgy Sacraments Mary Background Jesus Crucifixion Resurrection Ascension Early Christianity Peter Paul Fathers History of the Catholic Church History of the papacy Ecumenical councils Magisterium Four Marks of the Church One true church Apostolic succession Organisation Holy See Roman Curia College of Cardinals Ecumenical councils Episcopal polity Latin Chu...