CN114281301B - 支持内部数据乒乓的高密度存内计算乘加单元电路 - Google Patents
支持内部数据乒乓的高密度存内计算乘加单元电路 Download PDFInfo
- Publication number
- CN114281301B CN114281301B CN202111326187.0A CN202111326187A CN114281301B CN 114281301 B CN114281301 B CN 114281301B CN 202111326187 A CN202111326187 A CN 202111326187A CN 114281301 B CN114281301 B CN 114281301B
- Authority
- CN
- China
- Prior art keywords
- circuit
- data
- bit
- column
- pong
- 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
Links
- 238000000034 method Methods 0.000 claims description 7
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 abstract description 8
- 229910052710 silicon Inorganic materials 0.000 abstract description 8
- 239000010703 silicon Substances 0.000 abstract description 8
- 230000000903 blocking effect Effects 0.000 abstract description 2
- 230000000694 effects Effects 0.000 abstract description 2
- 238000009825 accumulation Methods 0.000 abstract 1
- 238000004364 calculation method Methods 0.000 description 12
- 239000000872 buffer Substances 0.000 description 9
- 238000003491 array Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Dram (AREA)
- Static Random-Access Memory (AREA)
Abstract
本发明属于智能处理器技术领域,具体提供一种支持内部数据乒乓的高密度存内计算乘加单元电路,用以解决现有技术存在的运算速度慢、运算效率低的问题。本发明在现有存内计算乘加单元中,将SRAM阵列成倍加大并分块划分形成逻辑上交叠的多个SRAM子阵列,用以作为实现数据乒乓操作的电路支持,通过内部数据乒乓操作减少甚至消除了切换的等待时间,大大提高计算效率;并且,成倍加大的SRAM阵列能够填补于实际集成电路中硅片上的空白区域,并不会增大电路面积,反而提高电路的硅片面积利用率。因此,本发明具有提升CIM架构芯片面效比及能效比的优点,乒乓结构提供了更加灵活的数据配置方案,且不限于使用全数字累加树、模拟域运算读出等方式。
Description
技术领域
本发明属于智能处理器技术领域,涉及智能算法中广泛应用在卷积层、反卷积层、全连接层等的乘加运算电路,具体提供一种支持内部数据乒乓的高密度存内计算乘加单元电路。
背景技术
存内计算是一种在存储器内进行逻辑运算的电路组织方式,可以减少数据在存储器和处理器之间的数据移动,在低功耗和物联网等领域具有广泛的应用价值;存内计算的设计目前主要有两种,一种用电流电压等模拟信号进行计算并使用模数转换器读出,另一种是直接在内部使用数字信号进行计算。存内计算是一种内部信号全都使用数字信号表示的存内计算设计方式,其中不涉及任何模拟计算,避免了模数转换器的使用;存内计算常使用SRAM(静态随机存储器)阵列进行设计,SRAM的特点是直接存储‘0’和‘1’的数字信号,且该信号可以直接从存储单元中使用导线引出。
乘加运算是一种基础数学运算,是人工智能算法中广泛应用在卷积层、反卷积层、全连接层等矩阵运算处理方法的数学基础;该运算的数学实质是对两个N元数组进行计算:
现有的存内计算乘加单元电路是一种基于6T-SRAM的电路设计,该设计为每个6T-SRAM单元配备1-bit乘法电路,将一行(横向)中每4个SRAM单元作为一组,每组所在的列(纵向)配备一个加法树;这种方案在使用时,需要先使用若干周期将一个数组写入存储单元内,再将另一个数组按某种方式输入,即可得到乘加结果;但在计算另一组乘加时,又需要先使用若干周期将一个数组写入存储单元内;这种设计不支持数据乒乓操作,在切换内部存储的数组时,需要花费大量时间等待写入,在经典使用场景下很难达到较高的运算速度,且浪费了较多时间,效率不高。另外,在实际应用时发现,该设计中加法树占用了绝大多数硅片面积,而由于加法树与SRAM存储单元在逻辑上和物理位置上的明确对应关系,存储单元电路部分存在大量空白位置,硅片面积利用率较低。
发明内容
本发明的目的在于针对现有存内计算乘加单元电路存在的运算速度慢、运算效率低的问题,提供一种支持内部数据乒乓的高密度存内计算乘加单元电路;将SRAM阵列成倍加大并分块划分形成逻辑上交叠的多个SRAM子阵列,用以作为实现数据乒乓操作的电路支持,成倍加大的SRAM阵列能够填补于实际集成电路中硅片上的空白区域,并不会增大电路面积,反而提高电路的硅片面积利用率;并且,通过内部数据乒乓操作减少甚至消除了切换的等待时间,大大提高计算效率。
为实现上述目的,本发明采用的技术方案为:
一种支持内部数据乒乓的高密度存内计算乘加单元电路,包括:存储电路、运算电路及控制驱动电路;其特征在于,
所述存储电路用于数据存储、并为运算电路提供源数据,具体包括:SRAM阵列与选择电路;其中,
SRAM阵列:4个存储单元(cell)为一个组(group),横向的N个组构成一行(row),纵向的M个组构成一列(column),每一列中相邻的m个组构成一个块(block),共同构成一个Q×N个块的SRAM阵列,Q为正整数:Q=M/m,m≥2;即通过上述划分,在SRA M阵列中形成逻辑上交叠的m个SRAM子阵列(array),每个SRAM子阵列的组织方式相同、均由Q×N个组构成,用于支持数据乒乓;
选择电路:每个块配备一个选择电路,根据选择控制信号从该块的m个组中选出需要送入运算电路的数据;
所述运算电路用于数学运算、产生每行的1-bit输入和选出数据的乘加结果,具体包括:1-bit乘法器电路与求和电路;其中,
1-bit乘法器电路:每个块配备一个1-bit乘法器电路,对1-bit输入数据和选择电路选出的数据做乘法运算,即逻辑上的“与”操作;
求和电路:每一列配备一个求和电路,对该列所有1-bit乘法器电路的输出求和;
所述控制驱动电路用于对SRAM阵列进行读写和运算控制,具体包括:行控制驱动器与列控制驱动器;其中,
行控制驱动器:整个存内计算乘加单元电路配备一个列控制驱动器,在通用SRAM行控制驱动器的基础上,还将每一行的1-bit输入数据传输传至该行的1-bit乘法器电路;以组为单位,每一行配备一条字线(WL),通过字线(WL)控制该行中N个组的打开;以块为单位,每个块配备一条输入线(DI),通过输入线(DI)将1-bit输入数据传输至对应块的1-bit乘法器电路;
列控制驱动器:整个存内计算乘加单元电路配备一个行控制驱动器,在通用SRAM列控制驱动器的基础上,还产生选择电路需要的选择控制信号;以组为单位,每一列配备一组位线(BL),通过位线(BL)实现对应组(该列中处于打开状态的组)的数据写入;以块为单位,每个块配备一条选择控制信号线(SEL),通过选择控制信号线(SEL)实现对应块的选择电路控制。
进一步的,所述存内计算乘加单元电路在行控制驱动器与列控制驱动器控制下,能够实现数据乒乓操作。
进一步的,所述存内计算乘加单元电路的乘加运算流程为:
所述列控制驱动器产生选择控制信号,通过选择控制信号选定一个SRAM子阵列的数据作为选出数据输入至对应的1-bit乘法器电路;同时,所述行控制驱动器将每一行的1-bit输入数据输入至该1-bit乘法器电路,1-bit乘法器电路输出1-bit输入数据和选出数据的乘积;求和电路将一列中所有1-bit乘法器电路的输出相加,得到一个部分和;当输入数据为多bit时,将所有部分和进行移位累加得到乘加运算结果。
更进一步的,所述存内计算乘加单元电路的数据写入流程为:与经典SRAM阵列的写入方式相同,按行写入,每次打开一行字线,同时在位线上输入要写入的值并维持一定电压,即可写入打开的行;数据读出流程为:与经典SRAM阵列的读出方式相同,按行读出,每次打开一行字线,同时读出位线上的值,即可得到打开的行的数据。
从工作原理上讲:
数据乒乓操作是一种数据流控制方法,通常使用两个数据缓冲区,在第一个缓冲周期将输入数据写入缓冲区1,在第二个缓冲周期将输入数据写入缓冲区2并将缓冲区1的数据送至运算器进行处理,在第三个缓冲周期再将输入数据写入缓冲区1并将缓冲区2的数据送至运算器进行处理,如此循环。
本发明提供一种支持内部数据乒乓的高密度存内计算乘加单元电路,其数据乒乓的工作流程为:由于本发明中选择电路的输入不使用位线,所以乘加计算与数据读写能够同时进行;基于此,当选择电路选定某一SRAM子阵列进行乘加计算时,其他未参与计算的子阵列就可以进行写入或读出操作;以两个SRAM子阵列为例:第一个乒乓周期,写入SRAM子阵列1的数据;第二个乒乓周期,行控制驱动器开始输入数据,与SRAM子阵列1中的数据进行乘加运算,同时列控制驱动器写入SRAM子阵列2的数据;第三个乒乓周期,行控制驱动器继续输入数据,与SRAM子阵列2中的数据进行乘加运算,同时列控制驱动器再写入SRAM子阵列1的数据;如此循环。
综上,本发明的有益效果在于:
本发明提供一种支持内部数据乒乓的高密度存内计算乘加单元电路,在现有存内计算乘加单元中,将SRAM阵列成倍加大并分块划分形成逻辑上交叠的多个SRAM子阵列,用以作为实现数据乒乓操作的电路支持,通过内部数据乒乓操作减少甚至消除了切换的等待时间,大大提高计算效率;并且,成倍加大的SRAM阵列能够填补于实际集成电路中硅片上的空白区域,并不会增大电路面积,反而提高电路的硅片面积利用率。因此,本发明具有提升CIM架构芯片面效比及能效比的优点,且乒乓结构提供了更加灵活的数据配置方案。此外,该方案可以通过对读出电路的替换,支持全数字及数模混合运算方案,包括但不限于使用全数字加法树、模拟域运算读出等方式。
附图说明
图1为本发明支持内部数据乒乓的高密度存内计算单元电路的结构示意图。
图2为本发明实施例中SRAM阵列结构示意图。
图3为本发明实施例中控制驱动电路结构示意图。
具体实施方式
下面结合附图和实施例对本发明做进一步详细说明。
实施例
一种支持内部数据乒乓的高密度存内计算单元电路,如图1所示,具体包括:存储电路、运算电路及控制驱动电路;本实施例以2个逻辑上行列均为16-bit的SRAM阵列、输入数据8-bit宽度、存内数据8-bit宽度为例进行说明:
模块1:存储电路;
如图2所示,SRAM阵列:包含逻辑上交叠的2个SRAM阵列(array)(物理上仍为一个),每个逻辑上的SRAM阵列的组织方式相同:4个存储单元(cell)为一个组(group),横向一行(row)有4个组,纵向一列(column)有16个组,一个SRAM阵列中有若16个行和4个列;按块(block)划分后,有16行、4列、共64个块;
如图3所示,选择电路:每个块配备一个选择电路,根据选择控制信号,从该块的2个组中,选出需要送入运算电路的数据;
模块2:运算电路;
如图3所示,1-bit乘法器电路:每个块配备一个1-bit乘法器电路,对输入的1-bit数据和选择电路选出的数据做乘法,即逻辑上的“与”操作;
求和电路:每个列配备一个求和电路,对该列所有乘法器电路的输出求和;
模块3:控制驱动电路;
行控制驱动器:整个存内计算乘加单元电路配备一个列控制驱动器,在通用SRAM行控制驱动器的基础上,还将每一行的1-bit输入数据传输传至该行的1-bit乘法器电路;以组为单位,每一行配备一条字线(WL),通过字线(WL)控制该行中N个组的打开;以块为单位,每个块配备一条输入线(DI),通过输入线(DI)将1-bit输入数据传输至对应块的1-bit乘法器电路;
列控制驱动器:整个存内计算乘加单元电路配备一个行控制驱动器,在通用SRAM列控制驱动器的基础上,还产生选择电路需要的选择控制信号;以组为单位,每一列配备一组(一组中包含4根位线(BL)、对应于4个存储单元cell、附图中简化表示为一根)位线(BL),通过位线(BL)实现对应组(该列中处于打开状态的组)的数据写入;以块为单位,每个块配备一条选择控制信号线(SEL),通过选择控制信号线(SEL)实现对应块的选择电路控制。
基于上述高密度存内计算单元电路,本实施例中计算乘加的工作流程:将每行的输入数据的8-bit按照某种顺序依次输入,每次1-bit,选择电路选出用于计算的存储数据,经过乘法器与求和电路后,得到输入的1-bit数据与存储的数据的乘加结果。由于存内数据为8-bit,需要2个组来存储,即需要两列的部分和来计算8-bit存内数据的部分和,将高4-bit产生的部分和记为pusmM,低4-bit产生的部分和记为pusmL,则8-bit存内数据的部分和可以使用如下公式计算:
psum=psumM×24+psumL
由于输入数据为8-bit,需要分8次输入,则每个8-bit输入数据可以得到8个部分和,按照输入bit的权重记为pusm0至pusm7,最终的乘加结果可以使用如下公式计算:
乒乓操作的工作流程:第一个乒乓周期,写入SRAM阵列1的数据;第二个乒乓周期,行驱动器开始输入数据,与SRAM阵列1中的数据进行乘加运算,同时列驱动器写入SRAM阵列2的数据;第三个乒乓周期,行驱动器继续输入数据,与SRAM阵列2中的数据进行乘加运算,同时列驱动器再写入SRAM阵列1的数据;如此循环。
以上所述,仅为本发明的具体实施方式,本说明书中所公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换;所公开的所有特征、或所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以任何方式组合。
Claims (3)
1.支持内部数据乒乓的高密度存内计算乘加单元电路,包括:存储电路、运算电路及控制驱动电路;其特征在于,
所述存储电路包括:SRAM阵列与选择电路;其中,SRAM阵列中4个存储单元为一个组、横向的N个组构成一行、纵向的M个组构成一列、每一列中相邻的m个组构成一个块,共同构成一个Q×N个块的SRAM阵列,Q为正整数:Q=M/m,m≥2;并且,每个块配备一个选择电路;
所述运算电路包括:1-bit乘法器电路与求和电路,每个块配备一个1-bit乘法器电路、对1-bit输入数据和选择电路选出的数据做乘法运算,每一列配备一个求和电路、对该列所有1-bit乘法器电路的输出求和;
所述控制驱动电路包括:行控制驱动器与列控制驱动器,所述存内计算乘加单元电路配备一个行控制驱动器与一个列控制驱动器;所述行控制驱动器通过字线与输入线实现控制,以组为单位、每一行配备一条字线、通过字线控制该行中N个组的打开,以块为单位、每个块配备一条输入线、通过输入线将1-bit输入数据传输至对应块的1-bit乘法器电路;所述列控制驱动器通过位线与选择控制信号线实现控制,以组为单位、每一列配备一组位线、通过位线实现对该列中处于打开状态的组的数据写入,以块为单位、每个块配备一条选择控制信号线、通过选择控制信号线实现对应块的选择电路控制。
2.按权利要求1所述支持内部数据乒乓的高密度存内计算乘加单元电路,其特征在于,所述存内计算乘加单元电路在行控制驱动器与列控制驱动器控制下,能够实现数据乒乓操作。
3.按权利要求1所述支持内部数据乒乓的高密度存内计算乘加单元电路,其特征在于,所述存内计算乘加单元电路的乘加运算流程为:
所述列控制驱动器产生选择控制信号,通过选择控制信号选定一个SRAM子阵列的数据作为选出数据输入至对应的1-bit乘法器电路;同时,所述行控制驱动器将每一行的1-bit输入数据输入至该1-bit乘法器电路,1-bit乘法器电路输出1-bit输入数据和选出数据的乘积;求和电路将一列中所有1-bit乘法器电路的输出相加,得到一个部分和;当输入数据为多bit时,将所有部分和进行移位累加得到乘加运算结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111326187.0A CN114281301B (zh) | 2021-11-10 | 2021-11-10 | 支持内部数据乒乓的高密度存内计算乘加单元电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111326187.0A CN114281301B (zh) | 2021-11-10 | 2021-11-10 | 支持内部数据乒乓的高密度存内计算乘加单元电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114281301A CN114281301A (zh) | 2022-04-05 |
CN114281301B true CN114281301B (zh) | 2023-06-23 |
Family
ID=80868962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111326187.0A Active CN114281301B (zh) | 2021-11-10 | 2021-11-10 | 支持内部数据乒乓的高密度存内计算乘加单元电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114281301B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113946310A (zh) | 2021-10-08 | 2022-01-18 | 上海科技大学 | 一种用于卷积神经网络的内存计算eDRAM加速器 |
CN114625691B (zh) * | 2022-05-17 | 2022-08-02 | 电子科技大学 | 一种基于乒乓结构的存内计算装置及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102065309A (zh) * | 2010-12-07 | 2011-05-18 | 青岛海信信芯科技有限公司 | 一种dct实现方法及dct实现电路 |
CN112486901A (zh) * | 2020-11-30 | 2021-03-12 | 清华大学 | 基于乒乓缓冲的存内计算系统及方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8612505B1 (en) * | 2008-07-14 | 2013-12-17 | The Mathworks, Inc. | Minimum resource fast fourier transform |
US10831670B2 (en) * | 2017-11-22 | 2020-11-10 | Blackberry Limited | Method and system for low latency data management |
CN109271138A (zh) * | 2018-08-10 | 2019-01-25 | 合肥工业大学 | 一种适用于大维度矩阵乘的链式乘法结构 |
CN113344170B (zh) * | 2020-02-18 | 2023-04-25 | 杭州知存智能科技有限公司 | 神经网络权重矩阵调整方法、写入控制方法以及相关装置 |
CN113419705B (zh) * | 2021-07-05 | 2024-08-16 | 南京后摩智能科技有限公司 | 存内乘加计算电路、芯片、计算装置 |
CN113593618B (zh) * | 2021-07-30 | 2023-04-28 | 电子科技大学 | 适用于差分sram存储单元的存算一体化存储阵列结构 |
-
2021
- 2021-11-10 CN CN202111326187.0A patent/CN114281301B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102065309A (zh) * | 2010-12-07 | 2011-05-18 | 青岛海信信芯科技有限公司 | 一种dct实现方法及dct实现电路 |
CN112486901A (zh) * | 2020-11-30 | 2021-03-12 | 清华大学 | 基于乒乓缓冲的存内计算系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114281301A (zh) | 2022-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114281301B (zh) | 支持内部数据乒乓的高密度存内计算乘加单元电路 | |
CN108805266B (zh) | 一种可重构cnn高并发卷积加速器 | |
US11934480B2 (en) | NAND block architecture for in-memory multiply-and-accumulate operations | |
JP3251421B2 (ja) | 半導体集積回路 | |
JP2671120B2 (ja) | データ処理セルおよびデータプロセッサ | |
CN110738308B (zh) | 一种神经网络加速器 | |
CN113419705B (zh) | 存内乘加计算电路、芯片、计算装置 | |
US20230153616A1 (en) | Multiply-accumulate sharing convolution chaining for efficient deep learning inference | |
TW202230165A (zh) | 記憶體內計算的裝置及方法 | |
CN112636745A (zh) | 逻辑单元、加法器以及乘法器 | |
CN111459552B (zh) | 一种内存中并行化计算的方法及装置 | |
CN114937470A (zh) | 基于多比特sram单元的定点全精度存内计算电路 | |
CN118132034A (zh) | 乒乓式乘法单元及重构加法器树的存内计算电路、芯片 | |
CN115965067B (zh) | 一种针对ReRAM的神经网络加速器 | |
US20210208876A1 (en) | Processing-in-memory (pim) system including multiplying-and-accumulating (mac) circuit | |
CN115496190A (zh) | 一种面向卷积神经网络训练的高效可重构硬件加速器 | |
CN111610963B (zh) | 芯片结构及其乘加计算引擎 | |
US20230253032A1 (en) | In-memory computation device and in-memory computation method to perform multiplication operation in memory cell array according to bit orders | |
CN109948787B (zh) | 用于神经网络卷积层的运算装置、芯片及方法 | |
Luo et al. | FullReuse: A novel ReRAM-based CNN accelerator reusing data in multiple levels | |
CN116543807A (zh) | 一种基于近似计算的高能效sram存内计算电路和方法 | |
US20220004363A1 (en) | Semiconductor device, data generation methods used for the same, and method of controlling the same | |
CN116543808A (zh) | 一种基于sram单元的全数字域存内近似计算电路 | |
CN113448624A (zh) | 数据存取方法及装置、系统、ai加速器 | |
CN114072778A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |