KR20220140382A - Segmented bit-line based computation-in-memory apparatus and method for computing a sum of product in memory - Google Patents
Segmented bit-line based computation-in-memory apparatus and method for computing a sum of product in memory Download PDFInfo
- Publication number
- KR20220140382A KR20220140382A KR1020210057586A KR20210057586A KR20220140382A KR 20220140382 A KR20220140382 A KR 20220140382A KR 1020210057586 A KR1020210057586 A KR 1020210057586A KR 20210057586 A KR20210057586 A KR 20210057586A KR 20220140382 A KR20220140382 A KR 20220140382A
- Authority
- KR
- South Korea
- Prior art keywords
- bit
- divided
- bit line
- data
- bit lines
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/12—Bit line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, equalising circuits, for bit lines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/46—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using electromechanical counter-type accumulators
- G06F7/461—Adding; subtracting
-
- 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/46—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using electromechanical counter-type accumulators
- G06F7/462—Multiplying; dividing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/41—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
- G11C11/412—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger using field-effect transistors only
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/18—Bit line organisation; Bit line lay-out
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
Description
본 발명은 메모리 장치에 관한 것으로, 메모리 장치 내에서 곱셈 및 덧셈연산을 수행하도록 하여 데이터의 액세스 및 전달에 소요되는 전력을 최소로 하는 분할된 비트라인 기반 계산 메모리 장치 및 곱의 합 연산을 수행하는 방법에 관한 것이다. The present invention relates to a memory device, which performs multiplication and addition operations in a memory device to minimize power required for data access and transfer, and a divided bit line-based computation memory device for performing sum operations it's about how
오늘날 많은 애플리케이션에서 대용량의 데이터 처리가 필수적이 됨에 따라, 데이터의 액세스(data access) 및 전달(transfer)에 필요한 소비 전력이 연산에 필요한 전력보다 많은 양을 차지한다. 이러한 점을 감안하여 데이터의 액세스 및 전달에 소요되는 전력을 감소시켜 오퍼레이션의 효율성을 높이기 위해 메모리 장치 내에서 오퍼레이션을 수행하는 방법인 CIM(Computation In Memory)이 고안되었다. As large-capacity data processing becomes essential in many applications today, power consumption required for data access and transfer occupies a greater amount than power required for computation. In consideration of this, a computation in memory (CIM), a method of performing an operation in a memory device, has been devised in order to increase the efficiency of the operation by reducing the power required to access and transfer data.
CIM은 현재 도입 단계이므로, 다양한 CIM 구조가 활발하게 제안되고 있다. Since CIM is currently in the introduction stage, various CIM structures are being actively proposed.
본 발명이 해결하고자 하는 기술적 과제는, 메모리 장치를 구성하는 비트라인의 전하공유(Bit-Line Charge Sharing)를 이용하여 곱의 합(Sum Of Produce) 연산을 수행하는 분할된 비트라인 기반 계산 메모리 장치를 제공하는 것에 있다. The technical problem to be solved by the present invention is a divided bit-line-based computational memory device that performs a sum of produce operation using bit-line charge sharing of bit lines constituting the memory device. is to provide
본 발명이 해결하고자 하는 다른 기술적 과제는, 분할된 비트라인 기반 계산 메모리 장치를 이용한 곱의 합 연산을 수행하는 방법을 제공하는 것에 있다. Another technical problem to be solved by the present invention is to provide a method of performing a sum operation of products using a divided bit line-based calculation memory device.
상기 기술적 과제를 달성하기 위한 본 발명에 따른 분할된 비트라인 기반 계산 메모리 장치는, 각각 복수의 비트셀을 포함하는 복수의 비트셀 모듈을 포함하는 복수의 비트셀 어레이; 가산부; 및 해당 비트셀 모듈과 상기 가산부를 연결하는 복수의 비트라인을 포함하며, 상기 복수의 비트라인 각각은 매 비트셀 어레이마다 하나씩 할당하는 전송게이트에 의해 분할되어 있는 복수의 분할된 비트라인을 포함하며, 상기 가산부는 상기 복수의 비트라인으로 전달되는 데이터를 서로 결합하여 공유한다.According to an aspect of the present invention, there is provided a divided bit line-based computational memory device comprising: a plurality of bit cell arrays including a plurality of bit cell modules each including a plurality of bit cells; addition part; and a plurality of bit lines connecting the corresponding bit cell module and the adder, wherein each of the plurality of bit lines includes a plurality of divided bit lines divided by a transfer gate that is allocated one for each bit cell array, , the adder combines and shares data transmitted to the plurality of bit lines.
또한, 상기 복수의 분할된 비트라인은, 상기 복수의 분할된 비트라인을 연결하는 복수의 전송게이트의 개폐동작을 이용하여 상기 비트셀에 저장된 데이터 및 외부에서 인가되는 데이터를 상기 복수의 분할된 비트라인에 충전 또는 방전시키는 과정 및 상기 분할된 비트라인에 충전된 전하를 해당 비트라인 전체가 공유하도록 하여 상기 비트셀에 저장된 데이터 및 상기 외부에서 인가되는 데이터의 곱셈 결과에 비례하는 전압값을 상기 가산부로 출력할 수 있다.In addition, the plurality of divided bit lines uses the opening/closing operation of a plurality of transfer gates connecting the plurality of divided bit lines to transfer data stored in the bit cells and data applied from the outside to the plurality of divided bits. A process of charging or discharging a line and a voltage value proportional to a result of multiplying the data stored in the bit cell and the externally applied data by sharing the charge charged in the divided bit line by the entire bit line is added It can be printed as a copy.
또한, 상기 비트셀은 SRAM(Static Random Access Memory)일 수 있다.In addition, the bit cell may be a static random access memory (SRAM).
상기 다른 기술적 과제를 달성하기 위한 본 발명에 따른 분할된 비트라인 기반 계산 메모리 장치를 이용한 곱의 합 연산을 수행하는 방법은, 전술한 분할된 비트라인 기반 계산 메모리 장치를 이용하여 수행하며, 하나의 비트라인을 분할한 복수의 분할된 비트라인을 연결하는 복수의 전송게이트의 개폐동작을 이용하여 상기 분할된 비트라인과 연결된 비트셀에 저장된 데이터 및 외부에서 인가되는 데이터의 값에 대해 곱셈연산을 하는 단계; 및 상기 곱셈연산을 하는 단계에서 복수의 비트라인에서 각각 출력되는 곱셈의 결과를 더하는 단계를 포함한다.The method of performing the sum of products using the divided bit line-based calculation memory device according to the present invention for achieving the above other technical problem is performed using the above-described divided bit line-based calculation memory device, and one A multiplication operation is performed on the values of data stored in the bit cells connected to the divided bit lines and externally applied data by using the opening/closing operation of a plurality of transfer gates connecting the plurality of divided bit lines obtained by dividing the bit lines. step; and adding the multiplication results respectively output from the plurality of bit lines in the step of performing the multiplication operation.
또한, 상기 곱셈연산을 하는 단계는, 곱셈의 대상이 되는 상기 비트셀에 저장된 데이터 및 상기 외부에서 인가되는 데이터가 모두 양수이거나 음수일 때에는 곱셈의 결과를 양수로 판단하고, 상기 비트셀에 저장된 데이터 및 상기 외부에서 인가되는 데이터 중 하나가 음수일 때에는 곱셈의 결과를 음수로 판단하는 단계; 곱셈의 부호가 양일 때, 상기 비트셀에 저장된 데이터 및 상기 외부에서 인가되는 데이터에 대응하여 상기 분할된 비트라인을 충전, 방전 및 현 상태 유지를 수행한 후 전하 공유를 수행함으로써 상기 비트셀에 저장된 데이터 및 상기 외부에서 인가되는 데이터의 곱셈연산을 수행하는 제1 곱셈연산단계; 및 곱셈의 부호가 음일 때, 상기 비트셀에 저장된 데이터 및 상기 외부에서 인가되는 데이터에 대응하여 상기 분할된 비트라인을 충전, 방전 및 현 상태 유지를 수행한 후 전하 공유를 수행함으로써 상기 비트셀에 저장된 데이터 및 상기 외부에서 인가되는 데이터의 곱셈연산을 수행하는 제2 곱셈연산단계를 포함할 수 있다.In the step of performing the multiplication operation, when both the data stored in the bit cell to be multiplied and the data applied from the outside are positive or negative, the result of the multiplication is determined as a positive number, and the data stored in the bit cell is determined as a positive number. and determining that the result of the multiplication is a negative number when one of the externally applied data is a negative number. When the sign of multiplication is positive, charge, discharge, and current state maintenance are performed on the divided bit lines in response to the data stored in the bit cell and the externally applied data, and then charge sharing is performed to store data stored in the bit cell. a first multiplication operation step of performing a multiplication operation on data and the externally applied data; and when the sign of multiplication is negative, charging, discharging, and maintaining the current state of the divided bit lines are performed in response to the data stored in the bit cell and the data applied from the outside, and then charge sharing is performed to the bit cell. It may include a second multiplication operation step of performing a multiplication operation of the stored data and the externally applied data.
또한, 상기 제1 곱셈연산단계는, 모든 전송게이트가 턴 오프 된 상태에서 분할된 비트라인을 상기 외부에서 인가되는 데이터의 비트에 따라 충전 또는 방전하는 단계; 상기 분할된 비트라인을 연결하는 모든 전송게이트를 턴 온 시킴으로써 상기 분할된 비트라인에 충전된 전하를 해당 비트라인 전체에 공유하는 단계; 모든 전송게이트가 턴 오프된 상태에서 상기 분할된 비트라인을 상기 비트셀에 저장된 데이터의 비트에 따라 방전 또는 현 상태를 유지하는 단계; 및 모든 전송게이트를 턴 온 시킴으로써 상기 분할된 비트라인에 충전된 전하를 해당 비트라인 전체에 공유하는 단계를 포함할 수 있다.In addition, the first multiplication operation step may include: charging or discharging the divided bit lines according to the externally applied data bits in a state in which all transfer gates are turned off; sharing the charge charged in the divided bit lines to all of the corresponding bit lines by turning on all transfer gates connecting the divided bit lines; discharging or maintaining the current state of the divided bit line according to the bit of data stored in the bit cell in a state in which all transfer gates are turned off; and turning on all the transfer gates to share the charge charged in the divided bit lines to the entire bit line.
또한, 상기 충전 또는 방전하는 단계는, 상기 외부에서 인가되는 데이터의 비트가 1일 때에는 해당 분할된 비트라인을 충전하고, 상기 비트가 0일 때에는 해당 분할된 비트라인을 방전하고, 상기 충전, 방전 또는 현 상태를 유지하는 단계는, 상기 비트셀에 저장한 데이터의 비트가 1일 때에는 해당 분할된 비트라인의 상태를 유지하도록 하고, 상기 비트가 0일 때에는 해당 분할된 비트라인을 방전할 수 있다.In addition, in the charging or discharging, when the bit of the externally applied data is 1, the divided bit line is charged, and when the bit is 0, the divided bit line is discharged, and the charging and discharging are performed. Alternatively, the step of maintaining the current state may include maintaining the state of the divided bit line when the bit of the data stored in the bit cell is 1, and discharging the divided bit line when the bit is 0. .
또한, 상기 제2 곱셈연산단계는, 모든 전송게이트가 턴 오프 된 상태에서 분할된 비트라인을 상기 외부에서 인가되는 데이터의 비트에 따라 충전 또는 방전하는 단계; 상기 분할된 비트라인을 연결하는 모든 전송게이트를 턴 온 시킴으로써 상기 분할된 비트라인에 충전된 전하를 해당 비트라인 전체에 공유하는 단계; 모든 전송게이트가 턴 오프된 상태에서 상기 분할된 비트라인을 상기 비트셀에 저장된 데이터의 비트에 따라 충전 또는 현 상태를 유지하는 단계; 및 모든 전송게이트를 턴 온 시킴으로써 상기 분할된 비트라인에 충전된 전하를 해당 비트라인 전체에 공유하는 단계를 포함할 수 있다.In addition, the second multiplication operation step may include: charging or discharging the divided bit lines according to the externally applied data bits in a state in which all transfer gates are turned off; sharing the charge charged in the divided bit lines to all of the corresponding bit lines by turning on all transfer gates connecting the divided bit lines; charging or maintaining the current state of the divided bit line according to the bit of data stored in the bit cell in a state in which all transfer gates are turned off; and turning on all the transfer gates to share the charge charged in the divided bit lines to the entire bit line.
또한, 상기 충전 또는 방전하는 단계는, 상기 외부에서 인가되는 데이터의 비트가 1일 때에는 해당 분할된 비트라인을 방전하고, 상기 비트가 0일 때에는 해당 분할된 비트라인을 충전하며, 상기 충전, 방전 또는 현 상태를 유지하는 단계는, 상기 비트셀에 저장한 데이터의 비트가 1일 때에는 해당 분할된 비트라인의 상태를 유지하도록 하고, 상기 비트가 0일 때에는 해당 분할된 비트라인을 충전할 수 있다.In the charging or discharging step, when the bit of the externally applied data is 1, the divided bit line is discharged, and when the bit is 0, the divided bit line is charged, and the charging and discharging. Alternatively, the step of maintaining the current state may include maintaining the state of the divided bit line when the bit of the data stored in the bit cell is 1, and charging the divided bit line when the bit is 0. .
이때, 충전하는 전압은 방전하는 전압에 비해 높은 전압준위를 가질 수 있다.In this case, the charging voltage may have a higher voltage level than the discharging voltage.
본 발명에 따른 분할된 비트라인 기반 계산 메모리 장치 및 곱의 합 연산을 수행하는 방법은 아날로그 전압의 사용으로 인한 공정 오차로 정확한 동작을 보장할 수 없는 CIM(Computation In Memory) 회로와 다르게 미세공정으로 인한 공정 오차가 증가하는 현대의 IC 설계에 적합한 아날로그 계산회로로서, 공정 오차에 둔감한 곱의 합 연산을 수행할 수 있는 장점이 있다. The divided bit line-based calculation memory device and the method of performing the sum operation of the product according to the present invention are different from the CIM (Computation In Memory) circuit, which cannot guarantee accurate operation due to a process error due to the use of an analog voltage, using a fine process. As an analog calculation circuit suitable for a modern IC design in which process errors increase due to increased process errors, it has the advantage of being able to perform the sum of products insensitive to process errors.
도 1은 본 발명에 따른 분할된 비트라인 기반 계산 메모리 장치의 일 실시 예이다.
도 2는 도 1에 도시된 복수의 비트셀 어레이의 일부의 예이다.
도 3은 곱셈 결과가 양수이고, 외부에서 인가되는 데이터에 대응하는 해당 분할된 비트라인을 충전 또는 방전한 후 분할된 비트라인에 각각 충전된 전하를 비트라인 전체에 공유하는 과정을 설명한다.
도 4는 곱셈 결과가 음수이고, 외부에서 인가되는 데이터에 대응하여 해당 분할된 비트라인에 충전 및 방전한 후 충전된 전하를 해당 비트라인 전체에 공유하는 과정을 설명한다.
도 5는 곱셈 결과가 양수일 때 및 음수일 때 분할된 비트라인의 전하공유를 설명한다.
도 6은 복수의 전송게이트로 구성되는 가산부의 예를 설명한다.
도 7은 본 발명에 따른 분할된 비트라인 기반 계산 메모리 장치를 이용한 곱의 합 연산을 수행하는 방법의 예이다.
도 8은 도 7에 도시된 곱셈 연산의 실시 예이다.
도 9는 도 8에 도시된 네 개의 단계(822, 825, 832, 835)의 실시 예이다.
도 10은 본 발명에 따른 분할된 비트라인 기반 계산 메모리 장치의 동작 결과를 설명한다.
도 11은 본 발명에 따른 분할된 비트라인 기반 계산 메모리 장치를 사용하였을 때의 공정 오차를 나타낸다. 1 is an embodiment of a divided bit line-based computational memory device according to the present invention.
FIG. 2 is an example of a part of a plurality of bit cell arrays shown in FIG. 1 .
3 illustrates a process in which a multiplication result is a positive number, and after charging or discharging a corresponding divided bit line corresponding to externally applied data, charges charged in each of the divided bit lines are shared throughout the bit lines.
4 illustrates a process in which the multiplication result is negative and the divided bit lines are charged and discharged in response to externally applied data, and then the charged charges are shared throughout the corresponding bit lines.
5 illustrates charge sharing of the divided bit lines when the multiplication result is positive and negative.
6 illustrates an example of an adder composed of a plurality of transfer gates.
7 is an example of a method of performing a sum of products operation using a divided bit line-based calculation memory device according to the present invention.
FIG. 8 is an embodiment of the multiplication operation shown in FIG. 7 .
FIG. 9 is an embodiment of the four
10 illustrates an operation result of the divided bit line-based computational memory device according to the present invention.
11 shows a process error when a divided bit line-based computational memory device according to the present invention is used.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 예시적인 실시 예를 설명하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다. In order to fully understand the present invention, the operational advantages of the present invention, and the objects achieved by the practice of the present invention, reference should be made to the accompanying drawings describing exemplary embodiments of the present invention and the contents described in the accompanying drawings.
이하 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다. Hereinafter, the present invention will be described in detail by describing preferred embodiments of the present invention with reference to the accompanying drawings. Like reference numerals in each figure indicate like elements.
도 1은 본 발명에 따른 분할된 비트라인 기반 계산 메모리 장치의 일 실시 예이다. 1 is an embodiment of a divided bit line-based computational memory device according to the present invention.
도 1을 참조하면, 본 발명에 따른 분할된 비트라인 기반 계산 메모리 장치(100)는 복수의 비트셀 어레이(110), 가산부(120) 및 복수의 비트라인(130)을 포함한다. Referring to FIG. 1 , a divided bit line-based
복수의 비트셀 어레이(110)는 각각 복수의 비트셀(Bitcell)을 포함하는 복수의 비트셀 모듈(111 ~ 113)을 포함한다. 비트셀은 SRAM(Static Random Access Memory)인 것이 바람직하다. The plurality of bit cell arrays 110 includes a plurality of
가산부(120)는 복수의 비트 라인(130)으로 전달되는 데이터를 서로 결합하여 공유한다. The
복수의 비트라인(131, 132, 133: 130)은 각각 해당 비트셀 모듈과 가산부(120)를 연결한다. 도 1에는 도시하지 않았지만, 복수의 비트라인 각각은(131~133), 매 비트셀 어레이마다 하나씩 할당하는 전송게이트 (Transmission Gate)에 의해 분할되어 있다. The plurality of
도 1을 참조하면, 제1 비트라인(131, RBL1)에서 출력되는 곱셈 연산의 출력은 W1X1이고, 제D 비트라인(133, RBLD; D는 자연수)에서 출력되는 곱셈 연산의 출력은 WDXD 이라는 것을 알 수 있다. 따라서, 가산부(120)의 출력은 ΣWiXi 가 될 것이다. 여기서 i는 변수이며, 최대 D와 동일한 값을 가질 수 있다. Referring to FIG. 1 , the output of the multiplication operation output from the
이하에서는 도 1에 도시된 분할된 비트라인 기반 계산 메모리 장치(100)의 구체적인 실시 예를 설명한다. Hereinafter, a specific embodiment of the divided bit line-based
도 2는 도 1에 도시된 복수의 비트셀 어레이의 일부의 예이다. FIG. 2 is an example of a part of a plurality of bit cell arrays shown in FIG. 1 .
도 2를 참조하면, 제1 비트셀 어레이(111)는, 각각 해당 데이터(RWL[n], n은 자연수)를 저장하는 복수의 비트셀(Bitcell), 비트셀(Bitcell)에 저장된 데이터(RWL[n]) 또는 외부에서 인가되는 데이터(xi[n])를 버퍼링하는 복수의 버퍼(RBL PCH BUF), 복수의 버퍼(RBL PCH BUF)의 출력과 각각 연결하는 복수의 분할된 비트라인(SBL-0 ~ SBL-n) 및 복수의 분할된 비트라인(SBL-0 ~ SBL-n)을 연결하는 복수의 전송게이트(TG0 ~ TGn)를 포함한다. Referring to FIG. 2 , the first
설명의 편의를 위해, 도 2에 도시된 분할된 비트라인은 도 1에 도시된 RBL1으로 가정하고 설명한다. 도 2를 참조하면, RBL1은 SBL-0 ~ SBL-n(n은 자연수)의 분할된 비트라인으로 구분된다는 것을 알 수 있다. For convenience of description, it is assumed that the divided bit line shown in FIG. 2 is RBL 1 shown in FIG. 1 . Referring to FIG. 2 , it can be seen that RBL 1 is divided into divided bit lines of SBL-0 to SBL-n (n is a natural number).
도 2에는 자세하게 도시하지 않았지만, 전송게이트에 의해 그 길이가 분할되는 복수의 분할 된 비트라인(SBL-0 ~ SBL-n)의 각각의 길이는, 연결된 비트셀의 웨이트와 동일하게 2배씩 증가하도록 하는 것이 본 발명의 핵심 아이디어이다. Although not shown in detail in FIG. 2, the length of each of the plurality of divided bit lines SBL-0 to SBL-n whose length is divided by the transfer gate is increased by two times equal to the weight of the connected bit cell. is the core idea of the present invention.
전송게이트의 구조 및 동작 특성은 이 분야의 통상의 기술자라면 누구든지 알고 있으므로, 여기서는 자세하게 설명하지 않는다. 다만, 전송게이트를 구성하는 N형 모스트랜지스터와 P형 트랜지스터에 게이트 단자에 인가되는 전압(SUM & /SUM)은 서로 다른 위상을 가지도록 하여 두 개의 트랜지스터가 동시에 턴 온 되거나 동시에 턴 오프 되도록 한다. The structure and operation characteristics of the transfer gate are known to those skilled in the art, and thus will not be described in detail herein. However, voltages SUM & /SUM applied to the gate terminals of the N-type MOS transistor and the P-type transistor constituting the transfer gate have different phases so that the two transistors are turned on or off at the same time.
예를 들면, 분할된 제2 비트라인(SBL-1)의 길이는 분할된 제1 비트라인(SBL-0)의 두 배이며, 분할된 제3 비트라인(SBL-2)의 길이는 분할된 제2 비트라인(SBL-1)의 두 배이고, 분할된 제n 비트라인(SBL-n)의 길이는 분할된 제(n-1) 비트라인(SBL(n-1))에 비해 두 배이다. For example, the length of the divided second bit line SBL-1 is twice that of the divided first bit line SBL-0, and the length of the divided third bit line SBL-2 is equal to the length of the divided first bit line SBL-0. It is twice the length of the second bit line SBL-1, and the length of the divided n-th bit line SBL-n is twice that of the divided (n-1)-th bit line SBL(n-1). .
또한, 분할된 제1 비트라인(SBL-0)과 분할된 제2 비트라인(SBL-1)을 연결하는 제1 전송게이트(TG0)의 기생용량(parasitic capacitance)에 비해 분할된 제2 비트라인(SBL-1)과 분할된 제3 비트라인(SBL-2)을 연결하는 제2 전송게이트(TG1)의 기생용량은 2배가 되며, 이어지는 제3 전송게이트(TG2)의 기생용량은 제2 전송게이트(TG1)의 기생용량의 2배가 되고, 계속하여 제n 전송게이트(TGn)의 기생용량은 제(n-1) 전송게이트(TG(n-1))의 기생용량의 2배가 되도록 하는 것이 바람직하다.In addition, compared to the parasitic capacitance of the first transfer gate TG0 connecting the divided first bit line SBL-0 and the divided second bit line SBL-1, the divided second bit line The parasitic capacitance of the second transfer gate TG1 connecting SBL-1 and the divided third bit line SBL-2 is doubled, and the parasitic capacitance of the subsequent third transfer gate TG2 is increased by the second transmission. The parasitic capacitance of the gate TG1 becomes twice the parasitic capacitance of the gate TG1, and the parasitic capacitance of the n-th transfer gate TGn is set to double the parasitic capacitance of the (n-1)-th transfer gate TG(n-1). desirable.
이러한 방식으로 분할이 된다고 가정할 때, 본 발명에서 제안하는 구조는 -2n+1 ~ 2n-1까지의 범위를 가지는 정수의 연산이 가능하다.Assuming that the division is performed in this way, the structure proposed in the present invention enables the operation of integers in the range of -
본 발명에서는 각각의 비트라인에 연결된 비트셀(Bitcell)에 저장된 데이터(RWL[n])와 외부에서 인가되는 데이터(xi[n])의 곱셈연산(Multiplication)을 수행한 후, 복수의 비트라인(RBL1 ~ RBLD)을 전하 공유하여 복수의 비트라인에서 출력하는 곱셈 연산의 결과에 덧셈 연산(Summation)을 수행함으로써, 곱셈의 합 연산을 수행한다.In the present invention, after performing a multiplication operation on data (RWL[n]) stored in a bitcell connected to each bitline and data applied from the outside (x i [n]), a plurality of bits A sum operation of multiplication is performed by performing a summation operation on a result of a multiplication operation outputted from a plurality of bit lines by sharing charge of the lines RBL 1 to RBL D .
먼저, 곱셈연산에 대해 설명한다.First, the multiplication operation will be described.
곱셈연산의 결과는 곱하는 두 데이터의 부호에 따라 결정될 것인데, 두 데이터 중 하나의 데이터라도 음수일 경우 곱셈의 결과는 음수가 되고, 두 데이터 모두 양수이거나 모두 음수일 때의 곱셈의 결과는 양수가 될 것이다. 곱셈의 대상이 되는 데이터의 부호는 별도의 수단(미도시)에서 판별하여 곱셈 결과의 부호는 미리 확인할 수 있으므로, 곱셈연산의 과정을 곱셈 연산의 출력이 양수일 때와 음수일 때로 구분하여 설명한다.The result of the multiplication operation will be determined according to the sign of the two data to be multiplied. If either data is negative, the result of the multiplication will be negative. If both data are positive or both data, the result of the multiplication will be positive. will be. Since the sign of the data to be multiplied can be determined by a separate means (not shown) and the sign of the multiplication result can be confirmed in advance, the process of the multiplication operation will be described separately when the output of the multiplication operation is positive and negative.
곱셈 결과가 양수일 때의 곱셈연산에 대해 설명한다.The multiplication operation when the multiplication result is a positive number will be described.
곱셈의 대상이 되는 두 개의 데이터 중 외부에서 인가되는 데이터(Xi)가 십진수로 6인 0110이라고 가정하고, 비트셀(Bitcell)에 저장된 데이터(Wi)가 십진수로 5인 1010이라고 가정한다.It is assumed that the externally applied data (Xi) among the two data to be multiplied is 0110, which is 6 in decimal, and it is assumed that the data Wi stored in the bitcell is 1010, which is 5 in decimal.
도 3은 곱셈 결과가 양수이고, 외부에서 인가되는 데이터에 대응하는 해당 분할된 비트라인을 충전 또는 방전한 후 분할된 비트라인에 각각 충전된 전하를 비트라인 전체에 공유하는 과정을 설명한다.3 illustrates a process in which a multiplication result is a positive number, and after charging or discharging a corresponding divided bit line corresponding to externally applied data, charges charged in each of the divided bit lines are shared throughout the bit lines.
도 3에 도시된 수직 방향의 바(Bar)는 비트라인이며, 분할되는 길이의 기준은 2의 배수이다. 따라서, 4개의 데이터 비트 중 웨이트가 가장 낮은 데이터(Xi[0])에 할당되는 비트라인의 길이는 두 번째 웨이트가 낮은 데이터(Xi[1])에 할당되는 비트라인의 길이의 1/2이 된다는 것을 알 수 있다. 도 3에서 빗금이 쳐진 분할된 비트라인의 공간은 전하가 충전된 것을 의미하고 비어있는 분할된 비트라인의 공간은 방전된 것을 의미한다.A vertical bar shown in FIG. 3 is a bit line, and the divided length is a multiple of 2. Accordingly, the length of the bit line allocated to the data having the lowest weight among the four data bits (Xi[0]) is 1/2 of the length of the bit line allocated to the data having the lowest weight (Xi[1]). it can be seen that In FIG. 3 , the space of the divided bit line lined with hatching means that the electric charge is charged, and the space of the divided bit line which is empty means that the space is discharged.
도 3a의 좌측을 참조하면, 분할된 비트라인을 각각 연결하는 모든 전송게이트를 턴 오프(turn OFF) 한 후, 외부에서 인가되는 데이터(Xi)의 비트에 할당된 값에 대응하여 해당 비트라인을 제1전압(VDD)으로 충전하거나 제2전압(VSS)으로 방전한다. 예를 들어, 해당 데이터의 비트가 논리 하이(Logic High; 1) 상태일 때에는 해당 분할된 비트라인을 제1전압(VDD)으로 충전하고, 해당 비트가 논리 로우(Logic Low; 0) 상태일 때에는 해당 분할된 비트라인을 제2전압(VSS)으로 방전시킨다. 제1 전압(VDD)의 전압준위는 제2 전압(VSS)의 전압준위보다 높은 것이 바람직하며, 제2 전압(VSS)은 접지전압(GND)을 사용하는 실시 예도 가능하다.Referring to the left side of FIG. 3A , after turning off all transfer gates connecting the divided bit lines, the corresponding bit lines are connected to the values assigned to the bits of data Xi applied from the outside. It is charged to the first voltage VDD or discharged to the second voltage VSS. For example, when a corresponding bit of data is in a logic high (Logic High; 1) state, the divided bit line is charged with the first voltage (VDD), and when the corresponding bit is in a logic low (Logic Low; 0) state, The divided bit line is discharged to the second voltage VSS. The voltage level of the first voltage VDD is preferably higher than the voltage level of the second voltage VSS, and an embodiment using the ground voltage GND as the second voltage VSS is also possible.
외부에서 인가되는 데이터(Xi)가 0110이므로, 첫 번째 및 네 번째의 분할 된 비트라인은 방전되고 두 번째 및 세 번째의 분할된 비트라인은 각각 충전된다는 것을 알 수 있다. 첫 번째 분할된 비트라인에서의 충전 가능 용량을 1이라고 가정할 때, 두 번째 분할된 비트라인의 충전가능 용량은 2이고, 세 번째 분할된 비트라인 및 네 번째 분할된 비트라인의 충전가능 용량은 4 및 8이 될 것이다.Since the externally applied data Xi is 0110, it can be seen that the first and fourth divided bit lines are discharged and the second and third divided bit lines are respectively charged. Assuming that the chargeable capacity in the first divided bit line is 1, the chargeable capacity of the second divided bit line is 2, and the chargeable capacity of the third divided bit line and the fourth divided bit line is will be 4 and 8.
도 3a의 우측을 참조하면, 분할된 비트라인을 연결하는 전송게이트를 모두 턴 온(turn ON) 하여, 도 3a의 좌측의 상태에서 충전된 전하를 분할된 비트라인 전체에 분산하여 공유하도록 한다. 도 3a의 좌측 과정에서 충전된 전하의 양은 6(2+4)이며, 네 개의 분할된 비트라인의 총 용량이 15이므로, 이를 전체 비트라인에 공유하면, 해당 비트라인에 충전된 전하는 6/15가 될 것이다. 충전이 제1 전압(VDD)으로 이루어지므로, 해당 비트라인에 공유되는 전하에 의한 전압강하는 6/15VDD가 될 것이다.Referring to the right side of FIG. 3A , all transfer gates connecting the divided bit lines are turned on to distribute and share the charge charged in the state on the left side of FIG. 3A across the divided bit lines. The amount of charge charged in the process on the left side of FIG. 3A is 6 (2+4), and the total capacity of the four divided bit lines is 15. If this is shared among all bit lines, the charge charged in the corresponding bit line is 6/15. will be Since the charging is performed with the first voltage VDD, the voltage drop due to the charge shared in the corresponding bit line will be 6/15VDD.
이를 수학식 1과 같이 표시할 수 있다.This can be expressed as Equation (1).
도 3a가 외부에서 인가되는 데이터에 대한 것이라면, 이하에서 설명하는 도 3b는 비트셀(Bitcell)에 저장된 데이터에 대한 것이다.While FIG. 3A relates to data applied from the outside, FIG. 3B to be described below relates to data stored in a bitcell.
도 3b 좌측을 참조하면, 도 3a에 도시된 과정을 거쳐 전하가 공유된 분할된 비트라인을 연결하는 모든 전송게이트를 턴 오프 한 후 비트셀에 저장된 데이터(Wi)에 대응하는 비트에 따라 해당 분할된 비트라인을 방전시키거나 그대로 유지하도록 한다. 비트셀에 저장된 데이터(Wi)가 1010이므로, 비트가 1인 첫 번째 및 세 번째 분할된 비트라인은 이전에 충전된 상태를 그대로 유지하도록 하고 비트가 0인 두 번째 및 네 번째 분할된 비트라인은 제2전압(VSS)으로 방전시킨다.Referring to the left side of FIG. 3B, after turning off all transfer gates connecting the divided bit lines in which charges are shared through the process shown in FIG. 3A, the division is performed according to the bit corresponding to the data Wi stored in the bit cell. Discharge the bit line or keep it as it is. Since the data (Wi) stored in the bitcell is 1010, the first and third segmented bitlines with
도 3b의 우측을 참조하면, 분할된 비트라인을 연결하는 모든 전송게이트를 턴 온 하여, 도 3b의 과정을 통해 분할된 비트라인에 유지되거나 방전된 전하량을 분배 및 공유하도록 하는데, 이때 해당 비트라인에 유지되는 전하량은 외부에서 인가되는 데이터(Xi, 6)와 비트셀에 저장된 데이터(Wi, 5)의 곱셈 결과에 비례하는 전하량을 가지며, 해당 분할된 비트라인에 강하되는 전압은 수학식 2와 같이 표시할 수 있다.Referring to the right side of FIG. 3B , all transfer gates connecting the divided bit lines are turned on to distribute and share the amount of charge maintained or discharged in the divided bit lines through the process of FIG. 3B. At this time, the corresponding bit lines The amount of charge held in has an amount of charge proportional to the result of multiplying the data (Xi, 6) applied from the outside and the data (Wi, 5) stored in the bit cell, and the voltage dropped on the divided bit line is expressed in
수학식 2에는 외부에서 인가되는 데이터의 값에 해당하는 6과 비트셀에 저장된 데이터의 값에 해당하는 5가 포함되어 있다는 것을 알 수 있다. 따라서, 수학식 2의 결과는 두 데이터의 곱셈의 정확한 값이라고 할 수는 없지만, 적어도 두 데이터의 곱셈에 비례하는 값이라고 할 수 있다. 따라서, 도 3b의 우측의 수식 중 '∝'는 이러한 상태를 표시한 것이다.It can be seen that
상기의 내용은 곱셈의 결과가 양일 경우에 대해 설명한 것으로 이하에서는, 곱셈의 결과가 음일 경우에 대해 설명한다. The above has been described for the case where the result of multiplication is positive. Hereinafter, the case where the result of multiplication is negative will be described.
도 4는 곱셈 결과가 음수이고, 외부에서 인가되는 데이터에 대응하여 해당 분할된 비트라인에 충전 및 방전한 후 충전된 전하를 해당 비트라인 전체에 공유하는 과정을 설명한다. 4 illustrates a process in which the multiplication result is negative and the divided bit lines are charged and discharged in response to externally applied data, and then the charged charges are shared throughout the corresponding bit lines.
이하의 설명에서 외부에서 인가되는 데이터(Xi) 및 비트셀에 저장된 데이터(Wi)는 도 3에 도시된 곱셈 결과가 양수일 때와 동일한 데이터를 사용하며, 좌측의 도면과 우측의 도면에서의 전송게이트의 개폐동작은 도 3과 동일하므로, 여기서는 설명을 생략한다. In the following description, the data Xi applied from the outside and the data Wi stored in the bit cell use the same data as when the multiplication result shown in FIG. 3 is a positive number, and the transfer gates in the drawings on the left and on the right Since the opening/closing operation is the same as that of FIG. 3 , a description thereof will be omitted.
도 4a의 좌측을 참조하면, 출력이 음수일 때, 외부에서 인가되는 데이터(Xi)의 비트가 0일 때는 해당 분리된 비트라인을 제1 전압(VDD)으로 충전하고, 비트가 1일 때에는 제2 전압(VSS)로 방전하는데, 이렇게 함으로써 비트라인에 충전된 전하에 의해 해당 비트라인에 강하되는 전압 값은 외부에서 인가되는 데이터(Xi)와 반비례하는 값을 가지며, 이 부분이 도 3에 도시된 예와 반대이다. 따라서, 비트가 각각 0인 첫 번째 분할된 비트라인과 네 번째 분할된 비트라인은 제1 전압(VDD)로 충전하고, 비트가 각각 1인 두 번째 및 세 번째 분할된 비트라인은 제2 전압(VSS)로 방전한다. 도 4a 우측에 도시된 것과 같이, 분할된 비트라인에 각각에 충전된 총 전하를 분할된 비트라인 전체가 공유하도록 하면 공유된 전하에 의해 비트라인에 강하되는 전압은 수학식 3과 같이 표시할 수 있다. Referring to the left side of FIG. 4A , when the output is negative, when the bit of externally applied data Xi is 0, the corresponding separated bit line is charged with a first voltage VDD, and when the bit is 1, the second bit line is charged. Discharge is performed at a voltage of 2 (VSS). In this way, the voltage value that is dropped to the corresponding bit line by the charge charged in the bit line has a value in inverse proportion to the externally applied data (Xi), which is shown in FIG. 3 . Contrary to the example Accordingly, the first divided bit line and the fourth divided bit line each having a bit of 0 are charged with a first voltage (VDD), and the second and third divided bit lines each having a bit of 1 are charged with a second voltage (VDD). to VSS). As shown on the right side of FIG. 4A, if the total charge charged in each of the divided bit lines is shared by all of the divided bit lines, the voltage dropped to the bit line by the shared charge can be expressed as
도 4b 좌측을 참조하면, 비트셀에 저장된 데이터(Wi)의 비트가 1이면 도 4a의 과정에서 공유된 전하를 그대로 유지하도록 하고, 비트가 0일 때에는 해당 분할된 비트라인을 제1 전압(VDD)으로 충전한다. 도 4b 우측에 도시된 것과 같이, 도 4b의 좌측의 과정에서 각각의 분할된 비트라인에 충전된 전하를 해당 비트라인 전체가 공유하도록 하면, 비트라인에 공유하는 전하는 수학식 4와 같이 표시할 수 있다. Referring to the left of FIG. 4B , if the bit of the data Wi stored in the bit cell is 1, the charge shared in the process of FIG. 4A is maintained as it is, and when the bit is 0, the divided bit line is connected to the first voltage (VDD). ) is charged with As shown on the right side of FIG. 4B, if the charge charged in each divided bit line is shared by the entire bit line in the process on the left side of FIG. 4B, the charge shared on the bit line can be expressed as
수학식 4 및 도 4를 참조하면, 곱셈의 결과가 음수일 때, 해당 분할된 비트라인에 충전되는 전하는 두 데이터의 곱(WiXi)에 반비례하는 전압값을 가진다는 것을 알 수 있다. Referring to
도 1에 도시한 바와 같이, 본 발명에 따른 분할된 비트라인 기반 계산 메모리 장치(100)는 복수의 비트셀 어레이(110)와 복수의 비트 라인(130)을 포함한다. 상술한 바와 같이, 하나의 비트셀 어레이의 곱셈연산의 결과가 양수라고 가정할 때, 이웃하는 비트셀 어레이의 곱셈연산의 결과가 음수일 수도 있다. As shown in FIG. 1 , the divided bit line-based
음수와 양수가 전하공유 방식으로 합 연산을 수행하기 위해서는 제1 전압(VDD)의 절반을 기준으로, 음수는 VDD/2 - ┃WiXi┃/a 그리고 양수는 VDD/2 + ┃WiXi┃/a의 형태가 표시되어야 할 것이다. 여기서 a는 2┃WiXi┃의 최대값이다. In order to perform the sum operation of negative and positive numbers in a charge-sharing method, based on half of the first voltage (VDD), negative numbers are VDD/2 - ┃WiXi┃/a, and positive numbers are VDD/2 + ┃WiXi┃/a. The form should be displayed. where a is the maximum value of 2┃WiXi┃.
도 5는 곱셈 결과가 양수일 때 및 음수일 때 분할된 비트라인의 전하공유를 설명한다. 5 illustrates charge sharing of the divided bit lines when the multiplication result is positive and negative.
도 5의 상부는 곱셈 결과가 양수일 때이고, 하부는 곱셈 결과가 음수일 때를 각각 나타낸다. The upper part of FIG. 5 shows when the multiplication result is positive, and the lower part shows when the multiplication result is negative, respectively.
기존의 곱셈연산(Multiplication)을 수행할 때 사용했던 비트라인 정전용량만큼의 정전용량을 충전 또는 방전한 후 전하공유를 통해 VDD/2+|WiXi| 또는 VDD/2-|WiXi|를 구현해 준다. VDD/2+|WiXi| Or implement VDD/2-|WiXi|.
도 5에 도시한 것처럼 곱셈 결과가 음수일 경우 제2 전압(VSS 또는 GND)으로 방전시키고, 양수일 경우 제1 전압(VDD)으로 충전한다. 분할된 비트라인의 정전용량은 동일하므로 같은 값을 갖는다. As shown in FIG. 5 , when the multiplication result is a negative number, it is discharged to the second voltage (VSS or GND), and when it is positive, it is charged to the first voltage (VDD). Since the divided bit lines have the same capacitance, they have the same value.
도 6은 복수의 전송게이트로 구성되는 가산부의 예를 설명한다. 6 illustrates an example of an adder composed of a plurality of transfer gates.
도 6을 참조하면, 가산부(120)를 구성하는 모든 전송게이터를 턴 온 함으로써, 도 1에 도시된 모든 비트라인(RBL1 ~ RBLD)을 전부 연결해 전하공유를 수행한다는 것을 알 수 있다. Referring to FIG. 6 , it can be seen that charge sharing is performed by connecting all bit lines RBL 1 to RBL D shown in FIG. 1 by turning on all transfer gaters constituting the
각각의 비트라인(RBL1 ~ RBLD)은 동일한 구조 따라서 동일한 정전용량을 가진다. 따라서 모든 비트라인(RBL1 ~ RBLD)의 전하를 공유하면 복수의 곱셈 결과를 더한 결과(ΣWiXi)는 수학식 5에 도시된 것과 같은 전압 값을 얻을 수 있다. Each of the bit lines RBL 1 to RBL D has the same structure and thus the same capacitance. Therefore, if the charges of all the bit lines RBL 1 to RBL D are shared, the result (ΣW i X i ) of adding a plurality of multiplication results can obtain a voltage value as shown in Equation 5.
수학식 5에서 n은 비트라인(RBL)의 개수이고, CBL은 해당 비트라인의 용량이다. a는 하나의 비트라인(RBL)에서 분할된 비트라인의 개수-1의 값을 가지는데, 이는 종단이 제1 전압(VDD)이나 제2 전압(VSS 또는 GND)으로 충, 방전되는 가장 큰 BL을 제외해야 하기 때문이다.In Equation 5, n is the number of bit lines RBL, and C BL is the capacity of the corresponding bit line. a has a value of -1, the number of bit lines divided in one bit line (RBL), which is the largest BL whose termination is charged and discharged with the first voltage (VDD) or the second voltage (VSS or GND) because it has to be excluded.
도 7은 본 발명에 따른 분할된 비트라인 기반 계산 메모리 장치를 이용한 곱의 합 연산을 수행하는 방법의 예이다.7 is an example of a method of performing a sum of products operation using a divided bit line-based calculation memory device according to the present invention.
도 7을 참조하면, 본 발명에 따른 분할된 비트라인 기반 계산 메모리 장치를 이용한 곱의 합 연산을 수행하는 방법(이하 곱의 합 연산을 수행하는 방법)은, 복수의 곱셈 연산 단계(710~730) 및 덧셈연산단계(740)를 포함한다. Referring to FIG. 7 , a method of performing a sum operation of products using a divided bit line-based calculation memory device according to the present invention (hereinafter, a method of performing a sum operation of products) includes a plurality of multiplication operation steps 710 to 730 ) and an
도 7에 도시된 곱의 합 연산을 수행하는 방법(700)은 도 1에 도시된 분할된 비트라인 기반 계산 메모리 장치(100)에서 수행하는 것이 바람직하지만, 별도의 장치를 이용하여 수행하는 실시 예도 가능하다.The
복수의 곱셈 연산 단계(710~730)는 각각의 분할된 비트라인(RBL1~RBLD)에 대해 곱셈 연산을 수행하는 단계를 포함하며, 덧셈연산단계(740)에서는 복수의 곱셈 연산 단계(710~730)에서 수행한 곱셈의 결과(W1X1 ~ WDXD)를 더하는 과정을 수행한다.The plurality of multiplication operation steps 710 to 730 includes performing a multiplication operation on each of the divided bit lines RBL 1 to RBL D , and in the
복수의 곱셈 연산 단계(710~730)에서는 각각 해당 분할된 비트라인(RBL1~RBLD)에 인가되는 외부의 데이터(XD) 및 비트셀에 저장된 데이터(WD)를 곱하는 과정을 수행하며, 모든 곱셈 연산 단계의 동작은 동일하므로, 여기서는 하나의 분할된 비트라인에서의 곱셈 연산(710)에 대해 예를 들어 설명한다.In the plurality of multiplication operation steps 710 to 730, the process of multiplying the external data X D applied to the respective divided bit lines RBL 1 to RBL D and the data stored in the bit cell W D is performed. , since the operations of all multiplication operation steps are the same, the
도 8은 도 7에 도시된 곱셈 연산의 실시 예이다.FIG. 8 is an embodiment of the multiplication operation shown in FIG. 7 .
도 8을 참조하면, 곱셈 연산(710)은, 곱셈의 결과의 부호를 판단하는 단계(810), 곱셈의 부호가 양일 때(Yes) 곱셈을 수행하는 단계(820) 및 곱셈의 부호가 음일 때(no) 곱셈을 수행하는 단계(830)를 포함한다.Referring to FIG. 8 , the
곱셈의 결과의 부호를 판단하는 단계(810)에서는, 곱셈의 대상이 되는 두 데이터가 모두 양수이거나 음수일 때에는 곱셈의 결과를 양수로 판단하고(Yes), en 데이터 중 하나가 음수일 때에는 곱셈의 결과를 음수로 판단(No)한다.In
곱셈의 부호가 양일 때(Yes) 곱셈을 수행하는 단계(820)는, 분할된 비트라인을 연결하는 모든 전송게이트를 턴 오프하는 단계(821), 모든 전송게이트가 턴 오프 된 상태에서 분할된 비트라인을 외부에서 인가되는 데이터(Xi)의 비트에 따라 충전 또는 방전하는 단계(822), 분할된 비트라인을 연결하는 모든 전송게이트를 턴 온 시킴으로써 분할된 비트라인에 충전된 전하를 해당 비트라인 전체에 공유하는 단계(823), 모든 전송게이트를 턴 오프하는 단계(824), 모든 전송게이트가 턴 오프된 상태에서 분할된 비트라인을 비트셀(Bitcell)에 저장된 데이터(Wi)의 비트에 따라 충전 또는 방전하는 단계(825), 및 모든 전송게이트를 턴 온시킴으로써 분할된 비트라인에 충전된 전하를 해당 비트라인 전체에 공유하는 단계(826)를 수행한다.When the sign of multiplication is positive (Yes), the step of performing multiplication (820) is turning off all transfer gates connecting the divided bit lines (step 821), and in a state in which all transfer gates are turned off, the divided bit A step of charging or discharging the line according to the bit of data Xi applied from the outside ( 822 ), by turning on all transfer gates connecting the divided bit lines, the charge charged in the divided bit lines is transferred to the entire corresponding bit lines. In
곱셈의 부호가 음일 때(no) 곱셈을 수행하는 단계(830)는 분할된 비트라인을 연결하는 모든 전송게이트를 턴 오프하는 단계(831), 모든 전송게이트가 턴 오프 된 상태에서 분할된 비트라인을 외부에서 인가되는 데이터(Xi)의 비트에 따라 충전 또는 방전하는 단계(832), 분할된 비트라인을 연결하는 모든 전송게이트를 턴 온 시킴으로써 분할된 비트라인에 충전된 전하를 해당 비트라인 전체에 공유하는 단계(833), 모든 전송게이트를 턴 오프하는 단계(834), 모든 전송게이트가 턴 오프된 상태에서 분할된 비트라인을 비트셀(Bitcell)에 저장된 데이터(Wi)의 비트에 따라 충전 또는 방전하는 단계(835), 및 모든 전송게이트를 턴 온시킴으로써 분할된 비트라인에 충전된 전하를 해당 비트라인 전체에 공유하는 단계(836)를 수행한다.When the sign of multiplication is negative (no), the step of performing the multiplication (830) is a step of turning off all transfer gates connecting the divided bit lines (831), and the divided bit lines are turned off while all the transfer gates are turned off. charging or discharging according to the bit of the data Xi applied from the outside ( 832 ), by turning on all transfer gates connecting the divided bit lines, the charge charged in the divided bit lines is transferred to the entire corresponding bit lines. In the step of sharing (833), turning off all the transmission gates (834), charging or charging the divided bit line according to the bit of the data (Wi) stored in the bit cell (Bitcell) in a state in which all the transmission gates are turned off A step of discharging (835), and a step (836) of sharing the charge charged in the divided bit line to the entire bit line by turning on all the transfer gates are performed.
도 9는 도 8에 도시된 네 개의 단계(822, 825, 832, 835)의 실시 예이다.FIG. 9 is an embodiment of the four
도 9를 참조하면, 단계 822에서는 외부에서 인가되는 데이터(Xi)의 비트가 1일 때에는 해당 분할된 비트라인을 충전하고, 비트가 0일 때에는 방전한다. 단계 825에서는 비트셀에 저장한 데이터(Wi)의 비트가 1일 때에는 해당 분할된 비트라인의 상태를 유지하도록 하고, 비트가 0일 때에는 해당 분할된 비트라인을 제2 전압으로 방전한다.Referring to FIG. 9 , in
단계 832에서는 외부에서 인가되는 데이터(Xi)의 비트가 1일 때에는 해당 분할된 비트라인을 방전하고, 비트가 0일 때에는 충전한다. 단계 835에서는 비트셀에 저장한 데이터(Wi)의 비트가 1일 때에는 해당 분할된 비트라인의 상태를 유지하도록 하고, 비트가 0일 때에는 해당 분할된 비트라인을 제1 전압으로 충전한다.In
상기의 설명에서 충전은 제1 전압(VDD)으로 해당 분할된 비트라인을 충전하는 것을 의미하고, 방전은 제2 전압(VSS 또는 GND)으로 해당 분할된 비트라인을 방전하는 것을 각각 의미한다.In the above description, charging means charging the divided bit line with the first voltage VDD, and discharging means discharging the divided bit line with the second voltage VSS or GND, respectively.
덧셈 단계(740)는 도 6의 설명에서와 동일하게, 가산부(120)를 구성하는 모든 전송게이터를 턴 온 함으로써, 도 1에 도시된 모든 비트라인(RBL1 ~ RBLD)을 전부 연결해 전하공유를 수행한다.In the
도 10은 본 발명에 따른 분할된 비트라인 기반 계산 메모리 장치의 동작 결과를 설명한다.10 illustrates an operation result of the divided bit line-based computational memory device according to the present invention.
도 11은 본 발명에 따른 분할된 비트라인 기반 계산 메모리 장치를 사용하였을 때의 공정 오차를 나타낸다.11 shows a process error when a divided bit line-based computational memory device according to the present invention is used.
도 10 및 도 11을 참조하면, 본 발명에 따른 본 발명에 따른 분할된 비트라인 기반 계산 메모리 장치 및 곱의 합 연산을 수행하는 방법을 적용하면, 종래의 구조에서 발생하는 공정오차로 인한 비트라인의 전압분포(도 11[2])에 비해 본 발명의 경우가 더 밀집(도 11, Proposed CIM) 되어 있다는 것을 확인할 수 있다.10 and 11, when the divided bit line-based calculation memory device according to the present invention and the method of performing the sum operation of the product according to the present invention are applied, the bit line caused by the process error occurring in the conventional structure is applied. It can be seen that the case of the present invention is more dense (FIG. 11, Proposed CIM) compared to the voltage distribution of (FIG. 11[2]).
이것은, 동일한 공정에서 더 정확한 출력을 가질 확률이 높다는 것을 의미하며, 워드라인(WL) 전압을 아날로그 전압으로 사용하기 때문에 공정의 편차에 민감한 종래의 기술에 비해 공정의 편차에 둔감하다는 것도 의미한다.This means that there is a high probability of having a more accurate output in the same process, and since the word line (WL) voltage is used as an analog voltage, it also means that it is insensitive to process deviations compared to the conventional technology, which is sensitive to process deviations.
이상에서는 본 발명에 대한 기술사상을 첨부 도면과 함께 서술하였지만 이는 본 발명의 바람직한 실시 예를 예시적으로 설명한 것이지 본 발명을 한정하는 것은 아니다. 또한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 기술자라면 누구나 본 발명의 기술적 사상의 범주를 이탈하지 않는 범위 내에서 다양한 변형 및 모방 가능함은 명백한 사실이다.In the above, the technical idea of the present invention has been described together with the accompanying drawings, but this is an exemplary description of a preferred embodiment of the present invention and does not limit the present invention. In addition, it is a clear fact that any person skilled in the art to which the present invention pertains can make various modifications and imitations without departing from the scope of the technical spirit of the present invention.
110: 복수의 비트셀 어레이
120: 가산부
130: 복수의 비트라인 110: a plurality of bit cell arrays
120: addition unit
130: a plurality of bit lines
Claims (11)
가산부; 및
해당 비트셀 모듈과 상기 가산부를 연결하는 복수의 비트라인을 포함하며,
상기 복수의 비트라인 각각은 매 비트셀 어레이마다 하나씩 할당하는 전송게이트에 의해 분할되어 있는 복수의 분할된 비트라인을 포함하며,
상기 가산부는 상기 복수의 비트라인으로 전달되는 데이터를 서로 결합하여 공유하는, 분할된 비트라인 기반 계산 메모리 장치. a plurality of bit cell arrays including a plurality of bit cell modules each including a plurality of bit cells;
addition part; and
a plurality of bit lines connecting the corresponding bit cell module and the adder;
Each of the plurality of bit lines includes a plurality of divided bit lines divided by a transfer gate that is allocated one for each bit cell array,
and the adder combines and shares data transmitted to the plurality of bit lines.
상기 복수의 분할된 비트라인은,
상기 복수의 분할된 비트라인을 연결하는 복수의 전송게이트의 개폐동작을 이용하여 상기 비트셀에 저장된 데이터 및 외부에서 인가되는 데이터를 상기 복수의 분할된 비트라인에 충전 또는 방전시키는 과정 및 상기 분할된 비트라인에 충전된 전하를 해당 비트라인 전체가 공유하도록 하여 상기 비트셀에 저장된 데이터 및 상기 외부에서 인가되는 데이터의 곱셈 결과에 비례하는 전압값을 상기 가산부로 출력하는, 분할된 비트라인 기반 계산 메모리 장치. The method of claim 1,
The plurality of divided bit lines are
A process of charging or discharging data stored in the bit cell and data applied from the outside to the plurality of divided bit lines by using an opening/closing operation of a plurality of transfer gates connecting the plurality of divided bit lines; A divided bit line-based calculation memory for outputting a voltage value proportional to a result of multiplying the data stored in the bit cell and the externally applied data to the adder by sharing the charge charged in the bit line with the entire bit line Device.
상기 비트셀은 SRAM(Static Random Access Memory)인, 분할된 비트라인 기반 계산 메모리 장치. The method of claim 1,
wherein the bitcell is a static random access memory (SRAM).
하나의 비트라인을 분할한 복수의 분할된 비트라인을 연결하는 복수의 전송게이트의 개폐동작을 이용하여 상기 분할된 비트라인과 연결된 비트셀에 저장된 데이터 및 외부에서 인가되는 데이터의 값에 대해 곱셈연산을 하는 단계; 및
상기 곱셈연산을 하는 단계에서 복수의 비트라인에서 각각 출력되는 곱셈의 결과를 더하는 단계를 포함하는, 분할된 비트라인 기반 계산 메모리 장치를 이용한 곱의 합 연산을 수행하는 방법.It is performed using the divided bit line-based computational memory device according to claim 1,
Multiplication operation is performed on the values of data stored in the bit cells connected to the divided bit lines and externally applied data by using the opening/closing operation of a plurality of transfer gates connecting a plurality of divided bit lines obtained by dividing one bit line to do; and
and adding the multiplication results respectively output from a plurality of bit lines in the step of performing the multiplication operation.
상기 곱셈연산을 하는 단계는,
곱셈의 대상이 되는 상기 비트셀에 저장된 데이터 및 상기 외부에서 인가되는 데이터가 모두 양수이거나 음수일 때에는 곱셈의 결과를 양수로 판단하고, 상기 비트셀에 저장된 데이터 및 상기 외부에서 인가되는 데이터 중 하나가 음수일 때에는 곱셈의 결과를 음수로 판단하는 단계;
곱셈의 부호가 양일 때, 상기 비트셀에 저장된 데이터 및 상기 외부에서 인가되는 데이터에 대응하여 상기 분할된 비트라인을 충전, 방전 및 현 상태 유지를 수행한 후 전하 공유를 수행함으로써 상기 비트셀에 저장된 데이터 및 상기 외부에서 인가되는 데이터의 곱셈연산을 수행하는 제1 곱셈연산단계; 및
곱셈의 부호가 음일 때, 상기 비트셀에 저장된 데이터 및 상기 외부에서 인가되는 데이터에 대응하여 상기 분할된 비트라인을 충전, 방전 및 현 상태 유지를 수행한 후 전하 공유를 수행함으로써 상기 비트셀에 저장된 데이터 및 상기 외부에서 인가되는 데이터의 곱셈연산을 수행하는 제2 곱셈연산단계를 포함하는, 분할된 비트라인 기반 계산 메모리 장치를 이용한 곱의 합 연산을 수행하는 방법.5. The method of claim 4,
The step of performing the multiplication operation is
When the data stored in the bit cell to be multiplied and the data applied from the outside are both positive or negative, the result of the multiplication is determined as a positive number, and one of the data stored in the bit cell and the data applied from the outside is determining that the result of the multiplication is negative when the number is negative;
When the sign of multiplication is positive, charge, discharge, and current state maintenance are performed on the divided bit lines in response to the data stored in the bit cell and the externally applied data, and then charge sharing is performed to store data stored in the bit cell. a first multiplication operation step of performing a multiplication operation on data and the externally applied data; and
When the sign of multiplication is negative, charge, discharge, and current state maintenance are performed on the divided bit lines in response to the data stored in the bit cell and the data applied from the outside, and then charge sharing is performed to store data stored in the bit cell. A method of performing a sum operation of products using a divided bit line-based calculation memory device, comprising a second multiplication operation step of performing a multiplication operation between data and the externally applied data.
상기 제1 곱셈연산단계는,
모든 전송게이트가 턴 오프 된 상태에서 분할된 비트라인을 상기 외부에서 인가되는 데이터의 비트에 따라 충전 또는 방전하는 단계;
상기 분할된 비트라인을 연결하는 모든 전송게이트를 턴 온 시킴으로써 상기 분할된 비트라인에 충전된 전하를 해당 비트라인 전체에 공유하는 단계;
모든 전송게이트가 턴 오프된 상태에서 상기 분할된 비트라인을 상기 비트셀에 저장된 데이터의 비트에 따라 방전 또는 현 상태를 유지하는 단계; 및
모든 전송게이트를 턴 온 시킴으로써 상기 분할된 비트라인에 충전된 전하를 해당 비트라인 전체에 공유하는 단계를 포함하는, 분할된 비트라인 기반 계산 메모리 장치를 이용한 곱의 합 연산을 수행하는 방법.6. The method of claim 5,
The first multiplication operation step is,
charging or discharging the divided bit lines in a state in which all transfer gates are turned off according to the bits of data applied from the outside;
sharing the charge charged in the divided bit lines to all of the corresponding bit lines by turning on all transfer gates connecting the divided bit lines;
discharging or maintaining the current state of the divided bit line according to the bit of data stored in the bit cell in a state in which all transfer gates are turned off; and
A method of performing a sum operation of products using a divided bit line-based computational memory device, comprising the step of sharing the charge charged in the divided bit line to the entire bit line by turning on all transfer gates.
상기 충전 또는 방전하는 단계는,
상기 외부에서 인가되는 데이터의 비트가 1일 때에는 해당 분할된 비트라인을 충전하고, 상기 비트가 0일 때에는 해당 분할된 비트라인을 방전하고,
상기 충전, 방전 또는 현 상태를 유지하는 단계는,
상기 비트셀에 저장한 데이터의 비트가 1일 때에는 해당 분할된 비트라인의 상태를 유지하도록 하고, 상기 비트가 0일 때에는 해당 분할된 비트라인을 방전하는, 분할된 비트라인 기반 계산 메모리 장치를 이용한 곱의 합 연산을 수행하는 방법.7. The method of claim 6,
The charging or discharging step is,
When the bit of the externally applied data is 1, the divided bit line is charged, and when the bit is 0, the divided bit line is discharged;
The charging, discharging or maintaining the current state comprises:
When the bit of the data stored in the bit cell is 1, the state of the divided bit line is maintained, and when the bit is 0, the divided bit line is discharged. How to perform the sum of products operation.
상기 제2 곱셈연산단계는,
모든 전송게이트가 턴 오프 된 상태에서 분할된 비트라인을 상기 외부에서 인가되는 데이터의 비트에 따라 충전 또는 방전하는 단계;
상기 분할된 비트라인을 연결하는 모든 전송게이트를 턴 온 시킴으로써 상기 분할된 비트라인에 충전된 전하를 해당 비트라인 전체에 공유하는 단계;
모든 전송게이트가 턴 오프된 상태에서 상기 분할된 비트라인을 상기 비트셀에 저장된 데이터의 비트에 따라 충전 또는 현 상태를 유지하는 단계; 및
모든 전송게이트를 턴 온 시킴으로써 상기 분할된 비트라인에 충전된 전하를 해당 비트라인 전체에 공유하는 단계를 포함하는, 분할된 비트라인 기반 계산 메모리 장치를 이용한 곱의 합 연산을 수행하는 방법.6. The method of claim 5,
The second multiplication operation step is,
charging or discharging the divided bit lines in a state in which all transfer gates are turned off according to the bits of data applied from the outside;
sharing the charge charged in the divided bit lines to all of the corresponding bit lines by turning on all transfer gates connecting the divided bit lines;
charging or maintaining the current state of the divided bit line according to the bit of data stored in the bit cell in a state in which all transfer gates are turned off; and
A method of performing a sum operation of products using a divided bit line-based computational memory device, comprising the step of sharing the charge charged in the divided bit line to the entire bit line by turning on all transfer gates.
상기 충전 또는 방전하는 단계는,
상기 외부에서 인가되는 데이터의 비트가 1일 때에는 해당 분할된 비트라인을 방전하고, 상기 비트가 0일 때에는 해당 분할된 비트라인을 충전하며,
상기 충전, 방전 또는 현 상태를 유지하는 단계는,
상기 비트셀에 저장한 데이터의 비트가 1일 때에는 해당 분할된 비트라인의 상태를 유지하도록 하고, 상기 비트가 0일 때에는 해당 분할된 비트라인을 충전하는, 분할된 비트라인 기반 계산 메모리 장치를 이용한 곱의 합 연산을 수행하는 방법.9. The method of claim 8,
The charging or discharging step is,
When the bit of the externally applied data is 1, the divided bit line is discharged, and when the bit is 0, the divided bit line is charged,
The charging, discharging or maintaining the current state comprises:
When the bit of the data stored in the bit cell is 1, the state of the divided bit line is maintained, and when the bit is 0, the divided bit line is charged. How to perform the sum of products operation.
충전하는 전압은 방전하는 전압에 비해 높은 전압준위를 가지는, 분할된 비트라인 기반 계산 메모리 장치를 이용한 곱의 합 연산을 수행하는 방법.8. The method of claim 7,
A method of performing a sum operation of products using a divided bit line-based calculation memory device, in which the charging voltage has a higher voltage level than the discharging voltage.
충전하는 전압은 방전하는 전압에 비해 높은 전압준위를 가지는, 분할된 비트라인 기반 계산 메모리 장치를 이용한 곱의 합 연산을 수행하는 방법.10. The method of claim 9,
A method of performing a sum operation of products using a divided bit line-based calculation memory device, in which the charging voltage has a higher voltage level than the discharging voltage.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210046796 | 2021-04-09 | ||
KR20210046796 | 2021-04-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220140382A true KR20220140382A (en) | 2022-10-18 |
KR102582800B1 KR102582800B1 (en) | 2023-09-26 |
Family
ID=83803487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210057586A KR102582800B1 (en) | 2021-04-09 | 2021-05-04 | Method for computing a sum of product in memory using segmented bit-line based computation-in-memory apparatus |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102582800B1 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160232951A1 (en) * | 2015-02-05 | 2016-08-11 | The Board Of Trustees Of The University Of Illinois | Compute memory |
US20180315473A1 (en) * | 2017-04-28 | 2018-11-01 | Arizona Board Of Regents On Behalf Of Arizona State University | Static random access memory (sram) cell and related sram array for deep neural network and machine learning applications |
US20190102358A1 (en) * | 2017-09-29 | 2019-04-04 | Crossbar, Inc. | Resistive random access memory matrix multiplication structures and methods |
US20200202204A1 (en) * | 2017-09-07 | 2020-06-25 | Panasonic Corporation | Neural network computation circuit including non-volatile semiconductor memory element |
US20210072957A1 (en) * | 2019-09-05 | 2021-03-11 | Micron Technology, Inc. | Spatiotemporal fused-multiply-add, and related systems, methods and devices |
-
2021
- 2021-05-04 KR KR1020210057586A patent/KR102582800B1/en active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160232951A1 (en) * | 2015-02-05 | 2016-08-11 | The Board Of Trustees Of The University Of Illinois | Compute memory |
US20180315473A1 (en) * | 2017-04-28 | 2018-11-01 | Arizona Board Of Regents On Behalf Of Arizona State University | Static random access memory (sram) cell and related sram array for deep neural network and machine learning applications |
US20200202204A1 (en) * | 2017-09-07 | 2020-06-25 | Panasonic Corporation | Neural network computation circuit including non-volatile semiconductor memory element |
US20190102358A1 (en) * | 2017-09-29 | 2019-04-04 | Crossbar, Inc. | Resistive random access memory matrix multiplication structures and methods |
US20210072957A1 (en) * | 2019-09-05 | 2021-03-11 | Micron Technology, Inc. | Spatiotemporal fused-multiply-add, and related systems, methods and devices |
Non-Patent Citations (1)
Title |
---|
미국 등록특허 US 10,565,138 B2(MEMORY DEVICE WITH MUTIPLE MEMORY ARRAYS TO FACILITATE IN-MEMORY COMPUTATION, 2020.02.18.) |
Also Published As
Publication number | Publication date |
---|---|
KR102582800B1 (en) | 2023-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11322195B2 (en) | Compute in memory system | |
US10642922B2 (en) | Binary, ternary and bit serial compute-in-memory circuits | |
US10381071B1 (en) | Multi-bit computing circuit for computing-in-memory applications and computing method thereof | |
KR100930439B1 (en) | Content addressable memory cell | |
US4771404A (en) | Memory device employing multilevel storage circuits | |
US10636481B1 (en) | Memory cell for computing-in-memory applications, memory unit for computing-in-memory applications and computing method thereof | |
TWI750038B (en) | Memory device, computing device and computing method | |
CN100359600C (en) | Device and method for using complementary bits in memory array | |
CN114546335B (en) | Memory computing device for multi-bit input and multi-bit weight multiplication accumulation | |
CN112116937B (en) | SRAM circuit structure for realizing multiplication and/or logic operation in memory | |
CN114743580B (en) | Charge sharing memory computing device | |
KR20220150895A (en) | Time-sharing compute-in-memory bitcell | |
JPH11510300A (en) | Driving method of SRAM-MOS transistor memory cell | |
KR102582800B1 (en) | Method for computing a sum of product in memory using segmented bit-line based computation-in-memory apparatus | |
US4145759A (en) | Virtual power supply ROM | |
CN114895869B (en) | Multi-bit memory computing device with symbols | |
KR100712662B1 (en) | Memory structure of display device and memory writing method for the same | |
TW202307853A (en) | Computing device, memory controller, and method for performing an in-memory computation | |
US20230023505A1 (en) | Sense amplifier with read circuit for compute-in-memory | |
US4209851A (en) | Semiconductor memory cell with clocked voltage supply from data lines | |
US20220165319A1 (en) | Write circuit of memory device | |
CN110060713B (en) | Reading time sequence generation device with process floating tolerance | |
CN112951294B (en) | Computing device and computing method | |
US20220413801A1 (en) | Configurable computing unit within memory | |
CN114974351B (en) | Multi-bit memory computing unit and memory computing device |
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 |