Мы знаем, что во всем виноваты мужчины. И вычислительная техника - не исключение: здесь во всем виноват он (см. изображение) и ему подобные. Знакомьтесь, кто не знает, это - транзистор (рис. 1 - транзисторы разного внешнего вида). К слову, у него недавно был день рождения, ему исполнилось 76 лет.
К нашему удивлению, мы узнали, что даже разработчики с существенным опытом не все имеют хотя бы поверхностное представление о том, на чем основаны вычисления в компьютере. Да, прикладная ценность этого знания, если Вы не работаете с операционными системами, драйверами, более низкоуровневым ПО или непосредственно с самим железом, близка к нулю. Но не знать как устроен твой основной рабочий инструмент кажется диким.
Дабы уместиться в одну публикацию и объяснить так, чтобы понятно было всем, отбросим теорию автоматов, булеву алгебру, математическую кибернетику и прочие глупости, а также заранее просим прощения у людей знающих за вынужденные упрощения - хотим сделать так, чтобы было понятно всем.
Итак, мы знаем (или догадываемся), что "компуктер", коробка бесовская, оперирует "ноликами" и "единичками". Возможно, нам даже известно, что каким-то чудесным образом компиляторы компилируют, а интерпретаторы интерпретируют слова заморские, программистами чародеями писаные, в эти самые нолики и единички. Есть даже вероятность осведомленности в рунах таких, как "АЛУ", "УУ". Но откуда эти 0 и 1 берутся? Как происходит магия внутри чудной кремниевой сковородки без антипригарного покрытия?
Как Вы, наверное, догадались по вступлению, в магии повинен тот джентельмен в котелке (транзистор). На сегодняшний день существует несколько видов и типов транзистора, но для простоты изложения не будем вдаваться в подробности и поговорим только об одном виде - "биполярном" (для остальных, с натяжкой, все аналогично). Биполярные транзисторы делятся на два подвида - "NpN" и "PnP" (рис. 2 - условное обозначение на схемах). Опять же, опуская физико-химические подробности, при подаче напряжения на два контакта, на третьем контакте у первого будет 0 (или близкое к 0 значение), у второго - не 0. Можно еще поменять полярность ("плюс" и "минус" у батарейки) подключения - будет обратная ситуация соответственно. Обычно для более точного распознавания за "не 0" принимается 0, а за "0" - 1. Таким образом, договорившись о проекции состояний напряжения в виртуальные "единицы" и "нули", получаем известную нам двоичную систему исчисления, и можем, комбинируя различные схемотехнические элементы, использовать булеву алгебру. Эти комбинации по-научному называются "логическими вентилями". Так, например, на рис. 3 изображена схема логического вентиля, реализующего логическую операцию "И" (логическое умножение).
С транзисторами, "ноликами", "единичками" и кранами вентилями разобрались. Теперь о том, как все перечисленное укладывается в дорогущую пластинку для материнской платы. Здесь все тоже достаточно просто, если не говорить о производственной стороне вопроса. В новостных публикациях часто можно увидеть как какая-то компания освоила (начала производить) технологический процесс в X нанометров. Это значит, что размер одного транзистора в их процессоре составляет X миллиардных частей метра (1 нм = 10^-9 м). Транзисторы и остальные элементы соединяются, как правило, золотыми контактами. Однако, чтобы пластина с транзисторами стала "процессором" нужны не только логические вентили, составляющие основу арифметико-логического устройства (АЛУ), но и другие комбинации элементов (в т.ч. транзисторов), образующих устройство управления (УУ), регистры и кэш-память. В результате получается нечто подобное рис. 4.
Соберем все воедино. Высокоуровневый код программными средствами (компилятор/интерпретатор) транслируется в машинный код (сплошные потоки "0" и "1"), а тот, по оговоренной схеме, - в электрические сигналы. Определенный набор сигналов (например, разобранной нами операции логического умножения), как нетрудно догадаться, активирует только конкретную электрическую схему в УУ, а та переключит ввод последующего потока сигналов на соответствующий логический вентиль в АЛУ. Несложно же?)
Цифрокритицизм в Телеграм.