|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Eugene B. Berdnikov 2:5020/400 13 Mar 2001 20:03:44 To : Valentin Nechayev Subject : Re: Microsoft предлагает запретить Linux!!! -------------------------------------------------------------------------------- .ru> <98fhv0$gnj$1@news.lucky.net> <98hean$19bc$1@news.gamma.ru> .ru> <98iakm$nvb$1@news.lucky.net> <98ief5$1sv2$1@news.gamma.ru> .ru> <iiri89.8hj.ln@elf.ihep.su> <98ith5$18q$1@news.lucky.net> .ru> <n1ej89.ltl.ln@elf.ihep.su> <20010313084551.B722@iv.nn.kiev.ua> From: berd@desert.ihep.su (Eugene B. Berdnikov) Valentin Nechayev <netch@segfault.kiev.ua> wrote: VN> Здорово. Я повторяюсь, но лучше бы подобные слова были вызваны травой.;) Ага, было б лучше. Hо я честно признался, что болен детской наивностью. :) Все жду, когда же дядя Вова поделится куском исходников ядра, в котором видно, как после захода в сискол - оппа! - все кэши сбрасываются в память. Hу хоть бы в эхотаге показал! Hу не для x86, так для Alpha или SPARC. Только по его ответу Чуприне я понял, что сначала лисп выучить надо. Валентин, Вы не знаете, какое ядро на лиспе написано? :) VN> Потому что: writeback не есть "передача тага процессора... в контроллер..." VN> (см. далее по тексту). writeback - это отложенная запись, которую VN> тем не менее всегда стараются ускорить в фоне, чтобы меньше было VN> проблем от несинхронизированности. Далее, write invalidate protocol VN> - это очень круто, судя по данной мягкой бумажке, но так, как оно VN> описано, оно просто не будет выполнять нужную цель. Поясняю: если мы VN> послали команду "инвалидировать ячейки 100-103", и начали VN> последовательно их писать - 100, 101... - то пока мы дойдем до 103-й, VN> ее кто-то уже прочитает. (Или он должен ждать, пока в нее запишут? VN> А если на тот процессор пришло прерывание?) Чтобы этого не было - VN> нужно или лочить шину на время всей операции (дорого и на практике VN> нереализуемо программно), или "write invalidate protocol" отправить VN> туда где его взяли - место зовется Trash Can, оно же /dev/null. Можете придираться к моей терминологии сколько угодно - я в этом не силен и вряд ли способен предметно спорить. Могу только предположить, что механика должна быть примерно такой: когда один процессор модифицирует строку своего кэша (содержащую кучу ячеек, кстати), он быстренько ставит на шине ее адрес и флаг "invalidate", по которому остальные процессоры вышибают эту строку из свой кэшей. Это в 20-50 раз быстрее обращения к реальной памяти. При запросе же к модифицированной строке возникает межпроцессорный обмен. Шина лочится, естественно, только почему Вы считаете, что это должно осуществляться программно, я не понимаю. Логических противоречий здесь я не вижу. VN> И к текущей практике, по крайней мере для x86, это все не имеет VN> отношения. Возможно. Hе знаю и спорить не могу. Hо то, что рассказывает дядя Вова, мне кажется откровенной фантастикой. Во всяком случае, источники своих знаний он хранит тайне, и от этого интрига становится интересней. :) -- Eugene Berdnikov --- ifmail v.2.15dev5 * Origin: Institute for High Energy Physics, Protvino, Russia (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор Архивное /ru.linux/5353c29c80c3.html, оценка из 5, голосов 10
|