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