Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Примечательные особенности RISC-V ISA включают архитектуру загрузки-сохранения , битовые шаблоны для упрощения мультиплексоров в ЦП, плавающую точку IEEE 754 , архитектурно нейтральный дизайн и размещение наиболее значимых битов в фиксированном месте для ускорения. знак расширения . [1] Набор инструкций разработан для широкого круга задач. Базовый набор команд имеет фиксированную длину 32-битных естественно выровненных инструкций, а ISA поддерживает расширения переменной длины, где каждая инструкция может быть любым количеством 16-битных участков по длине. [1] Подмножества поддерживают небольшие встроенные системы , персональные компьютеры , суперкомпьютеры.с векторными процессорами и параллельными компьютерами в 19-дюймовую стойку в масштабе склада .

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

Проект начался в 2010 году в Калифорнийском университете в Беркли вместе со многими добровольцами, не связанными с университетом. [4] В отличие от других академических проектов, которые обычно оптимизируются только для простоты изложения, дизайнеры предполагали, что набор инструкций RISC-V может быть использован для практических компьютеров.

По состоянию на июнь 2019 года, версия 2.2 пользовательского пространства ISA [1] и версии 1.11 привилегированного ISA [2] являются замороженными , что позволяет программное обеспечение и аппаратные разработки для продолжения. ISA пользовательского пространства, теперь переименованная в Unprivileged ISA, была обновлена, ратифицирована и заморожена как версия 20191213. [5] Спецификация отладки доступна как черновик, версия 0.13.2. [2]

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

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

Для проектирования ЦП требуется опыт проектирования в нескольких областях: электронная цифровая логика , компиляторы и операционные системы . Чтобы покрыть расходы такой команды, коммерческие поставщики компьютерных разработок, такие как ARM Holdings и MIPS Technologies, взимают роялти за использование своих разработок, патентов и авторских прав . [6] [7] [8] Они также часто требуют соглашения о неразглашении перед выпуском документов, в которых подробно описаны преимущества их проектов. Во многих случаях они никогда не описывают причины своего выбора дизайна.

RISC-V был начат с целью сделать практическую ISA с открытым исходным кодом, пригодную для использования в академических целях и в любом аппаратном или программном обеспечении без лицензионных отчислений. [1] [9] Кроме того, обоснования каждой части проекта объясняются, по крайней мере, в общих чертах. Авторы RISC-V - ученые, имеющие значительный опыт в компьютерном дизайне. RISC-V ISA является прямым развитием серии академических проектов компьютерного дизайна. Частично он был создан для помощи таким проектам. [1] [9]

Чтобы создать большое постоянное сообщество пользователей и, таким образом, накапливать проекты и программное обеспечение, разработчики RISC-V ISA планировали поддерживать широкий спектр практических применений: небольшие, быстрые и маломощные реализации в реальном мире, [1] [10] без чрезмерной перестройки для конкретной микроархитектуры . [1] [11] [12] [13] Необходимость в большой базе участников - одна из причин, по которой RISC-V был разработан для такого множества применений.

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

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

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

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

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

Крсте Асанович из Калифорнийского университета в Беркли нашел множество применений для компьютерной системы с открытым исходным кодом. В 2010 году он решил разработать и опубликовать один в «коротком трехмесячном проекте за лето». План состоял в том, чтобы помочь как академическим, так и промышленным пользователям. [9] Дэвид Паттерсон из Беркли также помог усилиям. Первоначально он определил свойство Berkeley RISC , [15] и RISC-V является одним из его длинного ряда совместных научно - исследовательских проектов RISC. На этом этапе студенты недорого предоставили начальное программное обеспечение, моделирование и проекты ЦП. [4]

Первый Raven1 представит ST28nm на BWRC в июне 2012 г.

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

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

Фонд RISC-V и RISC-V International [ править ]

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

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

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

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

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

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

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

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

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

Многие компьютеры RISC-V могут реализовать компактное расширение для уменьшения энергопотребления, размера кода и использования памяти. [1] Есть также планы на будущее по поддержке гипервизоров и виртуализации . [14]

Вместе с расширением набора инструкций супервизора S, RVGC определяет все инструкции, необходимые для удобной поддержки операционной системы общего назначения .

  1. ^ Ожидается, что замороженные детали будут иметь окончательный набор функций и получат только разъяснения до ратификации.

Чтобы приручить комбинации функциональных возможностей, которые могут быть реализованы, определена номенклатура, определяющая их в главе 27 текущей ратифицированной непривилегированной спецификации ISA. Сначала указывается база набора команд, кодировка для RISC-V, разрядность регистра и вариант; например, RV64I или RV32E. Затем следуют буквы, обозначающие реализованные расширения, в порядке, указанном в таблице выше. За каждой буквой может следовать старший, необязательно, за которым следует "p" и младший номер опции. Если дополнительный номер версии опущен, он по умолчанию равен 0, а если номер версии полностью опущен, он по умолчанию равен 1.0. Таким образом, RV64IMAFD может быть записан как RV64I1p0M1p0A1p0F1p0D1p0 или проще как RV64I1M1A1F1D1. Подчеркивание может использоваться между расширениями для удобства чтения, например RV32I2_M2_A2.

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

Небольшой 32-битный компьютер для встраиваемой системы может быть RV32EC. Большой 64-битный компьютер может быть RV64GC; т.е. сокращение для RV64IMAFDZicsrZifenceiC.

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

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

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

Наборы регистров [ править ]

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

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

move rx to ryстановится add r0 to rx and store in ry. [1]

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

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

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

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

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

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

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

Адреса памяти, к которой осуществляется доступ, не нужно выравнивать по ширине слова, но доступ к выровненным адресам может быть быстрее; например, простые ЦП могут реализовать невыровненный доступ с медленной программной эмуляцией, вызванной прерыванием сбоя выравнивания. [1]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

RISC-V рециклы jalи jalrполучить безусловные 20-разрядные PC-относительно прыжков и безусловного регистр на основе 12-разрядные прыжки. Прыжки просто делают регистр связи 0, так что адрес возврата не сохраняется. [1]

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

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

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

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

Ветви сравнения имеют 12-битный диапазон со знаком и переходят относительно ПК. [1]

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

При первой встрече с ветвью процессоры RISC-V должны предположить, что будет принято отрицательное относительное ветвление (т. Е. Знаковый бит смещения равен «1»). [1] Предполагается, что обратная ветвь представляет собой цикл, и обеспечивает направление по умолчанию, чтобы простые конвейерные процессоры могли заполнить свой конвейер инструкций. Помимо этого, RISC-V не требует предсказания ветвлений , но базовые реализации могут его добавлять. RV32I резервирует пространство инструкций «HINT», которое в настоящее время не содержит никаких подсказок по ветвям. [1]

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

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

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

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

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

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

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

Базовый набор команд включает минимальную поддержку в виде fenceинструкции для принудительного упорядочивания памяти. Несмотря на то, что этого достаточно ( fence r, rwобеспечивает приобретают и fence rw, wобеспечивает выпуск ), комбинированные операции могут быть более эффективными. [1]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Набор команд для самых маленьких встроенных процессоров (набор E) сокращается другими способами: поддерживаются только 16 из 32 целочисленных регистров. Инструкции с плавающей запятой не должны поддерживаться (спецификация запрещает это как неэкономичное), поэтому необходимо использовать программную библиотеку с плавающей запятой. [1] Рекомендуется сжатый набор C. Набор привилегированных инструкций поддерживает только машинный режим, пользовательский режим и схемы памяти, которые используют перемещение адреса с привязкой к основанию и привязке. [14]

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

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

Набор привилегированных инструкций [ править ]

ISA RISC-V включает отдельную спецификацию привилегированного набора команд. По состоянию на август 2019 года версия 1.11 ратифицирована RISC-V International. [2] [14]

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

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

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

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

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

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

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

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

Неутвержденная ISA для обработки битов (B) для RISC-V находилась на рассмотрении в январе 2020 года. [ Требуется разъяснение ] Если все сделано правильно, подмножество обработки битов может помочь в криптографических, графических и математических операциях. Критериями включения, задокументированными в черновике, были соответствие философии RV5 и форматам ISA, существенное улучшение плотности или скорости кода (т. Е. Сокращение инструкций по крайней мере 3 к 1) и существенные реальные приложения, включая уже существующий компилятор. поддерживать. Версия 0.92 включает [34] инструкции для подсчета начальных нулей, подсчета одного бита, выполнения логических операций с дополнением, упаковки двух слов в один регистр, взятия минимального или максимального значения, знакового расширения, однобитовых операций, сдвига единиц, поворота, обобщенного переворота битов и перемешивания , или-комбинирует, размещение и извлечение битовых полей, умножение без переноса, инструкции CRC, операции с битовой матрицей (только RV64), условное смешивание, условное перемещение, сдвиги воронки и вычисления адресов без знака.

Упакованный SIMD [ править ]

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

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

Предыдущая, хорошо зарекомендовавшая себя реализация для 64-битного ЦП была мультимедийными инструкциями PA-RISC: Multimedia Acceleration eXtensions . Он увеличил производительность ЦП при выполнении задач обработки цифровых сигналов в 48 или более раз, что позволило реализовать практические видеокодеки в реальном времени в 1995 году. [37] [38] Помимо своей собственной 64-битной математики, процессор PA-RISC MAX2 мог выполнять арифметические операции. сразу на четырех 16-битных подсловах, с несколькими методами переполнения. Он также мог перемещать подслова на разные позиции. PA-RISC MAX2 был намеренно упрощен. Ему не хватало поддержки 8-битных или 32-битных подслов. Размер подслова 16 бит был выбран для поддержки большинства задач цифровой обработки сигналов. Эти инструкции были недорогими в разработке и изготовлении.

Векторный набор [ править ]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Организация RISC-V ведет список реализаций ЦП и SoC RISC-V. [46]

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

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

  • Alibaba Group , в июле 2019 года сообщил о 2,5 ГГц 16-жильных 64-битных (RV64GCV) XuanTie 910 вне порядка процессора [47]
  • Andes Technology Corporation , член-учредитель и премьер RISC-V International. [48] Его семейства процессоров RISC-V варьируются от крошечных 32-разрядных ядер до усовершенствованных 64-разрядных ядер с DSP, FPU, вектором, Linux, суперскалярными и / или многоядерными возможностями.
  • CloudBEAR - это компания, занимающаяся обработкой IP, которая разрабатывает собственные ядра RISC-V для ряда приложений. [49]
  • Codasip, один из основателей RISC-V International [48] , разработал ряд маломощных встраиваемых, высокопроизводительных встраиваемых ядер и ядер процессора приложений. [50] [51]
  • Cortus, платиновый член-учредитель RISC-V International [48], имеет ряд реализаций RISC-V и полную экосистему IDE / toolchain / debug, которые он предлагает бесплатно в рамках своего бизнеса по разработке SoC.
  • Espressif добавила сопроцессор RISC-V ULP к своему микроконтроллеру ESP32 -S2. [52] В ноябре 2020 года Espressif анонсировала свой ESP32-C3, одноядерный 32-разрядный микроконтроллер на базе RISC-V. [53]
  • GigaDevice имеет серию микроконтроллеров на базе RISC-V (RV32IMAC, серия GD32V) [54], один из которых используется на плате Longan Nano, производимой китайской электронной компанией Sipeed . [55]
  • GreenWaves Technologies объявила о выпуске GAP8, 32-разрядного контроллера 1 плюс 8 вычислительных ядер, 32-разрядной SoC (RV32IMC) и платы разработчика в феврале 2018 года. Их плата для разработки GAPuino GAP8 начала поставляться в мае 2018 года. [56] [57] [58]
  • IAR Systems выпустила первую версию IAR Embedded Workbench для RISC-V, которая поддерживает 32-разрядные ядра RISC-V и расширения RV32 в первой версии. Будущие выпуски будут включать 64-разрядную поддержку и поддержку меньшего базового набора команд RV32E, а также сертификаты функциональной безопасности и решения безопасности.
  • Мгновенные ядра SoC RISC-V из ядер FPGA. Система на кристалле, включая ядра RISC-V, определенные C ++.
  • Micro Magic Inc. объявила о самом быстром в мире 64-битном ядре RISC-V с тактовой частотой 5 ГГц и 13000 баллов CoreMarks в октябре 2020 года.
  • SEGGER добавлена поддержка RISC-V ядер их отладки зонда J-Link , [59] их интегрированной среды разработки Embedded Studio, [60] и их RTOS embOS и встроенного программного обеспечения. [61]
  • SiFive , компания, созданная специально для разработки оборудования RISC-V, выпустила модели процессоров в 2017 году. [62] [63] Они включают четырехъядерную, 64-битную (RV64GC) систему на кристалле (SoC), способную работать в общем -целевые операционные системы, такие как Linux. [64]
  • Syntacore, [65] член-учредитель RISC-V International и один из первых коммерческих поставщиков IP RISC-V, с 2015 года разрабатывает и лицензирует семейство RISC-V IP. По состоянию на 2018 год линейка продуктов включает восемь 32- и 64- битовые ядра, включая ядро ​​MCU SCR1 с открытым исходным кодом (RV32I / E [MC]). [66] Первые коммерческие SoC, основанные на Syntacore IP, были продемонстрированы в 2016 году. [67]
  • UltraSOC предложила стандартную систему трассировки и пожертвовала реализацию.
  • Codasip и UltraSoC разработали полностью поддерживаемую интеллектуальную собственность для встроенных SOC RISC-V, которые объединяют ядра RISC-V Codasip и другие IP-адреса с отладкой, оптимизацией и аналитикой UltraSoC. [68]
  • С 2020 года оборонный и стратегический сектор Индии начал использовать [ необходима цитата ] 64-разрядный процессор Risecreek на базе RISC-V с частотой 100–350 МГц, разработанный Индийским технологическим институтом Мадраса (IIT-Madras) и изготовленный Intel с использованием 22-нм FinFET технология по программе Shakti Microprocessor . [69] [70]

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

  • ASTC разработала ЦП RISC-V для встроенных микросхем. [71]
  • Центр развития передовых вычислений , Индия (C-DAC) разрабатывает 64-разрядный четырехъядерный процессор RISC-V, работающий вне очереди. [72]
  • Cobham Gaisler NOEL-V 64-разрядная. [73]
  • Компьютерная лаборатория Кембриджского университета в сотрудничестве с FreeBSD Project перенесла эту операционную систему на 64-битную RISC-V, чтобы использовать ее в качестве исследовательской платформы аппаратного и программного обеспечения. [74]
  • Esperanto Technologies объявила, что они разрабатывают три процессора на базе RISC-V: высокопроизводительное ядро ET-Maxion, энергоэффективное ядро ET-Minion и графический процессор ET-Graphics . [75]
  • ETH Zurich и Болонский университет совместно разработали процессор RISC-V PULPino с открытым исходным кодом [76] в рамках проекта Parallel Ultra-Low Power (PULP) для энергоэффективных вычислений IoT. [77]
  • European Processor Initiative (EPI), RISC-V Accelerator Stream. [78] [79]
  • Индийский технологический институт Мадраса разрабатывает шесть проектов ЦП с открытым исходным кодом RISC-V для шести различных применений, от небольшого 32-разрядного ЦП для Интернета вещей (IoT) до больших 64-разрядных ЦП, предназначенных для компьютеров масштаба склада, таких как в качестве серверных ферм на базе технологий RapidIO и Hybrid Memory Cube . [12] [80] 32-битный Moushik успешно загружен IIT-Madras для использования кредитных карт, электронных машин для голосования (EVM), камер наблюдения, безопасных замков, персонализированных систем управления здоровьем. [70]
  • lowRISC - это некоммерческий проект по реализации полностью открытой аппаратной системы на кристалле (SoC) на основе 64-битной RISC-V ISA. [81]
  • Nvidia планирует использовать RISC-V для замены процессора Falcon на своих видеокартах GeForce . [82]
  • Консорциум RV64X работает над набором графических расширений для RISC-V и объявил, что они разрабатывают ядро ​​RISC-V с открытым исходным кодом с блоком графического процессора. [83]
  • SiFive анонсировала свое первое высокопроизводительное ядро ​​ЦП с выходом из строя RISC-V - процессор серии U8 IP. [84]

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

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

  • Процессоры Беркли. Они реализованы на уникальном языке проектирования оборудования, Chisel , а некоторые названы в честь известных двигателей поездов:
    • 64-битная ракета. [85] Rocket может подойти для компактных маломощных промежуточных компьютеров, таких как персональные устройства. Названный в честь ракеты Стивенсона .
    • 64-разрядное Беркли из заказа машины (БУМ). [86] Berkeley Out-of-Order Machine (BOOM) - это синтезируемое и параметризуемое ядро ​​RV64GC RISC-V с открытым исходным кодом, написанное на языке построения оборудования Chisel. BOOM использует большую часть инфраструктуры, созданной для Rocket, и может использоваться для персональных компьютеров, суперкомпьютеров и компьютеров складского масштаба.
    • Пять 32-битных проектов ЦП Sodor от Беркли [87], разработанных для студенческих проектов. [88] Содор - это вымышленный остров поездов из детских сказок о Томасе Паровозике .
  • picorv32 Клэр Вольф [89], реализация класса RV32IMC 32-битного микроконтроллера (MCU) в Verilog .
  • scr1 от Syntacore [90], реализация класса RV32IMC 32-битного микроконтроллера (MCU) в Verilog .
  • PULPino (Riscy and Zero-Riscy) от ETH Zürich / University of Bologna. [91] В сердечники в PULPino реализовать простую RV32IMC ISA для микроконтроллеров (Zero-Riscy) или более мощный RV32IMFC ISA с пользовательскими расширениями DSP для встроенной обработки сигналов.
  • Western Digital в декабре 2018 анонсировала ядро ​​RV32IMC под названием SweRV EH1 с упорядоченной двухсторонней суперскалярной и девятиступенчатой ​​конструкцией конвейера. В декабре 2019 года WD анонсировала SweRV EH2 как упорядоченное ядро ​​с двумя аппаратными потоками и девятиступенчатым конвейером, а SweRV EL2 как одноядерное ядро ​​с четырехступенчатым конвейером [92]. WD планирует использовать процессоры на основе SweRV в своих флэш-контроллеры и твердотельные накопители, и в январе 2019 года он был выпущен третьими сторонами с открытым исходным кодом. [93] [94] [95]

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

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

Доступные программные инструменты RISC-V включают в себя набор инструментов GNU Compiler Collection (GCC) (с GDB, отладчиком), набор инструментов LLVM , симулятор OVPsim (и библиотеку моделей быстрого процессора RISC-V), симулятор Spike и симулятор в QEMU (RV32GC / RV64GC).

Операционная система поддерживает ядро Linux, FreeBSD и NetBSD , но инструкции для режима супервизора не были стандартизированы до июня 2019 года [14], поэтому эта поддержка является временной. Предварительный перенос FreeBSD на архитектуру RISC-V был обновлен в феврале 2016 года и отправлен в FreeBSD 11.0. [96] [74] Порты Debian [97] и Fedora [98] стабилизируются (оба поддерживают только 64-битный RISC-V, без планов по поддержке 32-битной версии). Порт Das U-Boot существует. [99] UEFI Spec v2.7 определил привязку RISC-V и TianoCore.порт был выполнен инженерами HPE [100] и, как ожидается, будет передан на более высокий уровень. Есть предварительный порт микроядра seL4 . [101] [102] Hex Five выпустила первый защищенный стек Интернета вещей для RISC-V с поддержкой FreeRTOS . [103] Также была перенесена xv6 , современная повторная реализация шестого издания Unix на ANSI C, используемая в педагогических целях в MIT . Pharos RTOS была перенесена на 64-битный RISC-V [104] (включая защиту времени и памяти). Также см. Сравнение операционных систем реального времени .

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

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

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

Ряд языков были применены к созданию RISC-V , IP - ядра , в том числе в Scala на основе описания аппаратных средств языка, долото , [110] , которые могут уменьшить конструкции для Verilog для использования в устройствах, и язык описания процессор Кодал который был использован in для описания процессорных ядер RISC-V и создания соответствующих HDK (RTL, testbench & UVM) и SDK [111] . Международная рабочая группа по соответствию RISC-V имеет репозиторий Github для RV32IMC [112] .

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

  • RISC
  • ARM архитектура
  • Вычислительное оборудование с открытым исходным кодом

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

  1. ^ a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as в Waterman, Andrew ; Асанович, Крсте . "Руководство по набору инструкций RISC-V, Том I: Базовый пользовательский уровень ISA версии 2.2". Калифорнийский университет в Беркли. EECS-2016-118 . Дата обращения 25 мая 2017 .
  2. ^ a b c d "Привилегированная спецификация ISA" . RISC-V International .
  3. ^ Большой и двунаправленный байты поддерживаются как расширения
  4. ^ a b «Авторы» . riscv.org . Регенты Калифорнийского университета. Архивировано из оригинала 7 сентября 2018 года . Проверено 25 августа 2014 года .
  5. ^ Уотерман, Эндрю; Асанович, Крсте . «Руководство по набору команд RISC-V, том I: непривилегированная версия ISA 20191213» (PDF) . RISC-V International . Проверено 27 августа 2020 .
  6. ^ Demerjian, Чак (7 августа 2013). «Долгий взгляд на то, как ARM лицензирует чипы: Часть 1» . SemiAccurate.
  7. ^ Demerjian, Chuck (8 августа 2013). «Как ARM лицензирует свой IP для производства: Часть 2» . SemiAccurate.
  8. ^ «Волновые вычисления закрывают свою открытую инициативу MIPS с немедленным эффектом, нулевым предупреждением» . 15 ноября 2019.
  9. ^ a b c d e f Асанович, Крсте . «Наборы инструкций должны быть бесплатными» (PDF) . Технические отчеты Калифорнийского университета в Беркли . Регенты Калифорнийского университета . Проверено 15 ноября +2016 .
  10. ^ "Генератор ядра ракеты" . РИСК-V . Регенты Калифорнийского университета . Проверено 1 октября 2014 года .
  11. ^ Селио, Кристофер; С любовью, Эрик. "Ucb-bar / riscv-sodor" . GitHub Inc . Регенты Калифорнийского университета . Проверено 12 февраля 2015 года .
  12. ^ a b "Программа процессора ШАКТИ" . Индийский технологический институт Мадрас . Дата обращения 3 сентября 2019 .
  13. ^ Селио, Кристофер. "CS 152 Лабораторное упражнение 3" (PDF) . Калифорнийский университет в Беркли . Регенты Калифорнийского университета . Проверено 12 февраля 2015 года .
  14. ^ a b c d e f g h я Уотерман, Эндрю; Ли, Юнсуп; Авизиенас, Римас; Паттерсон, Дэвид ; Асанович, Крсте . «Проект привилегированной спецификации ISA 1.9» . РИСК-V . RISC-V International . Проверено 30 августа 2016 .
  15. ^ а б Паттерсон, Дэвид А .; Дитзель, Дэвид Р. (октябрь 1980 г.). "Случай для компьютера с сокращенным набором команд". Новости компьютерной архитектуры ACM SIGARCH . 8 (6): 25. DOI : 10,1145 / 641914,641917 .
  16. ^ "Янтарное ядро, совместимое с ARM" . OpenCores . Проверено 26 августа 2014 .
  17. ^ "ARM4U" . OpenCores . OpenCores . Проверено 26 августа 2014 .
  18. ^ Asanović, Krste . «Руководство по набору инструкций RISC-V, том I: ISA базового уровня пользователя» (PDF) . Технические отчеты Калифорнийского университета в Беркли . Регенты Калифорнийского университета . Проверено 13 мая 2011 года .
  19. ^ "История RISC-V" . Дата обращения 19 ноября 2019 .
  20. ^ «Новый план микропроцессоров бросает вызов гигантам отрасли» . Экономист . 3 октября 2019 г. ISSN 0013-0613 . Проверено 10 ноября 2019 . 
  21. ^ a b «Фонд RISC-V» . Фонд RISC-V . Проверено 15 марта 2019 .
  22. ^ "Конференция по автоматизации проектирования" . dac.com . Проверено 6 февраля 2021 года .
  23. ^ « Базирующаяся в США группа производителей чипов переезжает в Швейцарию из-за опасений по поводу ограничения торговли» . Рейтер . 26 ноября 2019 . Проверено 26 ноября 2019 .
  24. ^ "История RISC-V - RISC-V International" . RISC-V International . Дата обращения 14 мая 2020 .
  25. ^ «Linley Group объявляет победителей ежегодной премии Analysts 'Choice Awards» (пресс-релиз). Группа Линли. 12 января 2017 . Проверено 21 января 2018 .
  26. ^ a b c d e f g h i Уотерман, Эндрю (13 мая 2011 г.). Повышение энергоэффективности и уменьшение размера кода с помощью сжатия RISC-V . Калифорнийский университет в Беркли: регенты Калифорнийского университета. п. 32 . Проверено 25 августа 2014 года .
  27. ^ a b Уотерман, Эндрю; и другие. "Руководство по сжатому набору команд RISC-V, версия 1.9 (черновик)" (PDF) . РИСК-V . Проверено 18 июля +2016 .
  28. ^ a b Брюсси, Рожье. «Полный 16-битный RVC» . Группы Google . Фонд RISC-V . Проверено 18 июля 2019 .
  29. ^ a b Брюсси, Рожье. «Предложение: Xcondensed, [a] ... Compact ... 16-битный автономный G-ISA» . Почтовый сервер RISC-V ISA . Группы Google . Проверено 10 ноября +2016 .
  30. ^ Фунг, Ксан. «Улучшенный Xcondensed» . Группы Google . Фонд RISC-V . Проверено 18 июля 2019 .
  31. ^ Ионеску, Ливиу. «Профиль микроконтроллера RISC-V» . Github . Проверено 5 апреля 2018 года .
  32. ^ Баррос, Сезар. «Предложение: RV16E» . Разработчики RISC-V ISA (список рассылки) . Проверено 2 апреля 2018 .
  33. ^ Бонзини, Паоло; Уотерман, Эндрю. «Предложение по виртуализации без H-режима» . Разработчики RISC-V ISA (список рассылки) . Проверено 24 февраля 2017 года .
  34. ^ Вольф, Клиффорд. "riscv-bitmanip" (PDF) . GitHub . Фонд RISC-V . Дата обращения 13 января 2020 .
  35. ^ a b "Краткое изложение инструкции для" P "предложения ISA" . Группы Google . ANDES Technologies . Дата обращения 13 января 2020 .
  36. ^ Технология Анд. «Комплексные решения RISC-V» (PDF) . Контент RISC-V . Фонд RISC-V . Дата обращения 13 января 2020 .
  37. ^ Ли, Руби ; Гек, Джерри (25 февраля 1996 г.). «64-битные и мультимедийные расширения в архитектуре PA-RISC 2.0». Труды Compcon 96 : 152–160. DOI : 10.1109 / CMPCON.1996.501762 . ISBN 0-8186-7414-8.
  38. ^ Ли, Руби Б. (апрель 1995 г.). «Ускорение мультимедиа с помощью усовершенствованных микропроцессоров» (PDF) . IEEE Micro . 15 (2): 22–32. CiteSeerX 10.1.1.74.1688 . DOI : 10.1109 / 40.372347 . Проверено 21 сентября 2014 года .  
  39. ^ a b c d e f g h Шмидт, Колин; Оу, Альберт; Ли, Юнсуп; Асанович, Крсте . «Предложение по расширению вектора RISC-V» (PDF) . РИСК-V . Регенты Калифорнийского университета . Проверено 14 марта 2016 .
  40. ^ Оу, Альберт; Нгуен, Куан; Ли, Юнсуп; Асанович, Крсте . «Пример для MVP: векторные процессоры смешанной точности» (PDF) . Калифорнийский университет в Беркли EECS . Регенты Калифорнийского университета . Проверено 14 марта 2016 .
  41. ^ Ли, Юнсуп; Гровер, Винод; Крашинский, Ронни; Стивенсон, Марк; Кеклер, Стивен В .; Асанович, Крсте . «Изучение пространства проектирования управления расхождениями SPMD на архитектурах с параллельными данными» (PDF) . Сайт EECS Беркли . Регенты Калифорнийского университета . Проверено 14 марта 2016 .
  42. ^ a b c d e Брэдбери, Алекс; Валлентовиц, Стефан. «Отладка управления запуском RISC-V» . Документы Google . Фонд RISC-V . Проверено 20 января 2017 года .
  43. ^ Ньюсом, Тим. "Группа отладки RISC-V> результаты опроса" . Группы Google, Группа отладки RISC-V . Фонд RISC-V . Проверено 20 января 2017 года .
  44. ^ МакГуганус. "riscv-trace-spec" . GitHub . Дата обращения 13 января 2020 .
  45. ^ Дахад, Нитин. «UltraSoC решает проблему поддержки RISC-V, жертвуя кодировщик трассировки» . EE Times . Осина . Дата обращения 13 января 2020 .
  46. ^ «Обзор ядер RISC-V и SoC» . РИСК-V. 25 сентября 2019 . Дата обращения 5 октября 2019 .
  47. ^ "Китайская Alibaba производит 16-ядерный процессор RISC-V с тактовой частотой 2,5 ГГц" . www.techspot.com . Проверено 30 июля 2019 .
  48. ^ a b c «Международные члены RISC-V» . RISC-V International . Проверено 22 января 2021 года .
  49. ^ "CloudBEAR" . Проверено 16 октября 2018 года .
  50. ^ riscv / riscv-cores-list , RISC-V, 6 февраля 2021 г. , получено 9 февраля 2021 г.
  51. ^ «Codasip анонсирует процессорные ядра RISC-V, обеспечивающие многоядерные возможности и возможности SIMD» . www.newelectronics.co.uk . Проверено 9 февраля 2021 года .
  52. ^ «3.6.2 Сопроцессор со сверхнизким энергопотреблением». Техническое описание семейства ESP32-S2 V1.1 (PDF) . Системы эспресса. 2020 . Дата обращения 9 июня 2020 .
  53. ^ "ESP32-C3 Family Datasheet V0.4" (PDF) . Системы эспресса. 2020 . Проверено 27 декабря 2020 года . Выложите резюме .
  54. ^ «GigaDevice представляет серию GD32V с ядром RISC-V в новом 32-разрядном микроконтроллере общего назначения» . www.gigadevice.com . Проверено 29 августа 2019 .
  55. ^ "Sipeed Longan Nano - Совет по развитию RISC-V GD32VF103CBT6" . www.seeedstudio.com . Проверено 29 августа 2019 .
  56. ^ «GreenWaves GAP8 - это процессор IoT с низким энергопотреблением RISC-V, оптимизированный для приложений искусственного интеллекта» . CNXSoft: Новости встроенных систем . 27 февраля 2018 . Проверено 4 марта 2018 года .
  57. Йошида, Дзюнко (26 февраля 2018 г.). «ИИ приходит к чувствительным устройствам» . EE Times . Проверено 10 июля 2018 .
  58. ^ «GreenWaves Technologies объявляет о доступности комплекта разработки программного обеспечения GAP8 и совета по разработке GAPuino» (пресс-релиз). 22 мая 2018.
  59. ^ "SEGGER добавляет поддержку SiFive's Coreplex IP в свой ведущий в отрасли датчик отладки J-Link" . Проверено 19 сентября 2017 года .
  60. ^ «PR: SEGGER Embedded Studio поддерживает архитектуру RISC-V» . Проверено 23 ноября 2017 года .
  61. ^ «PR: SEGGER представляет RTOS, стеки, промежуточное ПО для RISC-V» . Проверено 8 декабря 2017 года .
  62. ^ "HiFive1" . SiFive . Проверено 10 июля 2018 .
  63. ^ SiFive. «Hi-Five1: комплект разработчика с открытым исходным кодом, совместимый с Arduino» . Предложение толпы . Проверено 2 декабря 2016 .
  64. ^ "ЦП FU540 SoC" . SiFive . Проверено 24 октября 2018 года .
  65. ^ "Синтаксор" . Проверено 11 декабря 2018 .
  66. ^ "SCR1, ядро ​​RISC-V с открытым исходным кодом" . Проверено 11 декабря 2018 .
  67. ^ "Протоколы семинара RISC-V" . 11 декабря 2016 . Проверено 11 декабря 2018 .
  68. ^ Маннерс, Дэвид (23 ноября 2016 г.). «Codasip и UltraSoC объединяются на RISC-V» . Еженедельник электроники . Метрополис Интернешнл Групп, Лтд . Проверено 23 ноября +2016 .
  69. ^ Desikan, Shubashree (6 августа 2018). «IIT-Madras включает в себя чип дези» . Индус . ISSN 0971-751X . Проверено 25 сентября 2020 года . 
  70. ^ a b «Встречайте индийскую микросхему микропроцессора Atmanirbhar« Moushik », предназначенную для устройств IoT» . WION . Проверено 25 сентября 2020 года .
  71. ^ Ашенден, Питер (9 ноября 2016). «Re: [isa-dev] RISC V ISA для встраиваемых систем» . Разработчики RISC-V ISA (список рассылки) . Проверено 10 ноября +2016 . В ASTC (www.astc-design.com) у нас есть реализация RV32EC в качестве синтезируемого IP-ядра, предназначенного для небольших встроенных приложений, таких как интеллектуальные датчики и IoT.
  72. ^ «C-DAC объявляет о Tech Conclave 2019» . Таймс оф Индия . Проверено 12 апреля 2019 .
  73. ^ "Процессор NOEL-V" . Кобхэм Гейслер . Проверено 14 января 2020 года .
  74. ^ a b "FreeBSD Foundation: Первоначальный перенос порта архитектуры FreeBSD RISC-V" . 4 февраля 2016 г.
  75. ^ «Эсперанто выходит из скрытого режима, нацелен на ИИ с 4096 ядерным 7-нм монстром RISC-V» . wikichip.org . Январь 2018 . Проверено 2 января 2018 .
  76. ^ "Проект PULPino GitHub" . GitHub . Проверено 2 февраля 2018 .
  77. ^ "Платформа PULP" . Платформа PULP . Проверено 2 февраля 2018 .
  78. ^ "Accelerator Stream" . Европейская инициатива переработчиков (EPI) . Проверено 22 февраля 2020 .
  79. Редмонд, Калиста (20 августа 2019 г.). «Как European Processor Initiative использует RISC-V для будущего суперкомпьютеров» . RISC-V Международные новости . RISC-V International.
  80. ^ «Проект процессора с открытым исходным кодом IIT Madras» . Быстрый ввод-вывод . ИИТ Мадрас . Проверено 13 сентября 2014 года .
  81. ^ "сайт lowRISC" . Дата обращения 10 мая 2015 .
  82. Се, Джо (июль 2016 г.). NVIDIA RISC V История оценки . 4-й семинар RISC-V . YouTube.
  83. ^ «RV64X: бесплатный графический процессор с открытым исходным кодом для RISC-V» . EETimes . Проверено 9 февраля 2021 года .
  84. ^ Андрей Frumusanu (30 октября 2019). «SiFive объявляет о первом ядре процессора RISC-V OoO: IP процессора серии U8» . Anandtech .
  85. ^ Asanović, Krste ; и другие. "ракета-чип" . GitHub . RISC-V International . Проверено 11 ноября +2016 .
  86. ^ Селио, Кристофер. «Рискв-бум» . GitHub . Регенты Калифорнийского университета . Проверено 29 марта 2020 года .
  87. ^ Селио, Кристофер. "Рискв-содор" . GitHub . Регенты Калифорнийского университета . Проверено 11 ноября +2016 .
  88. ^ Селио, Крис. "Ucb-bar / riscv-sodor" . github . Регенты Калифорнийского университета . Проверено 25 октября 2019 года .
  89. ^ Вольф, Клэр. "picorv32" . GitHub . Проверено 27 февраля 2020 года .
  90. ^ "scr1" . GitHub . Syntacore . Дата обращения 13 января 2020 .
  91. ^ Трабер, Андреас; и другие. «PULP: параллельное сверхнизкое энергопотребление» . ETH Zurich, Болонский университет . Проверено 5 августа +2016 .
  92. Шилов, Антон. «Western Digital выпускает два новых ядра SweRV RISC-V для микроконтроллеров» . www.anandtech.com . Проверено 9 февраля 2021 года .
  93. Шилов, Антон. «Western Digital представляет ядро ​​SweRV RISC-V, инициативу по согласованию кэш-памяти через Ethernet» . www.anandtech.com . Дата обращения 23 мая 2019 .
  94. ^ "Western Digital выпускает исходный код ядра SweRV RISC-V" . AB Open . 28 января 2019. Архивировано 21 мая 2019 года.
  95. ^ Cores-SweRV на GitHub
  96. ^ "riscv - FreeBSD Wiki" . wiki.freebsd.org .
  97. ^ Монтезело, Мануэль. «Порт Debian GNU / Linux для RISC-V 64» . Группы Google . Проверено 19 июля 2018 .
  98. ^ "Архитектура / RISC-V" . Fedora Wiki . Красная шляпа . Проверено 26 сентября 2016 года .
  99. ^ Begari, Padmarao. «Доступен порт U-Boot на 32-битном RISC-V» . Группы Google . Microsemi . Проверено 15 февраля 2017 года .
  100. ^ RiscVEdk2 на GitHub
  101. ^ Алматарий, Хешам. «РИСК-В, сел4» . seL4 Документация . Организация Содружества научных и промышленных исследований (CSIRO) . Проверено 13 июля 2018 .
  102. ^ Алматарий, Хешам. "хешамельматары" . GitHub . Проверено 13 июля 2018 .
  103. ^ «MultiZone Secure IoT Stack, первый защищенный IoT-стек для RISC-V» . Hex Five Security . Hex Five Security, Inc. 22 февраля 2019 . Дата обращения 3 марта 2019 .
  104. ^ "Фарос" . SourceForge . Дата обращения 1 апреля 2020 .
  105. ^ «ANGEL - это симулятор Javascript RISC-V ISA (RV64), который запускает riscv-linux с BusyBox» . RISCV.org . Архивировано из оригинального 11 ноября 2018 года . Проверено 17 января 2019 .
  106. ^ Ли, Yunsup (5 марта 2014). "Загрузите RISC-V Linux в свой веб-браузер!" . RISC-V International . Дата обращения 4 сентября 2020 .
  107. ^ "АНГЕЛ - RISC-V" . riscv.org.s3-website-us-west-1.amazonaws.com . Дата обращения 4 сентября 2020 .
  108. ^ «Документация / Платформы / RISCV» . QEMU Wiki . Дата обращения 7 мая 2020 .
  109. ^ "WepSIM с примером RISC-V_im" . WepSIM .
  110. ^ "Chisel: Создание оборудования на встроенном языке Scala" . Калифорнийский университет в Беркли . Регенты Калифорнийского университета . Проверено 12 февраля 2015 года .
  111. ^ "Codasip Studio" . Codasip . Проверено 19 февраля 2021 года .
  112. ^ riscv / riscv-compliance , RISC-V, 12 февраля 2021 г. , получено 19 февраля 2021 г.

Дальнейшее чтение [ править ]

  • «Руководство по набору команд RISC-V» . РИСК-V .
  • "Программирование на языке ассемблера RISC-V" . GitHub . 8 ноября 2019.
  • «Разработка архитектуры набора команд RISC-V» (PDF) . Департамент EECS, Калифорнийский университет, Беркли .
  • Асанович, Крсте ; Паттерсон, Дэвид А. (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
  • «RISC-V: Открытый стандарт для SoC: аргументы в пользу открытого ISA» . EETimes . 8 июля 2014 г.
  • Хруска, Джоэл (21 августа 2014 г.). «RISC снова едет: новая архитектура RISC-V надеется сразиться с ARM и x86, будучи полностью открытым исходным кодом» . ExtremeTech .
  • «Анализ архитектуры набора команд RISC-V» . Адаптева . 11 августа 2014 г.