Опис процесора CELL, Інформаційно-аналітичний центр з паралельних обчислень
ЗАГАЛЬНА ІНФОРМАЦІЯ
Історія розробки
Розробка процесора CELL була розпочата в 2001 році альянсом Sony, Toshiba, IBM (альянсом STI). Роботи велися понад 400 інженерами трьох компаній. За основу було взято архітектуру IBM POWER4. Розробка дизайну була здебільшого завершена у 2002 році. У 2003 році було ліцензовано технологію швидкої пам'яті у Rambus. Першим комерційним застосуванням процесора CELL стала ігрова консоль Sony Playstation 3, комерційний продаж якої розпочався у 2005 році.
Оригінальний процесор CELL виготовлявся за 90 нм техпроцесу. 2006 року відбувся перехід на 65 нм техпроцес. 2008 року з'явився варіант процесора PowerXCell 8i. Його основною особливістю стало помітне підвищення продуктивності у обчисленнях з подвійною точністю: близько 100 Гфлопс проти 14 у більш ранніх моделях. Першим застосуванням PowerXCell 8i став суперкомп'ютер IBM RoadRunnder. Також у 2008 році IBM анонсувала 45 нм версію процесора CELL.
Характеристики
Тут наводиться таблиця параметрів процесора CELL PowerXCell 8i. Значення термінів див. у розділі "Архітектура".
| Техпроцес | 65 нм, 45 нм (після 2008) |
| Тактова частота | 3.2 ГГц |
| ППЕ (основний процесор) | PowerPC Element, 2 ядра |
| Кеш 1-го рівня ППЕ | 32 КБ код, 32 КБ даних |
| Кеш 2-го рівня ППЕ | 512 КБ |
| Кількість ВПЕ | 8 |
| Локальна пам'ять ВПЕ | 256 КБ на ядро (кешу немає) |
| Пікова продуктивність одного СПЕ на операціях одинарної точності | 25.6 Гфлопс |
| Пікова продуктивністьодного СПЕ на операціях подвійної точності (PowerXCell 8i) | 12.8 Гфлопс |
| Пікова продуктивність CELL на операціях одинарної точності | 204.8 Гфлопс |
| Пікова продуктивність CELL на операціях подвійної точності | 102.4 Гфлопс |
| Реєстровий файл СПЕ | 128 регістрів по 128 біт |
| Пропускна спроможність внутрішньої шини | 204.8 ГБ/сек |
| Пропускна здатність контролера пам'яті | 25.6 ГБ/сек |
http://www.ibm.com/developerworks/power/cell/ - сторінка CELL на сайті IBM. Доступні документація, засоби розробки та приклади використання.
АРХІТЕКТУРА
Спочатку розробники процесора CELL орієнтувалися досить широкий клас додатків і створювали не окремий процесор, а масштабоване сімейство процесорів. Це сімейство архітектур називається CELL Broadband Engine Architecture, скорочено CELL BE. Різні моделі сімейства відрізняються насамперед кількістю обчислювальних ядер. Залежно від завдання також могли змінюватися тактова частота, пропускна здатність шини, могли додаватися або зникати окремі компоненти. Найбільш відомі та поширені процесор IBM CELL, а також його модифікація PowerXCell. Нижче надається опис архітектури цих процесорів.

На малюнку наведено загальну схему архітектури процесора CELL. Сам процесор складається з набору основних та допоміжних ядер. Головні ядра в основному виконують функцію, що управляє, хоча можуть використовуватися і для обчислень. Допоміжні ядра виконують лише обчислення.
У ролі основних ядер виступає PowerPC Processing Element (PPE, ППЕ - калька з англійської). Він є двопотоковий процесор з архітектурою IBMPOWER Architecture. Якщо CELL використовується як центральний процесор, то на ППЕ виконуються основні функції ОС, а також основний код додатків користувача. Архітектура команд ППЕ, крім команд IBM Power Architecture, містить інструкції взаємодії з іншими компонентами процесора.

У ролі обчислювальних ядер виступають синергічні процесорні елементи (СПЕ, англ. Synergistic Processing Element, SPE). Кожен ВПЕ складається з синергічного процесорного пристрою (СПУ, англ. Synergistic Processing Unit, SPU) та контролера потоку пам'яті (КПП, англ. Memory Flow Controller, MFC).
СПУ є RISC-процесором, спеціально оптимізованим для високопродуктивних обчислень. Він має 128 регістрів загального призначення по 128 біт кожен. Вміст одного регістру може трактуватися як набір цілих чисел по 8, 16, 32 або 64 біти в кожному, четвірка чисел з одинарною точністю або два числа з подвійною точністю. Система команд підтримує роботу як із одним елементом, і з усіма елементами регістру одночасно. Крім арифметичних і логічних команд є швидкі команди обчислення елементарних функцій. СПУ може видавати по 2 команди за такт, таким чином, продуктивність СПУ на обчислення з одинарною точністю на звичайній для CELL частоті 3.2 ГГц становить 25.6 Гфлопс. Швидкість роботи на командах подвійної точності вдвічі нижча. Операції можуть виконуватися лише з операндами на регістрах.
Усі елементи процесора CELL з'єднані внутрішньою шиною з'єднання елементів (англ. Element Interconnection Bus, EIB). Її максимальна пропускна спроможність становить 204 ГБ/сек.
ПРОГРАМУВАННЯ
Розшинерія С/C++ та завантаження програм
Основними програмованими компонентами CELLє ППЕ та ВПЕ. Оскільки ППЕ є повноцінним процесором з архітектурою IBM POWER Architecture, його можна програмувати за допомогою інструментів цієї архітектури. Основним завданням є програмування СПЕ та взаємодія ППЕ та СПЕ.
Незважаючи на те, що набір команд СПЕ схожий на набір векторних команд ППЕ, бінарна сумісність між ними відсутня. Це означає, що файл, що виконується, для СПЕ потрібно створювати окремо. Для створення таких файлів можна використовувати компілятор XL C/C++ або XL Fortran від IBM. При цьому вихідний код для ППЕ і СПЭ може бути однаковим, а створення різних файлів, що виконуються, підтримуються різними ключами компіляції.
З погляду ОС, потоки СПЭ трактуються як звичайні потоки, й у керування ними можна використовувати засоби управління, доступні звичайних потоків, наприклад, бібліотеку POSIX Threads. Щоб запустити потік на СПЭ, потрібно спочатку створити звичайний потік, наприклад, з pthread_create ( ). Далі для створення потоків на СПЕ використовуються 3 процедури CELL BE SDK:
Докладніше про управління потоками на CELL можна переглянути тут.
Моделі програмування
Моделі програмування можна умовно розділити те, що розглядають ППЭ як головний елемент і ті, що розглядають СПЭ як головний елемент . Якщо головнимелементом є ППЭ, він виконує основний код докладання, делегуючи частину завдань підлеглі йому СПЭ. Якщо головними є СПЭ, то додаток побудовано за моделлю взаємодіючих процесів, у своїй кожен процес виконується своєму СПЭ. ППЕ виконує лише функції менеджера ресурсів.
Моделі, в яких головним елементом є ППЕ, можна поділити на:

У гібридній моделі можуть поєднуватися особливості інших моделей. Наприклад, конвеєр може складатися з двох щаблів, на одному з яких працює два, а на другому - чотири СПЕ.
Засоби програмування
Основним інструментом програмування CELL є IBM SDK for Multicore Acceleration. Про процес встановлення SDK можна прочитати тут. До складу SDK входять:
Крім цього, доступний емулятор процесора CELL, що дозволяє розробляти прості програми без самого процесора. Емулятор доступний тут.