CN114723031B - 一种计算装置 - Google Patents

一种计算装置 Download PDF

Info

Publication number
CN114723031B
CN114723031B CN202210484815.6A CN202210484815A CN114723031B CN 114723031 B CN114723031 B CN 114723031B CN 202210484815 A CN202210484815 A CN 202210484815A CN 114723031 B CN114723031 B CN 114723031B
Authority
CN
China
Prior art keywords
input
convolution operation
sram
bit
data
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
CN202210484815.6A
Other languages
English (en)
Other versions
CN114723031A (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.)
Suzhou Kuanwen Electronic Science & Technology Co ltd
Original Assignee
Suzhou Kuanwen Electronic Science & Technology Co ltd
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 Suzhou Kuanwen Electronic Science & Technology Co ltd filed Critical Suzhou Kuanwen Electronic Science & Technology Co ltd
Priority to CN202210484815.6A priority Critical patent/CN114723031B/zh
Publication of CN114723031A publication Critical patent/CN114723031A/zh
Application granted granted Critical
Publication of CN114723031B publication Critical patent/CN114723031B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • 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)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Complex Calculations (AREA)

Abstract

本发明提供一种计算装置。该计算装置包括处理器和SRAM模块。SRAM模块包括SRAM阵列、加法器以及卷积运算输入电路。在卷积运算模式,SRAM阵列的第一部分存储权重矩阵,SRAM阵列的第二部分存储偏置项。在卷积运算时钟的多个周期,输入数据逐位输入SRAM模块的第一部分,偏置项的激活数据逐位输入SRAM模块的第二部分。在每个周期,SRAM阵列用于获得输入数据的1位和对应权重数据的乘积。加法器用于对所述多个周期获得的乘积进行移位加法运算,偏置项的激活数据使SRAM阵列中存储的偏置项在所述多个周期中的最后一个周期被输入加法器。卷积层计算的权重矩阵和偏置项都存储在SRAM阵列,使得偏置项运算也在SRAM模块进行,提高了神经网络算法计算效率。

Description

一种计算装置
技术领域
本发明实施例涉及一种适用于神经网络算法的计算装置。
背景技术
深度神经网络(DNN)和卷积神经网络(CNN)大量应用于图像分类、自然语言处理等领域,提高了大规模识别任务的准确性。神经网络算法中存在大量卷积层运算。目前,通常使用CPU+GPU架构来处理神经网络算法,需要将数据、权重和偏置从内存移动到处理单元,然后将中间结果存储回内存。这种模式的计算延迟较大,功耗较高。随着神经网络规模的扩大,以CPU+GPU架构处理神经网络算法的模式逐渐遇到了速度和功耗的瓶颈。
发明内容
本发明提供了一种适用于的神经网络算法的计算装置。计算装置包括处理器和SRAM模块。所述SRAM模块包括SRAM阵列、加法器以及卷积运算输入电路。在卷积运算模式,所述SRAM阵列的第一部分用于存储卷积运算的权重矩阵,所述SRAM阵列的第二部分用于存储所述卷积运算的偏置项。在卷积运算时钟的多个周期,所述卷积运算输入电路将所述卷积运算的输入矩阵中的输入数据逐位输入所述SRAM模块的第一部分,所述卷积运算输入电路将所述偏置项的激活数据逐位输入所述SRAM模块的第二部分。在所述卷积运算时钟的所述多个周期中的每个周期,所述SRAM阵列的第一部分用于获得所述输入数据的1位和所述权重矩阵中对应权重数据的乘积。所述加法器用于对所述卷积运算时钟的所述多个周期获得的多个乘积进行移位加法运算,所述偏置项的激活数据使得所述SRAM阵列的第二部分中存储的偏置项在所述卷积运算时钟的所述多个周期中的最后一个周期被输入所述加法器。
在本发明的另一实现方式中,所述SRAM阵列包括多个SRAM单元、多条字线、多条输入线以及多组输出线,每个SRAM单元包括存储子单元和乘法子单元,所述乘法子单元的第一输入端连接所述存储子单元,第二输入端连接对应的输入线,输出端连接对应一组输出线中的一个输出线,所述乘法子单元用于实现1位乘法。
在本发明的另一实现方式中,所述乘法子单元为异或门。
在本发明的另一实现方式中,所述卷积运算的权重矩阵为A行B列的矩阵,所述SRAM阵列的第一部分包括所述SRAM阵列中的A*B行,所述A*B行中的每行用于存储所述权重矩阵中的一个权重数据。
在本发明的另一实现方式中,所述SRAM阵列的第二部分包括所述SRAM阵列中的一行。
在本发明的另一实现方式中,所述输入矩阵的精度为i位,在所述卷积运算时钟的i个周期,以从最高位到最低位的顺序,所述卷积运算的输入矩阵的输入数据逐位输入所述SRAM阵列的第一部分中的对应行的输入线。
在本发明的另一实现方式中,所述SRAM模块还包括控制器,所述控制器包括:精度计数器和偏置项激活数据产生电路。所述精度计数器在所述卷积运算时钟的第i个周期产生触发信号。在所述卷积运算时钟的i个周期中的每个周期,所述偏置项激活数据产生电路产生所述激活数据的1位,在所述偏置项激活数据没有接收到所述触发信号的情况下,产生的所述激活数据的1位为0,在所述偏置项激活数据接收到所述触发信号的情况下,产生的所述激活数据的1位为1。
在本发明的另一实现方式中,所述计算装置还包括内存,当所述处理器向所述SRAM模块发送的使能信号为第一值时,所述SRAM模块进入卷积运算模式,当所述处理器向所述SRAM模块发送的使能信号为第二值时,所述SRAM模块进入高速缓冲存储器模式。
在本发明的另一实现方式中,所述计算装置为边缘计算装置。
在本发明实施例的一个方面,计算装置的SRAM模块执行卷积运算时,权重矩阵和偏置项都存储在SRAM阵列中,输入数据和权重数据的乘积与偏置项的加法由SRAM模块的加法器执行,相比于由处理器的加法器执行偏置项的加法,节省了从内存读取偏置项的步骤,提高了计算效率。
在本发明实施例的另一个方面,偏置项激活数据产生电路基于卷积运算时钟产生激活数据,精度计数器在所述卷积运算时钟的第i个周期产生触发信号,在偏置项激活数据接收到触发信号的情况下,产生的所述激活数据的1位为1。通过精度计数器和偏置项激活数据产生电路,实现卷积运算中的偏置项的加法运算。
在本发明实施例的又一个方面,计算装置的SRAM模块可以根据待处理运算的类型设置为卷积运算模式和高速缓冲存储器模式。在高速缓冲存储器模式,SRAM模块作为处理器和内存之间的高速缓冲存储器,对于并行运算较少、乘积累加运算较少的运算具有较高的效率。在卷积运算模式,SRAM模块用于执行乘积累加运算,能够提高神经网络算法的效率。因此,计算装置能够适用更多应用场景。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本发明的实施例,并与说明书一起用于说明本发明的技术方案。下文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比值绘制的。
图1为本发明的实施例提供的计算装置的结构框图。
图2为本发明的实施例提供的SRAM模块的结构框图。
图3为本发明的实施例提供的SRAM阵列的结构框图。
图4为本发明的实施例提供的SRAM单元的电路图。
图5为本发明的实施例提供的控制器的结构框图。
图6为本发明的实施例提供的SRAM模块进行乘积累加运算的示意图。
具体实施方式
下面将结合附图,对本发明实施例中的技术方案进行描述。本发明阐述了各种细节,因为这些细节涉及某些实施例。然而,本发明也可以以与本文描述的方式不同的方式实现。在不脱离本发明的情况下,本领域技术人员可以对所讨论的实施例进行修改。因此,本发明不限于本文公开的特定实施例。
图1是本发明的实施例提供的计算装置的结构框图。计算装置10包括:处理器200、SRAM(Static Random-Access Memory,静态随机存储器)模块100、内存300和输入输出模块400。计算装置10可执行多种运算,例如神经网络算法。处理器200例如为ARM架构或X86架构。内存300例如为动态随机存储器(Dynamic Random Access Memory,DRAM)。内存300中存储可由处理器200执行的指令以及这些指令相关的数据。通过输入输出模块400,计算装置10连接其他装置,例如图像传感器、语音传感器等。处理器200、SRAM模块100、内存300和输入输出模块400封装在一起。处理器200和SRAM模块100可制作在同一芯片上。
在一些实施例中,计算装置10具有两种工作模式。在计算装置10的第一工作模式,SRAM模块100处于高速缓冲存储器模式,SRAM模块100作为处理器200和内存300之间的高速缓冲存储器(Cache)。SRAM模块100包括读写速度比内存300更快的存储器。当处理器200从内存300中读出数据时,该数据也被存储到高速缓冲存储器中,当处理器200再次需要这些数据时,处理器200就从高速缓冲存储器读取数据,而不是访问较慢的内存300。当然,如需要的数据不在高速缓冲存储器,处理器200会再去读取内存300中的数据。在计算装置10的第二工作模式,SRAM模块100处于卷积运算模式,执行卷积运算中的乘积累加(MultiplyAccumulate,MAC)运算。
处理器200通过使能信号控制SRAM模块100在卷积运算模式和高速缓冲存储器模式间切换。例如,当处理器200判断待处理运算为卷积运算时,处理器200向SRAM模块100发送的使能信号为第一值(例如高电平),使SRAM模块100进入卷积运算模式,当所述处理器判断待处理运算为非卷积运算时,处理器200向SRAM模块100发送的使能信号为第二值(例如低电平),使SRAM模块100进入高速缓存模式。因此,计算装置10能够根据计算类型选择适合的计算模式,能够适用更多应用场景。
在一些实施例中,计算装置10作为边缘计算(Edge Computing)装置,应用于人工智能物联网(AIoT)场景。在AIoT场景,数据不是在远程服务器上处理,而是在接近传感器(数据源头)的计算装置10上处理。例如,计算装置10连接图像传感器或语音传感器,对图像传感器产生的图像数据或语音传感器产生的语音数据进行压缩,特征识别。
图2为本发明的实施例提供的SRAM模块的结构框图。如图2所示,SRAM模块100包括:SRAM阵列110、行译码器120、列译码器130、读写电路140、卷积运算输入电路150、控制器160和加法器170。
图3为本发明的实施例提供的SRAM阵列的示意图。如图3所示,SRAM阵列110包括:排列为多行多列的SRAM单元111、多条字线WL、多个位线对BL和BLB、多条输入线Input和多组输出线Output。在图3所示的实施例中,SRAM阵列110包括q行m列的SRAM单元111。同一行的SRAM单元111连接同一字线WL、同一输入线Input和同一组输出线Output。一组输出线Output包括m条输出线。每个SRAM单元111连接该组输出线Output中的一条对应输出线。一行SRAM单元111对应的一组输出线Output用于传输多位数据。同一列的SRAM单元111连接同一位线对(位线BL和其互补位线BLB)。行译码器120连接该多条字线WL,用于根据行地址在多条字线WL中选择目标字线。列译码器130连接该多个位线对,用于根据列地址在多个位线对中选择目标位线对。读写电路140也连接该多个位线对。卷积运算输入电路150连接该多条输入线Input。加法器170连接多组输出线Output。加法器170例如为超前进位加法器。
SRAM阵列110包括多个SRAM单元。每个SRAM单元110包括:存储子单元和乘法子单元。乘法子单元的第一输入端连接存储子单元,第二输入端连接SRAM单元110对应的输入线,输出端连接SRAM单元110对应的输出线。乘法子单元用于实现1位乘法。存储子单元例如为6-T结构或8-T的SRAM存储子单元。乘法子单元可以是任何能够实现1位乘法的电路,例如异或门。
图4为示例性SRAM单元的电路图。图4示出了SRAM阵列110的第一行中的前两个SRAM单元。如图4所示,SRAM单元111包括:第一反相器INV1、第二反相器INV2、第一选择晶体管T1、第二选择晶体管T2以及异或门XOR。其中,存储子单元包括:第一反相器INV1、第二反相器INV2、第一选择晶体管T1、第二选择晶体管T2。乘法子单元包括异或门XOR。
第一反相器INV1的输入端连接第二反相器INV2的输出端,第二反相器INV2的输入端连接第一反相器INV1的输出端。第一反相器INV1的输入端通过第一选择晶体管T1连接位线BL,第一反相器INV1的输入端记为节点Q。第二反相器INV2的输入端通过第二选择晶体管T2连接互补位线BLB,第二反相器INV2的输入端记为节点QB。第一选择晶体管T1和第二选择晶体管T2的栅极连接SRAM单元111对应的字线WL。异或门XOR的第一输入端连接节点Q,第二输入端连接SRAM单元111对应的输入线Input,输出端连接SRAM单元111对应的输出线Output。在一些实施例中,异或门XOR的第一输入端连接节点QB,输入线Input通过反相器连接异或门XOR的第二输入端。在MAC运算中,由异或门XOR实现1位的乘法运算。
每个存储子单元存储1位(bit)的数据。数据存储在节点Q和QB,节点Q和QB存储相反的数据。当向SRAM单元111写入数据时,在字线WL施加高电平,第一选择晶体管T1和第二选择晶体管T2导通,读写电路140在位线BL和其互补位线BLB上施加对应的目标电压,数据写入SRAM单元111。当从SRAM单元111中读出数据时,在字线WL施加高电平,第一选择晶体管T1和第二选择晶体管T2导通,读写电路140通过位线BL和互补位线BLB读出节点Q或QB的数据。
在卷积运算模式,SRAM阵列110的第一部分112用于存储卷积运算的权重矩阵,SRAM阵列110的第二部分113用于存储卷积运算的偏置项。在卷积运算时钟CLK的多个周期,卷积运算输入电路150将卷积运算的输入矩阵中的输入数据逐位输入SRAM模块110的第一部分112的输入线Input,卷积运算输入电路150将偏置项的激活数据逐位输入SRAM模块100的第二部分113的输入线Input。在卷积运算时钟CLK的所述多个周期中的每个周期,所述SRAM阵列110的第一部分用于获得所述输入数据的1位和所述权重矩阵中对应权重数据的乘积。加法器170用于对所述卷积运算时钟CLK的所述多个周期获得的多个乘积进行移位加法运算,所述偏置项的激活数据使得所述SRAM阵列的第二部分113中存储的偏置项在所述卷积运算时钟CLK的所述多个周期中的最后一个周期被输入所述加法器170。
神经网络算法中涉及大量卷积运算。部分卷积运算中涉及偏置项。以2x2的输入矩阵和权重矩阵为例,带偏置项的卷积运算如下:
其中,为输入矩阵,/>为权重矩阵,Bias为偏置项。权重矩阵例如是卷积核矩阵。输入矩阵包括多个元素(输入数据),权重矩阵包括多个元素(权重数据)。卷积运算包括输入数据和权重数据之间的乘法,输入数据和权重数据的乘积之间的加法。在卷积运算涉及偏置项时,卷积运算还包括偏置项的加法运算。下文通过具体实施例描述SRAM模块100实现卷积运算的过程。
在SRAM模块100处于卷积运算模式时,SRAM模块100接收输入矩阵、权重矩阵和偏置项。控制器160在SRAM阵列110中选择用于存储权重矩阵的第一部分112和用于存储偏置项Bias的第二部分113。读写电路140将权重矩阵写入SRAM阵列110的第一部分112,将偏置项Bias写入SRAM阵列110的第二部分113。例如,卷积运算的权重矩阵为A行B列的矩阵,包括A*B个权重数据,SRAM阵列110的第一部分112包括SRAM阵列112中的A*B行,A*B行中的每行用于存储所述权重矩阵中的一个权重数据。每个权重数据占据的SRAM单元111的数量决定于权重矩阵的精度,权重矩阵的精度是指权重数据的位数。SRAM阵列110的第二部分113包括SRAM阵列110中的一行。读写电路140将权重矩阵中的每个权重数据写入SRAM阵列100的第一部分112中与该权重数据对应一行,将偏置项Bias写入SRAM阵列100的第一部分113的一行。
例如,如图6所示,2x2的权重矩阵中的权重数据W11、W12、W21和W22分别写入SRAM阵列110的第一行到第四行,偏置项Bias写入SRAM阵列110的第五行。根据权重数据W11、W12、W21和W22以及偏置项Bias的位数,确定权重数据W11、W12、W21和W22以及偏置项Bias使用的SRAM单元111的数量。例如权重数据W11、W12、W21和W22以及偏置项Bias是i位,则权重数据W11、W12、W21和W22以及偏置项Bias分别使用i个SRAM单元111存储。例如,W11、W12、W21、W22和Bias分别为3、5、7、9、4,读写电路140将0011、0101、0111、1001、0100分别写入第一行的4个SRAM单元111、第二行的4个SRAM单元111、第三行的4个SRAM单元111、第四行的4个SRAM单元111和第五行的4个SRAM单元111。
在SRAM模块100处于卷积运算模式时,卷积运算输入电路150基于卷积运算时钟CLK将输入矩阵的数据和偏置项的激活数据BA提供到对应输入线Input。输入矩阵的精度为i位,在卷积运算时钟CLK的i个周期,以从最高位到最低位的顺序,输入数据逐位输入SRAM阵列110的第一部分112中的对应行的输入线。输入数据的位的值为1,卷积运算输入电路150在输入线Input输入高电平,输入数据的位的值为0,卷积运算输入电路150在输入线Input输入低电平。同时,在卷积运算时钟CLK的i个周期,偏置项Bias的激活数据BA,以从最高位到最低位的顺序,逐位输入SRAM阵列110的第二部分113中的对应行的输入线Input,偏置项的激活数据BA的最低位为1,其他位为0。在卷积运算时钟CLK的每个周期,SRAM阵列110的第一部分112实现输入数据的1位和权重数据的乘法。
如图6所示,输入数据A11、A12、A21和A22分别提供到输入线Input1、输入线Input2、输入线Input3和输入线Input4。输入数据和对应的权重数据的乘法运算通过异或门XOR实现。在卷积运算时钟CLK的每个周期cycle,卷积运算输入电路150将输入数据的1位提供到对应的输入线。输入数据的最高位为1sb,最低位为isb,在卷积运算时钟CLK的i个周期,以从最高位1sb到最低位isb的顺序,将i位的输入数据提供到对应的输入线。
以2x2的权重矩阵和输入矩阵为例,如图6所示,在卷积运算时钟CLK的第1个周期,实现输入数据的最高位1sb和对应权重数据的乘法,A11的最高位1sb和W11的乘积P11,A12的最高位1sb和W12的乘积P21,A21的最高位1sb和W21的乘积P31,A22的最高位1sb和W22的乘积P41分别通过输出线组Output1至Output4输出到加法器170,加法器170对乘积P11、P21、P31和P41进行加法获得部分和SUM1,并进行移位(向高位移1位)。在卷积运算时钟CLK的第2个周期,实现输入数据的次高位2sb和权重数据的乘法,A11的次高位2sb和W11的乘积P12,A12的次高位2sb和W12的乘积P22,A21的次高位2sb和W21的乘积P32,A22的次高位2sb和W22的乘积P42分别通过输出线组Output1至Output4输出到加法器170,加法器170对乘积P12、P22、P32、P42以及部分和SUM1进行加法获得部分和SUM2,并进行移位。在卷积运算时钟CLK的第i个周期,实现输入数据的最低位isb和权重数据的乘法,A11的最低位isb和W11的乘积P1i,A12的最低位isb和W12的乘积P2i,A21的最低位isb和W21的乘积P3i,A22的最低位isb和W22的乘积P4i分别通过输出线组Output1至Output4输出到加法器170,加法器170对乘积P1i、P2i、P3i、P4i以及部分和SUM(i-1)进行加法获得输入矩阵和权重矩阵的卷积。在卷积运算时钟CLK的第i个周期,加法器170不再对加法运算结果进行移位操作。即,仅在卷积运算时钟CLK的第1个周期到第i-1个周期,触发加法器170的移位操作。在卷积运算时钟CLK的i个周期,通过SRAM阵列110和加法器170实现了输入矩阵和权重矩阵的卷积运算。
在卷积运算涉及偏置项时,卷积运算输入电路150还基于卷积运算时钟CLK将偏置项的激活数据BA提供到偏置项所存储的SRAM阵列110的第二部分113对应的输入线Input。偏置项的激活数据BA的最低位为1,其他位为0,即在卷积运算时钟CLK的第i个周期,将1提供到输入线Input,在其他周期,将0提供到输入线Input。也就是,偏置项Bias在卷积运算时钟CLK的第i个周期提供到加法器170,加法器170再将输入数据和权重数据的乘积加上该偏置项Bias。
图5为本发明的实施例提供的控制器的结构框图。如图5所示,控制器160包括:精度译码器161、使能电路162、时钟发生器163、精度计数器164和偏置项激活数据产生电路165。使能电路162接收使能信号。当使能信号为第一值时,使能电路162使得SRAM模块100进入卷积运算模式,时钟发生器163产生卷积运算时钟CLK。精度译码器161接收精度信号,对精度信号进行译码,确定输入矩阵的精度。输入矩阵的精度是指输入矩阵中的输入数据的位数。例如,输入数据A11、A12、A21和A22分别为3、5、7、9,则输入矩阵的精度为4,输入数据A11、A12、A21和A22转为二进制数需要4位。精度计数器164根据输入矩阵的精度i控制将i个周期的卷积运算时钟CLK提供到卷积输入电路150。例如,精度计数器164从0开始计数,卷积运算时钟CLK的每个周期计数值加1,当计数值到达i,卷积运算时钟CLK的i个周期提供到了卷积输入电路150,之后卷积运算时钟CLK不再提供到卷积输入电路150。偏置项激活数据产生电路165用于产生偏置项激活信号BA。偏置项激活数据产生电路165接收偏置项信号。当卷积运算不包括偏置项时,偏置项信号为非有效,偏置项激活数据产生电路165不产生偏置项激活数据BA。当卷积运算包括偏置项时,偏置项信号为有效,偏置项激活数据产生电路165根据输入矩阵的精度确定偏置项激活数据的位数,将偏置项激活数据的最低位设置为1,其他位设置为0。在一些实施例中,偏置项激活数据产生电路165在卷积运算时钟CLK的每个周期产生1位的信号,精度计数器164在卷积运算时钟CLK的第i个周期产生触发信号。在没有接收到该触发信号时,偏置项激活数据产生电路165产生的该1位的信号为0,在接收到该触发信号时,偏置项激活数据产生电路165产生的该1位的信号为1,从而产生了i位的偏置项激活数据BA。
本发明实施例的一个方面,计算装置的SRAM模块可以根据待处理运算的类型设置为卷积运算模式和高速缓冲存储器模式。在高速缓冲存储器模式,SRAM模块作为处理器和内存之间的高速缓冲存储器,对于并行运算较少、乘积累加运算较少的运算具有较高的效率。在卷积运算模式,SRAM模块用于执行乘积累加运算,能够提高神经网络算法的效率。因此,计算装置能够适用更多应用场景。在本发明实施例的另一个方面,计算装置的SRAM模块执行卷积运算时,权重矩阵和偏置项都存储在SRAM阵列中,输入数据和权重数据的乘积与偏置项的加法由SRAM模块的加法器执行,相比于由处理器的加法器执行偏置项的加法,节省了从内存读取偏置项的步骤,提高了计算效率。
以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

Claims (10)

1.一种计算装置,其特征在于,包括:
处理器;以及
SRAM模块,所述SRAM模块包括SRAM阵列、加法器以及卷积运算输入电路,
其中,在卷积运算模式,所述SRAM阵列的第一部分用于存储卷积运算的权重矩阵,所述SRAM阵列的第二部分用于存储所述卷积运算的偏置项;在卷积运算时钟的多个周期,所述卷积运算输入电路将所述卷积运算的输入矩阵中的输入数据逐位输入所述SRAM模块的第一部分,所述卷积运算输入电路将所述偏置项的激活数据逐位输入所述SRAM模块的第二部分;在所述卷积运算时钟的所述多个周期中的每个周期,所述SRAM阵列的第一部分用于获得所述输入数据的1位和所述权重矩阵中对应权重数据的乘积,
所述加法器用于对在所述卷积运算时钟的所述多个周期获得的多个乘积进行移位加法运算,所述偏置项的激活数据使得所述SRAM阵列的第二部分中存储的偏置项在所述卷积运算时钟的所述多个周期中的最后一个周期被输入所述加法器。
2.根据权利要求1所述的计算装置,其特征在于,所述SRAM阵列包括多个SRAM单元、多条字线、多条输入线以及多组输出线,每个SRAM单元包括存储子单元和乘法子单元,所述乘法子单元的第一输入端连接所述存储子单元,第二输入端连接对应的输入线,输出端连接对应一组输出线中的一个输出线,所述乘法子单元用于实现1位乘法。
3.根据权利要求2所述的计算装置,其特征在于,所述乘法子单元为异或门。
4.根据权利要求1-3任一项所述的计算装置,其特征在于,所述卷积运算的权重矩阵为A行B列的矩阵,所述SRAM阵列的第一部分包括所述SRAM阵列中的A*B行,所述A*B行中的每行用于存储所述权重矩阵中的一个权重数据。
5.根据权利要求1-3任一项所述的计算装置,其特征在于,所述SRAM阵列的第二部分包括所述SRAM阵列中的一行。
6.根据权利要求4所述的计算装置,其特征在于,所述输入矩阵的精度为i位,在所述卷积运算时钟的i个周期,以从最高位到最低位的顺序,所述卷积运算的输入矩阵的输入数据逐位输入所述SRAM阵列的第一部分中的对应行的输入线。
7.根据权利要求5所述的计算装置,其特征在于,所述输入矩阵的精度为i位,在所述卷积运算时钟的i个周期,所述偏置项的激活数据包括i位,所述偏置项的激活数据的最低位为1,其他位为0。
8.根据权利要求7所述的计算装置,其特征在于,所述SRAM模块还包括控制器,所述控制器包括:精度计数器和偏置项激活数据产生电路,
所述精度计数器在所述卷积运算时钟的第i个周期产生触发信号,
在所述卷积运算时钟的i个周期中的每个周期,所述偏置项激活数据产生电路产生所述激活数据的1位,在所述偏置项激活数据没有接收到所述触发信号的情况下,产生的所述激活数据的1位为0,在所述偏置项激活数据接收到所述触发信号的情况下,产生的所述激活数据的1位为1。
9.根据权利要求1所述的计算装置,其特征在于,所述计算装置还包括内存,
当所述处理器向所述SRAM模块发送的使能信号为第一值时,所述SRAM模块进入卷积运算模式,当所述处理器向所述SRAM模块发送的使能信号为第二值时,所述SRAM模块进入高速缓冲存储器模式。
10.根据权利要求1所述的计算装置,其特征在于,所述计算装置为边缘计算装置。
CN202210484815.6A 2022-05-06 2022-05-06 一种计算装置 Active CN114723031B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210484815.6A CN114723031B (zh) 2022-05-06 2022-05-06 一种计算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210484815.6A CN114723031B (zh) 2022-05-06 2022-05-06 一种计算装置

Publications (2)

Publication Number Publication Date
CN114723031A CN114723031A (zh) 2022-07-08
CN114723031B true CN114723031B (zh) 2023-10-20

Family

ID=82231895

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210484815.6A Active CN114723031B (zh) 2022-05-06 2022-05-06 一种计算装置

Country Status (1)

Country Link
CN (1) CN114723031B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115083462B (zh) * 2022-07-14 2022-11-11 中科南京智能技术研究院 一种基于Sram的数字型存内计算装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106875011A (zh) * 2017-01-12 2017-06-20 南京大学 二值权重卷积神经网络加速器的硬件架构及其计算流程
CN110070178A (zh) * 2019-04-25 2019-07-30 北京交通大学 一种卷积神经网络计算装置及方法
CN111144558A (zh) * 2020-04-03 2020-05-12 深圳市九天睿芯科技有限公司 基于时间可变的电流积分和电荷共享的多位卷积运算模组
CN111832719A (zh) * 2020-07-28 2020-10-27 电子科技大学 一种定点量化的卷积神经网络加速器计算电路
CN113222130A (zh) * 2021-04-09 2021-08-06 广东工业大学 一种基于fpga的可重构卷积神经网络加速器
CN113962385A (zh) * 2021-10-21 2022-01-21 上海商汤阡誓科技有限公司 神经网络训练及数据处理方法和装置、介质及计算机设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11669733B2 (en) * 2019-12-23 2023-06-06 Marvell Asia Pte. Ltd. Processing unit and method for computing a convolution using a hardware-implemented spiral algorithm
CN111583940A (zh) * 2020-04-20 2020-08-25 东南大学 极低功耗关键词唤醒神经网络电路

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106875011A (zh) * 2017-01-12 2017-06-20 南京大学 二值权重卷积神经网络加速器的硬件架构及其计算流程
CN110070178A (zh) * 2019-04-25 2019-07-30 北京交通大学 一种卷积神经网络计算装置及方法
CN111144558A (zh) * 2020-04-03 2020-05-12 深圳市九天睿芯科技有限公司 基于时间可变的电流积分和电荷共享的多位卷积运算模组
CN111832719A (zh) * 2020-07-28 2020-10-27 电子科技大学 一种定点量化的卷积神经网络加速器计算电路
CN113222130A (zh) * 2021-04-09 2021-08-06 广东工业大学 一种基于fpga的可重构卷积神经网络加速器
CN113962385A (zh) * 2021-10-21 2022-01-21 上海商汤阡誓科技有限公司 神经网络训练及数据处理方法和装置、介质及计算机设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Shubhi Shrivastava等.Review Paper on High Speed Area Efficient Linear Convolution in Different Adder.《 International Journal of Computer Applications》.2016,全文. *
刘晏辰 ; 刘洋 ; .一种细粒度可重构的深度神经网络加速芯片.半导体技术.2020,(01),全文. *
周国飞 ; .一种支持稀疏卷积的深度神经网络加速器的设计.电子技术与软件工程.2020,(04),全文. *

Also Published As

Publication number Publication date
CN114723031A (zh) 2022-07-08

Similar Documents

Publication Publication Date Title
CN113419705B (zh) 存内乘加计算电路、芯片、计算装置
US11966714B2 (en) Ternary in-memory accelerator
US20220269483A1 (en) Compute in memory accumulator
US11669302B2 (en) In-memory bit-serial addition system
US20230297819A1 (en) Processor array for processing sparse binary neural networks
CN114937470B (zh) 基于多比特sram单元的定点全精度存内计算电路
CN114723031B (zh) 一种计算装置
US11996137B2 (en) Compute in memory (CIM) memory array
US20220391128A1 (en) Techniques to repurpose static random access memory rows to store a look-up-table for processor-in-memory operations
Garzón et al. AIDA: Associative in-memory deep learning accelerator
Monga et al. A Novel Decoder Design for Logic Computation in SRAM: CiM-SRAM
Chen et al. An INT8 Charge-Digital Hybrid Compute-In-Memory Macro with CNN-Friendly Shift-Feed Register Design
Zhao et al. A Novel Transpose 2T-DRAM based Computing-in-Memory Architecture for On-chip DNN Training and Inference
CN115171746A (zh) 一种存内计算单元及装置
US20230047364A1 (en) Partial sum management and reconfigurable systolic flow architectures for in-memory computation
CN115565581A (zh) 一种高能效的存边计算电路
Azougagh et al. Computational memory architecture supporting in bit-line processing
KR20190114208A (ko) 저전력 및 고속 연산을 위한 dram용 비트와이즈 컨볼루션 회로
Appukuttan et al. In-Memory Computing Based Hardware Accelerator Module for Deep Neural Networks
TWI858359B (zh) 記憶體裝置、計算裝置及用於記憶體內計算的方法
KR102726631B1 (ko) 컴퓨트 인 메모리 (cim) 메모리 어레이
US12032959B2 (en) Non-volatile memory die with latch-based multiply-accumulate components
KR20190081885A (ko) 전치 읽기를 지원하는 sram 구조
US20230131308A1 (en) Memory devices, computing devices, and methods for in-memory computing
CN118093507A (zh) 一种基于6t-sram的存内计算电路结构

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
CB03 Change of inventor or designer information

Inventor after: Zhu Jiaguo

Inventor before: Zhang Lijun

Inventor before: Yan Yuling

Inventor before: Zhu Jiaguo

Inventor before: Weng Yufei

CB03 Change of inventor or designer information
TA01 Transfer of patent application right

Effective date of registration: 20221228

Address after: 215024 Room 606-4, Building 1, Suzhou Nanotown, No. 99, Jinjihu Avenue, Suzhou Industrial Park, Suzhou Pilot Free Trade Zone, Jiangsu Province

Applicant after: SUZHOU KUANWEN ELECTRONIC SCIENCE & TECHNOLOGY Co.,Ltd.

Address before: 515d, floor 5, No. 15, information road, Haidian District, Beijing 100089

Applicant before: Beijing Kuanwen Microelectronics Technology Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant