Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Архитектура компьютера - Таненбаум Э

..pdf
Скачиваний:
485
Добавлен:
24.05.2014
Размер:
5.67 Mб
Скачать

Основные цифровые логические схемы

153

тельный. Если подать 8 битов данных на линии входа, а затем переключать линии управления последовательно от 000 до ill (это двоичные числа), 8 битов поступят на линию выхода последовательно. Обычно такое преобразование осуществляется при вводе информации с клавиатуры, поскольку каждое нажатие клавиши определяет 7- или 8-битное число, которое должно передаваться последовательно потелефоннойлинии.

Vcc

A B C A B C

Рис. 3 . 1 1 . Мультиплексор, построенный на СИС (а), тот же мультиплексор, смонтированный для вычисления функции большинства (б)

Противоположностью мультиплексора является демультиплексор, который соединяет единственный входной сигнал с одним из 2" выходов в зависимости от значений п линий управления. Если бинарное значение линий управления равно к, то выбирается выход к.

Декодеры

В качестве второго примера рассмотрим схему, которая получает на входе п-бит- ное число и использует его для того, чтобы выбрать (то есть установить на значение 1) одну из 2" выходных линий. Такая схема называется декодером. Пример декодера для п=3 показан на рис. 3.12.

Чтобы понять, зачем нужен декодер, представим себе память, состоящую из 8 микросхем, каждая из которых содержит 1 Мбайт. Микросхема 0 имеет адреса от 0 до 1 Мбайт, микросхема 1 — адреса от 1 Мбайт до 2 Мбайт и т. д. Три старших двоичных разряда адреса используются для выбора одной из восьми микросхем. На рис. 3.12 эти три бита — три входа А, В и С В зависимости от входных сигналов ровно одна из восьми выходных линий (Do,..., D7) принимает значение 1; остальные линии принимают значение 0. Каждая выходная линия запускает одну из восьми микросхем памяти. Поскольку только одна линия принимает значение 1, запускается только одна микросхема.

154 Глава 3 Цифровой логический уровень

Рис.3.12.Схемадекодера,содержащего3входаи8выходов

Принцип работы схемы, изображенной на рис. 3.12, не сложен. Каждый вентиль И имеет три входа, из которых первый или А, или А, второй или В, или В, а третий или С, или С. Каждый вентиль запускается различной комбинацией входов: Do — сочетанием А В С, Di — А В С и т. д.

Компараторы

Еще одна полезная схема — компаратор. Компаратор сравнивает два слова, которые поступают на вход. Компаратор, изображенный на рис. 3.13, принимает два входных сигнала, А и В, каждый длиной 4 бита, и выдает 1, если они равны, и О, если они не равны. Схема основывается на вентиле ИСКЛЮЧАЮЩЕЕ ИЛИ, который выдает 0, если сигналы на входе равны, и 1, если сигналы на входе не равны. Если все четыре входных слова равны, все четыре вентиля ИСКЛЮЧАЮЩЕЕ ИЛИ должны выдавать 0. Эти четыре сигнала затем поступают в вентиль ИЛИ. Если в результате получается 0, значит, слова, поступившие на вход, равны; в противном случае они не равны. В нашем примере мы использовали вентиль ИЛИ в качестве конечной стадии, чтобы поменять значение полученного результата: 1 означает равенство, а 0 — неравенство.

Программируемые логические матрицы

Ранее мы рассказывали, что любую функцию (таблицу истинности) можно представить в виде суммы произведений и, следовательно, воплотить в схеме, исполь-

Основные цифровые логические схемы

155

зуя вентили И и ИЛИ. Для вычисления сумм произведений служит так называемая программируемая логическая матрица (рис. 3.14). Эта микросхема содержит входы для 12 переменных. Дополнительные сигналы (инверсии) генерируются внутри самой микросхемы. В итоге всего получается 24 входных сигнала. Какой именно входной сигнал поступает в определенный вентиль И, определяется по матрице 24x50 бит. Каждая из входных линий к 50 вентилям И содержит плавкую перемычку. При выпуске с завода все 1200 перемычек остаются нетронутыми. Чтобы запрограммировать матрицу, покупатель выжигает выбранные перемычки, прикладывая к схеме высокое напряжение.

Вентиль ИСКЛЮЧАЮЩЕЕ ИЛИ

А=В

А2

В2

Рис. 3.13. Простой четырехразрядный компаратор

Выходная часть схемы состоит из шести вентилей ИЛИ, каждый из которых содержит до 50 входов, что соответствует наличию 50 выходов у вентилей И. Какие из потенциально возможных связей действительно существуют, зависит от того, как была запрограммирована матрица 50x6. Микросхема имеет 12 входных выводов, 6 выходных выводов, питание и «землю» (то есть всего 20 выводов).

Приведем пример использования программируемой логической матрицы. Рассмотрим схему, изображенную на рис. 3.3, б. Она содержит три входа, четыре вентиля И, один вентиль ИЛИ и три инвертора. Если запрограммировать нашу матрицу определенным образом, она сможет вычислять ту же функцию, используя три из 12 входов, четыре из 50 вентилей И и один из 6 вентилей ИЛИ. (Четыре вентиля И должны вычислять ABC, ABC, ABC И ABC; вентиль ИЛИ принимает эти 4 произведения в качестве входных данных.) Можно сделать так, чтобы та же программируемая логическая матрица вычисляла одновременно сумму четырех функций одинаковой сложности. Для простых функций ограничивающим фактором является число входных переменных, для более сложных — вентили И и ИЛИ.

156 Глава3.Цифровойлогическийуровень

Если эта плавкая перемычка пережигается, то сигнал (В) не входит

в вентиль И1

12x2=24 входных сигнала

Если эта перемычка

пережигается,

J"

Z

 

^

у Q ВЫХОДОВ

 

то сигнал из

 

 

 

 

 

вентиля И1

 

 

 

 

 

непоступает

 

 

 

 

 

в вентиль ИЛИ5

 

 

 

 

 

Рис.3.14. Программируемаялогическаяматрицас 12входамии6выходами. Маленькие квадратики—плавкиеперемычки, выжигаемыедлязаданияфункции, которую

нужно вычислить, Плавкие перемычки упорядочиваются вдвух матрицах. Верхняя матрица — для вентилей И, а нижняя матрица — для вентилей ИЛИ

Матрицы, программируемые в условиях эксплуатации, все еще используются. Однако предпочтение отдается матрицам, которые изготавливаются на заказ. Они разрабатываются заказчиком и выпускаются производителем в соответствии с запросами заказчика. Такие программируемые логические матрицы гораздо дешевле.

А теперь мы можем обсудить три разных способа воплощения таблицы истинности, приведенной нарис. 3.3, а. Еслив качествекомпонентов использовать МИС, нам нужны 4 микросхемы. С другой стороны, мы можем обойтись одним мультиплексором, построенным на СИС, как показано нарис. 3.11, б. Наконец, мы можем использовать лишь четвертую часть программируемой логической матрицы. Очевидно, если необходимо вычислять много функций, использование программируе-

Основныецифровыелогическиесхемы

1 5 7

мой логической матрицы более эффективно, чем применение двух других методов. Для простых схем предпочтительнее более дешевые МИС и СИС.

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

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

Схемы сдвига

Первой арифметической схемой СИС, которую мы рассмотрим, будет схема сдвига, содержащая 8 входов и 8 выходов (рис. 3.15). Восемь входных битов подаются на линии Do,..., D7. Выходные данные, которые представляют собой входные данные, сдвинутые на 1 бит, поступают налинии So,. •., S7. Линия управления С определяет направление сдвига: 0 — налево, 1 — направо.

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

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

Сумматоры

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

158 Глава 3. Цифровой логический уровень

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

 

 

 

 

Вентиль ИСКЛЮЧАЮЩЕЕ ИЛИ

А

В

Сумма

Перенос

 

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 и F,: 00,01,10 или 11 (в двоичной системе счисления) Отметим, что здесь А+В означает арифметическую сумму А и В, а не логическую операцию И.

В левом нижнем углу схемы находится двухразрядный декодер, который порождает сигналы включения для четырех операций. Выбор операции определяет-

160

Глава 3. Цифровой логический уровень

ся сигналами управления Fo и Fj. В зависимости от значений Fo и Fi выбирается одна из четырех линий разрешения, и тогда выходной сигнал выбранной функции проходит через последний вентиль ИЛИ.

Логическое устройство

Вход переноса

Выход

Сумма

Линии < C l ! разрешения ^ s \ , ^

Fo

i , i

Декодер

Выход

 

переноса

 

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

Вверхнем левом углу схемы находится логическое устройство для вычисления

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

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

Основныецифровыелогическиесхемы 161

ных условиях и ENA, и ENB равны 1, чтобы разрешить поступление обоих входных сигналов, а сигнал INVA равен 0. В этом случае А и В просто поступают в логическое устройство без изменений.

Fi

 

 

 

 

 

 

 

 

Fo А7 В7

Ае В6

А5 В5

ы в4

А3 В3

А2 В2

А, Вт

Ао Во

! 1

I

 

I I

 

 

 

I

I

1-битное

1-битное 1-битное

1-битное 1-битное

1-битное

1-битное 1-битное

L АЛУ

АЛУ

АЛУ

АЛУ

АЛУ

АЛУ

АЛУ

~+ АЛУ

I

I

I

I

I

I

I

I

и

о, ,/\\ Ое

о 5

Ол

Оз

о2

Oi

Оо

 

 

 

 

 

 

 

 

INC

Вход

Выход

 

 

 

 

 

 

 

переноса

переноса

 

 

 

 

 

 

 

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

Внижнем правом углу находится полный сумматор для подсчета суммы А и В

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

Тактовые генераторы

Во многих цифровых схемах все зависит от порядка, в котором выполняются действия. Иногда одно действие должно предшествовать другому, иногда два действия должны происходить одновременно. Для контроля временных отношений в цифровые схемы встраиваются тактовые генераторы, чтобы обеспечить синхронизацию. Тактовый генератор — это схема, которая вызывает серию импульсов. Все импульсы одинаковы по длительности. Интервалы между последовательными импульсами также одинаковы. Временной интервал между началом одного импульса и началом следующего называется временем такта. Частота импульсов обычно от 1 до 500 МГц, что соответствует времени такта от 1000 не до 2 не. Частота тактового генератора обычно контролируется кварцевым генератором, чтобы достичь высокой точности.

В компьютере за время одного такта может произойти много событий. Если они должны осуществляться в определенном порядке, то такт следует разделить на подтакты. Чтобы достичь лучшего разрешения, чем у основного тактового генератора, нужно сделать ответвление от задающей линии тактового генератора и вставить схему с определенным временем задержки. Таким образом порождается

162

Глава 3 Цифровой логический уровень

вторичный сигнал тактового генератора, который сдвинут ио фазе относительно первичного (рис 3 20, а) Временная диаграмма (рис 3 20, б) обеспечивает четыре начала отсчета времени для дискретных событии

1 Нарастающий фронт С1

2Задний фронт С1

3Нарастающий фронт С2

4Задний фронт С2

Связав различные события с различными фронтами, можно достичь требуемой последовательности выполнения действий Если в пределах одного такта требуется более четырех начал отсчета, можно сделать еще несколько ответвлений от задающей линии с различным временем задержки

А - 1

Рис, 3.20. Тактовый генератор {а), временная диаграмма для тактового генератора (б), порождениеасинхронныхтактовыхимпульсов{в)

В некоторых схемах важны временные интервалы, а не дискретные моменты времени Например, некоторое событие может происходить в любое время, когда уровень импульса С1 высокий, а не на нарастающем фронте Другое событие может происходить только в том случае, когда уровень импульса С2 высокий Если необходимо более двух интервалов, нужно обеспечить больше линий передачи синхронизирующих импульсов или сделать так, чтобы состояния с высоким уровнем импульса у двух тактовых генераторов частично пересекались во времени. В последнем случае можно выделить 4 отдельных интервала СТ И С^, С1 И С2,С1ИС2иСТИС2

Тактовые генераторы могут быть синхронными В этом случае время состояния с высоким уровнем импульса равно времени состояния с низким уровнем импульса (рис 3 20, б) Чтобы получить асинхронную серию импульсов, нужно сдвинуть сигнал задающего генератора, используя цепь задержки Затем нужно