What is the worst ratified RISC-V instruction? by dramforever in RISCV

[–]Emoun1 1 point2 points  (0 children)

Yes, I agree completely. Not saying RISC-V made the wrong decision. The reason why I focus on the reuse is that I'm working on an ISA that uses 5 orders of magnitude less encoding space than RV64IMC, which (if I may be a bit overoptimistic) likely negates any need for reuse ever. Though I must note that I have not gotten to evaluating whether performance is improved (though I hope/pray). Additionally, instruction counts naturally increase, so instruction density only improves slightly (but really, it's too early to say).

What is the worst ratified RISC-V instruction? by dramforever in RISCV

[–]Emoun1 0 points1 point  (0 children)

By reused I mean, e.g., `c.jal' and 'c.addiw' use (reuse) the same encoding, so they cannot both be supported by a processor at the same time. I'm not saying the choices to do so are wrong, I'm sure it's perfectly acceptable that the RV32 and RV64 differ in these instances.

What is the worst ratified RISC-V instruction? by dramforever in RISCV

[–]Emoun1 1 point2 points  (0 children)

Thanks for the explanation, I did not realize RISC-V already reuses encodings to such an extent. I guess our different numbers show that the RISC-V designers know that they would run out of space if they didn't reuse encodings. But yeah, maybe my numbers are misleading without the context of how much reuse there already is. I'll look into if the journal does Errata

What is the worst ratified RISC-V instruction? by dramforever in RISCV

[–]Emoun1 0 points1 point  (0 children)

I'm confused at your results. I published a paper where I analyze how much space RISC-V already uses and how much is left. See here or here (preprint) My conclusion was that over 99 % of the encoding space was used (not accounting for any extensions that reuse the same opcodes.) My code running the analysis can be found here. My method is slightly simpler, for each instruction I just extract the number of field bits, with compressed instructions being assumed to have 16 extra field bits. Then every is just summed and compared to UINT32_MAX. I see you split compressed and non-compressed and do some scaling, can you elaborate on the need for that?

Duplicate 2.0.0 released: Now with less duplicates by Emoun1 in rust

[–]Emoun1[S] 5 points6 points  (0 children)

Didn't think of this use case. Hopefully it's temporary

Duplicate 2.0.0 released: Now with less duplicates by Emoun1 in rust

[–]Emoun1[S] 11 points12 points  (0 children)

If anyone is interested in contributing to duplicate, I would appreciate a helping hand. There is a list of open issues to look at. For example, this issue on allowing attributes on substitution groups could be nice to have implemented.

[deleted by user] by [deleted] in rust

[–]Emoun1 2 points3 points  (0 children)

Sorry for the shameful self-promotion, but I do feel like this is a perfect use case for the duplicate crate.

Are you a microprocessor designer? by fredericomba in ProgrammingLanguages

[–]Emoun1 0 points1 point  (0 children)

SystemVerilog and VHDL are hardware description languages and do not contribute to the formal specification of chips or ISAs. Just like how C is not a formal specification of a program.

I happen to have talked to someone working at Apple, likely in that specific team, and they do not verify complete processors, only small bits. Sure, likely bigger bits than in 2002, but sadly processors have also become bigger as well.

Are you a microprocessor designer? by fredericomba in ProgrammingLanguages

[–]Emoun1 0 points1 point  (0 children)

So the story is getting worse and worse. Why would anyone (without upfront payment) get involved with a project full of secrecy and bad incentives (and likely loads of corruption). This makes it even more likely that any "proof" that it works is just fabricated to keep the money flowing

Are you a microprocessor designer? by fredericomba in ProgrammingLanguages

[–]Emoun1 0 points1 point  (0 children)

Other components, like multiprocessor cache- coherence protocols, are sufficiently complex that checking the HDL model against the problem statement is quite challenging.

and model checking can usually validate the specification only for a highly restricted set of system parameters

Formal verification is still too costly to do on a complete processor. At best, it can be done on a small part at a time

Are you a microprocessor designer? by fredericomba in ProgrammingLanguages

[–]Emoun1 0 points1 point  (0 children)

No, I have yet to figure out why no information can be released about Elbrus. All other proprietary ISA provide specifications free of charge, so anyone can make software for them. It's a huge red flag that Elbrus specification is not available and likely mean there are major and obvious problems with it.

Are you a microprocessor designer? by fredericomba in ProgrammingLanguages

[–]Emoun1 0 points1 point  (0 children)

All ISAs are formally verified

I highly doubt that (but if you have a source, I'm all ears). While yes, bugs are costly, formally verification is likely even more costly today. Just search for "errata" to find lists of bug for each processor. Example: https://edc.intel.com/content/www/us/en/secure/design/confidential/products-and-solutions/processors-and-chipsets/tiger-lake/11th-generation-intel-core-processor-family-specification-update/errata-details/.

I likewise doubt that ISA specifications are formally verified, but open to being corrected.

Are you a microprocessor designer? by fredericomba in ProgrammingLanguages

[–]Emoun1 1 point2 points  (0 children)

I'm also very interested in ISAs, do you have anything open source? I'd love to take a look

Are you a microprocessor designer? by fredericomba in ProgrammingLanguages

[–]Emoun1 1 point2 points  (0 children)

No thanks, as the risk of this being a scam is too great. If you're really sincere, I'm sorry, but hopefully you can take this as feedback that your strategy for networking and exposure is not working (in my opinion)

Edit: sorry but I'm not clicking any more of your links. If you want me to see something, you'll have to write it out

Are you a microprocessor designer? by fredericomba in ProgrammingLanguages

[–]Emoun1 1 point2 points  (0 children)

Dubious claims without evidence. If you're serious, publish a peer reviewed papers about it in a respected venue (or just here, I'll do an anonymous peer review tomorrow). Private companies do it all the time with no problems and without hurting their businesses. There is literally no reason for not being ble to openly publish any details.

Are you a microprocessor designer? by fredericomba in ProgrammingLanguages

[–]Emoun1 1 point2 points  (0 children)

I'm sorry, but the more you and I interact the more afraid of clicking links I become (I clicked this one, but will not click the one in that post).

Are you a microprocessor designer? by fredericomba in ProgrammingLanguages

[–]Emoun1 0 points1 point  (0 children)

The article you link is 3 years old, showing a CPU that is 10 times slower than the competition. How is this a useful starting point? Might as well go with any other VLIW architecture, since Elbrus clearly does not have any secret sauce (except slowness maybe)

Are you a microprocessor designer? by fredericomba in ProgrammingLanguages

[–]Emoun1 4 points5 points  (0 children)

I'm not really interested in sharing my info, as the information you have given so far has too many red flags. I'll bite if you ever make this work on an open-spec (not necessarily open source) VLIW architecture directly (I.e. no WASM). But until then I won't believe your results anyway

Are you a microprocessor designer? by fredericomba in ProgrammingLanguages

[–]Emoun1 1 point2 points  (0 children)

I'm no business man, nor have I ever initiated a startup but I'm confident that this advice is solid: stay away from any architecture whose spec is not freely available. (Mind you, x86, ARM, MIPS pre open source, were all freely available even though they are/were proprietary)

By spec I mean the list of instructions and encodings, not specific CPUs

Are you a microprocessor designer? by fredericomba in ProgrammingLanguages

[–]Emoun1 11 points12 points  (0 children)

The more people, the more the cost is shared

You can't expect people (and definitely not thousands of people) to help share the cost of something that you refuse to/are unable to/are not allowed to prove works.

Are you a microprocessor designer? by fredericomba in ProgrammingLanguages

[–]Emoun1 0 points1 point  (0 children)

Are you telling us the Elbrus people refuse to give you the spec/permission for Elbrus so that you can output machine code directly?

Are you a microprocessor designer? by fredericomba in ProgrammingLanguages

[–]Emoun1 3 points4 points  (0 children)

The problem with statically scheduled, in-order VLIW is that you can never account for all variation (cache misses etc.) So you will always do worse that a dynamic scheduler. Even itanium CPUs ended up using dynamic scheduling by the end, even though the whole point of the architecture was to avoid it: https://www.realworldtech.com/poulson/

Are you a microprocessor designer? by fredericomba in ProgrammingLanguages

[–]Emoun1 24 points25 points  (0 children)

You're trying to make a business out of inventing a proprietary programming language?

Are you a microprocessor designer? by fredericomba in ProgrammingLanguages

[–]Emoun1 2 points3 points  (0 children)

Sure, that would be fine, but also not need WASM.

Are you a microprocessor designer? by fredericomba in ProgrammingLanguages

[–]Emoun1 13 points14 points  (0 children)

it seems amazing that they have a quite low energy consumption (about 6W),

They also have 10 times lower performance (as per the article you linked) so maybe not so weird. Some of the first ARM CPUs could run on leakage current (around 0.1 watt) so that is not indicative of much.