• aluminium@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    5 months ago

    A CPU instruction set that is governed by the RISC V International organization, a nonprofit organization which also holds all the RISC V related trademarks.

    It has nothing to do with open source really, it is a open standard that anyone can create compatible products for and those products can also be sold commercially.

    Really the difference is that the organization verifying your that your CPU correctly follows the instruction set so you can sell it as such, has no profit motive, unlike ARM or Intel/AMD who either outright block any meaningful competition in the case of x86 or want a nice share of the money your gonna make in the case of ARM. Not to mention that ARM and Intel/AMD sell their own CPUs, so there is a big conflict of intressts going on.

    • davel [he/him]@lemmy.ml
      link
      fedilink
      English
      arrow-up
      1
      ·
      5 months ago

      It has nothing to do with open source really

      Only if you think that open hardware and open software are totally unrelated things, but most open hardware people and open software people think that they are related things.

      • aluminium@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        5 months ago

        No, open source means that its public HOW something is done, down to every single line of code (along a lot of other things when it comes to licensing, redistribution, … but thats not the main point)

        With a open standard its public WHAT something is doing, but HOW its achieved can be public or not.

        To give you a example, HTML is a open standard for displaying Webpages. Somewhere its defined that when a <button> element is found, the browser has to render a button which looks a certain way behaves a certain way when interacting with the mouse, keyboard, javascript, css … . This is WHAT your browser needs to do.

        But HOW you do it is up to each browser. Do you use the CPU or GPU to render it? Do you first draw the border, then the text or the other way around? It doesn’t matter to the standard as long as the end result complies with the spec.

        With open source browsers like chromium and firefox it is public HOW they are implementing this feature, down every line of code.

        With a proprietary browser like Internet Explorer which follows (or rather followed) the same open standard nobody knows HOW they are implementing it. We only know that the end result is adhering to the HTML Standard.

        The hardware equivalent it would be someone releasing the exact schematics of for example a RISC V CPU where somebody could see HOW they implement the specifications of the Architecture and where someone could without much hassle go to a Manufacturer and get the chip into production or make modifications.

  • masterspace@lemmy.ca
    link
    fedilink
    English
    arrow-up
    1
    ·
    5 months ago

    For software to run on a computer, it needs to tell the computer what to do, “display this picture of a flower”, “move my character to the left”, “save this poem to a file”.

    And for a bunch of different software to all run on the same machine, they all need to use the same basic set of instructions, this is called the machine’s Instruction Set.

    Because the instruction set has to work for any software, these instructions don’t look that readable to us, instead of “show this flower” they might be “move this bit of memory into the processor”, but software builds up millions of those instructions to eventually display a flower.

    Intel processors used a set of instructions that were called x86, and then when AMD made a rival processor, they made theirs use the same instruction set so that their processors would be compatible with all the software written for Intel processors (and when they needed to move from 32bit instructions to 64bit instructions, they made a new set called x64).

    Meanwhile Apple computers for a long time used processors built by IBM that used IBMs PowerPC instruction set.

    Now many companies are using the ARM instruction set, but ARM is still a private company you have to pay licensing fees to, so RISC-V is rising as a new, truly open source and free to use instruction set.

  • kevincox@lemmy.mlM
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    5 months ago

    For software to run on a computer it needs to speak the computer’s “language”. This is typically called “machine language” but differs across different hardware. For example most modern Intel and AMD processors speak x86_64. This language has ways to express different operations such as “add these two numbers” or “put this CPU core into a low power mode”. This is the fundamental way that software works, but running in this language.

    There are languages that are completely different, such as ARM which is very common on mobile devices and is the language used by Apple’s new M chips. These have basically nothing in common with x86_64.

    These languages also evolve over time. For example x86_64 is a significant extension to the older x86 language. For the most part this is fine, it is like the CPU now knows more words, if you use those new words the new CPU will understand them, but older CPUs won’t.

    RISC-V is a new machine language. What makes it interesting is that it is a free and open specification. This means that anyone can create a new RISC-V CPU, unlike x86_64 where you need to buy a license from Intel or ARM where you need to buy a license from the ARM corporation. Most people think that this openness has major benefits, for example now anyone can create a new processor which may be better, rather than having innovation being stifled by licensing costs (if you can even get a license) or needing to create their own machine language and require huge amounts of effort to migrate software to it.

    Note: It is important not to confuse “machine language” with “programming language”. When people write software they very rarely write code in machine language directly. Usually they use a programming language which is then converted into the machine language of the CPU it will run on.