Почему MIPS использует один слот задержки вместо двух? - PullRequest
0 голосов
/ 17 октября 2019

Это, кажется, имеет место во многих архитектурах RISC. Поскольку заполнение одного интервала задержки экономит нам 50% потраченных впустую циклов, почему бы не дать программисту возможность использовать оба интервала?

1 Ответ

1 голос
/ 17 октября 2019

На MIPS R2000, классическом MIPS I, вокруг которого спроектирован ISA, 1 слот задержки ветвления достаточно , чтобы скрыть задержку ветвления, оценивая условие на этапе ID по этой причине. Как MIPS I пересылать из EX в ID для филиалов без остановки? . Способность проверять условия ветвления с низкой задержкой внутри стадии конвейера, которая сначала выполняет другие действия, объясняет, почему условные ветки MIPS ограничены eq / ne и / или проверяют бит знака для x<0, а не произвольно x<y.

Вкл. Это правда, если мы всегда можем заполнить интервал задержки, нет необходимости предсказывать переходы? Пол Клейтон отвечает, что да, заполнение интервала задержки ветвления в asm делает переходПрогноз бесполезен на ранних MIPS. Так что это еще одно доказательство того, что настоящий коммерческий MIPS R2000 работал именно так. Прогнозирование ветвлений необходимо только в том случае, если вы удлиняете конвейер, как они это сделали для следующего поколения MIPS R4000. И тогда у вас есть прогноз ветвления, а не ожидание, что компиляторы будут статически заполнять задержку ветвления.


Но в любом случае, один слот задержки ветвления достаточно сложен для надежного заполнения компиляторами , ив ретроспективе это багаж для будущих реализаций, которые используют предсказание ветвления вместо зависимости от интервала задержки, чтобы скрыть задержку ветвления. Особенно суперскалярные реализации.

Создание этого архитектурного бремени обременяет все будущие процессоры с ним, если они хотят быть двоично-совместимыми. Таким образом, даже если ранние процессоры MIPS имели 2 цикла задержки ветвления, некоторые предвидения и соображения затрат / выгод вполне разумны для архитектурного представления только 1 цикла.

...