KR20200066573A - 고밀도 스토리지 시스템 및 방법 - Google Patents
고밀도 스토리지 시스템 및 방법 Download PDFInfo
- Publication number
- KR20200066573A KR20200066573A KR1020190157674A KR20190157674A KR20200066573A KR 20200066573 A KR20200066573 A KR 20200066573A KR 1020190157674 A KR1020190157674 A KR 1020190157674A KR 20190157674 A KR20190157674 A KR 20190157674A KR 20200066573 A KR20200066573 A KR 20200066573A
- Authority
- KR
- South Korea
- Prior art keywords
- level
- threshold voltage
- memory cells
- word line
- storage system
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- 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/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- 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/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5642—Sensing or reading circuits; Data output 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/26—Sensing or reading circuits; Data output 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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3404—Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
-
- 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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
- G11C16/3427—Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Probability & Statistics with Applications (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Read Only Memory (AREA)
Abstract
본 개시의 기술적 사상에 따른 고밀도 스토리지 시스템은 워드 라인 및 비트 라인과 연결되는 복수의 메모리 셀들을 포함하는 저장 장치 및 메모리 컨트롤러를 포함하고, 상기 메모리 컨트롤러는, 상기 저장 장치에서의 간섭과 초기 데이터에 기초하여 상기 복수의 메모리 셀들 각각의 레벨에 대한 임계 전압의 범위를 결정하고, 상기 간섭에 기초하여 상기 복수의 메모리 셀들의 그룹들이 프로그래밍되는 순서를 결정하는 결정부, 상기 프로그래밍되는 순서 및 상기 복수의 메모리 셀들 각각의 레벨에 대한 기준 정보에 기초하여 상기 임계 전압 범위에 대한 통계적 셀 보정을 수행하는 보정부 및 수행된 통계적 셀 보정 결과에 기초하여 상기 복수의 메모리 셀들 각각의 레벨에 인가되는 증가형 스텝 펄스 프로그램(ISPP) 펄스의 진폭을 결정하고, 상기 ISPP 펄스의 진폭에 대해 오류 정정 코드(ECC) 암호화를 수행하고, 상기 ECC 암호화가 수행된 상기 ISPP 펄스의 진폭을 상기 복수의 메모리 셀들 각각의 레벨에 인가하는 암호화부를 포함할 수 있다.
Description
본 개시의 실시예에 따른 장치 및 방법은 솔리드 스테이트 드라이브(Solid-State Drive; 이하, SSD), 즉 고밀도 스토리지 시스템에 관한 것이다.
SSD는 데이터를 지속적으로 저장하기 위해 집적 회로를 메모리로 사용하는 솔리드-스테이트(Solid-State) 저장 장치이다. SSD는 하드 디스크 드라이브(hard disk drive, HDD)에 비해 움직이는 기계적 구성 요소를 사용하지 않기 때문에 물리적 충격에 더 강하고, 조용히 실행되며, 액세스 시간이 빠르고, 대기 시간이 짧다.
SSD는 다중-레벨 셀(Multi-Level Cells; 이하, MLC)을 포함 할 수 있으며, 이들 각각은 단일 비트 이상의 데이터를 저장할 수 있는 메모리 요소이다. MLC의 주요 이점은 높은 데이터 밀도로 인해 저장 단위당 비용이 저렴하다는 것이다. 그러나, SSD에서 메모리 셀 당 레벨 수가 증가함에 따라, 각 SSD의 결과 비트 오류율도 증가한다.
본 개시의 기술적 사상이 해결하려는 과제는 디노이징(De-noising) 및 필터링 기술을 적용하여 높은 메모리 셀당 레벨 수를 유지하며 비트 오류율이 낮은 스토리지 시스템을 제공하는 데에 있다.
본 개시의 기술적 사상에 따른 고밀도 스토리지 시스템은 워드 라인 및 비트 라인과 연결되는 복수의 메모리 셀들을 포함하는 저장 장치 및 메모리 컨트롤러를 포함하고, 상기 메모리 컨트롤러는, 상기 저장 장치에서의 간섭과 초기 데이터에 기초하여 상기 복수의 메모리 셀들 각각의 레벨에 대한 임계 전압의 범위를 결정하고, 상기 간섭에 기초하여 상기 복수의 메모리 셀들의 그룹들이 프로그래밍되는 순서를 결정하는 결정부, 상기 프로그래밍되는 순서 및 상기 복수의 메모리 셀들 각각의 레벨에 대한 기준 정보에 기초하여 상기 임계 전압 범위에 대한 통계적 셀 보정을 수행하는 보정부 및 수행된 통계적 셀 보정 결과에 기초하여 상기 복수의 메모리 셀들 각각의 레벨에 인가되는 증가형 스텝 펄스 프로그램(ISPP) 펄스의 진폭을 결정하고, 상기 ISPP 펄스의 진폭에 대해 오류 정정 코드(ECC) 암호화를 수행하고, 상기 ECC 암호화가 수행된 상기 ISPP 펄스의 진폭을 상기 복수의 메모리 셀들 각각의 레벨에 인가하는 암호화부를 포함할 수 있다.
본 개시의 기술적 사상에 따른 고밀도 스트리지 시스템의 제어 방법은 복수의 메모리 셀들을 포함하는 저장 장치의 간섭과 초기 데이터에 기초하여, 상기 복수의 메모리 셀들 각각의 레벨에 대한 임계 전압의 범위를 결정하는 단계, 상기 간섭에 기초하여, 상기 복수의 메모리 셀들의 그룹들이 프로그래밍되는 순서를 결정하는 단계, 상기 프로그래밍되는 순서 및 상기 복수의 메모리 셀들 각각의 레벨에 대한 기준 정보에 기초하여, 상기 복수의 메모리 셀들 각각의 레벨에 대한 임계 전압 범위에 대해 통계적 셀 보정을 수행하는 단계, 수행된 통계적 셀 보정 결과에 기초하여, 상기 복수의 메모리 셀들 각각의 레벨에 인가되는 증가형 스텝 펄스 프로그램(ISPP) 펄스의 진폭을 결정하는 단계, 상기 ISPP 펄스의 진폭에 대해 오류 정정 코드(ECC) 암호화를 수행하는 단계 및 상기 ECC 암호화가 수행된 상기 ISPP 펄스의 진폭을 상기 복수의 메모리 셀들 각각의 레벨에 인가하는 단계를 포함할 수 있다.
본 개시의 기술적 사상에 따른 고밀도 스토리지 시스템은 메모리 셀당 64 레벨의 안정적인 저장을 가능하게 한다. 본 개시의 기술적 사상에 따른 고밀도 스토리지 시스템(200)은 하드 디스크 드라이브(Hard Disk Drive; 이하, HDD)와 상응하는 비트 비용 및 성능을 가질 뿐만 아니라, HDD를 뛰어넘는 전력 소비, 폼 팩터 및 솔리드 스테이트 신뢰성을 가질 수 있다. 또한, 본 개시의 기술적 사상에 따른 스토리지 시스템 (200)은 종래의 스토리지 시스템보다 적은 비트 에러율(BER)을 달성하여, 기존 ECC 솔루션을 사용하여 SD(Soft-Decision) 디코딩이 가능할 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 스토리지 시스템의 블록도이다.
도 2는 본 개시의 예시적 실시예에 따른 스토리지 시스템의 블록도이다.
도 3은 본 개시의 예시적 실시예에 따른 저장 장치의 제어 방법의 흐름도이다.
도 4는 본 개시의 예시적 실시예에 따른 스토리지 시스템의 블록도이다.
도 5는 본 개시의 예시적 실시예에 따른 스토리지 시스템을 포함하는 컴퓨터 시스템의 블록도이다.
도 6은 본 개시의 예시적 실시예에 따른 메모리 카드의 블록도이다.
도 7은 본 개시의 예시적 실시예에 따른 메모리 시스템을 포함하는 네트워크 시스템의 블록도이다.
도 2는 본 개시의 예시적 실시예에 따른 스토리지 시스템의 블록도이다.
도 3은 본 개시의 예시적 실시예에 따른 저장 장치의 제어 방법의 흐름도이다.
도 4는 본 개시의 예시적 실시예에 따른 스토리지 시스템의 블록도이다.
도 5는 본 개시의 예시적 실시예에 따른 스토리지 시스템을 포함하는 컴퓨터 시스템의 블록도이다.
도 6은 본 개시의 예시적 실시예에 따른 메모리 카드의 블록도이다.
도 7은 본 개시의 예시적 실시예에 따른 메모리 시스템을 포함하는 네트워크 시스템의 블록도이다.
이하, 첨부한 도면을 참조하여 본 개시의 실시 예에 대해 상세히 설명한다.
도 1은 실시예들에 따른 스토리지 시스템(900)의 블록도이다. 도 1을 참조하면, 스토리지 시스템(900)은 메모리 컨트롤러(1000) 및 저장 장치(2000)를 포함한다.
저장 장치(2000)는 비-휘발성 저장 장치일 수 있으며, 플래시 저장 장치, NAND 플래시 저장 장치, PRAM(Phase Change RAM), FRAM(Ferroelectric RAM), MRAM(Magnetic RAM) 등이 될 수 있으나 이에 한정되지 않는다. 저장 장치(2000)는 메모리 셀의 스택을 갖는 평면 구조 또는 3 차원 (3D) 메모리 셀 구조를 가질 수 있다. 각각의 메모리 셀은 데이터 비트 각각을 저장하기 위해 레벨을 포함 할 수 있다. 저장 장치(2000)는, 메모리 칩(예를 들어, NAND 칩)으로 구현될 수 있다. 설명의 편의를 위해, 도 1에는 하나의 저장 장치(2000)만이 도시되어 있지만, 스토리지 시스템(900)은 여러 방식으로 배열되고 다수의 채널을 통해 메모리 컨트롤러(1000)에 연결된 여러 비 휘발성 저장 장치(예를 들어, 메모리 칩)를 포함 할 수 있다.
저장 장치(2000)는 메모리 셀 어레이(2100), X 디코더(121), 전압 생성기(125), I/O 버퍼(124), 페이지 버퍼(123) 및 각각 하나 이상의 회로로 구현 될 수 있는 제어 로직(126)을 포함 할 수 있다. 저장 장치는 또한 입력/출력(input/output, I/O) 패드(127)를 포함할 수 있다.
메모리 셀 어레이(2100)는 복수의 워드 라인(Word Lines, WL) 및 복수의 비트 라인(Bit Lines, BL)을 포함한다. 각 메모리 셀은, 예를 들어, 플로팅 게이트 또는 전하 트래핑 층과 같은 전하 저장 층을 갖는 메모리 셀, 또는 하나 이상의 비트의 데이터를 저장할 수 있는 임의의 다른 유형의 메모리 셀로서 구현 될 수 있다.
메모리 셀은, 예를 들어 하나의 셀에 정보 1비트를 저장하는 SLC(Single Level Cell), 2비트를 저장하는 MLC(Multi Level Cell), 및 3비트를 저장하는 TLC(Triple Level Cell)을 포함할 수 있다. SLC는 1비트, 즉 0과 1로 데이터를 구분하고, MLC는 00, 01, 11, 10 네 개로 데이터를 구분하며, TLC는 000, 001, 010, 011, 100, 101, 110, 111 여덟 개로 데이터를 구분할 수 있다. 본 개시의 기술적 사상에 따른 메모리 셀의 레벨은 SLC의 0과 1 각각을, MLC의 00, 01, 11, 10 각각을, TLC의 000, 001, 010, 011, 100, 101, 110, 111 각각을 의미할 수 있다. 다시 말해, 메모리 셀의 레벨은 하나의 데이터 셀에 저장되는 전하의 양에 따라 임의로 구분된 논리적 영역일 수 있다.
메모리 셀 어레이(2100)는 복수의 블록 및 복수의 페이지를 포함할 수 있다. 하나의 블록은 복수의 페이지를 포함할 수 있다. 페이지는 프로그램 및 읽기 동작 단위일 수 있으며, 블록은 소거 동작 단위일 수 있다. 예를 들어, 메모리 셀 어레이(2100)는 제1 블록(2120) 및 제2 블록(2130)을 포함한다. 도 1에 도시된 바와 같이, 본 개시의 일 실시예에 따르면, 제1 블록(2120)은 제1 내지 제N 페이지를 포함할 수 있고, 제2 블록(2130)은 제1 내지 N 페이지를 포함할 수 있으며, 여기서 N은 1보다 큰 양의 정수이다.
제어 로직(126)은 메모리 컨트롤러(1000)로부터 커맨드(CMD)를 수신하면, 커맨드(CMD)를 해석하고 해석된 커맨드(CMD)에 따른 동작(예를 들어, 프로그램 동작, 리드 동작, 리드 재시도 동작 또는 소거 동작)을 수행하도록 저장 장치(2000)를 제어한다.
본 개시의 일 실시예에 따르면, 제어 로직(126)은 명령 신호인 커맨드(CMD)에 기초하여 명령을 실행하도록 구성된 하드웨어로 구현된 프로세서를 포함할 수 있다. 제어 로직(126)은 프로세서 외에, 제어 로직(126)에 포함된 프로세서에 의해 실행될 때, 프로세서로 하여금 특정 동작을 수행하게 하는 단계들을 저장하기 위한 저장 유닛을 추가적으로 포함할 수 있다. 본 개시의 기술적 사상에 따르면, 저장 장치(2000)에 의해 수행되는 것으로 설명된 임의의 동작들은, 제어 로직(126)에 의해, 또는 그 제어 하에 수행될 수 있다. 예를 들어, 임의의 동작들은 제어 로직(126)에 포함된 저장 유닛에 저장된 펌웨어를 구동하는 제어 로직(126)에 포함된 프로세서에 의해 수행될 수 있다. 대안적으로, 제어 로직(126)은 저장 장치(2000)에 의해 수행되는 것으로 설명된 임의의 동작을 수행하거나 제어하기 위해, 하드웨어 측면에서 물리적으로 프로그래밍되는 회로(예를 들어, ASIC(Application Specific Integrated Circuit) 또는 FPGA(Field Programmable Gate Array))일 수 있다.
X 디코더(121)는 제어 로직(126)에 의해 제어되고 행 어드레스에 따라 메모리 셀 어레이(2100)에서 워드 라인(WL) 중 적어도 하나를 구동할 수 있다.
전압 생성기(125)는 제어 로직(126)에 의해 제어됨에 따라, 프로그램 동작, 리드 동작 또는 소거 동작에 필요한 하나 이상의 전압을 생성하고, 생성된 전압을 X 디코더(121)에 의해 선택된 하나 이상의 행에 제공할 수 있다.
레지스터(128)는 제어 로직(126)에 의해 제어되며, 메모리 컨트롤러(1000)로부터 입력된 정보가 저장되는 저장 공간이다. 레지스터(128)는 복수의 래치들(latches)을 포함할 수 있다. 예를 들어, 레지스터(128)는 리드 전압 (및/또는 기준 전압) 정보를 그룹화하고 정보를 테이블 형태로 저장할 수 있다.
페이지 버퍼(123)는 제어 로직(126)에 의해 제어되고, 동작 모드(예를 들어, 리드 동작 또는 프로그램 동작)에 따라 센스 앰프(Sense Amplifier) 또는 기록 드라이버(Write Driver)로서 동작한다.
I/O 패드(127) 및 I/O 버퍼(124)는 외부 장치(예를 들어, 메모리 컨트롤러(1000) 또는 호스트)와 저장 장치(2000) 사이에서 교환되는 데이터의 입출력(Input/Output) 경로로서 기능할 수 있다. I/O 패드(127)는 스토리지 시스템 버스(800)를 통해 메모리 컨트롤러(1000)에 연결될 수 있다. 데이터(DATA) 및/또는 커맨드(CMD)는 저장 장치(2000)로부터 메모리 컨트롤러(1000)로 출력되거나, 메모리 컨트롤러(1000)로부터 I/O 패드(127) 및 스토리지 시스템 버스(800)를 통해 저장 장치(2000)에서 수신될 수 있다.
다시 도 1을 참조하면, 메모리 컨트롤러(1000)는 마이크로 프로세서(111), 읽기 전용 메모리(Read-Only Memory, ROM)(113), 랜덤 액세스 메모리(Random Access Memory, RAM)(112), 암호화기(1100), 복호화기(1200), 메모리 인터페이스(116) 및 메모리 컨트롤러 버스(118)를 포함할 수 있다. 메모리 컨트롤러(1000)의 소자들(111 내지 116)은 메모리 컨트롤러 버스(118)를 통해 서로 전기적으로 연결될 수 있다.
마이크로 프로세서(111)는 메모리 컨트롤러(1000)를 포함하는 스토리지 시스템(900)의 전반적인 동작을 제어할 수 있다. 마이크로 프로세서(111)는 제어 신호를 생성하여 다른 요소를 제어하는 회로일 수 있다. 스토리지 시스템(900)에 전력이 공급될 때, 마이크로 프로세서(111)는 RAM(112) 상에서 스토리지 시스템(900)을 동작시키기 위한 펌웨어(예를 들어, ROM(113)에 저장됨)를 구동하여, 스토리지 시스템(900)의 전체 동작을 제어한다. 본 개시의 일 실시예에 따르면, 마이크로 프로세서(111)는 ROM(113), RAM(112), 인코더(1100), 디코더(1200), 메모리 인터페이스(116), 및 컨트롤러 버스(118)의 일부 또는 전부를 포함하는 메모리 컨트롤러(1000)의 다른 구성 요소의 동작을 제어하기 위한 단계에 관한 명령을 발행할 수도 있다. 본 개시의 일 실시예의 실시예들에 따르면, 메모리 컨트롤러(1000)에 의해 수행되는 것으로 설명된 임의의 동작들은 마이크로 프로세서(111)에 의해 또는 그 제어 하에 수행될 수 있다. 예를 들어, 임의의 동작들은 펌웨어를 구동하는 마이크로 프로세서에 의해 수행될 수 있다.
ROM(113)에는 스토리지 시스템(900)의 구동 펌웨어 코드가 저장되어 있다고 이해될 수 있으나, 이에 한정되는 것은 아니다. 또한, 펌웨어 코드는 ROM(113) 이외의 공간인 스토리지 시스템(900)의 일부에 저장 될 수 있다. 따라서, 마이크로 프로세서(111)의 제어 또는 개입은 마이크로 프로세서(111)의 직접 제어뿐만 아니라 마이크로 프로세서(111)에 의해 구동되는 소프트웨어인 펌웨어의 개입도 포함된 개념일 수 있다.
대안적으로, 마이크로 프로세서(111)는, 메모리 컨트롤러(1000)에 의해 수행되는 것으로 설명된 임의의 동작을 수행하거나 제어하기 위해 하드웨어 측면에서 물리적으로 프로그래밍 된 회로(예를 들어, ASIC 또는 FPGA) 일 수 있다.
RAM(112)은 버퍼 역할을 하는 메모리로서, 호스트 또는 마이크로 프로세서(111)로부터 입력된 초기 명령, 데이터 및 다양한 변수, 또는 저장 장치(2000)에서 출력된 데이터를 저장할 수 있다. 또한, RAM(112)은 비 휘발성 저장 장치(2000)로 입출력 되는 데이터 및 다양한 파라미터 및 변수를 저장할 수 있다. 본 개시의 일 실시예에 따르면, RAM(112)은 계류중인 저장 장치 액세스 명령(예를 들어, 데이터 리드 요청 및 저장 장치(2000)에 대한 데이터 기록 요청)의 리스트를 포함하는 명령 큐를 저장할 수 있다.
메모리 인터페이스(116)는 메모리 컨트롤러(1000)와 저장 장치(2000) 사이의 인터페이스 역할을 할 수 있다. 메모리 인터페이스(116)는 스토리지 시스템 버스(800)를 통해 저장 장치(2000)의 I/O 패드(127)에 연결되고 스토리지 시스템 버스(800)를 통해 I/O 패드(127)와 데이터를 교환할 수 있다. 또한, 메모리 인터페이스(116)는 저장 장치(2000)에 적합한 명령을 생성하고, 생성된 명령을 비 휘발성 저장 장치(2000)의 I/O 패드(127)에 제공할 수 있다. 메모리 인터페이스(116)는 저장 장치(2000)에 의해 실행될 명령 및 저장 장치(2000)의 어드레스(Address, ADD)를 제공한다.
본 개시의 일 실시예에 따르면, 암호화부(1100)는 에러 정정 코드(Error Correction Code; 이하, ECC) 인코더일 수 있고, 복호화부(1200)는 ECC 디코더일 수 있다. 암호화부(1100) 및 복호화부(1200)는 에러 비트 정정을 수행할 수 있다. 암호화부(1100)는 데이터가 저장 장치(2000)에 제공되기 전에 데이터에 대한 에러 정정 인코딩을 수행함으로써 하나 이상의 패리티(parity) 및/또는 리던던시(redundancy) 비트가 추가된 데이터를 생성할 수 있다. 하나 이상의 패리티 및/또는 리던던시 비트는 저장 장치(2000)에 저장될 수 있다. 각각의 암호화부(1100) 및 복호화부(1200)는 에러 정정 회로, 시스템 또는 장치를 포함할 수 있다.
도 2는 본 개시의 실시예에 따른 스토리지 시스템(200)의 블록도이다. 도 2을 참조하면, 스토리지 시스템(200)은 메모리 컨트롤러(210) 및 저장 장치(2000)를 포함할 수 있다. 메모리 컨트롤러(210)는 결정부(211), 보정부(212), 암호화부(213), 베이시안 추정부(214), 필터부(215) 및 복호화부 (216)를 포함할 수 있다. 도 2의 메모리 컨트롤러(210)는 도 1의 메모리 컨트롤러(1000)와 동일할 수 있는 바, 중복되는 설명은 생략하기로 한다.
결정부(211)는 이진 벡터일 수 있는 초기 데이터(DATA)를 수신하고, 각 레벨 사이에 오류의 양이 서로 동일하도록 균형을 조절하기 위해, 초기 데이터(DATA)를 저장 장치(2000)의 복수의 메모리 셀들 각각의 레벨에 대한 임계 전압의 범위로 변환할 수 있다. 예를 들어, 복수의 메모리 셀들의 제1 그룹은 각각 초기 데이터(DATA)의 비트 '0'에 대응하기 위해 각 레벨에 대한 임계 전압의 제1 범위, 즉 -3 볼트 (V) 내지 5.5V를 가질 수 있다. 메모리 셀들의 제2 그룹은 각각 초기 데이터(DATA)의 비트 '1'에 대응하기 위해 각 레벨에 대한 임계 전압의 제2 범위, 즉 9V 내지 10V를 가질 수 있다.
결정부(211)는 각 메모리 셀의 워드 라인과 그 주변 사이의 간섭에 기초하여, 복수의 메모리 셀들 각각의 레벨에 대한 임계 전압의 범위를 결정한다. 간섭은 잡음을 지칭할 수 있고, 도 2에 도시 된 바와 같이 용어 "NAND"로 표시될 수 있다. 간섭은 저장 장치(2000)의 각 워드 라인에 대해 미리 결정된 값일 수 있다. 대안적으로, 간섭은 머신 러닝을 통해 결정될 수 있다.
결정부(211)는 셀-투-셀 커플링(cell-to-cell coupling)을 최소화하기 위해, 저장 장치(2000)의 메모리 셀의 어떤 그룹이 프로그램 단계(stage) 순서로 개별적으로 프로그래밍 되는지를 더 결정할 수 있다. 즉, 결정부(211)는 이러한 간섭을 완화하기 위해, 각 비트 라인의 셀 간 간섭, 각 워드 라인의 검증 준비(ready-for-verify) 간섭, 및 z축에서의 필라(pillar) 간섭에 기초하여, 복수의 메모리 셀들의 그룹이 프로그래밍되는 순서를 결정한다. z축에서의 필라 간섭은 비트 라인의 셀 간 간섭, 워드 라인의 검증 준비 간섭과 서로 수직한 방향에서의 간섭을 의미할 수 있다. 상기 간섭들은 도 2에 도시된 바와 같이 용어 "NAND"로 표시 될 수 있으며, 미리 정해진 값들일 수 있다. 대안적으로, 간섭들은 머신 러닝을 통해 결정될 수 있다. 예를 들어, 간섭들을 감소시키기 위해, 복수의 메모리셀들 각각의 레벨에 대한 임계 전압의 중간 레벨 범위를 각각 갖는 메모리 셀의 제1 그룹이, 각 레벨에 대한 임계 전압의 더 높은 레벨 범위를 각각 갖는 메모리 셀의 제2 그룹 전에 프로그래밍 될 수 있다.
보정부(212)는 저장 장치(2000)로부터 수신된 기준 리드(READ REF)에 기초하여, 저장 장치(2000)의 복수의 메모리 셀들 각각의 레벨의 실제 임계 전압을 결정한다. 기준 리드(READ REF)는 적어도 하나의 메모리 셀의 적어도 하나의 레벨의 임계 전압의 양의 이동 또는 증가를 지시할 수 있다. 또한 복수의 메모리 셀들 각각의 레벨에 인가되는 이전 프로그램 펄스를 지시할 수 있다. 보정부(212)는 복수의 메모리 셀들 각각의 레벨에 적용되는 프로그램 펄스들 사이에서, 적어도 하나의 메모리 셀의 적어도 하나의 레벨의 임계 전압의 음의 이동 또는 감소(예를 들어, 정체율)를 결정할 수 있다. 양의 이동은 기록 펄스 또는 간섭에 의한 것일 수 있고, 음의 이동은 누설 또는 정체 현상에 의한 것일 수 있다. 기준 리드(READ REF)는 복수의 메모리 셀들 각각의 레벨의 실제 임계 전압을 기준값과 비교한 결과인 이진 벡터일 수 있다.
보정부(212)는 저장 장치(2000)의 적어도 하나의 메모리 셀의 적어도 하나의 레벨에 인가되는 결정된 실제 임계 전압에 기초하여, 실제 임계 전압 각각의 이동을 예측하는 추가 프로그램 펄스를 추가로 결정할 수 있다. 또한, 보정부(212)는 결정부(211)에 의해 결정된 적어도 하나의 메모리 셀의 적어도 하나의 레벨에 대한 임계 전압의 범위를 결정할 수 있다. 이러한 방식으로, 보정부(212)는 메모리 셀의 각 레벨이 각각의 임계 전압의 범위를 초과하도록 추가 프로그램 펄스가 각각의 메모리 셀의 각 레벨에 추가되는지 여부를 결정할 수 있다. 또한, 보정부(212)는 결정부(211)에 의해 결정되는 복수의 메모리 셀들의 그룹들이 프로그래밍되는 순서에 기초하여, 적어도 하나의 메모리 셀의 적어도 하나의 레벨에 인가될 추가 프로그램 펄스를 연산할 수 있다.
암호화부(213)는 검증 신호(VERIFY) 및 보정부(212)에서 결정된 각각의 추가 프로그램 펄스에 기초하여, 최소 비트 에러율(Bit Error Rate, BER)을 달성하기 위해 저장 장치(2000)의 복수의 메모리 셀들 각각의 레벨에 적용될 ISPP 펄스의 진폭을 결정할 수 있다. 검증 신호(VERIFY)는 저장 장치(2000)로부터 수신 된 복수의 메모리 셀들 각각의 레벨이 결정된 임계 전압의 범위에 도달했는지 여부를 지시할 수 있다.
암호화부(213)는 저장 장치(2000)의 복수의 메모리 셀들 각각의 레벨에 적용될, 결정된 ISPP 펄스의 크기에 대해 ECC 인코딩을 수행할 수 있다. 그러면, 암호화부(213)는 ECC 인코딩된 ISPP 펄스의 진폭을 복수의 메모리 셀들 각각의 레벨에 인가할 수 있다.
베이시안 추정부(214)는 저장 장치(2000)로부터 수신된 데이터에 대해 베이시안 추정(또는, 베이즈 추정)을 수행하여 데이터로부터 노이즈를 제거할 수 있다. 베이시안 추정부(214)는 저장 장치 (2000)로부터 수신된 기준 리드(READ REF)에 기초하여 베이시안 추정을 수행할 수 있다.
필터부(215)는 베이시안 추정이 수행된 데이터를 필터링하여 데이터에서 비트 중복(리던던시)을 제거할 수 있다. 필터부(215)는, 예를 들어 칼만 필터(Kalman Filter) 또는 위너 필터(Wiener Filter)를 포함 할 수 있지만, 이에 제한되지 않는다. 필터부(215)는 저장 장치(2000)로부터 수신된 기준 리드 (READ REF)에 기초하여 베이시안 추정이 수행되는 데이터를 필터링할 수 있다.
ECC 복호화부(216)는 필터링된 데이터에 대해 ECC 디코딩을 수행하여 초기 데이터(DATA)를 재생성할 수 있다.
메모리 컨트롤러(210)는 데이터의 주기적인 읽기 및 프로그램(즉, 데이터 리프레쉬)을 수행 할 수 있으며, 스토리지 시스템(200)은 전원에 상시 연결되어 전력을 공급받을 수 있다.
본 개시의 기술적 사상에 따르면, 스토리지 시스템(200)은, 예를 들어, 메모리 셀당 64 레벨의 안정적인 저장을 가능하게 한다. 다만, 64 레벨은 설명의 편의를 위해 임의로 제시된 수치일 뿐, 이에 한정되지 않는다. 본 개시의 기술적 사상에 따른 스토리지 시스템(200)은 하드 디스크 드라이브(Hard Disk Drive; 이하, HDD)와 상응하는 비트 비용 및 성능을 가질 뿐만 아니라, HDD를 뛰어넘는 전력 소비, 폼 팩터 및 솔리드 스테이트 신뢰성을 가질 수 있다. 또한, 본 개시의 기술적 사상에 따른 스토리지 시스템 (200)은 종래의 스토리지 시스템보다 적은 비트 에러율(BER)을 달성하여, 기존 ECC 솔루션을 사용하여 SD(Soft-Decision) 디코딩이 가능할 수 있다.
도 3은 본 개시의 예시적 실시예에 따른 저장 장치의 제어 방법의 흐름도이다. 도 3을 참조하면, 제어 방법은 도 1 및 도 2에서 개시된 스토리지 시스템(200)에 의해 수행될 수 있다.
단계 S110에서, 결정부(211)는 저장 장치(2000)의 복수의 메모리 셀들 각각의 레벨에 대한 임계 전압의 범위를 결정한다. 구체적으로, 결정부(211)는 이진 벡터일 수 있는 초기 데이터(DATA)를 수신할 수 있고, 초기 데이터(DATA)를 복수의 메모리 셀들 각각의 레벨에 대한 임계 전압의 범위로 변환하여, 각 레벨 사이의 에러의 양을 동일하도록 밸런싱할 수 있다. 결정부(211)는 복수의 메모리 셀들 각각의 워드 라인과 그 주변 사이의 간섭에 기초하여, 각 메모리 셀의 각 레벨에 대한 임계 전압 (VT)의 범위를 결정할 수 있다.
단계 S120에서, 결정부(211)는 복수의 메모리 셀들의 그룹이 프로그램되는 순서를 결정할 수 있다. 구체적으로, 레인지 결정부(211)는 저장 장치(2000)의 어느 메모리 셀 그룹이 프로그램 단계의 순서로 개별적으로 프로그래밍되는지를 결정하여, 셀-투-셀 커플링(즉, 셀 간 결합)을 최소화한다. 즉, 결정부(211)는 각 비트 라인의 셀 간 간섭, 각 워드 라인의 검증 준비 간섭, 및 z축에서의 필라 간섭에 기초하여 메모리 셀 그룹이 프로그래밍되는 순서를 결정하여, 이러한 간섭들을 완화할 수 있다. 여기에서, z축에서의 필라 간섭은 비트 라인의 셀 간 간섭, 워드 라인의 검증 준비 간섭과 서로 수직한 방향에서의 간섭을 의미할 수 있다.
단계 S130에서, 보정부(212)는 결정부(211)에 의해 결정된 복수의 메모리 셀들 각각의 레벨에 대한 임계 전압의 범위에 대한 통계적 셀 보정을 수행할 수 있다. 구체적으로, 보정부(212)는 저장 장치(2000)로부터 수신된 기준 리드(READ REF)에 기초하여, 저장 장치(2000)의 복수의 메모리 셀들 각각의 레벨의 실제 임계 전압을 결정할 수 있다. 기준 리드(READ REF)는 적어도 하나의 메모리 셀의 적어도 하나의 레벨의 임계 전압 및 각 메모리 셀의 각 레벨에 적용되는 이전 프로그램 펄스의 양의 이동 또는 증가를 나타낼 수 있다. 보정부(212)는 복수의 메모리 셀들 각각의 레벨에 적용되는 프로그램 펄스들 사이에서 적어도 하나의 메모리 셀의 적어도 하나의 레벨의 임계 전압의 음의 이동 또는 감소(즉, 정체율)를 결정할 수 있다. 양의 이동은 기록 펄스 또는 간섭에 의한 것일 수 있고, 음의 이동은 누설 또는 정체 현상에 의한 것일 수 있다. 기준 리드(READ REF)는 복수의 메모리 셀들 각각의 레벨의 실제 임계 전압을 기준값과 비교한 결과인 이진 벡터일 수 있다.
보정부(212)는 저장 장치(2000)의 적어도 하나의 메모리 셀의 적어도 하나의 레벨에 인가되는 결정된 실제 임계 전압, 각 레벨의 임계 전압의 결정된 음의 이동, 및 결정부(2110)에 의해 결정된 각 레벨의 임계 전압의 범위에 기초하여, 실제 임계 전압 각각의 이동을 예측하는 추가 프로그램 펄스를 결정할 수 있다. 이러한 방식으로, 보정부(212)는 메모리 셀의 각 레벨이 각각의 임계 전압의 범위를 초과하도록 추가 프로그램 펄스가 각각의 메모리 셀의 각 레벨에 추가되는지 여부를 결정할 수 있다. 보정부(212)는, 결정부(2110)에 의해 결정되는 메모리 셀들의 그룹들이 프로그래밍되는 순서에 기초하여, 적어도 하나의 메모리 셀의 적어도 하나의 레벨에 적용될 추가 프로그램 펄스를 연산할 수 있다.
단계 S140에서, 암호화부(213)는 검증 신호(VERIFY) 및 보정부(212)에 의해 결정된 각각의 추가 프로그램 펄스에 기초하여, 최소 비트 에러율 (BER)을 달성하기 위해 저장 장치(2000)의 복수의 메모리 셀들 각각의 레벨에 적용될 ISPP 펄스의 진폭을 결정할 수 있다. 검증 신호(VERIFY)는 저장 장치(2000)로부터 수신되고 각 메모리 셀의 각 레벨이 임계 전압의 범위에 도달했는지 여부를 지시할 수 있다.
단계 S150에서, 암호화부(213)는 각 레벨에 인가될, 결정된 ISPP 펄스의 진폭에 대해 ECC 인코딩을 수행할 수 있다. 암호화부(213)는 ECC 인코딩된 ISPP 펄스의 진폭을 저장 장치(2000)의 복수의 메모리 셀들 각각의 레벨에 적용할 수 있다.
단계 S160에서, 베이시안 추정부(214)는 저장 장치(2000)로부터 수신된 데이터에 대해 베이시안 추정(또는, 베이즈 추정)을 수행하여 데이터로부터 노이즈를 제거할 수 있다. 베이시안 추정부(214)는 저장 장치(2000)로부터 수신된 기준 리드(READ REF)에 기초하여 베이시안 추정을 수행할 수 있다.
단계 S170에서, 필터부(215)는 베이시안 추정이 수행된 데이터를 필터링하여 데이터에서 비트 중복을 제거한다. 필터부(215)는, 예를 들어 칼만 필터(Kalman Filter) 또는 위너 필터(Wiener Filter)를 포함 할 수 있지만, 이에 제한되지 않는다. 필터부(215)는 저장 장치(2000)로부터 수신된 기준 리드 (READ REF)에 기초하여 베이시안 추정이 수행되는 데이터를 필터링할 수 있다.
단계 S180에서, ECC 복호화부(216)는 필터링된 데이터에 대한 ECC 디코딩을 수행하여 초기 데이터 (DATA)를 복원할 수 있다.
본 개시의 실시예들에 따르면, 스토리지 시스템 (200)의 제어 방법은 메모리 셀당 많은 레벨 (예를 들어, 64 레벨)의 안정적인 저장을 가능하게 한다. 또한, 스토리지 시스템 (200)의 제어 방법은 종래의 메모리 시스템에 비해 BER을 더 감소시킬 수 있다.
도 4는 본 개시의 예시적 실시예에 따른 스토리지 시스템의 블록도이다. 도 4를 참조하면, 스토리지 시스템(400)은 메모리 컨트롤러(410) 및 저장 장치 (2000)를 포함할 수 있다. 도 4에 도시된 스토리지 시스템(400)은 도 1의 스토리지 시스템(900) 또는, 도 2의 스토리지 시스템(200)과 유사하고, 도 4에 도시된 저장 장치(2000)는 도 1 및 도 2에 도시된 저장 장치(2000)와 유사하고, 도 4에 도시된 메모리 컨트롤러(410)는 도 1에 도시된 메모리 컨트롤러(1000) 또는 도 2에 도시된 메모리 컨트롤러(210)와 유사한 바, 이와 중복되는 설명은 생략하기로 한다.
도 4를 참조하면, 메모리 컨트롤러(410)는 ECC 암호화부(411), 제한 채널 암호화부(412), SSL 필터부(413), 워드 라인 필터부(414), 강화 학습 피드백부(415), 간섭 제거부(416), 제한 채널 복호화부(417), ECC 복호화부(418), 및 뉴럴 네트워크 복호화부(419)를 포함할 수 있다.
ECC 암호화부(411)는 블록 크기 데이터 매트릭스(Block-size Data Matrix;이하, BDM)를 수신하고, 블록 크기 데이터 매트릭스(BDM)에 대해 ECC 인코딩을 수행하여 인코딩된 매트릭스(Encoded Matrix;이하, EM)를 생성할 수 있다.
제한 채널 암호화부(412)는 하나 이상의 펄스로 저장 장치(2000)를 프로그래밍하기 전에 저장 장치(2000)로부터 다음 워드 라인 리드(Next Wordline Read;이하, NWR)를 수신하고, 다음 워드 라인 리드(NWR)에 기초하여 인코딩된 매트릭스 (EM)에 대해 제한 채널 인코딩을 수행하여 제한 벡터(Constrained Vector;이하, CV)를 생성할 수 있다.
SSL 필터부(413)는 워드 라인 필터부(414)로부터 에러 통계 벡터(Error Statistics Vector;이하, ESV)를 수신하고, 강화 학습 피드백부(415)로부터 블록 정책(Block Policy;이하, BP)을 수신할 수 있다.
블록 정책(BP)은 하나 이상의 펄스가 프로그래밍될 수 있는 목표 워드 라인 위치를 포함하는 메모리 블록에 대한 옵션을 포함할 수 있다. 이 때, 메모리 블록은 저장 장치(2000)의 내부에 존재할 수 있다. SSL 필터부(413)는 에러 통계 벡터(ESV) 및 블록 정책(BP)에 기초하여 제한 벡터(CV)에 대해 스트링 선택 라인(String Select Line) 및 블록 신호 필터링을 추가로 수행하여 목표 워드 라인 위치를 포함하는 메모리 블록에 대한 블록 프로그래밍 순서(Block Programming Order;이하, BPO)를 생성할 수 있다.
워드 라인 필터부(414)는 에러 통계 벡터(ESV)를 생성하고 강화 학습 피드백부(415) 로부터 워드 라인 정책(Word Line Policy; 이하, WLP)을 수신한다. 워드 라인 정책(WLP)은 금지 벡터 및 목표 워드 라인 위치에 적용될 펄스에 대한 옵션을 포함할 수 있다. 워드 라인 필터부(414)는 워드 라인 정책(WLP)에 기초하여 블록 프로그래밍 순서(BPO)에 대해 워드 라인 신호 필터링을 수행하여, 금지 벡터 및 펄스를 포함하는 WL 프로그래밍 순서에 대한 워드 라인 프로그래밍 순서(WPO)를 생성할 수 있다. 생성된 워드 라인 프로그래밍 순서(WPO)는 목표 워드 라인 위치에 적용될 수 있다. 워드 라인 필터부(414)는 워드 라인 프로그래밍 순서(WPO)를 저장 장치(2000)에 전송할 수 있다.
저장 장치(2000)는 다음 워드 라인 리드(NWR) 및 검증 워드 라인 임계 전압 벡터 (Verify Wordline Voltage threshold Vector;이하, VWTV)를 생성할 수 있다. 검증 워드 라인 임계 전압 벡터(VWTV)는 저장 장치(2000)에서 각 워드 라인의 임계 전압 지시할 수 있다.
강화 학습 피드백부(415)는 검증 워드 라인 임계 전압 벡터(VWTV)에 기초하여 블록 정책(BP) 및 워드 라인 정책(WLP)을 생성할 수 있다.
간섭 제거부(416)는 저장 장치(2000)로부터 노이즈 멀티 워드 라인 임계 전압 벡터(Noise Multi Worldine Threshold Voltage Vector;, 이하 NMTV)를 수신할 수 있다. 노이즈 멀티 워드 라인 임계 전압 벡터(NMTV)는 저장 장치(2000)에서 각 워드 라인(WL)의 임계 전압을 나타낸다. 간섭 제거부(416) 는 저장 장치(2000)에서 워드 라인(WL)에 대한 노이즈 워드 라인 데이터 벡터(Noise Wordline Data Vector;이하, NWDV)를 생성하기 위해 머신 러닝을 사용하여 노이즈 멀티 워드 라인 임계 전압 벡터(NMTV)로부터의 간섭을 연속적으로 상쇄(또는 제거)할 수 있다. 간섭 제거부(416)는 평균화를 위한 멀티 라운드 요청(Multi Round Requests for Averaging;이하, MRA)을 추가로 생성하고, 저장 장치 (2000)에 전송할 수 있다. 간섭 제거부(416)는 저장 장치(2000) 내의 워드 라인(WL)에 대하여 노이즈 워드 라인 임계 전압 벡터(NWTV)를 생성하고 ECC 복호화부(418)에 전송할 수 있다.
제한 채널 복호화부(417)는 노이즈 워드 라인 데이터 벡터(NWDV)에 대해 제한 채널 디코딩을 수행하여 저장 장치(2000)에서 워드 라인에 대한 복원 워드 라인 데이터 벡터(Recovered Wordline Data Vector; 이하, RWDV)를 생성할 수 있다.
제한 채널 복호화부(417)는 노이즈 워드 라인 임계 전압 벡터에 기초하여 복원된 워드 라인 데이터 벡터(RWDV)에 대해 ECC 디코딩을 수행함으로써, 저장 장치(2000)에서 워드 라인에 대한 워드 라인 데이터 및 임계 벡터들(Wordline data and Threshold Vectors;이하, WTVs)를 생성할 수 있다.
ECC 복호화부(418)는 노이즈 워드 라인 임계 전압 벡터(NWTV)에 기초하여, 복원 워드 라인 데이터 벡터(RWDV)에 대해 ECC 디코딩을 수행하고, 저장 장치(2000)내의 워드 라인(WL)에 대한 워드 라인 데이터 및 임계 벡터(WTV)를 생성할 수 있다.
뉴럴 네트워크 복호화부(419)는 저장 장치(2000)에서 워드 라인에 대한 복원 데이터 벡터(Recovered Data Vector;이하, RDV)를 생성하기 위해 워드 라인 데이터 및 임계 벡터(WTV)에 대한 뉴럴 네트워크(신경망) 디코딩을 수행할 수 있다.
도 5는 본 개시의 예시적 실시예에 따른 스토리지 시스템을 포함하는 컴퓨터 시스템의 블록도이다. 모바일 장치, 데스크탑 컴퓨터 및 서버와 같은 컴퓨터 시스템(3000)은 본 개시의 실시예에 따른 스토리지 시스템(3400)을 이용할 수 있다. 도 5의 스토리지 시스템(3400)은 도 1의 스토리지 시스템(900) 또는 도 2의 스토리지 시스템(200), 도 4의 스토리지 시스템(400)과 유사한 바, 중복되는 설명은 생략하기로 한다.
컴퓨터 시스템(3000)은 중앙 처리 장치(Central Processing Unit; 이하, CPU)(3100), RAM(3200), 사용자 인터페이스(User Interface; 이하, UI)(3300) 및 스토리지 시스템(3400)을 포함 할 수 있으며, 버스(3500)에 전기적으로 연결될 수 있다. 호스트는 컴퓨터 시스템(3000)의 중앙 처리 장치(CPU)(3100), RAM(Random Access Memory)(3200) 및 사용자 인터페이스(UI)(3300)를 포함할 수 있다. 중앙 처리 장치(CPU)(3100)는 전체 컴퓨터 시스템 (3000)을 제어 할 수 있고, 사용자 인터페이스(UI)(3300)를 통해 입력된 사용자 명령에 상응하는 연산을 수행 할 수있다. RAM(3200)은 중앙 처리 장치(CPU)(3100)를 위한 데이터 메모리로서 기능 할 수 있고, 중앙 처리 장치(CPU)(3100)는 스토리지 시스템(3400)과 송/수신하여 데이터를 읽고 쓸 수 있다.
본 개시의 일 실시예에 따르면, 스토리지 시스템(3400)은 메모리 컨트롤러 (3410) 및 저장 장치(3420)를 포함 할 수있다. 메모리 컨트롤러 (3410)는 인코더 및 디코더를 포함 할 수 있고, 저장 장치(3420)는 복수의 메모리 셀들을 포함하는 메모리 셀 어레이를 포함할 수 있다.
본 개시의 실시예들에 따르면, 메모리 컨트롤러 (3410)는 도 1 및 도 2를 참조하여 상술된 메모리 컨트롤러(1000 또는 210)에 의해 구현 될 수 있고, 저장 장치(3420)는 도 1 및 도 2를 참조하여 상술된 저장 장치(2000)에 의해 구현 될 수있다. 도 5에 도시된 저장 장치(3420)는 도 1, 도 2 및/또는 도 4에 도시된 저장 장치(2000)와 유사하고, 도 5에 도시된 메모리 컨트롤러(3410)는 도 1에 도시된 메모리 컨트롤러(1000), 도 2에 도시된 메모리 컨트롤러(210) 및/또는 도 4에 도시된 메모리 컨트롤러(410)와 유사한 바, 이와 중복되는 설명은 생략하기로 한다.
도 6은 본 개시의 예시적 실시예에 따른 메모리 카드의 블록도이다.
도 1 및 도 2를 참조하여 전술한 본 개시의 실시예들에 따른 스토리지 시스템(도 1의 900, 도 2의 200)은 도 6의 메모리 카드(4000)일 수 있다. 예를 들어, 메모리 카드(4000)는 내장 멀티미디어 카드(Embedded Multi Media Card;이하, eMMC) 또는 보안 디지털(Secured Digital, SD) 카드를 포함 할 수 있다.
도 6을 참조하면, 메모리 카드(4000)는 메모리 컨트롤러(4100), 비 휘발성 메모리(4200) 및 포트 영역(4300)을 포함 할 수 있다. 메모리 컨트롤러(4100)는 도 1 및 도 2를 참조하여 상술된 메모리 컨트롤러(도 1의 1000 또는 도 2의 210)에 의해 구현 될 수 있고, 도 6에 도시 된 비휘발성 메모리(4200)는 도 1 및 도 2를 참조하여 상술된 저장 장치(2000)에 의해 구현 될 수 있다.
메모리 컨트롤러 (4100)는 암호화기 및 복호화기를 포함할 수 있다. 암호화기 및 복호화기는 본 발명의 실시 예에 따른 부호화 방법 및 복호화 방법을 수행 할 수 있다. 메모리 컨트롤러(4100)는 미리 설정된 프로토콜에 따라 포트 영역 (4300)을 통해 외부 호스트와 통신할 수 있다. 여기에서, 프로토콜은 eMMC 프로토콜, SD 프로토콜, SATA 프로토콜, SAS 프로토콜 또는 USB 프로토콜 일 수 있다. 불휘발성 메모리(4200)는 전원이 차단되더라도 저장된 데이터를 유지하는 메모리 셀들을 포함 할 수 있다. 예를 들어, 비휘발성 메모리 (4200)는 플래시 메모리, 자기 랜덤 액세스 메모리(Magnetic Random Access Memory, MRAM), 저항 RAM(Resistance RAM), 강유전성 RAM(Ferroelectric RAM) 또는 위상 변화 메모리(Phase Change Memory, PCM)를 포함할 수 있다.
본 개시의 실시예들에 따르면, 메모리 컨트롤러(4100) 및 불휘발성 메모리 (4200)는 도 1 및도 2를 참조하여 전술 한 메모리 컨트롤러(도 1의 1000, 도 2의 210) 및 메모리 장치(2000)에 의해 각각 구현될 수 있다.
도 7은 본 개시의 예시적 실시예에 따른 메모리 시스템을 포함하는 네트워크 시스템의 블록도이다. 도 7을 참조하면, 네트워크 시스템(5000)은 서버 시스템(5100) 및 네트워크(5200)를 통해 연결된 복수의 터미널들(Terminal 1, Terminal 2, Ternimal n)(5300, 5400 및 5500)을 포함 할 수 있다. 서버 시스템(5100)은 네트워크(5200)에 연결된 복수의 터미널들(Terminal 1, Terminal 2, Ternimal n)(5300, 5400, 5500)로부터 수신된 요청을 처리하기 위한 서버(5110) 및 복수의 터미널들(Terminal 1, Terminal 2, Ternimal n)(5300, 5400, 5500)로부터 수신 된 요청에 대응하는 데이터를 저장하는 SSD (5120)를 포함할 수 있다. 여기에서, 복수의 터미널들(Terminal 1, Terminal 2, Ternimal n)(5300, 5400, 5500)은 복수의 단말들일 수 있고, SSD (5120)는 본 발명의 실시 예들에 따른 스토리지 시스템일 수 있다.
본 개시의 실시예들에 따르면, SSD(5120)는 도 1 및 도 2를 참조하여 전술된 스토리지 시스템(도 1의 900 또는 도 2의 200)에 의해 구현될 수 있다.
본 개시의의 기술적 사상에 따른 스토리지 시스템(5100)은 다양한 패키지를 통해 실장될 수 있다. 예를 들어, 본 개시의 실시예들에 따른 스토리지 시스템은 패키지 온 패키지(PoP), 볼 그리드 어레이(BGA), 칩 스케일 패키지(CSP), 플라스틱 리드 칩 캐리어(PLCC), 플라스틱 듀얼 인-라인 패키지 (PDIP), 와플 팩 다이, 웨이퍼 형태 다이, 칩 온 보드(COB), 세라믹 듀얼 인-라인 패키지(CERDIP), 플라스틱 메트릭 쿼드 팩(MQFP), 박형 쿼드 플랫 팩(TQFP), 소형 외곽선(SOIC), 수축 소형 외곽선 패키지(SSOP), 박형 소형 외곽선(TSOP), 시스템 패키지(SIP), 멀티 칩 패키지(MCP), 웨이퍼 레벨 가공 패키지(WFP), 웨이퍼 레벨 처리 스택 패키지(WSP) 등의 패키지를 통해 실장될 수 있으나, 이에 한정되지는 않는다.
본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
Claims (10)
- 워드 라인 및 비트 라인과 연결되는 복수의 메모리 셀들을 포함하는 저장 장치; 및
메모리 컨트롤러를 포함하고,
상기 메모리 컨트롤러는,
상기 저장 장치에서의 간섭과 초기 데이터에 기초하여 상기 복수의 메모리 셀들 각각의 레벨에 대한 임계 전압 범위를 결정하고, 상기 간섭에 기초하여 상기 복수의 메모리 셀들의 그룹들이 프로그래밍되는 순서를 결정하는 결정부;
상기 프로그래밍되는 순서 및 상기 복수의 메모리 셀들 각각의 레벨에 대한 기준 정보에 기초하여 상기 임계 전압 범위에 대한 통계적 셀 보정을 수행하는 보정부; 및
수행된 통계적 셀 보정 결과에 기초하여 상기 복수의 메모리 셀들 각각의 레벨에 인가되는 증가형 스텝 펄스 프로그램(ISPP) 펄스의 진폭을 결정하고, 상기 ISPP 펄스의 진폭에 대해 오류 정정 코드(ECC) 암호화를 수행하고, 상기 ECC 암호화가 수행된 상기 ISPP 펄스의 진폭을 상기 복수의 메모리 셀들 각각의 레벨에 인가하는 암호화부를 포함하는 고밀도 스토리지 시스템. - 제1항에 있어서,
상기 메모리 컨트롤러는,
상기 저장 장치로부터 수신한 데이터에 대해 베이시안 추정을 수행하는 베이시안 추정부;
상기 베이시안 추정이 수행된 데이터를 필터링하는 필터부; 및
상기 초기 데이터를 복원하기 위해 상기 필터링된 데이터에 대해 ECC 복호화를 수행하는 복호화부를 더 포함하는 것을 특징으로 하는 고밀도 스토리지 시스템. - 제2항에 있어서,
상기 필터부는 칼만 필터(Kalman Filter) 또는 위너 필터(Wiener Filter)를 포함하는 것을 특징으로 하는 고밀도 스토리지 시스템. - 제1항에 있어서,
상기 보정부는,
상기 기준 정보에 기초하여 상기 복수의 메모리 셀들 각각의 레벨에 대한 실제 임계 전압을 결정하고,
상기 실제 임계 전압에 기초하여 적어도 하나의 상기 메모리 셀의 적어도 하나의 레벨의 임계 전압 하락을 결정하고,
상기 통계적 셀 보정의 결과로서 상기 실제 임계 전압, 상기 임계 전압 범위 및 상기 프로그래밍되는 순서에 기초하여, 상기 임계 전압 하락이 결정된 적어도 하나의 임계 전압 레벨에 적용될 추가 프로그램 펄스를 결정하는 것을 더 포함하는 것을 특징으로 하는 고밀도 스토리지 시스템. - 제1항에 있어서,
상기 암호화부는,
상기 복수의 메모리 셀들 각각의 레벨이 상기 임계 전압 범위에 도달하는지를 나타내는 검증 신호에 기초하여, 상기 복수의 메모리 셀들 각각의 레벨에 인가되는 상기 ISPP 펄스의 진폭을 결정하는 것을 더 포함하는 것을 특징으로 하는 고밀도 스토리지 시스템. - 제1항에 있어서,
상기 간섭은,
적어도 하나의 미리 결정된 값이거나,
상기 비트 라인, 상기 워드 라인, 및 상기 비트 라인과 상기 워드 라인과 서로 수직한 z축 중 어느 하나, 또는 각각의 조합에 대한 머신 러닝을 통해 결정되는 것을 특징으로 하는 고밀도 스토리지 시스템. - 제1항에 있어서,
상기 메모리 컨트롤러는 주기적 데이터 리프레시를 수행하도록 구성되고,
상기 고밀도 스토리지 시스템은 전원에 상시 연결된 것을 특징으로 하는 고밀도 스토리지 시스템. - 제1항에 있어서,
상기 저장 장치로부터 수신되는 검증 워드 라인 임계 전압 벡터에 기초하여, 상기 복수의 메모리 셀들 각각의 레벨에 적용되는 상기 ISPP 펄스의 진폭을 결정하기 위해 사용될 블록 정책 및 워드 라인 정책을 생성하는 블록 강화 학습 피드백부;
상기 저장 장치로부터 수신되는 노이즈 멀티 워드 라인 임계 전압 벡터로부터의 간섭을 머신 러닝을 사용하여 연속적으로 상쇄하고, 상기 워드 라인에 대한 노이즈 워드 라인 데이터 벡터를 생성하는 간섭 제거부; 및
상기 노이즈 워드 라인 데이터 벡터에 기초하여 생성된 워드 라인 데이터 벡터, 상기 검증 워드 라인 임계 전압 벡터 및 상기 노이즈 멀티 워드 라인 임계 전압 벡터에 대해 뉴럴 네트워크 복호화를 수행하고, 상기 워드 라인에 대한 복원 데이터 벡터를 생성하는 뉴럴 네트워크 복호화부를 더 포함하는 것을 특징으로 하는 고밀도 스토리지 시스템. - 고밀도 스토리지 시스템을 제어함에 있어서,
복수의 메모리 셀들을 포함하는 저장 장치의 간섭과 초기 데이터에 기초하여, 상기 복수의 메모리 셀들 각각의 레벨에 대한 임계 전압의 범위를 결정하는 단계;
상기 간섭에 기초하여, 상기 복수의 메모리 셀들의 그룹들이 프로그래밍되는 순서를 결정하는 단계;
상기 프로그래밍되는 순서 및 상기 복수의 메모리 셀들 각각의 레벨에 대한 기준 정보에 기초하여, 상기 복수의 메모리 셀들 각각의 레벨에 대한 임계 전압 범위에 대해 통계적 셀 보정을 수행하는 단계;
수행된 통계적 셀 보정 결과에 기초하여, 상기 복수의 메모리 셀들 각각의 레벨에 인가되는 증가형 스텝 펄스 프로그램(ISPP) 펄스의 진폭을 결정하는 단계;
상기 ISPP 펄스의 진폭에 대해 오류 정정 코드(ECC) 암호화를 수행하는 단계; 및
상기 ECC 암호화가 수행된 ISPP 펄스의 진폭을 상기 복수의 메모리 셀들 각각의 레벨에 인가하는 단계를 포함하는 고밀도 스토리지 시스템의 제어 방법. - 제9항에 있어서,
상기 저장 장치로부터 수신한 데이터에 대해 베이시안 추정을 수행하는 단계;
상기 베이시안 추정이 수행된 데이터를 필터링하는 단계; 및
상기 초기 데이터를 복원하기 위해 상기 필터링된 데이터에 대해 ECC 복호화를 수행하는 단계를 더 포함하고,
상기 ECC 복호화를 수행하는 단계는,
상기 기준 정보에 기초하여, 상기 복수의 메모리 셀들 각각의 레벨에 대한 실제 임계 전압을 결정하는 단계;
상기 실제 임계 전압에 기초하여, 적어도 하나의 상기 메모리 셀의 적어도 하나의 레벨의 임계 전압 하락을 결정하는 단계; 및
상기 통계적 셀 보정의 결과로서 상기 실제 임계 전압, 상기 임계 전압 범위 및 상기 프로그래밍되는 순서에 기초하여, 상기 임계 전압 하락이 결정된 적어도 하나의 임계 전압 레벨에 적용될 추가 프로그램 펄스를 결정하는 단계를 더 포함하는 것을 특징으로 하는 고밀도 스토리지 시스템의 제어 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/206,357 US10573390B1 (en) | 2018-11-30 | 2018-11-30 | High-density storage system |
US16/206,357 | 2018-11-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20200066573A true KR20200066573A (ko) | 2020-06-10 |
Family
ID=69590862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190157674A KR20200066573A (ko) | 2018-11-30 | 2019-11-29 | 고밀도 스토리지 시스템 및 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10573390B1 (ko) |
KR (1) | KR20200066573A (ko) |
CN (1) | CN111261212B (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021246633A1 (ko) | 2020-06-02 | 2021-12-09 | 주식회사 엘지에너지솔루션 | 무선 통신을 위한 최적화 구조를 구비한 배터리 팩 및 이를 포함하는 자동차 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11502702B2 (en) * | 2020-06-01 | 2022-11-15 | Western Digital Technologies, Inc. | Read threshold calibration using multiple decoders |
CN112053726B (zh) * | 2020-09-09 | 2022-04-12 | 哈尔滨工业大学 | 一种基于Er态阈值电压分布的闪存误擦除数据恢复方法 |
KR20220105940A (ko) | 2021-01-21 | 2022-07-28 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 이를 포함하는 메모리 시스템 및 비휘발성 메모리 장치의 동작 방법 |
US11791840B1 (en) | 2022-04-14 | 2023-10-17 | Samsung Electronics Co., Ltd. | Hard decision decoding of non-volatile memory using machine learning |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7639542B2 (en) * | 2006-05-15 | 2009-12-29 | Apple Inc. | Maintenance operations for multi-level data storage cells |
US7633798B2 (en) * | 2007-11-21 | 2009-12-15 | Micron Technology, Inc. | M+N bit programming and M+L bit read for M bit memory cells |
DE102010037579B4 (de) * | 2009-09-25 | 2023-01-19 | Samsung Electronics Co., Ltd. | Nichtflüchtige Speichervorrichtung und -system sowie Verfahren zum Programmieren einer nichtflüchtigen Speichervorrichtung |
KR101634363B1 (ko) * | 2009-10-05 | 2016-06-29 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 프로그램 방법 |
KR20110131648A (ko) * | 2010-05-31 | 2011-12-07 | 삼성전자주식회사 | 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템 및 메모리 카드 및 그것의 프로그램 방법 |
US9319073B2 (en) * | 2014-02-11 | 2016-04-19 | Seagate Technology Llc | Mitigation of write errors in multi-level cell flash memory through adaptive error correction code decoding |
US10417087B2 (en) * | 2014-07-22 | 2019-09-17 | Ngd Systems, Inc. | System and method for adaptive multiple read of NAND flash |
-
2018
- 2018-11-30 US US16/206,357 patent/US10573390B1/en active Active
-
2019
- 2019-07-29 CN CN201910688880.9A patent/CN111261212B/zh active Active
- 2019-11-29 KR KR1020190157674A patent/KR20200066573A/ko active Search and Examination
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021246633A1 (ko) | 2020-06-02 | 2021-12-09 | 주식회사 엘지에너지솔루션 | 무선 통신을 위한 최적화 구조를 구비한 배터리 팩 및 이를 포함하는 자동차 |
Also Published As
Publication number | Publication date |
---|---|
CN111261212B (zh) | 2023-11-24 |
CN111261212A (zh) | 2020-06-09 |
US10573390B1 (en) | 2020-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20200066573A (ko) | 고밀도 스토리지 시스템 및 방법 | |
US9406390B2 (en) | Storage device and reliability verification method | |
KR102025193B1 (ko) | 메모리 컨트롤러 및 그것의 동작 방법, 메모리 컨트롤러를 포함하는 메모리 시스템 | |
KR101518033B1 (ko) | 멀티-레벨 비휘발성 메모리 장치, 상기 장치를 포함하는 메모리 시스템 및 그 동작 방법 | |
US9281068B2 (en) | Nonvolatile memory and related reprogramming method | |
KR102005888B1 (ko) | 불휘발성 메모리 장치 및 그것의 읽기 방법 | |
US20170148525A1 (en) | Method and System For Adaptively Adjusting a Verify Voltage to Reduce Storage Raw Bit Error Rate | |
JP2016506590A (ja) | データストレージシステムのための対数尤度比及び一括対数尤度比生成 | |
US10732856B2 (en) | Erase health metric to rank memory portions | |
US20140211565A1 (en) | Methods of programming multi-level cell nonvolatile memory devices and devices so operating | |
US9779823B2 (en) | Secure erase of non-volatile memory | |
US10324785B2 (en) | Decoder using low-density parity-check code and memory controller including the same | |
KR20090080634A (ko) | 메모리 프로그래밍 장치 및 방법 | |
US9927987B2 (en) | Adaptive multi-phase erase | |
KR20230048753A (ko) | 비휘발성 메모리 장치에 데이터를 프로그램하는 장치 및 방법 | |
CN117437957A (zh) | 存储器***、存储器装置和操作存储器装置的方法 | |
KR102375060B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN115249506A (zh) | 基于经编程存储器单元的数目的近接干扰修复 | |
KR20230000724A (ko) | 비휘발성 메모리 장치에 데이터를 프로그램하기 위한 장치 및 방법 | |
CN112151100A (zh) | 控制器、存储器***及其操作方法 | |
KR20230036351A (ko) | 비휘발성 메모리 장치에 데이터를 프로그램하는 장치 및 방법 | |
KR20220139081A (ko) | 비휘발성 메모리 장치에 데이터를 프로그램 및 검증하기 위한 장치 및 방법 | |
KR20230075645A (ko) | 반도체 장치 내 신호 간섭을 줄이기 위한 장치 및 방법 | |
KR20230017450A (ko) | 비휘발성 메모리 장치에 데이터를 프로그램하기 위한 장치 및 방법 | |
KR20230020787A (ko) | 비휘발성 메모리 장치에 데이터를 프로그램하기 위한 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |