RISC-V

Aug 02, 2024 00:36

https://www.csl.cornell.edu/courses/ece4750/handouts/ece4750-tinyrv-isa.pdf

Страница 5 содержит объяснение, как разбирать непосредственные операнды в разных форматах. Вроде, все пять форматов рассмотрены.

Если вам надо интересной глупости ( Read more... )

процессоры, risc, система команд, risc-v

Leave a comment

Comments 20

truwork August 2 2024, 12:01:19 UTC

На длинный пост длинный ответ...

Реализация с 12 бит имеет вполне очевидное объяснение, и, как ни странно, проистекает из самой идеи RISC-V, как открытой архитектуры. Идея заключается в том, что RISC-V задумывалась, как модульная расширяемая архитектура, а значит, в кодировке инструкций должно оставаться достаточно место для добавления новых инструкций. При большем значении IMM-части просто остается слишком мало места под кодирование опкода, что упоминается, как один из недостатков MIPS.

Исторически так сложилось, что сейчас широко используются 8-битные байты и 32-битные инструкции в RISC-процессорах. Могло быть и по другому, например, 6-битные байты и 48-битные инструкции (но инфраструктура индустрии сейчас под это не заточена от слова совсем)...

Если принято решение, что инструкция кодируется 32-битами, то в команде работы с непосредственными значениями мы имеем такие части: опкод, регистр источника, регистр назначения и непосредственное значение. Т.к. запланировано 32 регистра, то номер регистра кодируется 5-ю битами. В случае с ( ... )

Reply

thesz August 2 2024, 21:59:42 UTC
Мне кажется, что пословица про трусы и крестик ещё более подходит к RISC-V и его авторам после вашего объяснения.

У RISC-V практически бесконечное пространство команд, у него длина команды переменная. То, что нельзя было делать в MIPS, можно и нужно было делать в RISC-V, то, что MIPS сделал с запасом (более, чем 13-тибитный непосредственный операнд, расширяемый по разному в зависимости от команды в том числе), надо было повторять в RISC-V.

Да, малоизвестный современным разработчикам факт - у нульадресной (стековой) машины плотность кода очень высока. Те самые 6 битов на инструкцию, а то и меньше можно (GA144, там 5). Почему RISC-V не пошёл путём нульадресной машины?

Вот то-то и оно.

Reply

truwork August 3 2024, 05:41:03 UTC

> У RISC-V практически бесконечное пространство команд, у него длина команды переменная

Вы не путайте потенциал развития, заложенный в схему кодирования и базовую ISA. В базовой ISA команды строго 32-битные и ее цель обеспечить простой набор команд, с простой реализацией FPGA/ASIC.

Сама по себе спецификация RISC-V - это не сухой документ, констатирующий факт. Это документ с множеством ссылок, объясняющий цели, намерения, ссылающийся на опыт других архитектур, проектов и т.п. В начальной разработке спецификации архитекторами были в т.ч. Девид Паттерсон и Крсте Асанович, уж они-то в курсе, что и как было сделано в MIPS.

Reply

thesz August 3 2024, 06:24:25 UTC
> В базовой ISA команды строго 32-битные и ее цель обеспечить простой набор команд, с простой реализацией FPGA/ASIC.

Вот насчёт простоты у меня вопросов полно. Начиная с двух пар совершенно идентичных форматов, которые, тем не менее, разные.

У меня там вопрос был: "Почему RISC-V не пошёл путём нульадресной машины в сжатом наборе команд?"

Что по этому поводу говорят Крсте и Девид?

Reply


truwork August 2 2024, 12:02:58 UTC

Конечно, фраза "MIPS? нет, не слышали" не выдерживает никакой критики. Только лишь в базовой спецификации RISC-V упоминается большое количество архитектур. Как минимум, эти:

ARM / ARM Thumb / ARM Thumb2 / ARM v8, Alpha, CDC 6600, Cray-1, IBM 360, IBM Stretch, Itanium, MIPS / MIPS R6, MIPS16, PA-RISC, PowerPC, PowerPC VLE, SPARC, Xtensa, microMIPS, x86

Так же, по идеям и истории есть книги и статьи, ниже приведу несколько для примера.

Книга "Design of the RISC-V Instruction Set Architecture", 2016.

https://people.eecs.berkeley.edu/~krste/papers/EECS-2016-1.pdf

Во введении говорится, что путь RISC-V прошел через исследования других архитектур, что к началу разработок были проекты по улучшению архитектур SPARC и MIPS и этот опыт был использован.

Глава 2 книги, названная "Why Develop a New Instruction Set?", поясняет причины создания новой архитектуры и описывает особенности и недостатки архитектур "MIPS", "SPARC", "Alpha", "ARMv7", "ARMv8" и "x86".

Статья "A New Golden Age for Computer Architecture" и одноименные лекции Девида ( ... )

Reply

thesz August 2 2024, 21:39:47 UTC
> 2016...2016...2016

https://ru.wikipedia.org/wiki/RISC-V

"Представлена 2010"

Предлагаемые вами статьи объясняют сложившееся состояние дел, а не объясняют процесс принятия решений.

Нет ли у вас ссылок на статьи авторов RISC-V ранее 2010 года?

Беру, кстати, слова про Cray обратно, он упоминается, как раз в контексте сжатых команд.

PS
Посмотрел на что обращено внимание в случае Alpha. Им не нравится переупорядочение обращений к памяти, что действительно сомнительно, floating point exception barriers (а по-моему, гениальное решение, может убрать взаимное влияние на этапы конвейера) и упоминание, что в Alpha, как и в MIPS, условием перехода было всего лишь равенство между регистрами (у Alpha одной из целей была совместимость по ассемблеру, насколько возможно).

Reply

truwork August 3 2024, 05:52:15 UTC

> Нет ли у вас ссылок на статьи авторов RISC-V ранее 2010 года?

Ну можно найти по именам David Patterson и Krste Asanović.

Кстати, в ревизии RISC-V 2010-2011 форматы выглядели так:


... )

Reply

thesz August 3 2024, 06:27:47 UTC
> Ну можно найти по именам David Patterson и Krste Asanović.

Нет ли у вас под рукой результатов поиска по этим именами? А то я могу найти совсем не то, в моей безмерной глупости.

Reply


truwork August 2 2024, 12:10:25 UTC

Одной из целей разработки базовой спецификации RISC-V было выкинуть все лишнее и сомнительное, что бы упростить реализацию. Поэтому остались знаковые IMM, как достаточное решение. Тех, кого не устраивает, могут добавить свои форматы и команды в свое изделие.

Reply

thesz August 2 2024, 21:25:33 UTC
> Тех, кого не устраивает, могут добавить свои форматы и команды в свое изделие.

Не могут.

Reply

truwork August 3 2024, 05:42:58 UTC

Почему не могут? Это никакими условиями не запрещено. В спецификации есть целая глава "Extending RISC-V".

Reply

thesz August 3 2024, 07:24:14 UTC
Я ознакомился.

Available 30-bit instruction encoding spaces

In the standard encoding, three of the available 30-bit instruction encoding spaces (those with 2-bit prefixes 00, 01, and 10) are used to enable the optional compressed instruction extension. However, if the compressed instruction-set extension is not required, then these three further 30-bit encoding spaces become available. This quadruples the available encoding space within the 32-bit format.

Расширяя 32-хбитное слово команд, мы вынуждены поддерживать исключение не выровненного обращения к команде.

Или вообще на всё плюнуть и делать совершенно своё, про это там тоже есть. ;)

Reply


Leave a comment

Up