Hasty Briefsbeta

Bilingual

Notes on the Pentium's microcode circuitry

12 hours ago
  • Microcode is a layer of software underneath machine instructions, implemented as micro-instructions stored in a ROM.
  • The Pentium's microcode ROM has 4608 micro-instructions, each 90 bits wide, stored in two banks with 288 rows and 720 columns each.
  • Bits are stored via the presence or absence of NMOS transistors in a grid, with transistors pulling output lines low.
  • The Microcode Address Register (MAR) holds 13-bit addresses to select rows and columns in the ROM, supporting increment, branch, and subroutine calls with up to three levels of stack.
  • Row-select drivers use optimized decoders with 6-input AND gates and 3-bit decoding to activate one of 288 rows efficiently.
  • Output circuitry includes multiplexers to select one of 16 columns per bit, followed by latches and BiCMOS drivers for amplification.
  • Testing circuitry uses linear feedback shift registers (LFSRs) to scan the ROM and compute checksums, enabling detection of single-bit errors.
  • The ROM's complexity arises from optimized layout (e.g., mirrored column groups, BiCMOS drivers) and testability features.