首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VGA与集成图形学

VGA与集成图形学
EN

Stack Overflow用户
提问于 2014-04-25 00:01:16
回答 1查看 2.2K关注 0票数 3

我并不是真的想知道VGA的来龙去脉,而是想知道它如何工作的基本原理(以及集成图形),英特尔的网站说-

因此,这个被盗的内存被用作VGA适配器的帧缓冲区,并且VGA图形控制器的任何读/写都会从那里来吗?

使用1MB被盗VGA内存的示例系统-

因此,如果上述系统以VGA模式运行,并且将某些内容写入遗留的VGA地址范围(0xA0000 - 0xbffff),那么进程将是什么?

目前我的理解是,内存控制器会将其从CPU转发到VGA适配器,然后使用图形转换表(GTT)将其转换为03F0_OOOOh - 03FF_FFFFh范围内DRAM顶部的物理地址?

这是否意味着遗留的VGA内存范围0xA0000 - 0xbffff在DRAM中无法访问,因为VGA适配器正在使用MMIO的地址范围?

如果有人能帮上忙的话,我们将不胜感激,

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-25 13:09:47

几年来,我直接为VGA写了一些东西,所以请记住这一点。

旧的遗留程序(CGA/EGA,VGA)只将所有VRAM内存访问映射到两个段(2x64KByte)。

  1. 图形模式 A 000:0000-A 000:FFFF
  2. 文本模式 B 800:0000-B 800:FFFF 因此booth #1#2 64 KByte内存块不是直接访问的,而是VGA在那里转发自己的内存。使用集成卡+共享内存,它们没有自己的内存,因此芯片组从全局内存(通常是从顶层地址空间)获取内存。在这种情况下,是的,HW无法访问内存(除非使用芯片组的某些特性)。全局内存中的内存空间通常被映射或用于ROM的阴影。
  3. gfx 所有遗留的gfx卡都有自己的FLASH/EEPROM/EPROM/PROMmemory. I can't remember exactly how that works but as I remember expansion **BIOS** area starts around C000:0000 where all **BIOS** able **HW** map their **BIOS** memory (not only gfx cards and not only entire segment in size). Now there are many gfx modes that need more than64KBof **VRAM** so you call gfx **BIOS** to map appropriate memory segment toA000:0000`,或者通过IO、操作在gfx IO端口上的控制寄存器设置它。Gfx卡重新映射内存然后你可以使用它..。
  4. VESA VESA 可以像以前的gfx一样访问,但是VESA添加了LFB (线性帧缓冲区)支持,它可以将整个VRAM映射到内存中,而不仅仅是单个段,还可以使用扩展内存(仅在基础上就没有多大用处)。

就像我几年前写的,我处理这件事,所以如果我错了,请编辑或添加评论.

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23281943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档