Перейти к основному содержимому

Многоуровневая организация компьютера

Всем

Цифровой компьютер исполняет только примитивные команды — сложить числа, сравнить с нулём, скопировать блок памяти. Писать игру или сайт сразу на таком языке трудно и утомительно. Решение — уровни абстракции: каждый следующий «язык» удобнее для человека, а нижележащий уровень переводит или исполняет его по правилам.

Эта модель — сквозная нить курса «Как работает компьютер»: она связывает железо, программу и операционную систему.


Проблема — два языка

У реального процессора есть машинный язык Я0 — набор инструкций, которые понимает кремний. Программист хочет писать на Я1 — языке, где есть переменные, циклы и функции.

ПодходЧто происходитПример
ТрансляцияВся программа на Я1 переписывается в программу на Я0, затем исполняетсяC → машинный код через компилятор
ИнтерпретацияКаждая команда Я1 по очереди разбирается и сразу выполняется на Я0Python в CPython (с байт-кодом)

Удобнее думать так: существует виртуальная машина M1, для которой «родным» является Я1. Программы пишут для M1, а реальное железо M0 исполняет их через транслятор или интерпретатор. Подробнее про конвейер компиляции — в Компиляторы и интерпретаторы.


Лестница уровней

Если Я1 всё ещё слишком низок, добавляют Я2, Я3 и так далее, пока верхний уровень не станет удобным. Каждый язык опирается на предыдущий — получается иерархия виртуальных машин.

Термин «уровень» и «виртуальная машина» в архитектуре компьютеров часто означают одно и то же. Слово «виртуальная машина» в другом смысле — гостевая ОС в Hyper-V или VirtualBox (раздел про ОС).


Шесть уровней современного ПК

Типичная схема для настольного компьютера и смартфона:

УровеньНазваниеЧто здесьКак поддерживается
0АппаратураТранзисторы, проводаФизика
1Цифровая логикаВентили, регистры, шиныСхемы на кристалле
2МикроархитектураКонвейер, АЛУ, кэш L1/L2«Внутренности» CPU
3ISAМашинные команды x86 / ARMСпецификация + реализация в CPU
4ОСФайлы, процессы, сокетыWindows, Linux, Android
5АссемблерМнемоники mov, addNASM, GNU as
6+Языки и приложенияPython, браузер, IDEКомпиляторы, интерпретаторы, JIT

Граница для прикладного программиста
Уровни 0–3 изучают системные программисты и инженеры по железу. Уровни 4–6 — повседневная работа разработчика. Понимать все шесть не обязательно, но уровень 4 (ОС) и уровень 3 (ISA) сильно помогают при отладке и производительности.


Уровень 2 — микроархитектура

На этом уровне видны регистры, АЛУ и тракт данных. Одна «микрооперация» — выбрать регистры, выполнить сложение, записать результат.

Современные CPU почти всегда используют конвейер и кэш — это уровень 2, а не то, что описано в справочнике ISA. Команда ADD в ассемблере — уровень 3; то, как Pentium или Apple M2 её разбивает на стадии — уровень 2. Подробнее — Архитектура фон Неймана, RISC и CISC, ЭВМ.


Уровень 3 — архитектура набора команд (ISA)

ISA (Instruction Set Architecture) — контракт между программой и процессором: какие команды есть, какие регистры, как адресовать память. Программа, собранная под x86-64, на ARM без пересборки или эмуляции не запустится.

СемействоГде встречаетсяЗаметка
x86 / x86-64ПК, многие серверыИсторически CISC; внутри — RISC-подобное ядро
ARMСмартфоны, одноплатники, Apple SiliconДоминирует в мобильных и встраиваемых
RISC-VЭксперименты, новые чипыОткрытая спецификация
AVRArduino Uno, бытовая электроникаМикроконтроллеры с крошечной памятью

Три эталонных процессора — Core i7, OMAP4430 (ARM) и ATmega168 (AVR) — показывают один и тот же принцип уровней на разном масштабе: от сервера до микросхемы в бытовой технике. Подробнее — Встраиваемые системы.


Уровень 4 — операционная система (гибридный)

ОС — гибридный уровень: часть команд совпадает с ISA (например, системные вызовы опираются на инструкции процессора), часть — новые абстракции, которых в железе нет буквально.

Абстракция ОСЧто скрывает от программы
ФайлСектора диска, контроллер NVMe, прерывания
ПроцессПереключение регистров, таблицы страниц
СокетПакеты Ethernet, драйвер сетевой карты
ПотокПланировщик, очереди готовности

Программист открывает report.pdf — это уровень 4. ОС переводит операцию в обращения к драйверу и DMA — уровни 3–1. Две роли ОС — виртуальная машина и диспетчер ресурсов.


Уровни 5–6 — ассемблер и языки

Ассемблер — символическая форма ISA: вместо 0x48 0x89 0xE5 пишут mov rbp, rsp. Компилятор C или интерпретатор Python поднимают абстракцию ещё выше.

Цепочка для типичной программы на C:

  1. Исходник .c → компилятор → объектный модуль (уровень 3–4).
  2. Линковщик → исполняемый файл.
  3. ОС загружает файл в память, создаёт процесс (уровень 4).
  4. CPU исполняет машинные команды (уровни 2–3).

Для Python часть пути — байт-код и виртуальная машина CPython (исполнение программы).


Зачем это знать на практике

СитуацияКакой уровень помогает
«Программа тормозит»2 (кэш, конвейер), 4 (swap, планировщик)
«Не запускается на другом процессоре»3 (ISA, ARM vs x86)
«Файл не читается»4 (права, ФС), иногда 1 (диск)
«Сборка под Linux, не под Windows»4–6 (API, ABI, линковка)
«Прошивка Arduino»2–3 (AVR, MMIO) — встраиваемые системы

Куда читать дальше

  1. Принцип работы компьютера — обзор железа и видов машин.
  2. Память и накопители — иерархия от кэша до SSD.
  3. Поколения вычислительной техники — история от механики до VLSI.
  4. RISC и CISC — философии проектирования ISA.
  5. ЭВМ — инженерное углубление (регистры, шины, прерывания).

См. также

Другие статьи этого же раздела в боковом меню (как на странице "О разделе").