Altifigence Academy

10 / 24 · Теория

Задержка, пропускная способность и интервал запуска

Вычисляйте задержку одной транзакции отдельно от установившейся частоты завершений.

Завершать раньше и завершать чаще — разные вещи

Задержка измеряет время от приёма одного входа до выдачи его выхода. Пропускная способность считает выданные транзакции за время наблюдения. Интервал запуска II — минимальное расстояние в тактах между новыми запусками. Используйте такты или наносекунды для задержки, транзакции за такт или секунду для пропускной способности и такты на транзакцию для II.

Все передачи здесь происходят на передних фронтах. В конвейере с двумя регистрами вход, принятый на фронте 0, становится видимым после фронта 1 и передаётся на фронте 2. Задержка от приёма до выдачи равна двум тактам. Разные ступени одновременно обрабатывают разные транзакции, поэтому заполненный конвейер без остановок выдаёт по одному результату на фронт. II=1 не означает задержку=1.

СтруктураЗадержка выдачиIIУстановившаяся пропускная способность без остановок
Оператор с одним регистром1 такт11 транзакция/такт
Двухступенчатый конвейер2 такта11 транзакция/такт
Совместно используемое вычисление за четыре фронтаЗависит от расписания интерфейсаБольше 1Меньше 1 транзакции/такт

При сравнении физических скоростей учитывайте период такта. Пусть комбинационная работа занимает шесть наносекунд, а накладные затраты регистров и запас — 0.5 ns. Одна ступень даёт оценку периода 6.5 ns. Сбалансированные ступени по три наносекунды дают 3.5 ns. У обеих II=1, то есть примерно 153.8 и 285.7 миллиона транзакций в секунду. При этом задержка одного элемента может вырасти с 6.5 до семи наносекунд. Это иллюстративные расчёты, а не измеренные временные характеристики реализации.

Самая медленная ступень ограничивает тактовую частоту. Разделение пять плюс один даёт оценку 5.5 ns, хуже сбалансированного. Дополнительные регистры также добавляют накладные затраты, трассировку и стоимость управления; исследуйте реальные временные характеристики реализации.

Для четырёх входов, принятых на фронтах 0–3, выходы передаются на фронтах 2–5. Заполнение и опустошение влияют на короткие пакеты. Задавайте окно измерения. При остановках задержка различается между транзакциями, а предъявленные, но не принятые входы не учитываются. Отдельно фиксируйте приём входов, выдачу выходов и такты остановок перед оптимизацией предполагаемого узкого места.

Попробуйте сами

Для трёхступенчатого конвейера с II=1 и тактом четыре наносекунды найдите установившуюся пропускную способность и задержку выдачи. Если первый вход принят на фронте 0, на каком фронте выдан пятый выход?

Прочитать объяснение

Пропускная способность равна 250 миллионам транзакций в секунду, а задержка — 12 ns. Пятый вход принят на фронте 4 и выдан на фронте 7 при отсутствии остановок.

Выбор действует в этом браузере. Его можно изменить внизу страницы.