В этих уроках мы будем писать программы для процессора, так что будет полезно знать о том, как он устроен и работает на базовом уровне.
Процессор #
Процессор, или центральное процессорное устройство, ЦПУ (Central Processing Unit, CPU), - устройство, которое получает и выполняет команды программы при помощи аппаратных блоков управления, сравнения, логических и арифметических операций.

Блок-схема процессора
В ранних компьютерах центральный процессор мог состоять из множества отдельных компонентов и занимать несколько плат, шкафов и даже этажей. Когда основные узлы процессора удалось разместить в одной интегральной микросхеме (Integrated Circuit, IC), появился микропроцессор. Сегодня слово "процессор" обычно используют и для микропроцессора, и для процессорного ядра внутри более сложной микросхемы.

В вашем компьютере стоит именно микропроцессор, но называют его CPU или просто процессор
Несмотря на то, что процессор позволяет решать безграничное разнообразие задач и для его производства нужно очень дорогое и специфичное оборудование, устроен он довольно примитивно. Процессор - это самая обыкновенная микросхема, состоящая преимущественно из самых обыкновенных полевых транзисторов (MOSFET), выращенных в виде микроскопических кристаллов на полупроводниковой подложке. Основная функция транзистора - пропустить ток при подаче управляющего сигнала, по сути транзистор - это управляемый выключатель. Соответственно используется два типа транзисторов:
- Пропускающие ток при низком напряжении (pMOS)
- Пропускающие ток при высоком напряжении (nMOS)
Технология называется КМОП (CMOS) - комплементарная структура металл-оксид-полупроводник, с её помощью создаётся большинство современных интегральных микросхем, включая процессоры, память и матрицы камер.
Слева направо: схематическое изображение транзистора, транзистор в виде выращенного "кристалла", миллионы таких кристаллов в составе процессора
Так как процессор - цифровое устройство, сигналы в нём интерпретируются как два логических уровня: 0 и 1. Транзистор не является идеальным ключом, но для понимания цифровой логики удобно рассматривать его как полностью открытый или закрытый.
Логический (цифровой) сигнал имеет две возможные величины - 0 и 1, "низкий" сигнал и "высокий"
Транзисторы объединяются в простейшие схемы, называемые логическими вентилями (logic gate). Эти вентили выполняют с цифровыми сигналами логические операции, такие как И, ИЛИ, НЕ и так далее. Вентиль получает на вход один или несколько сигналов и выдает на выход сигнал, который зависит от логики работы вентиля. Например, вентиль И выдаст сигнал 1, если на оба его входа поданы сигналы 1, а если хоть один из сигналов на входе будет 0 - на выходе будет 0.
Из этих вентилей собираются уже более сложные блоки, например сумматор - блок, позволяющий складывать числа. Или триггер - блок, который запоминает своё состояние - по сути, элементарная цифровая ячейка памяти. Эти и другие блоки, соединённые особым образом, и образуют процессор.

До изобретения транзисторов компьютеры работали на базе электромагнитных реле и могли занимать целый этаж здания!
Именно поэтому полноценный процессор можно сделать в игре Minecraft и любых других похожих "песочницах", в которых есть возможность реализовать "электрическую" связь и аналог транзистора. Правда это будет очень простой процессор, который умеет выполнять несколько инструкций. Мощный современный процессор может состоять из миллиардов транзисторов, которые образуют различные функциональные блоки от памяти и сложения чисел до специальных вычислительных ядер для нейросетей.

Программируемый компьютер с классическими играми в Minecraft
Есть также специализированные игры про процессоры:
- Turing Complete - обучающая игра про создание процессора с нуля
- TIS-100
- EXAPUNKS
- SHENZHEN I/O
- Nandgame
- nand2tetris
Память #
Код программы и данные должны где-то храниться, поэтому технически существует два типа памяти: энергонезависимая и оперативная.
Энергонезависимая #
- Питание: хранит данные при отключении питания
- Хранит: код или исполняемый файл программы, различные статичные данные
- Скорость: средняя на чтение, медленная на запись
- Износ: изнашивается при записи
- Примеры: Flash, EEPROM, жёсткий диск HDD, твердотельный жёсткий диск SSD, диски CD и DVD
Оперативная #
- Питание: очищается при отключении питания
- Хранит: текущие рабочие данные и значения, которые могут часто меняться или к ним нужен быстрый доступ
- Скорость: быстрая на чтение и запись
- Износ: отсутствует
- Примеры: RAM, SRAM, DRAM
Регистры #
Сам процессор имеет внутри регистры (registers) - небольшое число ячеек памяти для операндов, адресов и состояний, к которым он имеет самый быстрый доступ.
Кэш #
Многие процессоры также имеют кэш (cache), который хранит копии недавно использованных команд и данных и уменьшает число медленных обращений к основной памяти.
FPGA #
Существует процессор и в формате "сделай сам" - Программируемая Логическая Матрица, ПЛМ (Field-Programmable Gate Array, FPGA) или Программируемая Логическая Интегральная Схема (ПЛИС). Это матрица логических вентилей, которые можно самостоятельно соединить в нужном порядке и получить цифровую схему под конкретную задачу. Это может быть обработка данных, конвертер интерфейса связи или например игра тетрис. Преимущество ПЛИС - в скорости работы, так как обычный процессор последовательно читает программу из памяти и выполняет заданные действия, а схема на ПЛИС изначально спроектирована для выполнения конкретной задачи без лишних операций и работает по сути параллельно. Она работает сразу на уровне электрических сигналов, а не выполняемой процессором программы, что позволяет создавать невероятно быстрые и эффективные аппаратные блоки.
Дополнительно #
Дополнительный контент доступен владельцам набора GyverKIT и по подписке, подробнее читай здесь. Блок содержит:
- Тезисы
Полезные страницы #
- Набор GyverKIT – наш большой стартовый набор Arduino, продаётся в России
- Каталог ссылок на дешёвые Ардуины, датчики, модули и прочие железки с AliExpress
- Обратная связь – сообщить об ошибке в уроке или предложить дополнение по тексту (alex@alexgyver.ru)
- Поддержать автора за работу над уроками







