25 comments

  • Retr0id 4 minutes ago

    I wrote an RV64IMA emulator recently. I just needed a virtual CPU core that could boot linux, and RV64IMA seemed like the simplest way to do that - and I think that's more or less true.

    But then I wanted to be compatible with off-the-shelf toolchains and binaries, and I found myself needing to extend the ISA profile to RV64GC. Not a huge lift, but it involved pulling in a softfloat library. That got me as far as booting Alpine linux.

    And then I wanted to be able to boot Ubuntu, which needed RVA23, which was comparatively a much bigger lift, involving the vector instruction set among many other things. At this point I think I'd have been better off just emulating aarch64.

  • kev009 an hour ago

    It's basically MIPS all over again

    The conclusion is honest, and you can of course brute force any ISA into any role. I used to loathe x86 for that reason, but now that I'm older I respect the game.

      kjs3 5 minutes ago

      I think MIPS is a great example, and even there I don't think there's the bizarre bifurcation of ISA options RISC-V brings to the table.

      As a fellow olderster, I can't help but think that after almost 50 years of "ISA X is sooooo much better than x86 it's obvious ISA X is the future and x86 will be dead Real Soon Now (for whatever todays version of x86 is)" I can only shake my head ruefully and say "ping me when that happens".

      Controversial Take (that history proves isn't): Software matters; ISAs don't.

  • ethin 33 minutes ago

    I can definitely see his argument, although I still do believe RISC-V did a lot of things better than x86...

    I really do hope that the arch is eventually able to fix this. Better that there be an open ISA than them all be closed IMO.

      wmf 22 minutes ago

      Better than x86 is a low bar when ARMv8 exists.

      kjs3 11 minutes ago

      Yeah...risc-v can learn from 50 years of x86 (among others). And yet.......

  • mappu 34 minutes ago

    RVA23 hardware is available (e.g. SpacemiT K3)

  • exmadscientist 33 minutes ago

    > After being asked for the Nth time to explain, I decided to put it all down in one place so that I could simply link to it when asked next.

    Bookmarked, because I've needed the same.

    The worst part of all this is that they really should have known better by now. In 1980 you could make these kinds of mistakes, because this was pretty new territory. In 2020, doing this just makes you stupid. Or ignorant. Or both.

      NetMageSCW 5 minutes ago

      I’m not so sure - the 6502 existed in 1980 and showed the way.

  • __d 41 minutes ago

    So … use RISC-V as the strawman, and create a community-based RISC-6 that doesn’t have these weaknesses? Better to get in now before it becomes too solidly entrenched.

      inigyou 16 minutes ago

      You can't make a community-based ISA, it's not possible unless you have a community-based fab. He who makes the chips makes the rules.

      IshKebab 9 minutes ago

      Likely impossible unless you somehow come up with something vastly better (unlikely).

      None of these things are remotely bad enough to make the downsides of using another ISA palatable.

        NetMageSCW 3 minutes ago

        Anther ISA like ARM? It seems pretty palatable to just about everyone not academic.

  • brcmthrowaway 22 minutes ago

    What happened to the Rivos accelerator cores?

      tsukikage 12 minutes ago

      Meta acquired Rivos last year.

      IshKebab 11 minutes ago

      They got bought by Meta who then fired half of them.

  • IshKebab 14 minutes ago

    I think a lot of this criticism is completely true. However it's also overblown. I do think the ISA matters, but little mistakes like these definitely don't matter enough to preclude making M-series class chips. The reason it hasn't happened yet is simply time. It takes a really really long time to build up to that level of performance.

    They've definitely gone overboard on the optionality stuff though. I don't think it matters too much for the actual CPU design but it makes verification and writing portable software a huge pain. Profiles definitely help but still...

    Oh also I feel like you could probably come up with an equally compelling list about any other ISA. It's not like the fact that something has flaws means it's bad.

      NetMageSCW 4 minutes ago

      I don’t think making optional what optional features are available is a little mistake. It is a torpedo to the waterline.

  • brcmthrowaway 27 minutes ago

    It's clear that RISC-V started as an academic exercise (albeit from a group with esteemed credentials) and they had to bolt on these hacks to make it work in industry.

    Sad.

  • brcmthrowaway 43 minutes ago

    > What does a cheap microcontroller core need? Let's inspect what they are used for. Typical use cases are to interface with and quickly reconfigure hardware blocks in a larger chip, eg in an MP3 player, an SD card, or a USB stick. The hard work is done by custom IP and the CPU core is just there to occasionally prod a register or configure something.

    He forgot electronic cigarettes (vapes)

  • hn_submit 23 minutes ago

    Why is he complaining about everything being optional in RISC-V? Isn't that the whole idea of RISC-V? The market can sort it out for themselves. RISC-V is already dominant in the MCU space despite its flaws, and many of them will be solved in due time.

    Most MCUs are used for dead-simple solutions, like electric blankets and microwaves with segment displays or LEDs. Whether their interrupts are handled in 44 or 22 cycles doesn't really matter that much.

    And RISC-V does have a link register, making returning much faster when the parameters for the interrupt can all fit in registers and no external memory access is needed, as is the case with most MCUs which put the stack in RAM. To fetch the return address an external memory access is always needed even if there are no parameters.

      tsukikage 13 minutes ago

      He explains, at length: there is no sane way to determine what the hardware you are running on actually supports, and so there is no sane way to ship compiled code that is both compatible and performant.

      We already had the mystery meat CPU wars several decades ago. We know how to make sane ISAs now and should be past that.

        hn_submit 6 minutes ago

        You don't need to probe what hardware you're running on because you know being the manufacturer. The code is bespoke for your solution and nothing more. No foreign code is going to run on it.

        Different problems require different solutions. An electric blanket doesn't need a barrel shifter for multiplication or even floating point hardware. The ISA can change depending on what's needed to solve a particular problem, not to provide an "one size fits all" solution.

          kjs3 2 minutes ago

          I don't think I've read a more "doesn't actually know anything about how software is produced, but with absolute confidence knows everything about it" post in a very long time.

      walrus01 9 minutes ago

      > The market can sort it out for themselves

      Because nobody will write software for 300 unique hardware variations of a platform that have inconsistent capabilities. Consistency is one of the reasons why x86-64 with extensions like like SSE, AVX2 etc is popular.