Смекни!
smekni.com

Математические и логические основы информатики (стр. 5 из 6)

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

В качестве примера опишем в виде схемы из функциональных элементов один из основных узлов ЭВМ - двоичный сумматор - устройство, предназначенное для сложения n-разрядных двоичных чисел.

Пусть имеются два двоичных числа:

X = xnxn-1 xn-2 … x2 x1 и Y = ynyn-1 yn-2 … y2 y1

(Здесь xi, yj - двоичные цифры 0 или 1.)

Требуется получить число Z, равное сумме чисел X и Y.

Рассмотрим вначале одноразрядный двоичный сумматор на два входа.

Здесь: xi - i- тая цифра числа X; yi - i-тая цифра числа Y; zi - i-тая цифра результата сложения - числа Z; pi+1 - перенос в следующий, (i+1)-ый разряд.

Входы сумматора - xi и yi, выходы сумматора - zi и pi+1.

Опишем выходы сумматора как булевские функции его входов в виде следующей таблицы:

xi yi zi pi+1
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1

Легковидеть:


zi = f1(xi,yi) = Øxi&yi Úxi&Øyi; pi+1 = f2(xi,yi) = xi&yi.

Соответствующие схемы из функциональных элементов представлены на рис.2.23.

Рис.2.23. Функциональная схема одноразрядного двоичного сумматора на два входа.

Рассмотрим теперь одноразрядный двоичный сумматор на три входа. Схематическое представление его на рис.2.24.

В отличие от предыдущего случая теперь мы учитываем перенос из младшего разряда. Здесь: xi - i- тая цифра числа X; yi - i-тая цифра числа Y; pi - перенос из предыдущего, i-го разряда; zi - i-тая цифра результата сложения - числа Z; pi+1 - перенос в следующий, (i+1)-ый разряд.

Входы сумматора - xi, yi, pi, выходы сумматора - zi и pi+1.

Опишем выходы сумматора как булевские функции его входов в виде следующей таблицы:

хi yi pi zi pi+1
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

Соответствующие схема из функциональных элементов представлены на рис.2.25.

Рис.2.25. Функциональная схема одноразрядного двоичного сумматора на три входа.

Сложение n-разрядных двоичных чисел можно осуществить, соединив n сумматоров таким образом, как это показано на рис.2.26.

В данной схеме сумматора первый элемент имеет два входа, а все остальные элементы - по три. Появление 1 на выходе yn+1 означает переполнение разрядной сетки, то есть попытка представить число, содержащее больше, чем n двоичных разрядов.

Рис.2.26. Схема n-разрядного двоичного сумматора.

В некоторых схемах сумматоров "замыкают" выход pn+1 последнего элемента на вход p1 первого. Тогда все элементы схемы сумматора будут иметь по три входа. Такое сложение называют циклическим. Оно находит свое применение при выполнении арифметических операций в ЭВМ.

Работа n-разрядного двоичного сумматора напоминает замóк типа "молния". Но есть существенная разность: замóк застегивается "шаг за шагом", последовательно. А сложение на двоичном сумматоре осуществляется "параллельно" за один шаг (такт), и выход полностью определяется текущим состоянием входов, независимо от их количества. То есть, если в момент времени t подать 2n сигналов на входы xn,xn-1, xn-2, … ,x2, x1 и yn,yn-1, yn-2,…,y2 ,y1, то n сигналов на выходах сумматора zn, zn-1, zn-2, … ,z2, z1 появятся в тот же момент времени, без задержки. Схемы из функциональных элементов называют поэтому комбинационными схемами, или схемами без памяти. Они не запоминают результатов своей предыдущей работы.

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

Такие схемы и способы их анализа и синтеза мы рассмотрим ниже.

Логические операции, выполняемые микропроцессором

Микропроцессор компьютера способен выполнять основные логические операции: конъюнкцию & (обозначение AND), дизъюнкцию

(обозначение OR), отрицание Ø (обозначение NOT), строгую дизъюнкцию (или сложение по модулю 2) Å (обозначение XOR).

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


Булевы алгебры

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

Но, вообще говоря, слово алгебра в математике понимается значительно шире.

А именно: Алгеброй называют множество объектов любой природы с определенными и замкнутыми на этом множестве операциями.

Если какая-либо операция l определена на множестве Q и результат ее также принадлежит этому множеству, то говорят, что операция l замкнута на этом множестве, или множество замкнуто относительно операции l. Например, множество натуральных чисел N замкнуто относительно операций сложения и умножения натуральных чисел, но не замкнуто относительно операций вычитания и деления, которые могут в качестве результата давать значения, не принадлежащие множеству натуральных чисел (вычитание – отрицательные числа, а деление – дробные).

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

Рассмотренная в § 1 настоящей главы теория множеств также является алгеброй в указанном выше смысле. Это алгебра множеств, объектами которой являются множества, а определенными и замкнутыми на этих объектах являются операции объединения, пересечения, дополнения.

Точно так же, рассмотренная в § 2 настоящей главы логика высказываний является алгеброй. Это алгебра высказываний, объектами которой являются высказывания, а определенными и замкнутыми на этих объектах являются операции дизъюнкции, конъюнкции и отрицания.

Две последние алгебры принадлежат к особому типу алгебр, называемых булевыми.[8])

Булева алгебра представляет собой множество объектов (любой, но одинаковой, природы) с двумя «особыми» объектами («константами») - «единица» (I) и «нуль» (О), и двумя замкнутыми на множестве объектов операциями «сложения» (+) и «умножения» (´), обладающими следующими свойствами:

коммутативность + и ´:

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´(B+C)=(A´B)+(A´C);

идемпотентность + и´:

A+A=A, A´A=A.

Кроме того, «особые» объекты («константы») I и O обладают следующими свойствами:


A+O=A, A+I=I, A´I=A, A´O=O.

С точки зрения этого определения алгебра множеств является булевой алгеброй, в которой роль «сложения» играет операция объединения множеств (

), роль «умножения» – операция пересечения множеств (
), роль константы «нуль» – пустое множество (Æ), роль «единицы» - универсальное множество (U). Легко проверить, что все указанные выше свойства операций и констант булевой алгебры здесь выполняются.

Алгебра высказываний также является булевой алгеброй. В ней роль «сложения» играет операция дизъюнкции (Ú), роль «умножения» – операция конъюнкции (&), роль “нуля” – логическая константа Л, роль “единицы” – логическая константа И. И опять-таки легко проверить, что все указанные выше свойства операций и констант булевой алгебры выполняются.

Аналогично можно убедиться в том, что «алгебра переключательных схем» также является булевой: «сложению» будет соответствовать параллельное соединение контактов, «умножению» – последовательное соединение, константе «нуль» – всегда разомкнутый контакт, «единице» – всегда замкнутый контакт.[9])

В заключение приведем пример еще одной булевой алгебры – «алгебры максимумов и минимумов». Примем в качестве объектов (элементов) нашей алгебры, например, множество всех чисел отрезка [0,1], т.е. 0£х£1. В качестве операции «сложения» будем рассматривать операцию взятия максимального из двух чисел x и y и обозначать ее max (x,y), в качестве операции «умножения» - операцию взятия минимального из двух чисел x и y и обозначать ее min (x,y). В качестве константы «нуль» примем минимальное число из рассматриваемого отрезка, то есть число 0, а в качестве «единицы» – максимальное число из рассматриваемого отрезка – 1.