KR100522006B1 - 비휘발성 기억장치 및 그 제어방법 - Google Patents

비휘발성 기억장치 및 그 제어방법 Download PDF

Info

Publication number
KR100522006B1
KR100522006B1 KR10-2003-7005539A KR20037005539A KR100522006B1 KR 100522006 B1 KR100522006 B1 KR 100522006B1 KR 20037005539 A KR20037005539 A KR 20037005539A KR 100522006 B1 KR100522006 B1 KR 100522006B1
Authority
KR
South Korea
Prior art keywords
physical block
physical
data
creating means
nonvolatile memory
Prior art date
Application number
KR10-2003-7005539A
Other languages
English (en)
Other versions
KR20030044023A (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 KR20030044023A publication Critical patent/KR20030044023A/ko
Application granted granted Critical
Publication of KR100522006B1 publication Critical patent/KR100522006B1/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
    • 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)
  • Read Only Memory (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

초기화시간을 단축함으로써 휴대기기의 편리성을 향상시키는 비휘발성 기억장치 및 그 제어방법을 제공한다.
초기화시의 데이터 유효성테이블의 작성에 있어서, 우선 제어부는 유효성 플래그 및 제 2 변환 테이블을 읽어 낸다. 유효성 플래그가 유효인 경우, 제 2 변환 테이블상의 논리블록도 유효하다. 이 때문에, 제 4 테이블 작성수단은 데이터 유효성 테이블에 제 2 변환 테이블상의 모든 논리블록이 유효하다고 설정할 수 있다. 이렇게 한번의 읽기에 의해, 제 4 테이블 작성수단은 복수개의 논리블록분의 설정을 할 수 있다. 더욱이 이미 데이터 유효성 테이블에 유효하다고 설정되어 있는 부분논리블록에 대해서는 데이터 유효성 플래그의 읽기를 생략하고, 다음 부분논리블록의 처리로 진행할 수 있다.

Description

비휘발성 기억장치 및 그 제어방법{NON-VOLATILE STORAGE DEVICE AND CONTROL METHOD THEREOF}
본 발명은 비휘발성 기억장치 및 그 제어방법에 관한 것이다.
음악데이터나 영상데이터를 취급하는 휴대기기의 기억장치로서, 데이터의 고쳐 쓰기가 가능하고, 휴대성이 높고, 전지 등에 의한 백업이 불필요한 플래쉬 메모리 등의 비휘발성 메모리를 구비한 기억장치가 사용되어 왔다.
종래의 비휘발성 기억장치에 대하여, 도 4에서 도 10을 사용하여, 512M 비트의 FLASH 칩 4개로 256MB 용량인 경우를 예로 들어 설명한다.
도 4는 비휘발성 기억장치의 구성도이다.
도 4에 있어서, 1은 비휘발성 기억장치, 8은 데이터 입출력장치이다. 비휘발성 기억장치(1)는 비휘발성 기억매체(2)(종래예 및 본 발명의 실시예에 있어서는 플래쉬 메모리이다), 제어부(3)를 가진다. 또한 제어부(3)는 제 1 변환테이블(간접 어드레스변환 테이블)(4), 데이터 유효성 테이블(제 4 테이블)(5), 엔트리 테이블(제 3 테이블)(6), 입출력제어부(7)를 가진다.
비휘발성 기억장치(1)는 데이터입출력장치(8)로부터, 입출력제어부(7)를 통하여, 쓰기 요구, 읽기 요구, 소거 요구 등의 각종 요구를 접수한다. 비휘발성 기억장치(1)는 접수한 각종요구에 대한 처리를 한다. 쓰기 요구시에는, 데이터 입출력장치(8)로부터 비휘발성 기억장치(1)에 쓰기 데이터가 전송된다. 읽기 요구시에는 비휘발성 기억장치(1)로부터 데이터입출력장치(8)에 읽기 데이터가 전송된다. 제어부(3)는 입출력제어부(7)로 접수한 요구에 따라서, 비휘발성 기억매체(2)에 대하여, 쓰기, 읽기, 소거를 실시한다. 더욱 제어부(3)는 제 1 변환 테이블(4), 데이터 유효성 테이블(5), 엔트리 테이블(6)을 참조, 갱신한다.
도 5는 비휘발성 기억장치(1)의 비휘발성 기억매체(2)의 구성도이다.
도 5에 있어서, 1-1, 1-2, …1-2048, 2-1, …8-2048은 각각 1개의 물리블록을 나타낸다. 플래쉬 메모리 등의 비휘발성 기억매체에 있어서는 데이터의 소거단위는 물리블록이다. 물리블록(1-1, …1-2048)을 한데 모아 제 1 물리블록군이라고 한다. 제 2 물리블록군으로부터 제 8 물리블록군도 마찬가지이다. 1개의 비휘발성 기억매체(2)(기억소자)는 각각 2048(=211)개의 물리블록을 가진 8개의 물리블록군으로 이루어지며, 합계 16384(=214)개의 물리블록을 가진다.
또한, 1개의 물리블록 세트는 8개의 블록군의 각각으로부터 1개씩 선택된 물리블록으로 구성되어 있다. 예를 들면 도면과 같이, 1-1, 2-2, 3-3, 4-3, 5-2, 6-2048, 7-1, 8-3을 제 1 물리블록 세트라고 한다.
비휘발성 기억매체(2)는 데이터를 써넣는 데에 시간이 걸린다. 이 때문에, 제어부(3)는 입력한 8개의 데이터를 정리하여 물리블록 세트에 1번에 써넣는다. 8개의 물리블록(1개의 물리블록 세트)에 동시에 데이터를 써넣음으로써 데이터의 비트폭이 8배가 되어, 비휘발성 기억장치(1)는 실행적인 쓰기 속도를 8배로 할 수 있다. 그러나, 동일한 물리블록군의 복수의 물리블록에는, 비휘발성 기억장치(1)는 동시에 써넣을 수가 없다. 비휘발성 메모리의 복수의 물리블록에 동시에 데이터를 써넣는 기술은 공지이다. 예를 들어, 주식회사 도시바제 비휘발성 메모리 TC58512FT의 데이터 시트에는 복수의 물리블록에 동시에 데이터를 써넣는 멀티 블록 프로그램의 설명이 기재되어 있다.
도 6은 비휘발성 기억장치의 비휘발성 기억매체의 제 1 물리블록 세트의 구성도이다.
도 6에 있어서, 물리블록(1-1)은 8개의 부분논리블록(1-1A,1-1B,1-1C,…1-1H)으로 이루어진다. 1개의 논리블록은 물리블록 세트내에 포함되는 모든 물리블록으로부터 1개씩 순서대로 선택된 부분논리 블록으로 구성되어 있다. 예를 들면 도면과 같이, 1-1A, 2-2A, 3-3A, 4-3A, 5-2A, 6-2048A, 7-1A, 8-3A를 제 1 논리블록이라고 부른다. 1개의 물리블록, 논리블록은 32페이지이고, 1개의 부분논리블록은 4페이지이다.
도 7은 비휘발성 기억장치의 비휘발성 기억매체의 물리블록의 용장(冗長)영역의 상세도이다.
부분논리블록은 데이터 외에 용장영역을 가진다. 제 1 물리블록군의 각각의 부분논리블록은 용장영역에 데이터유효성 플래그를 가진다. 제 1 물리블록군의 몇가지 부분논리블록은 용장 영역에 링크 테이블 및 제 2 변환 테이블을 가진다.
제 2 변환 테이블은 제 1 물리블록군에 포함되는 8개의 부분논리블록에 대해서의 논리 어드레스로부터 물리 어드레스(부분논리블록이 물리적인 어드레스)에의 변환 테이블이다. 링크 테이블은 논리블록을 구성하고 있는 제 2∼제 8 물리블록군에 포함되는 7개의 부분논리블록(제 1 물리블록군에 포함되고, 그 링크 테이블을 가진 부분논리블록을 제외한다)의 물리 어드레스(부분논리블록이 물리적인 어드레스) 테이블이다. 유효성 플래그는 논리블록의 제 2 변환 테이블의 유효무효를 나타내는 플래그이다.
제 2 변환 테이블은 제 1 물리블록군 뿐만 아니라 제 2∼제 8 물리블록군에 있어도 좋다.
각 물리블록의 선두의 부분논리블록은 그 부분논리블록이 포함되는 물리블록이 소거가 완료되었는지의 여부를 판정할 수 있는 제 1 데이터를 가진다. 제 1 데이터는 예를 들면 8비트의 데이터로서 FFH이면 그 물리블록은 소거가 완료된 것이고, FFH 이외의 값이면 그 물리블록은 소거가 완료되지 않은 것이다. 제 1 데이터는 그 물리블록이 소거가 완료되었는지의 여부를 판정하는 이외의 용도를 갖고 있어도 된다.
쓰기는 물리블록 세트를 단위로 하여 행하고, 소거는 물리블록을 단위로 하여 행한다. 써넣은 데이터가 유효한지의 여부는 부분논리블록단위로 결정할 수 있다.
도 9는 엔트리 테이블(6)의 구성도이다.
도 9에 있어서, 0 또는 1의 숫자가 어드레스 0, 1, 2, …의 순으로 나열된 각각의 물리블록의 상태를 나타낸다. 0은 쓰기가 완료된 것을 나타내고, 1은 소거가 완료된 것을 나타낸다. 엔트리 테이블은 초기화시에 작성된다.
도 10은 데이터 유효성 테이블(5)의 구성도이다.
도 10에 있어서, 0 또는 1의 숫자가 어드레스 0, 1, 2, …의 순으로 나열된 제 1 물리블록군의 각각의 부분논리블록의 쓰기 데이터의 유효성을 나타낸다. 0은 무효를 나타내고, 1은 유효를 나타낸다. 엔트리 테이블과 마찬가지로, 데이터 유효성 테이블도 초기화시에 작성된다.
도 8A, 8B는 종래의 비휘발성 기억장치의 초기화시에 제 3 테이블 작성수단 및 제 4 테이블 작성수단이 실행하는 플로우챠트이다. 도 8A와 도 8B는, 도 8A의 a와 도 8B의 a로 연결되고 있다.
도 8A, 8B에 있어서, 스텝801에서 제 3 테이블 작성수단은 엔트리 테이블의 모든 란에 초기값 1(소거 완료)을 설정한다. 스텝802에서 제 4 테이블 작성수단은 데이터 유효성 테이블의 모든 란에 초기값 0(무효)을 설정한다. 스텝803에서 제어부(3)는 물리블록군내에서의 물리블록번호 j에 초기값 1을 설정한다. 스텝804에서 제어부(3)는 물리블록내에서의 부분논리블록번호 i에 초기값 1을 설정한다.
스텝805에서 제어부(3)는 제 1 물리블록군의 제 j 번째의 물리블록의 제 1 번째의 부분논리블록을 읽어 낸다. 스텝806에서 제어부(3)는 읽어 낸 물리블록의 선두페이지의 제 1 데이터로부터, 소거가 완료된 물리블록인지의 여부를 판단한다. 소거가 완료된 물리블록의 경우는 이미 스텝801에서 엔트리 테이블에 초기값 1(소거 완료)이 설정되어 있고, 또한 스텝802에서 데이터 유효성 테이블에 초기값 0(무효)이 설정되어 있기 때문에, 제어부(3)는 아무것도 하지 않고 제 j 번째의 물리블록의 처리를 종료한다. 쓰기가 완료된 물리블록의 경우는 스텝807로 진행하고 제 3 테이블 작성수단은 엔트리 테이블의 그 물리블록 란에 0(쓰기 완료)을 설정한다.
스텝809에서 제어부(3)는 용장영역에 있는 유효성 플래그가 유효한지의 여부를 판단한다. 유효성 플래그가 무효인 경우는 이미 스텝802에서 데이터 유효성 테이블에 초기값 0(무효)이 설정되어 있기 때문에, 제어부(3)는 아무것도 하지 않고 제 i 번째의 부분논리블록의 처리를 종료한다. 유효성 플래그가 유효인 경우는 스텝810으로 진행하여 제 4 테이블 작성수단은 데이터 유효성 테이블의 그 부분논리블록 란에 1(유효)을 설정한다.
스텝811에서 제어부(3)는 물리블록내에서의 부분물리블록번호 i에 1을 가산한다. 스텝812에서 제어부(3)는 물리블록내에서의 최후의 부분논리블록인지의 여부, 즉 i > 8인지 아닌지를 판단한다. 최후의 부분논리블록이 아닌 경우, 즉 i ≤8인 경우는 스텝808로 되돌아가 제어부(3)는 제 1 물리블록군의 제 j 번째의 물리블록의 제 i 번째의 부분논리블록을 읽어 내고, 스텝809∼812의 처리를 다시 한다. 스텝812에서 최후의 부분논리블록인 경우, 즉 i > 8인 경우는 제어부(3)는 제 j 번째의 물리블록의 처리를 종료하고, 다음 물리블록의 처리로 진행한다.
스텝813에서 제어부(3)는 물리블록군내에서의 물리블록번호 j에 1을 가산한다. 스텝814에서 제어부(3)는 물리블록군내에서의 최후의 물리블록인지의 여부, 즉 j > 2048인지 아닌지를 판단한다. 최후의 물리블록이 아닌 경우, 즉 j ≤2048인 경우는 스텝804로 되돌아가 제어부(3)는 다음의 처리블록의 처리를 한다. 최후의 처리블록인 경우, 즉 j > 2048인 경우는 제어부(3)는 제 1 물리블록군의 처리를 종료하고, 제 2 물리블록군의 처리로 진행한다.
스텝815에서 제어부(3)는 물리블록군번호 k에 초기값 2를 설정한다. 스텝 816에서 제어부(3)는 물리블록군내에서의 물리블록번호 j에 초기값 1을 설정한다.
스텝817에서 제어부(3)는 제 k의 물리블록군의 제 j 번째의 물리블록의 제 1 번째의 부분논리블록을 읽어 낸다. 스텝818에서, 읽어 낸 물리블록의 선두페이지의 제 1 데이터로부터, 제어부(3)는 소거 완료된 물리블록인지의 여부를 판단한다. 소거가 완료된 물리블록의 경우는 이미 스텝801에서 엔트리 테이블에 초기값 1(소거 완료)이 설정되어 있기 때문에, 제어부(3)는 아무것도 하지 않고 제 j 번째의 물리블록의 처리를 종료한다. 쓰기가 완료된 물리블록의 경우는 스텝819로 진행하여 제 3 테이블 작성수단은 엔트리 테이블의 그 물리블록 란에 0(쓰기 완료)을 설정한다.
스텝820에서 제어부(3)는 물리블록군내에서의 물리블록번호 j에 1을 가산한다. 스텝821에서 제어부(3)는 물리블록군내에서의 최후의 물리블록인지의 여부, 즉 j > 2048인지 아닌지를 판단한다. 최후의 물리블록이 아닌 경우, 즉 j ≤2048의 경우는 스텝817로 되돌아가 제어부(3)는 다음 물리블록의 처리를 한다. 최후의 물리블록인 경우, 즉 j > 2048의 경우는 제어부(3)는 제 k의 물리블록군의 처리를 종료하고, 다음 물리블록군의 처리로 진행한다.
스텝822에서 제어부(3)는 물리블록군번호 k에 1을 가산한다. 스텝823에서 제어부(3)는 최후 물리블록군인지의 여부, 즉 k > 8인지 아닌지를 판단한다. 최후의 물리블록군이 아닌 경우, 즉 k ≤8의 경우는 스텝816으로 되돌아가고 제어부(3)는 다음 물리블록군의 처리를 한다. 최후의 물리블록군의 경우, 즉 k > 8의 경우는 이 플로우챠트를 종료한다.
이와 같이, 비휘발성 기억장치를 본체에 삽입하면, 비휘발성 기억장치(1)는 본체로부터 지정하는 논리 어드레스와 비휘발성 기억장치의 물리 어드레스와의 어드레스변환 테이블을 포함한 어드레스관리 테이블의 작성을 한다. 그 때문에 어드레스관리 테이블작성에 필요한 시간(이후 초기화시간으로 표기)은 비휘발성 메모리의 용량에 비례하여 증가한다.
근래에는 휴대기기로 취급하는 정보량이 증대하는 경향이 있고, 이에 대처하기 위해서 비휘발성 기억장치의 기억 용량도 증대하고 있다.
그러나, 이 기억 용량의 증대는 초기화시간의 증대를 초래하고 있다. 초기화시간중에는 외부에 비휘발성 메모리를 구비한 비휘발성 기억장치에 데이터 억세스는 할 수 없다. 즉, 휴대기기에 비휘발성 기억장치를 꽂아 넣은 후, 휴대기기가 비휘발성 기억장치를 인식하기 위해서 필요한 시간, 즉 사용자가 휴대기기를 조작할 수 없는 시간의 증대가 과제가 되고 있다.
본 발명은 상기 종래의 문제점을 해결하는 것으로, 초기화시간을 단축함으로써 휴대기기의 편리성을 향상시키는 비휘발성 기억장치 및 그 제어방법을 제공하는 것을 목적으로 한다.
도 1A는 본 발명의 실시예 1의 비휘발성 기억장치의 초기화시에 제 3 테이블 작성수단 및 제 4 테이블 작성수단이 실행하는 플로우챠트 1이다.
도 1B는 본 발명의 실시예 1의 비휘발성 기억장치의 초기화시에 제 3 테이블 작성수단 및 제 4 테이블 작성수단이 실행하는 플로우챠트 2이다.
도 2A는 본 발명의 실시예 2의 비휘발성 기억장치의 초기화시에 제 3 테이블 작성수단 및 제 4 테이블 작성수단이 실행하는 플로우챠트 1이다.
도 2B는 본 발명의 실시예 2의 비휘발성 기억장치의 초기화시에 제 3 테이블 작성수단 및 제 4 테이블 작성수단이 실행하는 플로우챠트 2이다.
도 3은 본 발명의 실시예 4의 비휘발성 기억장치의 구성도이다.
도 4는 비휘발성 기억장치의 구성도이다.
도 5는 비휘발성 기억장치의 비휘발성 기억매체의 구성도이다.
도 6은 비휘발성 기억장치의 비휘발성 기억매체의 제 1 물리블록 세트의 구성도이다.
도 7은 비휘발성 기억장치의 비휘발성 기억매체의 물리블록의 용장 영역의 상세도이다.
도 8A는 종래의 비휘발성 기억장치의 초기화시에 제 3 테이블 작성수단 및 제 4 테이블 작성수단이 실행하는 플로우챠트 1이다.
도 8B는 종래의 비휘발성 기억장치의 초기화시에 제 3 테이블 작성수단 및 제 4 테이블 작성수단이 실행하는 플로우챠트 2이다.
도 9는 엔트리 테이블의 구성도이다.
도 10은 데이터 유효성 테이블의 구성도이다.
도 11은 본 발명의 실시예 3의 비휘발성 기억장치의 초기화시에 제 3 테이블 작성수단이 실행하는 플로우챠트이다.
도면의 일부 또는 전부는 도시를 목적으로 한 개요적 표현에 의해 그려져 있고, 반드시 거기에 표시된 요소의 실제의 상대적 크기나 위치를 충실히 묘사하고 있다고는 한정되지 않음을 고려하기 바란다.
상기 과제를 해결하기 위해서, 본 발명은 하기의 구성을 가진다.
본 발명의 1개의 관점에 의한 비휘발성 기억장치는, 복수의 물리블록과, 논리 어드레스로부터 물리 어드레스를 얻는 제 1 변환 테이블을 작성하는 제 1 테이블 작성수단과, 논리 어드레스로부터 물리 어드레스를 얻는 제 2 변환 테이블을 작성하는 제 2 테이블 작성수단과, 각각의 상기 물리블록이 소거가 완료되었는지의 여부를 나타내는 제 3 테이블을 작성하는 제 3 테이블 작성수단을 가지며, 상기 물리블록은 데이터를 격납하는 데이터영역과, 그 물리블록이 소거가 완료되었는지의 여부를 나타내는 제 1 데이터를 가지며, 상기 제 1 변환 테이블의 물리 어드레스로 지정되는 상기 물리블록은 상기 제 2 변환 테이블을 더욱 가지며, 상기 제 3 테이블 작성수단은 상기 물리블록으로부터 상기 제 1 데이터 및 상기 제 2 변환 테이블을 읽어 내어, 상기 제 1 데이터에 따라서 그 물리블록의 상기 제 3 테이블의 값을 결정하고, 상기 제 2 변환 테이블에 포함되는 물리 어드레스에 대응하는 상기 물리블록의 상기 제 3 테이블의 값을 소거가 완료되지 않은 것으로 결정하여, 상기 제 2 변환 테이블에 포함되고 또한 아직 상기 제 1 데이터를 읽어 내지 않은 상기 물리블록에 대해서는 상기 제 1 데이터를 읽어 내지 않는다.
본 발명의 다른 관점에 의한 비휘발성 기억장치는 복수의 물리블록과, 입력데이터를 분할하여 복수의 상기 물리블록 또는 상기 물리블록을 분할한 영역에 써넣는 쓰기 수단과, 분할된 입력데이터를 각각 써넣는 복수의 상기 물리블록 또는 상기 영역의 연결정보인 링크 테이블을 생성하는 링크 테이블 생성수단과, 각각의 상기 물리블록이 소거가 완료되었는지의 여부를 나타내는 제 3 테이블을 작성하는 제 3 테이블 작성수단을 가지며, 상기 물리블록은 데이터를 격납하는 데이터영역과, 그 물리블록이 소거가 완료되었는지의 여부를 나타내는 제 1 데이터를 가지며, 분할된 입력데이터를 각각 써넣는 복수의 상기 물리블록 또는 상기 영역중의 적어도 1개의 상기 물리블록 또는 상기 영역은 상기 링크 테이블을 더욱 가지며, 상기 제 3 테이블 작성수단은 상기 물리블록 또는 상기 영역에서 상기 제 1 데이터 및 상기 링크 테이블을 읽어 내고, 상기 제 1 데이터에 따라서 그 물리블록의 상기 제 3 테이블의 값을 결정하고, 상기 링크 테이블에 포함되는 물리 어드레스에 대응하는 상기 물리블록의 상기 제 3 테이블의 값을 소거가 완료되지 않은 것으로 결정하여, 상기 링크 테이블에 포함되고 또한 아직 상기 제 1 데이터를 읽어 내지 않은 상기 물리블록에 대해서는 상기 제 1 데이터를 읽어 내지 않는다.
본 발명의 다른 관점에 의한 비휘발성 기억장치는 복수의 물리블록과, 논리 어드레스로부터 물리 어드레스를 얻는 제 1 변환 테이블을 작성하는 제 1 테이블 작성수단과, 논리 어드레스로부터 물리 어드레스를 얻는 제 2 변환 테이블을 작성하는 제 2 테이블 작성수단과, 각각의 상기 물리블록 또는 상기 물리블록을 분할한 영역에 유효한 데이터가 써넣어져 있는지의 여부를 나타내는 제 4 테이블을 작성하는 제 4 테이블 작성수단을 가지며, 상기 물리블록 또는 상기 영역은 데이터를 격납하는 데이터영역을 가지며, 상기 제 1 변환 테이블의 물리 어드레스로 지정되는 상기 물리블록 또는 상기 영역은 상기 제 2 변환 테이블과, 상기 제 2 변환 테이블이 유효한지의 여부를 나타내는 제 2 플래그를 더욱 가지며, 상기 제 4 테이블 작성수단은 상기 물리블록 또는 상기 영역에서 상기 제 2 플래그 및 상기 제 2 변환 테이블을 읽어 내고, 상기 제 2 플래그에 따라서 그 물리블록 또는 그 영역의 상기 제 4 테이블의 값을 결정하고, 상기 제 2 변환 테이블에 포함되는 물리 어드레스에 대응하는 상기 물리블록 또는 상기 영역의 상기 제 4 테이블의 값을 유효한 데이터가 써넣어져 있는 것으로 결정하여, 상기 제 2 변환 테이블에 포함되고 또한 아직 상기 제 2 플래그를 읽어 내지 않은 상기 물리블록 또는 상기 영역에 대해서는 상기 제 2 플래그를 읽어 내지 않는다.
본 발명의 또 다른 관점에 의한 상기의 비휘발성 기억장치는, 상기 비휘발성 기억장치는 복수의 버스 라인과, 복수의 상기 물리블록을 가지며 또한 상기 버스 라인에 접속된 복수의 비휘발성 기억소자를 가지며, 상기 버스 라인에 접속된 비휘발성 기억소자에 써넣어진 상기 제 2 변환 테이블의 수가 상기 버스 라인마다 대략 동일하다.
본 발명의 또 다른 관점에 의한 상기의 비휘발성 기억장치는, 상기 비휘발성 기억장치는 복수의 버스 라인과, 복수의 상기 물리블록을 가지며 또한 상기 버스 라인에 접속된 복수의 비휘발성 기억소자를 가지며, 상기 버스 라인에 접속된 비휘발성 기억소자에 써넣어진 상기 링크 테이블의 수가 상기 버스 라인마다 대략 동일하다.
본 발명의 또 다른 관점에 의한 비휘발성 기억장치의 제어방법은 복수의 물리블록과, 논리 어드레스로부터 물리 어드레스를 얻는 제 1 변환 테이블을 작성하는 제 1 테이블 작성수단과, 논리 어드레스로부터 물리 어드레스를 얻는 제 2 변환 테이블을 작성하는 제 2 테이블 작성수단과, 각각의 상기 물리블록이 소거가 완료되었는지의 여부를 나타내는 제 3 테이블을 작성하는 제 3 테이블 작성수단을 가지며, 상기 물리블록은 데이터를 격납하는 데이터영역과, 그 물리블록이 소거가 완료되었는지의 여부를 나타내는 제 1 데이터를 가지며, 상기 제 1 변환 테이블의 물리 어드레스로 지정되는 상기 물리블록은 상기 제 2 변환 테이블을 더욱 가진 비휘발성 기억장치의 제어방법으로서, 상기 제 3 테이블 작성수단이 상기 물리블록으로부터 상기 제 1 데이터를 읽어 내고, 상기 제 1 데이터에 따라서 그 물리블록의 상기 제 3 테이블의 값을 결정하는 제 1 결정 스텝과, 상기 제 3 테이블 작성수단이 상기 물리블록으로부터 상기 제 2 변환 테이블을 읽어 내고, 상기 제 2 변환 테이블에 포함되는 물리 어드레스에 대응하는 상기 물리블록의 상기 제 3 테이블의 값을 소거가 완료되지 않은 것으로 결정하는 제 2 결정 스텝을 가지며, 상기 제 3 테이블 작성수단이 상기 제 2 변환 테이블에 포함되고 또한 아직 상기 제 1 데이터를 읽어 내지 않은 상기 물리블록에 대해서는 상기 제 1 결정 스텝을 실행하지 않는다.
본 발명의 또 다른 관점에 의한 비휘발성 기억장치의 제어방법은, 복수의 물리블록과, 입력데이터를 분할하여 복수의 상기 물리블록 또는 상기 물리블록을 분할한 영역에 써넣는 쓰기 수단과, 분할된 입력데이터를 각각 써넣는 복수의 상기 물리블록 또는 상기 영역의 연결정보인 링크 테이블을 생성하는 링크 테이블 생성수단과, 각각의 상기 물리블록이 소거가 완료되었는지의 여부를 나타내는 제 3 테이블을 작성하는 제 3 테이블 작성수단을 가지며, 상기 물리블록은 데이터를 격납하는 데이터영역과, 그 물리블록이 소거가 완료되었는지의 여부를 나타내는 제 1 데이터를 가지며, 분할된 입력데이터를 각각 써넣는 복수의 상기 물리블록 또는 상기 영역중의 적어도 1개의 상기 물리블록 또는 상기 영역은 상기 링크 테이블을 더욱 가진 비휘발성 기억장치의 제어방법으로서, 상기 제 3 테이블 작성수단이 상기 물리블록 또는 상기 영역에서 상기 제 1 데이터를 읽어 내고, 상기 제 1 데이터에 따라서 그 물리블록의 상기 제 3 테이블의 값을 결정하는 제 1 결정 스텝과, 상기 제 3 테이블 작성수단이 상기 물리블록 또는 상기 영역에서 상기 링크 테이블을 읽어 내고, 상기 링크 테이블에 포함되는 물리 어드레스에 대응하는 상기 물리블록의 상기 제 3 테이블의 값을 소거가 완료되지 않은 것으로 결정하는 제 2 결정 스텝을 가지며, 상기 제 3 테이블 작성수단이 상기 링크 테이블에 포함되고 또한 아직 상기 제 1 데이터를 읽어 내지 않은 상기 물리블록 또는 상기 영역에 대해서는 상기 제 1 결정 스텝을 실행하지 않는다.
본 발명의 또 다른 관점에 의한 비휘발성 기억장치의 제어방법은, 복수의 물리블록과, 논리 어드레스로부터 물리 어드레스를 얻는 제 1 변환 테이블을 작성하는 제 1 테이블 작성수단과, 논리 어드레스로부터 물리 어드레스를 얻는 제 2 변환 테이블을 작성하는 제 2 테이블 작성수단과, 각각의 상기 물리블록 또는 상기 물리블록을 분할한 영역에 유효한 데이터가 써넣어져 있는지의 여부를 나타내는 제 4 테이블을 작성하는 제 4 테이블 작성수단을 가지며, 상기 물리블록 또는 상기 영역은 데이터를 격납하는 데이터영역을 가지며, 상기 제 1 변환 테이블의 물리 어드레스로 지정되는 상기 물리블록 또는 상기 영역은 상기 제 2 변환 테이블과, 상기 제 2 변환 테이블이 유효한지의 여부를 나타내는 제 2 플래그를 더욱 가진 비휘발성 기억장치의 제어방법으로서, 상기 제 4 테이블 작성수단이 상기 물리블록 또는 상기 영역으로부터 상기 제 2 플래그를 읽어 내고, 상기 제 2 플래그를 따라 그 물리블록 또는 그 영역의 상기 제 4 테이블의 값을 결정하는 제 1 결정 스텝과, 상기 제 4 테이블 작성수단이 상기 물리블록 또한 상기 영역으로부터 상기 제 2 변환 테이블을 읽어 내고, 상기 제 2 변환 테이블에 포함되는 물리 어드레스에 대응하는 상기 물리블록 또는 상기 영역의 상기 제 4 테이블의 값을 유효한 데이터가 써넣어져 있는 것으로 결정하는 제 2 결정스텝을 가지며, 상기 제 4 테이블 작성수단이 상기 제 2 변환 테이블에 포함되고 또한 아직 상기 제 2 플래그를 읽어 내지 않은 상기 물리블록 또는 상기 영역에 대해서는 상기 제 1 결정 스텝을 실행하지 않는다.
본 발명에 의해, 초기화시에 고속이고 또한 효율적인 제어가 가능해진다.
발명의 신규의 특징은 첨부한 청구의 범위에 특히 기재한 것임에 틀림없지만, 구성 및 내용의 쌍방에 관해서 본 발명은 다른 목적이나 특징과 함께, 도면과 함께 이해되는 바의 이하의 상세한 설명으로부터, 보다 잘 이해되어 평가될 것이다.
이하, 본 발명을 실시하기 위한 최선의 형태를 구체적으로 나타낸 실시예에 대하여, 도면과 함께 기재한다.
《실시예 1》
본 발명의 실시예 1의 비휘발성 기억장치는 도 4의 구성을 가진다. 실시예 1의 비휘발성 기억장치의 제어부(3)는 제 1 변환 테이블(4)을 작성하는 제 1 테이블 작성수단과, 비휘발성 기억매체(2)의 부분논리블록내에 제 2 변환 테이블을 작성하는 제 2 테이블 작성수단과, 엔트리 테이블(제 3 테이블)(6)을 작성하는 제 3 테이블 작성수단과, 데이터 유효성 테이블(제 4 테이블)(5)을 작성하는 제 4 테이블 작성수단을 가진다(도 4에는 도시하지 않음).
도 1A, 1B는 본 발명의 실시예 1의 비휘발성 기억장치의 초기화시에 제 3 테이블 작성수단 및 제 4 테이블 작성수단이 실행하는 플로우챠트이다. 도 1A와 도면 1B는 도 1A의 a와 도면 1B의 a, 도 1A의 b와 도 1B의 b, 도 1A의 c와 도면 1B의 c, 도 1A의 d와 도 1B의 d로 연결된다.
도 1A, 1B에 있어서, 스텝101에서 제 3 테이블 작성수단은 엔트리 테이블의 모든 란에 초기값 1(소거 완료)을 설정한다. 스텝102에서 제 4 테이블 작성수단은 데이터 유효성 테이블의 모든 란에 초기값 0(무효)을 설정한다. 스텝103에서 제어부(3)는 물리블록군내에서의 물리블록번호 j에 초기값 1을 설정한다. 스텝104에서 제어부(3)는 물리블록내에서의 부분논리블록번호 i에 초기값 1을 설정한다.
스텝105에서 제어부(3)는 제 1 물리블록군의 제 j 번째의 물리블록의 제 1 번째의 부분논리블록을 읽어 낸다. 스텝106에서, 읽어 낸 물리블록의 선두페이지의 제 1 데이터로부터, 제어부(3)는 소거 완료된 물리블록인지의 여부를 판단한다. 소거 완료된 물리블록의 경우는 이미 스텝101에서 엔트리 테이블에 초기값 1(소거 완료)이 설정되어 있고, 또한 스텝102에서 데이터 유효성 테이블에 초기값 0(무효)이 설정되어 있기 때문에, 제어부(3)는 아무것도 하지 않고서 제 j 번째의 물리블록의 처리를 종료한다. 쓰기 완료된 물리블록의 경우는 스텝107로 진행하여 제 3 테이블 작성수단은 엔트리 테이블의 그 물리블록 란에 0(쓰기 완료)을 설정한다.
스텝108에서 제어부(3)는 데이터 유효성 테이블상에 이미 1(유효)로 설정되어 있는지의 여부를 판단한다. 1(유효)로 설정되어 있는 경우는 제어부(3)는 제 i 번째의 부분논리블록의 처리를 종료한다. 초기값 0(무효)인 상태의 경우는 스텝 111로 진행하여 제어부(3)는 용장영역에 있는 유효성 플래그가 유효한지의 여부를 판단한다. 유효성 플래그가 무효인 경우는 이미 스텝102에서 데이터 유효성 테이블에 초기값 0(무효)이 설정되어 있기 때문에, 제어부(3)는 아무것도 하지 않고서 제 i 번째의 부분논리블록의 처리를 종료한다. 유효성 플래그가 유효인 경우는 스텝112로 진행하여 제 4 테이블 작성수단은 데이터 유효성 테이블의 그 부분논리블록 란에 1(유효)을 설정한다.
스텝113에서 제어부(3)는 그 부분논리블록이 제 2 변환 테이블을 가지고 있는지의 여부를 판단한다. 제 2 변환 테이블을 갖고 있지 않은 경우는 제어부(3)는 제 i 번째의 부분논리블록의 처리를 종료한다. 제 2 변환 테이블을 갖고 있는 경우는 스텝114로 진행하여 제어부(3)는 제 2 변환 테이블을 리드한다. 스텝115에서 제 4 테이블 작성수단은 데이터 유효성 테이블의 제 2 변환테이블에 기재된 부분논리블록 란에 1(유효)을 설정한다.
스텝116에서 제어부(3)는 물리블록내에서의 부분물리블록번호 i에 1을 가산한다. 스텝117에서 제어부(3)는 물리블록내에서의 최후의 부분논리블록인지의 여부, 즉 i > 8인지 아닌지를 판단한다. 최후의 부분논리블록이 아닌 경우, 즉 i ≤8인 경우는 스텝109로 되돌아가 제어부(3)는 데이터 유효성 테이블상에 이미 1(유효)로 설정되어 있는지의 여부를 판단한다. 1(유효)로 설정되어 있는 경우는 제어부(3)는 제 i 번째의 부분논리블록의 처리를 종료한다. 초기값 0(무효)인 상태의 경우는 스텝110으로 진행하여 제어부(3)는 제 1 물리블록군의 제 j 번째의 물리블록의 제 i 번째의 부분논리블록을 읽어 내고, 스텝111∼117의 처리를 다시 한다. 스텝117에서 최후의 부분논리블록의 경우, 즉 i > 8의 경우는 제어부(3)는 제 j 번째의 물리블록의 처리를 종료하고, 다음 물리블록의 처리로 진행한다.
스텝118에서 제어부(3)는 물리블록군내에서의 물리블록번호 j에 1을 가산한다. 스텝119에서 제어부(3)는 물리블록군내에서의 최후의 물리블록인지의 여부, 즉 j > 2048인지 아닌지를 판단한다. 최후의 물리블록이 아닌 경우, 즉 j ≤2048인 경우는 스텝104로 되돌아가 제어부(3)는 다음 물리블록의 처리를 한다. 최후의 물리블록의 경우, 즉 j > 2048인 경우는 제어부(3)는 제 1 물리블록군의 처리를 종료하고, 제 2 물리블록군의 처리로 진행한다.
스텝120에서 제어부(3)는 물리블록군번호 k에 초기값 2를 설정한다. 스텝 121에서 제어부(3)는 물리블록군내에서의 물리블록번호 j에 초기값 1을 설정한다.
스텝122에서 제어부(3)는 제 k의 물리블록군의 제 j 번째의 물리블록의 제 1 번째의 부분논리블록을 읽어 낸다. 스텝123에서, 읽어 낸 물리블록의 선두페이지의 제 1 데이터로부터, 제어부(3)는 소거 완료된 물리블록인지의 여부를 판단한다. 소거 완료된 물리블록의 경우는 이미 스텝101에서 엔트리 테이블에 초기값 1(소거 완료)이 설정되어 있기 때문에, 제어부(3)는 아무것도 하지 않고서 제 j 번째의 물리블록의 처리를 종료한다. 쓰기 완료된 물리블록의 경우는 스텝124로 진행하여 제 3 테이블 작성수단은 엔트리 테이블의 그 물리블록 란에 0(쓰기 완료)을 설정한다.
스텝125에서 제어부(3)는 물리블록군내에서의 물리블록번호 j에 1을 가산한다. 스텝126에서 제어부(3)는 물리블록군내에서의 최후의 물리블록인지의 여부, 즉 j > 2048인지 아닌지를 판단한다. 최후의 물리블록이 아닌 경우, 즉 j ≤2048인 경우는 스텝122로 되돌아가 제어부(3)는 다음 물리블록의 처리를 한다. 최후의 물리블록의 경우, 즉 j > 2048인 경우는 제어부(3)는 제 k의 물리블록군의 처리를 종료하고, 다음 물리블록군의 처리로 진행한다.
스텝127에서 제어부(3)는 물리블록군번호 k에 1을 가산한다. 스텝128에서 제어부(3)는 최후의 물리블록군인지의 여부, 즉 k > 8인지 아닌지를 판단한다. 최후의 물리블록군이 아닌 경우, 즉 k ≤8인 경우는 스텝121로 되돌아가 제어부(3)는 다음 물리블록군의 처리를 한다. 최후의 물리블록군인 경우, 즉 k > 8의 경우는 이 플로우챠트를 종료한다.
실시예 1은 스텝115에서 제 4 테이블 작성수단은 제 2 변환 테이블을 사용하여 데이터 유효성 테이블을 작성한다. 스텝108, 109에서는, 스텝115에서 데이터 유효성 테이블을 작성한 부분논리블록에 대하여, 제어부(3)는 데이터의 읽기를 하지 않는다고 하는 판단을 한다. 따라서, 스텝110에서 읽어 내는 부분논리블록의 수가 감소한다. 이에 따라, 제 4 테이블 작성수단은 데이터 유효성 테이블의 작성시간을 단축할 수가 있다. 즉, 비휘발성 기억장치(1)는 초기화시간의 단축을 실현할 수가 있다.
스텝114에 있어서 및 제 2∼8의 부분논리블록으로부터 제 2 변환 테이블을 읽어 내는 스텝에 있어서(도 1B에서는 생략하고 있다) 제 2 변환 테이블을 리드한 경우는, 제 1 테이블 작성수단은 해당 제 2 변환 테이블을 가진 부분논리블록의 물리 어드레스 및 논리 어드레스를 대응시켜 제 1 변환 테이블에 써넣는다.
비휘발성 기억장치가 새로운 데이터를 비휘발성 기억매체에 기억시킬 경우는 제어부는 엔트리 테이블로부터 소거 완료된 물리블록을 검출하여, 거기에 새로운 데이터를 써넣는다. 제 2 테이블 작성수단은 새로운 데이터를 써넣는 부분논리블록의 용장영역에, 제 2 변환 테이블을 생성하여 새로운 데이터의 논리 어드레스와 물리 어드레스를 대응시켜 제 2 변환 테이블에 써넣는다.
비휘발성 기억매체가 무효인 데이터를 물리적으로 소거하는 경우는 제어부는 데이터 유효성 테이블로부터 8개 모든 부분논리블록이 무효인 물리블록을 검출하여, 그 물리블록을 물리적으로 소거한다.
《실시예 2》
본 발명의 실시예 2의 비휘발성 기억장치는 실시예 1의 비휘발성 기억장치와 동일한 구성을 가진다(도 4). 실시예 2의 비휘발성 기억장치는 하기의 점을 제외하고 실시예 1의 비휘발성 기억장치와 같다.
도 2A, 2B는 본 발명의 실시예 2의 비휘발성 기억장치의 초기화시에 제 3 테이블 작성수단 및 제 4 테이블 작성수단이 실행하는 플로우챠트이다. 도 2A와 도 2B는 도 2A의 a와 도 2B의 a, 도 2A의 b와 도 2B의 b, 도 2A의 c와 도 2B의 c, 도 2A의 d와 도 2B의 d로 연결되고 있다.
도 2A, 2B에 있어서, 스텝201에서 제 3 테이블 작성수단은 엔트리 테이블의 모든 란에 초기값 1(소거 완료)을 설정한다. 스텝202에서 제 4 테이블 작성수단은 데이터 유효성 테이블의 모든 란에 초기값 0(무효)을 설정한다. 스텝203에서 제어부(3)는 물리블록군내에서의 물리블록번호 j에 초기값 1을 설정한다. 스텝204에서 제어부(3)는 물리블록내에서의 부분논리블록번호 i에 초기값 1을 설정한다.
스텝205에서 제어부(3)는 제 1 물리블록군의 제 j 번째의 물리블록의 제 1 번째의 부분논리블록을 읽어 낸다. 스텝206에서, 읽어 낸 물리블록의 선두페이지의 제 1 데이터로부터, 제어부(3)는 소거 완료된 물리블록인지의 여부를 판단한다. 소거 완료된 물리블록의 경우는 이미 스텝201에서 엔트리 테이블에 초기값 1(소거 완료)이 설정되어 있고, 또한 스텝202에서 데이터 유효성 테이블에 초기값 0(무효)이 설정되어 있기 때문에, 제어부(3)는 아무것도 하지 않고 제 j 번째의 물리블록의 처리를 종료한다. 쓰기 완료된 물리블록의 경우는 스텝207로 진행하여 제 3 테이블 작성수단은 엔트리 테이블의 그 물리블록 란에 0(쓰기 완료)을 설정한다.
스텝208에서 제어부(3)는 그 물리블록이 링크 테이블을 가지고 있는지의 여부를 판단한다. 링크 테이블을 갖고 있지 않은 경우는 스텝212로 진행한다. 링크 테이블을 갖고 있는 경우는 스텝209로 진행하여 제어부(3)는 링크 테이블을 리드한다. 스텝210에서 제 3 테이블 작성수단은 엔트리 테이블의 링크 테이블에 기재된 부분논리블록을 포함하는 물리블록 란에 0(쓰기 완료)을 설정한다.
스텝212에서 제어부(3)는 용장영역에 있는 유효성 플래그가 유효한지의 여부를 판단한다. 유효성 플래그가 무효인 경우는 이미 스텝202에서 데이터 유효성 테이블에 초기값 0(무효)이 설정되어 있기 때문에, 제어부(3)는 아무것도 하지 않고 제 i 번째의 부분논리블록의 처리를 종료한다. 유효성 플래그가 유효인 경우는 스텝213으로 진행하여 제 4 테이블 작성수단은 데이터 유효성 테이블의 그 부분논리블록 란에 1(유효)을 설정한다.
스텝214에서 제어부(3)는 물리블록내에서의 부분물리블록번호 i에 1을 가산한다. 스텝215에서 제어부(3)는 물리블록내에서의 최후의 부분논리블록인지의 여부, 즉 i > 8인지 아닌지를 판단한다. 최후의 부분논리블록이 아닌 경우, 즉 i ≤8인 경우는 스텝211로 되돌아가 제어부(3)는 제 1 물리블록군의 제 j 번째의 물리블록의 제 i 번째의 부분논리블록을 읽어 내어, 스텝212∼215의 처리를 다시 한다. 스텝215에서 최후의 부분논리블록인 경우, 즉 i > 8인 경우는 제어부(3)는 제 j 번째의 물리블록의 처리를 종료하고, 다음 물리블록의 처리로 진행한다.
스텝216에서 제어부(3)는 물리블록군내에서의 물리블록번호 j에 1을 가산한다. 스텝217에서 제어부(3)는 물리블록군내에서의 최후의 물리블록인지의 여부, 즉 j > 2048인지 아닌지를 판단한다. 최후의 물리블록이 아닌 경우, 즉 j ≤2048인 경우는 스텝204로 되돌아가 제어부(3)는 다음 물리블록의 처리를 한다. 최후의 물리블록의 경우, 즉 j > 2048인 경우는 제어부(3)는 제 1 물리블록군의 처리를 종료하고, 제 2 물리블록군의 처리로 진행한다.
스텝218에서 제어부(3)는 물리블록군번호 k에 초기값 2를 설정한다. 스텝219에서 제어부(3)는 물리블록군내에서의 물리블록번호 j에 초기값 1을 설정한다.
스텝220에서 제어부(3)는 엔트리 테이블상에 이미 0(쓰기 완료)으로 설정되어 있는지의 여부를 판단한다. 0(쓰기 완료)으로 설정되어 있는 경우는, 제어부 (3)는 제 j 번째의 물리블록의 처리를 종료한다. 초기값 1(소거 완료)인 상태의 경우는 스텝221에서 제어부(3)는 제 k의 물리블록군의 제 j 번째의 물리블록의 제 1 번째의 부분논리블록을 읽어 낸다. 스텝222에서 제어부(3)는 읽어 낸 물리블록의 선두페이지의 제 1 데이터로부터, 소거 완료된 물리블록인지의 여부를 판단한다. 소거 완료된 물리블록의 경우는, 이미 스텝201에서 엔트리 테이블에 초기값 1(소거 완료)이 설정되어 있기 때문에, 제어부(3)는 아무것도 하지 않고 제 j 번째의 물리블록의 처리를 종료한다. 쓰기 완료된 물리블록의 경우는 스텝223으로 진행하여 제 3 테이블 작성수단은 엔트리 테이블의 그 물리블록 란에 0(쓰기 완료)을 설정한다.
스텝224에서 제어부(3)는 물리블록군내에서의 물리블록번호 j에 1을 가산한다. 스텝225에서 제어부(3)는 물리블록군내에서의 최후의 물리블록인지의 여부, 즉 j > 2048인지 아닌지를 판단한다. 최후의 물리블록이 아닌 경우, 즉 j ≤2048인 경우는 스텝220으로 되돌아가 제어부(3)는 다음 물리블록의 처리를 한다. 최후의 물리블록의 경우, 즉 j > 2048의 경우는 제어부(3)는 제 k의 물리블록군의 처리를 종료하고, 다음 물리블록군의 처리로 진행한다.
스텝226에서 제어부(3)는 물리블록군번호 k에 1을 가산한다. 스텝227에서 제어부(3)는 최후의 물리블록군인지의 여부, 즉 k > 8인지 아닌지를 판단한다. 최후의 물리블록군이 아닌 경우, 즉 k ≤8인 경우는 스텝219로 되돌아가 제어부(3)는 다음 물리블록군의 처리를 한다. 최후의 물리블록군인 경우, 즉 k > 8인 경우는 이 플로우챠트를 종료한다.
또, 링크 테이블은 제 1∼8의 물리블록군의 어느 블록군에 있더라도 좋고, 동일한 효과를 얻을 수 있다.
실시예 2는 스텝210에서 제 3 테이블 작성수단은 링크 테이블을 사용하여 엔트리 테이블을 작성한다. 스텝220에서는, 스텝210에서 엔트리 테이블을 작성한 부분논리블록에 대하여, 제어부(3)는 데이터의 읽기를 하지 않는다고 하는 판단을 한다. 따라서, 스텝221에서 읽어 내는 부분논리블록의 수가 감소한다. 이에 따라, 제 3 테이블 작성수단은 엔트리 테이블의 작성시간을 단축할 수가 있다. 즉, 실시예 1과 같이 비휘발성 기억장치(1)는 초기화시간의 단축을 실현할 수가 있다.
《실시예 3》
본 발명의 실시예 3의 비휘발성 기억장치는 실시예 1의 비휘발성 기억장치와 동일한 구성을 가진다(도 4). 실시예 3의 비휘발성 기억장치는 하기의 점을 제외하고 실시예 1의 비휘발성 기억장치와 같다.
도 11은 본 발명의 실시예 3의 비휘발성 기억장치의 초기화시에 제 3 테이블 작성수단이 실행하는 플로우챠트이다.
도 11에 있어서, 스텝 1101에서 제 3 테이블 작성수단은 엔트리 테이블의 모든 란에 초기값 1(소거 완료)을 설정한다. 스텝1102에서 제어부(3)는 물리블록군번호 k에 초기값 1을 설정한다. 스텝1103에서 제어부(3)는 물리블록군내에서의 물리블록번호 j에 초기값 1을 설정한다.
스텝1104에서 제어부(3)는 엔트리 테이블상에 이미 0(쓰기 완료)으로 설정되어 있는지의 여부를 판단한다. 0(쓰기 완료)으로 설정되어 있는 경우는 제어부(3)는 제 j 번째의 물리블록의 처리를 종료한다. 초기값 1(소거 완료)인 상태의 경우는 스텝1105에서 제어부(3)는 제 k의 물리블록군의 제 j 번째의 물리블록의 제 1 번째의 부분논리블록을 읽어 낸다. 스텝1106에서 제어부(3)는 읽어 낸 물리블록의 선두페이지의 제 1 데이터로부터, 소거 완료의 물리블록인지의 여부를 판단한다. 소거 완료의 물리블록인 경우는 이미 스텝1101에서 엔트리 테이블에 초기값 1(소거 완료)이 설정되어 있기 때문에, 제어부(3)는 아무것도 하지 않고서 제 j 번째의 물리블록의 처리를 종료한다. 쓰기 완료의 물리블록의 경우는 스텝1107로 진행하여 제 3 테이블 작성수단은 엔트리 테이블의 그 물리블록 란에 0(쓰기 완료)을 설정한다.
스텝1108에서 제어부(3)는 그 부분논리블록이 제 2 변환 테이블을 가지고 있는지의 여부를 판단한다. 제 2 변환 테이블을 갖고 있지 않은 경우는 제어부(3)는 제 j 번째의 물리블록의 처리를 종료한다. 제 2 변환 테이블을 갖고 있는 경우는 스텝1109로 진행하여 제어부(3)는 제 2 변환 테이블을 리드한다. 스텝1110에서 제 3 테이블 작성수단은 엔트리 테이블의 제 2 변환 테이블에 기재된 부분논리블록을 포함하는 물리블록 란에 0(쓰기 완료)을 설정한다.
스텝1111에서 제어부(3)는 물리블록군내에서는 물리블록번호 j에 1을 가산한다. 스텝1112에서 제어부(3)는 물리블록군내에서의 최후의 물리블록인지의 여부, 즉 j > 2048인지 아닌지를 판단한다. 최후의 물리블록이 아닌 경우, 즉 j ≤2048인 경우는 스텝1104로 되돌아가 제어부(3)는 다음의 물리블록의 처리를 한다. 최후의 물리블록의 경우, 즉 j > 2048의 경우는 제어부(3)는 제 k의 물리블록군의 처리를 종료하고, 다음 물리블록군의 처리로 진행한다.
스텝1113에서 제어부(3)는 물리블록군번호 k에 1을 가산한다. 스텝1114에서 제어부(3)는 최후의 물리블록군인지의 여부, 즉 k > 8인지 아닌지를 판단한다. 최후의 물리블록군이 아닌 경우, 즉 k ≤8인 경우는 스텝1103으로 되돌아가 제어부 (3)는 다음 물리블록군의 처리를 한다. 최후의 물리블록군인 경우, 즉 k > 8인 경우는 이 플로우챠트를 종료한다.
실시예 3은 스텝1110에서 제 3 테이블 작성수단은 제 2 변환테이블을 사용하여 엔트리 테이블을 작성한다. 스텝1104에서는, 스텝1110에서 엔트리 테이블을 작성한 물리블록에 대하여, 제어부(3)는 데이터의 읽기를 하지 않는다고 하는 판단을 한다. 따라서, 스텝1105에서 읽어 내는 물리블록의 수가 감소한다. 이에 따라, 제 3 테이블 작성수단은 엔트리 테이블의 작성시간을 단축할 수가 있다. 즉, 실시예 1과 같이 비휘발성 기억장치(1)는 초기화시간의 단축을 실현할 수가 있다.
《실시예 4》
도 3은 본 발명의 실시예 4의 비휘발성 기억장치의 구성도이다.
도 3에 있어서, 비휘발성 기억장치(31)는 1개의 제어부(32)와 복수의 플래쉬 메모리(비휘발성 기억매체)(33∼36)를 가진다. 제어부(32)에는 2개의 버스 라인 (37,38)이 접속되어 있고, 각각의 버스 라인에는 동수(각 2개)의 플래시 메모리가 접속되어 있다. 각각의 버스 라인에 접속된 플래시 메모리가 가진 제 2 변환 테이블의 수 및 링크 테이블의 수를 될 수 있는 한 같게 한다.
전원투입시에, 제어부(32)는 플래시 메모리내의 각 물리블록에 기억된 유효성 플래그, 제 1 데이터, 링크 테이블, 제 2 변환 테이블을 읽어 내어, 제 1 변환 테이블(4), 엔트리 테이블(6), 데이터 유효성 테이블(5)을 생성한다(초기화처리). 각 버스 라인에 접속된 플래시 메모리가 가진 제 2 변환 테이블 및 링크 테이블의 수를 거의 동수(同數)로 함으로써, 비휘발성 기억장치(1)가 초기화시에 각 버스 라인을 통하여 읽어내는 데이터량을 거의 같게 할 수 있다(각 버스 라인의 전송부하량을 같게 할 수가 있다). 특정한 버스 라인의 데이터전송량이 많아지면, 그 버스 라인에서의 데이터전송에 시간이 걸리고, 초기화처리의 토탈 시간이 길어진다. 실시예 4와 같이 각 버스 라인에서의 데이터전송량을 같게 함으로써, 비휘발성 기억장치는 초기화처리의 토탈 시간을 짧게 할 수 있다.
읽기를 할 필요가 있는 물리블록 또는 부분논리블록의 수를 삭감하고, 비휘발성 기억장치의 초기화시간을 단축함으로써, 전원투입후 단시간에 비휘발성 기억장치는 외부로부터의 요구에 응답할 수 있다. 이로써, 비휘발성 기억장치(예를 들면 SD 카드 등의 IC 카드)를 가진 상품(예를 들면 휴대전화)은, 전원투입후 단시간에 그 기능을 발휘할 수 있다고 하는 유리한 효과를 얻을 수 있다.
발명을 어느 정도 상세하게 바람직한 형태에 대하여 설명하였지만, 이 바람직한 형태의 현 개시내용은 구성의 세부에서 변화시킬 수 있는 것이며, 각 요소의 조합이나 순서의 변화는 청구된 발명의 범위 및 사상을 일탈하지 않고 실현할 수 있는 것이다.
본 발명의 비휘발성 기억장치 및 그 제어방법은, 예를 들면 휴대기기 등의 여러가지 기기에 접속할 수 있는 비휘발성 기억장치 및 그 제어방법으로서 유용하다.

Claims (8)

  1. 복수의 물리블록과, 논리 어드레스로부터 물리 어드레스를 얻는 제 1 변환테이블을 작성하는 제 1 테이블 작성수단과, 논리 어드레스로부터 물리 어드레스를 얻는 제 2 변환 테이블을 작성하는 제 2 테이블 작성수단과, 각각의 상기 물리블록이 소거 완료되었는지의 여부를 나타내는 제 3 테이블을 작성하는 제 3 테이블 작성수단을 가지며,
    상기 물리블록은 데이터를 격납하는 데이터영역과, 그 물리블록이 소거 완료되었는지의 여부를 나타내는 제 1 데이터를 가지며,
    상기 제 1 변환 테이블의 물리 어드레스로 지정되는 상기 물리블록은, 상기 제 2 변환 테이블을 더욱 가지며,
    상기 제 3 테이블 작성수단은 상기 물리블록으로부터 상기 제 1 데이터 및 상기 제 2 변환 테이블을 읽어 내고, 상기 제 1 데이터에 따라서 그 물리블록의 상기 제 3 테이블의 값을 결정하고, 상기 제 2 변환 테이블에 포함되는 물리 어드레스에 대응하는 상기 물리블록의 상기 제 3 테이블의 값을 소거 완료되지 않은 것으로 결정하여, 상기 제 2 변환테이블에 포함되고 또한 아직 상기 제 1 데이터를 읽어 내지 않은 상기 물리블록에 대해서는 상기 제 1 데이터를 읽어 내지 않는 것을 특징으로 하는 비휘발성 기억장치.
  2. 복수의 물리블록과, 입력데이터를 분할하여 복수의 상기 물리블록 또는 상기 물리블록을 분할한 영역에 써넣는 쓰기 수단과, 분할된 입력데이터를 각각 써넣는 복수의 상기 물리블록 또는 상기 영역의 연결정보인 링크 테이블을 생성하는 링크 테이블생성수단과, 각각의 상기 물리블록이 소거 완료되었는지의 여부를 나타내는 제 3 테이블을 작성하는 제 3 테이블 작성수단을 가지며,
    상기 물리블록은 데이터를 격납하는 데이터영역과, 그 물리블록이 소거 완료되었는지의 여부를 나타내는 제 1 데이터를 가지며,
    분할된 입력데이터를 각각 써넣는 복수의 상기 물리블록 또는 상기 영역중의 적어도 1개의 상기 물리블록 또는 상기 영역은 상기 링크 테이블을 더욱 가지며,
    상기 제 3 테이블 작성수단은 상기 물리블록 또는 상기 영역에서 상기 제 1 데이터 및 상기 링크 테이블을 읽어 내고, 상기 제 1 데이터에 따라서 그 물리블록의 상기 제 3 테이블의 값을 결정하고, 상기 링크 테이블에 포함되는 물리 어드레스에 대응하는 상기 물리블록의 상기 제 3 테이블의 값을 소거 완료되지 않은 것으로 결정하여, 상기 링크 테이블에 포함되고 또한 아직 상기 제 1 데이터를 읽어 내지 않은 상기 물리블록에 대해서는 상기 제 1 데이터를 읽어 내지 않는 것을 특징으로 하는 비휘발성 기억장치.
  3. 복수의 물리블록과, 논리 어드레스로부터 물리 어드레스를 얻는 제 1 변환 테이블을 작성하는 제 1 테이블 작성수단과, 논리 어드레스로부터 물리 어드레스를 얻는 제 2 변환 테이블을 작성하는 제 2 테이블 작성수단과, 각각의 상기 물리블록 또는 상기 물리블록을 분할한 영역에 유효한 데이터가 써넣어져 있는지의 여부를 나타내는 제 4 테이블을 작성하는 제 4 테이블 작성수단을 가지며,
    상기 물리블록 또는 상기 영역은 데이터를 격납하는 데이터영역을 가지며,
    상기 제 1 변환 테이블의 물리 어드레스로 지정되는 상기 물리블록 또는 상기 영역은 상기 제 2 변환 테이블과, 상기 제 2 변환 테이블이 유효한지의 여부를 나타내는 제 2 플래그를 더욱 가지며,
    상기 제 4 테이블 작성수단은 상기 물리블록 또는 상기 영역에서 상기 제 2 플래그 및 상기 제 2 변환 테이블을 읽어 내고, 상기 제 2 플래그에 따라서 그 물리블록 또는 그 영역의 상기 제 4 테이블의 값을 결정하고, 상기 제 2 변환 테이블에 포함되는 물리 어드레스에 대응하는 상기 물리블록 또는 상기 영역의 상기 제 4 테이블의 값을 유효한 데이터가 써넣어져 있는 것으로 결정하고, 상기 제 2 변환 테이블에 포함되고 또한 아직 상기 제 2 플래그를 읽어 내지 않은 상기 물리블록 또는 상기 영역에 대해서는 상기 제 2 플래그를 읽어 내지 않는 것을 특징으로 하는 비휘발성 기억장치.
  4. 제 1 항 또는 제 3 항에 있어서, 상기 비휘발성 기억장치는 복수의 버스 라인과, 복수의 상기 물리블록을 가지며 또한 상기 버스 라인에 접속된 복수의 비휘발성기억소자를 가지며,
    상기 버스 라인에 접속된 비휘발성 기억소자에 써넣어진 상기 제 2 변환 테이블의 수가 상기 버스 라인마다 대략 동일인 것을 특징으로 하는 비휘발성 기억장치.
  5. 제 2 항에 있어서, 상기 비휘발성 기억장치는 복수의 버스 라인과, 복수의 상기 물리블록을 가지며 또한 상기 버스 라인에 접속된 복수의 비휘발성기억소자를 가지며,
    상기 버스 라인에 접속된 비휘발성 기억소자에 써넣어진 상기 링크 테이블의 수가 상기 버스 라인마다 대략 동일인 것을 특징으로 하는 비휘발성 기억장치.
  6. 복수의 물리블록과, 논리 어드레스로부터 물리 어드레스를 얻는 제 1 변환 테이블을 작성하는 제 1 테이블 작성수단과, 논리 어드레스로부터 물리 어드레스를 얻는 제 2 변환 테이블을 작성하는 제 2 테이블 작성수단과, 각각의 상기 물리블록이 소거 완료되었는지의 여부를 나타내는 제 3 테이블을 작성하는 제 3 테이블 작성수단을 가지며,
    상기 물리블록은 데이터를 격납하는 데이터영역과, 그 물리블록이 소거 완료되었는지의 여부를 나타내는 제 1 데이터를 가지며,
    상기 제 1 변환 테이블의 물리 어드레스로 지정되는 상기 물리블록은 상기 제 2 변환 테이블을 더욱 가진 비휘발성 기억장치의 제어방법으로서,
    상기 제 3 테이블 작성수단이 상기 물리블록으로부터 상기 제 1 데이터를 읽어 내어, 상기 제 1 데이터에 따라서 그 물리블록의 상기 제 3 테이블의 값을 결정하는 제 1 결정 스텝과,
    상기 제 3 테이블 작성수단이 상기 물리블록으로부터 상기 제 2 변환 테이블을 읽어 내어, 상기 제 2 변환 테이블에 포함되는 물리 어드레스에 대응하는 상기 물리블록의 상기 제 3 테이블의 값을 소거 완료되지 않은 것으로 결정하는 제 2 결정 스텝을 가지며,
    상기 제 3 테이블 작성수단이 상기 제 2 변환 테이블에 포함되고 또한 아직 상기 제 1 데이터를 읽어 내지 않은 상기 물리블록에 대해서는 상기 제 1 결정 스텝을 실행하지 않는 것을 특징으로 하는 비휘발성 기억장치의 제어방법.
  7. 복수의 물리블록과, 입력데이터를 분할하여 복수의 상기 물리블록 또는 상기 물리블록을 분할한 영역에 써넣는 쓰기 수단과, 분할된 입력데이터를 각각 써넣는 복수의 상기 물리블록 또는 상기 영역의 연결정보인 링크 테이블을 생성하는 링크 테이블 생성수단과, 각각의 상기 물리블록이 소거 완료되었는지의 여부를 나타내는 제 3 테이블을 작성하는 제 3 테이블 작성수단을 가지며,
    상기 물리블록은 데이터를 격납하는 데이터영역과, 그 물리블록이 소거 완료되었는지의 여부를 나타내는 제 1 데이터를 가지며,
    분할된 입력데이터를 각각 써넣는 복수의 상기 물리블록 또는 상기 영역중의 적어도 1개의 상기 물리블록 또는 상기 영역은 상기 링크 테이블을 더욱 가진 비휘발성 기억장치의 제어방법으로서,
    상기 제 3 테이블 작성수단이 상기 물리블록 또는 상기 영역에서 상기 제 1 데이터를 읽어 내고, 상기 제 1 데이터에 따라서 그 물리블록의 상기 제 3 테이블의 값을 결정하는 제 1 결정 스텝과,
    상기 제 3 테이블 작성수단이 상기 물리블록 또는 상기 영역에서 상기 링크 테이블을 읽어 내고, 상기 링크 테이블에 포함되는 물리 어드레스에 대응하는 상기 물리블록의 상기 제 3 테이블의 값을 소거 완료되지 않은 것으로 결정하는 제 2 결정 스텝을 가지며,
    상기 제 3 테이블 작성수단이 상기 링크 테이블에 포함되고 또한 아직 상기 제 1 데이터를 읽어 내지 않은 상기 물리블록 또는 상기 영역에 대해서는 상기 제 1 결정 스텝을 실행하지 않는 것을 특징으로 하는 비휘발성 기억장치의 제어방법.
  8. 복수의 물리블록과, 논리 어드레스로부터 물리 어드레스를 얻는 제 1 변환 테이블을 작성하는 제 1 테이블 작성수단과, 논리 어드레스로부터 물리 어드레스를 얻는 제 2 변환 테이블을 작성하는 제 2 테이블 작성수단과, 각각의 상기 물리블록 또는 상기 물리블록을 분할한 영역에 유효한 데이터가 써넣어져 있는지의 여부를 나타내는 제 4 테이블을 작성하는 제 4 테이블 작성수단을 가지며,
    상기 물리블록 또는 상기 영역은 데이터를 격납하는 데이터영역을 가지며,
    상기 제 1 변환 테이블의 물리 어드레스로 지정되는 상기 물리블록 또는 상기 영역은 상기 제 2 변환 테이블과, 상기 제 2 변환 테이블이 유효한지의 여부를 나타내는 제 2 플래그를 더욱 가진 비휘발성 기억장치의 제어방법으로서,
    상기 제 4 테이블 작성수단이 상기 물리블록 또는 상기 영역에서 상기 제 2 플래그를 읽어 내고, 상기 제 2 플래그에 따라서 그 물리블록 또는 그 영역의 상기 제 4 테이블의 값을 결정하는 제 1 결정 스텝과,
    상기 제 4 테이블 작성수단이 상기 물리블록 또는 상기 영역에서 상기 제 2 변환 테이블을 읽어 내고, 상기 제 2 변환 테이블에 포함되는 물리 어드레스에 대응하는 상기 물리블록 또는 상기 영역의 상기 제 4 테이블의 값을 유효한 데이터가 써넣어져 있는 것으로 결정하는 제 2 결정 스텝을 가지며,
    상기 제 4 테이블 작성수단이 상기 제 2 변환 테이블에 포함되고 또한 아직 상기 제 2 플래그를 읽어 내지 않은 상기 물리블록 또는 상기 영역에 대해서는 상기 제 1 결정 스텝을 실행하지 않는 것을 특징으로 하는 비휘발성 기억장치의 제어방법.
KR10-2003-7005539A 2001-08-24 2002-08-16 비휘발성 기억장치 및 그 제어방법 KR100522006B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2001-00254220 2001-08-24
JP2001254220A JP2003067244A (ja) 2001-08-24 2001-08-24 不揮発性記憶装置及びその制御方法
PCT/JP2002/008332 WO2003019382A1 (fr) 2001-08-24 2002-08-16 Dispositif de stockage non volatile et procede de commande associe

Publications (2)

Publication Number Publication Date
KR20030044023A KR20030044023A (ko) 2003-06-02
KR100522006B1 true KR100522006B1 (ko) 2005-10-18

Family

ID=19082412

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-7005539A KR100522006B1 (ko) 2001-08-24 2002-08-16 비휘발성 기억장치 및 그 제어방법

Country Status (8)

Country Link
US (1) US6922768B2 (ko)
EP (1) EP1420345A4 (ko)
JP (1) JP2003067244A (ko)
KR (1) KR100522006B1 (ko)
CN (1) CN1214326C (ko)
CA (1) CA2426783C (ko)
TW (1) TWI236589B (ko)
WO (1) WO2003019382A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1548602B1 (en) * 2002-10-02 2008-03-12 Matsushita Electric Industrial Co., Ltd. Non-volatile storage device control method
CN100517268C (zh) * 2004-04-20 2009-07-22 松下电器产业株式会社 非易失性存储***、非易失性存储装置、存储控制器、存取装置以及非易失性存储装置的控制方法
CN100437517C (zh) * 2004-04-28 2008-11-26 松下电器产业株式会社 非易失性存储装置和数据写入方法
US7259989B2 (en) * 2004-09-03 2007-08-21 Matsushita Electric Industrial Co., Ltd. Non-volatile memory device
US7594087B2 (en) * 2006-01-19 2009-09-22 Sigmatel, Inc. System and method for writing data to and erasing data from non-volatile memory
KR100684909B1 (ko) * 2006-01-24 2007-02-22 삼성전자주식회사 읽기 에러를 방지할 수 있는 플래시 메모리 장치
FR2901035B1 (fr) * 2006-05-11 2008-07-11 St Microelectronics Sa Procede et dispositif de gestion d'une table de correspondance d'acces a une memoire
JP4229140B2 (ja) * 2006-06-16 2009-02-25 ソニー株式会社 集積回路チップ、データ読み出し方法、データ書き込み方法、icカード、および携帯電話機
TW200823923A (en) * 2006-11-23 2008-06-01 Genesys Logic Inc Caching method for address translation layer of flash memory
JP5063337B2 (ja) 2007-12-27 2012-10-31 株式会社日立製作所 半導体装置
US9069657B2 (en) 2011-12-12 2015-06-30 Apple Inc. LBA bitmap usage
KR102655347B1 (ko) * 2016-07-04 2024-04-08 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10380028B2 (en) 2016-12-30 2019-08-13 Western Digital Technologies, Inc. Recovery of validity data for a data storage system
US11218360B2 (en) 2019-12-09 2022-01-04 Quest Automated Services, LLC Automation system with edge computing

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6081878A (en) 1997-03-31 2000-06-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US5838614A (en) 1995-07-31 1998-11-17 Lexar Microsystems, Inc. Identification and verification of a sector within a block of mass storage flash memory
JPH11203191A (ja) * 1997-11-13 1999-07-30 Seiko Epson Corp 不揮発性記憶装置、不揮発性記憶装置の制御方法、および、不揮発性記憶装置を制御するプログラムを記録した情報記録媒体
JP2000057038A (ja) 1998-08-05 2000-02-25 Sony Corp 記録装置および記録方法、並びに再生装置および再生方法、並びに記録媒体
JP3544476B2 (ja) 1998-09-11 2004-07-21 富士通株式会社 メモリ管理テーブル作成方法
US7836205B2 (en) * 2002-07-11 2010-11-16 Hewlett-Packard Development Company, L.P. Method and device for use with a virtual network

Also Published As

Publication number Publication date
WO2003019382A1 (fr) 2003-03-06
TWI236589B (en) 2005-07-21
CA2426783A1 (en) 2003-04-23
CA2426783C (en) 2007-03-27
EP1420345A1 (en) 2004-05-19
CN1473296A (zh) 2004-02-04
US20040030823A1 (en) 2004-02-12
JP2003067244A (ja) 2003-03-07
KR20030044023A (ko) 2003-06-02
CN1214326C (zh) 2005-08-10
EP1420345A4 (en) 2007-10-10
US6922768B2 (en) 2005-07-26

Similar Documents

Publication Publication Date Title
US7392343B2 (en) Memory card having a storage cell and method of controlling the same
US7773420B2 (en) Memory card system including NAND flash memory and SRAM/NOR flash memory, and data storage method thereof
JP5002201B2 (ja) メモリシステム
US7814264B2 (en) Memory card, semiconductor device, and method of controlling semiconductor memory
US6151247A (en) Method and apparatus for decreasing block write operation times performed on nonvolatile memory
US8386698B2 (en) Data accessing method for flash memory and storage system and controller using the same
US8681552B2 (en) System and method for accessing and storing interleaved data
US7404031B2 (en) Memory card, nonvolatile semiconductor memory, and method of controlling semiconductor memory
US20060187738A1 (en) Memory management device and memory device
KR100522006B1 (ko) 비휘발성 기억장치 및 그 제어방법
KR20040023643A (ko) 플래시 메모리장치 및 그것에 기억된 데이터의 머지방법
US7245539B2 (en) Memory card, semiconductor device, and method of controlling semiconductor memory
EP1228510A1 (en) Space management for managing high capacity nonvolatile memory
JP2008009527A (ja) メモリシステム
KR20080007470A (ko) Mram을 이용하는 비휘발성 메모리 시스템
JPH10326493A (ja) 複合化フラッシュメモリ装置
US20080209161A1 (en) Storage device and method of mapping a nonvolatile memory based on a map history
JP4661497B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4235646B2 (ja) メモリコントローラおよびフラッシュメモリシステム
US20060059296A1 (en) Emulating small block size of flash memory
US20050204115A1 (en) Semiconductor memory device, memory controller and data recording method
KR100780963B1 (ko) 메모리 카드 및 메모리 카드의 구동 방법
JP4177292B2 (ja) メモリンコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4177301B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4273109B2 (ja) メモリコントローラ及びフラッシュメモリシステム

Legal Events

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

Payment date: 20101007

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee