Fermi运算单元构成模式
●GF100整体架构
GF100 GPU基于图形处理团簇(翻译为GPC),可扩展流阵列多处理器(SM)和内存控制器(MC)。一个完整GF100实现四个GPC,16个SM和6个内存控制器。通过对GPC的开启和关闭,对SM和内存控制器不同的配置,可以划分出满足不同价位的产品。所以我们也可以称GF100为一个4 GPC核心的GPU。
Fermi架构GF100功能单元分布
图中我们可以看到GF100的总线接口、GigaThread线程调度器、四个完整的GPC单元、六个内存控制器、六个ROP簇和768KB二级缓存。每个GPC单元包含四个多边形引擎。六个ROP簇紧邻二级缓存。
CPU的命令通过Host Interface总线接口传输到GPU。在GigaThread引擎会从系统内存提取指定数据,并把它们拷贝到指定的显存。 GF100集成了6个64位GDDR5内存控制器(共计384位),以便获得高带宽和低延迟。然后GigaThread引擎创建并调度这些block到各个SM,其次再到warp(每个warp包含32个threads线程)交给CUDA Core和其他执行单位。在GigaThread引擎重新分配工作时,图形流水线上的各个单元如细分曲面和光栅化之类的单元也会继续工作。
GF100拥有512个CUDA Core,它们属于16个SM单元,每个SM单元包括32个CUDA内核。每个SM是一个高度平行处理器,最多支持在任何规定时间完成对48个warp的处理 。每个CUDA Core是一个统一的处理器核心,执行顶点,像素,几何和kernel函数。一个统一的768KB二级缓存架构负责线程加载、存储和纹理操作。每组SM里四个纹理单元,共享使用12KB一级纹理缓存,并和整个芯片共享768KB二级缓存。每个纹理单元每周期可计算一个纹理寻址、拾取四个纹理采样,并支持DX11新的压缩纹理格式。
GF100拥有48个ROP单元,用来执行抗锯齿和原子内存操作。这48个ROP单元被分配为6组,每组8个,每组ROP配备一个内存控制器。内存控制器、L2高速缓存和ROP单元是紧密耦合的,也可以成组屏蔽。所有ROP单元和整个芯片共享768KB二级缓存(GT200里是独享)。
关于运行频率,在每一组SM阵列里,纹理单元、一二级缓存、ROP单元和各个单元的频率也都完全不同于以往。除了ROP单元和二级缓存,几乎其他所有单元的频率都和Shader频率(NVIDIA暂称之为GPC频率)关联在一起:一级缓存和Shader单元本身是全速,纹理单元、光栅引擎、多形体引擎则都是一半。
Fermi颠覆了G80以来的分频模式,曾今我们称固定单元的频率是GPU核心频率,而流处理器频率较高,它的速度是核心的2.15或者2.25倍。从Fermi开始“核心频率”就是流处理器频率(也可以称为GPC频率),而固定单元的频率默认为“核心频率”的一半,未来的超频模式肯定要发生变化了。