Приходится ассемблеру или сигнализировать об ошибке, или пытаться раскидать инструкции по разным бандлам.
Он не особо старается — конфликтующие инструкии находят себя в отдельных бандлах с нопами в соседях :)
Нет, пожалуй что writeback здесь будет происходить вообще только при выстеснении линейки из кэша…
Кстати, в примере с одномерным массивом, если тела циклов поменять местами, то второй цикл будет все равно работать быстрее. То есть второй цикл будет всегда быстрее, можно предположить что вступает в игру прогрев кэшей.
Когда мы последовательно записываем адреса, то вторая запись в границах одной кэш линейки застоллит процессор — он будет ждать окончания записи линейки в основную память. Когда доступы идут в разнобой (особенно в последнем примере с рандомным доступом к линейному массиву), то writeback происходит спекулятивно, без столла.
То есть, автор утверждает, что построить скоростную железную дорогу стоит 60 миллиардов, а построить скоростную магнитную дорогу в герметичной трубе и с солнечными панелями сверху — 6 миллиардов?
Речь идет о системном таймере.
Это маленькая железка, которая с определенной периодичностью генерирует прерывание.
Соответственно, начинает отрабатывать обработчик прерывания, который, например решает будет ли текущая программа продолжать исполнение или будет вытеснена чем-то еще.
Но, если процессор находится в неглубоком сне (что он и делает, например, когда вы читаете этот коммент), прерывание его разбудит по сути в холостую. Будет потрачена бесценная энергия. Ну и, соответственно, лучше чтобы это происходило в данном случае реже.
Да, кстати. Вопрос не совсем по теме поста.
Как в таких сетапах, когда на разных ядрах крутятся разные ОС контролируются доступы к девайсам? В смысле, нужно следить чтобы они друг другу не мешали. Есть ли некие хардварные семафоры?
Если основное время съедается копированием в userspace, корректно ли включать это время в замеры? Как я понял, критично время которое РТОС тратит на коммуникацию, на Линуксовый кернел сравнительно плевать (тем более, думаю, для него это о-малое). Передача ведь происходит асинхронно?
Поясните пожалуйста, почему время растет настолько медленнее по сравнению с ростом размера пакета?
Или если мы передаем лишь указатель на общую память почему оно вообще растет?
Странно, что не указаны абсолютные величины.
Не исключено, что несмотря на падение доли Wintel, количество таких систем значительно выросло (или ужасающе сократилось, но как понять?).
Успеет ли парашют раскрыться при отказе на высоте в 30 метров?
Да, существуют сложные любопытные парашютные системы для самолетов (BRS, magnum parachute systems), но у них гораздо более мягкие требования и кроме того, они значительно увеличивают массу (читай, уменьшают время полета, которое и так не слишком впечатляет).
Он не особо старается — конфликтующие инструкии находят себя в отдельных бандлах с нопами в соседях :)
Кстати, в примере с одномерным массивом, если тела циклов поменять местами, то второй цикл будет все равно работать быстрее. То есть второй цикл будет всегда быстрее, можно предположить что вступает в игру прогрев кэшей.
Это маленькая железка, которая с определенной периодичностью генерирует прерывание.
Соответственно, начинает отрабатывать обработчик прерывания, который, например решает будет ли текущая программа продолжать исполнение или будет вытеснена чем-то еще.
Но, если процессор находится в неглубоком сне (что он и делает, например, когда вы читаете этот коммент), прерывание его разбудит по сути в холостую. Будет потрачена бесценная энергия. Ну и, соответственно, лучше чтобы это происходило в данном случае реже.
Как в таких сетапах, когда на разных ядрах крутятся разные ОС контролируются доступы к девайсам? В смысле, нужно следить чтобы они друг другу не мешали. Есть ли некие хардварные семафоры?
Или если мы передаем лишь указатель на общую память почему оно вообще растет?
Не исключено, что несмотря на падение доли Wintel, количество таких систем значительно выросло (или ужасающе сократилось, но как понять?).
Да, существуют сложные любопытные парашютные системы для самолетов (BRS, magnum parachute systems), но у них гораздо более мягкие требования и кроме того, они значительно увеличивают массу (читай, уменьшают время полета, которое и так не слишком впечатляет).