(57)【要約】【課題】メモリに記録されるデータの種類に応じて要求される信頼度を考慮し、様々な誤り訂正符合（ＥＣＣ）方式を用いることによって、効率的なメモリ管理が可能なメモリコントローラおよびメモリ管理方法を提供すること。【解決手段】データの種類に応じて選定された要求信頼水準に基づいて前記データに対する誤り訂正符合情報を生成し、前記ＥＣＣ情報に基づいて前記データに対するＥＣＣコードを演算した後、前記ＥＣＣコードをメモリに記録するメモリコントローラが開示される。
2012514266.tif 000002
【特許請求の範囲】
【請求項１】
データの種類に応じて選定された要求信頼水準に基づいて前記データに対する誤り訂正符合情報を生成するＥＣＣ生成部と、
前記ＥＣＣ情報に基づいて前記データに対するＥＣＣコードを演算するＥＣＣ演算部と、
前記ＥＣＣ情報に基づいて前記ＥＣＣコードをメモリに記録するＥＣＣ記録部と、
を備えることを特徴とするメモリコントローラ。
【請求項２】
前記要求信頼水準は、前記データの種類に応じて選定された後アドレスマッピングテーブルに記録され、
前記ＥＣＣ生成部は、前記アドレスマッピングテーブルを参照して前記要求信頼水準を判断した後、前記ＥＣＣ情報を生成することを特徴とする請求項１に記載のメモリコントローラ。
【請求項３】
前記メモリから前記データが読み出される場合、前記ＥＣＣ情報に基づいて前記メモリから前記ＥＣＣコードを読み出すＥＣＣ読み出し部と、
前記ＥＣＣ情報に基づいて前記読み出されたデータに対する第２ＥＣＣコードを演算する第２ＥＣＣ演算部と、
前記ＥＣＣ情報に基づいて前記読み出されたＥＣＣコードと前記第２ＥＣＣコードとを比較して前記読み出されたデータのエラーの有無を検出し、エラーが検出される場合、前記エラーを訂正するエラー検出部と、
をさらに備えることを特徴とする請求項１に記載のメモリコントローラ。
【請求項４】
前記ＥＣＣ演算部は、
前記データの要求信頼水準が第１要求信頼水準である場合、前記データが記録されるページ全体を基準にして前記データに対する第１ＥＣＣコードを演算し、
前記データの要求信頼水準が第２要求信頼水準である場合、前記データが記録される各セクタごとに前記データに対する第２ＥＣＣコードを演算し、
前記第１要求信頼水準は前記第２要求信頼水準を超過することを特徴とする請求項１に記載のメモリコントローラ。
【請求項５】
前記ＥＣＣ記録部は、前記第１ＥＣＣコードを前記ページの選定されたセクタに記録し、前記第２ＥＣＣコードを前記メモリの余剰領域に記録することを特徴とする請求項４に記載のメモリコントローラ。
【請求項６】
前記データがメタデータである場合、前記メタデータの要求信頼水準は第１要求信頼水準に選定され、
前記データがユーザデータである場合、前記ユーザデータの要求信頼水準は第２要求信頼水準に選定され、
前記第１要求信頼水準は前記第２要求信頼水準を超過することを特徴とする請求項１に記載のメモリコントローラ。
【請求項７】
前記ＥＣＣ演算部は、
前記データがメタデータである場合、前記メタデータが記録されるページ全体を基準にして前記メタデータに対する第１ＥＣＣコードを演算し、
前記データがユーザデータである場合、前記ユーザデータが記録される各セクタごとに前記ユーザデータに対する第２ＥＣＣコードを演算することを特徴とする請求項１に記載のメモリコントローラ。
【請求項８】
前記ＥＣＣ記録部は、前記第１ＥＣＣコードを前記ページの選定されたセクタに記録し、前記第２ＥＣＣコードを前記メモリの余剰領域に記録することを特徴とする請求項７に記載のメモリコントローラ。
【請求項９】
データの種類に応じて選定された要求信頼水準に基づいて前記データに対する誤り訂正符合情報を生成するステップと、
前記ＥＣＣ情報に基づいて前記データに対するＥＣＣコードを演算するステップと、
前記ＥＣＣ情報に基づいて前記ＥＣＣコードをメモリに記録するステップと、
を含むことを特徴とするメモリ管理方法。
【請求項１０】
前記要求信頼水準は、前記データの種類に応じて選定された後アドレスマッピングテーブルに記録され、
前記ＥＣＣ情報を生成するステップは、前記アドレスマッピングテーブルを参照して前記要求信頼水準を判断した後、前記ＥＣＣ情報を生成することを特徴とする請求項９に記載のメモリ管理方法。
【請求項１１】
前記メモリから前記データが読み出される場合、前記ＥＣＣ情報に基づいて前記メモリから前記ＥＣＣコードを読み出すステップと、
前記ＥＣＣ情報に基づいて前記読み出されたデータに対する第２ＥＣＣコードを演算するステップと、
前記ＥＣＣ情報に基づいて前記ＥＣＣコードと前記第２ＥＣＣコードとを比較して前記読み出されたデータのエラーの有無を検出し、エラーが検出される場合、前記エラーを訂正するステップと、
をさらに含むことを特徴とする請求項９に記載のメモリ管理方法。
【請求項１２】
前記ＥＣＣコードを演算するステップは
前記データがメタデータである場合、前記メタデータが記録されるページ全体を基準にして前記メタデータに対する第１ＥＣＣコードを演算し、
前記データがユーザデータである場合、前記ユーザデータが記録される各セクタごとに前記ユーザデータに対する第２ＥＣＣコードを演算することを特徴とする請求項９に記載のメモリ管理方法。
【請求項１３】
前記メモリに記録するステップは、前記第１ＥＣＣコードを前記ページの選定されたセクタに記録し、前記第２ＥＣＣコードを前記メモリの余剰領域に記録することを特徴とする請求項１２に記載のメモリ管理装置。
【請求項１４】
請求項９乃至請求項１３のいずれか１項の方法を行うプログラムを記録したコンピュータで読み出し可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
メモリコントローラおよびメモリ管理方法が開示される。特に、メモリに記録されるデータの種類に応じて様々な誤り訂正符合（Error Correction Code：ＥＣＣ）方式を用いることによって、効率的なメモリ管理が可能なメモリコントローラおよびメモリ管理方法が開示される。
【背景技術】
【０００２】
データを格納するストレージ装置として磁気ディスク（magnetic disk）、半導体メモリなどがある。ストレージ装置は、種類ごとに互いに異なる物理的な特性を有するため、物理的な特性に相応する管理方法が求められる。
【０００３】
従来におけるストレージ装置としては磁気ディスクが広く用いられてきた。磁気ディスクは、平均的にキロバイト当たり数ミリ秒の読み出しおよび書き込み時間を特性として有する。また、磁気ディスクは、データの格納された物理的な位置に応じてアーム（ａｒｍ）が達する時間が異なることから、読み出しおよび書き込み時間が異なるという特性を有する。
【０００４】
最近では磁気ディスクに比べて読み出しおよび書き込み時間が短く、かつ小さい電力を消耗して小さい体積を占めている不揮発性メモリが急速に磁気ディスクを代替している。これは不揮発性メモリの大容量化が行われているため可能な結果である。
【０００５】
不揮発性メモリは電気的に読み出し（read）、書き込み（write）および消去（erase）が可能であり、供給電源のない状態でも格納されたデータを維持することのできる半導体記憶装置である。不揮発性メモリ装置に対するデータの格納過程は、書き込みの他にもプログラミングと呼ばれることもある。
【０００６】
不揮発性メモリの代表的なものとしてフラッシュメモリが挙げられ、フラッシュメモリは、従来におけるハードディスクドライブ（Hard Disk Drive、ＨＤＤ）に比べて大きさおよび電力消費量が小さく、かつ読み出し速度を高めることのできる利点がある。最近では大容量のフラッシュメモリを用いてＨＤＤを代替するためのＳＳＤ（Solid State Disk）が提案されたりもした。
【０００７】
フラッシュメモリの種類として代表的なものがＮＡＮＤ方式のフラッシュメモリとＮＯＲフラッシュメモリなどがある。ＮＡＮＤ方式およびＮＯＲ方式はセルアレイの構成および動作方式に応じて区別され得る。
【０００８】
フラッシュメモリは複数のメモリセルの配列からなり、１つのメモリセルは１つ以上のデータビットを格納してもよい。１つのメモリセルはコントロールゲート（control gate）およびフローティングゲート（floating gate）を含み、コントロールゲートとフローティングゲートとの間には絶縁体が挿入され、フローティングゲートとサブストレート（substrate）との間にも絶縁体が挿入される。
【０００９】
このような不揮発性メモリは、所定のコントローラによって管理される。また、このようなコントローラの性能によって不揮発性メモリ全体の性能が決定され得る。
【００１０】
したがって、メモリを効率的に管理および制御することのできるメモリコントローラに対する研究が必要である。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】米国特許第５５５９９５６号明細書
【特許文献２】米国特許出願公開第２００４−０１５６２５１号明細書
【特許文献３】特開２００５−０７８４３１号
【特許文献４】特開２００７−２０７３７６号
【特許文献５】欧州特許出願公開第１５４８６０２号明細書
【発明の概要】
【発明が解決しようとする課題】
【００１２】
メモリに記録されるデータの種類に応じて要求される信頼度を考慮し、様々な誤り訂正符合（Error Correction Code：ＥＣＣ）方式を用いることによって、効率的なメモリ管理が可能なメモリコントローラおよびメモリ管理方法を提供することにある。
【課題を解決するための手段】
【００１３】
本発明の一実施形態に係るメモリコントローラは、データの種類に応じて選定された要求信頼水準に基づいて前記データに対する誤り訂正符合情報を生成するＥＣＣ生成部と、前記ＥＣＣ情報に基づいて前記データに対するＥＣＣコードを演算するＥＣＣ演算部と、前記ＥＣＣ情報に基づいて前記ＥＣＣコードをメモリに記録するＥＣＣ記録部とを備える。
【００１４】
また、本発明の一実施形態に係るメモリ管理方法は、データの種類に応じて選定された要求信頼水準に基づいて前記データに対する誤り訂正符合情報を生成するステップと、前記ＥＣＣ情報に基づいて前記データに対するＥＣＣコードを演算するステップと、前記ＥＣＣ情報に基づいて前記ＥＣＣコードをメモリに記録するステップとを含む。
【発明の効果】
【００１５】
メモリに記録されるデータの種類に応じて要求される信頼度を考慮し、様々な誤り訂正符合（Error Correction Code：ＥＣＣ）方式を用いるメモリコントローラおよびメモリ管理方法を開示することによって効率的にメモリ管理を行うことができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態に係るメモリコントローラの動作を示す概念図である。
【図２】本発明の一実施形態に係るメモリコントローラの動作過程を示すフローチャートである。
【図３】本発明のまた他の一実施形態に係るメモリコントローラの動作過程を示すフローチャートである。
【図４】本発明の一実施形態に係るメモリコントローラの構造を示す図である。
【図５】本発明の一実施形態に係るメモリ管理方法を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下では添付する図面を参照しながら本発明の実施形態を詳細に説明する。
【００１８】
図１は、本発明の一実施形態に係るメモリコントローラの動作を示す概念図である。
【００１９】
図１を参照すると、ファイルシステム１１０、メモリコントローラ１２０、およびメモリ１３０が図示されている。
【００２０】
本発明の一実施形態によると、メモリ１３０は不揮発性（non-volatile）メモリであってもよい。
【００２１】
一般的に、不揮発性メモリ１３０に対するプログラミングはページ単位で行われてもよく、消去はブロック単位で行われてもよい。ここで、ブロックは複数のページを含んでもよい。
【００２２】
また、不揮発性メモリ１３０を管理するメモリコントローラ１２０は、外部のホストまたはプロセッサに論理アドレスを提供し、不揮発性メモリ１３０に対して物理アドレスを提供してもよい。
【００２３】
ここで、メモリコントローラ１２０は、物理アドレスを用いて不揮発性メモリ１１０を管理し、物理アドレスを論理アドレスに変換してもよい。
【００２４】
ここで、物理アドレスおよび論理アドレスの変換が行われる階層をフラッシュ変換階層（Flash Translation Layer：ＦＴＬ）と呼んでもよい。
【００２５】
メモリコントローラ１２０は、メモリ１１０に記録されているデータの信頼性を保障するために誤り訂正符合（Error Correction Code：ＥＣＣ）を用いてもよい。
【００２６】
一般的にＥＣＣ情報は、メモリ１１０に記録されているデータを読み出す時、前記データがメモリ１１０に記録されている当時のデータと相違に読み出されるエラーが存在するかを検出し、誤ったデータを正しいデータに訂正するために用いられてもよい。
【００２７】
前記ＥＣＣ情報はメモリ１１０の特定領域に記録されるが、一般的にメモリ１１０の余剰領域などに記録されてもよい。
【００２８】
本発明の一実施形態に係るメモリコントローラ１２０は、このようなＥＣＣ情報を用いることによって、メモリ１１０に記録されているデータの信頼性を確保することができる。
【００２９】
一般的にＥＣＣ情報を用いてデータ信頼性を確保するためには、ＥＣＣアルゴリズム、ＥＣＣの適用対象、ＥＣＣコードの大きさ、またはＥＣＣの記録位置などのような様々な要素を考慮しなければならない。
【００３０】
従来におけるメモリコントローラは、ＥＣＣ情報を用いてデータの信頼性を確保するためにメモリコントローラのマッピングアルゴリズム、使用用途、メモリの特徴などに応じて前記要素を特定した後、前記要素をメモリに記録されるデータに一律的に適用した。
【００３１】
言い換えれば、従来におけるメモリコントローラは、前述したＥＣＣアルゴリズム、ＥＣＣの適用対象、ＥＣＣコードの大きさ、ＥＣＣの記録位置などのような要素をメモリに記録されるデータの種類とは無関係に、１つに特定した後これをメモリに適用した。
【００３２】
しかし、このような従来における方式は、データの種類や特性を考慮しなかったためメモリ管理において非効率性があった。
【００３３】
例えば、メモリの空間を少なく使用し、速い演算が可能であるものの、メモリに記録されるデータに対する信頼性は大きく保障することのできないＥＣＣ方式をメモリに記録されるデータの種類とは無関係に一律的に用いる場合、メタデータのように高い信頼性が要求されるデータについてはそれに適する信頼性が保障されない恐れがある。
【００３４】
一方、メモリに記録されるデータについては高い信頼性が保障できるものの、メモリの空間を多く使用し、演算時間が長くかかるＥＣＣ方式をメモリに記録されるデータの種類とは無関係に一律的に用いる場合、ユーザデータのように相対的に低い信頼性が保障されても関係のないデータがメモリに記録される時には多くのメモリ空間と時間が浪費されてしまう恐れがある。
【００３５】
したがって、本発明の一実施形態に係るメモリコントローラ１２０は、メモリ１３０に記録されるデータの種類に応じて動的にＥＣＣ方式を適用することによって効率的なメモリ１３０を管理することが可能である。
【００３６】
これと関連して、メモリコントローラ１２０は、ファイルシステム１１０から所定のデータの書き込み要求を受信する場合、前記データの種類に応じて選定された（predetermined）、要求信頼水準に基づいて前記データに対するＥＣＣ情報を生成してもよい。
【００３７】
その後、メモリコントローラ１２０は、前記ＥＣＣ情報に基づいて前記データに対するＥＣＣコードを演算した後、前記ＥＣＣコードをメモリ１３０に記録してもよい。
【００３８】
本発明の一実施形態によると、ファイルシステム１１０は、メモリコントローラ１２０に対して前記データを用いることを要求するとき、前記データに対する要求信頼水準情報を共に送信してもよい。
【００３９】
また、本発明の一実施形態によると、前記ＥＣＣ情報は、ＥＣＣアルゴリズム、ＥＣＣコードの大きさ、ＥＣＣの適用対象、またはＥＣＣの記録位置などに関する情報を含んでもよい。
【００４０】
すなわち、本発明の一実施形態に係るメモリコントローラ１２０は、前記データの種類に応じて選定された要求信頼水準を考慮してＥＣＣアルゴリズム、ＥＣＣコードの大きさ、ＥＣＣの適用対象、またはＥＣＣの記録位置などを決定してもよい。
【００４１】
また、本発明の一実施形態によると、前記要求信頼水準は、前記データの種類に応じて選定された後、アドレスマッピングテーブル１２１に記録されてもよい。
【００４２】
ここで、本発明の一実施形態によると、メモリコントローラ１２０は、アドレスマッピングテーブル１２１を参照して前記要求信頼水準を判断することができる。
【００４３】
例えば、アドレスマッピングテーブル１２１に前記要求信頼水準を区分するためのフィールドを追加することによって、メモリコントローラ１２０がデータの種類による要求信頼水準を把握し、それによる適切なＥＣＣ情報を生成することができる。
【００４４】
ここで、アドレスマッピングテーブル１２１とは、論理アドレスと物理アドレスが互いにマッピングされているテーブルを意味する。
【００４５】
また、本発明の一実施形態によると、メモリコントローラ１２０は、ファイルシステム１１０から前記データの読み出し要求を受信する場合、メモリ１３０から前記データを読み出しながら前記ＥＣＣ情報に基づいてメモリ１３０に記録されている前記ＥＣＣコードを読み出してもよい。
【００４６】
ここで、本発明の一実施形態によると、メモリコントローラ１２０は、前記アドレスマッピングテーブルを参照して前記データに対して選定された要求信頼水準を判断した後、前記要求信頼水準に基づいて前記ＥＣＣコードを読み出してもよい。
【００４７】
また、メモリコントローラ１２０は、前記ＥＣＣ情報に基づいて前記読み出されたデータに対する第２ＥＣＣコードを演算してもよい。
【００４８】
その後、メモリコントローラ１２０は、前記ＥＣＣ情報に基づいて前記読み出されたＥＣＣコードと前記第２ＥＣＣコードとを比較して前記読み出されたデータに対するエラーの有無を検出し、エラーが検出される場合、前記エラーを訂正してもよい。
【００４９】
以下ではメモリコントローラ１２０の動作について例を挙げて詳説明する。
【００５０】
まず、ファイルシステム１１０からメモリコントローラ１２０に対して第１データおよび第２データの書き込みが要求されたと仮定する。
【００５１】
また、前記第１データの要求信頼水準は第１要求信頼水準であり、前記第２データの要求信頼水準は第２要求信頼水準であり、前記第１要求信頼水準が前記第２要求信頼水準を超過すると仮定する。
【００５２】
図１における図面符号１３１はメモリ１３０のページを図式化した図面であり、ページ１３１は複数のセクタから構成されてもよく、各セクタは、データが格納されるデータ（Ｄａｔｅ）領域と余剰（Ｓｐａｒｅ）領域とに区分してもよい。
【００５３】
本発明の一実施形態によると、メモリコントローラ１２０は、前記第１データに対して前記第１データが記録されるページ全体を基準にして第１ＥＣＣコードを演算してもよい。
【００５４】
その後、メモリコントローラ１２０は、前記第１ＥＣＣコードを前記ページの最後のセクタに記録してもよい。
【００５５】
これと関連して、図面符号１３１を用いて説明すると、メモリコントローラ１２０は、前記第１データが記録される１ページ１３１全体を基準にして前記第１ＥＣＣコードを演算した後、前記第１ＥＣＣコードをページ１３１の最後のセクタ１３２に記録してもよい。
【００５６】
また、本発明の一実施形態によると、メモリコントローラ１２０は、前記第２データに対して前記第２データが記録される各セクタごとに第２ＥＣＣコードを演算してもよい。
【００５７】
その後、メモリコントローラ１２０は、前記第２ＥＣＣコードをメモリ１３０の余剰領域に記録してもよい。
【００５８】
これと関連して図面符号１３１を用いて説明すると、メモリコントローラ１２０は、前記第２データが記録されるページ１３１の各セクタごとに前記第２ＥＣＣコードを演算した後、前記第２ＥＣＣコードを余剰領域１３３に記録してもよい。
【００５９】
すなわち、本発明の一実施形態に係るメモリコントローラ１２０は、相対的に高い信頼水準が要求されるデータがメモリ１３０に記録される場合、１ページ全体を基準にして前記データに対するＥＣＣコードを演算した後、前記ページの最後のセクタに前記ＥＣＣコードを記録することによってメモリ１３０の空間使用率は増加するが、前記データに対する高い信頼性は保障されることができる。
【００６０】
また、本発明の一実施形態に係るメモリコントローラ１２０は、相対的に低い信頼水準が要求されるデータがメモリ１３０に記録される場合、各セクタごとに前記データに対するＥＣＣコードを演算した後メモリ１３０の余剰領域に前記ＥＣＣコードを記録することによって、前記データに対して保障される信頼水準は多少低くなるが、メモリ１３０の空間使用率および速度の側面において利益を獲得できるようになる。
【００６１】
以上、データがメモリ１３０に記録される場合、メモリコントローラ１２０の動作について説明した。以下ではメモリ１３０から前記データが読み出される場合、メモリコントローラ１２０の動作について説明する。
【００６２】
まず、メモリコントローラ１２０が前述した方式により記録された第１データをメモリ１３０から読み出す場合について説明する。
【００６３】
メモリコントローラ１２０は、ファイルシステム１１０から前記第１データの読み出し要求を受信すると、前記第１データが記録されたページ１３１の最後のセクタ１３２から前記第１ＥＣＣコードを読み出す。
【００６４】
その後、メモリコントローラ１２０は、前記ページ１３１全体を基準にして読み出された第１データに対する第３ＥＣＣコードを演算した後、前記第１ＥＣＣコードと前記第３ＥＣＣコードとを比較して前記読み出された第１データに対するエラーの有無を検出および修正してもよい。
【００６５】
次に、メモリコントローラ１２０が前述した方式により記録された第２データをメモリ１３０から読み出す場合について説明する。
【００６６】
メモリコントローラ１２０は、ファイルシステム１１０から前記第２データの読み出し要求を受信すると、メモリ１３０の余剰領域１３３から前記第２ＥＣＣコードを読み出す。
【００６７】
その後、メモリコントローラ１２０は、前記各セクタごとに読み出された第２データに対する第４ＥＣＣコードを演算した後、前記第２ＥＣＣコードと前記第４ＥＣＣコードとを比較して前記読み出された第２データに対するエラーの有無を検出および修正してもよい。
【００６８】
一般的にメモリ１３０に記録されるデータがメモリコントローラ１２０のメタデータである場合、その情報が喪失されると、メモリ１３０に記録された全てのデータを信頼することのできないという点でユーザデータよりも高い信頼性が保障される必要がある。
【００６９】
したがって、本発明の一実施形態によると、メモリ１３０に記録されるデータがメモリコントローラ１２０のメタデータである場合、前記メタデータの要求信頼水準はユーザデータの要求信頼水準よりも高く選定されてもよい。
【００７０】
この場合、一般的にメモリコントローラ１２０は、メタデータおよびユーザデータを自主的に区分することができるため、データの種類に応じて選定された要求信頼水準を区別するための別途の方法を考慮しなくてもよい利点がある。
【００７１】
これと関連して、本発明の一実施形態によると、メモリコントローラ１２０は、前記メタデータがメモリ１３０の特定位置にのみ記録されるよう設計されてもよい。これによって、データの種類に応じて選定された要求信頼水準を区別するため、アドレスマッピングテーブル１２１に特定フィールドを追加するなどの過程を省略してもよい。
【００７２】
以下では、メモリ１３０に記録されるデータがメタデータであるか、またはユーザデータであるかに応じて、メモリコントローラ１２０が動作する過程について図２を参照して詳説する。
【００７３】
図２は、本発明の一実施形態に係るメモリコントローラの動作過程を示すフローチャートである。
【００７４】
ステップＳ２１０において、メモリコントローラ１２０がファイルシステム１１０からデータ書き込み要求を受信する。
【００７５】
ステップＳ２２０において、メモリコントローラ１２０がファイルシステム１１０から書き込み要求されたデータがメモリコントローラ１２０のメタデータであるか否かを判断する。
【００７６】
もし、ステップＳ２２０でファイルシステム１１０から書き込み要求を受信したデータがメモリコントローラ１２０のメタデータであると判断された場合、メモリコントローラ１２０は、ステップＳ２３０において前記メタデータが記録されるページ全体を基準にして前記メタデータに対する第１ＥＣＣコードを演算する。
【００７７】
その後、ステップＳ２４０において、メモリコントローラ１２０は前記第１ＥＣＣコードを前記ページの選定されたセクタに記録する。
【００７８】
本発明の一実施形態によると、前記選定されたセクタは前記ページの最後のセクタであってもよい。
【００７９】
しかし、ステップＳ２２０で前記データが前記メタデータではないユーザデータであると判断された場合、メモリコントローラ１２０は、ステップＳ２５０において前記ユーザデータが記録される各セクタごとに前記ユーザデータに対する第２ＥＣＣコードを演算する。
【００８０】
その後、ステップＳ２６０において、メモリコントローラ１２０は前記第２ＥＣＣコードをメモリ１３０の余剰領域に記録する。
【００８１】
結局、本発明の一実施形態に係るメモリコントローラ１２０は、相対的に高い信頼水準が要求されるメタデータがメモリ１３０に記録される場合、１ページ全体を基準にして前記メタデータに対するＥＣＣコードを演算した後、前記ページの最後のセクタに前記ＥＣＣコードを記録することによって、メモリ１３０の空間使用率は増加するが、前記メタデータに対して高い信頼性が保障されるようにすることができる。
【００８２】
また、本発明の一実施形態に係るメモリコントローラ１２０は、相対的に低い信頼水準の要求されるユーザデータがメモリ１３０に記録される場合、各セクタごとに前記ユーザデータに対するＥＣＣコードを演算した後メモリ１３０の余剰領域に前記ＥＣＣコードを記録することによって、前記ユーザデータに対して保障される信頼水準は多少低くなるが、メモリ１３０の空間使用率および速度の側面において利益を獲得することができる。
【００８３】
以上、データがメモリ１３０に記録される場合、メモリコントローラ１２０の動作について説明した。以下では図３を参照してメモリ１３０から前記データが読み出される場合、メモリコントローラ１２０の動作について説明する。
【００８４】
図３は、本発明のまた他の一実施形態に係るメモリコントローラの動作過程を示すフローチャートである。
【００８５】
ステップＳ３１０において、メモリコントローラ１２０がファイルシステム１１０からデータ読み出し要求を受信する。
【００８６】
ステップＳ３２０において、メモリコントローラ１２０がファイルシステム１１０から読み出し要求を受信したデータがメモリコントローラ１２０のメタデータであるか否かを判断する。
【００８７】
もし、ステップＳ３２０において、ファイルシステム１１０から読み出し要求を受信したデータがメモリコントローラ１２０のメタデータであると判断された場合、メモリコントローラ１２０は、ステップＳ３３０において前記メタデータが記録されたページの最後のセクタから前記第１ＥＣＣコードを読み出す。
【００８８】
その後、ステップＳ３４０において、メモリコントローラ１２０は、前記ページ全体を基準にしてメモリ１３０から読み出されたメタデータに対する第３ＥＣＣコードを演算する。
【００８９】
ステップＳ３５０において、前記読み出された第１ＥＣＣコードと前記第３ＥＣＣコードとを比較して前記読み出されたメタデータに対するエラーを検出および訂正する。
【００９０】
もし、ステップＳ３２０において前記データが前記メタデータではないユーザデータであると判断された場合、メモリコントローラ１２０は、ステップＳ３６０において、メモリ１３０の余剰領域から前記第２ＥＣＣコードを読み出す。
【００９１】
その後、ステップＳ３７０において、メモリコントローラ１２０は、前記各セクタごとにメモリ１３０から読み出されたユーザデータに対する第４ＥＣＣコードを演算する。
【００９２】
ステップＳ３８０において、前記読み出された第２ＥＣＣコードと前記第４ＥＣＣコードとを比較して前記ユーザデータに対するエラーを検出および訂正する。
【００９３】
図４は、本発明の一実施形態に係るメモリコントローラの構造を示す図である。
【００９４】
図４を参照すると、ファイルシステム４１０、メモリコントローラ４２０、およびメモリ４３０が図示されている。
【００９５】
メモリコントローラ４２０は、ＥＣＣ生成部４２１、ＥＣＣ演算部４２２、およびＥＣＣ記録部４２３を備えている。
【００９６】
ＥＣＣ生成部４２１は、ファイルシステム４１０がデータの書き込みを要求する場合、前記データの種類に応じて選定された要求信頼水準に基づいて前記データに対するＥＣＣ情報を生成する。
【００９７】
本発明の一実施形態によると、前記要求信頼水準は、前記データの種類に応じて選定された後アドレスマッピングテーブルに記録されてもよい。
【００９８】
ここで、本発明の一実施形態によると、ＥＣＣ生成部４２１は、前記アドレスマッピングテーブルを参照して前記要求信頼水準を判断した後、前記ＥＣＣ情報を生成してもよい。
【００９９】
ＥＣＣ演算部４２２は、前記ＥＣＣ情報に基づいて前記データに対するＥＣＣコードを演算する。
【０１００】
ＥＣＣ記録部４２３は、前記ＥＣＣ情報に基づいて前記ＥＣＣコードをメモリ４３０に記録する。
【０１０１】
本発明の一実施形態によると、メモリコントローラ４２０は、ＥＣＣ読み出し部（図示せず）、第２ＥＣＣ演算部（図示せず）、およびエラー検出部（図示せず）をさらに備えてもよい。
【０１０２】
前記ＥＣＣ読み出し部は、ファイルシステム４１０から受信されたデータ読み出し要求に応じて前記データがメモリ４３０から読み出される場合、前記ＥＣＣ情報に基づいてメモリ４３０から前記ＥＣＣコードを読み出す。
【０１０３】
前記第２ＥＣＣ演算部は、前記ＥＣＣ情報に基づいて前記読み出されたデータに対する第２ＥＣＣコードを演算する。
【０１０４】
前記エラー検出部は、前記ＥＣＣ情報に基づいて前記読み出されたＥＣＣコードと前記第２ＥＣＣコードとを比較して前記読み出されたデータのエラーの有無を検出し、エラーが検出される場合は前記エラーを訂正する。
【０１０５】
本発明の一実施形態によると、ＥＣＣ演算部３２２は、前記データの要求信頼水準が第１要求信頼水準である場合、前記データが記録されるページ全体を基準にして前記データに対する第１ＥＣＣコードを演算し、前記データの要求信頼水準が第２要求信頼水準である場合、前記データが記録される各セクタごとに前記データに対する第２ＥＣＣコードを演算してもよい。
【０１０６】
ここで、前記第１要求信頼水準は前記第２要求信頼水準を超過する。
【０１０７】
ここで、本発明の一実施形態によると、ＥＣＣ記録部３２３は、前記第１ＥＣＣコードを前記ページの選定されたセクタに記録し、前記第２ＥＣＣコードをメモリ３３０の余剰領域に記録してもよい。
【０１０８】
ここで、本発明の一実施形態によると、前記選定されたセクタは前記ページの最後のセクタであってもよい。
【０１０９】
また、本発明の一実施形態によると、メモリコントローラ４２０がメモリ４３０から前記第１要求信頼水準に選定された前記データを読み出す場合、前記ＥＣＣ読み出し部は、前記ページの選定されたセクタから前記第１ＥＣＣコードを読み出してもよい。
【０１１０】
また、前記第２ＥＣＣ演算部は、前記ページ全体を基準にして前記読み出されたデータに対する第３ＥＣＣコードを演算してもよい。
【０１１１】
その後、前記エラー検出部は、前記読み出された第１ＥＣＣコードと前記第３ＥＣＣコードとを比較して前記読み出されたデータのエラーの有無を検出し、エラーが検出される場合、前記エラーを訂正してもよい。
【０１１２】
また、本発明の一実施形態によると、メモリコントローラ４２０がメモリ４３０から前記第２要求信頼水準に選定された前記データを読み出す場合、前記ＥＣＣ読み出し部は、メモリ４３０の前記余剰領域から前記第２ＥＣＣコードを読み出してもよい。
【０１１３】
また、前記第２ＥＣＣ演算部は、前記各セクタごとに前記読み出されたデータに対する第４ＥＣＣコードを演算してもよい。
【０１１４】
その後、前記エラー検出部は、前記読み出された第２ＥＣＣコードと前記第４ＥＣＣコードとを比較して前記読み出されたデータのエラーの有無を検出し、エラーが検出される場合、前記エラーを訂正してもよい。
【０１１５】
また、本発明の一実施形態によると、前記データがメタデータである場合、前記メタデータの要求信頼水準は前記第１要求信頼水準に選定され、前記データがユーザデータである場合、前記ユーザデータの要求信頼水準は前記第２要求信頼水準に選定されてもよい。
【０１１６】
また、本発明の一実施形態によると、ＥＣＣ演算部３２２は、前記データがメタデータである場合、前記メタデータの記録されるページ全体を基準にして前記メタデータに対する第１ＥＣＣコードを演算し、前記データがユーザデータである場合、前記ユーザデータの記録される各セクタごとに前記ユーザデータに対する第２ＥＣＣコードを演算してもよい。
【０１１７】
ここで、本発明の一実施形態によると、ＥＣＣ記録部３２３は、前記第１ＥＣＣコードを前記ページの選定されたセクタに記録し、前記第２ＥＣＣコードを前記メモリの余剰領域に記録してもよい。
【０１１８】
ここで、本発明の一実施形態によると、前記選定されたセクタは前記ページの最後のセクタであってもよい。
【０１１９】
また、本発明の一実施形態によると、メモリコントローラ４２０がメモリ４３０から前記メタデータを読み出す場合、前記ＥＣＣ読み出し部は、前記ページの選定されたセクタから前記第１ＥＣＣコードを読み出してもよい。
【０１２０】
また、前記第２ＥＣＣ演算部は、前記ページ全体を基準にして前記読み出されたメタデータに対する第３ＥＣＣコードを演算してもよい。
【０１２１】
その後、前記エラー検出部は、前記読み出された第１ＥＣＣコードと前記第３ＥＣＣコードとを比較して前記読み出されたメタデータのエラーの有無を検出し、エラーが検出される場合は前記エラーを訂正してもよい。
【０１２２】
また、本発明の一実施形態によると、メモリコントローラ４２０がメモリ４３０から前記ユーザデータを読み出す場合、前記ＥＣＣ読み出し部は、メモリ４３０の前記余剰領域から前記第２ＥＣＣコードを読み出してもよい。
【０１２３】
また、前記第２ＥＣＣ演算部は、前記各セクタごとに前記読み出されたユーザデータに対する第４ＥＣＣコードを演算してもよい。
【０１２４】
その後、前記エラー検出部は前記読み出された第２ＥＣＣコードと前記第４ＥＣＣコードとを比較して前記読み出されたユーザデータのエラーの有無を検出し、エラーが検出される場合は前記エラーを訂正してもよい。
【０１２５】
図５は、本発明の一実施形態に係るメモリ管理方法を示すフローチャートである。
ステップＳ５１０において、ファイルシステムがデータの書き込みを要求する場合、前記データの種類に応じて選定された要求信頼水準に基づいて前記データに対するＥＣＣ情報を生成する。
【０１２６】
本発明の一実施形態によると、前記要求信頼水準は、前記データの種類に応じて選定された後アドレスマッピングテーブルに記録されてもよい。
【０１２７】
ここで、本発明の一実施形態によると、ステップＳ５１０では、前記アドレスマッピングテーブルを参照して前記要求信頼水準を判断した後、前記ＥＣＣ情報を生成してもよい。
【０１２８】
ステップＳ５２０において、ステップＳ５１０で生成された前記ＥＣＣ情報に基づいて前記データに対するＥＣＣコードを演算する。
【０１２９】
ステップＳ５３０において、前記ＥＣＣ情報に基づいてステップＳ５２０で演算された前記ＥＣＣコードをメモリに記録する。
【０１３０】
本発明の一実施形態によると、本発明に係るメモリ管理方法は、ステップＳ５３０の後にファイルシステムから受信されたデータ読み出し要求に応じて前記メモリから前記データが読み出される場合、前記ＥＣＣ情報に基づいて前記メモリから前記ＥＣＣコードを読み出すステップをさらに含んでもよい。
【０１３１】
ここで、本発明の一実施形態に係るメモリ管理方法は、前記ＥＣＣ情報に基づいて前記読み出されたデータに対する第２ＥＣＣコードを演算するステップをさらに含んでもよい。
【０１３２】
その後、本発明の一実施形態に係るメモリ管理方法は、前記ＥＣＣ情報に基づいて前記読み出されたＥＣＣコードと前記第２ＥＣＣコードとを比較して前記読み出されたデータのエラーの有無を検出し、エラーが検出される場合、前記エラーを訂正するステップをさらに含んでもよい。
【０１３３】
本発明の一実施形態によると、前記データがメタデータである場合、前記メタデータの要求信頼水準は第１要求信頼水準に選定され、前記データがユーザデータである場合、前記ユーザデータの要求信頼水準は第２要求信頼水準に選定されてもよい。
【０１３４】
ここで、前記第１要求信頼水準は前記第２要求信頼水準を超過する。
【０１３５】
また、本発明の一実施形態によると、ステップＳ５２０では前記データがメタデータである場合、前記メタデータの記録されるページ全体を基準にして前記メタデータに対する第１ＥＣＣコードを演算し、前記データがユーザデータである場合、前記ユーザデータが記録される各セクタごとに前記ユーザデータに対する第２ＥＣＣコードを演算してもよい。
【０１３６】
ここで、本発明の一実施形態によると、ステップＳ５３０では前記第１ＥＣＣコードを前記ページの選定されたセクタに記録し、前記第２ＥＣＣコードを前記メモリの余剰領域に記録してもよい。
【０１３７】
ここで、本発明の一実施形態によると、前記選定されたセクタは前記ページの最後のセクタであってもよい。
【０１３８】
ここで、本発明の一実施形態に係るメモリ管理方法は、ステップＳ５３０の後に前記メモリから前記メタデータが読み出される場合、前記ページの選定されたセクタから前記第１ＥＣＣコードを読み出すステップをさらに含んでもよい。
【０１３９】
ここで、本発明の一実施形態に係るメモリ管理方法は、前記ページ全体を基準にして前記読み出されたメタデータに対する第３ＥＣＣコードを演算するステップをさらに含んでもよい。
【０１４０】
その後、本発明の一実施形態に係るメモリ管理方法は、前記読み出された第１ＥＣＣコードと前記第３ＥＣＣコードとを比較して前記読み出されたメタデータのエラーの有無を検出し、エラーが検出される場合、前記エラーを訂正するステップをさらに含んでもよい。
【０１４１】
また、本発明の一実施形態に係るメモリ管理方法は、ステップＳ５３０の後に、前記メモリから前記ユーザデータが読み出される場合、前記メモリの前記余剰領域から前記第２ＥＣＣコードを読み出すステップをさらに含んでもよい。
【０１４２】
ここで、本発明の一実施形態に係るメモリ管理方法は、前記各セクタごとに前記読み出されたユーザデータに対する第４ＥＣＣコードを演算するステップをさらに含んでもよい。
【０１４３】
その後、本発明の一実施形態に係るメモリ管理方法は、前記読み出された第２ＥＣＣコードと前記第４ＥＣＣコードとを比較して前記読み出されたユーザデータのエラーの有無を検出し、エラーが検出される場合、前記エラーを訂正するステップをさらに含んでもよい。
【０１４４】
以上、図５を参照して本発明の一実施形態に係るメモリ管理方法について説明した。ここで、本発明の一実施形態に係るメモリ管理方法は、図１〜図４を用いて説明したメモリコントローラの構成と対応されることがあるため、これに対する詳説は省略する。
【０１４５】
本発明に係るメモリ管理方法は、多様なコンピュータ手段を介して様々な処理を実行することができるプログラム命令の形態で実現され、コンピュータ読取可能な記録媒体に記録されてもよい。コンピュータ読取可能な媒体は、プログラム命令、データファイル、データ構造などの単独または組み合わせたものを含んでもよい。媒体に記録されるプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり使用可能なものであってもよい。コンピュータ読取可能な記録媒体の例としては、ハードディスク、フロッピー（登録商標）ディスク及び磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光記録媒体、光ディスクのような光磁気媒体、及びＲＯＭ、ＲＡＭ、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれてもよい。プログラム命令の例としては、コンパイラによって生成されるような機械語コード（ｍａｃｈｉｎｅ  ｃｏｄｅ）だけでなく、インタプリタなどを用いてコンピュータによって実行され得る高級言語コード（ｈｉｇｈｅｒ  ｌｅｖｅｌ  ｃｏｄｅ）を含む。上述したハードウェア装置は、本発明の動作を行うために１つ以上のソフトウェアのレイヤで動作するように構成されてもよい。
【０１４６】
上述したように本発明を限定された実施形態と図面によって説明したが、本発明は、上記の実施形態に限定されることなく、本発明が属する分野における通常の知識を有する者であれば、このような実施形態から多様な修正及び変形が可能である。
【０１４７】
したがって、本発明の範囲は、開示された実施形態に限定されて定められるものではなく、特許請求の範囲だけではなく特許請求の範囲と均等なものなどによって定められるものである。
【図１】
2012514266.tif 000003
【図２】
2012514266.tif 000004
【図３】
2012514266.tif 000005
【図４】
2012514266.tif 000006
【図５】
2012514266.tif 000007
【国際調査報告】
2012514266.tif 000008
2012514266.tif 000009
2012514266.tif 000010
2012514266.tif 000011