ARM instruction set has not changed very much at all since then and is in many chips in nearly every device. More are made than any other design.

She is also trans and transitioned in 1990s. Being a cis woman in technology can be frustrating even today. She was a trans woman in UK tech in 1990s.

This is a innovator in technology. Not Jobs, not Musk, not Gates. Wilson created the CPU design which is cheap, simple, efficient, strong, and has become universal today.

    • wantonviolins [they/them]
      ·
      edit-2
      3 years ago

      When you’re designing a processor you have to make a lot of decisions about what kinds of math it’s going to be good at. To egregiously oversimplify, maybe you want a processor that can do lots of division really quickly but you don’t care if multiplication is slower. That decision tells you how to arrange lots of the transistors to meet that design goal.

      General sets of transistor arrangements are called architectures, and individual versions of those architectures are called microarchitectures. There’s lots and lots of architectures and hundreds of microarchitectures, but the biggest ones are x86, owned by Intel and typically found in things like PCs, laptops, and servers, and ARM, owned by ARM (ARM used to stand for “Acorn RISC Machines” but it doesn’t anymore) found in virtually all cell phones, tablets, and uh, like everything else. ARM is probably the most common architecture in the world and appears in EVERYTHING. My TV and stereo both have ARM chips. Wilson here designed ARM.

      One of the advantages of an architecture over bespoke designs for every CPU is that software compiled for one architecture can generally run on any processor from that architectural family. This is how Intel can keep releasing new CPUs that are different under the hood but run the same software. The microarchitecture changes (“Ivy Bridge”, “Haswell”, etc. are all Intel x86 microarchitectures) but the architecture itself remains the same. There are a LOT of caveats to this, but that’s complicated shit and we’re keeping this basic.

      To get a little more technical, what defines an architecture is not so much the physical arrangement of transistors but the mathematical operations supported by said transistor arrangements. Although all processing is done at its most fundamental level on 1s and 0s, modern processors speak a kind of machine language called Assembly, which is a set of instructions that tell the processor what to process and how and where to process it. The architecture itself is really defined by compatibility with that instruction set, which is why they’re formally known as Instruction Set Architectures, or ISAs.

      Edit: I should also add that ARM is often used for chips doing other tasks within another computer, so even if you have an x86 PC, you probably also have a handful of ARM chips in there too. Have a newer hard drive or solid state drive? The chip it uses to talk to the rest of the computer and manage its storage independent of the OS is probably ARM. Nintendo handhelds have all used ARM going back to the GameBoy Advance, and the chip in the Switch is also ARM. The GameCube, Wii, Wii U, Xbox 360, and PS3 all used a different architecture, POWER, which is owned by IBM and isn't used much these days outside of IBM's own mainframes. The PS4/5 and XB1/S/X/Series S/X/etc. all use x86. If you have an older wireless router, a PS1, PS2, PSP, or N64, it used MIPS, which is an architecture with declining popularity - most uses of MIPS are being replaced by ARM, new routers all use ARM.

      • Eris235 [undecided]
        ·
        3 years ago

        To add onto that, x86 is the 'classic' computer chip, in that most computers and servers run it, and have since like the 80's. x86 has a larger set of instructions, and so is more 'powerful' than ARM. However, having more instructions also means its more complicated. It is usually faster, but needing more electricity, and generating more heat. That's why phones and small electronics have used ARM for years; its more power efficient.

        However, with computers getting faster and faster, and drawing more and more power, we're realizing ARM is actually functionally faster in a lot of situations; that's why Apple just switch all of their main computing line from the 'classic' x86 to ARM. Although the chips are, in a sense, slower, since they produce less heat, you can push them faster, ending up with laptops that are, for the user, faster with lower power draw. However, you have to rewrite all the software to work well on ARM; you can emulate x86 to run older Mac programs on the new ARM macs, but the end result is slower and buggier, so it'll be a bit of a messy transition until all the software is natively written for ARM.

        There's some other stuff that's a little beyond me about the finer points, like with ARM having fewer instructions, its slower because it can need to use 5 instructions to do something x86 only needs one to do, but if you write a program to take full advantage of ARM, and optimize it to do all of the important stuff with only a few instructions, ARM can be faster, as the chips are smaller, and you can fit more into a given space.

        (correct me if I'm wrong here btw, as I have a fairly layman's understanding of the differences)

        • wantonviolins [they/them]
          ·
          edit-2
          3 years ago

          This is mostly right. The things I’d correct you on are a lot of the same things I’d correct in my own comment - stuff that’s wrong because it’s oversimplified rather than wrong due to a fundamental misunderstanding.

          For example, most of the time, with modern code in modern languages with modern toolchains, you don’t have to rewrite much of anything to better optimize for ARM, just recompile. If your language runs in a VM (like Java) you don’t even have to do that much as long as the runtime itself is compiled for your environment. Also the bit about “pushing ARM faster” sounds like you’re talking about clock speeds and that’s not completely true, ARM chips may clock higher than x86 in the same power/thermal envelope but don’t hit higher clocks than x86 is capable of. Again, oversimplifications rather than errors.

          The only thing you got wrong was Apple’s motivation for switching to ARM - they give much less of a shit about performance than realizing the efficiencies of vertical integration and exercising greater control over their rapidly converging platforms.

        • skeletorsass [she/her]
          hexagon
          ·
          3 years ago

          Mostly correct. Having a larger set of instructions do not make a CPU faster however. The same operation is being done in each case whether there are 5 or 1 instructions being sent. The instruction just takes multiple cycles on the CISC design. There is a disadvantage to this though, as the 5 instructions could be reordered by the CPU to be more efficient. In modern processors this does not matter though as there are not true CISC processors outside of very slow embedded systems any more, and the modern x86 CPU turns the 1 instruction into 5 internally.

      • TossedAccount [he/him]
        ·
        3 years ago

        If you have an older wireless router, a PS1, PS2, PSP, or N64, it used MIPS, which is an architecture with declining popularity

        Does this explain why N64 emulation is so difficult?

        • wantonviolins [they/them]
          ·
          3 years ago

          There's a lot of compounding factors impacting N64 emulation: lack of developer interest, relative system complexity vs. 16-bit systems (which impacts developer interest), smaller game library vs other consoles, unique controller and peripherals, smaller body of documentation, more limited reverse engineering efforts, the GPU is both complex and bespoke, truly accurate emulation would require more hardware power than we have in PCs today, harder to dump games vs. PS1 CDs, things like that. Plus the early N64 emulators were pretty cliquey and weird and are (mostly) still closed-source, so there isn't as large a community sharing knowledge and building on each other's work. Everyone who wants to build an emulator has to start mostly from scratch.

          Having a MIPS CPU isn't that big a hurdle compared to everything else. That said, all of the points I've brought up are currently improving. There's probably more developer interest in the N64 now than at any time in the past two decades. The next release of the Linux kernel (5.12, due out in April) will include support for booting on the N64 and Near, the bsnes/higan developer, has gotten a decent, if somewhat incomplete and buggy, N64 emulator up and running in a handful of months and rolled it into their pet emulator project ares. It may eventually make it into higan if it shapes up well enough. Things are finally looking up for N64 emulation.