Многоядерные процессоры - это особые виды многоядерных процессоров, предназначенные для высокой степени параллельной обработки, содержащие множество более простых, независимых процессорных ядер (от нескольких десятков ядер до тысяч и более). Многоядерные процессоры широко используются во встроенных компьютерах и высокопроизводительных вычислениях.
Многоядерные процессоры отличаются от многоядерных процессоров тем, что с самого начала оптимизированы для более высокой степени явного параллелизма и для более высокой пропускной способности (или более низкого энергопотребления) за счет задержки и более низкой производительности одного потока.
Напротив, более широкая категория многоядерных процессоров обычно предназначена для эффективного выполнения как параллельного, так и последовательного кода, и поэтому уделяет больше внимания высокой производительности одного потока (например, выделение большего количества микросхем для выполнения вне порядка, более глубоких конвейеров, большего количества суперскалярных функций). исполнительные единицы и более крупные кеши общего назначения) и разделяемую память. Эти методы выделяют ресурсы времени выполнения для выявления неявного параллелизма в одном потоке. Они используются в системах, где они непрерывно развивались (с обратной совместимостью) от одноядерных процессоров. Обычно они имеют «несколько» ядер (например, 2,4,8) и могут быть дополнены многоядерным ускорителем (например, графическим процессором ) в гетерогенной системе.
Согласованность кэша - это проблема, ограничивающая масштабирование многоядерных процессоров. Процессоры Manycore могут обойти это с помощью таких методов, как передача сообщений, оперативная память, DMA, разделенное глобальное адресное пространство или кеш- память только для чтения / некогерентные кеши. Многоядерный процессор, использующий сеть на кристалле и локальную память, дает программному обеспечению возможность явно оптимизировать пространственное расположение задач (например, как это видно в инструментах, разработанных для TrueNorth ).
Многоядерные процессоры могут иметь больше общего (концептуально) с технологиями, возникающими из высокопроизводительных вычислений, такими как кластеры и векторные процессоры.
Графические процессоры можно рассматривать как форму многоядерного процессора, имеющего несколько блоков обработки шейдеров и подходящего только для высокопараллельного кода (высокая пропускная способность, но чрезвычайно низкая производительность одного потока).
Некоторые компьютеры, построенные на основе многоядерных процессоров, имеют один миллион или более отдельных ядер ЦП. Примеры включают: