(57)【要約】  マルチプロセッサファブリックにおける通信の無効化。マルチプロセッサファブリックは、複数のプロセッサ及び複数の通信要素を含んでよく、複数の通信要素のそれぞれはメモリを含んでよい。マルチプロセッサファブリックから構成を受け取ってよく、この構成は、１つ若しくは複数のプロセッサと１つ若しくは複数の通信要素、１つ若しくは複数のプロセッサと１つ若しくは複数の他のプロセッサ、又は１つ若しくは複数の通信要素と１つ若しくは複数の他の通信要素の内の１つ又は複数の間の通信経路の無効化を指定する。従って、マルチプロセッサファブリックは、ハードウェア内で、この構成によって指定される通信経路を無効にするように自動的に構成されてよい。マルチプロセッサファブリックは、この構成に従ってソフトウェアアプリケーションを実行するために操作されてよい。【選択図】図７
2013543183.tif 000002
【特許請求の範囲】
【請求項１】
マルチプロセッサシステムでの通信を無効にするための方法であって、前記方法は：
前記マルチプロセッサファブリックの構成を受け取ることであって、前記マルチプロセッサファブリックは複数のプロセッサ及び複数の通信要素を含み、前記複数の通信要素のそれぞれはメモリを含み、前記構成は、
１つ若しくは複数の前記プロセッサと１つ若しくは複数の前記通信要素、
１つ若しくは複数の前記プロセッサと１つ若しくは複数の他の前記プロセッサ、又は
１つ若しくは複数の前記通信要素と１つ若しくは複数の他の前記通信要素
の内の１つ又は複数の間の通信経路の無効化を指定する、受け取ること；
ハードウェア内の前記マルチプロセッサファブリックを、前記構成によって指定される前記通信経路を無効にするように自動的に構成すること；並びに
ソフトウェアアプリケーションを実行するために前記マルチプロセッサファブリックを操作することであって、前記マルチプロセッサファブリックは前記構成に従って動作する、操作すること
を含む、方法。
【請求項２】
前記マルチプロセッサファブリックを自動的に構成することが、１つ若しくは複数の前記プロセッサ及び／又は１つ若しくは複数の前記通信要素に対応するレジスタ値を設定して、前記構成によって指定される前記通信経路を無効にすることを含む、請求項１に記載の方法。
【請求項３】
前記自動的に構成した後に、無効にされた前記通信経路が前記ソフトウェアを介して回復可能ではない、請求項１又は２に記載の方法。
【請求項４】
前記構成が、前記マルチプロセッサファブリックの第１の部分と、前記マルチプロセッサファブリックの第２の部分との間の通信の無効化を指定し、動作中、前記第１の部分が前記第２の部分から隔離される、請求項１〜３のいずれか１項に記載の方法。
【請求項５】
前記構成が、前記マルチプロセッサファブリックの前記第１の部分の、前記マルチプロセッサファブリックの前記第２の部分によるメモリアクセスの無効化を指定し、動作中、前記第２の部分が前記第１の部分に含まれるメモリにアクセスできない、請求項１〜４のいずれか１項に記載の方法。
【請求項６】
前記マルチプロセッサファブリックの中に認証されたコードをロードすることであって、前記構成が前記認証されたコードから受け取られる、ロードすること；
前記認証されたコードから前記第２の構成を受け取ること；及び
前記第２の構成に基づいて自動的に構成することを実行すること
を更に含む、請求項１及び３〜５のいずれか１項に記載の方法。
【請求項７】
前記受け取ることが、前記マルチプロセッサファブリックのブートプロセスの間に自動的に実行される、請求項１〜６のいずれか１項に記載の方法。
【請求項８】
複数の前記通信要素が、動的に構成可能な前記通信要素を含み、前記通信要素のそれぞれが、複数の通信ポート、第１のメモリ、及びルーティングエンジンを含む、請求項１〜７のいずれか１項に記載の方法。
【請求項９】
前記プロセッサのそれぞれについて、複数のプロセッサポートが複数の前記通信要素の第１のサブセットに結合するために構成され、前記通信要素のそれぞれについて、通信ポートの第１のサブセットが複数の前記プロセッサのサブセットに結合するために構成され、前記通信ポートの第２のサブセットが前記複数の通信要素の第２のサブセットに結合するために構成される、請求項１〜８いずれか１項に記載の方法。
【請求項１０】
複数の前記プロセッサ及び複数の前記通信要素が点在的な構成でともに結合される、請求項１〜９のいずれか１項に記載の方法。
【請求項１１】
請求項１〜１０のいずれかを実装するように構成されるコンピュータプログラム。
【請求項１２】
複数のプロセッサ及び複数の通信要素を含むマルチプロセッサシステムを含むシステムであって、
複数の前記通信要素のそれぞれは、メモリを含み、
前記マルチプロセッサファブリックは、請求項１〜７のいずれかを実行するように構成される、システム。
【請求項１３】
各前記プロセッサは、少なくとも１つの算術論理演算ユニット、命令処理ユニット、及び複数のプロセッサポートを含む、請求項１２に記載のシステム。
【請求項１４】
各前記通信要素は、動的に構成可能な通信要素を含み、
前記通信要素のそれぞれは、複数の通信ポート、第１のメモリ、及びルーティングエンジンを含む、請求項１２又は１３に記載のシステム。
【請求項１５】
前記プロセッサのそれぞれについて、複数のプロセッサポートが複数の前記通信要素の第１のサブセットに結合するために構成され、前記通信要素のそれぞれについて、通信ポートの第１のサブセットが複数の前記プロセッサのサブセットに結合するために構成され、前記通信ポートの第２のサブセットが複数の前記通信要素の第２のサブセットに結合するために構成される、請求項１２〜１４のいずれか１項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の分野は、概してコンピュータシステムのセキュリティに関し、更に詳細にはソフトウェアによって定義されるセキュアシステムに関する。
【背景技術】
【０００２】
人間の基本的なニーズの内の１つは、安心感、つまり保証されていると感じる要求である。残念なことに、時代を経るに従い、世界では、例えば財産を盗む又は財産を損壊する、組織若しくは政府の邪魔をする又は組織若しくは政府に損害を与える等の危害を加えることを望む組織が存在するようになってきた。彼らの動機は、私利を求めることから政治的な理由までさまざまである。社会はデジタル時代に突入し、通信と情報との境界線は更に曖昧になり、定量化可能な保証水準に達するためのセキュリティ及び方法は、現在の生活水準を持続するために重大度を増している。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
いかなる時又は場所においてもデジタル世界に通信し、接続したいとする希求が、商業的な情報セキュリティ要件の背後にある力である。ユビキタス通信ソリューション及びユビキタスコンピューティングソリューションに向かって進化してきたこの環境は、初期には通信分野によって牽引されてきた。この分野は、消費者セグメント、工業セグメント、医療セグメント、公衆安全セグメント、政府セグメント及び軍事セグメントに分かれる。従来、軍隊がこの分野を技術的に先導してきた。しかし、産業界がこの能力を実現することによってその操作上の慣行を受け入れ、進化させてきたことにより、消費者市場、産業市場／企業市場及び医療市場は現在類似した課題に直面している。その結果、セキュリティの改善が所望されている。
【課題を解決するための手段】
【０００４】
マルチプロセッサファブリックによってシステムを保護するための多様な実施形態が以下に提供される。マルチプロセッサファブリックは、複数のプロセッサ及び複数の通信要素を含んでよい。各通信要素は動的に構成可能であってよい、並びに／又は考えられる他の要素の中で複数の通信ポート、メモリ、及び／若しくはルーティングエンジンを含んでよい。各プロセッサは、考えられる他の要素の中で少なくとも１つの算術論理演算装置、命令処理装置、及び／又は複数のプロセッサポートを含んでよい。通信要素及びプロセッサは、点在的にともに結合され得る。例えば、プロセッサのそれぞれについて、複数のプロセッサポートを複数の通信要素の第１のサブセットに結合するために構成してよく、通信要素のそれぞれについて、通信ポートの第１のサブセットを複数のプロセッサのサブセットに結合するために構成し、通信ポートの第２のサブセットを複数の通信要素の第２のサブセットに結合するために構成してよい。
【０００５】
一実施形態では、マルチプロセッサファブリックのための構成が、マルチプロセッサファブリック又はマルチプロセッサファブリックを含むシステムのブートプロセスの間に、例えば自動的に受け取られてよい。構成は、プロセッサ及び／又は通信要素の内の１つ又は複数の間の通信経路の無効化を指定してよい。例えば、構成は、１つ若しくは複数のプロセッサと１つ若しくは複数の通信要素との間、１つ若しくは複数のプロセッサと１つ若しくは複数の他のプロセッサとの間、及び／又は１つ若しくは複数の通信要素と１つ若しくは複数の他の通信要素との間の通信経路の無効化を指定してよい。
【０００６】
少ない例としては、構成は、例えば、動作中に第１の部分を第２の部分から隔離するために、マルチプロセッサファブリックの第１の部分とマルチプロセッサファブリックの第２の部分との間の通信の無効化を指定してよい。別の例として、構成は、マルチプロセッサファブリックの第１の部分の、マルチプロセッサファブリックの第２の部分によるメモリアクセスの無効化を指定してよく、これにより例えば第２の部分は動作中に第１の部分内に含まれるメモリにアクセスできなくなる。
【０００７】
それに応じて、マルチプロセッサファブリックは、構成によって指定される通信経路を無効にするようにハードウェア内で構成されてよい。その結果、マルチプロセッサファブリックは、構成に従ってソフトウェアアプリケーションを実行するように操作されてよい。
【０００８】
一実施形態では、構成することは、１つ若しくは複数のプロセッサ及び／又は１つ若しくは複数の通信要素に対応するレジスタ値を設定して、その構成によって指定される通信経路を無効にすることを含んでよい。一実施形態では、この構成後、無効にされた通信経路はソフトウェアを介して回復可能であってはならない。
【０００９】
代わりに又は加えて、上述の構成は、マルチプロセッサファブリックにロードされたソフトウェア又はコードに基づいてロードされてよい。例えば、当初、構成を含む認証されたコードがロードされてよい。一実施形態では、認証されたコードは、動作を通して使用され得る複数の構成又は構成に対する修正を含んでよい。例えば、第２の構成は認証されたコードから受け取られてよく、上述の自動的な構成は、第２の構成のために実行されてよい。
【００１０】
好ましい実施形態の以下の詳細な説明を、以下の図面と併せて検討することで、本発明のよりよい理解を得ることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態を活用することができる例示的なコンピュータシステムを示す図である。
【図２】マルチプロセッサシステムの例示的な実施形態を示す図である。
【図３】マルチプロセッサシステムの例示的な実施形態を示す図である。
【図４】マルチプロセッサシステムの例示的な実施形態を示す図である。
【図５】マルチプロセッサシステムの例示的な実施形態を示す図である。
【図６Ａ】マルチプロセッサシステムの例示的な実施形態を示す図である。
【図６Ｂ】マルチプロセッサシステムの例示的な実施形態を示す図である。
【図７】いくつかの実施形態に従って、マルチプロセッサシステムで通信を無効にするための方法を示すフローチャートである。
【図８】いくつかの実施形態に従って、マルチプロセッサシステムで通信を無効にするための方法を示すフローチャートである。
【図９】マルチプロセッサシステムを保護するための特定の実施形態に対応する図である。
【図１０】マルチプロセッサシステムを保護するための特定の実施形態に対応する図である。
【図１１Ａ】マルチプロセッサシステムを保護するための特定の実施形態に対応する図である。
【図１１Ｂ】マルチプロセッサシステムを保護するための特定の実施形態に対応する図である。
【図１２】マルチプロセッサシステムを保護するための特定の実施形態に対応する図である。
【図１３】マルチプロセッサシステムを保護するための特定の実施形態に対応する図である。
【図１４】マルチプロセッサシステムを保護するための特定の実施形態に対応する図である。
【図１５】マルチプロセッサシステムを保護するための特定の実施形態に対応する図である。
【図１６】マルチプロセッサシステムを保護するための特定の実施形態に対応する図である。
【発明を実施するための形態】
【００１２】
本発明は様々な修正及び代替形態を許容しているが、その特定の実施形態を例として図示し、ここに詳細に説明する。しかしながら、これらの図面及びそれに関する詳細な説明は、本発明をここに開示する特定の形態に制限することを意図したものではなく、反対に、添付の請求項によって定義される本発明の精神及び範囲内において、全ての修正形態、均等物及び代替形態を包含することを意図したものであることを理解するべきである。
【００１３】
本願明細書作成に当たって、参考にした参照文献は、Michael B. Doerr、William H. Hallidy、David A. Gibson、及びCraig M. Chaseによる、２００３年６月２４日に出願された「点在するストール伝搬プロセッサ及び通信要素を備えた処理システム（Processing System with Interspersed Stall Propagating Processors and Communication Elements）」と題する米国特許第７，４１５，５９４号明細書である。
【００１４】
用語
以下に、本願で使用する用語集を示す。
【００１５】
記憶媒体  −多様なタイプのメモリ装置又は記憶装置のいずれか。用語「記憶媒体」は、例えば、ＣＤ−ＲＯＭ、フロッピー（登録商標）ディスク１０４若しくはテープ装置等のインストール媒体、ＤＲＡＭ、ＤＤＲ  ＲＡＭ、ＳＲＡＭ、ＥＤＯ  ＲＡＭ、Ｒａｍｂｕｓ  ＲＡＭ等のコンピュータシステムメモリ若しくはランダムアクセスメモリ又は例えばハードドライブ、光記憶装置、若しくはＲＯＭ、ＥＰＲＯＭ、ＦＬＡＳＨ等の磁気媒体のような不揮発性メモリを含むことが意図される。記憶媒体は、他のタイプのメモリ又はその組合せも含んでよい。更に、メモリ記憶媒体はプログラムが実行される第１の媒体内に位置してよい、及び／又はインターネット等のネットワーク上で第１のコンピュータに接続する第２の異なるコンピュータ内に位置してよい。後者の場合、第２のコンピュータは、実行のために第１のコンピュータにプログラム命令を提供してよい。用語「記憶媒体」は、例えばネットワーク上で接続される異なるコンピュータ内等、異なる場所に常駐してよい２つ以上の媒体を含んでよい。
【００１６】
キャリヤ媒体  −上述の記憶媒体、並びにバス、ネットワーク等の物理伝送媒体及び／又は電気信号若しくは光信号等の信号を伝達する他の物理伝送媒体。
【００１７】
プログラム可能ハードウェア要素  −プログラマブル相互接続又はハードワイヤード相互接続を介して接続される複数のプログラマブル機能ブロックを含む多様なハードウェア装置を含む。例として、ＦＰＧＡ(フィールドプログラマブルゲートアレイ)、ＰＬＤ（プログラム可能論理回路）、ＦＰＯＡ（フィールドプログラマブルオブジェクトアレイ）、及びＣＰＬＤ(コンプレックスＰＬＤ)が挙げられる。プログラマブル機能ブロックは、細粒（組み合わせ論理又はルックアップテーブル）から粗粒（算術論理演算装置又はプロセッサコア）に及ぶことがある。プログラム可能ハードウェア要素は、「リコンフィギャラブルロジック」と呼ばれることもある。
【００１８】
特定用途向け集積回路（ＡＳＩＣ）  −この用語は、その通常の意味の全てを包含することが意図される。ＡＳＩＣはビルディングブロックとしてプログラマブルプロセッサコアを含んでよいが、本用語ＡＳＩＣは、汎用プログラマブル装置ではなく、ある特定のアプリケーションのためにカスタマイズされた集積回路を含むことが意図される。セルホンのセル、ＭＰ３プレーヤーのチップ、及び多くの他の単一機能ＩＣがＡＳＩＣの例である。ＡＳＩＣは、通常、Ｖｅｒｉｌｏｇ又はＶＨＤＬ等のハードウェア記述言語で説明される。
【００１９】
プログラム  −用語「プログラム」は、その通常の意味の全てを包含することが意図される。用語「プログラム」は、１）メモリ内に記憶することができ、プロセッサによって実行可能であるソフトウェアプログラム、又は２）プログラム可能ハードウェア要素つまりＡＳＩＣを構成するために使用可能なハードウェア構成プログラムを含む。
【００２０】
ソフトウェアプログラム  −用語「ソフトウェアプログラム」は、その通常の意味の全てを包含することが意図され、記憶媒体に記憶され、プロセッサによって実行され得るいずれのタイプのプログラム命令、コード、スクリプト、及び／若しくはデータ、又はその組合せも含む。例示的なソフトウェアプログラムは、Ｃ、Ｃ＋＋、ＰＡＳＣＡＬ、ＦＯＲＴＲＡＮ、ＣＯＢＯＬ、ＪＡＶＡ（登録商標）、アセンブリ言語等のテキストベースのプログラミング言語で作成されるプログラム、グラフィックプログラム（グラフィックプログラミング言語で作成されるプログラム）、アセンブリ言語プログラム、機械言語にコンパイルされたプログラム、スクリプト、及び他のタイプの実行可能なソフトウェアを含む。ソフトウェアプログラムは、何らかの方法で相互運用する２つ以上のソフトウェアプログラムを含んでよい。
【００２１】
ハードウェア構成プログラム  −プログラム可能ハードウェア要素つまりＡＳＩＣをプログラミングする又は構成するために使用できる、例えばネットリスト又はビットファイル等のプログラム。
【００２２】
コンピュータシステム  −パーソナルコンピュータシステム（ＰＣ）、メインフレームコンピュータシステム、ワークステーション、ネットワーク機器、インターネット機器、パーソナルデジタルアシスタント（ＰＤＡ）、グリッドコンピューティングシステム若しくは他の装置、又は装置の組合せを含む多様なタイプのコンピューティングシステム又は処理システムの内のいずれか。一般に、用語「コンピュータシステム」は、記憶媒体からの命令を実行する少なくとも１つのプロセッサを有する任意の装置（又は装置の組合せ）を包含するように幅広く定義できる。
【００２３】
自動的に  −ユーザ入力がアクション又は動作を直接的に指定する又は実行することなく、コンピュータシステム（例えば、コンピュータシステムによって実行されるソフトウェア）又は装置（例えば、回路、プログラム可能ハードウェア要素、ＡＳＩＣ等）によって実行されるアクション又は動作を指す。従って、用語「自動的に」は、ユーザが入力を提供して、動作を直接的に実行するユーザによって手動で実行される又は指定される動作とは対照的である。自動手順は、ユーザによって提供される入力によって開始されてよいが、「自動的に」実行される以後のアクションはユーザによって指定されない。つまり、ユーザが実行する各アクションを指定する「手動で」は実行されない。例えば、各フィールドを選択し、（例えば、情報を入力する、チェックボックス、ラジオ選択等を選択することによって）情報を指定する入力を提供することによって電子書式を記入するユーザは、たとえコンピュータシステムがユーザアクションに応えて書式を更新しなければならないとしても、手動で書式を記入している。ユーザ入力がフィールドに対する回答を指定することなく、コンピュータシステム（例えば、コンピュータシステム上で実行中のソフトウェア）が書式のフィールドを分析し、書式を記入する場合、書式は、コンピュータシステムによって自動的に記入されてよい。上記に示されたように、ユーザは、書式の自動記入を呼び出すことができるが、ユーザは書式の実際の記入では呼び出されない（例えば、ユーザがフィールドに対する回答を手動で指定しているのではなく、むしろ回答は自動的に記入されている）。本明細書は、ユーザが講じた処置に応えて自動的に実行されている動作の多様な例を提供する。
【００２４】
システムセキュリティ
単独で情報のセキュリティを提供する特長又は機能はない。セキュリティは、システムのプロパティであり、ユーザ、プロトコル、ソフトウェア及びハードウェアの組合せである。情報セキュリティの全体的な目標は、許可ユーザ間で情報を処理し、通信すること、及びその情報の不正アクセスを防ぐことである。
【００２５】
情報セキュリティの目標は、以下のセキュリティ目的に対処することによって内訳し、達成することができる。
【００２６】
１．(意図された使用のみのためのシステム及びデータの）可用性。可用性は、システムが迅速に機能し、サービスが許可ユーザに対して拒否されないことを保証するために意図された要件である。この目的は、データの不正な削除を実行する又はそれ以外の場合、サービス又はデータの拒否を引き起こす故意の又は偶発的な試み、及び不正な目的にシステム又はデータを使用する試み保護する。可用性は、頻繁に組織の最大のセキュリティ目的である
【００２７】
２．（システム及びデータの）完全性。完全性には次の２つの面がある。つまり、データ完全性（記憶内で、処理中又は移動中に不正なやり方でデータが改変されていないという性質）又はシステム完全性（不正な操作を受けない、損なわれないやり方で意図された機能を実行するときにシステムが有する品質）である。完全性は、一般に可用性に続く組織の最も重要なセキュリティ目的である。
【００２８】
３．（データ及びシステム情報の）機密性。機密性は、個人情報又は機密情報が未許可の個人に開示されないという要件である。機密性保護は、記憶されているデータ、処理中のデータ及び移動中のデータに適用される。多くの組織では、機密性は、しばしば重要性という点で可用性と完全性の後回しにされる。しかし、いくつかのシステムにとって及び大部分のシステムの特定のタイプのデータ（例えばユーザ識別）にとって、機密性はきわめて重要である。
【００２９】
４．（個人レベルに対する）説明責任。説明責任は、あるエンティティの行為を、そのエンティティについて一意に追跡できるという要件である。説明責任は、多くの場合組織の方針の要件であり、否認防止、抑止、障害分離、侵入検出及び侵入防止、並びに事後回復及び訴追を直接的に支援する。
【００３０】
５．（他の４つの目的が適切に達成されたという）保証。保証は、技術的な及び操作上両方のセキュリティ方策が意図されたとおりに機能して、システム及びシステムが処理する情報を保護するという信頼性の基盤である。他の４つのセキュリティの目的（完全性、可用性、機密性、及び説明責任）は、必要とされる機能性が存在し、正しく実施されるとき、（ユーザ又はソフトウェアによる）意図的ではないエラーに対して十分な保護がなされているとき、及び意図的な侵入又は迂回に対する十分な抵抗性があるときに、特定の実装例によって適切に満たされている。保証は、保証がないと他の目的が達成されない場合には必須となることがある。しかしながら、保証は連続したつながりである。必要とされる保証の量はシステム間で変化する。
【００３１】
本明細書に説明される実施形態は、システム開発法をサポートし、上述の目的の内のいくつか又はすべてを達成できる情報セキュリティ開発フレームワークに関する。本明細書に説明される実施形態は、セキュアシステムを作り出すための開発プロセスを含む。また、実施形態は、情報セキュリティのターゲットとなる保証水準品質の設計及び開発において設計者及び／又はエンジニアを導くことができる関連ソフトウェア及びハードウェア開発ツール一式も含む。この目標保証水準は、上述の目的のそれぞれにおいて機能性要件を定めることと、満たすこととの両方によって達成され得る。達成される保証水準は、システムが意図された機能性を提供するだけではなく、望ましくないアクションが発生しないことを保証することも可能にし得る。
【００３２】
用語「開発方法論」は、情報セキュリティ開発プロセスの定義の根底にあり、定義を導く規則及び必要条件のグループを概略する、論理的根拠及び一連の哲学的前提を指すことがある。
【００３３】
用語「開発プロセス」は、方法論に基づいた開発のライフサイクルを指すことがある。より粗いレベルでは、開発プロセスは、ユーザの要件及び制約を、設計、実装、検証、配備、及び保守を通じて動かす方法を説明する。
【００３４】
上述のように、本明細書に説明される開発ツール一式は、開発プロセスを通してユーザ又は開発者を導き、方法論を施行するために実行可能であり、可能な場合にはステップ及びステップの一部分を自動化することができる１つ又は複数のソフトウェアプログラムのセットのことである。
【００３５】
図１  −例示的なコンピュータシステム
図１は、本発明の実施形態を実装する例示的なコンピュータシステムを示している。本発明の実施形態は、標準デスクトップコンピューティングプラットホーム（例えば、ＰＣ又はＭａｃ）等の多様なコンピュータシステム、サーバ、移動通信装置、スマートホンのいずれかで使用することができる。コンピュータシステムは、好ましくはＨｙｐｅｒＸ（登録商標）技術に基づいたプロセッサを含む。ＨｙｐｅｒＸプロセッサは、参照することによって援用される上記米国特許第７，４１５，５９４号に説明されている。
【００３６】
図２及び図３  −例示的なマルチプロセッサシステム
図２は、「ＨｙｐｅｒＸアーキテクチャ」と呼ばれることがあるマルチプロセッサシステムの例示的な実施形態を示している。マルチプロセッサシステム又はファブリックは、複数のプロセッサ、メモリ（統一型及び／又は分散型）、及び通信（又は通信ネットワーク）リソースを含む並列計算プラットホームである。例示的なマルチプロセッサシステムは、プロセッサのそれぞれが少なくとも１台の他のプロセッサに結合され、それぞれのプロセッサ間に複数の通信機構がある複数のプロセッサを含む。マルチプロセッサシステムは、プロセッサに結合された複数のメモリを含んでよい。例えば、メモリはプロセッサの間に点在してよい。更に詳細には、マルチプロセッサシステムは、プロセッサの間に点在する複数の通信装置を含んでよく、通信装置のそれぞれはメモリ及びルーティングロジックを含む。本明細書において、用語「結合される」は、直接的に又は間接的に接続されていることを意味する。マルチプロセッサシステムは、単一の集積回路、単一のプリント基板、又は単一のシステム上で実現されることもあれば、実現されないこともある。例えば、マルチプロセッサシステムは、複数の集積回路、複数のプリント基板、複数のシステム、又はそのいずれの組合せとして実現されることがある。
【００３７】
かかるマルチプロセッサシステムの例は、前記米国特許第７，４１５，５９４号に開示される、マルチコアＨｙｐｅｒＸアーキテクチャである。一実施形態では、ＨｙｐｅｒＸアーキテクチャの中心コアビルディングブロックは、ＨｙｐｅｒＳｌｉｃｅと呼ばれるスケラブルな単位セルベースのハードウェアファブリックである。ハードウェアアーキテクチャは、このコア単位セルを複製して、マルチコア並列処理システムを作成することによって形成され得る。各ＨｙｐｅｒＳｌｉｃｅは、１つ又は複数のＤＭＲ（「通信要素」と呼ばれることもある、データメモリおよびルータ）、及び処理要素（ＰＥ）を含んでよい。
【００３８】
ＤＭＲは、処理リソースへの高速ルーティングサービスのために、データメモリ、制御論理回路、レジスタ及びルータを提供してよい。ハードウェアファブリックは、ＨｙｐｅｒＳｌｉｃｅをともに連結することによって作成され、オンチップメモリネットワークを形成する。オンチップメモリネットワークは、処理リソースとは無関係に、かつ処理リソースに対してトランスペアレントに動作する。オンチップメモリネットワークは、リアルタイムプログラム可能及び適応可能通信ファブリックを通じて、機能又はシステム実装の任意のネットワークトポロジをサポートするＨｙｐｅｒＳｌｉｃｅ間にオンデマンド帯域幅を提供してよい。ＨｙｐｅｒＳｌｉｃｅの調整されたグループは、ソフトウェア制御下で「オンザフライ」で形成、及び再形成されてよい。機能を評価するために使用されるハードウェアの量を動的に改変するこの能力によって、処理のボトルネックを除去するためのハードウェアリソースの最適な適用が可能になる。
【００３９】
ＤＭＲは、チップ全体に渡って及びチップからチップへと、最も近い近傍通信、地域的通信及びグローバル通信を提供してよい。ＤＭＲは、メモリからメモリへ、メモリからレジスタへ、レジスタからメモリへ、及びレジスタからレジスタへの４つの異なる転送モードを通してこれを実行してよい。転送モードのそれぞれは、物理的にＤＭＲリソースを使用して、データ及びソフトウェアアルゴリズムの要件の局所性に応じて、不同でデータ／メッセージを送信してよい。「クイックポート」ファシリティは、プロセッサからどこかへ迅速に１ワードのデータを転送するために提供されてよい。ブロック転送の場合、ＤＭＲ内部のダイレクトメモリアクセス（ＤＭＡ）エンジンが、メモリ及びルーティングファブリック全体でのデータの移動を管理するために使用可能であってよい。最も近い近傍通信の場合、共用メモリ及びレジスタを使用することが、データ移動の最も効率的な方法である場合がある。地方及び世界でのデータ移動の場合、ルーティングファブリックを使用することが、最も効率的な方法である場合がある。通信チャネルは、動的又は静的のどちらかである場合がある。動的なルートはデータ転送のためにセットアップされ、他のデータ転送用にルーティングリソースを解放するために、転送完了時に切断されてよい。静的ルートは、プログラム実行を通してインプレースであってよく、主に高い優先順位及び重大な通信に使用される。データ転送及び通信チャネルの選択は、ソフトウェアプログラム制御下であってよい。複数の通信チャネルは、あらゆる送信者と受信者との間の同時データ転送をサポートするために存在してよい。
【００４０】
ＤＭＲのアーキテクチャによって、異なる互換性があるＰＥが、特定の用途用のシステムを最適化するためにマルチプロセッサファブリックで使用できる。ＨｙｐｅｒＸマルチプロセッサシステムは、ＰＥの異種アレイ又は同種アレイのどちらかを含んでよい。ＰＥは従来のプロセッサであってよいし、別法としてＰＥは、プロセッサの従来の定義に適合しなくてもよい。ＰＥは、プログラム化可能性がより高い性能、より小さい面積、及び／又はより低い電力とトレードオフされる場合、単に、特定の論理機能用のハードワイヤードプロセッサとして機能する論理ゲートの集合体であってよい。
【００４１】
図２は、例示的なＨｙｐｅｒＸシステムの処理要素（ＰＥ）及びデータメモリルータ（ＤＭＲ）のネットワークの図を示している。ＰＥはボックスとして図示され、ＤＭＲは円として図示されている。ＤＭＲ間のルーティングチャネルは、点線として図示されている。黒べたの三角形はオフメッシュ通信を示し、実線は、ＤＭＲ間のアクティブデータ通信を示す。計算タスクはその数値識別子によって示され、それを実行しているＰＥに置かれている。通信のために使用されているデータ変数はその名称によって示され、それを含むＤＭＲに置かれている。
【００４２】
図３は、チップ上に含まれる例示的なマルチプロセッサシステムを示している。図示したように、チップは、図２に関して上述した実施形態と同様に、内部マルチプロセッサファブリックだけではなくチップの外部に複数のＩ／Ｏルータを含んでよい。図示したように、プロセッサアーキテクチャは、固有の多次元性を含んでよいが、図２から図４Ａに図示したようにその現在の金型実現で物理的に平坦化されてよい。プロセッサアーキテクチャは、高エネルギー効率特性を有することができ、基本的にスケラブルで、高い信頼性を有することができる-これは即ち、安全な概念と信頼できる概念の両方を表す。プロセッサアーキテクチャが、前例のない性能を達成できるようにする態様は、合理化されたプロセッサ、メモリネットワーク及びフレキシブルＩＯを含む。処理要素（ＰＥ）又はコアは本格的なＤＳＰ／ＧＳＰであってよく、同時にハードウェアリソースの利用を最大限にする一方で、実行パイプラインを動的に拡大してスループットを維持してよい可変幅命令ワード命令セットアーキテクチャによって持続されるメモリ対メモリ（キャッシュレス）アーキテクチャに基づいてよい。例えば、単一命令は、一実施形態に従って、４０を超える従来のＲＩＳＫ動作を単一のサイクルで開始できる。
【００４３】
図４、図５、図６Ａ及び図６Ｂは、マイクロプロセッサアーキテクチャのハードウェア／ソフトウェア動作スタックの別の図を示す。メモリネットワーク（ＤＭＲ）は、同様に実行モデルに２つの機能を与え得る自律的な瞬時帯域幅を提供してよい。第１に、メモリネットワークは、混合メモリプログラミングモデルを有効にしてよい。歴史的に、プログラミングモデルは、ハードウェア制限及びプログラミングモデル制限のため、完全に分散された実行メモリモデル又は完全に共用される実行メモリモデルに制限されてきた。これは、ハードウェア適応性及び再構成可能性の非効率につながる。混合メモリモデルは、リアルタイムで、実行しているソフトウェアの変化する力学及び要件に反応してよい。第２に、通信ネットワークは、リアルタイムで適応可能及び再構成可能等、論理的にトポロジから独立してよい。この独立性によって、適切なハードウェアトポロジを作成して、アルゴリズム／システムの自然な並列性をサポートすることができ、従ってアルゴリズム／システムを特定のトポロジに制約しない。これらの機能によって、いずれのシステムの自然な効率も実現可能とすることができる。更に、マルチプロセッサシステムは、本質的にスケラブルであり、自己同期化してよく、システムによって要求される場合は自律的なメモリコヒーレンスを効果的にサポートできる。一実施形態では、このシステムは、数百から数千のプロセッサをハードウェアとソフトウェアの両方でサポートする多くの金型／チップ全体に分散されてよい。
【００４４】
１つの特定の実施形態では、本明細書に説明されるソフトウェア定義セキュアシステム（ＳＤＳ２）の機能を以下の通りに説明できる。例えば、キーの管理と生成、暗号化／復号、認証、プログラマブルブート、物理的な隔離と論理的な隔離等の機能のツールボックス（例えば、図５に示す）がある。更に、固定機能、構成可能性、再構成可能性、及びプログラム化可能性をサポートする特性のあるハードウェアがある。開発プロセスを通して、開発者は、ハードウェアと併せて機能のツールボックスを使用してセキュアシステムの挙動を作成する、又はプログラミングすることができる場合がある。
【００４５】
いったんプログラミングされたシステムは、それが安全に動作するように作成された元のツールボックス及びハードウェアを再利用するように構成され得る。従来、セキュアシステムは、意図されている安全な挙動を実行するリソースとは別個のリソースから作成され、２つは、断片的にセキュアシステムの開発につながり、効果のない解決策を作り出す。システムビューからの全体的なアプローチに基づくこの新しい機能は、（１）差別化されたタイプのセキュリティを必要とする千差万別のシステムにカスタマイズされた安全なソリューションを作成すること、（２）安全なシステムの動作及び性能を静的に及び動的に最適化すること、（３）ハードウェア及びソフトウェア相互作用の基本命令の定められた挙動からシステムを徹底的に設計することを可能にする。この結果、実証可能な方法でセキュアシステムを開発する潜在的な能力が生まれる。
【００４６】
図６Ａは、例示的なソフトウェアアーキテクチャを示し、図６Ｂは、上述のツールボックスによって影響を及ぼされることがあるアーキテクチャの部分を示している。
【００４７】
図７  −マルチプロセッサシステムの構成
図７は、マルチプロセッサシステムでの通信を無効にするための方法を示す。図６に示す方法は、他の装置の中で、上記の図に示すコンピュータシステム又は装置のいずれかと併せて使用され得る。多様な実施形態では、図示した方法要素のいくつかは、示されているのとは異なる順序で並行して実行されてよい、又は省略されてよい。追加の方法要素も所望されるように実行されてよい。図示したように、この方法は以下の通りに動作してよい。
【００４８】
７０２で、マルチプロセッサシステム又はファブリックの構成が、例えば自動的に受け取られてよい。上述のように、マルチプロセッサファブリックは複数のプロセッサ及び複数の通信要素を含んでよい。各通信要素は、動的に構成可能であってよい及び／又は他の考えられる要素の中で複数の通信ポート、メモリ及び／又はルーティングエンジンを含んでよい。各プロセッサは、考えられる他の要素の中で少なくとも１つの算術論理演算装置、命令処理装置及び／又は複数のプロセッサポートを含んでよい。通信要素及びプロセッサは、点在的にともに結合され得る。例えば、プロセッサのそれぞれに、複数のプロセッサポートが複数の通信要素の第１のサブセットに結合するために構成されてよく、通信要素のそれぞれに、通信ポートの第１のサブセットが複数のプロセッサのサブセットに結合するために構成され、通信ポートの第２のサブセットが複数の通信要素の第２のサブセットに結合するために構成されてよい。
【００４９】
構成は、プロセッサ及び／又は通信要素の内の１つ又は複数の間の通信経路の無効化を指定してよい。例えば、構成は、１つ若しくは複数のプロセッサと１つ若しくは複数の通信要素との間、１つ若しくは複数のプロセッサと１つ若しくは複数の他のプロセッサとの間及び／又は１つ又は複数の通信要素と１つ若しくは複数の他の通信要素との間の通信経路の無効化を指定してよい。少ない例としては、構成は、例えば、動作中に第１の部分を第２の部分から隔離するために、マルチプロセッサファブリックの第１の部分とマルチプロセッサファブリックの第２の部分との間の通信の無効化を指定してよい。別の例として、構成は、マルチプロセッサファブリックの第１の部分の、マルチプロセッサファブリックの第２の部分によるメモリアクセスの無効化を指定してよく、従って例えば第２の部分は動作中に第１の部分内に含まれるメモリにアクセスできない。
【００５０】
よって、構成は、例えばマルチプロセッサファブリックの部分を保護するためにマルチプロセッサファブリック内の多様な通信経路を無効にすることができる。例えば、構成は、マルチプロセッサファブリックの部分を保護し、マルチプロセッサファブリックの残りにセキュリティ機能を提供できるようにしてよい。別の例として、マルチプロセッサファブリックの隔離された部分又は制限された部分は、マルチプロセッサファブリックの他の部分（例えば、マルチプロセッサファブリックの他の部分で実行している潜在的に悪意がある可能性がある他のソフトウェア）からの不正操作から安全である必要がある重要な機能を実行するために使用され得る。一実施形態では、構成は、マルチプロセッサファブリックの第１の部分がマルチプロセッサファブリックの残りにデータを提出することができるが、データを受け取ることができないよう指定してよい。別法として、その部分に対する入力データは、ポートの特定のサブセットに制限されてよく、（例えば、マルチプロセッサファブリックの隔離された部分で実行している）安全な方法に従って処理又は分析されてよい。構成は、例えば、所望されるように、ファブリック及び／又はファブリック上で実行しているソフトウェアのセキュリティを高めるために、マルチプロセッサファブリック内のさまざまなバリアのいずれかを指定してよい。更に、構成は、後述される手段のような他のセキュリティ手段を指定してよいことも留意されたい。よって、構成は、図７及び図８に説明されるような通信経路の無効化を指定してよいが、追加のセキュリティ手段も指定してよい。
【００５１】
構成は、さまざまな方法に従って受け取られてよい。例えば、構成は、マルチプロセッサファブリック又はマルチプロセッサファブリックを含むシステムのブートプロセスの間に受け取られてよい。より詳細には、一実施形態では、構成は、読取専用メモリ又は不揮発性メモリ等の安全なメモリに記憶されてよい。代わりに又は更に、構成（又は構成を含む画像／メモリ）は、セキュリティ手段（例えば、他の多様な可能性の中で、画像のハッシュを予想されるハッシュに比較すること）を使用して検証されてよい及び／又は認証されてよい。代わりに又は更に、構成（又は構成を含む画像／メモリ）は暗号化された形式で記憶されてよく、それが受け取られるときに復号されてよい。別の実施形態では、構成はホストシステム（例えば、タスクを実行するためのソフトウェア及び／又はマルチプロセッサシステムの動作を試験する間に、例えば図１に示すようなコンピュータシステム）から受け取られてよい。
【００５２】
いくつかの実施形態では、構成は、マイクロプロセッサシステム上での実行用のソフトウェアを含んでよい又はソフトウェアと併せて使用されてよい。例えば、構成は、上述のように検証され、認証され及び／又は復号されてよいパッケージの一部として受け取られてよい。従って、構成は、マルチプロセッサファブリックの第１の部分のために隔離又はセキュリティゼーションを指定してよく、検証済みのソフトウェアがその第１の部分に配備されてよい。よって、一実施形態では、その第１の部分のためのハードウェア／ソフトウェア組合せは、構成を介して保護され得る。
【００５３】
それに応じて、７０４で、マルチプロセッサファブリックは、例えば、構成によって指定される通信経路を無効にするように、構成に従ってハードウェア内で自動的に構成されてよい。従って、マルチプロセッサファブリックは、構成に従ってソフトウェアアプリケーション（又はアプリケーションの部分）を実行するように構成されてよい。一実施形態では、構成することは、１つ若しくは複数のプロセッサ及び／又は１つ若しくは複数の通信要素に対応するレジスタ値を設定して、その構成によって指定される通信経路を無効にすることを含んでよい。一実施形態では、構成後、無効にされた通信経路は、ソフトウェアを介して回復可能であってはならない。
【００５４】
７０６で、マルチプロセッサファブリックは、例えば、構成を使用して１つ又は複数のソフトウェアアプリケーションを実行する等、動作してよい。例えば、マルチプロセッサファブリックの第１の部分が保護される、つまり上記の構成を介してマルチプロセッサファブリックの別の部分から隔離される場合、第１の部分は動作を通して保護又は隔離されたままとなってよい。一実施形態では、上記に説明された方法は、システムを保護するために実行されてよく、システムがリセットされる（例えば、リブートされる又は電源が切られる）まで「閉じ込め」られる、つまり保護されてよい。よって、一実施形態では、システムは上記で受け取られた構成を使用して静的に保護されてよい。
【００５５】
この方法に関する追加の詳細は、例えば「バリア」及び／又は他のセキュリティ動作の作成に関して以下に提供されることに留意されたい。
【００５６】
図８  −マルチプロセッサシステムで通信を動的に無効にすること
図８は、マルチプロセッサシステムでの通信を無効にするための方法を示す。図６に示す方法は、他の装置の中で上記の図に示すコンピュータシステム又は装置のいずれかと併せて使用され得る。更に詳細には、図７の方法に関して上述した多様な詳細はこの方法に適用されてもよい。ただし、上述の静的な構成の代わりに、マルチプロセッサシステムの構成は、後述されるように動的な方法で実行されてよい。多様な実施形態では、図示した方法要素のいくつかは、示されているのとは異なる順序で並行して実行されてよい又は省略されてよい。追加の方法要素も、所望されるように実行されてよい。図示したように、この方法は以下の通りに動作してよい。
【００５７】
８０２で、マルチプロセッサシステム又はファブリックのための第１の構成は、例えば自動的に受け取られてよい。上記と同様に、第１の構成は、例えばマルチプロセッサシステム及び／又はマルチプロセッサシステム上で実行中のソフトウェアにセキュリティを提供するために、プロセッサ及び／又は通信要素の内の１つ又は複数の間の通信経路の無効化を指定してよい。ただし、第１の構成は、他の可能性の中で、後述される手段等の他のセキュリティ手段も指定してよい。
【００５８】
上述のように、第１の構成は、マイクロプロセッサシステム上での実行用のソフトウェアを含んでよい又はソフトウェアと併せて使用されてよい。例えば、第１の構成は、例えば上述のように検証されてよいパッケージの一部として受け取られてよい。従って、構成は、マルチプロセッサファブリックの第１の部分のために隔離又はセキュリティゼーションを指定してよく、検証済みのソフトウェアが少なくともその第１の部分に配備されてよい。よって、一実施形態では、その第１の部分のためのハードウェア／ソフトウェア組合せは、構成を介して保護され得る。
【００５９】
第１の構成は、さまざまな方法に従って受け取られてよい。例えば、第１の構成は、マルチプロセッサファブリック又はマルチプロセッサファブリックを含むシステムのブートプロセスの間に受け取られてよい。一実施形態では、第１の構成は、ブート時に自動的にロードされる読取専用メモリ又は不揮発性メモリ等の安全なメモリに記憶されてよい。代わりに又は更に、構成（又は、構成を含む画像／メモリ）はセキュリティ手段（例えば、他の多様な可能性の中で、画像のハッシュを予想されるハッシュに比較すること）を使用して検証されてよい及び／又は認証されてよい。代わりに又は更に、構成（又は構成を含む画像／メモリ）は、暗号化された形式で記憶されてよく、それが受け取られるときに復号されてよい。従って、構成及び／又はソフトウェアは、読み取られるだけではなくむしろ多様なセキュリティ手段を使用して検証され、認証され、及び／又は復号されてよい。
【００６０】
上記７０４と同様に、８０４で、マルチプロセッサファブリックは、例えば、構成によって指定される通信経路を無効にするように、構成に従ってハードウェア内で自動的に構成されてよい。従って、マルチプロセッサファブリックは、構成に従ってソフトウェアアプリケーション（又はアプリケーションの部分）を実行するように構成されてよい。
【００６１】
８０６で、上記７０６と同様に、マルチプロセッサファブリックは、例えば、構成を使用して１つ又は複数のソフトウェアアプリケーションを実行する等、動作してよい。例えば、マルチプロセッサファブリックの第１の部分が保護される、つまり上記の構成を介してマルチプロセッサファブリックの別の部分から隔離される場合、第１の部分は動作を通して保護又は隔離されたままとなってよい。
【００６２】
いくつかの実施形態では、８０８において、図７の方法（７０２から７０６）は、例えばマルチプロセッサファブリックの動作中に動的に、複数回実行されてよい。例えば、第１の構成は、認証されたコードを実行するマルチプロセッサシステムの安全な部分でシステムを構成するために使用されてよい。一実施形態では、認証されたコードは、動作を通して使用されてよい複数の構成又は構成に対する修正を含んでよい。例えば、第２の構成は、認証されたコードから受け取られてよく、上述の自動的な構成は、第２の構成のために実行されてよい。この例では、初期構成は、システムが適切に保護されており、コードが適切に検証されていることを保証し得る。従って、追加の再構成及びその追加の再構成を含むコードから生じる動作は、マルチプロセッサシステムの動作を通して安全であり続けてよい。この別のやり方でいったん構成されると、マルチプロセッサシステムで実行中のコードは、実行中にマルチプロセッサシステムを動的に再構成できることがある。初期ソフトウェアが検証され、安全であると仮定すると、従って、マルチプロセッサシステムの動作は安全なままとなることができる。
【００６３】
マルチプロセッサシステムを保護するための例示的な詳細
以下に、上述の詳細のような、マルチプロセッサシステムを保護するための例示的な詳細を示す。これらの詳細は単なる例として示され、本明細書に説明される実施形態の範囲を制限することを意図していない。以下の説明は、図９から図１５に対応する。
【００６４】
層化された、つまり段階的な開発と検証のプロセスは、ソフトウェアと、ソフトウェアによって定義可能なハードウェア一式を活用して、例えば、アドレス指定、サードパーティＩＰ保護、セキュアブート、デジタル著作権管理（ＤＲＭ）、及びセキュア処理（レッド／ブラック）等の、実証可能な安全な（正式な方法によって含む）情報セキュリティのソリューションを作成してよい。
【００６５】
本明細書に説明される実施形態は、層化されたつまり段階的な開発と検証プロセスを通して実証可能な安全な情報セキュリティソリューションを作成するために単一のフレームワークを提供してよい。このプロセスは、部分的に、ソフトウェアＩＰを保護するために、及び例えば単一の金型上でブラック／レッドの処理を実行するために使用されてよい。
【００６６】
上記説明と同様に、本発明の実施形態は、ハードウェアによって施行されたファブリック内での隔離ゾーン／セキュリティゾーンの物理的な分離を実現してよい。例えば、図９は、例えば図７及び図８に関して上述されるように、無効にされてよいポートだけではなく、例示的な処理リソース及びＤＭＲも示している。データ及び制御の流れを停止し、プロセッサマイクロアーキテクチャの領域／パーティションの隔離、及び領域／パーティション間の隔離を提供してよい、隔離／セキュリティバリアをハードウェア内に組み立てることができる。バリアは、ある特定のプロセス又はユーザと関連付けられる処理、メモリ、及び通信のリソースをカプセル化するセキュリティパーティションを作成するために使用できる。バリアは、１つ又は複数の制御されたアクセスポイントを有することがある。バリアは複数のチップに及ぶことがあるが、通常は単一チップの内部に制約されて、チップ間のプロービング（特殊モジュールパッケージングは、かかるプロービングに対する保護を提供できる）を回避する。
【００６７】
更に、セキュリティのための高性能処理が、あらゆる処理コアで利用可能であってよい。これは、（１）ＲＳＡキー生成（非対称）、（２）乱数発生、（３）ハッシュ生成、（４）暗号化と復号、および（５）ＲＳＡキー（及び他のデータ）記憶を含むが、これらに限られない。
【００６８】
ＳＤＳ２システムは、貴重な情報又は機密情報（データ又はソフトウェア）が、記憶されている間及びある場所から別の場所に通信される間の両方において、貴重な情報又は機密情報を盗難又は不正操作から保護するために、プロセスを通して設計者／開発者を導いてよい。同時に貴重な情報は、許可ユーザが最も少ない量のオーバヘッドで利用できる必要がある。矛盾することもあるこれらの要求は、（ハードウェアによって支援され、ソフトウェアによって定義される）プロトコル、アプリケーションソフトウェア、及びハードウェア機能、ならびにオペレータのトレーニングを統合する情報セキュリティシステムによって達成されてよい。ＳＤＳ２システムは、セキュリティソリューションを可能にするための誘導開発プロセスを通じたソフトウェアの制御下で、ソフトウェアによってプログラム可能なハードウェア機能に対するこの層間ソフトウェアスタック（プロトコル、アプリケーション、ソフトウェア他）開発手法を提供してよい。以下の項で、システムの例示的な実施形態を更に詳細に説明する。
【００６９】
情報セキュリティのための関連付けられたツールボックス
情報が安全な処理を実現するために必要とされることがあるいくつかの概念がある。以下の副項は、情報セキュリティの概念のためのツールボックスのいくつかを説明する。
【００７０】
プログラム可能な物理隔離と論理隔離
セキュリティバリアは、それに対するアクセスがバリアの内部で制御される物理的な隔離／バリア又は論理的な隔離／バリアを通して、チップの断面を保護し、検証する能力を提供してよい。これによって、保護されていないエージェントによる外部アクセスを妨げるように、チップ上に常駐し、チップ上で実行するために復号されたコード及びデータが可能になる。それは、チップリセット時、電源投入時、又はセキュリティ違反時にメモリをクリアすること、もしくはこれらの事象の発生時に保護されているデータの周辺に同じ安全なウォールを構築し直すことをサポートし、よって保護されたコード／データが、装置へのプログラミングアクセスが認証されていないだれかによるアクセスのための安全ではない領域に決して残されないことを保証できる。
【００７１】
キーの生成と管理
キーの生成と管理は、システムレベルで認証されていないユーザが読み取る又は修正することができない揮発性メモリ又は不揮発性メモリ内のチップ上に復号キーを記憶することを含んでよい。キーの生成と管理は、システムインテグレータが生産時にこれらのキーを作成又はロードし、それらを保護する能力を提供してよい。再プログラミングを行わずに安全な記憶域内にこれらのキーを恒久的にロックするための、又はこれらのキーが一時的にロックされ、後に認証された安全なユーザによって修正できるようにするための方法が提供されてよい。本明細書の説明では、ワンタイムプログラマブル（ＯＴＰ）タイプのメモリ、つまりハードウェア又はハードウェアリング発振器に基づいた乱数発生器（ＲＮＧ）の物理特性に基づいて、適切な反復可能な一意のエントロピーを生成できる、物理的にクローン不可能な機能（ＰＵＦ）に基づいた乱数発生が、追加説明のための詳細が必要な場合の参考資料として参照される。乱数発生は、両方のハードウェアで、及びソフトウェアを通してサポートされてよい。
【００７２】
暗号化と復号
コードとデータの両方とも、暗号化されたストリームでチップ上にロードし、使用するためにチップ上で復号することができる。コードとデータはいったん復号されると、チップリセット後でも外部からのアクセス又は修正から保護できる。これは、ハードウェアエンジンを通して行うことができるが、完全ソフトウェア定義を維持するために、プログラマブルブート機構を通してロードされるソフトウェアエンジンが使用できる。これによって、実装はハードウェア支援ソフトウェアモデル方法論との一貫性を保つ。
【００７３】
認証
ある種の公開キータイプ情報（例えば、ソフトウェアキー、ハードウェアキー、バイオメトリック情報等）を提供することによって、保護されているコードを使用して、ユーザを認証して、既存のプログラミングを使用する、又はより高いセキュリティレベルでそれを修正することのどちらかを可能にできる。これは、プログラマブルブートを通してアクセス可能なソフトウェア実装又はハードウェア実装となることがある。この機能は、例えばデジタル著作権管理機能性を実装するために使用できる。
【００７４】
（セキュア及びノンセキュアをサポートする）プログラマブルブート
セキュアブートは、チップ（及びシステム）が完全に保護され、守られるようにチップ（及びシステム）を起動するためのカスタマイズ可能でソフトウェアによって定義可能なブートシーケンスを提供する。いったんセキュアブートが有効になると、チップのピンに対する物理的なアクセスは可能ではなくなることがある。チップ上又は（チップ上にロードする）システム内の保護されているコード又はデータのアクセス及び変更には認証が必要となることがある。システムリセット又は出力サイクルによって、チップはこのモードを実行し、いずれのユーザレベルのアクセスも許可される前にすべての必要とされるコード及びデータを保護する。ブートコードを恒久的にロックできる又は認証されたユーザによって変更できるモードをプログラミングすることができる。
【００７５】
図１１Ａ及び図１１Ｂは、セキュアブートシステムの例示的な全体ブロック図を示す。これらの図から、提供される基本的なセキュリティブロック、及びセキュリティブロックがどのようにして他のチップハードウェアに接続するのかを見ることができる。この設計は、セキュアブートコードを処理する上で使用するためのメモリバッファとしてＤＭＲ内で利用可能なメモリを使用してよい。この機能性により、ＰＥは、ミッションモードで提供されたハードウェアブロックによって暗号化、復号、署名、又は認証できるデータをバッファに入れるためのＤＭＲを使用することもできる。更に、メモリバッファは、メモリ内にシリアルバスコマンドシーケンスをセットアップして、シリアルバスコントローラに対してＤＭＲ内のＤＭＲチャネルを介して送信する際に使用できる。このプロセスはこれらの機能を必要とするアルゴリズムの全体的な効率を改善し、ＤＭＡの使用は、他の重大な処理タスクのためにＰＥを解放できる。図１１Ｂは、やはり図示した何らかのマイナー制御がある例示的なデータフローを示す。
【００７６】
更に詳しくは、図１１Ａ及び図１１Ｂは、ＨｙｐｅｒＸ高度セキュリティブロック図を示す。この図では、詳細に描写されているＯＴＰのいくつかの異なる用途があることに留意されたい。アーキテクチャの観点から、これらのメモリは、特定の実装のニーズに応じて、サイズと数の両方で異なる構成となることができる。メインメモリ（プログラム記憶)は、図示したグループの内で最大である。これに加えて、一方はユーザ／セキュリティスクラッチパッド用、他方はマルチタイムプログラマブル（ＭＴＰ）エミュレーション用のより小さなメモリがある。これは、エラーを訂正できる、及び／又はキーを修正又は交換できるように、メインメモリを複数のリマップ可能なページに構成するために使用できる。これは、特定のページを恒久的にロックすることができ、他はプログラムによって制御される認証されたユーザがアクセスできるように、プログラム可能ビットを介して構成可能である。これによって、所望される場合のフィールドアップグレード可能なコード／キーだけではなく、要求に応じたセキュリティも可能になる。これらのメモリの機能性及び使用が、使用される異なる不揮発性メモリ技術に基づきわずかに変化することがあることに留意されたい。例えば、ここでは多くの努力及び論理が使用され、ＯＴＰとのマルチタイムプログラム化可能性をエミュレートする。（ＦＬＡＳＨ等の）マルチプログラマブル不揮発性技術の場合には、この努力及び論理は、固有に書き換え可能なメモリのロックに向けてリダイレクトされる。
【００７７】
ＩＯ無効化信号は、セキュリティウォールが構築され、よってピンレベルのセキュリティ保護を不必要にするまで外部からのアクセスが許されないように、セキュアブートプロセスの間チップＩＯを無効に保つために使用される。オプションとして、（いったん安全な部分が完了すると、ブートを外部で続行するために必要とされるＳＰＩピンを除き）ブートプロセスの残りの間もこれをアサートされた（ＩＯ無効にされた）状態に保つ。
【００７８】
ＯＴＰレジスタでサポートされているもう１つの機能は、チップがいったん完全に製造試験されるとフルチップスキャンポートをオフにする能力である。これによって、システムレベルでの追加のセキュリティレベルが実現される。
【００７９】
チップは、例えば適切な機能性のためにいくつかのモードを使用してよい。モードは、図１１Ａ及び図１１Ｂに字視される書き込み可能な不揮発性記憶（ヒューズ）［構成可能］によって制御できる。追加の不揮発性記憶は、バックアップキー（ＢＵＫ）としての使用のために提供されてよい。
【００８０】
ＰＵＦは、ＲＮＧ１回路の欠くことのできない部分であってよい。また、ＰＵＦは、ミッションモードでの乱数のためにアクセスされてもよい。追加の乱数発生器（ＲＮＧ２）も、ミッションモードのために提供される。ＲＮＧ２はＲＮＧ１とは異なるハードウェア設計を有して、例えばハードウェアリング発振器等の代替手法を提供してよい。
【００８１】
揮発性の場合にバッテリバックアップされる（パッケージングオプションを介して提供される）オプションを備える小型ＲＡＭがあることもある。このメモリは、システム構成／プロビジョニング情報のバッテリバックアップされる記憶、任意選択のキー記憶、ＡＣビットの記憶として使用することもできれば、（ＰＥ又は２つをプログラミングするのに十分な）小さいブート動作にとって十分なブートコードも含むこともできる。一実施形態では、このＲＡＭは、不正操作が検出されると帰零できる。
【００８２】
セキュアブート制御部は状態機械制御を提供して、セキュアブートハードウェアを初期化し、セキュアブートシーケンスを実行してよい。セキュアブート制御部は制御も提供して、ＩＰブロックの操作モードを構成し、構成可能なハードウェア設定値に基づいてそれらのブロックを有効にする／無効にすることもできる。
【００８３】
不正操作検出
（別の又は別個のものと多重化される）不正操作検出入力は、不正操作が検出されたことを信号で知らせてよい。これは、所望される機能であることを信号で知らせるために、チップ内部で使用されてよい。ユーザプログラミングに基づき、それは、メモリ（又は確定できない状態にされたメモリ）の「帰零」を引き起こし、任意選択でブートモードを、セキュアコードがもはやＯＴＰから読み取られず、よって装置がオンボードセキュアコードに関して機能しなくなる状態に変換できる。この時点で、セキュアコードを見る唯一の方法は、使用のために選ばれる不揮発性メモリの安全な性質によって純粋に制御され得るビット位置を物理的に読み取ることである場合がある。他の機能は、プログラム制御を介してこの信号で有効又は無効にされてよい。このピンに加えて、パッケージの蓋も、取り除かれた場合に不正操作検出を提供してよい。
【００８４】
ソフトウェア開発プロセス
図１０は、ＳＤＳ２方法論及びシステムをサポートする例示的なＨｙｐｅｒＸ開発システムを示す。ソフトウェア開発プロセスは、図１０に示す基本的な機能を基礎としてよく、システム制約は各段階でのセキュリティ要件、選ばれた実装方法（ソフトウェア機能及びハードウェア機能）、保証を証明する正式な方法、完全にプログラム可能かつカスタマイズ可能なセキュリティ開発環境のソリューションを通じた完全なシミュレーション及び試験によってサポートされるシステムの機能性及び性能の検証を識別するために拡張する。
【００８５】
ハードウェア機能を有効にする
ＨｙｐｅｒＸシステムは、ソフトウェアベースのソリューションを含んでよい。従って、セキュリティ実装（バリア、キー管理、認証、復号等）は、このモデルと一貫性があり、このモデルをＨｙｐｅｒＸプラットホーム上で実行中のソフトウェアとして保つように実装されてよい。これによって、考えられるソリューションの小さなサブセットをせいぜい提供できるカスタムハードウェアの設計及び実装が防がれてよい。
【００８６】
ＨｙｐｅｒＸハードウェア／プロセッサは、これらのソフトウェアソリューションを設計し、実装できるようにするハードウェア「フック」を含むことがある。従って、一実施形態では、この設計は、「ハードウェアによって支援されるソフトウェアをベースにした検証可能なセキュリティ」と見なし得る。この設計は、純粋なハードウェアソリューション及びそれに伴うセキュリティに必要な必要とされる必須要素に、固有のセキュリティホールがないソフトウェアソリューションの再構成可能性をもたらし得る。
【００８７】
実施例
ＰＥ＿０＿０（又は特定の処理要素（複数の場合がある））は、セキュリティ実装のための開始点として選択することができる。追加のＰＥ又は異なるＰＥは、設計の意図を変更しないで他の設計考慮事項に基づいて使用するために選択することができる。ワンタイムプログラマブル（ＯＴＰ）タイプのメモリは、プログラミングのためにＰＥ＿０＿及び（ブートコントローラを介して）ＤＡＰによって（デフォルトで）アクセス可能である関連ヌルルータレジスタバスに接続される。これが２つの考えられる読取り／書込み経路であることに留意されたい。これは、設計を２つの経路だけに制限することを意味するのではなく、現在の設計点のために２つ選ばれるだけである。すべての場合、そのアクセスする各経路は、プログラミング構造の内部で個別に保護されてよい。いったんそれがプログラミングされると、ＯＴＰは、それがＰＥ＿０＿０又はＤＡＰによって書き込み可能又は読み取り可能にならないようにロックされてよい。この挙動は、システム設計者によってプログラミングできる。これによって、それは安全な領域として保護され、安全な暗号化されていないコードだけではなく、両方の復号キー（キー暗号化キーつまりＫＥＫ及び暗号化されたマスターキーの両方）もここに記憶できるようになる。ＯＴＰのこのプログラミング及び保護は、ページ単位で行うことができる。ページは、そのセキュリティ情報が構成されるまで、ＰＥ又はブートコントローラによって書き込み、読み取ることができる。これは、ページを正しく検証できるようにする。選択可能なセキュリティビットを書き込むことで、すべてのユーザのために、又は認証されていないユーザだけのために、読取り／書込みアクセスを完全にロックする、又は部分的にロックすることができるようになる。これは、どのページからブートを開始するのかのプログラム可能な値とともに、ＯＴＰの新しいページを使用することによってブートコードを新しいコードで交換できるようにする。
【００８８】
このＯＴＰのプログラミングの前に、チップは通常の動作で機能し、（ピンがそのように構成されている場合）ＳＰＩからブートし、通常のポートを介して並列ブートモードアクセスを可能にする。ＯＰＴがいったんプログラミングされると、次いでリセット時に、チップはすべての並列ポート及びＤＡＰを無効にし、セキュアブートコントローラ論理がオンボードＯＴＰメモリからチップをブートしてよい。このブートは、領域を完全に保護し、チップ上のポートを介してユーザを認証するために使用できる復号エンジンをロードできる。セキュアブート部分の間には外部からのアクセスは許されないことに留意されたい。このため、ピンアクセスは保護を必要としない。いったんその部分が保護されると、ブートは標準ブートコントローラ論理に渡され、ポートはすべて有効にする。ここでノンセキュアコードは正常にロードできる。
【００８９】
セキュアブート部分は完全にプログラム可能であるので、次いでＰＥ＿０＿０を通してブートプロセスの残りを処理する小型の安全な復号エンジンをロードすることもできる。ここで、完全に符号化されたコード及びデータはチップ上にロードされているので、オフチップからロードし、エンジンによって復号することもできる。これによって、小さなＯＴＰから可能であるよりもはるかに大きなチップの部分をセキュアモードで実行できるようになる。
【００９０】
複数のセキュアブート画像がサポートできる。これによって、製造チップは、製造時にいくつかの事前設定されたセキュリティコードをそれらの中にロードさせて、納品されるチップの基本的なセキュリティ機能を向上できるようにする。この機能の１つの考えられる用途が、すべてのメモリ内容が、ユーザレベル（ピン）アクセスが有効にされる前にクリアされるように、リセット時にメモリ「帰零」（つまり、確定できない状態にすること）を提供することである。他の考えられる用途もある。
【００９１】
セキュアブートモードのエミュレーションは、チップ上での現在のＳＰＩポートを通して利用できることがある。エミュレーションは、ＯＴＰをプログラミングする必要なくセキュリティアルゴリズムの立ち上げ及びデバッグをシミュレートするために使用できる。これにより、開発環境は、既存のポートを介してセキュアシステムを完全に試験し、次いでＯＴＰがいったん完全に開発され、デバッグされると、ＯＴＰをプログラミングできるようにしてよい−エミュレーションモード対ＯＴＰモードで実行するために修正をサポートしない。
【００９２】
ＯＴＰをプログラミングするための代替方法は、外部ＤＡＰを介している。このモードと最初に説明された、ＰＥ＿０＿０プログラミングアクセスの方法の両方で、メモリの内の１ページ又は複数ページを保護されないまま残すことができ、暗号化されたキーデータの記憶のためのＰＥ＿０＿０のアクセスを可能にする。ＰＥ＿０＿０とＤＡＰの両方に、読取りアクセス保護及び書込みアクセス保護を個別に選択できる。
【００９３】
以下の機能は、潜在的な使用のケースに基づいて２つの分類で編成される。第１のグループは、主に静的なセキュリティ結果をサポートすることに焦点を当てている。言い換えると、いったん保護された領域は、チップリセット又は出力サイクルが発生するまで効力があるままとなってよい。これは、安全な処理の実装に必要であり、潜在的なアプリケーションのサブセットにとって十分である一方、それはすべてのセキュリティニーズに対する完全なソリューションではない。
【００９４】
第２の領域は、動的なセキュリティバリア、及び／又は静的なセキュリティバリアと動的なセキュリティバリアの組合せをサポートし、より高い層のセキュリティ概念を容易にすることに基づいている。
【００９５】
静的セキュリティバリア
以下の機能、つまりツールは、静的なセキュリティ操作ニーズをサポートするためのベースラインとなる。説明は、以下を明確にするために必要であるとして提供される。
【００９６】
メモリバス設計、セットアップ順序つけ（リセット...）、ＭＴＰエミュレーション、レジスタ仕様（ビット定義）、及び構成ビットのための例の用途及び数
以下の表は、例示的なレジスタ仕様を示す。
【表１】
2013543183.tif 000003
【００９７】
プログラマブルブートシーケンス
これは、プログラミングでブート順序付けを制御する能力である。これはＯＴＰ内のビットで制御できるが、最小設計がＯＴＰなしで実現されなければならない場合、これは、特別なリセット論理を有するいくつかのレジスタビットで制御できる。それは、チップが起動し、そのブートシーケンスを再プログラミングし、次いでそれを再起動できる能力をサポートしてよい。これは、いくつかの安全なエミュレーションがチップ上で不揮発性ビットなしで発生できるようにしてよい。
【００９８】
実装する１つの方法は、ＯＴＰで計画されている表に類似したブートアドレスの表を構築して、異なるブートシーケンスが実行できるようにすることであり、いくつかのシーケンスは、それらがあたかも安全でありＯＴＰから出現したかのように作動し、次いで（このプロセスは、初期化シーケンスをブートして、このすべてを起動させるために使用されるので、アドレス０、ＣＳ０からではないことを除き）「通常の」ブートプロセスに移行できる。
【００９９】
レジスタ場所が書き込まれると、ブートコントローラは、その現在のプログラミングに基づいて再起動してよい。デフォルトで、これはチップリセット時にピンによって制御されるブートと同じブートであってよい。プログラマブルブート部分がプログラミングされている場合、次いでブートはソフトウェアを介してプログラミングされたとおりに進行してよい。これは、セキュアブートエミュレーションだけではなくブートプロセスのかなりのソフトウェア制御も可能にする。
【０１００】
メモリ区分化／アドレス指定
図１２は、例のメモリ区分化／アドレス指定レジスタマップを示す。図１２は、２５６ＫワードのＯＴＰメモリ空間のための例のメモリマップを示す。これらのレジスタは、アドレス０ｘ３００００で開始する。これらはプログラミングを必要とする最初のことであるので、１０ビットポインタレジスタをこれらのレジスタの高位アドレスつまり０ｘ３００に初期化させることには意味がある。
【０１０１】
これらの１８個のアドレスビットは、図示したように、空間の第１の半分及び残りで１２８Ｋのプログラム記憶のための２５６Ｋワードメモリ空間を提供してよい。ＭＴＰエミュレーション部分に１０ビットポインタを使用すると、各ブロックが１２８個の１６ビットワード（１２８ワード＊１０２４ブロック＝１２８Ｋワード）を含む２１０、つまり１０２４ブロックのメモリが提供されてよい。追加の６ビットの制御が各ポインタで使用される場合、次いでそれらは長さ１６ビットであってよく、ＭＴＰ表の中に５１２エントリ用の空間があってよい。
【０１０２】
ＮＲバス上のアドレスの場合、「通常の」アドレス空間内にロードされる１０ビットポイントのレジスタがあってよい。バス上で利用可能な８ビットのアドレスは、ここでアドレスマップの残りに対するオフセットとして使用されてよい。各「ページ」は２５６ワードであってよい。前述されたようにこのポインタを０ｘ３００に初期化すると、初期の拡張されたアドレス指定に、マップのレジスタ空間を与えることができる。
【０１０３】
「通常の」０ｘ１Ｅｘｘメモリ空間で必要とされるすべてのレジスタを有することが可能な場合があり、その場合このマップの拡張された「他のレジスタ」は必要とされないことがある。拡張された空間には、０ｘ１ＤｘｘＮＲバス空間内のＮＲバス上の拡張されたマップを使用してアクセスされてよい。もし、そうであれば、ＯＴＰレジスタは拡張アドレス０ｘ３００００で開始するために移動されなければならない。
【０１０４】
メモリは、一度に３２ビットを読み取り、書き込むタイプであることが期待され、追加のアドレス変換はバスコントローラによって行われてよい。レジスタインタフェースは、まだ決定されなければならず、マップは単にプレースホルダーにすぎない。
【０１０５】
ＩＯ無効化論理
ＩＯ無効化は、ＳＰＩポート用の信号、及び他のすべてのポート用の信号を有する。これがエミュレーションをサポートする。「エミュレーション」ビットがセットされ、ブートがＯＴＰの代わりにオフチップから発生するとき。いったんＯＴＰブートが有効になると、ＳＰＩ無効化はＩＯ無効化の残りをトグルする。
【０１０６】
読取り／書込みロック制御
ＤＡＰとＰＥ＿００＿００制御の両方を含む／サポートする。
【０１０７】
ＮＲバスインタフェース
ＮＲレジスタバスインタフェースは、利用可能な８ビットアドレスバスを有する。ＤＭＲは、これらのすべてのアドレスを０ｘ１Ｅｘｘ空間の中にマップする。プログラマブルブート用のブートコントローラへの拡張のために使用するための０ｘ４０から０ｘＦＦへのマップ全体だけではなく、必要に応じてそのスペース内にもいくつかのホールがある。ＮＲレジスタバスを介してバンク内の新しいメモリにアクセスするために使用するための利用可能な２５ワード（８ビット）の連続アドレス空間が必要である。これを行うために、０ｘ１Ｄ００から０ｘ１ＤＦＦの空間を活用してよい。この部分のための１Ｅから１Ｄは、これらがＯＴＰメモリトランザクションであることをハードウェアに信号で知らせることができる。
【０１０８】
新しいレジスタからの１０ビットバンクアドレスと連結されたＮＲバスから８ビットアドレスを使用すると、必要に応じて２５８Ｋワード空間にアクセスできる１８ビットメモリアドレスがあることがある（メモリアドレスマップに関する項を参照）。このバンクレジスタは、現在のバンクポインタ値がどうであれ、アクセスを提供するために、０ｘ１Ｅｘｘ空間内に常駐してよい。
【０１０９】
コマンド
コマンド、つまりＮＲ、ＳＢ、及びＤＡＰ等は、ブート機能をサポートするためのものである。コマンドの型は、ＮＲｃｍｄｓ、ＳＢｃｍｄｓ、ＤＡＰｃｍｄｓを含む。
【０１１０】
ＯＴＰのためのセキュリティ／ロック
不正操作検出及びアクション
不正操作検出は、メモリを帰零し、ブート、動作等を停止するためのアクションをサポートする。
【０１１１】
ＯＴＰ出力オプション
ＯＴＰ部は、ＯＴＰが機能せず、依然として安全ではないブートモードでチップを使用する場合に遮断できる。
【０１１２】
セキュアブートエミュレーション
セキュアブートモードは、標準ブートモードを使用してエミュレートされる。これによって、コードを非常に限られた再プログラム可能ＯＰＴメモリの中にプログラムし、セキュアブートを最終化する前に、プログラム全体を開発システム上で開発し、デバッグすることが可能になる。
【０１１３】
ハードウェアＲＮＧサポート
ハードウェアでサポートされている真の乱数発生器（ＲＮＧ）は、高いセキュリティレベルを提供する。キー生成も提供される。
【０１１４】
オンチップセキュリティバリア-作成及び検証
フルスキャンの無効化
構成レジスタ（ＯＴＰ）内のビットは、それをセキュアモードで無効にできるようにチップのフルスキャン機能性を制御する。
【０１１５】
上部金属での不正操作信号（複数の場合がある）
破壊されると不正操作を信号で知らせ、安全な機能性を無効にする（チップはデフォルト３１００モードである）上層金属内で送られる信号があるチップ上の不正操作ピン。つまりセキュアコードを見る唯一の方法はＯＴＰ内のビットを物理的に読み取ることである。存在する場合、「帰零」コードにセットアップされてもよい。
【０１１６】
パッケージ不正操作信号
プログラム可能であり、従ってパッケージ蓋が取り除かれると、やはり不正操作が信号で知らされ、必要な無効化が行われる（他の不正操作情報を参照すること）。
【０１１７】
メモリの帰零
ブートコードのある部分を強制的に常に実行させ、何か他のことが起こる前にメインチップメモリのすべてをゼロにする能力（複数のブートシーケンスを使用する）を提供する。この機能は、他の目的にも使用できる。
【０１１８】
不正操作処理
ＯＴＰ内での構成ビットの一部としてプログラマ制御を通してのものである。
【０１１９】
セキュアブート論理を完全に無効にし、チップを恒久的に安全ではないチップにする。すべてのセキュアブートコードの再ロードを矯正する（検出され、読み取られるようにシリアルバス上にそれを置く）、帰零コードを実行して、すべての動的メモリをゼロにする。
【０１２０】
フィールド再プログラム化可能性
万一システム設計者がこの機能性を有効にしたい場合に、フィル度での装置の再プログラム化をサポートする。これは、説明された認証技法を通して制御できる。
【０１２１】
スクラッチパッドキー記憶
任意による読取り／書込みアクセスからデータを保護するが、認証されたユーザによって制御されるプロセッサを保護するスクラッチパッドＯＴＰ領域をサポートする。
【０１２２】
ページモードＯＴＰアクセス
ＪＴＡＧ
ＪＴＡＧは、アクセスを獲得して、チップ上でセキュリティを無効にするために使用できないことがある。又は、ＪＴＡＧは完全に無効にすることができる。
【０１２３】
ソフトウェア不正操作信号
ソフトウェアが、アクションを講じることができるようにセキュアブートコントローラに「不正操作」を信号で知らせることができる方法を提供する。各不正操作信号は、プログラム可能なアクションで個別に選択可能である（不正操作のタイプの重大性に基づいて、異なるセキュリティレベル）。
【０１２４】
部分リセット
セキュリティのある、及びセキュリティのないチップの部分的なリセットをサポートする。例示したものは、動的に出力可能な四分円である。
【０１２５】
動的セキュリティバリア
以下の機能、つまりツールは、動的なセキュリティ操作ニーズのサポートに対する焦点を与える（サポートに焦点を当てる）。説明は、明確にするために必要であるとして提供される。
【０１２６】
動的バリア
チップの実行中に、バリアを移動する、取り除く、構築する、又はそれ以外の場合修正することを可能にするための方法。これは、より多くのＯＳタイプの動作を可能にする。
【０１２７】
信頼された（安全な）プロセッサ
実行中のプロセッサが信頼できるものであると宣言し、その命令を、セキュリティパーティション修正のような、信頼されていないプロセッサが行うことができないことに対するアクセスを可能にするいずれの種類の「監督者」モードで実行させるように、実行中のプロセッサにマークを付ける方法。ＰＥを信頼されているとマークするセキュアトークンを（プログラム制御下で）ＰＥに送る能力を有するセキュアブート完了によるもの含む、これを行う多くの方法。
【０１２８】
実行時セキュアブート
何らかの種類のセキュリティ侵害（不正操作又は他）が検出される（又は単にソフトウェア制御下）の場合に、セキュアブートコードを再実行してチップのその部分を保護し直す方法を提供する。これには、おそらく動的バリアと同じ論理の多くが必要となる。
【０１２９】
不正操作可視コード
ブートコード（内部と外部両方）がコードに対して変更が発生したかどうかを識別できる方法を提供する。方法は、次いでブートがエラーなしで完了しているかどうか等を信号で知らせる。
【０１３０】
信頼されたＳＢコマンド
安全な領域を再プログラミングするためには、１つの方法は、信頼／セキュアコマンドモードでシリアルバスを使用することである。これは、実行時／動的再構成のためのセキュリティ設定値のリアルタイム編集を可能にする。これは、信頼されているプロセッサによってだけ発行されることが意図される。ＤＡＰ／ＳＰＩ（外部）コマンドは、この例では信頼されていない。
【０１３１】
セキュアコードセグメント
コードセグメントに、それがチップの安全な領域内で安全な／信頼されたプロセッサ上でのみ実行できると述べるマークを何らかの形で付けるという考え。
【０１３２】
ＳＢセキュリティサポート
マルチキャスト／マルチオープン／一斉送信タイプの機能性をサポートして、コードのより効率的な帰零を提供する方法。シリアルバスを使用できる。すべてのメモリは、一度に書き込むために開くことができ、ゼロは一度に送信できる。シーケンス例としては、以下のものがある：すべてを開く、４Ｋブロックの９をＤＭに送信する、２Ｋブロックの０をＩＭに送信する、すべてを閉じる。これは、５００ＭＨｚで発生するのに約２１０マイクロ秒を要する。
【０１３３】
ブートのソフトウェア制御
これは、安全な／信頼されるプロセッサに、ブートフローを制御する能力を与える。さまざまなレベルのセキュリティが、きわめて高いレベルの認証に基づいたフィールド修正を可能にする目的でサポートされる、２つ以上のレベルのブートプロセスを可能にする。複数の暗号化／復号レベル等を提供できる。
【０１３４】
ブートＪＭＰ命令
ブートコントローラが新しいアドレスにジャンプして、ロードを続行できるようにする。マルチ／セキュアブートコードのいくつかの効率を改善する。
【０１３５】
他の不揮発性メモリ（例えば、ＦＬＡＳＨ）
豊富な潜在的な用途
セキュリティアルゴリズム加速
並列性がセキュリティアルゴリズムのいくつかの態様の犠牲とならない場合に、根本的なレベルで追加の加速を提供する。
【０１３６】
コードバリデーション
コードが不正操作されていない、又はブートロード中に間違いがなかったことを確証できる、（ハードウェア内での）コードロード中の処理をサポートする方法（チェックサム、ハッシュアルゴリズム、又は何か同様のもの）。
【０１３７】
シリアルバス硬化
セキュアブートプロセスをより安全にする方法。例は、シリアルバス論理の部分を複製し、通常のプログラミング切り替えの「ネゲート」バージョンを発生させ、よってパワーフットプリントを分かりにくくし、オフチップからのプログラミングを検知するのを更に困難にする。方法は、安全ではないアプリケーションでは節電するためにオフにすることができ、機能によって提供されるセキュリティに関して容易なバリデーションを可能にする。他の例は、シリアルバスを広げること等を含む。
【０１３８】
例示的な使用状況
サードパーティＩＰ保護
ＩＰ所有者の所有権とＩＰの機密性の両方を保護する一方で、サードパーティ知的所有権（ＩＰ）アプリケーションを開発し、ＨｙｐｅｒＸハードウェアを使用するシステム開発者に販売できるように機構を提供するニーズがある。ニーズがある場合がある、かかるシステムに対する２つの主要な要件は、ＩＰの購入者によるシステムソフトウェア開発中にＩＰをシミュレーションする方法、及び（例えば実行時にだけ、及びライセンストークンに基づいた実行制御で復号される暗号化されたバイナリを通して）アクセスを保護しつつも、ＩＰを送達し、認証された実行中のシステム内にインストールする方法である。
【０１３９】
上記に概略された機能を使用する３つの潜在的な状況が以下の副項に説明される。他の潜在的なモデルが存在することもある。目標は、ハードウェアフック及びソフトウェアプログラム化可能性がすべての領域での革新を可能にすることである。これらの３つの状況の差は、どのようにして開発シミュレーションが実行されるのかにある。
【０１４０】
ハードウェアベースの協調シミュレーション
この状況の場合、ＩＰは、ＨｙｐｅｒＸチップの不揮発性メモリの中に事前にプログラミングされて送達される、又はシステム／ソフトウェア開発者に対するファイルで暗号化されたバイナリ形式で提供される。
【０１４１】
事前にプログラミングされるケースの場合、ＩＰは、それをチップから読み取ることができないように、チップの部分の中にブートし、チップの部分を保護してよい。ブロックのインタフェースは、ＨｙｐｅｒＸ ＩＰポートに拡張され、保護されたＩＰがロードされた後にシミュレータによってロードできる追加のブートコードを通してシミュレータにアクセス可能にされる。シミュレータは、ここで基板上のハードウェアインタフェースを通してＩＰブロックに対して呼び出しを接続する一方で、シミュレーションで開発者コードを実行する。これは、ＩＰのユーザがファイル形式でバイナリのコピーを絶対に有することがないようにＩＰを保護する方法となる。
【０１４２】
第２の方法の場合、ＩＰは暗号化されたバイナリ形式で送達される。「標準的な」復号エンジンは、以前にＨｙｐｅｒＸにプログラミングされてよく、キーはＩＰユーザに提供されてよい。ＩＰはロードされ、ソフトウェア復号エンジン及びその提供されたキーを使用して復号できる。同じ方法は、チップＩＰに対するインタフェースを拡張し、シミュレータの中に接続するために使用される。これには、使用のために標準復号エンジン又はカスタム復号エンジンのどちらかを開発するためにＣｏｈｅｒｅｎｔ ＬｏｇｉｘとＩＰプロバイダとの間のやや多くの開発及び協力が必要となる。
【０１４３】
この協調シミュレーションの状況は、協調シミュレーションをサポートする開発システムのハードウェア上でのインタフェースのソケット層の定義を除き、既存のシミュレーション環境に対する変更をほとんど必要としない保護されたＩＰを使用して開発する方法となる。ただし、それはすべてのシミュレーションに対する開発システムハードウェアの使用を必要とする。
【０１４４】
両方の方法の場合、いったんシステム開発が完了されると、開発のために使用された同じＩＰバイナリが、追加の協調シミュレーションラッパを使用せずにシステムの製作のために使用される。これは、システムが機能し得るというきわめて高い信頼性を提供する。
【０１４５】
ソフトウェア専用シミュレーション
この状況の場合、ＩＰは、協調シミュレーションバージョンについて上述したものとほぼ同じように製作のために送達される。ただし、開発中のシミュレーションの場合、暗号化されたシミュレーションバイナリ（依然として同じものを使用することが可能である可能性がある）が提供される。シミュレータは、シミュレーションの間このＩＰを復号し、保護することをサポートする。保護は、まさにチップのようにシミュレータ内で有効にされて、いったん復号され、ロードされたＩＰコード内でのダンピング、逆アセンブリ、トレーシング、ブレイクポイント等を防ぐ。復号されたコードは、安全ではない領域に絶対に常駐してはならない。
【０１４６】
この方法は、開発システムハードウェアを使用しないシミュレーションを提供する。
【０１４７】
アプリケーションコード分散
これらの状況下では、暗号化されたバイナリファイルはＩＰにとって主要な送達機構であり、ＩＰの機密性及び認証の要件を維持しつつ、この暗号化されたバイナリ画像をアプリケーションコードオブジェクトファイルの中にリンクさせる方法がある場合がある。これらの方法は、同じオブジェクトファイル（及び１つのＩＰモジュールが別のＩＰモジュールに基づいている場合、おそらくネスト化されたＩＰ）の中の複数のベンダからＩＰモジュールをサポートする必要がある場合がある。システム内のＨｙｐｅｒＸプロセッサのブートシーケンスは、前の項に説明されるシミュレーション中に使用される同じキーを使用して復号及び認証のプロセスを処理してよい。これらのキーは、ＤＲＭに関する以下の項に説明されるように、オンチップで記憶できる。
【０１４８】
セキュアブート
ＨｙｐｅｒＸのあらゆるピン上で暗号化されていない形式でブートストリームを読み取ることができないシステムをブートする方法が必要がある場合がある。これは、プログラマブルブートを通して実行される。この機能を用いると、コードは、チップのピンを完全に無効にした状態でブート時にロードできる。いったんロードされると、コードはその周りに提供されたハードウェアフックを用いてセキュリティバリアを構築することによって保護できる。平文ビットストリームは、いったんアレイ内でその周りにセキュアバリアが形成されると装置のピン上に絶対に存在し得ず、読み直すこともできない。保護された領域の中へのアクセス及び保護された領域の中からのアクセスは、セキュリティバリアの内部でのプログラミングによって完全に制御できる。
【０１４９】
いくつかの使用ケースの場合、プログラム全体がチップ上の不揮発性メモリ内に適合できることが考えられる。これが十分ではない場合、ブート時に簡略な復号エンジンをロードできる。このエンジンは公開キー及び暗号化されたバイナリとともに使用して、より大きなプログラム画像でチップをロードできる。これは、実際のチッププログラミングがオフチップであるが、暗号化された形式だけで常駐する場合にセキュアブートのための機構となる。
【０１５０】
プログラミングを更に保護するために、プログラマブルブート機能性とともに使用して、保護されているコードをメモリから削除させ、新しいブートを介して再保護させる、又は極端なケースでは、単にチップを完全に機能しなくさせることができる不正操作検出が提供される。これは、不揮発性レジスタビットを介してシステムをプログラミングするときに完全にシステムプログラマの制御下にある。
【０１５１】
例示的なセキュアブート（例えば、図１１Ａ及び図１１Ｂに対応）
チップは、構成可能なプログラミング又はセキュアブートエミュレーションモードを介してセキュアブートのために構成され得る。セキュアブートのために使用されるデータは、オフチップＦＬＡＳＨからであってよい。
【０１５２】
（認証と復号の両方を使用する）セキュアブートプロセスは、以下のとおりである。
【０１５３】
１）ブートコントローラは、ＳＰＩを使用してＦＬＡＳＨからアクティベーションコード（ＡＣ）をロードするように構成される。任意選択で、ブートコントローラは、バッテリバックアップされたＲＡＭからＡＣをロードするように構成できる。
【０１５４】
２）このＡＣはＡＣＩバス上のＰＵＦハードウェアに送られ、そこで使用されて、ＫＯバスを介した復号及び認証で使用するためのＡＥＳ／ＧＣＭエンジンに送られるセキュアキーを再生する。ＰＵＦがＡＣを認証しない場合、ブートは失敗し、処理は休止することがある。これは、ソフトウェア不正操作検出とみなされ、この不正操作に選択されるアクションが実行されることがある。ＰＵＦはセキュアキー材料の１つのソースである。ＡＣを使用するＰＵＦによって提供されるキーの代わりに、バッテリバックアップされたＳＲＡＭ又はｅＦＵＳＥアレイに記憶されているキーを使用するようにハードウェアを構成することも可能である。これらのオンチップキーは、セキュアキーの更に別のバージョンのためにＰＵＦからのキーで排他的論理和を取ってもよい。
【０１５５】
３）ブートストリームの開始は、（使用されている場合）ＡＣに続くか、又は選択されたブート記憶の始まりで開始するかのどちらかであり、ブートコントローラはここで第１の暗号化され、署名されたデータストリームセグメントのロードを開始する。ソースはオフチップフラッシュ又はオンチップソースとなるように選択可能である。安全であるためには、コントローラは一度に１つずつセグメントをロードし、復号し、セグメントが、認証されるまで装置メモリをプログラミングするために使用できないようにＤＭＲメモリバッファ内にセグメントを記憶する。
【０１５６】
４）フラッシュ又はバッテリバックアップされたＲＡＭからのストリームは、認証のために復号及びハッシュ生成に適切なブロックサイズでＡＥＳ／ＧＣＭエンジンに直接送られる。
【０１５７】
５）ＡＥＳエンジンはセグメント内の各ブロックを復号し、現在のＤＭＲメモリバッファにそれを記憶してよい。セグメント再順序付けを防ぐために、各セグメント内の第１のコマンドがシーケンス番号コマンドを含んでよい。ＤＭＲバッファに移動する代わりに、このコマンドは制御に送られて、すべてのセグメントが順番にロードされることを保証する。順序を外れたセグメントが検出されると、ブートは失敗し、ソフトウェア不正操作が信号で知らされることがある。
【０１５８】
６）並行して、ＡＥＳ／ＧＣＭエンジンは、ブロックのシーケンスのためにシグナチャハッシュを構築し直してよい。シーケンスが終了すると、最終的なハッシュを、ブートセグメントの最後に提供されるシグナチャと比較する。
【０１５９】
７）シグナチャが一致する場合、このセグメントは認証され、制御がＤＭＡをセットアップして、装置のプログラミングのためにコマンドのこのストリームをシリアルバスコントローラ（ＳＢＣ）にコピーしてよい。任意のシグナチャが一致できない場合、ストリームは安全ではないと見なされ、チップがブートプロセスを中止し、ソフトウェア不正操作が信号で知らされてよい。
【０１６０】
８）このセグメントが送信されている間、別のセグメントがブートメモリソースから読み取られ、上述のように処理され、二重バッファの他方半分に記憶できる。これは、ブートが完了するまでこれらのバッファ間でピンポンし続けてよい。二重バッファリングのこの方法はブートストリームを完全に処理し、説明された論理による各セグメントの処理で挿入されるいずれのオーバヘッドも加算された第１のバッファの処理の余分な呼び出し時間だけで、ブートストリームをチップ上にロードできるようにする。
【０１６１】
セキュアブートは、装置の安全な挙動のプログラミングと装置で実行するためのアプリケーションのロードの両方をサポートしてよい。
【０１６２】
デジタル著作権管理（ＤＲＭ）
デジタル著作権管理は、ここではパスワード、バイオメトリックデータ、スマートカード、セキュアｉｄ、ダウンロード可能ライセンスキー等のタイプの認証のような任意のタイプの動的なユーザ認証のためのキャッチオールカテゴリとして使用される。チップの断面には認証コードがロードされ、セキュアブート方法を介してブート時に保護され得る。チップ上の不揮発性メモリは、加えて静的キー記憶を提供するために使用できる。静的キーが、不揮発性記憶用のマルチプログラムエミュレーションを介して更新できる機構が提供される。キー暗号化キーが安全な記憶領域に提供され、他の著作権管理キーが後の復号のために暗号化された形式でチップに送信される複層的な認証も可能である。これは、ＤＲＭキーの大きなオフチップ記憶を可能にする。
【０１６３】
ＨｙｐｅｒＸと他の装置との間で移動するデータは、提供される方法の組合せを使用することによって暗号化された形式で（例えばつねに）保護されてよい。これは、重要なデータに対する明らかなテキストアクセスを制限することによってセキュリティを最大限にする。
【０１６４】
安全な処理（レッド／ブラック）
上述の状況から、チップの部分が「周りに壁を築く」ことができ、認証されていないアクセスから保護できることがすでに明らかになっている。これらの領域の内の１つ又は複数を使用して、チップは、データが（安全な領域の外部では）暗号化された形式だけで、又は保護されている領域では復号された形式で移動でき、よって完全なシステム設計者の制御によって単一チップ上でブラック及びレッド両方の領域処理を提供する部分に分けることができる。
【０１６５】
保護されている領域へのアクセス及び保護されている領域への／保護されている領域からのデータの移動は、その領域で実行中の信頼されているコードの制御下に完全に置くことができる。このコードは、ブート時にオンチップ不揮発性メモリからロードし、保護することができ、よってＨｙｐｅｒＸに対するピンアクセスが保護されていない場合も、いずれのピンのスヌーピングにもさらされない。
【０１６６】
例示的なシステム
以下の図は、概略された機能を使用する例示的なシステムを示す。
【０１６７】
図１３は、セキュリティ要件の概略及びセキュリティ要件がどのように対応されることを意図されているのかを示す。
【０１６８】
図１４及び図１５は、システム及びシステムの論理ブロックを示す例示的なブロック図である。
【０１６９】
図１７は、動作中の例示的なシステムアプリケーションを示す。
【０１７０】
結論
本明細書に説明される情報セキュリティソリューションは、完全にソフトウェアベースであり、設計者／及び開発者に対して以下の完全な制御及びカスタマイズ： 
１．（使用目的のためだけのシステム及びデータの）可用性
２．（システム及びデータの）完全性
３．（データ及びシステム情報の）機密性
４．（個人レベルに対する）説明責任
５．（他の４つの目的が適切に達成されたという）保証
を実現してよい。これに基づいて、ＨｙｐｅｒＸプロセッサチップ及び関連システムのセキュリティレベルは、ＦＩＰＳレベルをはるかに上回って強化できる。
【０１７１】
本発明の実施形態
以下の番号が付けられた段落は、上述したシステム及び方法の実施形態を説明する。
【０１７２】
１．マルチプロセッサファブリックでの通信を無効にするための方法であって、この方法は、マルチプロセッサファブリックの構成を受け取ることであって、マルチプロセッサファブリックが複数のプロセッサ及び複数の通信要素を含み、複数の通信要素のそれぞれがメモリを含み、構成が、１つ若しくは複数のプロセッサと１つ若しくは複数の通信要素、１つ若しくは複数のプロセッサと１つ若しくは複数の他のプロセッサ、又は１つ若しくは複数の通信要素と１つ若しくは複数の他の通信要素の内の１つ又は複数の間の通信経路の無効化を指定する、受け取ることと、ハードウェア内のマルチプロセッサファブリックを、構成によって指定される通信経路を無効にするように自動的に構成することと、ソフトウェアアプリケーションを実行するためにマルチプロセッサファブリックを操作することであって、マルチプロセッサファブリックが構成に従って動作する、操作することとを含む。
【０１７３】
２．上記マルチプロセッサファブリックを自動的に構成することが、１つ若しくは複数のプロセッサ及び／又は１つ若しくは複数の通信要素に対応するレジスタ値を設定して、構成によって指定される通信経路を無効にすることを含む、上記段落のいずれかに記載の方法。
【０１７４】
３．上記自動的に構成した後に、無効にされた通信経路がソフトウェアを介して回復可能ではない、上記段落のいずれかに記載の方法。
【０１７５】
４．構成が、マルチプロセッサファブリックの第１の部分と、マルチプロセッサファブリックの第２の部分との間の通信の無効化を指定し、動作中、第１の部分が第２の部分から隔離される、上記段落のいずれかに記載の方法。
【０１７６】
５．構成が、マルチプロセッサファブリックの第１の部分の、マルチプロセッサファブリックの第２の部分によるメモリアクセスの無効化を指定し、動作中、第２の部分が第１の部分に含まれるメモリにアクセスできない、上記段落のいずれかに記載の方法。
【０１７７】
６．マルチプロセッサファブリックの中に認証されたコードをロードすることであって、構成が認証されたコードから受け取られるロードすることと、認証されたコードから第２の構成を受け取ることと、第２の構成に基づいて自動的に構成することを実行することとを更に含む、上記段落のいずれかに記載の方法。
【０１７８】
７．上記受け取ることが、マルチプロセッサファブリックのブートプロセスの間に自動的に実行される、上記段落のいずれかに記載の方法。
【０１７９】
８．複数の通信要素が、動的に構成可能な通信要素を含み、この通信要素のそれぞれが、複数の通信ポート、第１のメモリ、及びルーティングエンジンを含む、上記段落のいずれかに記載の方法。
【０１８０】
９．プロセッサのそれぞれについて、複数のプロセッサポートが複数の通信要素の第１のサブセットに結合するために構成され、通信要素のそれぞれについて、通信ポートの第１のサブセットが複数のプロセッサのサブセットに結合するために構成され、通信ポートの第２のサブセットが複数の通信要素の第２のサブセットに結合するために構成される、上記段落のいずれかに記載の方法。
【０１８１】
１０．複数のプロセッサ及び複数の通信要素が点在的な構成でともに結合される、上記段落のいずれかに記載の方法。
【０１８２】
上記段落のいずれかを実行するために実行可能であるプログラム命令を記憶する記憶媒体。
【０１８３】
上記段落のいずれかを実行するように構成されるコンピュータプログラム。
【０１８４】
１１．マルチファブリックであって、複数のプロセッサ及び複数の通信要素を含み、複数の通信要素のそれぞれがメモリを含むマルチプロセッサファブリックと、構成論理であって、マルチプロセッサファブリックのための構成を受け取るように構成され、構成が、１つ若しくは複数のプロセッサと１つ若しくは複数の通信要素、１つ若しくは複数のプロセッサと１つ若しくは複数の他のプロセッサ、又は１つ若しくは複数の通信要素と１つ若しくは複数の他の通信要素の内の１つ又は複数の間の通信経路の無効化を指定し、構成によって指定される通信経路を無効にするようにハードウェア内のマルチプロセッサファブリックを自動的に構成するように構成され、自動的に構成した後に、無効にされた通信経路がソフトウェアを介して回復できず、構成した後、マルチプロセッサファブリックがソフトウェアアプリケーションを実行するように構成され、マルチプロセッサファブリックが構成に従って動作する構成論理とを含むシステム。
【０１８５】
１２．上記マルチプロセッサファブリックを自動的に構成することが、１つ若しくは複数のプロセッサ及び／又は１つ若しくは複数の通信要素に対応するレジスタ値を設定して、構成によって指定される通信経路を無効にすることを含む、上記段落のいずれかに記載のシステム。
【０１８６】
１３．上記自動的に構成した後に、無効にされた通信経路がソフトウェアを介して回復可能ではない、上記段落のいずれかに記載のシステム。
【０１８７】
１４．構成が、マルチプロセッサファブリックの第１の部分と、マルチプロセッサファブリックの第２の部分との間の通信の無効化を指定し、動作中、第１の部分が第２の部分から隔離される、上記段落のいずれかに記載のシステム。
【０１８８】
１５．構成が、マルチプロセッサファブリックの第１の部分の、マルチプロセッサファブリックの第２の部分によるメモリアクセスの無効化を指定し、動作中、第２の部分が第１の部分に含まれるメモリにアクセスできない、上記段落のいずれかに記載のシステム
【０１８９】
１６．構成論理が、マルチプロセッサファブリックの中に認証されたコードをロードするように構成され、構成が認証されたコードによって指定され、認証されたコードから第２の構成を受け取るように構成され、及び第２の構成に基づいて自動的に構成することを実行するように構成される、上記段落のいずれかに記載のシステム。
【０１９０】
１７．上記受け取ることが、マルチプロセッサファブリックのブートプロセスの間に自動的に実行される、上記段落のいずれかに記載のシステム。
【０１９１】
１８．各プロセッサが、少なくとも１つの算術論理演算装置、命令処理装置、及び複数のプロセッサポートを含む、上記段落のいずれかに記載のシステム。
【０１９２】
１９．各通信要素が、動的に構成可能な通信要素を含み、それぞれが複数の通信ポート、第１のメモリ、及びルーティングエンジンを含む、上記段落のいずれかに記載のシステム。
【０１９３】
２０．プロセッサのそれぞれについて、複数のプロセッサポートが複数の通信要素の第１のサブセットに結合するために構成され、通信要素のそれぞれについて、通信ポートの第１のサブセットが複数のプロセッサのサブセットに結合するために構成され、通信ポートの第２のサブセットが複数の通信要素の第２のサブセットに結合するために構成される、上記段落のいずれかに記載のシステム。
【０１９４】
上記実施形態についてかなり詳しく説明してきたが、上記開示を完全に理解すると、当業者には多数の変形態様及び修正態様が明らかであろう。以下の特許請求の範囲は、かかるすべての変形態様及び修正態様を受け入れるものと解釈されるべきである。
【図１】
2013543183.tif 000004
【図２】
2013543183.tif 000005
【図３】
2013543183.tif 000006
【図４】
2013543183.tif 000007
【図５】
2013543183.tif 000008
【図６Ａ】
2013543183.tif 000009
【図６Ｂ】
2013543183.tif 000010
【図７】
2013543183.tif 000011
【図８】
2013543183.tif 000012
【図９】
2013543183.tif 000013
【図１０】
2013543183.tif 000014
【図１１Ａ】
2013543183.tif 000015
【図１１Ｂ】
2013543183.tif 000016
【図１２】
2013543183.tif 000017
【図１３】
2013543183.tif 000018
【図１４】
2013543183.tif 000019
【図１５】
2013543183.tif 000020
【図１６】
2013543183.tif 000021
【手続補正書】
【提出日】平成25年1月25日(2013.1.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
マルチプロセッサファブリックでの通信を無効にするための方法であって、前記方法は：
前記マルチプロセッサファブリックの構成を受け取ることであって、前記マルチプロセッサファブリックが複数のプロセッサ及び複数の通信要素を含み、前記複数の通信要素のそれぞれがメモリを含み、
前記プロセッサのそれぞれについて、複数のプロセッサポートが複数の前記通信要素の第１のサブセットに結合するために構成され、前記通信要素のそれぞれについて、前記通信ポートの第１のサブセットが複数の前記プロセッサのサブセットに結合するために構成されてよく、前記通信ポートの第２のサブセットが複数の前記通信要素の第２のサブセットに結合するために構成され、
前記構成は、
１つ若しくは複数の前記プロセッサと１つ若しくは複数の前記通信要素、
１つ若しくは複数の前記プロセッサと１つ若しくは複数の他の前記プロセッサ、又は
１つ若しくは複数の前記通信要素と１つ若しくは複数の他の前記通信要素
の内の１つ又は複数の間の通信経路の無効化を指定することによって、マルチプロセッサファブリックの第１の部分とマルチプロセッサファブリックの第２の部分の間の通信の無効化を指定する、受け取ること；
ハードウェア内の前記マルチプロセッサシステムを、前記構成によって指定される前記通信経路を無効にするように自動的に構成することであって、
前記構成によって指定された前記通信経路の無効化は、対応する１つ若しくは複数の前記プロセッサ及び／又は１つ若しくは複数の前記通信要素の通信ポートの無効化を含む、自動的に構成すること；並びに
ソフトウェアアプリケーションを実行するために前記マルチプロセッサファブリックを操作することであって、
前記マルチプロセッサファブリックは前記構成に従って動作し、
動作中、前記マルチプロセッサファブリックの前記第１の部分は、前記マルチプロセッサファブリックの前記第２の部分から隔離される、操作すること
を含む、方法。
【請求項２】
前記マルチプロセッサシステムファブリックを自動的に構成することが、１つ若しくは複数の前記プロセッサ及び／又は１つ若しくは複数の前記通信要素に対応するレジスタ値を設定して、前記構成によって指定される前記通信経路を無効にすることを含む、請求項１に記載の方法。
【請求項３】
前記自動的に構成した後に、無効にされた前記通信経路が前記ソフトウェアを介して回復可能ではない、請求項１又は２に記載の方法。
【請求項４】
前記構成が、前記マルチプロセッサファブリックの前記第１の部分の、前記マルチプロセッサシステムの前記第２の部分によるメモリアクセスの無効化を指定し、動作中、前記第２の部分が前記第１の部分に含まれるメモリにアクセスできない、請求項１〜３のいずれか１項に記載の方法。
【請求項５】
前記マルチプロセッサファブリックの中に認証されたコードをロードすることであって、前記構成が前記認証されたコードから受け取られる、ロードすること；
前記認証されたコードから前記第２の構成を受け取ること；及び
前記第２の構成に基づいて自動的に構成することを実行すること
を更に含む、請求項１及び３〜４のいずれか１項に記載の方法。
【請求項６】
前記受け取ることが、前記マルチプロセッサファブリックのブートプロセスの間に自動的に実行される、請求項１〜５のいずれか１項に記載の方法。
【請求項７】
複数の前記通信要素が、動的に構成可能な前記通信要素を含み、前記通信要素のそれぞれが、複数の通信ポート、第１のメモリ、及びルーティングエンジンを含む、請求項１〜６のいずれか１項に記載の方法。
【請求項８】
複数の前記プロセッサ及び複数の前記通信要素が点在的な構成でともに結合される、請求項１〜７のいずれか１項に記載の方法。
【請求項９】
請求項１〜８のいずれかを実装するように構成されるコンピュータプログラム。
【請求項１０】
複数のプロセッサ及び複数の通信要素を含むマルチプロセッサシステムを含むシステムであって、
複数の前記通信要素のそれぞれは、メモリを含み、
前記マルチプロセッサファブリックは、請求項１〜６のいずれかを実行するように構成される、システム。
【請求項１１】
各前記プロセッサは、少なくとも１つの算術論理演算ユニット、命令処理ユニット、及び複数のプロセッサポートを含む、請求項１０に記載のシステム。
【請求項１２】
各前記通信要素は、動的に構成可能な通信要素を含み、
前記通信要素のそれぞれは、複数の通信ポート、第１のメモリ、及びルーティングエンジンを含む、請求項１０又は１１に記載のシステム。
【国際調査報告】
2013543183.tif 000022
2013543183.tif 000023