Карточка 5. Счётчик команд и цикл инструкции

← Все карточки

Паспорт концепта

  • Уровни: 15 «Пульс системы» (10 мин), 16 «Счётчик команд» (30 мин), 17 «Дешифратор» (30 мин), 18 «Архитектура Harvard» (60 мин). Уровни 15–16 — часть 1, 17–18 — часть 2.
  • Суммарно: ~130 минут игры, три-четыре занятия. Уровень 18 — вершина первой половины курса.
  • Результаты обучения: ученик объясняет, как такт двигает данные через регистры; собирает счётчик команд и объясняет цикл регистр → АЛУ → регистр; понимает, как опкод распознаётся цепочками AND; объясняет цикл выполнения инструкции и Harvard-архитектуру (ROM + RAM).
  • Гайды: ур. 15, ур. 16, ур. 17, ур. 18.

План занятия на 45 минут

Ставим главный механизм курса: «каждый такт PC говорит, какую команду выполнять». Уровень 18 растягивается на несколько занятий.

  • 0–10 мин. Уровень 15 всем классом: нажимайте Tick вместе и считайте вслух. Фиксируем: без такта регистр не запоминает.
  • 10–25 мин. Сборка уровня 16. Контрольный вопрос до проверки: что подать на второй вход сумматора и почему именно константу 1?
  • 25–35 мин. Разбор концепт-чека уровня 16. Затем опкод как адрес: сколько команд помещается в 4 бита?
  • 35–45 мин. Стартовая точка уровня 18: прочитайте задание, начертите на доске блоки ROM, RAM, PC, АЛУ и провода между ними. Сборку — на самостоятельную работу.

Вопросы для обсуждения

  1. Что случится со счётчиком команд, если убрать тактовый сигнал? А если он будет идти вдвое быстрее?
  2. Почему на второй вход сумматора подают константу 1, а не выход регистра? Что бы считал счётчик с удвоением?
  3. Опкод занимает 4 бита. Сколько это команд? Хватит ли для вашего калькулятора?
  4. При LDA данные идут RAM → шина → MUX → аккумулятор. Почему команда из ROM не может писать в RAM напрямую?
  5. Зачем инструкции два отдельных воспоминания — ROM и RAM? Что сломается, если программу и данные держать в одной памяти?
  6. Проведите одну инструкцию ADD по вашей схеме уровня 18 и перечислите все такты, которые она занимает.

Ожидаемые ошибки

Список собран из неверных вариантов концепт-чеков; по мере накопления телеметрии он будет уточняться по реальной доле верных ответов с первой попытки.

  • Ученик подаёт на сумматор выход регистра, чтобы «адрес удваивался». Реакция: посчитайте вслух адреса 0, 2, 4 — каждая вторая команда пропускается. Шаг должен быть равен длине команды.
  • Ученик подаёт тактовый сигнал на сумматор. Реакция: сумматор не имеет входа такта; такт нужен регистру, чтобы запомнить результат.
  • Ученик говорит: «4 бита — 4 команды». Реакция: выпишите на доске все комбинации четырёх битов по столбикам. Их 16, по числу перестановок, а не по числу разрядов.
  • Ученик говорит: «LDA читает программу из ROM в аккумулятор». Реакция: ROM хранит команды, RAM — данные. Адрес из LDA — это адрес ячейки данных.
  • Ученик проводит данные из RAM в аккумулятор в обход АЛУ. Реакция: на этой архитектуре тракт данных один и проходит через АЛУ; отдельного «коридора» нет.

Критерии оценки

  1. Собрал. Уровни 16–17 закрыты; уровень 18 доведён до зелёной проверки (допустимы наводящие подсказки и каркас: в финальном уровне каркас не подключает такт к счётчику команд и запись в RAM — ученик восстанавливает их сам).
  2. Собрал и объяснил. Проходит инструкцию ADD по схеме с указанием тактов, отвечает на вопросы 2, 4, 5.
  3. Перенёс на новую задачу. Выполнил задачу для сильных или объясняет, как добавить в схему команду с двухбайтовым операндом.

Задача для сильных

На ассемблере (вкладка уровня 18 и далее) напишите программу, которая удваивает число в ячейке RAM без команды умножения: через сложение числа с самим собой. Затем объясните, какие такты тратятся на цикл выборки, а какие — на само действие.

Парная работа

Проектировщик собирает схему уровня 18; проверяющий держит список сигналов (адрес на ROM, данные на шину, управляющие входы регистров) и после каждого такта фиксирует в таблице, какой блок что делает. Проверяющий ищет расхождение «что должно произойти» и «что показал LED8». Смена ролей — при переходе от ROM-части к RAM-части схемы.