13 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.