Email or username:

Password:

Forgot your password?
Ken Shirriff

The Intel 8086 processor (1978) started the PC era and most desktop computers still use the x86 architecture. Its instruction set is complicated with a variety of formats. This made decoding each instruction a challenge. The Group Decode ROM was a key part. 🧵

15 comments
Ken Shirriff

Most 8086 instructions are implemented in microcode, a level of instructions below the familiar machine instructions. But before microcode can run, something called the Group Decode ROM categorizes instructions according to their structure, shown as colors below.

Ken Shirriff

The Group Decode ROM generates 15 signals indicating how to decode the instruction. For instance, can it run without microcode? Does it have bits specifying the argument size? Is it followed by an addressing (Mod R/M) byte? Then the processor executes the instruction.

Ken Shirriff

The Group Decode ROM takes 9 inputs (8 instruction bits + interrupt) and generates 15 outputs. It is structured like a Programmable Logic Array with two compact grids of NOR gates, making it about 7 times as dense as a regular ROM.

Ken Shirriff

This closeup of the 8086's die with the metal removed shows the underlying silicon and the polysilicon wiring. The "doping" pattern of the silicon controls whether or not each spot in the grid has a transistor, and thus specifies the data in the ROM.

Ken Shirriff

A big computer architecture debate of the 1980s was RISC vs CISC, arguing that building Reduced Instruction Set Computers was better than Complex Instruction Set Computers like the 8086. Most instruction sets since then are much easier to decode than x86, but x86 keeps going.

Ken Shirriff

I also have an interactive page to show which 8086 instructions generate particular Group Decode ROM outputs: righto.com/8086/groupRom.html

Wraithan

@kenshirriff the link goes to a 404 right now, maybe forgot to publish?

Roger

@kenshirriff I think the RISC v. CISC discussion needs to revisited with a benefit of historical hindsight. There’s a lot to learned about what makes architectures successful.

Ken Shirriff

@RogerShepherd Seriously, I think that technical merit has very little to do with the success of a computer architecture. Business factors and luck are much more important.

Brian Swetland

@kenshirriff I keep hoping it might still die out in my lifetime! Apart from archeology, I remain not a fan of its limited set of registers with various strange restrictions on usage, and absurd 1-15 byte instruction encodings. It brings me no joy. I mean, under the hood, Intel processors are translating this mess to something completely different and have been since, what, the Pentium era?

lopta

@kenshirriff Still a firm believer in RISC. I think @imorital was the first person to explain it to me.

David Gerhart

@kenshirriff

Fond memories... When Al Gore invented the internet? I was there.

Consumed the MS DOS 1.1 desk reference cover to cover. Boot stacks for the University coax ethernet. Ugh.

I blew tuition $ on an 8087 (had to get the math chip.)

Fortran! The code and prob data were uploaded by 56kbps modem to the CP6 for calculation. Sometimes those jobs took the whole weekend.

Switched to C.

Ran a Grad student collaborative BBS. 4 telephone lines served about 70 peers.

#history #geek

Johnny Cache

@kenshirriff
Every time I read one of your pieces I have to re-assess how much of single chip one individual can hold in their head. 😂

Go Up