KR20210029071A - Mac 연산 동작을 수행하는 비휘발성 메모리 장치 - Google Patents
Mac 연산 동작을 수행하는 비휘발성 메모리 장치 Download PDFInfo
- Publication number
- KR20210029071A KR20210029071A KR1020200044466A KR20200044466A KR20210029071A KR 20210029071 A KR20210029071 A KR 20210029071A KR 1020200044466 A KR1020200044466 A KR 1020200044466A KR 20200044466 A KR20200044466 A KR 20200044466A KR 20210029071 A KR20210029071 A KR 20210029071A
- Authority
- KR
- South Korea
- Prior art keywords
- nonvolatile memory
- memory device
- signal
- calibration
- voltage
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/24—Bit-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/32—Timing circuits
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Read Only Memory (AREA)
Abstract
본 기술에 의한 비휘발성 메모리 장치는 다수의 가중치를 저장하고 다수의 입력 신호에 따라 제어되는 다수의 비휘발성 메모리 소자 및 다수의 비휘발성 메모리 소자에 연결되는 비트라인을 포함하는 메모리 셀 어레이; 및 비트라인의 신호로부터 다수의 입력 신호에 대응하는 입력 벡터와 다수의 가중치에 대응하는 가중치 벡터의 내적에 대응하는 연산 신호를 출력하는 연산 출력 회로를 포함한다.
Description
본 발명은 곱셈 및 누적(MAC: MULTIPLICATION AND ACCUMULATION) 연산 동작을 수행할 수 있는 비휘발성 메모리 장치에 관한 것이다.
이미지 인식, 자율 주행 자동차 등의 인공 지능 분야에서 신경망(NEURAL NETWORK)이 널리 이용되고 있다.
신경망은 입력 레이어, 출력 레이어, 및 그 사이의 하나 또는 둘 이상의 내부 레이어를 포함한다.
각각의 레이어는 하나 또는 둘 이상의 뉴런을 포함하고, 인접한 레이어에 포함된 뉴런들은 시냅스를 통해 서로 연결되며 각각의 시냅스에는 가중치가 할당된다.
시냅스에 할당되는 가중치는 훈련 동작을 통해 결정된다.
입력 레이어에 포함된 뉴런의 값은 입력된 값으로부터 결정되고, 내부 레이어 및 출력 레이어에 포함된 뉴런의 값은 이전 레이어에 포함된 뉴런의 값과 시냅스에 할당된 가중치를 이용한 연산 결과로부터 얻어진다.
신경망 연산에서는 곱셈 및 누적(MAC) 연산이 빈번하게 수행되며 이를 효율적으로 수행할 수 있는 연산 회로의 중요성이 증가하고 있다.
본 기술은 곱셈 및 누적(MAC) 연산을 수행할 수 있는 비휘발성 메모리 장치를 제공한다.
본 발명의 일 실시예에 의한 비휘발성 메모리 장치는 다수의 가중치를 저장하고 다수의 입력 신호에 따라 제어되는 다수의 비휘발성 메모리 소자 및 다수의 비휘발성 메모리 소자에 연결되는 비트라인을 포함하는 메모리 셀 어레이; 및 비트라인의 신호로부터 다수의 입력 신호에 대응하는 입력 벡터와 다수의 가중치의 내적에 대응하는 가중치 벡터의 내적에 대응하는 연산 신호를 출력하는 연산 출력 회로를 포함한다.
본 기술에 의한 비휘발성 메모리 장치는 메모리 셀에 가중치에 대응하는 정보를 저장하여 가중치 벡터와 입력 벡터의 내적 연산을 용이하게 수행할 수 있다.
도 1은 본 발명의 일 실시예에 의한 플래시 메모리 장치를 나타내는 블록도.
도 2는 본 발명의 일 실시예에 의한 낸드 스트링을 나타내는 블록도.
도 3은 플래시 메모리 셀을 이용한 연산 동작을 나타내는 설명도.
도 4는 본 발명의 일 실시예에 의한 입력 회로를 나타내는 블록도.
도 5는 본 발명의 일 실시예에 의한 제 1 입력 회로를 나타내는 블록도.
도 6은 본 발명의 일 실시예에 의한 출력 회로를 나타내는 블록도.
도 7은 본 발명의 일 실시예에 의한 연산 출력 회로를 나타내는 블록도.
도 8은 본 발명의 일 실시예에 의한 변환 회로의 동작을 나타내는 타이밍도.
도 9는 본 발명의 일 실시예에 의한 플래시 메모리 장치의 연산 동작을 나타내는 타이밍도.
도 2는 본 발명의 일 실시예에 의한 낸드 스트링을 나타내는 블록도.
도 3은 플래시 메모리 셀을 이용한 연산 동작을 나타내는 설명도.
도 4는 본 발명의 일 실시예에 의한 입력 회로를 나타내는 블록도.
도 5는 본 발명의 일 실시예에 의한 제 1 입력 회로를 나타내는 블록도.
도 6은 본 발명의 일 실시예에 의한 출력 회로를 나타내는 블록도.
도 7은 본 발명의 일 실시예에 의한 연산 출력 회로를 나타내는 블록도.
도 8은 본 발명의 일 실시예에 의한 변환 회로의 동작을 나타내는 타이밍도.
도 9는 본 발명의 일 실시예에 의한 플래시 메모리 장치의 연산 동작을 나타내는 타이밍도.
이하에서는 첨부한 도면을 참조하여 본 발명의 실시예를 개시한다.
이하의 개시에서는 플래시 메모리 장치를 예로 들어 본 발명의 일 실시예에 의한 비휘발성 메모리 장치를 개시하나 메모리 장치의 종류가 반드시 플래시 메모리 장치로 한정되는 것은 아니다.
도 1은 본 발명의 일 실시예에 의한 플래시 메모리 장치(1)를 나타내는 블록도이다.
본 실시예에 의한 플래시 메모리 장치(1)는 플래시 셀 어레이(100), 입력 회로(200), 출력 회로(300), 명령 디코더(400) 및 캘리브레이션 회로(500)를 포함한다.
명령 디코더(400)는 기본적으로 종래의 플래시 메모리 장치에 포함된 명령 디코더와 마찬가지로 읽기 동작, 프로그램 동작 및 소거 동작을 제어한다.
본 실시예에서 명령 디코더(400)는 연산 동작을 위하여 필요한 제어 동작을 추가로 수행한다.
본 실시예에 의한 플래시 메모리 장치는 메모리 동작 모드와 연산 동작 모드를 가진다.
메모리 동작 모드에서는 일반적인 플래시 메모리 장치의 동작을 수행한다. 연산 동작 모드에서는 MAC 연산 동작을 수행한다.
명령 디코더(400)는 모드 신호(MODE)를 출력하여 메모리 동작 모드(MODE = 0)와 연산 동작 모드(MODE = 1)를 구분할 수 있다.
플래시 셀 어레이(100)는 메모리 셀 어레이로 지칭될 수 있다.
플래시 셀 어레이(100)는 다수의 낸드 스트링(110), 다수의 비트라인(BL), 다수의 소스 라인(SL)을 포함한다.
도 2는 본 발명의 일 실시예에 의한 낸드 스트링(110)을 포함한다.
낸드 스트링(110)은 대응하는 비트라인(BL)과 소스라인(SL) 사이에 연결되며 직렬로 연결된 다수의 플래시 셀(F1, F2, ..., Fn, Fc)을 포함한다.
이하에서 낸드 스트링은 셀 스트링으로, 플래시 셀은 메모리 셀로 지칭될 수 있다.
낸드 스트링(110)은 플래시 셀(F1)과 비트라인(BL)을 연결하는 비트라인 선택 스위치(N1)와 플래시 셀(Fc)과 소스라인(SL)을 연결하는 소스라인 선택 스위치(N2)를 포함한다.
본 실시예에서 플래시 셀(Fc)은 캘리브레이션 동작을 위해 사용되는 것으로서 캘리브레이션 셀(Fc)로 지칭될 수 있다.
본 실시예에서 비트라인 선택 스위치(N1)와 소스라인 선택 스위치(N2)는 NMOS 트랜지스터이다.
다수의 플래시 셀(F1, F2, ..., Fm, Fc)은 플로팅 게이트 방식의 플래시 셀 또는 차지트랩 방식의 플래시 셀이다.
각각의 플래시 셀은 가중치를 저장하며 가중치를 저장하는 동작은 플래시 메모리 장치(1)의 프로그램 동작에 수행될 수 있다.
본 실시예에서 플래시 셀은 1 비트의 가중치를 저장한다. 다른 실시예에서 플래시 셀은 멀티 비트의 가중치를 저장할 수 있다.
도 3은 플래시 셀을 이용한 연산 동작을 나타내는 설명도이다.
플래시 셀은 플로팅 게이트 또는 차지트랩 영역에 전하가 주입되었는지에 따라 문턱전압이 낮거나 문턱전압이 높게 설정된다.
본 실시예에서 문턱 전압이 낮은 경우 즉 낮은 문턱 전압(VTH, L)는 가중치가 0인 경우에 대응하고 문턱 전압이 높은 경우 즉 높은 문턱 전압(VTH, H)는 가중치가 1인 경우에 대응한다.
이때 입력 전압(VIN)의 레벨을 조절하여 플래시 셀의 게이트에 인가하면 문턱 전압에 따라 플래시 셀의 드레인-소스 전압(Vds)이 달라진다.
이때 입력 전압(VIN)은 낮은 입력 전압(VIN, L) 또는 높은 입력 전압(VIN, H)으로 설정된다.
본 실시예에서 낮은 입력 전압(VIN, L)은 디지털 값 '1'에 대응하고, 높은 입력 전압(VIN, H)은 디지털 값 '0'에 대응한다.
도 3에 도시된 바와 같이 본 실시예에서 낮은 입력 전압(VIN, L)은 높은 입력 전압(VIN, H)보다 낮으나 적어도 높은 문턱 전압(VTH, H)보다 높게 설정된다.
예를 들어 낮은 문턱 전압(VTH, L)은 0V ~ 1V의 구간 사이에 분포되고, 높은 문턱 전압(VTH, H)은 4V ~ 5V의 구간 사이에 분포될 수 있다. 또한 낮은 입력 전압(VIN, L)은 7V, 높은 입력 전압(VIN, H)은 11V의 전압을 사용할 수 있다.
이에 따라 입력 전압(VIN)의 레벨에 관계없이 플래시 셀은 턴온 상태가 되나 턴온 저항의 크기는 달라진다.
도 3에서 테이블은 입력 전압의 크기와 문턱 전압의 크기의 조합에 대한 드레인-소스 전압(VDS)의 크기를 나타낸 표이다.
테이블에서 입력 전압과 문턱 전압의 곱에 대응하는 곱(IWP) 신호이다. 본 실시예에서 입력 전압과 문턱 전압은 각각 1비트 신호로서 곱(IWP) 신호는 0 또는 1의 값을 가진다.
드레인-소스 전압(VDS)은 세 가지 경우로 구분할 수 있다.
V1은 낮은 입력 전압(VIN,L)과 높은 문턱 전압(VTH, H)에 대응하는 값으로서 이는 플래시 셀의 턴온 저항이 큰 경우에 대응하고 드레인-소스 전압의 크기는 가장 크다.
V2는 낮은 입력 전압(VIN,L)과 낮은 문턱 전압(VTH, L) 또는 높은 입력 전압(VIN,H)과 높은 문턱 전압(VTH, H)에 대응하는 값으로서 이는 플래시 셀의 턴온 저항이 중간인 경우에 대응하고 드레인-소스 전압의 크기는 중간이다.
V3는 높은 입력 전압(VIN, H)과 낮은 문턱 전압(VTH, L)에 대응하는 값으로서 이는 플래시 셀의 턴온 저항이 가장 작은 경우에 대응하고 드레인-소스 전압의 크기는 가장 작다.
각 플래시 셀에서 드레인-소스 전압이 중간인 경우(VDS = V2)와 최소인 경우(VDS = V3)는 모두 곱 신호가 0인 경우에 대응하므로 본 실시예에서는 드레인-소스 전압 V3가 드레인-소스 전압 V2로 변환되도록 캘리브레이션 동작을 수행하게 된다. 캘리브레이션 동작에 대해서는 이하에서 다시 구체적으로 설명한다.
본 실시예에서 낸드 스트링(110)은 직렬 연결된 다수의 플래시 셀을 포함하는데 이 경우 각 플래시 셀의 드레인-소스 전압은 입력 전압의 크기에 비해 매우 작게 설정되는 것이 바람직하다.
이를 통해 낸드 스트링의 하위에 위치한 플래시 셀의 드레인-소스 전압이 상위에 위치한 플래시 셀의 입력 전압과 문턱 전압의 차이에 실질적인 영향을 미치지 않을 수 있다.
연산 동작 모드에서 낸드 스트링에는 정전류가 제공되는데 이 전류의 크기를 I, 플래시 셀의 최대 저항을 R1라고 하면 다음과 같은 조건을 만족하는 것이 바람직하다.
예를 들어 모든 플래시 셀의 드레인-소스 전압이 V1이 되는 경우 비트라인 전압은 최대값이 되는데 이 최대값이 낮은 입력 전압과 높은 문턱 전압 사이의 차이보다 매우 작도록 설정하는 것이 바람직하다. 일 실시예에서 비트라인 전압의 최대값이 100mV 미만이 되도록 설정할 수 있다.
본 실시예에서 비트라인 선택 스위치(N1)는 비트라인 선택 신호(BSL)에 의해 온오프가 제어되고 소스라인 선택 스위치(N2)는 소스라인 선택 신호(CSL)에 의해 온오프가 제어된다.
본 실시예에서 비트라인 선택 신호(BSL)와 소스라인 선택 신호(CSL)는 입력 회로(200)에 의해 제공될 수 있으나 비트라인 선택 신호(BSL) 및 소스라인 선택 신호(CSL)를 제공하는 구성은 다양하게 변경될 수 있다.
입력 회로(200)는 모드 신호(MODE)에 따라 입력 신호(X1, X2, ..., Xn, Xc)를 플래시 셀 어레이(100)에 제공한다.
도 4는 본 발명의 일 실시예에 의한 입력 회로(200)의 블록도이다.
본 실시예에서 입력 회로(200)는 연산 동작 모드에서 사용되는 제 1 입력 회로(210)와 플래시 동작 모드에서 사용되는 제 2 입력 회로(220)를 포함한다.
제 2 입력 회로(220)는 입력 신호(X1, X2, ..., Xn, Xc)에 따라 워드라인 신호(PX1, PX2, ..., PXn, PXc)로서 플래시 셀 어레이에 읽기 전압 또는 패스 전압을 제공한다.
입력 신호(Xc)는 n+1번째 입력 신호로서 Xn+1로 표기될 수 있으며 워드라인 신호(PXc)는 n+1번째 입력 신호에 대응하는 신호로서 PXn+1로 표기될 수 있다.
연산 동작 모드를 수행하는 과정에서 플래시 셀에 데이터를 프로그램하는 동작 및 소거 동작을 제어할 수 있다.
이러한 동작은 통상의 플래시 동작에 해당하므로 제 2 입력 회로(220)를 사용하여 수행될 수 있다.
즉 제 2 입력 회로(220)는 연산 동작 모드를 진행하는 도중에 필요한 플래시 동작을 위해서도 사용될 수 있다.
플래시 동작 모드에서 입력 신호에 따라 워드라인 신호를 제공하는 기술은 종래에 잘 알려진 기술이므로 구체적인 설명을 생략한다.
제 1 입력 회로(210)는 연산 동작 모드에서 입력 신호(X1, X2, ..., Xn)는 펄스 입력 신호(PX1, PX2, ..., PXn)로 변환되어 제공된다.
연산 동작 모드에서 입력 신호(Xc)는 캘리브레이션을 위하여 사용되는 것으로서 캘리브레이션 신호(Xc)로 지칭될 수 있다.
연산 동작 모드에서 입력 신호(X1, X2, ..., Xn)는 각각 멀티비트 신호로 제공될 수 있다.
본 실시예에서 펄스 입력 신호(PX1, PX2, ..., PXn, PXc)는 대응하는 입력 신호(X1, X2, ..., Xn, Xc)의 값에 대응하는 폭을 갖는 펄스 신호이다.
연산 동작 모드에서 펄스 입력 신호(PXc)는 캘리브레이션을 위하여 사용되는 것으로서 펄스 캘리브레이션 신호(PXc)로 지칭될 수 있다.
본 실시예에서 입력 신호(X1, X2, ..., Xn)는 외부에서 입력되는 신호이고 입력 신호(Xc)는 캘리브레이션 회로(500)에서 제공되는 신호이다.
캘리브레이션 회로(500)는 입력 신호(X1, X2, ..., Xn)와 낸드 스트링에 포 함된 플래시 셀 들의 가중치 정보를 사용하여 캘리브레이션 동작을 수행할 수 있다. 캘리브레이션 회로(500)의 동작에 대해서는 이하에서 구체적으로 개시한다.
도 5는 본 발명의 일 실시예에 의한 제 1 입력 회로(210)를 나타내는 블록도이다.
제 1 입력 회로(210)는 변환 회로(211)와 입력 신호(X1, X2, ..., Xn)를 지연하여 변환 회로(211)에 제공하는 지연 소자(212)를 포함한다.
지연 소자(212)는 캘리브레이션 신호(Xc)가 결정되기까지 입력 신호(X1, X2, ..., Xn)가 변환 회로(211)에 입력되는 것을 지연시킨다.
전술한 바와 같이 본 실시예에서 펄스 입력 신호(PX1, PX2, ..., PXn, PXc)는 입력 신호(X1, X2, ..., Xn, Xc)의 값에 대응하는 폭을 갖는 펄스 신호이다.
도 8은 연산 동작 모드에서 본 발명의 일 실시예에 의한 변환 회로(211)의 동작을 나타내는 타이밍도이다.
도 8에서 X1 = "1111", X2 = "1000", X3 = "0100", X4 = "0010"이다.
변환 회로(211)에 입력되는 클록 신호(CLK)의 주기를 T라고 했을 때, PX1는 15T의 폭을 갖는 로우 레벨의 펄스이고, PX2는 8T의 폭을 갖는 로우 레벨의 펄스이고, PX3은 4T의 폭을 갖는 로우 레벨의 펄스이고, PX4는 2T의 폭을 갖는 로우 레벨의 펄스이다.
출력 회로(300)는 플래시 셀 어레이(300)의 비트라인(BL)과 연결되어 메모리 동작 모드에서 데이터 신호(VOUT)를 출력하고 연산 동작 모드에서 연산 신호(VMAC)를 출력한다.
도 6은 본 발명의 일 실시예에 의한 출력 회로(300)를 나타내는 블록도이다.
출력 회로(300)는 제 1 스위치(301), 제 2 스위치(302), 연산 출력 회로(310), 데이터 출력 회로(320)를 포함한다.
본 실시예에서 제 1 스위치(301)는 모드 신호(MODE)가 하이 레벨인 경우 턴온되고 제 2 스위치(302)는 모드 신호(MODE)가 로우 레벨인 경우 턴온된다.
연산 출력 회로(310)는 비트라인(BL)에서 출력된 신호인 비트라인 전압(VBL)을 이용하여 연산 신호(VMAC)를 출력한다.
데이터 출력 회로(320)는 비트라인 전압(VBL)로부터 데이터 신호(VOUT)를 출력한다.
데이터 출력 회로(320)의 구성 및 동작은 종래의 플래시 메모리 장치에서와 실질적으로 동일하므로 구체적인 설명을 생략한다.
도 7은 본 발명의 일 실시예에 의한 연산 출력 회로(310)를 나타내는 회로도이다.
연산 출력 회로(310)는 비트라인(BL)을 통해 낸드 스트링(110)에 정전류(I)를 제공하는 제 1 전류원(311), 비트라인 전압(VBL)에 의해 제어되는 제 2 전류원(312)을 포함한다.
연산 출력 회로(310)는 제 2 전류원(312)에서 제공되는 연산 전류(IMAC)에 따라 전하를 충전하여 연산 신호(VMAC)를 출력하는 커패시터(313)와 리셋 신호(RESET)에 따라 커패시터(313)를 방전시키는 리셋 스위치(314)를 더 포함한다.
연산 출력 회로(310)는 샘플링 클록 신호(SCLK)에 따라 제 2 전류원(312)과 커패시터(313)를 연결하는 샘플링 스위치(315)를 더 포함할 수 있다.
본 실시예에서 샘플링 클록 신호(SCLK)는 입력 회로(200)에 입력되는 클록 신호(CLK)와 주파수는 동일하다.
샘플링 클록 신호(SCLK)는 클록 신호(CLK)과 일정한 정도 위상차를 가질 수 있다.
제 2 전류원(312)은 비트라인 전압(VBL)과 피드백 전압(VF)을 연산 증폭하는 연산 증폭기(3121), 연산 증폭기(3121)의 출력 전압이 게이트에 인가되고 소스에서 연산 전류(IMAC)를 출력하는 PMOS 트랜지스터(3122), PMOS 트랜지스터(3122)의 소스와 전원 전압(VDD) 사이에 연결되는 저항(3123)을 포함한다.
비트라인 전압(VBL)은 연산 증폭기(3121)의 양의 입력단자로 입력되고, 피드백 전압(VF)은 PMOS 트랜지스터(3122)의 소스 전압으로서 연산 증폭기(3121)의 음의 입력단자로 네거티브 피드백된다.
연산 출력 회로(310)는 연산 전압(VMAC)을 디지털 신호로 변환하기 위한 아날로그 디지털 변환기를 더 포함할 수 있다.
연산 출력 회로(310)는 연산 전압(VMAC)의 레벨을 조절하기 위한 회로를 더 포함할 수 있다.
도 9는 본 발명의 일 실시예에 의한 플래시 메모리 장치의 연산 동작을 나타내는 타이밍도이다.
연산 동작은 1 사이클 (T0 ~ Tr) 단위로 진행된다.
샘플링 클록(SCLK)의 주기를 T, 입력 신호의 비트 수를 m이라고 하면 1 사이클은 적어도 (2m-1)T의 주기를 가져야 한다. 본 실시예에서 1 사이클은 (2m-1)T의 주기를 갖는 것으로 가정한다.
도 9에서 펄스 입력 신호(PX1)는 T0 - T1 사이에서 로우 레벨을 가지는 펄스 신호이고, 펄스 입력 신호(PX2)는 T0 - T2 사이에서 로우 레벨을 가지는 펄스 신호이고, 펄스 입력 신호(PX3)는 T0 - T3 사이에서 로우 레벨을 가지는 펄스 신호이다. 또한 펄스 캘리브레이션 신호(PXc)는 T0 에서 시작하여 캘리브레이션 값 C에 대응하는 시간 동안 로우 레벨을 가지는 신호이다.
도 3을 참조하여 개시한 바와 같이 펄스 입력 신호 즉 입력 전압의 레벨과 플래시 셀의 가중치에 따라 플레시 셀의 드레인-소스 전압은 V1 또는 V2 또는 V3로 결정되고 비트라인 전압(VBL)은 플래시 셀들의 드레인-소스 전압의 합으로 결정된다.
본 실시예에서 샘플 클록 신호(SCLK)는 변환 회로(211)에서 사용하는 클록 신호(CLK)와 주파수는 동일하고 위상이 상이한 신호이다.
도 9에서 펄스의 기본 간격은 클록 신호(CLK) 및 샘플 클록 신호(SCLK) 한 주기에 대응한다.
샘플 클록 신호(SCLK)는 각 구간(예를 들어 T0 - T1, T1 - T2, T2 - T3)에 하이 레벨 구간이 위치하며 하이 레벨 구간이 펄스 입력 신호의 천이 구간과 겹치지 않도록 클록 신호(CLK)를 지연시킨다.
도 7과 같이 샘플 스위치(315)가 사용되는 실시예의 경우 샘플 클록 신호(SCLK)가 하이 레벨인 구간에서만 제 2 전류원(312)에서 제공되는 연산 전류(IMAC)를 이용하여 커패시터(313)를 충전할 수 있다.
이에 따라 도 9에서 연산 전압(VMAC)은 샘플 클록 신호(SCLK)가 하이 레벨인 구간에서 상승하고 샘플 클록 신호(SCLK)가 로우 레벨인 구간에서 일정한 레벨을 유지하는 형태가 된다.
샘플 클록 신호(SCLK)가 하이 레벨인 구간을 샘플 구간으로 지칭할 수 있다.
도 9에서 샘플 구간마다 로우 레벨인 펄스 입력 신호의 개수나 플래시 셀의 가중치에 따라 비트라인 전압(VBL)은 다른 값을 가진다. 즉, 펄스 입력 신호의 형태나 각 플래시 셀의 가중치에 따라 연산 전압(VMAC)이 변동하는 모양은 달라질 수 있다.
Tr에서 샘플 클록 신호(SCLK)에 동기하여 리셋 신호가 활성화되고 이에 따라 커패시터(313)가 방전되어 연산 전압(VMAC)이 초기화된다.
이하에서는 캘리브레이션 회로(500)의 동작을 설명한다.
전술한 바와 같이 각 플래시 셀에서 드레인-소스 전압이 중간인 경우(VDS = V2)와 최소인 경우(VDS = V3)는 모두 곱 신호(IWP)가 0인 경우에 대응한다.
이에 따라 곱 신호(IWP) 0에 대응하는 드레인-소스 전압을 한 가지 전압으로 변환하기 위한 캘리브레이션 동작이 수행될 필요가 있다.
본 실시예에서는 드레인-소스 전압이 최소인 경우(VDS = V3)가 드레인-소스 전압이 최소인 경우(VDS = V2)로 변환되도록 캘리브레이션 동작을 수행한다.
또한 캘리브레이션 셀(Fc)의 문턱 전압은 높은 문턱 전압(VTH, H)으로 설정된다.
캘리브레이션 후 펄스 캘리브레이션 신호(PXc)는 C 사이클 동안 낮은 입력 전압 VIN,L을 가지고 연산 동작의 나머지 사이클 동안 높은 입력 전압 VIN,H를 가지도록 동작한다. 이때 C는 캘리브레이션 동작에 의해서 얻은 캘리브레이션 값이다.
캘리브레이션 동작을 위해 우선 입력 신호(X1, X2, ..., Xn)로부터 도출되는 펄스 입력 신호(PX1, PX2, ..., PXn)에서 표 1과 같이 입력 전압과 문턱 전압의 각 조합에 대응하는 구간의 개수를 결정한다. 일 실시예에서 플래시 셀의 드레인-소스 전압이 V3와 동일하게 되는 경우의 수를 결정하고 이를 이용하여 캘리브레이션 값을 결정할 수 있다.
표 1에서는 높은 문턱 전압(VTH,H / 가중치 = 1)의 플래시 셀에 대해서 펄스 입력 전압이 로우 레벨이 되는 구간의 개수는 N1, 낮은 문턱 전압(VTH,L / 가중치 = 0)의 플래시 셀에 대해서 펄스 입력 전압이 로우 레벨이 되는 구간의 개수는 N2, 높은 문턱 전압(VTH,H / 가중치 = 1)의 플래시 셀에 대해서 펄스 입력 전압이 하이 레벨이 되는 구간의 개수는 N3, 낮은 문턱 전압(VTH,H / 가중치 = 0)의 플래시 셀에 대해서 펄스 입력 전압이 하이 레벨이 되는 구간의 개수는 N4로 결정된 것을 나타낸다. N4는 IWP=0인 경우 중에서 드레인-소스 전압이 V3인 경우를 나타내며 이 경우 캘리브레이션이 수행되지 않으면 N4x(V2-V3)에 대응하는 에러가 존재하게 된다.
다음으로 캘리브레이션 신호(Xc)로부터 도출되는 펄스 캘리브레이션 신호(PXc)에서 표 1과 같이 입력 전압과 문턱 전압의 각 경우에 대응하는 구간의 개수를 결정한다.
특히 N4는 전술한 바와 같이 드레인-소스 전압이 V3가 되는 전체 경우의 수에 대응한다. 드레인-소스 전압이 V3가 되는 경우는 전술한 바와 같이 낮은 문턱 전압(VTH,H / 가중치 = 0)의 플래시 셀에 대해서 펄스 입력 전압이 하이 레벨인 경우이므로 다음 수학식 1이 성립한다. 아래 수학식 1에서 플래시 셀의 개수는 n, Wi는 i 번째 플래시 셀의 가중치, xi는 i번째 플래시 셀에 인가되는 입력 신호의 값, p는 펄스 입력 신호의 총 비트 수를 나타낸다.
일 실시예서 플래시 셀 들의 가중치 값들은 캘리브레이션 회로(500)의 레지스터에 저장될 수 있다. 예를 들어 가중치를 플래시 셀에 프로그램하는 경우 가중치를 캘리브레이션 회로(500)의 레지스터에 함께 저장할 수 있다.
캘리브레이션 셀(Fc)의 문턱 전압은 높은 문턱 전압(VTH, H)으로 고정된다. 따라서 펄스 캘리브레이션 신호 PXc가 로우 레벨인 경우(로직 1에 대응하는 경우) 드레인-소스 전압은 V1이 되고 펄스 캘리브레이션 신호 PXc가 하이 레벨인 경우(로직 0에 대응하는 경우) 드레인-소스 전압은 V2가 된다.
이에 따라 캘리브레이션 신호(Xc)의 값을 C라고 하고 m을 캘리브레이션 신호(Xc)의 비트 수라고 하면, 캘리브레이션 신호(Xc)에 대응하는 펄스 캘리브레이션 신호(PXc)에서 로우 레벨인 구간의 개수는 C, 하이 레벨인 구간의 개수는 2m - 1 - C개가 된다.
VIN | VTH | VDS | 펄스 입력 신호로부터 도출되는 구간 개수 | 캘리브레이션 신호로부터 도출되는 구간 개수 |
VIN, L(1) | VTH, H(1) | V1 | N1 | C |
VIN, L(1) | VTH, L(0) | V2 | N2 | 0 |
VIN, H(0) | VTH, H(1) | V2 | N3 | 2m-1 - C |
VIN, H(0) | VTH, L(0) | V3 | N4 | 0 |
캘리브레이션이 없는 상태에서 한 사이클 동안 생성된 비트라인 전압의 총합(VBL)은 다음 수학식 3과 같이 표시될 수 있으며 이 값은 MAC 연산 결과에 대응한다.
수학식 3 및 이하의 수식에서 비트라인 선택 스위치(N1)와 소스라인 선택 스위치(N2)의 드레인-소스 전압은 무시하였다.
캘리브레이션 기능이 추가된 경우 즉 낸드 스트링의 플래시 셀(Fm)의 동작을 고려하는 경우 수학식 3의 비트라인 전압은 수학식 4로 변경될 수 있다.
이상에서 살펴본 바와 같이 캘리브레이션 동작을 수행하는 경우 캘리브레이션 셀 Fc는 드레인-소스 전압이 V2인 경우와 V3인 경우의 차이를 보상하는 동시에 연산 결과에 영향을 주지 않아야 한다.
이에 따라 캘리브레이션 결과 바람직한 비트라인 전압은 수학식 5와 같이 해석될 수 있어야 한다.
캘리브레이션 결과를 나타내는 수학식 4, 5의 값은 서로 동일해야 하며 이로부터 캘리브레이션 신호(Xc)의 크기(C)는 다음 수학식 6과 같이 결정될 수 있다.
본 발명의 권리범위는 이상의 개시로 한정되는 것은 아니다. 본 발명의 권리범위는 청구범위에 문언적으로 기재된 범위와 그 균등범위를 기준으로 해석되어야 한다.
1: 비휘발성 메모리 장치, 플래시 메모리 장치
100: 플래시 셀 어레이
110: 낸드 스트링
200: 입력 회로
210: 제 1 입력 회로
211: 변환 회로
212: 지연회로
300: 출력 회로
310: 연산 출력 회로
311: 제 1 전류원
312: 제 2 전류원
320: 데이터 출력 회로
400: 명령 디코더
500: 캘리브레이션 회로
100: 플래시 셀 어레이
110: 낸드 스트링
200: 입력 회로
210: 제 1 입력 회로
211: 변환 회로
212: 지연회로
300: 출력 회로
310: 연산 출력 회로
311: 제 1 전류원
312: 제 2 전류원
320: 데이터 출력 회로
400: 명령 디코더
500: 캘리브레이션 회로
Claims (15)
- 다수의 가중치를 저장하고 다수의 입력 신호에 따라 제어되는 다수의 비휘발성 메모리 소자 및 상기 다수의 비휘발성 메모리 소자에 연결되는 비트라인을 포함하는 메모리 셀 어레이; 및
상기 비트라인의 신호로부터 상기 다수의 입력 신호에 대응하는 입력 벡터와 상기 다수의 가중치에 대응하는 가중치 벡터의 내적에 대응하는 연산 신호를 출력하는 연산 출력 회로
를 포함하는 비휘발성 메모리 장치. - 청구항 1에 있어서, 상기 메모리 셀 어레이는 상기 다수의 비휘발성 메모리 소자가 직렬 연결된 셀 스트링을 포함하는 비휘발성 메모리 장치.
- 청구항 2에 있어서, 상기 다수의 비휘발성 메모리 소자는 각각 상기 다수의 가중치 중 대응하는 가중치를 저장하고, 상기 다수의 입력 신호 중 대응하는 입력 신호에 따라 제어되는 게이트와 인접한 비휘발성 메모리 소자와 연결되는 소스와 드레인을 포함하는 비휘발성 메모리 장치.
- 청구항 2에 있어서, 상기 메모리 셀 어레이는 비트라인 선택 신호에 따라 상기 셀 스트링과 상기 비트라인을 연결하는 비트라인 선택 스위치 및 소스라인 선택 신호에 따라 상기 셀 스트링을 소스 라인에 연결하는 소스라인 선택 스위치를 더 포함하는 비휘발성 메모리 장치.
- 청구항 1에 있어서, 상기 다수의 입력 신호를 다수의 펄스 입력 신호로 변환하여 상기 다수의 비휘발성 메모리 소자에 제공하는 입력 회로를 더 포함하고,
상기 다수의 펄스 입력 신호는 각각 대응하는 입력 신호의 값에 대응하는 펄스 폭을 가지는 펄스 신호인 비휘발성 메모리 장치. - 청구항 1에 있어서, 상기 연산 출력 회로는 상기 비트라인에 정전류를 제공하는 제 1 전류원을 포함하고, 상기 비트라인의 신호는 상기 정전류에 의해 유도되는 전압 신호인 비휘발성 메모리 장치.
- 청구항 6에 있어서, 상기 연산 출력 회로는 상기 비트라인의 전압에 따라 연산 전류를 생성하는 제 2 전류원을 더 포함하는 비휘발성 메모리 장치.
- 청구항 7에 있어서, 상기 연산 출력 회로는 상기 연산 전류에 따라 전하를 충전하는 커패시터를 더 포함하는 비휘발성 메모리 장치.
- 청구항 8에 있어서, 연산 출력 회로는 샘플링 클록에 따라 상기 연산 전류를 상기 커패시터에 인가하는 샘플링 스위치를 더 포함하는 비휘발성 메모리 장치.
- 청구항 9에 있어서, 상기 연산 출력 회로는 리셋 신호에 따라 상기 커패시터를 방전시키는 리셋 스위치를 더 포함하는 비휘발성 메모리 장치.
- 청구항 7에 있어서, 상기 제 2 전류원은
상기 비트라인 전압과 피드백 전압의 차이를 증폭하는 연산 증폭기;
상기 연산 증폭기의 출력 전압이 게이트에 인가되고 소스 또는 드레인 중 어느 하나로부터 상기 연산 전류가 출력되는 트랜지스터; 및
상기 트랜지스터의 소스 또는 드레인 중 나머지 하나와 전원 전압 사이에 연결되는 저항
을 포함하되, 상기 피드백 전압은 상기 소스 또는 드레인 중 나머지 하나의 저압인 비휘발성 메모리 장치. - 청구항 1에 있어서, 상기 다수의 입력 신호와 상기 다수의 가중치로부터 캘리브레이션 신호를 생성하는 캘리브레이션 회로를 더 포함하는 비휘발성 메모리 장치.
- 청구항 12에 있어서, 상기 메모리 셀 어레이는 미리 결정된 가중치를 가지고 상기 캘리브레이션 신호에 따라 제어되며 상기 다수의 비휘발성 메모리 소자에 연결되는 캘리브레이션용 비휘발성 메모리 소자를 더 포함하되, 상기 비트라인의 전압은 상기 캘리브레이션용 비휘발성 메모리 소자에 인가되는 상기 캘리브레이션 신호와 상기 미리 결정된 가중치에 따라 조절되는 비휘발성 메모리 장치.
- 청구항 13에 있어서, 상기 다수의 입력 신호 및 상기 캘리브레이션 신호를 다수의 펄스 입력 신호 및 펄스 캘리브레이션 신호로 변환하여 상기 다수의 비휘발성 메모리 소자와 상기 캘리브레이션용 비휘발성 메모리 소자에 제공하는 입력 회로를 더 포함하고,
상기 다수의 펄스 입력 신호 및 상기 펄스 캘리브레이션 신호는 각각 대응하는 입력 신호의 값 또는 펄스 캘리브레이션 신호의 값에 대응하는 펄스 폭을 가지는 펄스 신호인 비휘발성 메모리 장치. - 청구항 1에 있어서, 상기 비휘발성 메모리 장치는 낸드 플래시 메모리 장치인 비휘발성 메모리 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/854,759 US11397561B2 (en) | 2019-09-05 | 2020-04-21 | Nonvolatile memory device performing a multiplicaiton and accumulation operation |
CN202010327413.6A CN112447228A (zh) | 2019-09-05 | 2020-04-23 | 执行乘法累加运算的非易失性存储器件 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20190109898 | 2019-09-05 | ||
KR1020190109898 | 2019-09-05 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210029071A true KR20210029071A (ko) | 2021-03-15 |
Family
ID=75134685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200044466A KR20210029071A (ko) | 2019-09-05 | 2020-04-13 | Mac 연산 동작을 수행하는 비휘발성 메모리 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20210029071A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220143423A (ko) * | 2021-04-16 | 2022-10-25 | 한국과학기술원 | 기계 학습용 아날로그 내적 연산기, 이를 이용한 기계 학습 프로세서 및 학습 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100034614A (ko) | 2008-09-24 | 2010-04-01 | 주식회사 하이닉스반도체 | 낸드 플래시 메모리소자의 프로그램 방법 |
US9430735B1 (en) | 2012-02-23 | 2016-08-30 | Micron Technology, Inc. | Neural network in a memory device |
KR20190029406A (ko) | 2017-09-11 | 2019-03-20 | 삼성전자주식회사 | 아날로그 복소 벡터 매트릭스 곱셈을 수행하는 방법 및 시스템 |
-
2020
- 2020-04-13 KR KR1020200044466A patent/KR20210029071A/ko active Search and Examination
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100034614A (ko) | 2008-09-24 | 2010-04-01 | 주식회사 하이닉스반도체 | 낸드 플래시 메모리소자의 프로그램 방법 |
US9430735B1 (en) | 2012-02-23 | 2016-08-30 | Micron Technology, Inc. | Neural network in a memory device |
KR20190029406A (ko) | 2017-09-11 | 2019-03-20 | 삼성전자주식회사 | 아날로그 복소 벡터 매트릭스 곱셈을 수행하는 방법 및 시스템 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220143423A (ko) * | 2021-04-16 | 2022-10-25 | 한국과학기술원 | 기계 학습용 아날로그 내적 연산기, 이를 이용한 기계 학습 프로세서 및 학습 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11074982B2 (en) | Memory configured to perform logic operations on values representative of sensed characteristics of data lines and a threshold data value | |
US9070475B2 (en) | Reading soft bits simultaneously | |
US7142464B2 (en) | Apparatus and methods for multi-level sensing in a memory array | |
US10037797B2 (en) | Programming memories with stepped programming pulses including inhibiting a memory cell for a portion of a programming pulse and enabling that memory cell for another portion of that programming pulse | |
US7974134B2 (en) | Voltage generator to compensate sense amplifier trip point over temperature in non-volatile memory | |
KR101414839B1 (ko) | 메모리 디바이스에서의 센싱 동작 | |
US7417904B2 (en) | Adaptive gate voltage regulation | |
CN112447229A (zh) | 执行乘法累加运算的非易失性存储器件 | |
CN111462797A (zh) | 近内存计算系统及非挥发性内存单元 | |
KR20060031024A (ko) | 난드 플래시 메모리의 로우 디코더 회로 및 이를 이용한동작 전압 공급 방법 | |
US10176871B2 (en) | NAND flash memory comprising a current sensing page buffer preventing voltage from discharging from a node during operation | |
CN111370044A (zh) | 半导体装置 | |
KR20210029071A (ko) | Mac 연산 동작을 수행하는 비휘발성 메모리 장치 | |
US20090323420A1 (en) | Minimizing power noise during sensing in memory device | |
US11455371B2 (en) | Computation circuit for performing vector-matrix multiplication and semiconductor device including the computation circuit | |
US11397561B2 (en) | Nonvolatile memory device performing a multiplicaiton and accumulation operation | |
KR102594411B1 (ko) | 전하 펌프, 및 이를 포함하는 고전압 발생기 및 플래쉬 메모리 장치 | |
KR20210029070A (ko) | Mac 연산 동작을 수행하는 비휘발성 메모리 장치 | |
US20240013835A1 (en) | Semiconductor memory device performing a multiplication and accumulation operation | |
EP1473732A1 (en) | Apparatus and method of multi-level sensing in a memory array | |
US8138741B2 (en) | High voltage generator in semiconductor memory | |
KR20240007048A (ko) | Mac 연산을 수행하는 반도체 메모리 장치 | |
KR20240014147A (ko) | Mac 연산 동작을 수행하는 반도체 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |