In article <200203292207.g2TM7Fi67491@apollo.backplane.com>, Matthew
Dillon <dillon@apollo.backplane.com> wrote:
> This won't save you from stalls. Whenever one cpu writes to
> the cache, on IA32, it's write-through to main-memory which
> invalidates all other cpu's caches for that cache line.
No, it's not nearly that bad. See section 9.2 of the IA-32 Intel
Architecture Software Developer's Manual, Volume 3 (24547203.pdf from
developer.intel.com). It describes what happens in a couple of
different scenarios, for example:
Beginning with the P6 family processors, if a processor detects
(through snooping) that another processor is trying to access a
memory location that it has modified in its cache, but has not
yet written back to system memory, the snooping processor will
signal the other processor (by means of the HITM# signal) that
the cache line is held in modified state and will preform an
implicit write-back of the modified data. The implicit write-back
is transferred directly to the initial requesting processor and
snooped by the memory controller to assure that system memory has
been updated. Here, the processor with the valid data may pass
the data to the other proces-sors without actually writing it to
system memory; however, it is the responsibility of the memory
controller to snoop this operation and update memory.
John
--
John Polstra
John D. Polstra & Co., Inc. Seattle, Washington USA
"Disappointment is a good sign of basic intelligence." -- Ch鐷yam Trungpa
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-smp" in the body of the message