Допустим регион адресного пространства видеопамяти у нас A0000-BFFFF.
Если мы попытаемся записать что-то в память по физическому адресу входящему в этот регион, то данные попадут в видеопамять!!! Не могу понять одной вещи: эти данные в саму оперативную память попадают или перенаправляются сразу в видеопамять? А если попадают в память, то получается, что чем больше видеопамять адаптера, то тем больше мы оперативной теряем? А если не попадаю, то как тогда использовать этот регион оперативной памяти?
Posted via RSDN NNTP Server 1.9 beta
Не бойся выглядеть глупо, от этого ты выглядишь ещё глупей!!!
Здравствуйте, Stanky, Вы писали:
S>Допустим регион адресного пространства видеопамяти у нас A0000-BFFFF. S>Если мы попытаемся записать что-то в память по физическому адресу входящему в этот регион, то данные попадут в видеопамять!!! Не могу понять одной вещи: эти данные в саму оперативную память попадают или перенаправляются сразу в видеопамять? А если попадают в память, то получается, что чем больше видеопамять
Ты сабж прочитай, и все станет понятным. Физически данная память находится на видеоплате. Но специальным механизмом отображается в единой адресное пространство. Для этого в карте распределения памяти х86 сделан специальный резерв, что-ли... Таким же макаром отображаются различные ПЗУ — тот же БИОС, BootROM и т.п. S> адаптера, то тем больше мы оперативной теряем? А если не попадаю, то как тогда использовать этот регион оперативной памяти?
Ничего ты не теряешь. В реальном режиме х86 адресный диапазон для видеопамяти ограничен, так что если захочешь использовать аппаратные возможности собственной видеокарты в реальном режиме, то тебе придется опуститься очень низко, и работать напрямую с картой через ее порты...
> Ты сабж прочитай, и все станет понятным. Физически данная память > находится на видеоплате. Но специальным механизмом отображается в > единой адресное пространство. Для этого в карте распределения памяти > х86 сделан специальный резерв, что-ли... Таким же макаром отображаются > различные ПЗУ — тот же БИОС, BootROM и т.п. >
Понятно, данные записываются сразу в видеопамять!!!
А вот если у меня есть видюха с 512 метрами на борту и 4 гига оперативы, то не получится ли, что при таком раскладе я не смогу использовать 512 метров оперативы?
Или там как-то увязывается 36-ти разрядная адресация?
> Ничего ты не теряешь. В реальном режиме х86 адресный диапазон для > видеопамяти ограничен >
Он и в защищенном тоже ограничен!!!
> так что если захочешь использовать аппаратные возможности собственной > видеокарты в реальном режиме, то тебе придется опуститься очень низко, и > работать напрямую с картой через ее порты... >
Я не совсем понимаю, что ты хотел этим сказать!!! Это намёк на режим линейной адресации?
Posted via RSDN NNTP Server 1.9 beta
Не бойся выглядеть глупо, от этого ты выглядишь ещё глупей!!!
Здравствуйте, Stanky, Вы писали:
>> Ты сабж прочитай, и все станет понятным. Физически данная память >> находится на видеоплате. Но специальным механизмом отображается в >> единой адресное пространство. Для этого в карте распределения памяти >> х86 сделан специальный резерв, что-ли... Таким же макаром отображаются >> различные ПЗУ — тот же БИОС, BootROM и т.п. >> S>Понятно, данные записываются сразу в видеопамять!!! S>А вот если у меня есть видюха с 512 метрами на борту и 4 гига оперативы, то не получится ли, что при таком раскладе я не смогу использовать 512 метров оперативы?
Нет, в реальном режиме процессора ты видишь только первый мегабайт адресного пространства. Остальная память, как ОЗУ, так и видео — за кадром... S>Или там как-то увязывается 36-ти разрядная адресация? >> Ничего ты не теряешь. В реальном режиме х86 адресный диапазон для >> видеопамяти ограничен S>Он и в защищенном тоже ограничен!!! >> так что если захочешь использовать аппаратные возможности собственной >> видеокарты в реальном режиме, то тебе придется опуститься очень низко, и >> работать напрямую с картой через ее порты... S>Я не совсем понимаю, что ты хотел этим сказать!!! Это намёк на режим линейной адресации?
Нет, это намек на управляющие регистры видеоплаты.
S>>Понятно, данные записываются сразу в видеопамять!!! S>>А вот если у меня есть видюха с 512 метрами на борту и 4 гига S>>оперативы, то не получится ли, что при таком раскладе я не смогу S>>использовать 512 метров оперативы? > Нет, в реальном режиме процессора ты видишь только первый мегабайт > адресного пространства. Остальная память, как ОЗУ, так и видео — за > кадром... >
А почему ты привязался именно к реальному режиму?
На данный момент я с видеопамятью работаю в нереальном режиме!!!
Что будет с 512 метрами не в реальном режиме?
> Нет, это намек на управляющие регистры видеоплаты. >
Тогда я вообще не понимаю к чему тут это!!!
Posted via RSDN NNTP Server 1.9 beta
Не бойся выглядеть глупо, от этого ты выглядишь ещё глупей!!!
Ну вообще то надо быть немного по спокойнее и точнее формулировать вопрос.
S>>>Понятно, данные записываются сразу в видеопамять!!! S>>>А вот если у меня есть видюха с 512 метрами на борту и 4 гига S>>>оперативы, то не получится ли, что при таком раскладе я не смогу S>>>использовать 512 метров оперативы?
В общем случае да. Локальная память выдеоадаптера физически может быть
расположена только ниже 4Гб — это справедливо для AGP и PCI32 (для PCI64
устройство может поддерживать 64-бит физическую адресацию, правда x86 ее
толком не умеет использовать. Для PCI-Express не знаю, пока не было надобности).
На большинстве чипсетов системная память располагается непрерывным куском
(имеется ввиду что перекрываемые области никуда не переносятся, а просто
оказываются скрытыми), по этому практически всегда не используются 768 Кб
из нижнего мегабайта и, в случае 4Гб и более, надо вычитать локальную
память адаптеров каторая была отображена на физические пространство — в первую
очередь память видеоадаптера(ов). Подробнее смотри архитектуру PC, PCI, доки на
чипсеты.
>> Нет, в реальном режиме процессора ты видишь только первый мегабайт >> адресного пространства. Остальная память, как ОЗУ, так и видео — за >> кадром... >> S>А почему ты привязался именно к реальному режиму? S>На данный момент я с видеопамятью работаю в нереальном режиме!!!
А в нереальном режиме у тебя все равно 4Гб адресное пространство и
воспользоваться PAE (36-бит адресация) толком не получиться. Это если я
понял так называемый Unreal mode или реальный режим с 4Гб сегментным лимитом.
S>Что будет с 512 метрами не в реальном режиме?
То-же самое ты их потеряешь. По этому кстати х86 Desktop системы бессмысленно собирать
с более 3Гб физической памяти (лучше 2 — жизнь проще будет).
>> Нет, это намек на управляющие регистры видеоплаты. >> S>Тогда я вообще не понимаю к чему тут это!!!
А очень даже к чему. Отображение линейного буфера можно запретить и работать
через 128Кб дыру A0000-BFFFF. А тут придется жонглировать банками видеопамяти
упарвляя через регистры (впрочем можно и через VESA BIOS).
Но в графике это будет такой тормоз...
Здравствуйте, Stanky, Вы писали:
S>>>Понятно, данные записываются сразу в видеопамять!!! S>>>А вот если у меня есть видюха с 512 метрами на борту и 4 гига S>>>оперативы, то не получится ли, что при таком раскладе я не смогу S>>>использовать 512 метров оперативы? >> Нет, в реальном режиме процессора ты видишь только первый мегабайт >> адресного пространства. Остальная память, как ОЗУ, так и видео — за >> кадром... S>А почему ты привязался именно к реальному режиму? S>На данный момент я с видеопамятью работаю в нереальном режиме!!!
Поясни, что ты имеешь ввиду под нереальным режимом. S>Что будет с 512 метрами не в реальном режиме?
Потому что в защищенном режиме распределение памяти малость другое. Ты же привел пример из первого мегабайта, из чего резонно предположить, что разговор идет о реальном режиме. >> Нет, это намек на управляющие регистры видеоплаты. S>Тогда я вообще не понимаю к чему тут это!!!
Тогда почитай Зубкова, все станет на свои места.
> А в нереальном режиме у тебя все равно 4Гб адресное пространство и > воспользоваться PAE (36-бит адресация) толком не получиться. Это если я > понял так называемый Unreal mode или реальный режим с 4Гб сегментным > лимитом.
Именно!!!
> То-же самое ты их потеряешь. По этому кстати х86 Desktop системы > бессмысленно собирать с более 3Гб физической памяти (лучше 2 — жизнь проще будет). >
Пасибы, теперь всё на свои места встало!!!
> А очень даже к чему. Отображение линейного буфера можно запретить и > работать через 128Кб дыру A0000-BFFFF. А тут придется жонглировать банками > видеопамяти упарвляя через регистры (впрочем можно и через VESA BIOS). > Но в графике это будет такой тормоз... >
Это я знаю, но в ответе было, то чего не было в вопросе, поэтому я и не понял к чему он это говорил!!!
Posted via RSDN NNTP Server 1.9 beta
Не бойся выглядеть глупо, от этого ты выглядишь ещё глупей!!!
> Поясни, что ты имеешь ввиду под нереальным режимом. >
В GDT прописываем сегмент с лимитом в 4ГБ и базой 0, переключаемся в защищенный режим, загружаем в сегментные регистры селектор, на описанный сегмент — теневая область сегментных регистров переписывается и ими теперь можно адресоваться к 4ГБ, переключаемся в защищенный режим и работаем с плоской памятью!!! Так же можно использовать команду LOADALL!!!
> Потому что в защищенном режиме распределение памяти малость другое. Ты > же привел пример из первого мегабайта, из чего резонно предположить, > что разговор идет о реальном режиме. >
Я вообще-то сказал, что "допустим"!!! Извини мой косяк!!!
> Тогда почитай Зубкова, все станет на свои места. >
Ты просто стал отвечать на то, что я не спрашивал!!!
А что у Зубкова есть раздел программирования видеоадаптеров?
Posted via RSDN NNTP Server 1.9 beta
Не бойся выглядеть глупо, от этого ты выглядишь ещё глупей!!!
Здравствуйте, Stanky, Вы писали:
>> Поясни, что ты имеешь ввиду под нереальным режимом. S>В GDT прописываем сегмент с лимитом в 4ГБ и базой 0, переключаемся в защищенный режим, загружаем в сегментные регистры селектор, на описанный сегмент — теневая область сегментных регистров переписывается и ими теперь можно адресоваться к 4ГБ, переключаемся в защищенный режим и работаем с плоской памятью!!! Так же можно использовать команду LOADALL!!!
Я так и думал. >> Потому что в защищенном режиме распределение памяти малость другое. Ты >> же привел пример из первого мегабайта, из чего резонно предположить, >> что разговор идет о реальном режиме. S>Я вообще-то сказал, что "допустим"!!! Извини мой косяк!!!
Хе-хе.. Ну раз ты с protected-mode разобрался, то с видеокартой точно разберешься... >> Тогда почитай Зубкова, все станет на свои места. S>Ты просто стал отвечать на то, что я не спрашивал!!! S>А что у Зубкова есть раздел программирования видеоадаптеров?
Есть.
S>>А что у Зубкова есть раздел программирования видеоадаптеров? > Есть. >
Всё что там написано — фигня, да и на уровне прерываний BIOS'а, а мне бы хотелось подробную инфу про порты найти, причём современных видеоконтроллеров!!!
Posted via RSDN NNTP Server 1.9 beta
Не бойся выглядеть глупо, от этого ты выглядишь ещё глупей!!!
> Всё что там написано — фигня, да и на уровне прерываний BIOS'а, а мне бы хотелось подробную инфу про порты найти, причём современных видеоконтроллеров!!!
Вряд ли ты найдешь описания портов современных видеоконтроллеров. ИМХО это большая коммерческая тайна , только если NDA заключить. Правда можно например изучить исходники XFree86 последней, если сможешь понять , что к чему там. К тому же есть риск сжечь карточку, об этом не стоит забывать
> Вряд ли ты найдешь описания портов современных видеоконтроллеров. ИМХО > это большая коммерческая тайна , только если NDA заключить. Правда > можно например изучить исходники XFree86 последней, если сможешь понять > , что к чему там. К тому же есть риск сжечь карточку, об этом не > стоит забывать >
Да ещё и моник впридачу!!!
Ну хрен с ним с разнообразным ускорением 3D, хотя бы пространство 3B0-3BB, 3C0-3DF узнать, что к чему!!!
Posted via RSDN NNTP Server 1.9 beta
Не бойся выглядеть глупо, от этого ты выглядишь ещё глупей!!!
S>Да ещё и моник впридачу!!!
Вполне возможно !! S>Ну хрен с ним с разнообразным ускорением 3D, хотя бы пространство 3B0-3BB, 3C0-3DF узнать, что к чему!!!
Если ты скажешь какая у тебя видеокарточка, то я смогу выслать тебе только тот кусочек сырцов из XFree86, который к ней относится (если там он есть). Там можно точно найти описание некоторых регистров.
> Если ты скажешь какая у тебя видеокарточка, то я смогу выслать тебе > только тот кусочек сырцов из XFree86, который к ней относится (если там > он есть). Там можно точно найти описание некоторых регистров. >
А неужели этот регион регистров не стандартизирован VESA?
NVIDIA RIVA TNT2 32MB!!!
А кстати от самой видюхи зависит регион адресного пространство на, который её память отображается или его можно изменить? Как я почитал вроде мы сами можем их задавать!!!
Posted via RSDN NNTP Server 1.9 beta
Не бойся выглядеть глупо, от этого ты выглядишь ещё глупей!!!
S>А неужели этот регион регистров не стандартизирован VESA?
есть стандарт VESA 1.x/2.x, который видеокарта может поддерживать, а register-level programming для каждой видеокарты фактически свой (для одного типа он просто расширяется). S>NVIDIA RIVA TNT2 32MB!!!
А мыло? S>А кстати от самой видюхи зависит регион адресного пространство на, который её память отображается или его можно изменить? Как я почитал вроде мы сами можем их задавать!!!
Для реального режима видеопамять всегда отображается в один и тот же регион памяти, т.к. всегда есть предел в 1 Мб. Ты как я понимаю используешь режим линейной адресации в реальном режиме (это когда мы устанавливаем теневой регистр сегментного регистра на линейную адресацию). Если же ты работаешь в защищенном режиме, то тебе придется писать свой дравер для каждой видеокарты, которую ты будешь использовать, а он будет работать на уровне регистров (или может быть VESA юзать?)
> есть стандарт VESA 1.x/2.x, который видеокарта может поддерживать, а > register-level programming для каждой видеокарты фактически свой (для > одного типа он просто расширяется). >
А ещё есть VESA 3!!!
> А мыло? >
stanky@mail333.com
> Для реального режима видеопамять всегда отображается в один и тот же > регион памяти, т.к. всегда есть предел в 1 Мб. Ты как я понимаю > используешь режим линейной адресации в реальном режиме (это когда мы > устанавливаем теневой регистр сегментного регистра на линейную > адресацию). >
Именно!!!
> Если же ты работаешь в защищенном режиме, то тебе придется писать свой > дравер для каждой видеокарты, которую ты будешь использовать, а он будет > работать на уровне регистров (или может быть VESA юзать?) >
Дык он и в реальном режиме нужен!!!
Какая разница-то? Имеется ввиду, что мы не пользуемся функциями BIOS'а!!!
Posted via RSDN NNTP Server 1.9 beta
Не бойся выглядеть глупо, от этого ты выглядишь ещё глупей!!!
Да, кстати, на мой вопрос так и не было ответа!!!
Можем мы сами задать регион адресного пространства на, которое видеопамять накладывается?
И ещё некоторые непонятки:
Винда показывает мне 3 адресных пространства видеопамяти: A0000-BFFFF (ну с этим всё понятно — пережитки прошлого), D0000000-D1FFFFFF (это же мне и VESA'вские функции выдают, а размер этого региона соответствует размеру памяти моей видюхи 32МБ) и абсолютно мне непонятный регион D2000000-D2FFFFFF (16МБ)!!! Откуда он взялся и для чего он нужен?
Потом посмотрел на ноуте с видюхой в 8МБ и просто офигел: регионы D0000000-D7FFFFFF (128МБ) и DFE80000-DFEFFFFF (512КБ)!!!
Кто мне может это объяснить?
Posted via RSDN NNTP Server 1.9 beta
Не бойся выглядеть глупо, от этого ты выглядишь ещё глупей!!!
>> А мыло? S>stanky@mail333.com
выслал S>Дык он и в реальном режиме нужен!!! S>Какая разница-то? Имеется ввиду, что мы не пользуемся функциями BIOS'а!!!
Вот именно, что функций биоса нет, поэтому если ты используешь защищенный режим, то тебе нужно будет написать драйвер к каждому устройству, которое ты будешь использовать
> выслал >
Тхенксь!!!
> Вот именно, что функций биоса нет, поэтому если ты используешь > защищенный режим, то тебе нужно будет написать драйвер к каждому > устройству, которое ты будешь использовать >
Не, я имел ввиду, что если не использовать функций BIOS'а в реальном режиме, то и для него драйвер тоже нужен!!!
Posted via RSDN NNTP Server 1.9 beta
Не бойся выглядеть глупо, от этого ты выглядишь ещё глупей!!!