Разница в скорости между SRAM (статической RAM) и RAM DDR3

Это скорее компьютерный вопрос, но такие вещи знают только фанаты электроники. Современные компьютеры используют несколько уровней памяти для быстрой работы с данными. В настоящее время скорость ЦП от 10 до 100 раз выше, чем у оперативной памяти. Поэтому процессоры строятся с небольшим объемом очень быстрой памяти (статической ОЗУ или SRAM), размер которой обычно составляет от 10 КБ до 10 МБ. Данные, кэшированные в этой памяти, работают быстрее всего, а оперативная память DDR обычно намного медленнее (в 10-100 раз).

Википедия говорит, что оперативная память DDR3 в настоящее время занимает 5-10 нс за «цикл». Что это означает и насколько быстра SRAM по сравнению с ней? Кроме того, для встроенных проектов, использующих FPGA, насколько полезны SRAM и DDR3 и можно ли отказаться от одного из них в пользу другого? (например, нет необходимости в SRAM, если скорости DDR3 аналогичны)

Ответы (1)

Цикл, используемый на этой веб-странице, означает «тактовый цикл»: время, необходимое для одного импульса тактового сигнала, используемого оперативной памятью. Таким образом, тактовая частота 100 МГц соответствует циклу 10 нс.

Внутри это соответствует выбору строки в чипе и чтению соответствующих строк столбца; это выводит набор значений (скажем, 256 бит = 8 байт) для каждой из 8 микросхем в ОЗУ.

Затем следует ответный пакет, в котором значения передаются обратно в процессор. Шина имеет ширину 64 бита, поэтому передач будет несколько. Обычно это заполняет всю "строку" кеша.

(Обратите внимание, что существует неявный конвейер: вы можете отправить еще один запрос до того, как первый завершится)

Для проекта FPGA вы бы предпочли использовать встроенную SRAM, но если ее недостаточно или вам нужно поделиться ею, вы должны использовать внешнюю RAM DDR.

Отличная информация, но как это соотносится конкретно с оперативной памятью DDR3? Знаете ли вы, во сколько раз быстрее/медленнее будет работать оперативная память DDR3? Или это яблоки к апельсинам?
Что ж, если вы хотите подробностей, вы должны быть конкретными в отношении SRAM - свяжите таблицу данных с интересующей вас FPGA. (Однако задержка встроенной SRAM всегда намного лучше)
Еще одно различие между SRAM и DRAM заключается в возможной изменчивости задержки. В дополнение к команде чтения или записи столбца для доступа к DRAM может потребоваться команда активации строки (если строка, к которой осуществляется доступ, не является последней использованной в своем банке) и даже команда предварительной зарядки (если старая строка не была записана обратно). перед активацией новой строки). Обновление, которое требует DRAM, также может мешать обычному доступу. Банковские операции используются для обеспечения лучшего типичного поведения, но в худшем случае, когда каждый доступ осуществляется к другой строке в одном и том же банке, это может значительно повлиять на производительность.
Это на самом деле многое объясняет, почему многие факторы могут влиять на скорость программы с интенсивным использованием памяти.
@ pjc50 - я не знаю конкретно, какая SRAM, потому что я больше имел в виду ситуацию с ПК. Я пытался сравнить PC SRAM и DDR3, а затем пытался использовать эту информацию для проекта FPGA, потому что это было бы похоже.
Откуда ты знаешь, что это похоже? Что именно вы собираетесь делать? Почему бы не посмотреть реальные цифры?
Если вы используете встроенную SRAM FPGA, то обычно запись выполняется за один цикл, а чтение — за два. Скорость кэша ПК L2/L3 значения не имеет.