Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Основные логические операции




 

Любое преобразование кодов в машине основано на выполнении над ними логических опера­ций. К логическим относятся операции над наборами двоичных (принимающих только значения 0 и 1) аргументов, в результате выполнения которых получают единственное значение: 0 или 1. Логические операции могут быть описаны с помощью специаль­ных функций, принимающих 0 и 1 на наборах двоичных пере­менных и называемых булевыми функциями. Число всевозможных булевых функций от п переменных равно 2 и, следова­тельно, растет очень быстро с ростом п. Для двух переменных число всех булевых функций равно 16, а для одной перемен­ной — 4. Функции одной и двух переменных играют важную роль в теории переключательных схем (схем, реализующих логические преобразования дискретных сигналов).

 

 

Таблица 3.2

 

Значение аргумен­та Значения функций
X f1 f2 f3 f4
         
         

 

Множество всех булевых функций от и переменных может быть описано конечной таблицей, число строк которой рав­но 2", а число столбцов — 22. Например, все четыре булевы функции от одной переменной могут быть описаны табл. 3.2.

Первые две функции не требуют для своей реализации спе­циальных аппаратурных затрат, так как первая f1 (носящая название "константа 0") соответствует разрыву цепи передачи сигнала, а вторая f2 ("константа 1") — постоянному соедине­нию. Третья функция f3 носит название "функции повторе­ния" (имеется в виду повторение значения аргумента), а по­следняя f4 — "функции отрицания", или "функции инверсии".

В электрических цепях элемент, называемый буфером и слу­жащий для развязки цепей и согласования нагрузок, может реализовывать функцию f3, а так называемый инвертирую­щий буфер — функцию инверсии f4. Функцию f3 могут выпол­нить два последовательно включенных инвертора, т. е. элемен­ты, реализующие функцию инверсии сигнала f4. Это свойство инвертора использовано в схеме буфера шины адреса ПМ-ЭВМ (см. §6.3).

 


Рис. 3.1. Схемные обозначения буфера (а) и инвертора (б)

Рис. 3.2. Схемные обозначения:

а — элемента И; б — элемента ИЛИ; в - элемента И-НЕ; г -элемента И ЛИ-НЕ; д — элемента ИСКЛЮЧАЮЩЕЕ ИЛИ

 


 

Схемное обозначение буфера приведено на рис. 3.1, а, а ин­вертора — на рис. 3.1,6. Инвертор является весьма распростра­ненным элементом логических схем, поскольку входит в со­став других логических элементов, реализующих более слож­ные булевы функции. На схеме рис. 3.1 приведены по два схем­ных обозначения буфера и инвертора. Первое обозначение ис­пользуется в основном в англоязычной литературе, второе — в отечественной и рекомендовано ГОСТ.

Среди всех 16 возможных булевых функций от двух пере­менных наибольшее распространение получили следующие пять функций, описываемые в табл. 3.3.

Функция f5 носит название функции логического умноже­ния (конъюнкции), или функции И. Она реализуется с по­мощью логического элемента, называемого схемой И. Графическое обозначение этого элемента приведено на рис. 3.2,а. К особенностям работы элемента И относится то, что сигнал на его выходе, соответствующий логической единице, появля­ется только в том случае, если аналогичные сигналы присутст­вуют одновременно на его двух входах. Если же хотя бы на одном входе элемента И сигнал нулевой, выход также прини­мает значение 0. Понятие функции (схемы) И естественным образом расширяется на п переменных (входов).

Функция f6 носит название функции логического сложения (дизъюнкции), или функции ИЛИ. Она реализуется с помощью логического элемента, называемого схемой ИЛИ. Графическое обозначение элемента ИЛИ приведено на рис. 3.2,6. В отличие от схемы И на выходе элемента ИЛИ единичный сигнал появля­ется при наличии аналогичного сигнала на любом входе. И толь­ко если на обоих входах элемента ИЛИ присутствуют нулевые сигналы, на его выходе формируется тоже нулевой сигнал. Аналогичным образом вводится понятие и-входового элемен­та ИЛИ.

 

Таблица 3.3

Значения аргументов Значения функций
X1 Х2 f5 f6 f7 f8 f9
             
             
             
             

 

Значения функции f7 противоположны значениям функции f на одних и тех же наборах входных сигналов. Поэтому функ­ция f7 называется функцией И-НЕ. Графическое обозначение соответствующего элемента дано на рис. 3.2,в. Его название - элемент И-НЕ.

Значения функции f8 противоположны значениям функ­ции f6 на одних и тех же наборах. Поэтому функция f8 носит название функции ИЛИ-НЕ. Она реализуется элементом с тем же названием, представленным на рис. 3.2,г.

Наконец, последняя функция f9 отличается от функции fб значением выходного сигнала на последнем наборе. Эта функ­ция называется логической неравнозначностью или суммой по модулю 2. Выходной сигнал у соответствующего элемента, реализующего эту функцию (рис. 3.2,д), принимает значение, равное 1, в том и только в том случае, когда сигналы на его входах имеют противоположные значения. Элемент, реализую­щий функцию сложения по модулю 2, является одним из основ­ных логических элементов схемы микропроцессорного блока микро-ЭВМ, поскольку, как мы увидим в дальнейшем, он явля­ется базой построения всех суммирующих схем. Кроме того, если выход элемента, реализующего функцию сложения по модулю 2 (другое название этого элемента - ИСКЛЮЧАЮЩЕЕ ИЛИ), подать на вход инвертора, то на выходе последнего сиг­нал l будет формироваться только при условии совпадения значений сигналов на входах элемента ИСКЛЮЧАЮЩЕЕ ИЛИ. Такой схемой можно воспользоваться для сравнения значений двух одноразрядных чисел. Эта операция в микро-ЭВМ исполь­зуется очень часто.

Все элементы, реализующие рассмотренные основные функ­ции, обладают одной характерной особенностью. Сигналы на выходах этих элементов полностью определяются входными сигналами, т. е. сигналами, присутствующими в рассматривае­мый момент времени на их входах. От сигналов, подававшихся на входы элементов в более ранние моменты времени, выходные сигналы не зависят. Поэтому эти элементы относятся к классу комбинационных схем, или к классу схем, не обладаю­щих памятью.

С помощью комбинационных элементов в ЦГО микро-ЭВМ реализуются все основные логические операции над 8-разрядны­ми словами данных и 16-разрядными словами адресов. К ним относятся операции поразрядного логического умножения (по­разрядное И), сложения (поразрядное ИЛИ), инвертирования (поразрядное НЕ), сравнения. С их помощью реализуются арифметические операции (см. § 3.3). Однако многие из этих операций были бы практически невыполнимы, если бы схема обработки двоичных сигналов не содержала специальных уст­ройств для временного хранения данных.

К таким устройствам принадлежат регистры. Они состоят из элементов, число которых (или длина регистра) равно числу двоичных разрядов поступающих на них данных. Каждый эле­мент способен сохранить на своем выходе значение поступив­шего и затем пропавшего входного сигнала до тех пор, пока не возникнет необходимость сохранения вновь поступившей ин­формации. Эти элементы, называемые триггерами, относятся не к комбинационным схемам, а к схемам с памятью. Триг­гер — это схема с двумя устойчивыми состояниями: ВКЛЮЧЕ­НО, обозначаемое 1, и ВЫКЛЮЧЕНО, обозначаемое 0. Распро­страненным типом триггера является триггер с двумя входами, обозначаемыми R и S. Такой тип триггера носит название RS-триггера. Вход R (Reset — очистка) предназначен для пере­вода триггера в состояние 0, или, как говорят, для очистки триггера. При появлении сигнала на этом входе триггер перево­дится в состояние 0, если до этого он находился в состоянии 1, или остается в состоянии 0, если до этого он находился в со­стоянии 0. Вход S (Set — установка) предназначен для перевода триггера в состояние 1, или, как говорят, для установки триг­гера.

При появлении сигнала на этом входе триггер переводится в состояние 1, если до этого он находился в состоянии 0, или остается в состоянии 1, если до этого он находился в состоя­нии 1. Сигнал, переводящий триггер в то или иное состояние, может быть как единичным (в этом случае вход называется прямым) или нулевым (вход называется инверсным). Так, например, в схеме К155ТМ2 (см. гл. 5) сигналы сброса и уста­новки имеют нулевые значения. В этой схеме триггер остается в состоянии 0 и в том случае, если значение сигнала изменится с 0 на 1. Перевести его в состояние 1 можно только подачей сигнала 0 на вход S (Set — установка). Состояние 1 триггер будет также сохранять при изменении значения сигнала на входе S на единичное.

Триггер типа RS является далеко не единственным и даже не наиболее применяемым в схемотехнике дискретных уст­ройств. Более распространенным, например, является D-триг-гер. Он имеет два входа: D и С. Вход D является информацион­ным, а С — управляющим. Сигнал со входа D переписывается в триггер только при наличии определенного сигнала на управ­ляющем входе С. Некоторые триггеры, реализованные в виде микросхем, имеют входы, соответствующие как RS-триггеру, так и D-триггеру, и могут быть использованы как триггеры любого из указанных двух типов.

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

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

Используемые для одновременного хранения нескольких двоичных разрядов регистры состоят из последовательно со­единенных триггеров и управляющих связей между ними, по­зволяющих организовать последовательную или параллельную подачу запоминаемой информации. С помощью управляющих связей можно сдвигать хранящуюся в регистрах информацию на произвольное число разрядов вправо и влево, а также счи­тывать информацию в последовательной и параллельной фор­мах. Такие регистры называются сдвиговыми регистрами. Они широко используются для реализации арифметических функций, в частности умножения и деления.

Итак, в самом общем случае регистры позволяют осущест­вить следующее:

1) хранить поступившую на них двоичную информацию в течение необходимого времени;

2) осуществлять преобразование последовательных двоич­ных кодов в параллельные и обратно;

3) сдвигать при необходимости хранимые данные вправо

и влево;

4) пользоваться обратным кодом хранимой информации, имеющимся на инверсных выходах триггеров.

 

ОСНОВНЫЕ

 

АРИФМЕТИЧЕСКИЕ

ОПЕРАЦИИ

 

Рассмотренные в предыдущем параграфе логические операции и описываемые ниже арифмети­ческие операции реализуются в арифметическо-логическом устройстве (АЛУ) микропроцессора, на котором построена ПМ-ЭВМ. Операции выполняются над 8-разрядными двоичными числами, причем старший (левый) разряд может использовать­ся для представления знака числа (значение 0 указывает на положительное число, а 1 — на отрицательное).

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

00011 010B = 26D

+ 00001 100 В = 12D

00 100 110B=38D.

При сложении крайних правых четырех разрядов имели место все четыре возможные комбинации сложения одноразрядных чисел: 0+0=0, 1 + 0 = 1, 0+1 = 1, 1+1=0. В четвертом разряде сумма равна 2D, или 10 В. Следовательно, необходим перенос единицы из четвертого разряда в пятый. Тогда в пятом разряде опять же 1 + 1 = 0 и после переноса единицы в шестой разряд сумма в шестом разряде будет 1 + 0+0=1.

Нетрудно заметить, что реализация этих операций может быть выполнена с помощью всего двух логических элементов: суммы по модулю 2, или ИСКЛЮЧАЮЩЕГО ИЛИ, реализую­щего функцию f9, соответствующую выходу суммы S, и эле­мента И, реализующего функцию f5, соответствующую выходу переноса в следующий разряд С (рис. 3.3,с). Эта схема сложения одноразрядных чисел без учета входного переноса из предыду­щего разряда называется полусумматором.

Рис. 3.3. Одноразрядные суммирующие схемы: а - полусумматор; б - полный сумматор

Чтобы реализовать сложение с учетом переноса из предыду­щего разряда, необходимо использовать два полусумматора, соединив их так, как показано на рис. 3.3,6. Эта схема носит название полного сумматора, или одноразрядного сумматора. Для сложения двух 8-разрядных двоичных чисел потребуется 8 одноразрядных сумматоров, соединенных таким образом, чтобы сигнал переноса передавался в каждый следующий раз­ряд на вход Св соответствующего полного сумматора. Сигнал переноса из самого старшего разряда запоминается в специаль­ном триггере, называемом триггером флага переноса, для ука­зания переполнения, имевшего место при сложении.

Поскольку, как указывалось выше, старший разряд может отводиться под знак числа, с помощью 8-разрядной суммирую­щей схемы можно оперировать как с любыми целыми положи­тельными числами в диапазоне от 00 000 000 В = OD до 11 111 111 В = 25 5 D, так и с целыми положительными и отрица­тельными числами в диапазоне от 01 111 111 В = 127D до 10 000 000 В = -128D (в этом случае единица в старшем разряде указывает на отрицательное число, а нуль - на положитель­ное).

Для вычитания одного числа из другого используется спе­циальное кодовое представление отрицательных чисел, называе­мое дополнительным кодом. Дополнительный код (иначе, до­полнение до 2) получается прибавлением единицы к младшему разряду инверсного, или обратного, кода числа (дополнения До 1). Сложение уменьшаемого с вычитаемым, представленным в дополнительном коде, приводит к результату, который полу­чился бы при обычном вычитании. Таким образом, не нужно строить специальную схему для операции вычитания, а можно

воспользоваться все той же схемой 8-разрядного сумматора. Пусть, например, требуется выполнить вычитание: 38 D — 26 D. Перейдем к дополнительному коду для числа — 26. Инвертируя код числа 26D и прибавляя единицу в младшем разряде, полу­чаем:

00 011 010 — прямой код 11 100 101 — обратный код

+

11 100 110 — дополнительный код. Теперь выполним сложение:

00100 110В + 11 100 110В

100001 100 В =12D.

В результате получили двоичный код десятичного числа 12 D и перенос из старшего разряда. Этот сигнал может быть исполь­зован при выполнении арифметических операций с 16-разряд­ными числами по частям в одном 8-разрядном сумматоре. При этом сначала производится сложение в дополнительном коде младших разрядов суммируемых чисел и запоминание сигнала (единицы) переноса, а затем сложение старших разрядов с уче­том этого сигнала переноса.

Для выполнения операций умножения и деления специальных команд в микропроцессоре КР580ИК80А не предусмотрено. Поэтому эти операции в ПМ-ЭВМ выполняются программным путем с использованием операций сложения, сложения с допол­нительным кодом числа (вычитания) и сдвига (см. § 9.1).

Арифметические операции можно производить также над десятичными числами, закодированными так называемыми двоично-десятичными кодами (двоично-кодированное представ­ление десятичного числа). При таком представлении чисел каж­дая десятичная цифра кодируется четырехразрядным двоичным кодом (кодом прямого замещения, или кодом 8421). После сложения двух двоично-кодированных чисел для получения правильного результата необходимо выполнить коррекцию ре­зультата этой операции. Для этого используется блок десятич­ной коррекции. Он осуществляет требуемую коррекцию ре­зультата путем исполнения специальной команды "десятичной коррекции" DAA (см. список команд в приложении 1), кото­рую необходимо выполнить после команды сложения.

 

АРХИТЕКТУРА

ПМ-ЭВМ

И КОМПОНЕНТОВ

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...