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

Рисунок 4.7 Среда выполнения подготовленной DLX

Для обновления двух программных счетчиков, окружение PCenv требует некоторых операндов из других частей путей данных. Регистр операнда A' обеспечивается окружением файла регистров GPRenv, тогда как непосредственный операнд со обеспечивается окружением IRenv. Стоимость и время цикла окружения PCenv могут быть рассчитаны как

Окружение выполнения

Окружение выполнения EXenvна рисунке 4.7 включает среду ALU и устройство сдвига SHenv и соединяет их с шинами операндов и результата. Так как при использовании команд хранения вычисление адреса и сдвиг операнда производятся параллельно, необходимы три шины операнда и две результата.

Регистр Aвсегда предоставляет операнд a. Сигналы управления bmuxselи a'muxselвыбирают данные, которые будут помещены на шины bи a':


Обратите внимание, что одновременно должно быть активно не более одного сигнала.


Данные на шину результата Dвыбираются среди регистра linkи результатом ALU и устройства сдвига. Этот выбор осуществляется тремя сигналами разрешения вывода


Окружение ALU Окружение ALUenv управляется теми же самыми управляющими сигналами, как в последовательной конструкции, и определение его сигналов aluи ovfостается неизменным. Однако, оно теперь обеспечивает два дополнительных бита s[1 : 0], которые подаются непосредственно на устройство сдвига. Они являются  двумя наименее значимыми битами результата арифметического модуля AU(32). В зависимости от сигнала sub, который обеспечивается ALU glue logic, AU вычисляет сумму или разность операндов aи bпо модулю 232:


Стоимость окружения ALU и его окончательная задержка DALUenvостаются такими же, но биты s[1 : 0] имеют меньшую задержку. Для всех сумматоров представленных в главе 2, задержка этих битов может быть оценена, основываясь на задержке 2-битного AU

DALUenv(s[1:0]) = daluglue+ dau(2)                      как это показано в упражнении 4.1.

Окружение устройства сдвига Окружение устройства сдвига SHenv все еще управляется сигналом shift4s, который запрашивает неявный сдвиг в случае операций хранения, но его операнды отличаются. При явном сдвиге операнды обеспечиваются шинами a' и b, тогда как при неявном сдвиге они обеспечиваются шиной a' и результатом s[1 : 0] окружения ALU. Таким образом, выход sh окружения SHenv теперь определен как

Однако это изменение не влияет на стоимость и задержку окружения. Примем за ACON(csEX) задержку управляющих сигналов этапа EX, стоимость и время цикла всего окружения выполнения EXenv

4.2.2    FSD для подготовленных путей данных

Рисунок 4.8 изображает FSD (диаграмму конечных состояний) для подготовленных путей данных; таблицы 4.4 - 4.6 перечисляют соответствующие RTL команды и их активные управляющие сигналы.




Рисунок 4.8 FSD подготовленной последовательной DLX

Таблица 4.4 RTL команды этапов IF и ID

RTL команды

тип I

управляющие сигналы

IF

IR = IM(DPC)

fetch, IRce

ID

A=A' = RS1,

AEQZ = zero(A'),

B = RS2, link = PC' + 4, DPC= (reset ?0 : PC'),

PC' = (reset ?4 : pc'),

Ace,

Bce, linkce, PCce,

PCce,

pc' = nextPC (PC', А', со)

j, jal

jump

jr, jalr

jumpR, jump

beqz

branch, bzero

bnez

branch

otherwise

со = constant(IR)

j, jal

Jjump

slli, srli, srai

shiftI

otherwise

Cad = CAddr(IR)

jalr, jal

Jlink

R-type

Rtype

otherwise

Сложные DNF (дезьюктивные нормальные формы) перечислены в таблице 4.7. За исключением сигналов синхронизации Ace, Bce, PCceи linkce, все управляющие сигналы на декодирующем этапе ID являются сигналами Mealy. Следующий образец раздела 3.4 показывает