Crossbar阵列的电路结构及其基本原理

忆阻器Crossbar阵列是一种先进的神经网络硬件实现技术,它利用忆阻器的物理特性来模拟神经网络中的突触连接,为人工智能和机器学习应用提供了一种高效、低能耗的计算平台。本文将深入探讨忆阻器Crossbar阵列的基本原理及其在Read(读取)和Update(更新)阶段的工作机制。

Crossbar阵列的三种导线WL/BL/SL

忆阻器Crossbar阵列是由交叉的金属线(Bit Lines, BL和Word Lines, WL)以及位于交叉点的忆阻器构成的矩阵结构。这种结构中还包含了Source Lines(SL),用于传输通过忆阻器的电流。BL、WL和SL共同协作,使得Crossbar阵列能够执行复杂的计算任务。
image.png
image.png

BL (Bit Lines)

BL通常用于传输输入信号或读取操作中的电流信号。在神经网络的模拟中,BL可以视为输入神经元,负责提供输入向量。

WL (Word Lines)

WL在写入(Update)阶段用于施加更新电压,控制忆阻器的电导值,即模拟突触权重的调整。WL在读取过程中也起到激活特定忆阻器行的作用。

SL (Source Lines)

通常作为源极线使用,为忆阻器提供参考电压或用于在编程和写入操作中建立电流路径。

前向传播阶段(Read阶段)

在Read阶段,忆阻器Crossbar阵列通过BL和SL实现输入信号的前向传播。具体步骤如下:

1.输入信号施加

输入电压 V j V_j Vj通过BLj施加到crossbar的一侧(列信号),即忆阻器的一端。

2.计算电流

令此时WLj的电压为零,SLj的电压恒定为零,则从BLi到SLj的电压降刚好等于 V j V_j Vj。设第i行第j列的忆阻器的电导为 G i , j G_{i,j} Gi,j,则传输到SLj的电流为 I j = V i ⋅ G i , j I_j=V_i\cdot G_{i,j} Ij=ViGi,j

3.MAC电学运算

当电压向量通过所有列(BL1-BLn)输入到crossbar内,则SLi将汇总通过这一列的忆阻器的所有电流,即:
I j = ∑ i = 1 n V i ⋅ G i , j I_j=\sum^{n}_{i=1}{V_i\cdot G_{i,j}} Ij=i=1nViGi,j
对应神经网络中的前向传播运算: y j = ∑ i = 1 n x i ⋅ W i , j y_j=\sum^{n}_{i=1}{x_i\cdot W_{i,j}} yj=i=1nxiWi,j
对于权重如何与电导对应上,可参考文献[1][2]当中的差分对放大电路。

反向传播阶段(Update阶段)

在忆阻神经网络中,BP机制决定的权重更新量实际由电导的更新量来决定。假设现在需要对器件(i,j)进行更新(SET或RESET),SET脉冲强度为4.5 V(RESET同理,只是极性相反)。设 V W L = 5    V V_{WL}=5\;V VWL=5V,则:
V W L i − V B L j = V s e t = 4.5    V ⇒ V B L j = 0.5    V V_{WLi}-V_{BLj}=V_{set}=4.5\;V\Rightarrow V_{BL_j}=0.5\;V VWLiVBLj=Vset=4.5VVBLj=0.5V
因此在更新阶段,write脉冲是由WL提供的,而BL此时起到的是选通的作用,使SET脉冲刚好能够施加给需要更新的器件,同时避免改变不需要更新的器件。例如,若不能改变第i行的其他器件时,则此时必定满足:
V B L k = V W L i    ( k ≠ j ) V_{BLk}=V_{WL_i}\;(k\neq j) VBLk=VWLi(k=j)

1T1R结构

image.png
在1T1R结构中,每个忆阻器的一端与一个晶体管相连,形成一个1T1R单元。这种结构使得可以通过晶体管的门极控制对忆阻器的精确访问,从而实现对忆阻器电导的细致调整。

  • **源极(Source)**连接到源线(SL,Source Line)。
  • **漏极(Drain)**连接到忆阻器的上电极,而忆阻器的下电极则连接到位线(BL,Bit Line)。
  • **栅极(Gate)**通过字线(WL,Word Line)进行控制,所有在同一行的晶体管的栅极都连接到同一条字线上。

这种1T1R结构的设计使得通过调节栅极上的电压,可以控制源极和漏极之间的电流,从而实现对忆阻器电导的精确调整。这种方式不仅提高了对忆阻器的选择性和控制能力,还增强了阵列的可靠性和稳定性,因为晶体管可以有效防止非目标忆阻器因电压泄露而被意外写入。通过在每个忆阻器单元中加入一个晶体管,1T1R结构有效隔离了每个单元,只有当晶体管被开启时,电流才能流过忆阻器,这样就大大减少了非目标忆阻器的误激活,从而减少了串扰。此外,晶体管还可以提供更精细的电流控制,进一步提高了写入操作的准确性和重复性。总之,1T1R结构通过为每个忆阻器提供独立的访问通道,有效减少了串扰,提高了阵列的数据准确性和稳定性,这对于实现高密度、高可靠性的忆阻器存储和计算系统至关重要。

以上内容均参考清华大学吴华强课题组的阵列设计[1],但要注意的是针对crossbar的控制线路并非只有这一种,例如浙江大学林芃教授团队的工作便采用WL与BL平行的策略[3]:image.png
但是交叉控制与通信的基本思路是一致的,换汤不换药。

参考文献

[1] Yao, Peng, et al. “Fully hardware-implemented memristor convolutional neural network.” Nature 577.7792 (2020): 641-646.
[2] Zhang, Wei, et al. “Hardware‐Friendly Stochastic and Adaptive Learning in Memristor Convolutional Neural Networks.” Advanced Intelligent Systems 3.9 (2021): 2100041.
[3] Chen, Peng, et al. “Open-loop analog programmable electrochemical memory array.” Nature Communications 14.1 (2023): 6184.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Studio One 6永久激活版 附完整图文安装破解教程

Studio One 6是一款功能强大的音乐制作和录音软件,专为Mac操作系统设计。它提供了多轨录音和混音、MIDI音乐制作、实时效果和处理、VST插件支持以及高级编辑和编排等丰富的功能。无论是专业音乐制作人还是音乐爱好者,都可以使用Studio One 6来创建和编辑…

Android m/mm/mmm/make编译模块

一.编译成模块的前置条件 Android编译环境初始化完成后,我们就可以用m/mm/mmm/make命令编译源代码了。lunch命令其实是定义在build/envsetup.sh文件中的函数lunch提供的。与lunch命令一样,m、mm和mmm命令也分别是由定义在build/envsetup.sh文件中的函数…

istio pod不启动及访问报RBAC错误问题解决

istio pod不启动问题解决 在kubernetes集群中安装istio之后,在创建的depoyment中已经使用了注入注解sidecar.istio.io/inject: true’配置,但是istio pod不创建,代码示例如下 kind: Deployment apiVersion: apps/v1 metadata:name: name-an…

Linux 操作系统概述

GNU计划 GNU --"GNUs Not UNIX" 建立一个自由、开放的UNIX操作系统(Free UNIX) GNU 通用公共许可证(General Public License,GPL) ”四项基本自由“ 按照自己的意愿自由地运行该软件自由地学习并根据…

高级大数据技术 实验一 scala编程

​ 高级大数据技术 实验一 scala编程 写的不是很好,大家多见谅! 1. 计算水仙花数 实验目标; (1) 掌握scala的数组,列表,映射的定义与使用 (2) 掌握scala的基本编程 实验说明 …

【系统需求分析报告-项目案例直接套用】

软件需求分析报告 软件开发要求项目建设内容物理设计安全系统设计安全网络安全设计应用安全设计用户安全管理性能设计稳定性设计安全性设计兼容性设计易操作性设计可维护行设计 软件开发全套精华资料过去进主页领取。

博弈论实用原理浅谈及题目实战【算法竞赛】

一、前言 本篇记录博弈论一些常见原理、做题技巧。 之前没有了解学习过博弈论,这篇文章可以当作记录学习笔记了。 二、初识博弈论 博弈论题目在竞赛中我感觉其实并不少见,只是需要技巧性很强,找到规律打代码很简单,而找不到基本上…

go语言基础 -- 面向对象 -- 接口与多态

接口定义与基本使用 - interface go语言中,接口类型可以定义一组方法,不需要在接口定义中实现方法,并且interface中不能含有变量,如果某个自定义类型要使用时再实现接口的方法。 golang中的接口不需要显式地实现,只要…

秘密共享差分隐私原理解析

1. 隐私计算全貌  可以看到,隐私计算技术从1979年就开始了,历经四代从安全多方计算(MPC)、到差分隐私(DP)、到集中加密技术(TEE),再到联邦学习(FL)。 2. 秘密共享 secret Sharing 就是“秘密分享”或者“秘密共享”…

“互动+消费”时代,借助华为云GaussDB重构新零售中消费逻辑

场与人的关系 “人—货—场”是零售中重要的三要素,我们一直在追求,将零售中的人、货、场进行数字化并在云端进行整合,形成属于我们自己的云平台。 随着互联网技术为信息提供的便利,消费者的集体力量正在逐渐形成一股强大的反向…

Applied Energy+C论文复现:考虑泊位分配灵活性的港口综合能源系统优化调度程序代码!

程序结合了港口独特的工作属性,构建了泊位优化分配的模型,提出了考虑泊位优化和多能协同的港口综合能源运行优化模型。港口运营商根据多种能源供应的成本特性决策船舶停泊的开始/结束时间,改变港口的总负荷需求曲线。程序算例丰富…

使用postman测试若依登录接口API-2

请求方式 由于登录控制器可知:该请求方式为Post请求 请求地址 在请求路径栏输入请求地址,如下图所示: 参数体 在Body键入所需参数,类型选择raw,数据格式选择"JSON":如下图所示: 认证成功与失败…

特征值和特征向量及其在机器学习中的应用

特征值和特征向量是线性代数中的概念,用于分析和理解线性变换,特别是由方阵表示的线性变换。它们被用于许多不同的数学领域,包括机器学习和人工智能。 在机器学习中,特征值和特征向量用于表示数据、对数据执行操作以及训练机器学…

NOIP 2009普及组初赛试题及解析

NOIP 2009普及组初赛试题及解析 一. 单项选择题 (共20题,每题1.5分,共计30分。每题有且仅有一个正确答案.)。二. 问题求解(共2题,每题5分,共计10分)三. 阅读程序写结果(共…

Vue.js 深度解析:模板编译原理与过程

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

网络学习:SMart link技术与Monitor link技术

目录 一、SMart link技术 1.1、SMart link技术简介 1.2、SMart link技术原理及基础知识点 1、应用场景(举例): 2、运行机制 3、保护vlan 4、控制VLAN 5、Flush报文 6、SMart link的负载分担机制 7、SMart link角色抢占模式 二、Mo…

YOLOv5目标检测学习(1):yolo系列算法的基础概念

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、基于深度学习的目标检测需要哪些步骤?二、数据准备(即准备数据集)1.目标检测的数据集如何获取?2.数据集包括…

Python报错ModuleNotFoundError: No module named ‘numpy‘

原因:缺少“numpy” 进入python安装路径,script路径内 在路径下启动终端 01.更新numpy python -m pip install --upgrade pip 02.安装 pip install numpy 03.运行python python 04.导入包 from numpy import * 问题已解决。

MySQL学习Day25——数据库其他调优策略

一、数据库调优的措施: 1.调优的目标: (1)尽可能节省系统资源,以便系统可以提供更大负荷的服务 (2)合理的结构设计和参数调整,以提高用户操作的响应速度 (3)减少系统的瓶颈,提高MySQL数据库整体的性能; 2.如何定位调优:用户的反馈、日志…

政安晨【TypeScript高级用法】(二):泛型与命名空间

TypeScript的泛型允许我们在定义函数、类和接口时使用参数化类型,使得这些实体可以适应不同类型的数据。泛型可以增加代码的重用性和灵活性。 同时,TypeScript的命名空间提供了一种在全局命名空间中组织代码的方式,可以避免全局变量污染和命…