CN114399037B - 基于忆阻器的卷积神经网络加速器核心的模拟方法及装置 - Google Patents

基于忆阻器的卷积神经网络加速器核心的模拟方法及装置 Download PDF

Info

Publication number
CN114399037B
CN114399037B CN202210293602.5A CN202210293602A CN114399037B CN 114399037 B CN114399037 B CN 114399037B CN 202210293602 A CN202210293602 A CN 202210293602A CN 114399037 B CN114399037 B CN 114399037B
Authority
CN
China
Prior art keywords
random access
access memory
vector
resistive random
memory array
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210293602.5A
Other languages
English (en)
Other versions
CN114399037A (zh
Inventor
王志斌
时拓
顾子熙
李一琪
张程高
高丽丽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202210293602.5A priority Critical patent/CN114399037B/zh
Publication of CN114399037A publication Critical patent/CN114399037A/zh
Application granted granted Critical
Publication of CN114399037B publication Critical patent/CN114399037B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)

Abstract

本发明公开了基于忆阻器的卷积神经网络加速器核心的模拟方法及装置,支持除常见的正负权值映射形式外还支持补码形式的RRAM权重映射,通过将RRAM核心与外围电路抽象成各个模块并将位移寄存器与RRAM的卷积过程封装成更粗粒度的事务,在保证模型功能与精度的前提下简化芯片上外围数字电路的模型结构。本发明利用高级语言搭建RRAM核心的TLM模型,支持模拟RRAM核心的功耗、延迟、算力、面积等关键参数,比传统RTL模型仿真速度快1000倍以上,帮助芯片设计人员在芯片RTL模型完成前对芯片特性进行研究,缩短芯片的研发周期。

Description

基于忆阻器的卷积神经网络加速器核心的模拟方法及装置
技术领域
本发明涉及新型智能计算领域,尤其是涉及基于忆阻器的卷积神经网络加速器核心的模拟方法及装置。
背景技术
实现高能源效率和高集成度的卷积神经网络硬件,可为未来物联网和人工智能的数据处理挑战提供一个有效的解决方案。近年来,基于电阻随机存取存储器可重构CNN(Convolutional Neural Network 卷积神经网络)芯片,因其集成密度高、功耗低、存算一体等特点而受到广泛关注。因此,基于RRAM(Resistive Random Access Memory,阻变存储器)的CNN芯片在集成度和能效方面可能会有进一步的提高。但是,该芯片的设计将面临以下问题:
(1)复杂的逻辑控制和核间通信;
(2)高风险的数字电路、模拟电路和RRAM混合设计;
(3)模拟电路和RRAM的非理想特性;
(4)较长的设计周期;
(5)传统RTL(Register Transfer Level 寄存器转移层次)模型的设计与仿真消耗大量时间与资源。
为了有效地弥合器件、电路、算法和体系结构之间的差距,提出一种模拟神经元电路、RRAM模型和多阵列体系结构的仿真模型,用于验证CNN芯片的功能、耗时和功耗。这些信息不仅可以用来验证架构的合理性,而且可以指导芯片的设计。
发明内容
为解决现有技术的不足,实现验证CNN芯片的功能、耗时和功耗目的,本发明采用如下的技术方案:
一种基于忆阻器的卷积神经网络加速器核心的模拟装置,包括存储模块、向量配置器、阻变存储器核心,阻变存储器核心包括位移寄存器、阻变存储器阵列、电流电压转换模块、模拟/数字转换模块;
存储模块,用于存储待处理图像;
向量配置器,根据网络结构描述文件,将待处理图像处理成一维向量,并添加额外信息,网络结构描述文件用于图像识别卷积神经网络到阻变存储器阵列的映射,额外信息包括阻变存储器阵列输入方向的行开启情况和阻变存储器阵列输出方向的列开启情况,分别用于控制一维向量对应的权值区域,以及对应输出列方向打开的模拟/数字转换模块与位置;
位移寄存器,从向量配置器获取一维向量,并发送至阻变存储器阵列;
阻变存储器阵列,是由忆阻器构成的阵列,忆阻器上储存的权值通过权值配置文件进行记录,一维向量与阻变存储器阵列上对应权值进行卷积操作后,输出卷积结果向量,并重新通过向量配置器配置新的额外信息,进行下一层网络计算,直至遍历整个图像识别卷积神经网络,通过打开的模拟/数字转换模块功率、电流电压转换模块功率、与一维向量长度相关的单列上寄生电容的功率、单个周期时长及阻变存储器阵列的功耗,得到当前周期阻变存储器核心总能耗。
进一步地,阻变存储器阵列将输入的一维向量及其对应的权值按位分列,按补码形式映射,将按位分列的向量矩阵与其对应的权值矩阵进行乘加操作,所述模拟/数字转换模块将每次乘加的结果,进行移位相加,得到相应的卷积结果向量。
进一步地,采用一对所述阻变存储器阵列,分别映射正权值与负权值,分别计算后相减,得到输出结果。
进一步地,额外信息还包括向量起始标志、向量在神经网络中对应的层数、该层神经网络类型、向量结束标志。
进一步地,阻变存储器阵列输出方向多列打开时,输入的一维向量与多个卷积核同时进行卷积运算,从而实现阻变存储器核心的并行计算。
一种基于忆阻器的卷积神经网络加速器核心的模拟方法,包括如下步骤:
步骤S1:获取待识别图像,根据网络结构描述文件,将待识别图像处理成一维向量,并添加额外信息,网络结构描述文件将图像识别卷积神经网络映射到阻变存储器阵列;
步骤S2:由忆阻器构成的阻变存储器阵列,通过权值配置文件记录忆阻器上储存的权值,通过额外信息中一维向量对应阻变存储器阵列输入方向的行开启情况,控制一维向量对应的权值区域,一维向量与阻变存储器阵列上对应权值进行卷积操作,得到卷积结果向量;
步骤S3:卷积结果向量通过额外信息中一维向量对应的阻变存储器阵列输出方向的列开启情况,输出到对应输出列方向打开的模拟/数字转换模块与位置;通过打开的模拟/数字转换模块功率、电流电压转换模块功率、与一维向量长度相关的单列上寄生电容的功率、单个周期时长及阻变存储器阵列的功耗,得到当前周期阻变存储器核心总能耗;
步骤S4:向量配置器重新配置额外信息,进行下一层网络计算,直至遍历整个图像识别卷积神经网络。
进一步地,映射采用补码形式映射,将输入的一维向量按位分列,分别与对应按位分列的权值矩阵进行乘加操作,再将每次乘加的结果,进行移位相加,得到相应的卷积结果向量。
进一步地,映射采用正负权值映射,通过一对阻变存储器阵列,分别映射正权值与负权值,分别计算后相减,得到输出结果。
进一步地,步骤S3中,单个周期的阻变存储器核心总能耗如下:
Figure 100002_DEST_PATH_IMAGE001
其中
Figure 633347DEST_PATH_IMAGE002
表示当前周期阻变存储器核心总能耗、
Figure 585123DEST_PATH_IMAGE003
表示模拟/数字转换模块总 数、
Figure 854430DEST_PATH_IMAGE004
表示单个电流电压转换模块功率、
Figure 499038DEST_PATH_IMAGE005
表示当前周期打开的模拟/数字转换模块数 量、
Figure 955427DEST_PATH_IMAGE006
表示单个模拟/数字转换模块功率、
Figure 212358DEST_PATH_IMAGE007
表示与输入向量长度
Figure 805014DEST_PATH_IMAGE008
相关的单列 上寄生电容的功率、t表示单个周期时长、
Figure 886102DEST_PATH_IMAGE009
表示当前周期阻变存储器阵列的功耗。
Figure 829788DEST_PATH_IMAGE004
Figure 388945DEST_PATH_IMAGE006
为模拟装置输入参数,可根据仿真情况修改。
进一步地,因为忆阻器为二值,卷积过程中阵列上的所有忆阻器只会产生三种不 同的能耗状态,分别为输入打开的低电阻状态、输入打开的高电阻状态、输入关闭的无能耗 状态,只需要统计输入的一维向量中高电位的数量
Figure 101686DEST_PATH_IMAGE010
,以及乘操作后高电位的数量
Figure 822517DEST_PATH_IMAGE011
, 得到此次卷积中三种能耗状态的分布,计算当前时间片内阻变存储器阵列产生的功耗:
Figure 743245DEST_PATH_IMAGE012
其中
Figure 100002_DEST_PATH_IMAGE013
Figure 637251DEST_PATH_IMAGE014
分别表示忆阻器器件在高、低电导下的功耗,n表示权值宽度(即权值 所占比特位数,等于输入向量所占比特位数,等于执行的次数),t为单个周期时长。
本发明的优势和有益效果在于:
本发明的基于忆阻器的卷积神经网络加速器核心的模拟方法及装置,利用高级语言搭建RRAM核心的TLM(Transactiion-level modeling 事务级建模方法)模型,支持模拟RRAM核心的功耗、耗时、算力、面积等关键参数,比传统RTL仿真速度快1000倍以上,帮助芯片设计人员在芯片RTL模型完成前对芯片特性进行研究,缩短芯片的研发周期。
附图说明
图1是本发明的实施例中模拟装置结构示意图;
图2是本发明的实施例中模拟方法的流程图;
图3是本发明的实施例中RRAM阵列功耗的计算原理图;
图4是本发明的实施例中RRAM阵列功耗的计算的结构示意图;
图5是本发明的实施例中数据集图像用Verilog EDA方法和本发明方法仿真的结果比较图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
如图1所示,基于忆阻器的卷积神经网络加速器核心的,基于忆阻器的卷积神经网络加速器核心的模拟装置,包括存储模块、向量配置器、阻变存储器核心,阻变存储器核心包括阻变存储器阵列、电流电压转换模块、模拟/数字转换模块。
存储模块,用于存储待处理图像;
向量配置器,根据网络结构描述文件,将待处理图像处理成一维向量,并添加额外信息,网络结构描述文件用于图像识别卷积神经网络到阻变存储器阵列的映射,额外信息包括阻变存储器阵列输入方向的行开启情况和阻变存储器阵列输出方向的列开启情况,分别用于控制一维向量对应的权值区域,以及对应输出列方向打开的模拟/数字转换模块与位置;额外信息还包括向量起始标志、向量在神经网络中对应的层数、该层神经网络类型、向量结束标志。
位移寄存器,从向量配置器获取一维向量,并发送至阻变存储器阵列。
阻变存储器阵列,是由忆阻器构成的阵列,忆阻器上储存的权值通过权值配置文件进行记录,一维向量与阻变存储器阵列上对应权值进行卷积操作后,输出卷积结果向量,并重新通过向量配置器配置新的额外信息,进行下一层网络计算,直至遍历整个图像识别卷积神经网络,通过打开的模拟/数字转换模块功率、电流电压转换模块功率、与一维向量长度相关的单列上寄生电容的功率、单个周期时长及阻变存储器阵列的功耗,得到当前周期阻变存储器核心总能耗。阻变存储器阵列输出方向多列打开时,输入的一维向量与多个卷积核同时进行卷积运算,从而实现阻变存储器核心的并行计算。
本实施例中,阻变存储器阵列将输入的一维向量及其对应的权值按位分列,按补码形式映射,将按位分列的向量矩阵与其对应的权值矩阵进行乘加操作,所述模拟/数字转换模块将每次乘加的结果,进行移位相加,得到相应的卷积结果向量。
另一个实施例中,采用一对阻变存储器阵列,分别映射正权值与负权值,分别计算后相减,得到输出结果。
具体地,模拟装置包括SRAM(Static Random-Access Memory 静态随机存取存储器)存储模块、向量配置器和RRAM(Resistive Random Access Memory,阻变存储器)核心,RRAM核心主要包括位移寄存器、RRAM阵列、I to V(Electron to Voltage 电流电压转换)模块、ADC(Analog to Digital Converter 模拟/数字转换器)模块等。创建加速器模型实例前,根据网络结构描述文件和权值映射文件,可在限制范围内在模型上加载不同神经网络模型进行仿真。在实际加速器结构中,同样使用网络结构描述文件,通过配置其中的参数寄存器,加载不同网络结构,可以通过一份文件同时配置仿真系统和硬件系统的网络结构。权值配置文件记录每个忆阻器上储存的权值,决定RRAM阵列上的实际映射值)。
下面将用一个实例来说明模拟装置的运行过程。如图2所示,基于忆阻器的卷积神经网络加速器核心的模拟方法,包括如下步骤:
步骤S1:获取待识别图像,根据网络结构描述文件,将待识别图像处理成一维向量,并添加额外信息,网络结构描述文件将图像识别卷积神经网络映射到阻变存储器阵列;
步骤S2:由忆阻器构成的阻变存储器阵列,通过权值配置文件记录忆阻器上储存的权值,通过额外信息中一维向量对应阻变存储器阵列输入方向的行开启情况,控制一维向量对应的权值区域,一维向量与阻变存储器阵列上对应权值进行卷积操作,得到卷积结果向量;
具体地,通过网络结构描述文件和权值映射文件,一个小型的图像识别卷积神经网络通过上文的方法映射到RRAM阵列上,RRAM阵列上的每个小方块代表存储权值的一个最小单元,其中第一层为单通道卷积层,第二层为双通道卷积层,第三层为全连接层,具体情况如图1所示。
待识别图像开始存储在SRAM存储器模块中,开始流程后被输入向量配置器,向量配置器会根据网络结构描述文件将图像处理、切割成一维向量并添加额外信息(如在进入第一层前,这些处理切割主要模拟第一层5×5卷积核在图像上的滑动过程,并拉长成一维向量),在图1中可以看出此时输入RRAM核心的向量长度为25,如果待识别图像大小为8×8,则共产生(8-5+1)2=16条一维向量。同时,为了RRAM能够给这些向量分配正确的权值块进行计算以及数据统计需要,向量配置器会在每一条向量的头部添加额外数据,额外数据包括:向量起始标志、向量在神经网络中对应的层数、该层神经网络类型、向量对应的RRAM阵列输入方向的行开启情况、向量对应的RRAM阵列输出方向的列开启情况、向量结束标志,其中RRAM阵列输入方向的行开启情况,控制该向量对应的权值区域(假设该拥有32×32个存储单元的RRAM阵列左上角的存储单元为原点,下标沿水平方向从左到右、垂直方向从上到下增大,实例中图1时刻输入开启行0~行24,共25行),RRAM阵列输出方向的列开启情况,对应输出列方向打开的ADC数量与位置(实例中图1时刻输出开启列0~列7共8列,每列需要一个ADC参与计算,所以该时刻打开8个ADC,打开ADC数量不能超过ADC总量,ADC总量为模拟装置输入参数,可根据仿真情况修改,在该实例中ADC总量为8),多列打开时,表示输入向量与多个卷积核同时进行卷积运算,即核心的并行计算情况。
本实施例中,映射采用补码形式映射,将输入的一维向量按位分列,分别与对应按位分列的权值矩阵进行乘加操作,再将每次乘加的结果,进行移位相加,得到相应的卷积结果向量。
具体地,如图3所示,以补码映射情况为例,卷积运算的具体流程,RRAM阵列的每个忆阻器都为二值,可以储存1bit的数据,输入向量宽度为3bit;权值宽度为3bit,按补码形式映射,其中第一列表示正负符号,后两列表示2bit数据。将输入向量按位分为3列分别与对应权值矩阵进行乘加过程,分别得到3、1、-2三个值,然后分别向左移0、1、2位相加,即可得到卷积结果-3。如图4所示,本实施例中,位移寄存器依次发送一比特位向量,与输入向量在RRAM阵列上对应的权重块,逐条进行乘加操作,每一条由三个RRAM阵列中的小方块(即忆阻器)组成,表示一个最小权值存储单元,然后通过ADC模块,将每次乘加的结果,进行移位相加,得到相应的卷积结果向量。
另一个实施例中,映射采用正负权值映射,通过一对阻变存储器阵列,分别映射正权值与负权值,分别计算后相减,得到输出结果。
具体地,正负权值映射形式,是用两块RRAM阵列分别映射正权值与负权值,计算时分别计算后相减得到真实结果(具体地,正的权值的绝对值全部映射到一块RRAM阵列上,负的权值的绝对值映射到另一块RRAM阵列上,计算时,负的RRAM阵列整块反接,使两块RRAM阵列电流相减来计算,从而使得电路设计更为简单)。
步骤S3:卷积结果向量通过额外信息中一维向量对应的阻变存储器阵列输出方向的列开启情况,输出到对应输出列方向打开的模拟/数字转换模块与位置;通过打开的模拟/数字转换模块功率、电流电压转换模块功率、与一维向量长度相关的单列上寄生电容的功率、单个周期时长及阻变存储器阵列的功耗,得到当前周期阻变存储器核心总能耗;
单个周期的阻变存储器核心总能耗如下:
Figure 470078DEST_PATH_IMAGE001
其中
Figure 96232DEST_PATH_IMAGE002
表示当前周期阻变存储器核心总能耗、
Figure 14509DEST_PATH_IMAGE003
表示模拟/数字转换模块总 数、
Figure 915469DEST_PATH_IMAGE004
表示单个电流电压转换模块功率、
Figure 602802DEST_PATH_IMAGE005
表示当前周期打开的模拟/数字转换模块数 量、
Figure 432480DEST_PATH_IMAGE006
表示单个模拟/数字转换模块功率、
Figure 572475DEST_PATH_IMAGE007
表示与输入向量长度
Figure 542705DEST_PATH_IMAGE008
相关的单列 上寄生电容的功率、t表示单个周期时长、
Figure 350124DEST_PATH_IMAGE009
表示当前周期阻变存储器阵列的功耗。
Figure 849238DEST_PATH_IMAGE004
Figure 476528DEST_PATH_IMAGE006
为模拟装置输入参数,可根据仿真情况修改。
具体地,每条向量与RRAM阵列上对应权值的卷积过程,可以分解为ADC模块移位相加与RRAM阵列乘加两个过程的双层循环(详细情况见图3、图4),执行的次数分别与权值所占比特位数、输入向量所占比特位数相同,确定循环次数与所占时钟周期后,计算该时间片内RRAM阵列的总功耗,总功耗为每个周期的功耗之和。单个周期的计算公式如下:
Figure 719291DEST_PATH_IMAGE015
其中
Figure 617102DEST_PATH_IMAGE002
表示当前周期RRAM核心总能耗、
Figure 287118DEST_PATH_IMAGE003
表示RRAM核心中ADC总数、
Figure 401704DEST_PATH_IMAGE004
表示单 个I to V模块功率、
Figure 448158DEST_PATH_IMAGE005
表示当前周期打开的ADC数量、
Figure 230169DEST_PATH_IMAGE006
表示单个ADC模块功率、
Figure 71086DEST_PATH_IMAGE007
表示单列上寄生电容的功率,它是与输入向量长度
Figure 440013DEST_PATH_IMAGE008
相关的函数、t表示单个周期时长、
Figure 24578DEST_PATH_IMAGE009
表示当前周期阵列的功耗。
Figure 395516DEST_PATH_IMAGE004
Figure 407335DEST_PATH_IMAGE006
为模拟装置输入参数,可根据仿真情况修改, 该实例由Design Compiler模拟电路仿真工具得到,功耗大小与这两个模块模拟电路的具 体设计有关。
统计输入的一维向量中高电位的数量
Figure 230934DEST_PATH_IMAGE010
,以及乘操作后高电位的数量
Figure 884769DEST_PATH_IMAGE011
,计算 当前时间片内阻变存储器阵列产生的功耗:
Figure 844635DEST_PATH_IMAGE016
其中
Figure 27355DEST_PATH_IMAGE013
Figure 370874DEST_PATH_IMAGE014
分别表示忆阻器器件在高、低电导下的功耗,n表示权值宽度,t为单 个周期时长。
具体地,因为忆阻器为二值,卷积过程中阵列上的所有忆阻器只会产生三种不同 的能耗状态,分别为输入打开的低电阻状态、输入打开的高电阻状态、输入关闭的无能耗状 态,只需要统计输入向量中高电位即“1”的数量
Figure 297241DEST_PATH_IMAGE010
,以及图3中竖框中“1”的数量
Figure 377193DEST_PATH_IMAGE011
就可 以得到此次卷积中三种能耗状态的分布,计算该时间片内阵列产生的功耗公式如下:
Figure 730814DEST_PATH_IMAGE017
其中
Figure 794585DEST_PATH_IMAGE013
Figure 524643DEST_PATH_IMAGE014
分别为忆阻器器件在高、低电导下的功耗,是模拟装置输入参数,可 根据仿真情况修改,n为权值宽度(即权值所占比特位数,等于执行的次数,也等于输入向量 所占比特位数),t为单个周期时长。
步骤S4:向量配置器重新配置额外信息,进行下一层网络计算,直至遍历整个图像识别卷积神经网络。
具体地,通过RRAM阵列乘加计算与ADC模块移加计算后,RRAM核心输出第一层卷积结果向量,结果向量的额外数据中,神经网络对应层数标记加一,并重新通过向量配置器进行配置新的额外数据包,以进行下一层网络计算,直到遍历整个神经网络,模拟出完整的数据流,每层的输入情况见图1,流程与第一层类似。
第一层卷积(第1-n个周期)输入行:0、1……24,输出列:0、1……7;第二层卷积分为两部分,一部分(第1-n个周期)输入行:0、1……8,输出列:8、9……15,另一部(第n+1-2n个周期)分输入行:9、10……17,输出列:8、9……15;第三层卷积,由于并行数为10,超过了设置的ADC总量8,因此分为两部分,一部分(第1-n个周期)输入行:0、1……15,输出列:16、17……23,另一部分(第n+1-2n个周期)输入行:0、1……15,输出列:24、25;n为执行的次数(等于输入向量所占比特位数,也等于权值所占比特位数)。
如图5所示,100张MNIST数据集图像,通过Verilog EDA(Electronic DesignAutomation 电子自动化设计)方法和本发明方法进行仿真的结果,仿真时间从使用Verilog EDA工具的大约3个小时缩短到本发明的1.31秒,由于完全模拟了数据流所以得到了一样的识别准确率,与Verilog EDA工具相比还增加了仿真功耗和仿真延迟(芯片处理图像的速度)的功能,进一步完善了仿真参数。
传统的芯片设计是通过Verilog代码生成具体结构,再通过Verilog工具进行仿真。在此过程中存在两个问题:1、RRAM核心部分是模拟电路,Verilog只能作为一个行为模型来使用,虽然可以满足数据流动的需求,但是功耗等均不能计算;2、在此情况下,其实整个芯片已经设计完成,再进行结构的优化很不方便。本方法的模拟装置,在编写Verilog代码之前使用,可以快速的了解不同网络对芯片的影响,通过本方法的模拟装置,模拟出一些关键结果,用于指导Verilog代码的编写,从而提高了整个仿真的速度。
本发明利用高级语言搭建RRAM核心的TLM模型,支持模拟RRAM核心的功耗、耗时、算力、面积等关键参数,比传统RTL仿真速度快1000倍以上,帮助芯片设计人员在芯片RTL模型完成前对芯片特性进行研究,缩短芯片的研发周期。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。

Claims (10)

1.一种基于忆阻器的卷积神经网络加速器核心的模拟装置,包括存储模块、向量配置器、阻变存储器核心,其特征在于:所述阻变存储器核心包括位移寄存器、阻变存储器阵列、电流电压转换模块、模拟/数字转换模块;
所述存储模块,用于存储待处理图像;
所述向量配置器,根据网络结构描述文件,将待处理图像处理成一维向量,并添加额外信息,网络结构描述文件用于图像识别卷积神经网络到阻变存储器阵列的映射,额外信息包括阻变存储器阵列输入方向的行开启情况和阻变存储器阵列输出方向的列开启情况,分别用于控制一维向量对应的权值区域,以及对应输出列方向打开的模拟/数字转换模块与位置;
所述位移寄存器,从向量配置器获取一维向量,并发送至阻变存储器阵列;
所述阻变存储器阵列,是由忆阻器构成的阵列,忆阻器上储存的权值通过权值配置文件进行记录,一维向量与阻变存储器阵列上对应权值进行卷积操作后,输出卷积结果向量,并重新通过向量配置器配置新的额外信息,进行下一层网络计算,直至遍历整个图像识别卷积神经网络,通过打开的模拟/数字转换模块功率、电流电压转换模块功率、与一维向量长度相关的单列上寄生电容的功率、单个周期时长及当前周期阻变存储器阵列的功耗,得到当前周期阻变存储器核心总能耗。
2.根据权利要求1所述的一种基于忆阻器的卷积神经网络加速器核心的模拟装置,其特征在于:所述阻变存储器阵列将输入的一维向量及其对应的权值按位分列,按补码形式映射,将按位分列的向量矩阵与其对应的权值矩阵进行乘加操作,所述模拟/数字转换模块将每次乘加的结果,进行移位相加,得到相应的卷积结果向量。
3.根据权利要求1所述的一种基于忆阻器的卷积神经网络加速器核心的模拟装置,其特征在于:采用一对所述阻变存储器阵列,分别映射正权值与负权值,分别计算后相减,得到输出结果。
4.根据权利要求1所述的一种基于忆阻器的卷积神经网络加速器核心的模拟装置,其特征在于:所述额外信息还包括向量起始标志、向量在神经网络中对应的层数、该层神经网络类型、向量结束标志。
5.根据权利要求1所述的一种基于忆阻器的卷积神经网络加速器核心的模拟装置,其特征在于:所述阻变存储器阵列输出方向多列打开时,输入的一维向量与多个卷积核同时进行卷积运算。
6.一种基于忆阻器的卷积神经网络加速器核心的模拟方法,其特征在于包括如下步骤:
步骤S1:获取待识别图像,根据网络结构描述文件,将待识别图像处理成一维向量,并添加额外信息,网络结构描述文件将图像识别卷积神经网络映射到阻变存储器阵列;
步骤S2:由忆阻器构成的阻变存储器阵列,通过权值配置文件记录忆阻器上储存的权值,通过额外信息中一维向量对应阻变存储器阵列输入方向的行开启情况,控制一维向量对应的权值区域,一维向量与阻变存储器阵列上对应权值进行卷积操作,得到卷积结果向量;
步骤S3:卷积结果向量通过额外信息中一维向量对应的阻变存储器阵列输出方向的列开启情况,输出到对应输出列方向打开的模拟/数字转换模块的位置;通过打开的模拟/数字转换模块功率、电流电压转换模块功率、与一维向量长度相关的单列上寄生电容的功率、单个周期时长及当前周期阻变存储器阵列的功耗,得到当前周期阻变存储器核心总能耗;
步骤S4:向量配置器重新配置额外信息,进行下一层网络计算,直至遍历整个图像识别卷积神经网络。
7.根据权利要求6所述的一种基于忆阻器的卷积神经网络加速器核心的模拟方法,其特征在于:所述映射采用补码形式映射,将输入的一维向量按位分列,分别与对应按位分列的权值矩阵进行乘加操作,再将每次乘加的结果,进行移位相加,得到相应的卷积结果向量。
8.根据权利要求6所述的一种基于忆阻器的卷积神经网络加速器核心的模拟方法,其特征在于:所述映射采用正负权值映射,通过一对阻变存储器阵列,分别映射正权值与负权值,分别计算后相减,得到输出结果。
9.根据权利要求6所述的一种基于忆阻器的卷积神经网络加速器核心的模拟方法,其特征在于:所述步骤S3中,单个周期的阻变存储器核心总能耗如下:
Figure DEST_PATH_IMAGE001
其中
Figure DEST_PATH_IMAGE002
表示当前周期阻变存储器核心总能耗、
Figure DEST_PATH_IMAGE003
表示模拟/数字转换模块总数、
Figure DEST_PATH_IMAGE004
表示单个电流电压转换模块功率、
Figure DEST_PATH_IMAGE005
表示当前周期打开的模拟/数字转换模块数量、
Figure DEST_PATH_IMAGE006
表示单个模拟/数字转换模块功率、
Figure DEST_PATH_IMAGE007
表示与输入向量长度
Figure DEST_PATH_IMAGE008
相关的单列上 寄生电容的功率、t表示单个周期时长、
Figure DEST_PATH_IMAGE009
表示当前周期阻变存储器阵列的功耗。
10.根据权利要求9所述的一种基于忆阻器的卷积神经网络加速器核心的模拟方法,其 特征在于:统计输入的一维向量中高电位的数量
Figure DEST_PATH_IMAGE010
,以及乘操作后高电位的数量
Figure DEST_PATH_IMAGE011
,计 算当前时间片内阻变存储器阵列产生的功耗:
Figure DEST_PATH_IMAGE012
其中
Figure DEST_PATH_IMAGE013
Figure DEST_PATH_IMAGE014
分别表示忆阻器器件在高、低电导下的功耗,n表示权值宽度,t为单个周期 时长。
CN202210293602.5A 2022-03-24 2022-03-24 基于忆阻器的卷积神经网络加速器核心的模拟方法及装置 Active CN114399037B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210293602.5A CN114399037B (zh) 2022-03-24 2022-03-24 基于忆阻器的卷积神经网络加速器核心的模拟方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210293602.5A CN114399037B (zh) 2022-03-24 2022-03-24 基于忆阻器的卷积神经网络加速器核心的模拟方法及装置

Publications (2)

Publication Number Publication Date
CN114399037A CN114399037A (zh) 2022-04-26
CN114399037B true CN114399037B (zh) 2022-07-15

Family

ID=81234809

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210293602.5A Active CN114399037B (zh) 2022-03-24 2022-03-24 基于忆阻器的卷积神经网络加速器核心的模拟方法及装置

Country Status (1)

Country Link
CN (1) CN114399037B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113011574A (zh) * 2021-03-22 2021-06-22 西安交通大学 一种卷积神经网络系统、忆阻器阵列和卷积神经网络
CN113987985A (zh) * 2021-11-15 2022-01-28 武汉理工大学 基于忆阻器交叉阵列神经网络加速器热效应优化方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109460817B (zh) * 2018-09-11 2021-08-03 华中科技大学 一种基于非易失存储器的卷积神经网络片上学习系统
CN110852429B (zh) * 2019-10-28 2022-02-18 华中科技大学 一种基于1t1r的卷积神经网络电路及其操作方法
CN111428857A (zh) * 2020-02-28 2020-07-17 上海集成电路研发中心有限公司 一种基于忆阻器的卷积运算装置及方法
CN112070204B (zh) * 2020-07-24 2023-01-20 中国科学院计算技术研究所 一种基于阻变存储器的神经网络映射方法、加速器
CN112001270B (zh) * 2020-08-03 2022-10-14 南京理工大学 基于一维卷积神经网络的地面雷达自动目标分类识别方法
CN112183739B (zh) * 2020-11-02 2022-10-04 中国科学技术大学 基于忆阻器的低功耗脉冲卷积神经网络的硬件架构
CN113869504B (zh) * 2021-12-02 2022-08-05 之江实验室 一种基于忆阻器可编程神经网络加速器
CN114400031B (zh) * 2022-03-24 2022-07-08 之江实验室 一种补码映射的rram存算一体芯片及电子设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113011574A (zh) * 2021-03-22 2021-06-22 西安交通大学 一种卷积神经网络系统、忆阻器阵列和卷积神经网络
CN113987985A (zh) * 2021-11-15 2022-01-28 武汉理工大学 基于忆阻器交叉阵列神经网络加速器热效应优化方法

Also Published As

Publication number Publication date
CN114399037A (zh) 2022-04-26

Similar Documents

Publication Publication Date Title
Sun et al. Fully parallel RRAM synaptic array for implementing binary neural network with (+ 1,− 1) weights and (+ 1, 0) neurons
Long et al. ReRAM-based processing-in-memory architecture for recurrent neural network acceleration
Peng et al. DNN+ NeuroSim V2. 0: An end-to-end benchmarking framework for compute-in-memory accelerators for on-chip training
Marinella et al. Multiscale co-design analysis of energy, latency, area, and accuracy of a ReRAM analog neural training accelerator
Chen et al. NeuroSim: A circuit-level macro model for benchmarking neuro-inspired architectures in online learning
Xia et al. MNSIM: Simulation platform for memristor-based neuromorphic computing system
Cheng et al. TIME: A training-in-memory architecture for RRAM-based deep neural networks
Giacomin et al. A robust digital RRAM-based convolutional block for low-power image processing and learning applications
Zhang et al. Design guidelines of RRAM based neural-processing-unit: A joint device-circuit-algorithm analysis
Cai et al. Low bit-width convolutional neural network on RRAM
Zidan et al. Field-programmable crossbar array (FPCA) for reconfigurable computing
Pourmeidani et al. Probabilistic interpolation recoder for energy-error-product efficient DBNs with p-bit devices
Miyashita et al. Time-domain neural network: A 48.5 TSOp/s/W neuromorphic chip optimized for deep learning and CMOS technology
Agrawal et al. X-CHANGR: Changing memristive crossbar mapping for mitigating line-resistance induced accuracy degradation in deep neural networks
Saha et al. An energy-efficient and high throughput in-memory computing bit-cell with excellent robustness under process variations for binary neural network
Fei et al. XB-SIM∗: A simulation framework for modeling and exploration of ReRAM-based CNN acceleration design
Zheng et al. Hardware-friendly actor-critic reinforcement learning through modulation of spike-timing-dependent plasticity
Zhu et al. Mnsim 2.0: A behavior-level modeling tool for processing-in-memory architectures
Thomas et al. Analysis of parasitics on CMOS based memristor crossbar array for neuromorphic systems
Mikhaylov et al. Neuromorphic computing based on CMOS-integrated memristive arrays: current state and perspectives
He et al. Design space and memory technology co-exploration for in-memory computing based machine learning accelerators
Yang et al. Essence: Exploiting structured stochastic gradient pruning for endurance-aware reram-based in-memory training systems
Fritscher et al. Simulating large neural networks embedding MLC RRAM as weight storage considering device variations
Madhavan et al. Temporal state machines: Using temporal memory to stitch time-based graph computations
Galicia et al. Neurovp: A system-level virtual platform for integration of neuromorphic accelerators

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant