(57)【特許請求の範囲】
【請求項１】
少なくともシングル・チップ・コンピュータ・システムをブートアップするブートアップ・コードを格納しているリードオンリメモリ（ＲＯＭ）と、
専用処理タスクを実行する複数の専用コプロセッサと、
プログラム・コードの実行を含む汎用処理を実行する中央処理装置（ＣＰＵ）と、
前記ＣＰＵ及び前記コプロセッサ間、あるいは前記コプロセッサ間にてデータ及び制御信号を転送する１つ以上の内部プロセッサ・バスと、
前記シングル・チップ・コンピュータ・システムを外部共通共有メモリに接続するメモリ・インターフェースと、
前記ＣＰＵ及び前記メモリ・インターフェース間にてデータ及び制御信号を転送するメインＣＰＵバスとを備えているシングル・チップ・コンピュータ・システムであって、前記シングル・チップ・コンピュータ・システムは、プログラム・コード及びデータの認証されていない複製を防止するために暗号化プログラム・コード及びデータを使用するシングル・チップ・コンピュータ・システムであって、
前記リードオンリメモリ（ＲＯＭ）は、秘密暗号鍵を更に格納しており、
前記メモリ・インターフェースは、前記リードオンリメモリ内に格納されている秘密暗号鍵に基づいて、前記外部共通共有メモリに格納されるべきデータを暗号化し、前記外部共通共有メモリから引き出されたデータを復号化する暗号化／復号化装置を有しており、
このシングル・チップ・コンピュータ・システムは、
周辺ドライブ装置から暗号化されたデータを受け取るストリーム・インターフェースと、
前記リードオンリメモリ（ＲＯＭ）内に格納されている前記秘密暗号鍵に基づき前記周辺ドライブ装置からの前記暗号化されたデータを復号化する復号化装置と、
を更に備えていることを特徴とするシングル・チップ・コンピュータ・システム。
【請求項２】
請求項１に記載のシングル・チップ・コンピュータ・システムにおいて、前記専用コプロセッサは、表示されるべきグラフィカル・オブジェクト上で幾何変換を実行するグラフィックス幾何コプロセッサを備えていることを特徴とするシングル・チップ・コンピュータ・システム。
【請求項３】
請求項２に記載のシングル・チップ・コンピュータ・システムにおいて、前記専用コプロセッサは、前記グラフィックス幾何コプロセッサからの変換されたグラフィカル・オブジェクトを受け取り表示用の前記変換されたグラフィカル・オブジェクトをレンダリングするグラフィックス・レンダリング・コプロセッサを更に備えていることを特徴とするシングル・チップ・コンピュータ・システム。
【請求項４】
請求項１に記載のシングル・チップ・コンピュータ・システムにおいて、前記専用コプロセッサは、ビデオイメージを生成するＭＰＥＧコプロセッサを備えていることを特徴とするシングル・チップ・コンピュータ・システム。
【請求項５】
請求項４に記載のシングル・チップ・コンピュータ・システムにおいて、前記専用コプロセッサは、
表示されるべきグラフィカル・オブジェクト上で幾何変換を実行するグラフィックス幾何コプロセッサと、
前記グラフィックス幾何コプロセッサからの変換されたグラフィカル・オブジェクトを受け取り表示用の前記変換されたグラフィカル・オブジェクトをレンダリングするグラフィックス・レンダリング・コプロセッサを更に備えていることを特徴とするシングル・チップ・コンピュータ・システム。
【請求項６】
請求項５に記載のシングル・チップ・コンピュータ・システムは、
グラフィカル・イメージ及びビデオ・イメージを表示するディスプレイ装置を制御するディスプレイ制御装置と、
前記グラフィックス・レンダリング・コプロセッサ及び前記メモリ・インターフェースを機能的に接続するグラフィックス・バスと、
前記メモリ・インターフェースを前記ＭＰＥＧコプロセッサ及び前記ディスプレイ制御装置に対して機能的に接続するビデオ・バスと、
を備えていることを特徴とするシングル・チップ・コンピュータ・システム。
【請求項７】
請求項６に記載のシングル・チップ・コンピュータ・システムにおいて、前記１つ以上の内部プロセッサ・バスは、
前記ＣＰＵ、前記ＭＰＥＧコプロセッサ及び前記グラフィックス・レンダリング・コプロセッサを機能的に接続する入力／出力（Ｉ／Ｏ）バスを備えていることを特徴とするシングル・チップ・コンピュータ・システム。
【請求項８】
請求項７に記載のシングル・チップ・コンピュータ・システムにおいて、前記１つ以上の内部プロセッサ・バスは、
前記ＣＰＵ及び前記グラフィックス幾何コプロセッサを機能的に接続するコプロセッサ・バスを備えていることを特徴とするシングル・チップ・コンピュータ・システム。
【請求項９】
請求項８に記載のシングル・チップ・コンピュータ・システムにおいて、
周辺ドライブ装置からデータを受け取るストリームインターフェースと、
前記受け取られたデータを前記Ｉ／Ｏバス及び前記メインＣＰＵバスの少なくとも一方に供給するストリーム・バスと、
を更に備えていることを特徴とするシングル・チップ・コンピュータ・システム。
【請求項１０】
請求項６に記載のシングル・チップ・コンピュータ・システムにおいて、
前記シングル・チップ・コンピュータ・システムを前記外部共通共有メモリに接続する補助メモリインターフェースを更に備えており、
前記メインＣＰＵバスは、前記ＣＰＵと、前記メモリ・インターフェースと前記補助メモリ・インターフェースとの少なくとも一方との間においてデータ及び制御信号を転送することを特徴とするシングル・チップ・コンピュータ・システム。
【請求項１１】
請求項１０に記載のシングル・チップ・コンピュータ・システムにおいて、
前記外部共通共有メモリは第１メモリ装置及び第２メモリ装置を備え、
前記メモリインターフェースは前記第１メモリ装置にアクセスし、前記補助メモリインターフェースは前記第２メモリ装置にアクセスすることを特徴とするシングル・チップ・コンピュータ・システム。
【請求項１２】
請求項６に記載のシングル・チップ・コンピュータ・システムにおいて、
前記ＭＰＥＧコプロセッサを外部スピーカに機能的に接続するオーディオ・ディジタル−アナログ変換器（ＤＡＣ）インターフェースと、
前記ディスプレイ制御装置と外部ディスプレイ装置との間において機能的に接続されており、前記外部ディスプレイ装置に対してイメージ表示情報を適当なアナログ形式で供給するビデオＤＡＣＰＡＬ／ＮＴＳＣエンコーダと、
を備えていることを特徴とするシングル・チップ・コンピュータ・システム。
【請求項１３】
請求項１に記載のシングル・チップ・コンピュータ・システムにおいて、
前記専用コプロセッサは、ビデオイメージを生成するＭＰＥＧコプロセッサと、表示されるべきグラフィカル・オブジェクト上で幾何変換を実行するグラフィックス幾何コプロセッサと、前記グラフィックス幾何コプロセッサからの変換されたグラフィカル・オブジェクトを受け取り表示用の前記変換されたグラフィカル・オブジェクトをレンダリングするグラフィックス・レンダリング・コプロセッサと、を有しており、
このシングル・チップ・コンピュータ・システムは、
グラフィカル・イメージ及びビデオイメージを表示するディスプレイ装置を制御するディスプレイ制御装置と、
前記グラフィックス・レンダリング・コプロセッサ及び前記メモリ・インターフェースを機能的に接続するグラフィックス・バスと、
前記メモリ・インターフェースを前記ＭＰＥＧコプロセッサ及び前記ディスプレイ制御装置に機能的に接続するビデオ・バスと、
を更に備えていることを特徴とするシングル・チップ・コンピュータ・システム。
【請求項１４】
請求項１３に記載のシングル・チップ・コンピュータ・システムにおいて、
前記ＣＰＵ、前記ＭＰＥＧコプロセッサ及び前記グラフィックス・レンダリング・コプロセッサを機能的に接続する入力／出力（Ｉ／Ｏ）バスを更に備える、シングル・チップ・コンピュータ・システム。
【請求項１５】
外部データ記憶装置に接続されており少なくともブートアップ・プログラム・コード及び秘密暗号鍵を格納している内部コード・リードオンリメモリ（ＲＯＭ）を備えているシングル・チップ・コンピュータ・システムを安全にブートアップする方法であって、
（ａ）前記内部コードＲＯＭからの前記ブートアップ・プログラム・コードを実行することにより前記シングル・チップ・コンピュータ・システムのブートアップ・シーケンスを開始するステップと、
（ｂ）前記シングル・チップ・コンピュータ・システムにて前記外部記憶装置から更なる暗号化プログラム・コードを引き出すステップと、
（ｃ）前記シングル・チップ・コンピュータ内にて、前記内部コードＲＯＭ内に格納されている前記秘密暗号鍵を使用して前記引き出された暗号化プログラムを復号化するステップと、
を備えていることを特徴とする方法。
【請求項１６】
請求項１５に記載の方法において、前記シングル・チップ・コンピュータ・システムの外部にある前記プログラム・コードは暗号化されており、前記シングル・チップ・コンピュータ・システムの内部にある前記プログラム・コードは適当な実行のために復号化されていることを特徴とする方法。
【請求項１７】
請求項１６に記載の方法において、前記プログラム・コードは暗号化され、前記プログラム・コードを復号化するのに用いられる前記秘密暗号鍵は前記シングル・チップ・コンピュータ・システムの内部に保持されていることにより、前記プログラムの不正な複製が防止されることを特徴とする方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータ・システムに関し、より詳細には、ＭＰＥＧプロセッサとグラフィカル・プロセッサとが一体化されているシングル・チップ・コンピュータ・システムに関する。
【０００２】
【従来の技術】
マイクロプロセッサは、長年、コンピュータ・システムの主要な構成要素として用いられてきている。従来より、マイクロプロセッサは、中央処理装置（ＣＰＵ）、レジスタ、Ｉ／Ｏ、及び割り込みマネジャ等を含むシングル・チップのデバイスである。高性能マイクロプロセッサもまた、一般的に、浮動小数点演算処理専用のビルトイン・コプロセッサ又は機能ユニットを有する。
【０００３】
近年、グラフィクス及びビデオは、多くのコンピュータ・ユーザにとって一般的になると共に、関心の対象となってきている。高品質のグラフィクスを手に入れるために、特別のグラフィクス・サポートが必要である。同様に、特別のグラフィクス・ビデオ・サポートが、コンパクトディスクから読み出されたり遠隔サーバからダウンロードされる動画を表示するためには必要である。しばしばサポートされる既存のビデオ圧縮規格は、ＭＰＥＧである。
【０００４】
グラフィクス及びＭＰＥＧ処理だけでなく通常処理をもサポートするように構成されている従来設計のコンピュータ・システムでは、全ての必要な処理のためのハードウェア及び回路構成は、２個以上の別個の集積回路により提供されている。近年、アメリカ合衆国カリフォルニア州ミルピタス市所在のＬＳＩロジック社は、ＪＰＥＧ型プロセッサ及び幾何変換プロセッサを、マイクロプロセッサ・チップ上に組み合わせたソニー社向けの集積回路チップ（Sony-PSx）を製造している。
【０００５】
【発明が解決しようとする課題】
しかし、ＭＰＥＧ、表示制御、及びブートアップ動作を実行するためには、依然として、追加的な支援チップが必要である。また、マイクロプロセッサ・チップへのこれら支援チップのインターフェースは、マイクロプロセッサ・チップ自身の上に要求されるピン数の点において、非常にコストがかかる。例えば、マイクロプロセッサとＭＰＥＧコプロセッサとをインターフェースするためには、マイクロプロセッサとＭＰＥＧコプロセッサとの間に１００を超える接続（ピン）を必要とするであろう。コプロセッサ・マイクロプロセッサ間のインターフェースを与えなければならないというのは、マイクロプロセッサ設計者に対する大きな負担であるし、他の動作をサポートするためのマイクロプロセッサの能力を損なうことにもなる。
【０００６】
さらに、マイクロプロセッサと必要な種々のコプロセッサとの複雑さに起因して、必要な機能性を単一の集積回路チップの中に組み込むということは、従来、物理的に不可能、あるいは、あまりに困難なことであった。結果として、各プロセッサは相当なメモリ容量と帯域幅とを必要とするので、個々のチップ内に専用メモリが別に備えられていなければならなかった。専用メモリは、通常、プロセッサの最大の要求を処理するために構成されている。例えば、マイクロプロセッサのメモリの必要度は、アプリケーションのサイズにより変動し、グラフィック・プロセッサのメモリの必要度は、表示されるイメージのサイズ及び複雑さにより変動し、ＭＰＥＧプロセッサのメモリの必要度は、画像サイズによって変化する。結果として、従来のマルチメディア用のコンピュータ・システム設計におけるメモリ使用は、非効率的であった。メモリはこのような集積回路を製造する際のコストにおける主要な構成要素なので、メモリの非効率的な使用には問題がある。
【０００７】
既存のマイクロプロセッサ設計はまた、プログラム・コード又はデータへの認証を受けていないアクセスに対する保護を与えてくれない。複数のチップが実装されている場合には、認証を受けたユーザであれば、一般的に、マイクロプロセッサと接続するチップのピンへのアクセスを有すると共に、そこからプログラム・コード及びデータを取得することができる。
【０００８】
本発明は、上記した従来技術の問題点を解決するためになされたものであり、通常の処理動作に対するサポートを提供するだけでなく、グラフィクス及びビデオの処理動作に対する特別のサポートを提供するシングル・チップ・コンピュータ・システムを提供することを目的とする。また、プログラム・コード及びデータのセキュリティが改善されたコンピュータ・システムを提供することを目的とする。
【０００９】
【課題を解決するための手段】
大まかにいって、本発明は、中央処理装置（ＣＰＵ）のみならず専用コプロセッサを有する、高集積シングル・チップ・コンピュータ・システムに関連する。例えば、専用コプロセッサは、シングル・チップ・コンピュータ・システムの無理の内寸法決定を可能にするだけでなく、高質なビデオ及びグラフィクス動作の実行を可能にする。例として、ビデオサポートは、ＭＰＥＧ−２であり得るとともに、グラフィックサポートは、３次元グラフィクスを取り扱い得る。シングル・チップ・コンピュータ・システムは、ビデオ及びグラフィクス動作、リソーススケジューリング、及び改良されたセキュリティ性能を提供する。シングル・チップ・コンピュータ・システムによりもたらされる改良されたセキュリティは、認証を受けていないアクセスを防ぐためにシングル・チップ・コンピュータ・システムの外部に格納されているプログラム・コード及びデータが暗号化されることを許容するが、シングル・チップ・コンピュータ・システム内部のプログラム・コード及びデータは解読される。シングル・チップ・コンピュータ・システムは、特に高質なグラフィクス及び／又はビデオ、ディジタルビデオディスク（ＤＶＤ）プレーヤ、及びセットトップボックスを有するビデオゲーム制御装置に好適である。
【００１０】
本発明は、システム、装置、及び方法を含む多くの手段で実行され得る。いくつかの実施方法について以下に述べる。
【００１１】
シングル・チップ・コンピュータ・システムとして本発明の１つの実施態様は、シングル・チップ・コンピュータ・システムをブートアップするためのブートアップ・コードを少なくとも格納するリードオンリメモリ（ＲＯＭ）、特別な処理タスクを実行するための複数の専用コプロセッサ、プログラム・コードの実行を含む汎用処理タスクを実行するための中央処理装置（ＣＰＵ）、ＣＰＵ及びコプロセッサ間、又はコプロセッサ間においてデータ及び制御信号を転送するための１つ以上の内部プロセッサ・バス、シングル・チップ・コンピュータ・システムを外部共用共通メモリに接続するためのメモリインタフェース、及びＣＰＵ及びメモリインタフェース間においてデータ及び制御信号を転送するためのメインＣＰＵバスを備える。好ましくは、専用コプロセッサはグラフィクス幾何コプロセッサ、グラフィックレンダリングコプロセッサ、及びＭＰＥＧコプロセッサを含む。
【００１２】
シングル・チップ・コンピュータ・システムの実施形態はさらに、グラフィカルイメージ及びビデオイメージを表示するためにディスプレイ装置を制御するためのディスプレイ制御装置、グラフィクスレンダリングコプロセッサ及びメモリインタフェースを機能的に接続するグラフィクス・バス、及びメモリインタフェースをＭＰＥＧコプロセッサ及びディスプレイ制御装置と機能的に接続するビデオ・バスを備えている。これに加えさらに、シングル・チップ・コンピュータ・システムは、周辺ドライブ装置からのデータを受け取るためのストリームインタフェース、受信データを１つ以上の内部プロセッサ・バス及びＣＰＵバスに供給するためのストリーム・バス、ＭＰＥＧコプロセッサを外部スピーカに機能的に接続するためのオーディオディジタル−アナログコンバータ（ＤＡＣ）インターフェース、及びイメージ表示情報を適当なアナログ形式で外部ディスプレイに供給するビデオＤＡＣ ＰＡＬ／ＮＴＳＣエンコーダを備える。
【００１３】
プログラム・コード及びデータの認証されていない複製を防ぐために暗号化されたプログラム・コード及びデータを使用するシングル・チップ・コンピュータ・システムとしての本発明の他の実施態様は、シングル・チップ・コンピュータ・システムをブートアップするためのブートアップ・コードを及び非公開（秘密）暗号鍵を少なくとも格納する内部リードオンリメモリ（ＲＯＭ）と、プログラム・コードの実行を含む汎用処理タスクを実行するための中央処理装置（ＣＰＵ）と、シングル・チップ・コンピュータ・システムを外部共用共有メモリに接続すると共に、外部共通共有メモリに格納されるべきデータを暗号化し外部共通共有メモリから受け取られたデータを解読（復号化）するための暗号化／解読（復号化）装置を有するメモリインタフェースと、内部ＲＯＭに格納されている非公開（秘密）暗号鍵に依存する暗号化及び解読と、ＣＰＵ及びメモリインタフェース間においてデータ及び制御信号を転送するためのメインＣＰＵバスを備える。
【００１４】
シングル・チップ・コンピュータ・システムの実施態様はさらに、特別な処理タスクを実行するための複数の専用コプロセッサ、ＣＰＵ及びコプロセッサ間、又はコプロセッサ間においてデータ及び制御信号を転送するための１つ以上の内部プロセッサ・バスを備える、また、シングル・チップ・コンピュータ・システムは、周辺ドライブ装置から暗号化データを受け取るためのストリームインタフェース、内部ＲＯＭ内に格納されている非公開暗号鍵に基づき周辺ドライブ装置からの暗号化済データを解読するための解読装置を備え得る。
【００１５】
外部データ記憶装置と接続されているシングル・チップ・コンピュータ・システムをセキュアにブートアップするための方法としての発明の実施態様の１つは、シングル・チップ・コンピュータ・システムをブートアップするためのブートアップ・コードを及び非公開暗号鍵を少なくとも格納する内部コードリードオンリメモリ（ＲＯＭ）を備えるシングル・チップ・コンピュータ・システムを提供する操作、内部コードＲＯＭからのブートアップ・プログラム・コードを実行することによりシングル・チップ・コンピュータ・システムに対するブートアップシーケンスを開始する操作、シングル・チップ・コンピュータ・システムにて追加の暗号化済プログラム・コードを外部データ記憶装置から引き出す操作、及び内部コードＲＯＭに格納されている非公開暗号鍵を用いてシングル・チップ・コンピュータ・システム内の引き出された暗号化済プログラムを解読する操作を備える。
【００１６】
本発明の利点は数多い。本発明の１つの利点は、シングル・チップ・コンピュータが高性能グラフィクス及びビデオ動作を実行するための回路構成を備えていることである。本発明の他の利点は、シングル・チップ・コンピュータ・システムに関連する集積度の増加が、改善されたリソース割当及びリソーススケジューリング、高速なメモリアクセス、及びシングル・チップ・コンピュータのピン又はパッド数の削減を促進することである。更に他の利点は、シングル・チップ・コンピュータ・システムがプログラム・コード及びデータに対する認証されていないアクセスを防止するためにプログラム・コード及びデータについて強化されたセキュリティを提供することである。
【００１７】
【発明の実施の形態】
本発明は、１つの集積回路チップ上に、中央処理装置（ＣＰＵ）だけではなく専用のコプロセッサも一体化されているコンピュータ・システムに関する。例えば、専用コプロセッサは、シングル・チップ・コンピュータ・システムの合理的な寸法決定を可能にするだけでなく、高品質のビデオ及びグラフィクス動作を可能にする。例としては、ビデオ・サポートは、ＭＰＥＧ−２であり、グラフィクス・サポートは、３次元グラフィクスを取り扱い得る。本発明によるシングル・チップ・コンピュータ・システムは、ビデオ及びグラフィクス動作、リソース・スケジューリング及びセキュリティに関し、改善された性能を提供する。このシングル・チップ・コンピュータ・システムによって得られるセキュリティの改善によって、認証を受けていないアクセスを妨げるために、シングル・チップ・コンピュータ・システムの内部のプログラム・コード及びデータは暗号解除されながら、シングル・チップ・コンピュータ・システムの外部に記憶されているプログラム・コードとデータとが暗号化されることが可能となる。シングル・チップ・コンピュータ・システムは、特に、高品質なグラフィクス及び／又はビデオ、ディジタル・ビデオ・ディスク（ＤＶＤ）プレーヤ、及びセット・トップ・ボックスを有するビデオ・ゲーム用コンソールに適している。
【００１８】
本発明に係るいくつかの発明の実施の形態について、図１〜図４を参照して以下説明する。しかし、当業者であれば容易に理解するように、これらの図面を参照して明細書中に記述される詳細な説明は、説明を目的とするものであり、本発明は、これらの限定された発明の実施形態に限定されない。
【００１９】
図１は、本発明の実施例によるコンピュータ・システム１００のブロック図である。コンピュータ・システム１００は、マルチメディア・コンピュータ・システム・チップ１０２を備えている。マルチメディア・コンピュータ・システム・チップ１０２は、マルチメディア動作を能率良くサポートすることのできる高度に集積化された回路チップである。マルチメディア・コンピュータ・システム・チップ１０２はまた、メイン・メモリ１０４に電気的に接続されている。メイン・メモリ１０４は、例えば、ＳＤＲＡＭ、ＤＲＡＭ、ＳＧＲＡＭ、ＲＡＭＢＵＳ等のランダムアクセスメモリ（ＲＡＭ）といった半導体記憶装置である。マルチメディア・コンピュータ・システム・チップ１０２はまた、周辺装置１０６に接続されている。種々の周辺装置１０６の例としては、ハードディスク・ドライブ、ＣＤ−ＲＯＭドライブ、テープドライブ、ディジタル・ビデオ・ディスク（ＤＶＤ）等がある。マルチメディア・コンピュータ・システム・チップ１０２からのグラフィカル出力及びビデオ出力は、ビデオ・イメージ及びグラフィカル・イメージをユーザに表示するディスプレイ装置１０８によって提供される。さらに、オーディオ・デジタル・アナログ・コンバータ／アンプ（ＤＡＣ／ＡＭＰ）１１０及びスピーカ１１２は、共に、ユーザにオーディオ・サウンド出力を提供する。
【００２０】
図２は、本発明に係る詳細な発明の実施の形態に従うマルチメディア・コンピュータ・システム・チップ２００の詳細なブロック図である。マルチメディア・コンピュータ・システム・チップ２００は、図１に図示されているマルチメディア・コンピュータ・システム・チップ１０２の詳細な実施例の１つである。
【００２１】
図２に図解されているマルチメディア・コンピュータ・システム・チップ２００は、中央処理装置（ＣＰＵ）２０２と種々のコプロセッサとを備えている。ＣＰＵ２０２は、マイクロプロセッサであり、アメリカ合衆国カリフォルニア州マウンテンビュー市所在のMIPSテクノロジー社（シリコングラフィクス社の子会社）により製造されるようなMIPS R 4000縮小命令セットコンピュータ（ＲＩＳＣ）設計のマイクロプロセッサであることが好ましい。この実施例では、種々のコプロセッサには、グラフィクス幾何コプロセッサ２０４、ＭＰＥＧコプロセッサ２０６、及びグラフィクス・レンダリング・コプロセッサ２０８が含まれる。グラフィクス幾何コプロセッサ２０４は、頂点の３次元変換、ベクトルの正規化、及び明暗（lighting/shading）計算を加速させるために備えられている。３Ｄグラフィック・データベースを横断する機能をＣＰＵ２０２に担わせることによって、融通性が与えられる。グラフィクス幾何コプロセッサ２０４は、コプロセッサ・バス２１０を介して、ＣＰＵ２０２に結合されている。グラフィクス・レンダリング・コプロセッサ２０８は、グラフィック・オブジェクトのピクセルレベルでのレンダリング動作を実行する。例えば、グラフィクス・レンダリング・コプロセッサ２０８は、陰影付け、テクスチャリング、隠れ面消去、及びブレンディングを加速させる。ＭＰＥＧコプロセッサ２０６及びグラフィクス・レンダリング・コプロセッサ２０８は、入力／出力（Ｉ／Ｏ）バス２１２を通じてＣＰＵ２０２に結合されている。ＭＰＥＧコプロセッサ２０６は、ＭＰＥＧビデオ・シーケンスのリアルタイムでの圧縮解除（解凍）を提供する。これらＭＰＥＧ計算は複雑であり、特にＭＰＥＧ−２についてはなおさらである。ＣＰＵ２０２はまた、メインＣＰＵバス２１４に結合されている。マルチメディア・コンピュータ・システム・チップ２００はまた、ブートアップ・プログラム・コードと共に以下に述べる暗号解除（解読）に用いるための非公開鍵（private key）を格納するコードＲＯＭ２１６を備えている。
【００２２】
主メモリ・インターフェース２１８は、第１メモリ・バス２２０を通じて、メイン・メモリ１０４に結合している。主メモリ・インターフェース２１８は、暗号化／解読装置２２２を備えている。暗号化／解読装置２２２は、メイン・メモリ１０４に格納されるデータを暗号化すると共に、メイン・メモリ１０４から引き出されるデータを解読するように動作する。補助メモリ・インターフェース２２４は、第２メモリ・バス２２６を通じて、メイン・メモリ１０４に結合している。あるいは、メイン・メモリ１０４がいくつかの異なるメモリ・チップから構成されていたり、更には、互いに分離されている異なるメモリ形式から構成される場合には、第２メモリ・バスは、異なるメモリ・チップに接続され得る。補助メモリ・インターフェース２２４は、暗号化／解読装置２２８を備える。暗号化／解読装置２２８は、メイン・メモリ１０４に記憶されるデータを暗号化すると共に、メイン・メモリ１０４から引き出されるデータを解読するように動作する。
【００２３】
マルチメディア・コンピュータ・システム・チップ２００は、さらに、ストリーム・バス２３４を通じて、Ｉ／Ｏバス２１２及びメインＣＰＵバス２１４に接続されているストリームＩ／Ｏインターフェース２３０を備えている。この実施例では、ストリームＩ／Ｏインターフェース２３０はまた、ＭＰＥＧコプロセッサ２０６に結合されている。ストリームＩ／Ｏインターフェース２３０は、解読装置２３２を備えている。解読装置２３２は、マルチメディア・コンピュータ・システム・チップ２００内部で用いるために、周辺装置１０６からの着信データを解読する。周辺装置１０６から引き出されるデータが、ストリーム・バス２３４及びメインＣＰＵバス２１４を介し、主メモリインターフェース２１８又は補助メモリインターフェース２２４のいずれかを通じてメイン・メモリに転送される場合には、解読装置２３２は、バイパスすることができる。
【００２４】
オーディオ出力をオーディオＤＡＣ／ＡＭＰ１１０及びスピーカ１１２に供給するために、マルチメディア・コンピュータ・システム・チップ２００は、オーディオＤＡＣインターフェース２３６を備える。オーディオＤＡＣインターフェース２３６は、ディジタル化されたオーディオ・サウンド・データをオーディオＤＡＣインターフェース２３６に供給するＭＰＥＧコプロセッサ２０６と接続されている。ＭＰＥＧコプロセッサ２０６は、完全なＭＰＥＧ−２サポートを提供することが好ましい。ＭＰＥＧコプロセッサ２０６はまた、ディスプレイ制御装置２３８に接続されている。ディスプレイ制御装置２３８は、メモリからのディジタル化された画像を読み取り、そして、画像の表示に適当なピクセル値の生成を実行する。ディスプレイ制御装置２３８による処理には、水平及び垂直フィルタリング及びカラー・スペース変換が含まれる。ディスプレイ制御装置２３８は、ディスプレイ制御情報を、ビデオＤＡＣ ＰＡＬ／ＮＴＳＣエンコーダ２４０に供給する。ビデオＤＡＣ ＰＡＬ／ＮＴＳＣエンコーダ２４０は、自身が生成するディジタル波形に従い、ディスプレイ装置１０８を駆動する。ビデオＤＡＣＰＡＬ／ＮＴＳＣエンコーダ２４０は、同期情報を生成すると共に、ＰＡＬ ＮＴＳＣ同期方式のディジタル・ビデオ波形を生成する。
【００２５】
さらに、性能を高めるために、マルチメディア・コンピュータ・システム・チップ２００は、ビデオ・バス２４２及びグラフィクス・バス２４４を備えている。ビデオ・バス２４２は、主メモリ・インターフェース２１８及びＭＰＥＧコプロセッサ２０６間と、主メモリインターフェース２１８及びディスプレイ制御装置２３８間とに、直接バス接続を提供する。ビデオ・バス２４２は特に、ビデオ出力の生成、ビデオ出力の受信、及びメモリへのビデオ入力の直接格納に要求される高帯域幅の提供に有用である。グラフィクス・バス２４４は、主メモリ・インターフェース２１８及びグラフィクス・レンダリング・コプロセッサ２０８間の直接バス接続を提供する。グラフィクス・バス２４４は、ＣＰＵ２０２、Ｉ／Ｏバス２１２、又はＣＰＵ２０２に関連付けられているメインＣＰＵバス２１４の補助を必要とすることなく、グラフィクス・レンダリング・コプロセッサ２０８が主メモリ・インターフェース２１８を介してメイン・メモリ１０４にアクセスすることを可能にする。
【００２６】
マルチメディア・コンピュータ・システム・チップ２００内に備えられている暗号及び解読装置は、実行されているコンピュータ・プログラム、あるいはそのコンピュータプログラムが利用又は生成するデータに対するセキュリティを強化する。特に、プログラム・コード又はデータの全ての外部伝送は暗号化された形式で行われるので、認証を受けていない第３者は、コードＲＯＭ２１６内に格納されている非公開暗号鍵を知らなければ、プログラム・コード又はデータをコピーすることができない。しかし、コードＲＯＭ２１６がマルチメディア・コンピュータ・システム・チップ２００内部に在り、マルチメディアシステム・チップ２００の出力又はピンによりアクセス不可能な場合には、第３者は、まず暗号化アルゴリズムを破らなくては、使用可能なフォーマットでのコンピュータ・プログラム又はデータに対するアクセスを取得することができない。
【００２７】
（ゲーム関連コンピュータ・プログラムのような）グラフィクス系コンピュータ・プログラムのプログラム・コード実行時には、実行されているコンピュータ・プログラムに関連するグラフィカル・イメージを生成するために、ＣＰＵ２０２は、しばしば、グラフィクス幾何コプロセッサ２０４及びグラフィクス・レンダリング・コプロセッサ２０８と相互通信する。しかし、ビデオがマルチメディア・コンピュータ・システム・チップ２００により出力されている場合には、ＣＰＵ２０２は、ビデオ機能性を提供するＭＰＥＧコプロセッサ２０６と相互通信する。好ましくは、ＣＰＵ２０２は、これらコプロセッサに対して命令を発する。一旦、命令が発せられると、これらコプロセッサ２０４、２０６、２０８は、長い期間にわたり自律的に動作し得る。マルチメディア・コンピュータ・システム・チップ２００の設計が与えられる場合には、ＣＰＵ２０２は制御装置として、処理能力を、グラフィクス、サウンド、ビデオ、及び相互作用（interactivity）といった異なるレベルの組合せ性能のサポートに任意の時間に動的にシフトすることができる。利用可能な組み合わせられた潜在処理能力は、１秒間当たり２０億動作（２Ｇｏｐｓ）程度である。
【００２８】
図３は、本発明に係る発明の実施の形態の１つに従う暗号化を利用するブートアップ手順３００のフローチャートである。ブートアップ手順３００は、先ず内部コードＲＯＭ２１６からコンピュータ・システム１００をブートアップする（３０２）。より詳細には、コンピュータ・システム１００は、内部コードＲＯＭ２１６に格納されているコンピュータ・コードを使用してブートアップする（３０２）。内部コードＲＯＭ２１６は、シングル・チップコンピュータ・システム１０２、２００の内部に在るので、認証を受けていない第３者は、内部コードＲＯＭ２１６内に格納されているデータ及びコードに対するアクセスの取得を厳しく制限される（大抵は阻止される）。この結果、コンピュータ・システム１００は、認証なしに複製又は使用されるべきでないコンピュータ・コード又はデータといった自身の重要なコンピュータ・コード及びデータを自身で守ることができる。
【００２９】
次に、プログラム・データ・ブロックが周辺装置１０６から引き出される（３０４）。例えば、プログラム・データ・ブロックは、プログラム・コード、データ又はプログラム・コードとデータとの双方を含み得る。プログラム・データ・ブロックは、ＣＤ−ＲＯＭ又はハード・ドライブに格納され得ると共に、プログラム・コード又はデータの引出（リトリーブ）は、ストリームＩ／Ｏインターフェース２３０を通じて引き出され得る。そして、決定ブロック３０６は、引き出されたプログラム・データ・ブロックが暗号化されているか否かを決定する。通常、セキュリティ上の理由から、引き出されるプログラム・データ・ブロックのプログラム・コード又はデータは暗号化されている。しかし、一般的に、引き出されているプログラム・データ・ブロックは、暗号化されていることもあり又暗号化されていないこともあり、あるいは、プログラム・データ・ブロックのプログラム・コード又はデータの一部分だけ暗号化され、他の部分は暗号化されていないこともある。決定ブロック３０６は、引き出されたプログラム・データ・ブロックは暗号化されていると判断する場合には、次に、解読が要求されているか否かを決定する。解読が要求されている場合には、引き出されたプログラム・データ・ブロックは解読される（３１０）。解読は、好ましくは、コンピュータ・システム・チップ１０２、２００の外部からはアクセス不可能であるように、安全に内部コードＲＯＭ２１６内に格納されている非公開鍵を使用して、実行される。公開鍵を使用して暗号化が実行され、非公開鍵を使用して解読されるのが好ましいが、様々な異なる暗号化アルゴリズムを用いることができる。この後、引き出されたプログラム・データ・ブロックが暗号化されていないときはブロック３０６に続き、引き出されたプログラム・データ・ブロックが解読されていない場合にはブロック３０８に続き、あるいは、引き出されたプログラム・データ・ブロックが既に解読されている場合にはブロック３１０に続き、引き出されたプログラムデータブロックが、メイン・メモリ１０４又は内部メモリ内に格納される（３１２）。内部メモリ（図示しない）は、コンピュータ・システム・チップ１０２、２００の内部にあり、内部コードＲＯＭ２１６と同様にコンピュータ・システム・チップ１０２、２００の外部からはアクセス不可能である。
【００３０】
次に、決定ブロック３１４は、周辺装置１０６から引き出されるべきデータ・ブロックが更に存在するかどうかを決定する。決定ブロック３１４が、周辺装置１０６から引き出されるべきデータブロックがさらに存在すると決定する場合には、ブートアップ手順３００はブロック３０４及びそれ以降のブロックを繰り返すためにリターンする。これに対して、決定ブロック３１４が周辺装置１０６から引き出されるべき全てのデータ・ブロックが既に引き出されていると判断する場合には、ブートアップ手順３００は完了し、終了する。
【００３１】
通常、引き出されたプログラム・データ・ブロックは、マルチメディア・コンピュータ・システム・チップ１０２、２００内に格納されるので、マルチメディア・コンピュータ・システム・チップ１０２、２００に到達すると解読される。引き出されたプログラム・データ・ブロックは既に解読されているので、その後、マルチメディア・コンピュータ・システム・チップ１０２、２００は、そのデータ・ブロックを利用できる。しかし、引き出されたプログラム・データ・ブロックが必要とされるまで常駐することとなる外部メイン・メモリ１４０に転送されるべき場合には、この引き出されたプログラム・データ・ブロックは暗号化されたままで外部メイン・メモリ１０４に転送され得る。これに対して、外部メイン・メモリ１０４に送られる場合であっても、引き出されたプログラム・データ・ブロックがストリームＩ／Ｏインターフェース２３０においてマルチメディア・コンピュータ・システム・チップ１０２、２００内に入るときには、引き出されたプログラム・データ・ブロックは解読することができ、そして、後に格納されるべき外部メイン・メモリ１０４上にてメモリインターフェース２１８、２２４によって暗号化される。
【００３２】
マルチメディア・コンピュータ・システム・チップ１０２、２００に関連する暗号化又は解読プロセスは、また、メモリ・インターフェース２１８、２２４によるメイン・メモリ１０４に対するメモリ・アクセスにも応用できる。図４は、本発明の実施例によるメモリ・アクセス手順４００のフローチャートである。
【００３３】
メモリ・アクセス手順４００は、データが外部メイン・メモリ１０４に格納されているか否かを決定する決定ブロック４０２において、開始する。データがメイン・メモリ１０４に格納されている場合には、データは暗号化され（４０４）、その後、この暗号化されたデータは、外部メモリ１０４に格納される（４０６）。この場合、データは、マルチメディア・コンピュータ・システム・チップ２００を離れマルチメディア・コンピュータ・システム・チップ２００の外部にある外部メイン・メモリ１０４に格納されるので、暗号化される。当然のことながら、格納されているデータが既に暗号化されている場合には、このブロックはバイパスされる。既述のように、公開鍵を用いて暗号化が実行され非公開鍵を用いて解読が実行されることが好ましいが、様々な異なる暗号化アルゴリズムを用いることができる。
【００３４】
これに対して、決定ブロック４０２は、データは格納されていないと判断する場合には、データが外部メイン・メモリ１０４から引き出されたか否かを決定する。決定ブロックは、データは外部メイン・メモリ１０４から引き出されたと決定する場合には、続いて、引き出されたデータは暗号化されているか否かを決定する。いくつかの実現例では、外部メイン・メモリ１０４に格納されている全てのデータが暗号化されているわけでなく、重要であって認証を受けていない第３者による取得の排除が要求されるデータだけが暗号化されているので、決定ブロック４１０は有用である。他の実現例では、外部メイン・メモリ１０４に格納されている全てのデータが暗号化されている。決定ブロック４１０が引き出されたデータは暗号化されていると決定するとき、外部メイン・メモリ１０４から引き出されたデータは解読される（４１２）。解読は、コンピュータ・システム・チップ２００の外部からアクセス不可能であるように内部コードＲＯＭ２１６内に安全に格納されている非公開暗号鍵を使用して、実行されることが好ましい。図２に関しては、解読は、主メモリ・インターフェース２１８と補助メモリ・インタフェース２２４のいずれがデータを引き出すかに依存して、暗号化／解読装置２２２又は暗号化／解読装置２２８のいずれかにより実行される。あるいは、決定ブロック４１０が、引き出されたデータは暗号化されていないと決定する場合には、ブロック４１２はバイパスされる。いずれにしても、解読が実行されていない場合には、ブロック４１２又は決定ブロック４１０に続いて引き出しデータが要求元に対して転送される（４１４）。要求元は通常、コンピュータ・システム・チップ２００のＣＰＵ２０２又はコプロセッサ２０４、２０６、２０６の中の１つである。
【００３５】
データが引き出されていないときは、ブロック４０６、４１４、及び決定ブロック４０８に続いて、メモリ・アクセス手順４００が完了し終了する。メモリ・アクセス手順４００は、受信されたデータ又はマルチメディア・コンピュータ・システム・チップ１０２、２００からの出力の暗号化及び解読に伴う処理を説明している。しかし、メモリアクセス手順４００の副手順の格納及び受取は、別の手順として実行され得ると共に、関連処理はハードウェア、ソフトウェア、または、ハードウェア及びソフトウェアの組合せで実行され得ることは当業者によって理解される。
【００３６】
本発明に従うマルチメディア・コンピュータ・システム・チップ１０２、２００は、その中でＭＰＥＧ（つまりＭＰＥＧ−２）及びハイエンド・グラフィクス（例えば３次元グラフィクス）が単一のチップ上で提供される、高集積化されたコンピュータ・システムである。単一チップ上におけるこの機能性の統合は、メイン・メモリ１０４に対する呼出時間の低減を許容する。種々のプロセッサ及びコプロセッサの動作は、それらのメモリに対するアクセスと同様に多くの並行動作がより好ましくスケジュール化され得るので、統合（一体化）はまた、メモリ帯域幅の最適化に役立つ。さらに、全てのプロセッサ及びコプロセッサは、動作のスケジューリングに有用な状態情報を取得するために、マルチメディア・コンピュータ・システム・チップ２００の他の部分に対するアクセスを有し得る。
【００３７】
本発明の１つの利点は、種々のコプロセッサ２０４、２０６、２０８とＣＰＵ２０２との統合が、ＣＰＵ及び従来外部チップであった個々のコプロセッサ間における外部インターフェースの必要性を排除する所にある。このようなチップ上に要求されるピン数は１００本を超える。このような外部インターフェースを取り除くことにより、本発明は、チップに要求されるピン数をかなり削減することができる。マルチメディア・コンピュータ・システム・チップ２００の一例では、アドレス・バスは３２ビット幅でありデータバスは６４ビット幅である。したがって、この例では、これら９６本のピンといくつかの制御信号、及び従来よりコプロセッサのインターフェース線に要求される割り込み線が、本発明により全て除去される。単一チップ上にＣＰＵ及び種々のコプロセッサを備えることにより、これらのピンはもはや必要でなくなる。
【００３８】
本発明の他の利点は、メモリ共有機会の増加にある。メイン・メモリ１０４は、シングル・チップ・コンピュータ・システム上に在るＣＰＵ２０２及び種々のコプロセッサによって効率よく共有され得る。さらに、ディスプレイ制御装置が従来より備える相当なランダムアクセスメモリ（ＲＡＭ）は、メイン・メモリ１０４の一部を使用することにより大幅に削減され得る。マルチメディア・コンピュータ・システム・チップ２００では、特に、マルチメディアシステム・チップ２００がディスプレイ制御装置２３８及び主メモリ・インターフェース２１８を接続するビデオ・バス２４２を有するとき、メイン・メモリに提供される帯域幅はこの機能をサポートするために要求される水準を充分満たすほど高い。
【００３９】
さらに他の利点は、シングル・チップ・コンピュータ・システムが、自身に対する認証を受けていないアクセスを防止するために、プログラム・コード及びデータについての強化されたセキュリティを提供するところにある。シングル・チップ・コンピュータ・システム外部の重要なプログラム・コード及びデータを暗号化することにより、認証されていないユーザは、使用可能なフォームのプログラム・コード及びデータに対するアクセスの取得を大幅に妨げられる。単に、シングル・チップ・コンピュータ・システムの入力及び出力を調べるだけではアクセス不可能、又は発見不可能であるように、暗号化プログラム・コード及びデータの解読に必要な非公開鍵は、シングル・チップ・コンピュータ・システム内部に格納されている。非公開鍵の取得にあたって、半導体構造中に符号化されている非公開鍵の値の追求を試みる場合には、困難且つ膨大な時間を必要とするチップ自身のリバースエンジニアリングのタスクが必要である。
【００４０】
以上、いくつかの発明の実施の形態に基づき本発明を詳述してきたが、本発明の趣旨を逸脱しない範囲で改良、変更が可能であることは理解されるべきであり、また、上記構成並びに作用は本発明を説明するものであり、本発明を限定するものではない。また、上記記載から本発明の多くの特徴並びに利点が明らかになると共に、これら特徴並びに利点は特許請求の範囲に全て包含されている。
【図面の簡単な説明】
【図１】  本発明に係る発明の実施の形態の１つに従うコンピュータ・システムのブロック図である。
【図２】  本発明に係る詳細な発明な実施の形態に従うマルチメディア・コンピュータ・システムの詳細なブロック図である。
【図３】  本発明に係る発明の実施の形態に従うブートアップ手順のフローチャートである。
【図４】  本発明に係る発明の実施の形態に従うメモリアクセス手順のフローチャートである。
【図１】
0004183296.tif 000002
【図２】
0004183296.tif 000003
【図３】
0004183296.tif 000004
【図４】
0004183296.tif 000005