Pull to refresh

Comments 4

Хранение обновляемого контекста в памяти достаточно часто используется для экономии FF/LUT.

Например, пользуясь таким подходом можно запихать 512 64-разрядных счётчиков в 9*512 FF/LUT (для младшей части) + 1 блок памяти 64х512 (RAMB36 в случае Xilinx-а, в SDP режиме чтобы не морочиться с четнием-обновлением-записью за один такт) + ещё немного FF/LUT на (один) сумматор который обнавляет содержание очередного "слоя" в памяти, циклическое переключение слоёв, и сброс младшей части в момент обновления слоя. Итого немногим больше 4608 FF/LUT + 1 BRAM36 против 32768 с лишним, если реализовывать в явном виде.

Задачи такого типа частенько возникают в системах, где нужно события считать, например.

Всё верно, можно и RAMB использовать, можно даже во внешней памяти хранить констекст (сам так делал), но тогда возникают накладные расходы на его переключение. Чем ёмче память - тем дольше ожидание.

Статья немножко не об этом.

Переключение контекстов (например при приеме потока сетевых пакетов из n портов, нарезанных на куски) применяется довольно часто, но это мало описано в статьях и тем более учебниках, потому что 1) разработчикам облом писать статьи, им верилог писать надо к сроку; 2) статьи такого рода для конференций типа snug нужно отправлять на утверждение компанейским юристам, что занимает пару недель и вообще муторная деятельность; 3) профессора в университетах часто оторваны от реальной жизни и даже в хорошем стенфордском учебнике такие микроархитектурные штучки почти не разбираются, только простые fsm и двойные буфера (skid buffers) итд.

Но было бы хорошо собрать сотню-две таких примеров в книжку типа "этюды для микроархитектора RTL/FPGA/ASIC"

Уподоблюсь FSM и напишу по пунктам (ведь присущая FPGA параллельность здесь не рассматривается):
1) Возможно, переключаемые контексты описаны в одной из книг Самария Баранова, надо найти время почитать
https://www.synthezza.com/books
2) Ещё меньшее количество разработчиков интересуются "нано-архитектурой", а именно как сделан LUT или триггер. Я поинтересовался
https://eprints.ncl.ac.uk/file_store/production/276950/9F49E3C0-2DAC-490B-BBFA-6C880F2BED2B.pdf

Sign up to leave a comment.

Articles