目录
- Domain-Wall Memory Buffer for Low-Energy NoCs
- 主要工作
- DWM: Domain-wall memory磁畴壁存储器
- 磁性纳米线阵列设计
- 开销分析
- 实验设计
- 实验结果分析
- 参考资料
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一同移动)
- 循环缓冲区(Circlar Buffer,CB)方案: 如图二(a)所示,写端口在中间的位置。易知,有一半长度的nanowire是没有存储数据的(最左端和最右端对齐的需求)
- 循环缓冲区(CB)使用单个读写端口,通过移位操作将尾部域与访问点对齐以进行写入,然后将头部域与访问点对齐以进行读取。
- CB方案的缺点在于,为了将最左边或最右边的域与访问点对齐,需要的纳米线长度几乎是设备有用存储长度的两倍,这增加了纳米线的长度和移位操作的需求。而且需要移位对齐操作以进行读or写。
- 线性缓冲区(Linear Buffer, LB):作者提出了一种线性缓冲区的概念,如图2(b)所示。在这个方案中,数据通过“赛道”(Racetrack)类似于移位寄存器一样进行移动。这种方法的目的是改善CB方案中的一些不足之处。
- 在这种方案中需要使用有限状态机 (FSM) 进行控制,4种状态的转换如图3所示
- 使用一个简单的移位寄存器来跟踪当前活动的读头,该移位寄存器的长度与队列中向相同方向移位的 flit 数量相同。该移位寄存器可以使用DWM来实现
-
增加访问点数量:为了提高性能,可以增加更多的读取访问点。虽然这会增加一些静态功耗,但由于读取端口的相对较小,这不会显著降低纳米线的密度。
-
引入临时SRAM存储:为了将读取或写入操作从关键路径中移开,可以引入临时SRAM存储来缓冲数据。
关于FSM的设计:
- 简化FSM,假设读取访问点之间间隔一个磁畴,并且数据必须在赛道上保持连续(即flits之间没有间隙)。
- 假设写入和位移需要半个周期,而读取需要一个周期(详见第5节)。因此,缓冲区有四种可能的状态(见图4):
FSM的4种状态 | |
---|---|
RW-Aligned: | 队列头与读取访问点对齐,尾部指针与写入访问点对齐。 |
R-Aligned: | 队列头与读取访问点对齐,但尾部指针未对齐。 |
W-Aligned: | 尾部指针与写入访问端口对齐,但队列头未与读取访问点对齐。 |
Unaligned: | 既没有队列头也没有尾部与访问点对齐。 |
这个FSM可以轻松地扩展到 更大的间隔(更多磁畴)的读取访问点之间,通过添加额外的“unaligned”状态。
- 双线性缓冲器(Dual)
- 连续读取会引入额外的读取延迟,因此使用双线性缓冲器
- 双线性缓冲器的纳米线的长度是LB的一半,但读访问点也减少了一半,并且与LB具有类似的FSM控制(见图5)。
- 双Racetrack结构允许交替进行读取和写入,从而实现了双端口
- 添加了两个额外的控制位“读取所有者”和“写入所有者”来管理每个周期中访问哪个赛道
- 对于每次访问,所有者位都会翻转
- 双线性缓冲器的控制开销与 LB 类似
开销分析
-
CB 方案(Circlar Buffer方案):
- 需要存储读写指针(每个 lg(N) 位)。
- 存储当前 racetrack 的偏移值(lg(N) 位)。
- 需要比较器、增减电路。
- 为了防止数据丢失,需要 N-1 个额外的 racetrack 域,当 racetrack 移动到两端时使用。
- 读取和读/写访问点的存储位置
注意:
不需要存储 one-hot 头和存储尾指针,因为它不像传统的基于数组的存储那样使用这些位来激活 word-line。
如果 CB 方案增加了 SRAM 缓冲区,额外的开销包括一个一位缓冲区和每个 racetrack 的一个有效位。 -
LB 方案(Linear Buffer方案):
- 与 CB 方案相比,只需要 N 个域,而不是每个 racetrack 的 2N-1 个域。
- 额外开销包括两位存储来表示状态机的四种状态
- 活动读头跟踪:与当前使用的读头数量相同的bit位数(1 hot,位于移位寄存器中)
- 如果 LB 方案增加了 SRAM 缓冲区,开销与 CB 方案类似。
-
双 racetrack 方案:
- 每个缓冲区需要 N 个域(每个 racetrack 需要
N/2
)。 - 每个赛道两位来表示四种状态
- 每个缓冲器一个位来表示有效的读头(替代了 RC 移位寄存器,对于每个 racetrack 的长度为四个域的情况)
- 两位来指示哪个 racetrack 正在控制缓冲区的读写。
- 每个缓冲区需要 N 个域(每个 racetrack 需要
实验设计
-
**实验平台和仿真工具:**实验使用HORNET多核模拟器,它是一个基于周期精确度的仿真器。实验还使用了Sniper仿真器进行系统级模拟,并生成PARSEC基准测试套件的工作负载跟踪。
-
**被评估的方案:**实验评估了三种Racetrack FIFO方案,即CB(Copy-based)、LB(Length-based)和双 racetrack 方案(Dual)。每个方案都在有和无单个flit SRAM存储的情况下进行测试。
-
**实验设置:**实验使用了一个模拟的64核网络,采用了o1-turn路由和每个入口端口的8个虚拟通道。每个虚拟通道可以存储8个flit。
-
**计算性能和能量消耗:**实验中计算了平均flit延迟和能量消耗。HORNET模拟器产生的延迟数据用于在Sniper中进行系统级模拟,以确定通过IPC(Instructions Per Cycle)对性能的影响。
-
**存储器和能量模型:**实验使用了SRAM、STT-MRAM和Racetrack等不同的存储器模型,并使用来自文献和NVSim的数据进行外围电路功耗计算。对于STT-MRAM和SRAM,还进行了一半数量队列的测试(SRAMHalf和STTHalf)。
-
**控制电路开销:**为了确定LB和Dual的控制电路开销,研究人员创建了一个45nm标准单元ASIC硬件中FSM的实现,并将其与传统FIFO的one-hot读写点进行比较。
-
**时钟速度和延迟假设:**实验假设NoC的时钟速度为1GHz,这允许SRAM、STT-MRAM和Racetrack在一个周期内进行读取。STT-MRAM的写入也被乐观地假设为一个周期,类似于SRAM。而Racetrack的移位和写入则需要半个周期。
-
详细参数:
- 表1:报告了Racetrack、SRAM和STT-MRAM的虚拟队列的完整能耗参数,包括8个flit的队列和每个flit 128位。
- 表2:展示了详细的架构参数。
实验结果分析
-
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虚拟通道数量减半的开销。
-
系统性能(IPC):实验中将上述延迟对全SRAM缓冲区进行了归一化,以IPC的形式展示了对全系统性能的影响。
- CB方案导致22%的IPC下降,LB方案导致7.2%的IPC降低。
- 添加SRAM头flit存储单元后,LB+S和Dual方案几乎无法区分,与SRAM相比仅需额外1.7%的开销,与SRAMHalf方案相差不到0.5%。
- Dual+S与SRAM几乎无法区分。
-
能量消耗:实验根据表1中的信息计算了缓冲区的能量消耗,并将其归一化为SRAM。预期地,SRAMHalf、STT和STTHalf逐渐降低能量消耗。
- 在Racetrack方案中,CB的表现略差于其他Racetrack方案,尽管其静态功耗较低,而LB和Dual的表现最佳。
- CB+S、LB+S和Dual+S由于SRAM的增加静态功耗以及大多数flit同时被写入Racetrack和SRAM缓冲区,因此能量消耗更高。
-
能量延迟乘积(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方案在能耗和性能方面有额外的退化,因此在能耗/性能权衡考虑下价值较低。