(57)【要約】  フォールト・トレラント・コンピュータ・システム・アーキテクチャは、２つの種類の動作ドメインを含み、すなわち、データおよび命令を処理する従来の第１のドメイン（ＤＩＤ）と、データに限定されないが、アルゴリズムおよび防護ルールセットを含む「メタ情報」に従って、ＤＩＤをメンタリングするメンタープロセッサを含む新規の第２のドメイン（ＭＭドメイン）とを含む。「メンタリング」という用語は、（本明細書の以下で定義されるように）、他のものの間で、メタ情報を適用および使用し、ルールセットを施行すること、および／またはＤＩＤ内のリソースが、とりわけ、効率的な故障補正のために、周囲のものと交換される、抽象概念および仮想概念を動的に構築することを意味する。メタ・メンター・プロセッサは、信号を、ハードウェア要素およびソフトウェア要素に、およびハードウェア要素およびソフトウェア要素から経路づけるフォールト・トレラント・メンター・スイッチにより、システムおよびサブシステムを生成する。生成されるシステムおよびサブシステムは、実行する処理によって定義される、別々に、または同時に処理され得る、別個のサブアーキテクチャおよびユニークな構成である。
2015517712.tif 000002
【特許請求の範囲】
【請求項１】
動的に構築可能なコンピュータシステムであって、
ａ．データおよび命令ドメインと、
ｂ．メタ・メンター・ドメインと、
を備え、
前記データおよび命令ドメインは、
ｉ．前記データおよび命令ドメインでのみ動作するプロセッサのセットと、
ｉｉ．前記データおよび命令ドメインで動作可能なメモリのセットと、
を有し、
前記メタ・メンター・ドメインは、
ｉ．メタ情報と、
ｉｉ．前記メタ情報を含むメンター・ドメイン・メモリと、
ｉｉｉ．前記メンター・ドメイン・メモリへのアクセスを含むメンター・ドメイン・プロセッサのセットと、
ｉｖ．前記データおよび命令ドメイン内において、前記プロセッサおよびメモリのセット間での通信をもたらし、前記メンター・ドメイン・プロセッサのセットと協働して、前記メタ情報に従ってすべての前記通信のメンタリングを行うメンタースイッチのセットと、
を有する、コンピュータシステム。
【請求項２】
前記データおよび命令ドメインでのみ動作する前記プロセッサのセットが、フォンノイマン、ハーバード、改良ハーバード、またはデータフローアーキテクチャを有する１つまたは複数のプロセッサを含む、請求項１に記載のコンピュータシステム。
【請求項３】
前記メンター・ドメイン・プロセッサのセットによる前記メンタリングは、
システム割込を受信することと、
割込サービス処理を、前記データおよび命令ドメイン内における前記プロセッサおよびメモリのセットに選択的に割り当てること、
を含む、請求項１に記載のコンピュータシステム。
【請求項４】
前記メンター・ドメイン・プロセッサのセットによる前記メンタリングは、システム入力および出力動作を抽象化することを含む、請求項１に記載のコンピュータシステム。
【請求項５】
前記メタ情報が、前記データおよび命令ドメイン内で抽象概念および／または仮想概念を生成するために前記メンター・ドメイン・プロセッサのセットによって使用されるアルゴリズムを含む、請求項１に記載のコンピュータシステム。
【請求項６】
前記メンタースイッチのセットは、前記データおよび命令ドメインでのみ動作する前記プロセッサのセットと、前記データおよび命令ドメインで動作可能な前記メモリのセットと、の間に、動的に構成可能な通信パスを備え、
前記メンター・ドメイン・プロセッサのセットは、前記メタ情報に従って、要望通りに、前記通信パスを選択的に構成および再構成する、請求項１に記載のコンピュータシステム。
【請求項７】
ａ．前記メタ情報が、ルールのマスターセットを含み、
ｂ．前記メンター・ドメイン・プロセッサのセットが、
ｉ．ルールサーバとして機能する第１のプロセッサと、
ｉｉ．対応する、前記データおよび命令ドメインでのみ動作するプロセッサのセットをメンタリングする第２のプロセッサのセットと、
を有し、
前記メンタリングは、前記第１のプロセッサによってもたらされる前記マスタールールのサブセットを少なくとも実施することを含み、
前記ルールの前記サブセットは、前記対応する、前記データおよび命令ドメインでのみ動作するプロセッサのセットによって実行されるプロセスに関連する、
請求項１に記載のコンピュータシステム。
【請求項８】
前記メンター・ドメイン・メモリが、
ａ．前記第１のプロセッサによってアクセス可能な前記ルールのマスターセットを含む第１のメモリと、
ｂ．前記第２のプロセッサのセットに対応する第２のメモリのセットと、
を備え、
第２のメモリのそれぞれは、前記第２のメモリのそれぞれの対応する第２のプロセッサのセットによって実行される前記メンタリングに関連するルールのサブセットを含む、
請求項７に記載のコンピュータシステム。
【請求項９】
動的に構築可能なコンピュータシステムであって、
ａ．データおよび命令ドメインと、
ｂ．メタ・メンター・ドメインと、
を備え、
前記データおよび命令ドメインは、
ｉ．前記データおよび命令ドメインでのみ動作する複数のスレーブプロセッサと、
ｉｉ．前記データおよび命令ドメインで動作可能なメモリのセットと、
を有し、
前記メタ・メンター・ドメインは、
ｉ．アルゴリズムおよびマスター・ルール・セットを有するメタ情報と、
ｉｉ．前記メタ情報を含むメンター・ドメイン・メモリと、
ｉｉｉ．ルールサーバとして機能する第１のプロセッサと、
ｉｖ． それぞれが、１つまたは複数のスレーブプロセッサをメンタリングするとともに、前記第１のプロセッサによってもたらされる前記マスタールールのサブセットを実施する複数の第２のプロセッサであって、前記ルールのサブセットは、前記１つまたは複数のスレーブプロセッサによって実行される処理に関連する、複数の第２のプロセッサと、
ｖ．前記スレーブプロセッサと前記データおよび命令ドメイン内の前記メモリのセットとの間での通信をもたらし、前記第２のプロセッサと協働して、前記メタ情報に従ってすべての前記通信のメンタリングを行うメンタースイッチのセットと、
を有する、コンピュータシステム。
【請求項１０】
前記メンター・ドメイン・メモリが、
ａ．前記第１のプロセッサによってアクセス可能な前記ルールのマスターセットを含む第１のメモリと、
ｂ．前記第２のプロセッサの１つまたは複数に対応する第２のメモリのセットであって、前記第２のメモリのそれぞれは、前記１つまたは複数の第２のプロセッサによって実行される前記メンタリングに関連するルールのサブセットを含む、第２のメモリのセットと、
を有する  請求項９に記載のコンピュータシステム。
【請求項１１】
前記データおよび命令ドメインでのみ動作する前記複数のスレーブプロセッサは、複数の並列プロセッサを含み、
前記複数の並列プロセッサのそれぞれは、フォンノイマン、ハーバード、改良ハーバード、またはデータフローアーキテクチャを有する、請求項９に記載のコンピュータシステム。
【請求項１２】
動的に構築可能なコンピュータシステムであって、
ａ．データおよび命令ドメインと、
ｂ．メタ・メンター・ドメインと、
を備え、
前記データおよび命令ドメインは、
ｉ．前記データおよび命令ドメインでのみ動作するプロセッサコアのセットと、
ｉｉ．前記データおよび命令ドメインで動作可能なキャッシュのセットと
を有し、
前記メタ・メンター・ドメインは、
ｉ．メタ情報と、
ｉｉ．前記メタ情報を含むメンター・ドメイン・メモリと、
ｉｉｉ．前記メンター・ドメイン・メモリへのアクセスを含むメンター・ドメイン・プロセッサのセットと、
ｉｖ．前記プロセッサコアおよびキャッシュのセットの間での通信をもたらし、前記メンター・ドメイン・プロセッサのセットと協働して、前記メタ情報に従って、すべての前記通信をメンタリングするメンタースイッチと、
を有する、コンピュータシステム。
【請求項１３】
前記プロセッサコアの前記セットは、単一のコアプロセッサであり、
前記キャッシュのセットは、命令キャッシュ、データキャッシュ、およびレベル２（Ｌ２）キャッシュを含み、
前記メンタースイッチのセットは、前記命令キャッシュならびにデータキャッシュと前記Ｌ２キャッシュとの間での通信をもたらし、
前記メンタースイッチのセットは、前記メンター・ドメイン・プロセッサのセットと協働して、前記通信をメンタリングし、前記メンタリングは、前記Ｌ２キャッシュに転送されるおよび前記Ｌ２キャッシュから転送される情報を仮想化することを含む、請求項１２に記載のコンピュータシステム。
【請求項１４】
ａ．前記メタ情報は、ルールのマスターセットを含み、
ｂ．前記メンター・ドメイン・プロセッサの前記セットは、
ｉ．ルールサーバとして機能する第１のプロセッサと、
ｉｉ．対応するプロセッサコアのセットをメンタリングする第２のプロセッサのセットであって、前記メンタリングは、前記第１のプロセッサによってもたらされる前記マスタールールのサブセットを少なくとも実施することを含み、前記ルールのサブセットは、前記対応するプロセッサコアのセットによって実行されるプロセッサに関連する、第２のプロセッサと、
ｉｉｉ．前記第１のプロセッサによってアクセス可能な前記ルールのマスターセットを含む第１のメモリと、
ｉｖ．前記第２のプロセッサのセットと対応する第２のメモリのセットであって、前記第２のメモリのそれぞれは、前記第２のメモリのそれぞれの対応する第２のプロセッサのセットによって実行される前記メンタリングに関連するルールのサブセットを含む、第２のメモリのセットと、
を含む、請求項１２に記載のコンピュータシステム。
【請求項１５】
前記プロセッサコアのセットは、命令キャッシュ、データキャッシュ、およびレベル２（Ｌ２）キャッシュを有する単一のコアを備え、
前記メンタースイッチのセットは、前記命令キャッシュならびにデータキャッシュと前記Ｌ２キャッシュとの間での通信をもたらし、
前記メンタースイッチのセットは、前記メンター・ドメイン・プロセッサのセットと協働して、前記通信をメンタリングし、前記メンタリングは、前記Ｌ２キャッシュに転送されるおよび前記Ｌ２キャッシュから転送される情報を仮想化することを含む、請求項１４に記載のコンピュータシステム。
【請求項１６】
プロセッサコアの前記セットは、複数コアであって、
各コアが、制御ユニットおよび算術論理ユニットを有し、
各コアが、その制御ユニット内に、共通命令バスと通信する関連命令キャッシュを有し、
各コアが、その算術論理ユニット内に、共通データバスと通信する関連データキャッシュを有し、
共通レベル２（Ｌ２）キャッシュを有することで特徴づけられ、
ａ．前記メンタースイッチのセットは、前記共通命令およびデータバスと、前記Ｌ２キャッシュとの間での通信をもたらし、前記メンタースイッチのセットは、前記メンター・ドメイン・プロセッサのセットと協働して、前記通信をメンタリングし、前記メンタリングは、前記Ｌ２キャッシュに転送されるおよび前記Ｌ２キャッシュから転送される情報を仮想化することを含み、
ｂ．コア・メタ・メンターであって、
ｉ．コアメタ情報と、
ｉｉ．前記コアメタ情報を含むメンター・ドメイン・メモリと、
ｉｉｉ．前記コア・メンター・ドメイン・メモリへのアクセスを含むコア・メンター・ドメイン・プロセッサと、
ｉｖ．前記コア・メンター・ドメイン・プロセッサと協働して、前記コアメタ情報に従って、前記コアの前記制御ユニットとそれぞれの算術論理ユニットとの間でのすべての通信をメンタリングするコア・メンター・スイッチと、
ｖ．調整のために、前記コア・メンター・ドメイン・プロセッサと、前記Ｌ２キャッシュをメンタリングする前記メンター・ドメイン・プロセッサのセットとの間の通信リンクと、
を有するコア・メタ・メンターをさらに備える、請求項１４に記載のコンピュータシステム。
【請求項１７】
前記メタ・メンター・ドメインで動作する第３のメモリをさらに備え、
前記第３のメモリが、前記メタ情報に従って、メンタースイッチと協働して、メンター・ドメイン・プロセッサによって各プロセッサコアに対する少なくとも２つのパーティションに仮想化されるＬ２キャッシュとして機能する、請求項１４に記載のコンピュータシステム。
【請求項１８】
前記プロセッサコアのセットは、グラフィック処理ユニットのセットを備え、
前記キャッシュのセットは、同様の数のフレームバッファと通信するＬ２キャッシュのセットを備え、
前記メタ情報は、前記Ｌ２キャッシュのセットを仮想化するために、前記メンター・ドメイン・プロセッサのセットと協働する前記メンタースイッチのセットによって使用される、請求項１４に記載のコンピュータシステム。
【請求項１９】
動的に構築可能なコンピュータシステムであって、
ａ．ブロックに仕切られたデータおよび命令ドメインでのみ動作するプロセッサコアのセットであって、各ブロックの各コアが、命令およびデータキャッシュを含む、プロセッサコアのセットと、
ｂ．各ブロックに対するブロックメタ情報と、
ｃ．前記メタ・メンター・ドメインで動作し、前記命令およびデータキャッシュに対する仮想化されたＬ２キャッシュとして機能するブロックメモリと、
ｄ．ブロック・メンター・ドメイン・プロセッサと、
ｅ．ブロック・メンター・スイッチであって、前記Ｌ２キャッシュが、前記ブロックメタ情報に従い、前記ブロック・メンター・スイッチと協働して、前記ブロック・メンター・ドメイン・プロセッサによって、各ブロックに対し少なくとも複数のパーティションに仮想化される、ブロック・メンター・スイッチと、
を備え、
ｆ．さらに、
ｉ．前記データおよび命令ドメインで動作するメモリのセットと、
ｉｉ．すべてのブロックに関連する全体メタ情報と、
ｉｉｉ．前記全体メタ情報を含むメンター・ドメイン・メモリと、
ｉｖ．前記全体メタ情報へのアクセスを含む全体メンター・ドメイン・プロセッサと、
ｖ．前記ブロックのすべてと、前記データおよび命令ドメインで動作する前記メモリのセットとの間での通信をもたらす全体メンタースイッチと、
ｖｉ．前記ブロックのすべてと、前記全体メンタースイッチとの間の通信リンクと、
を備える、コンピュータシステム。
【請求項２０】
動的に構築可能なコンピュータシステムであって、
ａ．複数のコンピュータサブシステムであって、そのそれぞれが、
ｉ．データおよび命令ドメインと、
ｉｉ．メタ・メンター・ドメインと、
を有し、
前記データおよび命令ドメインは、
１．前記データおよび命令ドメインでのみ動作するプロセッサのセットと、
２．前記データおよび命令ドメインで動作可能なメモリのセットと、
を有し、
前記メタ・メンター・ドメインは、
１．メタ情報と、
２．前記メタ情報を含むメンター・ドメイン・メモリと、
３．前記メンター・ドメイン・メモリへのアクセスを含むメンター・ドメイン・プロセッサと、
４．前記メタ情報に従って、前記データおよび命令ドメイン内の前記プロセッサおよびメモリのセット間での通信のすべてをメンタリングする前記メンター・ドメイン・プロセッサと協働するメンタースイッチと、
を有する、複数のコンピュータサブシステムと、
ｂ．前記複数のコンピュータサブシステム間で、前記データおよび命令ドメイン内の情報を転送するための通信リンクと、
ｃ．前記複数のコンピュータサブシステム間で、前記メタ・メンター・ドメイン内の情報を転送するための通信リンクと、
を備える、コンピュータシステム。
【請求項２１】
ａ．それぞれが前記複数のコンピュータサブシステムと通信する複数のセンサと、
ｂ．それぞれが前記複数のコンピュータサブシステムと通信する複数のディスプレイデバイスと、
をさらに備える、請求項２０に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
【背景技術】
【０００２】
本発明は、処理を実行することによって定義されるような機能要件および性能要件を満たすコンピュータシステムおよびコンピュータサブシステムを生成するよう動的に構築された個々の構成要素として、ハードウェアコンポーネントおよびソフトウェアコンポーネントを認識する、新規でユニークなコンピュータアーキテクチャである。本発明は、従来のコンピュータ設計を、既存のコンピュータアーキテクチャではできないことを行うユニークで、非同期の、分散された処理で交換する。
【０００３】
本アーキテクチャは、「メタメンター（ＭｅｔａＭｅｎｔｏｒ）」（本明細書では、「ＭＭ」とも称する）とも呼ばれ、フォールトトレラント分散処理アーキテクチャである。メタ・メンター・プロセッサは、信号を、ハードウェア要素およびソフトウェア要素に、およびハードウェア要素およびソフトウェア要素から経路づけるフォールト・トレラント・メンター・スイッチにより、システムおよびサブシステムを生成する。生成されるシステムおよびサブシステムは、実行する処理によって定義される、別々に、または同時に処理され得る、別個のサブアーキテクチャおよびユニークな構成である。
【０００４】
本発明によれば、ハードウェア動作またはソフトウェア動作における何らかの予期せぬ、または予定外の変更は、意図的なものであれ、偶発的なものであれ、故障と定義される。意図的な故障は、システムまたはコンポーネントの計画された破壊を含む故障のカテゴリであると考えられる。これらの種類の故障は、２つのアプローチ、すなわち、個々のコンポーネントおよび処理のルールおよび役割ベースの定義によって、および第２に、コンポーネント特性および処理特性を分析するアルゴリズムを使用することによって、軽減される。本発明によれば、故障の軽減は、処理割り当ておよびシステム仮想化により、機能しているシステムを動的に再構成することによって、実現される。
【０００５】
ＭＭアーキテクチャは、リファレンスの従来の１ドメインを超えて動作し、ＭＭシステムは、従来のシステムのデータおよび命令ドメインの両方で動作するが、以下でさらに説明するように、データおよび命令ドメインから独立した、およびデータおよび命令ドメインとは別の、メタ・メンター・ドメインでも動作する。本明細書全体を通じて、データおよび命令ドメインは、代わりに、「データおよび命令ドメイン」または「ＤＩＤ」と称することに留意されたい。
【０００６】
ＭＭシステムは、（重複コンポーネントではなく）利用可能コンポーネントを必要とするクォーラム・ベース・コンピューティング、オイラー方陣パラダイム、非同期故障耐性を実現するよう動的に再構成することができる。同時に異なるオペレーティングシステムを実行することができ、（アプリケーションは、ＣＰＵでバイナリ互換でなければならないが）バイナリ互換ＣＰＵに制限されない。本システムはまた、アプリケーションソフトウェアの保全性をモニタリングすることができ、人間による、もしくはプログラムによる非承認アクセスを防ぐことができ、マルウェアの動作を記録することができる。ユニークな設計の本ＭＭアーキテクチャは、古典的なチェックポイント動作におけるシステム状態情報を保存することにより、故障から回復する。本システムは、割込、システム状況切り替え、または強制タイムアウト時に、チェックポイントを作成することができる。ハードウェア故障が発生した場合、本システムまたはアプリケーションは、最終チェックポイントで自動的に再開し、利用可能なハードウェアに機能処理を再割り当てする。不安定なアプリケーションは、偶発的であれ、意図的であれ、「ブラックリストに載せられ」、すべての関連データ、ストレージ使用、および状態情報を、裁判分析のために保存することができる。不安定なアプリケーションが回避され、オペレータ通知が送信された後、本システムは、そのアプリケーションが一度も開始されなかったかのように、機能し続ける。ハードウェア故障またはソフトウェア故障に耐え、コンピュータウィルス感染を防ぐことに加え、本排他的アーキテクチャはまた、既存のオペレーティングシステムおよびソフトウェアとシームレスに機能する。
【０００７】
メタ・メンター・アーキテクチャを説明するために、一般に、２つのカテゴリ、すなわち、フォンノイマン型（ＶＮ）アーキテクチャおよび非フォンノイマン型アーキテクチャに分けることが可能な、従来のコンピュータアーキテクチャについて考察することが有用である。生産されているほとんどのコンピュータシステムには、ＶＮアーキテクチャが組み込まれている。図１を参照すると、４つのコンポーネント、すなわち、（ａ）算術論理ユニット（ＡＬＵ）および制御レジスタ２を有する処理ユニット、（ｂ）命令レジスタおよびプログラムカウンタ３を備える制御ユニット（ＡＬＵおよび制御ユニットは、合わせて、中央制御ユニットと呼ばれ、一般的に、「ＣＰＵ」４と呼ばれる）、（ｃ）データおよび命令の両方を格納するための共通メモリ５（共通メモリは、６つの「Ｍｅｍ」ユニットとして図示する）、および（ｄ）入力６ａならびに出力６ｂ機構からなる、従来のＶＮアーキテクチャを図示する。当技術の一部によれば、フォンノイマン型アーキテクチャというフレーズは、プログラム記憶式コンピュータという意味に拡張され、プログラム記憶式コンピュータでは、命令およびデータが、共通メモリに格納され、命令およびデータは、２つのデータに１本のデータバスでアクセスすることの物理的限界により、同時にアクセスすることができない。この限界は、フォン・ノイマン・ボトルネックと呼ばれ、一般的に、本アーキテクチャの限界として参照される。
【０００８】
図２は、ＶＮアーキテクチャをベン図で表したものである。ＣＰＵ４は、システム５との交差部を有する。この図でのシステムは、メモリおよび入力／出力デバイスからなる。スタートアップ時、いくつかのイベントがＣＰＵに割り込み、スタート対象の処理に対してアドレスを定義し、個々のコンポーネントのアドレス空間を定義する。この意味では、循環論理である。ＣＰＵは、システムに直接取り付けられ、中央タイミング信号は、本アーキテクチャが有するすべてのコンポーネント機能を調整する。ＣＰＵのアドレス空間は、ＣＰＵが直接制御することが可能な空間全体である、ドメインを定義する。システムとＣＰＵとの交差部は、２つの要素を接続する回路を表す。
【０００９】
図３は、仮想化構成におけるＶＮアーキテクチャを示すベン図である。この構成は、Ｚｏｎｅｓ、Ｚｅｎ、およびＶｍｗａｒｅなどの、いくつかのアプリケーションで、今日、見られる。ＶＮアーキテクチャ内の仮想化は、ソフトウェア収差であり、ソフトウェアが機能を停止した場合、システムは、図２に戻る。それは単一のドメインシステムであり、相互接続回路がＣＰＵおよびシステムの交差部によって定義される。
【００１０】
図４を参照すると、他の種類のコンピュータアーキテクチャ、すなわち、ハーバード（Ｈ）アーキテクチャを図示する。Ｈアーキテクチャは、命令およびデータ情報を分けることで、ＶＮアーキテクチャと区別される。これは、２つの種類の情報が、物理的に分離され、別のフォーマットを有することが多いことを意味する。ハーバードＣＰＵ４への入力／出力は、基本的に、ＶＮアーキテクチャで使用したものと同じである。Ｈアーキテクチャのホールマークは、命令フェッチおよびデータアクセスが、メモリへの単一物理パスに対して競合しないことである。２つの異なる別々の種類のメモリ、すなわち、データメモリ７および命令メモリ８と、各種メモリのためのデータパス９ａおよび９ｂは、この設計において潜在的（implicit）である。Ｈアーキテクチャは、ＶＮアーキテクチャよりも高速であると考えられ、それは、命令およびデータを、ほぼ２倍の速さで取得可能だからである。
【００１１】
図５は、ベン図でのＨアーキテクチャを示す。命令システム１０とＣＰＵ４との交差部を見ることができ、その交差部は、２つを接続する回路を表す。同じように、データシステム１１とＣＰＵとの交差部は、接続する回路を意味する。ＶＮアーキテクチャから分かるとおり、ＣＰＵから送信される１つまたは複数の中央タイミング信号が、システム内のすべてのコンポーネントを調整する。また、ＶＮアーキテクチャと同様に、Ｈアーキテクチャのアドレス空間は、単一ドメインを定義し、データおよび命令ドメイン（ＤＩＤ）について、以下でより完全に説明する。
【００１２】
ハーバードアーキテクチャは、メモリが読み取り専用である場合、データ、すなわち、データメモリが、命令メモリを変更することができないように設計することができる。しかしながら、誰かが命令を変更するのであれば、新しい命令が、データメモリからロードされるであろう。例えば、アプリケーションは、ＣＰＵとＡＬＵとの転送命令に基づいて、その実行コードを、データメモリから命令メモリに転送する。このことは、システムのＣＰＵに意図しないタスクを実行させるよう命令コードを変更するマルウェアの影響を考慮する場合、重要である。
【００１３】
Ｈアーキテクチャは、「メモリ限界」により特徴づけられることが多く、これは、ＡＬＵにおける命令セット実行速度が、メモリアクセス時間よりはるかに速いためである。したがって、ＡＬＵがデータを処理することが可能な速度は、命令メモリへのアクセス時間によって限定され、実行速度は、メモリアクセス時間によって制限される。この問題は、ＡＬＵに、キャッシュと呼ばれる、小容量高速メモリを設けることによって解決されることが多い。実際には、キャッシュには３つのレベルがあり、通常、Ｌ１、Ｌ２、およびＬ３と呼ばれる。
【００１４】
他のアーキテクチャでは、ＨアーキテクチャとＶＮアーキテクチャとを組み合わせ、機能ＣＰＵを生成する。ＣＰＵの内部で、共通のＶＮ情報が、データおよび命令Ｈカテゴリに分割される。これは、通常、キャッシュと呼ばれる、一時ストレージ領域で実現される。Ｈアーキテクチャは、内部ＣＰＵデータ／命令を扱い、ＶＮは、外部ＣＰＵデータ／命令転送を扱う。命令情報は、アルゴリズムに基づいて分割することができる。単純なアルゴリズムの例として、命令として０から５００のアドレス範囲を、データとして５０１から１０００のアドレス範囲を割り当てる。このルールは、電子的な設計によって決定され、製造後には、決して変更することができない。制御ユニットは、アドレス空間０から５００に接続され、ＡＬＵは、アドレス空間５０１から１０００に接続される。これは、Ｈアーキテクチャを定義し、情報のアドレス空間は、図４に示すように、論理またはデータ情報に分割される。制御ユニットとＡＬＵとの間のこのアドレス空間は、図１および図４に示すように、ＶＮまたはＨアーキテクチャにおいて、１対１の関係である。
【００１５】
また、図１および図４には、外部入力６ａモジュールおよび外部出力６ｂモジュールを示す。これらのモジュールは、ＣＰＵの外部からの電子信号による情報を受信または処理する。この関係は、電子的設計時に決定され、製造後に変更することはできない。入力／出力、情報もしくはデータ領域、および制御は、固定電子経路によって決定される。情報を命令またはデータとして分類する方法は、制御ユニットおよびＡＬＵで機能するソフトウェアアルゴリズムによって決定される。データメモリから情報を要求する制御ユニットは、その情報を、命令情報に変更することができる。
【００１６】
アルゴリズムを実行する方法は、電子装置またはアルゴリズムによって実現することができる。アルゴリズムの場合、データおよび情報が何であるかは、循環論理であるアルゴリズムによって決定される。電子装置は、ピンを接続する方法によって、ハードウェアアドレス空間を定義する。それらは共に、ドメイン、すなわち、ＤＩＤを定義する。アドレス空間は、すべてが情報、すなわち、データまたは命令であり、アルゴリズムまたは電子装置は、アドレス空間内のアルゴリズムによって制御することができる。さらに、情報が、コンポーネント間で交換された場合、コンポーネントは、通信の状態を定義するすべてのデバイスに共通の周期的信号に準拠する。これは、通常、そのドメイン内の外部デバイスにＣＰＵによって提供され、この信号は、内部デバイスに時間合わせされる。このことは同期システムを定義し、クロックなどの共通周期信号が、情報転送中に、コンポーネントの状態を管理する。
【００１７】
機能的に、ＣＰＵは、他のコンポーネントを有する。キャッシュと呼ばれる一時情報ストレージ領域では、典型的に、データおよび命令情報がカテゴリ化される。一例を図７に示す。Ｌ２キャッシュ１２は、共通Ｌ３キャッシュ１３および関連要素から、情報を受信する。Ｌ３キャッシュはＶＮアーキテクチャであり、Ｌ２キャッシュはＨアーキテクチャである。これらの内部メモリコンポーネントは、ＣＰＵ内に設置された電子パスの所定のネットワーク内で、高速メモリ転送を実現する。
【００１８】
再び図７を参照すると、外部で、ＣＰＵは、フォン・ノイマン・アーキテクチャを使用する。このアーキテクチャを使用すると、ＣＰＵは、ＣＰＵの外部にあるデバイスとともに、（情報）信号を発し、受信し、処理する。これらのデバイスは、通常、内部デバイスよりも遅い。フレキシビリティと実用上の考察により、ＶＮが、ＣＰＵの外部のアーキテクチャとして選択される。外部デバイスは、情報を電気的に転送し、ＣＰＵに機能方法を指示する。ＣＰＵは、データおよび命令情報の両方の外部メモリ情報で動作し、フォンノイマン機械として動作する。実際には、データは、直接メモリアクセス（ＤＭＡ）と呼ばれる処理により、まとめて、ＶＮアーキテクチャとＨアーキテクチャとの間で転送される。ＤＭＡ処理は、ＣＰＵをバイパスし、通常のＣＰＵ読取／書込処理より速く情報を転送する。
【００１９】
他のコンピュータアーキテクチャは、タグ付きトークンまたはデータフローと呼ばれる。ＶＮアーキテクチャおよびＨアーキテクチャは、制御フローアーキテクチャとしてカテゴリ化され得、ＣＰＵ、メモリ、および内部での転送を特徴とすることが可能である。
【００２０】
データフローシステムは、論理的に、プログラムカウンタを有さず、命令セットへの入力データの有効性によって処理を実行する。それは、ある種のニューロンの役目を果たす単純なアーキテクチャを有する人工知能エンジン、すなわちデータ駆動並列コンピュータとして発表される。このシステムは、データが到着したという信号に基づいて実行する、いくつかのレジスタまたは処理を有する。データフローアーキテクチャは、制御フローアーキテクチャの点から評価／対比することができる。
【００２１】
図６Ａを参照すると、制御フローとデータフロープログラムとの比較を図示する。式は、解決すべき問題を定義する。左辺は、従来の制御フローアーキテクチャを示し、右辺は、データフローアーキテクチャを示す。実線矢印および線は、データの位置および流れを示す。メモリプログラムでは、各処理は、その結果を、処理のセッションにおける次の処理でアクセスされる共通メモリ位置に格納する。点線矢印線は、命令の進行を示す。タグ付きトークンモデルは、データを、処理メモリに直接配置する。要求された入力トークンで処理が満たされると、処理が開始され、タグ付きトークン処理要素の外部のメモリ内に入力または配置される所定の処理に、その出力を方向づける。
【００２２】
実際には、データフローアーキテクチャは、互いに通信することが可能な、いくつかの処理要素を有する。そのような処理要素の１つを図６Ｂに示し、マッチングユニット２１、フェッチユニット２２、機能ユニット２３、および関連メモリ２４ａおよび２４ｂからなる。単純なデータフロー機械では、マッチングユニットおよびフェッチユニットは、単一メモリを有する可能ユニットと呼ばれる単一の処理要素に組み合わされる。しかしながら、入力トークンが、多数であるか、またはサイズが大きくなった場合、可能ユニットは、それぞれが処理要素に取り付けられる、２つのメモリ型で構成される。
【００２３】
マッチングユニットは、そのメモリ内に、トークン（データ）を格納し、フェッチユニットとして示す宛先ノードの利用可能性を確認する。これには、宛先アドレスおよび処理タグについての情報を必要とする。処理インスタンスに対するすべてのトークンが組み立てられた場合、それらは、フェッチユニットに送信され、ノード記述によりそれらを組み合わせる（これは、命令メモリと類似する）。ノード記述は、ノードに対するメモリに格納され、この情報を、処理が実行される機能ユニットに回送する。
ＣＰＵ内部
【００２４】
ＶＮアーキテクチャおよびＨアーキテクチャは、ＣＰＵ設計において見ることができる。例えば、図７は、典型的なＣＰＵを表す、従来のマイクロ・プロセッサ・アーキテクチャを示す。図７に示すように、Ｌ２キャッシュ１２は、ユニコードモジュールに同期的に接続され、ユニコードモジュールは、Ｌ３キャッシュ１３、メモリ制御器１４、クイックパスエンターコネクト（インターコネクト）１５、および４重連想型命令キャッシュ（Ｑｕａｄｒｕｐｌｅ  Ａｓｓｏｃｉａｔｉｖｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｃａｃｈｅ）１６からなる。命令およびデータメモリは、Ｌ２キャッシュを使用することが分かるであろう。Ｌ２キャッシュは、復号化命令キュー１８を最終的に供給する命令キャッシュに接続される１つのデータパス１７を供給し、他のパスは、データキャッシュ１９を供給する。Ｌ２キャッシュは、ハーバードカテゴリのフォン・ノイマン・メモリであり、ユニコアモジュールにおけるＬ３キャッシュを介して、他のフォンノイマン型メモリと接続される。さまざまなキャッシュを仮想化する方法をいくつか挙げることができるが、これらは受動デバイスであり、タイミング信号およびアドレス空間は、所定のデバイスに、および所定のデバイスから送信され、命令は、変更することができないタイミング信号とデータパスとを有する所定のデバイスに常に配置され、したがって、１つのデバイスに専用の単一目的で、単一ドメイン、すなわち、ＤＩＤを定義する。単一ドメインを有するこのシステムでは、データおよび命令は、交換され、計算上の破損の危険を生み出す可能性がある。
【００２５】
変換索引バッファ（ＴＬＢ）２０は、図７に「Ｌ２−ＴＬＢ」として示すが、物理的（一次）フォン・ノイマン・メモリを参照する。ＴＬＢは、ページ・テーブル・エントリを備える、固定数のスロットを有し、仮想アドレスを物理アドレスにマッピングする。この空間は、事前に固定されたサイズのページ内にセグメント化され、各テーブルエントリに対して１ページである。ＴＬＢは、ＴＬＢが配置される場所に応じて、２つのモード、すなわち、物理アドレスと仮想アドレスとを有する。ＴＬＢが、ＣＰＵキャッシュと一次記憶ストレージとの間に配置される場合、キャッシュは、物理的にアドレス指定される。物理的にアドレス指定される場合、ＴＬＢは、すべてのメモリ動作でルックアップを実行し、一次メモリに配置された情報は、キャッシュにコピーされる。
【００２６】
ＴＬＢが、ＣＰＵとキャッシュとの間に配置される場合、ＣＰＵ  ＴＬＢは、キャッシュミスが発生した場合にのみ参照される。図７は、４重連想型命令キャッシュ１６および８重連想型データキャッシュ（Ｏｃｔｒｕｐｌｅ  Ａｓｓｏｃｉａｔｉｖｅ  Ｄａｔａ  Ｃａｃｈｅ）１９からなる、ＣＰＵに接続されるＬ２−ＴＬＢを示す。Ｌ２−ＴＬＢはまた、一種のハイブリッド物理的／仮想位置である、Ｌ３−キャッシュおよびメモリ制御器に接続される。
【００２７】
ハーバードアーキテクチャＣＰＵは、別の手法をとる。純粋ハーバードアーキテクチャでは、上述したように、命令およびデータメモリは、物理的に分けられ、ハーバードアーキテクチャＣＰＵの外部で２つのデータパスまたはデータバスで見ることができ、その一方は命令メモリに繋がり、他方は、データメモリに接続され、ハーバードアーキテクチャＣＰＵは、２つの別個のキャッシュ型、すなわち、命令メモリ用とデータメモリ用のものに繋がる。
【００２８】
純粋ハーバードアーキテクチャには、いくつかの商業用の例があるが、実際には、ほとんどのハーバードアーキテクチャは、ハーバードアーキテクチャの設計を改良して使用され、「改良ハーバードアーキテクチャ」と称されることもある。この改良例では、共通メモリデバイスが使用され、データおよび命令メモリの間の仕切りは、メモリアドレス空間によって分割され、物理的な分割ではない。これにより、一種の共通メモリで、ハーバードアーキテクチャの性能を、改善することを可能にする。しかしながら、現在のＣＰＵは、典型的に、ＣＰＵキャッシュ内で、データおよび命令メモリを分ける。このことは、図７で見ることができ、情報信号は、Ｌ２キャッシュ命令メモリアドレス空間から、４重連想型命令キャッシュに伝わる。また、図７に示すように、Ｌ２キャッシュ・メモリ・アドレス空間が、情報を、「２５６」と符号付けされた常時接続を介して、４重連想型データキャッシュにもたらす。情報が、データキャッシュと命令キャッシュとに分けられると、残りの処理が、ハーバードアーキテクチャと同様に行われる。また、図７では、Ｌ２およびＬ３キャッシュの間の常時接続を示し、ＣＰＵの内部コンポーネントから、ＣＰＵ外部コンポーネントへの経路をもたらす。Ｌ２への、およびＬ２からの情報経路は、ＣＰＵ内に配置されたデバイス専用であり、ＣＰＵ内に配置されたデバイスに時間合わせされることに注目すべきである。これは、単一処理ドメイン、ＤＩＤを構成する。
複数コアプロセッサ（均一）
【００２９】
図８Ａおよび図８Ｂを参照すると、２つ以上の中央処理装置（ＣＰＵ）を、単一チップ内にパッケージ化することができ、２つの例を示す。この構成では、各処理装置は、互いに独立しているが、内部リソースおよび共通外部インターフェースを共有する。複数の内部ＣＰＵを有するパッケージでは、各ＣＰＵは、コアと称される。上記のように、コアは、リソースを共有する。パッケージは、多くのコアを備えることができる。図８Ａおよび図８Ｂは、２種類のデュアルコア（ＣＰＵ）プロセッサを示す。図８Ａは、それぞれのＬ１キャッシュ２５および共有Ｌ２キャッシュ２６を有するデュアル・コア・プロセッサである。各コアは、Ｌ２キャッシュに直接接続され、各Ｉ／Ｏ制御は、共有キャッシュ内の命令およびデータメモリを管理する。図８Ｂに図示したように、各コアは、共有されない個別のＬ２キャッシュ２７を有する。各場合において、外部インターフェースは、メモリ制御器２８またはバスインターフェース２９によって構成され、コアアドレス空間によって定義される。
【００３０】
図９を参照すると、６４コアＣＰＵを示す。図９は、ＣＰＵの数に理論的限界が無いものとして、複数コアＣＰＵを表すが、パッケージの製造に関係する実質的限界は存在する。図９の左側のデバイスは、この構成が、情報を、ＣＰＵの外部の入出力装置に、およびＣＰＵの外部の入出力装置から、転送する方法を示す。また、上部および底部には、物理的（一次）フォン・ノイマン・メモリを参照する４つのメモリ制御器３０を示す。コア３１は、それらの間で、２Ｄメッシュネットワークを通じて転送する。図９は、ネットワークノード内に５つのパスを有し、各パスは、１つの種類の情報を転送するためのものである。情報は、内部ネットワーク内での転送速度を上げるために分割される。各コアには、メッシュスイッチ３２（図９、詳細Ａ）が取り付けられ、その目的は、情報を各コアに、ならびに各コアから転送するためであり、情報を５つのデータパスに分ける。各ＣＰＵコアの内部には、図９、詳細Ｂに示すように、Ｌ１およびＬ２キャッシュがある。この特定の表示において、Ｌ１キャッシュは、ハーバードアーキテクチャを有し、Ｌ２キャッシュは、フォン・ノイマン・アーキテクチャを有する。Ｌ１命令およびデータＴＬＢは、Ｌ２キャッシュ内の、各メモリ空間を決定する。このデバイスのユニークな特徴は、コア間でＬ２キャッシュを共有する能力である。
マルチコア処理（Heterogeneous）
【００３１】
マルチコアプロセッサ（不均一）単一ＣＰＵパッケージにおけるマルチコアの他のいくつかの構成は、ＣＰＵに加えて、ＧＰＵと呼ばれる一種の処理装置を使用する、グラフィック処理装置と呼ばれる。ＧＰＵは、３Ｄコンピュータ・グラフィック・カードに関連した計算を行うよう設計されたデバイスである。３Ｄグラフィック計算は、複雑な数学的演算を必要とするため、ＧＰＵは、高速および高効率で数学的演算を実行するよう設計される。ＧＰＵを使用して、非グラフィカル計算を実行することができる。ＧＰＵ設計が、この目的で使用される場合、デバイスは、ＧＰＧＰＵ（汎用ＧＰＵ）と称される。ＧＰＧＰＵ計算のためのモデルは、階層的で不均一計算モデルで、ＣＰＵとＧＰＵとを共に使用することである。アプリケーションの連続部分は、ＣＰＵで実行され、計算集約的部分は、ＧＰＵによって加速される。この不均一モデルでは、ＣＰＵおよびＧＰＣＰＵメモリは、フォンノイマン、ハーバードアーキテクチャ、または改良ハーバードアーキテクチャにおいて、メモリと共に動作する。
【００３２】
実際には、アプリケーション（コード）は、ホストＣＰＵで開始され、アプリケーションの計算集約的部分をＧＰＵに割り当てるようタスクを課される。アプリケーションの残りは、ホストＣＰＵに残る。計算集約的機能をＧＰＵにマッピングすることは、並列化と呼ばれる処理を含む。ＧＰＧＰＵデバイスの製造により、データおよび命令情報を、ＧＰＵに、およびＧＰＵから、移動する並列化処理を容易にする特別な計算コマンドをもたらす。アプリケーションを開発する個人は、これらの計算コマンドを使用して、スレッドと呼ばれる１０×１０００の命令断片を、ＧＰＵに同時に送るようタスクを課される。ＧＰＵハードウェアは、スレッドを管理し、スレッドスケジューリングを行う。
【００３３】
図１０を参照すると、従来のＧＰＧＰＵおよびＧＰＵアーキテクチャを図示する。この設計の機能の１つは、入力アルゴリズムから、ビデオディスプレイ上に、ピクセル値を表示することである。ホスト３３は、アルゴリズムコール幾何プリミティブを、通常、一連のＧＰＵをスケジューリングし、コンピュータスクリーン上にピクセル値を計算するＣＰＵである、ＧＰＧＰＵ入力アセンブラ３４に送信する。スレッドプロセッサは、さまざまなスレッド発行を割り当て、ピクセル値を計算する。スレッドプロセッサ機能は、さまざまなシェーディングおよびレンダリングハードウェアおよびソフトウェアを使用して、プリミティブからピクセルに変換する場合に非常に複雑になる可能性があるが、ボトムラインは、ＧＰＵが、ピクセル値情報を、フレームバッファ（ＦＢ）メモリ３５に置くことである。ＦＢメモリは、コンピュータスクリーン上に表示され、画像が利用者に表示される。
【００３４】
再び図１０を参照すると、ホストからの処理は、ＦＢメモリに置かれたピクセル値に変換される。ホストから送信された処理は、入力アセンブラＧＰＧＰＵに経路づけられる。スレッドスケジュールと併せて入力ＧＰＧＰＵは、機能によって、ホスト処理を分割し、分割されたサブプロセスを、スレッド発行ハードウェアおよびテクスチャ処理クラスタ（ＴＰＣ）に割り当て、処理する。この動作は、本質的には、ホスト処理を、個々のＴＰＣによって別々に処理されるセグメントに分割する。ＴＰＣ出力は、スレッドプロセッサによって、関連したフレームバッファメモリに経路づけられた、分割されたサブ処理と関連する、順序づけられたピクセル値ブロックをもたらす。この方式では、ピクセル値ブロックは、人間が読取り可能なフォーマットで、ビデオディスプレイに並べられる。ラスタ動作プロセッサ（ＲＯＰ）は、フレーム・バッファ・ピクセル値の最後の仕上げをする。メモリの観点から、このデバイスにおける命令メモリは、デバイスの設計時に決定され、スレッド発行、ＴＰＣ、およびＲＯＰハードウェアの内部に存在する。データは、ホストから通され、ＦＢメモリに置かれる。この構成では、改良ハーバードアーキテクチャであり、データおよび命令メモリが分けられている。
【００３５】
図１０に示す種類の不均一システムは、一般的な計算問題を解決するために適用することができる。ＣＰＵ／ＧＰＧＰＵ適用計算のための基本処理は、グラフィックカードと同じであり、さらに、双方向バスをＣＰＵおよびメモリに追加する。
【００３６】
図１１は、ＴＰＣモジュールおよびＧＰＧＰＵの基本処理フローを図示する。２種類の処理ユニット、ｓｐ３６およびｔｐ３７を示す。ストリーム処理ユニット（ｓｐ）および特別機能ユニット（ＳＰＵ）３８は、数学的演算を処理する。テクスチャ処理ユニット（ｔｐ）は、テクスチャを処理する。すべてのｓｐユニットは、単一サイクルの間、同じ機能を実行し、複数の値を処理する単一プロセッサとして動作する。同じことが、ｔｐユニットに対しても言える。相互接続ネットワーク３９は、データ情報要求を、ホストおよび入力アセンブラから、スレッドプロセッサを介して経路づける。ＴＰＣ処理エンジンは、それぞれのアドレス空間を生成し、相互接続ネットワークは、ＴＰＣアドレス空間と、個々のＲＯＰと、共有メモリとの間で、１対１のマッピングを実行する。ＲＯＰおよび共有メモリ（Ｌ２）は共に、共有並列メモリと称される。一般的なコンピュータとして使用した場合、フレームバッファ４０は、グローバルメモリと称され、常時接続共有メモリを介して、転送順次グリッドによって通信する。メモリ構造は、改良ハーバードアーキテクチャを保持し、ホストからのデータは、入力アセンブラによって扱われ、ＴＰＣに渡され、上記と同じ方法でさらに処理する。ＧＰＵデバイスを使用して、一般的な計算問題を解決するために、データ情報は、ホストに渡され、保管またはさらに処理される。
グリッドコンピューティング：
【００３７】
グリッドコンピューティングは、複数の管理ドメインからのコンピュータリソースを組み合わせることに関する用語であり、各ドメインは、従来は、ＤＩＤであり、共通の目的を実現する。グリッドは、多数の独立システムＤＩＤを含む、非対話型作業量を伴う分散システムと考えることができる。関連する方法でコンピューティングリソースを共有することであり、サービスを顧客に届けるための、ガスや電気のグリッド共有リソースと同様である。
【００３８】
例えば、電気の消費者は、灯りをつけ、必要に応じてリソースから電気を消費して、使用した分に対する支払いをする。白熱電球は、システムの全容量を使用する必要はなく、グリッドリソースは、同じグリッドを利用している他の誰かと共有される。グリッドコンピューティングの場合、リソースを、「フロントエンド」と「バックエンド」とに分けることが有用である。フロントエンドは、グリッドリソースを使用する電球を有する消費者に例えられ、バックエンドは、電球にリソースを供給するダム、電力プラント、送電線、および制御システムに例えられる。コンピュータ用語では、バックエンド・グリッド・コンピューティングは、コンピューティング／計算リソース、ストレージリソース、およびリソースからリソースに情報を経路づける制御システムを備える、さまざまなコンピューティングシステムに関する。フロントエンドは、リソース利用者、ＰＣもしくはＭＡＣであり、タスク、アルゴリズム、または他の要求を実現するために、バックエンドサービスを要求する。
【００３９】
コンピューティンググリッド上の各デバイスは、個々のコンピューティング・リソース・ドメイン、従来は、ＤＩＤによって表される。これらのリソースドメインは多数あり、フロントエンド利用者が、グリッドコンピューティングを使用してアプリケーションを実行すると、複数のシステムＤＩＤからのコンピュータリソースの組み合わせが、共通の目的を実現し、単一処理ドメインを形成するために組み合わせる。この組み合わせは、同時に生じてもよいし、同時でなくてもよい。処理ドメイン収束は、フロントエンド利用者がグリッドリソースを要求し、バックエンドが要求を生成することによって実現される。リソース共有は、主として、ファイル交換ではなく、むしろコンピュータ、ソフトウェア、データ、および他のリソースへの直接アクセスであり、グリッド利用者によって明らかになる、共同問題解決ストラテジおよびリソース・ブローキング・ストラテジの範囲により必要とされる。そのような共有ルールによって定義される一組みの個人および／または機関は、単一処理ドメイン、ＤＩＤを使用する、いわゆる、仮想組織を形成する。
クラウドコンピューティング
【００４０】
図１２を参照すると、クラウドコンピュータと称されることも多くある、グリッドコンピュータのいくつかのバリエーションを図示する。これらのコンピュータが利用可能であり、これらがすべてではないが、クラウド、ボランティア、ネットワーク、およびユーティリティなどを含む。プライベートならびにパブリッククラウド、ハイブリッドクラウド、およびコミュニティクラウドなどがある。グリッドコンピューティングの問題の１つは、セキュリティについてである。パスワード、電子メール、またはファイル情報などの、影響を受けやすいデータでの制御の損失、およびフロントエンド利用者の運用管理制御がおよばない匿名オペレータによって遠隔格納カーネルが所有されることに対するセキュリティの欠如についての懸念が、グリッドコンピューティングに対する問題である。
クラスタコンピューティング
【００４１】
クラスタコンピューティングは、ユニットとして共に動作するローカル・エリア・ネットワークを介して通常２つ以上のコンピュータをリンクし、共通のディスクスペース、電力、およびネットワーキングなどのコンピューティングリソースを共有することとして定義される。グリッドコンピュータと同様であるが、クラスタコンピューティングでは、クラスタ内のすべてのリソースが、専用化され、密接に結合され、ローカルに接続される。クラスタコンピューティングには２つの基本メモリモデルがあり、並列モデルおよび分散モデルを図１３および図１４に示す。
【００４２】
図１３を参照すると、並列メモリモデルは、プロセッサに恒久的に取り付けられたメモリを有する。共通タスクを実行するのに必要な情報は、プロセッサ通信を通じて渡される。この種類のクラスタ共有は、２つ以上のＣＰＵ４１が共通メモリ４２を共有することを特徴とする。共通メモリアーキテクチャまたは共有メモリアーキテクチャとも呼ばれる。この構成は、上述した、マルチコアＣＰＵまたはＧＰＧＰＵと同様である。この構成は、いくつかのプロセッサのバスを共に接続することを含み、すべてのメモリが、共有バス上のすべてのプロセッサに対して利用可能となり、または内部プロセッサ通信のみが共通バスを共有する。共有メモリシステムは、通常、単一オペレーティングシステムとともに動作し、マスタープロセッサが共有メモリを仕切るとともにいくつかのスレーブが各パーティション内で動作するか、すべてのプロセッサが共通の調停メモリおよび処理テーブルを用いてオペレーティングシステムの別々のコピーを実行する。
【００４３】
分散クラスタメモリ構成は、図１４に図示する。いくつかのコンピュータ構成要素４３は、それぞれが独自のオペレーティングシステムを実行し、共にネットワーク化される。並列処理は、親ノードが子処理を他のネットワーク化構成要素に渡すことによって実現され、完了処理により、その結果が、親構成要素に戻される。
【００４４】
分散クラスタシステムおよび並列クラスタシステムのどちらも、物理的に接続された共通リソースを共有する。これらの共有リソースは、ディスクスペース、ネットワーキングリソース、および電力などの共有周辺部に、図１３および図１４におけるメモリモデルを越えて拡張する。リソースは、共にネットワーク化され、クラスタを形成する。物理的実装が、１つまたは複数の種類のネットワークトポロジーおよびプロトコルにより実現される。トポロジーには、ポイント・ツー・ポイント、バス、スター、リング、メッシュ、ツリー、ハイブリッド、およびデイジーチェーンがある。列挙した各種類のいくつかのバリエーションは、集中化、分散化、ローカル、ワイド、論理的、および物理的である。クラスタ技術に適用された場合、各システムは、ネットワーク構成を使用して、システム間で信号を送信し、および共通リソースに信号を送信する。
【００４５】
そのようなネットワークの１つは、スイッチドファブリックと呼ばれる。図１５は、メッシュトポロジーにおけるスイッチド・ファブリック・ネットワークを図示し、同期フォールト・トレラント・システムとして構成される。例えば、ホスト４４は、リソース２からサービスを要求し、トランザクションは、ホスト１がリソースを要求する方法に応じて、スイッチ４５またはスイッチ４６を通じて搬送される。１つのスイッチが故障すると、すべてのトラフィックが、残りのスイッチを通るよう経路づけられる。両方のスイッチが適切に機能している間、システムは、耐故障性であるが、１つのスイッチが故障すると、システムは、故障したスイッチが修理されるまで、耐故障性ではなくなる。
【００４６】
図１６は、Ｃｌｏｓネットワークと呼ばれる、別の種類のネットワークを図示する。Ｃｌｏｓネットワークは、クラスタネットワーキングの応用と考えられる、多段回路スイッチングネットワークである。このネットワークは、ホスト４７とリソース４８との間で信号を動的に経路づけることができる、中段クロスバースイッチ４９を特徴とする。例えば、ホスト１は、リソース２からサービスを要求し、トランザクションは、ホスト１がリソースを要求する方法に応じて、スイッチ１またはスイッチ２を通じて搬送される。１つのクロスバースイッチが故障すると、すべてのトラフィックが、残りのクロスバースイッチを通るよう経路づけられる。すべてのクロスバースイッチが適切に機能している場合、システムは、耐故障性であるが、１つのスイッチが故障すると、システムは、故障したスイッチが修理されるまで、耐故障性ではなくなる。
【００４７】
上記した従来のアーキテクチャに加え、列挙しきれない程多くのアーキテクチャがある。それらには、ある１つの共通点があり、すべての処理およびサブ処理が、プロセッサのアドレス空間程度のプロセッサの基準フレームによって定義される１つのＤＩＤ内で動作するプロセッサユニットによって開始される。場合によっては、親処理は、サブ処理のため、子処理を他のＤＩＤに渡すことができる。子処理のＤＩＤは、子処理を実行するプロセッサユニットのアドレス空間によって定義される程度の他の独立ドメインである。共有メモリ・コンピュータ・アーキテクチャでさえも、基準フレームは、アドレス空間内のデータおよび命令でのみ動作するプロセッサのアドレス空間によって定義され、これは、１つのドメイン、データおよび命令ドメイン（ＤＩＤ）を構成する。
【００４８】
ＭＭアーキテクチャは、データおよび命令情報アドレス空間を動的に定義および再定義する能力を有する。これにより、フォンノイマンおよびハーバードアーキテクチャ間での区別が無くなる。というのも、これらのアーキテクチャの両方が、処理ユニットの点から、それらのアドレス空間を定義するためである。ＭＭアーキテクチャは、アドレス空間を論理的に定義し、メモリの物理的位置を無関係にし、中央処理装置の範囲を越えさせる。さらに、フォンノイマンおよびハーバードアーキテクチャでは、処理ユニット、または処理ユニットから出る処理は、それらの処理がいつ、どのように実行されるかをスケジューリングする。ＭＭアーキテクチャは、１つまたは複数のＭＭプロセッサを使用し、ＤＩＤで動作しているスレーブプロセッサユニット（ＳＰＵ）で処理をスケジューリングする。処理に対する要求のすべては、ＭＭアルゴリズムによって扱われ、スケジューリングされる。さらに、すべてのアーキテクチャにおいて、すべてのデバイスに共通の周期信号に準拠し、通信の状態を定義する、所定のパスに沿って、情報がコンポーネント間で交換される。ＭＭアーキテクチャでは、これらのパスは、ＭＭプロセッサによって決定され、周期信号は、ＭＭデバイスに共通であり、情報交換は、デバイス間で同期的に行われる。
【発明の概要】
【００４９】
本発明によるメタメンター（ＭＭ）アーキテクチャは、少なくとも２つの基準ドメインを備える。１つのドメインであるＤＩＤは、データならびに命令を備える処理情報、およびＤＩＤのアドレス空間を必要に応じて動的に定義および再構成するＭＭドメイン（「メンタードメイン」と称することもある）を扱う。さらに、ＭＭドメインは、ＤＩＤのためのデータおよび命令を備え、ＤＩＤにおいてプロセッサによって実行される処理をスケジューリングし、ＭＭキャッシュに事前に格納され、ＭＭプロセッサによってアクセスされるルールのセットに従い、ＤＩＤをモニタリングする。ルールセットは、ＤＩＤ処理およびイベントで不変のガイドラインおよび限界を確立し、ルールは、以下でより詳細に説明するように、故障およびマルウェアに対する防護のために設計される。
【００５０】
本明細書および本明細書の特許請求の範囲で使用される用語の定義は、以下の通りである。「セット」という用語は、数量における１つまたは複数を意味するが、ヌルセットは含まない。「サブセット」という用語は、セットの一部またはすべてのメンバを意味する。「メタ情報」という用語は、本明細書で説明するような、メンタリングのためのメンタープロセッサによって使用される、データ、アルゴリズム、およびルールセットを意味する。「メンタリング」という用語は、ＭＭドメイン内でメタ情報を適用および使用して、本明細書で説明する方法で、ＤＩＤを動的にモニタリング、制御、構成、および再構成することを意味する。メンタリングの例として、これだけに限らないが、メタアルゴリズムに従って、抽象概念（abstractions）および仮想概念（virtualizations）を生成すること、およびメタ・ルール・セットを実施することがある。他の用語の定義は、本明細書、特許請求の範囲、および図面で見ることができる。
【００５１】
本発明によるＭＭアーキテクチャにより、ＤＩＤおよびメンタードメインを備える、動的に構築可能なコンピュータシステムが可能となる。一般に、ＤＩＤは、ＤＩＤでのみ動作するプロセッサのセット、およびＤＩＤで動作可能なメモリのセットを備える。メンタードメイン（ＭＭドメインとも称する）は、一般に、メタ情報、メタ情報を含むメンター・ドメイン・メモリ、メンター・ドメイン・メモリへのアクセスを含むメンター・ドメイン・プロセッサのセット、およびＤＩＤ内のプロセッサおよびメモリのセットの間に通信をもたらすメンタースイッチのセットを備え、メンタースイッチのセットは、メタ情報によるすべての前記通信をメンタリングするためのメンター・ドメイン・プロセッサのセットと協働する。ＤＩＤプロセッサのセットは、フォンノイマン、ハーバード、改良ハーバード、またはデータフローアーキテクチャを有する１つまたは複数のプロセッサを含むことができる。メンタリングは、さらに、システム割込を受信すること、および割込サービス処理をＤＩＤのプロセッサならびにメモリに選択的に割り当てることを含み、システム入力および出力動作を抽象化する。メンタースイッチは、一般に、ＤＩＤプロセッサとＤＩＤメモリとの間に動的に構成可能な通信パスを備え、スイッチは、メンター・ドメイン・プロセッサと協働し、要望通りに、メタ情報に従って、通信パスを、選択的に構成および再構成する。
【００５２】
他の好適な実施形態では、メンタリングは、プロセッサ・コア・レベルで実行される。この実施形態において、メンタリングは、１つまたは複数のコアキャッシュ、例えば、命令キャッシュ、データキャッシュ、レベル２ならびに３（Ｌ２ならびにＬ３）キャッシュに／から転送される情報を仮想化することを含む。メンタースイッチは、コアとそのようなキャッシュとの間に通信パスをもたらし、メンタースイッチは、メンター・ドメイン・プロセッサと協働し、ＭＭキャッシュに格納されるメタ情報に従って、すべてのそのような通信をメンタリングする。複数コアを含む他の同様の実施形態では、２つのＭＭが存在する。前記実施形態と同様に、命令バスとデータバス、さらにＬ２キャッシュとの間のすべての通信をメンタリングするＭＭが存在するが、さらに、各コアの制御ユニットと算術論理ユニットとの間に介在するコア・メンター・スイッチが存在する。コアＭＭプロセッサは、コア・メンター・スイッチと協働し、コアの制御ユニットと、それぞれの算術論理ユニットとの間の通信をメンタリングする。２つのＭＭが、調整のために通信することが好ましい。
【００５３】
他の実施形態において、複数ＤＩＤプロセッサコアが、ブロックに仕切られる。各ブロックの各コアは、命令およびデータキャッシュを備える。各ブロックは、ブロックメタ情報、命令およびデータキャッシュのための仮想化されたＬ２キャッシュとして機能するブロックＭＭメモリ、ブロック・メンター・ドメイン・プロセッサ、およびブロック・メンター・スイッチを備える。Ｌ２キャッシュは、ブロックメタ情報に従って、ブロック・メンター・スイッチと協働するブロック・メンター・ドメイン・プロセッサによって、各ブロックに対して少なくとも複数のパーティションに仮想化されることが好ましい。さらに、この実施形態は、ＤＩＤメモリのセット、全ブロックに関連する全体メタ情報、全体メタ情報へのアクセスを含む全体メンター・ドメイン・プロセッサ、全ブロックとＤＩＤメモリのセットとの間に通信をもたらす全体メンタースイッチ、および全ブロックと全体メンタースイッチとの間の通信リンクを備える。
【００５４】
複数ＤＩＤプロセッサまたはコアを含むシステムでは、メンタードメインの好ましい実施形態は、ルールサーバとして機能する第１のプロセッサにアクセス可能なルールのマスターセットを備える第１のメモリ、複数ＤＩＤプロセッサのサブセットをそれぞれがメンタリングする第２のプロセッサのセット、および対応する第２のプロセッサにアクセス可能な第２のメモリのセットを備え、各第２のメモリは、対応する第２のプロセッサによって実行されるメンタリングに関するルールのサブセットを含む。この場合、第１のプロセッサは、関連するサブセットを、第２のメモリに供給する。
【００５５】
他の好適な実施形態では、複数のコンピュータサブシステムが存在し、それぞれが、ＤＩＤおよびＭＭドメインを備える。ＤＩＤは、それぞれ、ＤＩＤプロセッサのセットおよびＤＩＤメモリのセットを備える。ＭＭドメインは、それぞれ、メタ情報、メンター・ドメイン・プロセッサ、メタ情報に従ってＤＩＤプロセッサとＤＩＤメモリとの間のすべての通信をメンタリングするメンター・ドメイン・プロセッサと協働するメンタースイッチ、複数のコンピュータサブシステム間でＤＩＤ内の情報を転送する通信リンク、および複数のコンピュータサブシステム間でメタ・メンター・ドメイン内の情報を転送する通信リンクを備える。この実施形態はまた、それぞれが複数のコンピュータサブシステムと通信する複数のセンサと、それぞれが複数のコンピュータサブシステムと通信する複数のディスプレイデバイスとを備えてもよい。
【図面の簡単な説明】
【００５６】
【図１】従来のフォン・ノイマン・コンピュータ・システムの機能図である。
【図２】従来のフォン・ノイマン・アーキテクチャを示すベン図である。
【図３】仮想化構造での従来のフォン・ノイマン・アーキテクチャを示すベン図である。
【図４】従来のハーバード・コンピュータ・システムの機能図である。
【図５】従来のハーバードアーキテクチャを示すベン図である。
【図６Ａ】制御フロープログラムとタグ付きトークンプログラムとの違いを示すフロー図である。
【図６Ｂ】従来のタグ付きトークンアーキテクチャの機能図である。
【図７】従来のマイクロ・プロセッサ・アーキテクチャを示す機能図である。
【図８Ａ】従来のデュアルコアＣＰＵアーキテクチャを示す機能図である。
【図８Ｂ】従来のデュアルコアＣＰＵアーキテクチャを示す機能図である。
【図９】従来の６４コアＣＰＵアーキテクチャを示す機能図である。
【図１０】従来のＧＰＧＰＵアーキテクチャを示す機能図である。
【図１１】従来のＧＰＧＰＵ処理フローを示すフロー図である。
【図１２】従来のクラウド・システム・アーキテクチャを示すフロー図である。
【図１３】従来の並列クラスタ・メモリ・アーキテクチャを示す機能図である。
【図１４】従来の分散クラスタ・メモリ・アーキテクチャを示す機能図である。
【図１５】従来のスイッチド・ファブリック・アーキテクチャを示す機能図である。
【図１６】Ｃｌｏｓネットワーク決定ブロックを示す機能図である。
【図１７】メタメンター制御マルチ・スレーブ・プロセッサ・システムを示す機能ブロック図である。
【図１８】メタメンターを、本発明に従い、フォンノイマン型コンピュータシステムに組み込んだ場合を示す機能ブロック図である。
【図１９】メタメンターを、本発明に従い、ハーバード型コンピュータシステムに組み込んだ場合を示す機能ブロック図である。
【図２０】本発明によるメタ・メンター・アーキテクチャを示すベン図である。
【図２１】メタ・メンター・スイッチを、本発明に従い、プログラマブル割込タイマを有する、単一プロセッサ、単一メモリ・コンピュータ・システムに組み込んだ場合を、より詳細に示す機能ブロック図である。
【図２２】メタメンターを、本発明に従い、マルチプル・スレーブ・プロセッシング・ユニット（ＳＰＵ）を備えるコンピュータシステムに組み込んだ場合を示す機能ブロック図である。
【図２３】データフローアーキテクチャの場合、メタメンターおよびメタ・メンター・スイッチを、本発明に従い組み込み、および処理ユニット、メモリ、関連メモリ、ならびに周辺部との間に介在させる場合を示す機能ブロック図である。
【図２４】データフローアーキテクチャの場合、メタメンターおよびメタ・メンター・スイッチを、本発明に従い組み込み、および処理ユニット、メモリ、関連メモリ、ならびに周辺部との間に介在させる場合を示す機能ブロック図である。
【図２５】メタメンターおよびメタ・メンター・スイッチを、本発明に従い、タグ付きトークン・データフロー・アーキテクチャに組み込んだ場合を示す機能ブロック図である。
【図２６】メタメンターおよびメタ・メンター・スイッチを、本発明に従い、複数ＣＰＵ不均一アーキテクチャに組み込んだ場合を示す機能ブロック図である。
【図２７】メタメンターを、本発明に従い、図７のコンピュータシステムに組み込んだ場合を示す機能ブロック図である。
【図２８】メタメンターを、本発明に従い、別の方法で、図７のコンピュータシステムに組み込んだ場合を示す機能ブロック図である。
【図２９】動的再構成可能ＣＰＵを有するメタメンターを示す機能ブロック図である。
【図３０Ａ】メタメンターを、本発明に従い、それぞれ１つおよび２つのＣＰＵコアを有するコンピュータシステムに組み込んだ場合を示す機能ブロック図である。
【図３０Ｂ】メタメンターを、本発明に従い、それぞれ１つおよび２つのＣＰＵコアを有するコンピュータシステムに組み込んだ場合を示す機能ブロック図である。
【図３１】メタメンターを、本発明に従い、８ＣＰＵコアを有するコンピュータシステムに組み込んだ場合を示す機能ブロック図である。
【図３２】メタメンターを、本発明に従い、複数ＣＰＵコアを有するコンピュータシステムに組み込むが、メタメンターがコアの外部にある場合を示す機能ブロック図である。
【図３３】メタメンターを、本発明に従い、ＧＰＵコンテキストに組み込んだ場合を示す機能ブロック図である。
【図３４】メタメンターを、本発明に従い、グリッド・コンピューティング・システムに組み込んだ場合を示す機能ブロック図である。
【図３５】メタメンターを、本発明に従い、グリッド・コンピューティング・システムに組み込んだ場合を示す機能ブロック図である。
【図３６】メタメンターを、本発明に従い、グリッド・コンピューティング・システムに組み込んだ場合を示す機能ブロック図である。
【図３７】メタメンターを、本発明に従い、クラスタ・コンピューティング・システムに組み込んだ場合を示す機能ブロック図である。
【図３８】メタメンターを、本発明に従い、並列構成に組み込んだ場合を示す機能ブロック図である。
【図３９】メタメンターを、本発明に従、並列および分散モデル（ＰＤＭ）の両方に同時に組み込んだ場合を示す機能ブロック図である。
【図４０】２つのメタメンターを、本発明に従い、共通コンポーネントに接続して組み込んだ場合を示す機能ブロック図である。
【図４１】図４０によるメタ・メンター・システムの出力を示す、テーブルおよびグラフである。
【図４２】図４０によるメタ・メンター・システムの出力をさらに示すテーブルである。
【図４３】メタ・メンター・システムを定義するために使用される、分散またはニューラルネットワークの分析などの数学的技術を示す図である。
【発明を実施するための形態】
【００５７】
図１７を参照すると、「ＳＰＵ制御スイッチ」によって表される仮想化スイッチを使用するブロック形式での基本メタメンター（ＭＭ）が図示される。本明細書で開示するようなこのＭＭアーキテクチャは、米国特許第７，４８４，０３２  Ｂ２号で扱われる発明と類似するが、別個の新規のものである。また、図１７には、スイッチ、ＭＭ  ＣＰＵ、ＭＭキャッシュ、ルーティングテーブル、およびキープアライブ制御器に対する論理制御も示される。この機能を実行するよう動作する単一デバイスまたは一連のデバイスとすることが可能なＭＭ中央処理装置（ＭＭ  ＣＰＵ）５０が含まれる。ＭＭは、状態機械（ステートマシン）で実現することさえも可能である。本明細書で開示する本発明により、ＭＭ  ＣＰＵはＭＭドメイン内で動作し、本機械に関連するすべてのイベントをモニタリング、格納、さらに制御する監督アルゴリズムを実行する。それは、スレーブ・プロセッシング・ユニット（ＳＰＵ）５１のアレイにスレッドをスケジューリングし、それらの進捗をモニタリングし、故障信号を検出することができる。それは、システムおよびＩ／Ｏリソースを分散し、ＳＰＵへの割込を生成し、それらのメモリスタックを格納する。ＭＭ  ＣＰＵはまた、割込の発生状況に従い、どのＳＰＵが処理を続けるかを決定する。これは、割り込まれたＳＰＵが、ＭＭ  ＣＰＵによりスタック情報を返されるプロセッサと必ずしも同じではないことを意味し、ＭＭ  ＣＰＵはスタック情報を（同じオペレーティングシステムを実行している）異なるＳＰＵに戻すことを決定することができる。同じトークンによって、同じオペレーティングシステムが、割込発生時に、同じプロセッサに割り当てられる可能性もあるし、割り当てられない可能性もある。オペレーティングシステムがＳＰＵと適合可能である限り、ＭＭ  ＣＰＵアルゴリズムに達し、どのプロセッサがオペレーティングシステムに割り当てられるかを判断する。さらに、割込およびスタックを扱うために、ＭＭ  ＣＰＵアルゴリズムは、割込に至るまでのすべてのイベントを扱い、格納する。このようにして、ＭＭ  ＣＰＵは、機械でのすべての処理の状態を常に把握している。各ＭＭは、複数の制御スイッチ、すなわち、制御Ｉ／Ｏ５２、管理Ｉ／Ｏ５４、メモリ５４、および複数のＳＰＵの間で選択するためのＳＰＵスイッチ５５を備えることができる。
【００５８】
再び図１７を参照すると、キープアライブ制御器（ＫＡＣ）５６がさらに示されており、その機能は、ＭＭの基準フレームの外部にある他のＭＭ機械またはデバイスへの／からの情報を送受信することである。情報は、データおよび制御線５７を介して、ＭＭデバイス間で共有され、処理データ、処理テーブル、機械状態、および本発明による他の情報、例えば、クラウドキーならびに配列情報、および図３５ならびに図３９と関連して以下で説明するスケジューリングならびにＩ／Ｏ情報を含むことが好ましい。
【００５９】
本発明によるＭＭは、ルールセットおよび／またはアルゴリズムに基づいて、コンピュータ周辺コンポーネントと、処理ユニットとの間で、信号を動的に経路づける能力を有する。メタ・メンター・アーキテクチャでは、中央プロセッサまたは定義づけられたシステムが存在しない。好ましい設計では、コンポーネント間の物理接続を切り替えない論理スイッチが、信号情報を処理し、接続を論理的に判断する。論理型スイッチは、メンタースイッチと呼ばれる。
【００６０】
メンタースイッチの目的は、処理ユニットとリソースとの間に抽象化層（abstraction layer）をもたらし、アプリケーションと処理とをスケジューリングすることである。メンタースイッチは、処理ユニットからのアドレス情報を処理し、それを別の仮想化アドレス、すなわち、好ましくは２以上のアドレスに変換する。この別のアドレスは、メモリを読み書きする場合に、情報を物理的に格納および検索する。データを修正する必要はないが、例えば、データを暗号化することができる。スイッチの論理部分は、スイッチが機能する方法を判断する。以下で説明するいくつかの論理特性があるが、基本的に、論理部分は、アドレス信号および制御信号をどのように処理するかを制御する。論理とは、第１のドメインの機能を制御する他の処理ドメインを意味する。この構成は、再帰的としてもよく、スイッチは、異なる層でコンピュータシステム内に配置することができるとともに、メンタースイッチ間で信号を転送でき、それらの機能および動作を容易にする。メンタースイッチは、他のメンタースイッチ間またはシステムコンポーネント間で情報を通信し、システムを備える。システムは、メンタースイッチがこれらの通信を実行する間には存在し、システムは、それらの通信の終了時点で存在が停止する。非再帰的構成では、メタメンターは、他の再帰的メタ・メンター・システムと通信し、マルチ・ドメイン・システムを生成する。再帰的ＭＭシステムと同様に、これらのマルチ・ドメイン・システムは、ＭＭ通信およびタスキングが実行される場合に存在し、それらの通信の終了時点で存在が停止する。
【００６１】
図１８および図１９を参照すると、メタメンター６０が図示されており、そのそれぞれは、本発明に従って、フォンノイマンおよびハーバードアーキテクチャ構成に組み込まれている。各場合では、メモリ、すなわち、命令メモリまたはデータメモリに対する要求は、ＭＭ論理によって規定されるようなフォールトトレラントＭＭスイッチ６１（例えば、図１７に図示するメモリ制御スイッチ５４）によって変換され、アルゴリズムは、例えば、ＭＭ  ＣＰＵ（図１７における、５０）によって実行される。フォンノイマンの場合（図１８）では、データメモリまたは命令メモリに対するＣＰＵ要求は、ＭＭによって変換され、複数のメモリユニットＭｅｎ−１からＭｅｎ−６として図示した全体メモリ６２内のデータ領域および命令領域に論理的に分けられる。これにより、フォン・ノイマン・アーキテクチャは、ハーバードアーキテクチャに、効率的に変換される。ハーバードの場合（図１９）では、データメモリに対するＣＰＵ要求は、メモリ−Ａまたはメモリ−Ｂ内で任意のメモリ位置に変換される。同じように、命令メモリに対するＣＰＵ要求は、メモリ−Ａまたはメモリ−Ｂ内で任意のメモリ位置に変換される。アクセス制御線は、ＭＭスイッチに接続され、全体システム内で双方向処理をしてもよく、しなくてもよい。さらに、メモリ−Ａまたはメモリ−Ｂは、ＣＰＵと適合する必要はない。そのため、メモリ−Ｂが２４ビットストレージユニットを有する場合、ＭＭは、ＣＰＵ読取８ビットデータメモリ要求を、２４ビットメモリ−Ｂからの、２つまたは３つの８ビット読取りに変換することができる。同じように、ＭＭは、ＣＰＵ２４ビット命令読取りを８ビットメモリ−Ａからの３つの読取りに変換することができ、このことは同時に発生してもよいし、同時でなくてもよい。メタ・メンター・アーキテクチャでは、全体システムメモリは、データおよび命令メモリの物理的分割を必要としないので、ＣＰＵ（ＳＰＵ）がハーバードアーキテクチャ構造を有する場合でも、フォン・ノイマン・アーキテクチャを考慮することができる。
【００６２】
図１８および図１９を再び参照すると、どちらのＭＭ６０も、それぞれの処理テーブル６２およびルールセット６３と通信し、ＣＰＵによって実行されるＤＩＤ処理およびイベントでの不変（invariant）のガイドラインおよび限界と、故障およびマルウェアに対する防護のために設計されるルールと、を確立する。テーブルおよびルールセットは、ＭＭドメインメモリに格納され、その内容は、アプリケーションおよびシステム環境により変化する。処理テーブルは、許容可能な処理およびそれらに関する情報、例えば、処理識別子（ｐｒｏｃ）、各列挙された処理に対するプログラムカウンタ情報、列挙された各処理と関連するＣＰＵ、および各処理に関連する備考の他のメモリおよび／または情報を備える。
【００６３】
図２０は、メタ・メンター・アーキテクチャをベン図で図示する。ＣＰＵは、システムではなく、メタ・メンター・スイッチと交わる。システムはまた、ＭＭスイッチと交わり、ＣＰＵとは交わらない。これにより、ＭＭスイッチが、ＣＰＵ（または、ＣＰＵアレイ）およびシステムを、同期的に仮想化することを可能にする。ＭＭおよびシステム間の交差部は割込などの信号制御線を表し、これはスケジューリング処理の一部である。これは、２つのドメインを生成する。ＣＰＵドメインは、命令およびデータ情報を扱い、ＭＭドメインは、アドレス空間を仮想化し、制御およびスケジューリングを扱う。
【００６４】
図２１を参照すると、単一処理ユニット、ＳＰＵ６６、およびＤＩＤ内で動作する単一メモリＭＥＭ−ＤＩＤ６７を制御するＭＭドメイン内で動作するメタメンターが図示される。図２１の点線６５は、ＭＭ  ＣＰＵ、ＭＭキャッシュ、および図１７のＳＰＵ制御スイッチ５５の内部機構の新規な実施形態の１つを備える、ＭＭおよびメンタースイッチのコンポーネントを囲む。ＭＭ−ＣＰＵ６８は、ＭＭ−ＭＥＭ６９（例えば、図１７のＭＭキャッシュ）に配置されるメタ・データ・リポジトリからの抽象化命令（abstraction instructions）をもたらすプロセッサである。抽象概念のインスタンスは、ＭＭ−ＣＰＵによって、アドレスおよびデータバス、すなわち、Ａｄｄｒ  ＣＰＵ−１およびＤａｔａ  ＣＰＵ−１を介して、メモリＭＨｂ  ７０に置かれ、ＭＭ−ＣＨ７１によって実行され、プロセッサＳＰＵおよびメモリコンポーネントＭＥＭ−ＤＩＤの間の抽象化記述子をもたらす。
【００６５】
上述したように、メタ・メンター・アーキテクチャは、少なくとも２つのドメインで動作する。ＭＭドメインは、基本的に、アドレス空間（例えば、必要に応じて、定義、および再構成する）および処理／スレッドスケジューリングであり、スレーブプロセッサの動作は、基本的に、ＤＩＤ（データおよび命令ドメイン）内で行われる。ＭＭ−ＣＨ、ＭＨａ７２、およびＭＨｂは、協働し、特定の処理またはハードウェアデバイスのための抽象概念を生成する。図２１のＭＭ−ＣＰＵおよびＭＭ−ＭＥＭは、ＭＭドメインの一部であり、ＤＩＤ処理およびシステムハードウェアについてのメタ情報を含む。メタ情報は、各処理を実行する方法についての抽象化記述子を有する。すなわち、ＳＰＵは、図２、図３、および図５のベン図で示すような、ＶＮまたはＨアーキテクチャにおける同期コンポーネントを整合するよう意図されるアドレスバスで電気信号のセットを生成する。しかしながら、ＭＭアーキテクチャでは、ＳＰＵアドレスは、ＤＩＤドメイン内に位置するコンポーネントに対する異なるアドレスに変換される。ＳＰＵおよびＤＩＤコンポーネントの両方は、ＭＨａおよびＭＭ−ＣＨと同期するが、ＳＰＵはどのＤＩＤコンポーネントとも同期しない。これにより、ＳＰＵアドレス空間を、ＤＩＤアドレス空間に「マッピングする」。マッピングする方法は、抽象化記述子によって定義される。これらのバスは、ＳＰＵからＳＰＵに変化することが理解されよう。しかしながら、各バスは、すべてのプロセッサ（ＳＰＵ）についての比較可能な情報を搬送する。好ましい設計では、データは、変化せずに渡されるが、不変データは、ＭＭアーキテクチャでの必要条件ではない。
【００６６】
抽象化記述子は階層スキーマにフォーマットされ、階層スキーマにおいて、属性を有する「オブジェクト」（コンピュータの分野で使用される）のセットが、イベント、処理、およびアドレス空間にアタッチされる。このようにして、ＭＭ−ＭＥＭに格納されるメタ情報は、ＳＰＵによって実行される可能性のある、すべての可能なイベント、処理、およびアドレス空間をカバーする、マスター・ルール・セットを含む。上述のように、ルールセットは、故障およびマルウェアからＤＩＤを防護するように設計された不変限界を確立する。
【００６７】
例えば、ルールセットは、セキュリティオブジェクトによる分類処理を備えてもよい。一般的な分類は「権限」に基いており、それによって、機密性、保全性、および利用可能性の点から、システムへの変更を可能にする。処理オブジェクトは、権限を高めるよう能力を定義する属性を備える。ＭＭドメインは、すべての処理をスケジューリングし、アドレス空間を割り当てる。処理がどのアドレス空間にアクセス可能であるかを定義する属性、処理がどの権限で動作可能かを定義する属性、およびどの種類のデバイスにアクセス可能かを定義する属性が、属性例の一部である。他の例は、処理がＩ／Ｏデバイスから開始された場合に、処理が予め定めたハードウェアおよびアドレス空間にのみアクセス可能であろう、ということを含む。属性の施行は、ＭＭドメインによって保証される。この確実性は、メモリアドレスを定義するアルゴリズムの巡回論理のため、単一ドメインシステムでは不可能である。ＭＭアーキテクチャでは、ＤＩＤアルゴリズムは、アドレス空間を定義することができない。他の例において、処理が、マイクロフォンなどのデバイスにアクセスした場合、その処理は、出力ポートに直接アクセスできない。リストは、非常に大規模になる。
【００６８】
再び図２１を参照すると、ランタイムで、ＭＭ−ＣＰＵは、そのキャッシュ（ＭＭ−ＭＥＭ）から、特定の処理に対して関連するルールセットを含むスキーマからの適切な情報を検索し、次いで、その情報を、Ａｄｄｒ  ＣＰＵ２およびＤａｔａ  ＣＰＵ２を介して、メモリＭＨｂに格納する。ＭＨｂは、その場合、選択された処理に関連する、関連ルールセットのリポジトリである。ＭＭ−ＣＨは、次いで、Ｉｎｔ２を介して、ＭＨｂにアクセスし、ＳＰＵに割り込み、ＳＰＵのアドレス空間を定義することによって、ＳＰＵで選択された処理を開始する。この実施形態において、ＭＭ−ＣＨプロセッサは、ＭＭドメインで動作し、ＳＰＵ、およびそのＤＩＤメモリ（ＭＥＭ−ＤＩＤ）ならびにＩ／Ｏ（図示せず）間でのすべての抽象化および仮想化を実行し、ＭＭ−ＣＨはさらに、ＭＨｂに格納された関連するルールセットに従い、ＳＰＵをモニタリングする。メモリＭＨａはまた、ＭＭドメインの一部であり、基本的に、ＭＭスイッチ内のバッファメモリであり、すべてのアプリケーションで必要とされるものではない。代替実施形態として、ＭＭ−ＣＨの機能は、ＭＭ−ＣＰＵに統合することができるが、時間的に効率的ではなくなる。
【００６９】
図２１には、ＰＩＴ−ＤＩＤ７３ブロックも示される。従来のレガシーコンピュータは、プログラマブル間隔時計機構（ＰＩＴ）を組み込むことが多い。従来のコンピュータでは、ＰＩＴは、コンピュータのＣＰＵに直接接続され、プログラムされ、割込を、所与の時間で、ＣＰＵに送信することができる。例えば、月曜朝の２：００ａｍに、コンピュータをバックアップするようプログラムすることができる。２：００ＡＭに、信号がＣＰＵに送られ、現在実行中の処理に割り込む。ＣＰＵは、「スタック」と呼ばれるメモリ位置における割込の前に実行されていた命令に戻るために必要なすべての情報を保存する。ＣＰＵは、次いで、割込の性質および詳細を判断する処理を実行する。次いで、この特定の割込のため、所定のアドレス位置で、命令の実行を開始する。これらの命令に対する用語は、「サービスルーチン」である。フォンノイマンまたはハーバード型アーキテクチャでは、ＰＩＴはＣＰＵに割り込み、ＣＰＵは、スタックで実行していた処理における命令を実行するために必要なすべての状態情報を保存し、割込の種類を判断し、プログラムカウンタは、サービスルーチンの開始であるメモリアドレスにジャンプし、そのアドレスで、命令メモリの実行を開始する。サービスルーチンで実行された場合、それはスタックから情報を引き出し（ポップすると呼ばれることもある）、割込を処理するために停止した状態で実行命令に戻る。この基本機能を実行する方法は、いくつか存在する。上記は、従来のプログラマブル割込タイマを提示し、旧来の割込の処理を行う。
【００７０】
再び図２１を参照すると、本発明によるＭＭ実施形態は、異なるアプローチを使用する。ＭＭ−ＣＰＵは、フォン・ノイマン・メモリＭＭ−ＭＥＭおよびデータ情報メモリＭＨｂに接続されたプロセッサである。ＭＭ−ＣＰＵおよびＭＭ−ＭＥＭは、ＤＩＤスキーマを有する。コンポーネントＰＩＴ−ＤＩＤおよびＭＥＭ−ＤＩＤは、どちらもＤＩＤで動作し、図１７の、制御Ｉ／Ｏスイッチおよびメモリ制御スイッチのそれぞれで表されるコンポーネントの新規の実施形態である。図１７のメモリ制御スイッチに接続されたシステムメモリは、ＤＩＤによってアクセスされるデータおよび命令情報（フォン・ノイマン・アーキテクチャ）を備える。ＳＰＵは、スレーブ処理ユニットであり、ＤＩＤのメンバであり、図１７に示されたスレーブ処理ユニットの１つと同じである。コンポーネント、ＭＭ−ＣＨ、ＭＨａ、ＭＨｂ、およびセレクタ７４は、ルーティングテーブルおよびＳＰＵ制御スイッチとして図１７に示した項目の新規の実施形態である。ＭＭ−ＣＨは、抽象化スキーマを実施するＣＰＵである。
【００７１】
再び図２１を参照すると、ＰＩＴ−ＤＩＤは、ＭＭ−ＣＰＵに接続された割込制御線（Ｉｎｔ１）を有する、プログラム可能割込タイマである。この割込は、ＤＩＤドメイン内にはない。同じく２：００ＡＭ割込例を使用すると、ＭＭ−ＣＰＵは、ＰＩＴ−ＤＩＤによって割り込まれ、ＰＩＴ−ＤＩＤ割込サービスルーチンに対する開始アドレスを配置することによって、ＭＭ−ＣＨまたはＳＰＵのいずれかをスケジューリングする。それは、サービス・ルーチン・アルゴリズムをＭＨｂ内の所定のアドレスに書き込むことによって、このことを実行する。アルゴリズムの目的は、ＰＩＴ−ＤＩＤ割込の性質を判断することである。一例として、ＭＭ−ＣＨを使用して割込を判断する場合、ＭＭ−ＣＰＵは、割込信号（Ｉｎｔ２）をＭＭ−ＣＨに送信し、次いで、ＰＩＴ−ＤＩＤ割込情報をＭＨｂから取り出し（fetch）、それをメモリユニットＭＨａに書き込む。次いで、ＭＭ−ＣＨは、以前の状態に戻る。次いで、ＭＭ−ＣＰＵは、ＭＨｂ内の割込情報を取り出し、ＭＭ−ＭＥＭに存在する処理スキーマを判断する。このメタ情報は、各処理を実行する方法についての抽象概念を含む。それは階層スキーマにフォーマットされ、ＤＩＤ処理のすべてに対する記述子として使用される。次いで、ＭＭ−ＣＰＵは、メタ情報スキーマをＭＨｂに転送し、ＭＭ−ＣＨに割り込んで、所与のＰＩＴ−ＤＩＤサービスルーチンに対するＳＰＵおよびＭＥＭ−ＤＩＤの間のパスを仮想化するスキーマ記述子を実行する。ＭＭ−ＣＨは、ＤＩＤメモリ（ＭＥＭ−ＤＩＤ）からの命令キャッシュを、ＭＨａにロードする。ＭＭ−ＣＨは、Ｉｎｔ３を介してＳＰＵに割り込み、次いで、ＳＰＵは、ＭＨａからのＰＩＴ−ＤＩＤサービスルーチンの実行を開始する。
【００７２】
再び図２１を参照すると、ＭＭ−ＣＰＵまたはＭＭ−ＣＨは、ＳＰＵ読取／書込要求を直接扱うが、この動作中は、ＭＭ−ＣＨは、ＭＥＭ−ＤＩＤからの命令メモリおよびデータメモリを、キャッシュの一種としてＭＨｂにロードする。いずれにしても、ＭＭ−ＣＰＵおよびＭＭ−ＣＨは、情報を定義し、他の処理ドメインからのルールセットに基づいて、命令メモリからのデータを分ける。ＭＭ−ＣＰＵは、そのメタデータを用いてＳＰＵをメンターし、メタ・ルール・セットを実施する。
【００７３】
図２２を参照すると、単一ＭＭ−ＣＰＵを有するメンタースイッチが図示される。しかしながら、メンタースイッチ上で動作するＭＭ−ＣＰＵの数に制限はない。実際に、それぞれが異なる命令セット（異なる製造元）を有する２つ以上のＭＭ−ＣＰＵを有し、同じ機能を実行しても、異なる命令を要求して、共通のモード故障に対して防護することがおそらく有利であろう。
【００７４】
再び図２２を参照すると、メンタースイッチ７５が、ＭＭ抽象化記述子プロセッサ（ＭＭＡＤＰ）８０、すなわち、ＭＭ−ＣＨ−０からＭＭ−ＣＨ−ｎのアレイとともに示される。ＭＭＡＤＰアレイは、上記したＤＩＤ仮想化記述子を使用して、スレーブ処理ユニット８１、すなわち、ＳＰＵ−０からＳＰＵ−ｎのアレイのアドレス空間を仮想化する。図２２のコンポーネントは、図２１のコンポーネントと同じ機能をもたらす。複数のＭＭＡＤＰユニットを設けることで、処理ユニットとシステムコンポーネントとの間の情報転送速度が高まる。さらに、複数のＭＭＡＤＰユニットは、ＭＭスイッチ内で、冗長な耐故障性をもたらす。アレイＭＭＡＤＰは、バイナリ互換である必要はなく、同じ機能を実行することが要求されることが理解されよう。この特徴は、システムを、一般的なモード故障から保護する際に重要である。Ｎバージョンプログラミングとして知られる古典的な開発技術、複数の機能的に同等のプログラムが、同じ初期仕様から独立して生成される方法または処理が、メタ・メンター・アーキテクチャを使用して拡張される。ＭＭＡＤＰおよび／またはＭＭ−ＣＰＵレベルで２つ以上のバイナリ互換のないプロセッサを使用することにより、デバイスは、完全に独立したシステムにより状態レプリケーションを使用することが可能となる。各ＭＭ−ＣＰＵは、異なる通信パスおよび許可アルゴリズムを通じて、ユニークにアクセスされることができる。抽象化記述子を生成するためのシステムは、処理要件によって構築される、利用可能で、ランダムに選択されたバイナリ互換のないコンポーネントで構成されることができる。組み合わせると、これらの特性は、命令またはハードウェア内の単一のエラーが、２つの独立した構築可能スイッチシステムにわたってそれ自体を複製することを困難にする。それが命令の意図するものであったとしても、２つの併発エラーが、同時に発生することは考えにくい。この構成は、例えば、信憑性のための物理的システムコンポーネントでの署名を確認するメタメンターＣＰＵアルゴリズムによって使用することができる。システムコンポーネントの１つまたは複数のユニークな特性は、異なる識別アルゴリズムを有するバイナリ互換のないＣＰＵによって分析される。
【００７５】
再び図２２を参照すると、図１７のＳＰＵ制御スイッチ５５の新規な実施形態が、点線７５で囲まれる。共通の情報バス７６が、スレーブ処理ユニット、ＳＰＵ−０からＳＰＵ−ｎ（ＳＰＵ）およびメモリコンポーネントＭＨａ−０からＭＨａ−ｎ（ＭＨａ）を接続する。ＭＨａ７７は、ＳＰＵに恒久的に割り当てることができ、または任意に割り当てることができる。ＭＨａからシステムコンポーネントに情報を転送する方法に関して、図２１と図２２との間で違いがある。図２１では、システムコンポーネントは、メモリデバイスＭＨｂおよびＭＥＭ−Ｒ１に直接接続されるものとして示される。図２２では、システムコンポーネントは、ＭＭＡＤＰアレイに接続される。機能は同じであり、違いは、図２１では、情報はＤＭＡ（直接メモリアクセス）を介して転送され、一方、図２２では、情報はＭＭＡＤＰを介して転送される。図２１の単一ユニットで示した単一データ線は、図２２のデータバスによって置き換えられている。図２２でのコンポーネント制御線は、実線で示した別々のバス７８である。
【００７６】
再び図２２を参照すると、ＰＩＴ−ＤＩＤ７９は、上記の場合と同じ方法でＭＭ−ＣＰＵに割り込む。単一ＭＭ−ＣＰＵは、利用可能なものをスケジューリングし、または処理ＭＭＡＤＰを選択し、サービスルーチンに対する開始アドレスを取り出す。ＭＭ−ＣＰＵおよびＭＭ−ＣＨ−２が選択され、ＰＩＴ−ＤＩＤサービス・ルーチン・アドレスを取り出したとする。上記の例のように、ＭＭ−ＣＰＵは、ＰＩＴ−ＤＩＤフェッチルーチン開始命令メモリアドレスを、例えば、ＭＨｂ−０に書き込むことによって、このことを行う。すなわち、ＭＭ−ＣＨ−２が、ＭＭ−ＣＰＵによって割り込まれた場合、ＭＭ−ＣＨ−２は、ＭＭ−ＣＰＵによって定義されたアドレスで命令の実行を開始する。これにより、ＭＭ−ＣＨ−２は、ＰＩＴ−ＤＩＤサービス・ルーチン・アドレスを取り出し、それを、利用可能な、ＭＨｂ、例えば、ＭＨｂ−１内の所定の位置に配置する。情報がＭＨｂ−１に置かれると、ＭＭ−ＣＨ−２は、その以前の状態に戻る。ＭＭ−ＣＰＵは、ＰＩＴ−ＤＩＤ割込の開始アドレス位置を取り出し、その開始アドレスを使用して、ＭＭ−ＭＥＭのルックアップテーブル内に存在するサービスルーチンについてのメタ情報を取り出す。メタ情報は、先の場合と同じ種類の情報、すなわち、どの種類のアクセスについての情報を、サービスルーチンが有するのか、および関連ルールを含む。ＭＭ−ＣＰＵは、この情報を、ＭＨａ−３に書き込む。ＭＭ−ＣＰＵは、ＭＭ−ＣＨ−３がＳＰＵ−３を開始して、ＰＩＴ−ＤＩＤサービスルーチンを処理することを可能にするＭＨａ−２内に他の割込サービスルーチンを配置する。
【００７７】
プロセッサ、この場合では、ＳＰＵが、ソフトウェア割込またはＳＰＵからのポーリング処理を書き込み、ＭＭ−ＣＰＵによって配置されたルールセットに従って、ＳＰＵで実行する処理に割り込む情報を書き込んだ場合、実行処理状態は、新しい処理を開始する前に、システムメモリ内に保存される。従来のシステムは、情報を、中央メモリに格納する。ＭＭアーキテクチャでは、処理情報は、ＭＨａメモリに格納してもよい。実際には、メモリ、例えば、ＭＨａレベルメモリなどの周辺機器間のデータのブロック転送は、Ｌ４キャッシュと呼ばれるキャッシュとして動作し、ＳＰＵは、Ｌ４キャッシュとのみ通信する。耐故障性、チェック・ポイント・キャッシュ・ストレージは、Ｌ４キャッシュで実行することができ、ストレージアルゴリズムに応じて別々の時間に、またはすぐに、メモリ、ディスク、プリンタ、または他の周辺機器に書き出すことができる。Ｌ４キャッシュレベルは、ＭＭ−ＣＰＵがシステム内に配置される場所に関連することに留意されたい。メタ・メンター・アーキテクチャは、Ｌ１、Ｌ２、またはＬ３レベルで容易に配置することができる。
データフローアーキテクチャ
【００７８】
図２３および図２４を参照すると、データフローアーキテクチャの場合を示す。メタメンターは、処理ユニット、メモリ、および関連周辺部の間に配置される。ＭＭは、抽象化層を仮想化し、処理スケジューリングを容易にする。
【００７９】
図２３を参照すると、データフローアーキテクチャに組み込まれたメタメンターが示される。ＭＭスイッチ８４は、ＭＭドメインを生成する「可能ユニット」の周りの、一種の物理的、論理的ラッパーであり、メモリ情報を調節し、ノード制御を処理する。この構成は、ＭＭアーキテクチャを適合可能にする方法を示す。ＭＭアーキテクチャは、フォンノイマンまたはハーバードアーキテクチャと同様の仮想化、複製、およびスケジューリングにより耐故障性をもたらし、レガシーデータフロー機能は、図６Ｂに示したものと同じままである。
【００８０】
再び図２３を参照すると、マッチングユニット２１への入力は、従来のシステムと同様に供給される。これらのトークン、すなわち、「タグ付きオペランド」は、ＭＭスイッチ８４によりメモリ内に格納され、ＭＭアルゴリズムによって仮想化される重複位置に格納される。命令のタグ付きオペランドのすべてが利用可能である（すなわち、先のノード機能もしくは命令からの出力および／またはユーザ入力）場合、機能は準備が整っており、ＭＭは、フェッチユニット２２をスケジューリングし、ノード記述毎の機能を実行する。これは、命令の作動（firing）または始動（activate）として知られる処理と同じである。ノード記述およびトークン情報は、ＭＭを介してフェッチユニットにロードされ、機能ユニット２３に回送され、トランザクションを完了する。命令が実行ユニットにより完了すると、その出力データは、ＭＭを介して、マッチングユニットおよび後続のメモリ領域に（そのタグを伴い）格納される。（タグ値によって識別される）この特定の情報に依存する任意の機能は、次いで、実行準備が整ったとしてマークされ、ＭＭによってスケジューリングされる。このようにして、後続の命令は、適切な順序で実行され、競合状態が避けられる。この順序およびメモリストレージは、人間のプログラマが描く連続的な順序とは異なる。要求されるデータオペランドに加えて、機能は、命令トークンとも呼ばれるパケットとして実行ユニットに送信される。
【００８１】
図２４を参照すると、複数マッチング、取り出し、および機能ユニットを示すフォールトトレラントＭＭアーキテクチャを含む並列化データフローアーキテクチャが図示される。マッチング・ユニット・トークンは、ＭＭのアルゴリズムを介して仮想化されたメモリ内に配置され、ＭＭは、利用可能性を判断し、すべての宛先ノードのスケジューリングを行う。図２４はまた、機能ユニットに直接接続されるフェッチユニットを簡潔に示すが、フェッチユニットおよび機能ユニットはまた、ＭＭによって仮想化され得、したがって、宛先アドレスおよび処理タグのすべての仮想情報は、ＭＭによって判断される。
【００８２】
再び図２４を参照すると、トークンは、ＭＭによってマッチングユニットに接続されるメモリに格納される。このタグ付きトークンシステムは、単一システムと同様に機能する。処理インスタンスに対するすべてのトークンが組み立てられた場合、それらは、ＭＭによって利用可能なフェッチユニットに送信され、そこでノード記述とともにそれらは組み合わされる。この記述は、ＭＭによってメモリ内に格納され、ノード記述は、処理が実行される利用可能なフェッチユニットに回送される。上記のように、フェッチユニットと機能ユニットとの間の処理はまた、ＭＭによって仮想化され得るが、図２４には図示しない。機能ユニットの出力は、出力がマッチングユニットへの入力に対するトークンである場合、トークン用にメモリ内に配置され、および／または、後処理のためにメモリ内に配置される。
【００８３】
再び図２５を参照すると、タグ付きトークン・データフロー・アーキテクチャに組み込まれたＭＭスイッチが図示され、図２１に示すのと機能的に同じフォンノイマン／ハーバードスイッチである。マッチングユニット２１が、タグ付きオペランドの形式で入力を受信した場合、それはＭＨａ８７に格納され、その直後にＭＭ−ＣＰＵ８８が割り込まれる。この割込に対するサービスルーチンは、タグ付きオペランドに関するすべての情報を、重複メモリ（ＭＨａまたはＭＥＭ−ＤＩＤ８９）にコピーし、フェッチユニット２２に情報を入れる。ルールセットを含むノード生成情報、メタおよび機能構成は、ＭＭ−ＣＰＵからＭＨａに直接通される。情報がメモリに通されると、ＭＭ−ＣＨ９０は、ＭＭ−ＣＰＵによって割り込まれ、ＭＭ−ＣＨは、ＭＨａでの情報の実行を開始する。タグ付きオペランドのすべてが利用可能となった場合、ＭＭ−ＣＨは、フェッチユニットをスケジューリングし、機能を実行する。フェッチユニットおよび機能ユニット２３は、まとめて、「ノード」と呼ばれる。ノードがその動作を終了した場合はその出力をＭＭ−ＣＨに通し、出力が、任意の待ち状態の機能に対するタグ付きオペランドであるか、または、ＭＥＭ−ＤＩＤに通された場合に、ＭＭ−ＣＨにおいて、情報はマッチングユニットに回送される。このことは汎用システムを示す。図２１の実施形態のように、ＭＭ−ＣＰＵは、そのキャッシュ（ＭＭ−ＭＥＭ）９１から、特定の処理に対して関連するルールセットを含むスキーマからの適切な情報を検索し、次いで、その情報をメモリＭＨｂ９２に格納する。ＭＨｂは、その場合、選択されたデータフロー処理に関連する、関連ルールセットのリポジトリである。
【００８４】
図２６を参照すると、不均一ＣＰＵおよびアーキテクチャを用いて構成された並列ＭＭスイッチ９５を図示する。スイッチは、並列データフロー、フォンノイマン（ＳＰＵＶＮ−ｎ）、およびフォールト・トレラント・メタ・メンター・アーキテクチャで構成されるハーバードアーキテクチャ（ＳＰＵＨ−ｎ）を特徴とする。スイッチのデータフロー部分を参照すると、マッチング・ユニット・タグ付きオペランドは、スケジューリングされ、図２３における処理と同様の方法だが、並列タグ付きトークンアーキテクチャで、マッチングユニットに配置される。ＭＭは、フェッチユニットに加えて、マッチングユニットをスケジューリングする。マッチングユニットが機能を処理し、タグ付きオペランドを判断した場合、それらはＭＭのアルゴリズムを介して仮想化メモリ内に配置される。これらのオペランドまたはトークンは、ＭＭによって、マッチングユニットに接続されるメモリに格納される。処理インスタンスに対するすべてのトークンが組み立てられた場合、それらは、ＭＭによって利用可能なフェッチユニットに送信され、ノード記述とともにそれらは組み合わされる。この記述は、ＭＭによってメモリ内に格納され、ノード記述は、処理が実行される利用可能なフェッチユニットに回送される。機能ユニットの出力は、出力がマッチングユニットへの入力に対するトークンである場合、トークン用にメモリ内に配置され、および／または、後処理のためにメモリ内に配置される。
ＣＰＵ内部
【００８５】
上記のように、図７の代表的ＣＰＵは、ドメインが結合データおよび命令メモリを参照するため、フォン・ノイマン・アーキテクチャと呼ばれるが、内部では、ハーバードアーキテクチャを使用するように構成される。メタ・メンター・アーキテクチャは、フォンノイマンおよびハーバードアーキテクチャ間の区別を無くし、任意のシステムで機能することができる。図２７は、メタ・メンター・アーキテクチャを、図７で先に図示したような従来のマイクロプロセッサに組み込んだ場合を図示する。
【００８６】
図２７を参照すると、図７の従来のマイクロ・プロセッサ・アーキテクチャに組み込まれたメタメンターが図示される。図７では、Ｌ２キャッシュ１７は、４重連想型命令キャッシュ１６、８重連想型データキャッシュ１９、およびユニコアモジュール１５と直接通信する。この実施形態において、ＭＭスイッチ９８は、４重連想型命令キャッシュ１６、８重連想型データキャッシュ１９、およびユニコアモジュール１５と直接通信し、Ｌ２キャッシュ９９は、ＭＭスイッチのみと通信する。４重連想型命令キャッシュは命令情報をＬ２キャッシュから転送し、８重連想型データキャッシュはデータ情報をＭＭスイッチを介してＬ２キャッシュに／から転送する。さらに、図７のＬ２−ＴＬＢ２０は、ルール・セット・メモリ６３と統合されることが好ましい。ＭＭの導入は、情報をＬ２キャッシュに／から転送する方法以外に、ＣＰＵの機能に影響しない。この実施形態において、ＭＭスイッチ９８は、すでに述べたのと同じ方法で、情報を仮想化する。Ｌ２キャッシュは、ＣＰＵの複数の命令およびデータ部分と同様に複製されることができ、耐故障性が増す。さらに、ＭＭは、情報を仮想化することを担うので、ＣＰＵ命令セットを減らすことができ、そのドメインを維持するオーバーヘッドを軽減する。ＤＤＲ３メモリ制御器１００を介するデュアル・パス・メモリ情報は、図２７に示すＭＭ内に実現され、または図１７および図１９内に示すようなＣＰＵの外部で実現される。後者の構成では、外部ＭＭは内部ＭＭと通信し、ＣＰＵへの／からの情報を促進およびバイアスする。図２７は、単一算術／論理および制御ユニットを備える単一ＣＰＵを示すが、図２６で示すコンセプトは、図２７のアーキテクチャに容易に組み込まれ、図２６に示すＳＰＵＨ−ｎ、ＳＰＵＶＮ−ｎ、タグ付きトークン領域に加え、複数の算術／論理および制御ユニットを含むことができる。
【００８７】
図２８を参照すると、ＭＭスイッチはまた、従来のマイクロプロセッサ内で機能することができる。ＭＭの最も単純な形態で示したのは、４重連想型命令キャッシュ（ＱＡＩＣ）および４重連想型データキャッシュ（ＣＡＤＣ）のコンポーネントである。ＱＡＩＣおよびＣＡＤＣはどちらも、ＭＨａ１０５に接続される。この実施形態において、ＭＨａは、図７におけるＬ２キャッシュと同じ容量で動作する。メタメンターのアルゴリズムは、Ｌ２キャッシュアドレス空間を仮想化し、それを、少なくとも２つの部分に分割する。これにより、Ｌ２キャッシュ空間の、アクティブおよびバックアップパーティションが生成される。動作中、アクティブおよびバックアップＬ２メモリパーティションは、キャッシュミスなどのＣＰＵ割込が発生した場合に、機能を交換する。これらの割込が発生した場合、アクティブ・キャッシュ・パーティションは、バックアップ・キャッシュ・パーティションになる。新しいアクティブパーティションは、その情報を、新しいバックアップパーティションに複製する。どちらのパーティションも、割込時のＣＰＵの状態を定義する同じ情報を備える。実際には、パーティションに区切ることは、ＭＨａアドレスの１つまたは複数のビットを操作することによって実現され得る。初期サイクルの間、リアルタイム特性は、アクティブパーティションからバックアップパーティションに転送し、第１のＣＰＵ割込まで、両方のパーティションを複製する。初期サイクル後、ＭＭは、すでに述べたように、プライマリ（primary）をバックアップキャッシュ情報に転送する。キャッシュ問題などのソフトウェア故障が発生した場合、ＭＭはバックアップから処理を再開する。所定の数の処理故障の後、処理は停止され（killed）、エラーメッセージがオペレータに送信される。次いで、ＣＰＵは、他の処理に対して利用可能になる。所定の数のＣＰＵ故障の後、他の種類のエラーメッセージがオペレータに送信され、そのＣＰＵがブラックリストに載せられる。ＣＰＵリカバリは、他のＱＡＩＣおよび／またはＣＡＤＣが利用可能になった場合にのみ、発生する。命令およびデータ情報の区切りなどの他のＭＭ情報が、さらに細かく分割される。ＭＭ−ＣＨ、ＭＨｂ、ＭＭ−ＣＰＵ、およびＭＭ−ＭＥＭコンポーネントは、一般に、図２１および図２６に対して前記したように機能し、すなわち、ＭＭ−ＣＰＵは、ルール・セット・サーバであり、ＭＭ−ＭＥＭはマスター・ルール・セットのリポジトリであり、ＭＨｂは関連ルールセットのリポジトリであり、ＭＭ−ＣＨはＭＨａ（Ｌ２キャッシュ）でスケジューリングするデータ仮想化および命令に関するルールセットを含むルールセットを実施する。さらに、ＭＭは、ＫＡＣを通じて他のＭＭと通信することによってバイアスされる。
【００８８】
ＭＨａ内の情報は、少なくとも、従来のＬ２キャッシュおよびトランスレーショナル・ルックアサイド・テーブル（ＴＬＢ）と同じ情報である。しかしながら、ＴＬＢは、旧来のＴＬＢのようにスタティックではなく、ＭＭはＴＬＢを維持したりＴＬＢに通信したりして、ＴＬＢの構成方法を変更することができる。図２８では、ＱＡＩＣおよびＣＡＤＣがＭＨａと直接通信するが、これは必要条件ではない。ＱＡＩＣおよびＣＡＤＣがＭＨａと直接通信する場合、従来のＬ２キャッシュとメタメンターＭＨａメモリとの間に性能の差はない。アクティブおよびバックアップパーティションは、ＭＭ−ＣＨによるアドレスラインのマスキングまたはアンマスキングによって決定される。
【００８９】
従来、ＴＬＢは、スタティック・ブロック・アドレス情報のみを有している。メタ・メンター・アーキテクチャでは、ＭＭ−ＣＰＵおよびＭＭ−ＣＨは、耐故障性の１つの層を追加する、変換ルックアサイドテーブルを変更する能力を有する。
【００９０】
動作中、ＭＭスイッチは、上記と同じ方法で動作する。例えば、キャッシュミスに起因して、変更のためのコールが発行された場合、ＭＭ−ＣＨは、アクティブおよびバックアップパーティションの交換を開始し、ＭＨａ（Ｌ２キャッシュ）バックアップパーティションで複製を生成する。
【００９１】
ＭＭ−ＣＨが交換中に機能する方法は、ＭＭ−ＣＰＵからＭＨａに書き込まれた情報によって判断される。この情報は、新しいＳＰＵ（ＱＡＩＣおよびＣＡＤＣ）処理が開始された場合、ＭＭ−ＣＰＵによって定められる関連ルールによって定義される。新しい機能が開始された場合、ＭＭ−ＣＰＵは、情報をＭＨｂに転送し、ＭＭ−ＣＰＵによって定義された機能にＭＭ−ＣＨを割り込む。次いで、ＭＭ−ＣＨは、ＭＭ−ＣＰＵがＭＨｂに転送した情報を使用して、ＳＰＵ（ＱＡＩＣおよびＣＡＤＣ）アドレス空間およびルールセットを定義する。ＳＰＵおよび／またはＭＭ−ＣＨの保全性は、ルールを設定し、ＭＭ−ＣＰＵとＭＨｂとの間のデータ転送が実行される間に確認することができる。ＳＰＵおよびＭＭ−ＣＨの保全性確認は、ＭＭおよびＳＰＵ間の通信をモニタリングすることによって実現され、ＳＰＵ構成要素間で通信がない場合に十分な時間が経過した場合、ＳＰＵはブラックリストに載せられる。コンポーネント故障を判断する方法は、後に説明する。他のブラックリストイベントは、ＳＰＵの処理が数回失敗するか、またはＳＰＵが故障して、保全性確認時に生じる可能性がある。ＳＰＵ故障が発生した場合、他のＳＰＵ（ＱＡＩＣおよびＣＡＤＣ）は、Ｌ２キャッシュ内に配置された状態情報を処理するようスケジューリングされることができる。ＭＭは、他のプロセッサをリスケジューリングすることができ、またはＬ２キャッシュを他のＭＭドメインに転送することを要求することができる。
再構成可能ＣＰＵ
【００９２】
ＣＰＵの古典的な定義を、図１および図４に示す。制御ユニット（ＣＵ）は、算術論理ユニット（ＡＬＵ）と関連づけられる。この種類のＣＰＵの拡張型は、マルチコアＣＰＵを備え、各コアが、ＣＵおよびＡＬＵからなる。ＭＭは別のアプローチを有する。
【００９３】
図２９を参照すると、メタ・メンター・アーキテクチャは、複数のＣＵ１１０およびＡＬＵ１１１を内蔵する。各ＣＵは、各ＡＬＵから独立しているが、それらは、ＭＭコアスイッチ１１２（ＭＭＣＳ）、ＭＭタイミングクロック（図示せず）、およびコア・メタ・メンター（ＣＭＭ）１１３のルールセットによって接続される。
【００９４】
Ｌ２キャッシュ１１４からの命令情報は、図２８で説明したのと同じＱＡＩＣプロシージャによってＭＭ命令バスに接続され、ＭＭ命令バスからＣＵ１１０の１つ内の命令キャッシュに命令情報を経路づける。どの命令キャッシュで受信するかは、ＣＣＭアルゴリズムによって判断される。ＭＭＣＳは、ＣＵ命令ユニットを利用可能なＡＬＵと接続し、ＣＭＭルールセットおよびアルゴリズムに従って、命令キャッシュ処理でデータキャッシュを調整する。ＭＭデータバスは、図２８のＱＡＤＣと類似する。その目的は、Ｌ２キャッシュおよびＡＬＵ１１１におけるデータキャッシュユニットへの／からのデータ情報を分散することである。Ｌ２キャッシュ１１４への／からの情報は、図２８に対して説明したように、ＭＭプロセッサ１１５および１１６によってメンタリングされる。データ情報を分散する方法は、ＣＭＭ内のアルゴリズムによって判断され、ＣＵにおける処理およびＭＭＣＳの接続で調整される。ＭＭＣＳは、ＭＨｂおよびＭＭ−ＣＨが図２３および図２４で示したデータフロー構造で置き換えられた、図２１で示したデバイスと同様である。図２９に示す構成は、ＣＰＵ内のいくつかの領域でフレキシビリティを可能にし、ＣＰＵコンポーネント１１０および１１１の間の耐故障性、効率的なキャッシュコヒーレンシー、およびＡＬＵ／ＣＵコンポーネント使用の最適化を含む。キャッシュＭＭ（ＭＭ−ＣＰＵ１１５、ＭＭ−ＣＨ１１６、および関連するメモリを備える）と、コアＭＭ１１３との間の動作は、各ＫＡＣ間の通信によって調整される。
デュアルＣＰＵ構成
【００９５】
図３０Ａおよび図３０Ｂを参照すると、メタ・メンター・アーキテクチャは、２つ以上のＣＰＵ（ＱＡＩＣおよびＣＡＤＣ）を内蔵する。デュアルコアＣＰＵ構成は、図８Ａおよび図８Ｂを用いて前記しており、サポート構造に加えて、共有および専用Ｌ２キャッシュを示す。異なる製造元のＭＭおよびＣＰＵにより、保全性を保証する。図３０Ａおよび図３０Ｂには、ＭＭサポート構造と比較可能な共有および専用Ｌ２キャッシュが図示される。ＭＭ−ＣＰＵアルゴリズムおよびＭＭ−ＣＨ実行によるＭＨｂの十分な制御により、共有および専用メモリ構成の間に違いがないことが理解されよう。ＭＭは、論理アルゴリズムを使用して、ＣＰＵシステムを生成し、図８Ａおよび図８Ｂのアーキテクチャは、スタティック物理的設計を使用する。ＭＭは、物理的サポート構造を交換し、スケジューリングおよび情報アドレス空間を仮想化する。
【００９６】
ＭＭアーキテクチャが、オーバー・スタティック・デュアルＣＰＵ設計を有する利点の１つは、コンポーネントが故障した場合に、処理をリスケジューリングする能力である。コンポーネントが故障した場合、ＭＭのアルゴリズムは、故障したコンポーネントが使用していた処理を、動作しているコンポーネントにリスケジューリングして、全体のユニットは、割込無しで機能を続ける。デュアルＣＰＵ設計では、ＭＭは、代表的な単一ＣＰＵ例のように機能し、ＭＭのアルゴリズムは、ＭＨａ（Ｌ２キャッシュ）を、アクティブおよびバックアップパーティションに分割する。デュアルＣＰＵ／コア設計の場合では、ＭＭのアルゴリズムは、Ｌ２キャッシュを、各ＣＰＵ／コアに対してアクティブおよびバックアップパーティションに分割する。これにより、最低４つのパーティションを生成する。図３０ＢのＬ２キャッシュは、コア−０またはコア−１への共通接続を有する２つの別個のＬ２キャッシュモジュールを示す。この構成により、ＭＭは、パーティションおよびコア−０もしくはコア−１を任意に割り当て、指定することが可能になる。同じように、パーティション内の情報は、任意のコアまたは（ＱＡＩＣならびにＣＡＤＣ）に任意に割り当てることができる。割込ならびにＩ／Ｏ制御、図８Ａならびに図８Ｂにおけるシステム要求インターフェースならびにクロスバースイッチは、ＭＭのアルゴリズム、図３０Ｂに示す割込およびＩ／Ｏ制御スキームと置き換えられる。
マルチプル・コア・プロセッサ
【００９７】
図３１は、マルチコアＣＰＵ内のメタ・メンター・アーキテクチャを示す。ＭＭスイッチ構成は、上記の例で示したものと同様である。各コアは、命令キャッシュ（ＱＡＩＣ）およびデータキャッシュ（ＤＡＣＤ）とともに示す。メモリモジュール、この例におけるＭＨａ（Ｌ２キャッシュ）１２０は、１６の仮想パーティションに分割され、各コアに対して２つであり、追加のメモリアドレス空間ＭＨｂは、ＭＭ−ＣＨがコア情報を処理する方法を記述した関連ルールセットとして、機能に割り当てられる。図２８での上記例と同様に、各コアパーティションは、アクティブおよびバックアップパーティションを有する。動作中、コアのＭＨａのアクティブパーティションは、チェックポイントを生成するバックアップパーティションにコピーされる。この情報の一部は、命令キャッシュに転送され、他の部分は、データキャッシュに転送される。コアは、ＭＨａパーティションからキャッシュのいずれかに転送される情報をコアが要求する時点で、データまたは命令が使い果たされるまでこの命令を使用する。コアが任意の時点で故障した場合、ＭＭ−ＣＨスケジューリングアルゴリズムは、他のコアをリスケジューリングして、最終チェックポイントからその情報を処理する。Ｌ２キャッシュ内の情報が使い果たされるイベントでは、アクティブパーティションは新しい情報でポピュレートされ、バックアップパーティションにコピーされ、新しいチェックポイントを生成し、コアは、その情報の処理を続ける。ＭＭの特徴は、Ｌ２および命令ならびにデータキャッシュ内の情報をバイアスすることができ、新しい情報が完全に排出される前にＬ２キャッシュに引き出され、したがって、メインメモリから保存および取り出すべき情報に対する待ち時間が削減されるということである。ＭＭ−ＣＨ、ＭＨｂ、ＭＭ−ＣＰＵ、およびＭＭ−ＭＥＭコンポーネントは、一般に、図２１および図２６に対して前記したように機能し、すなわち、ＭＭ−ＣＰＵは、ルール・セット・サーバであり、ＭＭ−ＭＥＭはマスター・ルール・セットのリポジトリであり、ＭＨｂは関連ルールセットのリポジトリであり、ＭＭ−ＣＨはＭＨａ（Ｌ２キャッシュ）でのデータ仮想化および命令スケジューリングに関するルールセットを含むルールセットを実施する。
【００９８】
ＭＭ−ＣＰＵが、図２１のＰＩＴ−ＤＩＤなどのデバイスに情報を提供する（service）ために割り込まれた場合、ＭＭ−ＣＰＵアルゴリズムは、まず未使用コアをスケジューリングしようとするＭＭ−ＣＨを使用する。すべてのコアがビジーである場合、ＭＭ−ＣＨは、システム要求に情報を提供する（service）コアに割込をスケジューリングする。これが発生した場合、Ｌ２キャッシュは、ＰＩＴ−ＤＩＤ割込耐故障性処理方法で上述したようにＭＭシステムメモリ内に保存され、サービスルーチン処理は、ＭＨａにロードされ、図２８に関するＬ２キャッシュのバイアスされたアクティブおよびバックアップパーティション分割と同様のアルゴリズムを使用して、コアで開始される。このような方法で、割込処理は、耐故障性Ｌ２キャッシュに統合される。割込によってスワップアウトされた、サービスルーチンを実行するための処理は、任意の利用可能なコアで再開され得る。
【００９９】
再び図３１を参照すると、ＭＭへの／からの情報は、２つのストリーム、ＫＡＣ１２１およびＫＡＣ−Ｉｎｆｏ１２２に分割される。ＫＡＣストリームは、その通信がシステム内の他のＭＭ−ＣＰＵに限定されるプライベートストリームである。ＫＡＣ−Ｉｎｆｏ情報は、システム内の他の非ＭＭ−ＣＰＵコンポーネントと通信する、命令、データ、および制御情報である。例えば、ＭＨａ１２０が、メイン・システム・メモリを用いてパーティションをスワップアウトする場合、ＫＡＣ−Ｉｎｆｏストリームを使用して、その情報を転送する。これらの２つのストリームは、セキュリティ上の理由のために分割され、一方のストリームは、他方のストリームと混ざることができない。ＫＡＣストリームはまた、８個のＭＭモジュールが６４コアＣＰＵに結合される、図３２に示すようなプライベートバスを介して、他のメタ・メンター・モジュールに配置される重複情報の追跡を続ける。
メモリコヒーレンス
【０１００】
マイクロプロセッサ技術は、単一ＣＰＵパッケージがいくつかのＣＰＵ「コア」を備えるマルチコア処理に向かう傾向がある。複数のコアは、通常、Ｌ２キャッシュにおけるコヒーレントに共有されたメモリなどの、共通フォンノイマン型リソースを共有するハーバードアーキテクチャからなる。フォン・ノイマン・リソースはコア間で共有されるので、フォン・ノイマン・リソース内の情報にアクセスするためのストラテジおよびアルゴリズムは、単一コアプロセッサとは明らかに異なる。マルチコア分散システム内のキャッシュは、コア性能の改善をもたらすが、マルチコア構成は、キャッシュコヒーレンス問題を引き起こす。いくつかの種類のキャッシュコヒーレンス構成が存在する。
１．直接キャッシュコヒーレンシー（ＤｉｒＣＣ）
【０１０１】
情報の複数のコピーが、キャッシュメモリの固定パーティションで共有される。情報は、新しい情報を、キャッシュ内のパーティションに縦続接続することによって更新される。情報は、デバイスが構築された時点で判断される固定ローカル接続によって読み取られる。
２．遠隔キャッシュアクセス（ＲＭＡ）
【０１０２】
本技術は、１つの大規模仮想不均一キャッシュアクセス（ＮＵＣＡ）キャッシュを使用する。各コアは、情報がアクセスされるホームアドレス空間を割り当てられる。コアが、ホームアドレス空間に無い情報を要求する場合、代わりにメモリ動作を実行する他のデバイスを参照する。
３．実行移行機械（ＥＭ２）
メモリは、メモリに割り当てられたコア以外のコアに割り当てられる。
４．ディレクトリ・ベース・コヒーレンス（ＤＢＣ）
【０１０３】
ディレクトリ・ベース・システムでは、共有されているデータは、キャッシュ間のコヒーレンスを維持する共通ディレクトリに配置される。ディレクトリは、主メモリからそのキャッシュにエントリをロードするためにプロセッサが許可を求めなければならないフィルタの役目を果たす。エントリが変更された場合、ディレクトリは、そのエントリを用いて、他のキャッシュを更新するか無効にする。
５．ライブラリ・キャッシュ・コヒーレンス（ＬＣＣ）
【０１０４】
ライブラリは、データを、複数のローカルコアに複製する。情報は、キャッシュされた情報の中央ライブラリからチェックアウトされ、コピーが、読取専用ローカルディレクトリに配置される。情報は、タイムアウト基準で更新される。
【０１０５】
スヌーピングは、キャッシュしたメモリ位置にアクセスするために個々のキャッシュがアドレスラインをモニタリングする処理である。キャッシュがコピーを有する位置への書込動作が観測された場合、キャッシュ制御器は、スヌーピングされたメモリ位置のそれ自体のコピーを無効にする。
【０１０６】
スナーフィング（snarfing）は、第２のマスターが主メモリ内の位置を変更した場合に、キャッシュ制御器が、メモリ位置のそれ自体のコピーを更新しようとして、アドレスおよびデータの両方を閲覧することである。キャッシュがコピーを有する位置への書込動作が観測された場合、キャッシュ制御器は、新しいデータで、スナーフされた（snarfed）メモリ位置のそれ自体のコピーを更新する。
【０１０７】
これらのキャッシュスキームのすべては、専用アーキテクチャを有する。ＭＭは動的メモリアプローチを使用し、仮想化されたキャッシュスキームが処理アルゴリズムに整合され、キャッシュ効率を向上する。例えば、複数のキャッシュを同時に更新する必要がある場合、ＭＭは、メモリ内の冗長書込と同様に、特定の変数に対して複数の書込を生成することができる。ＬＣＣスキームは、チェックアウトされるか、または仮想化される。ローカルキャッシュへの更新は、他のローカルノードによって影響されないアドレス空間に仮想化され得、またはグローバルとなり得る。これにより、ＤｉｒＣＣ、ＲＭＡ、およびＬＣＣアプローチを、１つのスキーマに組み合わせる。
【０１０８】
図３２を参照すると、８つのブロックに仕切られた６４コアＣＰＵ、およびコアの外部にある、ＭＭスイッチ１２７を制御するＭＭ１２４が図示される。外部ＭＭ１２４は、コア１２５によって使用される処理をスケジューリングする。８つのコアの各ブロックは、命令およびデータキャッシュを備え、ＭＭ１２６によってメンターされる。すなわち、各ブロックは、図３１を参照して上述したように、ブロックメタ情報、命令およびデータキャッシュのための仮想化Ｌ２キャッシュとして機能するブロックＭＭメモリ、ブロック・メンター・ドメイン・プロセッサ、およびブロック・メンター・スイッチを備える。しかしながら、コアを管理するＣＰＵ内の他のＭＭ１２６による調整で、コアレベルの耐故障性を可能にする。調整は、２つのレベルで実行される。図３１に示す第１の情報ＫＡＣ１２１は、図３９に示したものと同様に、ＭＭ１２６デバイス間での通信を許可し、これにより、チェックポイントおよび処理情報が、１２８バスを介してＭＭ１２６間で交換されることが可能になる。第２のＭＭ１２６デバイスは、ＭＭ１２４と通信し、ハードウェア能力ならびに検証、バイナリ互換性、および処理効率をスケジューリングする。例えば、ＭＭ１２４は、キャッシュコヒーレンシーの種類を定義するオプションを有し、ＭＭ１２６は、個々の処理およびスレッドの性能を最大にすることをもたらす。ＭＭ１２６デバイスは、ＭＭ１２４からデータおよび命令情報を要求し、バス１２９を介して、ＤＩＤメモリ（Ｍｅｍ−１からＭｅｍ−６）から情報を先取りするようバイアスされ得る。
【０１０９】
図３２に示すシステムの特徴は、コアが特定の種類もしくはバイナリ互換性、制御フローもしくはデータフローに制限されないことである。この種類の不均一環境は、図２６で見ることができ、マルチ不均一コアＣＰＵに拡張可能であると考えることもできる。各ブロックに対するＬ２キャッシュは、図３１で示すように、ブロックメタ情報に従って、ブロック・メンター・スイッチと協働するブロック・メンター・ドメイン・プロセッサによって、各ブロックに対する少なくとも複数のパーティションに仮想化されることが好ましい。さらに、この実施形態は、全ブロックに関連する全体メタ情報、全体メタ情報へのアクセスを含む全体メンター・ドメイン・プロセッサ（図示せず）、全ブロックとＤＩＤメモリ（１２９）のセットとの間に通信をもたらす全体メンタースイッチ１２７、およびＭＭ１２６と全体メンタースイッチ（１２８）との間の通信リンクを備えるＭＭ１２４によって仮想化される、ＤＩＤメモリ（Ｍｅｍ−１からＭｅｍ−６）のセットを含む。
【０１１０】
図３３を参照すると、ＧＰＵコンテキストに組み込まれたＭＭが図示される。この構成では、ＭＭは、ＭＨ２からＭＨ７と符号付けされる、複数のＬ２キャッシュをもたらし、仮想化している。従来のＧＰＵモデルでは、各ＳＰ／ＴＰアレイは、処理で動作することができる機能の所定のセットをもたらすオペレーティングシステムとともにロードされる。ＭＭの組み込みによって、ＧＰＵは、１つのオペレーティングシステムまたは機能の所定のセットに限定されない。各ＳＰ／ＴＰアレイは、ユニークなオペレーティングシステムおよび、動的に変化することが可能な機能能力を有してもよい。ＭＭはまた、（ＴｅｘＬ１と符号付けされる）Ｌ１キャッシュと、不均一環境においてＭＭシステムを図３２に縮小するＴＰＣ処理モジュールにおけるＴＰＣとの間に配置してもよい。そのような不均一環境は、例えば、ＳＰ／ＳＰＵ／ＴＰ／ＧＰＵの組み合わせおよびタグ付きトークンシステムを含むことができる。ＭＭの下にフレーム・バッファ・アドレス空間を配置することで、耐故障性を、組み込まれたＭＭの他の特徴のすべての他に、フレームバッファにもたらす。ＭＭをこのシステム内の他の場所に挿入することで、システムが欠陥に対応する方法およびその機能がどれだけフレキシブルかを定義することを示すことができる。このフレキシビリティの一例として、ＭＭ−ＣＨは関連ルールエンフォーサを兼ね、そのルールは図１０に示す「スレッドプロセッサ」として実行する方法を含む。
グリッドコンピューティング
【０１１１】
図３４、図３５、および図３６を参照すると、各図は、グリッド・コンピューティング・システムに、本発明によるメタメンターを組み込んだ場合を図示する。ＭＭの機能について前述のクラウドシステムの種類による制限は無く、さらに、ＭＭを有するクラウドシステムは、非ＭＭクラウドシステムと相互作用することもできる。すでに述べたように、グリッドシステムは、一般に、フロントエンドおよびバックエンドシステムに分割することができる。ＭＭは、フロントエンドまたはバックエンドシステムとして動作することができ、またはフロントエンドおよびバックエンドシステムの両方で動作することができる。フロントエンドＭＭシステムを、非ＭＭバックエンドとともに図３４に示す。
【０１１２】
図３４を参照すると、非ＭＭクラウドおよびＭＭシステムとの間の通信処理が図示され、ＭＭ１３０およびＭＭスイッチ１３１を含み、ノードＡとして示される。ノードＡの外部のシステムから生成された、データグラムと呼ばれる電子信号により、ＭＭシステムは、メッセージを、ノードＡのＩ／Ｏポート、例えば、Ｉ０−２に送信する。データグラムの受信により、ノードＡのプログラマブル割込タイマ（図示せず）をトリガし、図２１と関連して上述したのと同じか、または同様の処理シーケンスによって、ＭＭに割り込む。通信は、例えば、ウェブ・ブラウザ・アプリケーションからであってもよい。この種類を処理する方法について利用可能な関連ルールセットは、ノードＡで格納されるＭＭアプリケーション処理ルールセット６３に配置される。関連ルールセットは、ＭＭ１３０によって、例えば、ＭＭ−ＣＰＵ（図示せず）によって、関連ルールキャッシュ、例えば、ＭＨｂ（図示せず）に、図２１と関連して説明したように、事前に格納される。この特定の係合の場合には、関連ルールセット情報により、抽象化／仮想化プロセッサ、例えば、ＭＭ−ＣＨ（図示せず）が、コンピューティングシステムの非ＭＭ部分を仮想化することが可能となる。非ＭＭシステムコンポーネントのウェブ・ブラウザ・サービス・ルーチンのアドレスは、メモリユニットＭ１からＭ６に配置される適切な仮想化メモリ内に配置される。ウェブブラウザ処理は、ＣＰＵ−１またはＣＰＵ−２のいずれかに割り込むことによって開始され、ＣＰＵ−２だとすると、ウェブ・ブラウザ・サービス・ルーチンは、ＣＰＵ−２で開始され、係合のＭＭ処理ルールに適合する。
【０１１３】
ウェブブラウザ処理が、サブ処理の開始を試みるまで、通信は続く。ノードＡは、本処理が、係合のＭＭ処理ルールを調べることによって開始することができるかを判断する。ルールセットが処理を許可する場合、処理は仮想化され、ＣＰＵ−２からの情報は、所定の処理開始アドレスで仮想化サブ処理を開始することによって続く。ＭＭルールセットが、処理、すなわち、要求されたアドレスでの処理を禁止した場合、ウェブブラウザ処理は、停止される。これは、アプリケーションエラーによって引き起こされる可能性がある。再試行を数回行うことができるが、上記のように、最終的に、親処理、ウェブ・ブラウザ・アプリケーションは終了され、ＣＰＵ−２は、割り込まれて、他のタスクを処理することができる。エラー機能が実行され、故障したポイントである最終チェックポイントからの状態情報は、より多くの恒久的位置に転送される。この情報は、ＣＰＵ−２でスケジューリングされ得、最終チェックポイントから故障までの状態は、親処理が終了するまで、開始、停止、および再実行される。これらの状態を分析することによって取得される情報は、故障についての法律的（forensic）情報をもたらす。
【０１１４】
故障がソフトウェアによるものである場合、アラート信号が送信され、ソフトウェアは、必要に応じて、ブラックリストに載せられる。故障がハードウェア障害によるものである場合、故障したコンポーネントは、任意の数のアルゴリズムによって隔離され、システムは、故障したコンポーネントまたはソフトウェアと同じ機能を提供する他のコンポーネントを使用して、正常に機能し続ける。これらのコンポーネントおよびソフトウェアは、故障した項目とバイナリ互換である必要はなく、唯一の要件は、それらが同じ機能を提供することである。
【０１１５】
ＭＭシステムによってクラウドに送信された処理は、そのドメイン内の他の任意の処理と同様に処理され、その処理は、クラウド故障の際に再開することができる。ＭＭは、非ＭＭクラウド環境で機能している間、そのドメイン上の制御および耐故障性特性を保持する。
【０１１６】
図３５を参照すると、メタメンターベースのクラウドシステムが図示される。すべてのシステムは、ＭＭシステムであるが、クラウドネットワークの一部として、非ＭＭおよびＭＭシステムの両方を有することについての制限は無い。ＭＭクラウドシステムには、いくつかの利点がある。利点の１つは、セキュリティおよびクラウド識別である。ノードＡは、フロント・エンド・ノードであり、クラウドから、バック・エンド・リソースを要求する。要求は、バック・エンド・ノードへのディスク・ストレージ・リソースに対するブロードキャストデータグラムの形式である。最小の２つのノード、例えば、ノードＢおよびＣが応答する。ノードＥおよびＦは、認証／証明サーバの役目を果たす。ＭＭアーキテクチャにユニークであるシナリオがいくつか存在し、以下は一例である。ノードＡがクラウド内でリソースに対してブロードキャストする場合、認証／証明ノードＥは、ブロードキャストを受信し、ＢおよびＣを応答のために割り当て、さらにヘッダシーケンスをデータグラムストリームに動的に割り当て、この処理に対してノードＡにユニークキーを配置する。これは、ユニーク識別キーと、Ｅにおけるアルゴリズムによって順序づけられる情報のシーケンスとを生成する。キーおよび情報のシーケンスは、プライベートＭＭ  ＫＡＣ（キープアライブ制御器）ネットワークで、ノードＥから、ノードＢ、ノードＣ、およびノードＡに送信される。ＭＭドメインは、ＤＩＤには接合されないため、ユーザまたはＤＩＤでの処理は、ＭＭドメインキーまたはシーケンスに影響を与えることができない。同じように、ＭＭドメインは、ＤＩＤのデータまたは命令を変更することができない。ノードＡスケジューラは、ネットワーク接続を通じて送信されるシーケンスルーチンを実行する。ノードＥのＫＡＣは、ノードＡのＫＡＣと接触し、ノードＢから、このシーケンスを予期するよう通信する。同時に、ノードＦは、ノードＣと接触し、ノードＣとノードＡとの間で伝達するためのシーケンスを特定する。これらは、異なるシーケンスとすることができ、標準通信ポート上で暗号化されて送信することができる。よって、この時点で、すべてのパーティー間での証明書交換をせずに（beyond）、ノードＢおよびＣがノードＡと通信していると確信する。
【０１１７】
ノードＡは２つのパスおよびノードＥおよびＦからのアルゴリズムで認証される。ノードＡは、ユニークシーケンスによって、ノードＢおよびＣと通信する。トランザクション間の任意の時点で、シーケンスは変更することができ、ＩＰナンバは、動的に割り当てることができ、トークンは、検証のために交換することができる。ノードＢおよびＣは、ノードＥおよびＦのキュー（queue）トランザクションによってノードＡの信頼性を判断することができる。同じように、ノードＢおよびＣは、ノードＡによりキュー・サーバ・トランザクションを行うことができる。
【０１１８】
レイド５、レイド６、またはストリッピングを使用するクラウドノードは、１つのノードが、その情報を損なう可能性のある情報を含むことを防ぐ。ノードＡが処理を要求していた場合、処理は、拡散スペクトラム構成に割り当てられ、処理または結果を推測するのに十分な情報を有するノードは１つもない。これらは、すべてローカルのフォールト・トレラント・システムであり、ノードＡが故障した場合、処理およびデータは、ノードＣまたはＤに再格納することが可能である。
【０１１９】
図３６を参照すると、非メタ・メンター・フロント・エンドを有するメタ・メンター・バックエンド・クラウドが図示される。この構成は、フロントエンドとの通信が単一ドメインによって限定されることを除いて、図３５に示したシステムと同様に機能する。これは、ノードＡの通信シーケンスを意味し、証明書情報は、Ｉ／Ｏポートを通じてのみ振り分けられる。クラウド内の他のノードの認証を検証するノードＡの通信は、１つのドメインおよびスタティックＩ／Ｏポートに限定される。ＭＭバックエンドクラウドの通信は、図３５のものと同じであり、プライベートネットワークＫＡＣと１０チャネルの組み合わせにより、クラウド内の各ノードの配列および信頼性を判断する。
【０１２０】
ノードＡの検証は、バック・エンド・ノードの１つによって実現され、すなわち、ノードＤは、ノードＦに、ノードＡの信頼性を検証するよう要求する。ノードＦアルゴリズムは、通信パスとノードＡの証明書とを検証し、情報シーケンスをノードＡに送信する。アルゴリズムは、検証およびシーケンス順序をノードＤに通信し続け、次いで、ノードＡと直接通信する。
【０１２１】
同じ種類の処理は、メタ・メンター・バックエンド・クラウドにおける拡散スペクトラム手法を続けることができる。拡散スペクトラムでのシーケンスおよびリズムは、正準ＭＭノードにより定義され、正準ＭＭノードは、情報を、計算ノードおよびフロント・エンド・ノードにリレーする。同じように、データストレージは、データのストライピングおよびタイミングについての情報を含む正準ノードによって定義される。この情報は、さらなるストレージ情報通信のために、フロント・エンド・ノード、すなわち、正準ノードによって保持される。
【０１２２】
すべての場合において、メタメンターは、図２１と関連して上記でより完全に説明したように、ＭＭのメンタースイッチにおける関連ルールキャッシュに事前に格納された関連ルールに従って、自身のドメイン内の仮想化および処理スケジューリング全体の制御を維持し、事前承認されたアドレス空間およびデバイスから、処理を開始することのみを可能にする。ＭＭは、Ｉ／Ｏ通信を使用するネットワークから分かれて、プライベートネットワークを介して、他のＭＭと通信することができる。メタ・メンター・アーキテクチャの耐故障性態様により、処理が、上記した処理と同様のチェックポイントから再開されることを可能にするか、または、一連の故障の後、処理をタイムアウトすることを可能にする。
クラスタコンピューティング
【０１２３】
図３７を参照すると、上記のように、クラスタコンピューティングは、並列または分散メモリモデルで構成することができ、ＭＭ１３６、ＭＭスイッチ１３７、処理テーブル６２、およびルール・セット・メモリ６３を含む、共通メモリモデルを有するメタ・メンター・クラスタについて図示する。このモデルは、図１３と類似するが、共通タスクを実行するために必要とされる情報は、ＭＭおよび自身のアルゴリズムによって割り当てられる。ＭＭは、プロセッサ間通信を可能にすることができ、または各プロセッサを、各プロセッサの仮想化アドレス空間を制御することによって、別々のドメインに分離することを要求することができる。これは、プロセッサを、個々のタスクおよびメモリ空間に割り当てることを含み、またはコンポーネントを、複数の処理およびオペレーティングシステムに動的に割り当てることを含む。
【０１２４】
図３８を参照すると、並列構成のメタメンターを図示する。このシナリオは、ＭＭクラウドコンピューティングと同様であるが、クラスタコンピューティングでは、ノード間のネットワークは、ローカル化され、ワイド・エリア・ネットワークにわたって分散されない。図３８におけるＭＭ構成は、図１４および図１５におけるクラスタ構成および図３４、図３５、および図３６のグリッド構成と類似する。
【０１２５】
図３９を参照すると、２つの分散プロセッサシステムＡおよびＢを図示し、それぞれが、それぞれのＭＭ１４０および１４１によって制御され、互いと通信する。システムＡは、ＭＭスイッチ１４２を介してシステムＡメモリユニットＡ−Ｍｅｍ−１からＡ−Ｍｅｍ−６と通信する４つのＣＰＵ、Ａ−ＣＰＵ−０からＡ−ＣＰＵ−３を備え、システムＢは、ＭＭスイッチ１４３を介してシステムＢメモリユニットＢ−Ｍｅｍ−１からＢ−Ｍｅｍ−６と通信する４つのＣＰＵ、Ｂ−ＣＰＵ−０からＢ−ＣＰＵ−３を備える。これは、並列および分散モデル（ＰＤＭ）の両方で同時に構成される個々のコンピュータシステムの一例である。ＰＤＭでは、命令情報およびデータは、ＩＤＴと符号付けされたドメイン間転送接続を介して、システムＡのＤＩＤとシステムＢのＤＩＤとの間で転送され、スケジューリングと、割込情報などのＩ／Ｏ情報とは、ＡおよびＢのそれぞれのＭＭドメイン間での通信を提供するＫＡＣ接続１４４を介して転送される。話を簡単にするために、ＭＭの外部に配置されたネットワーキングスイッチは図示しないが、どのような種類のネットワークスイッチでも、ＭＭシステムドメイン間に挿入することができる。
【０１２６】
ＭＭドメインが処理をスケジューリングし、アドレス空間を定義するので、１つのシステム、例えばＡ−ＣＰＵ−３に割り当てられる処理は、システムメモリ、例えばＡ−Ｍｅｍ−１にある命令情報を使用して、データ情報を他のシステム、例えばメモリＢ−Ｍｅｍ−４に格納することができる。代替シナリオは、Ａ−ＣＰＵ−１に割り当てられる、Ａ−Ｍｅｍ−１にある命令情報を使用する処理であり、デバイスＡ−Ｍｅｍ−３ならびにＢ−Ｍｅｍ５、またはデバイスの任意の組み合わせから、データ情報を複製および検索することができる。他の組み合わせにより、システムＡおよびシステムＢの両方で、同時に、２つ以上の同一の処理を開始することができ、次いで、各システムの性能を測定および比較することができる。この技術を使用して、ハードウェアおよびソフトウェアコンポーネントの性能は、システム間のコンポーネントを並べ替えることによって分析してもよい。
【０１２７】
上記のように、ＭＭドメインは、命令領域またはデータ領域として、メモリ領域を動的に定義することができる。メモリ空間を動的に定義するためのこの能力は、特定のアプリケーションに依存して分類メモリに拡張可能であり、他のカテゴリおよび定義によって処理する。古典的な、フォンノイマン、ハーバード、およびデータフローアーキテクチャでは、メモリの種類は、命令およびデータに限定される。命令情報は、メモリを、入力／出力ポートとして定義することができるが、正規メモリ、すなわち、入力／出力ポートと同じ正規メモリとして定義することもできる。単一ドメインでは、メモリアドレス空間を定義するアルゴリズムの循環ロジックのため、不変メモリ空間を定義することは、可能ではない。ＭＭドメインでは、命令情報は、アドレス空間を定義しない。これは、ＭＭが、命令情報によって変更できない特定の種類の入力／出力ポートを定義することを意味する。ＭＭは、メモリアクセスを記録し、処理が情報をメモリに読み書きをするルールおよび条件を適用することができる。
【０１２８】
例えば、一般的な入力／出力ポートは、ユニバーサル・シリアル・バス・ポート（ＵＳＢ）と呼ばれる。ＵＳＢデバイスは、外部ソースとシステムＤＩＤとの間で、情報を双方向に転送するよう設計される。このデバイスは、実行されるはずではなかった命令情報の実行履歴を有する。これは、デバイス自体からの命令を実行することによって、またはデバイスからシステムＤＩＤとの間に命令情報を転送することによって、実現することができる。
【０１２９】
デバイスから命令情報を実行する場合では、このことを防止するよう、ＭＭルールセットがＵＳＢデバイスから出力する接続またはスケジューリング処理を許可しないように設定することは簡単に可能となる。ＭＭがアドレス空間を定義するので、ＵＳＢデバイスから実行される任意のデバイスが、ディスプレイなどの出力デバイスにのみアクセス可能にするなどのルールが可能となり、この処理は、メモリの制限領域にのみアクセスしてもよく、他の処理または子処理を開始することができない。そのようなルールは、単純であることもあるし、または非常に大規模になることもあるであろう。
【０１３０】
ＵＳＢデバイスからＭＭドメインに情報を転送することは、４つの型に分類することができる。型１は、ＵＳＢデータ情報を、ＭＭドメインに、データ情報として転送することである。ＭＭは、この転送型を、データ・メモリ・アドレスに格納する。型２は、データ情報になりすますＵＳＢ命令情報を転送する。この条件は、単一ドメインシステムで、活発であり（spirited）マルウェアと称される、実行命令情報に使用され得る。しかしながら、ＭＭドメインでは、この情報は、データとして指定され、実行するようスケジューリングすることはできない。処理またはデバイスが、データ情報で任意の種類の処理を開始しようとする場合、エラーが生成され、アラートが発せられる。逆に、型３は、ＵＳＢデバイスからの命令情報を、このＭＭシステム内の命令メモリ位置に転送する。処理がデータとして命令情報を使用しようとすると、ＭＭルールセットは、動作を妨害し、エラーとして識別し、アラートを発する。型４の転送は、ＵＳＢからＭＭドメイン内の命令メモリ位置への命令情報である。型４の転送では、命令情報は、ＵＳＢデバイス自体からの命令と同じルールセットの下で実行することができる。転送された型４処理は、他のルールセットに格上げしてもよい。格上げは、メタメンターによってスケジューリングされた、非システムソースからの情報を受信するハードウェアデバイス、例えば、キーボードまたは指紋リーダから入力される、暗号化および暗号などの構造に限定される可能性がある。これらのデバイスは、ＭＭがデバイスをスケジューリングし、システム内の転送されたすべての情報を定義するので、ＭＭドメイン内でなりすまされる（spoofed）ことができない。
【０１３１】
情報をＵＳＢデバイスに転送することは、ＭＭルールセットに従う。ルールセットは、ＵＳＢデバイスに転送された情報の量、種類、および／または所有者を定義することができる。このルールセットを変更するには、ＭＭによってスケジューリングされる暗号化および暗号を使用する、同じ確認処理を必要とする可能性がある。
【０１３２】
上述したように、ＭＭドメイン内の要素は、メモリアドレスを定義し、ＤＩＤに対する処理をスケジューリングし、ＤＩＤ内の要素は、ＭＭドメインによって定義される命令およびデータアドレス空間を使用して、処理を実行する。この特徴により、ＭＭドメインは、システムの個々のコンポーネントおよび処理を並べ替え、分析することが可能になる。
【０１３３】
図４０を参照すると、共通コンポーネントＰ−０〜Ｐ−４、Ｓ−０、およびディスプレイ−１〜ディスプレイ−４に接続された２つのＭＭシステムが図示される。２つのＭＭは、それぞれ、キープアライブ制御器（ＫＡＣ）によって接続される。コンポーネントＰ−０、Ｐ−１、Ｐ−２、およびＳ−０は、センサと称されるセンサユニットであり、それぞれ、ディスプレイ−１、ディスプレイ−２、ディスプレイ−３、およびディスプレイ−４に出力を表示する。これらのコンポーネントは、ＭＭシステムの代表的コンポーネントである。センサＰ−０、Ｐ−１、Ｐ−２からの未（raw）処理の読取り値は、データ情報メモリデバイスＡ−Ｍｅｍ−０からＡ−Ｍｅｍ−７およびＢ−Ｍｅｍ−０からＢ−Ｍｅｍ−７に存在するルックアップテーブルを使用することによって、有効な、表示準備値に変換される。センサユニットＳ−０は、アルゴリズムを使用して、Ａ−Ｓ−アルゴリズムおよびＢ−Ｓ−アルゴリズムと符号付けされた命令情報メモリを使用して、有効表示に未処理読取り値を変換する。コンポーネント性能により、オイラー方陣（square）、すなわち、グレコラテン方陣を使用してシステム内の他のコンポーネントの相互作用無しに値を比較する。この分析は、方陣を使用するが、本分析は、システム内の交換可能コンポーネントを使用して方形で構成することができる。
【０１３４】
基本的な方法は、センサＰ−ｘ（ｘは、０、１、２を意味する）、ＣＰＵ−ｙ（ｙは、Ａ−ＣＰＵ−０からＡ−ＣＰＵ−３およびＢ−ＣＰＵ−０からＢ−ＣＰＵ−３を意味する）を使用し、ｘｘは、任意の数０、１、２、３、４、５、６、７である。
ａ．ＣＰＵ−ｙを割り当てて、Ｐ−ｘのアナログ−デジタル変換（Ａ−Ｄ）を開始する
ｂ．出力を読み取る
ｃ．ルックアップテーブルを使用して、値を変換する
ｄ．値を表示する
センサＳ−０を使用する基本的な方法は、以下の通りである。
ａ．ＣＰＵ−ｙを割り当てて、Ｓ−０センサで新しい読取り値を開始する。
ｂ．出力を読み取る
ｃ．Ｓ−アルゴリズムを使用して、値を計算する
ｄ．値を表示する
【０１３５】
第１のサイクル（１−１）は、Ａ−ＣＰＵ−０を割り当てるメタメンターＡで開始し、Ｐ−０のＡ−Ｄを開始する。メタメンターＢは、Ｂ−ＣＰＵ−０を割り当てて、Ｐ−０のＡ−Ｄを開始する。
【０１３６】
ステップ１−２では、ＭＭ−Ａは、Ａ−ＣＰＵ−２を割り当てて、Ｐ−２のＡ−Ｄを開始し、ＭＭ−Ｂは、Ｂ−ＣＰＵ−１を割り当てて、Ｓ−０変換を開始する。このステップではまた、Ａ−ＣＰＵ−０は、Ｐ−０の出力を読み取り、Ｂ−ＣＰＵ−０は、Ｐ−１の出力を読み取る。
【０１３７】
ステップ１−３では、Ａ−ＣＰＵ−０は、ルックアップを実行し、Ｐ−０の未処理出力を、メモリＡ−Ｍｅｍ−ｘｘを使用して、有効数に変換する。Ｂ−ＣＰＵ−０は、ルックアップを実行し、Ｂ−Ｍｅｍ−ｘｘを使用して、Ｐ−１の未処理出力を有効数に変換する。Ａ−ＣＰＵ−２は、Ｐ−２の出力を読み取り、Ｂ−ＣＰＵ−１は、Ｓ−０の未処理出力を読み取る。
【０１３８】
ステップ１−４では、Ａ−ＣＰＵ−０は、ディスプレイ−１にその結果を表示する。これにより、Ａ−ＣＰＵ−０に割り当てられた処理を完了し、Ａ−ＣＰＵ−０は、待ち状態となる。Ｂ−ＣＰＵ−１は、ディスプレイ−２にその結果を表示する。これにより、Ｂ−ＣＰＵ−１に割り当てられた処理を完了し、Ｂ−ＣＰＵ−１は、待ち状態となる。Ａ−ＣＰＵ−２は、ルックアップを実行し、Ｐ−２の出力を有効数に変換する。Ｂ−ＣＰＵ−１は、Ｂ−Ｓ−アルゴリズムを開始して、Ｓ−０の未処理出力から、有効数を計算する。
【０１３９】
ステップ１−５では、Ａ−ＣＰＵ−２は、ディスプレイ−３にその結果を表示する。これにより、Ａ−ＣＰＵ−３に割り当てられた処理を完了し、Ａ−ＣＰＵ−３は、待ち状態となる。Ｂ−ＣＰＵ−１は、ディスプレイ−４にその結果を表示し、その処理を完了し、Ｂ−ＣＰＵ−１は、待ち状態となる。
【０１４０】
図４１を参照すると、センサ表示の出力をテーブルＡに示す。すべての表示は同じ値の近似値を有するはずであるとともに、Ｐ−２の読取り値を観測してもよく、Ａ−ＣＰＵ−２は、他の読取り値から著しく異なる。古典的なコンピュータクォーラムでは、システム全体がこの時点で無効となるであろう。ＭＭシステムは、どのコンポーネントが故障したかを判断し、コンピュータシステムは、自身を再構成して機能を続けることができ、故障したコンポーネントまたは処理をブラックリストに載せる。
【０１４１】
第２のサイクル、２−１は、Ａ−ＣＰＵ−０およびＢ−ＣＰＵ−０が利用可能になるとすぐに開始することができる。メタメンターＡは、Ａ−ＣＰＵ−０を、Ｐ−１のＡ−Ｄを開始するように割り当てる。メタメンターＢは、Ｂ−ＣＰＵ−０を割り当てて、Ｐ−２のＡ−Ｄを開始する。
【０１４２】
ステップ２−２では、ＭＭ−Ａは、Ａ−ＣＰＵ−２を割り当てて、Ｓ−０のＡ−Ｄを開始し、ＭＭ−Ｂは、Ｂ−ＣＰＵ−１を割り当てて、Ｐ−０変換を開始する。このステップではまた、Ａ−ＣＰＵ−０は、Ｐ−１の出力を読み取り、Ｂ−ＣＰＵ−０は、Ｐ−２の出力を読み取る。
【０１４３】
ステップ２−３では、Ａ−ＣＰＵ−０は、ルックアップを実行し、Ｐ−１の未処理出力を、メモリＡ−Ｍｅｍ−ｘｘを使用して、有効数に変換する。Ｂ−ＣＰＵ−０は、ルックアップを実行し、Ｂ−Ｍｅｍ−ｘｘを使用して、Ｐ−２の未処理出力を有効数に変換する。Ａ−ＣＰＵ−２は、Ｓ−０の出力を読み取り、Ｂ−ＣＰＵ−１は、Ｐ−０の未処理出力を読み取る。
【０１４４】
ステップ２−４では、Ａ−ＣＰＵ−０は、ディスプレイ−２にその結果を表示する。これにより、Ａ−ＣＰＵ−０に割り当てられた処理を完了し、Ａ−ＣＰＵ−０は、待ち状態となる。Ｂ−ＣＰＵ−１は、ディスプレイ−３にその結果を表示する。これにより、Ｂ−ＣＰＵ−１に割り当てられた処理を完了し、Ｂ−ＣＰＵ−１は、待ち状態となる。Ａ−ＣＰＵ−２は、Ａ−Ｓ−アルゴリズムを開始して、Ｓ−０の未処理出力から、有効数を計算する。Ｂ−ＣＰＵ−１は、ルックアップを実行し、Ｂ−Ｍｅｍ−ｘｘを使用して、Ｐ−０の出力を有効数に変換する。
【０１４５】
ステップ２−５では、Ａ−ＣＰＵ−２は、ディスプレイ−４にその結果を表示する。これにより、Ａ−ＣＰＵ−３に割り当てられた処理を完了し、Ａ−ＣＰＵ−３は、待ち状態となる。Ｂ−ＣＰＵ−１は、ディスプレイ−１にその結果を表示し、その処理を完了し、Ｂ−ＣＰＵ−１は、待ち状態となる。
【０１４６】
第３のサイクル、３−１は、Ａ−ＣＰＵ−０およびＢ−ＣＰＵ−０が利用可能になるとすぐに開始することができる。メタメンターＡは、Ａ−ＣＰＵ−０を、Ｐ−２のＡ−Ｄを開始するように割り当てる。メタメンターＢは、Ｂ−ＣＰＵ−０を割り当てて、Ｓ−０のＡ−Ｄを開始する。
【０１４７】
ステップ３−２では、ＭＭ−Ａは、Ａ−ＣＰＵ−２を割り当てて、Ｐ−０のＡ−Ｄを開始し、ＭＭ−Ｂは、Ｂ−ＣＰＵ−１を割り当てて、Ｐ−１変換を開始する。このステップではまた、Ａ−ＣＰＵ−０は、Ｐ−２の出力を読み取り、Ｂ−ＣＰＵ−０は、Ｓ−０の出力を読み取る。
【０１４８】
ステップ３−３では、Ａ−ＣＰＵ−０は、ルックアップを実行し、Ｐ−２の未処理出力を、メモリＡ−Ｍｅｍ−ｘｘを使用して、有効数に変換する。Ｂ−ＣＰＵ−０は、Ｂ−Ｓ−アルゴリズムを開始して、Ｓ−０の未処理出力から、有効数を計算する。Ａ−ＣＰＵ−２は、Ｐ−０の出力を読み取り、Ｂ−ＣＰＵ−１は、Ｐ−１の未処理出力を読み取る。
【０１４９】
ステップ３−４では、Ａ−ＣＰＵ−０は、ディスプレイ−３にその結果を表示する。これにより、Ａ−ＣＰＵ−０に割り当てられた処理を完了し、Ａ−ＣＰＵ−０は、待ち状態となる。Ｂ−ＣＰＵ−０は、ディスプレイ−４にその結果を表示する。これにより、Ａ−ＣＰＵ−０に割り当てられた処理を完了し、Ｂ−ＣＰＵ−０は、待ち状態となる。Ａ−ＣＰＵ−２は、ルックアップを実行し、Ａ−Ｍｅｍ−ｘｘを使用して、Ｐ−０の出力を有効数に変換する。Ｂ−ＣＰＵ−１は、ルックアップを実行し、Ｂ−Ｍｅｍ−ｘｘを使用して、Ｐ−１の出力を有効数に変換する。
【０１５０】
ステップ３−５では、Ａ−ＣＰＵ−２は、ディスプレイ−１にその結果を表示する。これにより、Ａ−ＣＰＵ−３に割り当てられた処理を完了し、Ａ−ＣＰＵ−３は、待ち状態となる。Ｂ−ＣＰＵ−１は、ディスプレイ−２にその結果を表示し、その処理を完了し、Ｂ−ＣＰＵ−１は、待ち状態となる。
【０１５１】
第４のサイクル、４−１は、Ａ−ＣＰＵ−０およびＢ−ＣＰＵ−０が利用可能になるとすぐに開始することができる。メタメンターＡは、Ａ−ＣＰＵ−０を、Ｓ−０のＡ−Ｄを開始するように割り当てる。メタメンターＢは、Ｂ−ＣＰＵ−０を割り当てて、Ｐ−０のＡ−Ｄを開始する。
【０１５２】
ステップ４−２では、ＭＭ−Ａは、Ａ−ＣＰＵ−２を割り当てて、Ｐ−１のＡ−Ｄを開始し、ＭＭ−Ｂは、Ｂ−ＣＰＵ−１を割り当てて、Ｐ−２変換を開始する。このステップではまた、Ａ−ＣＰＵ−０は、Ｓ−０の出力を読み取り、Ｂ−ＣＰＵ−０は、Ｐ−０の出力を読み取る。
【０１５３】
ステップ４−３では、Ａ−ＣＰＵ−０は、Ａ−Ｓ−アルゴリズムを開始して、Ｓ−０の未処理出力から、有効数を計算する。Ｂ−ＣＰＵ−０は、ルックアップを実行し、Ｐ−２の未処理出力を、メモリＢ−Ｍｅｍ−ｘｘを使用して、有効数に変換する。Ａ−ＣＰＵ−２は、Ｐ−０の出力を読み取り、Ｂ−ＣＰＵ−１は、Ｐ−１の未処理出力を読み取る。
【０１５４】
ステップ４−４では、Ａ−ＣＰＵ−０は、ディスプレイ−４にその結果を表示する。これにより、Ａ−ＣＰＵ−０に割り当てられた処理を完了し、Ａ−ＣＰＵ−０は、待ち状態となる。Ｂ−ＣＰＵ−１は、ディスプレイ−１にその結果を表示する。これにより、Ａ−ＣＰＵ−０およびＢ−ＣＰＵ−０に割り当てられた処理を完了し、それらは、待ち状態となる。Ａ−ＣＰＵ−２は、ルックアップを実行し、Ａ−Ｍｅｍ−ｘｘを使用して、Ｐ−０の出力を有効数に変換する。Ｂ−ＣＰＵ−１は、ルックアップを実行し、Ａ−ＭＭ−ｘｘを使用して、Ｐ−１の出力を有効数に変換する。
【０１５５】
ステップ４−５では、Ａ−ＣＰＵ−２は、ディスプレイ−２にその結果を表示する。これにより、Ａ−ＣＰＵ−３に割り当てられた処理を完了し、Ａ−ＣＰＵ−３は、待ち状態となる。Ｂ−ＣＰＵ−１は、ディスプレイ−３にその結果を表示し、その処理を完了し、Ｂ−ＣＰＵ−１は、待ち状態となる。
【０１５６】
再び図４１を参照すると、４サイクルすべての出力を、テーブルＢに示す。予期される出力のすべてが把握され、同じ値を有するべきであるので、エラー時のセンサＰ−２は、さらに使用する場合にはブラックリストに載せられると推定される。本システムの残りのコンポーネントは、使用に際して機能し、利用可能である。テーブルＣは、Ａ−Ｍｅｍ−ｘｘルックアップ故障に対するパターンを示す。テーブルＤは、Ｂ−ＣＰＵ−０故障は値を登録しないため、Ｂ−ＣＰＵ−０処理での問題を示す。テーブルＥは、すべてのＰシリーズセンサの故障を示す。グラフＡは、３つのＰ型センサのすべてが、現実の条件でどのように故障するかを示す。各センサは、異なる割合で故障するため、Ｐシリーズセンサが故障し、Ｓシリーズセンサが正しい読取り値であると推定することができる。
【０１５７】
図４２を参照すると、この種類の分析が、メタ・メンター・システムの処理に適用された場合を図示する。上述の４ステップ例を使用する場合、各ステップのトップの処理は、計算容量の７５パーセントを示すＰセンサ処理である。これは、テーブルＦに示される。テーブルＧは、処理がＢ−ＣＰＵ−０アルゴリズムで変わった場合に何が発生するかを示す。この変化は、異常コンポーネント、異常命令情報、および／またはマルウェアなどの追加の予期せぬ処理由来である可能性がある、
【０１５８】
ＭＭがすべての処理をスケジューリングするので、これらの処理は、ＭＭのアカウンティングシステムによって記録され、問題があるものとしてフラグ立てすることができる。ファジー論理、分散またはニューラルネットワークの分析などの、図４３に示すような数学的技術を使用して、ＭＭシステムを定義してもよい。図４３では、ニューラルネットワークが図４２のオイラー方陣に対して示される。各ＣＰＵは、入力ニューロンと考えられ、システムリソースは、出力ニューロンである。この例では、ＳおよびＰアルゴリズムニューロンは、システムリソースを作動させる。Ｍｅｍ−Ｄａｔａ出力ニューロンは、Ｐアルゴリズムを表し、Ｍｅｍ−Ｐｒｏｃ１は、Ｓアルゴリズムを表す。ネットワークＡは、通常動作時のシステムを示し、Ｐニューロンを３回「起動」し、Ｓニューロンは、各ＣＰＵに対して１サイクルに１回起動する。これは、図４２のテーブルＦと類似する。ネットワークＢは、システム動作の変化を示し、Ａ−ＣＰＵ−０、Ａ−ＣＰＵ−２、およびＢ−ＣＰＵ−１は、ネットワークＡの場合と同様に起動するが、Ｂ−ＣＰＵ−０は、別の隠れ層構成である、新しいニューロン、ニューロンＸを起動している。ニューロンＸは、２つの新しいシステムリソース、Ｍｅｍ−Ｐｒｏｃ２およびＩ／Ｏリソースを使用している。このようにして、メタ・メンター・アーキテクチャは、異常処理およびコンポーネント割当を容易に識別することができる。
【０１５９】
上述の説明および図面は、例示目的のみのために提供したものであり、本発明は、開示した実施形態に限定されないが、特許請求の範囲によって定義されるような本発明の範囲内の要素の任意およびすべての代替物、同等物、変更物、および再構成物を包含することを意図することが理解されよう。
【図１】
2015517712.tif 000003
【図２】
2015517712.tif 000004
【図３】
2015517712.tif 000005
【図４】
2015517712.tif 000006
【図５】
2015517712.tif 000007
【図６Ａ】
2015517712.tif 000008
【図６Ｂ】
2015517712.tif 000009
【図７】
2015517712.tif 000010
【図８Ａ】
2015517712.tif 000011
【図８Ｂ】
2015517712.tif 000012
【図９】
2015517712.tif 000013
【図１０】
2015517712.tif 000014
【図１１】
2015517712.tif 000015
【図１２】
2015517712.tif 000016
【図１３】
2015517712.tif 000017
【図１４】
2015517712.tif 000018
【図１５】
2015517712.tif 000019
【図１６】
2015517712.tif 000020
【図１７】
2015517712.tif 000021
【図１８】
2015517712.tif 000022
【図１９】
2015517712.tif 000023
【図２０】
2015517712.tif 000024
【図２１】
2015517712.tif 000025
【図２２】
2015517712.tif 000026
【図２３】
2015517712.tif 000027
【図２４】
2015517712.tif 000028
【図２５】
2015517712.tif 000029
【図２６】
2015517712.tif 000030
【図２７】
2015517712.tif 000031
【図２８】
2015517712.tif 000032
【図２９】
2015517712.tif 000033
【図３０Ａ】
2015517712.tif 000034
【図３０Ｂ】
2015517712.tif 000035
【図３１】
2015517712.tif 000036
【図３２】
2015517712.tif 000037
【図３３】
2015517712.tif 000038
【図３４】
2015517712.tif 000039
【図３５】
2015517712.tif 000040
【図３６】
2015517712.tif 000041
【図３７】
2015517712.tif 000042
【図３８】
2015517712.tif 000043
【図３９】
2015517712.tif 000044
【図４０】
2015517712.tif 000045
【図４１】
2015517712.tif 000046
【図４２】
2015517712.tif 000047
【図４３】
2015517712.tif 000048
【国際調査報告】
2015517712.tif 000049