
Основные цифровые логические схемы
157
мой
логической матрицы более эффективно,
чем применение двух других методов.
Для простых схем предпочтительнее
более дешевые МИС и СИС.
Арифметические схемы
Перейдем от СИС общего назначения к комбинационным схемам СИС, которые используются для выполнения арифметических операций. Мы начнем с простой 8-разрядной схемы сдвига, затем рассмотрим структуру сумматоров и, наконец, изучим арифметико-логические устройства, которые играют существенную роль в любом компьютере.
Схемы сдвига
Первой арифметической схемой СИС, которую мы рассмотрим, будет схема сдвига, содержащая 8 входов и 8 выходов (рис. 3.15). Восемь входных битов подаются на линии Do,..., D7. Выходные данные, которые представляют собой входные данные, сдвинутые на 1 бит, поступают на линии So,..., S7. Линия управления С определяет направление сдвига: 0 — налево, 1 — направо.
Рис. 3.15. Схема сдвига
Чтобы понять, как работает такая схема, рассмотрим пары вентилей И (кроме крайних вентилей). Если С=1, правый член каждой пары включается, пропуская через себя соответствующий бит. Так как правый вентиль И соединен с входом вентиля ИЛИ, который расположен справа от этого вентиля И, происходит сдвиг вправо. Если С=0, включается левый вентиль И из пары, и тогда происходит сдвиг влево.
Сумматоры
Компьютер, который не умеет складывать целые числа, практически немыслим. Следовательно, схема для выполнения операций сложения является существенной частью любого процессора. Таблица истинности для сложения одноразряд-
158
Глава 3. Цифровой логический уровень
ных
целых чисел показана на рис. 3.16, а. Здесь
имеется два результата: сумма входных
переменных А и В и перенос на следующую
(левую) позицию. Схема для вычисления
бита суммы и бита переноса показана на
рис. 3.16, б.
Такая
схема обычно называется
полусумматором.
Вентиль ИСКЛЮЧАЮЩЕЕ ИЛИ
А |
В |
Сумма |
Перенос |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
А В-
Сумма
Перенос
Рис. 3.16. Таблица истинности для сложения одноразрядных чисел (а); схема полусумматора (б)
Полусумматор подходит для сложения битов нижних разрядов двух многобитовых слов. Но он не годится для сложения битов в середине слова, потому что не может осуществлять перенос в эту позицию. Поэтому необходим полный сумматор (рис. 3.17). Из схемы должно быть ясно, что полный сумматор состоит из двух полусумматоров. Сумма равна 1, если нечетное число переменных А, В и Вход переноса принимает значение 1 (то есть если единице равна или одна из переменных, или все три). Выход переноса принимает значение 1, если или А и В одновременно равны 1 (левый вход в вентиль ИЛИ), или если один из них равен 1, а Вход переноса также равен 1. Два полусумматора порождают и биты суммы, и биты переноса.
Чтобы построить сумматор, например, для двух 16-битных слов, нужно продублировать схему, изображенную на рис. 3.17, б, 16 раз. Перенос производится в левый соседний бит. Перенос в самый правый бит соединен с 0. Такой сумматор называется сумматором со сквозным переносом. Прибавление 1 к числу 111... 111 не осуществится до тех пор, пока перенос не пройдет весь путь от самого правого бита к самому левому. Существуют более быстрые сумматоры, работающие без подобной задержки. Естественно, предпочтение обычно отдается им.
Рассмотрим пример более быстрого сумматора. Разобьем 32-разрядный сумматор на 2 половины: нижнюю 16-разрядную и верхнюю 16-разрядную. Когда начинается сложение, верхний сумматор еще не может приступить к работе, поскольку он не узнает значение переноса, пока не совершится 16 суммирований в нижнем сумматоре.
Однако можно сделать одно преобразование. Вместо одного верхнего сумматора можно получить два верхних сумматора, продублировав соответствующую часть аппаратного обеспечения. Тогда схема будет состоять из трех 16-разрядных сум-
Основные цифровые логические схемы
159
маторов:
одного нижнего и двух верхних U0
и U1,
которые работают параллельно. В
сумматор U0
в качестве переноса поступает 0, а в
сумматор U1
в качестве переноса
поступает 1. Оба верхних сумматора
начинают работу одновременно с нижним
сумматором, но только один из результатов
суммирования в двух верхних сумматорах
будет правильным. После сложения 16
нижних разрядов становится известно
значение переноса в верхний сумматор,
и тогда можно определить правильный
ответ.
При таком подходе время сложения
сокращается в два раза. Такой сумматор
называется сумматором
с выбором переноса. Можно
разбить каждый 16-разрядный
сумматор на два 8-разрядных и т. д.
Выход переноса
В
ход
переноса
А |
в |
Вход переноса |
Сумма |
Выход переноса |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
Рис. 3.17. Таблица истинности для полного сумматора (а); схема для полного сумматора (б)
Арифметико-логические устройства
Большинство компьютеров содержат одну схему для выполнения операций И, ИЛИ и сложения над двумя машинными словами. Обычно такая схема для п-бит-ных слов состоит из п идентичных схем для индивидуальных битовых позиций. На рис. 3.18 изображена такая схема, которая называется арифметико-логическим устройством, или АЛУ. Это устройство может вычислять одну из 4 следующих функций: А И В, А ИЛИ В, В и А+В. Выбор функции зависит от того, какие сигналы поступают на линии Fo и Ft: 00, 01, 10 или 11 (в двоичной системе счисления). Отметим, что здесь А+В означает арифметическую сумму А и В, а не логическую операцию И.
В левом нижнем углу схемы находится двухразрядный декодер, который порождает сигналы включения для четырех операций. Выбор операции определяет-
160