143 points
*

We do, depending on how you count it.

There’s two major widths in a processor. The data register width and the address bus width, but even that is not the whole story. If you go back to a processor like the 68000, the classic 16-bit processor, it has:

  • 32-bit data registers
  • 16- bit ALU
  • 16-bit data bus
  • 32-bit address registers
  • 24-bit address bus

Some people called it a 16/32 bit processor, but really it was the 16-bit ALU that classified it as 16-bits.

If you look at a Zen 4 core it has:

  • 64-bit data registers
  • 512-bit AVX data registers
  • 6 x 64-bit integer ALUs
  • 4 x 256-bit AVX ALUs
  • 2 x 128-bit data bus to DDR5 (dual edge 64-bit)
  • ~40-bits of addressable physical RAM

So, what do you want to call this processor?

64-bit (integer width), 128-bit (physical data bus width), 256-bit (widest ALU) or 512-bit (widest register width)? Do you want to multiply those numbers up by the number of ALUs in a core? …by the number of cores on a piece of silicon?

Me, I’d say Zen4 was a 256-bit core, but you could argue any of the above numbers.

Basically, it’s a measurement that lost all meaning so people stopped using it.

permalink
report
reply
18 points
*

I would say that you make a decent argument that the ALU has the strongest claim to the “bitness” of a CPU. In that way, we are already beyond 64 bit.

For me though, what really defines a CPU is the software that runs natively. The Zen4 runs software written for the AMD64 family of processors. That is, it runs 64 bit software. This software will not run on the “32 bit” x86 processors that came before it ( like the K5, K6, and original Athlon ). If AMD released the AMD128 instruction set, it would not run on the Zen4 even though it may technically be enough hardware to do so.

The Motorola 68000 only had a 16 but ALU but was able to run the same 32 bit software that ran in later Motorola processors that were truly 32 bit. Software written for the 68000 was essentially still native on processors sold as late as 2014 ( 35 years after the 68000 was released ). This was not some kid of compatibility mode, these processors were still using the same 32 bit ISA.

The Linux kernel that runs on the Zen4 will also run on 64 bit machines made 20 years ago as they also support the amd64 / x86-64 ISA.

Where the article is correct is that there does not seem to be much push to move on from 64 bit software. The Zen4 supports instructions to perform higher-bit operations but they are optional. Most applications do not rely on them, including the operating system. For the most part, the Zen4 runs the same software as the Opteron ( released in 2003 ). The same pre-compiled Linux distro will run on both.

permalink
report
parent
reply
14 points

I gave up trying to figure out what the “bitness” of CPUs were around the time the Atari Jaguar came out and people described it as 64 bit because it had 32 bit graphics chip plus a 32 bit sound chip.

It’s been mostly marketing bollocks since forever.

permalink
report
parent
reply
4 points

The Jaguar lied with the truth, and I say this as someone who still owns one.

permalink
report
parent
reply
14 points
*

At less than a tenth the size, this is actually a better explanation than the article. Already correcting the fact that we do at the very beginning.
If you absolutely had to put a bit width on the Zen 4, the 2x128 bit data bus is probably the best single measure totaling 256 bit IMO.

permalink
report
parent
reply
4 points

Even then, at what point do you measure it? DDR interface is likely very much narrower than the interfaces between cache levels. Where does the core end and the memory begin?

permalink
report
parent
reply
5 points

Yes you are 100% right, and I did consider level 3 cache as a better measure, because that allows communication between cores without the need to go through RAM, and cache generally has a high hit rate. But this number was surprisingly difficult to find, so I settled on the data bus.
Anyways it would be absolutely fair to call it 256bit by more than one measure. But for sure it isn’t just 64 bit, because it has 512 bit instructions, so the instruction set isn’t limited to 64 bit. Even if someone was stubborn enough to claim the general instruction set is 64 bit, it has the ability to decode and execute 2 simultaneous 64 bit instructions per core, making at least 128 bit by any measure.

permalink
report
parent
reply
7 points

Not to mention most “8-bit” CPUs had a 16 bit address bus.

permalink
report
parent
reply
7 points

Yes, because 256 memory locations is a bit limiting.

permalink
report
parent
reply
6 points

So, you’re saying it already goes to ‘11’?

permalink
report
parent
reply
5 points

With AMX, now we have 1024 bit processors!

permalink
report
parent
reply
5 points

I’m surprised some marketing genius at the intel/amd hasnt started using the bigger numbers

permalink
report
parent
reply
5 points

I expect the engineers are telling the marketing people “No! You can’t do that. You’ll scare everyone that it’s incompatible.”

permalink
report
parent
reply
1 point

32bits is compatible with 64bits, why wouldn’t 128 bits be too?

permalink
report
parent
reply
1 point
*

Very well said. I think you make your point quite effectively!

permalink
report
parent
reply
-1 points

I see it as the number of possible instructions.

As in, 8 bit 8085 had 28 possible instructions, 32 bit ones had 232 and already had enough possible combinations that we couldn’t come up with enough functions to fill the provided space.

CC BY-NC-SA

permalink
report
parent
reply
5 points

So “instruction encoding length”.

I don’t think that works though. For something like RISC-V, RV64 has a maximum 32-bit instruction encoding. For x86-64 those original 8-bit intructions still exist, and take up a huge part of the encoding space, cutting the number of n-bit instructions to more like 2^(n-7)

permalink
report
parent
reply
0 points

RV64 has a maximum 32-bit instruction encoding

I kinda expected that to happen, since there’s already enough to fit all required functions. So yeah, even this is not a good enough criteria for bit rating.

those original 8-bit intructions still exist, and take up a huge part of the encoding space, cutting the number of n-bit instructions to more like 2^(n-7)

err… they are still instructions, right? And they are implemented. I don’t see why you would negate that from the number of instructions.

permalink
report
parent
reply
129 points

Is this a question?

We haven’t even come close to exhausting 64-bit addresses yet. If you think the bit number makes things faster, it’s technically the opposite.

permalink
report
reply
93 points

It’s a link to an article I found interesting. It basically details why we’re still using 64-bit CPUs, just as you mentioned.

permalink
report
parent
reply
19 points

Comment OP must never learn anything new. Good find.

permalink
report
parent
reply
67 points

We don’t even have true 64-bit addressing yet. x86-64 uses only 48 bits of a 64 bit address and 64-bit ARM can use anything between 40 and 52 depending on the specific configuration.

permalink
report
parent
reply
-66 points
Deleted by creator
permalink
report
parent
reply
61 points

I think they were just adding to the conversation

permalink
report
parent
reply
36 points

I actually added detail that wasn’t already discussed in the article?

permalink
report
parent
reply
5 points
Removed by mod
permalink
report
parent
reply
35 points

Yeah, 64 bit handles almost all use cases we have. Sometimes we want double the precision (a double) or length (a long), but we can do that without being 128-bit. It’s harder to do half. Sure, it’d be slightly faster for some things, but it’s not significant.

permalink
report
parent
reply
22 points

And you can get 128-bit data to the CPU, so those things can be fast if we need them to be.

permalink
report
parent
reply
21 points

And we have wide instructions that can process this data, such as for multimedia applications.

Addressing and memory size has been the historic motivator for wider registers, but it’s probably not going to be in my lifetime that I see the need for 128.

permalink
report
parent
reply
9 points

There’s plenty of instructions for processing integers and fp numbers from 8 bits to 512 bits with a single instruction and register. There’s been a lot of work in packed math instructions for neural network inference.

permalink
report
parent
reply
34 points

Is this a question?

For the people who don’t know the answer? Yes.

Not everything you see is intended for your consumption. Let people enjoy learning things.

permalink
report
parent
reply
16 points
*

I totally agree. I know a teacher who who likes to say:

“I believe there really is no such thing as a dumb question. As long as it’s an honest question (not rhetorical or sarcastic), then it’s a genuine request for more information. So even if it’s coming from a place of extreme ignorance, asking a question is an attempt to learn something, and the effort should be applauded.”

permalink
report
parent
reply
3 points

Learned from the teacher. Thanks.

permalink
report
parent
reply
6 points

Is this a question?

Woah, meta.

Yes, it is.

This is not a question, though.

permalink
report
parent
reply
114 points

We used to drive bicycles when we were children. Then we started driving cars. Bicycles have two wheels, cars have four. Eight wheels seems to be the logical next step, why don’t we drive eight-wheel vehicles?

permalink
report
reply
91 points

Lobbying by the auto corporations obviously. More wheels is more better

permalink
report
parent
reply
2 points

So VM? Actually makes sense.

permalink
report
parent
reply
1 point

Huh, I’ve been in that train. Sudden, random hit of Nostalgia.

permalink
report
parent
reply
58 points

Funny how we are moving back to bicycles, as cars aren’t scalable solution.

permalink
report
parent
reply
13 points

Bus is, though

permalink
report
parent
reply
6 points

More wheels!

permalink
report
parent
reply
4 points

But we aren’t really.

permalink
report
parent
reply
2 points

We should be.

permalink
report
parent
reply
43 points

Some of us drive 18-wheeled vehicles.

permalink
report
parent
reply
10 points
permalink
report
parent
reply
1 point

That’s a lot of wheels. I’d hate to have to inflate all those tires.

permalink
report
parent
reply
19 points

See here’s where this analogy is perfect. Sometimes a bicycle is the best solution, just like how sometimes a microcontroller is the best solution. You use the tool you need for the job, and American product design is creating way too many “smart” products just like how American town planning demands too many cars. Bring back the microcontroller! Bring back the bike!

permalink
report
parent
reply
6 points

I mean we do right?

Trains are typically 2 x 4 bogies.

But then high speed rail have fewer wheels due to friction.

permalink
report
parent
reply
64 points

32 bit CPU’s having difficulty accessing greater than 4gb of memory was exclusively a windows problem.

permalink
report
reply
43 points

You still had a 4GB memory limit for processes, as well as a total memory limit of 64GB. Especially the first one was a problem for Java apps before AMD introduced 64bit extensions and a reason to use Sun servers for that.

permalink
report
parent
reply
-3 points

Yeah I acknowledged the shortcomings in a different comment.

It was a duct take solution for sure.

permalink
report
parent
reply
2 points

Your other posts didn’t reply to your claim that it is a Windows only problem. Linux did and some distros (Raspberry Pi) have the same limitations as Windows 95.

32 bit Windows XP got PAE in 2001, two years after Linux. 64 bit Windows came out in 2005.

permalink
report
parent
reply
15 points

Interesting! Do you have a link to a write up about this? I don’t know anything about the windows memory manager

permalink
report
parent
reply
24 points
*

Only slightly related, but here’s the compiler flag to disable an arbitrary 2GB limit on x86 programs.

Finding the reason for its existence from a credible source isn’t as easy, however. If you’re fine with an explanation from StackOverflow, you can infer that it’s there because some programs treat pointers as signed integers and die horribly when anything above 7FFFFFFF gets returned by the allocator.

permalink
report
parent
reply
3 points

It’s a silly flag to use as it only works when running 32-bit Windows applications on 64-bit Windows, and if you’re compiling from source, you should also have the option to just build a 64-bit binary in the first place. It made a degree of sense years ago when people actually used 32-bit Windows sometimes (which was usually just down to OEMs installing the wrong version on prebuilt PCs could have supported 64-bit) if you really wanted to only have one binary or you consumed a precompiled third party library and had to match its architecture.

permalink
report
parent
reply
17 points

Intel PAE if the answer, but it still came with other issues, so 64 was still the better answer.

Also the entire article comes down to simple math.

Bits is the number of digits.

So like a 4 digit number maxes out at 9999 but an 8 digit number maxes out at 99 999 999

So when you double the number of digits, the max size available is exponential. 10^4 bigger in this case. It just sounds small because you’re showing that the exponent doubles.

10^4 is WAY smaller than 10^8

permalink
report
parent
reply
15 points
*

It was actually 3gb because operating systems have to reserve parts of the memory address space for other things. It’s more difficult for all 32bit operating systems to address above 4gb just most implemented additional complexity much earlier because Linux runs on large servers and stuff. Windows actually had a way to switch over to support it in some versions too. Probably the NT kernels that where also running on servers.

A quick skim of the Wikipedia seems like a good starting point for understanding the old problem.

https://en.m.wikipedia.org/wiki/3_GB_barrier

permalink
report
parent
reply
12 points

Wow they just…disabled all RAM over 3 GB because some drivers had hard coded some mapped memory? Jfc

permalink
report
parent
reply
14 points

I’m not sure what you are talking about. Linux got PAE in 1999. Windows XP got PAE in 2001.

permalink
report
parent
reply
10 points

Not really, Raspberry Pi had that same issue with its 32 bit distros.

permalink
report
parent
reply
36 points

The comments on this one really surprised me. I thought the kinds of people who hang out on XDA-developers were developers. I assumed that developers had a much better understanding of computer architecture than the people commenting (who of course may not be representative of all readers).

I also get the idea that the writer is being vague not to simplify but because they genuinely don’t know the details, which feels even worse.

permalink
report
reply
29 points

I think it’s a D-tier article. I wouldn’t be surprised if it was half gpt. It could have been summarized in a single paragraph, but was clearly being drawn out to make screen real-estate for the ads.

permalink
report
parent
reply
4 points

The majority of articles I come across are exactly like this, needlessly drawing everything out to maximize word count and, thus, maximize ad space.

permalink
report
parent
reply

Technology

!technology@lemmy.world

Create post

This is a most excellent place for technology news and articles.


Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related content.
  3. Be excellent to each another!
  4. Mod approved content bots can post up to 10 articles per day.
  5. Threads asking for personal tech support may be deleted.
  6. Politics threads may be removed.
  7. No memes allowed as posts, OK to post as comments.
  8. Only approved bots from the list below, to ask if your bot can be added please contact us.
  9. Check for duplicates before posting, duplicates may be removed

Approved Bots


Community stats

  • 17K

    Monthly active users

  • 12K

    Posts

  • 555K

    Comments