OSDev

для всех
Текущее время: 19 июн 2019, 22:49

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




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

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1102
Цитата:
Ещё висит вопрос с широкоформатными разрешениями, которых бы очень хотелось установить, но которых в VBE нет и не предвидется.

Не всегда, но достаточно часто в списке VBE есть родное разрешение для видео монитора.
Так что получаем родное разрешение и ищем его среди списка.
И да номера разрешений записанных в стандарте носит рекомендательный характер.
Правда честно с VBE хлопот много. Так как по сути каждый разработчик БИОСа его делает по своему. И багов хватает с лихвой.


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

Зарегистрирован: 04 ноя 2007, 14:48
Сообщения: 113
pavia, а расскажи пожалуйста про какие баги VBE ты говоришь. Хотелось бы заранее подготовиться. И такой вопрос: насколько часто бывает FullHD (1920 x 1080) в списке VBE режимов, если оно родное для монитора? Извиняюсь за оффтоп, т.к. считаю, что по теме уже всё сказали:

1. Преждевременная оптимизация. Нет смысла беспокоиться о том, сколько тактов занимает mov пока нет работающего прототипа. Архитектуру всё равно не изменишь.
2. В случае необходимости можно отключить страничную адресацию (32 битный защищённый режим, с 64-битами не работал), может быть станет быстрее, хотя врядли.
3. Сегментную адресацию (в 32-бит) не отключишь, поэтому сегменты просто настраиваются на все 4Гб адресного пространства, и адресация идёт по простому 32-битному физическому адресу. Это называется flat модель памяти, описана почти во всех книжках, где есть защищённый режим.


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

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1102
Надо детально изучать. Отсутствие определенных частот. Не поддержка мультимониторности, отсутсвие линейного буфера для некоторых режимов. Вывод не в том углу. И тп.


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

Зарегистрирован: 10 окт 2013, 14:54
Сообщения: 80
Первое, что надо делать для VBE - Write Combine на видеопамять... На новых процах дефолтный UC какой-то уж ДИКО медленный ;)
У меня в 1280x1024x16 бит ати-шка 6850 (такой себе танк небольшой) - выдаёт 12 fps :shock: с UC и 400 - с поставленным WC ;)
Остальное всё хреново, но, чаще, излечимо для случая - "включить хоть какой-то режим и что-то вывести".

А про рефреш для CRT лучше забыть сразу ;) Оно когда-то было, но сейчас есть только на встроенном интеле (и даже работает), ATI и NV убрали этот код из биоса оч. давно.


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

Зарегистрирован: 28 окт 2014, 10:41
Сообщения: 31
dixie,
Вот это поворот... :shock: Ценная информация. А где про это можно почитать?


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

Зарегистрирован: 04 ноя 2007, 14:48
Сообщения: 113
Присоединяюсь к вопросу. Вся эта история из OS/4, насколько мне удалось выяснить. Там через регистры MSR вроде как то делается. Но каким конкретно образом было бы интересно услышать, желательно со ссылками на документацию, желательно на русскоязычную.


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

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1102
dixie, лучше расскажет.
Есть Линукс, есть Колибри ОС. Скорее всего где-то ещё есть исходники.
Есть документация Intel на его процессоры. В разделе про кэш память всё расписано.
Код для чтения MSR тоже где-то был. Перечень MSR регистров есть в документации Intel.
Принцип работы с MSR описан в "Write Combining Memory Implementation Guidelines".
Смотрим процессор в зависимости от процессора код будет отличаться. Все таки MSR - это модельно зависимые регистры. Где-то WC Bufers 4 где-то 6 где-то 8. Может ещё какие отличия.
Собственно трудного ничего смотрим где какие участки если BIOS не настроил, то ищем свободный регистр. Если нет то двигаем существующий.

Плюс тонкости работы с памятью WC. И надо посмотреть.


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

Зарегистрирован: 10 окт 2013, 14:54
Сообщения: 80
Регистров, вроде, на интеле - везде 8 (даже на PPro), 10 начиная с 1155 сокета...
На единственном AMD, который у меня есть - тоже 8 :)

Сам процесс оптимизации довольно закручен - поскольку используется приоритет UC перед WB...
Т.е. пишут:
регистр 1: 8 гб - WB
регистр 2: 16кб в конце 4го гига - UC

и вот это разрулить так, чтобы осталось как было - и ещё и себе свободный регистр - довольно весёлая задача.

В конце концов, интел просто добавил PAT, который только для страничного режима. Т.е. включаем PAT и ставим страницам видеопамяти аттрибут - WC. Это гораздо проще, если система 100% страничная...

С другой стороны - метод с MTRR вообще не требует участия "будущей OS", главное суметь поставить эти регистры на всех процессорах, а не только в первом ;)

Документация - интелёвый мануал на процессоры, глава "Memory Cache Control".
Примеры должны быть и в линуксе, в том числе.... можно в моём коде глянуть, там есть оптимизация.

Физически установка делается через MSR регистры - под это есть диапазон.


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

Зарегистрирован: 04 ноя 2007, 14:48
Сообщения: 113
Цитата:
можно в моём коде глянуть

dixie, ты имеешь ввиду QSINIT? Посмотрел в QS\system\src\ldrapps\vmtrr\opt.cpp, там нетривиальный код. Я думал как то проще делается, ну чтож, ладно. В любом случае спасибо за разъяснения и пример.


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

Зарегистрирован: 10 окт 2013, 14:54
Сообщения: 80
Угу...
Ну а чо делать, если биосы нетривиально расписывают регистры - приходится оптимизировать точно так же ;)
Проще всего это, конечно, решается через PAT ... т.е., если страничный режим, то нечего и голову ломать - поставить на страницы видеопамяти WC и всё.


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

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


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

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


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

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