Altifigence Academy

5 / 20 · Теория

Соглашение об одном переднем фронте

Зафиксируйте нумерацию фронтов, регистровую пересылку, накопление и приоритет инициализации.

Временное соглашение, используемое во всём курсе

Сброс и очистка завершаются до E0 — первого переднего фронта, потребляющего данные. Входы стабильны непосредственно перед E_t. На этом фронте PE накапливает произведение своих входов до фронта и сохраняет те же входы в регистрах пересылки вправо и вниз. Новые значения аккумулятора и пересылки наблюдаемы сразу после E_t. Сосед потребляет зарегистрированные значения на E_(t+1).

В этом базовом варианте нет отдельного входного регистра, конвейерного умножителя или ступени последовательной выдачи выходов. Добавление любой из них требует пересмотра расписания и задержки результата. «Результат на нулевом фронте» означает обновлённый аккумулятор после E0, а не до него. Фронты инициализации исключены из подсчёта вычислительных фронтов. Clear имеет приоритет над MAC, поэтому установка clear с первой парой данных отбрасывает эту пару; сначала очистите, затем подайте данные на следующем фронте.

Две обязанности в одном PE

При A=1 и B=5 на E0 элемент PE(0,0) обновляет аккумулятор до пяти и пересылает операнды в регистры. На E1 граничные операнды 2 и 7 добавляют четырнадцать, давая девятнадцать. На том же фронте соседние PE могут потребить первые зарегистрированные операнды. Возможность токена пересечь два PE за один фронт нарушила бы последующие уравнения сдвига входов.

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

Приоритет и глобальная пауза

Приоритет: reset, затем clear, затем advance. Reset и clear обнуляют аккумуляторы и состояние valid. При advance=0 каждый PE удерживает аккумулятор, значения пересылки, флаги valid и метки. Граничный планировщик также удерживает состояние. Один фронт advance выполняет один логический шаг. Достоверный ноль — реальный операнд; недостоверный токен игнорируется независимо от его битов данных.

Если аккумулятор равен пяти и массив приостанавливается на два физических фронта, он остаётся равным пяти. Следующий фронт advance выполняет следующий логический шаг. Отчитывайтесь о физических тактовых фронтах отдельно от логических шагов advance. Инициализация действует и во время паузы, предотвращая утечку устаревших токенов в следующее задание.

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

Очистка завершается на E−1. Потребите (1,5) на E0, приостановитесь на E1 и потребите (2,7) на E2. Укажите аккумулятор после фронтов и номера логических шагов.

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

После E0 acc=5 и завершён логический шаг ноль. E1 удерживает acc=5. После E2 acc=19 и завершён логический шаг один. Было три физических фронта и два фронта advance.

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