KR20130125303A - 제어 장치, 기억 장치, 데이터 기입 방법 - Google Patents

제어 장치, 기억 장치, 데이터 기입 방법 Download PDF

Info

Publication number
KR20130125303A
KR20130125303A KR1020130046708A KR20130046708A KR20130125303A KR 20130125303 A KR20130125303 A KR 20130125303A KR 1020130046708 A KR1020130046708 A KR 1020130046708A KR 20130046708 A KR20130046708 A KR 20130046708A KR 20130125303 A KR20130125303 A KR 20130125303A
Authority
KR
South Korea
Prior art keywords
page
physical
data
logical
writing
Prior art date
Application number
KR1020130046708A
Other languages
English (en)
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 KR20130125303A publication Critical patent/KR20130125303A/ko

Links

Images

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/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
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • 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/7207Details relating to flash memory management management of metadata or control data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명은, 하위 페이지와 상위 페이지 사이에 기입 속도의 차가 있는 불휘발성 메모리에 대하여 호스트 데이터의 기입 속도를 고속화한다.
또한, 불휘발성 메모리는, 1개의 메모리 셀에 2비트 이상의 다치 기억이 행해지고, 물리 어드레스가 설정되는 물리 페이지로서 적어도 다치 기억을 위한 하위 페이지와 상위 페이지를 갖고, 각 페이지가 물리 어드레스 순으로 사용되어서 데이터 기입이 행해진다. 이 불휘발성 메모리에 대한 호스트 기기로부터의 데이터 기입 요구에 따라 공급된 호스트 데이터의 기입을 행한다. 이 경우에, 다음번 데이터 기입 요구에 따른 데이터 기입이 하위 페이지부터 개시되도록, 하위 페이지 직전 페이지까지 데이터 기입을 실행하도록 한다.

Description

제어 장치, 기억 장치, 데이터 기입 방법{CONTROL DEVICE, STORAGE DEVICE AND DATA WRITING METHOD}
본 발명은 제어 장치, 기억 장치, 데이터 기입 방법에 관한 것이다. 특히 1개의 셀에 2비트 이상의 다치 기억을 행하는 불휘발성 메모리에 대한 기입 제어에 관한 것이다.
예를 들어 NAND형 플래시 메모리 등의 불휘발성 메모리를 사용한 기억 장치가 보급되어 있다. 불휘발성 메모리는, 예를 들어 각종 전자 기기, 정보 처리 장치 등에서 사용되는 메모리 카드, SSD(Solid State Drive), eMMC(Embedded MultiMedia Card) 등에 이용되고 있다.
하기 특허문헌 1 내지 4에는 플래시 메모리를 사용한 기억 장치가 개시되어 있다.
또한, 예를 들어 NAND형 플래시 메모리 등에서는, 1개의 셀의 부유 게이트에 있는 전자의 축적량(전하량)을 1개의 임계값으로 판정함으로써 1비트의 정보를 기억하는 SLC(Single Level Cell) 외에, 전하량의 차이를 4개 이상의 다치로 판단함으로써 2비트 이상을 기억하는 MLC(Multi Level Cell)가 알려져 있다.
또한, 협의(狹義)의 MLC로서 특히 2비트 기억인 것을 가리키고, 3비트 기억인 것을 TLC(Triple Level Cell)라고 하는 경우도 있다.
하기 문헌 5, 6에는 1개의 셀에 복수 비트 데이터를 기억하는 다치 플래시 메모리가 개시되어 있다.
이들 NAND형 플래시 메모리 등에서는, 물리적인 기억 영역의 어드레스로서 물리 어드레스(PBA: Physical Block Address)가 사용된다. 이에 의해 물리 블록, 물리 페이지, 물리 섹터가 설정되어 있다. 복수의 물리 섹터로 물리 페이지가 구성되고, 복수의 물리 페이지로 물리 블록이 구성된다.
소거(이레이즈)는 물리 블록 단위로 행해지고, 기입(프로그램) 및 판독(리드)은 물리 페이지 단위로 가능하게 된다.
호스트측이나 메모리 제어부측으로부터의 어드레스 지정은, 논리 어드레스(LBA: Logical Block Address)가 사용된다. 논리 어드레스에 의한 논리 블록, 논리 페이지가, 상기의 물리 어드레스에 대응된다. 이에 의해 액세스 요구 시에는 논리 어드레스가 물리 어드레스로 변환되고, 실제의 플래시 메모리로의 액세스가 실행된다.
다치 NAND형 플래시 메모리인 경우, 물리 어드레스가 부여되는 물리 페이지로서 상위 페이지, 하위 페이지가 설정된다.
예를 들어 2비트 기억의 MLC인 경우, 하위 페이지로서의 로어 페이지(Lower Page)와 상위 페이지로서의 어퍼 페이지(Upper Page)가 설정된다.
3비트 기억의 TLC인 경우, 하위 페이지로서의 로어 페이지와, 중위 페이지로서의 미들 페이지(Middle Page)와, 상위 페이지로서의 어퍼 페이지가 설정된다.
일본 특허 공개 제2009-70098호 공보 일본 특허 공개 제2007-334852호 공보 일본 특허 공개 제2007-193838호 공보 일본 특허 공개 제2007-58840호 공보 일본 특허 공개 제2010-198407호 공보 일본 특허 공개 제2007-94921호 공보
다치 NAND형 플래시 메모리를 기억 디바이스로서 사용하는 메모리 디바이스에 있어서는, 기입 속도가 고속인 로어 페이지를 사용함으로써, 액세스 속도의 고속화를 실현할 수 있다.
그러나, 로어 페이지만을 사용한 경우, 플래시 메모리로서는 MLC의 경우에는 절반, TLC의 경우에는 1/3의 영역밖에 사용할 수 없게 되어 버린다.
또한, 최근의 다치 NAND형 플래시 메모리는, 로어 페이지만을 사용하는 것이 허가되지 않고, 반드시 미들 페이지나 어퍼 페이지 등, 저속이고, 물리 셀을 공유하는 물리 페이지의 데이터에 데미지를 미칠 가능성이 있는 물리 페이지에 대해서도 기입을 행해야만 한다는 제약을 가지고 있다.
또한, 최근의 호스트 디바이스의 경향으로서, 물리 페이지 사이즈 이하와 같은 작은 크기에서의 액세스가 증가하고 있다. 이때, 저속의 미들 페이지나 어퍼 페이지에 기입이 행해지면, 호스트 기기로부터의 기입이 극단적으로 늦게 보여지게 되어버려, 호스트 디바이스의 성능의 저하를 발생시켜버린다.
본 발명에서는 이러한 점을 감안하여, 다치 기억이 행해지는 불휘발성 메모리에 대하여 호스트 데이터 기입을 고속으로 행할 수 있도록 하고, 시스템 성능을 향상시키는 것을 목적으로 한다.
본 발명의 제어 장치는, 1개의 메모리 셀에 2비트 이상의 다치 기억이 행해지고, 물리 어드레스가 설정되는 물리 페이지로서 적어도 다치 기억을 위한 하위 페이지와 상위 페이지를 갖고, 각 물리 페이지가 물리 어드레스 순으로 사용되어서 데이터 기입이 행해지는 불휘발성 메모리에 대하여, 호스트 기기로부터의 데이터 기입 요구에 따라 공급된 호스트 데이터의 기입 제어를 행하면서, 또한 다음번 데이터 기입 요구에 따른 데이터 기입이 하위 페이지부터 개시되도록, 하위 페이지 직전의 물리 페이지까지 데이터 기입을 실행시키는 제어부를 구비한다.
본 발명의 기억 장치는, 당해 제어 장치와 상기의 불휘발성 메모리를 갖는다.
본 발명의 데이터 기입 방법은, 호스트 기기로부터의 데이터 기입 요구에 따라, 불휘발성 메모리에 대하여, 공급된 호스트 데이터의 기입을 행하면서, 또한 다음번 데이터 기입 요구에 따른 데이터 기입이 하위 페이지부터 개시되도록, 하위 페이지 직전의 물리 페이지까지 데이터 기입을 실행하도록 하는 것이다.
이러한 본 발명의 기술에서는, 어떤 데이터 기입 요구가 발생한 경우에, 호스트 데이터의 기입이 행해지지만, 필요에 따라 비호스트 데이터의 기입 등도 행해지고, 다음번 기입 요구에 따른 데이터 기입이 하위 페이지부터 개시되는 상태로 한다. 따라서, 예를 들어 작은 크기의 호스트 데이터 등은, 하위 페이지에 대한 기입만으로 완료할 수 있는 경우가 많아진다.
본 발명에 의하면, 데이터 기입 요구에 따라서 호스트 데이터가 불휘발성 메모리에 기입될 경우에, 하위 페이지부터 기입이 개시되게 된다. 기입 속도가 빠른 하위 페이지를 사용함으로써 호스트 데이터의 고속 기입이 실현된다. 특히 호스트 기기로부터 작은 크기의 데이터 기입 요구가 많은 경우에 유효해진다.
도 1은 본 발명의 실시 형태의 메모리 카드의 블록도.
도 2는 실시 형태의 불휘발성 메모리에 있어서의 물리 블록과 물리 페이지의 설명도.
도 3은 실시 형태의 다치 NAND형 플래시 메모리의 설명도.
도 4는 실시 형태의 다치 NAND형 플래시 메모리의 기억 동작의 설명도.
도 5는 실시 형태의 물리 페이지의 설명도.
도 6은 실시 형태의 데이터 기입 시의 처리의 흐름도.
도 7은 실시 형태의 호스트 데이터 기입 시의 동작예의 설명도.
도 8은 실시 형태의 호스트 데이터 및 관리 정보 기입시의 동작예의 설명도.
도 9는 실시 형태의 호스트 데이터 및 관리 정보 기입시의 동작예의 설명도.
도 10은 본 발명의 실시 형태의 관리 정보 기입 타이밍의 설명도.
도 11은 실시 형태의 관리 정보 읽기 처리의 흐름도.
도 12는 실시 형태의 관리 정보 읽기 동작의 설명도.
도 13은 실시 형태의 논리·물리 어드레스 변환 테이블 구축 처리의 설명도.
도 14는 실시 형태의 논리·물리 어드레스 변환 테이블의 설명도.
도 15는 실시 형태의 논리·물리 어드레스 변환 테이블 읽기 처리의 흐름도.
이하, 실시 형태에 대해서 다음의 순서로 설명한다. 또한, 실시 형태에서 나타내는 메모리 카드(1)가 청구항에서 말하는 기억 장치의 실시 형태가 된다. 또한 메모리 카드(1) 내의 제어부(11)가, 청구항에서 말하는 제어 장치의 실시 형태이며, 제어부(11)의 제어에 기초하여 실행되는 데이터 기입 방법이 청구항에서 말하는 데이터 기입 방법의 실시 형태가 된다.
<1. 메모리 카드 구성>
<2. MLC/TLC>
<3. 데이터 기입 제어 처리>
<4. 관리 정보 읽기 처리>
<5. 논리·물리 어드레스 변환 테이블에 대한 적용예>
<6. 변형예>
<1. 메모리 카드 구성>
도 1에 실시 형태의 메모리 카드(1)의 구성예를 도시한다.
메모리 카드(1)는 호스트 기기(2)에 접속되고, 기억 장치로서 사용된다. 호스트 기기(2)란, 예를 들어 퍼스널 컴퓨터, 디지털 스틸 카메라, 비디오 카메라, 오디오 플레이어, 비디오 플레이어, 게임 기기, 휴대 전화기, PDA(Personal Digital Assistant) 등의 정보 단말기 등, 각종 전자 기기, 정보 처리 장치가 상정된다.
메모리 카드(1)는 제어부(11), 인터널 RAM(Random Access Memory)(12), 디바이스 인터페이스(13), 버퍼 RAM 및 불휘발성 메모리(Non-Volatile Memory)(15)를 구비한다.
제어부(11)는 CPU(Central Processing Unit)에 의해 형성되고, 메모리 카드(1)의 전체를 제어한다. 이 때문에 제어부(11)는 인터널 RAM(12)에 있는 명령 코드를 차례로 실행한다. 주로 제어부(11)는 호스트 기기(2)로부터의 커맨드에 따른 데이터의 기입이나 판독을 실행시킨다. 이 때문에 제어부(11)는 디바이스 인터페이스(13)의 호스트 기기(2)와의 데이터 송수신 동작 제어, 버퍼 RAM(14)의 기입/ 판독 동작의 제어, 불휘발성 메모리(15)에 대한 액세스 동작의 제어를 행한다.
인터널 RAM(12)은 예를 들어 SRAM(Static Random Access Memory)으로 구성된다. 인터널 RAM(12)은 제어부(11)가 실행하는 프로그램(펌웨어)의 기억이나, 워크 영역으로서 사용된다.
디바이스 인터페이스(13)는 호스트 기기(2)와의 사이의 통신을 행한다.
버퍼 RAM(14)은 호스트 기기(2)와의 사이의 전송 데이터(기입 데이터나 판독 데이터)의 버퍼링에 사용된다.
불휘발성 메모리(15)는, 예를 들어 다치 NAND형 플래시 메모리다.
즉, 본 실시 형태의 경우, 이 불휘발성 메모리(15)는 1개의 메모리 셀에 2비트 이상의 다치 기억이 행해지고, 물리 어드레스가 설정되는 물리 페이지로서 적어도 다치 기억을 위한 하위 페이지(로어 페이지)와 상위 페이지(어퍼 페이지)를 갖는다. 그리고 각 물리 페이지가 물리 어드레스 순으로 사용되어서 데이터 기입이 행해지는 다치 NAND형 플래시 메모리로 된다.
메모리 카드(1)의 기본적인 동작으로는, 데이터 기입 시에는 호스트 기기(2)로부터 기입 요구와 함께, 기입 어드레스(논리 어드레스), 데이터 크기, 또한 기입해야 할 데이터가 보내져 온다.
호스트 기기(2)로부터 보내져 오는 기입해야 할 데이터는 디바이스 인터페이스(13)에서 수신되어 버퍼 RAM(14)에 버퍼링된다. 그리고 제어부(11)의 제어 하에, 데이터가 불휘발성 메모리(15)에 기입된다. 제어부(11)는 기입 요구, 기입 어드레스, 데이터 크기에 따라서 이것들의 동작을 제어한다.
데이터 판독 시에는 호스트 기기(2)로부터 판독 요구와 함께, 판독 어드레스(논리 어드레스), 데이터 크기가 보내져 온다. 제어부(11)는 판독 어드레스, 데이터 크기에 기초하여 불휘발성 메모리(15)로부터 지시된 데이터의 판독을 행하고, 버퍼 RAM(14)에 버퍼링한다. 또한 제어부(11)는 버퍼링된 판독 데이터에 대하여 에러 정정 처리 등을 행한다. 그리고 판독 데이터는 버퍼 RAM(14)으로부터 디바이스 인터페이스(13)에 전송되어, 호스트 기기(2)에 송신된다.
상술한 바와 같이 불휘발성 메모리(15)는 물리적인 기억 영역의 어드레스로서 물리 어드레스가 사용된다. 이에 의해 물리 블록(Physical Block), 물리 페이지(Physical Page), 물리 섹터(Physical Sector)가 설정되어 있다. 복수의 물리 섹터로 물리 페이지가 구성되고, 또한 복수의 물리 페이지로 물리 블록이 구성된다.
도 2에는, 물리 블록 PB로서 n+1개의 물리 블록 PB0 내지 PBn을 모식적으로 도시하고 있다. 여기에서는 1개의 물리 블록 PB에 있어서의 16개의 물리 페이지 PP(PP0 내지 PP15)를 나타내고 있다. 또한, 1개의 물리 블록 PB는 16개의 물리 페이지 PP로 형성되는 것에 한정되지 않고, 물리 페이지 PP16 이후가 더 존재해도 좋다. 도면은 물리 블록 PB 내의 일부라고 생각해도 좋다.
1개의 물리 페이지 PP는, 예를 들어 16Kbyte 등으로 이루어진다. 도시하고 있지 않으나, 이 물리 페이지 PP 내가 복수의 물리 섹터로 나뉘어져 있다.
또한 다치 NAND형 플래시 메모리로 이루어지는 본 예의 불휘발성 메모리(15)에서는, 각 물리 페이지로서, 로어 페이지, 어퍼 페이지가 할당된다.
소거(이레이즈)는 물리 블록 단위로 행해지고, 기입(프로그램) 및 판독(리드)은 물리 페이지 단위로 가능하게 된다. 즉, 물리 블록이 물리적 소거 단위, 물리 페이지가 물리적 기입 단위가 된다.
호스트 기기(2)측으로부터의 어드레스 지정은, 논리 어드레스가 사용된다. 논리 어드레스에 의한 논리 블록, 논리 페이지, 논리 섹터가, 상기의 물리 어드레스에 대응된다. 즉, 제어부(11)는 논리 어드레스와 물리 어드레스를 대응시키는 논리·물리 어드레스 변환 테이블을 형성하고, 호스트 기기(2)로부터의 액세스 요구 시에는, 지정되는 논리 어드레스를 논리·물리 어드레스 변환 테이블을 참조하여 물리 어드레스로 변환한다. 그리고 물리 어드레스에 의해, 실제의 불휘발성 메모리(15)로의 액세스를 실행한다.
본 실시 형태의 경우, 제어부(11)는 논리 어드레스와 물리 어드레스의 대응 관계를 나타내는 논리·물리 어드레스 변환 테이블의 생성이나 갱신도 행한다.
또한 제어부(11)의 관리 하, 예를 들어 인터널 RAM(12)에 제어부(11)가 생성, 갱신된 논리·물리 어드레스 변환 테이블이 기억된다.
또한 본 실시 형태에서는, 물리 블록 PB에는 논리 어드레스가 비연속 데이터를 연속된 물리 페이지 PP에 기입하는 것을 허용한다.
또한, 호스트 기기(2)로부터 기입이나 판독이 요구되는 데이터(호스트 기기(2)가 논리 어드레스로 관리하는 데이터)를 「호스트 데이터」라고 한다.
또한 본 실시 형태에서는, 상기의 다치 NAND형 플래시 메모리로서의 불휘발성 메모리(15)에 대하여, 제어부(11)는 호스트 기기(2)로부터의 데이터 기입 요구에 따라, 공급된 호스트 데이터의 기입 제어를 행하는데, 이 경우에, 다음번 데이터 기입 요구에 따른 호스트 데이터의 기입이 로어 페이지부터 개시되도록, 로어 페이지 직전의 물리 페이지까지 데이터 기입을 실행시키는 제어를 행한다.
이 때문에 본 예의 경우, 제어부(11)는 데이터 기입 요구에 따른 호스트 데이터의 기입이 로어 페이지 직전의 물리 페이지에 이르지 않고 종료된 경우에는, 로어 페이지 직전의 물리 페이지까지, 비호스트 데이터의 기입을 실행시킨다. 비호스트 데이터란, 예를 들어 상술한 논리·물리 어드레스 변환 테이블 등, 제어부(11)가 사용하는 관리 정보이다.
또한, 관리 정보로서는 논리·물리 어드레스 변환 테이블에 한정되지 않고, 예를 들어 호스트 데이터가 저작권 콘텐츠 데이터일 경우의 저작권 정보이거나, 불휘발성 메모리(15)에 있어서 에러가 발생한 물리 어드레스를 나타내는 에러 정보이거나, 다양한 예를 생각할 수 있다. 메모리 카드(1)의 제품 정보, 시리얼 넘버 등의 정보, 사용 이력 정보 등이어도 좋다.
또한 비호스트 데이터라는 의미에서는, 관리 정보에 한정되지 않고, 호스트 기기(2)로부터 데이터 기입 요구가 행해지는 호스트 데이터 이외의 데이터를 가리킨다.
<2. MLC/TLC>
여기서 MLC, TLC라고 불리는 다치 NAND형 플래시 메모리에 대해서 설명해 둔다.
도 3은 실시 형태에 따른 불휘발성 메모리(15)로서의 다치 NAND형 플래시 메모리의 내부 구성을 도시하고 있다.
도 3에 도시한 바와 같이, 다치 NAND형 플래시 메모리는, 복수의 전기적으로 재기입 가능한 메모리 셀 MT가 매트릭스 형상으로 배치된 메모리 셀 어레이를 구성하고 있다.
메모리 셀 MT는 직렬로 접속되고, 양단을 선택 게이트 트랜지스터 ST로 끼운 구성으로 되어 있다. 이 구성을 NAND열이라고 한다. 여기에서는, 각 NAND열은 m개의 메모리 셀 MT가 직렬로 접속되어서 구성되어 있다.
각 NAND열의 일단부는 드레인측 선택 게이트선 SG0에 접속된 선택 게이트 트랜지스터 ST10 내지 ST1n을 통해서 비트선 BL0 내지 BLn으로, 타단부는 소스측 선택 게이트선 SGL에 접속된 선택 게이트 트랜지스터 ST20 내지 ST2n을 통해서 공통 소스선 SL에 접속되어 있다. NAND열은 n열, 비트선 각각의 메모리 셀 MT의 제어 게이트는 워드선 WL0 내지 WLm에 접속되어 있다.
동일한 워드선 WL0 내지 WLm으로 접속되어 있는 복수의 메모리 셀 MT를 페이지라고 한다. 이 페이지는 싱글 레벨 셀(SLC)인 경우, 복수의 메모리 셀 MT가 모여서 1개의 물리 페이지를 구성하고 있다.
본 발명에 관한 메모리 셀 MT는 다 비트 데이터를 기억할 수 있는 멀티 레벨 셀을 상정하고 있으므로, 상기의 페이지는 그 비트 수에 상당하는 페이지 수가 된다. 도 3에서는 2비트 데이터를 기억할 수 있는 메모리 셀 MT를 도시하고 있고, 상기 복수의 메모리 셀 MT로 2개의 물리 페이지 분이 된다. 이 대응을 도 3의 우측에 도시하였다.
즉, 워드선 WL0 내지 WLm마다 로어 페이지, 어퍼 페이지가 된다.
로어 페이지, 어퍼 페이지마다, 물리 페이지 PP로서의 어드레스(PP0 내지 PPq)가 할당된다. 또한 여기에서 도시하는 물리 페이지 PP로서의 어드레스 PP0 내지 PPq의 할당은 일례에 지나지 않는다.
기입 동작, 판독 동작은 이 페이지 단위로 행해진다. 기입은 로어 페이지부터 상위 어퍼 페이지의 순으로 행해지고, 어퍼 페이지부터 로어 페이지의 순으로 기입할 수는 없다. 어퍼 페이지의 기입에 실패하면, 원리상 로어 페이지의 내용이 파괴(소실)되는 경우가 있다.
다치 NAND형 플래시 메모리의 기입 동작 개념을 도 4에 의해 설명한다. 도 4는 1개의 메모리 셀 MT에 2비트의 기억을 행하는 4값 데이터(2비트) 기억 방식에서의 임계값 분포를 모식적으로 도시하는 것이다.
도면에 도시한 바와 같이, 메모리 셀 MT당, 2 페이지 분의 데이터를 기억할 수 있다. 기입은 로어 페이지부터 어퍼 페이지의 순으로 행해진다.
메모리 셀 MT는 어퍼 페이지 데이터 “x”와 로어 페이지 데이터 “y”로 정의되는 4값 데이터 “xy” 중 어느 하나를 유지할 수 있다. 이 4값 데이터 “xy”는 메모리 셀 MT의 임계값 전압의 순으로, 예를 들어 데이터 “11”, “01”, “00”, “10”이 할당된다.
데이터 “11”은 메모리 셀 MT의 임계값 전압이 부인 소거 상태다. 또한, 데이터의 할당 규칙은 이것에 한정되지 않는다. 또한, 본 실시 형태에서는, 이후, 1개의 메모리 셀 MT에 2비트의 값을 기억할 수 있는 것을 예로 들어 설명하지만, 1개의 메모리 셀 MT에 3비트 이상의 기억을 행하는 구성이어도 좋다.
로어 페이지 기입 동작에 있어서는, 데이터 “11”(소거 상태)의 메모리 셀 MT에 대하여 선택적으로, 로어 비트 데이터 “y”의 기입에 의해, 데이터 “10”이 기입된다.
어퍼 페이지 기입 동작에 있어서는, 데이터 “11”의 메모리 셀 MT와, 데이터 “10”의 메모리 셀 MT에 대하여, 각각 선택적으로 어퍼 비트 데이터 “x”의 기입이 행해지고, 데이터 “01” 및 데이터 “00”이 기입된다.
어퍼 페이지 기입 전의 데이터 “10”의 임계값 분포는, 어퍼 페이지 기입 후의 데이터 “01”과 데이터 “00”의 임계값 분포의 중간 정도에 위치하고 있고, 일반적으로 어퍼 페이지 기입 후의 임계값 분포보다 넓게 되어 있다.
즉, 어퍼 페이지 기입 후에는 전하량에 대하여 3개의 임계값으로 각 값이 식별되는 상태로 된다.
이러한 다치 NAND형 플래시 메모리에서는, 로어 페이지 기입에 필요로 하는시간에 대하여, 어퍼 페이지 기입에 필요로 하는 시간이 길어지는 것이 알려져 있다. 도 4에 도시한 바와 같은 전하량 천이의 처리를 위해, 예를 들어 어퍼 페이지 기입에 필요로 하는 시간은, 로어 페이지 기입에 필요로 하는 시간의 5배 정도가 되는 경우가 있다.
도 5의 A는 MLC에 있어서의 물리 페이지 어드레스의 할당예를 도시하고 있다.
여기에서는 1개의 물리 블록에 있어서의 물리 페이지 PP를 나타내고 있지만, 각 물리 페이지 PP에는 「0」 「1」 「2」…의 페이지 어드레스가 할당된다. 이것을 물리 페이지 「PP0」 「PP1」…「PP15」로 나타내고 있다.
각 물리 페이지에 있어서, [Lower]는 로어 페이지를 나타내고, [Upper]는 어퍼 페이지를 나타낸다. 이 예에서는 물리 페이지 PP0 내지 PP3, PP6, PP7, PP10, PP11, PP14, PP15가 로어 페이지이다. 또한 물리 페이지 PP4, PP5, PP8, PP9, PP12, PP13이 어퍼 페이지이다.
이 물리 블록 PB에는, 페이지 어드레스 순으로 물리 페이지 PP가 사용되어서 데이터의 기입이 행해진다. 즉, 물리 페이지 PP0, PP1…PP15의 순으로 사용된다. 예를 들어, 도 3에 도시한 바와 같이 워드선 WL0 내지 WLm마다 로어 페이지, 어퍼 페이지가 메모리 셀을 공유하는 형태가 되지만, 예를 들어 물리 페이지 PP0(로어 페이지)와 물리 페이지 PP4(어퍼 페이지)가, 동일한 워드선의 메모리 셀 MT에서 공유되는 형태가 된다. 그리고, 이 도 5의 페이지 어드레스 순으로 물리 페이지 PP가 사용됨으로써, 로어 페이지와 어퍼 페이지의 조에서는, 반드시 로어 페이지에 먼저 기입이 행해진다.
도 5의 B는 TLC에 있어서의 물리 페이지 어드레스의 할당예를 도시하고 있다.
각 물리 페이지에 있어서, [Lower]는 로어 페이지, [Middle]은 미들 페이지, [Upper]는 어퍼 페이지를 나타낸다. 이 예에서는, 물리 페이지 PP0, PP1, PP3, PP6, PP9, PP12, PP15가 로어 페이지이다. 또한 물리 페이지 PP2, PP4, PP7, PP10, PP13이 미들 페이지이다. 또한 물리 페이지 PP5, PP8, PP11, PP14가 어퍼 페이지이다.
TLC에서는 로어 페이지, 미들 페이지, 어퍼 페이지가 메모리 셀을 공유하는 형태가 되지만, 이 도 5의 B와 같이 물리 페이지 어드레스가 설정됨으로써, 각 메모리 셀에서 보면, 기입 동작은 반드시 로어 페이지, 미들 페이지, 어퍼 페이지의 순으로 행해진다.
<3. 데이터 기입 제어 처리>
본 실시 형태의 제어부(11)는 호스트 기기(2)로부터 요구된 호스트 데이터의 기입을, 예를 들어 상기 도 5의 A, 도 5의 B와 같은 물리 블록 내에서, 페이지 어드레스 순서의 물리 페이지 PP에 행해 간다.
이때, 연속해서 호스트 데이터의 기입이 계속되는 사이에는, 로어 페이지뿐만 아니라, 미들 페이지나 어퍼 페이지도 포함해서 기입을 행한다.
그리고, 호스트 데이터의 기입이 종료된 물리 페이지의 다음 물리 페이지가 로어 페이지인 경우에는, 그 시점에서 처리를 완료한다.
그러나 호스트 데이터의 기입이 종료된 페이지의 다음 페이지가 로어 페이지가 아니었을 경우에는, 다음 로어 페이지 직전의 물리 페이지까지, 관리 정보(예를 들어, 논리·물리 어드레스 변환 테이블)의 기입을 행하고, 다음의 기입이 로어 페이지부터 개시되는 상태로 한다.
도 6에서 제어부(11)에 의한 데이터 기입 제어 처리예를 설명한다.
제어부(11)는 스텝 F101로서, 호스트 기기(2)로부터 데이터 기입 요구에 따라, 기입을 행하는 호스트 데이터의 도입이나 논리 어드레스의 취득 등을 행한다.
구체적으로는, 제어부(11)는 송신되어 오는 호스트 데이터에 대해서는 디바이스 인터페이스(13)를 통해서 버퍼 RAM(14)에 일시 저장시킨다. 또한 제어부(11)는 디바이스 인터페이스(13)를 통해서 송신되는 기입 요구의 커맨드에 의해, 기입하는 호스트 데이터의 논리 어드레스와 데이터량을 파악한다.
스텝 F102에서는, 금회의 데이터 기입에 대응하기 위해 논리·물리 어드레스 변환 테이블을 작성 또는 갱신한다. 여기에서는, 금회 기입을 행하는 호스트 데이터의 논리 어드레스를 물리 어드레스에 대응시킨 엔트리를 논리·물리 어드레스 변환 테이블에 추가하는 처리를 행한다.
또한, 논리·물리 어드레스 변환 테이블은 상기 관리 정보의 한가지 예인데, 논리·물리 어드레스 변환 테이블에 관한 동작은 통합하여 후술한다.
계속해서 제어부(11)는 스텝 F103에서, 금회 기입 요구에 관한 호스트 데이터의 기입 제어를 행한다. 구체적으로는, 버퍼 RAM(14)에 일시 저장시킨 호스트 데이터를 금회 스텝 F102에서 논리·물리 어드레스 변환 테이블에 엔트리한 물리 어드레스에 따라, 불휘발성 메모리(15)에 기억시켜 간다. 예를 들어, 도 5의 A와 같은 물리 블록 PB에 대하여, 페이지 어드레스가 빠른 물리 페이지 PP부터 기입을 행하여 간다.
호스트 데이터의 기입을 행하면 스텝 F104의 판단을 행한다. 여기에서는 금회의 호스트 데이터의 기입을 행한 마지막 물리 페이지의 다음 물리 페이지 PP, 즉 다음번 기입 요구에 따라서 기입을 행하게 되는 물리 페이지 PP가, 로어 페이지인지 여부를 확인한다. 다시 말해, 로어 페이지 직전의 물리 페이지에서 기입이 완료되었는지 여부를 판단한다.
만약에 다음 물리 페이지 PP가 로어 페이지이면, 그대로 금회의 기입 요구에 따른 처리를 종료한다.
한편, 다음 물리 페이지 PP가 로어 페이지가 아니면, 스텝 F104로부터 F105로 진행하고, 다음 물리 페이지 PP에 관리 정보의 기입을 행한다.
관리 정보로서, 예를 들어 저작권 정보, 에러 테이블, 논리·물리 어드레스 변환 테이블 등의 기입을 행한다. 이들 전부이어도 좋고, 일부이어도 좋다. 또한 이들 이외의 관리 정보이어도 좋다.
그리고 다시 스텝 F104의 판단을 행하여, 다음 물리 페이지 PP가 로어 페이지이면 처리를 종료하는데, 다음 물리 페이지 PP가 로어 페이지가 아니면, 다시 스텝 F105에서, 그 다음 물리 페이지 PP에 관리 정보의 기입을 행한다.
이러한 처리에 의해 행해지는 기입 동작을 도 7, 도 8, 도 9에서 설명한다.
도 7, 도 8의 A, 도 9의 A는 어떤 물리 블록 PBx에 대하여, 금회의 호스트 데이터의 기입이 행해진 상태를 도시하고 있다. 도면 중, 각 물리 페이지 PP 내의 「Data」는 호스트 데이터가 기입된 상태를 나타내고 있다.
이 도 7은 금회의 호스트 데이터가, 스텝 F103의 기입 제어에 기초하여, 물리 페이지 PP0 내지 PP9까지 기입된 경우이다. 이 경우, 다음 물리 페이지 PP10은 로어 페이지로 되어 있다. 따라서 스텝 F104에서는, 다음 물리 페이지 PP가 로어 페이지라고 해서, 그대로 금회의 기입 요구에 따른 처리를 종료하게 된다.
도 8의 A는, 금회의 호스트 데이터가 스텝 F103의 기입 제어에 기초하여, 물리 페이지 PP0 내지 PP8까지 기입된 경우이다. 이 경우, 다음 물리 페이지 PP9는 어퍼 페이지이다. 따라서 스텝 F104에서는 다음 물리 페이지가 로어 페이지가 아니라고 판단되어, 스텝 F105에서 다음 물리 페이지 PP9에 도 8의 B와 같이 관리 정보 MGT의 기입이 행해진다. 그러면 이어지는 스텝 F104에서는, 다음 물리 페이지 PP10이 로어 페이지라고 판단되어, 그것에 의해 금회의 기입 요구에 따른 일련의 처리를 종료하게 된다.
도 9의 A는 금회의 호스트 데이터가, 스텝 F103의 기입 제어에 기초하여, 물리 페이지 PP0 내지 PP7까지 기입된 경우이다. 이 경우, 다음 물리 페이지 PP8은 어퍼 페이지이다. 따라서 스텝 F104에서는 다음 물리 페이지가 로어 페이지가 아니라고 판단된다. 그 때문에 스텝 F105에서 물리 페이지 PP8에 도 9의 B와 같이 관리 정보 MGT의 기입이 행해진다. 그러나 이 시점에서도, 다음 물리 페이지 PP9는 어퍼 페이지이다. 따라서 스텝 F104로부터 F105로 더 진행하고, 다음 물리 페이지 PP9에도 도 8의 B와 같이 관리 정보 MGT의 기입이 행해진다.
그 후의 스텝 F104에서는 다음 물리 페이지 PP10이 로어 페이지라고 판단되어, 그것에 의해 금회의 기입 요구에 따른 일련의 처리를 종료하게 된다.
이상과 같이, 본 실시 형태의 데이터 기입 동작에서는, 호스트 데이터의 기입을 행했을 때, 다음번 데이터 기입 요구에 따른 데이터 기입이 로어 페이지부터 개시되도록, 로어 페이지 직전의 물리 페이지 PP까지 어떠한 데이터 기입이 행해진다.
즉, 호스트 데이터의 기입 완료의 시점에서, 다음 물리 페이지가 로어 페이지이면, 그 시점에서 일련의 기입 동작을 종료한다.
또한, 호스트 데이터의 기입 완료의 시점에서, 다음 물리 페이지가 로어 페이지가 아니면, 다음 물리 페이지가 로어 페이지로 되는 상태가 될 때까지, 관리 정보의 기입을 행하고, 일련의 기입 동작을 종료한다.
이에 의해, 호스트 기기(2)로부터의 기입 요구가 있었을 때는, 호스트 데이터의 기입은 반드시 로어 페이지부터 개시되게 된다. 이에 의해 기입 액세스의 고속화가 실현된다.
호스트 기기(2)로부터 공급되는 호스트 데이터로는 스트림 데이터 등의 데이터 크기가 큰 것과, 예를 들어 4Kbyte, 8Kbyte 등, 1개의 물리 페이지 PP에 기입할 수 있는 데이터 크기가 작은 것이 있다.
물리 페이지 PP는 페이지 어드레스 순으로 사용되기 때문에, 비교적 크기가 큰 호스트 데이터는 로어 페이지/어퍼 페이지에 관계없이, 물리 어드레스 순으로 사용되어서 기입이 행해진다. 예를 들어 도 7, 도 8, 도 9의 예에서는 10 물리 페이지 정도를 필요로 하는 호스트 데이터의 기입예를 나타냈지만, 그 경우, 도시한 바와 같이 물리 어드레스 순으로 로어 페이지/어퍼 페이지 양쪽이 호스트 데이터의 기입에 사용된다.
로어 페이지와 어퍼 페이지 사이에는, 기입 속도에 큰 차가 있는 것을 앞서 설명했지만, 이렇게 로어 페이지/어퍼 페이지를 평균적으로 사용하는 호스트 데이터의 경우, 어퍼 페이지를 사용하는 것에 의한 기입 속도는 그다지 문제되지는 않는다. 로어 페이지도 사용됨으로써 전체적으로 평균화되는 일도 있다.
한편, 1 물리 페이지 등으로 기입이 완료되는 작은 크기의 호스트 데이터의 경우, 로어 페이지를 사용하는 경우와 어퍼 페이지를 사용하는 경우에 있어서, 명백하게 후자 쪽이 액세스 속도가 저하한다.
그러나 본 실시 형태의 경우, 기입 요구 시에는 반드시 로어 페이지부터 기입이 개시되기 때문에, 작은 크기의 호스트 데이터는, 거의 로어 페이지만을 사용해서 기입이 행해지게 된다. 이 때문에 특히 작은 크기의 기입 요구가 다발하는 동작 환경에 있어서는, 액세스 속도가 매우 향상되게 된다.
또한 큰 크기의 호스트 데이터의 기입의 경우에는, 어퍼 페이지도 포함해서 기입이 행해지기 때문에, 어퍼 페이지측을 낭비하게 하지 않고, 불휘발성 메모리(15)의 용량을 유효하게 사용하는 것이 가능하다.
그런데, 스텝 F105에 의한 관리 정보 기입을 행하는 것은, 제어부(11)는 호스트 기기(2)에 대하여 호스트 데이터의 기입 완료 통지를 행한 후에 행하도록 하면 좋다. 그렇게 함으로써 호스트 기기(2)로부터 보아서 호스트 데이터의 기입 액세스 속도를 향상시킬 수 있고, 호스트 기기(2)측의 어플리케이션 등의 처리도 고속화할 수 있다.
도 10에 호스트 기기(2)와 메모리 카드(1)(제어부(11))의 통신예를 도시한다.
호스트 기기(2)가 기입 커맨드를 발행하면 메모리 카드(1)측에서는 도시와 같이 호스트 데이터의 기입을 행한다. 제어부(11)로서는 도 6의 스텝 F103의 처리를 행하게 된다. 이 스텝 F103에서 호스트 데이터의 기입을 행하면, 그 완료에 따라, 제어부(11)는 호스트 기기(2)에 대하여 완료 통지를 행한다.
그리고 그 직후, 다음 페이지가 로어 페이지가 아닌 경우에는, 스텝 F105의 처리로서 관리 정보 기입을 행하도록 한다.
따라서, 도 10으로부터 알 수 있는 바와 같이, 관리 정보 기입은, 호스트 기기(2)로부터의 기입 요구가 없는 기간에 행해지게 된다. 그 결과, 어퍼 페이지에의 관리 정보의 기입에 필요로 하는 시간은 호스트 기기(2)로부터 본 기입 액세스시간에 포함되지 않고, 호스트 기기(2)에서 보아서 고속 액세스가 실현된다.
그리고, 호스트 기기(2)로부터 다음 기입 커맨드가 발행되었을 때는, 호스트 데이터의 기입은 로어 페이지부터 행해지게 된다.
이렇게 제어부(11)는, 데이터 기입 요구에 대한 기입 완료를 호스트 기기(2)에 통지한 후에, 필요가 있으면, 로어 페이지 직전의 물리 페이지까지, 관리 정보의 기입을 실행시키는 것도, 호스트 기기(2)로부터 본 기입 액세스 시간의 단축에 유효하다.
<4. 관리 정보 읽기 처리>
상술한 바와 같이, 호스트 데이터의 기입 시에는 어퍼 페이지에 관리 정보가 기입되는 일이 있다. 여기에서는 제어부(11)가 관리 정보를 판독하는 경우의 동작예를 설명한다.
도 11에 제어부(11)의 관리 정보 읽기 처리예를 도시하고 있다.
제어부(11)는 필요에 따라서 도 11의 처리에서 불휘발성 메모리(15)에 기억시킨 관리 정보를 읽어들일 수 있다.
또한, 여기에서는 단순히 목적으로 하는 관리 정보를 검색하는 처리예를 나타낸다. 관리 정보의 하나로서 논리·물리 어드레스 변환 테이블이 있다고 앞서 설명했지만, 논리·물리 어드레스 변환 테이블을 재구축할 경우의 처리는 상세히 후술한다.
우선 제어부(11)는 스텝 F201에서, 관리 정보의 읽기를 행하고자 하는 대상의 물리 블록 PBx에 대해서 최종 사용 완료 페이지 PPe의 검색을 행한다. 예를 들어 2분 검색 등으로서 최종 사용이 완료된 물리 페이지 PPe를 찾을 수 있다.
물리 블록 PB는 물리 페이지 PP0부터 순서대로 사용되는 것으로서, 최종 사용이 완료된 물리 페이지 PPe란, 그 시점에서 과거에 최신 데이터 기입이 행해진 물리 페이지 PP이다.
도 12의 A에는, 과거에 물리 페이지 PP9까지 데이터 기입이 행해진 물리 블록 PBx를 나타내고 있지만, 이 경우, 물리 블록 PBx는 화살표의 방향으로 각 물리 페이지 PP가 순서대로 사용되어서 기입이 행해진 것이다. 그리고 최종 사용이 완료된 물리 페이지 PPe란, 물리 페이지 PP9가 된다.
2분 검색이란, 예를 들어 중앙의 물리 페이지 PP를 확인하면서 최종 사용이 완료된 물리 페이지 PPe를 탐색하는 방법이다.
1개의 물리 블록 PB가 16개의 물리 페이지 PP0 내지 PP16으로 구성된다고 해서, 도 12의 A에서 말하자면, 우선, 예를 들어 물리 페이지 PP7을 확인한다. 물리 페이지 PP7이 기입 완료이면, 최종 사용이 완료된 물리 페이지 PPe는 물리 페이지 PP7 내지 PP15 중 어느 하나다. 그리고 다음으로 물리 페이지 PP11을 확인한다. 물리 페이지 PP11이 미사용이면, 최종 사용이 완료된 물리 페이지 PPe는 물리 페이지 PP7 내지 PP10 중 어느 하나다. 그리고 다음으로 물리 페이지 PP9를 확인한다. 이렇게 중앙의 물리 페이지 PP를 확인하면서 따라가서, 최종 사용이 완료된 물리 페이지 PPe를 탐색하는 것이다.
최종 사용이 완료된 물리 페이지 PPe를 발견하면, 제어부(11)는 스텝 F202에서, 그 최종 사용이 완료된 물리 페이지 PP가 로어 페이지인지 여부를 판단한다.
로어 페이지가 아니면, 제어부(11)는 스텝 F203에서 가장 가까운 비 로어 페이지(즉, 협의의 MLC인 경우에는 어퍼 페이지)를, 물리 어드레스가 빠른 쪽으로 거슬러 올라가서 검색한다.
스텝 F204에서 제어부(11)는, 비 로어 페이지에 목적으로 하는 관리 정보가 기억되어 있는지 여부를 판단한다.
스텝 F201에서 검색한 최종 사용이 완료된 물리 페이지 PPe가 어퍼 페이지인 경우에는, 이 최종 사용이 완료된 물리 페이지 PPe에 읽기를 목적으로 하는 관리 정보가 기억되어 있는지 여부를 판단하게 된다.
또한, 스텝 F201에서 검색한 최종 사용이 완료된 물리 페이지 PPe가 로어 페이지이며, 스텝 F203에서 가장 가까운 어퍼 페이지를 검색한 경우에는, 이 검색한 어퍼 페이지에 읽기를 목적으로 하는 관리 정보가 기억되어 있는지 여부를 판단한다.
또한, 여기에서 말하는 목적으로 하는 관리 정보란, 금회의 처리에서 판독하려고 하는 관리 정보의 종별을 말한다. 예를 들어, 관리 정보로서 기억시킨 저작권 정보를 판독하는 것을 목적으로 하는 처리라면, 목적으로 하는 관리 정보란 저작권 정보가 된다.
그리고 목적으로 하는 관리 정보가 존재하면, 스텝 F206으로 진행하여, 당해 물리 페이지로부터 관리 정보를 읽어들여서 처리를 종료한다.
도 12의 B는 최종 사용이 완료된 물리 페이지 PPe가 어퍼 페이지인 물리 페이지 PP9이었을 경우를 도시하고 있다. 이 경우, 최종 사용이 완료된 물리 페이지 PPe(PP9)에 목적으로 하는 관리 정보 MGT가 기억되어 있으면, 당해 물리 페이지 PP9로부터 도시와 같이 그것을 읽어들이게 된다.
도 12의 C는 최종 사용이 완료된 물리 페이지 PPe가 로어 페이지인 물리 페이지 PP10이었을 경우를 도시하고 있다. 이 경우, 최종 사용이 완료된 물리 페이지 PPe(PP10) 바로 근처의 어퍼 페이지를 검색하고, 물리 페이지 PP9에서 목적으로 하는 관리 정보 MGT의 유무를 확인한다. 그리고 목적으로 하는 관리 정보 MGT가 기억되어 있으면, 당해 물리 페이지 PP9로부터 도시한 바와 같이 그것을 읽어들이게 된다.
한편, 스텝 F204에서 목적으로 하는 관리 정보가 기억되어 있지 않다고 판단되었을 때는, 스텝 F205에서 가장 빠른 물리 어드레스의 비 로어 페이지에 이르렀다고 판단될 때까지, 스텝 F203에서 역순에 가장 가까운 비 로어 페이지를 검색하고, 마찬가지로 목적으로 하는 관리 정보가 존재하는지 여부를 판단해 간다. 그리고 목적으로 하는 관리 정보가 발견되면, 스텝 F205에서 그 관리 정보를 읽어들인다.
또한, 스텝 F205에서 비 로어 페이지의 최초의 물리 페이지라고 판단될 경우란, 예를 들어 도 12의 예에서 말하면, 가장 물리 어드레스가 빠른 어퍼 페이지(PP4)까지 비 로어 페이지를 검색해도, 목적으로 하는 관리 정보가 기억되어 있지 않다고 판단되는 경우이다.
이 경우, 제어부(11)는 스텝 F207에서, 목적으로 하는 관리 정보는 없는 것으로 하여 처리를 종료한다.
이러한 관리 정보 읽기 처리에서는, 최신의 관리 정보를 효율적으로 단시간에 판독할 수 있게 된다. 관리 정보로는 논리·물리 어드레스 변환 테이블 이외에, 예를 들어 저작권 정보나 에러 정보 등, 각종 것이 상정되지만, 예를 들어 최신의 에러 정보를 읽어들이고 싶을 경우, 이 에러 정보를 목적으로 하는 관리 정보로 해서 도 11의 처리를 행하면, 효율적으로 에러 정보를 판독할 수 있게 된다.
즉, 상술한 데이터 기입 처리에 의하면, 호스트 데이터의 기입에는 로어 페이지와 어퍼 페이지 양쪽이 사용되지만, 관리 정보의 기입에 사용되는 것은 비 로어 페이지(MLC에서는 어퍼 페이지만)가 된다. 따라서, 최종 사용이 완료된 물리 페이지 PPe로부터 어퍼 페이지만을 검색함으로써, 최신의 관리 정보를 신속히 찾아낼 수 있다. 단순히 그 시점에서 가장 가까운 과거에 기억된 논리·물리 어드레스 변환 테이블을 읽어들이고 싶을 경우에도 적합한 처리가 된다.
<5. 논리·물리 어드레스 변환 테이블에의 적용예>
이상의 실시 형태에 있어서, 관리 정보로서 논리·물리 어드레스 변환 테이블을 어퍼 페이지에 기억시킬 경우에 대해서 설명한다.
본 실시 형태에서는, 물리 블록 PB에는 논리 어드레스가 비연속 호스트 데이터를 연속된 물리 페이지 PP에 기입하는 것을 허용하고 있다.
종전의 일반적인 기입 방식의 하나로는, 물리 블록 PB 내에 기입하는 호스트 데이터는 논리 어드레스가 연속이 되도록 하는 방식이 있다. 이렇게 해 두면, 다음번, 물리 블록 PB 내에 기입된 호스트 데이터의 정보를 취득하는 경우에, 물리 블록 PB 내의 최종 사용 완료된 물리 페이지 PP를 찾아내고, 그 물리 페이지 PP의 용장 에리어에 기입되어 있는 호스트 데이터의 논리 어드레스 정보를 판독함으로써 당해 물리 블록 PB에 어느 범위의 논리 어드레스의 호스트 데이터가 기억되어 있는지를 알 수 있다. 즉 그렇게 하면, 제어부(11)가 당해 물리 블록 PB에 관한 논리 어드레스와 물리 어드레스의 대응 관계를 간단하게 파악할 수 있다.
단, 이 방식의 경우, 물리 블록 PB에 기입하는 호스트 데이터는 항상 논리 어드레스가 연속일 필요가 있기 때문에, 호스트 장치(2)가 비연속 논리 어드레스의 호스트 데이터를 기입하려는 경우나, 이미 기입 완료된 어떤 논리 어드레스의 호스트 데이터를 갱신할 경우, 물리 블록 PB를 효율적으로 사용할 수 없다. 이 경우, 물리 블록 PB 내에서 논리 어드레스가 연속된 상태가 되도록, 어떤 물리 블록 PBx로부터 다른 물리 블록 PBy에 호스트 데이터를 카피하는 소위 가비지 콜렉션이 다발하여, 디바이스 수명 및 기입 속도를 현저하게 저하시켜버린다.
다른 기입 방식으로서, 물리 블록 PB에는 비연속 논리 어드레스를 갖는 호스트 데이터를 연속으로 기입하는 것을 허용하는 방식이 있다.
이 경우, 비연속적인 호스트 데이터의 기입이나, 기억 완료된 어떤 논리 어드레스의 호스트 데이터의 재기입이 요구되어도, 가비지 콜렉션을 행하지 않고 대응할 수 있다. 즉, 기입 요구된 호스트 데이터를, 물리 블록 PB 내의 최종 사용 완료된 물리 페이지의 다음 물리 페이지 PP에 기입하면 된다.
그러나, 이 경우, 제어부(11)가 어떤 물리 블록 PB에 기억되어 있는 호스트 데이터의 논리 어드레스와 물리 어드레스의 대응 관계를 알기 위해서는, 당해 물리 블록 PB의 모든 기입 완료된 물리 페이지 PP를 판독하고, 각 물리 페이지 PP의 용장 에리어에 기입된 논리 어드레스의 정보를 취득하여, 대응 관계의 정보(즉, 논리·물리 어드레스 변환 테이블)를 구축할 필요가 있다. 결과적으로 호스트 데이터의 기입 속도, 판독 속도를 현저하게 저하시켜버린다.
본 실시 형태에서는 물리 블록 PB에는 비연속 논리 어드레스를 갖는 호스트 데이터를 연속으로 기입하는 것을 허용하는 방식을 사용하고 있다. 이에 의해 상기 가비지 콜렉션의 기회를 감소시킨다는 이점을 향수할 수 있다.
게다가, 호스트 데이터의 기입 시에 상술한 바와 같이, 다음번 기입이 로어 페이지부터 개시되도록, 필요에 따라 관리 정보(여기서는 논리·물리 어드레스 변환 테이블)를 기입함으로써, 논리·물리 어드레스 변환 테이블의 생성·갱신을 위한 동작을 효율적으로 단시간에 실행할 수 있게 된다.
이 때문에 제어부(11)는 물리 블록 PB 내에서, 최종 사용이 완료된 물리 페이지 PPe부터 선두측의 물리 페이지 PP를 향해서, 순서대로, 물리 페이지 내에 논리·물리 어드레스 변환 테이블이 기억되어 있는지 여부를 검색하고, 최초로 발견된 논리·물리 어드레스 변환 테이블을 취득하는 처리를 행한다. 그리고 취득한 논리·물리 어드레스 변환 테이블 및 논리·물리 어드레스 변환 테이블이 기억되어 있지 않았던 물리 페이지 PP의 논리 어드레스 정보를 사용하여, 논리·물리 어드레스 변환 테이블을 갱신한다.
도 13의 A, 도 14의 A에서 논리·물리 어드레스 변환 테이블의 예를 설명한다.
도 13의 A는 어떤 물리 블록 PBx의 각 물리 페이지 PP0 내지 PP15의 기억 상태를 도시하고 있다.
가령, 1개의 물리 페이지 PP는 16Kbyte인 것으로 한다. 또한 호스트 데이터는 4Kbyte 단위로 논리 어드레스가 부여되어 있는 것으로 한다. 도면의 프레임 중의 수치는 논리 어드레스(LBA)를 나타내고 있다. 또한 (L)은 로어 페이지, (U)는 어퍼 페이지를 나타내고 있다.
이 도면의 예는, 이 물리 블록 PBx에 대하여, 어떤 시점의 기입 요구에 의해 최초로 물리 페이지 PP0에 논리 어드레스 「1」 「2」 「3」 「4」의 호스트 데이터가 기입된 것이다. 그 때, 다음 물리 페이지 PP1은 로어 페이지이므로 관리 정보 기입은 행해지지 않는다.
다음 기입 요구에서는, 동일하게 논리 어드레스 「1」 「2」 「3」 「4」의 호스트 데이터가 물리 페이지 PP1에 기입되어 있다. 이때에도 다음 물리 페이지 PP2는 로어 페이지이므로 관리 정보 기입은 행해지지 않는다.
또한 다음 기입 요구에서, 논리 어드레스 「1000」 「1001」 「1002」 「1003」의 호스트 데이터가 물리 페이지 PP2에 기입되어 있다. 이때에도 다음 물리 페이지 PP3은 로어 페이지이므로 관리 정보 기입은 행해지지 않는다.
또한 다음 기입 요구에서, 논리 어드레스 「3000」 내지 「3011」의 호스트 데이터가 물리 페이지 PP3 내지 PP5에 기입되어 있지만, 이때에도 다음 물리 페이지 PP6은 로어 페이지이므로 관리 정보 기입은 행해지지 않는다.
그 후, 물리 페이지 PP6으로의 논리 어드레스 「9」 「10」 「11」 「12」의 호스트 데이터 기입, 물리 페이지 PP7로의 논리 어드레스 「100」 「101」 「102」 「103」의 호스트 데이터의 갱신 기입이 행해지고, 물리 페이지 PP8, PP9에는 관리 정보 MGT의 기입이 행해진다.
이 도 13의 A의 기억 상태에 대응하는 논리·물리 어드레스 변환 테이블은, 예를 들어 도 14의 A와 같이, 논리 어드레스(LBA)와 물리 페이지 PP(Physical Page)를 대응시킨 테이블이 된다.
예를 들어 논리 어드레스 「1」을 선두로 하는 논리 어드레스 「1」 「2」 「3」 「4」의 최신 호스트 데이터가, 물리 페이지 PP1에 기억되어 있는 것이 나타나 있다.
또한, 논리 어드레스 「9」를 선두로 하는 논리 어드레스 「9」 「10」 「11」 「12」의 최신 호스트 데이터가, 물리 페이지 PP6에 기억되어 있는 것이 나타나 있다.
기타도 마찬가지로, 각 논리 어드레스의 최신의 호스트 데이터가 기억된 물리 페이지 PP가 나타나 있다.
이렇게 논리·물리 어드레스 변환 테이블에는, 각 물리 페이지 PP와, 그 물리 페이지 PP에 기억된 호스트 데이터의 논리 어드레스와의 대응 관계를 나타내는 정보가 기억되게 된다.
이러한 논리·물리 어드레스 변환 테이블이 구축됨으로써, 제어부(11)는 호스트 기기(2)가 논리 어드레스에서 지정하는 호스트 데이터가, 물리 페이지 PBx에 있어서 어느 물리 페이지 PP에 기억되어 있는지를 파악할 수 있다.
설명 상, 논리·물리 어드레스 변환 테이블에 엔트리된 개개의 대응 정보를 「논리/물리 대응 데이터」라고 한다.
또한, 논리·물리 어드레스 변환 테이블로는 도 14의 B에 도시한 바와 같이, 또한 물리 블록 PB(Physical Block)의 번호도 대응시켜도 좋다.
관리 정보 MGT가 기억되는 것은, 호스트 데이터의 기억이 완료된 다음 물리 페이지 PP가 로어 페이지가 아닌 경우이기 때문에, 어떤 물리 블록 PBx의 논리·물리 어드레스 변환 테이블이, 반드시 그 물리 블록 PBx 내에 기억된다고는 한정할 수 없다. 이 때문에, 예를 들어 물리 블록 PBx의 논리·물리 어드레스 변환 테이블을, 다른 물리 블록 PBy의 물리 페이지 PP 내에서의 관리 정보 기입 기회에 기입하는 것을 허용해도 좋다. 그러한 경우를 고려하면, 도 14의 B와 같이, 각 논리 어드레스에 대응하고, 물리 블록 PB의 번호와 물리 페이지 PP의 번호를 관리하는 것이 적절해진다.
이렇게 논리·물리 어드레스 변환 테이블을 관리 정보로서 물리 페이지 PP에 기입하는 경우, 제어부(11)는 필요 시에 이하와 같이 최신의 논리·물리 어드레스 변환 테이블을 취득할 수 있다.
도 15는 제어부(11)에 의한 논리·물리 어드레스 변환 테이블 읽기 처리를 도시하고 있다. 제어부(11)는 전원 투입 시나, 상기 도 6의 스텝 F102의 처리의 준비를 행하는 시점, 혹은 다른 임의의 시점에서, 이 도 15의 논리·물리 어드레스 변환 테이블 읽기 처리를 행할 수 있다.
우선 제어부(11)는 스텝 F301에서 논리·물리 어드레스 변환 테이블을 구축하는 대상의 물리 블록 PBx에 대해서 최종 사용 완료 페이지 PPe의 검색을 행한다. 예를 들어, 2분 검색에 의해 최종 사용이 완료된 물리 페이지 PPe를 찾는다. 도 13의 A의 경우, 최종 사용이 완료된 물리 페이지 PPe는 물리 페이지 PP9가 된다.
최종 사용 완료된 물리 페이지 PPe를 발견하면, 제어부(11)는 스텝 F302에서 그 최종 사용이 완료된 물리 페이지 PPe의 판독을 실행하고, 기억되어 있는 데이터 내용을 확인한다. 특히, 최종 사용이 완료된 물리 페이지 PPe에 논리·물리 어드레스 변환 테이블이 포함되어 있는지 여부를 확인한다.
최종 사용이 완료된 물리 페이지 PPe에 논리·물리 어드레스 변환 테이블이 기억되어 있었을 경우, 제어부(11)는 스텝 F303으로부터 F307로 진행하고, 당해 논리·물리 어드레스 변환 테이블을 도입한다.
예를 들어, 도 13의 A의 경우, 최종 사용이 완료된 물리 페이지 PPe는 물리 페이지 PP9인데, 여기의 관리 테이블 MGT로서 논리·물리 어드레스 변환 테이블이 기억되어 있었다고 하자.
이러한 경우, 제어부(11)는 도 13의 A의 화살표 R로서 나타는 바와 같이, 검색된 최종 사용이 완료된 물리 페이지 PPe에 기억되어 있었던 논리·물리 어드레스 변환 테이블을 도입하게 된다.
이 최종 사용이 완료된 물리 페이지 PPe에 기억되어 있었던 논리·물리 어드레스 변환 테이블은, 그 시점의 당해 물리 블록 PBx에 기억된 모든 호스트 데이터에 관한 논리/물리 대응 데이터를 포함하는 최신의 것이다.
예를 들어, 데이터 기입 시에 도 6의 스텝 F102에서는, 이제부터 기입하려고 하는 호스트 데이터에 대해서, 논리/물리 대응 데이터를 생성하고, 논리·물리 어드레스 변환 테이블에 엔트리한다. 데이터 기입 시마다, 도 6의 스텝 F102의 처리가 행해짐으로써, 예를 들어 도 13의 A의 물리 페이지 PP7에 논리 어드레스 「100」 「101」 「102」 「103」을 기입할 때는, 제어부(11)가 스텝 F102에서 갱신한 논리·물리 어드레스 변환 테이블은 도 14의 A와 같이 되어 있다. 따라서, 물리 페이지 PP8, PP9에 기입된 논리·물리 어드레스 변환 테이블은, 물리 페이지 PP7까지의 논리/물리 대응 데이터가 엔트리된 최신의 상태로 되어 있다.
즉, 이렇게 최종 사용이 완료된 물리 페이지 PPe로부터 논리·물리 어드레스 변환 테이블을 읽어들인 경우, 최신의 논리·물리 어드레스 변환 테이블이 얻어지게 된다.
한편, 최종 사용이 완료된 물리 페이지 PPe에 논리·물리 어드레스 변환 테이블이 포함되어 있지 않은 경우, 제어부(11)는 스텝 F303으로부터 F304로 진행하고, 그 물리 페이지 PP(이 경우, 최종 사용이 완료된 물리 페이지 PPe)에 기억되어 있는 호스트 데이터의 논리 어드레스 LBA를 확인해서 기억한다.
그리고 당해 물리 페이지 PP가 대상의 물리 블록 PBx의 선두의 물리 페이지 PP0가 아니면, 스텝 F305로부터 F306으로 진행하고, 하나 이전의 물리 페이지 PP의 판독을 행하여, 스텝 F303에서 그 물리 페이지 PP에 논리·물리 어드레스 변환 테이블이 기억되어 있는지 여부를 확인한다.
만약 그 물리 페이지 PP에도 논리·물리 어드레스 변환 테이블이 기억되어 있지 않으면, 또한 제어부(11)는 스텝 F304에서 그 물리 페이지 PP에 기억되어 있는 호스트 데이터의 논리 어드레스 LBA를 확인해서 기억한다. 그리고 당해 물리 페이지 PP가 대상의 물리 블록 PBx의 선두의 물리 페이지 PP0가 아니면, 스텝 F305로부터 F306으로 진행하고, 또한 하나 이전의 물리 페이지 PP의 판독을 행하여, 스텝 F303에서 그 물리 페이지 PP에 논리·물리 어드레스 변환 테이블이 기억되어 있는지 여부를 확인한다.
즉, 스텝 F304→F305→F306→F303의 처리는, 최종 사용이 완료된 물리 페이지 PPe부터 순서대로 이전 물리 페이지 PP를 거슬러 올라가, 각 물리 페이지 PP의 호스트 데이터의 논리 어드레스를 기억하면서, 논리·물리 어드레스 변환 테이블이 기억되어 있는 물리 페이지 PP를 찾아내는 처리가 된다.
이 과정에서, 어떤 물리 페이지 PP에 논리·물리 어드레스 변환 테이블이 존재하는 것을 확인하면, 제어부(11)는 스텝 F303으로부터 F307로 진행하고, 그 물리 페이지 PP로부터 논리·물리 어드레스 변환 테이블을 도입한다. 그리고 이 경우, 도입한 논리·물리 어드레스 변환 테이블을 최신 상태로 갱신한다.
예를 들어, 도 13의 B에서는 최종 사용이 완료된 물리 페이지 PPe=물리 페이지 PP10이며, 이 물리 페이지 PP10에는 논리·물리 어드레스 변환 테이블이 존재하지 않는 경우를 도시하고 있다.
이 경우, 화살표 S로서 나타내는 바와 같이 하나 이전의 물리 페이지 PP의 확인을 행해 간다. 이 예에서는 하나 이전의 물리 페이지 PP9에 기억된 관리 정보MGT에 논리·물리 어드레스 변환 테이블이 포함되어 있었다고 하면, 화살표 R로서 나타내는 바와 같이 물리 페이지 PP9로부터 논리·물리 어드레스 변환 테이블을 도입하게 된다.
이렇게 최종 사용이 완료된 물리 페이지 PPe 이외의 물리 페이지 PP에 기억되어 있었던 논리·물리 어드레스 변환 테이블은, 그 시점의 당해 물리 블록 PBx에 기억된 모든 호스트 데이터에 관한 논리/물리 대응 데이터를 포함하는 것이 아니다. 예를 들어 이 도 13의 B의 예에서는, 도입한 논리·물리 어드레스 변환 테이블은 물리 페이지 PP10에 관한 논리/물리 대응 데이터는 포함되어 있지 않다.
따라서 스텝 F307에서는, 이 물리 페이지 PP10에 관한 논리/물리 대응 데이터를 논리·물리 어드레스 변환 테이블에 반영시키도록 논리·물리 어드레스 변환 테이블의 갱신을 행한다.
이에 의해, 최신 상태의 논리·물리 어드레스 변환 테이블이 얻어진다. 이 경우, 최신 논리·물리 어드레스 변환 테이블은, 도 14의 A의 내용에 물리 페이지 PP10과 논리 어드레스 「5」 「6」 「7」 「8」을 대응시키는 논리/물리 대응 데이터를 첨가한 도 14의 C와 같아진다.
또한, 스텝 F305에서 선두의 물리 페이지 PP0이라고 판단되는 경우란, 당해 물리 블록 PBx에는 어느 물리 페이지 PP에도 논리·물리 어드레스 변환 테이블이 기억되어 있지 않은 경우이다.
이 경우 제어부(11)는 스텝 F307에서 논리·물리 어드레스 변환 테이블을 새롭게 구축하게 된다.
즉, 최종 사용이 완료된 물리 페이지 PPe로부터 선두의 물리 페이지 PP0까지의 각 물리 페이지 PP에 대해서 스텝 F304에서 기억한 논리 어드레스를 사용하여, 각 논리 어드레스에 관한 논리/물리 대응 데이터를 생성하고, 논리·물리 어드레스 변환 테이블을 생성한다. 이에 의해, 최신 상태의 논리·물리 어드레스 변환 테이블이 얻어진다.
예를 들어, 전원 투입 시나, 데이터 기입의 준비 등을 위해서 논리·물리 어드레스 변환 테이블을 취득하는 것이 필요한 경우에는, 이상과 같이 최신의 논리·물리 어드레스 변환 테이블을 취득하면 된다.
특히, 최종 사용이 완료된 물리 페이지 PPe로부터 논리·물리 어드레스 변환 테이블을 발견할 수 있었던 경우에는, 논리·물리 어드레스 변환 테이블을 읽어들이기만 하면 된다. 또한 최종 사용이 완료된 물리 페이지 PPe로부터 거슬러 올라간 물리 페이지 PP에서 논리·물리 어드레스 변환 테이블이 발견된 경우에는, 읽어들인 논리·물리 어드레스 변환 테이블에, 그때까지의 각 물리 페이지 PP의 내용을 반영시키도록 갱신하면 된다.
즉, 본 실시 형태의 경우, 논리·물리 어드레스 변환 테이블이 관리 정보 MGT의 하나로서 기입되어 있음으로써, 최신의 논리·물리 어드레스 변환 테이블을 얻기 위해서 전체 물리 페이지를 탐색해야만 하는 사태가 그다지 발생하지 않고, 최신의 논리·물리 어드레스 변환 테이블의 취득을 신속히 할 수 있을 경우가 많아진다는 이점이 얻어진다.
특히 호스트 기기(2)로부터의 기입 요구로서, 미세한 크기의 호스트 데이터의 기입이 많은 경우, 어퍼 페이지에 논리·물리 어드레스 변환 테이블이 기입될 가능성이 높아진다. 이 경우, 최신의 논리·물리 어드레스 변환 테이블의 신속한 판독에 유리해진다.
또한, 기입 요구에 따라서 상술한 도 6의 처리가 행하여지는 경우에는, 스텝 F102에서는, 이상과 같이 취득한 최신의 논리·물리 어드레스 변환 테이블에, 금회 기입을 행하는 호스트 데이터의 내용을 반영한 갱신을 실시하면 된다. 따라서, 논리·물리 어드레스 변환 테이블이 관리 정보로서 기억되어 있는 것은, 데이터 기입 처리의 효율화에도 유효하다.
또한, 논리·물리 어드레스 변환 테이블이 물리 페이지 PP에 기입되어, 상기 와 같이 그것을 판독해서 최신의 논리·물리 어드레스 변환 테이블을 구축할 수 있다는 것은, 도중 전원 차단 등의 이상 사태에 있어서도 효율적으로 복귀를 행할 수 있고, 데이터의 신뢰성을 높일 수 있는 것도 된다.
<6. 변형예>
이상, 실시 형태에 대해서 설명했지만, 실시 형태의 구성, 처리로서는 다양한 변형예를 생각할 수 있다.
실시 형태에서는 주로 MLC(협의)의 경우로 설명했지만, 도 5의 B와 같은 TLC의 경우도 본 발명의 기술은 적용할 수 있다. 이 경우, 도 6의 스텝 F104의 판단에서 「로어 페이지가 아니다」란, 어퍼 페이지나 미들 페이지의 경우로 보면 된다. 즉, 다음 물리 페이지 PP가 미들 페이지나 어퍼 페이지이면, 스텝 F105에서 관리 정보 기입을 행하도록 한다.
또한, 도 11의 스텝 F203, F205의 「비 로어 페이지」란, 어퍼 페이지 또는 미들 페이지로 보면 된다.
즉 TLC의 경우, 로어 페이지에 비하여, 미들 페이지, 어퍼 페이지는 기입 속도가 느려지기 때문에, 미들 페이지, 어퍼 페이지를 관리 정보의 기입에 사용하기로 한다.
또한, 실시 형태에서 제어부(11)는 다음번 데이터 기입 요구에 따른 데이터 기입이 로어 페이지부터 개시되도록, 로어 페이지 직전의 물리 페이지까지 관리 정보의 기입을 실행시키기로 했지만, 반드시 관리 정보가 아니어도 좋다.
예를 들어, 더미 데이터, 랜덤 데이터나, 통상 호스트 기기(2)로부터는 직접 참조하지 않는 데이터 등을 어퍼 페이지나 미들 페이지에 기입해도 좋다. 즉, 비호스트 데이터의 기입을 실행시키면 된다. 그러한 의미에서 도 6의 스텝 F105에서는, 비호스트 데이터로서 다양한 정보 혹은 의미가 없는 데이터의 기입을 실행하는 것으로 해도 좋다.
또한, 실시 형태에서는 메모리 카드(1)의 예를 들었지만, 불휘발성 메모리(15)와, 제어부(11)가 별체의 구성인 경우에서도 본 발명의 기술은 적용 가능하다.
본 발명의 기술은 각종 메모리 카드, SSD, eMMC 등에 적용할 수 있다.
또한, 본 기술은 이하와 같은 구성도 채용할 수 있다.
(1) 1개의 메모리 셀에 2비트 이상의 다치 기억이 행해지고, 물리 어드레스가 설정되는 물리 페이지로서 적어도 다치 기억을 위한 하위 페이지와 상위 페이지를 갖고, 각 물리 페이지가 물리 어드레스 순으로 사용되어서 데이터 기입이 행해지는 불휘발성 메모리에 대하여, 호스트 기기로부터의 데이터 기입 요구에 따라 공급된 호스트 데이터의 기입 제어를 행하면서, 또한 다음번 데이터 기입 요구에 따른 데이터 기입이 하위 페이지부터 개시되도록, 하위 페이지 직전의 물리 페이지까지 데이터 기입을 실행시키는 제어부를 구비한 제어 장치.
(2) 상기 (1)에 있어서, 상기 제어부는, 데이터 기입 요구에 따른 호스트 데이터의 기입이 하위 페이지 직전의 물리 페이지에 이르지 않고 종료된 경우에는, 하위 페이지 직전의 물리 페이지까지 비호스트 데이터의 기입을 실행시키는 제어 장치.
(3) 상기 (1) 또는 (2)에 있어서, 상기 제어부는, 데이터 기입 요구에 따른 호스트 데이터의 기입이 하위 페이지 직전의 물리 페이지에 이르지 않고 종료된 경우에는, 데이터 기입 요구에 대한 기입 완료를 상기 호스트 기기에 통지한 후에, 하위 페이지 직전의 물리 페이지까지 비호스트 데이터의 기입을 실행시키는 제어 장치.
(4) 상기 (2) 또는 (3)에 있어서, 상기 비호스트 데이터는 상기 제어부가 사용하는 관리 정보인 제어 장치.
(5) 상기 (4)에 있어서, 상기 제어부는 상기 불휘발성 메모리에 대하여, 하위 페이지 이외의 물리 페이지의 검색을 행해서 상기 관리 정보를 판독하는 제어를 행하는 제어 장치.
(6) 상기 (2) 내지 (5) 중 어느 하나에 있어서, 상기 비호스트 데이터는, 호스트 데이터의 논리 어드레스와 상기 불휘발성 메모리 상의 물리 어드레스와의 대응을 나타내는 논리·물리 어드레스 변환 테이블인 제어 장치.
(7) 상기 (6)에 있어서, 상기 불휘발성 메모리에서는, 복수의 물리 페이지에 의해 물리 블록이 형성되어 있고,
상기 제어부는,
상기 물리 블록 내에서, 최종 사용이 완료된 물리 페이지부터 선두측의 물리 페이지를 향하여 순서대로 물리 페이지 내에 상기 논리·물리 어드레스 변환 테이블이 기억되어 있는지 여부를 검색하여, 최초로 발견된 상기 논리·물리 어드레스 변환 테이블을 취득하는 처리를 행하고,
취득한 논리·물리 어드레스 변환 테이블 및 논리·물리 어드레스 변환 테이블이 기억되어 있지 않은 물리 페이지의 논리 어드레스 정보를 사용하여, 최신 논리·물리 어드레스 변환 테이블을 취득하는 제어 장치.
(8) 상기 (1) 내지 (7) 중 어느 하나에 있어서, 상기 불휘발성 메모리는 다치 NAND형 플래시 메모리인 제어 장치.
1: 메모리 카드
2: 호스트 기기
11: 제어부
12: 인터널 RAM
13: 디바이스 인터페이스
14: 버퍼 RAM
15: 불휘발성 메모리

Claims (10)

  1. 제어 장치로서,
    1개의 메모리 셀에 2비트 이상의 다치 기억이 행해지고, 물리 어드레스가 설정되는 물리 페이지로서 적어도 다치 기억을 위한 하위 페이지와 상위 페이지를 갖고, 각 물리 페이지가 물리 어드레스 순으로 사용되어서 데이터 기입이 행해지는 불휘발성 메모리에 대하여, 호스트 기기로부터의 데이터 기입 요구에 따라 공급된 호스트 데이터의 기입 제어를 행하면서, 또한 다음번 데이터 기입 요구에 따른 데이터 기입이 하위 페이지부터 개시되도록, 하위 페이지 직전의 물리 페이지까지 데이터 기입을 실행시키는 제어부를 구비한, 제어 장치.
  2. 제1항에 있어서, 상기 제어부는, 데이터 기입 요구에 따른 호스트 데이터의 기입이 하위 페이지 직전의 물리 페이지에 이르지 않고 종료된 경우에는, 하위 페이지 직전의 물리 페이지까지 비호스트 데이터의 기입을 실행시키는, 제어 장치.
  3. 제1항에 있어서, 상기 제어부는, 데이터 기입 요구에 따른 호스트 데이터의 기입이 하위 페이지 직전의 물리 페이지에 이르지 않고 종료된 경우에는, 데이터 기입 요구에 대한 기입 완료를 상기 호스트 기기에 통지한 후에, 하위 페이지 직전의 물리 페이지까지 비호스트 데이터의 기입을 실행시키는, 제어 장치.
  4. 제2항에 있어서, 상기 비호스트 데이터는 상기 제어부가 사용하는 관리 정보인, 제어 장치.
  5. 제4항에 있어서, 상기 제어부는 상기 불휘발성 메모리에 대하여, 하위 페이지 이외의 물리 페이지의 검색을 행해서 상기 관리 정보를 판독하는 제어를 행하는, 제어 장치.
  6. 제2항에 있어서, 상기 비호스트 데이터는 호스트 데이터의 논리 어드레스와 상기 불휘발성 메모리 상의 물리 어드레스와의 대응을 나타내는 논리·물리 어드레스 변환 테이블인, 제어 장치.
  7. 제6항에 있어서, 상기 불휘발성 메모리에서는, 복수의 물리 페이지에 의해 물리 블록이 형성되어 있고,
    상기 제어부는,
    상기 물리 블록 내에서, 최종 사용이 완료된 물리 페이지부터 선두측의 물리 페이지를 향하여 순서대로 물리 페이지 내에 상기 논리·물리 어드레스 변환 테이블이 기억되어 있는지 여부를 검색하여, 최초로 발견된 상기 논리·물리 어드레스 변환 테이블을 취득하는 처리를 행하고,
    취득한 논리·물리 어드레스 변환 테이블 및 논리·물리 어드레스 변환 테이블이 기억되어 있지 않은 물리 페이지의 논리 어드레스 정보를 사용하여, 최신 논리·물리 어드레스 변환 테이블을 취득하는, 제어 장치.
  8. 제1항에 있어서, 상기 불휘발성 메모리는 다치 NAND형 플래시 메모리인, 제어 장치.
  9. 기억 장치로서,
    1개의 메모리 셀에 2비트 이상의 다치 기억이 행해지고, 물리 어드레스가 설정되는 물리 페이지로서 적어도 다치 기억을 위한 하위 페이지와 상위 페이지를 갖고, 각 물리 페이지가 물리 어드레스 순으로 사용되어서 데이터 기입이 행해지는 불휘발성 메모리와,
    호스트 기기로부터의 데이터 기입 요구에 따라 상기 불휘발성 메모리에 대하여 공급된 호스트 데이터의 기입 제어를 행하면서, 또한 다음번 데이터 기입 요구에 따른 데이터 기입이 하위 페이지부터 개시되도록, 하위 페이지 직전의 물리 페이지까지 데이터 기입을 실행시키는 제어부를 구비한, 기억 장치.
  10. 1개의 메모리 셀에 2비트 이상의 다치 기억이 행해지고, 물리 어드레스가 설정되는 물리 페이지로서 적어도 다치 기억을 위한 하위 페이지와 상위 페이지를 갖고, 각 물리 페이지가 물리 어드레스 순으로 사용되어서 데이터 기입이 행해지는 불휘발성 메모리에 대한 데이터 기입 방법으로서,
    호스트 기기로부터의 데이터 기입 요구에 따라 상기 불휘발성 메모리에 대하여 공급된 호스트 데이터의 기입을 행하면서, 또한 다음번 데이터 기입 요구에 따른 데이터 기입이 하위 페이지부터 개시되도록, 하위 페이지 직전의 물리 페이지까지 데이터 기입을 실행하는, 데이터 기입 방법.
KR1020130046708A 2012-05-08 2013-04-26 제어 장치, 기억 장치, 데이터 기입 방법 KR20130125303A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012106830A JP5929485B2 (ja) 2012-05-08 2012-05-08 制御装置、記憶装置、データ書込方法
JPJP-P-2012-106830 2012-05-08

Publications (1)

Publication Number Publication Date
KR20130125303A true KR20130125303A (ko) 2013-11-18

Family

ID=49534164

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130046708A KR20130125303A (ko) 2012-05-08 2013-04-26 제어 장치, 기억 장치, 데이터 기입 방법

Country Status (5)

Country Link
US (1) US9454475B2 (ko)
JP (1) JP5929485B2 (ko)
KR (1) KR20130125303A (ko)
CN (1) CN103389881A (ko)
TW (1) TW201401048A (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103729303B (zh) * 2014-01-20 2017-03-29 飞天诚信科技股份有限公司 一种Flash的数据写入和读取方法
TWI545571B (zh) * 2014-02-18 2016-08-11 慧榮科技股份有限公司 存取快閃記憶體的方法及相關的控制器與記憶裝置
US9529668B2 (en) * 2014-09-26 2016-12-27 Intel Corporation Method and system for using NAND page buffers to improve the transfer buffer utilization of a solid state drive
US10489241B2 (en) * 2015-12-30 2019-11-26 Arteris, Inc. Control and address redundancy in storage buffer
CN107092560B (zh) * 2016-02-17 2020-06-16 建兴储存科技(广州)有限公司 固态储存装置及运用于其中的快闪转换层对应表重建方法
CN109086006B (zh) * 2018-07-24 2021-10-15 浪潮电子信息产业股份有限公司 一种数据读取的方法以及相关装置
CN109189348B (zh) * 2018-10-08 2020-07-24 华中科技大学 基于电荷捕获型3d tlc闪存的存储系统的读性能优化方法
CN110471863A (zh) * 2019-08-13 2019-11-19 深圳忆联信息系统有限公司 基于固态硬盘的数据写入读取方法、装置和计算机设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5162846B2 (ja) 2005-07-29 2013-03-13 ソニー株式会社 記憶装置、コンピュータシステム、および記憶システム
JP2007094921A (ja) 2005-09-30 2007-04-12 Toshiba Corp メモリカードとその制御方法
JP5076411B2 (ja) 2005-11-30 2012-11-21 ソニー株式会社 記憶装置、コンピュータシステム
JP2008112285A (ja) * 2006-10-30 2008-05-15 Toshiba Corp 不揮発性メモリシステム
JP4537420B2 (ja) 2007-04-02 2010-09-01 株式会社リコー Simd型マイクロプロセッサ
JP4356782B2 (ja) 2007-09-12 2009-11-04 ソニー株式会社 メモリ装置、メモリ制御方法、およびプログラム
JP4649503B2 (ja) * 2008-08-13 2011-03-09 株式会社東芝 半導体装置
JP4666081B2 (ja) * 2009-02-09 2011-04-06 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2010198407A (ja) 2009-02-26 2010-09-09 Sony Corp 情報処理装置、およびデータ記録制御方法、並びにプログラム
JP2010282492A (ja) * 2009-06-05 2010-12-16 Toshiba Corp メモリシステム
JP4956593B2 (ja) * 2009-09-08 2012-06-20 株式会社東芝 メモリシステム

Also Published As

Publication number Publication date
US9454475B2 (en) 2016-09-27
CN103389881A (zh) 2013-11-13
JP5929485B2 (ja) 2016-06-08
US20130304971A1 (en) 2013-11-14
TW201401048A (zh) 2014-01-01
JP2013235630A (ja) 2013-11-21

Similar Documents

Publication Publication Date Title
US11507500B2 (en) Storage system having a host directly manage physical data locations of storage device
US9471425B2 (en) Data conditioning to improve flash memory reliability
CN107957961B (zh) 存储设备、存储系统和计算设备
JP4960882B2 (ja) クラスタ自動位置合わせ
US9075740B2 (en) Memory system
JP4787266B2 (ja) スクラッチパッドブロック
JP5929485B2 (ja) 制御装置、記憶装置、データ書込方法
US20070035998A1 (en) Nonvolatile memory apparatus
KR101731408B1 (ko) 플래시 메모리에 데이터를 기록하는 방법 및 관련 메모리 장치 및 플래시 메모리
CN108027764B (zh) 可转换的叶的存储器映射
JP5259138B2 (ja) 記憶装置
US10503433B2 (en) Memory management method, memory control circuit unit and memory storage device
CN107924700B (zh) 自适应多阶段擦除
US8819332B2 (en) Nonvolatile storage device performing periodic error correction during successive page copy operations
US20080294869A1 (en) Systems For Optimizing Page Selection In Flash-Memory Devices
CN115374021A (zh) 管理不对准存储器组件的重新映射的存储器子系统
JP2021026448A (ja) 記憶部システム、記憶部制御装置および記憶部制御方法
JP2012068765A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
TWI747532B (zh) 記憶體裝置
CN111949208A (zh) 数据存储装置的存储器的虚拟物理擦除

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid