~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ F29069398071F4F8FEA93FFA338AED20__1718644020 ✰
Заголовок документа оригинал.:
✰ RISC-V - Wikipedia ✰
Заголовок документа перевод.:
✰ RISC-V — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/RISC-V ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/f2/20/f29069398071f4f8fea93ffa338aed20.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/f2/20/f29069398071f4f8fea93ffa338aed20__translat.html ✰
Дата и время сохранения документа:
✰ 20.06.2024 18:16:49 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 17 June 2024, at 20:07 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

RISC-V — Википедия Jump to content

РИСК-V

Из Википедии, бесплатной энциклопедии

РИСК-V
Дизайнер Калифорнийский университет, Беркли
Биты 32 , 64 , 128
Представлено 6 августа 2014 г. (9 лет назад) ( 06.08.2014 ) [1]
Версия
  • непривилегированный ISA 20191213, [2]
  • привилегированный ISA 20211203 [3]
Дизайн РИСК
Тип Загрузка-сохранение
Кодирование Переменная
Ветвление Сравнить и разветвить
Порядок байтов Маленький [2] : 9  [а]
Размер страницы 4 КиБ
Расширения
  • М : Умножение
  • A : Атомика – LR/SC и выборка и операция
  • F : с плавающей запятой (32-разрядная версия).
  • D : Двойной ФП (64-разрядный).
  • Вопрос : FP Quad (128-битный)
  • Zicsr : поддержка регистров управления и состояния.
  • Zifencei : Забор для погрузки/складирования
  • C : Сжатые инструкции (16-бит).
  • J : Поддержка интерпретируемых или JIT-компилируемых языков.
Открыть Да, без лицензионных отчислений
Регистры
Общее назначение
  • 16
  • 32
(Включает один всегда нулевой регистр )
Плавающая запятая
  • 32
(Необязательно. Ширина зависит от доступных расширений)

РИСК-V [б] (произносится как «риск-пять» [2] : 1  ) — это открытого стандарта архитектура набора команд (ISA), основанная на установленных принципах компьютера с сокращенным набором команд (RISC). В отличие от большинства других разработок ISA, RISC-V предоставляется по бесплатным лицензиям с открытым исходным кодом . Многие компании предлагают или анонсировали оборудование RISC-V; Доступны операционные системы с открытым исходным кодом и поддержкой RISC-V, а набор инструкций поддерживается в нескольких популярных наборах программных инструментов .

Проект стартовал в 2010 году в Калифорнийском университете в Беркли . В настоящее время члены из более чем 70 стран вносят свой вклад и сотрудничают в разработке открытых спецификаций RISC-V. RISC-V International, некоммерческая управляющая RISC-V, в настоящее время имеет штаб-квартиру в Швейцарии . [5] [6]

Обзор [ править ]

В качестве RISC-архитектуры RISC-V ISA представляет собой архитектуру загрузки-хранения . Его инструкции с плавающей запятой используют IEEE 754 плавающую запятую . Примечательные особенности RISC-V ISA включают в себя: расположение битовых полей инструкций, выбранное для упрощения использования мультиплексоров в ЦП; [2] : 17  архитектурно нейтральный дизайн, [ сомнительно обсудить ] и фиксированное расположение знакового бита непосредственных значений для ускорения расширения знака . [2] : 17 

Набор инструкций предназначен для широкого спектра применений. Базовый набор команд имеет фиксированную длину 32-битных естественно выровненных инструкций, а ISA поддерживает расширения переменной длины, где каждая инструкция может состоять из любого количества 16-битных пакетов длиной. [2] : 7–10  Расширения поддерживают небольшие встроенные системы , персональные компьютеры , суперкомпьютеры складского масштаба с векторными процессорами и параллельные компьютеры .

Спецификация набора команд определяет варианты 32-битного и 64-битного адресного пространства . Спецификация включает описание варианта 128-битного плоского адресного пространства как экстраполяцию 32- и 64-битных вариантов, но 128-битная ISA остается намеренно «не замороженной», поскольку по состоянию на 2023 г. , практического опыта работы с такими большими системами памяти пока мало. [2] : 41 

В отличие от других академических проектов, которые обычно оптимизируются только для простоты изложения, разработчики намеревались использовать набор команд RISC-V для практических компьютеров. По состоянию на июнь 2019 года версия 2.2 пользовательского пространства ISA. [7] и версия 1.11 привилегированной ISA [3] заморожены , что позволяет продолжить разработку программного и аппаратного обеспечения. ISA пользовательского пространства, теперь переименованная в Unprivileged ISA, была обновлена, ратифицирована и заморожена до версии 20191213. [2] Спецификация внешней отладки доступна в виде черновика версии 0.13.2. [8]

Обоснование [ править ]

Прототип процессора RISC-V, январь 2013 г.

Проектирование ЦП требует опыта проектирования в нескольких специальностях: электронная цифровая логика , компиляторы и операционные системы . Чтобы покрыть расходы на такую ​​команду, коммерческие поставщики интеллектуальной собственности (ИС) процессоров, такие как Arm Ltd. и MIPS Technologies , взимают роялти за использование своих разработок, патентов и авторских прав . [9] [10] [11] Они также часто требуют соглашения о неразглашении информации перед выпуском документов, описывающих подробные преимущества их разработок. Во многих случаях они никогда не описывают причины своего выбора дизайна.

RISC-V был начат с целью создать практичную ISA с открытым исходным кодом, пригодную для академического использования и развертываемую в любом аппаратном или программном обеспечении без лицензионных отчислений. [2] : 1  [12] Также поясняются, хотя бы в общих чертах, обоснования каждого конструктивного решения проекта. Авторы RISC-V — ученые, имеющие значительный опыт в компьютерном проектировании, а RISC-V ISA является прямым развитием серии академических проектов компьютерного дизайна, особенно RISC Беркли . RISC-V был создан частично для поддержки всех подобных проектов. [2] : 1  [12]

Чтобы создать большое постоянное сообщество пользователей и тем самым накопить проекты и программное обеспечение, разработчики RISC-V ISA намеренно поддерживают широкий спектр практических вариантов использования: компактные, производительные и маломощные реальные реализации. [2] : 1–2, 153–154  [13] без чрезмерной архитектуры для данной микроархитектуры . [2] : 1  [14] [15] [16] Требования большой базы участников являются одной из причин, по которой RISC-V был разработан для решения многих возможных задач.

Основное утверждение разработчиков заключается в том, что набор команд является ключевым интерфейсом компьютера, поскольку он находится на стыке между аппаратным обеспечением и программным обеспечением. Если бы хороший набор инструкций был открыт и доступен для использования всеми, это могло бы значительно снизить стоимость программного обеспечения, позволяя гораздо чаще повторно использовать его. Это также должно спровоцировать усиление конкуренции среди поставщиков оборудования, которые затем смогут выделять больше ресурсов на проектирование и меньше на поддержку программного обеспечения. [12]

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

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

История [ править ]

Термин RISC появился примерно в 1980 году. [18] До этого существовало некоторое знание (см. Джона Кока ), что более простые компьютеры могут быть эффективными, но принципы проектирования широко не описывались. Простые и эффективные компьютеры всегда представляли академический интерес, что привело к появлению набора команд RISC DLX для первого издания книги « Компьютерная архитектура: количественный подход» которой был Дэвид Паттерсон в 1990 году , соавтором , а позже он участвовал в RISC-проекте. V происхождение. DLX предназначался для использования в образовательных целях; ученые и любители реализовали его с использованием программируемых вентильных матриц (FPGA), но он никогда не предназначался для коммерческого внедрения. Процессоры ARM версии 2 и более ранних имели общедоступный набор инструкций и до сих пор поддерживаются GNU Compiler Collection (GCC), популярным компилятором бесплатного программного обеспечения . с открытым исходным кодом Для этой ISA существуют три ядра , но они никогда не производились. [19] [20] OpenRISC — это ISA с открытым исходным кодом, основанная на DLX, со связанными с ней конструкциями RISC и полностью поддерживаемая реализациями GCC и Linux , хотя у нее тоже мало коммерческих реализаций.

Крсте Асанович из Калифорнийского университета в Беркли нуждался в исследовании компьютерной системы с открытым исходным кодом, и в 2010 году он решил разработать и опубликовать ее в рамках «короткого трехмесячного проекта в течение лета» с несколькими своими коллегами. аспирантов. План заключался в том, чтобы помочь как академическим, так и промышленным пользователям. [12] Дэвид Паттерсон из Беркли присоединился к сотрудничеству, поскольку он был основателем RISC Беркли. [18] а RISC-V — это одноименное пятое поколение его длинной серии совместных исследовательских проектов на основе RISC в Калифорнийском университете в Беркли ( RISC-I и RISC-II, опубликованные в 1981 году Паттерсоном, который ссылается на [21] к архитектуре SOAR [22] с 1984 г. как «RISC-III» и архитектура SPUR. [23] с 1988 г. как «RISC-IV»). На этом этапе студенты предоставили исходное программное обеспечение, моделирование и проекты процессоров. [24]

Первый Raven1 представит ST28nm в Исследовательском центре беспроводной связи Беркли (BWRC), июнь 2012 г.

Авторы RISC-V и их организация изначально использовали документы ISA. [25] и несколько проектов ЦП по лицензиям BSD , которые позволяют производным разработкам, таким как конструкции микросхем RISC-V, быть либо открытыми и бесплатными, либо закрытыми и проприетарными. Сама спецификация ISA (т. е. кодировка набора инструкций) была опубликована в 2011 году с открытым исходным кодом. [26] со всеми правами защищены. Фактический технический отчет (выражение спецификации) позже был помещен под лицензию Creative Commons , чтобы разрешить внесение изменений внешними участниками через RISC-V Foundation, а затем и RISC-V International.

Полная история RISC-V опубликована на веб-сайте RISC-V International. [27]

Фонд RISC-V и RISC International - V

Коммерческим пользователям требуется, чтобы ISA была стабильной, прежде чем они смогут использовать ее в продукте, который может прослужить много лет. Для решения этой проблемы в 2015 году был создан Фонд RISC-V, который будет владеть, поддерживать и публиковать интеллектуальную собственность, соответствующую определению RISC-V. [28] Первоначальные авторы и владельцы передали свои права фонду. [ нужна цитата ] Фонд возглавляет генеральный директор Калиста Редмонд , которая вступила в эту должность в 2019 году после того, как руководила проектами открытой инфраструктуры в IBM . [29] [ не удалось пройти проверку ]

Основателями RISC-V были: Andes, Antmicro, Bluespec, CEVA, Codasip, Cortus, Esperanto, Espressif, ETH Zurich, Google, IBM, ICT, IIT Madras, Lattice, lowRISC, Microchip, MIT (Csail), Qualcomm, Rambus, Rumble, SiFive, Syntacore и Technolution. [30]

В ноябре 2019 года фонд RISC-V объявил о переезде в Швейцарию, сославшись на опасения по поводу торговых правил США. [31] [32] По состоянию на март 2020 года организация получила название RISC-V International — швейцарская некоммерческая бизнес-ассоциация. [33]

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

Награды [ править ]

  • 2017: Премия «Выбор аналитиков» Linley Group за лучшую технологию (за набор инструкций) [35]

Дизайн [ править ]

База и расширения ISA [ править ]

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

Стандартные расширения предназначены для работы со всеми стандартными базами и друг с другом без конфликтов.

Многие компьютеры RISC-V могут реализовать расширение сжатых инструкций для снижения энергопотребления, размера кода и использования памяти. [2] : 97–99  Есть также планы на будущее по поддержке гипервизоров и виртуализации . [3]

Вместе с расширением супервизора S, набором команд RVGC, который включает в себя один из базовых наборов команд RV, коллекцию расширений G (которая включает «I», что означает, что база не встроена) и расширение C, определяет все инструкции, необходимые для удобной поддержки операционной системы общего назначения . [2] : 129, 154 

База и расширения ISA
Имя Описание Версия Положение дел [А] Количество инструкций
База
РВВМО Слабое упорядочение памяти 2.0 Ратифицирован
РВ32И Базовый целочисленный набор команд, 32-битный 2.1 Ратифицирован 40
РВ32Э Базовый целочисленный набор команд (встроенный), 32-битный, 16 регистров 2.0 Ратифицирован 40
РВ64И Базовый целочисленный набор команд, 64-битный 2.1 Ратифицирован 15
RV64E Базовый целочисленный набор команд (встроенный), 64-битный 2.0 Ратифицирован
РВ128И Базовый целочисленный набор команд, 128-битный 1.7 Открыть 15
Расширение
М Стандартное расширение для целочисленного умножения и деления 2.0 Ратифицирован 8 ( РВ32 )
13 ( РВ64 )
А Стандартное расширение для атомарных инструкций 2.1 Ратифицирован 11 ( РВ32 )
22 ( РВ64 )
Ф Стандартное расширение для чисел с плавающей запятой одинарной точности 2.2 Ратифицирован 26 ( РВ32 )
30 ( РВ64 )
Д Стандартное расширение для чисел с плавающей запятой двойной точности 2.2 Ратифицирован 26 ( РВ32 )
32 ( РВ64 )
Зикр Инструкции регистра управления и состояния (CSR) 2.0 Ратифицирован 6
Зифенсей Инструкция-выборка забора 2.0 Ратифицирован 1
г Сокращение базы и расширений IMAFD_Zicsr_Zifencei [2] : 129 
вопрос Стандартное расширение для чисел с плавающей запятой четырехточной точности 2.2 Ратифицирован 28 ( РВ32 )
32 ( РВ64 )
л Стандартное расширение для десятичных чисел с плавающей запятой 0.0 Открыть
С Стандартное расширение для сжатых инструкций 2.0 Ратифицирован 40
Б Стандартное расширение для манипуляций с битами 1.0 Ратифицирован 43 [36]
Дж Стандартное расширение для динамически переводимых языков 0.0 Открыть
Т Стандартное расширение для транзакционной памяти 0.0 Открыть
п Стандартное расширение для инструкций Packed-SIMD 0.9.10 Открыть
V Стандартное расширение для векторных операций 1.0 Ратифицирован 187 [37]
Зк Стандартное расширение для скалярной криптографии 1.0.1 Ратифицирован 49 [38]
ЧАС Стандартное расширение для гипервизора 1.0 Ратифицирован 15
С Стандартное расширение для инструкций уровня супервизора 1.12 Ратифицирован 4
Мода Невыровненные атомы 0.1 Открыть
Зихинтпауза Пауза Подсказка 2.0 Ратифицирован
Имейте в виду Подсказки вневременной локализации 0.3 Ратифицирован
Зфа Дополнительные инструкции с плавающей запятой 1.0 Ратифицирован
Зфх Число с плавающей запятой половинной точности 1.0 Ратифицирован
Зфхмин Минимальная половинная точность с плавающей запятой 1.0 Ратифицирован
Зфинкс Число с плавающей запятой одинарной точности в целочисленном регистре 1.0 Ратифицирован
Здинкс Число с плавающей запятой двойной точности в целочисленном регистре 1.0 Ратифицирован
Джинкс Число с плавающей запятой половинной точности в целочисленном регистре 1.0 Ратифицирован
Джинксмин Минимальная плавающая запятая половинной точности в целочисленном регистре 1.0 Ратифицирован
Зммул Подмножество умножения расширения M 1.0 Ратифицирован
Зцо Общий объем заказов в магазине 1.0 Ратифицирован
  1. ^ Ожидается, что замороженные детали будут иметь окончательный набор функций и получат только разъяснения перед ратификацией.
32-битные форматы инструкций RISC-V
Формат Кусочек
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Зарегистрироваться/зарегистрироваться функция7 rs2 rs1 функция3 р-д код операции
Немедленный имм[11:0] rs1 функция3 р-д код операции
Магазин имм [11:5] rs2 rs1 функция3 имм[4:0] код операции
Ветвь [12] имм [10:5] rs2 rs1 функция3 имм[4:1] [11] код операции
Верхний непосредственный имм [31:12] р-д код операции
Прыгать [20] имм[10:1] [11] имм [19:12] р-д код операции
  • код операции (7 бит): частично определяет один из 6 типов форматов инструкций .
  • funct7 (7 бит) и funct3 (3 бита): эти два поля расширяют поле кода операции , чтобы указать операцию, которую необходимо выполнить.
  • rs1 (5 бит) и rs2 (5 бит): укажите по индексу первый и второй регистры операндов соответственно (т. е. исходные регистры).
  • rd (5 бит): указывает по индексу регистр назначения, в который будет направлен результат вычисления.

Чтобы ограничить комбинации функций, которые могут быть реализованы, определена номенклатура, определяющая их в главе 27 текущей ратифицированной непривилегированной спецификации ISA. Сначала указывается база набора команд, кодировка для RISC-V, разрядность регистра и вариант; например, РВ64И или РВ32Е . Затем следуют буквы, обозначающие реализованные расширения, в порядке, указанном в таблице выше. За каждой буквой может следовать основной номер, за которым может следовать буква «p», а также второстепенный номер опции. По умолчанию он равен 0, если дополнительный номер версии отсутствует, и 1,0, если отсутствует весь номер версии. Таким образом RV64IMAFD можно записать как RV64I1p0M1p0A1p0F1p0D1p0 или проще как РВ64И1М1А1Ф1Д1 . Для удобства чтения между расширениями можно использовать символы подчеркивания, например РВ32И2_М2_А2 .

Схема модульного набора команд варианта RV32IMAC, показывающая все инструкции в базовом целочисленном формате ISA и расширения для целочисленного умножения и деления, атомарных инструкций и сжатых инструкций.
Модульный набор команд Вариант RV32IMAC . Это 32-битный процессор с базовым целочисленным кодом ISA ( RV32I ) и расширения ISA для целочисленного умножения и деления ( РВ32М ), Атомарные инструкции ( RV32A ) и сжатые инструкции ( РВ32С ).

Базовые расширенные вычисления целых чисел и чисел с плавающей запятой, а также примитивы синхронизации для многоядерных вычислений считаются необходимыми для вычислений общего назначения, и поэтому у нас есть сокращение «G».

Небольшой 32-битный компьютер для встраиваемой системы может быть РВ32ЭК . Большой 64-битный компьютер может быть РВ64ГК ; то есть, RV64IMAFDCZicsr_Zifencei .

С ростом количества расширений стандарт теперь предусматривает, что расширения будут называться одной буквой «Z», за которой следует алфавитное имя и необязательный номер версии. Например, Зифенсей называет расширение выборки инструкций. Зифенсей2 и Zifencei2p0 называет версию 2.0 той же самой. Первая буква, следующая за буквой «Z», по соглашению указывает на наиболее близкородственную категорию алфавитного расширения. IMAFDQLCBJTPVN . Таким образом, расширение Zam для смещенных атомов относится к стандартному расширению «A». В отличие от односимвольных расширений, расширения Z должны быть разделены подчеркиванием, сгруппированы по категориям, а затем в алфавитном порядке внутри каждой категории. Например, Zicsr_Zifencei_Zam .

Расширения, специфичные для уровня привилегий супервизора, называются таким же образом, с префиксом «S». Расширения, специфичные для уровня гипервизора, называются префиксом «H». Расширения уровня машины имеют префикс из трех букв «Zxm». Расширения набора команд супервизора, гипервизора и машинного уровня названы в честь менее привилегированных расширений.

Разработчики RISC-V могут создавать свои собственные нестандартные расширения набора команд. Они следуют соглашению об именах «Z», но с префиксом «X». Их следует указывать после всех стандартных расширений, а если указано несколько нестандартных расширений, их следует перечислять в алфавитном порядке.

Профили и платформы [ править ]

Профили и платформы для стандартных списков выбора ISA находятся в стадии обсуждения.

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

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

Регистрация наборов [ править ]

Мнемоника ассемблера для целочисленных регистров и регистров с плавающей запятой RISC-V и их роль в первом стандартном соглашении о вызовах. [2] : 137 
регистр
имя
Символический
имя
Описание Сохранено
32 целочисленных регистра
х0 нуль Всегда ноль
х1 день Обратный адрес Звонящий
х2 сп Указатель стека Callee
х3 врач Глобальный указатель
х4 город Указатель темы
х5 т0 Временный/альтернативный обратный адрес Звонящий
х6–7 t1–2 Временные Звонящий
х8 с0/фп Сохраненный регистр/ указатель кадра Callee
х9 с1 Сохраненный реестр Callee
х10–11 а0–1 Аргументы функции /возвращаемые значения Звонящий
х12–17 а2–7 Аргументы функции Звонящий
х18–27 с2–11 Сохраненные регистры Callee
х28–31 t3–6 Временные Звонящий
32 с плавающей запятой регистра расширения
f0–7 фут0–7 Временные значения с плавающей запятой Звонящий
f8–9 фс0-1 Сохраненные регистры с плавающей запятой Callee
f10–11 f0–1 Аргументы с плавающей запятой/возвращаемые значения Звонящий
f12–17 фа2–7 Аргументы с плавающей запятой Звонящий
ф18–27 фс2–11 Сохраненные регистры с плавающей запятой Callee
ф28–31 футов 8–11 Временные значения с плавающей запятой Звонящий

RISC-V имеет 32 целочисленных регистра (или 16 во встроенном варианте), [2] : 13, 33  и когда реализовано расширение с плавающей запятой, дополнительные 32 регистра с плавающей запятой . [2] : 63  За исключением инструкций доступа к памяти, инструкции адресуют только регистры .

Первый целочисленный регистр — это нулевой регистр , а остальные — регистры общего назначения. Сохранение в нулевом регистре не имеет никакого эффекта, а чтение всегда дает 0. Использование нулевого регистра в качестве заполнителя упрощает набор команд.

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

Инструкций по сохранению и восстановлению нескольких регистров не существует. Они считались ненужными, слишком сложными и, возможно, слишком медленными. [17]

Доступ к памяти [ править ]

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

Большинство инструкций загрузки и сохранения включают 12-битное смещение и два идентификатора регистра. Один регистр является базовым. Другой регистр — это пункт назначения (для загрузки) или источник (для хранилища).

Смещение добавляется в базовый регистр для получения адреса. [2] : 24  Формирование адреса в виде базового регистра плюс смещение позволяет отдельным инструкциям получать доступ к структурам данных. Например, если базовый регистр указывает на вершину стека, отдельные инструкции могут получить доступ к локальным переменным подпрограммы в стеке. Аналогично, инструкции загрузки и сохранения могут обращаться к структуре типа записи или к устройству ввода-вывода, отображаемому в памяти. Использование регистра постоянного нуля в качестве базового адреса позволяет отдельным инструкциям получать доступ к памяти вблизи нулевого адреса.

Память адресуется как 8-битные байты, причем инструкции располагаются в порядке с прямым порядком байтов . [2] : 9–10  и данные находятся в порядке байтов, определенном интерфейсом среды выполнения, в котором выполняется код. [2] : 3, 9–10, 24  Доступ к словам, вплоть до размера регистра, можно получить с помощью инструкций загрузки и сохранения.

Первоначально RISC-V был указан как с прямым порядком байтов, чтобы напоминать другие знакомые успешные компьютеры, например x86 . [2] : 9–10  Это также снижает сложность процессора и немного снижает его стоимость, поскольку он считывает слова всех размеров в одном и том же порядке. Например, набор команд RISC-V декодирует, начиная с байта инструкции с наименьшим адресом. Варианты с прямым порядком байтов и двусторонним порядком байтов были определены для поддержки устаревших баз кода, предполагающих обратный порядок байтов. [2] : 9–10  Привилегированная ISA определяет биты в mstatus и регистры mstatush , которые указывают и, необязательно, контролируют, является ли доступ к памяти в M-режиме, S-режиме и U-режиме, кроме выборки команд, прямым порядком байтов или прямым порядком байтов; эти биты могут быть доступны только для чтения, и в этом случае порядок байтов реализации жестко запрограммирован, или они могут быть доступны для записи. [3] : 23–24 

Интерфейс среды выполнения может позволять не выравнивать адреса памяти, к которым осуществляется доступ, по ширине их слова, но доступ к выровненным адресам может быть быстрее; например, простые ЦП могут реализовать невыровненный доступ с помощью медленной программной эмуляции, управляемой прерыванием сбоя выравнивания . [2] : 3, 24–25 

Как и многие наборы команд RISC (и некоторые наборы инструкций компьютера со сложным набором команд (CISC), такие как x86 и IBM System/360 и его преемники через z/Architecture ), в RISC-V отсутствуют режимы адреса, которые осуществляют обратную запись в регистры. Например, он не увеличивает автоматически. [2] : 24 

RISC-V управляет системами памяти, которые совместно используются процессорами или потоками , гарантируя, что поток выполнения всегда видит свои операции с памятью в запрограммированном порядке. Но между потоками и устройствами ввода-вывода RISC-V упрощается: он не гарантирует порядок операций с памятью, за исключением конкретных инструкций, таких как fence.

А fence Инструкция гарантирует, что результаты операций-предшественников будут видны последующим операциям других потоков или устройств ввода-вывода. fenceможет гарантировать порядок комбинаций операций ввода-вывода как в памяти, так и в памяти. Например, он может разделить операции чтения и записи в памяти, не затрагивая операции ввода-вывода. Или, если система может работать с устройствами ввода-вывода параллельно с памятью, fenceне заставляет их ждать друг друга. Один процессор с одним потоком может декодировать fence как nop.

Некоторые RISC-процессоры (такие как MIPS , PowerPC , DLX и RISC-I от Berkeley) помещают 16-битное смещение при загрузке и сохранении. Они устанавливают старшие 16 бит с помощью инструкции загрузки старшего слова . Это позволяет легко устанавливать значения старших полуслов без смещения битов. Однако в большинстве случаев инструкции старшего полуслова составляют 32-битные константы, такие как адреса. RISC-V использует SPARC -подобную комбинацию 12-битных смещений и 20-битных инструкций верхнего уровня . Меньшее 12-битное смещение помогает компактнее, 32-битные инструкции загрузки и сохранения выбирают два из 32 регистров, сохраняя при этом достаточно бит для поддержки кодирования инструкций переменной длины RISC-V. [2] : 16 

Немедленно [ править ]

RISC-V обрабатывает 32-битные константы и адреса с помощью инструкций, которые устанавливают старшие 20 бит 32-битного регистра. Загрузите верхнюю немедленную lui загружает 20 бит в биты с 31 по 12. Затем вторая инструкция, такая как addiможно установить нижние 12 бит. Небольшие числа или адреса можно формировать, используя нулевой регистр вместо lui.

Этот метод расширен, чтобы разрешить позиционно-независимый код , путем добавления инструкции: auipcкоторый генерирует 20 старших битов адреса путем добавления смещения к счетчику программы и сохранения результата в базовом регистре. Это позволяет программе генерировать 32-битные адреса относительно счетчика программы.

Базовый регистр часто можно использовать как есть с 12-битными смещениями при загрузке и сохранении. Если нужно, addiможет установить младшие 12 бит регистра. В 64-битных и 128-битных ISA lui и auipc подпишите-расширьте результат, чтобы получить больший адрес. [2] : 37 

Некоторые быстрые процессоры могут интерпретировать комбинации инструкций как отдельные объединенные инструкции. lui или auipc являются хорошими кандидатами для слияния с jalr, addi, загружает или хранит.

Вызовы подпрограмм, переходы и переходы [ править ]

Вызов подпрограммы RISC-V jal(переход и ссылка) помещает свой обратный адрес в регистр. Во многих компьютерных конструкциях это происходит быстрее, поскольку экономится доступ к памяти по сравнению с системами, которые помещают адрес возврата непосредственно в стек в памяти. jalимеет 20-битное смещение со знаком ( дополнение до двух ). Смещение умножается на 2, затем добавляется к ПК (счетчику программы) для генерации относительного адреса 32-битной инструкции. Если результат не находится по 32-битному адресу (т. е. делится без остатка на 4), ЦП может вызвать исключение . [2] : 20–23, раздел 2.5.

Процессоры RISC-V переходят к рассчитанным адресам с помощью регистра перехода и связи . jalr инструкция. jalr похож на jal, но получает адрес назначения путем добавления 12-битного смещения к базовому регистру. (В отличие, jal добавляет к ПК большее 20-битное смещение.)

jalrБитовый формат подобен загрузке и сохранению относительно регистра. Как они, jalr может использоваться с инструкциями, которые устанавливают верхние 20 бит базового регистра для создания 32-битных ветвей либо по абсолютному адресу (с использованием lui) или относительно ПК (с использованием auipcдля позиционно-независимого кода). (Использование постоянного нулевого базового адреса позволяет выполнять вызовы одной инструкции по небольшому (смещение) фиксированному положительному или отрицательному адресу.)

RISC-V перерабатывает jal и jalrчтобы получить безусловные 20-битные переходы относительно ПК и безусловные 12-битные переходы на основе регистров. Переходы просто делают регистр связи равным 0, чтобы обратный адрес не сохранялся. [2] : 20–23, раздел 2.5.

RISC-V также перерабатывает jalr для возврата из подпрограммы: Для этого jalrбазовый регистр установлен как регистр связи, сохраненный jal или jalr. jalrсмещение равно нулю, а регистр связи равен нулю, так что смещения нет и адрес возврата не сохраняется.

Как и во многих проектах RISC, при вызове подпрограммы компилятор RISC-V должен использовать отдельные инструкции для сохранения регистров в стек в начале, а затем восстанавливать их из стека при выходе. RISC-V не имеет инструкций сохранения нескольких регистров или восстановления нескольких регистров. Считалось, что это делает процессор слишком сложным и, возможно, медленным. [41] Это может занять больше места для кода. Разработчики планировали уменьшить размер кода с помощью библиотечных процедур для сохранения и восстановления регистров. [42]

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

Вместо этого в RISC-V есть короткие ветки, выполняющие сравнения: равно, не равно, меньше, беззнаковое меньше, больше или равно и беззнаковое больше или равно. Десять операций ветвления сравнения реализуются всего с помощью шести инструкций путем изменения порядка операндов в ассемблере . Например, ветвление, если больше, можно выполнить с помощью меньше, чем с обратным порядком операндов. [2] : 20–23, раздел 2.5.

Ветви сравнения имеют двенадцатибитный знаковый диапазон и переходят относительно ПК. [2] : 20–23, раздел 2.5.

В отличие от некоторых RISC-архитектур, RISC-V не имеет слота задержки перехода — позиции после инструкции перехода, которая может быть заполнена инструкцией, которая выполняется независимо от того, выполнено ветвление или нет. [2] : 20–23, раздел 2.5. В RISC-V отсутствует слот задержки ветвления, поскольку он усложняет многоцикловые процессоры, суперскалярные процессоры и длинные конвейеры. Динамические предсказатели ветвей преуспели достаточно хорошо, чтобы уменьшить потребность в отложенных ветвлениях. [17]

При первой встрече с ветвью процессоры RISC-V должны предполагать, что будет выбрана отрицательная относительная ветвь (т. е. знаковый бит смещения равен «1»). [2] : 20–23, раздел 2.5. При этом предполагается, что обратная ветвь представляет собой цикл, и предоставляется направление по умолчанию, чтобы простые конвейерные процессоры могли заполнить свой конвейер инструкциями. Помимо этого, RISC-V не требует предсказания ветвей , но основные реализации могут его добавлять. RV32I резервирует пространство инструкций «HINT», которое в настоящее время не содержит никаких подсказок по ветвям; [2] : 28–29, раздел 2.9. RV64I делает то же самое. [2] : 38–39, раздел 5.4.

Арифметические и логические множества [ править ]

RISC-V разделяет математические операции на минимальный набор целочисленных инструкций (набор I ) со сложением, вычитанием, сдвигом, поразрядной логикой и ветвями сравнения. Они могут имитировать большинство других наборов команд RISC-V с помощью программного обеспечения. (Атомарные инструкции являются заметным исключением.) Целочисленным инструкциям RISC-V не хватает счетчика, ведущего к нулю, и операций с битовыми полями, которые обычно используются для ускорения программных операций с плавающей запятой в чисто целочисленном процессоре. Однако, хотя номинально они входят в расширение битовых манипуляций, Утвержденные расширения Zbb, Zba и Zbs содержат дополнительные целочисленные инструкции, включая инструкцию счетчика, ведущего к нулю.

Инструкции целочисленного умножения (набор M ) включают в себя знаковое и беззнаковое умножение и деление. Включены целочисленные умножения и деления двойной точности, а также операции умножения и деления, которые дают старшее слово результата. Документ ISA рекомендует разработчикам процессоров и компиляторов объединять стандартизированную последовательность команд умножения с высокими и низкими значениями и делить их на одну операцию, если это возможно. [2] : 43–45 

Инструкции с плавающей запятой (набор F ) включают в себя арифметику одинарной точности, а также ветви сравнения, аналогичные целочисленной арифметике. Для этого требуется дополнительный набор из 32 регистров с плавающей запятой. Они отделены от целочисленных регистров. Инструкции двойной точности с плавающей запятой (набор D ) обычно предполагают, что регистры с плавающей запятой являются 64-битными (т. е. имеют двойную ширину), а подмножество F координируется с D. набором 128-битный ISA с плавающей запятой четырехкратной точности ( Q ). Также определен [2] : 63–82  Компьютеры RISC-V без операций с плавающей запятой могут использовать библиотеку программного обеспечения для операций с плавающей запятой.

RISC-V не вызывает исключений при арифметических ошибках, включая переполнение , [2] : 17–20  нижнее переполнение, субнормальное и деление на ноль. [2] : 44–45  Вместо этого как целочисленная арифметика, так и арифметика с плавающей запятой дают разумные значения по умолчанию, а инструкции с плавающей запятой устанавливают биты состояния. [2] : 66  Деление на ноль можно обнаружить по одной ветке после деления. [2] : 44–45  Биты состояния могут проверяться операционной системой или периодическим прерыванием.

Операции с атомарной памятью [ править ]

RISC-V поддерживает компьютеры, которые совместно используют память между несколькими процессорами и потоками . Стандартная модель согласованности памяти RISC-V — это согласованность выпуска . То есть загрузки и сохранения обычно могут быть переупорядочены, но некоторые загрузки могут быть обозначены как операции получения , которые должны предшествовать последующим обращениям к памяти, а некоторые сохранения могут быть обозначены как операции освобождения , которые должны следовать за более ранними обращениями к памяти. [2] : 83–94 

Базовый набор команд включает минимальную поддержку в виде fence инструкция для обеспечения порядка в памяти. [2] : 26–27  Хотя этого достаточно( fence r, rw обеспечивает приобретение и fence rw, w обеспечивает выпуск ), комбинированные операции могут быть более эффективными. [2] : Глава 8

Расширение операций с атомарной памятью поддерживает два типа операций с атомарной памятью для обеспечения согласованности выпуска. Во-первых, он обеспечивает резервирование нагрузки общего назначения. lr и условное хранение sc инструкции. lrвыполняет загрузку и пытается зарезервировать этот адрес для своего потока. Более поздний магазин-условный scна зарезервированный адрес будет выполнено только в том случае, если резервирование не будет нарушено промежуточным хранилищем из другого источника. Если сохранение прошло успешно, в регистр помещается ноль. Если операция не удалась, ненулевое значение указывает на то, что программному обеспечению необходимо повторить операцию. В любом случае резервирование снимается. [2] : Глава 8

Вторая группа атомарных инструкций выполняет последовательности чтения-изменения-записи : загрузка (которая необязательно является загрузкой-захватом) в регистр назначения, затем операция между загруженным значением и исходным регистром, затем сохранение результата (который опционально может быть версией для магазина). Если сделать барьеры памяти необязательными, можно объединить операции. Дополнительные операции активируются битами получения и освобождения , которые присутствуют в каждой атомарной инструкции. RISC-V определяет девять возможных операций: замена (непосредственное использование значения исходного регистра); добавлять; побитовое и, или, и исключающее-или; а также знаковый и беззнаковый минимум и максимум. [2] : Глава 8

Проект системы может оптимизировать эти совмещенные операции более чем lr и sc. Например, если регистром назначения для свопа является постоянный ноль, загрузку можно пропустить. Если сохраненное значение не изменилось с момента загрузки, сохранение можно пропустить. [7] : 44 

IBM System/370 и его преемники, включая z/Architecture и x86 , реализуют метод сравнения и замены ( cas) инструкция, которая проверяет и условно обновляет местоположение в памяти: если местоположение содержит ожидаемое старое значение, casзаменяет его заданным новым значением; затем он возвращает информацию о том, внесло ли оно изменение. Однако перед выполнением операции обычно выполняется простая инструкция типа загрузки. casчтобы получить старое значение. Классическая проблема заключается в том, что если поток читает (загружает) значение A , вычисляет новое значение C , а затем использует ( cas), чтобы заменить A на C , у него нет возможности узнать, заменило ли параллельное действие в другом потоке A каким-то другим значением B , а затем восстановило A между ними. В некоторых алгоритмах (например, в тех, в которых значения в памяти являются указателями на динамически выделяемые блоки) эта проблема ABA может привести к неверным результатам. Наиболее распространенное решение использует двойную ширину. casинструкция для обновления как указателя, так и соседнего счетчика; к сожалению, такая инструкция требует специального формата инструкций для указания нескольких регистров, выполняет несколько операций чтения и записи и может иметь сложную работу с шиной. [2] : 48–49 

The lr/ scальтернатива более эффективна. Обычно требуется только одна загрузка памяти, поэтому желательно свести к минимуму медленные операции с памятью. Это также точно: он контролирует весь доступ к ячейке памяти, а не просто обеспечивает битовую комбинацию. Однако в отличие от cas, он может разрешить livelock , при котором два или более потоков неоднократно вызывают сбой инструкций друг друга. RISC-V гарантирует прогресс вперед (без блокировки), если код следует правилам по времени и последовательности инструкций: 1) Он должен использовать только I. подмножество 2) Чтобы предотвратить повторные промахи в кэше, код (включая цикл повтора) должен занимать не более 16 последовательных инструкций. 3) Он не должен включать в себя инструкции по системе или ограждению, а также обратные ответвления между lr и sc. 4) Обратная ветвь цикла повтора должна вести к исходной последовательности. [2] : 48–49 

В спецификации приведен пример использования атомарных инструкций чтения-изменения-записи для блокировки структуры данных. [2] : 54 

Сжатое подмножество [ править ]

Стандарт RISC-V ISA определяет, что все инструкции являются 32-битными. Это обеспечивает особенно простую реализацию, но, как и другие RISC-процессоры с 32-битным кодированием инструкций, приводит к большему размеру кода, чем в наборах команд с инструкциями переменной длины. [2] : 99  [41]

инструкции RISC-V Чтобы компенсировать это, 32-битные на самом деле являются 30-битными; 3/4 -битные инструкции . команд переменной длины, RVC, который включает 16 пространства кода операции зарезервировано для необязательного (но рекомендуемого) сжатых набора Как и в ARM Thumb и MIPS16 , сжатые инструкции представляют собой просто альтернативные кодировки для подмножества более крупных инструкций. В отличие от сжатых наборов ARM или MIPS, место было зарезервировано с самого начала, поэтому отдельного режима работы не существует. Стандартные и сжатые инструкции можно свободно смешивать. [2] : 97  [41] (Дополнительная буква C .) [2] : 97 

Поскольку (как Thumb-1 и MIPS16) сжатые инструкции представляют собой просто альтернативные кодировки (псевдонимы) для выбранного подмножества более крупных инструкций, сжатие может быть реализовано в ассемблере, и компилятору необязательно даже знать об этом.

Прототип РВК прошел испытания в 2011 году. [41] Код прототипа был на 20% меньше, чем код, сжатый для ПК x86 и MIPS , и на 2% больше, чем код ARM Thumb-2 . [41] Это также существенно уменьшило как необходимую кэш-память, так и предполагаемое энергопотребление системы памяти. [41]

Исследователь намеревался уменьшить двоичный размер кода для небольших компьютеров, особенно для встроенных компьютерных систем. Прототип включал 33 наиболее часто используемые инструкции, перекодированные в компактные 16-битные форматы с использованием кодов операций, ранее зарезервированных для сжатого набора. [41] Сжатие производилось на ассемблере , без каких-либо изменений в компиляторе. В сжатых инструкциях опускаются поля, которые часто равны нулю, используются небольшие непосредственные значения или осуществляется доступ к подмножествам (16 или 8) регистров. addi очень распространен и часто сжимаем. [41]

Большая часть разницы в размере по сравнению с набором Thumb от ARM возникла из-за того, что RISC-V и прототип не имеют инструкций для сохранения и восстановления нескольких регистров. Вместо этого компилятор генерировал обычные инструкции для доступа к стеку. Прототип ассемблера RVC затем часто преобразовывал их в сжатые формы, которые были вдвое меньше. Однако это по-прежнему занимало больше места для кода, чем инструкции ARM, которые сохраняют и восстанавливают несколько регистров. Исследователь предложил модифицировать компилятор, чтобы он вызывал библиотечные процедуры для сохранения и восстановления регистров. Эти процедуры будут иметь тенденцию оставаться в кэше кода и, следовательно, выполняться быстро, хотя, вероятно, не так быстро, как инструкция сохранения нескольких команд. [41]

Стандартный RVC требует периодического использования 32-битных инструкций. Несколько нестандартных предложений RVC являются полными, не требуют 32-битных инструкций и, как говорят, имеют более высокую плотность, чем стандартный RVC. [43] [44] Другое предложение основано на этом и также утверждает, что используется меньший диапазон кодирования. [45]

Встроенное подмножество [ править ]

Набор команд для самых маленьких встроенных процессоров (набор E) сокращается и другими способами: поддерживаются только 16 из 32 целочисленных регистров. [2] : Глава 4 Можно использовать все текущие расширения; рассматривается расширение для операций с плавающей запятой, позволяющее использовать целочисленные регистры для значений с плавающей запятой. Привилегированный набор команд поддерживает только машинный режим, пользовательский режим и схемы памяти, которые используют перемещение базового и связанного адреса. [3]

Обсуждался профиль микроконтроллера для RISC-V, чтобы облегчить разработку глубоко встроенных систем. Он основан на более быстрой и простой поддержке прерываний на языке C, упрощенных режимах безопасности и упрощенном двоичном интерфейсе приложений POSIX . [46]

Корреспонденты также предложили меньшие, нестандартные 16-битные ISA RV16E : в нескольких серьезных предложениях будут использоваться 16-битные инструкции C с 8 × 16-битными регистрами. [44] [43] В первоапрельской шутке предлагалось очень практичное решение: использовать 16 × 16-битные целочисленные регистры со стандартными EIMC ISA (включая 32-битные инструкции). Шутка заключалась в том, чтобы использовать переключение банков , когда 32-битный ЦП был бы явно лучше. с большим адресным пространством. [47]

Привилегированный набор команд [ править ]

ISA RISC-V включает отдельную спецификацию набора привилегированных команд, которая в основном описывает три уровня привилегий плюс режим ортогонального гипервизора. По состоянию на декабрь 2021 г. , версия 1.12 ратифицирована RISC-V International. [3]

Версия 1.12 спецификации поддерживает несколько типов компьютерных систем:

  1. Системы, имеющие только машинный режим , возможно, для простых встроенных систем,
  2. Системы как с машинным режимом (для простого супервизора ), так и с пользовательским режимом для реализации относительно безопасных встроенных систем.
  3. Системы с машинным режимом, режимом супервизора (для операционной системы) и пользовательскими режимами для типичных операционных систем.

Они примерно соответствуют системам с максимум четырьмя кольцами привилегий и безопасности: машина, гипервизор, супервизор и пользователь. Также ожидается, что на каждом уровне будет тонкий слой стандартизированного вспомогательного программного обеспечения, которое взаимодействует с более привилегированным уровнем или аппаратным обеспечением. [3]

ISA также включает режим гипервизора, который ортогонален режимам пользователя и супервизора. [48] Основная функция — это бит конфигурации, который либо разрешает коду уровня супервизора получать доступ к регистрам гипервизора, либо вызывает прерывание при доступе. Этот бит позволяет режиму супервизора напрямую управлять оборудованием, необходимым гипервизору. Это упрощает реализацию гипервизоров, размещаемых в операционной системе. Это популярный режим для запуска компьютеров складского масштаба. Для поддержки неразмещенных гипервизоров этот бит может привести к прерыванию доступа к гипервизору. Дизайн также упрощает вложение гипервизоров, при котором гипервизор работает под гипервизором, и при необходимости позволяет ядру использовать функции гипервизора в собственном коде ядра. В результате гипервизорная форма ISA поддерживает пять режимов: компьютерный, супервизор, пользовательский, супервизор-под-гипервизором и пользователь-под-супервизором.

Спецификация привилегированного набора команд явно определяет аппаратные потоки или harts . Несколько аппаратных потоков — обычная практика на более мощных компьютерах. Когда один поток останавливается в ожидании памяти, другие часто могут продолжить работу. Аппаратные потоки могут помочь лучше использовать большое количество регистров и исполнительных блоков в быстродействующих процессорах, вышедших из строя. Наконец, аппаратные потоки могут быть простым и мощным способом обработки прерываний : не требуется сохранение или восстановление регистров, просто выполняется другой аппаратный поток. Однако единственный аппаратный поток, необходимый на компьютере RISC-V, — это нулевой поток. [3]

Прерывания и исключения обрабатываются вместе. Исключения вызваны выполнением инструкций, включая недопустимые инструкции и системные вызовы, а прерывания вызваны внешними событиями. Существующие определения регистров управления и состояния поддерживают ошибки и исключения памяти RISC-V, а также небольшое количество прерываний, обычно через «усовершенствованный локальный прерыватель ядра» (ACLINT). [49] Для систем с большим количеством прерываний спецификация также определяет контроллер прерываний на уровне платформы (PLIC) для координации большого количества прерываний между несколькими процессорами. Прерывания всегда начинаются на машинном уровне с наивысшими привилегиями, а регистры управления каждого уровня имеют явные биты пересылки для маршрутизации прерываний к менее привилегированному коду. Например, гипервизор не обязательно должен включать программное обеспечение, которое выполняется при каждом прерывании и перенаправляет прерывание в операционную систему. Вместо этого при настройке он может установить биты для пересылки прерывания. [3]

Спецификация поддерживает несколько систем памяти. Только физический вариант подходит для простейших встроенных систем. Существуют также четыре UNIX в стиле системы виртуальной памяти для кэширования памяти в системах хранения данных. Системы виртуальной памяти поддерживают MMU четырех размеров с адресами размером 32, 39, 48 и 57 бит. Все системы виртуальной памяти поддерживают страницы размером 4 КиБ, многоуровневые деревья таблиц страниц и используют очень похожие алгоритмы для обхода деревьев таблиц страниц. Все они предназначены для аппаратного или программного обеспечения перемещения по таблице страниц. Чтобы дополнительно снизить стоимость обхода таблицы страниц, страницы большого размера могут быть конечными страницами на более высоких уровнях дерева таблицы страниц системы. SV32 поддерживается только в 32-битных реализациях, имеет двухуровневое дерево таблицы страниц и поддерживает суперстраницы размером 4 МБ. SV39 имеет трехуровневую таблицу страниц и поддерживает суперстраницы размером 2 МиБ и гигастраницы размером 1 ГиБ. SV48 необходим для поддержки SV39. Он также имеет 4-уровневую таблицу страниц и поддерживает суперстраницы размером 2 МиБ, гигастраницы 1 ГиБ и террастраницы 512 ГиБ. SV57 имеет 5-уровневую таблицу страниц и поддерживает 2 суперстраницы МиБ, гигастраницы 1 ГиБ, терастраницы 512 ГиБ и петастраницы 256 ТиБ. Суперстраницы выравниваются по границам страницы по следующему наименьшему размеру страницы. [3]

Битовые манипуляции [ править ]

Некоторые расширения ISA для битовых манипуляций были ратифицированы в ноябре 2021 года (Zba, Zbb, Zbc, Zbs). [36] Расширения Zba, Zbb и Zbs, возможно, являются расширениями стандартных целочисленных инструкций I: Zba содержит инструкции для ускорения вычисления адресов элементов массива в массивах типов данных размером 2, 4 или 8 байт (sh1add, sh2add, sh3add), а также для 64-битных (и 128-битных) процессоров при индексации целыми числами без знака (add.uw, sh1add.uw, sh2add.uw, sh3add.uw и slli.uw). Инструкции Zbb содержат операции подсчета начальных, конечных 0 бит или всех 1 бит в полном объеме, а также операции с 32 словами (clz, clzw, ctz, ctzw, cpop, cpopw), изменение порядка байтов (rev8), логические инструкции с отрицанием второй ввод (andn,orn, xnor), расширение знака и нуля (sext.b, sext.h, zext.h), которые не могут быть предоставлены как особые случаи других инструкций (andi, addiw, add.wu), min и максимальное количество целых чисел (со знаком и без знака), (влево и вправо) вращение битов в регистре и 32-битные слова (rori,roriw, ror, rorw, rol, rolw), а также побайтовая операция «или объединения», которая позволяет обнаружение нулевого байта в полном регистре, что полезно для обработки функций строк в стиле C, завершающихся нулем. Расширение Zbs позволяет устанавливать, получать, очищать и переключать отдельные биты регистра по их индексу (bseti, bset, bexti, bext, bclri, bclr, binvi,binv).

Расширение Zbc имеет инструкции для «умножения без переноса», которое выполняет умножение полиномов над полем Галуа GF(2) (clmul, clmulh, clmulr). Они полезны для криптографии и проверки целостности данных CRC.

Если все сделано правильно, более специализированное подмножество битовых манипуляций может помочь в криптографических, графических и математических операциях. Дополнительные инструкции, которые были обсуждены, включают инструкции по сдвигу на единицы, обобщенный реверс битов, перестановку тасования и перекрестия, размещение битового поля, извлечение и помещение упаковки двух слов, байтов или полуслов в один регистр, инструкции CRC, операции с битовыми матрицами. (только для RV64), условное смешивание, условное перемещение, сдвиги воронки. Критерии включения, задокументированные в проекте, соответствовали философии RISC-V и форматам ISA, имели существенное улучшение плотности или скорости кода (т. е. сокращение количества инструкций как минимум 3 к 1) и существенные реальные приложения, в том числе уже существующая поддержка компилятора. Версия 0.93 расширения битовых манипуляций включает эти инструкции; [50] некоторые из них теперь находятся в версии 1.0.1 расширения криптографии инструкций скалярного и энтропийного источника . [38]

SIMD Упакованный

Инструкции Packed-SIMD широко используются коммерческими процессорами для недорогого ускорения обработки мультимедиа и других цифровых сигналов . [17] Для простых и недорогих систем RISC-V базовая спецификация ISA предлагала использовать биты регистров с плавающей запятой для выполнения параллельной с одной командой и несколькими данными ( SIMD арифметики подслов ).

В 2017 году поставщик опубликовал в списке рассылки более подробное предложение, которое можно назвать версией 0.1. [51] По состоянию на 2019 год , эффективность предлагаемой ISA варьируется от 2x до 5x от базового процессора для различных кодеков DSP. [52] В предложении отсутствовали форматы инструкций и передача лицензии RISC-V International, но оно было рассмотрено в списке рассылки. [51] Некоторые непопулярные части этого предложения заключались в том, что оно добавляло код условия, первый в конструкции RISC-V, связывало соседние регистры (также первый) и имело счетчик циклов, который может быть сложно реализовать в некоторых микроархитектурах.

Векторный набор

Предлагаемый набор команд векторной обработки может сделать упакованный набор SIMD устаревшим. Разработчики надеются, что ЦП сможет реализовать векторные инструкции в регистрах стандартного процессора. Это позволит реализовать минимальные реализации с производительностью, аналогичной мультимедийной ISA, как указано выше. Однако настоящий векторный сопроцессор может выполнить тот же код с более высокой производительностью. [53]

По состоянию на 19 сентября 2021 г. , векторное расширение имеет версию 1.0. [54] Это консервативная, гибкая конструкция векторного процессора общего назначения смешанной точности, подходящая для выполнения вычислительных ядер . Код можно легко переносить на процессоры с разной длиной векторов, в идеале без перекомпиляции. [53]

Напротив, SIMD-расширения с короткими векторами менее удобны. Они используются в x86 , ARM и PA-RISC . В них изменение ширины слова приводит к изменению набора команд для расширения векторных регистров (в случае x86 — с 64-битных регистров MMX на 128-битные потоковые расширения SIMD (SSE) и на 256-битные Advanced) . Векторные расширения (AVX) и AVX-512 ). Результатом является рост набора инструкций и необходимость переноса рабочего кода на новые инструкции.

В векторной ISA RISC-V вместо того, чтобы фиксировать длину вектора в архитектуре, инструкции ( vsetvli, vsetivli, и vsetvl), которые принимают запрошенный размер и устанавливают длину вектора, равную минимальному аппаратному пределу и запрошенному размеру. Таким образом, предложение RISC-V больше похоже на дизайн длинных векторов Cray или масштабируемое векторное расширение ARM. То есть каждый вектор в 32 векторах имеет одинаковую длину. [54] : 25 

Приложение определяет необходимую ему общую ширину вектора, а процессор определяет длину вектора, которую он может обеспечить с помощью доступных встроенных ресурсов. Это принимает форму инструкции ( vsetcfg) с четырьмя непосредственными операндами, определяющими необходимое количество векторных регистров каждой доступной ширины. Общее число не должно превышать адресного лимита в 32, но может быть и меньше, если приложение не требует их всех. Длина вектора ограничена доступной внутренней памятью, разделенной на количество байтов памяти, необходимых для каждой записи. (Могут также существовать дополнительные аппаратные ограничения, которые, в свою очередь, могут позволить реализовать реализации в стиле SIMD.) [53]

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

Длина вектора не только архитектурно варьируется, но и может меняться во время выполнения. Для достижения такой гибкости набор команд, скорее всего, будет использовать пути данных переменной ширины и операции с переменными типами с использованием полиморфной перегрузки. [53] Планируется, что это позволит уменьшить размер и сложность ISA и компилятора. [53]

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

В отличие от типичного современного графического процессора , не планируется предоставлять специальное оборудование для поддержки предсказания ветвления . Вместо этого будет использоваться более дешевое предсказание на основе компилятора. [53] [56]

Внешняя система отладки [ править ]

Существует предварительная спецификация аппаратного отладчика RISC- V . Отладчик будет использовать транспортную систему, такую ​​как Joint Test Action Group ( JTAG ) или Universal Serial Bus ( USB ), для доступа к регистрам отладки. Стандартный интерфейс отладки оборудования может поддерживать либо стандартизированный абстрактный интерфейс , либо подачу инструкций . [57] [58]

По состоянию на январь 2017 г. точная форма абстрактного интерфейса остается неопределенной, но предложения включают систему отображения памяти со стандартизированными адресами для регистров отладочных устройств или регистр команд и регистр данных, доступных для системы связи. [57] Корреспонденты утверждают, что аналогичные системы используются (BDM) Freescale интерфейсом фонового режима отладки для некоторых процессоров, ARM , OpenRISC и Aeroflex от LEON . [57]

При подаче инструкций ЦП обрабатывает исключение отладки для выполнения отдельных инструкций, записанных в регистр. Его можно дополнить регистром передачи данных и модулем прямого доступа к памяти. Подача инструкций позволяет отладчику получать доступ к компьютеру точно так же, как это делает программное обеспечение. Он также сводит к минимуму изменения в ЦП и адаптируется ко многим типам ЦП. Было сказано, что это особенно подходит для RISC-V, поскольку он разработан специально для многих типов компьютеров. Регистр передачи данных позволяет отладчику записать цикл перемещения данных в ОЗУ, а затем выполнить цикл для перемещения данных в компьютер или из него со скоростью, близкой к максимальной скорости канала данных системы отладки. [57] Корреспонденты сообщают, что подобные системы используются MIPS Technologies MIPS , Intel Quark , Tensilica от Xtensa , а также для Freescale Power ISA . процессоров интерфейса фонового режима отладки (BDM) [57]

Поставщик предложил подсистему трассировки оборудования для стандартизации, предоставил соответствующий проект и инициировал проверку. [59] [60] Предлагается аппаратный модуль, который может отслеживать выполнение кода на большинстве процессоров RISC-V. Чтобы снизить скорость передачи данных и обеспечить более простые или менее дорогие пути для данных трассировки, предложение не генерирует данные трассировки, которые можно вычислить из двоичного образа кода. Он отправляет только данные, которые указывают «неопознаваемые» пути в программе, например, какие условные ветвления выполняются. Чтобы снизить скорость передачи данных, ответвления, которые можно вычислить, например безусловные переходы, не отслеживаются. Предлагаемый интерфейс между модулем и блоком управления представляет собой логический сигнал для каждого невыводимого типа инструкций. Адреса и другие данные должны передаваться по специализированной шине, подключенной к соответствующим источникам данных в ЦП. Структура данных, отправляемая на внешний модуль трассировки, представляет собой серию коротких сообщений с необходимыми данными. Детали канала передачи данных в предложении намеренно не описываются, поскольку некоторые из них могут иметь смысл.

Реализации [ править ]

Организация RISC-V ведет список реализаций ЦП и SoC RISC-V. [61] Из-за торговых войн и возможных санкций за доступ к проприетарным американским ISA Китай переводит большую часть своих архитектур ЦП и микроконтроллеров на ядра RISC-V. [62]

Существующий [ править ]

Существующие собственные реализации включают:

  • Allwinner Technology внедрила процессор XuanTie C906 в свой процессор приложений D1. [63]
  • Andes Technology Corporation , член-учредитель RISC-V International. [64] Семейства процессоров RISC-V варьируются от крошечных 32-битных ядер до продвинутых 64-битных ядер с возможностями DSP, FPU, векторных, суперскалярных и/или многоядерных процессоров.
  • Bouffalo Lab имеет серию микроконтроллеров на базе RISC-V (RV32IMACF, серии BL60x/BL70x). [65]
  • CloudBEAR — компания, занимающаяся IP-процессорами, которая разрабатывает собственные ядра RISC-V для ряда приложений. [66]
  • Codasip , один из основателей RISC-V International, [64] разработала линейку маломощных встраиваемых, высокопроизводительных встраиваемых и прикладных процессорных ядер. [67] [68]
  • Кортус, один из первых платиновых основателей фонда RISC-V и RISC-V International, [64] имеет несколько реализаций RISC-V. Cortus предлагает услуги по проектированию ASIC, используя свой обширный портфель IP, включая 32/64-разрядные процессоры RISC-V от младших до очень высокопроизводительных процессоров RISC-V OoO, цифровые, аналоговые, радиочастотные, безопасность и полную среду IDE/инструментарий/отладку. -система.
  • Espressif добавила сопроцессор RISC-V ULP к своему ESP32-S2 . микроконтроллеру [69] В ноябре 2020 года Espressif анонсировала свой ESP32-C3, одноядерный 32-битный микроконтроллер на базе RISC-V (RV32IMC). [70]
  • Fraunhofer IPMS была первой организацией, разработавшей ядро ​​RISC-V, отвечающее требованиям функциональной безопасности. IP Core EMSA5 — это 32-битный процессор с пятиступенчатым конвейером, доступный в варианте общего назначения (EMSA5-GP) и в варианте безопасности (EMSA5-FS), который соответствует ISO 26262 уровню полноты автомобильной безопасности . Стандарт Д. [71]
  • GigaDevice имеет серию микроконтроллеров на базе RISC-V (серии RV32IMAC, GD32V), [72] причем один из них используется на плате Longan Nano производства китайской электронной компании Sipeed . [73]
  • Google разработала модуль безопасности Titan M2 для Pixel 6 и Pixel 7 [74]
  • GreenWaves Technologies объявила о доступности GAP8, 32-битного контроллера с 1 плюс 8 вычислительными ядрами, 32-битной SoC (RV32IMC) и платы для разработчиков, в феврале 2018 года. Их плата разработки GAPuino GAP8 начала поставки в мае 2018 года. [75] [76] [77]
  • Воображение Технологии RTXM-2200 [78] — первое ядро ​​из линейки Catapult. Это детерминированный 32-битный встроенный процессор реального времени.
  • Мгновенные ядра SoC RISC-V из ядер FPGA. Система на кристалле , включая ядра RISC-V, определенные C++.
  • В октябре 2020 года компания Micro Magic Inc. объявила о самом быстром в мире 64-битном ядре RISC-V, достигшем тактовой частоты 5 ГГц и получившем 13 000 баллов CoreMarks.
  • MIPS перешла к разработке ядер RISC-V в 2021 году. В декабре 2022 года компания представила свою первую реализацию eVocore P8700. [79] [80]
  • В декабре 2020 года компания Seagate объявила, что разработала два ядра общего назначения RISC-V для использования в будущих контроллерах для своих устройств хранения данных. [81]
  • Компания SiFive , созданная специально для разработки оборудования RISC-V, имеет модели процессоров, выпущенные в 2017 году. [82] [83] К ним относятся четырехъядерная 64-битная (RV64GC) система на кристалле (SoC), способная работать с операционными системами общего назначения, такими как Linux. [84]
  • StarFive, ответвление SiFive, базирующееся в Китае, предлагает две реализации RISC-V: одну для приложений с большими данными, а другую для вычислительного хранения. [85] [86]
  • Синтакор, [87] член-основатель RISC-V International и один из первых коммерческих поставщиков IP RISC-V, с 2015 года разрабатывает и лицензирует семейство IP RISC-V. По состоянию на 2018 год. Линейка продуктов включает восемь 32- и 64-битных ядер, включая ядро ​​микроконтроллера SCR1 с открытым исходным кодом (RV32I/E[MC]). [88] Первые коммерческие SoC на базе Syntacore IP были продемонстрированы в 2016 году. [89]
  • WinChipHead (WCH), китайский производитель полупроводников популярных и недорогих USB-чипов, таких как микроконтроллеры CH340 и ARM. [90] представила простую и недорогую линейку микроконтроллеров RISC-V CH32Vxxx, возглавляемую CH32V003 стоимостью 0,10 доллара США. [91] [92]
  • Codasip и UltraSoC разработали полностью поддерживаемую интеллектуальную собственность для встроенных SOC RISC-V, которые объединяют ядра RISC-V Codasip и другие IP с функциями отладки, оптимизации и аналитики UltraSoC. [93]
  • С 2020 года индийский оборонный и стратегический сектор начал использовать 64-битный Risecreek на базе RISC-V с частотой 100–350 МГц. процессор [ нужна цитата ] разработан IIT-Madras и производится Intel по 22-нм техпроцессу FinFET . [94] [95]
  • Платы разработки RIES v3.0d являются первыми, в которых используются процессоры DIR-V VEGA RISC-V. Он содержит VEGA ET1031, 32-битный процессор RISC-V с тремя последовательными портами UART , четырьмя последовательного периферийного интерфейса портами , двумя мегабайтами флэш-памяти , 256 КБ SRAM и тремя 32-битными таймерами. Он работает на частоте 100 МГц. Его рекомендуется использовать в носимых устройствах, игрушках, небольших устройствах IoT и датчиках C-DAC на индийском рынке. [96]

В разработке [ править ]

Открытый исходный код [ править ]

Существует множество процессоров RISC-V с открытым исходным кодом, в том числе:

  • Процессоры Беркли. Они реализованы на уникальном языке проектирования аппаратного обеспечения Chisel , а некоторые названы в честь известных паровозов:
    • 64-битная Ракета. [118] Rocket может подойти для компактных, маломощных промежуточных компьютеров, таких как персональные устройства. Назван в честь Стивенсона ракеты .
    • машина 64-битная выхода из строя Беркли (BOOM). [119] Berkeley Out-of-Order Machine (BOOM) — это синтезируемое и параметризуемое ядро ​​RV64GC RISC-V с открытым исходным кодом, написанное на языке построения аппаратного обеспечения Chisel. BOOM использует большую часть инфраструктуры, созданной для Rocket, и может использоваться для персональных компьютеров, суперкомпьютеров и компьютеров складского масштаба.
    • Пять 32-битных процессоров Sodor от Беркли, разработанных для студенческих проектов. [14] Содор — вымышленный остров поездов в детских сказках о паровозике Томасе .
  • PicoRV32 от Клэр Вульф , [120] реализация 32-битного микроконтроллера (MCU) класса RV32IMC в Verilog .
  • SCR1 от Syntacore, [88] реализация 32-битного микроконтроллера (MCU) класса RV32IMC в Verilog .
  • МФТИ-МИПС [121] by MIPT-ILab ( Лаборатория процессорных технологий МФТИ , созданная с помощью Intel ). MIPT-MIPS — это предкремниевый симулятор процессоров RISC-V и MIPS с тактовой точностью. Он измеряет производительность программы, работающей на процессоре. Среди ключевых особенностей: совместимость с интерактивными системными вызовами MARS, [122] интерактивное моделирование с помощью GDB , настраиваемого блока прогнозирования ветвей с несколькими алгоритмами прогнозирования, кэшем инструкций и обходом межэтапных данных. Реализация на С++.
  • СЕРВ [123] от Олофа Киндгрена, физически маленькое, проверенное бит-последовательное ядро ​​RV32I в Verilog , является самым маленьким в мире процессором RISC-V. Он интегрирован как с системами построения SoC LiteX, так и с FuseSoC. Реализация FPGA [124] было 125 справочных таблиц (LUT) и 164 триггера , работающих со скоростью 1,5 MIPS . В ASIC с узлом 130 нм это было 2,1 кГЭ. [124] а высокопроизводительная FPGA может содержать 10 000 ядер. [125]
  • PULPino (рискованный и нулевой риск) от ETH Zürich/Болонского университета. [126] Ядра в PULPino реализуют простую RV32IMC ISA для микроконтроллеров (Zero-Riscy) или более мощную RV32IMFC ISA со специальными расширениями DSP для встроенной обработки сигналов.
  • Western Digital в декабре 2018 года анонсировала ядро ​​RV32IMC под названием SweRV EH1, отличающееся упорядоченной двухсторонней суперскалярной структурой и девятиступенчатым конвейером. В декабре 2019 года WD анонсировала SweRV EH2 — ядро ​​с двумя аппаратными потоками и девятиэтапным конвейером, а SweRV EL2 — ядро ​​с одной задачей и четырехэтапным конвейером. [127] WD планирует использовать процессоры на базе SweRV в своих флэш-контроллерах и твердотельных накопителях и в январе 2019 года выпустила их с открытым исходным кодом для третьих сторон. [128] [129] [130]
  • NEORV32 Стефана Нолтинга, [131] 32-битный микроконтроллер (MCU) с широкими возможностями настройки ЦП класса RV32[I/E]MACUX_Zbb_Zfinx_Zicsr_Zifencei со встроенной поддержкой отладчика, написанный на независимом от платформы VHDL . Проект включает в себя SoC, подобный микроконтроллеру, который уже включает в себя такие общие модули, как UART, таймеры, SPI, TWI, TRNG и встроенную память.
  • Alibaba Group 16-ядерном 64-битном (RV64GCV) процессоре XuanTie 910 с тактовой частотой 2,5 ГГц в июле 2019 года объявила о вышедшем из строя . [132] В октябре 2021 года XuanTie 910 был выпущен с открытым исходным кодом. [133]
  • Институт вычислительных технологий Китайской академии наук (ICT CAS) в июне 2020 года запустил проект высокопроизводительного процессора XiangShan RISC-V. [134] [135]

Программное обеспечение [ править ]

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

Доступные программные инструменты RISC-V включают набор инструментов GNU Compiler Collection (GCC) (с отладчиком GDB ), набор инструментов LLVM , симулятор OVPsim (и библиотеку моделей быстрых процессоров RISC-V), симулятор Spike и симулятор в QEMU (RV32GC/RV64GC). JEP 422: порт Linux/RISC-V уже интегрирован в основной репозиторий OpenJDK . Сборки Java 21+ Temurin OpenJDK для RISC-V доступны на сайте Adoptium .

Существует поддержка операционной системы для ядра Linux , FreeBSD , NetBSD и OpenBSD , но инструкции режима супервизора не были стандартизированы до версии 1.11 спецификации привилегированных ISA. [3] поэтому эта поддержка является временной. Предварительный порт FreeBSD на архитектуру RISC-V был выпущен в феврале 2016 года и выпущен в составе FreeBSD 11.0. [136] [102] Порты Debian [137] и Федора [138] Дистрибутивы Linux и порт Haiku , [139] стабилизируются (все поддерживают только 64-битный RISC-V, поддержка 32-битной версии не планируется). Существует порт Das U-Boot . [140] UEFI Spec v2.7 определил привязку RISC-V, а порт TianoCore был создан HPE. инженерами [141] и, как ожидается, будет передан в восходящий поток. Имеется предварительный порт микроядра seL4 . [142] [143] Hex Five выпустила первый стек Secure IoT для RISC-V с поддержкой FreeRTOS . [144] Также xv6 , современная реализация Unix шестой редакции в ANSI C, используемая в педагогических целях в MIT был портирован . ОСРВ Pharos портирован на 64-битный RISC-V. [145] (включая защиту времени и памяти). Также см. Сравнение операционных систем реального времени .

Существует симулятор для запуска системы Linux RISC-V в веб-браузере с использованием JavaScript . [146] [147] [148]

QEMU поддерживает работу (с использованием двоичной трансляции ) 32- и 64-битных систем RISC-V (например, Linux) со многими эмулируемыми или виртуализированными устройствами (последовательными, параллельными, USB, сетью, хранилищем, часами реального времени, сторожевым таймером, аудио), а также как запуск двоичных файлов RISC-V Linux (трансляция системных вызовов в ядро ​​хоста). Он поддерживает многоядерную эмуляцию (SMP). [149]

Симулятор Creator является портативным и позволяет пользователю изучать различные языки ассемблера разных процессоров (в Creator есть примеры с реализацией инструкций RISC-V и MIPS32). [150] [151] [152] [153]

Расширяемый образовательный симулятор WepSIM реализует ( микропрограммируемое ) подмножество инструкций RISC-V (RV32I+M) и позволяет выполнять подпрограммы на ассемблере. [154] [155]

Для создания IP-ядер RISC-V было применено несколько языков, включая язык описания оборудования на основе Scala Chisel . [156] который может сводить проекты к Verilog для использования в устройствах, а также язык описания процессоров CodAL, который использовался для описания процессорных ядер RISC-V и для создания соответствующих HDK ( RTL , testbench и UVM ) и SDK. [157] Международная целевая группа по обеспечению соответствия RISC-V имеет репозиторий GitHub для RV32IMC. [158]

Инструменты разработки [ править ]

  • IAR Systems выпустила первую версию IAR Embedded Workbench для RISC-V, которая поддерживает 32-битные ядра и расширения RISC-V RV32 в первой версии. Будущие выпуски будут включать поддержку 64-битной версии и поддержку меньшего базового набора команд RV32E, а также сертификацию функциональной безопасности и решения по обеспечению безопасности.
  • Лаутербах добавил поддержку RISC-V в свои отладчики TRACE32 JTAG . [159] [160] Лаутербах также объявил [161] поддержка SiFives RISC-V NEXUS . трассировки процессоров
  • Компания SEGGER выпустила новый продукт под названием «J-Trace PRO RISC-V», добавила поддержку ядер RISC-V в J-Link . семейство отладочных датчиков [162] их интегрированная среда разработки Embedded Studio, [163] а также их RTOS embOS и встроенное программное обеспечение. [164]
  • UltraSOC , теперь часть Siemens, [165] предложил стандартную систему трассировки и предоставил реализацию.

См. также [ править ]

Примечания [ править ]

  1. ^ Большой и двусторонний порядок поддерживаются через нестандартные варианты; инструкции всегда имеют прямой порядок байтов. [2] : ви, 9–10
  2. ^ Обозначение V (римская цифра «5») представляет RISC-V как компьютера с сокращенным набором команд (RISC) архитектуру 5-го поколения , которая разрабатывалась в Калифорнийском университете в Беркли с 1981 года. [4]

Ссылки [ править ]

  1. ^ Асанович, Крсте ; Паттерсон, Дэвид А. (6 августа 2014 г.). Наборы инструкций должны быть бесплатными: аргументы в пользу RISC-V (PDF) . Департамент EECS, Калифорнийский университет, Беркли. UCB/EECS-2014-146.
  2. ^ Перейти обратно: а б с д Это ж г час я дж к л м н О п д р с т в v В Икс и С аа аб и объявление но из в ах есть также и аль являюсь а к ап ак С как в В из хорошо топор является тот нет бб До нашей эры Уотерман, Эндрю; Асанович, Крсте , ред. (декабрь 2019 г.). «Руководство по набору команд RISC-V, том I: ISA уровня пользователя, версия документа 20191213» (PDF) . Фонд RISC-V . Проверено 5 ноября 2021 г.
  3. ^ Перейти обратно: а б с д Это ж г час я дж к л Уотерман, Эндрю; Асанович, Крсте (3 декабря 2021 г.). «Руководство по набору команд RISC-V, том II: Документ о привилегированной архитектуре, версия 20211203» (PDF) . RISC-V International . Проверено 5 ноября 2021 г.
  4. ^ Уркхарт, Родди (29 марта 2021 г.). «Что означает RISC-V? Краткая история открытого ISA» . Системы и дизайн: Мнение . Полупроводниковая техника.
  5. ^ «О RISC-V: RISC-V International — это глобальная некоммерческая организация, занимающаяся открытой стандартной архитектурой набора команд RISC-V (ISA)» . RISC-V International.
  6. ^ «RISC-V перенесет штаб-квартиру в Швейцарию из-за опасений торговой войны» . EE Times Europe. 28 ноября 2019 г.
  7. ^ Перейти обратно: а б Уотерман, Эндрю; Асанович, Крсте (7 мая 2017 г.). «Руководство по набору команд RISC-V, том I: базовый уровень пользователя ISA версии 2.2» (PDF) . RISC-V International . Проверено 5 ноября 2021 г.
  8. ^ Ньюсом, Тим; Вакс, Меган (22 марта 2019 г.). «Поддержка внешней отладки RISC-V, версия 0.13.2 d5029366d59e8563c08b6b9435f82573b603e48e» (PDF) . RISC-V International . Проверено 7 ноября 2021 г.
  9. ^ Демерджян, Чак (7 августа 2013 г.). «Долгий взгляд на то, как ARM лицензирует чипы: Часть 1» . Полуточный.
  10. ^ Демерджян, Чак (8 августа 2013 г.). «Как ARM лицензирует свою интеллектуальную собственность для производства: Часть 2» . Полуточный.
  11. ^ «Wave Computing завершает свою открытую инициативу MIPS с немедленным эффектом и нулевым предупреждением» . 15 ноября 2019 г.
  12. ^ Перейти обратно: а б с д Это ж Асанович, Крсте . «Наборы инструкций должны быть бесплатными» (PDF) . Технические отчеты Калифорнийского университета в Беркли . Регенты Калифорнийского университета . Проверено 15 ноября 2016 г.
  13. ^ «Ракетный генератор» . РИСК-V . Регенты Калифорнийского университета. Архивировано из оригинала 6 октября 2014 года . Проверено 1 октября 2014 г.
  14. ^ Перейти обратно: а б Селио, Кристофер; С любовью, Эрик. "riscv-sodor: образовательные микроархитектуры дляrisc-visa" . Гитхаб . Регенты Калифорнийского университета . Проверено 25 октября 2019 г.
  15. ^ Перейти обратно: а б «Программа процессора ШАКТИ» . Индийский технологический институт Мадраса . Проверено 3 сентября 2019 г.
  16. ^ Селио, Кристофер. «Лабораторное упражнение CS 152, 3» (PDF) . Калифорнийский университет в Беркли . Регенты Калифорнийского университета. Архивировано из оригинала (PDF) 12 февраля 2015 года . Проверено 12 февраля 2015 г.
  17. ^ Перейти обратно: а б с д Это Уотерман, Эндрю; Асанович, Крсте (31 мая 2016 г.). «Руководство по набору команд RISC-V, том I: базовый уровень пользователя ISA версии 2.1» (PDF) . Калифорнийский университет, Беркли. ЕЭКС-2016-118 . Проверено 5 ноября 2021 г.
  18. ^ Перейти обратно: а б Паттерсон, Дэвид А .; Дитцель, Дэвид Р. (октябрь 1980 г.). «Дело в пользу компьютера с сокращенным набором команд». Новости компьютерной архитектуры ACM SIGARCH . 8 (6): 25. дои : 10.1145/641914.641917 . S2CID   12034303 .
  19. ^ «Янтарное ARM-совместимое ядро» . Открытые ядра . Проверено 26 августа 2014 г.
  20. ^ «АРМ4У» . Открытые ядра . Проверено 26 августа 2014 г.
  21. ^ Чен, Тони; Паттерсон, Дэвид (24 января 2016 г.). Генеология RISC-V (Технический отчет). Калифорнийский университет в Беркли. УКБ/EECS-2016-6.
  22. ^ Образцы, Алан Дейн; Кляйн, Майк; Фоли, Пит (1985). SOAR Architecture (Технический отчет). Калифорнийский университет, Беркли. UCB/CSD-85-226.
  23. ^ Хилл, Марк Дональд; и другие. (Сьюзан Дж. Эггерс, Джеймс Ричард Ларус, Джордж С. Тейлор, Гленн Д. Адамс, Бидьют Кумар Боуз, Гарт А. Гибсон, Пол Марк Хансен, Джон Келлер, Шинг И. Конг, Коринна Грейс Ли, Дэбом Ли, Дж. М. Пендлтон , Скотт Аллен Ричи, Дэвид А. Вуд, Бенджамин Г. Зорн, Пол Н. Хилфингер, Д. А. Ходжес, Рэнди Х. Кац, Джон К. Остерхаут и Дэвид А. Паттерсон ) (декабрь 1985 г.). SPUR: Многопроцессорная рабочая станция СБИС (Технический отчет). Калифорнийский университет, Беркли. UCB/CSD-86-273.
  24. ^ «Соавторы» . riscv.org . Регенты Калифорнийского университета. Архивировано из оригинала 7 сентября 2018 года . Проверено 25 августа 2014 г.
  25. ^ Асанович, Крсте . «Руководство по набору команд RISC-V, том I: Базовый уровень пользователя ISA» (PDF) . Технические отчеты Калифорнийского университета в Беркли . Регенты Калифорнийского университета . Проверено 13 мая 2011 г.
  26. ^ Грушка, Джоэл (21 августа 2014 г.). «RISC снова на высоте: новая архитектура RISC-V надеется конкурировать с ARM и x86, поскольку ее исходный код полностью открыт» . ЭкстримТех .
  27. ^ «История RISC-V» . Проверено 28 января 2023 г.
  28. ^ «Новый проект микропроцессоров бросает вызов гигантам отрасли» . Экономист . 3 октября 2019 г. ISSN   0013-0613 . Проверено 10 ноября 2019 г. .
  29. ^ «Конференция по автоматизации проектирования» . dac.com . Проверено 6 февраля 2021 г.
  30. ^ «Члены» . RISC-V International . Проверено 1 августа 2023 г.
  31. ^ «Американская группа по производству чипов переезжает в Швейцарию из-за опасений по поводу ограничения торговли» . Рейтер . 26 ноября 2019 года . Проверено 26 ноября 2019 г. .
  32. ^ Чунг, Санни (15 декабря 2023 г.). «Изучение большой стратегии Китая в отношении RISC-V» . Краткое описание Китая . Фонд Джеймстауна . Проверено 18 декабря 2023 г.
  33. ^ «История RISC-V — RISC-V International» . RISC-V International . Проверено 14 мая 2020 г.
  34. ^ «Фонд RISC-V» . Фонд RISC-V. Архивировано из оригинала 10 апреля 2019 года . Проверено 15 марта 2019 г.
  35. ^ «Группа Linley объявляет победителей ежегодной премии «Выбор аналитиков» (пресс-релиз). Группа Линли. 12 января 2017 года . Проверено 21 января 2018 г.
  36. ^ Перейти обратно: а б «Расширения ISA для битовых манипуляций» (PDF) . RISC-V International. Ноябрь 2021 г.
  37. ^ «Векторное расширение» . RISC-V International. Ноябрь 2021 г.
  38. ^ Перейти обратно: а б «Инструкции по скалярным источникам и источникам энтропии, том I криптографических расширений RISC-V» (PDF) . Гитхаб . 18 февраля 2022 г. Проверено 28 января 2023 г.
  39. ^ «Профили RISC-V» . Обсуждение . 2022.
  40. ^ Горизонтальный подкомитет платформы RISC-V (декабрь 2021 г.). «Спецификация платформы RISC-V» (PDF) . Версия 0.3-черновик.
  41. ^ Перейти обратно: а б с д Это ж г час я Уотерман, Эндрю (13 мая 2011 г.). Повышение энергоэффективности и уменьшение размера кода с помощью сжатия RISC-V . Калифорнийский университет в Беркли: Регенты Калифорнийского университета. п. 32 . Проверено 25 августа 2014 г.
  42. ^ Уотерман, Эндрю; и другие. «Руководство по сжатому набору команд RISC-V, версия 1.9 (проект)» (PDF) . РИСК-V . Проверено 18 июля 2016 г.
  43. ^ Перейти обратно: а б Брусси, Рожье. «Полный 16-битный RVC» . Группы Google . Фонд RISC-V . Проверено 18 июля 2019 г.
  44. ^ Перейти обратно: а б Брусси, Рожье. «Предложение: X конденсированный, [a]… Компактный… 16-битный автономный G-ISA» . Почтовый сервер RISC-V ISA . Группы Google . Проверено 10 ноября 2016 г.
  45. ^ Фунг, Ксан. «Улучшенный сжатый X» . Группы Google . Фонд RISC-V . Проверено 18 июля 2019 г.
  46. ^ Ионеску, Ливиу. «Профиль микроконтроллера RISC-V» . Гитхаб . Проверено 5 апреля 2018 г.
  47. ^ Баррос, Сезар (1 апреля 2018 г.). «Предложение: RV16E» . Разработчики RISC-V ISA (список рассылки) . Проверено 2 апреля 2018 г.
  48. ^ Бонзини, Паоло; Уотерман, Эндрю. «Предложение по виртуализации без режима H» . Разработчики RISC-V ISA (список рассылки) . Проверено 24 февраля 2017 г.
  49. ^ "riscv-aclint/riscv-aclint.adoc в основном · riscv/riscv-aclint" . Гитхаб . Проверено 2 января 2024 г.
  50. ^ Wolf, Claire, ed. (10 January 2021). "RISC-V Bitmanip Extension Document Version 0.93" (PDF). GitHub. RISC-V Foundation. Retrieved 9 March 2021.
  51. ^ Jump up to: a b "Instruction Summary for a "P" ISA Proposal". Google Groups. ANDES Technologies. Retrieved 13 January 2020.
  52. ^ Su, Charlie (30 June 2018). "Comprehensive RISC-V Solutions for AIoT" (PDF). RISC-V Content. RISC-V Foundation. Retrieved 28 January 2023.
  53. ^ Jump up to: a b c d e f g Schmidt, Colin; Ou, Albert; Lee, Yunsup; Asanović, Krste. "RISC-V Vector Extension Proposal" (PDF). RISC-V. Regents of the University of California. Retrieved 14 March 2016.
  54. ^ Jump up to: a b "Release Vector Extension 1.0, frozen for public review · riscv/Riscv-v-spec". GitHub.
  55. ^ Ou, Albert; Nguyen, Quan; Lee, Yunsup; Asanović, Krste. "A Case for MVPs: Mixed-Precision Vector Processors" (PDF). UC Berkeley EECS. Regents of the University of California. Archived from the original (PDF) on 15 March 2016. Retrieved 14 March 2016.
  56. ^ Lee, Yunsup; Grover, Vinod; Krashinsky, Ronny; Stephenson, Mark; Keckler, Stephen W.; Asanović, Krste. "Exploring the Design Space of SPMD Divergence Management on Data-Parallel Architectures" (PDF). Berkeley's EECS Site. Regents of the University of California. Archived from the original (PDF) on 15 March 2016. Retrieved 14 March 2016.
  57. ^ Jump up to: a b c d e Bradbury, Alex; Wallentowitz, Stefan. "RISC-V Run Control Debug". Google Docs. RISC-V Foundation. Retrieved 20 January 2017.
  58. ^ Newsome, Tim. "RISC-V Debug Group > poll results". Google Groups, RISC-V Debug Group. RISC-V Foundation. Retrieved 20 January 2017.
  59. ^ McGooganus. "riscv-trace-spec". GitHub. Retrieved 13 January 2020.
  60. ^ Dahad, Nitin. "UltraSoC Tackles RISC-V Support Challenge by Donating Trace Encoder". EE Times. Aspencore. Retrieved 13 January 2020.
  61. ^ "RISC-V Cores and SoC Overview". RISC-V. 25 September 2019. Retrieved 5 October 2019.
  62. ^ "China Is All In on a RISC-V Future". Retrieved 7 May 2024.
  63. ^ "D1". Retrieved 30 September 2021.
  64. ^ Jump up to: a b c "RISC-V International Members". RISC-V International. Retrieved 22 January 2021.
  65. ^ "At CES2022 Bouffalo Shows its Matter Turnkey Solution". www.eetimes.com. Retrieved 20 January 2022.
  66. ^ "CloudBEAR". Retrieved 16 October 2018.
  67. ^ riscv/riscv-cores-list, RISC-V, 6 February 2021, retrieved 9 February 2021
  68. ^ "Codasip announces RISC-V processor cores providing multi-core and SIMD capabilities". www.newelectronics.co.uk. Archived from the original on 23 December 2020. Retrieved 9 February 2021.
  69. ^ "3.6.2 Ultra-Low-Power Co-Processor". ESP32-S2 Family Datasheet V1.1 (PDF). Espressif Systems. 2020. Retrieved 9 June 2020.
  70. ^ "ESP32-C3 Family Datasheet V0.4" (PDF). Espressif Systems. 2020. Retrieved 27 December 2020.
  71. ^ Manners, David (8 June 2021). "Fraunhofer licensing fault-tolerant RISC core for safety-critical applications". Electronics Weekly. Retrieved 13 April 2022.
  72. ^ "GigaDevice Unveils The GD32V Series With RISC-V Core in a Brand New 32-bit General Purpose Microcontroller". www.gigadevice.com. 23 August 2019. Archived from the original on 29 August 2019. Retrieved 29 August 2019.
  73. ^ "Sipeed Longan Nano - RISC-V GD32VF103CBT6 Development Board". www.seeedstudio.com. Retrieved 29 August 2019.
  74. ^ Kleidermacher, Dave; Seed, Jesse; Barbello, Brandon (27 October 2021). "Pixel 6: Setting a new standard for mobile security". Google Security Blog. Archived from the original on 27 October 2021. Retrieved 12 February 2023.
  75. ^ "GreenWaves GAP8 is a Low Power RISC-V IoT Processor Optimized for Artificial Intelligence Applications". CNXSoft: Embedded Systems News. 27 February 2018. Retrieved 4 March 2018.
  76. ^ Ёсида, Джунко (26 февраля 2018 г.). «ИИ приходит в сенсорные устройства» . ЭЭ Таймс . Проверено 10 июля 2018 г.
  77. ^ «GreenWaves Technologies объявляет о доступности комплекта разработки программного обеспечения GAP8 и платы разработки GAPuino» (пресс-релиз). 22 мая 2018 г.
  78. ^ «ЦП IMG RTXM-2200» . Воображение . Проверено 30 сентября 2023 г.
  79. ^ Лейбсон, Стивен (9 января 2023 г.). «MIPS выпускает свое первое процессорное ядро ​​RISC-V – это большая проблема» . Электронный журнал .
  80. ^ Робинсон, Дэн (11 мая 2022 г.). «MIPS сообщает, что первые чипы RISC-V появятся в четвертом квартале 2022 года» . Регистр .
  81. ^ Шилов, Антон (9 декабря 2020 г.). «Seagate разрабатывает собственные ядра RISC-V для контроллеров систем хранения данных» . Аппаратное обеспечение Тома .
  82. ^ «HiFive1» . СиФайв . Архивировано из оригинала 26 февраля 2017 года . Проверено 10 июля 2018 г.
  83. ^ СиФив. «Hi-Five1: комплект разработки с открытым исходным кодом, совместимый с Arduino» . Поставка толпы . Проверено 2 декабря 2016 г.
  84. ^ «ЦП FU540 SoC» . СиФайв . Архивировано из оригинала 5 октября 2018 года . Проверено 24 октября 2018 г.
  85. ^ Хорвиц, Джош (23 марта 2023 г.). «Китайский поисковый гигант Baidu инвестирует в стартап StarFive, занимающийся разработкой чипов RISC-V» . Рейтер .
  86. ^ Шарвуд, Саймон (27 марта 2023 г.). «Китайский веб-гигант Baidu поддерживает RISC-V для центра обработки данных» . Регистр .
  87. ^ «Синтакор» . Проверено 11 декабря 2018 г.
  88. ^ Перейти обратно: а б «SCR1 — это высококачественное ядро ​​микроконтроллера RISC-V с открытым исходным кодом в Verilog» . Гитхаб . Синтакор . Проверено 13 января 2020 г. .
  89. ^ «Материалы семинара RISC-V» . 11 декабря 2016 года . Проверено 28 января 2023 г.
  90. ^ «ВинЧипХед (ЧМ)» .
  91. ^ «CH32V003» . ЧМ-ИК . Проверено 10 июля 2023 г.
  92. ^ "the-10-cent-risc-v-processor-ch32v003" . EEvblog . Проверено 10 июля 2023 г.
  93. ^ Маннерс, Дэвид (23 ноября 2016 г.). «Объединение Codasip и UltraSoC на RISC-V» . Еженедельник электроники . Метрополис Интернэшнл Групп, ООО . Проверено 23 ноября 2016 г. .
  94. ^ Десикан, Шубашри (6 августа 2018 г.). «ИИТ-Мадрас запускает дези-чип» . Индус . ISSN   0971-751X . Проверено 25 сентября 2020 г.
  95. ^ Перейти обратно: а б «Познакомьтесь с индийским микропроцессорным чипом Atmanirbhar Moushik, предназначенным для устройств Интернета вещей» . Вион . Проверено 25 сентября 2020 г.
  96. ^ Добберштейн, Лаура. «Индийский доморощенный процессор RISC-V дебютирует на дешевой плате для разработки» . Регистр . Проверено 6 марта 2024 г.
  97. ^ Эшенден, Питер (9 ноября 2016 г.). «Re: [isa-dev] RISC V ISA для встраиваемых систем» . Разработчики RISC-V ISA (список рассылки) . Проверено 10 ноября 2016 г. В ASTC (www.astc-design.com) у нас есть реализация RV32EC в качестве синтезируемого IP-ядра, предназначенного для небольших встраиваемых приложений, таких как интеллектуальные датчики и Интернет вещей.
  98. ^ «C-DAC объявляет Технический Конклав 2019» . Таймс оф Индия . Архивировано из оригинала 17 мая 2019 года . Проверено 12 апреля 2019 г.
  99. ^ Шарвуд, Саймон (19 августа 2020 г.). «Индия выбирает RISC-V для конкурса полупроводниковой самодостаточности: используйте эти отечественные ядра для сборки комплекта» . Регистр . Проверено 9 июля 2021 г.
  100. ^ «ВЕГА МИКРОПРОЦЕССОРЫ» . Процессор Vega — CDAC . 9 июля 2021 года. Архивировано из оригинала 9 июля 2021 года . Проверено 9 июля 2021 г.
  101. ^ «Процессор НОЭЛ-В» . Кобэм Гейслер . Проверено 14 января 2020 г.
  102. ^ Перейти обратно: а б «FreeBSD Foundation: принят первоначальный порт архитектуры FreeBSD RISC-V» . 4 февраля 2016 г.
  103. ^ «Эсперанто выходит из скрытого режима и нацеливается на ИИ с помощью 4096-ядерного 7-нм монстра RISC-V» . Wikichip.org . Январь 2018 года . Проверено 2 января 2018 г.
  104. ^ «Решение для ускорителя искусственного интеллекта Esperanto ET-SoC-1 1092 RISC-V в Hot Chips 33» . 24 августа 2021 г.
  105. ^ «Проект PULPino GitHub» . Гитхаб . Проверено 2 февраля 2018 г.
  106. ^ «ПУЛП Платформа» . Платформа PULP . Проверено 2 февраля 2018 г.
  107. ^ «Поток Ускорителя» . Европейская инициатива процессоров (EPI) . Проверено 22 февраля 2020 г. .
  108. ^ Редмонд, Калиста (28 января 2023 г.). «Как Европейская процессорная инициатива использует RISC-V для будущего суперкомпьютеров» . Международные новости RISC-V . RISC-V International.
  109. ^ Хальфакри, Гарет (10 июня 2021 г.). «Специалисты по RISC-V излагают план по внедрению этой архитектуры в высокопроизводительные вычисления» . Регистр . Проверено 9 июля 2021 г.
  110. ^ «Проект процессора с открытым исходным кодом IIT Madras» . Быстрый ввод-вывод . ИИТ Мадрас. 26 августа 2014 года. Архивировано из оригинала 14 сентября 2014 года . Проверено 13 сентября 2014 г.
  111. ^ «IIT Madras разрабатывает и внедряет микропроцессор MOUSHIK для устройств Интернета вещей» . ИИТ Мадрас . 24 сентября 2020 г. Проверено 9 июля 2021 г.
  112. ^ «Сайт lowRISC» . Проверено 10 мая 2015 г.
  113. ^ Се, Джо (июль 2016 г.). История оценки NVIDIA RISC V. 4-й семинар RISC-V . YouTube. Архивировано из оригинала 13 ноября 2021 года.
  114. ^ «RV64X: бесплатный графический процессор с открытым исходным кодом для RISC-V» . ЭТаймс . Проверено 9 февраля 2021 г.
  115. ^ Фрумусану, Андрей (30 октября 2019 г.). «SiFive анонсирует первое ядро ​​ЦП RISC-V OoO: IP-процессор серии U8» . Анандтех .
  116. ^ Гвеннап, Линли (13 декабря 2021 г.). «Ventana разрабатывает чиплет RISC-V». Отчет микропроцессора .
  117. ^ Дахад, Нитин (6 сентября 2021 г.). «Запуск чиплета RISC-V привлек 38 миллионов долларов для вычислений в центрах обработки данных» . ЭЭ Таймс .
  118. ^ Асанович, Крсте ; и другие. «ракетный чип» . Гитхаб . RISC-V International . Проверено 11 ноября 2016 г.
  119. ^ Селио, Кристофер. "риск-бум" . Гитхаб . Регенты Калифорнийского университета . Проверено 29 марта 2020 г.
  120. ^ Вольф, Клэр. «PicoRV32 — процессор RISC-V с оптимизированным размером» . Гитхаб . Проверено 27 февраля 2020 г.
  121. ^ «MIPT-MIPS: тактовый предкремниевый симулятор процессоров RISC-V и MIPS» . Гитхаб .
  122. ^ «Функции системных вызовов MIPS доступны на MARS» . Courses.missouristate.edu . Проверено 28 мая 2023 г.
  123. ^ Киндгрен, Олоф. «SERV — последовательный процессор RISC-V» . Гитхаб . Проверено 25 сентября 2023 г.
  124. ^ Перейти обратно: а б Киндгрен, Олоф (29 декабря 2022 г.). «СЕРВ: 32-битные — это новые 8-битные» (Видео, 2:38) . YouTube . Фонд RISC-V . Проверено 25 сентября 2023 г.
  125. ^ Хальфакри, Гарет (14 июня 2022 г.). «В тесте CoreScore установлен новый рекорд: 10 000 ядер RISC-V на одной FPGA» . fossi-foundation.org . Фонд ФОССи . Проверено 25 сентября 2023 г.
  126. ^ Трабер, Андреас; и другие. «ЦЕЛЛЮЛОЗНАЯ ПУЛЬПА: Параллельная сверхмалая мощность» . ETH Цюрих, Болонский университет . Проверено 5 августа 2016 г.
  127. ^ Шилов, Антон. «Western Digital представляет два новых ядра SweRV RISC-V для микроконтроллеров» . www.anandtech.com . Проверено 9 февраля 2021 г.
  128. ^ Шилов, Антон. «Western Digital представляет ядро ​​SweRV RISC-V и инициативу по согласованию кэша через Ethernet» . www.anandtech.com . Проверено 23 мая 2019 г.
  129. ^ «Western Digital выпускает исходный код ядра SweRV RISC-V» . АБ Открыть . 28 января 2019 г. Архивировано из оригинала 21 мая 2019 г.
  130. ^ Cores-SweRV на GitHub
  131. ^ Нолтинг, Стефан (2022). "неорв32" . Гитхаб . дои : 10.5281/zenodo.7030070 . Проверено 9 сентября 2021 г.
  132. ^ «Китайская компания Alibaba производит 16-ядерный процессор RISC-V с тактовой частотой 2,5 ГГц» . www.techspot.com . 28 июля 2019 года . Проверено 30 июля 2019 г.
  133. ^ «Alibaba открывает исходные коды четырех ядер RISC-V: XuanTie E902, E906, C906 и C910» . 20 октября 2021 г. Проверено 20 октября 2021 г.
  134. ^ Репозиторий Сяншань на Github
  135. ^ XiangShan open-source 64-bit RISC-V processor to rival Arm Cortex-A76 - CNX Software
  136. ^ "riscv - FreeBSD Wiki". wiki.freebsd.org.
  137. ^ Montezelo, Manuel. "Debian GNU/Linux port for RISC-V 64". Google Groups. Retrieved 19 July 2018.
  138. ^ "Architectures/RISC-V". Fedora Wiki. Red Hat. Retrieved 26 September 2016.
  139. ^ "Booting our RISC-V images". Haiku Project. 7 November 2021. Retrieved 4 March 2023.
  140. ^ Begari, Padmarao. "U-Boot port on RISC-V 32-bit is available". Google Groups. Microsemi. Retrieved 15 February 2017.
  141. ^ RiscVEdk2 on GitHub
  142. ^ Almatary, Hesham. "RISC-V, seL4". seL4 Documentation. Commonwealth Scientific and Industrial Research Organisation (CSIRO). Retrieved 13 July 2018.
  143. ^ Almatary, Hesham. "heshamelmatary". GitHub. Retrieved 13 July 2018.
  144. ^ "MultiZone Secure IoT Stack, the First Secure IoT Stack for RISC-V". Hex Five Security. Hex Five Security, Inc. 22 February 2019. Retrieved 3 March 2019.
  145. ^ "Pharos". SourceForge. Retrieved 1 April 2020.
  146. ^ "ANGEL is a Javascript RISC-V ISA (RV64) Simulator that runs riscv-linux with BusyBox". RISCV.org. Archived from the original on 11 November 2018. Retrieved 17 January 2019.
  147. ^ Lee, Yunsup (5 March 2014). "Boot RISC-V Linux in your web browser!". RISC-V International. Retrieved 4 September 2020.
  148. ^ "ANGEL – RISC-V". riscv.org.s3-website-us-west-1.amazonaws.com. Archived from the original on 1 December 2020. Retrieved 4 September 2020.
  149. ^ "Documentation/Platforms/RISCV". QEMU Wiki. Retrieved 7 May 2020.
  150. ^ Camarmas-Alonso, Diego; Garcia-Carballeira, Felix; Del-Pozo-Puñal, Elias; Mateos, Alejandro Calderon (23 July 2021). CREATOR: Simulador didáctico y genérico para la programación en ensamblador [CREATOR: Didactic and generic simulator for assembly programming]. XXXI Jornadas de Paralelismo (JP20/21) (in Spanish). Malaga. doi:10.5281/zenodo.5130302.
  151. ^ Camarmas-Alonso, Diego; Garcia-Carballeira, Felix; Del-Pozo-Punal, Elias; Mateos, Alejandro Calderon (October 2021). A new generic simulator for the teaching of assembly programming. 2021 XLVII Latin American Computing Conference (CLEI) (in Spanish). Cartago, Costa Rica: IEEE (published 21 December 2021). pp. 1–9. doi:10.1109/CLEI53233.2021.9640144. ISBN 978-1-6654-9503-5. S2CID 245387555. Retrieved 2 August 2022.
  152. ^ CREATOR Web with RISC-V example: https://creatorsim.github.io/creator/?example_set=default_rv&example=e12
  153. ^ CREATOR source code on GitHub: https://github.com/creatorsim/creator
  154. ^ "WepSIM with RISC-V_im example". WepSIM.
  155. ^ "WepSIM homepage".
  156. ^ "Chisel: Constructing Hardware in a Scala Embedded Language". UC Berkeley. Regents of the University of California. Retrieved 12 February 2015.
  157. ^ "Codasip Studio". Codasip. Retrieved 19 February 2021.
  158. ^ riscv/riscv-compliance, RISC-V, 12 February 2021, retrieved 19 February 2021
  159. ^ "RISC-V Debugger". www.lauterbach.com TRACE32 Debugger for RISC-V.
  160. ^ "Lauterbach and SiFive Bring TRACE32 Support for High-Performance RISC-V Cores". www.sifive.com.
  161. ^ "TRACE32 supports SiFive's RISC-V trace". www.lauterbach.com. Archived from the original on 2 June 2022. Retrieved 6 March 2021.
  162. ^ "SEGGER Adds Support for SiFive's Coreplex IP to Its Industry Leading J-Link Debug Probe". Retrieved 19 September 2017.
  163. ^ "PR: SEGGER Embedded Studio supports RISC-V architecture". Retrieved 23 November 2017.
  164. ^ "PR: SEGGER presents RTOS, stacks, middleware for RISC-V". Retrieved 8 December 2017.
  165. ^ Dahad, Nitin (23 June 2020). "Siemens Acquires UltraSoC for SoC Lifecycle Product Suite". EE Times. Retrieved 12 July 2023.

Further reading[edit]

External links[edit]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: F29069398071F4F8FEA93FFA338AED20__1718644020
URL1:https://en.wikipedia.org/wiki/RISC-V
Заголовок, (Title) документа по адресу, URL1:
RISC-V - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)