Порівняльні характеристики сучасних апаратних платформ

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Зміст

Процесори з архітектурою 80x86 і Pentium

Особливості процесорів з архітектурою SPARC компанії Sun Microsystems

SuperSPARC

hyperSPARC

MicroSPARC-II

UltraSPARC

Процесори PA-RISC компанії Hewlett-Packard

Особливості архітектури MIPS компанії MIPS Technology

Особливості архітектури Alpha компанії DEC

Особливості архітектури POWER компанії IBM і PowerPC компаній Motorola, Apple та IBM

Архітектура POWER

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

Процесори з архітектурою 80x86 і Pentium

Зазвичай, коли нова архітектура створюється одним архітектором або групою архітекторів, її окремі частини дуже добре підігнані один до одного і вся архітектура може бути описана досить пов'язано. Цього не можна сказати про архітектуру 80x86, оскільки це продукт кількох незалежних груп розробників, які розвивали цю архітектуру більше 15 років, додаючи нові можливості до початкового набору команд.

У 1978 році була анонсована архітектура Intel 8086 як сумісний вгору розширення в той час успішного 8-біт мікропроцесора 8080. 8086 являє собою 16-бітову архітектуру з усіма внутрішніми регістрами, що мають 16-бітову розрядність. Мікропроцесор 8080 був просто побудований на базі нагромаджуючого суматора (акумулятора), але архітектура 8086 була розширена додатковими регістрами. Оскільки майже кожен регістр в цій архітектурі має певне призначення, 8086 за класифікацією частково можна віднести до машин з накопичують суматором, а частково - до машин з регістрами загального призначення, і його можна назвати розширеної машиною з накопичують суматором. Мікропроцесор 8086 (точніше його версія 8088 з 8-бітової зовнішньою шиною) став основою завоювала надалі весь світ серії комп'ютерів IBM PC, що працюють під управлінням операційної системи MS-DOS.

У 1980 році був анонсований співпроцесор плаваючою точки 8087. Ця архітектура розширила 8086 майже на 60 команд плаваючою точки. Її архітектори відмовилися від розширених накопичують суматорів для того, щоб створити якийсь гібрид стеків і регістрів, по суті розширену стекову архітектуру. Повний набір стекових команд доповнено обмеженим набором команд типу регістр-пам'ять.

Анонсований в 1982 році мікропроцесор 80286, ще далі розширив архітектуру 8086. Була створена складна модель розподілу та захисту пам'яті, розширено адресний простір до 24 розрядів, а також додана невелика кількість додаткових команд. Оскільки дуже важливо було забезпечити виконання без змін програм, розроблених для 8086, в 80286 був передбачений режим реальних адрес, що дозволяє машині виглядатиме майже як 8086. У 1984 році компанія IBM оголосила про використання цього процесора у своїй новій серії персональних комп'ютерів IBM PC / AT.

У 1987 році з'явився мікропроцесор 80386, який розширив архітектуру 80286 до 32 біт. На додаток до 32-бітової архітектури з 32-бітовими регістрами і 32-бітовим адресним простором, в мікропроцесорі 80386 з'явилися нові режими адресації і додаткові операції. Всі ці розширення перетворили 80386 в машину, за ідеологією близьку до машин з регістрами загального призначення. На додаток до механізмів сегментації пам'яті, в мікропроцесор 80386 була додана також підтримка сторінкової організації пам'яті. Також як і 80286, мікропроцесор 80386 має режим виконання програм, написаних для 8086. Хоча в той час базовою операційною системою для цих мікропроцесорів залишалася MS-DOS, 32-розрядна архітектура і сторінкова організація пам'яті послужили основою для перенесення на цю платформу операційної системи UNIX. Слід зазначити, що для процесора 80286 була створена операційна система XENIX (сильно урізаний варіант системи UNIX).

Ця історія ілюструє ефект, викликаний необхідністю забезпечення сумісності з 80x86, оскільки існуюча база програмного забезпечення на кожному кроці була надто важливою. На щастя, наступні процесори (80486 в 1989 і Pentium в 1993 році) були націлені на збільшення продуктивності і додали до видимого користувачем набору команд лише три нові команди, що полегшують організацію багатопроцесорної роботи.

Що б не говорилося про незручності архітектури 80x86, слід мати на увазі, що вона переважає у світі персональних комп'ютерів. Майже 80% встановлених малих систем базуються саме на цій архітектурі. Спори щодо переваг CISC і RISC архітектур поступово стихають, оскільки сучасні мікропроцесори намагаються увібрати в себе найкращі властивості обох підходів.

Сучасне сімейство процесорів i486 (i486SX, i486DX, i486DX2 і i486DX4), в якому збереглися система команд і методи адресації процесора i386, вже має деякі властивості RISC-мікропроцесорів. Наприклад, найбільш уживані команди виконуються за один такт. Компанія Intel для оцінки продуктивності своїх процесорів ввела у вживання спеціальну характеристику, яка називається рейтингом iCOMP. Компанія сподівається, що ця характеристика стане стандартною тестової оцінкою і буде застосовуватися іншими виробниками мікропроцесорів, однак останні зі зрозумілою обережністю ставляться до системи вимірювань продуктивності, введеної компанією Intel. Нижче в таблиці наведено порівняльні характеристики деяких процесорів компанії Intel на базі рейтингу iCOMP.

Процесор Тактова частота (МГц) Рейтинг iCOMP
386SX
386SL
386DX
386DX
i486SX
i486SX
i486SX
i486DX
i486DX2
i486DX
i486DX2
i486DX4
i486DX4
Pentium
Pentium
Pentium
Pentium
Pentium
Pentium
25
25
25
33
20
25
33
33
50
50
66
75
100
60
66
90
100
120
133
39
41
49
68
78
100
136
166
231
249
297
319
435
510
567
735
815
1000
1200

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

Процесори Intel OverDrive і i486DX2 практично ідентичні. Однак кристал OverDrive має корпус, який може встановлюватися в гніздо розширення співпроцесора i487SX, що застосовується в ПК на базі i486SX. У процесорах OverDrive і i486DX2 застосовується технологія подвоєння внутрішньої тактової частоти, що дозволяє збільшити продуктивність процесора майже на 70%. Процесор i486DX4/100 використовує технологію потроєння тактової частоти. Він працює з внутрішньою тактовою частотою 99 МГц, в той час як зовнішня тактова частота (частота, на якій працює зовнішня шина) складає 33 МГц. Цей процесор практично забезпечує рівні можливості з машинами класу 60 МГц Pentium, будучи їх повноцінної і доступної за ціною альтернативою.

З'явився в 1993 році процесор Pentium ознаменував собою новий етап у розвитку архітектури x86, пов'язаний з адаптацією багатьох властивостей процесорів з архітектурою RISC. Він виготовлений по 0.8 микронной БіКМОП технології і містить 3.1 мільйона транзисторів. Первісна реалізація була розрахована на роботу з тактовою частотою 60 і 66 МГц. В даний час є також процесори Pentium, що працюють з тактовою частотою 75, 90, 100, 120, 133, 150 і 200 МГц. Процесор Pentium у порівнянні зі своїми попередниками володіє цілим рядом поліпшених характеристик. Головними його особливостями є:

двохпотокові суперскалярна організація, що допускає паралельне виконання пари простих команд; наявність двох незалежних двоканальних множинно-асоціативних кешей для команд і для даних, що забезпечують вибірку даних для двох операцій в кожному такті; динамічне прогнозування переходів; конвеєрна організація пристрою плаваючої крапки з 8 ступенями; двійкова сумісність з існуючими процесорами сімейства 80x86.

Блок-схема процесора Pentium представлена ​​на малюнку 6.1. Перш за все нова мікроархітектура цього процесора базується на ідеї суперскалярной обробки (правда з деякими обмеженнями). Основні команди розподіляються по двох незалежних виконавчим пристроям (конвеєрам U і V). Конвеєр U може виконувати будь-які команди сімейства x86, включаючи цілочисельні команди і команди з плаваючою точкою. Конвеєр V призначений для виконання простих цілочисельних команд і деяких команд з плаваючою крапкою. Команди можуть направлятися в кожне з цих пристроїв одночасно, причому при видачі пристроєм управління в одному такті пари команд більш складна команда надходить в конвеєр U, а менш складна - в конвеєр V. Така попарно видача команд можлива правда тільки для обмеженого підмножини цілочисельних команд. Команди арифметики з плаваючою точкою не можуть запускатися в парі з цілочисельними командами. Одночасна видача двох команд можлива тільки за відсутності залежностей по регістрах. При зупинці команди з будь-якої причини в одному конвеєрі, як правило зупиняється і другий конвеєр.

Решта пристрої процесора призначені для постачання конвеєрів необхідними командами і даними. На відміну від процесорів i486 в процесорі Pentium використовується роздільна кеш-пам'ять команд та даних ємністю по 8 Кбайт, що забезпечує незалежність звернень. За один такт з кожної кеш-пам'яті можуть зчитуватися два слова. При цьому кеш-пам'ять даних побудована на принципах дворазового розшарування, що забезпечує одночасне зчитування двох слів, що належать одному рядку кеш-пам'яті. Кеш-пам'ять команд зберігає відразу три копії тегів, що дозволяє в одному такті зчитувати два командні слова, які належать або одному рядку, або суміжних рядках для забезпечення попарної видачі команд, при цьому третя копія тегів використовується для організації протоколу спостереження за когерентністю стану кеш-пам'яті . Для підвищення ефективності перезавантаження кеш-пам'яті в процесорі застосовується 64-бітова зовнішня шина даних.

У процесорі передбачений механізм динамічного прогнозування напрямку переходів. З цією метою на кристалі розміщена невелика кеш-пам'ять, яка називається буфером цільових адрес переходів (BTB), і дві незалежні пари буферів попередньої вибірки команд (по два 32-бітових буфера на кожен конвеєр). Буфер цільових адрес переходів зберігає адреси команд, які знаходяться в буферах попередньої вибірки. Робота буферів попередньої вибірки організована таким чином, що в кожний момент часу здійснюється вибірка команд тільки в один з буферів відповідної пари. При виявленні в потоці команд операції переходу обчислений адреса переходу порівнюється з адресами, що зберігаються в буфері BTB. У разі збігу передбачається, що перехід буде виконаний, і дозволяється робота іншого буфера попередньої вибірки, який починає видавати команди для виконання у відповідний конвеєр. При розбіжності вважається, що перехід виконуватися не буде і буфер попередньої вибірки не перемикається, продовжуючи звичайний порядок видачі команд. Це дозволяє уникнути простоїв конвеєрів при правильному прогнозі напрямки переходу. Остаточне рішення про направлення переходу природно приймається на підставі аналізу коду умови. При неправильно зробленому прогнозі вміст конвеєрів анулюється і видача команд починається з необхідної адреси. Неправильний прогноз призводить до припинення роботи конвеєрів на 3-4 такту.

Порівняльні характеристики сучасних апаратних платформ

Рис. 6.1. Спрощена блок схема процесора Pentium

Слід зазначити, що збільшена продуктивність процесора Pentium вимагає і відповідної організації системи на його основі. Компанія Intel розробила і поставляє всі необхідні для цього набори мікросхем. Перш за все для узгодження швидкості з динамічною основною пам'яттю необхідна кеш-пам'ять другого рівня. Контролер кеш-пам'яті 82496 і мікросхеми статичної пам'яті 82491 забезпечують побудову такої кеш-пам'яті об'ємом 256 Кбайт і роботу процесора без тактів очікування. Для ефективної організації систем Intel розробила стандарт на високопродуктивну локальну шину PCI. Випускаються набори мікросхем для побудови потужних комп'ютерів на її основі.

В даний час компанія Intel разработалаі випустила новий процесор, який продовжує архітектурну лінію x86. Цей процесор отримав назву P6 або PentiumPro. Він працює з тактовою частотою 150: 166: 180 і 200 МГц. PentiumPro забезпечує повну сумісність з процесорами попередніх поколінь. Він призначений головним чином для підтримки високопродуктивних 32-бітових обчислень в області САПР, тривимірної графіки та мультимедіа: а також широкого кола комерційних додатків баз даних. За результатами випробувань на тестах SPEC (8.58 SPECint95 і 6.48 SPECfp95) процесор PentiumPro по продуктивності цілочисельних операцій у поточний момент часу вийшов на третє місце у світовій класифікації, поступаючись тільки 180 МГц HP PA-8000 і 400 МГц DEC Alpha. Для досягнення такої продуктивності необхідно використання технічних рішень, широко застосовуються при побудові RISC-процесорів:

виконання команд не в запропонованої програмою послідовності, що усуває в багатьох випадках припинення конвеєрів через очікування операндів операцій; використання методики перейменування регістрів, що дозволяє збільшувати ефективний розмір реєстрового файлу (мала кількість регістрів - одне з найвужчих місць архітектури x86); розширення суперскалярні можливостей по відношенню до процесора Pentium, в якому забезпечується одночасна видача тільки двох команд з досить жорсткими обмеженнями на їх комбінації.

Крім того, в боротьбу за нове покоління процесорів x86 включилися компанії, які раніше займалися виготовленням Intel-сумісних процесорів. Це компанії Advanced Micro Devices (AMD), Cyrix Corp і NexGen. З точки зору мікроархітектури найбільш близький до Pentium процесор М1 компанії Cyrix, який повинен з'явитися на ринку найближчим часом. Також як і Pentium він має два конвеєри і може виконувати до двох команд в одному такті. Проте в процесорі М1 число випадків, коли операції можуть виконуватися попарно, значно збільшено. Крім того в ньому застосовується методика обходів і прискорення пересилання даних, що дозволяє усунути призупинення конвеєрів у багатьох ситуаціях, з якими не справляється Pentium. Процесор містить 32 фізичних регістра (замість 8 логічних, передбачених архітектурою x86) і застосовує методику перейменування регістрів для усунення залежностей за даними. Як і Pentium, процесор M1 для прогнозування напрямку переходу використовує буфер цільових адрес переходу ємністю 256 елементів, але крім того підтримує спеціальний стек повернень, що відслідковує виклики процедур та наступні повернення.

Процесори К5 компанії AMD і Nx586 компанії NexGen використовують в корені інший підхід. Основа їх процесорів - дуже швидке RISC-ядро, яке виконує високорегулярние операції в суперскалярное режимі. Внутрішні формати команд (ROP у компанії AMD і RISC86 у компанії NexGen) відповідають традиційним системам команд RISC-процесорів. Всі команди мають однакову довжину і кодуються в регулярному форматі. Звернення до пам'яті виконуються спеціальними командами завантаження і запису. Як відомо, архітектура x86 має дуже складну для декодування систему команд. У процесорах K5 і Nx586 здійснюється апаратна трансляція команд x86 у команди внутрішнього формату, що дає найкращі умови для розпаралелювання обчислень. У процесорі К5 є 40, а в процесорі Nx586 22 фізичних регістра, які реалізують методику перейменування. У процесорі К5 інформація, необхідна для прогнозування напрямку переходу, записується прямо в кеш команд і зберігається разом з кожним рядком кеш-пам'яті. У процесорі Nx586 для цих цілей використовується кеш-пам'ять адрес переходів на 96 елементів.

Таким чином, компанія Intel більше не володіє монополією на методи конструювання високопродуктивних процесорів x86, і можна очікувати появи нових процесорів, не тільки не поступаються, а й можливо переважаючих по продуктивності процесори компанії, що стояла біля витоків цієї архітектури. Слід зазначити, що сама компанія Intel уклала стратегічну угоду з компанією Hewlett-Packard на розробку наступного покоління мікропроцесорів, в яких архітектура x86 буде поєднуватися з архітектурою дуже довгого командного слова (VLIW-архітектурою). Поява цих мікропроцесорів не очікується до кінця 1998 року.

Особливості процесорів з архітектурою SPARC компанії Sun Microsystems

Масштабована процесорна архітектура SPARC (Scalable Processor Architecture) компанії Sun Microsystems є найбільш широко поширеною RISC-архітектурою, що відбиває домінуюче положення компанії на ринку UNIX робочих станцій і серверів. Процесори з архітектурою SPARC ліцензовані та виготовляються за специфікаціями Sun декількома виробниками, серед яких слід відзначити компанії Texas Instruments, Fujitsu, LSI Logic, Bipolar International Technology, Philips, Cydivss Semiconductor і Ross Technologies. Ці компанії здійснюють поставки процесорів SPARC не тільки самої Sun Microsystems, але й іншим відомим виробникам обчислювальних систем, наприклад, Solbourne, Toshiba, Matsushita, Tatung і Cray Research.

Спочатку архітектура SPARC була розроблена з метою спрощення реалізації 32-бітового процесора. Надалі, у міру поліпшення технології виготовлення інтегральних схем, вона поступово розвивалося і в даний час є 64-бітова версія цієї архітектури (SPARC-V9), яка покладена в основу нових мікропроцесорів, що одержали назву UltraSPARC.

Перший процесор SPARC був виготовлений компанією Fujitsu на базі вентильної матриці, що працює на частоті 16.67 МГц. На основі цього процесора була розроблена перша робоча станція Sun-4 з продуктивністю 10 MIPS, оголошена восени 1987 року (до цього часу компанія Sun використовувала у своїх виробах мікропроцесори Motorola 680X0). У березні 1988 року Fujitsu збільшила тактову частоту до 25 МГц створивши процесор з продуктивністю 15 MIPS.

Пізніше компанія Sun вміло використовувала конкуренцію серед компаній-постачальників інтегральних схем, вибираючи найбільш вдалі розробки для реалізації своїх виробів SPARCstation 1, 1 +, IPC, ELC, IPX, 2 і серверів серій 4xx і 6xx. Тактова частота процесорів SPARC була підвищена до 40 МГц, а продуктивність - до 28 MIPS.

Подальше підвищення продуктивності процесорів з архітектурою SPARC було досягнуто за рахунок реалізації в кристалах принципів суперскалярной обробки компаніями Texas Instruments і Cydivss. Процесор SuperSPARC компанії Texas Instruments став основою серії робочих станцій і серверів SPARCstation / SPARCserver 10 і 20. У залежності від суміші команд він забезпечує видачу до трьох команд за один машинний такт. Процесор SuperSPARC має збалансовану продуктивність на операції з фіксованою і плаваючою крапкою. Він має внутрішній кеш ємністю 36 Кб (20 Кб - кеш команд і 16 Кб - кеш даних), роздільні конвеєри цілочисельною і речової арифметики і при тактовій частоті 75 Мгц забезпечує продуктивність близько 205 MIPS.

Компанія Texas Instruments розробила також 50 МГц процесор MicroSPARC з вбудованим кешем ємністю 6 Кб, який раніше широко використовувався в дешевих моделях робочих станцій SPARCclassic і LX. Потім Sun спільно з Fujitsu створили нову версію кристала MicroSPARC II з вбудованим кешем ємністю 24 Кб. На його основі побудовано робочі станції і сервери SPARCstation / SPARCserver 4 і 5, що працюють на частоті 70, 85 і 110 МГц.

Хоча архітектура SPARC протягом тривалого часу залишалася домінуючою на ринку процесорів RISC, особливо в секторі робочих станцій, підвищення тактової частоти процесорів у 1992-1994 роках відбувалося повільнішими темпами в порівнянні з підвищенням тактової частоти конкуруючих архітектур процесорів. Щоб ліквідувати це відставання, а також у відповідь на появу на ринку 64-бітових процесорів компанія Sun розробила і проводить в життя п'ятирічну програму модернізації. Відповідно до цієї програми Sun планувала довести тактову частоту процесорів MicroSPARC до 100 МГц в 1994 році (процесор MicroSPARC II з тактовою частотою 110 Мгц використовується у робочих станціях і серверах SPARCstation 4 і 5). В кінці 1994 і протягом 1995 року на ринку з'явилися мікропроцесори hyperSPARC і однопроцесорні і багатопроцесорні робочі станції SPARCstation 20 з тактовою частотою процесора 100, 125 і 150 МГц. До середини 1995 року тактова частота процесорів SuperSPARC була доведена до 85 МГц (60, 75 і 85 МГц версії цього процесора в даний час застосовуються в робочих станціях і серверах SPARCstation 20, SPARCserver 1000 і SPARCcenter 2000 компанії Sun і 64-процесорному сервері компанії Cray Research ). Нарешті, у листопаді 1995 року, з'явилися 64-бітові процесори UltraSPARC-I з тактовою частотою 143, 167 і 200 МГц, і були оголошені процесори UltraSPARC-II з тактовою частотою від 250 до 300 МГц, серійне виробництво яких повинно початися в середині 1996 року . Надалі планується випуск процесорів UltraSPARC-III з частотою до 500 МГц.

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

Порівняльні характеристики сучасних апаратних платформ

Рис. 6.2. Блок-схема процесора Super SPARC

SuperSPARC

Є кілька версій цього процесора, що дозволяє в залежності від суміші команд обробляти до трьох команд за один машинний такт, що відрізняються тактовою частотою (50, 60, 75 і 85 МГц). Процесор SuperSPARC (рисунок 6.2) має збалансовану продуктивність на операції з фіксованою і плаваючою крапкою. Він має внутрішній кеш ємністю 36 Кб (20 Кб - кеш команд і 16 Кб - кеш даних), роздільні конвеєри цілочисельною і речової арифметики і при тактовій частоті 75 Мгц забезпечує продуктивність близько 205 MIPS. Процесор SuperSPARC застосовується також в серверах SPARCserver 1000 і SPARCcenter 2000 компанії Sun.

Конструктивно кристал монтується на взаємозамінних процесорних модулях трьох типів, що відрізняються наявністю і об'ємом кеш-пам'яті другого рівня і тактовою частотою. Модуль M-bus SuperSPARC, використовуваний в моделі 50 містить 50-МГц SuperSPARC процесор з внутрішнім кешем ємністю 36 Кб (20 Кб кеш команд і 16 Кб кеш даних). Модулі M-bus SuperSPARC в моделях 51, 61 і 71 містять по одному SuperSPARC процесору, що працює на частоті 50, 60 і 75 МГц відповідно, одному кристалу кеш-контролера (так званому SuperCache), а також зовнішній кеш ємністю 1 Мб. Модулі M-bus в моделях 502, 612, 712 і 514 містять два SuperSPARC процесора і два кеш-контролера кожен, а останні три моделі і по одному 1 Мб зовнішнього кешу на кожен процесор. Використання кеш-пам'яті дозволяє модулям CPU працювати з тактовою частотою, відмінною від тактової частоти материнської плати; користувачі всіх моделей тому можуть поліпшити продуктивність своїх систем заміною існуючих модулів CPU замість того, щоб виробляти upgrade всієї материнської плати.

hyperSPARC

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

Продуктивність процесорів hyperSPARC може змінюватися незалежно від швидкості роботи зовнішньої шини (MBus). Набір кристалів hyperSPARC забезпечує як синхронні, так і асинхронні операції за допомогою спеціальної логіки кристала RT625. Відділення внутрішньої шини процесора від зовнішньої шини дозволяє збільшувати тактову частоту процесора незалежно від частоти роботи підсистем пам'яті та вводу / виводу. Це забезпечує більш тривалий життєвий цикл, оскільки перехід на більш продуктивні модулі hyperSPARC не вимагає переробки всієї системи.

Процесорний набір hyperSPARC з тактовою частотою 100 Мгц побудований на основі технологічного процесу КМОП з трьома рівнями металізації і проектними нормами 0.5 мікрон. Внутрішня логіка працює з напругою живлення 3.3В.

Порівняльні характеристики сучасних апаратних платформ

Рис. 6.3. Набір кристалів процесора hyperSPARC

Процесор hyperSPARC реалізований у вигляді многокристального мікроскладені (рисунок 6.3), до складу якої входить суперскалярна конвеєрна частину і тісно пов'язана з нею кеш-пам'ять другого рівня. У набір кристалів входять RT620 (CPU) - центральний процесор, RT625 (CMTU) - контролер кеш-пам'яті, пристрій управління пам'яттю і пристрій тегів і чотири RT627 (CDU) кеш-пам'ять даних для реалізації кеш-пам'яті другого рівня ємністю 256 Кбайт. RT625 забезпечує також інтерфейс з MBus.

Центральний процесор RT620 (рисунок 6.4) складається з цілочисельного пристрої, пристрої з плаваючою точкою, пристрої завантаження / запису, влаштування переходів та двоканальної множинно-асоціативної пам'яті команд ємністю 8 Кбайт. Цілочисельне пристрій включає АЛУ і окремий тракт даних для операцій завантаження / запису, які представляють собою два з чотирьох виконавчих пристроїв процесора. Пристрій переходів обробляє команди передачі управління, а пристрій плаваючою точки, реально складається з двох незалежних конвеєрів - додавання і множення чисел з плаваючою крапкою. Для збільшення пропускної спроможності процесора команди плаваючою точки, проходячи через цілочисельний конвеєр, надходять в чергу, де вони очікують запуску в одному з конвеєрів плаваючою точки. У кожному такті обираються дві команди. У загальному випадку, до тих пір, поки ці дві команди вимагають для свого виконання різних виконавчих пристроїв за відсутності залежностей за даними, вони можуть запускатися одночасно. RT620 містить два реєстрових файлу: 136 цілочисельних регістрів, сконфігурованих у вигляді восьми реєстрових вікон, і 32 окремих регістру плаваючою точки, розташованих у пристрої плаваючою точки.

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

Пристрій управління пам'яттю містить у своєму складі повністю асоціативний кеш-пам'ять перетворення віртуальних адрес у фізичні (TLB), що складається з 64 рядків, яка підтримує 4096 контекстів. RT625 містить буфер читання ємністю 32 байти, використовуваний для завантаження, і буфер запису ємністю 64 байта, використовуваний для розвантаження кеш-пам'яті другого рівня. Розмір рядка кеш-пам'яті складає 32 байта. Крім того, в RT625 є логічні схеми синхронізації, які забезпечують інтерфейс між внутрішньою шиною процесора і SPARC MBus при виконанні асинхронних операцій.

RT627 являє собою статичну пам'ять 16К (32, спеціально розроблену для задоволення вимог hyperSPARC. Вона організована як чотирьохканальна статична пам'ять у вигляді чотирьох масивів з логікою побайтного запису і вхідними і вихідними регістрами-клямками. RT627 для ЦП є кеш-пам'яттю з нульовим станом очікування без втрат (тобто припинень) на конвейеризацию для всіх операцій завантаження і записи, які потрапляють в кеш-пам'ять. RT627 був розроблений спеціально для процесора hyperSPARC, таким чином для з'єднання з RT620 і RT625 не потрібні ніякі додаткові схеми.

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

Команди завантаження і запису одночасно генерують два звернення: одне до кеш-пам'яті команд першого рівня ємністю 8 Кбайт й те до кеш-пам'яті другого рівня. Якщо адресу команди знайдено в кеш-пам'яті першого рівня, то звернення до кеш-пам'яті другого рівня скасовується і команда стає доступною на стадії декодування конвеєра. Якщо ж у внутрішній кеш-пам'яті стався промах, а в кеш-пам'яті другого рівня виявлено попадання, то команда стане доступною з втратою одного такту, який вбудований в конвеєр. Така можливість дозволяє конвеєру продовжувати безперервну роботу до тих пір, поки мають місце попадання в кеш-пам'ять або першого, або другого рівня, які складають 90% і 98% відповідно для типових прикладних завдань робочої станції. З метою досягнення архітектурного балансу та спрощення обробки виняткових ситуацій цілочисельний конвеєр і конвеєр плаваючою точки мають по п'ять стадій виконання операцій. Така конструкція дозволяє RT620 забезпечити максимальну пропускну здатність, не досяжну в іншому випадку.

Порівняльні характеристики сучасних апаратних платформ

Рис. 6.4. Процесор RТ 620

MicroSPARC-II

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

MicroSPARC-II (рисунок 6.5) є одним з порівняно недавно з'явилися процесорів сімейства SPARC. Основне його призначення - однопроцесорні низьковартісні системи. Він являє собою високоінтегрованих мікросхему, що містить цілочисельне пристрій, пристрій управління пам'яттю, пристрій плаваючою точки, роздільну кеш-пам'ять команд та даних, контролер управління мікросхемами динамічної пам'яті і контролер шини SBus.

Основними властивостями цілочисельного пристрої microSPARC-II є:

п'ятиступінчастий конвеєр команд; попередня обробка команд переходів; підтримка потокового режиму роботи кеш-пам'яті команд і даних; регістровий файл ємністю 136 регістрів (8 реєстрових вікон); інтерфейс з пристроєм плаваючою точки; попередня вибірка команд з чергою на чотири команди.

Цілочисельне пристрій використовує п'ятиступінчастий конвеєр команд з одночасним запуском до двох команд. Пристрій плаваючою точки забезпечує виконання операцій відповідно до стандарту IEEE 754.

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

Процесор microSPARC II має 64-бітову шину даних для зв'язку з пам'яттю і підтримує оперативну пам'ять ємністю до 256 Мбайт. У процесорі інтегрований контролер шини SBus, що забезпечує ефективну з точки зору вартості реалізацію введення / виводу.

UltraSPARC

Основні критерії розробки

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

Зі сказаного ясно, що створення нового високопродуктивного процесора потребує вирішення складних питань у всіх трьох напрямках розробки. При цьому ефективна з точки зору вартості конструкція не може покладатися тільки на збільшення тактової частоти. Економічні міркування змушують розробників приймати рішення, основою яких є масова технологія. Системи UltraSPARC-1 забезпечують високу продуктивність при досить помірною тактовій частоті (до 200 МГц) шляхом оптимізації середньої кількості команд, виконуваних за один такт. Однак при такому підході природно постають питання ефективного управління конвеєром команд та ієрархією пам'яті системи. Для збільшення продуктивності необхідно по можливості зменшити середній час доступу до пам'яті і збільшити середню кількість команд, які видаються для виконання в кожному такті, не перевищуючи при цьому розумного рівня складності процесора.

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

При створенні свого нового процесора UltraSPARC-1 компанія Sun вирішила добитися збільшення продуктивності процесора в тих напрямках, де це не суперечило економічних міркувань. Щоб скоротити число потенційних проблем, було прийнято кілька конструкторських рішень, які визначили основні характеристики UltraSPARC-1:

Реалізація на кристалі роздільної кеш-пам'яті команд і даних Організація широкої вибірки команд (128 біт) Створення ефективних засобів динамічного прогнозування напрямку переходів Реалізація дев'ятирівнева конвеєра, що забезпечує видачу для виконання до чотирьох команд у кожному такті Оптимізація конвеєрних операцій звернення до пам'яті Реалізація команд обміну даними між пам'яттю і регістрами плаваючою точки, що дозволяє не припиняти диспетчеризацію команд обробки Реалізація на кристалі пристрою управління пам'яттю (MMU) Розширення набору команд для підтримки графіки та обробки зображень Реалізація нової архітектури шини UPA

UltraSPARC-I

Процесор UltraSPARC-1 являє собою високопродуктивний, високоінтегрованих Суперскалярний процесор, що реалізує 64-бітову архітектуру SPARC-V9. До його складу входять: пристрій попередньої вибірки та диспетчеризації команд, цілочисельне виконавчий пристрій, пристрій плаваючою точки з графічним пристроєм, пристрій управління пам'яттю, пристрій завантаження / запису, пристрій управління зовнішньої кеш-пам'яттю, пристрій управління інтерфейсом пам'яті і кеш-пам'яті команд і даних (рисунок 6.6).

Порівняльні характеристики сучасних апаратних платформ

Рис. 6.6. Блок-схема процесора UltraSPARC-1

Пристрій попередньої вибірки і диспетчеризації команд

Пристрій попередньої вибірки і диспетчеризації команд процесора UltraSPARC-1 (PDU) забезпечує вибірку команд в буфер команд, остаточну їх дешифрацию, угруповання і розподіл для паралельного виконання в конвеєрних функціональних пристроях процесора. Буфер команд ємністю в 12 команд дозволяє узгодити швидкість роботи пам'яті зі швидкістю обробки виконавчих пристроїв процесора. Команди можуть бути попередньо обрані з будь-якого рівня ієрархії пам'яті, наприклад, з кеш-пам'яті команд (I-кеша), зовнішньої кеш-пам'яті (Е-кеша) або з основної пам'яті системи.

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

Крім того, в процесорі UltraSPARC-1 з кожними чотирма командами у I-кеші пов'язано спеціальне поле, яке вказує на наступний рядок кеш-пам'яті, яка повинна вибиратися слідом за даною. Використання цього поля дозволяє здійснювати вибірку командних рядків відповідно до виконуваних переходами, що забезпечує для програм з великим числом розгалужень практично ту ж саму пропускну здатність команд, що і на лінійній ділянці програми. Здатність швидко вибрати команди по прогнозованому цільовим адресою команди переходу є дуже важливою для оптимізації продуктивності суперскалярного процесора і дозволяє UltraSPARC-1 ефективно виконувати "за припущенням" (speculative) досить хитромудрі низки умовних переходів.

Використовувані в UltraSPARC-1 механізми динамічного прогнозування напрямку і згортки переходів порівняно прості в реалізації і забезпечують високу продуктивність. За результатами контрольних випробувань UltraSPARC-1 88% переходів за умовами цілочисельних операцій і 94% переходів за умовами операцій з плаваючою точкою передвіщаються успішно.

Кеш-пам'ять команд

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

Організація конвеєра

У процесорі UltraSPARC-1 реалізований дев'ятирівнева конвеєр. Це означає, що затримка (час від початку до кінця виконання) більшості команд становить дев'ять тактів. Однак у будь-який даний момент часу в процесі обробки можуть одночасно перебувати до дев'яти команд, забезпечуючи в багатьох випадках завершення виконання команд у кожному такті. Насправді ця швидкість може бути нижче у зв'язку з природою самих команд, промахами кеш-пам'яті або іншими конфліктами по ресурсах. Перший ступінь конвеєра - вибірка з кеш-пам'яті команд. На другому щаблі команди декодуються і поміщаються в буфер команд. Третій рівень, здійснює угруповання і розподіл команд по функціональним виконавчим пристроям. У кожному такті на виконання у виконавчі пристрої процесора можуть видаватися по 4 команди (не більше двох цілочисельних команд або команд плаваючою точки / графічних команд, однієї команди завантаження / запису і однієї команди переходу). На наступному ступені відбувається виконання цілочисельних команд або обчислюється віртуальний адреса для звернення до пам'яті, а також здійснюються остаточне декодування команд плаваючою точки (ПТ) і звернення до регістрів ПТ На п'ятому ступені відбувається звернення до кеш-пам'яті даних. Визначаються попадання і промахи кеш-пам'яті і вирішуються переходи. При виявленні промаху кеш-пам'яті, відповідна команда завантаження надходить в буфер завантаження. З цього моменту цілочисельний конвеєр очікує завершення роботи конвеєрів плаваючою точки / графіки, які починають виконання відповідних команд. Потім проводиться аналіз виникнення виняткових ситуацій. На останньому щаблі всі результати записуються в реєстрові файли і команди вилучаються з обробки.

Цілочисельне виконавчий пристрій

Головним завданням при розробці цілочисельного виконавчого пристрою (IEU) є забезпечення максимальної продуктивності за підтримки повної програмної сумісності з існуючим системним і прикладним ПЗ. Цілочисельне виконавчий пристрій UltraSPARC-1 поєднує в собі кілька важливих особливостей:

2 АЛП для виконання арифметичних і логічних операцій, а також операцій зсуву; багатотактного цілочисельні пристрою множення і ділення; Регістровий файл з вісьма вікнами і чотирма наборами глобальних регістрів; Реалізація ланцюгів прискореної пересилання результатів; Реалізація пристрою завершення команд, яке забезпечує мінімальну кількість ланцюгів обходу ( прискореної пересилання даних) при побудові дев'ятирівнева конвеєра; Пристрій завантаження / запису (LSU).

LSU відповідає за формування віртуальної адреси для всіх команд завантаження і запису (включаючи атомарні операції), за доступ до кеш-пам'яті даних, а також за буферизацію команд завантаження у разі промаху D-кеша (в буфері завантаження) і буферизацію команд записи (у буфері запису). У кожному такті може видаватися для виконання одна команда завантаження і одна команда запису.

Пристрій плаваючою точки (FPU)

Конвеєрне пристрій плаваючою точки процесора UltraSPARC побудовано у відповідності зі специфікаціями архітектури SPARC-V9 і стандарту IEEE 754. Воно складається з п'яти окремих функціональних пристроїв і забезпечує виконання операцій з плаваючою точкою і графічних операцій. Реалізація роздільних виконавчих пристроїв дозволяє UltraSPARC-1 видавати і виконувати дві операції ПТ в кожному такті. Операнди-джерела та результати операцій зберігаються в регістровому файлі ємністю 32 регістра. Більшість команд повністю конвеєризований (мають пропускну здатність 1 такт), затримку в 3 такту і не залежать від точності операндів (мають одну і ту ж затримку для одинарної і подвійної точності). Команди поділу та обчислення квадратного кореня не конвеєризований і виконуються 12/22 такту (одинарна / подвійна точність), але не зупиняють процесор. Інші команди, наступні за командами поділу / обчислення квадратного кореня, можуть видаватися, виконуватися і вилучатися з обробки для фіксації результату в регістровому файлі до завершення команд поділу / обчислення квадратного кореня. Процесор підтримує модель точних переривань за допомогою синхронізації конвеєра плаваючою точки з цілочисловим конвеєром, а також за допомогою засобів прогнозування виняткових ситуацій для операцій з великим часом виконання. FPU може працювати з нормалізованими і ненормалізованном числами з одинарною (32 біт) та подвійною точністю (64 біт), а також підтримує операції над числами з почетвереній точністю (128 біт).

FPU тісно взаємодіє з цілочисловим конвеєром і здатне без яких-небудь додаткових затримок виконувати читання операнда з ПТ з пам'яті і наступну за нею операцію ПТ IEU і FPU мають виділений інтерфейс управління, який забезпечує диспетчеризацію операцій, обраних PDU в FPU. Пристрій попередньої вибірки і диспетчеризації команд виконує розподіл знаходяться в черзі команд у FPU. IEU управляє частиною операцій, пов'язаних з D-кешем, а FPU виконує власне операції обробки даних. При виконанні команд ПТ цілочисельне пристрій і FPU спільно визначають наявність залежностей за даними. Існуючий між ними інтерфейс включає також взаємну синхронізацію при появі виняткових ситуацій FPU. Для зниження взаємного впливу і збільшення загальної продуктивності в FPU забезпечується додаткова буферизація команд ПТ, реалізована за допомогою черги на три команди.

Графічне пристрій (GRU)

У процесорі UltraSPARC-1 реалізований вичерпний набір графічних команд, які забезпечують апаратну підтримку високошвидкісної обробки двовимірних і тривимірних зображень, обробку відеоданих і т.д. GRU виконує операції додавання, порівняння та логічні операції над 16-бітовими і 32-бітовими цілими числами, а також операції множення над 8-бітовими і 16-бітовими цілими. У GRU підтримуються однотактний операції визначення відстані між пікселями, операції вирівнювання даних, операції пакування і злиття.

Пристрій управління пам'яттю (MMU)

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

У свою чергу MMU забезпечує відображення 44-бітового ВА у 41-бітовий фізичну адресу пам'яті. Це перетворення виконується за допомогою повністю асоціативних 64-рядкових буферів: iTLB - для команд і dTLB - для даних. Кожен з цих буферів по суті являє собою повністю асоціативний кеш-пам'ять дескрипторів сторінок. У кожному рядку TLB зберігається інформація про віртуальний адресу сторінки, відповідному фізичному адресі сторінки, а також про допустимому режимі доступу до сторінки і її використанні. Процес перетворення віртуальної адреси у фізичний закінчується відразу, якщо при пошуку в кеш-пам'яті TLB відбувається попадання (відповідний рядок знаходиться в TLB). В іншому випадку заміщення рядка TLB здійснюється спеціальним апаратно-програмним механізмом. MMU підтримує чотири розміри сторінок: 8K, 64K, 512K і 4Мбайт.

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

Нарешті, MMU виконує функції визначення порядку (пріоритет) звернень до пам'яті з боку вводу / виводу, D-кешу, I-кеша і схем перетворення віртуальної адреси у фізичний.

Управління інтерфейсом пам'яті (MIU)

У процесорі UltraSPARC-1 застосовується спеціальна підсистема вводу / виводу (MIU), яка забезпечує управління всіма операціями введення і виведення, які здійснюються між локальними ресурсами: процесором, основною пам'яттю, схемами управління і всіма зовнішніми ресурсами системи. Зокрема, всі системні транзакції, пов'язані з обробкою промахів кеш-пам'яті, перериваннями, спостереженням за когерентним станом кеш-пам'яті, операціями зворотного запису і т.д., обробляються MIU. MIU взаємодіє з системою на частоті меншій, ніж частота UltraSPARC-1 в співвідношенні 1 / 2, або 1 / 3.

Кеш-пам'ять даних (D-кеш)

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

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

Управління зовнішньої кеш-пам'яттю (E-кешем)

Однією з найважливіших проблем побудови системи є узгодження продуктивності процесора зі швидкістю основної пам'яті. Основними методами вирішення цієї проблеми (окрім різноманітних способів організації основної пам'яті і системи межз'єднань) є збільшення розмірів і багаторівнева організація кеш-пам'яті. Пристрій управління зовнішньої кеш-пам'яттю (ECU) процесора UltraSPARC-1 дозволяє ефективно обробляти промахи кеш-пам'яті даних (D-кеша) і команд (Е-кеша). Усі звернення до зовнішньої кеш-пам'яті (E-кешу) конвеєризований, виконуються за 3 такту і здійснюють пересилку 16 байт команд або даних у кожному такті. Така організація дає можливість ефективно планувати конвеєрне виконання програмного коду, що містить великий обсяг оброблюваних даних, і мінімізувати втрати продуктивності, пов'язані з обробкою промахів в D-кеші. ECU дозволяє нарощувати обсяг зовнішньої кеш-пам'яті від 512 Кбайт до 4 Мбайт.

ECU забезпечує поєднану в часі обробку промахів звернень з читання даних з Е-кешу з операціями запису. Наприклад, під час обробки промаху по завантаженню ECU дозволяє надходження запитів по запису даних в E-кеш. Крім того, ECU підтримує операції спостереження (snoops), пов'язані із забезпеченням когерентного стану пам'яті системи.

Типовий процесорний модуль UltraSPARC-1

Типовий процесорний модуль (рисунок 6.7). UltraSPARC-1 складається з власне процесора UltraSPARC-1, мікросхем синхронної статичної пам'яті (SRAM), використовуваних для побудови пам'яті тегів і даних зовнішнього кешу і двох кристалів буферів системних даних (UDB). UDB ізолюють зовнішній кеш процесора від іншої частини системи і забезпечують буферизацію даних для приходять і вихідних системних транзакцій, а також формування, перевірку контрольних розрядів і автоматичну корекцію даних (за допомогою ECC-кодів). Таким чином, UDB дозволяє інтерфейсу працювати на тактовій частоті процесора (за рахунок зниження ємнісний навантаження).

Порівняльні характеристики сучасних апаратних платформ

Ріс.6.7. Типовий процесорний модуль

Буфер даних забезпечує також поєднання в часі системних транзакцій з локальними транзакціями E-кешу. До складу процесора UltraSPARC-1 включена логіка управління буферними кристалами, яка забезпечує швидку пересилання даних між процесором або зовнішнім кешем і системою. Для підтримки системних транзакцій використовується окрема адресна шина і окремий набір керуючих сигналів.

Архітектура системної шини UPA

Висока продуктивність процесора UltraSPARC-1 зажадала створення гнучкої масштабованої архітектури межз'єднань, що дозволяє досить просто будувати системи для широкого кола додатків від невеликих настільних систем індивідуального користування до великих багатопроцесорних серверів масштабу підприємства. Нова архітектура UPA (Ultra Port Architecture) визначає можливості побудови цілого сімейства тісно пов'язаних багатопроцесорних систем зі спільною пам'яттю.

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

UPA може підтримувати велику кількість (малюнок 6.8) системних портів (32, 64, 128 і т.д.) і включає чотири типи інтерфейсу. Інтерфейс головного пристрою видає в систему межз'єднань транзакції читання / запису з фізичного адресою, використовуючи розподілений протокол арбітражу для управління адресною шиною. Головне пристрій UPA (наприклад, процесорний модуль UltraSPARC-1) може включати фізично адресується когерентну кеш-пам'ять, на розмір якої в загальному випадку не накладається ніяких обмежень. Інтерфейс підлеглого пристрою отримує транзакції читання / запису від головних пристроїв UPA, підтримуючи суворе упорядкування транзакцій одного і того ж класу головних пристроїв, а також транзакцій, що направляються по одному і тому ж адресою пристрою. Порт UPA може бути тільки підлеглим, наприклад, для підключення графічного буфера кадрів. Двома іншими додатковими інтерфейсами порту UPA є джерело переривання і обробник переривань. Джерела переривання UPA генерують пакети переривання, що направляються до обробникам переривань UPA.

Порівняльні характеристики сучасних апаратних платформ

Рис. 6.8. Швидка, архітекутра UPA

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

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

Розробники архітектури UPA багато зробили з метою мінімізації затримок доступу до даних. Наприклад, UPA підтримує роздільні шини адреси і даних. Саме ці широкі шини (адресна шина має ширину 64 біт (у відповідності зі специфікацією 64-бітової архітектури V9), а шина даних - 144 біт (128 біт даних і 16 біт для контролю помилок)) забезпечують пікову пропускну здатність системи. Наявність окремих шин дозволяє усунути затримки, що виникають при перемиканні поділюваної шини між даними і адресою, а також можливі конфлікти доступу до загальної шини.

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

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

Архітектура UPA легко адаптується для роботи майже з будь-якою конфігурацією системи (від однопроцесорній до масивно-паралельної). Розробниками були зроблені спеціальні зусилля з метою її оптимізації для систем, що містять від 1 до 4 процесорів. У результаті до чотирьох тісно пов'язаних процесорів і системний контролер можуть розділяти доступ до однієї і тієї ж системної адресній шині. Однак на базі багатого набору транзакцій і протоколу когерентності, які підтримуються пристроєм інтерфейсу пам'яті процесора UltraSPARC-1 можуть бути побудовані мультипроцесорні системи з великою кількістю процесорів. В архітектурі UPA застосовується протокол когерентності, побудований на основі операцій запису з анулюванням відповідних копій блоку в кеш-пам'яті інших процесорів системи і використовує для спостереження дубльовані теги. Процесор UltraSPARC підтримує переходи станів блоків кеш-пам'яті, відповідні протоколами MOESI, MOSI і MSI.

Слід зазначити, що в основу архітектури UPA покладені настільки гнучкі принципи, що вона дозволяє мати в системі не тільки декілька шин (мультиплексованих або роздільних), але і в широких межах варіювати розрядність шини даних для задоволення різних вимог до відношення вартість / продуктивність. При цьому в різних частинах системи залежно від конкретних вимог може використовуватися різна швидкість передачі даних. Наприклад, розрядність шини даних системи введення / висновку цілком може бути обмежена 64 бітами, але для узгодження з інтерфейсом процесора більш краща розрядність в 128 біт. З іншого боку, розрядність шини даних оперативної пам'яті системи може бути ще більш збільшена для забезпечення високої пропускної здатності при використанні більш повільних, але дешевших мікросхем пам'яті (у молодших моделях комп'ютерів на базі мікропроцесора UltraSPARC-1 використовується 256-бітова шина даних пам'яті, а в старших моделях - 512-бітова).

Набір графічних команд

UltraSPARC є першим універсальним процесором з 64-бітової архітектурою, що забезпечує високу пропускну спроможність, необхідну для реалізації високошвидкісний графіки та обробки відеозображень у реальному масштабі часу. Розширений набір команд UltraSPARC дозволяє швидко (за один такт) виконувати досить складні графічні операції, для реалізації яких зазвичай витрачається кілька десятків тактів. При цьому тільки три відсотки реальної площі кристала було витрачено для реалізації графічних команд. Висока продуктивність UltraSPARC і його здатність виконувати декомпресію і обробку відеоданих в реальному часі дозволяють у ряді випадку при побудові системи обійтися без спеціальних дорогих відеопроцесорів.

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

Спеціальний набір відеокоманд UltraSPARC (VIS - Video Instruction Set) надає широкі можливості обробки графічних даних: команди пакування та розпакування пікселів, команди паралельного додавання, множення та порівняння даних, представлених у кількох цілочисельних форматах, команди вирівнювання та злиття, обробки контурів зображень та адресації масивів . Ці графічні команди оптимізовані для роботи з малоразрядной целочисленной арифметикою, при використанні якої зазвичай виникають значні накладні витрати через необхідність частого перетворення цілочисельного формату у формат ПТ і назад. Можливість збільшення розрядності проміжних результатів забезпечує додаткову точність, необхідну для високоякісних графічних зображень. Всі операнди графічних команд знаходяться в регістрах ПТ, що забезпечує максимальну кількість регістрів для зберігання проміжних результатів обчислень і паралельне виконання команд.

UltraSPARC підтримує різні алгоритми компресії, використовувані для різноманітних відеопріложеній та обробки нерухомих зображень, включаючи H.261, MPEG-1, MPEG-2 і JPEG. Більш того, він може забезпечувати швидкості кодування і декодування, необхідні для організації відеоконференцій в реальному часі.

Перші системи на базі нового процесора

В даний час Sun випускає два типи настільних робочих станцій і серверів, оснащених процесорами UltraSPARC: Ultra 1 і Ultra 2 (рисунок 6.9). У моделях Ultra 1 використовуються процесори з тактовою частотою 143 і 167 МГц. При цьому вони комплектуються як стандартними відеоадаптерами TurboGX і TurboGXplus (моделі 140 і 170), так і новими потужними відеопідсистема Creator і Creator3D (модель 170Е), дозволяють нарощувати обсяг оперативної пам'яті до 512 Мбайт, внутрішніх дисків до 4.2 Гбайт і встановлювати накопичувачі на магнітній стрічці , флоппі-дисководи і зчитувальні пристрої з компакт-дисків. Ці системи забезпечують рівень продуктивності в 252 SPECint92 і 351 SPECfp92 при тактовій частоті 167 МГц. Моделі 170Е оснащуються контролерами Fast & Wide SCSI-2 і 100Base-T Ethernet.

Моделі Ultra 2 - це однопроцесорні і двопроцесорні системи на базі 200 МГц процесора UltraSPARC (332 SPECint92 і 505 SPECfp92), що мають максимальний об'єм оперативної пам'яті 1 Гбайт. Поява таких моделей, побудованих на процесорах UltraSPARC II (420 SPECint92 і 660 SPECfp92), очікується в середині 1996 року.

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

Порівняльні характеристики сучасних апаратних платформ

Рис. 6.9. Архітектура комп'ютерів Ultra 1 і Ultra 2

Процесори PA-RISC компанії Hewlett-Packard

Основою розробки сучасних виробів Hewlett-Packard є архітектура PA-RISC. Вона була розроблена компанією в 1986 році і з тих пір пройшла кілька стадій свого розвитку завдяки успіхам інтегральної технології від многокристального до однокристального виконання. У вересні 1992 року компанія Hewlett-Packard оголосила про створення свого суперскалярного процесора PA-7100, який з тих пір став основою побудови сімейства робочих станцій HP 9000 Series 700 і сімейства бізнес-серверів HP 9000 Series 800. В даний час є 33 -, 50 - і 99 МГц реалізації кристала PA-7100. Крім того випущені модифіковані, поліпшені за багатьма параметрами кристали PA-7100LC з тактовою частотою 64, 80 і 100 МГц, і PA-7150 з тактовою частотою 125 Мгц, а також PA-7200 з тактовою частотою 90 і 100 МГц. Компанія активно розробляє процесор наступного покоління HP 8000, які буде працювати з тактовою частотою 200 Мгц і забезпечувати рівень 360 одиниць SPECint92 і 550 одиниць SPECfp92. Поява цього кристала очікується в 1996 році. Крім того, Hewlett-Packard у співпраці з Intel планують створити новий процесор з дуже довгим командним словом (VLIW-архітектура), який буде сумісний як з сімейством Intel x86, так і сімейством PA-RISC. Випуск цього процесора планується на 1998 рік.

PA 7100

Особливістю архітектури PA-RISC є внекрістальная реалізація кешу, що дозволяє реалізувати різні обсяги кеш-пам'яті та оптимізувати конструкцію в залежності від умов застосування (малюнок 6.10). Зберігання команд і даних здійснюється в роздільних кешах, причому процесор з'єднується з ними за допомогою високошвидкісних 64-бітових шин. Кеш-пам'ять реалізується на високошвидкісних кристалах статичної пам'яті (SRAM), синхронізація яких здійснюється безпосередньо на тактовій частоті процесора. При тактовій частоті 100 МГц кожен кеш має смугу пропускання 800 Мбайт / с при виконанні операцій зчитування і 400 Мбайт / с при виконанні операцій запису. Мікропроцесор апаратно підтримує різний об'єм кеш-пам'яті: кеш команд може мати об'єм від 4 Кбайт до 1 Мбайт, кеш даних - від 4 Кбайт до 2 Мбайт. Щоб понизити коефіцієнт промахів застосовується механізм хешування адреси. В обох кешах для підвищення надійності застосовуються додаткові контрольні розряди, причому помилки кеша команд коригуються апаратними засобами.

Порівняльні характеристики сучасних апаратних платформ

Рис. 6.10. Блок-схема процесора PA 7100

Процесор під'єднується до пам'яті і підсистемі вводу / виводу за допомогою синхронної шини. Процесор може працювати з трьома різними відносинами внутрішньої і зовнішньої тактовою частоти в залежності від частоти зовнішньої шини: 1:1, 3:2 і 2:1. Це дозволяє використовувати в системах різні за швидкістю мікросхеми пам'яті.

Конструктивно на кристалі PA-7100 розміщені цілочисельний процесор, процесор для обробки чисел з плаваючою точкою, пристрій управління кешем, уніфікований буфер TLB, пристрій управління, а також ряд інтерфейсних схем. Цілочисельний процесор включає АЛУ, пристрій зсуву, суматор команд переходу, схеми перевірки кодів умов, схеми обходу, універсальний регістровий файл, регістри управління та регістри адресного конвеєра. Пристрій управління кеш-пам'яттю містить регістри, що забезпечують перезавантаження кеш-пам'яті при виникненні промахів і контроль когерентного стану пам'яті. Це пристрій містить також адресні регістри сегментів, буфер перетворення адреси TLB і апаратуру хешування, керуючу перезавантаженням TLB. До складу процесора плаваючою точки входять пристрій множення, арифметико-логічний пристрій, пристрій поділу та добування квадратного кореня, регістровий файл і схеми "закоротки" результату. Інтерфейсні пристрої включають всі необхідні схеми для зв'язку з кеш-пам'яттю команд і даних, а також з шиною даних. Узагальнений буфер TLB містить 120 рядків асоціативної пам'яті фіксованого розміру і 16 рядків змінного розміру.

Пристрій плаваючою точки (рисунок 6.11) реалізує арифметику з одинарною та подвійною точністю в стандарті IEEE 754. Його пристрій множення використовується також для виконання операцій цілочисельного множення. Пристрої поділу та обчислення квадратного кореня працюють з подвоєною частотою процесора. Арифметико-логічний пристрій виконує операції додавання, вирахування і перетворення форматів даних. Регістровий файл складається з 28 64-бітових регістрів, кожен з яких може використовуватися як два 32-бітових регістра для виконання операцій з плаваючою точкою одинарної точності. Регістровий файл має п'ять портів читання і три порти записи, які забезпечують одночасне виконання операцій множення, додавання і завантаження / запису.

Більшість поліпшень продуктивності процесора пов'язано зі збільшенням тактової частоти до 100 МГц у порівнянні з 66 МГц у його попередника.

Порівняльні характеристики сучасних апаратних платформ

Рис. 6.11. Управління командами плаваючою точки

Конвеєр цілочисельного пристрою включає шість ступенів: Читання з кеша команд (IR), Читання операндів (OR), Виконання / Читання з кеша даних (DR), Завершення читання кеша даних (DRC), Запис у регістри (RW) і Запис в кеш даних (DW). На щаблі ID виконується вибірка команд. Реалізація механізму видачі двох команд вимагає невеликого буфера попередньої вибірки, який забезпечує попередню вибірку команд за два такти до початку роботи щаблі IR. Під час виконання на щаблі OR всі виконавчі пристрої декодують поля операндів в команді і починають обчислювати результат операції. На щаблі DR цілочисельне пристрій завершує свою роботу. Крім того, кеш-пам'ять даних виконує читання, але дані не надходять до моменту завершення роботи щаблі DRC. Результати операцій додавання (ADD) і множення (MULTIPLY) також стають достовірними в кінці ступеня DRC. Запис в універсальні регістри та регістри плаваючої точки проводиться на щаблі RW. Запис в кеш даних командами запису (STORE) вимагає двох тактів. Найбільш раннє двотактне вікно команди STORE виникає на сходах RW і DW. Однак це вікно може зрушуватися, оскільки записи в кеш даних відбуваються тільки коли з'являється наступна команда запису. Операції ділення і обчислення квадратного кореня для чисел з плаваючою точкою закінчуються на багато тактів пізніше щаблі DW.

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

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

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

Кількість тактів, необхідне для запису слова чи подвійного слова командою STORE зменшено з трьох до двох тактів. У більш ранніх реалізаціях архітектури PA-RISC був потрібен один додатковий такт для читання тега кешу, щоб гарантувати попадання, а також для того, щоб об'єднати старі дані рядка кеш-пам'яті даних з записуваними даними. PA 7100 використовує окрему шину адресного тега, щоб поєднати за часом читання тега з записом даних попередньої команди STORE. Крім того, наявність окремих сигналів дозволу запису для кожного слова рядка кеш-пам'яті усуває необхідність об'єднання старих даних з новими, які надходять при виконанні команд записи слова чи подвійного слова. Цей алгоритм вимагає, щоб запис в мікросхеми SRAM відбувалася тільки після того, коли буде визначено, що даний запис супроводжується потраплянням в кеш і не викликає переривання. Це вимагає додаткового ступеня конвеєра між читанням тега і записом даних. Така конвейеризация не призводить до додаткових втрат тактів, оскільки в процесорі реалізовані спеціальні ланцюги обходу, що дозволяють направити відкладені дані команди запису наступним командам завантаження чи командам STORE, записуючим тільки частину слова. Для даного процесора втрати конвеєра для команд запису слова чи подвійного слова зведені до нуля, якщо безпосередньо подальша команда не є командою завантаження або запису. В іншому випадку втрати рівні одному такту. Втрати на запис частини слова можуть становити від нуля до двох тактів. Моделювання показує, що переважна більшість команд записи в дійсності працюють з однослівним або двухсловний форматом.

Всі операції з плаваючою точкою, за винятком команд поділу та обчислення квадратного кореня, повністю конвеєризований і мають двухтактну затримку виконання як в режимі з одинарною, так і з подвійною точністю. Процесор може видавати на виконання незалежні команди з плаваючою точкою в кожному такті при відсутності будь-яких втрат. Послідовні операції з залежностями по регістрах призводять до втрати одного такту. Команди поділу та обчислення квадратного кореня виконуються за 8 тактів при одиночній і за 15 тактів за подвійної точності. Виконання команд не зупиняється через команд поділу / обчислення квадратного кореня до тих пір, поки не буде потрібно регістр результату або не буде видаватися наступна команда поділу / обчислення квадратного кореня.

Процесор може виконувати паралельно одну цілочисельну команду і одну команду з плаваючою крапкою. При цьому "цілочисельними командами" вважаються і команди завантаження і запису регістрів плаваючою точки, а "команди плаваючою точки" включають команди FMPYADD і FMPYSUB. Ці останні команди об'єднують операцію множення з операціями додавання і віднімання відповідно, які виконуються паралельно. Пікова продуктивність складає 200 MFLOPS для послідовності команд FMPYADD, в яких суміжні команди незалежні по регістрах.

Втрати для операцій плаваючою точки, що використовують попередню завантаження операнда командою LOAD, складають один такт, якщо команди завантаження і плаваючої арифметики є суміжними, і два такту, якщо вони видаються для виконання одночасно. Для команди запису, що використовує результат операції з плаваючою точкою, втрати відсутні, навіть якщо вони виконуються паралельно.

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

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

При виконанні блочного копіювання даних у ряді випадків компілятор заздалегідь знає, що запис повинен здійснюватися в повний рядок кеш-пам'яті. Для оптимізації обробки таких ситуацій архітектура PA-RISC 1.1 визначає спеціальну кодування команд запису ("блочне копіювання"), яка показує, що апаратурі не потрібно здійснювати вибірку з пам'яті рядки, при зверненні до якої може відбутися промах кеш-пам'яті. У цьому випадку час звернення до кеша даних складається з часу, який потрібен для копіювання в пам'ять старої рядка кеш-пам'яті за тією ж адресою в кеші (якщо він "брудний") і часу, необхідного для запису нового тега кеша. У процесорі PA 7100 така можливість реалізована як для привілейованих, так і для непривілейованих команд.

Остання поліпшення управління кешем даних пов'язано з реалізацією семафорних операцій "завантаження з обнуленням" безпосередньо в кеш-пам'яті. Якщо семафорна операція виконується в кеші, то втрати часу при її виконанні не перевищують втрат звичайних операцій запису. Це не тільки скорочує конвеєрні втрати, але і знижує трафік шини пам'яті. В архітектурі PA-RISC 1.1 передбачений також інший тип спеціального кодування команд, який усуває вимога синхронізації семафорних операцій з пристроями вводу / виводу.

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

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

Конструкція процесора забезпечує реалізацію двох способів побудови багатопроцесорних систем. При першому способі кожен процесор під'єднується до інтерфейсного кристалу, який спостерігає за всіма транзакціями на шині основної пам'яті. У такій системі всі функції по підтримці когерентного стану кеш-пам'яті покладено на інтерфейсний кристал, який посилає процесору відповідні транзакції. Кеш даних побудований на принципах відкладеного зворотного копіювання і для кожного блоку кеш-пам'яті підтримуються біти стану "приватний" (private), "брудний" (dirty) і "достовірний" (valid), значення яких змінюються відповідно до транзакціями, які видає або приймає процесор.

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

Процесор підтримує ряд операцій, необхідних для поліпшення графічної продуктивності робочих станцій серії 700: блокові пересилання, Z-буфер-зацію, інтерполяцію квітів і команди пересилання даних з плаваючою точкою для обміну з простором введення / виводу.

Процесор побудований на базі технологічного процесу КМОП з проектними нормами 0.8 мікрон, що забезпечує тактову частоту 100 МГц.

PA 7200

Процесор PA 7200 має ряд архітектурних удосконалень у порівнянні з PA 7100, головними з яких є додавання другого цілочисельного конвеєра, побудова внутрікрістального допоміжного кеша даних та реалізація нового 64-бітового інтерфейсу з шиною пам'яті.

Процесор PA 7200, як і його попередник, забезпечує Суперскалярний режим роботи з одночасною видачею до двох команд в одному такті. Усі команди процесора можна розділити на три групи: цілочисельні операції, операції завантаження / запису та операції з плаваючою крапкою. PA 7200 здійснює одночасну видачу двох команд, що належать різним групам, або двох цілочисельних команд (завдяки наявності другого цілочисельного конвеєра з АЛУ і додаткових портів читання і запису в регістровому файлі). Команди переходу виконуються в целочисленном конвеєрі, причому ці переходи можуть становити пару для одночасної видачі на виконання тільки з попередньою командою.

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

У процесорі PA 7200 реалізований ефективний алгоритм попередньої вибірки команд, добре працює і на лінійних ділянках програм.

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

Допоміжний внутрішній кеш містить 64 32-байтові рядка. При зверненні до кеш-пам'яті здійснюється перевірка 65 тегів: 64-х тегів допоміжного кешу і одного тега зовнішнього кешу даних. При виявленні збігу дані направляються в необхідну функціональний пристрій.

При відсутності необхідної рядка в кеш-пам'яті проводиться її завантаження з основної пам'яті. При цьому рядок надходить до допоміжного кеш, що в ряді випадків дозволяє скоротити кількість перезавантажень зовнішньої кеш-пам'яті, організованої за принципом прямого відображення. Архітектурою нового процесора для команд завантаження / запису передбачено кодування спеціального ознаки локального розміщення даних ("spatial locality only"). При виконанні команд завантаження, помічених цим ознакою, відбувається звичайне заповнення рядка допоміжного кеша. Однак подальша запис рядка здійснюється безпосередньо в основну пам'ять минаючи зовнішній кеш даних, що значно підвищує ефективність роботи з великими масивами даних, для яких розміру рядка кеш-пам'яті з прямим відображенням виявляється недостатньо.

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

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

PA-8000

Процесор PA-8000 був анонсований в березні 1995 року на конференції COMPCON 95. Було оголошено, що показники його продуктивності будуть досягати 8.6 одиниць SPECint95 і 15 одиниць SPECfp95 для операцій цілочисельною і речової арифметики відповідно. В даний час цей дуже високий рівень продуктивності підтверджений випробуваннями робочих станцій і серверів, побудованих на базі цього процесора.

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

Висока продуктивність PA-8000 багато в чому визначається наявністю великого набору функціональних пристроїв, який включає в себе 10 виконавчих пристроїв: два арифметико-логічних пристрої (АЛП) для виконання цілочисельних операцій, два пристрої для виконання операцій зсуву / злиття даних, два пристрої для виконання множення / додавання чисел з плаваючою точкою, два пристрої поділу / обчислення квадратного кореня і два пристрої виконання операцій завантаження / запису.

Засоби позачергового виконання команд процесора PA-8000 забезпечують апаратне планування завантаження конвеєрів і краще використання функціональних пристроїв. У кожному такті на виконання можуть видаватися до чотирьох команд, які надходять в 56-рядковий буфер переупорядочивания. Цей буфер дозволяє підтримувати постійну зайнятість функціональних пристроїв і забезпечує ефективну мінімізацію конфліктів по ресурсах. Кристал може аналізувати всі 56 командних рядків одночасно і видавати в кожному такті по 4 готових для виконання команди в функціональні пристрої. Це дозволяє процесору автоматично виявляти паралелізм рівня виконання команд.

Суперскалярний процесор PA-8000 забезпечує повний набір засобів виконання 64-бітових операцій, включаючи адресну арифметику, а також арифметику з фіксованою і плаваючою крапкою. При цьому кристал повністю зберігає сумісність з 32-бітовими додатками. Це перший процесор, у якому реалізована 64-бітова архітектура PA-RISC. Він зберігає повну сумісність з попередніми і майбутніми реалізаціями PA-RISC.

Кристал виготовлений за 0.5-мікронної КМОП технології з напругою живлення 3.3 В і можна розраховувати на подальше зменшення розмірів елементів у майбутньому.

Особливості архітектури MIPS компанії MIPS Technology

Архітектура MIPS була однією з перших RISC-архітектур, що отримала визнання з боку промисловості. Вона була анонсована в 1986 році. Спочатку це була повністю 32-бітова архітектура, яка включала 32 регістри загального призначення, 16 регістрів плаваючою точки і спеціальну пару регістрів для зберігання результатів виконання операцій цілочисельного множення і ділення. Розмір команд складав 32 біт, у ній підтримувався лише один метод адресації, і користувальницьке адресний простір також визначалося 32 бітами. Виконання арифметичних операцій регламентувалося стандартом IEEE 754. У комп'ютерній промисловості широку популярність придбали 32-бітові процесори R2000 і R3000, які протягом досить тривалого часу були основою для побудови робочих станцій і серверів компаній Silicon Graphics, Digital, Siemens Nixdorf та ін Процесори R3000/R3010 працювали на тактовій частоті 33 або 40 МГц і забезпечували продуктивність на рівні 20 SPECint92 і 23 SPECfp92.

Потім на зміну мікропроцесорах сімейства R3000 прийшли нові 64-бітові мікропроцесори R4000 і R4400. (MIPS Technology була першою компанією випустила процесори з 64-бітової архітектурою). Набір команд цих процесорів (специфікація MIPS II) було розширено командами завантаження і запису 64-розрядних чисел з плаваючою точкою, командами обчислення квадратного кореня з одинарною та подвійною точністю, командами умовних переривань, а також атомарними операціями, необхідними для підтримки мультипроцесорних конфігурацій. У процесорах R4000 і R4400 реалізовані 64-бітові шини даних і 64-бітові регістри. У цих процесорах застосовується метод подвоєння внутрішньої тактової частоти.

Процесори R2000 і R3000 мали стандартні п'ятиступінчасті конвеєри команд. У процесорах R4000 і R4400 застосовуються більш довгі конвеєри (іноді їх називають суперконвейерамі). Кількість ступенів в процесорах R4000 і R4400 збільшилася до восьми, що пояснюється насамперед збільшенням тактової частоти і необхідністю розподілу логіки для забезпечення заданої пропускної спроможності конвеєра. Процесор R4000 може працювати з тактовою частотою 50/100 МГц і забезпечує рівень продуктивності в 58 SPECint92 і 61 SPECfp92. Процесор R4400 може працювати на частоті 50/100 МГц, або 75/150 МГц, показуючи рівень продуктивності 94 SPECint92 і 105 SPECfp92.

Внутрішня кеш-пам'ять процесора R4000 має ємність 16 Кбайт. Вона розділена на 8-Кб кеш команд і 8-Кб кеш даних. З точки зору реалізації кеш-пам'яті процесор R4400 має більш розвинені можливості. Він випускається в трьох модифікаціях: PC (Primary Cashe) - має внутрішні кеші команд і даних ємністю по 16 Кбайт. Процесор у такій конфігурації призначений головним чином для дешевих моделей робочих станцій. SC (Secondary Cashe) містить логіку управління кеш-пам'яттю другого рівня. MC (Multiprocessor Cashe) - використовує спеціальні алгоритми забезпечення когерентності та узгодженого стану пам'яті для багатопроцесорних конфігурацій.

У середині 1994 року компанія MIPS анонсувала процесор R8000, який перш за все був орієнтований на наукові прикладні задачі з інтенсивним використанням операцій з плаваючою крапкою. Цей процесор побудований на двох кристалах (випускається у вигляді многокристального збірки) і являє собою першу суперскалярную реалізацію архітектури MIPS. Теоретична пікова продуктивність процесора для тактової частоти 75 МГц становить 300 MFLOPs (до чотирьох команд і шести операцій з плаваючою крапкою в кожному такті). Реалізація великий кеш-пам'яті даних ємністю 16 Мбайт, високої пропускної здатності доступу до даних (до 1.2 Гбайт / с) у поєднанні з високою швидкістю виконання операцій дозволяє R8000 досягати 75% теоретичної продуктивності навіть при вирішенні великих завдань типу LINPACK з розмірами матриць 1000x1000 елементів. Апаратні засоби підтримки когерентного стану кеш-пам'яті разом із засобами розпаралелювання компіляторів забезпечують можливість побудови високопродуктивних симетричних багатопроцесорних систем. Наприклад, процесори R8000 використовуються в системі Power Challenge компанії Silicon Graphics, яка цілком може зрівнятися за продуктивністю з відомими суперкомп'ютерами Cray Y-MP, має на порядок нижчу вартість і пред'являє значно менші вимоги до підсистем харчування й охолодження. У однопроцесорному виконанні ця система забезпечує продуктивність на рівні 310 SPECfp92 і 265 MFLOPs на пакеті LINPACK (1000x1000).

У 1994 році MIPS Technology оголосила також про створення свого нового суперскалярного процесора R10000, початок масового постачання якого очікувалося в кінці 1995 року. За заявами представників MIPS Technology R10000 забезпечує пікову продуктивність в 800 MIPS при роботі з внутрішньою тактовою частотою 200 МГц за рахунок забезпечення видачі для виконання чотирьох команд у кожному такті синхронізації. При цьому він забезпечує обмін даними з кеш-пам'яттю другого рівня зі швидкістю 3.2 Гбайт / с.

Порівняльні характеристики сучасних апаратних платформ

Рис. 6.12. Блок-схема мікропроцесора R10000

Щоб забезпечити такий високий рівень продуктивності в процесорі R10000 реалізовано багато останні досягнення в галузі технології та архітектури процесорів. На малюнку 6.12 показана блок-схема цього мікропроцесора.

Ієрархія пам'яті

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

Кеш-пам'ять даних першого рівня

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

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

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

При виявленні промаху при зверненні до кеш-пам'яті даних її робота не блокується, тобто вона може продовжувати обслуговування наступних запитів. Це особливо корисно для зменшення такого важливого показника якості реалізованої архітектури як середнє число тактів на команду (CPI - clock cycles per instruction). На малюнку 6.13 представлені результати моделювання роботи R10000 на декількох програмах тестового пакету SPEC. Для кожного тесту дані два результати: з блокуванням кеш-пам'яті даних при виявленні промаху (вгорі) і дійсне значення CPI R10000 (внизу). Виділена більш темним кольором права область відповідає часу, втраченого через промахи кеш-пам'яті. Верхній результат відображає повну затримку у разі, якщо б всі операції з перезавантаження кеш-пам'яті виконувалися строго послідовно. Таким чином, стрілка представляє втрати часу, які виникають в блокується кеші. Ефект застосування неблокіруемой кеш-пам'яті сильно залежить характеристик самих програм. Для невеликих тестів, робочі набори яких повністю поміщаються в кеш-пам'яті першого рівня, цей ефект не великий. Однак для більш реальних програм, подібних тесту tomcatv або важкого для кеш-пам'яті тесту comdivss, виграш виявляється істотним.

Порівняльні характеристики сучасних апаратних платформ

Рис. 6.13. Моделювання роботи R10000 на кількох компонентах пакету SPEC

Кеш-пам'ять другого рівня

Інтерфейс кеш-пам'яті другого рівня процесора R10000 підтримує 128-бітове магістраль даних, яка може працювати з тактовою частотою до 200 МГц, забезпечуючи швидкість обміну до 3.2 Гбайт / с (для зниження вимог до швидкодії мікросхем пам'яті передбачена також можливість розподілу частоти з коефіцієнтами 1.5, 2, 2.5 і 3). Всі стандартні синхронні сигнали управління статичної пам'яттю виробляються всередині процесора. Не потрібно ніяких зовнішніх інтерфейсних схем. Мінімальний об'єм кеш-пам'яті другого рівня становить 512 Кбайт, максимальний розмір - 16 Мбайт. Розмір рядки цієї кеш-пам'яті програмується і може складати 64 або 128 байт.

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

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

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

Кеш-пам'ять команд

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

Обробка команд переходу

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

Конфлікти з управління можуть викликати навіть великі втрати продуктивності суперскалярного процесора, ніж конфлікти за даними. За статистикою серед команд управління, які змінюють значення лічильника команд, переважають команди умовного переходу. Таким чином, зниження втрат від умовних переходів стає критично важливим питанням. Є декілька методів скорочення припинень конвеєра, що виникають із-за затримок виконання умовних переходів. У процесорі R10000 використовуються два найбільш потужних методу динамічної оптимізації виконання умовних переходів: апаратне прогнозування напрями умовних переходів і "виконання за припущенням" (speculation).

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

Напрямок умовного переходу прогнозується за допомогою спеціальної пам'яті (branch history table) ємністю 512 рядків, яка зберігає історію виконання переходів у минулому. Звернення до цієї таблиці здійснюється за допомогою адреси команди під час її вибірки. Двухбітовий код прогнозу в цій пам'яті оновлюється кожного разу, коли прийнято остаточне рішення про направлення переходу. Моделювання показало, що точність двухбітовой схеми прогнозування для тестового пакету програм SPEC становить 87%.

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

Структура черг команд

Процесор R10000 містить три черги (буфера) команд (черга цілочисельних команд, черга команд плаваючою точки та адресну черга). Ці три черги здійснюють динамічну видачу команд у відповідні виконавчі пристрої. З кожною командою в черзі зберігається тег команди, що переміщується разом з командою сходами конвеєра. Кожна черга здійснює динамічне планування потоку команд і може визначити моменти часу, коли стають доступними операнди, необхідні для виконання кожної команди. Крім того, черга визначає порядок виконання команд на основі аналізу стану відповідних виконавчих пристроїв. Як тільки ресурс виявляється вільним чергу видає команду у відповідне виконавчий пристрій.

Черга цілочисельних команд

Черга цілочисельних команд містить 16 рядків і видає команди в два арифметико-логічних пристрої. Цілочисельні команди надходять у вільні рядки цієї черги, причому в кожному такті в неї можуть записуватися до 4 команд. Цілочисельні команди залишаються в черзі до тих пір, поки вони не будуть видані в одне з АЛП.

Черга команд плаваючою точки

Черга команд плаваючою точки також містить 16 рядків і видає команди у виконавчі пристрої додавання і множення з плаваючою точкою. Команди плаваючою точки надходять у вільні рядки черги, причому в кожному такті в неї можуть записуватися до 4 команд. Команди залишаються в черзі до тих пір, поки вони не будуть видані в одне з виконавчих пристроїв. Черга команд плаваючою точки містить також логіку управління команд типу "помножити-скласти". Ця команда спочатку направляється в пристрій множення, а потім прямо в пристрій складання.

Адресна чергу

Черга адресних команд видає команди в пристрій завантаження / запису і містить 16 рядків. Черга організована у вигляді циклічного буфера FIFO (first-in first-out). Команди можуть видаватися в довільному порядку, але повинні записуватися в чергу і вилучатися з неї строго послідовно. У кожному такті в чергу можуть надходити до 4 команд. Буфер FIFO підтримує первісну послідовність команд, що спрощує виявлення залежностей за адресами. Виконання виданої команди може не закінчитися при виявленні залежності за адресами, кеш-промаху або конфлікту по ресурсах. У цих випадках адресна чергу повинна заново повторювати видачу команди до тих пір, поки її виконання не завершиться.

Перейменування регістрів

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

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

У процесі виконання програми генерується безліч тимчасових реєстрових результатів. Ці тимчасові значення записуються в реєстрові файли разом з постійними значеннями. Тимчасове значення стає новим постійним значенням, коли завершується виконання команди (фіксується її результат). У свою чергу, завершення виконання команди відбувається коли всі попередні команди успішно завершилися в заданому програмою порядку. Програміст (або компілятор) має справу тільки з логічними регістрами. Реалізація фізичних регістрів від нього прихована.

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

Реалізована в мікропроцесорі R10000 схема відображення команд складається з двох таблиць відображення, списку активних команд і двох списків вільних регістрів (для цілочисельних команд і команд плаваючою точки є окремі таблиці відображення і списки вільних регістрів). Щоб підтримувати послідовний порядок завершення виконання команд, існує тільки один список активних команд, який містить як цілочисельні команди, так і команди плаваючою точки.

Мікропроцесор R10000 містить по 64 фізичних регістра (цілочисельних і плаваючою точки). У будь-який момент часу значення фізичного регістру міститься в одному із зазначених вище списків. На малюнку 6.14 показана спрощена блок-схема відображення цілочисельних команд.

Порівняльні характеристики сучасних апаратних платформ

Рис. 6.14. Спрощена блок-схема відображення цілочисельних команд

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

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

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

Коли в процесі перейменування зі списку вільних регістрів вибирається черговий номер фізичної регістра, він передається в таблицю відображення, яка оновлюється. При цьому старий номер регістра, що відповідає певному в команді логічного регістру результату, поміщається з таблиці відображення в список активних команд. Цей номер залишається в списку активних команд до тих пір, поки відповідна команда не "випустити" (graduate), тобто завершиться в заданому програмою порядку. Команда може "випустити" тільки після того, як успішно завершиться виконання всіх попередніх команд.

Мікропроцесор R10000 містить 64 фізичних і 32 логічних цілочисельних регістру. Список активних команд може містити максимально 32 елемента. Список вільних регістрів також може максимально містити 32 значення. Якщо список активних команд повний, то можуть бути 32 "зафіксованих" і 32 тимчасових значення. Звідси потреба в 64 регістрах.

Виконавчі пристрої

У процесорі R10000 є п'ять повністю незалежних виконавчих пристроїв: два цілочисельних АЛУ, два основних пристрої плаваючою точки з двома вторинними пристроями плаваючою точки, які працюють з довгими операціями ділення і обчислення квадратного кореня, а також пристрій завантаження / запису.

Цілочисельні АЛП

У мікропроцесорі R10000 є два цілочисельних АЛУ: АЛУ1 і АЛУ2. Час виконання всіх цілочисельних операцій АЛУ (за винятком операцій множення і ділення) і частота повторень складають один такт.

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

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

Цілочисельні операції множення виробляють твір з подвійною точністю. Для операцій з одинарною точністю відбувається поширення знака результату до 64 біт перш, ніж він буде поміщений в регістри EntryHi і EntryLo. Час виконання операцій з подвійною точністю приблизно в два рази перевершує час виконання операцій з одинарною точністю.

Пристрої плаваючою точки

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

Час виконання команд складання, вирахування і перетворення типів дорівнює двом тактів, а швидкість їх надходження до пристрій становить 1 команда / такт. Ці команди обробляються в пристрої складання. Команди перетворення цілочисельних значень в значення з плаваючою точкою з одноразовою точністю мають затримку в 4 такту, оскільки вони повинні пройти через пристрій складання двічі.

У пристрої множення обробляються всі операції множення з плаваючою точкою. Час їх виконання становить два такти, а швидкість надходження - 1 команда / такт. Пристрої поділу та обчислення квадратного кореня виконують операції з використанням ітераційних алгоритмів. Ці пристрої не конвеєризований і не можуть почати виконання наступної операції до тих пір, поки не завершилося виконання поточної команди. Таким чином, швидкість повторення цих операцій приблизно дорівнює затримки їх виконання. Порти помножувача є спільними і для пристроїв поділу та обчислення квадратного кореня. На початку і в кінці операції втрачається по одному такту (для вибірки операндів і для запису результату).

Операція з плаваючою точкою "помножити-скласти", яка в обчислювальних програмах виникає досить часто, виконується з використанням двох окремих операцій: операції множення і операції додавання. Команда "помножити-скласти" (MADD) має затримку 4 такти, і швидкість повторення 1 команда / такт. Ця складова команда збільшує продуктивність за рахунок усунення вибірки й декодування додаткової команди.

Пристрої поділу та обчислення квадратного кореня використовують роздільні ланцюга і можуть працювати одночасно. Однак чергу команд плаваючою точки не може видати для виконання обидві команди в одному і тому ж такті.

Пристрій завантаження / запису і TLB

Пристрій завантаження / запису містить чергу адрес, пристрій обчислення адреси, пристрій перетворення віртуальних адрес у фізичні (TLB), стек адрес, буфер запису і кеш-пам'ять даних першого рівня. Пристрій завантаження / запису виконує команди завантаження, записи, попередньої вибірки, а також команди роботи з кеш-пам'яттю.

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

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

TLB містить 64 рядки і виконує перетворення ВА у фізичну. Віртуальний адресу для перетворення поступає або з пристрою обчислення адреси, або з лічильника команд.

Інтерфейс кеш-пам'яті другого рівня

Зовнішня кеш-пам'ять другого рівня управляється за допомогою внутрішнього контролера, який має спеціальний порт для підключення кеш-пам'яті. Спеціальна магістраль даних шириною в 128 біт здійснює пересилання даних на внутрішній тактовій частоті процесора 200 МГц, забезпечуючи максимальну швидкість передачі даних кеш-пам'яті другого рівня 3.2 Гбайт / с. У процесорі є також 64-бітова шина даних системного інтерфейсу.

Кеш-пам'ять другого рівня має двоканальну множинно-асоціативну організацію. Максимальний розмір цієї кеш-пам'яті - 16 Мбайт. Мінімальний розмір - 512 Кбайт. Пересилання здійснюються 128-бітовими порціями (4 32-бітових слова). Для пересилання великих блоків даних використовуються послідовні цикли шини:

Четирехсловние звернення (128 біт) використовуються для команд кеш-пам'яті (CASHE); Восьмісловние звернення (256 біт) використовуються для перезавантаження первинного кеша даних; Шестнадцатісловние звернення (512 біт) використовуються для перезавантаження первинного кеша команд; Трідцатідвухсловние звернення (1024 біт) використовуються для перезавантаження кеш-пам'яті другого рівня.

Системний інтерфейс

Системний інтерфейс процесора R10000 працює в якості шлюзу між самим процесором, пов'язаним з ним кешем другого рівня і рештою системи. Системний інтерфейс працює з тактовою частотою зовнішньої синхронізації (SysClk). Можливе програмування роботи системного інтерфейсу на тактовій частоті 200, 133, 100, 80, 67, 57 і 50 МГц. Всі виходи і входи системного інтерфейсу синхронізуються наростаючим фронтом сигналу SysClk, дозволяючи йому працювати на максимально можливої ​​тактовій частоті.

У більшості мікропроцесорних систем в кожен момент часу може відбуватися тільки одна системна транзакція.

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

Порівняльні характеристики сучасних апаратних платформ

Рис. 6.15. Побудова багатопроцесорної системи на базі кластерної шини

Підтримка багатопроцесорної організації

Процесор R10000 допускає два способи організації багатопроцесорної системи. Один із способів пов'язаний зі створенням спеціального зовнішнього інтерфейсу (агента) для кожного процесора системи. Цей інтерфейс зазвичай реалізується за допомогою замовний інтегральної схеми, яка організовує шлюз до основної пам'яті і підсистемі введення / виводу. При такому типі з'єднань процесори не пов'язані один з одним безпосередньо, а взаємодіють через цей спеціальний інтерфейс. Хоча така реалізація загальноприйнята, її вартість, а також загальна складність системи досить високі. (Оскільки принаймні один зовнішній агент повинен супроводжувати кожен процесор.

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

На додаток до 64-бітової мультиплексированной шини адреси / даних є двухбітовая шина станів, яка використовується для видачі відповідей про стан процесорної когерентності. Крім того, використовується 5-бітова шина системних відповідей зовнішнім агентом для видачі зовнішніх відповідей підтвердження. На малюнку 6.15 показана блок-схема конфігурації кластерної шини.

Особливості архітектури Alpha компанії DEC

В даний час сімейство мікропроцесорів з архітектурою Alpha представлено декількома кристалами, що мають різні діапазони продуктивності, що працюють з різною тактовою частотою і розсіюють різну потужність.

Першим на ринку з'явився 64-розрядний мікропроцесор Alpha (DECchip двадцять одна тисяча шістьдесят-чотири). Він являє собою RISC-процесор у однокристальним виконанні, до складу якого входять пристрої цілочисельною і плаваючої арифметики, а також кеш-пам'ять ємністю 16 Кб. Кристал проектувався з урахуванням реалізації передових методів збільшення продуктивності, включаючи конвеєрну організацію всіх функціональних пристроїв, одночасну видачу декількох команд для виконання, а також засоби організації симетричної багатопроцесорної обробки.

У кристалі є два реєстрових файлу по 32 64-бітових регістра: один для цілих чисел, другий - для чисел з плаваючою крапкою. Для забезпечення сумісності з архітектурою MIPS і VAX архітектура Alpha підтримує арифметику з одинарною та подвійною точністю як відповідно до стандарту IEEE 754, так і у відповідності з внутрішнім для компанії стандартом арифметики VAX.

Найпотужніша модель процесора 21064 працює на частоті 200 МГц. В кінці 1993 року з'явилася модернізована версія кристала - модель 21064А, що має на кристалі кеш-пам'ять подвоєного об'єму і працює з тактовою частотою 275 МГц.

Потім були випущені моделі 21066 і 21068, що оперують на частоті 166 і 66 МГц. Відмінною особливістю цієї гілки процесорів Alpha є реалізація на кристалі шини PCI. Це істотно спрощує і здешевлює як проектування, так і виробництво комп'ютерів. Відмітна особливість моделі 21068 - низька споживана потужність (близько 8 ват). Основне призначення цих двох нових моделей - персональні комп'ютери і одноплатні ЕОМ.

На малюнку 6.16 представлена ​​блок-схема мікропроцесора 21066. Основними компонентами цього процесора є: кеш-пам'ять команд, цілочисельне пристрій, пристрій плаваючою точки, пристрій виконання команд завантаження / запису, кеш-пам'ять даних, а також контролер пам'яті і контролер вводу / виводу.

Порівняльні характеристики сучасних апаратних платформ

Рис. 6.16. Основні компоненти процесора Alpha 21066

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

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

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

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

Порівняльні характеристики сучасних апаратних платформ

Рис. 6.17. Приклад побудови системи на базі мікропроцесора Alpha 21066

Швидкісна шина PCI має ряд привабливих властивостей. Крім можливості роботи з прямим доступом до пам'яті і програмованим вводом / виводом вона допускає спеціальні конфігураційні цикли, розширюваність до 64 біт, компоненти, що працюють з живлячими напругами 3.3 і 5 В, а також більш швидке тактирование. Базова реалізація шини PCI підтримує мультиплексування адреси і даних і працює на частоті 33 МГц, забезпечуючи максимальну швидкість передачі даних 132 Мбайт / с. Шина PCI безпосередньо управляється мікропроцесором. На малюнку 6.17 показані деякі високошвидкісні периферійні пристрої: графічні адаптери, контролери SCSI і мережеві адаптери, підключені безпосередньо до шини PCI. Мостова мікросхема інтерфейсу ISA дозволяє підключити до системи низькошвидкісні пристрої типу модему, флоппі-дисководу і т.д.

В даний час випущена модернізована версія цього мікропроцесора. Як і його попередник, новий кристал Alpha 21066A крім інтерфейсу PCI містить на кристалі інтегрований контролер пам'яті і графічний акселератор. Ці характеристики дозволяють значно знизити вартість реалізації систем, що базуються на Alpha 21066A, і забезпечують простий і дешевий доступ до зовнішньої пам'яті і периферійних пристроїв. Alpha 21066A має дві модифікації згідно з частотою: 100 МГц і 233 МГц. Модель з 233 МГц забезпечує продуктивність 94 і 100 одиниць, відповідно, за тестами SPECint92 і SPECfp92.

Новітній мікропроцесор Alpha 21164 представляє собою другу повністю нову реалізацію архітектури Alpha. Мікропроцесор 21164, представлений у вересні 1994 року, забезпечує продуктивність 330 і 500 одиниць, відповідно, за шкалами SPECint92 і SPECfp92 або близько 1200 MIPS і виконує до чотирьох інструкцій за такт. На кристалі мікропроцесора 21164 розміщено близько 9,3 мільйона транзисторів, більшість з яких утворюють кеш. Кристал побудований на базі 0.5 микронной КМОП технології компанії DEC. Він збирається в 499-контактні корпусу PGA (при цьому 205 контактів відводяться під розведення живлення та землі) і розсіює 50 Вт при напрузі 3.3 В на частоті 300 МГц.

Перехід у 1996 році на 0.35 мікронну КМОП технологію привів до можливості подальшого збільшення тактової частоти і продуктивності процесора. В даний час процесори 21164 випускаються з тактовою частотою 366 МГц (11.3 SPECint95, 15.4 SPECfp95) і 433 МГц (13.3 SPECint95, 18.3 SPECfp95). В кінці 1996 року почнуться масові поставки 21164 з тактовою частотою 500 МГц (15.4 SPECint95, 21.1 SPECfp95). Таким чином, компанія DEC в даний час має найпотужніші процесори, пікова продуктивність яких становить 2 мільярди операцій за секунду.

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

Порівняльні характеристики сучасних апаратних платформ

Порівняльні характеристики сучасних апаратних платформ

Рис. 6.18. Блок-схема процесора Alpha 21164

На малюнку 6.18 представлена ​​блок-схема процесора, який включає п'ять функціональних пристроїв: пристрій керування потоком команд (IBOX), цілочисельне пристрій (EBOX), пристрій плаваючою точки (FBOX), пристрій управління пам'яттю (MBOX) і пристрій управління кеш-пам'яттю та інтерфейсом шини (CBOX). На малюнку також показано три розташованих на кристалі кеш-пам'яті. Кеш-пам'ять команд і кеш-пам'ять даних являють собою первинні кеші, реалізують пряме відображення. Множинно-асоціативна кеш-пам'ять другого рівня призначена для зберігання команд і даних. Довжина конвеєрів процесора 21164 варіюється від 7 ступенів для виконання цілочисельних команд і 9 ступенів для реалізації команд з плаваючою точкою до 12 сходинок при виконанні команд звернення до пам'яті в межах кристала і змінного числа ступенів при виконанні команд звернення до пам'яті за межами кристалу.

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

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

Пристрій плаваючою точки складається з двох конвеєрних виконавчих пристроїв: конвеєра складання, який виконує всі команди плаваючою точки, за винятком команд множення, і конвеєр множення, який виконує команди множення з плаваючою точкою. Два спеціальних конвеєра завантаження і один конвеєр запису даних дозволяють командам завантаження / запису виконуватися паралельно з виконанням операцій з плаваючою крапкою. Апаратно підтримуються всі режими округлення, передбачені стандартами IEEE і VAX.

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

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

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

Особливості архітектури POWER компанії IBM і PowerPC компаній Motorola, Apple та IBM

Як вже було зазначено, одним з розробників фундаментальної концепції RISC-архітектури був Джон Кук з Дослідницького центру IBM ім. Уотсона, який у середині 70-х проводив дослідження в цьому напрямку і побудував мінікомп'ютер IBM 801, який так ніколи і не з'явився на ринку. Подальший розвиток цих ідей в компанії IBM знайшло відображення при розробці архітектуру POWER в кінці 80-х. Архітектура POWER (і її піднапрями POWER2 і PowerPC) в даний час є основою сімейства робочих станцій і серверів RISC System / 6000 компанії IBM.

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

Архітектура POWER

Архітектура POWER у багатьох відношеннях являє собою традиційну RISC-архітектуру. Вона дотримується найбільш важливих відмінних особливостей RISC: фіксованої довжини команд, архітектури регістр-регістр, простих способів адресації, простих (не вимагають інтерпретації) команд, великого реєстрового файлу і трехоперандного (неруйнівного) формату команд. Однак архітектура POWER має також кілька додаткових властивостей, які відрізняють її від інших RISC-архітектур.

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

По-друге, архітектура POWER розширена кількома "змішаними" командами для скорочення часів виконання. Можливо єдиним недоліком технології RISC в порівнянні з CISC, є те, що іноді вона використовує більшу кількість команд для виконання одного і того ж завдання. Було виявлено, що в багатьох випадках збільшення розміру коду можна уникнути шляхом невеликого розширення набору команд, яке зовсім не означає повернення до складних командам, подібним командам CISC. Наприклад, значна частина збільшення програмного коду була виявлена ​​в кодах прологу і епілогу, пов'язаних із збереженням і відновленням регістрів під час виклику процедури. Щоб усунути цей чинник IBM ввела команди "груповий завантаження і записи", які забезпечують пересилання декількох регістрів в / з пам'яті за допомогою єдиної команди. Угоди про зв'язки, що використовуються компіляторами POWER, розглядають задачі планування, колективні бібліотеки та динамічне зв'язування як простий, єдиний механізм. Це було зроблено за допомогою непрямої адресації за допомогою таблиці вмісту (- Table Of Contents), яка модифікується під час завантаження. Команди груповий завантаження і записи були важливим елементом цих угод про зв'язки.

Іншим прикладом змішаних команд є можливість модифікації базового регістра знову обчисленими ефективним адресою при виконанні операцій завантаження чи запису (аналог автоінкрементні адресації). Ці команди усувають необхідність виконання додаткових команд складання, які в іншому випадку було б потрібно для инкрементирования індексу при зверненнях до масивів. Хоча це змішана операція, вона не заважає роботі традиційного RISC-конвеєра, оскільки модифікований адреса вже вирахувано і порт запису реєстрового файлу під час очікування операції з пам'яттю вільний.

Архітектура POWER забезпечує також кілька інших способів скорочення часу виконання команд такі як: великий набір команд для маніпуляції бітовими полями, змішані команди множення-складання з плаваючою точкою, установку регістру умов в якості побічного ефекту нормального виконання команди і команди завантаження і запису рядків (які працюють з довільно вирівняними рядками байтів).

Третім чинником, який відрізняє архітектуру POWER від багатьох інших RISC-архітектур, є відсутність механізму "затриманих переходів". Зазвичай цей механізм забезпечує виконання команди, наступної за командою умовного переходу, перед виконанням самого переходу. Цей механізм ефективно працював в ранніх RISC-машинах для заповнення "бульбашки", що з'являється при оцінці умов для вибору напрямку переходу та вибірки нового потоку команд. Однак у більш просунутих, суперскалярні машинах, цей механізм може виявитися неефективним, оскільки один такт затримки команди переходу може призвести до появи кількох "бульбашок", які не можуть бути покриті за допомогою одного архітектурного слота затримки. Майже всі такі машини, щоб усунути вплив цих "бульбашок", змушені вводити додаткове устаткування (наприклад, кеш-пам'ять адрес переходів). У таких машинах механізм затриманих переходів стає не тільки мало ефективним, а й привносить значну складність в логіку обробки послідовності команд. Замість цього архітектура переходів POWER була організована для підтримки методики "попереднього перегляду умовних переходів" (branch-lockahead) і методики "згортання переходів" (branch-folding).

Методика реалізації умовних переходів, використовується в архітектурі POWER, є четвертим унікальною властивістю в порівнянні з іншими RISC-процесорами. Архітектура POWER визначає розширені властивості регістру умов. Проблема архітектур з традиційним регістром умов полягає в тому, що установка бітів умов як побічного ефекту виконання команди, ставить серйозні обмеження на можливість компілятора змінити порядок проходження команд. Крім того, регістр умов представляє собою єдиний архітектурний ресурс, що створює серйозне вузьке горло в машині, яка паралельно виконує кілька команд або виконує команди не в порядку їх появи в програмі. Деякі RISC-архітектури оминають цю проблему шляхом повного виключення зі свого складу регістру умов і вимагають установки коду умов за допомогою команд порівняння в універсальний регістр, або шляхом включення операції порівняння в саму команду переходу. Останній підхід потенційно перевантажує конвеєр команд при виконанні переходу. Тому архітектура POWER замість того, щоб виправляти проблеми, пов'язані з традиційним підходом до регістру умов, пропонує: a) наявність спеціального біта в коді операції кожної команди, що робить модифікацію регістру умов додатковою можливістю, і тим самим відновлює здатність компілятора реорганізувати код, і b ) кілька (вісім) регістрів умов для того, щоб обійти проблему єдиного ресурсу і забезпечити більшу кількість імен регістру умов так, що компілятор може розмістити і розподілити ресурси регістру умов, як він це робить для універсальних регістрів.

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

Перша реалізація архітектури POWER з'явилася на ринку в 1990 році. З тих пір компанія IBM представила на ринок ще дві версії процесорів POWER2 і POWER2 +, що забезпечують підтримку кеш-пам'яті другого рівня і мають розширений набір команд.

За даними IBM процесор POWER вимагає менше одного такту для виконання однієї команди в порівнянні з приблизно 1.25 такту у процесора Motorola 68040, 1.45 такту у процесора SPARC, 1.8 такту у Intel i486DX і 1.8 такту Hewlett-Packard PA-RISC. Тактова частота архітектурного низки залежно від моделі змінюється від 25 МГц до 62 МГц.

Процесори POWER працюють на частоті 33, 41.6, 45, 50 і 62.5 МГЦ. Архітектура POWER включає роздільне кеш-пам'ять команд та даних (за винятком робочих станцій і серверів робочих груп початкового рівня, які мають однокристальних реалізацію процесора POWER і загальну кеш-пам'ять команд та даних), 64 - або 128-бітову шину пам'яті і 52-бітовий віртуальний адресу. Вона також має інтегрований процесор плаваючою точки і таким чином добре підходить для додатків з інтенсивними обчисленнями, типовими для технічного середовища, хоча поточна стратегія RS/6000 націлена як на комерційні, так і на технічні додатки. RS/6000 показує хорошу продуктивність на плаваючій точці: 134.6 SPECp92 для POWERstation / Powerserver 580. Це менше, ніж рівень моделей Hewlett-Packard 9000 Series 800 G/H/I-50, які досягають рівня 150 SPECfp92.

Для реалізації швидкої обробки вводу / виводу в архітектурі POWER використовується шина Micro Channel, що має пропускну здатність 40 або 80 Мбайт / сек. Шина Micro Channel включає 64-бітову шину даних і забезпечує підтримку роботи декількох головних адаптерів шини. Така підтримка дозволяє мережевим контролерам, відеоадаптером і інших інтелектуальних пристроїв передавати інформацію по шині незалежно від основного процесора, що знижує навантаження на процесор і відповідно збільшує системну продуктивність.

Многокристального набір POWER2 складається з восьми полузаказних мікросхем (пристроїв):

Блок кеш-пам'яті команд (ICU) - 32 Кбайт, має два порти з 128-бітовими шинами; Блок пристроїв целочисленной арифметики (FXU) - містить два цілочислових конвеєра і два блоки регістрів загального призначення (по 32 32-бітових регістра). Виконує всі цілочисельні і логічні операції, а також всі операції звернення до пам'яті; Блок пристроїв плаваючою точки (FPU) - містить два конвеєри для виконання операцій з плаваючою точкою подвійної точності, а також 54 64-бітових регістра плаваючою точки; Чотири блоки кеш-пам'яті даних - максимальний об'єм кеш-пам'яті першого рівня становить 256 Кбайт. Кожен блок має два порти. Пристрій реалізує також ряд функцій виявлення і корекції помилок при взаємодії з системою пам'яті; Блок управління пам'яттю (MMU).

Набір кристалів POWER2 містить близько 23 мільйонів транзисторів на площі 1217 квадратних мм і виготовлений за технологією КМОП з проектними нормами 0.45 мікрон. Потужність, що розсіюється на частоті 66.5 МГц становить 65 Вт.

Продуктивність процесора POWER2 в порівнянні з POWER значно підвищена: при тактовій частоті 71.5 МГц вона досягає 131 SPECint92 і 274 SPECfp92.

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

Компанія IBM поширює вплив архітектури POWER у напрямку малих систем за допомогою платформи PowerPC. Архітектура POWER у цій формі може забезпечувати рівень продуктивності і масштабованість, що перевищують можливості сучасних персональних комп'ютерів. PowerPC базується на платформі RS/6000 в дешевій конфігурації. В архітектурному плані основні відмінності цих двох розробок полягають лише в тому, що системи PowerPC використовують однокристальних реалізацію архітектури POWER, що виготовляється компанією Motorola, у той час як більшість систем RS/6000 використовують многокристального реалізацію. Є декілька варіацій процесора PowerPC, що забезпечують потреби портативних виробів і настільних робочих станцій, але це не виключає можливість застосування цих процесорів у великих системах. Першим на ринку був оголошений процесор 601, призначений для використання в настільних робочих станціях компаній IBM і Apple. За ним пішли кристали 603 для портативних і настільних систем початкового рівня та 604 для високопродуктивних настільних систем. Нарешті, процесор 620 розроблений спеціально для серверних конфігурацій і очікується, що зі свого 64-бітової організацією він забезпечить виключно високий рівень продуктивності.

При розробці архітектури PowerPC для задоволення потреб трьох різних компаній (Apple, IBM і Motorola) при збереженні сумісності з RS/6000, в архітектурі POWER було зроблено декілька змін в наступних напрямках:

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

Архітектура PowerPC підтримує ту ж саму базову модель програмування і призначення кодів операцій команд, що й архітектура POWER. У тих місцях, де були зроблені зміни, які могли потенційно перешкоджати процесорам PowerPC виконувати існуючі двійкові коди RS/6000, були розставлені "пастки", що забезпечують переривання і емуляцію за допомогою програмного забезпечення. Такі зміни вводилися, природно, тільки в тих випадках, якщо відповідна можливість або використовувалася не дуже часто в кодах прикладних програм, або була ізольована в бібліотечних програмах, які можна просто замінити.

PowerPC 601

Перший мікропроцесор PowerPC, PowerPC 601, в даний час випускається як компанією IBM, так і компанією Motorola. Він являє собою процесор середнього класу і призначений для використання в настільних обчислювальних системах малої і середньої вартості. Він був розроблений в якості перехідної моделі від архітектури POWER до архітектури PowerPC і реалізує можливості обох архітектур. При цьому двійкові коди RS/6000 виконуються на ньому без змін, що дало додатковий час розробникам компіляторів для освоєння архітектури PowerPC, а також розробникам прикладних систем, які повинні перекомпілювати свої програми, щоб повністю використати можливості архітектури PowerPC.

Процесор 601 базувався на однокристальним процесорі IBM, який був розроблений до моменту створення альянсу трьох провідних фірм. Але в порівнянні зі своїм попередником, PowerPC 601 зазнав серйозні зміни у бік підвищення продуктивності і зниження вартості. Наприклад, до його складу було включено більше складний пристрій переходів, розширені можливостями мультипроцесорної роботи, включаючи інтерфейс шини високопродуктивного процесора 88110 компанії Motorola. У Power 601 реалізована суперскалярна обробка, що дозволяє видавати на виконання в кожному такті 3 команди, можливо не в порядку їх розташування у програмному коді.

Порівняльні характеристики сучасних апаратних платформ

Рис. 6.19. Блок-схема процесора Power PC 603

Процесор PowerPC 603

PowerPC 603 є першим мікропроцесором у сімействі PowerPC, який повністю підтримує архітектуру PowerPC (рисунок 6.19). Він включає п'ять функціональних пристроїв: пристрій переходів, цілочисельне пристрій, пристрій плаваючою точки, пристрій завантаження / запису і пристрій системних регістрів, а також дві, розташованих на кристалі кеш-пам'яті для команд і даних, ємністю по 8 Кбайт. Оскільки PowerPC 603 - Суперскалярний мікропроцесор, він може видавати в ці виконавчі пристрої і завершувати виконання до трьох команд у кожному такті. Для збільшення продуктивності PowerPC 603 допускає позачергове виконання команд. Крім того він забезпечує програмовані режими зниження споживаної потужності, які дають розробникам систем гнучкість реалізації різних технологій управління живленням.

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

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

Після закінчення виконання команди в виконавчому пристрої її результати направляються в буфер завершення команд (completion buffer) і потім послідовно записуються у відповідний регістровий файл у міру вилучення команд з буфера завершення. Для мінімізації конфліктів по регістрах, в процесорі PowerPC 603 передбачені окремі набори з 32 цілочисельних регістрів загального призначення і 32 регістрів плаваючою точки.

PowerPC 604

Суперскалярний процесор PowerPC 604 забезпечує одночасну видачу до чотирьох команд. При цьому паралельно в кожному такті може завершуватися виконання до шести команд. На малюнку 6.20 представлена ​​блок-схема процесора 604. Процесор включає шість виконавчих пристроїв, які можуть працювати паралельно:

пристрій плаваючою точки (FPU); пристрій виконання переходів (BPU); пристрій завантаження / запису (LSU), три цілочисельних пристрої (IU): два однотактний цілочисельних пристрої (SCIU); одне багатотактного цілочисельне пристрій (MCIU).

Така паралельна конструкція в поєднанні зі специфікацією команд PowerPC, допускає реалізацію прискореного виконання команд, забезпечує високу ефективність і велику пропускну здатність процесора. Застосовувані в процесорі 604 буфера перейменування регістрів, буферні станції резервування, динамічне прогнозування напрями умовних переходів і пристрій завершення виконання команд суттєво збільшують пропускну здатність системи, гарантують завершення виконання команд в порядку, встановленому програмою, і забезпечують реалізацію моделі точного переривання.

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

Рис. 6.20. Блок-схема процесора Power PC 604

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

PowerPC 620

До кінця 1995 року очікується поява нового процесора PowerPC 620. На відміну від своїх попередників це буде повністю 64-бітовий процесор. При роботі на тактовій частоті 133 МГц його продуктивність оцінюється в 225 одиниць SPECint92 і 300 одиниць SPECfp92, що відповідно на 40 і 100% більше показників процесора PowerPC 604.

Подібно до інших 64-бітових процесорів, PowerPC 620 містить 64-бітові регістри загального призначення і плаваючою точки і забезпечує формування 64-бітових віртуальних адрес. При цьому зберігається сумісність з 32-бітовим режимом роботи, реалізованим в інших моделях сімейства PowerPC.

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

Процесор PowerPC 620 націлений на ринок високопродуктивних робочих станцій і серверів.

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


Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Доповідь
283.3кб. | скачати


Схожі роботи:
Аналіз та оцінка апаратних засобів сучасних ПЕОМ
Основні етапи розвитку обчислювальної техніки Порівняльні характеристики комп`ютерів різних поколінь
Технічні характеристики сучасних серверів
Основні характеристики сучасних принтерів
VHDL - мова опису апаратних засобів компютера
Порівняльні конструкції у творах В Симоненка
Експертиза та порівняльні споживчи тестування зубних щіток
Порівняльні аналізи видів договорів Цивільного кодексу Російської Федерації
Характеристики радості
© Усі права захищені
написати до нас