- •Д.В. Топольский, и.Г. Топольская Арифметические и логические основы микропроцессорной техники
- •Предисловие
- •Введение
- •1. Формы представления чисел
- •2. Двоичная система счисления
- •3. Восьмеричная система счисления
- •4. Шестнадцатеричная система счисления
- •5. Двоично-десятичные числа
- •6. Двоичная арифметика
- •7. Арифметика в обратном и дополнительном кодах
- •8. Математическая логика
- •Ответы к упражнениям
8. Математическая логика
Любая, даже самая примитивная ЭВМ — сложнейшее техническое устройство. Но даже такое сложное устройство, как и все в природе и в технике, состоит их простейших элементов. Все устройства ЭВМ состоят из десятков и сотен тысяч элементарных логических схем, так называемых вентилей, объединяемых по правилам и законам (аксиомам) алгебры логики в схемы и модули.
Автором алгебры логики является английский математик Джордж Буль. Занимаясь исследованием законов мышления, он применил в логике систему формальных обозначений и правил, близкую к математической. Впоследствии эту систему назвали логической алгеброй или булевой алгеброй. Правила этой системы применимы к самым разнообразным объектам и их группам (множествам, по терминологии автора). Основное назначение системы Буля состояло в том, чтобы кодировать логические высказывания и сводить структуры умозаключений к простым выражениям, близким по форме к математическим формулировкам. Результатом формального расчета логического выражения является одна из двух логических констант: истина или ложь.
Значение логической алгебры долгое время игнорировалось, поскольку ее приемы и методы не содержали практической пользы для науки и техники того времени. Однако, когда появилась принципиальная возможность создания средств вычислительной техники на электронной базе, операции введенные Булем, оказались весьма полезны. Они изначально ориентированы на работу только с двумя понятиями: истинности и ложности высказывания. Нетрудно понять, как они пригодились для работы с двоичным кодом, который в современных компьютерах тоже представляется всего двумя сигналами: 0 и 1.
Под высказыванием понимается повествовательное предложение, в котором что-либо утверждается или отрицается. В соответствии с такой двоичной природой высказываний условились называть их логическими двоичными переменными и обозначать «1» в случае истинности и «0» в случае ложности. Примерами логических переменных являются высказывания: X = «5 – это четное число», Y = «Квадрат – это геометрическая фигура». На основании этих высказываний можно записать X = 0, Y = 1, так как высказывание X ложно, а высказывание Y истинно.
Высказывания могут быть простыми и сложными: простые содержат одно законченное утверждение, сложные образуются из двух или большего числа простых высказываний, связанных между собой некоторыми логическими связями. Формализация и преобразование связей между логическими переменными осуществляются в соответствии с правилами алгебры логики.
Высказывания строятся над множеством {B, , , , 0, 1}, где B — непустое множество, над элементами которого определены три операции: — отрицание (НЕ), — конъюнкция (И), — дизъюнкция (ИЛИ), а также две константы — логический ноль 0 и логическая единица 1.
Отрицание
(инверсия). В
русском языке логической операции
отрицание соответствует частица НЕ (в
некоторых высказываниях применяется
оборот «неверно, что…»). Отрицание —
унарная (одноместная) операция.
Записывается в виде: X
или
.
Конъюнкция (логическое умножение). В русском языке она выражается союзом И. В математической логике используются знаки , & или . Конъюнкция — бинарная (двухместная) операция. Записывается в виде: X Y, X & Y или X Y. Значение такого выражения будет Ложь, если значение хотя бы одного из операндов ложно.
Дизъюнкция (логическое сложение). В русском языке она выражается союзом ИЛИ. В математической логике используются знаки или +. Дизъюнкция — бинарная операция. Записывается в виде: X Y или X + Y. Значение такого выражения будет Истина, если значение хотя бы одного из операндов истинно.
Простейшим и наиболее широко применяемым примером такой алгебраической системы является множество B, состоящее всего из двух элементов: B = {0 (Ложь), 1 (Истина)}. Легко показать, что на данном множестве B можно задать четыре унарные и шестнадцать бинарных отношений, представленных в таблице, однако все они могут быть получены через суперпозицию трёх выбранных операций.
Функции и их обозначение |
Аргументы |
Название функции |
|||||||
X |
Y |
X |
Y |
X |
Y |
X |
Y |
||
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
||
f1 (XY) |
0 |
0 |
0 |
1 |
Конъюнкция (логическое И) |
||||
f2 (XY) |
0 |
1 |
1 |
1 |
Дизъюнкция (логическое ИЛИ) |
||||
f3 (XY) |
1 |
0 |
0 |
1 |
Эквивалентность |
||||
f4 (XY) |
0 |
1 |
1 |
0 |
Сумма по модулю 2 |
||||
f5 (XY) |
1 |
0 |
1 |
1 |
Импликация от y к x |
||||
f6 (XY) |
1 |
1 |
0 |
1 |
Импликация от x к y |
||||
f7 (XY) |
1 |
0 |
0 |
0 |
Стрелка Пирса («антидизъюнкция») |
||||
f8 (XY) |
1 |
1 |
1 |
0 |
Штрих Шеффера («антиконъюнкция») |
||||
f9 (XY) |
0 |
0 |
1 |
0 |
Инверсия импликации f5 |
||||
f10 (YX) |
0 |
1 |
0 |
0 |
Инверсия импликации f6 |
||||
f11 ( ) |
1 |
1 |
0 |
0 |
Отрицание Х |
||||
f12
( |
1 |
0 |
1 |
0 |
Отрицание Y |
||||
f13 (X) |
0 |
0 |
1 |
1 |
Переменная Х |
||||
f14 (Y) |
0 |
1 |
0 |
1 |
Переменная Y |
||||
f15 (1) |
1 |
1 |
1 |
1 |
Константа 1 |
||||
f16 (0) |
0 |
0 |
0 |
0 |
Константа 0 |
||||
Логическая функция (логическое выражение) — формула, содержащая только логические величины и знаки логических операций. Результатом вычисления логической функции является Истина или Ложь.
Не вся система Буля (как и не все предложенные им логические операции) были использованы при создании электронных вычислительных машин. Наибольший практический интерес представляют функции отрицания, логического умножения и логического сложения.
Логическое отрицание НЕ переменной X есть логическая функция F, которая истинна только тогда, когда переменная X имеет значение Ложь, и наоборот.
В алгебре логики любые функции удобно изображать в виде таблицы соответствия всех возможных комбинаций входных логических переменных и выходной логической функции. Для функции логического отрицания НЕ эта таблица имеет вид:
X |
F |
0 |
1 |
1 |
0 |
Графически эта функция обозначается кружком на входе или выходе логического символа (рис. 1).
Рис. 1. Графическое изображение функции логического отрицания НЕ
Логическое умножение И двух переменных X и Y есть логическая функция F, которая истинна тогда и только тогда, когда одновременно истинны входные переменные. Для функции логического умножения И таблица истинности имеет вид:
X |
Y |
F |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
Графическое изображение функции логического умножения И представлено на рис. 2.
Рис. 2. Графическое изображение функции И
Логическое сложение ИЛИ двух переменных X и Y есть логическая функция F, которая истинна, когда хотя бы одна из входных переменных истинна. Для функции логического сложения ИЛИ таблица соответствия имеет вид:
X |
Y |
F |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
На рис. 3 представлено графическое изображение функции логического сложения ИЛИ.
Рис. 3. Условно-графическое изображение функции логической суммы
Три рассмотренные функции позволяют реализовать любую логическую зависимость, они лежат в основе базовых схемотехнических элементов.
Базисом называется совокупность элементов, с помощью которых схемотехнически можно реализовать устройство любой сложности. То есть, базис — это те элементы, при помощи которых можно сделать любое устройство (речь идет о цифровой технике). Из указанных простейших базовых логических элементов собирают, конструируют сложные логические схемы. Например, сумматоры, шифраторы, дешифраторы и др. Большие интегральные схемы (БИС) и сверхбольшие (СБИС) интегральные схемы также содержат в своем составе (на кристалле кремния площадью в несколько квадратных сантиметров) десятки тысяч вентилей.
Это возможно еще и потому, что базовый набор логических схем (инвертор, конъюнктор, дизъюнктор) является функционально полным (любую логическую функцию можно представить через эти базовые вентили), представление логических констант в них одинаково (одинаковы электрические сигналы, представляющие 1 и 0) и различные схемы можно «соединять» и «вкладывать» друг в друга (осуществлять композицию и суперпозицию схем). На их основе можно сделать все вышеперечисленные элементы. Таким способом конструируются более сложные узлы микропроцессорных систем— ячейки памяти, регистры, шифраторы, дешифраторы, а также сложнейшие интегральные схемы.
Кроме того, широкое распространение получили в реализации современных логических схем функции И-НЕ, ИЛИ-НЕ, исключающее ИЛИ.
«И-НЕ» — это схема И и схема НЕ, сложенные вместе. Операция, которую производит такой элемент, называется инверсией логического умножения или отрицанием логического умножения, или инверсией конъюнкции, а также штрих Шеффера. В виде формулы операция И-НЕ записывается так: F = X | Y.
Таблица истинности для этой функции представлена в следующем виде:
X |
Y |
F |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
Графическое изображение функции И-НЕ представлено на рис. 4.
Рис. 4. Графическое представление функции И-НЕ
Операция, выполняемая элементом ИЛИ-НЕ, называется инверсией логического сложения или инверсией дизъюнкции и еще словосочетанием «стрелка Пирса». В виде формулы эта функция записывается так: F = X↓Y.
Значения этой функции при различных X и Y могут быть представлены в таблице истинности:
X |
Y |
F |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
На рис. 5 представлено графическое изображение инверсии логического сложения.
Рис. 5. Графическое изображение функции ИЛИ-НЕ
Операция, выполняемая таким элементом как «ИСКЛЮЧАЮЩЕЕ ИЛИ», обозначается плюсиком в кружочке, т. е. вот таким символом . В виде уравнения функция записывается так: F = XY. Читается это, как «либо икс, либо игрек». Таблица истинности элемента ИСКЛЮЧАЮЩЕЕ ИЛИ следующая:
X |
Y |
F |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
Элемент ИСКЛЮЧАЮЩЕЕ ИЛИ может быть представлен следующее схемой (рис. 6).
Рис. 6. Графическая реализация ИСКЛЮЧАЮЩЕГО ИЛИ
При преобразовании логических выражений следует учитывать приоритет выполнения логических операций. В порядке убывания старшинства, логические операции расположены в следующем порядке: отрицание, конъюнкция, дизъюнкция. Кроме того, на порядок выполнения операций влияют скобки, которые можно использовать в логических выражениях.
Табличный способ определения истинности сложного выражения имеет ограниченное значение, так как при увеличении количества логических переменных приходится перебирать слишком много вариантов. В таких случаях используют правила и законы алгебры логики, которые позволяют значительно упростить логические уравнения и функции.
Аналогично обычной алгебре, в булевой действительны свойства перестановки, сочетательности и распределительности:
a + b = b + a;
a b = b a;
a + (b + c) = (a + b) + c;
a (b c) = (a b) c;
a (b + c) = a b + a c.
Помимо этих есть и другие, свойственные только алгебре логики, законы:
— Законы одинарных элементов:
a 1 = a;
a + 1 = 1;
a 0 = 0;
a + 0 = a;
— Законы отрицания (правила де Моргана):
— Распределительность дизъюнкции:
a + (b c) = (a b) + (a c);
— Правила поглощения:
a + (a b) = a;
a (a + b) = a.
Таким образом, зная свойства цифровых устройств и основы булевой алгебры, недостающий элемент легко заменяется другими. Причем схемотехническая часть может быть любой, главное, чтобы выполнялось условие совпадения таблиц истинности. Подобным образом менять можно почти все, суть в том, чтобы максимально упростить схемотехнику при сохранении ее простоты и легкоповторяемости.
Упражнения
1.Чему равно количество различных комбинаций переменных для таблицы истинности логической функции а)F (a,b,c); б) F (k,l,m,n). Ответ представить в восьмеричной системе счисления.
2. Составить таблицы истинности для следующих логических функций:
а) XYZ;
б) XYZ;
в) XYZ;
г) XYZ.
