Многоядерный процессор


Многоядерные процессоры — это особые виды многоядерных процессоров , предназначенные для высокой степени параллельной обработки и содержащие множество более простых независимых процессорных ядер (от нескольких десятков ядер до тысяч и более). Многоядерные процессоры широко используются во встраиваемых компьютерах и высокопроизводительных вычислениях .

Многоядерные процессоры отличаются от многоядерных процессоров тем, что изначально оптимизированы для более высокой степени явного параллелизма , а также для более высокой пропускной способности (или более низкого энергопотребления) за счет задержки и более низкой однопоточной производительности .

Более широкая категория многоядерных процессоров , напротив, обычно предназначена для эффективного выполнения как параллельного , так и последовательного кода, и поэтому больше внимания уделяется высокой однопоточной производительности (например, выделение большего количества микросхем для выполнения вне очереди , более глубокие конвейеры) . , больше суперскалярных исполнительных блоков и более крупные и общие кэши) и разделяемую память . Эти методы направляют ресурсы времени выполнения на выявление неявного параллелизма в одном потоке. Они используются в системах, где они постоянно развивались (с обратной совместимостью) из одноядерных процессоров. Обычно они имеют «несколько» ядер (например, 2, 4, 8) и могут быть дополнены многоядерным ускорителем ( например, графическим процессором ) в гетерогенной системе .

Согласованность кэша — это проблема, ограничивающая масштабирование многоядерных процессоров. Многоядерные процессоры могут обойти это с помощью таких методов, как передача сообщений , [1] блокнотная память , DMA , [2] секционированное глобальное адресное пространство , [3] или кэши только для чтения/некогерентные кэши. Многоядерный процессор, использующий сеть на кристалле и локальную память, дает программному обеспечению возможность явно оптимизировать пространственное расположение задач (например, как это видно в инструментах, разработанных для TrueNorth ). [4]

Многоядерные процессоры могут иметь больше общего (концептуально) с технологиями, возникшими в области высокопроизводительных вычислений, такими как кластеры и векторные процессоры . [5]

Графические процессоры можно рассматривать как разновидность многоядерного процессора, имеющего несколько блоков шейдерной обработки и подходящего только для высокопараллельного кода (высокая пропускная способность, но крайне низкая однопоточная производительность).