У меня проблемы с созданием относительно простой конструкции ПЛИС (для Altera Cyclone IV), соответствующей времени для логики с тактовой частотой 250 МГц. Это заставляет меня задуматься о том, как коммерческим микропроцессорам (таким как Intel Core i7) удается достичь синхронизации на тактовых частотах более чем на порядок выше.
Как коммерческие микропроцессоры могут работать с частотой 3,8 ГГц, когда я борюсь за 250 МГц за FPGA?
fpga
microprocessor
timing
Randomblue
источник
источник
Ответы:
ПЛИС фактически не имеют «ворот» как таковых. Как правило, они имеют справочные таблицы (LUT). LUT обычно реализуются с использованием SRAM. Например, спартанские 3 FPGA используют 16-битные SRAM; то есть четыре адресных входа выдают один выходной сигнал. «Программирование» выполняется путем загрузки SRAM с битовой комбинацией, представляющей таблицу истинности, так что, например, для 2-входного XOR у вас есть адрес 00 = выход 0, адрес 01 = выход 1, адрес 10 = выход 1, адрес 11 = выход 0.
Все это означает, что на самом деле FPGA имеют много, много лишних и ненужных вентилей для выполнения одной и той же логической функции. Если вам нужны ПЛИС для перепрограммирования и быстрого создания прототипов, то это здорово! Фактически, некоторые люди реализуют проект сначала в ПЛИС, отлаживают его, а затем переходят на ASIC, который будет меньше, быстрее и потребляет меньше энергии, и в то же время делает то же самое, что и ПЛИС.
Современные микропроцессоры также конвейерные. Например, в простой программе на ПЛИС очень большой расчет, включающий несколько сложений и, возможно, несколько умножений, и сравнение могут выполняться в одном и том же тактовом цикле. Выполнение всей этой работы за один такт означает, что такт должен быть длинным. В конвейерной реализации (которую можно реализовать в FPGA и часто используемой для достижения временного закрытия), большой расчет разбивается на части, и каждый фрагмент выполняется за один гораздо более короткий тактовый цикл. Все еще требуется примерно столько же времени, чтобы выполнить вычисление, но преимущество состоит в том, что после того, как первый кусок вычислен, и первый частичный элемент данных перемещен ко второму элементу, первый элемент может немедленно начать обработку второго элемента данных. Первый расчет все равно займет много циклов,
Итак, в двух словах, FPGA имеют общую логику, а CPU - специфическую логику. FPGA имеет общую маршрутизацию, в то время как CPU имеет специфическую маршрутизацию. ПЛИС может быть конвейерной, но ЦП определенно конвейерной.
источник
Расширение комментария Двлеха. Процессоры имеют прямые медные соединения. ПЛИС соединены через программируемые соединения. Также процессоры помещают критические вещи рядом друг с другом. FPGA также нужно место для SRAM, которая содержит программирование.
источник