No, I'm dismissing them because they are an obvious attempt to rationalize your position. That a shared scheduler can operate on independent threads, for example, is irrelevant to the point of what actually constitutes a core.
The definition of what is part of the core varies by who you are talking to (intel, amd, my CS professors, etc) and over time. Early patents related to BD had the core and module terms reversed, so clearly it isn't as cut and dry as you suggest. Traditionally everything that wasn't part of IO, memory controller, and cache hierarchy was part of the core. Integration changes all of that and makes the existing terms ambiguous. If future versions of the bulldozer arch allow separate int cores to work on the same thread or eager execution allows two cores to work on one thread then are we to consider a module only one core?
So each half of the FP unit can work on only half of an AVX instruction while the other half can process something separate? No, I don't think so. To process a 256-bit instruction both halves are obligatory from John's description. They can't process half of an AVX instruction and leave the other half for later.A BD module is functionally the same as two cores, with the added ability to process specific 256b instructions using both 128b FP pipelines of each core simultaneously.
It is quite the opposite. You are saying that you have the only proper definition of core. I am saying the term is ambiguous because there are multiple definitions being used by various people.You seem to be trying to artificially narrow the definition of a core.
Except that one pipeline can't do both halves of an AVX instruction. That would mean that the circuitry for computing all parts of an AVX instruction are present in both halves of the FP unit. That would be counterproductive and defeat the purpose of sharing it in the first place.In fact I even said that a 256b AVX instruction can take two cycles (2 x 128b micro-ops in one pipeline) - and that's not counting the decode, retire, etc.
Like I said, you have set yourself on one definition when, frankly, it is a really ridiculous thing to argue over. I don't see the point of discussing it further. Does a 4870 have 1 core, 160 cores, or 800 cores? What would we call a cpu if it had a hundred INT units, 20 FP units, and one frontend/backend? Who cares. What matters is how a particular architecture works with how we use our computers.




Reply With Quote
Bookmarks