Карточка 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, а не выход регистра? Что бы считал счётчик с удвоением?
- Опкод занимает 4 бита. Сколько это команд? Хватит ли для вашего калькулятора?
- При LDA данные идут RAM → шина → MUX → аккумулятор. Почему команда из ROM не может писать в RAM напрямую?
- Зачем инструкции два отдельных воспоминания — ROM и RAM? Что сломается, если программу и данные держать в одной памяти?
- Проведите одну инструкцию ADD по вашей схеме уровня 18 и перечислите все такты, которые она занимает.
Ожидаемые ошибки
Список собран из неверных вариантов концепт-чеков; по мере накопления телеметрии он будет уточняться по реальной доле верных ответов с первой попытки.
- Ученик подаёт на сумматор выход регистра, чтобы «адрес удваивался». Реакция: посчитайте вслух адреса 0, 2, 4 — каждая вторая команда пропускается. Шаг должен быть равен длине команды.
- Ученик подаёт тактовый сигнал на сумматор. Реакция: сумматор не имеет входа такта; такт нужен регистру, чтобы запомнить результат.
- Ученик говорит: «4 бита — 4 команды». Реакция: выпишите на доске все комбинации четырёх битов по столбикам. Их 16, по числу перестановок, а не по числу разрядов.
- Ученик говорит: «LDA читает программу из ROM в аккумулятор». Реакция: ROM хранит команды, RAM — данные. Адрес из LDA — это адрес ячейки данных.
- Ученик проводит данные из RAM в аккумулятор в обход АЛУ. Реакция: на этой архитектуре тракт данных один и проходит через АЛУ; отдельного «коридора» нет.
Критерии оценки
- Собрал. Уровни 16–17 закрыты; уровень 18 доведён до зелёной проверки (допустимы наводящие подсказки и каркас: в финальном уровне каркас не подключает такт к счётчику команд и запись в RAM — ученик восстанавливает их сам).
- Собрал и объяснил. Проходит инструкцию ADD по схеме с указанием тактов, отвечает на вопросы 2, 4, 5.
- Перенёс на новую задачу. Выполнил задачу для сильных или объясняет, как добавить в схему команду с двухбайтовым операндом.
Задача для сильных
На ассемблере (вкладка уровня 18 и далее) напишите программу, которая удваивает число в ячейке RAM без команды умножения: через сложение числа с самим собой. Затем объясните, какие такты тратятся на цикл выборки, а какие — на само действие.
Парная работа
Проектировщик собирает схему уровня 18; проверяющий держит список сигналов (адрес на ROM, данные на шину, управляющие входы регистров) и после каждого такта фиксирует в таблице, какой блок что делает. Проверяющий ищет расхождение «что должно произойти» и «что показал LED8». Смена ролей — при переходе от ROM-части к RAM-части схемы.