Компьютер с сокращенным набором команд
Было предложено компьютер со сложным набором команд объединить в эту статью. ( Обсудить ) Предлагается с декабря 2023 г. |
В электронике и информатике компьютер с сокращенным набором команд ( 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]
IBM 801 [ править ]
Майкл Дж. Флинн рассматривает первую 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, использовали для этого микрокод , считывая инструкции и повторно реализуя их как последовательность более простых внутренних инструкций. В 68к полный 1/3 Для транзисторов . этого микрокодирования использовалось [19]
В 1979 году Дэвида Паттерсона отправили в творческий отпуск из Калифорнийского университета в Беркли, чтобы помочь команде западного побережья DEC улучшить микрокод VAX. Паттерсон был поражен сложностью процесса кодирования и пришел к выводу, что он несостоятелен. [20] Сначала он написал статью о способах улучшения микрокодирования, но позже передумал и решил, что проблема заключается в самом микрокоде. При финансовой поддержке программы DARPA VLSI Паттерсон начал работу над проектом RISC в Беркли . Программа, сегодня практически неизвестная, привела к огромному количеству достижений в разработке, производстве и даже компьютерной графике микросхем. Рассмотрев множество программ из своего варианта BSD Unix , команда Беркли, как и IBM, обнаружила, что большинство программ не используют большое количество инструкций в 68k. [21]
Ранние работы Паттерсона указали на важную проблему традиционного подхода «чем больше, тем лучше»; даже те инструкции, которые были критически важны для общей производительности, задерживались из-за прохождения через микрокод. Если бы микрокод был удален, программы работали бы быстрее. А поскольку микрокод в конечном итоге взял сложную инструкцию и разбил ее на этапы, не было причин, по которым компилятор не мог бы сделать это вместо этого. Эти исследования показали, что даже без каких-либо других изменений можно создать чип с 1/3 На меньше транзисторов , которые будут работать быстрее. [21] В оригинальной статье RISC-I они отметили: [22]
Пропуск этого дополнительного уровня интерпретации, по-видимому, повышает производительность при одновременном уменьшении размера чипа. [22]
Также было обнаружено, что в реализациях определенных архитектур с микрокодированием сложные операции имеют тенденцию выполняться медленнее, чем последовательность более простых операций, выполняющих то же самое. Частично это было следствием того, что многие разработки выполнялись в спешке, и у них было мало времени на оптимизацию или настройку каждой инструкции; были оптимизированы только те, которые использовались чаще всего, и последовательность этих инструкций могла быть быстрее, чем менее настроенная инструкция, выполняющая эквивалентную операцию, аналогичную этой последовательности. Одним из печально известных примеров была компания VAX . INDEX
инструкция. [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]
Коммерческий прорыв [ править ]
В начале 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-х годов, что привело, например, к « железному закону производительности процессора» .
новая с открытым исходным кодом архитектура набора команд (ISA), RISC-V С 2010 года в Калифорнийском университете в Беркли разрабатывается версия 2 пользовательского пространства ISA. , для исследовательских целей и в качестве бесплатной альтернативы проприетарным ISA. По состоянию на 2014 год исправлена [30] ISA спроектирована с возможностью расширения от базового ядра, достаточного для небольшого встроенного процессора, до суперкомпьютера и облачных вычислений со стандартными расширениями и сопроцессорами, определяемыми разработчиком микросхем. Он был протестирован в кремниевом исполнении с помощью ROCKET SoC , который также доступен в виде процессорного генератора с открытым исходным кодом на языке CHISEL.
и дизайна Характеристики философия
Этот раздел нуждается в дополнительных цитатах для проверки . ( Март 2012 г. ) |
Путаница вокруг определения RISC, возникшая из-за формулировки этого термина, а также тенденция оппортунистически классифицировать процессорные архитектуры с относительно небольшим количеством инструкций (или групп инструкций) как RISC-архитектуры, привели к попыткам определить RISC как философию проектирования. Одна из попыток сделать это выражалась в следующем:
RISC-процессор имеет набор команд, предназначенный для эффективного выполнения конвейерным процессором и генерации кода оптимизирующим компилятором.
— Майкл Слейтер, Отчет о микропроцессоре [31]
Философия набора команд [ править ]
Распространенное неправильное понимание фразы «компьютер с сокращенным набором команд» заключается в том, что инструкции просто удаляются, в результате чего получается меньший набор инструкций. [32] Фактически, с течением времени наборы инструкций RISC увеличивались в размерах, и сегодня многие из них имеют больший набор инструкций, чем многие ЦП CISC. [33] [34] CISC IBM System/370 Некоторые RISC-процессоры, такие как PowerPC, имеют наборы команд такого же размера, как , например, ; И наоборот, 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-архитектур включают в себя:
- Одноцикловая операция, описываемая как «быстрое выполнение простых функций, которые доминируют в потоке команд компьютера», таким образом стремясь обеспечить среднюю пропускную способность, приближающуюся к одной инструкции за цикл для любого одного потока команд. [41]
- Единый формат инструкций с использованием одного слова с кодом операции в одинаковых битовых позициях для упрощения декодирования.
- Все регистры общего назначения могут одинаково использоваться в качестве источника/назначения во всех инструкциях, что упрощает конструкцию компилятора ( регистры с плавающей запятой часто хранятся отдельно).
- Простые режимы адресации со сложной адресацией, выполняемой последовательностями команд.
- Мало типов данных в аппаратном обеспечении ( нет байтовой строки или двоично-десятичного числа [BCD]). например,
В проектах 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. процессора x86 Эти устройства будут поддерживать приложения Windows, скомпилированные для 32-разрядной версии x86 с помощью эмулятора , который преобразует 32-разрядный код x86 в код ARM64 . [49] [50] Apple объявила, что переведет свои настольные и портативные компьютеры Mac собственной разработки на базе ARM64 с процессоров Intel на SoC под названием 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 года. [update]и Summit , Sierra и Sunway TaihuLight , следующие три в этом списке. [56]
Бюджетные и мобильные системы [ править ]
К началу 21 века большинство недорогих и мобильных систем опирались на RISC-архитектуру. [57] Примеры включают в себя:
- Архитектура ARM доминирует на рынке маломощных и недорогих встраиваемых систем (обычно 200–1800 МГц в 2014 году). Он используется в ряде систем, таких как большинство систем на базе Android , Apple iPhone , iPod Touch , iPad , Apple Watch и Apple TV , Microsoft Windows Phone (ранее Windows Mobile ), RIM устройства , Nintendo Game Boy Advance , DS. , 3DS и Switch , Raspberry Pi и т. д.
- IBM PowerPC использовался в GameCube , Wii , PlayStation 3 , Xbox 360 и Wii U. игровых консолях
- Линия MIPS (в какой-то момент использовавшаяся во многих компьютерах SGI ) использовалась в игровых консолях PlayStation , PlayStation 2 , Nintendo 64 , PlayStation Portable и домашних шлюзах , таких как серия Linksys WRT54G .
- Hitachi от SuperH , первоначально широко использовавшаяся в Sega Super 32X , Saturn и Dreamcast , теперь разработанная и продаваемая Renesas как SH4 .
- Atmel AVR , используемый в различных продуктах: от портативных контроллеров Xbox и Arduino платформы микроконтроллеров с открытым исходным кодом BMW . до автомобилей
- RISC-V , открытым исходным кодом пятая версия Berkeley RISC ISA с , с 32- или 64-битными адресными пространствами , небольшим базовым набором целочисленных команд и экспериментальной «сжатой» ISA для плотности кода, предназначенной для стандартных и специальных расширений.
Настольные и портативные компьютеры [ править ]
- Архитектура IBM PowerPC использовалась в компьютерах Apple Macintosh с 1994 года, когда они начали переход с процессоров семейства Motorola 68000 , до 2005 года, когда они перешли на процессоры Intel x86 . [58]
- Некоторые Chromebook используют платформы на базе ARM с 2012 года. [59]
- Apple использует процессоры собственной разработки на базе архитектуры ARM для своей линейки настольных компьютеров и ноутбуков с момента перехода от процессоров Intel . [60] и первые такие компьютеры были выпущены в ноябре 2020 года. [51]
- Microsoft использует Qualcomm [61] Процессоры на базе ARM для линейки Surface . HP Inc и Lenovo выпустили ПК с ОС Windows Snapdragon на базе ARM и процессором Qualcomm .
Рабочие станции, серверы и суперкомпьютеры [ править ]
- MIPS от Silicon Graphics (прекратила производство систем на базе MIPS в 2006 году).
- SPARC от Oracle (ранее Sun Microsystems ) и Fujitsu .
- IBM от Архитектура IBM POWER , PowerPC и Power ISA использовались и используются во многих суперкомпьютерах IBM, серверах среднего класса и рабочих станциях.
- Hewlett-Packard компании PA-RISC , также известный как HP-PA (выпуск прекращен в конце 2008 года).
- Alpha , используемая в одноплатных компьютерах , рабочих станциях, серверах и суперкомпьютерах от Digital Equipment Corporation , затем Compaq и, наконец, Hewlett-Packard (HP) (выпуск прекращен с 2007 года).
- RISC-V , с открытым исходным кодом пятый RISC ISA Беркли , с 64- или 128-битным адресным пространством и целочисленным ядром, расширенным за счет операций с плавающей запятой, атомарной и векторной обработкой и предназначенным для расширения инструкциями для работы в сети, ввода-вывода, и обработка данных. 64-битная суперскалярная версия «Ракета» доступна для загрузки. Он реализован в процессоре European Processor Initiative .
- Архитектура ARM в настоящее время используется поставщиками облачных услуг для серверов. Одним из примеров является процессор AWS Graviton, используемый для различных сервисов на платформе AWS. [62] ARM также использовался в чипе Fujitsu A64FX при создании Fugaku, самого быстрого суперкомпьютера в мире в 2020 году.
Открытый исходный код [ править ]
RISC-архитектуры стали популярными в процессорах с открытым исходным кодом и программных микропроцессорах, поскольку их относительно просто реализовать, что делает их пригодными FPGA , например, для реализации и прототипирования. Примеры включают в себя:
- OpenRISC — открытый набор команд и микроархитектура, впервые представленная в 2000 году.
- LEON — радиационно-устойчивая реализация набора команд SPARC V8 с открытым исходным кодом (ориентированная на космические приложения).
- Libre-SOC , SoC с открытым исходным кодом на основе Power ISA с расширениями для видео и 3D-графики.
- Существует также несколько RISC-V с открытым исходным кодом . реализаций
Награды [ править ]
В 2022 году Стив Фербер , Джон Л. Хеннесси , Дэвид А. Паттерсон и Софи М. Уилсон были награждены премией Чарльза Старка Дрейпера США от Национальной инженерной академии за вклад в изобретение, разработку и внедрение компьютера с сокращенным набором команд. (RISC) чипы. [63] [64]
См. также [ править ]
- Классический конвейер RISC
- Микропроцессор
- Никаких вычислений с набором команд
- Компьютер с одним набором команд
Ссылки [ править ]
- ^ Чен, Кристал; Новик, Грег; Шимано, Кирк. «Трубопровод» . РИСЦ Архитектура .
- ↑ Перейти обратно: Перейти обратно: а б Флинн, Майкл Дж. (1995). Компьютерная архитектура: конвейерное и параллельное проектирование процессоров . Джонс и Бартлетт Обучение. стр. 54–56. ISBN 0867202041 .
- ^ Колвелл, Роберт П.; Хичкок III, Чарльз Ю.; Дженсен, Э. Дуглас; Спрант, Его Величество Бринкли; Коллар, Чарльз П. (сентябрь 1985 г.). «Наборы инструкций и не только: компьютеры, сложность и противоречия» (PDF) . Компьютер . IEEE. стр. 8–19.
- ^ Алетан, Сэмюэл О. (1 апреля 1992 г.). «Обзор RISC-архитектуры» . Материалы симпозиума ACM/SIGAPP 1992 года по прикладным вычислениям: технологические проблемы 1990-х годов . САК '92. Канзас-Сити, Миссури: Ассоциация вычислительной техники . стр. 11–20. дои : 10.1145/143559.143570 .
- ^ Маркофф, Джон (ноябрь 1984 г.). «Новые чипы — чипы RISC» . Байт . Том. 9, нет. 12. МакГроу-Хилл. стр. 191–206.
- ^ Бурсен де л'Арк, Филипп. «История вычислительной техники и Интернета» . boursinp.free.fr .
- ^ Мануэль, Том (3 сентября 1987 г.). «Внутренние технологии — безумный поиск большей скорости» (PDF) . Электроника . МакГроу-Хилл. стр. 59–62.
- ^ «Японский Fugaku завоевал титул самого быстрого суперкомпьютера в мире» . РИКЕН . Проверено 24 июня 2020 г.
- ^ Фишер, Джозеф А.; Фарабоски, Паоло; Янг, Клифф (2005). Встроенные вычисления: подход VLIW к архитектуре, компиляторам и инструментам . Эльзевир. п. 55 . ISBN 1558607668 .
- ^ Рейли, Эдвин Д. (2003). Вехи развития информатики и информационных технологий . Издательство Гринвуд. стр. 50 . ISBN 1-57356-521-0 .
- ^ Гришман, Ральф (1974). Программирование на языке ассемблера для управляющих данных серии 6000 и серии Cyber 70 . Алгоритма Пресс. п. 12. ОКЛК 425963232 .
- ^ Донгарра, Джек Дж.; и др. (1987). Численная линейная алгебра на высокопроизводительных компьютерах . стр. 6 . ISBN 0-89871-428-1 .
- ↑ Перейти обратно: Перейти обратно: а б с Кок, Джон; Маркштейн, Виктория (январь 1990 г.). «Эволюция технологии RISC в IBM» (PDF) . Журнал исследований и разработок IBM . 34 (1): 4–11. дои : 10.1147/rd.341.0004 .
- ^ Краткое описание системы IBM System/370 (технический отчет). ИБМ. Январь 1987 года.
- ^ Шилц, Юрий; Робич, Борут; Унгерер, Тео (1999). Архитектура процессора: от потока данных к суперскаляру и далее . Спрингер. стр. 33 . ISBN 3-540-64798-8 .
- ↑ Перейти обратно: Перейти обратно: а б с д и ж Финансирование революции: государственная поддержка компьютерных исследований Комитетом по инновациям в области вычислений и коммуникаций, 1999 г. ISBN 0-309-06278-0 стр. 239
- ^ Нурми, Яри (2007). Проектирование процессоров: вычисления системы на кристалле для ASIC и FPGA . Спрингер. С. 40–43 . ISBN 978-1-4020-5529-4 .
- ^ Хилл, Марк Дональд; Жуппи, Норман Пол ; Сохи, Гуриндар (1999). Чтения по компьютерной архитектуре . Галф Профессионал. стр. 252–4. ISBN 1-55860-539-8 .
- ^ Старнс, Томас (май 1983 г.). «Философия дизайна Motorola MC68000» . Байт . п. Фото 1.
- ^ Паттерсон, Дэвид (30 мая 2018 г.). «История РИСЦи» . ЭМ СИГАРХ .
- ↑ Перейти обратно: Перейти обратно: а б с «Пример: Беркли RISC II» . Архивировано из оригинала 13 июня 2022 года.
- ↑ Перейти обратно: Перейти обратно: а б с д и ж г час я дж Паттерсон, Дэвид А.; Блестка, Карло Х. (1981). RISC I: Компьютер VLSI с сокращенным набором команд . 8-й ежегодный симпозиум по компьютерной архитектуре. Миннеаполис, Миннесота, США. стр. 443–457. дои : 10.1145/285930.285981 . В формате PDF
- ↑ Перейти обратно: Перейти обратно: а б Паттерсон, Вашингтон ; Дитцель, Д.Р. (1980). «Дело о компьютере с сокращенным набором команд». Новости компьютерной архитектуры ACM SIGARCH . 8 (6): 25–33. CiteSeerX 10.1.1.68.9623 . дои : 10.1145/641914.641917 . S2CID 12034303 .
- ^ Блестка, Карло; Паттерсон, Дэвид (июль 1982 г.). Проектирование и реализация RISC I (PDF) . Продвинутый курс по архитектуре СБИС. Бристольский университет. КСД-82-106.
- ↑ Перейти обратно: Перейти обратно: а б с д Чоу, Пол (1989). RISC-микропроцессор MIPS-X . Спрингер. стр. XIX – XX. ISBN 0-7923-9045-8 .
- ↑ Перейти обратно: Перейти обратно: а б Нурми 2007 , стр. 52–53
- ^ Уивер, Винсент; Макки, Салли. Проблемы плотности кода для новых архитектур (PDF) . МКГД 2009.
- ^ Такер, Аллен Б. (2004). Справочник по информатике . Тейлор и Фрэнсис. стр. 100 –6. ISBN 1-58488-360-Х .
- ^ «Оливетти покупает карту RISC» . Пользователь Желудя . Август 1988 г. с. 7 . Проверено 24 мая 2021 г.
- ^ Уотерман, Эндрю; Ли, Юнсуп; Паттерсон, Дэвид А.; Асанови, Крсте. «Руководство по набору команд RISC-V, том I: базовая версия ISA 2.0 уровня пользователя» . Калифорнийский университет, Беркли. Технический отчет EECS-2014-54 . Проверено 1 марта 2022 г.
- ^ Слейтер, Майкл (июнь 1990 г.). «Что такое РИСК?» . IEEE микро . стр. 96–95 . Проверено 20 марта 2023 г.
- ^ Эспонда, Маргарита; Рохас, Рауль (сентябрь 1991 г.). «Раздел 2: Путаница вокруг концепции RISC» . Концепция RISC — обзор реализаций . Свободный университет Берлина. Б-91-12.
- ^ Стоукс, Джон «Ганнибал». «RISC против CISC: эра пост-RISC» . Арс Техника .
- ^ Борретт, Ллойд (июнь 1991 г.). «RISC против CISC» . Австралийский персональный компьютер .
- ^ Джонс, Дуглас В. «Часто задаваемые вопросы о DEC PDP-8 Дуга Джонса» . Коллекция PDP-8, факультет компьютерных наук Университета Айовы .
- ^ Дандамуди, Шиварама П. (2005). «Глава 3: Принципы RISC». Руководство по RISC-процессорам для программистов и инженеров . Спрингер. стр. 39–44 . дои : 10.1007/0-387-27446-4_3 . ISBN 978-0-387-21017-9 .
основная цель была не уменьшить количество инструкций, а усложнить
- ^ Уоллс, Колин (18 апреля 2016 г.). «ЦИСК и РИСЦ» .
- ^ Фишер, Джозеф А.; Фарабоски, Паоло; Янг, Клифф (2005). Встроенные вычисления: подход VLIW к архитектуре, компиляторам и инструментам . Эльзевир. п. 57. ИСБН 9781558607668 .
- ^ Александр, В. Грегг; Вортман, Дэвид (ноябрь 1975 г.). «Статические и динамические характеристики программ XPL» . IEEE-компьютер . 8 (11): 41–48. дои : 10.1109/CM.1975.218804 . S2CID 39685209 .
- ^ Соарес, Жуан; Роча, Рикардо. «Кодирование инструкций MIPS» (PDF) .
- ^ Колвелл, Роберт П.; Хичкок III, Чарльз Ю.; Дженсен, Э. Дуглас; Спрант, Его Величество Бринкли; Коллар, Чарльз П. (сентябрь 1985 г.). «Наборы инструкций и не только: компьютеры, сложность и противоречия» . Компьютер . 18 (9). Институт инженеров по электротехнике и электронике, Inc.: 8–19. дои : 10.1109/MC.1985.1663000 . S2CID 7306378 . Проверено 25 марта 2023 г.
- ^ «Микропроцессоры с точки зрения программиста», Эндрю Шульман, 1990 г.
- ^ Свитман, Доминик (1987). «Рабочая станция RISC» . Материалы конференции, состоявшейся в Computer Graphics 87, Лондон, октябрь 1987 г. Интернет-публикации. стр. 83–91. ISBN 0-86353-092-3 . Проверено 26 марта 2024 г.
- ^ Дауд, Кевин; Лукидес, Майкл К. (1993). Высокопроизводительные вычисления . О'Рейли. ISBN 1565920325 .
- ^ Винсент, Джеймс (9 марта 2017 г.). «Microsoft представляет новые конструкции серверов ARM, угрожающие доминированию Intel» . Грань . Проверено 12 мая 2017 г. .
- ^ Рассел, Джон (31 мая 2016 г.). «Cavium раскрывает планы ThunderX2 и сообщает, что популярность ARM растет» . Провод HPC . Проверено 8 марта 2017 г.
- ^ Первый процессор AMD на базе ARM, Opteron A1100, наконец-то появился , ExtremeTech, 14 января 2016 г. , получено 14 августа 2016 г.
- ^ Фельдман, Майкл (18 января 2017 г.). «Cray поставит суперкомпьютер на базе ARM британскому консорциуму» . Top500.org . Проверено 12 мая 2017 г. .
- ^ «Microsoft переносит настольные приложения Windows на мобильные процессоры ARM» . Грань . 8 декабря 2016 года . Проверено 8 декабря 2016 г.
- ^ «Как эмуляция x86 работает на ARM» . Документы Майкрософт . 23 октября 2023 г. Проверено 27 октября 2023 г.
- ↑ Перейти обратно: Перейти обратно: а б «Представляем следующее поколение Mac» (пресс-релиз). Apple Inc., 10 ноября 2020 г.
- ^ «macOS Big Sur уже здесь» (пресс-релиз). Apple Inc., 12 ноября 2020 г.
- ^ Картер, Николас П. (2002). Очерк компьютерной архитектуры Шаума . МакГроу Хилл Профессионал. п. 96. ИСБН 0-07-136207-Х .
- ^ Джонс, Дуглас Л. (2000). «Микропроцессоры CISC, RISC и DSP» (PDF) .
- ^ Сингх, Амит. «История операционных систем Apple» . Архивировано из оригинала 3 апреля 2020 года.
Граница между RISC и CISC с годами становится все более размытой.
- ^ «Список 500 лучших: ноябрь 2020 г.» . ТОП 500 . Проверено 2 января 2021 г.
- ^ Дандамуди 2005 , стр. 121–123
- ^ Беннетт, Эми (2005). «Apple переходит с PowerPC на Intel» . Компьютерный мир . Архивировано из оригинала 13 ноября 2020 года . Проверено 24 августа 2020 г.
- ^ Воган-Николс, Стивен Дж. «Обзор: Chromebook Samsung на базе ARM» . ЗДНет . Проверено 28 апреля 2021 г.
- ^ ДеАнджелис, Марк (22 июня 2020 г.). «На этой неделе Apple начинает двухлетний переход на ARM» . Engadget . Проверено 24 августа 2020 г.
Apple официально объявила, что перейдет с процессоров Intel на собственные чипы серии A на базе ARM в своих компьютерах Mac.
- ^ Смит, Крис (16 сентября 2020 г.). «Microsoft выпустит новый Surface на базе ARM этой осенью» . Отчет о мальчиках-гениях . Проверено 20 марта 2023 г.
- ^ «Процессор ARM — Процессор AWS Graviton — AWS» . Amazon Веб-сервисы, Inc. Проверено 9 января 2024 г.
- ^ «Лауреаты премии Чарльза Старка Дрейпера в области инженерии» . наэ.еду .
- ^ «Премия Чарльза Старка Дрейпера в области инженерии» . наэ.еду .
Внешние ссылки [ править ]
- «RISC против CISC» . РИСЦ Архитектура . Стэнфордский университет. 2000.
- «Что такое РИСЦ» . РИСЦ Архитектура . Стэнфордский университет. 2000.
- Савард, Джон Дж. Г. «Не совсем RISC» . Компьютеры .
- Маши, Джон Р. (5 сентября 2000 г.). «Еще один пост из старого поста RISC [без изменений с прошлого раза]» . Группа новостей : comp.arch . Usenet: [электронная почта защищена] .
N-й репост CISC vs RISC (или что такое RISC на самом деле)