"Информатика (углублённый уровень)", Калинин И.А., Самылкина Н.Н.
Логические элементы обрабатывают электрические сигналы, которые компьютер распознаёт как 0 и 1. Соединяя элементы НЕ, И и ИЛИ, получают схемы для вычисления сложных логических выражений. Их работу описывают таблицами истинности. На этой основе строят устройства, которые не только выполняют вычисления, но и хранят данные: триггер удерживает один бит, а сумматор складывает двоичные числа и передаёт перенос между разрядами.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Логический элемент — электронное устройство, выполняющее элементарную логическую операцию над сигналами, представленными значениями 0 и 1. Например, элемент И проверяет, равны ли единице все его входы. Такие элементы служат простейшими строительными блоками цифровых устройств.
Логическая схема — соединение логических элементов, которое преобразует входные сигналы в выходные по заданному правилу. Выход одного элемента может поступать на вход другого, поэтому схема выполняет выражение из нескольких операций. Это понятие нужно, чтобы описывать работу устройства целиком, а не только отдельной операции.
Триггер — логическое устройство с двумя устойчивыми состояниями, способное хранить один бит информации. Его состояние можно трактовать как 0 или 1. Триггеры нужны для хранения данных и промежуточных результатов, когда значение требуется сохранить после изменения входных сигналов.
Сумматор — логическое устройство, выполняющее сложение двоичных чисел и формирующее биты суммы и переноса. Перенос появляется, если сложение в разряде даёт значение больше 1. Сумматор нужен процессору для выполнения сложения, в том числе над многоразрядными числами.
В компьютере значения 0 и 1 обычно задаются разными уровнями электрического напряжения. Низкий уровень принимают за 0, а высокий — за 1; конкретные границы зависят от используемой электронной технологии. Вместо одного точного напряжения применяют диапазоны: так схема может распознать сигнал правильно, даже если на нём есть небольшая помеха. Два устойчиво различимых уровня позволяют строить устройства, которые надёжно передают и обрабатывают данные.
У логического элемента есть один или несколько входов и выход. На входы поступают сигналы, а выходное значение определяется выбранной операцией и правилами из таблицы истинности. Например, для элемента И выход становится равным 1, только если все входы единичные. Таблица нужна потому, что она описывает поведение элемента для каждого возможного набора входов и позволяет проверить результат без догадок.
Сложное выражение можно разделить на простые операции и выполнить их последовательно. Например, в выражении ¬A ∧ B сначала инвертируют A элементом НЕ, а затем результат вместе с B подают на элемент И. Выход первого элемента становится входом второго, поэтому порядок вычислений сохраняется и в самой схеме. Такой способ позволяет собирать из простых блоков устройства с более сложными правилами работы.
Обычная комбинационная схема определяет выход текущими входными сигналами. Триггер отличается тем, что его выходы связаны с входами: эта обратная связь поддерживает одно из двух устойчивых состояний. Поэтому после переключения триггер продолжает выдавать сохранённое значение, даже если управляющий сигнал изменился. Новое состояние устанавливается при соответствующем воздействии на входы, а до этого схема удерживает бит.
Сумматор получает биты слагаемых и, в многоразрядном случае, перенос из предыдущего разряда. По этим значениям он вычисляет бит суммы и перенос, который передаётся дальше. Для двух входов A и B без входного переноса сумма равна 1, когда входы различаются, то есть A ⊕ B; перенос равен 1, только если A = 1 и B = 1, то есть A ∧ B. Перенос необходим, потому что два единичных бита дают двоичную запись 10: ноль остаётся в текущем разряде, а единица переходит в следующий.
| Элемент | Входы | Выход равен 1, когда… | Логическая операция |
|---|---|---|---|
| НЕ | A | вход A равен 0 | инверсия: ¬A |
| И | A, B (или больше) | все входы равны 1 | конъюнкция: A ∧ B |
| ИЛИ | A, B (или больше) | хотя бы один вход равен 1 | дизъюнкция: A ∨ B |
| Исключающее ИЛИ | A, B | входы различаются | исключающая дизъюнкция: A ⊕ B |
| И-НЕ | A, B (или больше) | не все входы равны 1 | инверсия И: ¬(A ∧ B) |
| ИЛИ-НЕ | A, B (или больше) | все входы равны 0 | инверсия ИЛИ: ¬(A ∨ B) |
Чтобы найти выход для конкретных входных значений, выберите соответствующее правило и примените его к строке таблицы истинности. Для схемы из нескольких элементов сначала определите результаты промежуточных операций, а затем вычислите итоговый выход. Обратите внимание: И-НЕ и ИЛИ-НЕ инвертируют результат соответствующих операций.
Задача 1. Заполнить таблицу истинности для элемента ИЛИ с двумя входами A и B. Нужно учесть все варианты значений на входах, а не только случаи, когда на выходе получается 1. У элемента ИЛИ выход единичный, если хотя бы один вход равен 1.
Ответ: A, B → выход: 00 → 0; 01 → 1; 10 → 1; 11 → 1. Проверка правила по каждой строке помогает не перепутать ИЛИ с И: при И единица появилась бы только в строке 11.
Задача 2. Составить таблицу истинности схемы, в которой сигнал A инвертируется, а результат вместе с B поступает на элемент И. Итоговое выражение — ¬A ∧ B. Сначала нужно определить выход НЕ, иначе легко по ошибке подать на элемент И исходный A.
Ответ: для входов 00, 01, 10, 11 выход схемы равен соответственно 0, 1, 0, 0. Промежуточный столбец ¬A показывает, как сигнал изменяется до поступления на элемент И. Поэтому можно проверить, что в финальном вычислении использовано именно инвертированное значение.
Задача 3. Для сложения двух однобитных чисел A и B построить таблицу истинности суммы и переноса, а затем определить логические операции. Здесь нет входного переноса из предыдущего разряда, поэтому рассматриваются только A и B. В каждой строке надо записать двоичный результат сложения.
Ответ: для входов 00, 01, 10, 11 сумма равна 0, 1, 1, 0, а перенос — 0, 0, 0, 1. Так как перенос не входит в сумму текущего разряда, его записывают отдельно и передают в следующий разряд при сложении более длинных чисел.
Считать, что логический элемент обязательно имеет только один вход, — ошибка: у НЕ один вход, но И и ИЛИ обычно принимают несколько. Такое заблуждение возникает, если переносить устройство простейшего элемента на все остальные. Проверяйте обозначения входов в условии и правило элемента: для И и ИЛИ может быть перечислено больше двух сигналов. При этом правило сохраняется: учитываются все входы, а не только одна пара.
Путать И и ИЛИ — значит применять неверное условие для единичного выхода. Возможно, названия операций запоминаются без проверки их смысла. Для И требуются единицы на всех входах, а для ИЛИ достаточно хотя бы одной единицы. Проверьте себя на наборе 10: И выдаёт 0, а ИЛИ — 1.
Если забыть, что НЕ меняет сигнал на противоположный, в схеме вместо ¬A используют исходное A. Это часто случается, когда сразу считают итог, не выделяя промежуточные результаты. Запишите отдельный столбец инверсии: 0 превращается в 1, а 1 — в 0. Затем используйте именно эти значения на следующем элементе.
Считать триггер обычной комбинационной схемой — значит предположить, что его выход зависит только от входов в текущий момент. Ошибка возникает из-за того, что и у триггера, и у комбинационной схемы есть входы и выходы. Но обратная связь позволяет триггеру сохранять предыдущее состояние, поэтому одинаковые текущие входы могут не описывать всю историю его работы. При анализе учитывайте не только входные сигналы, но и состояние, в котором триггер находился ранее.
Для понимания логических схем нужны двоичное представление информации и значения 0 и 1, а также знакомство с логическими операциями. Таблицы истинности и логические выражения помогают разбирать алгоритмы с условиями: по ним можно проверить, при каких данных выполняется ветвь программы. Сами схемы служат основой аппаратных узлов компьютера — процессора, оперативной памяти и других устройств. Так логические правила связывают программную обработку данных с работой электроники.
Почему в логических схемах используют значения 0 и 1?
Электронные схемы различают два диапазона напряжения: низкий принимают за 0, высокий — за 1. Такое представление удобно и надёжно: небольшие помехи обычно не мешают определить, к какому уровню относится сигнал.
Чем логический элемент отличается от логической схемы?
Логический элемент выполняет одну операцию, например НЕ или И. Логическая схема — это соединение нескольких элементов, которое преобразует сигналы по более сложному правилу.
Как по схеме составить таблицу истинности?
Перечислите все возможные наборы входных значений, а затем для каждого набора вычисляйте выходы элементов по порядку. Промежуточные результаты записывайте отдельно и передавайте на следующие элементы схемы.
Почему триггер может хранить информацию?
В триггере есть обратная связь: выходы связаны со входами так, что схема поддерживает одно из двух устойчивых состояний. Поэтому после изменения управляющего сигнала триггер может сохранить 0 или 1 до следующего переключения.
Зачем сумматору нужен сигнал переноса?
При сложении двоичных разрядов результат иногда больше 1. Тогда сумматор выдаёт бит суммы в текущий разряд, а перенос передаёт единицу в следующий разряд.
§ 5. Логические элементы и схемы. Типовые логические устройства компьютера