SERV: 32-bit is the New 8-bit [video]
youtube.com
youtube.com
Edit: and now that I think about it, Motorola 68000 was also like this. Internally 16-bit ALU, but operated on 32 bit registers. 32-bit operations were done in two phases, just like on Z80.
probably 32 bits is wider than optimal for this kind of thing but not having to write your own c compiler and assembler toolchain is worth a lot, especially if, as in serv, your cpu doesn't try to trap on illegal instructions
even if you're writing asm, risc-v asm requires a lot less bending over backwards than, say, 8051 or 6502 or pic or even avr, and you don't have to worry about overflow much. it's not quite as pseudocody as i386 assembly tho
there are an awful lot of control tasks where one frame of doom every four seconds is much more performance than you actually need, like kindgren's examples in this talk: ddr memory initialization, logging, slow sensor data aggregation, and control planes; i'd add pid control, motor control waveform generation, and guitar pedals and other audio dsp applications (maybe using the serv core to orchestrate the activities of a larger dsp core, similar to how the s1 mp3 used a z80)
wrt the question about educational applications, femtorv32 is probably an easier implementation of risc-v to understand; it's a lot less verilog and a lot more straightforward
— ⁂ —
for videos like this that are mostly slides and somebody talking, if you're interested in the verbal information and not the pretty face, i recommend
yt-dlp --write-auto-sub --sub-lang en,es -f '[height<800]' https://www.youtube.com/watch?v=GSHasXHvZaQ
(or possibly even just downloading the .vtt files without the video at all; it is unfortunate that youtube doesn't have an 0.5 fps 640×480 option for things like this)and then
devtt.py < SERV:\ 32-bit\ is\ the\ New\ 8-bit\ -\ Olof\ Kindgren\,\ Qamcom\ \[GSHasXHvZaQ\].en.vtt |
less
where devtt.py is http://canonical.org/~kragen/sw/dev3/devtt.py or equivalent (i can't have been the first person to want this, and probably someone has written a better version)the transcript is only 2130 words and so reading it only takes about 6 minutes, while the video is 21 minutes
the transcript has a lot of errors but is adequate
You can get proper 32 bit core for less than $1 these days, I can't see it competing. It has a niche, saving gates on FPGA, but that's about it
It being awfully slow also means it will be awful on power usage.
On the contrary; for every RISCV32 instruction you'd expect the same energy requirement as in a bit parallel implementation. If you take 32x longer by processing 1 bit at a time, your power (energy per time unit) could be as much as 32x lower.
but generally the kinds of places you'd want to use something like this, the cpu won't be even 1% of the power draw
Competing for what? Having a super small subcent CPU is an interesting niche (in ASICs). Having a well documented, really small CPU for FPGAs and a ecosystem is great for hobbyist and academia who need to string something together without tripping themselves. Even it serves as an educational example of a RISC-V CPU SERV is competing pretty well.
Historical insight, and a tip on how to get transcriptions with yt-dlp. I didn't even know it could do that!
Thanks for sharing this.
fuck the haters, man
More choice is good.
On an FPGA, SERV's implementation seems to be a times smaller.
And as he points out in the presentation, SERV is used in several (and growing) real world systems as a flexible control plane in ASICs, FPGAs etc.