41 / 63 · Теория
Различие задержки в циклах и пропускной способности
Задайте точки наблюдения N-ступенчатой линии задержки и количественно рассчитайте latency и throughput.
Уроки доступны бесплатно. Запишитесь, чтобы сохранять прогресс.
Определите начало отсчёта «через N циклов»
Бит, впервые захваченный в бит 0 на фронте k, достигает бита N-1 N-битного сдвигового регистраРегистр хранит многобитное состояние. Синхронные регистры в этом курсе записывают определённый вход на фронте тактового сигнала. Подробнее на фронте k+N-1. Между первым и последним захватами проходит N-1 тактовых периодов.
Если же предыдущий регистр, управляющий входом, создаёт новый бит на фронте k, первый захват сдвиговым регистром обычно происходит на k+1. Тогда до выхода N периодов. Это разные начала отсчёта, а не противоречие.
Пусть d[k] — вход, принятый на фронте k. После заполнения выполняется:
Большая задержка не мешает получать результат каждый цикл
При периоде T и приёме одного бита на фронт установившаяся пропускная способностьПропускная способность — число операций, принимаемых или завершаемых за единицу времени. Конвейер может повысить её, не уменьшая задержку отдельной операции. равна бит/с. Рост N увеличивает глубину и задержку, но при непрерывном приёме пропускная способность сохраняется.
У четырёхступенчатой линии с тактом 100 MHz период 10 ns, установившаяся скорость 100 Mbit/s. «Биту нужно время для прохождения» не означает «до следующего бита нужно ждать всё это время».
Каждый столбец — запись наблюдения одного положительного фронтаПоложительный фронт — момент перехода такта из 0 в 1. Его следует отличать от уровня, означающего весь интервал CLK=1. Подробнее. Входы показаны непосредственно перед фронтом, состояния со словом «после» в имени — сразу после обновления. Выравнивание столбцов обозначает порядок выборок, а не физическую задержку распространенияЗадержка распространения — время от изменения входа до установления правильного выхода. Логическая эквивалентность выражений и их временные характеристики — разные вопросы. Подробнее.
В трёхступенчатой линии A входит в первую ступень на E0, достигает последней сразу после E2, пока B и C одновременно заполняют предыдущие. Прочерки — ещё недействительные позиции.
Показать данные диаграммы
| Сигнал | Диаграмма | Значения шины |
|---|---|---|
| фронт | 2345 | E0 → E1 → E2 → E3 |
| принято | 2345 | A → B → C → D |
| stage0 после | 2345 | A → B → C → D |
| stage1 после | 2345 | - → A → B → C |
| stage2 после | 2.34 | - → A → B |
При остановках считайте действительные перемещения
Если enable или accept равен 0, фронт не сдвигает биты. Фиксированную задержку в физическом времени тогда задать нельзя; можно определить задержку по числу принятых фронтов. Valid должен двигаться при тех же условиях, что и данные, чтобы показывать действительность выхода.
Объяснять конвейерКонвейер делит вычисление на разделённые регистрами стадии и перекрывает обработку нескольких входов. Данные, valid и управляющие сигналы необходимо согласовать по стадиям. Подробнее только как способ уменьшения задержки неверно. Часто разделение комбинационного пути позволяет повысить частоту ценой дополнительных регистров и циклов задержки. Компромиссы площади, мощности и частоты подробнее рассматриваются в следующем курсе.
Попробуйте сами
В 5-битной линии бит захвачен в бит 0 на фронте 10. На каком фронте он появится в бите 4 без остановок? А при двух промежуточных фронтах с enable=0?
Прочитать объяснение
Без остановок — на фронте 14, с двумя — на 16. После первого захвата нужны ещё четыре сдвига. Начальная точка вопроса — захват в бит 0, а не обновление внешнего входного регистра.