Электронный учебник

Глава 3

§ 24. Логические элементы компьютера

Простейшие элементы

   В компьютерах все вычисления производятся с помощью логических элементов — электронных схем, выполняющих логи­ческие операции. Обозначения простейших элементов приводятся в таблице на рис. 3.23 (ГОСТ 2.743-91). Заметьте, что небольшой кружок на выходе (или на входе) обозначает операцию «НЕ» (от­рицание, инверсию).

   Может показаться, что для реализации сложных логических функций нужно много разных видов логических элементов. Одна­ко, как мы видели в § 22, любую логическую функцию можно представить с помощью операций «НЕ», «И» и «ИЛИ» (такой на­бор элементов называется полным). Именно эта классическая «тройка» используется в книгах по логике, а также во всех язы­ках программирования. Тем не менее инженеры часто предпочи­тают строить логические схемы на основе элементов «ИЛИ-НЕ». Как показано в § 19, эта функция (штрих Шеффера) позволяет реализовать операции «НЕ», «И» и «ИЛИ», а значит, и любую другую операцию.

   Если нужно составить схему по известному логическому выра­жению, её начинают строить с конца. Находят операцию, которая будет выполняться последней, и ставят на выходе соответству­ющий логический элемент. Затем повторяют то же самое для сиг­налов, поступающих на вход этого элемента. В конце концов должны остаться только исходные сигналы — переменные в логи­ческом выражении.

   Составим схему, соответствующую выражению

Х=˥А*В+А*˥В*˥С.

   Последняя операция — это логическое сложение, поэтому на выходе схемы будет стоять элемент «ИЛИ» (рис. 3.24).

   Для того чтобы получить на первом входе ˥А*В, нужно умножить ˥A на В, поэтому добавляем элемент «И» (рис. 3.25).

   Чтобы получить ˥А, ставим элемент «НЕ» (рис.:3.26).

   Аналогично  разбираем  вторую  ветку,  которая  поступает  на второй вход элемента «ИЛИ» (рис. 3.27).

   Схема составлена, её входами являются исходные сигналы А, В и С, а выходом — X.

 

   Триггер

   Слово «триггер» происходит от английского слова «trigger» — «защёлка» или спусковой крючок. Так называют электронную схему, которая может находиться только в двух состояниях (их можно обозначить как 0 и 1) и способна почти мгновенно перехо­дить из одного состояния в другое. Триггер изобрели независимо друг от друга М. А. Бонч-Бруевич и англичане У. Икклз и Ф. Джордан в 1918 г.

   В современных компьютерах на основе триггеров строится быстродействующая оперативная память. Один триггер способен хранить один бит данных. Соответственно, для того, чтобы запом­нить 1 байт информации, требуется 8 триггеров, а для хранения 1 килобайта данных — 8*1024 = 8192 триггера.

   Триггеры бывают разных типов. Самый распространённый — это RS-триггер. Он имеет два входа, которые обозначаются как S (англ. set — установить) и R (англ. reset — сброс), и два выхо­да — Q и ˥Q, причём выходной сигнал ˥Q является логическим от­рицанием сигнала Q (если Q =1, то ˥Q = 0, и наоборот).

   RS-триггер можно построить на двух элементах «И-НЕ» или на двух элементах «ИЛИ-НЕ». На рисунке 3.28 показано услов­ное обозначение RS-триггера, внутреннее устройство триггера на элементах «ИЛИ-НЕ» и его таблица истинности.

   Триггер использует так называемые обратные связи — сигна­лы с выходов схем «ИЛИ-НЕ» поступают на вход соседней схе­мы. Именно это позволяет хранить информацию.

   Построим таблицу истинности триггера. Начнем с варианта, когда S= 0 и R = 1. Элемент «ИЛИ-НЕ» в нижней части схемы можно заменить на последовательное соединение элементов «ИЛИ» и «НЕ». Независимо от второго входа, на выходе «ИЛИ» будет 1, а на выходе «НЕ» — ноль. Это значит, что Q = 0 (рис. 3.29).

   Тогда на входе другого элемента «ИЛИ-НЕ» будут два нуля, а на выходе ˥Q — единица (рис. 3.30).

   Поскольку основным выходом считается Q, мы записали в триггер значение 0. Схема симметрична, поэтому легко дога­даться, что при S = 1 и R = 0 мы запишем в триггер 1 (Q = 1).

   Теперь рассмотрим случай, когда S = 0 и R = 0. На входе пер­вого элемента «ИЛИ» будет сигнал Q + 0 = Q, поэтому на выходе Q останется его предыдущее значение (рис. 3.31).

   Аналогично легко показать, что на выходе Q тоже остаётся его предыдущее значение. Это режим хранения бита.

   Для случая S=1 и R=1 мы увидим, что оба выхода стано­вятся равны нулю — в этом нет смысла, поэтому такой вариант запрещён.

   Для хранения многоразрядных данных триггеры объединяют­ся в единый блок, который называется регистром. Регистры (раз­мером от 8 до 64 битов) используются во всех процессорах для временного хранения промежуточных результатов.

   Над регистром, как над единым целым, можно производить ряд стандартных операций: сбрасывать (обнулять), заносить в него код и т. д. Часто регистры способны не просто хранить информа­цию, но и обрабатывать её. Например, существуют регистры-счётчики, которые подсчитывают количество импульсов, поступа­ющих на вход.

   Сумматор

   Как следует из названия, сумматор предназначен для сложения (суммирования) двоичных чисел. Сначала рассмотрим более простой  элемент, который называют полусумматором. Он выполняет сло­жение двух битов с учетом того, что в результате может полу­читься двухразрядное число (с переносом в следующий разряд).

   Обозначим через А и В входы полусумматора, а через Р и S — выходы (перенос в следующий разряд и бит, остающийся в теку­щем разряде). Таблица истинности этого устройства показана на рис. 3.32.

   Легко увидеть, что столбец Р — это результат применения операции «И» ко входам A и В, а столбец S — результат опера­ции «исключающее ИЛИ»:

Р=А*В,       S = A+B=˥A*B+A*˥B.

   Формулу для S можно также записать в таком виде:

   S=˥A*B+A*˥B=(A+B)*(˥A+˥B)=(A+B)*˥(A*B)=(A+B)*˥P,

что позволяет построить  полусумматор,  используя  всего четыре простейших элемента (рис. 3.33).

   Слева показано условное обозначение полусумматора, грече­ская буква Σ здесь (и в математике) обозначает сумму.

   Полный одноразрядный сумматор учитывает также и третий бит С — перенос из предыдущего разряда. Сумматор имеет три входа и два выхода. Таблица истинности и обозначение суммато­ра показаны на рис. 3.34, 3.35.

   Логические функции для выходов сумматора вы можете найти самостоятельно.

   Сумматор можно построить с помощью двух полусумматоров и одного элемента «ИЛИ» (рис. 3.36).

   Сначала складываются биты В и С, а затем к результату до­бавляется бит А. Перенос на выходе сумматора появляется тогда, когда любое из двух промежуточных сложений даёт перенос.

   Для сложения многоразрядных чисел сумматоры объединяют в цепочку. При этом выход Р одного сумматора (перенос в следу­ющий разряд) соединяется с входом С следующего. На рисун­ке 3.37 показано, как складываются два трёхразрядных числа: X =1102 иУ = 0112. Сумма Z = 10012 состоит из четырёх битов, поэтому на выходе последнего сумматора бит переноса будет равен 1.

   Сложение начинается с самого младшего разряда. На вход первого сумматора подаются младшие биты исходных чисел, х1 и y1 , а на третий вход — ноль (нет переноса из предыдущего разря­да). Выход S первого сумматора — это младший бит результата, z1 а его выход Р (перенос) передаётся на вход второго сумматора и т. д. Выход Р последнего из сумматоров представляет собой до­полнительный разряд суммы, т. е. z4

   Сумматор с последовательным переносом, показанный на рис. 3.37, работает слишком медленно. Поэтому в реальных процессорах применяют схемы с ускоренным переносом, которые выполняют сложение намного быстрее, но используют дополнительные логические элементы.

   Сумматор играет важную роль не только при сложении чисел, но при выполнении других арифметических действий. Фактиче­ски он является основой арифметического устройства современ­ного компьютера.

 

Block title

Вход на сайт

Поиск

Календарь

«  Май 2024  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031

Архив записей

Статистика


Онлайн всего: 1
Гостей: 1
Пользователей: 0