OSDev

для всех
Текущее время: 28 апр 2024, 01:46

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




Начать новую тему Ответить на тему  [ Сообщений: 190 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7 ... 19  След.
Автор Сообщение
 Заголовок сообщения: Re^3: Express OS
СообщениеДобавлено: 03 ноя 2008, 17:49 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Управлять окном вывода не проблема, есть функция Int 10h AX 4F07h. И есть интерфейс для вызова из защищённого режима, его выдаёт Int 10h AX 4F0Ah.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re^4: Express OS
СообщениеДобавлено: 04 ноя 2008, 01:35 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Проверил время заполнения видеобуфера по счётчику тактов процессора (инструкцией rdtsc), время оказалось одинаковым для видимой и невидимой памяти. Проверил 2 разных видеокарты, Radeon и Nvidia, в 16 и 32 битном цвете, ускорения нет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re^5: Express OS
СообщениеДобавлено: 04 ноя 2008, 05:24 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
Так ускорение может быть только в том случае, если процессор должен останавливаться, дожидаясь завершения операции записи в память. А этого, вероятно, не происходит. Вероятно, сказывается очень малое время доступа к нынешней видеопамяти, лишь малую долю пропускной способности которой отъедает необходимость отображения информации; ну и плюс наличие всяких кэшей.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re^6: Express OS
СообщениеДобавлено: 04 ноя 2008, 17:24 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Хочешь сказать, что на самом деле ускорение есть, просто на счётчике тактов процессора это не отображается?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re^7: Express OS
СообщениеДобавлено: 04 ноя 2008, 21:03 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
Не знаю. Ускорение может быть, но по тем или иным причинам не фиксироваться (как и всё, что есть в ИА-32, подсчёт тактов реализован криво, и чтобы получить действительно реальные значения, нужны бывают танцы с бубнами; по этому поводу ещё Касперски что-то писал). Но скорее причина в другом: ускорения действительно нет, потому что процессор не способен по полной программе нагрузить пропускную способность видеопамяти, и на выборку информации из неё для отображения на дисплюе оставшейся вполне хватает. Двойная буферизация в ДХ связана с другим: чтобы не нарушать выводимую в данный момент на экран картинку.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re^8: Express OS
СообщениеДобавлено: 05 ноя 2008, 00:37 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Я разделил количество тактов процессора в секунду на количество тактов заполнения видеобуфера, получается 62 (1024x768 32bit) и 75 (1024x768 16bit). Тоесть можно даже кино смотреть с частотой кадров 75Гц. Проверю вывод реальной картинки на практике, авось и правда быстро.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re^9: Express OS
СообщениеДобавлено: 05 ноя 2008, 01:25 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Да, вывод на экран на самом деле быстрый, 120 (а не 75) кадров в секунду при 16 битном цвете, прямо в видимую область.
Это я значит прокрутку окна неправильно сделал. Перемещаю данные прямо в видеобуфере, при этом одновременное чтение и запись тормозится. Или чтение видеопамати вообще тормозное, об этом где-то слышал. В общем, вопрос решён.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 05 ноя 2008, 11:41 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
Доступ к видимой и невидимой областям видеопамяти одинаковый. Преимущество использования видеостраниц и переключения между ними появляется только тогда, когда есть свободное время на подготовку видеоизображения в невидимой области памяти. Читать видеопамять - это полный изврат! Все что выводится в видеопамять и может читаться, должно кэшироваться в основной памяти.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re^10: Express OS
СообщениеДобавлено: 06 ноя 2008, 05:21 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
Большое падение скорости при чтении-записи может вызываться, например, тем, что приходится постоянно открывать-закрывать строки модулей памяти то на чтение, то на запись. Операция открытия занимает много времени, и высокая скорость достигается только тогда, когда после открытия идёт много обращений одного вида к подряд расположенным ячейкам памяти.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Express OS
СообщениеДобавлено: 11 ноя 2008, 02:50 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Выложил оптимизированную версию, экран теперь не тормозит.
Добавились часы на экране. В консоли добавилась команда date. В API добавилась GetLocalTime() и GetSystemTime().
http://wiki.osdev.ru/index.php/Express_OS


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

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


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

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


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

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