tag 标签: GDDR6

相关博文
  • 热度 14
    2021-11-26 15:51
    1670 次阅读|
    0 个评论
    Speedster7t FPGA芯片中GDDR6硬核控制器详解
    作者: Achronix 资深应用工程师 黄仑 1. 概述 为了适应未来硬件加速、网络加速对片外存储器的带宽需求,目前市面上的高端 FPGA 主要采用了两种解决方法。第一种最常见的就是 HBM2 高带宽存储器, 2016 年 1 月, HBM 的第二代技术 HBM2 正式成为工业标准。集成了 HBM2 存储器的高端 FPGA 可以提供高达 460GB/s 的带宽,但是因为 HBM2 技术工艺要求高,目前芯片的良率和产量都会受到很大的影响,所以集成 HBM2 的高端 FPGA 成本一直居高不下。第二种是 GDDR6 存储器, 2018 年, GDDR6 发布,数据速率达到了 16Gbps 。 Achronix 看中了 GDDR6 在数据存储中的带宽优势,在新一代 7nm 工艺的 Speedster7t FPGA 集成了 GDDR6 硬核控制器,最高可支持高达 512GB/s 的带宽,同时可以有效地控制使用成本。 2. Speedster7t FPGA 中的 GDDR6 控制器 Achronix 的 Speedster7t FPGA 集成了 8 个 GDDR6 的硬核,如图 1 所示。 图 1 Speedster7t FPGA 架构 每个 GDDR6 的硬核支持双通道。总的带宽是 16Gbps x 16( 位宽 ) x 2( 通道 ) x 8( 控制器 )/8 = 512 GB/s ,每个控制器有两个独立的访问通道,每个通道的数据位宽为 16 位。这些 GDDR6 控制器和 PHY 都是硬 IP ,无需消耗 FPGA 中的可编程逻辑资源,也无需面对布局布线所带来的时序收敛挑战。这些特征共同使 GDDR6 方案成为当前高端 FPGA 性能和成本兼顾的绝佳选择。 3. GDDR6 子系统概述 Achronix Speedster7t GDDR6 子系统包括 GDDR6 PHY 和 GDDR6 控制器,全部采用了硬核设计。整个子系统包括 GDDR6 PHY IP 、 GDDR6 控制器 IP 、时钟和复位模块, APB 接口和 AXI4 用户接口可以连接到二维片上网络( 2D NoC )或者内部编程逻辑,如图 2 所示。 图 2 Speedster7t GDDR6 子系统框图 时钟和复位模块用来产生支持 GDDR6 PHY 和 GDDR6 控制器的时钟以及所需的复位信号,它的输入时钟来自于 FPGA 片上的 PLL 。对于数据速率为 16Gbps 的 GDDR6 ,控制器时钟为 1GHz , PHY 时钟为 500MHz ,命令地址时钟跑在 2GHz , word clk 也就是 WCLK 运行在 8GHz ,其他速率需要的时钟如表 1 所示。 GDDR6 控制器 IP 支持两个通道,每个通道为 16bit 位宽。两个通道独立访问不同的 GDDR6 空间。控制器的用户接口为标准的 AXI 协议,可以连接到二维片上网络上或者直接连到内部的可编程逻辑。在另外一边,控制器和 PHY 的接口为 DFI4.0 接口。 表 1 GDDR6 支持的时钟频率模式 PHY IP 用来连接器件外围的高速 GDDR6 颗粒,它会像其他 DRAM PHY 一样产生 PRECHARGE 、 ACTIVE 和 REFRESH 等命令。 APB 全称 Advanced Peripheral Bus ,字面上是先进外围总线的意思,该总线协议是 ARM 公司提出的 AMBA 总线结构之一,已成为一种标准的片上总线结构。 APB 总线接口工作在 250MHz ,用来配置 GDDR6 子系统的寄存器, Speedster7t FPGA 的配置电路 FCU 可以在启动的时候通过 APB 总线接口配置 GDDR6 子系统的寄存器,用户逻辑模块也可以在 FPGA 运行的时候通过 APB 总线接口动态配置 GDDR6 子系统的寄存器。 4. GDDR6 控制器结构 GDDR6 控制器模块的详细结构如图 3 所示。它包括主控部分和其他的一些子模块,比如 Multi-port front-end 模块, Reorder 模块, Read modify Write 模块,内存测试模块和内存测试分析模块。 MPFE 模块是前端多端口模块, Speedster7t 上的 GDDR6 控制器为每个通道提供了两个 MPFE 端口,它们支持 AXI4 协议,每个端口能够提供最大 256Gbps 的带宽;其中一个 AXI 端口用于连接到二维片上网络上,位宽为 256 位,时钟是 1GHz 。另一个 AXI 端口用于直接连接到 FPGA 内部的可编程逻辑资源,位宽为 512 位,时钟是 500MHz 。 Reorder 模块用来调整发给 GDDR6 控制器的用户请求的顺序。 Reorder 模块里有一个深度为 64 的队列,用于缓存用户请求,只要队列不满就可以接收新的用户请求。在接收到用户请求以后, Reorder 模块可以调整用户请求的顺序,进而可以大大提高 DRAM 的访问效率。用户可以通过设置不同的参数来调整 reorder 的标准,同时这个模块也可以 bypass 掉,维持用户请求的原来顺序。 RMW 模块是读 - 修改 - 写的模块,先读出内存中的数据内容,然后修改单个或者多个 bit 以后再整体写回。有了这个模块, GDDR6 控制器支持将地址 mask 的功能。 Mem Test 和 Mem Test Analyzer 是用于内存测试的模块, Mem Test 内存测试模块支持生成不同的数据类型去写入 GDDR6 ; Mem Test Analyzer 内存测试分析模块将读到的数据与期望的数据进行比较,从而验证 GDDR6 的硬件接口和读写功能是否正常。 图 3 Speedster7t GDDR6 控制器框图 GDDR6 控制器支持两种模式,正常 x16 模式和 Clamshell x8 模式。在 x16 模式下,控制器提供了每通道 16 位的双通道接口,可以连接一个 GDDR6 颗粒。在 Clamshell x8 模式下,如图 4 所示,控制器提供了每通道 8 位的双通道接口,可以连接两个 GDDR6 颗粒。 Clamshell 模式提供了一种在不改变控制器带宽的情况下,通过在两个 GDDR6 颗粒间 share 地址和命令总线将容量加倍的一种方法。 图 4 GDDR6 Clamshell 模式 后面我们还会继续深入了解 Speedster 7t FPGA 上的一些其他特性,以及这些特性如何运用在数据加速和网络加速应用中,敬请期待。如需更多信息或者有任何疑问您可以通过 Achronix 公众号里联系方式联系我们,也可访问 Achronix 公司官方网站 http://www.achronix.com 参考文献: 1. Micron 8Gb/16Gb GDDR6 Product Brief 2. Achronix website www.achronix.com