DownShift: Tuning Shift Reduction With Reliability for Racetrack Memories

目录

  • DownShift: Tuning Shift Reduction With Reliability for Racetrack Memories
    • 文章摘要:
    • 文章的主要贡献包括:
    • 文章的结构如下:
    • DownShift
      • DownShift通过以下方式改进了现有的数据放置策略:
    • GROGU(Generating Reliability Optimized Grouped Uniencoding)
      • 以下是GROGU的关键特性和工作原理:
  • 参考资料

DownShift: Tuning Shift Reduction With Reliability for Racetrack Memories

这篇文章是关于非易失性赛道存储器(Racetrack Memories, RTM)的研究,标题为“DownShift: Tuning Shift Reduction With Reliability for Racetrack Memories”,发表在《IEEE Transactions on Computers》2023年9月的期刊上。文章的作者包括Asif Ali Khan, Sebastien Ollivier, Fazal Hameed, Jeronimo Castrillon, 和 Alex K. Jones。

在这里插入图片描述

文章摘要:

赛道存储器(RTM)因其超高密度、能效和改善的延迟特性,在内存层次结构中的各个层面上都受到了研究,以提高性能和降低能耗。然而,RTM中固有的位移操作(shift operations)对于数据访问是必需的,但会带来性能损失,并可能引起位置错误。这些因素可能阻碍了RTM在替代低延迟、高可靠性的片上内存方面的应用。智能地在RTM中放置内存对象可以显著减少每次内存访问的位移次数,几乎不增加硬件开销。然而,现有的放置策略在应用于不同架构时可能导致次优性能。此外,这些位移优化技术对RTM可靠性的影响尚未得到充分研究。文章提出了DownShift,一种通用的数据放置机制,通过考虑(1)内存对象的时序和活跃度信息,以及(2)底层内存架构(包括所需的位移容错)来改进先前的方法。此外,文章还提出了一种名为GROGU的新的位移对齐可靠性技术。GROGU利用DownShift实现的减少位移窗口,提供了与现有最先进技术相比更好的可靠性、面积和能耗。DownShift与现有最先进技术相比,减少了3.24倍的位移次数、47.6%的运行时间和70.8%的能耗。GROGU在仅增加3.2%的延迟的情况下,面积消耗减少2.2倍,能耗减少1.3倍,同时提供了16.8倍的位移容错改进。

文章的主要贡献包括:

  1. 提出了DownShift,这是一种新的快速启发式算法,它分析内存跟踪中具有不同生命周期的对象,并将它们分配到不同的数据库集群(DBCs)中,以利用改进的时间局部性进行位移最小化。
  2. 提出了GROGU,这是一种新颖的、协作设计的RTM可靠性方案,它利用DownShift的位移减少来提供高效的可靠性,同时减少资源消耗。
  3. 对不同的数据放置解决方案(包括跨DBC和DBC内部的放置)和不同的可靠性方案进行了全面分析,并分析了各种方案对性能和能耗的影响。

文章的结构如下:

  • 第二部分介绍了RTM架构和属性,以及现有的数据放置和可靠性技术。
  • 第三部分描述了DownShift数据放置方法,用于减少位移。
  • 第四部分提出了GROGU,用于通过协作设计的DownShift改进位移减少。
  • 第五部分展示了实验方法和结果,以证明DownShift与GROGU相比先前工作的面积、能耗和性能优势。
  • 第六部分讨论了可能相关的其他相关工作。
  • 第七部分给出了结论。

DownShift

  • DownShift是一种针对赛道存储器(Racetrack Memory, RTM)的数据放置机制,它旨在通过智能地放置内存对象来减少位移操作的次数,从而提高RTM的性能和可靠性。
  • 位移(shift)操作是RTM中访问数据所必需的,但它们会导致性能损失和位置错误。

DownShift通过以下方式改进了现有的数据放置策略:

  1. 生命周期分析:DownShift考虑了内存对象的生命周期信息,即它们在内存访问序列中的首次和最后出现的时间。通过分析这些信息,DownShift能够识别出生命周期不重叠的变量,这些变量在同一个数据库集群(Domain Wall Block Cluster, DBC)中存储时,可以减少位移操作。

  2. 时间局部性:DownShift利用内存访问序列中的时间局部性,即连续访问的内存对象在时间上接近。通过将这些对象放置在相邻的DBCs中,可以减少在访问这些对象时所需的位移次数。

  3. 位移最小化:DownShift通过将具有不同生命周期的变量分配到不同的DBCs,以及在DBC内部进行优化放置,从而减少了每次内存访问所需的位移次数。这种方法不仅减少了位移操作,还降低了能耗和提高了RTM的可靠性。

  4. 协作设计:DownShift与GROGU(一种新的位移对齐可靠性技术)协作设计,以实现更高的可靠性。GROGU利用DownShift减少的位移窗口,提供了更高效的可靠性保障,同时减少了资源消耗。

  5. 实验结果:DownShift在实验中表现出显著的性能提升。与现有的最先进技术相比,DownShift减少了3.24倍的位移次数,减少了47.6%的运行时间和70.8%的能耗。此外,与领先的可靠性方法相比,GROGU在仅增加3.2%的延迟的情况下,面积消耗减少了2.2倍,能耗减少了1.3倍,同时提供了16.8倍的位移容错改进。

DownShift的提出,为RTM的数据放置提供了一种新的视角,它不仅关注于减少位移操作,还考虑了内存对象的时序和活跃度信息,以及与底层内存架构的兼容性。这种综合考虑的方法使得DownShift能够在不同的RTM架构中实现性能和可靠性的显著提升。

GROGU(Generating Reliability Optimized Grouped Uniencoding)

  • GROGU(Generating Reliability Optimized Grouped Uniencoding)是一种为赛道存储器(Racetrack Memory, RTM)设计的新型可靠性方案,旨在检测和纠正位移操作中可能出现的位置错误
  • GROGU通过在RTM的纳米线(nanowire)两端添加额外的过溢域(overflow domains)来实现这一目标,这些过溢域用于存储特定的编码模式,以便于在发生位移错误时进行检测和修正。

以下是GROGU的关键特性和工作原理:

  1. 过溢域的编码:GROGU在纳米线的两端各添加了w个额外的过溢域,这些域被初始化为一个重复的二进制序列(例如,1和0的交替序列)。这种序列被称为Johnson编码,它类似于一个计数器,用于在位移过程中跟踪纳米线的位置。

  2. 位移操作中的编码维护:在位移操作期间,GROGU通过特定的端口(称为GLW/GLW和GRW/GRW)控制纳米线两端的过溢域,以保持预定的编码模式。这些端口允许在位移过程中插入1或0,以保持Johnson编码的连续性。

  3. 位置错误的检测:GROGU通过比较纳米线的实际编码与预期编码来检测位置错误。如果在位移过程中发生了位置错误,纳米线的编码将与预期的Johnson编码不匹配。GROGU可以检测单个位移错误,并且能够通过更复杂的操作检测和修正多个位移错误。

  4. 编码修复和纠正位移:一旦检测到位置错误,GROGU将执行一系列操作来修复过溢域的编码,并执行必要的纠正位移。这些操作包括分段位移(segmented shifts),它只影响过溢域内的域,而不影响纳米线中的其他数据域。

  5. 可靠性和性能权衡:GROGU的设计允许在保持高可靠性的同时,最小化性能开销。通过在位移操作中隐藏故障检查的延迟,GROGU能够在不影响性能的情况下提供强大的错误检测和纠正能力。

  6. 可扩展性:GROGU的硬件开销相对较低,因为它只需要额外的过溢域和少量的端口。这使得GROGU在不同大小的纳米线和不同的位移距离下都具有良好的可扩展性。

  7. 实验结果:GROGU在实验中显示出了优越的可靠性性能。与现有的可靠性方案相比,GROGU在保持相似或更好可靠性的同时,显著降低了能耗和面积开销。

总的来说,GROGU通过在RTM中引入一种新的编码和位移错误处理机制,提高了RTM的可靠性,同时保持了较低的性能开销和硬件复杂度。这种方案特别适用于与位移最小化策略(如DownShift)结合使用,以实现更优的RTM性能和可靠性。

参考资料

[1] DownShift: Tuning Shift Reduction With Reliability for Racetrack Memories
[2]
[3]

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

2024最受欢迎的3款|数据库管理和开发|工具

1.SQLynx(原SQL Studio) 概述: SQLynx是一个原生基于Web的SQL编辑器,由北京麦聪软件有限公司开发。它最初被称为SQL Studio,后改名为SQLynx,支持企业的桌面和Web数据库管理。SQLynx支持所有流行的数据库&a…

工业一体机实现接口与模块选配

在现代工业自动化和智能制造的浪潮中,工业一体机因其集成化、稳定性高和适应性强的特性而逐渐成为企业生产过程中不可或缺的设备。为了满足不同客户的需求,工业一体机的接口与模块选配功能显得尤为重要。 一、工业一体机的基本概念 工业一体机是将计算、…

跟着B战学习JAVA面试八股文

学习链接:https://www.bilibili.com/video/BV1gm411S7EX/?spm_id_from333.337.search-card.all.click&vd_sourceefbaa07876b231ae3225ba8999116807 创建线程的几种方式? 继承Thread类实现Runnable接口实现Callable接口通过线程池来创建线程 为什么…

【官方Mamba库】原理简述和代码解析

目录 1 代码原理简述1.1 原始结构——SSM1.2 结构改进——S4(Structured State Space for Sequences)1.2.1 离散化1.2.2HiPPO 1.3 最终版本——Mamba(又称S6或selective SSMs) 2 代码库目录结构2.1 mamba_simple.py主体结构2.1.1 …

OLED(2)驱动篇

文章目录 1 概述2 代码简述2.1 OLED 对象2.2 OLEDProtocol 对象2.3 OLEDFont 对象 3 成果展示 1 概述 1)代码仓库:这里尝试了两种面向对象的方式,不足之处敬请指正。 OOP 方式:https://gitee.com/luyaocf/demo-jlc_stm32f407_oop.…

Unity 设计模式 之 行为型模式-【命令模式】【责任链模式】

Unity 设计模式 之 行为型模式-【命令模式】【责任链模式】 目录 Unity 设计模式 之 行为型模式-【命令模式】【责任链模式】 一、简单介绍 二、命令模式(Command Pattern) 1、什么时候使用命令模式 2、使用命令模式的好处 3、使用时的注意事项 三…

FME学习笔记

读取数据 方法一:add reader 通过读模块来进行数据的读取 方法二:FeatureReader Parameters 通过转换器来进行数据的读取 可以通过空间范围进行筛选 在FME中,所有数据处理都要用到的,绝对的重点:转换器&#xff…

【Python】PyCharm: 强大的 Python 开发环境

⭕️宇宙起点 📢 引言🎬 什么是 PyCharm?🔨 PyCharm 的核心特性1. 智能代码编辑2. 调试和测试3. 项目和代码结构导航4. 集成 AI 助手5. 远程开发6. 集成数据库7. 科学工具8. 版本控制集成9. Web 开发 📦 安装 PyCharm&…

黑马智数Day4-1

新增月卡 配置路由完成跳转 {path: /cardAdd,component: () > import(/views/car/car-card/add-card) }<el-button type"primary" click"$router.push(/cardAdd)">添加月卡</el-button> 车辆信息表单验证 <el-form :model"carInf…

Bug:ThreadPoolTaskScheduler搭配CronTask完成定时任务,关闭scheduler后CronTask任务仍然执行?

【问题】执行下面代码后&#xff0c;关闭ThreadPoolTaskScheduler&#xff0c;CronTask仍然继续执行。 Configuration public class config {Beanpublic String getString() throws InterruptedException {Runnable runnable () -> {try {System.out.println("hello r…

《程序猿之设计模式实战 · 适配器模式》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

【后端开发】JavaEE初阶—线程安全问题与加锁原理(超详解)

前言&#xff1a; &#x1f308;上期博客&#xff1a;【后端开发】JavaEE初阶—Theard类及常见方法—线程的操作&#xff08;超详解&#xff09;-CSDN博客 &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondlctrl-CSDN博客 &#x1f308;小编会在后端开发的学习中不…

关于javascript中防抖和节流的使用详解

防抖&#xff08;Debounce&#xff09;和节流&#xff08;Throttle&#xff09;是两种常见的优化技巧&#xff0c;通常用于控制函数在短时间内频繁触发的场景&#xff0c;尤其是在处理用户输入、滚动、窗口大小调整等事件时。它们的主要目的是减少不必要的函数调用&#xff0c;…

超详细超实用!!!AI编程之cursor编写设计模式开闭原则实例(四)

云风网 云风笔记 云风知识库 一、设计模式开闭原则定义 当应用的需求改变时&#xff0c;在不修改软件实体&#xff08;项目模块、类、接口方法&#xff09;的源代码或者二进制代码的前提下&#xff0c;可以扩展模块的功能&#xff0c;使其满足新的需求。即软件实体应当对扩展开…

【Linux】nginx连接前端项目

文章目录 一、项目编译1.编译文件2.dist文件 二、Linux nginx配置三、启动nginx 一、项目编译 1.编译文件 2.dist文件 二、Linux nginx配置 在Xshell软件中&#xff0c;点击CtrlAltF进入文件传输找到地址&#xff1a;/usr/local/nginx/html将dist文件传入 找到nginx.conf&…

git add成功后忘记commit的文件丢了?

本文目标&#xff1a;开发人员&#xff0c;在了解git fsck命令用法的条件下&#xff0c;进行git add成功但由于误操作导致丢失的文件找回&#xff0c;达到找回丢失文件的程度。 文章目录 1 痛点2 解决方案3 总结/练习 1 痛点 开发过程中&#xff0c;分支太多&#xff08;基线分…

CREO教程——2 绘制标准图纸

CREO教程——2 绘制标准图纸 说明&#xff1a;继承第一章设置好的配置文件&#xff0c;这一章进行学习分享如何定制自己的图纸图框&#xff0c;参考国家标准距&#xff0c;定制属于设计师或单位的通用图框。 1.设置工作目录 1.1设置工作目录 1.打开软件设置工作目录&#x…

u盘格式化怎么恢复数据?四款工具来救急!

工作中真的没少碰到过那些让人头疼的数据丢失问题&#xff0c;特别是U盘里的宝贝数据一不小心就“蒸发”了&#xff0c;简直让人欲哭无泪。不过别担心&#xff0c;我作为一个数据恢复的新手小白&#xff0c;最近可是亲测了几款超给力的数据恢复软件&#xff0c;今天就来跟大家分…

19c-TNS-12541: TNS:no listener

有套19c单机&#xff0c;没应用任何的补丁&#xff0c;使用lsnrctl status查看监听是异常的&#xff0c;但是lsnrctl start发现监听已运行&#xff0c;当前业务连接都正常&#xff0c; orcl:/home/oracledb> lsnrctl status LSNRCTL for Linux: Version 19.0.0.0.0 - Pro…

打造灵活DateTimePicker日期时间选择器组件:轻松实现时间的独立清除功能

element ui中日期和时间选择器&#xff08;DateTimePicker&#xff09;是一个常见且重要的组件。它允许用户轻松地选择日期和时间&#xff0c;极大地提升了用户体验。然而&#xff0c;在某些场景下&#xff0c;用户可能需要更细粒度的控制&#xff0c;例如单独清除已选择的时间…