Почему MIPS R4000 имеет латентность 112 циклов и интервал инициализации 111 циклов для функционального блока с квадратным корнем?MIPS R4000 Интервалы задержки и инициирования
ответ
MIPS R4000 Microprocessor User’s Manual содержит несколько подробное описание трубопровода с плавающей запятой R4000 (см. Раздел 6.7). Для операций с плавающей запятой FPU R4000 обеспечивает восемь этапов работы (добавление мантиссы, разделительный трубопровод, тест исключения, первый множитель, второй множитель, округление, сдвиг операнда, распаковывание номеров FP). Квадратный корень с двойной точностью использует распакованные номера FP для первого цикла, тест исключения для второго, добавление мантиссы и округление для следующих 108 циклов, добавление мантиссы для следующего цикла и округление для последнего цикла.
Поскольку распакованные номера FP и тесты исключений (первые два цикла) не используются в последующих циклах, следующая операция с квадратным корнем может начинаться с двух циклов раньше, чем если бы квадратный корень был полностью неинполирован. Это может быть схематически следующим образом:
1 2 3 4 ... 110 111 112 114 115 SQRT.D U E A+R A+R A+R A R SQRT.D 110 stall cycles for second SQRT.D U E A+R A+R
(Вы можете видеть, что интервал инициации считается циклом, когда первый SQRT.D выдаются, то есть инициация интервал нуля будет означать параллельный выпуск и инициирующий интервал один будет поддерживать проблему «назад к спине».)