Как коммерческие микропроцессоры соответствуют времени с гигагерцевыми часами?

8

У меня проблемы с созданием относительно простой конструкции ПЛИС (для Altera Cyclone IV), соответствующей времени для логики с тактовой частотой 250 МГц. Это заставляет меня задуматься о том, как коммерческим микропроцессорам (таким как Intel Core i7) удается достичь синхронизации на тактовых частотах более чем на порядок выше.

Как коммерческие микропроцессоры могут работать с частотой 3,8 ГГц, когда я борюсь за 250 МГц за FPGA?

Randomblue
источник
8
FPGA и процессор - это яблоки и апельсины. Fpga состоит из относительно больших модулей / ячеек, которые связаны между собой. Компилятор для fpga ничем не лучше или хуже, чем программный компилятор, то есть есть много возможностей для повышения производительности, ваши сигналы перенаправляются повсюду, через большие / медленные ячейки, занимающие время. Например, процессор - это именно те ворота, которые не нужны, никакой дополнительной маршрутизации (хорошо, сканирование jtag и bist) и т. Д. Та же проблема с компилятором, но есть некоторые более качественные (дорогие) чип-компиляторы.
old_timer

Ответы:

7

ПЛИС фактически не имеют «ворот» как таковых. Как правило, они имеют справочные таблицы (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 имеет специфическую маршрутизацию. ПЛИС может быть конвейерной, но ЦП определенно конвейерной.

ajs410
источник
6

Расширение комментария Двлеха. Процессоры имеют прямые медные соединения. ПЛИС соединены через программируемые соединения. Также процессоры помещают критические вещи рядом друг с другом. FPGA также нужно место для SRAM, которая содержит программирование.

Брайан Карлтон
источник
3
Имейте в виду, что процессоры от поставщиков, таких как Intel, работают на передовых технологиях, где скорость и мощность компромиссов являются современными. Также непросто «соблюсти время» на ядре с мультигигагерным процессором, даже с учетом особых преимуществ, отмеченных Брайаном Карлтоном.
Майкл Карас
3
Несмотря на то, на что указывает @Michael Karas, новейшие ПЛИС часто находятся на переднем крае технологий и для фабрик.
Брайан Карлтон