
Indigital electronics, adiode matrix is a two-dimensional grid of wires, withdiodes connecting at selected intersections. A single row of the diode matrix is activated at any one instant.Current flows through each diode that connects to a column. These activated columns may be used as control signals for some connected system, or may represent computer data or instructions.
A diode matrix is one technique for implementing aread-only memory. It may be used as thecontrol store ormicroprogram in many early computers. A logically equivalenttransistor matrix is still used as the control store or microprogram or 'decode ROM' in many modern microprocessors.
A diode matrix ROM was used in many computers in the 1960s and 70s, as well as electronic deskcalculators andkeyboard matrix circuits forcomputer terminals. A keyboard matrix circuit has a very similar grid of diodes, but is used differently.[1]
Themicrosequencer of many early computers, perhaps starting with theWhirlwind I, simply activated each row of the diode matrix in sequence, and after the last row was activated, started over again with the first row.
The technique ofmicroprogramming as first described byMaurice Wilkes in terms of a second diode matrix added to a diode matrix control store.[2] Later computers used a variety of alternative implementations of the control store, but eventually returned to a diode matrix or transistor matrix. A person would microprogram the control store on such early computers by manually attaching diodes to selected intersections of theword lines andbit lines. In schematic diagrams, the word lines are usually horizontal, and the bit lines are usually vertical.
The control store on someminicomputers was one or moreprogrammable logic array chips. The "blank"PLA from the chip manufacturer came with a diode matrix or transistor matrix with a diode (or transistor) at every intersection. A person would microprogram the control store on these computers by destroying the unwanted connections at selected intersections.
Some modern microprocessors andASICs use a diode matrix or transistor matrix control store. Typically a blank grid is designed with a diode (or transistor) at every intersection, and then a mask is prepared that leaves out the unwanted connections at selected intersections. Whenreverse engineering integrated circuits that include such a mask-programmed decode ROM, one of the key steps is to take photographs of that ROM with enough resolution to separate each intersection site and enough color depth to distinguish between the "connected" and "not connected" intersections.[3][4]
Since the control store is in the critical path of computer execution, a fast control store is an important part of a fast computer. For a while the control store was many times faster than program memory, allowing a long, complicated sequence of steps through the control store per instruction fetch, leading to what is now calledcomplex instruction set computing. Later techniques for fast instruction cache sped that cache up to the point that the control store was only a few times faster than the instruction cache, leading to fewer and eventually only one step through the control store per instruction fetch inreduced instruction set computing.[2]