Микроархитектура RISC: следующий этап курса

В разработке — уровни 48–56 заявлены, сроки не объявлены.

После 47 уровней вы умеете собрать компьютер, который исполняет программу. Следующий шаг — научиться делать его быстрым: разобрать одну команду на пять стадий и понять, где и почему конвейер ошибается.

Что меняется после части 4

В частях 1–4 вы собирали процессор вокруг аккумулятора: почти любая команда читала его, что-то с ним делала и записывала обратно. Это удобно для первых шагов и неудобно для скорости: две команды не могут работать одновременно, потому что обе держат один и тот же регистр.

Часть 5 перестраивает машину под другую модель работы:

Точный список инструкций и таблица опкодов ещё не зафиксированы: они уточняются вместе с уровнями.

Пять стадий конвейера E-RISC-16 Слева направо: IF — выборка команды, ID — декодирование и чтение регистров, EX — исполнение в АЛУ, MEM — обращение к памяти, WB — запись результата в регистр. IF выборка ID декодирование EX АЛУ MEM память WB запись регистр регистр регистр регистр

Три принципа этапа

Уровни части 5 устроены иначе, чем уровни частей 1–2. Там проверка сравнивала схему с таблицей истинности. Здесь ошибка чаще не в отдельном вентиле, а в согласовании стадий — и её видно только по поведению во времени.

  1. Продуктивная неудача. Сначала вы собираете наивный конвейер и запускаете на нём настоящую программу. Результат оказывается неверным. Дальше вы ищете причину по временной диаграмме: какая стадия и на каком такте получила не то значение. Правило появляется как вывод из наблюдения, а не как готовый ответ в задании.
  2. Открытая логика управления. Control Unit, Forwarding Unit и Hazard Unit — это схемы, которые вы строите сами. Что значит «источник данных готов», «конфликт», «пузырь» — вы формулируете в терминах сигналов, а не принимаете на веру.
  3. Инженерный компромисс. Конвейер не бесплатен: он ускоряет одни программы и усложняет схему. На каждом шаге учитываются две метрики — число тактов на команду (CPI) и цена схемы: задержка распространения и количество вентилей.

Маршрут: девять уровней

Последовательность идёт от регистрового файла к сборке ядра: каждый уровень добавляет ровно одну причину, по которой конвейер может ошибиться.

48

Прощай, аккумулятор!

Регистровый файл на восемь регистров, load-store и R0, который всегда равен нулю.

49

Анатомия команды

Поля инструкции, расширение знака и декодер, превращающий биты в управляющие сигналы.

50

Однотактный RISC

Тракт R-команд: PC → память команд → регистры → АЛУ → запись результата.

51

Память и ветки

LW/SW, Control Unit и BEQ: первый цикл на собственной системе команд.

52

Конвейерная лента

Четыре межстадийных регистра, пять стадий и капсулы инструкций, движущиеся сквозь такт.

53

Короткий путь

RAW-конфликты и forwarding: результат едет к АЛУ напрямую, не дожидаясь записи в регистр.

54

Пузырь загрузки

Load-use конфликт и Hazard Unit: почему после LW иногда нужен ровно один пузырь.

55

Призраки неверного пути

Control hazard, flush и цена перехода: что происходит с уже выбранными инструкциями.

56

Кремниевый конвейер

Сборка ядра, метрика CPI и перенос проекта на Tang Nano 9K.

Образовательный эффект

После этапа ученик сможет:

Для преподавателя

Часть 5 стоит после части 4 и опирается на неё: к этому моменту ученик уже собирал блок управления, собственную систему команд и тракт данных на Verilog. Конвейер не вводит новые вентили — он вводит новое требование к организации уже знакомых блоков.

Продуктивная неудача здесь работает как лабораторная работа: правильный ответ нельзя угадать, его можно только вывести из расхождения между ожидаемым и фактическим результатом. Поэтому оценивается не «соедини по шпаргалке», а диагностика: сумел ли ученик найти такт, стадию и сигнал, где возникла ошибка, и сформулировал ли правило, которое её снимает.

Открытая логика управления даёт вторую точку оценки: правило forwarding, условие stall и момент flush должны быть записаны в терминах сигналов схемы. Такое правило можно проверить на новых программах, а не только на той, где оно было придумано.

Сроки этапа и точная система команд не зафиксированы. Материалы появятся в программе курса и в карте уровней одновременно с готовыми уровнями.

Статус и границы

Дальше

Начать текущий курс →