Еволюція мікропроцесорних архітектур

  1. Збільшення обсягу внутрикристальной пам'яті
  2. Кеш-пам'ять з декількома рівнями
  3. Набори регістрів в мультітредовой архітектурі
  4. Збільшення числа і складу функціональних пристроїв
  5. Мультимедійні розширення
  6. інтеграція функцій
  7. Системи з розподіленою пам'яттю
  8. Однокристальний мультітредовие і мультіскалярние системи
  9. Основи мультітредовой архітектури
  10. Розвиток систем на одному кристалі
  11. Напрямок еволюції архітектур мікропроцесорів
  12. література

У даній статті показані способи підвищення продуктивності суперскалярні мікропроцесорів на прикладі архітектур Alpha 21364 і Power4. Розбираються питання переходу до принципово нової, так званої мультітредовой архітектурі, що дозволяє істотно змінити можливості нинішніх мікропроцесорів.

Історія розвитку мікропроцесорів в повній мірі підпорядковується діалектиці еволюційного удосконалення архітектури. Починаючи від машини ENIAC, яка мала 19 тис. Ламп, продуктивність комп'ютерів росла на порядок кожні п'ять років [ 1,2 ]. Велике число транзисторів на сучасному кристалі уможливлює застосувати в одному мікропроцесорі всі відомі способи підвищення продуктивності, виходячи тільки з їх сумісністю. Однак для повного використання можливостей апаратури вже недостатньо обмежитися тільки апаратно реалізованими алгоритмами управління, досить одноманітно функціонуючими у всіх ситуаціях. Тому при реалізації ускладненою логіки управління використовується програмне забезпечення, для підтримки якого вводяться додаткові команди і регістри управління мікропроцесора. У свою чергу, формування програм для потактного управління мікропроцесором під силу тільки компілятору. Таким чином, в сучасних мікропроцесорах виник симбіоз програмних і апаратних засобів. Цей симбіоз є чимось більшим, ніж еволюційний хід розвитку, а зміну самого напрями розвитку мікропроцесорів, що виражається в переході до мультітредовим і багатопроцесорним архитектурам.

З позиції реалізації такого симбіозу відкриваються такі способи підвищення продуктивності:

  1. збільшення ємності пам'яті всередині кристалу;
  2. збільшення кількості арифметико-логічних пристроїв;
  3. введення блоків обробки мультимедійних даних, які використовувалися раніше, наприклад, в сигнальних мікропроцесорах;
  4. інтеграція на кристалі функцій управління пам'яттю і периферійними пристроями, для виконання яких в традиційних мікропроцесорах використовуються набори мікросхем ( «чіпсети»);
  5. інтеграція на кристалі інтерфейсів мережевих і телекомунікаційних систем, що дозволяє з'єднувати ці мікропроцесори один з одним і телекомунікаційними і обчислювальними мережами без додаткових адаптерів.

Збільшення обсягу внутрикристальной пам'яті

Організація внутрикристальной пам'яті

Сучасний стан мікроелектроніки характеризується зростаючим розривом між швидкістю обробки даних в мікропроцесорах і швидкодією внекрістальной оперативної пам'яті. Можна вже говорити про те, що час виконання однотактной команди мікропроцесора на порядок і більше менше часу доступу до пам'яті поза кристала. В таких умовах вдаються до побудови багаторівневої ієрархічної пам'яті з використанням внутрикристальной кеш-пам'яті і застосування мультітредовой архітектури МТА, в якій затримка доступу в пам'ять в одному процесі «ховається» за часом виконання інших процесів [ 3 ].

Крім того, для зменшення розриву у швидкодії між процесором і пам'яттю розвивається технологія вбудованої пам'яті DRAM, що дозволяє в єдиному виробничому циклі формувати на одному кристалі логічні схеми і схеми динамічної пам'яті. Слід зазначити, що ідея створення однокристального комп'ютера завжди була популярною, і сьогодні проблема розміщення на одному кристалі вбудованого блоку пам'яті EDRAM (embedded DRAM) досить великої ємності і мікропроцесорного ядра близька до свого рішення. Корпорація IBM оголосила про створення компактної осередку динамічної пам'яті розміром 0,62 мкм2, що всього в 1,5 рази перевищує розмір осередку в 64-мегабитной мікросхемі DRAM [4]. Блок EDRAM ємністю 16 Мбіт займає площу 20,8 мм 2. При цьому пропускна здатність EDRAM досягає 50 Гбайт / с.

Кеш-пам'ять з декількома рівнями

Постійне зростання ємності кеш-пам'яті мікропроцесора супроводжувався ускладненням процесу управління, що вилилося в перехід від кеш-пам'яті з наскрізною записом до кеш-пам'яті з Буферізірованний і зворотного записами. При цьому в мікропроцесорах використовувалося програмне керування режимом запису кеш-рядків шляхом установки біта, переключающего режими наскрізний і зворотного запису кеш-рядки [5]. Однак у випадку промаху в кеш-пам'яті зростаючий розрив між часом виконання команди і часом доступу в пам'ять привів до неприпустимо великих втрат продуктивності. Тому в мікропроцесори були введені команди управління кешуванням. Наприклад, в Pentium III з'явилися команди нового типу, що забезпечують: запис даних з регістрів на згадку, минаючи кеш; читання даних з пам'яті в регістри, минаючи кеш; запис даних з пам'яті вибірково в кеш першого і другого рівня; запис даних з кеш-пам'яті і буферів запису в пам'ять.

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

Набори регістрів в мультітредовой архітектурі

Інший, в порівнянні з організацією кеш-пам'яті, метод побудови внутрикристальной пам'яті застосовується в мультітредовой архітектурі [6], основна особливість якої - використання сукупності реєстрових файлів. Ця архітектура вирішує проблему розриву між швидкістю обробки в процесорі і часом доступу в основну пам'ять за рахунок переключення в кожному такті процесора на роботу з черговим реєстрових файлом. Кожен реєстровий файл обслуговує один обчислювальний процес - тред (потік). Всього в кожному процесорі є n реєстрових файлів, тому запит, виданий в основну пам'ять кожним з потоків, може обслуговуватися протягом n-1 такту, аж до моменту, коли процесор знову переключиться на той же реєстровий файл. Вибір значення n визначається відношенням часу доступу в пам'ять до часу виконання команди процесором. Звичайно, завдання формування потоків з послідовної програми повинна, по можливості, вирішуватися компілятором. В іншому випадку майбутнє цієї архітектури виявиться обмеженим вузької проблемної орієнтацією.

Компанія Tera оголосила про розробку проекту мультітредового мікропроцесора, що реалізує процесор МТА [7]. Level One, придбана Intel, випустила мультітредовий мережевий мікропроцесор IXP1200, що містить в своєму складі 6 четирехтредових процесорів [8]. IBM анонсувала проект комп'ютера Blue Gene, кристал мікропроцесора якого включає 32 восьмітредових процесора. В кристал вбудована пам'ять EDRAM, організована в 32 блоки. Кожен блок відповідає одному з 32 процесорів і має шину доступу 256 розрядів. Оскільки EDRAM має високу пропускну здатність і малою затримкою, то при восьмітредовой структурі процесора стає можливим відмовитися від кеш-пам'яті, замість якої між процесором і пам'яттю використовується невелика буферна пам'ять [9].

Збільшення числа і складу функціональних пристроїв

Збільшення числа функціональних пристроїв

Пам'ять - ресурс, безпосередньо не виробляє обчислень. Збільшення ємності пам'яті на кристалі дає приріст продуктивності, але після досягнення певної величини цей приріст виявляється істотно менше, ніж забезпечується використанням того ж ресурсу транзисторів кристала для побудови додаткової сукупності функціональних пристроїв. Основна перешкода на шляху підвищення продуктивності за рахунок збільшення числа функціональних пристроїв - це організація завантаження цих пристроїв корисною роботою, яку можна проводити динамічно шляхом дослідження програмного коду на стадії виконання і статично на рівні компіляції програм. Перший підхід використовується в суперскалярні мікропроцесорах, другий - в мікропроцесорах з довгим командним словом [10].

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

Під час компіляції важко, а іноді і неможливо встановити тривалість виконання окремих команд, в зв'язку з тим, що виникають промахи при зверненні до кеш-пам'яті, арифметичні переповнення, формування недопустимих адрес і інші виняткові ситуації. Крім того, визначення залежності між командами запису в пам'ять і читання з пам'яті може бути виконано тільки після обчислення адресних виразів, що можливо лише в ході виконання програми. Команди, вибрані на виконання, можуть слідувати один за одним в незмінному порядку, визначеному при їх вибірці з пам'яті, або їх порядок може змінюватися, дозволяючи виконувати команди, для яких готові операнди. Позачергове виконання команд передбачає наступні механізми:

  • перейменування регістрів з метою усунення ресурсних залежностей «запис після читання» і «запис після запису»;
  • передбачення переходів;
  • динамічне призначення команд на виконавчі пристрої, включаючи зміну порядку виконання в порівнянні з порядком, в якому ці команди були вилучені.

Динамічне призначення команд на виконавчі пристрої реалізується резервуючій станцією, що складається із сукупності елементів асоціативної пам'яті. Кожен з елементів містить позиції для розміщення коду операції, найменування першого операнда, його значення, ознаки доступності першого операнда, найменування другого операнда, його значення, ознаки доступності другого операнда і найменування регістру результату. Коли команда завершує виконання і виробляє результат, то найменування результату порівнюється з найменуваннями операндів в резервуючій станції. Якщо в резервуючій станції виявляється команда, що чекає цього результату, то дані записуються у відповідну позицію і встановлюється ознака їх доступності. Коли у команди доступні всі операнди, ініціюється її виконання. Склади, що резервують станція стежить за доступністю операндів і при отриманні команди все готові операнди з реєстрового файлу переписуються в поля цієї команди. Коли всі операнди готові, команда виконується.

Ефективність застосування позачергового виконання команд демонструється таблицею 1.

Таблиця 1. Ефективність застосування позачергового виконання коман

Мікропроцесор SPECint Прискорення R5000 / 180 МГц Mips R10000 / 180 МГц 4,82 / 8,59 1,78 Pentium / 200 МГц Pentium Pro / 200 МГц 5,47 / 8,09 1,48 Alpha 21164/600 МГц Alpha 21264/575 МГц 19,3 / 30,3 1,57

Процес функціонування процесора з позачерговим виконанням команд ілюструє рис. 1. Як приклад на рис.2 приведена структура процесора Alpha 21264 з позачерговим виконанням команд.

Мультимедійні розширення

Багато виробників розширюють сьогодні функціональні можливості випускаються мікропроцесорів за рахунок введення спеціалізованих блоків для мультимедійних додатків. Подібний блок був уже в процесорі другого покоління Intel 80860 [5], і на деяких додатках його використання забезпечувало істотний приріст продуктивності. Аналогічні блоки включені і в інші мікропроцесори Intel (ММХ-розширення системи команд Pentium і 70 нових SIMD-команд Pentium III), AMD (3D Now!), Sun (VIS SPARC), Compaq (Alpha MVI), HP (PA-RISC MAX2 ), SGI / Mips (MDMX), Motorola (PowerPC AltiVec) [12].

Мал. 2. Структура процесора Alpha 21264 з позачерговим виконанням команд

Можуть бути різні варіанти вбудовування команд мультимедійної обробки в систему команд мікропроцесора: на рівні функціонального блоку, що використовує спільний з іншими блоками файл регістрів (Pentium MMX) або на рівні окремого процесора зі своїм реєстрових файлом, використовуючи рознесену (decoupled) архітектуру [10]. Останній варіант застосований в Pentium III і PowerPC AltiVec.

Команди мультимедійної обробки задають в режимі SIMD-процесора паралельну обробку декількох одиниць даних, представлених, як правило, малоразряднимі (8, 16, 32) числами в форматі з фіксованою точкою. Однак це не вичерпує всіх поточних потреб і, наприклад, в Pentium III введена паралельна обробка в режимі SIMD-процесора чотирьох 32-розрядних операндів в форматі з плаваючою точкою.

інтеграція функцій

Системи на одному кристалі

З ростом кількості транзисторів на кристалі стало можливо побудова мікросхем, в яких мікропроцесор разом з пам'яттю на кристалі виступає в ролі одного з складових елементів (ядер) систем на одному кристалі (SOC - system on chip) [ 2,13 ]. У кристалі інтегруються функції, для виконання яких зазвичай використовуються набори мікросхем, мережеві плати та інші спеціалізовані мікросхеми. Це, з одного боку, дозволяє істотно збільшити пропускну здатність між компонентами кристала в порівнянні з пропускною спроможністю між різними кристалами, що реалізують окремо кожну функцію. І, як наслідок, підняти продуктивність систем. З іншого боку, при зменшенні кількості кристалів різко спрощується виготовлення і монтаж плат, що веде до підвищення надійності і зниження вартості систем.

В кристал інтегруються інтерфейси мережевих і телекомунікаційних систем, що дозволяє без додаткових адаптерів з'єднувати мікропроцесори один з одним, з телекомунікаційними і обчислювальними мережами. Інтеграція комунікаційних інтерфейсів в кристал мікропроцесора була вперше виконана в транспьютерах [10]. Однак це були спрощені інтерфейси, що дозволяють зв'язуватися лише з іншими транспьютерами. У процесорах Motorola MPC8260 підтримується вже безліч телекомунікаційних протоколів, що включають, наприклад, 10/100 Мбіт / с Ethernet, 155 Мбіт / с ATM, 256 каналів 64 Кбіт / с HDLC. Компанія Motorola пропонує два сімейства кристалів, в яких в якості ядра використовується PowerPC 603e - це сімейство на основі технологій AltiVec і PowerQUICC [10].

Системи з розподіленою пам'яттю

Орієнтація розробників на створення систем з розподіленою пам'яттю привела до інтеграції в кристал блоку управління когерентністю багаторівневої пам'яті на кристалі і розподіленої зовнішньої пам'яті, доступ до блокам якої виконується через інтегровану в той же кристал комунікаційне середовище. Як приклади цього підходу можна назвати мікропроцесори Alpha 21364 [14,15], Power4 [16], а також Blue Gene [9]. Як ядро ​​у мікропроцесора Alpha 21364 використовується Alpha 21264, але на кристалі інтегровані: шестівходовий частково асоціативний кеш другого рівня ємністю 1,5 Мбайт; контролер пам'яті, що підтримує роботу з динамічною пам'яттю Direct Rambus; мережевий інтерфейс.

Для динамічного виконання в процесорі Alpha 21364 (рис.3) розглядаються відразу 80 команд - більше, ніж у будь-якого іншого процесора. Після декодування команда поміщається в чергу до пристроїв з фіксованою або плаваючою крапкою. Команди, які отримали всі операнди, конкурують за доступ до функціональних пристроїв: двом блокам операцій з плаваючою точкою, який виконує додавання, множення, ділення, витяг квадратного кореня і чотирьом цілочисельним пристроїв (двом загального призначення і двом адресної арифметики). Останні поряд з простими арифметичними і логічними операціями виконують всі команди завантаження і збереження як цілочисельних даних, так і даних в форматі з плаваючою точкою. Цілочисельні АЛУ загального призначення виконують арифметичні і логічні операції, зрушення і переходи. Одне з цілочисельних АЛУ виконує також множення, а інше - новий набір команд обробки відеоданих. Для динамічного перейменування доступні 41 з 80 цілочисельних регістрів і 41 з 72 регістрів з плаваючою точкою.

Обмін даними між кешами першого і другого рівня, кешем першого рівня і оперативною пам'яттю Буферізірованний (по 16 буферів для кожного рівня пам'яті).

Інтеграція компонентів в одному крісталі дозволяє істотно спростіті и здешевіті системи, реалізовані на основе даного мікропроцесора. Завдяк вбудований мережевий інтерфейсу спрощується об'єднання мікропроцесорів в вісокопродуктівні багатопроцесорні системи. Мережевий інтерфейс підтрімує 4 міжпроцесорніх з'єднання типу «точка-точка» зі швідкістю передачі Даних 10 Гбайт / с КОЖЕН при затрімці 15 нс. Мережевий інтерфейс забезпечує когерентність кешей в багатопроцесорної системі і реалізує асинхронний обмін даними з адаптивною маршрутизацією. Приклад структури багатопроцесорноїсистеми на основі мікропроцесорів Alpha 21364 показаний на рис. 4.

Мікропроцесор має п'ятий порт - введення-виведення, що працює на швидкості обміну 3 Гбайт / с.

Процесори Alpha 21364 і Power4 об'єднує спільність архітектурних рішень: суперскалярна мікроархітектура, позачергове виконання команд, велика кеш-пам'ять на кристалі, спеціалізований порт для основної пам'яті, а також високошвидкісні лінки для об'єднання мікропроцесорів в системи з архітектурою NUMA з розподіленою пам'яттю (distributed shared memory - DSM).

Кожен процесор Power4 (рис. 5) подібний до Power3 і має два конвеєрних блоку для роботи з 64-розрядними операндами з плаваючою точкою на частоті 1 ГГц, які обирають на виконання по 5 команд кожен і 2 блоки для роботи з пам'яттю. У процесорах реалізується позачергове виконання команд. Мікропроцесор реалізований на кристалі, що містить 170 млн. Транзисторів. Для досягнення тактової частоти 1,1 ГГц стадії конвеєрів мають затримку 8-10 вентилів.

Процесори містять роздільні кеш-пам'яті команд і даних першого рівня ємністю по 64 Кбайт кожна. Крім того, є колективна (загальна) кеш-пам'ять на кристалі другого рівня і зовнішня кеш-пам'ять третього рівня. Для освіти мультипроцесорних конфігурацій є 3 лінка з сумарною пропускною спроможністю 45 Гбайт / с.

Поряд з паралелізмом рівня команд (ILP), процесор використовує паралелізм рівня тредов (TLP). Динамічне виявлення паралелізму дозволяє запобігати простої процесора при важко виявляються статично виняткових ситуаціях, наприклад, промаху в кеш-пам'яті. Power4 виготовляється по 0,18-мікронної технології SOI ( «кремній на ізоляторі») з мідними провідниками і 5 шарами металу на кристалі площею 400 мм 2.

Відмітна особливість Power4 - наявність кеш-пам'яті другого рівня, що розділяється двома процесорами кристала, а також зовнішніми процесорами інших кристалів через лінки шириною 16 байт, що працюють на тактовій частоті більше 500 МГц, що забезпечує пропускну здатність понад 8 Гбайт / с. Сумарна пропускна здатність 4 лінків становить понад 35 Гбайт / с. При об'єднанні 4 кристалів і їх розміщенні, як показано на рис. 6, провідники лінків можуть бути досить короткими і, що важливо, прямими.

Фізично кеш-пам'яті другого рівня ємністю близько 1,5 Мбайт складається з трьох однакових блоків, доступ до яких можна отримати через комутатор з пропускною спроможністю на рівні 100 Гбайт / с. Протокол когерентності забезпечує розміщення даних, що надійшли з лінками, в тому блоці кеш-пам'яті, який використовувався для розміщення даних останнім.

Порт кристала Power4, призначений для підключення кеш-пам'яті третього рівня ємністю до 32 Мбайт має ширину 16 байт для кожного з двох напрямків пересилання даних. Порт функціонує на 1/3 від тактової частоти процесорів кристала, що забезпечує пропускну здатність до пам'яті на рівні 10 Гбайт / с. Теги кеш-пам'яті третього рівня розташовані всередині кристала, що прискорює реалізацію протоколу когерентності. Для роботи з основною пам'яттю може бути використана восьміпоточная програмна предвибірки даних безпосередньо в кеш-пам'ять першого рівня на кристалі. Пересилати можна одночасно до 20 рядків кеша.

Кожен з двох процесорів Power4 має систему команд IBM ISA, реалізовану в RS / 6000 і AS / 400 і повністю сумісну з системою команд Power PC. Збереження системи команд, викликане підтримкою двійкового коду користувачів, вимагало застосування як однотактний команд, так і мікропрограм і навіть переривань для програмної реалізації найбільш складних команд ISA.

Однокристальний мультітредовие і мультіскалярние системи

Сучасні мікропроцесори, наприклад, Alpha 21264 і Pentium III, належать до однотредовим, що використовують паралелізм рівня команд, що виявляються або статично (компілятором), або динамічно (апаратурою центрального процесора), або комбінацією цих двох методів. Паралелізм рівня тредов при використанні цих мікропроцесорів може бути виявлений тільки статично. Динамічне виявлення паралелізму рівня тредов в рамках архітектур однотредових процесорів практично неможливо, так як вимагає перегляду великої кількості команд на предмет їх одночасного виконання - розширення вікна виконання. Це тягне за собою ускладнення логічних схем управління позачергових виконанням команд, що може привести до зниження тактової частоти мікропроцесора. Для вирішення даного протиріччя пропонуються мультітредовие і мультіскалярние мікропроцесори [ 17-19 ].

Основи мультітредовой архітектури

При всій відмінності підходів до створення мультітредових мікропроцесорів, загальним для них є введення безлічі пристроїв вибірки команд, кожна з яких організовує вікно виконання для одного тред. В рамках одного тред виконується пророкування переходів, перейменування регістрів, динамічна підготовка команд до виконання. Тим самим, загальне число команд, що знаходяться в обробці, значно перевищує розмір вікна виконання однотредового процесора, з одного боку, і тактова частота не лімітується розміром вікна виконання, з іншого боку.

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

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

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

За оцінками [11], при обробці транзакцій мультітредовий мікропроцесор Alpha 21464 буде в десять разів продуктивніше, ніж Alpha 21264.

Розвиток систем на одному кристалі

Серед тенденцій, що ведуть до появи багатопроцесорних систем на одному кристалі, можна відзначити наступні.

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

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

3. Многопроцессорная система, в силу притаманною їй надмірності, здатна функціонувати при відмові частини обладнання. Такі відмови можуть бути як спочатку присутніми, внаслідок дефектів кремнієвої пластини або технологічного процесу виготовлення, так і з'явилися в ході функціонування. Багатопроцесорні системи можуть створюватися або як однокристальних, або як багатокристальні мікроскладення. Реальність така, що однокорпусні мікрозбірка багатопроцесорноїсистеми з сукупності простих мікропроцесорів може значно перевищувати за показником «продуктивність / вартість» однокристальних систем, розмір кристала якої дорівнює сумі площ кристалів мікроскладення [20,21]. Мікрозборки не відрізняються від НВІС. Вибір однокристальної реалізації або мікроскладення визначається досягаються техніко-економічними показниками, наприклад, використання микросборок пам'яті. Можливості подібної технології демонструє мікропроцесор Pentium Pro. Однак серед найцікавіших проектів, які концентрують архітектурні та технологічні досягнення, включаючи однокристальних системи і мікроскладення, можна назвати мікропроцесор Power4 [16].

4. У традиційних комп'ютерах, що складаються з мікропроцесора і мікросхем пам'яті, що використовують в сукупності близько 108 транзисторів в процесорі і 109 транзисторів в пам'яті, в кожному такті задіяно за різними оцінками 104 - 105 транзисторів. Інакше кажучи, має місце простий значної частини обладнання, потенційно здатного виробляти корисну роботу. Звичайно, при використанні КМОП-технології простої мають і певний плюс: обладнання виділяє мало теплової енергії. При існуючих на сьогодні конструкціях корпусів мікросхем проблема тепловідведення може стати вирішальною при виборі архітектури кристала. Однак на кристалі може бути досить ефективно реалізована многопроцессорная система з великого числа процесорів, кожен з яких має власну невелику вбудовану пам'ять. Подібні обчислювальні структури зазвичай називають асоціативними процесорами, пам'яттю з обробкою, багатофункціональної пам'яттю або інтелектуальної пам'яттю. До цього класу належать однокристальних системи як з SIMD-архітектурою [3,10], наприклад, Fuzion 150 [23], так і з MIMD-архітектурою, наприклад, Blue Gene [ 9 ].

Напрямок еволюції архітектур мікропроцесорів

Мультітредовие мікропроцесори і системи на одному кристалі вбирають в себе накопичені в ході еволюції прийоми підвищення продуктивності мікропроцесорів і використовують симбіоз компіляторів і апаратури, відповідно для статичного і динамічного виявлення паралелізму з вихідних послідовних програм. Орієнтація на виконання сукупності тредов з певним ступенем межтредових залежностей обумовлює конкретні рішення по спільному використанню тред реєстрового файлу, апаратури позачергового виконання команд і функціональних пристроїв. Мають відбутися ще значні дослідження по оптимізації мультітредових архітектур. Однак послідовність кроків в цьому напрямку еволюції мікропроцесорів вже відома - це Alpha 21364 і Alpha 21464.

Віктор Корнєєв ( [email protected] ) - заступник директора НДІ «Квант» з наукової роботи, (Москва).

література

1. В. Левін. Деякі питання реалізації високопродуктивних обчислювальних систем. Кібернетика та обчислювальна техніка. М. Наука, 1991, стр.27-35
2. J. Hennessy. The Future of Systems Research. Computer. No. 8, 1999, pp. 27-33
3. В. Корнєєв. Паралельні обчислювальні системи. М. Нолидж, 1999.
4. Р. Сайкс, К. Ессік. IBM об'єднує пам'ять та логічні пристрої на одному кристалі. «Computerworld Росія», №9, 16 березня 1999
5. Overview of the i860 XP Supercomputing Microprocessor. Intel, 1991
6. Major System Characteristics of the Tera MTA. http://www.tera.com
7. Tera Computer Company Completes Design of Breakthrough Multiprocessor Chip.
8. Level One IXP1200 Network Processor. Advance Datasheet, Revision 278298-001 September +1999.
9. D. Clark. Blue Gene and the race toward petaflops capacity. IEEE Concurrency. January-March 2000, pp. 5-9
10. В. Корнєєв, А. Кисельов. Сучасні мікропроцесори. М. Нолидж, 2000.
11. Alpha and IA-64. October 11, 1999. www. digital.com
12. K. Diefendorff, et. al. How Multimedia Workloads Will Change Processor Design. Computer. September, 1997. pp. 43-45
13. L. Goldberg. Vendors Are Counting on Appliance-on-Chip Technology. Computer, Vol. 32, No 11. 1999 року, pp. 13-16
14. P. Bannon. Alpha 21364: A Scalable Single-chip SMP. Compaq Computer Corporation, Microprocessor Forum, 13 October 1 998
15. L. Barroso, K.Gharachorloo, A. Novatzyk, B. Verghese. Impact of Chip-Level Integration on Performance of OLTP Workloads. Proc. of The Sixth International Symposium on High-Performance Computer Architecture (HPCA), January, 2000.
16. K. Diefendorff. Power 4 Focuses on Memory Banwidth. Microprocessor Report. Vol. 13, No. 13, October 6, 1999.
17. G. Sohi, S. Breach, T. Vijaykumar. Multiscalar Processors. ISCA? 95, Santa Margherita, Ligure, Italy. pp. 414-425
18. V. Krishnan, J. Torrellas. A Chip-Multiprocessor Architecture with Speculative Multithreading. IEEE Transactions on Computers. Vol. 48, No. 9, 1999.
20. J. Tsai et. al. The Superthreaded Processor Architecture. IEEE Transactions on Computers. Vol. 48, No. 9, 1999.
21. E. Davidson. Large Chip vs. MCM for a High-Performance System. IEEE Micro, July-August 1998.Vol. 18, No 4, pp. 33-41
22. M. Koyanagi, et. al. Future System-on-Silicon LSI Chips. IEEE Micro, July-August 1998.Vol. 18, No 4, pp. 17-22
23. P. Clarke. Pixelfusion SIMD engine processes 1.5 trillion operations / s. EE Times, May 12, 1999.

ISCA?