Электроника?.. Нет ничего проще! - Жан-Поль Эймишен
Шрифт:
Интервал:
Закладка:
Н. — Но ты сам в этом виноват, зачем ты поставил элементы задержки?
Л. — Твой вопрос, Незнайкин, наводит меня на мысль, что ты не понял принцип работы сдвигающего регистра. Элементы задержки необходимы. В самом деле, когда я импульсом сброса на нуль продвигаю число вперед, все триггеры должны сначала переключиться на нуль, а затем те из них, которым предстоит опрокинуться, должны получить переданный через элементы задержки задержанный ими импульс. Кроме того, при использовании сдвигающего регистра для сложения параллельных чисел следует не допускать возможности одновременного поступления на триггер цифры второго числа и переносимой единицы, полученной в результате сложения цифр на предыдущем триггере.
Н. — Мне остается только поблагодарить тебя, Любознайкин, за напрасную трату времени. Ты заставил меня помучиться, чтобы понять устройство и принцип работы сдвигающего регистра, а теперь собираешься объявить мне, что воспользоваться им на практике нельзя.
Л. — Далеко не так, Незнайкин. В ближайшее время мы познакомимся с очень интересным устройством, в котором работает этот регистр. Я просто хотел бы обратить твое внимание на следующее обстоятельство: может случиться, что при использовании сдвигающего регистра для сложения эта операция займет очень много времени. Но тогда мы постараемся воспользоваться другим методом, о котором поговорим завтра.
Беседа четырнадцатая
УМНОЖИТЕЛИ И ЗАПОМИНАЮЩИЕ УСТРОЙСТВА
Совершается неизбежное: чем глубже Незнайкин изучает электронику, тем больше он увлекается. Он понял, что электронные схемы производят сложение двоичных чисел. Теперь он настолько подготовлен продолжать свое знакомство с вычислительной техникой, что уже может приступить к изучению электронного умножителя. Но прежде чем его интеллектуальные способности разрядятся, как конденсатор после вспышки лазера, ему необходимо еще понять, как работает запоминающее устройство на ферритовых тороидальных сердечниках.
Незнайкин — Я нашел решение для построения сумматора: мы не испытаем никаких особых трудностей, если для каждой подлежащей сложению цифры возьмем схему, приведенную на рис. 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.
Н. — Иначе говоря, одиннадцати.
Л. — Браво, Незнайкин. Ты очень хорошо усвоил двоичную систему счисления. Следовательно, число В мы должны записать в следующем виде: