KR20230114500A - 플래시 메모리 제어 방법 및 장치 - Google Patents

플래시 메모리 제어 방법 및 장치 Download PDF

Info

Publication number
KR20230114500A
KR20230114500A KR1020220010736A KR20220010736A KR20230114500A KR 20230114500 A KR20230114500 A KR 20230114500A KR 1020220010736 A KR1020220010736 A KR 1020220010736A KR 20220010736 A KR20220010736 A KR 20220010736A KR 20230114500 A KR20230114500 A KR 20230114500A
Authority
KR
South Korea
Prior art keywords
programming
target
coarse
coarse programming
memory cell
Prior art date
Application number
KR1020220010736A
Other languages
English (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 KR1020220010736A priority Critical patent/KR20230114500A/ko
Priority to US17/863,556 priority patent/US20230298675A1/en
Priority to CN202210832285.XA priority patent/CN116543816A/zh
Priority to EP22207759.6A priority patent/EP4216221A1/en
Priority to JP2023002873A priority patent/JP2023108602A/ja
Publication of KR20230114500A publication Critical patent/KR20230114500A/ko

Links

Images

Classifications

    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • 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
    • 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/544Methods 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 for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • 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/26Sensing or reading circuits; Data output 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/30Power supply 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3468Prevention of overerasure or overprogramming, e.g. by verifying whilst erasing or writing
    • G11C16/3481Circuits or methods to verify correct programming of nonvolatile memory cells whilst programming is in progress, e.g. by detecting onset or cessation of current flow in cells and using the detector output to terminate programming
    • 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/32Timing circuits
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Neurology (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Read Only Memory (AREA)

Abstract

플래시 메모리 제어 방법 및 장치가 제공된다. 일 실시예에 따르면, 플래시 메모리 장치의 제어 방법은 거친 프로그래밍 시간 및 거친 프로그래밍 전압을 조절하면서 플래시 메모리 장치의 타겟 메모리 셀에 대한 거친 프로그래밍을 수행하고, 거친 프로그래밍에 따라 타겟 메모리 셀의 셀 전류가 1차 목표를 만족하면 미세 프로그래밍 시간을 조절하면서 타겟 메모리 셀에 대한 미세 프로그래밍을 수행하고, 미세 프로그래밍에 따라 타겟 메모리 셀의 셀 전류가 2차 목표를 만족하면 타겟 메모리 셀에 대한 프로그래밍을 종료하는 단계들을 포함할 수 있다.

Description

플래시 메모리 제어 방법 및 장치{METHOD AND APPARATUS FOR CONTROLLING FLASH MEMORY}
아래 실시예들은 플래시 메모리 제어 방법 및 장치에 관한 것이다.
플래시 메모리는 비휘발성 메모리에 해당하며 전원이 차단되더라도 저장된 데이터를 보존할 수 있다. 플래시 메모리는 각 메모리 셀의 전하 트랩 층(charge trapping layer)에 저장되는 전자의 양을 조절하여 데이터를 저장할 수 있다. 메모리 셀은 저장 가능한 데이터의 크기에 따라 SLC(single level cell), MLC(multi level cell), TLC(triple level cell) 등으로 구분될 수 있다. 한편, MAC(multiply-accumulate) 연산이라고도 알려져 있는 벡터 매트릭스 곱셈 연산은 다양한 분야에서 어플리케이션의 성능을 좌우할 수 있다. 예를 들어, 다중 레이어를 포함하는 뉴럴 네트워크(neural network)의 머신 러닝(machine learning) 및 인증 동작에 있어서, MAC 연산이 수행될 수 있다. MAC 연산은 다수의 레이어에 대해 반복되기 때문에, 뉴럴 네트워크 처리 성능은 MAC 연산 처리에 의존적일 수 있다. 메모리의 구조적 특성은 MAC 연산을 수행하는데 이용될 수 있으며, 메모리가 이용될 경우 MAC 연산의 처리 속도가 획기적으로 향상될 수 있다.
일 실시예에 따르면, 플래시 메모리 장치의 제어 방법은 거친 프로그래밍 시간 및 거친 프로그래밍 전압을 조절하면서 상기 플래시 메모리 장치의 타겟 메모리 셀에 대한 거친 프로그래밍을 수행하는 단계; 상기 거친 프로그래밍에 따라 상기 타겟 메모리 셀의 셀 전류가 1차 목표를 만족하면, 미세 프로그래밍 시간을 조절하면서 상기 타겟 메모리 셀에 대한 미세 프로그래밍을 수행하는 단계; 및 상기 미세 프로그래밍에 따라 상기 타겟 메모리 셀의 상기 셀 전류가 2차 목표를 만족하면, 상기 타겟 메모리 셀에 대한 프로그래밍을 종료하는 단계를 포함한다.
일 실시예에 따르면, 플래시 메모리 장치는 복수의 메모리 셀들을 포함하는 셀 어레이; 및 거친 프로그래밍 시간 및 거친 프로그래밍 전압을 조절하면서 상기 셀 어레이의 타겟 메모리 셀에 대한 거친 프로그래밍을 수행하고, 상기 거친 프로그래밍에 따라 상기 타겟 메모리 셀의 셀 전류가 1차 목표를 만족하면, 미세 프로그래밍 시간을 조절하면서 상기 타겟 메모리 셀에 대한 미세 프로그래밍을 수행하고, 상기 미세 프로그래밍에 따라 상기 타겟 메모리 셀의 상기 셀 전류가 2차 목표를 만족하면, 상기 타겟 메모리 셀에 대한 프로그래밍을 종료하는, 컨트롤러를 포함한다.
일 실시예에 따르면, 전자 장치는 복수의 메모리 셀들을 포함하는 플래시 메모리; 및 거친 프로그래밍 시간 및 거친 프로그래밍 전압을 조절하면서 상기 플래시 메모리의 타겟 메모리 셀에 대한 거친 프로그래밍을 수행하고, 상기 거친 프로그래밍에 따라 상기 타겟 메모리 셀의 셀 전류가 1차 목표를 만족하면, 미세 프로그래밍 시간을 조절하면서 상기 타겟 메모리 셀에 대한 미세 프로그래밍을 수행하고, 상기 미세 프로그래밍에 따라 상기 타겟 메모리 셀의 상기 셀 전류가 2차 목표를 만족하면, 상기 타겟 메모리 셀에 대한 프로그래밍을 종료하는, 프로세서를 포함한다.
도 1은 일 실시예에 따른, 멀티 인자를 이용한 단계적 프로그래밍의 결과를 나타낸다.
도 2는 일 실시예에 따른, 프로그래밍 결과의 산포의 특성을 나타낸다.
도 3은 일 실시예에 따른, 셀 전류에 대한 멀티 인자의 영향을 나타낸다.
도 4는 일 실시예에 따른, 단계적 프로그래밍 동작을 나타낸다.
도 5는 일 실시예에 따른, 메모리 셀에 대한 메모리 제어의 영향을 나타낸다.
도 6은 프로그래밍 방식에 따른 산포 특성의 예시들을 나타낸다.
도 7은 일 실시예에 따른, 플래시 메모리 장치를 통해 구현될 수 있는 뉴럴 네트워크 연산의 예시를 나타낸다.
도 8은 일 실시예에 따른, 플래시 메모리 장치의 제어 방법을 나타낸다.
도 9는 일 실시예에 따른, 플래시 메모리 장치의 구성을 나타낸다.
도 10은 일 실시예에 따른, 전자 장치의 구성을 나타낸다.
실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 구현될 수 있다. 따라서, 실제 구현되는 형태는 개시된 특정 실시예로만 한정되는 것이 아니며, 본 명세서의 범위는 실시예들로 설명한 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 일 실시예에 따른, 멀티 인자를 이용한 단계적 프로그래밍의 결과를 나타낸다. 도 1을 참조하면, 프로그래밍 동작들(programming operations)(110, 120)에 따라 플래시 메모리 장치의 메모리 셀들의 전하 트랩 층들(charge trapping layers)에 전자가 트랩될 수 있다. 메모리 셀들의 임계 전압 값들은 트랩된 전자의 양에 따라 다른 산포들(distributions)(101, 102, 103)을 나타낼 수 있다. 여기서, 임계 전압은 게이트 임계 전압에 대응할 수 있다. 제1 산포(101)는 소거 상태(erase state)에 대응할 수 있다. 소거 상태에서 전자는 전하 트랩 층으로부터 빠져나가므로, 작은 임계 전압 값들에 따른 제1 산포(101)가 나타날 수 있다. 프로그래밍 동작들(110, 120)에 따라 임계 전압 값들은 산포들(102, 103)과 같이 높아질 수 있다.
산포들(101, 102, 103)은 특정 데이터 값에 대응할 수 있다. 산포들(101, 102, 103) 중 동일한 어느 산포에 속하는 임계 전압 값들은 동일한 데이터 값을 나타낼 수 있고, 다른 어느 산포들에 속하는 임계 전압 값들은 다른 데이터 값들을 나타낼 수 있다. 메모리 셀에 판독 동작(read operation)을 위한 전압이 인가될 경우, 메모리 셀의 셀 전류 값은 임계 전압 값에 의존적으로 결정될 수 있다. 따라서, 셀 전류 값을 통해 메모리 셀의 데이터 값이 판독될 수 있다. 여기서, 셀 전류는 드레인 전류(drain current)에 대응할 수 있다.
이러한 플래시 메모리의 동작 특성을 포함하는 다양한 메모리의 동작 특성은 옴의 법칙(Ohm's law), 키르히호프의 법칙(Kirchhoff's law)과 같은 물리 법칙과 결합되어 수학적 연산을 수행하는데 이용될 수 있다. 이러한 연산 방식은 인-메모리 컴퓨팅(in-memory computing)으로 부를 수 있다. 플래시 메모리를 이용한 인-메모리 컴퓨팅을 위해서는 임계 전압들이 샤프한 산포 특성을 갖는 것이 요구될 수 있다. 산포 특성이 샤프하다는 것은 임계 전압들이 좁은 범위에 몰려서 분포하는 것을 의미할 수 있다. 예를 들어, 제2 산포(102)에 비해 제3 산포(103)가 샤프한 특성을 가질 수 있다. 반대로 제2 산포(102)는 넓은 산포 특성을 갖는다고 말할 수 있다. 샤프한 산포 특성은 연산 정확도를 높일 수 있다. 예를 들어, 셀 전류를 통해 데이터 값을 판독할 때, 넓은 산포 특성은 특정 데이터 값을 대표하는 셀 전류의 일관성을 낮출 수 있다. 이러한 현상은 연산이 반복됨에 따라 누적되어 연산 정확도를 크게 낮출 수 있다.
실시예들의 프로그래밍 동작들(110, 120)은 제3 산포(103)와 같이 샤프한 산포를 도출할 수 있다. 일 실시예에 따르면, 멀티 인자(multi factor)에 기초하여 프로그래밍 동작들(110, 120)이 단계적(stepwise)으로 수행될 수 있다. 예를 들어, 멀티 인자는 프로그래밍 시간 및 프로그래밍 전압을 포함할 수 있다. 프로그래밍 전압은 소스 라인(source line, SL) 전압에 대응할 수 있다. 프로그래밍 전압은 메모리 셀의 프로그래밍 상태를 상대적으로 큰 폭으로 변화시킬 수 있고, 프로그래밍 시간은 메모리 셀의 프로그래밍 상태를 상대적으로 작은 폭으로 변화시킬 수 있다. 프로그래밍 상태는 메모리 셀의 전하 트랩 층에 트랩된 전자의 양에 대응할 수 있다. 프로그래밍 상태는 임계 전압 및 셀 전류에 영향을 줄 수 있다. 일반적으로 셀 전류는 임계 전압의 제곱에 비례하므로, 임계 전압을 제어할 때 보다 더 세밀하고 정밀한 제어가 요구된다. 셀 전류는 멀티 인자 기반의 단계적인 프로그래밍 동작들(110, 120)을 통해 목표 값에 낮은 오차로 도달할 수 있다.
일 실시예에 따르면, 플래시 메모리 장치는 거친(coarse) 프로그래밍 시간 및 거친 프로그래밍 전압을 조절하면서 타겟 메모리 셀에 대한 거친 프로그래밍(110)을 수행할 수 있다. 거친 프로그래밍 시간 및 거친 프로그래밍 전압은 거친 프로그래밍(110)의 단계에서 사용되는 프로그래밍 시간 및 프로그래밍 전압을 의미할 수 있다. 거친 프로그래밍(110)에 따라 타겟 메모리 셀의 셀 전류가 1차 목표를 만족하면, 플래시 메모리 장치는 미세(fine) 프로그래밍 시간을 조절하면서 타겟 메모리 셀에 대한 미세 프로그래밍(120)을 수행할 수 있다. 미세 프로그래밍 시간은 미세 프로그래밍(120)의 단계에서 사용되는 프로그래밍 시간을 의미할 수 있다. 미세 프로그래밍(120)에 따라 타겟 메모리 셀의 셀 전류가 2차 목표를 만족하면, 플래시 메모리 장치는 타겟 메모리 셀에 대한 프로그래밍을 종료할 수 있다.
본 실시예에서 프로그래밍 전압의 조절은 거친 프로그래밍(110)에서만 사용되지만, 미세 프로그래밍(120)의 프로그래밍 전압이 조절되는 실시예도 존재할 수 있다. 또한, 본 실시예는 두 단계의 프로그래밍 동작들(110, 120)을 포함하지만, 세 단계 이상의 프로그래밍 동작들이 존재할 수 있다. 이 경우, 초기 몇몇 단계의 프로그래밍 동작들은 거친 프로그래밍(110)에 해당할 수 있고, 나머지 단계의 프로그래밍 동작은 미세 프로그래밍(120)에 해당할 수 있다.
도 2는 일 실시예에 따른, 프로그래밍 결과의 산포의 특성을 나타낸다. 도 2를 참조하면, 그래프(210)는 프로그래밍 전의 임계 전압 값들의 산포를 나타낼 수 있고, 그래프들(220, 230)은 프로그래밍 후의 임계 전압 값들의 산포를 나타낼 수 있다. 예를 들어, 그래프(220)는 실시예들의 멀티 인자를 사용하지 않은 기존의 ISPP(incremental step pulse programming)에 따른 결과에 해당할 수 있고, 그래프(230)는 실시예들의 멀티 인자를 사용한 단계적 프로그래밍에 따른 결과에 해당할 수 있다. 그래프(220)에서 산포들(ERS, PV11, PV12, PV13)은 넓은 특성을 가질 수 있고, 그래프(230)에서 산포들(PV21, PV22, PV23, PV24)은 샤프한 특성을 가질 수 있다.
도 3은 일 실시예에 따른, 셀 전류에 대한 멀티 인자의 영향을 나타낸다. 멀티 인자는 프로그래밍 시간 및 프로그래밍 전압을 포함할 수 있다. 도 3의 그래프(300)를 참조하면, 프로그래밍 전압이 고정된 상태에서 프로그래밍 시간을 증가시키면 셀 전류가 일정 레벨까지 낮아질 수 있으나, 해당 레벨 아래로는 더 이상 낮아지지 않는 경향을 나타낼 수 있다. 이때, 셀 전류는 프로그래밍 전압을 증가를 통해 해당 레벨 아래로 더 낮아질 수 있다. 프로그래밍 전압이 증가된 상태에서 프로그래밍 시간을 증가시키면 셀 전류는 해당 레벨 아래로 더 낮아질 수 있다.
예를 들어, 영역(310)은 3.5V의 프로그래밍 전압이 이용되는 예시를 나타낸다. 영역(310)을 참조하면, 3.5V의 프로그래밍 전압을 이용하되 프로그래밍 시간을 증가시켜 셀 전류의 정밀 제어가 가능하지만, 프로그래밍 전압이 3.5V로 고정된 상태에서는 프로그래밍 시간을 아무리 증가시켜도 셀 전류는 3uA 아래로 떨어지지 않을 수 있다. 영역(320)은 4.5V의 프로그래밍 전압이 이용되는 예시를 나타낸다. 영역(320)을 참조하면, 4.5V의 프로그래밍 전압을 이용하면 셀 전류가 거의 0uA까지 떨어질 수 있으나, 매우 짧은 프로그래밍 시간에도 셀 전류가 3uA 이하로 떨어질 수 있다. 따라서, 셀 전류를 정밀하게 제어하려면 멀티 인자를 적절히 조합하는 것이 요구될 수 있다.
도 4는 일 실시예에 따른, 단계적 프로그래밍 동작을 나타낸다. 도 4를 참조하면, 단계(401)에서 플래시 메모리 장치는 셀 전류를 판독할 수 있다. 셀 전류 값(I1)은 거친 프로그래밍 전의 값에 해당할 수 있고, 셀 전류 값(I2)은 거친 프로그래밍 후의 값에 해당할 수 있다. 셀 전류 값(I1)은 초기에 소거 상태의 값에 해당할 수 있다. 단계(402)에서 플래시 메모리 장치는 거친 프로그래밍을 수행할 수 있다. 플래시 메모리 장치는 거친 프로그래밍 시간 및 거친 프로그래밍 전압의 초기 값에 기초하여 거친 프로그래밍을 수행할 수 있다. 플래시 메모리 장치는 단계(401)에서 거친 프로그래밍에 따른 셀 전류 값(I2)을 판독할 수 있다. 플래시 메모리 장치는 셀 전류 값(I1) 및 셀 전류 값(I2)에 기초하여 셀 전류의 변화를 결정할 수 있다. 예를 들어, 셀 전류의 변화는 셀 전류 값(I2)과 셀 전류 값(I1) 간의 차이에 해당할 수 있다.
플래시 메모리 장치는 셀 전류의 변화를 거친 프로그래밍의 목표 범위와 비교할 수 있다. 목표 범위는 상한 값(lcb) 및 하한 값(lcs)으로 특정될 수 있다. 셀 전류의 변화가 하한 값(lcs) 보다 작다면 플래시 메모리 장치는 단계(403)에서 거친 프로그래밍 시간 값을 증가시킬 수 있고, 셀 전류의 변화가 상한 값(lcb) 보다 크다면 플래시 메모리 장치는 단계(404)에서 거친 프로그래밍 시간 값을 감소시킬 수 있다. 셀 전류의 변화가 상한 값(lcs) 보다 작은데 거친 프로그래밍 시간 값이 이미 최대 값(Tm)에 해당하는 경우, 플래시 메모리 장치는 단계(405)에서 거친 프로그래밍 전압 값을 증가시킬 수 있다.
거친 프로그래밍 시간 및 거친 프로그래밍 전압 중 적어도 일부가 조절되면, 단계(402)에서 플래시 메모리 장치는 조절된 값을 통해 거친 프로그래밍을 수행할 수 있다. 단계(401)에서 플래시 메모리 장치는 셀 전류 값(I2)을 판독할 수 있다. 셀 전류가 거친 프로그래밍의 목표를 만족하는 경우, 플래시 메모리 장치는 거친 프로그래밍 단계(step)를 종료하고, 미세 프로그래밍 단계를 진행할 수 있다. 단계들(401 내지 405)은 거친 프로그래밍 단계에, 단계들(406 내지 409)는 미세 프로그래밍 단계에 해당할 수 있다. 일 실시예에 따르면, 플래시 메모리 장치는 셀 전류의 변화가 1차 목표 값(lct)보다 작다면 거친 프로그래밍의 목표가 만족된 것으로 결정할 수 있다. 일 실시예에 따르면, 1차 목표 값(lct)은 목표 범위의 상한 값(lcb)보다 작고 하한 값(lcs)보다 클 수 있다.
플래시 메모리 장치는 셀 전류의 변화를 미세 프로그래밍의 목표 범위와 비교할 수 있다. 거친 프로그래밍의 목표는 1차 목표로, 미세 프로그래밍의 목표는 2차 목표로 부를 수 있다. 2차 목표의 목표 범위는 상한 값(lfb) 및 하한 값(lfs)으로 특정될 수 있다. 1차 목표에 따른 목표 범위는 2차 목표에 따른 목표 범위보다 넓을 수 있다. 2차 목표 범위의 상한 값(lfb)은 1차 목표 범위의 상한 값(lcb)보다 작을 수 있고, 2차 목표 범위의 하한 값(lfs)은 2차 목표 범위의 하한 값(lcs)보다 클 수 있다. 플래시 메모리 장치는 단계들(407, 408)에서 미세 프로그래밍 시간을 조절할 수 있다. 셀 전류의 변화가 하한 값(lfs) 보다 작다면 플래시 메모리 장치는 단계(407)에서 거친 프로그래밍 시간 값을 증가시킬 수 있고, 셀 전류의 변화가 상한 값(lfb) 보다 크다면 플래시 메모리 장치는 단계(408)에서 거친 프로그래밍 시간 값을 감소시킬 수 있다.
단계(409)에서 플래시 메모리 장치는 조절된 값을 통해 미세 프로그래밍을 수행할 수 있다. 단계(406)에서 플래시 메모리 장치는 셀 전류 값(I2)을 판독할 수 있다. 셀 전류 값(I2)에는 거친 프로그래밍 및 미세 프로그래밍이 모두 반영될 수 있다. 셀 전류가 미세 프로그래밍의 목표를 만족하는 경우, 플래시 메모리 장치는 타겟 메모리 셀에 대한 프로그래밍을 종료할 수 있다. 예를 들어, 플래시 메모리 장치는 셀 전류의 변화가 2차 목표 값(lt)과 마진 값(ld)의 합보다 작다면 거친 프로그래밍의 목표가 만족된 것으로 결정할 수 있다. 일 실시예에 따르면, 2차 목표 값은 2차 목표 범위의 상한 값(lfb)보다 작고 하한 값(lfs)보다 클 수 있다. 플래시 메모리 장치는 셀 어레이의 다른 메모리 셀을 타겟 메모리 셀로 지정하고, 해당 타겟 메모리 셀에 관한 프로그래밍을 수행할 수 있다.
도 4의 실시예는 거친 프로그래밍의 단계(405)에서 프로그래밍 전압의 상승이 이루어지는 것을 나타내지만, 프로그래밍 전압은 도 4의 실시예와 달리 거친 프로그래밍 단계에서 프로그래밍 전압의 하강이 이루어지거나, 미세 프로그래밍 단계에서 프로그래밍 전압의 상승/하강이 이루어지는 실시예도 존재할 수 있다.
도 5는 일 실시예에 따른, 메모리 셀에 대한 메모리 제어의 영향을 나타낸다. 도 5a는 메모리 셀(500)에 대한 소거 동작을 나타낸다. 도 5a를 참조하면, 메모리 셀(500)은 차지 게이트(charge gate, CG), 플로팅 게이트(floating gate, FG), 및 소거 게이트(erase gate, EG)를 포함할 수 있다. 플로팅 게이트는 전하 트랩 층에 대응할 수 있다. 메모리 셀(500)은 소스 라인(source line, SL), 비트 라인(bit line, BL), 및 워드 라인(word line)을 통해 제어될 수 있다. 소거 동작을 위해 차지 게이트 및 소거 게이트에 일정 전압이 가해지면, 플로팅 게이트의 전자는 소거 게이트로 빠져나갈 수 있다. 예를 들어, V1은 10.5V일 수 있고, V2는 -8.7V일 수 있다. 도 5a에 도시된 메모리 셀(500)의 구조 및 소거 동작은 하나의 예시에 해당하며, 메모리 셀(500)은 소거 동작을 위한 다양한 구조를 가질 수 있고, 또한 다양한 구조에 맞는 다양한 소거 동작을 수행할 수 있다.
도 5b는 메모리 셀(500)에 대한 프로그래밍 동작을 나타낸다. 도 5b를 참조하면, 프로그래밍 동작을 위해 차지 게이트, 소거 게이트, 소스 라인, 및 워드 라인에 일정 전압이 가해지면, 플로팅 게이트에 전자가 트랩될 수 있다. 예를 들어, V3은 10.5V일 수 있고, V4는 4.3V일 수 있고, V5는 0.7V일 수 있다. 소스 라인 전압은 프로그래밍 전압에 해당할 수 있다. 멀티 인자를 이용한 단계적 프로그래밍을 위해 프로그래밍 전류 및 프로그래밍 전압이 조절될 수 있고, 메모리 셀(500)은 조절된 프로그래밍 전류 및 프로그래밍 전압에 따라 제어될 수 있다. 도 5b에 도시된 메모리 셀(500)의 구조 및 프로그래밍 동작은 하나의 예시에 해당하며, 메모리 셀(500)은 프로그래밍 동작을 위한 다양한 구조를 가질 수 있고, 또한 다양한 구조에 맞는 다양한 프로그래밍 동작을 수행할 수 있다.
도 6은 프로그래밍 방식에 따른 산포 특성의 예시들을 나타낸다. 도 6의 그래프(600)는 메모리 셀들이 데이터 1 및 데이터 2의 2-레벨로 프로그래밍된 예시를 나타낸다. 도 6의 2-레벨 프로그래밍은 설명의 편의를 위한 것이며, 실시예들에 따르면 4-레벨, 5-레벨 등의 더 다양한 레벨의 정교한 프로그래밍이 가능하다. 그래프(600)에서 가로 축은 메모리 셀들의 번호를 나타내고, 세로 축은 셀 전류를 나타낸다. 그래프(600)를 참조하면, 제1 데이터 그룹(610)은 알려진 방식에 따라 프로그래밍된 메모리 셀들에 대응하고, 제2 데이터 그룹(620)은 실시예들의 방식에 따라 프로그래밍된 메모리 셀들에 대응할 수 있다. 제1 데이터 그룹(610)은 넓은 산포 특성을 나타내지만, 제2 데이터 그룹(620)은 멀티 인자를 이용한 단계적 프로그래밍에 따라 샤프한 산포 특성을 나타낼 수 있다. 따라서, 실시예들의 프로그래밍 방식에 따라 인-메모리 컴퓨팅을 위한 신뢰도가 확보될 수 있다.
도 7은 일 실시예에 따른, 플래시 메모리 장치를 통해 구현될 수 있는 뉴럴 네트워크 연산의 예시를 나타낸다. 뉴럴 네트워크 모델(700)는 딥 뉴럴 네트워크(DNN, deep neural network)의 예시에 해당할 수 있다. DNN은 완전 연결 네트워크(fully connected network), 딥 컨볼루셔널 네트워크(deep convolutional network) 및 리커런트 뉴럴 네트워크(recurrent neural network) 등을 포함할 수 있다. 뉴럴 네트워크 모델(700)는 딥 러닝에 기반하여 비선형적 관계에 있는 입력 데이터 및 출력 데이터를 서로 매핑함으로써 객체 분류, 객체 인식, 음성 인식 및 이미지 인식 등을 수행할 수 있다. 딥 러닝은 빅 데이터 세트로부터 이미지 또는 음성 인식과 같은 문제를 해결하기 위한 기계 학습 기법으로 지도식(supervised) 또는 비지도식(unsupervised) 학습을 통해 입력 데이터 및 출력 데이터를 서로 매핑할 수 있다.
도 7에는 설명의 편의를 위해 히든 레이어가 2개의 레이어를 포함하는 것으로 도시되었나, 히든 레이어는 다양한 수의 레이어들을 포함할 수 있다. 또한, 도 7에서 뉴럴 네트워크 모델(700)는 입력 데이터를 수신하기 위한 별도의 입력 레이어(710)를 포함하는 것으로 도시되었으나, 입력 데이터가 히든 레이어에 직접 입력될 수 있다. 뉴럴 네트워크 모델(700)에서 출력 레이어를 제외한 레이어들의 인공 노드들은 출력 신호를 전송하기 위한 링크들을 통해 다음 레이어의 인공 노드들과 연결될 수 있다. 링크들의 수는 다음 레이어에 포함된 인공 노드들의 수에 대응할 수 있다.
히든 레이어에 포함된 각각의 인공 노드에는 이전 레이어에 포함된 인공 노드들의 출력이 가중된 형태로 입력될 수 있다. 가중된 형태의 입력은 가중된 입력(weighted input)이라 불릴 수 있으며, 이는 이전 레이어에 포함된 인공 노드들의 출력에 가중치(weight)가 곱해진 것이다. 가중치는 뉴럴 네트워크 모델(700)의 파라미터로 지칭될 수 있다. 이런 가중된 입력들의 합에 활성 함수(activation function)가 적용되어 다음 레이어로 출력될 수 있다. 활성 함수는 시그모이드(sigmoid), 하이퍼볼릭 탄젠트(hyperbolic tangent; tanh) 및 렐루(rectified linear unit; ReLU)를 포함할 수 있고, 활성 함수에 의해 뉴럴 네트워크 모델(700)에 비선형성이 형성될 수 있다. 출력 레이어에 포함된 각각의 인공 노드에는 이전 레이어에 포함된 인공 노드들의 출력이 가중된 형태로서 가중된 입력들이 입력될 수 있다. 이처럼 뉴럴 네트워크 모델(700)과 관련된 다양한 연산들은 네트워크 연산으로 부를 수 있다.
네트워크 연산을 통해 딥러닝 알고리즘을 구동하는데 실시예들에 따른 플래시 메모리 장치가 이용될 수 있다. 예를 들어, 뉴럴 네트워크 모델(700)의 노드(721) 간에 전달되는 가중된 입력의 산출은 곱셉과 덧셈을 반복하는 MAC 연산으로 구성될 수 있다. 뉴럴 네트워크 모델(700)의 임의의 한 노드(721)의 출력은 아래 수학식과 같이 나타낼 수 있다.
위의 수학식은 임의의 레이어에서 m개의 가중된 입력 값들에 대한 i번째 노드(721)의 출력 값 yi를 나타낼 수 있다. xj는 이전 레이어의 j번째 출력 값(예를 들어, 노드 값)을 나타낼 수 있고, wj,i는 이전 레이어의 j번째 출력 값 및 i번째 노드(721)에 적용되는 가중치를 나타낼 수 있다. wj,ixj는 해당 레이어의 i번째 노드(721)에 있어서 m개의 가중된 입력 값들 중 j번째 가중된 입력을 나타낼 수 있고, f()는 활성화 함수를 나타낼 수 있다. 수학식에 나타난 바와 같이, 활성화 함수에 대해, 노드 값 xj 및 가중치 wj,i의 곱셈 누적 결과가 사용될 수 있다. 다시 말해, 원하는 시점에 적절한 노드 값 xj 및 가중치 wj,i을 로드(load)해야 하는 메모리 접근 동작(memory access operation)과 이들을 곱하고 더하는 MAC 연산이 반복될 수 있다.
일 실시예에 따르면, 플래시 메모리 장치의 메모리 셀들은 뉴럴 네트워크 모델(700)의 네트워크 파라미터(예: 가중치)에 따라 프로그래밍될 수 있다. 거친 프로그래밍 단계(step) 및/또는 미세 프로그래밍 단계의 프로그래밍 목표가 네트워크 파라미터에 따라 설정될 수 있다. 프로그래밍 목표는 임계 전압 및/또는 셀 전류에 기초한 목표 범위를 포함할 수 있다. 따라서, 플래시 메모리 장치는 뉴럴 네트워크 모델(700)의 실행에 요구되는 연산들 중 적어도 일부를 수행할 수 있다.
일 실시예들에 따르면, 실시예들에 따른 멀티 인자 기반의 프로그래밍은 뉴럴 네트워크 모델(700)의 트레이닝 과정에서 이용될 수 있다. 추론 과정에서는 네트워크 파라미터에 기초하여 미리 프로그래밍된 상태의 메모리 셀들을 이용하여 인-메모리 컴퓨팅의 형식으로 네트워크 연산이 수행될 수 있다. 실시예들에 따르면 멀티 인자 및 거친-미세 단계들에 의해 프로그래밍 시간이 기존의 다른 방식에 비해 늘어날 수 있으나, 인-메모리 컴퓨팅을 위한 프로그래밍 정확도가 제공될 수 있다.
실시예들에 따른 플래시 메모리 장치의 적용 범위는 도 7의 예시로 한정하는 것은 아니고, 플래시 메모리 장치는 아날로그 회로 특성을 사용한 복수 입력 데이터를 저전력으로 빠르게 처리해야하는 연산 동작에도 활용될 수 있다.
도 8은 일 실시예에 따른, 플래시 메모리 장치의 제어 방법을 나타낸다. 도 8을 참조하면, 단계(810)에서 플래시 메모리 장치는 거친 프로그래밍 시간 및 거친 프로그래밍 전압을 조절하면서 플래시 메모리 장치의 타겟 메모리 셀에 대한 거친 프로그래밍을 수행한다. 플래시 메모리 장치는 거친 프로그래밍 시간을 최대 값까지 증가시켜도 타겟 메모리 셀의 셀 전류가 1차 목표를 만족하지 않는 경우, 거친 프로그래밍 전압을 증가시키면서 거친 프로그래밍을 수행할 수 있다. 타겟 메모리 셀의 셀 전류는 거친 프로그래밍 시간의 조절에 비해 거친 프로그래밍 전압의 조절에 따라 더 큰 폭으로 변화될 수 있다. 프로그래밍 전압의 조절에 따라 프로그래밍 전류의 변화 범위가 달라질 수 있다.
플래시 메모리 장치는 거친 프로그래밍에 따른 타겟 메모리 셀의 셀 전류의 변화를 결정하고, 셀 전류의 변화가 1차 목표에 따른 목표 범위의 상한보다 크다면 거친 프로그래밍 시간을 감소시키고, 셀 전류의 변화가 목표 범위의 하한보다 작다면 거친 프로그래밍 시간 또는 거친 프로그래밍 전압을 증가시킬 수 있다. 거친 프로그래밍 시간이 이미 최대 값에 해당하는 경우, 플래시 메모리 장치는 거친 프로그래밍 전압을 증가시킬 수 있다.
단계(820)에서 플래시 메모리 장치는 거친 프로그래밍에 따라 타겟 메모리 셀의 셀 전류가 1차 목표를 만족하면, 미세 프로그래밍 시간을 조절하면서 타겟 메모리 셀에 대한 미세 프로그래밍을 수행한다. 플래시 메모리 장치는 거친 프로그래밍 및 미세 프로그래밍에 따른 타겟 메모리 셀의 셀 전류의 변화를 결정하고, 셀 전류의 변화가 2차 목표에 따른 목표 범위의 상한보다 크다면 미세 프로그래밍 시간을 감소시키고, 셀 전류의 변화가 목표 범위의 하한보다 작다면 미세 프로그래밍 시간을 증가시킬 수 있다.
단계(830)에서 플래시 메모리 장치는 미세 프로그래밍에 따라 타겟 메모리 셀의 셀 전류가 2차 목표를 만족하면, 타겟 메모리 셀에 대한 프로그래밍을 종료한다. 1차 목표에 따른 목표 범위는 2차 목표에 따른 목표 범위보다 넓을 수 있다. 1차 목표 및 2차 목표 중 적어도 일부는 뉴럴 네트워크 모델의 네트워크 파라미터에 따라 설정되고, 타겟 메모리 셀을 통해 뉴럴 네트워크 모델의 네트워크 연산이 수행될 수 있다. 네트워크 연산은 MAC 연산을 포함할 수 있다.
도 9는 일 실시예에 따른, 플래시 메모리 장치의 구성을 나타낸다. 도 9를 참조하면, 플래시 메모리 장치(900)는 셀 어레이(910) 및 컨트롤러(920)를 포함할 수 있다. 셀 어레이(910)는 복수의 메모리 셀들을 포함할 수 있다. 컨트롤러(920)는 거친 프로그래밍 시간 및 거친 프로그래밍 전압을 조절하면서 플래시 메모리의 타겟 메모리 셀에 대한 거친 프로그래밍을 수행하고, 거친 프로그래밍에 따라 타겟 메모리 셀의 셀 전류가 1차 목표를 만족하면, 미세 프로그래밍 시간을 조절하면서 타겟 메모리 셀에 대한 미세 프로그래밍을 수행하고, 미세 프로그래밍에 따라 타겟 메모리 셀의 셀 전류가 2차 목표를 만족하면, 타겟 메모리 셀에 대한 프로그래밍을 종료할 수 있다. 그 밖에, 플래시 메모리 장치(900)에는 도 1 내지 도 8, 및 도 10의 설명이 적용될 수 있다.
도 10은 일 실시예에 따른, 전자 장치의 구성을 나타낸다. 도 10을 참조하면, 전자 장치(1000)는 프로세서(1010), 메모리(1020), 카메라(1030), 저장 장치(1040), 입력 장치(1050), 출력 장치(1060) 및 네트워크 인터페이스(1070)를 포함할 수 있으며, 이들은 통신 버스(1080)를 통해 서로 통신할 수 있다. 예를 들어, 전자 장치(1000)는 이동 전화, 스마트 폰, PDA, 넷북, 태블릿 컴퓨터, 랩톱 컴퓨터 등과 같은 모바일 장치, 스마트 워치, 스마트 밴드, 스마트 안경 등과 같은 웨어러블 디바이스, 데스크탑, 서버 등과 같은 컴퓨팅 장치, 텔레비전, 스마트 텔레비전, 냉장고 등과 같은 가전 제품, 도어 락 등과 같은 보안 장치, 자율주행 차량, 스마트 차량 등과 같은 차량의 적어도 일부로 구현될 수 있다. 전자 장치(1000)는 플래시 메모리 장치(900)를 구조적 및/또는 기능적으로 포함할 수 있다. 예를 들어, 플래시 메모리 장치(900)는 프로세서(1010) 및/또는 메모리(1020)의 일부로 구현되거나, 혹은 전자 장치(1000)의 가속기(accelerator, 미도시)의 일부로 구현될 수 있다.
프로세서(1010)는 전자 장치(1000) 내에서 실행하기 위한 기능 및 명령어들을 실행한다. 예를 들어, 프로세서(1010)는 메모리(1020) 또는 저장 장치(1040)에 저장된 명령어들을 처리할 수 있다. 프로세서(1010)는 도 1 내지 도 9를 통하여 설명된 하나 이상의 동작을 수행할 수 있다. 메모리(1020)는 컴퓨터 판독가능한 저장 매체 또는 컴퓨터 판독가능한 저장 장치를 포함할 수 있다. 메모리(1020)는 프로세서(1010)에 의해 실행하기 위한 명령어들을 저장할 수 있고, 전자 장치(1000)에 의해 소프트웨어 및/또는 애플리케이션이 실행되는 동안 관련 정보를 저장할 수 있다. 일 실시예에 따르면, 메모리(1020)는 플래시 메모리를 포함할 수 있다.
카메라(1030)는 사진 및/또는 비디오를 촬영할 수 있다. 저장 장치(1040)는 컴퓨터 판독가능한 저장 매체 또는 컴퓨터 판독가능한 저장 장치를 포함한다. 저장 장치(1040)는 메모리(1020)보다 더 많은 양의 정보를 저장하고, 정보를 장기간 저장할 수 있다. 예를 들어, 저장 장치(1040)는 자기 하드 디스크, 광 디스크, 플래쉬 메모리, 플로피 디스크 또는 이 기술 분야에서 알려진 다른 형태의 비휘발성 메모리를 포함할 수 있다.
입력 장치(1050)는 키보드 및 마우스를 통한 전통적인 입력 방식, 및 터치 입력, 음성 입력, 및 이미지 입력과 같은 새로운 입력 방식을 통해 사용자로부터 입력을 수신할 수 있다. 예를 들어, 입력 장치(1050)는 키보드, 마우스, 터치 스크린, 마이크로폰, 또는 사용자로부터 입력을 검출하고, 검출된 입력을 전자 장치(1000)에 전달할 수 있는 임의의 다른 장치를 포함할 수 있다. 출력 장치(1060)는 시각적, 청각적 또는 촉각적인 채널을 통해 사용자에게 전자 장치(1000)의 출력을 제공할 수 있다. 출력 장치(1060)는 예를 들어, 디스플레이, 터치 스크린, 스피커, 진동 발생 장치 또는 사용자에게 출력을 제공할 수 있는 임의의 다른 장치를 포함할 수 있다. 네트워크 인터페이스(1070)는 유선 또는 무선 네트워크를 통해 외부 장치와 통신할 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 저장할 수 있으며 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
위에서 설명한 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 또는 복수의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 이를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (20)

  1. 플래시 메모리 장치의 제어 방법에 있어서,
    거친 프로그래밍 시간 및 거친 프로그래밍 전압을 조절하면서 상기 플래시 메모리 장치의 타겟 메모리 셀에 대한 거친 프로그래밍을 수행하는 단계;
    상기 거친 프로그래밍에 따라 상기 타겟 메모리 셀의 셀 전류가 1차 목표를 만족하면, 미세 프로그래밍 시간을 조절하면서 상기 타겟 메모리 셀에 대한 미세 프로그래밍을 수행하는 단계; 및
    상기 미세 프로그래밍에 따라 상기 타겟 메모리 셀의 상기 셀 전류가 2차 목표를 만족하면, 상기 타겟 메모리 셀에 대한 프로그래밍을 종료하는 단계
    를 포함하는 제어 방법.
  2. 제1항에 있어서,
    상기 거친 프로그래밍을 수행하는 단계는
    상기 거친 프로그래밍 시간을 최대 값까지 증가시켜도 상기 타겟 메모리 셀의 상기 셀 전류가 상기 1차 목표를 만족하지 않는 경우, 상기 거친 프로그래밍 전압을 증가시키면서 상기 거친 프로그래밍을 수행하는 단계를 포함하는,
    제어 장법.
  3. 제1항에 있어서,
    상기 타겟 메모리 셀의 상기 셀 전류는
    상기 거친 프로그래밍 시간의 조절에 비해 상기 거친 프로그래밍 전압의 조절에 따라 더 큰 폭으로 변화되는,
    제어 장법.
  4. 제1항에 있어서,
    상기 거친 프로그래밍을 수행하는 단계는
    상기 거친 프로그래밍에 따른 상기 타겟 메모리 셀의 상기 셀 전류의 변화를 결정하는 단계;
    상기 셀 전류의 상기 변화가 상기 1차 목표에 따른 목표 범위의 상한보다 크다면 상기 거친 프로그래밍 시간을 감소시키는 단계; 및
    상기 셀 전류의 상기 변화가 상기 목표 범위의 하한보다 작다면 상기 거친 프로그래밍 시간 또는 상기 거친 프로그래밍 전압을 증가시키는 단계
    를 포함하는, 제어 장법.
  5. 제4항에 있어서,
    상기 거친 프로그래밍 시간 또는 상기 거친 프로그래밍 전압을 증가시키는 단계는
    상기 거친 프로그래밍 시간이 이미 최대 값에 해당하는 경우, 상기 거친 프로그래밍 전압을 증가시키는 단계를 포함하는,
    제어 장법.
  6. 제1항에 있어서,
    상기 미세 프로그래밍을 수행하는 단계는
    상기 거친 프로그래밍 및 상기 미세 프로그래밍에 따른 상기 타겟 메모리 셀의 상기 셀 전류의 변화를 결정하는 단계;
    상기 셀 전류의 상기 변화가 상기 2차 목표에 따른 목표 범위의 상한보다 크다면 상기 미세 프로그래밍 시간을 감소시키는 단계; 및
    상기 셀 전류의 상기 변화가 상기 목표 범위의 하한보다 작다면 상기 미세 프로그래밍 시간을 증가시키는 단계
    를 포함하는, 제어 장법.
  7. 제1항에 있어서,
    상기 1차 목표에 따른 목표 범위는 상기 2차 목표에 따른 목표 범위보다 넓은,
    제어 장법.
  8. 제1항에 있어서,
    상기 1차 목표 및 상기 2차 목표 중 적어도 일부는 뉴럴 네트워크 모델의 네트워크 파라미터에 따라 설정되고,
    상기 타겟 메모리 셀을 통해 상기 뉴럴 네트워크 모델의 네트워크 연산이 수행되는,
    제어 장법.
  9. 제8항에 있어서,
    상기 네트워크 연산은 MAC(multiply-accumulate) 연산을 포함하는,
    제어 장법.
  10. 하드웨어와 결합되어 제1항 내지 제9항 중 어느 하나의 항의 방법을 실행시키기 위하여 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
  11. 복수의 메모리 셀들을 포함하는 셀 어레이; 및
    거친 프로그래밍 시간 및 거친 프로그래밍 전압을 조절하면서 상기 셀 어레이의 타겟 메모리 셀에 대한 거친 프로그래밍을 수행하고,
    상기 거친 프로그래밍에 따라 상기 타겟 메모리 셀의 셀 전류가 1차 목표를 만족하면, 미세 프로그래밍 시간을 조절하면서 상기 타겟 메모리 셀에 대한 미세 프로그래밍을 수행하고,
    상기 미세 프로그래밍에 따라 상기 타겟 메모리 셀의 상기 셀 전류가 2차 목표를 만족하면, 상기 타겟 메모리 셀에 대한 프로그래밍을 종료하는, 컨트롤러
    를 포함하는, 플래시 메모리 장치.
  12. 제11항에 있어서,
    상기 컨트롤러는
    상기 거친 프로그래밍 시간을 최대 값까지 증가시켜도 상기 타겟 메모리 셀의 상기 셀 전류가 상기 1차 목표를 만족하지 않는 경우, 상기 거친 프로그래밍 전압을 증가시키면서 상기 거친 프로그래밍을 수행하는,
    플래시 메모리 장치.
  13. 제11항에 있어서,
    상기 타겟 메모리 셀의 상기 셀 전류는
    상기 거친 프로그래밍 시간의 조절에 비해 상기 거친 프로그래밍 전압의 조절에 따라 더 큰 폭으로 변화되는,
    플래시 메모리 장치.
  14. 제11항에 있어서,
    상기 컨트롤러는
    상기 거친 프로그래밍에 따른 상기 타겟 메모리 셀의 상기 셀 전류의 변화를 결정하고,
    상기 셀 전류의 상기 변화가 상기 1차 목표에 따른 목표 범위의 상한보다 크다면 상기 거친 프로그래밍 시간을 감소시키고,
    상기 셀 전류의 상기 변화가 상기 목표 범위의 하한보다 작다면 상기 거친 프로그래밍 시간 또는 상기 거친 프로그래밍 전압을 증가시키는,
    플래시 메모리 장치.
  15. 제14항에 있어서,
    상기 컨트롤러는
    상기 거친 프로그래밍 시간이 이미 최대 값에 해당하는 경우, 상기 거친 프로그래밍 전압을 증가시키는,
    플래시 메모리 장치.
  16. 제11항에 있어서,
    상기 컨트롤러는
    상기 거친 프로그래밍 및 상기 미세 프로그래밍에 따른 상기 타겟 메모리 셀의 상기 셀 전류의 변화를 결정하고,
    상기 셀 전류의 상기 변화가 상기 2차 목표에 따른 목표 범위의 상한보다 크다면 상기 미세 프로그래밍 시간을 감소시키고,
    상기 셀 전류의 상기 변화가 상기 목표 범위의 하한보다 작다면 상기 미세 프로그래밍 시간을 증가시키는,
    플래시 메모리 장치.
  17. 제11항에 있어서,
    상기 1차 목표 및 상기 2차 목표 중 적어도 일부는 뉴럴 네트워크 모델의 네트워크 파라미터에 따라 설정되고,
    상기 타겟 메모리 셀을 통해 상기 뉴럴 네트워크 모델의 네트워크 연산이 수행되고,
    상기 네트워크 연산은 MAC(multiply-accumulate) 연산을 포함하는,
    플래시 메모리 장치.
  18. 복수의 메모리 셀들을 포함하는 플래시 메모리; 및
    거친 프로그래밍 시간 및 거친 프로그래밍 전압을 조절하면서 상기 플래시 메모리의 타겟 메모리 셀에 대한 거친 프로그래밍을 수행하고,
    상기 거친 프로그래밍에 따라 상기 타겟 메모리 셀의 셀 전류가 1차 목표를 만족하면, 미세 프로그래밍 시간을 조절하면서 상기 타겟 메모리 셀에 대한 미세 프로그래밍을 수행하고,
    상기 미세 프로그래밍에 따라 상기 타겟 메모리 셀의 상기 셀 전류가 2차 목표를 만족하면, 상기 타겟 메모리 셀에 대한 프로그래밍을 종료하는, 프로세서
    를 포함하는, 전자 장치.
  19. 제18항에 있어서,
    상기 프로세서는
    상기 거친 프로그래밍 시간을 최대 값까지 증가시켜도 상기 타겟 메모리 셀의 상기 셀 전류가 상기 1차 목표를 만족하지 않는 경우, 상기 거친 프로그래밍 전압을 증가시키면서 상기 거친 프로그래밍을 수행하는,
    전자 장치.
  20. 제18항에 있어서,
    상기 프로세서는
    상기 거친 프로그래밍에 따른 상기 타겟 메모리 셀의 상기 셀 전류의 변화를 결정하고,
    상기 셀 전류의 상기 변화가 상기 1차 목표에 따른 목표 범위의 상한보다 크다면 상기 거친 프로그래밍 시간을 감소시키고,
    상기 셀 전류의 상기 변화가 상기 목표 범위의 하한보다 작다면 상기 거친 프로그래밍 시간 또는 상기 거친 프로그래밍 전압을 증가시키되,
    상기 거친 프로그래밍 시간이 이미 최대 값에 해당하는 경우, 상기 거친 프로그래밍 전압을 증가시키는,
    전자 장치.
KR1020220010736A 2022-01-25 2022-01-25 플래시 메모리 제어 방법 및 장치 KR20230114500A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020220010736A KR20230114500A (ko) 2022-01-25 2022-01-25 플래시 메모리 제어 방법 및 장치
US17/863,556 US20230298675A1 (en) 2022-01-25 2022-07-13 Method and apparatus with flash memory control
CN202210832285.XA CN116543816A (zh) 2022-01-25 2022-07-14 用于闪存控制的方法、闪存装置和电子设备
EP22207759.6A EP4216221A1 (en) 2022-01-25 2022-11-16 Method and apparatus with flash memory control
JP2023002873A JP2023108602A (ja) 2022-01-25 2023-01-12 フラッシュメモリ制御方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220010736A KR20230114500A (ko) 2022-01-25 2022-01-25 플래시 메모리 제어 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20230114500A true KR20230114500A (ko) 2023-08-01

Family

ID=84359273

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220010736A KR20230114500A (ko) 2022-01-25 2022-01-25 플래시 메모리 제어 방법 및 장치

Country Status (5)

Country Link
US (1) US20230298675A1 (ko)
EP (1) EP4216221A1 (ko)
JP (1) JP2023108602A (ko)
KR (1) KR20230114500A (ko)
CN (1) CN116543816A (ko)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7848158B2 (en) * 2008-05-05 2010-12-07 Micron Technologies, Inc. Methods and apparatuses for programming flash memory using modulated pulses
US11393535B2 (en) * 2020-02-26 2022-07-19 Silicon Storage Technology, Inc. Ultra-precise tuning of analog neural memory cells in a deep learning artificial neural network

Also Published As

Publication number Publication date
CN116543816A (zh) 2023-08-04
EP4216221A1 (en) 2023-07-26
US20230298675A1 (en) 2023-09-21
JP2023108602A (ja) 2023-08-04

Similar Documents

Publication Publication Date Title
US10410114B2 (en) Model training method and apparatus, and data recognizing method
CN108337000B (zh) 用于转换到较低精度数据格式的自动方法
US11775833B2 (en) Accelerated TR-L-BFGS algorithm for neural network
US10776668B2 (en) Effective building block design for deep convolutional neural networks using search
JP7146954B2 (ja) データ処理方法、装置、コンピュータデバイス、及び記憶媒体
US20160358068A1 (en) Reducing computations in a neural network
CN113574327B (zh) 通过选择控制设置来控制环境的方法及系统
Kulis et al. Implicit online learning
KR20190068255A (ko) 고정 소수점 뉴럴 네트워크를 생성하는 방법 및 장치
KR20210032140A (ko) 뉴럴 네트워크에 대한 프루닝을 수행하는 방법 및 장치
EP4170549A1 (en) Machine learning program, method for machine learning, and information processing apparatus
US11562225B2 (en) Automatic monitoring and adjustment of machine learning model training
WO2022059024A1 (en) Methods and systems for unstructured pruning of a neural network
KR20210026767A (ko) 뉴럴 네트워크를 이용한 플래시 메모리의 읽기 기준 전압 추정 방법 및 그 장치
Pan et al. Gradauto: Energy-oriented attack on dynamic neural networks
KR20230114500A (ko) 플래시 메모리 제어 방법 및 장치
US11138493B2 (en) Approaching homeostasis in a binary neural network
US20220383092A1 (en) Turbo training for deep neural networks
JP7434602B2 (ja) 低電力動作のための多状態記憶素子における不均一な状態の間隔
KR102297543B1 (ko) 전지 충전 상태 예측 장치 및 방법
KR20210144510A (ko) 뉴럴 네트워크를 이용하는 데이터 처리 방법 및 데이터 처리 장치
CN113112092A (zh) 一种短期概率密度负荷预测方法、装置、设备和存储介质
KR20210156538A (ko) 뉴럴 네트워크를 이용한 데이터 처리 방법 및 데이터 처리 장치
US20240119290A1 (en) Managing data drift in machine learning models using incremental learning and explainability
KR102320345B1 (ko) 딥러닝 내부의 데이터 추출 방법 및 장치