CN115083462B - Digital in-memory computing device based on Sram - Google Patents

Digital in-memory computing device based on Sram Download PDF

Info

Publication number
CN115083462B
CN115083462B CN202210822856.1A CN202210822856A CN115083462B CN 115083462 B CN115083462 B CN 115083462B CN 202210822856 A CN202210822856 A CN 202210822856A CN 115083462 B CN115083462 B CN 115083462B
Authority
CN
China
Prior art keywords
sram
array module
counting
weight
digital
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
CN202210822856.1A
Other languages
Chinese (zh)
Other versions
CN115083462A (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.)
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 CN202210822856.1A priority Critical patent/CN115083462B/en
Publication of CN115083462A publication Critical patent/CN115083462A/en
Application granted granted Critical
Publication of CN115083462B publication Critical patent/CN115083462B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/12Bit line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, equalising circuits, for bit lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Static Random-Access Memory (AREA)

Abstract

The invention relates to a digital memory computing device based on Sram. The digital in-memory computing device includes: the system comprises a Sram weight array module, an input port, an AND gate array module, a counting array module and a digital weighing configuration module. The Sram weight array module is used for storing and calculating weights; the input port is used for acquiring input data; the AND gate array module is used for obtaining a calculation result based on the calculation weight and the input data; the counting array module counts the calculation result to obtain a counting result; the digital weighing configuration module is used for generating a final calculation result based on the counting result, so that the parallelism of the neural network during acceleration can be improved on the basis of not excessively increasing the area.

Description

Digital memory computing device based on Sram
Technical Field
The invention relates to the technical field of electronic components, in particular to a Sram-based digital in-memory computing device.
Background
As the demand for edge computing increases, the von neumann architecture also gradually reaches the bottleneck. At this time, the concept of memory computing appears, and the memory computing realizes the multiply-accumulate computing in the array by adding a computing structure to the original memory array, thereby greatly reducing the power consumption. However, the existing memory computing has the defects of low parallelism and the like when the neural network is accelerated.
Disclosure of Invention
To address the above-identified deficiencies in the prior art, the present invention provides a Sram-based digital in-memory computing device.
In order to achieve the purpose, the invention provides the following scheme:
a Sram-based digital in-memory computing device, comprising:
the Sram weight array module is used for storing and calculating the weight;
an input port for acquiring input data;
the AND gate array module is respectively connected with the Sram weight array module and the input port and is used for obtaining a calculation result based on the calculation weight and the input data;
the counting array module is connected with the AND gate array module and is used for counting the calculation result to obtain a counting result;
and the digital weighing configuration module is connected with the counting array module and is used for generating a final calculation result based on the counting result.
Preferably, the Sram weight array module includes N × M Sram bitcells.
Preferably, the Sram weight array module isiM Sram bitcells of the line are used for storing the firstiThe number of bits of the individual weights is,i=1,2,...,N。
preferentially, N =16.
Preferably, the and gate array module includes 1 × M and gates.
Preferably, the count array module comprises 1 × M counters.
Preferentially, M =16.
According to the specific embodiment provided by the invention, the invention discloses the following technical effects:
the invention provides a Sram-based digital memory computing device, which comprises: the system comprises a Sram weight array module, an input port, an AND gate array module, a counting array module and a digital weighing configuration module. The Sram weight array module is used for storing and calculating weights; the input port is used for acquiring input data; the AND gate array module is used for obtaining a calculation result based on the calculation weight and the input data; the counting array module performs counting operation on the calculation result to obtain a counting result; the digital weighing configuration module is used for generating a final calculation result based on the counting result, and further improving the parallelism of the neural network during acceleration on the basis of not increasing the area excessively.
Drawings
In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings required in the embodiments will be briefly described below, it is obvious that the drawings in the following description are only some embodiments of the present invention, and it is obvious for those skilled in the art that other drawings can be obtained according to the drawings without creative efforts.
Fig. 1 is a schematic structural diagram of a Sram-based digital memory computing apparatus according to an embodiment of the present invention.
Detailed Description
The technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all of the embodiments. All other embodiments, which can be obtained by a person skilled in the art without making any creative effort based on the embodiments in the present invention, belong to the protection scope of the present invention.
The invention aims to provide a digital memory computing device based on Sram, which can improve the parallelism of a neural network during acceleration on the basis of not increasing the area too much.
In order to make the aforementioned objects, features and advantages of the present invention comprehensible, embodiments accompanied with figures are described in further detail below.
The invention provides a Sram-based digital memory computing device, which comprises: the system comprises a Sram weight array module, an input port, an AND gate array module, a counting array module and a digital weighing configuration module. And the AND gate array module is respectively connected with the Sram weight array module and the input port. And the counting array module is connected with the AND gate array module. The digital weighing configuration module is connected with the counting array module. The Sram weight array module is used for storing and calculating weights. The input port is used to obtain input data. And the AND gate array module is used for obtaining a calculation result based on the calculation weight and the input data. Counting array moduleAnd the block is used for counting the calculation result to obtain a counting result. The digital weighing configuration module is used for generating a final calculation result based on the counting result. The Sram weight array module comprises N multiplied by M Sram bitcells. Fourth in Sram weight array ModuleiM Sram bitcells of the line are used for storing the firstiThe number of bits of the individual weights is,i1, 2., N. The AND gate array module comprises 1 XM AND gates. The count array module includes 1 × M counters.
The specific working principle of the digital memory computing device based on Sram provided by the invention is described below by taking an example that the Sram weight array module includes 16 × 16 Sram bit cells, and the number of the Sram bit cells can be selected according to actual requirements in the actual application process.
As shown in fig. 1, each box in the Sram weight array module is a Sram bitcell, and the weights are stored in the manner shown in fig. 1: w1 is stored in the first row, and the 16 Sram bitcells in the first row store 16 bits of W1 (i.e., wi [ j ], i =1,2,.. Ang., N, j =0,1,2,. Ang., M), respectively. The bit line and the input data are each anded (i.e., multiplied). The result of the calculation is given to a counter, which increments by 1 if the result of the counter is 1.
In this embodiment, the computing process of the digital memory computing device adopts the idea of time division multiplexing: firstly writing the weight into the array according to the mode, then calculating, firstly opening one row in each calculation period, and carrying out the read operation of the Sram, wherein the data of the row can be reflected on a bit line, and after the data on the bit line and the input data are summed, if the result is 1, the data accumulation of the bit is added with 1. The next row is opened in the next cycle, and if the result is 1, the accumulation is performed again, and if the result is 0, the accumulation is not performed. Thus, 16 cycles later, the respective cumulative sum for each bit is completed. Finally, according to the weight of the high and low bits, a digital weight configuration module (digital weight configuration module) combines the data to form a final result.
The embodiments in the present description are described in a progressive manner, each embodiment focuses on differences from other embodiments, and the same and similar parts among the embodiments are referred to each other.
The principles and embodiments of the present invention have been described herein using specific examples, which are provided only to help understand the method and the core concept of the present invention; meanwhile, for a person skilled in the art, according to the idea of the present invention, the specific embodiments and the application range may be changed. In view of the above, the present disclosure should not be construed as limiting the invention.

Claims (5)

1. A Sram-based digital in-memory computing device, comprising:
the Sram weight array module is used for storing and calculating the weight;
an input port for acquiring input data;
the AND gate array module is respectively connected with the Sram weight array module and the input port and is used for obtaining a calculation result based on the calculation weight and the input data;
the counting array module is connected with the AND gate array module and is used for counting the calculation result to obtain a counting result;
the digital weighing configuration module is connected with the counting array module and is used for generating a final calculation result based on the counting result;
the Sram weight array module comprises N multiplied by M Sram bitcells; the fourth in the Sram weight array moduleiM Sram bitcells of the row are used for storing the firstiThe number of bits of the individual weights,i=1,2,...,N。
2. the Sram-based digital in-memory computing device of claim 1, wherein N =16.
3. The Sram-based digital in-memory computing device of claim 1, wherein the AND gate array module comprises 1 x M AND gates.
4. The Sram-based digital in-memory computing device of claim 1, wherein the count array module comprises 1 x M counters.
5. A Sram-based digital in-memory computing device according to claim 3 or 4, wherein M =16.
CN202210822856.1A 2022-07-14 2022-07-14 Digital in-memory computing device based on Sram Active CN115083462B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210822856.1A CN115083462B (en) 2022-07-14 2022-07-14 Digital in-memory computing device based on Sram

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210822856.1A CN115083462B (en) 2022-07-14 2022-07-14 Digital in-memory computing device based on Sram

Publications (2)

Publication Number Publication Date
CN115083462A CN115083462A (en) 2022-09-20
CN115083462B true CN115083462B (en) 2022-11-11

Family

ID=83258924

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210822856.1A Active CN115083462B (en) 2022-07-14 2022-07-14 Digital in-memory computing device based on Sram

Country Status (1)

Country Link
CN (1) CN115083462B (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005063548A (en) * 2003-08-11 2005-03-10 Semiconductor Energy Lab Co Ltd Memory and its driving method
CN110458279A (en) * 2019-07-15 2019-11-15 武汉魅瞳科技有限公司 A kind of binary neural network accelerated method and system based on FPGA
CN110543933A (en) * 2019-08-12 2019-12-06 北京大学 Pulse type convolution neural network based on FLASH memory array
CN110647983A (en) * 2019-09-30 2020-01-03 南京大学 Self-supervision learning acceleration system and method based on storage and calculation integrated device array
CN110825345A (en) * 2018-08-08 2020-02-21 闪迪技术有限公司 Multiplication using non-volatile memory cells
CN112581996A (en) * 2020-12-21 2021-03-30 东南大学 Time domain memory computing array structure based on magnetic random access memory
CN113035251A (en) * 2021-05-21 2021-06-25 中科院微电子研究所南京智能技术研究院 Digital memory computing array device

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10366763B2 (en) * 2017-10-31 2019-07-30 Micron Technology, Inc. Block read count voltage adjustment
CN111816232B (en) * 2020-07-30 2023-08-04 中科南京智能技术研究院 In-memory computing array device based on 4-pipe storage structure
CN114723031B (en) * 2022-05-06 2023-10-20 苏州宽温电子科技有限公司 Computing device

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005063548A (en) * 2003-08-11 2005-03-10 Semiconductor Energy Lab Co Ltd Memory and its driving method
CN110825345A (en) * 2018-08-08 2020-02-21 闪迪技术有限公司 Multiplication using non-volatile memory cells
CN110458279A (en) * 2019-07-15 2019-11-15 武汉魅瞳科技有限公司 A kind of binary neural network accelerated method and system based on FPGA
CN110543933A (en) * 2019-08-12 2019-12-06 北京大学 Pulse type convolution neural network based on FLASH memory array
CN110647983A (en) * 2019-09-30 2020-01-03 南京大学 Self-supervision learning acceleration system and method based on storage and calculation integrated device array
CN112581996A (en) * 2020-12-21 2021-03-30 东南大学 Time domain memory computing array structure based on magnetic random access memory
CN113035251A (en) * 2021-05-21 2021-06-25 中科院微电子研究所南京智能技术研究院 Digital memory computing array device

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
XNOR-SRAM: In-memory computing SRAM macro for binary/ternary deep neural networks;Yin S;《IEEE Journal of Solid-State Circuits》;20201231;1733-1743 *
一种用于SRAM快速仿真的模型;张锋;《半导体学报》;20050608(第06期);1264-1268 *
基于忆阻器的神经网络硬件的研究;王俊杰;《中国博士学位论文全文数据库信息科技辑》;20220115(第01期);I135-137 *

Also Published As

Publication number Publication date
CN115083462A (en) 2022-09-20

Similar Documents

Publication Publication Date Title
CN111880763B (en) SRAM circuit for realizing multiplication and addition with positive and negative numbers in memory
US20210312959A1 (en) In-memory computing circuit for fully connected binary neural network
CN108133270A (en) Convolutional neural networks accelerating method and device
CN107169563A (en) Processing system and method applied to two-value weight convolutional network
CN112599165B (en) Memory computing unit for multi-bit input and multi-bit weight multiplication accumulation
CN109670648A (en) The training of multi-energy data prediction model, the prediction technique of multi-energy data and device
CN116206650B (en) 8T-SRAM unit and operation circuit and chip based on 8T-SRAM unit
CN116364137A (en) Same-side double-bit-line 8T unit, logic operation circuit and CIM chip
CN115083462B (en) Digital in-memory computing device based on Sram
CN111045727B (en) Processing unit array based on nonvolatile memory calculation and calculation method thereof
CN102129419B (en) Based on the processor of fast fourier transform
CN101854259B (en) Method and system for counting data packets
CN103020014A (en) Method for realizing FFT (Fast Fourier Transform) with high point number
CN114464239B (en) Memory computing unit
CN115312093A (en) Memory computing unit and array based on 9TSRAM
CN110245756A (en) Method for handling the programming device of data group and handling data group
CN115586885A (en) Memory computing unit and acceleration method
CN102981798A (en) Floating point independent source analytical algorithm circuit structure based on FPGA (Field Programmable Gate Array)
CN114995783B (en) Memory computing unit
CN114816327B (en) Adder and full-digital memory computing device
TWI793676B (en) Padding architecture applied to neural network
CN109447839A (en) The random method generated and form electric system Jacobian matrix of nonzero element
CN115472197A (en) SRAM memory computing circuit capable of quantizing bit line voltage difference through redundant lines
CN115935894A (en) Accelerator design method of double 6T-SRAM storage unit and double-bit local calculation unit based on separated word lines
CN117636945B (en) 5-bit signed bit AND OR accumulation operation circuit and CIM circuit

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