Jump to content

    

Recommended Posts

Scala (и библиотека Chisel) людям отребовалась на этапе создания полностью конфигурируемых моделей. После правки одного конфиг. файла можно получить как 32, так и 64 битный проц. Кроме того, на выходе не только синтезабельный верилог, но и высокоточная модель на Си, которая моделируется в разы быстрее.
Все это можно сделать и стандартным Verilog-ом. Превращение в Си делается платными и очень дорогими инструментами, но делается.

 

Ну и задать разрядность регистров `define-ом тривиально.

 

Даже в библиотеке корок Microsemi лежит ядро от Sifive, которое сгенерено из Скалы.
Это из-за лени писать с нуля, а не преимущество скалы.

 

Share this post


Link to post
Share on other sites

Да есть такая фича, (2.1.3 Generating the Verilog)

https://chisel.eecs.berkeley.edu/2.2.0/getting-started.html

 

Только вопрос получится ли таким кодом против ARM-а боротся.

Может будет проигрышь по скорости, потреблению.

Share this post


Link to post
Share on other sites

Поковырялся пару месяцев со SCALA для RISC-V (Chisel). Впечатления двоякие. Есть возможность писать Verilog black-box(т.е. вставки) для особо ответственных применений, но я чувствую все это сгенерит такой Verilog-source, что потом не разобраться при всем желании. Обсуждал эту тему с ребятами из МИЭТ - они с этим солидарны.

 

case-statement в chisel организованы отвратительно - там нет взаимоисключающих событий как в Verliog - кто хочет может через if else писать...

 

Обсуждал RISC-V с инженером пишушим конвейер процессора MIPS. Говорит в RISC-V содрали их архитекткру но переставили местами операнды и ничего нового туда не привнесли. К тому же ядро RISC-V не включает out of order исполнение и ряд других фишек что не позволяет сделать из него взрослый CPU для вычислений, а когда эти фишки появятся - он перестанет быть открытым...

Лично я вижу проблемой как в MIPS так и в RISC-V сложности в программной совместимостью. Если мы их поборем хотя бы на имкеющихся процессорах Байкал, то с тем же успехом мы их поборем на RISC-V и начинать тут нужно не с процессора, хотя для АСУ ТП и оборонки - очень хорошее решение при условии что вторым писать нужно на System Verilog'е

 

Вообще Chisel штука интересная. Прежде всего тем что на него можно натравить студентов программерских специальностей и они будут вполне таки нормально на нем писать - это более массовый и привычный многим способ программирования. Потому он и родился в стенах американского университета. Утверждается что он не являестя высокоуровневым языкам программирования как бывший когда-то System-C, а является чем то вроде альтернативы System Verilog, опять же повторюсь не для тех кто владеет последним, а для тех кого учили прогать на высокоуровневых языках, коих значительно больше. Если вы знакомы с System Verilog - вы вероятно предпочтете SV.

Edited by Александр С.

Share this post


Link to post
Share on other sites
Только вопрос получится ли таким кодом против ARM-а боротся.
Реальная борьба идет с настоящим Verilog-ом, обкатка и разработка с Chisel.

 

RISC-V - это ISA, а не конкретная реализация, и никто не настаивает на использовании авторского кода.

 

 

Говорит в RISC-V содрали их архитекткру но переставили местами операнды и ничего нового туда не привнесли.

Это абсолютная чушь. Так только кажется первые 10 секунд, плотом становится очевидно, что в отличие от авторов MISP, авторы RISC-V головой думали немного.

Основные отличия:

1. Все индексы регистров всегда фиксированы, а не скачут от инструкции к инструкции.

2. Все константы используют знаковое расширение и знак во всех инструкциях находится в 31 бите опкода. Это позволяет начать расширение знака независимо от декодирования константы. И они пытались как можно больше сохранить позиции бит для констант. Из-за этого они все выглядят как оливье в опкоде, зато декодирование быстрое.

3. Операции умножения и деления возвращают результат в нормальных регистрах, а не в LO HI.

4. ISA заранее содержит механизм расширения до 256-битных инструкций, и компрессию до 16-битных. Сжатый набор по размеру кода дает такой-же выигрыш как и Thumb (20-30%), но при этом гораздо удобнее и проще.

 

И это только базовый набор ~50 команд. Все остальное вектор, DSP, FP) - все новое.

 

А "изобрести" MIPS I/II может любой школьник, который только что о процессорах услышал - это примитив.

 

К тому же ядро RISC-V не включает out of order исполнение и ряд других фишек что не позволяет сделать из него взрослый CPU для вычислений, а когда эти фишки появятся - он перестанет быть открытым...
RISC V - это только ISA, а не конкретная имплементация. Вот вам OOO - https://github.com/ucb-bar/riscv-boom .

 

Лично я вижу проблемой как в MIPS так и в RISC-V сложности в программной совместимостью. Если мы их поборем хотя бы на имкеющихся процессорах Байкал, то с тем же успехом мы их поборем на RISC-V и начинать тут нужно не с процессора, хотя для АСУ ТП и оборонки - очень хорошее решение при условии что вторым писать нужно на System Verilog'е
Это проблемы военки. В коммерческом плане выбор стоит между оплатой лицензии RAM-у или оплатой труда людям, не совсем знакомым с архитектурой, и работающим с не таким богатым набором инструментов. Но ситуация с последним постоянно улучшается.

 

 

Share this post


Link to post
Share on other sites

Если кто занимался этим, посоветуйте, плиз, verilog-репозиторий с желательно облегченной (без кэшей и с минимумом периферии) реализацией 16 или 32 бит RISC-V.

Share this post


Link to post
Share on other sites
Если кто занимался этим, посоветуйте, плиз, verilog-репозиторий с желательно облегченной (без кэшей и с минимумом периферии) реализацией 16 или 32 бит RISC-V.

 

Похоже что PicoRV32 наименее навороченный - https://github.com/cliffordwolf/picorv32

 

Я только что опубликовал свою реализацию - https://github.com/ataradov/riscv . Но это сильно любительский проект, я на звание гуру не претендую. Сейчас все сильно заточено на работу с FPGA и активное использование двухпортовой памяти для программы/данных. Я активно работаю над улучшениями. Проектов для FPGA пока не публикую, так как они пока что в сильной разработке.

 

Это ядро проверенно на MAX 10 и вроде работает.

 

Главная цель моего проекта - простота использования в качестве простого котроллера для FPGA проектов, ничего более.

Edited by ataradov

Share this post


Link to post
Share on other sites
Если кто занимался этим, посоветуйте, плиз, verilog-репозиторий с желательно облегченной (без кэшей и с минимумом периферии) реализацией 16 или 32 бит RISC-V.

 

- SCR1 система команд RV32I|E[MC] от компании Syntacore

- Freedom E310 RV32(I/E)MC от компании SiFive, кроме того его под себя адаптировали Microsemi тут

- E203 RV32IMAC от китайской компании Silicon Integrated

- uRV RV32IMC от CERN

- проект pulp от Цюрихского и Болонского гос. универов, но там возможно слишком много периферии для вас.

 

Есть ещё более 10 открытых проектов, но они либо не 32 с компактным набором инструкций, либо не развиваются.

Share this post


Link to post
Share on other sites

Скажите пожалуйста, в чем суть RISC-V? Она дает кучу инструкций на такт? Какие преимущества, помимо очень важного что оно открытое.

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

 

Но что есть еще?

Share this post


Link to post
Share on other sites
Скажите пожалуйста, в чем суть RISC-V?
Это просто набор инструкций. Как вы его исполнять будете - это ваше дело, хоть все одновременно.

 

Но что есть еще?

А нужно что-то еще? Независимость от ARM-а уже не плохо, особенно учитывая его новых зозяев.

Share this post


Link to post
Share on other sites
А нужно что-то еще? Независимость от ARM-а уже не плохо, особенно учитывая его новых зозяев.

 

А чем плохи новые хозяева? SoftBank вложил деньги, а программисты то всё равно британские.

Share this post


Link to post
Share on other sites
А чем плохи новые хозяева? SoftBank вложил деньги, а программисты то всё равно британские.

 

Кто девушку ужинает тот ее и танцует. Британским программистам скажут закладки включить - включат и не денутся никуда. Плюс SoftBank продал 25% Саудовской Аравии.

Share this post


Link to post
Share on other sites
Британским программистам скажут закладки включить - включат и не денутся никуда.

А разве его не в Vetrilog покупают?

Потом же его по кремнию размазать надо.

 

Плюс SoftBank продал 25% Саудовской Аравии.

 

Согласен. Это опасно. Тут могут на политику повлиять.

С другой стороны тираж миллиардный, и вряд ли они смогут позволить себе такие шалости. Ведь их решения зависят не только от их "боссов", но и покупателей.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this