(57)【特許請求の範囲】
【請求項１】
直接メモリアクセス（ＤＭＡ）装置を含む複数の要求元装置に接続されるメモリを有し、
前記メモリは、互いに積層された複数のメモリダイ及び複数のヴォールトコントローラを含むハードウェアロジック装置を備え、
前記複数のメモリダイ及び前記複数のヴォールトコントローラは一つのパッケージとして構成されていることによって、前記ＤＭＡ装置を含む前記複数の要求元装置はそのパッケージの外に設けられ、
前記複数のメモリダイは、互いに機能的及び処理的に独立して動作する複数のメモリヴォールトに分割され、
前記複数のメモリヴォールトの各メモリヴォールトは、前記複数のメモリダイの夫々のメモリダイの一部を包含し、
前記複数のメモリヴォールトの各メモリヴォールトは、対応するメモリヴォールトのメモリ操作を制御するように構成された前記複数のヴォールトコントローラのうち対応するヴォールトコントローラを備え、
前記メモリの中に内蔵された前記ハードウェアロジック装置は、前記複数の要求元装置のある要求元装置からの要求に応答して、前記複数のメモリダイに不連続に分散されて記憶されたデータを前記ハードウェアロジック装置内で統合し、その統合したデータを前記ある要求元装置に送信するように構成されている、ことを特徴とする装置。
【請求項２】
前記データは、画像を構成するデータであり、前記統合されたデータは、前記画像の特定の色を示す画素データである請求項１記載の装置。
【請求項３】
前記ハードウェアロジック装置は、前記統合したデータを修正し、前記修正したデータを前記ある要求元装置に送信することを特徴とする請求項１記載の装置。
【請求項４】
前記ハードウェアロジック装置は、前記統合したデータを修正し、前記修正したデータを前記ある要求元装置に送信することを特徴とする請求項２記載の装置。
【請求項５】
前記ハードウェアロジック装置は、前記分散されて記憶されたデータを単一キャッシュラインサイズのデータ部分に統合するように構成された請求項１記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概略として半導体メモリ及び方法に関し、より詳細には、メモリで制御されるデータ移動及びタイミングのための装置、電子装置可読媒体及び方法に関する。
【背景技術】
【０００２】
メモリ装置は、通常はコンピューティング装置または他の電子装置において内部半導体集積回路として設けられる。揮発性及び不揮発性メモリを含む様々なタイプのメモリがある。揮発性メモリは、そのデータ（例えば、ユーザデータ、誤差データなど）を保持するのに電力を必要とし、とりわけ、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）及び同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）を含む。不揮発性メモリは、非給電時にも記憶データを保持することによって永続的なデータを与えることができ、とりわけ、ＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ、読出し専用メモリ（ＲＯＭ）、電子的に消去可能なプログラマブルＲＯＭ（ＥＥＰＲＯＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、並びに位相変化ランダムアクセスメモリ（ＰＣＲＡＭ）、抵抗性ランダムアクセスメモリ（ＲＲＡＭ）及び磁気抵抗性ランダムアクセスメモリ（ＭＲＡＭ）のような抵抗変化型メモリを含む。
【０００３】
コンピューティング装置は、通常は、主メモリ（例えば、ＤＲＡＭ）及び二次メモリ（例えば、ハードドライブまたはソリッドステートドライブのようなストレージ）に結合された多数のプロセッサを含む。主メモリインターフェイスは、通常はプロセッサに密に結合され、またはスレーブ化される。これは、ＤＲＡＭでは、プロセッサのメモリコントローラが、（例えば、行アドレスストローブ（ＲＡＳ）／列アドレスストローブ（ＣＡＳ）プロトコルを介して）明示的にタイミング取りされたインターフェイスを管理することによって実現される。メモリが密度に関して標準的に最適化され、プロセッサが速度に関して標準的に最適化されてきたので、メモリの壁またはフォン・ノイマン・ボトルネックとして知られる両者間の不一致がもたらされる。この不一致によって、通常は、プロセッサとメモリの間の帯域幅が、プロセッサの速度またはメモリの密度以上に限られた資源となってしまう。
【図面の簡単な説明】
【０００４】
【図１】図１は、本開示の多数の実施形態による、多数のプロセッサ、多数の主メモリ装置及びそれらの間のインターフェイスを含むコンピューティング装置の形態における装置のブロック図を示す。
【図２】図２は、本開示の多数の実施形態による、プロセッサと主メモリの間のデータ移動処理を示す。
【図３】図３は、本開示の多数の実施形態による、メモリ装置と要求元装置の間に結合されたロジック装置のより詳細な図の説明を含む。
【図４】図４は、本開示の多数の実施形態による、多数のアドレス及びオフセットベースの要求及び応答のブロック図を示す。
【発明を実施するための形態】
【０００５】
プロセッサと主メモリの間の理論上のメモリインターフェイスは、プロセッサによる明示的な制御から切り離されたタイミング（及び場合によっては切り離されたネーミング）に備えることができる。理論上のインターフェイスを有する主メモリの一実施例は、ハイブリッドメモリキューブ（ＨＭＣ）である。ＨＭＣでは、この機能は、ハードウェアロジック（例えば、ロジック層メモリ制御）に結合されたパケット化されたネットワークプロトコルによって実現される。そのようなインターフェイスによって、簡素化されたプロセッサ側メモリコントローラインターフェイス、主メモリ要求の順序の乱れの回復、主メモリの局部化されたＲＡＳ及び／またはＣＡＳ管理、マルチプロセッサ装置における高度なメモリトポロジー及び共有ストラテジー、同種及び異種のローカルに管理された同期機能及びメタデータ記憶、並びに（例えば、ワードまたはブロックなどのメモリの故障部分がメモリのロジック層などによって再マッピングされる）弾力性を可能とする。
【０００６】
高性能演算、グラフに基づく分析、データマイニング、ナショナルセキュリティ、データベース技術及び他の市販ドライバといったアプリケーションは、データが一般に乏しい空間的ローカリティ及び／または時間的ローカリティを示すような多くのプロセッサにおけるキャッシュベースのアーキテクチャには不向きな疎らなメモリアクセスパターンを呈する。主メモリに対して汎用化されたデータ移動機能は、メモリ帯域幅及びキャッシュベースのアーキテクチャをより好適に利用する機会を与えることができる。
【０００７】
本開示は、メモリで制御されるデータ移動及びタイミングのための装置、電子装置（例えば、コンピューティング装置）可読媒体及び方法を含む。多数の電子装置可読媒体が、メモリ（例えば、主メモリ）内のデータ移動処理のプログラム可能な制御を提供する、電子装置によって実行可能なインストラクションを記憶する。主メモリは、メモリと関連のプロセッサとの間の相互作用のために、関連のプロセッサから独立してタイミング制御を提供することができる。当業者には分かるように、「主メモリ」は、プロセッサによって直接アクセス及び操作できるデータを記憶するメモリを記述する技術用語である。主メモリの一実施例はＤＲＡＭである。主メモリは、データの主な記憶を与え、揮発性メモリまたは不揮発性メモリである（例えば、不揮発性デュアル・インライン・メモリ・モジュール（ＤＩＭＭ）などの主メモリとして管理される不揮発性ＲＡＭの場合）。二次ストレージは、データの二次的記憶を与えるのに使用することができ、プロセッサによって直接アクセス可能でなくてもよい。一方、ここで使用する「主メモリ」は、必ずしも揮発性メモリである必要はなく、ある実施形態では不揮発性メモリとなり得る。
【０００８】
本開示の以降の詳細な説明において、本開示の一部を形成し、本開示の１以上の実施形態がどのように実施されるかの説明として示す添付図面が参照される。これらの実施形態は、当業者が本開示の実施形態を実施することができる程度に充分に記載され、他の実施形態が利用され得ること、並びに処理上の、電気的な、及び／または構造的な変更が本開示の範囲から逸脱することなくなされ得ることが理解される。特に図面における符号に関してここに使用される表記「Ｂ」、「Ｌ」、「Ｍ」、「Ｎ」及び「Ｐ」は、そのように指定された多数の特定の構成が含まれ得ることを示す。ここに使用される「多数の」特定の物とは、そのような物の１以上を意味することができる（例えば、多数のメモリ装置とは、１以上のメモリ装置のことを意味することができる）。
【０００９】
ここにおける図面は、最初の単数桁または複数桁の数字が図面番号に対応し、残余の桁の数字がその図面における要素または構成部材を特定するという符号付けに従う。異なる図面間における同様の要素または構成部材は、同様の数字の使用によって特定され得る。例えば、１０６は図１における参照要素「０６」を示し、同様の要素が図２においては２０６として表される。理解されるように、ここでの種々の実施形態において示す要素は、本開示の多数の追加の実施形態を提供するように、付加、置換及び／または削除され得る。さらに、理解されるように、図面において与えられる要素の比率及び相対尺度は、本発明の特定の実施形態を説明するためのものであり、限定的な意味で捉えられるべきではない。
【００１０】
図１に、本開示の多数の実施形態による、多数のプロセッサ１０２−１、・・・、１０２−Ｐ、多数の主メモリ装置１０４−１、・・・、１０４−Ｍ及びそれらの間のインターフェイス１０６を含むコンピューティング装置１００の形態の装置のブロック図を示す。ここに使用される、コンピューティング装置１００、プロセッサ１０２、メモリ装置１０４またはインターフェイス１０６も個別に「装置」と考えることができる。コンピューティング装置１００は、プロセッサ及びプロセッサによってアクセスされるデータを記憶する主メモリを含む任意の電子装置である。コンピューティング装置１００の実施例は、スーパーコンピュータ、パーソナルコンピュータ、ビデオカード、サウンドカード、及びラップトップコンピュータ、タブレット、スマートフォンなどの可搬電子装置を含む。
【００１１】
プロセッサ１０２−１、・・・、１０２−Ｐは、任意のタイプの汎用プロセッサであればよい。例えば、プロセッサ１０２−１、・・・、１０２−Ｐは、キャッシュベースのプロセッサ、ベクトルプロセッサ（例えば、単一インストラクション複数データ（ＳＩＭＤ））、スカラプロセッサ（例えば、単一インストラクション単一データ（ＳＩＳＤ））、複数インストラクション単数データ（ＭＩＳＤ）プロセッサ、複数インストラクション複数データ（ＭＩＭＤ）プロセッサなどである。ある実施形態では、プロセッサ１０２−１、・・・、１０２−Ｐは、主メモリ装置１０４−１、・・・、１０４−Ｍのタイミング制御を提供しない。プロセッサ１０２−１、・・・、１０２−Ｐは、要求に対応付けられた読出し時間を認識することなく、要求を主メモリ装置１０４−１、・・・、１０４−Ｍにインターフェイス１０６を介して送信するように構成されることができる（例えば、プロセッサ１０２−１、・・・、１０２−Ｐは、要求されたデータがプロセッサ１０２−１、・・・、１０２−Ｐによって受信される時を制御せず、及び／または認識していない）。プロセッサ１０２−１、・・・、１０２−Ｐは、それらに対応付けられたタイミングを有さずに、要求にいつ応答するかの判断を主メモリ装置１０４−１、・・・、１０４−Ｍに委ねることができる。
【００１２】
主メモリ装置１０４−１、・・・、１０４−Ｍは、プロセッサ１０２−１、・・・、１０２−Ｐによって処理されるデータを記憶することができる。主メモリ装置の実施例として、とりわけ、ＤＲＡＭ及びＨＭＣがある。一方、本開示の多数の実施形態によると、主メモリ装置１０４−１、・・・、１０４−Ｍは、主メモリ装置１０４−１、・・・、１０４−Ｍとプロセッサ１０２−１、・・・、１０２−Ｐとの間の相互作用のために、プロセッサ１０２−１、・・・、１０２−Ｐから独立してそれらのタイミングを制御することができる。例えば、主メモリ装置１０４−１、・・・、１０４−Ｍは、主メモリ装置１０４−１、・・・、１０４−Ｍにアクセスするために行アドレスストローブ（ＲＡＳ）及び／または列アドレスストローブ（ＣＡＳ）のそれら自体のタイミング制御を行うことができる。そのようなタイミング制御の実施例は、ランダムな読出しまたは書込みサイクル時間、アクセス時間などを含む。
【００１３】
ある実施形態では、主メモリ装置１０４−１、・・・、１０４−Ｍ内のデータ移動処理のプログラム可能な制御が（例えば、プログラマによって与えられる実行可能なインストラクションによって）提供される。そのような処理の実施例は、統合／分散処理、アドレスベースの処理、オフセットベースの処理、ストライドされた処理、ポインタベースの処理などを含む。強化されたデータ移動セマンティクスは、プログラマに開示されることができる（従前の何らかの手法によると、プログラマには、主メモリ２０４におけるデータ移動処理を制御する能力は与えられなかった）。そのような実施形態は、主メモリ装置１０４−１、・・・、１０４−Ｍ内のデータを、それが将来の処理のためにインターフェイス１０６を介してプロセッサに転送される前に移動させることによってインターフェイス１０６の帯域の使用を減少させるインストラクションが書き込まれることを可能とすることにおいて有益である。利点として、演算またはそのような処理のシーケンスの全体的な待ち時間を減少させることも含まれる。主メモリ装置１０４−１、・・・、１０４−Ｍ内のそのような移動処理のより具体的な実施例がここに記載される。例えば、主メモリ装置１０４−１、・・・、１０４−Ｍはデータ構造体を記憶し、そのデータ構造体をプロセッサ１０２−１、・・・、１０２−Ｐからのインストラクションのストリームから独立してトラバースすることができる。プロセッサ１０２−１、・・・、１０２−Ｐは主メモリ装置１０４−１、・・・、１０４−Ｍに対して所定のデータを要求することができるが、主メモリ装置１０４−１、・・・、１０４−Ｍは（例えば、インターフェイス１０６の帯域の使用の観点で）より効率的にプロセッサ１０２−１、・・・、１０２−Ｐからのデータについての要求に応答するために、プロセッサ１０２−１、・・・、１０２−Ｐからの要求はデータ移動を具体的には要求していないが、データ構造体を独立してトラバースしてデータを移動させることができる。インターフェイス１０６の帯域をより効率的に利用することに加えて、本開示の実施形態は、同等の結果のためにより少ない回数で送信することによって（例えば、高密度データを送信することであり、それは疎らなデータを送信するよりも少ない転送で済む）、インターフェイス１０６の使用に関連する電力消費を低減することができる。
【００１４】
図２は、本開示の多数の実施形態による、プロセッサ２０２と主メモリ２０４の間のデータ移動処理を示す。プロセッサ２０２は、図１に示すプロセッサ１０２−１、・・・、１０２−Ｐと同様であればよい。プロセッサ２０２はキャッシュベースのプロセッサであればよく、例えば、処理部（例えば、中央処理装置（ＣＰＵ））２０８、処理部２０８に結合された第１レベルのキャッシュ「Ｌ１」２１０−１、第１レベルのキャッシュ２１０−１に結合された第２レベルのキャッシュ「Ｌ２」２１０−２、第２レベルのキャッシュ２１０−２に結合された多数の追加レベルのキャッシュ「ＬＮ」２１０−Ｌを含む。第１レベルのキャッシュ２１０−１、第２レベルのキャッシュ２１０−２及び追加レベルのキャッシュ２１０−Ｌは、ここでは一般的にキャッシュ２１０という。実施形態は、特定レベル数のキャッシュに限定されず、図２に示すものよりも多い、または少ないキャッシュを含むことができる。キャッシュ２１０は、処理部２０８によって使用されて、主メモリ２０４からの頻繁に使用されるデータを記憶することによって主メモリ２０４にアクセスする平均時間を短縮することができる。処理部２０８によってキャッシュ２１０にアクセスする際の待ち時間は、処理部２０８によってインターフェイス２０６を介して主メモリ２０４にアクセスする際の待ち時間よりも短い。インターフェイス２０６は図１に示すインターフェイス１０６と同様であればよく、主メモリ２０４は図１に示す主メモリ装置１０４−１、・・・、１０４−Ｍと同様であればよい。
【００１５】
図２はまた、キャッシュ２１０におけるキャッシュライン２１２の描写を示す。キャッシュ２１０の下の図における各行はキャッシュラインを表し、特定のキャッシュライン２１２が、各ブロックにおいて「ｘ」で示されるデータで図示される。キャッシュ２１０は、固定のキャッシュラインサイズ（例えば、キャッシュラインに格納できるデータの所定バイト数）を有する。キャッシュとの（例えば、主メモリ２０４からの）相互作用は、単一キャッシュラインサイズのデータ部分に等しい固定のデータ増分で発生する。本開示の多数の実施形態によると、主メモリ２０４は、主メモリ２０４において分散したデータを単一キャッシュラインサイズのデータ部分２１６に統合することによってプロセッサ２０２からのデータの要求に応答するように構成されることができる。図２に関して、主メモリ２０４において分散したデータは、主メモリ２０４の行２１４における「ｘ」の記入によって表される。主メモリは、図示するように、データをプロセッサ２０２にインターフェイス２０６を介して転送する前に、データ（ｘ）を単一キャッシュラインサイズのデータ部分２１６に統合するように構成されることができる。説明するように、要求されたデータは、要求されたデータ及び周辺データが複数のキャッシュラインサイズのデータ部分を構成するように、主メモリ２０４において不連続的に分散している。ここに記載されるように、主メモリ２０４は処理（例えば、統合処理）のタイミングを制御することができ、プロセッサ２０２はデータの要求に関連する読出し時間を認識していない（例えば、プロセッサは、いつデータが主メモリ２０４からプロセッサ２０２に送信されるかを認識または制御しない）。
【００１６】
これに対して、主メモリ２０４にアクセスするためのいくつかの従前の手法は、プロセッサ２０２が処理のタイミングを制御することを含んでいた。またさらに、そのようなデータの要求は、要求されたデータ（ｘ）を含む各行２１４を、最初にデータを単一キャッシュラインサイズのデータ部分２１６に統合することなく転送することによって、主メモリ２０４からの複数の応答を受けていたことになる。潜在的に、要求されていないデータ（例えば、プロセッサ２０２に要求されていない（空欄で表される）周辺データ）とともに、各行２１４がインターフェイスを介して個別に送信されていたため、そのような従前の手法はインターフェイス２０６の帯域をより多く消費していたことになる。そして、主メモリ２０４から受信されたデータを処理（例えば、フィルタリング）して、要求されたデータ（例えばｘ）を分離して更に処理することをプロセッサ２０２に依存していた。一方、本開示によると、要求されていないデータを送信することなく、要求されたデータをプロセッサに送信することができる。
【００１７】
本開示の多数の実施形態によると、プロセッサからの要求は、多数の属性の表示を含むことができる。属性は、オブジェクト、要素またはファイルのプロパティを規定する仕様であればよい。属性は、データの所与のインスタンスに対する特定の値のことをいう。例えば、主メモリが画像を構成するデータを記憶する場合、画像の属性は、（特定の色が属性である場合）特定の色を有する画素値となり得る。主メモリ２０４に記憶された属性に対するプロセッサからの要求に応じて、主メモリ２０４は、主メモリに記憶されたデータ構造体を検査してデータ構造体が属性を含むかどうかを判定する。主メモリ２０４は、データ構造体が属性を含むと判定したことに応じて、属性を示すデータ（例えば、画像における特定の色を示すデータ）をプロセッサ２０２に返すことができる。上記多数の属性は、主メモリ２０４から統合される属性または主メモリ２０４に分散される属性となる。統合処理が特に有益な（プロセッサ２０２からの）要求のタイプの実施例は、検索要求（例えば、「データ構造体に記憶されたデータのうち、基準に一致する値を返送せよ」、ここで「x」は基準に一致するデータを表す）及びフィルタ要求（例えば、「データ構造体に記憶されたデータのうち、所与の述部がブール真の値を返すための値を返送せよ」、ここで、「x」は所与の述部に対するブール真の値を返すデータを表す）である。
【００１８】
本開示のある実施形態によると、プロセッサ２０２が要求データを修正した後に、修正された要求データを主メモリ装置２０４に返すことができる。主メモリ装置２０４は、修正データ（例えば、単一キャッシュラインサイズの修正データ部分２１６）を受信し、修正データを、それが、要求データが統合される前と同じ位置で主メモリ装置２０４のデータ構造体に記憶されるように分散させることができる。したがって、プログラム可能な制御が、主メモリ２０４内のデータ移動処理（例えば、統合及び／または分散処理）に対して提供される。
【００１９】
主メモリ２０４（例えば、主メモリ２０４に関連するハードウェアロジック）は、統合されたデータがプロセッサ２０２によって解放されるまで、データがそこから統合される主メモリ２０４における位置が利用不可であることの表示を提供するように構成されることができる。そのような実施形態は、（例えば、直接メモリアクセス（ＤＭＡ）要求または他のプロセッサからの要求など、他のリクエストに応じて古いデータが供給されないように）同期メカニズムを提供することができる。表示は、表示の中でもとりわけ、テーブル、ｆｕｌｌ／ｅｍｐｔｙビット、または基底及び限界レジスタであればよい。
【００２０】
多数の実施形態において、プロセッサ２０２からの要求は、データが主メモリ２０４によって修正されることであり、データは主メモリ２０４のデータ構造体において分散している。主メモリ２０４（例えば、そのハードウェアロジック）は、主メモリ２０４内のデータに（例えば、メモリ内処理（ＰＩＭ）を介して）修正を与えるように構成されることができる。要求に応じて、主メモリ２０４は、データ構造体に基づいて主メモリ２０４におけるデータ統合処理を開始及び実行することができる。主メモリ２０４は、（メモリインターフェイス２０６を介してデータを転送することなく、及び／またはプロセッサを使用することなく）主メモリにおいて統合データにデータ修正処理を開始及び実行するように構成されることができる。修正処理の一実施例は、統合されたデータ（例えば、統合データの各単位）の値を調整することを含む。そのような実施例は、装置が、例えば、ビデオカードであり、要求された修正が、例えば、プロセッサ２０２が、画像を構成するデータに対してより複雑な処理を実行する前またはそれを周辺装置（例えば、モニタ）に転送する前に、主メモリ２０４に記憶された画像における特定色の明るさを増加させることである場合に、有益である。主メモリ２０４は、修正を完了した後に、修正されたデータをプロセッサ２０２に送信するように構成されることができる。ここに記載されるように、主メモリ２０４は、プロセッサ２０２から独立して主メモリ２０４のタイミングを制御することができる。主メモリ２０４がプロセッサ２０２の直接の制御なしにデータを修正する（同様に、データを移動する）能力を含むようなこれらの実施形態について、主メモリ２０４は、プロセッサ２０２のピアとして扱われることができる（例えば、主メモリ２０４は、アドレス空間を拡張するためのプロセッサ２０２のキャッシュ２１０の拡張として扱われることができる）。
【００２１】
図３に、本開示の多数の実施形態による、主メモリ装置３０４及び多数の要求元装置３０２、３１８及び３２１を含むコンピューティング装置３００の形態の装置のブロック図を示す。要求元装置の実施例は、とりわけ、プロセッサ３０２、ＤＭＡ装置３１８及び／またはメモリユニット３２１を含むことができる。プロセッサ３０２は、図１に示すプロセッサ１０２−１、・・・、１０２−Ｐと同様であればよい。メモリユニット３２１は、図１に示す主メモリ１０４及び／または主メモリ以外の他のメモリユニットと同様であればよい。コンピューティング装置３００は、図１に示すコンピューティング装置１００と同様であればよい。図３では、ハイブリッドメモリキューブ（ＨＭＣ）である主メモリ３０４の具体的実施例についての、より詳細が示される。図３に示す主メモリＨＭＣ３０４は、図１に示す主メモリ装置１０４−１、・・・、１０４−Ｍと同様であればよい。
【００２２】
ＨＭＣ３０４は、スルー・シリコン・ビア（ＴＳＶ）を用いて相互に積層された複数のメモリ装置３２０−１、３２０−２、３２０−３、・・・、３２０−Ｂ（例えば、ＤＲＡＭダイ）及びハードウェアロジック装置３２２（例えば、ロジックダイ、特定用途向け集積回路（ＡＳＩＣ）、他の装置の対応するロジックなど）を含む単一のパッケージであればよい。ただし、他の実施形態は異なっていてもよい（例えば、ハードウェアロジック装置３２２は、必ずしもメモリ装置３２０に積層されていなくてもよい）。ＨＭＣ３０４内のメモリはサブセット（例えば、ヴォールト）３２４に整理され、各ヴォールト３２４は他のヴォールト３２４から機能的及び処理的に独立している。各ヴォールト３２４は、メモリ装置３２０の各々からのメモリの仕切を含む。各ヴォールト３２４は、ヴォールト３２４に対するメモリコントローラと同様に機能する、ロジック装置３２２におけるハードウェアロジックユニット３２８（例えば、ヴォールトコントローラ）を含むことができる。各ヴォールトコントローラ３２４は、複数のメモリ装置３２０のそれぞれのサブセットに結合されることができる。例えば、（例えば、プロセッサのような要求元装置によって管理される代わりに）ヴォールト３２４に対する、それ自体のタイミング要件を判定することを含むメモリ処理をヴォールトコントローラ３２８が管理することができる。ヴォールトコントローラ３２８は、プロセッサ３０２との要求及び応答のための多数のバッファを含むことができ、多数のバッファを利用して、要求がプロセッサ３０２から受信された順序に関して順不同でプロセッサ３０２に応答を送信することができる。したがって、プロセッサ３０２は、要求に関連する読出し時間を認識せずに要求をＨＭＣ３０４にインターフェイスを介して送信するように構成されることができる。
【００２３】
図３は、メモリ装置３２０と要求元装置３０２、３１８及び３２１との間に結合されたロジック装置３２２の、より詳細な説明を含む。ロジックベース３２２は、各ヴォールト（例えば、ヴォールト制御）に対するメモリ制御ロジック３２８を含むことができる。ヴォールトコントローラ３２８は、ヴォールト３２４の機能を併合することができるＨＭＣ３０４に対する共有メモリ制御ロジック３３０に結合されることができる。一方、ヴォールト３２４の各々は相互に独立して直接制御されることができるため（例えば、制御されるタイミング、アクセスなど）並びに共有メモリ制御ロジック３３０は必ずしも要求元装置３０２、３１８及び３２１とインターフェイス（例えば、直接、インターフェイスで接続）しないため、共有メモリ制御ロジック３３０は、従来的な意味での中央メモリコントローラを必ずしも備えていない。したがって、ある実施形態によっては、コンピューティング装置３００及び／または主メモリ３０４は、中央メモリコントローラを含まない。メモリ制御ロジック３３０は、スイッチ３３２（例えば、クロスバースイッチ）に結合されることができる。スイッチ３３２は、ヴォールト３２４からの集合的な内部帯域の利用可能性を入力／出力（Ｉ／Ｏ）リンク３３６に与えることができる。スイッチ３３２は、リンクインターフェイスコントローラ３３４に結合されることができ、それは要求元装置３０２、３１８及び３２１に対してＩ／Ｏリンク３３６を制御する。例えば、Ｉ／Ｏリンク３３６は、シリアルな完全二重入力／出力リンクであればよい。ロジック装置３２２は、主メモリ３０４についての論理的／物理的なインターフェイスを提供することができる。
【００２４】
主メモリ３０４は、とりわけ、プロセッサ３０２、ＤＭＡ装置３１８及び／またはメモリユニット３２１のような要求元装置から要求を受信することができる。ここに説明するように、ある実施形態では、主メモリ３０４は、データがそこから統合される主メモリ３０４における位置が、統合データが要求元装置３０２、３１８及び３２１によって解放されるまで利用不可であることの表示を与えるように構成されることができる。そのような実施形態は、（例えば、データがプロセッサ３０２によって処理されている間に、ＤＭＡ装置３１８からの要求に応じて古いデータが供給されないように）同期メカニズムを提供することができる。
【００２５】
図４に、本開示の多数の実施形態による、多数のアドレス及びオフセットベースの要求及び応答のブロック図を示す。要求元装置（例えば、多数のキャッシュベースのプロセッサ）は主メモリ装置に要求を与えることができ、ある実施形態によっては、要求は、主メモリ装置が要求に応答するまで要求元装置によるバッファリングを可能とするタグ４４８を含むことができる。主メモリ装置が要求元装置からの要求に応じて処理のタイミングを制御するので、主メモリ装置が要求に応答する時に応答がどの要求に適合するのかを要求元装置がタグ４４８に基づいて迅速に識別することができるといったように、要求元装置はその要求についてタグ４４８を追跡することからの利益を得ることができる。主メモリ装置は、データ構造体（例えば、とりわけ、リンクされたリスト、ツリー及びグラフ）を記憶し、要求元装置からの要求に応じてデータ構造体をトラバースするように構成されることができる。要求は、とりわけ、アドレスベースの要求４４０、オフセットベースの要求４４４、ストライドされた要求、及びポインタベースの要求を含むことができる。主メモリ装置は、同種において応答するように構成されることができる（例えば、アドレスベースの要求４４０にはアドレスベースの応答４４２が対応し、オフセットベースの要求４４４にはオフセットベースの応答４４６が対応するなど）。
【００２６】
アドレスベースの要求は、要求を識別するタグ４４８、要求される要素４５０（例えば、多数のバイト、ワードなど）のタイプ及び／またはサイズの表示、多数の要求される要素４５２の表示、並びに要素が記憶される多数のアドレス４５４−１、・・・、４５４−Ｎを含むことができる。アドレスベースの応答は、タグ４４８及び要求に対応するデータ要素４５６−１、・・・、４５６−Ｎを含むことができる。
【００２７】
オフセットベースの要求は、要求を識別するタグ４４８、要求される要素４５０（例えば、多数のバイト、ワードなど）のタイプ及び／またはサイズの表示、ベースアドレス４５８、多数の要求される要素４５２の表示、並びに要素が記憶される多数のオフセットインデックス４６０−１、・・・、４６０−Ｎを含むことができる。オフセットベースの応答は、タグ４４８及び要求に対応するデータ要素４５６−１、・・・、４５６−Ｎを含むことができる。
【００２８】
具体的には図示しないが、ストライドされた要求は、要求を識別するタグ、要求される要素（例えば、多数のバイト、ワードなど）のタイプ及び／またはサイズの表示、ベースアドレス、並びに多数の要求される要素の表示を要求が含むことができる点でオフセットベースの要求に類似する。一方、ストライドされた要求は、オフセットを含む代わりに、ストライド（例えば、次の所望のアドレスを見つけるためにベースアドレスまたは以前にアクセスされたアドレスに付加できる番号）を含む。ストライドされた応答は、タグ及び要求に対応するデータ要素を含むことができる。
【００２９】
具体的には図示しないが、ポインタベースの要求は、主メモリにおけるデータ構造体へのポインタ、多数の属性（例えば、データ構造体から主メモリによって統合されて要求元装置に返される多数の属性）の表示、及び逆参照されるポインタのリストの表示（例えば、どれだけのポインタが逆参照されるべきかの表示を含む）、並びに要求についての多数の条件及び対応する処理を含むことができる。主メモリは、ポインタによるデータ構造体、多数の属性の表示及びポインタのリストの表示を検査し、対応する条件が充足されることに応じて処理を実行することができる。主メモリは、リストの終了に達するまで、またはポインタの閾数が逆参照されるまで、ポインタのリストを逆参照することによってデータ構造体を検査することができる。ポインタを逆参照することは、ポインタによって示されるデータを取得すること（例えば、ポインタによって示される主メモリ内の位置からデータを取得すること）を含むことができる。データ構造体を検査することは、特定のポインタによって参照されるデータ構造体が属性を含むかどうかを判定することを含むことができ、主メモリは、ポインタによって参照されるデータ構造体が属性を含むと判定したことに応じて、属性を含むデータを要求元装置に返すことができる。ある実施形態では、主メモリは、ポインタによって参照されるデータ構造体が属性を含むと判定したことに応じて、要求元装置からの要求を複製することによって新たな要求を生成することができる。
【００３０】
条件及び対応する処理の実施例は、データが設定値または検索キーに一致したことに応じて、属性を含むデータを要求元装置に返すことを含む。他の実施例は、一致に応じて、属性を含むデータの自動更新を実行することを含む。他の実施例は、ポインタの残余数が標識値（例えば、処理を終了させる値、例えば、ゼロ）であることまたはポインタの閾数が逆参照されたことに応じて、要求に対する処理を終了することを含む。データ構造体の実施例は、リンクされたリスト、ツリー及びグラフを含む。
【００３１】
このように具体的には図示しないが、実行可能なインストラクションを記憶するための非一時的なコンピューティング装置可読媒体は、全ての形態の揮発性メモリ及び不揮発性メモリを含み、例示として、半導体メモリ装置、ＤＲＡＭ、ＨＭＣ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ装置、固定された、フロッピー及び取外し可能ディスクなどの磁気ディスク、テープを含む他の磁気媒体、コンパクトディスク（ＣＤ）、デジタル多目的ディスク（ＤＶＤ）及びＢｌｕ−Ｒａｙディスク（ＢＤ）などの光学媒体などを含む。インストラクションは、ＡＳＩＣによって補完され、またはＡＳＩＣに組み込まれてもよい。
【００３２】
具体的な実施形態がここに図示及び説明されたが、当業者であれば、同じ結果を実現するように計算された構成が開示の具体的実施形態に置換可能であることが分かるはずである。この開示は、本開示の１以上の実施形態の適応例または変形例を範囲とするものである。上記説明は説明的態様でなされたものであって限定的なものではないことが理解される。上記実施形態の組合せ、及びここに具体的に説明しない他の実施形態は、上記説明を検討すれば当業者には明らかなものとなる。本開示の１以上の実施形態の範囲は、上記構成及び方法が使用される他のアプリケーションを含む。したがって、本開示の１以上の実施形態の範囲は、添付の特許請求の範囲を参照して、その特許請求の範囲に権利が与えられる均等の全範囲とともに決定されるべきである。
【００３３】
上記の詳細な説明では、開示の合理化のために、ある構成が単一の実施形態において併合されている。本開示の方法は、本開示において開示される実施形態が、各請求項に明示的に記載されるよりも多くの構成を用いる必要があるとの意図を反映するものとして解釈されるべきではない。逆に、以降の特許請求の範囲が反映するように、発明の要旨は、単一の開示の実施形態の全構成よりも少ない構成において存在する。したがって、以降の特許請求の範囲は、各請求項がそれ自体で個別の実施形態として成立する状態で、詳細な説明に取り込まれる。
【図１】
0006280214.tif 000002
【図２】
0006280214.tif 000003
【図３】
0006280214.tif 000004
【図４】
0006280214.tif 000005