WO2023173530A1 - 一种卷积运算加速器及卷积运算方法 - Google Patents
一种卷积运算加速器及卷积运算方法 Download PDFInfo
- Publication number
- WO2023173530A1 WO2023173530A1 PCT/CN2022/087794 CN2022087794W WO2023173530A1 WO 2023173530 A1 WO2023173530 A1 WO 2023173530A1 CN 2022087794 W CN2022087794 W CN 2022087794W WO 2023173530 A1 WO2023173530 A1 WO 2023173530A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- convolution kernel
- array
- size
- unit
- convolution
- 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.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/02—Disposition of storage elements, e.g. in the form of a matrix array
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/06—Arrangements for interconnecting storage elements electrically, e.g. by wiring
- G11C5/063—Voltage and signal distribution in integrated semi-conductor memory access lines, e.g. word-line, bit-line, cross-over resistance, propagation delay
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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
Definitions
- the invention belongs to the field of microelectronic devices, and more specifically, relates to a convolution operation accelerator and a convolution operation method.
- Convolutional neural network is a form of feedforward neural network, which usually includes convolutional layers, pooling layers and fully connected layers. Convolutional neural networks are usually used to process image information. After the image is input to the convolution layer, local features are extracted through convolution operations, and then the model size is compressed through the pooling layer to reduce the amount of calculation. Finally, the features are integrated through the fully connected layer. get the output.
- the convolutional neural network has the characteristics of local connection and weight sharing. Its parameter size is much smaller than the multi-layer perceptron model, and it has achieved good results in the field of image recognition.
- the convolutional neural network has fewer parameters, during the forward propagation process, the convolution operation in the convolution layer generates most of the calculations in the network.
- the convolution operation process is: the convolution kernel is applied to the input data Swipe with a certain step size, and each slide performs a multiplication and addition operation between the convolution kernel and the corresponding input data. This is slow in calculation and takes up a lot of space in traditional computing units (such as CPU and GPU).
- the two-dimensional input information needs to be stretched into one dimension and then input to the array; in addition, if you want to make full use of the array units, you must use For rolling input, the degree of parallelism of the input is very low and the time cost is huge; if multiple convolution kernels are copied in the crossbar array for large-scale parallel calculation, a large amount of area will be occupied, and most of the units will not be used. The effect of increasing leakage current on calculation results.
- the present invention provides a convolution operation accelerator and a convolution operation method to solve the problem of stretching a two-dimensional input into a one-dimensional, parallel input when performing convolution calculations on a planar memory array.
- the problem is low degree and low array unit utilization.
- the present invention provides a convolution operation accelerator, including: a three-dimensional non-volatile memory array and a control module;
- the three-dimensional non-volatile memory array includes: P word line electrode layers; a bit line electrode layer is placed between any two adjacent word line electrode layers; any adjacent word line electrode layer and bit line electrode layer A non-volatile memory cell array is placed between them, and the non-volatile memory cell array is vertically connected to the word line electrode layer and the bit line electrode layer;
- the word line electrode layer includes a plurality of word line electrodes arranged in parallel; the word line electrodes in the P word line electrode layers together form a word line electrode array;
- Each column of non-volatile memory cells in the non-volatile memory cell array is connected to the same word line in the word line electrode layer connected to the non-volatile memory cell array; in the non-volatile memory cell array The non-volatile memory cells on each diagonal line are connected to the same bit line in the bit line electrode array connected to the non-volatile memory cell array; where, the diagonal line is in the non-volatile memory cell array diagonal lines parallel to corresponding diagonals in the array of non-volatile memory cells;
- the size of the two-dimensional input data is M ⁇ N;
- the control module is used to split the convolution kernel into k convolution kernel units of size 2 ⁇ c by rows, where k is a positive integer. ;Select k different sub-array units of size (M-2(k-1)) ⁇ N in the word line electrode array, and split them with k convolution kernel units of size 2 ⁇ c according to the convolution kernel
- the sequence corresponds one to one; each convolution kernel unit and its N-c copies are stored in the two-layer non-volatile memory unit array between all two adjacent word line electrode layers in the corresponding sub-array unit;
- the control module is used to split the convolution kernel into k convolution kernel units of 2 ⁇ c size and one convolution kernel of 1 ⁇ c size by rows. unit; select k sub-array units with a size of (M-2(k-1)-1) ⁇ N and one sub-array unit with a size of (M-2k) ⁇ N in the word line electrode array; k The sub-array unit of size (M-2(k-1)-1) ⁇ N corresponds one-to-one with k convolution kernel units of size 2 ⁇ c according to the order of convolution kernel splitting; each 2 ⁇ c The convolution kernel unit of the size of (M- Each word line electrode layer in the 2k) ⁇ N sub-array unit stores a 1 ⁇ c size convolution kernel unit and the 1 ⁇ c size convolution in one of the non-volatile memory unit arrays connected to it.
- N-c copies of the kernel unit all non-volatile storage units in the non-volatile storage unit array that do not store the convolution kernel unit are set to a high resistance state; rows 2i-1 to M- on the two-dimensional input data
- the data of row 2(k-i)-1 is applied to the corresponding word line electrode in the i-th (M-2(k-1)-1) ⁇ N sub-array unit in the form of voltage according to the corresponding coordinate information.
- i 1,2,...,k; apply the data from row 2k+1 to row M on the two-dimensional input data in the form of voltage according to the corresponding coordinate information to the above-mentioned size (M-2k) ⁇ N on the corresponding word line electrode in the sub-array unit;
- the three-dimensional non-volatile memory array is used to implement the dot multiplication operation of the convolution kernel unit and different parts of the two-dimensional input data in parallel based on the non-volatile memory cell array, and output the convolution kernel unit and the two-dimensional input data in parallel through the corresponding bit line electrode layer.
- the sum of the dot multiplication results of the corresponding parts of the two-dimensional input data is used to realize the convolution operation of the convolution kernel and the two-dimensional input data;
- each row of convolution kernel data of the convolution kernel unit is sequentially stored on the corresponding diagonal line of the corresponding non-volatile storage unit array, and then moved horizontally along the convolution kernel sliding direction to the adjacent N-c diagonal lines again.
- the row of convolution kernel data is stored, and each layer of non-volatile storage unit array stores the convolution kernel data of the corresponding row in the convolution kernel unit and N-c copies of the convolution kernel data.
- the three-dimensional non-volatile memory array is used to calculate all adjacent sub-array units based on the above-mentioned size of (M-2(k-1)) ⁇ N.
- the two-layer non-volatile memory cell array between the two word line electrode layers implements the dot multiplication operation of the 2 ⁇ c size convolution kernel unit and different parts of the two-dimensional input data in parallel, and then passes through the corresponding bit line electrode
- the layer parallel outputs the sum of the dot multiplication results of the 2 ⁇ c size convolution kernel unit and the corresponding part of the two-dimensional input data;
- the control module is also used to output the bit lines at the same relative position in each selected sub-array unit respectively. Summarize and obtain the convolution operation results of the convolution kernel and the two-dimensional input data;
- the three-dimensional non-volatile memory array is used for all phases in the sub-array unit based on the above size of (M-2(k-1)-1) ⁇ N.
- the two-layer non-volatile memory cell array between the two adjacent word line electrode layers implements the dot multiplication operation of the 2 ⁇ c size convolution kernel unit and different parts of the two-dimensional input data in parallel, and then passes the corresponding bit
- the line electrode layer outputs the sum of the dot multiplication results of the convolution kernel unit of size 2 ⁇ c and the corresponding part of the two-dimensional input data in parallel; at the same time, based on the non-volatile sub-array unit of size (M-2k) ⁇ N
- the linear memory unit array implements the dot multiplication operation of the 1 ⁇ c size convolution kernel unit and different parts of the two-dimensional input data in parallel, and then outputs the 1 ⁇ c size convolution kernel unit and the two-dimensional input data in parallel through the corresponding bit line electrode layer.
- control module is also used to summarize the corresponding bit line outputs in each selected sub-array unit to obtain the convolution operation result of the convolution kernel and the two-dimensional input data.
- the three-dimensional non-volatile memory array has a multi-layer stacked structure, which is formed by sequentially stacking a word line electrode layer, a non-volatile memory cell array and a bit line electrode layer; between each word line electrode layer, the word line electrode The bit line electrode layer and the bit line electrode layer are all parallel to each other.
- control module includes: an input signal generating device, an output signal generating device and an output signal reading device;
- the input signal generating device and the output signal generating device cooperate with each other to apply voltages on the word line electrodes and bit line electrodes corresponding to the sub-array units, select the corresponding non-volatile memory cells, and change the selected non-volatile memory cells.
- the conductance value of the storage unit allows it to store the corresponding convolution kernel data
- the input signal generating device is also used to apply the two-dimensional input data in the form of voltage to the corresponding word line electrode in the above-mentioned sub-array unit according to the coordinate information of the two-dimensional input data;
- the output signal readout device is used to detect the output current on the bit line electrode and convert it into a voltage signal as a result of the convolution operation.
- the read voltage of the input signal generating device is less than or equal to the current set voltage value on the non-volatile memory unit to ensure that the conductance value of the non-volatile memory unit is not changed during the convolution operation.
- the above-mentioned convolution operation accelerator is used to implement the convolution operation in the convolutional neural network.
- the above-mentioned control module is also used to adjust the conductance value of each non-volatile memory cell by applying a write voltage on the corresponding word line electrode and bit line electrode, so as to adjust the convolutional neural network.
- the parameters of the convolutional neural network are updated, and the convolution operation result of the previous round of the convolution operation accelerator is used as the input of the next round of convolution operation of the convolution operation accelerator.
- the absolute value of the write voltage difference applied on the corresponding word line electrode and bit line electrode is the corresponding set voltage value
- the absolute value of the write voltage difference applied on the corresponding word line electrode and bit line electrode is the corresponding reset voltage value.
- the present invention provides a convolution operation method based on the above-mentioned convolution operation accelerator, including the following steps:
- the convolution kernel is split into k convolution kernel units of size 2 ⁇ c by row, and k is a positive integer; K different sub-array units of size (M-2(k-1)) ⁇ N are selected from the word line electrode array and combined with k convolution kernel units of size 2 ⁇ c according to the convolution kernel splitting order.
- the convolution kernel is divided into k convolution kernel units of 2 ⁇ c size and one convolution kernel unit of 1 ⁇ c size by row; in the words Select k sub-array units with size (M-2(k-1)-1) ⁇ N and one sub-array unit with size (M-2k) ⁇ N in the line electrode array; k sub-array units with size (M -2(k-1)-1) ⁇ N sub-array units correspond to k 2 ⁇ c size convolution kernel units one-to-one according to the convolution kernel splitting order; each 2 ⁇ c size convolution unit
- the core unit and its N-c copies are stored in the two-layer non-volatile memory cell array between all two adjacent word line electrode layers in the corresponding sub-array unit; for the above size, it is (M-2k) ⁇ N
- Each word line electrode layer in the sub-array unit stores a 1 ⁇ c size convolution kernel unit and N-c of the 1 ⁇ c size convolution kernel unit in one of the non-vola
- the dot multiplication operation of the convolution kernel unit and different parts of the two-dimensional input data is implemented in parallel, and the corresponding parts of the convolution kernel unit and the two-dimensional input data are output in parallel through the corresponding bit line electrode layer.
- the sum of the results of the dot multiplication operation is used to realize the convolution operation of the convolution kernel and the two-dimensional input data;
- the size of the two-dimensional input data is M ⁇ N; after each row of convolution kernel data of the convolution kernel unit is sequentially stored on the corresponding diagonal line of the corresponding non-volatile storage unit array, it is horizontally moved along the convolution kernel sliding direction. Move to the adjacent N-c diagonal lines and store the row of convolution kernel data again, realizing that each layer of non-volatile storage unit array stores the convolution kernel data of the corresponding row in the convolution kernel unit and the convolution kernel. N-c copies of data.
- step S2 includes: based on all two adjacent word line electrodes in the sub-array unit with the size of (M-2(k-1)) ⁇ N
- the two-layer non-volatile memory cell array between the layers implements the dot multiplication operation of the 2 ⁇ c-sized convolution kernel unit and different parts of the two-dimensional input data in parallel, and then outputs 2 ⁇ in parallel through the corresponding bit line electrode layer.
- the sum of the dot multiplication results of the c-sized convolution kernel unit and the corresponding part of the two-dimensional input data is summarized respectively, and the bit line outputs at the same relative position in each selected sub-array unit are summarized to obtain the convolution kernel and the two-dimensional input data.
- the result of the convolution operation of the input data
- step S2 includes: based on all two adjacent words in the sub-array unit of size (M-2(k-1)-1) ⁇ N
- the two-layer non-volatile memory cell array between the line electrode layers implements the dot multiplication operation of the 2 ⁇ c size convolution kernel unit and different parts of the two-dimensional input data in parallel, and then outputs it in parallel through the corresponding bit line electrode layer.
- the sum of the dot multiplication results of the convolution kernel unit of size 2 ⁇ c and the corresponding part of the two-dimensional input data at the same time, based on the non-volatile storage unit array in the sub-array unit of size (M-2k) ⁇ N, After implementing the dot multiplication operation of the 1 ⁇ c size convolution kernel unit and different parts of the two-dimensional input data in parallel, the 1 ⁇ c size convolution kernel unit and the corresponding parts of the two-dimensional input data are output in parallel through the corresponding bit line electrode layer.
- the sum of the dot product operation results; and the corresponding bit line outputs in each selected sub-array unit are summarized to obtain the convolution operation result of the convolution kernel and the two-dimensional input data.
- the present invention provides a convolution arithmetic accelerator, in which each word line electrode connects one column of the matrix-arranged non-volatile memory cells, and each bit line electrode tilts the matrix-arranged non-volatile memory cells.
- the storage units are connected together; the input data of each word line can be multiplied and accumulated with the upper and lower convolution kernel units to realize the natural sliding of the convolution kernel unit in the y direction in the two-dimensional input; the inclined bit lines and convolution Multiple copies of the kernel in the non-volatile storage array of each layer can multiply an input data with the convolution kernel data at different positions in the same convolution kernel unit, thereby realizing the multiplication of the convolution kernel unit in the two-dimensional input x Natural sliding in the direction, so the convolution calculation can be completed in parallel at one time without expanding the two-dimensional input into one dimension.
- the data reuse rate and the degree of parallelism of the operation are both high and the operation speed is fast; compared with the traditional planar array
- the present invention utilizes the high integration characteristics of the three-dimensional array to accommodate more units in a smaller area, perform more calculations, and greatly improve the utilization of the array units.
- the convolution operation accelerator provided by the present invention takes into account the odd and even conditions of the convolution kernel behavior for splitting and storage, and can realize the convolution operation of different split parts and corresponding two-dimensional data in parallel, making full use of It uses the computing resources of the three-dimensional non-volatile memory array and has faster operation speed.
- the convolution operation accelerator provided by the present invention can be used to realize the function of the convolutional neural network, and map the input, weight and output of the neural network to the input voltage, conductance and output current of the three-dimensional non-volatile memory.
- the physical calculation process at the array level can naturally match the convolution kernel sliding operation process that exists in a convolutional neural network, and can retain the position information of the two-dimensional data once Complete the convolution operation instantly and obtain two-dimensional output data, which highly restores the calculation process of the convolutional neural network in the software.
- it uses as few input and output ports as possible to achieve highly parallel calculation of convolution, which greatly improves resource utilization and calculating speed.
- the present invention is based on the convolution operation of the three-dimensional non-volatile memory array. Compared with the traditional von Neumann architecture computing units such as CPU, GPU, etc., there is no data transmission speed limit between the memory and the computing unit, and realizes Integrating storage and calculation, it can be used to achieve efficient large-scale parallel convolutional neural network calculations.
- Figure 1 is a schematic structural diagram of a convolution operation accelerator provided by the first aspect of the present invention
- Figure 2 is a schematic structural diagram of a convolution operation accelerator provided in Embodiment 1 of the present invention.
- Figure 3 is a schematic structural diagram of a three-dimensional non-volatile memory array provided in Embodiment 1 of the present invention.
- Figure 4 is a top cross-sectional view of the three-dimensional non-volatile memory provided in Embodiment 1 of the present invention.
- Figure 5 is a flow chart of a convolution operation based on the three-dimensional non-volatile memory array described in Embodiment 1 provided in Embodiment 2 of the present invention
- Figure 6 is a schematic diagram of the convolution kernel sliding in the x direction of the input data to perform multiplication and addition operations in the three-dimensional non-volatile memory array natural matching convolutional neural network provided by Embodiment 2 of the present invention;
- Figure 7 is a schematic diagram of the convolution kernel sliding in the y direction of the input data to perform multiplication and addition operations in the three-dimensional non-volatile storage array natural matching convolutional neural network provided by Embodiment 2 of the present invention
- FIG. 8 is a front view of a three-dimensional non-volatile memory array with eight word lines in the lateral direction provided by Embodiment 3 of the present invention.
- FIG. 9 is a top cross-sectional view of a three-dimensional non-volatile memory array with eight word lines in the lateral direction provided by Embodiment 3 of the present invention.
- the present invention provides a convolution operation accelerator, which includes: a three-dimensional non-volatile memory array and a control module;
- the three-dimensional non-volatile memory array includes: P word line electrode layers; a bit line electrode layer is placed between any two adjacent word line electrode layers; any adjacent word line electrode layer and bit line A non-volatile memory cell array is placed between the electrode layers, and the non-volatile memory cell array is vertically connected to the word line electrode layer and the bit line electrode layer; specifically, the three-dimensional non-volatile memory array is multi-layered.
- the layer stack structure is formed by sequentially stacking a word line electrode layer, a non-volatile memory cell array and a bit line electrode layer; the word line electrode layers, and the word line electrode layer and the bit line electrode layer are all parallel to each other;
- the word line electrode layer includes a plurality of word line electrodes arranged in parallel; the word line electrodes in the P word line electrode layers together form a word line electrode array;
- Each column of non-volatile memory cells in the non-volatile memory cell array is connected to the same word line in the word line electrode layer connected to the non-volatile memory cell array; in the non-volatile memory cell array The non-volatile memory cells on each diagonal line are connected to the same bit line in the bit line electrode array connected to the non-volatile memory cell array; where, the diagonal line is in the non-volatile memory cell array diagonal lines parallel to corresponding diagonals in the array of non-volatile memory cells;
- the size of the two-dimensional input data is M ⁇ N;
- the control module is used to split the convolution kernel into k convolution kernel units of size 2 ⁇ c by rows, where k is a positive integer. ;Select k different sub-array units of size (M-2(k-1)) ⁇ N in the word line electrode array, and split them with k convolution kernel units of size 2 ⁇ c according to the convolution kernel
- the sequence corresponds one to one; each convolution kernel unit and its N-c copies are stored in the two-layer non-volatile memory unit array between all two adjacent word line electrode layers in the corresponding sub-array unit;
- the control module is used to split the convolution kernel into k convolution kernel units of 2 ⁇ c size and one convolution kernel of 1 ⁇ c size by rows. unit; select k sub-array units with a size of (M-2(k-1)-1) ⁇ N and one sub-array unit with a size of (M-2k) ⁇ N in the word line electrode array; k The sub-array unit of size (M-2(k-1)-1) ⁇ N corresponds one-to-one with k convolution kernel units of size 2 ⁇ c according to the order of convolution kernel splitting; each 2 ⁇ c The convolution kernel unit of the size of (M- Each word line electrode layer in the 2k) ⁇ N sub-array unit stores a 1 ⁇ c size convolution kernel unit and the 1 ⁇ c size convolution in one of the non-volatile memory unit arrays connected to it.
- N-c copies of the kernel unit all non-volatile storage units in the non-volatile storage unit array that do not store the convolution kernel unit are set to a high resistance state; rows 2i-1 to M- on the two-dimensional input data
- the data of row 2(k-i)-1 is applied to the corresponding word line electrode in the i-th (M-2(k-1)-1) ⁇ N sub-array unit in the form of voltage according to the corresponding coordinate information.
- i 1,2,...,k; apply the data from row 2k+1 to row M on the two-dimensional input data in the form of voltage according to the corresponding coordinate information to the above-mentioned size (M-2k) ⁇ N on the corresponding word line electrode in the sub-array unit;
- the three-dimensional non-volatile memory array is used to implement the dot multiplication operation of the convolution kernel unit and different parts of the two-dimensional input data in parallel based on the non-volatile memory cell array, and output the convolution kernel unit and the two-dimensional input data in parallel through the corresponding bit line electrode layer.
- the sum of the dot multiplication results of the corresponding parts of the two-dimensional input data is used to realize the convolution operation of the convolution kernel and the two-dimensional input data;
- each row of convolution kernel data of the convolution kernel unit is sequentially stored on the corresponding diagonal line of the corresponding non-volatile storage unit array, and then moved horizontally along the convolution kernel sliding direction to the adjacent N-c diagonal lines again.
- the row of convolution kernel data is stored, and each layer of non-volatile storage unit array stores the convolution kernel data of the corresponding row in the convolution kernel unit and N-c copies of the convolution kernel data.
- the three-dimensional non-volatile memory array is used to calculate all adjacent two sub-array units based on the size of (M-2(k-1)) ⁇ N.
- the two-layer non-volatile memory cell array between the word line electrode layers implements the dot multiplication operation of the 2 ⁇ c size convolution kernel unit and different parts of the two-dimensional input data in parallel, and then passes through the corresponding bit line electrode layer.
- Parallel output is the sum of the dot multiplication results of the 2 ⁇ c size convolution kernel unit and the corresponding part of the two-dimensional input data;
- the control module is also used to summarize the bit line outputs at the same relative position in each selected sub-array unit. , obtain the convolution operation result of the convolution kernel and the two-dimensional input data;
- the three-dimensional non-volatile memory array is used for all phases in the sub-array unit based on the above size of (M-2(k-1)-1) ⁇ N.
- the two-layer non-volatile memory cell array between the two adjacent word line electrode layers implements the dot multiplication operation of the 2 ⁇ c size convolution kernel unit and different parts of the two-dimensional input data in parallel, and then passes the corresponding bit
- the line electrode layer outputs the sum of the dot multiplication results of the convolution kernel unit of size 2 ⁇ c and the corresponding part of the two-dimensional input data in parallel; at the same time, based on the non-volatile sub-array unit of size (M-2k) ⁇ N
- the linear memory unit array implements the dot multiplication operation of the 1 ⁇ c size convolution kernel unit and different parts of the two-dimensional input data in parallel, and then outputs the 1 ⁇ c size convolution kernel unit and the two-dimensional input data in parallel through the corresponding bit line electrode layer.
- control module is also used to summarize the corresponding bit line outputs in each selected sub-array unit to obtain the convolution operation result of the convolution kernel and the two-dimensional input data.
- the output of each sub-array unit is (M-2k) ⁇ (N-c), and the final convolution operation result can be obtained after corresponding addition.
- the module splits the convolution kernel into k convolution kernel units of size 2 ⁇ c, and treats the three-dimensional non-volatile storage array with k ⁇ N word lines in the lateral direction as k sub-units with N word lines.
- the array unit maps a 2 ⁇ c size convolution kernel unit at the corresponding position of each sub-array unit.
- the two-dimensional input data will also slide on k array units.
- the first array unit word line maps the data from the first row to the M-2(k-1)th row
- the second array unit word line maps the data from the 2+1th row to the M-2(k-2)th row
- the i array unit word line maps the 2i-1th row to the M-2(k-i)(i ⁇ 1,2,3,...,k)th row of data.
- the control module is also used to summarize the bit line outputs at the same relative position in the k sub-array units to obtain the final convolution operation result.
- the mapping method of k convolution kernels of size 2 ⁇ c is similar to the method when the size of the convolution kernel is 2k ⁇ c.
- the difference is that in the horizontal direction Select a three-dimensional non-volatile memory array with (k+1) ⁇ N word lines, and regard the three-dimensional non-volatile memory array with (k+1) ⁇ N word lines in the lateral direction as k+1 with N sub-array unit of word line, the i-th array unit word line maps the 2i-1th row to the M-2(k-i)-1(i ⁇ 1,2,3,...,k)th row of data; for the remaining A 1 ⁇ c size convolution kernel unit is mapped to the k+1th array unit.
- the non-volatile memory units above (or below) are mapped to the k+1th array unit.
- the 1 ⁇ c size convolution kernel unit and its N-c copies are stored in the volatile memory cell array, and all non-volatile memory cells below (or above) the bit line are set to a high resistance state (considered as open circuit);
- M-2(k-1)-1 word line layers are selected vertically, and (k+1) ⁇ N word lines are selected horizontally; when storing on the upper non-volatile memory cell array
- the convolution kernel unit of size 1 ⁇ c is used, the data from the 2k+1th row to the Mth row in the two-dimensional input data are mapped on the 1st layer to the M-2kth layer from top to bottom.
- the control module is also used to summarize the bit line outputs at the same relative position in the k+1 sub-array unit to obtain the final convolution operation result.
- the convolution operation accelerator in this embodiment is shown in Figure 2, including: a three-dimensional non-volatile memory array and a control module, wherein the control module includes: an input signal generating device, an output signal generating device and an output signal readout device;
- Figure 3 shows a schematic structural diagram of a three-dimensional non-volatile memory array, including word line electrodes 1, bit line electrodes 2, and non-volatile memory cells 3.
- the input signal generating device is connected to the word line electrode, and the output signal generating device and the output signal reading device are connected to the bit line electrode.
- V11 ⁇ V44 are applied to the word line electrode in the form of voltage as input, and I11 ⁇ I33 are the output currents obtained after the input voltage is applied to the non-volatile memory array.
- Figure 4 shows a top cross-sectional view of the three-dimensional non-volatile memory.
- the top cross-sectional view shown on the left is a two-layer structure of a word line electrode and a non-volatile memory cell array, with the non-volatile memory cell array above the word line electrode.
- Word lines 1 to 4 are electrodes arranged in parallel, and non-volatile memory cells are evenly distributed on each word line.
- Non-volatile memory cells 411 to 441 are connected to word line 1, and non-volatile memory cells 412 ⁇ 442 is connected to word line 2, non-volatile memory cells 413-443 are connected to word line 3, and non-volatile memory cells 414-444 are connected to word line 4.
- the top view cross-sectional view shown on the right adds a layer of bit line electrodes to the top view cross-section view on the left. From bottom to top are word line electrodes, non-volatile memory arrays and bit line electrodes.
- the bit line electrodes are arranged in parallel, but at a certain angle with the direction of the word line electrodes.
- the non-volatile storage unit 411 is connected to the bit line 1
- the non-volatile storage units 421 and 412 are connected to the bit line 2
- the non-volatile storage units 431, 422 and 413 are connected to the bit line 3.
- Cells 441, 432, 423, 414 are connected to bit line 4.
- each word line connects one column of the matrix-arranged non-volatile memory cells, and each bit line tilts the matrix-arranged non-volatile memory cells. units are connected.
- the input data of each word line can be multiplied and added with the upper and lower convolution kernel units to realize the natural sliding of the convolution kernel units in the y direction in the two-dimensional input.
- the multiple copies of the tilted bit lines and convolution kernels in each layer of non-volatile memory arrays can allow the multiplication of one input data and the convolution kernel data at different positions in the same convolution kernel to realize the convolution kernel in two
- the convolution calculation can be completed in parallel at one time without expanding the two-dimensional input into one dimension, and the operation speed is extremely fast.
- the input signal generating device and the output signal generating device cooperate with each other to apply voltages on the word line electrodes and bit line electrodes corresponding to the sub-array units, select the corresponding non-volatile memory cells, and change the selected memory cells.
- the conductance value of the non-volatile storage unit allows it to store the corresponding convolution kernel data
- the input signal generating device is also used to apply the two-dimensional input data in the form of voltage to the corresponding word line electrode in the above-mentioned sub-array unit according to the coordinate information of the two-dimensional input data;
- the output signal readout device is used to detect the output current on the bit line electrode and convert it into a voltage signal as a result of the convolution operation.
- the input signal generating device is used to apply the voltage corresponding to the input data on the corresponding word line electrode, and at this time, the voltage amplitude does not exceed the set voltage of the non-volatile memory cell.
- the output signal reading device is used to convert the output current on the bit line electrode into a voltage and read out the voltage value as a result of the convolution operation.
- the above-mentioned convolution operation accelerator is used to implement convolution operations in convolutional neural networks.
- the word line electrodes of the three-dimensional non-volatile memory array serve as the input of the convolutional neural network.
- Each layer of word line electrodes corresponds to a row in the two-dimensional input of the convolutional neural network, and each layer of the non-volatile memory array corresponds to the convolution kernel.
- a row in each layer of bit line electrodes corresponds to a row in the two-dimensional output of the neural network.
- the input signal generating device is used to apply voltage on the word line electrode.
- the applied voltage has two purposes. One is to use the voltage to represent the input data.
- the current output is obtained to complete the forward propagation operation of the neural network.
- the output signal generating device is used to apply voltage on the bit line electrode, cooperate with the word line electrode to select a non-volatile memory cell, and change the conductance value of the selected non-volatile memory cell.
- the output signal readout device is used to detect the output current on the bit line electrode and convert it into a voltage signal as a result of the convolution operation.
- control module is also used to adjust the conductance value of each non-volatile memory unit by applying a write voltage on the corresponding word line electrode and bit line electrode, so as to train the convolutional neural network.
- the parameters of the network are updated, and the result of the previous round of convolution operation of the convolution operation accelerator is used as the input of the next round of convolution operation of the convolution operation accelerator.
- the input signal generating device is used to apply a voltage of a certain amplitude on the word line electrode connected to the non-volatile memory cell that needs conductance adjustment
- the output signal generating device is used to apply a voltage of a certain amplitude to the non-volatile memory cell that needs conductance adjustment.
- a voltage of a certain amplitude is applied to the bit line electrode connected to the volatile memory cell.
- the present invention provides a convolution operation method based on the above-mentioned convolution operation accelerator, including the following steps:
- the convolution kernel is split into k convolution kernel units of size 2 ⁇ c by row, and k is a positive integer; K different sub-array units of size (M-2(k-1)) ⁇ N are selected from the word line electrode array and combined with k convolution kernel units of size 2 ⁇ c according to the convolution kernel splitting order.
- the convolution kernel is divided into k convolution kernel units of 2 ⁇ c size and one convolution kernel unit of 1 ⁇ c size by row; in the words Select k sub-array units with size (M-2(k-1)-1) ⁇ N and one sub-array unit with size (M-2k) ⁇ N in the line electrode array; k sub-array units with size (M -2(k-1)-1) ⁇ N sub-array units correspond to k 2 ⁇ c size convolution kernel units one-to-one according to the convolution kernel splitting order; each 2 ⁇ c size convolution unit
- the core unit and its N-c copies are stored in the two-layer non-volatile memory cell array between all two adjacent word line electrode layers in the corresponding sub-array unit; for the above size, it is (M-2k) ⁇ N
- Each word line electrode layer in the sub-array unit stores a 1 ⁇ c size convolution kernel unit and N-c of the 1 ⁇ c size convolution kernel unit in one of the non-vola
- the two-dimensional input data is converted into corresponding voltage values and applied to the corresponding word line electrodes through the input signal generating device; wherein, the two-dimensionally arranged input data are arranged one by one according to the coordinate information. Corresponding to the two-dimensionally arranged word line electrodes.
- the dot multiplication operation of the convolution kernel unit and different parts of the two-dimensional input data is implemented in parallel, and the corresponding parts of the convolution kernel unit and the two-dimensional input data are output in parallel through the corresponding bit line electrode layer.
- the sum of the results of the dot multiplication operation is used to realize the convolution operation of the convolution kernel and the two-dimensional input data;
- the size of the two-dimensional input data is M ⁇ N; after each row of convolution kernel data of the convolution kernel unit is sequentially stored on the corresponding diagonal line of the corresponding non-volatile storage unit array, it is horizontally moved along the convolution kernel sliding direction. Move to the adjacent N-c diagonal lines and store the row of convolution kernel data again, realizing that each layer of non-volatile storage unit array stores the convolution kernel data of the corresponding row in the convolution kernel unit and the convolution kernel. N-c copies of data.
- a current is generated on the bit line electrode, and an output signal reading device is used to convert the current on the bit line into a voltage to obtain an output voltage matrix.
- Figure 5 shows a flow chart of the convolution operation based on the three-dimensional non-volatile memory array described in Embodiment 1, which includes the following steps:
- pixel values in the range of 0 to 255 are linearly mapped to voltage values within a certain range.
- This voltage range is selected according to different types of non-volatile memories and follows the principle that the maximum voltage value does not exceed the set voltage of the non-volatile memory.
- the set voltage of the non-volatile memory is V set
- the voltage value corresponding to the pixel value is Where P is the pixel value
- 255 is the maximum value of the pixel value.
- V set is 1V
- the mapped voltage range is 0 ⁇ 1V.
- the voltage value mapped by the pixel value in the first row and first column of the 4 ⁇ 4 picture corresponds to V11 in Figure 3. It is input in the word line electrode corresponding to V11, and the pixel value mapped by the second row and first column is The voltage value corresponds to V12 in Figure 3, and so on, then the 4 ⁇ 4 voltage matrix composed of V11 to V44 in Figure 5 corresponds to the pixels in the 4 ⁇ 4 picture one by one.
- V41 ⁇ V44 are the voltage values corresponding to the fourth row of input image data
- k11 ⁇ k22 are the weights of the 2 ⁇ 2 convolution kernel.
- k11 and k12 are the weights of the first row in the convolution kernel
- k21 and k22 are the weights of the second row in the convolution kernel.
- the weight of the second row in the convolution kernel needs to be in the fourth row.
- k21 and k22 need to slide on V41 ⁇ V44 three times, so k21 and k22 are copied three times and mapped to the positions shown in the upper left picture in Figure 5, respectively corresponding to 421 in Figure 4 and positions 412, 422 and 413, 423 and 414.
- the convolution kernel mapping methods of other non-volatile memory layers can be deduced in turn.
- Figure 7 is a side view of a three-dimensional non-volatile memory, showing the mapping scheme of the convolution kernel on other non-volatile memory unit array layers, where V11 ⁇ V41 are the voltage values corresponding to the first column of data in the input image data.
- V21 as an example
- multiplication operations need to be performed with k21 and k11 respectively, so the upper and lower non-volatile memory units connected to the word line electrode corresponding to V21 map k21 and k11 respectively.
- k11 at the same time, the convolution kernel mapping method within each non-volatile storage array layer can be deduced based on Figure 6 and the content described in the previous paragraph. Therefore, each two-layer non-volatile memory cell array completely maps three copies of a 2 ⁇ 2 convolution kernel, and the convolution kernel also needs to slide three times in the y direction, so six layers of non-volatile memory are required.
- the weight of the non-volatile memory cell is adjusted by applying voltage to the word line and bit line.
- the voltage on both sides of the non-volatile memory cell is equal to the set voltage.
- the non-volatile memory cell The voltage on both sides of the memory unit is equal to the reset voltage until it is adjusted to the conductance value corresponding to the convolution kernel weight.
- V41 is applied to word line 1, and the current is obtained on bit line 2 after passing through k21 according to the current path shown in 1.
- V42 is applied to word line 2, as shown in 2
- the current path passes through k22 and gets current on bit line 2.
- V31 and V32 get current on bit line 2 after passing through k11 and k12 respectively.
- V42 and V32 participate in the convolution operation because the convolution kernel is in the x direction.
- the two multiplication and addition operations generated by sliding up realize the reuse of input data.
- V21 ⁇ V24 and V31 ⁇ V34 will act on the upper and lower layers of non-volatile memory arrays connected to the word line electrodes, and participate in the convolution operation due to the convolution kernel sliding in the y direction.
- the two multiplication and addition operations generated realize the reuse of input data.
- the output current matrix is linearly converted into a voltage matrix through the output signal readout device, and this voltage is passed to the next convolution operation as input, or this voltage matrix is stored as the final output of the convolution operation.
- Figure 8 shows the main view of a three-dimensional non-volatile memory array with eight word lines in the lateral direction, showing the mapping scheme of a 3 ⁇ 3 convolution kernel on a multi-layer non-volatile memory unit layer.
- the data is 4 ⁇ 4 size.
- the first, second, and third rows of the accumulation kernel; V1, V2, V3, and V4 correspond to the first, second, third, and fourth rows of the 4 ⁇ 4 input.
- V1 to V3 are sequentially input to the first, second, and third layer word line electrodes; the first, second, and The third and fourth layers of non-volatile memory unit layers map k1, k2, k1, and k2 respectively.
- the arrays corresponding to the four word lines on the left complete the convolution operations of k1 and k2.
- V3 and V4 are input to the first and second layer word line electrodes; the first and third layer non-volatile memory unit layers are mapped k3, the non-volatile memory cells in the second and fourth layers of non-volatile memory unit layers are all set to a high-impedance state, and the arrays corresponding to the four word lines on the left complete the convolution operation of k3.
- the mapping scheme for each layer is shown in Figure 9.
- Figure 9 is a top cross-sectional view of a three-dimensional non-volatile memory array with eight word lines in the lateral direction, showing the mapping scheme of a 3 ⁇ 3 convolution kernel on a layer of non-volatile memory cells.
- V11 ⁇ V14 are the inputs of the first row. Taking the first row of convolution kernels k11 ⁇ k13 and the third row of convolution kernels k31 ⁇ k33 as examples, the mapping scheme on a non-volatile memory unit layer is shown. Input V11 ⁇ V14 on the 4 word lines on the left.
- map k11 ⁇ k13 on the diagonal line In the non-volatile memory unit layer corresponding to the 4 word lines on the left, map k11 ⁇ k13 on the diagonal line and copy it once in parallel; on the 4 words on the right Input V11 ⁇ V14 on the line, in the non-volatile memory unit layer corresponding to the 4 word lines on the right, map k31 ⁇ k33 on the diagonal line, and copy it once in parallel.
- the present invention proposes a convolutional neural network operation accelerator and operation method based on a three-dimensional non-volatile memory array.
- the three-dimensional non-volatile memory array consists of a layer of word line electrodes and a layer of non-volatile memory.
- the memory unit, a layer of bit line electrodes, and a layer of planar non-volatile memory cell array are stacked in sequence to form a basic unit superposition structure.
- the word line electrode serves as the input end of the convolution operation and passes through the corresponding non-volatile memory array.
- a convolution operation is performed, and the output of the convolution operation is obtained after superposition of the current on the bit line.
- the three-dimensional non-volatile storage array proposed by the present invention has a unique topological structure, which can naturally match the process of the convolution kernel sliding on the input data to perform multiplication and addition operations in the convolution operation, and perform the convolution operation on the two-dimensional input data at one time , to obtain two-dimensional output data.
- it can not destroy the position information of the input data matrix, and can obtain data output in matrix form, which conforms to the logic of convolution operation in the software.
- it has high parallelism and high integration, and can occupy a smaller space. Get more operations under the area.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Semiconductor Memories (AREA)
- Read Only Memory (AREA)
Abstract
Description
Claims (10)
- 一种卷积运算加速器,其特征在于,包括:三维非易失性存储器阵列和控制模块;所述三维非易失性存储器阵列包括:P个字线电极层;任意相邻的两个字线电极层之间均放置有一个位线电极层;任意相邻的字线电极层和位线电极层之间均放置有一个非易失性存储单元阵列,且非易失性存储单元阵列与字线电极层和位线电极层均垂直相连;所述字线电极层包括多个平行排布的字线电极;所述P个字线电极层中的字线电极共同构成一个字线电极阵列;非易失性存储单元阵列中的每一列非易失性存储单元均连接在与非易失性存储单元阵列相连的字线电极层中的同一条字线上;非易失性存储单元阵列中每一条斜线上的非易失性存储单元均连接在与非易失性存储单元阵列相连的位线电极阵列中的同一条位线上;所述斜线为非易失性存储单元阵列中与非易失性存储单元阵列中的对应对角线平行的斜线;记二维输入数据的尺寸为M×N;当与所述二维输入数据进行卷积运算的卷积核尺寸为2k×c时,所述控制模块用于将所述卷积核按行拆分为k个2×c大小的卷积核单元,k为正整数;在字线电极阵列中选中k个大小为(M-2(k-1))×N的不同子阵列单元,并与所述k个2×c大小的卷积核单元按照卷积核的拆分顺序一一对应;将每个卷积核单元及其N-c次复制均存储至对应子阵列单元中所有相邻的两个字线电极层之间的两层非易失性存储单元阵列中;将所述二维输入数据上第2i-1行到第M-2(k-i)行的数据以电压的方式按照对应的坐标信息施加到第i个子阵列单元中的对应字线电极上,i=1,2,…,k;当与所述二维输入数据进行卷积运算的卷积核尺寸为(2k+1)×c时,所述控制模块用于将卷积核按行拆分为k个2×c大小的卷积核单元和一个 1×c大小的卷积核单元;在字线电极阵列中选中k个大小为(M-2(k-1)-1)×N的子阵列单元,以及一个大小为(M-2k)×N的子阵列单元;所述k个大小为(M-2(k-1)-1)×N的子阵列单元与所述k个2×c大小的卷积核单元按照卷积核的拆分顺序一一对应;将每个2×c大小的卷积核单元及其N-c次复制均存储至对应子阵列单元中所有相邻的两个字线电极层之间的两层非易失性存储单元阵列中;对所述大小为(M-2k)×N的子阵列单元中的各字线电极层,在与其相连的其中一个非易失性存储单元阵列中分别存储所述1×c大小的卷积核单元及所述1×c大小的卷积核单元的N-c次复制,未存储卷积核单元的非易失性存储单元阵列中的非易失存储单元全部置为高阻态;将所述二维输入数据上第2i-1行到第M-2(k-i)-1行的数据以电压的方式按照对应的坐标信息施加到第i个(M-2(k-1)-1)×N大小的子阵列单元中的对应字线电极上,i=1,2,…,k;将所述二维输入数据上第2k+1行到第M行的数据以电压的方式按照对应的坐标信息施加到所述大小为(M-2k)×N的子阵列单元中的对应字线电极上;所述三维非易失性存储器阵列用于基于非易失性存储单元阵列并行地实现卷积核单元与二维输入数据不同部分的点乘运算,经由对应的位线电极层并行输出卷积核单元与二维输入数据对应部分的点乘运算结果之和,从而实现所述卷积核与所述二维输入数据的卷积运算;其中,卷积核单元的每一行卷积核数据在对应非易失性存储单元阵列的对应斜线上依次存储后,沿着卷积核滑动方向水平移动到相邻的N-c条斜线上再次对该行卷积核数据进行存储,实现每一层非易失性存储单元阵列存储卷积核单元中对应行的卷积核数据及该卷积核数据的N-c次复制。
- 根据权利要求1所述的卷积运算加速器,其特征在于,包括:当所述卷积核的尺寸为2k×c时,所述三维非易失性存储器阵列用于基于所述大小为(M-2(k-1))×N的子阵列单元中所有相邻的两个字线电极层之间的两层非易失性存储单元阵列,并行地实现所述2×c大小的卷积核单元与二维输 入数据不同部分的点乘运算后,经由对应的位线电极层并行输出所述2×c大小的卷积核单元与所述二维输入数据对应部分的点乘运算结果之和;所述控制模块还用于对所选中的各子阵列单元中同一相对位置的位线输出分别进行汇总,得到卷积核与二维输入数据的卷积运算结果;当所述卷积核的尺寸为(2k+1)×c时,所述三维非易失性存储器阵列用于基于所述大小为(M-2(k-1)-1)×N的子阵列单元中所有相邻的两个字线电极层之间的两层非易失性存储单元阵列,并行地实现2×c大小的卷积核单元与所述二维输入数据不同部分的点乘运算后,经由对应的位线电极层并行输出所述2×c大小的卷积核单元与所述二维输入数据对应部分的点乘运算结果之和;同时基于所述大小为(M-2k)×N的子阵列单元中的非易失性存储单元阵列,并行地实现所述1×c大小的卷积核单元与所述二维输入数据不同部分的点乘运算后,经由对应的位线电极层并行输出1×c大小的卷积核单元与二维输入数据对应部分的点乘运算结果之和;所述控制模块还用于将所选中的各子阵列单元中的各位线输出对应进行汇总,得到卷积核与二维输入数据的卷积运算结果。
- 根据权利要求1所述的卷积运算加速器,其特征在于,所述三维非易失性存储器阵列为多层堆叠结构,由字线电极层、所述非易失性存储单元阵列和位线电极层依次堆叠形成;各字线电极层之间、字线电极层与位线电极层之间均互相平行。
- 根据权利要求1所述的卷积运算加速器,其特征在于,所述控制模块包括:输入端信号发生装置、输出端信号发生装置和输出信号读出装置;所述输入端信号发生装置和输出端信号发生装置相互配合,在子阵列单元所对应的字线电极和位线电极上施加电压,选择对应的非易失存储单元,并改变所选中的各非易失存储单元的电导值,使其存储对应的卷积核数据;所述输入端信号发生装置还用于将二维输入数据以电压的方式,按照 二维输入数据的坐标信息施加到子阵列单元中的对应字线电极上;所述输出信号读出装置用于检测位线电极上的输出电流,并转化为电压信号,作为卷积运算的结果。
- 根据权利要求4所述的卷积运算加速器,其特征在于,所述输入信号发生装置的读电压小于或等于非易失存储单元上的当前set电压值,以保证在进行卷积运算时非易失存储单元的电导值不被改变。
- 根据权利要求1-5任意一项所述的卷积运算加速器,其特征在于,所述卷积运算加速器用于实现卷积神经网络中的卷积运算。
- 根据权利要求6所述的卷积运算加速器,其特征在于,在卷积神经网络的训练过程中,所述控制模块还用于通过在对应的字线电极和位线电极上施加写电压来调整各非易失存储单元的电导值,以对卷积神经网络的参数进行更新,并将卷积运算加速器上一轮的卷积运算结果重新作为卷积运算加速器下一轮卷积运算的输入。
- 根据权利要求7所述的卷积运算加速器,其特征在于,当需要增加非易失存储单元的电导值时,在对应的字线电极和位线电极上施加的写电压差值的绝对值为对应的set电压值;当需要减小非易失存储单元的电导值时,在对应的字线电极和位线电极上施加的写电压差值的绝对值为对应的reset电压值。
- 一种基于权利要求1-8任意一项所述卷积运算加速器的卷积运算方法,其特征在于,包括以下步骤:S1、当与所述二维输入数据进行卷积运算的卷积核尺寸为2k×c时,将所述卷积核按行拆分为k个2×c大小的卷积核单元,k为正整数;在字线电极阵列中选中k个大小为(M-2(k-1))×N的不同子阵列单元,并与所述k个2×c大小的卷积核单元按照卷积核的拆分顺序一一对应;将每个卷积核单元及其N-c次复制均存储至对应子阵列单元中所有相邻的两个字线电极层之间的两层非易失性存储单元阵列中;将所述二维输入数据上第2i-1行到第 M-2(k-i)行的数据以电压的方式按照对应的坐标信息施加到第i个子阵列单元中的对应字线电极上,i=1,2,…,k;当与所述二维输入数据进行卷积运算的卷积核尺寸为(2k+1)×c时,将卷积核按行拆分为k个2×c大小的卷积核单元和一个1×c大小的卷积核单元;在字线电极阵列中选中k个大小为(M-2(k-1)-1)×N的子阵列单元,以及一个大小为(M-2k)×N的子阵列单元;所述k个大小为(M-2(k-1)-1)×N的子阵列单元与所述k个2×c大小的卷积核单元按照卷积核的拆分顺序一一对应;将每个2×c大小的卷积核单元及其N-c次复制均存储至对应子阵列单元中所有相邻的两个字线电极层之间的两层非易失性存储单元阵列中;对所述大小为(M-2k)×N的子阵列单元中的各字线电极层,在与其相连的其中一个非易失性存储单元阵列中分别存储所述1×c大小的卷积核单元及所述1×c大小的卷积核单元的N-c次复制,未存储卷积核单元的非易失性存储单元阵列中的非易失存储单元全部置为高阻态;将所述二维输入数据上第2i-1行到第M-2(k-i)-1行的数据以电压的方式按照对应的坐标信息施加到第i个(M-2(k-1)-1)×N大小的子阵列单元中的对应字线电极上,i=1,2,…,k;将所述二维输入数据上第2k+1行到第M行的数据以电压的方式按照对应的坐标信息施加到所述大小为(M-2k)×N的子阵列单元中的对应字线电极上;S2、基于非易失性存储单元阵列并行地实现卷积核单元与二维输入数据不同部分的点乘运算,经由对应的位线电极层并行输出卷积核单元与二维输入数据对应部分的点乘运算结果之和,从而实现所述卷积核与所述二维输入数据的卷积运算;其中,所述二维输入数据的尺寸为M×N;卷积核单元的每一行卷积核数据在对应非易失性存储单元阵列的对应斜线上依次存储后,沿着卷积核滑动方向水平移动到相邻的N-c条斜线上再次对该行卷积核数据进行存储, 实现每一层非易失性存储单元阵列存储卷积核单元中对应行的卷积核数据及该卷积核数据的N-c次复制。
- 根据权利要求9所述的卷积运算方法,其特征在于,当所述卷积核的尺寸为2k×c时,所述步骤S2包括:基于所述大小为(M-2(k-1))×N的子阵列单元中所有相邻的两个字线电极层之间的两层非易失性存储单元阵列,并行地实现所述2×c大小的卷积核单元与二维输入数据不同部分的点乘运算后,经由对应的位线电极层并行输出所述2×c大小的卷积核单元与所述二维输入数据对应部分的点乘运算结果之和;对所选中的各子阵列单元中同一相对位置的位线输出分别进行汇总,得到所述卷积核与所述二维输入数据的卷积运算结果;当所述卷积核的尺寸为(2k+1)×c时,所述步骤S2包括:基于所述大小为(M-2(k-1)-1)×N的子阵列单元中所有相邻的两个字线电极层之间的两层非易失性存储单元阵列,并行地实现2×c大小的卷积核单元与所述二维输入数据不同部分的点乘运算后,经由对应的位线电极层并行输出所述2×c大小的卷积核单元与所述二维输入数据对应部分的点乘运算结果之和;同时基于所述大小为(M-2k)×N的子阵列单元中的非易失性存储单元阵列,并行地实现所述1×c大小的卷积核单元与所述二维输入数据不同部分的点乘运算后,经由对应的位线电极层并行输出1×c大小的卷积核单元与二维输入数据对应部分的点乘运算结果之和;将所选中的各子阵列单元中的各位线输出对应进行汇总,得到所述卷积核与所述二维输入数据的卷积运算结果。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/266,610 US12293804B2 (en) | 2022-03-18 | 2022-04-20 | Convolution operation accelerator and convolution operation method |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210272801.8 | 2022-03-18 | ||
| CN202210272801.8A CN114724595B (zh) | 2022-03-18 | 2022-03-18 | 一种卷积运算加速器及卷积运算方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2023173530A1 true WO2023173530A1 (zh) | 2023-09-21 |
Family
ID=82238502
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2022/087794 Ceased WO2023173530A1 (zh) | 2022-03-18 | 2022-04-20 | 一种卷积运算加速器及卷积运算方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US12293804B2 (zh) |
| CN (1) | CN114724595B (zh) |
| WO (1) | WO2023173530A1 (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115348432B (zh) * | 2022-08-15 | 2024-05-07 | 上海壁仞科技股份有限公司 | 数据处理方法及装置、图像处理方法、电子设备及介质 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106530210A (zh) * | 2016-10-31 | 2017-03-22 | 北京大学 | 基于阻变存储器件阵列实现并行卷积计算的设备和方法 |
| CN106847335A (zh) * | 2016-12-27 | 2017-06-13 | 北京大学 | 基于阻变存储阵列的卷积计算存储一体化设备及方法 |
| CN107368889A (zh) * | 2017-06-01 | 2017-11-21 | 北京大学 | 基于阻变存储器三维交叉阵列的卷积、池化和激活电路 |
| US20190108437A1 (en) * | 2017-10-10 | 2019-04-11 | Fu-Chang Hsu | Two and three-dimensional neural network arrays |
| CN110826709A (zh) * | 2019-10-18 | 2020-02-21 | 华中科技大学 | 一种基于三维相变存储器的3d卷积运算装置及方法 |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2018137177A1 (zh) * | 2017-01-25 | 2018-08-02 | 北京大学 | 一种基于nor flash阵列的卷积运算方法 |
| CN106843809B (zh) * | 2017-01-25 | 2019-04-30 | 北京大学 | 一种基于nor flash阵列的卷积运算方法 |
| US10824938B2 (en) * | 2017-04-24 | 2020-11-03 | Intel Corporation | Specialized fixed function hardware for efficient convolution |
| US10186011B2 (en) * | 2017-04-28 | 2019-01-22 | Intel Corporation | Programmable coarse grained and sparse matrix compute hardware with advanced scheduling |
| CN110210610B (zh) * | 2018-03-27 | 2023-06-20 | 腾讯科技(深圳)有限公司 | 卷积计算加速器、卷积计算方法及卷积计算设备 |
| CN111048135A (zh) * | 2018-10-14 | 2020-04-21 | 天津大学青岛海洋技术研究院 | 一种基于忆阻器内存计算的cnn处理装置及其工作方法 |
-
2022
- 2022-03-18 CN CN202210272801.8A patent/CN114724595B/zh active Active
- 2022-04-20 US US18/266,610 patent/US12293804B2/en active Active
- 2022-04-20 WO PCT/CN2022/087794 patent/WO2023173530A1/zh not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106530210A (zh) * | 2016-10-31 | 2017-03-22 | 北京大学 | 基于阻变存储器件阵列实现并行卷积计算的设备和方法 |
| CN106847335A (zh) * | 2016-12-27 | 2017-06-13 | 北京大学 | 基于阻变存储阵列的卷积计算存储一体化设备及方法 |
| CN107368889A (zh) * | 2017-06-01 | 2017-11-21 | 北京大学 | 基于阻变存储器三维交叉阵列的卷积、池化和激活电路 |
| US20190108437A1 (en) * | 2017-10-10 | 2019-04-11 | Fu-Chang Hsu | Two and three-dimensional neural network arrays |
| CN110826709A (zh) * | 2019-10-18 | 2020-02-21 | 华中科技大学 | 一种基于三维相变存储器的3d卷积运算装置及方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| US12293804B2 (en) | 2025-05-06 |
| CN114724595A (zh) | 2022-07-08 |
| CN114724595B (zh) | 2023-03-10 |
| US20250022490A1 (en) | 2025-01-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR102752652B1 (ko) | 메모리내 승산 누적 연산들을 위한 nand 블록 아키텍처 | |
| TWI815392B (zh) | 存內計算裝置及用於執行mac操作之方法 | |
| US11989646B2 (en) | Neuromorphic apparatus having 3D stacked synaptic structure and memory device having the same | |
| CN110826709B (zh) | 一种基于三维相变存储器的3d卷积运算装置及方法 | |
| US20240160689A1 (en) | Method for optimizing convolution operation of system on chip and related product | |
| CN107918794A (zh) | 基于计算阵列的神经网络处理器 | |
| CN108053848A (zh) | 电路结构及神经网络芯片 | |
| CN113449612B (zh) | 一种基于子流型稀疏卷积的三维目标点云识别的方法 | |
| CN110580519A (zh) | 一种卷积运算结构及其方法 | |
| CN109446478A (zh) | 一种基于迭代和可重构方式的复协方差矩阵计算系统 | |
| CN114724595B (zh) | 一种卷积运算加速器及卷积运算方法 | |
| KR20190114208A (ko) | 저전력 및 고속 연산을 위한 dram용 비트와이즈 컨볼루션 회로 | |
| CN114168903B (zh) | 一种基于ReRAM Crossbar的矩阵乘法计算设备和匹配的方法 | |
| CN112598122B (zh) | 一种基于可变电阻式随机存储器的卷积神经网络加速器 | |
| CN115965067A (zh) | 一种针对ReRAM的神经网络加速器 | |
| Guo et al. | Efficient convolutional networks learning through irregular convolutional kernels | |
| CN109447839B (zh) | 非零元素的随机生成及形成电力系统雅可比矩阵的方法 | |
| WO2025080293A2 (en) | 3d processor | |
| CN119512500A (zh) | 一种支持多模卷积的存算一体加速宏、芯片及设备 | |
| CN118503205A (zh) | 用于处理张量数据的方法和装置 | |
| CN113487020B (zh) | 用于神经网络计算的参差存储结构及神经网络计算方法 | |
| TWI919552B (zh) | 記憶體電路及其操作方法 | |
| Ko et al. | Efficient implementation of multi-channel convolution in monolithic 3D ReRAM crossbar | |
| US20250232163A1 (en) | Memory circuits with multi-row storage cells and methods for operating the same | |
| CN115910136B (zh) | 一种基于电阻式存储器的卷积加速运算阵列及其控制方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| WWE | Wipo information: entry into national phase |
Ref document number: 18266610 Country of ref document: US |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22931557 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 22931557 Country of ref document: EP Kind code of ref document: A1 |
|
| WWG | Wipo information: grant in national office |
Ref document number: 18266610 Country of ref document: US |