当前位置:首页 > 内存 > 正文

电脑显存和内存的区别

  • 内存
  • 2024-05-31 02:03:40
  • 5583

一、计算机底层是如何访问显卡的?

首先,我要指出的是,我们这里只讨论计算机!首先与显卡进行通信,通过读写I/O地址空间、切换显卡模式、设置显卡地址映射将显存地址映射到物理内存地址。接下来就是控制长时显卡,这是通过重写显存,继续读写输入输出地址来完成的。显卡驱动需要实现这些接口。我一直不太了解OpenGL的基本接口,也许冯东更了解。先说一下DirectX。DirectX通过COM控件公开接口,这意味着API实际上是一些函数地址(对应于虚拟C++函数)。显卡驱动制造商实现Direct3D所需的COM对象称为Direct3D设备对象(我对此记忆模糊)。这可能是一个错误,在我相信你之前我会再次确认这一点。)如果确实如此,只需查看D3D文档即可。驱动程序本身和用户空间COM控件可以通过内存映射、扩展IRP内存或管道进行通信。流处理器是GPU的处理核心,因为GPU是高度并行的,并且有很长的流水线,所以处理核心很多,每个处理核心都是一个流处理器(根据不同的解释,有时每个处理核心都是)。。包含多个流处理器,有时多个处理核心被称为单个流处理器)。点单位用于将空间坐系上的顶点数据转换为平面坐标系,但过程可能与你想象的不一样,基本上真正的工作是确定z-index。纹理单元用于映射。显卡无法访问内存,但是CPU可以通过前面提到的内存映射来访问显存。当然,最直接的方式就是使用I/O空间。内存、CPU、显存、显卡之间的数据交互必须通过数据总线间接完成。这就是从B8000H开始的内存映射和空间映射的原理。每次总线交换数据时,必须确保总线上的地址就是你要访问的地址(但这是硬件工程师需要考虑到的,甚至系统程序员也不需要深入了解))。这个地址可能对应显存、对应的I/O空间、对应的内存等。因此,写入以B8000H开头的物理内存地址时,是直接写入显存的。至于延迟和等待,这是一个无效的假设,因为读写内存也存在延迟和等待。十年前,Intel处理器每次读写内存时会等待大约140纳秒,而目前的水平是30纳秒以上(考虑到CPU时钟周期约为0.5纳秒,这个延迟是非常长的)。所以答案是肯定的,写入显存时会有延迟,一般会比写入内存时的延迟大很多。