• 1 Post
  • 314 Comments
Joined 2 年前
cake
Cake day: 2023年9月24日

help-circle





  • He’s right. I think it was really a mistake for RISC-V to support it at all, and any RISC-V CPU that implements it is badly designed.

    This is the kind of silly stuff that just makes RISC-V look bad.

    Couldn’t agree more. RISC-V even allows configurable endianness (bi-endian). You can have Machine mode little endian, supervisor mode big endian, and user mode little endian, and you can change that at any time. Software can flip its endianness on the fly. And don’t forget that instruction fetch ignores this and is always little endian.

    Btw the ISA manual did originally have a justification for having big endian but it seem to have been removed:

    We originally chose little-endian byte ordering for the RISC-V memory system because little-endian systems are currently dominant commercially (all x86 systems; iOS, Android, and Windows for ARM). A minor point is that we have also found little-endian memory systems to be more natural for hardware designers. However, certain application areas, such as IP networking, operate on big-endian data structures, and certain legacy code bases have been built assuming big-endian processors, so we have defined big-endian and bi-endian variants of RISC-V.

    This is a really bad justification. The cost of defining an optional big/bi-endian mode is not zero, even if nobody ever implements it (as far as I know they haven’t). It’s extra work in the specification (how does this interact with big endian?) in verification (does your model support big endian?) etc.

    Linux should absolutely not implement this.








  • I have. It just goes nowhere. The number of people you need to sign off what is essentially a donation is just too high. You always hit someone who says “why do we need to do this?” and the answer is “we don’t”.

    You need some actual benefit before most companies will actually pay money. It doesn’t have to be huge though. Sometimes support is enough (as long as you don’t also offer free support e.g. via GitHub issues). Phabricator did that and it seemed to work.

    Open core also definitely works. My company pays for GitHub premium because we need the features - primarily merge trains.

    They’re very rarely going to donate out of the goodness of their hearts, and if you expect them to do that because you think they are morally obliged to then you’re going to be disappointed.