JP4719656B2 - ネットワーク上におけるプロセッサ制御技術 - Google Patents

ネットワーク上におけるプロセッサ制御技術 Download PDF

Info

Publication number
JP4719656B2
JP4719656B2 JP2006262024A JP2006262024A JP4719656B2 JP 4719656 B2 JP4719656 B2 JP 4719656B2 JP 2006262024 A JP2006262024 A JP 2006262024A JP 2006262024 A JP2006262024 A JP 2006262024A JP 4719656 B2 JP4719656 B2 JP 4719656B2
Authority
JP
Japan
Prior art keywords
processor
host
local storage
data
encrypted content
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006262024A
Other languages
English (en)
Other versions
JP2007095066A (ja
Inventor
達也 岩本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Interactive Entertainment Inc
Sony Computer Entertainment Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/238,086 external-priority patent/US8316220B2/en
Application filed by Sony Interactive Entertainment Inc, Sony Computer Entertainment Inc filed Critical Sony Interactive Entertainment Inc
Publication of JP2007095066A publication Critical patent/JP2007095066A/ja
Application granted granted Critical
Publication of JP4719656B2 publication Critical patent/JP4719656B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Description

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

Claims (19)

  1. ホストプロセッサをセキュアに動作させるための方法であって、
    ホストプロセッサは、
    第1プロセッサユニットと、
    メインメモリと、
    1以上の第2プロセッサエレメントと、
    を備えており、
    各第2プロセッサエレメントは、
    第2プロセッサユニットと、
    ローカルストレージと、
    MFC(Memory Flow Controller)と、
    を備えており、
    本方法は、
    (a)前記ホストプロセッサが、クライアントデバイスから送信された保護ファイルを、ホストプロセッサにて受信するステップを備え、
    前記保護ファイルは、クライアントデバイスの第2プロセッサエレメントのローカルストレージの暗号化されたコンテンツを含み、
    本方法はさらに、
    (b)前記ホストプロセッサが、ホストプロセッサの一以上の第2プロセッサエレメントを前記保護ファイルに割り当てるステップと、
    (c)前記ホストプロセッサが、前記一以上の割り当てられた第2プロセッサエレメントのローカルストレージを、ウィンドウ部分を除き、外部からのアクセスから保護するステップを備え、
    前記ウィンドウは、該ウィンドウを介して非保護転送に適合するコードやデータを、前記保護ファイルに割り当てられた一以上の第2プロセッサエレメントのうちの特定の割り当てられた第2プロセッサエレメントの内外へ転送するためのウィンドウであり、
    本方法はさらに、
    (d)前記ホストプロセッサが、前記一以上の割り当てられた第2プロセッサエレメントのローカルストレージに、認定コードをロードするステップと、
    (e)前記ホストプロセッサが、前記暗号化されたコンテンツを、前記特定の割り当てられた第2プロセッサエレメントのローカルストレージにロードするステップとを備え、
    前記暗号化されたコンテンツは、前記特定の割り当てられた第2プロセッサエレメントのウィンドウ部分にロードされ、
    本方法はさらに、
    (f)前記ホストプロセッサが、前記特定の割り当てられた第2プロセッサエレメントにおいて、前記暗号化されたコンテンツを認証コードを用いて復号することにより得られたコードを実行し、または、前記ホストプロセッサが、前記特定の割り当てられた第2プロセッサエレメントにおいて、前記暗号化されたコンテンツを認証コードを用いて復号することにより得られたデータを処理するステップを備えることを特徴とする方法。
  2. 前記認証コードは、復号・暗号・ロード用コードを含むことを特徴とする請求項1に記載の方法。
  3. 復号・暗号・ロード用コードは、非保護転送に適合するコードおよび/またはデータだけを対象として、読み出しおよび/または書き込みを実行するように設定されていることを特徴とする請求項2に記載の方法。
  4. 前記保護ファイルは、更に、暗号化された共有初期化データを含むことを特徴とする請求項1に記載の方法。
  5. 前記保護ファイルは、クライアントプロセッサの2以上の第2プロセッサエレメントから得られた暗号化されたコードおよび/またはデータを含むことを特徴とする請求項1に記載の方法。
  6. 前記ホストプロセッサが、前記暗号化されたコンテンツのために、ホストプロセッサのメインメモリであるホストメモリ上に領域を確保するステップ、を更に含むことを特徴とする請求項1に記載の方法。
  7. 前記ホストプロセッサが、暗号化されたコンテンツをホストのメインメモリに確保された領域にロードするステップ、を更に含むことを特徴とする請求項1に記載の方法。
  8. 前記ホストプロセッサが、非初期化データとメッセージボックスのために、ホストプロセッサのメインメモリであるホストメモリ上に領域を確保するステップ、を更に含むことを特徴とする請求項1に記載の方法。
  9. 前記ホストプロセッサが、ホストプロセッサの第2プロセッサユニットに、暗号化されたファイルデータをロードするステップ、を更に含むことを特徴とする請求項1に記載の方法。
  10. 保護ファイルを受信する前に、前記ホストプロセッサが、該ホストプロセッサが保護ファイルを実行できるかを認証するステップ、を更に含むことを特徴とする請求項1に記載の方法。
  11. 前記ホストプロセッサが、クライアントデバイスから送信された保護ファイルの実行要求をホストプロセッサにて受信するステップ、を更に含むことを特徴とする請求項1に記載の方法。
  12. 前記ホストプロセッサが、ホストプロセッサについて、クライアントデバイスから受信した情報に基づいて保護ファイルを受け入れるか否かを判定するステップ、を更に含むことを特徴とする請求項11に記載の方法。
  13. 第1プロセッサユニットと、
    以上の第2プロセッサエレメントと、
    第1プロセッサユニットおよび第2プロセッサエレメントと接続されるメインメモリと、を備えるプロセッサのための保護ファイルを示すデータを保持する記録媒体であって、
    各第2プロセッサエレメントは、
    第2プロセッサユニットと、
    ローカルストレージと、を備え、
    保護ファイルは、クライアントデバイスの2以上の第2プロセッサエレメントのローカルストレージの暗号化されたコンテンツ、または、クライアントデバイスの一以上の第2プロセッサエレメントのローカルストレージの暗号化されたコンテンツと複数の第2プロセッサエレメントについての暗号化された動作関連情報を含むことを特徴とするプロセッサにて読み取り可能な記録媒体。
  14. 第1プロセッサユニットと、
    以上の第2プロセッサエレメントと、
    第1プロセッサユニットおよび第2プロセッサエレメントと接続されるメインメモリと、を備えるプロセッサであって、
    各第2プロセッサエレメントは、第2プロセッサユニットと、ローカルストレージとを備え、
    本プロセッサは、保護ファイルを示すデータをメインメモリまたはローカルストレージに保持し、
    保護ファイルは、クライアントデバイスの2以上の第2プロセッサエレメントのローカルストレージの暗号化されたコンテンツ、または、クライアントデバイスの一以上の第2プロセッサエレメントのローカルストレージの暗号化されたコンテンツと複数の第2プロセッサエレメントについての暗号化された動作関連情報を含むことを特徴とするプロセッサ。
  15. 少なくとも1以上の第2プロセッサエレメントが、保護モードで動作するように設定されたセキュア第2プロセッサエレメントであることを特徴とする請求項14に記載のプロセッサ。
  16. セキュア第2プロセッサエレメントのローカルストレージは、暗号化コードおよび/またはデータを保護部分の内外に転送するためのウィンドウを除き、第1プロセッサユニットや他の第2プロセッサエレメント、前記プロセッサの他プロセッサからアクセス不可能な保護部分を含むことを特徴とする請求項15に記載のプロセッサ。
  17. セキュア第2プロセッサエレメントのローカルストレージは、更に、認定コードを含むことを特徴とする請求項16に記載のプロセッサ。
  18. 認定コードは、暗号化されるか、真性証明されるか、電子署名されたコードであることを特徴とする請求項17に記載のプロセッサ。
  19. 請求項14に記載のプロセッサであって、第1プロセッサユニットと、第2プロセッサエレメントと、メインメモリとは、
    (a)クライアントデバイスから送信された保護ファイルを受信し、
    (b)プロセッサの一以上の第2プロセッサエレメントを前記保護ファイルに割り当て、
    (c)割り当てられた前記第2プロセッサエレメントのローカルストレージを、ウィンドウ部分を除き、外部からのアクセスから保護し、
    前記ウィンドウは、該ウィンドウを介して、非保護転送に適合するコードやデータを、前記保護ファイルに割り当てられた一以上の第2プロセッサエレメントのうちの特定の第2プロセッサエレメントの内外へ転送するためのウィンドウであり、
    (d)前記一以上の割り当てられた第2プロセッサエレメントのローカルストレージに、認定コードをロードし、
    (e)前記暗号化されたコンテンツを、前記特定の第2プロセッサエレメントのローカルストレージにロードし、前記暗号化されたコンテンツは、前記特定の第2プロセッサエレメントのウィンドウ部分にロードされ、
    (f)前記暗号化されたコンテンツを認証コードを用いて復号し、
    (g)前記特定の第2プロセッサエレメントにおいて、暗号化されたコンテンツを復号することにより得られたコードを実行し、または、前記特定の第2プロセッサエレメントにおいて、前記暗号化されたコンテンツを復号することにより得られたデータを処理するように構成されていることを特徴とするプロセッサ。
JP2006262024A 2005-09-27 2006-09-27 ネットワーク上におけるプロセッサ制御技術 Expired - Fee Related JP4719656B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US11/238,086 US8316220B2 (en) 2005-09-27 2005-09-27 Operating processors over a network
US11/238,086 2005-09-27
US11/257,761 US7734827B2 (en) 2005-09-27 2005-10-24 Operation of cell processors
US11/257,761 2005-10-24

Publications (2)

Publication Number Publication Date
JP2007095066A JP2007095066A (ja) 2007-04-12
JP4719656B2 true JP4719656B2 (ja) 2011-07-06

Family

ID=37696438

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006262024A Expired - Fee Related JP4719656B2 (ja) 2005-09-27 2006-09-27 ネットワーク上におけるプロセッサ制御技術

Country Status (3)

Country Link
US (2) US7734827B2 (ja)
EP (1) EP1768033A1 (ja)
JP (1) JP4719656B2 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006027639A1 (en) * 2004-09-09 2006-03-16 Pirelli Tyre S.P.A. Method for allowing a control of a vehicle provided with at least two wheels in case of puncture of a tyre
US8037474B2 (en) * 2005-09-27 2011-10-11 Sony Computer Entertainment Inc. Task manager with stored task definition having pointer to a memory address containing required code data related to the task for execution
US7522168B2 (en) * 2005-09-27 2009-04-21 Sony Computer Entertainment Inc. Cell processor task and data management
US8316220B2 (en) * 2005-09-27 2012-11-20 Sony Computer Entertainment Inc. Operating processors over a network
US8141076B2 (en) * 2005-09-27 2012-03-20 Sony Computer Entertainment Inc. Cell processor methods and apparatus
US7506123B1 (en) * 2005-09-27 2009-03-17 Sony Computer Entertainment Inc. Method and system for performing memory copy function on a cell processor
US7734827B2 (en) * 2005-09-27 2010-06-08 Sony Computer Entertainment, Inc. Operation of cell processors
US8595747B2 (en) * 2005-12-29 2013-11-26 Sony Computer Entertainment Inc. Efficient task scheduling by assigning fixed registers to scheduler
US7647483B2 (en) * 2007-02-20 2010-01-12 Sony Computer Entertainment Inc. Multi-threaded parallel processor methods and apparatus
GB0703974D0 (en) * 2007-03-01 2007-04-11 Sony Comp Entertainment Europe Entertainment device
US8589943B2 (en) * 2007-08-15 2013-11-19 Sony Computer Entertainment Inc. Multi-threaded processing with reduced context switching
CN101398803B (zh) * 2007-09-28 2011-04-06 国际商业机器公司 管理数据移动的方法和使用该方法的细胞宽带引擎处理器
US8429349B2 (en) * 2008-09-18 2013-04-23 International Business Machines Corporation Techniques for cache injection in a processor system with replacement policy position modification
US8443146B2 (en) * 2008-09-18 2013-05-14 International Business Machines Corporation Techniques for cache injection in a processor system responsive to a specific instruction sequence
US8904064B2 (en) * 2008-10-24 2014-12-02 International Business Machines Corporation Managing an out-of-order asynchronous heterogeneous remote direct memory access (RDMA) message queue
US7870308B2 (en) * 2008-12-23 2011-01-11 International Business Machines Corporation Programmable direct memory access engine
US7870309B2 (en) 2008-12-23 2011-01-11 International Business Machines Corporation Multithreaded programmable direct memory access engine
US9336145B2 (en) * 2009-04-09 2016-05-10 International Business Machines Corporation Techniques for cache injection in a processor system based on a shared state
US8990582B2 (en) * 2010-05-27 2015-03-24 Cisco Technology, Inc. Virtual machine memory compartmentalization in multi-core architectures
EP3040896A1 (en) * 2014-12-30 2016-07-06 Gemalto Sa Secure element

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09179834A (ja) * 1995-12-25 1997-07-11 Hitachi Ltd 並列システムにおけるプロセスのスケジューリング方法
JP2001005679A (ja) * 1999-06-24 2001-01-12 Hitachi Ltd 電子計算機における処理の中断/再開方法
JP2002007364A (ja) * 2000-06-22 2002-01-11 Fujitsu Ltd 並列計算機システムのジョブスケジューリングを行うスケジューリング装置
JP2002207713A (ja) * 2001-01-11 2002-07-26 Matsushita Electric Ind Co Ltd Cpu間データ通信方法および装置
WO2004015553A1 (en) * 2002-08-13 2004-02-19 Nokia Corporation Computer architecture for executing a program in a secure of insecure mode
JP2004246702A (ja) * 2003-02-14 2004-09-02 Toshiba Corp 計算機システム、計算機装置、計算機システムにおけるデータアクセス方法及びプログラム
JP2004320174A (ja) * 2003-04-11 2004-11-11 Matsushita Electric Ind Co Ltd 認証システム、認証装置、認証方法
JP2005235229A (ja) * 2004-02-20 2005-09-02 Sony Computer Entertainment Inc マルチプロセッサシステムにおけるプロセッサタスクの移動方法および装置
JP2005535953A (ja) * 2002-08-13 2005-11-24 ノキア コーポレイション セキュアモードまたは非セキュアモードでプログラムを実行するコンピュータアーキテクチャ

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3496551A (en) * 1967-07-13 1970-02-17 Ibm Task selection in a multi-processor computing system
US3596257A (en) 1969-09-17 1971-07-27 Burroughs Corp Method and apparatus for allocating small memory spaces to a computer program
US5047923A (en) 1987-08-21 1991-09-10 Siemens Aktiengesellschaft Modularly structured digital communication system for interconnecting terminal equipment and public networks
JPH01258135A (ja) 1988-04-08 1989-10-16 Nec Corp トランザクション実行制御方式
US5185694A (en) 1989-06-26 1993-02-09 Motorola, Inc. Data processing system utilizes block move instruction for burst transferring blocks of data entries where width of data blocks varies
US5136712A (en) 1989-06-29 1992-08-04 Digital Equipment Corporation Temporary object handling system and method in an object based computer operating system
EP0416767A3 (en) 1989-09-08 1992-04-29 Digital Equipment Corporation Position independent code location system
US5452452A (en) * 1990-06-11 1995-09-19 Cray Research, Inc. System having integrated dispatcher for self scheduling processors to execute multiple types of processes
US5764017A (en) * 1996-04-16 1998-06-09 Iomega Corporation Servo loop compensation technique exhibiting improved bandwith
JP2809962B2 (ja) * 1993-03-02 1998-10-15 株式会社東芝 資源管理方式
US5528513A (en) 1993-11-04 1996-06-18 Digital Equipment Corp. Scheduling and admission control policy for a continuous media server
US5745778A (en) * 1994-01-26 1998-04-28 Data General Corporation Apparatus and method for improved CPU affinity in a multiprocessor system
US5794017A (en) * 1995-02-06 1998-08-11 International Business Machines Corporation Method and system of updating graphics memory in a graphics display system through multiple address transferring of pixel data
US6728959B1 (en) * 1995-08-08 2004-04-27 Novell, Inc. Method and apparatus for strong affinity multiprocessor scheduling
US5832262A (en) * 1995-09-14 1998-11-03 Lockheed Martin Corporation Realtime hardware scheduler utilizing processor message passing and queue management cells
US6341324B1 (en) * 1995-10-06 2002-01-22 Lsi Logic Corporation Exception processing in superscalar microprocessor
US5978843A (en) 1995-12-06 1999-11-02 Industrial Technology Research Institute Scalable architecture for media-on-demand servers
EP0888585A1 (en) 1996-03-19 1999-01-07 Massachusetts Institute Of Technology Computer system and computer implemented process for representing software system descriptions and for generating executable computer programs and computer system configurations from software system descriptions
US5826081A (en) 1996-05-06 1998-10-20 Sun Microsystems, Inc. Real time thread dispatcher for multiprocessor applications
US6144986A (en) 1997-03-27 2000-11-07 Cybersales, Inc. System for sorting in a multiprocessor environment
US6003112A (en) 1997-06-30 1999-12-14 Intel Corporation Memory controller and method for clearing or copying memory utilizing register files to store address information
US6378072B1 (en) * 1998-02-03 2002-04-23 Compaq Computer Corporation Cryptographic system
US6295598B1 (en) 1998-06-30 2001-09-25 Src Computers, Inc. Split directory-based cache coherency technique for a multi-processor computer system
US6289369B1 (en) * 1998-08-25 2001-09-11 International Business Machines Corporation Affinity, locality, and load balancing in scheduling user program-level threads for execution by a computer system
US6463457B1 (en) * 1999-08-26 2002-10-08 Parabon Computation, Inc. System and method for the establishment and the utilization of networked idle computational processing power
US6665699B1 (en) * 1999-09-23 2003-12-16 Bull Hn Information Systems Inc. Method and data processing system providing processor affinity dispatching
DE60033615T2 (de) 1999-10-21 2007-10-31 International Business Machines Corp. Verfahren und System, um das Verteilen von IP-Datagrammen auf mehrere Server gemäß einer definierten Strategie zu erzwingen
GB2394336B (en) 1999-11-19 2004-09-08 Gen Dynamics Decisions Systems Method of allocating memory
US7058750B1 (en) 2000-05-10 2006-06-06 Intel Corporation Scalable distributed memory and I/O multiprocessor system
US6981260B2 (en) 2000-05-25 2005-12-27 International Business Machines Corporation Apparatus for minimizing lock contention in a multiple processor system with multiple run queues when determining the threads priorities
US7565651B1 (en) 2000-05-25 2009-07-21 Oracle International Corporation Parallel task scheduling system for computers
US20030154284A1 (en) * 2000-05-31 2003-08-14 James Bernardin Distributed data propagator
US6986052B1 (en) 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
US6502170B2 (en) 2000-12-15 2002-12-31 Intel Corporation Memory-to-memory compare/exchange instructions to support non-blocking synchronization schemes
US7233998B2 (en) * 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
US6526491B2 (en) 2001-03-22 2003-02-25 Sony Corporation Entertainment Inc. Memory protection system and method for computer architecture for broadband networks
US6785756B2 (en) 2001-05-10 2004-08-31 Oracle International Corporation Methods and systems for multi-policy resource scheduling
US6738378B2 (en) 2001-08-22 2004-05-18 Pluris, Inc. Method and apparatus for intelligent sorting and process determination of data packets destined to a central processing unit of a router or server on a data packet network
US7127477B2 (en) * 2001-11-06 2006-10-24 Everyware Solutions Inc. Method and system for access to automatically synchronized remote files
US7089547B2 (en) * 2002-09-13 2006-08-08 International Business Machines Corporation Firmware updating
US7039736B2 (en) 2003-01-15 2006-05-02 Hewlett-Packard Development Company, L.P. Systems and methods for accessing bus-mastered system resources
JP2004287801A (ja) 2003-03-20 2004-10-14 Sony Computer Entertainment Inc 情報処理システム、情報処理装置、分散情報処理方法及びコンピュータプログラム
US7236738B2 (en) * 2003-08-01 2007-06-26 Pathfire, Inc. Multicast control systems and methods for dynamic, adaptive time, bandwidth,frequency, and satellite allocations
US7516456B2 (en) 2003-09-25 2009-04-07 International Business Machines Corporation Asymmetric heterogeneous multi-threaded operating system
US7236998B2 (en) * 2003-09-25 2007-06-26 International Business Machines Corporation System and method for solving a large system of dense linear equations
US7523157B2 (en) * 2003-09-25 2009-04-21 International Business Machines Corporation Managing a plurality of processors as devices
US7478390B2 (en) 2003-09-25 2009-01-13 International Business Machines Corporation Task queue management of virtual devices using a plurality of processors
US7321958B2 (en) * 2003-10-30 2008-01-22 International Business Machines Corporation System and method for sharing memory by heterogeneous processors
US8028292B2 (en) 2004-02-20 2011-09-27 Sony Computer Entertainment Inc. Processor task migration over a network in a multi-processor system
US7614053B2 (en) 2004-02-20 2009-11-03 Sony Computer Entertainment Inc. Methods and apparatus for task management in a multi-processor system
DE102004009497B3 (de) * 2004-02-27 2005-06-30 Infineon Technologies Ag Chipintegriertes Mehrprozessorsystem und Verfahren zur Kommunikation zwischen mehreren Prozessoren eines chipintegrierten Mehrprozessorsystems
US7298377B2 (en) * 2004-06-24 2007-11-20 International Business Machines Corporation System and method for cache optimized data formatting
US7304646B2 (en) * 2004-08-19 2007-12-04 Sony Computer Entertainment Inc. Image data structure for direct memory access
US7522168B2 (en) 2005-09-27 2009-04-21 Sony Computer Entertainment Inc. Cell processor task and data management
US8037474B2 (en) 2005-09-27 2011-10-11 Sony Computer Entertainment Inc. Task manager with stored task definition having pointer to a memory address containing required code data related to the task for execution
US8316220B2 (en) 2005-09-27 2012-11-20 Sony Computer Entertainment Inc. Operating processors over a network
US7975269B2 (en) 2005-09-27 2011-07-05 Sony Computer Entertainment Inc. Parallel processor methods and apparatus
US7734827B2 (en) 2005-09-27 2010-06-08 Sony Computer Entertainment, Inc. Operation of cell processors
US7506123B1 (en) 2005-09-27 2009-03-17 Sony Computer Entertainment Inc. Method and system for performing memory copy function on a cell processor
US8141076B2 (en) 2005-09-27 2012-03-20 Sony Computer Entertainment Inc. Cell processor methods and apparatus
US7512745B2 (en) * 2006-04-28 2009-03-31 International Business Machines Corporation Method for garbage collection in heterogeneous multiprocessor systems

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09179834A (ja) * 1995-12-25 1997-07-11 Hitachi Ltd 並列システムにおけるプロセスのスケジューリング方法
JP2001005679A (ja) * 1999-06-24 2001-01-12 Hitachi Ltd 電子計算機における処理の中断/再開方法
JP2002007364A (ja) * 2000-06-22 2002-01-11 Fujitsu Ltd 並列計算機システムのジョブスケジューリングを行うスケジューリング装置
JP2002207713A (ja) * 2001-01-11 2002-07-26 Matsushita Electric Ind Co Ltd Cpu間データ通信方法および装置
WO2004015553A1 (en) * 2002-08-13 2004-02-19 Nokia Corporation Computer architecture for executing a program in a secure of insecure mode
JP2005535953A (ja) * 2002-08-13 2005-11-24 ノキア コーポレイション セキュアモードまたは非セキュアモードでプログラムを実行するコンピュータアーキテクチャ
JP2004246702A (ja) * 2003-02-14 2004-09-02 Toshiba Corp 計算機システム、計算機装置、計算機システムにおけるデータアクセス方法及びプログラム
JP2004320174A (ja) * 2003-04-11 2004-11-11 Matsushita Electric Ind Co Ltd 認証システム、認証装置、認証方法
JP2005235229A (ja) * 2004-02-20 2005-09-02 Sony Computer Entertainment Inc マルチプロセッサシステムにおけるプロセッサタスクの移動方法および装置

Also Published As

Publication number Publication date
EP1768033A1 (en) 2007-03-28
US20070083755A1 (en) 2007-04-12
JP2007095066A (ja) 2007-04-12
US20100235651A1 (en) 2010-09-16
US8135867B2 (en) 2012-03-13
US7734827B2 (en) 2010-06-08

Similar Documents

Publication Publication Date Title
JP4719656B2 (ja) ネットワーク上におけるプロセッサ制御技術
US11088846B2 (en) Key rotating trees with split counters for efficient hardware replay protection
JP4719655B2 (ja) ネットワーク上におけるプロセッサ制御技術
KR100924043B1 (ko) 보안 데이터 프로세싱 및 전송을 위한 방법들 및 장치들
JP4226816B2 (ja) マイクロプロセッサ
US7475257B2 (en) System and method for selecting and using a signal processor in a multiprocessor system to operate as a security for encryption/decryption of data
US8356361B2 (en) Secure co-processing memory controller integrated into an embedded memory subsystem
US7478235B2 (en) Methods and systems for protecting data in USB systems
US20080104673A1 (en) Architecture for virtual security module
JP6682752B2 (ja) セキュアエンクレーブを用いてデータ暗号化を強化するための技術
US20230129610A1 (en) Multiple physical request interfaces for security processors
JP4643702B2 (ja) マイクロプロセッサ
US8695102B2 (en) Controlling execution of executables between partitions in a multi-partitioned data processing system
JP4375980B2 (ja) マルチタスク実行システム及びマルチタスク実行方法
KR20090059602A (ko) 세션 메모리 버스를 구비한 암호화 장치
US20240070091A1 (en) Isolation of memory regions in trusted domain
US20220245252A1 (en) Seamless firmware update mechanism
US20070168299A1 (en) Method and system for protection and security of IO devices using credentials
CN117546165A (zh) 安全加密的通信机制

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090722

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100816

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100824

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101025

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20101126

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20101220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110118

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110311

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110329

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110404

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140408

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees