KR101050339B1 - 플래시 메모리 장치 및 데이터 읽기 방법 - Google Patents

플래시 메모리 장치 및 데이터 읽기 방법 Download PDF

Info

Publication number
KR101050339B1
KR101050339B1 KR1020080080886A KR20080080886A KR101050339B1 KR 101050339 B1 KR101050339 B1 KR 101050339B1 KR 1020080080886 A KR1020080080886 A KR 1020080080886A KR 20080080886 A KR20080080886 A KR 20080080886A KR 101050339 B1 KR101050339 B1 KR 101050339B1
Authority
KR
South Korea
Prior art keywords
data
page buffer
read
page
write request
Prior art date
Application number
KR1020080080886A
Other languages
English (en)
Other versions
KR20100022282A (ko
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 KR1020080080886A priority Critical patent/KR101050339B1/ko
Publication of KR20100022282A publication Critical patent/KR20100022282A/ko
Application granted granted Critical
Publication of KR101050339B1 publication Critical patent/KR101050339B1/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/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)

Abstract

플래시 메모리의 읽기 요청을 효율적으로 처리하는 장치 및 방법을 제시한다. 플래시 메모리 장치는 읽기, 쓰기 요청 시 임시로 데이터를 저장하기 위한 페이지 버퍼를 포함하며, 페이지 버퍼를 무효화시키는 요청 (소거(erase), 리셋)이 수행되지 않는 한 버퍼의 데이터는 유효하다. 페이지 버퍼 내의 데이터에 관한 정보를 유지하여, 페이지 버퍼를 읽기 캐시로 이용하는 플래시 메모리 장치 및 방법이 제시된다. 플래시 메모리 장치에 읽기 작업이 요청되었을 때 해당 데이터가 페이지 버퍼에 이미 저장되어 있으면, 플래시 메모리로부터 페이지 버퍼로 로드(load) 작업을 수행하지 않고 요청된 데이터를 페이지 버퍼로부터 반환한다. 그 결과, 플래시 메모리 장치의 읽기 성능이 향상된다.
NAND 플래시 메모리, 페이지 버퍼, 읽기 캐시

Description

플래시 메모리 장치 및 데이터 읽기 방법 {FLASH MEMORY AND METHOD OF READING DATA}
본 발명의 실시예들은 플래시 메모리 장치(flash memory device)의 데이터를 읽는 방법에 관한 것이다. 본 연구는 지식경제부 및 정보통신연구진흥원의 IT성장동력기술개발사업의 일환으로 수행하였다. [2006-S-040-03, Flash Memory 기반 임베디드 멀티미디어 소프트웨어 기술 개발]
플래시 메모리는 전원이 공급되지 않아도 저장된 데이터가 유지되는 비휘발성 메모리(non-volatile memory)로서, 칩 전체 혹은 일부를 전기적으로(electrically) 소거하고 (erase) 다시 쓸 수 있는 기능을 제공한다.
플래시 메모리는 메모리 셀(cell) 어레이(array)의 구조에 따라 NAND, NOR 등의 여러 가지 타입으로 분류될 수 있다. 여기서 메모리 셀은 1비트의 데이터를 저장할 수 있는 최소 단위이다.
NAND 플래시 메모리는 고집적화 및 대용량화가 가능하므로 기존의 하드 디스크를 대체할 소자로서 메모리 시장에서 급격히 주목을 받고 있다. 현재 NAND 플래시 메모리는 휴대폰, 디지털 카메라, MP3 플레이어, 캠코더, PDA 등 휴대형 모바일 기기의 저장매체로 널리 이용되고 있다.
그러나, 플래시 메모리는 SRAM(Static Random Access Memory)이나 DRAM(Dynamic Random Access Memory)에 비해 데이터를 읽고 쓰는 시간이 길다. 플래시 메모리에 저장된 데이터를 소거하는 시간 및 플래시 메모리에 데이터를 저장하는 시간은 플래시 메모리에 저장된 데이터를 읽는 시간보다 길다. 이러한 비대칭성으로 인해 플래시 메모리 장치는 페이지(page)라고 불리는 단위 (주로 512B, 2KB, 4KB)로 데이터를 읽고 쓸 수 있다. 플래시 메모리 장치는 하나의 페이지에 대응하는 데이터를 동시에 저장할 수 있다. 이 때 플래시 메모리 장치는 페이지 버퍼(page buffer)를 포함하고, 페이지 버퍼에 데이터 페이지를 저장한 후, 데이터 페이지를 한꺼번에 메모리 셀들에 저장할 수 있다.
본 발명의 일 실시예에 따르면 플래시 메모리에 대한 읽기 성능을 향상시키기 위해 플래시 메모리로부터 데이터를 로드 (load)하는 횟수를 줄일 수 있다.
본 발명의 일 실시예에 따르면 플래시 메모리의 페이지 버퍼 (page buffer)를 읽기 캐시 (read cache)로 이용하기 위해 페이지 버퍼의 상태 정보를 관리할 수 있다.
본 발명의 일 실시예에 따르면 복수의 데이터 페이지들을 저장하는 페이지 버퍼의 페이지 버퍼 힛(hit) 비율을 높이기 위해 복수의 데이터 페이지들을 저장하는 페이지 버퍼의 상태 정보를 관리할 수 있다.
본 발명의 일 실시예에 따른 플래시 메모리 장치는 복수의 메모리 셀들을 포함하는 메모리 셀 어레이, 외부 호스트로부터 수신된 데이터를 데이터 페이지로서 저장하고, 상기 데이터 페이지를 상기 복수의 메모리 셀들에 프로그램하는 페이지 버퍼, 및 상기 외부 호스트로부터 요청된 데이터가 상기 페이지 버퍼에 저장되어 있는지 여부를 판정하는 제어부를 포함할 수 있다.
본 발명의 일 실시예에 따른 플래시 메모리의 데이터 읽기 방법은 외부 호스트로부터 요청된 데이터가 페이지 버퍼 - 상기 페이지 버퍼는 페이지 단위로 데이터를 메모리 셀 어레이에 프로그램함 - 에 저장되어 있는지 여부를 판정하는 단계, 상기 요청된 데이터가 상기 페이지 버퍼에 저장되어 있으면 상기 요청된 데이터를 상기 페이지 버퍼로부터 읽는 단계, 및 상기 페이지 버퍼로부터 읽은 데이터를 상기 외부 호스트로 전송하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따르면 플래시 메모리로부터 데이터를 로드 (load)하는 횟수를 줄일 수 있으므로 플래시 메모리에 대한 읽기 성능을 향상시킬 수 있다.
본 발명의 일 실시예에 따르면 플래시 메모리의 페이지 버퍼 (page buffer) 의 상태 정보를 관리함으로써 페이지 버퍼를 읽기 캐시(read cache)로 이용할 수 있다.
본 발명의 일 실시예에 따르면 복수의 데이터 페이지들을 저장하는 페이지 버퍼의 상태 정보를 관리함으로써 페이지 버퍼 힛(hit) 비율을 높일 수 있다.
이하에서, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일 실시예에 따른 플래시 메모리 장치(100)를 도시하는 도면이다.
플래시 메모리 장치(100)는 메모리 셀 어레이(110), 페이지 버퍼(120) 및 제어부(130)를 포함한다.
메모리 셀 어레이(110)는 복수의 메모리 셀들을 포함할 수 있다.
제어부(130)는 외부의 호스트(140)로부터 쓰기 요청(write request)를 수신 하고, 페이지 버퍼 (page buffer) (120)가 호스트(140)로부터 쓰기 데이터 (write data)를 수신하도록 페이지 버퍼(120)를 제어할 수 있다.
페이지 버퍼 (page buffer) (120)는 호스트(140)로부터 쓰기 데이터 (write data)를 수신하고, 수신된 쓰기 데이터를 저장할 수 있다.
페이지 버퍼(120)는 호스트(140)로부터 바이트 (byte) 또는 워드 (word) 단위로 쓰기 데이터를 수신할 수 있다.
복수의 메모리 셀들에 데이터가 프로그램되는 과정에는 복수의 메모리 셀들로부터 데이터를 읽는 과정보다 긴 시간이 걸리므로 플래시 메모리 장치(100)는 페이지 단위로 데이터를 프로그램할 수 있다. 페이지(page)는 동시에 프로그램되는 복수의 메모리 셀들의 개수일 수 있다. 하나의 페이지에 프로그램되는 데이터를 데이터 페이지라 할 수 있다. 데이터 페이지는, 예를 들어 256 bytes 일 수도 있고, 4 kilobytes 일 수도 있다.
페이지 버퍼(120)는 하나 이상의 데이터 페이지를 저장할 수 있다. 페이지 버퍼(120)는 호스트(140)로부터 수신된 쓰기 데이터를 쓰기 데이터의 페이지 내에서의 주소에 대응하는 위치에 저장할 수 있다.
호스트(140)는 한번 접근한 데이터에 가까운 시간 내에 한번 더 접근하는 경향이 있다. 이를 시간적 인접성 (temporal locality) 이라 한다. 이 때 접근 (access)이라 함은 읽기 또는 쓰기를 가리킬 수 있다.
호스트(140)는 접근한 데이터의 인접한 주소에 대응하는 데이터에 가까운 시간 내에 접근하는 경향이 있다. 이를 공간적 인접성 (spatial locality)라 한다.
공간적 인접성 때문에, 호스트(140)가 인접한 주소에 대응하는 쓰기 데이터를 페이지 버퍼(120)로 전송하는 경우가 빈번하게 발생할 수 있다. 페이지 버퍼(120)는 인접한 주소에 대응하는 쓰기 데이터를 연속적으로 수신하고, 연속적으로 수신된 쓰기 데이터를 데이터 페이지로서 저장할 수 있다.
페이지 버퍼(120)는 저장된 데이터 페이지를 복수의 메모리 셀들에 프로그램할 수 있다.
제어부(130)는 호스트(140)로부터 요청된 데이터가 페이지 버퍼(120)에 저장되어 있는지 여부를 판정할 수 있다.
제어부(130)는 요청된 데이터가 페이지 버퍼(120)에 저장되어 있으면 요청된 데이터를 페이지 버퍼(120)로부터 읽을 수 있다. 제어부(130)는 페이지 버퍼(120)로부터 읽은 데이터를 호스트(140)로 전송할 수 있다.
제어부(130)는 페이지 버퍼(120)로부터 요청된 데이터를 바이트 단위로 읽을 수도 있고 워드 단위로 읽을 수도 있다.
제어부(130)는 페이지 버퍼(120)의 상태 정보를 저장할 수 있다. 상태 정보는 페이지 버퍼(120)에 저장된 데이터의 유효성(validity)에 관한 정보일 수 있다. 예를 들어 복수의 메모리 셀들에 대한 소거 연산 (erase operation)이 수행되면 페이지 버퍼(120)에 저장된 데이터는 무효(invalid)한 상태가 될 수 있다. 또한 페이지 버퍼(120)에 대한 리셋 연산이 수행되는 경우에도 페이지 버퍼(120)에 저장된 데이터는 무효한 상태가 될 수 있다.
제어부(130)는 페이지 버퍼(120)에 저장된 데이터의 메모리 셀 어레이(110) 내에서의 주소 정보를 저장할 수 있다. 주소 정보는 데이터가 메모리 셀 어레이 (110) 내의 블록에 저장되는지를 나타내는 블록 주소 정보 및 블록 내의 어느 페이지에 저장되는지를 나타내는 페이지 오프셋(page offset) 정보를 포함할 수 있다.
블록(block)은 동시에 소거되는 메모리 셀의 집합을 나타낸다. 소거 연산은 쓰기 연산보다 긴 시간이 걸리므로 플래시 메모리 장치(100)는 다수의 메모리 셀들에 대하여 동시에 수행할 수 있다. 이 때 하나의 블록은 복수의 페이지들을 포함할 수 있다.
제어부(130)는 상태 정보 및 주소 정보에 기초하여 요청된 데이터가 페이지 버퍼(120)에 저장되어 있는지 여부를 판정할 수 있다. 제어부(130)는 요청된 데이터의 주소로부터 블록 주소 필드(block address field) 및 페이지 오프셋 필드(page offset field)를 분리할 수 있다. 제어부(130)는 요청된 데이터의 주소로부터 페이지 내에서의 위치 정보를 추출할 수도 있다.
제어부(130)는 분리된 블록 주소 필드를 미리 저장된 블록 주소 정보와 비교하고, 분리된 페이지 오프셋 필드를 미리 저장된 페이지 오프셋 정보와 비교할 수 있다. 제어부(130)는 분리된 블록 주소 필드가 미리 저장된 블록 주소 정보와 같고, 분리된 페이지 오프셋 필드가 미리 저장된 페이지 오프셋 정보와 같으면 요청된 데이터가 페이지 버퍼(120)에 저장되어 있다고 판정할 수 있다.
요청된 데이터가 페이지 버퍼(120)에 저장되어 있으면 제어부(130)는 상기 추출된 페이지 내에서의 위치 정보에 기초하여 상기 요청된 데이터를 페이지 버퍼(120)로부터 읽을 수 있다.
요청된 데이터가 페이지 버퍼(120)에 저장되어 있지 않으면 제어부(130)는 요청된 데이터를 포함하는 데이터 페이지를 메모리 셀 어레이(110)로부터 로드 (load)하도록 페이지 버퍼(120)를 제어할 수 있다. 페이지 버퍼(120)는 제어부(130)의 요청에 따라 메모리 셀 어레이(110)로부터 요청된 데이터를 포함하는 데이터 페이지를 로드할 수 있다. 제어부(130)는 메모리 셀 어레이(110) 내에서 상기 요청된 데이터의 블록 주소 필드 및 페이지 오프셋 필드에 대응하는 페이지를 활성화할 수 있다. 메모리 셀 어레이(110)는 활성화된 페이지에 저장된 데이터 페이지를 출력할 수 있다. 페이지 버퍼(120)는 메모리 셀 어레이(110)로부터 출력된 데이터 페이지를 로드할 수 있다.
제어부(130)는 로드된 데이터 페이지 중 상기 추출된 위치 정보에 기초하여 상기 요청된 데이터를 페이지 버퍼(120)로부터 읽을 수 있다. 제어부(130)는 페이지 버퍼(120)로부터 읽은 데이터를 호스트(140)로 전송할 수 있다.
플래시 메모리 장치(100)는 호스트(140)로부터 요청된 데이터가 페이지 버퍼(120)에 저장되어 있으면 메모리 셀 어레이(110)로부터 페이지 버퍼(120)로의 로드 연산 (load operation) 없이 요청된 데이터를 호스트(140)로 반환(return)할 수 있다. 시간적 지역성 (temporal locality) 때문에, 호스트(140)는 플래시 메모리 장치(100)에 저장한 데이터를 가까운 시간 내에 빈번하게 다시 요청할 수 있다. 플래시 메모리 장치(100)는 페이지 버퍼(120) 및 메모리 셀 어레이(110) 간의 데이터 전송 횟수를 줄일 수 있으므로 호스트(140)에 대한 읽기 연산 (read operation)의 성능을 높일 수 있다.
읽기 연산의 성능을 높이기 위하여 복수의 페이지 버퍼들을 포함하는 실시예가 도 2에 도시된다.
도 2는 본 발명의 일 실시예에 따른 플래시 메모리 장치(200)를 도시하는 도면이다.
도 2를 참조하면 플래시 메모리 장치(200)는 메모리 셀 어레이(210), 및 N개의 페이지 버퍼들을 포함할 수 있다. 플래시 메모리 장치(200)는 스테이트 머신 (state machine) (230), 버퍼 선택기(250), 버퍼 선택기(260), 호스트 인터페이스(270), 및 상태 테이블(240)을 더 포함할 수 있다.
메모리 셀 어레이(210)는 복수의 메모리 셀들을 포함할 수 있다.
호스트 인터페이스(270)는 외부의 호스트로부터 쓰기 요청을 수신할 수 있다. 호스트 인터페이스(270)는 쓰기 요청이 수신되었음을 스테이트 머신(230)에 통지하고 쓰기 요청에 대응하는 주소 정보를 스테이트 머신(230)으로 전송할 수 있다.
스테이트 머신(230)은 상태 테이블(240)에 저장된 엔트리들 및 쓰기 요청에 대응하는 주소 정보에 기초하여 N개의 페이지 버퍼들 중 어느 하나를 선택할 수 있다. 스테이트 머신(230)은 선택된 페이지 버퍼에 대응하는 신호를 버퍼 선택기(260)로 전송할 수 있다. 버퍼 선택기(260)는 스테이트 머신(230)으로부터 수신된 신호에 따라 쓰기 요청에 대응하는 데이터를 선택된 페이지 버퍼로 전송할 수 있다.
예를 들어 페이지 버퍼 1 (221)이 선택된 경우, 버퍼 선택기(260)는 쓰기 요 청에 대응하는 데이터를 페이지 버퍼 1 (221)로 전송할 수 있다. 이 때 페이지 버퍼 1 (221)는 쓰기 요청에 대응하는 데이터를 저장할 수 있다.
스테이트 머신(230)은 페이지 버퍼 1 (221)에 저장된 데이터를 메모리 셀 어레이(210)에 프로그램하기로 결정할 수 있다. 스테이트 머신(230)은 버퍼 선택기(250)를 제어하여 페이지 버퍼 1 (221)에 저장된 데이터를 메모리 셀 어레이(210)에 프로그램할 수 있다.
스테이트 머신(230)은 상태 테이블(240)의 엔트리 1에 페이지 버퍼 1 (221)에 쓰기 요청에 대응하는 주소 정보를 저장할 수 있다. 주소 정보는 블록 주소 필드 및 페이지 오프셋 필드를 포함할 수 있다.
엔트리 1에 저장된 블록 주소 필드와 다른 블록 주소 필드 및 페이지 오프셋 필드와 다른 페이지 오프셋 필드를 가지는 새로운 쓰기 요청이 수신되면, 스테이트 머신(230)은 페이지 버퍼 2 (222)를 새롭게 선택할 수 있다. 호스트 인터페이스(270) 및 버퍼 선택기(260)는 새로운 쓰기 요청에 대응하는 데이터를 페이지 버퍼 2 (222)로 전송할 수 있다. 페이지 버퍼 2 (222)는 새로운 쓰기 요청에 대응하는 데이터를 저장할 수 있다.
스테이트 머신(230)은 버퍼 선택기(250)를 제어하여 페이지 버퍼 2 (222)에 저장된 데이터를 메모리 셀 어레이(210)에 프로그램할 수 있다.
스테이트 머신(230)은 상태 테이블(240)의 엔트리 2에 페이지 버퍼 2 (222)에 쓰기 요청에 대응하는 주소 정보를 저장할 수 있다.
마찬가지로, 페이지 버퍼 N (223)에 저장된 데이터에 대응하는 쓰기 요청에 관한 주소 정보는 엔트리 N에 저장될 수 있다.
플래시 메모리 장치(200)는 페이지 버퍼 1 (221) 내지 페이지 버퍼 N (223), N개의 페이지 버퍼들을 포함하므로 N개의 서로 다른 주소에 대응하는 쓰기 요청에 대응하는 데이터를 저장할 수 있다. 따라서 플래시 메모리 장치(200)는 호스트로부터의 읽기 요청에 대응하는 데이터를 메모리 셀 어레이(210)에서 로드 (load) 연산 없이 호스트로 반환(return)할 확률(probability)을 높일 수 있다.
도 3은 도 2의 엔트리 1 내지 엔트리 N 중 어느 하나에 저장되는 주소 및 상태 정보의 일 예를 도시하는 도면이다.
도 3을 참조하면 주소 및 상태 정보는 유효성 필드 (validity field) (310), 데이터의 블록 주소 필드 (block address field) (320), 및 데이터의 페이지 오프셋 필드 (page offset field) (330)를 포함할 수 있다.
유효성 필드 (310)는 페이지 버퍼에 저장된 데이터가 유효(valid)한 데이터인지 여부를 나타낼 수 있다. 예를 들어 유효성 필드 (310)는 하나의 비트 (bit)로 표현될 수 있으며, 유효성 필드 (310)가 "1"이면 페이지 버퍼에 저장된 데이터는 유효한 데이터이고, 유효성 필드 (310)가 "0"이면 페이지 버퍼에 저장된 데이터는 유효하지 않은 데이터일 수 있다.
블록 주소 필드 (320)는 페이지 버퍼에 저장된 데이터의 메모리 셀 어레이 (210) 내에서의 블록 주소를 나타낼 수 있다. 페이지 오프셋 필드 (330)는 페이지 버퍼에 저장된 데이터의 메모리 셀 어레이 (210) 내에서의 페이지 오프셋 주소를 나타낼 수 있다. 예를 들어 블록 주소 필드 (320)가 "55"이고 페이지 오프셋 필드 (330)가 "15"이면 블록 55의 페이지 15가 페이지 버퍼에 저장되어 있음을 나타낼 수 있다.
도 4는 본 발명의 일 실시예에 따른 엔트리 갱신 방법을 도시하는 동작 흐름도이다.
도 4를 참조하면 엔트리 갱신 방법은 수신된 연산 (operation)이 읽기 또는 쓰기 연산인지 판정한다(S410).
엔트리 갱신 방법은 수신된 연산이 읽기 또는 쓰기 연산이면 상태 테이블의 엔트리의 유효성 비트를 세트(set)한다(S420).
엔트리 갱신 방법은 캐시 데이터(cache data)의 블록 주소를 갱신한다 (S430).
엔트리 갱신 방법은 캐시 데이터의 페이지 오프셋 (page offset)을 갱신한다 (S440).
엔트리 갱신 방법은 수신된 연산이 읽기 또는 쓰기 연산이 아니면 지우기(소거, erase) 또는 리셋 (reset) 연산인지 판정한다(S450).
엔트리 갱신 방법은 수신된 연산이 소거 또는 리셋 연산이면 엔트리의 유효성 비트를 클리어(clear)한다 (S460).
엔트리 갱신 방법은 수신된 연산이 소거 또는 리셋 연산이 아니면 해당 프로세스를 종료한다.
도 5는 본 발명의 일 실시예에 따른 데이터 읽기 방법을 도시하는 동작 흐름도이다.
도 5를 참조하면 데이터 읽기 방법은 외부의 호스트로부터 요청된 데이터가 페이지 버퍼에 저장되어 있는지 여부를 판정한다(S510).
데이터 읽기 방법은 요청된 데이터가 페이지 버퍼에 저장되어 있으면 요청된 데이터를 페이지 버퍼로부터 읽는다(S520).
데이터 읽기 방법은 요청된 데이터가 페이지 버퍼에 저장되어 있지 않으면 메모리 셀 어레이로부터 페이지 버퍼로 데이터를 로드(load)한다 (S530). 이 때 로드된 데이터는 요청된 데이터를 포함하는 데이터 페이지일 수 있다.
데이터 읽기 방법은 로드된 데이터 중 요청된 데이터를 페이지 버퍼로부터 읽는다 (S540).
데이터 읽기 방법은 페이지 버퍼로부터 읽은 데이터를 외부 호스트로 전송한다(S550).
도 6은 도 5의 단계 (S510)의 일 예를 더욱 상세히 도시하는 동작 흐름도이다.
도 6을 참조하면 데이터 읽기 방법은 인덱스 k의 값을 "1"로 초기화한다 (S610).
데이터 읽기 방법은 인덱스 k에 대응하는 엔트리 k를 선택한다(S620).
데이터 읽기 방법은 엔트리 k의 유효성 비트가 "1"인지 판정한다 (S630).
엔트리 k의 유효성 비트가 "1"이면 데이터 읽기 방법은 읽기 요청의 블록 주소를 캐시 데이터의 블록 주소와 비교한다(S640).
읽기 요청의 블록 주소가 캐시 데이터의 블록 주소와 동일하면 데이터 읽기 방법은 읽기 요청의 페이지 오프셋을 캐시 데이터의 페이지 오프셋과 비교한다 (S650).
읽기 요청의 페이지 오프셋이 캐시 데이터의 페이지 오프셋과 동일하면 데이터 읽기 방법은 페이지 버퍼 k를 선택한다 (S660).
엔트리 k의 유효성 비트가 "1"이 아니면 데이터 읽기 방법은 k가 페이지 버퍼에 저장되는 데이터 페이지들의 개수 N보다 작은지 여부를 판정한다 (S670).
읽기 요청의 블록 주소가 캐시 데이터의 블록 주소와 동일하지 않으면 데이터 읽기 방법은 k가 페이지 버퍼에 저장되는 데이터 페이지들의 개수 N보다 작은지 여부를 판정한다 (S670).
읽기 요청의 페이지 오프셋이 캐시 데이터의 페이지 오프셋과 동일하지 않으면 데이터 읽기 방법은 k가 페이지 버퍼에 저장되는 데이터 페이지들의 개수 N보다 작은지 여부를 판정한다 (S670).
데이터 읽기 방법은 인덱스 k가 N보다 작으면 인덱스 k를 1만큼 증가시킨다 (S680).
데이터 읽기 방법은 증가된 인덱스 k에 대하여 단계 (S620)를 다시 수행한다.
인덱스 k가 N 이상이면 데이터 읽기 방법은 단계(S530)를 수행한다.
본 발명의 일 실시예에 따른 플래시 메모리 장치의 데이터 읽기 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다. 상기 하드웨어 장치는 플래시 메모리 장치에 내장된 페리페럴 (peripheral) 회로를 통해서도 구현될 수 있고, 또는 플래시 메모리 장치 외부의 콘트롤러에 의하여 구현될 수도 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
도 1은 본 발명의 일 실시예에 따른 플래시 메모리 장치(100)를 도시하는 도면이다.
도 2는 본 발명의 일 실시예에 따른 플래시 메모리 장치(200)를 도시하는 도면이다.
도 3은 도 2의 엔트리 1 내지 엔트리 N 중 어느 하나에 저장되는 주소 및 상태 정보의 일 예를 도시하는 도면이다.
도 4는 본 발명의 일 실시예에 따른 엔트리 갱신 방법을 도시하는 동작 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 데이터 읽기 방법을 도시하는 동작 흐름도이다.
도 6은 도 5의 단계 (S510)의 일 예를 더욱 상세히 도시하는 동작 흐름도이다.
<도면의 주요 부분에 대한 부호의 설명>
100: 플래시 메모리 장치
110: 메모리 셀 어레이
120: 페이지 버퍼
130: 제어부
140: 호스트

Claims (13)

  1. 복수의 메모리 셀들을 포함하는 메모리 셀 어레이;
    외부 호스트로부터 쓰기 요청을 수신하는 제어부; 및
    상기 외부 호스트로부터 상기 쓰기 요청이 있는 경우 상기 제어부의 제어에 따라 상기 외부 호스트로부터 상기 쓰기 요청된 데이터를 데이터 페이지로서 저장하고, 상기 쓰기 요청에 따라 상기 데이터 페이지를 상기 복수의 메모리 셀들에 프로그램하는 페이지 버퍼
    를 포함하고,
    상기 제어부는
    상기 외부 호스트로부터 읽기 요청을 수신하고, 상기 외부 호스트로부터 상기 읽기 요청이 있는 경우, 상기 읽기 요청된 데이터가 상기 쓰기 요청에 따라 상기 페이지 버퍼에 이미 저장되어 있는지 여부를 판정하고, 상기 읽기 요청된 데이터가 상기 쓰기 요청에 따라 상기 페이지 버퍼에 이미 저장되어 있으면 상기 읽기 요청된 데이터를 상기 페이지 버퍼로부터 읽고, 상기 페이지 버퍼로부터 읽은 데이터를 상기 외부 호스트로 전송하며,
    상기 쓰기 요청에 따라 상기 페이지 버퍼에 저장된 데이터의 상태 정보 및 상기 페이지 버퍼에 저장된 데이터의 상기 메모리 셀 어레이 내에서의 주소 정보를 저장하는 상태 테이블
    을 포함하는 플래시 메모리 장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 제어부는
    상기 페이지 버퍼로부터 바이트 단위로 데이터를 읽는 플래시 메모리 장치.
  4. 삭제
  5. 제1항에 있어서,
    상기 제어부는
    상기 상태 테이블에 저장된 상기 상태 정보 및 상기 주소 정보에 기초하여 상기 읽기 요청된 데이터가 상기 쓰기 요청에 따라 상기 페이지 버퍼에 이미 저장되어 있는지 여부를 판정하는 플래시 메모리 장치.
  6. 제1항에 있어서,
    상기 페이지 버퍼는
    상기 외부 호스트로부터 바이트 단위로 데이터를 수신하는 플래시 메모리 장치.
  7. 제1항에 있어서,
    상기 제어부는
    상기 읽기 요청된 데이터가 상기 쓰기 요청에 따라 상기 페이지 버퍼에 이미 저장되어 있지 않으면 상기 읽기 요청된 데이터를 포함하는 데이터 페이지를 상기 메모리 셀 어레이로부터 로드하도록 상기 페이지 버퍼를 제어하는 플래시 메모리 장치.
  8. 제7항에 있어서,
    상기 제어부는
    상기 로드된 데이터 페이지 중 상기 읽기 요청된 데이터를 상기 페이지 버퍼로부터 읽고, 상기 페이지 버퍼로부터 읽은 데이터를 상기 외부 호스트로 전송하는 플래시 메모리 장치.
  9. 외부 호스트로부터 쓰기 요청을 수신하는 단계;
    상기 외부 호스트로부터 상기 쓰기 요청이 있는 경우, 상기 외부 호스트로부터 상기 쓰기 요청된 데이터를 데이터 페이지로서 저장하고 상기 쓰기 요청에 따라 상기 데이터 페이지를 복수의 메모리 셀들에 프로그램하도록 페이지 버퍼를 제어하는 단계;
    상기 외부 호스트로부터 읽기 요청을 수신하는 단계;
    상기 외부 호스트로부터 상기 읽기 요청이 있는 경우, 상기 읽기 요청된 데이터가 상기 외부 호스트로부터의 상기 쓰기 요청에 따라 상기 페이지 버퍼에 이미 저장되어 있는지 여부를 판정하는 단계;
    상기 읽기 요청된 데이터가 상기 외부 호스트로부터의 상기 쓰기 요청에 따라 상기 페이지 버퍼에 이미 저장되어 있으면 상기 읽기 요청된 데이터를 상기 페이지 버퍼로부터 읽는 단계; 및
    상기 페이지 버퍼로부터 읽은 데이터를 상기 외부 호스트로 전송하는 단계
    를 포함하고,
    상기 판정하는 단계는
    상기 쓰기 요청에 따라 상기 페이지 버퍼에 저장된 데이터의 상태 정보 및 상기 페이지 버퍼에 저장된 데이터의 상기 메모리 셀 어레이 내에서의 주소 정보를 저장하는 상태 테이블을 이용하는 플래시 메모리의 데이터 읽기 방법.
  10. 제9항에 있어서,
    상기 읽기 요청된 데이터를 상기 페이지 버퍼로부터 읽는 단계는
    상기 페이지 버퍼로부터 바이트 단위로 상기 읽기 요청된 데이터를 읽는 플래시 메모리의 데이터 읽기 방법.
  11. 제9항에 있어서,
    상기 판정하는 단계는
    상기 상태 테이블로부터 상기 상태 정보 및 상기 주소 정보를 읽는 단계
    상기 판정하는 단계는
    상기 페이지 버퍼의 상태 정보 및 상기 페이지 버퍼에 저장된 데이터의 상기 메모리 셀 어레이 내에서의 주소 정보를 저장하는 상태 테이블로부터 상기 상태 정보 및 상기 주소 정보를 읽는 단계; 및
    상기 상태 정보 및 상기 주소 정보에 기초하여 상기 읽기 요청된 데이터가 상기 쓰기 요청에 따라 상기 페이지 버퍼에 이미 저장되어 있는지 여부를 판정하는 단계
    를 포함하는 플래시 메모리의 데이터 읽기 방법.
  12. 제9항에 있어서,
    상기 읽기 요청된 데이터가 상기 쓰기 요청에 따라 상기 페이지 버퍼에 이미 저장되어 있지 않으면 상기 읽기 요청된 데이터를 포함하는 데이터 페이지를 상기 메모리 셀 어레이로부터 로드하는 단계
    를 더 포함하는 플래시 메모리의 데이터 읽기 방법.
  13. 제9항 내지 제12항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
KR1020080080886A 2008-08-19 2008-08-19 플래시 메모리 장치 및 데이터 읽기 방법 KR101050339B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080080886A KR101050339B1 (ko) 2008-08-19 2008-08-19 플래시 메모리 장치 및 데이터 읽기 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080080886A KR101050339B1 (ko) 2008-08-19 2008-08-19 플래시 메모리 장치 및 데이터 읽기 방법

Publications (2)

Publication Number Publication Date
KR20100022282A KR20100022282A (ko) 2010-03-02
KR101050339B1 true KR101050339B1 (ko) 2011-07-19

Family

ID=42174871

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080080886A KR101050339B1 (ko) 2008-08-19 2008-08-19 플래시 메모리 장치 및 데이터 읽기 방법

Country Status (1)

Country Link
KR (1) KR101050339B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9886219B2 (en) 2014-11-26 2018-02-06 Samsung Electronics Co., Ltd. Storage device including nonvolatile memory device and method of programming the same
US20190347193A1 (en) * 2018-05-08 2019-11-14 SK Hynix Inc. Memory system and operating method thereof

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102308777B1 (ko) 2014-06-02 2021-10-05 삼성전자주식회사 비휘발성 메모리 시스템 및 비휘발성 메모리 시스템의 동작방법
KR102364381B1 (ko) 2015-03-06 2022-02-18 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작방법
KR102314137B1 (ko) 2015-11-04 2021-10-18 삼성전자 주식회사 리커버리 동작을 선택적으로 수행하는 불휘발성 메모리 장치 및 그 동작방법
KR20180114417A (ko) 2017-04-10 2018-10-18 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작 방법
KR102452512B1 (ko) * 2018-02-26 2022-10-11 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990063999A (ko) * 1995-10-03 1999-07-26 피터 엔. 데트킨 컴퓨터 시스템의 플래시 eeprom 주메모리
US20080183982A1 (en) * 2007-01-25 2008-07-31 Megachips Corporation Memory controller
KR20080099692A (ko) * 2007-05-10 2008-11-13 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템 및그것의 읽기 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990063999A (ko) * 1995-10-03 1999-07-26 피터 엔. 데트킨 컴퓨터 시스템의 플래시 eeprom 주메모리
US20080183982A1 (en) * 2007-01-25 2008-07-31 Megachips Corporation Memory controller
KR20080099692A (ko) * 2007-05-10 2008-11-13 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템 및그것의 읽기 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9886219B2 (en) 2014-11-26 2018-02-06 Samsung Electronics Co., Ltd. Storage device including nonvolatile memory device and method of programming the same
US20190347193A1 (en) * 2018-05-08 2019-11-14 SK Hynix Inc. Memory system and operating method thereof

Also Published As

Publication number Publication date
KR20100022282A (ko) 2010-03-02

Similar Documents

Publication Publication Date Title
US7778078B2 (en) Memory system and control method thereof
US10740013B2 (en) Non-volatile data-storage device with spare block pools using a block clearing method
KR101050339B1 (ko) 플래시 메모리 장치 및 데이터 읽기 방법
JP4910360B2 (ja) 記憶装置、コンピュータシステム、およびデータ書き込み方法
KR101081716B1 (ko) 기억 장치
KR101453313B1 (ko) 플래시 메모리 기반의 페이지 주소 사상 방법 및 시스템
US8904092B2 (en) Identifying a location containing invalid data in a storage media
CN110955384B (zh) 数据储存装置以及非挥发式存储器控制方法
KR20200033985A (ko) 논리적/물리적 매핑
US8321624B2 (en) Memory device and management method of memory device
US8127072B2 (en) Data storage device and method for accessing flash memory
CN109300494B (zh) 存储设备、存储系统及操作其的方法
JP2007034944A (ja) コンピュータシステム
KR20200086143A (ko) 저장 장치 및 그것의 데이터 처리 방법
US20130219105A1 (en) Method, device and system for caching for non-volatile memory device
KR101030146B1 (ko) 페이지 버퍼를 쓰기 캐시로 이용하는 플래시 기반 저장 장치 및 이용 방법
JP2009037317A (ja) メモリーコントローラ、及びこれを用いた不揮発性記憶装置並びに不揮発性記憶システム
KR20200116375A (ko) 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법
JP5036078B2 (ja) 記憶装置
KR102516539B1 (ko) 메모리 컨트롤러 및 그 동작 방법
JP2008197981A (ja) 半導体記憶装置
JP2008181203A (ja) 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法
US12118241B2 (en) Memory controller, memory system, and operating method thereof
KR20230037992A (ko) 로우 해머 방지 회로를 포함하는 메모리 장치 및 이의 동작 방법
JP4558054B2 (ja) メモリシステム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140702

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150629

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160204

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170626

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180620

Year of fee payment: 8