JP4015866B2 - 記憶装置 - Google Patents

記憶装置 Download PDF

Info

Publication number
JP4015866B2
JP4015866B2 JP2002080380A JP2002080380A JP4015866B2 JP 4015866 B2 JP4015866 B2 JP 4015866B2 JP 2002080380 A JP2002080380 A JP 2002080380A JP 2002080380 A JP2002080380 A JP 2002080380A JP 4015866 B2 JP4015866 B2 JP 4015866B2
Authority
JP
Japan
Prior art keywords
physical
block
logical block
address
page
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 - Lifetime
Application number
JP2002080380A
Other languages
English (en)
Other versions
JP2003150443A (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2002080380A priority Critical patent/JP4015866B2/ja
Publication of JP2003150443A publication Critical patent/JP2003150443A/ja
Application granted granted Critical
Publication of JP4015866B2 publication Critical patent/JP4015866B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • 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/7201Logical to physical mapping or translation of blocks or pages

Landscapes

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

Description

【0001】
【発明の属する技術分野】
本発明は、データの書き換えが可能なフラッシュメモリ等の不揮発性メモリを備えた記憶装置に関するものである。
【0002】
【従来の技術】
音楽データや映像データを取り扱う携帯機器の記憶装置として、データの書き換えが可能で、携帯性が高く、電池等によるバックアップが不要であるフラッシュメモリ等の不揮発性メモリを備えた記憶装置が使われるようになってきた。
【0003】
しかし、フラッシュメモリにデータを書き込む処理速度は、記憶装置内にあるバッファにデータを転送する処理速度に比べて遅く、そのために待ち時間が発生することになる。
【0004】
そこで、フラッシュメモリに効率よくデータを書き込む処理として、例えば特開平6−301601号公報では、複数の物理ブロックにデータを並列的に書き込む処理が提案されている。
【0005】
また、一旦フラッシュメモリ内に書き込まれたデータにアクセスするには、フラッシュメモリ内における当該データの物理アドレスを論理アドレスから特定する必要がある。このため、記憶装置の有するRAMには、フラッシュメモリ内に書き込まれたデータの論理アドレスを、フラッシュメモリ内の物理アドレスに変換するテーブルが設けられる。
【0006】
【発明が解決しようとする課題】
ところで、近年、携帯機器で取り扱う情報量は増大する傾向にあり、これに対処するために、記憶装置にある不揮発性メモリを増加させることで、記憶装置の記憶容量の増大を図っている。
【0007】
しかし、この記憶容量の増大は、上記テーブルの容量の増大につながり、その結果、RAMの容量と容積との増大を招く。
【0008】
例えば、記憶装置の記憶容量を1ギガバイトとし、当該記憶装置の論理ブロックのサイズを16キロバイトとすると、当該記憶装置に論理ブロックを2^16個構成することができ、そのため所定の論理ブロックを特定するためのアドレスは、16ビット必要となる。即ち、論理アドレスをフラッシュメモリ内の物理アドレスに変換するためのテーブルの容量は、16ビット×2^16=128キロバイト必要となる。尚、上記論理ブロックとは、論理アドレスにて示されるデータブロックである。
【0009】
また、フラッシュメモリ内に効率よくデータを書き込むための処理は、上記のように提案されているが、書き込まれたデータに対して、データの読出手段等が高速にアクセスするためのデータの書込方法は提案されていない。
【0010】
従来の書込方法においては、例えば先頭の第1物理ブロックから第5物理ブロックに書き込まれたデータのうち、第5物理ブロックに書き込まれたデータにアクセスする手順は、以下のようになっている。
【0011】
まず、例えばデータの読出手段は、第1物理ブロックを読み取って、この第1物理ブロックの最終部分に格納された第2物理ブロックのアドレスを取得し、次に第2物理ブロックを読み取る。同様にして読出手段は、第3の物理ブロック、第4の物理ブロック、第4の物理ブロックに保持されている第5物理ブロックのアドレスを取得し、第5の物理ブロックにアクセスするようになっている。従って第5物理ブロックにアクセスするためには、第1物理ブロックから第4物理ブロックを読み取る必要があり、これがアクセスタイムの増大の原因となっていた。
【0012】
又、データの消去単位が物理ブロック単位であるフラッシュメモリ等においては、無効なデータが格納されている物理ブロックのデータを消去すると、当該物理ブロックに格納されている有効なデータをも消去することになる。このため、例えばデータの消去手段は、有効なデータを他の記憶媒体に退避させた後、当該物理ブロックのデータを消去する、巻き込み退避処理が行われていた。従って、データの消去を効率よく行うには、巻き込み退避処理の処理効率を向上することが必要となる。
【0013】
本発明は、このような課題を鑑みてなされたものであり、大容量の記憶媒体をコンパクトな制御回路で制御でき、また書き込まれたデータに高速なアクセスが可能な記憶装置を提供することを目的とする。
【0014】
【課題を解決するための手段】
本発明は上記目的を達成するために以下の手段を採用している。すなわち、不揮発性メモリを備えた記憶装置のRAMの容量を削減するために、RAMに設けられた第1のテーブルと不揮発性メモリに設けられた第2のテーブルとを用いて論理アドレスを物理アドレスに変換するようになっている。2つのテーブルを用いて論理アドレスを物理アドレスに変換することで、第1のテーブルの容量を削減することができる。第1のテーブルの容量を削減することで、RAMの容量と容積を削減することができる。
【0015】
また、本発明の記憶装置は、物理ブロックにて構成される論理ブロックの構成や、論理ブロックの読出し又は消去を効率よく行うために、物理ブロックテーブル、論理ブロックテーブル、エントリカウンタ、アドレスレジスタを備える。
【0016】
物理ブロックテーブルは、不揮発性メモリのデータの消去単位である物理ブロックが使用中物理ブロックであるか、消去済み物理ブロックであるかを示す。アドレスレジスタはデータの書込対象となる物理ブロックを示す。エントリカウンタは、アドレスレジスタに示された物理ブロックに書き込まれたデータ量を示す。論理ブロックテーブルは、上記論理ブロックの状況を示す。
【0017】
例えば書込手段は、所定の論理アドレスにて特定される論理ブロックを不揮発性メモリに構成する際に、論理ブロックを構成した物理ブロックを使用中として物理ブロックテーブルに登録し、論理ブロックを構成した書込単位に基づいてアドレスレジスタを更新し、当該論理ブロックのデータ量に基づいてエントリカウンタを更新する。
【0018】
また、書込手段は、不揮発性メモリに構成した論理ブロックに読出手段等が高速にアクセスすることができるように、論理ブロックを構成する際に、論理ブロックを構成する書込単位のうち、例えば代表書込単位に他の書込単位の物理アドレスを特定するための連鎖情報を書き込む。書込単位とは、不揮発性メモリにおけるデータの書き込み単位であり、また論理ブロックは複数の書込単位にまたがって構成される。
【0019】
更に書込手段は、不揮発性メモリに構成した論理ブロックの代表書込単位の物理アドレスを特定する情報を第2のテーブルに登録する。
【0020】
読出手段は、所定の論理アドレスにて特定される論理ブロックの読出要求があると、当該論理アドレスを用いて、上記第2のテーブルに登録された情報を読み取って、代表書込単位の物理アドレスを得る。次に、読出手段は、代表書込単位の物理アドレスを得ると、代表書込単位に書き込まれた連鎖情報を読み取る。この連鎖情報は、代表書込単位と同じ論理ブロックを構成する他の書込単位の物理アドレスである。読出手段は、連鎖情報を読み取って、他の書込単位の物理アドレスを得る。読出手段は、他の書込単位の物理アドレスを得ると、当該他の書込単位に書き込まれた連鎖情報を読み取って、更に他の書込単位の物理アドレスを得る。このようにして読出手段は、連鎖情報を読み取ることで、読出要求の対象となる論理ブロックを構成する全部の書込単位の物理アドレスを得ることができる。
【0021】
尚、代表書込単位に書き込まれた連鎖情報は、代表書込単位と同一の論理ブロックを構成する他の全部の書込単位の物理アドレスを特定するための情報であってもよい。この場合、読出手段は、代表書込単位の連鎖情報を読み取ることで、読出要求の対象となる論理ブロックを構成する全部の書込単位の物理アドレスを得ることができる。
【0022】
読出手段は、上記のように書込単位の物理アドレスを取得すると、当該書込単位に格納されたデータを読み出す。
【0023】
また、消去手段は、以下のようにして、選択した物理ブロックに格納されたデータを消去する。消去手段は、上記物理ブロックテーブルと、上記論理ブロックテーブルと、アドレスレジスタ等を参照して、有効な論理ブロックが構成されている量が少ない物理ブロックを把握する。そして消去手段は、当該物理ブロックを消去物理ブロックとして、当該消去物理ブロックに構成された有効な論理ブロックを他の物理ブロックに書き写す。そして消去物理ブロックのデータを消去する。このようにして消去物理ブロックを選択することで、データを消去する際に有効な論理ブロックを書き写す量が少なくなるので、データの消去を迅速に行うことができる。
【0024】
【発明の実施の形態】
図1に示すように、本発明の記憶装置1は、不揮発性メモリであるフラッシュメモリ2を複数備える。該フラッシュメモリ2は図2に示すように複数の物理ブロックBから構成されている。上記物理ブロックBは複数のページAから構成されている。フラッシュメモリ2におけるデータの書込単位は上記ページAであり、またデータの消去単位は上記物理ブロックBである。
【0025】
尚、本実施の形態では、フラッシュメモリ2全体の記憶容量は1ギガバイトであり、物理ブロックBの記憶容量は16キロバイトであって、ペ−ジAの記憶容量は512バイトとして説明するが、フラッシュメモリ2、物理ブロックB、ページAの記憶容量は上記の容量に限定されるものではない。
【0026】
(実施の形態1)
<電源投入時に関して>
上記記憶装置1に電源が投入されると、作成手段510に備えられた物理ブロックテーブル作成手段521は、記憶装置1に設けられたアドレス制御部5のRAM上に、上記各物理ブロックBの使用状態を示す物理ブロックテーブル52を作成する。ここで、図3に物理ブロックテーブル52の作成手順の一例を示す。
【0027】
まず、上記物理ブロックテーブル作成手段521は、上記物理ブロックテーブル52の値を初期化する(図3、S301)。上記物理ブロックテーブル作成手段521が行う初期化の方法として、例えば物理ブロックテーブル52の値を全部、消去済み物理ブロックを示す値に変更する方法がある。
【0028】
続いて、上記物理ブロックテーブル作成手段521は、図2に示す所定の物理ブロックBを構成する所定のページAを参照し、当該所定の物理ブロックBの状況を確認する(図3、S302)。この所定のページとは、例えば初期状態の物理ブロックB内の最初にデータが書き込まれるページA等を指す。
【0029】
物理ブロックBの状況を確認するため、ここでは、上記物理ブロックテーブル作成手段521が、所定の物理ブロックBに不良があるか否かを判断する不良物理ブロック判断手段522として動作する。すなわち、上記物理ブロックテーブル作成手段521は、確認対象である物理ブロックBに属する所定のページA内の情報を確認し、当該物理ブロックBがキズなどにより正常にデータが書き込めない不良物理ブロックであるか否かを判断する(図3、S303)。
【0030】
例えば確認対象の物理ブロックB1が不良物理ブロックでないと判断したとき、上記物理ブロックテーブル作成手段521は、当該確認対象の物理ブロックB1内にデータが格納されているページAがあるか否かを判断する(図3、S304)。次いで、データが格納されているページAがあると判断した場合、上記物理ブロックテーブル作成手段521は、確認対象の物理ブロックB1の使用状態が使用中であると認識する。上記物理ブロックテーブル作成手段521は、当該確認対象の物理ブロックB1を使用中物理ブロックとして、図4に示す物理ブロックテーブル52に登録する(図3、S305)。データを格納しているページAがないと判断した場合、上記物理ブロックテーブル作成手段521は、確認対象の物理ブロックB1の使用状態は消去済みであると認識する。そして、当該確認対象の物理ブロックBを消去済み物理ブロックとして、上記物理ブロックテーブル52に登録する(図3、S306)。
【0031】
上述のように使用中物理ブロック又は消去済み物理ブロックを物理ブロックテーブル52に登録すると、上記物理ブロックテーブル作成手段521は、確認対象の物理ブロックBが最終の物理ブロックBであるか否かを判断する(図3、S307)。そして、確認対象の物理ブロックBが最終の物理ブロックBでないと判断した場合には、未だ状況を確認していない他の物理ブロックBの状況確認を行う(図3、S302)。確認対象の物理ブロックBが最終の物理ブロックBであると判断すると、物理ブロックテーブル作成手段521は物理ブロックテーブル52の作成を終了する。
【0032】
このようにして、例えば図4に示すような物理ブロックテーブル52が作成される。図4では、物理ブロックテーブル52によって、物理ブロックB1、B2、…それぞれについて、使用中物理ブロックであるか消去済み物理ブロックであるかが示されている。
【0033】
尚、確認対象の物理ブロックBが不良物理ブロックであると判断した場合、上記不良物理ブロック判断手段522は、当該確認対象の物理ブロックBを使用中物理ブロックとして、上記物理ブロックテーブル52に登録するのがよい(図3、S308)。
【0034】
すなわち、上記不良物理ブロック判断手段522により物理ブロックが不良であると判断された場合、上記物理ブロックテーブル52が示す当該物理ブロックBの使用状態を使用中に設定する使用状態設定手段523としても、上記物理ブロックテーブル作成手段521を動作させるのである。
【0035】
不良物理ブロックを使用中物理ブロックとして物理ブロックテーブル52に設定する理由は、後述するデータの書込処理時に、書込手段100が、上記物理ブロックテーブル52に消去済み物理ブロックと登録されている物理ブロックBをデータの書込対象の物理ブロックBとして選択するためである。仮に不良物理ブロックが消去済み物理ブロックとして物理ブロックテーブル52に設定されていると、書込手段100は、不良物理ブロックを書込対象の物理ブロックBとして選択することがある。その場合、書込手段100が、当該不良物理ブロックBにデータを書き込むことができないことを認識してから、書込対象の物理ブロックBの選択をし直せばよいが、その分だけ書込処理に時間がかかってしまう。
【0036】
上述のように、不良物理ブロックを使用中物理ブロックとして登録することで、不良物理ブロックは書込対象の物理ブロックBから外され、その結果不良物理ブロックがあることを前提として利用される不揮発性メモリにおいても、書込処理の時間を短縮することができる。
【0037】
上記記憶装置1に電源が投入されると、上記物理ブロックテーブル52の他に、上記作成手段510に備えられた論理ブロックテーブル作成手段531にて論理ブロックテーブル53が上記アドレス制御部5のRAM上に作成される。論理ブロックテーブル53の作成は、上記物理ブロックテーブル52の作成と同時に行っても良いし、物理ブロックテーブル52が作成されてから行っても良いし、物理ブロックテーブル52を作成する前に行っても良い。
【0038】
論理ブロックテーブル53は、各論理ブロックCのデータが有効状態(‘有効’)にあるか無効状態(‘無効’)にあるかを示すテーブルである。上記論理ブロックCは、論理アドレスの示すデータブロックであり、1以上の物理ブロックBにまたがって構成される。図5は、論理ブロックテーブル53の作成手順の一例を示すフローチャートである。
【0039】
図5に示すように、論理ブロックテーブル作成手段531は、まず上記論理ブロックテーブル53を初期化する(図5、S501)。上記論理ブロックテーブル作成手段531が行う初期化の方法として、例えば論理ブロックテーブル53の値を全部、‘無効’を示す値に変更する方法がある。
【0040】
続いて、上記論理ブロックテーブル作成手段531は、物理アドレスを示すビット列のうち所定の5ビットが‘01000’であるページAの管理領域Abに設けられたフラグ領域90の値を参照する(図5、S502)。尚、上記論理ブロックテーブル作成手段531が、物理アドレスの所定の5ビットが‘01000’であるページAに設けられたフラグ領域90を参照する理由は、本実施の形態の記憶装置1では、当該物理アドレスのページAにのみ第2のテーブル80(詳細は後述する)が格納される仕様となっているためである。つまり、上記論理ブロックテーブル作成手段531は、上記第2のテーブル80を格納することができるページAのフラグ領域90のみを参照する。
【0041】
上記フラグ領域90の値は、当該フラグ領域90と同じ管理領域Abに格納された第2のテーブル80が有効であるか無効であるかを示す管理情報である。また、論理ブロックテーブルの作成処理の高速化のために、上記論理ブロックテーブル作成手段531は、物理アドレスの所定の5ビットが‘01000’のページAのフラグ領域90を全て参照する必要はない。例えば、論理ブロックテーブル作成手段531は、所定の5ビットが‘01000’であり、且つ物理ブロックテーブル52に使用中物理ブロックとして登録されている物理ブロックBに属するページAのフラグ領域90のみを参照するようにしてもよい。
【0042】
上記フラグ領域90を参照すると、上記論理ブロックテーブル作成手段531は、上記フラグ領域90の値が有効値であるか無効値であるかを判断する(図5、S503)。フラグ領域90の値が有効値であると判断したとき、上記論理ブロックテーブル作成手段531は、当該第2のテーブル80に登録された第2の物理アドレスCaにて特定される論理ブロックCを、上記論理ブロックテーブル53に’有効’として登録する(図5、S504)。この第2の物理アドレスCaとは、論理ブロックCを構成する所定の1つのページA(代表ページar)の物理アドレスを特定するための情報である。
一方、フラグ領域90の値が無効値であると判断したとき、上記論理ブロックテーブル作成手段531は、手順504を行わずに、手順505に移行する。
【0043】
上記論理ブロックテーブル作成手段531は、上記のように’有効’又は’無効’を上記論理ブロックテーブル53に登録、又は手順503でフラグ領域が無効値であると判断すると、参照すべき全てのフラグ領域90を参照したか否かを判断する(図5、S505)。
【0044】
全てのフラグ領域90を参照していないと判断した場合には、上記論理ブロックテーブル作成手段531は、未だ参照していない他のフラグ領域90の参照を行う(図5、S502)。そして、上記論理ブロックテーブル作成手段531は、全てのフラグ領域90を参照したと判断するまで、同様の処理を繰り返す。
【0045】
このようにして、図6に示すような論理ブロックテーブル53が作成される。上記不良物理ブロックの中には、上記物理ブロックテーブル52に使用中物理ブロックとして登録されている。このような不良物理ブロックには、物理アドレスの所定5ビットが‘00000’であるページ(後述する代表ページar)を含んでいるものがある。論理ブロックテーブル作成手段531は、このような不良物理ブロックB上に構成される論理ブロックCを、‘有効’として上記論理ブロックテーブル53に登録するのが好ましい。
【0046】
すなわち、上記不良物理ブロックに構成されている論理ブロックCを‘有効’として上記論理ブロックテーブル53に設定する有効状態設定手段532として、上記論理ブロックテーブル作成手段531を動作させるのである。
【0047】
これは、後述するデータの消去処理において、論理ブロックテーブル53に‘有効’として登録されている論理ブロックCが構成された数の少ない物理ブロックBが消去対象のデータとして認定されることがあるためである。実際には、データが書き込まれていない不良物理ブロックを“有効”として登録することで、不良物理ブロックが消去対象とならないようにするためである。
【0048】
これによって、不良物理ブロック上に構成される全論理ブロックCは、論理ブロックテーブル53に‘有効’と登録されるので、当該不良物理ブロックは、消去対象の物理ブロックから外される。その結果、必要のないデータの消去を防ぐことができる。
【0049】
また、物理ブロックテーブル52、論理ブロックテーブル53の他に、第1のテーブル51も上記アドレス制御部5のRAM上に作成される。例えば、上記のように物理ブロックテーブル52、論理ブロックテーブル53が作成されると、作成手段510に備えられた、第1のテーブル作成手段511が、第1のテーブル51の作成を開始する。ここで、図7は上記第1のテーブル51を作成する作成手順の一例を示すフローチャートである。
【0050】
まず上記第1のテーブル作成手段511は、上記第1のテーブル51を初期化し(図7、S701)、続いて物理アドレスの所定の5ビットが‘01000’のページAのフラグ領域90を参照する(図7、S702)。尚、第1のテーブル作成手段511も上記物理ブロックテーブル52に使用中物理ブロックと登録されている物理ブロックBのフラグ領域90のみを参照するようにしてもよい。
【0051】
フラグ領域90を参照すると、上記第1のテーブル作成手段511は、フラグ領域9
0の値が有効値であるか無効値であるかを判断する(図7、S703)。フラグ領域90が有効値であると判断した場合、第1のテーブル作成手段511は、当該フラグ領域90が属するページAの物理アドレスと、当該ページAに格納された第2のテーブル80が保持する識別番号(本実施の形態では、論理アドレスの上位13ビットを含む)とを取得する(図7、S704)。この識別番号は、図8に示す第1のテーブル51内の1つの領域50を特定するための識別子である。本実施の形態では、識別番号は論理アドレスの上位13ビットのビット列を含んでいるものとする。
【0052】
図8に示すように、上記第1のテーブル作成手段511は取得した識別番号が示す領域50に、第2のテーブルが格納されているページAの物理アドレスの所定の16ビットを第1の物理アドレスとして登録する(図7、S705)。所定の16ビットには、第2のテーブル80を格納することができるページAの物理アドレスに共通する、‘01000’の5ビットは含まない。このような所定の16ビットを登録する理由は次に示す。本実施の形態の不揮発性メモリ2は、2^21個のページA(1ギガバイト/512バイト)があり、ページAの物理アドレスは21ビットにて表現される。更に上述したように第2のテーブル80を格納することができるページAは、物理アドレスの所定の5ビットが‘01000’である。そのため、物理アドレスの所定の16ビットを特定することができれば、不揮発性メモリ2内に格納された全部の第2のテーブル80から所定の1つの第2のテーブルを特定することができるためである。
【0053】
このように、第2のテーブル80が格納することができるページAを予め決めておくことで、第1のテーブルの容量を小さくすることができる。尚、物理アドレスの所定の5ビットが‘01000’であるページAが第2のテーブル80を格納するページAであることは記憶装置1内のROM等のメモリに記憶させておく。本実施の形態では、物理アドレスの所定の5ビットが‘01000’であるページAが第2のテーブル80を格納するページAとなっている。しかし、物理アドレスの所定の5ビットが‘01000’以外のページAが第2のテーブル80を格納するようにしてもよい。
【0054】
第1の物理アドレスを登録すると、上記第1のテーブル作成手段511は、参照すべき全てのフラグ領域90を参照したか否かを判断する(図7、S706)。全てのフラグ領域90を参照していないと判断したとき、第1のテーブル作成手段511は、未だ参照していない他のフラグ領域90の参照を行う(図7、S702)。そして、全てのフラグ領域90を参照したと判断するまで、同様の処理を繰り返す。
【0055】
尚、本実施の形態では、有効値を示すフラグ領域90と対応する第2のテーブル80は、不揮発性メモリ2内に2^13個格納されているので、上記領域50は2^13個となる。よって第1のテーブル51の容量は、16ビット×2^13=16キロバイトとなる。有効値を示すフラグ領域90と対応する第2のテーブルが2^13個である理由は後述する。
【0056】
一方、フラグ領域90が無効値であると判断した場合、上記第1のテーブル作成手段511は、上記のように物理アドレスや識別番号を第1のテーブル51に登録せずに、手順706に移行する。
【0057】
このようにして、物理ブロックテーブル52、論理ブロックテーブル53、第1のテーブル51が作成されるが、これらのテーブルを作成する順序は、既に説明した順序に限定されるものではなく、例えば3つのテーブルを同時に作成するようにしてもよい。
【0058】
また、上述の説明では、物理ブロックテーブル52、論理ブロックテーブル53、第1のテーブル51を別個のテーブル作成手段が独立して作成したが、以下のようにして、各テーブル作成手段が連携して物理ブロックテーブル52、論理ブロックテーブル53、第1のテーブル51を作成してもよい。
【0059】
例えば上記物理ブロックテーブル作成手段521が物理ブロックテーブル52を作成するにあたって、物理ブロックB内にデータが格納されているか否か判断する際に、当該物理ブロックBに第2のテーブル80を検知する場合がある。このように上記物理ブロックテーブル作成手段521が第2のテーブル80を検知すると、逐次に上記論理ブロックテーブル作成手段531と上記第1のテーブル作成手段511とが、当該第2のテーブル80に対応するフラグ領域90の値が有効値又は無効値であることを判断する。更に、論理ブロックテーブル作成手段531は、フラグ領域90が有効値を示す場合、当該第2のテーブル80が示す第2の物理アドレスCaにて特定される論理ブロックCを、’有効’として論理ブロックテーブル53に登録する。一方、第1のテーブル作成手段511は、フラグ領域90が有効値を示す場合、当該第2のテーブル80に格納されているページAの物理アドレスの所定の16ビットを当該第2のテーブル80が保持する識別番号が示す領域50に登録する。
【0060】
また電源投入時に、上記作成手段510にあるアドレスレジスタ作成手段551が、以下に示す方法で、上記アドレス制御部5のRAM上に図9(a)に示すアドレスレジスタ55と図9(b)に示すエントリカウンタ54を作成してもよい。
【0061】
まず、アドレスレジスタ作成手段551は、アドレスレジスタ55を初期化する。そして、上記物理ブロックテーブル52を参照して、所定数の消去済み物理ブロックの物理アドレスをアドレスレジスタ55に登録する。
【0062】
物理ブロックBの物理アドレスを登録すると、上記アドレスレジスタ作成手段551は、図9(b)に示すようにアドレスレジスタ55に登録した各物理ブロックBのデータが書き込まれたページ数(即ち、‘0’)を、上記RAM上に設けられたエントリカウンタ54に登録する。
【0063】
尚、アドレスレジスタ55の更新、及び、エントリカウンタ54へのページ数の登録は電源投入時に行わず、例えば不揮発性メモリ2のデータの書込処理時に行うようにしてもよい。また、以下の説明では、エントリカウンタ54にはデータが格納されているページ数が登録される場合について説明する。尚、上記アドレスレジスタ作成手段551は、データが格納されていないページ数や、各物理ブロックBに構成された論理ブロックCの数をエントリカウンタ54に登録してもよい。
【0064】
<書込みに関して>
上記物理ブロックテーブル52、論理ブロックテーブル53、上記第1のテーブル51が作成されると、上記記憶装置1は、データ入出力装置7からのデータの書込みを受け付けることができるようになる。尚、本実施の形態では、不揮発性メモリ2に構成される論理ブロックCは16キロバイトとする。そのため、当該不揮発性メモリ2には、1ギガバイト/16キロバイト=2^16個の論理ブロックCが構成されることになるので、論理ブロックCを表現するには、16ビットの情報が必要である。そこで、データ入出力装置7から記憶装置1へのデータの書込要求は、16キロバイトのデータと16ビットの論理アドレスSとから構成されることになる。
【0065】
上記データ入出力装置7から送信される書込要求は、記憶装置1に備えられた入出力制御部4にて受信される。
【0066】
データと論理アドレスSを受信すると、入出力制御部4は、受信したデータを書込単位である512バイト毎に32のデータブロックに分割すると共に、バッファ手段31〜34に、8データブロックづつ転送する。入出力制御部4は、受信した書込要求に含まれる論理アドレスSを記憶装置1に設けられた書込手段100に転送する。
【0067】
該書込手段100は論理アドレスSを受け取ると、書込対象となるデータで構成する論理ブロックC1をどの物理ブロックBに構成するかを決定する。尚、本実施の形態では、上記バッファ手段31〜34と不揮発性メモリ2とが4本のバスD1〜4とで接続されているので、上記書込手段100は論理ブロックC1を4つの物理ブロックBにまたがって構成するものとする。
【0068】
まず、上記書込手段100は、4つの物理ブロックの物理アドレスをアドレスレジスタ55に登録する。4つの物理ブロックを登録するのは、本実施の形態では、記憶装置1にはバスD1〜D4が4本備えられているからである。例えば図9(a)に示すように上記アドレスレジスタ55に4つの物理ブロックB1〜B4を登録すると、書込手段100は、これらの物理ブロックB1〜B4を書込候補物理ブロックとして決定する(図10、S1001)。物理ブロックBの物理アドレスを登録すると、書込手段100は、上記のように図9(b)に示すように、アドレスレジスタ55に登録した各物理ブロックBのデータが書き込まれたページ数を、上記エントリカウンタ54に登録する。この時は、書込手段100がアドレスレジスタ作成手段551として機能することになる。
【0069】
尚、アドレスレジスタ55に物理ブロックBが予め登録されている場合、書込手段100は予め登録されている物理ブロックBを書込候補物理ブロックとして決定する。
【0070】
次に、上記書込手段100は、上記エントリカウンタ54を参照して、上記書込候補物理ブロックを書込物理ブロックとするか否かを決定する(図10、S1002)。ここでは、書込対象となる32のデータブロックを4つの物理ブロックBに格納するので、1つの物理ブロックBには8つのデータブロックが格納されることになる。そこで、上記書込手段100は、上記4つの書込候補物理ブロックと対応するエントリカウンタ54の値を参照し、当該値が24以下であるか、即ち8ページ以上データが書き込まれていないページがあるか否かを確認する。
【0071】
ここでは図9(b)に示すように物理ブロックB1〜B4に対応するエントリカウンタ54の値が‘8’となっているので、上記書込手段100は、上記書込候補物理ブロックB1〜B4を書込物理ブロックB1〜B4と決定する。
【0072】
尚、書込候補物理ブロックB1〜B4に対応したエントリカウンタ54の値が25以上の値を保持している場合、上記書込手段100は、当該書込候補物理ブロックB1〜B4を書込不能物理ブロックと決定する。続いて、上記書込手段100は、上記物理ブロックテーブル52を参照し、決定した書込不能物理ブロックと同じ数の消去済み物理ブロックBを選択する。更に、上記書込手段100は、ここで選択した消去済み物理ブロックを書込物理ブロックと決定し、上記物理ブロックテーブル52に使用中物理ブロックとして登録する(図10、S1003〜S1004)。更に、上記書込手段100は、ここで上記物理ブロックテーブル52に使用中物理ブロックとして登録した書込物理ブロックの物理アドレスを上記アドレスレジスタ55に登録する(図10、S1005)。
【0073】
尚、アドレスレジスタ55に、エントリカウンタ54の値が25以上の物理ブロックBの物理アドレスが保持されているのは、前回の書込処理から今回の書込処理までの間に、アドレスレジスタ55の更新が行われない場合があるためである。即ち、アドレスレジスタ55が更新されないと、前回のデータの書込みにより、全ページAにデータが書込まれた物理ブロックBの物理アドレスが、上記アドレスレジスタ55に保持された状態となるためである。
【0074】
以上のように、上記書込手段100は4個の書込物理ブロックを決定すると、エントリカウンタ54を参照して、論理ブロックC1を構成するデータブロックを書込む書込ページを各書込物理ブロックから8ページづつ選択する(図10、S1006)。尚、本実施の形態においては、上記書込手段100は、物理アドレスの小さいページAから順番にデータを書込むようになっている。そのため、図9(b)のように書込物理ブロックB1〜B4に対応するエントリカウンタ54の値が‘8’となっている場合、物理ブロックB1〜B4を構成するページAのうち、物理アドレスの1番小さいページAから8番目に小さいページA(図12の一点鎖線Lで囲まれたページ)にデータが書き込まれていることになる。
【0075】
そこで、上記書込手段100は、書込物理ブロックB1〜B4を構成するページAのうち、物理アドレスが9番目に小さいページAから16番目に小さいページAを書込ページとして決定し、決定した書込ページの物理アドレスを記憶する。
【0076】
次に、上記書込手段100は、上記データ入出力装置7からデータと共に転送された論理アドレスSの所定ビットS1(本実施の形態では上記のように領域50が2^13個あるので上位13ビット)を用いて、上記第1のテーブル51の1つの領域50を特定する(図10、S1007)。尚、論理アドレスのうち所定の13ビット、例えば下位13ビットを用いて1つの領域50を特定してもよい。
上記書込手段100は、特定した領域50に登録された上記第1の物理アドレス、即ち第2のテーブル80が格納されたページAの物理アドレスの所定の16ビットを読み取り、当該読み取った物理アドレスに‘01000’を付加して第2のテーブル80が格納されたページAの物理アドレスを生成する。
【0077】
上記書込手段100は、第2のテーブル80が格納されたページAの物理アドレスを生成すると、該生成した物理アドレスのページAに、例えば第2の物理アドレス等が既に格納されているか否か判断する(図11、S1008)。
【0078】
上記書込手段100は、ページAに既にデータ等が格納されていると判断すると、当該ページAの管理領域Abに格納された第2のテーブル80を書換テーブルとして、バッファ31〜34等に読み出すと共に、当該ページAに格納された第2のテーブル80を無効テーブルとして認定する(図11、S1009)。この時、上記書込手段100は、上記書換テーブルで既にバッファ31〜34に格納された他のデータに上書きしてしまわないように、該書換テーブルをバッファ31〜34の空領域に読み出す。
【0079】
そして、書込手段100は、論理アドレスSの他の所定ビットS2、ここでは下位3ビットを用いて、読み出した書換テーブルの更新領域81を特定し、当該更新領域81に第2の物理アドレスCaが書き込まれているか否かを判断する。尚、本実施の形態では、書換テーブル(第2のテーブル80)は8個の更新領域81から構成されている。8個の更新領域81から構成されている理由は後述する。
【0080】
第2の物理アドレスCaが更新領域81に書き込まれている場合のみ、上記書込手段100は、当該第2の物理アドレスCaにて特定される論理ブロックCを‘無効’として上記論ブロックテーブル53に登録する。
【0081】
次に、上記書込手段100は、上記特定した更新領域81として判断された書込ページを代表する代表ページの物理アドレスの所定の16ビットを第2の物理アドレスCaとして書き込む(図11、S1010)。尚、所定の16ビットのみを更新領域80に登録するのは、本実施の形態では、全代表ページarの物理アドレスの所定の5ビットが‘00000’であるためである。尚、代表ページarが物理アドレスの所定の5ビットが‘00000’であるページAを指す旨は、上記書込手段100が予め記憶していてもよいし、記憶装置1内のROM等のメモリに記憶させておいてもよい。
【0082】
このように、書換テーブルをバッファ手段31〜34等に読み出して、更新領域81を書き換えるのは、不揮発性メモリ2では、データの上書きを行うことができないためである。
【0083】
以上のように、更新領域81に第2の物理アドレスCaを書き込むと、上記書込手段100は、バスD1〜D4を使ってバッファ手段31〜34にあるデータブロックを書込ページのデータ領域Aaに書込む。また、書込手段100は、上記書換テーブルを所定の1つ又は複数の書込ページの管理領域Abに書込み、連鎖情報を以下に示すように1又は複数の書込ページの管理領域Abに書込む(図11、S1011)。この連鎖情報とは、読出手段60等が論理ブロックCを構成する代表ページarに書き込まれたデータを読み取ることで、当該論理ブロックCを構成する他の書込ページの物理アドレスを得るための情報である。
【0084】
例えば図12に示すように、論理ブロックC1の代表ページarがページ1であるとすると、該ページ1の管理領域Abには論理ブロックC1のページ2の物理アドレスが連鎖情報として書込まれる。同様に、ページNの管理領域Abに、ページ(N+1)の物理アドレスを表す連鎖情報を格納すれば、後述する読出手段60は、この連鎖情報を辿っていくことで、図12に示す論理ブロックC1を構成する全てのページ2〜32の物理アドレスを得ることができる。
【0085】
もっとも、この場合、読出手段60が、ページ20の物理アドレスを得るためには、ページ1からページ19に格納された連鎖情報を読み取る必要が生じる。従って、その分だけ読出手段60のページ20に対するアクセスタイムが長くなる。
【0086】
そこで、該アクセスタイムを短くするために、例えば代表ページar(ページ1)の管理領域Abに、ページ2からページ32までの物理アドレスを連鎖情報として書き込むようにしてもよい。このようにすれば、読出手段60は、ページ1の管理領域Abに格納された連鎖情報を読み取ることにより、ページ2からページ32の物理アドレスが得られる。その結果、各ページに対するアクセスタイムが短くなる。
【0087】
尚、論理ブロックC1を構成する各ページAの物理アドレスは、例えば当該論理ブロックC1が構成される各物理ブロックB1〜B4の先頭ページ1〜4の物理アドレスから容易に得ることができる。ページ20の物理アドレスを得るのであれば、ページ4の物理アドレスに4を加算すればよい。このため、ページ1(代表ページar)の管理領域Abに、ページ2からページ32までの物理アドレスを連鎖情報として書き込む代わりに、ページ2からページ4までの物理アドレスを連鎖情報として書き込むようにしてもよい。
【0088】
また、上記管理領域Abには、連鎖情報以外にも例えば第2のテーブル80や誤り訂正情報等の管理情報が書き込まれることがある。ところが管理領域Abにはそれほど大きな領域を確保できないため、連鎖情報を管理領域Abに格納してしまうと、第2のテーブル等を当該管理領域Abに格納できなくなる。
【0089】
例えば図12に示す論理ブロックC1を構成するページ1〜32のうち、ページ2、6、10、14、18、22、26、30の管理領域Abは、第2のテーブル80を格納することができるものとする。
【0090】
仮に既述の通り、ページNの管理領域Abに、ページ(N+1)の物理アドレスを表す連鎖情報を格納するならば、第2のテーブル80を格納したページ2、6、10、14、18、22、26、30の管理領域Abにも、連鎖情報を書き込むことになる。ページ2、6、10、14、18、22、26、30の管理領域Abに連鎖情報が格納されると、当該管理領域Abに第2のテーブル8を格納するための容量を確保することができない場合が生じる。そこで、上記書込手段100は、管理領域Abに第2のテーブル8が格納されているページ以外のページAに連鎖情報を書き込む。
【0091】
具体的には、ページ{(4k+3)、k=0、1、2、…、7}の物理アドレスを表す連鎖情報C11を、第2のテーブル8のあるページ(4k+2)ではなく、ページ(4k+1)の管理領域Abに書き込む。よって、ページ(4k+1)の管理領域Abには、図12に示すように、ページ(4k+2)の物理アドレスを表す連鎖情報C10と、ページ(4k+3)の物理アドレスを表す連鎖情報C11とが書き込まれることになる。更に、ページ(4k+4)の物理アドレスを表す連鎖情報C12を、ページ(4k+3)の管理領域Abに、ページ(4K+1)の物理アドレスを表す連鎖情報C13を、ページ(4k+4)の管理領域Abに書き込む。
【0092】
このように連鎖情報を書き込めば、第2のテーブル80を格納する管理領域Ab以外の管理領域Abに連鎖情報を格納することができる。
【0093】
尚、ページNの管理領域Abに、ページ(N+1)の物理アドレスを表す連鎖情報を格納するならば、読出手段60はページNの管理領域Abを参照することで、ページ(N+1)のページの物理アドレスを表す連鎖情報が得られる。一方、上述のような連鎖情報の書込みを行った場合、読出手段60は第2のテーブル80のあるページ(4k+2)の管理領域Abを参照しても、次のページ(4k+3)の物理アドレスを表す連鎖情報は得られない。このため、読出手段60は、ページ(4k+1)に対して読み出しを行う際に、連鎖情報C10だけでなく、全ての連鎖情報、ここでは連鎖情報C11も読み出しておき、連鎖情報C11を保持しておく。そして、ページ(4k+2)に対して読み出しを行ってから、既に保持している連鎖情報C11を用いて、ページ(4k+3)の物理アドレスを取得すればよい。
【0094】
また、上述の例では、図12に示すようには、ページ(4k+1)の管理領域Abに、連鎖情報C10、C11とを書き込んだが、ページ(4k+1)の管理領域Abに連鎖情報C12、C13を書き込んでもよい。
【0095】
しかし、管理情報には、誤り訂正情報など他に欠かせないものもあるため、ページ(4k+1)の管理領域Abに全ての連鎖情報C10〜C13を書き込むための容量を確保することができなかったり、書き込むことが適当でない場合がある。そこで、1つの管理領域Abに書き込まれる連鎖情報の数を予め決めておく。書込手段100は、1つの管理領域Abに一定数の連鎖情報を書き込むと、未だ書き込んでいない連鎖情報を他のページAの管理領域Abに書き込むようにする。ここでの所定数は、1つの論理ブロックを構成するページの数の仕様などに基づいて定めればよい。
【0096】
データ、書換テーブル、連鎖情報の書込処理が終了すると、上記書込手段100は、書換テーブルの識別番号にて特定される領域50に、当該書換テーブルを書き込んだ書込ページの物理アドレスの所定の16ビットを第1の物理アドレスとして書き込む(図11、S1012)。次に、上記書込手段100は、上記で無効テーブルと認定した第2のテーブル80が格納されたページAのフラグ領域90の値を、無効値に更新する(図11、S1013)。
【0097】
上記では、不揮発性メモリ2のデータの書込単位はページAであると説明したが、本発明の記憶装置1では、上記フラグ領域90は、同一ページ内の別の領域とは独立して更新することができる。即ち、データの消去後のフラグ領域90の値が’00’である場合、‘00’を有効値とし、’FF’無効値とする。すると上記書込手段100は、フラグ領域90の値を他の領域から独立して有効値から無効値(即ち、‘00’→‘FF’)に更新することができるようになる。尚、不揮発性メモリ2のデータ消去後のフラグ領域90の値が’FF’である場合は、’FF’を有効値とし、’00’を無効値とする。尚、フラグ領域90を無効値にする処理は、書換テーブルをバッファ手段31〜34等に読み出すと同時に行うようにしてもよい。
【0098】
このように無効テーブルのフラグ領域90の値を無効値に更新するのは、記憶装置1の電源が切れて、その後電源が投入された時に、上記論理ブロックテーブル作成手段531が、無効テーブルに登録されている第2の物理アドレスCaにて特定される論理ブロックCまでも論理ブロックテーブル53に‘有効’として登録するからである。また、フラグ領域90を更新しなければ、同じ識別番号を保持する第2のテーブル80が複数個不揮発性メモリ2内に存在することになる。そのために識別番号が同じ第2のテーブル80が複数あると、上記第1のテーブル作成手段511が登録する第1の物理アドレスが定まらないためである。
【0099】
このように、無効値に更新することで、上記更新領域81の書換後、本発明の記憶装置1の電源が切れ、その後電源が投入された時、第1のテーブル作成手段511は、フラグ領域Abが有効な第2のテーブル80が格納されたページAの物理アドレスを取得することができる。よって、第1のテーブル作成手段511は、有効な第2のテーブルの物理アドレスの所定の16ビットを第1の物理アドレスとして第1のテーブル51に登録するようになる。
【0100】
上記書込手段100は、手順S1013でフラグ領域90の値を無効値に更新すると、上記エントリカウンタ54と論理ブロックテーブル53とを更新する(図11、S1014)。
【0101】
エントリカウンタ54の更新は、例えば、上記書込物理ブロックB1〜B4に対応するエントリカウンタ54が保持する値に、書込ページ数を加えることである。論理ブロックテーブル53の更新は、データを書き込んだ代表ページarが属する論理ブロックCを‘有効’として上記論理ブロックテ−ブル53に登録することである。
【0102】
また、上記書込手段100は、手順S1008で第2のテーブル80が格納されたページAにデータが格納されていないと判断した場合、上記のように第2のデーブルを書換データとしてバッファ31〜34に読み出さずに、手順1010に移行する。
【0103】
また、上記アドレスレジスタ55は、例えば、記憶装置1が書込要求を受信したとき又は、所定の周期でアドレスレジスタ作成手段551にて更新されるようになっている。該更新とは、例えば、アドレスレジスタ作成手段551が、所定の物理ブロックBに対応するエントリカウンタ54が保持する値を参照し、例えばエントリカウンタ54の値が32となった物理ブロックBの物理アドレスをアドレスレジスタ55から抹消することである。尚、アドレスレジスタ55が更新されると、エントリカウンタ54の値は、アドレスレジスタ作成手段551にて自動的に0に更新される。
【0104】
また、電源投入時に関する説明において、上記物理ブロックテーブル作成手段521が、物理ブロックが不良であるか否かを判断した。上記書込手段100が書込みを行う際にも、上記書込手段100は、書込物理ブロックが不良ブロックであるか否かを判断してもよい。この場合には、上記書込手段100を、上記不良物理ブロック判断手段522、上記使用状態設定手段523、上記有効状態設定手段532として動作させる。
【0105】
<データの読み出しに関して>
上述のように本発明の記憶装置1の不揮発性メモリ2の記憶容量は、1ギガバイトであり、論理ブロックCは16キロバイトであるので、当該不揮発性メモリ2には、2^16個の論理ブロックCが構成されることになる。そこで、不揮発性メモリ2内に構成された1つの論理ブロックCを表現するには、16ビットの情報が必要である。
【0106】
そのため、例えば上記データ入出力装置7から送信されるデータの読出要求には、読出対象の論理ブロックCを特定するための16ビットの論理アドレスSが含まれる。
【0107】
例えば図12に示す論理ブロックC1の読出要求が上記データ入出力装置7から記憶装置1に送信されると、当該読出要求は、上記入出力制御部4にて受信され、該入出力制御部4は読出要求を受信すると、該読出要求を読出手段60に転送する。
【0108】
上記読出手段60は、読出要求を受け取ると、図13に示すように当該読出要求に含まれる論理アドレスSの上位13ビットS1を用いて、上記第1のテーブル51の1つの領域50を特定する(図14、S1401)。
【0109】
上記読出手段60は、特定した領域50に登録された第1の物理アドレスTn(n:0〜2^13−1)を読み取り、更に読み取った第1の物理アドレスに‘01000’を付加して、第2のテーブル80が格納されたページAの物理アドレス(Tn+01000)を生成する(図14、S1402)。
【0110】
次に、読出手段60は、上記論理アドレスの下位3ビットS2を用いて上記生成した物理アドレスのページAに格納された第2のテーブル80の1つの更新領域81を特定する(図14、S1403)。読出手段60は、ここで特定した更新領域81に格納されている第2の物理アドレスCan(n:0〜2^3−1)を読出し、当該第2の物理アドレスCanに‘00000’を付加して代表ページarの物理アドレス(Can+00000)を生成する(図14、S1404)。
【0111】
このように2つのテーブルを使用して代表ページarの物理アドレスを特定することで、以下に示すようにRAMに設けられる第1のテーブル51の容量を削減することができる。
【0112】
例えば上記のように1つの第2のテーブル80が、8つの更新領域81から構成されており、8つの第2の物理アドレスCaを格納することができる場合、第1のテーブル51の記憶容量は以下のようになる。
【0113】
1つの第2のテーブル8で8つの代表ページarに対応する第2の物理アドレスCaを登録することができるので、2^16個の代表ページarを特定するのに必要な第2のテーブル8の数は2^16/2^3=2^13個になる。
【0114】
これにより、第2のテーブル80を特定するための第1のテーブル51は、2^13個の第1の物理アドレスを保持すればよく、よって領域50は2^13個存在することになる。従って、第1のテーブル51の容量は、16ビット×2^13=16キロバイトとなる。
【0115】
一方、RAMに設けたテーブルのみで第2の物理アドレスCaを特定する場合、当該テーブルは2^16個の第2の物理アドレスCaを保持する必要がある。この場合、テーブルの容量は、16ビット×2^16=128キロバイトとなる。このようにして、本発明の記憶装置1では、RAMの容量の削減が図られている。
【0116】
論理ブロックC1の代表ページar(図12のページ1)の物理アドレスを生成すると、読出手段60は、代表ページarに書き込まれたデータと連鎖情報C10、C11を、当該代表ページarと接続されたバスD1を利用してバッファ31に読み出す(図14、S1405)。
【0117】
次に、読出手段60は、読み出した連鎖情報C10、C11を参照し、当該連鎖情報C10、C11が示す物理アドレスのページAに格納されたデータと連鎖情報を読み出す。ここでは、連鎖情報C10はページ2、連鎖情報C11はページ3の物理アドレスを示しているため、読出手段60は、ページ2、ページ3に格納されたデータと連鎖情報をバスD2、バスD3を使用して、バッファ32、33に読み出す。
【0118】
ここで読出手段60は、ページ2、ページ3に格納されたデータと連鎖情報とを2本のバスD2、D3を利用して読み出すことができるので、読出処理を迅速に行うことができる。また、(4k+1)ページの管理領域Abに連鎖情報C10、C11、C12が格納されている場合、読出手段60は、4本のバスD1〜D4を利用して、ページ(4k+1)(4k+2)、(4k+3)、(4k+4)、に格納されたデータと連鎖情報を同時にバッファ31〜34に読み出すことができる。
【0119】
このように読出手段60は、連鎖情報が示す物理アドレスのページAに格納されたデータと連鎖情報の読出処理を行い、論理ブロックの最後のページまで上記処理を行う。
【0120】
バッファ31〜34にデータを読み出すと、読出手段60は、当該データを上記入出力制御部4を介して、例えば上記データ入出力装置7に送信する(14、S1406)。
【0121】
また、上記読出要求には、論理ブロックC1の例えばページ20に格納されたデータよりもページ番号の大きいデータのみを読み出すことを指示する頭出要求がある。この頭出要求には、上記論理アドレスSと、頭出要求の対象となるデータの先頭の論理アドレスを示す5ビットの論理アドレス(以下、「頭出アドレス」という)が含まれている。
【0122】
上記データ入出力装置7から記憶装置1に頭出要求が送信されると、上記入出力制御部4は当該頭出要求を受信し、上記読出手段60に当該頭出要求に含まれる論理アドレスSと頭出アドレスを転送する。
【0123】
上記読出手段60は論理アドレスSと頭出アドレスを受信すると、当該頭出アドレスが何ページ目のデータを示しているかを判断する。次に、読出手段60は、論理アドレスSを用いて、上記のように代表ページarの物理アドレスを特定する。代表ページarの物理アドレスを特定すると、読出手段60は、連鎖情報を用いて頭出アドレスが示しているページ(ここでは、ページ20)よりも大きいページに書き込まれたデータを読み出す。このように読出手段60が頭出要求の読出しの対象となるデータにアクセスする際にも連鎖情報を用いることができる。
【0124】
ところで、上記第2のテーブル80は、複数のページAにまたがって構成されていてもよい。例えば、第2のテーブル80は、物理アドレスが連続する4ページにまたがって構成されるようにしてもよい。また、第2のテーブル80が4ページにまたがって構成されている場合、当該4ページのうち、所定の1つのページに当該第2のテーブル80の有効又は無効を示すフラグ領域90を設けるようにする。
【0125】
<消去に関して>
上記のように、所定の周期で書込処理が行われると、上記不揮発性メモリ2には、有効なデータと無効なデータが格納された物理ブロックBが多数存在するようになる。不揮発性メモリのデータの消去単位は物理ブロックBであるため、このような有効なデータと無効なデータがある物理ブロックBを消去すると、有効なデータまでも消去してしまうことになる。
【0126】
このような状況で、有効なデータを消去せずに、効率よく無効なデータのみを消去し、不揮発性メモリ2の空き容量を増やすためには、以下のようにデータの消去を行う。
【0127】
消去手段70は、まず上記物理ブロックテーブル52を参照し、上記物理ブロックテーブル52に使用中物理ブロックとして登録された物理ブロックBに構成されている論理ブロックの状態を上記論理ブロックテーブル53を参照して調べる(図15、S1501)。
【0128】
上記消去手段70は、上記物理ブロックテーブル52に使用中物理ブロック登録された物理ブロックBのうち、論理ブロックテーブルに‘有効’として登録されている有効論理ブロックが2以下しか構成されていない物理ブロックBを消去物理ブロックとして決定する(図15、S1502)。
【0129】
消去手段70は、消去物理ブロックに構成される論理ブロックCと対応する代表ページarに格納された連鎖情報を用いて、当該有効論理ブロックがどの物理ブロックBに構成されているかを把握する(図15、S1503)。
【0130】
続いて、上記消去手段70は、消去物理ブロックに構成された有効論理ブロックC全体(一部が消去物理ブロックに構成されている有効論理ブロックCも含む)を退避データとしてバッファ31〜34に読み出す。尚、退避データには、当該退避データに含まれる有効論理ブロックCの代表ページarの物理アドレスを特定する第2の物理アドレスが登録された第2のテーブル80も含まれる。
【0131】
退避データを読み出すと、消去手段70は、上記書込手段100に当該退避データをバッファ31〜34に読み出した旨を通知する。
【0132】
ここで、書込手段100は、データ入出力装置7から送信されたデータの書込ページの選択と同様の方法で、退避データを書き込む書込ページを選択する(図15、S1504)。書込ページを選択すると、書込手段100は書込ページの物理アドレスに基づいて、退避データに格納されている連鎖情報を書き換える(図15、S1505)。例えば、バッファ31〜34に読み出された論理ブロックCの代表ページarの管理領域Abに、書込ページの全ての物理アドレスを書き込んでおく。連鎖情報を書き換えると、書込手段100は、バッファ31〜34に読み出された退避データを書込ページに書き込む(図15、S1506)。また、上記書込手段100は、退避データに含まれる第2のテーブル80を、退避データの書込ページのうち、物理アドレスの所定の5ビットが‘01000’であるページAに書き込む。上記書込手段100は、当該第2のテーブル80の識別番号に基づいて特定される領域50を、当該第2のテーブル80を書き込んだページAの物理アドレスの所定の16ビットに更新する。
【0133】
上記書込手段100は、退避データを書き込むと、データ入出力装置7から書込要求があった場合と同様に、エントリカウンタ54と、論理ブロックテーブル53を更新する。エントリカウンタ54と論理ブロックテーブル53を更新すると、上記書込手段100は、上記消去手段70に退避データを書き込んだ旨を通知する。
【0134】
上記消去手段70は、該通知を受けると上記消去物理ブロックに格納されているデータを消去するとともに、上記消去物理ブロックを消去済み物理ブロックとして上記物理ブロックテーブル52に登録する(図15、S1507)。
【0135】
上記では、消去物理ブロックを決定する条件として、▲1▼上記物理ブロックテーブル52に使用中物理ブロックとして登録されていること、▲2▼有効論理ブロックが2以下しか構成されていないこととしたが、例えば当該条件にアドレスレジスタ55に物理アドレスが保持されていないことを追加してもよい。また、上記条件は、上記のような場合に限らず、有効論理ブロックが1以下しか構成されていないという条件であっても構わない。このように、無効なデータが多く格納されている物理ブロックBを上記消去物理ブロックとすることで、上記消去手段70は少量のデータを他の物理ブロックへ移動させればよいこととなる。
【0136】
尚、無効なデータの消去のタイミングは、限定されるものでなく、例えば、所定の周期で自動的に消去手段70が行うようにしてもよい。
【0137】
尚、電源投入時に関する説明において、上記物理ブロックテーブル作成手段521が、物理ブロックが不良であるか否かを判断した。上記消去手段70が消去を行う際にも、上記消去手段70は、消去対象の物理ブロックが不良ブロックであるか否かを判断してもよい。この場合には、上記消去手段70を、上記不良物理ブロック判断手段522、上記使用状態設定手段523、上記有効状態設定手段532として動作させる。
【0138】
(実施の形態2)
上記書込手段100は、上記で無効テーブルと認定した第2のテーブル80が格納されたページAのフラグ領域90の値を無効値に更新する処理を行っている。しかし、書込処理をできるだけ高速に行うためには、このような処理を省かなければならない。
【0139】
そこで、上記書込手段100は、バッファ31〜34に読み出した書換テーブルを書込むページAを以下のように決定し、決定したページAに第2のテーブル80を書き写すことで上記処理を省く。
【0140】
まず、書込手段100は、無効テーブルと同じ物理ブロックB内のページAに、無効テーブルが格納されているページAより物理アドレスが大きく、且つ物理アドレスの所定の5ビットが‘01000’であり書き込み可能であるという条件を満たすページAがあるかを判断する。所定の5ビットが‘01000’であるという条件は、本実施の形態では、物理アドレスの所定の5ビットが‘01000’のページAのみ上記第2のテーブル80を格納することができるためである。この条件を満たすページAがある場合、上記書込手段100は、当該条件を満たすページのうち、物理アドレスの最も小さいページAを書換テーブルを格納するページAとして決定する。上記書込手段100は、このように決定したページAに書換テーブルを格納する際に、無効テーブルのフラグ領域90の値を無効値に更新する処理は行わないようにする。
【0141】
上記条件を満たすページAがない場合、上記書込手段100は、無効テーブルが格納されている物理ブロックB以外の所定の物理ブロックBに属し、且つ物理アドレスの所定の5ビットが‘01000’であり書き込み可能なページAのうち、最も物理アドレスの小さいページAを書換データの書込ページとして決定する。このように決定したページAに書換テーブルを格納する際には、書込手段100は、実施の形態1と同じように無効テーブルのフラグ領域90の値を無効値に更新する。
【0142】
以上のように書込手段100が、書換テーブルを書き込むページAを決定したとき、上記論理ブロックテーブル作成手段531、第1のテーブル作成手段511は、以下のようにして論理ブロックテーブル53、第1のテーブル51を作成する。
【0143】
記憶装置1に電源が投入されると、上記論理ブロックテーブル作成手段531は、まず上記論理ブロックテーブル53を初期化する(図16、S1601)。続いて、上記論理ブロックテーブル作成手段531は、各物理ブロックBにおいて、以下のような処理を行う。
【0144】
上記論理ブロックテーブル作成手段531は、物理アドレスの下位5ビットが‘01000’であるページAを検出対象ページとして認識する。次に、上記論理ブロックテーブル作成手段531は、当該検出対象ページのうち物理アドレスの大きい検出対象ページから順にフラグ領域90の値を参照し、フラグ領域90の値が有効値である検出対象ページの検出を行う(図16、S1602)。上記論理ブロックテーブル作成手段531は、当該検出処理において、最初に検出対象ページを検出したときは、手順1603を行わずに、当該検出対象ページに格納された第2のテーブル80に登録されている第2の物理アドレスを参照する。上記論理ブロックテーブル作成手段531は、第2のテーブル80に登録されている第2の物理アドレスにて特定される論理ブロックCを‘有効’として上記論理ブロックテーブル53に登録する(図16、S1604)。そして、論理ブロックテーブル作成手段531は、最初に検出した第2のテーブル80が保持する識別番号をメモリ535に記憶する(図16、S1605)。
【0145】
‘有効’として登録すると、論理ブロックテーブル作成手段531は、上記最初に検出した検出対象ページより物理アドレスの小さい検出対象ページのうち、物理アドレスの大きいページから順にフラグ領域90の値を参照し、当該値が有効値の検出対象ページの検出を行う。フラグ領域90の値が有効値である検出対象ページを検出すると、論理ブロックテーブル作成手段531は当該ページAに格納された第2のテーブル80に保持されている識別番号と、上記メモリ535に記憶されている識別番号が同一であるか否かを判断する(図16、S1603〜S1604)。
【0146】
同一でないと判断すると、上記論理ブロックテーブル作成手段531は、当該第2のテーブル80に登録された第2の物理アドレスCaにて特定される論理ブロックCを‘有効’として論理ブロックテーブル53に登録し、当該第2のテーブル80に保持されている識別番号を上記メモリ535に記憶する(図16、S1605)。同一であると判断すると、上記論理ブロックテーブル作成手段531は、当該第2のテーブル80に登録された第2の物理アドレスCaにて特定される論理ブロックCを論理ブロックテーブル53に登録せずに、上記フラグ領域90の値が有効値である検出対象ページの検出を再開する。
【0147】
このようにして、上記論理ブロックテーブル作成手段531は、上記メモリ535に記憶されていない識別番号を保持する第2のテーブル80に登録された第2の物理アドレスCaにて特定される論理ブロックCのみを上記論理ブロックテーブル53に‘有効’として登録する。
【0148】
上記論理ブロックテーブル作成手段531は、所定の物理ブロックBの全検出対象ページのフラグ領域90の参照を行うと(図16、S1606)、上記メモリ535を初期化し、未だ検出対象ページの参照を行っていない物理ブロックBに対して当該検出処理を行う(図16、S1607〜S1608)。
【0149】
また、上記第1のテーブル作成手段511は、電源が投入されると、上記第1のテーブル51を初期化し(図17、S1701)、上記論理ブロックテーブル作成手段531と同様に、各物理ブロックBに対して以下のような処理を行う。
【0150】
上記第1のテーブル作成手段511は、所定の物理ブロックBの検出対象ページのうち、物理アドレスの大きいページAから順にフラグ領域90の値を参照する(図17、S1702)。上記第1のテーブル作成手段511は、当該検出処理において、最初に検出対象ページを検出したときは、手順1703を行わずに、手順1704に移行する。即ち、当該検出対象ページに格納された第2のテーブル80が保持する識別番号にて示されている領域50に、当該検出対象ページの物理アドレスの所定の16ビットを第1の物理アドレスとして登録する(図17、S1704)。そして、第1のテーブル作成手段511は、検出した第2のテーブル80が保持する識別番号をメモリ535に記憶する(図17、S1705)。
【0151】
第1の物理アドレスを登録すると、第1のテーブル作成手段511は、上記最初に検出した検出対象ページより物理アドレスの小さい検出対象ページのうち、物理アドレスの大きい検出対象ページから順にフラグ領域90の値を参照し、当該値が有効値の検出対象ページの検出を行う。フラグ領域90の値が有効値である検出対象ページを検出すると、第1のテーブル作成手段511は、当該検出対象ページに格納された第2のテーブル80に保持されている識別番号と、メモリ515に記憶されている識別番号が同一であるか否かを判断する(図17、S1703〜S1704)。
【0152】
同一でないと判断すると、第1のテーブル作成手段511は、当該第2のテーブル80が格納されている検出対象ページの物理アドレスの所定の16ビットを第1の物理アドレスとして、当該第2のテーブル80が保持する識別番号にて示される領域50に登録する。そして、第1のテーブル作成手段511は、検出した第2のテーブル80が保持する識別番号をメモリ535に記憶する(図17、S1705)。同一であると判断すると、第1のテーブル作成手段511は、検出対象ページの物理アドレスの所定の16ビット(第1の物理アドレス)を、当該第2のテーブル80に保持されている識別番号にて示される領域50に登録しない。
【0153】
このようにして、上記第1のテーブル作成手段511は、上記メモリ515に記憶されていない識別番号を保持する第2のテーブル80が格納された検出対象ページの物理アドレスの所定の16ビットを第1の物理アドレスとして、当該識別番号にて示される領域50に登録する。
【0154】
上記第1のテーブル作成手段511は、所定の物理ブロックBの全検出対象ページの参照を行うと(図17、S1706)、上記メモリ515を初期化し、未だ検出対象ページの参照をしていない所定の物理ブロックBに対して当該検出処理を行う(図17、S1707〜S1708)。
【0155】
以上のようにして、上記論理ブロックテーブル作成手段531は論理ブロックテーブル53を作成し、上記第1のテーブル作成手段511は第1のテーブル51を作成することで、無効テーブルが格納されている物理ブロックBと同じ物理ブロックBに書換テーブルを書き込む際には、無効テーブルと対応するフラグ領域90の値を無効値に更新しなくても、論理ブロックテーブル53と第1のテーブル51を作成することができる。
【0156】
尚、上記条件が例えば無効テーブルと同じ物理ブロックB内のページAに、無効テーブルが格納されているページAより物理アドレスが小さく、且つ物理アドレスの所定の5ビットが‘01000’であるページAがある場合、書込手段100は当該ページAに書き換えデータを書き込んでもよい。その場合、上記書込手段100は当該条件を満たすページがない場合、無効テーブルが格納されている物理ブロックB以外の所定の物理ブロックBに属し、且つ物理アドレスの所定の5ビットが‘01000’であるページAのうち、最も物理アドレスの大きいページAに書換データを書込むページとして決定する。
【0157】
このような条件の下で、書換データを書き込むページが決定されたときは、上記論理ブロックテーブル作成手段531、第1のテーブル作成手段511は、物理アドレスの最も小さい検出対象ページから順にフラグ領域90の参照を行うようにする。
【0158】
【発明の効果】
以上説明した通り、本発明の記憶装置は、上記第1のテーブルと第2のテーブルとを用いて、論理アドレスを物理アドレスに変換するので、RAMに設けられた第1のテーブルの容量を削減することができる。従って、小型で記憶容量の大きい記憶装置の実現することができる。
【0159】
また、本発明の記憶装置は、論理ブロックを構成する所定の書込単位に当該論理ブロックを構成する物理アドレスを連鎖情報として書き込むことで、当該論理ブロックを構成する全書込単位に素早くアクセスすることができる。
【0160】
物理ブロックに書き込まれたデータの状況を判断し、データを書き込む書込単位や消去する物理ブロックの選択を行うため、データの書き込みまたはデータの消去を効率よく行うことができる。書換テーブルを無効テーブルと異なる物理ブロックに書き込む場合にのみ、無効テーブルのフラグ領域の値を無効値に更新するため、書込処理を高速に行うことができる。
【0161】
また、物理ブロックテーブルが示す不良物理ブロックの使用状態を有効状態にすることによって、書込みの遅延を抑えることができる。その結果、データアクセスの高速化を図ることができる。更に、不良物理ブロックに対応する論理ブロックについて論理ブロックテーブルが示す状態を有効状態にすることによって、消去の遅延を抑えることができる。その結果、データアクセスの高速化を図ることができる。
【図面の簡単な説明】
【図1】記憶装置の概略ブロック図
【図2】不揮発性メモリの構成を示した図
【図3】物理ブロックテーブルの作成手順の具体例を示すフローチャート
【図4】物理ブロックテーブルを示す図
【図5】論理ブロックテーブルの作成手順の具体例を示すフローチャート
【図6】論理ブロックテーブルを示す図
【図7】第1のテーブルを作成する手順の具体例を示すフローチャート
【図8】第1のテーブルを示す図
【図9】アドレスレジスタとエントリカウンタを示す図
【図10】データの書込みの手順を示すフローチャート
【図11】データの書込みの手順を示すフローチャート
【図12】フラッシュメモリに連鎖情報を書き込んだ具体例を示す図
【図13】代表ページの物理アドレスを取得する手順を示した概念図
【図14】データの読出しの手順を示すフローチャート
【図15】データの消去の手順を示すフローチャート
【図16】論理ブロックテーブルの作成手順の具体例を示すフローチャート
【図17】第1のテーブルの作成手順の具体例を示すフローチャート
【符号の説明】
1 記憶装置
2 不揮発性メモリ
51 第1のテーブル
52 物理ブロックテーブル
53 論理ブロックテーブル
54 エントリカウンタ
55 アドレスレジスタ
60 読出手段
70 消去手段
80 第2のテーブル
100 書込手段
511 第1のテーブル作成手段
521 物理ブロックテーブル作成手段
522 不良物理ブロック判断手段
523 使用状態設定手段
531 論理ブロックテーブル作成手段
532 有効状態設定手段

Claims (8)

  1. 物理ブロックを複数個含む1以上の不揮発性メモリと、
    前記不揮発性メモリから選択した複数の物理ブロックを書込物理ブロック群とし、前記書込物理ブロック群を複数の物理ブロックにまたがって所定ページ数毎に分割した単位領域を論理ブロックとして管理し、前記論理ブロックに論理アドレスを割り当てる論理ブロック管理手段と、
    前記論理アドレスに基づき前記論理ブロックの記憶位置を特定するアドレス制御手段と、
    前記アドレス制御手段の特定に従って、前記不揮発性メモリに対してデータの書き込み/読み出しを行うデータ書込/読出手段と、
    を備え、
    前記不揮発性メモリは、前記論理ブロックの記憶位置に係る情報を保持する第2のテーブルを含み、
    前記アドレス制御手段は、
    前記第2のテーブルの記憶位置に係る情報を保持する第1のテーブルを含み、
    前記論理アドレスに基づき前記第1のテーブルを参照し、さらに前記参照によって得られた情報に基づき前記第2のテーブルを参照することにより、前記論理ブロックの記憶位置を特定する、
    記憶装置。
  2. 前記論理ブロック管理手段は、
    データ入出力装置から書込み要求と論理アドレスを受け付けると、
    前記論理ブロックを書き込み可能な前記書込物理ブロック群を決定して、前記書込物理ブロック群の中で論理ブロックを構成するページのつながりを示す連鎖情報を生成し、
    前記連鎖情報を前記不揮発性メモリへ書き込むことを特徴とする請求項1記載の記憶装置。
  3. 前記論理ブロック管理手段は、
    同一論理ブロックを構成する一部のページに複数の前記連鎖情報を書き込むことを特徴とする請求項2記載の記憶装置。
  4. 前記論理ブロック管理手段は、
    前記論理アドレスを構成するビット列のうち、第2の所定のビットに基づいて前記第2のテーブル中の領域を特定し、特定した領域に前記論理ブロックの代表ページのアドレスを特定するための物理アドレスを書き込んで前記第2のテーブルを更新するとともに、
    前記論理アドレスを構成するビット列のうち、第1の所定のビットに基づいて、前記第1のテーブル中の領域を特定し、特定した領域に前記第2のテーブルのアドレスを特定するための物理アドレスを書き込むことを特徴とする請求項1記載の記憶装置。
  5. 前記論理ブロック管理手段は、
    前記論理ブロック単位でデータの有効無効を管理する論理ブロックテーブルを有し、
    前記書込物理ブロック群の中に構成された前記論理ブロックが前記論理ブロックテーブル上で所定数以上「無効」となっている物理ブロック群を消去物理ブロック群として選択し、
    前記論理ブロックテーブル上で「有効」となっている論理ブロックのデータを前記消去物理ブロック群とは別の物理ブロック群へ退避した後、前記消去物理ブロック群を消去することを特徴とする請求項1記載の記憶装置。
  6. 前記論理ブロック管理手段は、
    物理ブロックが不良であるか否かを判定する不良物理ブロック判断手段と、
    不良物理ブロックを検出した場合に、当該物理ブロックを含んで構成される複数の論理ブロックをすべて論理ブロックテーブルでは「有効」と登録する有効状態設定手段と、
    を備えることを特徴とする請求項5記載の記憶装置。
  7. 前記論理ブロック管理手段は、
    電源投入時に不揮発性メモリ内の有効な前記第2のテーブルの有無を検索し、有効な前記第2のテーブルに登録された物理アドレスから論理ブロックテーブルを作成する論理ブロックテーブル作成手段と、
    有効な前記第2のテーブルが格納されているページの物理アドレスを特定する情報を、前記第2のテーブルの保持する識別番号に基づいて前記第1のテーブルに登録する第1のテーブル作成手段と、
    を備えることを特徴とする請求項1記載の記憶装置。
  8. 同一物理ブロック内で、同じ識別番号を保持する有効な前記第2のテーブルを複数検出した場合、
    前記論理ブロックテーブル作成手段は、
    最初に検出された無効でない前記第2のテーブルに登録された第 2 の物理アドレスから論理ブロックテーブルを作成し、
    前記第1のテーブル作成手段は、
    最初に検出された前記第2のテーブルが格納されているページの物理アドレスを特定する情報を前記第1のテーブルに登録する
    ことを特徴とする請求項7記載の記憶装置。
JP2002080380A 2001-03-22 2002-03-22 記憶装置 Expired - Lifetime JP4015866B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002080380A JP4015866B2 (ja) 2001-03-22 2002-03-22 記憶装置

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
JP2001083104 2001-03-22
JP2001-83104 2001-03-22
JP2001257349 2001-08-28
JP2001-257349 2001-08-28
JP2001-260250 2001-08-29
JP2001260250 2001-08-29
JP2002080380A JP4015866B2 (ja) 2001-03-22 2002-03-22 記憶装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2007196755A Division JP4384682B2 (ja) 2001-03-22 2007-07-27 記憶装置

Publications (2)

Publication Number Publication Date
JP2003150443A JP2003150443A (ja) 2003-05-23
JP4015866B2 true JP4015866B2 (ja) 2007-11-28

Family

ID=27346327

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2002080380A Expired - Lifetime JP4015866B2 (ja) 2001-03-22 2002-03-22 記憶装置
JP2007196755A Expired - Lifetime JP4384682B2 (ja) 2001-03-22 2007-07-27 記憶装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2007196755A Expired - Lifetime JP4384682B2 (ja) 2001-03-22 2007-07-27 記憶装置

Country Status (6)

Country Link
US (2) US6938144B2 (ja)
EP (1) EP1244019A3 (ja)
JP (2) JP4015866B2 (ja)
KR (3) KR100862584B1 (ja)
CN (1) CN1276358C (ja)
TW (1) TW564346B (ja)

Families Citing this family (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3969278B2 (ja) * 2002-10-21 2007-09-05 株式会社デンソー 電子制御装置
CN1926616B (zh) * 2004-01-19 2011-09-14 特科2000国际有限公司 使用存储器地址映射表的便携式数据存储设备
JP3924568B2 (ja) * 2004-02-20 2007-06-06 Necエレクトロニクス株式会社 フラッシュメモリにおけるデータアクセス制御方法、データアクセス制御プログラム
TWI249670B (en) * 2004-04-29 2006-02-21 Mediatek Inc System and method capable of sequentially writing a flash memory
US7323400B2 (en) * 2004-08-30 2008-01-29 Micron Technology, Inc. Plasma processing, deposition and ALD methods
JP4561246B2 (ja) * 2004-08-31 2010-10-13 ソニー株式会社 メモリ装置
US7444493B2 (en) * 2004-09-30 2008-10-28 Intel Corporation Address translation for input/output devices using hierarchical translation tables
DE102004062245A1 (de) * 2004-12-23 2006-07-13 Giesecke & Devrient Gmbh Verwaltung von Datenobjekten in einem nichtflüchtigen überschreibbaren Speicher
CN101091223B (zh) * 2004-12-24 2011-06-08 斯班逊有限公司 施加偏压至储存器件的方法与装置
DE102005001038B3 (de) * 2005-01-07 2006-05-04 Hyperstone Ag Verfahren zur Umsetzung von logischen in reale Blockadressen in Flashspeichern
KR100659475B1 (ko) 2005-05-26 2006-12-20 영남대학교 산학협력단 Zigbee MAC 계층의 재정렬 송신 버퍼 구조
JP4940738B2 (ja) * 2006-04-12 2012-05-30 株式会社日立製作所 記憶領域動的割当方法
JP2008009527A (ja) * 2006-06-27 2008-01-17 Toshiba Corp メモリシステム
KR100806343B1 (ko) * 2006-10-19 2008-02-27 삼성전자주식회사 플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑테이블 관리 방법
US7791952B2 (en) 2007-01-30 2010-09-07 Micron Technology, Inc. Memory device architectures and operation
US8365040B2 (en) 2007-09-20 2013-01-29 Densbits Technologies Ltd. Systems and methods for handling immediate data errors in flash memory
US8694715B2 (en) 2007-10-22 2014-04-08 Densbits Technologies Ltd. Methods for adaptively programming flash memory devices and flash memory systems incorporating same
WO2009072102A2 (en) 2007-12-05 2009-06-11 Densbits Technologies Ltd. System and methods employing mock thresholds to generate actual reading thresholds in flash memory devices
WO2009074978A2 (en) 2007-12-12 2009-06-18 Densbits Technologies Ltd. Systems and methods for error correction and decoding on multi-level physical media
JP5032371B2 (ja) 2008-03-01 2012-09-26 株式会社東芝 メモリシステム
WO2009118720A2 (en) 2008-03-25 2009-10-01 Densbits Technologies Ltd. Apparatus and methods for hardware-efficient unbiased rounding
US8219781B2 (en) * 2008-11-06 2012-07-10 Silicon Motion Inc. Method for managing a memory apparatus, and associated memory apparatus thereof
US8458574B2 (en) 2009-04-06 2013-06-04 Densbits Technologies Ltd. Compact chien-search based decoding apparatus and method
US8819385B2 (en) 2009-04-06 2014-08-26 Densbits Technologies Ltd. Device and method for managing a flash memory
US8566510B2 (en) * 2009-05-12 2013-10-22 Densbits Technologies Ltd. Systems and method for flash memory management
US9330767B1 (en) 2009-08-26 2016-05-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory module and method for programming a page of flash memory cells
US8995197B1 (en) 2009-08-26 2015-03-31 Densbits Technologies Ltd. System and methods for dynamic erase and program control for flash memory device memories
TWI450271B (zh) * 2009-09-02 2014-08-21 Silicon Motion Inc 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器
US8730729B2 (en) 2009-10-15 2014-05-20 Densbits Technologies Ltd. Systems and methods for averaging error rates in non-volatile devices and storage systems
US8724387B2 (en) 2009-10-22 2014-05-13 Densbits Technologies Ltd. Method, system, and computer readable medium for reading and programming flash memory cells using multiple bias voltages
CN101727402B (zh) * 2009-10-23 2012-07-04 深圳市江波龙电子有限公司 一种非易失性存储器数据的读写控制方法及系统
US9037777B2 (en) 2009-12-22 2015-05-19 Densbits Technologies Ltd. Device, system, and method for reducing program/read disturb in flash arrays
US8745317B2 (en) 2010-04-07 2014-06-03 Densbits Technologies Ltd. System and method for storing information in a multi-level cell memory
US8468431B2 (en) 2010-07-01 2013-06-18 Densbits Technologies Ltd. System and method for multi-dimensional encoding and decoding
US8964464B2 (en) 2010-08-24 2015-02-24 Densbits Technologies Ltd. System and method for accelerated sampling
US9063878B2 (en) 2010-11-03 2015-06-23 Densbits Technologies Ltd. Method, system and computer readable medium for copy back
US8850100B2 (en) 2010-12-07 2014-09-30 Densbits Technologies Ltd. Interleaving codeword portions between multiple planes and/or dies of a flash memory device
US8417914B2 (en) 2011-01-06 2013-04-09 Micron Technology, Inc. Memory address translation
US8990665B1 (en) 2011-04-06 2015-03-24 Densbits Technologies Ltd. System, method and computer program product for joint search of a read threshold and soft decoding
US8996790B1 (en) 2011-05-12 2015-03-31 Densbits Technologies Ltd. System and method for flash memory management
US9195592B1 (en) 2011-05-12 2015-11-24 Densbits Technologies Ltd. Advanced management of a non-volatile memory
US9110785B1 (en) 2011-05-12 2015-08-18 Densbits Technologies Ltd. Ordered merge of data sectors that belong to memory space portions
US9372792B1 (en) 2011-05-12 2016-06-21 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US9396106B2 (en) 2011-05-12 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US9501392B1 (en) 2011-05-12 2016-11-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of a non-volatile memory module
US8947941B2 (en) 2012-02-09 2015-02-03 Densbits Technologies Ltd. State responsive operations relating to flash memory cells
US8996788B2 (en) 2012-02-09 2015-03-31 Densbits Technologies Ltd. Configurable flash interface
US8996793B1 (en) 2012-04-24 2015-03-31 Densbits Technologies Ltd. System, method and computer readable medium for generating soft information
US8838937B1 (en) 2012-05-23 2014-09-16 Densbits Technologies Ltd. Methods, systems and computer readable medium for writing and reading data
US8879325B1 (en) 2012-05-30 2014-11-04 Densbits Technologies Ltd. System, method and computer program product for processing read threshold information and for reading a flash memory module
US9921954B1 (en) 2012-08-27 2018-03-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for split flash memory management between host and storage controller
US9368225B1 (en) 2012-11-21 2016-06-14 Avago Technologies General Ip (Singapore) Pte. Ltd. Determining read thresholds based upon read error direction statistics
JP6040767B2 (ja) * 2012-12-28 2016-12-07 富士通株式会社 配信システム、配信方法、及びプログラム
US9069659B1 (en) 2013-01-03 2015-06-30 Densbits Technologies Ltd. Read threshold determination using reference read threshold
US10013322B2 (en) * 2013-06-03 2018-07-03 Hitachi, Ltd. Storage apparatus and storage apparatus control method
US9136876B1 (en) 2013-06-13 2015-09-15 Densbits Technologies Ltd. Size limited multi-dimensional decoding
US9413491B1 (en) 2013-10-08 2016-08-09 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for multiple dimension decoding and encoding a message
US9397706B1 (en) 2013-10-09 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for irregular multiple dimension decoding and encoding
US9786388B1 (en) 2013-10-09 2017-10-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9348694B1 (en) 2013-10-09 2016-05-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9536612B1 (en) 2014-01-23 2017-01-03 Avago Technologies General Ip (Singapore) Pte. Ltd Digital signaling processing for three dimensional flash memory arrays
US10120792B1 (en) 2014-01-29 2018-11-06 Avago Technologies General Ip (Singapore) Pte. Ltd. Programming an embedded flash storage device
US9542262B1 (en) 2014-05-29 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Error correction
US9892033B1 (en) 2014-06-24 2018-02-13 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of memory units
US9584159B1 (en) 2014-07-03 2017-02-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Interleaved encoding
US9972393B1 (en) 2014-07-03 2018-05-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Accelerating programming of a flash memory module
US9449702B1 (en) 2014-07-08 2016-09-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Power management
US9524211B1 (en) 2014-11-18 2016-12-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Codeword management
US10305515B1 (en) 2015-02-02 2019-05-28 Avago Technologies International Sales Pte. Limited System and method for encoding using multiple linear feedback shift registers
US10628255B1 (en) 2015-06-11 2020-04-21 Avago Technologies International Sales Pte. Limited Multi-dimensional decoding
US9851921B1 (en) 2015-07-05 2017-12-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory chip processing
US9954558B1 (en) 2016-03-03 2018-04-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Fast decoding of data stored in a flash memory
EP3367251B1 (en) 2016-12-29 2023-06-21 Huawei Technologies Co., Ltd. Storage system and solid state hard disk
US11016903B2 (en) * 2019-08-22 2021-05-25 Micron Technology, Inc. Hierarchical memory systems
CN111885214B (zh) * 2020-06-15 2021-07-02 北京交通大学 一种面向工业异构网络设备的地址统一分配方法及装置
CN113568579B (zh) * 2021-07-28 2022-05-03 深圳市高川自动化技术有限公司 一种存储器、数据存储方法以及数据读取方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5420993A (en) * 1991-06-13 1995-05-30 Unisys Corporation Extended address translation system for pointer updating in paged memory systems
JP3328604B2 (ja) 1992-06-22 2002-09-30 株式会社日立製作所 半導体記憶装置
JPH06231047A (ja) * 1993-02-05 1994-08-19 Fujitsu Ltd アドレス変換方法および装置
US5404485A (en) 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5485595A (en) 1993-03-26 1996-01-16 Cirrus Logic, Inc. Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
JPH06301601A (ja) 1993-04-16 1994-10-28 Sony Corp 情報記録装置及び情報転送装置
JPH0714398A (ja) 1993-06-14 1995-01-17 Hitachi Ltd 半導体記憶装置
US5479627A (en) * 1993-09-08 1995-12-26 Sun Microsystems, Inc. Virtual address to physical address translation cache that supports multiple page sizes
US5446854A (en) * 1993-10-20 1995-08-29 Sun Microsystems, Inc. Virtual memory computer apparatus and address translation mechanism employing hashing scheme and page frame descriptor that support multiple page sizes
JPH08212019A (ja) 1995-01-31 1996-08-20 Mitsubishi Electric Corp 半導体ディスク装置
JP3706167B2 (ja) 1995-02-16 2005-10-12 株式会社ルネサステクノロジ 半導体ディスク装置
JP3197815B2 (ja) 1996-04-15 2001-08-13 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 半導体メモリ装置及びその制御方法
US5827783A (en) * 1996-08-23 1998-10-27 Mosel Vitelic, Inc. Stacked capacitor having improved charge storage capacity
JPH11203191A (ja) 1997-11-13 1999-07-30 Seiko Epson Corp 不揮発性記憶装置、不揮発性記憶装置の制御方法、および、不揮発性記憶装置を制御するプログラムを記録した情報記録媒体
KR100319598B1 (ko) * 1998-03-18 2002-04-06 김영환 플래시메모리어레이액세스방법및장치
US6286092B1 (en) * 1999-05-12 2001-09-04 Ati International Srl Paged based memory address translation table update method and apparatus
US6721843B1 (en) * 2000-07-07 2004-04-13 Lexar Media, Inc. Flash memory architecture implementing simultaneously programmable multiple flash memory banks that are host compatible

Also Published As

Publication number Publication date
EP1244019A3 (en) 2004-11-10
US6938144B2 (en) 2005-08-30
TW564346B (en) 2003-12-01
US20020156988A1 (en) 2002-10-24
KR100862584B1 (ko) 2008-10-09
KR100880415B1 (ko) 2009-01-30
KR20080094882A (ko) 2008-10-27
KR20020075291A (ko) 2002-10-04
JP2007280431A (ja) 2007-10-25
JP2003150443A (ja) 2003-05-23
KR20070104874A (ko) 2007-10-29
CN1276358C (zh) 2006-09-20
USRE42263E1 (en) 2011-03-29
JP4384682B2 (ja) 2009-12-16
CN1376980A (zh) 2002-10-30
EP1244019A2 (en) 2002-09-25

Similar Documents

Publication Publication Date Title
JP4015866B2 (ja) 記憶装置
JP4085478B2 (ja) 記憶媒体及び電子機器システム
US8327068B2 (en) Memory module, memory controller, nonvolatile storage, nonvolatile storage system, and memory read/write method
JP5969130B2 (ja) 情報処理装置
US10303367B2 (en) Mapping table updating method without updating the first mapping information, memory control circuit unit and memory storage device
JPWO2005103903A1 (ja) 不揮発性記憶システム
JP2008198208A (ja) ホストデータ処理装置の動作方法、ホストデータ処理装置並びにデータ格納装置
WO2006098212A1 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
TWI595356B (zh) 資料傳輸方法及使用所述方法的儲存控制器與清單管理電路
JP2008033788A (ja) 不揮発性記憶装置、データ記憶システム、およびデータ記憶方法
JPWO2005083573A1 (ja) 半導体メモリ装置
JP2006277737A (ja) アドレス予測機能をもつ不揮発性記憶装置
WO2006009322A2 (en) Memory card, nonvolatile semiconductor memory, and method of controlling semiconductor memory
TW201810013A (zh) 資料傳輸方法、記憶體儲存裝置及記憶體控制電路單元
TWI660271B (zh) 整理指令記錄方法、記憶體控制電路單元與記憶體儲存裝置
JP2003076605A (ja) ブロック消去型不揮発メモリを搭載した半導体記憶装置とそのデータの書込み・読出し方法
JPWO2007105688A1 (ja) メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
US20080294837A1 (en) Memory controller for controlling a non-volatile semiconductor memory and memory system
TW200941215A (en) Management method, management apparatus and controller for memory data access
JP2001202281A (ja) 記録方法及び装置、転送方法及び装置、再生方法及び装置、記録媒体
JP2000285688A (ja) 不揮発性半導体記憶装置
CN112394883A (zh) 数据整并方法、存储器存储装置及存储器控制电路单元
JPH0546461A (ja) メモリカード装置
US20020059305A1 (en) Information recording apparatus and method, and information reproducing apparatus and method
TWI823792B (zh) 映射表更新方法、記憶體儲存裝置及記憶體控制電路單元

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041109

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070521

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070530

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070727

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: 20070822

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070914

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100921

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4015866

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110921

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120921

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130921

Year of fee payment: 6

EXPY Cancellation because of completion of term