Permalänk
Datavetare

Rör lite på sig för RISC-V

Kul att se det röra lite på sig för en CPU-arkitektur som kallas RISC-V
https://spectrum.ieee.org/semiconductors/devices/riscvs-opensource-architecture-shakes-up-chip-design.html

Primärt två saker som är riktigt kul med RISC-V

  • Det är en modern instruktionsuppsättning (ISA), projektet startade för åtta år sedan. Tekniska fördelen i detta är att man designat en ISA som är relevant för dagens behov (RAM är väldigt långsamt jämfört med CPU, effekt minnesdesign för multicore program, lätt att skriva kompilatorer för etc)

  • ISA är helt fri, d.v.s. inte licensavgifter eller andra restriktioner. Även om "alla" kan använda ARM så krävs ändå en licens som går lös på ett par miljoner dollar

Några exempel på användare så här långt: Nvidia har börjat använda RISC-V i den kontrollprocessor som sitter i alla deras GPUer. Western Digital kommer använda RISC-V som kontrollprocessor i deras kommande diskar.

RISC-V har också börjat användas av en del start-ups, det just för att slippa den för sådan bolag, rätt stora kostnaden med att använda t.ex. ARM (x86 är ju inte ens ett alternativ då det inte går att licensiera + att x86 tok-komplicerat så ändå fel för något nytt, fräscht och enkelt).

Av någon anledning har även Intel investerat i detta projekt, får se om det blir något konkret i produktväg vad det lider.

Väntar själv på att LowRISC projektet ska nå en nivå där det blir jämförbart med RPi. Då kan man ju börja experimentera själv!

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Datavetare

För den som vill experimentera har numera QEMU stöd för att köra RISC-V kod.

En fungerande RISC-V toolchain för GNU C/C++ kan man få genom detta.

Så här kan det se ut i en lite testkörning med det klassiska "Hello world" programmet

$ cat hello.c #include <stdio.h> int main() { printf("Hello RISC-V world!\n"); } $ riscv64-unknown-linux-gnu-gcc -O2 hello.c -c -o hello.o $ riscv64-unknown-linux-gnu-gcc -static -o hello hello.o $ file hello hello: ELF 64-bit LSB executable, UCB RISC-V, version 1 (SYSV), statically linked, for GNU/Linux 3.0.0, not stripped $ riscv64-unknown-linux-gnu-objdump -d hello.o hello.o: file format elf64-littleriscv Disassembly of section .text.startup: 0000000000000000 <main>: 0: 00000537 lui a0,0x0 4: 1141 addi sp,sp,-16 6: 00050513 mv a0,a0 a: e406 sd ra,8(sp) c: 00000097 auipc ra,0x0 10: 000080e7 jalr ra 14: 60a2 ld ra,8(sp) 16: 4501 li a0,0 18: 0141 addi sp,sp,16 1a: 8082 ret $ qemu-riscv64-static ./hello Hello RISC-V world!

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem

The Linux Foundation and RISC-V Foundation Announce Joint Collaboration to Enable a New Era of Open Architecture:
https://www.linuxfoundation.org/the-linux-foundation/2018/11/...

Visa signatur

Nerd is the new Cool

Permalänk
Datavetare

Här är lite svensk fägring kring RISC-V med Uppsala baserade IAR i spetsen.

"RISC-V:s första genombrott blir i styrkretsar"

Styrkretsar kanske är det första kommersiella genombrottet (är ju som sagt där Nvidia och WD redan använder RISC-V). Men har förstahandsinformation på flera andra områden där företag i denna stund jobbar på operativsystem, kompilatorer och annan programvara för RISC-V.

64-bits ARM är redan en framgång, där börjar man nu få fotfäste i datacenter och när man väl är etablerad kommer x86 ligga rejält pyrt till...

Men ser personligen mycket hellre att RISC-V blir de som dominerar i framtiden. RISC-V och 64-bitars ARM (Aarch64) är båda så nära perfekta instruktionsuppsättningar man kan komma givet dagens kunskap. Aarch64 kontrolleras dock av ett enda företag medan RISC-V är en helt öppen och fri specifikation!

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk

Liknar MIPS

Skrivet av Yoshman:

För den som vill experimentera har numera QEMU stöd för att köra RISC-V kod.

En fungerande RISC-V toolchain för GNU C/C++ kan man få genom detta.

Så här kan det se ut i en lite testkörning med det klassiska "Hello world" programmet

$ cat hello.c #include <stdio.h> int main() { printf("Hello RISC-V world!\n"); } $ riscv64-unknown-linux-gnu-gcc -O2 hello.c -c -o hello.o $ riscv64-unknown-linux-gnu-gcc -static -o hello hello.o $ file hello hello: ELF 64-bit LSB executable, UCB RISC-V, version 1 (SYSV), statically linked, for GNU/Linux 3.0.0, not stripped $ riscv64-unknown-linux-gnu-objdump -d hello.o hello.o: file format elf64-littleriscv Disassembly of section .text.startup: 0000000000000000 <main>: 0: 00000537 lui a0,0x0 4: 1141 addi sp,sp,-16 6: 00050513 mv a0,a0 a: e406 sd ra,8(sp) c: 00000097 auipc ra,0x0 10: 000080e7 jalr ra 14: 60a2 ld ra,8(sp) 16: 4501 li a0,0 18: 0141 addi sp,sp,16 1a: 8082 ret $ qemu-riscv64-static ./hello Hello RISC-V world!

Påminner en del om MIPS
MIPS Assembly

Har du hittat något mer "spännande" än Hello World?

Permalänk
Datavetare
Skrivet av Greyguy1948:

Påminner en del om MIPS
MIPS Assembly

Har du hittat något mer "spännande" än Hello World?

Vi håller på att porta ett RTOS till RISC-V.
Sedan finns ju redan en fungerande variant av Linux-kärnan som håller på att stoppas in i kernel.org versionen.

Att RISC-V påminner om MIPS på en hög nivå är rätt väntat, båda har sina rötter från samma universitet: Berkeley.

Tyvärr finns en del grodor i MIPS, det är t.ex. inte speciellt kompakt jämfört med x86 -> sämre utnyttjadegrad av I-cache. RISC-V är tack vare bättre design (för dagens krav) precis som Aarch64 normalt kompaktare än x86 för att lösa motsvarande problem.

Vidare har RISC-V/Aarch64 mer genomtänkta instruktioner för synkronisering mellan CPU-trådar än någon tidigare CPU-arch.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Permalänk
Medlem

Finns ju även en del soft cores som man kan testköra lite på en FPGA om man har lust:
https://riscv.org/risc-v-cores/

Har inte gjort detta själv än, men vore kul om man fick lite tid över.

Edit:

Glömde bort att nämna att de hade en tävling under hösten med tema soft cores. De har nu släppt vinnarna i tävlingen: https://riscv.org/2018contest/