[go: up one dir, main page]

CN117037877A - 基于NOR Flash的存内计算芯片及其控制方法 - Google Patents

基于NOR Flash的存内计算芯片及其控制方法 Download PDF

Info

Publication number
CN117037877A
CN117037877A CN202310887201.7A CN202310887201A CN117037877A CN 117037877 A CN117037877 A CN 117037877A CN 202310887201 A CN202310887201 A CN 202310887201A CN 117037877 A CN117037877 A CN 117037877A
Authority
CN
China
Prior art keywords
flash
module
mode
computing chip
analog
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.)
Pending
Application number
CN202310887201.7A
Other languages
English (en)
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.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen University
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 Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CN202310887201.7A priority Critical patent/CN117037877A/zh
Publication of CN117037877A publication Critical patent/CN117037877A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Read Only Memory (AREA)

Abstract

本发明公开了一种基于NOR Flash的存内计算芯片及其控制方法,芯片包括:输入接口模块、NOR Flash Cap单元阵列模块、控制器和输出接口模块;输入接口模块用于接收目标数据;NOR Flash Cap单元阵列模块包括多个阈值电压可调的NOR Flash单元和多个等比例电容;存储模式下,NOR Flash单元用于存储目标数据;计算模式下,NOR Flash单元和等比例电容用于根据目标数据进行计算;计算模式采用电荷均分原理进行计算;控制器用于控制存内计算芯片在存储模式和计算模式间进行切换;输出接口模块用于输出数据。本发明可以提高数据迁移效率,从而提高计算性能,可广泛应用于闪存芯片领域。

Description

基于NOR Flash的存内计算芯片及其控制方法
技术领域
本发明涉及闪存芯片领域,尤其是一种基于NOR Flash的存内计算芯片及其控制方法。
背景技术
在经典冯诺依曼计算体系结构中,存储器与处理器是分离的,两者之间通过数据总线进行数据传输。执行命令时,处理器先从存储器中读取数据,处理完之后,再把更新后的数据写回存储器中,频繁的数据迁移导致产生巨大的功耗和时间开销。
目前,处理器的处理速度在不断提升,但存储器的访问速度有限,极大地影响了计算性能。尤其是,随着大数据与人工智能等应用的兴起,海量数据的处理使得冯诺依曼计算体系结构瓶颈越来越突出。因此,现有技术提出了基于电流进行存内计算的存算一体电路,但基于电流进行存内计算会导致计算速度有所限制,现有的存内计算仍存在计算性能较低的问题。
发明内容
有鉴于此,本发明提供一种基于NOR Flash的存内计算芯片及其控制方法,以提高数据迁移效率,从而提高计算性能。
本发明的一方面提供了一种基于NOR Flash的存内计算芯片,包括:输入接口模块、NOR Flash Cap单元阵列模块、控制器和输出接口模块;
其中,所述输入接口模块用于接收目标数据;
所述NOR Flash Cap单元阵列模块包括多个阈值电压可调的NOR Flash单元和多个等比例电容;
在存储模式下,所述NOR Flash单元用于存储所述目标数据;
在计算模式下,所述NOR Flash单元和所述等比例电容用于根据所述目标数据进行计算;所述计算模式采用电荷均分原理进行计算;
所述控制器用于控制所述存内计算芯片在所述存储模式和所述计算模式之间进行切换;
所述输出接口模块用于输出数据。
可选地,所述NOR Flash Cap单元阵列模块为二维结构,多个所述NOR Flash单元在所述NOR Flash Cap单元阵列模块中组成二维阵列结构;每个所述NOR Flash单元包括栅极、漏极和源极;
在所述NOR Flash Cap单元阵列模块中,每一行所有的所述NOR Flash单元的栅极均连接至同一个字线,多行所述NOR Flash单元对应连接多个字线;每一列所有的所述NORFlash单元的漏极连接同一个位线,每一列所有的所述NOR Flash单元的源极连接同一个源线,每一列的每个所述NOR Flash单元的源极还与一个所述等比例电容的上极板连接,每个所述等比例电容的下极板与地连接。
可选地,所述存内计算芯片还包括多个均分开关和一个接地开关;
每个所述均分开关的一端,与一个对应的公共端连接,每个所述NOR Flash单元的源极与一个所述等比例电容的上极板的连接端作为一个所述公共端;
所有所述均分开关的另一端共同连接到所述接地开关的一端,所述接地开关的另一端与地连接;
所述控制器用于产生使能信号并根据所述使能信号控制所述存储模式的使能开关和所述计算模式的使能开关,以控制所述存内计算芯片在所述存储模式和所述计算模式之间进行切换。
可选地,所述存内计算芯片还包括行列译码器模块和编程电路模块;所述输出接口模块包括模拟处理模块和算术后处理模块;
其中,所述输入接口模块的一端与所述行列译码器模块的第一端连接,所述行列译码器模块的第二端与所述NOR Flash Cap单元阵列模块的第一端连接,所述行列译码器模块的第三端与所述编程电路模块连接;所述模拟处理模块的一端与所述NOR Flash Cap单元阵列模块的第二端连接,所述模拟处理模块的另一端与所述算术后处理模块的一端连接;所述算术后处理模块的另一端与所述输出接口模块的一端连接;
在所述存储模式下,所述字线用于接收所述NOR Flash单元的行选择信号,所述位线作为电压输入端,所述源线作为模拟电流输出端;所述输入接口模块、所述行列译码器模块以及所述编程电路模块共同完成对所述NOR Flash Cap单元阵列模块的擦写读操作;所述模拟处理模块用于将所述NOR Flash Cap单元阵列模块输出的模拟电压信号或电流信号转换为数字信号;所述算术后处理模块用于根据所述数字信号进行算术运算。
可选地,所述输入接口模块为模拟输入信号模块,所述输出接口模块包括模数转换模块、数字处理电路和算术后处理模块;
其中,所述控制器的第一端与所述模拟输入信号模块的第一端连接,所述控制器的第二端分别与所述模数转换模块的第一端、所述数字处理电路的第一端和所述算术后处理模块的第一端连接;所述模拟输入信号模块的第二端与所述NOR Flash Cap单元阵列模块的第一端连接,所述NOR Flash Cap单元阵列模块的第一端为所述NOR Flash单元的漏极;所述模数转换模块的第二端与所述NOR Flash Cap单元阵列模块的第二端连接,所述模数转换模块的第三端与所述数字处理电路的第二端连接;所述数字处理电路的第三端与所述算术后处理模块的第二端连接;
所述模拟输入信号模块用于接收所述目标数据;所述模数转换模块用于将所述NOR Flash Cap单元阵列模块输出的模拟电压信号或电流信号转换为数字信号;所述数字处理电路用于对所述数字信号进行预处理;所述算术后处理模块用于根据经过预处理的所述数字信号进行算术运算;
在所述计算模式下,所述字线用于接收所述NOR Flash单元的列选择信号;所述位线上的电压信号作为乘累加操作的输入激励信号,所述源线处于断开状态;所述等比例电容的数量与乘累加操作中的数字权重的位宽相同,所述等比例电容用于在基于电荷均分的乘法操作过程进行充电;在所述NOR Flash Cap单元阵列模块无输入激励信号时,所述接地开关和所有所述均分开关均处于闭合状态,以清空所有所述等比列电容的电荷。
可选地,在所述计算模式下,所述均分开关用于使基于电荷均分的乘累加操作过程中产生的电荷在所有所述等比列电容上进行均分;
在所述计算模式下,所述控制器还用于控制所述接口输入模块的输入电压和各个所述均分开关以调整乘累加操作中数字输入信号的位宽;所述控制器还用于在乘累加操作过程中控制各个所述均分开关的开闭状态,以进行不同尺寸的卷积操作。
可选地,所述算术后处理模块包括池化电路、Sigmoid函数电路、Relu函数电路、Tanh函数电路或BNRelu电路中的至少之一。
本发明的另一方面还提供了一种基于NOR Flash的存内计算芯片的控制方法,应用于上述一种基于NOR Flash的存内计算芯片中的控制器,所述方法包括:
确定存内计算芯片的工作模式,所述工作模式包括存储模式和计算模式;
当所述工作模式为所述存储模式时,对NOR Flash Cap单元阵列模块中的NORFlash单元进行数据编程并检测所述数据编程是否正确;
当所述工作模式为所述计算模式时,控制所述存内计算芯片中的输入接口模块、行列译码器模块以及编程电路模块共同完成对所述NOR Flash Cap单元阵列模块的擦写读操作;
和/或,
当所述工作模式为所述计算模式时,控制所述NOR Flash Cap单元阵列模块进行乘累加操作;控制所述接口输入模块的输入电压和所述NOR Flash Cap单元阵列模块中的各个均分开关,以调整乘累加操作中数字输入信号的位宽;在乘累加操作过程中控制各个所述均分开关的开闭状态,以进行不同尺寸的卷积操作。
本发明的另一方面还提供了一种存储装置,所述存储装置包括上述的一种基于NOR Flash的存内计算芯片,所述存内计算芯片用于存储数据。
本发明的另一方面还提供了一种电子设备,其特征在于,包括处理器、SRAM、通信接口、总线以及上述的一种基于NOR Flash的存内计算芯片;
其中,所述通信接口用于与外部设备交换数据;
所述处理器、所述SRAM、所述通信接口以及所述存内计算芯片分别与所述总线连接。
相较于现有技术,本发明至少具备以下有益效果:
本发明提供一种基于NOR Flash的存内计算芯片包括输入接口模块、NOR FlashCap单元阵列模块、控制器和输出接口模块,NOR Flash Cap单元阵列模块包括多个阈值电压可调的NOR Flash单元和多个等比例电容,在存储模式下,NOR Flash单元用于存储目标数据;在计算模式下,NOR Flash单元和等比例电容用于根据目标数据(目标数据可以是模拟电压信号)进行计算;计算模式采用电荷均分原理进行计算,本发明基于电荷均分的原理进行计算,相较于现有的存内计算单元基于电流的计算方式,本发明的计算速度更快更高效。
而且,本发明的存内计算芯片可以进行计算和数据存储,实现存算一体,不需要在存储器与处理器之间频繁传输数据,减少功耗与时间开销,提高处理性能,分担了处理器的工作,进而提高了整体计算体系结构的性能;由于无需频繁传输数据,本发明无需对带宽进行限制要求;当没有计算任务时,本发明的存内计算芯片可以作为存储器用于存储数据,实现电器元件的复用,提高元件利用效率,节省集成电路的硬件成本。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于NOR Flash的存内计算芯片的结构示意图;
图2为本发明实施例提供的一种NOR Flash Cap单元阵列模块的结构示例图;
图3为本发明实施例提供的一种存储模式和计算模式的切换电路图;
图4为本发明实施例提供的一种NOR Flash Cap单元阵列模块的单个乘法计算点示意图;
图5为本发明实施例提供的一种存内计算芯片在存储模式下的结构示意图;
图6为本发明实施例提供的一种存内计算芯片在计算模式下的结构示意图;
图7为本发明实施例提供的一种NOR Flash Cap单元阵列模块卷积操作的电路示意图;
图8为本发明实施例提供的一种NOR Flash Cap单元阵列模块数字权重位宽可调整的电路示意图;
图9为本发明实施例提供的一种NOR Flash Cap单元阵列模块卷积操作尺寸大小可切换的电路示意图;
图10为本发明实施例提供的一种算术后处理模块的结构示意图;
图11为本发明实施例提供的一种可配置数字处理模块的结构示意图;
图12为本发明实施例提供的一种应用存内计算芯片的电子设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。
说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
参照图1,本发明实施例提供了一种基于NOR Flash的存内计算芯片,包括:输入接口模块、NOR Flash Cap单元阵列模块、控制器和输出接口模块;
其中,所述输入接口模块用于接收目标数据;
所述NOR Flash Cap单元阵列模块包括多个阈值电压可调的NOR Flash单元和多个等比例电容;
在存储模式下,所述NOR Flash单元用于存储所述目标数据;
在计算模式下,所述NOR Flash单元和所述等比例电容用于根据所述目标数据进行计算;所述计算模式采用电荷均分原理进行计算;
所述控制器用于控制所述存内计算芯片在所述存储模式和所述计算模式之间进行切换;
所述输出接口模块用于输出数据。
具体地,输入接口模块与外部元件连接,例如与外部微处理器连接,用于接收待计算数据(即目标数据),一种可选的实施方式下,待计算数据作为激励信号,其可以是模拟电压信号,而NOR Flash单元的阈值电压可调,相当于每个NOR Flash单元中存储一个多位数字权重数据的其中一位,每个NOR Flash单元的输出电压等于激励信号与数字权重数据的乘积,权重数据为位宽可调整的数字信号。
进一步地,所述NOR Flash Cap单元阵列模块为二维结构,多个所述NOR Flash单元在所述NOR Flash Cap单元阵列模块中组成二维阵列结构;每个所述NOR Flash单元包括栅极、漏极和源极;
在所述NOR Flash Cap单元阵列模块中,每一行所有的所述NOR Flash单元的栅极均连接至同一个字线,多行所述NOR Flash单元对应连接多个字线;每一列所有的所述NORFlash单元的漏极连接同一个位线,每一列所有的所述NOR Flash单元的源极连接同一个源线,每一列的每个所述NOR Flash单元的源极还与一个所述等比例电容的上极板连接,每个所述等比例电容的下极板与地连接。
在一种可选的实施方式中,参照图2,NOR Flash Cap单元阵列模块可以包括NORFlash单元阵列,NOR Flash单元的阵列为二维结构。其中,NOR Flash单元是NOR Flash Cap单元阵列模块除去等比例电容的部分,可以用于存储0或1的NOR Flash管。
参照图3,每个NOR Flash单元可以简化为一个三端结构,其包括栅极漏极和源极。多个NOR Flash单元通过字线(WL)、位线(BL)与源线(SL)进行阵列连接。
NOR Flash Cap单元阵列模块中包括多个NOR Flash单元,多个NOR Flash单元呈阵列排布,每一行的所有NOR Flash单元的栅极均连接至同一个字线WL,多行NOR Flash单元对应连接多个字线,即WL1~WLN;每一列的所有NOR Flash单元的源极和漏极呈镜像分布,每列的NOR Flash单元的漏极连接位线BL,每列NOR Flash单元的源极接源线SL,多列NOR Flash单元对应多个位线BL1~BLN和多个源线SL1~SLN。
进一步地,所述存内计算芯片还包括多个均分开关和一个接地开关;
每个所述均分开关的一端,与一个对应的公共端连接,每个所述NOR Flash单元的源极与一个所述等比例电容的上极板的连接端作为一个所述公共端;
所有所述均分开关的另一端共同连接到所述接地开关的一端,所述接地开关的另一端与地连接;
所述控制器用于产生使能信号并根据所述使能信号控制所述存储模式的使能开关和所述计算模式的使能开关,以控制所述存内计算芯片在所述存储模式和所述计算模式之间进行切换。
具体地,多个均分开关和一个接地开关可以作为开关模块,多个等比例电容可以作为等比列电容模块。参照图4,通过控制器可以实现存内计算芯片存储模式和计算模式的切换,控制器的使能信号控制计算模式的使能开关和存储模式的使能开关,对两种模式进行控制。
具体地,计算模式的使能过程包括:在存储模式的擦写完成以后,控制器可以立即发出控制信号(一定脉冲宽度的高电平信号)使得存储模式的读出路径断开,也即控制器的信号控制SA端的MOS开关断开,同时,控制器可以控制接地开关,以及与NOR Flash单元连接的各个均分开关同时闭合,然后存内计算芯片进入计算模式。
可选地,均分开关和接地开关均可以采用NMOS管实现,也可以采用传输门实现。
接下来,分别对存储模式和计算模式进行说明。
首先,对存内计算芯片在存储模式下各个电路模块或元件进行说明。
进一步地,所述存内计算芯片还包括行列译码器模块和编程电路模块;所述输出接口模块包括模拟处理模块和算术后处理模块;
其中,所述输入接口模块的一端与所述行列译码器模块的第一端连接,所述行列译码器模块的第二端与所述NOR Flash Cap单元阵列模块的第一端连接,所述行列译码器模块的第三端与所述编程电路模块连接;所述模拟处理模块的一端与所述NOR Flash Cap单元阵列模块的第二端连接,所述模拟处理模块的另一端与所述算术后处理模块的一端连接;所述算术后处理模块的另一端与所述输出接口模块的一端连接;
在所述存储模式下,所述字线用于接收所述NOR Flash单元的行选择信号,所述位线作为电压输入端,所述源线作为模拟电流输出端;所述输入接口模块、所述行列译码器模块以及所述编程电路模块共同完成对所述NOR Flash Cap单元阵列模块的擦写读操作;所述模拟处理模块用于将所述NOR Flash Cap单元阵列模块输出的模拟电压信号或电流信号转换为数字信号;所述算术后处理模块用于根据所述数字信号进行算术运算。
参照图5,本发明实施例提供了一种存内计算芯片在存储模式下的结构示意图。
具体地,行列译码器模块用于对NOR Flash Cap单元阵列模块中的NOR Flash单元阵列进行行列译码;编程电路模块用于调控NOR Flash单元的阈值电压,具体地,编程电路模块与每个NOR Flash单元的源极、栅极或衬底中的至少之一连接。
行列译码器模块用于存储模式下,选通需要的NOR Flash单元,以对NOR Flash单元施加模拟输入信号或编程/擦除电压。
作为一种进一步可选的实施方式,编程电路模块可以包括:电压产生电路和电压控制电路,电压产生电路用于产生编程电压或擦除电压,电压控制电路用于将编程电压加载至选定的NOR Flash单元的源极,或者,将擦除电压加载至选定的NOR Flash单元的栅极或衬底,以调控NOR Flash单元的阈值电压。
具体地,编程电路模块可以利用热电子注入效应,根据NOR Flash单元的阈值电压需求数据,向NOR Flash单元的源极施加高电压,将沟道电子加速到高速,从而增加NORFlash单元的阈值电压。并且,编程电路模块还可以利用隧穿效应,根据NOR Flash单元的阈值电压需求数据,向NOR Flash单元的栅极或衬底施加高电压,将电子从NOR Flash单元中吸引出来,以减少NOR Flash单元的阈值电压。
更进一步地,本发明的存内计算芯片还可以包括:输入寄存器模块和输出寄存器模块,输入寄存器模块连接在输入接口模块和NOR Flash Cap单元阵列模块之间,用于寄存输入接口模块所要输出的数据,输出寄存器模块连接在算术后处理模块和存内计算芯片的输出端之间,用于寄存算术后处理模块所要输出的数据。
在存储模式下,字线用于接收NOR Flash单元行选择信号;位线作为电压输入端;源线作为模拟电流输出端。
由于NOR Flash Cap单元阵列模块中每一个NOR Flash单元都有独立的字线和位线连接,因此NOR Flash单元阵列的可独立寻址,即可独立读写最小读写,而最小的擦除单位为一个块(block,即多个页组成一个块,可选地,一个块可以同时擦写)。可选地,本发明的存内计算芯片的擦写过程可以与现有技术的擦写过程相同。
然后,对对存内计算芯片在计算模式下各个电路模块或元件进行说明。
进一步地,所述输入接口模块为模拟输入信号模块,所述输出接口模块包括模数转换模块、数字处理电路和算术后处理模块;
其中,所述控制器的第一端与所述模拟输入信号模块的第一端连接,所述控制器的第二端分别与所述模数转换模块的第一端、所述数字处理电路的第一端和所述算术后处理模块的第一端连接;所述模拟输入信号模块的第二端与所述NOR Flash Cap单元阵列模块的第一端连接,所述NOR Flash Cap单元阵列模块的第一端为所述NOR Flash单元的漏极;所述模数转换模块的第二端与所述NOR Flash Cap单元阵列模块的第二端连接,所述模数转换模块的第三端与所述数字处理电路的第二端连接;所述数字处理电路的第三端与所述算术后处理模块的第二端连接;
所述模拟输入信号模块用于接收所述目标数据;所述模数转换模块用于将所述NOR Flash Cap单元阵列模块输出的模拟电压信号或电流信号转换为数字信号;所述数字处理电路用于对所述数字信号进行预处理;所述算术后处理模块用于根据经过预处理的所述数字信号进行算术运算;
在所述计算模式下,所述字线用于接收所述NOR Flash单元的列选择信号;所述位线上的电压信号作为乘累加操作的输入激励信号,所述源线处于断开状态;所述等比例电容的数量与乘累加操作中的数字权重的位宽相同,所述等比例电容用于在基于电荷均分的乘法操作过程进行充电;在所述NOR Flash Cap单元阵列模块无输入激励信号时,所述接地开关和所有所述均分开关均处于闭合状态,以清空所有所述等比列电容的电荷。
而且,在所述计算模式下,所述均分开关用于使基于电荷均分的乘累加操作过程中产生的电荷在所有所述等比列电容上进行均分;在所述计算模式下,所述控制器还用于控制所述接口输入模块的输入电压和各个所述均分开关以调整乘累加操作中数字输入信号的位宽;所述控制器还用于在乘累加操作过程中控制各个所述均分开关的开闭状态,以进行不同尺寸的卷积操作。
参照图6,本发明实施例提供了一种存内计算芯片在计算模式下的结构示意图。
具体地,在计算模式下,在单个乘法中,数字权重为N bit时,权重由低到高的NORFlash单元对应的计算路径上的电容大小为2jC、2j-1C...22C、21C、20C,其中C为存储电路能够实现的最小单位电容。以图4的3bit数字权重为实例,由高到低位权重的3个NOR Flash单元对应的计算路径上的电容分别为4C、2C和C。
在计算模式下,从接口输入模块输入的目标数据为模拟电压信号,其中作为输入激励信号由BL加到NOR Flash单元的漏极,多bit数字权重进行乘法运算,其中,NOR Flash单元可以是三端器件,包括栅极、源极以及漏极。在计算模式下,栅极连接WL,源极连接SL,漏极连接输入激励信号,即模拟输入电压信号。
上述运算步骤包括:
步骤1:控制器使能基于NOR Flash的存内计算芯片进入模式使能;
步骤2:等比列电容根据输入的模拟电压信号进行充电,NOR Flash单元的存储值为1时,NOR Flash单元的阈值为高,则对应的电容上不会有电荷积累,Q=0;NOR Flash单元的存储值为0时,NOR Flash单元的阈值为低,对应的电容上会积累电荷,电荷量为电容与输入激励信号的乘积,Q=C×Vin;
步骤3:单个计算点等比例电容连接,根据并联电容均分的原理得到单个乘法操作的计算结果;具体地,单个计算点指卷积核计算中9个(3乘3)乘法计算中的一个。
步骤4:卷积核计算,对应尺寸大小的卷积核计算涉及到多少个乘法,即将多少个计算点的等比例电容连接,多个计算点的电荷均分,最终的均分电压结果,是多个计算点计算结果的求和并乘以固定系数,该系数为计算点个数的倒数。
输入激励信号与多bit数字权重进行乘法运算,单个计算点乘法计算的原理公式:
输入激励信号与多bit数字权重进行乘法运算,S个点乘累加求和的原理公式:
上述两个表达式的变量说明如下:
Vout:乘法计算结果模拟电压;Vin表示加载到Nor Flash单元漏极的电压,即乘法计算的乘数1(模拟信号);
C:等比例电容阵列(各个等比例电容组成的阵列)中的最小单位电容值;
N:等比例电容中,单个乘法计算点使用到的等比例电容的数量;
j:单个乘法计算点中等比例电容中的电容序号;
W[j]:单个乘法计算点的数字权重;
Vouts:S个乘累加计算的输出结果电压(模拟);
Vn:第n个乘法计算点的乘数(模拟信号,加载到漏极的电压);
在计算模式下,数字权重的位宽可根据实际的计算需求调整,如图7所示,每个写好值的NOR Flash单元代表数字权重的1位,N位数字权重由N个NOR Flash单元组合表示,图7为3bit数字权重的示意图。
进一步地,在计算模式下,参照图8,通过控制NOR Flash Cap单元阵列模块中与等比例电容阵列连接的开关模块,实现不同bit位的单个乘法计算操作,即控制参与电荷均分的等比例电容的数量。
在计算模式下,参照图9,卷积核计算的操作,可通过控制电路调整开关闭合情况,调整乘累加操作的规模,例如3×3,5×5,7×7...N×N等的卷积核。
在一种可选的实施方式下,控制器连接存内计算芯片的各个模块,用于控制存内计算芯片的状态与操作,比如控制NOR Flash Cap单元阵列模块的工作模式,控制行列译码器模块进行行列译码,控制编程电路进行数据编程,选择模拟处理模块执行的处理,控制开关模块基于NOR Flash Cap单元进行乘法操作,控制卷积核尺寸的大小,控制可配置数字处理模块执行的运算等。
乘累加操作可以基于电荷均分原理进行,基于乘累加操作的卷积计算可直接由组合开关的控制实现卷积核大小的切换,在速度和功耗上比现有技术基于电流计算更优。
接下来,对计算模式下的算术后处理模块进行说明。
更进一步地,所述算术后处理模块包括池化电路、Sigmoid函数电路、Relu函数电路、Tanh函数电路或BNRelu电路中的至少之一。
参照图10,算术后处理模块可以作为可配置数字处理模块,可配置数字处理模块可以包括在神经网络算法中常用的多种处理电路,例如池化电路、激活电路中的Sigmoid函数电路、Relu函数电路、Tanh函数电路以及BNRelu电路等,多种运算电路封装为一个数字运算单元,可配置数字处理模块内可以包括多个数字运算单元。本发明可以实现对存储单元阵列输出的运算结果的进一步算术运算,提高了存算一体芯片的适用性,扩展了应用范围。
上述可配置数字处理模块的数字处理单元串行连接,根据计算需求可以使用不同数量的数字运算单元,参照图11,每个可配置数字处理模块可以包括:多路分配器、数字运算单元以及多路选择器。
多路分配器的输入端连接上一个可配置数字处理模块或模数转换模块,多路分配器的第一输出端连接数字运算单元,数字运算单元的输出端以及多路分配器第二输出端通过一个多路选择器连接下一可配置数字处理模块或输出寄存器模块,或通过多路选择器作为输出端,另外,多路分配器以及多路选择器的控制端均连接控制器。
作为另一种可选的实施方式,多个可配置数字处理模块的连接关系如下:
第一可配置数字处理模块中的多路分配器的输入端连接模数转换模块的输出端,第一可配置数字处理模块的第一输出端连接第一可配置数字处理模块中的数字运算单元的输入端,第一可配置数字处理模块的第二输出端和数字运算单元的输出端通过一个多路选择器连接第二可配置数字处理模块的输入端,该多路分配器和该多路选择器的控制端连接控制器。
第二可配置数字处理模块中多路分配器的输入端连接第一可配置数字处理模块的输出端,第二可配置数字处理模块的第一输出端连接第二可配置数字处理模块单元中的数字运算单元的输入端,第二可配置数字处理模块的第二输出端和该数字运算单元的输出端通过一个多路选择器连接第三可配置数字处理模块的输入端,多路分配器和多路选择器的控制端连接该控制器。依此类推,直到第N可配置数字处理模块,第N可配置数字处理模块中的多路分配器的输入端连接第N-1可配置数字处理模块的输出端,其中一个输出端连接该第N可配置数字处理模块单元中的数字运算单元的输入端,另一个输出端和该数字运算单元的输出端通过一个多路选择器连接输出寄存器的输入端或者作为输出端,多路分配器和多路选择器的控制端连接控制器。
本发明实施例还提供了一种基于NOR Flash的存内计算芯片的控制方法,应用于上述的一种基于NOR Flash的存内计算芯片中的控制器,所述方法包括:
确定存内计算芯片的工作模式,所述工作模式包括存储模式和计算模式;
当所述工作模式为所述存储模式时,对NOR Flash Cap单元阵列模块中的NORFlash单元进行数据编程并检测所述数据编程是否正确;
当所述工作模式为所述计算模式时,控制所述存内计算芯片中的输入接口模块、行列译码器模块以及编程电路模块共同完成对所述NOR Flash Cap单元阵列模块的擦写读操作;
和/或,
当所述工作模式为所述计算模式时,控制所述NOR Flash Cap单元阵列模块进行乘累加操作;控制所述接口输入模块的输入电压和所述NOR Flash Cap单元阵列模块中的各个均分开关,以调整乘累加操作中数字输入信号的位宽;在乘累加操作过程中控制各个所述均分开关的开闭状态,以进行不同尺寸的卷积操作。
本发明实施例还提供了一种存储装置,所述存储装置包括上述的一种基于NORFlash的存内计算芯片,所述存内计算芯片用于存储数据。
参照图12,本发明实施例还提供了一种电子设备,包括处理器、SRAM、通信接口、总线(即图12中的高速通信总线)以及上述的一种基于NOR Flash的存内计算芯片(即图12中的NOR Flash Cap存算一体芯片);
其中,所述通信接口用于与外部设备交换数据;
所述处理器、所述SRAM、所述通信接口以及所述存内计算芯片分别与所述总线连接。
具体地,处理器可以是微处理器,其可以作为主设备,可以基于不同的指令集实现,一种可选的实施方式为基于riscv的微处理器。基于NOR Flash的存内计算芯片可以作为从设备,基于NOR Flash的存内计算芯片结构如上所述,在此不再赘述。
本发明的电子设备可以通过通信接口与外部设备通信(接收数据或输出数据),通信接口以及存内计算芯片之间可以通过总线进行通信连接。
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,所述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本发明权利要求所限定的范围内。

Claims (10)

1.一种基于NOR Flash的存内计算芯片,其特征在于,包括:输入接口模块、NOR FlashCap单元阵列模块、控制器和输出接口模块;
其中,所述输入接口模块用于接收目标数据;
所述NOR Flash Cap单元阵列模块包括多个阈值电压可调的NOR Flash单元和多个等比例电容;
在存储模式下,所述NOR Flash单元用于存储所述目标数据;
在计算模式下,所述NOR Flash单元和所述等比例电容用于根据所述目标数据进行计算;所述计算模式采用电荷均分原理进行计算;
所述控制器用于控制所述存内计算芯片在所述存储模式和所述计算模式之间进行切换;
所述输出接口模块用于输出数据。
2.根据权利要求1所述的一种基于NOR Flash的存内计算芯片,其特征在于,所述NORFlash Cap单元阵列模块为二维结构,多个所述NOR Flash单元在所述NOR Flash Cap单元阵列模块中组成二维阵列结构;每个所述NOR Flash单元包括栅极、漏极和源极;
在所述NOR Flash Cap单元阵列模块中,每一行所有的所述NOR Flash单元的栅极均连接至同一个字线,多行所述NOR Flash单元对应连接多个字线;每一列所有的所述NORFlash单元的漏极连接同一个位线,每一列所有的所述NOR Flash单元的源极连接同一个源线,每一列的每个所述NOR Flash单元的源极还与一个所述等比例电容的上极板连接,每个所述等比例电容的下极板与地连接。
3.根据权利要求2所述的一种基于NOR Flash的存内计算芯片,其特征在于,所述存内计算芯片还包括多个均分开关和一个接地开关;
每个所述均分开关的一端,与一个对应的公共端连接,每个所述NOR Flash单元的源极与一个所述等比例电容的上极板的连接端作为一个所述公共端;
所有所述均分开关的另一端共同连接到所述接地开关的一端,所述接地开关的另一端与地连接;
所述控制器用于产生使能信号并根据所述使能信号控制所述存储模式的使能开关和所述计算模式的使能开关,以控制所述存内计算芯片在所述存储模式和所述计算模式之间进行切换。
4.根据权利要求2所述的一种基于NOR Flash的存内计算芯片,其特征在于,所述存内计算芯片还包括行列译码器模块和编程电路模块;所述输出接口模块包括模拟处理模块和算术后处理模块;
其中,所述输入接口模块的一端与所述行列译码器模块的第一端连接,所述行列译码器模块的第二端与所述NOR Flash Cap单元阵列模块的第一端连接,所述行列译码器模块的第三端与所述编程电路模块连接;所述模拟处理模块的一端与所述NOR Flash Cap单元阵列模块的第二端连接,所述模拟处理模块的另一端与所述算术后处理模块的一端连接;所述算术后处理模块的另一端与所述输出接口模块的一端连接;
在所述存储模式下,所述字线用于接收所述NOR Flash单元的行选择信号,所述位线作为电压输入端,所述源线作为模拟电流输出端;所述输入接口模块、所述行列译码器模块以及所述编程电路模块共同完成对所述NOR Flash Cap单元阵列模块的擦写读操作;所述模拟处理模块用于将所述NOR Flash Cap单元阵列模块输出的模拟电压信号或电流信号转换为数字信号;所述算术后处理模块用于根据所述数字信号进行算术运算。
5.根据权利要求3所述的一种基于NOR Flash的存内计算芯片,其特征在于,所述输入接口模块为模拟输入信号模块,所述输出接口模块包括模数转换模块、数字处理电路和算术后处理模块;
其中,所述控制器的第一端与所述模拟输入信号模块的第一端连接,所述控制器的第二端分别与所述模数转换模块的第一端、所述数字处理电路的第一端和所述算术后处理模块的第一端连接;所述模拟输入信号模块的第二端与所述NOR Flash Cap单元阵列模块的第一端连接,所述NOR Flash Cap单元阵列模块的第一端为所述NOR Flash单元的漏极;所述模数转换模块的第二端与所述NOR Flash Cap单元阵列模块的第二端连接,所述模数转换模块的第三端与所述数字处理电路的第二端连接;所述数字处理电路的第三端与所述算术后处理模块的第二端连接;
所述模拟输入信号模块用于接收所述目标数据;所述模数转换模块用于将所述NORFlash Cap单元阵列模块输出的模拟电压信号或电流信号转换为数字信号;所述数字处理电路用于对所述数字信号进行预处理;所述算术后处理模块用于根据经过预处理的所述数字信号进行算术运算;
在所述计算模式下,所述字线用于接收所述NOR Flash单元的列选择信号;所述位线上的电压信号作为乘累加操作的输入激励信号,所述源线处于断开状态;所述等比例电容的数量与乘累加操作中的数字权重的位宽相同,所述等比例电容用于在基于电荷均分的乘法操作过程进行充电;在所述NOR Flash Cap单元阵列模块无输入激励信号时,所述接地开关和所有所述均分开关均处于闭合状态,以清空所有所述等比列电容的电荷。
6.根据权利要求5所述的一种基于NOR Flash的存内计算芯片,其特征在于,在所述计算模式下,所述均分开关用于使基于电荷均分的乘累加操作过程中产生的电荷在所有所述等比列电容上进行均分;
在所述计算模式下,所述控制器还用于控制所述接口输入模块的输入电压和各个所述均分开关以调整乘累加操作中数字输入信号的位宽;所述控制器还用于在乘累加操作过程中控制各个所述均分开关的开闭状态,以进行不同尺寸的卷积操作。
7.根据权利要求5所述的一种基于NOR Flash的存内计算芯片,其特征在于,所述算术后处理模块包括池化电路、Sigmoid函数电路、Relu函数电路、Tanh函数电路或BNRelu电路中的至少之一。
8.一种基于NOR Flash的存内计算芯片的控制方法,其特征在于,应用于如权利要求1至7任一项所述的一种基于NOR Flash的存内计算芯片中的控制器,所述方法包括:
确定存内计算芯片的工作模式,所述工作模式包括存储模式和计算模式;
当所述工作模式为所述存储模式时,对NOR Flash Cap单元阵列模块中的NOR Flash单元进行数据编程并检测所述数据编程是否正确;
当所述工作模式为所述计算模式时,控制所述存内计算芯片中的输入接口模块、行列译码器模块以及编程电路模块共同完成对所述NOR Flash Cap单元阵列模块的擦写读操作;
和/或,
当所述工作模式为所述计算模式时,控制所述NOR Flash Cap单元阵列模块进行乘累加操作;控制所述接口输入模块的输入电压和所述NOR Flash Cap单元阵列模块中的各个均分开关,以调整乘累加操作中数字输入信号的位宽;在乘累加操作过程中控制各个所述均分开关的开闭状态,以进行不同尺寸的卷积操作。
9.一种存储装置,其特征在于,所述存储装置包括如权利要求1至7任一项所述的一种基于NOR Flash的存内计算芯片,所述存内计算芯片用于存储数据。
10.一种电子设备,其特征在于,包括处理器、SRAM、通信接口、总线以及如权利要求1至7任一项所述的一种基于NOR Flash的存内计算芯片;
其中,所述通信接口用于与外部设备交换数据;
所述处理器、所述SRAM、所述通信接口以及所述存内计算芯片分别与所述总线连接。
CN202310887201.7A 2023-07-18 2023-07-18 基于NOR Flash的存内计算芯片及其控制方法 Pending CN117037877A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310887201.7A CN117037877A (zh) 2023-07-18 2023-07-18 基于NOR Flash的存内计算芯片及其控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310887201.7A CN117037877A (zh) 2023-07-18 2023-07-18 基于NOR Flash的存内计算芯片及其控制方法

Publications (1)

Publication Number Publication Date
CN117037877A true CN117037877A (zh) 2023-11-10

Family

ID=88623480

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310887201.7A Pending CN117037877A (zh) 2023-07-18 2023-07-18 基于NOR Flash的存内计算芯片及其控制方法

Country Status (1)

Country Link
CN (1) CN117037877A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117828253A (zh) * 2023-12-07 2024-04-05 中山大学 一种多比特矩阵向量乘法计算单元、阵列及其工作方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117828253A (zh) * 2023-12-07 2024-04-05 中山大学 一种多比特矩阵向量乘法计算单元、阵列及其工作方法

Similar Documents

Publication Publication Date Title
CN110597555B (zh) 非易失性存内计算芯片及其运算控制方法
US11568200B2 (en) Accelerating sparse matrix multiplication in storage class memory-based convolutional neural network inference
US20200311512A1 (en) Realization of binary neural networks in nand memory arrays
Chen et al. Design and optimization of FeFET-based crossbars for binary convolution neural networks
CN109800876B (zh) 一种基于NOR Flash模块的神经网络的数据运算方法
US20200160158A1 (en) Neural Network Circuit
CN113467751B (zh) 一种基于磁性随机存储器的模拟域存内计算阵列结构
CN110598858A (zh) 基于非易失性存内计算实现二值神经网络的芯片和方法
CN114974337B (zh) 一种基于自旋磁随机存储器的时间域存内计算电路
US11880226B2 (en) Digital backed flash refresh
CN211016545U (zh) 基于NAND Flash的存内计算芯片、存储装置以及终端
CN115904311A (zh) 用于多位存储单元中计算的模拟乘法-累加部件
CN113936717B (zh) 一种复用权重的存算一体电路
CN111581141A (zh) 存储器装置及其操作方法
CN114496010A (zh) 一种基于磁性随机存储器的模拟域近存计算阵列结构
Song et al. BRAHMS: Beyond conventional RRAM-based neural network accelerators using hybrid analog memory system
CN117037877A (zh) 基于NOR Flash的存内计算芯片及其控制方法
CN108154227B (zh) 一种使用模拟计算的神经网络芯片
CN108154226B (zh) 一种使用模拟计算的神经网络芯片
CN116523011B (zh) 基于忆阻的二值神经网络层电路及二值神经网络训练方法
WO2025035582A1 (zh) 一种基于柔性rram存算阵列的矩阵运算装置
CN117711461A (zh) 非易失性存储单元以及装置、计算存储单元以及装置
CN114093394B (zh) 一种可转置存内计算电路及其实现方法
CN111243648B (zh) 闪存单元、闪存模块以及闪存芯片
CN115658010A (zh) 一种脉冲宽度调制电路、量化电路、存算电路、芯片

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