KR102233808B1 - 저장 장치 및 그것의 테이블 관리 방법 - Google Patents
저장 장치 및 그것의 테이블 관리 방법 Download PDFInfo
- Publication number
- KR102233808B1 KR102233808B1 KR1020140030279A KR20140030279A KR102233808B1 KR 102233808 B1 KR102233808 B1 KR 102233808B1 KR 1020140030279 A KR1020140030279 A KR 1020140030279A KR 20140030279 A KR20140030279 A KR 20140030279A KR 102233808 B1 KR102233808 B1 KR 102233808B1
- Authority
- KR
- South Korea
- Prior art keywords
- page
- time
- block
- read
- nonvolatile memory
- 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/26—Sensing or reading circuits; Data output 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/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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Read Only Memory (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
본 발명에 따른 저장 장치의 테이블 관리 방법에 있어서: 페이지와 관련된 테이블을 복구할 필요가 있는 지를 판별하는 단계; 상기 테이블을 복구할 필요가 있을 때 블록 스캔 동작을 수행하는 단계; 상기 블록 스캔 동작시 각 페이지로부터 읽혀진 시간 차이를 이용하여 상기 테이블을 복구하는 단계; 및 상기 적어도 하나의 비휘발성 메모리 장치에 상기 복구된 테이블을 업데이트하는 단계를 포함하고, 상기 시간 차이는 이전 페이지의 프로그램 시각으로부터 현재 페이지가 프로그램 될 때까지의 경과 시간이다.
Description
본 발명은 저장 장치 및 그것의 테이블 관리 방법에 관한 것이다.
반도체 메모리 장치는 크게 휘발성 반도체 메모리 장치와 비휘발성 반도체 메모리 장치로 나누어진다. 비휘발성 반도체 메모리 장치는 전원이 차단되어도 데이터를 저장할 수 있다. 비휘발성 메모리에 저장되는 데이터는 메모리 제조 기술에 따라 영구적이거나 재프로그램 가능하다. 비휘발성 반도체 메모리 장치는 컴퓨터, 항공 전자 공학, 통신, 및 소비자 전자 기술 산업과 같은 넓은 범위의 응용에서 사용자 데이터 저장, 프로그램 및 마이크로 코드의 저장을 위해서 사용된다.
본 발명의 목적은 테이블 복구 시간을 단축하는 저장 장치 및 그것의 테이블 관리 방법을 제공하는 데 있다.
본 발명의 실시 예에 따른 기판에 수직한 방향으로 형성되고 비트라인들과 공통 소스 라인 사이에 연결된 복수의 스트링들을 포함하는 적어도 하나의 비휘발성 메모리 장치; 및 상기 적어도 하나의 비휘발성 메모리 장치를 제어하는 메모리 제어기를 포함하는 저장 장치의 테이블 관리 방법에 있어서: 페이지와 관련된 테이블을 복구할 필요가 있는 지를 판별하는 단계; 상기 테이블을 복구할 필요가 있을 때 블록 스캔 동작을 수행하는 단계; 상기 블록 스캔 동작시 각 페이지로부터 읽혀진 시간 차이를 이용하여 상기 테이블을 복구하는 단계; 및 상기 적어도 하나의 비휘발성 메모리 장치에 상기 복구된 테이블을 업데이트하는 단계를 포함하고, 상기 시간 차이는 이전 페이지의 프로그램 시각으로부터 현재 페이지가 프로그램 될 때까지의 경과 시간이다.
실시 예에 있어서, 상기 저장 장치가 파워-오프 된 후 파워-온 될 때 상기 테이블 복구가 수행된다.
실시 예에 있어서, 사용자의 요청에 따라 상기 테이블 복구가 수행된다.
실시 에에 있어서, 상기 테이블은 페이지에 관련된 논리 어드레스와 물리 어드레스 사이의 맵핑 정보를 저장하는 맵 테이블 및 페이지의 프로그램 시각을 저장하는 타임 테이블을 포함한다.
실시 예에 있어서, 어느 하나의 페이지에 대한 프로그램 동작시 상기 어느 하나의 페이지에 대한 논리 어드레스 및 이전 페이지의 프로그램 시각으로부터 상기 어느 하나의 페이지가 프로그램될 때까지의 시간 차이가 함께 저장된다.
실시 예에 있어서, 타이머로부터 발생된 현재 시각으로 상기 이전 페이지의 프로그램 시각을 뺌으로써 상기 시간 차이가 계산된다.
실시 예에 있어서, 상기 블록 스캔 동작을 수행하는 단계는, 로그 블록의 어느 하나의 페이지가 프리 페이지인 지를 판별하는 단계를 더 포함한다.
실시 예에 있어서, 상기 블록 스캔 동작을 수행하는 단계는, 상기 로그 블록의 어느 하나의 페이지가 상기 프리 페이지가 아닐 때, 상기 어느 하나의 페이지에 대한 읽기 레벨을 탐색하는 단계를 더 포함한다.
실시 예에 있어서, 상기 블록 스캔 동작을 수행하는 단계는, 상기 탐색된 읽기 레벨과 상기 어느 하나의 페이지로부터 읽혀진 시간 차이를 이용하여 다음 페이지의 읽기 레벨을 결정하는 단계; 및 상기 결정된 읽기 레벨을 근거로 하여 상기 다음 페이지를 읽는 단계를 더 포함한다.
실시 예에 있어서, 상기 블록 스캔 동작의 진행 방향은 프로그램 동작 진행 방향과 반대이다.
본 발명의 실시 예에 따른 저장 장치는, 기판에 수직한 방향으로 형성되고 비트라인들과 공통 소스 라인 사이에 연결된 복수의 스트링들을 갖는 복수의 메모리 블록들을 포함하고, 상기 복수의 메모리 블록들 각각은 복수의 페이지들을 포함하고, 상기 복수의 페이지들 각각은 프로그램 동작시 논리 어드레스 및 이전 페이지의 프로그램 시각으로부터 경과된 시간 차이를 저장하고. 논리 어드레스와 물리 어드레스를 맵핑하는 맵 테이블 및 페이지의 프로그램 시각을 저장하는 타임 테이블을 저장하는 적어도 하나의 비휘발성 메모리 장치; 및 상기 적어도 하나의 비휘발성 메모리 장치를 제어하는 메모리 제어기를 포함하고, 상기 메모리 제어기는 현재 시각을 발생하는 타이머; 및 상기 맵 테이블 및 상기 타임 테이블을 관리하는 테이블 매니저를 포함하고, 상기 테이블 매니저는 상기 맵 테이블 혹은 상기 타임 테이블을 주기적으로 업데이트 하거나 블록 스캔 동작에 의한 복구 업데이트하고, 상기 블록 스캔 동작시 상기 시간 차이를 이용하여 읽기 레벨을 탐색한다.
실시 예에 있어서, 상기 타이머는 소프트웨어적으로, 하드웨어적으로 혹은 펌웨어적으로 구현된다.
실시 예에 있어서, 상기 저장 장치가 파워-오프 된 후 파워-온 될 때, 로그 블록에 대한 블록 스캔 동작을 통하여 읽혀진 논리 어드레스들 및 시간 차이들을 이용하여 상기 맵 테이블 및 상기 타임 테이블이 복구된다.
실시 예에 있어서, 어느 하나의 페이지에 대한 프로그램 동작시 입력된 논리 어드레스 및 시간 차이를 상기 논리 어드레스에 대응하는 상기 어느 하나의 페이지의 스페어 영역에 저장한다.
실시 예에 있어서, 상기 타임 테이블을 이용하여 읽기 레벨을 계산하고, 상기 계산된 읽기 레벨을 근거로 하여 어느 하나의 페이지에 대한 읽기 동작이 수행된다.
상술한 바와 같이 본 발명에 따른 저장 장치 및 그것의 테이블 관리 방법은, 페이지의 프로그램 동작시 이전 페이지의 프로그램 시간 차이를 저장하고, 이러한 프로그램 시간 차이를 이용하여 빠르게 테이블을 복구할 수 있다.
도 1은 본 발명의 개념을 설명하기 위한 저장 장치를 예시적으로 보여주는 도면이다.
도 2는 본 발명의 실시 예에 따른 비휘발성 메모리 장치를 예시적으로 보여주는 도면이다.
도 3은 도 2에 도시된 메모리 블록(BLK)을 예시적으로 보여주는 도면이다. 도 3을 참조하면, 기판(111) 위에 4개의 서브 블록들이 형성된다.
도 4는 도 3에 도시된 메모리 블록의 단면도의 일부(I-I')를 예시적으로 보여주는 도면이다.
도 5는 도 3에 도시된 메모리 블록(BLK)의 등가 회로도를 예시적으로 보여주는 도면이다.
도 6은 본 발명의 다른 실시 예에 따른 메모리 블록을 예시적으로 보여주는 도면이다.
도 7은 본 발명의 실시 예에 따른 저장 장치의 테이블 관리 방법을 예시적으로 보여주는 흐름도이다.
도 8은 본 발명의 실시 예에 따른 저장 장치의 블록 스캔 동작 방법을 예시적으로 보여주는 흐름도이다.
도 9는 본 발명의 실시 예에 따른 저장 장치의 프로그램 방법을 예시적으로 보여주는 흐름도이다.
도 10은 본 발명의 실시 예에 따른 저장 장치의 읽기 방법을 예시적으로 보여주는 흐름도이다.
도 11은 본 발명의 다른 실시 예에 따른 저장 장치의 읽기 방법을 예시적으로 보여주는 흐름도이다.
도 12는 본 발명의 실시 예에 따른 저장 장치를 예시적으로 보여주는 블록도이다.
도 13 내지 도 16은 본 발명의 응용 예를 보여주는 도면들이다.
도 2는 본 발명의 실시 예에 따른 비휘발성 메모리 장치를 예시적으로 보여주는 도면이다.
도 3은 도 2에 도시된 메모리 블록(BLK)을 예시적으로 보여주는 도면이다. 도 3을 참조하면, 기판(111) 위에 4개의 서브 블록들이 형성된다.
도 4는 도 3에 도시된 메모리 블록의 단면도의 일부(I-I')를 예시적으로 보여주는 도면이다.
도 5는 도 3에 도시된 메모리 블록(BLK)의 등가 회로도를 예시적으로 보여주는 도면이다.
도 6은 본 발명의 다른 실시 예에 따른 메모리 블록을 예시적으로 보여주는 도면이다.
도 7은 본 발명의 실시 예에 따른 저장 장치의 테이블 관리 방법을 예시적으로 보여주는 흐름도이다.
도 8은 본 발명의 실시 예에 따른 저장 장치의 블록 스캔 동작 방법을 예시적으로 보여주는 흐름도이다.
도 9는 본 발명의 실시 예에 따른 저장 장치의 프로그램 방법을 예시적으로 보여주는 흐름도이다.
도 10은 본 발명의 실시 예에 따른 저장 장치의 읽기 방법을 예시적으로 보여주는 흐름도이다.
도 11은 본 발명의 다른 실시 예에 따른 저장 장치의 읽기 방법을 예시적으로 보여주는 흐름도이다.
도 12는 본 발명의 실시 예에 따른 저장 장치를 예시적으로 보여주는 블록도이다.
도 13 내지 도 16은 본 발명의 응용 예를 보여주는 도면들이다.
아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.
도 1은 본 발명의 개념을 설명하기 위한 저장 장치(10)를 예시적으로 보여주는 도면이다. 도 1을 참조하면, 저장 장치(10)는 적어도 하나의 비휘발성 메모리 장치(100) 및 그것을 제어하는 메모리 제어기(200)를 포함한다.
비휘발성 메모리 장치(100)는 낸드 플래시 메모리(NAND Flash Memory), 수직형 낸드 플래시 메모리(Vertical NAND; VNAND), 노아 플래시 메모리(NOR Flash Memory), 저항성 램(Resistive Random Access Memory: RRAM), 상변화 메모리(Phase-Change Memory: PRAM), 자기저항 메모리(Magnetoresistive Random Access Memory: MRAM), 강유전체 메모리(Ferroelectric Random Access Memory: FRAM), 스핀주입 자화반전 메모리(Spin Transfer Torque Random Access Memory: STT-RAM) 등이 될 수 있다. 또한, 비휘발성 메모리 장치(100)는 3차원 어레이 구조(three-dimensional array structure)로 구현될 수 있다. 본 발명은 전하 저장층이 전도성 부유 게이트로 구성된 플래시 메모리 장치는 물론, 전하 저장층이 절연막으로 구성된 차지 트랩형 플래시(charge trap flash; CTF)에도 모두 적용 가능하다. 아래에서는 설명의 편의를 위하여 비휘발성 메모리 장치(100)가 수직형 낸드 플래시 메모리 장치(VNAND)라고 하겠다.
비휘발성 메모리 장치(100)는 저장 장치(100)를 관리하기 위한 맵 테이블(101) 및 타임 테이블(102)을 저장한다. 맵 테이블(101)은 논리 어드레스에 대응하는 물리 어드레스에 관련된 맵핑 정보를 저장한다. 타임 테이블(102)은 프로그램 동작이 수행된 페이지의 어드레스 및 대응하는 페이지에 프로그램 동작이 수행된 프로그램 시각(절대적인 시간)을 포함할 수 있다. 저장 장치(10)의 파워-온 동작시, 비휘발성 메모리 장치(100)의 맵 테이블(101) 및 타임 테이블(102)은 메모리 제어기(200)의 버퍼 메모리(도시되지 않음, 예를 들어, 램)로 로딩 된다.
비휘발성 메모리 장치(100)는 복수의 메모리 블록들(BLK1 ~ BLKz, z는 2 이상의 정수)을 포함한다. 메모리 블록들(BLK1 ~ BLKz) 각각은 복수의 페이지들(예를 들어, Page 1 ~ Page m, m은 2 이상의 정수)로 구성된다. 프로그램된 페이지들(Page 1 ~ Page m) 각각은 논리 어드레스 및 프로그램된 이전 페이지의 프로그램 시각으로부터 경과된 시간 차이(time difference; TD1 ~ TDm)를 저장할 수 있다.
메모리 제어기(200)는 프로그램 동작시 현재 시각 및 타임 테이블(102)로부터 읽혀진 이전 페이지의 프로그램 시각을 이용하여, 이전 페이지의 프로그램 시각으로부터 경과된 시간 차이를 계산하고, 계산된 시간 차이를 대응하는 페이지에 저장하도록 비휘발성 메모리 장치(100)를 제어할 수 있다. 예를 들어, 계산된 시간 차이는 프로그램될 페이지의 스페어 영역에 저장된다. 즉, 메모리 제어기(200)는 프로그램 동작시 스페어 영역에 저장될 시간 차이를 계산할 수 있다.
또한, 메모리 제어기(200)는 읽기 동작시 현재 시각 및 타임 테이블(102)로부터 읽혀진 페이지의 프로그램 시각을 이용하여 페이지의 최적의 읽기 레벨을 결정하고, 결정된 최적의 읽기 레벨을 근거로 페이지에 대한 읽기 동작을 수행할 수 있다.
또한, 메모리 제어기(200)는 비정상적인 파워-오프 이후에 파워-온 될 때 저장 장치(10)에 대한 정상적인 읽기/쓰기 동작을 수행할 수 있도록 로그 블록(log block)에 대한 메타 데이터 복구 동작을 수행할 수 있다. 여기서 로그 블록은 프로그램 동작이 우선적으로 수행되는 메모리 블록으로 메모리 블록들(BLK1 ~ BLKz) 중 적어도 하나일 수 있다. 이러한 메타 데이터는 맵 테이블(101)에 저장되는 정보와 타임 테이블(102)에 저장되는 정보를 포함할 수 있다.
메타 데이터 복구 동작은 로그 블록의 페이지들(Page 1 ~ Page m)에 대한 블록 스캔 동작에 의해 수행될 수 있다. 블록 스캔 동작은 페이지들(Page 1 ~ Page m)의 스페어 영역들에 저장된 부가 정보를 읽는다. 읽혀진 부가 정보를 근거로 하여 메타 데이터가 복구할 수 있다. 예를 들어, 페이지들(Page 1 ~ Page m)로부터 읽혀진 논리 어드레스들을 이용하여 맵 테이블(101)이 복구될 수 있고, 페이지들(Page 1 ~ Page m)로부터 읽혀진 시간 차이들(TD1 ~ TDm)을 이용하여 타임 테이블(102)이 복구될 수 있다.
특히, 메모리 제어기(200)는 타이머(210) 및 테이블 매니저(220)를 포함한다. 타이머(210)는 외부로부터 시간 정보를 입력 받고, 클록을 카운팅 함으로써 현재 시각을 발생할 수 있다. 여기서 클록은 외부(호스트)에서 입력되거나 내부에서 발생 될 수 있다. 타이머(210)는 하드웨어/소프트웨어/펌웨어적으로 구현될 수 있다. 다른 실시 예에 있어서, 타이머(210)는 내부의 오실레이터로부터 발생되는 클록을 카운팅함으로써, 현재 시각을 발생할 수 있다.
테이블 매니저(220)는 맵 테이블(101) 및/혹은 타임 테이블(102)의 업데이트를 관리한다. 테이블 매니저(220)는 파워-온 상태에서 맵 테이블(101) 및 타임 테이블(102)을 주기적으로 업데이트(periodic update) 할 수 있다. 다른 실시 예에 있어서, 테이블 매니저(220)는 파워-온 상태이지만 파워-오프가 예측될 때 사용자의 요청 혹은 내부적인 판별에 따라 맵 테이블(101) 및/혹은 타임 테이블(102)을 비주기적으로 업데이트(non-periodic update) 할 수도 있다.
테이블 매니저(220)는 파워-오프 된 후 파워-온 될 때 메타 데이터가 업데이트 되지 못한 로그 블록(예를 들어, BLK1)과 관련하여 블록 스캔 동작(BLK Scan)을 수행하고, 맵 테이블(101) 및/혹은 타임 테이블(102)을 복구할 수 있다. 특히, 블록 스캔 동작에서 어느 하나의 페이지의 읽혀진 시간 차이(예를 들어, TD1 ~ TDm)을 이용하여 다음 페이지의 최적의 읽기 레벨을 빠르게 결정함으로써, 블록 스캔 동작 시간이 대폭적으로 줄일 수 있다.
테이블 매니저(220)는 페이지들(Page1 ~ Page m)의 시간 차이들(TD1 ~ TDm)과 이전 페이지의 프로그램 시각을 이용하여 페이지들(Page 1~ Page m) 각각의 프로그램 시각을 계산하고, 계산된 각 프로그램 시각과 대응하는 페이지의 어드레스를 타임 테이블(102)에 업데이트 할 수 있다.
실시 예에 있어서, 테이블 매니저(220)는 하드웨어/소프트웨어/펌웨어적으로 구현될 수 있다.
실시 예에 있어서, 페이지들(Page1 ~ Page m)에 대한 블록 스캔 동작 순서는 프로그램 동작 순서와 정반대일 수 있다. 하지만 본 발명이 여기에 제한되지 않을 것이다. 페이지들(Page1 ~ Page m)에 대한 블록 스캔 동작 순서는 프로그램 동작 순서와 동일할 수도 있다.
일반적인 저장 장치는, 메타 데이터가 업데이트되지 않은 상태에서 파워-오프가 발생된 로그 블록에 대하여 블록 스캔 동작을 통하여 메타 데이터를 복구 및 업데이트 한다. 하지만 일반적인 블록 스캔 동작시 각 페이지의 최적의 읽기 레벨을 찾는 위하여 복수의 스캔 읽기 동작을 수행하기 때문에 상대적으로 긴 시간이 요구된다.
반면에, 본 발명의 실시 예에 따른 저장 장치(10)는 블록 스캔 동작시 이전 페이지의 프로그램 시각으로부터 경과된 프로그램 시간 차이들(TD1 ~ TDm)을 이용하여 종래의 그것과 비교하여 쉽고 빠르게 메타 데이터를 복구할 수 있다.
특히, 블록 스캔 동작 시간을 종래의 그것과 비교하여 대폭적으로 줄일 수 있다. 일반적인 블록 스캔 동작은 각 페이지 별로 복수의 스캔 읽기 동작을 수행하여 읽기 레벨을 찾아야 한다. 하지만, 본 발명의 경우는 프리 페이지(free page) 이후 프로그램된 첫 페이지에 대하여 복수의 스캔 읽기 동작을 수행하여 읽기 레벨만 찾으면, 그 다음 페이지부터 읽혀진 시간 차이를 이용하여 최적의 읽기 레벨을 예측함으로써 복수의 스캔 읽기 동작을 생략하면서 블록 스캔 동작을 수행할 수 있다.
도 2는 본 발명의 실시 예에 따른 비휘발성 메모리 장치를 예시적으로 보여주는 도면이다. 도 2를 참조하면, 비휘발성 메모리 장치(100)는 메모리 셀 어레이(110), 어드레스 디코더(120), 전압 발생 회로(130), 입출력 회로(140) 및 제어 로직(150)을 포함한다.
메모리 셀 어레이(110)는 복수의 메모리 블록들(BLK1 ~ BLKz)을 포함한다. 메모리 블록들(BLK1 ~ BLKz) 각각은 워드라인들(WLs), 적어도 하나의 스트링 선택 라인(SSL) 및 적어도 하나의 접지 선택 라인(GSL)을 통해 어드레스 디코더(120)에 연결되고, 비트라인들(BLs)을 통해 입출력 회로(140)에 연결된다. 실시 예에 있어서, 워드라인들(WLs)은 적층된 판 형태 구조일 수 있다.
복수의 메모리 블록들(BLK1 ~ BLKz) 각각은 기판 상에서 제 1 방향 및 제 2 방향(제 1 방향과 다름)에 따라 배열되고, 제 3 방향(제 1 방향과 제 2 방향으로 형성된 평면에 수직한 방향)으로 배열되는 3차원 구조의 복수의 스트링들(strings)을 포함한다. 여기서 복수의 스트링들 각각은, 비트라인과 공통 소스 라인(common source line, CSL) 사이에서 직렬 연결된 적어도 하나의 스트링 선택 트랜지스터, 복수의 메모리 셀들, 적어도 하나의 접지 선택 트랜지스터들로 구성된다. 여기서 복수의 메모리 셀들 각각은 적어도 한 비트를 저장할 수 있다. 실시 예에 있어서, 적어도 하나의 스트링 선택 트랜지스터 및 복수의 메모리 셀들 사이에 적어도 하나의 더미 셀들이 포함될 수 있다. 다른 실시 예에 있어서, 복수의 메모리 셀들과 적어도 하나의 접지 선택 트랜지스터들 사이에 적어도 하나의 더미 셀들이 포함될 수 있다.
어드레스 디코더(120)는 어드레스에 응답하여 복수의 메모리 블록들(BLK1 ~ BLKz) 중 어느 하나를 선택할 수 있다. 또한, 어드레스 디코더(120)는 워드라인들(WLs), 적어도 하나의 스트링 선택 라인(SSL) 및 적어도 하나의 접지 선택 라인(GSL)을 통해 메모리 셀 어레이(110)에 연결된다. 어드레스 디코더(120)는 디코딩된 로우(row) 어드레스를 이용하여 워드라인들(WLs), 스트링 선택 라인(SSL), 접지 선택 라인(GSL)을 선택한다. 또한, 어드레스 디코더(120)는 입력된 어드레스 중 컬럼(column) 어드레스를 디코딩 할 수 있다. 여기서 디코딩된 컬럼 어드레스는 입출력 회로(140)에 전달될 것이다. 실시 예에 있어서, 어드레스 디코더(120)는 로우 디코더, 컬럼 디코더, 어드레스 버퍼 등을 포함할 수 있다.
전압 발생 회로(130)는 구동에 필요한 전압들(프로그램 전압, 패스 전압, 읽기 전압, 읽기 패스 전압, 검증 전압, 소거 전압, 공통 소스 라인 전압, 웰전압 등)을 발생할 수 있다. 전압 발생 회로(130)는 프로그램 동작/읽기 동작/소거 동작에 필요한 워드라인 전압(Vwl)을 발생할 수 있다.
또한, 전압 발생 회로(130)는 제어 로직(150)의 제어에 따라 선택적으로 옵셋 펄스를 갖는 워드라인 전압을 발생할 수 있다. 즉, 전압 발생 회로(130)는 옵셋 펄스를 갖는 워드라인 전압을 발생할 수도 있고, 옵셋 펄스가 없는 워드라인 전압(Vwl)을 발생할 수도 있다.
입출력 회로(140)는 비트라인들(BLs)을 통해 메모리 셀 어레이(110)에 연결된다. 입출력 회로(140)는 어드레스 디코더(120)로부터 디코딩된 컬럼 어드레스를 입력 받도록 구현될 것이다. 입출력 회로(140)는 디코딩된 컬럼 어드레스를 이용하여 비트라인들(BLs)을 선택할 수 있다.
입출력 회로(140)는 프로그램 동작시 프로그램 될 데이터를 저장하거나, 읽기 동작시 읽혀진 데이터를 저장하는 복수의 페이지 버퍼들을 포함한다. 여기서 복수의 페이지 버퍼들 각각은 복수의 래치들을 포함할 수 있다. 프로그램 동작시 페이지 버퍼들에 저장된 데이터는 비트라인들(BLs)을 통하여 선택된 메모리 블록에 대응하는 페이지에 프로그램 될 수 있다. 읽기 동작시 선택 메모리 블록에 대응하는 페이지로부터 읽혀진 데이터는 비트라인들(BLs)을 통하여 페이지 버퍼들에 저장될 수 있다. 한편, 입출력 회로(140)는 메모리 셀 어레이(110)의 제 1 영역으로부터 데이터를 읽고, 읽혀진 데이터를 메모리 셀 어레이(110)의 제 2 영역으로 저장할 수도 있다. 예를 들어, 입출력 회로(140)는 카피-백(copy-back)을 수행하도록 구현될 수 있다.
제어 로직(150)은 비휘발성 메모리 장치(100)의 전반적인 동작(프로그램/읽기/소거 등)을 제어한다. 제어 로직(150)은 외부로부터 입력된 제어 신호들 혹은 명령(들)에 응답하여 동작할 수 있다. 제어 로직(150)은 프로그램/읽기/소거 동작시 어드레스 디코더(120), 전압 발생 회로(130) 및 입출력 회로(130)를 제어한다.
제어 로직(150)은 읽기 동작 혹은 스캔 동작시 메모리 제어기(도 1 참조, 200)로 입력된 페이지에 대한 최적의 읽기 레벨에 대한 정보를 근거로 하여, 페이지에 대한 최적의 읽기 레벨을 동작을 수행하도록 구현될 수 있다. 여기서 최적의 읽기 레벨은, 도 1에서 설명된 바와 같이, 현재 시각 및 타임 테이블(102)에 저장된 프로그램 시각을 근거로 하여 계산될 수 있다.
본 발명의 실시 예에 따른 비휘발성 메모리 장치(100)는 외부로부터 제공된 최적의 읽기 레벨을 근거로 하여 스캔 읽기 동작을 수행함으로써, 오픈 타임(open time)을 크게 단축 시킬 수 있다. 여기서 오픈 타임은 비휘발성 메모리 장치(100)가 읽기/프로그램 가능한 상태가 되도록 파워-오프 이전 상태의 메타 데이터를 복구하는 시간이다.
도 3은 도 2에 도시된 메모리 블록(BLK)을 예시적으로 보여주는 도면이다. 도 3을 참조하면, 기판(111) 위에 4개의 서브 블록들이 형성된다. 각각의 서브 블록들은 기판 위에 워드라인 컷들 사이에 적어도 하나의 접지 선택 라인(GSL), 복수의 워드라인들(WLs), 적어도 하나의 스트링 선택 라인(SSL)이 판 형태로 적층됨으로써 형성된다. 여기서 적어도 하나의 스트링 선택 라인(SSL)은 스트링 선택 라인 컷으로 분리된다. 워드라인 컷들 각각의 내부에는 벽(wall) 형태의 공통 소스 라인(CSL)이 형성될 수 있다.
실시 예에 있어서, 접지 선택 라인(GSL)과 워드라인들(WLs) 사이에 적어도 하나의 더미 워드라인이 판 형태로 적층되거나, 워드라인들(WLs)과 스트링 선택 라인(SSL) 사이에 적어도 하나의 더미 워드라인이 판 형태로 적층될 수 있다.
각각의 워드라인 컷들은, 도시되지 않았지만 공통 소스 라인(common source line: CSL)을 포함한다. 실시 예에 있어서, 각각의 워드라인 컷에 포함된 공통 소스 라인(CSL)은 공통으로 연결된다. 비트라인에 연결된 필라(pillar)가 적어도 하나의 접지 선택 라인(GSL), 복수의 워드라인들(WLs), 적어도 하나의 스트링 선택 라인(SSL)을 관통함으로써, 스트링이 형성된다.
도 3에서는 워드라인 컷들 사이의 대상을 서브 블록으로 도시하였는데, 본 발명이 반드시 여기에 제한되지 않는다. 본 발명의 서브 블록은 워드라인 컷과 스트링 선택 라인 컷 사이의 대상을 서브 블록으로 명명할 수 있다.
본 발명의 실시 예에 따른 블록(BLK)은 두 개의 워드라인들이 하나로 병합된 구조, 다른 말로 워드라인 병합 구조(merged wordline structure)로 구현될 수 있다.
도 4는 도 3에 도시된 메모리 블록의 단면도의 일부(I-I')를 예시적으로 보여주는 도면이다. 도 4를 참조하면, 메모리 블록(BLK)은 기판(111)과 수직 방향으로 형성된다. 기판(111)에는 n+ 도핑 영역(112)이 형성된다.
기판(111) 위에는 게이트 전극막(gate electrode layer, 113)과 절연막(insulation layer, 114)이 교대로 증착된다. 실시 예에 있어서, 게이트 전극막(113)과 절연막(114)의 측면에는 정보 저장막(information storage layer)이 형성될 수 있다.
게이트 전극막(113)은 접지 선택 라인(GSL), 복수의 워드 라인들(WL1 ~ WL8), 그리고 스트링 선택 라인(SSL)에 연결될 수 있다.
정보 저장막(115)은 터널 절연막(tunnel insulation layer), 전하 저장막(charge storage layer), 그리고 블록킹 절연막(blocking insulation layer)로 구성될 수 있다. 터널 절연막은 터널링 효과에 의해서 전하가 이동하는 절연막으로 동작할 수 있다. 전하 저장막은 전하를 포획(trap)하는 절연막으로 구성될 수 있다. 전하 저장막은, 예를 들면, 질화막(SiN) 또는 금속(알루미늄이나 하프늄) 산화막으로 형성될 수 있다. 블록킹 절연막은 게이트 전극막과 전하 저장막 사이에서 절연막으로 동작할 수 있다. 블록킹 절연막은 실리콘 산화막으로 형성될 수 있다. 여기서, 터널 절연막, 전하 저장막, 그리고 블록킹 절연막은 ONO(Oxide-Nitride-Oxide) 구조의 절연막으로 형성될 수 있다.
게이트 전극막(113)과 절연막(114)을 수직 방향으로 패터닝(vertical patterning)하면, 필라(pillar, 116)가 형성될 수 있다.
필라(116)는 게이트 전극막(113)과 절연막(114)을 관통하여 비트라인과 기판(111) 사이에 연결된다. 필라(116)의 내부는 충전 유전 패턴(filing dielectric pattern, 117)으로 실리콘 산화물(silicon oxide)과 같은 절연 물질 혹은 에어 갭(air gap)으로 형성 될 수 있다. 필라(116)의 외부는 수직 활성 패턴(vertical active pattern, 118)으로 채널 반도체로 구성될 수 있다. 실시 예에 있어서, 수직 활성 패턴(118)은 P 타입 실리콘층으로 형성될 수 있다. 스트링에 포함된 어느 하나의 메모리 셀은 필라(116)의 내부에서부터 순차적으로 충전 유전 패턴(117), 수직 활성 패턴(118), 정보 저장막(115) 및 게이트 전극막(113)으로 구성될 수 있다.
n+ 도핑 영역들(112) 위에는 공통 소스 라인들(CSL)이 신장되어 있다. 공통 소스 라인(CSL)은 벽(wall) 형태로 워드라인 컷 내부에 포함될 것이다.
도 5는 도 3에 도시된 메모리 블록(BLK)의 등가 회로도를 예시적으로 보여주는 도면이다. 도 5를 참조하면, 비트 라인들(BL1 ~ BL3)과 공통 소스 라인(CSL) 사이에는 셀 스트링(CS11 ~ CS33)이 연결되어 있다. 각각의 셀 스트링(예를 들면, CS11)은 접지 선택 트랜지스터(GST), 복수의 메모리 셀(MC1 ~ MC8), 그리고 스트링 선택 트랜지스터(SST)를 포함할 수 있다. 도 5에서는 설명의 편의를 위하여 스트링에 포함된 메모리 셀의 개수가 8이라고 하겠다. 하지만, 본 발명의 스트링에 포함된 메모리 셀의 개수가 여기에 제한되지 않을 것이다.
스트링 선택 트랜지스터(SST)는 스트링 선택 라인(SSL; string selection line)에 연결된다. 스트링 선택 라인(SSL)은 제 1 내지 제 3 스트링 선택 라인(SSL1 ~ SSL3)으로 분리되어 있다. 도 5에서는 하나의 비트라인에 대응하는 3개의 스트링 선택 라인들(SSL1 ~ SSL3)에 대하여 도시한다. 하지만 본 발명이 여기에 제한되지 않을 것이다. 본 발명의 메모리 블록(BLK)은 하나의 비트라인에 대응하는 적어도 2개의 스트링 선택 라인들로 구성될 수 있다.
접지 선택 트랜지스터(GST)는 접지 선택 라인(GSL; ground selection line)에 연결된다. 접지 선택 라인(GSL)은 제 1 내지 제 3 접지 선택 라인(GSL1 ~ GSL3)으로 분리되어 있다. 도 5에서는 하나의 비트라인에 대응하는 3개의 접지 선택 라인들(GSL1 ~ GSL3)에 대하여 도시한다. 하지만 본 발명이 여기에 제한되지 않을 것이다. 본 발명의 메모리 블록(BLK)은 하나의 비트라인에 대응하는 적어도 2개의 접지 선택 라인들로 구성될 수 있다. 한편, 접지 선택 라인들(GSL1 ~ GSL3)은 전기적으로 연결될 수 있다.
또한, 스트링 선택 트랜지스터(SST)는 비트 라인(BL)에 연결되고, 접지 선택 트랜지스터(GST)는 공통 소스 라인(CSL)에 연결된다.
복수의 메모리 셀들(MC1 ~ MC8) 각각에 대응하는 워드라인들(WL1 ~ WL8)에 연결될 수 있다. 하나의 워드 라인에 연결되고, 동시에 프로그램되는 메모리 셀들의 집합을 페이지(page)라 부른다. 메모리 블록(BLK1)은 복수의 페이지들로 구성된다. 또한, 하나의 워드 라인에는 복수의 페이지들이 연결될 수 있다. 도 5를 참조하면, 공통 소스 라인(CSL)으로부터 워드 라인(예를 들면, WL4)은 3개의 페이지에 공통으로 연결되어 있다.
한편, 각각의 메모리 셀은 한 비트의 데이터 또는 두 비트 이상의 데이터를 저장할 수 있다. 하나의 메모리 셀에 한 비트의 데이터를 저장할 수 있는 메모리 셀은 싱글 레벨 셀(SLC; single level cell) 또는 싱글 비트 셀(single bit cell)이라 부른다. 하나의 메모리 셀에 두 비트 이상의 데이터를 저장할 수 있는 메모리 셀은 멀티 레벨 셀(MLC; multi level cell) 또는 멀티-비트 셀(multi bit cell)이라 부른다.
한편, 비휘발성 메모리 장치(100)가 차지 트랩형 플래시(charge trap flash; CTF)로 구현될 수 있다. 이때, 프로그램된 CTF에 트랩 되어 있던 전하들이 시간이 지나면서 재분포되고 유실되는 IVS(initial verify shift)가 발생 될 수 있다. 이러한 산포 열화 현상을 극복하기 위하여 재프로그래밍을 수행할 수 있다.
도 6은 본 발명의 다른 실시 예에 따른 메모리 블록을 예시적으로 보여주는 도면이다. 도 6을 참조하면, 스트링은 비트라인(BL)과 공통 소스 라인(CSL) 사이에 형성되고, 비트라인(BL)과 기판 사이에 수직 방향으로 형성된 제 1 메모리 셀들과 기판과 공통 소스 라인(CSL) 사이에 수직 방향으로 형성된 제 2 메모리 셀들로 구성될 수 있다.
실시 예에 있어서, 메모리 블록(BLKb)은 P-BiCS 구조로 구현될 수 있다.
도 7은 본 발명의 실시 예에 따른 저장 장치의 테이블 관리 방법을 예시적으로 보여주는 흐름도이다. 도 1 내지 도 7를 참조하면, 테이블 관리 방법은 다음과 같다. 저장 장치(100)가 파워-오프에서 파워-온 된다(S110). 테이블 매니저(220)에서 테이블 복구가 필요한 지가 판별된다. 예를 들어, 블록 스캔 동작이 필요할 때(즉, 메타 데이터가 업데이트 되지 않은 로그 블록이 존재할 때), 테이블 복구가 필요할 수 있다(S120). 한편, 본 발명의 테이블 관리 방법은, 도 7에 도시된 테이블 복구가 필요한 지를 판별하는 단계(S120)를 생략할 수 있다. 즉, 파워-오프 후에 파워-온 될 때, 디폴트적으로 테이블 복구 동작이 수행될 수 있다.
만일, 테이블 복구가 필요하다면, 로그 블록에 대한 블록 스캔 동작이 수행된다(S130). 테이블 매니저(220)는 로그 블록에 대한 블록 스캔 동작을 통하여 로그 블록에 대한 메타 데이터를 복구할 수 있다. 예를 들어, 각 페이지에 대한 물리 어드레스와 논리 어드레스에 대한 맵 테이블과, 각 페이지가 프로그램 시각이 복구될 수 있다. 특히, 테이블 매니저(220)는 로그 블록에 대한 블록 스캔 동작을 통하여 읽혀진 프로그램 시간 차이들(TD1 ~ TDm)과 이전 페이지의 프로그램 시각을 이용하여 로그 블록의 페이지들의 프로그램 시각들을 계산하고, 계산된 프로그램 시각들을 파워-오프 이전의 타임 테이블을 복구할 수 있다(S140). 이후, 복구된 타임 테이블이 업데이트 된다(S150). 반면에, 테이블 복구가 필요하지 않다면, 테이블 복구 업데이트 동작은 완료된다.
본 발명의 실시 예에 따른 테이블 관리 방법은 로그 블록의 스캔 동작을 통하여 읽혀진 프로그램 시간 차이들(TD1 ~ TDm)을 이용하여 타임 테이블을 복구할 수 있다.
도 8은 본 발명의 실시 예에 따른 저장 장치의 블록 스캔 동작 방법을 예시적으로 보여주는 흐름도이다. 도 1 내지 8을 참조하면, 블록 스캔 동작은 다음과 같다.
로그 블록의 마지막 페이지부터 순서대로 프리 페이지인지 판별된다. 도 1에 도시된 바와 같이 블록 스캔 동작의 진행 순서는 프로그램 동작 순서의 역순일 수 있다(S210). 프리 페이지가 아닌 페이지일 때, 대응하는 페이지에 대하여 복수의 스캔 읽기 동작을 통하여 읽기 레벨이 검색된다(S220). 검색된 읽기 레벨로 페이지에 대한 읽기 동작이 수행된다. 그 결과로써 페이지에 대한 논리 어드레스 및 시간 차이가 알려질 것이다. 여기서 시간 차이는 프로그램 이전 페이지의 프로그램 시각으로부터 경과된 시간이다(S230). 이렇게 읽혀진 시간 차이 및 읽기 레벨을 근거로 하여 다음 페이지의 최적의 읽기 레벨(들)이 검색된다. 여기서 읽기 레벨과 시간 차이에 대한 관계는 알려져 있다고 간주하겠다(S240). 이 후에, 최적의 읽기 레벨에 의해 다음 페이지가 읽혀진다. 이로써 다음 페이지에 대응하는 논리 어드레스 및 시간 차이가 읽혀질 수 있다(S250). 이 후에, 다음 페이지가 블록 스캔 동작을 수행하는 메모리 블록의 첫 페이지인 지가 판별된다(S260). 만일 다음 페이지가 첫 페이지가 아니라면, 그 다음에 페이지에 대하여 S240 단계가 진행된다. 반면에 다음 페이지가 첫 페이지라면, 블록 스캔 동작이 완료된다.
이러한 블록 스캔 동작으로 통하여 논리 어드레스들 및 시간 차이들이 읽혀지고, 읽혀진 논리 어드레스들 및 시간 차이들을 근거로 하여 맵 테이블 및 타임 테이블이 복구될 수 있다.
본 발명의 실시 예에 따른 블록 스캔 동작은 어느 하나의 페이지로부터 읽혀진 시간 차이를 이용하여 다음 페이지의 최적의 읽기 레벨을 검색함으로써, 종래의 그것과 비교하여 스캔 동작 속도를 빠르게 할 수 있다.
도 9는 본 발명의 실시 예에 따른 저장 장치의 프로그램 방법을 예시적으로 보여주는 흐름도이다. 도 1 내지 도 9를 참조하면, 프로그램 방법은 다음과 같다. 외부로부터 데이터와 어드레스를 갖는 프로그램 요청이 입력된다(S310). 타이머(210)로부터 현재 시각과 타임 테이블(102)로부터 이전 페이지의 프로그램 시각 사이의 프로그램 시간 차이가 계산된다(S320). 어드레스에 대응하는 페이지에 데이터 및 프로그램 시간 차이가 프로그램 된다(S330). 이후에, 어드레스 및 페이지가 프로그램된 프로그램 시각에 관련된 타임 테이블이 업데이트 된다(S340). 여기서 타임 테이블의 업데이트는 도 1에 도시된 바와 같이 주기적으로 업데이트 될 수 있고, 비주기적으로 업데이트 될 수 있고, 경우에 따라 복구 업데이트 될 수도 있다.
본 발명의 실시 예에 따른 프로그램 방법은 프로그램 동작시 이전 페이지의 프로그램 시각으로부터 경과된 프로그램 시간 차이를 저장할 수 있다.
도 10은 본 발명의 실시 예에 따른 저장 장치의 읽기 방법을 예시적으로 보여주는 흐름도이다. 도 1 내지 도 10을 참조하면, 읽기 방법은 다음과 같다. 외부로부터 어드레스를 갖는 읽기 요청이 입력된다(S410). 타임 테이블(102)로부터 어드레스에 대응하는 페이지의 최적의 읽기 레벨(들)이 검색된다(S420). 최적화된 읽기 레벨(들)을 근거로 하여 페이지의 데이터가 읽혀진다(S430).
본 발명의 실시 예에 따른 읽기 방법은 타임 테이블을 이용한 최적의 읽기 레벨을 검색하고, 검색될 최적의 읽기 레벨을 근거로 하여 최적의 읽기 동작을 수행할 수 있다.
한편, 본 발명의 읽기 방법은 타임 테이블 복구 동작을 추가할 수 있다. 도 11은 본 발명의 다른 실시 예에 따른 저장 장치의 읽기 방법을 예시적으로 보여주는 흐름도이다. 도 1 내지 도 11을 참조하면, 읽기 방법은 다음과 같다. 외부로부터 어드레스를 갖는 읽기 요청이 입력된다(S510). 어드레스에 대응하는 페이지에 대한 타임 테이블이 존재하는 지가 판별된다(S520). 만일 페이지에 대한 타임 테이블이 존재하지 않는다면, 페이지에 저장된 프로그램 시간 차이를 이용하여 타임 테이블이 복구된다(S530). 이 후에, 타임 테이블(102)로부터 어드레스에 대응하는 페이지의 최적의 읽기 레벨(들)이 검색된다(S540). 반면에, 어드레스에 대응하는 페이지에 대한 타임 테이블이 존재하면, S540 단계가 진행된다. 이 후에, 최적화된 읽기 레벨(들)을 근거로 하여 페이지의 데이터가 읽혀진다(S550).
본 발명의 실시 예에 따른 읽기 방법은 타임 테이블이 없는 페이지 읽기 동작시에는 타임 테이블을 복구하고, 복구된 타임 테이블을 근거로 하여 읽기 동작을 수행 할 수 있다.
도 12는 본 발명의 실시 예에 따른 저장 장치(10)를 예시적으로 보여주는 블록도이다. 도 12를 참조하면, 저장 장치(10)는 적어도 하나의 비휘발성 메모리 장치(12) 및 그것을 제어하는 메모리 제어기(14)를 포함한다. 도 12에 도시된 저장치(10)는 메모리 카드(CF, SD, microSD, 등), USB 저장 장치 등과 같은 저장 매체가 될 수 있다.
비휘발성 메모리 장치(12)는 도 1에 도시된 비휘발성 메모리 장치(100)으로 구현될 수 있다. 메모리 제어기(14)는 도 1에 도시된 메모리 제어기(200)으로 구현될 수 있다. 또한, 메모리 제어기(14)는 프로그램 루프의 회수, 동작 모드, 특정 프로그램 상태의 패스/페일 정보, 상태 정보, 온도 정보, P/E(program/erase) 싸이클, 동작 관련 회수 정도에 관련된 정보, 워드라인의 물리적인 구조 관련 정보, 워드라인의 물리적인 위치 관련 정보, 위치 정보, 어드레스 정보, 선택/비선택 정보, 시간 정보 등과 같은 적어도 하나의 환경 정보에 대응하는 타임 테이블을 보정할 수 있고, 보정된 타임 테이블을 이용하여 최적의 읽기 레벨을 검색하고, 검색된 최적의 읽기 레벨을 근거로 하여 비휘발성 메모리 장치(10)에 대한 최적의 읽기 동작을 수행할 수 있다.
또한, 메모리 제어기(14)는 호스트의 요청에 응답하여 비휘발성 메모리 장치(12)에 대한 읽기, 쓰기, 소거 동작 등을 제어한다. 메모리 제어기(14)는 적어도 하나의 중앙처리장치(14-1), 버퍼 메모리(14-2), 에러 정정 회로(14-3), 호스트 인터페이스(14-5) 및 NVM 인터페이스(14-6)를 포함한다.
중앙처리장치(14-1)는 비휘발성 메모리 장치(12)에 대한 전반적인 동작(예를 들면, 읽기, 쓰기, 파일 시스템 관리, 배드 페이지 관리 등)을 제어할 수 있다. RAM(14-2)는 중앙처리장치(14-1)의 제어에 따라 동작하며, 워크 메모리(work memory), 버퍼 메모리(buffer memory), 캐시 메모리(cache memory) 등으로 사용될 수 있다. RAM(14-2)이 워크 메모리로 사용되는 경우에, 중앙처리장치(14-1)에 의해서 처리되는 데이터가 임시 저장된다. RAM(14-2)이 버퍼 메모리로 사용되는 경우에는, 호스트에서 비휘발성 메모리 장치(12)로/또는 비휘발성 메모리 장치(12)에서 호스트로 전송될 데이터를 버퍼링하는데 사용된다. RAM(14-2)이 캐시 메모리로 사용되는 경우에는 저속의 비휘발성 메모리 장치(12)가 고속으로 동작하도록 한다.
ECC 회로(14-3)는 비휘발성 메모리 장치(12)로부터 수신된 데이터의 페일 비트(fail bit) 또는 에러 비트(error bit)를 정정하기 위한 에러 정정 코드(ECC; Error Correction Code)를 생성한다. ECC 회로(14-3)는 비휘발성 메모리 장치(12)로 제공되는 데이터의 에러 정정 인코딩을 수행하여, 패리티(parity) 비트가 부가된 데이터를 형성한다. 패리티 비트는 비휘발성 메모리 장치(12)에 저장될 수 있다. 또한, ECC 회로(14-3)는 비휘발성 메모리 장치(12)로부터 출력된 데이터에 대하여 에러 정정 디코딩을 수행할 수 있다. ECC 회로(14-3)는 패리티(parity)를 사용하여 에러를 정정할 수 있다. ECC 회로(14-3)는 LDPC(low density parity check) code, BCH code, turbo code, 리드-솔로몬 코드(Reed-Solomon code), convolution code, RSC(recursive systematic code), TCM(trellis-coded modulation), BCM(Block coded modulation) 등의 코디드 모듈레이션(coded modulation)을 사용하여 에러를 정정할 수 있다.
메모리 제어기(14)는 호스트 인터페이스(14-5)를 통해 호스트와 데이터 등을 주고 받고, NVM 인터페이스(14-6)를 통해 비휘발성 메모리 장치(12)와 데이터 등을 주고 받는다. 호스트 인터페이스(14-5)는 PATA 버스(parallel AT attachment bus), SATA 버스(serial AT attachment bus), SCSI, USB, PCIe, 낸드 인터페이스 등을 통해 호스트와 연결될 수 있다.
실시 예에 있어서, 메모리 제어기(14)는 무선 통신 기능(예를 들어, WiFi)을 탑재할 수 있다.
본 발명의 저장 장치(10) VNAND의 IVS특성상 FTL에서 Program Time-Stamp Table을 운용해야 한다. Log Block Scan할 때 소요되는 시간을 최적화하고 Program Time-Stamp Table 복구를 짧은 시간 안에 할 수 있다. Program Time-Stamp Table에 반영되지 않은 채로 Power Off가 발생한 Log Block에 대해서는 Open 시간에 해당 Page의 Read Level을 복구해야 하고, Program Time-Stamp Table에 반영해야 Run Time 중에 하나의 Read Level로 해당 Page를 Read 할 수 있다. 하지만 Log Block의 Page를 Scan 하면서 해당 Page들의 Read Level을 찾는 시간이 소요되어 Open Time이 길어진다. 따라서 본 발명의 저장 장치(10)눈 Log Block Scan 시간을 단축하고 Program Time-Stamp Table을 쉽게 복구 할 수 있다.
저장 장치(10)는 IVS Issue를 관리하기 위해서 FTL에서는 VNAND에 Program 된 이후에 Time Table을 관리해야 한다. 이 Time Table을 VNAND에 매번 Program 할 수 없어서 특정 주기마다 NAND에 적게 되고 Power On / Off가 발생하였을 때 VNAND에 기록되지 않은 Table Update내용에 대해서는 실제 Data가 Program된 Page를 Read 하며 시간이 얼마나 지났는지를 추측해야 한다. 즉, 산포가 Shift된 정도를 Read Level을 통해서 알아내고 각각의 Page에 대해서 N회의 Read를 시도해 보아야 한다. 이로 인해 Log Block Scan 시간이 증가 된다.
본 발명의 저장 장치(10)는 Data를 Write 하는 시점에 이전에 Program되었던 Page와의 Time Difference를 Spare에 기록한다. 저장 장치(10)는 이러한 Time Difference를 바탕으로 LB Scan시에 나의 Read Level에서 이전 Page가 Program된 시간을 역 추적하여 Read level을 한번에 찾을 수 있다.
구체적으로, Log Block Scan시 Free Page 이후의 첫번째 Page에 대해서는 Read Level찾는 과정이 수행된다. 하지만 이후 Page 부터는 방금 Read한 Page의 Spare에 Program된 시간 차이가 존재하므로 Read Level을 그만큼의 시간 Gap을 적용하여 Read를 수행할 수 있다.
본 발명에 실시 예에 따른 저장 장치의 구동 방법은 Page를 Program할 때 이전 Page와의 Time Difference를 기록한다. 실시 예에 있어서 Time Difference는 Log Block Scan시 Read Level을 찾는데 활용될 수 있다. 실시 예에 있어서, Time Difference를 IVS Table 복구에 활용할 수 있다.
본 발명의 실시 예에 따른 저장 장치는 페이지의 스페어 영역에 시간 차이를 저장하였다. 하지만 본 발명이 반드시 여기에 제한될 필요는 없다. 본 발명의 저장 장치는 페이지의 스페어 영역에 프로그램 시각을 저장할 수도 있다.
본 발명은 SSD(solid state drive)에 적용 가능하다. 도 13은 본 발명의 실시 예에 따른 SSD를 예시적으로 보여주는 블록도이다. 도 13을 참조하면, SSD(1000)는 복수의 비휘발성 메모리 장치들(1100) 및 SSD 제어기(1200)를 포함한다.
비휘발성 메모리 장치들(1100)은 옵션적으로 외부 고전압(Vpp)을 제공받도록 구현될 수 있다. 비휘발성 메모리 장치들(1100) 각각은 도 1에서 설명된 비휘발성 메모리 장치(100)로 구현될 수 있다. SSD 제어기(1200)는 복수의 채널들(CH1 ~ CHi, i는 2 이상의 정수)을 통하여 비휘발성 메모리 장치들(1100)에 연결된다. SSD 제어기(1200)는 도 1에 도시된 메모리 제어기(200)으로 구현될 수 있다. SSD 제어기(1200)는 적어도 하나의 프로세서(1210), 버퍼 메모리(1220), 에러 정정 회로(1230), 호스트 인터페이스(1250) 및 비휘발성 메모리 인터페이스(1260)를 포함한다.
버퍼 메모리(1220)는 메모리 제어기(1200)의 구동에 필요한 데이터를 임시로 저장할 것이다. 버퍼 메모리(1220)는 데이터 혹은 명령을 저장하는 복수의 메모리 라인들을 포함할 수 있다. 여기서 복수의 메모리 라인들은 캐시 라인들에 다양한 방법으로 맵핑 될 수 있다. 에러 정정 회로(1230)는 쓰기 동작에서 프로그램될 데이터의 에러 정정 코드 값을 계산하고, 읽기 동작에서 읽혀진 데이터를 에러 정정 코드 값에 근거로 하여 에러 정정하고, 데이터 복구 동작에서 비휘발성 메모리 장치(1100)로부터 복구된 데이터의 에러를 정정할 수 있다. 도시되지 않았지만, 메모리 제어기(1200)를 구동하는 데 필요한 코드 데이터를 저장하는 코드 메모리가 더 포함될 수 있다. 코드 메모리는 비휘발성 메모리 장치로 구현될 수 있다.
호스트 인터페이스(1250)는 외부의 장치와 인터페이스 기능을 제공할 수 있다. 여기서 호스트 인터페이스(1250)는 낸드 플래시 인터페이스일 수 있다. 이 외에도 호스트 인터페이스(1250)는 다양한 인터페이스에 의해 구현될 수 있으며, 복수의 인터페이스들로 구현될 수도 있다. 비휘발성 메모리 인터페이스(1260)는 비휘발성 메모리 장치(1100)와 인터페이스 기능을 제공할 수 있다.
본 발명의 실시 예에 따른 SSD(1000)는 프로그램 동작시 프로그램 시간 차이를 페이지에 저장하고, 타임 테이블 복구 동작시 페이지에 저장된 프로그램 시간 차이를 이용함으로써, 성능 향상을 기대할 수 있다.
본 발명은 eMMC(embedded multi media card, moviNAND, iNAND)에도 적용 가능하다. 도 14는 본 발명의 실시 예에 따른 eMMC를 예시적으로 보여주는 블록도이다. 도 14를 참조하면, eMMC(2000)는 적어도 하나의 낸드 플래시 메모리 장치(2100) 및 제어기(2200)를 포함할 수 있다.
낸드 플래시 메모리 장치(2100)는 도 1에서 설명된 비휘발성 메모리 장치(100)로 구현될 수 있다. 메모리 제어기(2200)는 복수의 채널들을 통하여 낸드 플래시 메모리 장치(2100)에 연결된다. 메모리 제어기(2200)는 도 1에 도시된 메모리 제어기(200)로 구현될 수 있다. 메모리 제어기(2200)는 적어도 하나의 제어기 코어(2210), 호스트 인터페이스(2250) 및 낸드 인터페이스(2260)를 포함한다. 적어도 하나의 제어기 코어(2210)는 eMMC(2000)의 전반적인 동작을 제어한다. 호스트 인터페이스(2250)는 제어기(2210)와 호스트의 인터페이싱을 수행한다. 낸드 인터페이스(2260)는 낸드 플래시 메모리 장치(2100)와 제어기(2200)의 인터페이싱을 수행한다. 실시 예에 있어서, 호스트 인터페이스(2250)는 병렬 인터페이스(예를 들어, MMC 인터페이스)일 수 있다. 다른 실시 예에 있어서, eMMC(2000)의 호스트 인터페이스(2250)는 직렬 인터페이스(예를 들어, UHS-II, UFS 인터페이스)일 수 있다. 또 다른 실시 예에 있어서, 호스트 인터페이스(2250)는 낸드 인터페이스일 수 있다.
eMMC(2000)는 호스트로부터 전원 전압들(Vcc, Vccq)을 제공받는다. 여기서, 제 1 전원 전압(Vcc, 예를 들어 3.3V)은 낸드 플래시 메모리 장치(1100) 및 낸드 인터페이스(1230)에 제공되고, 제 2 전원 전압(Vccq, 예를 들어 1.8V/3.3V)은 제어기(1200)에 제공된다. 실시 예에 있어서, eMMC(1000)는 외부 고전압(Vpp)을 옵션적으로 제공받을 수 있다.
본 발명의 실시 예에 따른 eMMC(2000)는 파워-오프 후 페이지 별로 저장된 프로그램 시간 차이를 이용하여 메타 데이터를 복구함으로써, 오픈 타임을 대폭적으로 줄일 수 있다.
본 발명은 UFS(uiversal flash storage)에도 적용 가능하다. 도 15는 본 발명의 실시 예에 따른 UFS 시스템을 예시적으로 보여주는 블록도이다. 도 15를 참조하면, UFS 시스템(3000)은 UFS 호스트(3100), UFS 장치들(3200, 3300), 임베디드 UFS 장치(3300), 착탈형 UFS 카드(3400)를 포함할 수 있다. UFS 호스트(3100)는 모바일 장치의 어플리케이션 프로세서일 수 있다. UFS 호스트(3100), UFS 장치들(3200, 3300), 임베디드 UFS 장치(3300), 및 착탈형 UFS 카드(3400) 각각은 UFS 프로토콜에 의하여 외부의 장치들과 통신할 수 있다. UFS 장치들(3200, 3300), 임베디드 UFS 장치(3300), 및 착탈형 UFS 카드(3400) 중 적어도 하나는 도 1에 도시된 저장 장치(10)로 구현될 수 있다.
한편, 임베디드 UFS 장치(3300)와 착탈형 UFS 카드(3400)는 UFS 프로토콜이 아닌 다른 프로토콜에 의해 통신할 수 있다. UFS 호스트(3100)와 착탈형 UFS 카드(3400)는 다양한 카드 프로토콜(예를 들어, UFDs, MMC,SD(secure digital), mini SD, Micro SD 등)에 의해 통신할 수 있다.
본 발명은 모바일 장치에도 적용 가능하다. 도 16은 본 발명의 실시 예에 따른 모바일 장치(4000)를 예시적으로 보여주는 블록도이다. 도 16을 참조하면, 모바일 장치(4000)는 어플리케이션 프로세서(4100), 통신 모듈(4200), 디스플레이/터치 모듈(4300), 저장 장치(4400), 및 모바일 램(4500)을 포함한다.
어플리케이션 프로세서(4100)는 모바일 장치(4000)의 전반적인 동작을 제어한다. 통신 모듈(4200)은 외부와의 유선/무선 통신을 제어하도록 구현될 것이다. 디스플레이/터치 모듈(4300)은 어플리케이션 프로세서(4100)에서 처리된 데이터를 디스플레이 하거나, 터치 패널로부터 데이터를 입력 받도록 구현될 것이다. 저장 장치(4400)는 사용자의 데이터를 저장하도록 구현될 것이다. 저장 장치(4400)는 eMMC, SSD, UFS 장치일 수 있다. 저장 장치(4400)는 도 1 내지 도 11에서 설명된 바와 같이 프로그램 시각 정보를 이용하여 최적의 읽기 동작을 수행하도록 구현될 것이다. 모바일 램(4500)은 모바일 장치(4000)의 처리 동작 시 필요한 데이터를 임시로 저장하도록 구현될 수 있다.
본 발명의 실시 예에 따른 모바일 장치(4000)는 타임 테이블을 이용하여 최적의 읽기 동작을 수행함으로써 시스템적인 성능 향상을 꾀할 수 있다.
본 발명의 실시 예에 따른 메모리 시스템 혹은 저장 장치는 다양한 형태들의 패키지를 이용하여 실장 될 수 있다. 실시 예에 있어서, 본 발명의 실시 예에 따른 메모리 시스템 혹은 저장 장치는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장될 수 있다.
한편, 상술 된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함할 것이다.
100: 비휘발성 메모리 장치
101: 맵 테이블
102: 타임 테이블
110: 메모리 셀 어레이
120: 어드레스 디코더
130: 전압 발생 회로
140: 입출력 회로
150: 제어 로직
200: 메모리 제어기
210: 타이머
220: 테이블 매니저
10: 저장 장치
12: 비휘발성 메모리 장치
14: 메모리 제어기
101: 맵 테이블
102: 타임 테이블
110: 메모리 셀 어레이
120: 어드레스 디코더
130: 전압 발생 회로
140: 입출력 회로
150: 제어 로직
200: 메모리 제어기
210: 타이머
220: 테이블 매니저
10: 저장 장치
12: 비휘발성 메모리 장치
14: 메모리 제어기
Claims (10)
- 기판상에 수직한 방향으로 형성되고 비트라인들과 공통 소스 사이에 결합된 복수의 스트링들을 포함하는 적어도 하나의 비휘발성 메모리 장치 및 상기 적어도 하나의 비휘발성 메모리 장치를 제어하는 메모리 제어기를 포함하는 저장 장치의 테이블 관리 방법에 있어서:
상기 적어도 하나의 비휘발성 메모리 장치 중 하나의 비휘발성 메모리 장치의 블록에 포함된 복수의 페이지들 중 어느 하나의 페이지와 관련되고, 상기 적어도 하나의 비휘발성 메모리 장치 중 상기 하나의 비휘발성 메모리 장치에 포함된 테이블이 복구될 필요가 있는 지를 판별하는 단계;
상기 테이블이 복구될 필요가 있을 때, 상기 블록에 대한 블록 스캔 동작을 수행하는 단계;
상기 블록 스캔 동작시, 상기 블록의 복수의 페이지들 각각으로부터 읽혀진 시간 차이를 이용하여 상기 테이블을 복구하는 단계; 및
상기 복구된 테이블을 상기 적어도 하나의 비휘발성 메모리 장치로 업데이트하는 단계를 포함하고,
상기 시간 차이는 상기 복수의 페이지들 중 이전 페이지의 프로그램 시각으로부터 상기 복수의 페이지들 중 현재 페이지가 프로그램 될 때까지 경과된 시간인 테이블 관리 방법. - 제 1 항에 있어서,
상기 저장 장치가 파워-오프 된 후 파워-온 될 때, 상기 테이블이 복구되는 테이블 관리 방법. - 제 1 항에 있어서,
상기 테이블은 상기 블록에 포함된 상기 복수의 페이지들 중 하나의 페이지와 관련된 논리 어드레스와 물리 어드레스 사이의 맵핑 정보를 저장하도록 구성된 맵 테이블; 및
상기 복수의 페이지들 중 상기 하나의 페이지의 프로그램 시각을 저장하도록 구성된 타임 테이블을 포함하는 테이블 관리 방법. - 제 3 항에 있어서,
상기 하나의 페이지에 대한 프로그램 동작시, 상기 하나의 페이지와 관련된 상기 논리 어드레스 및 시간 차이가 함께 저장되는 테이블 관리 방법. - 제 4 항에 있어서,
상기 시간 차이는 타이머에서 발생된 현재 시각으로부터 상기 이전 페이지의 프로그램 시각을 뺌으로써 계산되는 테이블 관리 방법. - 제 1 항에 있어서,
상기 블록은 로그 블록이고,
상기 블록 스캔 동작을 수행하는 단계는,
상기 로그 블록에 포함된 복수의 페이지들 중 어느 하나의 페이지가 프리 페이지인지를 판별하는 단계; 및
상기 로그 블록의 상기 어느 하나의 페이지가 상기 프리 페이지가 아닐 때, 상기 어느 하나의 페이지에 대한 읽기 레벨을 탐색하는 단계를 더 포함하는 테이블 관리 방법. - 제 6 항에 있어서,
상기 블록 스캔 동작을 수행하는 단계는,
상기 탐색된 읽기 레벨과 상기 어느 하나의 페이지로부터 읽혀진 상기 시간 차이를 이용하여 상기 복수의 페이지들 중 다음 페이지의 읽기 레벨을 결정하는 단계; 및
상기 결정된 읽기 레벨을 기반으로 상기 다음 페이지를 읽는 단계를 더 포함하는 테이블 관리 방법. - 기판상에 복수의 메모리 블록들을 포함하고, 상기 복수의 메모리 블록들 각각은 비트라인들과 공통 소스 라인 사이에 결합된 복수의 스트링들을 포함하며, 상기 복수의 메모리 블록들 각각은 프로그램이 동작하는 동안 논리 어드레스 및 이전 페이지의 프로그램 시각으로부터 경과된 시간 차이를 저장하도록 구성되고, 상기 복수의 메모리 블록들 각각은 상기 논리 어드레스와 물리 어드레스를 맵핑하는 맵 테이블 및 적어도 하나의 페이지의 프로그램 시각을 저장하는 타임 테이블을 저장하도록 구성된 적어도 하나의 비휘발성 메모리 장치; 및;
상기 적어도 하나의 비휘발성 메모리 장치를 제어하도록 구성된 메모리 제어기를 포함하고,
상기 메모리 제어기는:
현재 시각을 생성하도록 구성된 타이머; 및
상기 맵 테이블 및 상기 타임 테이블을 관리하도록 구성된 테이블 매니저를 포함하며,
상기 테이블 매니저는 블록 스캔 동작에 의해서 상기 맵 테이블 및 상기 타임 테이블 중 적어도 하나를 복구 또는 업데이트하도록 구성되고,
상기 메모리 제어기는 상기 블록 스캔 동작시 상기 시간 차이를 이용하여 상기 복수의 메모리 블록들 중 하나의 메모리 블록 내에서 다음 페이지의 읽기 레벨을 결정하도록 구성된 저장 장치. - 제 8 항에 있어서,
상기 저장 장치가 파워-오프 된 후 파워-온 될 때, 상기 복수의 메모리 블록들 중 하나의 로그 블록에 대한 상기 블록 스캔 동작을 통해서 읽혀진 논리 어드레스들 및 시간 차이들을 이용하여 상기 맵 테이블 및 상기 타임 테이블을 복구하도록 구성된 저장 장치. - 제 8 항에 있어서,
상기 메모리 제어기는 상기 타임 테이블을 이용하여 읽기 레벨을 계산하고, 상기 계산된 읽기 레벨을 기반으로 하나의 페이지에 대한 읽기 동작을 수행하도록 구성된 저장 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140030279A KR102233808B1 (ko) | 2014-03-14 | 2014-03-14 | 저장 장치 및 그것의 테이블 관리 방법 |
US14/636,700 US9691487B2 (en) | 2014-03-14 | 2015-03-03 | Storage device and table management method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140030279A KR102233808B1 (ko) | 2014-03-14 | 2014-03-14 | 저장 장치 및 그것의 테이블 관리 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150107401A KR20150107401A (ko) | 2015-09-23 |
KR102233808B1 true KR102233808B1 (ko) | 2021-03-30 |
Family
ID=54069011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140030279A KR102233808B1 (ko) | 2014-03-14 | 2014-03-14 | 저장 장치 및 그것의 테이블 관리 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9691487B2 (ko) |
KR (1) | KR102233808B1 (ko) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9811549B2 (en) * | 2014-11-25 | 2017-11-07 | Sap Se | Applying a database transaction log record directly to a database table container |
KR102625637B1 (ko) * | 2016-02-01 | 2024-01-17 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
CN107204204B (zh) * | 2016-03-16 | 2020-01-31 | 建兴储存科技(广州)有限公司 | 固态储存装置的断电期间估计方法 |
KR20170118284A (ko) * | 2016-04-14 | 2017-10-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR102430791B1 (ko) * | 2017-07-19 | 2022-08-10 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작방법 |
KR102631350B1 (ko) * | 2017-10-12 | 2024-01-31 | 삼성전자주식회사 | 메모리 플레인들을 포함하는 비휘발성 메모리 장치 및 상기 비휘발성 메모리 장치의 동작 방법 |
KR20200113387A (ko) | 2019-03-25 | 2020-10-07 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
JP6727365B1 (ja) * | 2019-03-27 | 2020-07-22 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
KR20210022260A (ko) * | 2019-08-20 | 2021-03-03 | 삼성전자주식회사 | 메모리 컨트롤러의 구동방법, 메모리 컨트롤러 및 스토리지 장치 |
CN110704337B (zh) | 2019-09-23 | 2021-01-19 | 深圳忆联信息系统有限公司 | 基于固态硬盘的映射表重建方法、装置和计算机设备 |
KR20210083545A (ko) * | 2019-12-27 | 2021-07-07 | 삼성전자주식회사 | 씨오피 구조를 갖는 메모리 장치 및 이를 포함하는 메모리 패키지 |
US11195575B1 (en) | 2020-06-25 | 2021-12-07 | Intel Corporation | Memory array with shorting structure on a dummy array thereof, and method of providing same |
TWI842009B (zh) * | 2022-07-08 | 2024-05-11 | 瑞昱半導體股份有限公司 | 資料存取方法及資料存取系統 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120051133A1 (en) | 2010-08-24 | 2012-03-01 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor storage device |
US20130173854A1 (en) | 2012-01-02 | 2013-07-04 | Samsung Electronics Co., Ltd. | Method for managing data in storage device and memory system employing such a method |
US20140136767A1 (en) | 2012-11-14 | 2014-05-15 | Samsung Electronics Co., Ltd. | Memory system having memory controller with cache memory and nvram and method of operating same |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0704803B1 (de) * | 1994-09-30 | 1997-03-05 | Alcatel SEL Aktiengesellschaft | Verfahren zur Speicherverwaltung eines Flash-Speichers |
KR100449708B1 (ko) * | 2001-11-16 | 2004-09-22 | 삼성전자주식회사 | 플래시 메모리 관리방법 |
JP5164506B2 (ja) | 2007-10-02 | 2013-03-21 | 三菱電機株式会社 | フラッシュメモリ管理装置及びフラッシュメモリ管理方法及びプログラム |
KR101226685B1 (ko) * | 2007-11-08 | 2013-01-25 | 삼성전자주식회사 | 수직형 반도체 소자 및 그 제조 방법. |
US7934052B2 (en) | 2007-12-27 | 2011-04-26 | Pliant Technology, Inc. | System and method for performing host initiated mass storage commands using a hierarchy of data structures |
US7979626B2 (en) * | 2008-05-13 | 2011-07-12 | Microsoft Corporation | Flash recovery employing transaction log |
US8488381B2 (en) | 2009-02-02 | 2013-07-16 | Samsung Electronics Co., Ltd. | Non-volatile memory device having vertical structure and method of operating the same |
TWI435328B (zh) * | 2009-07-20 | 2014-04-21 | Silicon Motion Inc | 針對一快閃記憶體的控制器所存取之資料來進行資料型樣管理之方法以及相關之記憶裝置及其控制器 |
JP5349256B2 (ja) | 2009-11-06 | 2013-11-20 | 株式会社東芝 | メモリシステム |
KR101691092B1 (ko) * | 2010-08-26 | 2016-12-30 | 삼성전자주식회사 | 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템 |
US8553466B2 (en) * | 2010-03-04 | 2013-10-08 | Samsung Electronics Co., Ltd. | Non-volatile memory device, erasing method thereof, and memory system including the same |
US9536970B2 (en) * | 2010-03-26 | 2017-01-03 | Samsung Electronics Co., Ltd. | Three-dimensional semiconductor memory devices and methods of fabricating the same |
US8737136B2 (en) * | 2010-07-09 | 2014-05-27 | Stec, Inc. | Apparatus and method for determining a read level of a memory cell based on cycle information |
KR101682666B1 (ko) * | 2010-08-11 | 2016-12-07 | 삼성전자주식회사 | 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템 |
KR101925384B1 (ko) * | 2011-05-17 | 2019-02-28 | 삼성전자주식회사 | 불휘발성 메모리를 포함하는 메모리 시스템 및 불휘발성 메모리의 제어 방법 |
KR101356470B1 (ko) | 2011-05-26 | 2014-01-28 | 에스코어 주식회사 | 플래시 파일 시스템 |
-
2014
- 2014-03-14 KR KR1020140030279A patent/KR102233808B1/ko active IP Right Grant
-
2015
- 2015-03-03 US US14/636,700 patent/US9691487B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120051133A1 (en) | 2010-08-24 | 2012-03-01 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor storage device |
US20130173854A1 (en) | 2012-01-02 | 2013-07-04 | Samsung Electronics Co., Ltd. | Method for managing data in storage device and memory system employing such a method |
US20140136767A1 (en) | 2012-11-14 | 2014-05-15 | Samsung Electronics Co., Ltd. | Memory system having memory controller with cache memory and nvram and method of operating same |
Also Published As
Publication number | Publication date |
---|---|
US9691487B2 (en) | 2017-06-27 |
US20150261617A1 (en) | 2015-09-17 |
KR20150107401A (ko) | 2015-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102233808B1 (ko) | 저장 장치 및 그것의 테이블 관리 방법 | |
KR102248267B1 (ko) | 비휘발성 메모리 장치, 그것을 포함하는 저장 장치 및 그것의 동작 및 읽기 방법들 | |
CN105321572B (zh) | 存储设备及其读取方法 | |
US9779790B2 (en) | Nonvolatile memory device and method of driving word line of the nonvolatile memory | |
KR102355580B1 (ko) | 비휘발성 메모리 장치, 그것을 포함하는 저장 장치 및 그것의 동작 방법 | |
KR102222463B1 (ko) | 저장 장치 및 그것의 타이머 설정 방법 및 구동 방법들 | |
KR102233074B1 (ko) | 저장 장치 및 그것의 신뢰성 검증 방법 | |
KR102200493B1 (ko) | 3차원 메모리 장치 및 그것을 포함하는 저장 장치 | |
KR102154620B1 (ko) | 비휘발성 메모리 장치의 소거 방법 및 그것을 포함하는 저장 장치 | |
CN106776353B (zh) | 存储器系统及其操作方法 | |
US9870825B2 (en) | Nonvolatile memory device and method of programming the same | |
KR102179845B1 (ko) | 비휘발성 메모리 장치 및 그것의 프로그램 방법 | |
CN106847339B (zh) | 存储器装置及其操作方法 | |
KR102116674B1 (ko) | 비휘발성 메모리 장치 및 그것을 포함하는 저장 장치 및 그것의 동작 방법 | |
KR102167609B1 (ko) | 비휘발성 메모리 장치 및 그것의 프로그램 방법 | |
CN106920570B (zh) | 存储器系统及其操作方法 | |
KR20160047661A (ko) | 비휘발성 메모리 장치, 그것을 포함하는 저장 장치 및 그것의 동작 방법 | |
CN106775441B (zh) | 存储器系统 | |
KR102398611B1 (ko) | 메모리 시스템 | |
CN106406749B (zh) | 存储系统及其操作方法 | |
CN106484627B (zh) | 存储系统及其操作方法 | |
CN113010094A (zh) | 存储器系统、存储器控制器、以及操作存储器系统的方法 | |
CN113764027A (zh) | 存储器系统、存储器控制器以及存储器系统的操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |