JP5929485B2 - 制御装置、記憶装置、データ書込方法 - Google Patents

制御装置、記憶装置、データ書込方法 Download PDF

Info

Publication number
JP5929485B2
JP5929485B2 JP2012106830A JP2012106830A JP5929485B2 JP 5929485 B2 JP5929485 B2 JP 5929485B2 JP 2012106830 A JP2012106830 A JP 2012106830A JP 2012106830 A JP2012106830 A JP 2012106830A JP 5929485 B2 JP5929485 B2 JP 5929485B2
Authority
JP
Japan
Prior art keywords
physical
page
data
logical
writing
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
JP2012106830A
Other languages
English (en)
Other versions
JP2013235630A5 (ja
JP2013235630A (ja
Inventor
裕也 石川
裕也 石川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2012106830A priority Critical patent/JP5929485B2/ja
Priority to TW102108719A priority patent/TW201401048A/zh
Priority to US13/870,722 priority patent/US9454475B2/en
Priority to KR1020130046708A priority patent/KR20130125303A/ko
Priority to CN2013101571119A priority patent/CN103389881A/zh
Publication of JP2013235630A publication Critical patent/JP2013235630A/ja
Publication of JP2013235630A5 publication Critical patent/JP2013235630A5/ja
Application granted granted Critical
Publication of JP5929485B2 publication Critical patent/JP5929485B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Description

本開示は、制御装置、記憶装置、データ書込方法に関する。特に1つのセルに2ビット以上の多値記憶を行う不揮発性メモリに対する書込制御に関する。
特開2009−70098号公報 特開2007−334852号公報 特開2007−193838号公報 特開2007−58840号公報 特開2010−198407号公報 特開2007−94921号公報
例えば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)と、上位ページとしてのアッパーページが設定される。
多値NAND型フラッシュメモリを記憶デバイスとして用いるメモリーデバイスにおいては、書込の速度が高速であるロアーページを使用することで、アクセス速度の高速化を実現することができる。
しかしながら、ロアーページだけを使用した場合、フラッシュメモリとしては、MLCの場合は半分、TLCの場合は1/3の領域しか使用することができなくなってしまう。
さらに、近年の多値NAND型フラッシュメモリは、ロアーページのみを使用することが許可されず、必ずミドルページやアッパーページといった、低速で、物理セルを共有する物理ページのデータへダメージを及ぼす可能性のある物理ページに対しても書込を行わなければならないという制約を持っている。
また、近年のホストデバイスの傾向として、物理ページサイズ以下のような小さいサイズでのアクセスが増加している。このとき、低速なミドルページやアッパーページに書込が行われると、ホスト機器からの書込が極端に遅く見えてしまい、ホストデバイスのパフォーマンスの低下を発生させてしまう。
本開示ではこのような点に鑑みて、多値記憶が行われる不揮発性メモリに対してホストデータ書込を高速に行うことができるようにし、システムパフォーマンスを向上させることを目的とする。
本開示の制御装置は、1つのメモリセルに2ビット以上の多値記憶が行われ、物理アドレスが設定される物理ページとして少なくとも多値記憶のための下位ページと上位ページを有し、複数の下位ページと上位ページで物理ブロックが形成され、各物理ページが物理アドレス順に使用されてデータ書込が行われる不揮発性メモリに対して、ホスト機器からのデータ書込要求に応じて、供給されたホストデータの書込制御を行う制御部を備え、
上記制御部は、データ書込要求に応じたホストデータの書込が、書込先とされた物理ブロック内の下位ページの直前の物理ページに至らないで終了した場合は、上記物理ブロック内の上記下位ページの直前の物理ページまで、非ホストデータの書込を実行させる
本開示の記憶装置は、当該制御装置と上記の不揮発性メモリを有する。
本開示のデータ書込方法は、ホスト機器からのデータ書込要求に応じて、不揮発性メモリに対して、供給されたホストデータの書込を行うとともに、データ書込要求に応じたホストデータの書込が、書込先とされた物理ブロック内の下位ページの直前の物理ページに至らないで終了した場合は、上記物理ブロック内の上記下位ページの直前の物理ページまで、非ホストデータの書込を実行するようにするものである。

このような本開示の技術では、或るデータ書込要求が発生した場合に、ホストデータの書込が行われるが、必要に応じて非ホストデータの書込なども行われて、次回の書込要求に応じたデータ書込が下位ページから開始される状態とする。従って、例えば小サイズのホストデータなどは、下位ページへの書込のみで完了できる場合が多くなる。
本開示によれば、データ書込要求に応じてホストデータが不揮発性メモリに書き込まれる場合に、下位ページから書込が開始されることになる。書込速度の速い下位ページを使用することでホストデータの高速書込が実現される。特にホスト機器から小サイズのデータ書込要求が多い場合に有効となる。
本開示の実施の形態のメモリカードのブロック図である。 実施の形態の不揮発性メモリにおける物理ブロックと物理ページの説明図である。 実施の形態の多値NAND型フラッシュメモリの説明図である。 実施の形態の多値NAND型フラッシュメモリの記憶動作の説明図である。 実施の形態の物理ページの説明図である。 実施の形態のデータ書込時の処理のフローチャートである。 実施の形態のホストデータ書込時の動作例の説明図である。 実施の形態のホストデータ及び管理情報書込時の動作例の説明図である。 実施の形態のホストデータ及び管理情報書込時の動作例の説明図である。 本開示の実施の形態の管理情報書込タイミングの説明図である。 実施の形態の管理情報読込処理のフローチャートである。 実施の形態の管理情報読込動作の説明図である。 実施の形態の論理・物理アドレス変換テーブル構築処理の説明図である。 実施の形態の論理・物理アドレス変換テーブルの説明図である。 実施の形態の論理・物理アドレス変換テーブル読込処理のフローチャートである。
以下、実施の形態について次の順序で説明する。なお、実施の形態で示すメモリカード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、バッファRAM14、及び不揮発性メモリ(Non-Volatile Memory)15を備える。
制御部11はCPU(Central Processing Unit)によって形成され、メモリカード1の全体を制御する。このため制御部11はインターナルRAM12に置かれた命令コードを逐次実行する。主に制御部11は、ホスト機器2からのコマンドに応じたデータの書込や読出を実行させる。このため制御部11は、デバイスインターフェース13のホスト機器2とのデータ送受信動作制御、バッファRAM14の書込/読出動作の制御、不揮発性メモリ15へのアクセス動作の制御を行う。
インターナルRAM12は例えばSRAM(Static Random Access Memory)で構成される。インターナルRAM12は、制御部11が実行するプログラム(ファームウェア)の記憶や、ワーク領域として使用される。
デバイスインターフェース13はホスト機器2との間の通信を行う。
バッファRAM14はホスト機器2との間の転送データ(書込データや読出データ)のバッファリングに用いられる。
不揮発性メモリ15は、例えば多値NAND型フラッシュメモリである。
即ち本実施の形態の場合、この不揮発性メモリ15は、1つのメモリセルに2ビット以上の多値記憶が行われ、物理アドレスが設定される物理ページとして少なくとも多値記憶のための下位ページ(ロアーページ)と上位ページ(アッパーページ)を有する。そして各物理ページが物理アドレス順に使用されてデータ書込が行われる多値NAND型フラッシュメモリとされる。
メモリカード1の基本的な動作としては、データ書込時には、ホスト機器2から書込要求とともに、書込アドレス(論理アドレス)、データサイズ、さらに書き込むべきデータが送られてくる。
ホスト機器2から送られてくる書き込むべきデータは、デバイスインターフェース13で受信されてバッファRAM14にバッファリングされる。そして制御部11の制御の元、データが不揮発性メモリ15に書き込まれる。制御部11は書込要求、書込アドレス、データサイズに応じてこれらの動作を制御する。
データ読出時にはホスト機器2から読出要求とともに、読出アドレス(論理アドレス)、データサイズが送られてくる。制御部11は、読出アドレス、データサイズに基づいて不揮発性メモリ15から指示されたデータの読出を行い、バッファRAM14にバッファリングする。また制御部11はバッファリングされた読出データに対してエラー訂正処理等を行う。そして読出データはバッファRAM14からデバイスインターフェース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の管理のもと、例えばインターナルRAM12に、制御部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列の各々のメモリセル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”の何れか1つを保持できる。この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倍程度となることがある。
図5Aは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で共有されるような形態となる。そして、この図5Aのページアドレス順に物理ページPPが使用されることで、ロアーページとアッパーページの組では、必ずロアーページに先に書込が行われる。
図5BはTLCにおける物理ページアドレスの割当例を示している。
各物理ページにおいて、[Lower]はロアーページ、[Middle]はミドルページ、[Upper]はアッパーページを示す。この例では、物理ページPP0、PP1、PP3、PP6、PP9、PP12、PP15がロアーページである。また物理ページPP2、PP4、PP7、PP10、PP13がミドルページである。また物理ページPP5、PP8、PP11、PP14がアッパーページである。
TLCでは、ロアーページ、ミドルページ、アッパーページがメモリセルを共有する形となるが、この図5Bのように物理ページアドレスが設定されることで、各メモリセルで見れば、書込動作は必ずロアーページ、ミドルページ、アッパーページの順番で行われる。
<3.データ書込制御処理>

本実施の形態の制御部11は、ホスト機器2から要求されたホストデータの書込を、例えば上記図5A、図5Bのような物理ブロック内で、ページアドレス順の物理ページPPに行っていく。
このとき、連続してホストデータの書込が継続する間は、ロアーページだけでなく、ミドルページやアッパーページも含めて書込を行う。
そして、ホストデータの書込が終了した物理ページの次の物理ページがロアーページであった場合には、その時点で処理を完了する。
ところがホストデータの書込が終了したページの次のページがロアーページでなかった場合には、次のロアーページの直前の物理ページまで、管理情報(例えば論理・物理アドレス変換テーブル)の書込を行い、次の書込がロアーページから開始されるような状態にする。
図6で制御部11によるデータ書込制御処理例を説明する。
制御部11はステップF101として、ホスト機器2からデータ書込要求に応じて、書込を行うホストデータの取り込みや論理アドレスの取得等を行う。
具体的には制御部11は、送信されてくるホストデータについてはデバイスインターフェース13を介してバッファRAM14に一時格納させる。また制御部11は、デバイスインターフェース13を介して送信される書込要求のコマンドにより、書き込むホストデータの論理アドレスとデータ量を把握する。
ステップF102では、今回のデータ書込に対応すべく論理・物理アドレス変換テーブルを作成又は更新する。ここでは、今回書込を行うホストデータの論理アドレスを物理アドレスに対応させたエントリを論理・物理アドレス変換テーブルに追加する処理を行う。
なお、論理・物理アドレス変換テーブルは上記の管理情報の1つの例であるが、論理・物理アドレス変換テーブルに関する動作は、まとめて後述する。
続いて制御部11はステップF103で、今回書込要求にかかるホストデータの書込制御を行う。具体的には、バッファRAM14に一時格納させたホストデータを、今回ステップF102で論理・物理アドレス変換テーブルにエントリした物理アドレスに応じて、不揮発性メモリ15に記憶させていく。例えば図5Aのような物理ブロックPBに対し、ページアドレスが若い物理ページPPから書込を行っていく。
ホストデータの書込を行ったらステップF104の判断を行う。ここでは今回のホストデータの書込を行った最後の物理ページの次の物理ページPP、即ち次回の書込要求に応じて書込を行うことになる物理ページPPが、ロアーページであるか否かを確認する。換言すれば、ロアーページの直前の物理ページで書込が完了したか否かを判断する。
もし、次の物理ページPPがロアーページであれば、そのまま今回の書込要求に応じた処理を終える。
一方、次の物理ページPPがロアーページでなければ、ステップF104からF105に進み、次の物理ページPPに管理情報の書込を行う。
管理情報として、例えば著作権情報、エラーテーブル、論理・物理アドレス変換テーブルなどの書込を行う。これら全部でもよいし、一部でもよい。またこれら以外の管理情報でもよい。
そして再度ステップF104の判断を行い、次の物理ページPPがロアーページであれば処理を終えるが、次の物理ページPPがロアーページでなければ、再度ステップF105で、さらに次の物理ページPPに管理情報の書込を行う。
このような処理によって行われる書込動作を図7,図8,図9で説明する。
図7,図8A,図9Aは或る物理ブロックPBxに対して、今回のホストデータの書込が行われた状態を示している。図中、各物理ページPP内の「Data」はホストデータが書き込まれた状態を示している。
この図7は、今回のホストデータが、ステップF103の書込制御に基づいて、物理ページPP0〜PP9まで書き込まれた場合である。この場合、次の物理ページPP10はロアーページとなっている。従ってステップF104では、次の物理ページPPがロアーページであるとして、そのまま今回の書込要求に応じた処理を終えることになる。
図8Aは、今回のホストデータが、ステップF103の書込制御に基づいて、物理ページPP0〜PP8まで書き込まれた場合である。この場合、次の物理ページPP9はアッパーページである。従ってステップF104では次の物理ページがロアーページではないと判断され、ステップF105で、次の物理ページPP9に図8Bのように管理情報MGTの書込が行われる。すると続くステップF104では、次の物理ページPP10がロアーページであると判断され、それにより今回の書込要求に応じた一連の処理を終えることになる。
図9Aは、今回のホストデータが、ステップF103の書込制御に基づいて、物理ページPP0〜PP7まで書き込まれた場合である。この場合、次の物理ページPP8はアッパーページである。従ってステップF104では次の物理ページがロアーページでないと判断される。そのためステップF105で、物理ページPP8に図9Bのように管理情報MGTの書込が行われる。ところがこの時点でも、次の物理ページPP9はアッパーページである。従ってさらにステップF104からF105に進み、次の物理ページPP9にも図8Bのように管理情報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に記憶させた管理情報を読み込むことができる。
なお、ここでは単に目的の管理情報を検索する処理例を示す。管理情報の1つとして論理・物理アドレス変換テーブルがあると先に述べたが、論理・物理アドレス変換テーブルを再構築する場合の処理は後に詳しく説明する。
まず制御部11はステップF201で、管理情報の読込を行おうとする対象の物理ブロックPBxについて最終使用済みページPPeの検索を行う。例えば2分検索などとして最終使用済み物理ページPPeを探すことができる。
物理ブロックPBは物理ページPP0から順に使用されていくもので、最終使用済み物理ページPPeとは、その時点で過去に最新のデータ書込が行われた物理ページPPのことである。
図12Aには、過去に物理ページPP9までデータ書込が行われた物理ブロックPBxを示しているが、この場合、物理ブロックPBxは矢印の方向で各物理ページPPが順に使用されて書込が行われたものである。そして最終使用済み物理ページPPeとは、物理ページPP9となる。
2分検索とは、例えば中央の物理ページPPを確認しながら最終使用済み物理ページPPeを探索する手法である。
1つの物理ブロックPBが16個の物理ページPP0〜PP15で構成されるとして、図12Aでいえば、まず例えば物理ページ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に進み、当該物理ページから管理情報を読み込んで処理を終える。
図12Bは、最終使用済み物理ページPPeがアッパーページである物理ページPP9であった場合を示している。この場合、最終使用済み物理ページPPe(PP9)に目的の管理情報MGTが記憶されていれば、当該物理ページPP9から図示のようにそれを読み込むことになる。
図12Cは、最終使用済み物理ページPPeがロアーページである物理ページPP10であった場合を示している。この場合、最終使用済み物理ページPPe(PP10)に直近のアッパーページを検索し、物理ページPP9で目的の管理情報MGTの有無を確認する。そして目的の管理情報MGTが記憶されていれば、当該物理ページPP9から図示のようにそれを読み込むことになる。
一方、ステップF204で目的の管理情報が記憶されていないと判断されたときは、ステップF205で最も若い物理アドレスの非ロアーページに至ったと判断されるまで、ステップF203で逆順に最も近い非ロアーページを検索し、同様に目的の管理情報が存在するか否かを判断していく。そして目的の管理情報が発見されたら、ステップF205でその管理情報を読み込む。
なお、ステップF205で非ロアーページの最初の物理ページであると判断される場合とは、例えば図12の例でいえば、最も物理アドレスが若いアッパーページ(PP4)まで非ロアーページを検索しても、目的の管理情報が記憶されていないと判断される場合である。
この場合、制御部11はステップF207で、目的の管理情報は無いとして処理を終える。
このような管理情報読込処理では、最新の管理情報を効率よく短時間で読み出せることになる。管理情報としては、論理・物理アドレス変換テーブルの他に、例えば著作権情報やエラー情報等、各種のものが想定されるが、例えば最新のエラー情報を読み込みたい場合、このエラー情報を目的の管理情報として図11の処理を行えば、効率よくエラー情報を読み出せることになる。
即ち、上述のデータ書込処理によれば、ホストデータの書込にはロアーページとアッパーページの両方が使用されるが、管理情報の書込に使用されるのは非ロアーページ(MLCではアッパーページのみ)となる。従って、最終使用済み物理ページPPeからアッパーページのみを検索することで、最新の管理情報を迅速に見つけ出すことができる。単にその時点で最も近い過去に記憶された論理・物理アドレス変換テーブルを読み込みたい場合も、好適な処理となる。
<5.論理・物理アドレス変換テーブルへの適用例>

以上の実施の形態において、管理情報として論理・物理アドレス変換テーブルをアッパーページに記憶させる場合について説明する。
本実施の形態では、物理ブロックPBには、論理アドレスが非連続なホストデータを連続した物理ページPPに書き込むことを許容している。
従前の一般的な書込方式の1つとしては、物理ブロック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の論理アドレス情報を用いて、論理・物理アドレス変換テーブルを更新する。
図13A、図14Aで論理・物理アドレス変換テーブルの例を説明する。
図13Aは、或る物理ブロック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の書込が行われたとしている。
この図13Aの記憶状態に対応する論理・物理アドレス変換テーブルは、例えば図14Aのように、論理アドレス(LBA)と物理ページPP(Physical Page)を対応させたテーブルとなる。
例えば論理アドレス「1」を先頭とする論理アドレス「1」「2」「3」「4」の最新のホストデータが、物理ページPP1に記憶されていることが示される。
また論理アドレス「9」を先頭とする論理アドレス「9」「10」「11」「12」の最新のホストデータが、物理ページPP6に記憶されていることが示される。
他も同様に、各論理アドレスの最新のホストデータが記憶された物理ページPPが示される。
このように論理・物理アドレス変換テーブルには、各物理ページPPと、その物理ページPPに記憶されたホストデータの論理アドレスとの対応関係を示す情報が記憶されることになる。
このような論理・物理アドレス変換テーブルが構築されることで、制御部11は、ホスト機器2が論理アドレスで指定するホストデータが、物理ブロックPBxにおいてどの物理ページPPに記憶されているかを把握できる。
説明上、論理・物理アドレス変換テーブルにエントリされた個々の対応情報を「論物対応データ」という。
なお、論理・物理アドレス変換テーブルとしては、図14Bに示すように、さらに物理ブロックPB(Physical Block)の番号も対応させてもよい。
管理情報MGTが記憶されるのは、ホストデータの記憶が完了した次の物理ページPPがロアーページでない場合であるため、或る物理ブロックPBxの論理・物理アドレス変換テーブルが、必ずしも、その物理ブロックPBx内に記憶されるとは限らない。このための例えば物理ブロックPBxの論理・物理アドレス変換テーブルを、他の物理ブロックPByの物理ページPP内での管理情報書込機会に書き込むことを許容してもよい。そのような場合を考慮すれば、図14Bのように、各論理アドレスに対応して、物理ブロックPBの番号と物理ページPPの番号を管理することが適切となる。
このように論理・物理アドレス変換テーブルを管理情報として物理ページPPに書き込む場合、制御部11は、必要時に、以下のように最新の論理・物理アドレス変換テーブルを取得できる。
図15は制御部11による論理・物理アドレス変換テーブル読込処理を示している。制御部11は、電源投入時や、上記図6のステップF102の処理の準備を行う時点、或いは他の任意の時点で、この図15の論理・物理アドレス変換テーブル読込処理を行うことができる。
まず制御部11はステップF301で、論理・物理アドレス変換テーブルを構築する対象の物理ブロックPBxについて最終使用済み物理ページPPeの検索を行う。例えば2分検索により最終使用済み物理ページPPeを探す。図13Aの場合、最終使用済み物理ページPPeは物理ページPP9となる。
最終使用済み物理ページPPeを発見したら、制御部11はステップF302で、その最終使用済み物理ページPPeの読出を実行し、記憶されているデータ内容を確認する。特には、最終使用済み物理ページPPeに、論理・物理アドレス変換テーブルが含まれているか否かを確認する。
最終使用済み物理ページPPeに論理・物理アドレス変換テーブルが記憶されていた場合、制御部11はステップF303からF307に進み、当該論理・物理アドレス変換テーブルを取り込む。
例えば図13Aの場合、最終使用済み物理ページPPeは物理ページPP9であるが、ここの管理テーブルMGTとして論理・物理アドレス変換テーブルが記憶されていたとする。
このような場合、制御部11は図13Aの矢印Rとして示すように、検索された最終使用済み物理ページPPeに記憶されていた論理・物理アドレス変換テーブルを取り込むことになる。
この最終使用済み物理ページPPeに記憶されていた論理・物理アドレス変換テーブルは、その時点の当該物理ブロックPBxに記憶された全てのホストデータについての論物対応データを含む最新のものである。
例えばデータ書込の際に図6のステップF102では、これから書き込もうとするホストデータについて、論物対応データを生成し、論理・物理アドレス変換テーブルにエントリする。データ書込の都度、図6のステップF102の処理が行われることで、例えば図13Aの物理ページPP7へ論理アドレス「100」「101」「102」「103」を書き込む際には、制御部11がステップF102で更新した論理・物理アドレス変換テーブルは図14Aのようになっている。従って、物理ページPP8,PP9に書き込まれた論理・物理アドレス変換テーブルは、物理ページPP7までの論物対応データがエントリされた最新の状態となっている。
つまり、このように最終使用済み物理ページPPeから論理・物理アドレス変換テーブルが読み込めた場合、最新の論理・物理アドレス変換テーブルが得られたことになる。
一方、最終使用済み物理ページPPeに論理・物理アドレス変換テーブルが含まれていない場合、制御部11はステップF303からF304に進み、その物理ページPP(この場合最終使用済み物理ページPPe)に記憶されているホストデータの論理アドレスLBAを確認して記憶する。
そして当該物理ページPPが対象の物理ブロックPBxの先頭の物理ページPP0でなければ、ステップF305からF306に進み、1つ前の物理ページPPの読出を行い、ステップF303で、その物理ページPPに論理・物理アドレス変換テーブルが記憶されているか否かを確認する。
もし、その物理ページPPにも論理・物理アドレス変換テーブルが記憶されていなければ、また制御部11はステップF304で、その物理ページPPに記憶されているホストデータの論理アドレスLBAを確認して記憶する。そして当該物理ページPPが対象の物理ブロックPBxの先頭の物理ページPP0でなければ、ステップF305からF306に進み、さらに1つ前の物理ページPPの読出を行い、ステップF303で、その物理ページPPに論理・物理アドレス変換テーブルが記憶されているか否かを確認する。
つまり、ステップF304→F305→F306→F303の処理は、最終使用済み物理ページPPeから順番に前の物理ページPPをたぐって、各物理ページPPのホストデータの論理アドレスを記憶しながら、論理・物理アドレス変換テーブルが記憶されている物理ページPPを探し出す処理となる。
この過程で、或る物理ページPPに論理・物理アドレス変換テーブルが存在することを確認したら、制御部11はステップF303からF307に進み、その物理ページPPから論理・物理アドレス変換テーブルを取り込む。そしてこの場合、取り込んだ論理・物理アドレス変換テーブルを最新状態に更新する。
例えば図13Bでは、最終使用済み物理ページPPe=物理ページPP10であって、この物理ページPP10には論理・物理アドレス変換テーブルが存在しない場合を示している。
この場合、矢印Sとして示すように1つ前の物理ページPPの確認を行っていく。この例では1つ前の物理ページPP9に記憶された管理情報MGTに論理・物理アドレス変換テーブルが含まれていたとすると、矢印Rとして示すように物理ページPP9から論理・物理アドレス変換テーブルを取り込むことになる。
このように最終使用済み物理ページPPe以外の物理ページPPに記憶されていた論理・物理アドレス変換テーブルは、その時点の当該物理ブロックPBxに記憶された全てのホストデータについての論物対応データを含むものではない。例えばこの図13Bの例では、取り込んだ論理・物理アドレス変換テーブルは、物理ページPP10についての論物対応データは含まれていない。
そこでステップF307では、この物理ページPP10についての論物対応データを論理・物理アドレス変換テーブルに反映させるように論理・物理アドレス変換テーブルの更新を行う。
これによって、最新の状態の論理・物理アドレス変換テーブルが得られる。この場合、最新の論理・物理アドレス変換テーブルは、図14Aの内容に物理ページPP10と論理アドレス「5」「6」「7」「8」を対応づける論物対応データを加えた図14Cのようになる。
なお、ステップF305で先頭の物理ページPP0であると判断される場合とは、当該物理ブロックPBxには、どの物理ページPPにも論理・物理アドレス変換テーブルが記憶されていなかった場合である。
この場合制御部11はステップF307で論理・物理アドレス変換テーブルを新たに構築することになる。
即ち最終使用済み物理ページPPeから先頭の物理ページPP0までの各物理ページPPについてステップF304で記憶した論理アドレスを用いて、各論理アドレスについての論物対応データを生成し、論理・物理アドレス変換テーブルを生成する。これによって、最新の状態の論理・物理アドレス変換テーブルが得られる。
例えば電源投入時や、データ書込の準備等のために論理・物理アドレス変換テーブルを取得することが必要な場合は、以上のように最新の論理・物理アドレス変換テーブルを取得すればよい。
特に、最終使用済み物理ページPPeから論理・物理アドレス変換テーブルが発見できた場合は、論理・物理アドレス変換テーブルを読み込むだけでよい。また最終使用済み物理ページPPeからさかのぼった物理ページPPで論理・物理アドレス変換テーブルが発見された場合は、読み込んだ論理・物理アドレス変換テーブルに、それまでの各物理ページPPの内容を反映させるように更新すればよい。
つまり本実施の形態の場合、論理・物理アドレス変換テーブルが管理情報MGTの1つとして書き込まれていることで、最新の論理・物理アドレス変換テーブルを得るために、全物理ページを探索しなければならない事態があまり生じず、最新の論理・物理アドレス変換テーブルの取得が迅速にできる場合が多くなるという利点が得られる。
特にホスト機器2からの書込要求として、細かいサイズのホストデータの書込が多い場合、アッパーページに論理・物理アドレス変換テーブルが書き込まれる可能性が高くなる。この場合、最新の論理・物理アドレス変換テーブルの迅速な読出に有利となる。
なお、書込要求に応じて上述の図6の処理が行われる場合は、ステップF102では、以上のように取得した最新の論理・物理アドレス変換テーブルに、今回書込を行うホストデータの内容を反映した更新を施せばよい。従って、論理・物理アドレス変換テーブルが管理情報として記憶されていることは、データ書込処理の効率化にも有効である。
また、論理・物理アドレス変換テーブルが物理ページPPに書き込まれ、上記のようにそれを読み出して最新の論理・物理アドレス変換テーブルを構築できるということは、途中電源遮断などの異常事態においても効率よく復帰を行うことができ、データの信頼性を高める事ができることにもなる。
<6.変形例>

以上、実施の形態について説明したが、実施の形態の構成、処理としては多様な変形例が考えられる。
実施の形態では主にMLC(狭義)の場合で説明したが、図5Bのような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)上記不揮発性メモリは多値NAND型フラッシュメモリである上記(1)乃至(7)のいずれかに記載の制御装置。
1 メモリカード、2 ホスト機器、11 制御部、12 インターナルRAM、13 デバイスインターフェース、14 バッファRAM、15 不揮発性メモリ

Claims (9)

  1. 1つのメモリセルに2ビット以上の多値記憶が行われ、物理アドレスが設定される物理ページとして少なくとも多値記憶のための下位ページと上位ページを有し、複数の下位ページと上位ページで物理ブロックが形成され、各物理ページが物理アドレス順に使用されてデータ書込が行われる不揮発性メモリに対して、ホスト機器からのデータ書込要求に応じて、供給されたホストデータの書込制御を行う制御部を備え、
    上記制御部は、データ書込要求に応じたホストデータの書込が、書込先とされた物理ブロック内の下位ページの直前の物理ページに至らないで終了した場合は、上記物理ブロック内の上記下位ページの直前の物理ページまで、非ホストデータの書込を実行させる
    制御装置。
  2. 上記制御部は、データ書込要求に応じたホストデータの書込が、上記物理ブロック内の上記下位ページの直前の物理ページに至らないで終了した場合は、データ書込要求に対する書込完了を上記ホスト機器に通知した後に、上記物理ブロック内の上記下位ページの直前の物理ページまで、非ホストデータの書込を実行させる請求項1に記載の制御装置。
  3. 上記非ホストデータは上記制御部が使用する管理情報である請求項1に記載の制御装置。
  4. 上記制御部は、上記不揮発性メモリに対して、下位ページ以外の物理ページの検索を行って上記管理情報を読み出す制御を行う請求項3に記載の制御装置。
  5. 上記非ホストデータは、ホストデータの論理アドレスと上記不揮発性メモリ上の物理アドレスとの対応を示す論理・物理アドレス変換テーブルである請求項1に記載の制御装置。
  6. 上記制御部は、
    上記物理ブロック内で、最終使用済みの物理ページから先頭側の物理ページに向かって、順に、物理ページ内に上記論理・物理アドレス変換テーブルが記憶されているか否かを検索して、最初に発見された上記論理・物理アドレス変換テーブルを取得する処理を行い、
    取得した論理・物理アドレス変換テーブル及び論理・物理アドレス変換テーブルが記憶されていなかった物理ページの論理アドレス情報を用いて、最新の論理・物理アドレス変換テーブルを取得する請求項5に記載の制御装置。
  7. 上記不揮発性メモリは多値NAND型フラッシュメモリである請求項1に記載の制御装置。
  8. 1つのメモリセルに2ビット以上の多値記憶が行われ、物理アドレスが設定される物理ページとして少なくとも多値記憶のための下位ページと上位ページを有し、複数の下位ページと上位ページで物理ブロックが形成され、各物理ページが物理アドレス順に使用されてデータ書込が行われる不揮発性メモリと、
    ホスト機器からのデータ書込要求に応じて、上記不揮発性メモリに対して、供給されたホストデータの書込制御を行う制御部とを備え、
    上記制御部は、データ書込要求に応じたホストデータの書込が、書込先とされた物理ブロック内の下位ページの直前の物理ページに至らないで終了した場合は、上記物理ブロック内の上記下位ページの直前の物理ページまで、非ホストデータの書込を実行させる
    記憶装置。
  9. 1つのメモリセルに2ビット以上の多値記憶が行われ、物理アドレスが設定される物理ページとして少なくとも多値記憶のための下位ページと上位ページを有し、複数の下位ページと上位ページで物理ブロックが形成され、各物理ページが物理アドレス順に使用されてデータ書込が行われる不揮発性メモリに対するデータ書込方法として、ホスト機器からのデータ書込要求に応じて、上記不揮発性メモリに対して、供給されたホストデータの書込を行うとともに、データ書込要求に応じたホストデータの書込が、書込先とされた物理ブロック内の下位ページの直前の物理ページに至らないで終了した場合は、上記物理ブロック内の上記下位ページの直前の物理ページまで、非ホストデータの書込を実行するデータ書込方法。
JP2012106830A 2012-05-08 2012-05-08 制御装置、記憶装置、データ書込方法 Expired - Fee Related JP5929485B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2012106830A JP5929485B2 (ja) 2012-05-08 2012-05-08 制御装置、記憶装置、データ書込方法
TW102108719A TW201401048A (zh) 2012-05-08 2013-03-12 控制裝置、記憶裝置及資料寫入方法
US13/870,722 US9454475B2 (en) 2012-05-08 2013-04-25 Control device, storage device, and data writing method
KR1020130046708A KR20130125303A (ko) 2012-05-08 2013-04-26 제어 장치, 기억 장치, 데이터 기입 방법
CN2013101571119A CN103389881A (zh) 2012-05-08 2013-04-28 控制装置、存储装置以及数据写入方法

Applications Claiming Priority (1)

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

Publications (3)

Publication Number Publication Date
JP2013235630A JP2013235630A (ja) 2013-11-21
JP2013235630A5 JP2013235630A5 (ja) 2015-03-19
JP5929485B2 true JP5929485B2 (ja) 2016-06-08

Family

ID=49534164

Family Applications (1)

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

Country Status (5)

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

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
TW201401048A (zh) 2014-01-01
KR20130125303A (ko) 2013-11-18
US20130304971A1 (en) 2013-11-14
CN103389881A (zh) 2013-11-13
JP2013235630A (ja) 2013-11-21
US9454475B2 (en) 2016-09-27

Similar Documents

Publication Publication Date Title
JP5929485B2 (ja) 制御装置、記憶装置、データ書込方法
US11036628B2 (en) Storage system having a host directly manage physical data locations of storage device
JP6262426B2 (ja) メモリシステム及びそれのブロック複写方法
US8762629B2 (en) Data conditioning to improve flash memory reliability
KR101678909B1 (ko) 플래시 메모리 시스템 및 그것의 소거 리프레쉬 방법
US8904090B2 (en) Non-volatile memory device, devices having the same, and method of operating the same
JP4787266B2 (ja) スクラッチパッドブロック
US20070035998A1 (en) Nonvolatile memory apparatus
US8321624B2 (en) Memory device and management method of memory device
US20140289588A1 (en) Memory system
US20080239811A1 (en) Method for controlling a non-volatile semiconductor memory, and semiconductor storage system
JP2014022031A (ja) 不揮発性メモリ装置とそれを含むメモリシステム及びそれらのメモリブロック管理、消去、及びプログラム方法
US8549214B2 (en) Protection against data corruption for multi-level memory cell (MLC) flash memory
US20130046918A1 (en) Method writing meta data with reduced frequency
CN108027764B (zh) 可转换的叶的存储器映射
JP5259138B2 (ja) 記憶装置
JP4866117B2 (ja) 不揮発性記憶装置、そのデータ書き込み方法、不揮発性記憶システム及びメモリコントローラ
JP2009037317A (ja) メモリーコントローラ、及びこれを用いた不揮発性記憶装置並びに不揮発性記憶システム
JP6072428B2 (ja) 制御装置、記憶装置、記憶制御方法
JP4235646B2 (ja) メモリコントローラおよびフラッシュメモリシステム
CN115374021A (zh) 管理不对准存储器组件的重新映射的存储器子系统
JP2012068765A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US20090300272A1 (en) Method for increasing reliability of data accessing for a multi-level cell type non-volatile memory
JP2008077468A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
CN111324292A (zh) 非易失性存储器的存储器回收方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150129

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150129

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160114

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160405

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160418

R151 Written notification of patent or utility model registration

Ref document number: 5929485

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees