Время доступа к памяти

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Re: Время доступа к памяти

Сообщение Pavia » 28.09.2016 22:04:39

CRobin писал(а):Pavia вытесняющая многозадачность не причем, если запись/вычисление длится 20мкс (запись ~300000 байтов) то тут некуда вклиниваться.

Сохранение контекста занимает около 1 мкс. Может прилететь прерывании, но они не частые от 100 до 50 000.
За 3-5 мкс может произойти многое о чем мы не знаем. Но такие события не частые поэтому заботиться о них не стоит.
многозадачность влияние на механизм кэширования, здесь интереснее.

Я уже писал. Однозначно влияет, при смене контекста происходит сброс кэша.
и вытесняется код приложения, или же область памяти, куда происходит запись?

Не-то не сё сбрасывается TLB. А вот на что влияет затрудняюсь с ответом думаю и накод и на данные.

Вопервых не понятно о каком кеше идет речь? Речь о кеш памяти ЦП, или в ОЗУ тоже есть нечто такое? Во вторых, если о ЦП, кешируется и вытесняется код приложения, или же область памяти, куда происходит запись?

О кэше ЦП. ОЗУ - это DRAM она периодически обновляется, но там задержка на обновление около 10% это не разы * (Не уверен).

. Но разницы в десятки раз тут никак не может быть.

Померил задержку своего ноутбука latence:
RAM - 80 нс
L3 - 61 нс
L2 - 7.9 нс
L1 - 1.8 нс
Разница в 44 раза! Если что интел приводит цифры примерно такие же.

Изображение
Аватара пользователя
Pavia
постоялец
 
Сообщения: 290
Зарегистрирован: 07.01.2011 12:46:51

Re: Время доступа к памяти

Сообщение CRobin » 28.09.2016 22:32:02

Pavia если так, тогда напрашиваются следующие выводы. В зависимости от длинны паузы между повторениями, или происходит, или не происходит очистка кеша, что напрямую влияет на задержку вычисления/записи. Когда очистка кеша происходит, то тут два варианта, или это происходит по таймауту, или в результате переключения контекста ЦП. Тут подходим к основному вопросу. Есть ли возможности управлять первым или вторым средствами ОС или средствами приложения, или же это полностью аппаратная логика?
CRobin
постоялец
 
Сообщения: 145
Зарегистрирован: 26.01.2016 12:15:39

Re: Время доступа к памяти

Сообщение Pavia » 28.09.2016 23:15:36

CRobin писал(а):Когда очистка кеша происходит, то тут два варианта, или это происходит по таймауту, или в результате переключения контекста ЦП.

Вы забыли третий вариант. Естественный процесс само очистки кэша. Кэш это очередь первый вошел последним вышел.
Тайм-аута нет иначе кэш был бы ещё более сложным и потреблял бы ещё больше энергии.
При переключении процессов происходит принудительная очистка кэша. Правда не факт, что всего.
Смена контекстов происходит при приходе прерывания, а также если приложение само отдало свое время.
Если пришло прерывание таймера (частота 1 мс), то при смене контекстов может переключаться не только поток но и процесс. Это может сильнее влиять на кэшь.
При вызове WinAPI смена контекстов может происходить, а может и не происходить. Причем для ускорения обычно не происходит.

Можно принудительно сбросить кэшь, но только из ядра ОС, нужно писат свой драйвер.
Можно запретить прерывания, но опять таки из ядра.
Можно указать, что закэшировать - доступно везде.
Аватара пользователя
Pavia
постоялец
 
Сообщения: 290
Зарегистрирован: 07.01.2011 12:46:51

Re: Время доступа к памяти

Сообщение CRobin » 29.09.2016 00:08:05

Что значит указать что закешировать? Могу ли я закешировать функцию, которую вызываю нечасто, но хочу получать ее результат в реальном времени?
CRobin
постоялец
 
Сообщения: 145
Зарегистрирован: 26.01.2016 12:15:39

Re: Время доступа к памяти

Сообщение Mirage » 29.09.2016 01:13:15

Вот это и есть префетч - периодически (во время задержек) почитывать область памяти, куда происходит запись.
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Re: Время доступа к памяти

Сообщение CRobin » 29.09.2016 13:32:31

Mirage как быть если это системная функция типа Send?
CRobin
постоялец
 
Сообщения: 145
Зарегистрирован: 26.01.2016 12:15:39

Re: Время доступа к памяти

Сообщение Mirage » 01.10.2016 01:21:12

Это - это что?
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Re: Время доступа к памяти

Сообщение CRobin » 01.10.2016 02:01:31

Mirage писал(а):Это - это что?

То, что необходимо закешировать. Внешняя функция, память которой находится в области ядра.
CRobin
постоялец
 
Сообщения: 145
Зарегистрирован: 26.01.2016 12:15:39

Re: Время доступа к памяти

Сообщение Pavia » 01.10.2016 09:05:39

CRobin писал(а):То, что необходимо закешировать. Внешняя функция, память которой находится в области ядра.

Вызвать её с 0 длиной. Только смысла в её кэшировании нет.
Аватара пользователя
Pavia
постоялец
 
Сообщения: 290
Зарегистрирован: 07.01.2011 12:46:51

Пред.

Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 27

Рейтинг@Mail.ru