Domain-Wall Memory Buffer for Low-Energy NoCs

Domain-Wall Memory Buffer for Low-Energy NoCs

主要工作

  • 我们基于SRAM在NoC中使用的头尾指针概念(循环缓冲区),创建了一个基于DWM的FIFO实现。

  • 我们创建了一个“移位寄存器”风格的FIFO,包括双轨纳米线方法,利用DWM的移位操作特性来实现高效的NoC缓冲区设计。

  • 我们对我们的DWM设计进行了评估,使用64核CMP中的基准流量在Mesh中进行测试。

DWM: Domain-wall memory磁畴壁存储器

  • DWM 由磁性纳米线阵列组成,其中每根纳米线由许多由磁畴壁 (DW) 分隔的磁畴domain组成。
  • 每个磁畴都有自己的磁化方向
  • 多个域共享一个用于读写操作的访问点,DWM中的存储元件和存取器件不具有一一对应的关系
  • DW 运动是通过在纳米线的头部或尾部施加短电流脉冲来控制的,以便将不同的域与接入点对齐

随机存取需要两个步骤才能完成:

  • 步骤1——移动目标磁畴并将其与存取晶体管对齐;
  • 步骤2——施加适当的电压/电流来读取或写入目标位。
    在这里插入图片描述

磁性纳米线阵列设计

队列被实现为一组 N 个同时移位的赛道存储器,N 是 flit 的位数,这样每个磁畴就代表一个flit的存储(N条nanowire一同移动)

  1. 循环缓冲区(Circlar Buffer,CB)方案: 如图二(a)所示,写端口在中间的位置。易知,有一半长度的nanowire是没有存储数据的(最左端和最右端对齐的需求)
  • 循环缓冲区(CB)使用单个读写端口,通过移位操作将尾部域与访问点对齐以进行写入,然后将头部域与访问点对齐以进行读取。
  • CB方案的缺点在于,为了将最左边或最右边的域与访问点对齐,需要的纳米线长度几乎是设备有用存储长度的两倍,这增加了纳米线的长度和移位操作的需求。而且需要移位对齐操作以进行读or写。
  1. 线性缓冲区(Linear Buffer, LB):作者提出了一种线性缓冲区的概念,如图2(b)所示。在这个方案中,数据通过“赛道”(Racetrack)类似于移位寄存器一样进行移动。这种方法的目的是改善CB方案中的一些不足之处。
  • 在这种方案中需要使用有限状态机 (FSM) 进行控制,4种状态的转换如图3所示
  • 使用一个简单的移位寄存器来跟踪当前活动的读头,该移位寄存器的长度与队列中向相同方向移位的 flit 数量相同。该移位寄存器可以使用DWM来实现

在这里插入图片描述

  1. 增加访问点数量:为了提高性能,可以增加更多的读取访问点。虽然这会增加一些静态功耗,但由于读取端口的相对较小,这不会显著降低纳米线的密度。

  2. 引入临时SRAM存储:为了将读取或写入操作从关键路径中移开,可以引入临时SRAM存储来缓冲数据。

关于FSM的设计:

  • 简化FSM,假设读取访问点之间间隔一个磁畴,并且数据必须在赛道上保持连续(即flits之间没有间隙)。
  • 假设写入和位移需要半个周期,而读取需要一个周期(详见第5节)。因此,缓冲区有四种可能的状态(见图4):
FSM的4种状态
RW-Aligned队列头与读取访问点对齐,尾部指针与写入访问点对齐。
R-Aligned队列头与读取访问点对齐,但尾部指针未对齐。
W-Aligned尾部指针与写入访问端口对齐,但队列头未与读取访问点对齐。
Unaligned既没有队列头也没有尾部与访问点对齐。

这个FSM可以轻松地扩展到 更大的间隔(更多磁畴)的读取访问点之间,通过添加额外的“unaligned”状态。

在这里插入图片描述

在这里插入图片描述

  1. 双线性缓冲器(Dual)
  • 连续读取会引入额外的读取延迟,因此使用双线性缓冲器
  • 双线性缓冲器的纳米线的长度是LB的一半,但读访问点也减少了一半,并且与LB具有类似的FSM控制(见图5)。
  • 双Racetrack结构允许交替进行读取和写入,从而实现了双端口
  • 添加了两个额外的控制位“读取所有者”和“写入所有者”来管理每个周期中访问哪个赛道
  • 对于每次访问,所有者位都会翻转
  • 双线性缓冲器的控制开销与 LB 类似

在这里插入图片描述

开销分析

  1. CB 方案(Circlar Buffer方案):

    • 需要存储读写指针(每个 lg(N) 位)。
    • 存储当前 racetrack 的偏移值(lg(N) 位)。
    • 需要比较器、增减电路。
    • 为了防止数据丢失,需要 N-1 个额外的 racetrack 域,当 racetrack 移动到两端时使用。
    • 读取和读/写访问点的存储位置

    注意:

    不需要存储 one-hot 头和存储尾指针,因为它不像传统的基于数组的存储那样使用这些位来激活 word-line。
    如果 CB 方案增加了 SRAM 缓冲区,额外的开销包括一个一位缓冲区和每个 racetrack 的一个有效位。

  2. LB 方案(Linear Buffer方案):

    • 与 CB 方案相比,只需要 N 个域,而不是每个 racetrack 的 2N-1 个域。
    • 额外开销包括两位存储来表示状态机的四种状态
    • 活动读头跟踪:与当前使用的读头数量相同的bit位数(1 hot,位于移位寄存器中)
    • 如果 LB 方案增加了 SRAM 缓冲区,开销与 CB 方案类似。
  3. 双 racetrack 方案:

    • 每个缓冲区需要 N 个域(每个 racetrack 需要 N/2)。
    • 每个赛道两位来表示四种状态
    • 每个缓冲器一个位来表示有效的读头(替代了 RC 移位寄存器,对于每个 racetrack 的长度为四个域的情况)
    • 两位来指示哪个 racetrack 正在控制缓冲区的读写。

实验设计

  1. **实验平台和仿真工具:**实验使用HORNET多核模拟器,它是一个基于周期精确度的仿真器。实验还使用了Sniper仿真器进行系统级模拟,并生成PARSEC基准测试套件的工作负载跟踪。

  2. **被评估的方案:**实验评估了三种Racetrack FIFO方案,即CB(Copy-based)、LB(Length-based)和双 racetrack 方案(Dual)。每个方案都在有和无单个flit SRAM存储的情况下进行测试。

  3. **实验设置:**实验使用了一个模拟的64核网络,采用了o1-turn路由和每个入口端口的8个虚拟通道。每个虚拟通道可以存储8个flit。

  4. **计算性能和能量消耗:**实验中计算了平均flit延迟和能量消耗。HORNET模拟器产生的延迟数据用于在Sniper中进行系统级模拟,以确定通过IPC(Instructions Per Cycle)对性能的影响。

  5. **存储器和能量模型:**实验使用了SRAM、STT-MRAM和Racetrack等不同的存储器模型,并使用来自文献和NVSim的数据进行外围电路功耗计算。对于STT-MRAM和SRAM,还进行了一半数量队列的测试(SRAMHalf和STTHalf)。

  6. **控制电路开销:**为了确定LB和Dual的控制电路开销,研究人员创建了一个45nm标准单元ASIC硬件中FSM的实现,并将其与传统FIFO的one-hot读写点进行比较。

  7. **时钟速度和延迟假设:**实验假设NoC的时钟速度为1GHz,这允许SRAM、STT-MRAM和Racetrack在一个周期内进行读取。STT-MRAM的写入也被乐观地假设为一个周期,类似于SRAM。而Racetrack的移位和写入则需要半个周期。

  8. 详细参数

    • 表1:报告了Racetrack、SRAM和STT-MRAM的虚拟队列的完整能耗参数,包括8个flit的队列和每个flit 128位。
    • 表2:展示了详细的架构参数。
      在这里插入图片描述
      在这里插入图片描述

实验结果分析

  1. Flit延迟(Latency):实验中比较了CB、LB和Dual方案与SRAM基准的flit延迟。

    • CB方案的延迟增加了超过3倍,LB方案的延迟增加了73%。
    • 通过为Racetrack添加一个单个flit SRAM存储单元,CB(CB+S)和LB(LB+S)的延迟开销可以降低到分别为13%和10%。
    • SRAM存储单元允许Racetrack FIFO支持有限数量的并发读写,从而降低了Racetrack-only方案的性能开销。
    • Dual方案在不添加SRAM的情况下实际上优于CB+S和LB+S方案,但与全SRAM FIFO相比仍需额外8%的延迟开销。
    • 通过为Dual添加类似的SRAM存储单元(Dual+S),延迟降低到距离全SRAM情况下仅有2%的程度,相当于将SRAM虚拟通道数量减半的开销。
  2. 系统性能(IPC):实验中将上述延迟对全SRAM缓冲区进行了归一化,以IPC的形式展示了对全系统性能的影响。

    • CB方案导致22%的IPC下降,LB方案导致7.2%的IPC降低。
    • 添加SRAM头flit存储单元后,LB+S和Dual方案几乎无法区分,与SRAM相比仅需额外1.7%的开销,与SRAMHalf方案相差不到0.5%。
    • Dual+S与SRAM几乎无法区分。
  3. 能量消耗:实验根据表1中的信息计算了缓冲区的能量消耗,并将其归一化为SRAM。预期地,SRAMHalf、STT和STTHalf逐渐降低能量消耗。

    • 在Racetrack方案中,CB的表现略差于其他Racetrack方案,尽管其静态功耗较低,而LB和Dual的表现最佳。
    • CB+S、LB+S和Dual+S由于SRAM的增加静态功耗以及大多数flit同时被写入Racetrack和SRAM缓冲区,因此能量消耗更高。
  4. 能量延迟乘积(Energy Delay Product):能量延迟乘积是在Figure 9中报告的指标

    • CB在能量延迟乘积方面的劣势,导致其比SRAM高出1.5倍以上。
    • LB的能量延迟乘积比SRAM低25%,与STTHalf相似。
    • Dual具有最佳结果,比SRAM节省了50%以上。
    • LB+S和Dual+S的额外能量和性能退化使它们在能耗/性能权衡方面不那么有价值。

综上所述,对于Racetrack缓冲方案的评估结果表明,CB方案性能较差,LB方案相对较好,而Dual方案在性能和能耗方面表现最佳。
通过添加一定数量的SRAM存储单元,可以降低CB和LB方案的延迟开销。然而,添加SRAM存储单元会增加能量消耗
根据能量延迟乘积指标,LB和Dual方案相对于SRAM具有较好的能效比。LB+S和Dual+S方案在能耗和性能方面有额外的退化,因此在能耗/性能权衡考虑下价值较低。
在这里插入图片描述

参考资料

[1] Domain-Wall Memory Buffer for Low-Energy NoCs
[2]
[3]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值