KR20050059984A - 버퍼 메모리를 내장한 플래시 메모리 장치 및 플래시메모리 시스템 - Google Patents

버퍼 메모리를 내장한 플래시 메모리 장치 및 플래시메모리 시스템 Download PDF

Info

Publication number
KR20050059984A
KR20050059984A KR1020040080091A KR20040080091A KR20050059984A KR 20050059984 A KR20050059984 A KR 20050059984A KR 1020040080091 A KR1020040080091 A KR 1020040080091A KR 20040080091 A KR20040080091 A KR 20040080091A KR 20050059984 A KR20050059984 A KR 20050059984A
Authority
KR
South Korea
Prior art keywords
flash memory
memory
address
buffer
data
Prior art date
Application number
KR1020040080091A
Other languages
English (en)
Other versions
KR100780861B1 (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 삼성전자주식회사
Publication of KR20050059984A publication Critical patent/KR20050059984A/ko
Application granted granted Critical
Publication of KR100780861B1 publication Critical patent/KR100780861B1/ko

Links

Classifications

    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

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)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

여기에 개시된 플래시 메모리 장치 및 플래시 메모리 시스템은, 내부에 구비된 버퍼 메모리의 어드레스 구조와 메모리 용량을 플래시 메모리의 특성에 적합하도록 조절한다. 그리고, 플래시 메모리의 어드레스와, 버퍼 메모리의 어드레스, 및 컴멘드를 레지스터 내에 미리 정의해 둔다. 그 결과, 플래시 메모리 장치의 동작 제어가 용이해지고, 서로 다른 어드레스를 가지는 플래시 메모리와 버퍼 메모리간의 인터페이스가 간단해 진다.

Description

버퍼 메모리를 내장한 플래시 메모리 장치 및 플래시 메모리 시스템{FLASH MEMORY DEVICE AND FLASH MEMORY SYSTEM INCLUDING BUFFER MEMORY}
본 발명은 플래시 메모리 장치에 관한 것으로, 좀 더 구체적으로는 버퍼 메모리를 내장한 플래시 메모리 장치 및 플래시 메모리 시스템에 관한 것이다.
플래시 메모리(Flash Memory)는 고집적이 가능한 불휘발성 메모리(non-volatile memory)이다. 플래시 메모리는 데이터 보존성이 우수하기 때문에 시스템 내에서 메인 메모리로서 사용된다. 플래시 메모리는 디램(Dynamic RAM) 또는 에스램(Static RAM) 인터페이스 방식에도 적용 가능하다.
플래시 메모리는 고집적 및 대용량이 가능하므로 기존의 하드 디스크 및 플로피 디스크를 대체할 소자로서 메모리 시장에서 급격히 주목을 받고 있다. 현재 플래시 메모리는 휴대폰, 디지탈 카메라, MP3 플레이어, 캠코더, PDA 등 휴대형 디지탈 전자기기의 저장매체로 널리 이용되고 있다.
그러나 고집적 및 대용량의 정보 저장이 가능한 플래시 메모리는 램(RAM)에 비해 데이터를 읽고 쓰는 시간이 길고, 랜덤 액세스가 불가능하다는 단점이 있다. 랜덤 액세스가 불가능한 플래시 메모리의 단점을 극복하기 위하여 플래시 메모리 장치 내에 버퍼 메모리를 두어 랜덤 액세스를 지원하는 새로운 방법들이 개발되고 있다. 상기 버퍼 메모리는 랜덤 액세스가 가능한 메모리(예를 들면, DRAM이나 SRAM)이다.
버퍼 메모리를 내장한 플래시 메모리 장치에서는, 데이터를 호스트로부터 직접 플래시 메모리에 저장하지 않고, 랜덤 액세스가 가능한 버퍼 메모리에 먼저 저장한다. 그 다음에, 버퍼 메모리에 저장된 데이터를 플래시 메모리에 저장한다. 마찬가지로, 플래시 메모리에 저장된 데이터를 직접 호스트로 전송하지 않고, 버퍼 메모리에 먼저 저장한다. 그 다음에, 버퍼 메모리에 저장된 데이터를 호스트로 전송한다.
특히, 플래시 메모리 장치가 랜덤 액세스를 지원하기 위해서는, 플래시 메모리에 데이터를 쓰기 전에, 또는 호스트에 데이터를 전송하기 전에 데이터를 임시적로 저장하기 위한 버퍼 메모리가 필요하다. 따라서 플래시 메모리를 사용하여 데이터를 랜덤하게 액세스하고자 하는 시스템에서 버퍼 메모리의 존재는 필수적이라 할 수 있다.
그러나, 플래시 메모리와 버퍼 메모리는 각각 불휘발성 메모리와 휘발성 메모리로서, 어드레스 구조를 달리한다. 예컨대, 플래시 메모리는 쓰기 및 읽기의 기본 단위인 페이지로 구성되어 있다. 상기 페이지는 메인 영역과 스페어 영역으로 구분된다. 일반적으로 한 페이지의 메모리 용량은 528 Byte 이다. 이중에서 메인 영역은 512 Byte 이고 스페어 영역은 16 Byte 이다. 이와 달리, 버퍼 메모리는 페이지 구분이 없으며, 메인 영역과 스페어 영역으로 구분되어 있지 않다. 따라서 버퍼 메모리를 효율적으로 사용하기 위해서는 상기 버퍼 메모리의 구조를 플래시 메모리의 구조와 일치시킬 필요가 있다.
또한, 플래시 메모리와 버퍼 메모리는 서로 어드레스 구조를 달리하기 때문에, 호스트와 플래시 메모리 및 버퍼 메모리간의 인터페이스가 복잡해지는 문제점이 있다. 예를 들어, 버퍼 메모리의 어느 어드레스 영역에 저장되어 있는 데이터를 로딩하여 프래시 메모리의 어느 어느레스 영역에 프로그램 하거나, 또는 플래시 메모리의 어느 어드레스 영역을 읽어서 버퍼 메모리의 어느 어드레스 영역에 저장하는 동작을 수행할 때, 기존의 플래시 메모리의 인터페이스를 그대로 사용하게 되면, 복수 회에 걸쳐 어드레스를 연속으로 인가해야 하기 때문에 인터페이스가 상당히 복잡해 지게 된다. 따라서, 플래시 메모리와 버퍼 메모리 등이 하나의 메모리 장치 또는 시스템에 구비된 경우, 상기 메모리들간의 인터페이스를 간단히 해줄 수 있는 새로운 방안이 요구된다.
본 발명은 상술한 문제점을 해결하기 위하여 제안된 것으로, 본 발명의 목적은 플래시 메모리와 동일한 어드레스 구조를 가지는 버퍼 메모리를 내장함으로써 랜덤 액세스가 효율적으로 수행되는 플래시 메모리 장치 및 플래시 메모리 시스템을 제공하는데 있다.
본 발명의 다른 목적은 서로 다른 어드레스 구조를 가지는 내장 메모리들간의 인터페이스를 간단히 해줄 수 있는 플래시 메모리 장치 및 플래시 메모리 시스템을 제공하는데 있다.
상술한 기술적 과제를 달성하기 위한 본 발명에 따른 플래시 메모리 장치는, 플래시 메모리와; 상기 플래시 메모리에 기입될 또는 상기 플래시 메모리로부터 독출된 데이터를 임시로 저장하는 버퍼 메모리와; 상기 플래시 메모리 및 상기 버퍼 메모리의 어드레스와, 커멘드들이 소정의 영역에 각각 할당된 레지스터; 그리고 상기 레지스터에 할당되어 있는 상기 커멘드 및 상기 어드레스에 응답해서 호스트로부터 인가된 어드레스를 상기 버퍼 메모리에 적합한 어드레스로 맵핑하고, 상기 맵핑된 어드레스를 근거로 하여 상기 버퍼 메모리의 데이터가 상기 플래시 메모리에 저장되도록 또는 상기 플래시 메모리의 데이터가 상기 버퍼 메모리에 저장되도록 상기 플래시 메모리와 버퍼 메모리를 제어하는 제어수단을 포함하는 것을 특징으로 한다.
상술한 기술적 과제를 달성하기 위한 본 발명에 따른 플래시 메모리 장치는, 메인 영역과 스페어 영역으로 구분되는 플래시 메모리와; 상기 플래시 메모리에 기입될 또는 상기 플래시 메모리로부터 독출된 데이터를 임시로 저장하는, 그리고 상기 플래시 메모리와 동일한 어드레스 구조를 가지도록 메인 영역과 스페어 영역으로 구분되는 버퍼 메모리와; 그리고 호스트로부터 인가된 어드레스를 상기 버퍼 메모리에 적합한 어드레스로 맵핑하는, 그리고 상기 버퍼 메모리의 데이터가 상기 플래시 메모리에 저장되도록 또는 상기 플래시 메모리의 데이터가 상기 버퍼 메모리에 저장되도록 상기 플래시 메모리와 버퍼 메모리를 제어하는 제어수단을 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 플래시 메모리, 상기 버퍼 메모리, 그리고 상기 제어수단은 단일 칩으로 이루어지는 것을 특징으로 한다.
이 실시예에 있어서, 상기 호스트로부터 인가되는 제어신호, 어드레스, 데이터를 상기 플래시 메모리 장치를 동작시키기 위한 내부 신호로 변경하는 호스트 인터페이스를 더 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 버퍼 메모리는 랜덤 액세스가 가능한 메모리인 것을 특징으로 한다.
이 실시예에 있어서, 상기 메모리는 에스램(SRAM) 또는 디램(DRAM)인 것을 특징으로 한다.
이 실시예에 있어서, 상기 제어수단은, 호스트로부터 전송되는 데이터를 상기 플래시 메모리의 어드레스, 상기 버퍼 메모리의 어드레스, 커맨드로서 임시 저장하는 레지스터와; 상기 버퍼 메모리의 읽기 및 쓰기 동작을 제어하는 버퍼 컨트롤러와; 상기 플래시 메모리의 읽기 및 쓰기 동작을 제어하는 플래시 컨트롤러와; 그리고 상기 레지스터에 저장된 값들에 따라 상기 버퍼 메모리에 저장된 데이터가 읽혀지도록 그리고 상기 읽혀진 데이터가 상기 플래시 메모리에 저장하도록 상기 버퍼 컨트롤러와 상기 플래시 컨트롤러를 제어하는 스테이트 머신을 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 스테이트 머신에 의해 제어되며, 상기 버퍼 메모리와 상기 플래시 메모리 사이에 전송되는 데이터의 에러를 정정하는 에러 정정 및 데이터 입출력 회로를 더 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 제어수단은 상기 버퍼 컨트롤러로부터 인가되는 어드레스를 맵핑하는 디코더를 더 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 디코더는 상기 버퍼 메모리로 입력되는 어드레스가 메인 영역과 스페어 영역으로 분리되도록 맵핑하는 것을 특징으로 한다.
본 발명에 따른 메모리 시스템은, 호스트와; 그리고 상기 호스트의 요구에 따라 데이터를 저장하거나 저장된 데이터를 출력하는 플래시 메모리 장치를 포함한다. 여기서 상기 플래시 메모리 장치는, 메인 영역과 스페어 영역으로 구분되는 플래시 메모리와; 상기 플래시 메모리에 기입될 또는 상기 플래시 메모리로부터 독출된 데이터를 임시로 저장하는, 그리고 상기 플래시 메모리와 동일한 어드레스 구조를 가지도록 메인 영역과 스페어 영역으로 구분되는 버퍼 메모리와; 그리고 호스트로부터 인가된 어드레스를 상기 버퍼 메모리에 적합한 어드레스로 맵핑하는, 그리고 상기 버퍼 메모리의 데이터가 상기 플래시 메모리에 저장되도록 또는 상기 플래시 메모리의 데이터가 상기 버퍼 메모리에 저장되도록 상기 플래시 메모리와 버퍼 메모리를 제어하는 제어수단을 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 플래시 메모리, 상기 버퍼 메모리, 그리고 상기 제어수단은 단일 칩으로 이루어지는 것을 특징으로 한다.
이 실시예에 있어서, 상기 호스트로부터 인가되는 제어신호, 어드레스, 데이터를 상기 플래시 메모리 장치를 동작시키기 위한 내부 신호로 변경하는 호스트 인터페이스를 더 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 버퍼 메모리는 랜덤 액세스가 가능한 메모리인 것을 특징으로 한다.
이 실시예에 있어서, 상기 메모리는 에스램(SRAM) 또는 디램(DRAM)인 것을 특징으로 한다.
이 실시예에 있어서, 상기 제어수단은, 호스트로부터 전송되는 데이터를 상기 플래시 메모리의 어드레스, 상기 버퍼 메모리의 어드레스, 커맨드로서 임시 저장하는 레지스터와; 상기 버퍼 메모리의 읽기 및 쓰기 동작을 제어하는 버퍼 컨트롤러와; 상기 플래시 메모리의 읽기 및 쓰기 동작을 제어하는 플래시 컨트롤러와; 그리고 상기 레지스터에 저장된 값들에 따라 상기 버퍼 메모리에 저장된 데이터가 읽혀지도록 그리고 상기 읽혀진 데이터가 상기 플래시 메모리에 저장하도록 상기 버퍼 컨트롤러와 상기 플래시 컨트롤러를 제어하는 스테이트 머신을 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 스테이트 머신에 의해 제어되며, 상기 버퍼 메모리와 상기 플래시 메모리 사이에 전송되는 데이터의 에러를 정정하는 에러 정정 및 데이터 입출력 회로를 더 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 제어수단은 상기 버퍼 컨트롤러로부터 인가되는 어드레스를 맵핑하는 디코더를 더 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 디코더는 상기 버퍼 메모리로 입력되는 어드레스가 메인 영역과 스페어 영역으로 분리되도록 맵핑하는 것을 특징으로 한다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부된 도면을 참조하여 설명하기로 한다.
본 발명의 신규한 버퍼 메모리를 내장한 플래시 메모리 장치 및 플래시 메모리 시스템은, 내부에 구비된 버퍼 메모리의 어드레스 구조와 메모리 용량을 플래시 메모리의 특성에 적합하도록 조절한다. 그리고, 플래시 메모리의 어드레스와, 버퍼 메모리의 어드레스, 및 컴멘드를 레지스터 내에 미리 정의해 둔다. 그 결과, 플래시 메모리 장치의 동작 제어가 용이해지고, 서로 다른 어드레스 구조를 가지는 플래시 메모리와 버퍼 메모리간의 인터페이스가 간단해 진다.
도 1은 랜덤 액세스가 가능한 버퍼 메모리를 내장한 플래시 메모리 장치의 블록도이다. 본 발명에 따른 플래시 메모리 장치(200)는 버스를 통해 호스트(100)와 연결된다. 상기 플래시 메모리 장치(200)는 상기 호스트(100)의 제어에 따라 데이터를 플래시 메모리(260)에 입력하거나 상기 플래시 메모리(260)에 저장된 데이터를 출력한다.
호스트 인터페이스(210)는 상기 호스트(100)와 직접적으로 연결된다. 상기 호스트 인터페이스(210)는 상기 호스트(100)로부터 버스를 통해 들어온 신호들을 입력받는다. 상기 호스트(100)로부터 입력되는 신호들은 제어신호, 어드레스, 데이터이다. 상기 호스트(100)로부터 입력된 신호들은 상기 호스트 인터페이스(210)에서 상기 플래시 메모리 장치(200)를 동작시키는 내부 신호들로 변경된다. 상기 내부 신호들은 상기 플래시 메모리 장치(200)의 내부에 있는 레지스터(220)와 버퍼 컨트롤러(270)에 인가된다.
상기 호스트 인터페이스(210)는 다양한 인터페이스 방식들로 구현될 수 있다. 예를 들면, 상기 호스트 인터페이스(210)는 SRAM 인터페이스 방식으로 구현될 수 있다. 그리고, 상기 호스트 인터페이스(210)는 SRAM 인터페이스 방식과 유사한 NOR 플래시 메모리 인터페이스 방식으로 구현될 수도 있다.
상기 플래시 메모리 장치(200)는 플래시 메모리(260)와 버퍼 메모리(290)를 포함한다. 상기 호스트(100)는 상기 플래시 메모리(260)에 저장될 데이터를 버스를 통해 상기 플래시 메모리 장치(200)로 전송한다. 상기 플래시 메모리 장치(200)는 전송된 데이터를 상기 플래시 메모리(260)에 입력하기 전에 상기 버퍼 메모리(290)에 임시적으로 저장한다.
역으로, 상기 플래시 메모리(260)에 저장된 데이터는 상기 호스트(100)로 전송되기 전에 상기 버퍼 메모리(290)에 임시적으로 저장된다. 상기 버퍼 메모리(290)에 저장된 데이터는 내부적으로 읽혀진다. 상기 읽혀진 데이터는 상기 호스트(100)로 전송된다. 상기 플래시 메모리 장치(200)는 상기 버퍼 메모리(290)를 이용한 데이터의 읽기 및 쓰기 동작에 의해 외부적으로 랜덤 액세스가 가능해진다.
상기 플래시 메모리(260)는 쓰기 및 읽기의 기본 단위인 페이지로 구성된다. 상기 페이지는 메인 영역과 스페어 영역으로 구분된다. 예로서, 한 페이지의 메모리 용량은 528 Byte 이다. 이중에서 메인 영역은 512 Byte 이고 스페어 영역은 16 Byte 이다.
상기 버퍼 메모리(290)는 상기 플래시 메모리(260)의 데이터를 임시적으로 저장한다. 상기 버퍼 메모리(290)는 랜덤 액세스가 가능한 메모리이다. 상기 버퍼 메모리(290)는 랜덤 액세스가 가능한 SRAM이나 DRAM 등을 이용하여 구현될 수 있다. 이 경우, 호스트 인터페이스 방식은 상기 버퍼 메모리(290)로 채택된 램의 인터페이스 방식에 따라 결정된다.
상기 플래시 메모리 장치(200)가 효율적으로 동작하기 위해서는, 바람직하게는 상기 버퍼 메모리(290)와 상기 플래시 메모리(260)의 어드레스 구조가 동일해야 한다. 즉, 상기 버퍼 메모리(290)는 상기 플래시 메모리(260)처럼 페이지 단위로 구성되고, 각각의 페이지 단위는 메인 영역과 스페어 영역으로 구분되도록 형성되어야 한다. 또한, 바람직하게 상기 버퍼 메모리(290)의 페이지 용량은 상기 플래시 메모리(260)의 페이지 용량과 동일해야 한다.
예를 들어, 버퍼 메모리(290)는 페이지 당 528 Byte의 메모리 용량을 가지도록 구성된다. 이중에서 메인 영역은 512 Byte이고 스페어 영역은 16 Byte 이다. 만약 상기 버퍼 메모리(290)의 페이지가 528 Byte 보다 작거나 528 Byte 의 정수배가 아니라면, 528 Byte 단위로 읽기 및 쓰기 동작이 수행되는 상기 플래시 메모리 장치(200)의 버퍼 메모리로서 효율적으로 사용될 수 없게 된다.
앞에서 설명한 바와 같이, 플래시 메모리 장치(200)가 효율적으로 동작하기 위해서는, 바람직하게는 버퍼 메모리(290)와 플래시 메모리(260)의 어드레스 구조가 동일해야 한다. 하지만, 본 발명에서는 버퍼 메모리(290)와 플래시 메모리(260)의 어드레스 구조가 동일하게 구성되지 않는다 하더라도, 레지스터(220)에 저장된 정보를 이용하여 버퍼 메모리(290)와 플래시 메모리(260)의 어드레스를 매핑할 수 있게 된다. 따라서, 두 개 이상의 메모리가 내장된 플래시 메모리 장치(200)와 호스트(100)간의 인터페이스가 간단해지고, 상기 플래시 메모리 장치(200)가 효율적으로 동작할 수 있게 된다. 이와 같은 레지스터(220) 의 역할은 버퍼 메모리(290)와 플래시 메모리(260)의 어드레스 구조가 동일할 때는 물론, 서로 다른 어드레스 구조를 가질 때에도 모두 적용 가능하다. 레지스터(220)에 대한 구조는 아래에서 상세히 설명될 것이다.
도 1을 참조하면, 상기 플래시 메모리 장치(200)는 레지스터(220), 스테이트 머신(230), 버퍼 컨트롤러(270), 에러 정정 및 데이터 입출력 블록(Error Collection and Data I/O Block; 이하 "ECC & DQ 블록"이라 한다.), 그리고 플래시 컨트롤러(250)를 포함한다.
레지스터(220)는 상기 호스트 인터페이스(210)로부터 레지스터 제어신호(REG_CTRL), 레지스터 어드레스(REG_ADDR), 그리고 레지스터 데이터(REG_DATA)를 입력받는다. 레지스터 제어신호는 상기 레지스터(220)의 전반적인 동작을 제어하는 신호이다. 레지스터(220)는 어드레스마다 담당하고 있는 역할이 다르며, 상기 어드레스의 역할은 미리 정의되어 있다.
레지스터 데이터는 대응하는 레지스터 어드레스에 입력된다. 상기 레지스터 데이터는 플래시 메모리의 어드레스(이하 "플래시 어드레스"라 한다)와, 버퍼 메모리의 어드레스(이하 "버퍼 어드레스"라 한다)와, 플래시 메모리 및 버퍼 메모리의 데이터 입출력을 제어하는 커맨드를 포함한다. 플래시 어드레스는 데이터가 저장될 플래시 메모리(260)의 어드레스를 의미한다. 버퍼 어드레스는 플래시 메모리(260)에 데이터가 저장되기 전에, 또는 호스트(100)로 데이터가 전송되기 전에 상기 데이터를 임시로 저장하는 버퍼 메모리(290)의 어드레스를 의미한다. 커맨드는 플래시 메모리 및 버퍼 메모리의 읽기 또는 쓰기 동작 등을 명하는 커맨드를 의미한다.
도 2는 레지스터의 어드레스와 역할을 보여주는 도표이다. 예로서, 상기 레지스터(220)는 F000h 번지부터 F003h 번지까지의 어드레스를 가진다. 상기 어드레스에는 특정 데이터가 쓰여진다. 도 2에서, F000h 번지에 저장된 데이터 값은 상기 플래시 메모리 장치에 관한 제품 설명을 나타내는 디바이스 ID이다. F001h 번지에 저장된 데이터 값은 데이터를 최종적으로 저장하거나 상기 저장된 데이터를 읽기 위한 상기 플래시 메모리(260)의 어드레스를 의미한다. F002h 번지에 저장된 데이터 값은 데이터를 임시적으로 저장하거나 상기 저장된 데이터를 읽기 위한 상기 버퍼 메모리(290)의 어드레스를 의미한다. F003h 번지에 저장된 데이터 값은 상기 플래시 메모리(260)의 동작 커맨드를 나타낸다.
도 3은 F003 번지에 저장된 데이터 값과 그에 따른 동작을 보여주는 도표이다. 도 3에서, 0000h는 상기 플래시 메모리(260)의 읽기 동작을 명하는 커맨드이다. 0001h는 상기 플래시 메모리(260)의 쓰기 동작을 명하는 커맨드이다. 0002h는 상기 플래시 메모리(260)의 지우기 동작을 명하는 커맨드이다. 0003h는 상기 플래시 메모리(260)의 리셋 동작을 명하는 커맨드이다.
상기 레지스터(220)의 F003h 번지에 0000h 값이 입력되는 경우에 상기 플래시 메모리 장치(200)는 다음과 같은 동작이 수행된다. 상기 F003h 번지는 상기 플래시 메모리(260)의 동작 커맨드를 나타내고, F003h 번지에 입력되는 0000h 값은 상기 플래시 메모리(260)의 읽기 동작을 명하는 커맨드이다. 따라서 F001h 번지에 해당하는 플래시 어드레스의 데이터들에 대한 읽기 동작이 수행된다. 그 다음에, 상기 플래시 메모리(260)로부터 읽혀진 데이터들은 F002h 번지에 해당하는 버퍼 어드레스에 저장된다.
상기 레지스터(220)의 F003h 번지에 0001h 값이 입력된 경우에는, 먼저 F002h 번지에 해당하는 버퍼 어드레스의 데이터들에 대한 읽기 동작이 수행된다. 그 다음에, 상기 버퍼 메모리(290)로부터 읽혀진 데이터들은 F001h에 해당하는 플래시 어드레스에 순차적으로 저장된다.
상기 레지스터(220)의 F003h 번지에 0002h 값이 입력되면, F001h 번지에 해당하는 플래시 어드레스의 데이터들에 대한 지우기 동작이 수행된다. F003h 번지에 0003h 값이 입력되면, F001h 번지에 해당하는 플래시 어드레스의 데이터들에 대한 리셋 동작이 수행된다.
계속해서 도 1을 참조하면, 상기 스테이트 머신(230)은 상기 레지스터(220)에 저장된 데이터 값들을 참조하여 동작한다. 상기 스테이트 머신(230)은 상기 데이터 값에 따라 상기 버퍼 컨트롤러(270), 상기 ECC & DQ 블록(240), 그리고 상기 플래시 컨트롤러(250)를 제어한다.
상기 버퍼 컨트롤러(270)는 상기 스테이트 머신(230) 및 상기 호스트 인터페이스(210)로부터 신호들을 입력받아서 동작한다. 상기 버퍼 컨트롤러(270)는 상기 버퍼 메모리(290)의 데이터 읽기 또는 데이터 쓰기 동작을 제어한다.
상기 버퍼 컨트롤러(270)는 상기 호스트 인터페이스(210)로부터 제어신호(BUF_CTRL1), 어드레스(BUF_ADDR1), 그리고 데이터(BUF_DATA1)를 입력받는다. 상기 제어신호(BUF_CTRL1)는 상기 버퍼 컨트롤러(270)의 동작을 제어하기 위한 신호이다. 상기 어드레스(BUF_ADDR1)는 상기 버퍼 메모리(290)에 상기 데이터(BUF_DATA1)를 임시적으로 저장하기 위해 입력되는 어드레스이다. 상기 어드레스(BUF_ADDR1)는 상기 호스트 인터페이스(210)를 통해 상기 호스트(100)로부터 직접 입력된다.
한편, 상기 버퍼 컨트롤러(270)는 상기 스테이트 머신(230)으로부터 제어신호(BUF_CTRL2), 어드레스(BUF_ADDR2)를 입력받는다. 상기 제어신호(BUF_CTRL2)는 상기 버퍼 컨트롤러(270)를 제어하기 위한 신호이다. 상기 어드레스(BUF_ADDR2)는 상기 플래시 메모리 장치(200)에서 내부적으로 할당된 버퍼 어드레스이다. 또한 상기 버퍼 컨트롤러(270)는 상기 스테이트 머신(230)으로부터 커맨드 플래그 신호(CMD_FLAG)를 입력받는다. 예를 들면, 상기 커맨드 플래그 신호는 상기 버퍼 메모리(290)로부터 데이터 읽기 위한 커맨드 신호이다.
상기 버퍼 컨트롤러(270)는 상기 호스트(100)로부터 인가된 제어신호, 어드레스, 그리고 데이터를 상기 버퍼 메모리(290)로 전달하는 역할을 한다. 또한 상기 스테이트 머신(230)으로부터 인가된 제어신호와 어드레스를 상기 버퍼 메모리(290)에 선택적으로 전달하는 역할을 한다. 상기 버퍼 컨트롤러(270)는 상기 호스트(100)로부터 인가된 어드레스(BUF_ADDR1)와 상기 스테이트 머신(230)으로부터 인가된 어드레스(BUF_ADDR2)를 입력받아서 선택적으로 후단에 위치한 디코더(280)에 전달한다.
상기 버퍼 컨트롤러(270)는 상기 스테이트 머신(230)의 제어에 따라 상기 플래시 메모리(260)로부터 데이터를 읽어 상기 버퍼 메모리(290)에 쓰기 동작을 수행하고 있는 중에 상기 호스트(100)로부터 버퍼 메모리 읽기 커맨드가 들어오면 양쪽의 동작을 동시에 수행할 수 있도록 스위칭하는 역할을 담당한다.
계속해서 도 1을 참조하면, 상기 플래시 메모리 장치(200)는 상기 버퍼 메모리 앞단에 위치한 디코더(280)를 더 포함한다. 상기 디코더(280)는 상기 호스트(100)에서 인가된 어드레스(BUF_ADDR1)를 내부적으로 할당된 버퍼 어드레스로 변경하는 역할을 담당한다. 일반적으로 상기 호스트(100)에서 인가되는 버퍼 어드레스와 상기 플래시 메모리 장치(200)의 내부에서 할당된 버퍼 어드레스는 일치하지 않는다. 하지만, 본 발명에서는 레지스터(220)에 미리 할당되어 있는 어드레스 정보를 이용하여 버퍼 메모리(290)와 플래시 메모리(260)간의 어드레스 매핑을 수행하기 때문에, 더욱 효율적인 데이터 인터페이스가 가능해 진다.
도 4는 호스트에서 할당된 버퍼 메모리의 어드레스가 메모리 내부에서 할당된 버퍼 어드레스로 맵핑된 것을 보여주는 도표이다.
도 4(a)는 호스트에서 할당된 버퍼 어드레스를 나타낸다. 도 (4a)를 참조하면, 상기 호스트(100)에서 인가되는 어드레스 중에서 0000h 내지 05FFh는 상기 버퍼 메모리(290)의 메인 데이터 영역을 나타낸다. 8000h 내지 802Fh는 스페어 데이터 영역을 나타낸다. 그리고 상기 메인 및 스페어 데이터 영역을 제외한 나머지 영역은 상기 호스트(100)의 필요에 따라 보존되는 영역(0600h~7FFF 또는 8050h~EFFFh)과 레지스터 영역(F000h~F003h)이다. 상기 호스트(100)에서 인가된 어드레스(BUF_ADDR1)는 16 비트의 어드레스이다.
도 4(b)는 버퍼 메모리에 적합하도록 내부적으로 할당된 버퍼 어드레스를 나타낸다. 도 (4b)를 참조하면, 메모리 내부에서 할당된 어드레스 중에서 000h 내지 5FFFh는 상기 버퍼 메모리(290)의 메인 데이터 영역을 나타낸다. 600h 내지 62Fh는 스페어 데이터 영역을 나타낸다. 상기 호스트(100)로부터 할당된 16 비트의 어드레스는 상기 플래시 메모리 장치(200)에서 내부적으로 할당된 12 비트의 어드레스로 맵핑된다.
상기 디코더(280)는 16 비트의 어드레스를 12 비트의 어드레스로 맵핑하는 역할을 한다. 상기 디코더(280)는 도 4(b)에서 보는 바와 같이 메인 데이터 영역과 스페어 데이터 영역을 분리하여 맵핑한다. 그러나 메인 테이타 영역과 스페어 데이터 영역을 분리하지 않고 연속적으로 맵핑하는 것도 가능함은 자명한 사실이다.
한편 상기 스테이트 머신(230)에서 인가된 어드레스(BUF_ADDR2)는 상기 버퍼 메모리(290)에 적합하도록 내부적으로 할당된 12 비트의 어드레스이다. 상기 12 비트의 어드레스는 내부적으로 할당된 어드레스이므로 상기 디코더(280)에서 맵핑되지 않고 상기 버퍼 메모리(290)로 전달된다.
계속해서 도 1을 참조하면, 상기 플래시 컨트롤러(250)는 상기 스테이트 머신(230)으로부터 제어신호(F_CTRL)를 입력받아서 상기 플래시 메모리(260)의 데이터 읽기 또는 쓰기 동작 등을 제어하는 제어신호(CTRL)를 발생한다.
상기 ECC & DQ 블록(240)은 상기 스테이트 머신(230)으로부터 제어신호(ECC_CTRL, DQ_CTRL)와 어드레스(F_ADDR)를 입력받는다. 상기 제어신호(ECC_CTRL, DQ_CTRL)는 상기 ECC & DQ 블록(240)의 동작을 제어하기 신호이다. 상기 어드레스(F_ADDR)는 데이터를 저장하기 위한 상기 플래시 메모리(260)의 어드레스이다. 상기 어드레스(F_ADDR)는 상기 ECC & DQ 블록(240)을 통해 상기 플래시 메모리(260)로 전달된다.
상기 ECC & DQ 블록(240)은 상기 버퍼 컨트롤러(270)로부터 입력된 데이터를 상기 플래시 메모리(260)로 전달한다. 그리고 상기 플래시 메모리(260)로부터 입력된 데이터를 상기 버퍼 컨트롤러(270)로 전달한다. 상기 ECC & DQ 블록(240)은 상기 버퍼 컨트롤러(270)와 상기 플래시 메모리(260) 사이에 전송되는 데이터의 에러를 정정한다.
이상의 상기 플래시 메모리 장치(200)를 구성하는 요소들은 단일 칩으로 형성될 수 있다. 뿐만 아니라 상기 플래시 메모리 장치(200)가 다중칩 기술을 이용하여 구현될 수도 있음은 이 기술 분야에서 통상의 지식을 가진 자들에게 자명한 사실이다.
이하 본 발명에 따른 플래시 메모리 장치의 동작이 도 1을 참조하여 상세히 설명된다.
상기 호스트(100)는 버스를 통해 제어신호, 어드레스, 그리고 데이터를 상기 플래시 메모리 장치(200)로 전송한다. 상기 호스트 인터페이스(210)는 상기 제어신호, 어드레스, 그리고 데이터를 내부 신호로 변경한 다음에 상기 레지스터(220) 또는 상기 버퍼 컨트롤러(270)로 전송한다.
상기 레지스터(220)는 상기 호스트 인터페이스(210)로부터 레지스터 제어신호(REG_CTRL), 레지스터 어드레스(REG_ADDR), 그리고 레지스터 데이터(REG_DATA)를 입력받는다. 상기 레지스터 어드레스(REG_ADDR)에 저장되는 레지스터 데이터(REG_DATA)는 플래시 어드레스, 버퍼 어드레스, 그리고 커맨드이다.
상기 스테이트 머신(230)은 상기 레지스터(220)에 저장된 값들에 따라 ECC & DQ 블록(240), 플래시 컨트롤러(250), 그리고 버퍼 컨트롤러(270)를 제어한다.
상기 버퍼 컨트롤러(270)는 상기 호스트 인터페이스(210)로부터 제어신호(BUF_CTRL1), 어드레스(BUF_ADDR1), 그리고 데이터(BUF_DATA1)를 입력받는다. 상기 어드레스(BUF_ADDR1)는 상기 호스트(100)에서 할당된 버퍼 어드레스이다. 상기 어드레스(BUF_ADDR1)는 상기 플래시 메모리에 데이터가 저장되기 전에 임시적으로 데이터를 저장해 두는 상기 버퍼 메모리(290)의 어드레스이다. 상기 어드레스(BUF_ADDR1)에 상기 데이터(BUF_DATA1)가 저장된다.
한편, 상기 버퍼 컨트롤러(250)는 상기 스테이트 머신(230)으로부터 제어신호(BUF_CTRL2), 어드레스(BUF_ADDR2)를 입력받는다. 상기 어드레스(BUF_ADDR2)는 내부적으로 할당된 버퍼 어드레스이다.
상기 버퍼 컨트롤러(250)는 상기 어드레스(BUF_ADDR1)와 상기 어드레스(BUF_ADDR2)를 입력받아서, 선택적으로 상기 버퍼 메모리(290)에 전달한다. 상기 버퍼 컨트롤러(250)에서 상기 어드레스(BUF_ADDR1)가 선택되면, 상기 어드레스(BUF_ADDR1)는 내부에서 할당된 어드레스로 맵핑하는 동작이 수행된다. 상기 맵핑 동작은 상기 디코더(280)에 의해 수행된다. 맵핑된 어드레스는 상기 버퍼 메모리(290)에 인가된다.
한편, 상기 레지스터(220)에 레지스터 제어신호(REG_CTRL), 레지스터 어드레스(REG_ADDR), 그리고 레지스터 데이터(REG_DATA)가 인가되는 동작은 상기 버퍼 컨트롤러(270)에 제어신호(BUF_CTRL1), 어드레스(BUF_ADDR1), 그리고 데이터(BUF_DATA1)가 인가되기 전에 수행될 수도 있다.
상기 스테이트 머신(230)은 상기 레지스터(220)에 저장된 값들에 따라 상기 버퍼 메모리(290)에 저장된 데이터가 읽혀지도록 그리고 그렇게 읽혀진 데이터가 상기 플래시 메모리(260)에 저장되도록 상기 버퍼 컨트롤러(270), 상기 ECC & DQ 블록(240), 그리고 상기 플래시 컨트롤러(250)를 제어한다.
예를 들면, 상기 스테이트 머신(230)은 읽기 동작을 알리는 커맨드 플래그 신호(CMD_FLAG), 제어신호(BUF_CTRL2), 그리고 어드레스(BUF_ADDR2)를 출력한다. 상기 커맨드 플래그 신호가 읽기 동작을 나타내면, 상기 버퍼 컨트롤러(270)는 상기 어드레스(BUF_ADDR2)에 대응하는 버퍼 메모리 영역에서 데이터가 읽혀지도록 제어한다. 그렇게 읽혀진 데이터는 상기 ECC & DQ 블록(240)으로 전달된다.
그 다음에, 상기 스테이트 머신(230)은 상기 레지스터(220)에 저장된 플래시 어드레스 값을 참조하여 어드레스(F_ADDR)를 발생한다. 상기 ECC & DQ 블록(240)은 상기 스테이트 머신(230)으로부터 제어신호(ECC_CTRL, DQ_CTRL)와 상기 어드레스(F_ADDR)를 입력받는다. 상기 ECC & DQ 블록(240)은 상기 플래시 메모리(260)와 상기 버퍼 메모리(290) 사이에 전송되는 데이터의 에러 정정 기능을 수행하고 정해진 타이밍에 따라 커맨드, 어드레스, 그리고 데이터를 상기 플래시 메모리(260)로 출력한다.
상기 플래시 컨트롤러(250)는 상기 스테이트 머신(230)으로부터의 제어 신호(F_CTRL)를 상기 플래시 메모리(260)에 적합한 제어 신호(CTRL)로 변환하여 출력한다. 이후 잘 알려진 방법에 따라 상기 플래시 메모리(260)의 데이터 읽기 또는 데이터 쓰기 동작이 수행된다.
플래시 메모리(260)는 읽기 및 쓰기 동작의 기본 단위인 페이지로 이루어진다. 상기 페이지는 메인 영역과 스페어 영역으로 구분된다. 상기 플래시 메모리(260)는 랜덤 액세스 동작을 지원하지 않는다. 상기 플래시 메모리(260)가 랜덤 액세스를 지원하기 위해서는 버퍼 메모리(290)를 필요로 한다. 상기 버퍼 메모리(290)는 랜덤 액세스가 가능한 메모리이다.
상기 버퍼 메모리(290)는 상기 플래시 메모리(260)와 동일한 어드레스 구조를 가지도록 한다. 즉, 상기 버퍼 메모리(290)가 페이지로 이루어지도록 한다. 상기 페이지는 메인 영역과 스페어 영역으로 구분되도록 한다. 그리고 상기 버퍼 메모리(290)의 페이지의 용량이 상기 플래시 메모리(260)와 동일하도록 한다.
한편, 상기 호스트(100)에서 할당된 버퍼 어드레스와 내부적으로 할당된 버퍼 어드레스가 일치하지 않을 수 있다. 일치하지 않을 경우에, 상기 호스트(100)에서 할당된 버퍼 어드레스를 내부적으로 할당된 버퍼 어드레스로 변경하는 맵핑 동작이 수행된다. 상기 맵핑 동작은 상기 디코더(280)에서 이루어진다.
도 4에서 보는 바와 같이 상기 호스트(100)에서 할당된 버퍼 어드레스를 메인 영역과 스페어 영역으로 분리하여 맵핑한다. 메인 영역과 스페어 영역으로 어드레스를 분리하여 맵핑함으로써 스페어 데이터만으로 버스트 읽기 동작이 가능해진다. 또한, 메인 영역과 스페어 영역을 분리하여 맵핑함으로써 어드레스 제어가 간편해진다. 본 발명에 따른 어드레스 맵핑은, 레지스터 내에 정의되어 있는 플래시 메모리의 어드레스와, 버퍼 메모리의 어드레스, 및 컴멘드를 이용하여 수행된다. 따라서, 버퍼 메모리와 플래시 메모리가 서로 다른 어드레스 구성을 가진다 하더라도, 레지스터에 저장된 정보를 이용하면 두 메모리간의 어드레스 맵핑이 간단해지고, 이로 인해 플래시 메모리와 버퍼 메모리간의 인터페이스가 간단해 진다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구범위 뿐만아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
상술한 바와 같이 본 발명에 의하면, 버퍼 메모리의 어드레스 구조와 메모리 용량을 플래시 메모리의 특성에 적합하도록 조절함으로써, 플래시 메모리 장치의 동작 제어가 용이해진다.
그리고, 레지스터 내에 플래시 메모리의 어드레스, 버퍼 메모리의 어드레스, 및 컴멘드를 미리 정의해 두고 이를 이용하여 버퍼 메모리와 플래시 메모리간의 어드레스 맵핑을 수행함으로써, 서로 다른 어드레스를 가지는 플래시 메모리와 버퍼 메모리간의 인터페이스가 간단해 진다.
도 1은 본 발명에 따른 플래시 메모리 장치 및 플래시 메모리 시스템을 보여주는 블록도이다.
도 2는 도 1의 레지스터의 어드레스와 역할을 보여주는 도표이다.
도 3은 도 2의 커맨드 레지스터의 값과 그에 따른 동작을 보여주는 도표이다.
도 4는 호스트에서 할당된 버퍼 메모리의 어드레스가 메모리 내부에서 할당된 버퍼 메모리의 어드레스로 맵핑된 것을 보여주는 도표이다.
*도면의 주요부분에 대한 부호의 설명*
100 : 호스트 200 : 플래시 메모리 장치
210 : 호스트 인터페이스 220 : 레지스터
230 : 스테이트 머신 240 : 에러 정정 및 데이터 입출력 블록
250 : 플래시 컨트롤러 260 : 플래시 메모리
270 : 버퍼 컨트롤러 280 : 디코더
290 : 버퍼 메모리

Claims (30)

  1. 플래시 메모리와;
    상기 플래시 메모리에 기입될 또는 상기 플래시 메모리로부터 독출된 데이터를 임시로 저장하는 버퍼 메모리와;
    상기 플래시 메모리 및 상기 버퍼 메모리의 어드레스와, 커멘드들이 소정의 영역에 각각 할당된 레지스터; 그리고
    상기 레지스터에 할당되어 있는 상기 커멘드 및 상기 어드레스에 응답해서 호스트로부터 인가된 어드레스를 상기 버퍼 메모리에 적합한 어드레스로 맵핑하고, 상기 맵핑된 어드레스를 근거로 하여 상기 버퍼 메모리의 데이터가 상기 플래시 메모리에 저장되도록 또는 상기 플래시 메모리의 데이터가 상기 버퍼 메모리에 저장되도록 상기 플래시 메모리와 버퍼 메모리를 제어하는 제어수단을 포함하는 것을 특징으로 하는 플래시 메모리 장치.
  2. 제 1 항에 있어서,
    상기 플래시 메모리, 상기 버퍼 메모리, 그리고 상기 제어수단은 단일 칩으로 이루어지는 것을 특징으로 하는 플래시 메모리 장치.
  3. 제 1 항에 있어서,
    상기 호스트로부터 인가되는 제어신호, 어드레스, 그리고 데이터를 상기 플래시 메모리 장치를 동작시키기 위한 내부 신호로 변경하는 호스트 인터페이스를 더 포함하는 것을 특징으로 하는 플래시 메모리 장치.
  4. 제 1 항에 있어서,
    상기 버퍼 메모리는, 랜덤 액세스가 가능한 메모리인 것을 특징으로 하는 플래시 메모리 장치.
  5. 제 4 항에 있어서,
    상기 메모리는, 에스램(SRAM)인 것을 특징으로 하는 플래시 메모리 장치.
  6. 제 4 항에 있어서,
    상기 메모리는, 디램(DRAM)인 것을 특징으로 하는 플래시 메모리 장치.
  7. 제 1 항에 있어서, 상기 제어수단은
    상기 버퍼 메모리의 읽기 및 쓰기 동작을 제어하는 버퍼 컨트롤러와;
    상기 플래시 메모리의 읽기 및 쓰기 동작을 제어하는 플래시 컨트롤러와; 그리고
    상기 레지스터에 저장된 값들에 따라 상기 버퍼 메모리의 데이터가 상기 플래시 메모리에 저장되도록 또는 상기 플래시 메모리의 데이터가 상기 버퍼 메모리에 저장되도록 상기 버퍼 컨트롤러와 상기 플래시 컨트롤러를 제어하는 스테이트 머신을 포함하는 것을 특징으로 하는 플래시 메모리 장치.
  8. 제 7 항에 있어서,
    상기 제어수단은, 상기 스테이트 머신에 의해 제어되며 상기 버퍼 메모리와 상기 플래시 메모리 사이에 전송되는 데이터의 에러를 정정하는 에러 정정 및 데이터 입출력 회로를 더 포함하는 것을 특징으로 하는 플래시 메모리 장치.
  9. 제 7 항에 있어서,
    상기 제어수단은, 상기 버퍼 컨트롤러로부터 인가되는 어드레스를 맵핑하는 디코더를 더 포함하는 것을 특징으로 하는 플래시 메모리 장치.
  10. 제 9 항에 있어서,
    상기 디코더는, 상기 버퍼 메모리로 입력되는 어드레스가 메인 영역과 스페어 영역으로 분리되도록 맵핑하는 것을 특징으로 하는 플래시 메모리 장치.
  11. 메인 영역과 스페어 영역으로 구분되는 플래시 메모리와;
    상기 플래시 메모리에 기입될 또는 상기 플래시 메모리로부터 독출된 데이터를 임시로 저장하는, 그리고 상기 플래시 메모리와 동일한 어드레스 구조를 가지도록 메인 영역과 스페어 영역으로 구분되는 버퍼 메모리와; 그리고
    호스트로부터 인가된 어드레스를 상기 버퍼 메모리에 적합한 어드레스로 맵핑하는, 그리고 상기 버퍼 메모리의 데이터가 상기 플래시 메모리에 저장되도록 또는 상기 플래시 메모리의 데이터가 상기 버퍼 메모리에 저장되도록 상기 플래시 메모리와 버퍼 메모리를 제어하는 제어수단을 포함하는 것을 특징으로 하는 플래시 메모리 장치.
  12. 제 11 항에 있어서,
    상기 플래시 메모리, 상기 버퍼 메모리, 그리고 상기 제어수단은 단일 칩으로 이루어지는 것을 특징으로 하는 플래시 메모리 장치.
  13. 제 11 항에 있어서,
    상기 호스트로부터 인가되는 제어신호, 어드레스, 그리고 데이터를 상기 플래시 메모리 장치를 동작시키기 위한 내부 신호로 변경하는 호스트 인터페이스를 더 포함하는 것을 특징으로 하는 플래시 메모리 장치.
  14. 제 11 항에 있어서,
    상기 버퍼 메모리는, 랜덤 액세스가 가능한 메모리인 것을 특징으로 하는 플래시 메모리 장치.
  15. 제 14 항에 있어서,
    상기 메모리는, 에스램(SRAM)인 것을 특징으로 하는 플래시 메모리 장치.
  16. 제 14 항에 있어서,
    상기 메모리는, 디램(DRAM)인 것을 특징으로 하는 플래시 메모리 장치.
  17. 제 11 항에 있어서,
    상기 제어수단은, 상기 플래시 메모리의 어드레스, 상기 버퍼 메모리의 어드레스, 그리고 커맨드를 저장하는 레지스터와;
    상기 버퍼 메모리의 읽기 및 쓰기 동작을 제어하는 버퍼 컨트롤러와;
    상기 플래시 메모리의 읽기 및 쓰기 동작을 제어하는 플래시 컨트롤러와; 그리고
    상기 레지스터에 저장된 값들에 따라 상기 버퍼 메모리의 데이터가 상기 플래시 메모리에 저장되도록 또는 상기 플래시 메모리의 데이터가 상기 버퍼 메모리에 저장되도록 상기 버퍼 컨트롤러와 상기 플래시 컨트롤러를 제어하는 스테이트 머신을 포함하는 것을 특징으로 하는 플래시 메모리 장치.
  18. 제 17 항에 있어서,
    상기 제어수단은, 상기 스테이트 머신에 의해 제어되며 상기 버퍼 메모리와 상기 플래시 메모리 사이에 전송되는 데이터의 에러를 정정하는 에러 정정 및 데이터 입출력 회로를 더 포함하는 것을 특징으로 하는 플래시 메모리 장치.
  19. 제 17 항에 있어서,
    상기 제어수단은, 상기 버퍼 컨트롤러로부터 인가되는 어드레스를 맵핑하는 디코더를 더 포함하는 것을 특징으로 하는 플래시 메모리 장치.
  20. 제 19 항에 있어서,
    상기 디코더는, 상기 버퍼 메모리로 입력되는 어드레스가 메인 영역과 스페어 영역으로 분리되도록 맵핑하는 것을 특징으로 하는 플래시 메모리 장치.
  21. 호스트와; 그리고
    상기 호스트의 요구에 따라 데이터를 저장하거나 저장된 데이터를 출력하는 플래시 메모리 장치를 포함하되,
    상기 플래시 메모리 장치는, 메인 영역과 스페어 영역으로 구분되는 플래시 메모리와;
    상기 플래시 메모리에 기입될 또는 상기 플래시 메모리로부터 독출된 데이터를 임시로 저장하는, 그리고 상기 플래시 메모리와 동일한 어드레스 구조를 가지도록 메인 영역과 스페어 영역으로 구분되는 버퍼 메모리와; 그리고
    호스트로부터 인가된 어드레스를 상기 버퍼 메모리에 적합한 어드레스로 맵핑하는, 그리고 상기 버퍼 메모리의 데이터가 상기 플래시 메모리에 저장되도록 또는 상기 플래시 메모리의 데이터가 상기 버퍼 메모리에 저장되도록 상기 플래시 메모리와 버퍼 메모리를 제어하는 제어수단을 포함하는 것을 특징으로 하는 플래시 메모리 시스템.
  22. 제 21 항에 있어서,
    상기 플래시 메모리, 상기 버퍼 메모리, 그리고 상기 제어수단은 단일 칩으로 이루어지는 것을 특징으로 하는 플래시 메모리 장치.
  23. 제 21 항에 있어서,
    상기 호스트로부터 인가되는 제어신호, 어드레스, 그리고 데이터를 상기 플래시 메모리 장치를 동작시키기 위한 내부 신호로 변경하는 호스트 인터페이스를 더 포함하는 것을 특징으로 하는 플래시 메모리 장치.
  24. 제 21 항에 있어서,
    상기 버퍼 메모리는, 랜덤 액세스가 가능한 메모리인 것을 특징으로 하는 플래시 메모리 장치.
  25. 제 24 항에 있어서,
    상기 메모리는, 에스램(SRAM)인 것을 특징으로 하는 플래시 메모리 장치.
  26. 제 24 항에 있어서,
    상기 메모리는, 디램(DRAM)인 것을 특징으로 하는 플래시 메모리 장치.
  27. 제 21 항에 있어서,
    상기 제어수단은, 상기 플래시 메모리의 어드레스, 상기 버퍼 메모리의 어드레스, 그리고 커맨드를 저장하는 레지스터와;
    상기 버퍼 메모리의 읽기 및 쓰기 동작을 제어하는 버퍼 컨트롤러와;
    상기 플래시 메모리의 읽기 및 쓰기 동작을 제어하는 플래시 컨트롤러와; 그리고
    상기 레지스터에 저장된 값들에 따라 상기 버퍼 메모리의 데이터가 상기 플래시 메모리에 저장되도록 또는 상기 플래시 메모리의 데이터가 상기 버퍼 메모리에 저장되도록 상기 버퍼 컨트롤러와 상기 플래시 컨트롤러를 제어하는 스테이트 머신을 포함하는 것을 특징으로 하는 플래시 메모리 장치.
  28. 제 27 항에 있어서,
    상기 제어수단은, 상기 스테이트 머신에 의해 제어되며 상기 버퍼 메모리와 상기 플래시 메모리 사이에 전송되는 데이터의 에러를 정정하는 에러 정정 및 데이터 입출력 회로를 더 포함하는 것을 특징으로 하는 플래시 메모리 장치.
  29. 제 27 항에 있어서,
    상기 제어수단은, 상기 버퍼 컨트롤러로부터 인가되는 어드레스를 맵핑하는 디코더를 더 포함하는 것을 특징으로 하는 플래시 메모리 장치.
  30. 제 29 항에 있어서,
    상기 디코더는, 상기 버퍼 메모리로 입력되는 어드레스가 메인 영역과 스페어 영역으로 분리되도록 맵핑하는 것을 특징으로 하는 플래시 메모리 장치.
KR1020040080091A 2003-12-15 2004-10-07 버퍼 메모리를 내장한 플래시 메모리 장치 및 플래시메모리 시스템 KR100780861B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020030091307 2003-12-15
KR20030091307 2003-12-15

Publications (2)

Publication Number Publication Date
KR20050059984A true KR20050059984A (ko) 2005-06-21
KR100780861B1 KR100780861B1 (ko) 2007-11-29

Family

ID=34651454

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040080091A KR100780861B1 (ko) 2003-12-15 2004-10-07 버퍼 메모리를 내장한 플래시 메모리 장치 및 플래시메모리 시스템

Country Status (3)

Country Link
US (2) US20050132128A1 (ko)
JP (1) JP4628750B2 (ko)
KR (1) KR100780861B1 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100685532B1 (ko) * 2005-03-15 2007-02-22 주식회사 하이닉스반도체 독출속도를 향상시키기 위한 버퍼 메모리를 갖는 불휘발성메모리 장치
KR100753174B1 (ko) * 2007-06-12 2007-08-30 엠진 (주) 플래시 메모리 기반의 대용량 저장장치
KR100801710B1 (ko) * 2006-09-29 2008-02-11 삼성전자주식회사 비휘발성 메모리 장치 및 이 장치를 구비하는 메모리시스템.
KR100872186B1 (ko) * 2007-01-04 2008-12-09 삼성전자주식회사 상이한 에러 제어 스킴을 갖는 하이브리드 플래시 메모리장치 및 그것을 포함한 메모리 시스템
KR100898673B1 (ko) * 2007-08-08 2009-05-22 주식회사 하이닉스반도체 플래시 메모리 소자 및 그 동작 방법
KR100909965B1 (ko) * 2007-05-23 2009-07-29 삼성전자주식회사 버스를 공유하는 휘발성 메모리 및 불휘발성 메모리를구비하는 반도체 메모리 시스템 및 불휘발성 메모리의 동작제어 방법
US9372788B2 (en) 2013-01-02 2016-06-21 Samsung Electronics Co., Ltd. Storage system and method of adjusting spare memory space in storage system

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7562202B2 (en) * 2004-07-30 2009-07-14 United Parcel Service Of America, Inc. Systems, methods, computer readable medium and apparatus for memory management using NVRAM
US20070030281A1 (en) * 2005-07-25 2007-02-08 Beyond Innovation Technology Co., Ltd. Serial memory script controller
JP2008047244A (ja) 2006-08-18 2008-02-28 Toshiba Corp 半導体記憶装置、半導体装置、及びデータ書き込み方法
US7694091B2 (en) * 2006-10-23 2010-04-06 Hewlett-Packard Development Company, L.P. Non-volatile storage for backing up volatile storage
US7554855B2 (en) * 2006-12-20 2009-06-30 Mosaid Technologies Incorporated Hybrid solid-state memory system having volatile and non-volatile memory
US7996710B2 (en) 2007-04-25 2011-08-09 Hewlett-Packard Development Company, L.P. Defect management for a semiconductor memory system
US7694093B2 (en) 2007-04-27 2010-04-06 Hewlett-Packard Development Company, L.P. Memory module and method for mirroring data by rank
CN101140809A (zh) * 2007-09-07 2008-03-12 炬力集成电路设计有限公司 支持流水线纠错码和可配置操作的flash控制器及其控制方法
TW200921384A (en) * 2007-11-15 2009-05-16 Genesys Logic Inc NOR interface flash memory device and access method thereof
KR101030146B1 (ko) * 2008-08-29 2011-04-18 서울대학교산학협력단 페이지 버퍼를 쓰기 캐시로 이용하는 플래시 기반 저장 장치 및 이용 방법
US9280466B2 (en) 2008-09-09 2016-03-08 Kabushiki Kaisha Toshiba Information processing device including memory management device managing access from processor to memory and memory management method
KR20110132553A (ko) * 2009-02-23 2011-12-08 소니 주식회사 메모리 장치
EP2425324A1 (en) * 2009-04-27 2012-03-07 Kamlesh Gandhi Description
EP2455865B1 (en) * 2009-07-17 2020-03-04 Toshiba Memory Corporation Memory management device
US8255616B2 (en) * 2010-01-12 2012-08-28 Freescale Semiconductor, Inc. Non-volatile memory device and method therefor
JP2013131192A (ja) 2011-12-22 2013-07-04 Fujitsu Ltd ストレージ装置及びストレージ装置の制御方法
CA2891355C (en) * 2012-11-20 2022-04-05 Charles I. Peddle Solid state drive architectures
US10089224B2 (en) * 2013-03-15 2018-10-02 The Boeing Company Write caching using volatile shadow memory
TWI554944B (zh) 2014-06-20 2016-10-21 慧榮科技股份有限公司 快閃記憶體控制裝置、快閃記憶體控制系統以及快閃記憶體控制方法
KR102178538B1 (ko) 2014-12-16 2020-11-13 삼성전자주식회사 메모리 장치, 메모리 장치의 커맨드 신호/어드레스 신호의 로그 생성 방법 및 메모리 장치의 에러 분석 방법
TWI562154B (en) * 2015-02-17 2016-12-11 Silicon Motion Inc Methods for reading data from a storage unit of a flash memory and apparatuses using the same

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0675502B1 (en) * 1989-04-13 2005-05-25 SanDisk Corporation Multiple sector erase flash EEPROM system
JPH07153286A (ja) * 1993-11-30 1995-06-16 Sony Corp 半導体不揮発性記憶装置
JPH07302176A (ja) * 1994-05-09 1995-11-14 Toshiba Corp 半導体ディスク装置
JP2907081B2 (ja) * 1995-09-26 1999-06-21 日本電気株式会社 半導体記憶装置
US6418506B1 (en) * 1996-12-31 2002-07-09 Intel Corporation Integrated circuit memory and method for transferring data using a volatile memory to buffer data for a nonvolatile memory array
US5822245A (en) * 1997-03-26 1998-10-13 Atmel Corporation Dual buffer flash memory architecture with multiple operating modes
US5999451A (en) * 1998-07-13 1999-12-07 Macronix International Co., Ltd. Byte-wide write scheme for a page flash device
JP3825605B2 (ja) * 2000-03-02 2006-09-27 三洋電機株式会社 データ処理装置
US6704835B1 (en) * 2000-09-26 2004-03-09 Intel Corporation Posted write-through cache for flash memory
KR100381957B1 (ko) * 2001-01-04 2003-04-26 삼성전자주식회사 비휘발성 반도체 메모리 장치 및 그것의 데이터 입/출력제어 방법
JP4711531B2 (ja) 2001-03-23 2011-06-29 ルネサスエレクトロニクス株式会社 半導体記憶装置
US20020138702A1 (en) 2001-03-26 2002-09-26 Moshe Gefen Using non-executable memory as executable memory
TWI240864B (en) 2001-06-13 2005-10-01 Hitachi Ltd Memory device
JP4034971B2 (ja) * 2002-01-21 2008-01-16 富士通株式会社 メモリコントローラおよびメモリシステム装置
JP4082913B2 (ja) 2002-02-07 2008-04-30 株式会社ルネサステクノロジ メモリシステム
US7035967B2 (en) * 2002-10-28 2006-04-25 Sandisk Corporation Maintaining an average erase count in a non-volatile storage system
KR100546348B1 (ko) * 2003-07-23 2006-01-26 삼성전자주식회사 플래시 메모리 시스템 및 그 데이터 저장 방법
US20050055495A1 (en) * 2003-09-05 2005-03-10 Nokia Corporation Memory wear leveling

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100685532B1 (ko) * 2005-03-15 2007-02-22 주식회사 하이닉스반도체 독출속도를 향상시키기 위한 버퍼 메모리를 갖는 불휘발성메모리 장치
US7260017B2 (en) 2005-03-15 2007-08-21 Hynix Semiconductor Inc. Non-volatile memory device having buffer memory with improve read speed
KR100801710B1 (ko) * 2006-09-29 2008-02-11 삼성전자주식회사 비휘발성 메모리 장치 및 이 장치를 구비하는 메모리시스템.
US7535760B2 (en) 2006-09-29 2009-05-19 Samsung Electronics Co., Ltd. Memory devices and memory systems having the same
KR100872186B1 (ko) * 2007-01-04 2008-12-09 삼성전자주식회사 상이한 에러 제어 스킴을 갖는 하이브리드 플래시 메모리장치 및 그것을 포함한 메모리 시스템
KR100909965B1 (ko) * 2007-05-23 2009-07-29 삼성전자주식회사 버스를 공유하는 휘발성 메모리 및 불휘발성 메모리를구비하는 반도체 메모리 시스템 및 불휘발성 메모리의 동작제어 방법
KR100753174B1 (ko) * 2007-06-12 2007-08-30 엠진 (주) 플래시 메모리 기반의 대용량 저장장치
KR100898673B1 (ko) * 2007-08-08 2009-05-22 주식회사 하이닉스반도체 플래시 메모리 소자 및 그 동작 방법
US7684242B2 (en) 2007-08-08 2010-03-23 Hynix Semiconductor Inc. Flash memory device and method of operating the same
US8335118B2 (en) 2007-08-08 2012-12-18 Hynix Semiconductor Inc. Method of operating a flash memory device
US9372788B2 (en) 2013-01-02 2016-06-21 Samsung Electronics Co., Ltd. Storage system and method of adjusting spare memory space in storage system

Also Published As

Publication number Publication date
KR100780861B1 (ko) 2007-11-29
JP4628750B2 (ja) 2011-02-09
US20050132128A1 (en) 2005-06-16
US8301829B2 (en) 2012-10-30
US20110219179A1 (en) 2011-09-08
JP2005182983A (ja) 2005-07-07

Similar Documents

Publication Publication Date Title
KR100780861B1 (ko) 버퍼 메모리를 내장한 플래시 메모리 장치 및 플래시메모리 시스템
KR101495975B1 (ko) 휘발성 및 비휘발성 메모리를 갖는 하이브리드 고체 메모리 시스템
US6625081B2 (en) Synchronous flash memory with virtual segment architecture
US7907469B2 (en) Multi-port memory device for buffering between hosts and non-volatile memory devices
EP2345037B1 (en) Translation layer in a solid state storage device
KR100758301B1 (ko) 메모리 카드 및 그것의 데이터 저장 방법
US7571276B2 (en) Read operation for semiconductor memory devices
US20130124790A1 (en) Memory module, cache system and address conversion method
US20080028132A1 (en) Non-volatile storage device, data storage system, and data storage method
KR20040082921A (ko) 플래쉬 파일 시스템
US8127072B2 (en) Data storage device and method for accessing flash memory
KR102701812B1 (ko) 휘발성 메모리를 캐쉬로 사용하는 비휘발성 메모리 시스템
JPWO2006051780A1 (ja) 不揮発性メモリ装置および不揮発性メモリ装置のアクセス方法
TWI408692B (zh) 記憶體控制器及外部記憶體裝置之間的位址轉換
TW202314723A (zh) 記憶體定址方法及相關聯的控制器
US7925819B2 (en) Non-volatile memory storage system and method for reading an expansion read only memory image thereof
KR100598907B1 (ko) 연속적 읽기/쓰기가 가능한 플래쉬 메모리
US6771979B2 (en) Mobile telephone
KR101165966B1 (ko) 커맨드에 의해 동기 모드 또는 비동기 모드로 액세스 가능한 메모리 시스템
KR20090046568A (ko) 플래시 메모리 시스템 및 그것의 쓰기 방법
JP2006277736A (ja) 不揮発性記憶装置の書込み方法
JP2005190312A (ja) マルチチップパッケージ型メモリシステムおよびコンピュータシステム
CN114664336A (zh) 堆叠存储器件、存储芯片及其控制方法
KR20190087757A (ko) 반도체 장치
JP2003178280A (ja) メモリーカード

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20061027

Effective date: 20071030

S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee