Реклама:

Перейдем от СИС общего назначения к комбинаторным схемам СИС, которые используются для выполнения арифметических операций. Мы начнем с простой 8-разрядной схемы сдвига, затем рассмотрим структуру сумматоров и, наконец, изучим арифметико-логические устройства, которые играют существенную роль в любом компьютере.

Схемы сдвига

Первой арифметической схемой СИС, которую мы рассмотрим, будет схема сдвига, содержащая 8 входов и 8 выходов (рис. 3.15). Восемь входных битов подаются на линии Д),£)7. Выходные данные, которые представляют собой входные данные, сдвинутые на 1 бит, поступают на линии 5о, 57. Линия управления С определяет направление сдвига: 0 - влево, 1 - вправо.

Арифметические схемы

Рис. 3.15. Схема сдвига

Чтобы понять, как работает такая схема, рассмотрим пары вентилей И (кроме крайних). Если С = 1, правый член каждой пары включается, пропуская через себя соответствующий бит. Так как правый вентиль И соединен с входом вентиля ИЛИ, который расположен справа от этого вентиля И, происходит сдвиг вправо. Если С = О, включается левый вентиль И из пары, и тогда происходит сдвиг влево.

Сумматоры

Компьютер, который не умеет складывать целые числа, практически немыслим. Следовательно, схема выполнения операций сложения является существенной частью любого процессора. Таблица истинности для сложения одноразрядных целых чисел показана на рис. 3.16, а. Здесь имеется два результата: сумма входных переменных А и В и перенос на следующую (левую) позицию. Схема для вычисления бита суммы и бита переноса показана на рис. 3.16, б. Такая схема обычно называется полусумматором.

Арифметические схемы

Рис. 3.16. Таблица истинности для сложения одноразрядных чисел (а); схема полусумматора (б)

Полусумматор подходит для сложения битов нижних разрядов двух многобитовых слов. Однако он не годится для сложения битов в середине слова, потому что не может осуществлять перенос в эту позицию. Поэтому необходим полный сумматор (рис. 3.17). Из схемы должно быть ясно, что полный сумматор состоит из двух полусумматоров. Сумма равна 1, если нечетное число переменных Л, Б и вход переноса принимает значение 1 (то есть, если единице равна или одна из переменных, или все три). Выход переноса принимает значение 1, если либо А и В одновременно равны 1 (левый вход в вентиль ИЛИ), либо один из них равен 1 и вход переноса также равен 1. Два полусумматора порождают и биты суммы, и биты переноса.

Чтобы построить сумматор, например, для двух 16-разрядных слов, нужно 16 раз продублировать схему, изображенную на рис. 3.17, б. Перенос производится в левый соседний бит. Перенос в самый правый бит соединен с 0. Такой сумматор называется сумматором со сквозным переносом. Прибавление 1 к числу 111...111 не осуществится до тех пор, пока перенос не пройдет весь путь от самого правого бита к самому левому. Существуют более быстрые сумматоры, работающие без подобной задержки. Естественно, предпочтение обычно отдается им.

Арифметические схемы

Рис. 3.17. Таблица истинности для полного сумматора (а); схема для полного сумматора (б)

Рассмотрим пример более быстрого сумматора. Разобьем 32-разрядный сумматор на 2 половины: нижнюю 16-разрядную и верхнюю 16-разрядную. Когда начинается сложение, верхний сумматор еще не может приступить к работе, поскольку не знает значение переноса, а узнать его он не сможет, пока не совершится 16 суммирований в нижнем сумматоре.

Однако можно сделать одно преобразование. Вместо одного верхнего сумматора можно получить два верхних сумматора, продублировав соответствующую часть аппаратуры. Тогда схема будет состоять из трех 16-разрядных сумматоров: одного нижнего и двух верхних, £/0 и 11ъ работающих параллельно. В качестве переноса в сумматор £/0 поступает 0, в сумматор 11^ - 1. Оба верхних сумматора начинают работать одновременно с нижним сумматором, но только один из результатов суммирования в двух верхних сумматорах будет правильным. После сложения 16 нижних разрядов становится известно значение переноса в верхний сумматор, и тогда можно определить правильный ответ. При подобном подходе время сложения сокращается в два раза. Такой сумматор называется сумматором с выбором переноса. Можно еще раз разбить каждый 16-разрядный сумматор на два 8-разрядных и т. д.

Арифметико-логические устройства

Большинство компьютеров содержат одну схему для выполнения над двумя машинными словами операций И, ИЛИ и сложения. Обычно эта схема для тг-раз-рядных слов состоит из п идентичных схем - по одной для каждой битовой позиции. На рисунке 3.18 изображена такая схема, которая называется арифметико-логическим устройством (АЛУ). Это устройство может вычислять одну из 4-х следующих функций: Л И В, Л ИЛИ В, В или А + В. Выбор функции зависит от того, какие сигналы поступают на линии Ро и /ч: 00, 01, 10 или 11 (в двоичной системе счисления). Отметим, что здесь А + В означает арифметическую сумму Л и В, а не логическую операцию И.

Арифметические схемы

Рис. 3.18. Одноразрядное АЛУ

В левом нижнем углу схемы находится двухразрядный декодер, который генерирует сигналы включения для четырех операций. Выбор операции определяется сигналами управления ґо и Р\- В зависимости от значений ґ0 и выбирается одна из четырех линий разрешения, и тогда выходной сигнал выбранной функции проходит через последний вентиль ИЛИ.

В верхнем левом углу схемы находится логическое устройство для вычисления функций Л И В, Л ИЛИ В и В, но только один из этих результатов проходит через последний вентиль ИЛИ в зависимости от того, какую из линий разрешения выбрал декодер. Так как ровно один из выходных сигналов декодера может быть равен 1, то и запускаться будет ровно один из четырех вентилей И. Остальные три вентиля будут выдавать 0 независимо от значений А и В.

АЛУ может выполнять не только логические и арифметические операции над переменными Л и В, но и делать их равными нулю, отрицая ENA (сигнал разрешения А) или ENB (сигнал разрешения В). Можно также получить Л, установив сигнал INVA (инверсия Л). Зачем нужны сигналы ENA, ENB и INVA, мы узнаем в главе 4. При нормальных условиях и ENA, и ENB равны 1, чтобы разрешить поступление обоих входных сигналов, а сигнал INVA равен 0. В этом случае Л и В просто поступают в логическое устройство без изменений.

В нижнем правом углу находится полный сумматор для подсчета суммы Л и В, а также для осуществления переносов. Переносы необходимы, поскольку несколько таких схем могут быть соединены для выполнения операций над целыми словами. Одноразрядные схемы, подобные показанной на рис. 3.18, называются разрядными микропроцессорными секциями. Они позволяют разработчику строить АЛУ любой разрядности. На рис. 3.19 показана схема 8-разрядного АЛУ, составленного из восьми одноразрядных секций. Сигнал INC (увеличение на единицу) нужен только для операций сложения. Он дает возможность вычислять такие суммы, как Л+1иЛ + 5+1.

Арифметические схемы

Рис. 3.19. Восемь одноразрядных секций, соединенных в 8-разрядное АЛУ. Для упрощения схемы сигналы разрешения и инверсии не показаны

Комбинаторные схемы || Оглавление || Тактовые генераторы