(57)【要約】  マルチスレッド・プロセッサには、取り出された命令を復号して取り出されたそれぞれの命令について命令タイプを決定するための命令復号器と、整数タイプの命令を処理するために命令復号器に結合された整数ユニットと、ベクトル・タイプの命令を処理するために命令復号器に結合されたベクトル・ユニットとが含まれる。好ましくは簡約（ｒｅｄｕｃｔｉｏｎ）ユニットがベクトル・ユニットに関連付けられ、当該ベクトル・ユニットで処理される並列データ要素を受け取る。簡約ユニットは、並列データ要素から直列出力を生成する。プロセッサは、少なくとも、制御コード、デジタル信号プロセッサ（ＤＳＰ）コード、Ｊａｖａ（登録商標）コード、およびネットワーク処理コードを実行するように構成することが可能であり、したがって、集中デバイスでの使用に適している。プロセッサは、好ましくは、命令のパイプライン化に関してトークン・トリガ・スレッディングを使用するように構成される。【特許請求の範囲】
【請求項１】
取り出された命令のうちの少なくとも１つのサブセットのそれぞれについて命令タイプを決定するために、取り出された命令を復号するための命令復号器と、
前記命令復号器から受け取った整数タイプの命令を処理するために、前記命令復号器に結合された整数ユニットと、
前記命令復号器から受け取ったベクトル・タイプの命令を処理するために、前記命令復号器に結合されたベクトル・ユニットとを含む、マルチスレッド・プロセッサ。
【請求項２】
前記ベクトル・ユニットに関連付けられ、前記ベクトル・ユニット内で処理された並列データ要素を受け取る簡約ユニットをさらに含み、前記簡約ユニットは前記並列データ要素から直列出力を生成するものである、請求項１に記載のマルチスレッド・プロセッサ。
【請求項３】
前記命令は前記マルチスレッド・プロセッサのマルチスレッド・キャッシュ・メモリから前記命令復号器によって取り出され、前記マルチスレッド・キャッシュ・メモリは前記プロセッサの複数のスレッドそれぞれについてスレッド・キャッシュを含むものである、請求項１に記載のマルチスレッド・プロセッサ。
【請求項４】
前記整数ユニットは、前記命令復号器の出力に結合された入力を有する整数命令待ち行列と、前記整数命令待ち行列の出力に結合された入力を有するレジスタ・ファイルと、前記レジスタ・ファイルの入力に結合された出力を有するオフセット・ユニットと、前記レジスタ・ファイルの出力に結合された少なくとも１つの入力を有する追加要素とをさらに含む、請求項１に記載のマルチスレッド・プロセッサ。
【請求項５】
前記オフセット・ユニットは、前記プロセッサによってサポートされた複数のスレッドのそれぞれについて別々のインスタンスを含む、請求項４に記載のマルチスレッド・プロセッサ。
【請求項６】
前記ベクトル・ユニットは、前記命令復号器の出力に結合された入力を有するベクトル命令待ち行列と、前記ベクトル命令待ち行列の出力に結合された入力を有するベクトル・ファイルと、前記ベクトル・ファイルの入力に結合された出力を有するオフセット・ユニットと、前記ベクトル・ファイルの出力に結合された入力を有する少なくとも１つの算術要素とをさらに含む、請求項１に記載のマルチスレッド・プロセッサ。
【請求項７】
前記オフセット・ユニットは、前記プロセッサによってサポートされた複数のスレッドのそれぞれについて別々のインスタンスを含む、請求項６に記載のマルチスレッド・プロセッサ。
【請求項８】
前記プロセッサは、少なくとも、ｂｒａｎｃｈ、ｌｏａｄ、ｓｔｏｒｅ、ｉｎｔｅｇｅｒ、およびｖｅｃｔｏｒの命令タイプをサポートするように構成された、請求項１に記載のマルチスレッド・プロセッサ。
【請求項９】
前記ベクトル命令タイプは、単一発行多重ディスパッチ（ｓｉｎｇｌｅ  ｉｓｓｕｅ  ｍｕｌｔｉｐｌｅ  ｄｉｓｐａｔｃｈ）命令タイプを含む、請求項８に記載のマルチスレッド・プロセッサ。
【請求項１０】
前記ベクトル・ユニットは複数の並列分岐を含み、分岐のそれぞれは前記プロセッサの特定スレッドに対応するものである、請求項１に記載のマルチスレッド・プロセッサ。
【請求項１１】
前記並列分岐のそれぞれは、ベクトル・ファイルの一部、乗算器、加算器、および累算器の直列組合せを含む、請求項１０に記載のマルチスレッド・プロセッサ。
【請求項１２】
前記プロセッサは、少なくとも制御コード、デジタル信号プロセッサ（ＤＳＰ）コード、Ｊａｖａ（登録商標）コード、およびネットワーク処理コードを実行するように構成された、請求項１に記載のマルチスレッド・プロセッサ。
【請求項１３】
前記プロセッサは、トークン・トリガ・スレッディングを使用するように構成された、請求項１に記載のマルチスレッド・プロセッサ。
【請求項１４】
前記トークン・トリガ・スレッディングは、トークンを使用して、現在のプロセッサ・クロック・サイクルに従って、前記プロセッサの複数のスレッドのうちの特定の１つを識別するものであり、それによって後続のクロック・サイクルに対する命令を発行することが可能となる、請求項１３に記載のマルチスレッド・プロセッサ。
【請求項１５】
前記トークン・トリガ・スレッディングは、前記プロセッサの複数のスレッドそれぞれに対して異なるトークンを割り当てる、請求項１３に記載のマルチスレッド・プロセッサ。
【請求項１６】
前記プロセッサは、パイプライン化された命令を処理するように構成された、請求項１に記載のマルチスレッド・プロセッサ。
【請求項１７】
前記プロセッサは、各スレッドがプロセッサ・クロック・サイクルあたり１つの命令を発行する命令パイプラインを使用する、請求項１６に記載のマルチスレッド・プロセッサ。
【請求項１８】
前記プロセッサは、各スレッドがプロセッサ・クロック・サイクルあたり複数の命令を発行する命令パイプラインを使用する、請求項１６に記載のマルチスレッド・プロセッサ。
【請求項１９】
前記プロセッサの複数のスレッドそれぞれは、前記複数のスレッドのいずれも機能停止させることなく、対応する複数のプロセッサ・クロック・サイクルのそれぞれでロード命令およびベクトル乗算命令の両方を発行する、請求項１８に記載のマルチスレッド・プロセッサ。
【請求項２０】
マルチスレッド・プロセッサと、
前記マルチスレッド・プロセッサに関連付けられたメモリとを含む、プロセッサ・システムであって、
前記マルチスレッド・プロセッサは、取り出された命令のうちの少なくとも１つのサブセットのそれぞれについて命令タイプを決定するために、取り出された命令を復号するための命令復号器と、前記命令復号器から受け取った整数タイプの命令を処理するために、前記命令復号器に結合された整数ユニットと、前記命令復号器から受け取ったベクトル・タイプの命令を処理するために、前記命令復号器に結合されたベクトル・ユニットとを含むものである、プロセッサ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にデジタル・データ・プロセッサの分野に関し、より詳細には、マルチスレッド・プロセッサに関する。
【背景技術】
【０００２】
関連出願
本発明は、参照により本明細書に組み込まれている、２００１年１２月２０日に出願した、「Method and Apparatus for Multithreaded Processor」という名称の米国仮出願第６０／３４１，２８９号の優先権を主張するものである。
【０００３】
本発明は、「Method and Apparatus for Thread-Based Memory Access in a Multithreaded Processor」という名称の整理番号１００７−５、「Method and Apparatus for Register File Port Reduction in a Multithreaded Processor」という名称の整理番号１００７−７、および「Method and Apparatus for Token Triggered Multithreading」という名称の整理番号１００７−８の、米国特許出願に記載された発明に関するものであり、これらはすべて同時に出願され、参照により本明細書に組み込まれている。
【０００４】
マルチスレッド・プロセッサとは、複数の別個の命令シーケンス、すなわち「スレッド」の同時実行をサポートするプロセッサのことである。従来のスレッド技術は、たとえばM.J. Flynn、「Computer Architecture: Pipelined and Parallel Processor Design」Jones and Barlett Publishers, Boston, MA、1995年と、G.A. Blaauw and Frederick P. Brooks、「Computer Architecture: Concepts and Evolution」Addison-Wesley, Reading, Massachusetts、1997年に記載されており、これらはどちらも参照により本明細書に組み込まれている。
【０００５】
既存のマルチスレッド・プロセッサは、通常、様々な異なる媒体を介して通信される音声、データ、オーディオ、ビデオ、および他の情報を処理するように構成されたデバイスを含むことが可能な、集中（ｃｏｎｖｅｒｇｅｎｃｅ）デバイスで使用するようには最適化されていない。こうしたデバイスは、一般に、信号処理オペレーションに関連付けられたデジタル信号プロセッサ（ＤＳＰ）コード、ならびにＪａｖａ（登録商標）または他のオブジェクト指向プログラミング言語で作成された高水準プログラム・アプリケーション・コードを含む、いくつかの異なる種類のコードを実行する必要がある。この種の集中デバイスのより具体的な例が、参照により本明細書に組み込まれた３ＧＰＰ  Ｔｅｃｈｎｉｃａｌ  Ｓｐｅｃｉｆｉｃａｔｉｏｎｓ  ＴＳ  ２５．１ｘｘに記載された、３ｒｄ  Ｇｅｎｅｒａｔｉｏｎ  Ｐａｒｔｎｅｒｓｈｉｐ  Ｐｒｏｊｅｃｔ（３ＧＰＰ）Ｗｉｄｅｂａｎｄ  ＣＤＭＡ（ＷＣＤＭＡ）システムなどの、最近開発された高速のＣＤＭＡ通信システムの無線移動ユニットである。
【特許文献１】米国仮出願第６０／３４１，２８９号
【特許文献２】米国特許出願整理番号
【特許文献３】米国特許出願整理番号１００７−７
【特許文献４】米国特許出願整理番号１００７−８
【非特許文献１】M.J. Flynn、「Computer Architecture: Pipelined and Parallel Processor Design」Jones and Barlett Publishers, Boston, MA、1995年
【非特許文献２】G.A. Blaauw and Frederick P. Brooks、「Computer Architecture: Concepts and Evolution」Addison-Wesley, Reading, Massachusetts、1997年
【非特許文献３】3GPP Technical Specifications TS 25.1xx
【特許文献５】米国特許出願第１０／１６１，７７４号
【特許文献６】米国特許出願第１０／１６１，８７４号
【非特許文献４】N. Yadav、M. Schulte、およびJ. Glossner、「Parallel Saturating Fractional Arithmetic Units」、Proceedings of the 9th Great Lakes Symposium on VLSI、172〜179頁、Ann Arbor, Michigan、 1999年３月４〜６日
【発明の開示】
【発明が解決しようとする課題】
【０００６】
したがって、集中デバイスでの使用に特に適した改良型マルチスレッド・プロセッサが求められている。
【課題を解決するための手段】
【０００７】
本発明は、例示的実施形態では、ＲＩＳＣベースの制御コード、ＤＳＰコード、Ｊａｖａ（登録商標）コード、およびネットワーク処理コードを効率的に実行することが可能であり、したがって、３ＧＰＰ  ＷＣＤＭＡ移動ユニットまたは他の集中デバイスでの使用に特に適している、改良型マルチスレッド・プロセッサを提供するものである。
【０００８】
本発明の一態様によれば、マルチスレッド・プロセッサには、取り出された命令を復号して取り出されたそれぞれの命令について命令タイプを決定するための命令復号器と、整数タイプの命令を処理するために命令復号器に結合された整数ユニットと、ベクトル・タイプの命令を処理するために命令復号器に結合されたベクトル・ユニットとが含まれる。好ましくは簡約（ｒｅｄｕｃｔｉｏｎ）ユニットがベクトル・ユニットに関連付けられ、当該ベクトル・ユニットで処理される並列データ要素を受け取る。簡約ユニットは、並列データ要素から直列出力を生成する。プロセッサは、好ましくは、命令のパイプライン化に関してトークン・トリガ・スレッディングを使用するように構成される。
【発明を実施するための最良の形態】
【０００９】
本発明について、例示的なマルチスレッド・プロセッサおよび対応する処理システムに関して、本明細で例示する。しかし、本発明は、例示的実施形態の特定のマルチスレッド・プロセッサおよび処理システムの構成を使用する必要はなく、より一般には、改良型プロセッサ性能を提供することが望ましい、任意のマルチスレッド・プロセッサまたは情報処理システム・アプリケーションでの使用に好適であることを理解されたい。さらに、本発明のマルチスレッド・プロセッサは、集中デバイスでの使用に特に適しているが、他のタイプのデバイスでも使用可能である。
【００１０】
以下でより詳細に説明するように、本発明に従ったマルチスレッド・プロセッサの例示的実施形態は、ＲＩＳＣベースの制御コード、デジタル信号プロセッサ（ＤＳＰ）コード、Ｊａｖａ（登録商標）コード、およびネットワーク処理コードを実行することが可能である。プロセッサには、単一命令多重データ（ＳＩＭＤ）ベクトル・ユニット、簡約ユニット、および長命令語（ＬＩＷ）の複合命令実行が含まれる。
【００１１】
図１は、本発明に従ったマルチスレッド・プロセッサ１０２を示す図である。マルチスレッド・プロセッサ１０２には、他の要素の中でもとりわけ、マルチスレッド・キャッシュ・メモリ１１０、マルチスレッド・データ・メモリ１１２、命令復号器１１６、レジスタ・ファイル１１８、およびメモリ管理ユニット（ＭＭＵ）１２０が含まれる。マルチスレッド・キャッシュ・メモリ１１０は、本明細書ではマルチスレッド・キャッシュとも呼ばれる。
【００１２】
マルチスレッド・キャッシュ１１０は、複数のスレッド・キャッシュ１１０−１、１１０−２、・・・１１０−Ｎを含み、Ｎは一般にマルチスレッド・プロセッサ１０２によってサポートされるスレッド数を示すものであって、この特定の例ではＮ＝４によって与えられる。もちろん、当業者には容易に明らかなように、Ｎの他の値も使用可能である。
【００１３】
したがって各スレッドは、マルチスレッド・キャッシュ１１０内に、それに関連付けられた対応するスレッド・キャッシュを有する。同様に、データ・メモリ１１２はＮ個の別個のデータ・メモリ・インスタンスを含み、データ・メモリ１１２−１、１１２−２、・・・１１２−Ｎとして示されている。
【００１４】
プロセッサ１０２は、上記の米国特許出願整理番号１００７−８「Method and Apparatus for Token Triggered Multithreading」に記載されているような、トークン・トリガ・マルチスレッディングを実施することができる。トークン・トリガ・スレッディングは、通常、プロセッサの複数のスレッドそれぞれに異なるトークンを割り当てる。たとえばトークン・トリガ・スレッディングは、トークンを使用して、現在のプロセッサ・クロック・サイクルに従って、プロセッサのスレッドのうちの特定の１つを識別することが可能であり、それによって後続のクロック・サイクルに対する命令を発行することが可能となる。他のタイプのスレッディングも使用するか、あるいは代わりに使用することができる。
【００１５】
マルチスレッド・キャッシュ１１０内のそれぞれのスレッド・キャッシュは、１つまたは複数セットのメモリ位置を有するメモリ・アレイを含むことができる。さらに所与のスレッド・キャッシュは、関連付けられたスレッド識別子を格納するための、スレッド識別子レジスタも含むことができる。
【００１６】
マルチスレッド・キャッシュ１１０は、ＭＭＵ１２０を介して、プロセッサ１０２の外部にある主メモリ（図示せず）とインターフェースする。ＭＭＵ１２０は、キャッシュ１１０と同様に、プロセッサによってサポートされているＮ個のスレッドそれぞれについて、別々のインスタンスを含む。ＭＭＵ１２０は、主メモリからの適切な命令がマルチスレッド・キャッシュ１１０にロードされることを保証するものである。ＭＭＵ１２０はキャッシュ・コントローラを含むか、またはそうでなければそれに関連付けられていることが可能であり、完全アソシエイティブ（ａｓｓｏｃｉａｔｉｖｅ）マッピング、ダイレクト・マッピング、またはセット・アソシエイティブ・マッピングなどの、アドレス・マッピング技法の少なくとも一部を実施することができる。本発明に関して使用するのに好適な例示的セット・アソシエイティブ・マッピングについては、米国特許出願第１０／１６１，７７４号および１０／１６１，８７４号に記載されており、これらの出願はどちらも２００４年６月４日に出願され、本願譲受人に譲渡されており、さらにどちらも参照により本明細書に組み込まれている。
【００１７】
データ・メモリ１１２も、通常は上記の外部主メモリに直接接続されているが、この接続は明示的に図示されてはいない。その他にデータ・メモリ１１２に関連付けられているのが、データ・バッファ１３０である。
【００１８】
マルチスレッド・キャッシュ１１０、データ・メモリ１１２、またはマルチスレッド・プロセッサに関連付けられた他のメモリの、スレッド・ベース・バンキング技法については、上記の「Method and Apparatus for Thread-Based Memory Access in a Multithreaded Processor」という名称の米国特許出願整理番号１００７−５に記載されている。
【００１９】
一般に、マルチスレッド・キャッシュ１１０は、マルチスレッド・プロセッサ１０２によって実行される命令を格納するために使用されるが、データ・メモリ１１２は命令によって動作されるデータを格納する。命令は、命令復号器１１６によってマルチスレッド・キャッシュ１１０からフェッチされ、復号される。以下で説明するように、命令復号器１１６は、命令のタイプに応じて、所与の命令または関連情報をプロセッサ内の様々な他のユニットに転送することができる。
【００２０】
プロセッサ１０２は、この例では制御レジスタ（ＣＲ）１３４、リンク・レジスタ（ＬＲ）１３６、およびカウンタ・レジスタ（ＣＴＲ）１３８を含む、補助レジスタ１３２のセットをさらに含む。これらの補助レジスタは、フェッチされた命令の位置を修正することによって、プログラム制御フローを支援する。図に示されるように、補助レジスタ１３４、１３６、および１３８それぞれに、例示的実施形態のそれぞれのスレッドに関連付けられた、１つのインスタンスがある。
【００２１】
プロセッサ１０２内の他のレジスタには、分岐レジスタ１４０およびプログラム・カウンタ（ＰＣ）レジスタ１４２が含まれる。補助レジスタ１３４、１３６、および１３８と同様に、プログラム・カウンタ・レジスタ１４２には、スレッドそれぞれについて１つのインスタンスが含まれる。分岐レジスタ１４０は命令復号器１１６から命令を受け取り、プログラム・カウンタ・レジスタ１４２と共にＡＤＤブロック１４４へ入力を提供する。要素１４０、１４２、および１４４は、集合的に、プロセッサ１０２の分岐ユニットを備える。分岐ユニットは、プロセッサによって実施される命令パイプライン内の命令のフェッチを制御する。
【００２２】
レジスタ・ファイル１１８は、整数結果の一時ストレージを提供するものである。命令復号器１１６から整数命令待ち行列（ＩＱ）１５０へ転送された命令は復号され、それぞれのスレッドについて別々のインスタンスを含むように図示されたオフセット・ユニット１５２の使用を通じて、適切なハードウェア・スレッド・ユニットが選択される。オフセット・ユニット１５２は、レジスタ・ファイル・アドレスに明示的ビットを挿入するため、独立したスレッド・データは破損しない。所与のスレッドでは、これらの明示的ビットはたとえば対応するスレッド識別子を含むことができる。
【００２３】
図に示されるように、レジスタ・ファイル１１８は入力レジスタＲＡおよびＲＢに結合され、これらの出力がＡＤＤブロック１５４に結合される。入力レジスタＲＡおよびＲＢは、命令パイプライン化を実施する際に使用される。ＡＤＤブロック１５４の出力は、データ・メモリ１１２に結合される。
【００２４】
レジスタ・ファイル１１８、整数命令待ち行列１５０、オフセット・ユニット１５２、要素ＲＡおよびＲＢ、ならびに追加要素１５４は、集合的に、本発明に従った例示的整数ユニットを備える。
【００２５】
レジスタ・ファイル１１８などのレジスタ・ファイルへのスレッド・ベース・アクセスに関する技法は、上記の米国特許出願整理番号１００７−７「Method and Apparatus for Register File Port Reduction in a Multithreaded Processor」に記載されている。
【００２６】
プロセッサ１０２内で実行可能な命令タイプには、Ｂｒａｎｃｈ（分岐）、Ｌｏａｄ（ロード）、Ｓｔｏｒｅ（格納）、Ｉｎｔｅｇｅｒ（整数）、およびＶｅｃｔｏｒ（ベクトル）／ＳＩＭＤの命令タイプが含まれる。所与の命令がＢｒａｎｃｈ、Ｌｏａｄ、Ｓｔｏｒｅ、またはＩｎｔｅｇｅｒオペレーションを指定しない場合は、Ｖｅｃｔｏｒ／ＳＩＭＤ命令である。他の命令タイプも使用するか、または代わりに使用することができる。これらのＩｎｔｅｇｅｒおよびＶｅｃｔｏｒ／ＳＩＭＤ命令タイプは、それぞれ、本明細書でより一般的に整数命令タイプおよびベクトル命令タイプと呼ばれるものの例である。
【００２７】
ベクトルＩＱ１５６は、命令復号器１１６から転送されたベクトル／ＳＩＭＤ命令を受け取る。対応するオフセット・ユニット１５８は、それぞれのスレッドについて別々の命令を含むように示されており、独立したスレッド・データが破損しないことを保証するために、適切なビットを挿入するように働くものである。
【００２８】
プロセッサ１０２のベクトル・ユニット１６０は、Ｎ個の別個の並列部分に分けられ、同様に分けられたベクトル・ファイル１６２を含む。ベクトル・ファイル１６２は、レジスタ・ファイル１１８とほぼ同じ目的で働くが、前者がＶｅｃｔｏｒ／ＳＩＭＤ命令タイプで動作することだけは例外である。
【００２９】
ベクトル・ユニット１６０には、例示的に、ベクトル命令待つ行列１５６、オフセット・ユニット１５８、ベクトル・ファイル１６２、およびそれらに関連付けられた算術要素およびストレージ要素が含まれる。
【００３０】
ベクトル・ユニット１６０のオペレーションは、以下の通りである。小数または整数いずれかのデータ・タイプとして符号化された所与のＶｅｃｔｏｒ／ＳＩＭＤデータ・ブロックは、ベクトル・ファイル１６２から読み取られ、構造上可視のレジスタＶＲＡＢＣに格納される。フローは、ここから、Ｖｅｃｔｏｒ／ＳＩＭＤデータの並列同時乗算を実行するＭＰＹブロックを通過して進行する。結果は、構造上可視のレジスタＰＡＢＣに配置される。その後ＡＤＤユニットは追加の算術演算を実行し、結果を累算器（ＡＣＣ）レジスタに配置することができる。データは、ここから、簡約ユニット１６４を通過して進み、結果は並列に合計されるが、直列意味論を生成する。直列意味論は、ベクトル・ユニット１６０内で並列に計算される４つの飽和値（ｓａｔｕｒａｔｉｎｇ  ｖａｌｕｅ）が、代わりに直列に計算された場合に生成されるものと、ほぼ同じ出力を提供する。こうした出力も、本明細書では直列出力と呼ばれる。結果的に簡約された合計は、ＳＡＴと示された飽和レジスタに配置される。
【００３１】
簡約ユニット１６４とベクトル・ユニット１６０の他の部分は、参照により本明細書に組み込まれたN. Yadav、M. Schulte、およびJ. Glossner、「Parallel Saturating Fractional Arithmetic Units」、Proceedings of the 9th Great Lakes Symposium on VLSI、172〜179頁、Ann Arbor, Michigan、 1999年３月４〜６日に記載されたものと同様の技法を使用して実施することが可能である。
【００３２】
簡約ユニット１６４は、例示的実施形態ではベクトル・ユニット１６０の一部として示されているが、別の要素として実施することも可能である。
【００３３】
プロセッサ１０２は、好ましくは、パイプライン化された命令処理を使用する。例えばプロセッサ１０２は、各スレッドがプロセッサ・クロック・サイクルあたり１つの命令を発行する、命令パイプラインを使用することができる。他の例として、命令パイプラインは、各スレッドがプロセッサ・クロック・サイクルあたり複数の命令を発行するように構成することができる。より具体的に言えば、十分な数のスレッドおよび適切なパイプライン化を使用して、プロセッサの各スレッドは、スレッドのいずれも機能停止させることなく、所与のプロセッサ・クロック・サイクルでロード命令およびベクトル乗算命令の両方を発行することができる。
【００３４】
有利なことに、図１に示されたようなプロセッサ１０２は、ＲＩＳＣベースの制御コード、ＤＳＰコード、Ｊａｖａ（登録商標）コード、およびネットワーク処理コードを含む、様々な異なるタイプの命令コードを効率的に実行することが可能である。したがってプロセッサ１０２は、３ＧＰＰ  ＷＣＤＭＡ移動ユニットなどの集中デバイスでの実施に特に適している。
【００３５】
図２は、プロセッサ１０２が実施可能な処理システム２００の一例を示す図である。処理システム２００は、たとえば前述の３ＧＰＰ  ＷＣＤＭＡ移動ユニットなどの集中デバイスの一要素とみなすことができる。
【００３６】
より具体的に言えば、本実施形態における処理システム２００は、ＷＣＤＭＡおよび移動体通信用グローバル・システム（ＧＳＭ）無線通信の両方をサポートすると同時に、様々な異なる媒体を介して通信される音声、データ、オーディオ、ビデオ、および他の情報を処理するように、構成される。
【００３７】
処理システム２００は、ＤＳＰファームウェア２０２およびマイクロプロセッサ２０４を含む。ＤＳＰファームウェア２０２は、２０２−１および２０２−２と示された第１および第２のインスタンスを含むものとして示されている。ＤＳＰファームウェアは、関連する内部メモリ２０６に結合される。マイクロプロセッサ２０８は、関連する内部メモリ２０８に結合される。メモリ２０６、２０８は、処理システム２００の内部にあることから「内部」と呼ばれ、どちらも共通メモリの一部として表すことができる。ＤＳＰファームウェア２０２およびマイクロプロセッサ２０４は、それぞれ、１つまたは複数の外部メモリと通信することも可能であるが、これらは図示されていない。
【００３８】
好ましくはＤＳＰファームウェア２０２およびマイクロプロセッサ２０４は、どちらも、図１に示されるように構成された単一のマルチスレッド・プロセッサを使用して実施される。他の構成、たとえば多重プロセッサに基づく構成も、使用可能である。
【００３９】
例示的には、ＤＳＰファームウェア２０２の第１のインスタンス２０２−１には、ＧＳＭチャネル等化器（ｅｑｕａｌｉｚｅｒ）、ＧＳＭチャネル符号器、ＧＳＭバースト・ビルダ、ＧＳＭチャネル復号器、ＧＳＭ音声復号器、ＧＳＭ音声符号器、ＧＳＭ送信機、暗号／解読、タイミング・コントロール、ＷＣＤＭＡ送信機、フィルタリング、ゲインおよび周波数コントロール、ＷＣＤＭＡ検索器、Ｒａｋｅ受信機、チャネル符号器、ＷＣＤＭＡ音声復号器、ＷＣＤＭＡ音声符号器、ならびにチャネル復号器を含む、複数の処理要素が含まれる。他の要素には、Ｗｉｎｄｏｗｓ（登録商標）Ｍｅｄｉａ  Ａｕｄｉｏ（ＷＭＡ）、Ｒｅａｌ  Ｍｅｄｉａ、Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＪＰＥＧ／ＪＰＥＧ２０００）、Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  Ｌａｙｅｒ−３  Ａｕｄｉｏ（ＭＰ３）、Ａｄｖａｎｃｅｄ  Ａｕｄｉｏ  Ｃｏｄｉｎｇ（ＡＡＣ）、およびＭｕｓｉｃａｌ  Ｉｎｓｔｒｕｍｅｎｔ  Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ（ＭＩＤＩ）が含まれる。こうした要素のオペレーションは当分野でよく理解されているため、本明細書ではこれ以上詳細に説明しない。
【００４０】
ＤＳＰファームウェア２０２の第２のインスタンス２０２−２も同様に構成するか、または、処理システム２００で他の通信機能をサポートするのに好適な他の処理要素を含むことができる。
【００４１】
マイクロプロセッサ２０４は、例示的には、図に示されるように、マン・マシン・インターフェース（ＭＭＩ）、Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  ４（ＭＰＥＧ４）、プロトコル・スタック、Ｓｈｏｒｔ  Ｍｅｓｓａｇｅ  Ｓｅｒｖｉｃｅ／Ｍｅｓｓａｇｉｎｇ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ（ＳＭＳ／ＭＭＳ）、およびリアルタイム・オペレーティング・システム（ＯＳ）要素を含む、いくつかの処理要素を備える。ここでも、こうした要素のオペレーションは、当分野でよく理解されている。
【００４２】
処理システム２００は、ＤＳＰファームウェア２０２、マイクロプロセッサ２０４、およびシステム要素２１２の間を結合する、通信バス２１０をさらに含む。同様に、通信バス２１４は、ＤＳＰファームウェア２０２とシステム要素２１６との間を結合する。
【００４３】
システム要素２１２には、デジタル・カメラ、ビデオ・カメラ、ユニバーサル・シリアル・バス（ＵＳＢ）、ユニバーサル非同期型受信送信機（ＵＡＲＴＳ）ＳＣＳＩパラレル・インターフェース（ＳＰＩ）、インテリジェント・インターフェース・コントローラ（Ｉ２Ｃ）、汎用Ｉ／Ｏ（ＧＰＩＯ）、セキュリティ識別モジュール／ユニバーサル加入者識別モジュール（ＳＩＭ／ＵＳＩＭ）、外部メモリＩ／Ｏ、キーパッド、ＬＣＤ、割込みコントローラ、および直接メモリ・アクセス（ＤＭＡ）コントローラが含まれる。
【００４４】
システム要素２１６には、受信機Ｉ／Ｏ、送信機Ｉ／Ｏ、およびブルートゥースＩ／Ｏが含まれる。
【００４５】
図に示される他のシステム要素には、テスト入力／出力（Ｉ／Ｏ）２１８、システム・クロックおよびコントロール２２０、およびパワー管理２２２が含まれる。
【００４６】
システム要素２１２、２１６、２１８、２２０、および２２２のオペレーションは当分野でよく理解されているため、本明細書ではこうした要素についてこれ以上詳細に説明しない。
【００４７】
前述のように、ＤＳＰファームウェア２０２およびマイクロプロセッサ２０４の両方に関連付けられた機能は、どちらも、マルチスレッド・プロセッサ１０２などの単一のマルチスレッド・プロセッサ上で実行することができる。したがって、マルチスレッド・プロセッサ１０２を使用して、システム要素２１２、２１６、２１８、２２０、および２２２に関連付けられたコード、ならびに、ＤＳＰファームウェア２０２およびマイクロプロセッサ２０４の処理要素に関連付けられたコードを、実行することができる。
【００４８】
処理システム２００内のマイクロプロセッサ２０４を使用して、高水準アプリケーションに関連付けられたコードを実行することができる。
【００４９】
ＤＳＰファームウェア２０２に関連付けられた処理要素は、ソフトウェア・コンパイルを使用して実施することができる。有利なことには、ソフトウェア・コンパイルによって、高水準プログラム言語の効率的な変換が可能になる。
【００５０】
本発明は、それぞれ図１および２に示された特定のマルチスレッド・プロセッサおよび処理システムの構成を必要としないことに留意されたい。前述のように、本発明は、多種多様な様々な他のマルチスレッド・プロセッサおよび処理システムの構成で実施することができる。
【００５１】
さらに、図１および２に示された特定の配置構成は、図が見やすいように簡略化されたものであり、明示的に図示されていない追加または代替の要素を含めることができることも理解されよう。
【００５２】
したがって、前述の本発明の実施形態は例示的なものとして示すことを意図したものであり、当業者であれば、添付の特許請求の範囲内にある多数の代替実施形態が明らかとなろう。
【図面の簡単な説明】
【００５３】
【図１】本発明に従ったマルチスレッド・プロセッサの例示的実施形態を示すブロック図である。
【図２】図１のマルチスレッド・プロセッサを組み込んだ処理システムの可能な一実施を示すブロック図である。
【図１】
2005514678.tif 000002
【図２】
2005514678.tif 000003
【国際調査報告】
2005514678.tif 000004