CN115083462B - Digital in-memory computing device based on Sram - Google Patents
Digital in-memory computing device based on Sram Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/12—Bit line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, equalising circuits, for bit lines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning 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
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.
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)
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)
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 |
-
2022
- 2022-07-14 CN CN202210822856.1A patent/CN115083462B/en active Active
Patent Citations (7)
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)
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 |