Багатоядерний процесор

Багатоядерний процесор - центральний процесор, що містить два і більше обчислювальних ядра на одному процесорному кристалі або в одному корпусі.


1. Архітектура багатоядерних систем

Багатоядерні процесори можна підрозділити по наявності підтримки когерентності (загальної) кеш-пам'яті між ядрами. Бувають процесори з такою підтримкою і без неї.

Спосіб зв'язку між ядрами:

  • Колективна шина
  • мережу (Mesh) на каналах точка-точка
  • мережу з комутатором
  • загальна кеш-пам'ять

Кеш-пам'ять: У всіх існуючих на сьогодні багатоядерних процесорах кеш-пам'яттю 1-го рівня володіє кожне ядро окремо, а кеш-пам'ять 2-го рівня існує в декількох варіантах:

  • Колективна - розташована на одному кристалі з ядрами і доступна кожному з них у повному обсязі. Використовується в процесорах сімейств Intel Core.
  • індивідуальна - окремі кеши рівного об'єму, інтегровані в кожне з ядер. Обмін даними з кешей 2-го рівня між ядрами здійснюється через контролер пам'яті - інтегрований ( Athlon 64 X2, Turion X2, Phenom) або зовнішній (використовувався в Pentium D, надалі Intel відмовилася від такого підходу).

2. Продуктивність

У додатках, оптимізованих під багатопоточність, спостерігається приріст продуктивності на багатоядерних процесорів. Однак, якщо додаток не оптимізовано, то воно не буде отримувати практично ніякої вигоди від додаткових ядер, а може навіть виконуватися повільніше, ніж на процесорі з меншою кількістю ядер, але більшою тактовою частотою. Це в основному програми, розроблені до появи багатоядерних процесорів, або додатки, в принципі не використовують багатопоточність.

Більшість операційних систем дозволяють виконувати кілька додатків одночасно. При цьому виходить виграш в продуктивності навіть якщо додатка однопоточні.


3. Нарощування кількості ядер

На сьогодні основними виробниками процесорів - Intel і AMD подальше збільшення числа ядер процесорів визнано як один з пріоритетних напрямків збільшення продуктивності.

У 2011 році освоєно виробництво 8-ядерних процесорів для домашніх комп'ютерів, [1] і 16-ядерних для серверних систем. [2]

Є експериментальні розробки процесорів з великою кількістю ядер (більше 20). Деякі з таких процесорів вже знайшли застосування в специфічних пристроях.


3.1. Історія масових багатоядерних процесорів

Двохядерні процесори різних архітектур існували раніше, наприклад IBM PowerPC -970MP ( G5), але їх використання було обмежене вузьким колом спеціалізованих застосувань.

У квітні 2005 року AMD випустила 2-ядерний процесор Opteron архітектури AMD64, призначений для серверів. У травні 2005 року Intel випустила процесор Pentium D архітектури x86-64, що став першим 2-ядерним процесором, призначеним для персональних комп'ютерів.

У березні 2010 року з'явилися перші 12-ядерні серійні процесори, якими стали серверні процесори Opteron 6100 компанії AMD (архітектура x86 / x86-64). [3]

У серпні 2011 року компанією AMD були випущені перші 16-ядерні серійні серверні процесори Opteron серії 6200 (кодове найменування Interlagos). Процесор Interlagos об'єднує в одному корпусі два 8-ядерних (4-модульних) чіпа і є повністю сумісним з існуючою платформою AMD Opteron серії 6100 ( Socket G34). [4]

Зведені дані по історії мікропроцесорів і їх параметрів представлені в оновлюється англійській статті: Хронологія мікропроцесорів, 2010ие роки. Для отримання числа ядер процесора треба помножити поля "Cores per die" і "Dies per module", для отримання числа апаратних потоків - помножити число ядер на число "threads per core". Наприклад, для Xeon E7, Intel: "4, 6, 8, 10" ядер на 1 die на 1-2 апаратних потоків = максимум 10 ядер і 20 апаратних потоків, AMD FX "Bulldozer" Interlagos "4-8" на 2 на 1 = максимум 16 ядер і 16 потоків.


3.2. Історія експериментальних багатоядерних процесорів

27 вересня 2006 Intel представила прототип 80-ядерного процесора. [5] Передбачається, що масове виробництво подібних процесорів стане можливо не раніше переходу на 32-нанометровий техпроцес.

20 серпня 2007 компанія Tilera, анонсувала чіп TILE64 (англ.) з 64 процесорними ядрами і вбудованою високопродуктивної мережею, за допомогою якої обмін даними між різними ядрами може відбуватися зі швидкістю до 32 Тбіт / с. [6] [7]

26 жовтня 2009 Tilera анонсувала [8] 100-ядерний процесор широкого призначення серії TILE-Gx (англ.). Кожне процесорний ядро ​​являє собою окремий процесор з кеш-пам'яттю 1 і 2 рівнів. Ядра, пам'ять і системна шина зв'язані за допомогою топології mesh network. Процесори виробляються по 40-нм техпроцесу і працюють на тактовій частоті 1,5 ГГц. Випуск 100-ядерних процесорів призначений на початок 2011 року.

2 грудня 2009 Intel представила одночіповий "Хмарний" Single-chip Cloud Computer (SCC) комп'ютер, що представляє собою 48-ядерний чіп. "Хмарність" процесора полягає в тому, що всі 48 ядер сполучаються між собою як мережеві вузли. SCC - частина проекту, метою якого є створення 100-ядерного процесора. Очікується, що деякі функції SCC з'являться в серійних процесорах Intel в 2010 році. [9]

У червні 2011 Intel розкрила деталі розроблюваної архітектури Many Integrated Core (MIC) - ця технологія виросла з проекту Larrabee. Мікропроцесори на основі цієї архітектури отримають більше 50 мікроядер архітектури x86 і почнуть проводиться в 2012 році по 22-нм техпроцесу. Ці мікропроцесори не можуть бути використані в якості центрального процесора, але з декількох чіпів цієї архітектури будуватимуться обчислювальні прискорювачі у вигляді окремої карти розширення і конкурувати на ринках GPGPU і високопродуктивних обчислень з рішеннями типу Nvidia Tesla і AMD FireStream. [10] За опублікованим в 2012 році опису архітектури, можливі чіпи з кількістю ядер до 60.

У жовтні 2011 компанія Adapteva представила 64-ядерні мікропроцесори Epiphany IV, які показують продуктивність до 70 гігафлопс, ​​при цьому споживаючи менше 1 Вт електроенергії. Мікропроцесори спроектовані з використанням RISC -архітектури і почнуть масово проводиться на початку 2012 року по 28-нм техпроцесу. Дані процесори не можуть бути використані в якості центрального процесора, але компанія Adapteva пропонує використовувати їх в якості співпроцесора для таких складних завдань, як розпізнавання осіб або жестів користувача. Компанія Adapteva стверджує, що в подальшому число ядер даного мікропроцесора може бути доведено до 4096 [11].

У січні 2012 компанія ZiiLabs (дочірнє підприємство Creative Technology) анонсувала 100-ядерну систему на чіпі ZMS-40. Ця система, що об'єднує 4-ядерний процесор ARM Cortex-A9 1,5 ГГц (з мультимедійними блоками Neon) та масив з 96 більш простих і менш універсальних обчислювальних ядер StemCell. Ядра StemCell - це енергоефективна архітектура SIMD, пікова продуктивність при обчисленнях з плаваючою комою (32 біт) - 50 гігафлопс, ядра якої працюють скоріше як GPU в інших системах на чіпі, і можуть бути використані для обробки відео, зображень та аудіо, для прискорення 3D - і 2D-графіки та інших мультимедійних завдань (підтримується OpenGL ES 2.0 та OpenCL 1.1) [12].


4. Багатоядерні контролери

Існує також тенденція впровадження багатоядерних мікроконтролерів в мобільні пристрої.

Наприклад:

  • seaForth-24 - нова розробка multi-core MISC -архітектури Chuck Moore 1 ГГц 24-ядерний асинхронний контролер.
  • Контролер від Parallax [1] має вісім 32-розрядних процесорів (COG) в одному кристалі P8X32A.
  • Kilocore PowerPC -процесор з 1024 8-бітними ядрами, що працюють на частоті 125 МГц. На даний момент існує 256-ядерний процесор.