RISC процессор

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
Довідник Список використаних джерел Список учасників НОП

RISC (англ. Reduced Instruction Set Computing) — обчислення з скороченим набором команд. Характерні особливості RISC-процесорів:

  1. Фіксована довжина машинних інструкцій (наприклад, 32 біта) і простий формат команди.
  2. Спеціалізовані команди для операцій з пам'яттю - читання або запису. Операції виду «прочитати-змінити-записати» відсутні. Будь-які операції "змінити" виконуються тільки над вмістом регістрів (т.зв. load-and-store архітектура).
  3. Велика кількість регістрів загального призначення (32 і більше).
  4. Відсутність підтримки операцій виду "змінити" над укороченими типами даних - байт, 16бітное слово. Так, наприклад, система команд DEC Alpha містила лише операції над 64-бітними словами, і вимагала розробки і подальшого виклику процедур для виконання операцій над байтами, 16- і 32-бітними словами.
  5. Відсутність мікропрограм всередині самого процесора. Те, що в CISC процесорі виконується мікропрограмами, в RISC процесорі виповнюється як звичайний (хоча і поміщений у спеціальне сховище) машинний код, не відрізняється принципово від коду ядра ОС і додатків.


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

Перші RISC-процесори були розроблені на початку 1980-х років в Стенфордському і Каліфорнійському університетах США. Вони виконували невеликий (50 - 100) набір команд, тоді як звичайні CISC (Complex Instruction Set computer) виконували 100 - 200.
Як виявилося на початку 1990-х років, RISC-архітектури дозволяють отримати більшу продуктивність, ніж CISC, за рахунок використання суперскалярного і VLIW-підходу, а також за рахунок можливості серйозного підвищення тактової частоти і спрощення кристала з вивільненням площі під кеш, що досягає величезних ємностей . Також RISC-архітектури дозволили сильно знизити енергоспоживання процесора за рахунок зменшення числа транзисторів.
Перший час RISC-архітектури насилу приймалися ринком через відсутність програмного забезпечення для них. Ця проблема була вирішена перенесенням UNIX-подібних операційних систем (SunOS) на RISC-архітектури.
В даний час більшість архітектур процесорів є RISC-подібними, наприклад, ARM, DEC Alpha, SPARC, AVR, MIPS, POWER і PowerPC. Найбільш широко використовувані в настільних комп'ютерах процесори архітектури x86 раніше були CISC-процесорами, проте нові процесори, починаючи з Intel Pentium Pro, є CISC-процесорами з RISC-ядром [10]. Вони безпосередньо перед виконанням перетворять CISC-інструкції x86-процесорів в більш простий набір внутрішніх інструкцій RISC.

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