KR102693205B1 - Memory unit performing logic operation with page buffer and logic operation method using the same - Google Patents
Memory unit performing logic operation with page buffer and logic operation method using the same Download PDFInfo
- Publication number
- KR102693205B1 KR102693205B1 KR1020220040738A KR20220040738A KR102693205B1 KR 102693205 B1 KR102693205 B1 KR 102693205B1 KR 1020220040738 A KR1020220040738 A KR 1020220040738A KR 20220040738 A KR20220040738 A KR 20220040738A KR 102693205 B1 KR102693205 B1 KR 102693205B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- latch
- signal
- node
- transistor
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000004364 calculation method Methods 0.000 claims abstract description 15
- 238000013500 data storage Methods 0.000 claims description 89
- 101100205847 Mus musculus Srst gene Proteins 0.000 claims description 22
- 101150105729 SLC45A3 gene Proteins 0.000 claims description 4
- 102100037253 Solute carrier family 45 member 3 Human genes 0.000 claims description 4
- 230000000694 effects Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 9
- 108010076504 Protein Sorting Signals Proteins 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Read Only Memory (AREA)
Abstract
본 발명은 페이지 버퍼로 로직 연산을 수행하는 메모리 유닛 및 이를 이용한 로직 연산 방법에 관한 것으로, 메모리 장치 내에 연산 회로 등 별도의 회로를 구비함이 없이 기존의 페이지 버퍼 회로를 그대로 이용하거나 약간만 변형하여 로직 연산을 수행할 수 있는 효과가 있다.The present invention relates to a memory unit that performs a logic operation with a page buffer and a logic operation method using the same. The present invention relates to a logic operation method using the same by using the existing page buffer circuit as is or slightly modifying it without having a separate circuit such as an operation circuit in the memory device. It has the effect of being able to perform calculations.
Description
본 발명은 폰 노이만(von Neumann) 기반의 컴퓨팅 시스템에서 중앙처리장치(CPU)와 메모리 유닛간의 데이터 이동에 의한 병목현상 등의 문제점을 해소하기 위해 제안된 것으로, 로직 연산을 위해 CPU로 데이터를 이동시키지 않고 메모리 유닛 내에서 페이지 버퍼로 로직 연산을 수행하는 장치 및 그 방법에 관한 것이다.The present invention was proposed to solve problems such as bottlenecks caused by data movement between the central processing unit (CPU) and memory units in von Neumann-based computing systems, and moves data to the CPU for logic operations. It relates to a device and method for performing logic operations with a page buffer within a memory unit without processing the same.
현재의 von Neumann 아키텍처 기반의 컴퓨팅 시스템은 CPU 내 프로세싱 유닛과 메모리 유닛간의 데이터 이동에 의한 병목현상(von Neumann bottleneck)과 메모리 장벽문제(memory wall problem)를 가지고 있다. The current computing system based on the von Neumann architecture has a von Neumann bottleneck and a memory wall problem caused by data movement between the processing unit within the CPU and the memory unit.
도 1은 기존 폰 노이만 기반의 컴퓨팅 시스템(10')에서의 로직 연산 방식을 보여주는 모식도이다. 이에 의하면, 메모리 유닛(100)과 프로세싱 유닛(200) 사이에 연결된 버스(240)를 통하여, 메모리 장치(110) 내에 메모리 셀 어레이(112)의 특정 메모리 셀들에 저장된 데이터(a, b)를 프로세싱 유닛(200)으로 이동시켜 산술 연산 유닛(220)에서 연산하고, 그 결과 f(a,b)는 다시 버스(240)를 통해 메모리 유닛(100)으로 보내 저장함에 따라, 데이터 양이 많아지면 많아 질수록 버스의 병목현상과 그에 따른 메모리 장벽문제는 피할 수 없게 된다. Figure 1 is a schematic diagram showing a logic operation method in an existing von Neumann-based computing system 10'. According to this, data (a, b) stored in specific memory cells of the memory cell array 112 in the memory device 110 is processed through the bus 240 connected between the memory unit 100 and the processing unit 200. It is moved to the unit 200 and operated on in the arithmetic operation unit 220, and as a result, f(a,b) is sent back to the memory unit 100 through the bus 240 and stored. As the amount of data increases, it increases. As time goes by, bus bottlenecks and resulting memory barrier problems become more inevitable.
상기 문제를 해결하기 위해, 최근에 in-memory computing 연구들이 활발하게 진행되고 있다. 대표적인 선행기술을 들면, 한국 공개특허 제10-2020-0075525호 및 등록특허 제10-1635902호가 있다. 그런데, 전자는 연산 회로를, 후자는 감지 회로를 각각 별도로 두어 이를 이용하고 있다.To solve the above problem, in-memory computing research has been actively conducted recently. Representative prior technologies include Korean Patent Publication No. 10-2020-0075525 and Registered Patent No. 10-1635902. However, the former uses a separate calculation circuit, and the latter uses a separate detection circuit.
이에 본 발명은 기존의 페이지 버퍼 회로를 그대로 이용하거나 약간만 변형하여 페이지 버퍼로 로직 연산을 수행하는 메모리 유닛 및 이를 이용한 로직 연산 방법을 제공하고자 한다.Accordingly, the present invention seeks to provide a memory unit that performs logic operations using a page buffer by using the existing page buffer circuit as is or slightly modifying it, and a logic operation method using the same.
상기 목적을 달성하기 위하여, 본 발명에 의한 메모리 유닛은 메모리 장치와 메모리 컨트롤러로 구성되되, 상기 메모리 장치는 메모리 셀 어레이, 상기 메모리 셀 어레이의 비트라인들과 연결된 페이지 버퍼 블록, 상기 메모리 셀 어레이의 워드라인들과 연결된 엑스 디코더, 상기 페이지 버퍼 블록과 연결된 입출력 장치 및 상기 입출력 장치로부터 주소 및 제어명령을 받아 상기 엑스 디코더와 상기 페이지 버퍼 블록을 제어하는 제어 로직을 포함하고, 상기 페이지 버퍼 블록은 복수의 래치 회로를 병렬로 연결하여 상기 메모리 셀 어레이에 저장된 내부 피연산자 또는 상기 입출력 장치로 입력된 외부 피연산자로 로직 연산을 수행하도록 구비하고, 상기 제어 로직에는 상기 로직 연산을 위한 LIP 제어 로직이 더 구비되고, 상기 메모리 컨트롤러에는 상기 LIP 제어 로직을 통해 상기 로직 연산을 수행하기 위한 LIP 컨트롤러가 더 구비된 것을 특징으로 한다.In order to achieve the above object, the memory unit according to the present invention is composed of a memory device and a memory controller, wherein the memory device includes a memory cell array, a page buffer block connected to bit lines of the memory cell array, and It includes an A latch circuit is connected in parallel to perform a logic operation with an internal operand stored in the memory cell array or an external operand input to the input/output device, and the control logic is further provided with LIP control logic for the logic operation. , The memory controller is further equipped with a LIP controller for performing the logic operation through the LIP control logic.
상기 복수의 래치 회로는 상단 노드와 하단 노드 사이에 동일한 회로 구성을 갖는 S-래치, P-래치 및 Q-래치를 포함한 회로가 병렬로 연결되고, 상기 상단 노드에는 상기 비트라인들 중 하나 이상과 공급 전압단이 각각 비트라인 선택 트랜지스터들과 초기화 트랜지스터로 병렬로 연결되고, 상기 하단 노드에는 상기 상단 노드의 전압이 게이트로 인가되는 접지 트랜지스터와 상기 LIP 제어 로직의 PBRST 신호가 게이트로 인가되는 PBRST 트랜지스터가 각각 접지단에 병렬로 연결될 수 있다.The plurality of latch circuits include circuits including an S-latch, a P-latch, and a Q-latch having the same circuit configuration connected in parallel between an upper node and a lower node, and at the upper node, one or more of the bit lines and The supply voltage terminal is connected in parallel with bit line selection transistors and an initialization transistor, and the lower node has a ground transistor through which the voltage of the upper node is applied to the gate and a PBRST transistor through which the PBRST signal of the LIP control logic is applied to the gate. Each can be connected in parallel to the ground terminal.
상기 동일한 회로 구성은 상기 상단 노드에 병렬로 연결되어 상기 LIP 제어 로직의 TRAN과 TRANn 신호로 각각 개폐되는 데이터 이동 트랜지스터와 반전 데이터 이동 트랜지스터; 상기 데이터 이동 트랜지스터와 접지단 사이에 연결되어 반전 데이터 저장 노드의 전압으로 개폐되는 반전 데이터 구동 트랜지스터; 상기 반전 데이터 이동 트랜지스터와 접지단 사이에 연결되어 데이터 저장 노드의 전압으로 개폐되는 데이터 구동 트랜지스터; 상기 데이터 저장 노드와 상기 반전 데이터 저장 노드 사이에 입, 출력단이 서로 맞물려 연결된 제 1, 2 인버터; 상기 데이터 저장 노드와 상기 하단 노드 사이에 상기 LIP 제어 로직의 RST 신호로 개폐되는 RST 트랜지스터; 및 상기 반전 데이터 저장 노드와 상기 하단 노드 사이에 상기 LIP 제어 로직의 SET 신호로 개폐되는 SET 트랜지스터를 포함할 수 있다.The same circuit configuration includes a data transfer transistor and an inverting data transfer transistor connected in parallel to the upper node and opened and closed by the TRAN and TRANn signals of the LIP control logic, respectively; an inverted data driving transistor connected between the data moving transistor and the ground terminal and opened and closed by the voltage of the inverted data storage node; a data drive transistor connected between the inverting data transfer transistor and the ground terminal and opened and closed by the voltage of the data storage node; First and second inverters whose input and output terminals are interconnected and connected between the data storage node and the inverted data storage node; an RST transistor opened and closed by the RST signal of the LIP control logic between the data storage node and the bottom node; And it may include a SET transistor opened and closed by the SET signal of the LIP control logic between the inverted data storage node and the lower node.
상기 메모리 유닛을 이용한 로직 연산 방법은 상기 페이지 버퍼 블록 내의 복수의 래치 회로 중 하나인 상기 S-래치는 연산 결과 저장 래치로 하고, 나머지 상기 P-래치 및 상기 Q-래치에 상기 메모리 셀 어레이의 내부에 저장되어 있는 데이터 또는 상기 입출력 장치를 통해 외부로부터 전달받은 데이터를 저장하는 제 1 단계; 및 상기 상단 노드를 데이터 "1" 상태로 초기화하고, 상기 S-래치의 데이터 저장 노드에 데이터 "0" 또는 데이터 "1" 상태로 초기화하는 제 2 단계를 포함하는 것을 특징으로 한다.In the logic operation method using the memory unit, the S-latch, which is one of a plurality of latch circuits in the page buffer block, is used as an operation result storage latch, and the remaining P-latches and the Q-latches are used to store the operation result inside the memory cell array. A first step of storing data stored in or data received from an external source through the input/output device; and a second step of initializing the upper node to a data “1” state and initializing the data storage node of the S-latch to a data “0” or data “1” state.
상기 TRAN 신호 또는 상기 TRANn 신호를 상기 P-래치 및 상기 Q-래치 중 하나 이상에 동시 또는 순차적으로 인가하여 상기 P-래치 및 상기 Q-래치에 저장된 데이터를 상기 상단 노드로 전달하여 데이터 이동 또는 로직 연산을 하는 제 3 단계를 더 포함할 수 있다.The TRAN signal or the TRANn signal is applied simultaneously or sequentially to one or more of the P-latch and the Q-latch to transfer the data stored in the P-latch and the Q-latch to the upper node to perform data movement or logic. A third step of calculation may be further included.
상기 제 2 단계에서 상기 상단 노드의 초기화는 상기 초기화 트랜지스터에 PRECHSO 신호로 턴온(turn on)시켜 상기 상단 노드에 공급 전압(VDD)를 인가하여 데이터 "1" 상태로 하고, 상기 S-래치의 데이터 저장 노드의 초기화는 상기 상단 노드의 초기화 상태에서 상기 RST 트랜지스터에 SRST 신호로 턴온시켜 데이터 "0" 상태 또는 상기 SET 트랜지스터에 SSET 신호로 턴온시켜 데이터 "1" 상태로 하고, 상기 제 3 단계 후에 상기 제 3 단계에서 상기 데이터 이동 또는 상기 로직 연산의 결과로 상기 상단 노드의 데이터가 "0"일 경우 상기 S-래치의 데이터 저장 노드의 데이터는 초기화 상태로 유지하고, 상기 상단 노드의 데이터가 "1"일 경우 상기 SET 트랜지스터에 SSET 신호로 턴온시켜 상기 S-래치의 데이터 저장 노드의 데이터는 "1"로 저장하거나 상기 RST 트랜지스터에 SRST 신호로 턴온시켜 상기 S-래치의 데이터 저장 노드의 데이터는 반전 데이터 "0"으로 저장하는 제 4 단계를 더 포함할 수 있다.In the second step, the initialization of the upper node is performed by turning on the initialization transistor with a PRECHSO signal to apply a supply voltage (V DD ) to the upper node to set it to a data "1" state, and the S-latch Initialization of the data storage node is performed in the initialization state of the upper node by turning on the RST transistor with an SRST signal to a data "0" state or by turning on the SET transistor with an SSET signal to a data "1" state, and after the third step. In the third step, if the data of the top node is “0” as a result of the data movement or the logic operation, the data of the data storage node of the S-latch is maintained in an initialized state, and the data of the top node is “0”. If it is 1", the SET transistor is turned on with the SSET signal to store the data in the data storage node of the S-latch as "1", or the RST transistor is turned on with the SRST signal to store the data in the data storage node of the S-latch as "1". A fourth step of storing the inverted data as “0” may be further included.
상기 제 1 단계에서 상기 P-래치에 데이터 "a"를, 상기 Q-래치에 데이터 "b"를 각각 저장하고, 상기 제 2 단계에서 상기 S-래치의 데이터 저장 노드의 초기화는 상기 SET 트랜지스터에 SSET 신호로 턴온시켜 데이터 "1" 상태로 하고, 상기 제 3 단계에서 상기 TRANn 신호를 상기 P-래치 및 상기 Q-래치에 동시 또는 순차적으로 인가하여 상기 P-래치 및 상기 Q-래치의 각 데이터 저장 노드에 저장된 반전 데이터들을 상기 상단 노드로 이동하여 연산을 수행하고, 상기 제 4 단계에서 상기 RST 트랜지스터에 SRST 신호로 턴온시켜 상기 S-래치의 데이터 저장 노드의 데이터는 상기 연산의 반전 데이터()가 저장되는 것으로 OR 연산을 수행할 수 있다.In the first step, data “a” is stored in the P-latch and data “b” is stored in the Q-latch, and in the second step, the data storage node of the S-latch is initialized in the SET transistor. It is turned on by the SSET signal to set the data to "1" state, and in the third step, the TRANn signal is applied simultaneously or sequentially to the P-latch and the Q-latch to change the respective data of the P-latch and the Q-latch. Move the inverted data stored in the storage node to the top node The operation is performed, and in the fourth step, the RST transistor is turned on with an SRST signal so that the data of the data storage node of the S-latch is the inverted data of the operation ( ) is stored, so an OR operation can be performed.
상기 제 1 단계에서 상기 P-래치에 데이터 "a"를, 상기 Q-래치에 데이터 "b"를 각각 저장하고, 상기 제 2 단계에서 상기 S-래치의 데이터 저장 노드의 초기화는 상기 RST 트랜지스터에 SRST 신호로 턴온시켜 데이터 "0" 상태로 하고, 상기 제 3 단계에서 상기 TRAN 신호를 상기 P-래치 및 상기 Q-래치에 동시 또는 순차적으로 인가하여 상기 P-래치 및 상기 Q-래치의 각 데이터 저장 노드에 저장된 데이터들을 상기 상단 노드로 이동하여 연산을 수행하고, 상기 제 4 단계에서 상기 SET 트랜지스터에 SSET 신호로 턴온시켜 상기 S-래치의 데이터 저장 노드의 데이터는 상기 연산의 결과 데이터가 저장되는 것으로 AND 연산을 수행할 수 있다.In the first step, data “a” is stored in the P-latch and data “b” is stored in the Q-latch, and in the second step, the data storage node of the S-latch is initialized in the RST transistor. It is turned on with the SRST signal to set the data to "0" state, and in the third step, the TRAN signal is applied to the P-latch and the Q-latch simultaneously or sequentially to change the respective data of the P-latch and the Q-latch. Move the data stored in the storage node to the top node An AND operation can be performed by performing an operation and, in the fourth step, turning on the SET transistor with an SSET signal to store the data in the data storage node of the S-latch as the result of the operation.
상기 제 1 단계에서 상기 P-래치에 데이터 "a"를, 상기 Q-래치에 데이터 "b"를 각각 저장하고, 상기 제 2 단계에서 상기 S-래치의 데이터 저장 노드의 초기화는 상기 RST 트랜지스터에 SRST 신호로 턴온시켜 데이터 "0" 상태로 하고, 상기 제 3 단계에서 TRANnP 신호를 상기 P-래치에, TRANQ 신호를 상기 Q-래치에 각각 동시 또는 순차적으로 인가하여 상기 상단 노드에서 의 1차 연산을 하고, 상기 1차 연산의 결과는 상기 SET 트랜지스터에 SSET 신호로 턴온시켜 상기 S-래치의 데이터 저장 노드의 데이터에 저장한 다음, 상기 초기화 트랜지스터에 PRECHSO 신호로 상기 상단 노드를 데이터 "1" 상태로 다시 초기화하고, TRANP 신호를 상기 P-래치에, TRANnQ 신호를 상기 Q-래치에 각각 동시 또는 순차적으로 인가하여 상기 상단 노드에서 의 2차 연산을 하고, 상기 P-래치의 RST 트랜지스터에 PRST 신호 및 상기 PBRST 트랜지스터에 PBRST 신호를 각각 동시 인가하여 상기 P-래치의 데이터 저장 노드를 데이터 "0" 상태로 초기화하고 상기 P-래치의 SET 트랜지스터에 PSET 신호를 인가하여 상기 P-래치의 데이터 저장 노드에 상기 2차 연산의 결과를 저장하고, 상기 초기화 트랜지스터에 PRECHSO 신호로 상기 상단 노드를 데이터 "1" 상태로 다시 초기화하고, TRANnS 신호를 상기 S-래치에, TRANnP 신호를 상기 P-래치에 각각 동시 또는 순차적으로 인가하여 상기 상단 노드에서 의 3차 연산을 하고, 상기 S-래치의 SET 트랜지스터에 SSET 신호 및 상기 PBRST 트랜지스터에 PBRST 신호를 각각 동시 인가하여 상기 S-래치의 데이터 저장 노드를 데이터 "1" 상태로 초기화한 다음, 상기 S-래치의 RST 트랜지스터에 SRST 신호를 인가하여 상기 S-래치의 데이터 저장 노드의 데이터는 상기 3차 연산의 반전 데이터()가 저장되는 것으로 XOR 연산을 수행할 수 있다.In the first step, data “a” is stored in the P-latch and data “b” is stored in the Q-latch, and in the second step, the data storage node of the S-latch is initialized in the RST transistor. Turn on with the SRST signal to set the data to "0" state, and in the third step, apply the TRANnP signal to the P-latch and the TRANQ signal to the Q-latch simultaneously or sequentially at the top node. The first operation is performed, and the result of the first operation is turned on by the SSET signal in the SET transistor and stored in the data of the data storage node of the S-latch, and then the upper node is converted to data by a PRECHSO signal in the initialization transistor. Re-initialize to the "1" state, apply the TRANP signal to the P-latch and the TRANnQ signal to the Q-latch simultaneously or sequentially at the top node. Perform the secondary operation of and simultaneously apply the PRST signal to the RST transistor of the P-latch and the PBRST signal to the PBRST transistor, respectively, to initialize the data storage node of the P-latch to the data "0" state and the P-latch The PSET signal is applied to the SET transistor to store the result of the secondary operation in the data storage node of the P-latch, and the upper node is reinitialized to the data "1" state with a PRECHSO signal to the initialization transistor, and TRANnS A signal is applied simultaneously or sequentially to the S-latch and a TRANnP signal to the P-latch, respectively, at the top node. Perform the third operation of and simultaneously apply the SSET signal to the SET transistor of the S-latch and the PBRST signal to the PBRST transistor to initialize the data storage node of the S-latch to the data "1" state, and then initialize the data storage node of the S-latch to the data "1" state. -By applying the SRST signal to the RST transistor of the latch, the data of the data storage node of the S-latch is the inverted data of the third operation ( ) is stored, so the XOR operation can be performed.
상기 페이지 버퍼 블록 내의 상기 복수의 래치 회로 중 어느 하나는 연산 결과 저장 래치로 하고, 나머지 래치에 상기 메모리 셀 어레이의 내부에 저장되어 있는 데이터 또는 상기 입출력 장치를 통해 외부로부터 전달받은 데이터를 저장하는 제 1 단계; 상기 상단 노드를 데이터 "1" 상태로 초기화하고, 상기 연산 결과 저장 래치의 데이터 저장 노드에 "0" 상태 또는 "1" 상태로 초기화하는 제 2 단계; 상기 TRAN 신호 또는 상기 TRANn 신호를 상기 나머지 래치 중 하나 이상에 동시 또는 순차적으로 인가하여 각 래치에 저장된 데이터를 상기 상단 노드로 전달하여 데이터 이동 또는 로직 연산을 하는 제 3 단계; 및 상기 제 3 단계에서 상기 데이터 이동 또는 상기 로직 연산의 결과로 상기 상단 노드의 데이터가 "0"일 경우 상기 저장 래치의 데이터 저장 노드의 데이터는 초기화 상태로 유지하고, 상기 상단 노드의 데이터가 "1"일 경우 상기 SET 트랜지스터에 SSET 신호로 턴온시켜 상기 저장 래치의 데이터 저장 노드의 데이터는 "1"로 저장하거나 상기 RST 트랜지스터에 SRST 신호로 턴온시켜 상기 S-래치의 데이터 저장 노드의 데이터는 반전 데이터 "0"으로 저장하는 제 4 단계를 더 포함할 수 있다.One of the plurality of latch circuits in the page buffer block serves as an operation result storage latch, and the remaining latch stores data stored inside the memory cell array or data received from the outside through the input/output device. Level 1; A second step of initializing the top node to a data "1" state and initializing the data storage node of the operation result storage latch to a "0" state or a "1" state; A third step of applying the TRAN signal or the TRANn signal to one or more of the remaining latches simultaneously or sequentially to transfer the data stored in each latch to the upper node to perform data movement or logic operation; And in the third step, if the data of the upper node is “0” as a result of the data movement or the logic operation, the data of the data storage node of the storage latch is maintained in an initialized state, and the data of the upper node is “0”. If it is 1", the SET transistor is turned on with the SSET signal to store the data in the data storage node of the storage latch as "1", or the RST transistor is turned on with the SRST signal to invert the data in the data storage node of the S-latch. A fourth step of storing data as “0” may be further included.
본 발명은 메모리 장치 내에 연산 회로 등 별도의 회로를 구비함이 없이 기존의 페이지 버퍼 회로를 그대로 이용하거나 약간만 변형하여 로직 연산을 수행할 수 있는 효과가 있다.The present invention has the effect of allowing logic operations to be performed by using an existing page buffer circuit as is or slightly modifying it, without providing a separate circuit such as an operation circuit in the memory device.
도 1은 기존 폰 노이만 기반의 컴퓨팅 시스템에서의 로직 연산 방식을 보여주는 모식도이다.
도 2는 본 발명의 일 실시예에 의한 메모리 유닛을 갖는 컴퓨팅 시스템에서의 로직 연산 방식을 보여주는 모식도이다.
도 3은 본 발명의 일 실시예에 따라 페이지 버퍼로 로직 연산을 할 수 있도록 구비된 메모리 유닛을 보인 블록도이다.
도 4는 도 3의 메모리 장치의 구성과 연결 관계를 보인 블록도이다.
도 5는 도 3의 제어 로직의 구성과 제어 신호의 입, 출력 관계를 보인 블록도이다.
도 6은 도 4의 페이지 버퍼 블록을 구성하는 페이지 버퍼 회로의 일 예를 보인 회로도이다.
도 7은 도 6의 페이지 버퍼 회로로 부울 로직 연산의 예를 보인 페이지 버퍼 동작 시퀀스 표이다.Figure 1 is a schematic diagram showing a logic operation method in an existing von Neumann-based computing system.
Figure 2 is a schematic diagram showing a logic operation method in a computing system having a memory unit according to an embodiment of the present invention.
Figure 3 is a block diagram showing a memory unit equipped to perform logic operations with a page buffer according to an embodiment of the present invention.
FIG. 4 is a block diagram showing the configuration and connection relationship of the memory device of FIG. 3.
FIG. 5 is a block diagram showing the configuration of the control logic of FIG. 3 and the input and output relationship of control signals.
FIG. 6 is a circuit diagram showing an example of a page buffer circuit constituting the page buffer block of FIG. 4.
FIG. 7 is a page buffer operation sequence table showing an example of a Boolean logic operation using the page buffer circuit of FIG. 6.
이하, 첨부된 도면을 참조하며 본 발명의 바람직한 실시예에 대하여 설명한다.Hereinafter, preferred embodiments of the present invention will be described with reference to the attached drawings.
도 2 및 도 3을 참조하면, 본 발명의 일 실시예에 의한 메모리 유닛(100)은, 통상과 같이, 기본적으로 메모리 장치(110)와 메모리 컨트롤러(120)로 구성된다.Referring to Figures 2 and 3, the memory unit 100 according to an embodiment of the present invention is basically composed of a memory device 110 and a memory controller 120, as usual.
여기서, 상기 메모리 장치(110)는, 도 4와 같이, 메모리 셀 어레이(112), 상기 메모리 셀 어레이의 비트라인들(BLs)과 연결된 페이지 버퍼 블록(114), 상기 메모리 셀 어레이의 워드라인들(WLs)과 연결된 엑스 디코더(116), 상기 페이지 버퍼 블록과 연결된 입출력 장치(119) 및 상기 입출력 장치로부터 주소 및 제어명령을 받아 상기 엑스 디코더(116)와 상기 페이지 버퍼 블록(114)을 제어하는 제어 로직(118)을 포함할 수 있다. 상기 페이지 버퍼 블록(114)은, 도 6과 같이, 복수의 래치 회로(310, 320, 330)를 병렬로 연결하여 상기 메모리 셀 어레이(112)에 저장된 내부 피연산자(operand) 또는 상기 입출력 장치(119)로 입력된 외부 피연산자로 로직 연산을 수행하도록 구비될 수 있다. 상기 제어 로직(118)에는, 도 4와 같이, 상기 로직 연산을 위한 LIP(logic in page buffer) 제어 로직(117)이 더 구비될 수 있다. 상기 메모리 컨트롤러(120)에는, 도 3과 같이, 기존 메모리 컨트롤러(124) 외에 상기 LIP 제어 로직(117)을 통해 상기 로직 연산을 수행하기 위한 LIP 컨트롤러(122)가 더 구비될 수 있다.Here, the memory device 110 includes a memory cell array 112, a page buffer block 114 connected to bit lines BLs of the memory cell array, and word lines of the memory cell array, as shown in FIG. 4. (WLs) connected to the May include control logic 118. As shown in FIG. 6, the page buffer block 114 connects a plurality of latch circuits 310, 320, and 330 in parallel to store internal operands stored in the memory cell array 112 or the input/output device 119. ) may be provided to perform logic operations with external operands input. The control logic 118 may further include logic in page buffer (LIP) control logic 117 for the logic operation, as shown in FIG. 4 . As shown in FIG. 3, the memory controller 120 may further include a LIP controller 122 for performing the logic operation through the LIP control logic 117 in addition to the existing memory controller 124.
도 1과 같이, 현재 상용화되어 있는 기존의 컴퓨팅 시스템(10')의 메모리 유닛(100)에도 메모리 셀 어레이(112)의 비트라인에 연결되어 저장된 데이터를 독출하는 페이지 버퍼 블록(114)이 포함되어 있다. 그러나, 기존의 컴퓨팅 구조는 메모리 유닛(100) 내에서 연산을 수행할 수 없기 때문에 인풋 데이터를 프로세싱 유닛(200)으로 전달하여 연산을 수행한 후, 다시 메모리 유닛(100)으로 전달하여서 연산 결과를 처리한다. As shown in FIG. 1, the memory unit 100 of the existing computing system 10' that is currently commercialized also includes a page buffer block 114 that is connected to the bit line of the memory cell array 112 and reads stored data. It is done. However, since the existing computing structure cannot perform calculations within the memory unit 100, input data is transferred to the processing unit 200 to perform calculations, and then transferred back to the memory unit 100 to produce calculation results. Process it.
그러나, 본 발명의 상술한 실시예에 의한 메모리 유닛(100)을 구비한 컴퓨팅 시스템(10)은, 도 2와 같이, 메모리 유닛(100)의 페이지 버퍼 블록(114) 내에서 연산을 수행할 수 있어 프로세싱 유닛(200)에서 연산을 위한 커맨드만을 메모리 유닛(100)으로 전달하여 페이지 버퍼 블록(114)의 페이지 버퍼 내에서 연산을 수행한 후, 연산 결과를 독출하거나 메모리 셀 어레이(112)에 저장하게 된다. However, the computing system 10 equipped with the memory unit 100 according to the above-described embodiment of the present invention can perform operations within the page buffer block 114 of the memory unit 100, as shown in FIG. 2. The processing unit 200 transmits only the command for the operation to the memory unit 100, performs the operation in the page buffer of the page buffer block 114, and then reads the operation result or stores it in the memory cell array 112. I do it.
본 발명의 발명자들은 NAND flash의 경우 멀티 레벨 셀 구현을 위하여 페이지 버퍼 내에 복수 개의 데이터 래치가 포함될 수 있는데, 본 발명에서는 이러한 페이지 버퍼를 그대로 이용하거나 약간만 변형하여 페이지 버퍼 통해 읽어낸 메모리 셀 어레이에 저장되어 있던 내부 피연산자 혹은 외부로부터 입출력 장치(119)를 통해 입력된 외부 피연산자들을 데이터 래치에 저장한 후, 페이지 버퍼 내에서 로직 연산을 수행하는 방법을 찾아낸 것이다.The inventors of the present invention found that in the case of NAND flash, a plurality of data latches can be included in the page buffer to implement multi-level cells. In the present invention, such page buffer is used as is or slightly modified and stored in the memory cell array read through the page buffer. A method was found to store the internal operands or external operands input from the outside through the input/output device 119 in the data latch and then perform a logic operation within the page buffer.
본 발명의 일 실시예로 로직 연산을 수행하는 메모리 유닛(100)은 도 3과 같이 구성될 수 있다. 여기서, 메모리 장치(110)는 낸드 플래시, 3D 수직 낸드 플래시, PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), FRAM(Ferroelectirc RAM)와 같은 비휘발성 메모리 장치들 중 하나일 수 있다. 다만, 본 발명의 메모리 장치(110)에서는 기존 메모리 컨트롤러(memory controller, 124)로부터 신호를 수신하여 메모리 기본 동작과 LIP controller(122)로부터 신호를 수신하여 LIP 동작을 함께 수행할 수 있도록 구비된다. 예를 들면, 메모리 컨트롤러로(120)부터 LIP 동작 및 메모리 기본 동작 수행을 위한 커맨드 CMD_LIP 신호, 외부 피연산자 혹은 외부 데이터의 값인 DATA_EX, 내부 피연산자 혹은 데이터의 값을 저장할 메모리 공간 주소인 ADD_IN 신호를 수신하여 LIP 동작 및 기본적인 메모리 동작을 수행할 수 있게 구비될 수 있다. 또한, 메모리 장치(110)에서 LIP를 수행한 결과 혹은 메모리 셀 어레이(112)에 저장된 데이터인 DATA_R는 메모리 컨트롤러(120)로 전달하여 외부로 출력하는 동작을 수행하게 구비될 수 있다.The memory unit 100 that performs logic operations in one embodiment of the present invention may be configured as shown in FIG. 3. Here, the memory device 110 is one of non-volatile memory devices such as NAND flash, 3D vertical NAND flash, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), and FRAM (Ferroelectirc RAM). It can be. However, the memory device 110 of the present invention is equipped to perform basic memory operations by receiving signals from an existing memory controller (124) and LIP operations by receiving signals from the LIP controller (122). For example, the memory controller 120 receives a command CMD_LIP signal for performing LIP operations and basic memory operations, DATA_EX, which is the value of an external operand or external data, and an ADD_IN signal, which is a memory space address to store the value of an internal operand or data. It may be equipped to perform LIP operations and basic memory operations. Additionally, DATA_R, which is the result of performing LIP in the memory device 110 or data stored in the memory cell array 112, may be transmitted to the memory controller 120 and output to the outside.
도 3에 도시된 메모리 장치(110)는, 도 4와 같이 구성되며, 메모리 기본 동작 및 LIP 동작을 수행하기 위해 페이지 버퍼 블록(114) 내에 복수의 래치 회로가 포함될 수 있다. 제어 로직(118)은 입출력 장치(I/O, 119)를 통해 외부 데이터(DATA_EX), LIP 커맨드(CMD_LIP) 및 메모리 공간 주소(ADD_IN) 등의 주소 및 제어명령을 받아 엑스 디코더(X-Dec, 116)와 페이지 버퍼 블록(114)을 제어하며 메모리 기본 동작 및 LIP 동작을 수행한다, 특히, 제어 로직(118)에는, 도 4 및 도 5와 같이, 상기 LIP 동작으로 로직 연산을 위한 LIP 제어 로직(117)을 더 구비하여, 이를 통해 복수의 래치 회로를 제어하기 위한 페이지 버퍼 시퀀스 신호(PB_SEQ)를 생성하여 페이지 버퍼 블록(114)으로 보내게 된다. 이때, 필요에 따라 메모리 셀 어레이(112)에 저장되어 있는 내부 데이터를 읽어내는 동작이 추가적으로 수행될 수도 있다. 도 5는 도 4의 제어 로직(118)의 구성과 제어 신호의 입, 출력 관계를 보인 블록도이다.The memory device 110 shown in FIG. 3 is configured as in FIG. 4 and may include a plurality of latch circuits in the page buffer block 114 to perform basic memory operations and LIP operations. The control logic 118 receives addresses and control commands such as external data (DATA_EX), LIP command (CMD_LIP), and memory space address (ADD_IN) through the input/output device (I/O) 119 and outputs the X decoder (X-Dec, 116) and the page buffer block 114 are controlled to perform memory basic operations and LIP operations. In particular, the control logic 118 includes LIP control logic for logic operation with the LIP operation, as shown in FIGS. 4 and 5. 117 is further provided, through which a page buffer sequence signal (PB_SEQ) for controlling a plurality of latch circuits is generated and sent to the page buffer block 114. At this time, an operation of reading internal data stored in the memory cell array 112 may be additionally performed, if necessary. FIG. 5 is a block diagram showing the configuration of the control logic 118 of FIG. 4 and the input and output relationship of control signals.
도 3 내지 도 5을 참조하면, 본 발명에서는 메모리 유닛(100) 내에서 로직 연산을 수행하기 위해 별도의 연산 회로 등이 필요하지 않게 된다. 다만, 도 3의 메모리 컨트롤러(120)에서 기존 메모리 컨트롤러(124) 외에 LIP 컨트롤러(122)가 더 구비하여, 이로 LIP 제어 로직(117)을 통해 로직 연산을 수행하게 된다. 즉, LIP 제어 로직(117)은 입출력 장치(119)를 통해 수신한 LIP 커맨드(CMD_LIP)를 통해 LIP 동작 수행을 위한, 연산 종류에 알맞게 페이지 버퍼 시퀀스 신호(PB_SEQ)를 생성하여 페이지 버퍼 블록(114)으로 송신하게 된다.Referring to FIGS. 3 to 5 , in the present invention, a separate operation circuit is not required to perform logic operations within the memory unit 100. However, the memory controller 120 of FIG. 3 includes a LIP controller 122 in addition to the existing memory controller 124, and logic operations are performed through the LIP control logic 117. That is, the LIP control logic 117 generates a page buffer sequence signal (PB_SEQ) appropriate for the type of operation for performing the LIP operation through the LIP command (CMD_LIP) received through the input/output device 119 to generate the page buffer block 114. ) will be transmitted.
도 6은 도 4의 페이지 버퍼 블록(114)을 구성하는 페이지 버퍼 회로의 일 예를 보인 회로도이다. 이를 참조하여, 본 발명의 페이지 버퍼 블록(114)을 구성하는 페이지 버퍼 회로는 기존 회로와 동일한 구성으로 실시될 수도 있으나, 후술하는 복수의 래치 회로로 구성하여 실시함이 바람직하다. 이에 관한 실시예에 대하여 설명한다.FIG. 6 is a circuit diagram showing an example of a page buffer circuit constituting the page buffer block 114 of FIG. 4. With reference to this, the page buffer circuit constituting the page buffer block 114 of the present invention may be implemented with the same configuration as the existing circuit, but is preferably implemented with a plurality of latch circuits to be described later. Examples related to this will be described.
본 발명의 일 실시예로, 상기 페이지 버퍼 블록(114)을 구성하는 복수의 래치 회로는 상단 노드(센싱 노드, SO)와 하단 노드(305) 사이에 동일한 회로 구성을 갖는 S-래치(310), P-래치(320) 및 Q-래치(330)를 포함한 회로가 병렬로 연결될 수 있다. 상기 래치들의 명칭은 설명을 위해 편의상 붙인 것이다. 또한, 도 6과 도 7을 참조하며, 바람직한 실시예로 2개의 입력 데이터(피연산자: a, b)와 하나의 출력 데이터를 저장하기 위한 3개의 래치로 페이지 버퍼 회로를 구성한 것에 대하여 설명하지만, 4개 이상은 물론 입력 데이터가 저장된 래치를 출력값으로 덮어쓸 수 있는 경우 등에는 2개의 래치만으로 로직 연산이 가능하게 구성할 수 있다. In one embodiment of the present invention, the plurality of latch circuits constituting the page buffer block 114 are S-latches 310 having the same circuit configuration between the upper node (sensing node, SO) and the lower node 305. , circuits including the P-latch 320 and the Q-latch 330 may be connected in parallel. The names of the latches are given for convenience of explanation. Also, with reference to FIGS. 6 and 7, a preferred embodiment will be described in which the page buffer circuit is configured with three latches for storing two input data (operands: a, b) and one output data. However, 4 In cases where more than two latches, of course, where input data is stored, can be overwritten with output values, logic operations can be performed with only two latches.
도 6에서와 같이, 상기 상단 노드(SO)에는 상기 비트라인들(BLs) 중 하나 이상과 공급 전압단(VDD)이 각각 비트라인 선택 트랜지스터들(342, 344)과 초기화 트랜지스터(350)로 병렬로 연결될 수 있다. 상기 하단 노드(305)에는 상기 상단 노드(SO)의 전압이 게이트로 인가되는 접지 트랜지스터(M1, 307)와 상기 LIP 제어 로직(117)의 PBRST 신호가 게이트로 인가되는 PBRST 트랜지스터(309)가 각각 접지단에 병렬로 연결될 수 있다.As shown in FIG. 6, at the top node SO, one or more of the bit lines BLs and a supply voltage terminal V DD are connected to bit line selection transistors 342 and 344 and an initialization transistor 350, respectively. Can be connected in parallel. The lower node 305 includes a ground transistor (M1, 307) through which the voltage of the upper node (SO) is applied to the gate and a PBRST transistor 309 through which the PBRST signal of the LIP control logic 117 is applied to the gate. It can be connected in parallel to the ground terminal.
상기 동일한 회로 구성은, 도 6과 같이, 상기 상단 노드(SO)에 병렬로 연결되어 상기 LIP 제어 로직(117)의 TRAN과 TRANn 신호로 각각 개폐되는 데이터 이동 트랜지스터(318, 328, 338)와 반전 데이터 이동 트랜지스터(316, 326, 336); 상기 데이터 이동 트랜지스터(318, 328, 338)와 접지단 사이에 연결되어 반전 데이터 저장 노드(313, 323, 333)의 전압으로 개폐되는 반전 데이터 구동 트랜지스터(308); 상기 반전 데이터 이동 트랜지스터(316, 326, 336)와 접지단 사이에 연결되어 데이터 저장 노드(311, 321, 331)의 전압으로 개폐되는 데이터 구동 트랜지스터(306); 상기 데이터 저장 노드(311, 321, 331)와 상기 반전 데이터 저장 노드(313, 323, 333) 사이에 입, 출력단이 서로 맞물려 연결된 제 1, 2 인버터(302, 304); 상기 데이터 저장 노드(311, 321, 331)와 상기 하단 노드(305) 사이에 상기 LIP 제어 로직(117)의 RST 신호로 개폐되는 RST 트랜지스터(312, 322, 332)); 및 상기 반전 데이터 저장 노드(313, 323, 333)와 상기 하단 노드(305) 사이에 상기 LIP 제어 로직(117)의 SET 신호로 개폐되는 SET 트랜지스터(314, 324, 334)를 포함할 수 있다.The same circuit configuration is inverted with the data transfer transistors 318, 328, and 338, which are connected in parallel to the top node (SO) and are opened and closed by the TRAN and TRANn signals of the LIP control logic 117, respectively, as shown in FIG. data movement transistors 316, 326, 336; an inverted data driving transistor (308) connected between the data moving transistors (318, 328, 338) and the ground terminal and opened and closed by the voltage of the inverted data storage nodes (313, 323, 333); A data driving transistor 306 connected between the inverting data transfer transistors 316, 326, and 336 and the ground terminal and opened and closed by the voltage of the data storage nodes 311, 321, and 331; First and second inverters (302, 304) whose input and output terminals are interconnected and connected between the data storage nodes (311, 321, 331) and the inverted data storage nodes (313, 323, 333); RST transistors (312, 322, 332) opened and closed by the RST signal of the LIP control logic 117 between the data storage nodes (311, 321, 331) and the lower node (305); And it may include SET transistors (314, 324, 334) between the inverted data storage nodes (313, 323, 333) and the lower node (305), which are opened and closed by the SET signal of the LIP control logic (117).
여기서, 상기 LIP 제어 로직(117)에서 페이지 버퍼 블록(114)에 보내지는 제어 신호들은 펄스 파형으로 S-래치(310), P-래치(320) 및 Q-래치(330)에 따라 구분되어, 도 6과 같이, TRAN 신호는 TRANS, TRANP, TRANQ로 인가되고, TRANn 신호는 TRANnS, TRANnP, TRANnQ로 인가되고, RST 신호는 SRST, PRST, QRST로 인가되고, SET 신호는 SSET, PSET, QSET으로 인가된다.Here, the control signals sent from the LIP control logic 117 to the page buffer block 114 are divided into pulse waveforms according to the S-latch 310, P-latch 320, and Q-latch 330, As shown in Figure 6, the TRAN signal is applied to TRANS, TRANP, and TRANQ, the TRANn signal is applied to TRANnS, TRANnP, and TRANnQ, the RST signal is applied to SRST, PRST, and QRST, and the SET signal is applied to SSET, PSET, and QSET. approved.
다음은, 도 6 및 도 7을 참조하며, 상술한 메모리 유닛을 이용한 로직 연산 방법에 대하여 설명한다.Next, referring to FIGS. 6 and 7, a logic operation method using the above-described memory unit will be described.
먼저, 도 6에는 비트라인(BL) 및 상단 노드(센싱 노드, SO)를 프리차지하는 PRECHSO 신호로 초기화 트랜지스터(350)를 턴온(turn on)시키고, 메모리 셀 어레이의 셀 데이터를 감지 증폭하여 상단 노드(SO)에 전달하는 BLSHF 신호와 소거 동작 시 비트라인에 인가되는 고전압으로부터 페이지 버퍼의 저전압 트랜지스터를 보호하기 위한 BLSLT 신호가 각각 비트라인 선택 트랜지스터 342와 344의 게이트에 인가되는 것으로 도시되어 있고, 외부 데이터 라인으로 데이터 입출력하는 회로는 생략되었다. 또한, 상술한 바와 같이, S, P, Q로 명명된 3개의 래치가 포함되어 있는데, 멀티 레벨 프로그램 동작 시 이들 중 하나의 래치(예컨대, S-래치)에 프로그램 진행 상황을 나타내는 데이터를 저장하고 프로그램/베리파이 루프 진행에 따라 업데이트될 수 있다. 나머지 래치(예컨대, P-래치와 Q-래치)에는 프로그램될 상태(state) 정보를 저장하고, 각 상태에 대한 베리파이 동작 시 참조한다. 각 래치에는 데이터 저장 노드(x=S, P, Q; 311, 321, 331)를 'H'(데이터 "1") 또는 'L'(데이터 "0")로 설정하는 제어 신호(xSET, xRST)가 있다. 상단 노드(SO)의 상태(VDD 또는 0V)를 참조하여 선택적으로 데이터 저장 노드의 데이터를 설정할 수도 있고, PBRST 신호가 'H'인 상태에서 일괄적으로 초기화할 수도 있다. 또한, 각 데이터 저장 노드의 데이터를 상단 노드(SO)로 옮기는 제어 신호(TRANx, TRANnx)가 포함되어 있다. 이러한 데이터 저장 노드의 설정 및 데이터 이동을 위한 수단(제어 신호들)을 활용하여, P-래치와 Q-래치의 데이터 저장 노드(321, 331)에 저장된 피연산자들(예컨대, a와 b)에 대한 논리 연산을 수행하고 S-래치의 데이터 저장 노드(311)에 연산 결과를 저장하는 동작이 가능하다.First, in Figure 6, the initialization transistor 350 is turned on with a PRECHSO signal that precharges the bit line (BL) and the upper node (sensing node, SO), and the cell data of the memory cell array is detected and amplified to transmit the upper node. The BLSHF signal transmitted to (SO) and the BLSLT signal to protect the low-voltage transistor of the page buffer from the high voltage applied to the bit line during the erase operation are shown as being applied to the gates of the bit line selection transistors 342 and 344, respectively, and are shown as being applied to the gates of the bit line selection transistors 342 and 344, respectively. Circuits for inputting and outputting data through data lines are omitted. In addition, as described above, three latches named S, P, and Q are included. When a multi-level program is operated, data indicating the program progress is stored in one of these latches (e.g., S-latch). It may be updated as the program/verify loop progresses. State information to be programmed is stored in the remaining latches (e.g., P-latch and Q-latch), and is referred to when verifying each state. Each latch has control signals (xSET, xRST) that set the data storage node (x=S, P, Q; 311, 321, 331) to 'H' (data "1") or 'L' (data "0"). ). The data of the data storage node can be selectively set by referring to the state (V DD or 0V) of the top node (SO), or it can be initialized all at once with the PBRST signal at 'H'. Additionally, it includes control signals (TRANx, TRANnx) that move the data from each data storage node to the top node (SO). By utilizing means (control signals) for setting and data movement of these data storage nodes, the operands (e.g., a and b) stored in the data storage nodes 321 and 331 of the P-latch and Q-latch are It is possible to perform a logical operation and store the operation result in the data storage node 311 of the S-latch.
도 7을 참조하면, 원하는 로직을 수행하기 위해 순서에 맞게 펄스 신호를 인가하면 P-래치와 Q-래치에 로드된 데이터의 연산 결과를 S-래치에 저장할 수 있다.Referring to FIG. 7, if pulse signals are applied in order to perform the desired logic, the operation results of the data loaded into the P-latch and Q-latch can be stored in the S-latch.
3개의 래치(310, 320, 330) 각각 인버터 2개(302, 304)가 입, 출력단이 서로 맞물려 연결되어 컴퓨팅 시스템(10)에 전원이 공급되고 있을 때만 저장된 값을 계속 유지한다. 필요에 따라 연산 결과를 비휘발성 메모리 소자에 저장하기 위해서는 LIP 동작을 수행한 후, S-래치에 LIP 연산 결과가 저장되면 S-래치의 데이터를 비트라인으로 전달하여 메모리 셀 어레이(112)에 저장할 수 있다.The input and output terminals of three latches (310, 320, 330) and two inverters (302, 304) are interlocked and connected to maintain the stored value only when power is supplied to the computing system 10. In order to store the operation result in a non-volatile memory device as needed, after performing the LIP operation, when the LIP operation result is stored in the S-latch, the data of the S-latch can be transferred to the bit line and stored in the memory cell array 112. You can.
상술한 메모리 유닛을 이용한 로직 연산 방법은, 구체적으로, 상기 페이지 버퍼 블록(114) 내의 복수의 래치 회로 중 하나인 S-래치(310)는 연산 결과 저장 래치로 하고, 나머지 P-래치(320) 및 Q-래치(330)에 메모리 셀 어레이(112)의 내부에 저장되어 있는 데이터 또는 입출력 장치(119)를 통해 외부로부터 전달받은 데이터를 저장하는 제 1 단계; 및 상기 상단 노드(SO)를 데이터 "1" 상태로 초기화하고, 상기 S-래치(310)의 데이터 저장 노드(311)에 데이터 "0" 또는 데이터 "1" 상태로 초기화하는 제 2 단계를 포함하여 실시될 수 있다.The logic operation method using the above-described memory unit is specifically, the S-latch 310, one of the plurality of latch circuits in the page buffer block 114, is used as an operation result storage latch, and the remaining P-latch 320 is used as an operation result storage latch. and a first step of storing data stored inside the memory cell array 112 or data received from the outside through the input/output device 119 in the Q-latch 330; And a second step of initializing the top node (SO) to the data "1" state and initializing the data storage node 311 of the S-latch 310 to the data "0" or data "1" state. This can be implemented.
상기 제 1 단계는 데이터 로드 단계로, 메모리 셀 어레이(112)의 내부에 저장되어 있는 데이터 혹은 입출력 장치(119)를 통해 외부로부터 전달받은 데이터를 페이지 버퍼 블록(114) 내의 P-래치(320) 혹은 Q-래치(330)에 로드해준다. 설명을 위해, 도 7의 페이지 버퍼 동작 시퀀스 표에서는 P-래치(320)에는 데이터 “a”를 로드하고, Q-래치(330)에는 데이터 “b”를 로드해준다.The first step is a data load step, in which data stored inside the memory cell array 112 or data received from the outside through the input/output device 119 is loaded into the P-latch 320 in the page buffer block 114. Or load it into the Q-latch (330). For explanation, in the page buffer operation sequence table of FIG. 7, data “a” is loaded into the P-latch 320, and data “b” is loaded into the Q-latch 330.
상기 제 2 단계는 초기화 단계로, LIP를 수행하기 위해 PRECHSO 펄스 신호를 통해 상단 노드(SO)를 high 상태인 데이터“1”로 프리차지 해준다. 이후 각각의 연산에 따라 S-래치(310)의 데이터 저장 노드(311, S 노드)를 “0” 상태 또는 “1” 상태로 초기화 해준다. 이는 상단 노드(SO)를 참조하여 LIP 연산 결과를 S-래치(310)에 저장 하는 과정에서, 상단 노드(SO)가 low 상태인 데이터“0”이라면 접지 트랜지스터(M1, 307)의 게이트에 0 V가 인가되어 S-래치(310)에 연산 결과값이 저장되지 않는 경우를 대비하기 위함이다. 이는 후술하는 XOR 연산 등을 위해 중간 결과를 P-래치 또는 Q-래치에 저장하여 활용할 경우에도 마찬가지이다.The second step is an initialization step, and in order to perform LIP, the top node (SO) is precharged with high data “1” through the PRECHSO pulse signal. Afterwards, the data storage node (311, S node) of the S-latch (310) is initialized to the “0” state or “1” state according to each operation. In the process of storing the LIP operation result in the S-latch 310 with reference to the top node (SO), if the top node (SO) is in a low state and data is “0”, it is transmitted to the gate of the ground transistor (M 1 , 307). This is to prepare for a case where 0 V is applied and the operation result is not stored in the S-latch 310. This also applies when intermediate results are stored and used in a P-latch or Q-latch for XOR operations, etc., which will be described later.
상기 제 2 단계에서 S-래치(310)의 초기화는 초기화 트랜지스터(350)에 PRECHSO 신호로 턴온(turn on)시켜 상단 노드(SO)에 공급 전압(VDD)를 인가하여 high 상태인 데이터“1”로 프리차지 해주고, 상기 상단 노드(SO)의 초기화 상태에서 S-래치(310)의 RST 트랜지스터(312)에 SRST 신호로 턴온시켜 데이터 "0" 상태 또는 S-래치(310)의 SET 트랜지스터(314)에 SSET 신호로 턴온시켜 데이터 "1" 상태로 할 수 있다.In the second step, the initialization of the S-latch 310 is performed by turning on the initialization transistor 350 with the PRECHSO signal and applying the supply voltage (V DD ) to the upper node (SO) to generate data “1” in a high state. ”, and in the initialization state of the upper node (SO), the RST transistor 312 of the S-latch 310 is turned on with an SRST signal to enter the data “0” state or the SET transistor of the S-latch 310 ( 314) can be turned on with the SSET signal to set the data to "1" state.
상기 실시예에서, 상기 제 2 단계에 이어, 상단 노드(SO)를 데이터 "1" 상태로 초기화하고, TRAN 신호 또는 TRANn 신호를 P-래치(320) 및 Q-래치(330) 중 하나 이상에 동시 또는 순차적으로 인가하여 P-래치(320) 및 Q-래치(330)에 저장된 데이터를 상단 노드(SO)로 전달하여 데이터 이동 또는 로직 연산을 하는 제 3 단계를 더 포함할 수 있다.In the above embodiment, following the second step, the top node (SO) is initialized to the data "1" state and the TRAN signal or TRANn signal is connected to one or more of the P-latch 320 and the Q-latch 330. A third step may be further included in which the data stored in the P-latch 320 and the Q-latch 330 are applied simultaneously or sequentially to the top node (SO) to perform data movement or logic operation.
상기 제 3 단계는 데이터 이동 및/또는 로직 연산을 하는 단계로, 상단 노드(SO)를 초기화하고 TRAN 신호 혹은 TRANn 신호를 통해 P-래치(320) 또는 Q-래치(330)의 데이터를 상단 노드(SO)로 전달시킨다. 예를 들어, TRANP 펄스 신호를 인가하면 P-래치의 데이터 저장 노드(321)에 저장된 데이터 “”가 상단 노드(SO)로 전달되고, TRANnP 펄스 신호를 인가하면 P-래치의 데이터 저장 노드(321)에 저장된 데이터의 반전 데이터 “” 가 전달된다. 또한, TRANP와 TRANQ 펄스 신호를 동시에 혹은 순차적으로 인가하면, P-래치의 데이터 저장 노드(321)에 저장된 데이터 “” 와 Q-래치의 데이터 저장 노드(331)에 저장된 데이터 "” 2개 모두 “1”인 경우에만 상단 노드(SO)가 초기 상태인 “1”을 유지하므로, 두 데이터의 논리곱 ""가 상단 노드(SO)에 전달된다. The third step is a step of data movement and/or logic operation, where the top node (SO) is initialized and the data of the P-latch 320 or Q-latch 330 is transferred to the top node through the TRAN signal or TRANn signal. Forward it to (SO). For example, when a TRANP pulse signal is applied, the data stored in the data storage node 321 of the P-latch is “ ” is transmitted to the top node (SO), and when the TRANnP pulse signal is applied, the inverted data of the data stored in the data storage node 321 of the P-latch is “ ” is delivered. In addition, when the TRANP and TRANQ pulse signals are applied simultaneously or sequentially, the data stored in the data storage node 321 of the P-latch is ” and data stored in the data storage node 331 of the Q-latch “ ” Only when both are “1”, the top node (SO) maintains the initial state “1”, so the logical product of the two data “ " is delivered to the top node (SO).
상기 제 3 단계 후에 상기 제 3 단계에서 상기 데이터 이동 및/또는 상기 로직 연산의 결과로 상기 상단 노드(SO)의 데이터가 "0"일 경우 상기 S-래치(310)의 데이터 저장 노드(311)의 데이터는 초기화 상태로 유지하고, 상기 상단 노드(SO)의 데이터가 "1"일 경우 S-래치(310)의 SET 트랜지스터(314)에 SSET 신호로 턴온시켜 상기 S-래치의 데이터 저장 노드(311)의 데이터는 "1"로 저장하거나 S-래치(310)의 RST 트랜지스터(312)에 SRST 신호로 턴온시켜 상기 S-래치의 데이터 저장 노드(311)의 데이터는 반전 데이터 "0"으로 저장하는 제 4 단계를 더 포함할 수 있다.After the third step, when the data of the top node (SO) is “0” as a result of the data movement and/or the logic operation in the third step, the data storage node 311 of the S-latch 310 The data is maintained in the initialized state, and when the data of the top node (SO) is "1", the SET transistor 314 of the S-latch 310 is turned on with an SSET signal to store the data storage node of the S-latch ( The data in 311) is stored as “1” or the RST transistor 312 of the S-latch 310 is turned on with an SRST signal, and the data in the data storage node 311 of the S-latch is stored as inverted data “0”. A fourth step may be further included.
이하에서는, 도 6 및 도 7을 참조하며, 본 발명의 구체적인 실시예로 OR 연산, AND 연산 및 XOR 연산을 수행하는 방법에 대하여 설명한다.Hereinafter, with reference to FIGS. 6 and 7, a method of performing an OR operation, an AND operation, and an XOR operation will be described in a specific embodiment of the present invention.
먼저, OR 연산은 상기 제 1 단계에서 상기 P-래치(320)에 데이터 "a"를, 상기 Q-래치(330)에 데이터 "b"를 각각 저장하고, 상기 제 2 단계에서 상기 S-래치(310)의 데이터 저장 노드(311)의 초기화는 S-래치(310)의 SET 트랜지스터(314)에 SSET 신호로 턴온시켜 데이터 "1" 상태로 한다.First, the OR operation stores data “a” in the P-latch 320 and data “b” in the Q-latch 330 in the first step, and stores data “b” in the S-latch in the second step. The data storage node 311 of 310 is initialized by turning on the SET transistor 314 of the S-latch 310 with the SSET signal to set the data to a "1" state.
이어, 상기 제 3 단계에서 상기 TRANn 신호를, 즉 TRANnP와 TRANnQ 신호들을 각각 상기 P-래치(320) 및 상기 Q-래치(330)에 동시 또는 순차적으로 인가하여 상기 P-래치(320) 및 상기 Q-래치(330)의 각 데이터 저장 노드(321)(331)에 저장된 데이터의 반전 데이터들을 상기 상단 노드(SO)로 이동하여 연산을 수행하고, 상기 제 4 단계에서 S-래치(310)의 RST 트랜지스터(312)에 SRST 신호로 턴온시켜 상기 S-래치(310)의 데이터 저장 노드(311)의 데이터는 상기 연산의 반전 데이터()가 저장되는 것으로 수행할 수 있다.Then, in the third step, the TRANn signal, that is, the TRANnP and TRANnQ signals, are applied simultaneously or sequentially to the P-latch 320 and the Q-latch 330, respectively, to Move the inverted data of the data stored in each data storage node (321) (331) of the Q-latch (330) to the upper node (SO) The operation is performed, and in the fourth step, the RST transistor 312 of the S-latch 310 is turned on with an SRST signal, so that the data of the data storage node 311 of the S-latch 310 is the inverted data of the operation. ( ) can be performed by storing it.
AND 연산은 상기 제 1 단계에서 상기 P-래치(320)에 데이터 "a"를, 상기 Q-래치(330)에 데이터 "b"를 각각 저장하고, 상기 제 2 단계에서 상기 S-래치(310)의 데이터 저장 노드(311)의 초기화는 S-래치(310)의 RST 트랜지스터(312)에 SRST 신호로 턴온시켜 데이터 "0" 상태로 한다.The AND operation stores data “a” in the P-latch 320 and data “b” in the Q-latch 330 in the first step, and stores data “b” in the S-latch 310 in the second step. )'s data storage node 311 is initialized by turning on the RST transistor 312 of the S-latch 310 with an SRST signal to set the data to "0" state.
이어, 상기 제 3 단계에서 상기 TRAN 신호를, 즉 TRANP와 TRANQ 신호들을 각각 상기 P-래치(320) 및 상기 Q-래치(330)에 동시 또는 순차적으로 인가하여 상기 P-래치(320) 및 상기 Q-래치(330)의 각 데이터 저장 노드(321)(331)에 저장된 데이터들을 상기 상단 노드(SO)로 이동하여 연산을 수행하고, 상기 제 4 단계에서 S-래치(310)의 SET 트랜지스터(314)에 SSET 신호로 턴온시켜 상기 S-래치(310)의 데이터 저장 노드(311)의 데이터는 상기 연산의 결과 데이터( )가 저장되는 것으로 수행할 수 있다.Then, in the third step, the TRAN signal, that is, the TRANP and TRANQ signals, are applied simultaneously or sequentially to the P-latch 320 and the Q-latch 330, respectively, to The data stored in each data storage node (321) (331) of the Q-latch (330) is moved to the upper node (SO). The operation is performed, and in the fourth step, the SET transistor 314 of the S-latch 310 is turned on with an SSET signal, so that the data of the data storage node 311 of the S-latch 310 is the result data of the operation. ( ) can be performed by storing it.
XOR 연산은 상기 제 1 단계에서 상기 P-래치(320)에 데이터 "a"를, 상기 Q-래치(330)에 데이터 "b"를 각각 저장하고, 상기 제 2 단계에서 상기 S-래치(310)의 데이터 저장 노드(311)의 초기화는 S-래치(310)의 RST 트랜지스터(312)에 SRST 신호로 턴온시켜 데이터 "0" 상태로 한다.The XOR operation stores data “a” in the P-latch 320 and data “b” in the Q-latch 330 in the first step, and stores data “b” in the S-latch 310 in the second step. )'s data storage node 311 is initialized by turning on the RST transistor 312 of the S-latch 310 with an SRST signal to set the data to "0" state.
이어, 상기 제 3 단계에서 TRANnP 신호를 상기 P-래치(320)에, TRANQ 신호를 상기 Q-래치(330)에 각각 동시 또는 순차적으로 인가하여 상기 상단 노드에서 의 1차 연산을 하고, 상기 1차 연산의 결과는 S-래치(310)의 SET 트랜지스터(314)에 SSET 신호로 턴온시켜 상기 S-래치(310)의 데이터 저장 노드(311)의 데이터에 저장한 다음, 상기 초기화 트랜지스터(350)에 PRECHSO 신호로 상기 상단 노드(SO)를 데이터 "1" 상태로 다시 초기화하고, TRANP 신호를 상기 P-래치(320)에, TRANnQ 신호를 상기 Q-래치(330)에 각각 동시 또는 순차적으로 인가하여 상기 상단 노드(SO)에서 의 2차 연산을 하고, 상기 P-래치(320)의 RST 트랜지스터(322)에 PRST 신호 및 상기 PBRST 트랜지스터(309)에 PBRST 신호를 각각 동시 인가하여 상기 P-래치(320)의 데이터 저장 노드(321)를 데이터 "0" 상태로 초기화하고 상기 P-래치(320)의 SET 트랜지스터(324)에 PSET 신호를 인가하여 상기 P-래치(320)의 데이터 저장 노드(321)에 상기 2차 연산의 결과를 저장하고, 상기 초기화 트랜지스터(350)에 PRECHSO 신호로 상기 상단 노드(SO)를 데이터 "1" 상태로 다시 초기화하고, TRANnS 신호를 상기 S-래치(310)에, TRANnP 신호를 상기 P-래치(320)에 각각 동시 또는 순차적으로 인가하여 상기 상단 노드(SO)에서 의 3차 연산을 하고, 상기 S-래치(310)의 SET 트랜지스터(314)에 SSET 신호 및 상기 PBRST 트랜지스터(309)에 PBRST 신호를 각각 동시 인가하여 상기 S-래치(310)의 데이터 저장 노드(311)를 데이터 "1" 상태로 초기화한 다음, 상기 S-래치(310)의 RST 트랜지스터(312)에 SRST 신호를 인가하여 상기 S-래치(310)의 데이터 저장 노드(311)의 데이터는 상기 3차 연산의 반전 데이터()가 저장되는 것으로 수행할 수 있다.Then, in the third step, the TRANnP signal is applied to the P-latch 320 and the TRANQ signal is applied to the Q-latch 330 simultaneously or sequentially at the top node. The first operation is performed, and the result of the first operation is turned on with the SSET signal in the SET transistor 314 of the S-latch 310 and stored in the data of the data storage node 311 of the S-latch 310. Then, the top node (SO) is re-initialized to the data "1" state with the PRECHSO signal to the initialization transistor 350, the TRANP signal is applied to the P-latch 320, and the TRANnQ signal is applied to the Q-latch ( 330) simultaneously or sequentially from the top node (SO). Perform the secondary operation of and simultaneously apply the PRST signal to the RST transistor 322 of the P-latch 320 and the PBRST signal to the PBRST transistor 309, respectively, to obtain the data storage node of the P-latch 320 ( 321) is initialized to the data "0" state and a PSET signal is applied to the SET transistor 324 of the P-latch 320 to perform the secondary operation in the data storage node 321 of the P-latch 320. The result is stored, and the top node (SO) is re-initialized to the data "1" state with the PRECHSO signal to the initialization transistor 350, the TRANnS signal to the S-latch 310, and the TRANnP signal to the P- Simultaneously or sequentially apply to each latch 320 from the upper node (SO) Perform the third operation, and simultaneously apply the SSET signal to the SET transistor 314 of the S-latch 310 and the PBRST signal to the PBRST transistor 309, respectively, to generate the data storage node of the S-latch 310 ( 311) is initialized to the data "1" state, and then an SRST signal is applied to the RST transistor 312 of the S-latch 310, so that the data of the data storage node 311 of the S-latch 310 is Inverted data of 3rd order operation ( ) can be performed by storing it.
도 7에 보여주는 나머지 연산들도 상기 구체적인 실시예들를 참조하여 제시한 순서대로 제어 펄스 신호들을 인가하면 해당 연산을 수행할 수 있다.The remaining operations shown in FIG. 7 can also be performed by applying control pulse signals in the order presented with reference to the specific embodiments above.
상술한 실시예들을 참조하여, 보다 일반적인 실시예로, 페이지 버퍼 블록(114) 내의 복수의 래치 회로 중 어느 하나는 연산 결과 저장 래치로 하고, 나머지 래치에 메모리 셀 어레이의 내부에 저장되어 있는 데이터 또는 상기 입출력 장치를 통해 외부로부터 전달받은 데이터를 저장하는 제 1 단계; 상기 상단 노드를 데이터 "1" 상태로 초기화하고, 상기 연산 결과 저장 래치의 데이터 저장 노드에 "0" 상태 또는 "1" 상태로 초기화하는 제 2 단계; 상기 TRAN 신호 또는 상기 TRANn 신호를 상기 나머지 래치 중 하나 이상에 동시 또는 순차적으로 인가하여 각 래치에 저장된 데이터를 상기 상단 노드로 전달하여 데이터 이동 또는 로직 연산을 하는 제 3 단계; 및 상기 제 3 단계에서 상기 데이터 이동 또는 상기 로직 연산의 결과로 상기 상단 노드의 데이터가 "0"일 경우 상기 저장 래치의 데이터 저장 노드의 데이터는 초기화 상태로 유지하고, 상기 상단 노드의 데이터가 "1"일 경우 상기 SET 트랜지스터에 SSET 신호로 턴온시켜 상기 저장 래치의 데이터 저장 노드의 데이터는 "1"로 저장하거나 상기 RST 트랜지스터에 SRST 신호로 턴온시켜 상기 S-래치의 데이터 저장 노드의 데이터는 반전 데이터 "0"으로 저장하는 제 4 단계를 더 포함하여 실시될 수 있다.Referring to the above-described embodiments, in a more general embodiment, one of the plurality of latch circuits in the page buffer block 114 is used as an operation result storage latch, and the remaining latches contain data stored inside the memory cell array or A first step of storing data received from outside through the input/output device; A second step of initializing the top node to a data "1" state and initializing the data storage node of the operation result storage latch to a "0" state or a "1" state; A third step of applying the TRAN signal or the TRANn signal to one or more of the remaining latches simultaneously or sequentially to transfer the data stored in each latch to the upper node to perform data movement or logic operation; And in the third step, if the data of the upper node is “0” as a result of the data movement or the logic operation, the data of the data storage node of the storage latch is maintained in an initialized state, and the data of the upper node is “0”. If it is 1", the SET transistor is turned on with the SSET signal to store the data in the data storage node of the storage latch as "1", or the RST transistor is turned on with the SRST signal to invert the data in the data storage node of the S-latch. It may be performed by further including a fourth step of storing data as “0”.
상기 로직 연산 이후 필요에 따라 S-래치(310)에 저장된 LIP 연산 결과( 혹은 DATA_R)를 비트라인(BL)으로 전달하여 메모리 셀 어레이(112)의 메모리 소자에 바로 저장하거나 메모리 컨트롤러(120)로 전달하여 외부로 출력할 수 있다.After the logic operation, the LIP operation result stored in the S-latch 310 as necessary ( Alternatively, DATA_R) can be transmitted to the bit line (BL) and directly stored in the memory element of the memory cell array 112, or transmitted to the memory controller 120 and output externally.
더욱 복잡한 식은 페이지 버퍼에서 연산한 부울 로직 연산을 메모리 셀 어레이(112)로 옮겨 중간 연산 결과를 저장시켜 이를 활용하여 부울 로직 연산의 조합들 또한 연산이 가능하다. 전가산기의 경우 다음과 같이 표현할 수 있다.In a more complex expression, combinations of Boolean logic operations can also be calculated by moving the Boolean logic operation calculated in the page buffer to the memory cell array 112 and storing the intermediate operation result. In the case of a full adder, it can be expressed as follows.
이러한 수식은 래치가 4개 이상이라면 래치만을 활용하여 결과를 얻어낼 수 있지만, 래치가 3개일 경우에는 중간 계산 결과를 메모리 셀에 저장하여 두고 다른 항들을 계산하여 다시 페이지 버퍼로 옮겨 최종 결과를 얻어낼 수 있다. 이처럼 더 많은 항들의 조합도 메모리 셀 어레이(112)와 페이지 버퍼 블록(114) 간의 데이터 이동으로 구현이 가능하다.If there are more than 4 latches, this formula can obtain a result using only the latches. However, if there are 3 latches, the intermediate calculation result is stored in a memory cell, other terms are calculated, and the final result is obtained by calculating the other terms again. I can pay it. In this way, more combinations of terms can be implemented by moving data between the memory cell array 112 and the page buffer block 114.
기존의 von Neumann 아키텍처에서는 메모리 유닛으로부터 CPU로 연산이 필요한 데이터를 옮기고 CMOS 기반의 ALU에서 연산을 수행하고 다시 이 값을 저장하기 위해 메모리 유닛으로 결과 데이터를 가지고 와서 저장한다. In the existing von Neumann architecture, data requiring calculation is moved from the memory unit to the CPU, the calculation is performed in the CMOS-based ALU, and the resulting data is brought back to the memory unit to store the value.
그러나 본 발명에서 제안하는 logic in page buffer를 활용한 컴퓨팅 방식을 이용한다면, 메모리 장치의 제어 로직에 페이지 버퍼 회로의 신호 시퀀스 발생 회로만을 추가하여 버스(240)를 통한 데이터의 이동이 없이 메모리 유닛 내의 페이지 버퍼에서 모든 로직 연산이 가능하다. 또한, 연산 결과를 비트라인으로 전달하여 결과를 메모리 어레이에 저장할 수 있다. 즉, 메모리 유닛과 CPU 사이의 데이터 이동을 제거함으로써, 전체 시스템의 성능을 개선할 수 있고, 에너지 소모를 획기적으로 감소시킬 수 있다.However, if the computing method using logic in page buffer proposed in the present invention is used, only the signal sequence generation circuit of the page buffer circuit is added to the control logic of the memory device, so that data is stored within the memory unit without moving through the bus 240. All logic operations are possible in the page buffer. Additionally, the calculation results can be transferred to the bit line and the results can be stored in the memory array. In other words, by eliminating data movement between the memory unit and the CPU, the performance of the overall system can be improved and energy consumption can be dramatically reduced.
100: 메모리 유닛 110: 메모리 장치
112: 메모리 셀 어레이 114: 페이지 버퍼 블록
116: 엑스 디코더 118: 제어 로직
119: 입출력 장치 120: 메모리 컨트롤러
122: LIP 컨트롤러 124: 기존 메모리 컨트롤러
200: 프로세싱 유닛100: memory unit 110: memory device
112: memory cell array 114: page buffer block
116: X decoder 118: Control logic
119: input/output device 120: memory controller
122: LIP controller 124: Conventional memory controller
200: processing unit
Claims (10)
상기 메모리 장치는 메모리 셀 어레이, 상기 메모리 셀 어레이의 비트라인들과 연결된 페이지 버퍼 블록, 상기 메모리 셀 어레이의 워드라인들과 연결된 엑스 디코더, 상기 페이지 버퍼 블록과 연결된 입출력 장치 및 상기 입출력 장치로부터 주소 및 제어명령을 받아 상기 엑스 디코더와 상기 페이지 버퍼 블록을 제어하는 제어 로직을 포함하고,
상기 페이지 버퍼 블록은 복수의 래치 회로를 병렬로 연결하여 상기 메모리 셀 어레이에 저장된 내부 피연산자 또는 상기 입출력 장치로 입력된 외부 피연산자로 로직 연산을 수행하도록 구비하고,
상기 제어 로직에는 상기 로직 연산을 위한 LIP 제어 로직이 더 구비되고,
상기 메모리 컨트롤러에는 상기 LIP 제어 로직을 통해 상기 로직 연산을 수행하기 위한 LIP 컨트롤러가 더 구비되고,
상기 복수의 래치 회로는 상단 노드와 하단 노드 사이에 동일한 회로 구성을 갖는 S-래치, P-래치 및 Q-래치를 포함한 회로가 병렬로 연결되고,
상기 상단 노드에는 상기 비트라인들 중 하나 이상과 공급 전압단이 각각 비트라인 선택 트랜지스터들과 초기화 트랜지스터로 병렬로 연결되고,
상기 하단 노드에는 상기 상단 노드의 전압이 게이트로 인가되는 접지 트랜지스터와 상기 LIP 제어 로직의 PBRST 신호가 게이트로 인가되는 PBRST 트랜지스터가 각각 접지단에 병렬로 연결되고,
상기 동일한 회로 구성은 상기 상단 노드에 병렬로 연결되어 상기 LIP 제어 로직의 TRAN과 TRANn 신호로 각각 개폐되는 데이터 이동 트랜지스터와 반전 데이터 이동 트랜지스터;
상기 데이터 이동 트랜지스터와 접지단 사이에 연결되어 반전 데이터 저장 노드의 전압으로 개폐되는 반전 데이터 구동 트랜지스터;
상기 반전 데이터 이동 트랜지스터와 접지단 사이에 연결되어 데이터 저장 노드의 전압으로 개폐되는 데이터 구동 트랜지스터;
상기 데이터 저장 노드와 상기 반전 데이터 저장 노드 사이에 입, 출력단이 서로 맞물려 연결된 제 1, 2 인버터;
상기 데이터 저장 노드와 상기 하단 노드 사이에 상기 LIP 제어 로직의 RST 신호로 개폐되는 RST 트랜지스터; 및
상기 반전 데이터 저장 노드와 상기 하단 노드 사이에 상기 LIP 제어 로직의 SET 신호로 개폐되는 SET 트랜지스터를 포함하는 것을 특징으로 하는 메모리 유닛.
In a memory unit consisting of a memory device and a memory controller,
The memory device includes a memory cell array, a page buffer block connected to bit lines of the memory cell array, an X decoder connected to word lines of the memory cell array, an input/output device connected to the page buffer block, and an address and Includes control logic to receive control commands and control the X decoder and the page buffer block,
The page buffer block is equipped to connect a plurality of latch circuits in parallel to perform logic operations with internal operands stored in the memory cell array or external operands input to the input/output device,
The control logic is further provided with LIP control logic for the logic operation,
The memory controller is further provided with a LIP controller for performing the logic operation through the LIP control logic,
The plurality of latch circuits include circuits including an S-latch, a P-latch, and a Q-latch having the same circuit configuration between an upper node and a lower node, connected in parallel,
At the upper node, one or more of the bit lines and a supply voltage terminal are connected in parallel with bit line selection transistors and an initialization transistor, respectively,
At the lower node, a ground transistor to which the voltage of the upper node is applied to the gate and a PBRST transistor to which the PBRST signal of the LIP control logic is applied to the gate are each connected in parallel to the ground terminal,
The same circuit configuration includes a data transfer transistor and an inverting data transfer transistor connected in parallel to the upper node and opened and closed by the TRAN and TRANn signals of the LIP control logic, respectively;
an inverted data driving transistor connected between the data moving transistor and the ground terminal and opened and closed by the voltage of the inverted data storage node;
a data driving transistor connected between the inverting data transfer transistor and the ground terminal and opened and closed by the voltage of the data storage node;
First and second inverters whose input and output terminals are interconnected and connected between the data storage node and the inverted data storage node;
an RST transistor opened and closed by the RST signal of the LIP control logic between the data storage node and the lower node; and
A memory unit comprising a SET transistor opened and closed by a SET signal of the LIP control logic between the inverted data storage node and the bottom node.
상기 페이지 버퍼 블록 내의 복수의 래치 회로 중 하나인 상기 S-래치는 연산 결과 저장 래치로 하고, 나머지 상기 P-래치 및 상기 Q-래치에 상기 메모리 셀 어레이의 내부에 저장되어 있는 데이터 또는 상기 입출력 장치를 통해 외부로부터 전달받은 데이터를 저장하는 제 1 단계; 및
상기 상단 노드를 데이터 "1" 상태로 초기화하고, 상기 S-래치의 데이터 저장 노드에 데이터 "0" 또는 데이터 "1" 상태로 초기화하는 제 2 단계를 포함하는 것을 특징으로 하는 메모리 유닛을 이용한 로직 연산 방법.
In the logic operation method using the memory unit of claim 3,
The S-latch, which is one of a plurality of latch circuits in the page buffer block, is used as an operation result storage latch, and the remaining P-latches and the Q-latches contain data stored inside the memory cell array or the input/output device. A first step of storing data received from outside through; and
A logic using a memory unit comprising a second step of initializing the upper node to a data "1" state and initializing the data storage node of the S-latch to a data "0" or data "1" state. How to calculate.
상기 TRAN 신호 또는 상기 TRANn 신호를 상기 P-래치 및 상기 Q-래치 중 하나 이상에 동시 또는 순차적으로 인가하여 상기 P-래치 및 상기 Q-래치에 저장된 데이터를 상기 상단 노드로 전달하여 데이터 이동 또는 로직 연산을 하는 제 3 단계를 더 포함하는 것을 특징으로 하는 메모리 유닛을 이용한 로직 연산 방법.
According to claim 4,
The TRAN signal or the TRANn signal is applied simultaneously or sequentially to one or more of the P-latch and the Q-latch to transfer the data stored in the P-latch and the Q-latch to the upper node to perform data movement or logic. A logic calculation method using a memory unit, further comprising a third step of performing calculation.
상기 제 2 단계에서 상기 상단 노드의 초기화는 상기 초기화 트랜지스터에 PRECHSO 신호로 턴온(turn on)시켜 상기 상단 노드에 공급 전압(VDD)를 인가하여 데이터 "1" 상태로 하고, 상기 S-래치의 데이터 저장 노드의 초기화는 상기 상단 노드의 초기화 상태에서 상기 RST 트랜지스터에 SRST 신호로 턴온시켜 데이터 "0" 상태 또는 상기 SET 트랜지스터에 SSET 신호로 턴온시켜 데이터 "1" 상태로 하고,
상기 제 3 단계 후에 상기 제 3 단계에서 상기 데이터 이동 또는 상기 로직 연산의 결과로 상기 상단 노드의 데이터가 "0"일 경우 상기 S-래치의 데이터 저장 노드의 데이터는 초기화 상태로 유지하고, 상기 상단 노드의 데이터가 "1"일 경우 상기 SET 트랜지스터에 SSET 신호로 턴온시켜 상기 S-래치의 데이터 저장 노드의 데이터는 "1"로 저장하거나 상기 RST 트랜지스터에 SRST 신호로 턴온시켜 상기 S-래치의 데이터 저장 노드의 데이터는 반전 데이터 "0"으로 저장하는 제 4 단계를 더 포함하는 것을 특징으로 하는 메모리 유닛을 이용한 로직 연산 방법.
According to claim 5,
In the second step, the initialization of the upper node is performed by turning on the initialization transistor with a PRECHSO signal to apply a supply voltage (V DD ) to the upper node to set it to a data "1" state, and the S-latch Initialization of the data storage node is performed by turning on the RST transistor with an SRST signal to a data "0" state or by turning on the SET transistor with an SSET signal to a data "1" state in the initialization state of the upper node,
After the third step, if the data of the upper node is “0” as a result of the data movement or the logic operation in the third step, the data of the data storage node of the S-latch is maintained in an initialized state, and the upper When the data of the node is "1", the SET transistor is turned on with an SSET signal to store the data of the S-latch, and the data of the node is stored as "1", or the RST transistor is turned on by an SRST signal to store the data of the S-latch. A logic operation method using a memory unit, further comprising a fourth step of storing the data of the storage node as inverted data “0”.
상기 제 1 단계에서 상기 P-래치에 데이터 "a"를, 상기 Q-래치에 데이터 "b"를 각각 저장하고,
상기 제 2 단계에서 상기 S-래치의 데이터 저장 노드의 초기화는 상기 SET 트랜지스터에 SSET 신호로 턴온시켜 데이터 "1" 상태로 하고,
상기 제 3 단계에서 상기 TRANn 신호를 상기 P-래치 및 상기 Q-래치에 동시 또는 순차적으로 인가하여 상기 P-래치 및 상기 Q-래치의 각 데이터 저장 노드에 저장된 반전 데이터들을 상기 상단 노드로 이동하여 연산을 수행하고,
상기 제 4 단계에서 상기 RST 트랜지스터에 SRST 신호로 턴온시켜 상기 S-래치의 데이터 저장 노드의 데이터는 상기 연산의 반전 데이터()가 저장되는 것으로 OR 연산을 수행하는 것을 특징으로 하는 메모리 유닛을 이용한 로직 연산 방법.
According to claim 6,
In the first step, data “a” is stored in the P-latch and data “b” is stored in the Q-latch, respectively,
In the second step, the data storage node of the S-latch is initialized by turning on the SET transistor with an SSET signal to set the data to "1" state,
In the third step, the TRANn signal is applied simultaneously or sequentially to the P-latch and the Q-latch to move the inverted data stored in each data storage node of the P-latch and the Q-latch to the upper node. perform calculations,
In the fourth step, the RST transistor is turned on with an SRST signal so that the data of the data storage node of the S-latch is the inverted data of the operation ( ) A logic operation method using a memory unit, characterized in that OR operation is performed by storing ).
상기 제 1 단계에서 상기 P-래치에 데이터 "a"를, 상기 Q-래치에 데이터 "b"를 각각 저장하고,
상기 제 2 단계에서 상기 S-래치의 데이터 저장 노드의 초기화는 상기 RST 트랜지스터에 SRST 신호로 턴온시켜 데이터 "0" 상태로 하고,
상기 제 3 단계에서 상기 TRAN 신호를 상기 P-래치 및 상기 Q-래치에 동시 또는 순차적으로 인가하여 상기 P-래치 및 상기 Q-래치의 각 데이터 저장 노드에 저장된 데이터들을 상기 상단 노드로 이동하여 연산을 수행하고,
상기 제 4 단계에서 상기 SET 트랜지스터에 SSET 신호로 턴온시켜 상기 S-래치의 데이터 저장 노드의 데이터는 상기 연산의 결과 데이터가 저장되는 것으로 AND 연산을 수행하는 것을 특징으로 하는 메모리 유닛을 이용한 로직 연산 방법.
According to claim 6,
In the first step, data “a” is stored in the P-latch and data “b” is stored in the Q-latch, respectively,
In the second step, the data storage node of the S-latch is initialized by turning on the RST transistor with an SRST signal to set the data to “0” state,
In the third step, the TRAN signal is applied simultaneously or sequentially to the P-latch and the Q-latch to move the data stored in each data storage node of the P-latch and the Q-latch to the upper node. perform calculations,
A logic operation method using a memory unit, characterized in that in the fourth step, the SET transistor is turned on with an SSET signal and an AND operation is performed on the data of the data storage node of the S-latch to store the result data of the operation. .
상기 제 1 단계에서 상기 P-래치에 데이터 "a"를, 상기 Q-래치에 데이터 "b"를 각각 저장하고,
상기 제 2 단계에서 상기 S-래치의 데이터 저장 노드의 초기화는 상기 RST 트랜지스터에 SRST 신호로 턴온시켜 데이터 "0" 상태로 하고,
상기 제 3 단계에서 TRANnP 신호를 상기 P-래치에, TRANQ 신호를 상기 Q-래치에 각각 동시 또는 순차적으로 인가하여 상기 상단 노드에서 의 1차 연산을 하고, 상기 1차 연산의 결과는 상기 SET 트랜지스터에 SSET 신호로 턴온시켜 상기 S-래치의 데이터 저장 노드의 데이터에 저장한 다음, 상기 초기화 트랜지스터에 PRECHSO 신호로 상기 상단 노드를 데이터 "1" 상태로 다시 초기화하고, TRANP 신호를 상기 P-래치에, TRANnQ 신호를 상기 Q-래치에 각각 동시 또는 순차적으로 인가하여 상기 상단 노드에서 의 2차 연산을 하고, 상기 P-래치의 RST 트랜지스터에 PRST 신호 및 상기 PBRST 트랜지스터에 PBRST 신호를 각각 동시 인가하여 상기 P-래치의 데이터 저장 노드를 데이터 "0" 상태로 초기화하고 상기 P-래치의 SET 트랜지스터에 PSET 신호를 인가하여 상기 P-래치의 데이터 저장 노드에 상기 2차 연산의 결과를 저장하고, 상기 초기화 트랜지스터에 PRECHSO 신호로 상기 상단 노드를 데이터 "1" 상태로 다시 초기화하고, TRANnS 신호를 상기 S-래치에, TRANnP 신호를 상기 P-래치에 각각 동시 또는 순차적으로 인가하여 상기 상단 노드에서 의 3차 연산을 하고, 상기 S-래치의 SET 트랜지스터에 SSET 신호 및 상기 PBRST 트랜지스터에 PBRST 신호를 각각 동시 인가하여 상기 S-래치의 데이터 저장 노드를 데이터 "1" 상태로 초기화한 다음, 상기 S-래치의 RST 트랜지스터에 SRST 신호를 인가하여 상기 S-래치의 데이터 저장 노드의 데이터는 상기 3차 연산의 반전 데이터()가 저장되는 것으로 XOR 연산을 수행하는 것을 특징으로 하는 메모리 유닛을 이용한 로직 연산 방법.
According to claim 6,
In the first step, data “a” is stored in the P-latch and data “b” is stored in the Q-latch, respectively,
In the second step, the data storage node of the S-latch is initialized by turning on the RST transistor with an SRST signal to set the data to “0” state,
In the third step, the TRANnP signal is applied to the P-latch and the TRANQ signal is applied to the Q-latch simultaneously or sequentially at the top node. The first operation is performed, and the result of the first operation is turned on by the SSET signal in the SET transistor and stored in the data of the data storage node of the S-latch, and then the upper node is converted to data by a PRECHSO signal in the initialization transistor. Re-initialize to the "1" state, apply the TRANP signal to the P-latch and the TRANnQ signal to the Q-latch simultaneously or sequentially at the top node. Perform the secondary operation of and simultaneously apply the PRST signal to the RST transistor of the P-latch and the PBRST signal to the PBRST transistor, respectively, to initialize the data storage node of the P-latch to the data "0" state and the P-latch The PSET signal is applied to the SET transistor to store the result of the secondary operation in the data storage node of the P-latch, and the upper node is reinitialized to the data "1" state with a PRECHSO signal to the initialization transistor, and TRANnS A signal is applied simultaneously or sequentially to the S-latch and a TRANnP signal to the P-latch, respectively, at the top node. Perform the third operation of and simultaneously apply the SSET signal to the SET transistor of the S-latch and the PBRST signal to the PBRST transistor to initialize the data storage node of the S-latch to the data "1" state, and then initialize the data storage node of the S-latch to the data "1" state. -By applying the SRST signal to the RST transistor of the latch, the data of the data storage node of the S-latch is the inverted data of the third operation ( ) A logic operation method using a memory unit, characterized in that XOR operation is performed by storing.
상기 페이지 버퍼 블록 내의 상기 복수의 래치 회로 중 어느 하나는 연산 결과 저장 래치로 하고, 나머지 래치에 상기 메모리 셀 어레이의 내부에 저장되어 있는 데이터 또는 상기 입출력 장치를 통해 외부로부터 전달받은 데이터를 저장하는 제 1 단계;
상기 상단 노드를 데이터 "1" 상태로 초기화하고, 상기 연산 결과 저장 래치의 데이터 저장 노드에 "0" 상태 또는 "1" 상태로 초기화하는 제 2 단계;
상기 TRAN 신호 또는 상기 TRANn 신호를 상기 나머지 래치 중 하나 이상에 동시 또는 순차적으로 인가하여 각 래치에 저장된 데이터를 상기 상단 노드로 전달하여 데이터 이동 또는 로직 연산을 하는 제 3 단계; 및
상기 제 3 단계에서 상기 데이터 이동 또는 상기 로직 연산의 결과로 상기 상단 노드의 데이터가 "0"일 경우 상기 저장 래치의 데이터 저장 노드의 데이터는 초기화 상태로 유지하고, 상기 상단 노드의 데이터가 "1"일 경우 상기 SET 트랜지스터에 SSET 신호로 턴온시켜 상기 저장 래치의 데이터 저장 노드의 데이터는 "1"로 저장하거나 상기 RST 트랜지스터에 SRST 신호로 턴온시켜 상기 S-래치의 데이터 저장 노드의 데이터는 반전 데이터 "0"으로 저장하는 제 4 단계를 더 포함하는 것을 특징으로 하는 메모리 유닛을 이용한 로직 연산 방법.In the logic operation method using the memory unit of claim 3,
One of the plurality of latch circuits in the page buffer block serves as an operation result storage latch, and the remaining latch stores data stored inside the memory cell array or data received from the outside through the input/output device. Level 1;
A second step of initializing the top node to a data "1" state and initializing the data storage node of the operation result storage latch to a "0" state or a "1"state;
A third step of applying the TRAN signal or the TRANn signal to one or more of the remaining latches simultaneously or sequentially to transfer the data stored in each latch to the upper node to perform data movement or logic operation; and
In the third step, when the data of the upper node is “0” as a result of the data movement or the logic operation, the data of the data storage node of the storage latch is maintained in an initialized state, and the data of the upper node is “1” In this case, the SET transistor is turned on with the SSET signal to store the data in the data storage node of the storage latch as "1", or the RST transistor is turned on with the SRST signal so that the data in the data storage node of the S-latch is inverted data. A logic operation method using a memory unit, further comprising a fourth step of storing as “0”.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220040738A KR102693205B1 (en) | 2022-03-31 | 2022-03-31 | Memory unit performing logic operation with page buffer and logic operation method using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220040738A KR102693205B1 (en) | 2022-03-31 | 2022-03-31 | Memory unit performing logic operation with page buffer and logic operation method using the same |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20230141323A KR20230141323A (en) | 2023-10-10 |
KR102693205B1 true KR102693205B1 (en) | 2024-08-07 |
Family
ID=88292083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220040738A KR102693205B1 (en) | 2022-03-31 | 2022-03-31 | Memory unit performing logic operation with page buffer and logic operation method using the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102693205B1 (en) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100111990A (en) * | 2009-04-08 | 2010-10-18 | 삼성전자주식회사 | Flash memory device and data randomizing method thereof |
KR20110131716A (en) * | 2010-05-31 | 2011-12-07 | 주식회사 하이닉스반도체 | Non volatile memory apparatus, page buffer circuit and refresh method therefor |
KR20210130566A (en) * | 2020-04-22 | 2021-11-01 | 에스케이하이닉스 주식회사 | Semiconductor memory device having page buffer |
-
2022
- 2022-03-31 KR KR1020220040738A patent/KR102693205B1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20230141323A (en) | 2023-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110782027B (en) | Differential nonvolatile memory cell for artificial neural network | |
US11170290B2 (en) | Realization of neural networks with ternary inputs and binary weights in NAND memory arrays | |
US11625586B2 (en) | Realization of neural networks with ternary inputs and ternary weights in NAND memory arrays | |
US11328204B2 (en) | Realization of binary neural networks in NAND memory arrays | |
US20200381026A1 (en) | In-memory computing device for 8t-sram memory cells | |
JP3898152B2 (en) | Storage device with operation function and operation storage method | |
CN109859786B (en) | Data operation method based on spin magnetic memory | |
CN110782028A (en) | Configurable precision neural network with differential binary non-volatile memory cell structure | |
JP4977843B2 (en) | Page buffer circuit with reduced area and method for reading and programming the same | |
CN109902822B (en) | Memory computing system and method based on Sgimenk track storage | |
US20220284936A1 (en) | Reconfigurable processing-in-memory logic | |
Hur et al. | Memristive memory processing unit (MPU) controller for in-memory processing | |
TWI698884B (en) | Memory devices and methods for operating the same | |
CN107209665A (en) | Produce and perform controlling stream | |
MX2010013884A (en) | Write operation for spin transfer torque magnetoresistive random access memory with reduced bit cell size. | |
CN106128503A (en) | Computing storage array equipment based on memristor and operational approach thereof | |
CN112639976B (en) | Logical operation using logical operation components | |
JP2012216266A (en) | Semiconductor storage device | |
CN110751276A (en) | Implementing neural networks with ternary inputs and binary weights in NAND memory arrays | |
JP2534733B2 (en) | Nonvolatile semiconductor memory device | |
KR102693205B1 (en) | Memory unit performing logic operation with page buffer and logic operation method using the same | |
JPS63149895A (en) | Semiconductor memory | |
JP2013149309A (en) | Magnetic memory device and data writing method of magnetic memory device | |
JP6042999B2 (en) | Low power static random access memory | |
KR100908541B1 (en) | Copyback Program Method for Nonvolatile Memory Devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |