4.9 · Блок управления и микрооперации
🎣 Крючок (5 мин)
Возврат к уроку 4.5: передача байта по шине потребовала от вас нажать ~OE источника и дать фронт приёмнику — в правильном порядке. «В процессоре такие ручки дёргаются миллионы раз в секунду. Кто дёргает?»
🧠 Теория
Управляющее слово
У каждого блока SAP-1 — свои «ручки»: PC_out, PC_inc, PC_load, MAR_load, RAM_out, IR_load, A_load, A_out, B_load, ALU_out, SUB, OUT_load, HLT… Набор их значений в данный такт — управляющее слово. Работа процессора = правильная последовательность управляющих слов.
Микрооперации: инструкция по шагам
Каждая инструкция — 4–6 тактов. Первые два одинаковы у всех — Fetch (принести команду):
T0: PC_out, MAR_load ; адрес из PC → в регистр адреса
T1: RAM_out, IR_load, PC_inc; байт из памяти → в регистр команд; PC++
T2…: своё у каждой команды (Execute)Например, ADD a: T2: IR_out(адрес), MAR_load → T3: RAM_out, B_load → T4: ALU_out, A_load. Распишите так же LDA и JMP — это и есть микропрограммирование.
Чем генерировать слова?
Вариант «из вентилей» — декодер opcode × счётчик тактов → лес логики. Вариант курса — микрокод в ПЗУ (EEPROM AT28C16): адрес = {opcode, номер такта}, данные = управляющее слово. Меняешь прошивку — меняешь поведение процессора без паяльника. (Прошивает учитель программатором; содержимое таблицы составляют бригады.)
🔧 Практика (2 урока)
- Ролевая машина: класс — процессор. Роли: PC, RAM, IR, A, B, ALU, шина (два ученика носят «байт»-карточку), дирижёр-CU по карточкам микроопераций. Исполнить LDA 9; ADD 10; OUT — вживую. Метод смешной ровно до момента, когда он сработает; запоминается навсегда.
- Таблица микрокода: бригады заполняют управляющие слова для своего подмножества команд; перекрёстная проверка; учитель сводит в прошивку.
✅ Чек-лист
- Расписываю Fetch наизусть
- Составил микрооперации для LDA, ADD, JMP
- Объясняю преимущество микрокода в ПЗУ перед «лесом вентилей»