Domain-Wall Memory Buffer for Low-Energy NoCs

目录

  • 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一同移动)

  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]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/717181.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年【道路运输企业主要负责人】考试报名及道路运输企业主要负责人模拟考试

题库来源:安全生产模拟考试一点通公众号小程序 道路运输企业主要负责人考试报名根据新道路运输企业主要负责人考试大纲要求,安全生产模拟考试一点通将道路运输企业主要负责人模拟考试试题进行汇编,组成一套道路运输企业主要负责人全真模拟考…

字符串匹配——烦人的KMP

相信很多同学看到这篇文章的时候,已经被KMP拿捏了吧!KMP算法说难,倒也不是很难,手算都会,说不难吧,短短几行代码愣是看不懂,辗转反侧,翻书查阅,视频讲解,最后…

electron nsis 安装包 window下任务栏无法正常固定与取消固定 Pin to taskbar

问题 win10系统下,程序任务栏在固定后取消固定,展示的程序内容异常。 排查 1.通过论坛查询,应该是与app的api setAppUserModelId 相关 https://github.com/electron/electron/issues/3303 2.electron-builder脚本 electron-builder…

三、低代码平台-单据配置(单表增删改查)

一、业务效果图 主界面 二、配置过程简介 配置流程:业务表设计 -》业务对象建立-》业务单据配置-》菜单配置。 a、业务表设计 b、业务对象建立 c、业务单据配置 功能路径:低代码开发平台/业务开发配置/单据配置维护 d、菜单配置

GCN原理回顾论文导读

Cora_dataset description Cora数据集是一个常用的学术文献用网络数据集,用于研究学术文献分类和图网络分析等任务。 该数据集由机器学习领域的博士论文摘要组成,共计2708篇论文,涵盖了7个不同的学科领域。每篇论文都有一个唯一的ID&#xf…

李沐动手学习深度学习——3.5练习

减少batch_size(如减少到1)是否会影响读取性能? 肯定会影响,计算机io性能而言,随着batch_size增大,读取越来越快,需要的时间越少。这里会涉及到计算机操作系统的知识点,内存与硬盘之…

AmzTrends x TiDB Serverless:通过云原生改造实现全局成本降低 80%

本文介绍了厦门笛卡尔数据(AmzTrends)在面临数据存储挑战时,选择将其数据分析服务迁移到 TiDB Serverless 的思路和实践。通过全托管的数据库服务,AmzTrends 实现了全局成本降低 80% 的效果,同时也充分展示了 TiDB Ser…

kafka进阶(二)

文章目录 前言一、Ack机制二、ISR集合总结 前言 本篇主要介绍kafka 的 Ack机制 和 ISR集合 一、Ack机制 Kafka提供了三种不同的应答机制(ACK): acks0:这是最不可靠的模式。在这种模式下,生产者不会等待来自服务器的…

三、软考-系统架构设计师笔记-计算机系统基础知识

计算机系统概述 计算机系统是指用于数据管理的计算机硬件、软件及网络组成的系统。 它是按人的要求接收和存储信息,自动进行数据处理和计算,并输出结果信息的机器系统。 冯诺依曼体系计算机结构: 1、计算机硬件组成 冯诺依曼计算机结构将…

正向代理的反爬虫与防DDoS攻击:保护网站免受恶意行为

目录 前言 一、正向代理的原理 二、正向代理的反爬虫功能 1. IP地址隐藏 2. 请求多样化 三、正向代理的防DDoS攻击功能 1. 均衡负载 2. IP过滤 结论 前言 在当前互联网环境下,网站常常受到各种恶意行为的侵袭,其中包括爬虫和DDoS攻击。这些行为…

#WEB前端(DIV、SPAN)

1.实验&#xff1a;DIV、SPAN 2.IDE&#xff1a;VSCODE 3.记录&#xff1a; 类? 4.代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdev…

数据库系统架构与DBMS功能探微:现代信息时代数据管理的关键

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua&#xff0c;在这里我会分享我的知识和经验。&#x…

现代化数据架构升级:毫末智行自动驾驶如何应对年增20PB的数据规模挑战?-OceanBase案例

毫末智行是一家致力于自动驾驶的人工智能技术公司&#xff0c;其前身是长城汽车智能驾驶前瞻分部&#xff0c;以零事故、零拥堵、自由出行和高效物流为目标&#xff0c;助力合作伙伴重塑和全面升级整个社会的出行及物流方式。 在自动驾驶领域中&#xff0c;是什么原因让毫末智行…

Linux——基本指令

系列文章目录 文章目录 系列文章目录一、Linux基本常识二、Linux基本指令2.1 mkdir指令&#xff08;重要&#xff09;2.2 rmdir指令2.3 rm指令&#xff08;重要&#xff09;2.4 touch指令2.5 ls指令2.6 pwd指令2.7 cd指令2.7.1 Linux中的目录结构2.7.2 绝对路径和相对路径2.7.3…

对程序、进程、线程、并发、并行、高并发概念的讲解

一、概述 程序、进程、线程、并发、并行和高并发是计算机科学领域中非常重要的概念。 了解进程、线程、并发和并行的概念&#xff0c;可以更好地利用计算机的多核处理器和并行计算能力&#xff0c;提高计算机性能。 了解进程和线程为操作系统中的资源管理提供了基础&#xff…

【风格迁移】对比度保持连贯性损失 CCPL:解决图像局部失真、视频帧间的连贯性和闪烁

对比度保持连贯性损失 CCPL&#xff1a;解决图像局部失真、视频帧间的连贯性和闪烁 提出背景解法&#xff1a;对比度保持连贯性损失&#xff08;CCPL&#xff09; 局部一致性假设 对比学习机制 邻域调节策略 互信息最大化对比学习&#xff1a;在无需标签的情况下有效学习区分…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的教室人员检测与计数(Python+PySide6界面+训练代码)

摘要&#xff1a;开发教室人员检测与计数系统对于优化教学资源和提升教学效率具有重要意义。本篇博客详细介绍了如何利用深度学习构建此系统&#xff0c;并提供了完整的实现代码。该系统基于强大的YOLOv8算法&#xff0c;并对比了YOLOv7、YOLOv6、YOLOv5的性能&#xff0c;展示…

[vue error] TypeError: AutoImportis not a function

问题详情 问题描述: element plus按需导入后&#xff0c;启动项目报错&#xff1a; 问题解决 将unplugin-auto-import 回退到0.16.1 npm install unplugin-auto-import0.16.1 安装完后再次运行就好了

差分题练习(区间更新)

一、差分的特点和原理 对于一个数组a[]&#xff0c;差分数组diff[]的定义是: 对差分数组做前缀和可以还原为原数组: 利用差分数组可以实现快速的区间修改&#xff0c;下面是将区间[l, r]都加上x的方法: diff[l] x; diff[r 1] - x;在修改完成后&#xff0c;需要做前缀和恢复…

PYTHON 自动化办公:压缩图片(PIL)

1、介绍 在办公还是学习过程中&#xff0c;难免会遇到上传照片的问题。然而照片的大小限制一直都是个问题&#xff0c;例如照片限制在200Kb之内&#xff0c;虽然有很多图像压缩技术可以实现&#xff0c;但从图像处理的专业来说&#xff0c;可以利用代码实现 这里使用的库函数是…