(57)【特許請求の範囲】
【請求項１】
ホストプロセッサをセキュアに動作させるための方法であって、
ホストプロセッサは、
第１プロセッサユニットと、
メインメモリと、
１以上の第２プロセッサエレメントと、
を備えており、
各第２プロセッサエレメントは、
第２プロセッサユニットと、
ローカルストレージと、
ＭＦＣ（Memory Flow Controller）と、
を備えており、
本方法は、
（ａ）前記ホストプロセッサが、クライアントデバイスから送信された保護ファイルを、ホストプロセッサにて受信するステップを備え、
前記保護ファイルは、クライアントデバイスの第２プロセッサエレメントのローカルストレージの暗号化されたコンテンツを含み、
本方法はさらに、
（ｂ）前記ホストプロセッサが、ホストプロセッサの一以上の第２プロセッサエレメントを前記保護ファイルに割り当てるステップと、
（ｃ）前記ホストプロセッサが、前記一以上の割り当てられた第２プロセッサエレメントのローカルストレージを、ウィンドウ部分を除き、外部からのアクセスから保護するステップを備え、
前記ウィンドウは、該ウィンドウを介して非保護転送に適合するコードやデータを、前記保護ファイルに割り当てられた一以上の第２プロセッサエレメントのうちの特定の割り当てられた第２プロセッサエレメントの内外へ転送するためのウィンドウであり、
本方法はさらに、
（ｄ）前記ホストプロセッサが、前記一以上の割り当てられた第２プロセッサエレメントのローカルストレージに、認定コードをロードするステップと、
（ｅ）前記ホストプロセッサが、前記暗号化されたコンテンツを、前記特定の割り当てられた第２プロセッサエレメントのローカルストレージにロードするステップとを備え、
前記暗号化されたコンテンツは、前記特定の割り当てられた第２プロセッサエレメントのウィンドウ部分にロードされ、
本方法はさらに、
（ｆ）前記ホストプロセッサが、前記特定の割り当てられた第２プロセッサエレメントにおいて、前記暗号化されたコンテンツを認証コードを用いて復号することにより得られたコードを実行し、または、前記ホストプロセッサが、前記特定の割り当てられた第２プロセッサエレメントにおいて、前記暗号化されたコンテンツを認証コードを用いて復号することにより得られたデータを処理するステップを備えることを特徴とする方法。
【請求項２】
前記認証コードは、復号・暗号・ロード用コードを含むことを特徴とする請求項１に記載の方法。
【請求項３】
復号・暗号・ロード用コードは、非保護転送に適合するコードおよび／またはデータだけを対象として、読み出しおよび／または書き込みを実行するように設定されていることを特徴とする請求項２に記載の方法。
【請求項４】
前記保護ファイルは、更に、暗号化された共有初期化データを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記保護ファイルは、クライアントプロセッサの２以上の第２プロセッサエレメントから得られた暗号化されたコードおよび／またはデータを含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記ホストプロセッサが、前記暗号化されたコンテンツのために、ホストプロセッサのメインメモリであるホストメモリ上に領域を確保するステップ、を更に含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記ホストプロセッサが、暗号化されたコンテンツをホストのメインメモリに確保された領域にロードするステップ、を更に含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記ホストプロセッサが、非初期化データとメッセージボックスのために、ホストプロセッサのメインメモリであるホストメモリ上に領域を確保するステップ、を更に含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記ホストプロセッサが、ホストプロセッサの第２プロセッサユニットに、暗号化されたファイルデータをロードするステップ、を更に含むことを特徴とする請求項１に記載の方法。
【請求項１０】
保護ファイルを受信する前に、前記ホストプロセッサが、該ホストプロセッサが保護ファイルを実行できるかを認証するステップ、を更に含むことを特徴とする請求項１に記載の方法。
【請求項１１】
前記ホストプロセッサが、クライアントデバイスから送信された保護ファイルの実行要求をホストプロセッサにて受信するステップ、を更に含むことを特徴とする請求項１に記載の方法。
【請求項１２】
前記ホストプロセッサが、ホストプロセッサについて、クライアントデバイスから受信した情報に基づいて保護ファイルを受け入れるか否かを判定するステップ、を更に含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
第１プロセッサユニットと、
２以上の第２プロセッサエレメントと、
第１プロセッサユニットおよび第２プロセッサエレメントと接続されるメインメモリと、を備えるプロセッサのための保護ファイルを示すデータを保持する記録媒体であって、
各第２プロセッサエレメントは、
第２プロセッサユニットと、
ローカルストレージと、を備え、
保護ファイルは、クライアントデバイスの２以上の第２プロセッサエレメントのローカルストレージの暗号化されたコンテンツ、または、クライアントデバイスの一以上の第２プロセッサエレメントのローカルストレージの暗号化されたコンテンツと複数の第２プロセッサエレメントについての暗号化された動作関連情報を含むことを特徴とするプロセッサにて読み取り可能な記録媒体。
【請求項１４】
第１プロセッサユニットと、
２以上の第２プロセッサエレメントと、
第１プロセッサユニットおよび第２プロセッサエレメントと接続されるメインメモリと、を備えるプロセッサであって、
各第２プロセッサエレメントは、第２プロセッサユニットと、ローカルストレージとを備え、
本プロセッサは、保護ファイルを示すデータをメインメモリまたはローカルストレージに保持し、
保護ファイルは、クライアントデバイスの２以上の第２プロセッサエレメントのローカルストレージの暗号化されたコンテンツ、または、クライアントデバイスの一以上の第２プロセッサエレメントのローカルストレージの暗号化されたコンテンツと複数の第２プロセッサエレメントについての暗号化された動作関連情報を含むことを特徴とするプロセッサ。
【請求項１５】
少なくとも１以上の第２プロセッサエレメントが、保護モードで動作するように設定されたセキュア第２プロセッサエレメントであることを特徴とする請求項１４に記載のプロセッサ。
【請求項１６】
セキュア第２プロセッサエレメントのローカルストレージは、暗号化コードおよび／またはデータを保護部分の内外に転送するためのウィンドウを除き、第１プロセッサユニットや他の第２プロセッサエレメント、前記プロセッサの他プロセッサからアクセス不可能な保護部分を含むことを特徴とする請求項１５に記載のプロセッサ。
【請求項１７】
セキュア第２プロセッサエレメントのローカルストレージは、更に、認定コードを含むことを特徴とする請求項１６に記載のプロセッサ。
【請求項１８】
認定コードは、暗号化されるか、真性証明されるか、電子署名されたコードであることを特徴とする請求項１７に記載のプロセッサ。
【請求項１９】
請求項１４に記載のプロセッサであって、第１プロセッサユニットと、第２プロセッサエレメントと、メインメモリとは、
（ａ）クライアントデバイスから送信された保護ファイルを受信し、
（ｂ）プロセッサの一以上の第２プロセッサエレメントを前記保護ファイルに割り当て、
（ｃ）割り当てられた前記第２プロセッサエレメントのローカルストレージを、ウィンドウ部分を除き、外部からのアクセスから保護し、
前記ウィンドウは、該ウィンドウを介して、非保護転送に適合するコードやデータを、前記保護ファイルに割り当てられた一以上の第２プロセッサエレメントのうちの特定の第２プロセッサエレメントの内外へ転送するためのウィンドウであり、
（ｄ）前記一以上の割り当てられた第２プロセッサエレメントのローカルストレージに、認定コードをロードし、
（ｅ）前記暗号化されたコンテンツを、前記特定の第２プロセッサエレメントのローカルストレージにロードし、前記暗号化されたコンテンツは、前記特定の第２プロセッサエレメントのウィンドウ部分にロードされ、
（ｆ）前記暗号化されたコンテンツを認証コードを用いて復号し、
（ｇ）前記特定の第２プロセッサエレメントにおいて、暗号化されたコンテンツを復号することにより得られたコードを実行し、または、前記特定の第２プロセッサエレメントにおいて、前記暗号化されたコンテンツを復号することにより得られたデータを処理するように構成されていることを特徴とするプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、本出願と譲受人が共通する米国特許出願の一部継続出願11/238,086「発明の名称:ネットワーク上におけるＣＥＬＬプロセッサ制御技術（OPERATING CELL PROCESSORS OVER A NETWORK）」に関連し、関連出願の主題は、ここに引用により組み込まれる。
【０００２】
本出願は、本出願と譲受人が共通する米国特許出願11/238,077「発明の名称:ＣＥＬＬプロセッサについての方法および装置（CELL PROCESSOR METHODS AND APPARATUS）、John P.Bates,Payton R.White,Attila Vass」に関連し、関連出願の主題は、ここに引用により組み込まれる。
【０００３】
本出願は、本出願と譲受人が共通する米国特許出願11/238,095「発明の名称:ＣＥＬＬプロセッサのタスクとデータの管理（CELL PROCESSOR TASK AND DATA MANAGEMENT）、Richard B.Stenson,John P.Bates」に関連し、関連出願の主題は、ここに引用により組み込まれる。
【０００４】
本出願は、本出願と譲受人が共通する米国特許出願11/238,087「発明の名称:ＣＥＬＬプロセッサのためのＳＰＵタスクマネージャ（SPU TASK MANAGER FOR CELL PROCESSOR）、John P.Bates,Payton R.White,Richard B.Stenson,Howard Berkey,Attila Vass,Mark Cerny」に関連し、関連出願の主題は、ここに引用により組み込まれる。
【０００５】
本出願は、本出願と譲受人が共通する米国特許出願11/238,085「発明の名称:ＣＥＬＬプロセッサにおいてメモリコピー機能を実現するための方法および装置（METHOD AND SYSTEM FOR PERFORMING MEMORY COPY FUNCTION ON A CELL PROCESSOR）、Antoine Labour,John P.Bates,Richard B.Stenson」に関連し、関連出願の主題は、ここに引用により組み込まれる。
【０００６】
本実施例は、ＣＥＬＬプロセッサに関連し、より詳細には、ネットワーク上において複数のＣＥＬＬプロセッサをセキュア（secure）に制御するための技術、に関する。
【背景技術】
【０００７】
ＣＥＬＬプロセッサとは、並行処理可能なマイクロプロセッサの一種である。基本構成のＣＥＬＬプロセッサには、１つのＰＰＥ（Power Processor Element）（「Processing Element」すなわち「PE」ともよばれる）と、複数のＳＰＥ（Synergistic Processing Elements）が含まれる。ＰＰＥとＳＰＥは、ＥＩＢ（Element Interconnect Bus）とよばれる内部高速バスによって接続される。ＣＥＬＬプロセッサは、携帯型デバイスからメインフレームまでのさまざまなアプリケーションについて対応可能に設計されている。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ある種のＣＥＬＬプロセッサでは、ＳＰＥは一体的な実行環境（monolithic execution environment）となる。ＣＥＬＬプロセッサ上で実行されるアプリケーションの可搬性やネットワーク透過性を向上させるように、各ＳＰＥは互いに独立性の高い実行主体となっている。このようなポータブルなＳＰＥアプリケーションは、ＳＰＵレット（SPUlet）とかアプレット（APUlet）とよばれる。しかし、いろいろなＳＰＵレットに対して同一サイズの実行環境を割り当てるのは問題がある。特に、ＳＰＵレットは単一粒度だけになることもある。通常の従来型ＳＰＵレットは、単一のＳＰＥにロードされる、実行可能形式の単一ファイルイメージである。アプリケーションプログラムがより多くのリソース（計算資源）を必要とすると予想される場合、これらのリソースを複数のＳＰＵレットに分割するのは効率的ではない。特に、セキュリティを確保しつつ、ＳＰＵレットをネットワーク転送する必要があるときにはなおさらである。
【０００９】
したがって、ＣＥＬＬプロセッサのアプリケーションを、ネットワークの内外で動作できるようにパッケージ化してセキュアに移動させる上では、より大きなサイズの移動可能単位にてデータを構造化するための技術、が必要である。
【課題を解決するための手段】
【００１０】
本発明のある態様は、ＣＥＬＬプロセッサをセキュアに動作させるための方法である。
このＣＥＬＬプロセッサは、ＰＰＵ（Power Processor Unit）と、メインメモリと、１以上のＳＰＥ（Synergistic processing engine）を備える。
各ＳＰＥは、ＳＰＵ（Synergistic Processing Unit）と、ローカルストレージと、ＭＦＣ（Memory Flow Controller）を備える。
この方法は、クライアントデバイスから送信された保護ファイルイメージを、ホストデバイスのＣＥＬＬプロセッサであるホストＣＥＬＬプロセッサにて受信するステップを含む。保護ファイルイメージは、暗号化されたＳＰＵイメージを含む。
【発明を実施するための最良の形態】
【００１１】
本発明の教授するところは、添付図面とあわせて以下の詳細な説明を考慮することにより容易に理解されるでろう。
以下の記述においては、例示のために多くの特定的な詳細を含むけれども、本発明の範囲内において、以下の詳細について多くの変形や変更が可能であることは、当業者には理解されるところである。したがって、下記に示す本発明の実施例は、請求項に記載の発明の一般性を失わせるものでも制約を設けるものでもない。
【００１２】
本発明の実施例におけるＣＥＬＬプロセッサは、下記において拡張ＳＰＵレット（extended SPUlet）として参照される移動単位にて、ＣＥＬＬプロセッサ中の１以上のＳＰＥについての動作関連情報をロード、ストア、セーブ可能である。従来型ＳＰＵレットと異なり、本実施例における拡張ＳＰＵレットは、２以上のＳＰＵイメージ、または、１以上のＳＰＵイメージと共有初期化データのような複数ＳＰＵについての追加的な動作関連情報を含むことができる。通常、共有データは、拡張ＳＰＵレットを実行する２以上のＳＰＥによって共有される。実行コンテキストの独立性のためには、ＰＰＵに共有データへアクセスさせない方が望ましいが、ＰＰＵは、一時停止（サスペンド：suspend）や実行再開（レジューム：resume)のような管理上の理由からアクセスできる。拡張ＳＰＵレットと管理用ＰＰＵの間の通信は、メモリ上に特別に設定されたメッセージボックス領域を介して実行可能である。拡張ＳＰＵレットは従来型ＳＰＵレットよりも粒度が大きい。拡張ＳＰＵレットは、複数ＳＰＥのセットアップ、共有初期化データや追加的なコードなどのためのメモリ追加割り当て、ＳＰＥとシステムメインメモリの間のメモリマッピングなどに対応できる。
【００１３】
一般的には、ＣＥＬＬプロセッサは、４つの分離された機能コンポーネントを含む。ＰＰＥ（PowerPC Processor Element）、ＳＰＵ（Synergistic Processor Unit）、ＭＦＣ（メモリフローコントローラ：Memory Flow Controller）、ＩＩＣ（内部割込コントローラ：Internal Interrupt Controller）である。ＰＰＥとＳＰＵは、ＣＢＥＡ準拠プロセッサの計算ユニットである。各ＳＰＵは、専用のローカルストレージ、ＭＭＵ（メモリ管理ユニット：Memory Management Unit）とそれに対応する専用のＭＦＣ、ＲＭＴ（書き換え管理テーブル：Replacement Management Table）を持たなければならない。これらのコンポーネントの組み合わせを、ＳＰＵエレメント（ＳＰＥ）とよぶ。ＣＥＬＬプロセッサは、マザーボードやその他セカンド−レベル・パッケージにおけるシングルチップやマルチチップのモジュール（あるいは、複数のマルチチップモジュール）、複数のシングルチップモジュールであってもよく、目的とする設計についての使用技術やコストパフォーマンス特性によって決定すればよい。
【００１４】
制約的な意味ではない設例として、図１は、ＣＢＥＡ（ＣＥＬＬブロードバンドエンジン・アーキテクチャ：Cell Broadband engine architecture）として知られるアーキテクチャ準拠のＣＥＬＬプロセッサ１００を示している。同図設例に示すようにＣＥＬＬプロセッサは、ＰＰＥの複数個の集合（ＰＰＥグループ）と、ＳＰＥの複数個の集合（ＳＰＥグループ）を備えることができる。あるいは、ＣＥＬＬプロセッサは、単一のＳＰＥと単一のＰＰＥにより、単一のＳＰＥグループと単一のＰＰＥグループだけを備えてもよい。グループ内の各ユニットは、ハードウェア資源を共有できる。ただし、ソフトウェアからは、ＳＰＥとＰＰＥは独立した要素として見えなければならない。
【００１５】
図１に示す例では、ＣＥＬＬプロセッサ１００は、ＳＧ−０、・・・、ＳＧ−ｎといった多数のＳＰＥグループと、ＰＧ−０、・・・、ＰＧ−ｐといった多数のＰＰＥグループを含む。各ＳＰＥグループは、ＳＰＥ０、・・・、ＳＰＥｇといった多数のＳＰＥを含む。また、ＣＥＬＬプロセッサ１００は、メインメモリ（ＭＥＭ）と入出力機能（Ｉ／Ｏ）も含む。以下に述べる１以上の拡張ＳＰＵレット１０２は、メインメモリＭＥＭに格納される。
【００１６】
各ＰＰＥグループは、ＰＰＥ−０、・・・、ＰＰＥ−ｇといった多数のＰＰＥを含む。この例では、ＳＰＥグループは、単一のキャッシュＳＬ１を共有する。キャッシュＳＬ１は、ローカルストレージとメインストレージの間におけるＤＭＡ転送のためのファーストレベルキャッシュである。グループ内の各ＰＰＥは、それぞれ専用のファーストレベル（内部）キャッシュＬ１を持つ。加えて、グループ内のＰＰＥは、単一のセカンドレベル（外部）キャッシュＬ２を共有する。図１では、ＳＰＥとＰＰＥのためのキャッシュが示されているが、一般的なＣＥＬＬプロセッサやＣＢＥＡ準拠プロセッサにとってこれは必須の構成ではない。
【００１７】
要素接続バスＥＩＢは、上記に示したさまざまなコンポーネントを接続する。各ＳＰＥグループにおけるＳＰＥと各ＰＰＥグループにおけるＰＰＥは、バス・インタフェース・ユニットＢＩＵを介して、ＥＩＢにアクセスできる。ＣＥＬＬプロセッサ１００は、通常、プロセッサ内に２つのコントローラを含む。１つは、ＥＩＢとメインメモリＭＥＭの間のデータの流れを制御するメモリ・インタフェース・コントローラＭＩＣである。もう一つは、Ｉ／ＯとＥＩＢの間のデータの流れを制御するバス・インタフェース・コントローラＢＩＣである。ＭＩＣ、ＢＩＣ、ＢＩＵ、ＥＩＢについての実装はさまざまであるが、各実装に応じた機能や回路については当業者にとっては既知のものである。
【００１８】
各ＳＰＥは、ＳＰＵ（ＳＰＵ０、・・・、ＳＰＵｇ）を備える。ＳＰＥグループにおける各ＳＰＵは、専用のローカルストレージ領域ＬＳと専用のメモリ・フロー・コントローラＭＦＣを備える。ＭＦＣは、メモリ管理ユニットＭＭＵと対応づけられる。ＭＭＵは、メモリ保護やアクセス許可に関する情報の保持および処理を行う。
【００１９】
ＰＰＥは、キャッシュ付きの６４ビットのパワーＰＣ・プロセッサ・ユニット（ＰＰＵ）である。ＣＢＥＡ準拠システムでは、ＰＰＥは、ベクトル・マルチメディア・拡張ユニット（vector multimedia extension unit）を内蔵する。ＰＰＥは汎用処理用ユニットであり、（メモリ保護テーブルのような）システム管理資源にアクセスできる。ＣＢＥＡ定義のハードウェア資源は、ＰＰＥから見えるように物理アドレスに明示的にマップされる。それゆえ、いずれのＰＰＥも、適切かつ有効なアドレス値により、どんなリソースでも直接アドレスできる。ＰＰＥの主要機能は、システム内におけるＳＰＥタスクの割り当てと管理である。
【００２０】
ＳＰＥは、ＰＰＥに比べれば計算ユニットとしては複雑ではない。ＳＰＥにはシステム管理機能がないからである。ＳＰＥは、ＳＩＭＤ（single instruction,multiple data）による処理機能を備え、割り当てられたタスクを実行するために必要なデータ転送を（ＰＰＥによってセットアップされたアクセス属性にしたがって）開始する。ＳＰＵの目的は、計算ユニットのいっそうの高密度集積を要求し、所与の命令セットを効果的に実行できるようなアプリケーションを実現することである。システムにおいて、ＰＰＥに管理されるべきＳＰＵの数は、さまざまなアプリケーションについてコスト的に効率的な処理を実現できるように決められる。ＳＰＵは、新たな命令セットアーキテクチャを実装する。
【００２１】
ＭＦＣコンポーネントは、本質的にはデータ転送エンジンである。ＭＦＣは、ＣＥＬＬプロセッサのメインストレージとＳＰＥのローカルストレージの間におけるデータの転送、保護、同期に関する主要機能を担う。ＭＦＣコマンドは、転送の実行を示す。アーキテクチャ上におけるＭＦＣの最重要目的は、できるかぎり高速・正確にデータ転送を実行し、ＣＥＬＬプロセッサの全体としてのスループットを最大化することである。データ転送用コマンドは、ＭＦＣ・ＤＭＡコマンドとして参照される。これらのコマンドが変換されて、ローカルストレージ領域とメインストレージ領域の間のＤＭＡ転送となる。
【００２２】
通常、各ＭＦＣは、同時に複数のＤＭＡ転送をサポートし、複数のＭＦＣコマンドを保持・処理できる。このような機能を実現するため、ＭＦＣは、ＭＦＣコマンドキューを保持・処理する。ＭＦＣは、複数個の転送要求をキューに投入したり、それらを同時発行することもできる。各ＭＦＣは、対応するＳＰＵのためのキュー（ＭＦＣ・ＳＰＵ・コマンドキュー）と、他のプロセッサやデバイスのためのキュー（ＭＦＣ・プロキシ・コマンドキュー）を備える。論理的には、ＭＦＣキューの集合は、常に、ＣＥＬＬプロセッサ内の各ＳＰＵに対応づけられている。しかし、アーキテクチャ実装によっては、ＳＰＵグループのように複数のＳＰＵ間で単一の物理的なＭＦＣを共有することもできる。このような場合にも、ソフトウェアからは、すべてのＭＦＣに関連する装置がＳＰＵごとに別々にあるように見えなければならない。各ＭＦＣ・ＤＭＡ・データ転送要求コマンドは、ローカルストレージのアドレス（ＬＳＡ：local strage address）と有効アドレス（ＥＡ：effective address）の両方を含む。ローカルストレージアドレスは、該当ＳＰＵのローカルストレージ領域だけを直接アドレスできる。有効アドレスは、もう少し一般的に応用できる。実アドレス空間にエイリアス（別名：aliase）がなされているときには（すなわち、MFC-SR1[D]に'1'がセットされるとき）、全ＳＰＵのローカルストレージ領域も含めて、メインストレージを参照できるからである。
【００２３】
ＭＦＣは２種類のインタフェースを提供する。１つは、ＳＰＵ用であり、もう１つは、プロセスグループ内における他のプロセッサやデバイス全てのためである。ＳＰＵは、ＭＦＣ制御用にチャネルインタフェース（channel interface）を使う。この場合、ＳＰＵで実行されるコードは、当該ＳＰＵ用のＭＦＣ・ＳＰＵ・コマンドキューにだけアクセスできる。他プロセッサやデバイスは、メモリマップされたレジスタにより、ＭＦＣを制御できる。システム内のプロセッサやデバイスは、ＭＦＣを制御し、ＳＰＵに代わってＭＦＣ・プロキシ・要求コマンドを発行できる。ＭＦＣは、また、帯域予約やデータ同期もサポートする。ＳＰＵ間、および／または、ＳＰＵとＰＰＵ間、ＳＰＥとＰＰＥ間の通信用の装置には、シグナルイベントと対応づけられるシグナル通知レジスタが含まれる。通常、ＰＰＥとＳＰＥは、ＰＰＥがＳＰＥへメッセージを転送するルーターの役割を担うスター型トポロジーにて接続される。このようなトポロジーでは、ＳＰＥ同士はダイレクトに通信しない。代わりに、各ＳＰＥや各ＰＰＥは、一方通行のシグナル通知レジスタを持ち、これは、メールボックスとして参照される。メールボックスは、ＳＰＥとホストＯＳの同期をとるために使うことができる。
【００２４】
ＩＩＣコンポーネントは、ＰＰＥに対する割り込みの優先順位を管理する。ＩＩＣの主目的は、プロセッサ内の他のコンポーネントからの割り込みを、メインシステムの割込コントローラを使わずに扱うことである。ＩＩＣは、実際、セカンドレベルのコントローラである。ＣＢＥＡ準拠プロセッサに対する内部割り込み、あるいは、ＣＢＥＡ準拠プロセッサによるマルチプロセッサシステム内における割り込みの全てを扱うように想定されている。通常、システム割込コントローラは、ＣＥＬＬプロセッサに対する外部割り込みの全てに対応する。
【００２５】
ＣＥＬＬプロセッサシステムにおいては、ソフトウェアは、まず、外部のシステム割込コントローラからの割り込みがあったかを判定するために、しばしば、ＩＩＣをチェックしなければならない。ＩＩＣは、全てのＩ／Ｏデバイスからの割り込みの処理に関し、メインのシステム割込コントローラを代替するものではない。
【００２６】
ＣＥＬＬプロセッサには、２種類のストレージドメイン（storage domain：記憶領域）がある。ローカルストレージドメインとメインストレージドメインである。ＳＰＥのローカルストレージは、ローカルストレージドメイン内にある。他の装置やメモリは、全てメインストレージドメイン内にある。ローカルストレージは、記憶領域を１以上に分離した領域から成り、各領域は特定のＳＰＵと関連付けられる。各ＳＰＵは、（データのロードやストアといった操作も含めて）自己に関連するローカルストレージドメイン内の命令のみを実行可能である。ローカルストレージのエイリアスが有効化されていないときには、システム内の他のストレージを対象とするデータ転送要求は、常に、（各ＳＰＵの）ローカルストレージドメインとメインストレージドメインの間でデータを転送するためのＭＦＣ・ＤＭＡコマンドを発行することでしか実行できない。
【００２７】
ＳＰＵプログラムは、ローカルアドレスによりローカルストレージドメインを参照する。ただし、特権ソフトウェアは、MFC-SR1の第Ｄビットを「１」にセットすることによって、ＳＰＵのローカルストレージドメインをメインストレージドメインにエイリアスできる。各ローカルストレージ領域には、メインストレージドメイン内の実アドレスが割り当てられることになる（実アドレスは、システムメモリにおけるバイト単位アドレスかＩ／Ｏデバイスにおけるバイト単位アドレスのいずれかである。）。これにより、特権ソフトウェアは、アプリケーションの有効アドレス空間にローカルストレージ領域を割り当てることが可能となり、あるＳＰＵのローカルストレージと別のＳＰＵのローカルストレージの間のＤＭＡ転送が可能となる。
【００２８】
別プロセッサやデバイスは、メインストレージドメインへのアクセスにより、直接的に、ローカルストレージ領域をアクセス可能となる。このローカルストレージ領域は、メインストレージドメインによって示される実アドレス空間に対して、所定の変換方式にてマップされている有効アドレスやＩ／Ｏバスアドレスによって、メインストレージドメインとエイリアスされている。
【００２９】
メインストレージドメインとエイリアスされているローカルストレージ領域を使ったデータ転送では、キャッシュが禁じられる。このようなアクセスは、ローカルストレージドメインにおいて、ＳＰＵのローカルストレージへのアクセス（たとえば、ＳＰＵのロード、ストア、命令フェッチ）と一貫性を保てないからである。ローカルストレージ領域をメインストレージドメインの実アドレス空間とエイリアスさせることにより、メインストレージ領域へアクセスする他のプロセッサやデバイスは、ローカルストレージに直接アクセスすることができる。しかし、エイリアスされたローカルストレージは、キャッシュ禁止にて処理されなければならないので、ＰＰＥのロード命令やストア命令による大量のデータ転送ではパフォーマンスが悪くなる。ローカルストレージドメインとメインストレージドメインの間におけるデータ転送では、ストール（stall）を避けるためにＭＦＣ・ＤＭＡ・コマンドを使用する。
【００３０】
ＣＢＥＡにおけるメインストレージへのアドレッシングは、パワーＰＣ・アーキテクチャにおいて定義されているアドレッシングと互換性がある。ＣＢＥＡは、パワーＰＣアーキテクチャのコンセプトを基礎としつつも、ＭＦＣによるメインストレージへのアドレッシングにまで拡張されている。
【００３１】
ＳＰＵやその他のプロセッサ、デバイス上において実行されるアプリケーションプログラムは、メインメモリにアクセスするために有効アドレスを使う。有効アドレスは、ＰＰＥがロード、ストア、分岐、キャッシュ命令を実行したり、後続命令をフェッチするときに計算される。ＳＰＵのプログラムは、ＭＦＣコマンドのパラメータとして有効アドレスを示さねばならない。「PowerPC Architecture,Book3」の「overview of address translation」に記載されている処理方法により、有効アドレスから実アドレスへの変換がなされる。実アドレスとは、変換された有効アドレスによって参照されるメインストレージ上における位置である。メインストレージは、システム内の全てのＰＰＥ、ＭＦＣ、Ｉ／Ｏデバイスによって共有される。このレベルのストレージに保持される情報の全ては、システム内の全プロセッサ、全デバイスから見ることができる。このストレージ領域は、構造的にはフラットであってもよいし、階層的なキャッシュ構造を備えてもよい。プログラムは、有効アドレスによってこのレベルのストレージを参照する。
【００３２】
システムのメインメモリは、通常、システムコンフィギュレーション（system configuration）、データ転送同期、メモリマップドＩ／Ｏ、Ｉ／Ｏサブシステムといった処理用の特殊ハードウェアレジスタやアレーと、汎用の不揮発性記憶媒体も含む。メインメモリには、さまざまな設定をすることができる。制約的な意味ではない設例として、表１は、ＣＢＥＡとして知られる実装のＣＥＬＬプロセッサについて、メインメモリにおけるアドレス空間のサイズを示す。
【００３３】
【表１】
0004719656.tif 000002
【００３４】
ＣＥＬＬプロセッサ１００は、プロセッサとシステム内においてクリティカル・リソース（critical resource）の管理機能を持ってもよい。ＣＥＬＬプロセッサの管理対象となるリソースは、ＴＬＢ（translation lookaside buffers）とデータ、命令キャッシュである。これらのリソースは実装依存のテーブルによって制御される。
【００３５】
ＴＬＢやキャッシュを管理するためのテーブルはＲＭＴとして参照され、各ＭＭＵと対応づけられる。このようなテーブルはオプショナルなものであるが、システムのボトルネックとなりうるクリティカル・リソース用のテーブルは有用であることが多い。ＳＰＥグループは、ＤＭＡ転送のためのファーストレベルキャッシュとなるＳＬ１キャッシュをキャッシュ階層に含んでもよい。ＳＬ１キャッシュも、ＲＭＴを持ってもよい。
【００３６】
ＣＥＬＬプロセッサの実装技術について更に詳述する。以下の内容は、本発明の実施例に関連したデータ構造と処理方法について説明するものである。以下の実施例は上記したアーキテクチャを持つＣＥＬＬプロセッサについての実装を制約するものではない。とはいえ、以下の実施例は、多かれ少なかれ、拡張ＳＰＵレットが直面し利用され得る環境としてのＣＥＬＬアーキテクチャによる実装を示す。
【００３７】
図２は、拡張ＳＰＵレットと共に動作するＣＥＬＬプロセッサ２００の一例を示す。例として、このＣＥＬＬプロセッサは、メインメモリ２０２と、単一のＰＰＥ２０４、８つのＳＰＥ２０６を備えている。ただし、ＣＥＬＬプロセッサには任意の数のＳＰＥを設置できる。図２において、リング型のエレメント相互接続バス２１０により、メモリとＰＰＥ、ＳＰＥは、互いに、また、Ｉ／Ｏデバイス２０８とも通信可能である。アクセス保護されたＳＰＵレット（セキュアＳＰＵレット）２１２は、メインメモリ２０２に格納され、他のＣＥＬＬプロセッサに、たとえば、Ｉ／Ｏデバイス２０８やネットワーク２１４を介して伝送されたり、ＣＥＬＬプロセッサを構成するさまざまなＳＰＥ２０６に断片的にロードされる。
【００３８】
本実施例においては、ＳＰＥ２０６のうちの少なくとも１つは、以下に示すようにセキュアＳＰＥである。図２Ｂに示すように、セキュアＳＰＥ２２０は、ＳＰＵ２２１とローカル保持領域２２４、および、保護モード起動手段を含む。このような手段は、ハードウェア、ソフトウェア、あるいは、ハードウェアとソフトウェアの組み合わせとして実装されてもよい。保護モード起動手段は、外部メモリ、ホストプロセッサのメインメモリ２０２やホストプロセッサにおける他のＳＰＥのローカル保持領域などに保持されている暗号化コードのアドレスを転送する。本実施例によれば、ホストプロセッサにおける単一のＳＰＥ、全てのＳＰＥ、または、それらＳＰＥのいずれかをアクセス保護できる。保護モードにおいては、セキュアＳＰＥ２２０におけるローカル保持領域２２４の保護領域２２２は、ホストＣＥＬＬプロセッサ２００における他のプロセッサ（ＰＰＥや他のＳＰＥ）からアクセス保護される。ただし、セキュアＳＰＥは、ウィンドウ２２６を介して、非保護転送に適合するコードやデータを対象として読み出しや書き込みを実行できる。非保護転送に適合するコードやデータの例として、暗号化済のコードやデータなどが挙げられる。
【００３９】
保護領域２２２は、認定コード（trusted code）２２８と共にロードされる。以下において、認定コードとは、暗号化されたり、真性証明されたり、あるいは、電子署名されたコードであるとして説明する。本発明の実施例においては、暗号化、真性証明、電子署名の形式を特段の形式に限定しない。暗号化、真性証明、電子署名については適当な方法を選択すればよい。更に、認定コードは、暗号化、真性証明、電子署名のうちの２以上が組み合わされたコードであってもよい。制約的な意味ではない設例として、認定コード２２８は、暗号化されたコードやデータを保護領域にロードし、その暗号を解除し、ウィンドウ２２６からの送出する前に再暗号化することができるロード・暗号・復号器（encrypter-decripter-loader）としてのコードを含んでもよい。
【００４０】
上記したように、セキュアＳＰＵレット１０２、２１２は、通常、１以上のＳＰＵイメージと非初期化データなどの追加的なデータ、あるいは、２以上のＳＰＵイメージを含む。図３は、暗号化領域３０１を持つセキュアＳＰＵレット３００を構成するデータの配置を示す。暗号化領域３０１は、これに限るものではないが、１以上の暗号化されたＳＰＵイメージ３０２、暗号化された共有初期化データ（encrypted share initialized data）３０４、非初期化データ（uninitialized data）３０６の暗号化済関連情報、を含む。セキュアＳＰＵレット３００は、更に、メッセージボックス３０８を含む。セキュアＳＰＵレット３００は、ファイルヘッダ３１０を含むこともある。ファイルヘッダ３１０は、暗号化情報を含んでもよいし、含まなくてもよい。
【００４１】
暗号化されたＳＰＵイメージ３０２は、通常、ＣＥＬＬプロセッサにおけるＳＰＥのローカル保持データを暗号化した状態で含む。ＳＰＵイメージは、クライアントデバイスにおける処理中に各ＳＰＥから集められたり、ホストＣＥＬＬプロセッサにおける処理時にクライアントデバイスに受信されたりする。暗号化されたＳＰＵイメージ３０２には、ＳＰＵによって処理されたデータ、ＳＰＵによって処理されるべきデータ、ＳＰＵがデータを処理するためのコード、が含まれる。暗号化されたＳＰＵイメージ３０２には、拡張ＳＰＵレット３００が一時停止されたときの、ＭＦＣのＤＭＡ状態（DMA state）とＳＰＥのハードウェア状態（hardware state）に関するデータも含まれてもよい。暗号化された初期化データ３０４は、設定に応じて、メインメモリに保持され、および／または、それぞれが特定の処理を実行している複数のＳＰＥ間で共有される設定値を持つデータである。反対に、暗号化された非初期化データは、所定の設定値ではなく、既知データに関連するパラメータを持つ。たとえば、非初期化データ３０６の関連情報は、データ型、データのために必要なメモリ空間のサイズや位置を示す。
【００４２】
セキュアＳＰＵレット３００を動作させるためには、その暗号化されたコンポーネントの復号が必要である。ＳＰＵイメージは、セキュアＳＰＥの保護領域にて実行する前にコードやデータの暗号を解除するためのＳＰＵレット用コードを含む。更に、セキュアＳＰＥがメインメモリなどに情報を書き込むに際し、通常、ウィンドウ２２６からの送出前にデータは再暗号化される。
【００４３】
セキュアＳＰＵレットの内容が、コンテキストに依存する点は重要である。あるセキュアＳＰＵレットがメインメモリにセーブされるとき、システムメモリにおける拡張ＳＰＵレット３００のイメージは、暗号化されたＳＰＵイメージ３０２、暗号化された共有初期化データ３０４、非初期化データ３０６の暗号化済関連情報およびメッセージボックス３０８を含む。これらのデータの組み合わせは、システムメモリにおけるセキュアＳＰＵレットの暗号化イメージとして参照される。ただし、セキュアＳＰＵレット３００が、クライアントデバイスからＣＥＬＬプロセッサ（以下、「ホストプロセッサ」とよぶ）に転送されるときには、暗号化されたＳＰＵイメージ３０２と暗号化された初期化データ３０４にファイルヘッダ３１０が付けられる。このようなデータの組み合わせ（以下、「暗号化ファイルイメージ」とよぶ）が転送対象となる。
【００４４】
ファイルヘッダ３１０は、ホストＣＥＬＬプロセッサへの伝達用としての、セキュアＳＰＵレットについての暗号化情報を持つ。このような情報には、暗号形式、識別子、暗号バージョン番号など、セキュアＳＰＵレット３００の暗号を解除するために必要な解錠方法特定情報が含まれる。ヘッダ情報は、実行情報と拡張ＳＰＵレット情報に分類される。実行情報は、ホストリソース（host resources）、通信仕様、ＳＰＵレットの実行環境に関するその他の基準を示してもよい。拡張ＳＰＵレット情報は、メモリのレイアウト、マッピング、スタートオフセットやその他の初期化情報、メッセージボックスの設定などを示す。
【００４５】
そのような情報には、たとえば、メモリ可用性（その拡張ＳＰＵレットを実行するためにどのくらいのメモリが必要か）、ＳＰＵ可用性（その拡張ＳＰＵレットを実行するためには何個のＳＰＵが必要か）、拡張ＳＰＵレットのために必要なネットワーク待ち時間（network latency）、通信帯域およびシステム周波数、コントロールフロー情報（ホストマシンやクライアントマシンは、その拡張ＳＰＵレットに割り込んだり停止させたりする権限があるのか）、メモリオフセット、１以上のＳＰＵイメージのブレークポイント（breakpoints）、１以上のＳＰＵイメージのサイズ、メモリマッピング情報、メッセージボックスのレイアウト、メッセージボックスの容量などが含まれてもよい。ヘッダーは、システムや動作がそれに基づいて確立されるべき、ユーザ、ＩＤ、システム、関数、データ型、チャネル、フラグ、キー、パスワード、プロトコル、ターゲット、プロファイルなどに関する数値を定義してもよい。このような情報は、拡張ＳＰＵレットに関連するものであったり、拡張ＳＰＵレットにより指定されるものであってもよい。これに限る意図ではないが、拡張ＳＰＵレットがその一部となるアプリケーションの全体的な目的を達成するための、プログラム、システム、モジュール、オブジェクトの動作の設定、初期化、変更、同期に関する情報を含んでもよい。このようなアプリケーションは、アプリケーション、プロトコル、アプリケーションの符号化・復号・トランスコーディング（trancecording）、トランザクションに関するセキュリティ情報を含んでもよい。ファイルヘッダ３１０は、転送前にクライアントデバイスによって生成され、ＳＰＵイメージおよび初期化データと共に転送される。一方、ファイルヘッダ３１０は、ファイルイメージの一部となり、スタック転送の一部として送出される。
【００４６】
一般的には、ＳＰＵは、ＳＰＵの特権的制御には介入できない。結果として、ＳＰＵレット３００が各ＳＰＥに適切なコードをロードし、コードがロード後にスタート可能となる必要がある。更に、ＳＰＵレット３００は、お互いのコミュニケーションのためには、メインメモリの共有部分やお互いに対してＳＰＥをマップするためのメモリマップ情報を含むのが好ましい。図４は、セキュアＳＰＵレットによりＣＥＬＬプロセッサをセキュアに制御するための一般的方法４００を示している。
【００４７】
ホストデバイス２００がＳＰＵレット３００をロード可能となる前に、ホストプロセッサは、セキュアＳＰＵレット３００をロードするための認証ローダ（authenticated loader）を使うことが好ましい。認証ローダを提供するために、証明ステップ４０１Ａ、ホスト認証ステップ４０１Ｂ、クライアント認証ステップ４０１Ｃが実行される。
【００４８】
証明ステップ４０１Ａにおいて、ホストＰＰＥは、クライアントからセキュアＳＰＵレット（セキュアな拡張ＳＰＵレットであってもよい）の実行依頼を受信する。クライアントは、証明用パラメータをホストに渡す。このパラメータは、保護フォーマットＩＤ、バージョン番号など、クライアントがホストＣＥＬＬプロセッサに送信したい暗号化コードを解錠するために必要な解錠方法特定情報である。この情報は、セキュアＳＰＵレットの実行に必要なＳＰＵの数を示してもよい。ホストは、この情報により、セキュアＳＰＵレットを扱う能力があるかを自己判定し、クライアントに通知する。
【００４９】
ホスト認証ステップ４０１Ｂにおいては、ホストプロセッサは、証明書の交換などによりクライアントを認証する。
【００５０】
クライアント認証ステップ４０１Ｃにおいては、クライアントは、証明書、たとえば、セキュアＳＰＥが認証するのに必要な暗号化コードやデータを送ることにより、ホストを認証する。証明書は、何らかのかたちでセキュアＳＰＵレットの暗号形式と結びつけられなければならないが、セキュアＳＰＵレットの復号に使用するのとは異なる形式であってもよい。ホストは、証明書を受信し、セキュアＳＰＥでそれを処理し、なんらかの結果を生成して、クライアントに返信する。クライアントは、認定ホストについて予定される結果とこの処理結果を比較することができる。
【００５１】
クライアントがホストを認証すると、ステップ４０２において、セキュアＳＰＵレットはクライアントデバイスからホストデバイスに保護ファイルイメージ（secure file image）として転送される。保護ファイルイメージは、ロード・暗号・復号器としてのコードを含んでもよい。ホストおよびクライアントＣＥＬＬプロセッサ間のファイルイメージの転送は、ネットワークやバス上で発生する。ここでいうネットワークは、これに限る意図ではないが、セキュアな、あるいは、セキュアでないネットワーク、たとえば、ローカルエリアネットワーク（ＬＡＮ：Local Area Network）、ワイドエリアネットワーク（ＷＡＮ：Wide Area Network）、あるいは、インターネットのような公的ネットワークであってもよい。たとえば、クライアントマシンは、セキュアＳＰＵレットの残り部分を送る前に、ホストマシンに対してファイルヘッダ３１０を先に送ってもよい。ホストマシンは、受け入れ基準に関してファイルヘッダの情報を分析できる。たとえば、ＳＰＵレットの対象ホストマシンや他のデバイスは、充分なＳＰＵ、セキュリティ・クリアランス、権限、設定、メモリなど、セキュアＳＰＵレットを実行可能であるか判定する。ホストマシンは、セキュアＳＰＵレットを受け入れ可能か判定したり、あるいは、別のデバイスやターゲットマシンに、ＳＰＵレットを転送したりできる。
【００５２】
ホストマシンがセキュアＳＰＵレットを受け取ると、ステップ４０４において、ホストマシンは拡張ＳＰＵレットのためにシステムメモリを割り当てる。ホストマシンは、ファイルヘッダの情報により、暗号化されたＳＰＵイメージ３０２や暗号化された共有初期化データ３０４のためにメモリのブロックのサイズやデータ型を確保する。いったんメモリ空間が確保されると、ステップ４０６において、ホストプロセッサは、セキュアＳＰＵレット３００の暗号化されたＳＰＵイメージ３０２と暗号化された共有初期化データ３０４をホストＣＥＬＬプロセッサのメインメモリにロードする。ホストＣＥＬＬプロセッサは、（もしあれば）暗号化された非初期化データやメッセージボックスのための領域も確保する。ＰＰＵのメインメモリに領域確保することが好ましい。しかし、ＳＰＵレット・アプリケーションは、そのＳＰＵレット・アプリケーションによっては、ＰＰＵのメモリ、および／または、１以上のＳＰＵのローカル保持領域に設定するかもしれない。通常は、ビデオ・トランスコーディング（video transcoding）のような複雑な処理に対応する拡張リーチメモリ（extended reach memory）を充足するようにメインメモリに確保される。図５Ａと図５Ｂは、ホストデバイスのＣＥＬＬプロセッサ（ホストＣＥＬＬプロセッサ）における拡張ＳＰＵレットのデータ構造を示す。図５Ａに示すように、ホストプロセッサは、暗号化されたＳＰＵイメージ３０２、暗号化された初期化データ３０４、ファイルヘッダ３１０（暗号化情報を含んでもよい）を含む暗号化ファイルイメージを受信する。通常、暗号化されたＳＰＵイメージ３０２と暗号化された初期化データ３０４だけが、ホストＣＥＬＬプロセッサのメインメモリに格納される。これらは、セキュアＳＰＵレット３００の「足跡（フットプリント：footprint）」をメインメモリに形成する。ヘッダ３１０のデータは、ホストプロセッサがそれを使い終わると破棄される。
【００５３】
ステップ４０８において、ホストＣＥＬＬプロセッサは、非初期化データ５０６とメッセージボックス５０８のために、メインメモリに領域を割り当てる。図５Ａに示すように、ＳＰＵイメージ３０２、初期化データ３０４、非初期化データ５０６とメッセージボックス５０８の割り当て領域は、ホストＣＥＬＬプロセッサのメインメモリ内に拡張ＳＰＵレット３００のイメージを形成する。ステップ４１０において、ホストプロセッサは、拡張ＳＰＵレット３００のために（図５Ｂに示すように）ＳＰＥ５１０を割り当てる。ステップ４１１において、ホストＳＰＥが図２Ａに関連して説明したように保護モードにてセットアップされる。セキュアＳＰＥには、認証済のロード・暗号・復号器５１２としてのコード（ＥＤＬ）がロードされる。このロード・暗号・復号器５１２は、暗号化されたコードやデータをウィンドウを介して保護領域にロードし、セキュアＳＰＥで実行できるようにコードやデータの暗号を外し、ウィンドウを介してセキュアＳＰＥから送出される情報を暗号化する。
【００５４】
いったんＳＰＥ５１０が割り当てられ、保護モードでセットアップされると、暗号化されたＳＰＵイメージ３０２は、ステップ４１２において割り当て先のＳＰＥ５１０にロードされる。それから、ＳＰＥは、ステップ４１４において、ロード・暗号・復号器５１２を使って保護モードで実行可能となる。
【００５５】
クライアントにＣＥＬＬは必要ではない。クライアントはパーソナル・コンピュータ（ＰＣ）であってもよい。クライアントには、ＣＥＬＬプロセッサに送出する暗号化ファイルイメージやヘッダだけが必要である。ユーザによるホストプロセッサの干渉を防ぐためには、ユーザによるアクセスからＣＥＬＬプロセッサを保護するのが望ましい。ＳＰＥは、保護モード起動手段を備える。
【００５６】
以上は、本発明の最適な実施例の完全な記述であるが、さまざまな変更、変形、等価物への置き換えが可能である。それゆえ、本発明の範囲は、上記記述に関してではなく、請求項により定義されるべきであり、完全な等価物の範囲も含まれる。記述された特徴は、それが好ましいものであれ、そうでないものであれ、上記したさまざまな特徴と組み合わされてもよい。請求項においては、通常、特に断らない限りは、各要素は１またはそれ以上の数量を想定している。請求項の記載事項は、「〜手段」のような記載によって、明示される場合のほかは、いわゆるミーンズ・プラス・ファンクション特有の限定的意味で解してはならない。
【図面の簡単な説明】
【００５７】
【図１】本実施例において、セキュアＳＰＵレットを実装するＣＥＬＬブロードバンドエンジンアーキテクチャの模式図である。
【図２（Ａ）】本実施例におけるＣＥＬＬプロセッサの模式図である。
【図２（Ｂ）】本実施例におけるセキュアＳＰＥの模式図である。
【図３】本実施例における拡張ＳＰＵレットのブロック図である。
【図４】本実施例における拡張ＳＰＵレットの実行過程を示すフローチャートである。
【図５（Ａ）】実行ステージにおける拡張ＳＰＵレットのメモリアロケーションを示すブロック図である。
【図５（Ｂ）】別の実行ステージにおける拡張ＳＰＵレットのメモリアロケーションを示すブロック図である。
【図１】
0004719656.tif 000003
【図２】
0004719656.tif 000004
【図３】
0004719656.tif 000005
【図４】
0004719656.tif 000006
【図５】
0004719656.tif 000007