Точнее 2 мультитредных примера, необходимых для прохождения на конкурс RISC-V Зефирное ядро прилинковывается прямо к примеру и надо пускать получаемый файл zephyr.elf
Проблема в том, что для успешной работы нужен не совсем последний набор исходников:
Он реализует RV64GC (64-битная архитектура RISC-V с плавающей точкой и т.д. плюс компактные опкоды), декодируя 4 инструкции за один цикл и посылая их в 5 вычислительных модулей в Out-Of-Order (не по порядку) через 10-шаговый конвейер и всё это работает на 2 ГГц на 7нм технологии...
P.S. У меня на днях (до прочтения вышестоящей новости) мысль мелькнула, что наряду со своим Retro-V ядром с 8-битной шиной, можно разработать супер-быстрое ядро Super-V с 64-битной шиной, которая бы читала 2 стандартные 32-битные инструкции за цикл (или даже 4 компактные 16-битные инструкции за цикл) - типа superscalar, побив все существующие опенсорцные реализации по скорости, но вот это что выше описано оно конечно не побъёт
В этом эмуляторчике по ходу кроме базового набора инструкций из RV32I есть умножение-деление (RV32M) и атомарные операции (RV32A) - сделаю макрос, чтобы их отключить
Он реализует RV64GC (64-битная архитектура RISC-V с плавающей точкой и т.д. плюс компактные опкоды), декодируя 4 инструкции за один цикл и посылая их в 5 вычислительных модулей в Out-Of-Order (не по порядку) через 10-шаговый конвейер и всё это работает на 2 ГГц на 7нм технологии...
P.S. У меня на днях (до прочтения вышестоящей новости) мысль мелькнула, что наряду со своим Retro-V ядром с 8-битной шиной, можно разработать супер-быстрое ядро Super-V с 64-битной шиной, которая бы читала 2 стандартные 32-битные инструкции за цикл (или даже 4 компактные 16-битные инструкции за цикл) - типа superscalar, побив все существующие опенсорцные реализации по скорости, но вот это что выше описано оно конечно не побъёт
Куча компаний щас появилась, которые предлагают свои реализации RISC-V - как правило это одно встраиваемое 32-битное решение типа микроконтроллера и другое навороченное 64-битное для запуска линукса - надо чтоли мне тоже побыстрее нагородить свою линейку
Можно еще промежуточное решение сделать - для 16-битной шины BBQ-bus+
Peripheral: ● 4 x general-purpose 16-bit timer, 2 x basic 16-bit timer, 1 x advanced 16-bit timer ● Watchdog, RTC, Systick ● 3x USART, 2 x I2C, 3 x SPI, 2 x I2S, 2 x CAN, 1 x USBFS (OTG), ● 2 x ADC (10 channel), 2 x DAC
I first tried running RISC-V Qemu on Buster, but even ls didn’t work properly and the installation failed.
Code:
chroot /mnt/tmp bin/bash # ls -ld . /usr/bin/ls: cannot access '.': Function not implemented
When I ran it on Unstable ls works but strace doesn’t work in a chroot, this gave enough functionality to complete the installation.
Code:
chroot /mnt/tmp bin/bash # strace ls -l /usr/bin/strace: test_ptrace_get_syscall_info: PTRACE_TRACEME: Function not implemented /usr/bin/strace: ptrace(PTRACE_TRACEME, ...): Function not implemented /usr/bin/strace: PTRACE_SETOPTIONS: Function not implemented /usr/bin/strace: detach: waitpid(1602629): No child processes /usr/bin/strace: Process 1602629 detached
When running the VM the operation was noticably slower than the emulation of PPC64 and S/390x which both ran at an apparently normal speed. When running on a server with equivalent speed CPU a ssh login was obviously slower due to the CPU time taken for encryption, a ssh connection from a system on the same LAN took 6 seconds to connect. I presume that because RISC-V is a newer architecture there hasn’t been as much effort made on optimising the Qemu emulation and that a future version of Qemu will be faster. But I don’t think that Debian/Bullseye will give good Qemu performance for RISC-V, probably more changes are needed than can happen before the freeze. Maybe a version of Qemu with better RISC-V performance can be uploaded to backports some time after Bullseye is released.
Here’s the Qemu command I use to run RISC-V emulation:
Currently the program /usr/sbin/sefcontext_compile from the selinux-utils package needs execmem access on RISC-V while it doesn’t on any other architecture I have tested. I don’t know why and support for debugging such things seems to be in early stages of development, for example the execstack program doesn’t work on RISC-V now.
RISC-V emulation in Unstable seems adequate for people who are serious about RISC-V development. But if you want to just try a different architecture then PPC64 and S/390 will work better.
В этом эмуляторчике по ходу кроме базового набора инструкций из RV32I есть умножение-деление (RV32M) и атомарные операции (RV32A) - сделаю макрос, чтобы их отключить
Теперь полный набор копирайтов там выглядит вот так
Code:
Copyright (c) 2019 National Cheng Kung University, Taiwan Copyright (c) 2018 Alexander Shabarshin Copyright (c) 2018 Frank Buss Copyright (c) 2016-2017 Fabrice Bellard
Надо чтоли ихние изменения себе тоже замёрджить
P.S. У них есть несколько открытых пулл-реквестов, например компресснутый набор инструкций, а мне как минимум надо взять те пулл-реквесты, которые было одобрены и смёрджены: https://github.com/sysprog21/rv32emu/pulls?q=is%3Apr+is%3Aclosed Также их репу уже форкнули 19 раз:
Возможно CEO был засланный казачок, чтобы сдать основного игрока в области RISC-V...
P.S. Оказывается Naveed Sherwani уже теперь "Former President/CEO, SiFive Inc" то бишь бывший, а с сентября 2020 года он там "Chairman" (председатель совета директоров)
Users browsing this forum: No registered users and 37 guests
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum