(57)【要約】【課題】アドレス変換マップの容量を低減すること。【解決手段】並列に接続され且つ記憶領域をセクタ毎の複数のブロックに分割された複数のフラッシュメモリ夫々のブロックからなるブロック群を指す物理アドレスの中から、ホストから論理アドレスと共に入力されたデータを書き込む先の物理アドレスを特定する物理アドレス特定部と、ホストから入力された論理アドレスに基づき、複数の論理アドレスからなる論理アドレス群を特定する論理アドレス群特定部と、物理アドレス特定部で特定された物理アドレスに、論理アドレス群特定部で特定された論理アドレス群のデータを書き込むデータ書き込み部と、データが書き込まれた物理アドレスとデータを書き込んだ論理アドレス群とを関連付けて記憶させる記憶制御部と、備える。【選択図】図８
2010146326.tif 000002
【特許請求の範囲】
【請求項１】
並列に接続され且つ記憶領域をセクタ毎の複数のブロックに分割された複数のフラッシュメモリ夫々の前記ブロックからなるブロック群を指す物理アドレスの中から、ホストから論理アドレスと共に入力されたデータを書き込む先の物理アドレスを特定する物理アドレス特定部と、
前記ホストから入力された前記論理アドレスに基づき、複数の論理アドレスからなる論理アドレス群を特定する論理アドレス群特定部と、
前記物理アドレス特定部により特定された物理アドレスに含まれるブロック夫々に、前記論理アドレス群特定部で特定された論理アドレス群に含まれる論理アドレス夫々のデータを書き込むデータ書き込み部と、
前記データ書き込み部によりデータが書き込まれた物理アドレスとデータを書き込んだ論理アドレス群とを関連付けてアドレス変換マップに記憶させる記憶制御部と、を備えることを特徴とする記憶装置。
【請求項２】
前記論理アドレス群特定部は、前記ホストから入力された前記論理アドレスのアドレス番号を、並列に接続された前記複数のフラッシュメモリの個数で割った商に、前記複数のフラッシュメモリの個数を掛けて求まる値を先頭の論理アドレスのアドレス番号とし、前記先頭の論理アドレスのアドレス番号から前記複数のフラッシュメモリの個数分のアドレス番号までの論理アドレスを論理アドレス群として特定することを特徴とする請求項１記載の記憶装置。
【請求項３】
前記データ書き込み部は、前記ホストから入力されていない論理アドレスのデータについては初期データを補完して、前記論理アドレス群に含まれる論理アドレス夫々のデータをまとめて書き込むことを特徴とする請求項１または２記載の記憶装置。
【請求項４】
前記データ書き込み部は、前記論理アドレス群特定部で特定された論理アドレス群に含まれる論理アドレスのアドレス番号を、並列に接続された前記複数のフラッシュメモリの個数で割った余りを求め、前記複数のフラッシュメモリのうち、前記余りに基づいて定められたフラッシュメモリが有するブロックに前記論理アドレスのデータを記憶することを特徴とする請求項１から３のいずれか一項記載の記憶装置。
【請求項５】
前記物理アドレス特定部は、データが記憶されていないブロック群を指す物理アドレスを特定することを特徴とする請求項１から４のいずれか一項記載の記憶装置。
【請求項６】
前記ホストからデータの読み出しコマンドを受信した場合、前記ホストから入力された論理アドレスと関連付けられた物理アドレスが、前記アドレス変換マップに記憶されているか判断する判断部と、
前記判断部により前記物理アドレスが記憶されていると判断された場合、前記物理アドレスが示すブロック群に記憶されているデータをまとめて読み出し、前記判断部により前記物理アドレスが記憶されていないと判断された場合、前記フラッシュメモリから初期データを読み出すデータ読み出し部と、を更に備えることを特徴とする請求項１から５のいずれか一項記載の記憶装置。
【請求項７】
並列に接続され且つ記憶領域をセクタ毎の複数のブロックに分割された複数のフラッシュメモリ夫々の前記ブロックからなるブロック群を指す物理アドレスの中から、ホストから論理アドレスと共に入力されたデータを書き込む先の物理アドレスを特定する物理アドレス特定工程と、
前記ホストから入力された前記論理アドレスに基づき、複数の論理アドレスからなる論理アドレス群を特定する論理アドレス群特定工程と、
前記物理アドレス特定工程により特定された物理アドレスに含まれるブロック夫々に、前記論理アドレス群特定工程で特定された論理アドレス群に含まれる論理アドレス夫々のデータを書き込むデータ書き込み工程と、
前記データ書き込み工程によりデータが書き込まれた物理アドレスとデータを書き込んだ論理アドレス群とを関連付けてアドレス変換マップに記憶する記憶制御工程と、を備えることを特徴とする記憶装置の制御方法。
【請求項８】
請求項１から６のいずれか一項に記載の記憶装置を備えることを特徴とする電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置、その制御方法及びその記憶装置を用いた電子装置に関し、特に、フラッシュメモリを用いた記憶装置、その制御方法及びその記憶装置を用いた電子装置に関する。
【背景技術】
【０００２】
パーソナルコンピュータ等に用いられる記憶装置として、磁気ディスク装置（ＨＤＤ：Hard Disk Drive）が主に使用されている。しかし、ＨＤＤは、ヘッドやモーターといった駆動部品を有するため耐衝撃性が弱く、物理的な衝撃が加わることにより、誤動作や故障が発生する場合があった。また、ＨＤＤは、ヘッドを移動させるためのシーク時間やディスクの回転数を高めるスピンアップ時間を要するため、時間的ロスも生じていた。そこで、近年、ＨＤＤに変わりに、不揮発性メモリであるフラッシュメモリを用いたＳＳＤ（Solid State Drive）と呼ばれる記憶装置が開発されている。
【０００３】
フラッシュメモリを用いた記憶装置は、ホストから入力される論理アドレスに対応したフラッシュメモリの物理アドレスにアクセスできるよう、論理アドレスを物理アドレスに変換するアドレス変換マップを備えている（例えば、特許文献１から３）。これにより、フラッシュメモリの内部においてデータの記憶位置が変更されたとしても、ホストからは意識することなくアクセスが行える形態となっている。
【０００４】
アドレス変換マップは、工場出荷時又は初期化コマンド実行時に、全ての論理アドレスに対し物理アドレスを割り当てた状態で運用する方法が一般的に用いられている。また、フォーマット時間の短縮を図るため、工場出荷時又は初期化コマンド実行時には、全ての論理アドレスに対し物理アドレスを割り当てず、初めて書き込みコマンドが来た時点で、その論理アドレスに対して物理アドレスを割り当てる方法もまた一般的に用いられている。
【０００５】
また、フラッシュメモリを用いた記憶装置では、フラッシュメモリ単体での転送速度はＨＤＤよりも劣るため、転送速度を向上させるために、複数のフラッシュメモリを並列接続させる方法が用いられている（例えば、特許文献１）。
【０００６】
【特許文献１】特開平６−１１９１２８号公報
【特許文献２】特開２００５−１０８３０４号公報
【特許文献３】特開２００１−６７２５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
近年、フラッシュメモリを用いた記憶装置の大容量化の進歩が著しく、これに伴い、アドレス変換マップの容量も増大し、無視できない程の大きさとなってきている。例えば、５１２ＧＢの記憶容量を有する記憶装置の場合において、セクタサイズが５１２Ｂｙｔｅである場合を考えると、論理アドレスの総数は、５１２ＧＢ／５１２Ｂｙｔｅで求められ、１×１０９個となる。ここで、アドレス変換マップで、単位物理アドレス当り４Ｂｙｔｅを使用すると仮定すると、アドレス変換マップの容量は、４ＧＢもの大きさになってしまう。
【０００８】
そこで、本発明は、アドレス変換マップの容量を低減することが可能な記憶装置、その制御方法及びその記憶装置を用いた電子装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本明細書に記載の記憶装置は、並列に接続され且つ記憶領域をセクタ毎の複数のブロックに分割された複数のフラッシュメモリ夫々の前記ブロックからなるブロック群を示す物理アドレスの中から、ホストから論理アドレスと共に入力されたデータを書き込む先の物理アドレスを特定する物理アドレス特定部と、前記ホストから入力された前記論理アドレスに基づき、複数の論理アドレスからなる論理アドレス群を特定する論理アドレス群特定部と、前記物理アドレス特定部により特定された物理アドレスに含まれるブロック夫々に、前記論理アドレス群特定部で特定された論理アドレス群に含まれる論理アドレス夫々のデータを書き込むデータ書き込み部と、前記データ書き込み部によりデータが書き込まれた物理アドレスとデータを書き込んだ論理アドレス群とを関連付けてアドレス変換マップに記憶する記憶制御部と、を有している。
【００１０】
これによれば、複数の論理アドレスからなる論理アドレス群に対し、１つの物理アドレスを割り当てることになる。このため、論理アドレス夫々に対し１つの物理アドレスを割り当てる場合に比べ、物理アドレスの総数を減らすことができる。これにより、アドレス変換マップの容量を低減することができる。
【００１１】
本明細書に記載の記憶装置の制御方法は、並列に接続され且つ記憶領域をセクタ毎の複数のブロックに分割された複数のフラッシュメモリ夫々の前記ブロックからなるブロック群を示す物理アドレスの中から、ホストから論理アドレスと共に入力されたデータを書き込む先の物理アドレスを特定する物理アドレス特定工程と、前記ホストから入力された前記論理アドレスに基づき、複数の論理アドレスからなる論理アドレス群を特定する論理アドレス群特定工程と、前記物理アドレス特定工程により特定された物理アドレスに含まれるブロック夫々に、前記論理アドレス群特定工程で特定された論理アドレス群に含まれる論理アドレス夫々のデータを書き込むデータ書き込み工程と、前記データ書き込み工程によりデータが書き込まれた物理アドレスとデータを書き込んだ論理アドレス群とを関連付けてアドレス変換マップに記憶する記憶制御工程と、を有する。
【００１２】
これによれば、複数の論理アドレスからなる論理アドレス群に対し、１つの物理アドレスを割り当てることになる。このため、論理アドレス夫々に対し１つの物理アドレスを割り当てる場合に比べ、物理アドレスの総数を減らすことができる。これにより、アドレス変換マップの容量を低減することができる。
【００１３】
本明細書に記載の電子装置は、本明細書に記載の記憶装置を備えている。
【００１４】
これによれば、アドレス変換マップの容量が小さな記憶装置を備えた電子装置を得ることができる。
【発明の効果】
【００１５】
本明細書に記載の記憶装置及びその制御方法によれば、アドレス変換マップの容量を低減することができるという効果を奏する。また、本明細書に記載の電子装置によれば、アドレス変換マップの容量が小さな記憶装置を備えた電子装置が得られるという効果を奏する。
【発明を実施するための最良の形態】
【００１６】
まず初めに、本発明の理解を助けるために、比較例とその課題について説明する。図１は、比較例１に係る記憶装置１００のブロック図である。記憶装置１００は、例えば、Ｆｌａｓｈ  ＳＳＤ（Flash Solid State Drive）である。
【００１７】
図１のように、記憶装置１００は、４個のフラッシュメモリ１０、ＲＯＭ（Read Only Memory）１２、ＭＰＵ（Micro Processing Unit）１４、及びデータバッファ１６とアドレス変換マップ１８とを有するＲＡＭ（Random Access Memory）２０、を有する。
【００１８】
フラッシュメモリ１０は、ホスト２２から入力されたデータを記憶するデータ記憶用素子として用いられる。フラッシュメモリ１０が有する記憶領域は、セクタ毎の複数のブロックに分割されていて、分割されたブロック単位で、データの書き込みや読み出しを実行することができる。比較例１及び下記の比較例２では、ブロック毎に物理アドレスが付与される。また、４個のフラッシュメモリ１０は、ＲＡＭ２０に対して互いに並列に接続されている。これにより、前述の背景技術で説明したように、４個のフラッシュメモリ１０は同時読み出し／同時書き込み（並列処理）が可能となり、記憶装置１００の転送速度を向上させることができる。例えば、図１のように、４個のフラッシュメモリ１０が並列に接続している場合、１個のフラッシュメモリ１０の転送速度が２０ＭＢ／ｓであるとすると、記憶装置１００としては、８０ＭＢ／ｓの転送速度を実現することが可能となる。なお、並列に接続されるフラッシュメモリ１０の個数は４個に限られない。複数個並列に接続されている場合に、ＲＡＭ２０の有する最大の帯域の範囲内で、転送速度の向上を図ることができる。
【００１９】
ＲＯＭ１２は、ＭＰＵ１４によって実行される制御プログラムが予め格納されている。ＭＰＵ１４は、フラッシュメモリ１０へのデータの書き込み、フラッシュメモリ１０からのデータの読み出し等、記憶装置１００全体の制御を行う。
【００２０】
データバッファ１６は、ホスト２２から入力された書き込みデータやフラッシュメモリ１０から読み出されたデータを一時的に記憶する。
【００２１】
アドレス変換マップ１８は、ホスト２２から入力された論理アドレスと、フラッシュメモリ１０の物理アドレスと、を関連付けるアドレス変換テーブルを記憶している。これにより、ホスト２２から入力された論理アドレスに対応したフラッシュメモリ１０の物理アドレスにアクセスすることが可能となる。なお、アドレス変換テーブルの情報は、記憶装置１００の電源がＯＦＦされる際に、少なくとも１つのフラッシュメモリ１０に転送され記憶される。そして、記憶装置１００の電源がＯＮされた際に、フラッシュメモリ１０に記憶されていたアドレス変換テーブルの情報が、再度アドレス変換マップ１８に転送される。
【００２２】
ここで、アドレス変換マップ１８が記憶するアドレス変換テーブル１９は、例えば、図２のように、工場出荷時や初期化コマンド実行時に、予め、全ての論理アドレス夫々に対して、１つの物理アドレスを割り当てて運用される。ここで、ホスト２２からのアクセスは、１セクタ単位ではなく、複数セクタまとめてアクセスされることが一般的である。このため、図３のように、論理アドレス（以下、ＬＢＡとする）のアドレス番号の小さい方から順に、４個のフラッシュメモリ１０夫々のブロックに交互に配置されるようにすることが好ましい。この場合、例えば、ＬＢＡ０からシーケンシャルにアクセスをする場合に、ＲＡＭ２０の有する最大の帯域を利用することが可能となる。
【００２３】
また、アドレス変換テーブル１９は、例えば、工場出荷時や初期化コマンド実行時には、全ての論理アドレスに対して物理アドレスを割り当てず、ホスト２２から書き込みコマンドが入力された時点で、ホスト２２から入力された論理アドレスに物理アドレスを割り当ててもよい（比較例２）。例えば、図４では、ホスト２２からＬＢＡ２の書き込みコマンドが入力された場合に、ＬＢＡ２に対して物理アドレスを割り当てた場合を示している。このような方法では、アドレス変換テーブル１９をクリアするだけで、フォーマットするのと同じ効果が得られるため、前述の背景技術で説明したように、フォーマット時間の短縮を図ることができる。
【００２４】
ここで、比較例２の場合における、データの書き込み処理及び読み出し処理について詳しく説明する。図５は、ＭＰＵ１４が、ＬＢＡ５、ＬＢＡ１の順に、ホスト２２から１セクタ分づつの書き込みコマンドを受信した場合について示している。
【００２５】
図５のように、ＭＰＵ１４が、ＬＢＡ５、ＬＢＡ１の順に、１セクタ分づつのデータを受信した場合、物理アドレスの先頭から順にＬＢＡ５、ＬＢＡ１を割り当てて、データを書き込むことが一般的である。次に、図６を用い、図５のように論理アドレスのデータが書き込まれた場合において、ＭＰＵ１４が、ホスト２２からＬＢＡ０〜３の４セクタの読み出しコマンドを受信した場合について説明する。
【００２６】
図６のように、ＬＢＡ０、２、３のデータは書き込まれていない。このため、ＬＢＡ０、２、３については、ＭＰＵ１４は、フラッシュメモリ１０に設けられている初期化データ用専用領域２３から初期データ（０ｘ００）を読み出し、ＬＢＡ１から読み出したデータと組み合わせてＲＡＭ２０に一時的に記憶させる。そして、ＭＰＵ１４は、ＬＢＡ０〜３のデータをホスト２２に送信する。なお、初期化データ用専用領域２３は、４個のフラッシュメモリ１０夫々に設けられている場合でも、４個のフラッシュメモリ１０のうち１つのフラッシュメモリ１０に設けられている場合でもよい。
【００２７】
比較例１及び比較例２の記憶装置では、全ての論理アドレス夫々に対し、１つの物理アドレスを割り当てている。このため、記憶装置１００の大容量化が進んだ場合、アドレス変換マップ１８の容量が無視できない程増大するという課題が生じる。そこで、以下に、このような課題を解決することが可能な実施例を説明する。
【実施例】
【００２８】
以下、本発明の記憶装置の実施例を説明する。本実施例に係る記憶装置１００は、例えば、Ｆｌａｓｈ  ＳＳＤ（Flash Solid State Drive）であり、ブロック図は比較例１と同じであり、図１に示しているため、ここでは説明を省略する。
【００２９】
本実施例に係る記憶装置１００が有するＭＰＵ１４は、図７のように、コマンド受信部２４、物理アドレス特定部２６、論理アドレス群特定部２８、データ書き込み部３０、記憶制御部３２、判断部３４、及びデータ読み出し部３６を備えている。これらコマンド受信部２４、物理アドレス特定部２６、論理アドレス群特定部２８、データ書き込み部３０、記憶制御部３２、判断部３４、及びデータ読み出し部３６は、システムバス３８により互いに接続している。また、コマンド受信部２４、物理アドレス特定部２６、論理アドレス群特定部２８、データ書き込み部３０、記憶制御部３２、判断部３４、及びデータ読み出し部３６は、ＲＯＭ１２に予め格納されている制御プログラムをＭＰＵ１４が読み出して実行することにより行われる。
【００３０】
コマンド受信部２４は、ホスト２２から入力される書き込みコマンド及び読み出しコマンドを受信する。物理アドレス特定部２６は、コマンド受信部２４で書き込みコマンドを受信した場合に、ホスト２２から入力された論理アドレスのデータを書き込む先の物理アドレスの特定を行う。本実施例において、物理アドレスは、４個並列に接続されたフラッシュメモリ夫々が有するブロックを１つづつ含むブロック群のことを示す点で、比較例１及び比較例２と異なる。つまり、４個のブロックが１つの物理アドレスにより特定される。論理アドレス群特定部２８は、コマンド受信部２４で書き込みコマンドを受信した場合に、ホスト２２から入力された論理アドレスに基づき、論理アドレス群を特定する。論理アドレス群は、ホスト２２から入力された論理アドレスを含み、並列に接続されたフラッシュメモリの個数の論理アドレスからなる。即ち、本実施例では、論理アドレス群は４つの論理アドレスからなる。なお、物理アドレス特定部２６による物理アドレスの特定及び論理アドレス群特定部２８による論理アドレス群の特定については、図８のフローチャートを説明する際に詳細に述べる。
【００３１】
データ書き込み部３０は、物理アドレス特定部２６で特定された物理アドレスに含まれるブロック夫々に、論理アドレス群特定部２８で特定された論理アドレス群に含まれる論理アドレス夫々のデータをまとめて書き込む。記憶制御部３２は、物理アドレス特定部２６で特定され、各ブロック夫々にデータが書き込まれた物理アドレスと、論理アドレス群特定部２８で特定され、データを書き込んだ論理アドレスからなる論理アドレス群と、を関連付けたアドレス変換テーブル１９をアドレス変換マップ１８に記憶する。
【００３２】
判断部３４は、コマンド受信部２４で読み出しコマンドを受信した場合に、ホスト２２から入力された論理アドレスが、アドレス変換マップ１８で既に物理アドレスが割り当てられているか判断する。データ読み出し部３６は、判断部３４で物理アドレスが割り当てられていると判断された場合、その物理アドレスに含まれるブロック夫々に書き込まれているデータをまとめて読み出す。また、データ読み出し部３６は、判断部３４で物理アドレスが割り当てられていないと判断された場合、フラッシュメモリ１０に設けられている初期化データ用専用領域２３から初期データを読み出す。
【００３３】
次に、図８のフローチャートを用い、データの書き込み処理について説明する。なお、書き込み処理を説明するにあたり、具体例として、ＭＰＵ１４が、ＬＢＡ５の書き込みコマンドをホスト２２から受信した場合について説明する。
【００３４】
図８を参照に、ＭＰＵ１４が、ホスト２２からＬＢＡ５の書き込みコマンドを受信する（ステップＳ１０）と、ＲＡＭ２０（データバッファ１６）は、ホスト２２から入力されたＬＢＡ５のデータを受信し、記憶する（ステップＳ１２）。
【００３５】
ＭＰＵ１４は、並列に接続するフラッシュメモリ１０夫々のブロックを含むブロック群の中から、データが記憶されていない空きブロック群を探し、その空きブロック群を示す物理アドレスを、書き込み先の物理アドレスとして特定する（ステップＳ１４）。即ち、データの書き込み処理の場合、ＭＰＵ１４は、アドレス変換マップ１８に記憶されたアドレス変換テーブル１９を参照しない。つまり、ホスト２２から入力された論理アドレスに対し、既に物理アドレスが割り当てられているか否かに関わらず、ＭＰＵ１４は、常に空きブロック群を探し、空きブロック群を指す物理アドレスを、書き込み先の物理アドレスとして特定する。
【００３６】
次に、ＭＰＵ１４は、ステップＳ１４で特定された物理アドレスのブロック群にデータをまとめて書き込む論理アドレス群の特定を行う（ステップＳ１６）。論理アドレス群の特定は以下の方法により行う。まず、ＭＰＵ１４は、ホスト２２から入力されたＬＢＡ５のアドレス番号５を、並列に接続されたフラッシュメモリ１０の個数４で割り、商１を求める。その商１に対して並列に接続されたフラッシュメモリ１０の個数４を掛ける。その結果値４をアドレス番号としたＬＢＡ４を、論理アドレス群の先頭の論理アドレスとする。そして、先頭の論理アドレスであるＬＢＡ４から、並列に接続されたフラッシュメモリ１０の個数４に相当するブロック分の論理アドレスを、論理アドレス群として特定する。つまり、ＬＢＡ４〜７が論理アドレス群として特定される。
【００３７】
次に、ＭＰＵ１４は、ステップＳ１６で特定された論理アドレス群（ＬＢＡ４〜７）に含まれる論理アドレスのうち、ホスト２２からデータを受信していない論理アドレス（ＬＢＡ４、６、７）について、フラッシュメモリ１０に設けられている初期化データ用専用領域２３から初期データ（０ｘ００）をＲＡＭ２０上に補完する（ステップＳ１８）。
【００３８】
次に、ＭＰＵ１４は、ＲＡＭ２０上に記憶された、ホスト２２から受信したデータ（ＬＢＡ５のデータ）と初期化データ用専用領域２３から補完された初期データ（ＬＢＡ４、６、７のデータ）とを、ステップＳ１４で特定された物理アドレスに含まれるブロック夫々に対し、まとめて書き込みを行う（ステップＳ２０）。物理アドレスに含まれる各ブロックのうち、どのブロックにどの論理アドレスのデータを書き込むかは、以下の方法で特定される。図９のように、並列に接続された４個のフラッシュメモリ１０を、例えば、フラッシュ１〜４と番号を付与する。ホスト２２から入力されたＬＢＡ５のアドレス番号５を、並列に接続されたフラッシュメモリ１０の個数４で割り、その余り１を求める。ここで、予め、フラッシュ１〜４と上記算出方法による余り０〜３との対応関係を定めておく。例えば、フラッシュ１は余り０の論理アドレスのデータを、フラッシュ２は余り１の論理アドレスのデータを、フラッシュ３は余り２の論理アドレスのデータを、フラッシュ４は余り３の論理アドレスのデータを書き込むと定めておく。これにより、図９のように、ＬＢＡ５のデータは、フラッシュ２のブロックに書き込むということが特定される。この方法を用いることで、ＬＢＡ４〜７のデータは、アドレス番号の小さい番号から順に並ぶように書き込むことができる。
【００３９】
次に、ＭＰＵ１４は、データが書き込まれた物理アドレスと、データを書き込んだ論理アドレス群（ＬＢＡ４〜７）と、を関連付けた新たなアドレス変換テーブル１９を作成し、アドレス変換マップ１８に記憶する（ステップＳ２２）。これにより、図１０のように、ＬＢＡ４〜７に対して１つの物理アドレスが割り当てられる。以上により、１セクタのデータの書き込み処理が完了する。
【００４０】
ここで、ステップＳ１０を実行するＭＰＵは、図７におけるコマンド受信部２４に相当する。ステップＳ１４を実行するＭＰＵは、図７における物理アドレス特定部２６に相当する。ステップＳ１６を実行するＭＰＵは、図７における論理アドレス群特定部２８に相当する。ステップＳ１８及びステップＳ２０を実行するＭＰＵは、図７におけるデータ書き込み部３０に相当する。ステップＳ２２を実行するＭＰＵは、図７における記憶制御部３２に相当する。
【００４１】
次に、図１１を用い、データの読み出し処理について説明する。なお、読み出し処理を説明するにあたり、図９、図１０のように論理アドレスに対し物理アドレスが割り当てられ、データが書き込まれている場合を例に説明する。
【００４２】
図１１を参照に、ＭＰＵ１４は、ホスト２２から論理アドレスが指定された読み出しコマンドを受信すると（ステップＳ３０）、ホスト２２から入力された論理アドレスがアドレス変換マップ１８に既に割り当てられているか判断する（ステップＳ３２）。例えば、ホスト２２からＬＢＡ０〜３の４セクタの読み出しコマンドを受信した場合は、ＭＰＵ１４は、アドレス変換マップ１８に割り当てられていないと判断し（Ｎｏ）、ホスト２２からＬＢＡ４〜７の４セクタの読み出しコマンドを受信した場合は、ＭＰＵ１４は、アドレス変換マップ１８に既に割り当てられていると判断する（Ｙｅｓ）。
【００４３】
ステップＳ３２でＹｅｓと判断された場合、ＭＰＵ１４は、アドレス変換マップ１８のアドレス変換テーブル１９を参照し、アドレス変換テーブル１９が示す物理アドレスのブロック群からデータをまとめて読み出し、ＲＡＭ２０上に転送して記憶させる（ステップＳ３４）。ステップＳ３２でＮｏと判断された場合は、ＭＰＵ１４は、フラッシュメモリ１０の初期化データ用専用領域２３から初期データを読み出し、ＲＡＭ２０上に転送して記憶させる（ステップＳ３６）。
【００４４】
次に、ＭＰＵ１４は、ＲＡＭ２０上に記憶されたデータを、ホスト２２に送信する（ステップＳ３８）。これにより、データの読み出し処理が完了する。
【００４５】
ここで、ステップＳ３０を実行するＭＰＵは、図７におけるコマンド受信部２４に相当する。ステップＳ３２を実行するＭＰＵは、図７における判断部３４に相当する。ステップＳ３４及びＳ３６を実行するＭＰＵは、図７におけるデータ読み出し部３６に相当する。
【００４６】
以上説明したように、本実施例によれば、フラッシュメモリ１０が並列に４個接続されている場合に、図１０のように、４個の論理アドレスに対し、１つの物理アドレスを割り当てるだけで済むようになる。即ち、Ｎ個のフラッシュメモリが並列に接続されている場合は、Ｎ個の論理アドレスに対し、１つの物理アドレスを割り当てるだけで済むようになる。これにより、比較例１及び比較例２の場合に比べ、アドレス変換マップ１８の容量を１／Ｎに低減することができる。
【００４７】
前述したように、記憶装置１００の電源をＯＦＦする際に、アドレス変換テーブル１９の情報は、フラッシュメモリ１０に転送され記憶される。つまり、フラッシュメモリ１０には、アドレス変換テーブル１９の情報を記憶するための領域を予め確保しておく必要がある。したがって、本実施例のように、アドレス変換テーブル１９の情報が少なくなり、アドレス変換マップ１８の容量が減ることで、フラッシュメモリ１０に確保しておく領域も減らすことができる。換言すると、本実施例によれば、フラッシュメモリ１０の記憶領域の中で、ホスト２２との間でやりとりされるデータを格納するための領域を増やすことができる。なお、アドレス変換テーブル１９の情報を格納するための領域は、４個のフラッシュメモリ１０夫々が有していてもよいし、４個のフラッシュメモリ１０のうち１つのフラッシュメモリ１０が有している場合でもよい。
【００４８】
また、ホスト２２から書き込みコマンドを受信してから、論理アドレス群に対し物理アドレスを割り当てたアドレス変換テーブル１９を作成している。このため、アドレス変換テーブル１９をクリアするだけでフォーマットをしたことと同じになるため、フォーマット時間を短縮することができる。
【００４９】
また、図９のように、１つの物理アドレスに含まれるブロック夫々は、並列に接続されたフラッシュメモリ１０夫々の記憶領域に属している。したがって、１つの物理アドレスに含まれるブロック夫々へのデータの書き込みはまとめて行うことが可能であり、データの書き込みに要する時間は、１ブロックにデータを書き込む場合と変わらなくて済む。
【００５０】
また、図９のように、１つの物理アドレスに含まれるブロック夫々に、論理アドレスのアドレス番号順にデータが格納されている。したがって、例えば、ＬＢＡ４〜７の連続したデータを読み出す場合に、ＲＡＭ２０の有する最大の帯域を利用することができ、読み出しに要する時間を短縮することができる。
【００５１】
また、本実施例によれば、４個の論理アドレスに対し、１つの物理アドレスが割り当てられている。したがって、連続したデータを読み出す場合に、論理アドレスに対し割り当てられた物理アドレスを、アドレス変換マップ１８に確認するのに要する時間を短縮することができる。例えば、ＬＢＡ４〜７の連続したデータを読み出す場合に、比較例１や比較例２では、ＬＢＡ４〜７夫々について割り当てられた物理アドレスを、アドレス変換マップ１８で確認する必要があった。しかしながら、本実施例では、ＬＢＡ４〜７を一まとめにして１つの物理アドレスが割り当てられているため、アドレス変換マップ１８に確認するのに要する時間を短縮することができる。
【００５２】
また、ホスト２２からのデータの書き込み先の物理アドレスを特定する際に、ホスト２２から入力された論理アドレスに、既に物理アドレスが割り当てられているか否かに関わらず、常に、空きブロック群を探し、空きブロック群を示す物理アドレスを、書き込み先の物理アドレスとして特定する。これにより、フラッシュメモリ１０の記憶領域を分割したブロック全てに対して、書き込み回数を平準化することができる。
【００５３】
また、本実施例に係る記憶装置１００は、図１２のように、電子装置２００に備わっていることが好ましい。電子装置２００の例としては、電話機、オーディオ機、パソコン、ＨＤＤレコーダー等のデータを記憶する装置が挙げられる。背景技術で説明したように、フラッシュメモリを用いた記憶装置は、耐衝撃性に優れているため、携帯型電話機、携帯型オーディオ機、ノートパソコン等の持ち運びを行う電子装置に、本実施例に係る記憶装置１００が備わることが好適である。
【００５４】
本実施例において、並列に接続されているフラッシュメモリ１０は４個の場合を例に示したがこれに限られる訳ではなく、任意の個数とすることができる。フラッシュメモリ１０を並列に接続することで、ＲＡＭ２０の有する最大の帯域の範囲内で、データの転送速度の向上を図ることができる。
【００５５】
上述した実施例は、本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の趣旨を逸脱しない範囲内において種々の変形実施が可能である。
【図面の簡単な説明】
【００５６】
【図１】図１は比較例１、２及び実施例に係る記憶装置の構成を説明するブロック図である。
【図２】図２は比較例１に係る記憶装置のアドレス変換マップに記憶されたアドレス変換テーブルを説明する図である。
【図３】図３は比較例１に係る記憶装置に関し、物理アドレスが割り当てられた論理アドレスの配置を説明する図である。
【図４】図４は比較例２に係る記憶装置のアドレス変換マップに記憶されたアドレス変換テーブルを説明する図である。
【図５】図５は比較例２に係る記憶装置に関し、書き込み処理を説明するための図である。
【図６】図６は比較例２に係る記憶装置に関し、読み出し処理を説明するための図である。
【図７】図７は実施例に係る記憶装置のＭＰＵの機能ブロック図である。
【図８】図８は実施例に係る記憶装置の書き込み処理を説明するフローチャートである。
【図９】図９は実施例に係る記憶装置に関し、書き込み処理を説明するための図である。
【図１０】図１０は実施例に係る記憶装置のアドレス変換マップに記憶されたアドレス変換テーブルを説明する図である。
【図１１】図１１は実施例に係る記憶装置の読み出し処理を説明するフローチャートである。
【図１２】図１２は実施例に係る記憶装置を備えた電子装置の構成を説明するブロック図である。
【符号の説明】
【００５７】
１０  フラッシュメモリ
１２  ＲＯＭ
１４  ＭＰＵ
１６  データバッファ
１８  アドレス変換マップ
１９  アドレス変換テーブル
２０  ＲＡＭ
２２  ホスト
２３  初期化データ用専用領域
２４  コマンド受信部
２６  物理アドレス特定部
２８  論理アドレス群特定部
３０  データ書き込み部
３２  記憶制御部
３４  判断部
３６  データ読み出し部
３８  システムバス
１００  記憶装置
２００  電子装置
【図１】
2010146326.tif 000003
【図２】
2010146326.tif 000004
【図３】
2010146326.tif 000005
【図４】
2010146326.tif 000006
【図５】
2010146326.tif 000007
【図６】
2010146326.tif 000008
【図７】
2010146326.tif 000009
【図８】
2010146326.tif 000010
【図９】
2010146326.tif 000011
【図１０】
2010146326.tif 000012
【図１１】
2010146326.tif 000013
【図１２】
2010146326.tif 000014