Originally posted by: koitsu
Originally posted by: fbrdphreak
Now let's not make a mountain out of a mole-hill. With modern OOE architecture, it is pretty unlikely for the data needed by Core 1 to be in L1 cache of Core 2.
The way I understand CPU architecture (and admittedly I come from a purely CISC-based single-CPU background), the L1 caches on Core#1 and Core#2 are completely independant of one another.
The way I understand the Errata, what you've described is not what's happening. The problem explicitly happens when there's an L1 cache miss and L2 is relied upon. That's the part that's interesting.
What the errate is describing is that C1 undergoes an L1 miss. It goes to the shared L2, and by some miracle (dunno how) it finds out the data it needs is stored in C2's L1. So it fetches from C2-L1 over to C1-L1, but the data is being/has been modified in L1 and while the address is what C1-L1 needs, the data is different. Thus C1-L1 doesn't get the data it needs and you have a bug, a potentially unstable one.
Frankly I'd imagine this is going to be a one-in-a-million bug.
I disagree. Do you realise how many cache operations go on in a processor within 1 physical second of time? Hundreds of thousands. Do the math.
I do know how man cache operations go on. I tested dozens of cache configurations tracing numerous different operations (C compiling for example) and measured hits/misses/etc. I also studied cache execution and operation. There are measures in place to prevent data hazards like this and from what I can tell, the only reason this hazard exists is because Conroe can fetch data from another core's L1 and I'd imagine that isn't accounted for in standard architecture.
Here's the actual text instead of someone's paraphrasing:
I "paraphrased" for those who aren't familiar with low-level architecture. I come from a pure assembly and machine language background, so I did my best to explain the situation as I understand it.
I wasn't nagging you on that, I was giving the people the straight facts. Stop getting so defensive
Honestly I think Intel is just covering their ass as technically the architecture could allow a data hazard like that, but frankly the way things are processed today I doubt you'd ever see C1 trying to reference data in C2's L1 while it is being modified.
Again, I don't think either CPU can access one another's L1 directly. If you have an architecture diagram for the Core 2 Duo, I'd love to see it, as I could be flat-out wrong. But again, this problem happens when there's a L1 cache **miss** (that means the data being fetched is not in the local Core's cache, which relies on L2).
I'll happily admit that I am NOT very familiar with SMP architecture on x86.
I'm not sure how it get's the other core's L1 info either. I'd imagine it is some kind of reverse fetch that can be performed since they share the same L2, but I really don't know for sure. What I do know is that it is implied in the errata that a core can fetch data from the other core's L1.
EDIT It is funny how quickly the new sheep will turn on their new master
This comment may have been for others... but in my case: i'm a complete and total Intel fanboy, and have been up until the Prescott days (400 watt draw? NO THANKS). I've been aching to switch back to Intel CPUs -- and not because of the CPU, but because of Intel chipsets being reliable (compared to NF4 and AMDs laughing-stock-of-a-chipset). It just so happened that the Core 2 Duos came out, and blew away the competition -- while simultaneously drawing less power than their AMD competitors.
My current system is an X2 3800+. I'm happy with it, but not very thrilled about the NF4 chipset. I don't like the weird SATA2 bugs it has, and nVidia's chipset drivers are atrocious (not to mention, hardly updated, and include no changelog from nVidia).
For now, my GA-965P-DS3 will sit in its box until a newer CPU stepping is available and Intel marks this particular errata as fixed in that stepping.
Again, the comment was just a remark on how a lot of people here switched to Intel and it is interesting to watch the tides change