Процессор, или Центральное Обрабатывающее Устройство (Central Processing Unit, CPU) - мозг любого компьютера или другого программируемого устройства. По сути процессор получает команды и выполняет их при помощи аппаратных блоков (unit) сравнения, логических и арифметических операций и прочих.
Блок-схема процессора
Раньше процессор и эти блоки существовали отдельно друг от друга, так как занимали много места. Прогресс не стоял на месте и через какое то время процессор вместе с основными блоками начали производить в виде одной цельной микросхемы (Integrated Circuit, IC), такая микросхема с процессором получила название микропроцессор. Процессоры в чистом виде сейчас практически не встречаются, поэтому в быту для простоты микропроцессоры называют процессорами.
В вашем компьютере стоит именно микропроцессор, но называют его CPU или просто процессор
Несмотря на то, что процессор позволяет решать безграничное разнообразие задач и для его производства нужно очень дорогое и специфичное оборудование, устроен он довольно примитивно. Процессор - это самая обыкновенная микросхема, состоящая преимущественно из самых обыкновенных полевых транзисторов (MOSFET), выращенных в виде микроскопических кристаллов на полупроводниковой подложке. Основная суть транзистора - пропустить ток при подаче управляющего сигнала, по сути транзистор - это управляемый выключатель. Соответственно используется два типа транзисторов:
- Пропускающие ток при низком уровне сигнала (pMOS)
- Пропускающие ток при высоком уровне сигнала (nMOS)
Так как процессор - цифровое устройство, у схемы есть только два варианта сигналов: 0 Вольт и "напряжение питания". Соответственно транзистор может быть только в двух состояниях: открыт или закрыт. Сама величина напряжения тут не играет роли, важно его наличие (логический сигнал 1
) или отсутствие (логический сигнал 0
).
Логический (цифровой) сигнал имеет две возможные величины - 0 и 1, отсутствие и наличие напряжения, "низкий" сигнал и "высокий"
Транзисторы объединяются в простейшие схемы, называемые логическими вентилями (logic gate). Эти вентили выполняют с цифровыми сигналами логические операции, такие как И, ИЛИ, НЕ и так далее. Вентиль получает на вход один или несколько сигналов и выдает на выход сигнал, который зависит от логики работы вентиля. Например вентиль И
выдаст сигнал 1
, если на оба его входа поданы сигналы 1
, а если хоть один из сигналов на входе будет 0
- на выходе будет 0
. Из этих вентилей собираются уже более сложные блоки, например сумматор - блок, позволяющий складывать числа. Или триггер - блок, который запоминает своё состояние: по сути элементарная цифровая ячейка памяти. Эти и другие блоки, соединённые особым образом, и образуют процессор.
До изобретения транзисторов компьютеры работали на базе электромагнитных реле и могли занимать целый этаж здания!
Именно поэтому полноценный процессор можно сделать например в игре Minecraft и любых других похожих "песочницах", в которых есть возможность реализовать "электрическую" связь и аналог транзистора. Правда это будет очень простой процессор, который умеет выполнять несколько инструкций. Мощный современный процессор может состоять из миллиардов транзисторов, которые образуют различные функциональные блоки от памяти и сложения чисел до специальных вычислительных ядер для нейросетей.
Программируемый компьютер с классическими играми в Minecraft
Есть также специализированные игры про процессоры:
- Turing Complete - обучающая игра про создание процессора с нуля
- TIS-100
- EXAPUNKS
- SHENZHEN I/O
- Nandgame
- nand2tetris
Память #
Программа для процессора хранится в памяти и не изменяется в процессе работы, по сути только читается. В то же время в процессе работы программы могут создаваться значения, которые нужно где-то хранить. Соответственно существует два типа памяти - постоянная (ПЗУ, ROM) и оперативная (ОЗУ, RAM). В компьютере роль постоянной памяти может выполнять внешний жёсткий диск (HDD, SSD) и флеш-накопитель, оперативная память же расположена на материнской плате компьютера рядом с процессором. Эти типы памяти физически по разному устроены и имеют свои особенности:
Характеристика | ROM | RAM |
---|---|---|
Сохранение данных при отключении питания | Да | Нет |
Скорость чтения и записи | Невысокая | Высокая |
Износ при записи | Да | Нет |
Физический размер | Маленький | Большой |
В ROM постоянно хранится код программы и другие "постоянные" данные, а в RAM - временные данные, которые существуют, пока подаётся питание
Процессор имеет доступ к внешним ПЗУ и ОЗУ для выполнения программы, но в то же время обычно имеет небольшой объем ОЗУ и у себя на борту - регистры (registers) и кэш (cache). Это небольшие области оперативной памяти, к которым процессор имеет самый быстрый доступ - гораздо более быстрый, чем внешняя ОЗУ. Эти области нужны для хранения промежуточных значений вычислений, подгрузки данных для быстрой обработки и так далее.
FPGA #
Существует процессор и в формате "сделай сам" - Программируемая Логическая Матрица, ПЛМ (Field-Programmable Gate Array, FPGA) или Программируемая Логическая Интегральная Схема, ПЛИС. Это матрица логических вентилей, которые можно самостоятельно соединить в нужном порядке и получить цифровую схему под конкретную задачу. Это может быть обработка данных, конвертер интерфейса связи или например игра тетрис. Преимущество ПЛИС - в скорости работы, так как по сравнению с обычным процессором, который последовательно читает программу из памяти и выполняет заданные действия, схема на ПЛИС изначально спроектирована для выполнения конкретной задачи без лишних операций и работает по сути параллельно. Она работает сразу на уровне электрических сигналов, что позволяет создавать невероятно быстрые и эффективные аппаратные блоки.
Основные тезисы урока #
- Микросхема - интегральная схема из базовых электронных компонентов, выращенная на полупроводниковой подложке в виде цельного кристалла
- Процессор - цифровая микросхема, которая может получать и выполнять команды
- Микропроцессор - процессор с набором основных блоков, в простонародии микропроцессор = процессор
- Процессор состоит из блоков, которые состоят из логических вентилей, которые состоят из транзисторов
- Транзистор - управляемый выключатель
- Логический (цифровой) сигнал имеет значение 0 или 1 при отсутствии или наличии напряжения соответственно
- Можно сделать свой процессор из любого аналога транзистора
- Процессор работает с двумя видами памяти - постоянной и оперативной
- Постоянная память сохраняет данные при перезагрузке и изнашивается при записи
- Оперативная память работает быстрее, не изнашивается, но не сохраняет данные при перезагрузке
- Регистры и кэш - области оперативной памяти внутри микропроцессора с максимально быстрым доступом для процессора
- FPGA, ПЛИС - программируемая матрица логических вентилей, из которой можно сделать любую логическую схему, в том числе свой процессор