知乎地址http://www.zhihu.com/question/20722310
里面提到了一个显存地址的东西,B8000H 到 C7FFFH,通过计算,此地址区间的大小为3.5M左右。
本机计算机windows10 64位集成显卡,显示的显存地址空间为C0000000-C03FFFFF,以及B0000000-BFFFFFFF,大小差不多是4M+255M,同文中给的显存地址空间差距较大。
个人理解造成这个结果的原因:
无论是集成显卡的共享内存还是独立显卡的独立显存,都需要在地址空间上开辟一个区域,供CPU往里面写将要显示的数据(显示器的分辨率,以及每个像素的颜色信息)。
但是此地址空间不能占用左右的计算机内存地址空间,不然系统无法获得内存,便无法运行了,因此系统会在显存地址空间以及系统可使用的内存地址空间做一个权衡。
如果物理内存较小,就只满足基本的显存,如果物理内存较大,系统也有较大的显示信息,就多分一些,这样可以保存多帧需要显示的数据,显示连贯一些。
如果系统为32位系统,显存是不可能超过4G的,即使使用独立显存,显存的大小超过了4G,最终分配的显存地址空间,可能只有1G左右。当系统达到64位时,就可以利用更大的显存了。
好像有的显存还会分为两部分,一部分是即将显示的图像信息,一部分是需要处理的显示素材信息。因为一般需要的显存大小,同显示的分辨率以及显示的颜色位数相关,比如2160×1440*32/8,显存大小约是12M,上面计算的显存大小超过了12M,应该是保存素材的显存吧。
时间: 2025-01-13 14:57:28