JP2009258948A - メモリコントローラ、不揮発性記憶装置および演算処理システム - Google Patents
メモリコントローラ、不揮発性記憶装置および演算処理システム Download PDFInfo
- Publication number
- JP2009258948A JP2009258948A JP2008106498A JP2008106498A JP2009258948A JP 2009258948 A JP2009258948 A JP 2009258948A JP 2008106498 A JP2008106498 A JP 2008106498A JP 2008106498 A JP2008106498 A JP 2008106498A JP 2009258948 A JP2009258948 A JP 2009258948A
- Authority
- JP
- Japan
- Prior art keywords
- address
- data
- memory
- external
- logical address
- 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.)
- Pending
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】大容量のフラッシュメモリを複数の領域に分割して使用する不揮発性記憶装置において。領域を分割することにより、有効な容量が減少する。
【解決手段】外部からの外部論理アドレスを指定したデータのアクセスに対して、インターフェースの種別を判定し、判定したインターフェースに対応するオフセットアドレスを演算する。外部論理アドレスと算出されたオフセットアドレスから内部論理アドレスを取得し、内部論理アドレスを物理ブロックアドレスに変換する。データの書き込み先となる物理ブロックを不揮発性メモリに含まれる全ての物理ブロック中の有効なデータの書き込まれていない使用可能な物理ブロックから選択する。2段階でアドレスを変換する仕組みを設けたことにより、有効な容量を減少させることなく領域の分割を行うことを可能とするものである。
【選択図】図1
【解決手段】外部からの外部論理アドレスを指定したデータのアクセスに対して、インターフェースの種別を判定し、判定したインターフェースに対応するオフセットアドレスを演算する。外部論理アドレスと算出されたオフセットアドレスから内部論理アドレスを取得し、内部論理アドレスを物理ブロックアドレスに変換する。データの書き込み先となる物理ブロックを不揮発性メモリに含まれる全ての物理ブロック中の有効なデータの書き込まれていない使用可能な物理ブロックから選択する。2段階でアドレスを変換する仕組みを設けたことにより、有効な容量を減少させることなく領域の分割を行うことを可能とするものである。
【選択図】図1
Description
本発明は、フラッシュメモリ等の不揮発性メモリを用いた不揮発性記憶装置および演算処理システムに関するものである。
近年、不揮発性メモリであるNANDタイプのフラッシュメモリは、プロセスの微細化に伴いその容量を年々増加させている。そして容量の増加に反比例してビット単価は低下している。ビット単価の低下はNANDタイプのフラッシュメモリの市場を拡げている。具体的には、従来の小型ハードディスクが、NANDタイプのフラッシュメモリに置き換えられるケースなどがある。例えば、携帯型の音楽プレーヤ等の分野で特に顕著である。
ビット単価の低下は単なる置き換えではなく、今までNANDタイプのフラッシュメモリが使用しにくい市場をも開拓している。それはNANDタイプのフラッシュメモリを使用するための工数が余分にかかるとしても、工数をかけるに見合うだけのコストメリットが出てきているからである。また、NANDタイプのフラッシュメモリのデメリットを許容しても有り余るコストメリットが得られるからである。例えばプログラム格納用途に用いられるNORタイプのフラッシュメモリは、アドレスを指定した読み出しが可能で、バイト単位のランダムアクセスに優れているという特徴がある。NANDタイプのフラッシュメモリはコマンドを使用したページ単位のアクセスを行うのでバイト単位のランダムアクセスではNORタイプのフラッシュメモリよりも劣る。しかしながら、そのようなデメリットを許容し、さらに読み出しの制御方法をランダムアクセスからページアクセスに変更しても、NANDタイプのフラッシュメモリをプログラム格納用として使用されるようになっている。
上記のような新しい領域(異なる種類のメモリが使用されていた領域)にNANDタイプのフラッシュメモリが拡がることによって、別の効果が生まれる。それは今まで複数の種類のメモリを備えることで構成されているシステムを一つのメモリに集約できるということである。特に携帯端末の分野においては部品点数を減らすということは小型化・軽量化、コスト削減を行ううえでの重要なメリットとなる。
典型的な演算処理システムの一例である携帯端末の構成を図12に示す。図12において、1201は携帯端末である演算処理システム。1202は演算処理システム内部1201内部において演算処理システム全体の動作を制御する演算処理回路である。1203は演算処理システム1201と演算処理システム1201外部とのやり取りを行う入出力デバイスである。マイク、スピーカー、ボタン、ディスプレイ等が具体的な入出力デバイスの例となる。1204は演算処理回路1202が使用するプログラムが格納されたプログラムROMである。1205は演算処理回路1202が演算処理を行う際に一時的にデータの保存のために使用するワークRAM。1206は演算処理回路1202を使用するユーザのデータ等が格納される不揮発性メモリであるストレージメモリである。ストレージメモリ1006は演算処理システム1201内部に実装される場合や、データの可搬性を得るために取り外し可能なメモリーカードとして実装される場合等がある。
また、図12における演算処理回路1202がプログラムROM1204とワークRAM1205とストレージメモリ1206を共通のインターフェースで実現した場合の演算処理システムの例を図13に示してある。
NANDタイプのフラッシュメモリは図12にあるプログラムROM1204とワークRAM1205とストレージメモリ1206を一体化できる可能性がある。
例えば特許文献1においては、NANDタイプのフラッシュメモリではないが、MRAMを使用してプログラムROMとワークRAMをひとつのメモリで構成する例が示されている。
しかしながらNANDタイプのフラッシュメモリにはNORタイプのフラッシュメモリやSRAMやMRAMとは異なり後天的な不良ブロックが存在する。不良ブロックとはデータの書き込みや読み出しにおける正常動作が保証されないために使用してはいけないブロックのことである。従って一般的にNANDタイプのフラッシュメモリでは不良ブロック管理とウェアレベリングという手法を用いて、NANDタイプのフラッシュメモリ内部にある複数の物理ブロックにおけるアドレスの管理を行う。特許文献2および特許文献3には、不良ブロック管理とウェアレベリングの一例が示されている。
特開2007−109008号公報
特開平11−161558号公報
特開平5−282880号公報
国際公開第2005/106673号パンフレット
しかしながら、特許文献2および特許文献3に示されている不良ブロック管理やウェアレベリングの手法を特許文献1のメモリ領域の分割に組み合わせた場合には、不良ブロックの発生がメモリ領域毎に偏ってしまい、その結果システムが正常に動作しなくなるという課題が存在する。
例として、NANDタイプのフラッシュメモリに1024個の物理ブロックが含まれており、そのうち20個の不良ブロックが発生しても大丈夫なように対応するためには、有効な容量としては全物理ブロック数から想定される最大の不良ブロック数を引いて、さらにデータ書き換え時に使用する一時的な物理ブロック(新しいデータを書いた後で、古いデータを消去する場合に必要)を引いて1003個(=1024−20−1)の物理ブロックを有効な容量として使用することが出来る。
一方、このNANDタイプのフラッシュメモリを特許文献1にあるように2つの領域に分けて管理する場合を考える。半分ずつ512個の物理ブロックの領域に分けた場合、不良ブロックの数も領域毎に20個の半分の10個が発生しても大丈夫なように対応する必要がある。その結果有効な容量としては512ブロック数から領域内に想定される不良ブロック数の10を引いて、さらにデータ書き換え時に使用する一時的な物理ブロック(新しいデータを書いた後で、古いデータを消去する場合に必要)を引いて501個(=512−10−1)になる。ここで、想定される不良ブロックの個数も領域に分けて考えるのは有効な容量を維持するために必要なことである。しかしながらこのような構成では、不良ブロックの発生が一方の領域に偏った場合、不良ブロックが発生した領域は、他の領域に不良ブロック用の物理ブロックがあるにもかかわらず、当該領域の影響で、システムが正常に動作できなくなる。
上記目的を達成するために、本発明のメモリコントローラは、不揮発性メモリへ外部からのデータ書込み又は読出し要求を受けるインターフェース部を複数備えることを特徴とするものである。
なお、ここで複数のインタフェースはそれぞれ異なる接続方式であってもよい。
これにより、不揮発性メモリへ複数のインターフェースでアクセスすることが可能となる。
また、上記発明において、インターフェース部が受信する外部論理アドレスに応じて内部論理アドレスを決定する内部論理アドレス決定部と、内部論理アドレスに基づいて不揮発性メモリの物理アドレスを算出するアドレス変換部とを備えるものであってもよい。
さらに、上記発明において、不揮発性メモリへデータを記録する際に、不揮発性メモリから該データを記録する未使用の物理ブロックを選択する書き込み先ブロック検索部を備えるものであってもよい。
これにより、不揮発性メモリを複数の領域に分割しても、不良ブロックへの対応や空き領域の選択等を単一に扱うことが可能となる。
また、さらに上記発明において、書き込み先ブロック検索部は、前記不揮発性メモリから書き換え回数の少ない物理ブロックを優先的に選択するものであってもよい。
これにより、物理ブロックの書き換え回数が不揮発性メモリ内部で略均一化される。
さらに上記の発明はメモリコントローラだけでなく、メモリコントローラと不揮発性メモリを備える不揮発性記憶装置として、また、不揮発性記憶装置と該不揮発性記憶装置へデータ書込み又は読出し要求をする演算処理回路とを構成要素とする演算処理システムとしても実現が可能である。
本発明の不揮発性記憶装置および演算処理システムは、2段階でアドレスを変換する仕組みにより、有効な記憶容量の減少を低減させるとともに領域の分割を行うことを可能とするものである。
以下、本発明の実施の形態について図面を参照して説明する。図1は本発明の実施の形態1における不揮発性記憶装置のブロック図である。
図1において、101は不揮発性記憶装置である。不揮発性記憶装置101は102のメモリコントローラと103のフラッシュメモリからなる。
フラッシュメモリ103は電源を印加しない状態でも書き込まれたデータを不揮発で保持することの出来るメモリデバイスである。本発明の不揮発性記憶装置を実現可能な不揮発性メモリであればフラッシュメモリ以外のメモリを使用しても構わない。フラッシュメモリ103は物理ブロックアドレスで順序付けられた複数の物理ブロックからなる。ここでは物理ブロックが0から1023の1024個あるものとして説明するが、本発明はこのブロック数に限定されるものではない。
メモリコントローラ102はフラッシュメモリ103に対してデータの書き込みおよび読み出しの制御を行うとともに不揮発性記憶装置101の外部にあるホスト機器(図示せず)とのインターフェースに関わる制御を行う。
メモリコントローラ102は、プロセッサ104、フラッシュI/F105、論理物理アドレス変換テーブル106、物理ブロック管理テーブル107、消去回数管理テーブル108、グループ管理テーブル109、第1外部I/F111、第2外部I/F114、第3外部I/F117と、第1バッファ112、第2バッファ115と第3バッファ118からなる。
図1において白抜きの矢印は、不揮発性記憶装置101内におけるデータの流れを示している。一方の黒矢印は、メモリコントローラ102内における制御の関係を示している。
プロセッサ104は各種テーブル(論理物理アドレス変換テーブル106、物理ブロック管理テーブル107、消去回数管理テーブル108、グループ管理テーブル109)を制御するとともに、フラッシュメモリ103に対してはフラッシュI/F105を介してデータの書き込み又は読み出しを行い、不揮発性記憶装置101の外部にあるホスト機器(図示せず)に対しては各種外部I/F(第1外部I/F111、第2外部I/F114、第3外部I/F117)を通じて、データ又はコマンドの送受信を行う。
フラッシュI/F105はプロセッサ104から指示を受けてフラッシュメモリ103に対するデータの書き込みや読み出しの制御を行う。フラッシュメモリ103への書き込みデータは第1バッファ112または第2バッファ115または第3バッファ118から転送を行う。フラッシュメモリ103からの読み出しデータも第1バッファ112または第2バッファ115または第3バッファ118へ転送を行う。
論理物理アドレス変換テーブル106は、メモリコントローラ102内部で管理される内部論理アドレスに基づいて、フラッシュメモリ103に記録する物理ブロックのアドレス(物理ブロックアドレス)を特定するテーブルである。内部論理アドレスはコントローラ102内でのみ管理されているアドレス情報である。
物理ブロック管理テーブル107はフラッシュメモリ103内の各物理ブロックに対応して、その物理ブロックの状態を示すテーブルである。
図2は物理ブロック管理テーブル107の構成を示した図である。物理ブロック管理テーブル107はフラッシュメモリ103の物理ブロックアドレスをアドレスとしたときに、物理ブロックアドレスに対応する物理ブロックの状態を示す数値をデータとして持つ。例えば図2に示すように物理ブロックアドレス“0”は、消去済みか無効なデータが書き込まれた状態である物理状態“1”であり、物理ブロックアドレス“2”は、データが書き込まれた状態である物理状態“0”であり、物理ブロックアドレス“3”は、不良ブロックである物理状態“2”であることを示す。ここで物理状態“2”の不良ブロックとはデータを正しく読み出しまたは書き込みできることを保証することのできない物理ブロックのことである。
消去回数管理テーブル108はフラッシュメモリ103内の各物理ブロックに対応してその消去回数を記録するテーブルである。
図3は消去回数管理テーブル108の構成を示した図である。消去回数管理テーブル108はフラッシュメモリ103の物理ブロックアドレスをアドレスとしたときに、物理ブロックアドレスに対応する物理ブロックに対する消去処理の延べ回数をデータとして持つ。例えば図3に示すように物理ブロックアドレス“0”の物理ブロックに対する消去処理の延べ回数は“1”回であることを示し、物理ブロックアドレス“1”の物理ブロックに対する消去処理の延べ回数は“110”回であることを示している。
なお、フラッシュメモリにおいてデータを更新、または新たに記録する際には、フラッシュメモリ内のデータを新たに記録する物理ブロックを一度消去し、その後データを記録するという作業が必要である。一般的にフラッシュメモリにおいてデータの書替え回数には制限(上限)があるため、不良ブロック等を増加等させないためにも書替え回数の管理が必要である。
プロセッサ104は内部論理アドレスのアドレス空間を複数個のアドレスグループに分割して管理する。この複数個のアドレスグループは、それぞれのアドレスグループ毎に決定されるインターフェースにより不揮発性記憶装置の外部にあるホスト機器からアクセス(データの書き込み又は読み出し等)が可能となるものである。つまり、例えばアドレスグループ“0”は第1外部I/F111を介してデータのアクセスを行い、アドレスグループ“1”は第2外部I/F114を介して、アドレスグループ“2”は第3外部I/F117を介してデータのアクセスを行うものである。各アドレスグループは連続した内部論理アドレスを領域とし、アドレスグループの分割数や各グループのアドレス範囲については不揮発性記憶装置101外部から任意に設定が可能な構成をとる。
グループ管理テーブル109はアドレスグループの先頭の内部論理アドレスとそのグループの番号の対応を管理するテーブルである。
図4はグループ管理テーブル109の構成を示した図である。グループ管理テーブル109は、アドレスグループ番号をアドレスとしたときに、グループの先頭となる内部論理アドレスをデータとして持つ。
例えば図4に示すようにアドレスグループ“0”の先頭となる内部論理アドレスは“0”であり、アドレスグループ“1”の先頭となる内部論理アドレスは“200”であり、アドレスグループ“2”の先頭となる内部論理アドレスは“1000”である。ここで“1000”の場合は、該当するアドレスグループに対応する内部論理アドレスが無いこと等をしめすものである。そのため、上記の解釈は、アドレスグループ“0”即ち第1外部I/F111を介したデータのやり取りで内部論理アドレス“0”〜“199”までがアクセス可能であることを示し、アドレスグループ“1”即ち第2外部I/F114を介したデータのやり取りで内部論理アドレス“200”〜“999”までがアクセス可能であることを示し、アドレスグループ“2”即ち第3外部I/F117を介したデータの書き込み又は読出しが無効、即ちここに示した設定ではアクセス出来ないことを示している。
信号先群110は、第1外部I/F111が不揮発性記憶装置101の外部とデータ等の送受信を行うための信号線群である。信号線群110はアドレスアクセスでデータの読み出し・書き込みが可能なNORタイプのフラッシュメモリで使用されるインターフェースに必要な信号線群であり、図1においては読み出しタイミング信号であるRE、アドレス信号であるADDRESS、データを通信するIO[7:0]を一例として示している。実際には電源関係の信号線である電源供給線や接地線、また書き込みタイミング信号であるWE、書込み禁止信号であるWP、リセット信号であるRESET等(図示せず)も必要である。第1外部I/F111は不揮発性記憶装置101の外部と信号線群110等を制御して、外部から転送されるデータを第1バッファ112に格納するとともに、第1バッファ112のデータを外部に送出する。
信号先群113は第2外部I/F114が不揮発性記憶装置101の外部とデータ等の送受信を行うための信号線群である。信号線群113はコマンドベースでデータの読み出し・書き込みが可能なメモリーカードのインターフェースに必要な信号線群であり、図1においてはクロック信号であるCLK、コマンドを通信するCMD、データを通信するIO[3:0]を一例として示している。実際には電源関係の信号線である電源供給線や接地線等(図示せず)が必要である。第2外部I/F114は不揮発性記憶装置101の外部と信号先群113を制御して、外部から転送されるデータを第2バッファ115に格納するとともに、第2バッファ115のデータを外部に送出する。
信号先群116は第3外部I/F117が不揮発性記憶装置101の外部とデータ等の送受信を行うための信号線群である。信号線群116はアドレスアクセスでデータの読み出し・書き込みが可能なSRAMで使用されるインターフェースに必要な信号線群であり、図1においては読み出しタイミング信号であるRE、アドレス信号であるADDRESS、データを通信するIO[7:0]を示しているが、実際には電源関係の信号線である電源供給線や接地線、また書き込みタイミング信号であるWE、チップ選択信号であるCEが存在する。第3外部I/F117は不揮発性記憶装置101外部と信号先群116を制御して、外部から転送されるデータを第3バッファ118に格納するとともに、第3バッファ118のデータを外部に送出する。
信号線群116を介しては、不揮発性記憶装置101をワークRAMとして使用した場合のインターフェースを提供する。従って、第3外部I/F117を介して第3バッファ118に転送されるデータは必ずしもフラッシュメモリ103に書き込まれるわけではない。必要に応じて、必要なときに第3バッファ118のデータはフラッシュメモリ103にバックアップされる。その場合には信号線群116は第3バッファ118のデータをフラッシュメモリ103にバックアップするタイミングおよび、フラッシュメモリ103にバックアップしたデータを第3バッファ118に読み出すタイミングを指示する信号線も備える。
図5はプロセッサ104内部の機能ブロックについて示したブロック図である。501はプロセッサ104内部においてプロセッサ104全体を制御する全体制御部である。
テーブル制御部502は、各種テーブル(論理物理アドレス変換テーブル106、物理ブロック管理テーブル107、消去回数管理テーブル108、グループ管理テーブル109)を制御する。テーブル制御部502は、内部論理アドレスを物理アドレスに変換するアドレス変換部505、フラッシュメモリ内部においてデータを記録するための新たな物理ブロックを抽出する書き込み先ブロック検索部506、フラッシュメモリにアドレスグループを設定するグループ設定部507、外部論理アドレスから内部論理アドレスを算出する際に必要なアドレスオフセットを算出するオフセットアドレス取得部508からなる。
503はフラッシュI/F105を制御するためのフラッシュI/F制御部である。
504は第1外部I/F111、第2外部I/F114及び第3外部I/F117を制御するI/F制御部である。
プロセッサ104は上記以外に第1乃至第3外部I/Fのいずれにより外部とのアクセスが行われるかを判定するI/F判定部509と、第1乃至第3外部I/F部から受信(入力)される外部論理アドレスを取得する外部論理アドレス取得部510と、上記外部論理アドレスから対応する内部論理アドレスを決定する内部論理アドレス決定部511からなる。
テーブル制御部502内部の各部の機能について各種テーブルの構成とあわせて説明する。図6は論理物理アドレス変換テーブル106の構成を示した図である。論理物理アドレス変換テーブル106は内部論理アドレスをテーブルのアドレスとしたときに、内部論理アドレスに対応するデータが存在するフラッシュメモリ103の物理ブロックのアドレスをデータとして持つ。例えば図6に示すように、内部論理アドレスが“0”のデータはフラッシュメモリ103の物理ブロックアドレス“234”の物理ブロックに存在し、内部論理アドレス“1”のデータはフラッシュメモリ103の物理ブロックアドレス“4”に存在する。内部論理アドレス“999”に対応するデータとして論理物理アドレス変換テーブルに“1024”が格納されているが、この“1024”はデータが未書き込みであることを示す特別な意味を持つデータである。
アドレス変換部505は内部論理アドレスを論理物理アドレス変換テーブル106のアドレスとして、対応するデータを読み出すことで内部論理アドレスに対応するフラッシュメモリ103の物理ブロックのアドレスを取得する機能を有する。ここで論理物理アドレス変換テーブル106のアドレスとデータの間には領域的な制限等は存在せず、任意の内部論理アドレスに対して“0”〜“1023”までの領域の任意の物理ブロックアドレスを取りうる。これに関しては後でアドレス変換の概要を説明する際に詳細する。
書き込み先ブロック検索部206はデータを書き込みする際に物理ブロック管理テーブル107を検索して消去済みまたは無効なデータの状態である物理ブロック(図2において物理状態が “1”の物理ブロック)に対してデータの書き込みを行う。この時、無効なデータが書き込まれた状態の物理ブロックであれば、データの書き込みを行う前に予め物理ブロックの消去が必要である。なお、本実施例では消去済みブロックと無効ブロックを共通する“1”として表現しているが、制御上これらを区別して制御する場合には、消去済みブロックと無効ブロックに異なる識別の状態を割当てればよい。
書き込み先ブロック検索部506は物理ブロック管理テーブル107において消去済みまたは無効なデータの物理状態である物理ブロック(図2において物理状態が“1”の物理ブロック)の中で、消去回数管理テーブル108の値が最も小さい物理ブロックを検索して選択する。
こうすることで、フラッシュメモリ103の各物理ブロックに対する劣化の度合いを均等にすることが可能となる。なお、上記以外にも、消去回数管理テーブルにおけるブロック毎の消去回数と該ブロックにおけるエラー発生率等を併用して物理ブロックを検索する等の選択方法も可能である。
グループ設定部507は、グループ管理テーブル109を作成する機能を有する。図4に示したグループ管理テーブル109の状態は、不揮発性記憶装置101の外部にあるホスト機器の指示を受けたプロセッサ104が、グループ設定部507を制御してグループ管理テーブルに対して設定したものであり。アドレス0に格納されたデータは第1外部I/F111を経由してアクセスできる領域の先頭の内部論理アドレスに対応するので、第1外部I/Fを経由してアクセスできる領域が内部論理アドレスの“0”から開始されることを示す。アドレス1に格納されたデータは第2外部I/F114を経由してアクセスできる領域の先頭の内部論理アドレスに対応するので、第2外部I/Fを経由してアクセスできる領域が内部論理アドレスの“200”から開始されることを示すと共に、第1外部I/F111を経由してアクセスできる領域が内部論理アドレスの“199”(=200−1)までであることも示す。アドレス2に格納されたデータは第3外部I/F117を経由してアクセスできる領域の先頭の内部論理アドレスに対応するので、データ“1000”は第3外部I/Fを経由してアクセスできる領域は無いことを示す。データ“1000”は無効な値として使用される。
オフセットアドレス取得部508は、グループ管理テーブル109を参照して外部I/Fに対応して、外部論理アドレスを内部論理アドレスに変換するためのオフセットアドレスを取得する。図4に示した値では、例えば第2外部I/F114に対応するオフセットアドレスとしてグループ管理テーブル109のアドレス1に格納されたデータである“200”を取得する。
図7は不揮発性記憶装置101の外部のホスト装置からフラッシュメモリ103の物理ブロックへのアドレス変換の概要である。複数あるそれぞれの外部インターフェースから外部論理アドレスにより指定したアクセスはI/F判定部509によってどのグループのアクセスであるかを判定する。そして同時に外部論理アドレス取得部510は、外部インターフェース(第1外部I/F111または第2外部I/F114または第3外部I/F117)から対応する外部論理アドレスを取得する。そうすることでグループ番号を順に外部論理アドレスを並べた外部論理マップにおけるアドレスを決定することができる。
外部論理マップはグループ管理テーブル109の情報を基にして内部論理アドレスのマップである内部論理マップに内部論理アドレス決定部511によって対応付けることが出来る。図4に示した値を使用すると、グループ“0”の外部論理アドレス“0”は内部論理アドレスの“0”に対応し、グループ“0”の外部論理アドレス“199”は内部論理アドレスの“199”に対応する。グループ“1”の外部論理アドレス“0”は内部論理アドレスの“200”に対応し、グループ“1”の外部論理アドレス“799”は内部論理アドレスの“999”に対応する。
内部論理マップは論理物理アドレス変換テーブル106の情報を基にしてフラッシュメモリ103の物理ブロックのマップである物理マップにアドレス変換部505によって対応付けることが出来る。
図8は不揮発性記憶装置101からデータを読み出す際の、不揮発性記憶装置101内部のプロセッサ104の処理の手順を示したフローチャートである。不揮発性記憶装置101からデータを読み出すための制御信号とアドレス情報が不揮発性記憶装置101の外部にあるホスト機器から入力されたら、ステップS801ではI/F判定部509によって制御信号が入力されたI/Fの認識を行う。次にステップS802ではステップS801で認識したI/Fから外部論理アドレス取得部510によってホスト機器が入力したアドレス情報を外部論理アドレスとして取得する。次にステップS803ではステップS801で認識したI/Fに対応するオフセットアドレスをオフセットアドレス取得部508がグループ管理テーブル109を参照することで取得する。次にステップS804ではステップS802で取得した外部論理アドレスとステップS803で取得したオフセットアドレスを基に内部論理アドレス決定部511が内部論理アドレスを決定する。次にステップS805ではステップS804で取得した内部論理アドレスを基にしてアドレス変換部505が論理物理アドレス変換テーブル106を参照してフラッシュメモリの物理アドレスを決定する。次にステップS806でフラッシュI/F制御部203がフラッシュメモリ103のステップS805で得られた物理アドレスからデータを読み出してI/Fに対応するバッファに格納する。フローチャートには図示していないがホストはステップS806以降不揮発性記憶装置101からデータを読み出す。
図9は不揮発性記憶装置101にデータを書き込む際の、不揮発性記憶装置101内部のプロセッサ104の処理の手順を示したフローチャートである。不揮発性記憶装置101にデータを書き込むための制御信号とアドレス情報が不揮発性記憶装置101の外部にあるホスト機器から入力されたら、ステップS901ではI/F判定部509によって制御信号が入力されたI/Fの認識を行う。次にステップS902ではステップS901で認識したI/Fから外部論理アドレス取得部510によってホスト機器が入力したアドレス情報を外部論理アドレスとして取得する。次にステップS903ではステップS901で認識したI/Fに対応するオフセットアドレスをオフセットアドレス取得部508がグループ管理テーブル109を参照することで取得する。次にステップS904ではすえっぷS902で取得した外部論理アドレスとステップS903で取得したオフセットアドレスを基に内部論理アドレス決定部511が内部論理アドレスを決定する。次にステップS905では書き込み先ブロック検索部506が物理ブロック管理テーブルを参照することで書き込み先となる物理アドレスを決定する。フローチャートには図示していないがここまでの期間にホストは書き込むデータの対応するバッファへの転送を終えている。次にステップS906でフラッシュI/F制御部503がフラッシュメモリ103のステップS905で得られた物理アドレスにバッファに格納されたデータを書き込む。最後にアドレス変換部505が論理物理変換テーブル106と物理ブロック管理テーブルと消去回数管理テーブル108の情報を更新して書き込みを終了する。
図9は不揮発性記憶装置101にデータを書き込む際の、不揮発性記憶装置101内部のプロセッサ104の処理の手順を示したフローチャートである。不揮発性記憶装置101にデータを書き込むための制御信号とアドレス情報が不揮発性記憶装置101の外部にあるホスト機器から入力されたら、ステップS901ではI/F判定部509によって制御信号が入力されたI/Fの認識を行う。次にステップS902ではステップS901で認識したI/Fから外部論理アドレス取得部510によってホスト機器が入力したアドレス情報を外部論理アドレスとして取得する。次にステップS903ではステップS901で認識したI/Fに対応するオフセットアドレスをオフセットアドレス取得部508がグループ管理テーブル109を参照することで取得する。次にステップS904ではすえっぷS902で取得した外部論理アドレスとステップS903で取得したオフセットアドレスを基に内部論理アドレス決定部511が内部論理アドレスを決定する。次にステップS905では書き込み先ブロック検索部506が物理ブロック管理テーブルを参照することで書き込み先となる物理アドレスを決定する。フローチャートには図示していないがここまでの期間にホストは書き込むデータの対応するバッファへの転送を終えている。次にステップS906でフラッシュI/F制御部503がフラッシュメモリ103のステップS905で得られた物理アドレスにバッファに格納されたデータを書き込む。最後にアドレス変換部505が論理物理変換テーブル106と物理ブロック管理テーブルと消去回数管理テーブル108の情報を更新して書き込みを終了する。
以上のように、本願発明ではフラッシュメモリ103の物理ブロック全体をまず一括して内部論理マップに変換する。この段階で不良ブロック管理を行い、その後で内部論理マップを外部のインターフェースに対応した外部論理マップに割り当てる構成をとる。そうすることによって、分割される領域の数や外部のインターフェースの数に依存せずに、最大限の効率で不良ブロックの管理を行うことが可能になる。つまり、有効な容量を減少させることなく、領域を分割することが可能になる。
さらに、本発明においては書き込み先ブロック検索部においてフラッシュメモリの全物理ブロックを対象として検索を行い、その際に消去回数の少ない物理ブロックを優先的に選択する仕組みを持っている。そのために有効な容量を減少させないという効果だけではなく、分割される領域の数や外部のインターフェースの数に依存せずに、最大限の効率でウェアレベリングを行うことが可能になる。
図10、図11に、本発明の不揮発性記憶装置を図12、図13の演算処理システムに適用した場合を示す。図10、図11に示すように本発明の不揮発性記憶装置は複数のインターフェースを備えるため、従来の複数のメモリで構成していた部分をひとつの不揮発性記憶装置に置き換えることが出来る。
なお、第1外部I/F111と第2外部I/F114と第3外部I/F117は物理的に異なる信号線群を備える構成としたが、物理的に信号線を共用しても構わない。この場合は、各I/Fを選択するような端子を追加することで、信号先を共有についても外部I/Fを論理的に選択することが可能となる。
また、論理物理アドレス変換テーブルはひとつのフラッシュメモリだけでなく、複数のフラッシュメモリの物理ブロックアドレスを内部論理アドレスに変換する構成をとっても構わない。
また、使用する不揮発性メモリはフラッシュメモリに限定されるものではない。後天的な不良が発生するために、不良ブロック管理を必要とするメモリであれば同様の本発明の効果が得られる。さらに、書き換えを繰り返すことによって性能が劣化するために、ウェアレベリングを必要とするメモリであれば同様の効果が得られる。
なお、本発明のメモリコントローラ及びフラッシュメモリ(不揮発性メモリ)からなる機能部品(モジュール)としても本発明は実現可能である。この場合、メモリコントローラとフラッシュメモリが一体となったものや、メモリコントローラとフラッシュメモリが独立した個々の部品となっている場合等、実装形態を限定するものではない。
本発明は小型化・軽量化・低コスト化が図れる携帯端末等に使用される記憶装置として有用である。
101 不揮発性記憶装置
102 コントローラ
103 フラッシュメモリ
104 プロセッサ
105 フラッシュI/F
106 論理物理アドレス変換テーブル
107 物理ブロック管理テーブル
108 消去回数管理テーブル
109 グループ管理テーブル
110 信号線群
111 第1外部I/F
112 第1バッファ
113 信号線群
114 第2外部I/F
115 第2バッファ
116 信号線群
117 第3外部I/F
118 第3バッファ
501 全体制御部
502 テーブル制御部
503 フラッシュI/F制御部
504 I/F制御部
505 アドレス変換部
506 書き込み先ブロック検索部
507 グループ設定部
508 オフセットアドレス取得部
509 I/F判定部
510 外部論理アドレス取得部
511 内部論理アドレス決定部
1201 演算処理システム
1202 演算処理回路
1203 入出力デバイス
1204 プログラムROM
1205 ワークRAM
1206 ストレージメモリ
102 コントローラ
103 フラッシュメモリ
104 プロセッサ
105 フラッシュI/F
106 論理物理アドレス変換テーブル
107 物理ブロック管理テーブル
108 消去回数管理テーブル
109 グループ管理テーブル
110 信号線群
111 第1外部I/F
112 第1バッファ
113 信号線群
114 第2外部I/F
115 第2バッファ
116 信号線群
117 第3外部I/F
118 第3バッファ
501 全体制御部
502 テーブル制御部
503 フラッシュI/F制御部
504 I/F制御部
505 アドレス変換部
506 書き込み先ブロック検索部
507 グループ設定部
508 オフセットアドレス取得部
509 I/F判定部
510 外部論理アドレス取得部
511 内部論理アドレス決定部
1201 演算処理システム
1202 演算処理回路
1203 入出力デバイス
1204 プログラムROM
1205 ワークRAM
1206 ストレージメモリ
Claims (8)
- 不揮発性メモリへのデータの記録又は読出しを制御するメモリコントローラにおいて、
外部からのデータ書込み又は読出し要求を受けるインターフェース部を複数備えることを特徴とするメモリコントローラ。 - 請求項1に記載のメモリコントローラにおいて、前記複数のインターフェース部は、外部との接続方式が少なくともひとつは異なることを特徴とするメモリコントローラ。
- 請求項1に記載のメモリコントローラにおいて、前記インターフェース部が受信する外部論理アドレスに応じて内部論理アドレスを決定する内部論理アドレス決定部と、
前記内部論理アドレスに基づいて前記不揮発性メモリの物理アドレスを算出するアドレス変換部と、
を備えることを特徴とするメモリコントローラ。 - 請求項1乃至請求項3に記載のメモリコントローラにおいて、
前記不揮発性メモリへデータを記録する際に、前記不揮発性メモリから該データを記録する未使用の物理ブロックを選択する書き込み先ブロック検索部を備えることを特徴とするメモリコントローラ。 - 請求項4に記載のメモリコントローラにおいて、前記書き込み先ブロック検索部は、前記不揮発性メモリから書き換え回数の少ない物理ブロックを優先的に選択することを特徴とするメモリコントローラ。
- 請求項1乃至請求項5に記載のメモリコントローラと、不揮発性メモリを備えることを特徴とする不揮発性記憶装置。
- 請求項6に記載の不揮発性記憶装置と、該不揮発性記憶装置へデータ書込み又は読出し要求する演算処理回路を少なくともひとつ備える演算処理システム。
- 請求項1乃至請求項5に記載のメモリコントローラと、不揮発性メモリを備える機能部品であることを特徴とする不揮発性記憶モジュール。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008106498A JP2009258948A (ja) | 2008-04-16 | 2008-04-16 | メモリコントローラ、不揮発性記憶装置および演算処理システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008106498A JP2009258948A (ja) | 2008-04-16 | 2008-04-16 | メモリコントローラ、不揮発性記憶装置および演算処理システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009258948A true JP2009258948A (ja) | 2009-11-05 |
Family
ID=41386292
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008106498A Pending JP2009258948A (ja) | 2008-04-16 | 2008-04-16 | メモリコントローラ、不揮発性記憶装置および演算処理システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009258948A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012121968A3 (en) * | 2011-03-06 | 2012-11-22 | Micron Technology, Inc. | Logical address translation |
-
2008
- 2008-04-16 JP JP2008106498A patent/JP2009258948A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012121968A3 (en) * | 2011-03-06 | 2012-11-22 | Micron Technology, Inc. | Logical address translation |
CN103502958A (zh) * | 2011-03-06 | 2014-01-08 | 美光科技公司 | 逻辑地址转译 |
JP2014507738A (ja) * | 2011-03-06 | 2014-03-27 | マイクロン テクノロジー, インク. | 論理アドレス変換 |
US8732431B2 (en) | 2011-03-06 | 2014-05-20 | Micron Technology, Inc. | Logical address translation |
US9164701B2 (en) | 2011-03-06 | 2015-10-20 | Micron Technology, Inc. | Logical address translation |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8055873B2 (en) | Data writing method for flash memory, and controller and system using the same | |
US8386698B2 (en) | Data accessing method for flash memory and storage system and controller using the same | |
US8037232B2 (en) | Data protection method for power failure and controller using the same | |
US8606987B2 (en) | Data writing method for flash memory and controller using the same | |
KR101166980B1 (ko) | 메모리 시스템 및 정보 처리 장치 | |
US8001317B2 (en) | Data writing method for non-volatile memory and controller using the same | |
RU2348992C2 (ru) | Запоминающее устройство и ведущее устройство | |
TWI385519B (zh) | 資料寫入方法及使用此方法的快閃儲存系統與其控制器 | |
US20080028132A1 (en) | Non-volatile storage device, data storage system, and data storage method | |
US7649794B2 (en) | Wear leveling method and controller using the same | |
US9268688B2 (en) | Data management method, memory controller and memory storage apparatus | |
JP2008016003A (ja) | メモリー格納装置及びその読み書き方法 | |
JPWO2009096180A1 (ja) | メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム | |
US9965400B2 (en) | Memory management method, memory control circuit unit and memory storage device | |
US8074128B2 (en) | Block management and replacement method, flash memory storage system and controller using the same | |
JP2013174975A (ja) | メモリシステムとそのデータ書き込み方法 | |
JP2011070365A (ja) | メモリシステム | |
JP5329689B2 (ja) | メモリコントローラ、不揮発性記憶装置 | |
JPWO2007105688A1 (ja) | メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム | |
US8417909B2 (en) | Block management and data writing method, and flash memory storage system and controller using the same | |
TW201947403A (zh) | 資料儲存裝置及系統資訊的編程方法 | |
JP2006011533A (ja) | メモリカード、半導体装置、及び半導体メモリの制御方法 | |
CN102362263A (zh) | Ssd控制器与ssd控制器的操作方法 | |
TWI428747B (zh) | 非揮發性記憶體資料管理方法及使用該方法之非揮發性儲存裝置 | |
JP2005243000A (ja) | 半導体メモリ装置、メモリコントローラ及びデータ記録方法 |