stringtranslate.com

Компьютер с сокращенным набором команд

Процессор Sun Microsystems UltraSPARC представляет собой тип RISC-микропроцессора.

В электронике и информатике компьютер с сокращенным набором команд ( RISC ) — это компьютерная архитектура , предназначенная для упрощения отдельных инструкций, данных компьютеру для выполнения задач. По сравнению с инструкциями, данными компьютеру со сложным набором команд (CISC), компьютеру RISC может потребоваться больше инструкций (больше кода) для выполнения задачи, поскольку отдельные инструкции написаны в более простом коде. Цель состоит в том, чтобы компенсировать необходимость обработки большего количества инструкций за счет увеличения скорости каждой инструкции, в частности, за счет реализации конвейера команд , который может быть проще реализовать при наличии более простых инструкций. [1]

Ключевая концепция работы компьютера RISC заключается в том, что каждая инструкция выполняет только одну функцию (например, копирование значения из памяти в регистр). Компьютер RISC обычно имеет множество (16 или 32) высокоскоростных регистров общего назначения с архитектурой загрузки-хранения, в которой код инструкций регистр-регистр (для выполнения арифметических операций и тестов) отделен от инструкций, предоставляющих доступ. в основную память компьютера. Конструкция ЦП позволяет компьютерам RISC использовать несколько простых режимов адресации [2] и предсказуемое время выполнения инструкций, что упрощает проектирование системы в целом.

Концептуальные разработки компьютерной архитектуры RISC начались с проекта IBM 801 в конце 1970-х годов, но они не были сразу внедрены в эксплуатацию. Дизайнеры из Калифорнии подхватили концепцию 801 в двух плодотворных проектах: Stanford MIPS и Berkeley RISC . Они были коммерциализированы в 1980-х годах как системы MIPS и SPARC . В конечном итоге IBM разработала проекты RISC, основанные на дальнейшей работе над концепцией 801, архитектурой IBM POWER , PowerPC и Power ISA . По мере развития проектов во многих подобных проектах, созданных в конце 1980-х и начале 1990-х годов, были созданы центральные процессоры, которые увеличили коммерческую полезность рабочих станций Unix и встроенных процессоров в лазерных принтерах , маршрутизаторах и подобных продуктах.

На рынке миникомпьютеров компании, в число которых входили Celerity Computing , Pyramid Technology и Ridge Computers, в начале 1980-х годов начали предлагать системы, разработанные в соответствии с RISC или RISC-подобными принципами. [3] [4] [5] [6] [7] Некоторые из этих проектов начинались с использования RISC-микропроцессоров.

Разновидности конструкции процессора RISC включают процессор ARC , DEC Alpha , AMD Am29000 , архитектуру ARM , Atmel AVR , Blackfin , Intel i860 , Intel i960 , LoongArch , Motorola 88000 , архитектуру MIPS, PA-RISC , Power ISA, RISC-V , SuperH и SPARC. RISC-процессоры используются в суперкомпьютерах , таких как Fugaku . [8]

История и развитие

Ряд систем, начиная с 1960-х годов, считаются первой RISC-архитектурой, частично основанной на использовании подхода «загрузка-сохранение» . [9] Термин RISC был придуман Дэвидом Паттерсоном из проекта RISC в Беркли , хотя аналогичные концепции появлялись и раньше. [10]

CDC 6600 , разработанный Сеймуром Креем в 1964 году, использовал архитектуру загрузки-сохранения только с двумя режимами адресации (регистр + регистр и регистр + немедленная константа) и 74 кодами операций, при этом базовый тактовый цикл был в 10 раз быстрее, чем время доступа к памяти. . [11] Джек Донгарра говорит, что отчасти благодаря оптимизированной архитектуре загрузки и хранения CDC 6600 ее можно считать предшественником современных RISC-систем, хотя для разработки современной RISC-системы необходимо преодолеть ряд других технических барьеров. система. [12]

ИБМ 801

Микропроцессор IBM PowerPC 601 RISC.

Майкл Дж. Флинн рассматривает первую RISC-систему как проект IBM 801 , [2] начатый в 1975 году Джоном Коком и завершенный в 1980 году. 801 была разработана в результате попытки создать 24-битный высокоскоростной процессор для использования в качестве Основа цифрового телефонного коммутатора . Чтобы достичь своей цели по переключению 1 миллиона вызовов в час (300 в секунду), они подсчитали, что ЦП требовал производительности порядка 12 миллионов инструкций в секунду (MIPS) [13] по сравнению с их самой быстрой мэйнфреймом того времени, 370/168 со скоростью 3,5 MIPS. [14]

Дизайн был основан на изучении обширной коллекции статистических данных IBM, полученных от их клиентов. Это продемонстрировало, что код в настройках высокой производительности широко использовал регистры процессора и что они часто заканчивались. Это предполагало, что дополнительные регистры улучшат производительность. Кроме того, они заметили, что компиляторы обычно игнорировали подавляющее большинство доступных инструкций, особенно режимы ортогональной адресации. Вместо этого они выбирали самую быструю версию любой заданной инструкции, а затем создавали с ее помощью небольшие программы. Это предполагало, что большинство инструкций можно удалить, не затрагивая результирующий код. Эти два вывода сработали согласованно; Удаление инструкций позволило бы сделать коды операций инструкций короче, освободив биты в командном слове, которые затем можно было бы использовать для выбора среди большего набора регистров. [13]

Программа телефонного коммутатора была отменена в 1975 году, но к тому времени команда продемонстрировала, что та же конструкция обеспечивает значительный прирост производительности при работе практически с любым кодом. В ходе моделирования они показали, что компилятор, настроенный на использование регистров везде, где это возможно, будет выполнять код примерно в три раза быстрее, чем традиционные конструкции. Несколько удивительно, но тот же код будет работать примерно на 50% быстрее даже на существующих машинах благодаря улучшенному использованию регистров. На практике их экспериментальный компилятор PL/8, слегка урезанная версия PL/I , последовательно создавал код, который работал гораздо быстрее на существующих мэйнфреймах. [13]

32-битная версия 801 в конечном итоге была выпущена в однокристальной форме под названием IBM ROMP в 1981 году, что означало «Исследовательский OPD [Подразделение офисной продукции] Микропроцессор». [15] Этот процессор был разработан для «мини-задач» и нашел применение в периферийных интерфейсах и контроллерах каналов на более поздних компьютерах IBM. Он также использовался в качестве ЦП в ПК IBM RT в 1986 году, который оказался коммерческим провалом. [16] Хотя 801 не получил широкого распространения в своей первоначальной форме, он вдохновил множество исследовательских проектов, в том числе в IBM, которые в конечном итоге привели к созданию архитектуры IBM POWER . [17] [18]

RISC и MIPS

К концу 1970-х годов модель 801 стала широко известна в отрасли. Это совпало с появлением новых технологий производства, которые позволили выйти на рынок более сложным чипам. В Zilog Z80 1976 года было 8000 транзисторов, а в Motorola 68000 (68k) 1979 года — 68000. Эти новые разработки обычно использовали свою вновь обретенную сложность для расширения набора команд и придания ему большей ортогонализации. Большинство из них, например 68k, использовали для этого микрокод , считывая инструкции и повторно реализуя их как последовательность более простых внутренних инструкций. В 68k для этого микрокодирования использовалась целая 1/3 транзистора. [19]

В 1979 году Дэвид Паттерсон был отправлен в творческий отпуск из Калифорнийского университета в Беркли, чтобы помочь команде западного побережья DEC улучшить микрокод VAX. Паттерсон был поражен сложностью процесса кодирования и пришел к выводу, что он несостоятелен. [20] Сначала он написал статью о способах улучшения микрокодирования, но позже передумал и решил, что микрокод сам по себе является проблемой. При финансовой поддержке программы DARPA VLSI Паттерсон начал работу над проектом RISC в Беркли . Программа, сегодня практически неизвестная, привела к огромному количеству достижений в разработке, производстве и даже компьютерной графике микросхем. Рассмотрев множество программ из своего варианта BSD Unix , команда Беркли, как и IBM, обнаружила, что большинство программ не используют большое количество инструкций в 68k. [21]

Ранние работы Паттерсона указали на важную проблему традиционного подхода «чем больше, тем лучше»; даже те инструкции, которые были критически важны для общей производительности, задерживались из-за прохождения через микрокод. Если бы микрокод был удален, программы работали бы быстрее. А поскольку микрокод в конечном итоге взял сложную инструкцию и разбил ее на этапы, не было причин, по которым компилятор не мог бы сделать это вместо этого. Эти исследования показали, что даже без каких-либо других изменений можно создать чип с на 1/3 меньшим количеством транзисторов, который будет работать быстрее. [21] В оригинальной статье RISC-I они отметили: [22]

Пропуск этого дополнительного уровня интерпретации, по-видимому, повышает производительность при одновременном уменьшении размера чипа. [22]

Также было обнаружено, что в реализациях определенных архитектур с микрокодированием сложные операции имеют тенденцию выполняться медленнее, чем последовательность более простых операций, выполняющих то же самое. Частично это было результатом того, что многие разработки выполнялись в спешке, и у них было мало времени на оптимизацию или настройку каждой инструкции; были оптимизированы только те, которые использовались чаще всего, и последовательность этих инструкций могла быть быстрее, чем менее настроенная инструкция, выполняющая эквивалентную операцию, аналогичную этой последовательности. Одним из печально известных примеров была инструкция VAXINDEX . [23]

Работа в Беркли также выявила ряд дополнительных моментов. Среди них был тот факт, что программы тратили значительное количество времени на вызовы и возвраты подпрограмм , и казалось, что существует потенциал для улучшения общей производительности за счет ускорения этих вызовов. Это побудило проектировщиков Беркли выбрать метод, известный как окна регистров , который может значительно улучшить производительность подпрограммы, хотя и за счет некоторой сложности. [22] Они также заметили, что большинство математических инструкций представляют собой простые задания; только 1/3 из них действительно выполняли такие операции, как сложение или вычитание . Но когда такие операции действительно проводились, они, как правило, были медленными. Это привело к гораздо большему вниманию к базовому блоку арифметических данных, в отличие от предыдущих разработок, где большая часть чипа была предназначена для управления и микрокодирования. [21]

Получившийся в результате Berkeley RISC был основан на повышении производительности за счет использования конвейерной обработки и агрессивного использования оконного управления регистрами. [23] [22] В традиционном процессоре имеется небольшое количество регистров, и программа может использовать любой регистр в любое время. В процессоре с окнами регистров имеется огромное количество регистров, например 128, но программы могут одновременно использовать только небольшое их количество, например восемь. Программа, которая ограничивает себя восемью регистрами на процедуру, может выполнять очень быстрые вызовы процедур : вызов просто перемещает окно «вниз» на восемь, к набору из восьми регистров, используемых этой процедурой, а возврат перемещает окно назад. [24] В рамках проекта RISC в Беркли в 1982 году был создан процессор RISC-I. Состоящий всего из 44 420 транзисторов (по сравнению со средним показателем около 100 000 в более новых конструкциях CISC того времени), RISC-I имел всего 32 инструкции, но при этом полностью превосходил все остальные другая однокристальная конструкция, расчетная производительность которой выше, чем у VAX. [22] В 1983 году они разработали RISC-II с 40 760 транзисторами и 39 инструкциями, который работал в три раза быстрее, чем RISC-I. [22]

Когда проект RISC стал известен в Кремниевой долине , аналогичный проект начался в Стэнфордском университете в 1981 году. Этот проект MIPS вырос из аспирантуры Джона Л. Хеннесси , создал функционирующую систему в 1983 году и мог запускать простые программы, 1984. [25] В подходе MIPS особое внимание уделялось агрессивному тактовому циклу и использованию конвейера, гарантирующему, что он может работать как можно «на полную мощность». [25] За системой MIPS последовала MIPS-X, и в 1984 году Хеннесси и его коллеги основали MIPS Computer Systems для коммерческого производства этой конструкции. [25] [26] В результате этого предприятия в 1985 году была создана новая архитектура, которая также называлась MIPS , и микропроцессор R2000. [26]

Общая философия концепции RISC получила широкое понимание ко второй половине 1980-х годов, и в 1987 году разработчики MIPS -X сформулировали ее следующим образом:

Целью любого формата инструкций должно быть: 1. простое декодирование, 2. простое декодирование и 3. простое декодирование. Любые попытки улучшить плотность кода за счет производительности процессора следует высмеивать при каждой возможности. [27]

Коммерческий прорыв

Прототип чипа RISC-V (2013 г.)

В начале 1980-х годов вокруг концепции RISC существовала значительная неопределенность. Одна из проблем заключалась в использовании памяти; одна инструкция традиционного процессора, такого как Motorola 68k, может быть записана примерно как полдюжины более простых RISC-инструкций. Теоретически это может замедлить работу системы, поскольку она будет тратить больше времени на получение инструкций из памяти. Но к середине 1980-х годов эти концепции стали достаточно зрелыми, чтобы считаться коммерчески жизнеспособными. [16] [25]

Коммерческие разработки RISC начали появляться в середине 1980-х годов. Первый MIPS R2000 появился в январе 1986 года, а вскоре после этого в некоторых компьютерах компании Hewlett-Packard появился PA-RISC . [16] Тем временем проект Беркли стал настолько известным, что в конечном итоге стал названием всей концепции. В 1987 году Sun Microsystems начала поставлять системы с процессором SPARC , непосредственно основанным на системе Berkeley RISC-II. [16] [28] Правительственный комитет США по инновациям в области вычислений и коммуникаций считает, что принятие жизнеспособности концепции RISC является результатом успеха системы SPARC. [16] Успех SPARC возобновил интерес внутри IBM, которая выпустила новые RISC-системы к 1990 году, а к 1995 году RISC-процессоры стали основой серверной индустрии стоимостью 15 миллиардов долларов. [16]

К концу 1980-х новые конструкции RISC легко превосходили все традиционные конструкции с большим отрывом. В этот момент все остальные поставщики начали собственные разработки RISC. Среди них были DEC Alpha , AMD Am29000 , Intel i860 и i960 , Motorola 88000 , IBM POWER и, чуть позже, IBM/Apple/Motorola PowerPC . Многие из них с тех пор исчезли, поскольку часто не давали конкурентных преимуществ перед другими игроками той же эпохи. Те, что остались, часто используются только на нишевых рынках или как части других систем; Из разработок этих традиционных поставщиков только SPARC и POWER имеют значительный оставшийся рынок. [ нужна цитата ]

Архитектура ARM является иллюстрацией адаптации, сделанной поставщиками RISC для реагирования на меняющиеся конкурентные условия: она впервые была представлена ​​для обеспечения более высокой производительности в настольных компьютерах, таких как Acorn Archimedes , но также была внедрена во встроенные приложения, такие как обработка растровых изображений на лазерных принтерах. [29] ARM в сотрудничестве с Apple разработала конструкцию с низким энергопотреблением, а затем специализировалась на этом рынке, который в то время был нишей. С развитием мобильных вычислений, особенно после появления iPhone , ARM стал наиболее широко используемым процессором высокого класса на рынке. [ нужны разъяснения ]

Конкуренция между подходами RISC и традиционными CISC также была предметом теоретического анализа в начале 1980-х годов, что привело, например, к « железному закону производительности процессора» .

С 2010 года в Калифорнийском университете в Беркли разрабатывается новая архитектура набора команд с открытым исходным кодом (ISA), RISC-V , для исследовательских целей и в качестве бесплатной альтернативы проприетарным ISA. По состоянию на 2014 год исправлена ​​версия 2 пользовательского пространства ISA. [30] ISA спроектирована с возможностью расширения от базового ядра, достаточного для небольшого встроенного процессора, до суперкомпьютера и облачных вычислений со стандартными расширениями и сопроцессорами, определяемыми разработчиком микросхем. Он был протестирован в кремниевой конструкции с помощью ROCKET SoC , который также доступен в виде процессорного генератора с открытым исходным кодом на языке CHISEL.

Характеристики и философия дизайна

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

RISC-процессор имеет набор команд, предназначенный для эффективного выполнения конвейерным процессором и генерации кода оптимизирующим компилятором.

-  Майкл Слейтер, Отчет о микропроцессоре [31]

Философия набора команд

Распространенное неправильное понимание фразы «компьютер с сокращенным набором команд» заключается в том, что инструкции просто удаляются, в результате чего получается меньший набор инструкций. [32] Фактически, с годами наборы инструкций RISC выросли в размерах, и сегодня многие из них имеют больший набор инструкций, чем многие ЦП CISC. [33] [34] Некоторые RISC-процессоры, такие как PowerPC, имеют наборы команд такого же размера, как CISC IBM System/370 , например; и наоборот, DEC PDP-8 — очевидно, ЦП CISC, поскольку многие из его инструкций требуют многократного доступа к памяти — имеет только 8 основных инструкций и несколько расширенных инструкций. [35] Термин «сокращенный» в этой фразе был предназначен для описания того факта, что объем работы, выполняемой каждой отдельной командой, сокращается — максимум на один цикл памяти данных — по сравнению со «сложными инструкциями» ЦП CISC, которые могут потребовать десятки циклов памяти данных для выполнения одной инструкции. [36]

Иногда предпочитают использовать термин « архитектура загрузки-хранения» .

Другой способ взглянуть на дебаты RISC/CISC — рассмотреть, что именно становится доступным компилятору. В процессоре CISC аппаратное обеспечение может внутренне использовать регистры и бит флага для реализации одной сложной инструкции, такой как STRING MOVE, но скрывать эти детали от компилятора. Внутренние операции RISC-процессора «открываются для компилятора», что привело к появлению бэкронима «Передать интересные вещи компилятору». [37] [38]

Формат инструкции

Большинство RISC-архитектур имеют инструкции фиксированной длины и простое кодирование, что значительно упрощает логику выборки, декодирования и выдачи. Это одна из основных целей подхода RISC. [22]

Частично это возможно только благодаря современному переходу на 32-битные форматы. Например, в типичной программе более 30% всех числовых констант имеют значения 0 или 1, 95% умещаются в один байт, а 99% — в 16-битное значение. [39] Когда компьютеры были основаны на 8- или 16-битных словах, было бы трудно немедленно объединить код операции в одном слове памяти, хотя некоторые инструкции, такие как увеличение и уменьшение, делали это неявно, используя другой код операции. Напротив, 32-битная машина имеет достаточно места для кодирования непосредственного значения, и это позволяет избежать необходимости выполнять второе чтение памяти, чтобы получить значение. Вот почему многие RISC-процессоры позволяют кодировать 12- или 13-битную константу непосредственно в командное слово. [22]

Если предположить, что постоянная область составляет 13 бит, как в случае с конструкциями MIPS и RISC, для кодирования инструкций доступны еще 19 бит. Это оставляет достаточно места для указания как кода операции, так и одного или двух регистров. Операции между регистрами, в основном математические и логические, требуют достаточного количества битов для кодирования двух или трех используемых регистров. Большинство процессоров используют формат трех операндов вида , и A = B + Cв этом случае необходимы три номера регистров. Если в процессоре 32 регистра, для каждого требуется 5-битное число, то есть 15 бит. Если один из этих регистров заменяется непосредственным, остается достаточно места для кодирования двух оставшихся регистров и кода операции. Общие инструкции, встречающиеся в системах из нескольких слов, такие как INCи DEC, которые уменьшают количество слов, которые необходимо прочитать перед выполнением инструкции, не нужны в RISC, поскольку их можно выполнить с помощью одного регистра и непосредственного значения 1. [22]

Исходный формат RISC-I остается каноническим примером этой концепции. Он использует 7 бит для кода операции и 1-битный флаг для условных кодов, следующие 5 бит для регистра назначения и следующие пять бит для первого операнда. Остается 14 бит, первый из которых указывает, содержат ли следующие 13 непосредственное значение или используются только пять из них для обозначения регистра для второго операнда. [22] Более сложным примером является кодирование MIPS, в котором для кода операции используется только 6 бит, за которыми следуют два 5-битных регистра. Оставшиеся 16 бит можно использовать двумя способами: один — как 16-битное непосредственное значение или как 5-битное значение сдвига (используется только в операциях сдвига, в противном случае — ноль), а остальные 6 бит — как расширение кода операции. В случае арифметических операций между регистрами код операции был равен 0, а последние 6 битов содержали фактический код; те, которые использовали немедленное значение, использовали обычное поле кода операции спереди. [40]

Одним из недостатков 32-битных инструкций является пониженная плотность кода, что является более неблагоприятной характеристикой для встроенных вычислений, чем для рынков рабочих станций и серверов, для которых изначально были разработаны RISC-архитектуры. Чтобы решить эту проблему, некоторые архитектуры, такие как ARM , Power ISA , MIPS , RISC-V и Adapteva Epiphany , имеют дополнительный короткий набор сжатых команд с ограниченным набором функций . Как правило, эти инструкции предоставляют меньшее количество регистров и меньше битов для непосредственных значений и часто используют формат двух инструкций, чтобы исключить один номер регистра из инструкций. Формат с двумя операндами в системе с 16 регистрами требует 8 бит для номеров регистров, оставляя еще 8 для кода операции или других целей. SH5 также следует этому шаблону, хотя и развивается в противоположном направлении, добавляя более длинные 32-битные инструкции к исходной 16-битной кодировке.

Использование оборудования

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

Другие особенности RISC-архитектур включают в себя:

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

Многие ранние разработки RISC также имели общую характеристику наличия слота задержки ветвления — пространства команд сразу после перехода или ветвления. Инструкция в этом пространстве выполняется независимо от того, выполнен переход или нет (другими словами, эффект перехода задерживается). Эта инструкция удерживает АЛУ ЦП занятым на дополнительное время, обычно необходимое для выполнения перехода. В настоящее время слот задержки ветвления считается неудачным побочным эффектом конкретной стратегии реализации некоторых RISC-проектов, а современные RISC-проекты обычно устраняют его (например, PowerPC и более поздние версии SPARC и MIPS). [ нужна цитата ]

Некоторые аспекты, приписываемые первым проектам с маркировкой RISC примерно в 1975 году, включают наблюдения о том, что компиляторы с ограниченной памятью того времени часто были неспособны воспользоваться преимуществами функций, предназначенных для облегчения ручного ассемблерного кодирования, и что сложные режимы адресации требовали много циклов для выполнения из-за необходимые дополнительные доступы к памяти. Это утверждалось [ кем? ] что такие функции лучше выполнялись бы последовательностями более простых инструкций, если бы это могло дать реализации, достаточно маленькие, чтобы оставить место для многих регистров, уменьшая количество медленных обращений к памяти. В этих простых конструкциях большинство инструкций имеют одинаковую длину и аналогичную структуру, арифметические операции ограничены регистрами ЦП, и только отдельные инструкции загрузки и сохранения обращаются к памяти. Эти свойства позволяют лучше балансировать этапы конвейера, чем раньше, что делает конвейеры RISC значительно более эффективными и обеспечивает более высокие тактовые частоты .

Еще одним стимулом для развития RISC и других проектов стали практические измерения в реальных программах. Эндрю Таненбаум резюмировал многие из них, продемонстрировав, что процессоры часто имеют непосредственные продукты слишком большого размера. Например, он показал, что 98% всех констант в программе умещаются в 13 битах , однако во многих конструкциях ЦП для их хранения отведено 16 или 32 бита. Это предполагает, что для уменьшения количества обращений к памяти машина фиксированной длины может хранить константы в неиспользуемых битах самого командного слова, чтобы они были немедленно готовы, когда они потребуются ЦП (так же, как немедленная адресация в традиционной конструкции). . Для этого требовались небольшие коды операций, чтобы оставить место для константы разумного размера в 32-битном командном слове.

Поскольку многие реальные программы тратят большую часть своего времени на выполнение простых операций, некоторые исследователи решили сосредоточиться на том, чтобы сделать эти операции как можно быстрее. Тактовая частота ЦП ограничена временем, необходимым для выполнения самой медленной подоперации любой инструкции; уменьшение времени цикла часто ускоряет выполнение других инструкций. [42] Акцент на «сокращенных инструкциях» привел к тому, что получившуюся машину назвали «компьютером с сокращенным набором команд» (RISC). Цель заключалась в том, чтобы сделать инструкции настолько простыми, чтобы их можно было легко конвейеризировать, чтобы достичь пропускной способности в один такт на высоких частотах . Это контрастировало с конструкциями CISC, чьи «важнейшие арифметические операции и передача регистров» считались трудными для конвейеризации. [43]

Позже было отмечено, что одной из наиболее важных характеристик RISC-процессоров было то, что внешняя память была доступна только с помощью инструкций загрузки или сохранения . Все остальные инструкции ограничивались внутренними регистрами. Это упростило многие аспекты конструкции процессора: разрешение инструкций иметь фиксированную длину, упрощение конвейеров и изолирование логики для обработки задержки при завершении доступа к памяти (промах в кэше и т. д.) только для двух инструкций. Это привело к тому, что конструкции RISC стали называть архитектурами загрузки и хранения . [44]

Сравнение с другими архитектурами

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

Архитектуры RISC традиционно не имели большого успеха на рынках настольных ПК и обычных серверов, где платформы на базе x86 остаются доминирующей архитектурой процессоров. Однако ситуация может измениться, поскольку процессоры на базе ARM разрабатываются для более производительных систем. [45] Производители, включая Cavium , AMD и Qualcomm , выпустили серверные процессоры на базе архитектуры ARM. [46] [47] В 2017 году ARM стала партнером Cray для производства суперкомпьютера на базе ARM. [48] ​​Что касается настольных компьютеров, Microsoft объявила, что планирует поддерживать версию Windows 10 для ПК на устройствах на базе Qualcomm Snapdragon в 2017 году в рамках своего партнерства с Qualcomm. Эти устройства будут поддерживать приложения Windows, скомпилированные для 32-разрядной версии x86 с помощью эмулятора процессора x86 , который преобразует 32-разрядный код x86 в код ARM64 . [49] [50] Apple объявила, что переведет свои настольные и портативные компьютеры Mac с процессоров Intel на SoC собственной разработки на базе ARM64 под названием Apple Silicon ; Первые такие компьютеры с процессором Apple M1 были выпущены в ноябре 2020 года. [51] Компьютеры Mac с процессором Apple могут запускать двоичные файлы x86-64 с Rosetta 2 , транслятором x86-64 в ARM64. [52]

Однако за пределами настольных компьютеров архитектура ARM RISC широко используется в смартфонах, планшетах и ​​многих видах встраиваемых устройств. Хотя ранние конструкции RISC значительно отличались от современных конструкций CISC, к 2000 году самые производительные процессоры линейки RISC были почти неотличимы от самых высокопроизводительных процессоров линейки CISC. [53] [54] [55]

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

Архитектуры RISC теперь используются на самых разных платформах, от смартфонов и планшетных компьютеров до некоторых из самых быстрых в мире суперкомпьютеров , таких как Fugaku , самый быстрый из списка TOP500 по состоянию на ноябрь 2020 года , и Summit , Sierra и Sunway TaihuLight , следующие три. в этом списке. [56]

Бюджетные и мобильные системы

К началу 21 века большинство недорогих и мобильных систем опирались на RISC-архитектуры. [57] Примеры включают:

Настольные и портативные компьютеры

Рабочие станции, серверы и суперкомпьютеры

Открытый источник

RISC-архитектуры стали популярными в процессорах с открытым исходным кодом и программных микропроцессорах, поскольку их относительно просто реализовать, что делает их пригодными, например, для реализации FPGA и прототипирования. Примеры включают в себя:

Награды

В 2022 году Стив Фербер , Джон Л. Хеннесси , Дэвид А. Паттерсон и Софи М. Уилсон были награждены премией Чарльза Старка Дрейпера от Национальной инженерной академии США за вклад в изобретение, разработку и внедрение компьютера с сокращенным набором команд. (RISC) чипы. [63] [64]

Смотрите также

Рекомендации

  1. ^ Чен, Кристалл; Новик, Грег; Шимано, Кирк. «Трубопровод». РИСЦ Архитектура .
  2. ^ Аб Флинн, Майкл Дж. (1995). Компьютерная архитектура: конвейерное и параллельное проектирование процессоров . Джонс и Бартлетт Обучение. стр. 54–56. ISBN 0867202041.
  3. ^ Колвелл, Роберт П.; Хичкок III, Чарльз Ю.; Дженсен, Э. Дуглас; Спрант, Его Величество Бринкли; Коллар, Чарльз П. (сентябрь 1985 г.). «Наборы инструкций и не только: компьютеры, сложность и противоречия» (PDF) . Компьютер . IEEE. стр. 8–19.
  4. Алетан, Сэмюэл О. (1 апреля 1992 г.). «Обзор RISC-архитектуры». Материалы симпозиума ACM/SIGAPP 1992 года по прикладным вычислениям: технологические проблемы 1990-х годов . САК '92. Канзас-Сити, Миссури: Ассоциация вычислительной техники . стр. 11–20. дои : 10.1145/143559.143570.
  5. ^ Маркофф, Джон (ноябрь 1984 г.). «Новые чипы — чипы RISC». Байт . Том. 9, нет. 12. МакГроу-Хилл. стр. 191–206.
  6. ^ Бурсен де л'Арк, Филипп. «История информатики и Интернета». boursinp.free.fr .
  7. Мануэль, Том (3 сентября 1987 г.). «Внутренние технологии — безумный поиск большей скорости» (PDF) . Электроника . МакГроу-Хилл. стр. 59–62.
  8. ^ «Японский Fugaku завоевал титул самого быстрого суперкомпьютера в мире» . РИКЕН . Проверено 24 июня 2020 г.
  9. ^ Фишер, Джозеф А.; Фарабоски, Паоло; Янг, Клифф (2005). Встроенные вычисления: подход VLIW к архитектуре, компиляторам и инструментам . Эльзевир. п. 55. ИСБН 1558607668.
  10. ^ Рейли, Эдвин Д. (2003). Вехи развития информатики и информационных технологий . Издательство Гринвуд. стр. 50. ISBN 1-57356-521-0.
  11. ^ Гришман, Ральф (1974). Программирование на языке ассемблера для управляющих данных серии 6000 и серии Cyber ​​70 . Алгоритма Пресс. п. 12. ОКЛК  425963232.
  12. ^ Донгарра, Джек Дж.; и другие. (1987). Численная линейная алгебра на высокопроизводительных компьютерах . стр. 6. ISBN 0-89871-428-1.
  13. ^ abc Кок, Джон; Маркштейн, Виктория (январь 1990 г.). «Эволюция технологии RISC в IBM» (PDF) . Журнал исследований и разработок IBM . 34 (1): 4–11. дои : 10.1147/rd.341.0004.
  14. ^ Обзор системы IBM System/370 (технический отчет). ИБМ. Январь 1987 года.
  15. ^ Шилц, Юрий; Робич, Борут; Унгерер, Тео (1999). Архитектура процессора: от потока данных к суперскаляру и далее . Спрингер. стр. 33. ISBN 3-540-64798-8.
  16. ^ abcdef Финансирование революции: государственная поддержка компьютерных исследований Комитетом по инновациям в области вычислений и коммуникаций, 1999 ISBN 0-309-06278-0 , стр. 239 
  17. ^ Нурми, Яри (2007). Проектирование процессоров: вычисления системы на кристалле для ASIC и FPGA . Спрингер. стр. 40–43. ISBN 978-1-4020-5529-4.
  18. ^ Хилл, Марк Дональд; Жуппи, Норман Пол ; Сохи, Гуриндар (1999). Чтения по компьютерной архитектуре . Галф Профессионал. стр. 252–4. ISBN 1-55860-539-8.
  19. ^ Старнс, Томас (май 1983 г.). «Философия дизайна Motorola MC68000». Байт . п. Фото 1.
  20. Паттерсон, Дэвид (30 мая 2018 г.). «История РИСЦи». ЭМ СИГАРХ .
  21. ^ abc «Пример: Беркли RISC II». Архивировано из оригинала 13 июня 2022 года.
  22. ^ abcdefghij Паттерсон, Дэвид А.; Блесток, Карло Х. (1981). RISC I: Компьютер VLSI с сокращенным набором команд. 8-й ежегодный симпозиум по компьютерной архитектуре. Миннеаполис, Миннесота, США. стр. 443–457. дои : 10.1145/285930.285981.В формате PDF
  23. ^ Аб Паттерсон, Д.А .; Дитцель, Д.Р. (1980). «Дело о компьютере с сокращенным набором команд». Новости компьютерной архитектуры ACM SIGARCH . 8 (6): 25–33. CiteSeerX 10.1.1.68.9623 . дои : 10.1145/641914.641917. S2CID  12034303. 
  24. ^ Блестка, Карло; Паттерсон, Дэвид (июль 1982 г.). Проектирование и реализация RISC I (PDF) . Продвинутый курс по архитектуре СБИС. Бристольский университет. КСД-82-106.
  25. ^ abcd Чоу, Пол (1989). RISC-микропроцессор MIPS-X . Спрингер. стр. XIX – XX. ISBN 0-7923-9045-8.
  26. ^ Аб Нурми 2007, стр. 52–53.
  27. ^ Уивер, Винсент; Макки, Салли. Проблемы плотности кода для новых архитектур (PDF) . МКГД 2009.
  28. ^ Такер, Аллен Б. (2004). Справочник по информатике . Тейлор и Фрэнсис. стр. 100–6. ISBN 1-58488-360-Х.
  29. ^ «Оливетти покупает карту RISC» . Пользователь Желудя . Август 1988 г. с. 7 . Проверено 24 мая 2021 г.
  30. ^ Уотерман, Эндрю; Ли, Юнсуп; Паттерсон, Дэвид А.; Асанови, Крсте. «Руководство по набору команд RISC-V, том I: базовый уровень пользователя ISA версии 2.0». Калифорнийский университет, Беркли. Технический отчет EECS-2014-54 . Проверено 1 марта 2022 г.
  31. ^ Слейтер, Майкл (июнь 1990 г.). «Что такое РИСК?». IEEE микро . стр. 96–95 . Проверено 20 марта 2023 г.
  32. ^ Эспонда, Маргарита; Рохас, Рауль (сентябрь 1991 г.). «Раздел 2: Путаница вокруг концепции RISC». Концепция RISC — обзор реализаций . Свободный университет Берлина. Б-91-12.
  33. ^ Стоукс, Джон «Ганнибал». «RISC против CISC: эпоха пост-RISC». Арс Техника .
  34. ^ Борретт, Ллойд (июнь 1991 г.). «RISC против CISC». Австралийский персональный компьютер .
  35. ^ Джонс, Дуглас В. «Часто задаваемые вопросы о DEC PDP-8 Дуга Джонса». Коллекция PDP-8, факультет компьютерных наук Университета Айовы .
  36. ^ Дандамуди, Шиварама П. (2005). «Глава 3: Принципы RISC». Руководство по RISC-процессорам для программистов и инженеров . Спрингер. стр. 39–44. дои : 10.1007/0-387-27446-4_3. ISBN 978-0-387-21017-9. основная цель была не уменьшить количество инструкций, а усложнить
  37. Уоллс, Колин (18 апреля 2016 г.). «ЦИСК и РИНЦ».
  38. ^ Фишер, Джозеф А.; Фарабоски, Паоло; Янг, Клифф (2005). Встроенные вычисления: подход VLIW к архитектуре, компиляторам и инструментам. Эльзевир. п. 57. ИСБН 9781558607668.
  39. ^ Александр, В. Грегг; Вортман, Дэвид (ноябрь 1975 г.). «Статические и динамические характеристики программ XPL». IEEE-компьютер . 8 (11): 41–48. дои : 10.1109/CM.1975.218804. S2CID  39685209.
  40. ^ Соарес, Жуан; Роча, Рикардо. «Кодирование инструкций MIPS» (PDF) .
  41. ^ Колвелл, Роберт П.; Хичкок III, Чарльз Ю.; Дженсен, Э. Дуглас; Спрант, Его Величество Бринкли; Коллар, Чарльз П. (сентябрь 1985 г.). «Наборы инструкций и не только: компьютеры, сложность и противоречия». Компьютер . 18 (9). Институт инженеров по электротехнике и электронике, Inc.: 8–19. дои : 10.1109/MC.1985.1663000. S2CID  7306378 . Проверено 25 марта 2023 г.
  42. ^ «Микропроцессоры с точки зрения программиста», Эндрю Шульман, 1990 г.
  43. ^ Свитман, Доминик (1987). «Рабочая станция RISC». Материалы конференции, состоявшейся в Computer Graphics 87, Лондон, октябрь 1987 г. Интернет-публикации: 83–91. ISBN 0-86353-092-3. Проверено 26 марта 2024 г.
  44. ^ Дауд, Кевин; Лукидес, Майкл К. (1993). Высокопроизводительные вычисления. О'Рейли. ISBN 1565920325.
  45. Винсент, Джеймс (9 марта 2017 г.). «Microsoft представляет новые конструкции серверов ARM, угрожающие доминированию Intel». Грань . Проверено 12 мая 2017 г. .
  46. Рассел, Джон (31 мая 2016 г.). «Cavium раскрывает планы ThunderX2 и сообщает, что популярность ARM растет» . Провод HPC . Проверено 8 марта 2017 г.
  47. ^ Первый процессор AMD на базе ARM, Opteron A1100, наконец-то здесь, ExtremeTech, 14 января 2016 г. , получено 14 августа 2016 г.
  48. Фельдман, Майкл (18 января 2017 г.). «Cray поставит суперкомпьютер на базе ARM британскому консорциуму». Top500.org . Проверено 12 мая 2017 г. .
  49. ^ «Microsoft переносит настольные приложения Windows на мобильные процессоры ARM» . Грань . 8 декабря 2016 года . Проверено 8 декабря 2016 г.
  50. ^ «Как эмуляция x86 работает на ARM» . Документы Майкрософт . 23 октября 2023 г. Проверено 27 октября 2023 г.
  51. ^ ab «Представляем следующее поколение Mac» (пресс-релиз). Apple Inc., 10 ноября 2020 г.
  52. ^ «macOS Big Sur уже здесь» (пресс-релиз). Apple Inc., 12 ноября 2020 г.
  53. ^ Картер, Николас П. (2002). Очерк компьютерной архитектуры Шаума. МакГроу Хилл Профессионал. п. 96. ИСБН 0-07-136207-Х.
  54. ^ Джонс, Дуглас Л. (2000). «Микропроцессоры CISC, RISC и DSP» (PDF) .
  55. ^ Сингх, Амит. «История операционных систем Apple». Архивировано из оригинала 3 апреля 2020 года. Граница между RISC и CISC с годами становится все более размытой.
  56. ^ «Список 500 лучших: ноябрь 2020 г.» . ТОП 500 . Проверено 2 января 2021 г.
  57. ^ Дандамуди 2005, стр. 121–123.
  58. ^ Беннетт, Эми (2005). «Apple переходит с PowerPC на Intel». Компьютерный мир . Архивировано из оригинала 13 ноября 2020 года . Проверено 24 августа 2020 г.
  59. ^ Воан-Николс, Стивен Дж. «Обзор: Chromebook Samsung на базе ARM». ЗДНет . Проверено 28 апреля 2021 г.
  60. ДеАнджелис, Марк (22 июня 2020 г.). «На этой неделе Apple начинает двухлетний переход на ARM». Engadget . Проверено 24 августа 2020 г. Apple официально объявила, что перейдет с процессоров Intel на собственные чипы серии A на базе ARM в своих компьютерах Mac.
  61. Смит, Крис (16 сентября 2020 г.). «Этой осенью Microsoft выпустит новый Surface на базе ARM». Отчет о мальчиках-гениях . Проверено 20 марта 2023 г.
  62. ^ «Процессор ARM — Процессор AWS Graviton — AWS» . Amazon Веб-сервисы, Inc. Проверено 9 января 2024 г.
  63. ^ «Получатели премии Чарльза Старка Дрейпера в области инженерии». наэ.еду .
  64. ^ "Премия Чарльза Старка Дрейпера в области инженерии" . наэ.еду .

Внешние ссылки