How Often Does Processor Cache Flush?

User avatar
tengiz
Уже с Приветом
Posts: 4468
Joined: 21 Sep 2000 09:01
Location: Sammamish, WA

Post by tengiz »

uncle_Pasha wrote:Я не собираюсь спорить, т.к. у нас взаимное недопонимание :)

А зачем спорить? Давайте обсуждать и обмениваться информацией - в этом же весь смысл?
PS но ассоциативность все равно ни при чем. "грязная" ячейка не вытеснится до завершения операции записи в память.

Пример процессора можете привести где это так? На последних альфах и на всех последних интелах - "грязная" ячейка "выдавленная" из кеша бесприкословно следует в victim buffer (Alpha) или во write buffer a.k.a. store buffer (Intel).
Cheers
dB13
Уже с Приветом
Posts: 1494
Joined: 08 May 2001 09:01
Location: Silicon Valley

Re: How Often Does Processor Cache Flush?

Post by dB13 »

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, а не при записи в кеш, поэтому хочешь, не хочешь, а время, пока операции записи болтаются в буфере, реально учитывать приходится.
.


:mrgreen: 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. :(

:umnik1: 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.
uncle_Pasha
Уже с Приветом
Posts: 19935
Joined: 30 Aug 2000 09:01
Location: WA

Post by uncle_Pasha »

tengiz wrote:Пример процессора можете привести где это так? На последних альфах и на всех последних интелах - "грязная" ячейка "выдавленная" из кеша бесприкословно следует в victim buffer (Alpha) или во write buffer a.k.a. store buffer (Intel).

Но это не значит, что "грязная" cacheline available на запись до освобождения буфера - завершения записи в память. Даже если вместо буфера будет очередь.

Удачи!
User avatar
tengiz
Уже с Приветом
Posts: 4468
Joined: 21 Sep 2000 09:01
Location: Sammamish, WA

Post by tengiz »

uncle_Pasha wrote:Но это не значит, что "грязная" cacheline available на запись до освобождения буфера - завершения записи в память.

Ну так весь смысл victim cache именно в том, чтобы не случилась дополнительной задержки в случае повторного cache miss попавшего на грязную cacheline. К сожалению, я не могу найти ссылки на толковой материал по этому поводу, а набирать текст из энциклопедии Hennessy о современных компьютерных архитектурах мне неохота - Computer Architecture : A Quantitative Approach by John L. Hennessy, David Goldberg, David A. Patterson.
Cheers
User avatar
tengiz
Уже с Приветом
Posts: 4468
Joined: 21 Sep 2000 09:01
Location: Sammamish, WA

Re: How Often Does Processor Cache Flush?

Post by tengiz »

dB13 wrote:The write buffer keeps MESI tags and participates in the snooping protocol.

Ага, значит реальность заметно хитрее, чем это следует из менее подробных описаний архитектуры. Спасибо!
Cheers
User avatar
tengiz
Уже с Приветом
Posts: 4468
Joined: 21 Sep 2000 09:01
Location: Sammamish, WA

Re: How Often Does Processor Cache Flush?

Post by tengiz »

dB13 wrote:Can you tell where did you work with HW before the current job?
You know too much about HW for a database engine developer.

Академя Наук CCCP, Институт Океанологии. Я там занимался экспериментальной физикой (а именно, подводной акустикой) и мне довольно много приходилось возиться с разработкой нестандартного аналогового и аналогово-цифрового барахла для наших основных занятий. Включая и SW для ввода этих данных, а затем и для высокоскоростной обработки реального времени и эффективного хранения. С самого начала это всё было как бы второстепенным вспомогательным занятием, хотя и критически важным, а потом внезапно оказалось, что подобная чисто инженерная работа может быть безумно интересной и увлекательной. Ну а дальше мне просто повезло - мне посчастливилось участвовать в качестве ключевой персоны в большом количестве совершенно разнородных HW/SW проектов, благодаря чему мне удалось набраться очень разного опыта.
Cheers
dB13
Уже с Приветом
Posts: 1494
Joined: 08 May 2001 09:01
Location: Silicon Valley

Re: How Often Does Processor Cache Flush?

Post by dB13 »

tengiz wrote:Академя Наук CCCP, Институт Океанологии. Я там занимался экспериментальной физикой (а именно, подводной акустикой) и мне довольно много приходилось возиться с разработкой нестандартного аналогового и аналогово-цифрового барахла для наших основных занятий...


И куда только не заносит людей из 24-й группы! :o

dB13, 22(б)
User avatar
tengiz
Уже с Приветом
Posts: 4468
Joined: 21 Sep 2000 09:01
Location: Sammamish, WA

Re: How Often Does Processor Cache Flush?

Post by tengiz »

dB13 wrote:И куда только не заносит людей из 24-й группы! :o

dB13, 22(б)

!!! Физкульт-привет ИФТТ и ИФП (пардон, не помню что из нех есть <а>, а что <б>)! Я, кстати, и в 22 тоже побывал - в ИТФ в Черноголовке у "пьяницы и дебошира" Горькова. Только это наверное 22 (в) должно было называться.
Cheers
dB13
Уже с Приветом
Posts: 1494
Joined: 08 May 2001 09:01
Location: Silicon Valley

Re: How Often Does Processor Cache Flush?

Post by dB13 »

tengiz wrote:
dB13 wrote:И куда только не заносит людей из 24-й группы! :o

dB13, 22(б)

!!! Физкульт-привет ИФТТ и ИФП (пардон, не помню что из нех есть <а>, а что <б>)!


22(б) -- ИФТТ

Return to “Вопросы и новости IT”