(57)【特許請求の範囲】
【請求項１】
それぞれ１つ以上のプロセッサ（１２８）を有する少なくとも１つのコンピューティングセルを備えた複数のパーティション（１１６）を有する区画可能コンピュータシステム（１００）であって、
前記複数のパーティションのそれぞれと通信するルーティングデバイスと、
前記複数のパーティション（１１６）のうちの第１のパーティションに設けられた前記プロセッサ（１２８）であって、当該第１のパーティションに設けられた状態マシンと通信するプロセッサと、
前記第１のパーティション（１１６）が安全状態で動作しているか否かを判断するように構成された前記状態マシン（１３２）であって、前記プロセッサにより、前記安全状態の判断に基づいて前記プロセッサおよび前記第１のパーティションまたはこれらのいずれかのセキュリティステータス情報を決定して当該状態マシンの第２のレジスタに格納する前記状態マシン（１３２）と、
前記ルーティングデバイスと通信し、前記状態マシンからセキュリティステータス情報を受信するように構成され、前記パーティションまたは前記プロセッサのセキュリティステータス情報が安全であることを示すときにのみ前記第１のパーティションの外部からのアクセスが許可されるアクセス対象である第１のレジスタを有するデバイスコントローラ（１２０）と、
前記第２のレジスタに記憶されたステータス情報を伝送する前記状態マシンと前記デバイスコントローラとの間の第１の通信パス（１４８）と
を備え、
前記第１のパーティションのセキュリティステータス情報が非安全状態であることを示し、セキュリティステータス情報が安全であることを示し当該第１のパーティションに含まれていないセルが存在し、前記第１のパーティションにセルの追加が必要であると判断されて前記セキュリティステータス情報が安全であることを示し当該第１のパーティションに含まれていないセルを前記第１のパーティションに加入するよう指示するコマンドを受信した場合に、セキュリティステータス情報が安全であることを示し当該第１のパーティションに含まれていないセルが、前記第１のパーティションに追加される
区画可能コンピュータシステム。
【請求項２】
前記第１の通信パスは、
前記プロセッサと前記状態マシンとの間の単一の通信パス
を備える、請求項１に記載の区画可能コンピュータシステム。
【請求項３】
前記第１の通信パスは、
前記プロセッサと前記状態マシンとの間の複数の通信パス
を備える、
請求項１に記載の区画可能コンピュータシステム。
【請求項４】
前記状態マシンは
ロジックアレイ
を備える、
請求項１に記載の区画可能コンピュータシステム。
【請求項５】
前記ロジックアレイは
フィールドプログラマブルゲートアレイ
を備える、
請求項４に記載の区画可能コンピュータシステム。
【請求項６】
前記プロセッサと通信し、前記ステータス情報を含むデータパケットを構築するように構成されたパケット形成器
をさらに備える請求項１に記載の区画可能コンピュータシステム。
【請求項７】
前記ルーティングデバイスは、
前記第１のパーティションと通信してパケットを受信するように構成されたポートと、
該ポートに関連したファイアウォールと
を有する
請求項１に記載の区画可能コンピュータシステム。
【請求項８】
前記ファイアウォールは、許可された宛先アドレスのルーティングテーブル
を備える、請求項７に記載の区画可能コンピュータシステム。
【請求項９】
前記ファイアウォールは、前記宛先アドレスが前記パケットの受信を許可されていないものであると前記ファイアウォールが判断すると、該パケットを廃棄するように構成される、
請求項７に記載の区画可能コンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、区画可能計算システムの分野に関し、特に、区画可能計算システム内のパーティションを保護することに関する。
【背景技術】
【０００２】
スケーラブルな計算ソリューションの一例は区画可能計算システムである。このようなシステムでは、多数の要素（例えば、計算セル）を、特定の計算機能を実行するように専用化されたパーティションに結合することができる。複数のパーティションが、同じ区画可能計算システムに存在することができ、各パーティションが特定の機能を有する。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記のようなシステムでは、１つのパーティションに対する悪意の攻撃によって、区画可能システムの全体が危険にさらされる可能性がある。
【課題を解決するための手段】
【０００４】
本明細書の以下の部分では、区画可能計算システムのパーティション間のセキュリティを提供するシステム、方法、ハードウェア、ソフトウェア、ファームウェア、およびコンピュータ命令が説明される。一実施の形態では、区画可能コンピュータシステムは、状態マシン、プロセッサ、およびデバイスコントローラを含む。状態マシンは、パーティションのステータスを監視するように構成することができる。プロセッサは、通信リンクを介して状態マシンと通信することができる。デバイスコントローラは、ステータス情報を受信するように構成することができ、パーティションのステータスに応じてアクセス可能な第１のレジスタを有する。プロセッサと通信できる第２のレジスタが、状態マシンから伝達されたパーティションのステータスを記憶する。
【０００５】
本発明の上記特徴および利点ならびに他の特徴および利点は、添付図面に示すように、本発明の好ましい実施の形態の以下の詳細な説明を考慮すると、より一層明らかになる。理解されるように、本発明は、さまざまな点においてすべて、本発明の範囲から逸脱することなく、変更が可能である。したがって、図面および説明は、本質的に例示とみなされるべきであり、限定としてみなされるべきでない。
【０００６】
本発明を説明する目的で、図面に、現時点で好ましい形態を示す。しかしながら、この発明は、図示する正確な配置および手段に限定されるものでないことが理解される。図面は必ずしも一定の縮尺であるとは限らず、むしろ、本発明の原理を図示することに重点が置かれている。
【発明を実施するための最良の形態】
【０００７】
図１Ａ、図１Ｂ、および図１Ｃを参照して、区画可能計算システム１００は、多数の要素またはセル１０４を含むことができる。図１Ａでは、２つのセル１０４Ａおよび１０４Ｂのみが存在する。一方、３つ以上のセル１０４が区画可能計算システム１００を作成することができる。例えば、図１Ｂは、４つのセル１０４Ａ、１０４Ｂ、１０４Ｃ、および１０４Ｄを有する区画可能計算システム１００’を示している。図１Ｃでは、１６個のセル１０４Ａ、１０４Ｂ、１０４Ｃ、１０４Ｄ、１０４Ｅ、…、１０４Ｐが区画可能計算システム１００’’を作成する。各セル１０４は、各入出力モジュール１０８と通信することができ、各入出力モジュール１０８は、システム１００への入力およびシステム１００からの出力を提供するのに使用される。
【０００８】
３つ以上のセル１０４を有する区画可能計算システム、例えば図１Ｂに示すシステム１００’および図１Ｃに示す１００’’では、セル１０４は、ルーティングデバイス１１２を通じて相互に通信することができる。ルーティングデバイスは、クロスバースイッチとすることもできるし、データパケットをルーティングできる他の同様のデバイスとすることもできる。例えば、カリフォルニア州マウンテンビューのＳＧＩが販売しているＮＵＭＡｆｌｅｘ  ８ポートルータ相互接続モジュール（8-Port Router Interconnect Module）を使用することができる。ルーティングデバイス１１２は、送信元アドレスから宛先アドレスへのパケットの転送を円滑にする。例えば、セル１０４Ａがセル１０４Ｄにパケットを送信する場合、セル１０４Ａはパケットをルーティングデバイス１１２に送信し、次に、ルーティングデバイス１１２がそのパケットをセル１０４Ｄに送信する。
【０００９】
図１Ｃに示すシステム１００’’等のより大きな区画可能計算システムでは、２つ以上のルーティングデバイス１１２が存在し得る。例えば、４つのルーティングデバイス１１２Ａ、１１２Ｂ、１１２Ｃ、および１１２Ｄが存在し得る。これらのルーティングデバイス１１２はスイッチ機構（switch fabric）と総称することができる。ルーティングデバイス１１２は、相互に、および、多数のセル１０４と通信することができる。例えば、セル１０４Ａ、セル１０４Ｂ、セル１０４Ｃ、およびセル１０４Ｄは、ルーティングデバイス１１２Ａと直接通信することができる。セル１０４Ｅ、セル１０４Ｆ、セル１０４Ｇ、およびセル１０４Ｈは、ルーティングデバイス１１２Ｂと直接通信することができる。セル１０４Ｉ、セル１０４Ｊ、セル１０４Ｋ、およびセル１０４Ｌは、ルーティングデバイス１１２Ｃと直接通信することができる。セル１０４Ｍ、セル１０４Ｎ、セル１０４Ｏ、およびセル１０４Ｐは、ルーティングデバイス１１２Ｄと直接通信することができる。このような構成では、各ルーティングデバイス１１２、および、そのルーティングデバイス１１２が直接通信するセル１０４をパーティション１１６とみなすことができる。図１Ｃに示すように、４つのパーティション１１６Ａ、１１６Ｂ、１１６Ｃ、および１１６Ｄが存在する。図示するように、各パーティションは４つのセルを含む。しかしながら、任意の個数のセルおよびセルの組み合わせを使用して、パーティションを作成することができる。例えば、パーティション１１６Ａおよび１１６Ｂを組み合わせて、８つのセルを有する１つのパーティションを形成することができる。一実施の形態では、各セル１０４がパーティション１１６となる。図１Ａに示すように、セル１０４Ａがパーティション１１６Ａとなることができ、セル１０４Ｂがパーティション１１６Ｂとなることができる。
【００１０】
各パーティションは、特定の計算機能を実行するように専用化することができる。例えば、パーティション１１６Ａは、ウェブサーバファームとして機能することによって、ウェブページを提供するように専用化することができ、パーティション１１６Ｂは、診断能力を提供するように構成することができる。さらに、パーティションは、データベースを保持するように専用化することができる。一実施の形態では、商用データセンタが、アクセス段（例えば、ウェブファーム）と、アプリケーション段（すなわち、ウェブ要求を取り込み、それらのウェブ要求をデータベースクエリーに変え、次いで、ウェブ要求に応答する段）と、さまざまな動作および項目を追跡するデータベース段との３段のパーティションを有することができる。
【００１１】
図２を参照して、各セル１０４は、論理デバイス１２０、複数のメモリバッファ１２４Ａ、１２４Ｂ、１２４Ｃ、１２４Ｄ（メモリバッファ１２４と総称する）、複数の中央処理装置（ＣＰＵ）１２８Ａ、１２８Ｂ、１２８Ｃ、１２８Ｄ（ＣＰＵ１２８と総称する）、状態マシン１３２、およびファイアウォール１３４を含む。用語ＣＰＵは、マイクロプロセッサに限定するためのものではなく、処理することができるあらゆるデバイスを指すように使用するためのものである。メモリバッファ１２４、ＣＰＵ１２８、および状態マシン１３２は、それぞれ、論理デバイス１２０と通信する。セル１０４がクロスバー１１２と通信する時、論理デバイス１２０もクロスバー１１２と通信する。また、論理デバイス１２０は、Ｉ／Ｏサブシステム１０８とも通信する。論理デバイス１２０は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）１３２とすることができる。論理デバイス１２０は、本明細書中では、セルコントローラ１２０とも呼ばれる。論理デバイス１２０は、状態マシン１３２、ＣＰＵ１２８、メモリバッファ１２４、ルーティングデバイス１１２、およびＩ／Ｏサブシステム１０８の間で信号をルーティングするのに使用される通信バス（図示せず）を含む。セルコントローラ１２０は、メインメモリ要求のメモリＤＩＭＭ要求へのマッピング等の論理オペレーションも実行し、データにアクセスしてデータを返し、ＣＰＵおよびＩ／Ｏキャッシュが常に一貫性を有するように、かつ、新鮮でなくなることが決してないように、メインメモリ要求のキャッシュコヒーレンシ機能を実行する。
【００１２】
一実施の形態では、Ｉ／Ｏサブシステム１０８は、バスアダプタ１３６および複数のホストブリッジ１４０を含む。バスアダプタ１３６は、複数の通信リンク１４４を通じてホストブリッジ１４０と通信する。各リンク１４４は、１つのホストブリッジ１４０をバスアダプタ１３６に接続する。一例として、バスアダプタ１３６は、周辺コンポーネント相互接続（ＰＣＩ）バスアダプタとすることができる。Ｉ／Ｏサブシステムは、１６個のホストブリッジ１４０Ａ、１４０Ｂ、１４０Ｃ、…、１４０Ｐおよび１６個の通信リンク１４４Ａ、１４４Ｂ、１４４Ｃ、…、１４４Ｐを含むことができる。
【００１３】
図示するように、セル１０４は、４つのＣＰＵ１２８を含む。しかしながら、各セルは、さまざまな個数の処理ユニット１２８を含む。一実施の形態では、ＣＰＵは、ＩＴＡＮＩＵＭベースのＣＰＵである。ＩＴＡＮＩＵＭベースのＣＰＵは、カリフォルニア州サンタクララのＩｎｔｅｌによって製造されている。あるいは、ＳＵＮ  ＵｌｔｒａＳｐａｒｃプロセッサ、ＩＢＭパワープロセッサ、またはＩｎｔｅｌ  Ｐｅｎｔｉｕｍ（登録商標）プロセッサも使用することができる。メモリバッファ１２４は、８つの同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）デュアルインラインメモリモジュール（ＤＩＭＭ）１４４と通信する。ただし、他のタイプのメモリも使用することができる。
【００１４】
状態マシン１３２は、通信パス１４８を介して論理デバイス１２０と通信する。通信パス１４８は、単一のワイヤとすることもできるし、複数のワイヤとすることもできる。パラレル通信バスやシリアル通信バス等の他のタイプの通信パスも使用することができる。状態マシンは、セル１０４の一部として示されているが、区画可能計算システム１００の他の場所に存在することもできる。状態マシン１３２は、レジスタ（図示せず）と、ＣＰＵ１２８と、論理デバイス１２０と、プロセッサ１２８が読み出す１組のコンピュータ可読命令（図示せず）とを組み合わせたものとすることができる。状態マシン１３２は、ＣＰＵ１２８の１つもしくは２つ以上のもののセキュリティステータス（状態）またはパーティション１１６全体のセキュリティステータスを監視する。状態マシン１３２は、プロセッサ１２８またはパーティション１１６が安全状態で動作しているのか、それとも非安全状態で動作しているのかを判断することができる。本明細書で使用されるように、安全という用語は、悪意を持ってシステムを阻害したり変更したりしない、意図されたシステム機能を実行するように識別および認証されている信頼されたソフトウェアをプロセッサが実行している状態にあることを意味する。本明細書で使用されるように、非安全状態という用語は、安全状態で動作していないことを意味する。安全対非安全状態を提供することに加えて、状態マシン１３２は、さまざまなレベルのセキュリティステータスも提供することができる。例えば、他の多くのステータス方式に加えて、高安全ステータス、低安全ステータス、および非安全ステータスも本システムで使用することができる。パーティション１１６のステータスは、状態マシン１３２のレジスタに記憶することができる。このレジスタは、単一ビットレジスタとすることもできるし、他のさまざまなサイズのレジスタとすることもできる。記憶されたセキュリティステータスは、セキュリティステータス情報と呼ばれ、区画可能計算システム１００のさまざまな部分によって使用される。セキュリティステータス情報は、区画可能計算システム１００のさまざまな部分に伝達することができる。状態マシン１３２が提供するセキュリティステータス情報は、区画可能計算システム１００の一定のレジスタ（図示せず）、認証されたコンピュータ可読命令（例えば、ファームウェア）の一定の部分、およびＩ／Ｏサブシステム１０８へのアクセスを制御するのに使用することができる。悪意のあるユーザ（例えば、ハッカ）が区画可能計算システム１００のオペレーションにダメージを与えるのを阻止するために、これらのレジスタおよび認証されたコードへのアクセスを制御することが望ましい。
【００１５】
セル１０４は、特定の構成として示されているが、このような構成に限定されるものではない。例えば、Ｉ／Ｏサブシステム１０８は、ルーティングデバイス１１２と通信することができる。同様に、ＤＩＭＭモジュール１４４もルーティングデバイス１１２と通信することができる。図２のコンポーネントの構成は、提供する説明によって何ら限定されるものではない。
【００１６】
図３を参照して、動作時に、状態マシン１３２は、区画可能計算システム１００の特定のパーティション１１６またはプロセッサ１２８に関係したセキュリティステータス情報（すなわち、安全または非安全）を受け取ることができる（ステップ３００）。あるいは、状態マシン１３２は、セキュリティステータス情報を決定することもできる（ステップ３１０）。状態マシン１３２は、プロセッサ１２８が実行している１組の命令を監視することができる。例えば、プロセッサ１２８が、ブートプロセスもしくは再ブートプロセス中に実行される１組のシステムファームウェア命令や、認証されたメモリ位置（例えば、読み出し専用メモリ（ＲＯＭ））からの命令等の既知の１組の認証されたコードを実行している場合には、状態マシンは、パーティション１１６が安全モードで動作していると判断する。一方、プロセッサが、１組の認証されていない命令（例えば、オペレーティングシステム命令、または、ユーザがインストールもしくはダウンロードしたドライバおよびアプリケーション）を実行している場合には、状態マシンは、パーティション１１６が非安全モードで動作していると判断する。セキュリティステータス情報を決定するのに、他のさまざまな方法も使用することができる。例えば、ロック／キーハードウェアシステムを使用して、パーティション１１６またはプロセッサ１２８が安全状態で動作しているかどうかを判断することができる。また、認証プロセスまたは認証アルゴリズムを使用して、セキュリティステータス情報を決定することもできる。セキュリティステータス情報は記憶される（ステップ３２０）。セキュリティステータス情報は、区画可能計算システム１００のレジスタに記憶することができる。記憶されたセキュリティステータス情報は、さまざまな方法で使用されて、区画可能計算システム１００のさらなる保護を提供することができる。例えば、セキュリティステータス情報をファイアウォール１３４として使用して、論理デバイス１２０内のレジスタへのアクセスを阻止することができる。
【００１７】
図４Ａを参照して、論理デバイス１２０は、通信パス１４８を介して状態マシン１３２からセキュリティステータス情報を受け取る（ステップ４００）。論理デバイスは、セキュリティステータス情報を読み出す（ステップ４１０）。論理デバイス１２０内の通信バスは、セキュリティステータス情報を論理デバイス１２０内のレジスタにルーティングする。パーティション１１６またはプロセッサ１２８が安全モードで動作していることをセキュリティステータス情報が示している時に、論理デバイス１２０内の安全なレジスタへのアクセスが許可される（ステップ４２０）。より具体的には、図４Ｂを参照して、セキュリティステータス情報パケットが論理デバイス１２０に送信される（ステップ４３０）。論理デバイス１２０は、セキュリティステータス情報パケットのフィールドを復号して（ステップ４４０）、パケットタイプ、パケット宛先アドレス、およびセキュリティステータス情報を決定する。論理デバイス１２０は、読み出しオペレーションまたは書き込みオペレーションが実行されることをパケットタイプが示しているかどうかを判断する（ステップ４５０）。読み出しまたは書き込みが実行される予定でない場合には、パケットで要求されたオペレーションが処理または実行される（ステップ４６０）。読み出しオペレーションまたは書き込みオペレーションが実行されることになっている場合には、論理デバイス１２０は、その読み出しコマンドまたは書き込みコマンドが重要なレジスタに対するものであるかどうかを判断する（ステップ４７０）。読み出しコマンドまたは書き込みコマンドが重要なレジスタに対して発行されたものでない場合には、パケットで要求オペレーションが実行される（ステップ４６０）。一方、読み出し要求または書き込み要求が重要なレジスタに対するものである場合には、論理デバイス１２０は、パケットに含まれるセキュリティステータス情報を読み出す（ステップ４８０）。パーティション１１６またはプロセッサ１２８が安全モードにあることをセキュリティステータス情報が示している場合には、パケットで要求されたオペレーションが処理される（ステップ４６０）。一方、プロセッサ１２８またはパーティション１１６が非安全モードにあることをセキュリティステータス情報が示している場合には、論理デバイスは、パケットで要求されたオペレーションを実行しない（ステップ４９０）。
【００１８】
論理デバイス１２０の機能は、ハードウェアとして説明しているが、プロセッサと、セキュリティステータス情報を受け取って、セキュリティステータス情報を読み出し、セキュリティステータス情報に応じて一定の重要なレジスタへのアクセスを許可または拒否するように構成された１組のコンピュータ可読命令とで実施することができる。また、ハードウェアおよびソフトウェアの組み合わせを使用して、上述した機能を提供することもできる。
【００１９】
図１Ａおよび図５を参照して、一構成では、セル１０４Ａがセル１０４Ｂと直接通信する。２つのパーティションの区画可能計算システム１００では、セル１０４間の通信を円滑にするクロスバー１１２が存在しない。通常、２つのパーティションのシステムでは、セル１０４Ａとセル１０４Ｂとの間の通信は要求されない。したがって、区画可能計算システム１００のセットアップ中に、セル１０４Ａと１０４Ｂとの間の通信リンクは有効化（enable）されない。しかしながら、悪意のあるユーザが、システム１００のオペレーション中にセル１０４Ａまたはセル１０４Ｂのいずれかにアクセスする可能性がある。悪意のあるユーザは、他方のセルにパケットの送信を試みる可能性があり、それによって、システム１００のオペレーションの阻害を試みる可能性がある。この状況を阻止するのに役立てるために、セル１０４Ａおよび１０４Ｂのそれぞれは、リンク有効化モジュール１５２Ａおよび１５２Ｂ（リンク有効化モジュール１５２と総称する）をそれぞれ含む。リンク有効化モジュール１５２は、セルコントローラ１２０内のレジスタとすることができ、セルコントローラ１２０は、上述した機能に加えてリンクコントローラとしても機能する。
【００２０】
図６を参照して、セル１０４Ａとセル１０４Ｂとの間の通信リンクが確立される場合に、双方のパーティションはリンクを有効化しなければならない。セル１０４Ａまたはセル１０４Ｂの或る要素が、セル１０４Ａとセル１０４Ｂとの間の通信リンクの確立を要求する（ステップ６００）。この要求は、例えば、セル１０４Ａのプロセッサ１２８からのものとすることができる。この要素は、リンクコントローラ１２０からの応答を受信する（ステップ６１０）。この応答は肯定的または否定的なもののいずれかとすることができる。肯定的な応答は、それによって、通信リンクを確立できることを示す。否定的な応答は、それによって、通信リンクを確立すべきでないことを示す。応答は、リンク有効化レジスタ１５２Ａの１ビットとして書き込むことができる。要求が、セル１０４Ａまたはセル１０４Ｂのいずれかの或る要素によってセル１０４Ｂのリンクコントローラ１２０に送信される（ステップ６２０）。この要素は、セル１０４Ｂから応答を受信する（ステップ６３０）。この応答は肯定的なものまたは否定的なもののいずれかとすることができる。この応答は、リンク有効化レジスタ１５２Ｂの１ビットとして書き込むことができる。いずれかの応答が否定的なものである場合には、通信リンクは確立されない（ステップ６４０）。双方の応答が肯定的なものである場合には、通信リンクが確立される（ステップ６５０）。換言すると、セル１０４Ａおよびセル１０４Ｂの双方が、通信リンクの確立を許可すること、または、セル１０４Ａとセル１０４Ｂとの間の通信が禁止されることを示さなければならない。
【００２１】
図１Ｃを参照して、区画可能計算システム１００’’のセットアップ中、クロスバー１１２のそれぞれは、パケットを送信できる宛先アドレスおよびパケットを受信できる宛先アドレスのリストで事前にプログラミングされる。例えば、１つのパーティションが、セル１０４Ａからセル１０４Ｈを含む場合、クロスバー１１２Ａおよび１１２Ｂは、相互にパケットを送信するように構成される。クロスバー１１２Ａのルーティングテーブルは、そのパーティションの各セル１０４の宛先アドレスを含む。この例では、ルーティングテーブルは、セル１０４Ａ、１０４Ｂ、１０４Ｃ、１０４Ｄ、１０４Ｅ、１０４Ｆ、１０４Ｇ、および１０４Ｈのアドレスを含む。また、クロスバー１１２Ｂも、同じ宛先アドレスを含むルーティングテーブルを有する。ただし、いずれのルーティングテーブルも、セル１０４Ｉから１０４Ｐの宛先アドレスは含まない。これらのセルは、区画可能計算システム１００’’の他のパーティション１１６の一部とすることができる。ルーティングテーブルが構成されると、それらのルーティングテーブルへの認可されていないアクセスを阻止することが望ましい。ルーティングテーブルへのアクセスを阻止することによって、認可されていないユーザが区画可能計算システム１００’’の構成を変更することが阻止される。
【００２２】
図７Ａを参照して、読み出しオペレーションまたは書き込みオペレーションをクロスバー１１２のルーティングテーブルまたはクロスバー１１２の重要なレジスタに対して実行できる前に、区画可能計算システム１００’’のセキュリティステータスが分析される。状態マシン１３２は、区画可能計算システム１００’’のパーティション１１６またはプロセッサ１２８のセキュリティステータスを決定する（ステップ７００）。状態マシンは、パケット形成モジュールにセキュリティステータス情報を伝達し、パケット形成モジュールは、状態マシンおよびプロセッサ１２８と通信する。パケット形成モジュールは、論理デバイス１２０とすることができる。パケット形成モジュールは、セキュリティステータス情報を含むデータパケットを形成する（ステップ７１０）。このデータパケットは、当該パケットを細かく構築することによって形成することができる。例えば、パケットは、（例えば、レジスタに対して読み出しまたは書き込みを試みることになるパケットである）パケットタイプと、（例えば、重要なレジスタのレジスタアドレスである）パケットの宛先アドレスとを含む部分パケットを含むことができる。セキュリティステータス情報は、この部分パケットの最後に追加することができる。パケットが形成されると、送信機（図示せず）が、パケットを受信する（ステップ７３０）クロスバー１１２に当該データパケットを送信する（ステップ７２０）。受信されたパケットは、クロスバーによって読み出され（ステップ７４０）、セキュリティステータス情報に応じてシステム機能が実行される（ステップ７５０）。
【００２３】
図７Ｂを参照して、より詳細に、ＣＰＵ１２８の１つ、論理デバイス１２０、および状態マシン１３２は協働して、パケットタイプ、宛先アドレス、およびセキュリティステータス情報を含むデータパケットを形成する（ステップ７１０）。ＣＰＵ１２８および論理デバイスは協働して、データパケットをクロスバー１１２に送信する（ステップ７２０）。クロスバー１１２は、パケットを受信し（ステップ７３０）、パケット情報を復号する（すなわち、読み出す）（ステップ７４０）。クロスバー１１２は、データパケットのフィールドを復号して、パケットタイプ、パケット宛先アドレス、およびセキュリティステータス情報を決定する。クロスバー１１２は、読み出しオペレーションまたは書き込みオペレーションの実行が予定されていることをパケットタイプが示しているかどうかを判断する（ステップ７４２）。読み出しまたは書き込みの実行が予定されていない場合には、パケットで要求されたシステム機能が処理または実行される（ステップ７５２）。読み出しオペレーションまたは書き込みオペレーションが実行されることになっている場合には、クロスバー１１２は、読み出しコマンドまたは書き込みコマンドが重要なレジスタに対するものであるかどうかを判断する（ステップ７４４）。読み出しコマンドまたは書き込みコマンドが重要なレジスタに対して発行されたものでない場合には、パケットで要求されたシステム機能が実行される（ステップ７５２）。一方、読み出し要求または書き込み要求が重要なレジスタに対するものである場合には、クロスバー１１２は、パケットに含まれるセキュリティステータス情報を読み出す（ステップ７４６）。パーティション１１６またはプロセッサ１２８が安全モードにあることをセキュリティステータス情報が示している場合には、パケットで要求されたシステム機能が処理される（ステップ７５２）。一方、プロセッサ１２８またはパーティション１１６が非安全モードにあることをセキュリティステータス情報が示している場合には、論理デバイスは、パケットで要求されたオペレーションを実行しない（ステップ７５４）。システム機能が実行される予定でない場合には、クロスバー１１２は、多数の方法で応答することができる。例えば、クロスバー１１２は、データパケットを無視することができる。あるいは、クロスバー１１２は、レジスタへのアクセスが拒否されたことを示して、データパケットに応答することもできる。
【００２４】
上述したように、ルーティングデバイス１１２のルーティングテーブルへのアクセスを阻止することに加えて、或るパーティション（例えば１１６Ａ）からのパケットが別のパーティション（例えば１１６Ｃ）に送信されるのを阻止することも望ましい。図８を参照して、例えば、企業の金融取引を実行するようにパーティション１１６Ａを構成でき、その企業の顧客に対してウェブホスティングを提供するようにパーティション１１６Ｃを構成できる。悪意のあるユーザがパーティション１１６Ｃにアクセスした場合、この悪意のあるユーザが有害なパケットをパーティション１１６Ａに送信することを阻止し、パーティション１１６Ａを動作不能にすることが望ましい。図９を参照して、各ルーティングデバイス１１２は、複数の認可された宛先アドレスを含むルーティングテーブルまたはルート有効化マスク１４４を含むことができる。ルート有効化マスク１４４は、Ｎ×Ｍ機構スイッチ１１２の各ポートに関連付けることができる。一実施の形態では、ＮおよびＭは同じ値とすることができる。別法では、ＮおよびＭは異なる値とすることができる。ルート有効化マスクは、ファイアウォールとして機能して、区画可能計算システム１００のパーティション１１６間の認可されていないパケットの伝送を阻止する。
【００２５】
図１０を参照して、動作時に、パーティション１１６ＡのＣＰＵ１２８の１つが、パケットの送信元アドレスおよびパケットの宛先アドレスを含むデータパケットを形成する。ＣＰＵ１２８は、そのパケットをルーティングデバイス１１２に送信する。ルーティングデバイス１１２はパケットを受信する（ステップ１０００）。ルーティングデバイス１１２は、パケットを読み出して、宛先アドレスを決定する（ステップ１０１０）。宛先アドレスがパケットを受信するように構成されているかどうかについての判断が行われる（ステップ１０２０）。換言すると、ルーティングデバイス１１２のルーティングテーブルまたはビットマスク１４４において宛先アドレスが参照され、宛先アドレスが送信元アドレスと同じパーティション１１６の一部であるかどうかが判断される。ルーティングデバイス１１２は、宛先アドレスがパケットの受信を許可されていない場合に、そのパケットの送信を禁止する（ステップ１０３０）。宛先アドレスが、ルーティングテーブルまたはルート有効化マスク１４４に見当たらない場合には、そのパケットは送信されない。そのパケットは、ルーティングデバイス１１２により廃棄することができる。さらに、ルーティングデバイス１１２は、パケットが宛先アドレスに送信されなかったことを送信元アドレスに通知することができる（ステップ１０４０）。この通知は、送信元アドレスをエラー状態に遷移させることができる。エラー状態の結果、パケットを送信したパーティション１１６は動作不能になる可能性がある。また、送信元アドレスは、パケットが受信されたことを示す宛先アドレスからの通知を受信しない場合に、タイムアウト信号を生成することもできる（ステップ１０５０）。送信元アドレスのパーティション１１６は、タイムアウト信号が生成された後に、エラー状態に遷移することができる。パーティション１１６は、エラー状態になると、自動エラー復旧を開始するか、または、システムアドミニストレータが受信でき、かつ、エラーログに書き込むことができるという通知を生成することができる。
【００２６】
区画可能計算システムの１つの特徴は、必要とされる計算要求に応じて、システムを動的に構成できることである。例えば、パーティションは、最初、セル１０４Ａ、セル１０４Ｂ、およびセル１０４Ｃを含むことができる。より多くの計算資源が必要とされると、セル１０４Ｄをパーティションに追加することができる。しかしながら、パーティションのセキュリティを維持することは大きな問題である。セル１０４Ｄが悪意のあるユーザによってアクセスされると、この悪意のあるユーザは、既存のパーティションにセル１０４Ｄの追加を試みることができ、それによって、パーティションの他のセル１０４にアクセスして、他のセル１０４を動作不能にすることができる。上述したように、ルーティングデバイス１１２は、ルーティングテーブルまたはルート有効化マスク１４４を含む。パーティション１１６の一部でないセル１０４がパーティション１１６に加入するために、ルーティングデバイス１１２のルート有効化マスク１４４を、新たなセル１０４を含めるように更新することができる。
【００２７】
より具体的には、図１Ｂ、図１１Ａ、図１１Ｂ、および図１１Ｃを参照して、パーティションへのセルの追加、パーティションからのセルの削除、およびパーティション間のセルの移動のさまざまな方法を説明する。また、セル１０４のセキュリティ状態を遷移させる方法も説明する。区画可能計算システム１００’のブートアップ中、セル１０４Ａ、セル１０４Ｂ、およびセル１０４Ｃは、安全なファームウェアから命令を受信して、パーティション１１６を形成する。最初、セル１０４Ｄは、パーティション１１６の一部ではない。セル１０４Ａ、１０４Ｂ、および１０４Ｃがパーティションを形成し、認証されていないコード（例えば、オペレーティングシステムコード）の実行を開始すると、各セル１０４の状態マシン１３２は、安全状態から非安全状態に遷移する。セル１０４Ｄは、認証されていないコードを実行していないので、安全状態にある。パーティション１１６の正常動作中、計算資源の追加が必要であると判断される。その時、セル１０４Ｄは、パーティション１１６に加入するように、パーティション１１６の或る要素からコマンドを受信する（ステップ１１００）。これに応答して、セル１０４Ｄのセキュリティステータスが判断される（ステップ１１１０）。この判断は、セル１０４Ｄの状態マシン１３２のレジスタにアクセスすることによって行うことができる。セル１０４Ｄのセキュリティステータスが安全であると、ルーティングデバイス１１２のルート有効化マスク１４４は、セル１０４Ｄの宛先アドレスを含めるように更新される（ステップ１１２０）。この更新は、セル１０４Ａ、１０４Ｂ、および１０４Ｃの宛先アドレスを、セル１０４Ｄとルーティングデバイス１１２との間のポートに関連したルート有効化マスク１４４Ｄに加えること、およびルーティングデバイス１１２ならびにセル１０４Ａ、１０４Ｂ、および１０４Ｃの各ポートに関連したルート有効化マスク１４４Ａ、１４４Ｂ、および１４４Ｃを更新することを必要とする場合がある。ルート有効化マスク１４４が更新された後、セル１０４Ｄはパーティション１１６に加入し、認証されていないコードの実行を開始することができる。セル１０４Ｄが認証されてないコードを実行すると、セル１０４Ｄのセキュリティステータスは安全から非安全に遷移する（ステップ１１３０）。
【００２８】
その後、パーティション１１６は、セル１０４Ｄの資源をもはや必要としない場合がある。この場合には、セル１０４Ｄをパーティション１１６から除去することができる。セル１０４Ｄは、自身をパーティションから除去する命令を受信することができる（ステップ１１４０）。セル１０４Ｄはパーティションから除去される（ステップ１１５０）。ルーティングデバイス１１２のルート有効化マスク１４４を更新するために、セル１０４Ｄを安全なセキュリティ状態に遷移すべきである。この遷移は、多くの方法で達成することができる。例えば、セル１０４Ｄを再ブートすることができる（ステップ１１６０）。あるいは、セル１０４Ｄは、認証された安全なメモリに記憶された遷移ルーチンを実行することもできるし、また、割り込み命令または指示命令を受信して、認証された安全なメモリに記憶されたルーチンを実行することもできる。セル１０４Ｄが安全なセキュリティステータスに遷移した後、セル１０４Ｄは、ルーティングデバイス１１２の各ポートに関連したルート有効化マスク１４４を更新することができる。セル１０４Ｄは、安全モードで動作しているので、ルート有効化マスク１４４を更新する必要はない。
【００２９】
或るパーティション１１６Ａから別のパーティション１１６Ｂにセル１０４を移動させるために、区画可能計算システム１００は、削除方法および追加方法の双方を実行する。例えば、パーティション１１６Ａがセル１０４Ａ、１０４Ｂ、および１０４Ｃを含み、パーティション１１６Ｂがセル１０４Ｄおよび１０４Ｅを含むと仮定する。セル１０４Ｃは、パーティション１１６Ｂに加入する命令を受信することができる（ステップ１１８０）。セル１０４Ｃは、自身をパーティション１１６Ａから除去する（ステップ１１９０）。セル１０４Ｃは、例えば、再ブートするか、または、他の或る遷移方法を実行することによって、自身を非安全状態から安全状態に遷移させる（ステップ１２００）。セル１０４Ｃは、安全なセキュリティステータスに遷移した後、ルーティングデバイス１１２の各ポートに関連したルート有効化マスク１４４を更新することができる。２つ以上のルーティングデバイス１１２が使用される場合、各ルーティングデバイス１１２のルート有効化マスク１４４は更新される。セル１０４Ｃは、パーティション１１６Ａのセル１０４Ａおよび１０４Ｂに関連したルート有効化マスク１４４のそれぞれから自身を除去する（ステップ１２１０）。セル１０４Ｃは、パーティション１１６Ｂのセル１０４Ｄおよび１０４Ｅのそれぞれに関連したルート有効化マスク１４４に自身を追加する。さらに、セル１０４Ｃは、セル１０４Ｃに関連したルート有効化マスク１４４Ｃを更新する（ステップ１２２０）。セル１０４Ｃがパーティション１１６Ｂに追加されると、セル１０４Ｃは、認証されていないコードを実行している時に安全状態から非安全状態に遷移する（ステップ１２３０）。
【００３０】
上述した特定のステップは、コンピュータ可読媒体にプログラミングして、区画可能計算システム１００内またはシステム１００の外部に記憶することができる。一実施の形態では、これらの命令は、区画可能計算システム１００のファームウェアの一部として含めることができる。命令は、システム１００が理解できる任意の計算言語で記述することができる。例えば、命令は、ＣやＣ＋＋等のオブジェクト指向型プログラミング言語で記述することができる。あるいは、ＸＭＬや低級アセンブリ言語等の拡張言語も使用することができる。
【００３１】
上述したように、説明した実施の形態のさまざまな変更が、本明細書で提供した開示から当業者には明らかであろう。したがって、本発明は、本発明の精神からも本質的な属性からも逸脱することなく、他の特定の形態で具体化することができ、したがって、本発明の範囲を示すものとして、上記明細書ではなく、添付した特許請求の範囲が参照されるべきである。
【図面の簡単な説明】
【００３２】
【図１Ａ】本発明の原理に従って構築されたさまざまな区画可能計算システムのブロック図である。
【図１Ｂ】本発明の原理に従って構築されたさまざまな区画可能計算システムのブロック図である。
【図１Ｃ】本発明の原理に従って構築されたさまざまな区画可能計算システムのブロック図である。
【図２】本発明の原理に従って構築された図１Ｂのセルのブロック図である。
【図３】本発明の原理に従って、図１Ａ、図１Ｂ、および図１Ｃのシステムにより実行されるさまざまなステップを示すフローチャートである。
【図４Ａ】本発明の原理に従って、図１Ａ、図１Ｂ、および図１Ｃのシステムにより実行されるさまざまなステップを示すフローチャートである。
【図４Ｂ】本発明の原理に従って、図１Ａ、図１Ｂ、および図１Ｃのシステムにより実行されるさまざまなステップを示すフローチャートである。
【図５】本発明の原理による図１Ａのシステムの一実施の形態を示すブロック図である。
【図６】本発明の原理に従って、図５のシステムにより実行されるさまざまなステップを示すフローチャートである。
【図７Ａ】本発明の原理に従って、図１Ｂおよび図１Ｃのシステムにより実行されるさまざまなステップを示すフローチャートである。
【図７Ｂ】本発明の原理に従って、図１Ｂおよび図１Ｃのシステムにより実行されるさまざまなステップを示すフローチャートである。
【図８】本発明の原理に従って構築されたシステムの一実施の形態を示すブロック図である。
【図９】本発明の原理に従って構築されたルーティングデバイスのブロック図である。
【図１０】本発明の原理に従って、図１Ａ、図１Ｂ、および図１Ｃのシステムにより実行されるさまざまなステップを示すフローチャートである。
【図１１Ａ】本発明の原理に従って、図１Ａ、図１Ｂ、および図１Ｃのシステムにより実行されるさまざまなステップを示すフローチャートである。
【図１１Ｂ】本発明の原理に従って、図１Ａ、図１Ｂ、および図１Ｃのシステムにより実行されるさまざまなステップを示すフローチャートである。
【図１１Ｃ】本発明の原理に従って、図１Ａ、図１Ｂ、および図１Ｃのシステムにより実行されるさまざまなステップを示すフローチャートである。
【図１Ａ】
0004639091.tif 000002
【図１Ｂ】
0004639091.tif 000003
【図１Ｃ】
0004639091.tif 000004
【図２】
0004639091.tif 000005
【図３】
0004639091.tif 000006
【図４Ａ】
0004639091.tif 000007
【図４Ｂ】
0004639091.tif 000008
【図５】
0004639091.tif 000009
【図６】
0004639091.tif 000010
【図７Ａ】
0004639091.tif 000011
【図７Ｂ】
0004639091.tif 000012
【図８】
0004639091.tif 000013
【図９】
0004639091.tif 000014
【図１０】
0004639091.tif 000015
【図１１Ａ】
0004639091.tif 000016
【図１１Ｂ】
0004639091.tif 000017
【図１１Ｃ】
0004639091.tif 000018