RISC (Reduced Instruction Set Computing)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 20:29, 25 июня 2016.
Open book.svg Авторство
В.И. Ромашов
Согласовано: 03.04.2016
Рис. 1. Сетевой контроллер Samsung S3C4510B. Это RISC-процессор, работающий на частоте 50 МГц.

RISC (англ. Restricted (reduced) Instruction Set Computer — «компьютер с сокращённым набором команд») — архитектура процессора, в котором быстродействие увеличивается за счёт упрощения инструкций, чтобы их декодирование было более простым, а время выполнения — меньшим. Термин «сокращённый» в названии описывает тот факт, что сокращён объём (и время) работы, выполняемый каждой отдельной инструкцией — как максимум один цикл доступа к памяти.

Широко известные семейства RISC включают в себя DEC Alpha, AMD Am29000, ARC, ARM, Atmel AVR, BlackFin, Intel i860 и i960, MIPS, Motorola 88000, PA-RISC, RISC-V, SuperH и SPARC. В 21-м веке, использование архитектуры ARM процессоров смартфонов и планшетных компьютеров , таких как IPad и Android устройств обеспечили широкую базу пользователей для систем на базе RISC. Процессоры RISC также используются в суперкомпьютерах, таких как компьютер K, самый быстрый из TOP500 в 2011 году, и четвертый в списке 2013 года.

Характерные особенности RISC-процессоров

  • Элемент маркированного списка.
  • Фиксированная длина машинных инструкций, простой формат команды.
  • Специализированные команды для операций с памятью — чтения или записи. Операции вида Read-Modify-Write («прочитать-изменить-записать») отсутствуют. Любые операции «изменить» выполняются только над содержимым регистров (т.н. архитектура load-and-store).
  • Большое количество регистров общего назначения (32 и более).
  • Отсутствие поддержки операций вида «изменить» над укороченными типами данных — байт, 16-битное слово. Так, например, система команд DEC Alpha содержала только операции над 64-битными словами, и требовала разработки и последующего вызова процедур для выполнения операций над байтами, 16- и 32-битными словами.
  • Отсутствие микропрограмм внутри самого процессора.

Преимущества RISC

  • Повышение производительности
  • Новый микропроцессор может быть разработан и испытан более быстро.
  • Операционная система и прикладные программисты, которые используют инструкции микропроцессора могут легче разрабатывать код с меньшим набором команд.
  • Простота RISC обеспечивает большую свободу выбора, как использовать пространство на микропроцессоре.

История RISC

Предпосылки развития RISC архитектур:

  • Обширная замена ассемблера на языки программирования высокого уровня в 1980-х годах. Даже операционные системы все чаще были написаны на языках высокого уровня.
  • Недостаток памяти для выполнения сложных оптимизаций в компиляторах.
  • Невозможность получить достаточно вычислительной мощности.

Начало исследований

Первая система, которая может быть названа системой «RISC», — суперкомпьютер «CDC 6600», который был создан в 1964 году, за десять лет до появления соответствующего термина. CDC 6600 имел архитектуру «RISC» всего с двумя режимами адресации («регистр+регистр» и «регистр+непосредственное значение») и 74 кодами команд (тогда как 8086 имел 400 кодов команд). В «CDC 6600» было 11 конвейерных устройств арифметической и логической обработки, а также пять устройств загрузки и два устройства хранения. Память была много блочной, поэтому все устройства загрузки-хранения могли работать одновременно. Базовая тактовая частота/частота выдачи команд была в 10 раз выше, чем время доступа к памяти. Джим Торнтон и Сеймур Крэй, разработчики «CDC 6600», создали для него мощный процессор, позволявший быстро обрабатывать большие объёмы цифровых данных. Главный процессор поддерживался десятью простыми периферийными процессорами, выполнявшими операции ввода-вывода и другие функции ОС. Позднее появилась шутка, что термин «RISC» на самом деле расшифровывается как «Really invented by Seymour Cray» (пер. с англ.: «на самом деле придуман Сеймуром Крэем»).

Рис. 2. Atmel AVR ATmega169V в корпусе MLF

Если быть уж совсем точным, то первой компанией, начавшей разработку RISC-архитектуры, стала IBM. Еще в 1974 году стартовала разработка процессора IBM 801, которая и заложила первые основы для этой платформы. А проект Berkeley RISC окончательно сформировал архитектуру. Все х86-процессоры, решения компании Motorola и подавляющее большинство выпущенных в 1980-е годы кристаллов имели архитектуру CISC (Complex Instruction Set Computing). Совокупность всех особенностей привела к тому, что чипы стали не только сложными и дорогими в производстве, но и достигли своего потолка производительности. Для дальнейшего увеличения быстродействия требовалось наращивать количество транзисторов, однако освоенные технологические нормы не позволяли создавать более сложные решения. С этим столкнулась Intel при выпуске семейства i486. Для поднятия производительности они внесли изменения в архитектуру процессоров, добавив кэш-память, множители и конвейеры. Словом, 486-е «камни» получили некоторые «фишки» архитектуры RISC. Тем не менее к созданию RISC-платформы американская компания никакого отношения не имеет. Своим созданием архитектура обязана американскому инженеру Дэвиду Паттерсону, который руководил проектом Berkeley RISC с 1980 по 1984 годы.

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

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

Программа, ограниченная лишь восемью регистрами для каждой процедуры, может выполнять очень быстрые вызовы процедур: «окно» просто сдвигается к 8-регистровому блоку нужной процедуры, а при возврате из процедуры сдвигается обратно, к регистрам вызвавшей процедуры. (В обычном процессоре большинство процедур при вызове вынуждены сохранять значения некоторых регистров в стеке для того, чтобы пользоваться этими регистрами при исполнении процедуры. При возврате из процедуры значения регистров восстанавливаются из стека).

Практически в то же время, в 1981 году, Джон Хеннесси начал аналогичный проект, названный «архитектура „MIPS“» в Стэнфордском университете. Создатель «MIPS» практически полностью сфокусировался на конвейерной обработке, попытавшись «выжать всё» из этой технологии. Конвейерная обработка использовалась и в других продуктах, некоторые идеи, реализованные в MIPS, позволили разработанному чипу работать значительно быстрее аналогов. Наиболее важным было требование выполнения любой из инструкций процессора за один такт. Это требование позволило конвейеру работать на гораздо больших скоростях передачи данных и привело к значительному ускорению работы процессора. С другой стороны, исполнение этого требования имело негативный побочный эффект в виде удаления из набора инструкций таких полезных операций, как умножение или деление. В первые годы попытки развития архитектуры «RISC» были хорошо известны, однако оставались в рамках породивших их университетских исследовательских лабораторий. Многие в компьютерной индустрии считали, что преимущества процессоров «RISC» не проявятся при использовании в реальных продуктах из-за низкой эффективности использования памяти в составных инструкциях. Однако с 1986 года исследовательские проекты «RISC» начали выпускать первые работающие продукты.

Последние разработки

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

Как оказалось в начале 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-ядром. Они непосредственно перед исполнением преобразуют CISC-инструкции x86-процессоров в более простой набор внутренних инструкций RISC. После того, как процессоры архитектуры x86 были переведены на суперскалярную RISC-архитектуру, можно сказать, что большинство существующих ныне процессоров основаны на архитектуре RISC.

Использование RISC - архитектур

RISC - архитектуры в настоящее время используются в широком спектре платформ, от сотовых телефонов и планшетных компьютеров до некоторых из самых быстрых в мире суперкомпьютеров, таких как K компьютер, самый быстрый из TOP500 списка в 2011 году.

Мобильные системы

Рис. 3. AT91RM9200-QU 3003. Risc в КПК
  • Архитектура ARM доминирует на рынке малой мощности и низкой стоимости встраиваемых систем (обычно 200-1800 МГц в 2014 году). Он используется в ряде систем, таких как большинство Android систем, в Apple, iPhone и IPad, Microsoft Windows Phone (бывший Windows Mobile ), RIM устройства, Nintendo Game Boy Advance и Nintendo DS, и т.д. (напр. Рис. 3)
  • В PlayStation, PlayStation 2, Nintendo 64, PlayStation Portable.
  • Hitachi 's SuperH, первоначально широко используется в Сега Супер 32X, Saturn и Dreamcast, в настоящее время разработаны и продаются Renesas как SH4.
  • Atmel AVR используется в различных продуктах, начиная от Xbox контроллеров до BMW автомобилей.
  • SPARC, с помощью Oracle (ранее Sun Microsystems ) и Fujitsu.

Суперкомпьютеры

  • IBM 's Power Architecture, используется во многих суперкомпьютерах, серверах среднего уровня и рабочих станций IBM.
  • Hewlett-Packard's PA-RIS, также известный как HP-PA (снят с производства в конце 2008 года).

Характеристики

Распространенное заблуждение "компьютер с сокращенным набором команд" ошибочно наводит на мысль, что инструкции просто устранены, в результате меньшего набора инструкций. На самом деле, на протяжении многих лет, наборы команд RISC выросли в размерах, и сегодня многие из них имеют больший набор инструкций, чем многие CISC процессоры. Некоторые процессоры RISC, такие как PowerPC имеют наборы инструкций, большие, чем в CISC IBM System/370.

Термин "пониженная" в этой фразе предназначался, для описания тот факта, что объем работы какой-либо одной инструкции снижается, по сравнению со «сложными инструкциями» от CISC - процессоров, которые могут потребовать десятки данных циклов памяти, чтобы выполнить одну команду. В частности, процессоры RISC обычно имеют отдельные инструкции для ввода/вывода и обработки данных.

Процессоры также имели относительно небольшое число регистров, по нескольким причинам:

  • Увеличенное количество регистров также подразумевает больше времени сохранение и восстановление содержимого регистра в стеке машины.
  • Регистры процессора являются более дорогостоящими , чем внешние ячейки памяти; большие наборы регистров были громоздкими с ограниченными плат или интеграции микросхем.

В первые дни компьютерной индустрии, программирование было сделано в ассемблере или машинном коде, который поощрял мощные и простые в использовании инструкции. Поэтому конструкторы CPU пытались сделать инструкции, которые будут делать столько работы, сколько возможно. С появлением высокоуровневых языков, компьютерные архитекторы начали создавать специальные инструкции непосредственно реализующие определенные центральные механизмы таких языков. Еще одна общая цель состояла в том, чтобы обеспечить все возможные режим адресации для каждой команды, известной как ортогональность, чтобы облегчить реализацию компилятора. Поэтому арифметические операции могут часто имеют результаты, а также операнды непосредственно в памяти.

Источники

  1. Andrew Schulman. Microprocessors From the Programmer’s Perspective // Dr. Dobb's Journal. — 1 сентября 1990.
  2. Толковый словарь по вычислительным системам = Dictionary of Computing / Под ред. В. Иллингуорта и др.: Пер. с англ. А. К. Белоцкого и др.; Под ред. Е. К. Масловского. — М.:Машиностроение, 1990. — 560 с. — 70 000 (доп,) экз. — ISBN 5-217-00617-X (СССР), ISBN 0-19-853913-4 (Великобритания).
  3. Устройство процессора — "Все о Hi-Tech"
  4. Northern Illinois University, Department of Computer Science, “RISC - Reduced instruction set computer"
  5. "CISC, RISC, and DSP Microprocessors" by Douglas L. Jones 2000