|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Valentin Nechayev 2:5020/400 13 Mar 2001 16:56:33 To : Eugene B. Berdnikov Subject : Re: Microsoft предлагает запретить Linux!!! -------------------------------------------------------------------------------- et> <98cp12$1edq$1@news.gamma.ru> <98fhv0$gnj$1@news.lucky.net> et> <98hean$19bc$1@news.gamma.ru> <98iakm$nvb$1@news.lucky.net> et> <98ief5$1sv2$1@news.gamma.ru> <iiri89.8hj.ln@elf.ihep.su> et> <98ith5$18q$1@news.lucky.net> <n1ej89.ltl.ln@elf.ihep.su> From: netch@segfault.kiev.ua (Valentin Nechayev) >>> Eugene B. Berdnikov wrote: EBB>>> О как. А я, наивный, всю жизнь полагал, что на многопроцессорной EBB>>> системе всегда есть writeback, т.е. передача тага процессора, EBB>>> модифицировавшего память, в контроллер, отвечающий за когерентность EBB>>> кэша. Чтобы никто больше не посмел это слово модифицировать, не попросив EBB>>> держащий его процессор отдать из кэша обратно. И "ворота" здесь равны EBB>>> времени прохождения инструкции через конвейер, после чего кэш-контроллер EBB>>> залочит это слово (если он вообще позволит 2 процессорам модифицировать EBB>>> его одновременно). VN>> VN>> Боже мой. Евгений, поделитесь поставщиком травы. Или URL где все это VN>> рассказано. EBB> http://www.citforum.teledyne.ru/hardware/app_kis/glava_40.shtml EBB> write invalidate protocol VN>> (Hасчет травы я почти серьезно - Ваши слова надо в su.left отфорвардить;)) EBB> Пожалуйста. Hичего что я некурящий? ;) Здорово. Я повторяюсь, но лучше бы подобные слова были вызваны травой.;) Потому что: writeback не есть "передача тага процессора... в контроллер..." (см. далее по тексту). writeback - это отложенная запись, которую тем не менее всегда стараются ускорить в фоне, чтобы меньше было проблем от несинхронизированности. Далее, write invalidate protocol - это очень круто, судя по данной мягкой бумажке, но так, как оно описано, оно просто не будет выполнять нужную цель. Поясняю: если мы послали команду "инвалидировать ячейки 100-103", и начали последовательно их писать - 100, 101... - то пока мы дойдем до 103-й, ее кто-то уже прочитает. (Или он должен ждать, пока в нее запишут? А если на тот процессор пришло прерывание?) Чтобы этого не было - нужно или лочить шину на время всей операции (дорого и на практике нереализуемо программно), или "write invalidate protocol" отправить туда где его взяли - место зовется Trash Can, оно же /dev/null. И к текущей практике, по крайней мере для x86, это все не имеет отношения. Авторы этого glava_40 сделали стыдливый комментарий по этому поводу в конце (когда рассказывали про "иерархию кэшей с охватом", которая используется на x86 включая smp случаи), но предыдущую коллекцию сказок отменять не захотели, в области апологетизма "write invalidate protocol", особенно в случае нескольких ячеек. А то, что реально используется - это протокол "с наблюдением": кто-то записал в ячейку - все кэши сохранили себе такое значение. Вот где и как используется и используется ли вариант, когда кэш отвечает на запрос к памяти, отдавая измененное значение - не знаю. Думаю, что Intel SMP такого не содержит. С компаковским я совсем не общался. /netch --- ifmail v.2.15dev5 * Origin: Lucky Netch Incorporated (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор Архивное /ru.linux/7368f3d6901f.html, оценка из 5, голосов 10
|