(57)【要約】      （修正有）【課題】多数のメモリーを備える統合メモリーシステムにおけるキャッシュミス時のミスペナルティを減らすことが可能なデータ処理システムを提供する。【解決手段】データ処理システムが備えるコンピューティングラック２０は、データの格納のための書き込みコマンド及びデータの読み取りのための読み取りコマンドを生成する演算ブレード２００、及び、書き込みコマンド及び読み取りコマンドに対応し、複数のメモリーでデータの読み取り動作又は書き込み動作が選択的に行われるメモリーブレード４００を備える。演算ブレードは、複数のメモリーに対する特性情報を格納し、特性情報に対応してキャッシュラインの除去動作が行われる優先順位を選定する。【選択図】図３
2020087409.tif 000002
【特許請求の範囲】
【請求項１】
データの格納のための書き込みコマンド及び前記データの読み取りのための読み取りコマンドを生成する演算ブレードと、
前記書き込みコマンド及び前記読み取りコマンドに対応し、複数のメモリーで前記データの読み取り動作又は書き込み動作が選択的に行われるメモリーブレードと、を備え、
前記演算ブレードは、
前記複数のメモリーに対する特性情報を格納し、前記特性情報に対応してキャッシュラインの除去動作が行われる優先順位を選定するデータ処理システム。
【請求項２】
前記演算ブレードと前記メモリーブレードの間で通信を行う相互接続ブレードを備える請求項１に記載のデータ処理システム。
【請求項３】
前記メモリーブレードは、
前記データの読み取り又は書き込み動作が行われる前記複数のメモリーと、
前記演算ブレードから印加される要請によって前記複数のメモリーを選択的にアクセスするコントローラーと、を備える請求項１に記載のデータ処理システム。
【請求項４】
前記コントローラーは、
前記演算ブレードと前記複数のメモリーの間で送受信される前記データを制御するデータコントローラーと、
前記データコントローラーと前記複数のメモリーの間で前記データの送受信動作を制御する複数のメモリーコントローラーと、
前記データコントローラーと前記演算ブレードの間でインターフェーシングを行う入出力インターフェースと、を備える請求項３に記載のデータ処理システム。
【請求項５】
前記データコントローラーは、
前記書き込みコマンドに応答し、前記演算ブレードからの書き込みのためのデータを受信して、受信されたデータを前記複数のメモリーのうち該当するメモリーに書き込み、
前記読み取りコマンドに応答し、前記複数のメモリーのうち特定メモリーに格納されたデータを読み取って、前記演算ブレードに出力する請求項４に記載のデータ処理システム。
【請求項６】
前記複数のメモリーは、
第１温度の環境にある第１グループのメモリーと、
前記第１温度より低い第２温度の環境にある第２グループのメモリーと、
前記第２温度より低い第３温度環境にある第３グループのメモリーと、を備える請求項１に記載のデータ処理システム。
【請求項７】
前記第１グループのメモリー、前記第２グループのメモリー及び前記第３グループのメモリーは、同種類のメモリーである請求項６に記載のデータ処理システム。
【請求項８】
前記複数のメモリーは、互いに異なる特性情報を有する請求項６に記載のデータ処理システム。
【請求項９】
前記第１グループのメモリーは、データアクセス速度がスロー特性を有し、
前記第２グループのメモリーは、ノーマル特性を有し、
前記第３グループのメモリーは、ファスト特性を有する請求項６に記載のデータ処理システム。
【請求項１０】
前記演算ブレードは、
前記メモリーブレードを制御するためのコマンドを生成する中央処理装置と、
前記中央処理装置の動作に必要なデータを前記キャッシュラインに格納し、前記特性情報に対応して前記除去動作が行われるメモリーの優先順位を選定するキャッシュメモリーと、
前記中央処理装置と前記メモリーブレードの間でインターフェーシングを行うＩ／Ｏインターフェースと、を備える請求項１に記載のデータ処理システム。
【請求項１１】
前記キャッシュメモリーは、
前記中央処理装置の動作に必要なデータを格納するウェイブロックと、
前記キャッシュラインの除去動作のためのデータを処理するデータ処理部と、
前記特性情報を格納する特性格納部と、
前記特性情報に対応して前記メモリーの優先順位を選定し除去動作を行う除去回路と、を備える請求項１０に記載のデータ処理システム。
【請求項１２】
前記キャッシュメモリーは、
前記中央処理装置から印加されるアドレスをデコーディングするアドレスデコーダを備える請求項１１に記載のデータ処理システム。
【請求項１３】
前記データ処理部は、
最長未使用（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ；ＬＲＵ）動作を行い、キャッシュデータを交替する請求項１１に記載のデータ処理システム。
【請求項１４】
前記データ処理部は、
先入先出（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ；ＦＩＦＯ）動作を行い、キャッシュデータを交替する請求項１１に記載のデータ処理システム。
【請求項１５】
前記特性情報は、
データアクセス速度、リフレッシュ期間及びオンチップ情報の漏洩量のうち、何れか一つの情報を含む請求項１１に記載のデータ処理システム。
【請求項１６】
前記除去回路は、
データアクセス速度がファスト特性を有するメモリーを第１順位に選定し、スロー特性を有するメモリーを第２順位に選定する請求項１１に記載のデータ処理システム。
【請求項１７】
前記メモリーの優先順位が選定された後に、前記データ処理部の処理動作が行われる請求項１６に記載のデータ処理システム。
【請求項１８】
前記データ処理部の処理動作が行われた後に、前記メモリーの優先順位が選定される請求項１１に記載のデータ処理システム。
【請求項１９】
前記除去回路は、
データアクセス速度がファスト特性を有するメモリーを第１順位に選定し、
前記データアクセス速度がスロー特性を有するメモリーが第１順位に選定され、ファスト特性を有するメモリーが第２順位に選定されれば、前記ファスト特性を有するメモリーを第１順位に変更する請求項１８に記載のデータ処理システム。
【請求項２０】
前記除去回路は、
データアクセス速度がファスト特性を有するメモリーを第１順位に選定し、
前記データアクセス速度がスロー特性を有するメモリーが第１順位及び２順位に選定されれば、前記ファスト特性を有するメモリーを第２順位に変更する請求項１８に記載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システムに関するものであり、多数のメモリーを備える統合メモリーシステムに関する技術である。
【背景技術】
【０００２】
最近、スマートフォン、タブレットＰＣのような移動通信端末機の普及が大衆化している。そして、ソーシャルネットワークサービス（ＳＮＳ、Ｓｏｃｉａｌ  Ｎｅｔｗｏｒｋ  Ｓｅｒｖｉｃｅ）、モノ（機械）のネットワーク（Ｍ２Ｍ、Ｍａｃｈｉｎｅ  ｔｏ  Ｍａｃｈｉｎｅ）、センサネットワーク（Ｓｅｎｓｏｒ  Ｎｅｔｗｏｒｋ）の使用が増加している。これにより、データの量、生成速度及びその多様性が幾何級数的に増加している。ビッグデータの処理のためには、メモリーの速度も重要であるが、格納容量が大きいメモリー装置及びメモリーモジュールが要求される。
このため、メモリーシステムは、データの格納容量を増やすために複数のメモリー装置を具備する。ところが、メモリーシステムに備えられた複数のメモリー装置はそれぞれメモリー特性が異なる。したがって、メモリーシステムでキャッシュの管理時、それぞれのメモリー特性が異なるためミスペナルティ（Ｍｉｓｓ  Ｐｅｎａｌｔｙ）が発生し得る。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明の実施形態は、キャッシュラインの除去（Ｅｖｉｃｔｉｏｎ）動作時にメモリー特性に対応して優先順位を付与することで、ミスペナルティ（Ｍｉｓｓ  Ｐｅｎａｌｔｙ）を減らすことができるようにするメモリーシステムを提供する。
【課題を解決するための手段】
【０００４】
本発明の実施形態によるデータ処理システムは、データの格納のための書き込みコマンド及びデータの読み取りのための読み取りコマンドを生成する演算ブレードと、書き込みコマンド及び読み取りコマンドに対応し、複数のメモリーでデータの読み取り動作又は書き込み動作が選択的に行われるメモリーブレードと、を備え、演算ブレードは、複数のメモリーに対する特性情報を格納し、特性情報に対応してキャッシュラインの除去動作が行われる優先順位を選定する。
【発明の効果】
【０００５】
本発明の実施形態は、キャッシュの管理時にメモリーの特性を考慮し除去（Ｅｖｉｃｔｉｏｎ）ブロックを決定することで、ミスペナルティ（Ｍｉｓｓ  Ｐｅｎａｌｔｙ）を減らすことができるようにする効果を提供する。
【０００６】
また、本発明の実施形態は、例示のためのものであり、当業者であれば、添付された特許請求範囲の技術的思想と範囲を介して多様な修正、変更、代替及び付加が可能なはずであり、このような修正変更等は、以下の特許請求範囲に属することと見做さなければならない。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施形態によるデータ処理システムを示した図である。
【図２】図１によるコンピューティングラックの構造を概略的に示した図である。
【図３】図１によるコンピューティングラックのブロック構成を示した図である。
【図４】図３のメモリーブレードの構成を示した図である。
【図５】図３の演算ブレードの構成を示した図である。
【図６】図５のキャッシュメモリーに関する詳細構成図である。
【図７】図６の除去回路に対する動作を説明するための図である。
【図８】図６の除去回路に対する動作を説明するための図である。
【発明を実施するための形態】
【０００８】
以下、添付の図面を参照し本発明の実施形態に対して詳しく説明する。本発明の実施形態を説明することにおいて、ある部分が他の部分と『連結』されているという時、これは、『直接的に連結』されている場合だけでなく、その中間に他の素子を間に置いて『電気的に連結』されている場合も含む。また、ある部分がある構成要素を『含む』又は『具備』するという時、これは、特別に反対される記載がない限り、他の構成要素を除外するのではなく、他の構成要素をさらに含むか具備できることを意味する。また、明細書全体の記載において、一部構成要素を単数形で記載したからといって、本発明がそれに限られるものではなく、当該構成要素が複数でなり得ることが分かる。
【０００９】
図１は、本発明の実施形態によるデータ処理システムを示した図である。
データ処理システム１０は、多数のコンピューティングラック（Ｃｏｍｐｕｔｉｎｇ  ｒａｃｋｓ）２０、管理インターフェース（Ｍａｎａｇｅｍｅｎｔ  ｉｎｔｅｒｆａｃｅ）３０、及び、これらの間の通信を可能にするネットワーク（Ｎｅｔｗｏｒｋ）４０を備えていてもよい。このようなラックスケール構造（Ｒａｃｋ−ｓｃａｌｅ  ａｒｃｈｉｔｅｃｔｕｒｅ）を有するデータ処理システム１０は、大容量データ処理のためのデータセンターに用いられてよい。
【００１０】
多数のコンピューティングラック２０のそれぞれは、単独で一つのコンピューティングデバイス（Ｃｏｍｐｕｔｉｎｇ  ｄｅｖｉｃｅ）を具現できる。その代わりに、多数のコンピューティングラック２０のそれぞれは、他のコンピューティングラックとの組合せで一つのコンピューティングデバイスを具現できる。このようなコンピューティングラック２０の具体的な構成及び動作に対する説明は後述される。
【００１１】
そして、管理インターフェース３０は、使用者がデータ処理システム１０を調整、運営又は管理できるようにするインタラクティブインターフェース（Ｉｎｔｅｒａｃｔｉｖｅ  ｉｎｔｅｒｆａｃｅ）を提供できる。管理インターフェース３０は、コンピューター、マルチプロセッサシステム、サーバー、ラックマウント（Ｒａｃｋ−ｍｏｕｎｔ）サーバー、ブレード（Ｂｌａｄｅ）サーバー、ラップトップ（Ｌａｐ−ｔｏｐ）コンピューター、ノートパソコン、タブレットＰＣ、ウェアラブルコンピューティングデバイス、ネットワーク機器、ウェブ機器、分散コンピューティングシステム、プロセッサ基盤システム、及び／又は消費者電子機器を含む、任意の類型の演算デバイスとして具現されてよい。
【００１２】
実施形態により、管理インターフェース３０は、コンピューティングラック２０によって行われ得る演算機能や、管理インターフェース３０によって行われ得る使用者インターフェース機能を有する分散システムによって具現されてよい。他の実施形態で、管理インターフェース３０は、ネットワーク４０を介して分散された多重コンピューティングデバイスによって構成され、クラウド（Ｃｌｏｕｄ）として動作する仮想サーバー（Ｖｉｒｔｕａｌ  ｓｅｒｖｅｒ）によって具現されてよい。ここで、管理インターフェース３０は、プロセッサ、入出力サブシステム、メモリー、データストレージデバイス及び通信回路を備えてもよい。
【００１３】
そして、ネットワーク４０は、コンピューティングラック２０と管理インターフェース３０の間及び／又はコンピューティングラック２０の間でデータを送受信できる。ネットワーク４０は、適切な数の多様な無線及び／又は有線ネットワークによって具現されてよい。
【００１４】
例えば、ネットワーク４０は、有線又は無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）セルラネットワーク、及び／又はインターネットのように公開的にアクセス可能なグローバルネットワーク（Ｐｕｂｌｉｃｌｙ−ａｃｃｅｓｓｉｂｌｅ、ｇｌｏｂａｌ  ｎｅｔｗｏｒｋ）によって具現されるか、これを含んでよい。さらに、ネットワーク４０は、補助的なコンピューター、ルーター（Ｒｏｕｔｅｒ）及びスイッチのような適切な数の補助的なネットワークデバイスを含んでよい。
【００１５】
図２は、図１によるコンピューティングラック構造を概略的に示した図である。
コンピューティングラック２０は、構成要素の構造、形態及び呼称等に制限されるものではなく、多様な形態の構成要素を備えてよい。例えば、コンピューティングラック２０は、多数のドロワー（Ｄｒａｗｅｒ）２１−２９を備えてよい。多数のドロワー（２１−２９）のそれぞれは、多数のモジュール（Ｍｏｄｕｌｅ）を備えてよい。多数のモジュールのそれぞれは、多数のブレード（Ｂｌａｄｅ）を備えてよい。
【００１６】
実施形態により、コンピューティングラック２０は、適切な数の演算ブレード（Ｃｏｍｐｕｔｅ  ｂｌａｄｅ）、メモリーブレード（Ｍｅｍｏｒｙ  ｂｌａｄｅ）及び／又は相互接続ブレード（Ｉｎｔｅｒｃｏｎｎｅｃｔ  ｂｌａｄｅ）の組合せによって具現されてよい。ここでは、コンピューティングラック２０が多数のブレードの組合せによって具現されるものと定義されているが、その代わりに、ドロワー、モジュール、トレー、ボード、シャーシ又はユニット等の多様な名前で具現されるものと定義され得ることに留意しなければならない。
【００１７】
このようなコンピューティングラック２０の構成要素は、具現の便宜上、機能別に分類及び区別される構造を有してよい。制限されることではないが、コンピューティングラック２０は、上段から相互接続ブレード、演算ブレード、メモリーブレードの順に分類された構造を有してよい。このようなコンピューティングラック２０及びこれによって具現されるコンピューティングデバイスは、『ラックスケールシステム（Ｒａｃｋ−ｓｃａｌｅ  ｓｙｓｔｅｍ）』又は『分類システム（Ｄｉｓａｇｇｒｅｇａｔｅｄ  ｓｙｓｔｅｍ）』と命名されてよい。
【００１８】
多様な実施形態において、コンピューティングデバイスは、一つのコンピューティングラック２０によって具現されてよい。その代わりに、コンピューティングデバイスは、２個以上のコンピューティングラック２０に含まれる全ての構成要素によって具現されるか、２個以上のコンピューティングラック２０に含まれる一部構成要素の組合せによって具現されるか、一つのコンピューティングラック２０に含まれる一部構成要素によって具現されてよい。
【００１９】
多様な実施形態において、コンピューティングデバイスは、コンピューティングラック２０に含まれる適切な数の演算ブレード、メモリーブレード及び相互接続ブレードの組合せによって具現されてよい。例えば、コンピューティングデバイス２０Ａは、２個の演算ブレード、３個のメモリーブレード及び１個の相互接続ブレードによって具現されてよい。他の形態で、コンピューティングデバイス２０Ｂは、３個の演算ブレード、２個のメモリーブレード及び１個の相互接続ブレードによって具現されてよい。また他の形態で、コンピューティングデバイス２０Ｃは、１個の演算ブレード、４個のメモリーブレード及び１個の相互接続ブレードによって具現されてよい。
【００２０】
図２では、コンピューティングラック２０が適切な数の演算ブレード、メモリーブレード及び／又は相互接続ブレードの組合せによって具現される場合を示しているが、コンピューティングラック２０は、通常のサーバー等で確認され得るパワーシステム、冷却システム、入出力デバイスのような追加的な構成要素を備えてもよい。
【００２１】
図３は、図１によるコンピューティングラック２０のブロック構成を示した図である。
コンピューティングラック２０は、多数の演算ブレード２００、相互接続ブレード３００及び多数のメモリーブレード４００を備えてもよい。
【００２２】
ここで、多数の演算ブレード２００は、プール演算ブレード（Ｐｏｏｌｅｄ  ｃｏｍｐｕｔｅ  ｂｌａｄｅｓ）、プール演算システム等と呼ばれてよい。類似には、多数のメモリーブレード４００は、プールメモリーブレード（Ｐｏｏｌｅｄ  ｍｅｍｏｒｙ  ｂｌａｄｅ）、プールメモリーシステム等と呼ばれてよい。
【００２３】
多数の演算ブレード２００それぞれは、データの格納のための書き込みコマンド及びデータの読み取りのための読み取りコマンドを生成する。このような多数の演算ブレード２００のそれぞれは、一つ又はそれ以上のプロセッサ、プロセッシング／コントロール回路、又は中央処理装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、ＣＰＵ）のようなプロセッシング要素を備えてもよい。
【００２４】
そして、多数のメモリーブレード４００のそれぞれは、書き込みコマンド及び読み取りコマンドに対応し、データの読み取り動作又は書き込み動作が選択的に行われる。このような多数のメモリーブレード４００のそれぞれは、多数の揮発性メモリー（Ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ）及び／又は非揮発性メモリー（Ｎｏｎｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ）のような多様な形態のメモリーを備えてもよい。
【００２５】
例えば、多数のメモリーブレード４００は、多数のディーラム（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、ＤＲＡＭ）、フラッシュメモリー（Ｆｌａｓｈ  ｍｅｍｏｒｙ）、メモリーカード、ハードディスクドライブ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ、ＨＤＤ）、ソリッドステートドライブ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ、ＳＳＤ）、及び／又はこれらの組合せを備えてもよい。
【００２６】
多数のメモリーブレード４００のそれぞれは、演算ブレード２００のそれぞれに備えられる一つ以上のプロセッシング要素によって分割されるか、割当てられるか、又は指定され用いられてよい。また、多数のメモリーブレード４００のそれぞれは、演算ブレード２００によって初期化及び／又は行われ得る一つ以上のオペレーティングシステム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ、ＯＳ）を格納できる。
【００２７】
相互接続ブレード３００は、演算ブレード２００のそれぞれに備えられる一つ以上のプロセッシング要素によって分割、割当て又は指定され用いられ得る、任意の通信回路、デバイス、又はこれらの結合せによって具現されてよい。例えば、相互接続ブレード３００は、任意個数のネットワークインターフェースポート、カード、又はスイッチとして具現されてよい。相互接続ブレード３００は、通信を実行させるための、一つ以上の有線又は有線通信技術と係わるプロトコルを用いてよい。例えば、相互接続ブレード３００は、ＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）、ＱＰＩ（ＱｕｉｃｋＰａｔｈ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）、イーサネット（Ｅｔｈｅｒｎｅｔ）（登録商標）等のようなプロトコルによって、演算ブレード２００とメモリーブレード４００の間の通信を支援できる。
データセンターのようなサーバーシステム又はデータ処理システムは、演算ブレード２００、メモリーブレード４００等のような多数のブレードが単位コンピューティングラック２０内で区別され装着される構造を有してよい。この時、一つのメモリーブレード又は多数のメモリーブレードは、同一の種類又は互いに異なる種類の多数のメモリーが統合された形態を有する統合メモリーデバイス（ｃｏｎｖｅｒｇｅｎｃｅ  ｍｅｍｏｒｙ  ｄｅｖｉｃｅ）又はプールメモリーシステム（ｐｏｏｌｅｄ  ｍｅｍｏｒｙ  ｓｙｓｔｅｍ）であってよい。
【００２８】
図４は、図３のメモリーブレードの構成を示した図である。
メモリーブレード４００は、コントローラー４１０と多数のメモリー４２０とを備えてもよい。
【００２９】
ここで、コントローラー４１０は、データコントローラー（Ｄａｔａ  ｃｏｎｔｒｏｌｌｅｒ）５１０、メモリーコントローラー（Ｍｅｍｏｒｙ  ｃｏｎｔｒｏｌｌｅｒ）５２０Ａ−５２０Ｃ及び入出力（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ、Ｉ／Ｏ）インターフェース５３０を備えてもよい。
【００３０】
データコントローラー５１０は、図３の演算ブレード２００と多数のメモリー４２０の間で送受信されるデータを制御できる。例えば、書き込み要請又はコマンドに応答し、データコントローラー５１０は、演算ブレード２００からの書き込みのためのデータを受信する。データコントローラー５１０は、受信されたデータを多数のメモリー４２０のうち、該当するメモリーに書き込む書き込み動作を制御できる。他の形態で、読み取り要請又はコマンドに応答し、データコントローラー５１０は、演算ブレード２００から多数のメモリー４２０のうち、特定メモリーに格納されたデータを読み取る。データコントローラー５１０は、読み取りデータを演算ブレード２００のうち、該当する演算ブレードに出力する読み取り動作を制御できる。
【００３１】
メモリーコントローラー５２０Ａ−５２０Ｃは、データコントローラー５１０と多数のメモリー４２０の間に位置し、これらの間でのインターフェーシングを支援できる。メモリーコントローラー５２０Ａ−５２０Ｃは、多数のメモリー４２０に含まれる第１グループのメモリー４２０Ａ、第２グループのメモリー４２０Ｂ及び第３グループのメモリー４２０Ｃそれぞれに対応する動作を制御できる。
【００３２】
すなわち、メモリーコントローラー５２０Ａは、データコントローラー５１０と第１グループのメモリー４２０Ａの間に位置し、これらの間でのデータ送受信を支援できる。メモリーコントローラー５２０Ｂは、データコントローラー５１０と第２グループのメモリー４２０Ｂの間に位置し、これらの間でのデータ送受信を支援できる。メモリーコントローラー５２０Ｃは、データコントローラー５１０と第３グループのメモリー４２０Ｃの間に位置し、これらの間でのデータ送受信を支援できる。
【００３３】
ここでは、コントローラー４１０が３個のメモリーコントローラー５２０Ａ〜メモリーコントローラー５２０Ｃを含む形態が図示されている。しかし、第１グループのメモリー４２０Ａ、第２グループのメモリー４２０Ｂ及び第３グループのメモリー４２０Ｃが全て同一のメモリーで具現される場合、コントローラー４１０は、単一のメモリーコントローラーを含む形態で図示されてもよい。
【００３４】
Ｉ／Ｏインターフェース５３０は、図３の相互接続ブレード３００を介するデータコントローラー５１０と複数の演算ブレード２００の間でのインターフェーシングを支援できる。Ｉ／Ｏインターフェース５３０は、一つ以上の有線又は有線通信技術と係わるプロトコルを用い、データコントローラー５１０から相互接続ブレード３００への送信データを出力し、相互接続ブレード３００からデータコントローラー５１０への受信データを入力できる。
【００３５】
例えば、Ｉ／Ｏインターフェース５３０は、ＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）、ＱＰＩ（ＱｕｉｃｋＰａｔｈ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）、イーサネット（Ｅｔｈｅｒｎｅｔ）（登録商標）等のようなプロトコルによって、データコントローラー５１０と相互接続ブレード３００の間の通信を支援できる。
【００３６】
また、多数のメモリー４２０は、コントローラー４１０の制御によってデータを格納（又は書き込み）し、格納されたデータを出力（又は読み取り）できる。多数のメモリー４２０は、第１グループのメモリー４２０Ａ、第２グループのメモリー４２０Ｂ及び第３グループのメモリー４２０Ｃを備えてもよい。第１グループのメモリー４２０Ａ、第２グループのメモリー４２０Ｂ及び第３グループのメモリー４２０Ｃは、互いに同一の特性を有してもよく、互いに異なる特性を有してよい。
【００３７】
実施形態により、第１グループのメモリー４２０Ａ、第２グループのメモリー４２０Ｂ及び第３グループのメモリー４２０Ｃは、格納容量（ｃａｐａｃｉｔｙ）又はレイテンシ（ｌａｔｅｎｃｙ）側面で同一の特性を有するメモリーであるか、互いに異なる特性を有するメモリーであってよい。
【００３８】
一例として、第１グループのメモリー４２０Ａと、第２グループのメモリー４２０Ｂ及び第３グループのメモリー４２０Ｃは、同種類のディーラムであってよい。これと異なり、第１グループのメモリー４２０Ａと、第２グループのメモリー４２０Ｂ及び第３グループのメモリー４２０Ｃは、スタティックラム（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、ＳＲＡＭ）やフラッシュメモリー（Ｆｌａｓｈ  ｍｅｍｏｒｙ）のように同種類のメモリーであってよい。また、第１グループのメモリー４２０Ａと、第２グループのメモリー４２０Ｂ及び第３グループのメモリー４２０Ｃは、互いに異なる種類のメモリーであってもよい。
【００３９】
他の実施形態において、メモリーブレード４００に含まれる同種類のメモリー２４０は、多様な温度使用環境に応じて多様な性能や特性を示し得る。ここで、多様な性能や特性は、データアクセス速度、リフレッシュ（Ｒｅｆｒｅｓｈ）期間又はオンチップ情報の漏洩量（Ｏｎ−ｃｈｉｐ  ｌｅａｋａｇｅ）を含んでよい。
【００４０】
すなわち、第１グループのメモリー４２０Ａと、第２グループのメモリー４２０Ｂ及び第３グループのメモリー４２０Ｃは、互いに異なる温度環境であり得る。第１グループのメモリー４２０Ａは、第１温度、すなわち、室温環境で動作できる。そして、第２グループのメモリー４２０Ｂは、第２温度、すなわち、低温環境で動作できる。そして、第３グループのメモリー４２０Ｃは、第３温度、すなわち、極低温（Ｃｒｙｏｇｅｎｉｃ）環境で動作できる。
【００４１】
例えば、第３グループのメモリー４２０Ｃが極低温のように温度が低い環境で動作する場合、揮発性メモリー（例えば、ディーラム）で動作速度が早くなり得、オンチップ漏洩量が急速に減少することによってリフレッシュ期間が長くなり得る。このように、温度が低い環境での揮発性メモリーは、非揮発性メモリーのような特性を示し得る。すなわち、最上のシステム性能を要求する要請に対応し、温度が低い環境で動作する第３グループのメモリー４２０Ｃが選択され得る。そうすれば、緊急処理が必要な要請のように相対的に優先順位が高い要請に対し、早い対応が可能なだけでなくパワーの消耗も減らすことができる。
【００４２】
そして、良好のシステム性能を要求する要請の場合、第２グループのメモリー４２０Ｂが選択され得る。また、第１グループのメモリー４２０Ａが室温でのように温度が高い環境で動作する場合、揮発性メモリーで動作速度が遅くなり得、オンチップ漏洩量の増加によってパワーの消耗が大きくなり得る。
【００４３】
したがって、第１グループのメモリー４２０Ａ、第２グループのメモリー４２０Ｂ及び第３グループのメモリー４２０Ｃは、多様な温度環境で用いられ、多様な性能又は特性を有する。これにより、第１グループのメモリー４２０Ａは、室温環境で動作する複数のメモリーに設定されてよい。第１グループのメモリー４２０Ａは、遅い速度で動作する第１特性（スロー特性；ＳＳ）を有するメモリーに設定されてよい。そして、第２グループのメモリー４２０Ｂは、低温環境で動作する複数のメモリーに設定されてよい。第２グループのメモリー４２０Ｂは、ノーマル速度で動作する第２特性（ノーマル特性；ＴＴ）を有するメモリーに設定されてよい。また、第３グループのメモリー４２０Ｃは、極低温環境で動作する複数のメモリーに設定されてよい。第３グループのメモリー４２０Ｃは、早い速度で動作する第３特性（ファスト特性；ＦＦ）を有するメモリーに設定されてよい。
【００４４】
図５は、図３の演算ブレードの構成を示した図である。
演算ブレード２００は、一つ以上の中央処理装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、ＣＰＵ）２１０Ａ〜中央処理装置２１０Ｃと、一つ以上のキャッシュ（Ｃａｃｈｅ）メモリー２２０Ａ〜キャッシュメモリー２２０Ｃ及びＩ／Ｏインターフェース２３０を備えてもよい。
【００４５】
ＣＰＵ２１０Ａ〜ＣＰＵ２１０Ｃは、メモリーブレード４００を制御するためのコマンドを生成する。このようなＣＰＵ２１０Ａ〜ＣＰＵ２１０Ｃは、図３に示された多数のメモリーブレード４００のうち、少なくとも一つ以上のメモリーブレード４００を分割、割当て又は指定できる。また、ＣＰＵ２１０Ａ〜ＣＰＵ２１０Ｃは、分割、割当て又は指定された少なくとも一つのメモリーブレード４００を初期化し、メモリーブレード４００で行われたデータの読み取り動作、書き込み（又はプログラム）動作等を制御できる。
【００４６】
キャッシュメモリー２２０Ａ〜キャッシュメモリー２２０Ｃは、レイテンシ（Ｌａｔｅｎｃｙ）を減らすために、ＣＰＵ２１０Ａ〜ＣＰＵ２１０Ｃの動作遂行中に必要なデータを格納できる。そして、キャッシュメモリー２２０Ａ〜キャッシュメモリー２２０Ｃは、ＣＰＵ２１０Ａ〜ＣＰＵ２１０Ｃの動作に必要なデータをキャッシュラインに格納し、メモリー４２０の特性情報に対応して除去動作が行われるメモリーの優先順位を選定する。実施形態により、キャッシュメモリー２２０Ａ〜キャッシュメモリー２２０Ｃは、ＣＰＵ２１０Ａ〜ＣＰＵ２１０Ｃに一対一で対応する構造を有してよい。
【００４７】
Ｉ／Ｏインターフェース２３０は、図３の相互接続ブレード３００を介するＣＰＵ２１０Ａ〜ＣＰＵ２１０Ｃと複数のメモリーブレード４００の間でのインターフェーシングを支援できる。Ｉ／Ｏインターフェース２３０は、一つ以上の有線又は有線通信技術と係わるプロトコルを用いて入出力動作を制御する。すなわち、Ｉ／Ｏインターフェース２３０は、ＣＰＵ２１０Ａ〜ＣＰＵ２１０Ｃから相互接続ブレード３００への送信データを出力し、相互接続ブレード３００からＣＰＵ２１０Ａ〜ＣＰＵ２１０Ｃで受信データを入力できる。
【００４８】
例えば、Ｉ／Ｏインターフェース２３０は、ＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）、ＱＰＩ（ＱｕｉｃｋＰａｔｈ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）、イーサネット（Ｅｔｈｅｒｎｅｔ）（登録商標）等のようなプロトコルによって、ＣＰＵ２１０Ａ〜ＣＰＵ２１０Ｃと相互接続ブレード３００の間の通信を支援できる。
【００４９】
図６は、図５のキャッシュメモリー２２０Ａ〜キャッシュメモリー２２０Ｃに関する詳細構成図である。本発明の実施形態でキャッシュメモリー２２０Ａ〜キャッシュメモリー２２０Ｃの構成は全て同一であるため、本発明の実施形態では、キャッシュメモリー２２０Ａの詳細構成を一例に説明する。
【００５０】
キャッシュメモリー２２０Ａは、アドレスデコーダ２１１、ウェイ（Ｗａｙ）ブロック２１２、データ処理部２１３、除去（Ｅｖｉｃｔｉｏｎ）回路２１４及び特性格納部２１５を備える。
【００５１】
ここで、アドレスデコーダ２１１は、ＣＰＵ２１０Ａから印加されるアドレスＡＤＤをデコーディングし、ウェイブロック２１２、除去回路２１４及び特性格納部２１５の当該アドレスを選択する。そして、ウェイブロック２１２は、ＣＰＵ２１０Ａの動作遂行中に必要なデータを格納するために、複数のウェイＷＡＹ０〜ＷＡＹ３を備えてもよい。
【００５２】
ここで、複数のウェイＷＡＹ０〜ウェイＷＡＹ３のそれぞれには、タグ住所、ダーティフラグ及びデータを含んでよい。ＣＰＵ２１０Ａから要請されるアドレスＡＤＤは、セット番号とタグ住所の組合せで生成されてよい。したがって、ＣＰＵ２１０Ａから要請された住所に対する値が、キャッシュメモリー２２０Ａに格納されているかを確認するため、要請されたアドレスＡＤＤによって自動に決定されるセットでその内部に含まれた多数のウェイＷＡＹ０〜ウェイＷＡＹ３のタグ住所を照会する。タグ住所に特定の値（例えば『０』）を指定し、当該ウェイが空いていることを表示することもできる。
【００５３】
そして、ダーティフラグは、キャッシュメモリー２２０Ａに格納されたデータがメモリー４２０に格納されたか否かを表示する。例えば、活性化されたダーティフラグは、ウェイＷＡＹ０〜ウェイＷＡＹ３に格納されたデータが更新されたが、メモリー４２０には格納されていないことを表示できる。したがって、キャッシュメモリー２２０Ａで追放されるウェイを確認し、ダーティフラグが活性化されたものであれば、そのデータを用いてメモリー４２０を更新できる。
【００５４】
データ処理部２１３は、キャッシュ交替政策に対応するデータを処理できる。例えば、キャッシュ交替政策は、最長未使用（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ；ＬＲＵ）動作又は先入先出（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ；  ＦＩＦＯ）動作を利用してキャッシュデータを交替することをいう。ここで、ＬＲＵ動作は、ヒット率（Ｈｉｔ  ｒａｔｉｏ）を高めるために、最近最も少なく使用したデータを順次に出力するための動作である。そして、ＦＩＦＯ動作は、先に入力されたデータを先に出力する動作である。
キャッシュメモリー２２０Ａは、限定された空間によってキャッシュ−フール（Ｃａｃｈｅ−Ｆｕｌｌ）の時、新しいデータローディングのために既に存在するデータを削除しなければならない特性を有する。このため、除去回路２１４は、キャッシュ−フール（Ｃａｃｈｅ−Ｆｕｌｌ）の時、データ処理部２１３の動作に基づいてデータの参照確率が低いデータを削除するか、メインメモリーにライトバック（ＷＲＩＴＥ−ＢＡＣＫ）し、当該空間のデータを新しいデータに交替（Ｒｅｐｌａｃｅｍｅｎｔ）する。そして、本発明の実施形態による除去回路２１４は、特性格納部２１５に格納された特性情報に基づいて除去動作を行うためのメモリーの優先順位を選定する。
【００５５】
特性格納部２１５は、上記で説明された第１グループのメモリー４２０Ａ、第２グループのメモリー４２０Ｂ及び第３グループのメモリー４２０Ｃに対する特性情報を格納する。例えば、特性格納部２１５は、上記で説明された第１グループのメモリー４２０Ａに対するデータアクセス速度の情報を格納できる。第１グループのメモリー４２０Ａに含まれたメモリーが４個のディーラムからなる場合を仮定する。そうすれば、特性格納部２１５は、第１グループのメモリー４２０Ａに含まれた各ディーラムのデータアクセス速度の情報を格納できる。第１グループのメモリー４２０Ａに含まれた４個のメモリーのうち、二つのディーラムは『ファスト（ＦＡＳＴ）』特性を有し、他の二つのディーラムは『スロー（ＳＬＯＷ）』特性を有する。
【００５６】
ここで、特性格納部２１５は、メモリーのデータアクセス速度の情報を１ビットデータとして格納できる。例えば、メモリーが『ファスト（ＦＡＳＴ）』特性を有する場合、データ『０』として格納し、メモリーが『スロー（ＳＬＯＷ）』特性を有する場合、データ『１』として格納できる。
【００５７】
データ処理部２１３のヒット率だけでキャッシュデータを除去する場合、ミスペナルティ（Ｍｉｓｓ  ｐｅｎａｌｔｙ）が全く考慮されない。これにより、本発明の実施形態は、特性格納部２１５を介してメモリー４２０の特性情報を格納し、メモリー４２０の特性を反映してキャッシュデータの除去動作に反映する。
【００５８】
図７及び図８は、図６の除去回路２１４に対する動作を説明するための図である。図７及び図８の実施形態では、メモリー４２０がディーラムからなる場合を一例に説明する。そして、図７及び図８の実施形態では、データ処理部２１３がＬＲＵ動作を利用してキャッシュデータを交替する場合を一例に説明する。
【００５９】
上記で説明されたように、ＣＰＵ２１０Ａとメモリー４２０の間の相対的な位置又はメモリー４２０の温度環境によってメモリーのデータアクセス速度が異なるため、各メモリー４２０が互いに異なる特性を有してよい。本発明の実施形態では、特性格納部２１５に各メモリー４２０に対する特性情報を格納する。そして、除去回路２１４は、特性格納部２１５に格納された情報に対応し、キャッシュラインの除去動作を行うためのメモリーの優先順位を決定する。
【００６０】
例えば、『フェスト（ＦＡＳＴ）』特性を有するメモリーと『スロー（ＳＬＯＷ）』特性を有するメモリーは、ミスペナルティ（Ｍｉｓｓ  Ｐｅｎａｌｔｙ）が互いに異なる。すなわち、『フェスト（ＦＡＳＴ）』特性を有するメモリーが『スロー（ＳＬＯＷ）』特性を有するメモリーよりミスペナルティ（Ｍｉｓｓ  Ｐｅｎａｌｔｙ）が小さくてよい。
【００６１】
ここで、ミスペナルティとは、キャッシュミスが発生し外部の主メモリーとアクセスしてキャッシュメモリーの当該ラインを主メモリーに格納されたデータで満たす動作、すなわち、ラインフィル（ｌｉｎｅ  ｆｉｌｌ）動作を遂行するにかかる時間である。これにより、『ファスト』特性を有するメモリーの場合、『スロー』特性を有するメモリーよりアクセスタイムが早いため、ファストメモリーに対する除去動作を先に行いミスペナルティを減らすことができる。
【００６２】
これにより、本発明の実施形態は『フェスト（ＦＡＳＴ）』特性を有するメモリーに対し、優先的に除去（Ｅｖｉｃｔｉｏｎ）動作を行いミスペナルティが小さいデータをキャッシュメモリー２２０Ａに格納する。
【００６３】
図７の実施形態では、除去回路２１４が先に除去動作の行われるメモリーを探索した後、ＬＲＵ動作を行うことを示す。
まず、除去回路２１４は、特性格納部２１５に格納された特性情報に基づいてメモリーにファストディーラム領域があるか否かを判断する（段階Ｓ１）。もし、ファストディーラム領域がある場合、ファストディーラムを除去ブロックとして決定する。そして、ファストディーラム内でデータ処理部２１３を介してＬＲＵ動作を行う（段階Ｓ２）。そして、除去回路２１４は、ＬＲＵ動作によってキャッシュデータの除去動作を行う（段階Ｓ４）。一方、ファストディーラム領域がない場合、スローディーラムを除去ブロックとして決定する。そして、スローディーラム内でデータ処理部２１３を介してＬＲＵ動作を行う（段階Ｓ３）。その後、除去回路２１４は、ＬＲＵ動作によってキャッシュデータの除去動作を行う（段階Ｓ４）。
【００６４】
図８の実施形態では、ＬＲＵ動作を先に行った後、除去動作が行われるメモリーを探索することを示す。
まず、除去回路２１４は、データ処理部２１３を介してＬＲＵ動作を行う（段階Ｓ１０）。その後、除去回路２１４は、特性格納部２１５に格納された特性情報に基づいて除去動作が行われるメモリーの優先順位を選定する（段階Ｓ１１）。
【００６５】
その後、除去回路２１４は、除去動作が行われる第第１順位がスローディーラムに該当するかを判断する（段階Ｓ１２）。その後、第１順位がスローディーラムの場合、第２順位がスローディーラムであるか否かを判断する（段階Ｓ１３）。
【００６６】
もし、第１順位がスローディーラムではない場合、ファストディーラムを第１順位に選定する。すなわち、ファストディーラムでミスペナルティを比較し、ミスペナルティが小さいファストディーラムを第１順位に選定して（段階Ｓ１４）、キャッシュラインの除去動作を行う（段階Ｓ１６）。
【００６７】
そして、第１順位がスローディーラムであるが第２順位がスローディーラムではない場合、順位を変更しファストディーラムを第１順位に選定する。ファストディーラムが第１順位ではないが、ファストディーラムで先に除去動作を行うためにファストディーラムを第１順位に変更する。すなわち、ファストディーラムでミスペナルティを比較し、ミスペナルティが小さいファストディーラムを第１順位に選定して（段階Ｓ１４）、キャッシュラインの除去動作を行う（段階Ｓ１６）。
【００６８】
一方、第１、２順位が全てスローディーラムの場合、スローディーラムを第１順位に選定し、ファストディーラムを第２順位に選定する。すなわち、ファストディーラムでミスペナルティを比較し、ミスペナルティが小さいファストディーラムを第２順位で選定して（段階Ｓ１５）、キャッシュラインの除去動作を行う（段階Ｓ１６）。
【００６９】
本発明が属する技術分野の当業者は、本発明がその技術的思想や必須的特徴を変更せずに他の具体的な形態で実施され得るため、以上で記述した実施形態は全ての面において例示的なものであり、限定的ではないものとして理解しなければならない。本発明の範囲は、詳細な説明よりは後述する特許請求の範囲によって表れるようになり、特許請求の範囲の意味及び範囲、そしてその等価概念から導出される全ての変更又は変形された形態が、本発明の範囲に含まれるものとして解釈されなければならない。
【符号の説明】
【００７０】
２１１：アドレスデコーダ
２１２：ウェイブロック
２１３：データ処理部
２１４：除去回路
２１５：特性格納部
【図１】
2020087409.tif 000003
【図２】
2020087409.tif 000004
【図３】
2020087409.tif 000005
【図４】
2020087409.tif 000006
【図５】
2020087409.tif 000007
【図６】
2020087409.tif 000008
【図７】
2020087409.tif 000009
【図８】
2020087409.tif 000010