РИСК-V
Дизайнер | Калифорнийский университет, Беркли |
---|---|
Биты | 32 , 64 , 128 |
Представлено | 6 августа 2014 г. [ 1 ] |
Версия | |
Дизайн | РИСК |
Тип | Загрузка-сохранение |
Кодирование | Переменная |
Ветвление | Сравнить и разветвить |
Порядок байтов | Маленький [ 2 ] : 9 [ а ] |
Размер страницы | 4 КиБ |
Расширения |
|
Открыть | Да, без лицензионных отчислений |
Регистры | |
общего назначения |
|
Плавающая точка |
|
РИСК-V [ б ] (произносится как «риск-пять» [ 2 ] : 1 ) — это открытого стандарта архитектура набора команд (ISA), основанная на установленных принципах компьютера с сокращенным набором команд (RISC). В отличие от большинства других разработок ISA, RISC-V предоставляется по бесплатным лицензиям с открытым исходным кодом . Многие компании предлагают или анонсировали оборудование RISC-V; Доступны операционные системы с открытым исходным кодом и поддержкой RISC-V, а набор инструкций поддерживается в нескольких популярных наборах программных инструментов .
Проект стартовал в 2010 году в Калифорнийском университете в Беркли . В настоящее время члены из более чем 70 стран вносят свой вклад и сотрудничают в разработке открытых спецификаций RISC-V. RISC-V International, некоммерческая управляющая RISC-V, в настоящее время имеет штаб-квартиру в Швейцарии . [ 5 ] [ 6 ]
Он распространяется по лицензии BSD .
Обзор
[ редактировать ]В качестве 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 г. [update], практического опыта работы с такими большими системами памяти пока мало. [ 2 ] : 41
В отличие от других академических проектов, которые обычно оптимизируются только для простоты изложения, разработчики намеревались сделать набор команд RISC-V пригодным для использования на практических компьютерах. По состоянию на июнь 2019 года версия 2.2 пользовательского пространства ISA. [ 7 ] и версия 1.11 привилегированной ISA [ 3 ] заморожены , что позволяет продолжить разработку программного и аппаратного обеспечения. ISA пользовательского пространства, теперь переименованная в Unprivileged ISA, была обновлена, ратифицирована и заморожена до версии 20191213. [ 2 ] Спецификация внешней отладки доступна в виде черновика версии 0.13.2. [ 8 ]
Обоснование
[ редактировать ]Проектирование ЦП требует опыта проектирования в нескольких специальностях: электронная цифровая логика , компиляторы и операционные системы . Чтобы покрыть расходы на такую команду, коммерческие поставщики интеллектуальной собственности (ИС) процессоров, такие как 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 ]
Авторы 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-V International
[ редактировать ]Коммерческим пользователям требуется, чтобы 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 год [update]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
Имя | Описание | Версия | Статус [ А ] | Количество инструкций |
---|---|---|---|---|
База | ||||
РВВМО | Слабое упорядочение памяти | 2.0 | Ратифицирован | |
РВ32И | Базовый целочисленный набор команд, 32-битный | 2.1 | Ратифицирован | 40 |
РВ32Е | Базовый целочисленный набор команд (встроенный), 32-битный, 16 регистров | 2.0 | Ратифицирован | 40 |
РВ64И | Базовый целочисленный набор команд, 64-битный | 2.1 | Ратифицирован | 15 |
РВ64Е | Базовый целочисленный набор команд (встроенный), 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 | Ратифицирован |
- ^ Ожидается, что замороженные детали будут иметь окончательный набор функций и получат только разъяснения перед ратификацией.
Формат | Кусочек | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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] | р-д | код операции | ||||||||||||||||||||||||||
|
Чтобы ограничить комбинации функций, которые могут быть реализованы, определена номенклатура, определяющая их в главе 27 текущей ратифицированной непривилегированной спецификации ISA. Сначала указывается база набора команд, кодировка для RISC-V, разрядность регистра и вариант; например, РВ64И или РВ32Е . Затем следуют буквы, обозначающие реализованные расширения, в порядке, указанном в таблице выше. За каждой буквой может следовать основной номер, за которым может следовать буква «p», а также второстепенный номер опции. По умолчанию он равен 0, если дополнительный номер версии отсутствует, и 1,0, если отсутствует весь номер версии. Таким образом RV64IMAFD можно записать как RV64I1p0M1p0A1p0F1p0D1p0 или проще как РВ64И1М1А1Ф1Д1 . Для удобства чтения между расширениями можно использовать символы подчеркивания, например РВ32И2_М2_А2 .
Базовые расширенные вычисления целых чисел и чисел с плавающей запятой, а также примитивы синхронизации для многоядерных вычислений считаются необходимыми для вычислений общего назначения, и поэтому у нас есть сокращение «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 ]
Регистрация наборов
[ редактировать ]Зарегистрироваться имя |
Символический имя |
Описание | Сохранено |
---|---|---|---|
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 | фа0–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 г. [update], версия 1.12 ратифицирована RISC-V International. [ 3 ]
Версия 1.12 спецификации поддерживает несколько типов компьютерных систем:
- Системы, имеющие только машинный режим , возможно, для простых встроенных систем,
- Системы как с машинным режимом (для простого супервизора ), так и с пользовательским режимом для реализации относительно безопасных встроенных систем.
- Системы с машинным режимом, режимом супервизора (для операционной системы) и пользовательскими режимами для типичных операционных систем.
Они примерно соответствуют системам с максимум четырьмя кольцами привилегий и безопасности: машина, гипервизор, супервизор и пользователь. Также ожидается, что на каждом уровне будет тонкий слой стандартизированного вспомогательного программного обеспечения, которое взаимодействует с более привилегированным уровнем или аппаратным обеспечением. [ 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 год [update], эффективность предлагаемой ISA варьируется от 2x до 5x от базового процессора для различных кодеков DSP. [ 52 ] В предложении отсутствовали форматы инструкций и передача лицензии RISC-V International, но оно было рассмотрено в списке рассылки. [ 51 ] Некоторые непопулярные части этого предложения заключались в том, что оно добавляло код условия, первый в конструкции RISC-V, связывало соседние регистры (тоже первый) и имело счетчик циклов, который может быть сложно реализовать в некоторых микроархитектурах.
Векторный набор
[ редактировать ]Предлагаемый набор команд векторной обработки может сделать упакованный набор SIMD устаревшим. Разработчики надеются, что ЦП сможет реализовать векторные инструкции в регистрах стандартного процессора. Это позволит реализовать минимальные реализации с производительностью, аналогичной мультимедийной ISA, как указано выше. Однако настоящий векторный сопроцессор может выполнить тот же код с более высокой производительностью. [ 53 ]
По состоянию на 19 сентября 2021 г. [update], векторное расширение имеет версию 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 г. [update]точная форма абстрактного интерфейса остается неопределенной, но предложения включают систему отображения памяти со стандартизированными адресами для регистров отладочных устройств или регистр команд и регистр данных, доступных для системы связи. [ 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 год. [update]Линейка продуктов включает восемь 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 ]
В разработке
[ редактировать ]- ASTC разработала процессор RISC-V для встраиваемых микросхем. [ 97 ]
- Центр развития передовых вычислений (C-DAC) в Индии разрабатывает одноядерный 32-битный процессор с прямым порядком, один одноядерный 64-битный с прямым порядком и три внеочередных одно-, двух- и четырехъядерных RISC-процессора. V-процессор серии VEGA Microprocessors . [ 98 ] [ 99 ] [ 100 ]
- Cobham Gaisler NOEL-V 64-bit. [ 101 ]
- Компьютерная лаборатория Кембриджского университета в сотрудничестве с проектом FreeBSD портировала эту операционную систему на 64-битный RISC-V для использования в качестве аппаратно-программной исследовательской платформы. [ 102 ]
- Esperanto Technologies объявила, что разрабатывает три процессора на базе RISC-V: ET-Maxion высокопроизводительное ядро ET-Minion , энергоэффективное ядро и графический процессор ET-Graphics . [ 103 ]
- Esperanto ET-SoC-1, «килоядерный» суперкомпьютер на кристалле мощностью 200 TOPS, с 1088 маленькими 64-битными ядрами ET-Minion упорядоченного порядка с тензорными / векторными блоками и 4 большими 64-битными ядрами ET-Maxion с нарушением порядка. ядра [ 104 ]
- ETH Zurich и Болонский университет совместно разработали процессор RISC-V PULPino с открытым исходным кодом. [ 105 ] в рамках проекта Parallel Ultra-Low Power (PULP) для энергоэффективных вычислений IoT. [ 106 ]
- Европейская процессорная инициатива (EPI), поток ускорителя RISC-V. [ 107 ] [ 108 ]
- Группа разработки реконфигурируемых интеллектуальных систем (RISE) ИИТ-Мадрас разрабатывает шесть процессоров Shakti серии RISC-V с открытым исходным кодом для шести различных применений: от небольшого 32-битного процессора для Интернета вещей (IoT) до большого 64-битного процессора. битные процессоры, предназначенные для компьютеров складского масштаба, таких как серверные фермы, на основе RapidIO и Hybrid Memory Cube . технологий [ 109 ] [ 15 ] [ 110 ] 32-битный Moushik успешно загружен RISE для применения кредитных карт, машин электронного голосования (EVM), камер наблюдения, сейфовых замков, персонализированных систем управления здоровьем. [ 95 ] [ 111 ]
- lowRISC — это некоммерческий проект по реализации (SoC) с полностью открытым исходным кодом аппаратной системы на кристалле на основе 64-битной RISC-V ISA. [ 112 ]
- Nvidia планирует использовать RISC-V для замены процессора Falcon на своих GeForce . видеокартах [ 113 ]
- Консорциум RV64X работает над набором графических расширений для RISC-V и объявил, что они разрабатывают ядро RISC-V с открытым исходным кодом с блоком графического процессора. [ 114 ]
- Компания SiFive анонсировала свое первое высокопроизводительное ядро ЦП RISC-V — процессор IP серии U8. [ 115 ]
- Компания Ventana сообщила, что они разрабатывают высокопроизводительные IP-процессоры RISC-V и технологию чиплетов, ориентированную на приложения центров обработки данных. [ 116 ] [ 117 ]
Открытый исходный код
[ редактировать ]Существует множество процессоров 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 в июле 2019 года объявила о вышедшем из строя 16-ядерном 64-битном (RV64GC) процессоре XuanTie 910 с тактовой частотой 2,5 ГГц. [ 132 ] В октябре 2021 года XuanTie 910 был выпущен с открытым исходным кодом. [ 133 ]
- Институт вычислительных технологий Китайской академии наук (ICT CAS) в июне 2020 года запустил проект высокопроизводительного процессора XiangShan RISC-V. [ 134 ] [ 135 ]
- Hazard3 от Люка Рена, процессор RV32I с трехступенчатым конвейером. [ 136 ] реализованы два ядра Hazard3 В микроконтроллере RP2350 . [ 137 ]
Программное обеспечение
[ редактировать ]Обычная проблема для нового набора команд — это недостаток конструкции ЦП и программного обеспечения — обе проблемы ограничивают его удобство использования и сокращают внедрение. [ 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. [ 138 ] [ 102 ] Порты Debian [ 139 ] и Федора [ 140 ] Дистрибутивы Linux и порт Haiku , [ 141 ] стабилизируются (все поддерживают только 64-битный RISC-V, поддержка 32-битной версии не планируется). Существует порт Das U-Boot . [ 142 ] UEFI Spec v2.7 определил привязку RISC-V, а порт TianoCore был создан HPE . инженерами [ 143 ] и, как ожидается, будет передан в восходящий поток. Имеется предварительный порт микроядра seL4 . [ 144 ] [ 145 ] Hex Five выпустила первый стек Secure IoT для RISC-V с поддержкой FreeRTOS . [ 146 ] Также был портирован xv6 , современная реализация Unix шестого издания на языке ANSI C , используемая в педагогических целях в Массачусетском технологическом институте . ОСРВ Pharos портирован на 64-битный RISC-V. [ 147 ] (включая защиту времени и памяти). Также см. Сравнение операционных систем реального времени .
Существует симулятор для запуска системы Linux RISC-V в веб-браузере с использованием JavaScript . [ 148 ] [ 149 ] [ 150 ]
QEMU поддерживает работу (с использованием двоичной трансляции ) 32- и 64-битных систем RISC-V (например, Linux) со многими эмулируемыми или виртуализированными устройствами (последовательными, параллельными, USB, сетью, хранилищем, часами реального времени, сторожевым таймером, аудио), а также как запуск двоичных файлов RISC-V Linux (трансляция системных вызовов в ядро хоста). Он поддерживает многоядерную эмуляцию (SMP). [ 151 ]
Симулятор Creator является портативным и позволяет пользователю изучать различные языки ассемблера разных процессоров (в Creator есть примеры с реализацией инструкций RISC-V и MIPS32). [ 152 ] [ 153 ] [ 154 ] [ 155 ] [ 156 ]
Расширяемый образовательный симулятор WepSIM реализует ( микропрограммируемое ) подмножество инструкций RISC-V (RV32I+M) и позволяет выполнять подпрограммы на ассемблере. [ 157 ] [ 158 ]
Для создания IP-ядер RISC-V было применено несколько языков, включая язык описания оборудования на основе Scala Chisel . [ 159 ] который может свести проекты к Verilog для использования в устройствах, а также язык описания процессора CodAL, который использовался для описания процессорных ядер RISC-V и для создания соответствующих HDK ( RTL , testbench и UVM ) и SDK. [ 160 ] Международная целевая группа по обеспечению соответствия RISC-V имеет репозиторий GitHub для RV32IMC. [ 161 ]
Инструменты разработки
[ редактировать ]- IAR Systems выпустила первую версию IAR Embedded Workbench для RISC-V, которая поддерживает 32-битные ядра и расширения RISC-V RV32 в первой версии. Будущие выпуски будут включать поддержку 64-битной версии и поддержку меньшего базового набора команд RV32E, а также сертификацию функциональной безопасности и решения по обеспечению безопасности.
- Лаутербах добавил поддержку RISC-V в свои отладчики TRACE32 JTAG . [ 162 ] [ 163 ] Лаутербах также объявил [ 164 ] поддержка SiFives RISC-V NEXUS . трассировки процессоров
- Компания SEGGER выпустила новый продукт под названием «J-Trace PRO RISC-V», добавила поддержку ядер RISC-V в семейство отладочных датчиков J-Link . [ 165 ] их интегрированная среда разработки Embedded Studio, [ 166 ] а также их RTOS embOS и встроенное программное обеспечение. [ 167 ]
- UltraSOC , теперь часть Siemens, [ 168 ] предложил стандартную систему трассировки и предоставил реализацию.
См. также
[ редактировать ]Примечания
[ редактировать ]- ^ Большой и двусторонний порядок поддерживаются через нестандартные варианты; инструкции всегда имеют прямой порядок байтов. [ 2 ] : ви, 9–10
- ^ Обозначение V (римская цифра «5») обозначает RISC-V как компьютера с сокращенным набором команд (RISC) архитектуру 5-го поколения , которая разрабатывалась в Калифорнийском университете в Беркли с 1981 года. [ 4 ]
Ссылки
[ редактировать ]- ^ Асанович, Крсте ; Паттерсон, Дэвид А. (6 августа 2014 г.). Наборы инструкций должны быть бесплатными: аргументы в пользу RISC-V (PDF) . Департамент EECS Калифорнийского университета в Беркли. UCB/EECS-2014-146.
- ^ Перейти обратно: а б с д и ж г час я дж к л м н тот п д р с т в v В х и С аа аб и объявление но из в ах есть также и аль являюсь а к ап ак с как в В из хорошо топор является тот нет бб до нашей эры Уотерман, Эндрю; Асанович, Крсте , ред. (декабрь 2019 г.). «Руководство по набору команд RISC-V, том I: ISA уровня пользователя, версия документа 20191213» (PDF) . Фонд RISC-V . Проверено 5 ноября 2021 г.
- ^ Перейти обратно: а б с д и ж г час я дж к л Уотерман, Эндрю; Асанович, Крсте (3 декабря 2021 г.). «Руководство по набору команд RISC-V, том II: Документ о привилегированной архитектуре, версия 20211203» (PDF) . RISC-V International . Проверено 5 ноября 2021 г.
- ^ Уркхарт, Родди (29 марта 2021 г.). «Что означает RISC-V? Краткая история открытого ISA» . Системы и дизайн: Мнение . Полупроводниковая техника.
- ^ «О RISC-V: RISC-V International — это глобальная некоммерческая организация, занимающаяся открытой стандартной архитектурой набора команд RISC-V (ISA)» . RISC-V International.
- ^ «RISC-V перенесет штаб-квартиру в Швейцарию из-за опасений торговой войны» . EE Times Europe. 28 ноября 2019 г.
- ^ Перейти обратно: а б Уотерман, Эндрю; Асанович, Крсте (7 мая 2017 г.). «Руководство по набору команд RISC-V, том I: базовый уровень пользователя ISA версии 2.2» (PDF) . RISC-V International . Проверено 5 ноября 2021 г.
- ^ Ньюсом, Тим; Вакс, Меган (22 марта 2019 г.). «Поддержка внешней отладки RISC-V, версия 0.13.2 d5029366d59e8563c08b6b9435f82573b603e48e» (PDF) . RISC-V International . Проверено 7 ноября 2021 г.
- ^ Демерджян, Чак (7 августа 2013 г.). «Долгий взгляд на то, как ARM лицензирует чипы: Часть 1» . Полуточный.
- ^ Демерджян, Чак (8 августа 2013 г.). «Как ARM лицензирует свою интеллектуальную собственность для производства: Часть 2» . Полуточный.
- ^ «Wave Computing завершает свою открытую инициативу MIPS с немедленным эффектом и нулевым предупреждением» . 15 ноября 2019 г.
- ^ Перейти обратно: а б с д и ж Асанович, Крсте . «Наборы инструкций должны быть бесплатными» (PDF) . Технические отчеты Калифорнийского университета в Беркли . Регенты Калифорнийского университета . Проверено 15 ноября 2016 г.
- ^ «Ракетный генератор» . РИСК-V . Регенты Калифорнийского университета. Архивировано из оригинала 6 октября 2014 года . Проверено 1 октября 2014 г.
- ^ Перейти обратно: а б Селио, Кристофер; С любовью, Эрик. "riscv-sodor: образовательные микроархитектуры дляrisc-visa" . Гитхаб . Регенты Калифорнийского университета . Проверено 25 октября 2019 г.
- ^ Перейти обратно: а б «Программа процессора ШАКТИ» . Индийский технологический институт Мадраса . Проверено 3 сентября 2019 г.
- ^ Селио, Кристофер. «Лабораторное упражнение CS 152, 3» (PDF) . Калифорнийский университет в Беркли . Регенты Калифорнийского университета. Архивировано из оригинала (PDF) 12 февраля 2015 года . Проверено 12 февраля 2015 г.
- ^ Перейти обратно: а б с д и Уотерман, Эндрю; Асанович, Крсте (31 мая 2016 г.). «Руководство по набору команд RISC-V, том I: базовый уровень пользователя ISA версии 2.1» (PDF) . Калифорнийский университет, Беркли. ЕЭКС-2016-118 . Проверено 5 ноября 2021 г.
- ^ Перейти обратно: а б Паттерсон, Дэвид А .; Дитцель, Дэвид Р. (октябрь 1980 г.). «Дело в пользу компьютера с сокращенным набором команд». Новости компьютерной архитектуры ACM SIGARCH . 8 (6): 25. дои : 10.1145/641914.641917 . S2CID 12034303 .
- ^ «Янтарное ARM-совместимое ядро» . Открытые ядра . Проверено 26 августа 2014 г.
- ^ «АРМ4У» . Открытые ядра . Проверено 26 августа 2014 г.
- ^ Чен, Тони; Паттерсон, Дэвид (24 января 2016 г.). Генеология RISC-V (Технический отчет). Калифорнийский университет в Беркли. УКБ/EECS-2016-6.
- ^ Образцы, Алан Дейн; Кляйн, Майк; Фоли, Пит (1985). SOAR Архитектура (Технический отчет). Калифорнийский университет, Беркли. UCB/CSD-85-226.
- ^ Хилл, Марк Дональд; и др. (Сьюзан Дж. Эггерс, Джеймс Ричард Ларус, Джордж С. Тейлор, Гленн Д. Адамс, Бидьют Кумар Боуз, Гарт А. Гибсон, Пол Марк Хансен, Джон Келлер, Шинг И. Конг, Коринна Грейс Ли, Дэбом Ли, Дж. М. Пендлтон , Скотт Аллен Ричи, Дэвид А. Вуд, Бенджамин Г. Зорн, Пол Н. Хилфингер, Д. А. Ходжес, Рэнди Х. Кац, Джон К. Оустерхаут и Дэвид А. Паттерсон ) (декабрь 1985 г.). SPUR: Многопроцессорная рабочая станция СБИС (Технический отчет). Калифорнийский университет, Беркли. UCB/CSD-86-273.
- ^ «Соавторы» . riscv.org . Регенты Калифорнийского университета. Архивировано из оригинала 7 сентября 2018 года . Проверено 25 августа 2014 г.
- ^ Асанович, Крсте . «Руководство по набору команд RISC-V, том I: Базовый уровень пользователя ISA» (PDF) . Технические отчеты Калифорнийского университета в Беркли . Регенты Калифорнийского университета . Проверено 13 мая 2011 г.
- ^ Грушка, Джоэл (21 августа 2014 г.). «RISC снова на высоте: новая архитектура RISC-V надеется конкурировать с ARM и x86, поскольку ее исходный код полностью открыт» . ЭкстримТех .
- ^ «История RISC-V» . Проверено 28 января 2023 г.
- ^ «Новый проект микропроцессоров бросает вызов гигантам отрасли» . Экономист . 3 октября 2019 г. ISSN 0013-0613 . Проверено 10 ноября 2019 г. .
- ^ «Конференция по автоматизации проектирования» . dac.com . Проверено 6 февраля 2021 г.
- ^ «Члены» . RISC-V International . Проверено 1 августа 2023 г.
- ^ «Американская группа по производству чипов переезжает в Швейцарию из-за опасений по поводу ограничения торговли» . Рейтер . 26 ноября 2019 года . Проверено 26 ноября 2019 г.
- ^ Чунг, Санни (15 декабря 2023 г.). «Изучение большой стратегии Китая в отношении RISC-V» . Краткое описание Китая . Фонд Джеймстауна . Проверено 18 декабря 2023 г.
- ^ «История RISC-V — RISC-V International» . RISC-V International . Проверено 14 мая 2020 г.
- ^ «Руководство по брендингу – RISC-V International» . Проверено 23 июня 2024 г.
- ^ «Группа Linley объявляет победителей ежегодной премии «Выбор аналитиков» (пресс-релиз). Группа Линли. 12 января 2017 года . Проверено 21 января 2018 г.
- ^ Перейти обратно: а б «Расширения ISA для битовых манипуляций» (PDF) . RISC-V International. Ноябрь 2021 г.
- ^ «Векторное расширение» . RISC-V International. Ноябрь 2021 г.
- ^ Перейти обратно: а б «Инструкции по скалярным источникам и источникам энтропии, том I криптографических расширений RISC-V» (PDF) . Гитхаб . 18 февраля 2022 г. Проверено 28 января 2023 г.
- ^ «Профили RISC-V» . Обсуждение . 2022.
- ^ Горизонтальный подкомитет платформы RISC-V (декабрь 2021 г.). «Спецификация платформы RISC-V» (PDF) . Версия 0.3-черновик.
- ^ Перейти обратно: а б с д и ж г час я Уотерман, Эндрю (13 мая 2011 г.). Повышение энергоэффективности и уменьшение размера кода с помощью сжатия RISC-V . Калифорнийский университет в Беркли: Регенты Калифорнийского университета. п. 32 . Проверено 25 августа 2014 г.
- ^ Уотерман, Эндрю; и др. «Руководство по сжатому набору команд RISC-V, версия 1.9 (проект)» (PDF) . РИСК-V . Проверено 18 июля 2016 г.
- ^ Перейти обратно: а б Брусси, Рожье. «Полный 16-битный RVC» . Группы Google . Фонд RISC-V . Проверено 18 июля 2019 г.
- ^ Перейти обратно: а б Брусси, Рожье. «Предложение: X конденсированный, [a]… Компактный… 16-битный автономный G-ISA» . Почтовый сервер RISC-V ISA . Группы Google . Проверено 10 ноября 2016 г.
- ^ Фунг, Ксан. «Улучшенный сжатый X» . Группы Google . Фонд RISC-V . Проверено 18 июля 2019 г.
- ^ Ионеску, Ливиу. «Профиль микроконтроллера RISC-V» . Гитхаб . Проверено 5 апреля 2018 г.
- ^ Баррос, Сезар (1 апреля 2018 г.). «Предложение: RV16E» . Разработчики RISC-V ISA (список рассылки) . Проверено 2 апреля 2018 г.
- ^ Бонзини, Паоло; Уотерман, Эндрю. «Предложение по виртуализации без режима H» . Разработчики RISC-V ISA (список рассылки) . Проверено 24 февраля 2017 г.
- ^ "risk-hidden/risk-hidden.adoc at main · Risk/risk-hidden" . Гитхаб . Проверено 2 января 2024 г.
- ^ Вольф, Клэр, изд. (10 января 2021 г.). «Документ расширения Bitmanip RISC-V, версия 0.93» (PDF) . Гитхаб . Фонд RISC-V . Проверено 9 марта 2021 г.
- ^ Перейти обратно: а б «Краткое описание инструкций для предложения ISA «P»» . Группы Google . АНДЕ Технологии . Проверено 13 января 2020 г. .
- ^ Су, Чарли (30 июня 2018 г.). «Комплексные решения RISC-V для AIoT» (PDF) . Содержимое RISC-V . Фонд RISC-V . Проверено 28 января 2023 г.
- ^ Перейти обратно: а б с д и ж г Шмидт, Колин; Оу, Альберт; Ли, Юнсуп; Асанович, Крсте . «Предложение по векторному расширению RISC-V» (PDF) . РИСК-V . Регенты Калифорнийского университета . Проверено 14 марта 2016 г.
- ^ Перейти обратно: а б «Выпуск Vector Extension 1.0, заморожен для всеобщего ознакомления · riscv/Riscv-v-spec» . Гитхаб .
- ^ Оу, Альберт; Нгуен, Куан; Ли, Юнсуп; Асанович, Крсте . «Примеры MVP: векторные процессоры смешанной точности» (PDF) . EECS Калифорнийского университета в Беркли . Регенты Калифорнийского университета. Архивировано из оригинала (PDF) 15 марта 2016 года . Проверено 14 марта 2016 г.
- ^ Ли, Юнсуп; Гровер, Винод; Крашинский, Ронни; Стивенсон, Марк; Кеклер, Стивен В.; Асанович, Крсте . «Изучение пространства проектирования управления расхождениями SPMD в архитектурах с параллельными данными» (PDF) . Сайт EECS Беркли . Регенты Калифорнийского университета. Архивировано из оригинала (PDF) 15 марта 2016 года . Проверено 14 марта 2016 г.
- ^ Перейти обратно: а б с д и Брэдбери, Алекс; Валлентовиц, Стефан. «Отладка управления запуском RISC-V» . Гугл Документы . Фонд RISC-V . Проверено 20 января 2017 г.
- ^ Ньюсом, Тим. «Группа отладки RISC-V > результаты опроса» . Группы Google, группа отладки RISC-V . Фонд RISC-V . Проверено 20 января 2017 г.
- ^ МакГуганус. "riscv-trace-spec" . Гитхаб . Проверено 13 января 2020 г. .
- ^ Дахад, Нитин. «UltraSoC решает проблему поддержки RISC-V, жертвуя кодировщик трассировки» . ЭЭ Таймс . Аспенкор . Проверено 13 января 2020 г. .
- ^ «Обзор ядер RISC-V и SoC» . РИСЦ-В. 25 сентября 2019 г. Проверено 5 октября 2019 г.
- ^ «Китай полностью уверен в будущем RISC-V» . 8 января 2024 г. Проверено 7 мая 2024 г.
- ^ «Д1» . Проверено 30 сентября 2021 г.
- ^ Перейти обратно: а б с «Международные члены RISC-V» . RISC-V International . Проверено 22 января 2021 г.
- ^ «На выставке CES2022 компания Bouffalo демонстрирует готовое решение Matter» . www.eetimes.com . 17 января 2022 г. Проверено 20 января 2022 г.
- ^ «Облачный МЕДВЕДЬ» . Проверено 16 октября 2018 г.
- ^ riscv/riscv-cores-list , RISC-V, 6 февраля 2021 г. , получено 9 февраля 2021 г.
- ^ «Codasip анонсирует процессорные ядра RISC-V, обеспечивающие многоядерность и возможности SIMD» . www.newelectronics.co.uk . Архивировано из оригинала 23 декабря 2020 года . Проверено 9 февраля 2021 г.
- ^ «3.6.2 Сопроцессор со сверхнизким энергопотреблением». Техническое описание семейства ESP32-S2, версия 1.1 (PDF) . Системы эспрессо. 2020 . Проверено 9 июня 2020 г.
- ^ «Техническое описание семейства ESP32-C3, версия 0.4» (PDF) . Системы эспрессо. 2020 . Проверено 27 декабря 2020 г.
- «Представляем ESP32-C3» . Эспрессиф (Пресс-релиз). 27 ноября 2020 г.
- ^ Маннерс, Дэвид (8 июня 2021 г.). «Лицензирование Фраунгофером отказоустойчивого ядра RISC для приложений, критически важных для безопасности» . Еженедельник электроники . Проверено 13 апреля 2022 г.
- ^ «GigaDevice представляет серию GD32V с ядром RISC-V в совершенно новом 32-битном микроконтроллере общего назначения» . www.gigadevice.com . 23 августа 2019 года. Архивировано из оригинала 29 августа 2019 года . Проверено 29 августа 2019 г.
- ^ «Sipeed Longan Nano — Макетная плата RISC-V GD32VF103CBT6» . www.seeedstudio.com . Проверено 29 августа 2019 г.
- ^ Клейдермахер, Дэйв; Сид, Джесси; Барбелло, Брэндон (27 октября 2021 г.). «Pixel 6: Устанавливаем новый стандарт мобильной безопасности» . Блог Google по безопасности . Архивировано из оригинала 27 октября 2021 года . Проверено 12 февраля 2023 г.
- ^ «GreenWaves GAP8 — это IoT-процессор RISC-V с низким энергопотреблением, оптимизированный для приложений искусственного интеллекта» . CNXSoft: Новости встраиваемых систем . 27 февраля 2018 года . Проверено 4 марта 2018 г.
- ^ Ёсида, Джунко (26 февраля 2018 г.). «ИИ приходит в сенсорные устройства» . ЭЭ Таймс . Проверено 10 июля 2018 г.
- ^ «GreenWaves Technologies объявляет о доступности комплекта разработки программного обеспечения GAP8 и платы разработки GAPuino» (пресс-релиз). 22 мая 2018 г.
- ^ «ЦП IMG RTXM-2200» . Воображение . Проверено 30 сентября 2023 г.
- ^ Лейбсон, Стивен (9 января 2023 г.). «MIPS выпускает свое первое процессорное ядро RISC-V – это большая проблема» . Электронный журнал .
- ^ Робинсон, Дэн (11 мая 2022 г.). «MIPS сообщает, что первые чипы RISC-V появятся в четвертом квартале 2022 года» . Регистр .
- ^ Шилов, Антон (9 декабря 2020 г.). «Seagate разрабатывает собственные ядра RISC-V для контроллеров систем хранения данных» . Аппаратное обеспечение Тома .
- ^ «HiFive1» . СиФайв . Архивировано из оригинала 26 февраля 2017 года . Проверено 10 июля 2018 г.
- ^ СиФив. «Hi-Five1: комплект разработки с открытым исходным кодом, совместимый с Arduino» . Поставка толпы . Проверено 2 декабря 2016 г.
- ^ «ЦП FU540 SoC» . СиФайв . Архивировано из оригинала 5 октября 2018 года . Проверено 24 октября 2018 г.
- ^ Хорвиц, Джош (23 марта 2023 г.). «Китайский поисковый гигант Baidu инвестирует в стартап StarFive, занимающийся разработкой чипов RISC-V» . Рейтер .
- ^ Шарвуд, Саймон (27 марта 2023 г.). «Китайский веб-гигант Baidu поддерживает RISC-V для центра обработки данных» . Регистр .
- ^ «Синтакор» . Проверено 11 декабря 2018 г.
- ^ Перейти обратно: а б «SCR1 — это высококачественное ядро микроконтроллера RISC-V с открытым исходным кодом в Verilog» . Гитхаб . Синтакор . Проверено 13 января 2020 г. .
- ^ «Материалы семинара RISC-V» . 11 декабря 2016 года . Проверено 28 января 2023 г.
- ^ «ВинЧипХед (ЧМ)» .
- ^ «CH32V003» . ЧМ-ИК . Проверено 10 июля 2023 г.
- ^ "the-10-cent-risc-v-processor-ch32v003" . EEvblog . Проверено 10 июля 2023 г.
- ^ Маннерс, Дэвид (23 ноября 2016 г.). «Объединение Codasip и UltraSoC на RISC-V» . Еженедельник электроники . Метрополис Интернэшнл Групп, ООО . Проверено 23 ноября 2016 г.
- ^ Десикан, Шубашри (6 августа 2018 г.). «ИИТ-Мадрас запускает дези-чип» . Индус . ISSN 0971-751X . Проверено 25 сентября 2020 г.
- ^ Перейти обратно: а б «Познакомьтесь с индийским микропроцессорным чипом Atmanirbhar Moushik, предназначенным для устройств Интернета вещей» . Вион . 24 сентября 2020 г. Проверено 25 сентября 2020 г.
- ^ Добберштейн, Лаура. «Индийский доморощенный процессор RISC-V дебютирует на дешевой плате для разработки» . Регистр . Проверено 6 марта 2024 г.
- ^ Эшенден, Питер (9 ноября 2016 г.). «Re: [isa-dev] RISC V ISA для встраиваемых систем» . Разработчики RISC-V ISA (список рассылки) . Проверено 10 ноября 2016 г.
В ASTC (www.astc-design.com) у нас есть реализация RV32EC в виде синтезируемого IP-ядра, предназначенного для небольших встраиваемых приложений, таких как интеллектуальные датчики и Интернет вещей.
- ^ «C-DAC объявляет Технический Конклав 2019» . Таймс оф Индия . Архивировано из оригинала 17 мая 2019 года . Проверено 12 апреля 2019 г.
- ^ Шарвуд, Саймон (19 августа 2020 г.). «Индия выбирает RISC-V для конкурса полупроводниковой самодостаточности: используйте эти отечественные ядра для сборки комплекта» . Регистр . Проверено 9 июля 2021 г.
- ^ «ВЕГА МИКРОПРОЦЕССОРЫ» . Процессор Vega — CDAC . 9 июля 2021 года. Архивировано из оригинала 9 июля 2021 года . Проверено 9 июля 2021 г.
- ^ «Процессор НОЭЛ-В» . Кобэм Гейслер . Проверено 14 января 2020 г.
- ^ Перейти обратно: а б «FreeBSD Foundation: принят первоначальный порт архитектуры FreeBSD RISC-V» . 4 февраля 2016 г.
- ^ «Эсперанто выходит из режима скрытности и нацеливается на ИИ с помощью 4096-ядерного 7-нм монстра RISC-V» . Wikichip.org . Январь 2018 года . Проверено 2 января 2018 г.
- ^ «Решение для ускорителя искусственного интеллекта Esperanto ET-SoC-1 1092 RISC-V в Hot Chips 33» . 24 августа 2021 г.
- ^ «Проект PULPino GitHub» . Гитхаб . Проверено 2 февраля 2018 г.
- ^ «ПУЛП Платформа» . Платформа PULP . Проверено 2 февраля 2018 г.
- ^ «Поток Ускорителя» . Европейская инициатива процессоров (EPI) . Проверено 22 февраля 2020 г. .
- ^ Редмонд, Калиста (28 января 2023 г.). «Как Европейская процессорная инициатива использует RISC-V для будущего суперкомпьютеров» . Международные новости RISC-V . RISC-V International.
- ^ Хальфакри, Гарет (10 июня 2021 г.). «Ученые RISC-V излагают план по внедрению этой архитектуры в высокопроизводительные вычисления» . Регистр . Проверено 9 июля 2021 г.
- ^ «Проект процессора с открытым исходным кодом IIT Madras» . Быстрый ввод-вывод . ИИТ Мадрас. 26 августа 2014 года. Архивировано из оригинала 14 сентября 2014 года . Проверено 13 сентября 2014 г.
- ^ «IIT Madras разрабатывает и внедряет микропроцессор MOUSHIK для устройств Интернета вещей» . ИИТ Мадрас . 24 сентября 2020 г. Проверено 9 июля 2021 г.
- ^ «Сайт lowRISC» . Проверено 10 мая 2015 г.
- ^ Се, Джо (июль 2016 г.). История оценки NVIDIA RISC V. 4-й семинар RISC-V . Ютуб. Архивировано из оригинала 13 ноября 2021 года.
- ^ «RV64X: бесплатный графический процессор с открытым исходным кодом для RISC-V» . ЭТаймс . 27 января 2021 г. Проверено 9 февраля 2021 г.
- ^ Фрумусану, Андрей (30 октября 2019 г.). «SiFive анонсирует первое ядро ЦП RISC-V OoO: IP-процессор серии U8» . Анандтех .
- ^ Гвеннап, Линли (13 декабря 2021 г.). «Ventana разрабатывает чиплет RISC-V». Отчет микропроцессора .
- ^ Дахад, Нитин (6 сентября 2021 г.). «Запуск чиплетов RISC-V привлек 38 миллионов долларов для вычислений в центрах обработки данных» . ЭЭ Таймс .
- ^ Асанович, Крсте ; и др. «ракетный чип» . Гитхаб . RISC-V International . Проверено 11 ноября 2016 г.
- ^ Селио, Кристофер. "риск-бум" . Гитхаб . Регенты Калифорнийского университета . Проверено 29 марта 2020 г.
- ^ Вольф, Клэр. «PicoRV32 — процессор RISC-V с оптимизированным размером» . Гитхаб . Проверено 27 февраля 2020 г.
- ^ «MIPT-MIPS: тактовый предкремниевый симулятор процессоров RISC-V и MIPS» . Гитхаб .
- ^ «Функции системных вызовов MIPS доступны на MARS» . Courses.missouristate.edu . Проверено 28 мая 2023 г.
- ^ Киндгрен, Олоф. «SERV — последовательный процессор RISC-V» . Гитхаб . Проверено 25 сентября 2023 г.
- ^ Перейти обратно: а б Киндгрен, Олоф (29 декабря 2022 г.). «СЕРВ: 32-битные — это новые 8-битные» (Видео, 2:38) . Ютуб . Фонд RISC-V . Проверено 25 сентября 2023 г.
- ^ Хальфакри, Гарет (14 июня 2022 г.). «В тесте CoreScore установлен новый рекорд: 10 000 ядер RISC-V на одной FPGA» . fossi-foundation.org . Фонд ФОССи . Проверено 25 сентября 2023 г.
- ^ Трабер, Андреас; и др. «ЦЕЛЛЮЛОЗНАЯ ПУЛЬПА: Параллельная сверхмалая мощность» . ETH Цюрих, Болонский университет . Проверено 5 августа 2016 г.
- ^ Шилов, Антон. «Western Digital представляет два новых ядра SweRV RISC-V для микроконтроллеров» . www.anandtech.com . Проверено 9 февраля 2021 г.
- ^ Шилов, Антон. «Western Digital представляет ядро SweRV RISC-V и инициативу по согласованию кэша через Ethernet» . www.anandtech.com . Проверено 23 мая 2019 г.
- ^ «Western Digital выпускает основной исходный код SweRV RISC-V» . АБ Открыть . 28 января 2019 г. Архивировано из оригинала 21 мая 2019 г.
- ^ Cores-SweRV на GitHub
- ^ Нолтинг, Стефан (2022). "неорв32" . Гитхаб . дои : 10.5281/zenodo.7030070 . Проверено 9 сентября 2021 г.
- ^ «Китайская компания Alibaba производит 16-ядерный процессор RISC-V с тактовой частотой 2,5 ГГц» . www.techspot.com . 28 июля 2019 года . Проверено 30 июля 2019 г.
- ^ «Alibaba открывает исходные коды четырех ядер RISC-V: XuanTie E902, E906, C906 и C910» . 20 октября 2021 г. Проверено 20 октября 2021 г.
- ^ Репозиторий Сяншань на Github
- ^ 64-битный процессор RISC-V с открытым исходным кодом XiangShan, способный конкурировать с Arm Cortex-A76 — CNX Software
- ^ Рен, Люк (8 августа 2024 г.), Wren6991/Hazard3 , получено 8 августа 2024 г.
- ^ Аптон, Эбен (8 августа 2024 г.). «Raspberry Pi Pico 2, наша новая плата микроконтроллера стоимостью 5 долларов, уже в продаже» . Проверено 8 августа 2024 г.
- ^ «riscv — FreeBSD Wiki» . wiki.freebsd.org .
- ^ Монтезело, Мануэль. «Порт Debian GNU/Linux для RISC-V 64» . Группы Google . Проверено 19 июля 2018 г.
- ^ «Архитектуры/RISC-V» . Федора вики . Красная шляпа . Проверено 26 сентября 2016 г.
- ^ «Загрузка наших образов RISC-V» . Проект Хайку . 7 ноября 2021 г. Проверено 4 марта 2023 г.
- ^ Бегари, Падмарао. «Порт U-Boot на 32-битном RISC-V доступен» . Группы Google . Микросеми . Проверено 15 февраля 2017 г.
- ^ RiscVEdk2 на GitHub.
- ^ Алматы, Хешам. «RISC-V, seL4» . seL4 Документация . Организация Содружества научных и промышленных исследований (CSIRO) . Проверено 13 июля 2018 г.
- ^ Алматы, Хешам. «хешамелматари» . Гитхаб . Проверено 13 июля 2018 г.
- ^ «MultiZone Secure IoT Stack, первый безопасный IoT-стек для RISC-V» . Шестнадцатеричная безопасность . Hex Five Security, Inc., 22 февраля 2019 г. Проверено 3 марта 2019 г.
- ^ «Фарос» . СоурсФордж . Проверено 1 апреля 2020 г.
- ^ «ANGEL — это симулятор Javascript RISC-V ISA (RV64), который запускает riscv-linux с BusyBox» . RISCV.org . Архивировано из оригинала 11 ноября 2018 года . Проверено 17 января 2019 г.
- ^ Ли, Юнсуп (5 марта 2014 г.). «Загрузите RISC-V Linux в своем веб-браузере!» . RISC-V International . Проверено 4 сентября 2020 г.
- ^ «АНГЕЛ – РИСК-V» . riscv.org.s3-website-us-west-1.amazonaws.com . Архивировано из оригинала 1 декабря 2020 года . Проверено 4 сентября 2020 г.
- ^ «Документация/Платформы/RISCV» . QEMU Wiki . Проверено 7 мая 2020 г.
- ^ Камамас-Алонсо, Диего; Гарсия-Карбалейра, Феликс; Дель-Посо-Пуналь, Элиас; Матеос, Алехандро Кальдерон (29 мая 2024 г.). «CREATOR: Образовательная интегрированная среда разработки для программирования RISC-V» . Доступ IEEE : 1–17. дои : 10.1109/ACCESS.2024.3406935 . ISSN 2169-3536 .
- ^ Камамас-Алонсо, Диего; Гарсия-Карбалейра, Феликс; Дель-Посо-Пуньяль, Элиас; Матеос, Алехандро Кальдерон (23 июля 2021 г.). СОЗДАТЕЛЬ: Дидактический и универсальный симулятор программирования на ассемблере [ СОЗДАТЕЛЬ: Дидактический и универсальный симулятор программирования на ассемблере ]. XXXI конференция по параллелизму (JP20/21) (на испанском языке). Малага. дои : 10.5281/zenodo.5130302 .
- ^ Камамас-Алонсо, Диего; Гарсия-Карбалейра, Феликс; Дель-Посо-Пуналь, Элиас; Матеос, Алехандро Кальдерон (октябрь 2021 г.). Новый универсальный симулятор для обучения программированию на ассемблере . XLVII Латиноамериканская компьютерная конференция (CLEI) 2021 г. (на испанском языке). Картаго, Коста-Рика: IEEE (опубликовано 21 декабря 2021 г.). стр. 1–9. дои : 10.1109/CLEI53233.2021.9640144 . ISBN 978-1-6654-9503-5 . S2CID 245387555 . Проверено 2 августа 2022 г.
- ^ Веб-сайт CREATOR с примером RISC-V: https://creatorsim.github.io/creator/?example_set=default_rv&example=e12.
- ^ Исходный код CREATOR на GitHub: https://github.com/creatorsim/creator .
- ^ «Пример WepSIM с RISC-V_im» . ВепСИМ .
- ^ «Домашняя страница WepSIM» .
- ^ «Chisel: создание оборудования на встроенном языке Scala» . Калифорнийский университет в Беркли . Регенты Калифорнийского университета . Проверено 12 февраля 2015 г.
- ^ «Кодасип Студия» . Кодасип . Проверено 19 февраля 2021 г.
- ^ riscv/riscv-compliance , RISC-V, 12 февраля 2021 г. , дата обращения 19 февраля 2021 г.
- ^ «Отладчик RISC-V» . www.lauterbach.com Отладчик TRACE32 для RISC-V .
- ^ «Lauterbach и SiFive обеспечивают поддержку TRACE32 для высокопроизводительных ядер RISC-V» . www.sifive.com .
- ^ «TRACE32 поддерживает трассировку RISC-V SiFive» . www.lauterbach.com . Архивировано из оригинала 2 июня 2022 года . Проверено 6 марта 2021 г.
- ^ «SEGGER добавляет поддержку Coreplex IP от SiFive в свой ведущий в отрасли отладочный зонд J-Link» . Проверено 19 сентября 2017 г.
- ^ «PR: SEGGER Embedded Studio поддерживает архитектуру RISC-V» . Проверено 23 ноября 2017 г.
- ^ «ПР: SEGGER представляет RTOS, стеки, промежуточное программное обеспечение для RISC-V» . Проверено 8 декабря 2017 г.
- ^ Дахад, Нитин (23 июня 2020 г.). «Siemens приобретает пакет продуктов UltraSoC для жизненного цикла SoC» . ЭЭ Таймс . Проверено 12 июля 2023 г.
Дальнейшее чтение
[ редактировать ]- «Руководство по набору команд RISC-V» . RISC-V International.
- «Программирование на языке ассемблера RISC-V» . Гитхаб . 8 ноября 2019 г.
- Уотерман, Эндрю (январь 2016 г.). «Проектирование архитектуры набора команд RISC-V» (PDF) . Департамент EECS, Калифорнийский университет, Беркли . ЕЭКС-2016-1.
- Асанович, Крсте ; Паттерсон, Дэвид А. (6 августа 2014 г.). «Наборы инструкций должны быть бесплатными: аргументы в пользу RISC-V» . Департамент EECS, Калифорнийский университет, Беркли . UCB/EECS-2014-146.
- Уотерман, Эндрю; Ли, Юнсуп; Авизиенис, Римас; Кук, Генри; Паттерсон, Дэвид А .; Асанович, Крсте (25–27 августа 2013 г.). Набор инструкций RISC-V (PDF) . Горячие чипсы 25 . Стэнфордский университет, Пало-Альто, Калифорния, США.
- Даббелт, Палмер (7–11 февраля 2015 г.). Программная экосистема RISC-V (PDF) . Архитектура высокопроизводительных компьютеров (HPCA) 2015 . Сан-Франциско, Калифорния, США.
- Ли, Юнсуп (7–11 февраля 2015 г.). Генератор SoC RISC-V «Rocket Chip» в долоте (PDF) . Архитектура высокопроизводительных компьютеров (HPCA) 2015 . Сан-Франциско, Калифорния, США.
- Уотерман, Эндрю; Ли, Юнсуп; Паттерсон, Дэвид А .; Асанович, Крсте (5 ноября 2015 г.). «Руководство по сжатому набору команд RISC-V, версия 1.9 (проект)» (PDF) . РИСК-V .
Внешние ссылки
[ редактировать ]- Официальный сайт
- Справочная карточка набора команд RISC-V на GitHub
- «RISC-V: открытый стандарт для SoC» . ЭТаймс . 8 июля 2014 г.
- «Анализ архитектуры набора команд RISC-V» . Адаптева . 11 августа 2014 г.
- Селио, Кристофер; Даббелт, Палмер; Паттерсон, Дэвид А .; Асанович, Крсте (8 июля 2016 г.). Обновленный аргумент в пользу компьютера с сокращенным набором команд: предотвращение раздувания ISA с помощью Macro-Op Fusion для RISC-V (технический отчет). Калифорнийский университет, Беркли. arXiv : 1607.02318 . UCB/EECS-2016-130.
- «Что такое RISC-V?» . Электропроизводитель . 14 июля 2021 г.