RISC-V

risc-v processor, risc-v instruction set
RISC-V RISC-пять — открытая архитектура RISC-микропроцессоров,1 созданная в 2010 году исследователями из Computer Science Division, UC Berkeley, в том числе при участии Дэвида Паттерсона23

Цели разработки: доступная для свободного и бесплатного использования открытая система команд ISA - Instruction Set Architecture, реконфигурируемость и расширяемость для широкого круга применений

Содержание

  • 1 Особенности
  • 2 Реализации
  • 3 См также
  • 4 Примечания
  • 5 Литература
  • 6 Ссылки

Особенностиправить | править код

В архитектуре RISC-V имеется обязательное для реализации небольшое подмножество команд набор инструкций I - Integer и несколько стандартных опциональных расширений

В базовый набор входят инструкции условной и безусловной передачи управления/ветвления, минимальный набор арифметических/битовых операций на регистрах, операций с памятью load/store, а также небольшое число служебных инструкций

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

Базовое подмножество команд использует следующий набор регистров: специальный регистр x0 zero, 31 целочисленный регистр общего назначения x1 - x31, регистр счётчика команд PC, используется только косвенно, а также множество CSR Control and Status Registers, может быть адресовано до 4096 CSR

Для встраиваемых применений может использоваться вариант архитектуры RV32E Embedded с сокращённым набором регистров общего назначения первые 16 Уменьшение количества регистров позволяет не только экономить аппаратные ресурсы, но и сократить затраты памяти и времени на сохранение/восстановление регистров при переключениях контекста

При одинаковой кодировке инструкций в RISC-V предусмотрены реализации архитектур с 32, 64 и 128-битными регистрами общего назначения и операциями RV32I, RV64I и RV128I соответственно

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

Нет операций над частями регистров, нет каких-либо выделенных "регистровых пар"

Операции не сохраняют где-либо биты переноса и/или переполнения, что приближено к модели операций в языке программирования C Также аппаратно не генерируются исключения по переполнению и даже по делению на 0 Все необходимые проверки операндов и результатов операций должны производиться программно

Целочисленная арифметика расширенной точности большей, чем разрядность регистра должна явно использовать операции вычисления старших битов результата Например, для получения старших битов произведения регистра на регистр имеются специальные инструкции

Размер операнда может отличается от размера регистра только в операциях с памятью Транзакции к памяти осуществляются блоками, размер в байтах которых должен быть целой неотрицательной степенью 2, от одного байта до размера регистра включительно Операнд в памяти должен иметь "естественное выравнивание" адрес кратен размеру операнда

Архитектура использует только little-endian модель - первый байт операнда в памяти соответствует наименее значащим битам значений регистрового операнда

Для пары инструкций сохранения/загрузки регистра операнд в памяти определяется размером регистра выбранной архитектуры, а не кодировкой инструкции код инструкции один и тот же для RV32I, RV64I и RV128I, но размер операндов 4, 8 и 16 байт соответственно, что соответствует размеру указателя, типам языка программирования C size_t или разности указателей

Для всех допустимых размеров операндов в памяти, меньших, чем размер регистра, имеются отдельные инструкции загрузки/сохранения младших битов регистра, в том числе для загрузки из памяти в регистр есть парные варианты инструкций, которые позволяют трактовать загружаемое значение как со знаком старшим знаковым битом значения из памяти заполняются старшие биты регистра или без знака старшие биты регистра утанавливаются в 0

Инструкции базового набора имеют длину 32 бита с выравниванием на границу 32-битного слова, но в общем формате предусмотрены инструкции различной длины стандартно - от 16 до 192 бит с шагом в 16 бит с выравниванием на границу 16-битного слова Полная длина инструкции декодируется унифицированным способом из её первого 16-битного слова

Для наиболее часто используемых инструкций стандартизовано применение их аналогов в более компактной 16-битной кодировке C - Compressed extension

Операции умножения, деления и вычисления остатка не входят в минимальный набор инструкций, а выделены в отдельное расширение M - Multiply extension Имеется ряд доводов в пользу разделения и данного набора на два отдельных умножение и деление

Стандартизован отдельный набор атомарных операций A - Atomic extension

Для операций над числами в бинарных форматах плавающей запятой используется набор дополнительных 32 регистров FPU Floating Point Unit, которые совместно используются расширениями базового набора инструкций для трёх вариантов точности: одинарной - 32 бита F extension, двойной - 64 бита D - Double precision extension, а также четверной - 128 бит Q - Quadruple precision extension

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

Спецификацией RISC-V предусмотрено несколько областей в пространстве кодировок инструкций для пользовательских "X-расширений" архитектуры, которые поддерживаются на уровне ассемблера, как группы инструкций custom0 и custom1

Реализацииправить | править код

В рамках проекта создано и опубликовано под свободной лицензией шесть дизайнов микропроцессоров с архитектурой RISC-V: генератор 64-разрядных «Rocket» 7 октября 201445 и пять упрощенных учебных ядер «Sodor» с различными микроархитектурами

Также опубликовано несколько симуляторов включая qemu и ANGEL — JavaScript-симулятор, работающий в браузере, компиляторов LLVM, GCC, вариант ядра Linux для работы на RISC-V и компилятор дизайнов Chisel, который позволяет получать Verilog-код Также опубликованы верификационные тесты6

Некоммерческая организация lowRISC планирует создание системы на кристалле на базе 64-битного ядра Rocket RISC-V с последующим массовым производством чипов78

На конференции RISC-V Workshop 2017 стало известно, что компания Esperanto Technologies разрабатывает 64-битный высокопроизводительный процессор общего назначения на системе команд RISC-V с гетерогенной архитектурой с высокой степенью параллелизма напоминающий по строению процессор Cell, который в максимальной конфигурации будет содержать 16 ядер «ET-Maxion» представляют собой конвейеры с неупорядоченным выполнением команд и работающие с данными с плавающей запятой и 4096 ядер «ET-Minion» конвейеры с последовательным выполнением команд и блоком с векторными вычислениями в каждом ядре9 Кроме того там же компания Western Digital заявила, что в партнёрстве с компанией Esperanto, она повысит текущий статус процессорной архитектуры RISC-V с уровня микроконтроллеров до уровня высокопроизводительных решений и создаст вычислительную архитектуру нового поколения для обработки «Больших данных»10, а также экосистему быстрого доступа к данным — речь идёт о создании специализированных RISC-V-ядер для построения архитектуры «процессор в памяти» processor-in-memory11

См такжеправить | править код

  • OpenRISC — свободная GPL архитектура 2000 года

Примечанияправить | править код

  1. Frequently-asked questions RISC-V Regents of the University of California Проверено 25 августа 2014
  2. Создатель RISC продвигает open source микросхемы, Xakepru 21082014 Проверено 26 августа 2014
  3. Contributors riscvorg Regents of the University of California Проверено 25 августа 2014 Архивировано 20 августа 2014 года
  4. Launching the Open-Source Rocket Chip Generator! | RISC-V BLOG
  5. ucb-bar/rocket-chip · GitHub
  6. Downloads RISC-V Regents of the University of California Проверено 25 августа 2014
  7. lowRISC: Open to the Core lowRISC Проверено 25 августа 2014
  8. Project aims to build a «fully open» SoC and dev board, Eric Brown // LinuxGizmos, 14 августа 2014
  9. Ветеран Transmeta возвращается на рынок процессоров с архитектурой RISC-V 3DNews 29 ноября 2017 Проверено 30 ноября 2017
  10. Western Digital включается в гонку за процессорными архитектурами 3DNews 29 ноября 2017 Проверено 30 ноября 2017
  11. Western Digital инвестировала в разработчика «процессора в памяти» 3DNews 20 сентября 2017 Проверено 30 ноября 2017

Литератураправить | править код

  • Instruction Sets Should Be Free: The Case For RISC-V // Публикация Krste Asanović и Дэвида Паттерсона pdf
    • Наборы команд должны быть свободны: доводы за RISC-V перевод
  • The RISC-V Instruction Set // HotChips 25
  • RISC-V, Spike, and the Rocket Core

Ссылкиправить | править код

  • riscvorg — официальный сайт RISC-V
  • UCB RISC-V // GitHub
  • RISC-V Twitter
  • RISC-V: An Open Standard for SoCs The case for an open ISA // EETimes, 8/7/2014
  • RISC rides again: New RISC-V architecture hopes to battle ARM and x86 by being totally open source // ExtremeTech, Joel Hruska, August 21, 2014
  • Analyzing the RISC-V Instruction Set Architecture // Adapteva, August 11, 2014


risc-v computer, risc-v datapath, risc-v dev board, risc-v hardware, risc-v instruction set, risc-v isa, risc-v processor, risc-v vs arm, risc-v workshop, risc-v xilinx fpga


RISC-V Информацию О

RISC-V


  • user icon

    RISC-V beatiful post thanks!

    29.10.2014


RISC-V
RISC-V
RISC-V Вы просматриваете субъект
RISC-V что, RISC-V кто, RISC-V описание

There are excerpts from wikipedia on this article and video

Случайные Статьи

Громов, Евгений Иванович

Громов, Евгений Иванович

Евгений Иванович Громов (10 февраля 1909(19090210) — 21 ноября 1981, Москва) — советский п...
J

J

J: J — буква латиницы Ј — буква кириллицы j — обозначение палатального сонорного сог...
Пайдейя

Пайдейя

Пайдейя (др.-греч. παιδεία — воспитание детей; от παιδος — мальчик, подросток) — категория...
Каделл ап Грифид

Каделл ап Грифид

Ка́делл ап Гри́фид (валл. Cadell ap Gruffydd) (умер в 1175 году) — правитель королевства Дехейб...