(57)【要約】      （修正有）【課題】読み取り動作及び書き込み動作の間に向上されたバッファメモリ使用効率を有する集積回路及びストレージ装置を提供する。【解決手段】集積回路は、不揮発性メモリと、書き込み時に不揮発性メモリに書き込まれる書き込みデータをバッファリングし、読み取り時に不揮発性メモリから受信された読み取りデータをバッファリングする第１バッファメモリと、書き込み時に書き込みデータをバッファリングし、読み取り時に読み取りデータをバッファリングする第２バッファメモリと、第１バッファメモリ及び第２バッファメモリに保存されたデータの精度により第１バッファメモリを評価し、該評価が臨界値以上の場合、書き込み時に書き込みデータの一部を、第１バッファメモリから第２バッファメモリに伝送し、該評価が基準を超過している場合、読み取り時に読み取りデータの一部を、第１バッファメモリから第２バッファメモリに伝送するコントローラを備える。【選択図】図４
2019128948.tif 000002
【特許請求の範囲】
【請求項１】
集積回路装置であって、
不揮発性メモリと、
書き込み要請に応答して前記不揮発性メモリに書き込まれる書き込みデータをバッファリングし、読み取り要請に応答して前記不揮発性メモリから受信された読み取りデータをバッファリングする第１バッファメモリと、
書き込み要請に応答して前記不揮発性メモリに書き込まれる書き込みデータをバッファリングし、読み取り要請に応答して前記不揮発性メモリから受信された読み取りデータをバッファリングする第２バッファメモリと、
前記第１バッファメモリ及び第２バッファメモリに連結され、それらの中に保存されたデータの精度に関する少なくとも１つの基準に対して前記第１バッファメモリを評価し、（ｉ）前記基準が閾値以上であることを前記評価が示す場合、前記書き込み要請に応答して前記書き込みデータのうちの少なくとも一部を前記第１バッファメモリから前記第２バッファメモリに伝送し、（ｉｉ）前記基準が閾値以上であることを前記評価が示す場合、前記読み取り要請に応答して前記読み取りデータのうちの少なくとも一部を前記第１バッファメモリから前記第２バッファメモリに伝送するコントローラと、を備えることを特徴とする集積回路装置。
【請求項２】
前記少なくとも１つの基準は、前記第１バッファメモリ内に保存されたエラービットの個数の関数または前記第１バッファメモリ内におけるエラービット発生頻度の関数であることを特徴とする請求項１に記載の集積回路装置。
【請求項３】
前記コントローラは、前記少なくとも１つの基準に対して前記第１バッファメモリを評価するバッファマネージャを含むことを特徴とする請求項２に記載の集積回路装置。
【請求項４】
前記コントローラは、前記第１バッファメモリに保存されたデータのエラーをチェックして訂正するエラーチェック及び訂正（ＥＣＣ）モジュールを含むことを特徴とする請求項２に記載の集積回路装置。
【請求項５】
前記第１バッファメモリは、ＳＲＡＭであり、
前記第２バッファメモリは、ＤＲＡＭであることを特徴とする請求項１に記載の集積回路装置。
【請求項６】
不揮発性メモリと、
前記不揮発性メモリに書き込まれる書き込みデータまたは前記不揮発性メモリから読み取られた読み取りデータをバッファリングする第１メモリを含み、前記第１メモリで発生したエラービットの個数または前記エラービットの発生頻度に基づいて、前記書き込みデータまたは前記読み取りデータをバッファリングするためのバッファメモリを動的に決定するコントローラと、
前記エラービットの個数または前記エラービットの発生頻度が閾値以上である場合、前記書き込みデータまたは前記読み取りデータをバッファリングする第２メモリと、を備えることを特徴とするストレージ装置。
【請求項７】
前記コントローラは、
前記エラービットの個数または前記エラービットの発生頻度を前記閾値と比較し、
前記エラービットの個数または前記エラービットの発生頻度が前記閾値未満である場合、前記バッファメモリを前記第１メモリに決定し、
前記エラービットの個数、または前記エラービットの発生頻度が前記閾値以上である場合、前記バッファメモリを前記第２メモリに決定するバッファマネージャをさらに含むことを特徴とする請求項６に記載のストレージ装置。
【請求項８】
前記コントローラは、前記第１メモリに入力されるデータと前記第１メモリから出力されたデータとを比較することにより、前記エラービットの個数または前記エラービットの発生頻度をモニタリングするモニタリングモジュールをさらに含むことを特徴とする請求項６に記載のストレージ装置。
【請求項９】
前記コントローラは、前記第１メモリにバッファリングされたデータに対してエラーチェック及び訂正動作を遂行するエラーチェック及び訂正（ＥＣＣ）モジュールを含むことを特徴とする請求項６に記載のストレージ装置。
【請求項１０】
前記コントローラは、前記ＥＣＣモジュールで訂正されたエラーに基づいて、前記エラービットの個数または前記エラービットの発生頻度をモニタリングするモニタリングモジュールをさらに含むことを特徴とする請求項９に記載のストレージ装置。
【請求項１１】
前記コントローラは、さらに前記書き込みデータまたは前記読み取りデータの入出力速度をモニタリングして、前記入出力速度に基づいて前記バッファメモリを動的に決定することを特徴とする請求項６に記載のストレージ装置。
【請求項１２】
前記コントローラは、
前記入出力速度を閾速度と比較し、
前記入出力速度が前記閾速度未満である場合、前記バッファメモリを前記第１メモリに決定し、
前記入出力速度が前記閾速度以上である場合、前記バッファメモリを前記第２メモリに決定するバッファマネージャをさらに含むことを特徴とする請求項１１に記載のストレージ装置。
【請求項１３】
前記第１メモリは、ＳＲＡＭであることを特徴とする請求項６に記載のストレージ装置。
【請求項１４】
前記第２メモリは、ＤＲＡＭであることを特徴とする請求項６に記載のストレージ装置。
【請求項１５】
不揮発性メモリと、
前記不揮発性メモリに書き込まれる書き込みデータまたは前記不揮発性メモリから読み取られた読み取りデータをバッファリングするためのバッファリング領域を含むメモリを含むコントローラと、を備え、
前記コントローラは、前記バッファリング領域で発生したエラービットの個数または前記エラービットの発生頻度に基づいて、前記メモリのリードオンリー領域に対する再書き込み周期を動的に決定し、決定された前記再書き込み周期により、前記リードオンリー領域に対する再書き込み動作を動的に制御することを特徴とするストレージ装置。
【請求項１６】
前記コントローラは、
前記エラービットの個数または前記エラービットの発生頻度を閾値と比較し、
前記エラービットの個数または前記エラービットの発生頻度が前記閾値以上である場合、前記再書き込み周期を低減させ、
前記エラービットの個数または前記エラービットの発生頻度が前記閾値未満である場合、前記再書き込み周期を増大させる再書き込みマネージャを含むことを特徴とする請求項１５に記載のストレージ装置。
【請求項１７】
前記不揮発性メモリは、前記リードオンリー領域に書き込まれるメタデータを保存するメタ領域を含み、
前記コントローラは、決定された前記再書き込み周期により、前記メタ領域に保存された前記メタデータを前記リードオンリー領域に再書き込みすることを特徴とする請求項１５に記載のストレージ装置。
【請求項１８】
前記コントローラは、前記バッファリング領域に入力されるデータと前記バッファリング領域から出力されたデータとを比較することにより、前記エラービットの個数または前記エラービットの発生頻度をモニタリングするモニタリングモジュールをさらに含むことを特徴とする請求項１５に記載のストレージ装置。
【請求項１９】
前記コントローラは、前記バッファリング領域にバッファリングされたデータに対してエラーチェック及び訂正動作を遂行するエラーチェック及び訂正（ＥＣＣ）モジュールを含むことを特徴とする請求項１５に記載のストレージ装置。
【請求項２０】
前記コントローラは、さらに前記書き込みデータまたは前記読み取りデータの入出力速度をモニタリングし、前記入出力速度に基づいて前記再書き込み周期を動的に決定することを特徴とする請求項１５に記載のストレージ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路装置に関し、より詳しくは、読み取り動作及び書き込み動作の間に向上されたバッファメモリ使用効率を有する集積回路装置及びストレージ装置に関する。
【背景技術】
【０００２】
最近、ＳＳＤ（ｓｏｌｉｄ  ｓｔａｔｅ  ｄｒｉｖｅ）のようなストレージ装置が広く使用されている。ストレージ装置は、例えば、フラッシュメモリのような不揮発性メモリと、不揮発性メモリを制御するコントローラとを含み、コントローラは、例えば、ＳＲＡＭ（ｓｔａｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）のような内部メモリを含む。ストレージ装置の入出力速度が高速化され、保存容量が増大するにつれ、コントローラに含まれる内部メモリの容量及び機能が増大している。これに応じて、内部メモリでソフトエラーが発生し、それにより、ストレージ装置の信頼性が低下してしまう。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１３１０９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、上記従来の問題点に鑑みてなされたものであって、本発明の目的は、内部メモリのデータ損傷を防止することにより、信頼性を向上させた集積回路装置及びストレージ装置を提供することにある。
【課題を解決するための手段】
【０００５】
上記目的を達成するためになされた本発明の一態様による集積回路装置は、不揮発性メモリと、書き込み要請に応答して前記不揮発性メモリに書き込まれる書き込みデータをバッファリングし、読み取り要請に応答して前記不揮発性メモリから受信された読み取りデータをバッファリングする第１バッファメモリと、書き込み要請に応答して前記不揮発性メモリに書き込まれる書き込みデータをバッファリングし、読み取り要請に応答して前記不揮発性メモリから受信された読み取りデータをバッファリングする第２バッファメモリと、前記第１バッファメモリ及び第２バッファメモリに連結され、それらの中に保存されたデータの精度に関する少なくとも１つの基準に対して前記第１バッファメモリを評価し、（ｉ）前記基準が閾値以上であることを前記評価が示す場合、前記書き込み要請に応答して前記書き込みデータのうちの少なくとも一部を前記第１バッファメモリから前記第２バッファメモリに伝送（ｒｅｄｉｒｅｃｔ）し、（ｉｉ）前記基準が閾値以上であることを前記評価が示す場合、前記読み取り要請に応答して前記読み取りデータのうちの少なくとも一部を前記第１バッファメモリから前記第２バッファメモリに伝送するコントローラと、を備えることを特徴とする。
【０００６】
上記目的を達成するためになされた本発明の一態様によるストレージ装置は、不揮発性メモリと、前記不揮発性メモリに書き込まれる書き込みデータまたは前記不揮発性メモリから読み取られた読み取りデータをバッファリングする第１メモリを含み、前記第１メモリで発生したエラービットの個数または前記エラービットの発生頻度に基づいて、前記書き込みデータまたは前記読み取りデータをバッファリングするためのバッファメモリを動的に決定するコントローラと、前記エラービットの個数または前記エラービットの発生頻度が閾値以上である場合、前記書き込みデータまたは前記読み取りデータをバッファリングする第２メモリと、を備えることを特徴とする。
【０００７】
上記目的を達成するためになされた本発明の他の態様によるストレージ装置は、不揮発性メモリと、前記不揮発性メモリに書き込まれる書き込みデータまたは前記不揮発性メモリから読み取られた読み取りデータをバッファリングするためのバッファリング領域を含むメモリを含むコントローラと、を備え、前記コントローラは、前記バッファリング領域で発生したエラービットの個数または前記エラービットの発生頻度に基づいて、前記メモリのリードオンリー領域に対する再書き込み（ｒｅｗｒｉｔｅ）周期を動的に決定し、決定された前記再書き込み周期により、前記リードオンリー領域に対する再書き込み動作を動的に制御することを特徴とする。
【０００８】
また、本発明の一実施形態によるストレージ装置の動作方法は、不揮発性メモリ及び前記不揮発性メモリを制御するコントローラを含むストレージ装置の動作方法であって、前記コントローラによって、前記コントローラに含まれる第１メモリで発生したエラービットの個数または前記エラービットの発生頻度をモニタリングする段階と、前記コントローラにより、前記エラービットの個数または前記エラービットの発生頻度を閾値と比較する段階と、前記エラービットの個数または前記エラービットの発生頻度が前記閾値以上である場合、前記不揮発性メモリに書き込まれる書き込みデータまたは前記不揮発性メモリから読み取られた読み取りデータを、前記コントローラの外部に配置された第２メモリにバッファリングする段階と、前記エラービットの個数または前記エラービットの発生頻度が前記閾値未満である場合、前記書き込みデータまたは前記読み取りデータを前記第１メモリにバッファリングする段階と、を有する。
【０００９】
また、本発明の他の実施形態によるストレージ装置の動作方法は、不揮発性メモリ、及び前記不揮発性メモリを制御するコントローラを含むストレージ装置の動作方法であって、前記コントローラにより、前記コントローラに含まれるメモリのバッファリング領域で発生したエラービットの個数または前記エラービットの発生頻度をモニタリングする段階と、前記コントローラにより、前記エラービットの個数または前記エラービットの発生頻度に基づいて、前記メモリのリードオンリー領域に対する再書き込み周期を動的に決定する段階と、前記コントローラにより、決定された前記再書き込み周期により、前記リードオンリー領域に対する再書き込み動作を動的に制御する段階と、を有する。
【発明の効果】
【００１０】
本発明によれば、コントローラに含まれるメモリで発生したエラービットの個数またはエラービットの発生頻度に基づいて、書き込みバッファまたは読み取りバッファを動的に決定することにより、書き込みバッファまたは読み取りバッファにバッファリングされたデータのソフトエラーを防止することができ、それにより、ストレージ装置の信頼性を向上させることができる。
【００１１】
また、本発明によれば、コントローラに含まれるメモリで発生したエラービットの個数またはエラービットの発生頻度に基づいて、コントローラのリードオンリー領域に対する再書き込み周期を動的に決定し、決定された再書き込み周期により、リードオンリー領域に対する再書き込み動作を動的に制御することができる。それにより、リードオンリー領域のソフトエラーによるデータ損傷を防止することができ、ストレージ装置の信頼性を向上させることができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態によるストレージシステムを示すブロック図である。
【図２Ａ】本発明の一実施形態によるストレージシステムのノーマル読み取り経路を示す図である。
【図２Ｂ】本発明の一実施形態によるストレージシステムの修正読み取り経路を示す図である。
【図３Ａ】本発明の一実施形態によるストレージシステムのノーマル書き込み経路を示す図面である。
【図３Ｂ】本発明の一実施形態によるストレージシステムの修正書き込み経路を示す図面である。
【図４】本発明の一実施形態によるストレージ装置の一例を示すブロック図である。
【図５】図４のコントローラの一例を詳細に示すブロック図である。
【図６】図４のコントローラの他の例を詳細に示すブロック図である。
【図７】本発明の一実施形態によるストレージ装置の他の例を示すブロック図である。
【図８】図７のコントローラの一例を詳細に示すブロック図である。
【図９】本発明の一実施形態によるストレージ装置の動作方法を示すフローチャートである。
【図１０】図９の動作方法の一例によるホスト、コントローラ、及び不揮発性メモリの間の動作を示すフローチャートである。
【図１１】図９の動作方法の他の例によるホスト、コントローラ、及び不揮発性メモリの間の動作を示すフローチャートである。
【図１２】本発明の一実施形態によるストレージ装置のさらに他の例を示すブロック図である。
【図１３】本発明の一実施形態によるストレージ装置のその他の例を示すブロック図である。
【図１４】図１３のコントローラの一例を詳細に示すブロック図である。
【図１５】図１３のコントローラの他の例を詳細に示すブロック図である。
【図１６】本発明の一実施形態によるストレージ装置の動作方法を示すフローチャートである。
【図１７】本発明の一実施形態によるストレージ装置の動作方法を示すフローチャートである。
【図１８】図１６の動作方法の一例によるコントローラと不揮発性メモリとの間の動作を示すフローチャートである。
【図１９】本発明の一実施形態によるネットワークシステムを示す図である。
【図２０】本発明の一実施形態によるネットワークシステムを示す図である。
【図２１】本発明の一実施形態による電子装置を示すブロック図である。
【発明を実施するための形態】
【００１３】
図１は、本発明の一実施形態によるストレージシステムを示すブロック図である。
【００１４】
図１を参照すると、ストレージシステムＳＳは、ストレージ装置１０及びホスト２０を備え、ストレージ装置１０は、コントローラ１００及び不揮発性メモリ（ＮＶＭ：ｎｏｎ−ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ）２００を含む。コントローラ１００は、第１メモリ１１０を含み、ストレージ装置１０は、第２メモリ３００をさらに含む。以下では、第１メモリ１１０は、コントローラ１００内部に配置されたメモリを指し、第２メモリ３００は、コントローラ１００外部に配置されたメモリを指す。
【００１５】
ホスト２０は、多様なインターフェースを介してストレージ装置１０と通信し、書き込み要請または読み取り要請などをストレージ装置１０に伝送する。例えば、ホスト２０は、ＡＰ（ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｃｅｓｓｏｒ）またはＳｏＣ（ｓｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ）によって具現される。ホスト２０は、書き込み要請をストレージ装置１０に伝送し、ストレージ装置１０は、書き込み要請に応答して、不揮発性メモリ２００にデータを書き込む。ホスト２０は、読み取り要請をストレージ装置１０に伝送し、ストレージ装置１０は、読み取り要請に応答して、不揮発性メモリ２００からデータを読み取る。
【００１６】
コントローラ１００は、ホスト２０から受信した書き込み要請に応答して、不揮発性メモリ２００にデータを書き込むか、あるいはホスト２０から受信した読み取り要請に応答して、不揮発性メモリ２００からデータを読み取るように、不揮発性メモリ２００を制御する。第１メモリ１１０は、不揮発性メモリ２００に書き込まれる書き込みデータ、または不揮発性メモリ２００から読み取られた読み取りデータをバッファリングする。例えば、第１メモリ１１０は、ＳＲＡＭ（ｓｔａｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）である。しかし、本発明は、これに限定されるものではなく、第１メモリ１１０は、多種の揮発性メモリまたは不揮発性メモリによって具現される。
【００１７】
ストレージ装置１０の入出力速度が高速化されて保存容量が増加するのにつれて、コントローラ１００に含まれた第１メモリ１１０の容量及び機能が増大している。例えば、第１メモリ１１０はＳＲＡＭであるが、ＳＲＡＭは、ＤＲＡＭ（ｄｙｎａｍｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）に比べて、相対的にＳＥＲ（ｓｏｆｔ  ｅｒｒｏｒ  ｒａｔｅ）が高いという特徴がある。特に、ＳＲＡＭは、データ入出力速度が速くなったり、使用環境の高度（ａｌｔｉｔｕｄｅ）がる高くなったりすると、ＳＥＲが上昇する。このため、ＳＲＡＭに保存されたデータのビットフリップ（ｂｉｔ  ｆｌｉｐ）が発生し、結果として、ストレージ装置１０の信頼性が低下してしまう。本発明の実施形態によれば、ストレージ装置１０の信頼性低下を防止するために、コントローラ１００が、第１メモリ１１０で発生したビットフリップ、すなわち、エラービットをモニタリングし、モニタリングされたエラービットに従って、第１メモリ１１０に関連する動作を動的に制御する。
【００１８】
本実施形態の第１例において、コントローラ１００は、第１メモリ１１０で発生したエラービットの個数、またはエラービットの発生頻度に基づいて、書き込みデータまたは読み取りデータをバッファリングするためのバッファメモリを動的に決定する。具体的に、コントローラ１００は、第１メモリ１１０で発生したエラービットの個数、またはエラービットの発生頻度を閾値（ｔｈｒｅｓｈｏｌｄ  ｖａｌｕｅ）と比較し、エラービットの個数、またはエラービットの発生頻度が閾値未満である場合、バッファメモリを、第１メモリ１１０に決定し、エラービットの個数、またはエラービットの発生頻度が閾値以上である場合、バッファメモリを、第２メモリ３００に決定する。
【００１９】
本実施形態の第２例において、コントローラ１００は、書き込みデータまたは読み取りデータの入出力速度（Ｉ／Ｏ  ｓｐｅｅｄ）をモニタリングし、入出力速度に基づいて、書き込みデータまたは読み取りデータをバッファリングするためのバッファメモリを動的に決定する。例えば、コントローラ１００は、第１メモリ１１０にバッファリングされたデータの入出力速度に基づいて、書き込みデータまたは読み取りデータの入出力速度をモニタリングする。具体的に、コントローラ１００は、入出力速度を閾速度（ｔｈｒｅｓｈｏｌｄ  ｓｐｅｅｄ）と比較し、入出力速度が閾速度未満である場合、バッファメモリを、第１メモリ１１０に決定し、入出力速度が閾速度以上である場合、バッファメモリを、第２メモリ３００に決定する。
【００２０】
本実施形態の第３例において、コントローラ１００は、第１メモリ１１０で発生したエラービットの個数、またはエラービットの発生頻度に基づいて、第１メモリ１１０に含まれたリードオンリー領域に対する再書き込み周期を動的に決定し、決定された再書き込み周期に従って、リードオンリー領域に対して再書き込み動作を制御する。具体的に、コントローラ１００は、第１メモリ１１０で発生したエラービットの個数、またはエラービットの発生頻度が閾値以上である場合、再書き込み周期を減少させ、これにより、リードオンリー領域に対する再書き込み動作の回数を増加させる。
【００２１】
本実施形態の第４例において、コントローラ１００は、書き込みデータまたは読み取りデータの入出力速度に基づいて、第１メモリ１１０に含まれたリードオンリー領域に対する再書き込み周期を動的に決定し、決定された再書き込み周期に従って、リードオンリー領域に対して再書き込み動作を制御する。具体的に、コントローラ１００は、入出力速度が閾速度以上である場合、再書き込み周期を減少させ、これにより、リードオンリー領域に対する再書き込み動作の回数を増加させる。
【００２２】
本実施形態において、コントローラ１００は、バッファメモリに保存されたデータの精度に関する少なくとも１つの基準に対してバッファメモリを評価する、例えばバッファメモリに保存されたエラービットの個数の関数またはバッファメモリ内におけるエラービット発生頻度の関数に対して、バッファメモリに決定された第１メモリ１１０を評価する。コントローラ１００は、（ｉ）基準が閾値以上であることを評価が示す場合、書込み要請に応答して書込みデータのうちの少なくとも一部を第１メモリ１１０から第２メモリ３００に伝送し、（ｉｉ）基準が閾値以上であることを評価が示す場合、読み出し要求に応答して読み出しデータのうちの少なくとも一部を第１メモリ１１０から第２メモリ３００に伝送する。
【００２３】
本実施形態において、第２メモリ３００は、第１メモリ１１０で発生したエラービットの個数、またはエラービットの発生頻度が閾値以上である場合、書き込みデータまたは読み取りデータをバッファリングする。他の実施形態として、第２メモリ３００は、書き込みデータまたは読み取りデータの入出力速度が閾速度以上である場合、書き込みデータまたは読み取りデータをバッファリングする。例えば、第２メモリ３００は、ＤＲＡＭである。しかし、本発明は、これに限定されるものではなく、第２メモリ３００は、多種の揮発性メモリまたは不揮発性メモリによって具現される。また、一部の実施形態において、第２メモリ３００は、コントローラ１００内部に具現される。
【００２４】
不揮発性メモリ２００は、複数のメモリセルを含むメモリセルアレイ（ＭＣＡ：ｍｅｍｏｒｙ  ｃｅｌｌ  ａｒｒａｙ）を含み、メモリセルアレイ（ＭＣＡ）は、メタデータを保存するためのメタ領域２１０、及びユーザデータを保存するためのストレージ領域２２０を含む。本実施形態において、不揮発性メモリ２００は、フラッシュメモリ装置を含み、例えば、ＮＡＮＤフラッシュメモリ装置を含む。しかし、本発明は、これに限定されるものではなく、不揮発性メモリ２００は、ＲｅＲＡＭ（ｒｅｓｉｓｔｉｖｅ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ＰＲＡＭ（ｐｈａｓｅ−ｃｈａｎｇｅ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ＭＲＡＭ（ｍａｇｎｅｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）のような抵抗型メモリ装置を含む。
【００２５】
ストレージシステムＳＳは、例えば、ＰＣ（ｐｅｒｓｏｎａｌ  ｃｏｍｐｕｔｅｒ）、データサーバ、ネットワーク結合ストレージ、ＩｏＴ（ｉｎｔｅｒｎｅｔ  ｏｆ  ｔｈｉｎｇｓ）装置、または携帯用電子機器によって具現される。携帯用電子機器は、ラップトップコンピュータ、携帯電話機、スマートフォン、タブレットＰＣ、ＰＤＡ（ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）、ＥＤＡ（ｅｎｔｅｒｐｒｉｓｅ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）、デジタルスチルカメラ、デジタルビデオカメラ、オーディオ装置、ＰＭＰ（ｐｏｒｔａｂｌｅ  ｍｕｌｔｉｍｅｄｉａ  ｐｌａｙｅｒ）、ＰＮＤ（ｐｅｒｓｏｎａｌ  ｎａｖｉｇａｔｉｏｎ  ｄｅｖｉｃｅ）、ＭＰ３プレーヤー、携帯用ゲームコンソール（ｈａｎｄｈｅｌｄ  ｇａｍｅ  ｃｏｎｓｏｌｅ）、電子書籍（ｅ−ｂｏｏｋ）、ウェアラブル機器などである。
【００２６】
いくつかの実施形態において、ストレージ装置１０は、電子装置に内蔵される内部メモリである。例えば、ストレージ装置１０は、ＳＳＤ（ｓｏｌｉｄ  ｓｔａｔｅ  ｄｒｉｖｅ）、埋め込みＵＦＳ（ｕｎｉｖｅｒｓａｌ  ｆｌａｓｈ  ｓｔｏｒａｇｅ）メモリ装置、またはｅＭＭＣ（ｅｍｂｅｄｄｅｄ  ｍｕｌｔｉ−ｍｅｄｉａ  ｃａｒｄ）である。一部の実施形態において、ストレージ装置１０は、電子装置に着脱可能な外部メモリである。例えば、ストレージ装置１０は、ＵＦＳメモリカード、ＣＦ（ｃｏｍｐａｃｔ  ｆｌａｓｈ（登録商標））、ＳＤ（（登録商標）：ｓｅｃｕｒｅ  ｄｉｇｉｔａｌ）、ｍｉｃｒｏ−ＳＤ（登録商標）、ｍｉｎｉ−ＳＤ（登録商標）、ｘＤ（ｅｘｔｒｅｍｅ  ｄｉｇｉｔａｌ）、またはメモリスティック（登録商標）である。
【００２７】
図２Ａは、本発明の一実施形態によるストレージシステムのノーマル読み取り経路（ＮＲＰ：ｎｏｒｍａｌ  ｒｅａｄ  ｐａｔｈ）を示す図であり、図２Ｂは、本発明の一実施形態によるストレージシステムの修正読み取り経路（ＣＲＰ：ｃｏｒｒｅｃｔｅｄ  ｒｅａｄ  ｐａｔｈ）を示す図である。
【００２８】
図２Ａ及び図２Ｂを参照すると、ストレージシステムＳＳａは、ストレージ装置１０’及びホスト２０を備え、ストレージ装置１０’は、コントローラ１００’、不揮発性メモリ２００、及び第２メモリ３００を含む。コントローラ１００’は、読み取りバッファ１１１ａ及びバッファマネージャ１１２を含む。読み取りバッファ１１１ａは、図１に示す第１メモリ１１０の一例に対応し、具体的には、第１メモリ１１０の一部領域に対応する。
【００２９】
バッファマネージャ１１２は、読み取りバッファ１１１ａで発生したエラービットの個数または発生頻度を閾値と比較し、比較結果に基づいて、読み取りバッファ１１１ａまたは第２メモリ３００をバッファメモリとして決定する。本実施形態において、バッファマネージャ１１２は、ソフトウェアまたはファームウェアによって具現され、第１メモリ１１０にローディングされる。しかし、本発明は、これらに限定されるものではなく、一部の実施形態において、バッファマネージャ１１２は、ハードウェアによって具現される。
【００３０】
本実施形態において、バッファマネージャ１１２は、読み取りバッファ１１１ａで発生したエラービットの個数が、閾個数（ｔｈｒｅｓｈｏｌｄ  ｎｕｍｂｅｒ）未満である場合、バッファメモリを読み取りバッファ１１１ａとして決定し、このとき、読み取り経路は、図２Ａに示すノーマル読み取り経路（ＮＲＰ）に対応する。次に、バッファマネージャ１１２は、読み取りバッファ１１１ａで発生したエラービットの個数が閾個数以上に増加すると、バッファメモリを、第２メモリ３００に変更し、このとき、読み取り経路は、図２Ｂに示す修正読み取り経路（ＣＲＰ）に変更される。
【００３１】
本実施形態において、バッファマネージャ１１２は、読み取りバッファ１１１ａで発生したエラービットの個数が閾個数以上である場合、バッファメモリを、第２メモリ３００に決定し、このとき、読み取り経路は、図２Ｂに示す修正読み取り経路（ＣＲＰ）に対応する。次に、バッファマネージャ１１２は、読み取りバッファ１１１ａで発生したエラービットの個数が閾個数未満に減少すると、バッファメモリを再び読み取りバッファ１１１ａに変更し、このとき、読み取り経路は、図２Ａに示すノーマル読み取り経路（ＮＲＰ）に変更される。
【００３２】
図３Ａは、本発明の一実施形態によるストレージシステムのノーマル書き込み経路（ＮＷＰ：ｎｏｒｍａｌ  ｗｒｉｔｅ  ｐａｔｈ）を示す図であり、図３Ｂは、本発明の一実施形態によるストレージシステムの修正書き込み経路（ＣＷＰ：ｃｏｒｒｅｃｔｅｄ  ｗｒｉｔｅ  ｐａｔｈ）を示す図である。
【００３３】
図３Ａ及び図３Ｂを参照すると、ストレージシステムＳＳｂは、ストレージ装置１０”及びホスト２０を備え、ストレージ装置１０”は、コントローラ１００”、不揮発性メモリ２００、及び第２メモリ３００を含む。コントローラ１００”は、書き込みバッファ１１１ｂ及びバッファマネージャ１１２を含む。書き込みバッファ１１１ｂは、図１に示す第１メモリ１１０の一例に対応し、具体的には、第１メモリ１１０の一部領域に対応する。
【００３４】
バッファマネージャ１１２は、書き込みバッファ１１１ｂで発生したエラービットの個数を閾個数と比較し、比較結果に基づいて、書き込みバッファ１１１ｂまたは第２メモリ３００をバッファメモリとして決定する。本実施形態において、バッファマネージャ１１２は、ソフトウェアまたはファームウェアによって具現され、図１の第１メモリ１１０にローディングされる。しかし、本発明は、これに限定されるものではなく、一部実施形態において、バッファマネージャ１１２は、ハードウェアによって具現される。
【００３５】
本実施形態において、バッファマネージャ１１２は、書き込みバッファ１１１ｂで発生したエラービットの個数が閾個数未満である場合、バッファメモリを書き込みバッファ１１１ｂとして決定し、このとき、書き込み経路は、図３Ａに示すノーマル書き込み経路（ＮＷＰ）に対応する。次に、バッファマネージャ１１２は、書き込みバッファ１１１ｂで発生したエラービットの個数が閾個数以上に増加すると、バッファメモリを、第２メモリ３００に変更し、このとき、書き込み経路は、図３Ｂに示す修正書き込み経路（ＣＷＰ）に変更される。
【００３６】
本実施形態において、バッファマネージャ１１２は、書き込みバッファ１１１ｂで発生したエラービットの個数が閾個数以上である場合、バッファメモリを、第２メモリ３００に決定し、このとき、書き込み経路は、図３Ｂに示す修正書き込み経路（ＣＷＰ）に対応する。次に、バッファマネージャ１１２は、書き込みバッファ１１１ｂで発生したエラービットの個数が閾個数未満に減少すると、バッファメモリを再び書き込みバッファ１１１ｂに変更し、このとき、書き込み経路は、図３Ａに示すノーマル書き込み経路（ＮＷＰ）に変更される。
【００３７】
図４は、本発明の一実施形態によるストレージ装置の一例を示すブロック図である。
【００３８】
図４を参照すると、ストレージ装置１０ａは、コントローラ１００ａ、不揮発性メモリ２００、及び第２メモリ３００を備え、コントローラ１００ａは、バッファ１１１、バッファマネージャ１１２、及びモニタリングモジュール１１３を含む。バッファ１１１は、不揮発性メモリ２００に書き込むための書き込みデータ、または不揮発性メモリ２００から読み取られた読み取りデータをバッファリングする。本実施形態によるストレージ装置１０ａは、図１に示すストレージ装置１０の一例に対応する。従って、図１〜図３Ｂを参照して説明した内容は、本実施形態に適用され、重複する説明は省略する。
【００３９】
本実施形態において、モニタリングモジュール１１３は、バッファ１１１で発生したエラービットをモニタリングする。例えば、モニタリングモジュール１１３は、バッファ１１１に入力されるデータと、バッファ１１１から出力されたデータとを比較することにより、エラービットの個数をモニタリングする。例えば、モニタリングモジュール１１３は、モニタリングされたエラービットの個数を記録するエラー状態レジスタ（ｅｒｒｏｒ  ｓｔａｔｕｓ  ｒｅｇｉｓｔｅｒ）を含むように具現される。
【００４０】
このとき、バッファマネージャ１１２は、モニタリングモジュール１１３からエラービットの個数を受信し、受信したエラービットの個数を閾個数と比較し、比較結果に基づいて、バッファメモリを、バッファ１１１または第２メモリ３００に決定する。本実施形態において、バッファマネージャ１１２は、エラー状態レジスタに記録された値、即ちエラービットの個数が閾個数に逹した場合、バッファメモリを変更する。
【００４１】
他の実施形態において、モニタリングモジュール１１３は、バッファ１１１に入力されるデータと、バッファ１１１から出力されたデータとに基づいて、データ入出力速度をモニタリングする。例えば、モニタリングモジュール１１３は、モニタリングされたデータ入出力速度を記録する入出力速度レジスタを含むように具現される。本実施形態において、モニタリングモジュール１１３は、最大データ使用率（ｍａｘｉｍｕｍ  ｄａｔａ  ｕｓａｇｅ  ｒａｔｅ）をモニタリングする。例えば、モニタリングモジュール１１３は、モニタリングされた最大データ使用率を記録する最大データ使用率レジスタを含むように具現される。
【００４２】
このとき、バッファマネージャ１１２は、モニタリングモジュール１１３からデータ入出力速度を受信し、受信したデータ入出力速度を閾速度と比較し、比較結果に基づいて、バッファメモリを、バッファ１１１または第２メモリ３００に決定する。本実施形態において、バッファマネージャ１１２は、入出力速度レジスタまたは最大データ使用率レジスタに記録された値が閾速度に逹した場合、バッファメモリを変更する。
【００４３】
図５は、図４のコントローラの一例を詳細に示すブロック図である。
【００４４】
図５を参照すると、コントローラ１００ａ’は、第１メモリ１１０ａ、プロセッサ１２０、ホストインターフェース１３０、ＤＲＡＭコントローラ１４０、及び不揮発性メモリインターフェース１５０を備え、それらは、バス１６０を介して互いに通信する。例えば、図４に示す第２メモリ３００は、ＤＲＡＭであるため、コントローラ１００ａ’は、ＤＲＡＭを制御するためのＤＲＡＭコントローラ１４０を含む。
【００４５】
プロセッサ１２０は、中央処理装置やマイクロプロセッサなどを含み、コントローラ１００ａ’の全般的な動作を制御する。本実施形態において、プロセッサ１２０は、マルチコアプロセッサによって具現され、例えば、デュアルコアプロセッサまたはクワッド（ｑｕａｄ）コアプロセッサによって具現される。第１メモリ１１０ａは、プロセッサ１２０の制御によって動作し、動作メモリ、バッファメモリ、キャッシュメモリなどとして使用される。例えば、第１メモリ１１０ａは、ＤＲＡＭ、ＳＲＡＭのような揮発性メモリ、またはＰＲＡＭ、フラッシュメモリのような不揮発性メモリによって具現される。
【００４６】
第１メモリ１１０ａには、バッファマネージャ１１２ａ及びモニタリングモジュール１１３ａがローディングされる。バッファマネージャ１１２ａ及びモニタリングモジュール１１３ａは、ファームウェアまたはソフトウェアによって具現され、第１メモリ１１０ａにローディングされる。バッファマネージャ１１２ａは、図４に示すバッファマネージャ１１２の一例に対応し、モニタリングモジュール１１３ａは、図４に示すモニタリングモジュール１１３の一例に対応する。第１メモリ１１０ａは、バッファ１１１を含み、バッファ１１１は、書き込みバッファまたは読み取りバッファとして利用される。
【００４７】
ホストインターフェース１３０は、例えば、ホスト２０（図１参照）とコントローラ１００ａ’とのインターフェースを提供し、例えば、ＵＳＢ（ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ）、ＭＭＣ（ｍｕｌｔｉ−ｍｅｄｉａ  ｃａｒｄ）、ＰＣＩ−Ｅ（ＰＣＩＥｘｐｒｅｓｓ（登録商標））、ＡＴＡ（ＡＴ  Ａｔｔａｃｈｍｅｎｔ）、ＳＡＴＡ（ｓｅｒｉａｌ  ＡＴ  Ａｔｔａｃｈｍｅｎｔ）、ＰＡＴＡ（ｐａｒａｌｌｅｌ  ＡＴ  Ａｔｔａｃｈｍｅｎｔ）、ＳＣＳＩ（ｓｍａｌｌ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ  ｉｎｔｅｒｆａｃｅ）、ＳＡＳ（ｓｅｒｉａｌ  ａｔｔａｃｈｅｄ  ＳＣＳＩ）、ＥＳＤＩ（ｅｎｈａｎｃｅｄ  ｓｍａｌｌ  ｄｉｓｋ  ｉｎｔｅｒｆａｃｅ）、ＩＤＥ（ｉｎｔｅｇｒａｔｅｄ  ｄｒｉｖｅ  ｅｌｅｃｔｒｏｎｉｃｓ）などによるインターフェースを提供する。
【００４８】
不揮発性メモリインターフェース１５０は、コントローラ１００ａ’と不揮発性メモリ２００とのインターフェースを提供する。例えば、マッピングテーブルのようなメタデータ、書き込みデータ、及び読み取りデータが、不揮発性メモリインターフェース１５０を介して，コントローラ１００ａ’と不揮発性メモリ２００との間で送受信される。本実施形態において、不揮発性メモリインターフェース１５０の個数は、ストレージ装置１０ａに含まれた不揮発性メモリチップの個数、またはコントローラ１００ａ’と不揮発性メモリ２００とのチャンネル数に対応する。
【００４９】
図６は、図４のコントローラの他の例を詳細に示すブロック図である。
【００５０】
図６を参照すると、コントローラ１００ａ”は、第１メモリ１１０ａ’、プロセッサ１２０、バッファマネージャ１１２ｂ、モニタリングモジュール１１３ｂ、ホストインターフェース１３０、ＤＲＡＭコントローラ１４０、及び不揮発性メモリインターフェース１５０を含み、それらは、バス１６０を介して互いに通信する。本実施形態によるコントローラ１００ａ”は、図５に示すコントローラ１００ａ’の変形例に対応するが、重複する説明は省略する。
【００５１】
第１メモリ１１０ａ’は、バッファ１１１を含み、バッファ１１１は、書き込みバッファまたは読み取りバッファとして利用される。バッファマネージャ１１２ｂ及びモニタリングモジュール１１３ｂは、ハードウェアによって具現され、したがって、メモリ１１０ａ’の外部に配置される。バッファマネージャ１１２ｂは、図４に示すバッファマネージャ１１２の一例に対応し、モニタリングモジュール１１３ｂは、図４に示すモニタリングモジュール１１３の一例に対応する。
【００５２】
図７は、本発明の一実施形態によるストレージ装置の他の例を示すブロック図である。
【００５３】
図７を参照すると、ストレージ装置１０ｂは、コントローラ１００ｂ、不揮発性メモリ２００、及び第２メモリ３００を備え、コントローラ１００ｂは、バッファ１１１、バッファマネージャ１１２、モニタリングモジュール１１３’、及びＥＣＣ（ｅｒｒｏｒ  ｃｈｅｃｋ  ａｎｄ  ｃｏｒｒｅｃｔｉｏｎ）モジュール１１４を含む。本実施形態によるストレージ装置１０ｂは、図４に示すストレージ装置１０ａの変形例に対応するが、重複する説明は省略する。
【００５４】
ＥＣＣモジュール１１４は、バッファ１１１にバッファリングされたデータに対して、エラー検出動作及び訂正動作を遂行する。モニタリングモジュール１１３’は、ＥＣＣモジュール１１４で訂正されたエラーに基づいて、バッファ１１１で発生したエラービットの個数をモニタリングする。バッファマネージャ１１２は、モニタリングモジュール１１３’からエラービットの個数を受信し、受信したエラービットの個数を閾個数と比較し、比較結果に基づいて、バッファメモリを、バッファ１１１または第２メモリ３００に決定する。
【００５５】
図８は、図７のコントローラの一例を詳細に示すブロック図である。
【００５６】
図８を参照すると、コントローラ１００ｂ’は、第１メモリ１１０ｂ、プロセッサ１２０、ホストインターフェース１３０、ＤＲＡＭコントローラ１４０、及び不揮発性メモリインターフェース１５０を含み、それらは、バス１６０を介して互いに通信する。例えば、図７に示す第２メモリ３００は、ＤＲＡＭであるため、コントローラ１００ｂ’は、ＤＲＡＭを制御するためのＤＲＡＭコントローラ１４０を含む。本実施形態によるコントローラ１００ｂ’は、図５に示すコントローラ１００ａ’の変形例に対応するが、重複する説明は省略する。
【００５７】
第１メモリ１１０ｂには、バッファマネージャ１１２ａ、モニタリングモジュール１１３ａ’、及びＥＣＣモジュール１１４ａがローディングされる。バッファマネージャ１１２ａ、モニタリングモジュール１１３ａ’、及びＥＣＣモジュール１１４ａは、ファームウェアまたはソフトウェアによって実現され、第１メモリ１１０ｂにローディングされる。バッファマネージャ１１２ａは、図７に示すバッファマネージャ１１２の一例に対応し、モニタリングモジュール１１３ａ’は、図７に示すモニタリングモジュール１１３’の一例に対応し、ＥＣＣモジュール１１４ａは、図７に示すＥＣＣモジュール１１４の一例に対応する。第１メモリ１１０ｂは、バッファ１１１を含み、バッファ１１１は、書き込みバッファまたは読み取りバッファとして利用される。しかし、本発明は、これに限定されるものではなく、図７のバッファマネージャ１１２、モニタリングモジュール１１３ａ’、及びＥＣＣモジュール１１４のうちの少なくとも一つは、ハードウェアによって具現され、それにより、第１メモリ１１０ｂの外部に配置される。
【００５８】
図９は、本発明の一実施形態によるストレージ装置の動作方法を示すフローチャートである。
【００５９】
図９を参照すると、本実施形態によるストレージ装置の動作方法は、バッファメモリを動的に決定する方法であり、例えば、図１のストレージ装置１０、図４のストレージ装置１０ａ、図６のストレージ装置１０ｂにおいて、時系列的に遂行される段階を含む。以下では、図１及び図９を共に参照し、本実施形態によるストレージ装置の動作方法について説明する。
【００６０】
段階Ｓ１１０において、第１メモリで発生したエラービットの個数をモニタリングする。例えば、コントローラ１００は、第１メモリ１１０で発生したエラービットの個数を、周期的または非周期的にモニタリングする。例えば、ホスト２０から読み取り要請が受信されると、コントローラ１００は、第１メモリ１１０で発生したエラービットの個数をモニタリングする。また、一部の実施形態において、第１メモリで発生したエラービットの発生頻度をモニタリングする。
【００６１】
段階Ｓ１２０において、エラービットの個数を閾個数と比較する。例えば、コントローラ１００は、エラー状態レジスタに記録されたエラービットの個数が、閾個数以上であるか否かを判断する。本実施形態において、閾個数は、既定のものである。しかし、本発明は、これに限定されるものではなく、一部の実施形態において、閾個数は、動作中に動的に変更される。また、一部の実施形態において、エラービットの発生頻度を閾値と比較する。段階Ｓ１３０において、エラービットの個数が、閾個数以上であるか否かを判断する。判断の結果、エラービットの個数が、閾個数以上である場合、段階Ｓ１４０を遂行する。一方、エラービットの個数が閾個数未満である場合、段階Ｓ１５０を遂行する。
【００６２】
段階Ｓ１４０において、第２メモリに、データをバッファリングする。例えば、コントローラ１００は、第２メモリ３００をバッファメモリとして決定し、第２メモリ３００を書き込みバッファまたは読み取りバッファとして利用する。これにより、第１メモリ１１０において、ビットフリップ発生によるストレージ装置１０の信頼性低下を防止することができる。段階Ｓ１５０において、第１メモリに、データをバッファリングする。例えば、コントローラ１００は、第１メモリ１１０をバッファメモリとして決定し、第１メモリ１１０を、書き込みバッファまたは読み取りバッファとして利用する。これにより、第１メモリ１１０の高速度を利用し、ストレージ装置１０の性能を向上させることができる。
【００６３】
また、一部の実施形態において、本動作方法は、書き込みデータまたは読み取りデータの入出力速度をモニタリングする段階、及び入出力速度に基づいて、書き込みデータまたは読み取りデータをバッファリングするためのバッファメモリを、第１メモリまたは第２メモリに動的に決定する段階をさらに含む。具体的に、コントローラ１００は、第１メモリ１１０において、入力されるデータ及び出力されたデータに基づいて、データ入出力速度をモニタリングする。コントローラ１００は、モニタリングされたデータ入出力速度が閾速度以上である場合、バッファメモリを、第２メモリ３００に決定する。また、コントローラ１００は、モニタリングされたデータ入出力速度が閾速度未満である場合、バッファメモリを、第１メモリ１１０に決定する。
【００６４】
図１０は、図９の動作方法の一例によるホスト２０、コントローラ１００、及び不揮発性メモリ２００の間の動作を示すフローチャートである。ホスト２０、コントローラ１００、及び不揮発性メモリ２００は、図１のホスト２０、コントローラ１００、及び不揮発性メモリ２００にそれぞれ対応する。
【００６５】
図１０を参照すると、段階Ｓ２１０において、ホスト２０は、コントローラ１００に読み取り要請を伝送する。本実施形態において、ホスト２０は、コントローラ１００に読み取り要請と共に、論理アドレスを伝送する。本実施形態において、ホスト２０は、コントローラ１００に読み取り要請と共に、キー（ｋｅｙ）を伝送し、この場合、コントローラ１００及び不揮発性メモリ２００は、キーバリュー（ｋｅｙ−ｖａｌｕｅ）ストレージ装置を構成する。
【００６６】
段階Ｓ２２０において、コントローラ１００は、第１メモリ１１０で発生したエラービットをモニタリングする。本実施形態において、コントローラ１００は、第１メモリ１１０に入力されるデータと、第１メモリ１１０から出力されたデータとを比較することにより、エラービットの個数をモニタリングする。本実施形態において、コントローラ１００は、第１メモリ１１０に対するＥＣＣ動作の結果に基づいて、エラービットの個数をモニタリングする。
【００６７】
段階Ｓ２３０において、コントローラ１００は、エラービットの個数を閾個数と比較する。段階Ｓ２４０において、コントローラ１００は、比較結果に基づいて、読み取りバッファを決定する。例えば、コントローラ１００は、エラービットの個数が、閾個数以上である場合、第２メモリ３００を読み取りバッファとして決定する。例えば、コントローラ１００は、エラービットの個数が閾個数未満である場合、第１メモリ１１０を読み取りバッファとして決定する。
【００６８】
段階Ｓ２５０において、コントローラ１００は、読み取りコマンドを発する。本実施形態において、コントローラ１００は、マッピングテーブル（例えば、Ｌ２Ｐ（ｌｏｇｉｃａｌ−ｔｏ−ｐｈｙｓｉｃａｌ）アドレスマッピングテーブル）を参照し、ホスト２０から受信した論理アドレスを物理アドレスに変換する。本実施形態において、コントローラ１００は、マッピングテーブル（例えば、Ｋ２Ｐ（ｋｅｙ−ｔｏ−ｐｈｙｓｉｃａｌ）アドレスマッピングテーブル）を参照し、ホスト２０から受信したキーを物理アドレスに変換する。
【００６９】
段階Ｓ２６０において、コントローラ１００は、不揮発性メモリ２００に読み取りコマンドを伝送する。このとき、コントローラ１００は、読み取りコマンドと共に、物理アドレスを伝送する。段階Ｓ２７０において、不揮発性メモリ２００は、読み取り動作を遂行する。具体的に、不揮発性メモリ２００は、物理アドレスに保存されたデータを読み取る。段階Ｓ２７５において、不揮発性メモリ２００は、データをコントローラ１００に伝送する。
【００７０】
段階Ｓ２８０において、コントローラ１００は、決定された読み取りバッファに、データをバッファリングする。例えば、段階Ｓ２４０において、読み取りバッファが第１メモリ１１０に決定された場合、コントローラ１００は、第１メモリ１１０に、データをバッファリングする。例えば、段階Ｓ２４０において、読み取りバッファが第２メモリ３００に決定された場合、コントローラ１００は、第２メモリ３００に、データをバッファリングする。段階Ｓ２９０において、コントローラ１００は、ホスト２０にデータを伝送する。
【００７１】
図１１は、図９の動作方法の他の例によるホスト２０、コントローラ１００、及び不揮発性メモリ２００の間の動作を示すフローチャートである。ホスト２０、コントローラ１００、及び不揮発性メモリ２００は、図１のホスト２０、コントローラ１００、及び不揮発性メモリ２００にそれぞれ対応する。
【００７２】
図１１を参照すると、段階Ｓ３１０において、ホスト２０は、コントローラ１００に書き込み要請を伝送する。本実施形態において、ホスト２０は、コントローラ１００に書き込み要請と共に、データを伝送する。本実施形態において、ホスト２０は、コントローラ１００に書き込み要請と共に、キーバリュー対（ｋｅｙ−ｖａｌｕｅ  ｐａｉｒ）を伝送し、この場合、コントローラ１００及び不揮発性メモリ２００は、キーバリューストレージ装置を構成する。
【００７３】
段階Ｓ３２０において、コントローラ１００は、第１メモリ１１０で発生したエラービットをモニタリングする。本実施形態において、コントローラ１００は、第１メモリ１１０に入力されるデータと、第１メモリ１１０から出力されたデータとを比較することにより、エラービットの個数をモニタリングする。本実施形態において、コントローラ１００は、第１メモリ１１０に対するＥＣＣ動作の結果に基づいて、エラービットの個数をモニタリングする。
【００７４】
段階Ｓ３３０において、コントローラ１００は、エラービットの個数を閾個数と比較する。段階Ｓ３４０において、コントローラ１００は、比較結果に基づいて、書き込みバッファを決定する。例えば、コントローラ１００は、エラービットの個数が、閾個数以上である場合、第２メモリ３００を書き込みバッファとして決定する。例えば、コントローラ１００は、エラービットの個数が閾個数未満である場合、第１メモリ１１０を書き込みバッファとして決定する。しかし、本発明は、これに限定されるものではなく、段階Ｓ３２０〜Ｓ３４０は、段階Ｓ３１０の前に遂行される。これにより、コントローラ１００は、第１メモリ１１０で発生したエラービットをモニタリングし、事前に書き込みバッファを決定し、書き込み要請が受信されると、事前に決定された書き込みバッファに、データをバッファリングする。
【００７５】
段階Ｓ３５０において、コントローラ１００は、決定された書き込みバッファに、データをバッファリングする。例えば、段階Ｓ３４０において、書き込みバッファが第１メモリ１１０に決定された場合、コントローラ１００は、第１メモリ１１０に、データをバッファリングする。例えば、段階Ｓ３４０において、書き込みバッファが第２メモリ３００に決定された場合、コントローラ１００は、第２メモリ３００に、データをバッファリングする。
【００７６】
段階Ｓ３６０において、コントローラ１００は、書き込みコマンドを発する。このとき、コントローラ１００は、不揮発性メモリ２００にデータを保存するための物理アドレスを生成する。段階Ｓ３７０において、コントローラ１００は、不揮発性メモリ２００に書き込みコマンドを伝送する。このとき、コントローラ１００は、書き込みコマンドと共に、データを伝送する。段階Ｓ３８０において、不揮発性メモリ２００は、書き込み動作を遂行する。具体的には、不揮発性メモリ２００は、物理アドレスにデータを書き込む。段階Ｓ３８５において、不揮発性メモリ２００は、書き込み動作が完了したことを示す応答メッセージを、コントローラ１００に伝送する。段階Ｓ３９０において、コントローラ１００は、ホスト２０に書き込み動作が完了したことを示す応答メッセージを伝送する。
【００７７】
図１２は、本発明の一実施形態によるストレージ装置のさらに他の例を示すブロック図である。
【００７８】
図１２を参照すると、ストレージ装置３０は、コントローラ４００及び不揮発性メモリ２００を備える。また、ストレージ装置３０は、図１に示すように、第２メモリ３００、例えば、ＤＲＡＭをさらに含む。コントローラ４００は、バッファメモリ４１１、リードオンリーメモリ４１２、及び再書き込みマネージャ４１３を含む。本実施形態において、バッファメモリ４１１及びリードオンリーメモリ４１２は、単一メモリチップとして具現される。例えば、バッファメモリ４１１及びリードオンリーメモリ４１２は、ＳＲＡＭとして具現される。しかし、本発明は、これに限定されるものではなく、バッファメモリ４１１とリードオンリーメモリ４１２とは、複数のメモリチップによってそれぞれ具現される。
【００７９】
バッファメモリ４１１は、不揮発性メモリ２００に書き込むための書き込みデータ、または不揮発性メモリ２００から読み取られた読み取りデータをバッファリングする。また、バッファメモリ４１１は、ホストから受信した論理アドレスまたはキーを、不揮発性メモリ２００の物理アドレスに変換するためのマッピングテーブルを保存する。リードオンリーメモリ４１２は、コントローラ４００の制御動作を遂行するためのメタデータを保存する。例えば、リードオンリーメモリ４１２は、ファームウェアコード、ＥＣＣエンコーダ、ＥＣＣデコーダ、ＡＲＭコードのようなメタデータを保存する。
【００８０】
例えば、バッファメモリ４１１及びリードオンリーメモリ４１２は、ＳＲＡＭで具現される。上述のように、ＳＲＡＭは、データ入出力速度が速くなったり、使用環境の高度が高くなったりする場合、ＳＥＲが増大する。このため、ＳＲＡＭに保存されたデータのビットフリップが発生してしまうが、リードオンリーメモリ４１２は、ストレージ装置３０の動作に重要なメタデータを保存するので、メタデータが損傷されないように、リードオンリーメモリ４１２に対して、周期的に再書き込み動作またはリフレッシュ（ｒｅｆｒｅｓｈ）動作を遂行することが重要である。
【００８１】
再書き込みマネージャ４１３は、バッファメモリ４１１で発生したエラービットの個数、またはエラービットの頻度を閾値と比較し、比較結果に基づいて、リードオンリーメモリ４１２の再書き込み周期を決定する。本実施形態において、再書き込みマネージャ４１３は、ソフトウェアまたはファームウェアによって具現され、図１の第１メモリ１１０にローディングされる。しかし、本発明は、これに限定されるものではなく、一部の実施形態において、再書き込みマネージャ４１３は、ハードウェアによって具現される。
【００８２】
本実施形態において、再書き込みマネージャ４１３は、バッファメモリ４１１で発生したエラービットの個数が、閾個数以上である場合、再書き込み周期を減少させ、これにより、リードオンリーメモリ４１２に対する再書き込み動作の回数が増加する。次に、再書き込みマネージャ４１３は、バッファメモリ４１１で発生したエラービットの個数が閾個数未満に低減すると、再書き込み周期を増大させ、これにより、リードオンリーメモリ４１２に対する再書き込み動作の回数が再び低減される。
【００８３】
本実施形態において、再書き込みマネージャ４１３は、バッファメモリ４１１で発生したエラービットの個数が閾個数未満である場合、再書き込み周期を維持する。しかし、本発明は、これに限定されるものではなく、再書き込みマネージャ４１３は、バッファメモリ４１１で発生したエラービットの個数が閾個数未満である場合、再書き込み周期を増大させ、これにより、リードオンリーメモリ４１２に対する再書き込み動作の回数が低減される。次に、再書き込みマネージャ４１３は、バッファメモリ４１１で発生したエラービットの個数が、閾個数以上に増加すると、再書き込み周期を低減させ、これにより、リードオンリーメモリ４１２に対する再書き込み動作の回数が増加する。
【００８４】
図１３は、本発明の一実施形態によるストレージ装置のその他の例を示すブロック図である。
【００８５】
図１３を参照すると、ストレージ装置３０ａは、コントローラ４００ａ及び不揮発性メモリ２００を備える。コントローラ４００ａは、バッファメモリ４１１、リードオンリーメモリ４１２、再書き込みマネージャ４１３、及びモニタリングモジュール４１４を含む。本実施形態によるストレージ装置３０ａは、図１２に示すストレージ装置３０の一例に対応する。
【００８６】
本実施形態において、モニタリングモジュール４１４は、バッファメモリ４１１で発生したエラービットをモニタリングする。例えば、モニタリングモジュール４１４は、バッファメモリ４１１に入力されるデータと、バッファメモリ４１１から出力されたデータとを比較することにより、エラービットの個数をモニタリングする。例えば、モニタリングモジュール４１４は、モニタリングエラービットの個数を記録するエラー状態レジスタを含むように具現される。
【００８７】
このとき、再書き込みマネージャ４１３は、モニタリングモジュール４１４からエラービットの個数を受信し、受信したエラービットの個数を閾個数と比較し、比較結果に基づいて、リードオンリーメモリ４１２に対する再書き込み周期を決定する。本実施形態において、再書き込みマネージャ４１３は、エラー状態レジスタに記録された値、即ちエラービットの個数が閾個数に逹した場合、リードオンリーメモリ４１２に対する再書き込み周期を変更する。
【００８８】
本実施形態において、モニタリングモジュール４１４は、バッファメモリ４１１に入力されるデータと、バッファメモリ４１１から出力されたデータとに基づいて、データ入出力速度をモニタリングする。例えば、モニタリングモジュール４１４は、モニタリングされたデータ入出力速度を記録する入出力速度レジスタを含むように具現される。本実施形態において、モニタリングモジュール４１４は、最大データ使用率をモニタリングする。例えば、モニタリングモジュール４１４は、モニタリングされた最大データ使用率を記録する最大データ使用率レジスタを含むように具現される。
【００８９】
このとき、再書き込みマネージャ４１３は、モニタリングモジュール４１４からデータ入出力速度を受信し、受信したデータ入出力速度を閾速度と比較し、比較結果に基づいて、リードオンリーメモリ４１２に対する再書き込み周期を決定する。本実施形態において、再書き込みマネージャ４１３は、入出力速度レジスタまたは最大データ使用率レジスタに記録された値が閾速度に逹した場合、リードオンリーメモリ４１２に対する再書き込み周期を変更する。
【００９０】
図１４は、図１３のコントローラの一例を詳細に示すブロック図である。
【００９１】
図１４を参照すると、コントローラ４００ａ’は、メモリ４１０、プロセッサ４２０、ホストインターフェース４３０、及び不揮発性メモリインターフェース４４０を含み、それらは、バス４５０を介して互いに通信する。一部の実施形態において、図１３に示すストレージ装置３０ａは、ＤＲＡＭをさらに含むため、コントローラ４００ａ’は、ＤＲＡＭを制御するためのＤＲＡＭコントローラをさらに含む。
【００９２】
プロセッサ４２０は、中央処理装置やマイクロプロセッサなどを含み、コントローラ４００ａ’の全般的な動作を制御する。プロセッサ４２０は、図５に示すプロセッサ１２０と実質的に同じに具現される。メモリ４１０は、プロセッサ４２０の制御によって動作し、動作メモリ、バッファメモリ、キャッシュメモリなどとして使用される。例えば、メモリ４１０は、ＤＲＡＭ、ＳＲＡＭのような揮発性メモリ、またはＰＲＡＭ、フラッシュメモリのような不揮発性メモリによって具現される。
【００９３】
メモリ４１０には、再書き込みマネージャ４１３ａ及びモニタリングモジュール４１４ａがローディングされる。再書き込みマネージャ４１３ａ及びモニタリングモジュール４１４ａは、ファームウェアまたはソフトウェアによって実現され、メモリ４１０にローディングされる。再書き込みマネージャ４１３ａは、図１３の再書き込みマネージャ４１３の一例に対応し、モニタリングモジュール４１４ａは、図１３のモニタリングモジュール４１４の一例に対応する。メモリ４１０は、バッファリング領域４１１ａ及びリードオンリー領域４１２ａを含み、バッファリング領域４１１ａは、書き込みバッファまたは読み取りバッファとして利用される。バッファリング領域４１１ａは、図１３のバッファメモリ４１１の一例に対応し、リードオンリー領域４１２ａは、図１３のリードオンリーメモリ４１２の一例に対応する。
【００９４】
ホストインターフェース４３０は、例えば、ホスト２０（図１参照）とコントローラ４００ａ’とのインターフェースを提供し、図５のホストインターフェース１３０と実質的に同じに具現される。不揮発性メモリインターフェース４４０は、コントローラ４００ａ’と不揮発性メモリ２００とのインターフェースを提供し、図５の不揮発性メモリインターフェース１５０と実質的に同じに具現される。
【００９５】
図１５は、図１３のコントローラの他の例を詳細に示すブロック図である。
【００９６】
図１５を参照すると、コントローラ４００ａ”は、メモリ４１０’、プロセッサ４２０、再書き込みマネージャ４１３ｂ、モニタリングモジュール４１４ｂ、ホストインターフェース４３０、及び不揮発性メモリインターフェース４４０を含み、それらは、バス４５０を介して互いに通信する。本実施形態によるコントローラ４００ａ”は、図１４に示すコントローラ４００ａ’の変形例に対応するが、重複する説明は省略する。
【００９７】
メモリ４１０’は、バッファリング領域４１１ａ及びリードオンリー領域４１２ａを含み、バッファリング領域４１１ａは、書き込みバッファまたは読み取りバッファとして利用される。再書き込みマネージャ４１３ｂ及びモニタリングモジュール４１４ｂは、ハードウェアによって具現され、したがって、メモリ４１０’の外部に配置される。再書き込みマネージャ４１３ｂは、図１３に示す再書き込みマネージャ４１３の一例に対応し、モニタリングモジュール４１４ｂは、図１３に示すモニタリングモジュール４１４の一例に対応する。
【００９８】
図１６は、本発明の一実施形態によるストレージ装置の動作方法を示すフローチャートである。
【００９９】
図１６を参照すると、本実施形態によるストレージ装置の動作方法は、コントローラ内のリードオンリーメモリの再書き込み動作を動的に制御する方法であり、例えば、図１２のストレージ装置３０、または図１３のストレージ装置３０ａで時系列的に遂行される段階を含む。以下では、図１２及び図１６を共に参照し、本実施形態によるストレージ装置の動作方法について説明する。
【０１００】
段階Ｓ４１０において、バッファリング領域で発生したエラービットの個数をモニタリングする。例えば、コントローラ４００は、バッファメモリ４１１で発生したエラービットの個数を、周期的または非周期的にモニタリングする。例えば、ホストから読み取り要請または書き込み要請が受信された場合、コントローラ４００は、バッファメモリ４１１で発生したエラービットの個数をモニタリングする。また、一部の実施形態において、バッファリング領域で発生したエラービットの発生頻度をモニタリングする。
【０１０１】
段階Ｓ４２０において、エラービットの個数に基づいて、リードオンリー領域に対する再書き込み周期を動的に決定する。例えば、コントローラ４００は、エラー状態レジスタに記録されたエラービットの個数に基づいて、リードオンリーメモリ４１２に対する再書き込み周期を動的に決定する。本実施形態において、コントローラ４００は、エラービットの個数を閾個数と比較し、エラービットの個数が、閾個数以上である場合、再書き込み周期を減少させ、エラービットの個数が閾値未満に減少すると、再書き込み周期を増大させる。また、一部の実施形態において、エラービットの発生頻度に基づいて、リードオンリー領域に対する再書き込み周期を動的に決定する。さらに、一部の実施形態において、本動作方法は、書き込みデータまたは読み取りデータの入出力速度をモニタリングする段階、及び入出力速度に基づいて、再書き込み周期を動的に決定する段階をさらに含む。
【０１０２】
段階Ｓ４３０において、決定された再書き込み周期により、リードオンリー領域に対する再書き込み動作を動的に制御する。例えば、コントローラ４００は、リードオンリーメモリ４１２に対する再書き込み動作を動的に制御する。具体的に、コントローラ４００は、不揮発性メモリ２００のメタ領域２１０に保存されたメタデータを読み取り、読み取られたメタデータをリードオンリーメモリ４１２に再書き込みする。これにより、リードオンリーメモリ４１２でビットフリップが発生することを防止することができ、結果として、ストレージ装置３０の信頼性が向上する。
【０１０３】
図１７は、本発明の一実施形態によるストレージ装置の動作方法を示すフローチャートである。
【０１０４】
図１７を参照すると、本実施形態によるストレージ装置の動作方法は、図１６に示す動作方法の一例に対応する。段階Ｓ５１０において、バッファリング領域で発生したエラービットの個数をモニタリングする。段階Ｓ５２０において、エラービットの個数を閾個数と比較する。段階Ｓ５３０において、エラービットの個数が、閾個数以上であるか否かを判断する。判断の結果、エラービットの個数が、閾個数以上である場合、段階Ｓ５４０を遂行する。段階Ｓ５４０において、再書き込み周期を減少させる。一方、エラービットの個数が閾個数未満である場合、段階Ｓ５５０を遂行する。段階Ｓ５５０において、再書き込み周期を維持させる。
【０１０５】
段階Ｓ５６０において、エラービットの個数が閾個数未満であるか否かを判断する。判断の結果、エラービットの個数が閾個数未満である場合、段階Ｓ５７０を遂行する。段階Ｓ５７０において、再書き込み周期を増大させる。一方、エラービットの個数が、閾個数以上である場合、段階Ｓ５５０を遂行する。このように、本実施形態によれば、エラービットの個数と、閾個数との比較結果により、再書き込み周期を決定した後に、持続的にエラービットの個数と閾個数とを比較し、比較結果により、再書き込み周期をさらに変更する。
【０１０６】
図１８は、図１６の動作方法の一例によるコントローラ４００と不揮発性メモリ２００との間の動作を示すフローチャートである。コントローラ４００及び不揮発性メモリ２００は、図１２に示すコントローラ４００及び不揮発性メモリ２００にそれぞれ対応する。
【０１０７】
段階Ｓ６１０において、コントローラ４００は、バッファリング領域で発生したエラービットをモニタリングする。段階Ｓ６２０において、コントローラ４００は、エラービットの個数を閾個数と比較する。段階Ｓ６３０において、コントローラ４００は、比較結果に基づいて、再書き込み周期を決定する。段階Ｓ６４０において、コントローラ４００は、決定された再書き込み周期により、読み取りコマンドを発する。
【０１０８】
段階Ｓ６５０において、コントローラ４００は、不揮発性メモリ２００に読み取りコマンドを伝送する。段階Ｓ６６０において、不揮発性メモリ２００は、メタ領域２１０からメタデータを読み取る。段階Ｓ６７０において、不揮発性メモリ２００は、コントローラ４００にメタデータを伝送する。段階Ｓ６８０において、コントローラ４００は、リードオンリーメモリにメタデータを再書き込みする。
【０１０９】
本実施形態において、コントローラ４００は、再書き込み動作を遂行するたびに、不揮発性メモリ２００に対する読み取り動作を遂行し、不揮発性メモリ２００から読み取られたメタデータを、リードオンリーメモリまたはリードオンリー領域にすぐに再書き込みする。その場合、再書き込み周期に従って、段階Ｓ６４０〜Ｓ６７０が反復される。
【０１１０】
本実施形態において、コントローラ４００は、ストレージ装置に電源が印加されると、不揮発性メモリ２００に対する読み取り動作を遂行し、不揮発性メモリ２００から読み取られたメタデータをＤＲＡＭにローディングする。次に、コントローラ４００は、再書き込み動作を遂行するたびに、ＤＲＡＭにローディングされたメタデータを、リードオンリーメモリまたはリードオンリー領域に再書き込みする。その場合、再書き込み動作が反復されても、段階Ｓ６４０〜Ｓ６７０は、反復されない。
【０１１１】
図１９は、本発明の一実施形態によるネットワークシステムを示す図である。
【０１１２】
図１９を参照すると、ネットワークシステム１０００は、サーバシステム１１００及びネットワークＮＥＴを介して、サーバシステム１１００と通信する複数のターミナル１２１０〜１２３０を含む。サーバシステム１１００は、サーバ１１１０とＳＳＤ１１２０とを含む。ここで、サーバ１１１０は、上述の実施形態のホストに対応し、ＳＳＤ１１２０は、上述の実施形態のストレージ装置に対応する。
【０１１３】
本実施形態において、ＳＳＤ１１２０は、図１〜図１８を参照して説明した実施形態を利用して具現される。具体的には、ＳＳＤ１１２０は、不揮発性メモリ及びコントローラを含み、コントローラは、メモリ、例えば、ＳＲＡＭを含む。ＳＳＤ１１２０は、コントローラに含まれたメモリで発生したエラービットを、周期的または非周期的にモニタリングし、モニタリング結果に基づいて、バッファメモリを動的に決定するか、あるいはリードオンリーメモリに対する再書き込み周期を動的に決定する。
【０１１４】
図２０は、本発明の一実施形態によるネットワークシステムを示す図である。
【０１１５】
図２０を参照すると、ネットワークシステム２０００は、クライアントグループ２１００とデータセンター２２００とを備える。クライアントグループ２１００は、第１ネットワークＮＥＴ１、例えば、インターネットを介してデータセンター２２００と通信するクライアント装置Ｃを含む。データセンター２２００は、各種データを集めておいてサービスを提供する施設であり、第２ネットワークＮＥＴ２、例えば、ＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）またはイントラネット（登録商標）を介して互いに通信するアプリケーションサーバグループ２２１０、データベースサーバグループ２２２０、及びオブジェクトキャッシュサーバグループ２２３０を含む。
【０１１６】
アプリケーションサーバグループ２２１０は、アプリケーションサーバ装置ＡＳを含み、アプリケーションサーバ装置ＡＳは、クライアントグループ２１００から受信した要請を処理し、クライアントグループ２１００の要請により、データベースサーバグループ２２２０またはオブジェクトキャッシュサーバグループ２２３０にアクセスする。データベースサーバグループ２２２０は、アプリケーションサーバ装置ＡＳによって処理されたデータを保存するデータベースサーバ装置ＤＳを含む。オブジェクトキャッシュサーバグループ２２３０は、データベースサーバ装置ＤＳに保存されるデータ、またはデータベースサーバ装置ＤＳから読み取られたデータを臨時に保存するオブジェクトキャッシュサーバ装置ＯＣＳを含み、それにより、アプリケーションサーバ装置ＡＳとデータベースサーバ装置ＤＳとの間でキャッシュの機能を遂行する。
【０１１７】
本実施形態において、オブジェクトキャッシュサーバ装置ＯＣＳは、図１〜図１８を参照して説明した実施形態を利用して具現される。具体的に、オブジェクトキャッシュサーバ装置ＯＣＳのそれぞれは、不揮発性メモリ及びコントローラを含み、コントローラは、メモリ、例えば、ＳＲＡＭを含む。オブジェクトキャッシュサーバ装置ＯＣＳのそれぞれは、コントローラに含まれたメモリで発生したエラービットを、周期的または非周期的にモニタリングし、モニタリング結果に基づいて、バッファメモリを動的に決定するか、あるいはリードオンリーメモリに対する再書き込み周期を動的に決定する。
【０１１８】
図２１は、本発明の一実施形態による電子装置３０００を示すブロック図である。
【０１１９】
図２１を参照すると、電子装置３０００は、プロセッサ３１００、メモリ装置３２００、ストレージ装置３３００、モデム３４００、入出力装置３５００、及びパワーサプライ３６００を備える。本実施形態において、ストレージ装置３３００は、図１〜図１８を参照して説明した実施形態を利用して具現される。具体的に、ストレージ装置３３００は、不揮発性メモリ及びコントローラを含み、コントローラは、メモリ、例えば、ＳＲＡＭを含む。ストレージ装置３３００は、コントローラに含まれたメモリで発生したエラービットを、周期的または非周期的にモニタリングし、モニタリング結果に基づいてバッファメモリを動的に決定するか、またはリードオンリーメモリに対する再書き込み周期を動的に決定する。
【０１２０】
以上、図面と明細書とにより例示的な実施形態を開示した。本明細書において、特定の用語を使用して実施形態について説明したが、それらは、単に本発明の技術的思想について説明するための目的で使用されたものであり、意味を限定したり、本発明の技術範囲を限定したりするために使用されたものではない。従って、本技術分野の当業者は、それらから多様に変形実施することが可能である。
【産業上の利用可能性】
【０１２１】
本発明による読み取り動作及び書き込み動作の間に向上されたバッファメモリ使用効率を有する集積回路メモリ装置、及びその動作方法は、例えば、保存装置関連の技術分野に効果的に適用可能である。
【符号の説明】
【０１２２】
１０、１０ｂ、１０’、１０”、１０ａ、３０、３０ａ、３３００    ストレージ装置
２０    ホスト
１００、１００’、１００”、１００ａ、１００ａ’１００ａ”、４００、４００ａ、４００ａ’、４００ａ”    コントローラ
１１０、１１０ａ、１１０ａ’、１１０ｂ    第１メモリ（ＭＥＭ１）
１１１    バッファ
１１１ａ    読み取りバッファ
１１１ｂ    書き込みバッファ
１１２、１１２ａ、１１２ｂ    バッファマネージャ
１１３、１１３’、１１３ａ、１１３ｂ、４１４、４１４ａ、４１４ｂ    モニタリングモジュール
１１４、１１４ａ    ＥＣＣモジュール
１２０、４２０、３１００    プロセッサ
１３０、４３０    ホストインターフェース（ホスト  Ｉ／Ｆ）
１４０    ＤＲＡＭコントローラ
１５０、４４０    不揮発性メモリインターフェース（ＮＶＭ  Ｉ／Ｆ）
１６０、４５０    バス
２００    不揮発性メモリ（ＮＶＭ）
２１０    メタ領域
２２０    ストレージ領域
３００    第２メモリ（ＭＥＭ２）
４１０、４１０’    メモリ（ＭＥＭ）
４１１    バッファメモリ
４１１ａ    バッファリング領域
４１２    リードオンリーメモリ
４１２ａ    リードオンリー領域
４１３、４１３ａ、４１３ｂ    再書き込みマネージャ
１０００、２０００    ネットワークシステム
１１００    サーバシステム
１１１０    サーバ
１１２０    ＳＳＤ
１２１０、１２２０、１２３０    ターミナル
２１００    クライアントグループ
２２００    データセンター
２２１０    アプリケーションサーバグループ
２２２０    データベースサーバグループ
２２３０    オブジェクトキャッシュサーバグループ
３０００    電子装置
３２００    メモリ装置
３４００    モデム
３５００    入出力装置
３６００    パワーサプライ
ＡＳ    アプリケーションサーバ装置
Ｃ    クライアント装置
ＣＲＰ    修正読み取り経路
ＤＳ    データベースサーバ装置
ＮＥＴ    ネットワーク
ＮＥＴ１    第１ネットワーク
ＮＥＴ２    第２ネットワーク
ＮＲＰ    ノーマル読み取り経路
ＯＣＳ    オブジェクトキャッシュサーバ装置
ＳＳ、ＳＳａ、ＳＳｂ    ストレージシステム
【図１】
2019128948.tif 000003
【図２Ａ】
2019128948.tif 000004
【図２Ｂ】
2019128948.tif 000005
【図３Ａ】
2019128948.tif 000006
【図３Ｂ】
2019128948.tif 000007
【図４】
2019128948.tif 000008
【図５】
2019128948.tif 000009
【図６】
2019128948.tif 000010
【図７】
2019128948.tif 000011
【図８】
2019128948.tif 000012
【図９】
2019128948.tif 000013
【図１０】
2019128948.tif 000014
【図１１】
2019128948.tif 000015
【図１２】
2019128948.tif 000016
【図１３】
2019128948.tif 000017
【図１４】
2019128948.tif 000018
【図１５】
2019128948.tif 000019
【図１６】
2019128948.tif 000020
【図１７】
2019128948.tif 000021
【図１８】
2019128948.tif 000022
【図１９】
2019128948.tif 000023
【図２０】
2019128948.tif 000024
【図２１】
2019128948.tif 000025