6th RISC-V Workshop Proceedings
riscv.org
riscv.org
There are 7 bits to encode the opcodes. Of those 128 possible values, 3/4 are used for 16-bit compressed/thumb instructions.
The remaining 32 values are allocated as follows:
* 4 are for custom instructions * 4 are for larger than 32-bit instructions * 21 are already used * 3 are reserved for future use
While there is some space for minor opcodes (encoded via func3/func7) inside of the already allocated major opcodes, this allocation seems overly generous to me considering how young the instruction set still is.
I would have felt far more comfortable with compressed instructions only taking 1/2 instead of 3/4 of the total available space.
More details in section 1.2 of this document: https://riscv.org/wp-content/plugins/pdf-viewer/stable/web/v...
Give me an open source model board with a kernel, network, graphics, peripherals, and general-purpose I/O. Give it to me cheap. Give it to me with a desktop environment.
Give me example simple real-world use cases ("build a ping response box!", "build a home video recorder!", "build an internet-enabled light switch!", "build a sound amp!", "build a robot to take over the world!", etc) and the hardware and software for a DIY-er to... do it by themselves.
Give people hardware, software, and examples (monkey see, monkey do), and you'll find more people adopting RISC-V.
What could be a good advert for RISC-V would be to design a SoC that used a full featured RV64 main core and simpler RV32I cores as offload engines for each IO device.
http://www.lowrisc.org/docs/memo-2014-001-tagged-memory-and-...
Why not PCIe? Aren't there already a bunch of design/validation/verification tools for it? A RISC-V CPU with just a bunch of PCIe lanes (and a couple of channels of fast DDR4) coming off of it (and maybe an IOMMU) would be a lot easier to integrate with existing hardware, rather than trying to recreate open-source equivalents of modern GPUs and network hardware.
Or just support from NVIDIA https://riscv.org/wp-content/uploads/2017/05/Tue1345pm-NVIDI...
> NVIDIA will use RISC-V processors in many of its products > We are contributing because RISC-V and our interests align
A board perfect for proofs of concepts, some examples, and good marketing; everything else builds off of that.
"Our open-source SoC (System-on-a-Chip) designs will be based on the 64-bit RISC-V instruction set architecture. Volume silicon manufacture is planned as is a low-cost development board."
Includes one of the Rpi co-founders.
Edit: Others have pointed out that it won't likely be in the same price range as the Rpi. Probably closer to the Beaglebone range.
The economies of scales that made the Pi's low price possible are totally absent for RISC-V: There isn't a SOC inventory glut like the one that got induced by the demand for smartphone components.
Also this, which I completely missed:
http://www.cnbc.com/2016/09/20/chinese-company-hacks-tesla-c...
edit: ok, I get it now: the slidedeck mentions the above Tesla story in a slide about security.
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc....
This might be tough to hear for people discussing the ins and outs of RISC-V and why is so much better than x86 or ARM and the big name sponsors don't make it any better with the usual tight hugs and lullabies. But you need to put it in the hands of the people just like "the PC", otherwise it will be a pet project waiting to be forgotten by everybody other than the nostalgic ones.
Intel - Intel - tried to compete in the embedded market and has recently quietly withdrawn several of its products. It's a tougher market than it sounds, and it's also more conservative than you'd expect.
Or the startups: indie-semi, who sell mcu's built as lego's from multiple dies, affordably! which allows them to do custom-design and semi-custom design of mcu's per customer , while offering a large library of standard mcu's.
Or terechip, who built a chip packaging process who can handle dies orders of magnitude smaller than current systems - opening possibilities for far cheaper mcu's and other simple chips.
Or even ambiq-micro, which created a way to design mcu's that take ~10x(?) less power by enabling transistors to work on an extremely low supply voltage.
This is how you compete with entrenched competitors. By doing something they cannot do.
And Intel ? their fab doesn't even fit mcu's(no flash on logic processes, not good fit for analog). They had no advantage, no differentiation( maybe besides their neural network, a feature that didn't seem to attract customers). How did they expect to win ?
Don't try to conquer ARM doing what ARM has done, time doesn't go back and the small world of embed big wigs will ignore you.
And there are lots of successful architectures out there that don't go into PCs. On the low end there's AVR, at the high end there's MIPS, and then there's ARM that's sort of eating everything. ARM started out as a desktop but it spend a long time as an embedded only processor before returning to popular consciousness. If RISC-V takes over cell towers or NAS boxes or robots or flying cars or whatever it could be quite successful without ever penetrating popular consciousness.
Yet ARM is very successful.
Maybe it will succeed regardless https://riscv.org/wp-content/uploads/2017/05/Tue1345pm-NVIDI...
> NVIDIA will use RISC-V processors in many of its products > We are contributing because RISC-V and our interests align
These big players are only in this because they are afraid of missing out and have enough bucks to burn, when one of those things stop to happen, bye bye RISC-V.
1) It's still impossible for anyone to get their hands on an FE310 chip over half-a-year on from the release of the HiFive board.
2) They promised open-source cores, but somehow backtracked due to "customer requests". How does this make any sense? And if so, just have an open-source version, and a closed-source one that, I dunno, has a SiFive logo on the mask.
I was really inspired by them, now I'm mostly dejected. Still, I'm hoping someone like ST takes their peripherals and makes an MCU with a RISC-V.
On your questions: 1) We are providing FE310 samples to folks who ask us for them at info@sifive.com
See our past forum posts for similar requests: https://forums.sifive.com/t/assistance-getting-in-contact-wi... https://forums.sifive.com/t/e300-on-the-market-other-sbc-s-w...
2) We do provide both versions, just as you recommended. SiFive continues to maintain the Rocket repository at https://github.com/freechipsproject/rocket-chip
We intend to continue to maintain this core and ensure it's compatible with any updates to the RISC-V specification.
For commercial customers who do not want to utilize rocket-chip, we are providing them with other options.
-Jack (from SiFive)
Keeping the faith alive...
My gut feeling says that such a chip is likely to come from Samsung, but NXP and Expressif are also likely candidates. All are RISC-V members.
Anything more complex should wait until the specs are complete.
https://riscv.org/wp-content/uploads/2017/05/Tue1115-Technic...
I hope this refers to ring-0-like instructions such as x86 STI, and not some kind of OEM/manufacturer "you can only use this set of instructions if you pay us" type privilege?
https://github.com/riscv/riscv-isa-manual/blob/master/releas...
Alternatively in the PDF you would only need to look at the "Introduction" section for a minute.
Thank you. Boy, this was a long time ago and I haven't written anything. I suspect it will be obvious for anyone skilled in the act, but I had to go look at my code at bit to remember some of this.
First a quick word from the POV of a compiler: the register windows are supposed to make function call easier and I suppose it works as designed for hand written code, but it actually adds a lot of complexity to indirect call/virtual functions and is a disaster for anything that switches stack (context switches, coroutines, etc). Another problem is the immediate fields which are just 8-bit unsigned, very often too small. And in practical terms, the GCC port really struggles to make good code for MMIX. Try it!
From the implementation POV: even ignoring the resource requirement for the full MMIX (which besides 256 registers includes a LOT of functionality), it's hard to pipeline as MMIX actually have fairly complicated semantics; just look at the state machine, the S_XXX symbols in https://github.com/tommythorn/fpgammix/blob/master/rtl/core.... While you can obviously deal with that (as witnessed by x86), it requires you to speculate a lot (for starters, speculate that you didn't get an interrupt). All speculation add complication as you need to recover from mis-speculation. This in term hurts cycle time by making stages more complicated and is a MAJOR source of verification work (AKA bugs).
My implementation is nearly completely un-pipelined, very similar to a simple interpreter but in Verilog. Once I had enough functionality that I could look back and consider a more realistic implementation, I really lost the enthusiasm and instead focused on MIPS which is dramatically more efficient and easier to implement (pesky branch delay-slot not withstanding). Of course, later a friend leaked word of nascent RISC-V and the world was forever different.
I actually asked Don directly why he hadn't gone with something like MIPS, but he answered vaguely that he wanted something for education.
On the positive side, I found a bug and scored a $2.56 check (real dollars) and a couple of MMIX T-shirts :)