Например, логический элемент «не» ( not ) берет входной бит и инвертирует, «переворачивает» его: «не» превращает 0 в 1, а 1 в 0. Элемент «копировать» ( copy ) делает копию бита: он превращает входной бит 0 в два выходных бита 00, а входной бит 1 в два выходных бита 11. Элемент «и» ( and ) берет два входных бита и порождает один выходной бит, который равен 1 в том и только том случае, если оба входных бита равны 1; в остальных случаях на выходе элемента «и» появляется бит 0.
Логические элементы – это устройства, которые берут один или больше входных битов и преобразовывают их в один или больше выходных битов. От левого верхнего по часовой стрелке: элементы «или», «и», «не», «копировать»
Элемент «или» ( or ) берет два входных бита и порождает выходной бит, который равен 1, если хотя бы один входной бит (или оба) равен 1; если же оба входных бита равны 0, то и результат будет равен 0.
С тех пор как в 1854 г. логик Джордж Буль из Куинс-колледжа в Корке опубликовал работу «Исследование законов мышления» ( An Investigation of the Laws of Thought ), мы знаем, что любое логическое выражение, включая сложные математические вычисления, можно выразить с помощью операций «не», «копировать», «и» и «или». Эти операции составляют универсальный набор логических элементов.
Законы мышления Буля гласят, что любое логическое выражение или вычисление можно закодировать в виде логической схемы. Цифровой компьютер – это компьютер, который работает с использованием большой логической схемы, состоящей из миллионов логических элементов. Известные нам компьютеры, такие как Mac и PC, – это электронные воплощения цифровых машин.
Элементы «и», «или», «не» и «копировать» можно соединить так, что получится логическая схема. Логическая схема может выполнять более сложные преобразования входных битов
В электронном компьютере биты хранятся в электронных устройствах, например в конденсаторах. Конденсатор похож на ведро, в котором лежат электроны. Чтобы наполнить ведро, к конденсатору прикладывают напряжение. При нулевом напряжении конденсатор не содержит никаких лишних электронов, и его называют незаряженным. Незаряженный конденсатор в компьютере находится в состоянии «0». При напряжении, отличном от нуля, конденсатор содержит много лишних электронов и находится в состоянии «1».
Конденсаторы – не единственные электронные устройства, которые используются в компьютерах для хранения информации. На жестком диске вашего компьютера биты записываются в виде крошечных магнитов: магнит, чей северный полюс указывает вверх, означает 0, а магнит, чей северный полюс указывает вниз, показывает 1. Как всегда, любое устройство, у которого есть два надежно различаемых состояния, может хранить бит.
В обычном цифровом электронном компьютере логические элементы создаются на транзисторах. Транзистор можно воспринимать как электронный выключатель. Когда он находится в разомкнутом положении, через него не может идти электрический ток. Когда выключатель находится в замкнутом положении, ток идет. У транзистора есть два входа и один выход. В транзисторе n-типа, когда на первый вход подано низкое напряжение, выключатель разомкнут, и электрический ток не может идти из второго входа к выходу; если же напряжение на первом входе увеличить, ток начинает идти. В транзисторе p -типа все наоборот: когда на первый вход подано низкое напряжение, выключатель замкнут, и ток может идти из второго входа к выходу. Важно, что транзисторы n – и p -типов можно соединить и тем самым создать логические элементы «и», «или», «не» и «копировать».
Когда компьютер выполняет вычисления, он, в сущности, делает только одно: применяет логические элементы к битам. Компьютерные игры, редактирование текста, математические вычисления и рассылка спама – все они имеют началом процесс электронного преобразования битов, по одному или попарно.
До сих пор мы говорили о простоте информации и вычислений. Бит – простая вещь; компьютер – простая машина. Но это не значит, что компьютеры не способны на сложное поведение. Одно парадоксальное следствие фундаментальной логичности операций компьютера состоит в том, что его будущее поведение совершенно непредсказуемо. Единственный способ узнать, что сделает компьютер, приступив к вычислениям, – подождать и посмотреть, что будет.
Читать дальше
Конец ознакомительного отрывка
Купить книгу