Wednesday, August 28th 2019
AMD to Cough Up $12.1 Million to Settle "Bulldozer" Core Count Class-Action Lawsuit
AMD reached a settlement in the Class Action Lawsuit filed against it, over alleged false-marketing of the core-counts of its eight-core FX-series processors based on the "Bulldozer" microarchitecture. Each member of the Class receives a one-time payout of USD $35 per chip, while the company takes a hit of $12.1 million. The lawsuit dates back to 2015, when Tony Dickey, representing himself in the U.S. District Court for the Northern District of California, accused AMD of false-marketing of its FX-series "Bulldozer" processor of having 8 CPU cores. Over the following four years, the case gained traction as a Class Action was built against AMD this January.
In the months that followed the January set-up of a 12-member Jury to examine the case, lawyers representing the Class and AMD argued over the underlying technology that makes "Bulldozer" a multi-core processor, and eventually discussed what a fair settlement would be for the Class. They eventually agreed on a number - $12.1 million, or roughly $35 per chip AMD sold, which they agreed was "fair," and yet significantly less than the "$60 million in premiums" consumers contended they paid for these processors. Sifting through these numbers, it's important to understand what the Class consists of. It consists of U.S. consumers who became interested to be part of the Class Action, and who bought an 8-core processor based on the "Bulldozer" microarchitecture. It excludes consumers of every other "Bulldozer" derivative (4-core, 6-core parts, APUs; and follow-ups to "Bulldozer" such as "Piledriver," "Excavator," etc.).Image Credit: Taylor Alger
Source:
The Register
In the months that followed the January set-up of a 12-member Jury to examine the case, lawyers representing the Class and AMD argued over the underlying technology that makes "Bulldozer" a multi-core processor, and eventually discussed what a fair settlement would be for the Class. They eventually agreed on a number - $12.1 million, or roughly $35 per chip AMD sold, which they agreed was "fair," and yet significantly less than the "$60 million in premiums" consumers contended they paid for these processors. Sifting through these numbers, it's important to understand what the Class consists of. It consists of U.S. consumers who became interested to be part of the Class Action, and who bought an 8-core processor based on the "Bulldozer" microarchitecture. It excludes consumers of every other "Bulldozer" derivative (4-core, 6-core parts, APUs; and follow-ups to "Bulldozer" such as "Piledriver," "Excavator," etc.).Image Credit: Taylor Alger
291 Comments on AMD to Cough Up $12.1 Million to Settle "Bulldozer" Core Count Class-Action Lawsuit
Here's what the individual dies look like ("core replication is obvious"):
In the case of Bulldozer, each "module" only contained one complete processor (aka core). That's why in the literature, it's called a "conjoined-core." "conjoined-core" is referring to "chip"-level "core" which is synonymous with "processor" consistent with Pentium D and Athlon 64 X2 (which were out at the time).
"adjacent cores" is referring to execution "cores" which share resources in a "conjoined-core." These do not qualify as "processors."
They don't mean two execution cores or waffles or anything else, they mean just two cores.
"Conjoined-core" refers to this: "Adjacent cores" refers to this: The use of the phrase "execution core" is *rare* outside of conjoined-core literature.
So you see the problem? Bulldozer "execution cores" lack the hardware to decode AMD64 instructions which is a function of the "core" (aka processor). "Execution cores" as defined in Bulldozer lack the hardware necessary to be considered a "core:" they are merely "execution units." ...and these are the wheels the turn the gears of false advertising.
They simply do not ever make a distinction between the kinds of cores that they are talking about because they don't have to, a core is a core in any circumstance. "Adjacent" simply refers to the pair of cores that share the resources, nothing less nothing more.
Have these quotes in which it's crystal clear what they mean by those adjacent cores in relation to the traditional cores : "Connecting the FPU to the left and right core.". An FPU classifies as an execution core, clearly they don't mean it's shared between other execution cores. There you go, each core fetches instructions, in an alternating fashion. It cannot get any more obvious that this, they mean cores as in not execution cores. An execution core can't fetch instructions on it's own.
You are simply wrong, end of story.
If the other's intent was truly to say monolithic-core and conjoined-core were indistinguishable, they would have used the plural form of core: "cores." They do not, because they're not independent processors; they are in fact very dependent on each other. The two combined, therefore, make an indivisible new entity: a conjoined-core.
"left and right core" are referring to execution units, not the whole "conjoined-core."
"A core can alternate accesses between the two banks" is referring to the "conjoined-core" where the "two banks" are the "execution units."
As I said, and you just demonstrated again, the article is using two definitions of "core" interchangeably. It's a technical document that assumes the reader will understand the difference.
You are out of touch with the technical aspects of this papers.
1) x86 which is what the "conjoined-core" exposes to the system.
2) microOPs which is what the "adjacent cores" process and aren't directly accessible.
They both fetch their respective instructions. This is probably why they love using two meanings of "core." But only one of them matters to the public.
Not that it matters. In Steamroller, they split instruction decode too but the "module" is still a "conjoined-core" sharing resources--aka a "core" (not plural).
Remember how Sun designed a conjoined-core on steroids? Why do you think they never released it? My guess: poor performance like AMD saw. Even after four generations of conjoined-core designs, AMD abandoned it entirely. Sun's chip likely had the same problems AMD's chip did, but four fold, because they shared a crapload more than AMD did. There was no market for a chip that performs that badly, so they never launched it. The cost to support it (hardware platforms and software) would have compounded the losses.
You've battled for the last couple of pages to prove execution cores can't be cores because they are just "glorified calculators". But now what do you know, turns out a calculator can even fetch instructions from memory, hmm. It's settled, they are cores.
Anyway, the x86 decoder (as like all processors), hands the microOPs to the execution units on a silver platter known as L1 Instruction Cache. You know where I'm going with this.
"conjoined-core" is very, very different from "adjacent cores."
That makes it a dual core.
Dual 128-bit FMAC pipes.
Plus the two integer clusters, four. Four execution units, two for integer, two for floating point.
If you want to brake them down fine, you'd have :
- 2x two ALUs
- 2x two AGUs
- 2x 128-bit FP units
But they are grouped like that for a reason, because each integer cluster can be used by one thread and the two FP units can either be shared or used by one thread in the case of 256-bit instructions.
4 ALUs (EX/MUL pipeline + EX/DIV pipeline * 2)
4 AGUs (AGen pipeline * 4)
2 128-bit MMX pipelines
2 128-bit FMAC pipelines
That's a total of 12 pipelines for each Bulldozer conjoined-core. Each thread has 4 pipelines (2 x ALU + 2 x AGU) dedicated to it. When counting the FPU, pipeline usage can expand up to 8 when performing an AVX + 2 MMX instruction. In these instances, the other thread is deprived of progress on FPU tasks.
Still don't know why you insist on carrying on with this train of thought: the decoder and fetcher in Bulldozer is undeniably shared and "cores" don't share logic. It's a "conjoined core" which means the whole of it is a "core," not specific components as AMD would have you believe. AMD intentionally called the execution units "cores" to mislead the public in respect to its performance (overselling the capabilities of its product).
The problem here is that you are getting confused because your definitions of what is an execution core or whatever fall into a strange twilight zone. It's neither a core nor an ALU, the only thing left it's a collection of ALUs/FPUs of which a Bulldozer module has 4.
Everyone either thinks in terms of cores or execution units (ALUs or FPUs). You are making this unnecessarily difficult in your pursuit of differentiating cores from anything else. Because even though logic is shared multiple instructions end up being processed. That's the whole point, get work done with less logic.
Oh look, Zen looks similar:
Look at the text below the diagram: AMD is referring the whole (from Fetch to L2) as the core (not just the integer execution unit). AMD doesn't get to change the rules for its own advantage on Bulldozer. It was well understood what a "core" was before and after Bulldozer debuted.
Oh look! Zen even has 2 x 256-bit FMACs + 1 x MMX per core! Gee, I wonder why Bulldozer gets dragged through the mud for being pokey. Maybe it's because AMD *really* skimped on floating-point performance in the name of supporting more integer-heavy threads? Considering Zen's design, it's clear AMD believed this was a mistake in Bulldozer. These phrases are not my own. They're phrases used in different literature to describe the same circuits. Why I keep changing phrasing is to stay consistent with the sourced documents. To be perfectly clear: "integer cluster" = "execution core" = "adjacent core" which is not to be confused with the singular "core" which is synonymous with "processor."
The best way to describe Bulldozer is thusly:
FX-8350 is a quad-core processor with each core accepting two threads. The integer payload of each thread is executed by a dedicated integer cluster while the floating-point payload is handed off to the shared floating-point cluster. The result of this design is accelerated performance in multi-threaded, integer-heavy scenarios like 7-zip compression; however, any workload that strains the processor cores' shared resources (like AVX), performance tanks.
I've demonstrated repeatedly, from multiple angles, with multiple sources what a "core" is and AMD redefined it for personal gain; they also agreed to not do it again by settling. What more is there to discuss?
Bulldozer has 8 cores. You've only speculated what you think a core is by constantly inventing new definitions and rules outside the subject and context in which this was discussed, that's a big difference. And sources ? Don't make me laugh, you don't get to say that when your response to actual material that proved my point was "they lied".
Ryzen 3000 Boost Survey