OSDev
http://osdev.ru/

Адресация памяти (иная?)
http://osdev.ru/viewtopic.php?f=5&t=1014
Страница 6 из 6

Автор:  dixie [ 19 дек 2014, 15:41 ]
Заголовок сообщения:  Re: Адресация памяти (иная?)

Himik писал(а):
dixie, я в своей ОС попробовал сделать для видеопамяти режим WC по примеру QS. Настройка MTRR не дала ни какого эффекта, зато настройка MSR_PAT сработала.
А там точно нигде пересечений адресов не получилось в MTRR?
Если есть пересечение с UC - он и будет ;)
Цитата:
Но у тебя работает с помощью MTRR - значит страничный режим не используешь?
Ага, по умолчанию без страниц, PAE включается отдельной командой/вызовом API, прозрачно для всей "системы"...
Но MTRR у меня больше для загружаемой OS/2 - чтобы в её таблицы страниц не лазить.

Автор:  Himik [ 21 дек 2014, 12:57 ]
Заголовок сообщения:  Re: Адресация памяти (иная?)

Есть пересечение только с WB, который на весь диапазон памяти - это мешает? И у меня всё время включен страничный режим, а в страничном режиме мне кажется PAT приоритетней MTRR, поэтому я не уверен что MTRR вообще нужен.

Автор:  dixie [ 22 дек 2014, 01:31 ]
Заголовок сообщения:  Re: Адресация памяти (иная?)

Himik писал(а):
Есть пересечение только с WB, который на весь диапазон памяти - это мешает?
Однозначно. В доке написано, что поведение в этом случае "undefined", но на практике там получается похоже на UC.
Цитата:
И у меня всё время включен страничный режим, а в страничном режиме мне кажется PAT приоритетней MTRR, поэтому я не уверен что MTRR вообще нужен.
Ну, в пределах одной системы - да, PAT намного проще.
У меня чуть другая ситуация - загрузчик чужого ядра, у меня свой PM/страницы, у него свои ;) Т.е. после загрузки ядра я выхожу в RM и запускаю его, а оно уже ставит свой режим.

Автор:  Himik [ 22 дек 2014, 12:42 ]
Заголовок сообщения:  Re: Адресация памяти (иная?)

Но ведь почти все системы работают в страничном режиме, значит везде действует PAT. Что приоритетней - MTRR или PAT? Если в PAT - WB или UC, а в MTRR - WC, то что? Какой командой в твоём загрузчике включить страничный режим, чтобы проверить?
Я в своей системе уже удалил настройку MTRR, поэтому сам проверить не могу. Вопрос чисто теоретический - согласно теме :)

Автор:  dixie [ 23 дек 2014, 01:46 ]
Заголовок сообщения:  Re: Адресация памяти (иная?)

У меня PAT не используется - поэтому страничный режим не поможет ;)
Хотя - если из моей загрузить чужой бутсектор или MBR (из Disk Management), то MTRR останется и у себя можно попробовать комбинацию.

Приоритет PAT/MTRR точно описан в доке у интела - в разделе про кэш. Поскольку нормальные архитекторы у интела к моменту добавления PAT уже вымерли ;) - там имеет место загадочное комбинирование того и другого с целью угадать - чо именно имели в виду разработчики биоса и ос.

Ну т.е. - UC и WC в MTRR имеют приоритет над PAT, WB - наоборот, а WT - только частично ;) Варианты поведения, в принципе, логичны, но, в целом, этот парный механизм выглядит довольно криво.

Страница 6 из 6 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/