一种新的基于STT-MRAM的时域内存计算单元

news2024/11/26 4:26:02

大数据、物联网和人工智能等技术的进步揭示了传统冯·诺依曼的瓶颈架构,导致高能耗和有限的内存带宽。内存计算(IMC通过直接在内存中进行计算,提高了能效,提供了一个有前景的解决方案计算。现有的基于时域(TD)的IMC计算要么需要通过连续读/写方法进行多个周期的计算,要么通过以下方式增加了外围电路的复杂性采用累积延迟方法。

在本文中,我们提出了一种利用自旋的新型阵列结构转移力矩磁性随机存取存储器(STT-MRAM)位单元,减轻源极退化问题。通过利用这一先进技术并采用TD计算方案,我们成功地实现了各种算术运算,以及一组全面的布尔逻辑运算。

1.简介

现代计算机通过每天有效地处理大量数据,在人类社会的发展中发挥了关键作用。这些计算机依赖于被广泛认可的vonNeumann计算机体系结构,这是它们执行每一项操作的基础。在von Neumann体系结构中,可以追溯到20世纪40年代,计算/逻辑和存储单元被隔离并通过顺序传输指令的总线连接处理器和存储器之间的代码和计算数据。

然而,在存储器和处理器之间传输数据所需的能量和时间耗尽了我们计算机的有限极限,从而降低了现代计算系统的性能。这一挑战通常被认为是“冯-诺依曼瓶颈”或“记忆墙”。应对这一挑战需要使处理器和内存单元更接近。

这种策略与人脑处理信息的方式相当,在人脑中,计算和记忆之间没有物理区别,信息在记忆中处理。它可以减少数据传输,从而提高能效。非易失性存储器技术的出现,如电阻随机存取存储器(ReRAM)、相变存储器(PCM)、STT-MRAM等,为通过直接在数据位置进行计算来克服这一存储器障碍开辟了可能性。

在本文中,我们利用STT-MRAM[15-18]进行数据存储布尔算术运算由于其与互补金属氧化物半导体(CMOS)的兼容性和几个优点,包括高密度、低功耗和良好的耐久性。计算是通过基于时间的传感(TBS)实现的,与其他传感方法相比,TBS具有几个优势,包括鲁棒性、能效和高性能。在里面虽然在不同的内存内逻辑应用中探索TBS的工作有限,但我们提出的方法建立在最近基于时域计算的架构工作[23]的基础上,这是一个基线。然而,早期的工作遇到了几个问题,例如利用更多周期和增加的存储器位单元数量的连续读写操作,进一步加剧了vonNeumann问题,源极退化,由于级联延迟方法,需要两个感测放大器(SA)来执行两位操作,以及将输入进位表示为全加器(FA)实现的延迟,这引入了波动性。所提出的设计通过以替代方式采用翻转位单元来克服这些挑战。根据提出的想法,我们的第一步是实现输入布尔逻辑函数,主要是AND、OR和XOR,以及它们的补码。此外,该思想得到了扩展,并进行了深入分析。

图1

2.工作背景和动机本节解释了STT-MRAM位单元(1 T-1MTJ(磁性隧道结))和基于时间的感测放大器(TBSA)以及其他外围设备集成到IMC中的过程架构,强调整体系统设计。关于IMC结构的进一步细节,以及对阵列中的写入和读取操作的全面解释,在补充信息的第2节中提供。随后,本节讨论了与最近现有阵列相关的问题,清楚地展示了这项工作的动机。最后,提出了所提出的阵列,强调了其相对于现有阵列的优势。

考虑到传统的内存阵列仅限于支持,在读写操作中,逻辑基元的集成需要对传统阵列进行某些改进。这些增强可能涉及修改阵列结构、外围电路或两者的组合。通过这样的修改,存储器阵列获得了在执行其标准读取和写入操作的同时执行逻辑基元的能力。因此,在本文中,我们解决现有阵列架构通过对阵列结构进行必要的修改而带来的挑战(见图1a和b)。现有的阵列架构如图所示。面临几个挑战。首先,由于列写入能力有限,它对双SA的依赖阻碍了有效的两位操作,需要连续的写入操作来形成所需的组合。

在本节中,使用所提出的阵列实现了各种布尔逻辑基元,包括AND/NAND、OR/NOR和XOR/XNOR。补充信息第3节介绍了详细的设计和电路操作,以及瞬态仿真图。随后,工作范围扩展到3输入算术和逻辑电路,这些电路被实现为这些布尔运算的序列。为计算算术和逻辑功能而提出的体系结构如图所示。2,需要一种独特的设计方法。值得注意的是,FL和RL的配置对于交替的比特单元是反转的。这种改变确保了双向电流不用于将“0”或“1”写入MTJ,有效地缓解了通常被称为“源代码退化”的不平衡写入问题。

图2

MTJ具有FL-OL-RL结构,其中RL连接到存取晶体管。要写入“0”,电流从BL流到SL。相反,下一行采用RL-OL-FL结构,使“1”的写入与从BL流至SL的电流相结合。这种模式使“0”和“1”交替写入MTJ成为可能,这得益于WL/BL/SL驱动器和相关的写入电路。所提出的阵列在两种不同的模式下工作:内存模式和计算模式。在内存模式下,通过读取和写入操作从单比特单元存储和检索数据。相反,在计算模式中,执行不同的操作。

3.1. TD-IMC三输入算术逻辑电路的设计与开发

使用特定的逻辑基元在存储器内合成算术电路,然后将其映射到存储器阵列上用于存储器内实现。诸如FA和FS之类的操作的实现涉及三个操作数:A、B和进位. 通过引入额外的CMOS电路来解决FA实现所必需的问题。此电路设计用于容纳与操作数的值0和1相关的特定延迟。然而,它带来了各种挑战,如波动性、面积增加和功耗增强。为了解决这些问题,我们提出了一种解决方案,其中操作数被存储在所提出的阵列中的MTJ内。

通过这样做,该设计总共需要6个MTJ来容纳3个操作数的所有可能组合。值得注意的是,对于任何特定的组合,在任何给定时刻只有3个MTJ积极参与。因此,所提出的方法有效地解决了由附加电路的固有波动性引起的挑战。通过采用在交替行中交替MTJ的FL和RL的技术,我们消除了对多个TBSA的需要。相反,一个TBSA就足以实现所有所需的功能。除了算术运算之外,这些包括3输入逻辑门,例如AND/NAND、OR/NOR以及XOR/XNOR。

这里,多数函数(MAJ)被实现为直接计算进位FA操作。通过利用逻辑门函数并将它们的输出作为输入连接到MUX(M1,M2),现在实现了FA和FS。该过程举例说明了中间逻辑函数的有效利用,以便于以连贯的方式实现算术功能。算术加法器的控制布尔方程,描述SUM函数。

图3

电路工作关于全面的可视化表示,展示了包含所有功能实现的示意图。如图所示,字线WL用作操作数A、B,通过WL驱动器选择性激活以覆盖所有八个潜在组合。电路工作原理与2输入操作的说明相同。图3描述了算术和逻辑函数的瞬态模拟。由于有三个MTJ处于活动状态进一步减少与2输入操作相比,导致更长的延迟。

检查算术加法器、减法器和所有基本逻辑门功能的瞬态行为。使用各种颜色代码突出显示不同输入组合的输出:红色表示000,黄色表示001/010/100,蓝色表示011/101/110,粉色表示111。Borrow输出的操作与其他功能略有不同,它用六种不同的颜色表示,涵盖了所有八种输入组合:红色000、黄色001/010、浅蓝色100、蓝色011、绿色101/110和粉色111。

图4 

根据前面的解释,很明显,图4所示的示意图被设计用于执行逻辑运算和算术运算。这意味着它起到1位ALU的作用,如图4所示。信号REF H、REF M和REF L本身起到控制输入或选择线的作用,它们规定并指导算术和逻辑运算的执行。这些信号的特定组合或状态决定ALU将对输入数据执行的操作。通过操纵这些信号,ALU可以被配置为执行各种任务,例如算术加法、算术减法、逐位逻辑运算等等。随着任务变得更加复杂和数据量的扩大,ALU形成了处理器的主干,使它们能够快速高效地处理复杂的计算[31,32]。

参考来源:

[1] https://bbs.csdn.net/topics/618238711

[2] https://bbs.csdn.net/topics/618242271

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

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

相关文章

vue+elementUI搭建动态表头的表格

前提:以下代码是vue2项目结合elementUi完成的 数据结构 后端传来的数据是两个list,一个表头的list,一个表格内容的list // 表头 headTableAtts: [{ columnLabel: 姓名, columnName: name },{ columnLabel: 年龄, columnName: age },{ colu…

算法学习——LeetCode力扣动态规划篇4(377. 组合总和 Ⅳ、322. 零钱兑换、279. 完全平方数、139. 单词拆分)

算法学习——LeetCode力扣动态规划篇4 377. 组合总和 Ⅳ 377. 组合总和 Ⅳ - 力扣(LeetCode) 描述 给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。 题目数据保…

苹果手机系统文件浏览技巧:实现高效的文件查找与管理

​ 目录 引言 用户登录工具和连接设备 查看设备信息,电池信息 查看硬盘信息 硬件信息 查看 基带信息 销售信息 电脑可对手机应用程序批量操作 运行APP和查看APP日志 IPA包安装测试 注意事项 引言 苹果手机与安卓手机不同,无法直接访问系统文件…

linux shell命令(进程管理、用户管理)

一、进程的概念 主要有两点: 1.进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)…

浅显易懂的简单说一下jvm内存模型

说起JVM大家都知道,它是运行java代码的基础。那么关于JVM 内存模型是不是很模糊 我用通俗易懂的方式说一下 我们这里先介绍 JVM 堆内存 它有两大块 包括 新生代内存,和老年代内存 。 为啥分为这两块, 你可以这样理解,&#xff…

【图论】【拓扑排序】1857. 有向图中最大颜色值

本文涉及的知识点 图论 拓扑排序 LeetCode1857. 有向图中最大颜色值 给你一个 有向图 ,它含有 n 个节点和 m 条边。节点编号从 0 到 n - 1 。 给你一个字符串 colors ,其中 colors[i] 是小写英文字母,表示图中第 i 个节点的 颜色 &#xf…

代码随想录算法训练营DAY14|C++二叉树Part.1|二叉树的递归遍历、二叉树的迭代遍历、二叉树的统一迭代法

文章目录 二叉树的递归遍历思路CPP代码 二叉树的迭代遍历思路前序遍历后序遍历后序遍历 二叉树的统一迭代法 二叉树的递归遍历 144.二叉树的前序遍历、145.二叉树的后序遍历、94.二叉树的中序遍历 文章讲解:二叉树的递归遍历 视频讲解:每次写递归都要靠直…

寒冬已逝,“量子春天”正来

最近,全球对量子技术领域的私人投资有所下降,引发了一些观点认为这个领域可能正逐渐衰退。 政治家、资助者和投资者并不总是以科学为关注焦点。然而,某些科技领域偶尔会成为热点,正如20世纪50年代核能技术的兴起,那时人…

ios 之 netty版本swiftNio(socket创建)

SwiftNio 简介 用于高性能协议服务器和客户端的事件驱动、无阻塞的网络应用程序框架。 SwiftNIO是一个跨平台异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。 这就像Netty,但是为Swift写的。 Xcode引入swiftNio 在实…

联诚发2024第二季度高质量发展工作推进会议顺利召开

4月1日上午,联诚发LCF以“稳中创新•产业升级•高质量发展”为主题的第二季度企业高质量发展工作推进大会在联诚发深圳总部隆重召开。会议总结上一季度的工作成果,分析研判当前形势,谋划部署下一季度工作,团结动员公司全体职工凝心…

Web3:数字化社会的下一步

随着技术的不断进步和互联网的发展,我们正逐渐迈入一个全新的数字化社会阶段。在这个新的时代,Web3作为数字化社会的重要组成部分,将发挥着举足轻重的作用。本文将探讨Web3在数字化社会中的意义、特点以及对未来发展的影响。 1. 重新定义数字…

设计模式——行为型——责任链模式Chain Of Responsibility

请求类 public class ApproverRequest {private int type;//请求批准的类型private float price;//请求的金额private int id;//请求的编号 } 审批人抽象类 public abstract class ApproverPerson {protected ApproverPerson next;protected String name;//审批过程public a…

【好书推荐4】图机器学习

【好书推荐4】图机器学习 写在最前面编辑推荐内容简介作者简介目录前言/序言本书读者内容介绍 🌈你好呀!我是 是Yu欸 🌌 2024每日百字篆刻时光,感谢你的陪伴与支持 ~ 🚀 欢迎一起踏上探险之旅,挖掘无限可能…

nut-ui中的menu 菜单组件的二次封装

这个菜单组件 一般可以直接用到项目里 如果复用性不强的话 直接使用 但是有一个问题 如果很多地方都需要用到这个组件 我们可以把这个组件二次封装一下 <template><div class"cinema-search-filter-component"><nut-menu><template #icon>&…

交流耦合和直流耦合

一、 AC和DC定义 在选择输入模式时&#xff0c;可能选择不同的耦合方式会影响到数据中的频率成分。大多数信号都有AC成分和DC成分&#xff0c;DC成分是0Hz的部分&#xff0c;对应时域信号中的直流分量&#xff08;或称为直流偏置&#xff09;&#xff0c;AC成分是信号中的交变部…

VCRUNTIME140_1.dll丢失是怎么回事?多种解决方法帮你搞定

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“vcruntime140_1.dll文件丢失”。那么&#xff0c;这个文件是什么&#xff1f;它的作用是什么&#xff1f;当它丢失时&#xff0c;会提示什么样的错误信息呢&#xff1f;本文将详细介绍vcru…

谷粒商城实战(009 缓存-分布式锁)

Java项目《谷粒商城》架构师级Java项目实战&#xff0c;对标阿里P6-P7&#xff0c;全网最强 总时长 104:45:00 共408P 此文章包含第158p-第p165的内容 分布式锁 原理和使用 使用下shell对产生的命令进行发送 查看 -> 撰写 -> 撰写栏 idea 选中的代码提取成方法 加锁…

使用tcpdump和wireshark进行服务器抓包分析

目录 前言 1.tcpdump简介 2.Wireshark简介 3.实际案例 4.代码示例 5.总结 前言 服务器抓包分析是一种非常常见和有效的网络故障排查和性能优化手段。通过捕获服务器上的网络流量&#xff0c;可以帮助我们深入了解服务器与其它设备之间的通信情况&#xff0c;发现问题并进…

基于8086贪吃蛇游戏系统方恨设计

**单片机设计介绍&#xff0c;基于8086贪吃蛇游戏系统方恨设计 文章目录 一 概要二、功能设计三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于8086的贪吃蛇游戏系统设计是一个结合了微处理器控制、游戏逻辑以及图形显示技术的综合性项目。该系统旨在通过8086微处理器…