В июне 1945 года американский математик венгерского происхождения Джон фон Нейман подготовил исторический документ «First Draft of a Report on the EDVAC», в котором сформулировал базовые концепции построения универсальных программируемых электронно-вычислительных машин. Разработанные тогда принципы и по сей день лежат в основе подавляющего большинства персональных компьютеров, серверов и мобильных устройств.
89 D8 может интерпретироваться процессором x86 как команда MOV AX, BX (если адрес этой ячейки загружен в счетчик команд IP), либо как 16-разрядное целое число 35288 при чтении данных. Этот принцип позволяет программам обрабатывать другие программы (компиляторы, загрузчики, JIT-движки).
Системная магистраль представляет собой параллельный пучок проводников (печатных дорожек материнской платы или внутренних линий кристалла), по которым происходит обмен цифровыми сигналами между процессором, памятью и периферийными устройствами. Магистраль жестко разделяется на три функциональные шины:
| Магистраль | Направление передачи | Что передается | Формула и влияние разрядности |
|---|---|---|---|
| Шина адреса (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) | Смешанная (отдельные линии строго однонаправленные) |
Служебные синхронизирующие стробы и статусы:
|
Количество линий шины управления составляет обычно от 20 до 50 независимых проводников. |
Центральный процессор непрерывно выполняет бесконечный конвейерный цикл, состоящий из четырех канонических фаз: 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) |
+---------------------------------------------------------------------------------+
PC (Program Counter) / IP (Instruction Pointer) — указатель адреса следующей исполняемой команды.MAR (Memory Address Register) — буферный регистр адреса памяти, напрямую соединенный с внешней шиной адреса.MDR (Memory Data Register) — двунаправленный буфер данных, связывающий внутреннюю шину ЦПУ с внешней системной шиной данных.IR (Instruction Register) — регистр команд, удерживающий опкод текущей инструкции во время ее декодирования.FLAGS / PSW (Program Status Word) — регистр признаков результатов операций: флаг нуля ZF, флаг переноса CF, флаг знака SF, флаг переполнения OF.| Фаза / Такт | Состояние шины адреса (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. Цикл команды завершен. |
| Характеристика | Принстонская (Архитектура фон Неймана) | Гарвардская архитектура |
|---|---|---|
| Физическая структура памяти | Общий массив оперативной памяти для программного кода и пользовательских данных. | Два физически изолированных банка памяти: постоянная память программ (Flash/ROM) и оперативная память данных (SRAM). |
| Шинный интерфейс | Единая мультиплексированная шина адреса и шина данных. | Раздельные независимые шины команд (Instr Bus) и данных (Data Bus). |
| Параллелизм выборки | Последовательный доступ: невозможно одновременно читать команду и сохранять данные операнда. | Параллельный доступ: в одном такте процессор выбирает следующую команду и читает/пишет операнд в память данных. |
| Аппаратные затраты | Минимальное число внешних выводов микропроцессора, простая разводка системной платы. | Удвоенное число выводов кристалла, сложность трассировки печатной платы. |
| Ключевая область применения | Универсальные настольные ПК, серверы корпоративных БД, мобильные процессоры общего назначения. | Микроконтроллеры жесткого реального времени (AVR, PIC, STM32), цифровые процессоры сигналов (DSP). |
Ответ: Команды и данные хранятся в общем физическом массиве ячеек памяти в двоичной форме без различительных аппаратных меток. Различие заключается в контексте: если адрес ячейки считывается по регистру-счетчику команд PC/IP в фазе Fetch — байт интерпретируется как опкод инструкции; если обращение происходит по адресу операнда в фазе Execute — как числовое данное.
Ответ: $V = 2^{24}$ байт $= 16\,777\,216$ байт $= 16$ Мегабайт (МБ).
Ответ: Адрес всегда генерирует активный мастер шины (центральный процессор или контроллер DMA) для указания ведомого целевого узла. По шине данных процессор выполняет как операцию считывания (данные идут из памяти в ЦПУ), так и операцию записи (данные идут из ЦПУ в память), что требует двустороннего направления передачи.
Ответ: Состояние высокого электрического импеданса (разрыва цепи). Оно необходимо для предотвращения электрического конфликта и короткого замыкания, когда к параллельным дорожкам системной шины подключено множество микросхем памяти и периферийных контроллеров.