Руководства по разработке операционной системы позволяют точно получить данные экрана путем записи непосредственно в VGA или EGA или Super VGA, но я не понимаю, какова реальная разница между записью на фиксированный адрес для отображения и записью на видеокарту напрямую, либо на борту или съемный? Я просто хочу, чтобы основные разъяснения моей путаницы по этому вопросу по моей проблеме
И поскольку дело обстоит не так просто с переменными в картах, соединительных интерфейсах, шинах, архитектурах, системах на кристалле, встроенных системах и т. Д., Мне трудно найти способ понять идею, лежащую в основе этих 100%. , Будут ли фиксированные адреса отличаться от высокопроизводительного графического процессора до низкоуровневого встроенного? Почему и почему нет?
Одна из моих целей в программировании - разместить ядро и создать операционную систему, и это действительно надуманная мечта. Непонимание терминологии не только мешает мне в некоторых областях, но и заставляет меня казаться глупым в вопросах аппаратного обеспечения.
ДОПОЛНИТЕЛЬНО: Некоторые из этих текущих ответов говорят об использовании максимально адресуемой памяти процессора в спецификациях на 16-разрядных. Проблема заключается в некоторых из этих возникающих проблем:
1. Как насчет собственной памяти карты? Это не требует системной оперативной памяти для самих данных экрана.
2. А что в старших битовых режимах? И вы не можете не пренебрегать BIOS в реальном режиме (x86) и по-прежнему обращаться к памяти через AL?
3. Как концепция записи по фиксированному адресу останется неизменной на графическом процессоре с множеством регистров и производительностью на уровне или выше фактического микропроцессора?
Ответы:
Технически VGA означает Video Graphics Array , видеостандарт 640x480, представленный в 1987 году. В то время это было относительно высокое разрешение, особенно для цветного дисплея.
До появления VGA у нас было несколько других графических стандартов, таких как hercules, которые отображали либо текст (80 строк по 25 символов), либо для относительной монохромной графики высокой четкости (в разрешении 720x348 пикселей).
Другими стандартами того времени были CGA ( цветной графический адаптер ), который также допускал до 16 цветов при разрешении до 640x200 пикселей. Результат будет выглядеть так:
Наконец, примечательным стандартом для ПК был улучшенный графический адаптер (EGA), который позволял разрешать изображения до 640 × 350 с 64 цветами.
(Я не обращаю внимания на стандарты, не относящиеся к ПК, чтобы сохранить этот показатель относительно коротким. Если я начну добавлять стандарты Atari или Amiga - до 4096 цветов одновременно - тогда это будет довольно длинным.)
Затем в 1987 году IBM представила компьютер PS2. Он имел несколько примечательных отличий по сравнению со своими предшественниками, которые включали новые порты для мышей и клавиатур (ранее мыши использовали последовательные порты с 25 контактами или последовательные порты с 9 контактами, если у вас была мышь); стандартные 3,5-дюймовые диски и новый графический адаптер с высоким разрешением и множеством цветов.
Этот графический стандарт назывался Video Graphics Array . Для передачи аналоговых сигналов на монитор использовался 3-рядный 15-контактный разъем. Этот разъем просуществовал до нескольких лет назад, когда его заменили превосходные цифровые стандарты, такие как DVI и порт дисплея.
После VGA
Прогресс не остановился на стандартах VGA. Вскоре после введения VGA возникли новые стандарты, такие как VGA 800x600 S uper (SVGA), в котором использовался тот же разъем. (Hercules, CGA, EGA и т. Д. Имели свои собственные разъемы. Вы не могли подключить монитор CGA к VGA-карте, даже если пытались отобразить достаточно низкое разрешение).
С тех пор мы перешли к дисплеям с гораздо более высоким разрешением, но наиболее часто используемым названием остается VGA. Даже если правильные имена будут SVGA, XVGA, UXGA и т. Д. И т. Д.
(Графика предоставлена Википедией)
Еще одна вещь, которая называется «VGA», - это разъем DE15, используемый с оригинальной картой VGA. Этот обычно синий разъем - не единственный способ передачи аналоговых сигналов VGA на монитор, но он является наиболее распространенным.
Слева: DB5HD Справа: альтернативные разъемы VGA, обычно используемые для лучшего качества)
Третий способ использования VGA - это описание графической карты, хотя эта карта может давать совершенно другие разрешения, чем VGA. Использование является технически неправильным или, по крайней мере, должно быть «VGA-совместимой картой», но обычная речь не имеет значения.
Это оставляет запись в VGA
Это происходит из-за того, что память на IBM XT была разделена. Процессор может получить доступ к 1 МБ (1024 КБ) памяти. Нижние 512 КБ были зарезервированы для оперативной памяти, верхние 512 КБ - для дополнительных карт, ПЗУ и т. Д.
В этой верхней области отображена память карт VGA. Вы можете напрямую написать в него, и результат будет отображаться на дисплее.
Это использовалось не только для VGA, но и для альтернатив того же поколения.
( Источник карты ASCII).
источник
Dx-nn
разъемов,x
это размер корпуса,nn
это количество контактов. Размер оболочки B равен размеру параллельного порта (или старого 25-контактного последовательного порта полной реализации). Shell E имеет тот же размер, что и последовательный порт. Таким образом , технически , то VGA разъем 15-контактный разъем будет DE-15, но это никогда не было частью оригинальной линейки разъемов. AFAIK никогда не существовало до использования IBM на PSGA / MCGA, VGA и 8514 / a. В Википедии есть хорошее объяснение: en.wikipedia.org/wiki/D-subminiatureЗапись по «фиксированному адресу» - это, по сути, запись непосредственно на видеокарту. Все эти видеокарты ISA (CGA, EGA, VGA) по существу имели некоторый объем ОЗУ (и регистров), отображаемый непосредственно в память ЦП и пространство ввода / вывода.
Поэтому, когда вы записали байт в определенную область памяти, этот символ (в текстовом режиме) сразу появился на экране, поскольку вы фактически записали в память, расположенную на видеокарте, а видеокарта просто использовала эту память.
Сегодня все выглядит очень запутанно, особенно если учесть, что сегодняшние видеокарты иногда называют VGA (и они имеют сходство с «настоящими» VGA-картами 1990-х годов). Однако даже современные карты эмулируют некоторые функции этих старых конструкций (вы можете загружать DOS на большинстве современных ПК и использовать программы DOS, которые напрямую записывают в видеопамять). Конечно, в наше время все это эмулируется в прошивке видеокарты.
источник
На самом деле разницы нет: если вы пишете на адрес видеопамяти, аппаратное обеспечение направит его на видеокарту.
Если вы пишете свою собственную операционную систему, вам, вероятно, придется проделать огромную работу, чтобы заставить видеокарту отображать свою память так, как вы хотите, начиная со сканирования шины PCI, чтобы найти карту.
источник
До сих пор ответы объясняли, что старые видеокарты работали с отображением видеопамяти в адресное пространство процессора. Это были карты собственной памяти. Северный мост знает, как перенаправлять запросы на эту сопоставленную память на устройство VGA.
Кроме того, появились новые расширения и новые режимы для VGA-совместимых карт. Это привело к созданию VESA BIOS Extensions (VBE), которые работают через
int 10h
. Это поддерживает базовое 2D ускорение (BitBlt), аппаратные курсоры, двойную / тройную буферизацию и т. Д. Это основной метод для полноцветного отображения при любом поддерживаемом разрешении (включая высокое разрешение). При этом обычно используется внутренняя память карты, а северный мост выполняет перенаправление, как в классическом VGA. Это самый простой способ использования графики полного цвета / полного разрешения.Далее мы рассмотрим прямой метод доступа к графическому процессору без использования BIOS, который обеспечивает доступ к тем же функциям, что и VBE, и, возможно, к дополнительным. Мое понимание здесь довольно размыто. Я думаю, что этот интерфейс зависит от конкретного устройства, но я совсем не уверен в этом.
Кроме того, существует интерфейс графического процессора, который может поддерживать 3D-ускорение / вычисление GP-GPU и т. Д. Для этого, безусловно, требуются драйверы или спецификации, предоставляемые производителем, для полного использования, и часто существуют материальные различия даже между устройствами одного и того же производителя.
источник