GPU显存管理

GPU显存管理

 

GPU显存管理

GPU:有两种方式访问GDDR5,一种是HUB统一接口进行分配,另一种是直接调Controller比如Depth block,color block,texture block等都是直接Controller。直接调用的方式肯定快一些,我觉得这是对像纹理这样比较大块的内容的特殊照顾,显卡的内存结构除了有物理上的结构以外,肯定还有逻辑上的划分。把物理内存分成大小适中的逻辑块,像纹理这样的内存直接到新的逻辑块里面存储,而小的内容就塞在缝里面 - -。(个人猜测,不能当真)

HUB:显存的控制中心,下面有一帮管理内存的Controller小弟,除GPU可以走后门以外其他的都得经过它来获取内存。它的主要工作就是找到对应的Controller,然后交由Controller处理。这里的VM L2是对内存的2级管理吗?

Controller:主要有3个模块,client interface, VM L1, arb。CI用户访问接口,VM L1是分配内存的主要控制器,最后进过ARB仲裁,然后进入到GDDR中。应该是写入的时候需要仲裁,读取都知道位置了最多VM L1查找一下page table。

GDDR5:一个显存颗粒有512M,1G,2G3个档次的容量,他们都是由32个block模块,只是每个模块的容量不一样16M,32M,64M

 

GPU显存管理

 

每个32M的block,包括4个bank group,每个bank group包括16个(或者32)bank

GPU显存管理

 

bank的内部

GPU显存管理

GPU显存管理

关于内存的更详细的描述:DDR内存的终极优化