Теоретический конспект: Принципы организации ЭВМ

Дисциплина «ОП.02 Архитектура аппаратных средств» | ММКЦТ «Академия TOP»
Раздел 3. Принципы организации ЭВМ (§2.2 с.8 программы курса)

1. Архитектурная модель Джона фон Неймана

В июне 1945 года американский математик венгерского происхождения Джон фон Нейман подготовил исторический документ «First Draft of a Report on the EDVAC», в котором сформулировал базовые концепции построения универсальных программируемых электронно-вычислительных машин. Разработанные тогда принципы и по сей день лежат в основе подавляющего большинства персональных компьютеров, серверов и мобильных устройств.

Пять ключевых принципов фон Неймана:

  1. Принцип двоичного кодирования: Все формы информации (числа, тексты, команды программы, изображения, аудиоданные) представляются в машине в виде последовательностей двоичных цифр (бит): 0 и 1. Логические схемы ЭВМ (транзисторы) функционируют в ключевом режиме, надежно фиксируя два устойчивых электрических состояния: высокий потенциал ($V_{CC}$) и низкий потенциал (GND).
  2. Принцип программного управления: ЭВМ не требует физической перепайки проводников или коммутации шнуров для смены выполняемого алгоритма (как ранний ENIAC). Вычисления управляются программой — упорядоченным набором машинных инструкций, выполняемых центральным процессором автоматически шаг за шагом.
  3. Принцип однородности памяти (Stored-program concept): Исполняемые команды программы и обрабатываемые числовые данные хранятся в едином физическом запоминающем устройстве (ОЗУ) и кодируются одинаково. Машина не отличает команду от данных по физической структуре битов. Одно и то же 16-битное число 89 D8 может интерпретироваться процессором x86 как команда MOV AX, BX (если адрес этой ячейки загружен в счетчик команд IP), либо как 16-разрядное целое число 35288 при чтении данных. Этот принцип позволяет программам обрабатывать другие программы (компиляторы, загрузчики, JIT-движки).
  4. Принцип адресности памяти: Основная память структурно состоит из нумерованных ячеек (байт). Номер ячейки называется её физическим адресом. Процессор имеет возможность мгновенно обратиться к любой произвольной ячейке памяти по её номеру, не перебирая все предыдущие ячейки (память с произвольным доступом — RAM, Random Access Memory).
  5. Принцип последовательного программного управления: По умолчанию команды извлекаются и выполняются процессором последовательно из смежных ячеек памяти в порядке возрастания их адресов. Для реализации этого принципа в процессоре используется специальный регистр — программный счетчик (Program Counter, PC / Instruction Pointer, IP), который автоматически увеличивается на длину выбранной инструкции. Нарушение последовательного порядка происходит только при выполнении команд перехода (JMP, JNZ, CALL, RET) или при обработке прерываний.
Магистрально-модульный принцип: Современная ЭВМ компонуется из функционально законченных блоков (модулей: ЦПУ, модули ОЗУ, видеокарта, SSD-накопитель, сетевой адаптер), связанных между собой единой универсальной системной магистралью (шиной). Это обеспечивает гибкую масштабируемость и открытую архитектуру ПК.

2. Системная шинная организация (Магистраль ЭВМ)

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

Шина адреса (AB):
CPU → [ Однонаправленная, передает номер ячейки памяти или порта ] → ОЗУ / УВВ
Шина данных (DB):
← [ Двунаправленная, пересылает коды команд и значения операндов ] →
Шина управления (CB):
↔ [ Стробы чтения/записи, тактовые сигналы, прерывания, готовность ] ↔

Подробная характеристика функциональных шин:

Магистраль Направление передачи Что передается Формула и влияние разрядности
Шина адреса (Address Bus, AB) Однонаправленная (от CPU к памяти и контроллерам ввода-вывода) Двоичный номер целевой ячейки оперативной памяти или адрес регистра периферийного устройства (I/O Port). Разрядность $N$ бит определяет максимальный объем адресуемого физического пространства:
$V_{max} = 2^N$ байт.
Примеры: 16 бит = 64 КБ; 20 бит (i8086) = 1 МБ; 32 бита (i386/x86-32) = 4 ГБ; 48 бит (x86-64) = 256 ТБ.
Шина данных (Data Bus, DB) Двунаправленная (CPU ↔ ОЗУ / Периферия) Машинные коды инструкций, целочисленные значения, символы, вещественные числа, массивы байтов. Разрядность $M$ бит определяет ширину машинного слова, передаваемого за один такт шины (8, 16, 32, 64 бита).
Пропускная способность: $Bandwidth = Width \times Frequency$.
Шина управления (Control Bus, CB) Смешанная (отдельные линии строго однонаправленные) Служебные синхронизирующие стробы и статусы:
  • #MEMR (Memory Read) — строб чтения из памяти;
  • #MEMW (Memory Write) — строб записи в память;
  • #IOR / #IOW — обращение к портам ввода-вывода;
  • CLK — синхросигнал системного тактового генератора;
  • RESET — аппаратная инициализация процессора;
  • READY / WAIT — подтверждение готовности ведомого узла;
  • INTR / #INTA — запрос и подтверждение прерывания.
Количество линий шины управления составляет обычно от 20 до 50 независимых проводников.
Режим третьего состояния (Z-состояние / Hi-Z): Поскольку к общей шине данных подключено множество микросхем (десятки чипов памяти, контроллеры дисков, видеокарта), одновременная подача напряжения от двух устройств вызвала бы короткое замыкание. Все отключенные в данный момент устройства переводят свои выходные каскады в состояние высокоомного сопротивления (Hi-Z, электрический разрыв), освобождая магистраль активному модулю.

3. Машинный цикл выполнения команды (Instruction Cycle)

Центральный процессор непрерывно выполняет бесконечный конвейерный цикл, состоящий из четырех канонических фаз: Fetch (Выборка) → Decode (Декодирование) → Execute (Выполнение) → Writeback (Обратная запись).

  +---------------------------------------------------------------------------------+
  |                        МАШИННЫЙ ЦИКЛ КОМАНДЫ (CPU CYCLE)                        |
  +---------------------------------------------------------------------------------+
  |  1. FETCH (Выборка)        | Маршрут: PC -> MAR -> [Шина Адреса] -> ОЗУ         |
  |                            | Строб: #MEMR -> [Шина Данных] -> MDR -> IR         |
  |                            | Инкремент: PC = PC + len(instruction)              |
  +----------------------------+----------------------------------------------------+
  |  2. DECODE (Декодирование) | Маршрут: IR -> Дешифратор команд УУ (ID)           |
  |                            | Генерация управляющих микросигналов, расчет адреса |
  +----------------------------+----------------------------------------------------+
  |  3. EXECUTE (Выполнение)   | Маршрут: Операнды -> АЛУ (ALU)                     |
  |                            | Арифметическая операция / логическое И-ИЛИ         |
  |                            | или вычисление целевого адреса ветвления           |
  +----------------------------+----------------------------------------------------+
  |  4. WRITEBACK (Фиксация)   | Маршрут: Результат АЛУ -> Регистр (AX/BX) или ОЗУ  |
  |                            | Обновление регистра признаков и флагов (FLAGS)     |
  +---------------------------------------------------------------------------------+
    

Служебные внутренние регистры процессора:

Потактовая диаграмма выполнения команды выборки операнда из памяти (MOV AX, [1000h]):

Фаза / Такт Состояние шины адреса (AB) Состояние шины данных (DB) Сигналы шины управления (CB) Внутреннее действие процессора
Такт T1 (Fetch 1) Выставлен адрес команды из PC (например, 0100h) В состоянии Hi-Z (ожидание) Выставлен строб чтения #MEMR = 0 Значение PC переписано в регистр MAR. Начало цикла выборки опкода.
Такт T2 (Fetch 2) Удерживается адрес 0100h ОЗУ выдает опкод MOV AX, [addr] Строб #MEMR = 0 активен; сигнал READY = 1 Опкод с шины данных попадает в MDR, а затем фиксируется в регистре IR. PC инкрементируется.
Такт T3 (Decode) Выставляется адрес смещения 1000h Шина данных свободна Стробы памяти неактивны Дешифратор УУ распознает команду чтения из памяти по адресу 1000h. Адрес передается в MAR.
Такт T4 (Execute/Read) На шине адреса удерживается 1000h В состоянии Hi-Z до ответа памяти Активируется строб чтения #MEMR = 0 Контроллер ОЗУ считывает 16-битное значение ячейки 1000h.
Такт T5 (Writeback) Адрес снимается с шины ОЗУ выдает данные ячейки 1000h Строб #MEMR деактивируется (переход в 1) Данные из MDR переписываются во внутренний регистр общего назначения AX. Цикл команды завершен.

4. Фон-неймановская и Гарвардская архитектуры. Von Neumann Bottleneck

Сравнение архитектурных концепций:

Характеристика Принстонская (Архитектура фон Неймана) Гарвардская архитектура
Физическая структура памяти Общий массив оперативной памяти для программного кода и пользовательских данных. Два физически изолированных банка памяти: постоянная память программ (Flash/ROM) и оперативная память данных (SRAM).
Шинный интерфейс Единая мультиплексированная шина адреса и шина данных. Раздельные независимые шины команд (Instr Bus) и данных (Data Bus).
Параллелизм выборки Последовательный доступ: невозможно одновременно читать команду и сохранять данные операнда. Параллельный доступ: в одном такте процессор выбирает следующую команду и читает/пишет операнд в память данных.
Аппаратные затраты Минимальное число внешних выводов микропроцессора, простая разводка системной платы. Удвоенное число выводов кристалла, сложность трассировки печатной платы.
Ключевая область применения Универсальные настольные ПК, серверы корпоративных БД, мобильные процессоры общего назначения. Микроконтроллеры жесткого реального времени (AVR, PIC, STM32), цифровые процессоры сигналов (DSP).

Проблема «Узкого места фон Неймана» (Von Neumann Bottleneck):

Суть феномена: В фон-неймановской машине пропускная способность общей системной шины между процессором и оперативной памятью фундаментально ограничена. Ядро современного процессора работает на тактовой частоте 3.5–5.0 ГГц и способно выполнять несколько миллиардов операций в секунду. Однако латентность оперативной памяти DDR4/DDR5 составляет 40–70 наносекунд. За время ожидания одного чтения из ОЗУ процессор мог бы выполнить 200–300 тактов вычислений! Возникает эффект «голодания» процессора (Memory Wall).

Аппаратные методы преодоления узкого места в современных ЭВМ:

  1. Многоуровневая иерархия кэш-памяти (L1, L2, L3): Быстрая статическая память (SRAM), размещаемая прямо на кристалле ЦПУ. Кэш первого уровня L1 работает на частоте ядра за 3–4 такта и разделен по модифицированной гарвардской схеме: кэш инструкций L1I и кэш данных L1D.
  2. Аппаратная конвейеризация (Pipelining): Разбиение выполнения команды на независимые ступени, позволяющее одновременно выполнять разные фазы для нескольких инструкций (пока инструкция $N$ выполняется в АЛУ, инструкция $N+1$ декодируется, а $N+2$ выбирается из памяти).
  3. Аппаратная предвыборка (Prefetching) и спекулятивное выполнение: Блок предсказания ветвлений (Branch Predictor) заранее запрашивает блоки данных и команд из ОЗУ в кэш до того, как они понадобятся АЛУ.
  4. Многоканальные шины памяти: Организация 2, 4 или 8 параллельных каналов DDR5, удваивающих суммарную пропускную способность шины данных.

5. Контрольные вопросы для самопроверки

1. В чем заключается суть принципа однородности памяти Джона фон Неймана? Как процессор различает команды и операнды?

Ответ: Команды и данные хранятся в общем физическом массиве ячеек памяти в двоичной форме без различительных аппаратных меток. Различие заключается в контексте: если адрес ячейки считывается по регистру-счетчику команд PC/IP в фазе Fetch — байт интерпретируется как опкод инструкции; если обращение происходит по адресу операнда в фазе Execute — как числовое данное.

2. Какой максимальный объем оперативной памяти может адресовать микропроцессор с 24-разрядной шиной адреса?

Ответ: $V = 2^{24}$ байт $= 16\,777\,216$ байт $= 16$ Мегабайт (МБ).

3. Почему шина адреса является однонаправленной, а шина данных — двунаправленной?

Ответ: Адрес всегда генерирует активный мастер шины (центральный процессор или контроллер DMA) для указания ведомого целевого узла. По шине данных процессор выполняет как операцию считывания (данные идут из памяти в ЦПУ), так и операцию записи (данные идут из ЦПУ в память), что требует двустороннего направления передачи.

4. Какое состояние выводов микросхемы называется «третьим состоянием» (Hi-Z) и зачем оно необходимо на системной шине?

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