Смекни!
smekni.com

Применение алгебры высказываний в информатике (стр. 2 из 4)

a b (a,b) = S (a,b) = P
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1

где (a,b) = S – значение цифры суммы в данном разряде;

(a,b) = P – цифра переноса в следующий (старший) разряд.

Согласносоотношению (2), можнозаписать:

S = (a,b) = 0*a*b + 1*a*b + 1*a*b + 0*a*b = a*b + a*b;

P = (a,b) = 1*a*b + 0*a*b + 0*a*b + 0*a*b = a*b.

Самой простой логической операцией является операция НЕ (по-другому отрицание, дополнение или инверсия; обозначают NOTX). Результат отрицания всегда противоположен значению аргумента. Операция Не является унарной, т.е. имеет всего один операнд. В отличии от неё операции И (AND) и ИЛИ (OR) являются бинарными, так как представляют собой результаты действий над двумя логическими величинами.

Логическое И называют конъюнкцией, или логическим умножением, а ИЛИ – дизъюнкцией, или логическим сложением.

Операция И имеет результат «истина» только в том случае, если оба её операнда истинны. Например, рассмотрим высказывание «Для установки ОС “Windows’95” требуется процессор не ниже 80386 и не менее 4 Мбайт оперативной памяти». Из него следует, что установка будет успешной только при одновременном выполнении обоих условий: даже если у вас в машине Pentium, но мало ОЗУ, «Windows’95» работать откажется.

Операция ИЛИ «менее привередлива» к исходным данным. Она даёт истину, если значение «истина» имеет хотя бы один из операндов. Разумеется, в случае, когда справедливы оба аргумента одновременно, результат по-прежнему истинный.

Приведённые ниже таблицы значений переменных для логических операций называются таблицами истинности. В них указываются всевозможные

комбинации логических переменных Xи Y, а также соответствующие им результаты операций.

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

X Y X AND Y X OR Y
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 1
X NOT X
0 1
1 0

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

В вычислительной технике также часто используется операция, исключающая ИЛИ (XOR), которая отличается от обыкновенного ИЛИ только при X=1 и Y=1.

Дополнительные логические операции

X Y X XOR Y NOT (X AND Y)
0 0 0 1
0 1 1 1
1 0 1 1
1 1 0 0

Как видно из таблицы, операция XORфактически сравнивает на совпадение два двоичных разряда. Хотя теоретически основными базовыми логическими операциями называют именно И, ИЛИ, НЕ, на практике по технологическим причинам в качестве основного логического элемента используется элемент И-НЕ, на базе которого могут быть скомпонованы все базовые логические элементы (И, ИЛИ, НЕ), а значит и любые другие, более сложные.

Схемная реализация элементарных логических операций.

Любую достаточно сложную функцию можно реализовать, имея относительно простой набор базовых логических операций. Первоначально были разработаны и выпускались микросхемы, соответствующие основным логическим действиям. Потребитель, комбинируя имеющиеся в его распоряжении элементы, мог получить схему с реализацией необходимой логики. Но подобное «строительство здания из отдельных кирпичиков» не может удовлетворить практические потребности. Промышленность начала выпускать более сложные узлы: триггеры, регистры, счетчики, дешифраторы, сумматоры и др. новые микросхемы давали возможность реализовать ещё более сложные электронные логические устройства. Последовал переход к большим интегральным схемам (БИС), представлявшим из себя функционально законченные узлы, а не отдельные компоненты для их создания. Наконец, дальнейшая эволюция технологий производства ИМС привела к настолько высокой степени интеграции, что в одной БИС содержалось функционально законченное изделие: часы, калькулятор, небольшая специализированная ЭВМ…

Если посмотреть на внутреннее устройство современного компьютера , то там присутствуют ИМС очень высокого уровня интеграции: микропроцессор, модули ОЗУ, контроллеры внешних устройств и др. фактически каждая микросхема или небольшая группа микросхем образуют функционально законченный блок.

Обработка информации в ЭВМ происходит путём последовательного выполнения элементарных операций. Эти операции менее многочисленны, нежели набор команд ЭВМ. К элементарным операциям относятся: установка – запись в операционный элемент (например, регистр) двоичного кода; приём – передача (перезапись) кода из одного элемента в другой; сдвиг – изменение положения кода относительно исходного; преобразование – перекодирование; сложение – арифметическое сложение целых двоичных чисел и т.д. Для выполнения каждой из этих операций сконструированы электронные узлы, являющиеся основными узлами вычислительных машин – регистры, счётчики, сумматоры, преобразователи кодов и т.д.

В основе каждой из элементарных операций лежит некоторая последовательность логических действий. Проанализируем, например, операцию сложения двух чисел: 3 и 6. Имеем:

011

+110

1011

На каждом шаге этой деятельности двум двоичным цифрам сопоставляется двоичное число (одно- или двузначное) по правилам: (0,0) 0, логической бинарной функцией. Если дополнить это логическим правилом переноса единицы в старший разряд, то сложение полностью сведётся к цепочке логических операций.

Для дальнейшего рассмотрения необходимо знать условные обозначения базовых логических элементов.

Условные обозначения основных логических элементов.

И ИЛИ НЕ И-НЕ исключающее

ИЛИ

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

Чтобы ответить на вопрос: как с помощью таких элементарных схем реализовать сложные цифровые устройства, в качестве характерных устройств выберем два наиболее важных – триггер и сумматор. Триггер – основа устройств оперативного хранения информации; сумматор служит для сложения чисел.

Простейший вариант триггера собирается из четырёх логических элементов И-НЕ, причём два из них играют вспомогательную роль. Триггер имеет два входа, обозначенные на схеме R и S, а также два выхода, помеченные буквой Q – прямой и инверсный (черта над Q у инверсного выхода означает отрицание). Триггер устроен таким образом, что на прямом и инверсном выходах сигналы всегда противоположны.

Как же работает триггер? Пусть на входе R установлена 1, а на S – 0.логические элементы D1 и D2 инвертируют эти сигналы, т.е. меняют их значения на противоположные. В результате на вход элемента D3 поступает 1, а на D4 – 0. Поскольку на одном из входов D4 есть 0, независимо от состояния другого входа на его выходе (он является инверсным выходом триггера) обязательно установится 1. Эта единица передаётся на вход элемента D3 и в сочетании с 1 на другом входе порождает на выходе D3 логический 0. Итак, при R=1 и S=0 на прямом выходе триггера устанавливается 0, а на инверсном – 1.

Логическая схема триггера.


Таблица истинности RS-триггера.

Обозначение состояния триггера по договорённости связывается с прямым выходом. Тогда при описанной выше комбинации входных сигналов результирующее состояние можно условно назвать нулевым: говорят, что триггер «устанавливается в 0» или «сбрасывается. Сброс по-английски называется «Reset», отсюда вход, появление сигнала на котором приводит к сбросу триггера, обычно обозначают буквой R.

Проведя аналогичные рассуждения для «симметричного» случая R=0 и S=1, мы увидим, что на прямом выходе получится логическая 1, а на инверсном – 0. триггер перейдёт в единичное состояние – «установится» (установка по-английски «Set»).

Теперь рассмотрим наиболее интересную ситуацию R=0 и S=0 – входных сигналов нет. Тогда на входы элементов D3 и D4, связанные с R и S, будет подана 1 и их выходной сигнал будет зависеть от сигналов на противоположных входах. Такое состояние будет устойчивым. Пусть, например, на прямом выходе 1. Тогда наличие единиц на обоих вводах элемента D4 «подтверждает» нулевой сигнал на его выходе. В свою очередь, наличие 0 на инверсном выходе передаётся на D3 и поддерживает его выходное единичное состояние. Аналогично доказывается устойчивость картины и для противоположного состояния триггера, когда Q=0.

Таким образом, при отсутствии входных сигналов триггер сохраняет своё «предыдущее» состояние. Иными словами, если на вход R подать 1, а затем убрать, триггер установится в нулевое состояние и будет сохранять его, пока не поступит сигнал на другой вход S. В последнем случае он перебросится в единичное состояние и после прекращения действия входного сигнала будет сохранять на прямом выходе 1. Из выше сказанного видно, триггер обладает замечательным свойством: после снятия входных сигналов он сохраняет своё состояние, а значит может служить устройством для хранения одного бита информации.