Релейно-контактные схемы в ЭВМ
Первая электронно-вычислительная машина была создана в 1946 г. в США. Для записи и обработки в ЭВМ числовой и символьной информации удобным с технической точки зрения оказался язык двоичных чисел — нулей и единиц. Поэтому естественно было ожидать, что методы математической науки, исследовавшей двузначные функции, рано или поздно найдут применение в процессе создания такой техники. Впервые предположение о возможности применения алгебры логики в технике было высказано в 1910 г. известным физиком П.Эренфестом (1880— 1933). Булевы Функции стали математическим аппаратом для исследования релейно-контактных схем (эта связь окончательно была осознана в 1930-х гг.), а сами схемы к середине XX в. нашли многочисленные применения в автоматической технике — в телефонии, железно-дорожной сигнализации, централизации и блокировке, релейной защите, телемеханике и, наконец, — при проектировании быстродействующих ЭВМ. О некоторых простых, но очень важных ре-лейно-контактных схемах, используемых в ЭВМ, и пойдет речь в настоящем параграфе.
Двоичный полусумматор
Числа в ЭВМ хранятся в двоичной системе в ячейках памяти поразрядно. С технической точки зрения в двоичной системе оказалось удобно не только хранить числа, но и выполнять над ними различные действия. Так, сложение двоичных чисел осуществляется на основе следующих правил:
Сложение по этим правилам делается по каждому разряду двух ячеек, в которых хранятся слагаемые. Если же происходит переполнение данного разряда (что возможно только при сложении ), то происходит перенос единицы в следующий разряд. Таким образом, процесс сложения в одном разряде может быть охарактеризован двумя булевыми функциями: и , зависящими от складываемых чисел и . Первая функция представляет собой значение суммы, записываемое в тот же разряд соответствующей ячейки, в котором происходит сложение. Вторая функция — функция переноса — дает значение числа, переносимого в следующий, более старший разряд при переполнении разряда, в котором происходит сложение. Таблица истинности этих функций следующая:
Используя СДН-формы, выписываем для них выражения, по которым легко построить соответствующие релейно-контактные схемы:
Одноразрядный двоичный сумматор
При сложении двух чисел описанные в предыдущем пункте действия совершаются лишь в первом (самом младшем) разряде ячеек, хранящих слагаемые. Во всех же остальных разрядах, начиная со второго, в процессе сложения участвуют уже не два слагаемых и , но еще и число, переносимое из предыдущего разряда и равное значению функции переноса в этом разряде. Таким образом, функция сумма в k-м разряде зависит от трех аргументов, т.е. . От этих же аргументов зависит и функция переноса из k-го разряда . Составим таблицу значений этих функций:
Используя СДН-формы, найдем для них выражения, которые затем упростим, преобразуя тождественным образом:
Соответствующие схемы предлагается нарисовать самостоятельно. Построив такие схемы для каждого разряда и обеспечив их надлежащее соединение, можно получить схему многоразрядного двоичного сумматора, осуществляющего сложение двоичных чисел в ЭВМ.
Шифратор и дешифратор
Человек привык оперировать с числами в десятичной системе счисления. Для ЭВМ более удобна двоичная система. Поэтому важную роль в ЭВМ играют устройства, обеспечивающие взаимопонимание человека и машины, т.е. устройства, переводящие информацию с языка человека на язык машины и обратно. Такими устройствами являются, например, шифраторы, осуществляющие перевод чисел из десятичной системы в двоичную, и дешифраторы, осуществляющие обратный перевод. Покажем, как конструируется шифратор. Имеется следующее соответствие между десятичной и двоичной записями:
Каждую колонку из нулей и единиц в правом столбце таблицы можно мыслить себе как колонку значений одной из булевых функций: . Нужно лишь отчетливо усмотреть булеву (т.е. двузначную) природу ее аргументов.
В самом деле, можем считать, что каждая из этих функций зависит от десяти аргументов
Причем зависимость следующая (она обусловлена предыдущей таблицей соответствий):
Каждая из функций и зависит от десяти аргументов. Поэтому таблица их значений должна содержать (что установлено при доказательстве теоремы 10.3) строк. Отсутствие остальных строк в приведенной таблице означает, что на указанных десяти наборах значений аргументов
функции должны принимать указанные значения, а на остальных наборах их значения могут быть какими угодно. Это, в свою очередь, означает, что в качестве каждой из функций можно взять довольно много (но все же конечное число) функций.
Используя СДН-форму, найдем, например, выражение для (считая, что на всех не указанных наборах значений ее аргументов она принимает значение 0):
Для остальных функций и найти соответствующие выражения предлагается самостоятельно.
Если заметили ошибку, опечатку или есть предложения, напишите в комментариях.
|