Процесори архітектури risc відрізняються тим, що. Мікропроцесори з RISC-архітектурою. Методи адресації та типи команд

Попередні частини:

Створення архітектури RISC

Як уже неодноразово згадувалося, всі х86-процесори, рішення компанії Motorola і переважна більшість випущених у 1980-х роках кристалів мали архітектуру CISC (Complex Instruction Set Computing). Сукупність всіх особливостей призвела до того, що чіпи стали не тільки складними і дорогими у виробництві, а й досягли своєї стелі продуктивності. Для подальшого збільшення швидкодії потрібно нарощувати кількість транзисторів, проте освоєні технологічні норми не дозволяли створювати складніші рішення. З цим зіткнулася Intel під час випуску сімейства i486. Для підвищення продуктивності вони внесли зміни в архітектуру процесорів, додавши кеш-пам'ять, множники та конвеєри. Словом, 486-ті "камені" отримали деякі "фішки" архітектури RISC. Проте до створення RISC-платформи американська компаніяжодного стосунку немає. Своїм створенням архітектура завдячує американському інженеру Девіду Паттерсону, який керував проектом Berkeley RISC з 1980 по 1984 роки.

Девід Паттерсон – батько RISC

Початковою ідеєю, яка потім втілилася в такий масштабний проект Berkeley RISC, стало дослідження роботи Motorola 68000. У ході спостережень з'ясувалося, що програми просто не використовували переважну більшість інструкцій, закладених у процесор. Наприклад, система Unix за компіляції використовувала лише 30% команд. Тому в рамках проекту Berkeley RISC планувалося створити такий процесор, який містив би лише необхідні інструкції.

Після кількох років досліджень та розробки було випущено кілька зразків процесорів, назва яких і дала ім'я всієї архітектури. Сама абревіатура RISC розшифровується як Restricted (Reduced) Instruction Set Computer, що перекладається як комп'ютер зі скороченим набором команд. "Скорочений набір команд" зовсім не означає, що кількість інструкцій менше, ніж кількість команд CISC-кристалів. Різниця полягає в тому, що будь-яка інструкція платформи RISC є простою і виконується за один такт (принаймні, повинна виконуватися), тоді як виконання RISC-інструкції могло йти кілька десятків тактів. При цьому довжина команди фіксована. Наприклад, 32 біти. Також у RISC є набагато більше регістрів загального призначення. Плюс для цієї архітектури характерна конвеєризація. Саме її використання (разом із спрощеними командами) дозволяє ефективно нарощувати тактову частоту процесорів RISC.

Команда проекту Berkeley RISC

Дебютними рішеннями стали RISC I та RISC II – дітища Паттерсона та проекту Berkeley RISC. Перший містив понад 44 000 транзисторів і працював на частоті 4 МГц. Такий процесор при виконанні невеликих програм був у середньому вдвічі швидше за VAX 11/780 і ​​приблизно в чотири рази продуктивніший, ніж «камінь» Zilog Z8000. RISC II відрізнявся від попередника великою кількістю інструкцій: 39 проти 32. Він був швидшим. Його перевага над процесором VAX досягала 200%, а Motorola 68000 у деяких програмах був повільнішим приблизно в чотири рази.

Слід зазначити, що Berkeley RISC був частиною великого проекту під назвою VLSI. Сюди також входив проект Стенфордського університету MIPS, який стартував 1981 року.

Процесори MIPS

Главою проекту MIPS був учений Стенфордського університету Джон Хеннессі. Як і у випадку з Berkeley RISC, завданням стартапу було дослідження та створення такого процесора, який використав би конвеєр та скорочений набір команд. Архітектура MIPS-рішень також передбачала наявність допоміжних блоків у складі кристала: наприклад, модулів для роботи з пам'яттю, цілісного АЛУ (арифметико-логічний пристрій) та декодерів команд. Відмінністю плану MIPS від Berkeley RISC було використання подовженого конвеєра. Архітектура RISC, в принципі, передбачає використання конвеєра, але Хеннесі пішов далі і запропонував максимально подовжити конвеєр у процесорі, тобто ще більше «роздробити» виконання однієї операції. Такий підхід відкривав ще більші простори з нарощування. тактової частоти. При цьому подовження конвеєра забезпечувало більш ефективне розпаралелювання виконання команд. У той час розпаралелювання було відмінною рисою RISC-архітектури, оскільки в жодному CISC-процесорі ця функція не була реалізована аж до появи в них конвеєрів. Наприклад, у MIPS, так само як і в RISC, виконання однієї команди могло бути ще не завершено, коли розпочиналася інша. У процесорах CISC для початку виконання однієї інструкції було необхідно, щоб була закінчена обробка іншої.

Джон Хеннессі – творець архітектури MIPS, а нині президент Стенфордського університету

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

У 1984 році Хеннессі залишив Стенфордський університет і заснував компанію MIPS Computer Systems, яка й зайнялася випуском процесорів з однойменною архітектурою. Через рік побачив світ перший продукт компанії – 32-бітний «камінь» R2000. Він став першою комерційно доступною RISC-моделлю в історії. 1988 року з'явився процесор наступного покоління під назвою R3000. У порівнянні з R2000 він отримав підтримку багатопроцесорності та кеш-пам'яті інструкцій та даних. «Тритисячний» виявився комерційно успішним. Процесор використовувався в серверних системах та робочих станціях таких компаній, як Silicon Graphics, DEC, Seiko Epson та багатьох інших. Плюс R3000 став серцем ігрової консолі Sony PlayStation.

Процесор MIPS R3000

На розробку наступного покоління MIPS-процесорів пішло три роки. Процесор R4000 був представлений у 1991 році. Він отримав 64-бітну архітектуру, вбудований співпроцесор і працював на вищій тактовій частоті, ніж попередники. Так, мінімальна частота R4000 складала 100 МГц. Обсяг кеш-пам'яті інструкцій та даних становив 8 Кбайт кожен. Через два роки було представлено доопрацьовану версію процесора з індексом R4400. Новий кристал мав збільшений удвічі кеш і підтримував кеш-пам'ять другого рівня більшого обсягу. Крім цього, було виправлено численні помилки під час роботи у 64-розрядному режимі.

Дивно, що, незважаючи на комерційний успіх своїх процесорів, MIPS зазнавала фінансових труднощів і зрештою була куплена компанією SGI і перейменована на MIPS Technologies. Далі почали видаватися ліцензії на виробництво клонів стороннім компаніям. Так, компанія QED (Quantum Effects Devices) створила недорогі MIPS-процесори, які використовувалися в маршрутизаторах Cisco. А NEC займалася виробництвом "кам'я" VR4300, який "прописався" в ігровій консолі Nintendo 64.

Процесор NEC VR4300 використовувався у приставці Nintendo 64

1994 року з'явився процесор R8000. Він став першим MIPS-рішенням із суперскалярною архітектурою, яка має на увазі паралельне виконання команд за умови, що виконання однієї команди не залежить від результату іншої. Наприклад, R8000 умів обробляти до чотирьох інструкцій за такт.

У січні 1996 року MIPS представила процесор наступного покоління під назвою R10000. "Десятитисячний" використовував таку ж суперскалярну архітектуру, як і R8000, і, по суті, був доопрацьованою версією попередника. Також процесор мав кеш-пам'ять інструкцій та даних об'ємом 32 Кбайт кожна та працював на частоті 175 МГц або 195 МГц. 1997 року навіть з'явилася версія чіпа з частотою 250 МГц. Але навіть при параметрі 195 МГц R10000 був одним із найшвидших процесорів того часу.

Процесор R10000, виготовлений компанією Toshiba

На жаль, після запуску R10000, компанія SGI закинула MIPS-архітектуру. Всі наступні кристали ґрунтувалися на ядрі «десятитисячного» і не мали в порівнянні з ним якихось важливих відмінностей. Наприклад, процесор R12000, представлений у 1998 році, отримав додаткову стадію в конвеєр та покращену роботу з чергами інструкцій. Його тактова частота становила 270 МГц, 300 МГц чи 360 МГц. Після R12000 вийшли ще два покоління процесорів MIPS: R14000 та R16000. Вони отримали підтримку більш швидких системних шин, збільшені частоти та кеш-пам'ять більшого обсягу. Наприклад, R16000 міг працювати на частоті 700 МГц та підтримував 64 Кбайт кеш-пам'яті інструкцій та даних.

Після цього MIPS зайнялася продажем ліцензій на 32-бітну та 64-бітну архітектури MIPS32 та MIPS64.

Процесори SPARC

Компанія Sun Microsystems також зважилася на розробку архітектури – SPARC (Scalable Processor ARChitecture). Так, інженери черпали натхнення із проекту Berkeley RISC. А сам Девід Паттерсон навіть залучався до проекту як консультант. Проте в результаті SPARC більше нагадувала MIPS-архітектуру. Наприклад, у наборі команд платформи були відсутні інструкції множення і поділу. Особливістю архітектури SPARC стало використання реєстрового вікна, за допомогою якого було трохи змінено процес виклику функцій у програмах. Зазвичай під час виклику програм процесор запам'ятовував свій стан (тобто запам'ятовував стан деяких регістрів загального і спеціального призначення), переходив до виконання функції, а потім повертався у свій вихідний стан до виклику функції. А в процесорах SPARC при виклику функції необхідні дані записувалися в кінець регістрового вікна, а саме регістрове вікно переміщалося файлом так, щоб дані опинялися на початку вікна. Такий підхід у теорії забезпечував більше високу швидкістьроботи.

Процесор SPARC V7, виготовлений компанією Fujitsu

Перша версія архітектури дістала назву SPARC V7. Однойменний процесор з її основі вироблявся до 1992 року. Потім з'явилася така генерація архітектури – SPARC V8. Вона не зазнала якихось кардинальних змін. Ключовими відмінностямистало додавання операцій множення та поділу, а також покращене виконання арифметики чисел з плаваючою комою. Як і SPARC V7, SPARC V8 залишалася 32-бітною архітектурою, на базі якої було створено мікроSPARC. Він належав до Low-End-сегменту і використовувався в невеликих робочих станціях і системах, що вбудовуються. Силами компаній Texas Instrumentsта Fujitsu також були випущені покращені клони. Більш продуктивним рішенням став процесор SuperSPARC.

Створенням наступного покоління архітектури з ім'ям SPARC V9 працювала вже ціла організація SPARC Architecture Committee, до складу якої, окрім самої Sun, входили такі компанії, як Texas Instruments, Fujitsu, Philips та багато інших. Платформа була розширена до 64 біт і була суперскалярною з 9-стадійним конвеєром. SPARC V9 передбачала використання кеш-пам'яті першого рівня, розділеного на інструкції та дані об'ємом 16 Кбайт кожна, а також другого рівня ємністю 512-4096 Кбайт. Реалізацією архітектури став процесор UltraSPARC із частотою 143-200 МГц.

Процесор UltraSPARC II

UltraSPARC був єдиним процесором з архітектурою SPARC V9. У 1997 році було представлено UltraSPARC II.

Процесори ARM

Історія популярних ARM-процесорів, а точніше самої архітектури ARM, починається з компанії Acorn Computers та її комп'ютера BBC Micro. У ньому використовувався "камінь" MOS Technology 6502, проте його продуктивності було недостатньо, щоб створити робочий стіл наступного покоління. З різних причин інші доступні процесори також не відповідали вимогам Acorn, тому в компанії задумалися про створення власного чіпа. Після вивчення різних архітектур, інженери Acorn взяли за основу процесори RISC і той самий кристал MOS Technology 6502.

Комп'ютер BBC Micro

У процесора MOS, наприклад, була запозичена архітектура доступу до пам'яті та набір інструкцій. Кожну інструкцію було доповнено спеціальним чотирибітним кодом умови. Залежно від значення коду (true або false), інструкція могла виконуватися або не виконуватися. Це дозволило скоротити кількість переходів під час операцій, які негативно впливали на продуктивність конвеєрної архітектури. Також розробники заклали у початкову ревізію архітектури команди, які виконували кілька елементарних операцій. Одне слово, трохи відступили від правил RISC. Проте зрештою це лише покращило продуктивність процесора.

Розробка архітектури була завершена у 1985 році створенням процесора ARM. Перші ж комерційні варіанти з'явилися в 1986 році і мали назву ARM2. Порівняно з CISC-процесорами, ARM2 був дуже простим – він містив лише 30 000 транзисторів. При цьому він споживав дуже мало енергії та водночас був досить продуктивним. Дещо пізніше з'явилися і ARM-процесори, в які були додані 4 Кбайт кеш-пам'яті, що ще більше підвищило продуктивність кристалів.

Процесор ARM2

До кінця 1980-х років Acorn займалася розробкою архітектури ARM вже не сама - до неї приєдналася Apple. У зв'язку з цим підрозділ, що займався безпосередньо ARM-процесорами, було перетворено на окрему компанію – Advanced RISC Machines. Першим продуктом нової компанії стало процесорне ядро ​​ARM6 та процесор ARM610, який використовувався в одному з перших у світі КПК Apple Newton.

Однак ARM-процесори вже не могли змагатися з CISC-рішеннями в плані продуктивності, а в RISC-сегменті панували процесори з архітектурою MIPS. Тоді в ARM пішли іншим шляхом. Компанія почала позиціонувати ARM6 як ядро, яке вбудовується, яке будь-який сторонній виробник міг використовувати у своїх процесорах за невеликі гроші. Така політика принесла свої плоди, і ядро ​​ARM стало дуже популярним, а сама компанія – комерційно успішною.

Разом з компанією DEC була розроблена архітектура для більш продуктивних ARM-рішень під назвою StrongARM, яка була класичною скалярною архітектурою з 5-стадійним конвеєром. Архітектура мала блоки управління пам'яттю та підтримувала кеш-пам'ять інструкцій та даних об'ємом 16 Кбайт кожна.

Перший процесор на базі StrongARM – SA-110 – був представлений у лютому 1996 року. Він працював на тактових частотах 100 МГц, 160 МГц чи 200 МГц. Камінь використовувався в Apple MessagePad 2000, а також системах Acorn Computer Risc PC і Eidos Optima. Протягом 1996 SA-110 залишався найпродуктивнішим мобільним процесором.

Apple MessagePad 2000 використовував процесор SA-110

У 1997 році права на архітектуру StrongARM було продано компанії Intel, яка зайнялася розробкою наступного покоління платформи. У 2000 році воно було представлене, але архітектура (а точніше реалізація архітектури) мала іншу назву - Xscale. Платформа набула безліч змін. Наприклад, довжина конвеєра було збільшено до 8 стадій. Обсяг кеш-пам'яті як інструкцій, так даних збільшився до 32 Кбайт. XScale використовувався в таких пристроях, як RIM Blackberry, Dell Axim, мобільному телефоні Motorola A780 та інших девайсах.

Процесори PowerPC

Якщо бути зовсім точним, то першою компанією, що почала розробку RISC-архітектури, стала IBM. Ще 1974 року стартувала розробка процесора IBM 801, яка і заклала перші основи для цієї платформи. А проект Berkeley RISC остаточно сформував архітектуру.

На початку 80-х років деякі процесори IBM для вбудованих систем використовували архітектуру 801. Процесор на його базі також прописався в комп'ютері IBM 9370.

У 1985 році IBM розпочала розробку RISC-архітектури наступного покоління. Проект отримав назву America Project. Розробка процесора та набору інструкцій йому закінчилася 1990 року. Сам кристал отримав назву POWER1 і використовувався в серверах та робочих станціях IBM. Він мав досить високий рівень продуктивності, але мав багаточипове компонування і складався з 11 різних мікросхем. В 1992 IBM представила бюджетний варіант процесора POWER1, який вміщався в одному чіпі.

Процесор POWER1. Навіть швидше чіпсет

У 1993 році було представлено друге покоління архітектури POWER2. До нього було додано по одному додатковому блокуарифметико-логічних операцій та обчислень з плаваючою комою. Також було розширено набір команд: наприклад, було додано операцію обчислення квадратного кореня у складі на апаратному рівні. Тактова частота процесора варіювалася від 55 МГц до 71 МГц, а кеш-пам'ять даних та інструкцій – 256 Кбайт та 32 Кбайт відповідно. Як і попередник, новий процесормав багаточіпове компонування. Але у травні 1994 року було випущено й одночіпову версію.

Однак ще до виходу POWER2 IBM разом з Apple та Motorola утворили альянс AIM та домовилися про створення покращеної архітектури на основі POWER. У виграші залишилися всі три компанії, отримавши один із найшвидших RISC-процесорів на ринку. Розроблена спільно архітектура отримала назву PowerPC. Крім базового набору функцій платформи POWER, до неї були додані підтримка роботи в двох режимах (big-endian і little-endian), нові інструкції для обчислень з плаваючою комою і Зворотня сумістністьз 32-розрядним режимом роботи для 64-розрядної версії архітектури.

Процесор PowerPC першого покоління

На відміну від інших RISC-архітектур, що займали вузькі ніші ринку, PowerPC позиціонувалася як платформа-конкурент x86. Її основним призначенням були персональні комп'ютери. Так, процесор на базі PowerPC досить довгий час використовувався у комп'ютерах. Apple Macintosh- до 2006 року.

Архітектура конкурувала нарівні з x86 до 2001 року, але після цього наздогнати процесорами Intel і AMD не змогла. Незважаючи на це, процесори на базі PowerPC використовувалися в ігрових консолях Sony PlayStation 3 та Microsoft Xbox 360.

Консолі Sony PlayStation 3 та Microsoft Xbox 360 працюють під керуванням процесора PowerPC

У 90-х роках IBM встигла випустити третю генерацію процесорів під назвою POWER3, яка, по суті, стала реалізацією 64-розрядної архітектури PowerPC. Чіп створювався з прицілом на використання в серверах та робочих станціях, але в результаті його основним застосуванням стали системи IBM RS/6000.

Процесори DEC Alpha

Архітектура DEC VAX безнадійно застаріла і на початку 90-х у компанії задумалися про створення власної RISC-платформи. Їй стала Alpha, випущена 1994 року. Першим процесором став Alpha 21064 з кодовою назвою EV4. Це 64-розрядний суперскалярний кристал із конвеєрною архітектурою. Тобто мав класичний RISC-дизайн. Процесор DEC вигідно відрізняла налагоджена робота всіх його блоків. Так, при рівній з іншими "камінням" частоті EV4 показував більш високу продуктивність. Зовнішня шина процесора була 128-розрядною. Він мав 16 Кбайт кеш-пам'яті даних та інструкцій та виготовлявся за допомогою технології CMOS-4. Тактова частота EV4 становила 150 МГц чи 200 МГц. Дещо пізніше з'явилася модифікація під назвою 21064A, яка могла працювати на швидкостях аж до 300 МГц, що забезпечило кристалу звання найшвидшого процесора того часу. Основним застосуванням EV4 стали сервери та робочі станції.

Процесор Alpha 21064

Alpha 21064A залишався топовою моделлю DEC до виходу наступного покоління процесорів – 21164 (EV5). Він володів двома цілими блоками і двома модулями обчислень з плаваючою комою. У EV5 було вже три рівні кеш-пам'яті: два розташовувалися безпосередньо в процесорі, а третій був зовнішнім. Кеш-пам'ять першого рівня була розділена на дві частини: кеш даних та кеш інструкцій об'ємом 8 Кбайт кожен. Обсяг кеш-пам'яті другого рівня складав 96 Кбайт. Тактова частота процесора варіювалася від 266 МГц до 333 МГц. Alpha 21164 перейняв пальму першості Alpha 21064A і був найшвидшим процесором до виходу Pentium Pro. Тим не менш, відповідь DEC не змусила себе довго чекати - компанія випустила більше продуктивний процесор Alpha 21164A, що працює на високих тактових частотах (до 666 МГц). Процесор використовувався в робочих станціях та серверних комп'ютерах таких компаній, як Digital, Network Appliance та Cray Research.

Процесор Alpha 21264

В 1996 було представлено наступне покоління процесорів DEC - Alpha 21264 (EV6). Чіп отримав кілька важливих змін у порівнянні з попередніми моделями. Наприклад, він підтримував позачергове виконання інструкцій, що спричинило повну реорганізацію ядра. Цілочисленні блоки та блоки завантаження/збереження були об'єднані в єдиний модуль Ebox, а блоки обчислень з плаваючою комою виділені модуль Fbox. Крім самих блоків, ці юніти містили ще й файли регістрів. Структура кеш-пам'яті знову стала дворівневою – вона прийшла на зміну трирівневої організації кешу в Alpha 21164. Кеш першого рівня зберіг поділ на згадку для інструкцій та даних. Обсяг кожної частини становив 64 Кбайт. Що ж до кеш-пам'яті другого рівня, її обсяг міг становити від 1 Мбайт до 16 Мбайт. Плюс процесор отримав підтримку передбачення розгалужень. З часом випускалися все нові й нові версії процесорів Alpha 21264, в яких насамперед нарощувалася тактова частота. Останньою модифікацією став Alpha 21264E, який працював на частоті 1250 МГц.

На жаль, лінійка процесорів Alpha 21264 стала останньою в історії «незалежною» DEC. На початку 1998 року DEC визнали банкрутом, і її поглинули компанія Compaq.

Архітектура Intel P5

Процесори з архітектурою RISC переважно зайняли свою спеціалізовану нішу, проте в настільних системах все одно продовжували використовуватися кристали з архітектурою x86. Їх розвиток продовжувався, хай і з деякими змінами.

Незважаючи на те, що Intel вийшла на ринок RISC-процесорів зі своїми рішеннями i860 та i960, основну ставку в компанії все ж таки робили на x86-кристали. Наступним поколінням «каменів» стали всім відомі Pentium на базі архітектури P5, випущені 1993 року.

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

Перші процесори лінійки Pentium працювали на частотах 60 МГц чи 66 МГц. При цьому для їх роботи була потрібна напруга 5 В, тому вони сильно грілися. Також перші «пні» прославилися неправильною роботою блоку обчислень із плаваючою комою, який у деяких випадках при виконанні поділу чисел видавав невірний результат. Тому незабаром Intel запустила у продаж процесори із виправленою архітектурою P54C.

Процесор Intel Pentium

P54C стала своєрідною роботою над помилками. Виробництво нових процесорів було переведено на 0,6 мкм техпроцес. Самі кристали тепер працювали з напругою 3,3, що дозволило вирішити проблему з перегрівом. Що стосується змін на рівні архітектури, то P54C був доданий полуторний множник - відтепер процесори працювали на більш високій частотініж системна шина. Швидкість роботи процесорів становила 75 МГц, 90 МГц чи 100 МГц. Також P54C встановлювалися в роз'єми Socket 5 або Socket 7. На відміну від P5, які підтримували тільки Socket 4. Сама архітектура P54C знову отримала оновлення в 1995 році, коли була переведена на 350-нм техпроцес. Це дозволило знову знизити енергоспоживання кристалів, а також збільшити тактову частоту до 200 МГц.

1.1 Основні відмінності CISC та RISC архітектур

Двома основними архітектурами набору команд, використовуваними комп'ютерною промисловістю на етапі розвитку обчислювальної техніки (відповідно до ) є архітектури CISC і RISC. Основоположником CISC-архітектури можна вважати компанію IBM з її базовою архітектурою /360, ядро ​​якої використовується з 1964 року і дійшло до наших днів, наприклад, у таких сучасних мейнфреймах як IBM ES/9000. Лідером у розробці мікропроцесорів c повним наборомкоманд (CISC – Complete Instruction Set Computer) вважається компанія Intel зі своєю серією x86 та Pentium. Ця архітектура є практичним стандартом на ринку мікрокомп'ютерів. Для CISC-процесорів характерно: порівняно невелика кількістьрегістрів загального призначення; велика кількість машинних команд, деякі з яких навантажені семантично аналогічно до операторів. високорівневих мовпрограмування та виконуються за багато тактів; велика кількість методів адресації; велика кількість форматів команд різної розрядності; переважання двоадресного формату команд; наявність команд обробки типу регістр-пам'ять.

Основою архітектури сучасних робочих станцій та серверів є архітектура комп'ютера зі скороченим набором команд (RISC – Reduced Instruction Set Computer). Зачатки цієї архітектури сягають своїм корінням до комп'ютерів CDC6600, розробники яких (Торнтон, Крей та ін.) усвідомили важливість спрощення набору команд для побудови швидких обчислювальних машин. Цю традицію спрощення архітектури С. Крей успішно застосував при створенні широко відомої серії суперкомп'ютерів компанії Cray Research. Проте остаточно поняття RISC у його сучасному розумінні сформувалося з урахуванням трьох дослідницьких проектів комп'ютерів: процесора 801 компанії IBM, процесора RISC університету Берклі і процесора MIPS Стенфордського університету.

Серед інших особливостей RISC-архітектур слід зазначити наявність досить великого регістрового файлу (у типових RISC-процесорах реалізуються 32 або більше регістрів у порівнянні з 8 - 16 регістрами в CISC-архітектурах), що дозволяє більшому обсягу даних зберігатися в регістрах на процесорному кристалі більше час та спрощує роботу компілятора з розподілу регістрів під змінні.

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

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

Слід зазначити, що в останніх розробках компанії Intel (маються на увазі Pentium і Pentium Pro), а також її послідовників-конкурентів (AMD R5, Cyrix M1, NexGen Nx586 та ін.) широко використовуються ідеї, реалізовані в мікропроцесорах RISC, так що багато відмінностей між CISC та RISC стираються. Однак складність архітектури та системи команд x86 залишається і є головним фактором, що обмежує продуктивність процесорів на її основі.

Переваги та недоліки архітектури PA-RISC компанії Hewlett Packard

Основою розробки сучасних виробів компанії Hewlett-Packard є архітектура PA-RISC. Вона була розроблена компанією в 1986 році і з того часу пройшла кілька стадій свого розвитку завдяки успіхам інтегральної технології від багатокристального до однокристального виконання. У вересні 1992 року компанія Hewlett-Packard оголосила про створення свого суперскалярного процесора PA-7100, який відтоді став основою побудови сімейства робочих станцій HP 9000 Series 700 і сімейства бізнес-серверів HP 9000 Series 800. В даний час є 33 - та 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 рік.

1.3 Характеристика процесорів з урахуванням архітектури PA-RISC

1.3.1 Характеристика та особливості процесора PA 7100

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

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

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

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

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

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

Конвеєр проектувався з метою максимального збільшеннячасу, необхідного для читання зовнішніх кристалів 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 МГц.

1.3.2 Характеристика та особливості процесора 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, що реалізує розщеплення транзакцій та підтримку протоколу когерентності пам'яті. Цей інтерфейс включає буфер транзакцій, схеми арбітражу і схеми управління співвідношеннями зовнішніх і внутрішніх тактових частот.

1.3.3 Характеристика суперскалярного процесора 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 Вольт і можна розраховувати на подальше зменшення розмірів елементів у майбутньому.

2. ОСОБЛИВОСТІ СЕРВЕРІВ КОМПАНІЇ HEWLETT-PACKARD НА БАЗІ ПРОЦЕСОРІВ З АРХІТЕКТУРОЮ PA-RISC

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

p align="justify"> Основою розробки сучасних комп'ютерів Hewlett-Packard є архітектура PA-RISC. Вона була розроблена компанією в 1986 році, і відтоді завдяки успіхам інтегральної технології пройшла кілька стадій свого розвитку від багатокристального до однокристального виконання. Архітектура PA-RISC розроблялася з урахуванням можливості побудови багатопроцесорних систем, реалізованих у старших моделях серверів.

2.1 Сервери HP9000 класу D

У секторі ринку серверів робочих груп компанія HP представлена ​​досить широкою серією систем HP9000 класу D. Це серія систем відносно низькою вартістю, яка конкурує з серверами, побудованими на базі ПК. Ці системи базуються на архітектурі процесорів PA-RISC (75 та 100 МГц PA-7100LC, 100 та 120 МГц PA-7200, а також 160 МГц PA-8000) та працюють під управлінням операційної системи HP-UNIX.

Моделі D200, D210 та D310 являють собою (згідно) однопроцесорні системи. Моделі D250, D260, D270 та D350 можуть оснащуватися як одним, так і двома процесорами. У своїх моделях D3XX HP підкреслює властивості забезпечення високої готовності: можливість гарячої заміни внутрішніх дискових накопичувачів, можливість організації дискового масиву RAID та наявність джерела безперебійного живлення. Ці моделі мають також розширені можливості з нарощування оперативної пам'яті та підсистеми вводу/виводу.

У моделях D2XX є 5 гнізд розширення вводу/виводу та 2 відсіки для встановлення дискових накопичувачів з інтерфейсом SCSI-2. У моделях D3XX кількість гнізд розширення вводу/виводу розширено до 8, у 5 відсіках можуть встановлюватися дискові накопичувачі з інтерфейсом Fast/Wide SCSI-2, які допускають заміну без вимкнення живлення системи.

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

2.2 Сервери HP9000 класу K

Сервери HP9000 класу K є системами середнього класу, що підтримують симетричну мультипроцесорну обробку (до 4 процесорів). Також як і системи класу D вони базуються на архітектурі PA-RISC (120 МГц PA-7200 з кеш-пам'яттю команд/даних першого рівня 256/256 Кбайт або 1/1 Мбайт, а також 160 та 180 МГц PA-8000 з кеш- пам'яттю команд/даних першого рівня 1/1 Мбайт, що працює на тактовій частоті процесора).

Конструкція серверів класу До забезпечує високу пропускну здатність систем. Основними компонентами підтримки високої продуктивності є системна шина з піковою пропускною здатністю 960 Мбайт/с, велика оперативна пам'ять з контролем та виправленням одиночних помилок (ECC) ємністю до 4 Гбайт з 32-кратним розшаруванням, багатоканальна підсистема введення/виводу з пропускною здатністю /с, стандартна високошвидкісна шина Fast/Wide Differential SCSI-2, а також додаткові можливості підключення високошвидкісних мереж і каналів типу FDDI, ATM і Fibre Channel.

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

2.3 Симетричні багатопроцесорні сервери HP9000 класу Т

Найбільш потужним і розширюваним рядом корпоративних серверів компанії HP на базі ОС UNIX є сімейство HP9000 класу T. Це наступне покоління серверів, яке було розроблено компанією слідом за HP9000 model 870. потім HP оголосила 14-процесорні системи T520, побудовані на базі процесора 120 МГц PA7150. Нині оголошено 12-процесорні системи Т600 з урахуванням процесора PA-8000, постачання яких мають розпочатися 1997 року. Існуючі системи(Т500 та Т520) допускають заміну старих процесорів на процесори PA-8000.

Характерною особливістю архітектури серверів класу Т є велика ємність кеш-пам'яті команд (1 Мбайт) та даних (1 Мбайт) у кожного процесора системи. Сервери класу T використовують 64-бітову шину з розщепленням транзакцій, що підтримує до 14 процесорів, що працюють на частоті 120 МГц. Ефективність цієї шини, як і шини Runway, становить 80%, що забезпечує в режимі пропускну здатність 768 Мбайт/с при пікової продуктивності 960 Мбайт/с.

Сервери класу T можуть підтримувати до 8 каналів HP-PB (HP Precision Bus), що працюють зі швидкістю 32 Мбайт/с, однак у стійці основної системи підтримується лише один канал HP-PB. Для забезпечення повної конфігурації підсистеми введення/виведення необхідна установка 7 стійок розширення, що займають досить велику площу. Загальна пікова смуга пропускання підсистеми в/в повністю сконфігурованій 8-стійковій системі становить 256 Мбайт/с, що менше смуги пропускання підсистеми в/в серверів класу К. Однак максимальна ємність дискової пам'яті при використанні RAID-масивів досягає 20 Тбайт.

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

2.4 Сімейство корпоративних паралельних серверів HP9000

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

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

Вироби цієї серії призначені, головним чином, для забезпечення масштабованості, що перевищує звичайні можливості SMP-архітектури, для великомасштабних систем прийняття рішень, систем оперативної обробки транзакцій, побудови сховищ даних у Всесвітньому Павутинні Internet. Для більшості програм моделі ESP забезпечують практично лінійне зростання рівня продуктивності. Це досягається за допомогою використання високопродуктивної шинної архітектури SMP вузлів ESP у поєднанні з можливостями встановлення додаткових SMP-вузлів за допомогою розробленого компанією HP комутатора оптоволоконних каналів (Fiber Channel Enterprise Switch). Управління всіма ресурсами системи здійснюється з єдиної консолі управління.

За необхідності забезпечення високої готовності системи ESP підтримують спеціальний прошарок програмних засобів MC/ServiceGuard. Ці засоби дозволяють створити ефективне поєднання властивостей високої продуктивності, масштабованості та високої готовності, та крім стандартних можливостей RAS (надійності, готовності та зручності обслуговування) забезпечують заміну вузлів без зупинки роботи системи.

По суті, серія EPS надає засоби для об'єднання моделей класу К (EPS21) і Т(EPS30) в єдину систему. 16-канальний комутатор Fiber Channel дозволяє об'єднати до 64 процесорів у моделі EPS21 (до 256 процесорів у майбутньому) та до 224 процесорів у моделі EPS30 (до 768 процесорів у майбутньому). Загальна пікова пропускна здатність систем може досягати рівня 15 Гбайт/с.

Вступ

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

Постановка задачі

У ході виконання даного курсового проекту необхідно розглянути існуючі види архітектур процесорів, охарактеризувати їх переваги та недоліки. Слід детально розглянути якусь архітектуру (в даному випадку це архітектура PA-RISC компанії Hewlett Packard), а також розглянути сфери застосування процесорів з обраною архітектурою (характеристика серверів компанії Hewlett Packard на основі PA-RISC процесорів). Також необхідно розробити програму-драйвер передачі між робочими станціями в локальній мережі.

Висновок

У цьому курсовому проекті розглянуто основні архітектури процесорів. Детально розглянуто архітектуру PA-RISC компанії Hewlett Packard, проаналізовано переваги та недоліки цієї архітектури. Також розглянуті сфери застосування процесорів з архітектурою PA-RISC (характеристика серверів компанії Hewlett Packard на основі PA-RISC процесорів). У програмі наведено програму, яка забезпечує передачу інформації між робочими станціями в локальній мережі.

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

Двома основними архітектурами набору команд, що використовуються комп'ютерною промисловістю на етапі розвитку обчислювальної техніки, є архітектури CISC і RISC.

- Complete Instruction Set Computer (CISC-архітектура, комп'ютер на мікропроцесорі з повним набором команд)

– Reduced Instruction Set Computer (RISC-архітектура, комп'ютер зі скороченим набором команд)

CISC RISC
Основоположник, модель IBM, IBM/360 CDC6600 (Крей)
Лідер, сьогодні x86 Alpha, PowerPC, SPARC
Ринок Персональні ЕОМ(завдяки сумісності із програмним забезпеченням молодших моделей, загальна вартість якого - на початку 90-х років - склала кілька мільярдів доларів США) Високопродуктивні комп'ютери (вартість ПЗ не така істотна)
Реалізація Мікропрограмна (інтерпретація) Апаратна
Число регістрів загального призначення невелике велике
Формат команд велика кількість форматів команд різної розрядності команди фіксованої довжини та фіксованого формату
Адресація велика кількість методів адресації, переважання двоадресного формату команд прості методи адресації, триадресний формат команд

Основоположник, модель

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

Ці недоліки зумовили необхідність розробки альтернативної архітектури - RISC, націленої насамперед зниження нерегулярності потоку команд зменшенням їх загальної кількості.

Лідер, сьогодні

Процесори Intel, починаючи з 486-го, містять ядро ​​RISC, яке виконує найпростіші (і зазвичай найпоширеніші) команди за один цикл тракту даних, а по звичайній технології CISC інтерпретуються складніші команди. В результаті звичайні команди виконуються швидко, а складніші та рідкісні - повільно. Хоча за такого «гібридного» підходу робота відбувається не так швидко, як у RISC, ця архітектура має ряд переваг, оскільки дозволяє використовувати старе програмне забезпечення без змін.

Перша модель процесора Intel, яка впритул наблизилася до архітектури RISC– PentiumPRO (Precision RISC Organization – Повноцінна RISC-архітектура).

Реалізація

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

Число регістрів

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

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

Формат команд

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

Адресація

Прості методи адресації дозволяють різко спростити декодування команд. Організація реєстрової структури – основна перевага та основна проблема RISC. Практично будь-яка реалізація RISC-архітектури використовує тримісні операції обробки, у яких результат і два операнда мають самостійну адресацію – R1:= R2, R3. Це дозволяє без істотних витрат часу вибрати операнди з адресованих оперативних регістрівта записати в регістр результат операції. Крім того, тримісні операції дають компілятору більшу гнучкість у порівнянні з типовими двомісними операціями формату «Регістр – пам'ять» архітектури CISC. У поєднанні з арифметикою RISC-операції типу «регістр – регістр» стають дуже потужним засобом підвищення продуктивності процесора.

· Вступ

RISC (Reduced Instruction Set Computer) – комп'ютер із скороченим набором команд. RISC характеризується такими властивостями:

· Фіксована довжина машинних інструкцій (наприклад, 32 біти) та простий формат команди.

· Спеціалізовані команди для операцій з пам'яттю – читання або запису. Операції виду "прочитати-змінити-записати" відсутні. Будь-які операції "змінити" виконуються лише над вмістом регістрів (архітектура load-and-store).

· Велика кількість регістрів загального призначення (32 та більше).

· Відсутність підтримки операцій виду «змінити» над укороченими типами даних – байт, 16-бітове слово. Так, наприклад, система команд DEC Alpha містила лише операції над 64-бітними словами, і вимагала розробки та подальшого виклику процедур для виконання операцій над байтами, 16- та 32-бітними словами.

· Відсутність мікропрограм усередині самого процесора. Те, що в CISC процесорі виконується мікропрограмами, в RISC процесорі виконується як звичайний (хоча і поміщений у спеціальне сховище) машинний код, що не відрізняється від коду ядра ОС і додатків.

Типові для RISC рішення:

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

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

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

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

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


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

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

Перша система, яка може бути названа RISC системою, це суперкомп'ютер CDC 6600, який був створений в 1964 році Сеймуром Крем. Пізніше з'явився жарт, що термін RISC насправді розшифровується як "Really invented by Seymour Cray" ("Насправді придуманий Сеймур Крей").

Перша спроба створити RISC процесор на чіпі була зроблена в IBM в 1975. Ця робота призвела до створення сімейства процесорів IBM 801, які були випущені у формі чіпа під ім'ям ROMP в 1981. ROMP розшифровується як Research OPD (Office Product Division) Micro Processor, то є «Дослідний МП». Потім було декілька дослідницьких проектів, в результаті одного з яких з'явилася система POWER.

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

RISC-архітектура – ​​комп'ютер із зменшеним набором інструкцій. Є типом мікропроцесорної архітектури, яка використовує невеликий оптимізований набір інструкцій на відміну від типів архітектур, що передшестують, з розширеним набором алгоритмічних даних. Термін RISC був винайдений Девідом Паттерсоном з проекту Berkeley RISC.

Визначення

Комп'ютер з обмеженим набором команд - це пристрій, чия архітектура набору інструкцій (ISA) має набір атрибутів, що дозволяє йому мати нижчі цикли на інструкцію (CPI), ніж складна команда, встановлена ​​комп'ютер (CISC). Загальна концепція RISC - це концепція комп'ютера, який містить невеликий набір простих та загальних алгоритмів, але не розширений набір складних та спеціалізованих послідовностей. Іншою поширеною ознакою RISC є архітектура завантаження/зберігання, де доступ до пам'яті здійснюється лише за допомогою певних інструкцій.

Історія та розвиток

Перші проекти RISC прийшли з IBM, Stanford та UC-Berkeley у 70-х та 80-х роках. ХХ ст. IBM 801, Stanford MIPS та Berkeley RISC I та II були розроблені з аналогічною філософією, яка стала відома як RISC. Деякі особливості дизайну були характерними для більшості RISC-процесорів:


Хоча ряд комп'ютерів 1960-х і 70-х років були попередніми моделями RISC, сучасна концепція належить до 1980-х років. Зокрема, два проекти у Стенфорді та Каліфорнійському університеті масштабують цю концептуальну ідею. Стенфордський MIPS стане комерційно успішною моделлю, тоді як університет у Берклі дав назву всій концепції, комерціалізованої як SPARC. Іншим успіхом цієї епохи були зусилля IBM, які зрештою призвели до Power Architecture. У міру розвитку цих напрямів наприкінці 1980-х рр., і особливо на початку 1990-х рр., процвітало безліч подібних проектів, що становлять основну силу на ринку робочих станцій Unix, а також вбудовані процесори в лазерних принтерів, маршрутизатори та аналогічні продукти.

Плюси та мінуси архітектури RISC

Найпростіший спосіб вивчити переваги та вразливості архітектури RISC – це порівняти її з попередньою архітектурою CISC. Основна мета архітектури CISC – завершити завдання за меншу кількість ліній збирання. Це досягається за рахунок створення процесорного обладнання, здатного розуміти та виконувати низку операцій. Для цієї конкретного завданняпроцесор CISC випускається із конкретною інструкцією (MULT). При виконанні ця команда завантажує два значення окремі регістри, множить операнди у виконавчому модулі і потім зберігає продукт у відповідному регістрі. Таким чином, вся задача множення двох чисел може бути завершена однією інструкцією: MULT 2: 3, 5: 2. CISC та RISC-архітектура – ​​попереднє та наступне архітектурне рішення.

MULT це те, що відомо як «складна інструкція». Команда працює безпосередньо в банках пам'яті комп'ютера і не вимагає, щоб програміст явно викликав будь-які функції завантаження або збереження. Вона дуже схожа на команду мовою вищого рівня. Наприклад, якщо ми припустимо, що aпредставляє значення 2:3 а bпредставляє значення 5:2, то ця команда ідентична виразу Ca = a * b.

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

Підхід RISC

Процесори RISC використовують лише елементарні інструкції, які виконуються за один такт. Таким чином, описана вище команда MULT може бути розділена на три окремі команди: LOAD, яка переміщує дані з банку пам'яті в регістр PROD, який знаходить добуток двох операндів, розташованих усередині регістрів, і STORE, який переміщує дані з регістру в банки пам'яті. Щоб виконати точний ряд кроків, описаних у підході CISC, програмісту необхідно закодувати чотири рядки зборки:

LOAD A, 2:3.
LOAD B, 5:2.
PROD A, B.
STORE 2:3, О.

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

Порівняння CISC та RISC

Нижче представлені порівняльні дані CISC та RISC-архітектури:

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

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

Характеристика процесу

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

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

Складності комерційної реалізації

Незважаючи на переваги обробки на основі RISC, минули десятиліття, перш ніж чіпи RISK були комерційно затребувані. Багато в чому це було з відсутністю підтримки програмного забезпечення.

Хоча лінійка Power Macintosh від Apple, в якій використовувалися чіпи на основі RISC та Windows NT, сумісна з RISC, Windows 3.1 та Windows 95 були розроблені з урахуванням процесорів CISC. Багато компаній не хотіли ризикувати RISC, що з'являється технологією. Без комерційного інтересу розробники процесорів не змогли виготовити чіпи RISC у досить великих обсягах, щоб зробити їхню ціну конкурентоспроможною.

Ще однією серйозною перешкодою стала присутність Intel. Незважаючи на те, що їхні чіпи CISC стали все більш громіздкими і складними в розробці, Intel мала ресурси для розробки потужних процесорів. Хоча чіпи RISC могли перевершити зусилля Intel у певних областях, відмінності були досить великі, щоб переконати покупців змінювати технології.

Загальна перевага RISC

Сьогодні Intel x86 є єдиним чіпом, що зберігає архітектуру CISC. Це пов'язано насамперед із просуванням в інших областях комп'ютерної техніки. Ціна ОЗП різко знизилася. У 1977 році 1 МБ DRAM коштував близько 5000 доларів. До 1994 року такий обсяг пам'яті коштує всього 6 доларів США (з урахуванням інфляції). Технологія компілятора також стала більш складною, тому використання RISC RAM і акцент на програмне забезпечення стали ідеальними.

Філософія набору інструкцій

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

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

Формат інструкції

Більшість архітектур RISC мають інструкції з фіксованою довжиною (зазвичай 32 біти) та просте кодування, що значно спрощує вибірку, декодування та видачу логіки. Одним із недоліків 32-розрядних інструкцій є зниження щільності коду, що є несприятливим фактором для вбудованих обчислень на робочих станціях та серверах. Архітектури RISC спочатку були призначені для обслуговування. Для вирішення цієї проблеми кілька архітектур, таких як ARM, Power ISA, MIPS, RISC-V та Adipteva Epiphany, мають необов'язковий короткий скорочений формат інструкції або стиснення команд. SH5 також слідує цій схемі, хоча і розвинувся у зворотному напрямку, додавши більш довгі мультимедійні інструкціїдо оригінального 16-бітного кодування.

Використання обладнання

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

Інші функції, які зазвичай зустрічаються в архітектурах RISC:

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

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

Особливості RISC-архітектури

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

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

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


Практичне застосування

RISC-архітектура процесора тепер використовуються на великому спектрі платформ: від смартфонів та планшетних ПК до деяких з найпродуктивніших суперкомп'ютерів, таких як комп'ютер K (лідер списку топ-500 у 2011 р.).

До початку XXI століття більшість низькопрофільних та мобільних системґрунтувалися на архітектурі RISC. Приклади:

  • домінує на ринку для малопотужних та недорогих вбудованих систем (200-1800 МГц у 2014 році). Вона застосовується в більшості Android-систем, Apple iPhone і iPad, Microsoft Windows Phone ( колишня Windows Mobile), пристрої RIM (topic.risc.архітектура), Nintendo Game Boy Advance, DS/3DS та Switch.
  • Лінія MIPS (якось використовується в багатьох комп'ютерах SGI), а тепер - в PlayStation, PlayStation 2, Nintendo 64 (ipb.risc.архітектура), ігрових консолях PlayStation Portable і шлюзах для житлових приміщень, таких як Linksys WRT54G.
  • Hitachi SuperH, що використовується в Sega Super 32X, Saturn і Dreamcast (viewtopic.php.risc.архітектура), тепер розроблений і проданий Renesas як SH4.
  • Atmel AVR використовується в різних продуктових лінійках: від портативних контролерів Xbox до автомобілів BMW.
  • RISC-V (vbulletin.risc.архітектура), п'ятий Berkeley RISC ISA з відкритим вихідним кодом, з 32-розрядним адресним простором, невеликим ядром цілого набору команд, експериментальної «стисненої» ISA для щільності коду і призначеної для стандартних і спеціальних розширень.
  • Робочі станції, сервери та суперкомп'ютери.
  • MIPS (powered.by.smf.risc.архітектура), Silicon Graphics (у 2006 році припинила створення систем на основі MIPS).
  • SPARC, Oracle (раніше Sun Microsystems) та Fujitsu (phorum.risc.архітектура).
  • Архітектура IBM Power Architecture, що використовується в більшості суперкомп'ютерів IBM, серверах середнього рівня та термінальних станціях.
  • PA-RISC Hewlett-Packard (phpbb.risc.архітектура), також називається як HP-PA (припинений наприкінці 2008 року).
  • Alpha, використовується в робочих станціях, серверах та суперкомп'ютерах від Digital Equipment Corporation, Compaq та HP (припинено з 2007 року).
  • RISC-V (powered.by.phpbb.risc.архітектура), п'ятий Berkeley RISC ISA, з відкритим вихідним кодом, з 64 або 128-бітними адресними просторами та цілим ядром, розширеним з плаваючою точкою, атомізацією та векторною обробкою, та розроблений для розширення з інструкціями для мереж, введення-виведення, обробки даних. 64-бітний суперскалярний дизайн Rocket доступний для завантаження.

Порівняння з іншими архітектурами

Деякі процесори були спеціально розроблені з дуже невеликим набором інструкцій, але ці конструкції значно відрізняються від традиційних RISC-архітектур, тому їм були надані інші дані, такі як мінімальний набір команд (MISC) або ініційована транспортна архітектура (TTA).

Архітектури RISC традиційно мали мало успіхів на ринку настільних ПК та товарних серверів, де платформи на базі x86 залишаються домінуючою архітектурою процесора. Однак це може змінитися, оскільки процесори на базі ARM архітектури розробляються для систем з більш високою продуктивністю. Виробники, включаючи Cavium, AMD та Qualcomm, випустили на базі архітектури ARM. ARM також співпрацювала з Cray у 2017 році, щоб створити суперкомп'ютер на базі архітектури ARM. Компанія-лідер комп'ютерної індустрії Microsoft оголосила, що у рамках партнерства з Qualcomm у 2017 році планується підтримка ПК-версії Windows 10 на пристрої на базі Qualcomm Snapdragon. Ці пристрої підтримуватимуть програмне забезпечення Win32 на базі x86 за допомогою емулятора процесора x86.

Тим не менш, крім настільної арени архітектура ARM RISC широко використовується в смартфонах, планшетах і багатьох формах вбудованого пристрою. Також Intel Pentium Pro (P6) використовує внутрішнє RISC-процесорне ядро ​​для своїх процесорів.

У той час як початкові розробки RISC-архітектури процесора значно відрізнялися від інноваційних проектів CISC, до 2000 найбільш високопродуктивні процесори в лінійці RISC майже не відрізняються від найбільш високопродуктивних процесорів в лінії CISC.