tengiz wrote:dB13 wrote:You are mixing different things here.
I don't think so. То, о чём Вы говорите - это теоретически лучший случай, который я даже не уверен, если где-нибудь на системах с write-back кешами реализован без того, чтобы зависеть от задержки на те самые pending writes.
......
6. Процессор 2 читает ячейку A и видит старое значение, так как прямой механизм когерентности уже не может ничего сделать (опять же, даже если бы и мог) - cacheline, содержащий любые сведения о ячейке A, включая её когерентное состояние MESI, в кеше процессора 1 уже отсутствует.
7. Процессор 1 завершает pending записи в память, включая запись в A, о чём становится известно процессору 2, который инвалидирует cacheline, содержащий A.
Теперь замечание по поводу "если бы даже и мог". Известные мне механизмы когерентности кешей (MESI included) следят за транзакциями на шине памяти - как только кто-то делает обращения к ячейке памяти, все остальные замечают её адрес и если их кеши содержат этот адрес, то делают соответствующие изменения. Запись в память в системах с write-back кешем осуществляется только при фактическом исполнении тех самых pending writes, а не при записи в кеш, поэтому хочешь, не хочешь, а время, пока операции записи болтаются в буфере, реально учитывать приходится.
.
Can you tell where did you work with HW before the current job?
You know too much about HW for a database engine developer.
I wish I knew about databases as you know about CPUs.
You are mistaken in #6, at least on P6 Intel CPU family(PPro,P2, P3).
P6 CPU bus uses a spit transaction bus.
The write buffer keeps MESI tags and participates in the snooping protocol.
In your example there will be an "implicit writeback" bus transaction:
1) CPU2 initiates a read from A
2) CPU1 write buffer gets a snoop hit and provides the cache line containing A
3) This cache line is written SIMULTANEOUSLY to RAM and to CPU2 cache.
BTW, the world A will be provided first regardless of its location in the 32 byte cache line.
The reference: "Pentium Pro and Pentium II System Architecture", Second Edition, By Tom Shanley/MindShare, Addison-Wesley, 0-201-30973-4
I can't find a detailed description of P6 bus protocol on Web.