Совершается неизбежное: чем глубже Незнайкин изучает электронику, тем больше он увлекается. Он понял, что электронные схемы производят сложение двоичных чисел. Теперь он настолько подготовлен продолжать свое знакомство с вычислительной техникой, что уже может приступить к изучению электронного умножителя. Но прежде чем его интеллектуальные способности разрядятся, как конденсатор после вспышки лазера, ему необходимо еще понять, как работает запоминающее устройство на ферритовых тороидальных сердечниках.
Незнайкин — Я нашел решение для построения сумматора: мы не испытаем никаких особых трудностей, если для каждой подлежащей сложению цифры возьмем схему, приведенную на рис. 129.
Любознайкин — Да, такое решение прекрасно подходит для сложения единиц двух чисел. Но проблема возникает уже при сложении двоек: иногда может понадобиться необходимость сложить три цифры (цифру двоек первого числа, цифру двоек второго числа и переносимую единицу, полученную при сложении единиц).
Н. — Я предполагаю, что тогда нам понадобится слегка изменить изображенную на рис. 129 схему — вместо ее двух входов сделать три.
Л. — На практике для сложения двоек можно просто взять два изображенных на рис. 129 полусумматора. Для упрощения рисунка я обозначил полусумматор с рис. 129 (который неоднократно используется на рис. 131 и последующих) прямоугольниками А, каждый из которых имеет два выхода: выход S для полученной суммы Σ и выход Р для переносимой в следующий разряд единицы. Как ты видишь, полусумматор A1 получает цифру единиц первого числа (а1) и цифру единиц второго числа (а2). На выходе элемента S1 мы получаем цифру суммы единиц, которую я обозначил Σa. Ты также видишь, что для сложения цифр двоек b наших чисел, обозначенных b1 и Ь2, мы используем элемент А2. Полученная на выходе элемента S2 сумма поступает на один из входов аналогичного А3, на другой вход поступает переносимая единица с А1. На выходе S3 элемента А3 мы получаем цифру суммы двоек Σb.
Рис. 131. Каскады единиц и двоек параллельного двоичного сумматора.
Н. — Я, кажется, понял. Но скажи, пожалуйста, откуда выйдет переносимая в следующий разряд единица: с элемента А2 или с элемента А3, или с обоих сразу?
Л. — Уж, конечно, не с обоих сразу. В самом деле, для получения переносимой в следующий разряд единицы каждое из двух слагаемых, а именно b1 и Ь2, должно быть равно 1. В этом случае сумма на выходе элемента А2 будет равна нулю. Тогда элемент А3, получив на один из входов нуль, может дать на выходе только подлежащую записи цифру, но не переносимую в следующий разряд единицу.
Н. — Я убедился, что подлежащая переносу в следующий разряд единица не может быть одновременно на выходе элемента А2 и на выходе элемента А3. Но тогда как передать на сумматор четверок нашу переносимую единицу, которая может быть на выходе Р элемента А2 или на выходе Р элемента А3?
Л. — В своем вопросе, Незнайкин, ты использовал то самое слово, которое служит ответом. К сумматору четверок, состоящему из двух элементов А, мы подключим выход Р элемента А2 или выход Р элемента А3 с помощью элемента ИЛИ.
На рис. 132 я изобразил для тебя устройство последующего звена сумматора. Все последующие каскады, начиная с каскада четверок (с), устроены совершенно одинаково. Как ты видишь, параллельный сумматор не очень прост, но назвать его очень сложным все же нельзя.
Рис. 132. Каскад четверок того же сумматора.
Н. — Что же тогда можно назвать сложным? Да меня бросает в дрожь, как только я вспомню, что каждый из прямоугольников, скромно названных тобой буквой А, представляет собой схему с рис. 129, в которой каждый квадратик обозначает самостоятельную схему, состоящую из нескольких транзисторов, диодов и резисторов.
Л. — Не волнуйся, Незнайкин. Системы для выполнения арифметических вычислений всегда состоят из большого количества одинаковых и относительно простых устройств, которые в свою очередь распадаются на еще более простые узлы. Но как бы то ни было, сумматор, структурная схема которого изображена на рис. 131 и 132, способен мгновенно выдать сумму двух «параллельных» чисел, поданных одно за другим на его входы.
Н. — А если мы захотим сложить числа, представленные в последовательной форме?
Л. — В этом случае следует взять аналогичное устройство, используя только два элемента А, один элемент ИЛИ для выдачи переносимых в следующий разряд единиц и одну запоминающую схему, служащую для приема переносимых из предыдущего разряда единиц, например из разряда двоек в каскаде сложения четверок. Конструкция этого устройства относительно проста, но ее описание отвлекло бы нас от основной темы. Необходимо отметить, что последовательный сумматор состоит из меньшего количества деталей, но он обладает серьезным недостатком — необходимостью запоминать выходящее последовательное число. А в сумматоре, изображенном на рис. 131 и 132, ответ выдается незамедлительно (не требуется ждать, пока пройдут все цифры последовательного числа) и поступает на выход сразу же после подачи на входы слагаемых параллельных чисел.
Н. — Хорошо, теперь я более или менее умею складывать. Но скажи, пожалуйста, как производят вычитание?
Л. — Обычно проблему обходят. Предположи, что нам нужно из числа А вычесть число В. Для начала к А прибавляем одну единицу, а затем прибавляют противоположное В число (его также называют дополнением к В) и при этом сложении не учитывают переноса.
Н. — Что ты называешь противоположным В числом?
Л. — Очень просто, это число, которое получается из числа В, если все его нули заменить единицами, а все его единицы нулями. Число В меньше А, и поэтому слева к нему нужно дописать несколько цифр. При преобразовании числа В в противоположное ему число все нули превращаются в единицы. Возьмем для большей наглядности числовой пример. Предположим, что А равно 101 101, (т. е. 45), а В равно 1011.
Н. — Иначе говоря, одиннадцати.
Л. — Браво, Незнайкин. Ты очень хорошо усвоил двоичную систему счисления. Следовательно, число В мы должны записать в следующем виде:
001 011,
чтобы оно, как и число А, состояло из шести знаков. В результате преобразования его в противоположное ему число получаем:
110 100.
А теперь позволь мне, Незнайкин, задать тебе один вопрос: что мы получим, если это противоположное число прибавим к числу В?
Н. — Я думаю, что это сложение не представляет труда везде, где в одном из чисел стоит 1, в другом числе стоит нуль. Поэтому сумма этих двух чисел будет равна шестизначному числу, где все цифры 1, т. е. мы получим 111111.
Л. — Браво, совершенно верно! А теперь прибавь к полученному результату одну единицу.
Н. — Хорошо, если я прибавлю эту единицу, то сумма единиц даст нам нуль. Я переношу 1 в следующий разряд, прибавив ее к имеющейся здесь 1, я должен записать нуль на месте двоек и запомнить 1… Хм, очень любопытно, в итоге я получу 1000000.
Л. — Правильно. Но теперь в твоем числе семь знаков. Если пренебречь последним переносом, у нас останется лишь нуль. Как ты видишь, в результате сложения противоположного В числа и единицы даст нам нечто эквивалентное — В. Следовательно, для получения нужного результата мне достаточно прибавить это число к числу А. Операция имеет следующий вид:
Н. — Я вижу, что в полученном результате слева стоит единица в скобках. Это несомненно появилось вследствие того, что ты не хочешь учитывать последний перенос.
Л. — Совершенно верно. Если теперь прибавить еще одну единицу, то в результате получим 100010. Преобразовав двоичное число в десятичное, получим 34, которое точно соответствует разности 45 и 11.
Н. — Должен признаться, что, не прибегая к двоичной системе счисления, я получил бы верный результат значительно быстрее!
Л. — Ты, может быть. Но электронные машины считают в двоичной системе счисления быстрее, чем в десятичной, даже если учитывать время, необходимое для преобразования.
Н. — Система автоматического счета положительно очень забавна. Не можешь ли ты объяснить мне, как производят умножение?
Л. — На этот раз ты проявляешь исключительную смелость. Схема устройства в самом деле довольно сложная.
Для начала я покажу тебе, как выглядит умножение двоичных чисел по правилам двоичной арифметики. Предположим, что нам нужно перемножить множимое 11010 (или 26) и множитель, равный 13…
Н. — Иначе говоря, 1101.
Л. — О! Ты действительно очень здорово преобразуешь десятичные числа в двоичные. Как ты видишь, наш множитель состоит из следующих слагаемых:
одна единица;
нуль двоек;
одна двойка в квадрате;
одна двойка в кубе.
Следовательно, для получения произведения, мы должны сложить следующие слагаемые:
единица, умноженная на множимое;
нуль, умноженный на это множимое, умноженное на два (иначе говоря, на множимое, к которому справа приписан нуль — 110100);
единица, умноженная на множимое, умноженное на четыре (иначе говоря на множимое, к которому справа приписали два нуля — 1101000);
единица, умноженная на множимое, умноженное на восемь (иначе говоря, на множимое, к которому справа приписали три дополнительных нуля — 11010000).
Следовательно, всю операцию умножения мы можем записать в следующем виде:
Н. — Теперь, когда я достаточно привык к двоичной системе счисления, твое умножение мне в точности напоминает операцию умножения, которую мне столько раз приходилось выполнять в десятичной системе счисления. Но больше всего меня смущает сложение частичных произведений. Я подозреваю, что выполнить эту операцию с помощью электронных схем окажется ужасно трудно.
Л. — Нет, сложность удается устранить благодаря широкому использованию сдвигающих регистров, о которых ты только что так презрительно отозвался. Вспомни, что эти схемы могут продвигать на один знак записанное число, т. е. умножать его на 2. Для этого в приведенной на рис. 130 схеме достаточно подать управляющий импульс на линию Z. Я полагаю, что теперь ты достаточно натренирован, чтобы смело приступить к ознакомлению с полной схемой умножителя, которую я изобразил на рис. 133. Множимое число мы записали на сдвигающем регистре СР1. Множимое расположено так, что справа находятся единица (а), а влево от них места занимают двойки (b), четверки (с), восьмерки (d) и т. д. Управляющий сигнал, поступающий в линию Z1, продвигает влево число, записанное на сдвигающем регистре CP1.
Рис. 133. Полная схема двоичного умножителя, в котором используются три сдвигающих регистра и генератор хронирующих импульсов. Буквой D обозначен элемент задержки импульсов.
Множитель записан на сдвигающем регистре СР2. На этот раз единицы мы разместили на самом левом крае, а вправо от них по порядку записали двойки и т. д. Поступающий в линию Z2 управляющий сигнал сдвигает записанное число (множитель) тоже влево. Сумма записывается на третьем сдвигающем регистре СР3, который работает только Как сумматор. Сдвигающие регистры СР1 и СР2 имеют достаточное количество входов и выходов, чтобы операцию можно было выполнить полностью.
Расположенный справа маленький прямоугольник обозначает генератор синхроимпульсов (или часы). Он задает ритм выполнения операции.
Рассмотрим, что происходит при приходе первого тактового импульса. Он может пройти через элемент И, обозначенный буквой G1, потому что цифра единиц записанного на сдвигающем регистре СР2 числа представляет собой 1. Состояние регистров СР1 и СР2 к моменту прихода первого тактового импульса я показал для тебя на схеме в скобках у выходов этих регистров. Здесь я воспользовался только что рассмотренным нами примером умножения двоичных чисел. В этих условиях первый импульс пройдет через элемент G1. Он поступит на все элементы g, расположенные между регистрами СР1 и СР3 и пройдет через те из этих элементов, которые на второй вход получают с регистра СР1 сигнал о наличии в соответствующем звене цифры 1…
Н. — Это становится ужасно сложно, и я ровным счетом ничего не понимаю!
Л. — Тогда рассмотрим более подробно. Как ты видишь, на выходе а (единицы) регистра СР1 мы имеем нуль, а на выходе b (двойки) — цифру 1, на выходе с (четверки) — нуль, а на выходах d и e (соответственно восьмерки и шестнадцатки) по цифре 1.
Первоначально на выходе а (единицы) регистра СР2 находится цифра 1. Следовательно, первый тактовый импульс пройдет через элемент И, обозначенный буквой G1. Отсюда он придет на правые входы всех других элементов И, обозначенных буквами q1, g2….g6. В связи с наличием записанного на регистре СР1 числа тактовый импульс не пройдет на выход элемента g1, пройдет на выход g2, не пройдет на выход g3 и пройдет на выходы элементов g4 и g5. Надеюсь, на этот раз ты меня понял?
Н. — Это ужасно сложно, но, призвав на помощь все мои интеллектуальные ресурсы, я сумел более или менее понять.
Л. — Ты убедишься, что дальнейшее не сложнее того, в чем тебе удалось разобраться. Как ты видишь, первый тактовый импульс запишет на сдвигающем регистре СР3 множимое без каких бы то ни было изменений. После окончания этого импульса элемент задержки D (время задержки которого меньше интервала между двумя тактовыми импульсами) посылает сдвигающий импульс через линию Z1 на регистр СР1 через линию Z2 на регистр СР2. От этого импульса записанное на регистре СР1 число сдвигается на один разряд влево, иначе говоря, теперь на регистре записано число 110100, с которым мы уже встречались. Число, записанное на регистре СР2, тоже смещается на один разряд влево, иначе говоря, цифра двоек (нуль) теперь подается на верхний вход элемента G1.
Следовательно, второй тактовый импульс не пройдет через элемент G1, потому что поданная на верхний вход элемента цифра двоек числа-множителя представляет собой нуль. Иначе говоря, произведение множимого на два не передается на сдвигающий регистр СР3.
Второй тактовый импульс вновь заставит работать элемент задержки D; задержанный импульс через линию Z1 поступит на регистр СР1 и через линию Z2 — на регистр СР2. Этот импульс еще на одну цифру сдвинет влево число, записанное на регистре СР1, которое превратится в 1 101 000, т. е. в произведение множимого на 4. Одновременно и множитель, записанный на регистре СР2, сдвинется на один разряд влево, в результате чего теперь на верхний вход G1 подается цифра четверок, а именно 1.
Следовательно, третий тактовый импульс пройдет через G1, а затем пройдет и через те элементы g, которые получают с выходов регистра СР1 сигналы «1»; таким образом, этот импульс вызовет передачу на регистр СР3 числа, представляющего собой произведение множимого на 4 (множимое, сдвинутое влево на две цифры).
Н. — Но тогда это создает на регистре СР3 ужасную смесь!
Л. — Совсем нет. Разве ты забыл, что сдвигающий регистр может производить сложение двух параллельных чисел? Для получения суммы достаточно эти числа одно за другим подать на входе регистра.
Н. — Но ты мне объяснял, что для выполнения операции сложения сдвигающему регистру нужно очень много времени…
Л. — Ничего нельзя преувеличивать. Сдвигающий регистр может произвести сложение за время, равное сумме задержек всех входящих в него элементов задержки. Операция может занять всего лишь несколько микросекунд. Во всяком случае мы представим ему необходимое время; нужно сделать так, чтобы тактовые импульсы не очень быстро следовали один за другим.
После прохождения третьего импульса задержанный элементом D импульс вновь вызывает смещение на один разряд влево множимого, записанного на регистре CP1, и множителя — на регистре СР2. Теперь на регистре CP1 мы имеем множимое с приписанными справа тремя нулями (т. е. произведение множимого на восемь). С регистра СР2 на верхний вход элемента G1 теперь подается цифра восьмерок — это 1.
Четвертый тактовый импульс может пройти через G1 потому что цифра восьмерок числа-множителя представляет собой 1; проходя через соответствующие элементы g, тактовый импульс запишет на сдвигающем регистре СР3 произведение множимого на восемь. Регистр СР3 произведет последнее сложение. Полученная сумма и есть окончательный результат производимой операции умножения.
Н. — Теперь нам, по-видимому, следует принять меры, чтобы остановить систему, выдающую тактовые импульсы?
Л. — В этом нет необходимости. Не забывай, что после передачи по линии Z2 с определенной задержкой четвертого импульса регистр СР2 полностью «опорожнен». Последующие импульсы, если они и будут, не смогут пройти через G1, потому что на его верхнем входе всегда будет сигнал нуля.
Н. — Я напрасно любовался двоичной счетной техникой; на мой взгляд, этот умножитель просто кошмарный сон больного специалиста по электронике!
Л. — Я полностью согласен с тобою, что, только проявив максимум внимания, можно проследить за работой умножителя. Поэтому я освобождаю тебя от изучения делителя, который отличается еще большей сложностью и который действует как бы наощупь, подбирая результат методом вычитания.
Н. — Мне не хотелось бы тебя огорчать, Любознайкин, но, по правде говоря, эти цифровые вычислительные машины создают у меня такое впечатление, как если бы водородной бомбой захотели убить одну муху. Ты напихал в свою машину чудовищное количество транзисторов, диодов и других компонентов лишь для того, чтобы умножить 26 на 13! Вот уж действительно колоссальные средства для достижения ничтожного результата!
Л. — Ты сразу указал на очень важный вопрос возможностей использования цифровых вычислительных машин. Добавляя к изображенной на рис. 133 схеме умножителя дополнительные каскады, т. е. удлиняя сдвигающие регистры и увеличивая число других элементов, можно наращивать возможности умножителя.
Н. — Согласен, но одновременно ты увеличишь и его сложность.
Л. — Совершенно верно, но ты не заметил одной особенности; каждый раз, когда я прибавляю один «ломтик» к сдвигающим регистрам и один элемент g, устройство приобретает способность работать с числами на один знак длиннее, т. е. с числами в 2 раза большими; иначе говоря, добавляя один каскад, я удваиваю возможности машины. Поэтому цифровая вычислительная машина, катастрофически разорительная при работе с числами, состоящими из 4 или 5 знаков, становится очень выгодной при работе с числами, состоящими из 20 или 30 знаков. Так, например, двоичному числу из 30 знаков соответствуют десятичные числа порядка миллиарда, а результат умножения получается исключительно быстро. Короче говоря, цифровые вычислительные машины в основном предназначены для получения высокой точности при действиях с числами, состоящими из большого количества знаков.
Н. — Если я правильно понял, ты хочешь сказать, что возможности машины растут по закону геометрической прогрессии, а количество ее элементов увеличивается по закону арифметической прогрессии?
Л. — О боже! Хороший мне урок! Полагая, что ты всегда с трудом понимаешь мои объяснения, я на этот раз слишком упростил свой язык. Ты совершенно прав.
Н. — Но объясни мне, пожалуйста, почему ты говорил мне о высокой точности, я бы скорее сказал о больших числах, так как двоичные числа не имеют дробей.
Л. — Первый раз слышу! Ты можешь свободно написать двоичное число с запятой и с цифрами после этой запятой. Так, например, число 11,011 означает 3 целых (одна 2 + одна 1), а справа от запятой мы видим нуль, означающий, что дробная часть числа не содержит половины, второй после запятой стоит цифра 1, означающая наличие четверти, и следующая цифра 1 показывает, что имеется еще одна восьмая. Иначе говоря, расположенная справа от запятой часть числа означает следующее: нуль половин + одна четверть одна восьмая, т. е. три восьмых. Как ты видишь, здесь, как и в десятичной системе счисления, можно говорить о дробной части числа, отделяемой от остальной части числа запятой.
Н. — Вот система счисления, которая должна особенно понравиться англичанам. Традиционный английский дюйм легко делится на половинки, четверти, восьмые и т. д. При такой системе счисления относительно просто говорить о 17/64 дюйма.
Л. — Признаюсь, что это никогда не приходило мне в голову. В самом деле можно было бы подумать, что двоичную систему обозначения дробей придумали, чтобы доставить удовольствие тем, кто пользуется этими замысловатыми дюймами и их невероятными долями. А теперь, чтобы у тебя сложилось общее представление о цифровых вычислительных машинах, нам стоит сказать несколько слов о системах памяти.
Н. — Что за любопытное устройство? Для чего оно служит?
Л. — Запоминающие устройства в вычислительных машинах выполняют ту самую роль, что и бумага, которой мы пользуемся при выполнении расчетов. Во время работы часто приходится записывать промежуточные результаты, чтобы продолжать проводимое вычисление или использовать их позднее. В вычислительной машине благодаря использованию двоичной системы счисления нам нужно лишь зафиксировать в интересующих нас каналах наличие или отсутствие сигнала, что соответствует нулям или цифрам 1. Необходимо сделать так, чтобы результат операции (или данное в условии число) можно было записать.
Н. — Но об этом ты мне уже говорил. Эту задачу можно очень хорошо выполнить с помощью сдвигающего регистра.
Л. — Совершенно верно; сдвигающий регистр содержит триггеры — они могут использоваться в запоминающей системе. В зависимости от состояния, в котором они находятся (опрокинутый триггер или в состоянии покоя), сигналы, даваемые ими, могут соответственно представлять цифры 1 или нули.
Н. — Так, значит в качестве запоминающего устройства мы воспользуемся сдвигающими регистрами?
Л. — Иногда так и делают, но в большинстве случаев такое решение оказалось бы ненужной роскошью. Вполне достаточно простых триггеров. На один из их входов можно подавать под- лежащие запоминанию импульсы, получившие такой импульс триггеры переключатся и останутся в нем до тех пор, пока их не вернут в исходное состояние, т. е. «сбросят на нуль».
Но я хочу рассказать тебе в нескольких словах о более простых запоминающих устройствах. Существует весьма интересный класс запоминающих систем, в которых используются маленькие кольца из ферритов (так называют материалы, состоящие из железа, кислорода и некоторых металлов, которые изготовляются наподобие керамики).
Н. — Ну вот теперь-то я, наконец, услышу объяснение загадочных «тороидов с прямоугольной петлей», о которых я часто слышал, но так толком и не понял, что это такое.
Л. — Именно о них и пойдет у нас речь. Можно сделать ферриты, способные сохранять намагниченность в том или другом направлении при воздействии на них магнитным полем достаточной напряженности.
Предположим, что мы взяли маленькое кольцо, которое я изобразил для тебя на рис. 134…
Рис. 134. Ферритовое кольцо, служащее элементом запоминающего устройства благодаря своей способности намагничиваться в одну или в другую сторону.
Н. — Хм, если у тебя нет с собой лупы, тебе придется немало потрудиться, чтобы рассмотреть или найти это кольцо!
Л. — В этом-то и заключается одно из важнейших достоинств системы; малые размеры кольца позволяют сделать запоминающие устройства, содержащие в ограниченном объеме огромное количество элементов. Продернем через отверстие маленького кольца провод и пропустим по нему ток. Если ток превышает некоторое значение (например для нашего кольца 0,7 а), вся система оказывается намагниченной в определенном направлении; при этом силовые линии магнитного поля замыкаются в кольце.
Н. — Значит ли это, что наше кольцо превращается в своеобразный магнит?
Л. — Нет, оно не обладает никаким внешним магнитным полем, так как силовые линии замыкаются внутри феррита. Но мы располагаем средством, позволяющим узнать, в каком направлении намагничено кольцо. Представь себе, что кольцо было намагничено током больше 0,7 а, протекающим по проводу в определенном направлении, а после этого мы посылаем по этому же проводу ток больше 0,7 а, но в другом направлении — кольцо перемагнитится в другую сторону.
Н. — Я охотно тебе верю, но должен признать, что в моих знаниях ничего не прибавилось — твое кольцо, как и раньше, не обладает внешним магнитным полем.
Л. — Согласен, но представь себе, что мы пропустили через кольцо второй провод. Он станет своеобразной одновитковой вторичной обмоткой трансформатора, в котором другой провод служит первичной обмоткой, а ферритовое кольцо играет роль сердечника. При изменении направления намагниченности сердечника на втором проводе наводится напряжение. Таким образом, мы располагаем средством, позволяющим узнать, изменилось или нет направление намагниченности сердечника.
Представь себе десять колец подобных только что описанному. Через каждое кольцо пропущен отдельный провод, который мы назовем обмоткой записи. Кроме того, имеется еще один провод, проходящим через все кольца, который мы назовем обмоткой считывания (рис. 135).
Рис. 135. Запоминающее устройство на магнитных тороидальных сердечниках, в каждом из которых проходят провод записи и запроса (вертикальный) и провод считывания.
Для начала переключим всю систему в состояние, соответствующее нулю; для этого пошлем во все десять вертикальных проводов по направлению сверху вниз токи больше 0,7 а. Такое действие называют стиранием информации в запоминающем устройстве. А теперь по проводам, проходящим через кольца, где нам нужно записать единицы, пошлем снизу вверх токи больше 0,7 а. Соответствующие кольца перемагничиваются.
Теперь для запроса запоминающего устройства нам нужно поочередно послать токи больше 0,7 а по всем десяти вертикальным проводам по направлению сверху вниз. Те из колец, которые при записи цифр получили ток снизу вверх, перемагничиваются и тем самым наводят напряжение в обмотке считывания. Как ты видишь, таким образом нам удалось сделать запоминающее устройство.
Н. — Это-то я вижу, но два обстоятельства вызывают у меня чувство сожаления: во-первых, при считывании информации ты вынужден стирать имеющуюся запись и, во-вторых, твоя система из колец, пронизанных проводами, число которых соответствует количеству записываемых данных, представляется мне несколько сложной.
Л. — Ты совершенно правильно заметил, что один из недостатков системы заключается в разрушении записи при считывании. Можно предусмотреть специальные устройства, которые сразу же после считывания, восстанавливают намагниченность тороидальных сердечников, соответствующую записи единицы. Такие устройства, естественно, усложняют систему, но они получили широкое распространение.
Необходимо отметить, что ферриты позволяют создать запоминающее устройство без стирания записи в процессе считывания. Примером может служить запоминающее устройство на ферритовой пластине с большим количеством отверстий, но я не стану его подробно описывать. Я предпочитаю уделить большее внимание твоему вопросу относительно сложности системы на тороидальных сердечниках. Систему можно значительно улучшить, если для записи единицы на тороидальном сердечнике использовать не один, а два провода. В каждый из этих проводов мы пошлем ток 0,4 а. Тогда запись будет производиться только в том случае, если ток протекает одновременно по двум проводам; наличие тока только в одном из проводов никак не скажется на состоянии сердечника.
Н. — Одним словом, получилась своеобразная схема И.
Л. — Совершенно верно. Эта система интересна тем, что позволяет вести запись по строкам и по колонкам. Посмотри на рис. 136, я расположил 16 тороидальных сердечников в точках пересечения четырех колонок (столбцов) К1…, К4 и четырех строк C1…., С4. Провод считывания пронизывает все кольца; на рисунке он показан пунктирной линией. Для записи единицы в сердечнике, расположенном на пересечении третьей колонки и второй строки, нужно послать ток 0,4 а по проводу К3 сверху вниз и по проводу С2 слева направо. Только интересующий нас сердечник получит эквивалент тока 0,8 а и соответствующим образом изменит свое магнитное состояние. Когда нам понадобится прочитать имеющуюся в этом сердечнике запись, мы пошлем токи запроса 0,4 а по проводу К3 снизу вверх и по проводу С2 справа налево. Если тороидальный сердечник в третьей колонке и во второй строке содержит запись, только в этом случае в проводе считывания появится наведенное напряжение.
Как ты понимаешь, используя 16 колонок и 16 строк, можно создать сетку, именуемую «матрицей запоминающего устройства», содержащую при очень небольшом объеме 256 элементов.
Рис. 136. Квадратная матрица запоминающего устройства из ферритовых тороидальных сердечников. Пунктирной линией показан провод считывания, по которому снимают напряжения, когда запрашивают намагниченный сердечник, расположенный в точке пересечения двух проводов.
Н. — В самом деле очень хитрая система, но я не хотел бы быть на месте тех, кому придется делать такие матрицы, ведь эта работа для женщины с вязальными спицами.
Л. — Действительно, изготовлением матриц запоминающих устройств обычно занимаются женщины. А операцию сборки из-за определенной аналогии структуры матрицы со структурой ткани называют «ткачеством». Устанавливая параллельно большее количество матриц, создают комплексное запоминающее устройство, позволяющее записать очень большое число данных.
А теперь я хочу показать тебе еще одно интересное запоминающее устройство, в котором используются туннельные диоды.
Н. — Правда, я довольно плохо знаю эти приборы и совершенно не представляю, как можно их использовать для создания запоминающих устройств.
Л. — Туннельный диод при напряжении, превышающем некоторый уровень (скажем 0,4 в), ведет себя в проводящем направлении как обычный диод. А при напряжении ниже этого уровня при пропускании тока в том же направлении наблюдается совершенно парадоксальная картина — при снижении напряжения ток диода увеличивается. Характеризуя это явление, говорят о наличии зоны отрицательного сопротивления. Некоторому напряжению, именуемому пиковым напряжением, соответствует максимальное значение тока. При дальнейшем уменьшении напряжения ток очень быстро снижается до нуля. На рис. 137 я изобразил кривую, характеризующую изменение тока диода в зависимости от напряжения на его выводах. При питании такого туннельного диода заданным напряжением через соответствующим образом подобранный резистор можно получить систему с двумя устойчивыми состояниями.
Рис. 137. Вольт-амперная характеристика германиевого туннельного диода.
Н. — Но я совершенно не вижу, как можно получить такой результат!
Л. — Посмотри приведенную на рис. 138 схему.
Рис. 138. Схема использования туннельного диода в качестве запоминающего элемента.
На этот раз ты должен признать, что она не столь уж сложная. Попробуем определить ток I диода и напряжение на его выводах U. Иначе говоря, нам нужно найти такую пару значений I и U, которая одновременно устроила бы потребителя (туннельный диод) и поставщика электроэнергии (батарею с электродвижущей силой е и внутренним сопротивлением R). Кривая требований потребителя приведена на рис. 137. Предписанные поставщиком соотношения величин U и I согласно закону Ома характеризуются прямой, которую ты знаешь под названием «нагрузочная прямая» или «нагрузочная характеристика». На рис. 139 я начертил вольтамперную характеристику туннельного диода и провел нагрузочную прямую; как ты видишь, пары значений U и I, соответствующие устойчивому состоянию, графически обозначены точками А и В.
Рис. 139. Три возможных состояния изображенной на рис. 138 схемы. Только точки А и В соответствуют устойчивым состояниям.
Н. — Туннельный диод, действительно, чудесный прибор; для создания схемы с двумя устойчивыми состояниями требуются всего лишь батарея, один резистор и один диод. Но что ты сделаешь с точкой С. Это еще одно возможное состояние?
Л. — Да, возможное, но неустойчивое. В этом месте динамическое сопротивление туннельного диода отрицательно и соответствующее ему состояние не может долго сохраняться. Как ты видишь, на нескольких туннельных диодах можно создать запоминающее устройство. Его преимущество в исключительном быстродействии; запись занимает лишь ничтожную долю микросекунды, а точнее, время здесь измеряется наносекундами, т. е. миллиардными долями секунды. В запоминающих устройствах на ферритовых тороидальных сердечниках в лучших случаях удается достичь микросекунды, так как для перемагничивания феррит требует некоторого времени. На туннельных диодах, если каждый из них питать через два резистора, можно сделать, как на ферритовых тороидах, матрицы для записи по строкам и колонкам. Кроме того, на этих диодах несложно сделать нестираемую при считывании запись.
Н. — Теперь нет никаких сомнений, что, если когда-нибудь мне придется делать цифровую вычислительную машину, ее запоминающее устройство будет, несомненно, на туннельных диодах.
Л. — Идея хорошая, но, к сожалению, на пути ее осуществления имеется одно препятствие, которое в ближайшее время бесспорно уменьшится — туннельные диоды пока еще относительно дороги.
Н. — А как следует поступить, если мне понадобится записать в запоминающем устройстве последовательное число?
Л. — Такое число можно как обычный сигнал записать на магнитной ленте. Для этой цели довольно часто используют также барабан, покрытый магнитным слоем. Барабан очень быстро вращается, а в это время многочисленные головки на большом количестве дорожек записывают нужную информацию. Неудобство этой системы заключается в относительно большом времени до ступа к записанным данным.
Н. — Но прости, пожалуйста, Любознайкин, ты до сих пор не сказал, как можно умножить одно последовательное число на другое.
Л. — Должен признаться, что схемы умножителя для последовательных чисел я не знаю. Но если ты внимательно посмотришь на схему, изображенную на рис. 133, то заметишь, что множимое и множитель записываются на сдвигающих регистрах. А как я тебе объяснил, эти устройства позволяют легко преобразовать последовательное число в параллельное. Если бы мне понадобилось перемножить два последовательных числа, то для начала я, преобразовав эти числа в параллельные, записал их на сдвигающих регистрах СР1 и СР2 в схеме, приведенной на рис. 133.
Я могу сказать, что теперь ты владеешь основными знаниями о системах, производящих сложение, вычитание и умножение, а также познакомился с запоминающими устройствами; ты имеешь представление об устройстве цифровых электронных вычислительных машин, которые позволяют все быстрее и быстрее выполнять очень сложные вычисления.
Н. — В этом я с тобой полностью согласен, но должен тебе сказать, что, прибавляя трудности и умножая различные ловушки, ты полностью отнял у моего мозга серое вещество, и я чувствую, что все мои запоминающие устройства полностью размагнитились. Если ты не возражаешь, я предлагаю продолжить в следующий раз, а еще лучше через несколько дней, чтобы я смог прийти в себя после принятой «цифровой ванны».