When can I buy an affordable, complete RISC-V computer? I've been long planning to cook my own with FPGA but it seems like soon we'll start getting affordable RISC-V CPUs with other utility support?
Affordable RISC-V systems will only happen if they reach a comparable level of mass production as proprietary systems. What you will more likely see for now is a gradual increase in the number of components on GPUs, HDDs etc which use RISC-V instead of ARM or something else. The ISA is only a part of the cost equation.
The LowRisc project seems to have the mission you're looking for:
"What are the goals of the project?
To create a fully open SoC and low-cost development board and to support the open-source hardware community. This will involve volume silicon manufacture..."
They have 2 folks with prior experience on the Rpi team. But, it's hard to tell when they might have something ready. http://lowrisc.org
The upshot of this is you can run lowRISC 0.6 on something like the Nexys 4 DDR (other FPGAs are available) and have a real Linux distro running on an FPGA, rather slowly and with limited RAM. They even managed to make the ethernet port work using an entirely free stack (though you still unfortunately need Vivado for a while to compile it) and it's a step towards having an ASIC that is completely freely licensed. So it's still baby-steps but I'm glad the lowRISC project came back to life.
They sell an Arduino-class device (technically a computer) called the HiFive1 for $59, and there was a crowdfunded SBC called the HiFive Unleashed that was a limited run for $999. Both are about 5-10x too expensive for poor me, but I'm keeping my hopes up for a commodity-priced SBC to replace my laptop when it finally kicks the bucket.
With QEMU you can already do amazing things. Every component required by Linux From Scratch has been stable, and you can get a Fedora/Debian image for that as well.
They started planning before it was clear that RV64GC would be the standard profile. I think its highly likely that they will go in that direction as well.
It's most likely going to be like with ARM and be embedded only, sadly. There's a large number of us, not large enough though, that want a standard ATX motherboard, with PCI-Express and an ARM, RISC-V or PowerPC processor (well an affordable PowerPC).
!! The Raptor workstation was just barely outside my budget; if I hadn't just upgraded my actual workstation I probably could have talked myself into it.
Assuming it's priced comparably cheaper to the raptor, I am buying a blackbird as soon as it comes out.
MACCHIATObin is a mini-ITX ARMv8 board with PCIe and great firmware (comes with U-Boot but you can flash (or chainload from u-boot) EDK2/TianoCore with ACPI support (!) and even QEMU for the "GPU BIOS" thingy that lets you get video out as EFI framebuffer)
Also there's the SoftIron Overdrive 1000 (sold only as full system, not bare board)
I'm not sure how useful one of those would really be, to be honest. There's not really much benefit in terms of openness - even though the architecture is open, these actual implementations are entirely proprietary with license agreements that forbid reverse-engineering. Plus it's just not as widely supported as ARM on the software side right now.
The HiFive1 is a low-cost, Arduino-compatible development board featuring the Freedom E310 making it the best way to start prototyping and developing your RISC‑V applications. Not only can the HiFive1 help build RISC-V platforms, but it is also the first commercially available option to do so! The HiFive1 can simply be plugged into your computer via the micro USB port located to the front of the board. Additionally, the HiFive1 comes programmed with a simple bootloader and a demo software, that way you aren’t restricted to the Arduino IDE if you don’t choose to do so.
I've only had a passing interest in learning assembly. It's always been in the "maybe one day" category.
But after learning about how small the RISC-V instruction set is (less than 50 apparently, but I can't find a citation for that anywhere), I'm far more motivated to get into it.
I recommend the 6502[1] if you're just starting. What you learn applies almost everywhere, and it's very much a what-you-write-is-what-happens sort of processor. No branch prediction, no caches, no fancy features. Its op-set is very small and highly expressive. They still make them, in fact.
That said, whether you choose to start with it or RISC-V, from personal experience SiFive's implementations are phenomenal. I used one of their free-implementations, and I was blown away by how easy it was to use their automated tools to build a core exactly the way I wanted. Not as easy as generating a NIOS core, but much more capable. With an Artix-7, I had a very capable low-range processor in about an hour.
If you just want to dip your hand in, chip8 is also a good starting point (if even less useful than 6502): where 6502 has about 80 actual opcodes acrosss ~50 mnemonics (https://en.wikipedia.org/wiki/MOS_Technology_6502#Assembly_l...) chip8 has 35 opcodes across 19 mnemonics (ADD, AND, CALL, CLS, DRW, JP, LD, OR, RET, RND, SE, SHL, SHR, SKNP, SKP, SNE, SUB, SUBN, XOR).
Having taught asm to people as their first language, I'd go with something like an MSP430. Since a 6502's registers are only half the pointer width, it really makes pointer manipulation more of a pain in the ass than it needs to be. That really obfuscates quite a.few.of the concepts that you're trying to learn by writing asm for a simple core.
The base instruction set is small enough to fit on a card. Of course adding the floating point, vector extensions, etc. would make it a bit harder to squeeze into a single page, but I think it would still end up smaller than the x64 spec.
I'm not sure that's a useful metric; in almost all architectures there's a "core" set which gets used the vast majority of the time in most programs, plus an increasing number of extensions for very specific purposes. You could start today on ARM with the top 20 instructions and get quite a long way.
>But after learning about how small the RISC-V instruction set is (less than 50 apparently, but I can't find a citation for that anywhere), I'm far more motivated to get into it.
30 years ago we were typing the hex codes of those commands straight into the Forth words bodies using the mental copy of that table (as you see it has very logical easy to remember organization)
V8 has a JIT, which is always going to require work to port to a new architecture. But the new-ish TurboFan backend is supposed to have the architecture-dependent parts relatively well factored out[1], so it's not as hard as it might be.
v8 is a JIT compiler. It emits instructions for specific architectures. So even if it's not written in assembly, it has some very architecture specific parts in it.
The M7 is an out-of-order processor, these all look to be in-order. Many artificial benchmarks (including Dhrystone) are very forgiving of in-order stages, so I would expect this to underperform relatively to a similarly benchmarked M7.
Apparently good Cortex-M7s get around 5 CoreMark/MHz (NXP crossover, STM32H7), so it's almost identical per MHz, and I'm willing to bet that they can get higher frequencies with less effort (if you look at the SiFive MCUs, they run at stupid frequencies compared to similar competing cores, and were generally available almost two years ago now). For further comparison, the Broadwell Xeon I'm typing this on gets about 7.2 CoreMark/MHz (running at full turbo, 4GHz, on one core).
The only place I see that mentions 16 KB is the instruction cache on the S7 monitor core. Apart from cache, it doesn't look like any of these include RAM.
That's fairly standard. The problem there is going to be attaching ddr3 modules to a board. BGA is a pain in the ass for anything past 10x10 using a toaster oven. And for doing it "right" you really need xray QA.