Читайте также:
|
|
Прагнення підвищення продуктивності комп'ютерів нерозривно пов'язано з ускладненням архітектури їх процесорів, збільшенням числа виконуваних команд, способів адресації і, як наслідок, збільшення довжини команд, числа їх форматів. Все це ускладнює і уповільнює процес дешифрування команд, структуру пристрою управління, призводить до необхідності використання мікропрограмного управління замість більш швидких ПУ з жорсткою логікою.
Ще в 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 | Alpha | MIPS | 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 | ||||||
SPEC 95int | ||||||
Регістровий файл | 32/32 | 80/72 | 64/64 | 144/32 | - | - |
Число конвеєрів | ||||||
Кэш L1 (размер) | 8/8КБ | 64/64КБ | 32/32КБ | 16/16КБ | 64/32КБ | Нет |
Число елементів | 9,3млн | 15,2млн | 6,8млн | 3,8млн | 16млн | - |
Число виводів | - | - | ||||
Частота МГц | 266/300 | 250,350 | 250,350 |
Перший RISC-процесор був розроблений в Каліфорнії в університеті Берклі і називався RISC-1. Компанія Sun Microsystems в кінці 70-х розробила процесор SPARC з 75 командами. Найбільшими виробниками RISC-процесорів в даний час є компанії Sun Microsystems, HP, IBM, MIPS, DEC. З метою підвищення продуктивності звичайних МП, багато ідей раніше використовувані в RISC-структурах, стали використовуватися і в універсальних МП, починаючи з 486.
Дата добавления: 2015-10-28; просмотров: 152 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Система реального часу | | | RISC-процесор Alpha 21164 компанії DEC |