兰陵月 发表于 2017-10-12 10:56:01

关于显存(地址)映射到内存(地址)的理解

来自:
《X86汇编语言:从实模式到保护模式》(李忠 王晓波 余洁等著)
中国版本图书馆CIP数据核字(2012)第253290号
2013年1月第1次印刷

关于显存(地址)映射到内存(地址)该如何理解?


上图来源:《X86汇编语言:从实模式到保护模式》第48页


上图来源:《X86汇编语言:从实模式到保护模式》第49页

书中上述内容并未提及显存映射到内存到底是如何具体实现的?

请鱼油大大赐教,到底是如何具体实现的呢?是硬件实现?还是有一套软件机制?

兰陵月 发表于 2017-10-12 11:15:01

@jun @康小泡 @~风介~ @人造人 @西电图图 @fc1735 @不二如是 @liaoluo @zealstar

上善若水··· 发表于 2017-10-12 12:21:43

CPU对外部设备不能直接控制,如显卡,直接控制设备的是插在扩展插槽上的接口卡,接口卡与CPU总线相连。CPU通过总线向接口卡发送命令,接口卡根据CPU的命令控制外部设备。
内存地址空间:0-7FFFH 主随机存储器地址空间
                     8000H-9FFFH 显存地址空间
                     A000H-FFFFH 各个ROM地址空间
建议看下:《汇编语言(第三版)》 王爽 清华大学出版社   p9-p12

兰陵月 发表于 2017-10-12 16:22:12

本帖最后由 兰陵月 于 2017-10-12 16:24 编辑

上善若水··· 发表于 2017-10-12 12:21
CPU对外部设备不能直接控制,如显卡,直接控制设备的是插在扩展插槽上的接口卡,接口卡与CPU总线相连。CPU ...

感谢“上善若水”宝贵的回复。

我是否可以这么理解:
1、接口卡焊接在主板上,它的位置(地址)位于0xA0000~0xEFFFF内,这段内存属于CPU可以访问的0~FFFFF内。
2、CPU访问位于0xA0000~0xEFFFF的接口,实际上就是访问自己可以合法访问的内存。
3、接口卡收到来自己CPU的访问请求后,有自己专门的机制(或者是方法、手段)再访问所控制的显存。
4、所以CPU“访问显存”的过程就完成了。
5、以上就是所谓的“映射”。

所谓的映射过程就是通过硬件完成的(可能还含有软件的过程),这个硬件就是接口卡;

上善若水··· 发表于 2017-10-12 16:36:15

大概就是这样的,CPU的访问内存空间大小与其地址总线有关,所以如果CPU的地址总线是32位的,就可以访问2^32=4GB的内存大小,所以有些电脑CPU的地址总线只有32位,多插几个内存条,其实一点意义没有!

兰陵月 发表于 2017-10-12 16:37:00

上善若水··· 发表于 2017-10-12 16:36
大概就是这样的,CPU的访问内存空间大小与其地址总线有关,所以如果CPU的地址总线是32位的,就可以访问2^32 ...

嗯,我是应对教材里面的16位系统20根线来说的

兰陵月 发表于 2017-10-12 16:43:36

本帖最后由 兰陵月 于 2017-10-12 16:44 编辑

上善若水··· 发表于 2017-10-12 12:21
CPU对外部设备不能直接控制,如显卡,直接控制设备的是插在扩展插槽上的接口卡,接口卡与CPU总线相连。CPU ...

各类接口卡都通过总线和CPU相连,因此CPU访问接口卡实际就是访问自己可以合法访问的内存范围。

也就是说CPU访问显卡(通过接口卡间接访问显卡)时,根本就不知道那是“显卡”,只知道那是“我(CPU自己)”可以访问的内存(或内存地址)。

这样接口卡通过总线就和CPU建立了连接,接口卡自己又和显卡有连接,因此CPU和显卡之间就形成了映射关系(应该说内存地址和显卡里要显示的相关信息如什么位置显示,显示什么,什么颜色,闪烁不闪烁灯形成映射关系)。

至于接口卡是怎么来控制显卡的,显卡自己内部又是如何工作的,那又是接口卡的处理器和显示卡的处理器另外一种事情了,是吧~~~

上善若水··· 发表于 2017-10-12 16:43:59

一般像接口卡扩展插槽之类的,都是硬件电路板,其自身都是有一套系统的(简单点说就是嵌入式系统),它们内部会有相应的硬件驱动程序来完成它们应该完成的工作!

兰陵月 发表于 2017-10-12 16:45:34

上善若水··· 发表于 2017-10-12 16:43
一般像接口卡扩展插槽之类的,都是硬件电路板,其自身都是有一套系统的(简单点说就是嵌入式系统),它们内 ...

嗯,已经基本明白了,和我原来理解的应该是一样~~多谢多谢~~
页: [1]
查看完整版本: 关于显存(地址)映射到内存(地址)的理解