Диодная матрица представляет собой двумерную сетку проводов: в каждом «пересечении», где один ряд пересекается с другим, либо имеется соединяющий их диод , либо провода изолированы друг от друга.
Это один из популярных методов реализации памяти только для чтения . Диодная матрица используется в качестве управляющего хранилища или микропрограммы во многих ранних компьютерах. Логически эквивалентная транзисторная матрица все еще используется в качестве управляющего хранилища или микропрограммы или «декодирующего ПЗУ» во многих современных микропроцессорах.
В любой момент времени активируется одна строка диодной матрицы (или транзисторной матрицы). Заряд протекает через каждый диод, подключенный к этой строке. Это активирует столбец, соответствующий каждой строке. Единственными активированными управляющими сигналами в этот момент были те, чей провод соответствующего столбца был подключен к диоду к этой строке.
Диодная матрица ПЗУ использовалась во многих компьютерах в 1960-х и 70-х годах, а также в электронных настольных калькуляторах и схемах клавиатурных матриц для компьютерных терминалов . Схема клавиатурной матрицы имеет очень похожую сетку диодов, но используется по-другому. [1]
Микросеквенсор многих ранних компьютеров, возможно, начиная с Whirlwind I , просто активировал каждую строку диодной матрицы последовательно, а после активации последней строки начинал снова с первой строки.
Метод микропрограммирования, впервые описанный Морисом Уилксом в терминах второй диодной матрицы, добавленной к управляющей памяти диодной матрицы. [2] Более поздние компьютеры использовали множество альтернативных реализаций управляющей памяти, но в конечном итоге вернулись к диодной матрице или транзисторной матрице. Человек микропрограммировал управляющую память на таких ранних компьютерах, вручную присоединяя диоды к выбранным пересечениям линий слов и битовых линий. На принципиальных схемах линии слов обычно горизонтальные, а линии битовых линий — вертикальные.
Управляющая память на некоторых миникомпьютерах представляла собой одну или несколько программируемых логических матриц. «Пустая» PLA от производителя чипов поставлялась с диодной матрицей или транзисторной матрицей с диодом (или транзистором) на каждом пересечении. Человек микропрограммировал управляющую память на этих компьютерах, уничтожая нежелательные соединения на выбранных пересечениях.
Некоторые современные микропроцессоры и ASIC используют диодную матрицу или транзисторную матрицу управления хранилищем. Обычно пустая сетка проектируется с диодом (или транзистором) на каждом пересечении, а затем подготавливается маска, которая исключает нежелательные соединения на выбранных пересечениях. При обратном проектировании интегральных схем , которые включают такую запрограммированную по маске декодирующую ПЗУ, одним из ключевых шагов является фотографирование этого ПЗУ с достаточным разрешением, чтобы отделить каждое место пересечения, и достаточной глубиной цвета, чтобы различать «подключенные» и «неподключенные» пересечения. [3] [4]
Поскольку хранилище управления находится на критическом пути выполнения компьютера, быстрое хранилище управления является важной частью быстрого компьютера. Некоторое время хранилище управления было во много раз быстрее, чем память программ, что позволяло выполнять длинную, сложную последовательность шагов через хранилище управления за одну выборку инструкций, что привело к тому, что сейчас называется сложным набором вычислений . Более поздние методы для быстрого кэша инструкций ускорили этот кэш до такой степени, что хранилище управления стало всего в несколько раз быстрее кэша инструкций, что привело к меньшему количеству и в конечном итоге только одному шагу через хранилище управления за одну выборку инструкций в сокращенном наборе вычислений . [2]