鱼C论坛

 找回密码
 立即注册
查看: 3935|回复: 8

[已解决]关于显存(地址)映射到内存(地址)的理解

[复制链接]
发表于 2017-10-12 10:56:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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


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

显存映射到内存.png
上图来源:《X86汇编语言:从实模式到保护模式》第48页

显存映射到内存1.png
上图来源:《X86汇编语言:从实模式到保护模式》第49页

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

请鱼油大大赐教,到底是如何具体实现的呢?是硬件实现?还是有一套软件机制?
最佳答案
2017-10-12 12:21:43
CPU对外部设备不能直接控制,如显卡,直接控制设备的是插在扩展插槽上的接口卡,接口卡与CPU总线相连。CPU通过总线向接口卡发送命令,接口卡根据CPU的命令控制外部设备。
内存地址空间:0-7FFFH 主随机存储器地址空间
                     8000H-9FFFH 显存地址空间
                     A000H-FFFFH 各个ROM地址空间
建议看下:《汇编语言(第三版)》 王爽 清华大学出版社   p9-p12
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-10-12 11:15:01 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-12 12:21:43 | 显示全部楼层    本楼为最佳答案   
CPU对外部设备不能直接控制,如显卡,直接控制设备的是插在扩展插槽上的接口卡,接口卡与CPU总线相连。CPU通过总线向接口卡发送命令,接口卡根据CPU的命令控制外部设备。
内存地址空间:0-7FFFH 主随机存储器地址空间
                     8000H-9FFFH 显存地址空间
                     A000H-FFFFH 各个ROM地址空间
建议看下:《汇编语言(第三版)》 王爽 清华大学出版社   p9-p12
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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、以上就是所谓的“映射”。

所谓的映射过程就是通过硬件完成的(可能还含有软件的过程),这个硬件就是接口卡;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-12 16:36:15 | 显示全部楼层
大概就是这样的,CPU的访问内存空间大小与其地址总线有关,所以如果CPU的地址总线是32位的,就可以访问2^32=4GB的内存大小,所以有些电脑CPU的地址总线只有32位,多插几个内存条,其实一点意义没有!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

嗯,我是应对教材里面的16位系统20根线来说的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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和显卡之间就形成了映射关系(应该说内存地址和显卡里要显示的相关信息如什么位置显示,显示什么,什么颜色,闪烁不闪烁灯形成映射关系)。

至于接口卡是怎么来控制显卡的,显卡自己内部又是如何工作的,那又是接口卡的处理器和显示卡的处理器另外一种事情了,是吧~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-12 16:43:59 | 显示全部楼层
一般像接口卡扩展插槽之类的,都是硬件电路板,其自身都是有一套系统的(简单点说就是嵌入式系统),它们内部会有相应的硬件驱动程序来完成它们应该完成的工作!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

嗯,已经基本明白了,和我原来理解的应该是一样~~多谢多谢~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 23:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表