Детальный проект конвейерного RISC процессора (Глава 4 "Основы конвейеризации"), страница 10

Новое вычисляемое заранее управление генерирует те же управляющие сигналы, что и FSD, но машина теперь имеет очень регулярную структуру: управляющие сигналы поступающие из регистра R.kout (k - 1) управляют этапом kпутей данных для всех k > 1. Действительно, если мы определим R.0 и R.1 как фиктивные регистры длиной 0, то же самое потребуется для всех k. Структура путей данных и вычисляемого заранее управления машины DLXσ иллюстрируются рисунком 4.10.

Аппаратная часть, генерирующая входы регистра R.2 является автоматом Мура с 10 состояниями EX, вычисляемыми заранее управляющими сигналы и параметрами exиз таблицы 4.10. Состояние noEXслужит начальным состоянием автомата. Следующее состояние зависит только от входа IRно не от текущего состояния. Включая регистры R.3 и R.4, управляющие сигналы этапов EX - WB могут быть вычислены заранее со следующей стоимостью и временем цикла:

CCON(moore)    =   СpMoore(ех) + (3 + 2) * Cff TCON(moore)    =    TpMoore(ex).

Сигналы Mealy, которые управляют этапом ID, генерируются автоматом Mealy с одним состоянием и параметрами idиз таблицы 4.10. Все его входы обеспечиваются регистром IR с нулевой задержкой. Согласно разделу 2.6, стоимость этого автомата и задержка сигналов Mealy может быть представлена как

CCON (mealy)   =   CMealy(id) + (3 + 2) * Cff

ACON (mealy)    =   Ao(id).

Мы не будем утруждать себя анализом стоимости и временем цикла механизма останова.


4.2.4    Основное наблюдение

Позже мы установим правильность конвейерной машины показав, что она моделирует машину DLXσ . Это требует индуктивного доказательства на основе такт за тактом. Мы всегда будем говорить о фиксированной но произвольной последовательности

I = I0, I1, ...

команд, которой предшествует сброс и которая сама не прерывается сбросом.

Если в течении такта сигнал busyактивен, тогда состояние машины не изменяется до конца этого цикла. Следовательно, мы перечислим только циклы в течении которых сигнал busy неактивен

T = 0,1,...


Для таких циклов Т и сигналов Rмы обозначим через RTзначение Rв течении цикла T; Rтакже может быть выходом регистра. Мы вводим сокращение

означающее, что команда Ii находится на этапе kмашины DLXσв течении  цикла T. Формально это может быть определено как

•  выполнение начинается в цикле T = 0, т.е., Iσ(0,0) = 0,

•  если Iσ(k,T) = iи k < 4, тогда Iσ(k + 1, T + 1) = i,

•  если Iσ(4,T) = i, тогда Iσ(0, T + 1) = i + 1.

Для любых других комбинаций Tи kфункция планирования Iσ(k,T) не определена. Следовательно,

Iσ(k,T) = i    <->     T = 5*i + k    <->     i=[T/5]  и k = T mod 5;

и для любого цикла Т >= 0, этап kполон (fullT[k] = 1) тогда и только тогда, когда Iσ(k, T) определено. Повторимся, что мы обозначаем через Ri значение Rпосле выполнения команды Ii. Через R-1мы обозначаем начальное значение R, т.е., значение Rпосле сброса. Основное наблюдение о работе такт за тактом машины DLXσ формулируется в следующей лемме.


Лемма 4.3


Dateline Лемма. Пусть I(k, T ' ) = i ипусть R out(t), тогда


Это проиллюстрировано на рисунке 4.11. В течении цикла T', регистры выше этапа kуже имеют новое значение Ri, тогда как регистры ниже этапа kвсе еще имеют старое значение Ri-1. Другими словами, на нисходящих стрелках рисунка 4.3 машины DLXσ, читаются значения Ri  из текущей команды, тогда как на восходящих стрелках машиной читаются значение Ri-1  из предыдущей команды.

Очень интуитивная формулировка леммы – причина, по которой на рисунке 4.3 мы перенесли файл регистров общего назначения в самый низ конвейера а не – как обычно – в середину этапа ID. Формальное доказательство использует тот факт, что

Ri-1 =R5i

и выполняется для T = 5i + kиндукцией по k. Мы оставляем простые подробности на упражнение 4.2.

Другой, очень интуитивный способ осветить это лемму - следующий. Вообразите, что провода между этапами конвейера настолько длинны, что мы можем обернуть