Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MPS.doc
Скачиваний:
89
Добавлен:
12.05.2015
Размер:
10.45 Mб
Скачать

3. Процесори зі скороченою кількістю команд (risc-процесори)

3.1. Особливості risc-процесорів

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

Ще в 70-х роках було відмічено, що із загального набору команд найчастіше використовуються тільки 20%, тому була висунута ідея створення процесора, що виконує мінімально можливе число команд, названого RISC-процесором - процесором зі скороченим набором команд. Якщо в звичайних процесорах, названих в наступний час CISC-процесорами може використовуватися до 500 команд, то в RISC-процесорах - близько 30.

Всі існуючі RISC-процесори базуються на обробці даних в форматі команд "регістр-регістр". В процесі реалізації програм RISC-процесори повинні за мінімальний час оновлювати вміст арифметичних регістрів процесора. Існують два підходи до вирішення проблеми модифікації регістрів: апаратний і програмний. Перше - апаратне рішення, назване механізмом перемикання множинних перекриваючих вікон, було реалізовано Паттерсоном і Секуіном в проекті RISC-1. Суть цього рішення така: RISC-процесор містить 138 регістрів для зберігання даних, причому 10 з них глобальні, прозорі для всіх програм, решта 128 регістрів розбиті на вісім перекриваючих вікон, що містять по 22 регістра. У кожен момент часу поточна програма спостерігає 10 глобальних регістрів і одне вікно, тобто всього 32 регістра.

Схема взаємодії регістрів RISC-процесорів приведена на рис.3.1.

Рисунок 3.1. Схема взаємодії регістрів RISC-процесорів

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

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

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

Рисунок 3.2. Реалізація виклику процедури і повернення до програми в проекті “Омега”

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

Таблиця 3.1.

МП-RISC

Alpha

21164

Alpha

21264

MIPS

10000

Ultra

SPARC II

Ultra

SPARC III

PA8000

Фірма

DEC

DEC

MIPS

SUN

SUN

HP

Розряд ШД/ША

64/40

64/44

64/40

64/40

128/43

64/40

SPEC 95fp

27

50

19

18

60

20

SPEC 95int

18

30

10

11

35

12

Регістровий файл

32/32

80/72

64/64

144/32

-

-

Число конвеєрів

4

6

5

9

14

4

Кэш L1 (размер)

8/8КБ

64/64КБ

32/32КБ

16/16КБ

64/32КБ

Нет

Число елементів

9,3млн

15,2млн

6,8млн

3,8млн

16млн

-

Число виводів

499

-

527

527

1200

-

Частота МГц

266/300

500

250,350

250,350

600

200

Перший RISC-процесор був розроблений в Каліфорнії в університеті Берклі і називався RISC-1. Компанія Sun Microsystems в кінці 70-х розробила процесор SPARC з 75 командами. Найбільшими виробниками RISC-процесорів в даний час є компанії Sun Microsystems, HP, IBM, MIPS, DEC. З метою підвищення продуктивності звичайних МП, багато ідей раніше використовувані в RISC-структурах, стали використовуватися і в універсальних МП, починаючи з 486.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]