Методическое руководство для преподавателя

Дисциплина: ОП.02 Архитектура аппаратных средств

Тема занятия (§2.2 с.8 программы): Раздел 3. Принципы организации ЭВМ

Регламент: 2 академических часа (основной 90 мин, сокращенный 60 мин) | Формат: Урок с объяснением теории

1. Детальный тайминг занятия (90 и 60 минут)

Основной регламент — 90 минут:

Сокращенный регламент — 60 минут:

2. Фундаментальные принципы и концепции

2.1. Принципы Джона фон Неймана (1945 г.):

  1. Принцип двоичного кодирования: вся информация (как числовые/символьные данные, так и исполняемые команды) кодируется в двоичной системе счисления с помощью нулей и единиц.
  2. Принцип программного управления: работа вычислителя определяется последовательностью команд — программой. Процессор автоматически исполняет команды одну за другой, если нет явного перехода.
  3. Принцип однородности памяти: команды и данные размещаются в едином общем физическом адресном пространстве памяти и не имеют внешних различительных признаков. Процессор интерпретирует байт как команду или операнд исключительно в зависимости от того, в какой фазе машинного цикла к нему обратились.
  4. Принцип адресности ячеек памяти: память представляет собой массив дискретных ячеек (байт/слов), каждая из которых имеет фиксированный числовой уникальный номер (адрес). Доступ к любой ячейке осуществляется произвольным образом (RAM).
  5. Принцип последовательного программного управления: адрес следующей команды формируется автоматически увеличением текущего значения программного счетчика (Program Counter, PC), за исключением команд ветвления, условных переходов, вызовов подпрограмм и прерываний.

2.2. Пятиблочная структура классической ЭВМ:

+-----------------------------------------------------------+ | ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР (CPU) | | +--------------------+ +-----------------------+ | | | Устройство | | Арифметико-логическое| | | | управления (УУ / | <-----> | устройство (АЛУ / | | | | Control Unit, CU) | | ALU) + Регистры (AX) | | | +---------+----------+ +-----------+-----------+ | +------------|--------------------------------|-------------+ | СИСТЕМНАЯ МАГИСТРАЛЬ| | Шина адреса (Address Bus, AB) | (однонаправленная CPU->MEM) |================================+=============+ | Шина данных (Data Bus, DB) | (двунаправленная CPU<=>MEM/IO) |================================+=============+ | Шина управления (Control Bus) | (стробы MREAD, MWRITE, CLK...) |================================+=============+ | | +----------+---------+ +---------+-------------+ | Запоминающее | | Устройства ввода- | | устройство (ЗУ/RAM)| | вывода (УВВ / IO) | +--------------------+ +-----------------------+

2.3. Системные магистрали:

2.4. Четырехфазный цикл команды (Instruction Machine Cycle):

  1. Fetch (Выборка команды): Процессор выставляет значение регистра PC (Program Counter / IP) на шину адреса через регистр MAR (Memory Address Register). Посылается управляющий строб MEMR. Память считывает байты инструкции и передает их по шине данных в регистр данных MDR (Memory Data Register), откуда опкод переносится в регистр команд IR (Instruction Register). Счетчик PC инкрементируется на длину выбранной инструкции.
  2. Decode (Декодирование): Дешифратор команд устройства управления анализирует опкод, определяет требуемую операцию (сложение, пересылка, переход), выявляет режимы адресации и операнды, генерирует внутреннюю микропрограмму управляющих импульсов.
  3. Execute (Выполнение): АЛУ производит назначенную операцию над операндами (например, сумматором над AX и BX, логическое И, сдвиг) либо УУ изменяет значение PC при условном/безусловном переходе.
  4. Writeback (Обратная запись): Результат вычислений фиксируется в целевом регистре процессора (General Purpose Register, GPR) либо через MAR и MDR выставляется на шину данных и шину адреса для записи в ОЗУ по стробу MEMW. Обновляются флаги в регистре состояния FLAGS (CF, ZF, SF, OF и др.).

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

Суть проблемы: Процессор и оперативная память физически разделены системной шиной с ограниченной пропускной способностью и высокой задержкой передачи. С 1980 по 2020-е годы тактовая частота и вычислительная мощность процессоров выросли в тысячи раз (от единиц МГц до 5 ГГц), в то время как задержка произвольного доступа DRAM уменьшилась незначительно (с 100 нс до 40–50 нс). В результате процессор тратит сотни тактов впустую (такты ожидания, memory stalls), ожидая доставку операндов по шине.

2.6. Гарвардская архитектура против фон-неймановской:

Параметр Принстонская (фон Неймана) Гарвардская архитектура
Организация памяти Единое физическое адресное пространство для кода и данных Физически раздельные модули памяти: память программ (Flash/ROM) и память данных (SRAM)
Шинная структура Одна общая системная магистраль (AB + DB) для всех операций Две независимые шинные пары: шина команд (AB_instr + DB_instr) и шина данных (AB_data + DB_data)
Одновременность доступа Невозможна: процессор не может одновременно читать команду и операнд из памяти Полная: одновременная параллельная выборка следующей команды и чтение/запись данных
Аппаратная сложность Минимальное число выводов корпуса микросхемы, дешевизна разводки Удвоенное число проводников и контактов кристалла/платы
Сфера применения Универсальные процессоры ПК и серверов (x86, ARM Cortex-A) на уровне системной шины Микроконтроллеры (AVR, PIC, ARM Cortex-M), цифровые сигнальные процессоры (DSP)
Компромисс в современных ПК Модифицированная гарвардская архитектура: внутри чипа ЦПУ процессор имеет раздельные кэши L1I (команды) и L1D (данные) с раздельными высокоскоростными внутренними шинами, но наружу к контроллеру системной памяти DDR выходит единая унифицированная шина фон Неймана.

3. Типовые ошибки студентов и педагогические приемы

Типовые ошибки студентов:

  1. Смешение понятий шины адреса и шины данных: Студенты часто считают, что числовые значения операндов передаются по шине адреса, либо путают разрядность шины адреса (определяющей объем адресуемой памяти) с разрядностью шины данных (определяющей размер одновременно передаваемой порции слова).
    Разъяснение: Шина адреса — это «номер почтового ящика», а шина данных — это «письмо, которое лежит внутри ящика». Чтобы получить письмо, нужно сначала показать пальцем на ящик (AB), а затем достать или положить лист бумаги (DB).
  2. Непонимание однородности памяти: Студенты полагают, что машинный код физически окрашен или имеет специальные аппаратные метки, препятствующие его чтению как данных.
    Разъяснение: Продемонстрировать байт 90h. В контексте данных это число 144. В контексте выполнения инструкции x86 — это опкод NOP. Разница заключается исключительно в том, указывает ли на эту ячейку регистр PC (IP). На этом принципе базируются как вирусы с инъекцией шеллкода в стек, так и JIT-компиляторы.
  3. Игнорирование регистра флагов при переходе: При анализе инструкции JNZ студенты забывают, что сам JNZ не вычисляет разность, а лишь считывает флаг ZF, установленный ПРЕДЫДУЩЕЙ арифметической инструкцией (например, SUB или CMP).
  4. Убежденность, что процессор всегда работает на 100% своей мегагерцовой частоты: Студенты не осознают, что без кэш-памяти процессор до 90% времени простаивает в циклах WAIT в ожидании ответа оперативной памяти.

Рекомендуемые педагогические приемы:

4. Дифференциация и критерии выставления оценок

Оценивание работы студентов на занятии осуществляется по закрытой критериальной рубрике (.rubrika.md) с максимальной суммой 4 балла: