二事不明,有关BIOS和显存。
问题一:
ROM BIOS是和内存统一编址的吗?
如果不是那么为什么在最低1M空间里有它,如果是那么地址线怎么寻址并且开机后拔了RONBIOS机器照样运行?
问题二:
总是说在A0000H----BFFFFH是显示缓冲区,屏幕上显示的内容存在这里。可是这才128KB啊,它和显卡上的显存是什么关系?
问题点数:20、回复次数:12Top
1 楼zara(Kyrie eleison)回复于 2005-07-17 08:44:04 得分 15
问题一, ROM BIOS 是和内存统一编址的. 寻址方法, 由于 ROM BIOS 直接连接在了系统总线上的, 所以, 并没有特别之处. 开机后, 拔除了 ROM BIOS 机器还能照常运行, 这个有两个原因, 一是 ROM BIOS 的内容被 Shadowed 到了 RAM 中; 另外, 就是运行的内容是受到了限制的, 不能保证可以运行任意的代码的
问题二, A000-BFFF 段是显示缓冲区, 占用了 128K 的地址空间. 但实际上同时占用到的并没有 128K, 因为这个区间是分片的, 不同的显示模式下, 使用到不同的区间段. 最常见的图形模式只是 A000-BFFF 的 64K. 对文本模式, 和简单的图形模式, 这个区间是能够完全地容纳屏幕上的内容的, 但对于高分真彩色的显示模式, 要求的显示存储空就大大地超出了 64K 了, 这时, 是通过显卡相应的页面映射端口, 将显存的不同区间映射到 A000-BFFF 这地址窗口来进行数据操作的Top
2 楼WMA(我不是黄蓉)回复于 2005-07-17 10:11:37 得分 0
多谢楼上大哥的解答!感觉明白了不少。
但是还有点疑问,既然BIOS和内存统一编址,那么它处在E0000H-----FFFFFH的范围,也其上下地址都是RAM,也就是说BIOS是夹在RAM中间的?在地址总线发出地址信号后,是哪个部件把BIOS里的代码或数据所在单元选中的?地址译码器吗?
Top
3 楼zara(Kyrie eleison)回复于 2005-07-17 17:45:03 得分 0
BIOS ROM 的地址范围, 起源于早期的机子. 那是, 机子寻址能力有些, 仅在 1M, 所以, 就将最后面的分配给了 BIOS ROM. 再前面的其实不是立即就是 RAM 的, 可能还有其它外部设备的 BIOS 代码区; 再向前就是视频缓冲区了.
究竟是哪个部件将 BIOS 里面的单元选中的, 笼统地来说, 就是地址译码器. 但这部分的译码功能是有 BIOS ROM 片内实现的, 还是由其外围支持模块实现的, 我也不知道了. -_-#Top
4 楼xp5211314(恋如烟花)回复于 2005-07-18 15:53:27 得分 0
upTop
5 楼WYlslrt(WY.lslrt(http://www.wyos.net))回复于 2005-07-19 09:52:37 得分 0
我看到内存影射时也是很多不明白,到底cpu访问的是ram还是romTop
6 楼hackingtruth(尘封)回复于 2005-07-19 11:11:33 得分 0
upTop
7 楼Fiven_Luo(小五)回复于 2005-07-19 15:37:15 得分 3
CPU访问F000段是ROM还是RAM关键看北桥怎么设置的了。
北桥有寄存器组可以设置该地址段访问ROM还是RAM,一开机访问的是ROM。BIOS Shadow之后,这个寄存器就被BIOS设置成访问RAM了。Top
8 楼WMA(我不是黄蓉)回复于 2005-07-19 17:34:27 得分 0
楼上小五同志你确定吗?你所说的在哪些资料里有?多谢!Top
9 楼dean7411(痞子菜)回复于 2005-07-20 09:16:29 得分 0
studyTop
10 楼cvfgty(Do my self)回复于 2005-07-20 13:33:03 得分 2
BIOS寻址中,1M的以下的空间是直接读取的,但1M以上的空间的寻址就比较麻烦了!
一般不需要理解的!Top
11 楼byakawang()回复于 2005-07-22 20:15:21 得分 0
学习哦Top
12 楼Fiven_Luo(小五)回复于 2005-08-01 18:40:43 得分 0
To: WMA(我不是黄蓉)
我确定是这样的,至少Intel ALviso Platform是这样。
北桥资料找Intel GMCH的Datasheet上面有描述。Top




