Устройство управления I: конечные автоматы и такты машины
Паспорт модуля
| Параметр | Значение |
|---|---|
| Аудитория | 🟡🔴; пройдены М7–М9 |
| Аутентичная задача | построить «метроном микроопераций» — генератор фаз T0…T5 — и вручную, а затем жёсткой логикой, исполнить цикл выборки команды (Fetch) |
| Объём | 4 занятия × 90 мин |
| Оборудование | 74HC161, 74HC138, 74HC04/08/32, все узлы М6–М9 на общем стенде, RP2350-монитор |
| Ограничения | 5 В |
Аутентичная задача. После модуля обучающиеся смогут: разложить любую команду Я74-ISA на последовательность микроопераций «кто говорит — кто слушает» и исполнить Fetch тремя способами: руками, жёсткой логикой, (в М12) микрокодом.
Цели
| № | Обучающиеся … | Блум—Андерсон | Миллер | Проверка |
|---|---|---|---|---|
| 1 | описывают команду как таблицу микроопераций по тактам | анализировать | показывает как | письменная раскладка LDA |
| 2 | собирают генератор фаз: счётчик + дешифратор → T0…T5 | применять | показывает как | бегущий огонёк фаз на однотактном CLK |
| 3 | реализуют Fetch жёсткой логикой (T0: CO,MI; T1: RO,II,CE) | создавать | делает | трасса RP2350 совпадает с эталоном |
| 4 | объясняют, почему жёсткая логика не масштабируется на 11 команд | оценивать | знает | аргументация на мини-защите (мост к М12) |
Оценивание
| Занятие | Цель | Средство | Тип |
|---|---|---|---|
| 1 | 1 | раскладка LDA/ADD по тактам сдана и защищена | формирующее |
| 3 | 2, 3 | Fetch исполняется автоматически: PC растёт, IR получает код команды (эталонная трасса) | итоговое |
Путь и разборы
| № | Тема | Разминка | Ядро |
|---|---|---|---|
| 1 | Команда = таблица | дисциплина шины (М7) | worked example: LDA addr по тактам (см. ниже); обучающиеся раскладывают ADD сами |
| 2 | Генератор фаз | раскладка LDA по памяти | 74HC161 (счёт 0–5, сброс на 6) → 74HC138 → T0..T5; прогон на однотактном режиме |
| 3 | Fetch жёсткой логикой | 3 вопроса зан. 2 | сигналы: CO=T0, MI=T0, RO=T1, II=T1, CE=T1 (простые ИЛИ от фаз); проверка трассой |
| 4 | Пределы жёсткой логики | кумулятивный квиз М7–М11 | посчитать вентили на 11 команд × 6 тактов × 16 сигналов → вывод «нужна таблица» = мост к ПЗУ-микрокоду |
Worked example — раскладка LDA addr (эталон курса):
| Такт | Микрооперации | Смысл |
|---|---|---|
| T0 | CO, MI | адрес команды из PC → MAR |
| T1 | RO, II, CE | байт кода → IR; PC+1 |
| T2 | CO, MI | адрес операнда из PC → MAR |
| T3 | RO, MI-операнда → BI врем./MI | байт операнда → MAR (адрес данных); CE |
| T4 | RO, AI | данные → A |
| T5 | — | пустой такт (выравнивание цикла) |
stateDiagram-v2
T0 --> T1: CLK
T1 --> T2: CLK
T2 --> T3: CLK
T3 --> T4: CLK
T4 --> T5: CLK
T5 --> T0: CLK (сброс счётчика фаз)
Fetch одинаков для всех команд — машина не знает, что выбрала, пока код не попал в IR. Это ключевая структурная идея: T0–T1 общие, T2+ зависят от кода операции. Именно она превращает управление в таблицу «(код, такт) → набор сигналов», то есть в ПЗУ, — и именно её обучающийся должен сформулировать сам в занятии 4 (SSDL: наставник доводит вопросами, не отвечает первым).
Типичные ошибки: счётчик фаз считает по тому же фронту, что и регистры, но сигналы меняются «впритык» — на макеточных частотах прощается, на ПЛИС нет (заложить разговор о синхронном дизайне, М16); сброс фаз на 6 сделан асинхронно от дешифратора — иглы на T0 (показать осциллографом — редкая возможность увидеть глитч живьём); забытый CE в T1 — машина вечно исполняет один адрес.
Уровни
Генератор фаз + Fetch жёсткой логикой; эталонная трасса.
Раскладка всех 11 команд ISA в общую таблицу микроопераций (артефакт для М12); оптимизация: какие команды укладываются в 4 такта; задача о минимизации логики методом Карно для 3 сигналов.