(57)【要約】【課題】大容量のフラッシュメモリを複数の領域に分割して使用する不揮発性記憶装置において。領域を分割することにより、有効な容量が減少する。【解決手段】外部からの外部論理アドレスを指定したデータのアクセスに対して、インターフェースの種別を判定し、判定したインターフェースに対応するオフセットアドレスを演算する。外部論理アドレスと算出されたオフセットアドレスから内部論理アドレスを取得し、内部論理アドレスを物理ブロックアドレスに変換する。データの書き込み先となる物理ブロックを不揮発性メモリに含まれる全ての物理ブロック中の有効なデータの書き込まれていない使用可能な物理ブロックから選択する。２段階でアドレスを変換する仕組みを設けたことにより、有効な容量を減少させることなく領域の分割を行うことを可能とするものである。【選択図】図１
2009258948.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリへのデータの記録又は読出しを制御するメモリコントローラにおいて、
外部からのデータ書込み又は読出し要求を受けるインターフェース部を複数備えることを特徴とするメモリコントローラ。
【請求項２】
請求項１に記載のメモリコントローラにおいて、前記複数のインターフェース部は、外部との接続方式が少なくともひとつは異なることを特徴とするメモリコントローラ。
【請求項３】
請求項１に記載のメモリコントローラにおいて、前記インターフェース部が受信する外部論理アドレスに応じて内部論理アドレスを決定する内部論理アドレス決定部と、
前記内部論理アドレスに基づいて前記不揮発性メモリの物理アドレスを算出するアドレス変換部と、
を備えることを特徴とするメモリコントローラ。
【請求項４】
請求項１乃至請求項３に記載のメモリコントローラにおいて、
前記不揮発性メモリへデータを記録する際に、前記不揮発性メモリから該データを記録する未使用の物理ブロックを選択する書き込み先ブロック検索部を備えることを特徴とするメモリコントローラ。
【請求項５】
請求項４に記載のメモリコントローラにおいて、前記書き込み先ブロック検索部は、前記不揮発性メモリから書き換え回数の少ない物理ブロックを優先的に選択することを特徴とするメモリコントローラ。
【請求項６】
請求項１乃至請求項５に記載のメモリコントローラと、不揮発性メモリを備えることを特徴とする不揮発性記憶装置。
【請求項７】
請求項６に記載の不揮発性記憶装置と、該不揮発性記憶装置へデータ書込み又は読出し要求する演算処理回路を少なくともひとつ備える演算処理システム。
【請求項８】
請求項１乃至請求項５に記載のメモリコントローラと、不揮発性メモリを備える機能部品であることを特徴とする不揮発性記憶モジュール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリ等の不揮発性メモリを用いた不揮発性記憶装置および演算処理システムに関するものである。
【背景技術】
【０００２】
近年、不揮発性メモリであるＮＡＮＤタイプのフラッシュメモリは、プロセスの微細化に伴いその容量を年々増加させている。そして容量の増加に反比例してビット単価は低下している。ビット単価の低下はＮＡＮＤタイプのフラッシュメモリの市場を拡げている。具体的には、従来の小型ハードディスクが、ＮＡＮＤタイプのフラッシュメモリに置き換えられるケースなどがある。例えば、携帯型の音楽プレーヤ等の分野で特に顕著である。
【０００３】
ビット単価の低下は単なる置き換えではなく、今までＮＡＮＤタイプのフラッシュメモリが使用しにくい市場をも開拓している。それはＮＡＮＤタイプのフラッシュメモリを使用するための工数が余分にかかるとしても、工数をかけるに見合うだけのコストメリットが出てきているからである。また、ＮＡＮＤタイプのフラッシュメモリのデメリットを許容しても有り余るコストメリットが得られるからである。例えばプログラム格納用途に用いられるＮＯＲタイプのフラッシュメモリは、アドレスを指定した読み出しが可能で、バイト単位のランダムアクセスに優れているという特徴がある。ＮＡＮＤタイプのフラッシュメモリはコマンドを使用したページ単位のアクセスを行うのでバイト単位のランダムアクセスではＮＯＲタイプのフラッシュメモリよりも劣る。しかしながら、そのようなデメリットを許容し、さらに読み出しの制御方法をランダムアクセスからページアクセスに変更しても、ＮＡＮＤタイプのフラッシュメモリをプログラム格納用として使用されるようになっている。
【０００４】
上記のような新しい領域（異なる種類のメモリが使用されていた領域）にＮＡＮＤタイプのフラッシュメモリが拡がることによって、別の効果が生まれる。それは今まで複数の種類のメモリを備えることで構成されているシステムを一つのメモリに集約できるということである。特に携帯端末の分野においては部品点数を減らすということは小型化・軽量化、コスト削減を行ううえでの重要なメリットとなる。
【０００５】
典型的な演算処理システムの一例である携帯端末の構成を図１２に示す。図１２において、１２０１は携帯端末である演算処理システム。１２０２は演算処理システム内部１２０１内部において演算処理システム全体の動作を制御する演算処理回路である。１２０３は演算処理システム１２０１と演算処理システム１２０１外部とのやり取りを行う入出力デバイスである。マイク、スピーカー、ボタン、ディスプレイ等が具体的な入出力デバイスの例となる。１２０４は演算処理回路１２０２が使用するプログラムが格納されたプログラムＲＯＭである。１２０５は演算処理回路１２０２が演算処理を行う際に一時的にデータの保存のために使用するワークＲＡＭ。１２０６は演算処理回路１２０２を使用するユーザのデータ等が格納される不揮発性メモリであるストレージメモリである。ストレージメモリ１００６は演算処理システム１２０１内部に実装される場合や、データの可搬性を得るために取り外し可能なメモリーカードとして実装される場合等がある。
【０００６】
また、図１２における演算処理回路１２０２がプログラムＲＯＭ１２０４とワークＲＡＭ１２０５とストレージメモリ１２０６を共通のインターフェースで実現した場合の演算処理システムの例を図１３に示してある。
【０００７】
ＮＡＮＤタイプのフラッシュメモリは図１２にあるプログラムＲＯＭ１２０４とワークＲＡＭ１２０５とストレージメモリ１２０６を一体化できる可能性がある。
【０００８】
例えば特許文献１においては、ＮＡＮＤタイプのフラッシュメモリではないが、ＭＲＡＭを使用してプログラムＲＯＭとワークＲＡＭをひとつのメモリで構成する例が示されている。
【０００９】
しかしながらＮＡＮＤタイプのフラッシュメモリにはＮＯＲタイプのフラッシュメモリやＳＲＡＭやＭＲＡＭとは異なり後天的な不良ブロックが存在する。不良ブロックとはデータの書き込みや読み出しにおける正常動作が保証されないために使用してはいけないブロックのことである。従って一般的にＮＡＮＤタイプのフラッシュメモリでは不良ブロック管理とウェアレベリングという手法を用いて、ＮＡＮＤタイプのフラッシュメモリ内部にある複数の物理ブロックにおけるアドレスの管理を行う。特許文献２および特許文献３には、不良ブロック管理とウェアレベリングの一例が示されている。
【特許文献１】特開２００７−１０９００８号公報
【特許文献２】特開平１１−１６１５５８号公報
【特許文献３】特開平５−２８２８８０号公報
【特許文献４】国際公開第２００５／１０６６７３号パンフレット
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献２および特許文献３に示されている不良ブロック管理やウェアレベリングの手法を特許文献１のメモリ領域の分割に組み合わせた場合には、不良ブロックの発生がメモリ領域毎に偏ってしまい、その結果システムが正常に動作しなくなるという課題が存在する。
【００１１】
例として、ＮＡＮＤタイプのフラッシュメモリに１０２４個の物理ブロックが含まれており、そのうち２０個の不良ブロックが発生しても大丈夫なように対応するためには、有効な容量としては全物理ブロック数から想定される最大の不良ブロック数を引いて、さらにデータ書き換え時に使用する一時的な物理ブロック（新しいデータを書いた後で、古いデータを消去する場合に必要）を引いて１００３個（＝１０２４−２０−１）の物理ブロックを有効な容量として使用することが出来る。
【００１２】
一方、このＮＡＮＤタイプのフラッシュメモリを特許文献１にあるように２つの領域に分けて管理する場合を考える。半分ずつ５１２個の物理ブロックの領域に分けた場合、不良ブロックの数も領域毎に２０個の半分の１０個が発生しても大丈夫なように対応する必要がある。その結果有効な容量としては５１２ブロック数から領域内に想定される不良ブロック数の１０を引いて、さらにデータ書き換え時に使用する一時的な物理ブロック（新しいデータを書いた後で、古いデータを消去する場合に必要）を引いて５０１個（＝５１２−１０−１）になる。ここで、想定される不良ブロックの個数も領域に分けて考えるのは有効な容量を維持するために必要なことである。しかしながらこのような構成では、不良ブロックの発生が一方の領域に偏った場合、不良ブロックが発生した領域は、他の領域に不良ブロック用の物理ブロックがあるにもかかわらず、当該領域の影響で、システムが正常に動作できなくなる。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、本発明のメモリコントローラは、不揮発性メモリへ外部からのデータ書込み又は読出し要求を受けるインターフェース部を複数備えることを特徴とするものである。
【００１４】
なお、ここで複数のインタフェースはそれぞれ異なる接続方式であってもよい。
【００１５】
これにより、不揮発性メモリへ複数のインターフェースでアクセスすることが可能となる。
【００１６】
また、上記発明において、インターフェース部が受信する外部論理アドレスに応じて内部論理アドレスを決定する内部論理アドレス決定部と、内部論理アドレスに基づいて不揮発性メモリの物理アドレスを算出するアドレス変換部とを備えるものであってもよい。
【００１７】
さらに、上記発明において、不揮発性メモリへデータを記録する際に、不揮発性メモリから該データを記録する未使用の物理ブロックを選択する書き込み先ブロック検索部を備えるものであってもよい。
【００１８】
これにより、不揮発性メモリを複数の領域に分割しても、不良ブロックへの対応や空き領域の選択等を単一に扱うことが可能となる。
【００１９】
また、さらに上記発明において、書き込み先ブロック検索部は、前記不揮発性メモリから書き換え回数の少ない物理ブロックを優先的に選択するものであってもよい。
【００２０】
これにより、物理ブロックの書き換え回数が不揮発性メモリ内部で略均一化される。
【００２１】
さらに上記の発明はメモリコントローラだけでなく、メモリコントローラと不揮発性メモリを備える不揮発性記憶装置として、また、不揮発性記憶装置と該不揮発性記憶装置へデータ書込み又は読出し要求をする演算処理回路とを構成要素とする演算処理システムとしても実現が可能である。
【発明の効果】
【００２２】
本発明の不揮発性記憶装置および演算処理システムは、２段階でアドレスを変換する仕組みにより、有効な記憶容量の減少を低減させるとともに領域の分割を行うことを可能とするものである。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施の形態について図面を参照して説明する。図１は本発明の実施の形態１における不揮発性記憶装置のブロック図である。
【００２４】
図１において、１０１は不揮発性記憶装置である。不揮発性記憶装置１０１は１０２のメモリコントローラと１０３のフラッシュメモリからなる。
【００２５】
フラッシュメモリ１０３は電源を印加しない状態でも書き込まれたデータを不揮発で保持することの出来るメモリデバイスである。本発明の不揮発性記憶装置を実現可能な不揮発性メモリであればフラッシュメモリ以外のメモリを使用しても構わない。フラッシュメモリ１０３は物理ブロックアドレスで順序付けられた複数の物理ブロックからなる。ここでは物理ブロックが０から１０２３の１０２４個あるものとして説明するが、本発明はこのブロック数に限定されるものではない。
【００２６】
メモリコントローラ１０２はフラッシュメモリ１０３に対してデータの書き込みおよび読み出しの制御を行うとともに不揮発性記憶装置１０１の外部にあるホスト機器（図示せず）とのインターフェースに関わる制御を行う。
【００２７】
メモリコントローラ１０２は、プロセッサ１０４、フラッシュＩ／Ｆ１０５、論理物理アドレス変換テーブル１０６、物理ブロック管理テーブル１０７、消去回数管理テーブル１０８、グループ管理テーブル１０９、第１外部Ｉ／Ｆ１１１、第２外部Ｉ／Ｆ１１４、第３外部Ｉ／Ｆ１１７と、第１バッファ１１２、第２バッファ１１５と第３バッファ１１８からなる。
【００２８】
図１において白抜きの矢印は、不揮発性記憶装置１０１内におけるデータの流れを示している。一方の黒矢印は、メモリコントローラ１０２内における制御の関係を示している。
【００２９】
プロセッサ１０４は各種テーブル（論理物理アドレス変換テーブル１０６、物理ブロック管理テーブル１０７、消去回数管理テーブル１０８、グループ管理テーブル１０９）を制御するとともに、フラッシュメモリ１０３に対してはフラッシュＩ／Ｆ１０５を介してデータの書き込み又は読み出しを行い、不揮発性記憶装置１０１の外部にあるホスト機器（図示せず）に対しては各種外部Ｉ／Ｆ（第１外部Ｉ／Ｆ１１１、第２外部Ｉ／Ｆ１１４、第３外部Ｉ／Ｆ１１７）を通じて、データ又はコマンドの送受信を行う。
【００３０】
フラッシュＩ／Ｆ１０５はプロセッサ１０４から指示を受けてフラッシュメモリ１０３に対するデータの書き込みや読み出しの制御を行う。フラッシュメモリ１０３への書き込みデータは第１バッファ１１２または第２バッファ１１５または第３バッファ１１８から転送を行う。フラッシュメモリ１０３からの読み出しデータも第１バッファ１１２または第２バッファ１１５または第３バッファ１１８へ転送を行う。
【００３１】
論理物理アドレス変換テーブル１０６は、メモリコントローラ１０２内部で管理される内部論理アドレスに基づいて、フラッシュメモリ１０３に記録する物理ブロックのアドレス（物理ブロックアドレス）を特定するテーブルである。内部論理アドレスはコントローラ１０２内でのみ管理されているアドレス情報である。
【００３２】
物理ブロック管理テーブル１０７はフラッシュメモリ１０３内の各物理ブロックに対応して、その物理ブロックの状態を示すテーブルである。
【００３３】
図２は物理ブロック管理テーブル１０７の構成を示した図である。物理ブロック管理テーブル１０７はフラッシュメモリ１０３の物理ブロックアドレスをアドレスとしたときに、物理ブロックアドレスに対応する物理ブロックの状態を示す数値をデータとして持つ。例えば図２に示すように物理ブロックアドレス“０”は、消去済みか無効なデータが書き込まれた状態である物理状態“１”であり、物理ブロックアドレス“２”は、データが書き込まれた状態である物理状態“０”であり、物理ブロックアドレス“３”は、不良ブロックである物理状態“２”であることを示す。ここで物理状態“２”の不良ブロックとはデータを正しく読み出しまたは書き込みできることを保証することのできない物理ブロックのことである。
【００３４】
消去回数管理テーブル１０８はフラッシュメモリ１０３内の各物理ブロックに対応してその消去回数を記録するテーブルである。
【００３５】
図３は消去回数管理テーブル１０８の構成を示した図である。消去回数管理テーブル１０８はフラッシュメモリ１０３の物理ブロックアドレスをアドレスとしたときに、物理ブロックアドレスに対応する物理ブロックに対する消去処理の延べ回数をデータとして持つ。例えば図３に示すように物理ブロックアドレス“０”の物理ブロックに対する消去処理の延べ回数は“１”回であることを示し、物理ブロックアドレス“１”の物理ブロックに対する消去処理の延べ回数は“１１０”回であることを示している。
【００３６】
なお、フラッシュメモリにおいてデータを更新、または新たに記録する際には、フラッシュメモリ内のデータを新たに記録する物理ブロックを一度消去し、その後データを記録するという作業が必要である。一般的にフラッシュメモリにおいてデータの書替え回数には制限（上限）があるため、不良ブロック等を増加等させないためにも書替え回数の管理が必要である。
【００３７】
プロセッサ１０４は内部論理アドレスのアドレス空間を複数個のアドレスグループに分割して管理する。この複数個のアドレスグループは、それぞれのアドレスグループ毎に決定されるインターフェースにより不揮発性記憶装置の外部にあるホスト機器からアクセス（データの書き込み又は読み出し等）が可能となるものである。つまり、例えばアドレスグループ“０”は第１外部Ｉ／Ｆ１１１を介してデータのアクセスを行い、アドレスグループ“１”は第２外部Ｉ／Ｆ１１４を介して、アドレスグループ“２”は第３外部Ｉ／Ｆ１１７を介してデータのアクセスを行うものである。各アドレスグループは連続した内部論理アドレスを領域とし、アドレスグループの分割数や各グループのアドレス範囲については不揮発性記憶装置１０１外部から任意に設定が可能な構成をとる。
【００３８】
グループ管理テーブル１０９はアドレスグループの先頭の内部論理アドレスとそのグループの番号の対応を管理するテーブルである。
【００３９】
図４はグループ管理テーブル１０９の構成を示した図である。グループ管理テーブル１０９は、アドレスグループ番号をアドレスとしたときに、グループの先頭となる内部論理アドレスをデータとして持つ。
【００４０】
例えば図４に示すようにアドレスグループ“０”の先頭となる内部論理アドレスは“０”であり、アドレスグループ“１”の先頭となる内部論理アドレスは“２００”であり、アドレスグループ“２”の先頭となる内部論理アドレスは“１０００”である。ここで“１０００”の場合は、該当するアドレスグループに対応する内部論理アドレスが無いこと等をしめすものである。そのため、上記の解釈は、アドレスグループ“０”即ち第１外部Ｉ／Ｆ１１１を介したデータのやり取りで内部論理アドレス“０”〜“１９９”までがアクセス可能であることを示し、アドレスグループ“１”即ち第２外部Ｉ／Ｆ１１４を介したデータのやり取りで内部論理アドレス“２００”〜“９９９”までがアクセス可能であることを示し、アドレスグループ“２”即ち第３外部Ｉ／Ｆ１１７を介したデータの書き込み又は読出しが無効、即ちここに示した設定ではアクセス出来ないことを示している。
【００４１】
信号先群１１０は、第１外部Ｉ／Ｆ１１１が不揮発性記憶装置１０１の外部とデータ等の送受信を行うための信号線群である。信号線群１１０はアドレスアクセスでデータの読み出し・書き込みが可能なＮＯＲタイプのフラッシュメモリで使用されるインターフェースに必要な信号線群であり、図１においては読み出しタイミング信号であるＲＥ、アドレス信号であるＡＤＤＲＥＳＳ、データを通信するＩＯ［７：０］を一例として示している。実際には電源関係の信号線である電源供給線や接地線、また書き込みタイミング信号であるＷＥ、書込み禁止信号であるＷＰ、リセット信号であるＲＥＳＥＴ等（図示せず）も必要である。第１外部Ｉ／Ｆ１１１は不揮発性記憶装置１０１の外部と信号線群１１０等を制御して、外部から転送されるデータを第１バッファ１１２に格納するとともに、第１バッファ１１２のデータを外部に送出する。
【００４２】
信号先群１１３は第２外部Ｉ／Ｆ１１４が不揮発性記憶装置１０１の外部とデータ等の送受信を行うための信号線群である。信号線群１１３はコマンドベースでデータの読み出し・書き込みが可能なメモリーカードのインターフェースに必要な信号線群であり、図１においてはクロック信号であるＣＬＫ、コマンドを通信するＣＭＤ、データを通信するＩＯ［３：０］を一例として示している。実際には電源関係の信号線である電源供給線や接地線等（図示せず）が必要である。第２外部Ｉ／Ｆ１１４は不揮発性記憶装置１０１の外部と信号先群１１３を制御して、外部から転送されるデータを第２バッファ１１５に格納するとともに、第２バッファ１１５のデータを外部に送出する。
【００４３】
信号先群１１６は第３外部Ｉ／Ｆ１１７が不揮発性記憶装置１０１の外部とデータ等の送受信を行うための信号線群である。信号線群１１６はアドレスアクセスでデータの読み出し・書き込みが可能なＳＲＡＭで使用されるインターフェースに必要な信号線群であり、図１においては読み出しタイミング信号であるＲＥ、アドレス信号であるＡＤＤＲＥＳＳ、データを通信するＩＯ［７：０］を示しているが、実際には電源関係の信号線である電源供給線や接地線、また書き込みタイミング信号であるＷＥ、チップ選択信号であるＣＥが存在する。第３外部Ｉ／Ｆ１１７は不揮発性記憶装置１０１外部と信号先群１１６を制御して、外部から転送されるデータを第３バッファ１１８に格納するとともに、第３バッファ１１８のデータを外部に送出する。
【００４４】
信号線群１１６を介しては、不揮発性記憶装置１０１をワークＲＡＭとして使用した場合のインターフェースを提供する。従って、第３外部Ｉ／Ｆ１１７を介して第３バッファ１１８に転送されるデータは必ずしもフラッシュメモリ１０３に書き込まれるわけではない。必要に応じて、必要なときに第３バッファ１１８のデータはフラッシュメモリ１０３にバックアップされる。その場合には信号線群１１６は第３バッファ１１８のデータをフラッシュメモリ１０３にバックアップするタイミングおよび、フラッシュメモリ１０３にバックアップしたデータを第３バッファ１１８に読み出すタイミングを指示する信号線も備える。
【００４５】
図５はプロセッサ１０４内部の機能ブロックについて示したブロック図である。５０１はプロセッサ１０４内部においてプロセッサ１０４全体を制御する全体制御部である。
【００４６】
テーブル制御部５０２は、各種テーブル（論理物理アドレス変換テーブル１０６、物理ブロック管理テーブル１０７、消去回数管理テーブル１０８、グループ管理テーブル１０９）を制御する。テーブル制御部５０２は、内部論理アドレスを物理アドレスに変換するアドレス変換部５０５、フラッシュメモリ内部においてデータを記録するための新たな物理ブロックを抽出する書き込み先ブロック検索部５０６、フラッシュメモリにアドレスグループを設定するグループ設定部５０７、外部論理アドレスから内部論理アドレスを算出する際に必要なアドレスオフセットを算出するオフセットアドレス取得部５０８からなる。
【００４７】
５０３はフラッシュＩ／Ｆ１０５を制御するためのフラッシュＩ／Ｆ制御部である。
【００４８】
５０４は第１外部Ｉ／Ｆ１１１、第２外部Ｉ／Ｆ１１４及び第３外部Ｉ／Ｆ１１７を制御するＩ／Ｆ制御部である。
【００４９】
プロセッサ１０４は上記以外に第１乃至第３外部Ｉ／Ｆのいずれにより外部とのアクセスが行われるかを判定するＩ／Ｆ判定部５０９と、第１乃至第３外部Ｉ／Ｆ部から受信（入力）される外部論理アドレスを取得する外部論理アドレス取得部５１０と、上記外部論理アドレスから対応する内部論理アドレスを決定する内部論理アドレス決定部５１１からなる。
【００５０】
テーブル制御部５０２内部の各部の機能について各種テーブルの構成とあわせて説明する。図６は論理物理アドレス変換テーブル１０６の構成を示した図である。論理物理アドレス変換テーブル１０６は内部論理アドレスをテーブルのアドレスとしたときに、内部論理アドレスに対応するデータが存在するフラッシュメモリ１０３の物理ブロックのアドレスをデータとして持つ。例えば図６に示すように、内部論理アドレスが“０”のデータはフラッシュメモリ１０３の物理ブロックアドレス“２３４”の物理ブロックに存在し、内部論理アドレス“１”のデータはフラッシュメモリ１０３の物理ブロックアドレス“４”に存在する。内部論理アドレス“９９９”に対応するデータとして論理物理アドレス変換テーブルに“１０２４”が格納されているが、この“１０２４”はデータが未書き込みであることを示す特別な意味を持つデータである。
【００５１】
アドレス変換部５０５は内部論理アドレスを論理物理アドレス変換テーブル１０６のアドレスとして、対応するデータを読み出すことで内部論理アドレスに対応するフラッシュメモリ１０３の物理ブロックのアドレスを取得する機能を有する。ここで論理物理アドレス変換テーブル１０６のアドレスとデータの間には領域的な制限等は存在せず、任意の内部論理アドレスに対して“０”〜“１０２３”までの領域の任意の物理ブロックアドレスを取りうる。これに関しては後でアドレス変換の概要を説明する際に詳細する。
【００５２】
書き込み先ブロック検索部２０６はデータを書き込みする際に物理ブロック管理テーブル１０７を検索して消去済みまたは無効なデータの状態である物理ブロック（図２において物理状態が “１”の物理ブロック）に対してデータの書き込みを行う。この時、無効なデータが書き込まれた状態の物理ブロックであれば、データの書き込みを行う前に予め物理ブロックの消去が必要である。なお、本実施例では消去済みブロックと無効ブロックを共通する“１”として表現しているが、制御上これらを区別して制御する場合には、消去済みブロックと無効ブロックに異なる識別の状態を割当てればよい。
【００５３】
書き込み先ブロック検索部５０６は物理ブロック管理テーブル１０７において消去済みまたは無効なデータの物理状態である物理ブロック（図２において物理状態が“１”の物理ブロック）の中で、消去回数管理テーブル１０８の値が最も小さい物理ブロックを検索して選択する。
【００５４】
こうすることで、フラッシュメモリ１０３の各物理ブロックに対する劣化の度合いを均等にすることが可能となる。なお、上記以外にも、消去回数管理テーブルにおけるブロック毎の消去回数と該ブロックにおけるエラー発生率等を併用して物理ブロックを検索する等の選択方法も可能である。
【００５５】
グループ設定部５０７は、グループ管理テーブル１０９を作成する機能を有する。図４に示したグループ管理テーブル１０９の状態は、不揮発性記憶装置１０１の外部にあるホスト機器の指示を受けたプロセッサ１０４が、グループ設定部５０７を制御してグループ管理テーブルに対して設定したものであり。アドレス０に格納されたデータは第１外部Ｉ／Ｆ１１１を経由してアクセスできる領域の先頭の内部論理アドレスに対応するので、第１外部Ｉ／Ｆを経由してアクセスできる領域が内部論理アドレスの“０”から開始されることを示す。アドレス１に格納されたデータは第２外部Ｉ／Ｆ１１４を経由してアクセスできる領域の先頭の内部論理アドレスに対応するので、第２外部Ｉ／Ｆを経由してアクセスできる領域が内部論理アドレスの“２００”から開始されることを示すと共に、第１外部Ｉ／Ｆ１１１を経由してアクセスできる領域が内部論理アドレスの“１９９”（＝２００−１）までであることも示す。アドレス２に格納されたデータは第３外部Ｉ／Ｆ１１７を経由してアクセスできる領域の先頭の内部論理アドレスに対応するので、データ“１０００”は第３外部Ｉ／Ｆを経由してアクセスできる領域は無いことを示す。データ“１０００”は無効な値として使用される。
【００５６】
オフセットアドレス取得部５０８は、グループ管理テーブル１０９を参照して外部Ｉ／Ｆに対応して、外部論理アドレスを内部論理アドレスに変換するためのオフセットアドレスを取得する。図４に示した値では、例えば第２外部Ｉ／Ｆ１１４に対応するオフセットアドレスとしてグループ管理テーブル１０９のアドレス１に格納されたデータである“２００”を取得する。
【００５７】
図７は不揮発性記憶装置１０１の外部のホスト装置からフラッシュメモリ１０３の物理ブロックへのアドレス変換の概要である。複数あるそれぞれの外部インターフェースから外部論理アドレスにより指定したアクセスはＩ／Ｆ判定部５０９によってどのグループのアクセスであるかを判定する。そして同時に外部論理アドレス取得部５１０は、外部インターフェース（第１外部Ｉ／Ｆ１１１または第２外部Ｉ／Ｆ１１４または第３外部Ｉ／Ｆ１１７）から対応する外部論理アドレスを取得する。そうすることでグループ番号を順に外部論理アドレスを並べた外部論理マップにおけるアドレスを決定することができる。
【００５８】
外部論理マップはグループ管理テーブル１０９の情報を基にして内部論理アドレスのマップである内部論理マップに内部論理アドレス決定部５１１によって対応付けることが出来る。図４に示した値を使用すると、グループ“０”の外部論理アドレス“０”は内部論理アドレスの“０”に対応し、グループ“０”の外部論理アドレス“１９９”は内部論理アドレスの“１９９”に対応する。グループ“１”の外部論理アドレス“０”は内部論理アドレスの“２００”に対応し、グループ“１”の外部論理アドレス“７９９”は内部論理アドレスの“９９９”に対応する。
【００５９】
内部論理マップは論理物理アドレス変換テーブル１０６の情報を基にしてフラッシュメモリ１０３の物理ブロックのマップである物理マップにアドレス変換部５０５によって対応付けることが出来る。
【００６０】
図８は不揮発性記憶装置１０１からデータを読み出す際の、不揮発性記憶装置１０１内部のプロセッサ１０４の処理の手順を示したフローチャートである。不揮発性記憶装置１０１からデータを読み出すための制御信号とアドレス情報が不揮発性記憶装置１０１の外部にあるホスト機器から入力されたら、ステップＳ８０１ではＩ／Ｆ判定部５０９によって制御信号が入力されたＩ／Ｆの認識を行う。次にステップＳ８０２ではステップＳ８０１で認識したＩ／Ｆから外部論理アドレス取得部５１０によってホスト機器が入力したアドレス情報を外部論理アドレスとして取得する。次にステップＳ８０３ではステップＳ８０１で認識したＩ／Ｆに対応するオフセットアドレスをオフセットアドレス取得部５０８がグループ管理テーブル１０９を参照することで取得する。次にステップＳ８０４ではステップＳ８０２で取得した外部論理アドレスとステップＳ８０３で取得したオフセットアドレスを基に内部論理アドレス決定部５１１が内部論理アドレスを決定する。次にステップＳ８０５ではステップＳ８０４で取得した内部論理アドレスを基にしてアドレス変換部５０５が論理物理アドレス変換テーブル１０６を参照してフラッシュメモリの物理アドレスを決定する。次にステップＳ８０６でフラッシュＩ／Ｆ制御部２０３がフラッシュメモリ１０３のステップＳ８０５で得られた物理アドレスからデータを読み出してＩ／Ｆに対応するバッファに格納する。フローチャートには図示していないがホストはステップＳ８０６以降不揮発性記憶装置１０１からデータを読み出す。
図９は不揮発性記憶装置１０１にデータを書き込む際の、不揮発性記憶装置１０１内部のプロセッサ１０４の処理の手順を示したフローチャートである。不揮発性記憶装置１０１にデータを書き込むための制御信号とアドレス情報が不揮発性記憶装置１０１の外部にあるホスト機器から入力されたら、ステップＳ９０１ではＩ／Ｆ判定部５０９によって制御信号が入力されたＩ／Ｆの認識を行う。次にステップＳ９０２ではステップＳ９０１で認識したＩ／Ｆから外部論理アドレス取得部５１０によってホスト機器が入力したアドレス情報を外部論理アドレスとして取得する。次にステップＳ９０３ではステップＳ９０１で認識したＩ／Ｆに対応するオフセットアドレスをオフセットアドレス取得部５０８がグループ管理テーブル１０９を参照することで取得する。次にステップＳ９０４ではすえっぷＳ９０２で取得した外部論理アドレスとステップＳ９０３で取得したオフセットアドレスを基に内部論理アドレス決定部５１１が内部論理アドレスを決定する。次にステップＳ９０５では書き込み先ブロック検索部５０６が物理ブロック管理テーブルを参照することで書き込み先となる物理アドレスを決定する。フローチャートには図示していないがここまでの期間にホストは書き込むデータの対応するバッファへの転送を終えている。次にステップＳ９０６でフラッシュＩ／Ｆ制御部５０３がフラッシュメモリ１０３のステップＳ９０５で得られた物理アドレスにバッファに格納されたデータを書き込む。最後にアドレス変換部５０５が論理物理変換テーブル１０６と物理ブロック管理テーブルと消去回数管理テーブル１０８の情報を更新して書き込みを終了する。
【００６１】
以上のように、本願発明ではフラッシュメモリ１０３の物理ブロック全体をまず一括して内部論理マップに変換する。この段階で不良ブロック管理を行い、その後で内部論理マップを外部のインターフェースに対応した外部論理マップに割り当てる構成をとる。そうすることによって、分割される領域の数や外部のインターフェースの数に依存せずに、最大限の効率で不良ブロックの管理を行うことが可能になる。つまり、有効な容量を減少させることなく、領域を分割することが可能になる。
【００６２】
さらに、本発明においては書き込み先ブロック検索部においてフラッシュメモリの全物理ブロックを対象として検索を行い、その際に消去回数の少ない物理ブロックを優先的に選択する仕組みを持っている。そのために有効な容量を減少させないという効果だけではなく、分割される領域の数や外部のインターフェースの数に依存せずに、最大限の効率でウェアレベリングを行うことが可能になる。
【００６３】
図１０、図１１に、本発明の不揮発性記憶装置を図１２、図１３の演算処理システムに適用した場合を示す。図１０、図１１に示すように本発明の不揮発性記憶装置は複数のインターフェースを備えるため、従来の複数のメモリで構成していた部分をひとつの不揮発性記憶装置に置き換えることが出来る。
【００６４】
なお、第１外部Ｉ／Ｆ１１１と第２外部Ｉ／Ｆ１１４と第３外部Ｉ／Ｆ１１７は物理的に異なる信号線群を備える構成としたが、物理的に信号線を共用しても構わない。この場合は、各Ｉ／Ｆを選択するような端子を追加することで、信号先を共有についても外部Ｉ／Ｆを論理的に選択することが可能となる。
【００６５】
また、論理物理アドレス変換テーブルはひとつのフラッシュメモリだけでなく、複数のフラッシュメモリの物理ブロックアドレスを内部論理アドレスに変換する構成をとっても構わない。
【００６６】
また、使用する不揮発性メモリはフラッシュメモリに限定されるものではない。後天的な不良が発生するために、不良ブロック管理を必要とするメモリであれば同様の本発明の効果が得られる。さらに、書き換えを繰り返すことによって性能が劣化するために、ウェアレベリングを必要とするメモリであれば同様の効果が得られる。
【００６７】
なお、本発明のメモリコントローラ及びフラッシュメモリ（不揮発性メモリ）からなる機能部品（モジュール）としても本発明は実現可能である。この場合、メモリコントローラとフラッシュメモリが一体となったものや、メモリコントローラとフラッシュメモリが独立した個々の部品となっている場合等、実装形態を限定するものではない。
【産業上の利用可能性】
【００６８】
本発明は小型化・軽量化・低コスト化が図れる携帯端末等に使用される記憶装置として有用である。
【図面の簡単な説明】
【００６９】
【図１】本発明の実施例における不揮発性記憶装置のブロック図
【図２】本発明の実施例における物理ブロック管理テーブルの構成を示した図
【図３】本発明の実施例における消去回数管理テーブルの構成を示した図
【図４】本発明の実施例におけるグループ管理テーブルの構成を示した図
【図５】本発明の実施例におけるプロセッサの内部のブロック図
【図６】本発明の実施例における論理物理アドレス変換テーブルの構成を示した図
【図７】本発明の実施例におけるアドレス変換の概要を示した図
【図８】本発明の実施例におけるデータ読出し処理のフローチャート
【図９】本発明の実施例におけるデータ書込み処理のフローチャート
【図１０】本発明の実施例における演算処理システムのブロック図
【図１１】本発明の実施例における演算処理システムのブロック図
【図１２】従来の演算処理システムのブロック図
【図１３】従来の演算処理システムのブロック図
【符号の説明】
【００７０】
１０１    不揮発性記憶装置
１０２    コントローラ
１０３    フラッシュメモリ
１０４    プロセッサ
１０５    フラッシュＩ／Ｆ
１０６    論理物理アドレス変換テーブル
１０７    物理ブロック管理テーブル
１０８    消去回数管理テーブル
１０９    グループ管理テーブル
１１０    信号線群
１１１    第１外部Ｉ／Ｆ
１１２    第１バッファ
１１３    信号線群
１１４    第２外部Ｉ／Ｆ
１１５    第２バッファ
１１６    信号線群
１１７    第３外部Ｉ／Ｆ
１１８    第３バッファ
５０１    全体制御部
５０２    テーブル制御部
５０３    フラッシュＩ／Ｆ制御部
５０４    Ｉ／Ｆ制御部
５０５    アドレス変換部
５０６    書き込み先ブロック検索部
５０７    グループ設定部
５０８    オフセットアドレス取得部
５０９    Ｉ／Ｆ判定部
５１０    外部論理アドレス取得部
５１１    内部論理アドレス決定部
１２０１    演算処理システム
１２０２    演算処理回路
１２０３    入出力デバイス
１２０４    プログラムＲＯＭ
１２０５    ワークＲＡＭ
１２０６    ストレージメモリ
【図１】
2009258948.tif 000003
【図２】
2009258948.tif 000004
【図３】
2009258948.tif 000005
【図４】
2009258948.tif 000006
【図５】
2009258948.tif 000007
【図６】
2009258948.tif 000008
【図７】
2009258948.tif 000009
【図８】
2009258948.tif 000010
【図９】
2009258948.tif 000011
【図１０】
2009258948.tif 000012
【図１１】
2009258948.tif 000013
【図１２】
2009258948.tif 000014
【図１３】
2009258948.tif 000015