News for hackers. Stuff that matters.
Re:Ask HN: Does anyone have something negative to say about ... by Someone on Wednesday July 25, 2018 @01:58PM (#17611322)
It’s hard to critique a design that’s mostly hypothetical (implementations exist, but those parry critiques such as “it is slow” or “it doesn’t have vector instructions” with “it’s only the first version”).

So, the only thing one can readily critique is the instruction set. Here, they made trade offs that some would argue are bad. For example

- They deliberately choose to leave parts of the instruction space open. That’s good for extensibility, but must have a negative effect on code density.

- They are extremely liberal in allowing implementations to mix and match instruction set extensions. There already are 13 different extensions, potentially allowing for 8,192 different instruction sets (many of them quite silly), and they are already thinking on how to handle over 26: “Since single letters will run out someday, it is currently discussed to use a new naming scheme with Zxxx for standard instruction extensions and Yxxx for non-standard (vendor specific) instruction extensions” (https://en.wikipedia.org/wiki/RISC-V#ISA_Base_and_Extensions)

Re:Ask HN: Does anyone have something negative to say about ... by joezydeco on Wednesday July 25, 2018 @02:13PM (#17611433)
It’s hard to critique a design that’s mostly hypothetical

I've seen one noted critic use the term "hardware fanfiction", which is completely awesome.

Re:Ask HN: Does anyone have something negative to say about ... by phaedrus on Wednesday July 25, 2018 @02:45PM (#17611728)
I've often thought there could be hardware fanfiction for car companies / car models. Mostly in the context of a video game, but I could imagine a pure stories / wiki site like the SCP stories but faux-realistic car hardware documentation.

For example the parody of the Ford motor company would be a fictional American car company who got their start making church organs before making cars. Since they did the minimal work to adapt their electronics to the new application, switches in schematics are referred to by organ key notes and their electronic ignition is based on a drum sequencer. (Lampooning the way that, even as late as the 1980s models, if not still, you can see vestiges of their positive-ground origins in the weird way Ford chooses to connect things like e.g. the horn switch.)

Re:Ask HN: Does anyone have something negative to say about ... by nickik on Wednesday July 25, 2018 @03:01PM (#17611860)
First of all, the ISA does not need implementations to be non-hypothetical. The ISA is defined and frozen and that includes most of the extensions.

There have been 100s of tap-outs from different RISC-V chips. So clearly its not hypothetical in that sense either.

> - They deliberately choose to leave parts of the instruction space open. That’s good for extensibility, but must have a negative effect on code density.

and

> - They are extremely liberal in allowing implementations to mix and match instruction set extensions.

That's not a problem that is a feature. It was specifically designed to extendable and to have many different extensions so implementers could pick and choice of what they want.

RISC-V is designed to work for close to sensor tiny chips all the way to super-computers and everything in between. To be able to handle that with one instruction set you can not force every deeply embedded chip to implement all the features.

To combat the explosion theoretical ISA the foundation defines profiles. Profiles are designed to select standard configurations for specific applications or groups of users. For example, RISC-V for Linux uses 'RV64GC' and all Linux software uses it.

However if you use RISC-V internally you can pick whatever you like for your needs.

Re:Ask HN: Does anyone have something negative to say about ... by Someone on Thursday July 26, 2018 @03:45AM (#17615780)
Early Bluetooth had (and probably still has) profiles, too. I don’t think it is a slam dunk to say they were a net benefit.

Similarly, USB-C cables may or may not allow USB 3.1 (doubles speed to 10Gbit/s), power delivery, or alternate mode (sending video signals over some of the pins). That makes it easier for suppliers to create such cables, but does it help adoption?

Further back, the first phones running java featured so many profiles that programs were barely portable between phones.

Re:Ask HN: Does anyone have something negative to say about ... by giomasce on Wednesday July 25, 2018 @03:08PM (#17611922)
* I do not have precise references, but I have read somewhere that RISC-V actually has a very good code density, often better than x86 itself.

* Well, only a few of the 8192 combinations are actually meaningful. It is clear that most implementations will converge on few configurations, leaving the others for specialized domains.

Re:Ask HN: Does anyone have something negative to say about ... by brandmeyer on Wednesday July 25, 2018 @08:34PM (#17614213)
> I do not have precise references, but I have read somewhere that RISC-V actually has a very good code density, often better than x86 itself.

Unfortunately, that which the headlines giveth, the implementation details taketh away.

The bulk of the savings come from loads and stores to the stack. The remainder of the savings is for destructive integer ops on a subset of only 8 registers.

So sure, if your code can be efficiently described using those restrictions, then you'll have great code density! Many commercial codes do have short stretches that fit this requirement, but they are interspersed with stretches that don't.

This makes it very hard to produce an effective code size benchmark for RISC-V, because it is so heavily load dependent.

Re:Ask HN: Does anyone have something negative to say about ... by Someone on Thursday July 26, 2018 @03:51AM (#17615799)
If you start from scratch today, you better beat x86. x86 wastes instruction space for 8087 floating point operations, for vector extensions that have been superseded by better ones, requires prefixes to operate on what nowadays are standard argument sizes, etc.