A systolic array weight input control system

By designing a weight input control system for a pulsating array and optimizing the weight data transmission process, the problem that image data can only be input after weight transmission in existing technologies is solved, achieving more efficient computation and reducing hardware overhead.

CN115455997BActive Publication Date: 2026-05-22NANJING INST OF INTELLIGENT TECH INST OF MICROELECTRONICS OF THE CHINESE ACAD OF
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
NANJING INST OF INTELLIGENT TECH INST OF MICROELECTRONICS OF THE CHINESE ACAD OF
Filing Date
2022-09-22
Publication Date
2026-05-22

AI Technical Summary

Technical Problem

In existing technologies, image data can only be input into the pulsating array after the weight transfer is completed, which affects the calculation speed and results in a large hardware overhead.

Method used

Design a weighted input control system for a pulsating array, including a control unit, an input storage unit, a logic unit, a weight storage unit, a pulsating array unit, and an output storage unit. By generating input control signals and state judgment signals, optimize the transmission process of weighted data and realize parallel computing.

Benefits of technology

It shortens image data transmission time, improves computational efficiency, reduces hardware overhead, and optimizes computation speed.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115455997B_ABST
    Figure CN115455997B_ABST
Patent Text Reader

Abstract

The present application relates to a kind of weight input control system of pulsating array, belong to pulse array control technical field.The weight input control system of pulsating array includes: control unit, input storage unit, weight storage unit, logic unit, pulsating array unit and output storage unit;The control unit is connected with the input storage unit, the logic unit and the pulsating array unit respectively;The logic unit is connected with the weight storage unit;The pulsating array unit is connected with the input storage unit, the weight storage unit and the output storage unit respectively;Based on this structure setting, the present application can reduce image data transmission time, and then improve computing efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of pulsating array control technology, and in particular to a weighted input control system for a pulsating array. Background Technology

[0002] With the rise of artificial intelligence, deep learning is being applied more and more in various fields. Among deep learning operations, matrix multiplication is used extensively. Currently, a relatively convenient and fast method for matrix operations is using systolic arrays, and the basic idea of ​​systolic arrays is: in A... In the matrix multiplication operation B=Y, matrix B is fixed, and matrix A flows through the systolic array cells to continuously output Y; alternatively, matrices A and B flow through the systolic array cells, and the result Y is stored in the systolic array cells. The former method is usually used in convolution operations. In actual convolution operations, the weights W need to be stored in the systolic array cells first, and then the input image is processed and input. There are generally two methods for storing the weights W in the systolic array cells: one is to add a bus to all cells for weight transfer, which usually requires significant hardware overhead; the other method is similar to the input method, transferring weights by flowing between the systolic array cell matrices. Since the processed image data can only be input after the weight transfer is complete, there is a waiting time for image data input, which affects the calculation speed. Summary of the Invention

[0003] To address the aforementioned problems in the existing technology, the present invention provides a weighted input control system for a pulsating array.

[0004] To achieve the above objectives, the present invention provides the following solution:

[0005] A weighted input control system for a pulsating array includes: a control unit, an input storage unit, a weight storage unit, a logic unit, a pulsating array unit, and an output storage unit;

[0006] The control unit is connected to the input storage unit, the logic unit, and the pulsation array unit, respectively; the logic unit is connected to the weight storage unit; the pulsation array unit is connected to the input storage unit, the weight storage unit, and the output storage unit, respectively.

[0007] The control unit is used to generate input control signals, state judgment signals, and pulsation array state transition signals, and to receive calculation completion signals output from the pulsation array unit; the calculation completion signal is the state judgment signal of the pulsation array unit. When the first row of the pulsation array unit has been fully calculated, the calculation completion signal outputs a low level, and at other times the calculation completion signal is a high level.

[0008] The input storage unit is used to store input data and to output input data to the pulse array unit according to the input control signal;

[0009] The logic unit is used to generate a weight control signal based on the state judgment signal generated by the control unit and the calculation completion signal of the pulsating array unit;

[0010] The weight storage unit is used to store weight data and to determine whether to transmit weight data based on the weight control signal.

[0011] The pulsating array unit is used to receive the pulsating array state transition signal, and to acquire the input data and the weight data in parallel, and output the calculation results to the output storage unit in parallel.

[0012] The output storage unit is used to store output data.

[0013] Preferably, the pulsating array unit includes a plurality of pulsating sub-units arranged in an array.

[0014] Preferably, the first pulsating subunit includes: a first input register, a first 2-to-1 selector, a first weight register, a first multiplier, and a first summing circuit;

[0015] The first input register is connected to the input storage unit; the first input register is used to acquire input data.

[0016] The first weight register is connected to the first two-to-one selector; the first weight register is used to obtain weight data.

[0017] The first multiplier is connected to the first input register and the first weight register respectively; the first multiplier is used to obtain the first product data based on the input data and the weight data;

[0018] The first summing circuit is connected to the first multiplier; the first summing circuit is used to obtain the first summation data based on the first product data;

[0019] The first 2-to-1 selector is connected to the control unit and the weight storage unit respectively; the first 2-to-1 selector is used to select the data to enter the first weight register; wherein, when the state transition signal is high, the weight data in the first weight register remains unchanged, and when the state transition signal is low, the first weight register receives the weight data from the weight storage unit.

[0020] Preferably, the pulsating array unit, excluding the first pulsating subunit, includes: a second input register, a second weight register, a second multiplier, a partial sum register, a second summing circuit, and a second 2-to-1 selector;

[0021] The second input register is connected to the first input register; the second input register is used to acquire input data.

[0022] The second weight register is connected to the second 2-to-1 selector; the second weight register is used to obtain weight data.

[0023] The second multiplier is connected to the second input register and the second weight register respectively; the second multiplier is used to obtain the second product data based on the input data and the weight data obtained from the second weight register;

[0024] A partial sum register is connected to the first summing circuit, and the partial sum register is used to obtain the first summation data;

[0025] The second summing circuit is connected to the second multiplier and the partial sum register respectively; the second summing circuit is used to obtain second sum data based on the first sum data and the second product data;

[0026] The second 2-to-1 selector is connected to the control unit and the first weight register respectively, and is used to select the data to enter the second weight register; wherein, when the state transition signal is high, the weight data in the second weight register remains unchanged, and when the state transition signal is low, the second weight register receives the weight data from the first weight register.

[0027] Preferably, the logic unit is an OR gate.

[0028] According to specific embodiments provided by the present invention, the present invention discloses the following technical effects:

[0029] The weighted input control system for a pulsating array provided by this invention includes a control unit, an input storage unit, a logic unit, a weight storage unit, a pulsating array unit, and an output storage unit. When the first row of calculations in the pulsating array unit is completed, a calculation completion signal is output at a low level; otherwise, the calculation completion signal output by the pulsating array unit is at a high level. When there is a next operation, the state judgment signal output by the control unit is at a low level; otherwise, the state judgment signal output by the control unit is at a high level. When it is detected that the first row of calculations in the pulsating array unit is completed, the pulsating array unit outputs a low-level signal; otherwise, the pulsating array unit outputs a high-level signal. The weight storage unit receives the level signal resulting from the calculation completion signal and the state judgment signal generated by the control unit, processed by the logic unit. When this level signal is high, it indicates that the input data has not yet been fully output to the pulsating array unit or that there is no next matrix operation; in this case, the weight storage unit does not perform any action. When this level signal is low, the weight storage unit loads weight data into the pulsating array unit. When the control unit receives a low-level signal from the calculation completion signal, if there is an upcoming calculation, it begins to change the state transition signal of the pulsating array unit. The pulsating array state transition signal is a set of signals, the number of which is the same as the number of rows in the pulsating array unit. Each row of the pulsating array unit shares the same state transition signal, but different rows have different state transition signals. If the state transition signal of a row is high, the multiplexer in that array unit outputs the data in the unit's weight register, keeping the data in the weight register unchanged. If the state transition signal of a row is low, the multiplexer in that array unit outputs weight data from the weight storage unit or from the previous array unit, changing the data in the weight register. Based on this structural configuration, the present invention can reduce image data transmission time, thereby improving computational efficiency. Attached Figure Description

[0030] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0031] Figure 1 A schematic diagram of the weighted input control system for the pulsating array provided by the present invention;

[0032] Figure 2 This is a schematic diagram of the structure of one of the pulsating subunits provided in an embodiment of the present invention;

[0033] Figure 3 A first data flow example diagram provided for an embodiment of the present invention;

[0034] Figure 4 This is a second data flow example diagram provided in an embodiment of the present invention;

[0035] Figure 5 This is a third data flow example diagram provided in an embodiment of the present invention;

[0036] Figure 6 This is a fourth data flow example diagram provided in an embodiment of the present invention;

[0037] Figure 7 This is a fifth data flow example diagram provided in an embodiment of the present invention;

[0038] Figure 8 The sixth data flow example diagram provided in this embodiment of the invention;

[0039] Figure 9 The seventh data flow example diagram provided in the embodiments of the present invention;

[0040] Figure 10 The eighth data flow example diagram provided in this embodiment of the invention;

[0041] Figure 11 This is a ninth data flow example diagram provided for an embodiment of the present invention. Detailed Implementation

[0042] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.

[0043] The purpose of this invention is to provide a weighted input control system for a pulsating array, which can reduce image data transmission time and thus improve computational efficiency.

[0044] To make the above-mentioned objects, features and advantages of the present invention more apparent and understandable, the present invention will be further described in detail below with reference to the accompanying drawings and specific embodiments.

[0045] like Figure 1As shown, the present invention provides a weighted input control system for a pulsating array, comprising: a control unit, an input storage unit, a logic unit, a weight storage unit, a pulsating array unit, and an output storage unit. The control unit generates input control signals, state transition and state judgment signals for the pulsating array unit, and receives a calculation completion signal from the pulsating array. The input storage unit is connected to the control unit and the pulsating array unit, and stores input data and outputs input data to the pulsating array unit according to the input control signals. The logic unit is connected to both the control unit and the pulsating array unit, and generates weight control signals based on the state judgment signals and calculation completion signals generated by the control unit. The weight storage unit is connected to the logic unit, stores weight data, and determines whether to transmit weight data based on the weight control signals. The pulsating array unit is connected to the input storage unit, the weight storage unit, the control unit, and the output storage unit, and acquires input data and weight data in parallel, calculates the data, and outputs the calculation results to the output storage unit in parallel. The output storage unit is connected to the pulsating array unit and stores output data.

[0046] To improve data transmission efficiency, the pulsating array unit used in this invention includes multiple pulsating sub-units arranged in an array.

[0047] The first pulsating subunit includes: a first input register, a first weight register, a first multiplier, a first summing circuit, and a first 2-to-1 selector. The first input register is connected to the input storage unit and is used to acquire input data. The first weight register is connected to the first 2-to-1 selector and is used to acquire weight data. The first multiplier is connected to both the input register and the weight register and is used to obtain a first product based on the input data and the weight data. The first summing circuit is connected to the first multiplier and is used to obtain a first sum based on the first product data. The first 2-to-1 selector is connected to the control unit, the weight storage unit, and the weight register, and is used to select data to enter the weight register. When the state transition signal is high, the weight data in the weight register is retained; when the state transition signal is low, the weight register receives weight data from the weight storage unit.

[0048] To further improve the accuracy of data transmission, such as Figure 2 As shown, the pulsating array unit, excluding the first pulsating subunit, includes the following other pulsating subunits: a second input register, a second weight register, a second multiplier, a partial sum register, a second summing circuit, and a second 2-to-1 selector.

[0049] The system comprises the following components: a second input register connected to the first input register, used to acquire input data; a second weight register connected to a second 2-to-1 selector, used to acquire weight data; a second multiplier connected to both the second input register and the second weight register, used to obtain a second product based on the input data and the weight data; a partial sum register connected to a first summing circuit, used to acquire first summation data; a second summing circuit connected to both the second multiplier and the partial sum register, used to obtain second summation data based on the first summation data and the second product data; and a second 2-to-1 selector connected to both the control unit and the first weight register, used to select data to enter the second weight register. When the state transition signal is high, the weight data in the second weight register is retained; when the state transition signal is low, the second weight register receives weight data from the first weight register.

[0050] The following uses an OR gate as an example to illustrate the specific control process of the weighted input control system of the pulsating array provided above. In actual applications, the specific settings of the logic unit are not limited to this.

[0051] The number of operations required for a neural network is predetermined. The control unit knows from the beginning how many operations to perform, so it naturally knows whether to perform the next operation. Based on this, the present invention uses a state judgment signal generated by the control unit to determine whether there is a next matrix operation. For example, it is set that if there is a next matrix operation, the state judgment signal outputs a low level, and if there is no next matrix operation, the state judgment signal outputs a high level.

[0052] The calculation completion signal serves as the status judgment signal for the pulsating array unit. When the first row of the pulsating array unit has been completely calculated, the calculation completion signal outputs a low level; otherwise, it is high. In this implementation, a detection signal is added to the pulsating array unit. When the calculation of the first row of the pulsating array unit is detected as complete, a low-level signal is output; otherwise, a high-level signal is output. How the detection signal is specifically applied to the pulsating array unit can be considered, in this embodiment, as generated by the memory definition used.

[0053] The weight storage unit receives the status judgment signal generated by the control unit and the signal processed by an OR gate after the calculated signal. If the OR gate output signal is high, it indicates that the first row of the pulsating array unit has not been fully calculated or there is no next matrix operation. In this case, the weight data buffer state of the weight storage unit will not change. If the OR gate output signal is low, it indicates that the first row of the pulsating array unit has been fully calculated and the next matrix operation is about to begin. In this case, the weight storage unit will send the weight data for the next round to each pulsating sub-unit in the pulsating array unit in parallel through a flow method. The specific data flow method of "parallel input by row" on the left side of the pulsating array unit is as follows: Figures 3 to 10 As shown.

[0054] Figures 3 to 10 The numbers in the array represent the weight values ​​stored in the weight register. Input data enters the pulsation array unit from the left input storage unit and is passed to the right. Partial input data and weight data are passed from top to bottom along different paths shown by the pulsation array unit. For example, if both input data and weight data are 3... Using a 3-matrix matrix as an example, the input data matrix is... The matrix of weighted data is The matrix of weight data to be calculated in the next round is: .

[0055] like Figures 3 to 11 As shown, in the sixth cycle, the first row of the pulsating array unit completes its calculation. The calculation completion signal flips, causing a change in the pulsating array state transition signal of the control unit. The weight storage begins outputting a new round of weight data to the pulsating array unit. The weight data for the next round of calculation begins to flow from top to bottom in the pulsating array unit and is loaded in the ninth cycle. In the eighth cycle, all the calculation data for this round is output to the output storage unit, meaning that the loading of weight data is completed in only one extra cycle, saving computation time. Figure 8 In the middle, the first row of the pulsating array completes the calculation and begins to receive a new round of weights, and the state transition signal changes from 111 to 110. Figure 9 In the middle, the second row of the pulse array completes the calculation and begins to receive a new round of weights, and the state signal changes from 110 to 100. Figure 10 In the middle, the third row of the pulse array completes the calculation and begins to receive a new round of weights, and the state transition signal changes from 100 to 000. Figure 11 In the middle, all the new round of weight data enters the array unit, and the state transition signal changes from 000 to 111.

[0056] The common method of weight input involves inputting the next round of weights while processing the output results after the previous round of calculations. This requires the next round of weight input to be completed before another calculation can begin. If the next round of weight data is large and the input is not completed after the output results are processed, the next calculation will need to wait for a period of time, which consumes more computation time. Moreover, the waiting time involves a trade-off between weight transmission time and input data processing time. Based on the above description, in the matrix multiplication process of the pulsating matrix unit, the input data is transmitted from left to right in the pulsating sub-unit, and the sum is transmitted from top to bottom in the pulsating sub-unit. Therefore, before the calculation of the pulsating matrix unit is completed, some pulsating sub-units begin to become idle. After the calculation of the first row of the pulsating array unit is completed, the first row of pulsating sub-units becomes idle. If the input of the next round of weights begins from this point, so that the input of the next round of weights and the matrix multiplication of this round are carried out simultaneously in different pulsating sub-units without conflict, the time required for weight input can be reduced, the weight transmission time and input data processing time can be reduced, and the increase in hardware overhead is not significant.

[0057] The various embodiments in this specification are described in a progressive manner, with each embodiment focusing on the differences from other embodiments. The same or similar parts between the various embodiments can be referred to each other.

[0058] This document uses specific examples to illustrate the principles and implementation methods of the present invention. The descriptions of the above embodiments are only for the purpose of helping to understand the method and core ideas of the present invention. Furthermore, those skilled in the art will recognize that, based on the ideas of the present invention, there will be changes in the specific implementation methods and application scope. Therefore, the content of this specification should not be construed as a limitation of the present invention.

Claims

1. A weighted input control system for a pulsating array, characterized in that, include: Control unit, input storage unit, weight storage unit, logic unit, pulsation array unit, and output storage unit; The control unit is connected to the input storage unit, the logic unit, and the pulsation array unit, respectively; the logic unit is connected to the weight storage unit; the pulsation array unit is connected to the input storage unit, the weight storage unit, and the output storage unit, respectively. The control unit is used to generate input control signals, state judgment signals, and pulsation array state transition signals, and to receive calculation completion signals output from the pulsation array unit; the calculation completion signal is the state judgment signal of the pulsation array unit. When the first row of the pulsation array unit has been fully calculated, the calculation completion signal outputs a low level, and at other times the calculation completion signal is a high level. The input storage unit is used to store input data and to output input data to the pulse array unit according to the input control signal; The logic unit is used to generate a weight control signal based on the state judgment signal generated by the control unit and the calculation completion signal of the pulsating array unit; The weight storage unit is used to store weight data and to determine whether to transmit weight data based on the weight control signal. The pulsating array unit is used to receive the pulsating array state transition signal, and to acquire the input data and the weight data in parallel, and output the calculation results to the output storage unit in parallel. The output storage unit is used to store output data.

2. The weighted input control system for the pulsating array according to claim 1, characterized in that, The pulsating array unit includes multiple pulsating sub-units arranged in an array.

3. The weighted input control system for the pulsating array according to claim 2, characterized in that, The first pulsating subunit includes: a first input register, a first 2-to-1 selector, a first weight register, a first multiplier, and a first summing circuit; The first input register is connected to the input storage unit; the first input register is used to acquire input data. The first weight register is connected to the first two-to-one selector; the first weight register is used to obtain weight data. The first multiplier is connected to the first input register and the first weight register respectively; the first multiplier is used to obtain the first product data based on the input data and the weight data; The first summing circuit is connected to the first multiplier; the first summing circuit is used to obtain the first summation data based on the first product data; The first 2-to-1 selector is connected to the control unit and the weight storage unit respectively; the first 2-to-1 selector is used to select the data to enter the first weight register; wherein, when the state transition signal is high, the weight data in the first weight register remains unchanged, and when the state transition signal is low, the first weight register receives the weight data from the weight storage unit.

4. The weighted input control system for the pulsating array according to claim 3, characterized in that, The pulsating array unit, excluding the first pulsating subunit, includes the following other pulsating subunits: a second input register, a second weight register, a second multiplier, a partial sum register, a second summing circuit, and a second 2-to-1 selector; The second input register is connected to the first input register; the second input register is used to acquire input data. The second weight register is connected to the second 2-to-1 selector; the second weight register is used to obtain weight data. The second multiplier is connected to the second input register and the second weight register respectively; the second multiplier is used to obtain the second product data based on the input data and the weight data obtained from the second weight register; A partial sum register is connected to the first summing circuit, and the partial sum register is used to obtain the first summation data; The second summing circuit is connected to the second multiplier and the partial sum register respectively; the second summing circuit is used to obtain second sum data based on the first sum data and the second product data; The second 2-to-1 selector is connected to the control unit and the first weight register respectively, and is used to select the data to enter the second weight register; wherein, when the state transition signal is high, the weight data in the second weight register remains unchanged, and when the state transition signal is low, the second weight register receives the weight data from the first weight register.

5. The weighted input control system for the pulsating array according to claim 1, characterized in that, The logic unit is an OR gate.