OSDev

для всех
Текущее время: 21 сен 2018, 06:45

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 55 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения: Re: Адресация памяти (иная?)
СообщениеДобавлено: 23 ноя 2014, 19:47 

Зарегистрирован: 04 ноя 2007, 14:48
Сообщения: 113
А как оно через PAT решается? (чего то я не знаю похоже) Это в 32-битном зищищённом режиме возможно?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Адресация памяти (иная?)
СообщениеДобавлено: 23 ноя 2014, 21:05 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1089
Да возможно. В таблице страниц и каталоге страниц есть 3 бита. Комбинация этих 3-х бит выбирает один из 8 форматов.

Читай документацию на процессор
http://www.intel.com/content/www/us/en/ ... nuals.html
Том 3А главы 4.9 и 11.12


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Адресация памяти (иная?)
СообщениеДобавлено: 23 ноя 2014, 22:32 

Зарегистрирован: 04 ноя 2007, 14:48
Сообщения: 113
Спасибо! Всётаки залез в доки. PAT значит Page Attribute Table и как то там оно хитрее работает чем просто установка битов в каталоге страниц. Вобщем одинаково сложно что через MSR, что через PAT. Интересно, write-through будет сильно хуже работать чем write-combine применительно к данной задаче?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Адресация памяти (иная?)
СообщениеДобавлено: 23 ноя 2014, 23:02 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1089
UC - чтение и запись не кешируется.
WT - чтение идет из кэша , операции чтения могут быть пере упорядочены. Но до первой команды на "запись"
WC - комбинирование команд "запись", запись может быть переупорядочена. Секрет в том что запись задерживается в буфере до его заполнения.

По сути WC - переводит CPU в пакетный режим передачи. Далее зависимость от шины и её протоколов. По идее должно быть не более 64 /4=16 раз. У старых компьютеров где кэш 32 байта ускорение в 8 раз.
Замеры говорят о более большей скорости!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Адресация памяти (иная?)
СообщениеДобавлено: 24 ноя 2014, 23:34 

Зарегистрирован: 12 май 2012, 14:02
Сообщения: 18
pavia писал(а):
UC - чтение и запись не кешируется.
WT - чтение идет из кэша , операции чтения могут быть пере упорядочены. Но до первой команды на "запись"
WC - комбинирование команд "запись", запись может быть переупорядочена. Секрет в том что запись задерживается в буфере до его заполнения.

По сути WC - переводит CPU в пакетный режим передачи. Далее зависимость от шины и её протоколов. По идее должно быть не более 64 /4=16 раз. У старых компьютеров где кэш 32 байта ускорение в 8 раз.
Замеры говорят о более большей скорости!!


Секрет не столько в буферезации, сколько в переупорядочивании. Для UC памяти все операции должны быть строго упорядочены (strongly ordered), а все что за пределями CPU порядком операции не особо интересуется. То есть нельзя выпустить две последовательные UC операции одну за другой и надеяться, что они дойдут до цели в том же самом порядке, как того требует UC спецификация. Из-за этого ограничения следующий UC write может быть выполнен только после того как пришло подтвержение от предыдущего, которое гарантирует порядок выполнения (global observation). На деле это означает 50-70 тактов простоя как минимум между двумя строго упорядоченными операциями. В случае обращения к MMIO (типа графической памяти) может получить гораздо больше. У WC нет такого ограничения, порядок прибытия отдельных write не гарантирован вообще поэтому CPU может фигачить их наружу сразу по мере накопления всей строки кеша. При использовании SSE MOVNTPS - 16 byte per store, 4 такта на строку кеша. На деле все чуто помедленнее из-за внутренних ограничений внутри ядра CPU, но это верхний предел скорости. Как видишь 16x дело вообще не ограничивается.

Вообще - рукомендую почитать про Memory Ordering в том3 Intel Manuals а так же про Write Combining в Optimization Guide.

Станислав


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Адресация памяти (иная?)
СообщениеДобавлено: 25 ноя 2014, 06:29 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1089
Переупорядочивавшие по записи есть не во всех процессорах. А при этом ускорение есть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Адресация памяти (иная?)
СообщениеДобавлено: 25 ноя 2014, 09:31 

Зарегистрирован: 12 май 2012, 14:02
Сообщения: 18
То, о котором я говорю - во всех x86. Как минимум во всех, где есть WC :)
Даже в тех, где нет Out of Order Execution.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Адресация памяти (иная?)
СообщениеДобавлено: 25 ноя 2014, 20:37 

Зарегистрирован: 04 ноя 2007, 14:48
Сообщения: 113
stlw, в доке написано что в режиме write-throught разрешён write-combining. Этого, чисто теоретически, должно быть достаточно для ускорения?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Адресация памяти (иная?)
СообщениеДобавлено: 25 ноя 2014, 23:08 

Зарегистрирован: 12 май 2012, 14:02
Сообщения: 18
Есть разница между write combining и memory ordering. В случае с write through разрешено соединять writes вместе хоть они и не cache-able. но не разрешено менять порядок write операций. На практике это означает, что при переходе на новую строку кеша надо ждать пока придет global observation от предыдущей строки, то есть платим тот же простой, что и на UC, только не так часто.
На самом деле все еще хуже - из-за малого количества пользователей WT memory type, его поддрежка была удалена из процессора. На процессорах линейки Pentium 4 и полее поздних, включая Core, WT memory type ведет себя точно так же как и UC.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Адресация памяти (иная?)
СообщениеДобавлено: 26 ноя 2014, 10:11 

Зарегистрирован: 04 ноя 2007, 14:48
Сообщения: 113
Вот это очень ценная информция, про то что WT = UC в современных процах. Я хотел избежать использования WC, т.к. рассчитывал, что при заполнении памяти последовательно (использовании double buffer для графики), потери производительности не будет, хотябы на WT. Однако получается, что от WC никуда не деться, т.к. в UC режиме (который включится вместо WT) write-ы не комбинируются. Рассуждения правильные?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 55 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.

Часовой пояс: UTC + 3 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB