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

Сравнительные характеристики процессоров

Показывать лекцию целиком

Интегральные характеристики

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

К первому классу можно отнести процессоры семейств SEAforth (SEAforth24, seaforth40), Tile (Tile36, Tile64, Tile64pro), AsAP-II, CSX700. Во второй класс попадают прежде всего графические процессоры, например, процессоры серии g80 от NVIDIA, проект Larrabee от Intel, отчасти сюда можно отнести и процессор Cell от IBM, хотя количество вычислительных ядер у него относительно невысоко. Третий класс составляют процессоры, выпускаемые такими промышленными гигантами, как AMD, Intel, Sun.

Среди вышеперечисленных к асимметричным можно отнести процессоры AsAP, Cell, МС- $$\ast$$, NVCom-01. Остальные процессоры имеют однотипные ядра (таблица 15.1).

Классификация многоядерных процессоров, представленных на современном рынке
Архитектуры MIMD SIMD (потоковые)
SMPSEAforth, Tile, Larrabee, Opteron, Nehalem, Ultra Sparc, 1891ВМ3, ARM MPCore G80, CSX700
AMPCell, AsAP, МС- $$\ast$$, NVCom-01

Произведем сравнение их характеристик по следующим показателям: разрядность, производительность, потребляемая мощность, стоимость, размеры, классы задач, на которые рассчитаны. Безусловно, данное сравнение не вполне корректно, так как даст только абсолютные или пиковые показатели процессоров, безотносительно к задачам или тестам, однако оно даст общую картину — своего рода срез.

Сравнительные характеристики производительности процессоров, потребляемой мощности и скоростей обмена данными представлены в таблицах 15.2 и 15.3.

Производительность многоядерных процессоров
Процессор Количество ядер Миллионов операций в секунду (общее) МФлопс (общее) Количество потоков на ядро Потребляемая мощность, Вт
SEAforth4040 26000 1 0,5
Tile64pro64 443000 1 20
Tile-Gx100100 750000 1 10-50
AsAP167 10824-196800 770 1 0,01-10
CSX700192 48000 96000 1 9
Larrabee$$\sim$$ 32 2000 4
G80128 518000 96 150
Mips32 1004k4 3200 90 2 0,4
xlp8328 4000-16000 4 15-50
ARM11 MPCore4 1200-2400 1
ARM Cortex-A9 MPCore4 $$\sim$$ 8000 1
ARM Cortex-A5 MPCore4 $$\sim$$ 2000 1
Cell Broadband9 17000 250000 2 80
AMD Opteron4/6/12 21600-46800 28800-41600/ 2 40-75 43200-62400/ 86400-124800 2 40-75
Sun Ultra Spark T24/6/8 7200-22400 11000 8 46/57/91
Intel Core i74/8 38400-105600 60000-70000 2 90-130
МС-242 640 480 1 1,5
МС-02263 1600 1200 1
NVCom-013 4800 3600 1 0,28-1,0
МС-04285 >8000
Скорости передачи данных и топология связей
Процессор Топология Скорость передачи данных между ядрами Скорость обмена с памятью
SEAforth40 решетка3,6 Гб/с 0,9 Гб/с
Tile64pro сеть (толстое дерево)27 Тб/с 25,6 Гб/с
Tile-Gx100 сеть (толстое дерево)200 Тб/с 500 Гб/с
AsAP ячеистая сеть1200 Мб/с
CSX700 линейка4 Гб/с 2х4 Гб/с
Larrabee двойное кольцо
G80 шина в памяти 76 Гб/с
xlp832 сеть передачи сообщений 51,2 Гб/с
ARM11 MPCore шина1,3 Гб/с 1,3 Гб/с
ARM Cortex-A9 MPCore шина1,3 Гб/с 1,3 Гб/с
ARM Cortex-A5 MPCore шина1,3 Гб/с 1,3 Гб/с
Cell Broadband два двойных кольца25,6 Гб/с 25,6 Гб/с
AMD Opteron перекрестный коммутатор3,2 Гб/с / 9,6 Гб/с 5,3 Гб/с
Sun Ultra Spark T2 перекрестный коммутатор60 Гб/с 50 Гб/с
Intel Core i7 перекрестный коммутатор12,8 Гб/с 32 Гб/с
1891ВМ3 точка-точка 2,664 Гб/с
МС-12(1892ВМ3Т) шина
МС-24 шина
МС-0226 звезда
NVCom-01 звезда
МС-0428 звезда

Производительность отдельных ядер

Достаточно интересно также сравнить характеристики отдельных ядер многоядерных процессоров — производительность, количество поддерживаемых потоков выполнения, потребляемая мощность (таблица 15.4).

Производительность отдельных ядер
Процессор Разрядность Миллионов операций в секунду Количество потоков на ядро Потребляемая ядром мощность,Вт Удельная потребляемая ядром мощность,мВт/МIPS Ватт/поток
SEAforth4018 700 1 0,0125 0,018 0,0125
Tile64pro32 700 1 0,3125 0,446 0,3125
32 866 1 0,3125 0,361 0,3125
Tile-Gx10064 3000-4500 1 0,1-0,5 0,033-0,11 0,1-0,5
AsAP16 66 1 0,0001 0,001 0,0001
16 1000 1 0,0599 0,060 0,0599
CSX70032 250 1 0,0469 0,188 0,0469
Larrabee32/512 4
G8032 1350 96 1,1719 0,868 0,0122
Mips32 1004k32 800 2 0,1000 0,125 0,0500
xlp83232 500 4 1,8750 3,750 0,4688
32 2000 4 6,2500 3,125 1,5625
ARM11 MPCore32 320-620 1 0,075-0,260 0,23-0,43 0,075-0,260
ARM Cortex-A9 MPCore32 1000-2000 1
ARM Cortex-A5 MPCore32 480 1 0,06 0,12 0,06
Cell Broadband64/128 4000 2 8,8889 2,222 4,4444
AMD Opteron64 5400 2 10,0000 1,852 5,0000
64 7800 12,5000 1,603 6,2500
Sun Ultra Spark T264 1800 8 11,5000 6,389 1,4375
64 2200 8 9,5000 4,318 1,1875
64 2800 8 11,3750 4,063 1,4219
Intel Core i764 9600 2 22,5000 2,344 11,2500
64 13200 2 16,2500 1,231 8,1250
1891ВМ364 500 1 2,5 0,005 2,5
МС-12(1892ВМ3Т)32/64 80/320 1 0,7/0,5 0,009/0,0016 0,7/0,5
МС-24(1892ВМ2Я)32/64 80/320 1/2 0,7/0,8 0,009/0,0016 0,7/0,5
МС-0226(1892ВМ5Я)32/64 100/800 1/2 0,7/0,8 0,009/0,0016 0,7/0,5
NVCom-0132/64 1
МС-042832/64 1

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

Кэш-память
Процессор Количество ядер Размер кэша, байт
L1 L2 L3
L1-I L1-D
SEAforth4040 64локальная оперативная память
Tile64pro64 16 К 64 К 5 Мраспределенный по ядрам процессора
Tile-Gx100100 32 К 32 К 256 К 32 Мраспределенный по ядрам процессора
AsAP167 128локальная оперативная память 128локальная оперативная память
CSX700192 6 К
Larrabee$$\sim$$ 32 64 К 256 К
G80128 5 К 32 К6 разделяемых блоков
Mips32 1004k4 8-64 К 8-64 К
xlp8328 64 К 32 К 512 К 8 М(5)
ARM11 MPCore4 16 К 16 К
ARM Cortex-A9 MPCore4 16 К 16 К
ARM Cortex-A5 MPCore4 16 К 16 К
Cell Broadband9 16 К 16 К 512 Кимеется только у PPE, SPE-ядра имеют локальную память
AMD Opteron4/6/12 64К/64К/128К 512К/512К/512К 2М (4М)/6Мразделяемый всеми ядрами
Sun Ultra Spark T24/6/8 16 К 8 К 4 Мразделяемый всеми ядрами
Intel Core i74/8 32 К 32 К 256 К 8 Мразделяемый всеми ядрами
1891ВМ32 16 К 32 К 512 Мраспределенный по ядрам процессора
МС-12 (1892ВМ3Т)2 16 К
МС-242 16 К
МС-0226)3 16 К
NVCom-013 16 К
МС-04285

В плане управления энергопотреблением процессора интересны разработки компании Intel, направленные на реализацию метода динамического регулирования интенсивности выполнения инструкций (Energy Per Instruction — EPI) в зависимости от степени параллелизма программы. Была показана эффективность регулирования тактовой частоты в асимметричной мультипроцессорной системе в зависимости от уровня активности вычислительных ядер.

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

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

    Рассматривая многоядерные процессоры (many-core), в итоге можно выделить два направления, по которым на данный момент идет развитие многоядерных процессоров.

    Первое: специализированные многоядерные процессоры — процессоры с относительно простыми ядрами небольшой разрядности, с эффективной системой управления энергопотреблением. Как правило, они нацелены на применение в качестве контроллеров в сенсорных системах, мобильных устройствах и устройствах с автономным питанием, для первичной цифровой обработки сигналов. Ключевые свойства процессоров этого направления — низкое удельное энергопотребление ядер; возможности полного останова ядер; небольшое количество инструкций, под­держиваемых ядром; отсутствие кэш-памяти. На сегодняшний день наиболее яркие представители этого направления — процессоры семейств SEAforth, AsAP.

    Второе направление: многоядерные процессоры общего назначения — их ядра по сложности приближаются к ядрам процессоров общего назначения, имеют развитую систему кэш-памяти, высокопроизводительную систему связей между ядрами. Круг применений данных процессоров шире — бортовые вычислительные системы, системы, обслуживающие сетевые приложения, обработка мультимедийных данных и сигналов, высокопроизводительные кластеры. Ко второму направлению можно отнести процессоры семейств Tile и CSX.

    Общим для многоядерных процессоров пока остается поддержка их ядрами одного потока выполнения (хотя в процессорах Tile и присутствует параллелизм на уровне инструкций).

    Среди мультиядерных процессоров (multi-core) стоит выделить следующие направления.

    Первое — асимметричные процессоры со специализированными ядрами. Сочетают в себе ядро общего назначения и ядра сигнальных процессоров. Вполне возможно, в будущем к сигнальным ядрам могут добавиться и криптографические модули — для аппаратной поддержки коммуникационных функций. Пока к данному направлению можно отнести процессоры Cell, процессоры серии "Мультикор".

    Второе направление включает в себя процессоры для мобильных устройств. Процессоры этого направления имеют развитую шинную систему, низкое энергопотребление. Наиболее яркие представители — ARM Cortex-A MPCore, MIPS32 1004K.

    Третье направление — многопотоковые (в некоторых источниках — мультитредовые) мультиядерные процессоры. Высокоинтегрированные процессорные системы — "системы (серверы) на кристалле"). В развитии данного направления, скорее всего, следует ожидать сближения "обычных" мультиядерных и графических процессоров, расширения поддержки виртуализации процессоров, увеличения количества одновременно поддерживаемых потоков. К третьему направлению можно отнести графические процессоры, процессоры фирм AMD, Intel, Sun (Oracle), процессоры серии XLP.

    Краткие итоги

    В развитии многоядерных процессоров (many-core) можно выделить два направления:

  • специализированные многоядерные процессоры — процессоры с относительно простыми ядрами небольшой разрядности, с эффективной системой управления энергопотреблением;
  • многоядерные процессоры общего назначения — их ядра по сложности приближаются к ядрам процессоров общего назначения, имеют развитую систему кэш-памяти, высокопроизводительную систему связей между ядрами.
  • Среди мультиядерных процессоров (multi-core) стоит выделить следующие направления:

  • асимметричные процессоры со специализированными ядрами;
  • процессоры для мобильных устройств;
  • многопотоковые (в некоторых источниках — мультитредовые) мультиядерные процессоры, представляющие по сути высокоин-тегрированные процессорные системы — "системы (серверы) на кристалле".
  • Основные схемы управления энергопотреблением многоядерных процессоров, реализуемые на данный момент:

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

    Контрольные вопросы

  • Каковы основные направления развития процессоров?
  • Ядра каких процессоров имеют аппаратную поддержку нескольких потоков исполнения?
  • Какие методы управления энергопотреблением наиболее часто применяются в современных процессорах?
  • Упражнения

  • Оцените эффективность различных схем управления энергопотреблением процессоров.
  • Сравните показатели производительности многоядерных и мультиядерных процессоров.
  • Вернуться к учебному плану