> This is going the be the first in a series of articles on CPU architectures. We’re picking up where Real World Tech left off with its microarchitecture deep dives. And we’re going to be doing them with the advantage of 20-20 hindsight, and hardware to test on.
I really miss this part of the cybergeekdom. Staring deeply at minor/major tweaks to architecture ("oh they switched from 4-way to 8-way associative cached!") was such a very real very physical very truthful part of computing for so long. We all got to see what was happening.
Today if you buy a Google laptop or phone, they won't tell you what generation or model cpu you are getting (Pixelbook Go's tech specs: "Intel m3"), what clocks it has. It's such a different age from where we were. It's so hard to believe that we can sell a laptop & have no idea what powers it. It makes sense, but it's still a system shock everytime to me.
I think it makes sense only from the perspective of a company who wants to profit as much as possible off the ignorance of its users. They have a real incentive to obfuscate the truth and "abstract it away" (to use the politically-correct language) so they can then make changes and do things like this:
There were also plenty of details released on Google’s Tensor SoC in the recent Pixels. Of the top of my head, I know it uses two X1 cores and is manufactured on a Samsung process.
How did you/we find out it uses a 8100Y? What was the earliest date this was known? Was this knowable before the first devices started arriving at users doors?
ARM in general has been pretty opaque. This article shows so wonderfully precisely how many details we used to be in tune to. There's so many buffers, caches, lookups, &c. We used to be able to know it all: the cpu makers used to often tell us what the architecture was, so we could make pretty pictures like this. Comapratively, knowing something is a Cortex A53 will tell you some of this general picture, but I think a decent bit of it is configurable too.
Often we can go do the basic research, find out what chip a phone uses, go lookup L2 and L3 cache sizes, eventually (often after release, once people can test & find out). I don't know if any of these are knowable before devices start arriving, to be honest. I don't know how many more tuneable parameters a Cortex A53 has. Ex: can the caches have different associativities or are those fixed?
Since we've talked about Tensor some, it might be interesting to go review & compare this article versus what Anandtech (a pretty fine deep-tech site) has been able to unearth on Tensor[1]. It's not clear what all their sources are, but to be fair it's not immediately obvious what cheese & chips's sources were here. The article itself cites a code-drop that they seemingly mined to find a bunch of the specifics. But again, I just have no idea how many parameters are tuneable- we know already from above Cortex A53 <> Cortex A53, that at least cache size can vary, but no idea if cache configuration or parameters can vary. The article itself highlights that not only do they not understand the memory caching subsystem, for example, they don't even know if it's the same or different than the Exynos:
> Google also integrated 8MB of system cache, and for me it isn’t exactly clear if this is the same IP Samsung uses on the Exynos 2100. Seemingly they’re both 8MB, but I’m leaning towards saying that it’s a different IP, or at the very least a different version of the IP, as there are some real differences in the way it’s architected and how it behaves.
I think of the Alex Russell tweets about Cortex A53[2], which can be anything from an awful forsaken terrible chip to an ok reasonable chip. Depending on how it's built up. Consumers generally just don't know much. Even the educated ones, in ARM land, have enormous fantastic limits of knowability: we take so much on faith. We can't assess what we are buying. ARM is opaque. Oh and it's also still sometimes selling us a 10 year old core (A53's decennial is October. Perhaps the upcoming A510 is "A5-10", a celebration of yet another decade of the same core? Frowny face.).
I generally agree with your sentiment here, but one thing I will point out is that this stuff isn't always totally transparent with AMD and Intel either. Intel and AMD release a lot of technical details about new and upcoming microarchitectures, but still it isn't until the chips are released and people run specific benchmarks on them that details emerge. For example, if you've done any x86 micro-optimization you've probably used Agner Fog's instruction tables.^[1] These instruction tables and the uop breakdowns are generated empirically, so they aren't updated until after someone has real hardware to test with. Likewise for things like the branch predictor measurements, BTB latency, etc. presented in this article, these come from empirical testing not from data sheets disseminated by Intel.
Things are certainly much worse with ARM partly because, as you point out, ARM is meant to be high customizable by vendors. Additionally there's an increasing trend of vendors creating even more highly differentiated ARM CPUs. At the same time though it's not that easy for users to empirically measure these CPUs the same way they can x86 hardware. With a regular Linux distro and a desktop x86 CPU it's pretty straightforward to set up some measurement environment for code by doing things like creating a dedicated cpuset for your tests and disabling frequency scaling. On the other hand I have no idea how I would do that on my Pixel 6.
The same site that wrote this article recently did a breakdown of Amazon's Graviton 3 chips: https://chipsandcheese.com/2022/05/29/graviton-3-first-impre... . That's because you can actually set up a normal Linux environment on an AWS instance w/ Graviton CPUs and run benchmarks to figure out details about their microarchitecture, not because Amazon released detailed spec sheets on the CPUs.
Again I agree with your overall sentiment and I also wish things were more transparent. But learning about the details of these CPUs using clever micro benchmarks has been the norm forever. If you're a huge purchaser (Google, Facebook, Amazon, etc.) you can get access to a lot more information but this hasn't really ever been an option for consumers.
Fully agreed everywhere, thanks. There used to be a little more bragging about the enhancements up front in x86 land, but yes, a lot of it comes down to reverse engineering.
The one place I'd redouble my scorn is that so many modern devices don't even list their chip, not even it's generation. Google in particular has been a major force in reducing the "tech specs" down to "Intel i5" or some-such preposterously useless "description". Is this a 10W part? A 35W part? What generation? How many cores?
But absolutely. A huge amount of these details have, for a long time, been carefully tested for &- I lack a better term- reverse-engineered, from shipped devices. But historically we'd at least know, before purchasing, what core it was we were purchasing.
but one thing I will point out is that this stuff isn't always totally transparent with AMD and Intel either
Indeed. Trying to figure out which integrated GPU an AMD laptop chip has and its specs is quite difficult. I ran into that problem even when I had the laptop in my hands.
As computing has matured, we have added layers of abstraction. All of what you describe is still there if you want it. Most people have moved to a different layer of abstraction, however.
Think of the people who grew up manipulating network data before the OSI model. They probably felt the same way when later 4 was abstracted away.
Sadly over the last ~10 years, a lot of good tech journalists have left the space: Anand went to Apple; David Kanter no longer posts to RWT (though the forums remain a goldmine); Andrei Frumusanu and Ian Cutress left Anandtech - they are both consultants now.
Happy to see Chips and Cheese carry on the legacy!
I think some of it is that it really doesn't matter anymore. There was a time when every tweak mattered, when every little detail could impact the way the machine worked... but that's not true, for most people, anymore. Sure, they'll still call out the big things that might matter - this phone ships with our new super AI chip, this tablet adds extra low-power cores to prolong battery, this box has the latest video codecs in hardware - but really, you could take the CPU out of my last phone and drop it into my current phone and I wouldn't notice. Heck, if not for binary compatibility, you could take the CPU out of my last phone and drop it into my current laptop and I'd barely notice.
Yeah, it is also a matter of the changes having a smaller impact. “Feature X improved performance by 1%” or “Removing feature Y cost 2% performance, but freed up the transistors for feature Z for a net 0.5% percent win” are the kind of changes we get these days
I've been trying to find out the "manufacturing nodes size ?"(like the nm size) for things like micro-controllers and "RAD Hardened CPUs" just cause it will be fun to compare, most of the docs/spec sheet I casually found doesn't mention any of this :/
The issue is not that it's easy to work out, the issue is that these manufacturers have decided that fine grained specs aren't important. I actually more or less agree with that, although I wish they'd at least indicate generation.
Given the article you are replying to, trying to poo-poo knowing what generation a chip is seems perposterously off base.
Whatever the marketing is or isnt, generation has once again become a very significant indicator of what you'll get or not get. This submission is excellent proof.
How is it off base? Also generation in the context of this article refers to generation as in Star Trek rather than a numbered generation as per se.
Sunny Cove is a name of a microarchitecture whereas (say) Alder Lake is the codename for intel 12th gen which includes 2 microarchitectures one for the big and one for the little core.
This article.is about vast vast vast microarchitectural changes of a huge & epic mature happening in a single chip release.
Your point that this isnt even a generation of change- it's a vast shift im a subgeneration- seems like it only amplifies & further stresses we should at least know a generation. Probably more!!!
The generation is the bit they actually tell the plebs, I am saying that if you can't see the generation for most intel computers you'd have be blind. Intel plaster it all over their marketing. AMD try to they just aren't good at it.
This is a fantastic piece of technical writing. Detailed and clear. Much better than my usual source for this kind of information. Going to have to read more from here!
I really miss this part of the cybergeekdom. Staring deeply at minor/major tweaks to architecture ("oh they switched from 4-way to 8-way associative cached!") was such a very real very physical very truthful part of computing for so long. We all got to see what was happening.
Today if you buy a Google laptop or phone, they won't tell you what generation or model cpu you are getting (Pixelbook Go's tech specs: "Intel m3"), what clocks it has. It's such a different age from where we were. It's so hard to believe that we can sell a laptop & have no idea what powers it. It makes sense, but it's still a system shock everytime to me.