• Buffalox@lemmy.world
    link
    fedilink
    English
    arrow-up
    97
    arrow-down
    5
    ·
    edit-2
    9 months ago

    Everybody in the know, knows that x86 64 bit was held back to push Itanium, Intel was all about market segmentation, which is also why Celeron was amputated on for instance RAM compared to Pentium.
    Market segmentation has a profit maximization motive. You are not allowed to use cheap parts for things that you are supposed to buy expensive parts for. Itanium was supposed to be the only viable CPU for servers, and keeping x86 32 bit was part of that strategy.
    That AMD was successful with 64 bit, and Itanium failed was Karma as deserved for Intel.

    Today it’s obvious how moronic Intel’s policy back then was, because even phones got 64 bit CPU’s too back around 2009.
    32 bits is simply too much of a limitation for many even pretty trivial tasks. And modern X86 chips are in fact NOT 64 bit anymore, but hybrids that handle tasks with 256 bits routinely, and some even with 512 bits, with instruction extensions that have become standard on both Intel and AMD

    When AMD came with Ryzen Threadripper and Epyc, and prices scaled very proportionally to performance, and none were artificially hampered, it was such a nice breath of fresh air.

    • barsoap@lemm.ee
      link
      fedilink
      English
      arrow-up
      32
      ·
      9 months ago

      And modern X86 chips are in fact NOT 64 bit anymore, but hybrids that handle tasks with 256 bits routinely, and some even with 512 bits, with instruction extensions that have become standard on both Intel and AMD

      On a note of technical correctness: That’s not what the bitwidth of a CPU is about.

      By your account a 386DX would be an 80-bit CPU because it could handle 80-bit floats natively, and the MOS6502 (of C64 fame) a 16-bit processor because it could add two 16-bit integers. Or maybe 32 bits because it could multiply two 16-bit numbers into a 32-bit result?

      In reality the MOS6502 is considered an 8-bit CPU, and the 386 a 32-bit one. The “why” gets more complicated, though: The 6502 had a 16 bit address bus and 8 bit data bus, the 368DX a 32 bit address and data bus, the 368SX a 32 bit address bus and 16 bit external data bus.

      Or, differently put: Somewhere around the time of the fall of the 8 bit home computer the common understanding of “x-bit CPU” switched from data bus width to address bus width.

      …as, not to make this too easy, understood by the instruction set, not the CPU itself: Modern 64 bit processors use pointers which are 64 bit wide, but their address buses usually are narrower. x86_64 only requires 48 bits to be actually usable, the left-over bits are required to be either all ones or all zeroes (enforced by hardware to keep people from bit-hacking and causing forwards compatibility issues, 1/0 IIRC distinguishes between user vs. kernel memory mappings it’s been a while since I read the architecture manual). Addressable physical memory might even be lower, again IIRC. 248B are 256TiB no desktop system can fit that much, and I doubt the processors in there could address it.

      • Buffalox@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        arrow-down
        13
        ·
        edit-2
        9 months ago

        By your account a 386DX would be an 80-bit CPU because it could handle 80-bit floats natively,

        No that’s not true, it’s way way more complex than that, some consider the data bus the best measure, another could be decoder. I could also have called a normal CPU bitwidth as depending on how many cores it has, each core handling up to 4 instructions per cycle, could be 256 bit, with an average 8 core CPU that would be 2048 bit.

        There are several ways to evaluate like Databus, ALU, Decoder etc, but most ways to measure it reasonably hover around the 256 bit, and none below 128 bit.
        There is simply no reasonable way to argue a modern Ryzen CPU or Intel equivalent is below 128 bit.

        • sugar_in_your_tea@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          18
          arrow-down
          1
          ·
          9 months ago

          There is simply no reasonable way to argue a modern Ryzen CPU or Intel equivalent is below 218 bit.

          There absolutely is, and the person you responded to made it incredibly clear: address width. Yeah, we only use 48-bit addresses, but addresses are 64-bit, and that’s the key difference that the majority of the market understands between 32-bit and 64-bit processors. The discussion around “32-bit compatibility” is all about address size.

          And there’s also instruction size. Yes, the data it operates on may be bigger than 64-bit, but the instructions are capped at 64-bit. With either definition, current CPUs are clearly 64-bit.

          But perhaps the most important piece here is consumer marketing. Modern CPUs are marketed as 64-bit (based on both of the above), and that’s what the vast majority of people understand the term to mean. There’s no point in coming up with another number, because that’s not what the industry means when they say a CPU is 64-bit or 32-bit.

          • Buffalox@lemmy.world
            link
            fedilink
            English
            arrow-up
            2
            arrow-down
            14
            ·
            edit-2
            9 months ago

            address width.

            That’s just stupid, no CPU has ever been called by the width of the address bus EVER.

            And there’s also instruction size

            AVX on new CPU’s is 512 bit. We’ve had SSE instructions since the 90’s that are 128 bit.

            Edit:
            Nobody ever called the Motorola M6800, MOSTech 6502, Zilog Z80, ot the Intel 8080 16 bit computers for having a 16 bit address bus. Or the Intel 8086 a 20 bit CPU for having a 20 bit Address bus, or the Motorola M68000 a 24 bit CPU for having a 24 bit adress bus.

            No CPU was ever called by it’s address bus, back in the 70’s, 80’ and 90’s it was either instruction set or databus. Later CPU’s have become more complex, but still it’s NEVER the address bus.

            • sugar_in_your_tea@sh.itjust.works
              link
              fedilink
              English
              arrow-up
              21
              arrow-down
              1
              ·
              9 months ago

              no CPU has ever been called by the width of the address bus EVER.

              Yes they have, and that’s what the vast majority of people mean when they say a CPU is 32-bit or 64-bit. It was especially important in the transition from 32-bit to 64-bit because of all the SW changes that needed to be made to support 64-bit addresses. It was a huge thing in the early 2000s, and that is where the nomenclature comes from.

              Before that big switch, it was a bit more marketing than anything else and frequently referred to the size of the data the CPU operated on. But during and after that switch, it shifted to address sizes, and instructions (not including the data) are also 64-bit. The main difference w/ AVX vs a “normal” instruction is the size of the registers used, which can be up to 512-bit, vs a “normal” 64-bit register. But the instruction remains 64-bit, at least as far as the rest of the system is concerned.

              Hence why CPUs are 64-bit, all of the interface between the CPU and the rest of the system is with 64-bit instructions and 64-bit addresses. Whether the CPU does something fancy under the hood w/ more than 64-bits (i.e. registers and parallel processing) is entirely irrelevant, the interface is 64-bit, therefore it’s 64-bit.

              • Buffalox@lemmy.world
                link
                fedilink
                English
                arrow-up
                1
                arrow-down
                6
                ·
                edit-2
                9 months ago

                yes they have, and that’s what the vast majority of people mean when they say a CPU is 32-bit or 64-bit

                Nobody ever called the purely 8 bit Motorola M6800, MOSTech 6502, Zilog Z80, ot the Intel 8080 16 bit computers for having a 16 bit address bus. They were 8 bit instruction and data bus, and were called 8 bit chips. The purely 16 bit Intel 8086 wasn’t called a 20 bit CPU for having a 20 bit Address bus, it was called a 16 bit CPU for having 16 bit instruction set and databus. Or the Motorola M68000 a 24 bit CPU for having a 24 bit adress bus, it was a 32 bit CPU for having a 32 bit instruction set and databus.

                I have no idea how you are upvoted, because your claim tha CPUs are called by their address bus bit length is decidedly false.
                The most common is to use the DATA-bus or instruction set, and now also the instruction decoder and other things, because the complexity has evolved.

                Back in the day, it was mostly instruction set, then it became instruction set / DATA-bus. Today it’s way way more complex, and we may call it x86-64, but that’s the instruction set, the modern x86-64 CPU is not 64 bit anymore. They are hybrids of many bit widths.

                Show me just ONE example of a CPU that was called by its address bus.

                https://people.ece.ubc.ca/edc/379.jan2000/lectures/lec2.pdf

                Tell me when 8086 and 8088 were called 20 bit CPU’s!!

                https://www.alldatasheet.com/datasheet-pdf/view/82483/MOTOROLA/MC6800.html

                The 6800 was an 8 bit CPU with 16 bit Adress bus as was the 6502/6510.

                https://en.wikipedia.org/wiki/Motorola_68000

                The 68000 is here correctly called 16/32 because it’a a 16 bit DATAbus and 32 bit instruction set.
                The Address bus is 24 bit, but never has a CPU been called 20 ot 24 bit, despite many CPU’s have had address busses of that length.

                • tekato@lemmy.world
                  link
                  fedilink
                  English
                  arrow-up
                  4
                  arrow-down
                  2
                  ·
                  9 months ago

                  I guess you know more about hardware nomenclature Linux kernel developers, because they call modern Intel/AMD and ARM CPUs amd64 and aarch64, respectively.

                  • Buffalox@lemmy.world
                    link
                    fedilink
                    English
                    arrow-up
                    1
                    ·
                    edit-2
                    9 months ago

                    AMD64 is the name of the instruction set they program to, it has nothing to do with how many bit the CPU is. Obviously the core instruction set is 64 bit, but as I’ve tried to explain, a chips bit width is not realistically determined by instruction set alone anymore.

                    Although they are almost identical, the equivalent Intel is called i64.
                    AArch64 Is the Arm Architecture family 64, again the instruction set you program for.

    • frezik@midwest.social
      link
      fedilink
      English
      arrow-up
      17
      ·
      9 months ago

      It was also a big surprise when Intel just gave up. The industry was getting settled in for a David v Goliath battle, and then Goliath said this David kid was right.

      • Buffalox@lemmy.world
        link
        fedilink
        English
        arrow-up
        14
        ·
        9 months ago

        Yes, I absolutely thought Intel would make their own, and AMD would lose the fight.
        But maybe Intel couldn’t do that, because AMD had patented it already, and whatever Intel did, it could be called a copy of that.

        Anyways it’s great to see AMD finally is doing well and finally is profitable. I just never expected Intel to fail as badly as they are? So unless they fight their way to profitability again, we may be in the same boat again as we were when Intel was solo on X86?

        But then again, maybe x86 is becoming obsolete, as Arm is getting ever more competitive.

        • frezik@midwest.social
          link
          fedilink
          English
          arrow-up
          9
          ·
          9 months ago

          Right, I think the future isn’t Intel v AMD, it’s AMD v ARM v RISC-V. Might be hard to break into the desktop and laptop space, but Linux servers don’t have the same backwards compatibility issues with x86. That’s a huge market.

    • Valmond@lemmy.world
      link
      fedilink
      English
      arrow-up
      3
      ·
      9 months ago

      I hated that you had to choose, virtualization or overclocking so much. Among a lot of other forced limitation crap from intel.

      A bit like cheap mobile phones had a too small ssd and buying one at least “normal” sized bumped everything else (camera, cpu, etc) up too, including price ofc.