(57)【要約】【課題】システムの可用性（ａｖａｉｌａｂｉｌｉｔｙ）を高く維持しつつ、欠陥が発生されたメモリ装置を復旧できるメモリシステム、コンピュータシステム、及びそれらの各々の動作方法を提供すること。【解決手段】本発明の実施形態に係るメモリシステムにおいて、ユーザ領域及びオーバープロビジョニング領域を各々含む複数のメモリ装置と、前記複数のメモリ装置の各々を制御するコントローラとを備え、前記コントローラは、前記複数のメモリ装置のうち、欠陥メモリ装置を検出する検出部と、前記可用情報に基づいて、前記複数のメモリ装置のうち、前記欠陥メモリ装置を除いた可用メモリ装置を選択する選択部と、前記欠陥メモリ装置に格納されたターゲットデータを前記可用メモリ装置の前記オーバープロビジョニング領域に移動させるプロセッサとを備えることができる。【選択図】図７
2019192221.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ領域及びオーバープロビジョニング領域を各々含む複数のメモリ装置と、
前記複数のメモリ装置の各々を制御するコントローラと、
を備え、
前記コントローラは、
前記複数のメモリ装置のうち、欠陥メモリ装置を検出する検出部と、
前記複数のメモリ装置のうち、前記欠陥メモリ装置を除いた可用メモリ装置を選択する選択部と、
前記欠陥メモリ装置に格納されたターゲットデータを前記可用メモリ装置の前記オーバープロビジョニング領域に移動させるプロセッサと、
を備えるメモリシステム。
【請求項２】
前記コントローラは、
複数のメモリ装置の各ＯＰ領域の可用情報を格納する管理部をさらに備え、
前記選択部は、前記可用情報に基づいて、前記複数のメモリ装置のうち、欠陥メモリ装置を除いた可用メモリ装置を選択する請求項１に記載のメモリシステム。
【請求項３】
前記検出部は、
前記複数のメモリ装置の各々に対応する信頼度に関する情報をモニタリングして、予め設定された閾値より低い信頼度に関する情報を有するメモリ装置を前記欠陥メモリ装置として検出する請求項１に記載のメモリシステム。
【請求項４】
前記管理部は、
前記複数のメモリ装置の各々のメモリマップを格納する請求項２に記載のメモリシステム。
【請求項５】
前記管理部は、
前記ターゲットデータが前記オーバープロビジョニング領域に移動された後、前記メモリマップをアップデートする請求項４に記載のメモリシステム。
【請求項６】
前記可用メモリ装置が複数である場合、
前記選択部は、
前記可用メモリ装置のうち、少なくとも１つのメモリ装置を選択する請求項１に記載のメモリシステム。
【請求項７】
前記欠陥メモリ装置が復旧された後、
前記プロセッサは、前記ターゲットデータを前記復旧されたメモリ装置に移動させる請求項１に記載のメモリシステム。
【請求項８】
前記検出部は、
前記復旧されたメモリ装置の信頼度に関する情報ををアップデートする請求項７に記載のメモリシステム。
【請求項９】
複数のメモリ装置の各ＯＰ領域の可用情報を格納する管理部をさらに備え、
前記選択部は、
前記可用情報に基づいて、前記複数のメモリ装置のうち、欠陥メモリ装置を除いた可用メモリ装置を選択し、
前記管理部は、
前記ターゲットデータに対応する移動動作が終了した後、前記メモリマップをアップデートする請求項７に記載のメモリシステム。
【請求項１０】
前記管理部は、
可用ＯＰ領域と不可用ＯＰ領域の両方に対する各ＯＰ領域の可用情報を格納する請求項２に記載のメモリシステム。
【請求項１１】
メモリシステムの動作方法において、
複数のメモリ装置のうち、欠陥メモリ装置を検出するステップと、
前記複数のメモリ装置のうち、前記欠陥メモリ装置を除いた可用メモリ装置を選択するステップと、
前記欠陥メモリ装置に格納されたターゲットデータを前記可用メモリ装置の前記オーバープロビジョニング領域に移動させるステップと、
を含むメモリシステムの動作方法。
【請求項１２】
前記メモリ装置の各々のオーバープロビジョニング領域の可用情報を格納するステップをさらに含み、
前記複数のメモリ装置のうち、前記欠陥メモリ装置を除いた可用メモリ装置を選択するステップは、前記可用情報に基づく請求項１１に記載のメモリシステムの動作方法。
【請求項１３】
前記検出するステップは、
前記複数のメモリ装置の各々に対応する信頼度に関する情報をモニタリングして、予め設定された閾値より低い値の信頼度に関する情報を有するメモリ装置を前記欠陥メモリ装置として検出する請求項１１に記載のメモリシステムの動作方法。
【請求項１４】
前記複数のメモリ装置の各々のメモリマップを格納するステップをさらに含む請求項１１に記載のメモリシステムの動作方法。
【請求項１５】
前記ターゲットデータが前記オーバープロビジョニング領域に移動された後、前記メモリマップをアップデートするステップをさらに含む請求項１４に記載のメモリシステムの動作方法。
【請求項１６】
前記可用メモリ装置が複数である場合、
前記可用メモリ装置を選択するステップは、
予め設定された基準にしたがって前記可用メモリ装置のうち、少なくとも１つのメモリ装置を選択する請求項１１に記載のメモリシステムの動作方法。
【請求項１７】
前記欠陥メモリ装置が復旧されて復旧メモリ装置となった場合、
前記ターゲットデータを復旧メモリ装置に移動させるステップをさらに含む請求項１１に記載のメモリシステムの動作方法。
【請求項１８】
前記復旧メモリ装置に対応する信頼度に関する情報をアップデートするステップをさらに含む請求項１７に記載のメモリシステムの動作方法。
【請求項１９】
前記ターゲットデータに対応する移動動作が終了した後、前記メモリマップをアップデートするステップをさらに含む請求項１７に記載のメモリシステムの動作方法。
【請求項２０】
複数のメモリシステムと、
前記複数のメモリシステムの各々と通信するメモリシステム管理部と、
を備え、
前記複数のメモリシステムの各々は、
ユーザ領域及びオーバープロビジョニング領域を各々含む複数のメモリ装置及び前記複数のメモリ装置の各々を制御するコントローラを備え、
前記コントローラは、
前記複数のメモリ装置の各々に対応する信頼度に関する情報ををモニタリングして、予め設定された閾値より小さい値の信頼度に関する情報を有するメモリ装置を前記欠陥メモリ装置として検出する検出部と、
前記複数のメモリ装置の各々の前記オーバープロビジョニング領域の可用情報を格納し、前記複数のメモリ装置の各々のメモリマップを格納する管理部と、
前記可用情報に基づいて、前記複数のメモリ装置のうち、前記欠陥メモリ装置を除いた可用メモリ装置を選択する選択部と、
前記欠陥メモリ装置に格納されたターゲットデータを前記可用メモリ装置の前記オーバープロビジョニング領域に移動させるプロセッサと、
を備えるコンピュータシステム。
【請求項２１】
前記ＭＭＵは、
前記複数のメモリ装置の各々の信頼度に関する情報、前記可用情報及び前記メモリマップを前記複数のメモリシステムの各々から伝達されて格納する請求項２０に記載のコンピュータシステム。
【請求項２２】
第１のメモリシステムに前記欠陥メモリ装置が発生され、前記可用メモリ装置が存在しない場合、
前記第１のメモリシステムは、ターゲットデータを前記ＭＭＵに伝達し、
前記ＭＭＵは、前記可用情報に基づいて、前記ターゲットデータを第２のメモリシステムに伝達し、
前記第２のメモリシステムは、前記ＭＭＵから伝達された前記ターゲットデータを前記可用メモリ装置の前記オーバープロビジョニング領域に格納する請求項２１に記載のコンピュータシステム。
【請求項２３】
前記欠陥メモリ装置が復旧された場合、
前記第２のメモリシステムは、前記ターゲットデータを前記オーバープロビジョニング領域で読み出して前記ＭＭＵに伝達し、
前記ＭＭＵは、前記ターゲットデータを前記第１のメモリシステムに伝達し、
前記第１のメモリシステムは、前記ターゲットデータを復旧メモリ装置に格納する請求項２０に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、メモリシステムに関し、より具体的には、データ処理のためのメモリシステム及びメモリシステムの動作方法に関する。
【背景技術】
【０００２】
データは、第４次産業革命時代において企業等のビジネスに最も重要な資産となっており、これにより、大規模データを早く送信及び分析するように支援する最新技術に対する需要が次第に増加している。例えば、人工知能、自律走行、ロボット、ヘルスケア、仮想現実（ｖｉｒｔｕａｌ  ｒｅａｌｉｔｙ、ＶＲ）／拡張現実（ａｕｇｍｅｎｔｅｄ  ｒｅａｌｉｔｙ、ＡＲ）、スマートホームなどが拡大されるにつれて、サーバやデータセンタに対する需要の増加が予想されている。
【０００３】
レガシ（ｌｅｇａｃｙ）データセンタは、資源等（例えば、コンピュータ、ネットワーク、ストレージ）を１つの装備内に含める構造であった。しかしながら、未来の大容量データセンタは、資源を各々別に構成し、論理的に資源を再構成する構造を有することができる。例えば、大容量データセンタは、資源を各々ラック（ｒａｃｋ）水準でモジュール化し、用途に応じて資源を再構成して供給できる構造を有することができる。したがって、未来の大容量データセンタに使用するのに適した統合型ストレージまたはメモリデバイスが求められている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、システムの可用性（ａｖａｉｌａｂｉｌｉｔｙ）を高く維持しつつ、欠陥が発生されたメモリ装置を復旧できるメモリシステム、コンピュータシステム、及びそれらの各々の動作方法について提案する。
【課題を解決するための手段】
【０００５】
本発明の実施形態に係るメモリシステムにおいて、ユーザ領域及びオーバープロビジョニング領域を各々含む複数のメモリ装置と、前記複数のメモリ装置の各々を制御するコントローラとを備え、前記コントローラは、前記複数のメモリ装置のうち、欠陥メモリ装置を検出する検出部と、前記複数のメモリ装置の各々の前記オーバープロビジョニング領域の可用情報を格納する管理部、前記可用情報に基づいて、前記複数のメモリ装置のうち、前記欠陥メモリ装置を除いた可用メモリ装置を選択する選択部と、前記欠陥メモリ装置に格納されたターゲットデータを前記可用メモリ装置の前記オーバープロビジョニング領域に移動させるプロセッサとを備えることができる。
【０００６】
本発明の実施形態に係るメモリシステムの動作方法において、複数のメモリ装置のうち、欠陥メモリ装置を検出するステップと、前記複数のメモリ装置の各々のオーバープロビジョニング領域の可用情報を格納するステップと、前記可用情報に基づいて、前記複数のメモリ装置のうち、前記欠陥メモリ装置を除いた可用メモリ装置を選択するステップと、前記欠陥メモリ装置に格納されたターゲットデータを前記可用メモリ装置の前記オーバープロビジョニング領域に移動させるステップとを含むことができる。
【０００７】
本発明の実施形態に係るコンピュータシステムにおいて、複数のメモリシステムと、前記複数のメモリシステムの各々と通信するメモリシステム管理部とを備え、前記複数のメモリシステムの各々は、ユーザ領域及びオーバープロビジョニング領域を各々含む複数のメモリ装置及び前記複数のメモリ装置の各々を制御するコントローラを備え、前記コントローラは、前記複数のメモリ装置の各々に対応する信頼度をモニタリングして、予め設定された閾値より小さい信頼度を有するメモリ装置を前記欠陥メモリ装置として検出する検出部、前記複数のメモリ装置の各々の前記オーバープロビジョニング領域の可用情報を格納し、前記複数のメモリ装置の各々のメモリマップを格納する管理部、前記可用情報に基づいて、前記複数のメモリ装置のうち、前記欠陥メモリ装置を除いた可用メモリ装置を選択する選択部、及び前記欠陥メモリ装置に格納されたターゲットデータを前記可用メモリ装置の前記オーバープロビジョニング領域に移動させるプロセッサを備えることができる。
【発明の効果】
【０００８】
本発明の実施形態によれば、システムの可用性を高く維持しつつ、欠陥が発生されたメモリ装置を復旧でき、全体的なシステムの効率性を増加させることができる。
【図面の簡単な説明】
【０００９】
【図１】データ処理システムを示した図である。
【図２】本発明の実施形態に係るコンピュータラックの構造を概略的に示した図である。
【図３】本発明の実施形態に係るコンピュータラックのブロック構成を示した図である。
【図４】本発明の実施形態に係る演算ボードの構成を示した図である。
【図５】本発明の実施形態に係るメモリボードの構成を概略的に示した図である。
【図６】本発明の実施形態に係るメモリ装置の構造を示した図である。
【図７】本発明の一実施形態に係るメモリシステムの構造を示した図である。
【図８】本発明の一実施形態に係るデータコントローラの動作を示したフローチャートである。
【図９】本発明の一実施形態に係るデータコントローラの動作を示したフローチャートである。
【図１０】本発明の一実施形態に係るコンピュータシステムの構造を示した図である。
【図１１】本発明の一実施形態に係るコンピュータシステムの動作を示したフローチャートである。
【図１２】本発明の一実施形態に係るコンピュータシステムの動作を示したフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明に係る好ましい実施形態を添付した図面を参照して説明する。下記の説明では、本発明に係る動作を理解するのに必要な部分のみが説明され、それ以外の部分の説明は、本発明の要旨を濁さないように省略されるであろうということに留意すべきである。
【００１１】
本発明の実施形態等は、メモリシステムの使用を維持しつつ、バッドメモリ装置を復旧できるメモリシステムに関連する。
【００１２】
図１は、データ処理システム１０を示した図である。図１に示すように、データ処理システム１０は、複数のコンピュータラック（ｃｏｍｐｕｔｉｎｇ  ｒａｃｋｓ、２０）と管理インターフェース（ｍａｎａｇｅｍｅｎｔ  ｉｎｔｅｒｆａｃｅ、３０）、そして、これらの間の通信が可能なようにするネットワーク（ｎｅｔｗｏｒｋ、４０）を備えることができる。このようなラックスケール構造（ｒａｃｋ−ｓｃａｌｅ  ａｒｃｈｉｔｅｃｔｕｒｅ）を有するデータ処理システム１０は、大容量データ処理のためのデータセンタなどに使用されることができる。
【００１３】
複数のコンピュータラック２０は、１つのコンピュータシステムを実現できる。このようなコンピュータラック２０の例示的な構成及び動作についての説明は、後述されるであろう。
【００１４】
管理インターフェース３０は、ユーザがデータ処理システム１０を調整、運営、または管理できるようにするインタラクティブインターフェース（ｉｎｔｅｒａｃｔｉｖｅ  ｉｎｔｅｒｆａｃｅ）を提供できる。管理インターフェース３０は、コンピュータ、マルチプロセッサシステム、サーバ、ラックマウント（ｒａｃｋ−ｍｏｕｎｔ）サーバ、ボード（ｂｏａｒｄ）サーバ、ラップトップ（ｌａｐ−ｔｏｐ）コンピュータ、ノートブックコンピュータ、タブレットコンピュータ、ウェアラブルコンピュータシステム、ネットワーク機器、ウェブ機器、分散コンピュータシステム、プロセッサ基盤システム、及び／又は消費者電子機器を備える、任意類型の演算デバイスとして実現されることができる。
【００１５】
一部の実施形態等において、管理インターフェース３０は、コンピュータラック２０により行われることができる演算機能や、管理インターフェース３０により行われることができるユーザインターフェース機能を有する分散システムにより実現されることができる。他の一部の実施形態等において、管理インターフェース３０は、ネットワーク４０を介して分散された多重コンピュータシステムにより構成され、クラウド（ｃｌｏｕｄ）として動作する仮想サーバ（ｖｉｒｔｕａｌ  ｓｅｒｖｅｒ）により実現されることができる。管理インターフェース３０は、プロセッサ、入力／出力サブシステム、メモリ、データストレージデバイス、及び通信回路を備えることができる。
【００１６】
ネットワーク４０は、コンピュータラックと管理インターフェース３０との間及び／又はコンピュータラック間でのデータを送受信できる。ネットワーク４０は、適切な数の様々な有線及び／又は有線ネットワークにより実現されることができる。例えば、ネットワーク４０は、有線または無線ＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ＷＡＮ（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）セルラネットワーク、及び／又はインターネットのように公開的にアクセス可能なグローバルネットワーク（ｐｕｂｌｉｃｌｙ−ａｃｃｅｓｓｉｂｌｅ、ｇｌｏｂａｌ  ｎｅｔｗｏｒｋ）により実現されるか、これを含むことができる。さらに、ネットワーク４０は、補助的なコンピュータ、ルータ（ｒｏｕｔｅｒ）、及びスイッチ等のような適切な数の補助的なネットワークデバイスを含むことができる。また、ネットワーク４０は、ＣＣＩＸ（Ｃａｃｈｅ  Ｃｏｈｅｒｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  ｆｏｒ  ａｃｃｅｌｅｒａｔｏｒｓ）及びＧＥＮ−Ｚのようなインターフェース規格にしたがって連結されることができる。
【００１７】
図２は、本発明の実施形態に係るコンピュータラック構造を概略的に示した図である。
【００１８】
図２に示すように、コンピュータラック２０は、構成要素等の構造、形態、及び呼称などに制限されるものではないが、様々な形態の構成要素を備えることができる。例えば、コンピュータラック２０は、複数のドロワー（ｄｒａｗｅｒ）２１〜２９を備えることができる。複数のドロワー２１〜２９の各々は、複数のボード（ｂｏａｒｄ）を備えることができる。
【００１９】
様々な実施形態において、コンピュータラック２０は、適切な数の演算ボード（ｃｏｍｐｕｔｅ  ｂｏａｒｄ）、メモリボード（ｍｅｍｏｒｙ  ｂｏａｒｄ）、及び／又は相互接続ボード（ｉｎｔｅｒｃｏｎｎｅｃｔ  ｂｏａｒｄ）の組み合わせにより実現されることができる。ここでは、コンピュータラック２０が複数のボードの組み合わせにより実現されることと定義されているが、これに代えて、ドロワー、モジュール、トレイ、ボード、シャシ、またはユニットなどの様々な名前で実現されることと定義され得ることに留意すべきである。このようなコンピュータラック２０の構成要素等は、実現の都合上、機能別に分類及び区別される構造を有することができる。制限されるものではないが、コンピュータラック２０は、上端から相互接続ボード、演算ボード、メモリボードの順序に分類された構造を有することができる。このようなコンピュータラック２０及びこれにより実現されるコンピュータシステムは、「ラックスケールシステム（ｒａｃｋ−ｓｃａｌｅ  ｓｙｓｔｅｍ）」または「分類システム（ｄｉｓａｇｇｒｅｇａｔｅｄ  ｓｙｓｔｅｍ）」として命名されることができる。
【００２０】
様々な実施形態において、コンピュータシステムは、１つのコンピュータラック２０により実現されることができる。これに代えて、コンピュータシステムは、２個以上のコンピュータラックに含まれる全ての構成要素により実現されるか、２個以上のコンピュータラックに含まれる一部の構成要素等の組み合わせにより実現されるか、１つのコンピュータラック２０に含まれる一部の構成要素等により実現されることができる。
【００２１】
様々な実施形態において、コンピュータシステムは、コンピュータラック２０に含まれる適切な数の演算ボード、メモリボード、及び相互接続ボード（ｉｎｔｅｒｃｏｎｎｅｃｔ  ｂｏａｒｄ）の組み合わせにより実現されることができる。例えば、コンピュータシステム２０Ａは、２個の演算ボード、３個のメモリボード、及び１個の相互接続ボードにより実現されることができる。他の例として、コンピュータシステム２０Ｂは、３個の演算ボード、２個のメモリボード、及び１個の相互接続ボードにより実現されることができる。さらに他の例として、コンピュータシステム２０Ｃは、１個の演算ボード、４個のメモリボード、及び１個の相互接続ボードにより実現されることができる。
【００２２】
例えは、図２では、コンピュータラック２０が適切な数の演算ボード、メモリボード、及び／又は相互接続ボードの組み合わせにより実現される場合を示しているが、コンピュータラック２０は、通常のサーバなどで確認されることができる、パワーシステム、冷却システム、入力／出力デバイス等のような追加的な構成要素を備えることができる。
【００２３】
図３は、本発明の実施形態に係るコンピュータラック２０のブロック構成を示した図である。
【００２４】
図３に示すように、コンピュータラック２０は、複数の演算ボード（ｃｏｍｐｕｔｅ  ｂｏａｒｄｓ、２００）、複数のメモリボード（ｍｅｍｏｒｙ  ｂｏａｒｄｓ、４００）、及び相互接続ボード（ｉｎｔｅｒｃｏｎｎｅｃｔ  ｂｏａｒｄ、３００）を備えることができる。複数の演算ボード２００は、プール演算ボード（ｐｏｏｌｅｄ  ｃｏｍｐｕｔｅ  ｂｏａｒｄｓ）、プール演算システムなどと呼ばれることができる。複数のメモリボードは、プールメモリボード（ｐｏｏｌｅｄ  ｍｅｍｏｒｙ  ｂｏａｒｄ）、プールメモリシステムなどと呼ばれることができる。ここでは、コンピュータシステムが複数のボードの組み合わせにより実現されることと定義されているが、これに代えて、ドロワー、モジュール、トレイ、ボード、シャシ、またはユニットなどの様々な名前で実現されることと定義され得ることに留意すべきである。
【００２５】
複数の演算ボード２００の各々は、１つまたはそれ以上のプロセッサ、プロセシング／コントロール回路、または中央処理処置（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ、ＣＰＵ）のようなプロセシング要素を備えることができる。
【００２６】
複数のメモリボード４００の各々は、複数の揮発性メモリ（ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ）及び／又は不揮発性メモリ（ｎｏｎｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ）などのような様々な形態のメモリ装置を備えることができる。例えば、複数のメモリボード４００の各々は、複数のＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、フラッシュメモリ（ｆｌａｓｈ  ｍｅｍｏｒｙ）、メモリカード、ハードディスクドライブ（ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ、ＨＤＤ）、ソリッドステートドライブ（ｓｏｌｉｄ  ｓｔａｔｅ  ｄｒｉｖｅ、ＳＳＤ）、及び／又はこれらの組み合わせを含むことができる。
【００２７】
複数のメモリボード４００の各々は、演算ボード２００の各々に含まれる１つ以上のプロセシング要素により分割されるか、割り当てられるか、または指定されて使用されることができる。また、複数のメモリボード４００の各々は、演算ボード２００により初期化及び／又は実行されることができる１つ以上のオペレーティングシステム（ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ、ＯＳ）などを格納することができる。
【００２８】
相互接続ボード３００は、演算ボード２００の各々に含まれる１つ以上のプロセシング要素により分割、割当、または指定されて使用されることができる、任意の通信回路、デバイス、またはこれらの組み合わせにより実現されることができる。例えば、相互接続ボード３００は、任意個数のネットワークインターフェースポート、カード、またはスイッチとして実現されることができる。相互接続ボード３００は、通信を実行させるための、１つ以上の有線または有線通信技術等と関連したプロトコルを使用することができる。例えば、相互接続ボード３００は、ＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）、ＱＰＩ（ＱｕｉｃｋＰａｔｈ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）、イーサネット（Ｅｔｈｅｒｎｅｔ）（登録商標）などのようなプロトコルにしたがって演算ボード２００とメモリボード４００との間の通信を支援できる。さらに、相互接続ボード３００は、ＣＣＩＸ（Ｃａｃｈｅ  Ｃｏｈｅｒｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  ｆｏｒ  ａｃｃｅｌｅｒａｔｏｒｓ）及びＧＥＮ−Ｚのようなインターフェース規格にしたがって演算ボード２００と連結されることができる。
【００２９】
図４は、本発明の実施形態に係る演算ボード２００の構成を示した図である。
【００３０】
図４に示すように、演算ボード２００は、１つ以上の中央処理処置（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ、ＣＰＵ、２１０）、１つ以上のローカルメモリ（ｌｏｃａｌ  ｍｅｍｏｒｙ、２２０）、及び入出力（ｉｎｐｕｔ／ｏｕｔｐｕｔ、Ｉ／Ｏ）インターフェース（ｉｎｔｅｒｆａｃｅ、２３０）を備えることができる。
【００３１】
ＣＰＵ（２１０）は、図３に示された複数のメモリボード４００の中で使用するための少なくとも１つのメモリボードを分割、割当、または指定することができる。また、ＣＰＵ（２１０）は、分割、割当、または指定された少なくとも１つのメモリボードを初期化し、これらを介してデータの読み出し動作、書き込み（または、プログラム）動作などを行うことができる。
【００３２】
ローカルメモリ２２０は、ＣＰＵ（２１０）の動作実行中に必要なデータを格納することができる。様々な実施形態において、１つのローカルメモリ２２０は、１つのＣＰＵ（２１０）に一対一に対応する構造を有することができる。
【００３３】
Ｉ／Ｏインターフェース２３０は、図３の相互接続ボード３００を介してのＣＰＵ（２１０）とメモリボード４００との間でのインターフェーシングを支援できる。Ｉ／Ｏインターフェース２３０は、１つ以上の有線または有線通信技術等と関連したプロトコルを使用して、ＣＰＵ（２１０）から相互接続ボード３００への送信データを出力し、相互接続ボード３００からＣＰＵ（２１０）への受信データを入力できる。例えば、Ｉ／Ｏインターフェース２３０は、ＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）、ＱＰＩ（ＱｕｉｃｋＰａｔｈ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）、イーサネット（Ｅｔｈｅｒｎｅｔ）などのようなプロトコルにしたがってＣＰＵ（２１０）と相互接続ボード３００との間の通信を支援できる。さらに、Ｉ／Ｏインターフェース２３０は、ＣＣＩＸ（Ｃａｃｈｅ  Ｃｏｈｅｒｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  ｆｏｒ  ａｃｃｅｌｅｒａｔｏｒｓ）及びＧＥＮ−Ｚのようなインターフェース規格にしたがってＣＰＵ（２１０）と相互接続ボード３００との間の通信を支援できる。
【００３４】
図５は、本発明の実施形態に係るメモリボード４００の構成を示した図である。
【００３５】
図５に示すように、メモリボード４００は、コントローラ４１０と複数のメモリ装置４２０とを備えることができる。複数のメモリ装置４２０は、コントローラ４１０の制御によってデータを格納（または、書き込み）し、格納されたデータを出力（または、読み出し）することができる。複数のメモリ装置４２０は、複数の第１のメモリ装置４２０Ａ、複数の第２のメモリ装置４２０Ｂ、及び複数の第３のメモリ装置４２０Ｃを備えることができる。複数の第１のメモリ装置４２０Ａ、複数の第２のメモリ装置４２０Ｂ、及び複数の第３のメモリ装置４２０Ｃは、互いに同じ特性を有することができ、互いに異なる特性を有することもできる。様々な実施形態等において、複数の第１のメモリ装置４２０Ａ、複数の第２のメモリ装置４２０Ｂ、及び複数の第３のメモリ装置４２０Ｃは、格納容量（ｃａｐａｃｉｔｙ）またはレイテンシ（ｌａｔｅｎｃｙ）の側面で互いに異なる特性を有するメモリ装置でありうる。
【００３６】
コントローラ４１０は、データコントローラ（ｄａｔａ  ｃｏｎｔｒｏｌｌｅｒ、５１０）、メモリコントローラ（ｍｅｍｏｒｙ  ｃｏｎｔｒｏｌｌｅｒ、ＭＣ、５２０Ａ−５２０Ｃ）、及びＩ／Ｏインターフェース５３０を備えることができる。
【００３７】
データコントローラ５１０は、図３の演算ボード２００と複数のメモリ装置４２０との間で送受信されるデータを制御できる。例えば、書き込み要請またはコマンドに応答して、データコントローラ５１０は、演算ボード２００からの書き込みのためのデータを受信し、このデータを複数のメモリ装置４２０のうち、該当するメモリに書き込む書き込み動作を制御できる。他の例として、読み出し要請またはコマンドに応答して、データコントローラ５１０は、演算ボード２００から複数のメモリ装置４２０のうち、特定メモリに格納されたデータを読み出し、読み出しデータを演算ボード２００のうち、該当する演算ボードに出力する読み出し動作を制御できる。
【００３８】
メモリコントローラ５２０Ａ〜５２０Ｃは、データコントローラ５１０と複数のメモリ装置４２０との間に位置し、これらの間でのインターフェーシングを支援できる。メモリコントローラ５２０は、複数のメモリ装置４２０に含まれる複数の第１のメモリ装置４２０Ａ、複数の第２のメモリ装置４２０Ｂ、及び複数の第３のメモリ装置４２０Ｃの各々に対応するメモリコントローラ（ｉＭＣ０、５２０Ａ）、メモリコントローラ（ｉＭＣ１、５２０Ｂ）、メモリコントローラ（ｉＭＣ２、５２０Ｃ）を備えることができる。メモリコントローラ（ｉＭＣ０、５２０Ａ）は、データコントローラ５１０と複数の第１のメモリ装置４２０Ａとの間に位置し、これらの間でのデータ送受信を支援できる。メモリコントローラ（ｉＭＣ１、５２０Ｂ）は、データコントローラ５１０と複数の第２のメモリ装置４２０Ｂとの間に位置し、これらの間でのデータ送受信を支援できる。メモリコントローラ（ｉＭＣ２、５２０Ｃ）は、データコントローラ５１０と複数の第３のメモリ装置４２０Ｃとの間に位置し、これらの間でのデータ送受信を支援できる。例えば、複数の第３のメモリ装置４２０Ｃがフラッシュメモリである場合、メモリコントローラ（ｉＭＣ２、５２０Ｃ）は、フラッシュコントローラ（ｆｌａｓｈ  ｃｏｎｔｒｏｌｌｅｒ）でありうる。複数の第１のメモリ装置ないし複数の第３のメモリ装置４２０Ａ〜４２０Ｃは、説明の便宜のための例示であり、これに制限されるものではない。
【００３９】
Ｉ／Ｏインターフェース５３０は、図３の相互接続ボード３００を介してのデータコントローラ５１０と演算ボード２００との間でのインターフェーシングを支援できる。Ｉ／Ｏインターフェース５３０は、１つ以上の有線または有線通信技術等と関連したプロトコルを使用して、データコントローラ５１０から相互接続ボード３００への送信データを出力し、相互接続ボード３００からデータコントローラ５１０への受信データを入力できる。Ｉ／Ｏインターフェース５３０は、メモリ装置等を容易に連結するか、連結を解除できるホットプラグ（ｈｏｔ−ｐｌｕｇ）を支援する直列インターフェースでありうる。例えば、Ｉ／Ｏインターフェース５３０は、ＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）、ＱＰＩ（ＱｕｉｃｋＰａｔｈ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）、イーサネット（Ｅｔｈｅｒｎｅｔ）などのようなプロトコルにしたがってデータコントローラ５１０と相互接続ボード３００との間の通信を支援できる。
【００４０】
今日、大容量のデータを処理するために、図２〜図５を介して説明されたように、複数の演算ボード２００及び複数のメモリボード４００を必要とする。さらに、大容量のデータを格納するために、複数のメモリボード４００の各々は、複数のメモリ装置４２０を備えることができる。
【００４１】
ただし、複数のメモリ装置のうち、いずれか１つに欠陥が発生された場合、欠陥が発生されたメモリ装置（以下、欠陥メモリ装置）を復旧するために、全体システムが中断され得る。また、欠陥メモリ装置に格納されたデータは、保護を受けることができない場合がある。本発明は、複数のメモリ装置のうち、欠陥メモリ装置が発生されても、ほとんどのシステムの使用を維持しつつ、欠陥メモリ装置を復旧できるメモリシステム７００、コンピュータシステム１０００、及びそれらの各々の動作方法を提案する。
【００４２】
図６は、本発明の実施形態に係るメモリ装置６００の構造を示した図である。図６に示されたメモリ装置６００は、図５に示された複数のメモリ装置４２０の各々と対応することができる。
【００４３】
メモリ装置６００は、一般的に、データが格納されるユーザ領域６１０と特別な事情がない限り、使用されないオーバープロビジョニング（ｏｖｅｒ−ｐｒｏｖｉｓｉｏｎｉｎｇ）領域（以下、ＯＰ領域、６３０）を含むことができる。
【００４４】
ＯＰ領域６３０は、メモリ装置の寿命を増加させるために備えられることができる。メモリ装置６００は、データが格納される複数のメモリセルを含むことができる。さらに、複数のメモリセルの各々は、一定の寿命を有することができる。例えば、メモリセルにデータが１００００回書き込まれると、当該メモリセルの寿命は終了することができる。したがって、メモリセルの寿命を保存するための方法のうちの１つとして、メモリセルにデータが８０００回書き込まれると、当該メモリセルにそれ以上書き込み動作が行われることを防き、読み出し動作のみが当該メモリセルに対して行われ得る。上記のような方法にてメモリセルの寿命を保存するためには、究極的に複数のメモリセルの各々は、なるべく均等に使用されなければならない。すなわち、特定メモリセルが繰り返し的に使用される場合、当該メモリセルの寿命は急速に減少されるであろう。ただし、ＯＳ動作を行うためのデータが格納されたメモリセルあるいは頻繁に使用されるデータが格納されたメモリセルのように、使用が集中するメモリセルが存在する場合、当該メモリセルの過度な使用を防止するために、メモリ装置６００の余分領域が存在し得る。すなわち、当該メモリセルの過度な使用を防止するために、本来当該メモリセルに格納されるべきデータが余分領域に格納され得る。このような余分領域がＯＰ領域６３０である。一実施形態において、メモリ装置は、特定割合のＯＰ領域６３０を有することができる。
【００４５】
図７〜図１２を介して説明される本発明は、前述したＯＰ領域６３０を活用して、欠陥メモリ装置発生の際、無欠性を維持しつつ、欠陥メモリ装置を復旧できるメモリシステム７００、コンピュータシステム１０００、及びそれらの各々の動作方法を提案する。
【００４６】
図７は、本発明の一実施形態に係るメモリシステム７００の構造を示した図である。図５を参照すれば、メモリシステム７００は、メモリボード４００と対応することができる。
【００４７】
メモリシステム７００は、コントローラ７１０及び複数のメモリ装置７２０を備えることができる。コントローラ７１０は、図５に示されたコントローラ４１０と対応することができ、複数のメモリ装置７２０は、図５に示された複数のメモリ装置４２０と対応することができる。一実施形態において、複数のメモリ装置７２０に含まれたメモリ装置は、各々同種メモリ装置を含むことができる。ただし、これは、説明の便宜のためであり、これに制限されるものではない。他の実施形態において、複数のメモリ装置７２０に含まれたメモリ装置は、異種メモリ装置を含むことができ、同種メモリ装置を含むこともでき、これらの他の組み合わせを有することもできる。
【００４８】
コントローラ７１０は、データコントローラ７３０、Ｉ／Ｏインターフェース７５０、及びメモリコントローラ７６０を備えることができる。図５を参照すれば、データコントローラ７３０は、図５に示されたデータコントローラ５１０と対応し、Ｉ／Ｏインターフェース７５０は、図５に示されたＩ／Ｏインターフェース５３０と対応することができる。そして、メモリコントローラ７６０は、図５に示された複数のメモリコントローラ５２０Ａ〜５２０Ｃの各々と対応することができる。
【００４９】
図５を参照して、Ｉ／Ｏインターフェース７５０は、図３の相互接続ボード３００を介してのデータコントローラ７３０と演算ボード２００との間でのインターフェーシングを支援できる。また、メモリコントローラ７６０は、データコントローラ７３０と複数のメモリ装置７２０との間に位置し、これらの間で各々のインターフェーシングを支援できる。前述したように、説明の便宜のために、図７に示された複数のメモリ装置７２０は、同じまたは同種のメモリ装置を含むことができる。したがって、複数のメモリ装置７２０に含まれた各々異なるメモリ装置間のインターフェーシングを支援するメモリコントローラ７６０は、同じメモリコントローラまたは同種のメモリコントローラを含むことができる。メモリコントローラ７６０に含まれた同種のメモリコントローラは、コントローラ７１０に含まれることができる。他の実施形態において、複数のメモリ装置７２０内のメモリ装置が他の類型の装置であるか、一種類のメモリ装置でない場合、複数のメモリ装置７２０に含まれた他の種類のメモリ装置等と関連した他の類型のインターフェーシングを支援するために、他の類型のメモリコントローラまたは一種類でないメモリコントローラがメモリコントローラ７６０に含まれ得る。
【００５０】
Ｉ／Ｏインターフェース７５０は、メモリ装置を容易に連結したり、連結を解除できるホットプラグ（ｈｏｔ−ｐｌｕｇ）を支援する直列インターフェースでありうる。
【００５１】
データコントローラ７３０は、検出部７３３、データ管理部７３５、選択部７３７、及びプロセッサ７３９を備えることができる。
【００５２】
検出部７３３は、複数のメモリ装置７２０の各々がどれほど信頼性があるかをモニタリングでき、さらに、複数のメモリ装置７２０のうち、欠陥メモリ装置を検出できる。例えば、データコントローラ７３０に含まれたＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ）部（図示せず）は、複数のメモリ装置７２０の各々から伝達されたデータに対してＥＣＣ復号動作を行うことができ、ＥＣＣ復号動作を介して伝達されたデータに対するエラーデータを判断できる。ＥＣＣ部（図示せず）は、判断されたエラーデータに関する情報を検出部７３３に伝達することができ、検出部７３３は、複数のメモリ装置７２０に対応してエラーデータを管理できる。そして、検出部７３３は、データのエラーの数に基づいて複数のメモリ装置７２０のうち、欠陥メモリ装置を検出できる。欠陥メモリ装置は、当該メモリ装置に対応する信頼度が予め設定された閾値より低くなった状態で判断されるメモリ装置を意味する。例えば、信頼度は、当該メモリ装置で発生されたエラーデータ数に基づいて判断されることができ、特定メモリ装置でエラーデータの数が予め設定された閾値より高い場合、検出部７３３は、当該メモリ装置を欠陥メモリとして判断することができる。ただし、これは、１つの実施形態に過ぎず、これに制限されるものではない。予め設定された閾値または予め設定された基準のようなパラメータと関連してここで使用された「予め設定された」という表現は、プロセスまたはアルゴリズムでパラメータが使用される前にパラメータ値が決定されるということを意味する。一部の実施形態において、パラメータに対する値は、プロセスまたはアルゴリズムが始まる前に決定されることができる。他の実施形態において、パラメータに対する値は、プロセスまたはアルゴリズムが行われる間に決定されるが、パラメータは、プロセスまたはアルゴリズムで使用される前に決定されることができる。
【００５３】
さらに、検出部７３３は、複数のメモリ装置６２０の各々に対応する前記決定されたエラーデータ情報を格納することができる。例えば、第１のメモリ装置７２３が欠陥メモリ装置として検出された場合、検出部７３３は、第１のメモリ装置７２３に対応する信頼度に関する情報及び第１のメモリ装置７２３に対応する前記決定されたエラーデータをアップデートすることができる。他の実施形態において、検出部７３３は、正常メモリ装置である第２のメモリ装置７２５に対応する信頼度に関する情報及び第２のメモリ装置７２５に対応する前記決定されたエラーデータを別にアップデートしないことがある。今後、第１のメモリ装置７２３が復旧されて、正常メモリ装置となった場合、例えば、対応メモリ装置で発生したエラーデータの数が予め設定された閾値より低い場合、検出部７３３は、第１のメモリ装置７２３に対応する信頼度に関する情報を再度アップデートすることができる。例えば、検出部７３３は、欠陥メモリ装置に対して「１」、正常メモリ装置に対して「０」に表して、複数のメモリ装置６２０の各々の信頼度に関する情報を管理できる。これは、一実施形態に該当し、これに制限されるものではない。
【００５４】
データ管理部７３５は、複数のメモリ装置７２０の各々のＯＰ領域を管理できる。具体的に、データ管理部７３５は、複数のメモリ装置７２０の各々のＯＰ領域のうち、可用（ａｖａｉｌａｂｌｅ）ＯＰ領域をモニタリングでき、複数のメモリ装置７２０の各々のＯＰ領域に対する可用情報（以下、可用ＯＰ情報）を格納することができる。例えば、データ管理部７３５は、複数のメモリ装置７２０の各々の可用ＯＰ情報を「１」、不可用ＯＰ領域に対応する可用ＯＰ情報を「０」に表して、可用ＯＰ情報を当該メモリ装置と対応するように格納することができる。これは、一実施形態に該当し、これに制限されるものではない。
【００５５】
他の実施形態において、データ管理部７３５は、各々のメモリ装置の可用ＯＰ領域を「０」に表し、不可用ＯＰ領域を「１」に表すことにより、対応メモリ装置等と関連した可用ＯＰ情報を表すことができる。一部の実施形態において、データ管理部７３５は、各メモリ装置の可用ＯＰ領域を表す、対応メモリ装置等と関連した可用ＯＰ情報だけを格納することができる。一部の実施形態において、データ管理部７３５は、各メモリ装置の不可用ＯＰ領域を表す、対応メモリ装置等と関連した可用ＯＰ情報だけを格納することができる。一部の実施形態において、データ管理部７３５は、各メモリ装置の可用ＯＰ領域を表す、対応メモリ装置等と関連した可用ＯＰ情報及び各メモリ装置の不可用ＯＰ領域を表す対応メモリ装置等と関連した可用ＯＰ情報を格納することができる。
【００５６】
また、データ管理部７３５は、複数のメモリ装置７２０の各々のメモリマップを格納することができる。したがって、複数のメモリ装置７２０間にデータ移動が発生された場合、データ管理部７３５は、データ移動を反映するために、メモリマップをアップデートすることができる。
【００５７】
選択部７３７は、可用ＯＰ情報に基づいて欠陥メモリ装置に格納されたデータ（以下、ターゲットデータ）が格納され得るＯＰ領域を有したメモリ装置（以下、可用メモリ装置）をメモリシステム７００内で検索することができる。さらに、選択部７３７は、予め設定された基準にしたがって可用メモリ装置を選択できる。仮に、欠陥メモリ装置に格納されたデータのサイズが可用メモリ装置のＯＰ領域より大きい場合、選択部７３７は、前記データが格納される複数の可用メモリ装置を選択できる。これは、一実施形態に該当し、これに制限されるものではない。
【００５８】
他の実施形態において、メモリシステム７００内に可用メモリ装置が存在しないならば、ターゲットデータを他のメモリシステムに伝達することができる。これに対する動作は、図１１において説明される。
【００５９】
プロセッサ７３９は、ターゲットデータを欠陥メモリ装置から選択部７３７により選択された可用メモリ装置のＯＰ領域に移動させることができる。例えば、プロセッサ７３９は、ターゲットデータを欠陥メモリ装置から読み出すことができる。読み出されたターゲットデータは、図面に図示されていないが、データコントローラ７１０の内部メモリに仮に格納されることができる。そして、プロセッサ７３９は、可用メモリ装置のＯＰ領域にターゲットデータを格納することができる。ターゲットデータが可用メモリ装置のＯＰ領域に移動された後に、データ管理部７３５は、ターゲットデータに対応する住所情報を反映するために、メモリマップをアップデートすることができる。さらに、今後、ターゲットデータに対する読み出し要請が入力された場合、プロセッサ７３９は、メモリマップに基づいてＯＰ領域に格納されたターゲットデータを読み出すことができる。
【００６０】
それから、欠陥メモリ装置が正常メモリ装置（以下、復旧メモリ装置）に復旧された場合、プロセッサ７３９は、ＯＰ領域に格納されたターゲットデータを読み出して復旧メモリ装置にターゲットデータを格納することができる。さらに、検出部７３３は、復旧メモリ装置に対する信頼度に関する情報をアップデートすることができ、データ管理部７３５は、ターゲットデータに対応する住所情報を反映するために、メモリマップをアップデートすることができる。
【００６１】
図８は、一実施形態に係るデータコントローラ７１０の動作を示したフローチャートである。
【００６２】
まず、ステップＳ８０１において、検出部７３３は、複数のメモリ装置７２０の各々の信頼度に関する情報をモニタリングできる。例えば、検出部７３３は、ステップＳ８０１において複数のメモリ装置７２０に含まれたメモリ装置またはメモリ装置に対応する決定されたエラーデータ情報をモニタリングできる。
【００６３】
ステップＳ８０３において、検出部７３３は、モニタリングされた信頼度に関する情報に基づいて、複数のメモリ装置７２０の各々に対応するデータエラーの数が予め設定された閾値より大きいか、同じメモリ装置を欠陥メモリ装置として検出することができる。
【００６４】
仮に、欠陥メモリ装置が検出されなかった場合（ステップＳ８０３において、「Ｎ」）、検出部７３３は、ステップＳ８０１においてメモリ装置等の信頼度に関する情報をモニタリングし続けて、各メモリ装置の予め設定された閾値より大きいか、同じデータエラー数を検出できる。
【００６５】
欠陥メモリ装置が検出された場合（ステップＳ８０３において、「Ｙ」）、ステップＳ８０５において、プロセッサ７３９は、欠陥メモリ装置に格納されたターゲットデータを読み出すことができる。さらに、プロセッサ７３９は、ターゲットデータをデータコントローラ７１０の内部メモリに仮に格納することができる。
【００６６】
ステップＳ８０７において、選択部７３７は、データ管理部７３５に格納された複数のメモリ装置７２０の各々の可用ＯＰ領域情報に基づいて、メモリシステム７００内で可用メモリ装置を検索できる。
【００６７】
仮に、メモリシステム７００内に可用メモリ装置が存在しないならば（ステップＳ８０７において、「Ｎ」）、ステップＳ８０９において、図１０で説明される動作が行われ得る。これに対する動作は、図１０を介して説明される。
【００６８】
しかし、メモリシステム７００内に可用メモリ装置が存在するならば、ステップＳ８１１において、選択部７３７は、予め設定された基準にしたがってメモリ装置を選択できる。
【００６９】
ステップＳ８１３において、プロセッサ７３９は、可用メモリ装置のＯＰ領域にターゲットデータを格納することができる。一部の実施形態において、ステップＳ８１３でプロセッサ７３９は、複数のＯＰ領域にターゲットデータを格納することができ、ＯＰ領域の各々は、他の可用メモリ装置等のターゲットデータを格納するために、対応する可用メモリ装置に位置することができる。
【００７０】
また、ステップＳ８１５において、データ管理部７３５は、ターゲットデータに対応する住所情報をアップデートすることができる。
【００７１】
図９は、本発明の一実施形態に係るデータコントローラ７１０の動作を示したフローチャートである。図９に示されたデータコントローラ７１０の動作は、図８において説明されたデータコントローラ７１０の動作の後続として進行されることができる。
【００７２】
ステップＳ９０１において、欠陥メモリ装置は、復旧メモリ装置と復旧されることができる。
【００７３】
仮に、欠陥メモリ装置が復旧されなかったならば（ステップＳ９０１において、「Ｎ」）、ステップＳ９０３において、ターゲットデータに対応するアクセス要請は、図８において説明されたＯＰ領域で行われることができる。例えば、ターゲットデータに対応する読み出し要請に対してプロセッサ７３９は、ターゲットデータを読み出すようにターゲットデータが格納された可用メモリ装置を制御できる。
【００７４】
しかし、欠陥メモリ装置が復旧されたならば（ステップＳ９０１において、「Ｙ」）、ステップＳ９０５において、データ管理部７３５は、復旧メモリ装置に対応する信頼度に関する情報をアップデートすることができる。
【００７５】
そして、ステップＳ９０７において、プロセッサ７３９は、現在ターゲットデータが格納されたＯＰ領域でターゲットデータを読み出すことができる。ターゲットデータは、データコントローラ７１０内部のメモリに仮に格納されることができる。
【００７６】
さらに、ステップＳ９０９において、プロセッサ７３９は、ターゲットデータを復旧メモリ装置に格納することができる。
【００７７】
最後に、ステップＳ９１１において、データ管理部７３５は、ターゲットデータに対応する住所情報をアップデートすることができる。例えば、データ管理部７３５は、復旧メモリ装置に格納されたターゲットデータの住所情報を反映するために、メモリマップをアップデートすることができる。
【００７８】
図７〜図９に説明された本発明は、複数のメモリ装置７２０のうち、欠陥メモリ装置が発生されても、上記の過程を介してメモリシステム７００のほとんどの可用性が維持された間、欠陥メモリ装置を復旧することができる。
【００７９】
先に、図７〜図９において、単一メモリシステム７００に欠陥メモリ装置が発生された場合、メモリシステム７００のほとんどの可用性を維持しつつ、欠陥メモリ装置を復旧する本発明の動作過程が説明された。ただし、単一メモリシステム７００に、欠陥メモリ装置に格納されたデータを仮に格納することができる可用ＯＰ領域が存在しないとき、メモリシステム７００の可用性を維持しつつ、欠陥メモリ装置を復旧できないという問題が生じる可能性がある。以下では、図１０〜図１２において、このような問題点を解決できるコンピュータシステム１０００が説明される。
【００８０】
図１０は、本発明の一実施形態に係るコンピュータシステム１０００の構造を示した図である。
【００８１】
コンピュータシステム１０００は、複数のメモリシステム７００Ａ及び７００Ｂ及びメモリシステム管理部（以下、ＭＭＵ、１０１０）を備えることができる。図１０においてコンピュータシステム１０００は、第１のメモリシステム７００Ａ及び第２のメモリシステム７００Ｂだけを備えているが、より多くのメモリシステムを備えられることは当たり前である。
【００８２】
複数のメモリシステム７００Ａ及び７００Ｂの各々は、図７に説明されたメモリシステム７００と対応することができる。さらに、メモリシステム７００Ａ及び７００Ｂ内部に備えられたコントローラ７１０Ａ及び７１０Ｂ及び複数のメモリ装置７２０Ａ及び７２０Ｂの各々は、図７に示されたコントローラ７１０及び複数のメモリ装置７２０と各々対応することができる。
【００８３】
ＭＭＵ（１０１０）は、図２〜図４において説明された演算ボード２００及び相互接続ボード３００に対応することができる。したがって、ＭＭＵ（１０１０）は、複数のメモリシステム７００Ａ及び７００Ｂの各々を管理でき、複数のメモリシステム７００Ａ及び７００Ｂの各々とデータ通信することができる。すなわち、ＭＭＵ（１０１０）は、第１のメモリシステム７００Ａから伝達されたデータを第２のメモリシステム７００Ｂに伝達することができる。ＭＭＵ（１０１０）は、第２のメモリシステム７００Ｂから受信されたデータを第１のメモリシステム７００Ａに提供することもできる。他の実施形態において、ＭＭＵ（１０１０）は、２つ以上のメモリシステムを管理できる。
【００８４】
ＭＭＵ（１０１０）は、複数のメモリシステム７００Ａ及び７００Ｂの各々に含まれた複数のメモリ装置７２０Ａ及び７２０Ｂの各々の可用ＯＰ情報をデータコントローラ７３０Ａ及び７３０ＢからＩ／Ｏインターフェース７５０Ａ及び７５０Ｂを介して伝達されることができる。したがって、ＭＭＵ（１０１０）は、全てのメモリ装置の各々の可用ＯＰ領域に関する情報を分かることができる。さらに、可用ＯＰ情報のアップデートが発生された場合、ＭＭＵ（１０１０）は、データコントローラ７３０Ａ及び７３０Ｂからアップデートされた情報を伝達されてＭＭＵ（１０１０）に格納された可用ＯＰ情報をアップデートすることができる。
【００８５】
また、ＭＭＵ（１０１０）は、複数のメモリ装置７２０Ａ及び７２０Ｂの各々のメモリマップをデータコントローラ７３０Ａ及び７３０ＢからＩ／Ｏインターフェース７５０Ａ及び７５０Ｂを介して伝達されることができる。また、ＭＭＵ（１０１０）は、前記メモリマップが全て反映されたグローバルマップ（ｇｌｏｂａｌ  ｍａｐ）を格納することができる。データ移動が発生した後、ＭＭＵ（１０１０）は、データコントローラ７３０Ａ及び７３０Ｂからアップデートされた住所情報を伝達されてＭＭＵ（１０１０）に格納された各々のメモリマップ及び／又はグローバルマップをアップデートすることができる。
【００８６】
説明の便宜のために、第１のメモリシステム７００Ａに含まれた複数の第１のメモリ装置７２０Ａのうち、欠陥メモリ装置が発生され、複数の第１のメモリ装置７２０Ａのうち、可用メモリ装置が存在しないと仮定する。また、複数の第２のメモリ装置７２０Ｂのうち、可用メモリ装置が存在すると仮定する。
【００８７】
第１のデータコントローラ７３０Ａは、欠陥メモリ装置に格納されたターゲットデータを読み出すことができる。第１のデータコントローラ７３０Ａは、ターゲットデータを仮に格納する可用メモリ装置を複数の第１のメモリ装置７２０Ａで検索することができる。ただし、複数の第１のメモリ装置７２０Ａに可用メモリ装置が存在しないならば、第１のデータコントローラ７３０Ａは、第１のＩ／Ｏインターフェース７５０Ａを介してターゲットデータをＭＭＵ（１０１０）に伝達することができる。
【００８８】
ＭＭＵ（１０１０）は、複数のメモリシステム７００Ａ及び７００Ｂの各々に伝達された可用ＯＰ情報に基づいて、第１のメモリシステム７００Ａから伝達されたターゲットデータを仮に格納することができる可用メモリ装置が含まれた第２のメモリシステム７００Ｂを検索できる。さらに、ＭＭＵ（１０１０）は、ターゲットデータを第２のメモリシステム７００Ｂに伝達することができる。
【００８９】
第２のデータコントローラ７３０Ｂは、第２のＩ／Ｏインターフェース７５０Ｂを介してターゲットデータを伝達されることができる。第２のデータコントローラ７３０Ｂは、ターゲットデータを仮に格納する可用メモリ装置を複数の第２のメモリ装置７２０Ｂで検索することができる。さらに、第２のデータコントローラ７３０Ｂは、ターゲットデータを検索された可用メモリ装置のＯＰ領域に格納することができる。
【００９０】
第１のデータコントローラ７３０Ａ及び第２のデータコントローラ７３０Ｂは、ターゲットデータに対応する住所情報を各々アップデートすることができる。例えば、第１のデータコントローラ７３０Ａは、ターゲットデータが複数の第１のメモリ装置７２０Ａに格納されていないということを表すことができるように、第２のデータコントローラ７３０Ｂは、ターゲットデータが前記ＯＰ領域に格納されているということを表すようにターゲットデータに対応する住所情報を各々アップデートすることができる。さらに、第１のデータコントローラ７３０Ａ及び第２のデータコントローラ７３０Ｂは、アップデートされた住所情報を各々ＭＭＵ（１０１０）に伝達することができる。ＭＭＵ（１０１０）は、伝達されたターゲットデータの各々の住所情報を反映するために、第１のメモリシステム７００Ａ及び第２のメモリシステム７００Ｂのメモリマップ及び／又はグローバルマップを各々アップデートすることができる。
【００９１】
それから、複数の第１のメモリ装置７２０Ａに含まれた欠陥メモリ装置が復旧された場合、前述した動作過程の逆方向にターゲットデータを復旧メモリ装置に格納するための動作が進行され得る。
【００９２】
第１のデータコントローラ７３０Ａは、欠陥メモリ装置が復旧されて、現在は復旧メモリ装置となったということを表す情報をＭＭＵ（１０１０）に伝達することができる。このとき、ＭＭＵ（１０１０）は、復旧メモリ装置の信頼度に関する情報をアップデートすることができる。そして、ＭＭＵ（１０１０）は、第２のメモリシステム７００Ｂにターゲットデータに対する読み出し要請を発することができる。第２のデータコントローラ７３０Ｂは、ターゲットデータを読み出し、ＭＭＵ（１０１０）に伝達することができる。ＭＭＵ（１０１０）は、伝達されたターゲットデータを第１のメモリシステム７００Ａに伝達することができる。第１のデータコントローラ７３０Ａは、ターゲットデータをＭＭＵ（１０１０）から伝達されることができ、ターゲットデータを復旧メモリ装置に格納することができる。
【００９３】
第１のデータコントローラ７３０Ａ及び第２のデータコントローラ７３０Ｂは、ターゲットデータに対応する住所情報を各々アップデートすることができる。例えば、第２のデータコントローラ７３０Ｂは、ターゲットデータが複数の第２のメモリ装置７２０Ｂに格納されていないということを表すことができるように、第１のデータコントローラ７３０Ａは、ターゲットデータが復旧メモリ装置に格納されているということを表すようにターゲットデータに対応する住所情報を各々アップデートすることができる。さらに、第１のデータコントローラ７３０Ａ及び第２のデータコントローラ７３０Ｂは、アップデートされた住所情報を各々ＭＭＵ（１０１０）に伝達することができる。ＭＭＵ（１０１０）は、伝達されたターゲットデータの各々の住所情報を反映するために、第１のメモリシステム７００Ａ及び第２のメモリシステム７００Ｂのメモリマップ及び／又はグローバルマップを各々アップデートすることができる。
【００９４】
図１１は、一実施形態に係るコンピュータシステム１０００の動作を示したフローチャートである。さらに、図１１に示された動作は、図８に示されたステップＳ８０９に対応することができる。すなわち、ステップＳ１１０１ないしステップＳ１１１１の動作は、図８に示されたステップＳ８０７の後続動作でありうる。
【００９５】
ステップＳ１１０１において、第１のメモリシステム７００Ａは、図８に示されたステップＳ８０１ないしステップＳ８０７に対応する動作を行うことができる。
【００９６】
ステップＳ１１０３において、第１のメモリシステム７００Ａは、ＭＭＵ（１０１０）にターゲットデータを伝達できる。例えば、第１のメモリシステム７００Ａに含まれた第１のデータコントローラ７３０Ａが第１のＩ／Ｏインターフェース７５０Ａを介してターゲットデータをＭＭＵ（１０１０）に伝達することができる。
【００９７】
ステップＳ１１０５において、ＭＭＵ（１０１０）は、第１のメモリシステム７００Ａ以外のメモリシステムのうち、可用メモリ装置を含むメモリシステムを検索できる。
【００９８】
仮に、他のメモリシステムにも可用メモリ装置が存在しないならば（ステップＳ１１０７において、「Ｎ」）、ＭＭＵ（１０１０）は、ステップＳ１１０５において、再度可用メモリ装置を含むメモリシステムを検索できる。
【００９９】
しかし、特定メモリシステム（以下、第２のメモリシステム、７００Ｂ）に可用メモリ装置が存在する場合（ステップＳ１１０７において、「Ｙ」）、ステップＳ１１０９において、ＭＭＵ（１０１０）は、ターゲットデータを第２のメモリシステム７００Ｂに伝達することができる。
【０１００】
さらに、ステップＳ１１１１において、第２のデータコントローラ７３０Ｂは、ターゲットデータを可用メモリ装置のＯＰ領域に格納することができる。
【０１０１】
その後、ステップＳ１１１３において、図１０で説明されたように、第１のデータコントローラ７３０Ａ、第２のデータコントローラ７３０Ｂ、及びＭＭＵ（１０１０）は、ターゲットデータに対応する住所情報をアップデートすることができる。
【０１０２】
図１２は、一実施形態に係るコンピュータシステム１０００の動作を示したフローチャートである。図１２に示された動作は、図１１に示された動作以後に行われることができる。例えば、図１１において説明されたように、第１のメモリシステム７００Ａで発生された欠陥メモリ装置が復旧されたとき、コンピュータシステム１０００がターゲットデータを復旧メモリ装置に格納する動作が図１２を介して説明される。しかし、図面に図示されてはいないが、欠陥メモリ装置が復旧されなかった場合、ターゲットデータに対するアクセス要請は、現在ターゲットデータが格納された第２のメモリシステム７００ＢのＯＰ領域に対して行われることができる。例えば、ターゲットデータに対する読み出し要請を発した場合、第２のデータコントローラ７３０Ｂは、前記ＯＰ領域に格納されたターゲットデータを読み出すことができる。
【０１０３】
ステップＳ１２０１において、欠陥メモリ装置は、復旧メモリ装置として復旧されることができる。
【０１０４】
ステップＳ１２０３において、第１のデータコントローラ７３０Ａは、復旧メモリ装置に対応する信頼度に関する情報をアップデートすることができる。例えば、第１のデータコントローラ７３０Ａは、欠陥メモリ装置に対して「１」であった信頼度に関する情報を、欠陥メモリ装置を復旧メモリ装置と復旧完了した後に、復旧メモリ装置に対して「０」にアップデートすることができる。
【０１０５】
ステップＳ１２０５において、第１のメモリシステム７００Ａは、ＭＭＵ（１０１０）に前記アップデートされた信頼度に関する情報を伝達できる。
【０１０６】
ステップＳ１２０７において、ＭＭＵ（１０１０）は、第１のメモリシステム７００Ａから伝達された信頼度に関する情報に基づいて、第１のメモリシステム７００Ａに対応する信頼度に関する情報をアップデートすることができる。
【０１０７】
その後、ターゲットデータを本来格納位置であった第１のメモリシステム７００Ａに移動させるために、ステップＳ１２０９において、ＭＭＵ（１０１０）は、第２のメモリシステム７００Ｂにターゲットデータを読み出すように要請することができる。
【０１０８】
ステップＳ１２１１において、第２のメモリシステム７００Ｂは、前記読み出し要請に応じてターゲットデータを読み出すことができる。例えば、第２のデータコントローラ７３０Ｂは、ターゲットデータを読み出すようにターゲットデータが格納されたＯＰ領域を有するメモリ装置を制御できる。
【０１０９】
そして、ステップＳ１２１３において、第２のメモリシステム７００Ｂは、ターゲットデータをＭＭＵ（１２１３）に出力することができる。
【０１１０】
ステップＳ１２１５において、ＭＭＵ（１０１０）は、第１のメモリシステム７００Ａにターゲットデータを伝達することができる。
【０１１１】
ステップＳ１２１７において、第１のメモリシステム７００Ａは、ＭＭＵ（１０１０）から伝達されたターゲットデータを復旧メモリ装置に格納することができる。例えば、第１のデータコントローラ７３０Ａは、ターゲットデータを書き込むように復旧メモリ装置を制御できる。
【０１１２】
その後、ステップＳ１２１９において、図１０で説明されたように、第１のデータコントローラ７３０Ａ、第２のデータコントローラ７３０Ｂ、及びＭＭＵ（１０１０）は、ターゲットデータに対応する住所情報をアップデートすることができる。
【０１１３】
図１０〜図１２に説明されたように、複数のメモリシステムで構成されたコンピュータシステムは、単一メモリシステム７００の問題点を克服でき、その結果、メモリシステム７００のほとんどの可用性を維持して、欠陥メモリ装置を復旧できる。
【０１１４】
一方、本発明の詳細な説明では、具体的な実施形態に関して説明したが、本発明の範囲から逸脱しない限度内で様々な変形が可能であることはもちろんである。したがって、本発明の範囲は、説明された実施形態に限定されて決められてはならず、後述する特許請求の範囲だけでなく、この特許請求の範囲と均等なものなどにより決められるべきである。
【図１】
2019192221.tif 000003
【図２】
2019192221.tif 000004
【図３】
2019192221.tif 000005
【図４】
2019192221.tif 000006
【図５】
2019192221.tif 000007
【図６】
2019192221.tif 000008
【図７】
2019192221.tif 000009
【図８】
2019192221.tif 000010
【図９】
2019192221.tif 000011
【図１０】
2019192221.tif 000012
【図１１】
2019192221.tif 000013
【図１２】
2019192221.tif 000014