CN114063975B - 一种基于sram存内计算阵列的计算系统及方法 - Google Patents

一种基于sram存内计算阵列的计算系统及方法 Download PDF

Info

Publication number
CN114063975B
CN114063975B CN202210051274.8A CN202210051274A CN114063975B CN 114063975 B CN114063975 B CN 114063975B CN 202210051274 A CN202210051274 A CN 202210051274A CN 114063975 B CN114063975 B CN 114063975B
Authority
CN
China
Prior art keywords
array
multiplicand
sram
analog
result
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
CN202210051274.8A
Other languages
English (en)
Other versions
CN114063975A (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.)
Zhongke Nanjing Intelligent Technology Research Institute
Original Assignee
Zhongke Nanjing Intelligent Technology Research Institute
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 Zhongke Nanjing Intelligent Technology Research Institute filed Critical Zhongke Nanjing Intelligent Technology Research Institute
Priority to CN202210051274.8A priority Critical patent/CN114063975B/zh
Publication of CN114063975A publication Critical patent/CN114063975A/zh
Application granted granted Critical
Publication of CN114063975B publication Critical patent/CN114063975B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • 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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Semiconductor Memories (AREA)

Abstract

本发明涉及一种基于sram存内计算阵列的计算系统及方法。该系统中数据地址生成器与sram存内计算阵列连接;数据地址生成器根据被乘数输出对应booth编码操作的地址;sram存内计算阵列用于根据地址写入的被乘数确定部分积;sram存内计算阵列的每一列对应连接一个电容;每一组均依次与一MUX器件和一模数转换器连接;MUX器件将每一组内设定数目个电容的设定数目路结果合成一路结果;模数转换器将一路结果进行模数转换;拼接乘模块与多个模数转换器连接;拼接乘模块将多个模数转换后的一路结果进行拼接乘,确定计算结果。本发明能够降低编码操作产生的功耗以及延时。

Description

一种基于sram存内计算阵列的计算系统及方法
技术领域
本发明涉及sram存内计算阵列领域,特别是涉及一种基于sram存内计算阵列的计算系统及方法。
背景技术
卷积神经网络作为第二代神经网络,目前在人脸识别,语音识别等领域被得到广泛的应用。Booth编码是一种乘法运算的编码方式,而由于卷积神经网络中往往会多次重复使用同样的乘数,造成多次的编码运算产生不必要的延迟和功耗;传统的乘法器在进行一次运算需要较长的延时,并且在数据传输过程中会消耗更多的能量。
因此,亟需一种降低编码操作产生的功耗以及延时的计算系统或方法。
发明内容
本发明的目的是提供一种基于sram存内计算阵列的计算系统及方法,能够降低编码操作产生的功耗以及延时。
为实现上述目的,本发明提供了如下方案:
一种基于sram存内计算阵列的计算系统,包括:数据地址生成器、sram存内计算阵列、拼接乘模块、多个电容、多个MUX器件以及多个模数转换器;
所述数据地址生成器与sram存内计算阵列连接;所述数据地址生成器用于根据被乘数输出对应booth编码操作的地址;所述sram存内计算阵列用于根据地址写入的被乘数确定部分积;
所述sram存内计算阵列的每一列对应连接一个电容;以设定数目的列为一组;每一组均依次与一所述MUX器件和一所述模数转换器连接;
所述MUX器件用于将每一组内设定数目个电容的设定数目路结果合成一路结果;
所述模数转换器用于将一路结果进行模数转换;
所述拼接乘模块分别与多个模数转换器连接;
所述拼接乘模块用于将多个模数转换后的一路结果进行拼接乘,确定计算结果。
可选地,所述电容的个数为16个。
可选地,所述MUX器件和所述模数转换器的个数均为4个。
可选地,所述设定数目为4。
一种基于sram存内计算阵列的计算方法,应用于所述的一种基于sram存内计算阵列的计算系统,所述计算方法包括:
利用数据地址生成器,生成被乘数的地址;同时根据被乘数确定对应的补码;
根据被乘数的地址将所述被乘数和对应的补码写入sram存内计算阵列;
对写入后的sram存内计算阵列中每一列进行求和,确定计算结果。
可选地,所述根据被乘数的地址将所述被乘数和对应的补码写入sram存内计算阵列,具体包括:
所述sram存内计算阵列根据所述被乘数和对应的补码确定部分积。
可选地,所述对写入后的sram存内计算阵列中每一列进行求和,确定计算结果,具体包括:
以每4列为一组,分别确定每一组的求和结果;
将所有组的求和结果进行拼接乘,确定计算结果。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明所提供的一种基于sram存内计算阵列的计算系统及方法,通过将booth编码的乘法运算,分为多路进行,避免了传统的乘法器在进行一次运算导致的长延时和消耗较多能量的现象。本发明减小了booth编码过程的延时,并且消除了部分数据传输过程中的能量消耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所提供的一种基于sram存内计算阵列的计算系统结构示意图;
图2为本发明所提供的一种基于sram存内计算阵列的计算方法流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种基于sram存内计算阵列的计算系统及方法,能够降低编码操作产生的功耗以及延时。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明所提供的一种基于sram存内计算阵列的计算系统结构示意图,如图1所示,本发明所提供的一种基于sram存内计算阵列的计算系统,包括:数据地址生成器(如图1中的Address_generator)、sram存内计算阵列、拼接乘模块、多个电容(如图1中的C)、多个MUX器件(如图1中的MUX)以及多个模数转换器(如图1中的ADC);
所述数据地址生成器与sram存内计算阵列连接;所述数据地址生成器用于根据被乘数输出对应booth编码操作的地址;所述sram存内计算阵列用于根据地址写入的被乘数确定部分积;
所述sram存内计算阵列的每一列对应连接一个电容;以设定数目的列为一组;每一组均依次与一所述MUX器件和一所述模数转换器连接;
所述MUX器件用于将每一组内设定数目个电容的设定数目路结果合成一路结果;
所述模数转换器用于将一路结果进行模数转换;
所述拼接乘模块分别与多个模数转换器连接;
所述拼接乘模块用于将多个模数转换后的一路结果进行拼接乘,确定计算结果。
为了减小模数转换器带来的功耗,将累加结果的电容分为四个一组,分四个周期完成模数转换转换,即将电容上的电荷反映出的模拟数据转化为二进制的数字数据,通过四次转换,拼接乘最后的16bit的结果,也即是这次乘法计算的积。
其中,基2的booth编码通常有写0、加被乘数、减被乘数、加两倍的被乘数、减两倍的被乘数以及减被乘数这几种操作,根据booth编码的规则,乘数三位一组,每组之间重叠一位(例如01111110,分为011,111,111,100,根据表得到操作);先取得被乘数的补码;其次将这些8bit的数高位都填上0补充为16bit;写0的位不做操作,加被乘数则把被乘数写入一行(基于sram的存内计算都具有sram的读写功能,该操作即是sram的写入操作,按图1中的方式写入根据表中操作后得到的部分积,部分积如Partial-product【0】-Partial-product【7】),减被乘数则写入被乘数对应的补码,两倍的被乘数将被乘数或者其补码右移后写入。这样,在sram存内计算阵列中完成了这些booth编码乘法器中的基本操作,如表1所示。
表1
Figure 857037DEST_PATH_IMAGE001
作为一个具体的实施例,所述电容的个数为16个。每一个按列求和的sram存内计算通常会将结果反应在电容的充放电结果上。每一列对应的一个电容。一共16列,接了16个电容,每个电容上都是一位的数据,4个电容一组分成四组。
所述MUX器件和所述模数转换器的个数均为4个。
所述设定数目为4。
如图2所示,本发明所提供的一种基于sram存内计算阵列的计算方法,应用于所述的一种基于sram存内计算阵列的计算系统,所述计算方法包括:
S201,利用数据地址生成器,生成被乘数的地址;同时根据被乘数确定对应的补码;
在S201之前还包括:
将sram存内计算阵列中写满0,从而完成对空位的补位,
S202,根据被乘数的地址将所述被乘数和对应的补码写入sram存内计算阵列;
S202所述根据被乘数的地址将所述被乘数和对应的补码写入sram存内计算阵列,具体包括:
所述sram存内计算阵列根据所述被乘数和对应的补码确定部分积。
S203,对写入后的sram存内计算阵列中每一列进行求和,确定计算结果。
S203具体包括:
以每4列为一组,分别确定每一组的求和结果;
将所有组的求和结果进行拼接乘,确定计算结果。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (5)

1.一种基于sram存内计算阵列的计算系统,其特征在于,包括:数据地址生成器、sram存内计算阵列、拼接乘模块、多个电容、多个MUX器件以及多个模数转换器;
所述数据地址生成器与sram存内计算阵列连接;所述数据地址生成器用于根据被乘数输出对应booth编码操作的地址;所述sram存内计算阵列用于根据数据地址生成器输出的booth编码操作的地址写入被乘数,并根据所述被乘数来确定部分积;
所述sram存内计算阵列的每一列对应连接一个电容;以设定数目的列为一组;每一组均依次与一所述MUX器件和一所述模数转换器连接;
所述MUX器件用于将每一组内设定数目个电容的设定数目路结果合成一路结果;
所述模数转换器用于将一路结果进行模数转换;
所述拼接乘模块分别与多个模数转换器连接;
所述拼接乘模块用于将多个模数转换后的一路结果进行拼接乘,确定计算结果;
所述电容的个数为16个,每一个按列求和的sram存内计算将结果反应在电容的充放电结果上,每一列对应的一个电容,一共16列,共连接了16个电容,每个电容上都是一位的数据,4个电容一组分成四组。
2.根据权利要求1 所述的一种基于sram存内计算阵列的计算系统,其特征在于,所述MUX器件和所述模数转换器的个数均为4个。
3.一种基于sram存内计算阵列的计算方法,应用于权利要求1-2任意一项所述的一种基于sram存内计算阵列的计算系统,其特征在于,所述计算方法包括:
利用数据地址生成器,生成被乘数的地址;同时根据被乘数确定对应的补码;
根据被乘数的地址将所述被乘数和对应的补码写入sram存内计算阵列;
对写入后的sram存内计算阵列中每一列进行求和,确定计算结果。
4.根据权利要求3所述的一种基于sram存内计算阵列的计算方法,其特征在于,所述根据被乘数的地址将所述被乘数和对应的补码写入sram存内计算阵列,具体包括:
所述sram存内计算阵列根据所述被乘数和对应的补码确定部分积。
5.根据权利要求3所述的一种基于sram存内计算阵列的计算方法,其特征在于,所述对写入后的sram存内计算阵列中每一列进行求和,确定计算结果,具体包括:
以每4列为一组,分别确定每一组的求和结果;
将所有组的求和结果进行拼接乘,确定计算结果。
CN202210051274.8A 2022-01-18 2022-01-18 一种基于sram存内计算阵列的计算系统及方法 Active CN114063975B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210051274.8A CN114063975B (zh) 2022-01-18 2022-01-18 一种基于sram存内计算阵列的计算系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210051274.8A CN114063975B (zh) 2022-01-18 2022-01-18 一种基于sram存内计算阵列的计算系统及方法

Publications (2)

Publication Number Publication Date
CN114063975A CN114063975A (zh) 2022-02-18
CN114063975B true CN114063975B (zh) 2022-05-20

Family

ID=80231233

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210051274.8A Active CN114063975B (zh) 2022-01-18 2022-01-18 一种基于sram存内计算阵列的计算系统及方法

Country Status (1)

Country Link
CN (1) CN114063975B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115617274A (zh) * 2022-10-27 2023-01-17 亿铸科技(杭州)有限责任公司 一种具备坏块管理功能的存内计算装置及操作方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100458031B1 (ko) * 2003-03-14 2004-11-26 삼성전자주식회사 몽고메리 유형의 모듈라 곱셈 장치 및 방법
US7710155B2 (en) * 2007-04-20 2010-05-04 Oracle America, Inc. Dynamic dual output latch
CN109582600B (zh) * 2017-09-25 2020-12-01 华为技术有限公司 一种数据处理方法及装置
CN111522528B (zh) * 2020-04-22 2023-03-28 星宸科技股份有限公司 乘法器、乘法运算方法、运算芯片、电子设备及存储介质
CN113035251B (zh) * 2021-05-21 2021-08-17 中科院微电子研究所南京智能技术研究院 一种数字存内计算阵列装置

Also Published As

Publication number Publication date
CN114063975A (zh) 2022-02-18

Similar Documents

Publication Publication Date Title
KR102305851B1 (ko) 신경망의 컨볼루션 계산을 위한 방법 및 전자 디바이스
CN111008003B (zh) 数据处理器、方法、芯片及电子设备
CN114063975B (zh) 一种基于sram存内计算阵列的计算系统及方法
CN113741858B (zh) 存内乘加计算方法、装置、芯片和计算设备
CN212112470U (zh) 一种矩阵乘法计算电路
CN112698811A (zh) 神经网络随机数发生器共享电路、共享方法、处理器芯片
CN110554854B (zh) 数据处理器、方法、芯片及电子设备
Zhang et al. Parallel convolutional neural network (CNN) accelerators based on stochastic computing
CN114499538A (zh) 多比特输入数据编码方法、装置、电子设备及存储介质
CN110673823B (zh) 乘法器、数据处理方法及芯片
CN115437602A (zh) 任意精度计算加速器、集成电路装置、板卡及方法
US20230253032A1 (en) In-memory computation device and in-memory computation method to perform multiplication operation in memory cell array according to bit orders
CN110458277B (zh) 适用于深度学习硬件加速器的可配置精度的卷积硬件结构
CN113743046B (zh) 存算一体版图结构和数据拆分存算一体版图结构
CN115629734A (zh) 并行向量乘加器的存内计算装置和电子设备
CN116821048A (zh) 一种存算一体芯片及其操作方法
CN116543808A (zh) 一种基于sram单元的全数字域存内近似计算电路
CN110688087B (zh) 数据处理器、方法、芯片及电子设备
CN210006029U (zh) 数据处理器
CN113988279A (zh) 一种支持负值激励的存算阵列输出电流读出方法及系统
CN113378109A (zh) 一种基于存内计算的混合基快速傅里叶变换计算电路
CN113031916A (zh) 乘法器、数据处理方法、装置及芯片
CN220983883U (zh) 矩阵计算装置、小芯片设备及人工智能加速器装置
US20080021947A1 (en) Triple-base number digital signal and numerical processing system
CN115658013B (zh) 向量乘加器的rom存内计算装置和电子设备

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