2.4. Логические основы ЭВМ

Основные сведения из алгебры логики

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

Вся информация в ЭВМ представляется в двоичной системе счисления. Поставим в соответствие входным сигналам отдельных устройств ЭВМ соответствующие значения хi(i=1,n), а выходным сигналам — значения функций yj (j=1,m)

Представление схемы ЭВМ
Представление схемы ЭВМ

В этом случае зависимостями

yj = f(x1,x2,…,xi,…,xn),  (2.2)

где xi – i-й вход; n – число входов; yj– j-й выход; m – число выходов в устройстве,

можно описывать алгоритм работы любого устройства ЭВМ. Каждая такая зависимость у, является «булевой функцией, у которой число возможных состояний и каждой ее независимой переменной равно двум» (стандарт ISO 2382/2-76), т.е. функцией алгебры логики, а ее аргументы определены на множестве {0,1}. Алгебра логика устанавливает основные законы формирования и преобразования логических функций. Она позволяет представить любую сложную функцию в виде композиции простейших функций. Рассмотрим наиболее употребительные из них.

Известно, что количество всевозможных функций N от n аргументов выражается зависимостью

N=22n.   (2.3)

При n=0 можно определить две основные функции (N=2), не зависящие от каких-либо переменных: у0 , тождественно равную нулю (у0=0), и у1 , тождественно равную единице (у1=1).

Технической интерпретацией функции у1=1 может быть генератор импульсов. При отсутствии входных сигналов на выходе этого устройства всегда имеются импульсы (единицы). Функция у0=0 может быть интерпретирована отключенной схемой, сигналы от которой не поступают ни к каким устройствам.

При n=1 зависимость (2.3) дает N=4. Представим зависимость значений этих функций от значения аргумента х в виде специальной таблицы истинности (таблице  2.4).

Таблица функций от одной переменной:

Yj

x

Y0 Y1 Y2 Y3
0 0 1 0 1
1 0 1 1 0

Таблицы истинности получили такое название, потому что они определяют значение функции в зависимости от комбинации входных сигналов. В этой таблице, как и ранее, у0=0 и y1=1. Функция y2=х, а функция у3=x – (инверсия x).

Этим функциям соответствуют определенные технические аналоги. Схема, реализующая зависимость у2=х, называется повторителем,
а схема y3=х – инвертором.

При n=2, N=16, т.е. от двух переменных, можно построить шестнадцать различных функций. В таблице 2.5 представлена часть из них, имеющая фундаментальное значение при построении основных схем ЭВМ.

Таблица функций от двух переменных:

Yi Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9 Y15
X1 X2
00 0 1 0 1 0 1 0 1 1 0
01 0 1 0 1 1 0 0 1 0 1
10 0 1 1 0 1 0 0 1 0 1
11 0 1 1 0 1 0 1 0 1 0

Заметим, что в левой части таблицы перечислены всевозможные комбинации входных переменных (наборы значений), а в правой — возможные реакции выходных сигналов. В таблице 2.5 представлены функции у49, полностью соответствующие функциям таблице 2.4, а также новые, часто используемые и интересные функции у49. При этом местоположение функций и их нумерация в таблице особого значения не имеют. По данной таблице нетрудно составить аналитическое выражение (зависимость) для каждой функции от двух аргументов вида (2.2). Для этого наборы переменных, на которых функция принимает значение единицы, записываются как конъюнкции (логическое умножение) и связываются знаками логического сложения. Такие формы функций получили название дизъюнктивных нормальных форм (ДНФ). Если в этих функциях конъюнкции содержат все без исключения переменные в прямом или инверсном значениях, то такая форма функций называется совершенной.

Функция у4 представляет собой функцию логического сложения, дизъюнкцию. Она принимает значение единицы, если значение единицы имеет хотя бы одна переменная х1 или х2:

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

Функция y5 является инверсной функцией по отношению к y4, она имеет название «отрицание дизъюнкции»: ¨

Функция у6 является функцией логического умножения (конъюнкция). Она очень похожа на операцию обычного умножения и принимает значение единицы в тех случаях, когда все ее переменные равны единице:

Функция y7 является инверсной функцией по отношению к у6, она называется «отрицание конъюнкции» или «штрих Шеффера»:

Функция y8 называется логической равнозначностью, она принимает значение единицы, если все ее переменные имеют одинаковое значение (или 0 или 1):

Функция y9 является инверсной по отношению к y8, она принимает значение единицы, если ее переменные имеют противоположные значения:

Ниже будет показано, что функции у8 и у9 являются основой для построения сумматоров, так как они соответствуют правилам формирования цифр двоичных чисел при сложении (вычитании).

Из перечисленных функций двух переменных можно строить сколь угодно сложные зависимости, отражающие алгоритмы преобразования информации, представленной в двоичной системе счисления. Алгебра логики устанавливает правила формирования логически полного базиса простейших функций, из которых могут строиться любые более сложные. Наиболее привычным базисом является набор трех функций {инверсия — Ø , дизъюнкция — \/, конъюнкция — /\ или &}. Работа с функциями, представленными в этом базисе, очень похожа на использование операций обычной алгебры.

Алгебра логики устанавливает, что существуют и другие комбинации простейших логических функций, обладающих свойством логической полноты. Например, наборы логических функций {инверсия, дизъюнкция} и {инверсия, конъюнкция} также являются логически полными. Наиболее интересны минимальные базисы, включающие по одной операции {«отрицание дизъюнкции (Ø \/ )»} и {«отрицание конъюнкции (Ø /\)»}. Однако работа с функциями, представленными в указанных базисах, требует от специалистов по проектированию ЭВМ определенных навыков.

Законы алгебры логики

Из определения вышеприведенных функций можно установить целый ряд простейших свойств:

В алгебру логики установлен целый ряд законов, с помощью которых возможно преобразование логических функций (ЛФ).

Название закона Логическое выражение
Идемпотентности x/\x=x  x\/x=x
Операции с константами x\/1=1

x/\1=x

x\/0=x

x\/1=1

Операции с переменной и ее инверсией x \/ Øx=1

x /\ Øx=0

коммутативный (переместительный)

 

x1/\x2=x2/\x1
ассоциативный (сочетательный)

 

(x1/\x2)/\x3=(x1/\x3)/\x2=x1/\(x2/\x3)
дистрибутивный (распределительный)

 

Закон поглощения
Закон склеивания

 

Закон свёртки

 

где F — логическая функция общего вида, не зависящая от переменной х
Правило де Моргана

 

Закон двойного отрицания Ø (Øx)=x

Убедиться в тождественности приведенных зависимостей можно путем аналитических преобразований выражений или путем построения таблицы истинности для ЛФ, находящихся в левой и правой частях.

Используя данные зависимости, можно преобразовывать исходные выражения в более простые (минимизировать их). По упрощенным выражениям можно построить техническое устройство, имеющее минимальные аппаратурные затраты.

Понятие о минимизации логических функций

Проблема минимизации логических функций решается на основе применения законов склеивания и поглощения с последующим перебором получаемых дизъюнктивных форм и выбором из них оптимальной (минимальной). Существует большое количество методов минимизации ЛФ. Все они отличаются друг от друга спецификой применения операций склеивания и поглощения, а также различными способами сокращения переборов. Среди аналитических методов наиболее известным является метод Квайна-Маккласки, среди табличных — метод с применением диаграмм Вейча и карт Карно. Графические методы минимизации отличаются большей наглядностью и меньшей трудоемкостью. Однако их применение эффективно при малом числе переменных n<5.

Рассмотрим последовательность действий минимизации ЛФ на примере.

Пример 2.15. Найти минимальную дизъюнктивную форму функции, заданной таблицей истинности (таблица 2.6).

Таблица истинности функции Y = f (X1,X2,X3)

X1 Х2 Х3 Y Логическое выражение
0 0 0 1
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 0
1 1 1 1

Эта функция интересна тем, что имеет несколько минимальных форм. По данным таблицы запишем аналитическое выражение:

Штриховыми линиями в этом выражении отмечены пары конъюнкций, к которым можно применить операцию склеивания типа. Особенно это видно при использовании диаграммы Вейча, в которой «склеиваемые» конъюнкции находятся по соседству друг с другом. Диаграмма Вейча просто по-другому интерпретирует таблицу истинности (таблица 2.7).

 Диаграмма Вейча функции Y
Диаграмма Вейча функции Y

После выделения конъюнкций (они отмечены звездочкой), видно, какие конъюнкции могут образовывать пары для склеивания.

В результате применения операций склеивания и поглощения можно получить другое аналитическое выражение:

2.6

в котором отсутствуют возможности дальнейших склеивании и поглощений. Однако последнее выражение является избыточным, так как отдельные конъюнкции могут быть «лишними», т.е. их «составные части» могут включаться в другие конъюнкции. У данной функции существует пять безызбыточных дизъюнктивных форм, из которых только две являются минимальными:

2.7

Из приведенных зависимостей видно, что только функции у1 и у4 являются минимальными формами функций, так как они содержат наименьшее число конъюнкций и имеют минимальный ранг этих конъюнкций.

Данный пример показывает, что диаграммы Вейча не дают сразу самый оптимальный вариант для построения ДНФ. Лучше использовать другой табличный метод – метод Карно (карты Карно).

 

             x1 x2

x3

00 01 10 11

0

1 1 0

1

1 0 1 1

1

Рассмотрим алгоритм построения ДНФ. Внутри таблицы (карты) выбираются блоки, содержащие максимальное количество подряд идущих 1 (их количество должно быть степенью 2), таким образом, чтобы покрыть все 1, присутствующее в таблице (при построении блоков допускается их пересечение, но не поглощение).

Замечание: Чем больше размер блока, тем короче логическое выражение.

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

Таким образом, для приведенного примера ДНФ будет иметь вид:

2.9, что совпадает с предыдущим решением.

Минимизация «вручную» возможна только для функций, зависящих от 4-5 переменных, так как трудоемкость переборов растет в квадратичной зависимости от числа переменных. Применение мощных ЭВМ для этих Целей позволяет расширить границы до п= 12-15. Если при этом учесть, что функции могут быть частично определены (значения функций на некоторых наборах переменных можно определять произвольно), а также что иногда приходится решать задачи совместной минимизации систем ЛФ, то минимизация ЛФ становится сложной инженерной, практической и научной проблемой.

Техническая интерпретация логических функций

Каждой логической операции соответствует свой аппаратный блок (см. п.2.4.1.). На рисунке 2.2. приведены базовые блоки: повторитель, конъюнктор (И-&), дизъюнктор (ИЛИ-1), инвертор (НЕ — Ø), отрицание конъюнкции (И-НЕ), отрицание дизъюнкции (ИЛИ-НЕ).

дизъюнктор

потовритель

 

 

 

 

 

потворитель

image102

 

 

 

 

По логическим выражениям проектируются схемы ЭВМ. При этом следует придерживаться следующей последовательности действий.

  1. Записать словесное описание работы схемы.
  2. Формализовать словесное описание, записав функции в дизъюнктивной (конъюнктивной) совершенной нормальной форме по таблицам истинности.
  3. Минимизировать логические зависимости с целью их упрощения.
  4. Представить полученные выражения в выбранном логически полном базисе элементарных функций.
  5. Построить схему устройства.
  6. Проверить работоспособность полученной схемы.