УМНОЖИТЕЛИ И ЗАПОМИНАЮЩИЕ УСТРОЙСТВА



 

 

Совершается неизбежное: чем глубже Незнайкин изучает электронику, тем больше он увлекается. Он понял, что электронные схемы производят сложение двоичных чисел. Теперь он настолько подготовлен продолжать свое знакомство с вычислительной техникой, что уже может приступить к изучению электронного умножителя. Но прежде чем его интеллектуальные способности разрядятся, как конденсатор после вспышки лазера, ему необходимо еще понять, как работает запоминающее устройство на ферритовых тороидальных сердечниках.

 

 

 

Незнайкин – Я нашел решение для построения сумматора: мы не испытаем никаких особых трудностей, если для каждой подлежащей сложению цифры возьмем схему, приведенную на рис. 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 . На этот раз единицы мы разместили на самом левом крае, а вправо от них по порядку записали двойки и т. д. Поступающий в линию Z 2 управляющий сигнал сдвигает записанное число (множитель) тоже влево. Сумма записывается на третьем сдвигающем регистре СР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 полностью «опорожнен». Последующие импульсы, если они и будут, не смогут пройти через G 1 , потому что на его верхнем входе всегда будет сигнал нуля.

Н. – Я напрасно любовался двоичной счетной техникой; на мой взгляд, этот умножитель просто кошмарный сон больного специалиста по электронике!

Л. – Я полностью согласен с тобою, что, только проявив максимум внимания, можно проследить за работой умножителя. Поэтому я освобождаю тебя от изучения делителя, который отличается еще большей сложностью и который действует как бы наощупь, подбирая результат методом вычитания.

 

 


Дата добавления: 2019-02-12; просмотров: 231; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!