У меня вопрос по протоколу MESI.Предположим, что у меня есть два ядра (ядро 1 и 2), и каждое ядро имеет свой собственный кэш l2.Когда два ядра имеют одинаковые данные и строки кэша находятся в состоянии S, это означает, что они оба имеют чистые и одинаковые данные.В момент времени t = 0 ядро 1 записывает строку кэша, а ядро 1 переключается в M (измененное), а ядро 2 в конечном итоге будет в состоянии I (недействительно).В физическом мире для завершения этой транзакции требуется время.Предположим, что кэш-памяти 2 известно, что кэш-память 1 обновила строку кеша.Это действие записи от ядра 2 будет сообщено ядру 1 в момент времени t = 7 (2 + 5).Затем ядро 2 должно аннулировать кэш 2 в момент времени t = 5, а ядро 1 аннулирует строку в момент времени t = 7.Теперь обе строки становятся недействительными, и данные, записанные ядром 1, а затем ядром 2, теряются.Это явно не соответствует протоколу.Что не так с моей логикой и как предотвратить эту чушь?