Логические основы построения компьютера Арутюнян Маргарита Геннадьевна, учитель информатики МОУ СОШ № 3 г. Вилючинск 2006 год Логические основы построения компьютера Основные понятия формальной логики Логические выражения и логические операции Построение таблиц истинности для сложных логических выражений Логические элементы и основные логические устройства компьютера Основные понятия формальной логики Логика — наука о законах и формах мышления. Логика использует ряд основных понятий и описывает действия над ними, подчиняющиеся законам логики. К этим основным понятиям логики относятся следующие. Высказывание (суждение) — некоторое предложение, которое может быть истинно (верно) или ложно. Например, высказывание «сегодня хорошая погода» является истинным (принимает значение «ИСТИНА»), если светит Солнце, нет ветра и дождя и т. д. В противном случае это же высказывание будет ложным (принимает значение «ЛОЖЬ»). Рассуждая аналогично, в другом примере высказывания А>5, очевидно, приходим к тому, что оно истинно, если переменная А принимает любое значение, большее 5, и ложно в противном случае. Заметим, что любое высказывание не может быть одновременно истинным и ложным, а принимает только одно из этих двух возможных логических значений: ИСТИНА или ЛОЖЬ. Эти значения называются логическими постоянными, или логическими константами. Утверждение — суждение, которое требуется доказать или опровергнуть, например, сумма внутренних углов треугольника равна 180 . Рассуждение — цепочка высказываний или утверждений, определенным образом связанных друг с другом, например, если хотите начать работать на компьютере, то необходимо сначала включить электропитание. Умозаключение — логическая операция, в результате которой из одного или нескольких данных суждений получается (выводится) новое суждение. Рассуждение — цепочка высказываний или утверждений, определенным образом связанных друг с другом, например, если хотите начать работать на компьютере, то необходимо сначала включить электропитание. Умозаключение — логическая операция, в результате которой из одного или нескольких данных суждений получается (выводится) новое суждение. Область знаний, которая изучает истинность или ложность высказываний (суждений), называется математической логикой. Утверждения в математической логике называются логическими выражениями. Логическое выражение представляет собой запись или устное утверждение, в которое, наряду с постоянными, обязательно входят переменные величины (объекты). В зависимости от значений этих переменных логическое выражение может принимать одно из двух возможных значений: ИСТИНА (логическая единица) или ЛОЖЬ (логический ноль). Подобно тому, как для описания действий над переменными величинами был разработан раздел математики — алгебра, так и для обработки логических выражений в математической логике была создана алгебра высказываний, или алгебра логики. Поскольку основы такой алгебры были заложены в трудах английского математика Джорджа Буля (XIX век), то алгебра логики получила также название булевой алгебры . Вспомним, что ранее мы уже говорили о том, что решение любой задачи на компьютере сводится к выполнению процессором ряда арифметических и логических операций. Последние как раз и выполняются над логическими выражениями на основе законов и правил булевой алгебры. Таким образом, математический аппарат булевой алгебры позволил формализовать действия над логическими выражениями и явился базой для разработки логических элементов и, в целом, логических основ построения компьютеров. Из сказанного становится ясно, что для лучшего понимания работы компьютера как инструмента обработки информации необходимо познакомиться с логическими выражениями, а также их преобразованием с помощью логических операций, определенных в булевой алгебре. Логические выражения Логические выражения могут быть простыми и сложными. В основе логики работы компьютера, как правило, лежит преобразование сложных логических выражений. Для объяснения этого понятия нам понадобится ввести ряд операций алгебры логики (логических операций). Рассмотрим пять основных логических операций. Предварительно заметим, что аргументами этих операций являются простые логические выражения, а их результат равен 1 или 0 (логические значения) и определяется по соответствующей таблице истинности. Логическая операция КОНЪЮНКЦИЯ определяет соединение двух логических выражений (высказываний) с помощью союза И. Эта операция называется также логическим умножением и обозначается символами & или . Рассмотрим таблицу истинности, определяющую результат этой логической операции над двумя аргументами — простыми логическими выражениями А и В, каждое из которых может принимать логические значения 0 или 1. A B A&C 0 0 0 0 1 0 1 0 0 1 1 1 В соответствии с таблицей истинности можно дать следующее определение: конъюнкцией называется логическая операция, ставящая в соответствие двум простым логическим выражениям новое— сложное логическое выражение, которое будет истинным тогда и только тогда, когда истинны оба исходных (простых) логических выражения. A B AC 0 0 0 0 1 1 1 0 1 1 1 1 Логическая операция ДИЗЪЮНКЦИЯ определяет логическое соединение двух логических выражений (высказываний) с помощью союза ИЛИ. Эта операция называется также еще логическим сложением и обозначается значком . Рассмотрим таблицу истинности, определяющую результат этой логической операции над двумя аргументами — простыми логическими выражениями А и В, каждое из которых может принимать логические значения 0 или 1. В соответствии с таблицей истинности можно дать следующее определение: дизъюнкцией называется логическая операция, ставящая в соответствие двум простым логическим выражениям новое— сложное логическое выражение, которое будет истинным тогда и только тогда, когда истинно хотя бы одно из исходных (простых) логических выражений. Логическая операция ОТРИЦАНИЕ, или ИНВЕРСИЯ, определяется над одним аргументом (простым или сложным логическим выражением) следующим образом: если исходное выражение истинно, то результат его отрицания будет ложным, и наоборот, если исходное выражение ложно, то его отрицание будет истинным. Данная операция означает, что к исходному логическому выражению добавляется частица НЕ или слова НЕВЕРНО, ЧТО. A А 0 1 1 0 Порядок выполнения логических операций в сложном логическом выражении: 1. 2. 3. 4. Операции в скобках Инверсия — ; Конъюнкция — & (или ); Дизъюнкция — ; Построение таблиц истинности для сложных логических выражений При изучении работы различных устройств компьютера приходится рассматривать такие его логические элементы, в которых реализуются сложные логические выражения. Поэтому необходимо научиться определять результат этих выражений, то есть строить для них таблицы истинности. Рассмотрим пример построения таблицы истинности для следующего сложного (составного) логического выражения D = А (В С). Сначала нужно установить число строк и столбцов такой таблицы, то есть спланировать форму таблицы. При определении числа строк необходимо некоторым регулярным образом перебрать все возможные сочетания логических значений 0 и 1 исходных выражений А, В и С, из которых формируется заданное сложное логическое выражение. Мы уже ранее познакомились с заполнением таблицы истинности для двух аргументов. Поэтому целесообразно поступить следующим образом: при добавлении третьего аргумента сначала запишем первые 4 строки таблицы, сочетая их со значением третьего аргумента, равным 0, а затем еще раз запишем эти же 4 строки, но теперь уже со значением третьего аргумента, равным 1. A B C 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 В результате в таблице для трех аргументов окажется 8 строк (+ девятая строка—шапка таблицы), и при таком подходе легко проверить, что мы действительно не повторили и не пропустили ни одного возможного сочетания логических значений аргументов — исходных выражений А,В, С. Из этих рассуждений можно подметить некоторую общую закономерность: для любого числа N аргументов сложного логического выражения таблица истинности содержит 2 строк, а также строку заголовка (шапки таблицы). Количество столбцов таблицы истинности для удобства последовательного ее построения выберем равным шести. Эти столбцы соответствуют значениям исходных выражений А, В, С, промежуточных результатов А и (В С), а также искомого окончательного результата — значения сложного арифметического выражения А (В С). Построим таблицу истинности для заданного сложного логического выражения: Таблица истинности для логического выражения D = А (В С). А ВС А (В С) A B C 0 0 0 1 0 0 0 0 1 1 1 1 0 1 0 1 1 1 0 1 1 1 1 1 1 0 0 0 0 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 0 1 0 Задания для самостоятельного выполнения Построить таблицы истинности для следующих функций: 1. 2. 3. 4. (В А) С ВАС А ( В С ) (АВ)С Найти значение выражения: 1. ( А 1) ( 1 0 ) 1 = 2. ( А 0) 1 (С 1) = 3. (( 0 1) 1) 1 (B 0) = 4. ( 1 A) (B 0) 1= Реализация вычислений в компьютере В названии КОМПЬЮТЕР от англ. Computer, т.е. вычислитель заложено первоначальное предназначение этого агрегата – он изобретался, чтобы облегчить людям вычисления. Много позже, 30 лет спустя, когда мощность компьютеров возросла в тысячи раз, было осознано, что они представляют собой универсальное средство обработки информации. Как компьютер выполняет действия над числами? Действия над числами – это тоже обработка информации: по двум числам и указанному действию выдается новое число – результат этого действия над числами. В ЭВМ (электронно-вычислительная машина) – будь то компьютер или его младший родственник калькулятор – используется двоичная система счисления. Выбор двоичной системы объясняется тем, что имеющиеся в этой системе всего две цифры легко «зашифровать» при помощи какихнибудь технических средств, например электрического тока или светового луча. Цифра 0 двоичной системы счисления может означать, что ток (луч) не проходит, а цифра 1 — что ток (луч) проходит. При таком представлении цифр действия над числами производятся подходящими комбинациями включений и выключений тока или света. Поэтому любую электронную вычислительную машину можно представить себе как совокупность соединенных между собой выключателей тока (или света). Отличие электронного выключателя от выключателя настольной лампы состоит в том, что в электронном выключателе нет механических движущихся частей и переключается он не рукой человека, а электрическим сигналом от другого выключателя. Время переключения поэтому оказывается очень малым, порядка 10 -9 с. Рис. 1. Электромагнитное реле Самый простой прибор, осуществляющий такую операцию, вы видите на рисунке 1. Цепь разомкнута до тех пор, пока на обмотку железного сердечника не подано напряжение. В этот момент в сердечнике создается магнитное поле, притягивающее один конец вращающегося на шарнире рычажка. Другой его конец в этот момент сжимает контакты — цепь замыкается. На принципах такого переключения работал один из первых компьютеров — МАРК-1. В дальнейшем в качестве переключателей стали использовать электронные лампы-триоды (рис. 2). Их действие вы, вероятно, изучали на уроках физики. Рис. 2. Электронная лампа Рис. 4. Планарный транзистор Рис. 3. Полупроводниковый триод Затем настала пора плоскостных транзисторов (рис. 3). Мы не будем вдаваться в теорию полупроводников, оставляя и это урокам физики. И наконец, планарные транзисторы (рис. 4). Они идентичны по своему действию плоскостным, но не превышают в длину сотой доли сантиметра. Современная технология изготовления этих приборов позволяет размещать на поверхности одной микросхемы несколько миллионов транзисторов. Как видите, при неизменном принципе — получить переключатель — шла борьба за размеры и скорость срабатывания. Важно, однако, не только иметь миниатюрные электронные переключатели, но и знать, как их соединить между собой, чтобы с их помощью выполнять арифметические действия. Если в вашем распоряжении оказалось два переключателя, то есть ровно два способа соединить их между собой. а) б) Рис. 5. Последовательное (а) и параллельное (б) соединение переключателей Рис. 6. Первый вариант соединения называется, как вы знаете из физики, последовательным (рис. 5, а), а второй— параллельным (рис. 5, б). Ясно, что в первом случае ток в цепи идет (лампочка горит) только тогда, когда включены оба переключателя. Во втором случае для прохождения тока в цепи (лампочка горит) достаточно, чтобы включен был хотя бы один переключатель. Кроме того, рассматривают еще один вариант(рис.6): лампочка горит тогда и только тогда, когда переключатель выключен. Такие конструкции управления называются логическими элементами. Поскольку первый логический элемент зажигает лампочку только тогда, когда замкнут и первый переключатель, и второй, его назвали логический элемент И. Второй логический элемент зажигает лампочку, когда замкнут или первый переключатель, или второй — его назвали логическим элементом ИЛИ. Третий логический элемент зажигает лампочку тогда и только тогда, когда переключатель не замкнут, — он называется логическим элементом НЕ. Будем условно изображать логические элементы следующим образом (рис.7,а-в). И а) ИЛИ НЕ б) в) Рис. 7. Условное изображение вентилей И, ИЛИ, НЕ. В дальнейшем мы не будем писать их названия — геометрическая форма однозначно указывает, какой это логический элемент. А теперь из логических элементов соберем схему, указанную на рисунке 8. Нетрудно проверить (это вы сделаете, выполняя задание 4), что, подавая на входы х и у сигналы 0 или 1, мы на выходах получаем два сигнала, которые поразрядно кодируют сумму двух однозначных чисел. А поскольку действия над числами, записанными в позиционной системе, выполняются поразрядно, то ясно, что аналогичным образом можно построить электронные схемы для сложения многозначных чисел. представленных в двоичной системе счисления. Более того математики доказали, что для любой функции от любого числа двоичных переменных можно создать подходящую электронную схему из вентилей И,ИЛИ, НЕ, вычисляющую значение этой функции. x y Младший разряд x+y Старший разряд x+y Рис. 8. Сумматор для двух одноразрядных двоичных чисел Регистр, сумматор, триггер. Для обработки любой информации на компьютере в состав процессора входит так называемое арифметико-логическое устройство. Оно состоит из ряда устройств, построенных на рассмотренных выше логических элементах. Важнейшими из таких устройств являются регистры и сумматор. Регистр представляет собой электронный узел, предназначенный для хранения многоразрядного двоичного числового кода. Такой код может быть числовым кодом команды, выполняемой процессором, либо кодом некоторого числа (данного), которое используется при выполнении данной команды. Упрощенно можно представить регистр как совокупность ячеек, в каждой из которых может быть записано одно из двух значений: 0 или 1, то есть один разряд двоичного числа. Такая ячейка, называемая триггером. Это устройство позволяет запоминать, хранить и считывать информацию (каждый триггер может хранить 1 бит информации). Для построения триггера достаточно двух логических элементов «ИЛИ» и двух элементов «НЕ».. Под воздействием сигналов, поступающих на вход триггера, он переходит в одно из двух возможных устойчивых состояний, при которых на выходе будет выдаваться сигнал, кодирующий значение 0 или 1. Для хранения в регистре одного байта информации необходимо 8 триггеров. Сумматор — это электронная схема, предназначенная для выполнения операции суммирования двоичных числовых кодов. При суммировании по правилам двоичной арифметики двух единиц результат равен 10 и происходит перенос 1 в старший двоичный разряд. Вопросы и задания 1. 2. Почему в электронной вычислительной технике обычно используется двухсимвольное кодирование? Обозначим в логических элементах на рис.7(а, б, в) один вход буквой x, другой – y, а выход – z. Заполните таблицы истинности для каждого логического элемента. Рис. 9. x y x y 0 0 0 1 1 0 1 1 Рис. 9. 3. z Рис. 10. Для схемы, изображенной на рис.10, составьте таблицу истинности, показывающую зависимость значения z от значений x и y. 4. Для двоичного сумматора (рис.8) заполните таблицу истинности. Убедитесь, что двоичный сумматор в качестве результата выдает сумму однозначных чисел x и y.