WO2023137696A1 - Logical operation storage unit, storage array and logical operation memory - Google Patents

Logical operation storage unit, storage array and logical operation memory Download PDF

Info

Publication number
WO2023137696A1
WO2023137696A1 PCT/CN2022/073145 CN2022073145W WO2023137696A1 WO 2023137696 A1 WO2023137696 A1 WO 2023137696A1 CN 2022073145 W CN2022073145 W CN 2022073145W WO 2023137696 A1 WO2023137696 A1 WO 2023137696A1
Authority
WO
WIPO (PCT)
Prior art keywords
transistor
pole
node
data
circuit
Prior art date
Application number
PCT/CN2022/073145
Other languages
French (fr)
Chinese (zh)
Inventor
崔小乐
张孙睿
Original Assignee
北京大学深圳研究生院
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 北京大学深圳研究生院 filed Critical 北京大学深圳研究生院
Priority to PCT/CN2022/073145 priority Critical patent/WO2023137696A1/en
Publication of WO2023137696A1 publication Critical patent/WO2023137696A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/501Half or full adders, i.e. basic adder cells for one denomination

Definitions

  • the invention relates to the technical field of storage devices, in particular to a logical operation storage unit, a storage array and a logical operation memory.
  • the current computer architecture is the traditional von Neumann architecture. This architecture separates the computing unit from the storage unit, and the data needs to be read from the storage unit first, and then placed in the computing unit for calculation.
  • This architecture separates the computing unit from the storage unit, and the data needs to be read from the storage unit first, and then placed in the computing unit for calculation.
  • semiconductor technology the channel for data transmission between storage and computing units has become the bottleneck of the overall performance and power consumption of the computer.
  • a computing paradigm called in-memory computing has emerged.
  • SRAM As the main component of cache memory, SRAM has become a key research object for researchers based on Compute-in Memory, including the method of implementing logic operations on SRAM arrays.
  • the existing Static Random Access Memory (SRAM) is mainly based on a 6-tube structure or an 8-tube structure.
  • FIG 1 is a schematic diagram of the memory cell circuit structure of a 6T SRAM.
  • An 8T SRAM refers to a memory cell composed of six transistors. Each bit in the SRAM is stored in two cross-coupled inverters composed of four field effect transistors (M1, M2, M3, and M4). The other two field effect transistors (M5 and M6) are the control switches of the bit line (Bit Line) used by the memory cell for reading and writing.
  • the basic storage unit of a SRAM has two stable states of 0 and 1. It is composed of two CMOS inverters.
  • the input and output of the two inverters are cross-connected, that is, the output of the first inverter is connected to the input of the second inverter, and the output of the second inverter is connected to the input of the first inverter.
  • This realizes the locking and saving of the output states of the two inverters, that is, the state of 1 bit is stored.
  • the word line (Word Line) is high, so that the two control switch transistors M5 and M6 of each basic unit are turned on, and the basic unit is connected to the bit line (Bit Line).
  • the bit lines are used to read or write the saved state of the elementary cell.
  • two inverted bit lines are not necessary, such inverted bit lines help improve noise margins.
  • other SRAMs also have eight-tube, ten-tube or even more transistors per bit.
  • Figure 2 is a schematic diagram of a calculation method based on bit lines.
  • This type of calculation method can be implemented using traditional 6T SRAM cells, or 8T and 10T cells.
  • the bit lines BL and BLB of a certain column in the SRAM array are precharged to a high level first. Afterwards, word lines of multiple SRAM cells in the same column are activated simultaneously, their transmission transistors will be turned on simultaneously, and the voltage of the bit lines will change according to the logic values stored inside the two SRAM cells. When no less than one activated SRAM cell stores a logic value of 0, the voltage on the bit line will drop to a low level; otherwise, the bit line will remain high.
  • Figure 3 is a schematic diagram of a calculation method based on a look-up table (LUT).
  • LUT look-up table
  • bit-line-based computing methods can implement very limited types of logic operations in SRAM arrays, which adds many restrictions to the further implementation of arithmetic operations in storage arrays, so that a large number of operations that can be completed inside the storage array can only be realized through dedicated operation logic near the array.
  • dedicated operation logic does not have general versatility. For scenarios that require different operations, it is necessary to design completely different operational logic circuits around the array, which increases the design cost.
  • the calculation method based on the lookup table can meet the requirements of realizing any logic function, the solution based on the lookup table has a very large area overhead.
  • An n-input lookup table must store all 2 n calculation results, and these results must consume additional computing resources to obtain. However, only a few results of each operation are used, which wastes a lot of external computing resources and storage space.
  • the technical problem pre-solved in this application is how to implement memory logic operation based on SRAM.
  • a logic operation storage unit including a logic operation control circuit, a result storage circuit, a WBL connection terminal, a WBLB connection terminal, and N data storage circuits; wherein, N is an integer greater than 1;
  • the WBL connection end and the WBLB connection end are used to input data signals to be logically operated;
  • the data storage circuit is connected to the WBL connection end and the WBLB connection end, and is used to store the data signal to be logically operated;
  • the logical operation control circuit is connected to the result storage circuit and each of the data storage circuits, and is used to perform logical operation on the data signal to be logically operated stored in the data storage circuit, and store the calculation result data signal obtained by the logical operation in the result storage circuit;
  • Each of the data storage circuits includes a node Q, a node QB, an RBL connection end and an RBLB connection end;
  • the node Q is connected to the WBL connection end, and the node QB is connected to the WBLB connection end, and the node Q and the node QB are used to obtain the data signal to be logically operated from the WBL connection end and the WBLB connection end, and write the data signal to be logically operated into the data storage circuit;
  • the RBL connection end and the RBLB connection end are connected to the logic operation control circuit for reading the data signal to be logically operated from the data storage circuit , and sending the acquired logic operation data signal to the logic operation control circuit;
  • the logic operation control circuit includes a first data reading end, a second data reading end and a result output end; the first data reading end is connected to the RBL connection end of each of the data storage circuits, the second data reading end is connected to the RBLB connection end of each of the data storage circuits, and the first data reading end and the second data reading end are used to read the data signal to be logically operated from the data storage circuit; The data signal is sent to the result storage circuit through the result output terminal;
  • the result storage circuit includes a NORIN connection end and a first common line end, the first common line end is connected to the RBL connection end of each of the data storage circuits, the NORIN connection end is connected to the result output end, and the result storage circuit is used to store the calculation result data signal.
  • a storage array including M logical operation storage units as described in the first aspect; wherein, M is an integer greater than 0.
  • a logic operation memory comprising the storage array and the array logic calculation circuit as described in the second aspect; the array logic calculation circuit is connected to the RBL connection end of each of the logic operation storage units in the storage array, and the array logic calculation circuit obtains the calculation result data signal stored in the result storage circuit through the RBL connection end of each logic operation storage unit, and performs a logic operation on each of the obtained calculation result data signals to obtain an array logic operation result signal.
  • the logic operation storage unit includes a logic operation control circuit, a result storage circuit, a WBL connection terminal, a WBLB connection terminal and N data storage circuits.
  • the WBL connection end and the WBLB connection end are used to input the data signal to be logically operated
  • the data storage circuit is used to store the data signal to be logically operated
  • the logical operation control circuit is used to perform logical operation on the data signal to be logically operated stored in the data storage circuit, and store the calculation result data signal obtained by the logical operation in the result storage circuit.
  • the structure of the logic operation storage unit is to directly map the logic function to be implemented into the storage unit, the specific logic values of the N logic variables in the logic function are determined according to the input, so that all logic functions can be realized while retaining the original read-write and storage characteristics of the storage array.
  • Figure 1 is a schematic diagram of the memory cell circuit structure of 6T SRAM
  • FIG. 2 is a schematic diagram of a calculation method based on bit lines
  • Fig. 3 is a schematic diagram of a calculation method based on a lookup table
  • Fig. 4 is a schematic circuit diagram of a logical operation storage unit in an embodiment
  • Fig. 5 is a schematic circuit diagram of a result storage circuit in an embodiment
  • FIG. 6 is a schematic circuit diagram of a data storage circuit in an embodiment
  • Fig. 7 is a schematic structural diagram of a logical operation memory in another embodiment.
  • connection All include direct and indirect connection (connection).
  • Transistors in this application may be transistors of any structure, such as bipolar junction transistors (BJTs) or field effect transistors (FETs).
  • BJTs bipolar junction transistors
  • FETs field effect transistors
  • the transistor is a bipolar transistor
  • its control pole refers to the gate of the bipolar transistor
  • the first pole can be the collector or emitter of the bipolar transistor
  • the corresponding second pole can be the emitter or collector of the bipolar transistor.
  • the "emitter” and “collector” can be interchanged according to the signal flow direction
  • source” and “drain” can be interchanged according to the direction of signal flow.
  • node Q, node U, node QB and node UB are introduced in this application document to identify the relevant parts of the circuit structure, and they cannot be identified as additional terminals introduced in the circuit.
  • the potential is represented by V DD
  • the unit ground is GND
  • the actual ground is represented by GND
  • the virtual ground is represented by V SS .
  • the present invention proposes an N-input lookup table for realizing arbitrary logic functions based on an in-memory calculation method.
  • the look-up table based on the in-memory calculation method does not require external computing resources to program and deploy the look-up table in advance. It can complete operations only according to instructions like a processor, and at the same time retains the storage characteristics of the SRAM array itself, which can be stored, read and written normally.
  • the present invention enhances the flexibility of the use of the lookup table to a certain extent, improves the use efficiency of the storage space, and reduces the complexity of peripheral special operation logic.
  • the logic operation storage unit in the embodiment of the present application includes a logic operation control circuit, a result storage circuit, a WBL connection terminal, a WBLB connection terminal and N data storage circuits.
  • the WBL connection end and the WBLB connection end are used to input the data signal to be logically operated
  • the data storage circuit is used to store the data signal to be logically operated
  • the logical operation control circuit is used to perform logical operation on the data signal to be logically operated stored in the data storage circuit, and store the calculation result data signal obtained by the logical operation in the result storage circuit.
  • the structure of the logic operation storage unit is to directly map the logic function to be implemented into the storage unit, the specific logic values of the N logic variables in the logic function are determined according to the input, so that all logic functions can be realized while retaining the original read-write and storage characteristics of the storage array.
  • FIG. 4 is a schematic circuit diagram of a logic operation storage unit in an embodiment.
  • the logic operation storage unit includes a logic operation control circuit 1, a result storage circuit 2, a WBL connection end, a WBLB connection end and N data storage circuits 3, wherein N is an integer greater than 1.
  • the WBL connection end and the WBLB connection end are used for inputting data signals to be logically operated.
  • the data storage circuit 3 is connected to the WBL connection terminal and the WBLB connection terminal, and is used for storing data signals to be logically operated.
  • the logical operation control circuit 1 is connected with the result storage circuit 2 and each of the data storage circuits 3, and is used to perform logical operations on the data signals to be logically operated stored in the data storage circuit 3, and store the calculation result data signals obtained by the logical operations in the result storage circuits 2.
  • Each data storage circuit 3 includes a node Q, a node QB, an RBL connection end and an RBLB connection end, the node Q is connected to the WBL connection end, the node QB is connected to the WBLB connection end, and the node Q and the node QB are used to obtain the data signal to be logically operated from the WBL connection end and the WBLB connection end, and write the data signal to be logically operated into the data storage circuit 3.
  • the RBL connection end and the RBLB connection end are connected to the logic operation control circuit 1 for reading the data signal to be logical operation from the data storage circuit 3 and sending the read acquired data signal to the logic operation control circuit 1 .
  • the logical operation control circuit 1 includes a first data reading end, a second data reading end and a result output end, the first data reading end is connected to the RBL connection end of each data storage circuit 3, the second data reading end is connected to the RBLB connection end of each data storage circuit 3, and the first data reading end and the second data reading end are used to read the data signal to be logically operated from the data storage circuit 3.
  • the result output terminal is connected to the result storage circuit 2, and the logical operation control circuit 1 is used to perform logical operation on the read data signal to be logically operated, and send the calculation result data signal obtained by the logical operation to the result storage circuit 2 through the result output terminal.
  • the result storage circuit 2 includes a NORIN connection end and a first common line end, the first common line end is connected to the RBL connection end of each data storage circuit 3, the NORIN connection end is connected to the result output end, and the result storage circuit 2 is used for storing calculation result data signals.
  • the result storage circuit further includes a result input circuit 22, a result reading circuit 23, a first latch 21, a CWL connection terminal, a RWLL connection terminal, a RWLR connection terminal, a node U and a node UB.
  • the CWL connection end is used to input the write control signal CWL
  • the RWLL connection end and the RWLR connection end are used to respectively input the read control signal RWLL and the read control signal RWLR.
  • the first latch 21 includes a transistor P21, a transistor P22, a transistor N21 and a transistor N22, and the first latch 21 is used for storing the calculation result data signal.
  • each transistor includes a first pole, a second pole and a control pole.
  • the control electrode of the transistor P21 is connected to the node UB, the first electrode of the transistor P21 is used for inputting the working voltage signal V DD , and the second electrode of the transistor P21 is connected to the node U.
  • the control electrode of the transistor P22 is connected to the node U, the first electrode of the transistor P22 is used for inputting the working voltage signal V DD , and the second electrode of the transistor P22 is connected to the node UB.
  • the control electrode of the transistor N21 is connected to the node UB, the first electrode of the transistor N21 is connected to the node U, and the second electrode of the transistor N21 is grounded.
  • the control electrode of the transistor N22 is connected to the node U, the first electrode of the transistor N22 is connected to the node UB, and the second electrode of the transistor N22 is grounded.
  • the result input circuit 22 includes a transistor N23, a transistor N24 and a transistor N25.
  • the control electrode of the transistor N23 is connected to the NORIN terminal, the first electrode of the transistor N23 is connected to the first electrode of the transistor N24, and the second electrode of the transistor N23 is connected to the node UB.
  • the control electrode of the transistor N24 is connected to the CWL connection terminal, and the second electrode of the transistor N24 is grounded.
  • the control electrode of the transistor N25 is connected to the CWL connection terminal, the first electrode of the transistor N25 is connected to the NORIN connection terminal, and the second electrode of the transistor N25 is connected to the node U.
  • the result reading circuit 23 includes a transistor N26, a transistor N27, a transistor N28, and a transistor N29.
  • the control electrode of the transistor N26 is connected to the RWLL connection terminal, the first electrode of the transistor N26 is connected to the first electrode of the transistor N27, and the second electrode of the transistor N26 is connected to the RBL connection terminal.
  • the control electrode of the transistor N27 is connected to the node U, and the second electrode of the transistor N27 is grounded.
  • the control electrode of the transistor N28 is connected to the node UB, the first electrode of the transistor N28 is connected to the first electrode of the transistor N29, and the second electrode of the transistor N29 is grounded.
  • the control electrode of the transistor N29 is connected to the RWLR connection terminal, and the second electrode of the transistor N29 is connected to the RBL connection terminal.
  • the data storage circuit includes a data write circuit 33, a second latch 31, a data read circuit 32, an RWL connection end, an RWLB connection end, a WWL connection end, a node Q, and a node QB.
  • the WWL connection end is used to input the write control signal WWL
  • the RWL connection end and the RWLB connection end are used to respectively input the read control signal RWL and the read control signal RWLB.
  • the second latch 31 includes a transistor P31 , a transistor P32 , a transistor N31 and a transistor N32 , and the second latch 31 is used for storing data signals to be logically operated.
  • each transistor includes a first pole, a second pole and a control pole.
  • the control electrode of the transistor P31 is connected to the node QB, the first electrode of the transistor P31 is used for inputting the working voltage signal V DD , and the second electrode of the transistor P31 is connected to the node Q.
  • the control electrode of the transistor P32 is connected to the node Q, the first electrode of the transistor P32 is used for inputting the working voltage signal V DD , and the second electrode of the transistor P32 is connected to the node QB.
  • the control electrode of the transistor N31 is connected to the node QB, the first electrode of the transistor N31 is connected to the node Q, and the second electrode of the transistor N31 is grounded.
  • the control electrode of the transistor N32 is connected to the node Q, the first electrode of the transistor N32 is connected to the node QB, and the second electrode of the transistor N32 is grounded.
  • the data writing circuit 32 includes a transistor N33 and a transistor N34.
  • the control electrode of the transistor N33 is connected to the WWL terminal, the first electrode of the transistor N33 is connected to the WBLB terminal, and the second electrode of the transistor N33 is connected to the node QB.
  • the control electrode of the transistor N34 is connected to the WWL connection terminal, the first electrode of the transistor N34 is connected to the WBL connection terminal, and the second electrode of the transistor N33 is connected to the node Q.
  • the data reading circuit 33 includes a transistor N35, a transistor N36, a transistor N37, and a transistor N38.
  • the control electrode of the transistor N35 is connected to the node QB, the first electrode of the transistor N35 is connected to the first electrode of the transistor N36, and the second electrode of the transistor N35 is grounded.
  • the control electrode of the transistor N36 is connected to the RWL connection terminal, and the second electrode of the transistor N36 is connected to the RBL connection terminal.
  • the control electrode of the transistor N37 is connected to the node Q, the first electrode of the transistor N37 is connected to the first electrode of the transistor N38, and the second electrode of the transistor N37 is grounded.
  • the control electrode of the transistor N38 is connected to the RWLB connection terminal, and the second electrode of the transistor N38 is connected to the RBLB connection terminal.
  • the logical operation control 1 circuit also includes a first driver, a second driver and a NOR gate circuit.
  • the two input terminals of the NOR gate circuit are respectively connected with the first data reading terminal and the second data reading terminal, and the output terminal of the NOR gate circuit is connected with the NORIN connection terminal.
  • the output end of the first driver is connected to the first data reading end, and the output end of the second driver is connected to the second data reading end.
  • the first driver is used for inputting logic operation control signals to the first data reading end.
  • the second driver is used for inputting logic operation control signals to the second data reading end.
  • the application discloses a logic operation storage unit, which includes a logic operation control circuit, a result storage circuit, a WBL connection terminal, a WBLB connection terminal and N data storage circuits.
  • the WBL connection end and the WBLB connection end are used to input the data signal to be logically operated
  • the data storage circuit is used to store the data signal to be logically operated
  • the logical operation control circuit is used to perform logical operation on the data signal to be logically operated stored in the data storage circuit, and store the calculation result data signal obtained by the logical operation in the result storage circuit.
  • the structure of the logic operation storage unit is to directly map the logic function to be implemented into the storage unit, the specific logic values of the N logic variables in the logic function are determined according to the input, so that all logic functions can be realized while retaining the original read-write and storage characteristics of the storage array.
  • FIG. 7 is a schematic structural diagram of a logic operation memory in another embodiment.
  • a storage array is disclosed.
  • the storage array 100 includes M logic operation storage units disclosed in Embodiment 1, where M is an integer greater than 0. In one embodiment, M ⁇ 2 N-2 .
  • the present application discloses a logic operation memory, which includes the storage array 100 and the array logic calculation circuit 200 as described above.
  • the array logic calculation circuit 200 is connected to the RBL connection end of each logic operation storage unit 110 in the storage array 100, the array logic calculation circuit 200 obtains the calculation result data signal stored in the result storage circuit through the RBL connection end of each logic operation storage unit 110, and performs logic operation on each obtained calculation result data signal to obtain the array logic operation result signal.
  • the array logic calculation circuit 200 includes a TWL connection terminal, M array data acquisition circuits 210 and an array logic operation result output circuit 220 .
  • the TWL connection end is used for inputting the logic operation control signal TWL.
  • Each array data acquisition circuit 210 corresponds to one logical operation storage unit 110 .
  • the array data acquisition circuit 210 includes a transistor N41 and a transistor N42.
  • the control pole of the transistor N41 is connected to the RBL connection terminal of the logic operation storage unit 110 corresponding to the array data acquisition circuit 210, the first pole of the transistor N41 is connected to the array logic operation result output circuit 220, the second pole of the transistor N41 is connected to the first pole of the transistor N42, the control pole of the transistor N42 is connected to the TWL connection terminal, and the second pole of the transistor N42 is grounded.
  • the array logic operation result output circuit 220 includes a signal amplifier SA, the input terminal of the signal amplifier SA is connected to the first pole of the transistor N41 of each array data acquisition circuit 210, and the output terminal of the signal amplifier SA is used to output the array logic operation result signal.
  • the signal amplifier SA includes a first output terminal and a second output terminal, the first output terminal of the signal amplifier SA is used to output the array logic operation result signal, and the second output terminal of the signal amplifier SA is used to output the inversion signal of the array logic operation result signal.
  • a look-up table (LUT) consists of three SRAM cells sharing a bit line, a NOR gate, and write drivers for two bit lines.
  • N 2 as an example.
  • a look-up table (LUT) consists of three SRAM cells sharing a bit line, a NOR gate, and write drivers for two bit lines.
  • the three SRAM cells sharing a bit line there are two data storage circuits (10T unit for short) as shown in FIG. 5 and one result storage circuit (11T unit for short) as shown in FIG. 6 .
  • the write word line WWL in Figure 6 is the write word line of the 10T SRAM unit, that is, the control signal of the write port.
  • RWL and RWLB are the read word lines of the 10T unit, that is, the control signals of the read port.
  • a total of 4 word lines input to 2 10T cells in the LUT are independent of each other.
  • the two variables of the logic function will be mapped one by one to the two 10T units contained in the 2-input LUT during calculation.
  • the 2-input LUT can generate a total of 16 logic functions, covering all possible truth tables of 2-variable logic functions. The logic operations required by these functions can be roughly divided into the following three parts:
  • the precharged bit line will decide whether to discharge according to the data stored in the 10T cell.
  • the two storage nodes of the first 10T unit as shown in Figure 4 are Q1 and QB1 respectively
  • the Q1 node stores the logical variable A
  • the QB1 stores
  • the two storage nodes of the second 10T unit are Q2 and QB2 respectively
  • the Q2 node stores the logic variable B
  • the logical value A stored by Q1 is read to the RBL, and the logical value stored by QB1 Read to RBLB. so that we can get The result of two logical operations; similarly, by opening the read port of the read port RWLR of the 11T unit, it can be obtained the result of. If the read ports on the same side of the two 10T units in the LUT unit are activated at the same time, the RBL/RBLB will discharge according to the data stored in the two cells.
  • the logical operation memory in the embodiment of the present application includes a storage array with a size of M columns (M ⁇ 2 N-2 ) and N rows, where each column is based on a 2-input LUT with N-2 10T units added.
  • These additional 10T cells have a row-shared double word line RWLL/RWLR, where RWLL is shared by the left read port (connected to the RBL of each column) of all 10T cells in the same row, and RWLR is shared by the right read port (connected to the RBLB of each column) of all 10T SRAM cells.
  • RWLL/RWLR row-shared double word line
  • RWLL is shared by the left read port (connected to the RBL of each column) of all 10T cells in the same row
  • RWLR is shared by the right read port (connected to the RBLB of each column) of all 10T SRAM cells.
  • TBL bottom lateral bit line
  • the transpose read port is controlled by a shared word line TWL.
  • a single-ended sense amplifier is connected to the end of the transverse bit line TBL for rapidly reading out the calculation result.
  • Such an array can implement all N-variable logic functions, that is, the array is an N-variable LUT.
  • mapping rules are as follows: first write the logic function into the simplest "and or” formula, and then map each "and” item of the "and or” formula to the 10T unit of each column in the array.
  • the 11T unit is only used as a result operation unit, and it is not allowed to map logic variables when implementing logic functions.
  • there is no difference between the two 10T units contained in the 2-input LUT and the other 10T units in the column in the variable mapping that is, the position in the column where the variable contained in the "AND" item is mapped does not affect the final calculation result.
  • the read bit lines RBL/RBLB of all columns are precharged first, and then the 2-input LUT part performs an "AND” operation according to the aforementioned operation flow.
  • the left read port word line RWLL of all other 10T cells is activated at the same time, and the RBL will discharge according to the data stored in all 10T cells, which is equivalent to completing the "AND” operation of all logic variables in the "AND” item, and the operation result is retained on the RBL.
  • the RBL of each column in the array is loaded with the results of each "AND” item. Subsequently, the transposed bit line TBL starts precharging. After the TBL is precharged to a high level, the TWL is activated, and the TBL will be discharged according to the voltage on each column RBL (that is, the calculation result of each "AND” item). When one or more RBLs are high, the TBL will discharge. This is equivalent to "NOR" the data loaded on each RBL.
  • the N-input LUT can be regarded as a complete SRAM array as a whole, and the array still has normal read and write functions that a general SRAM array has.
  • the read bit line RBL/RBLB corresponding to the column where the cell is located is firstly precharged. If the unit to be read is a unit in a 2-input LUT, then the two independent word lines of the unit are activated at the same time, and the value stored in the unit is read to the bit line; if the unit to be read is another 10T unit, the two word lines RWLL/RWLR of the row where the unit is located are activated at the same time, and the value stored in the unit is read to the bit line. Subsequently, TBL is precharged, TWL is activated, and the sense amplifier connected to TBL outputs the value read.
  • the cell to be written When writing to a certain cell in the array, if the cell to be written is a 10T cell, first load the data to be written to the write bit line WBL/WBLB of the column where the cell is located. Then activate the word line WWL of the write port, and write the data to the storage node of the unit through the transmission tube; if the unit to be written is an 11T SRAM unit, it can be divided into two situations according to the written logic value: when it is necessary to write "0", charge the read bit line RBL/RBLB to high level, turn on the write word line CWL in the 11T unit, and then write "0" into the 11T unit. When it is necessary to write "1”, the read bit lines RBL/RBLB are all loaded with "0", and the CWL is turned on, and "1" can be written into the 11T unit.
  • This application proposes a two-input look-up table that realizes all two-variable logic functions (sixteen types in total) based on an in-memory calculation method instead of a traditional memory access method.
  • an N-input look-up table that can realize logic functions with any number of variables is developed. What the traditional N-input lookup table stores are all 2 N possible results corresponding to a certain certain N variable logic function, and the lookup table structure proposed by the application directly maps the logic function itself to be realized in the storage unit, and the specific logic values of the N logic variables in the logic function are determined according to the input.
  • the look-up table proposed in this application retains the original read-write and storage characteristics of the storage array while realizing all logic functions.

Abstract

Disclosed in the present application are a logical operation storage unit, a storage array and a logical operation memory. The logical operation storage unit comprises a logical operation control circuit, a result storage circuit, a WBL connecting end, a WBLB connecting end and N data storage circuits. The WBL connecting end and the WBLB connecting end are used for inputting data signals to be subjected to logical operation, the data storage circuits are used for storing said data signals, and the logical operation control circuit is used for performing a logical operation on said data signals stored in the data storage circuits, and storing, in the result storage circuit, a calculation result data signal acquired by means of logical operation. The structure of the logical operation storage unit involves directly mapping, to the storage unit, a logical function that needs to be realized, and specific logical values of N logical variables in the logical function are determined according to the input, such that all logical functions are realized, and the original read-write and storage characteristics of the storage array can also be retained.

Description

一种逻辑运算存储单元、存储阵列和逻辑运算存储器A logical operation storage unit, a storage array and a logical operation memory 技术领域technical field
本发明涉及存储设备技术领域,具体涉及一种逻辑运算存储单元、存储阵列和逻辑运算存储器。The invention relates to the technical field of storage devices, in particular to a logical operation storage unit, a storage array and a logical operation memory.
背景技术Background technique
当前的计算机架构是传统的冯·诺依曼架构。这种架构是把运算单元和存储单元分开,数据需要先被从存储单元中读取出来,再放在运算单元中进行运算。随着半导体工艺的发展,数据在存储和运算单元之间传输的通道已经变成了计算机整体性能和功耗的瓶颈。为了打破这一瓶颈,一种名为存内计算的计算范式出现了。SRAM作为高速缓存的主要组成部分,基于其的存内计算(Compute-in Memory)成为了研究者的重点研究对象,其中就包括在SRAM阵列上实现逻辑运算的方法。现有的静态随机存储器(Static Random Access Memory,SRAM)主要是基于6管结构或8管结构,请参考图1,为6T SRAM的存储单元电路结构示意图,8T SRAM是指由六个晶体管组成的存储单元,该SRAM中的每一bit存储在由4个场效应管(M1、M2、M3和M4)构成两个交叉耦合的反相器中。另外两个场效应管(M5和M6)是存储单元用于读写的位线(Bit Line)的控制开关。一个SRAM的基本存储单元有0and 1两个电平稳定状态,是由两个CMOS反相器组成,这两个反相器的输入、输出交叉连接,即第一个反相器的输出连接第二个反相器的输入,第二个反相器的输出连接第一个反相器的输入。这实现了两个反相器的输出状态的锁定、保存,即存储了1个位元的状态。访问SRAM时,字线(Word Line)加高电平,使得每个基本单元的两个控制开关用的晶体管M5与M6开通,把基本单元与位线(Bit Line)连通。位线用于读或写基本单元的保存的状态。虽然不是必须两条取反的位线,但是这种取反的位线有助于改善噪声容限。除了六管的SRAM,其他SRAM还有八管、十管甚至每个位元使用更多的晶体管的实现。The current computer architecture is the traditional von Neumann architecture. This architecture separates the computing unit from the storage unit, and the data needs to be read from the storage unit first, and then placed in the computing unit for calculation. With the development of semiconductor technology, the channel for data transmission between storage and computing units has become the bottleneck of the overall performance and power consumption of the computer. In order to break this bottleneck, a computing paradigm called in-memory computing has emerged. As the main component of cache memory, SRAM has become a key research object for researchers based on Compute-in Memory, including the method of implementing logic operations on SRAM arrays. The existing Static Random Access Memory (SRAM) is mainly based on a 6-tube structure or an 8-tube structure. Please refer to Figure 1, which is a schematic diagram of the memory cell circuit structure of a 6T SRAM. An 8T SRAM refers to a memory cell composed of six transistors. Each bit in the SRAM is stored in two cross-coupled inverters composed of four field effect transistors (M1, M2, M3, and M4). The other two field effect transistors (M5 and M6) are the control switches of the bit line (Bit Line) used by the memory cell for reading and writing. The basic storage unit of a SRAM has two stable states of 0 and 1. It is composed of two CMOS inverters. The input and output of the two inverters are cross-connected, that is, the output of the first inverter is connected to the input of the second inverter, and the output of the second inverter is connected to the input of the first inverter. This realizes the locking and saving of the output states of the two inverters, that is, the state of 1 bit is stored. When accessing the SRAM, the word line (Word Line) is high, so that the two control switch transistors M5 and M6 of each basic unit are turned on, and the basic unit is connected to the bit line (Bit Line). The bit lines are used to read or write the saved state of the elementary cell. Although two inverted bit lines are not necessary, such inverted bit lines help improve noise margins. In addition to six-tube SRAM, other SRAMs also have eight-tube, ten-tube or even more transistors per bit.
目前,在SRAM阵列上实现逻辑运算的方法主要有两种,分别是基于位线的计算方法和基于查找表(LUT)的计算方法。At present, there are mainly two methods for implementing logic operations on the SRAM array, namely, a calculation method based on bit lines and a calculation method based on a look-up table (LUT).
请参考图2,为基于位线的计算方法示意图,这类计算方法可以利用传统的6T SRAM单元实现,也可以使用8T、10T单元实现。SRAM阵列中某列的位线BL、BLB先被预充至高电平。此后,在同一列上的多个SRAM单元的字线被同时激活,其传输管将同时打开,而位线的电压将会根据两个SRAM单元内部存储的逻辑值 变化。当有不少于一个被激活的SRAM单元存储的逻辑值为0时,位线上的电压将会降为低电平;反之位线上将会保持高电平。稳定后的BL上的电压和SRAM存储逻辑值的关系是“与”,而BLB上的电压和SRAM存储逻辑值的关系是“或非”。如果在BL和BLB末端各接一个单端灵敏放大器,我们就可以迅速地得到本列任意个单元的“与”和“或非”两种逻辑运算的结果。利用8T SRAM单元实现了这两种逻辑功能,借助字线激活脉冲和非对称反相器等设计技巧实现了“与非”、“异或”和“蕴含”等逻辑操作。利用集成在存储阵列附近的一些组合逻辑和时序逻辑电路,如异或门、行波进位加法器、移位寄存器等,基于比特串行/并行实现了一些简单的算术运算,如加法和乘法等。Please refer to Figure 2, which is a schematic diagram of a calculation method based on bit lines. This type of calculation method can be implemented using traditional 6T SRAM cells, or 8T and 10T cells. The bit lines BL and BLB of a certain column in the SRAM array are precharged to a high level first. Afterwards, word lines of multiple SRAM cells in the same column are activated simultaneously, their transmission transistors will be turned on simultaneously, and the voltage of the bit lines will change according to the logic values stored inside the two SRAM cells. When no less than one activated SRAM cell stores a logic value of 0, the voltage on the bit line will drop to a low level; otherwise, the bit line will remain high. The relationship between the voltage on the stabilized BL and the logic value stored in the SRAM is "AND", while the relationship between the voltage on the BLB and the logic value stored in the SRAM is "NOR". If a single-ended sense amplifier is connected to the ends of BL and BLB, we can quickly obtain the results of the two logical operations of "AND" and "NOR" of any unit in this column. These two logic functions are realized by using 8T SRAM cells, and logical operations such as "AND", "XOR" and "implication" are realized by means of design techniques such as word line activation pulse and asymmetric inverter. Using some combinational logic and sequential logic circuits integrated near the storage array, such as XOR gates, ripple carry adders, shift registers, etc., some simple arithmetic operations, such as addition and multiplication, are realized based on bit serial/parallel.
请参考图3,为基于查找表(LUT)的计算方法示意图,RAM阵列中存储的不是原始的输入数据,而是目标运算能够得到的所有可能结果,输入数据此时被看成地址信号,用于寻址对应的结果。从LUT中读取的结果可以送入阵列外围的专用逻辑电路进行进一步的处理。因为基于LUT的计算方法并不在SRAM阵列中产生结果,而只是把计算好的结果进行简单的读写,因此它相比基于位线的计算方法有更低的功耗和面积开销。Please refer to Figure 3, which is a schematic diagram of a calculation method based on a look-up table (LUT). What is stored in the RAM array is not the original input data, but all possible results that can be obtained by the target operation. The input data is now regarded as an address signal and used to address the corresponding results. The results read from the LUTs can be fed into dedicated logic circuits on the periphery of the array for further processing. Because the calculation method based on the LUT does not produce the result in the SRAM array, but simply reads and writes the calculated result, it has lower power consumption and area overhead than the calculation method based on the bit line.
在上述两种基于SRAM阵列实现逻辑运算方法都存在一些问题。例如,基于位线的计算方法能在SRAM阵列中实现逻辑运算的种类非常有限,这为进一步在存储阵列中实现算术运算增添了许多限制,使得大量本能够在存储阵列内部完成的运算只能通过阵列附近的专用运算逻辑来实现。这些专用运算逻辑虽然速度较快,但严重增加了外围电路的面积。此外,专用运算逻辑不具有通用性。对于需要不同运算的场景,需要在阵列周围设计完全不同的运算逻辑电路,增加了设计成本;还例如,基于查找表的计算方法尽管其可以满足实现任意逻辑功能的需求,但基于查找表的方案具有非常大的面积开销,一个n输入的查找表必须存储所有2 n个计算结果,这些结果必须消耗额外的计算资源才能够得到。而每一次运算只有少数几个结果被使用,浪费了大量的外部计算资源和存储空间。 There are some problems in the above two methods of implementing logic operations based on the SRAM array. For example, bit-line-based computing methods can implement very limited types of logic operations in SRAM arrays, which adds many restrictions to the further implementation of arithmetic operations in storage arrays, so that a large number of operations that can be completed inside the storage array can only be realized through dedicated operation logic near the array. Although these special operation logics are fast, they seriously increase the area of peripheral circuits. In addition, dedicated operation logic does not have general versatility. For scenarios that require different operations, it is necessary to design completely different operational logic circuits around the array, which increases the design cost. For example, although the calculation method based on the lookup table can meet the requirements of realizing any logic function, the solution based on the lookup table has a very large area overhead. An n-input lookup table must store all 2 n calculation results, and these results must consume additional computing resources to obtain. However, only a few results of each operation are used, which wastes a lot of external computing resources and storage space.
发明内容Contents of the invention
本申请预解决的技术问题是基于SRAM如何实现内存逻辑运算。The technical problem pre-solved in this application is how to implement memory logic operation based on SRAM.
根据第一方面,提供一种逻辑运算存储单元,包括逻辑运算控制电路、结果存储电路、WBL连接端、WBLB连接端和N个数据存储电路;其中,N为大于1的整数;According to the first aspect, there is provided a logic operation storage unit, including a logic operation control circuit, a result storage circuit, a WBL connection terminal, a WBLB connection terminal, and N data storage circuits; wherein, N is an integer greater than 1;
所述WBL连接端和所述WBLB连接端用于输入待逻辑运算数据信号;The WBL connection end and the WBLB connection end are used to input data signals to be logically operated;
所述数据存储电路与所述WBL连接端和所述WBLB连接端连接,用于存储所述待逻辑运算数据信号;The data storage circuit is connected to the WBL connection end and the WBLB connection end, and is used to store the data signal to be logically operated;
所述逻辑运算控制电路与所述结果存储电路和每个所述数据存储电路连接,用于对所述数据存储电路中存储的所述待逻辑运算数据信号进行逻辑运算,并将逻辑运算获取的计算结果数据信号存储在所述结果存储电路中;The logical operation control circuit is connected to the result storage circuit and each of the data storage circuits, and is used to perform logical operation on the data signal to be logically operated stored in the data storage circuit, and store the calculation result data signal obtained by the logical operation in the result storage circuit;
每个所述数据存储电路包括节点Q、节点QB、RBL连接端和RBLB连接端;所述节点Q与所述WBL连接端连接,所述节点QB与所述WBLB连接端连接,所述节点Q和所述节点QB用于从所述WBL连接端和所述WBLB连接端获取待逻辑运算数据信号,并将所述待逻辑运算数据信号写入所述数据存储电路;所述RBL连接端和RBLB连接端与所述逻辑运算控制电路连接,用于从所述数据存储电路读取所述待逻辑运算数据信号,并将读取获取的所述待逻辑运算数据信号发送给所述逻辑运算控制电路;Each of the data storage circuits includes a node Q, a node QB, an RBL connection end and an RBLB connection end; the node Q is connected to the WBL connection end, and the node QB is connected to the WBLB connection end, and the node Q and the node QB are used to obtain the data signal to be logically operated from the WBL connection end and the WBLB connection end, and write the data signal to be logically operated into the data storage circuit; the RBL connection end and the RBLB connection end are connected to the logic operation control circuit for reading the data signal to be logically operated from the data storage circuit , and sending the acquired logic operation data signal to the logic operation control circuit;
所述逻辑运算控制电路包括第一数据读取端、第二数据读取端和结果输出端;所述第一数据读取端与每个所述数据存储电路的RBL连接端连接,所述第二数据读取端与每个所述数据存储电路的RBLB连接端连接,所述第一数据读取端和所述第二数据读取端用于从所述数据存储电路中读取所述待逻辑运算数据信号;所述结果输出端与所述结果存储电路连接,所述逻辑运算控制电路用于对读取的所述待逻辑运算数据信号进行逻辑运算,并将逻辑运算获取的所述计算结果数据信号通过所述结果输出端发送给所述结果存储电路;The logic operation control circuit includes a first data reading end, a second data reading end and a result output end; the first data reading end is connected to the RBL connection end of each of the data storage circuits, the second data reading end is connected to the RBLB connection end of each of the data storage circuits, and the first data reading end and the second data reading end are used to read the data signal to be logically operated from the data storage circuit; The data signal is sent to the result storage circuit through the result output terminal;
所述结果存储电路包括NORIN连接端和第一共线端,所述第一共线端与每个所述数据存储电路的RBL连接端连接,所述NORIN连接端与所述结果输出端连接,所述结果存储电路用于存储所述计算结果数据信号。The result storage circuit includes a NORIN connection end and a first common line end, the first common line end is connected to the RBL connection end of each of the data storage circuits, the NORIN connection end is connected to the result output end, and the result storage circuit is used to store the calculation result data signal.
根据第二方面,提供一种存储阵列,包括M个如第一方面所述的逻辑运算存储单元;其中,M为大于0的整数。According to the second aspect, there is provided a storage array, including M logical operation storage units as described in the first aspect; wherein, M is an integer greater than 0.
根据第三方面,提供一种逻辑运算存储器,包括如第二方面所述的存储阵列和阵列逻辑计算电路;所述阵列逻辑计算电路与所述存储阵列中的每个所述逻辑运算存储单元的RBL连接端连接,所述阵列逻辑计算电路通过每个所述逻辑运算存储单元的RBL连接端获取所述结果存储电路存储的所述计算结果数据信号,并对获取的每个所述计算结果数据信号进行逻辑运算,以获取阵列逻辑运算结果信号。According to a third aspect, there is provided a logic operation memory, comprising the storage array and the array logic calculation circuit as described in the second aspect; the array logic calculation circuit is connected to the RBL connection end of each of the logic operation storage units in the storage array, and the array logic calculation circuit obtains the calculation result data signal stored in the result storage circuit through the RBL connection end of each logic operation storage unit, and performs a logic operation on each of the obtained calculation result data signals to obtain an array logic operation result signal.
依据上述实施例的逻辑运算存储单元,包括逻辑运算控制电路、结果存储电路、WBL连接端、WBLB连接端和N个数据存储电路。WBL连接端和WBLB连接 端用于输入待逻辑运算数据信号,数据存储电路用于存储待逻辑运算数据信号,逻辑运算控制电路用于对数据存储电路中存储的待逻辑运算数据信号进行逻辑运算,并将逻辑运算获取的计算结果数据信号存储在结果存储电路中。由于逻辑运算存储单元的结构是将需要实现的逻辑函数本身直接映射到存储单元中,逻辑函数中的N个逻辑变量的具体逻辑值根据输入确定,进而使得实现全部逻辑功能的同时,还能保留存储阵列原有的读写和存储特性。The logic operation storage unit according to the above embodiment includes a logic operation control circuit, a result storage circuit, a WBL connection terminal, a WBLB connection terminal and N data storage circuits. The WBL connection end and the WBLB connection end are used to input the data signal to be logically operated, the data storage circuit is used to store the data signal to be logically operated, and the logical operation control circuit is used to perform logical operation on the data signal to be logically operated stored in the data storage circuit, and store the calculation result data signal obtained by the logical operation in the result storage circuit. Since the structure of the logic operation storage unit is to directly map the logic function to be implemented into the storage unit, the specific logic values of the N logic variables in the logic function are determined according to the input, so that all logic functions can be realized while retaining the original read-write and storage characteristics of the storage array.
附图说明Description of drawings
图1为6T SRAM的存储单元电路结构示意图;Figure 1 is a schematic diagram of the memory cell circuit structure of 6T SRAM;
图2为基于位线的计算方法示意图;FIG. 2 is a schematic diagram of a calculation method based on bit lines;
图3为基于查找表的计算方法示意图;Fig. 3 is a schematic diagram of a calculation method based on a lookup table;
图4为一种实施例中逻辑运算存储单元的电路示意图;Fig. 4 is a schematic circuit diagram of a logical operation storage unit in an embodiment;
图5为一种实施例中结果存储电路的电路示意图;Fig. 5 is a schematic circuit diagram of a result storage circuit in an embodiment;
图6为一种实施例中数据存储电路的电路示意图;6 is a schematic circuit diagram of a data storage circuit in an embodiment;
图7为另一种实施例中逻辑运算存储器的结构示意图。Fig. 7 is a schematic structural diagram of a logical operation memory in another embodiment.
具体实施方式Detailed ways
下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。The present invention will be further described in detail below through specific embodiments in conjunction with the accompanying drawings. Wherein, similar elements in different implementations adopt associated similar element numbers. In the following implementation manners, many details are described for better understanding of the present application. However, those skilled in the art can readily recognize that some of the features can be omitted in different situations, or can be replaced by other elements, materials, and methods. In some cases, some operations related to the present application are not shown or described in the description. This is to avoid the core part of the present application from being overwhelmed by too many descriptions. For those skilled in the art, it is not necessary to describe these related operations in detail. They can fully understand the related operations according to the description in the description and general technical knowledge in the field.
另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。In addition, the characteristics, operations or characteristics described in the specification can be combined in any appropriate manner to form various embodiments. At the same time, the steps or actions in the method description can also be exchanged or adjusted in a manner obvious to those skilled in the art. Therefore, the various sequences in the specification and drawings are only for clearly describing a certain embodiment, and do not mean a necessary sequence, unless otherwise stated that a certain sequence must be followed.
本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本申请所说“连接”、“联接”,如无特别说 明,均包括直接和间接连接(联接)。The serial numbers assigned to components in this document, such as "first", "second", etc., are only used to distinguish the described objects, and do not have any sequence or technical meaning. And the application said "connection", "connection", if not specified, all include direct and indirect connection (connection).
下面先对本申请所涉及到的一些术语作一个说明。Firstly, some terms involved in this application will be explained below.
本申请中的晶体管可以是任何结构的晶体管,比如双极型晶体管(BJT)或者场效应晶体管(FET)。当晶体管为双极型晶体管时,其控制极是指双极型晶体管的栅极,第一极可以为双极型晶体管的集电极或发射极,对应的第二极可以为双极型晶体管的发射极或集电极,在实际应用过程中,“发射极”和“集电极”可以依据信号流向而互换;当晶体管为场效应晶体管时,其控制极是指场效应晶体管的栅极,第一极可以为场效应晶体管的漏极或源极,对应的第二极可以为场效应晶体管的源极或漏极,在实际应用过程中,“源极”和“漏极”可以依据信号流向而互换。需要说明的是,为了描述方便,也为了使本领域技术人员更清楚地理解本申请的技术方案,本申请文件中引入节点Q、节点U、节点QB和节点UB对电路结构相关部分进行标识,不能认定为电路中额外引入的端子。为描述方便,电位采用V DD表示,单元接地端为GND,实际接地端采用GND表示,虚接地端采用V SS表示。 Transistors in this application may be transistors of any structure, such as bipolar junction transistors (BJTs) or field effect transistors (FETs). When the transistor is a bipolar transistor, its control pole refers to the gate of the bipolar transistor, the first pole can be the collector or emitter of the bipolar transistor, and the corresponding second pole can be the emitter or collector of the bipolar transistor. In practical applications, the "emitter" and "collector" can be interchanged according to the signal flow direction; In practical applications, "source" and "drain" can be interchanged according to the direction of signal flow. It should be noted that, for the convenience of description and for those skilled in the art to understand the technical solution of this application more clearly, the node Q, node U, node QB and node UB are introduced in this application document to identify the relevant parts of the circuit structure, and they cannot be identified as additional terminals introduced in the circuit. For the convenience of description, the potential is represented by V DD , the unit ground is GND, the actual ground is represented by GND, and the virtual ground is represented by V SS .
为了扩充SRAM阵列能够实现的逻辑功能,本发明提出了一种基于存内计算方式实现任意逻辑函数的N输入查找表。基于存内计算方式的查找表无需外部的计算资源对查找表进行提前编程和部署,可以像处理器一样只根据指令完成运算,同时还保留了SRAM阵列本身具有的存储特性,可以正常地进行存储、读取和写入。与现有的SRAM逻辑运算方案相比,本发明在一定程度上增强了查找表使用的灵活性,提高了存储空间的使用效率,降低了外围专用运算逻辑的复杂程度。In order to expand the logic functions that can be realized by the SRAM array, the present invention proposes an N-input lookup table for realizing arbitrary logic functions based on an in-memory calculation method. The look-up table based on the in-memory calculation method does not require external computing resources to program and deploy the look-up table in advance. It can complete operations only according to instructions like a processor, and at the same time retains the storage characteristics of the SRAM array itself, which can be stored, read and written normally. Compared with the existing SRAM logic operation scheme, the present invention enhances the flexibility of the use of the lookup table to a certain extent, improves the use efficiency of the storage space, and reduces the complexity of peripheral special operation logic.
在本申请实施例中的逻辑运算存储单元,包括逻辑运算控制电路、结果存储电路、WBL连接端、WBLB连接端和N个数据存储电路。WBL连接端和WBLB连接端用于输入待逻辑运算数据信号,数据存储电路用于存储待逻辑运算数据信号,逻辑运算控制电路用于对数据存储电路中存储的待逻辑运算数据信号进行逻辑运算,并将逻辑运算获取的计算结果数据信号存储在结果存储电路中。由于逻辑运算存储单元的结构是将需要实现的逻辑函数本身直接映射到存储单元中,逻辑函数中的N个逻辑变量的具体逻辑值根据输入确定,进而使得实现全部逻辑功能的同时,还能保留存储阵列原有的读写和存储特性。The logic operation storage unit in the embodiment of the present application includes a logic operation control circuit, a result storage circuit, a WBL connection terminal, a WBLB connection terminal and N data storage circuits. The WBL connection end and the WBLB connection end are used to input the data signal to be logically operated, the data storage circuit is used to store the data signal to be logically operated, and the logical operation control circuit is used to perform logical operation on the data signal to be logically operated stored in the data storage circuit, and store the calculation result data signal obtained by the logical operation in the result storage circuit. Since the structure of the logic operation storage unit is to directly map the logic function to be implemented into the storage unit, the specific logic values of the N logic variables in the logic function are determined according to the input, so that all logic functions can be realized while retaining the original read-write and storage characteristics of the storage array.
实施例1:Example 1:
请参照图4,为一种实施例中逻辑运算存储单元的电路示意图,逻辑运算存 储单元包括逻辑运算控制电路1、结果存储电路2、WBL连接端、WBLB连接端和N个数据存储电路3,其中,N为大于1的整数。WBL连接端和WBLB连接端用于输入待逻辑运算数据信号。数据存储电路3与WBL连接端和WBLB连接端连接,用于存储待逻辑运算数据信号。逻辑运算控制电路1与结果存储电路2和每个所述数据存储电路3连接,用于对数据存储电路3中存储的待逻辑运算数据信号进行逻辑运算,并将逻辑运算获取的计算结果数据信号存储在结果存储电路2中。每个数据存储电路3包括节点Q、节点QB、RBL连接端和RBLB连接端,节点Q与WBL连接端连接,节点QB与WBLB连接端连接,节点Q和节点QB用于从WBL连接端和WBLB连接端获取待逻辑运算数据信号,并将待逻辑运算数据信号写入数据存储电路3。RBL连接端和RBLB连接端与逻辑运算控制电路1连接,用于从数据存储电路3读取待逻辑运算数据信号,并将读取获取的待逻辑运算数据信号发送给逻辑运算控制电路1。逻辑运算控制电路1包括第一数据读取端、第二数据读取端和结果输出端,第一数据读取端与每个数据存储电路3的RBL连接端连接,第二数据读取端与每个数据存储电路3的RBLB连接端连接,第一数据读取端和第二数据读取端用于从数据存储电路3中读取待逻辑运算数据信号。结果输出端与结果存储电路2连接,逻辑运算控制电路1用于对读取的待逻辑运算数据信号进行逻辑运算,并将逻辑运算获取的计算结果数据信号通过结果输出端发送给结果存储电路2。结果存储电路2包括NORIN连接端和第一共线端,第一共线端与每个数据存储电路3的RBL连接端连接,NORIN连接端与结果输出端连接,结果存储电路2用于存储计算结果数据信号。Please refer to FIG. 4 , which is a schematic circuit diagram of a logic operation storage unit in an embodiment. The logic operation storage unit includes a logic operation control circuit 1, a result storage circuit 2, a WBL connection end, a WBLB connection end and N data storage circuits 3, wherein N is an integer greater than 1. The WBL connection end and the WBLB connection end are used for inputting data signals to be logically operated. The data storage circuit 3 is connected to the WBL connection terminal and the WBLB connection terminal, and is used for storing data signals to be logically operated. The logical operation control circuit 1 is connected with the result storage circuit 2 and each of the data storage circuits 3, and is used to perform logical operations on the data signals to be logically operated stored in the data storage circuit 3, and store the calculation result data signals obtained by the logical operations in the result storage circuits 2. Each data storage circuit 3 includes a node Q, a node QB, an RBL connection end and an RBLB connection end, the node Q is connected to the WBL connection end, the node QB is connected to the WBLB connection end, and the node Q and the node QB are used to obtain the data signal to be logically operated from the WBL connection end and the WBLB connection end, and write the data signal to be logically operated into the data storage circuit 3. The RBL connection end and the RBLB connection end are connected to the logic operation control circuit 1 for reading the data signal to be logical operation from the data storage circuit 3 and sending the read acquired data signal to the logic operation control circuit 1 . The logical operation control circuit 1 includes a first data reading end, a second data reading end and a result output end, the first data reading end is connected to the RBL connection end of each data storage circuit 3, the second data reading end is connected to the RBLB connection end of each data storage circuit 3, and the first data reading end and the second data reading end are used to read the data signal to be logically operated from the data storage circuit 3. The result output terminal is connected to the result storage circuit 2, and the logical operation control circuit 1 is used to perform logical operation on the read data signal to be logically operated, and send the calculation result data signal obtained by the logical operation to the result storage circuit 2 through the result output terminal. The result storage circuit 2 includes a NORIN connection end and a first common line end, the first common line end is connected to the RBL connection end of each data storage circuit 3, the NORIN connection end is connected to the result output end, and the result storage circuit 2 is used for storing calculation result data signals.
请参考图5,为一种实施例中结果存储电路的电路示意图,一实施例中,结果存储电路还包括结果输入电路22、结果读取电路23、第一锁存器21、CWL连接端、RWLL连接端、RWLR连接端、节点U和节点UB。CWL连接端用于写入控制信号CWL的输入,RWLL连接端和RWLR连接端用于分别输入读控制信号RWLL和读控制信号RWLR。第一锁存器21包括晶体管P21、晶体管P22、晶体管N21和晶体管N22,第一锁存器21用于存储计算结果数据信号。其中,各个晶体管均包括第一极、第二极和控制极。晶体管P21的控制极与节点UB连接,晶体管P21的第一极用于工作电压信号V DD的输入,晶体管P21的第二极与节点U连接。晶体管P22的控制极与节点U连接,晶体管P22的第一极用于工作电压信号V DD的输入,晶体管P22的第二极与节点UB连接。晶体管N21的控制极与节点UB连接,晶体管N21的第一极与节点U连接,晶体管N21的第二极接地。晶体管N22的控制极与节点U连接,晶体管N22的第一极与节点UB连接,晶体管N22的第二极接地。结果输入电路22包括晶体管N23、晶体管N24和晶体管N25,晶体 管N23的控制极与NORIN连接端连接,晶体管N23的第一极与晶体管N24的第一极连接,晶体管N23的第二极与节点UB连接。晶体管N24的控制极与CWL连接端连接,晶体管N24的第二极接地。晶体管N25的控制极与CWL连接端连接,晶体管N25的第一极与NORIN连接端连接,晶体管N25的第二极与节点U连接。结果读取电路23包括晶体管N26、晶体管N27、晶体管N28和晶体管N29。晶体管N26的控制极与RWLL连接端连接,晶体管N26的第一极与晶体管N27的第一极连接,晶体管N26的第二极与RBL连接端连接。晶体管N27的控制极与节点U连接,晶体管N27的第二极接地。晶体管N28的控制极与节点UB连接,晶体管N28的第一极与晶体管N29的第一极连接,晶体管N29的第二极接地。晶体管N29的控制极与RWLR连接端连接,晶体管N29的第二极与RBL连接端连接。 Please refer to FIG. 5 , which is a schematic circuit diagram of the result storage circuit in an embodiment. In one embodiment, the result storage circuit further includes a result input circuit 22, a result reading circuit 23, a first latch 21, a CWL connection terminal, a RWLL connection terminal, a RWLR connection terminal, a node U and a node UB. The CWL connection end is used to input the write control signal CWL, and the RWLL connection end and the RWLR connection end are used to respectively input the read control signal RWLL and the read control signal RWLR. The first latch 21 includes a transistor P21, a transistor P22, a transistor N21 and a transistor N22, and the first latch 21 is used for storing the calculation result data signal. Wherein, each transistor includes a first pole, a second pole and a control pole. The control electrode of the transistor P21 is connected to the node UB, the first electrode of the transistor P21 is used for inputting the working voltage signal V DD , and the second electrode of the transistor P21 is connected to the node U. The control electrode of the transistor P22 is connected to the node U, the first electrode of the transistor P22 is used for inputting the working voltage signal V DD , and the second electrode of the transistor P22 is connected to the node UB. The control electrode of the transistor N21 is connected to the node UB, the first electrode of the transistor N21 is connected to the node U, and the second electrode of the transistor N21 is grounded. The control electrode of the transistor N22 is connected to the node U, the first electrode of the transistor N22 is connected to the node UB, and the second electrode of the transistor N22 is grounded. The result input circuit 22 includes a transistor N23, a transistor N24 and a transistor N25. The control electrode of the transistor N23 is connected to the NORIN terminal, the first electrode of the transistor N23 is connected to the first electrode of the transistor N24, and the second electrode of the transistor N23 is connected to the node UB. The control electrode of the transistor N24 is connected to the CWL connection terminal, and the second electrode of the transistor N24 is grounded. The control electrode of the transistor N25 is connected to the CWL connection terminal, the first electrode of the transistor N25 is connected to the NORIN connection terminal, and the second electrode of the transistor N25 is connected to the node U. The result reading circuit 23 includes a transistor N26, a transistor N27, a transistor N28, and a transistor N29. The control electrode of the transistor N26 is connected to the RWLL connection terminal, the first electrode of the transistor N26 is connected to the first electrode of the transistor N27, and the second electrode of the transistor N26 is connected to the RBL connection terminal. The control electrode of the transistor N27 is connected to the node U, and the second electrode of the transistor N27 is grounded. The control electrode of the transistor N28 is connected to the node UB, the first electrode of the transistor N28 is connected to the first electrode of the transistor N29, and the second electrode of the transistor N29 is grounded. The control electrode of the transistor N29 is connected to the RWLR connection terminal, and the second electrode of the transistor N29 is connected to the RBL connection terminal.
请参考图6,为一种实施例中数据存储电路的电路示意图,一实施例中,数据存储电路包括数据写入电路33、第二锁存器31、数据读取电路32、RWL连接端、RWLB连接端、WWL连接端、节点Q和节点QB。WWL连接端用于写入控制信号WWL的输入,RWL连接端和RWLB连接端用于分别输入读取控制信号RWL和读取控制信号RWLB。第二锁存器31包括晶体管P31、晶体管P32、晶体管N31和晶体管N32,第二锁存器31用于存储待逻辑运算数据信号。其中,各个晶体管均包括第一极、第二极和控制极。晶体管P31的控制极与节点QB连接,晶体管P31的第一极用于工作电压信号V DD的输入,晶体管P31的第二极与节点Q连接。晶体管P32的控制极与节点Q连接,晶体管P32的第一极用于工作电压信号V DD的输入,晶体管P32的第二极与节点QB连接。晶体管N31的控制极与节点QB连接,晶体管N31的第一极与节点Q连接,晶体管N31的第二极接地。晶体管N32的控制极与节点Q连接,晶体管N32的第一极与节点QB连接,晶体管N32的第二极接地。数据写入电路32包括晶体管N33和晶体管N34,晶体管N33的控制极与WWL连接端连接,晶体管N33的第一极与WBLB连接端连接,晶体管N33的第二极与节点QB连接。晶体管N34的控制极与WWL连接端连接,晶体管N34的第一极与WBL连接端连接,晶体管N33的第二极与节点Q连接。数据读取电路33包括晶体管N35、晶体管N36、晶体管N37和晶体管N38。晶体管N35的控制极与节点QB连接,晶体管N35的第一极与晶体管N36的第一极连接,晶体管N35的第二极接地。晶体管N36的控制极与RWL连接端连接,晶体管N36的第二极与RBL连接端连接。晶体管N37的控制极与节点Q连接,晶体管N37的第一极与晶体管N38的第一极连接,晶体管N37的第二极接地。晶体管N38的控制极与RWLB连接端连接,晶体管N38的第二极与RBLB连接端连接。 Please refer to FIG. 6, which is a schematic circuit diagram of a data storage circuit in an embodiment. In one embodiment, the data storage circuit includes a data write circuit 33, a second latch 31, a data read circuit 32, an RWL connection end, an RWLB connection end, a WWL connection end, a node Q, and a node QB. The WWL connection end is used to input the write control signal WWL, and the RWL connection end and the RWLB connection end are used to respectively input the read control signal RWL and the read control signal RWLB. The second latch 31 includes a transistor P31 , a transistor P32 , a transistor N31 and a transistor N32 , and the second latch 31 is used for storing data signals to be logically operated. Wherein, each transistor includes a first pole, a second pole and a control pole. The control electrode of the transistor P31 is connected to the node QB, the first electrode of the transistor P31 is used for inputting the working voltage signal V DD , and the second electrode of the transistor P31 is connected to the node Q. The control electrode of the transistor P32 is connected to the node Q, the first electrode of the transistor P32 is used for inputting the working voltage signal V DD , and the second electrode of the transistor P32 is connected to the node QB. The control electrode of the transistor N31 is connected to the node QB, the first electrode of the transistor N31 is connected to the node Q, and the second electrode of the transistor N31 is grounded. The control electrode of the transistor N32 is connected to the node Q, the first electrode of the transistor N32 is connected to the node QB, and the second electrode of the transistor N32 is grounded. The data writing circuit 32 includes a transistor N33 and a transistor N34. The control electrode of the transistor N33 is connected to the WWL terminal, the first electrode of the transistor N33 is connected to the WBLB terminal, and the second electrode of the transistor N33 is connected to the node QB. The control electrode of the transistor N34 is connected to the WWL connection terminal, the first electrode of the transistor N34 is connected to the WBL connection terminal, and the second electrode of the transistor N33 is connected to the node Q. The data reading circuit 33 includes a transistor N35, a transistor N36, a transistor N37, and a transistor N38. The control electrode of the transistor N35 is connected to the node QB, the first electrode of the transistor N35 is connected to the first electrode of the transistor N36, and the second electrode of the transistor N35 is grounded. The control electrode of the transistor N36 is connected to the RWL connection terminal, and the second electrode of the transistor N36 is connected to the RBL connection terminal. The control electrode of the transistor N37 is connected to the node Q, the first electrode of the transistor N37 is connected to the first electrode of the transistor N38, and the second electrode of the transistor N37 is grounded. The control electrode of the transistor N38 is connected to the RWLB connection terminal, and the second electrode of the transistor N38 is connected to the RBLB connection terminal.
如图4所示,逻辑运算控制1电路还包括第一驱动器、第二驱动器和或非 门电路。或非门电路的两个输入端分别与第一数据读取端和第二数据读取端连接,或非门电路的输出端与NORIN连接端连接。第一驱动器的输出端与第一数据读取端连接,第二驱动器的输出端与第二数据读取端连接。第一驱动器用于向第一数据读取端输入逻辑运算控制信号。第二驱动器用于向第二数据读取端输入逻辑运算控制信号。As shown in Figure 4, the logical operation control 1 circuit also includes a first driver, a second driver and a NOR gate circuit. The two input terminals of the NOR gate circuit are respectively connected with the first data reading terminal and the second data reading terminal, and the output terminal of the NOR gate circuit is connected with the NORIN connection terminal. The output end of the first driver is connected to the first data reading end, and the output end of the second driver is connected to the second data reading end. The first driver is used for inputting logic operation control signals to the first data reading end. The second driver is used for inputting logic operation control signals to the second data reading end.
本申请公开了一种逻辑运算存储单元,包括逻辑运算控制电路、结果存储电路、WBL连接端、WBLB连接端和N个数据存储电路。WBL连接端和WBLB连接端用于输入待逻辑运算数据信号,数据存储电路用于存储待逻辑运算数据信号,逻辑运算控制电路用于对数据存储电路中存储的待逻辑运算数据信号进行逻辑运算,并将逻辑运算获取的计算结果数据信号存储在结果存储电路中。由于逻辑运算存储单元的结构是将需要实现的逻辑函数本身直接映射到存储单元中,逻辑函数中的N个逻辑变量的具体逻辑值根据输入确定,进而使得实现全部逻辑功能的同时,还能保留存储阵列原有的读写和存储特性。The application discloses a logic operation storage unit, which includes a logic operation control circuit, a result storage circuit, a WBL connection terminal, a WBLB connection terminal and N data storage circuits. The WBL connection end and the WBLB connection end are used to input the data signal to be logically operated, the data storage circuit is used to store the data signal to be logically operated, and the logical operation control circuit is used to perform logical operation on the data signal to be logically operated stored in the data storage circuit, and store the calculation result data signal obtained by the logical operation in the result storage circuit. Since the structure of the logic operation storage unit is to directly map the logic function to be implemented into the storage unit, the specific logic values of the N logic variables in the logic function are determined according to the input, so that all logic functions can be realized while retaining the original read-write and storage characteristics of the storage array.
实施例2:Example 2:
请参考图7,为另一种实施例中逻辑运算存储器的结构示意图,一种实施例中,公开了一种存储阵列,存储阵列100包括M个实施例一中公开的逻辑运算存储单元,其中,M为大于0的整数。一实施例中,M≤2 N-2Please refer to FIG. 7 , which is a schematic structural diagram of a logic operation memory in another embodiment. In one embodiment, a storage array is disclosed. The storage array 100 includes M logic operation storage units disclosed in Embodiment 1, where M is an integer greater than 0. In one embodiment, M≤2 N-2 .
一实施例中,本申请公开了一种逻辑运算存储器,逻辑运算存储器包括如上所述的存储阵列100和阵列逻辑计算电路200。阵列逻辑计算电路200与存储阵列100中的每个逻辑运算存储单元110的RBL连接端连接,阵列逻辑计算电路200通过每个逻辑运算存储单元110的RBL连接端获取结果存储电路存储的计算结果数据信号,并对获取的每个计算结果数据信号进行逻辑运算,以获取阵列逻辑运算结果信号。In one embodiment, the present application discloses a logic operation memory, which includes the storage array 100 and the array logic calculation circuit 200 as described above. The array logic calculation circuit 200 is connected to the RBL connection end of each logic operation storage unit 110 in the storage array 100, the array logic calculation circuit 200 obtains the calculation result data signal stored in the result storage circuit through the RBL connection end of each logic operation storage unit 110, and performs logic operation on each obtained calculation result data signal to obtain the array logic operation result signal.
一实施例中,阵列逻辑计算电路200包括TWL连接端、M个阵列数据获取电路210和阵列逻辑运算结果输出电路220。TWL连接端用于输入逻辑运算控制信号TWL。每个阵列数据获取电路210对应一个逻辑运算存储单元110。阵列数据获取电路210包括晶体管N41和晶体管N42。晶体管N41的控制极与阵列数据获取电路210对应的逻辑运算存储单元110的RBL连接端连接,晶体管N41的第一极与阵列逻辑运算结果输出电路220连接,晶体管N41的第二极与晶体管N42的第一极连接,晶体管N42的控制极与TWL连接端连接,晶体管N42的第二极接地。In one embodiment, the array logic calculation circuit 200 includes a TWL connection terminal, M array data acquisition circuits 210 and an array logic operation result output circuit 220 . The TWL connection end is used for inputting the logic operation control signal TWL. Each array data acquisition circuit 210 corresponds to one logical operation storage unit 110 . The array data acquisition circuit 210 includes a transistor N41 and a transistor N42. The control pole of the transistor N41 is connected to the RBL connection terminal of the logic operation storage unit 110 corresponding to the array data acquisition circuit 210, the first pole of the transistor N41 is connected to the array logic operation result output circuit 220, the second pole of the transistor N41 is connected to the first pole of the transistor N42, the control pole of the transistor N42 is connected to the TWL connection terminal, and the second pole of the transistor N42 is grounded.
一实施例中,阵列逻辑运算结果输出电路220包括信号放大器SA,信号放大器SA的输入端与每个阵列数据获取电路210的晶体管N41的第一极连接,信号放大器SA的输出端用于输出阵列逻辑运算结果信号。一实施例中,信号放大器SA包括第一输出端和第二输出端,信号放大器SA的第一输出端用于输出阵列逻辑运算结果信号,信号放大器SA的第二输出端用于输出阵列逻辑运算结果信号的反相信号。In one embodiment, the array logic operation result output circuit 220 includes a signal amplifier SA, the input terminal of the signal amplifier SA is connected to the first pole of the transistor N41 of each array data acquisition circuit 210, and the output terminal of the signal amplifier SA is used to output the array logic operation result signal. In one embodiment, the signal amplifier SA includes a first output terminal and a second output terminal, the first output terminal of the signal amplifier SA is used to output the array logic operation result signal, and the second output terminal of the signal amplifier SA is used to output the inversion signal of the array logic operation result signal.
如图4所示,为本申请实施例中公开的逻辑运算存储单元,下面以N=2为例说明逻辑运算存储单元的工作流程。查找表(LUT)由3个共享位线的SRAM单元、一个或非门和两个位线的写入驱动器构成。3个共享位线的SRAM单元中有两个如图5所示的数据存储电路(简称10T单元)和一个如图6所示的结果存储电路(简称11T单元)。图4中的写位线WBL和写位线WBLB为一对写位线,用于将待计算的数据写入2个10T单元,而图4中的读位线RBL和读位线RBLB为一对读位线,用于读出各逻辑运算存储单元中存储的数据以及装载逻辑运算的结果。图6中写字线WWL是10T SRAM单元的写字线,即写端口的控制信号。RWL和RWLB是10T单元的读字线,即读端口的控制信号。输入LUT中的2个10T单元的共4条字线是相互独立的。逻辑函数的两个变量在计算时将被逐一映射到2输入LUT包含的两个10T单元中。该2输入LUT共能产生16种逻辑功能,覆盖了2变量逻辑函数所有可能的真值表,这些功能需要的逻辑操作大致可以分为以下三部分阐述:As shown in FIG. 4 , it is the logical operation storage unit disclosed in the embodiment of the present application. The working flow of the logical operation storage unit will be described below by taking N=2 as an example. A look-up table (LUT) consists of three SRAM cells sharing a bit line, a NOR gate, and write drivers for two bit lines. Among the three SRAM cells sharing a bit line, there are two data storage circuits (10T unit for short) as shown in FIG. 5 and one result storage circuit (11T unit for short) as shown in FIG. 6 . The write bit line WBL and the write bit line WBLB in FIG. 4 are a pair of write bit lines, which are used to write the data to be calculated into two 10T units, and the read bit line RBL and the read bit line RBLB in FIG. The write word line WWL in Figure 6 is the write word line of the 10T SRAM unit, that is, the control signal of the write port. RWL and RWLB are the read word lines of the 10T unit, that is, the control signals of the read port. A total of 4 word lines input to 2 10T cells in the LUT are independent of each other. The two variables of the logic function will be mapped one by one to the two 10T units contained in the 2-input LUT during calculation. The 2-input LUT can generate a total of 16 logic functions, covering all possible truth tables of 2-variable logic functions. The logic operations required by these functions can be roughly divided into the following three parts:
①当10T单元某一侧的读端口开启时,经过预充电的位线将根据10T单元内存储的数据决定是否放电。假设如图4所示的第一个10T单元的两个存储节点分别为Q1、QB1,Q1节点存储的是逻辑变量A,QB1存储
Figure PCTCN2022073145-appb-000001
第二个10T单元的两个存储节点分别为Q2,QB2,Q2节点存储逻辑变量B,在QB2节点存储
Figure PCTCN2022073145-appb-000002
假设A=1,B=0,则当11T单元的读端口RWLL开启时,RBL的电压将维持在V DD,而RBLB将会放电至GND。这样就将Q1存储的逻辑值A读取到了RBL上,而将QB1存储的逻辑值
Figure PCTCN2022073145-appb-000003
读取到RBLB上。这样我们就可以得到
Figure PCTCN2022073145-appb-000004
两个逻辑操作的结果;类似地,通过开启11T单元的读端口RWLR的读端口可以得到
Figure PCTCN2022073145-appb-000005
的结果。如果将LUT单元内的两个10T单元同一侧的读端口同时激活,RBL/RBLB将会根据两个cell存储的数据进行放电。若Q1节点和Q2节点有一个存储“1”,则RWLR激活时RBL将会被放电至GND,这就将
Figure PCTCN2022073145-appb-000006
映射到了RBLB上,同理,如果QB1节点和QB2节点有一个存储“1”,当RWLL激活时RBL将被放电至0,这样就将AB映射到了RBL上。综上所述,通过激活同一侧不同数量的读端口,可以实现6种逻辑操作,分别是A、B、
Figure PCTCN2022073145-appb-000007
和AB。
① When the read port on one side of the 10T cell is turned on, the precharged bit line will decide whether to discharge according to the data stored in the 10T cell. Assume that the two storage nodes of the first 10T unit as shown in Figure 4 are Q1 and QB1 respectively, the Q1 node stores the logical variable A, and the QB1 stores
Figure PCTCN2022073145-appb-000001
The two storage nodes of the second 10T unit are Q2 and QB2 respectively, the Q2 node stores the logic variable B, and the QB2 node stores
Figure PCTCN2022073145-appb-000002
Assuming A=1, B=0, when the read port RWLL of the 11T unit is turned on, the voltage of RBL will be maintained at V DD , and RBLB will be discharged to GND. In this way, the logical value A stored by Q1 is read to the RBL, and the logical value stored by QB1
Figure PCTCN2022073145-appb-000003
Read to RBLB. so that we can get
Figure PCTCN2022073145-appb-000004
The result of two logical operations; similarly, by opening the read port of the read port RWLR of the 11T unit, it can be obtained
Figure PCTCN2022073145-appb-000005
the result of. If the read ports on the same side of the two 10T units in the LUT unit are activated at the same time, the RBL/RBLB will discharge according to the data stored in the two cells. If both Q1 node and Q2 node have a storage "1", then RBL will be discharged to GND when RWLR is activated, which will
Figure PCTCN2022073145-appb-000006
Mapped to RBLB, similarly, if QB1 node and QB2 node have a storage "1", RBL will be discharged to 0 when RWLL is activated, thus mapping AB to RBL. To sum up, by activating different numbers of read ports on the same side, six logic operations can be realized, namely A, B,
Figure PCTCN2022073145-appb-000007
and AB.
②在①中所述操作的基础上,我们可以利用LUT内部的或非门和11T单元得到这些逻辑运算结果的反。因为①中所述的6种运算的结果最终只会装载到RBL/RBLB中的一条位线上,如果在装载运算结果的同时,将驱动器DR打开向另一条空闲位线上写入逻辑值“0”,那么或非门将输出①中运算结果的反值。将CWL激活,11T单元的节点U将得到①中运算的结果,而节点UB将得到它们的反。利用这种方法,就可以在11T单元的存储节点上得到①中实现的6种逻辑功能以及A+B、
Figure PCTCN2022073145-appb-000008
这2种新的逻辑运算结果。
②Based on the operation described in ①, we can use the NOR gate and 11T unit inside the LUT to obtain the inverse of the results of these logical operations. Because the results of the six operations described in ① will only be loaded to one bit line in RBL/RBLB, if the driver DR is turned on to write a logic value "0" to another free bit line while loading the operation results, then the NOR gate will output the inverse value of the operation result in ①. Activate CWL, the node U of the 11T unit will get the result of the operation in ①, and the node UB will get their inverse. Using this method, the 6 logic functions implemented in ① and A+B,
Figure PCTCN2022073145-appb-000008
The results of these 2 new logic operations.
③在①中所述操作的基础上,利用LUT中包含的或非门和11T单元,在向11T单元写入的过程中完成运算,其结果存储在11T单元的两个存储节点上。假定图4中的一个10T单元的Q1节点存储“1”,为逻辑变量A的逻辑值,另一个10T单元的节点Q2也存储“1”,为逻辑变量B的逻辑值。读位线RBL/RBLB先被预充电至V DD。当开启Q1与RBLB连接的读端口和QB2与RBL连接的读端口时,RBLB将放电至0,即RBLB上的数据为
Figure PCTCN2022073145-appb-000009
而RBL将保持在1,即RBL上存储的数据为B。此时或非门的输出为“0”,当11T单元的写入控制信号CWL开启时,或非门的输出将被直接写入到节点U,进而将节点UB扭转为相反的逻辑值。因而我们能够在节点U得到0,即
Figure PCTCN2022073145-appb-000010
的结果,而在节点UB得到1,即
Figure PCTCN2022073145-appb-000011
的结果。同样地,对Q2/QB1连接的读端口进行类似操作可以在节点U得到
Figure PCTCN2022073145-appb-000012
的逻辑值,而在节点UB得到
Figure PCTCN2022073145-appb-000013
的逻辑值;而对Q1/QB1、Q2/QB2连接的读端口进行类似操作可以分别在节点U和节点UB得到逻辑操作“0”和“1”的逻辑值。如果将两个10T单元的两侧读端口都打开,可以在RBL/RBLB上分别得到AB以及
Figure PCTCN2022073145-appb-000014
的值,此时激活CWL,节点U将会得到
Figure PCTCN2022073145-appb-000015
而节点UB将得到A⊙B。这样,我们就能够得到
Figure PCTCN2022073145-appb-000016
0、1、
Figure PCTCN2022073145-appb-000017
A⊙B的运算结果。至此,所有的2变量逻辑运算都已被证明能在该2输入LUT中完成。
③Based on the operation described in ①, use the NOR gate and 11T unit contained in the LUT to complete the operation in the process of writing to the 11T unit, and the result is stored on the two storage nodes of the 11T unit. Assume that the Q1 node of a 10T unit in FIG. 4 stores "1", which is the logical value of the logical variable A, and the node Q2 of another 10T unit also stores "1", which is the logical value of the logical variable B. The read bit lines RBL/RBLB are precharged to V DD first. When the read port of Q1 connected to RBLB and the read port of QB2 connected to RBL are turned on, RBLB will be discharged to 0, that is, the data on RBLB is
Figure PCTCN2022073145-appb-000009
The RBL will remain at 1, that is, the data stored on the RBL is B. At this time, the output of the NOR gate is "0". When the write control signal CWL of the 11T unit is turned on, the output of the NOR gate will be directly written into the node U, and then the node UB will be reversed to the opposite logic value. Thus we can get 0 at node U, ie
Figure PCTCN2022073145-appb-000010
, and get 1 at node UB, ie
Figure PCTCN2022073145-appb-000011
the result of. Similarly, a similar operation on the read port of the Q2/QB1 connection can be obtained at node U
Figure PCTCN2022073145-appb-000012
logical value of , while at node UB one gets
Figure PCTCN2022073145-appb-000013
The logic value of the logic value of ; while performing similar operations on the read ports connected to Q1/QB1 and Q2/QB2, the logic values of logic operations "0" and "1" can be obtained at node U and node UB respectively. If you open the read ports on both sides of the two 10T units, you can get AB and RBLB respectively on RBL/RBLB
Figure PCTCN2022073145-appb-000014
The value of , at this time activate CWL, node U will get
Figure PCTCN2022073145-appb-000015
And node UB will get A⊙B. In this way, we can get
Figure PCTCN2022073145-appb-000016
0, 1,
Figure PCTCN2022073145-appb-000017
The operation result of A⊙B. So far, all 2-variable logic operations have been proven to be performed in this 2-input LUT.
如图7所示,本申请实施例中的逻辑运算存储器,其中包含的存储阵列的规模为M列(M≤2 N-2),N行,其中每一列都是在2输入LUT的基础上增加了N-2个10T单元。这些额外增加的10T单元具有行共享的双字线RWLL/RWLR,其中,RWLL被同一行的所有10T单元的左侧读端口(连接到各列的RBL)共享,而RWLR被所有10T SRAM单元的右侧读端口(连接到各列的RBLB)共享。在每一列的底端有由两个晶体管构成的转置读端口,能够将逻辑值读取到底端的横向位线TBL上。转置读端口由一条共享字线TWL控制。横向位线TBL末端连接一个单端灵敏放大器,用于将计算结果迅速读出。这样的一个阵列可以实现所有N变量逻辑函数,即该阵列是一个N变量的LUT。 As shown in FIG. 7 , the logical operation memory in the embodiment of the present application includes a storage array with a size of M columns (M≤2 N-2 ) and N rows, where each column is based on a 2-input LUT with N-2 10T units added. These additional 10T cells have a row-shared double word line RWLL/RWLR, where RWLL is shared by the left read port (connected to the RBL of each column) of all 10T cells in the same row, and RWLR is shared by the right read port (connected to the RBLB of each column) of all 10T SRAM cells. At the bottom of each column there is a transposed read port consisting of two transistors that can read logic values onto the bottom lateral bit line TBL. The transpose read port is controlled by a shared word line TWL. A single-ended sense amplifier is connected to the end of the transverse bit line TBL for rapidly reading out the calculation result. Such an array can implement all N-variable logic functions, that is, the array is an N-variable LUT.
在使用N输入LUT实现任意的N变量逻辑函数时,需要将逻辑函数中的变 量映射到前文提到的SRAM阵列中。具体的映射规则如下:首先将逻辑函数写成最简“与或”式,再将“与或”式的每一个“与”项映射到阵列中每一列的10T单元上。11T单元仅作为结果运算单元,在实现逻辑功能时不允许映射逻辑变量。在同一列上,2输入LUT中包含的两个10T单元和该列其他10T单元在变量映射时没有区别,即“与”项中包含变量在列中被映射的位置并不影响最终计算的结果。如果一个“与”项中包含的逻辑变量少于阵列的行数,在映射时应当在该列的空余单元中映射“1”,以保证结果正确。在进行运算时,所有列的读位线RBL/RBLB先被预充电,随后2输入LUT部分按照前述操作流程执行“与”操作。与此同时,其他所有10T单元的左侧读端口字线RWLL同时激活,则RBL将根据所有10T单元中存储的数据进行放电,相当于完成了该“与”项中所有逻辑变量的“与”操作,操作结果保留在RBL上。When using an N-input LUT to implement an arbitrary N-variable logic function, it is necessary to map the variables in the logic function into the aforementioned SRAM array. The specific mapping rules are as follows: first write the logic function into the simplest "and or" formula, and then map each "and" item of the "and or" formula to the 10T unit of each column in the array. The 11T unit is only used as a result operation unit, and it is not allowed to map logic variables when implementing logic functions. On the same column, there is no difference between the two 10T units contained in the 2-input LUT and the other 10T units in the column in the variable mapping, that is, the position in the column where the variable contained in the "AND" item is mapped does not affect the final calculation result. If the number of logical variables contained in an "AND" item is less than the number of rows in the array, "1" should be mapped in the vacant cells of the column during mapping to ensure the correct result. When performing operations, the read bit lines RBL/RBLB of all columns are precharged first, and then the 2-input LUT part performs an "AND" operation according to the aforementioned operation flow. At the same time, the left read port word line RWLL of all other 10T cells is activated at the same time, and the RBL will discharge according to the data stored in all 10T cells, which is equivalent to completing the "AND" operation of all logic variables in the "AND" item, and the operation result is retained on the RBL.
各列的“与”操作完成后,阵列中每一列的RBL上都装载了各个“与”项的结果。随后,转置位线TBL开始预充电。TBL被预充到高电平后,TWL激活,TBL将根据各列RBL上的电压(即各个“与”项的计算结果)进行放电。当存在1个及以上的RBL上为高电平时,TBL将放电。这相当于对各条RBL上装载的数据进行“或非”。TBL上的电压变化将迅速被其末端连接的单端灵敏放大器捕捉,并由灵敏放大器的差分输出端口得到各列RBL上逻辑值的“或非”结果和“或”结果,其中“或”结果就是输入的逻辑函数的最终计算结果。After the "AND" operation of each column is completed, the RBL of each column in the array is loaded with the results of each "AND" item. Subsequently, the transposed bit line TBL starts precharging. After the TBL is precharged to a high level, the TWL is activated, and the TBL will be discharged according to the voltage on each column RBL (that is, the calculation result of each "AND" item). When one or more RBLs are high, the TBL will discharge. This is equivalent to "NOR" the data loaded on each RBL. The voltage change on the TBL will be quickly captured by the single-ended sense amplifier connected to its end, and the "NOR" result and "OR" result of the logic values on each column RBL will be obtained from the differential output port of the sense amplifier, where the "OR" result is the final calculation result of the input logic function.
N输入LUT在整体上可以被看作是一个完整的SRAM阵列,该阵列仍然具有一般SRAM阵列所具有的正常读写功能。在对阵列中的某一单元进行读取时,该单元所处的列对应的读位线RBL/RBLB先被预充电。若被读取的单元是2输入LUT中的单元,那么单元的两条独立字线同时激活,将单元内存储的值读取到位线上;若被读取的单元是其他10T单元,则该单元所在的行的两条字线RWLL/RWLR同时激活,将单元内存储的值读取到位线上。随后,TBL进行预充电,TWL激活,由TBL连接的灵敏放大器输出读取的值。The N-input LUT can be regarded as a complete SRAM array as a whole, and the array still has normal read and write functions that a general SRAM array has. When reading a certain cell in the array, the read bit line RBL/RBLB corresponding to the column where the cell is located is firstly precharged. If the unit to be read is a unit in a 2-input LUT, then the two independent word lines of the unit are activated at the same time, and the value stored in the unit is read to the bit line; if the unit to be read is another 10T unit, the two word lines RWLL/RWLR of the row where the unit is located are activated at the same time, and the value stored in the unit is read to the bit line. Subsequently, TBL is precharged, TWL is activated, and the sense amplifier connected to TBL outputs the value read.
在对阵列中的某一单元进行写入时,若被写入的单元是10T单元,则先将待写入的数据装载到单元所在列的写位线WBL/WBLB上。随后将写端口的字线WWL激活,将数据通过传输管写入到单元的存储节点上;若被写入的单元是11T SRAM单元,则根据写入的逻辑值分为2种情形:当需要写入“0”时,将读位线RBL/RBLB充电至高电平,打开11T单元内的写字线CWL,就可以将“0”写入11T单元。当需要写入“1”时,则读位线RBL/RBLB全部装载“0”,打开CWL,就可以将“1”写入11T单元。When writing to a certain cell in the array, if the cell to be written is a 10T cell, first load the data to be written to the write bit line WBL/WBLB of the column where the cell is located. Then activate the word line WWL of the write port, and write the data to the storage node of the unit through the transmission tube; if the unit to be written is an 11T SRAM unit, it can be divided into two situations according to the written logic value: when it is necessary to write "0", charge the read bit line RBL/RBLB to high level, turn on the write word line CWL in the 11T unit, and then write "0" into the 11T unit. When it is necessary to write "1", the read bit lines RBL/RBLB are all loaded with "0", and the CWL is turned on, and "1" can be written into the 11T unit.
本申请提出了一种基于存内计算方式而非传统的访存方式实现所有的二变 量逻辑函数(共十六种)的二输入查找表。在二输入查找表的基础上,发展出了可以实现任意变量数逻辑函数的N输入查找表。传统的N输入查找表存储的是某个确定的N变量逻辑函数对应的所有2 N个可能的结果,而本申请提出的查找表结构是将需要实现的逻辑函数本身直接映射到存储单元中,逻辑函数中的N个逻辑变量的具体逻辑值根据输入确定。本申请提出的查找表在实现全部逻辑功能的同时保留了存储阵列原有的读写和存储特性。 This application proposes a two-input look-up table that realizes all two-variable logic functions (sixteen types in total) based on an in-memory calculation method instead of a traditional memory access method. On the basis of the two-input look-up table, an N-input look-up table that can realize logic functions with any number of variables is developed. What the traditional N-input lookup table stores are all 2 N possible results corresponding to a certain certain N variable logic function, and the lookup table structure proposed by the application directly maps the logic function itself to be realized in the storage unit, and the specific logic values of the N logic variables in the logic function are determined according to the input. The look-up table proposed in this application retains the original read-write and storage characteristics of the storage array while realizing all logic functions.
本文参照了各种示范实施例进行说明。然而,本领域的技术人员将认识到,在不脱离本文范围的情况下,可以对示范性实施例做出改变和修正。例如,各种操作步骤以及用于执行操作步骤的组件,可以根据特定的应用或考虑与系统的操作相关联的任何数量的成本函数以不同的方式实现(例如一个或多个步骤可以被删除、修改或结合到其他步骤中)。This document is described with reference to various exemplary embodiments. However, those skilled in the art will recognize that changes and modifications can be made to the exemplary embodiments without departing from the scope herein. For example, the various operational steps, and the components used to perform the operational steps, may be implemented in different ways (e.g., one or more steps may be deleted, modified, or combined into other steps) depending on the particular application or considering any number of cost functions associated with the operation of the system.
虽然在各种实施例中已经示出了本文的原理,但是许多特别适用于特定环境和操作要求的结构、布置、比例、元件、材料和部件的修改可以在不脱离本披露的原则和范围内使用。以上修改和其他改变或修正将被包含在本文的范围之内。While the principles herein have been shown in various embodiments, many modifications in structure, arrangement, proportions, elements, materials and components, particularly suited to particular circumstances and operational requirements, may be employed without departing from the principles and scope of this disclosure. The above modifications and other changes or amendments are intended to be included within the scope of this document.
前述具体说明已参照各种实施例进行了描述。然而,本领域技术人员将认识到,可以在不脱离本披露的范围的情况下进行各种修正和改变。因此,对于本披露的考虑将是说明性的而非限制性的意义上的,并且所有这些修改都将被包含在其范围内。同样,有关于各种实施例的优点、其他优点和问题的解决方案已如上所述。然而,益处、优点、问题的解决方案以及任何能产生这些的要素,或使其变得更明确的解决方案都不应被解释为关键的、必需的或必要的。本文中所用的术语“包括”和其任何其他变体,皆属于非排他性包含,这样包括要素列表的过程、方法、文章或设备不仅包括这些要素,还包括未明确列出的或不属于该过程、方法、系统、文章或设备的其他要素。此外,本文中所使用的术语“耦合”和其任何其他变体都是指物理连接、电连接、磁连接、光连接、通信连接、功能连接和/或任何其他连接。The foregoing detailed description has been described with reference to various embodiments. However, those skilled in the art will recognize that various modifications and changes can be made without departing from the scope of the present disclosure. Accordingly, the disclosure is to be considered in an illustrative rather than a restrictive sense, and all such modifications are intended to be embraced within its scope. Also, advantages, other advantages and solutions to problems have been described above with respect to various embodiments. However, neither benefits, advantages, solutions to problems, nor any elements that lead to these, or make the solutions more definite, should be construed as critical, required, or necessary. The term "comprising" and any other variations thereof, as used herein, are non-exclusive inclusions, such that a process, method, article, or apparatus that includes a list of elements includes not only those elements, but also other elements that are not expressly listed or not part of the process, method, system, article, or apparatus. Additionally, the term "coupled" and any other variations thereof, as used herein, refers to a physical connection, an electrical connection, a magnetic connection, an optical connection, a communicative connection, a functional connection, and/or any other connection.
具有本领域技术的人将认识到,在不脱离本发明的基本原理的情况下,可以对上述实施例的细节进行许多改变。因此,本发明的范围应根据以下权利要求确定。Those skilled in the art will recognize that many changes may be made to the details of the above-described embodiments without departing from the underlying principles of the invention. Accordingly, the scope of the invention should be determined from the following claims.

Claims (10)

  1. 一种逻辑运算存储单元,其特征在于,包括逻辑运算控制电路、结果存储电路、WBL连接端、WBLB连接端和N个数据存储电路;其中,N为大于1的整数;A logic operation storage unit, characterized in that it includes a logic operation control circuit, a result storage circuit, a WBL connection end, a WBLB connection end, and N data storage circuits; wherein, N is an integer greater than 1;
    所述WBL连接端和所述WBLB连接端用于输入待逻辑运算数据信号;The WBL connection end and the WBLB connection end are used to input data signals to be logically operated;
    所述数据存储电路与所述WBL连接端和所述WBLB连接端连接,用于存储所述待逻辑运算数据信号;The data storage circuit is connected to the WBL connection end and the WBLB connection end, and is used to store the data signal to be logically operated;
    所述逻辑运算控制电路与所述结果存储电路和每个所述数据存储电路连接,用于对所述数据存储电路中存储的所述待逻辑运算数据信号进行逻辑运算,并将逻辑运算获取的计算结果数据信号存储在所述结果存储电路中;The logical operation control circuit is connected to the result storage circuit and each of the data storage circuits, and is used to perform logical operation on the data signal to be logically operated stored in the data storage circuit, and store the calculation result data signal obtained by the logical operation in the result storage circuit;
    每个所述数据存储电路包括节点Q、节点QB、RBL连接端和RBLB连接端;所述节点Q与所述WBL连接端连接,所述节点QB与所述WBLB连接端连接,所述节点Q和所述节点QB用于从所述WBL连接端和所述WBLB连接端获取待逻辑运算数据信号,并将所述待逻辑运算数据信号写入所述数据存储电路;所述RBL连接端和RBLB连接端与所述逻辑运算控制电路连接,用于从所述数据存储电路读取所述待逻辑运算数据信号,并将读取获取的所述待逻辑运算数据信号发送给所述逻辑运算控制电路;Each of the data storage circuits includes a node Q, a node QB, an RBL connection end and an RBLB connection end; the node Q is connected to the WBL connection end, and the node QB is connected to the WBLB connection end, and the node Q and the node QB are used to obtain the data signal to be logically operated from the WBL connection end and the WBLB connection end, and write the data signal to be logically operated into the data storage circuit; the RBL connection end and the RBLB connection end are connected to the logic operation control circuit for reading the data signal to be logically operated from the data storage circuit , and sending the acquired logic operation data signal to the logic operation control circuit;
    所述逻辑运算控制电路包括第一数据读取端、第二数据读取端和结果输出端;所述第一数据读取端与每个所述数据存储电路的RBL连接端连接,所述第二数据读取端与每个所述数据存储电路的RBLB连接端连接,所述第一数据读取端和所述第二数据读取端用于从所述数据存储电路中读取所述待逻辑运算数据信号;所述结果输出端与所述结果存储电路连接,所述逻辑运算控制电路用于对读取的所述待逻辑运算数据信号进行逻辑运算,并将逻辑运算获取的所述计算结果数据信号通过所述结果输出端发送给所述结果存储电路;The logic operation control circuit includes a first data reading end, a second data reading end and a result output end; the first data reading end is connected to the RBL connection end of each of the data storage circuits, the second data reading end is connected to the RBLB connection end of each of the data storage circuits, and the first data reading end and the second data reading end are used to read the data signal to be logically operated from the data storage circuit; The data signal is sent to the result storage circuit through the result output terminal;
    所述结果存储电路包括NORIN连接端和第一共线端,所述第一共线端与每个所述数据存储电路的RBL连接端连接,所述NORIN连接端与所述结果输出端连接,所述结果存储电路用于存储所述计算结果数据信号。The result storage circuit includes a NORIN connection end and a first common line end, the first common line end is connected to the RBL connection end of each of the data storage circuits, the NORIN connection end is connected to the result output end, and the result storage circuit is used to store the calculation result data signal.
  2. 如权利要求1所述的逻辑运算存储单元,其特征在于,所述结果存储电路还包括结果输入电路、结果读取电路、第一锁存器、CWL连接端、RWLL连接端、RWLR连接端、节点U和节点UB;所述CWL连接端用于写入控制信号CWL的输入,所述RWLL连接端和所述RWLR连接端用于分别输入读控制信号RWLL和读控制信号RWLR;The logical operation storage unit according to claim 1, wherein the result storage circuit further comprises a result input circuit, a result reading circuit, a first latch, a CWL connection end, a RWLL connection end, an RWLR connection end, a node U and a node UB; the CWL connection end is used for inputting a write control signal CWL, and the RWLL connection end and the RWLR connection end are used for respectively inputting a read control signal RWLL and a read control signal RWLR;
    所述第一锁存器包括晶体管P21、晶体管P22、晶体管N21和晶体管N22,所述第一锁存器用于存储所述计算结果数据信号;其中各个晶体管均包括第一极、第二极和控制极;The first latch includes a transistor P21, a transistor P22, a transistor N21, and a transistor N22, and the first latch is used to store the calculation result data signal; wherein each transistor includes a first pole, a second pole, and a control pole;
    晶体管P21的控制极与节点UB连接,晶体管P21的第一极用于工作电压信号V DD的输入,晶体管P21的第二极与节点U连接; The control pole of the transistor P21 is connected to the node UB, the first pole of the transistor P21 is used for the input of the working voltage signal VDD , and the second pole of the transistor P21 is connected to the node U;
    晶体管P22的控制极与节点U连接,晶体管P22的第一极用于工作电压信号V DD的输入,晶体管P22的第二极与节点UB连接; The control pole of the transistor P22 is connected to the node U, the first pole of the transistor P22 is used for the input of the working voltage signal VDD , and the second pole of the transistor P22 is connected to the node UB;
    晶体管N21的控制极与节点UB连接,晶体管N21的第一极与节点U连接,晶体管N21的第二极接地;The control pole of the transistor N21 is connected to the node UB, the first pole of the transistor N21 is connected to the node U, and the second pole of the transistor N21 is grounded;
    晶体管N22的控制极与节点U连接,晶体管N22的第一极与节点UB连接,晶体管N22的第二极接地;The control pole of the transistor N22 is connected to the node U, the first pole of the transistor N22 is connected to the node UB, and the second pole of the transistor N22 is grounded;
    所述结果输入电路包括晶体管N23、晶体管N24和晶体管N25,晶体管N23的控制极与所述NORIN连接端连接,晶体管N23的第一极与晶体管N24的第一极连接,晶体管N23的第二极与节点UB连接;晶体管N24的控制极与所述CWL连接端连接,晶体管N24的第二极接地;晶体管N25的控制极与所述CWL连接端连接,晶体管N25的第一极与所述NORIN连接端连接,晶体管N25的第二极与节点U连接;The result input circuit includes a transistor N23, a transistor N24 and a transistor N25, the control pole of the transistor N23 is connected to the NORIN connection terminal, the first pole of the transistor N23 is connected to the first pole of the transistor N24, and the second pole of the transistor N23 is connected to the node UB; the control pole of the transistor N24 is connected to the CWL connection terminal, and the second pole of the transistor N24 is grounded; the control pole of the transistor N25 is connected to the CWL connection terminal, and the first pole of the transistor N25 is connected to the NORIN connection terminal connected, the second pole of the transistor N25 is connected to the node U;
    所述结果读取电路包括晶体管N26、晶体管N27、晶体管N28和晶体管N29;Described result reading circuit comprises transistor N26, transistor N27, transistor N28 and transistor N29;
    晶体管N26的控制极与所述RWLL连接端连接,晶体管N26的第一极与晶体管N27的第一极连接,晶体管N26的第二极与所述RBL连接端连接;晶体管N27的控制极与节点U连接,晶体管N27的第二极接地;晶体管N28的控制极与节点UB连接,晶体管N28的第一极与晶体管N29的第一极连接,晶体管N29的第二极接地;晶体管N29的控制极与所述RWLR连接端连接,晶体管N29的第二极与所述RBL连接端连接。The control pole of the transistor N26 is connected to the RWLL connection terminal, the first pole of the transistor N26 is connected to the first pole of the transistor N27, the second pole of the transistor N26 is connected to the RBL connection terminal; the control pole of the transistor N27 is connected to the node U, and the second pole of the transistor N27 is grounded; the control pole of the transistor N28 is connected to the node UB, the first pole of the transistor N28 is connected to the first pole of the transistor N29, and the second pole of the transistor N29 is grounded; connected to the connection terminal, and the second pole of the transistor N29 is connected to the RBL connection terminal.
  3. 如权利要求1所述的逻辑运算存储单元,其特征在于,所述数据存储电路包括数据写入电路、第二锁存器、数据读取电路、RWL连接端、RWLB连接端、WWL连接端、节点Q和节点QB;WWL连接端用于写入控制信号WWL的输入,所述RWL连接端和所述RWLB连接端用于分别输入读取控制信号RWL和读取控制信号RWLB;The logical operation storage unit according to claim 1, wherein the data storage circuit comprises a data write circuit, a second latch, a data read circuit, a RWL connection end, a RWLB connection end, a WWL connection end, a node Q and a node QB; the WWL connection end is used for inputting a write control signal WWL, and the RWL connection end and the RWLB connection end are used for respectively inputting a read control signal RWL and a read control signal RWLB;
    所述第二锁存器包括晶体管P31、晶体管P32、晶体管N31和晶体管N32,所述第二锁存器用于存储所述待逻辑运算数据信号;其中各个晶体管均包括第一极、第二极和控制极;The second latch includes a transistor P31, a transistor P32, a transistor N31, and a transistor N32, and the second latch is used to store the data signal to be logically operated; wherein each transistor includes a first pole, a second pole, and a control pole;
    晶体管P31的控制极与节点QB连接,晶体管P31的第一极用于工作电压信 号V DD的输入,晶体管P31的第二极与节点Q连接; The control pole of the transistor P31 is connected to the node QB, the first pole of the transistor P31 is used for the input of the working voltage signal VDD , and the second pole of the transistor P31 is connected to the node Q;
    晶体管P32的控制极与节点Q连接,晶体管P32的第一极用于工作电压信号V DD的输入,晶体管P32的第二极与节点QB连接; The control pole of the transistor P32 is connected to the node Q, the first pole of the transistor P32 is used for the input of the working voltage signal VDD , and the second pole of the transistor P32 is connected to the node QB;
    晶体管N31的控制极与节点QB连接,晶体管N31的第一极与节点Q连接,晶体管N31的第二极接地;The control pole of the transistor N31 is connected to the node QB, the first pole of the transistor N31 is connected to the node Q, and the second pole of the transistor N31 is grounded;
    晶体管N32的控制极与节点Q连接,晶体管N32的第一极与节点QB连接,晶体管N32的第二极接地;The control electrode of the transistor N32 is connected to the node Q, the first electrode of the transistor N32 is connected to the node QB, and the second electrode of the transistor N32 is grounded;
    所述数据写入电路包括晶体管N33和晶体管N34,晶体管N33的控制极与所述WWL连接端连接,晶体管N33的第一极与所述WBLB连接端连接,晶体管N33的第二极与节点QB连接;晶体管N34的控制极与WWL连接端连接,晶体管N34的第一极与所述WBL连接端连接,晶体管N33的第二极与节点Q连接;The data writing circuit includes a transistor N33 and a transistor N34, the control pole of the transistor N33 is connected to the WWL connection terminal, the first pole of the transistor N33 is connected to the WBLB connection terminal, the second pole of the transistor N33 is connected to the node QB; the control pole of the transistor N34 is connected to the WWL connection terminal, the first pole of the transistor N34 is connected to the WBL connection terminal, and the second pole of the transistor N33 is connected to the node Q;
    所述数据读取电路包括晶体管N35、晶体管N36、晶体管N37和晶体管N38;The data reading circuit includes a transistor N35, a transistor N36, a transistor N37 and a transistor N38;
    晶体管N35的控制极与节点QB连接,晶体管N35的第一极与晶体管N36的第一极连接,晶体管N35的第二极接地;晶体管N36的控制极与所述RWL连接端连接,晶体管N36的第二极与所述RBL连接端连接;晶体管N37的控制极与节点Q连接,晶体管N37的第一极与晶体管N38的第一极连接,晶体管N37的第二极接地;晶体管N38的控制极与所述RWLB连接端连接,晶体管N38的第二极与所述RBLB连接端连接。The control pole of the transistor N35 is connected to the node QB, the first pole of the transistor N35 is connected to the first pole of the transistor N36, and the second pole of the transistor N35 is grounded; the control pole of the transistor N36 is connected to the RWL connection end, and the second pole of the transistor N36 is connected to the RBL connection end; The connection terminal is connected, and the second pole of the transistor N38 is connected to the RBLB connection terminal.
  4. 如权利要求1所述的逻辑运算存储单元,其特征在于,所述逻辑运算控制电路还包括第一驱动器、第二驱动器和或非门电路;所述或非门电路的两个输入端分别与所述第一数据读取端和所述第二数据读取端连接,所述或非门电路的输出端与所述NORIN连接端连接;所述第一驱动器的输出端与所述第一数据读取端连接,所述第二驱动器的输出端与所述第二数据读取端连接;所述第一驱动器用于向所述第一数据读取端输入逻辑运算控制信号;所述第二驱动器用于向所述第二数据读取端输入逻辑运算控制信号。The logical operation storage unit according to claim 1, wherein the logical operation control circuit further comprises a first driver, a second driver and a NOR gate circuit; two input terminals of the NOR gate circuit are respectively connected with the first data read terminal and the second data read terminal, and the output terminal of the NOR gate circuit is connected with the NORIN connection terminal; the output terminal of the first driver is connected with the first data read terminal, and the output terminal of the second driver is connected with the second data read terminal; the first driver is used to input a logical operation control signal to the first data read terminal ; The second driver is used to input a logic operation control signal to the second data reading end.
  5. 一种存储阵列,其特征在于,包括M个如权利要求1至4中任一项所述的逻辑运算存储单元;其中,M为大于0的整数。A storage array, characterized by comprising M logical operation storage units according to any one of claims 1 to 4; wherein, M is an integer greater than 0.
  6. 一种逻辑运算存储器,其特征在于,包括如权利要求5所述的存储阵列和阵列逻辑计算电路;所述阵列逻辑计算电路与所述存储阵列中的每个所述逻辑运算存储单元的RBL连接端连接,所述阵列逻辑计算电路通过每个所述逻辑运算存储单元的RBL连接端获取所述结果存储电路存储的所述计算结果数据信号,并对获取的每个所述计算结果数据信号进行逻辑运算,以获取阵列逻辑运算结果信号。A logic operation memory, characterized in that it comprises a storage array and an array logic calculation circuit according to claim 5; the array logic calculation circuit is connected to the RBL connection end of each of the logic operation storage units in the storage array, and the array logic calculation circuit obtains the calculation result data signal stored in the result storage circuit through the RBL connection end of each of the logic operation storage units, and performs a logic operation on each of the acquired calculation result data signals to obtain an array logic operation result signal.
  7. 如权利要求6所述的逻辑运算存储器,其特征在于,所述阵列逻辑计算电路包括TWL连接端、M个阵列数据获取电路和阵列逻辑运算结果输出电路;所述TWL连接端用于输入逻辑运算控制信号TWL;The logic operation memory according to claim 6, wherein the array logic calculation circuit comprises a TWL connection end, M array data acquisition circuits and an array logic operation result output circuit; the TWL connection end is used to input the logic operation control signal TWL;
    每个所述阵列数据获取电路对应一个所述逻辑运算存储单元;所述阵列数据获取电路包括晶体管N41和晶体管N42;晶体管N41的控制极与所述阵列数据获取电路对应的所述逻辑运算存储单元的RBL连接端连接,晶体管N41的第一极与所述阵列逻辑运算结果输出电路连接,晶体管N41的第二极与晶体管N42的第一极连接;晶体管N42的控制极与所述TWL连接端连接,晶体管N42的第二极接地。Each array data acquisition circuit corresponds to one logic operation storage unit; the array data acquisition circuit includes a transistor N41 and a transistor N42; the control pole of the transistor N41 is connected to the RBL connection end of the logic operation storage unit corresponding to the array data acquisition circuit, the first pole of the transistor N41 is connected to the array logic operation result output circuit, the second pole of the transistor N41 is connected to the first pole of the transistor N42; the control pole of the transistor N42 is connected to the TWL connection terminal, and the second pole of the transistor N42 is grounded.
  8. 如权利要求7所述的逻辑运算存储器,其特征在于,所述阵列逻辑运算结果输出电路包括信号放大器SA,所述信号放大器SA的输入端与每个所述阵列数据获取电路的晶体管N41的第一极连接,所述信号放大器SA的输出端用于输出所述阵列逻辑运算结果信号。The logic operation memory according to claim 7, wherein the array logic operation result output circuit comprises a signal amplifier SA, the input terminal of the signal amplifier SA is connected to the first pole of each transistor N41 of the array data acquisition circuit, and the output terminal of the signal amplifier SA is used to output the array logic operation result signal.
  9. 如权利要求8所述的逻辑运算存储器,其特征在于,所述信号放大器SA包括第一输出端和第二输出端,所述信号放大器SA的第一输出端用于输出所述阵列逻辑运算结果信号,所述信号放大器SA的第二输出端用于输出所述阵列逻辑运算结果信号的反相信号。The logic operation memory according to claim 8, wherein the signal amplifier SA includes a first output terminal and a second output terminal, the first output terminal of the signal amplifier SA is used to output the array logic operation result signal, and the second output terminal of the signal amplifier SA is used to output the inversion signal of the array logic operation result signal.
  10. 如权利要求6所述的逻辑运算存储器,其特征在于,M≤2 N-2The logical operation memory according to claim 6, characterized in that M≤2 N-2 .
PCT/CN2022/073145 2022-01-21 2022-01-21 Logical operation storage unit, storage array and logical operation memory WO2023137696A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/073145 WO2023137696A1 (en) 2022-01-21 2022-01-21 Logical operation storage unit, storage array and logical operation memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/073145 WO2023137696A1 (en) 2022-01-21 2022-01-21 Logical operation storage unit, storage array and logical operation memory

Publications (1)

Publication Number Publication Date
WO2023137696A1 true WO2023137696A1 (en) 2023-07-27

Family

ID=87347698

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/073145 WO2023137696A1 (en) 2022-01-21 2022-01-21 Logical operation storage unit, storage array and logical operation memory

Country Status (1)

Country Link
WO (1) WO2023137696A1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160189769A1 (en) * 2014-12-30 2016-06-30 The Regents Of The University Of Michigan A storage device supporting logical operations, methods and storage medium
CN110364203A (en) * 2019-06-20 2019-10-22 中山大学 A kind of interior storage system and calculation method calculated of support storage
CN111863071A (en) * 2020-07-22 2020-10-30 上海高性能集成电路设计中心 Circuit structure for realizing internal operation based on SRAM
CN112116937A (en) * 2020-09-25 2020-12-22 安徽大学 SRAM circuit structure for realizing multiplication and or logic operation in memory
CN112133339A (en) * 2020-08-12 2020-12-25 清华大学 Memory bit-by-bit logic calculation circuit structure based on ferroelectric transistor
CN112214197A (en) * 2020-10-16 2021-01-12 苏州兆芯半导体科技有限公司 SRAM full adder and multi-bit SRAM full adder

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160189769A1 (en) * 2014-12-30 2016-06-30 The Regents Of The University Of Michigan A storage device supporting logical operations, methods and storage medium
CN110364203A (en) * 2019-06-20 2019-10-22 中山大学 A kind of interior storage system and calculation method calculated of support storage
CN111863071A (en) * 2020-07-22 2020-10-30 上海高性能集成电路设计中心 Circuit structure for realizing internal operation based on SRAM
CN112133339A (en) * 2020-08-12 2020-12-25 清华大学 Memory bit-by-bit logic calculation circuit structure based on ferroelectric transistor
CN112116937A (en) * 2020-09-25 2020-12-22 安徽大学 SRAM circuit structure for realizing multiplication and or logic operation in memory
CN112214197A (en) * 2020-10-16 2021-01-12 苏州兆芯半导体科技有限公司 SRAM full adder and multi-bit SRAM full adder

Similar Documents

Publication Publication Date Title
US8117567B2 (en) Structure for implementing memory array device with built in computation capability
US7646648B2 (en) Apparatus and method for implementing memory array device with built in computational capability
US8493774B2 (en) Performing logic functions on more than one memory cell within an array of memory cells
JPH10188570A (en) Memory cell
Chen et al. Analysis and optimization strategies toward reliable and high-speed 6T compute SRAM
US6188629B1 (en) Low power, static content addressable memory
JPS60127598A (en) Semiconductor integrated circuit device
CN115810374A (en) Memory circuit and memory computing circuit with BCAM addressing and logic operation functions
US11475943B2 (en) Storage unit and static random access memory
WO2023137696A1 (en) Logical operation storage unit, storage array and logical operation memory
Gupta et al. Exploration of 9T SRAM cell for in memory computing application
Rajput et al. Energy efficient 9T SRAM with R/W margin enhanced for beyond Von-Neumann computation
JPH0485788A (en) Multi-port cache memory
CN112214197B (en) SRAM full adder and multi-bit SRAM full adder
WO2022237039A1 (en) Sram cell suitable for high-speed content addressing and in-memory boolean logic computing
CN113889158A (en) Memory computing circuit and device based on SRAM and electronic equipment
JPH1011969A (en) Semiconductor memory device
Monga et al. Design of In-Memory Computing Enabled SRAM Macro
Monga et al. A Novel Decoder Design for Logic Computation in SRAM: CiM-SRAM
US11670351B1 (en) Memory with single-ended sensing using reset-set latch
US9030887B2 (en) Semiconductor memory device and information processing apparatus
CN115376586A (en) Memory circuit architecture, chip and electronic equipment
WO2022183314A1 (en) Memory
WO2022233158A1 (en) Memory cell, memory array, logic calculation memory and logic calculation method
Kaur et al. XMAT: A 6T XOR-MAT based 2R-1W SRAM for high bandwidth network applications

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22921139

Country of ref document: EP

Kind code of ref document: A1