(57)【特許請求の範囲】
【請求項１】
ホストに接続して使用されるハードディスクドライブ互換記憶装置であって、
前記記憶装置は、
前記ホストの制御下で前記ホストとの間でデータの書き込み・読み出し制御を行うコントローラと、
ファイル管理情報部とデータ部とを備え、前記データ部にはホストから送られて来るデータが保存され、前記ファイル管理情報部には前記データ保存に関連するファイル管理情報が保存されるように構成されたフラッシュメモリで構成される第１メモリと、
不揮発性ランダムアクセスメモリで構成される第２メモリと、
を有し、前記ホストから供給される電力によって駆動されるように構成されてなり、
前記コントローラは、
（１）ハードディスクに対するデータ管理方式と互換性のあるデータ管理方式で前記ホストとの間でやり取りされるデータの書き込み・読み出しを管理する処理と、
（２）フラッシュメモリで構成される前記第１メモリ内の前記ファイル管理情報部からファイル管理情報を読み出して不揮発性ランダムアクセスメモリで構成される前記第２メモリに書き込む処理と、
（３）前記ホストから前記記憶装置に読み出し動作と書き込み動作があったときは、不揮発性ランダムアクセスメモリで構成される前記第２メモリ内の前記ファイル管理情報に基づいて当該第２メモリ内で読み出しと書き込みを行い前記ファイル管理情報の更新を行なう処理と、
（４）前記ホストにおける正常終了動作に応じて、不揮発性ランダムアクセスメモリで構成される前記第２メモリ内に更新された前記ファイル管理情報を保持した状態で、前記第２メモリから更新された前記ファイル管理情報を読み出してフラッシュメモリで構成される前記第１メモリに書き込む処理と、
を実行するように構成されてなることを特徴とする記憶装置。
【請求項２】
前記（２）の処理はホストの少なくともいずれかの起動時において実行され、ホストの正常終了後の再起動時においては前記（４）における不揮発性ランダムアクセスメモリで構成される前記第２メモリ内に保持された前記ファイル管理情報に基づき前記（３）の処理が実行されることを特徴とする請求項１記載の記憶装置。
【請求項３】
前記コントローラは、さらに、（５）前記ホストから送られて来るデータが、少なくともデータサイズ、書き換え頻度及びブロック単位での充足率のいずれかにおいて、予め設定された条件のときは不揮発性ランダムアクセスメモリで構成される前記第２メモリ内に保存し、予め設定された条件以外のときはフラッシュメモリで構成される前記第１メモリに保存するようにデータの保存先の振り分けを行う処理を実行するように構成されてなることを特徴とする請求項１又は２記載の記憶装置。
【請求項４】
前記コントローラは、前記ホスト側で予期しない電源遮断による異常終了が発生したときは、前記異常終了後の再起動時に、不揮発性ランダムアクセスメモリで構成される前記第２メモリ内に保存されている前記ファイル管理情報を前記フラッシュメモリで構成される前記第１メモリに保存されている前記ファイル管理情報を照合比較し、前記第１メモリ内及び第２メモリ内における前記ファイル管理情報をそれぞれ更新し、若しくは修復する処理を実行するように構成されてなることを特徴とする請求項１乃至３のいずれか記載の記憶装置。
【請求項５】
ホストに接続して使用されるハードディスクドライブ互換記憶装置であって、
前記記憶装置は、
前記ホストの制御下で前記ホストとの間でデータの書き込み・読み出し制御を行うコントローラと、
フラッシュメモリで構成される第１メモリ部と、
不揮発性ランダムアクセスメモリで構成される第２メモリ部と、
を有し、前記ホストから供給される電力によって駆動されるように構成されてなり、前記フラッシュメモリで構成される前記第１メモリ部にはホスト上に展開されるＯＳ及びアプリケーションを起動するために必要なデータと、前記第１メモリ部内に格納されるファイルデータを管理するファイル管理情報とが保存されており、
前記コントローラは、
（１）ハードディスクに対するデータ管理方式と互換性のあるデータ管理方式で前記ホストとの間でやり取りされるデータの書き込み・読み出しを管理する処理と、
（２）フラッシュメモリで構成される前記第１メモリ部に格納されている前記ファイル管理情報を読み出して不揮発性ランダムアクセスメモリで構成される前記第２メモリ部に書き込む処理と、
（３）前記ホスト上で動作するＯＳ及びアプリケーションから前記記憶装置に読み出し動作と書き込み動作があったときは、不揮発性ランダムアクセスメモリで構成される前記第２メモリ部内に保存されている前記ファイル管理情報に基づいて読み出しと書き込みを行い当該第２メモリ部内に保存されている前記ファイル管理情報の更新を行なう処理と、
（４）前記ホストにおける正常終了動作に応じて、不揮発性ランダムアクセスメモリで構成される前記第２メモリ部内に更新された前記ファイル管理情報を保持した状態で、前記第２メモリ部から更新された前記ファイル管理情報を読み出してフラッシュメモリで構成される前記第１メモリ部に書き込む処理と、
を実行するように構成されてなることを特徴とする記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置に関し、特にフラッシュメモリを用いて構成されたドライブ装置、いわゆるＳＳＤ（Solid State Drive）あるいはＦＭＤ（Flash Memory Drive）と呼ばれる記憶装置に関する。
【背景技術】
【０００２】
フラッシュメモリを用いたドライブ装置は特許文献１に開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開番号WO2008/018258公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
民生用機器、工業用途の組み込み機器の記憶デバイスとして使用されているハードディスクドライブ（ＨＤＤ）の置き換え製品であるＦＭＤ（Flash Memory Drive）に使用されるフラッシュメモリは書き換え耐性に問題があり、その書き換え回数には一定の制限がある。このような記憶装置をコンピュータシステムに組み込んでファイルメモリとして使用した場合、書き換えの発生回数が頻繁に発生する記憶エリアのアドレスは、ファイル管理情報、例えばＰＢＲ（Partition Boot Record），ＦＡＴ（File Allocation Table）システムの場合、ＦＡＴ１，ＦＡＴ２，ＤＩＲ(Directory) に集中する。同様に、他の方式のＯＳにおいてもファイル管理情報に書き換えが集中する。
【０００５】
また、記憶装置において、ＨＤＤの磁気ヘッドのアクセス寿命が約３０万回、フラッシュメモリ（ＮＡＮＤ型、ＡＮＤ型）はブロック当たり１０万回〜３０万回と、どちらも有寿命部品である。そして、記憶装置の寿命は、記憶部の寿命に依存する。
【０００６】
このように、記憶装置の寿命は、記憶部のアクセスによる劣化が問題であり、記憶部の寿命の最大を決めている。特に、書き込みブロックサイズの大きいＮＡＮＤ型フラッシュメモリは、書き込みブロックサイズより小さいサイズのデータが複数あり、書き込みが頻繁に発生すると、短い期間で書き込み寿命に達してしまう。特に、ＯＳ上のファイル管理部は、書き換えが頻繁に発生し、最近のＯＳでは、障害が発生しても履歴が追えるように頻繁に位置情報を書き込むため、記憶装置の寿命が極端に短くなる。
【０００７】
このような問題を改善するため特許文献１では、ホストに接続して使用するドライブを大容量フラッシュメモリよりなる不揮発性メモリ部と揮発性半導体メモリであるＤＲＡＭよりなる揮発性メモリ部で構成し、不揮発性メモリ部にデータおよびデータ保存に関連するファイル管理情報を保存し、ホストの電源起動時に不揮発性メモリ部内に保存されているファイル管理情報を読み出して揮発性メモリ部に書き込み、ホストからの読み出し動作と書き込み動作においては、揮発性メモリ部に一時的に記憶されているファイル管理情報に基づいて読み出しと書き込みを行い、ホストの電源遮断時に揮発性メモリ部に記録されているファイル管理情報を読み出して不揮発性メモリ部に書き込むことでフラッシュメモリでの書き換え回数を減らすことが提案されている。
【０００８】
特許文献１の記憶装置では、ホスト側で予期しない電源遮断が発生したときに備え、ドライブ内に大容量のコンデンサ（少なくとも０．１Ｆの容量の電気二重層コンデンサ）を含む電源保持部を設け、ホストの予期しない電源遮断が発生したときは、ドライブを駆動する電源の供給をドライブ内の電源保持部に切り換え、大容量のコンデンサに蓄えられた電荷を用いて揮発性メモリ部に記録されているファイル管理情報を読み出して不揮発性メモリ部に書き込む構成にしている。
【０００９】
しかし、大容量のコンデンサを搭載する場合、大容量のコンデンサの劣化を検出する回路が必要でドライブに搭載するコントローラの回路規模が大きくなる問題およびコンデンサ劣化が検出されたとき、ホスト側の予期しない電源遮断の場合でも、揮発性メモリ部からフラッシュメモリ部へのファイル管理情報の更新機能が使えなくなる等の問題がある。
【００１０】
そこで、本発明の目的は、書き込み・読み出しの高いデータ転送レートを維持しつつ、フラッシュで構成される不揮発性メモリ部の書き換え耐性のさらなる向上と半導体ドライブとしての寿命の向上を実現したＳＳＤ記憶装置を提供することにある。
【００１１】
本発明の前記ならびにそのほかの目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１２】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１３】
すなわち、本発明による記憶装置は、ホストに接続して使用されるハードディスクドライブ互換記憶装置であって、前記ホストの制御下で前記ホストとの間でデータの書き込み・読み出し制御を行うコントローラと、ファイル管理情報部とデータ部とを備え前記データ部にはホストから送られて来るデータが保存され前記ファイル管理情報部には前記データ保存に関連するファイル管理情報が保存されるように構成されたフラッシュメモリで構成される第１メモリと、不揮発性ランダムアクセスメモリで構成される第２メモリと、を有し、前記ホストから供給される電力によって駆動されるように構成されてなり、前記コントローラは、（１）ハードディスクに対するデータ管理方式と互換性のあるデータ管理方式で前記ホストとの間でやり取りされるデータの書き込み・読み出しを管理する処理と、（２）フラッシュメモリで構成される前記第１メモリ内の前記ファイル管理情報部からファイル管理情報を読み出して不揮発性ランダムアクセスメモリで構成される前記第２メモリに書き込む処理と、（３）前記ホストから前記記憶装置に読み出し動作と書き込み動作があったときは、不揮発性ランダムアクセスメモリで構成される前記第２メモリ内の前記ファイル管理情報に基づいて当該第２メモリ内で読み出しと書き込みを行い前記ファイル管理情報の更新を行なう処理と、（４）前記ホストにおける正常終了動作に応じて、不揮発性ランダムアクセスメモリで構成される前記第２メモリ内に更新された前記ファイル管理情報を保持した状態で、前記第２メモリから更新された前記ファイル管理情報を読み出してフラッシュメモリで構成される前記第１メモリに書き込む処理と、を実行するように構成されてなることを特徴とするものである。
【００１４】
また、本発明による記憶装置は、ホストに接続して使用されるハードディスクドライブ互換記憶装置であって、前記ホストの制御下で前記ホストとの間でデータの書き込み・読み出し制御を行うコントローラと、フラッシュメモリで構成される第１メモリ部と、不揮発性ランダムアクセスメモリで構成される第２メモリ部と、を有し、前記ホストから供給される電力によって駆動されるように構成されてなり、前記フラッシュメモリで構成される前記第１メモリ部にはホスト上に展開されるＯＳ及びアプリケーションを起動するために必要なデータと、前記第１メモリ部内に格納されるファイルデータを管理するファイル管理情報とが保存されており、前記コントローラは、（１）ハードディスクに対するデータ管理方式と互換性のあるデータ管理方式で前記ホストとの間でやり取りされるデータの書き込み・読み出しを管理する処理と、（２）フラッシュメモリで構成される前記第１メモリ部に格納されている前記ファイル管理情報を読み出して不揮発性ランダムアクセスメモリで構成される前記第２メモリ部に書き込む処理と、（３）前記ホスト上で動作するＯＳ及びアプリケーションから前記記憶装置に読み出し動作と書き込み動作があったときは、不揮発性ランダムアクセスメモリで構成される前記第２メモリ部内に保存されている前記ファイル管理情報に基づいて読み出しと書き込みを行い当該第２メモリ部内に保存されている前記ファイル管理情報の更新を行なう処理と、（４）前記ホストにおける正常終了動作に応じて、不揮発性ランダムアクセスメモリで構成される前記第２メモリ部内に更新された前記ファイル管理情報を保持した状態で、前記第２メモリ部から更新された前記ファイル管理情報を読み出してフラッシュメモリで構成される前記第１メモリ部に書き込む処理と、を実行するように構成されてなることを特徴とする。
【発明の効果】
【００１５】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、以下のとおりである。
【００１６】
書き込み・読み出しの高いデータ転送レートを維持しつつフラッシュメモリの書き換え耐性の更なる向上と半導体ドライブとしての寿命の向上を実現するとともに、大容量コンデンサの搭載が困難な環境においてもホスト側の予期しない電源遮断が発生した場合におけるＲＡＭ部からフラッシュメモリ部へのファイル管理情報の更新機能を備えた記憶装置を実現することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施の形態による記憶装置の概略構成を示すブロック図である。
【図２】本発明の一実施の形態で使用されるMRAM(Magnetic Random Access Memory)の一例で、（ａ）はメモリセルを表す回路図、（ｂ）はメモリセルの構成を表す部分断面図を含む構成図である。
【図３】本発明の一実施の形態による記憶装置のアドレス空間を示すメモリマップ図である。
【図４】本発明の一実施の形態による記憶装置のメモリ動作説明図である。
【図５】本発明の一実施の形態による記憶装置において、コントローラにデータ振り分け機能を追加した場合の動作を示すフローチャートである。
【図６】本発明の一実施の形態による記憶装置において、４倍の書き換え回数差が生じた場合の平準化処理の動作例を示すフローチャートである。
【図７】本発明の一実施の形態による記憶装置において、平準化処理の動作例を示す説明図である。
【図８】本発明の一実施の形態による記憶装置において、データ追記の動作例を示すフローチャートである。
【図９】本発明の一実施の形態による記憶装置に電源保持部を付加した場合の概略構成を示すブロック図である。
【図１０】本発明の一実施の形態に電源保持部を付加した場合の記憶装置において、緊急電源遮断シーケンスの動作を示すフローチャートである。
【図１１】本発明の一実施の形態による記憶装置において、パワーオン／パワーオフシーケンスの動作を示すフローチャートである。
【図１２】本発明の一実施の形態による記憶装置の基板上のレイアウトを示す平面図である。
【図１３】本発明の一実施の形態による記憶装置の基板上のレイアウトを示す裏面図である。
【発明を実施するための形態】
【００１８】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１９】
（概略構成）
図１は、本発明の一実施の形態による記憶装置の概略構成を示すブロック図である。
【００２０】
まず、図１により、本実施の形態による記憶装置の構成の一例を説明する。本実施の形態の記憶装置は、ＨＤＤ互換記憶装置（Flash Memory Drive：ＦＭＤ）１００とされ、特に制限されないが、５１２Ｍビットの記憶容量を持つ不揮発性メモリ（フラッシュメモリ等）１０１を、例えば３２個又は６４個のように多数個を１つの筐体（パッケージ）の中に搭載して複数ページ分の記憶容量を持つようなファイルメモリを構成するようにされる。
【００２１】
これらのフラッシュメモリ１０１は、図示されないインターフェース（ＩＦ）を通して内部バス１０２に接続される。内部バス１０２は、コントローラ１０３に接続される。
【００２２】
コントローラ１０３は、１チップマイクロコンピュータ等で構成される制御部とＡＴＡ（AT Attachment）規格又はＳＣＳＩ（Small Computer System Interface）規格に対応したコンピュータシステムにおけるホスト１０７に接続するためのインターフェイスを備えている。コントローラ１０３により、インターフェイスに設けられたドライバとフラッシュメモリ１０１との間でデータのやりとり、つまりはデータの書き込みや読み出しが行われる。
【００２３】
１０６は、本発明に従って搭載された不揮発性ＲＡＭである。不揮発性ＲＡＭ１０６は、特に制限されないが、例えば16Mbit x 4チップで構成される64Mbit（8MB）の MＲＡＭ（Magnetic Random Access Memory）を使用することができる。不揮発性ＲＡＭ１０６としてはMＲＡＭの他、強誘電体メモリFeRAM（Ferroelectric Random Access Memory。）や相変化メモリPRAM（phase-change RAM）等を使用することができる。相変化メモリはPCM（phase- change memory）とも呼ばれる。
【００２４】
半導体ドライブ１００はコンピュータシステムを構成するホスト１０７側からの電源電圧ＶＣＣを受けて作動する。
【００２５】
フラッシュメモリ１０１は、書き込み途中において停電や操作や取扱いミスによってシステム側の不測のタイミングで電源遮断が行われると、書き込み動作が中断されてしまう。一般にファイル形式の記憶装置に記憶するデータは、誤りビットの検出や修正を目的にエラー検出、修正用のコードをある１かたまりのデータの一部に付加して記憶しているため、書き込み途中で中断してしまうと、新旧データの入り交じったデータとなってしまうために、エラー検出、修正用コードは新旧いずれのものとも合わなくなり、これを読み出すと必ずエラーとなってしまい、データの破壊が行われる。消去動作中においても、消去が未完了のままにされると同様なエラーが発生してしまう。
【００２６】
さらに、あるページへの書き込み中に電源遮断に伴い動作電圧が低下して十分な書き込みが行われないとき、当該ページへの書き込み不能と誤判断して不良ページとして登録して、実質的にデバイス故障としてしまうなどの不都合が生じる。
【００２７】
記憶装置１００は、例えば２．５インチのハードディスクドライブ装置と同様な外形サイズ（７０．０×１００．０×９．５ｍｍ）又は３．５インチのハードディスクドライブ装置と同様な外形サイズ（１０１．６×１４６．０×２５．４ｍｍ）のパッケージに搭載され、コントローラ１０３内のインターフェイス回路に接続されるコネクタピンも２．５インチのハードディスクドライブ装置又は３．５インチのハードディスクドライブ装置と同様なものが用いられる。これにより、この実施例の記憶装置１００は、ＨＤＤ（ハードディスクドライブ）互換性記憶装置とされる。パッケージの外形はＨＤＤ互換形状であってよいが、組み込み形態に応じ任意の形状またはサイズにすることができる。
【００２８】
そして、この実施例では、フラッシュメモリのような半導体不揮発性メモリ１０１は、その書き換え回数には一定の制限があることや上記のようなファイルメモリに使用した場合において、書き換えの発生回数が例えば前記のようなＰＢＲ，ＦＡＴシステムの場合のＦＡＴ１，ＦＡＴ２，ＤＩＲのようなファイル管理情報が割り当てられる領域に集中することに着目し、半導体不揮発性メモリ１０１における書き換え回数制限が特定のエリアで発生してしまうのを防止するために、不揮発性ランダムアクセスメモリ１０６が利用される。
【００２９】
不揮発性ランダムアクセスメモリ１０６としては、Magnetic Random Access Memory（MRAM）を使用することができる。図２（ｂ）にＭＲＡＭのメモリセルの概略図、図２（ａ）にメモリセルの回路図が示されている。ここでは、特開２０１１−２３１０６で提案されている磁気トンネル接合（ＭＴＪ：Magnetic Tunnel Junction）を利用した薄膜磁性体をメモリセルとして用いる例を説明するが、不揮発性ＲＡＭはこれに限定されるものではない。図２に例示されたメモリセルはアレイ状に配置され制御回路とともに半導体基板上に形成されることでメモリを構成する。
【００３０】
図２（ａ）に図示するメモリセルは、ビット線ＢＬと基準配線ＳＬの間に接続された、記憶データのデータレベルに応じて抵抗値が変化する磁気トンネル接合部ＭＴＪとＭＯＳＦＥＴで構成されるアクセストランジスタＡＴＲと、図示されないワード線ドライバによって選択的に活性化されるライトワード線ＷＷＬと図示されない行デコーダで選択的に活性化されるリードワード線ＲＷＬで構成される。
【００３１】
図２（ｂ）に図示するメモリセルの断面概略図において、M１乃至M３はそれぞれ半導体基板SUB上に積層された絶縁材料層の中に埋め込まれあるいは絶縁材料層上に配置された金属配線層で、M1は基準配線ＳＬ（接地電位Ｖｓｓに接続される。）を、M2はビット線ＢＬを、M3は基準配線ＳＬを、それぞれ構成する。アクセストランジスタＡＴＲは、半導体基板SUB上に形成されたｐ型領域ＰＡＲと、ｐ型領域ＰＡＲ内に形成されたｎ型領域で構成されるソース・ドレイン領域と、ワードワード線ＲＷＬに接続されたゲート電極を備える。M4はバリアメタルで磁気トンネル接合部ＭＴＪと金属配線との間を電気的に結合するために設けられる緩衝材である。
【００３２】
電源投入時に、フラッシュメモリ１０１上に展開されたホスト１０７から見えるアドレス上のデータを不揮発性ＲＡＭ１０６の先頭アドレスから予め決められたアドレスのエリアごとを不揮発性ＲＡＭにロードする。つまり、図３で示したようにフラッシュメモリが０ｈからｘｘｘｈまでＸＸＧＢ（ギガビット）のアドレスが割り当てられた記憶容量を持つ場合、例えば０ｈのような先頭アドレスから２０ｈまでのエリア（例えば１６ＫＢ）をファイル管理情報が記録されるエリアとする。
【００３３】
そして、ホスト側の電源投入が検知されると、コントローラ１０３は、図４に示すように、フラッシュメモリ１０１から先頭アドレス０ｈから２０ｈまでのエリア（１６ＫＢ）のデータつまりはファイル管理情報（２）を読み出し、不揮発性ＲＡＭ１０６の例えば先頭アドレス０ｈから２０ｈまでのエリアに書き込む。不揮発性ＲＡＭ１０６に書き込まれた先頭アドレスから２０ｈまでのエリア（１６ＫＢ）のデータ（１）は、フラッシュメモリ１０１上のデータ（２）がそのまま投影されたいわばシャドー情報とされる。また、不揮発性ＲＡＭ１０６上の２０ｈを越える記憶エリアはデータバッファエリアとして使用される。不揮発性ＲＡＭ１０６は、スタティック型ＲＡＭとダイナミック型ＲＡＭの高速性を兼ね備えており、ホスト側の電源が遮断されても不揮発性ＲＡＭ１０６に書き込まれたデータ（ファイル管理情報）は保持される。
【００３４】
そして、ホスト側から電源供給がされている間に、ホスト側からフラッシュメモリ１０１に対して書き込み又は読み出しがあったとき、コントローラ１０３はデータの書き込みや読み出しのために必要なファイル管理情報としてフラッシュメモリ１０１に格納されているファイル管理情報（２）ではなく不揮発性ＲＡＭ１０６に書き込まれたシャドー情報（１）を用いて処理を実行する。このとき、コントローラ１０３は、ホスト１０７側から入力されるデータのアドレスが（１）≦２０ｈならファイル管理情報と判定し、不揮発性ＲＡＭ１０６の先頭アドレスから２０ｈまでのエリアに対してメモリアクセスを行いシャドー情報（１）即ちファイル管理情報の更新を行う。
【００３５】
ここで、ファイルシステムは、記憶装置に記録されているデータを管理する方式であり、管理を行うソフトウェアや、記録媒体に設けられた管理領域など管理情報のこともファイルシステムという場合がある。記憶装置にファイルやフォルダ（ディレクトリ）を作成したり、移動や削除を行ったりする方法や、データを記録する方式、管理領域の場所や利用方法などが定められている。通常、ファイルシステムは、ＯＳ（オペレーティング・システム）の持つ機能の一つとして提供されて、ＯＳごとに異なるファイルシステムを用いる。例えばＦＡＴ（File Allocation Table）は、ＭＳ−ＤＯＳからウインドウズ（登録商標）ＭｅまでのＯＳにおいて、標準で使われたファイルシステムであり、ファイルを構成するクラスタのディスク上の物理的な配置を管理する。例えばＦＡＴ３２では、２ＧＢ以上のディスクを扱える。上記のようなハードディスクと互換性を持つようにするために、不揮発性メモリ１０１においても上記同様なファイシステムが適用される。ウインドウズ（登録商標）ＸＰ以降のＯＳではＮＦＴＳと呼ばれるファイルシステムが使用可能となっている。
【００３６】
ホスト側の電源遮断操作（正常終了操作）が検出されても、ホスト側からの電源供給がすぐには切断されるのではなく、ホストは終了処理を実行する。この終了処理に従ってコントローラ１０６は不揮発性ＲＡＭ１０６に記録されているデータ（１）に基づき、フラッシュメモリ１０１に記録されているファイル管理情報（２）を更新する処理を実行する。つまり、ホストの終了処理時、不揮発性ＲＡＭ１０６から読み出したデータ（１）でフラッシュメモリ１０１上のデータ（２）が書き換えられる。このような書き換えのために、フラッシュ１０１では、電源投入時に保持していたデータファイル管理情報（２）がいったん消去されて、電源が遮断される前の不揮発性ＲＡＭ１０６に保持されているシャドー情報（１）がフラッしメモリ１０１に対してファイル管理情報（２）として書き込まれる。また、不揮発性ＲＡＭ１０６は電源が遮断される前に保持していたシャドー情報（１）はフラッシュメモリ１０１への書き込み後も保持する。
【００３７】
このようなメモリアクセスを採用することによって、ファイルメモリにおけるファイル管理情報は、メモリアクセスの都度、不揮発性ＲＡＭ１０６上で更新が行われ、フラッシュメモリ１０１への書き込みはホスト側動作終了時にのみ行えばよいので、フラッシュメモリ１０１への書き動作は最小限に抑制することができる。
【００３８】
また、本実施例では、不揮発性メモリＲＡＭ１０６内にファイル管理情報が保持されるので、ホストからの記憶装置１００に対する通常の読出し（リード時）や更新（ライト時）時には、フラッシュメモリに対してその都度ファイル管理情報の書き換え（消去、書き込み）が発生せず、上記のような書き換え回数の制限に達することがない。また、不揮発性メモリＲＡＭ１０６を用いて管理情報の読み出しや書き換え（更新）を行うので、内部バス１０２及びフラッシュメモリインターフェイス（図示せず）を介して行われるフラッシュメモリ１０１へのメモリアクスセス時間に比べて、読出し時間及び書き込みの短縮が図られて、記憶装置としてのメモリアクセスの高速化が可能となる。そして、データ書き込み時には、フラッシュメモリに対する書き込み回数の大幅低減ができ、あるいは書き込みによる待ち時間がなくなることによりシステムとしてのパフォーマンスが向上する。
【００３９】
フラッシュメモリ１０１と不揮発性ＲＡＭ１０６との間での上記ファイル管理情報の転送は、基本的には上記のように電源起動時と電源遮断時に行うようにすればよい。また、更新されたファイル管理情報が常に不揮発性ＲＡＭ１０６上に保持されているので、ホスト側の正常終了後の再起動時には、フラッシュメモリ１０１からのファイル管理情報読み出し処理と不揮発性ＲＡＭ１０６への書き込み処理を省略することで、システムの起動時間をさらに短縮することができる。
【００４０】
頻繁に書き換えが起きるファイル管理情報を不揮発性ＲＡＭ１０６に展開するため、フラッシュメモリへの書き換え回数を低減でき、書き込み回数が減るのでドライブ装置１００としての寿命の延長が可能となる。そして、ホストは頻繁にアクセスが起きるファイル管理情報を不揮発性ＲＡＭ１０６からやり取りする為にシステムパワオーマンスを向上できる。
【００４１】
なお、ファイル管理情報としては、該当するフラッシュメモリのセクタの（１）良品・不良品、（２）論理アドレス、（３）チップ内アドレス、（４）書き換え回数、（５）ＥＣＣ情報、（６）データの存在場所、（７）不具合発生履歴、等があげられる。
【００４２】
このように、頻繁に更新されるファイル管理情報については、不揮発性ＲＡＭ上で更新することにより、フラッシュメモリ上での書き換え回数が減少して、寿命が延びる。また、不揮発性ＲＡＭはフラッシュメモリよりも高速なので、ドライブとしての処理速度が高速化する。
【００４３】
（書き込みサイズによるデータの振り分け）
本発明の一実施の形態による記憶装置において、コントローラ１０３にホスト１０７からライト（書き込み）コマンドが発生された際、書き込み先を不揮発性ＲＡＭ１０６もしくはフラッシュメモリ１０１へと振り分けを行う機構を設けることができる。不揮発性ＲＡＭ１０６として十分な容量のものを搭載できない環境においてこの機能は有効である。
【００４４】
コントローラ１０３による振り分けの判定例として、以下の基準で設定することが出来る。（１）ホストから送出されるデータサイズが大きい場合はフラッシュメモリ１０１へ、小さい場合は不揮発性ＲＡＭ１０６へと振り分ける。判別の基準としては、例えば、１／２ブロック （１ブロック：１２８ＫＢ）を境とする。判別の基準は搭載された不揮発性ＲＡＭ１０６に許容される大きさのデータサイズに応じて適宜設定することができる。
（２）書き換えが発生した時間間隔やタイムスタンプなどから判断して、データの書き換え頻度が高い場合は不揮発性ＲＡＭ１０６へ、低い場合はフラッシュメモリ１０１へと振り分ける。
（３）ブロック単位での充足率（１２８ＫＢ／ブロック中どこまで追記されたか？）が高い場合は不揮発性ＲＡＭ１０６へ、低い場合はフラッシュメモリ１０１へと振り分ける。
【００４５】
図５は、コントローラ１０３にデータ振り分け機能を追加した場合の動作を示すフローチャートである。まず、ステップＳ１３０１で、ホスト１０７からライトコマンドが発生した場合、コントローラ１０３は、ステップＳ１３０２で、データサイズの判定を行う。このとき、データサイズ以外にも、上記（１）〜（３）の判定基準に従い、データの書き換え頻度やブロック単位の充足率等の判定も行う。そして、データサイズが例えば１／２ブロック以上の場合は、ステップＳ１３０６でＥＣＣを付加した後、ステップＳ１３０３へ進み、Ｆｌａｓｈメモリ１０１へデータを保存する。データサイズが例えば１／２ブロックより小さい場合は、ステップＳ１３０７でＥＣＣを付加した後、ステップＳ１３０４へ進み、MＲＡＭすなわち不揮発性ＲＡＭ１０６へデータを保存する。
【００４６】
（平準化処理）
コントローラ１０３は、不揮発性ＲＡＭ１０６内に保存した、フラッシュメモリ１０１上のデータ保存状態を表すファイル管理データに基づき、書き換え回数を判断し、均等化処理すなわち平準化処理を行う。すなわち、フラッシュメモリ１０１内データの書き換え回数、ＥＣＣ訂正ビット数等の管理データに基づき不揮発性ＲＡＭ１０６とフラッシュメモリ１０１との間でデータの移動を行い、コントローラ１０３が平準化処理を実施する。
【００４７】
図６は、４倍の書き換え回数差が生じた場合の平準化処理の動作例を示すフローチャートである。まず、ホストからＦｌａｓｈメモリ１０１に対して書き込みが発生した時、ステップＳ１４０１で任意のブロックを選択する。具体的には、ファイル管理情報の領域内該当チップエリアに、（タイマ）×（RANDOM）でセンタアドレスブロックを選択する。なお、（RANDOM）は、任意の乱数である。
【００４８】
次に、ステップＳ１４０２で、MＲＡＭ１０６内にある上記ファイル管理情報の書き換え回数情報をもとに、２５６ブロック毎に２ブロック、計１６ブロックを選択し、既書え換えブロックがあるか否かを確認する。
【００４９】
既書き換えブロックがない場合は、ステップＳ１４０３で、最も書き換えの少ないブロックを選択し、フラッシュメモリ１０１にデータを書き込む。既書え換えブロックがある場合は、ステップＳ１４０４で、パラメータを確認し、「既データ書き込みブロックは書き換えを実施しない」が選択されているか否かを確認する。
【００５０】
「既データ書き込みブロックは書き換えを実施しない」が選択されていない場合は、ステップＳ１４０５で、（既書き込みブロックの書換回数）×４と（未書き込みブロック）とを比較し、最も書き込みの少ないブロックを選択する。このブロックが既書き込みブロックであった場合は均等化処理を実施し、MＲＡＭ１０６へデータを移動し、イレーズ実施後データ書き込み実施する。次に、書き換えの少ない未書き込み領域に既書き込みデータを書き戻す。
【００５１】
「既データ書き込みブロックは書き換えを実施しない」が選択されている場合は、ステップＳ１４０６で、未書き込みブロックのうち最も書き込みの少ないブロックに書き込みを実施する。
【００５２】
図７は、平準化処理の動作例を示す説明図である。図７において、MＲＡＭは不揮発性ＲＡＭ１０６、Ｆｌａｓｈはフラッシュメモリ１０１である。
【００５３】
例えば、以下の手順で、平準化処理が実施される。
（１）ホスト１０７からライト（書き込み）が発生した際、コントローラ１０３はMＲＡＭに維持されているファイル管理情報をさがす。
（２）例えば、Ｆｌａｓｈ内のデータＡをMＲＡＭ内のデータ保有エリアに移動する（Ａ→Ａ’）。
（３）コントローラ１０３が、書き換え先を１６ヶ所検索する。
（４）書き換え先のデータＢをMＲＡＭのデータ保有エリアに移動する（Ｂ→Ｂ’）。
（５）MＲＡＭ内のデータＢ’を、Ｆｌａｓｈ内のデータＡがあった位置に移動する。
（６）MＲＡＭ内のデータＡ’を、Ｆｌａｓｈ内のデータＢがあった位置に移動する。
（７）MＲＡＭ内のファイル管理情報を更新し、終了する。
【００５４】
（データ追記）
フラッシュメモリ１０１へのデータ書き込みの際、コントローラ１０３は、フラッシュメモリ１０１の一つのブロック内において、ブロック全体を書き換えるのではなく、追記するデータのみをページ単位でフラッシュメモリ１０１の空きページに追記し、不揮発性ＲＡＭ１０６内のファイル管理情報を更新する。フラッシュメモリ１０１のブロック全体の書き換えを控えることで、書き換え耐性の向上を図ることができる。上記追記はブロック充足率が上がった段階で（例えば１２８ＫＢ中１００ＫＢが書かれた場合や、６４ページ中５６ページ書かれた場合など）、同一アドレスの最新のページのみ書き込み整理する。
【００５５】
図８は、本発明の一実施の形態による記憶装置において、データ追記の動作例を示すフローチャートである。まず、ステップＳ１６０１で、ライト（書き込み）が発生した場合、ステップＳ１６０２で、コントローラ１０３はファイル管理情報に基づいてフラッシュメモリ１０１への追記が可能であるか否か確認する。追記が可能でない場合、ステップＳ１６０３で、コントローラ１０３はフラッシュメモリ１０１へ追記せずに、通常の書き換えシーケンスを実行する。追記が可能である場合、ステップＳ１６０４で、コントローラ１０３はフラッシュメモリ１０１の同一ブロック内の空きページにデータを書き込む。そして、ステップＳ１６０５で、そのブロック内の充足率を確認し、例えば１００ＫＢ／１２８ＫＢ以上の場合は、ステップＳ１６０６で、最新のページのみ書き込み整理を行う。そして、ステップＳ１６０７で、不揮発性ＲＡＭ１０６内のファイル管理情報を更新する。一方、ブロック内の充足率が、例えば１００ＫＢ／１２８ＫＢ以下の場合は、ステップＳ１６０８へ進み、追記の動作が終了する。
【００５６】
（残余ブロック数の計算）
本発明の実施の形態による記憶装置は、残余ブロック数を出力する機能を有する。すなわち、ホスト１０７からの要求コマンドを受けて、コントローラ１０３が、不揮発性ＲＡＭ１０６内のファイル管理情報を基に残余ブロック数を計算し、ホスト１０７へ返す。残余ブロック数を返すことにより、ホスト１０７は、フラッシュメモリ１０１の寿命を認識することが可能となる。
【００５７】
図１における記憶装置の構成によるとドライブ内に大容量のコンデンサを含む電源保持部が設けられていないので、システム側において予期しない電源遮断が生じたとき、フラッシュメモリ１０１に対するファイル管理情報の更新処理が出来ないが、この場合でも、ホストの再起動時に不揮発性ＲＡＭ１０６上に保持されているデータを用いてフラッシュメモリ１０１に対するデータ更新処理を行うことができる。また、ファイル管理情報が不揮発性ＲＡＭ１０６とフラッシュメモリ１０１の両方に保持されているので、一方にエラーが発生した場合でも他方のデータを参照して修復ができるのでシステムの信頼性が向上する。
【００５８】
この他、ホスト１０７側からコントロール線を通して入力された制御信号によって、上記不揮発性ＲＡＭ１０６の更新されたファイル管理情報をフラッシュメモリ１０１に転送するようにしてもよい。あるいは、一定時間毎に制御信号を発生させてファイル管理情報を不揮発性ＲＡＭ１０６からフラッシュメモリ１０１に転送して、かかる情報の更新を行うようしておいてもよい。この場合には、電源遮断時にファイル管理情報の更新が無いときには、そのまま電源を遮断することができる。
【００５９】
上述した本発明の一実施の形態による記憶装置においては、特許文献１に記載の電源保持部は必ずしも必要ではないが、大容量コンデンサの搭載が許容される環境においては、かかる電源保持部を設けることによってさらに半導体ドライブとしての信頼性を高めることができる。
【００６０】
図９は、本発明の一実施の形態による記憶装置に電源保持部を付加した場合の概略構成を示すブロック図である。
【００６１】
この実施例では、上記パッケージには、電源遮断を検出する電源検出部１０４と、電源遮断時の動作電圧を確保するための大容量コンデンサ及びスイッチ等からなる電源保持部１０５をさらに備えている。電源保持部１０５内の大容量コンデンサは、システム側において予期しない電源遮断が生じた場合でも、その蓄積電荷によってフラッシュメモリ１０１やコントローラ１０３や不揮発性ＲＡＭ１０６や電源検出部１０４に電圧を供給して、フラッシュメモリ１０１の正常終了可能な状態まで動作電圧を維持するように動作する。大容量コンデンサとしては、例えば、電気二重層コンデンサなどを用いる。なお、電源検出部１０４内の大容量コンデンサの代わりに充電式の電池などを用いてもよい。
【００６２】
不揮発性メモリ１０１においては、書き込み途中において停電や操作や取扱いミスによってシステム側の電源遮断が行われると、書き込み動作が中断されてしまう。一般にファイル形式の記憶装置に記憶するデータは、誤りビットの検出や修正を目的にエラー検出、修正用のコードをある１かたまりのデータの一部に付加して記憶しているため、書き込み途中で中断してしまうと、新旧データの入り交じったデータとなってしまうために、エラー検出、修正用コードは新旧いずれのものとも合わなくなり、これを読み出すと必ずエラーとなってしまい、データの破壊が行われる。消去動作中においても、消去が未完了のままにされると同様なエラーが発生してしまう。
【００６３】
さらに、あるページへの書き込み中に電源遮断に伴い動作電圧が低下して十分な書き込みが行われないとき、当該ページへの書き込み不能と誤判断して不良ページとして登録して、実質的にデバイス故障としてしまうなどの不都合が生じる。上記大容量コンデンサは、上記のような誤動作を防止して、不揮発性メモリ１０１において常に正常終了が行われるような動作電圧確保のために、例えば約０．１Ｆ程度の比較的大きな容量値を持つようにされる。
【００６４】
電源検出部１０４は、コンピュータ若しくはコンピュータ制御されるシステムのようなホスト１０７側からの電源電圧ＶＣＣを受けて、その電源起動と遮断を検出する。
【００６５】
システム側において予期しない電源遮断等が発生した場合、上記のように電源検出部１０４によりコントローラ１０３及びフラッシュメモリ１０１には、電源保持部１０５内の大容量コンデンサから動作電圧が維持され、逆流防止が行われるとともに、コントローラ１０３内のインターフェイス回路が上記システム側からの信号に応答しないように制御され、電源遮断直前の信号状態を維持するために、もしも書き込み動作中ならばそのままの書き込みが継続して行われるために書き込み動作を正常に終了させることができる。同様に、消去中でもそのまま消去動作が継続して行われて消去動作も正常に終了させることができる。
【００６６】
前記のように停電や操作や取扱いミスによってシステム側の電源遮断が行われたときに、電源検出部１０４と大容量コンデンサを含む電源保持部１０５によって安定的にフラッシュメモリ１０１を正常に終了させる動作の中、不揮発性ＲＡＭ１０６の更新されたファイル管理情報をフラッシュメモリ１０１に転送して記録させる動作を含ませるようにする。これにより、更新されたファイル管理情報は、不揮発性ＲＡＭ１０６とフラッシュメモリ１０１の両方に重複して保存されるので半導体ドライブとしての信頼性をさらに高めることができる。また、上記大容量コンデンサを省略することも可能である。すなわち、フラッシュメモリ１０１や不揮発性ＲＡＭ１０６の動作電圧（ＶＤＤ）は、システムの中で低い電圧であるので、システムの電源（ＶＣＣ）が遮断されてからフラッシュメモリ１０１や不揮発性ＲＡＭ１０６の動作下限電圧に至るまでの時間を利用して、フラッシュメモリ１０１を正常に終了させたり、ファイル管理情報をフラッシュメモリ１０１に転送させたりすることもできる。
【００６７】
（緊急電源遮断シーケンス）
電源保持部１０５が付加された実施例において、ホスト１０７からの電源が遮断された場合、データ保護のため、緊急電源遮断シーケンスに移行する。
【００６８】
予め、書き込み先のフラッシュメモリ１０１のアドレスを決めておき、メモリに記憶しておく。アドレスを記憶するメモリは、コントローラ１０３内メモリ、不揮発性ＲＡＭ１０６またはフラッシュメモリ１０１とする。上記緊急電源遮断時のデータ格納アドレス（緊急格納アドレス）を一般のデータとは別に持つようにする。
【００６９】
この際、データの保存が並行的に高速処理を行えるように、緊急格納アドレスを複数のフラッシュメモリ１０１のメモリバスに均等に割り振る。このように、緊急格納アドレスを固定しておき、緊急時のデータの退避先を複数のフラッシュメモリに振り分けることにより、オーバーヘッドの処理が不要となり、高速に処理を行うことが可能となる。
【００７０】
図１０は、緊急電源遮断シーケンスの動作を示すフローチャートである。ステップＳ１００１で、不測の電源遮断が発生した場合、ステップＳ１００２で、緊急電源遮断シーケンスへ移行する。ステップＳ１００３で、不揮発性ＲＡＭ１０６に格納されているデータを、Ｆｌａｓｈメモリ１０１へ移動する。その際、複数のフラッシュメモリ１０１内の予め決められた緊急格納アドレスへ分散してデータ移動する。
【００７１】
（パワーオン／パワーオフシーケンス）
図１１は、パワーオン／パワーオフシーケンスの動作を示すフローチャートである。ステップＳ１１０１で、パワーオン（電源投入）時、ステップＳ１１０２で、コントローラ１０３は、データとは別のブロックに管理されたＦｌａｓｈメモリ１０１内のファイル管理情報を読み出し不揮発性ＲＡＭ１０６へ書き込み保存する。ステップＳ１１０３で、メモリ動作時、ファイル管理情報は、不揮発性ＲＡＭ１０６内で管理し、ステップＳ１１０４で、パワーオフ（電源遮断）時に、ステップＳ１１０５で、フラッシュメモリ１０１へ書き戻しを行う。
【００７２】
また、頻繁にアクセスが予想されるデータも、コントローラ１０３がパワーオン時に、フラッシュメモリ１０１から読み出し不揮発性ＲＡＭ１０６に書き込む。
【００７３】
（レイアウト）
図１２は、本発明の一実施の形態による記憶装置の基板上のレイアウトを示す平面図、図１３は、その裏面図である。
【００７４】
本実施の形態による記憶装置は、２．５インチ（70.0×100.0×9.5mm）外形内に電源保持用大容量コンデンサ１７０５（電源保持部１０５）、Ｆｌａｓｈメモリ１０１、コントローラ１０３、不揮発性ＲＡＭ１０６を持つ。図１２に示すように、基板１７００の表面に８個のフラッシュメモリ１０１と、電源保持部１０５を構成する４個の電気二重層コンデンサ１７０５が配置されている。また、図１３に示すように、基板１７００の裏面に８個のフラッシュメモリ１０１と、コントローラ１０３と、不揮発性ＲＡＭ１０６が配置されている。図１の実施例においては電気二重層コンデンサを含む電源保持部を省略できるので回路基板の設計上大きなメリットとなる。
【００７５】
以上本発明者によってなされた発明を、前記実施形態に基づき具体的に説明したが、本発明は、前記実施形態に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。
【００７６】
例えば、不揮発性ＲＡＭ１０６としては、ＭＲＡＭに限定されず電源供給がなくてもデータを保持しかつＤＲＡＭのように高速処理を行うＲＡＭを用いることができる。起動時に先頭アドレス０ｈから一定量データをフラッシュメモリから不揮発性ＲＡＭへロードする際のアドレスは、前記２０ｈの他に１００ｈ（１２８ＫＢ）等、そのファイルシステムに適合したものであればよい。パッケージは、前記ＨＤＤの外形サイズと同じものの他、より小型で薄いカード状態のものにも適用できる。
【産業上の利用可能性】
【００７７】
本発明は、フラッシュメモリを用いたファイルシステムを採る記憶装置として広く利用することができる。
【符号の説明】
【００７８】
１０１  フラッシュメモリ
１０３  コントローラ
１０６  不揮発性ＲＡＭ
【図１】
0005860759.tif 000002
【図２】
0005860759.tif 000003
【図３】
0005860759.tif 000004
【図４】
0005860759.tif 000005
【図５】
0005860759.tif 000006
【図６】
0005860759.tif 000007
【図７】
0005860759.tif 000008
【図８】
0005860759.tif 000009
【図９】
0005860759.tif 000010
【図１０】
0005860759.tif 000011
【図１１】
0005860759.tif 000012
【図１２】
0005860759.tif 000013
【図１３】
0005860759.tif 000014