KR20070085481A - 메모리 시스템 및 불휘발성 반도체 메모리 기입 방법 - Google Patents

메모리 시스템 및 불휘발성 반도체 메모리 기입 방법 Download PDF

Info

Publication number
KR20070085481A
KR20070085481A KR1020077012008A KR20077012008A KR20070085481A KR 20070085481 A KR20070085481 A KR 20070085481A KR 1020077012008 A KR1020077012008 A KR 1020077012008A KR 20077012008 A KR20077012008 A KR 20077012008A KR 20070085481 A KR20070085481 A KR 20070085481A
Authority
KR
South Korea
Prior art keywords
data
write
original block
memory
address
Prior art date
Application number
KR1020077012008A
Other languages
English (en)
Other versions
KR100899242B1 (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 KR20070085481A publication Critical patent/KR20070085481A/ko
Application granted granted Critical
Publication of KR100899242B1 publication Critical patent/KR100899242B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Abstract

메모리 시스템은 n(n은 자연수임)개의 기입 단위 영역들로 이루어진 제1 오리지널 블록 및 복수의 기입 단위 영역들로 이루어진 제1 서브블록을 포함하는 불휘발성 반도체 메모리를 포함한다. 제어기는 제1 내지 제p(p는 n보다 작은 자연수임) 어드레스 중 하나를 갖고 있는 데이터를 제1 오리지널 블록에 기입한다. 또한, 제어기는 제1 내지 제p 어드레스 중 하나의 제1 기입 어드레스를 갖고 있는 데이터의 기입 요구를 수신하고, 제1 기입 어드레스를 갖고 있는 데이터가 제1 오리지널 블록에 존재하는 경우에 제1 기입 어드레스를 갖고 있는 데이터를 제1 서브블록에 기입한다.
기입 데이터, 오리지널 블록, 기입 요구, 제어기, 실데이터

Description

메모리 시스템 및 불휘발성 반도체 메모리 기입 방법{MEMORY SYSTEM AND METHOD OF WRITING INTO NONVOLATILE SEMICONDUCTOR MEMORY}
본 발명은 메모리 시스템 및 카드 제어기 등을 이용한 메모리 기입 방법에 관한 것이다.
플래시 메모리와 같은 불휘발성 반도체 메모리를 갖고 있는 메모리 카드는 음악 데이터 또는 비디오 데이터를 기록하기 위한 매체로서 이용된다. 메모리 카드에 이용되는 플래시 메모리의 통상적인 예는 NAND형 플래시 메모리를 포함한다.
메모리 내의 데이터는 어플리케이션 등으로부터의 기입 요청에 따라서 메모리 카드가 삽입되는 호스트 디바이스내의 파일 시스템에 의해 관리된다. 파일 시스템은 기입되는 파일을 클러스터 사이즈의 데이터 단위로 분할한다. 분할된 데이터 각각에는 논리 어드레스가 할당되고, 데이터는 논리 어드레스의 순서대로 할당되지 않은 클러스터들에 할당된다. 메모리 카드는 각 데이터의 논리 어드레스와 논리 어드레스의 데이터를 기입하기 위한 물리적 어드레스 간의 대응을 메모리 상에 구현된 테이블 등으로 관리하면서, 메모리에 데이터를 기입한다.
이러한 유형의 파일 시스템을 사용하는 경우, 기입된 데이터 이외에도, FAT 및 루트 디렉토리 엔트리의 정보 등과 같은 관리 데이터는 데이터를 메모리에 기입 할 때 갱신되어야할 필요가 있다. 그러나, NAND형 플래시 메모리는 (1)데이터가 페이지 단위로 기입되며, (2)데이터가 복수의 페이지로 구성되는 블록 단위로 소거되며, (3)데이터가 이미 데이터를 보유하고 있는 페이지에는 기입될 수 없다는 특징을 갖고 있다. 그러므로, 페이지 단위로 데이터를 갱신하고자 하는 경우, 소거된 불록을 이용하여 이하 설명되는 처리가 실행된다. 구체적으로, 갱신되는 데이터(새로운 데이터)는 데이터가 기입되지 않은 새로운 블록내로 기입되고, 이후, 갱신되지 않은 나머지 데이터는, 구 데이터(새로운 데이터로 기입되는 데이터)를 포함하는 구 블록으로부터 새로운 블록에 카피된다. 그 결과, 각 페이지의 데이터를 갱신하는데 상당한 시간이 걸린다.
앞서 설명한 바와 같이, 파일을 기입할 때마다 관리 데이터의 갱신이 필요하기 때문에 관리 데이터의 갱신이 빈번하게 행해진다. 이 때문에, 플래시 메모리와 FAT 파일 시스템을 이용하는 메모리 카드에서는, 데이터 기입 또는 재기입 속도가 저하될 수 있다.
기입 속도의 저하를 피하기 위해, FAT 파일 시스템의 관리 데이터는 기입 요청의 순서대로 하위 어드레스 페이지로부터 상위 어드레스 페이지로의 데이터 저장 전용인 캐시 블록(서브블록)내에 기입될 수 있다. 캐시 블록은 각 논리 어드레스의 데이터가 원래 기입되는 블록(오리지널 블록)에 더해서 제공된다. 주어진 데이터를 기입하라는 요청이 도달할 때, 이 데이터는 오리지널 블록에 기입된다. 오리지널 블록에 이미 기입되어 있는 데이터를 갱신하라는 요청이 도달할 때마다, 이 데이터는 순차적으로 서브블록에 기입된다. 이 처리에 있어서, 메모리 카드는 주 어진 논리 어드레스의 최신 데이터가 서브블록의 어느 페이지에 기입되어 있음을 나타내는 대응 테이블을 준비한다.
카드는 소정의 타이밍에서 오리지널 블록을 재구성한다. 이 재구성은 대응 테이블을 참조해서 서브블록 내의 각 논리 어드레스의 최신 데이터를 오리지널 블록내로 모으는 것을 포함한다.
그러나, 오리지널 블록을 재구성하는 경우 이하 설명되는 문제점이 발생한다. 예를 들어, 도 16에 도시된 바와 같이 블록 B1이 어드레스 0 내지 5의 데이터를 저장하기 위한 오리지널 블록이라고 가정하자. 어드레스 0 내지 5의 구 데이터 각각은 블록 B1에 저장되어 있고, 어드레스 0 내지 5의 최신 각 데이터는 오리지널 블록 B1용의 서브 블록 B1에 저장되어 있다. 이러한 상태로부터 어드레스 0 내지 5용의 오리지널 블록이 재구성될 때, 다음의 절차가 행해진다. 먼저, 소거된 블록 B2가 준비되고, 어드레스 0의 최신 데이터가 이 서브블록의 페이지 5로부터 판독되어 블록 B2의 페이지 1에 기입된다.
다음에는, 어드레스 1의 최신 데이터가 서브블록의 페이지 4로부터 판독되어 블록 B2의 페이지 2에 기입된다. 이러한 일을 반복하면, 어드레스 0 내지 5의 최신 데이터가 도 16에 도시된 바와 같이 블록 B2에 기입된다. 마지막으로, 블록 B2는 어드레스 0 내지 5용의 대응 오리지널 블록으로 설정된다.
전술한 처리를 실행하기 위한 목적으로, 하나의 오리지널 블록에 할당된 어드레스(도시된 예에서는 6 개의 어드레스)의 수 만큼 판독 및 기입 처리가 반복 실행된다. 재구성 동안, 메모리 카드는 비지 신호를 호스트 디바이스에 계속 출력한 다. 비지 신호가 호스트 디바이스에 설정된 시간을 초과해서 출력되면, 호스트 디바이스는 메모리 카드가 고장인 것으로 판정할 수 있다. 이러한 문제점은 기술의 진보에 따라서 페이지 용량이 커짐에 따라 한층 현저해진다.
발명의 개요
본 발명의 일 측면에 따르면, n(n은 자연수임)개의 기입 단위 영역들로 이루어진 제1 오리지널 블록 및 복수의 기입 단위 영역들로 이루어진 제1 서브블록을 포함하는 불휘발성 반도체 메모리; 및 제1 내지 제p(p는 n보다 작은 자연수임) 어드레스 중 하나를 갖고 있는 데이터를 제1 오리지널 블록에 기입하고, 제1 내지 제p 어드레스 중 하나의 제1 기입 어드레스를 갖고 있는 데이터의 기입 요구를 수신하고, 제1 기입 어드레스를 갖고 있는 데이터가 제1 오리지널 블록에 존재하는 경우에 제1 기입 어드레스를 갖고 있는 데이터를 제1 서브블록에 기입하는 제어기를 포함하는 메모리 시스템이 제공된다.
본 발명의 일 측면에 따르면, n(n은 자연수임)개의 기입 단위 영역들로 이루어진 제1 오리지널 블록 및 복수의 기입 단위 영역들로 이루어진 제1 서브블록을 포함하는 불휘발성 반도체 메모리에 기입하는 방법이 제공되며, 이 방법은 제1 내지 제p(p는 n보다 작은 자연수임) 어드레스 중 하나를 갖고 있는 데이터를 제1 오리지널 블록에 기입하는 단계; 및 제1 내지 제p 어드레스 중 하나의 제1 기입 어드레스를 갖고 있는 데이터의 기입 요구를 수신하고, 제1 기입 어드레스를 갖고 있는 데이터가 제1 오리지널 블록에 존재하는 경우에 제1 기입 어드레스를 갖고 있는 데이터를 제1 서브블록에 기입하는 단계를 포함한다.
도 1은 본 발명의 실시예에 따른 메모리 카드의 구성을 보여주는 개략도.
도 2는 본 발명의 실시예에 따른 메모리 카드 내의 신호 핀에 대한 신호 할당을 보여주는 도면.
도 3은 본 발명의 실시예에 따른 메모리 카드의 하드웨어 구성을 보여주는 블록도.
도 4는 본 발명의 실시예에 따른 메모리 카드의 레지스터 유닛의 상세 구성을 보여주는 도면.
도 5는 본 발명의 실시예에 따른 메모리 카드 내의 플래시 메모리의 메모리 셀과 버퍼의 구조를 보여주는 도면.
도 6은 각 동작 모드에 있어서 SD 버스 신호 핀에 대한 신호 할당을 보여주는 도면.
도 7은 FAT 파일 시스템의 구성을 보여주는 도면.
도 8은 FAT 및 루트 디렉토리 엔트리내의 데이터의 예를 보여주는 도면.
도 9는 본 발명의 실시예에 따른 메모리 카드의 메모리 구성을 보여주는 도면.
도 10, 11, 12 및 13은 본 발명의 실시예에 따른 메모리 카드로의 기입 방법을 설명하기 위한 도면 및 플로우차트.
도 14a 및 14b는 2치 메모리와 다치 메모리의 기억 상태를 개략적으로 보여주는 도면.
도 15a 및 15b는 다치 메모리의 2치 모드에서의 기억 상태를 개략적으로 보여주는 도면.
도 16은 종래의 메모리 카드로의 기입 방법을 설명하기 위한 도면.
본 발명의 실시예를 이하 도면을 참조하여 설명한다. 다음 설명에서, 실질적으로 동일한 기능 및 구성을 갖고 있는 구성요소에는 각각 동일한 참조 번호를 부기하고 중복 설명은 필요시에만 하기로 한다.
본 발명의 실시예에 따른 메모리 시스템은 예로서 메모리 카드를 이용하여 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 메모리 카드의 구성을 보여주는 개략도이다. 메모리 카드(1)는 버스 인터페이스(14)를 통해서 호스트 디바이스(2)로 정보를 전송하고 호스트 디바이스(2)로부터 정보를 수신한다. 메모리 카드(1)는 NAND형 플래시 메모리(이하 간단히 플래시 메모리라 함) 칩(11), 플래시 메모리 칩(11)을 제어하기 위한 카드 제어기(12) 및 복수의 신호 핀(제1 내지 제9 핀)(13)을 포함하고 있다.
신호 핀(13)은 카드 제어기(12)에 전기적으로 연결되어 있다. 신호 핀(13)의 제1 내지 제9 핀 각각에는, 예를 들어, 도 2에 도시된 바와 같이 신호가 할당된다.
데이터 0 내지 3은 각각 제7, 제8, 제9 및 제1 핀에 할당된다. 제1 핀은 또한 카드 검출 신호에 할당된다. 또한, 제2 핀은 커맨드에 할당된다. 제3 핀 및 제6 핀은 접지 전위 Vss에 할당되고, 제4 핀은 소스 전위 Vd에 할당되고, 제5 핀은 클럭 신호에 할당된다.
메모리 카드(1)는 호스트 디바이스 내에 형성된 슬롯에 대해서 착탈 가능하게 형성되어 있다. 호스트 디바이스 내에 배열된 호스트 제어기(도시되어 있지 않음)는 제1 내지 제9 핀을 통해서 메모리 카드(1) 내의 카드 제어기(12)와 다양한 신호 및 데이터를 통신한다. 예를 들어, 데이터를 메모리 카드(1)에 기입하는데 있어서, 호스트 제어기는 기입 커맨드를 시리얼 신호로서 제2 핀을 통해 카드 제어기(12)에 전송한다. 이 처리에서, 카드 제어기(12)는, 제5 핀에 제공된 클럭 신호에 응답해서, 제2 핀에 부여된 기입 커맨드를 받아들인다.
앞서 설명한 바와 같이, 기입 커맨드는 단지 제2 핀을 이용하여 카드 제어기(12)에 직렬로 입력된다. 커맨드 입력에 할당된 제2 핀은 도 2에 도시된 바와 같이 데이터(3)용의 제1 핀과 접지 전위 Vss용의 제3 핀 사이에 배열되어 있다. 신호 핀(13) 및 이 신호 핀용의 버스 인터페이스(14)는 호스트 디바이스(2) 내의 호스트 제어기와 메모리 카드(1) 간의 통신에 이용된다.
한편, 플래시 메모리(11)와 카드 제어기(12) 간의 통신은 NAND형 플래시 메모리용의 인터페이스에 의해 이루어진다. 그러므로, 도시되어 있지 않을지라도, 플래시 메모리(11)와 카드 제어기(12)는 8-비트 입력/출력 (I/O) 라인에 의해 서로 연결된다.
예를 들어, 데이터를 플래시 메모리(11)에 기입할 때, 카드 제어기(12)는 데이터 입력 커맨드 80H, 컬럼 어드레스, 페이지 어드레스, 데이터, 및 프로그램 커맨드 10H를 순차적으로 I/O 라인을 통해서 플래시 메모리(11)에 입력한다. 커맨드 80H에서, "H"는 16진수를 나타낸다. 실제로, 8-비트 신호 "10000000"는 8-비트 I/0 라인에 병렬로 인가된다. 다시 말해, 복수 비트의 커맨드는 NAND형 플래시 메모리용의 인터페이스에 병렬로 인가된다.
또한, NAND형 플래시 메모리용의 인터페이스에서, 플래시 메모리(11)용의 커맨드와 데이터는 통신용의 동일 I/O 라인을 공유한다. 이와 같이, 호스트 디바이스(2) 내의 호스트 제어기와 메모리 카드(1) 간의 통신을 위한 인터페이스는 플래시 메모리(11)와 카드 제어기(12) 간의 통신용 인터페이스와는 다르다.
도 3은 본 발명의 실시예에 따른 메모리 카드의 하드웨어 구성을 보여주는 블록도이다.
호스트 디바이스(2)는 버스 인터페이스(14)를 통해서 연결된 메모리 카드(1)를 할당하기 위한 하드웨어 및 소프트웨어를 포함하고 있다. 메모리 카드(1)는, 호스트 디바이스(2)에 연결될 때, 전원이 공급되어 동작하므로, 호스트 디바이스(2)로부터의 액세스에 대응하는 처리를 실행한다.
메모리 카드(1)는, 앞서 설명한 바와 같이, 플래시 메모리(11) 및 카드 제어기(12)를 포함한다. 플래시 메모리(11)의 소거용의 블록 사이즈(소거 단위의 블록 사이즈)는 미리 정해진다(예를 들어, 256 kB). 또한, 데이터는 페이지라 칭하는 단위(예를 들어, 2kB)로 플래시 메모리(11)에 대해 기록 및 판독된다.
카드 제어기(12)는 플래시 메모리(11) 내의 물리적인 상태(예를 들어, 어느 물리적인 블록 어드레스가 어떤 순서로 논리 섹터 어드레스 데이터를 포함하고 있는지 또는 어느 블록이 소거되는지)를 관리한다. 카드 제어기(12)는 호스트 인터페이스 모듈(21), 마이크로 처리 유닛(MPU)(22), 플래시 제어기(23), 판독 전용 메모리(ROM)(24), 랜덤 액세스 메모리(RAM)(25), 및 버퍼(26)를 포함하고 있다.
호스트 인터페이스 모듈(21)은 카드 제어기(12)와 호스트 디바이스(2) 간의 인터페이스로서 처리를 실행하고, 레지스터 유닛(27)을 포함한다. 도 4는 레지스터 유닛(27)의 상세 구성을 보여주고 있다. 레지스터 유닛(27)은 카드 상태 레지스터, 및 CID(card identification number), RCA(relative card address), DSR(driver stage register), CSD(card specific data), SCR(SD configuration data register), 및 OCR(operation condition register)와 같은 다양한 레지스터를 포함하고 있다.
이들 레지스터는 이하 설명되는 바와 같이 정의되어 있다. 카드 상태 레지스터는 예를 들어 후에 설명되는 에러 정보를 기억하는 통상 동작에 이용된다. CID, RCA, DSR, CSD, SCR 및 OCR은 주로 메모리 카드를 초기화하는데 이용된다.
CID는 메모리 카드(1)의 개체 번호를 기억한다. RCA는 초기화시 호스트 디바이스에 의해 동적으로 결정되는 상대 카드 어드레스를 기억한다. DSR은 메모리 카드(1) 등의 버스 구동력을 기억한다.
CSD는 메모리 카드(1)의 특성 파라미터 값을 기억하고, 버젼 정보, 성능 식별 코드 및 성능 파라미터를 보유한다.
SCR은 메모리 카드(1)의 데이터 배치를 기억한다. OCR은 동작 범위 전압에 한정되는 메모리 카드용의 동작 전압을 기억한다.
MPU(22)는 메모리 카드(1)의 동작 전체를 제어한다. 예를 들어, 메모리 카드(1)에 전원이 공급될 때, MPU(22)는 ROM(24)에 저장되어 있는 펌웨어(제어 프로그램)를 RAM(25) 상에 독출하여 소정의 처리를 실행함으로써 RAM(25) 상에 각종의 테이블을 작성한다.
MPU(22)는 또한 호스트 디바이스(2)로부터 기입 커맨드, 판독 커맨드 및 소거 커맨드를 수신하고 플래시 메모리(11)에 대해서 소정의 처리를 실행하거나 또는 버퍼(26)를 통한 데이터 전송 처리를 제어한다.
ROM(24)은 MPU(22)에 의해 제어되는 제어 프로그램을 저장한다. RAM(25)은 MPU(22)의 작업 영역으로서 사용되고, 제어 프로그램 및 각종 테이블을 저장한다. 플래시 제어기(23)는 카드 제어기(12)와 플래시 메모리(11) 간의 인터페이스 처리를 실행한다.
버퍼(26)는 호스트 디바이스(2)로부터의 데이터를 플래시 메모리(11)에 기입하거나 또는 플래시 메모리(11)로부터 판독된 데이터를 호스트 디바이스(2)로 전송하는 경우 일정량의 데이터(예를 들어, 1 페이지)를 일시적으로 저장한다.
도 5는 메모리 카드(1) 내의 플래시 메모리(11)에 있어서의 데이터 배치를 보여주고 있다. 플래시 메모리(11)의 각 페이지는 2112B(512B 데이터 기억부×4 + 10B 용장부 × 4 + 24B 관리 데이터 기억부)를 가지고 있으며, 128 페이지는, 예를 들어, 하나의 소거 단위(256 kB + 8 kB (K 1024))를 구성한다. 다음의 설명에서, 플래시 메모리(11)의 소거 단위는 편의상 256 kB로 설정한다.
또한, 플래시 메모리(11)는 플래시 메모리(11)에 대해서 데이터를 입/출력하기 위한 페이지 버퍼(11A)를 갖고 있다. 페이지 버퍼(11A)의 기억 용량은 2112B(2048B + 64B)이다. 데이터 기입시, 페이지 버퍼(11A)는 그의 기억 용량에 상당하는 1 페이지의 단위로 플래시 메모리(11)에 대해서 데이터를 입/출력한다.
플래시 메모리(11)의 기억 용량이 1G 비트라면, 256 kB 블록(소거 단위)의 수는 512이다.
도 5가 256 kB의 소거 단위를 보여주고 있을지라도, 실무상 16 kB 블록의 소거 단위를 구축하는 것도 유효하다. 이 경우에, 각 페이지는 528B(512B 데이터 기억부 + 16B 용장부)를 갖고 있으며, 32 페이지는 하나의 소거 단위(16 kB + 0.5 kB)를 구성한다.
데이터가 기입되는 플래시 메모리(11)의 영역(데이터 기억부)은, 도 3에 도시된 바와 같이, 보유될 데이터에 상당하는 복수의 영역으로 분리된다. 플래시 메모리(11)는 관리 데이터 영역(31), 기밀 데이터 영역(32), 보호 데이터 영역(33) 및 유저 데이터 영역(34)을 포함하고 있다.
관리 데이터 영역(31)은 주로 메모리 카드에 관한 관리 정보, 즉 메모리 카드(1)의 보안 정보 및 미디어 ID와 같은 카드 정보를 저장한다.
기밀 데이터 영역(32)은 암호화에 이용되는 키 정보 및 인증시에 이용되는 기밀 데이터를 저장하며, 호스트 디바이스(2)로부터는 액세스가 되지 않는다.
보호 데이터 영역(33)은 중요 데이터를 저장하며, 메모리 카드(1)에 접속된 호스트 디바이스(2)와의 상호 인증에 의해 호스트 디바이스(2)의 정당성이 증명된 경우에만 액세스될 수 있다.
유저 데이터 영역(34)은 유저 데이터를 저장하며, 메모리 카드(1)를 이용하는 유저가 자유롭게 액세스 및 사용할 수 있다.
이 실시예는, 메모리 카드(1)의 동작 모드가 SD 4-비트 모드인 경우를 예로 들어 설명되고 있을지라도, 본 발명은 SD 1-비트 모드 및 SPI 모드에도 적용할 수 있다. 도 6은 SD 4-비트 모드, SD 1-비트 모드 및 SPI 모드에 있어서 신호 핀에 대한 신호 할당을 보여주고 있다.
메모리 카드(1)의 동작 모드는 SD 모드 및 SPI 모드로 대별된다. SD 모드에서, 메모리 카드(1)는 호스트 디바이스(2)로부터의 버스 폭 변경 커맨드에 의해서 SD 4-비트 모드 또는 SD 1-비트 모드에 설정된다.
4개의 데이터, 즉 데이터 0 핀(DATA0) 내지 데이터 3 핀(DATA3)을 주목하자. 4-비트 폭의 단위로 데이터를 전송하기 위한 SD 4-비트 모드에 있어서, 데이터 0 내지 데이터 3 핀을 포함하는 4개의 핀은 모두 데이터 전송에 이용된다.
1-비트 폭의 단위로 데이터를 전송하는 SD 1-비트 모드에 있어서, 데이터 0 핀(DATA0)만이 데이터 전송용으로 사용되고, 데이터 1 핀(DATA1) 및 데이터 2 핀(DATA2)은 전혀 사용되지 않는다. 또한, 데이터 3 핀(DARA3)은, 예를 들어, 메모리 카드(19)로부터 호스트 디바이스(2)로의 비동기 인터럽션용으로 사용된다.
SPI 모드에 있어서, 데이터 0 핀(DATA0)은 메모리 카드(1)로부터 호스트 디바이스(2)로의 데이터 신호 라인(DATA OUT)용으로 사용된다. 커맨드 핀(CMD)은 호스트 디바이스(2)로부터 메모리 카드(19)로의 데이터 신호 라인(DATA IN)용으로 사용된다. 데이터 1 핀(DATA1) 및 데이터 2 핀(DATA2)은 전혀 사용되지 않는다. 또한, SPI 모드에 있어서, 데이터 3 핀(DATA3)은 호스트 디바이스(2)로부터 메모리 카드(1)로의 칩 선택 신호 CS의 송신에 사용된다.
호스트 디바이스(2)는 파일 시스템을 탑재하고 있다. 파일 시스템은 메모리에 기록된 파일(데이터)을 관리하며, 이 메모리 내의 관리 영역 및 관리 정보를 포함하고 있다. 파일 시스템은 또한 메모리에 있어서 파일 및 폴더와 같은 디렉토리 정보를 작성하는 방법, 파일 및 폴더를 이동 또는 삭제하는 방법, 데이터 기록 방식, 및 관리 영역이 존재하는 장소에 대한 정보와 이를 이용하는 방법을 정의한다.
도 7은 클러스터 사이즈가 16 kByte인 파일 할당 테이블(FAT) 파일 시스템의 일례를 보여주고 있다. 파일 시스템은 관리 영역(701) 및 복수의 클러스터 A, B, C 및 D(702 내지 705)로 구성되어 있다. 파일 시스템 관리 영역(701)은, 예를 들어, 부팅 정보를 기억하는 영역(711), 파티션 정보 등을 기억하는 영역(712), 루트 디렉토리 엔트리의 정보를 기억하는 루트 디렉토리 엔트리 영역(713), 및 FAT1, FAT2(714, 715)를 포함하고 있다.
예를 들어, 클러스터 A 및 클러스터 B가 사용되는 상태에서, 이름이 "AAA txt"이고 파일 사이즈가 32 kByte인 파일을 기억부에 기입한다고 하자. 이 파일의 사이즈는 클러스터 사이즈보다 크므로, 이 파일은 클러스터 단위로 나뉘어져 기억부의 빈 클러스터들에 저장된다. 구체적으로, 기입될 파일의 사이즈가 32 kByte이므로, 이 파일은 2개의 클러스터를 이용하여 기입된다. 이 클러스터들은 연속적일 필요가 없으므로, 예를 들어, 클러스터 B 및 D를 이용하여 파일을 저장할 수 있다. 하나의 파일을 구성하는 각 데이터에는 통상 연속하는 논리 어드레스가 할당된다. 이러한 이유로, 파일 시스템이 하나의 파일을 구성하는 각 데이터를 어드레스가 연속하지 않는 클러스터에 할당할지라도, 각 데이터에 할당되는 논리 어드레스는 연속이다.
기입하고자 하는 파일이 어느 클러스터에 기입되야 하는지를 나타내는 관리 데이터가 FAT1 및 FAT2에 저장된다. FAT1 및 FAT2는 동일한 데이터를 저장한다. 하나의 FAT가 결함이 있으면, 다른 FAT를 이용하여 데이터를 복구할 수 있다. FAT1 및 FAT2는 파일에 할당된 클러스터 및 기억부 내의 클러스터들의 링크 관계에 대한 정보를 저장한다. FAT1 및 FAT2에 저장된 정보를 추적하여, 오리지널 파일을 복원할 수 있다.
이 경우에, 분할된 파일의 제1 16 kByte가 클러스터 B에 저장되고, 마지막 16 kByte는 클러스터 D에 저장된다. 이러한 이유로, FAT1 및 FAT2는 클러스터 B 다음에 클러스터 D가 링크되어야 한다는 것을 나타내는 정보를 기억한다. 두개의 클러스터로 분할된 파일을 판독할 때, 데이터는 FAT1 및 FAT2에 기억된 바와 같이 직렬로 연결되어 오리지널 데이터가 복원된다.
루트 디렉토리 엔트리 영역(713)은 FAT1 및 FAT2 내의 어느 클러스터가 파일의 헤드 클러스터인지를 나타내는 플래그는 물론이고 파일 이름 또는 폴더 이름, 파일 사이즈, 속성 및 파일 갱신 일시를 기억한다. 이 예에서, 루트 디렉토리 엔트리 영역(713)에 기억된 정보는 파일 이름 "AAA txt", 32 kByte의 파일 사이즈 및 헤드 클러스터로서의 클러스터 B를 갖고 있다.
도 8은 FAT1, FAT2 및 루트 디렉토리 엔트리 내의 데이터의 일례를 보여주고 있다. 도 8에 도시된 바와 같이, 파일 "FILE1 txt", "FILE2 txt" 및 "FILE3 txt" 각각의 헤드 클러스터의 위치에 대한 정보는 루트 디렉토리 영역 내의 파일 엔트리로서 나타내어 있다. "FILE1 txt", "FILE2 txt" 및 "FILE3 txt"의 헤드 클러스터는 각각 클러스터 0002, 0005 및 0007이다.
FAT(FAT1, FAT2)는 각 클러스터 다음에 연결되는 클러스터 번호를 보여준다. "FILE1 txt"의 예에서, 클러스터 0003은 헤드 클러스터 0002에 기억되어 있는 데이터에 뒤이은 데이터를 기억하며, 클러스터 0004는 클러스터 0003에 기억되어 있는 데이터에 뒤이은 데이터를 기억한다. 클러스터 0002, 0003 및 0004의 데이터를 연결하면 복원된 "FILE1 txt" 파일이 제공된다.
도 9는 본 발명의 실시예에 따른 메모리 카드의 메모리의 구성을 보여주고 있다. 도 9에 도시된 바와 같이, 유저 데이터 영역(11)은 통상의 데이터 기억을 위한 오리지널 블록 OB 및 서브블록(캐시 블록) SB를 포함하고 있다. 블록 OB, SB는 플래시 메모리의 소거 단위에 대응한다. 단일의 오리지널 블록 OB에는 소정 범위에 걸처서 연속하는 논리 어드레스들의 데이터가 이들 논리 어드레스의 순서로 기입된다. 이 규칙은 연속해서 읽혀질 수 있는 데이터를 한 블록 내로 모아서 판독 동작을 효율적으로 실행하는데 적용될 수 있다. 각 오리지널 블록 OB는 페이지 OP를 갖고 있고, 각 서브블록 SB는 페이지 SP를 갖고 있다.
일반적으로, 데이터는 논리 어드레스 순서대로 하위의 물리적 어드레스 페이지로부터 상위의 물리적 어드레스 페이지 OP로 오리지널 블록 OB에 기입된다.
오리지널 블록 OB는 데이터용의 오리지널 블록 OBD1 내지 OBDn, 및 관리 데이터용의 오리지널 블록 OBM1 내지 OBMn을 포함하고 있다. 데이터용의 오리지널 블록 OBD1 내지 OBDn은 파일을 구성하는 실데이터(이하, 단순히 데이터라고 칭한다)를 저장하며, 관리 데이터용의 오리지널 블록 OBM1 내지 OBMn은 FAT와 같은 관리 데이터를 저장한다.
데이터용의 오리지널 블록 OBD1 내지 OBDn은 오리지널 블록 OBD1 내지 OBDn에 포함되어 있는 페이지와 동수의 데이터를 저장한다. 하나의 블록이 128 페이지로 구성될 때, 데이터용 오리지널 블록에는 연속 어드레스인 최대 128 데이터가 기입된다.
한편, 관리 데이터용의 오리지널 블록 OBM1 내지 OBMn은 오리지널 블록 OBM1 내지 OBMn에 포함되어 있는 페이지보다 작은 관리 데이터를 저장한다. 관리 데이터용의 복수의 오리지널 블록 OBM은 n개의 데이터(n은 한 블록에 포함되어 있는 페이지의 수임, 예를 들어, 128)를 저장하는데 이용된다. 예를 들어, 관리 데이터용의 오리지널 블록 OBM의 페이지 수가 128이라고 하자. 이때, 128 어드레스 중 수개의 어드레스의 데이터는 하나의 관리 데이터용의 오리지널 블록 OBM에 저장되는 한편, 128 어드레스 중 나머지 어드레스의 데이터는 다른 관리 데이터용의 오리지널 블록 OBM에 저장된다.
예를 들어, 관리 데이터를 저장하는데 두개의 관리 데이터용의 오리지널 블록 OBM이 이용되는 경우, 제1 관리 데이터용의 오리지널 블록은 논리 어드레스 A0 내지 An 중에서 논리 어드레스 A0 내지 AP 의 데이터를 저장한다. 여기서, p는 n보다 작은 자연수이다. 제2 관리 데이터용의 오리지널 블록은 논리 어드레스 Ap +1 내지 An 의 데이터를 저장한다. 가장 통상적인 예로서, 관리 데이터용의 각 오리지널 블록은 하나의 오리지널 블록에 포함된 페이지 수의 반에 해당하는 어드레스의 데이터를 저장한다. 그 결과, 사용되지 않은 페이지가 관리 데이터용의 각 오리지널 블록에 존재한다. 이하, 동일한 관리 데이터용의 오리지널 블록에 속하게 되는 복수의 논리 어드레스를 그룹이라 칭한다.
유사하게, 세개의 관리 데이터용의 오리지널 블록 OBM이 관리 데이터를 저장하는데 이용되는 경우, 제1 관리 데이터용의 오리지널 블록은 논리 어드레스 A0 내지 An 중에서 논리 어드레스 A0 내지 AP 의 데이터를 저장한다. 제2 관리 데이터용의 오리지널 블록은 논리 어드레스 Ap +1 내지 Aq 의 데이터를 저장한다. 여기서, q는 (p+1)보다는 작지 않고 n보다는 작은 자연수이다. 제3 관리 데이터용의 오리지널 블록은 논리 어드레스 Aq +1 내지 An 의 데이터를 저장한다. 4개 이상의 관리 데이터용의 오리지널 블록 OBM이 사용되는 경우에도 유사한 규칙이 적용된다.
또한, 관리 데이터용의 오리지널 블록 OBM1 내지 OBMn 마다 서브블록(캐시 블록) SB1 내지 SBn이 설치된다. 각 서브블록 SB에 있어서, 각 서브블록 SB에 해당하는 관리 데이터용의 오리지널 블록 OBM에 기입될 데이터는 그들의 논리 어드레스에 관계없이 최상위의 물리적 어드레스 페이지로 차례로 기입된다.
다음으로, 전술한 구성을 갖고 있는 메모리 카드에 기입하는 방법에 대해 도 10 내지 13을 참조하여 설명하기로 한다. 도 10, 11 및 12는 본 발명의 실시예에 따른 메모리 카드내로의 기입 방법을 설명하기 위한 도면이다. 도 13은 본 발명의 실시예에 따른 일회의 기입 요청에 응답해서 메모리 카드로의 기입 동작 실행을 보여주는 플로우차트이다.
카드 제어기(12)는 이하 설명되는 방법에 따라 플래시 메모리(11)에 데이터를 기입한다. 구체적으로, 카드 제어기(12)는 후에 설명되는 방법에 따라 호스트 디바이스(2)로부터 기입 요청이 수신된 데이터에 대한 논리 어드레스와 이 논리 어드레스의 데이터가 기입되어야 하는 물리적 어드레스 간의 대응을, 예를 들어, RAM 상에 실현한 대응 테이블로 관리하면서, 플래시 메모리(11)에 데이터를 저장한다.
도 10에 도시된 예에서 각 오리지널 블록 OB는 6 페이지를 포함하고 있고, 카드 제어기(11)는 각각의 관리 데이터용의 오리지널 블록 OBM이 3개의 어드레스, 즉 6개의 어드레스의 반의 데이터를 저장하도록 동작한다. 이는 단지 설명의 간략화를 위한 것이다.
먼저, 어드레스 A0, A1, A2의 관리 데이터는 제1 기입 요청에 응답해서 어드레스 A0, A1, A2의 관리 데이터를 저장하도록 설치된 관리 데이터용의 오리지널 블록 OBM1의 페이지 OP11, OP12 및 OP13에 순차적으로 기입된다. 구체적으로, 어드레스 A0, A1, A2의 관리 데이터가 기입되어 있는 관리 데이터용의 오리지널 블록이 존재하는지 여부가 판정된다(단계 S1). 그러한 관리 데이터용의 오리지널 블록이 존재하지 않는 경우, 기입 요청에 연관된 관리 데이터(기입 데이터)의 어드레스가 판정된다(단계 S2). 이 어드레스가 A0, A1, 및 A2 중에서 어느 하나이면, 처리는 단계 S3로 진행한다.
단계 S3에서, 어드레스 A0의 관리 데이터는 소거 블록 OBM1에 기입된다. 어드레스가 A0, A1, 및 A2 의 관리 데이터를 저장하기 위한 블록으로서 관리 데이터용의 오리지널 블록 OBM1을 이용하여, 어드레스 A0와 동일한 그룹에 속하는 어드레스 A1 및 A2의 제1 기입 요청에 관련된 관리 데이터가 오리지널 블록 OBM1에 순차적으로 기입된다. 구체적으로, 단계 S1에서의 판정이 "거짓"이고 단계 S2에서의 판정이 "참"이라면, 기입 데이터는 관리 데이터용의 오리지널 블록 OBM1에 기입된다. 페이지 OP14, OP15 및 OP16은 사용되지 않는다.
한편, 어드레스 A3, A4 및 A5의 관리 데이터는 제1 기입 요청에 응답해서 어드레스 A3, A4 및 A5의 관리 데이터를 저장하도록 설정된 관리 데이터용의 오리지널 블록 OBM2의 페이지 OP21, OP22 및 OP23에 순차적으로 기입된다. 구체적으로, 단계 S1 및 S2에서의 판정이 둘다 "거짓"이라면, 처리는 단계 S4로 진행한다.
단계 S4에서, 어드레스 A3의 관리 데이터는 소거 블록 OBM2에 기입된다. 관리 데이터용의 오리지널 블록 OBM2는 어드레스 A3, A4 및 A5의 관리 데이터를 저장하도록 설정된 블록으로서 사용되고, 어드레스 A3와 동일한 그룹에 속하는 어드레스 A4 및 A5의 제1 기입 요청에 관련된 관리 데이터는 오리지널 블록 OBM2에 순차적으로 기입된다. 구체적으로, 단계 S1 및 S2에서의 판정이 "거짓"이면, 기입 데이터는 관리 데이터용의 오리지널 블록 OBM2에 기입된다. 페이지 OP24, OP25 및 OP26은 사용되지 않는다.
관리 데이터용의 오리지널 블록 OBM1에 기입된 논리 어드레스 A0, A1, 및 A2 중에서 어느 하나의 관리 데이터에 대한 갱신 요청이 수신될 때, 관리 데이터는 도 11에 도시된 바와 같이 그들의 논리 어드레스에 관계없이 서브블록 SB1에 기입된다. 구체적으로, 단계 S1에서 판정이 "참"이면, 처리는 S5로 진행한다. 단계 S5에서, 기입 데이터의 어드레스가 판정된다. 이 어드레스가 A0, A1, 및 A2 중에서 어느 하나이면, 기입 데이터는 서브블록 SB1의 페이지 SP11로부터 페이지 SP16으로 기입 요청의 도달 순서대로 기입된다(단계 S6).
마찬가지로, 관리 데이터용의 오리지널 블록 OBM2에 기입된 논리 어드레스 A3, A4, 및 A5 중에서 어느 하나의 관리 데이터에 대한 갱신 요청이 수신될 때, 관리 데이터는 논리 어드레스에 관계없이 서브블록 SB2에 기입된다. 구체적으로, 단계 S1에서 판정이 "참"이고 단계 S5에서의 판정이 "거짓"이면, 서브블록 SB2의 페이지 SP21로부터 페이지 SP26으로 기입 요청의 도달 순서대로 기입된다(단계 S7).
다음에는 도 12에 도시된 바와 같이, 서브블록 SB1이 가득 찼을 때 등의 소정 타이밍에서 서브블록 SB1 내의 각 논리 어드레스의 최신 관리 데이터를 이용하여 어드레스 A0, A1, 및 A2의 관리 데이터용의 오리지널 블록을 재구성한다(단계 S8). 구체적으로, 소거된 관리 데이터용의 오리지널 블록 OBM3가 준비되고, 관리 데이터용의 오리지널 블록 OBM3에는 논리 어드레스 A0, A1, 및 A2의 최신 관리 데이터가, 논리 어드레스 순서, 즉 페이지 OP31, OP32 및 OP33 순서대로 카피된다.
이후, 논리 어드레스 A0, A1, 및 A2의 관리 데이터를 저장하는 관리 데이터 블록 OBM3의 페이지 OP31, OP32 및 OP33에 각각 논리 어드레스 A0, A1, 및 A2가 대응하는 것을 보여주는 대응 테이블이 재기입된다. 관리 데이터 블록 OBM1 내의 데이터는 소정 타이밍에서 순차적으로 소거된다.
오리지널 블록의 재구성에 요구되는 데이터 판독/기입 사이클은 하나의 오리지널 블록에 저장되게 할당된 어드레스의 수와 일치한다. 본 실시예에 따르면, 관리 데이터용의 각 오리지널 블록 OBM은 n 페이지로 구성되며 n 어드레스보다 작게 할당된다. 이러한 이유 때문에, 하나의 관리 데이터용의 오리지널 블록 OBM을 재구성하기 위한 판독/기입 사이클은 n 미만이다.
서브블록 SB2에 대해서도 유사한 처리가 실행된다. 구체적으로, 소거된 관리 데이터용의 오리지널 블록 OBM4가 준비되고, 관리 데이터용의 오리지널 블록 OBM4의 페이지 OP41, OP42 및 OP43에는 논리 어드레스 A3, A4, 및 A5의 최신 관리 데이터가 순차적으로 카피된다. 이후, 논리 어드레스 A3, A4, 및 A5와 논리 어드레스 A3, A4, 및 A5의 관리 데이터를 저장하는 관리 데이터 블록 OBM4의 페이지 OP41, OP42 및 OP43가 서로 대응하도록 대응 테이블이 재기입된다.
플래시 메모리(11)의 메모리 셀이 다치(다-비트, 예를 들어 2비트)를 기록할 수 있을때, 이하 설명되는 방법을 이용할 수 있다. 구체적으로, 관리 데이터의 오리지널 블록 OBM의 메모리 셀에는 다치 정보로 관리 데이터가 기입되고, 서브블록 SB에는 소위 이진 모드라 불리는 방법에 의해 관리 데이터가 기입된다. 이 방법은 도 14a, 14b, 15a 및 15b를 참조해서 이하 설명하기로 한다. 도 14a 및 14b는 이진 메모리 및 다치 메모리에 데이터가 저장되는 방법을 개략적으로 보여주는 도면이다. 도 15a 및 15b는 다치 메모리의 이진 모드에서 데이터가 저장되는 방법을 개략적으로 보여주는 도면이다.
NAND형 플래시 메모리는 이진 메모리와 다치 메모리로 분류할 수 있다. 도 14a에 도시된 바와 같이, 논리 "0" 또는 "1"의 1-비트 데이터만이 이진 메모리의 하나의 메모리 셀 MC에 저장된다. 한편, 다치 메모리에서는, 예를 들어, 2-비트 데이터가 도 14b에 도시된 바와 같이 하나의 메모리 셀 MC에 저장될 수 있다.
이진 메모리에서 "01101111"과 같은 8-비트 데이터에 대한 기입 요청의 수신시, 예를 들어, 연속적인 물리적 어드레스를 갖고 있는 8개의 메모리 셀 MC의 각각은 8-비트 데이터중 1 비트를 저장하며, 1 페이지 어드레스는 8 비트의 클러스터에 할당된다.
한편, 다치 메모리에 있어서는, 메모리 셀들 각각이 2-비트 데이터를 저장하며, 비트들 각각에는 서로 다른 어드레스가 할당된다. 예를 들어, 각 메모리 셀 MC의 상위 비트의 클러스터에는 하나의 페이지 어드레스가 할당되고, 하위 비트의 클러스터에는 하나의 페이지 어드레스가 할당된다. 상위 비트의 클러스터에 할당된 페이지는, 예를 들어, 상위 페이지(upper page)라 불리며, 하위 비트의 클러스터에 할당된 페이지는, 예를 들어, 하위 페이지(lower page)라 불린다.
다치 메모리의 하나의 메모리 셀 MC에 2-비트 데이터가 기입될 때, 두번의 기입 동작이 실행된다. 다시 말해, 데이터가 하위 페이지 어드레스 및 상위 페이지 어드레스에 개별적으로 기입된다.
다치 메모리에 기입하는 현행 규칙은 하위 페이지로의 기입 후에 상위 페이지로의 기입을 허용할 수 있고, 상위 페이지로의 기입 후에 하위 페이지로의 기입을 금지할 수 있다. 이 규칙에 따르면, 하위 페이지로의 기입시에 어떤 이상 사태(예를 들면, 순간 전압 장애)가 발생하여 메모리 셀 MC의 기억이 파괴되는 경우, 데이터가 상위 페이지에는 기입되지 않기 때문에 하위 페이지에 기입될 데이터만이 파괴된다.
그러나, 상위 페이지로의 기입이 실패하여 메모리 셀 내의 데이터가 파괴될 때는, 하위 페이지에 이미 기입된 데이터도 파괴된다. 파괴된 데이터는 일반적으로 플래시 메모리(11)에 남지 않으며, 남아있다고 하더라도 호스트 디바이스(2)에만 남게된다. 따라서, 데이터를 호스트 디바이스(2)로부터 다시 전송하지 않으면(바람직한 것음 아님), 플래시 메모리(11) 내의 전체 데이터를 잃어버리게 된다.
전술한 바와 같이, 클러스터들로 나뉘어진 데이터를 오리지널 파일로 복원하기 위해서는 FAT와 같은 관리 데이터가 필요하다. 그러므로, 일단 관리 데이터가 파괴되면, 오리지널 파일을 복원할 수 없다.
따라서, 서브블록 SB에 관리 데이터를 기입할 때, 다치 메모리 셀은 이진 메모리 셀로서 이용된다. 그렇게 함으로써, 메모리 셀당 기억 용량은 다치 데이터의 기입 동작에 비해서 저하될지라도, 상위 페이지에 기입될 때 이미 기입된 하위 페이지의 관리 데이터가 파괴되는 것이 방지된다. 이 기입 방법은 예를 들어 "이진 모드"라 불린다.
도 15a 및 15b는 다치 메모리 셀을 2가지 방법으로 이진 메모리 셀로서 이용하는 방법을 보여주고 있다. 하나의 방법으로는, 데이터가 상위 및 하위 페이지 중에서 하나에만 기입된다(도 15a). 다른 방법으로는, 상위 및 하위 페이지에 동일한 데이터를 기입하는 것이다(도 15b). 양 방법에 있어서, 하위 또는 상위 페이지의 데이터(1 비트-데이터)만이 메모리 셀에 기입된다. 이러한 이유로, 데이터 기입이 실패할 때, 이미 기입된 데이터는 파괴되지 않는다.
관리 데이터용의 오리지널 블록 OB의 메모리 셀에서는, 데이터용의 오리지널 블록 OBD에서와 같이, 다치 데이터가 기억되지만(데이터가 다치 모드로 기입됨) 데이터는 이하 설명되는 이유로 이진 모드로는 기입되지 않는다. 즉, 관리 데이터용의 오리지널 블록 OB의 메모리 셀 MC에는 데이터가 다치 모드로 기입되고, 그러므로, 재구성 등의 경우에 상위 페이지의 데이터 기입 실패 때문에 하위 페이지의 데이터가 파괴될 수 있다. 그러나, 이런 경우에도, 관리 데이터용의 오리지널 블록 OB의 하위 페이지의 데이터는 서브블록 SB에 저장된다. 그 결과, 상위 페이지의 데이터가 관리 데이터용의 오리지널 블록 OB에 기입되는 것이 실패하더라도, 관리 데이터가 완전히 손실되지 않는다.
본 발명의 실시예에 따른 메모리 카드에 의하면, 관리 데이터용의 오리지널 블록은 관리 데이터를 저장하는 오리지널 블록에 포함되어 있는 페이지의 수 n보다 작은 수의 어드레스의 데이터를 저장하며, 2개 이상의 관리 데이터용의 오리지널 블록은 n 어드레스의 관리 데이터를 저장한다. 따라서, 하나의 관리 데이터용의 오리지널 블록을 재구성하기 위한 판독/기입 사이클의 수는 n보다 작다.
서브블록 SB 내의 각 어드레스의 모든 최신 관리 데이터를 카피하는데 필요한 전체 시간량은 하나의 관리 데이터용의 오리지널 블록에 할당된 어드레스의 수에 관계없이 일정하다. 그러나, 적어도 본 발명에 따르면, 일회의 재구성 세션에 필요한 시간은, 관리 데이터용의 오리지널 블록 OBM에 포함된 페이지 수 만큼의 어드레스가 관리 데이터용의 각 오리지널 블록 OBM에 할당되는 경우 보다 짧다. 이러한 이유로, 재구성시에 비지 신호의 지속 시간이 규정된 시간을 초과하는 것이 방지된다.
당업자들이라면 부가적인 장점 및 수정들은 쉽게 파악할 수 있을 것이다. 그러므로, 광의의 의미에서 본 발명은 본 명세서에 도시되고 설명된 구체적인 세부사항 및 대표적인 실시예들에 한정되지 않는다. 따라서, 첨부된 청구범위 및 이들의 균등물에 의해 정의되는 바와 같은 본 발명의 사상 및 범주를 벗어나지 않고서도 다양한 수정을 가할 수 있을 것이다.

Claims (20)

  1. 메모리 시스템으로서,
    n(n은 자연수임)개의 기입 단위 영역들로 이루어진 제1 오리지널 블록 및 복수의 기입 단위 영역들로 이루어진 제1 서브블록을 포함하는 불휘발성 반도체 메모리; 및
    제1 내지 제p(p는 n보다 작은 자연수임) 어드레스 중 하나를 갖고 있는 데이터를 상기 제1 오리지널 블록에 기입하고, 상기 제1 내지 제p 어드레스 중 하나의 제1 기입 어드레스를 갖고 있는 데이터의 기입 요구를 수신하고, 상기 제1 기입 어드레스를 갖고 있는 데이터가 상기 제1 오리지널 블록에 존재하는 경우에 상기 제1 기입 어드레스를 갖고 있는 데이터를 상기 제1 서브블록에 기입하는 제어기를 포함하는 메모리 시스템.
  2. 제1항에 있어서,
    상기 메모리는 n개의 기입 단위 영역들로 이루어진 제2 오리지널 블록 및 복수의 기입 단위 영역들로 이루어진 제2 서브블록을 더 포함하며,
    상기 제어기는 제p+1 내지 제m(m은 p+2보다는 작지 않고 n보다 크지 않은 자연수임) 어드레스 중 하나를 갖고 있는 데이터를 상기 제2 오리지널 블록에 기입하고, 상기 제p+1 내지 제m 어드레스 중 하나의 제2 기입 어드레스를 갖고 있는 데이터의 기입 요구를 수신하고, 상기 제2 기입 어드레스를 갖고 있는 데이터가 상기 제2 오리지널 블록에 존재하는 경우에 상기 제2 기입 어드레스를 갖고 있는 데이터를 상기 제2 서브블록에 기입하는 메모리 시스템.
  3. 제2항에 있어서,
    상기 메모리는 n개의 기입 단위 영역들로 이루어진 제3 오리지널 블록을 더 포함하며,
    상기 제어기는 상기 제1 내지 제p 어드레스를 갖고 있고, 상기 제1 서브블록에 저장되어 있는 각각의 데이터 중의 최신 데이터를 상기 제3 오리지널 블록에 기입하는 메모리 시스템.
  4. 제2항에 있어서,
    상기 제1 오리지널 블록에 기입되는 데이터는 상기 메모리에 기입되는 실데이터를 관리하기 위한 정보를 포함하는 메모리 시스템.
  5. 제2항에 있어서,
    상기 제어기는 기입 데이터의 논리 어드레스 순서로 하위 어드레스의 기입 단위 영역으로부터 상위 어드레스의 기입 단위 영역으로 상기 기입 데이터를 상기 제1 오리지널 블록에 기입하며,
    기입 데이터의 논리 어드레스에 관계없이 하위 어드레스의 기입 단위 영역으로부터 상위 어드레스의 기입 단위 영역으로 상기 기입 데이터를 상기 제1 서브블 록에 기입하는 메모리 시스템.
  6. 제2항에 있어서,
    상기 제1 오리지널 블록의 메모리 셀들 각각은 다치 데이터를 저장하는 메모리 시스템.
  7. 제2항에 있어서,
    상기 메모리의 메모리 셀들 각각은 다치 데이터를 저장하며,
    상기 제어기는 1비트 정보를 상기 제1 서브블록의 메모리 셀들에 기입하는 메모리 시스템.
  8. 제7항에 있어서,
    상기 제1 서브블록의 메모리 셀들 각각에는 복수의 어드레스가 할당되며,
    상기 제1 서브블록의 메모리 셀들 각각에 있는 상기 복수의 어드레스 중 하나에는 1비트 정보가 기입되는 메모리 시스템.
  9. 제2항에 있어서,
    상기 메모리는 n개의 기입 단위 영역들로 이루어진 제3 오리지널 블록을 더 포함하며,
    상기 제3 오리지널 블록은 연속하는 n개의 어드레스를 갖고 있는 복수의 실 데이터를 저장하는 메모리 시스템.
  10. 제9항에 있어서,
    상기 제3 오리지널 블록의 메모리 셀들 각각은 다치 데이터를 저장하는 메모리 시스템.
  11. n(n은 자연수임)개의 기입 단위 영역들로 이루어진 제1 오리지널 블록 및 복수의 기입 단위 영역들로 이루어진 제1 서브블록을 포함하는 불휘발성 반도체 메모리에 기입하는 방법으로서,
    제1 내지 제p(p는 n보다 작은 자연수임) 어드레스 중 하나를 갖고 있는 데이터를 상기 제1 오리지널 블록에 기입하는 단계; 및
    상기 제1 내지 제p 어드레스 중 하나의 제1 기입 어드레스를 갖고 있는 데이터의 기입 요구를 수신하고, 상기 제1 기입 어드레스를 갖고 있는 데이터가 상기 제1 오리지널 블록에 존재하는 경우에 상기 제1 기입 어드레스를 갖고 있는 데이터를 상기 제1 서브블록에 기입하는 단계를 포함하는 불휘발성 반도체 메모리 기입 방법.
  12. 제11항에 있어서,
    상기 메모리는 n개의 기입 단위 영역들로 이루어진 제2 오리지널 블록 및 복수의 기입 단위 영역들로 이루어진 제2 서브블록을 더 포함하며,
    상기 불휘발성 반도체 메모리 기입 방법은 제p+1 내지 제m(m은 p+2보다는 작지 않고 n보다 크지 않은 자연수임) 어드레스 중 하나를 갖고 있는 데이터를 상기 제2 오리지널 블록에 기입하는 단계; 및
    상기 제p+1 내지 제m 어드레스 중 하나의 제2 기입 어드레스를 갖고 있는 데이터의 기입 요구를 수신하고, 상기 제2 기입 어드레스를 갖고 있는 데이터가 상기 제2 오리지널 블록에 존재하는 경우에 상기 제2 기입 어드레스를 갖고 있는 데이터를 상기 제2 서브블록에 기입하는 단계를 더 포함하는 불휘발성 반도체 메모리 기입 방법.
  13. 제12항에 있어서,
    상기 메모리는 n개의 기입 단위 영역들로 이루어진 제3 오리지널 블록을 더 포함하며,
    상기 불휘발성 반도체 메모리 기입 방법은 상기 제1 내지 제p 어드레스를 갖고 있고, 상기 제1 서브블록에 저장되어 있는 각각의 데이터 중의 최신 데이터를 상기 제3 오리지널 블록에 기입하는 단계를 더 포함하는 불휘발성 반도체 메모리 기입 방법.
  14. 제12항에 있어서,
    상기 제1 오리지널 블록에 기입되는 데이터는 상기 메모리에 기입되는 실데이터를 관리하기 위한 정보를 포함하는 불휘발성 반도체 메모리 기입 방법.
  15. 제12항에 있어서,
    기입 데이터의 논리 어드레스 순서로 하위 어드레스의 기입 단위 영역으로부터 상위 어드레스의 기입 단위 영역으로 상기 기입 데이터가 상기 제1 오리지널 블록에 기입되며,
    기입 데이터의 논리 어드레스에 관계없이 하위 어드레스의 기입 단위 영역으로부터 상위 어드레스의 기입 단위 영역으로 상기 기입 데이터가 상기 제1 서브블록에 기입되는 불휘발성 반도체 메모리 기입 방법.
  16. 제12항에 있어서,
    상기 제1 오리지널 블록의 메모리 셀들은 다치 데이터를 저장하는 불휘발성 반도체 메모리 기입 방법.
  17. 제12항에 있어서,
    상기 메모리의 메모리 셀들은 다치 데이터를 저장하며,
    상기 제1 서브블록의 메모리 셀들에는 1비트 정보가 기입되는 불휘발성 반도체 메모리 기입 방법.
  18. 제17항에 있어서,
    상기 제1 서브블록의 메모리 셀들 각각에는 복수의 어드레스가 할당되며,
    상기 제1 서브블록의 메모리 셀들 각각에 있는 상기 복수의 어드레스 중 하나에는 1비트 정보가 기입되는 불휘발성 반도체 메모리 기입 방법.
  19. 제12항에 있어서,
    상기 메모리는 n개의 기입 단위 영역들로 이루어진 제3 오리지널 블록을 더 포함하며,
    상기 제3 오리지널 블록은 연속하는 n개의 어드레스를 갖고 있는 복수의 실데이터를 저장하는 불휘발성 반도체 메모리 기입 방법.
  20. 제19항에 있어서,
    상기 제3 오리지널 블록의 메모리 셀들은 다치 데이터를 저장하는 불휘발성 반도체 메모리 기입 방법.
KR1020077012008A 2005-09-29 2006-09-27 메모리 시스템 및 불휘발성 반도체 메모리 기입 방법 KR100899242B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2005-00283388 2005-09-29
JP2005283388A JP4751163B2 (ja) 2005-09-29 2005-09-29 メモリシステム

Publications (2)

Publication Number Publication Date
KR20070085481A true KR20070085481A (ko) 2007-08-27
KR100899242B1 KR100899242B1 (ko) 2009-05-27

Family

ID=37899914

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077012008A KR100899242B1 (ko) 2005-09-29 2006-09-27 메모리 시스템 및 불휘발성 반도체 메모리 기입 방법

Country Status (6)

Country Link
US (3) US7872922B2 (ko)
JP (1) JP4751163B2 (ko)
KR (1) KR100899242B1 (ko)
CN (1) CN100527097C (ko)
TW (1) TWI316207B (ko)
WO (1) WO2007037507A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150120366A (ko) * 2013-02-22 2015-10-27 지티이 코포레이션 데이터 보호 방법, 장치 및 설비

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7702846B2 (en) * 2005-03-15 2010-04-20 Panasonic Corporation Memory controller, nonvolatile storage device, nonvolatile storage system, and data writing method
JP4356782B2 (ja) * 2007-09-12 2009-11-04 ソニー株式会社 メモリ装置、メモリ制御方法、およびプログラム
US8429329B2 (en) 2007-10-17 2013-04-23 Micron Technology, Inc. Serial interface NAND
US7814276B2 (en) * 2007-11-20 2010-10-12 Solid State System Co., Ltd. Data cache architecture and cache algorithm used therein
TWI368223B (en) * 2007-12-07 2012-07-11 Phison Electronics Corp Flash memory data writing method and controller using the same
JP5032371B2 (ja) 2008-03-01 2012-09-26 株式会社東芝 メモリシステム
KR101067457B1 (ko) * 2008-03-01 2011-09-27 가부시끼가이샤 도시바 메모리 시스템
JP4558054B2 (ja) * 2008-03-11 2010-10-06 株式会社東芝 メモリシステム
TWI399651B (zh) * 2008-09-12 2013-06-21 Communication protocol method and system for input / output device
US8438325B2 (en) * 2008-10-09 2013-05-07 Cadence Design Systems, Inc. Method and apparatus for improving small write performance in a non-volatile memory
TWI413984B (zh) 2008-10-16 2013-11-01 Silicon Motion Inc 快閃記憶體裝置以及資料更新方法
JP2010152778A (ja) * 2008-12-26 2010-07-08 Hitachi Ulsi Systems Co Ltd 半導体記憶装置
US8724401B2 (en) * 2009-09-29 2014-05-13 Seagate Technology Llc Data stripes and addressing for flash memory devices
CN102792281B (zh) * 2010-03-04 2015-11-25 日本电气株式会社 存储设备
JP4818453B1 (ja) * 2010-07-30 2011-11-16 株式会社東芝 電子機器およびデータ読み出し方法
JP2012133416A (ja) * 2010-12-17 2012-07-12 Toshiba Corp メモリシステム
US9076528B2 (en) * 2011-05-31 2015-07-07 Micron Technology, Inc. Apparatus including memory management control circuitry and related methods for allocation of a write block cluster
CN102279820A (zh) * 2011-08-24 2011-12-14 四川和芯微电子股份有限公司 基于spi接口的数据存储装置及控制方法
EP2761471B1 (en) 2011-09-30 2017-10-25 Intel Corporation Statistical wear leveling for non-volatile system memory
US9305112B2 (en) * 2012-09-14 2016-04-05 International Business Machines Corporation Select pages implementing leaf nodes and internal nodes of a data set index for reuse
EP2965318B1 (en) * 2013-03-07 2018-05-02 Charles I. Peddle High speed flash controllers
US10032493B2 (en) 2015-01-07 2018-07-24 Micron Technology, Inc. Longest element length determination in memory
US10157680B2 (en) * 2015-12-22 2018-12-18 Sandisk Technologies Llp Sub-block mode for non-volatile memory
CN107818808B (zh) * 2016-09-14 2023-09-12 群联电子股份有限公司 数据写入方法、存储器控制电路单元与存储器存储装置
JP7109949B2 (ja) * 2018-03-23 2022-08-01 キオクシア株式会社 メモリシステム及びメモリシステムの制御方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5388083A (en) * 1993-03-26 1995-02-07 Cirrus Logic, Inc. Flash memory mass storage architecture
JP2001306393A (ja) * 2000-04-20 2001-11-02 Mitsubishi Electric Corp 記憶装置
JP2003233993A (ja) * 2002-02-08 2003-08-22 Matsushita Electric Ind Co Ltd 不揮発性記憶装置の書き換え方法
JP3699942B2 (ja) 2002-03-25 2005-09-28 株式会社東芝 メモリ管理方式およびメモリ管理装置
JP2004086991A (ja) 2002-08-27 2004-03-18 Renesas Technology Corp 不揮発性記憶装置
US7039788B1 (en) 2002-10-28 2006-05-02 Sandisk Corporation Method and apparatus for splitting a logical block
US7174440B2 (en) * 2002-10-28 2007-02-06 Sandisk Corporation Method and apparatus for performing block caching in a non-volatile memory system
JP4218406B2 (ja) 2003-04-25 2009-02-04 富士フイルム株式会社 情報記録再生方法
TW200504577A (en) * 2003-07-16 2005-02-01 Matsushita Electric Ind Co Ltd Management method for data storage in data recording medium, and information processing device using the same
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
EP1704483A2 (en) * 2003-12-30 2006-09-27 SanDisk Corporation Non-volatile memory and method with memory planes alignment
TW200608201A (en) * 2004-04-28 2006-03-01 Matsushita Electric Ind Co Ltd Nonvolatile storage device and data write method
JP4157501B2 (ja) * 2004-06-30 2008-10-01 株式会社東芝 記憶装置
JP4561246B2 (ja) * 2004-08-31 2010-10-13 ソニー株式会社 メモリ装置
JP4192129B2 (ja) * 2004-09-13 2008-12-03 株式会社東芝 メモリ管理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150120366A (ko) * 2013-02-22 2015-10-27 지티이 코포레이션 데이터 보호 방법, 장치 및 설비

Also Published As

Publication number Publication date
TW200721016A (en) 2007-06-01
US8310896B2 (en) 2012-11-13
US20070245181A1 (en) 2007-10-18
US8130557B2 (en) 2012-03-06
JP2007094764A (ja) 2007-04-12
JP4751163B2 (ja) 2011-08-17
TWI316207B (en) 2009-10-21
CN100527097C (zh) 2009-08-12
KR100899242B1 (ko) 2009-05-27
US20110087831A1 (en) 2011-04-14
US7872922B2 (en) 2011-01-18
CN101069163A (zh) 2007-11-07
WO2007037507A1 (en) 2007-04-05
WO2007037507A9 (en) 2007-05-24
US20120144100A1 (en) 2012-06-07

Similar Documents

Publication Publication Date Title
KR100899242B1 (ko) 메모리 시스템 및 불휘발성 반도체 메모리 기입 방법
KR100980309B1 (ko) 호스트 디바이스 및 메모리 시스템
US7890732B2 (en) Memory card and semiconductor device
US7392343B2 (en) Memory card having a storage cell and method of controlling the same
US8566504B2 (en) Dynamic metablocks
US8307172B2 (en) Memory system including memory controller and separately formatted nonvolatile memory to avoid “copy-involving write” during updating file data in the memory
KR101060089B1 (ko) 온-칩 데이터 그룹화 및 정렬
KR100687151B1 (ko) 메모리 카드, 반도체 장치, 및 반도체 메모리의 제어 방법
US20080046639A1 (en) Memory system with nonvolatile semiconductor memory
CN109542675A (zh) 存储器***及其操作方法
JP2010026933A (ja) メモリシステム、ホスト装置
WO1999030239A1 (fr) Memoire et procede d'acces
CN106598479A (zh) 闪速存储器的故障安全擦除的方法和装置
JP4460967B2 (ja) メモリカード、不揮発性半導体メモリ、及び半導体メモリの制御方法
KR100932801B1 (ko) 메모리 관리 방법, 메모리 장치 및 컴퓨터 판독 가능 저장매체
TW202121176A (zh) 資料儲存裝置以及非揮發式記憶體控制方法

Legal Events

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

Payment date: 20130419

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140421

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150417

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170420

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180417

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190417

Year of fee payment: 11