Ask HN: Vertical and Horizontal Microinstruction Format?

1 shivajikobardan 0 9/10/2025, 8:59:28 AM
The below answer has been provided with claude.ai. I am just trying to verify whether this is correct or not.

The exact difference between horizontal and vertical microinstructions lies in how the control signals are encoded within the microinstruction word:

*Horizontal Microinstructions:* - Each bit in the microinstruction directly corresponds to a specific control signal - If you have 20 control signals, you need 20 bits in the microinstruction - Each bit position has a dedicated meaning (e.g., bit 0 = ALU enable, bit 1 = register write, bit 2 = memory read, etc.) - The microinstruction is essentially a bit vector where each bit directly controls one hardware component - Example: `101001010...` where each position directly turns on/off a specific control line

*Vertical Microinstructions:* - Control signals are encoded using fewer bits through encoding schemes - Multiple control signals are grouped together and represented by encoded fields - Uses decoders to convert the encoded fields back to individual control signals - Each field in the microinstruction represents a group of mutually exclusive or related operations - Example: Instead of having 8 separate bits for 8 different ALU operations, you use 3 bits to encode which of the 8 operations to perform

*Formation Example:* Say you need to control: ALU operation (8 possibilities), Register selection (4 registers), Memory operation (read/write/none)

- *Horizontal*: Need 8 + 4 + 2 = 14 bits minimum (one bit per control signal) - *Vertical*: Need 3 + 2 + 2 = 7 bits (encoded fields: 3 bits for ALU ops, 2 bits for register, 2 bits for memory)

The key formation difference is: horizontal uses direct bit-to-control mapping, while vertical uses encoded fields that require decoding hardware.

Comments (0)

No comments yet