KR20210105109A - Vector-matrix Multiplication Method and System for using NAND Array - Google Patents

Vector-matrix Multiplication Method and System for using NAND Array Download PDF

Info

Publication number
KR20210105109A
KR20210105109A KR1020200019644A KR20200019644A KR20210105109A KR 20210105109 A KR20210105109 A KR 20210105109A KR 1020200019644 A KR1020200019644 A KR 1020200019644A KR 20200019644 A KR20200019644 A KR 20200019644A KR 20210105109 A KR20210105109 A KR 20210105109A
Authority
KR
South Korea
Prior art keywords
array
vector
matrix multiplication
nand
modified
Prior art date
Application number
KR1020200019644A
Other languages
Korean (ko)
Other versions
KR102386439B1 (en
Inventor
백승재
Original Assignee
한경대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한경대학교 산학협력단 filed Critical 한경대학교 산학협력단
Priority to KR1020200019644A priority Critical patent/KR102386439B1/en
Publication of KR20210105109A publication Critical patent/KR20210105109A/en
Application granted granted Critical
Publication of KR102386439B1 publication Critical patent/KR102386439B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/24Bit-line control circuits

Abstract

Disclosed are a vector-matrix multiplication method and system using a NAND array. In one aspect of the present invention, the vector-matrix multiplication method using a NAND array proposed in the present invention includes the steps of: correcting a mismatch between a reference array and a main array; programming weights into the main array; applying a bit line voltage vector to perform vector-matrix multiplication; and performing a learning algorithm by modifying the weights by further programming cells of the main array to modify a threshold voltage. Accordingly, the present invention can be utilized as an elemental technology of edge computing.

Description

NAND 어레이를 이용한 벡터-행렬 곱셈 방법 및 시스템{Vector-matrix Multiplication Method and System for using NAND Array}Vector-matrix Multiplication Method and System for using NAND Array}

본 발명은 NAND 어레이를 이용한 벡터-행렬 곱셈 방법 및 시스템에 관한 것이다.The present invention relates to a vector-matrix multiplication method and system using a NAND array.

연산 시스템에서 데이터 이동 억제 및 국소화 트렌드는 인-메모리 컴퓨팅(In-memory computing) 또는 근거리 데이터 프로세싱(Near data processing) 등이 있다. 데이터 밀도가 가장 높은 NAND 플래쉬 내부 벡터-행렬 곱셈 연산 수행이 가능하다면 가장 효율적인 데이터 국소화를 달성할 수 있다. 구현 방안으로는 크로스-포인트 아키텍쳐(Cross-point architecture)의 어레이 이용 벡터-행렬 곱셈 방식을 참조한 NAND 어레이 이용 곱셈기를 이용할 수 있다. Data movement suppression and localization trends in computing systems include in-memory computing or near data processing. The most efficient data localization can be achieved if the vector-matrix multiplication operation inside the NAND flash with the highest data density can be performed. As an implementation method, a NAND array-using multiplier referring to an array-using vector-matrix multiplication scheme of a cross-point architecture may be used.

딥러닝 알고리즘을 적용한 연산 시스템에서 고속 벡터-행렬 곱셈 연산을 위한 방법 및 시스템을 필요로 한다. A method and system for high-speed vector-matrix multiplication operation are needed in an operation system to which a deep learning algorithm is applied.

본 발명이 이루고자 하는 기술적 과제는 딥러닝 알고리즘을 적용한 연산 시스템에서 고속 벡터-행렬 곱셈 연산을 수행하기 위한 NAND 어레이를 이용한 벡터-행렬 곱셈 방법 및 시스템을 제공하는데 있다. An object of the present invention is to provide a vector-matrix multiplication method and system using a NAND array for performing a high-speed vector-matrix multiplication operation in an operation system to which a deep learning algorithm is applied.

일 측면에 있어서, 본 발명에서 제안하는 NAND 어레이를 이용한 벡터-행렬 곱셈 방법은, 레퍼런스 어레이(Reference Array)와 메인 어레이(Main Array)의 미스매치를 보정하는 단계, 메인 어레이에 가중치를 프로그래밍하는 단계, 비트 라인 전압 벡터를 인가하여 벡터-행렬 곱셈을 수행하는 단계 및 메인 어레이의 셀들을 추가 프로그래밍하여 임계 전압을 수정함으로써 가중치를 수정하여 학습 알고리즘을 수행하는 단계를 포함한다. In one aspect, the vector-matrix multiplication method using a NAND array proposed by the present invention includes correcting a mismatch between a reference array and a main array, and programming a weight in the main array. , performing vector-matrix multiplication by applying a bit line voltage vector, and performing a learning algorithm by modifying weights by further programming cells of the main array to modify threshold voltages.

수정하기 위한 가중치의 주소와 수정될 크기가 결정되면, ISPP 방법을 이용하여 특정 셀의 임계 전압을 수정한다. When the address of the weight to be modified and the size to be modified are determined, the threshold voltage of a specific cell is modified using the ISPP method.

수정된 가중치 변화의 부호가 양수일 경우, 레퍼런스 어레이의 임계 전압을 프로그래밍한다. If the sign of the modified weight change is positive, the threshold voltage of the reference array is programmed.

수정된 가중치 변화의 부호가 음수일 경우, 메인 어레이의 임계 전압을 프로그래밍한다. If the sign of the modified weight change is negative, the threshold voltage of the main array is programmed.

메인 어레이의 셀들을 추가 프로그래밍하여 임계 전압을 수정함으로써 가중치를 수정하여 학습 알고리즘을 수행하는 단계는 피드 포워드 알고리즘은 NAND 플래쉬 외부의 프로세서에서 수행 가능하다. The step of performing the learning algorithm by modifying the weights by further programming the cells of the main array to modify the threshold voltage may be performed by a processor external to the NAND flash.

또 다른 일 측면에 있어서, 본 발명에서 제안하는 NAND 어레이를 이용한 벡터-행렬 곱셈 시스템은 워드라인 방향으로 결합된 레퍼런스 어레이(Reference Array) 및 메인 어레이(Main Array) 및 레퍼런스 어레이 및 메인 어레이의 각각의 어레이에서 얻어진 출력전류의 차를 이용하여 미스매치를 보정하는 컨트롤 로직 및 보정부를 포함하고, 레퍼런스 어레이 및 메인 어레이는, 메인 어레이에 가중치를 프로그래밍한 후, 비트 라인 전압 벡터를 인가하여 벡터-행렬 곱셈을 수행하고, 컨트롤 로직 및 보정부는, 메인 어레이의 셀들을 추가 프로그래밍하여 임계 전압을 수정함으로써 가중치를 수정하여 학습 알고리즘을 수행한다. In another aspect, the vector-matrix multiplication system using the NAND array proposed in the present invention is a reference array and a main array coupled in the word line direction, and each of the reference array and the main array. It includes a control logic and a correction unit for correcting a mismatch by using a difference in output current obtained from the array, and the reference array and the main array are vector-matrix multiplication by programming a weight to the main array and then applying a bit line voltage vector. , and the control logic and correction unit perform a learning algorithm by modifying the weight by further programming the cells of the main array to correct the threshold voltage.

본 발명의 실시예들에 따르면 딥러닝 알고리즘을 적용한 연산 시스템에서 고속 벡터-행렬 곱셈 연산을 수행하기 위한 NAND 어레이를 이용한 벡터-행렬 곱셈 방법 및 시스템을 통해 데이터 저장장치에 계산 기능을 결합한 컴퓨팅 기술의 발전에 기여할 것으로 예상되며, 에지 컴퓨팅(Edge computing)의 요소기술로서 활용될 수 있다. According to embodiments of the present invention, a vector-matrix multiplication method using a NAND array for performing a high-speed vector-matrix multiplication operation in an operation system to which a deep learning algorithm is applied and a computing technology combining a calculation function with a data storage device through the system It is expected to contribute to the development and can be utilized as an element technology of edge computing.

도 1은 본 발명의 일 실시예에 따른 NAND 어레이를 이용한 벡터-행렬 곱셈 시스템을 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 레퍼런스 어레이와 메인 어레이의 회로를 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른 NAND 어레이를 이용한 벡터-행렬 곱셈 방법을 설명하기 위한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 전류 및 전압 값의 동적 범위를 나타내는 그래프이다.
1 is a diagram illustrating a vector-matrix multiplication system using a NAND array according to an embodiment of the present invention.
2 is a diagram illustrating circuits of a reference array and a main array according to an embodiment of the present invention.
3 is a flowchart illustrating a vector-matrix multiplication method using a NAND array according to an embodiment of the present invention.
4 is a graph illustrating dynamic ranges of current and voltage values according to an embodiment of the present invention.

이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다. Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 NAND 어레이를 이용한 벡터-행렬 곱셈 시스템을 나타내는 도면이다. 1 is a diagram illustrating a vector-matrix multiplication system using a NAND array according to an embodiment of the present invention.

NAND 어레이를 이용한 벡터-행렬 곱셈 시스템은 데이터 레지스터&D/A 컨버터(110), 컨트롤 로직&보정부(120), 콜룸 디코더(130), 로디코더(141, 142), 레퍼런스 어레이(150), 메인 어레이(160) A/D 컨버터&데이터 레지스터(170)를 포함한다. A vector-matrix multiplication system using a NAND array includes a data register & D/A converter 110 , a control logic & correction unit 120 , a colum decoder 130 , a rhodecoder 141 and 142 , a reference array 150 , and a main The array 160 includes an A/D converter & data register 170 .

레퍼런스 어레이(Reference Array)(150) 및 메인 어레이(Main Array)(160)는 워드라인 방향으로 결합된다. 컨트롤 로직 및 보정부(120)는 레퍼런스 어레이(150) 및 메인 어레이(160)의 각각의 어레이에서 얻어진 출력전류의 차를 이용하여 미스매치를 보정한다. A reference array 150 and a main array 160 are coupled in a word line direction. The control logic and correction unit 120 corrects the mismatch by using the difference in output currents obtained from the respective arrays of the reference array 150 and the main array 160 .

레퍼런스 어레이(150) 및 메인 어레이(160)는 메인 어레이에 가중치를 프로그래밍한 후, 비트 라인 전압 벡터를 인가하여 벡터-행렬 곱셈을 수행한다. The reference array 150 and the main array 160 perform vector-matrix multiplication by programming a weight in the main array and then applying a bit line voltage vector.

컨트롤 로직 및 보정부(120)는 메인 어레이(160)의 셀들을 추가 프로그래밍하여 임계 전압을 수정함으로써 가중치를 수정하여 학습 알고리즘을 수행한다. 본 발명의 실시예에 따르면, 수정하기 위한 가중치의 주소와 수정될 크기가 결정되면, ISPP 방법을 이용하여 특정 셀의 임계 전압을 수정할 수 있다. The control logic and correction unit 120 performs a learning algorithm by correcting the weight by further programming the cells of the main array 160 to correct the threshold voltage. According to an embodiment of the present invention, when the address of the weight to be modified and the size to be modified are determined, the threshold voltage of a specific cell may be modified using the ISPP method.

레퍼런스 어레이(150)는 수정된 가중치 변화의 부호가 양수일 경우, 레퍼런스 어레이의 임계 전압을 프로그래밍한다. The reference array 150 programs the threshold voltage of the reference array when the sign of the modified weight change is positive.

메인 어레이(160)는 수정된 가중치 변화의 부호가 음수일 경우, 메인 어레이의 임계 전압을 프로그래밍한다. The main array 160 programs the threshold voltage of the main array when the sign of the modified weight change is negative.

메인 어레이(160)는 셀들을 추가 프로그래밍하여 임계 전압을 수정함으로써 가중치를 수정하여 학습 알고리즘을 수행할 때, 피드 포워드 알고리즘은 NAND 플래쉬 외부의 프로세서에서 수행 가능하다. When the main array 160 performs a learning algorithm by modifying the weights by modifying the threshold voltage by further programming the cells, the feed forward algorithm can be performed in a processor external to the NAND flash.

도 2는 본 발명의 일 실시예에 따른 레퍼런스 어레이와 메인 어레이의 회로를 나타내는 도면이다. 2 is a diagram illustrating circuits of a reference array and a main array according to an embodiment of the present invention.

NAND 어레이의 리드 동작에 있어서, IBL은 MOSFET 선형 동작 영역에서의 리드 전류를 나타낸다. 점선으로 둘러싸인 셀이 선택된 셀이고 VBL 은 VWL-Vth 보다 작다. In the read operation of the NAND array, I BL represents the read current in the MOSFET linear operation region. The cell enclosed by the dotted line is the selected cell and V BL is less than V WL -V th .

여기서, 선형 동작 모드는

Figure pat00001
와 같이 나타낼 수 있고, VST는 탑에서의 스위치 전압, VSB는 바텀에서의 스위치 전압을 나타낸다. IBL은 하기식과 같이 나타낼 수 있다: Here, the linear mode of operation is
Figure pat00001
It can be expressed as , where V ST represents the switch voltage at the top, and V SB represents the switch voltage at the bottom. I BL can be expressed as:

Figure pat00002
Figure pat00002

도 2를 참조하면, 각각의 스트링(string)의 그라운드(ground) 단을 하나로 묶은 NAND 어레이를 나타내었다. 각각의 스트링의 전류가 합산된 출력 전류 IBL_j

Figure pat00003
와 같이 나타낼 수 있다. 전체 어레이에 인가된 VBL은 벡터(VBL_i) 로 표현한다. 즉, 각 스트링에 별도의 전압을 인가한다. Referring to FIG. 2 , a NAND array in which a ground terminal of each string is bundled is shown. The output current I BL_j with the sum of the currents of each string is
Figure pat00003
can be expressed as V BL applied to the entire array is expressed as a vector (V BL_i ). That is, a separate voltage is applied to each string.

이와 같은 NAND 어레이 두 개(210, 220)를 워드라인 방향으로 결합한 후 각 어레이에서 얻어진 출력전류의 차를 취한다. 이 때 왼쪽의 NAND 어레이를 레퍼런스 어레이(210)라 하고, 오른편의 NAND 어레이를 메인 어레이(220)라고 한다. 각 어레이에서 얻어진 전류의 차는 다음 식과 같이 표현된다: After combining the two NAND arrays 210 and 220 in the word line direction, the difference between the output currents obtained from each array is taken. In this case, the left NAND array is referred to as a reference array 210 , and the right NAND array is referred to as a main array 220 . The difference in current obtained in each array is expressed as:

Figure pat00004
Figure pat00004

이 때 레퍼런스 어레이(210)의 Vth 벡터는 Vthr_i로, 메인 어레이(220)의 Vth 벡터는 Vth_i로 나타냈다. 결과적으로 출력 전류 Iout_j 는 벡터 Vthr_i-Vth_i와 벡터 VBL_i의 곱에 비례한다. V th of the vector when the reference array 210 to thr_i V, V th vector of the main array 220 is shown as V th_i. Consequently, the output current I out_j is proportional to the product of the vector V thr_i -V th_i and the vector V BL_i .

도 2는

Figure pat00005
NAND 어레이 두 개를 이용하여
Figure pat00006
크기의 행렬과 크기
Figure pat00007
의 벡터 곱을 m 회의 리드 동작을 통해 구현할 수 있음을 나타낸다. 이 때 딥러닝 알고리즘에서 가중치(weight)로 표현되는 행렬의 각 성분은 위 두 개 NAND 어레이 내 대응 되는 셀Vth 들의 차로 구현되고, 여기에 곱해지는 벡터는 비트라인(bitline) 전압을 성분으로 가지는 n 차원 벡터로 구현된다.2 is
Figure pat00005
using two NAND arrays
Figure pat00006
size matrix and size
Figure pat00007
It indicates that the vector product of can be implemented through m read operations. At this time, each component of the matrix expressed as a weight in the deep learning algorithm is implemented as the difference between the corresponding cells V th in the above two NAND arrays, and the vector multiplied therewith has a bitline voltage as a component. It is implemented as an n-dimensional vector.

도 3은 본 발명의 일 실시예에 따른 NAND 어레이를 이용한 벡터-행렬 곱셈 방법을 설명하기 위한 흐름도이다. 3 is a flowchart illustrating a vector-matrix multiplication method using a NAND array according to an embodiment of the present invention.

제안하는 NAND 어레이를 이용한 벡터-행렬 곱셈 방법은 레퍼런스 어레이(Reference Array)와 메인 어레이(Main Array)의 미스매치를 보정하는 단계(310), 메인 어레이에 가중치를 프로그래밍하는 단계(320), 비트 라인 전압 벡터를 인가하여 벡터-행렬 곱셈을 수행하는 단계(330) 및 메인 어레이의 셀들을 추가 프로그래밍하여 임계 전압을 수정함으로써 가중치를 수정하여 학습 알고리즘을 수행하는 단계(340)를 포함한다. The proposed vector-matrix multiplication method using a NAND array includes correcting mismatch between a reference array and a main array (310), programming a weight in the main array (320), and a bit line It includes applying a voltage vector to perform vector-matrix multiplication ( 330 ) and performing a learning algorithm by modifying weights by further programming cells of the main array to correct a threshold voltage ( 340 ).

단계(310)에서, 레퍼런스 어레이(Reference Array)와 메인 어레이(Main Array)의 미스매치를 보정한다. In step 310, the mismatch between the reference array (Reference Array) and the main array (Main Array) is corrected.

단계(320)에서, 메인 어레이에 가중치를 프로그래밍한다. In step 320, the weights are programmed into the main array.

단계(330)에서, 비트 라인 전압 벡터를 인가하여 벡터-행렬 곱셈을 수행한다. In step 330, a vector-matrix multiplication is performed by applying a bit line voltage vector.

단계(340)에서, 메인 어레이의 셀들을 추가 프로그래밍하여 임계 전압을 수정함으로써 가중치를 수정하여 학습 알고리즘을 수행한다. In step 340, a learning algorithm is performed by modifying the weights by further programming the cells of the main array to modify the threshold voltage.

단계(340)를 위한 피드 포워드(feed forward) 알고리즘은 적은 양의 데이터를 이용한 연산이므로 NAND 플래시 외부의 프로세서에서 수행되어도 무방하다.Since the feed forward algorithm for step 340 is an operation using a small amount of data, it may be performed by a processor outside the NAND flash.

수정해야 할 가중치의 주소와 수정될 크기가 결정되었다면, NAND 플래쉬에서 통상 사용되는 ISPP 방법을 응용하여 특정 셀의 Vth 를 수정할 수 있다. 이 때 수정해야 할 가중치 변화의 부호가 양수라면 레퍼런스 어레이의 Vth 를 프로그래밍하고, 그 부호가 음수라면 메인 어레이의 Vth 를 프로그래밍하면 된다.If the address of the weight to be modified and the size to be modified are determined, the V th of a specific cell can be modified by applying the ISPP method commonly used in NAND flash. At this time, if the sign of the weight change to be corrected is positive , program V th of the reference array, and if the sign is negative, program V th of the main array.

Figure pat00008
Figure pat00008

예를 들어, 수정해야 할 가중치 변화의 부호가 양수라면 레퍼런스 어레이의 (i, j) 셀을 프로그래밍하고,

Figure pat00009
을 증가시킨다. 수정해야 할 가중치 변화의 부호가 음수라면 메인 어레이의 (i, j) 셀을 프로그래밍하고,
Figure pat00010
을 증가시킨다. For example, if the sign of the weight change to be corrected is positive, program the (i, j) cell of the reference array,
Figure pat00009
to increase If the sign of the weight change to be corrected is negative, program the (i, j) cell of the main array,
Figure pat00010
to increase

위 동작은 선형 영역의 동작 범위에서 가능하고 그 동작 범위는 보고된 NAND 셀의 전류-전압 특성을 고려할 때 충분히 넓게 설계 가능하다.The above operation is possible in the operating range of the linear region, and the operating range can be designed sufficiently wide considering the reported current-voltage characteristics of the NAND cell.

도 4는 본 발명의 일 실시예에 따른 전류 및 전압 값의 동적 범위를 나타내는 그래프이다. 4 is a graph illustrating dynamic ranges of current and voltage values according to an embodiment of the present invention.

선형 동작 모드는

Figure pat00011
와 같이 나타낼 수 있고, NAND 어레이의 리드 동작에 있어서, IBL은 MOSFET 선형 동작 영역에서의 리드 전류를 나타낸다. IBL의 동적 범위는 아래와 같이 나타낼 수 있다: The linear mode of operation is
Figure pat00011
In the read operation of the NAND array, I BL represents the read current in the MOSFET linear operation region. The dynamic range of I BL can be expressed as:

Figure pat00012
Figure pat00012

선택된 셀에서 VBL 은 VWL_S-Vth_max 보다 작고, 다음과 같이 나타낼 수 있다: In the selected cell, V BL is less than V WL_S -V th_max and can be expressed as:

Figure pat00013
Figure pat00013

본 발명의 실시예들에 따르면 딥러닝 알고리즘을 적용한 연산 시스템에서 고속 벡터-행렬 곱셈 연산을 수행하기 위한 NAND 어레이를 이용한 벡터-행렬 곱셈 방법 및 시스템을 통해 데이터 저장장치에 계산 기능을 결합한 컴퓨팅 기술의 발전에 기여할 것으로 예상되며, 에지 컴퓨팅(Edge computing)의 요소기술로서 활용될 수 있다. According to embodiments of the present invention, a vector-matrix multiplication method using a NAND array for performing a high-speed vector-matrix multiplication operation in an operation system to which a deep learning algorithm is applied and a computing technology combining a calculation function with a data storage device through the system It is expected to contribute to the development and can be utilized as an element technology of edge computing.

상술된 내용은 한 번의 벡터-행렬 곱셈 방법에 대한 것이다. 여러 번의 순차적 연산이 가능하고, 효율적인 순차 연산을 위해서는 세부적 설계 검토가 필요하다. The above description is for a one-time vector-matrix multiplication method. Multiple sequential operations are possible, and detailed design review is required for efficient sequential operation.

NAND 플래쉬는 통상 수십 ~ 수백 Gbit 의 큰 용량을 가지고 있으므로 용량을 충분히 활용한 벡터-행렬 곱셈의 병렬 연산을 통해 연산 성능 향상 가능성이 크다.Since NAND flash usually has a large capacity of several tens to several hundreds of Gbits, there is a high possibility of improving computational performance through parallel operation of vector-matrix multiplication that fully utilizes the capacity.

스토리지 컴퓨팅(Storage computing)은 NAND 플래쉬와 컴퓨팅을 결합한 제품을 통해 빅 데이터 고속 연산 시스템의 혁신을 이끌 수 있다.Storage computing can lead innovation in big data high-speed computing systems through products that combine NAND flash and computing.

데이터 비휘발성, 메모리 어레이를 활용한 효율적 계산 방식, 그리고 병렬 연산 개념을 조합하여 NAND 분야 기술개발의 새로운 영역을 개척할 수 있다. By combining non-volatile data, efficient calculation method using memory array, and parallel operation concept, it is possible to pioneer a new area of technology development in the NAND field.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다.  또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다.  이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다.  예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다.  또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The device described above may be implemented as a hardware component, a software component, and/or a combination of the hardware component and the software component. For example, devices and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA), It may be implemented using one or more general purpose or special purpose computers, such as a programmable logic unit (PLU), microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For convenience of understanding, although one processing device is sometimes described as being used, one of ordinary skill in the art will recognize that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that can include For example, the processing device may include a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다.  소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다.  소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may comprise a computer program, code, instructions, or a combination of one or more thereof, which configures a processing device to operate as desired or is independently or collectively processed You can command the device. The software and/or data may be any kind of machine, component, physical device, virtual equipment, computer storage medium or device, to be interpreted by or to provide instructions or data to the processing device. may be embodied in The software may be distributed over networked computer systems, and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다.  상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.  상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.  컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.  프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.  The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and available to those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다.  예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with reference to the limited embodiments and drawings, various modifications and variations are possible from the above description by those skilled in the art. For example, the described techniques are performed in a different order than the described method, and/or the described components of the system, structure, apparatus, circuit, etc. are combined or combined in a different form than the described method, or other components Or substituted or substituted by equivalents may achieve an appropriate result.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (10)

레퍼런스 어레이(Reference Array)와 메인 어레이(Main Array)의 미스매치를 보정하는 단계;
메인 어레이에 가중치를 프로그래밍하는 단계;
비트 라인 전압 벡터를 인가하여 벡터-행렬 곱셈을 수행하는 단계; 및
메인 어레이의 셀들을 추가 프로그래밍하여 임계 전압을 수정함으로써 가중치를 수정하여 학습 알고리즘을 수행하는 단계
를 포함하는 NAND 어레이를 이용한 벡터-행렬 곱셈 방법.
correcting a mismatch between a reference array and a main array;
programming weights into the main array;
applying a bit line voltage vector to perform vector-matrix multiplication; and
performing a learning algorithm by modifying the weights by further programming the cells of the main array to modify the threshold voltage.
A vector-matrix multiplication method using a NAND array comprising
제1항에 있어서,
수정하기 위한 가중치의 주소와 수정될 크기가 결정되면, ISPP 방법을 이용하여 특정 셀의 임계 전압을 수정하는
NAND 어레이를 이용한 벡터-행렬 곱셈 방법.
According to claim 1,
When the address of the weight to be modified and the size to be modified are determined, the threshold voltage of a specific cell is modified using the ISPP method.
A vector-matrix multiplication method using a NAND array.
제1항에 있어서,
수정된 가중치 변화의 부호가 양수일 경우, 레퍼런스 어레이의 임계 전압을 프로그래밍하는
NAND 어레이를 이용한 벡터-행렬 곱셈 방법.
According to claim 1,
If the sign of the modified weight change is positive, the threshold voltage of the reference array is programmed.
A vector-matrix multiplication method using a NAND array.
제1항에 있어서,
수정된 가중치 변화의 부호가 음수일 경우, 메인 어레이의 임계 전압을 프로그래밍하는
NAND 어레이를 이용한 벡터-행렬 곱셈 방법.
According to claim 1,
If the sign of the modified weight change is negative, the threshold voltage of the main array is programmed.
A vector-matrix multiplication method using a NAND array.
제1항에 있어서,
메인 어레이의 셀들을 추가 프로그래밍하여 임계 전압을 수정함으로써 가중치를 수정하여 학습 알고리즘을 수행하는 단계는,
피드 포워드 알고리즘은 NAND 플래쉬 외부의 프로세서에서 수행 가능한
NAND 어레이를 이용한 벡터-행렬 곱셈 방법.
According to claim 1,
Performing the learning algorithm by modifying the weight by modifying the threshold voltage by further programming the cells of the main array,
The feed-forward algorithm can be run on a processor outside of the NAND flash.
A vector-matrix multiplication method using a NAND array.
워드라인 방향으로 결합된 레퍼런스 어레이(Reference Array) 및 메인 어레이(Main Array); 및
레퍼런스 어레이 및 메인 어레이의 각각의 어레이에서 얻어진 출력전류의 차를 이용하여 미스매치를 보정하는 컨트롤 로직 및 보정부
를 포함하고,
레퍼런스 어레이 및 메인 어레이는,
메인 어레이에 가중치를 프로그래밍한 후, 비트 라인 전압 벡터를 인가하여 벡터-행렬 곱셈을 수행하고,
컨트롤 로직 및 보정부는,
메인 어레이의 셀들을 추가 프로그래밍하여 임계 전압을 수정함으로써 가중치를 수정하여 학습 알고리즘을 수행하는
NAND 어레이를 이용한 벡터-행렬 곱셈 시스템.
a reference array and a main array coupled in a word line direction; and
Control logic and correction unit that corrects the mismatch by using the difference in output currents obtained from the respective arrays of the reference array and the main array
including,
The reference array and the main array are
After programming the weights into the main array, vector-matrix multiplication is performed by applying a bit line voltage vector,
The control logic and correction unit,
By further programming the cells of the main array to modify the threshold voltage, the weight is modified to perform the learning algorithm.
A vector-matrix multiplication system using NAND arrays.
제6항에 있어서,
수정하기 위한 가중치의 주소와 수정될 크기가 결정되면, ISPP 방법을 이용하여 특정 셀의 임계 전압을 수정하는
NAND 어레이를 이용한 벡터-행렬 곱셈 시스템.
7. The method of claim 6,
When the address of the weight to be modified and the size to be modified are determined, the threshold voltage of a specific cell is modified using the ISPP method.
A vector-matrix multiplication system using NAND arrays.
제6항에 있어서,
레퍼런스 어레이는,
수정된 가중치 변화의 부호가 양수일 경우, 레퍼런스 어레이의 임계 전압을 프로그래밍하는
NAND 어레이를 이용한 벡터-행렬 곱셈 시스템.
7. The method of claim 6,
The reference array is
If the sign of the modified weight change is positive, the threshold voltage of the reference array is programmed.
A vector-matrix multiplication system using NAND arrays.
제6항에 있어서,
메인 어레이는,
수정된 가중치 변화의 부호가 음수일 경우, 메인 어레이의 임계 전압을 프로그래밍하는
NAND 어레이를 이용한 벡터-행렬 곱셈 시스템.
7. The method of claim 6,
The main array is
If the sign of the modified weight change is negative, the threshold voltage of the main array is programmed.
A vector-matrix multiplication system using NAND arrays.
제6항에 있어서,
메인 어레이는,
셀들을 추가 프로그래밍하여 임계 전압을 수정함으로써 가중치를 수정하여 학습 알고리즘을 수행할 때, 피드 포워드 알고리즘은 NAND 플래쉬 외부의 프로세서에서 수행 가능한
NAND 어레이를 이용한 벡터-행렬 곱셈 시스템.
7. The method of claim 6,
The main array is
When performing the learning algorithm by modifying the weights by further programming the cells to modify the threshold voltage, the feed-forward algorithm is
A vector-matrix multiplication system using NAND arrays.
KR1020200019644A 2020-02-18 2020-02-18 Vector-matrix Multiplication Method and System for using NAND Array KR102386439B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200019644A KR102386439B1 (en) 2020-02-18 2020-02-18 Vector-matrix Multiplication Method and System for using NAND Array

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200019644A KR102386439B1 (en) 2020-02-18 2020-02-18 Vector-matrix Multiplication Method and System for using NAND Array

Publications (2)

Publication Number Publication Date
KR20210105109A true KR20210105109A (en) 2021-08-26
KR102386439B1 KR102386439B1 (en) 2022-04-14

Family

ID=77465551

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200019644A KR102386439B1 (en) 2020-02-18 2020-02-18 Vector-matrix Multiplication Method and System for using NAND Array

Country Status (1)

Country Link
KR (1) KR102386439B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100442434B1 (en) * 2002-03-07 2004-07-30 엘지전자 주식회사 Accumulation Method of Array Structure node for Pre-trained Neural Network Design

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100442434B1 (en) * 2002-03-07 2004-07-30 엘지전자 주식회사 Accumulation Method of Array Structure node for Pre-trained Neural Network Design

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Panni Wang 외 6명, "Three-Dimensional NAND Flash for Vector-Matrix Multiplication", IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, pp1-4 (2018.12.10.)* *

Also Published As

Publication number Publication date
KR102386439B1 (en) 2022-04-14

Similar Documents

Publication Publication Date Title
US11244225B2 (en) Neural network processor configurable using macro instructions
CN102087878B (en) Flash memory device and method of programming same
TW202036394A (en) Non-volatile computing method in flash memory
US11853846B2 (en) Acceleration of model/weight programming in memristor crossbar arrays
WO2020024608A1 (en) Analog vector-matrix multiplication circuit
KR101618313B1 (en) Programming method of nonvolatile memory device
CN111128279A (en) Memory computing chip based on NAND Flash and control method thereof
US11309026B2 (en) Convolution operation method based on NOR flash array
KR102386439B1 (en) Vector-matrix Multiplication Method and System for using NAND Array
US20200117449A1 (en) Accelerated Access to Computations Results Generated from Data Stored in Memory Devices
KR102056397B1 (en) Method for Reading PRAM to Improve Dispersion and Apparatus Therefor
CN111859261A (en) Computing circuit and operating method thereof
JP7245817B2 (en) Continuous value matching in data processing equipment
KR102555621B1 (en) In-memory computation circuit and method
US20220044102A1 (en) Fault tolerant artificial neural network computation in deep learning accelerator having integrated random access memory
TWI704569B (en) Integrated circuit and computing method thereof
KR101787877B1 (en) Method and apparatus and for emulating match lines and comparison cells architecture in CAM using RAM hardware
US11081182B2 (en) Integrated circuit and computing method thereof
US20220138541A1 (en) Systems and methods for use with recurrent neural networks
CN115712407A (en) Multiply accumulator circuit and method executed by multiply accumulator circuit
US11423959B2 (en) Processing-in-memory devices for element-wise multiplication
US11929762B2 (en) Low density parity check decoder and storage device
US20230198511A1 (en) Split pulse width modulation to reduce crossbar array integration time
US20240086682A1 (en) Function-based activation of memory tiers
KR102247164B1 (en) Method for reading Flash Memory Combined with Operation of Channel Decoder and Apparatus Therefore

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