(57)【要約】  システムオンチップ（ＳＯＣ）デバイスにおいてデータパスセキュリティを実現するさまざまな実施形態が開示される。一実施形態では、装置は、ＳＯＣデバイスに組み込まれる共有オンチップバスに接続される１つ以上の機能ユニットを、１つ以上の安全なデータパスを介し他の機能ユニットと通信するよう形成するセキュリティコントローラを含みうる。１つ以上の機能ユニットは、クリアデータを暗号化し、暗号化データを安全なデータパスを介し送信し、安全なデータパスから暗号化データを受信し、暗号化されたデータを復号化することにより、クリアなデータに戻しうる。他の実施形態も記載されかつ請求される。【選択図】なし
2009545785.tif 000002
【特許請求の範囲】
【請求項１】
セキュリティコントローラを含む装置であって、
前記セキュリティコントローラは、クリアデータを暗号化し、暗号化データを安全なデータパスを介して送信し、安全なデータパスから暗号化データを受信し、前記暗号化データを復号化してクリアデータに戻すことにより、システムオンチップデバイスに組み込まれた共有オンチップバスに接続される１つ以上の機能ユニットを、１つ以上の安全なデータパスを介して他の機能ユニットと通信させる、装置。
【請求項２】
前記セキュリティコントローラのみが前記安全なデータパスを形成しうる、請求項１に記載の装置。
【請求項３】
前記セキュリティコントローラは、前記１つ以上の機能ユニットに対して１つ以上のデータパスセキュリティキーを確定する、請求項１に記載の装置。
【請求項４】
前記１つ以上のデータパスセキュリティキーは、動的に変更されうる、請求項３に記載の装置。
【請求項５】
前記セキュリティコントローラは、暗号化データを受信する機能ユニットの少なくとも１つのアドレスまたはアドレス範囲にアドレスに依存するデータパスセキュリティキーをマップするメモリ管理能力を有する、請求項３に記載の装置。
【請求項６】
前記１つ以上のデータパスセキュリティキーは、許可された機能ユニットがクリアデータを見ることができるようにする、請求項２に記載の装置。
【請求項７】
クリアデータを見ることを許可されていない機能ユニットは、前記デバイス内の暗号化データを操作しうる、請求項６に記載の装置。
【請求項８】
前記１つ以上のデータパスセキュリティキーは、クリアデータを暗号化することができる、請求項２に記載の装置。
【請求項９】
前記セキュリティコントローラは、クリアデータを暗号化し、かつ、暗号化データを復号化すべく、前記１つ以上の機能ユニットでデータパスセキュリティロジックを確定する、請求項１に記載の装置。
【請求項１０】
前記機能ユニットの１つ以上は、暗号化データを格納するオフチップメモリに接続される、請求項１に記載の装置。
【請求項１１】
メディアコンテンツを受信するアンテナと、
前記メディアコンテンツを処理するシステムオンチップ（ＳＯＣ）デバイスとを備え、
前記ＳＯＣデバイスは、共有オンチップバスに接続され、１つ以上の安全なデータパスを介して、他の機能ユニットとの間で暗号化されたメディアコンテンツを通信する１つ以上の機能ユニットを含む、
システム。
【請求項１２】
前記機能ユニットの１つ以上は、１つ以上のデータパスセキュリティキーを含む、請求項１１に記載のシステム。
【請求項１３】
前記１つ以上のデータパスセキュリティキーは、前記暗号化されたメディアコンテンツを復号化するユニット入力キー、または、クリアなメディアコンテンツを暗号化するユニット出力キーの少なくとも１つを含む、請求項１２に記載のシステム。
【請求項１４】
前記機能ユニットの少なくとも１つは、クリアなメディアコンテンツを暗号化して暗号化されたメディアコンテンツを復号化するデータパスセキュリティロジックを含む、請求項１１に記載のシステム。
【請求項１５】
前記機能ユニットの１つ以上は、暗号化メディアコンテンツを格納するオフチップメモリに接続される、請求項１１に記載のシステム。
【請求項１６】
システムオンチップデバイスに組み込まれた共有オンチップバスに接続される機能ユニット間に１つ以上の安全なデータパスを形成することと、
前記１つ以上の安全なデータパスを介し暗号化データを通信することと、
を含む方法。
【請求項１７】
１つ以上のデータパスセキュリティキーを有する１つ以上の機能ユニットを形成することをさらに含む、請求項１６に記載の方法。
【請求項１８】
１つ以上のデータパスセキュリティキーを用いてクリアデータを暗号化することをさらに含む、請求項１６に記載の方法。
【請求項１９】
１つ以上のデータパスセキュリティキーを用いて暗号化データを復号化することをさらに含む、請求項１６に記載の方法。
【請求項２０】
前記１つ以上の安全なデータパスを介して受信された暗号化データをオフチップメモリに送信することをさら含む、請求項１６に記載の方法。
【請求項２１】
複数の命令を含む機械可読媒体を備える物品であって、前記命令は実行されると、システムに、
システムオンチップデバイスに組み込まれた共有オンチップバスに接続される機能ユニット間に１つ以上の安全なデータパスを形成することと、
前記１つ以上の安全なデータパスを介し暗号化データを通信することと、
を実行させる、物品。
【請求項２２】
複数の命令をさらに含み、前記命令は、実行されると、１つ以上のデータパスセキュリティキーを有する１つ以上の機能ユニットをシステムに形成させる、請求項２１に記載の物品。
【請求項２３】
複数の命令をさらに含み、前記命令は、実行されると、システムに、１つ以上のデータパスセキュリティキーを用いてクリアデータを暗号化させる、請求項２１に記載の物品。
【請求項２４】
複数の命令をさらに含み、前記命令は、実行されると、システムに、１つ以上のデータパスセキュリティキーを用いて暗号化データを復号化させる、請求項２１に記載の物品。
【請求項２５】
複数の命令を含み、前記命令は、実行されると、システムに、前記１つ以上の安全なデータパスを介して受信された暗号化データをオフチップメモリに送信させる、請求項２１に記載の物品。
【発明の詳細な説明】
【背景技術】
【０００１】
半導体技術の進歩により、コンピュータまたは電子システムの機能要素は、システムオンチップ（ＳＯＣ）デバイスとして集積化されて設計されることが可能になってきている。ＳＯＣデバイスでは、通常マイクロプロセッサ、マイクロコントローラ、データコンバータ、信号プロセッサ、メモリ、および、さまざまなインターフェースなどの個別のチップとして製造される構成要素は、例えば、シングルチップのスタンドアローンシステムに組み込まれうる。ＳＯＣデバイスの機能ユニットは、オンチップバスバスを介し内部で互いに通信するだけでなく、オフチップランダムアクセスメモリ（ＤＲＡＭ）のような１つ以上の外部またはオフチップ構成要素とも通信するよう設計されうる。
【０００２】
ＳＯＣデバイスは、パソコン（ＰＣ）、一般電子機器（ＣＥ）、および／または、モバイルプラットフォーム用のネットワーキング、マルチメディア、および／または、通信アプリケーションの１つ以上を実行するようプログラムされうる。このようなアプリケーションが実行されると、ＳＯＣデバイスは、さまざまな規制要件、および、品質標準に従い、データをハッキングまたは他の未許可の使用から保護すべく、特定のセキュリティ対策を講じるよう要求されうる。現在のセキュリティ対策の実施態様では、オフチップＤＲＡＭなどの外部メモリ間で送受信されるデータを保護する改ざん防止コードまたは他の機構を提供するが、これでは、ＳＯＣデバイスのオンチップデータパスの安全を守ることができない。
【図面の簡単な説明】
【０００３】
【図１】データパスセキュリティを提供するセキュリティコントローラを備えるＳＯＣデバイスの一実施形態である。
【０００４】
【図２】データパスセキュリティシステムの一実施形態を示す。
【０００５】
【図３】セキュリティコントローラの一実施形態を示す。
【０００６】
【図４】データパスセキュリティのロジックフローの一実施形態を示す。
【０００７】
【図５】データパスセキュリティロジックを含む製品の一実施形態を示す。
【発明を実施するための最良の形態】
【０００８】
ＳＯＣデバイスにおけるデータパスセキュリティを提供するさまざまな実施形態が記載される。一実施形態では、セキュリティコントローラは、ＳＯＣデバイスに組み込まれる共有オンチップバスに接続される１つ以上の機能ユニットを、１つ以上の安全なデータパスを介し他の機能ユニットと通信するよう構成しうる。１つ以上の機能ユニットは、クリアデータを暗号化し、暗号化データを安全なデータパスを介し送信し、暗号化データを安全なデータパスから受信して、暗号化データを復号化してクリアデータに戻しうる。
【０００９】
実施形態の完全なる理解をもたらすべく、多くの具体的な詳細が記載されている。しかしながら、これらの特定の詳細がなくても実施形態を実施できることが当業者であれば理解できよう。他の例では、よく知られた動作、構成要素、および、回路は、実施形態をあいまいにしないよう、詳しく説明していない。本願明細書中に開示される特定の構造および機能上の詳細は、代表例であって、実施形態の範囲を必ずしも限定するものではないと理解されたい。
【００１０】
図１は、ＳＯＣデバイス１００の一実施形態を示すブロック図である。一般に、ＳＯＣデバイス１００は、所定のセットの設計パラメータまたはパフォーマンスの制約条件に要求されるとおりに、ハードウェア、ソフトウェア、または、その組み合わせとして実装されうる情報を通信するためのさまざまな物理的および／または論理的な構成要素を備える。図１は、限られた数の構成要素を例として示しうるが、所定の実施態様に用いられうる構成要素の数は、それより多くても少なくてもよいと理解されたい。
【００１１】
さまざまな実施形態において、ＳＯＣデバイス１００は、パソコン（ＰＣ），セットトップボックス（ＳＴＢ）、テレビ（ＴＶ）デバイス、インターネットプロトコルテレビ（ＩＰＴＶ）デバイス、メディアプレーヤ、および／または、スマートフォンなどのデバイス内のおよび／またはデバイスに接続されるシステムとして、ＰＣ、ＣＥ、および／または、モバイルプラットフォーム用に実装されうる。このようなデバイスの他の例は、これらに限定されないが、ワークステーション、端末、サーバ、メディア機器、オーディオ／ビデオ（Ａ／Ｖ）レシーバ、デジタル音楽プレーヤ、娯楽システム、デジタルテレビ（ＤＴＶ）デバイス、ハイビジョンテレビ（ＨＤＴＶ）デバイス、直接放送衛星テレビ（ＤＢＳ）デバイス、ビデオオンデマンド（ＶＯＤ）デバイス、ウェブテレビデバイス、デジタルビデオレコーダ（ＤＶＲ）デバイス、デジタル多用途ディスク（ＤＶＤ）デバイス、ハイビジョンＤＶＤ（ＨＤ−ＤＶＤ）デバイス、ブルーレイディスク（ＢＤ）デバイス、ビデオホームシステム（ＶＨＳ）デバイス、デジタルＶＨＳデバイス、デジタルカメラ、ゲーム機、ディスプレイデバイス、ノートパソコン、ラップトップコンピュータ、ポータブルコンピュータ、ハンドヘルドコンピュータ、パーソナル携帯情報機器（ＰＤＡ）、ボイスオーバーＩＰ、（ＶｏＩＰ）デバイス、携帯電話、携帯電話とＰＤＡの組合せ、ポケットベル、メッセージ送信デバイス、ワイヤレスアクセスポイント（ＡＰ）、ワイヤレスクライアントデバイス、ワイヤレスステーション（ＳＴＡ）、基地局（ＢＳ）、加入者ステーション（ＳＳ）、移動加入者センター（ＭＳＣ）、および、モバイルユニットなどを含みうる。
【００１２】
モバイル用途では、例えば、ＳＯＣデバイス１００は、１つ以上の送信機、受信機、トランシーバ、チップセット、増幅器、フィルタ、制御ロジック、ネットワークインターフェースカード（ＮＩＣ）、および、アンテナなどの無線通信用の１つ以上のインターフェースおよび／または構成要素を含むデバイス内に実装されるおよび／またはデバイスに接続されうる。アンテナの例は、これらに限定されないが、内部アンテナ、全方向性アンテナ、モノポールアンテナ、ダイポールアンテナ、エンドフェッドアンテナ、円偏光アンテナ、マイクロストリップアンテナ、ダイバーシティアンテナ、デュアルアンテナ、および、アンテナアレイなどを含みうる。
【００１３】
さまざまな実施形態では、ＳＯＣデバイス１００は、有線通信システム、無線通信システム、または、その組合せの一部として形成されうる。例えば、ＳＯＣデバイス１００は、１つ以上のタイプの有線通信リンクを介し情報を通信しうる。有線通信リンクの例は、これらに限定されないが、ワイヤ、ケーブル、バス、プリント回路基板、（ＰＣＢ）、イーサネット通信、ピア・ツー・ピア（Ｐ２Ｐ）接続、バックプレーン、スイッチファブリック、半導体材料、ツイストペアワイヤ、同軸ケーブル、および、光ファイバー接続などを含みうる。ＳＯＣデバイス１００は、１つ以上のタイプの無線通信リンクを介し情報を通信してもよい。無線通信リンクの例は、これらに限定されないが、無線チャネル  、衛星チャネル、テレビチャネル、放送チャネル、赤外線チャネル、高周波（ＲＦ）チャネル、Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ（ＷｉＦｉ）チャネル、ＲＦスペクトルの一部、および／または、１つ以上のライセンスを受けたまたはライセンスフリーの周波数帯を含みうる。特定の通信媒体を例として用いることにより特定の実施形態を例示しているが、本願明細書にて採りあげられる原理および技術は、さまざまな通信媒体を技術と併せて用いることにより実装されうると理解されたい。
【００１４】
さまざまな実施形態において、ＳＯＣデバイス１００は、例えば、ワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、無線ＷＡＮ（ＷＷＡＮ）、無線ＬＡＮ（ＷＬＡＮ）、無線ＭＡＮ（ＷＭＡＮ）、無線パーソナルエリアネットワーク(WPAN)、Ｗｏｒｌｄｗｉｄｅ  Ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  ｆｏｒ  Ｍｉｃｒｏｗａｖｅ  Ａｃｃｅｓｓ（ＷｉＭＡＸ）ネットワーク、ｂｒｏａｄｂａｎｄ  ｗｉｒｅｌｅｓｓ  ａｃｃｅｓｓ（ＢＷＡ）ネットワーク、インターネット、ワールドワイドウェブ、電話網、無線網、テレビジョンネットワーク、ケーブルネットワーク、直接放送衛星（ＤＢＳ）ネットワークなどの衛星ネットワーク、符号分割多重アクセス（ＣＤＭＡ）ネットワーク、広帯域ＣＤＭＡ（ＷＣＤＭＡ）などの第三世代（３Ｇ）ネットワーク、第四世代（４Ｇ）ネットワーク、時分割多重アクセス（ＴＤＭＡ）ネットワーク、拡張ＴＤＭＡ（Ｅ−ＴＤＭＡ）セルラ無線電話ネットワーク、Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ（ＧＳＭ）ネットワーク、汎用パケット無線サービス付きＧＳＭ（ＧＰＲＳ）システム（ＧＳＭ／ＧＰＲＳ）ネットワーク、同期式分割多重アクセス（ＳＤＭＡ）ネットワーク、時分割同期ＣＤＭＡ（ＴＤ−ＳＣＤＭＡ）ネットワーク、直交周波数分割多重方式（ＯＦＤＭ）ネットワーク、直交周波数分割多重アクセス（ＯＦＤＭＡ）ネットワーク、Ｎｏｒｔｈ  Ａｍｅｒｉｃａｎ  Ｄｉｇｉｔａｌ  Ｃｅｌｌｕｌａｒ（ＮＡＤＣ）セルラ無線電話ネットワーク、Ｎａｒｒｏｗｂａｎｄ  Ａｄｖａｎｃｅｄ  Ｍｏｂｉｌｅ  Ｐｈｏｎｅ  Ｓｅｒｖｉｃｅ（ＮＡＭＰＳ）ネットワーク、Ｕｎｉｖｅｒｓａｌ  Ｍｏｂｉｌｅ  Ｔｅｌｅｐｈｏｎｅ  Ｓｙｓｔｅｍ（ＵＭＴＳ）ネットワーク、および／または、記載された実施形態に従いデータを搬送するよう構成された他のいかなる有線または無線通信ネットワークなどのネットワーク内で動作しうる。
【００１５】
ＳＯＣデバイス１００は、メディア情報および制御情報などの１つ以上のタイプの情報を通信しうる。メディア情報とは、一般的に、画像情報、ビデオ情報、オーディオ情報、Ａ／Ｖ情報、グラフィック情報、音声情報、テキスト情報、数値情報、英数字記号、および、文字符号などの、ユーザにとって意味のある内容を表すいかなるデータのことも指しうる。制御情報とは、一般的に、自動化システムにとって意味のあるコマンド、命令、または、制御ワードを表すいかなるデータのことも指しうる。例えば、制御情報は、システムを介してメディア情報を送るために、または、該メディア情報を、ノードに特定の方法で処理させるべく用いられうる。メディア情報および制御情報は、多数の異なるデバイスまたはネットワークとの間で通信されうる。
【００１６】
多数の実施態様において、メディア情報および制御情報は、一連のパケットにセグメント化されうる。各パケットは、例えば、ビットまたはバイトで表される固定のまたはさまざまなサイズを有する不連続なデータセットを含みうる。記載された実施形態は、パケット、フレーム、フラグメント、セル、ウィンドウ、および、ユニットなどあらゆるタイプの通信コンテンツまたはフォーマットにも適用されうると理解されたい。
【００１７】
ＳＯＣデバイス１００は、１つ以上のプロトコルに従い情報を通信しうる。プロトコルは、ノード間の通信を管理する予め定められたルールまたは命令一式を含む。さまざまな実施形態では、例えば、通信システム１００は、媒体アクセス制御（ＭＡＣ）プロトコル、物理層コンバージェンスプロトコル（ＰＬＣＰ）、シンプルネットワークマネジメントプロトコル（ＳＮＭＰ）、非同期転送モード（ＡＴＭ）プロトコル、フレームリレープロトコル、システムネットワークアーキテクチャ（ＳＮＡ）プロトコル、トランスポートコントロールプロトコル（ＴＣＰ）、インターネットプロトコル（ＩＰ）、ＴＰＣ／ＩＰ、Ｘ．２５、ハイパーテキストトランスファープロトコル（ＨＴＴＰ）、および、ユーザデータグラムプロトコル（ＵＤＰ）などの１つ以上のプロトコルを用いることができる。
【００１８】
ＳＯＣデバイス１００は、国際電気通信連合（ＩＴＵ）、国際標準化機構（ＩＳＯ）、国際電気標準会議（ＩＥＣ）、電気電子学会（ＩＥＥＥ）、および、インターネット技術特別調査委員会（ＩＥＴＦ）などの標準機構によって公布された１つ以上の規格に従い、情報を通信しうる。さまざまな実施形態では、例えば、ＳＯＣデバイス１００は、ＩＴＵ／ＩＥＣ  Ｈ．２６３規格（低速ビットレート通信のためのビデオコーディング、ＩＴＵ−Ｔ推奨Ｈ．２６３ｖ３、２０００年１１月発布）、ＩＴＵ／ＩＥＣ  Ｈ．２６４規格（超低速ビットレート通信のためのビデオコーディング、ＩＴＵ−Ｔ推奨Ｈ．２６４、２００３年５月発布）、Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）規格（例えば、ＭＰＥＧ−１、ＭＰＥＧ−２、ＭＰＥＧ−４）、Ｄｉｇｉｔａｌ  Ｖｉｄｅｏ  Ｂｒｏａｄｃａｓｔｉｎｇ（ＤＶＢ）terrestrial（ＤＶＢ−Ｔ）規格、ＤＶＢ  ｓａｔｅｌｌｉｔｅ  （ＤＶＢ−ＳまたはＳ２）規格、ＤＶＢｃａｂｌｅ（ＤＶＢ−Ｃ）規格、ＤＶＢ  ｔｅｒｒｅｓｔｒｉａｌ  ｆｏｒ  ｈａｎｄｈｅｌｄｓ  （ＤＶＢ−Ｈ）、テレビジョン委員会（ＮＴＳＣ）およびＰｈａｓｅ  Ａｌｔｅｒａｔｉｏｎ  ｂｙ  Ｌｉｎｅ（ＰＡＬ）規格、Ａｄｖａｎｃｅｄ  Ｔｅｌｅｖｉｓｉｏｎ  Ｓｙｓｔｅｍｓ  Ｃｏｍｍｉｔｔｅｅ（ＡＴＳＣ）規格、ウィンドウズマルチメディアビデオ（ＷＭＶ）バージョン９に基づくＳＭＰＴＥ４２１ＭまたはＶＣ−１規格などのＳｏｃｉｅｔｙ  ｏｆ  Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  ａｎｄ  Ｔｅｌｅｖｉｓｉｏｎ  Ｅｎｇｉｎｅｅｒｓ（ＳＭＰＴＥ）規格、Ｄｉｇｉｔａｌ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｅｎｔ  Ｐｒｏｔｅｃｔｉｏｎ  ｏｖｅｒ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ（ＤＴＣＰ−ＩＰ）規格、および、Ｈｉｇｈ  ｐｅｒｆｏｒｍａｎｃｅ  ｒａｄｉｏ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＨｉｐｅｒＬＡＮ）規格などのメディア処理規格に従い情報を通信しうる。
【００１９】
さまざまな実施形態では、ＳＯＣデバイス１００は、メディアソースからメディアコンテンツを受信しうる。メディアソースは、一般的に、静的または動的メディアコンテンツをＳＯＣデバイス１００に配信することが可能なさまざまなデバイスおよび／またはシステムを含みうる。一実施形態では、例えば、メディアソースは、ブロードキャストまたはストリーミングメディアコンテンツを提供するよう構成されるマルチメディアサーバを含みうる。他の実施形態では、メディアソースは、電波（ＯＴＡ）放送方式、ＤＶＢ方式、ラジオ放送方式、衛星放送法式などのメディア配信方式（ＤＳ）または放送方式を含むかまたはその一部を形成しうる。メディアソースは、ＶＯＤシステム、または、ネットワークを介しユーザがビデオコンテンツを選択し、受信し、見ることを可能にする双方向テレビシステム内に実装されうる。メディアソースは、ブロードバンド接続などのＩＰ接続を介しデジタルテレビジョンのコンテンツを配信するＩＰＴＶシステムを含むかまたはその一部を形成しうる。実施形態は、上記文脈に限定されない。
【００２０】
ＳＯＣデバイス１００は、所定の実施態様に要求されるとおりに、有線通信リンク、無線通信リンク、または、その組合せなどの情報を伝達することが可能なさまざまなタイプの通信チャネルを介し、メディアソースに結合されうる。ＳＯＣデバイス１００は、さまざまなタイプの構成要素またはインターフェースを介しメディアソースからメディアコンテンツを受信しうる。例えば、ＳＯＣデバイス１００は、オープンケーブル（ＯＣ）チューナ、ＮＴＳＣ／ＰＡＬチューナ、チューナ／デモジュレータ、ポイントオブデポロイメント（ＰＯＤ）／ＤＶＢ共通インターフェース（ＤＶＢ−ＣＩ）、Ａ／Ｖデコーダインターフェース、イーサネットインターフェース、および、ＰＣＩインターフェースなどの１つ以上のチューナおよび／またはインターフェースを介してメディアコンテンツを受信しうる。
【００２１】
ＳＯＣデバイス１００に配信されるメディアコンテンツは、画像情報、オーディオ情報、ビデオ情報、Ａ／Ｖ情報、および／または、他のデータなどのさまざまなタイプの情報を含みうる。いくつかの実施態様において、メディアソースは、ＳＴＢ、ＩＰＴＶデバイス、ＶＯＤデバイス、および、メディアプレーヤなどのデバイスにより用いられるさまざまなフォーマットでメディアコンテンツを配信しうる。
【００２２】
メディアコンテンツは、ＳＯＣデバイス１００がデータを効率良く格納／およびまたは転送できるよう、圧縮されて配信されうる。さまざまな実施態様において、メディアコンテンツは、離散型コサイン変換（ＤＣＴ）、一時的圧縮、動き補償、および、量子化などの技術を用いて圧縮される。メディアコンテンツのビデオ圧縮は、例えば、Ｈ．２６４、ＭＰＥＧ−２、ＭＰＥＧ−４、および、ＶＣ−１などの規格に従い実行されうる。
【００２３】
メディアコンテンツは、未許可の受信、コピー、および／または、閲覧を防止すべく、スクランブルをかけたおよび／または暗号化されたメディアコンテンツとして配信されうる。さまざまな実施形態では、例えば、ＳＯＣデバイス１００は、条件付アクセス（ＣＡ）システムから配信されたスクランブルをかけたおよび／または暗号化されたメディアコンテンツを受信しうる。このような実施形態では、ＣＡシステムは、スクランブル用アルゴリズムをメディアストリームに適用することにより、アクセスは、許可されたＳＴＢなど有効なデバイスのみに限定される。スクランブルをかけたメディアストリームは、許可されたＳＴＢにより用いられうる暗号化キーを含むので、媒体ストリームは暗号解読され、クリアなオリジナルコンテンツに戻る。
【００２４】
さまざまな実施形態では、ＳＯＣデバイス１００は、Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ（ＡＥＳ）（国立標準技術研究所（ＮＩＳＴ）、Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ（ＡＥＳ）、連邦情報処理規格（ＦＩＰＳ）Ｐｕｂｌｉｃａｔｉｏｎ  １９７、２００１年１１月２６日発行）に従い暗号化をサポートしうる。ＳＯＣデバイス１００は、Ａｄｖａｎｃｅｄ  Ａｃｃｅｓｓ  Ｃｏｎｔｅｎｔ  Ｓｙｓｔｅｍ  （ＡＡＣＳ）による暗号化、データ暗号化規格（ＤＥＳ）による暗号化、Ｔｒｉｐｌｅ  ＤＥＳ  （３ＤＥＳ）  ｆｏｒ  ｋｅｙ  ｌａｄｄｅｒ  ｇｅｎｅｒａｔｉｏｎ，  Ｒｉｖｅｓｔ，  Ｓｈａｍｉｒ，  ａｎｄ  Ａｄｌｅｍａｎ  （ＲＳＡ）による暗号化、Ｅｌｌｉｐｔｉｃ  ｃｕｒｖｅ  ｃｒｙｐｔｏｇｒａｐｈｙ  （ＥＣＣ）による暗号化、ハードディスクドライブ（ＨＤＤ）による暗号化、ＤＴＣＰ−ＩＰによる暗号化、Ｃｒｙｐｔｏｍｅｒｉａ  Ｃｉｐｈｅｒ  （Ｃ２）  による暗号化、および、Ｃｏｎｔｅｎｔ  Ｓｃｒａｍｂｌｅ  Ｓｙｓｔｅｍ（ＣＳＳ）による暗号化などもサポートしうる。
【００２５】
図１に示されるように、ＳＯＣデバイス１００は、複数の機能ユニット１０２−１−Ｎを含みうる。Ｎは、ＳＯＣデバイス１００の物理的容量によってのみ制限される任意の正の整数値を表しうる。複数の機能ユニット１０２−１−Ｎは、単一のチップまたは集積回路（ＩＣ）におけるＳＯＣデバイス１００内に実装されうる。ＩＣまたはＰＣＢは、例えば、導電トレース、バイア構造、および／または、エッチング、結合、穿孔、および、メッキなどのプロセスによって作製される１つ以上の積層体を含みうる。いくつかの実施形態では、ＰＣＢは、フレキシブルプリント回路などの可撓性材料を含みうる。
【００２６】
さまざまな実施形態では、複数の機能ユニット１０２−１−Ｎのそれぞれは、ＳＯＣデバイス１００の１つ以上の動作を実行するハードウェアおよび／またはソフトウェアを含みうる。機能ユニット１０２−１−Ｎは、例えば、中央処理装置（ＣＰＵ）、マイクロコントローラ、マイクロプロセッサ、汎用プロセッサ、専用プロセッサ、チップマルチプロセッサ（ＣＭＰ）、メディアプロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、ネットワークプロセッサ、コプロセッサ、入出力（Ｉ／Ｏ）プロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、および、プログラマブルロジックデバイス（ＰＬＤ）などのさまざまなロジックデバイスにより実装されうる。さまざまな実施態様において、１つ以上の機能ユニット１０２−１−Ｎは、デジタルロジックを実行するおよび／または実行の多数のスレッドを提供するよう配列された１つ以上の処理コアを含みうる。
【００２７】
機能ユニット１０２−１−Ｎは、また、揮発性または不揮発性メモリ、取り外しができるまたはできないメモリ、消去できるまたはできないメモリ、および、書き込み可能または再書き込み可能なメモリなどの１つ以上のタイプのコンピュータ可読記憶媒体により実装されうるメモリを含みうる。さまざまな実施形態では、機能ユニット１０２−１−Ｎの１つ以上は、メインメモリにおけるアドレス指定可能なメモリ位置、メモリ空間、および／または、例えば、ランダムアクセスメモリ（ＲＡＭ）および／またはリードオンリーメモリ（ＲＯＭ）として実装されるレジスタを含みうる。
【００２８】
図１の実施形態に示されるように、複数の機能ユニット１０２−１−Ｎは、ＤＲＡＭコントローラ１０２−１、ホストＣＰＵ１０２−２、エンコーダ／デコーダ（コーデック）１０２−３、周辺インターフェース（Ｉ／Ｆ）１０２−４、ＤＳＰ１０２−５、トランスポートデマルチプレクサ（ｄｅｍｕｘ）１０２−６、ディスプレイＩ／Ｆ  １０２−７、および、フラッシュＩ／Ｆ  １０２−Ｎを含みうる。実施形態は、上記文脈に限定されない。
【００２９】
この実施形態において、ＤＲＡＭコントローラ１０２−１は、同期ダイナミックＲＡＭ（ＳＤＲＡＭ）、Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ  ＲＡＭ（ＤＤＲ  ＲＡＭ）、および、ＤＤＲ  ＳＤＲＡＭなどのオフチップＤＲＡＭからのデータの格納・検索を制御しうる。
【００３０】
さまざまな実施態様では、データは、ＳＯＣデバイス１００により実行されるネットワーキング、マルチメディア、および／または、通信アプリケーションに関連してオフチップＤＲＡＭに／から格納および／または検索されうる。いくつかのケースでは、ＤＲＡＭコントローラ１０２−１は、改ざん防止コード、および、他の機構を実装することにより、オフチップＤＲＡＭに／から送受信されるデータを保護する。
【００３１】
ホストＣＰＵ１０２−２は、初期化（例えばブート）、および、ＳＯＣデバイス１００用のネットワーキング、マルチメディア、および／または、通信アプリケーションを管理または制御するコマンドを発行するなどのさまざまな動作を実行しうる。ホストＣＰＵ１０２−２は、このようなアプリケーションを制御すべくＳＯＣデバイス１００内のデータの操作（例えば、読み取り、書き込み、および、消去）を管理しうる。さまざまな実施形態において、ホストＣＰＵ１０２−２は、ソフトウェア（例えばオペレーティングシステム（ＯＳ）ソフトウェア、アプリケーションソフトウェア）、コード（例えばブートコード）、および／または、ファームウェアとして実装されるロジックを実行するよう構成されるマイクロコントローラ、または、他のコンピュータを含みうる。
【００３２】
コーデック１０２−３は、ＳＯＣデバイス１００内のデータに対するさまざまなエンコーディング、デコーディング、および／または、トランスコーディング動作を実行しうる。コーデック１０２−３は、例えば、プレイバックの前に圧縮されたメディアコンテンツを解凍するなどの動作を実行する１つ以上のオーディオおよび／またはビデオコーデック（例えば、Ｈ．２６４、ＭＰＥＧ−２、ＭＰＥＧ−４、ＶＣ−Ｉコーデック）を含みうる。さまざまな実施態様では、コーデックは、ＤＲＡＭにおける暗号化コードを含むおよび／または固定のマスクＲＯＭを用いることにより、未許可のコードの実行を防止する。例えば、ホストベースのソフトコーデックは、隔離された実行を保証するためのものである。
【００３３】
周辺Ｉ／Ｆ  １０２−４は、ＳＯＣデバイス１００に配信されたデータをオフチップメディアソースから受信しうる。さまざまな実施態様では、周辺Ｉ／Ｆ  １０２−４は、ＩＰベースのイーサネットまたはＰＣＩ接続を介し配信されるメディアコンテンツを受信しうる。
【００３４】
ＤＳＰ１０２−５は、ＳＯＣデバイス１００内のデータに対しさまざまな信号処理動作を実行しうる。さまざまな実施態様において、ＤＳＰ１０２−５は、ＳＯＣデバイス１００のネットワーキング、マルチメディア、および／または、通信アプリケーションのためのオーディオ信号処理、デジタル画像処理、および／または、音声処理動作を実行しうる。
【００３５】
トランスポートデマルチプレクサ１０２−６は、ＳＯＣデバイス１００に配信されたスクランブルをかけたおよび／または暗号化メディアコンテンツを受信して、当該メディアコンテンツを暗号解読および／または復号化することにより、クリアなオリジナルコンテンツに戻しうる。さまざまな実施態様では、トランスポートデマルチプレクサ１０２−６は、メディアコンテンツを、１つ以上のチューナおよび／またはインターフェースを介し、スクランブルをかけたおよび／または暗号化されたトランスポートストリームとして受信する。トランスポートデマルチプレクサ１０２−６は、ストリームを逆多重化しうる。例えば、ＳＯＣデバイス１００に着信するストリームは、単一のマルチプログラムトランスポートストリームに時分割される多数のオーディオおよびビデオストリームを含み、トランスポートデマルチプレクサ１０２−６は、マルチプログラムトランスポートストリームを１つ以上のスタンドアローンストリーム（例えば、ビデオストリーム、オーディオストリーム、データストリームなど）に分割しうる。
【００３６】
ディスプレイＩ／Ｆ  １０２−７は、スクリーンまたは他のユーザインターフェース（ＵＩ）上でメディアコンテンツをＲｅｎｄｉｎｇし、表示し、および／または、再生すべく、ＳＯＣデバイス１００内のデータに対しさまざまな処理動作を実行しうる。さまざまな実施態様では、ディスプレイＩ／Ｆ  １０２−７は、２Ｄ／３Ｄグラフィックパフォーマンス、マルチビデオテクスチャ、テクスチャブレンディング、および／または、テクスチャ圧縮を含みうる。
【００３７】
フラッシュＩ／Ｆ  １０２−Ｎは、ＮＯＲまたはＮＡＮＤフラッシュメモリなどのオフチップフラッシュメモリからのデータの格納・検索を制御しうる。さまざまな実施態様では、データは、ＳＯＣデバイス１００により実行されるネットワーキング、マルチメディア、および／または、通信アプリケーションと接続するオフチップフラッシュメモリに／から格納および／または検索されうる。
【００３８】
図１の実施形態に示されるように、機能ユニット１０２−１−Ｎは、バス１０４により接続および／または論理的に結合されうる。さまざまな実施形態では、バス１０４は、ＳＯＣデバイス１００内の機能ユニット１０２−１−Ｎのそれぞれを相互接続しうる。バス１０４は、アドレス信号、データ信号、および／または、制御信号などの信号を伝送するための導電トレースまたはラインを含みうる。さまざまな実施態様では、機能ユニット１０２−１−Ｎのそれぞれは、ＳＯＣデバイス１００のいかなる他の機能ユニットに対してもデータを読み書きする能力を有する共有オンチップバス１０４のマスターとして動作しうる。
【００３９】
バス１０４は、例えば、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バス、ＰＣＩ  Ｅｘｔｅｎｄｅｄ  （ＰＣＩ−Ｘ）バス、ＰＣＩ  Ｅｘｐｒｅｓｓ  （ＰＣＩｅ）バス、ＸＳＩバス、および、カードバスとして実装されうる。バス１０４は、理解を容易にすべく、特定のタイプおよび／または多数のバスを含むように例示されかつ記載されているかもしれないが、所定の実装にはさまざまなバスアーキテクチャが用いられうると理解されたい。また、いくつかの実施態様では、機能ユニット１０２−１−Ｎは、直接接続を介し伝送されるデータおよびディスクリプタにより互いに通信しうる。
【００４０】
複数の機能ユニット１０２−１−Ｎは、対応するポート１０６−１−Ｎを含みうる。ポート１０６−１−Ｎのそれぞれは、例えば、ＳＯＣデバイス１００の機能ユニット１０２−１−Ｎ間でデータ通信するためのバス１０４へのアクセスポイント、ブリッジ、および／または、インターフェースを含みうる。さまざまな実施形態では、ポート１０６−１−Ｎのそれぞれは、共有オンチップバス１０４を介し１つ以上の機能ユニットからデータを受信する入力パスと、共有オンチップバス１０４を介し１つ以上の機能ユニットへとデータを送信する出力パスとを提供する共有アクセスポートを含みうる。
【００４１】
図に示すように、複数のポート１０６−１−Ｎは、複数のデータパス１０８−１−Ｘによりバス１０４を介し互いに結合されうる。Ｘは、任意の正の整数値を表す。データパス１０８−１−Ｘは、例えば、ＳＯＣデバイス１００の機能ユニット１０２−１−Ｎ間のロジックまたは仮想接続を含む。いくつかのケースでは、データパスは、機能ユニット間の直接ポイントツーポイント接続を含みうる。他のケースでは、安全なデータパスは、機能ユニット間の間接接続を含みうる。限られた数のデータパスしか例として挙げないが、ＳＯＣデバイス１００は、任意の機能ユニット１０２−１−Ｎ間の仮想接続を形成する任意の数のデータパスを含みうる。
【００４２】
図１の実施形態では、例えば、データパス１０８−１は、トランスポートデマルチプレクサ１０２−６とコーデック１０２−３との間のポイントツーポイント接続を含みうる。データパス１０８−２は、トランスポートデマルチプレクサ１０２−６とＤＲＡＭコントローラ１０２−１との間のポイントツーポイント接続を含みうる。データパス１０８−３は、ＤＲＡＭコントローラ１０２−１およびコーデック１０２−３との間のポイントツーポイント接続を含みうる。データパス１０８−Ｘは、コーデック１０２−３とディスプレイＩ／Ｆ  １０２−７との間のポイントツーポイント接続を含みうる。いくつかの実施態様では、データパス１０８−２およびデータパス１０８−３は、トランスポートデマルチプレクサ１０２−６とコーデック１０２−３との間の間接接続を含みうる。実施形態は、上記文脈に限定されない。
【００４３】
さまざまな実施形態において、データパス１０８−１−Ｘは、機能ユニット１０２−１−Ｎと関連するアドレスにより定義されうる。例えば、データパス１０８−１は、トランスポートデマルチプレクサ１０２−６に関連する１つ以上のアドレス、および、コーデック１０２−３に関連する１つ以上のアドレスにより定義されうる。いくつかの実施形態では、データパス１０８−１は、トランスポートデマルチプレクサ１０２−６のポート１０６−６と関連する１つ以上のアドレス、および、コーデック１０６−３のポート１０６−３に関連する１つ以上のアドレスにより定義されうる。他の実施形態では、データパス１０８−１は、トランスポートデマルチプレクサ１０２−６内のアドレスまたはアドレス範囲、および、コーデック１０２−３内のアドレスまたはアドレス範囲により定義されうる。いくつかのケースでは、アドレスまたはアドレス範囲は、トランスポートデマルチプレクサ１０２−６および／またはコーデック１０２−３内の特定の処理デバイス（例えばＣＰＵ）および／またはメモリ位置（例えばメインメモリ、メモリ空間、レジスタ）に対応しうる。実施例は、上記文脈に限定されない。
【００４４】
図１の実施形態に示されるように、ＳＯＣデバイス１００は、セキュリティコントローラ１１０を含みうる。さまざまな実施形態では、セキュリティコントローラ１１０がＳＯＣデバイス１００に含まれるおよび／または組み込まれることにより、機能ユニット１０２−１−Ｎ間のデータパス１０８−１−Ｘの安全を提供する。セキュリティコントローラ１１０は、ＳＯＣデバイス１００のハードウェアおよび／またはソフトウェアにより実装されうる。セキュリティコントローラ１１０は、例えば、ＣＰＵなどのロジックデバイス、および／または、実行可能なロジックを含みうる。さまざまな実施形態では、セキュリティコントローラ１１０は、ＳＯＣデバイス１００内のオンチップデータを保護するデータパスセキュリティロジックを含みうる。
【００４５】
セキュリティコントローラ１１０は、データパス１０８−１−Ｘなどの安全なデータパスを提供する機能ユニット１０２−１−Ｎを構成しうる。例えば、セキュリティコントローラ１００は、機能ユニット１０２−１−Ｎの各ポート１０６−１−Ｎの入力側および出力側に安全な層を形成しうる。さまざまな実施形態では、セキュリティコントローラ１１０は、機能ユニット１０２−１−Ｎのポート１０６−１−Ｎでデータパスセキュリティロジックを確定しうる。データパスセキュリティロジックは、例えば、１つ以上のデータパスセキュリティキーを用いてデータパスの入出力に適用される復号化および暗号化ロジック（例えば、ＸＯＲまたはＸＮＯＲ関数）を含みうる。
【００４６】
さまざまな実施形態では、セキュリティコントローラ１１０は、機能ユニット１０２−１−Ｎ間の安全なデータパスを提供するデータパスセキュリティキー１１２を生成して管理しうる。データパスセキュリティキー１１２のそれぞれは、例えば、データを暗号化および／または複合化するためのランダムなビットシーケンス（例えば、３２ビット、６４ビット、１２８ビット、または、２５６ビット）を含む対称または非対称のキーなどの暗号キーとして実装されうる。さまざまな実施態様では、セキュリティコントローラ１１０は、乱数発生器（ＲＮＧ）を用いてデータパスセキュリティキー１１２を生成することにより、十分なエントロピーを保証する。セキュリティコントローラ１１０は、例えば、ＲＳＡ、ＥＣＣ、ＤＥＳ、３ＤＥＳ、ＡＥＳ、および、ＡＡＣＳなどのさまざまな暗号化技術を用いてデータパスセキュリティキー１１２を生成しうる。実施形態は、上記文脈に限定されない。
【００４７】
セキュリティコントローラ１１０は、例えば、アドレスに依存するデータパスセキュリティキー１１２を用いて機能ユニット１０２−１−Ｎ間に安全なデータパスを確立しうる。いくつかのケースでは、アドレスに依存するデータパスセキュリティキー１１２および／または関連するアドレスは、固定されうる。他のケースでは、アドレスに依存するデータパスセキュリティキー１１２および／またはアドレスは、動的に変更されうる。いくつかの実施形態では、例えば、データパスセキュリティキー１１２は、各リブート時に新しいデータパスセキュリティキーのリフレッシュまたは確定をサポートするプログラマブルキー設定を含みうる。実施形態は、上記文脈に限定されない。
【００４８】
いくつかのケースでは、独立した安全なデータパスによって接続される機能ユニット間で共通のデータパスセキュリティキーが用いられうる。例えば、機能ユニット１０２−１−Ｎのそれぞれに共通のデータパスセキュリティキーが用いられうる。他の実施形態では、安全なデータパスの入力ポートおよび出力ポートで異なるデータパスセキュリティキーが用いられうる。いくつかのケースでは、データパスセキュリティキー１１２は、安全なデータパスのための多数の入力／出力キーを含む。さまざまな実施態様では、組込みコード（例えばファームウェア）およびランタイムデータに異なるデータパスセキュリティーキーが用いられることにより、コードのオーナー（例えばメディアプロバイダ）は、カスタマイズされたキーを用いることができる。
【００４９】
さまざまな実施形態では、機能ユニット１０２−１−Ｎのそれぞれは、ポートアドレス、ＣＰＵアドレス、メインメモリアドレス、メモリ空間アドレス、および、レジスタアドレスなどの多数のアドレス指定可能な領域を含みうる。このような実施形態では、１つ以上のデータパスセキュリティーキー１１２が多数のアドレスのそれぞれと関連しうる。セキュリティコントローラ１１０は、データパスセキュリティキー１１２を機能ユニット１０２−１−Ｎの特定のアドレスまたはアドレス領域に関連付けるかまたはマップしうる。さまざまな実施態様では、セキュリティコントローラ１１０は、バス１０４（例えばＸＳＩバス）のアドレスおよびデータチャネルに組み込まれるメモリ管理ユニット（ＭＭＵ）のような能力を用いることにより、このような関連付けおよびマッピング機能を実行しうる。いくつかのケースでは、機能ユニット１０２−１−のそれぞれは、各アドレス範囲にマップされたデータパスセキュリティキーを有する多数のアドレス範囲を有する。
【００５０】
さまざまな実施形態では、セキュリティコントローラ１１０のみが、データパスセキュリティキー１１２を生成してデータパスセキュリティキーを機能ユニット１０２−１−Ｎに書き込む能力によりプログラムされるか、または、当該能力を有しうる。例えば、ＳＯＣデバイス１００は、特定のプロトコルを用いることにより、セキュリティコントローラ１１０のみがデータパスセキュリティキー１１２を生成してバス１０４を使用することにより、データパスセキュリティキーを機能ユニット１０２−１−Ｎに書き込んでよい。さまざまな実施態様では、ポート１０６−１−Ｎのそれぞれは、バス１０４に送信された専用の安全な読み書き属性を用いて実現するセキュリティコントローラ１１０からの読み書きによってのみアクセス可能になるデータパスセキュリティキーレジスタを含みうる。このような実施態様では、セキュリティコントローラ１１０のみがバス１０４上で安全な読み書き属性を伴うトラフィックを生成することができ、機能ユニット１０２−１−Ｎは、属性を代わりのアドレス空間ビットとして復号化することにより、ローカルキーレジスタがプログラムされうる。
【００５１】
さまざまな実施態様では、セキュリティコントローラ１１０は、ホストＣＰＵ１０２−２の初期化コマンド（例えばブートコマンド）に応じてデータパスセキュリティキー１１２およびデータパスセキュリティロジックを生成して書き込みしうる。例えば、安全なブートの間、または、ＳＯＣデバイス１００のリセットの後、セキュリティコントローラ１１０は、各ポート１０６−１−Ｎでデータパスセキュリティキーおよびデータパスセキュリティロジックを初期化して使用可能にすることにより、ＳＯＣデバイス１００の安全なデータパスを形成しうる。いくつかの実施形態では、オンチップ秘密キーを信用の根源として用いることにより、安全なブートの間にデータパスセキュリティキーが生成されうる。
【００５２】
さまざまな実施形態では、セキュリティコントローラ１１０は、データパスセキュリティをオフにするバイパスモードを実装しうる。例えば、セキュリティコントローラ１１０は、データパスセキュリティロジック（例えばＸＯＲまたはＸＮＯＲ関数）にバイパスを実行させるようバイパス値（例えばすべて０またはすべて１）をプログラムしうる。さまざまな実施態様では、ＳＯＣデバイス１００のリセット時に、機能ユニット１０２−１−Ｎにおけるデータパスセキュリティキーは、セキュリティコントローラ１１０により使用可能にされるまで、デフォルトまたはバイパス値に設定されうる。
【００５３】
さまざまな実施形態では、データパスセキュリティキー１１２は、１つ以上のユニット入力キー  （ＵＩＫ）および／または１つ以上のユニット出力キーを含みうる。セキュリティコントローラ１１０は、１つ以上のＵＩＫおよび１つ以上のＵＯＫを機能ユニット１０２−１−Ｎと関連付けることにより、安全なデータパスを確立しうる。さまざまな実施態様では、特定の機能ユニットは、バス１０４からデータを受信するための１つ以上のアドレスと関連付けられた１つ以上のＵＩＫを含みうる。機能ユニットは、また、バス１０４にデータを送信するための１つ以上の行き先アドレスに関連付けられた１つ以上のＵＯＫも含みうる。このような実施態様では、機能ユニットの多数のアドレス指定可能領域のそれぞれに対し、１つ以上の安全なデータパスが設定されうる。
【００５４】
さまざまな実施態様では、共有オンチップバス１０４に転送されるデータは、特定のＵＯＫを用いて暗号化され、クリアなデータを見ることを許可されたそれらの機能ユニットのみがデータを復号化するための対応するＵＩＫを与えられる。このような実施態様では、正規のＵＩＫを有するそれらの機能ユニットのみがデータを復号化することを許され、対応するＵＩＫを持たない機能ユニットは、暗号化されたフォーマットのデータしか読み取ることができない。したがって、許可された機能ユニットのみがクリアなデータを見ることを許されることにより、暗号化データは、機能ユニット１０２−１−Ｎ間で共有されるオンチップバス１０４を介し安全に転送されうる。
【００５５】
図１の実施形態に示されるように、例えば、セキュリティコントローラ１１０は、機能ユニット１０２−１−Ｎのポート１０６−１−ＮにおいてＵＩＫ１１４−１−Ｎ、および、ＵＯＫ１１６−１−Ｎを確定しうる。ＵＩＫ１１４−１−Ｎは、バス１０４からポート１０６−１−Ｎへのデータを復号化しうる。ＵＯＫ１１６−１−Ｎは、ポート１０６−１−Ｎからバス１０４へのデータを暗号化しうる。さまざまな実施態様において、ＵＩＫ１１４−１−Ｎの１つ以上は、ＵＯＫ１１６−１−Ｎの１つ以上と対のデータパスセキュリティキーを形成することにより、データパス１０８−１−Ｘなどの安全なデータパスを提供しうる。例えば、特定のＵＯＫ（ＵＯＫ１１６−６など）および特定のＵＩＫ（ＵＩＫ１１４−３など）は、独立した安全なデータパス（例えばデータパス１０８−１）を提供するための共通のデータパスセキュリティキーを含みうる。
【００５６】
図１の実施形態は、例示の目的から各機能ユニットおよびポートに設定されたＵＩＫおよびＵＯＫを示しているが、実施形態は、上記文脈に限定されない。例えば、いくつかの実施形態では、１つ以上の機能ユニット（例えばＤＲＡＭコントローラ１０２−１、ＣＰＵ１０２−２）は、ＵＩＫおよびＵＯＫを有さなくともよい。さらに、ＵＩＫ１１４−１−ＮおよびＵＯＫ１１６−１−Ｎのそれぞれは、１つ以上のデータパスセキュリティキーを含みうると理解されたい。
【００５７】
さまざまな実施形態では、機能ユニット１０２−１−Ｎのそれぞれは、アドレスに依存するデータパスセキュリティキーに関連付けられる１つ以上の保護されたアドレス領域を含みうる。いくつかの実施形態では、ホストＣＰＵ１０２−２が見ることができる組込みコードＲＡＭを含む機能ユニットは、コードＲＡＭアドレス空間に割り当てられる独立したコード領域キーレジスタを必要とする。コード領域キーレジスタは、命令キャッシュまたはランタイムコードスワップ／アップデートによるユニットごとのＤＲＡＭにおけるコード保護を可能にする。特定のコード画像を有する機能ユニットでは、コード領域キーレジスタは、コードがロードされた後に変更されるので、コードのさらなる読み取りまたは書き込みを防ぐことができる。
【００５８】
いくつかの実施形態では、機能ユニット１０２−１−Ｎの１つ以上は、アドレスに依存するデータパスセキュリティキーに関連しない保護されていない領域を使用可能にする選択可能なアドレス範囲を含みうる。いくつかのケースでは、機能ユニットは、２つ以上の保護されていない領域によって構成されることができ、１つの保護されていない領域は、初期化およびソフトウェアドライバ・インタラクションのための特定の機能ユニットのメモリがマップされた構成空間へのクリアなアクセスを可能にし、他の保護されていない領域は、ホストＣＰＵの適用が必要な場合にクリアなコンテンツ領域を使用可能にする。
【００５９】
さまざまな実施態様では、ホストＣＰＵコマンドは、機能ユニット１０２−１−Ｎ間でのキーの共有を可能にするために保護される各ポート１０６−１−Ｎの入力側と出力側とを識別しうる。ホストＣＰＵコマンドは、また、チップがリセットされることにより、初期化ソフトウェア（例えばブートコード）が安全なデータパスを使用可能にするまで、データパスセキュリティキー１１２を個別にロックする一方で、ソフトウェアの他の層が最初の設定を変更しないようにする能力も有しうる。
【００６０】
いくつかの実施形態では、セキュリティコントローラ１１０は、安全なデータパスをオンザフライで動的に形成しうる。例えば、セキュリティコントローラ１１０は、ランタイム中、または、メディアコンテンツソースからチャネル  の変更があった場合、安全なデータパスを動的に設定するか、および／または、安全なデータパスの設定を修正しうる。このような実施形態では、前のデータパス設定は取り除かれ、前のデータパスセキュリティキーは、新しいデータパスセキュリティキーセットと交換される。実施形態は、上記文脈に限定されない。
【００６１】
いくつかの実施形態では、セキュリティコントローラ１１０は、機能ユニット１０２−１−Ｎのそれぞれにおけるデータパスセキュリティキーのアクセスを有効にも無効にもしうる。このような実施形態では、セキュリティコントローラ１１０は、１つ以上のポイントツーポイント信号を機能ユニット１０２−１−Ｎのそれぞれに送信することにより、セキュリティキーレジスタの読み取りおよび書き込みを可能にする。例えば、セキュリティキーレジスタへの書き込みは、信号により実現しうる。さまざまな実施態様では、レジスタ読み取り確認は、アクセスを無効にし、未許可の読み取りまたは書き込みを検出する。このような実施態様において、無効にされたレジスタの読み取りは、すべてゼロの値を返送しうる。セキュリティコントローラ１１０は、読み取り確認が無効にされた後に有効にされてから、書き込み／読み取り確認ルーチンを実行しうる。実施形態は上記文脈に限定されない。
【００６２】
いくつかの実施形態において、セキュリティコントローラ１１０は、専用キーデータパスを確立しうる。このような実施形態では、セキュリティコントローラ１１０におけるデータパスセキュリティキーは、機能ユニット１０２−１−Ｎのそれぞれの専用パスに用いられる。例えば、キーバスは、キーパスプロトコルを用いるために各機能ユニット１０２−１−Ｎに接続されうる。いくつかのケースでは、より大きなまたは多数のキーをロードするために、アドレスビットが追加されうる。実施形態は上記文脈に限定されない。
【００６３】
限定ではなく例示の目的で、図１に関連して１つの典型的な実施形態が以下に説明される。この実施形態では、トランスポートデマルチプレクサ１０２−６は、圧縮されたクリアなメディアコンテンツとして格納されたトランスポートストリームから暗号解読されたおよび／または復号化されたデータを含みうる。トランスポートデマルチプレクサ１０２−６は、安全なデータパス１０８−１を介し、暗号化データをコーデック１０２−３に送信しうる。データパス１０８−１は、トランスポートデマルチプレクサ１０２−６からコーデック１０２−３へとデータを伝送するポイントツーポイント接続を含みうる。データパス１０８−１の行き先は、例えば、ポート１０６−１および／またはコーデック１０２−３に関連する１つ以上のアドレスによって定義されうる。
【００６４】
この実施形態では、ＵＯＫ１１６−６およびＵＩＫ１１４−３は、データパス１０８−１の安全を確保するために用いられうる。例えば、ＵＯＫ１１６−６およびＵＩＫ１１４−３は、コーデック１０２−３に関連した特定のアドレスおよびアドレス範囲に割り当てられるかまたはマップされる対のキーおよび／または共通キーを含む。ＵＯＫ１１６−６は、データパス１０８−１を介し出て行くデータを暗号化するのに用いられ、ＵＩＫ１１４−３は、データパス１０８−１を介し入ってくるデータを復号化するのに用いられうる。トランスポートデマルチプレクサ１０２−６は、ＵＯＫ１１６−６を用いて圧縮されたクリアなデータを暗号化し、暗号化データを、データパス１０８−１を介しコーデック１０２−３へと送信しうる。コーデック１０２−３は、トランスポートデマルチプレクサ１０２−６から暗号化データを受信すると即座に、ＵＩＫ１１４−３を用いて暗号化データを復号化する。
【００６５】
いくつかの実施形態では、トランスポートデマルチプレクサ１０２−６は、例えば、解凍のためにコーデック１０２−３に送られる前にオフチップＤＲＡＭ内のキューに入れるよう、データをＤＲＡＭコントローラ１０２−１に送信しうる。このような実施形態では、トランスポートデマルチプレクサ１０２−６は、ＵＯＫ１１６−６を用いることにより、圧縮されたクリアなデータを暗号化して、暗号化データを、安全なデータパス１０８−２を介しＤＲＡＭコントローラ１０２−１へと送信しうる。ＤＲＡＭコントローラ１０２−１は、トランスポートデマルチプレクサ１０２−６から暗号化データを受信すると即座に、暗号化データをオフチップの外部ＤＲＡＭへと転送する。
【００６６】
ＤＲＡＭコントローラ１０２−１は、外部ＤＲＡＭから暗号化データを検索した後、暗号化データを、安全なデータパス１０８−３を介しコーデック１０２−３へと送信しうる。データパス１０８−３は、データをＤＲＡＭコントローラ１０２−１からコーデック１０２−３へと伝送する。データパス１０８−３の行き先は、例えば、ポート１０６−３および／またはコーデック１０２−３に関連する１つ以上のアドレスによって定義されうる。コーデック１０２−３は、ＤＲＡＭコントローラ１０２−１から暗号化データを受信すると即座に、ＵＩＫ１１４−３を用いて暗号化データを復号化することにより、圧縮されたクリアなメディアコンテンツに戻すことができる。
【００６７】
この例において、データパス１０８−２およびデータパス１０８−３は、トランスポートデマルチプレクサ１０２−６とコーデック１０２−３との間の間接パスを含みうる。ＵＯＫ１１６−６およびＵＩＫ１１４−３は、間接パスに用いられる共通キーまたは対のデータパスセキュリティキーを含みうる。この場合、ＤＲＡＭコントローラ１０２−１は、暗号化データを受信するので、ＤＲＡＭコントローラ１０２−１は、ＵＩＫ１１４−１および／またはＵＯＫ１１６−１を有する必要はない。他のケースでは、ＤＲＡＭコントローラ１０２−１は、ＵＩＫ１１４−１およびＵＯＫ１１６−１を用いて復号化および暗号化を実行しうる。フラッシュメモリなどの他の外部メモリもこのように用いられうると理解されたい。
【００６８】
この実施形態では、コーデック１０２−３は、圧縮されたメディアコンテンツを解凍するなどの１つ以上のデコーディング動作を実行することにより、クリアな圧縮されていないメディアコンテンツに戻しうる。コーデック１０２−３は、圧縮されていないクリアなメディアコンテンツを暗号化し、暗号化データを、安全なデータパス１０８−Ｘを介しディスプレイＩ／Ｆ１０２−７へと送信しうる。データパス１０８−Ｘは、データをコーデック１０２−３からディスプレイＩ／Ｆ１０２−７へと伝送するポイントツーポイント接続を含みうる。データパス１０８−Ｘの行き先は、例えば、ポート１０６−７および／またはディスプレイＩ／Ｆ１０２−７に関連した１つ以上のアドレスによって定義されうる。
【００６９】
ＵＯＫ１１６−３およびＵＩＫ１１４−７は、データパス１０８−３の安全を確保するために用いられうる。例えば、ＵＯＫ１１６−３およびＵＩＫ１１４−７は、ディスプレイＩ／Ｆ１０２−７に関連した特定のアドレスまたはアドレス範囲に割り当てられるかまたはマップされる対のキーおよび／または共通キーを含みうる。コーデック１０２−３は、圧縮されていないクリアなメディアコンテンツを暗号化するためにＵＯＫ１１６−３を用い、暗号化データを、データパス１０８−Ｘを介してディスプレイＩ／Ｆ１０２−７へと送信しうる。コーデック１０２−３から暗号化データを受信すると即座に、ディスプレイＩ／Ｆ１０２−７は、ＵＩＫ１１４−７を用いて暗号化データを復号化することにより、圧縮されていないクリアなメディアコンテンツに戻しうる。ディスプレイＩ／Ｆ１０２−７は、メディアコンテンツの表示に伴う追加の処理を実行しうる。
【００７０】
この例では、データパス１０８−１およびデータパス１０８−Ｘは、トランスポートデマルチプレクサ１０２−６とディスプレイＩ／Ｆ１０２−７との間の間接パスを含みうる。このように、ＵＯＫ１１６−６およびＵＩＫ１１４−７は、間接パスに用いられうる共通キーまたは対のデータパスセキュリティキーを含みうる。
【００７１】
この実施形態では、暗号化データが特定のＵＯＫ（例えばＵＯＫ１１６−６）を用いて特定の安全なデータパス（例えばデータパス１０８−１）を介し送信されると、クリアなデータを見ることを許可されたそれらの機能ユニット（例えばコーデック１０２−３）のみがデータを解読するための対応するＵＩＫ（例えばＵＩＫ１１４−３）を与えられる。このように、対応するＵＩＫを持たない他の機能ユニット（例えば、ホストＣＰＵ１０２−２、ＤＳＰ１０６−５）は、暗号化されたフォーマットでしかデータの移動および／またはデータの読み取りができない可能性がある。したがって、暗号化データは、機能ユニット１０２−１−Ｎ間の共有オンチップバス１０４を介し安全に転送されることができ、ＤＲＡＭまたはフラッシュメモリなどのオフチップで格納された場合には保護されうる。
【００７２】
さまざまな実施態様では、記載された実施形態は、共有アクセスポート１０６−１−Ｎおよび／またはオンチップバス１０４をそれぞれ介して取り付けられるさまざまな組み込み機能ユニット１０２−１−Ｎに入るデータを暗号化し、そこから出るデータを複合化することにより、ＳＯＣデバイス１００の安全を提供する。したがって、ＳＯＣデバイス１００は、安全なデータパスを介し転送されたときのコンテンツを暗号化して保護すると共に、許可された機能ユニットのみがクリアなコンテンツを見ることができるようにしうる。さらに、ＳＯＣデバイス１００は、ホストＣＰＵソフトウェア（例えばＯＳ、アプリケーション）は、解読されたデータを外部にさらすことなくデータをソフトウェアに転送することを可能にする。ＳＯＣデバイス１００は、アドレス依存性および暗号化されていないアドレス範囲を用いることにより、Ｉ／Ｏおよび他の保護されていない機能への透明なアクセスを可能にし、ドライバソフトウェアにアクセス可能なオンチップ機能ユニットのコマンド、制御、および、ステータス領域を保持しうる。
【００７３】
さまざまな実施態様では、記載された実施形態は、ＤＲＡＭまたはフラッシュメモリなどの外部メモリに格納される場合、また、外部メモリからＳＯＣデバイス１００に読み込まれるときのデータを保護しうる。記載される実施形態は、外部メモリインターフェースのタイミング、機能、および／または、プログラミングに影響を与えることなく、外部メモリ（例えばＤＲＡＭ、フラッシュメモリ）におけるデータ（例えばプレミアムメディアコンテンツ、ファームウェア）の保護または暗号化を提供しうる。記載される実施形態では、ＤＲＡＭおよび／またはフラッシュメモリ内に暗号化された組込みＣＰＵコードを存在させることにより、組込みＣＰＵのための利用可能なコード空間（例えば画像のスワップなど）を拡張し、ローカルな組込みプロセッサの保護された実行空間内に読み出されるときは組込みＣＰＵコードが解読されるようにしうる。このように、組込みＣＰＵは、命令キャッシュと共に動作することにより、フェッチにさらなるサイクルを加えることなしにオフチップコードの暗号化を維持する。
【００７４】
いくつかの実施形態は、ＳＯＣデバイス１００内の安全なデータパスを介したメディアコンテンツの保護を含みうるが、実施形態は、さまざまなタイプの圧縮されたまたは圧縮されていないコンテンツまたは情報を保護するために用いられうると理解されたい。さまざまな実施形態では、例えば、コンテンツまたは情報は、１つ以上の画像、画像ファイル、画像グループ、ピクチャ、デジタル写真、音楽ファイル、サウンドファイル、音声情報、ビデオ、ビデオクリップ、ビデオファイル、ビデオシーケンス、ビデオフィード、ビデオストリーム、映画、放送プログラミング、テレビ信号、ウェブページ、ユーザインターフェース、グラフィクス、文字情報（例えば、暗号化キー、シリアルナンバー、電子メールメッセージ、テキストメッセージインスタントメッセージ、コンタクトリスト、電話番号、タスクリスト、カレンダーエントリ、ハイパーリンク）、数値情報、文字数字情報、および、文字符号などに関連しうる。また、コンテンツまたは情報は、コマンド情報、制御情報、ルーティング情報、処理情報、システムファイル情報、システムライブラリ情報、ソフトウェア（例えば、ＯＳソフトウェア、ファイルシステムソフトウェア、アプリケーションソフトウェア、ゲームソフトウェア）、ファームウェア、アプリケーションプログラムインターフェース（ＡＰＩ）、プログラム、アプレット、サブルーチン、命令セット、命令、コンピュータコード、ロジック、ワード、値、および、符号なども含みうる。
【００７５】
図２は、データパスセキュリティシステム２００の一実施形態を示す。データパスセキュリティシステム２００は、例えば、図１に示されるＳＯＣデバイス１００の１つ以上の要素により実装されうる。さまざまな実施形態では、データパスセキュリティシステム２００は、所定のセットの設計パラメータまたはパフォーマンスの制約条件に要求されるとおりに、１つ以上のデバイス、ユニット、および／または、構成要素によって実装され、また、ハードウェア、ソフトウェア、および／または、その任意の組合せを含みうる。例えば、データパスセキュリティシステム２００は、１つ以上のロジックデバイス、および／または、ロジックデバイスにより実行される命令、データ、および／または、コードを含むロジックにより実装されうる。実施形態は、上記文脈に限定されない。
【００７６】
図２に示すように、データパスセキュリティシステム２００は、例えば、ＵＩＫ２０２およびＵＯＫ２０４を含む１つ以上のデータパスセキュリティキーを有しうる。さまざまな実施形態では、ＵＩＫ２０２は、共有アクセスポートへの、および／または、オンチップバスからのデータを復号化するよう用いられうる。ＵＯＫ２０４は、共有アクセスポートからの、および／または、オンチップバスを介してのデータを暗号化するよう用いられうる。
【００７７】
データパスセキュリティシステム２００は、例えば、復号化ロジック２０６および暗号化ロジック２０８を含むデータパスセキュリティロジックを有しうる。さまざまな実施形態では、復号化ロジック２０６は、ＸＯＲ関数、ＸＮＯＲ関数、および／または、共有アクセスポートおよび／またはオンチップバスの入力側でデータパスセキュリティキー（例えばＵＩＫ２０２）を用いるよう構成された他の判定ロジックを含みうる。暗号化ロジック２０８は、ＸＯＲ関数、ＸＮＯＲ関数、および／または共有アクセスポートおよび／またはオンチップバスの出力側でデータパスセキュリティキー（例えばＵＯＫ２０４）を用いるよう構成された他の判定ロジックを含みうる。実施形態は、上記文脈に限定されない。
【００７８】
図に示すように、データパスセキュリティシステム２００は、データパスセキュリティをオフにするバイパスモードを実装しうる。例えば、バイパス値（例えば、すべて０またはすべて１）は、復号化ロジック２０６および／または暗号化ロジック２０８に入力されることにより、データパスセキュリティロジック（例えばＸＯＲまたはＸＮＯＲ関数）にバイパスを実行させる。
【００７９】
データパスセキュリティシステム２００は、例えば、アドレス関連またはマッピング機能を実行するＭＭＵのような能力により実装されるアドレスデコードモジュール２１０を含みうる。さまざまな実施形態では、アドレスデコードモジュール２１０は、データパスセキュリティキー（例えばＵＩＫ２０２、ＵＯＫ２０４）を特定のアドレスまたはアドレス領域に関連付けるかまたはマップしうる。さまざまな実施態様では、データパスセキュリティシステム２００は、機能ユニットアドレス、ポートアドレス、ＣＰＵアドレス、メインメモリアドレス、メモリ空間アドレス、および、レジスタアドレスなどの多数のアドレス指定可能な領域を含むＳＯＣデバイスにより実装されうる。このような実施態様において、１つ以上のデータパスセキュリティキー（例えばＵＩＫ、ＵＯＫ）が、１つ以上のアドレスまたはアドレス範囲に関連付けられうる。
【００８０】
さまざまな実施態様において、データパスセキュリティシステム２００は、特定のＵＯＫを用いて暗号化済みであり、特定のアドレスまたはアドレス範囲に関連付けられる暗号化データ２１２を受信しうる。暗号化データ２１２は、例えば、共有アクセスポートにおいて、および／または、オンチップバスを介し受信されうる。データパスセキュリティシステム２００は、暗号化データ２１２を受信して、バイパスはないとみなすと即座に、ＵＩＫ２０２を用いて特定のアドレスをマップし、復号化ロジック２０６を用いることができる。許可されて正規のデータパスセキュリティキーが与えられた場合、データパスセキュリティシステム２００は、ＵＩＫ２０２を用いて暗号化データ２１２を複合化し、クリアデータ２１４に戻す。許可されないかまたはバイパスがある場合、暗号化データ２１２は、暗号化されたままになる。
【００８１】
さまざまな実施態様において、データパスセキュリティシステム２００は、ＵＯＫ２０４を用いて暗号化した後、クリアデータ２１６を送信しうる。バイパスはないとみなした場合、データパスセキュリティシステム２００は、ＵＯＫ２０４を用いて特定のアドレスをマップし、暗号化ロジック２０８を用いることができる。データパスセキュリティシステム２００は、クリアデータ２１６を暗号化して暗号化データ２１８を送信するようＵＯＫ２０４を用いてよい。暗号化データ２１８は、例えば、共有アクセスポートから、および／または、オンチップバスを介し送信されうる。バイパスがある場合は、クリアデータ２１６は、クリアなままになる。
【００８２】
図３は、セキュリティコントローラ３００の一実施形態を示す。セキュリティコントローラ３００は、例えば、図１に示されたＳＯＣデバイス１００の１つ以上の要素によって実装されうる。さまざまな実施形態では、セキュリティコントローラ３００は、所定のセットの設計パラメータまたはパフォーマンスの制約条件に要求されるとおりに、さまざまなデバイス、ユニット、および／または、構成要素によって実装され、また、ハードウェア、ソフトウェア、および／または、その任意の組合せを含みうる。例えば、セキュリティコントローラ３００は、１つ以上のロジックデバイス、および／または、ロジックデバイスにより実行される命令、データ、および／または、コードを含むロジックにより実装されうる。実施形態は上記文脈に限定されない。
【００８３】
図３に示すように、セキュリティコントローラ３００は、縮小命令セットコンピュータ（ＲＩＳＣ）のマイクロプロセッサなどのマイクロプロセッサにより実装されうるＣＰＵ３０２を含む。さまざまな実施形態では、ＣＰＵ３０２は、実行のカーネルおよびユーザアドレス空間／モードをサポートしうる。ＣＰＵ３０２は、ＣＰＵ  ＲＯＭ空間にリセットベクトルを提供しうる。さまざまな実施態様では、リセットおよび改ざんによってＣＰＵがリセットされることになり、リセットによりＣＰＵ３０２は、カーネルモードに戻る。
【００８４】
セキュリティコントローラ３００は、共通の周辺機器をサポートする周辺モジュール３０４を含みうる。周辺モジュール３０４は、カーネル割込みおよび／またはユーザ割込みのための割込みレジスタを含みうる。さまざまな実施形態では、周辺モジュール３０４は、共通タイマ（例えば、１−１００ｕＳの精度）およびウォッチドッグタイマ（ＷＤＴ）を含みうる。ＷＤＴは、チップおよびセキュリティコアをリセットさせうる。ＷＤＴがカーネルモードに切り替えてカーネルコード実行することにより、ＲＡＭの内容の消滅および暗号エンジンのクリア／初期化が起きる。ＷＤＴは、また、ユーザ割込み、および／または、ＯＴＰ（ワンタイムプログラマブル）構成のビット選択を可能にしうる。
【００８５】
セキュリティコントローラ３００は、ローカル変数および／またはユーザコードを格納するＲＡＭ３０６を備えうる。さまざまな実施形態では、ユーザコードは、許可されるおよび／または変更不可能であり、カーネルアドレス空間にはアクセスできない可能性がある。いくつかの実施形態では、ＲＡＭ３０６は、より高速に実行するためのカーネルコードを格納するよう用いられうる。
【００８６】
セキュリティコントローラ３００は、ＲＯＭ３０８を含みうる。ＲＯＭ３０８は、例えば、安全なブートコード、リセットベクトル、および／または、相手先商標製造会社（ＯＥＭ）特有のコードを格納するよう用いられうる。さまざまな実施形態では、ＲＯＭ３０８は、ＯＥＭ特有のセキュリティカーネルを格納する記憶領域を含みうる。ＲＯＭ３０８は、多数の最小在庫管理単位（ＳＫＵ）／ＲＯＭ画像などの多数のベンダーＲＯＭ／コード要件をサポートしうる。ＲＯＭ３０８は、例えば、ＳＫＵベースのプログラム、および、アップグレード可能なコードに用いられうるＯＴＰメモリ空間を含みうる。ＲＯＭ３０８は、ＯＴＰの電気的消去書込み可能型ＲＯＭの能力を、ヒューズまたはヒューズ以外の技術のためのチップに提供しうる。このような能力は、ＲＯＭコード要件をサポートし、キー空間に伴うダイサイズを縮小しうる。ＲＯＭ３０８は、セキュリティカーネルの展開、登録商標権を有するベンダーコード要件、および、１つ以上のＣＡに関連するさまざまなプロトコルをサポートしうる。
【００８７】
セキュリティコントローラ３００は、例えば、バスＩ／Ｆ３１０および構成ロジック３１２によって実装されうるバスロジックを含みうる。バスＩ／Ｆ３１０は、セキュリティコアの外側からＣＰＵ３０２またはＣＰＵコード空間に直接アクセスされることを防止するプロセッサ間のインターフェースとして実装されうる。例えば、ＣＰＵ３０２へのデバックポートアクセスは、無効にされうる。構成ロジック３１２は、バルク解読、キー生成、許可、Ｎｏｎｃｅ（ｎｕｍｂｅｒ  ｕｓｅｄ  ｏｎｃｅ）、サイン、ユーザコードロードおよび実行、フラッシュアップデートなどをサポートするコマンドによる共通のコマンドブロックを含むコマンドセットを有しうる。
【００８８】
セキュリティコントローラ３００は、バルク暗号、メモリスクラブなどのためのシステムメモリから／へのメモリアクセスをサポートするダイレクトメモリアクセス（ＤＭＡ）モジュール３１４を含みうる。さまざまな実施形態では、ＤＭＡモジュール３１４は、システムメモリ用のハッシュ型機能をセキュリティコントローラアクセスに提供し、セキュリティコントローラからシステムメモリへのアクセスのためのメッセージを送ることができる。セキュリティコントローラからセキュリティコントローラへのアクセスは、ホストとは共有されない専用チャネルを介し実行されうる。ＤＭＡモジュール３１４は、多重チャネルリンクリストを含みうる。ＤＭＡモジュール３１４は、チャネルのセマフォコントロールを提供することにより、ＤＭＡモジュール３１４のホストまたはセキュリティコアＣＰＵの制御を可能にする。例えば、セマフォは、セキュリティカーネルによって管理されうる。
【００８９】
セキュリティコントローラ３００は、さまざまなタイプの暗号、および／または、３ＤＥＳ暗号化、ＡＥＳ暗号化、ＡＡＣＳ暗号化などの暗号化をサポートする暗号ロジック３１６を含みうる。暗号ロジック３１６は、例えば、キーラダーオプション、キー供給（例えば製造キーラダー／非製造キーラダーの選択）、および、バルク暗号（ＨＤＤ、ＤＴＣＰ−ＩＰなど）をサポートする暗号エンジンとして実装されうる。暗号ロジック３１６は、多数の数値演算および／またはアップデート可能なセキュリティをサポートするべき算ユニット（ＥＡＵ）を含みうる。ＥＡＵは、サイン／許可の最大実行時間要件を満たすハードウェアの実行をオフロードするさまざまな加速動作を実行し、および／または、ＯＴＰメモリからの間接キーロードを実現しうる。
【００９０】
実施形態は、例示の目的で特定のタイプの暗号化技術をサポートするように記載されているかもしれないが、実施形態は、この文脈に限定されず、他のさまざまな暗号化技術をサポートしうると理解されたい。さらに、いくつかの実施形態では、セキュリティコントローラ３００は、再構成可能および／またはアップグレード可能なセキュリティ対策を提供しうる。例えば、セキュリティコントローラ３００は、種々のベンダーセキュリティプロトコル、および、顧客暗号化オフチップコードをサポートする暗号および／または暗号化のソフトウェア（例えばプログラマブルステートマシン）制御を用いてのハードウェアの実装ではサポートされない暗号および／または暗号化技術のサポートを提供する。
【００９１】
さまざまな実施形態の動作は、以下の図および添付の実施例によってさらに説明されうる。いくつかの図は、ロジックフローを含みうる。例示されたロジックフローは、記載された機能がどのように実装されうるかの一例を示すにすぎない。さらに、所定のロジックフローは、特に明記しない限り、必ずしも提示された順序で実行されなくてよい。さらに、ロジックフローは、プロセッサにより実行されるハードウェア要素、ソフトウェア要素、または、その組合せによって実装されうる。実施形態は、上記文脈に限定されない。
【００９２】
図４は、データパスセキュリティのロジックフロー４００の一実施形態を示す。ロジックフロー４００は、例えば、図１に示されたＳＯＣデバイス１００の１つ以上の要素によって実装されうる。さまざまな実施形態では、ロジックフロー４００は、所定のセットの設計パラメータまたはパフォーマンスの制約条件に要求されるとおりに、さまざまなシステム、デバイス、ユニット、および／または構成要素によって実行され、また、ハードウェア、ソフトウェア、および／または、その組合せとして実装されうる。例えば、ロジックフロー４００は、１つ以上のロジックデバイス（例えば、ＳＯＣデバイス、機能ユニット、セキュリティコントローラ）、および／または、ロジックデバイスにより実行されうる命令、データ、および／または、コードを含むロジック（例えば、データパスセキュリティロジック）によって実装されうる。限定ではなく説明の目的で、ロジックフロー４００は、図１に関連して説明される。実施形態は、上記文脈に限定されない。
【００９３】
ロジックフロー４００は、ＳＯＣデバイスに組み込まれた共有オンチップバスに接続される機能ユニット間に１つ以上の安全なデータパスを形成することを含む（ブロック４０２）。図１を参照すると、例えば、さまざまな実施形態では、ＳＯＣデバイス１００の１つ以上の機能ユニット１０２−１−Ｎは、ＵＩＫ１１４−１−ＮおよびＵＯＫ１１６−１−Ｎなどの１つ以上のデータパスセキュリティキーを有しうる。さまざまな実施形態では、ＵＩＫ１１４−１−Ｎは、共有アクセスポート１０６−１−Ｎからの、および／または、オンチップバス１０４からのデータを復号化するよう用いられうる。ＵＯＫ１１６−１−Ｎは、共有アクセスポート１０６−１−Ｎからの、および／またはオンチップバス１０４を介してのデータを暗号化するよう用いられうる。
【００９４】
さまざまな実施態様では、データパスセキュリティキー（例えばＵＩＫ１１４−１−Ｎ、ＵＯＫ１１６−１−Ｎ）は、特定のアドレスまたはアドレス領域に関連付けられるかまたはマップされうる。例えば、ＳＯＣデバイス１００は、機能ユニットアドレス、ポートアドレス、ＣＰＵアドレス、メインメモリアドレス、メモリ空間アドレス、および、レジスタアドレスなどの多数のアドレス指定可能な領域を含みうる。このように、１つ以上のデータパスセキュリティキー（ＵＩＫ、ＵＯＫなど）は、１つ以上のアドレスまたはアドレス領域に関連付けられうる。
【００９５】
さまざまな実施形態では、１つ以上の機能ユニット１０２−１−Ｎは、復号化ロジックおよび／または暗号化ロジックを有しうる。さまざまな実施態様において、復号化ロジックおよび／または暗号化ロジックは、ＸＯＲ関数、ＸＮＯＲ関数、および／または、復号化および／または暗号化のためのデータパスセキュリティキー（ＵＩＫ、ＵＯＫなど）を用いる他の判定ロジックを含みうる。
【００９６】
ロジックフロー４００は、１つ以上の安全なデータパスを介し暗号化データを通信することを含む（ブロック４０４）。さまざまな実施形態では、ＳＯＣデバイス１００は、安全なデータパスを介し転送されるときのコンテンツを暗号化して保護すると共に、許可された機能ユニットのみがクリアなコンテンツを見ることができるようにしうる。いくつかのケースでは、安全なデータパスは機能ユニット間の間接パスを含むことができ、間接パスは、当該間接パス用の共通キーまたは対のデータパスセキュリティキーを用いる。
【００９７】
ＳＯＣデバイス１００は、ホストＣＰＵソフトウェア（例えば、ＯＳ、アプリケーション）は、復号化したデータを外部にさらすことなくソフトウェアに転送できるようにする。ＳＯＣデバイス１００は、アドレス依存性および非暗号化アドレス範囲を用いることにより、Ｉ／Ｏおよび他の保護されていない機能への透明なアクセスを可能にし、ドライバソフトウェアにアクセス可能なオンチップ機能ユニットのコマンド、制御、および、ステータス領域を維持する。
【００９８】
ロジックフロー４００は、１つ以上のデータパスセキュリティキーを用いてクリアデータを暗号化することを含む（ブロック４０６）。さまざまな実施形態では、機能ユニット１０２−１−Ｎの１つ以上は、ＵＯＫ１１６−１−Ｎを用いてクリアデータを暗号化しうる。バイパスはないとみなされた場合、機能ユニットは、１つ以上のＵＯＫを用いて特定のアドレスおよび／またはアドレス領域をマップし、暗号化を用いることができる。さまざまな実施態様では、暗号化データは、例えば、共有アクセスポート１０６−１−Ｎから、および／または、オンチップバス１０４を介し送信されうる。バイパスがある場合、クリアデータは、クリアなままになる。
【００９９】
ロジックフロー４００は、１つ以上のデータパスセキュリティキーを用いて暗号化データを復号化することを含みうる（ブロック４０８）。さまざまな実施形態では、１つ以上の機能ユニット１０２−１−Ｎは、例えば、共有アクセスポート１０６−１−Ｎおよび／またはオンチップバス１０４を介し暗号化データを受信しうる。暗号化データは、１つ以上のデータパスセキュリティキー（ＵＯＫなど）を用いて暗号化されて、特定のアドレスまたはアドレス範囲と関連付けられうる。機能ユニットは、暗号化データを受信してバイパスはないとするやいなや、１つ以上のＵＩＫを用いて特定のアドレスまたはアドレス領域をマップして復号化を用いることができる。許可されて正規のデータパスセキュリティキーが与えられている場合、機能ユニットは、暗号化データを復号化してクリアデータに戻すことができる。未許可であるかまたはバイパスがある場合、暗号化データは暗号化されたままになる。
【０１００】
いくつかの実施形態では、１つ以上の安全なデータパスを介し受信される暗号化データは、オンチップメモリへと送信される。このような実施形態では、ＤＲＡＭまたはフラッシュメモリなどの外部メモリに格納された場合、また、外部メモリからＳＯＣデバイス１００に読み込まれた場合、暗号化データは保護されることになる。
【０１０１】
図５は、製品５００の一実施形態を示す。図に示すように、製品５００は、記載された実施形態に従い、さまざまな動作を実行するデータパスセキュリティロジック５０４を格納する記憶媒体５０２を含みうる。さまざまな実施形態では、製品５００は、さまざまなシステム、構成要素、および／または、モジュールによって実装されうる。
【０１０２】
製品５００および／または機械可読記憶媒体５０２は、データを格納することが可能な１つ以上のタイプのコンピュータ可読記憶媒体含み、当該コンピュータ可読記憶媒体は、揮発性メモリまたは不揮発性メモリ、取り外しができるまたはできないメモリ、消去できるまたはできないメモリ、および、書き込み可能または再書き込み可能なメモリなどを含みうる。機械可読記憶媒体の例は、これに限定されないが、ＲＡＭ、ＤＲＡＭ、ＤＲＡＭ、ＳＤＲＡＭ、スタティックＲＡＭ（ＳＲＡＭ）、ＲＯＭ、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  ＲＯＭ），  ＣＤ−Ｒ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅｃｏｒｄａｂｌｅ），  ＣＤ−ＲＷ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅｗｒｉｔｅａｂｌｅ）、フラッシュメモリ（例えばＮＯＲまたはＮＡＮＤフラッシュメモリ）、連想メモリ（ＣＡＭ）、ポリマーメモリ（例えば、強誘電ポリマーメモリ）、相変化メモリ（例えば、オボニックメモリ）、強誘電メモリ、ＳＯＮＯＳ（ｓｉｌｉｃｏｎ−ｏｘｉｄｅ−ｎｉｔｒｉｄｅ−ｏｘｉｄｅ−ｓｉｌｉｃｏｎ）メモリ、ディスク（フロッピーディスク、ハードディスク、光ディスク、磁気ディスク、光磁気ディスクなど）または、カード（磁気カード、光カードなど）、テープ、カセット、または、情報を格納するのに適した他のいかなるタイプのコンピュータ可読記憶媒体を含みうる。さらに、通信リンク（モデム、無線またはネットワーク接続）を介し搬送波または他の伝搬媒体で表されるデータ信号により実行されるリモートコンピュータから要求元コンピュータへのコンピュータプログラムのダウンロードまたは転送に関わるいかなる媒体もコンピュータ可読記憶媒体として考えられる。
【０１０３】
製品５００および／または機械可読媒体５０２は、機械によって実行されるとき、命令、データ、および／または、コードを含むデータパスセキュリティロジック５０４を実行し、記載された実施形態に従う方法および／または動作を機械に実行させうる。このような機械は、例えば、あらゆる適切な処理プラットフォーム、コンピュータプラットフォーム、コンピューティング装置、処理デバイス、コンピュータシステム、処理システム、コンピュータ、プロセッサなどを含み、ハードウェアおよび／またはソフトウェアの任意の適切な組合せを用いて実装されうる。
【０１０４】
データパスセキュリティロジック５０４は、ソフトウェア、ソフトウェアモジュール、アプリケーション、プログラム、サブルーチン、命令、命令セット、コンピューティングコード、ワード、値、符号、または、これらの組合せを含むか、あるいは、これらとして実装されうる。命令は、ソースコード、コンパイルドコード、インタープリタコード、実行可能コード、スタティックコード、ダイナミックコードなどのあらゆる適切なタイプのコードを含みうる。命令は、プロセッサに特定の機能を実行させるための予め定められたコンピュータ言語、方法、または、シンタックスに従い実装されうる。命令は、Ｃ、Ｃ＋＋、Ｊａｖａ、ＢＡＳＩＣ、Ｐｅｒｌ、Ｍａｔｌａｂ、Ｐａｓｃａｌ、Ｖｉｓｕａｌ  ＢＡＳＩＣなどのいかなる適切なハイレベル、ローレベル、オブジェクト指向、ビジュアル、コンパイルされたおよび／またはインタプリタプログラミング言語、アセンブリ言語、および、マシンコードなどを用いて実装されうる。実施形態は、上記文脈に限定されない。
【０１０５】
特に指定しない限り、「処理」、「計算」、「算出」、「決定」などの用語は、コンピュータまたはコンピューティングシステム、または、コンピューティングシステムのレジスタ内および／またはメモリ内の物理量（例えば電子の）として表されるデータを操作する、および／または、当該データをコンピューティングシステムのメモリ、レジスタ、または、他のそのような情報記憶、伝送、または、表示デバイス内の物理量として同様に表される他のデータに変換する同様の電子コンピューティング装置の動作および／または、プロセスのことを指す。実施形態は、上記文脈に限定されない。
【０１０６】
「１つの実施形態」または「一実施形態」の言及は、実施形態と関連して記載される特定の特徴、構造、または、特性が少なくとも１つの実施形態に含まれることを意味することにも留意されたい。したがって、明細書を通じて随所に見られる「１つの実施形態において」または「一実施形態において」というフレーズは、必ずしも同じ実施形態を指すわけではない。さらに、特定の特徴、構造、または、特性は、１つ以上の実施形態において任意の適切な方法で組み合わせられる。
【０１０７】
これまで特定の実施形態の特徴を例示してきたが、多くの修正、置き換え、変更、および、等価物が当業者には実現可能であろう。したがって、添付の請求項は、実施形態の真の趣旨に納まるように、このような修正および変更をすべて含むと意図される。
【図１】
2009545785.tif 000003
【図２】
2009545785.tif 000004
【図３】
2009545785.tif 000005
【図４】
2009545785.tif 000006
【図５】
2009545785.tif 000007
【国際調査報告】
2009545785.tif 000008
2009545785.tif 000009