Сам транзистор – несложное устройство, которое по принципу работы похоже на водопроводную трубу с краном посередине. Если кран открыт – вода течет, если закрыт – поток останавливается. Разница в том, что в транзисторе проходит по этой трубе не вода, а ток. И кран будет открываться не рукой, а сигналом от какого-нибудь другого устройства. Еще раз: через транзистор при открытом кране может проходить электрический ток, а при закрытом – не может.
Вот упрощенная схема.
Ток пытается пройти сквозь транзистор, но у последнего «закрыт» его управляющий «кран».
А вот теперь «кран» открылся, и транзистор пропускает через себя ток.
Первый действующий транзистор создали американские физики Уильям Шокли, Джон Бардин и Уолтер Браттейн в 1947 году. Важность этого вроде бы простого устройства была так высока, что за свое изобретение они получили Нобелевскую премию по физике! А все потому, что из множества соединенных вместе транзисторов устроены «мозги» любой электроники, будь это чип в вашей банковской карте или марсоход «Кьюриосити».
Теперь давайте немного поговорим о том, как миллионы собранных вместе простейших кранов-транзисторов создают голосовых помощников, спецэффекты из «Звездных войн» и долги на вашей кредитке.
Все дело в том, что контакты множества транзисторов соединены так, что, когда на какие-то из входных контактов подаётся ток, транзисторы все вместе его «перемешивают» и отправляют на какие-то из других своих контактов – выходные. И всё это вместе производит впечатление вполне осмысленной операции.
Допустим, нам надо сложить числа 3 и 6. Надеюсь, всем очевидно, что результат будет 9. Простейшее устройство на транзисторах, которое сможет сложить числа, называется «сумматор». Обычно именно с таких схем начинают осваивать азы программирования, но мы сейчас не станем изучать начинку устройства, а посмотрим на результат его работы со стороны.
Смотрите, что здесь происходит: есть пять входов и четыре выхода. На входы подается электричество. Это просто движение электронов, которые не знают, что они обозначают числа. Но мы-то с вами понимаем, что в этом электричестве закодированы цифры.
Так же на выходе: электричество пришло на какие-то контакты, и засветилось несколько лампочек. Мы на них посмотрели и увидели, что эти горящие в таком порядке лампочки соответствуют какому-то числу. Делаем вывод, что это машина сложила два числа. Хотя на самом деле она просто перетасовала электрические потоки определенным образом. А способ перемешивания электричества определялся тем, как именно соединены между собой контакты транзисторов.
Давайте еще раз внимательно посмотрим на рисунок выше: вы видите, что почему-то вместо чисел 3, 6 и 9 там указаны только единицы и нули. Вот еще один важнейший момент: компьютеры для всех операций используют так называемый двоичный код (удерживаем внимание, самое сложное уже почти закончилось!). Мы помним, что у транзистора есть только два состояния: когда он открыт и пропускает ток и когда он закрыт и ток через него не идет. Одно из этих состояний обозначается единицей, а другое нулем.
Любые другие числа зашифровываются сочетанием этих двух цифр. Точно так же, как, например, в азбуке Морзе каждая буква кодируется сочетанием нескольких коротких и длинных сигналов. Один короткий и один длинный сигнал обозначают букву «А», а если подать один длинный и три коротких сигнала, то получится сочетание, кодирующее букву «Б».
В двоичной системе сам ноль обозначается так же: «0», единичка тоже обозначается «1», а вот двойка уже как «10», тройка – это «11», четыре – «100» и так далее. На первый взгляд, выглядит громоздко и не слишком понятно: числу 89, например будет соответствовать «1011001», а число 5473 в системе двоичного кода будет представлено комбинацией «1010101100001».
Длинно? Да. Неудобно? Да. Но зато мы обошлись только нолями и единицами, которые соответствуют одному из возможных состояний транзистора: «открыто» или «закрыто». И не нужно ругать за такую замудренность современных программистов, лучше скажем им спасибо за то, что они ограничились двоичной системой, а не троичной, или – боже упаси! – двенадцатеричной, как древние шумеры
Стало понятно, почему компьютеры используют двоичный код? Каждый символ в вашем компьютере является электрическим сигналом, а вычислительная «клетка» компьютера – транзистор – различает только «включенное» состояние, когда через него проходит ток, и «выключенное», при котором ток не идет.
Соединение в определенном сочетании контактов множества транзисторов – основной принцип работы всей современной электроники. Это нужно для получения запрограммированного выходного сигнала. Он возникает после совместного взаимодействия транзисторов по обработке входного сигнала. Дальше уже дело техники: каждый конкретный выходной сигнал сможет активировать устройства внешнего интерфейса – и мы услышим из динамика по-детски трогательный гимн польских зоозащитников «БОбер, курва!» или увидим на мониторе рекламу онлайн-казино.
Может ли электронная машина на транзисторах дать неверное решение или ошибиться? Нет, ни в коем случае! Транзисторы соединены таким способом, что при обработке некого входного сигнала они выдают строго определенную последовательность взаимного активирования и результат всегда будет единственно возможным для данной конфигурации оборудования. Это, конечно же, не значит, что компьютер всегда делает одно и то же. Нет, результаты на выходе могут быть самыми разными, но они будут зависеть только от исходной информации.
На современных устройствах этот процесс выглядит очень динамичным: мы немного двигаем мышью и каждое перемещение запускает каскады взаимосвязанных обменов сигналами. Внешне все выглядит так, как будто машина обладает собственным активным сознанием и волей, но суть остается все той же: транзисторы пропускают или блокируют ток в зависимости от того, как они связаны друг с другом.
Даже самые новые и совершенные машины все же иногда сбоят, но не стоит считать, что тут имеет место случайность. Компьютер всегда выполнит операцию единственным доступным способом, а вот входная информация может быть и не той, которую мы хотели ввести. Вирус или замыкание внутри оборудования – это не что иное, как один из вариантов поданного на транзисторы входного сигнала. Правда, мы не хотели его подавать и получили на выходе чёрт-те что, но ток пошел по транзисторам по единственно возможному варианту. Заложенный в процессор алгоритм все равно сработал так, и только так, как он мог!
На этом, пожалуй, пора закончить разговор о транзисторах. Общие принципы работы вычислительной техники стали немного понятны, а углубляться в подробности едва ли есть смысл. Вряд ли найдется на земле человек, владеющий всей суммой знаний по устройству, производству и программному обеспечению компьютера, да и нам пора наконец перейти к психологии.
Хотя сам термин «психология» и переводится с греческого как «наука о душе», психологи обычно понимают слово «душа» метафорически – как проявление психической активности человека. А у этой психической активности есть вполне материальная основа. Наша психика – это результат взаимодействия особых клеток организма, называемых нейронами.
Строение нейрона в общих чертах также изучается в школе, но для тех, кто вместе с транзисторами забыл и про это, будет полезно вспомнить самое основное.
Как выглядит нейрон? В строении нейрона можно выделить три части: