Slash Boxes

SoylentNews is people

posted by janrinok on Monday December 05, @12:17AM   Printer-friendly

The 8086 microprocessor was a groundbreaking processor introduced by Intel in 1978. It led to the x86 architecture that still dominates desktop and server computing. The 8086 chip uses microcode internally to implement its instruction set. I've been reverse-engineering the 8086 from die photos and this blog post discusses how the chip's microcode engine operated. I'm not going to discuss the contents of the microcode1 or how the microcode controls the rest of the processor here. Instead, I'll look at how the 8086 decides what microcode to run, steps through the microcode, handles jumps and calls inside the microcode, and physically stores the microcode. It was a challenge to fit the microcode onto the chip with 1978 technology, so Intel used many optimization techniques to reduce the size of the microcode.

In brief, the microcode in the 8086 consists of 512 micro-instructions, each 21 bits wide. The microcode engine has a 13-bit register that steps through the microcode, along with a 13-bit subroutine register to store the return address for microcode subroutine calls. The microcode engine is assisted by two smaller ROMs: the "Group Decode ROM" to categorize machine instructions, and the "Translation ROM" to branch to microcode subroutines for address calculation and other roles. Physically, the microcode is stored in a 128×84 array. It has a special address decoder that optimizes the storage.

Original Submission

This discussion was created by janrinok (52) for logged-in users only, but now has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 2) by coolgopher on Tuesday December 06, @01:01AM

    by coolgopher (1157) Subscriber Badge on Tuesday December 06, @01:01AM (#1281346)

    This was an interesting read! In this day and age of full stack bloat it's nice to be reminded of leaner times.

  • (Score: 3, Insightful) by janrinok on Tuesday December 06, @10:35AM (1 child)

    by janrinok (52) Subscriber Badge on Tuesday December 06, @10:35AM (#1281376) Journal

    Owl, I always enjoy reading your submissions and this one is no exception. Thank you very much.

    Although currently there are few comments, the page has received over 580 hits so it appears to have been of interest to quite a few people - who just have very little to say.

    • (Score: 1) by holeinone on Saturday December 10, @09:19PM

      by holeinone (17639) on Saturday December 10, @09:19PM (#1281952)

      Triggered by your comment I also feel the need to say "Many thanks!" to https://~owl/ [~owl]
      It's a lot to take in. Certainly an article that needs several re-reads.