Более двух лет назад я написал статью о принципах построения и работы ОЗУ на ферритовых сердечниках. Это не самая простая тема, но очень интересная, так как ферритовое ОЗУ и позволило ЭВМ стать действительно массовыми. В комментариях к той статье было не мало обсуждений, которые касались и ПЗУ. Причем в качестве иллюстраций читатели иногда приводили фотографии именно ПЗУ.
Статью по прежнему читают, обсуждают, задают вопросы. Но вот буквально пару дней назад в комментариях зашел довольно бурный спор с одним читателем именно о построении и работе ПЗУ на ферритовых сердечниках. Причем читатель требовал именно "науки" и "теории" не горя желанием задумываться над тем, что ему пишут в ответ. Но оставим эмоции в стороне и поговорим именно о ПЗУ. Причем далеко не только о классическом варианте.
Почему о ферритовых ПЗУ мало информации?
Действительно, если попытаться поискать подробную информацию о ферритовых ПЗУ, то результат будет довольно разочаровывающий. И причин этому несколько.
Во первых, такие ПЗУ широко использовались в ЭВМ до появления микросхем ПЗУ достаточного объема. А это было довольно давно. И развитие технологий сделало использование ферритовых ПЗУ нецелесообразным. Причем это касается любых дискретных ПЗУ, а не только ферритовых. О них не забыли, но из ВУЗовских учебников они пропали.
Во вторых, отсканированы далеко не все книги, которые когда то были изданы на бумаге. Сканировали в первую очередь те книги, которые были интересны, а ферритовые ПЗУ уже стали историей. Да и особых сложностей там нет.
В третьих, "забвению" ферритовых ПЗУ послужило то, что индуктивные дискретные компоненты являются "несколько чужеродными" элементами, к тому же не самыми простыми в изготовлении. Поэтому от них стараются отказаться, если это возможно.
Альтернативой ферритовым ПЗУ является ПЗУ на диодах. Разумеется, когда появились полупроводниковые диоды в миниатюрных корпусах их стали использовать и для замены ферритовых сердечников в ПЗУ. Но диодов для ПЗУ требуется много, поэтому диодное ПЗУ дороже ферритового, да и места занимает больше (на дискретных диодах).
Но у ферритового ПЗУ есть одно важное свойство - оно чрезвычайно устойчиво к воздействию ионизирующего излучения и ЭМИ. А это важно для авиации, космоса и, как же без этого, военных. Информация в ферритовом ПЗУ сохраняется при почти любых внешних воздействиях. Не считая механического разрушения. И мы скоро узнаем, почему.
Простота устройства и работы ферритовых ПЗУ и их вытеснение другими типами ПЗУ и стало причиной малого количества отдельных книг. Тем более, отсканированных. Действительно, в основе работы таких ПЗУ лежит просто импульсный трансформатор. А его работа изучается (изучалась) в любом курсе "Импульсные устройства".
Но обо все по порядку...
Коротко о ПЗУ в общем и целом
ПЗУ - постоянное запоминающее устройство. Это подразумевает неизменность хранимой в нем информации. Международное обозначение - ROM - Read Only Memory, память только для чтения. Но иногда ПЗУ наделяют и свойством изменения записанной информации. Такое изменение не обязательно выполняется легко, и не обязательно прямо в устройстве, где ПЗУ используется. Такие ПЗУ называют перепрограммируемыми, причем методы изменения информации могут быть разными.
Организация любого ПЗУ ни чем не отличается отличается от организации других типов внутренней памяти машины (ЭВМ). Отдельные разряды собраны в группы - ячейки памяти. Мы сегодня будем называть такие ячейки "слово". Просто для абстрагирования от частностей в виде тетрада/байт/слово/двойное слово/полуслово, и т.д. Каждое хранимое в памяти слово имеет свой адрес. Адрес не обязательно уникальный, так как ячейка может быть доступна и по нескольким адресам, но нам сегодня это не важно.
Поскольку в ПЗУ (в типовом случае) запись информации прямо в машине невозможна, мы не будем рассматривать входные информационные сигналы и их формирование. Но выходные информационные сигналы нам важны. А для превращения адреса ячейки, который процессор выставляет на шине адреса памяти, в сигнал выбора ячейки нужен дешифратор. И мы получаем такую функциональную схему ПЗУ любого типа
Давайте оставим в стороне (пока?) дешифратор DC. Массив ячеек постоянной памяти, причем любого типа, может быть организован разными способами. Включая деление на страницы/банки/кубы/модули. Выбор конкретной ячейки памяти может быть и координатным, как в ферритовом ОЗУ. Но об этом чуть позже. На иллюстрации я показал структуру лишь одной ячейки памяти, но она одинакова для всех ячеек.
Массив ячеек постоянной памяти, как и оперативной, будем называть накопителем. Давайте посмотрим, как такой накопитель можно построить. Раз информация неизменна, значит мы можем просто установить перемычки, использовать их для представления информации? Или все немного сложнее?
Жирная точка на пересечении адресной и информационных линий это перемычка. На иллюстрации показано представление с помощью перемычек информации 1001. Но давайте теперь посмотрим, что будет при необходимости построения ПЗУ с большим числом ячеек
Я показал три ячейки по 4 разряда. Можно "с удивлением" (хотя удивляться тут нечему) обнаружить, что теперь выходная информация всегда неверная и не содержит ни одного 0. Ошибочные единицы я показал красным. Для примера, показано формирование выходных сигналов для ячейки с адресом 1. Синие стрелки показывают формирование правильных информационных разрядов, а красные путь, по которому формируется ошибка.
Безусловно, это совершенно очевидная и ожидаемая ситуация, так как перемычки создают взаимозависимости между адресными и информационными линиями. Избежать возникновения взаимозависимостей можно, например, с помощью диодов. И мы получаем классическое диодное ПЗУ
Мы просто заменили перемычки диодами и все стало работать правильно. В ПЗУ на дискретных диодах так и поступают. Вот небольшой пример реального диодного ПЗУ реального дисплея РИН-609
В микросхемах ПЗУ можно установить диод в каждый разряд, а последовательно с ним установить перемычку, которая будет разрушаться при программировании. В 556 серии микросхем ПЗУ есть именно такие.
Но до появления надежных и дешевых диодов в малогабаритных корпусах тоже была потребность в ПЗУ. На ламповых диодах ПЗУ собрать можно, но это далеко не самый оптимальный вариант. Вот здесь нам на помощь и может придти самый самый обычный импульсный трансформатор.
Импульсный трансформатор
Импульсный трансформатор это трансформатор с ферромагнитным сердечником, предназначенный для передачи импульсных сигналов. Импульсный трансформатор обеспечивает не только передачу импульсов, но гальваническую развязку цепей, изменение амплитуды и полярности импульсов, согласование сопротивлений цепей, разветвление сигналов. Сердечник импульсного трансформатора может изготавливаться не только из феррита, но и из пермалоя или оксифера. Важным является малость потерь на перемагничивание. И отсутствие насыщения сердечника в штатных условиях работы.
Нам сегодня не нужно погружаться в тонкости физических процессов в трансформаторе. Интересующиеся могут найти интересующую их информацию в учебниках физики и ТОЭ (включая теорию магнитных цепей). Но мы не можем игнорировать импульсный характер сигналов, поэтому и типичный анализ работы трансформатора при гармонических сигналах нам не подходит. Нам нужна эквивалентная схема импульсного трансформатора.
На этой иллюстрации Ri - внутреннее сопротивление источника сигнала, Ls - индуктивность рассеяния трансформатора, Lm - индуктивность намагничивания трансформатора, Сп - паразитная емкость трансформатора, Rн' - приведенное к первичной обмотке сопротивление нагрузки. Рассмотрим эти параметры чуть подробнее.
Индуктивность рассеяния Ls характеризует то, что не все магнитные линии, которые создает ток в первичной обмотке, замыкаются через витки вторичной обмотки. Возникающие при этом потери можно представить как индуктивный делитель, состоящий из индуктивности рассеяния и индуктивности намагничивания. Именно это и показано на эквивалентной схеме.
Индуктивность намагничивания Lm это "почти обычная" индуктивность, но вместо магнитной проницаемости материала сердечники в формуле используется импульсная магнитная проницаемость
Импульсная магнитная проницаемость всегда меньше магнитной проницаемости материала сердечника. Дело в том, что импульсы обычно имеют одну полярность, поэтому перемагничивание магнитопровода происходит по частной петле гистерезиса. В этом отличие от работы трансформатора на гармонических сигналах.
Паразитная емкость это сумма емкости трансформатора и емкости нагрузки. Емкость трансформатора, в данном случае, динамическая, а не статическая межобмоточная. Она зависит и от коэффициента трансформации, и от способа подключения обмоток.
Не смотря на то, что эта эквивалентная схема является упрощенной, она описывается дифференциальными уравнениями третьего порядка. Поэтому разделим процесс прохождения импульса через трансформатор на отдельные этапы.
Прохождение фронта прямоугольного импульса. Фронт прямоугольного импульса имеет малую длительность. Поэтому ток через индуктивность намагничивания не успевает существенно измениться. Если до начала импульса ток был равен 0, то мы можем считать, что и после окончания фронта он равен 0. Таким образом, мы можем исключить из эквивалентной схемы индуктивность Lm.
Мы получаем цепь с двумя реактивными последовательно включенными элементами. Характер процессов в такой цепи будет определяться не только параметрами этих элементов, но и влиянием резисторов R. Пожалуй, мы сегодня не будем углубляться в математику и электротехнику. Характер переходного процесса может быть колебательным или апериодическим. На границе между этими двумя крайностями находится размытая "критическая область", в которой процесс близок к апериодическому, но небольшие колебания все таки возникают и быстро затухают.
На практике стремятся обеспечить работу импульсного трансформатора в этой критической области. При этом длительность фронта выходного импульса будет достаточно короткой, но с небольшим колебательным процессом
Прохождение вершины прямоугольного импульса. Во время длительности импульса напряжение на первичной обмотке трансформатора неизменно. Поскольку Ls<<Lm, скорость изменения токов и напряжений в цепи определяется именно Lm. С точки зрения Ls, изменение токов и напряжений будет медленным. А значит, и изменение напряжения на Ls близко к 0. То есть, мы можем исключить из эквивалентной схемы индуктивность Ls заменив ее перемычкой. Более того, поскольку паразитная емкость Сп мала, а токи и напряжения изменяются медленно, мы можем считать равным 0 ток через Сп. Таким образом, мы можем исключить их из эквивалентной схемы и Сп.
В начальный момент времени ток через индуктивность намагничивания равен 0, а напряжение на Rн' максимально и определяется соотношением сопротивлений резисторов и амплитудой импульса, так как входной ток полностью протекает через Rн'. В дальнейшем ток через Lm начинает нарастать экспоненциально, что приводит к уменьшению тока через Rн', а следовательно и к снижению напряжения на нем, так же экспоненциально.
После окончания импульса ток через Lm максимален и не может измениться скачком. Источник сигнала мы можем заменить перемычкой, поэтому ток протекает через параллельно включенные Ri и Rн'. Этот ток спадает экспоненциально.
В результате, выходное напряжение импульсного трансформатора будет иметь всем привычную и хорошо знакомую форму
Гальваническая развязка, которую обеспечивает импульсный трансформатор, для нас не важна, в данном случае. А вот то, что длительность импульса имеет определенные пределы, как раз очень важно. Входной импульс не должен быть слишком коротким, но не может быть и слишком длительным. А параметры выходного импульса зависят не только от индуктивности первичной обмотки, но и от индуктивности рассеяния, паразитной емкости, влияния нагрузки, параметров частной петли гистерезиса.
Но какое отношение все это имеет к ПЗУ? Самое прямое!
Классический вариант ПЗУ на ферритовых сердечниках
Давайте возьмем несколько ферритовых (ферромагнитных, если точнее) сердечника кольцевой или П-образной формы и намотаем на них по одной обмотке. Это будут обмотки считывания. Нам потребуется количество сердечников равное количеству разрядов хранимой информации. Кроме того, через сердечники пропустим дополнительные проводники, которые назовем адресными. Причем пропускать адресные проводники мы будем лишь через те сердечники, которые для данного адреса соответствуют единичному значению разряда. Получится примерно так, если воспользоваться нашим примером ПЗУ на диодах
Адресные проводники показаны разными цветами. Адресу 0 соответствует красный проводник, адресу 1 синий, адресу 2 зеленый. Один конец каждого адресного проводника подключен к общему проводу, как и один конец каждой обмотки считывания. Если мы сейчас в один из адресных проводников подадим импульс тока, то на обмотках чтения сердечников, через которые этот адресный проводник проходит, появится выходной импульс. На обмотках считывания сердечников, которые адресный проводник обходит, импульса не будет.
Таким образом, наличие импульса на обмотке считывания будет соответствовать хранимой в данном разряде единице, а отсутствие импульса хранимому нулю. Ферритовое ПЗУ работает только в импульсном, динамическом, режиме. Ферритовое ПЗУ в принципе не может работать в статическом режиме. И это важное отличие от ПЗУ на диодах.
Приглядитесь внимательно, У нас есть четыре импульсных трансформатора, по одному на каждый разряд хранимого в ПЗУ слова. Не смотря на то, что адресный проводник только проходит через сердечник, он является обмоткой, первичной. А обмотки считывания являются вторичными обмотками. При этом импульсные трансформаторы, на основе которых и построено ферритовое ПЗУ не являются элементами хранения информации!
Информация в таком ПЗУ хранится в виде адресных проводников. Точнее, в самом факте прохождения проводника через сердечник или обхода сердечника. Импульсные трансформаторы лишь помогаю обнаружить, что адресный проводник проходит через сердечник. Но носителями информации являются именно проводники, которые еще называют прошивочными, а не адресными.
Таким образом, классическое ферритовое ПЗУ требует лишь по одному сердечнику на каждый разряд хранимой информации, вне зависимости от количества ячеек. А вот количество адресных проводников равно количеству ячеек ПЗУ, вне зависимости от количества разрядов в хранимой информации. Поскольку медный провод обычно дешевле диодов, стоимость ферритового ПЗУ может быть (но не обязательно для устройства в целом) меньше стоимости ПЗУ на дискретных диодах.
Кроме того, мы можем "перевернуть шины с ног на голову". То есть, использовать количество сердечников равное количеству ячеек. Вместо адресных проводников будем использовать разрядные. При этом на выходе такого ПЗУ мы получим не все разряды одной ячейки, а значения выбранного разряда для всех ячеек. Такой подход применяется редко, но в некоторых ситуациях может иметь смысл.
Вот так примерно выглядит ферритовое ПЗУ
Это ПЗУ настольной инженерной 15-ВСМ-5 (и Д3-28). Я писал об этих машинах
Увы, фотография не очень наглядна, так как обходящие сердечники проводники скрыты корпусами импульсных трансформаторов. Но есть и более наглядные фотографии
Может показаться, что для построения ферритового ПЗУ требуется большое количество источников тока, по количеству ячеек. Но это не так. Мы можем не подключать к общему проводу один конец адресных проводников, а подключить к источнику тока. Причем все проводники лишь к одному источнику тока. Тогда другой конец каждого адресного проводника просто надо будет подключить к ключу, например, транзисторному.
Возможно использовать и координатную схему расположения сердечников, а адресные проводники заменить координатными. Так же, как мы рассматривали на примере ОЗУ. При этом появление импульса на выводах обмотки считывания будет зависеть не только от наличия токов в координатных проводниках, но и от направления этих токов.
Разумеется, не обязательно строить единый модуль ПЗУ. Точно так же, как в случае с ОЗУ, мы можем разбить единое ПЗУ на отдельные страницы/банки, которые затем можно собирать, например, в кубы. Управление таким ПЗУ будет более сложным, но сам принцип работы останется прежним.
Конструктивные особенности и недостатки ферритовых ПЗУ
Предположим, нам все таки надо иногда изменять хранимую в ПЗУ информацию. На первый взгляд, сделать это легко, достаточно просто удалит адресный проводник, соответствующий адресу изменяемой ячейки, и проложить новый. Но на практике это сделать не так просто. Даже найдя нужный проводник надо как то его вытащить из всей этой путаницы проводников, из всех сердечников, через которые он проходит. А проводник может быть тонким и легко рваться. Да и проложить новый проводник через сердечник, уже плотно набитые другими проводниками, не так просто. Для этого используется гибкая игла, что и стало причиной появления термина "прошивка".
Но можно вместо компактных кольцевых сердечников использовать разъемные П-образные. Это существенно облегчит как удаление старого проводника, так и прокладывание нового. Разъемные сердечники дороже, они требуют больше места, в том числе, для крепления съемной части. Но удобство изменения информации, перепрошивка, может быть важнее.
Вот фото фрагмента ферритового ПЗУ с разъемными сердечниками
Хорошо видно и конструкцию разъемных сердечников, и как проводники проходят через сердечники и обходят их. Кстати, это то самое ПЗУ из 15-ВСМ-5 и Д3-28, только в этот раз зарубежного производства. Точнее, от зарубежного аналога (или прародителя).
Количество таких перепрошивок, теоретически, не ограничено. Но это ручная работа, она не может быть выполнена самим устройством. Только человеком.
Теперь посмотрим еще раз на больше количество адресных проводников и подумаем. А ведь между этими проводниками есть емкость... А значит, импульс тока в одном проводнике может наводить помехи в соседних. Эти помехи могут проникать и в обмотки считывания. Поэтому выводы обмоток считывания обычно подключают к буферным усилителям, иногда стробируемым, которые отсекают помехи по уровню.
Кроме обхода адресным проводником сердечника, если разряд должен хранить 0, мы можем пропускать проводник через сердечник, но в обратном направлении. Таким образом мы получаем импульсы на всех обмотках считывания, но полярность этих импульсов для хранимых 0 и 1 будет разной.
Ферритовое и трансформаторное ПЗУ. И немного про Апполон
Я должен сделать небольшое признание... Рассмотренный нами принцип построения ферритовых ПЗУ действительно является классическим, но для таких ПЗУ можно встретить название "трансформаторные". В своем первоначальном варианте использовался один сердечник на один бит хранимой информации. То есть, все выглядело примерно так
Как видно, и адресные обмотки (для всех разрядов), и разрядные (для всех адресов), соединены последовательно. При этом носителем информации по прежнему являются адресные проводники. Но каждый сердечник "хранит" только один бит информации! Поэтому количество сердечников гораздо больше, чем мы рассматривали ранее. Здесь каждый сердечник тоже образует импульсный трансформатор, но единственная задача такого трансформатора - исключить взаимозависимость адресных и разрядных проводников.
Без какого либо вреда в таком ПЗУ мы можем заменить сердечники, например на дешевые стержневые. Это никак не скажется на работе ПЗУ. Более того, мы можем разместить на плате для каждого бита по две небольшие соосные катушки и наличие сердечника в паре катушек будет соответствовать хранимому единичному биту, а отсутствие нулевому. И носителем информации уже будут не проводники, а сердечники. Но это ничего принципиально не меняет.
Мы можем немного сэкономить на сердечниках, если удалим ненужные. Например, на последней иллюстрации в верхнему ряду это два средних сердечника, так как через них не проходя адресные проводники. То есть, нам нужны только сердечники для единичных бит. Но количество сердечников все равно останется большим.
Рассмотренный ранее метод "уплотнения" информации за счет пропускания через каждый сердечник множества проводников является модификацией, улучшением, первоначальной идеи. Я не считаю термин "трансформаторное ПЗУ" подходящим. Это именно ПЗУ на ферромагнитных сердечниках, обычно ферритах. И каждый сердечник в такой "уплотненной" схеме построения ПЗУ "хранит" не один, а множество бит информации. Точнее, позволяет их "добыть" из носителей информации - проводников.
Не является проблемой создание ферритового ПЗУ, в котором каждый сердечник "хранит", например, 1 Кбит, так как через него может проходить 1024 адресных проводника.
Кстати, именно по такому принципу было построено ПЗУ в бортовом компьютере миссии Апполон, фото которого не раз приводилось читателями. Вы сами можете убедиться в этом прочитав R-393 Logical Description of the AGC, Hopkins,Alonso,Blair-Smith, MIT 1963. Это описано в разделе 4, страница 4-2, Fixed memory organization.
Следует отметить, что рассмотренный нами принцип "уплотнения" информации в сердечниках не единственный, да и то рассмотренный очень упрощенно. Есть варианты построения ПЗУ на ферритовых сердечниках с прямоугольной петлей гистерезиса, есть ПЗУ на сердечниках с несколькими отверстиями, и много других.
Заключение
Сегодня мы кратко и упрощенно рассмотрели принципы, лежащие в основе построения и работы ПЗУ на ферромагнитных сердечниках. И первоначальный вариант, с использование одного сердечника на бит, и самый распространенный, когда один сердечник "хранит" множество бит. При этом даже не касались построения разных вариантов дешифраторов и буферных усилителей считывания. А это тоже интересная тема, так как эти элементы ПЗУ отлично можно построить на ФДЯ и ФТЯ, да и в целом на регенеративных каскадах с трансформаторами.
Ферритовые ПЗУ достаточно просты, поэтому их не часто рассматривали отдельно. И можно считать, что они остались в прошлом. Но это часть истории той техники и технологии, которые окружают нас сегодня.
Если данная тема интересна читателям, то можно будет рассмотреть и более сложные устройства на биаксах и трансфлюксорах, которые фактически являются ОЗУ, но обладают частью свойств ПЗУ.
Ну а тому читателю, с которого и началась статья, который просто ленился прочитать данные ему книги (названия бумажных книг) и несколько ссылок, ленился хоть немного задуматься и проанализировать прочитанное, требуя "науки и теории", хочется пожелать все таки использовать голову по прямому назначению, а не разбрасываться обвинениями. Ну не люблю я громогласных ленивых дилетантов, которые обвиняют всех вокруг, кроме себя любимых... Профессиональная деформация...