Э. Таненбаум - Архитектура компьютера (1127755), страница 45
Текст из файла (страница 45)
Противоположностью мультиплексора является демультиплексор, который соединяет единственный входной сигнал с одним из 2" выходов в зависимости от значений сигналов в и линиях управления. Если бинарное значение линий управления равно (е, то выбирается выход )т. Декодеры В качестве второго примера рассмотрим схему, которая получает на входе п-разрядное число и использует его для того, чтобы выбрать (то есть установить в значение 1) одну из 2" выходных линий.
Такая схема называется декодером. Пример декодера для и = 3 показан на рис. 3.12. Чтобы понять, зачем нужен декодер, представим себе память, состоящую из 8 микросхем, каждая из которых содержит 1 Мбайт. Микросхема 0 имеет адреса от 0 до 1 Мбайт, микросхема 1 — адреса от 1 Мбайт до 2 Мбайт и т. д, Три старших двоичных разряда адреса используются для выбора одной из восьми микросхем. На рис. 3.12 эти три бита — три входа А, В и С.
В зависимости от входных сигналов ровно одна из восьми выходных линий (Ре, ..., Рт) принимает значение 1; остальные линии принимают значение О. Каждая выходная линия запускает одну 176 Глава 3. Цифровой логический уровень из восьми микросхем памяти. Поскольку только одна линия принимает значение 1, запускается только одна микросхема.
0а 01 02 0а 04 05 0в 07 Рис. 3. 12. Схема декодера, содержащего 3 входа и 8 выходов Принцип работы схемы, изображенной на рис. 3.12, не сложен. Каждый вентиль И имеет три входа, из которых первый — зто А или А, второй — В или В, третий — С нли С. Каждый вентиль запускается различной комбинацией входов: 11а — сочетанием А В С, В, — сочетанием А В С и т. д. Компараторы Еще одна полезная схема — компаратор. Компаратор сравнивает два слова, которые поступают на вход. Компаратор, изображенный на рис.
3.13, принимает два входных сигнала, А и В, по 4 бита каждый и выдает 1, если они равны, и О, если они не равны. Схема основывается на вентиле ИСКЛЮЧАЮЩЕЕ ИЛИ, который выдает О, если сигналы на входе равны, и 1, если сигналы на входе не равны. Если все четыре входных слова равны, все четыре вентиля ИСКЛЮЧАЮЩЕЕ ИЛИ должны выдавать О. Эти четыре сигнала затем поступают в вентиль ИЛИ. Если в результате получается О, значит, слова, поступившие на вход, равны; в противном случае онн не равны. В нашем примере мы использовали вентиль ИЛИ в качестве конечного, чтобы поменять значение полученного результата: 1 означает равенство, Π— неравенство.
Основные цифровые логические схемы 1 Г1 Вентиль ИСКЛЮЧАЮЩЕЕ ИЛИ Ао А1 В1 Аз Вз Аз Вз Рис. 3.13. Простой 4-разрядный компаратор Программируемые логические матрицы Ранее отмечалось, что любую функцию (таблицу истинности) можно представить в виде суммы произведений и, следовательно, воплотить в схеме, использовав вентили И и ИЛИ. Для вычисления сумм произведений служит так называемая программируемая логическая матрица (рис. 3.14). Эта микросхема содержит входы для 12 переменных.
Дополнительные сигналы (инверсии) генерируются внутри самой микросхемы. В итоге получается всего 24 входных сигнала. Какой именно входной сигнал поступает в тот или иной вентиль И, определяется по матрице размером 24 х 50 бит. Каждая из входных линий к 50 вентилям И содержит плавкую перемычку. При выпуске с завода все 1200 перемычек остаются нетронутыми. Чтобы запрограммировать матрицу, покупатель выжигает выбранные перемычки, прикладывая к схеме высокое напряжение.
Выходная часть схемы состоит из шести вентилей ИЛИ, каждый из которых содержит до 50 входов, что соответствует наличию 50 выходов у вентилей И. Какие из потенциально возможных связей действительно существуют, зависит от того, как была запрограммирована матрица 50 х 6. Микросхема имеет 12 входных выводов, 6 выходных выводов, питание и землю (то есть всего 20 выводов). Приведем пример использования программируемой логической матрицы. Вернемся к схеме на рис. 3.3, б. Она содержит три входа, четыре вентиля И, один вентиль ИЛИ и три инвертора. Если запрограммировать нашу матрицу определенным образом, она сможет вычислять ту же функцию, используя три из 12 входов, четыре из 50 вентилей И и один из 6 вентилей ИЛИ. (Четыре вентиля И должны вычислять произведения АВС, АВС, АВС и АВС; вентиль ИЛИ принимает эти 4 произведения в качестве входных данных.) Можно сделать так, чтобы та же программируемая логическая матрица вычисляла одновременно сумму 178 Глава 3.
Цифровой логический уровень четырех функций одинаковой сложности. Для простых функций ограничивающим фактором является число входных переменных, для более сложных — вентили И и ИЛИ. А ллавкая мычка га ется, гнал (й) одит тиль 1 одных а 6 выходов Рис. 3.14.
Программируемая логическая матрица с 12 входами и 6 выходами. Маленькие квадратики — ллавкие перемычки, выжигаемые для получения нужной функции. Плавкие перемычки упорядочиваются в двух матрицах, верхняя матрица — для вентилей И, нижняя— для вентилей ИЛИ Хотя матрицы, программируемые в эксплуатационных условиях, все еще используются, предпочтение отдается матрицам, которые изготавливаются на заказ. Они разрабатываются заказчиком и выпускаются производителем в соответствии с запросами заказчика.
Такие программируемые логические матрицы гораздо дешевле. Основные цифровые логические схемы 179 А теперь мы можем обсудить три разных способа воплощения таблицы истинности, приведенной на рис. 3.3, а. Если в качестве компонентов использовать МИС, нам потребуются 4 микросхемы. С другой стороны, мы можем обойтись одним мультиплексором, построенном на СИС, как показано на рис.
3.11, б. Наконец, мы можем использовать лишь четвертую часть программируемой логической матрицы. Очевидно, если необходимо вычислять много функций, использование программируемой логической матрицы более эффективно, чем применение двух других методов. Для простых схем предпочтительнее более дешевые МИС и СИС. Арифметические схемы Перейдем от СИС общего назначения к комбинаторным схемам СИС, которые используются для выполнения арифметических операций.
Мы начнем с простой 8-разрядной схемы сдвига, затем рассмотрим структуру сумматоров и, наконец, изучим арифметико-логические устройства, которые играют существенную роль в любом компьютере. Схемы сдвига Первой арифметической схемой СИС, которую мы рассмотрим, будет схема сдвига, содержащая 8 входов и 8 выходов (рис. 3.15). Восемь входных битов подаются на линии Ри ..., Рь Выходные данные, которые представляют собой входные данные, сдвинутые на 1 бит, поступают на линии 5э, ..., 5ь Линия управления С определяет направление сдвига: 0 — влево, 1 — вправо.
0о 01 02 0э 0э 0э 06 Оэ зэ аг Рис. 3.15. Схема сдвига Чтобы понять, как работает такая схема, рассмотрим пары вентилей И (кроме крайних). Если С = 1, правый член каждой пары включается, пропуская через себя соответствующий бит. Так как правый вентиль И соединен с входом 180 Глава 3. Цифровой логический уровень вентиля ИЛИ, который расположен справа от этого вентиля И, происходит сдвиг вправо. Если С = О, включается левый вентиль И из пары, и тогда происходит сдвиг влево. Сумматоры Компьютер, который не умеет складывать целые числа, практически немыслим.
Следовательно, схема выполнения операций сложения является существенной частью любого процессора. Таблица истинности для сложения одноразрядных целых чисел показана на рис. 3.16, а. Здесь имеется два результата: сумма входных переменных А и В и перенос на следующую (левую) позицию. Схема для вычисления бита суммы и бита переноса показана на рис. 3.16, б. Такая схема обычно называется полусумматором.
Вентиль ИСКЛЮЧАЮЩЕЕ ИЛИ Сумма Перенос Рис. З.тб. Таблица истинности для сложения одноразрядных чисел (а); схема полусумматора(б) Полусумматор подходит для сложения битов нижних разрядов двух много- битовых слов. Однако он не годится для сложения битов в середине слова, потому что не может осуществлять перенос в эту позицию. Поэтому необходим полный сумматор (рис.
3.17). Из схемы должно быть ясно, что полный сумматор состоит из двух полусумматоров. Сумма равна 1, если нечетное число переменных А, В и вход переноса принимает значение 1 (то есть, если единице равна или одна из переменных, или все три). Выход переноса принимает значение 1, если либо А и В одновременно равны 1 (левый вход в вентиль ИЛИ), либо один из них равен 1 и вход переноса также равен 1. Два полусумматора порождают и биты суммы, и биты переноса. Чтобы построить сумматор, например, для двух 16-разрядных слов, нужно 16 раз продублировать схему, изображенную на рис. 3.17, б. Перенос производится в левый соседний бит. Перенос в самый правый бит соединен с О.
Такой сумматор называется сумматором со сквозным переносом. Прибавление 1 к числу 111...111 не осуществится до тех пор, пока перенос не пройдет весь путь от самого правого бита к самому левому. Существуют более быстрые сумматоры, работающие без подобной задержки. Естественно, предпочтение обычно отдается им. Основные цифровые логические схемы 181 Вход переноса Выход переноса Рио. 3.17. Таблица истинности для полного сумматора (а); схема для полного сумматора (б) Рассмотрим пример более быстрого сумматора.
Разобьем 32-разрядный сумматор на 2 половины: нижнюю 16-разрядную и верхнюю 16-разрядную. Когда начинается сложение, верхний сумматор еще не может приступить к работе, поскольку не знает значение переноса, а узнать его он не сможет, пока не совершится 16 суммирований в нижнем сумматоре. Однако можно сделать одно преобразование. Вместо одного верхнего сумматора можно получить два верхних сумматора, продублирован соответствующую часть аппаратуры. Тогда схема будет состоять из трех 16-разрядных сумматоров: одного нижнего и двух верхних, Ус и Уп работающих параллельно.
В качестве переноса в сумматор Ус поступает О, в сумматор У1 — 1. Оба верхних сумматора начинают работать одновременно с нижним сумматором, но только один из результатов суммирования в двух верхних сумматорах будет правильным. После сложения 16 нижних разрядов становится известно значение переноса в верхний сумматор, и тогда можно определить правильный ответ. При подобном подходе время сложения сокращается в два раза. Такой сумматор называется сумматором с выбором переноса.