(57)【要約】本発明は概してプロセッサ（１２）を少なくとも一つのコプロセッサ（１４，１６）に接続する操作に関するものである。一つの実施形態はプロセッサに関するものであり、このプロセッサは一連のブロードキャスト特定子を有し、これらの特定子を使用することによりプロセッサ内の一つのレジスタに書き込まれているオペランドをコプロセッサ通信バスにブロードキャストする。従って各ブロードキャスト特定子はプロセッサの各汎用レジスタに対応するブロードキャスト指示子を含むことができる。別の実施形態では、ブロードキャスト領域（１６４，１６６，１６８，１７０）のコンセプトも使用し、この場合各ブロードキャスト領域は該当するブロードキャスト特定子を有することができ、さらに一つのブロードキャスト特定子が複数のブロードキャスト領域に対応する。別の構成として、一の実施形態においては、プロセッサはブロードキャスト特定子に関係なくブロードキャスト領域を使用することができ、この場合コプロセッサは現在のブロードキャスト領域に応じてその機能を変えることができる。一の実施形態においては、プロセッサは領域特定子（Ｈ＿ＲＥＧＩＯＮ）をコプロセッサ通信バス（３０）を通して供給して現在のブロードキャスト領域を通知することができる。
2005528669.tif 000002
【特許請求の範囲】
【請求項１】
複数のレジスタを含むレジスタファイル及び同レジスタファイルに対応するブロードキャスト特定子を有するプロセッサが、書込みトランザクションを前記レジスタファイルにコプロセッサ通信バスを介して選択的にブロードキャストする方法であって、
前記レジスタファイルに書き込むべきオペランドを受信する工程と、
前記レジスタファイルの複数のレジスタの内の一つを選択する工程と、
前記レジスタファイルに書き込むべき前記オペランドを前記レジスタファイルに供給する工程と、
前記ブロードキャスト特定子に基づいて、前記レジスタファイルに書き込むべきオペランドを前記コプロセッサ通信バスを介して選択的に供給する工程と、
からなる方法。
【請求項２】
前記ブロードキャスト特定子は一連のブロードキャスト指示子を含み、前記一連のブロードキャスト指示子内の各ブロードキャスト指示子は前記複数のレジスタの内の一つに対応して、
前記レジスタファイルに書き込まれるべき前記オペランドを前記コプロセッサ通信バスを介して選択的に供給する操作は、前記レジスタファイルの複数のレジスタの内の前記選択された一つに対応する前記ブロードキャスト指示子に基づく請求項１記載の方法。
【請求項３】
前記ブロードキャスト特定子はプロセッサ内の複数のブロードキャスト特定子の内の一つであり、前記複数のブロードキャスト特定子の各々は前記プロセッサの少なくとも一つのブロードキャスト領域に対応し、そして請求項４に記載の方法においてさらに、
現在の書込みトランザクションの現在のブロードキャスト領域に対応する領域指示子を前記コプロセッサ通信バスを介して選択的に供給する請求項１記載の方法。
【請求項４】
第２プロセッサにコプロセッサ通信バスを介して接続される第１プロセッサが、前記第１プロセッサの実行モードを選択的に変える方法であって、
前記第２プロセッサの現在の実行領域を示す領域指示子を前記第２プロセッサから前記コプロセッサ通信バスを介して受信する工程と、
前記第１プロセッサの前記実行モードを前記領域指示子に応じて選択的に変える工程と、
からなる方法。
【請求項５】
第２プロセッサにコプロセッサ通信バスを介して接続される第１プロセッサが、同第１プロセッサの実行モードを選択的に変える方法であって、
前記第２プロセッサに含まれ、オペランドが書き込まれているレジスタファイルの中の選択されたレジスタを示すレジスタ特定子を前記第２プロセッサから前記コプロセッサ通信バスを介して受信する工程と、
前記第１プロセッサの実行モードを前記レジスタ特定子に応じて選択的に変える工程と、
からなる方法。
【請求項６】
複数のレジスタを含むレジスタファイルを有するプロセッサが、書込みトランザクションを前記レジスタファイルにコプロセッサ通信バスを介して選択的にブロードキャストする方法であって、
前記レジスタファイルに書き込むべきオペランドを受信する工程と、
前記レジスタファイルの前記複数のレジスタの内の一つを選択する工程と、
前記レジスタファイルに書き込むべきオペランドを前記レジスタファイルに供給する工程と、
前記プロセッサの現在の実行領域に基づいて、前記レジスタファイルに書き込まれるべきオペランドを前記コプロセッサ通信バスを介して選択的に供給する工程と、
からなる方法。
【請求項７】
複数のレジスタと、
同複数のレジスタの内の一つに対して書込み動作を実行する回路と、
前記書込み動作実行用のオペランドを前記複数のレジスタの内の一つに供給する導電体群と、
一連のブロードキャスト特定子と、
前記複数のレジスタの内の一つと前記ブロードキャスト特定子の内の選択された一つとを比較し、ブロードキャストイネーブル信号を供給する比較回路と、
同比較回路に接続されて、コプロセッサ通信バスと通信するポートであって、前記ブロードキャストイネーブル信号に応答して前記オペランドを選択的に供給するための、少なくとも一つのコプロセッサ通信バス信号を送信するポート、
を備えるプロセッサ。
【請求項８】
前記一連のブロードキャスト特定子内の各ブロードキャスト特定子は、一連のブロードキャスト指示子を含み、各ブロードキャスト指示子は前記複数のレジスタの内の少なくとも一つに対応する請求項７に記載のプロセッサ。
【請求項９】
さらに、アドレス位置を示すプログラム・カウンタユニットと、
前記プログラム・カウンタユニットに接続され、前記プログラム・カウンタユニットが示す前記アドレス位置が一連のブロードキャスト領域の内の一つに入る時を通知するブロードキャスト領域制御ユニットと、
を備える請求項７記載のプロセッサ。
【請求項１０】
複数のレジスタと、
同複数のレジスタの内の一つに対して書込み動作を実行する回路と、
前記書込み動作実行用のオペランドを前記複数のレジスタの内の一つに供給する導電体群と、
アドレス位置を示すプログラム・カウンタユニットと、
前記プログラム・カウンタユニットに接続され、同プログラム・カウンタユニットが示す前記アドレス位置が一連の実行領域の内の一つに入る時を通知する実行領域制御ユニットと、
前記比較回路に接続されて、コプロセッサ通信バスと通信するポートとであって、少なくとも一つのコプロセッサ通信バス信号からなり、この信号により、前記プログラム・カウンタユニットが示す前記アドレス位置が前記一連の実行領域の内の一つに入るときに、前記一連の実行領域の内の現在の実効領域を通知するポートと、
からなるプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は概してプロセッサ及び少なくとも一つのコプロセッサを有するデータ処理システムに関し、特に、プロセッサをコプロセッサに接続する方法及び装置に関する。
【背景技術】
【０００２】
ベースラインアーキテクチャ及びプロセッサ機能を専用及び特定化されたハードウェア機能素子によって拡張する能力は、拡大縮小可能で伸縮自在のアーキテクチャの重要な要素である。
【０００３】
ベースラインアーキテクチャ及びプロセッサ機能を拡張する好適な方法の一つは、コプロセッサを使用することにより行なわれる。これらのコプロセッサは専用で、かつ普通は単一目的のプロセッサであり、プロセッサの指示により動作する。コプロセッサの従来の使用法の一つは、数値演算コプロセッサとしてのものであり、このような機能を直接サポートしないアーキテクチャに浮動小数点演算機能を選択的に提供していた。このような数値演算コプロセッサの例としては、インテル製８０８７及び８０２８７がある。コプロセッサの他の可能性のある使用法またはタイプとして、乗加算器、変調器／復調器（モデム）、デジタルシグナルプロセッサ（ＤＳＰ）、ｖｉｔｔｅｒｂｉ計算器、クリプトグラフィックプロセッサ、イメージプロセッサ、及びベクトルプロセッサが挙げられる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
コプロセッサを実現する一つの方法はコプロセッサ・インタフェイスを使用することであり、このインタフェイスをコプロセッサに十分密着して接続し、インタフェイスを十分に高速で使用して、どのように単純な機能でも起動させることにより利点が生じ、しかもインタフェイスを抽出してプロセッサ・アーキテクチャが所定コプロセッサの出来る限り多くの細部から分離されるようにする。例えば、このようにインタフェイスが密着する形で接続されるコプロセッサは、オペランド及び制御ワードをメインプロセッサの専用インタフェイスを介して受信することができる。多くの場合、メインプロセッサは一つの値を、メインプロセッサがそれをメインプロセッサが行なう一連の動作に基づいて生成した後に、コプロセッサに渡す。最後の変更を施した後、この値はコプロセッサに送信される。しかしながら、この最後の転送によりオーバーヘッドが付いてしまい、これが幾つかのコプロセッサ動作にとって許容できないものとなる。
【課題を解決するための手段】
【０００５】
以下の記載においては、特定のワード長または特定のバイト長などの多くの特定の詳細を示して本発明の全容の理解に供する。しかしながらこの技術分野の当業者であれば、本発明がこのような特定の詳細によらずとも実施できるものであることは容易に理解できるものと考えられる。別の例においては、回路をブロック図の形で示して本発明が不必要な細部で不明瞭になることを防止している。ほとんどの場合、タイミングの考察などに関する詳細は、このような詳細が本発明の完全な理解には必要ではなく、しかも関連分野の当業者の技術の範囲内に含まれるので省略する。
【０００６】
「ｂｕｓ」という用語を使用して複数の信号または導電体を指し、これらの信号または導電体を使用してデータ、アドレス、制御、またはステータス等の一つ以上の種々のタイプの情報を転送する。「ａｓｓｅｒｔ」及び「ｎｅｇａｔｅ」という用語は、信号、ステータスビット、または同様な要素をそれぞれ論理的に真の状態または論理的に偽の状態にする動作を指すときに使用する。論理的に真の状態が論理レベル「１」である場合、論理
的に偽の状態は論理レベル「０」となる。そして論理的に真の状態が論理レベル「０」である場合、論理的に偽の状態は論理レベル「１」となる。信号名に続く符号「＊」は、その信号が負論理信号である（論理的に真の状態が論理レベル「０」の場合を意味する）ことを示す。
【発明を実施するための最良の形態】
【０００７】
図１はデータ処理システム１０の一つの実施形態を示すブロック図であり、このシステムはプロセッサ１２、コプロセッサ１４、コプロセッサ１６、メモリ１８、他のモジュール２０及び外部バスインタフェイス２２を備え、これらは全てバス２８を通して双方向通信可能に接続される。本発明の別の実施形態では、一つのみのコプロセッサ１４、２つのコプロセッサ１４及び１６、またはさらに多くのコプロセッサ（図示せず）を有することができる。外部バスインタフェイス２２は外部バス２６に双方向通信可能に集積回路端子３５を通して接続される。メモリ２４は外部バス２６に双方向通信可能に接続される。プロセッサ１２は任意ではあるが、データ処理システム１０の外部と集積回路端子３１を通して接続することができる。コプロセッサ１４は任意ではあるが、データ処理システム１０の外部と集積回路端子３２を通して接続することができる。メモリ１８は任意ではあるが、データ処理システム１０の外部と集積回路端子３３を通して接続することができる。他のモジュール２０は任意ではあるが、データ処理システム１０の外部と集積回路端子３４を通して接続することができる。プロセッサ１２はコプロセッサ１４及びコプロセッサ１６の両方とコプロセッサ・インタフェイス３０を通して双方向通信可能に接続される。図１には示されないが、別の実施形態はメモリ１８と同様なメモリをさらにバス２８を通して接続することもできる。
【０００８】
図２は図１のプロセッサ１２の一部を示すブロック図である。一つの実施形態では、プロセッサ１２は制御回路４０、命令デコード回路４２、命令パイプ４４、レジスタ４６、論理演算ユニット（Ａｒｉｔｈｍｅｔｉｃ  Ｌｏｇｉｃ  Ｕｎｉｔ：ＡＬＵ）４８、ラッチマルチプレクサ（ＭＵＸ）５０、ラッチマルチプレクサ（ＭＵＸ）５２、マルチプレクサ（ＭＵＸ）５４、ブロードキャスト領域制御ユニット１２０、及びプログラム・カウンタユニット１３０を含む。本発明の一つの実施形態においては、コプロセッサ・インタフェイス３０は信号６０〜７２及び１２８を含む。クロック信号６０は制御回路４０が生成する。コプロセッサ動作信号６１は制御回路４０が生成し、そしてコプロセッサ１４及び１６に供給される。
【０００９】
スーパーバイザモード信号６２は制御回路４０が生成し、そしてコプロセッサ１４及び１６に供給される。デコード信号６３は制御回路４０が生成し、そしてコプロセッサ１４及び１６に供給される。コプロセッサビジー信号６４は制御回路４０がコプロセッサ１４又は１６から受信する。実行信号（ｅｘｅｃｕｔｅ  ｓｉｇｎａｌ）６５は制御回路４０が生成し、そしてコプロセッサ１４及び１６に供給される。例外信号（ｅｘｃｅｐｔｉｏｎ  ｓｉｇｎａｌ）６６は制御回路４０がコプロセッサ１４又はコプロセッサ１６から受信する。レジスタライト信号（ＲＥＧＩＳＴＥＲ＊）６７は制御回路４０が生成し、そしてコプロセッサ１４及び１６に供給される。レジスタ信号（ＲＥＧ［４：０］）６８は制御回路４０が生成し、そしてコプロセッサ１４及び１６に供給される。エラー信号（Ｈ＿ＥＲＲ＊）６９は制御回路４０が生成し、そしてコプロセッサ１４及び１６に供給される。データストローブ信号（Ｈ＿ＤＳ＊）７０は制御回路４０が生成し、そしてコプロセッサ１４及び１６に供給される。データアクノリッジ信号（Ｈ＿ＤＡ＊）７１は制御回路４０がコプロセッサ１４又はコプロセッサ１６から受信する。領域信号（Ｈ＿ＲＥＧＩＯＮ［Ｎ：１］）はブロードキャスト領域制御ユニット２０が生成し、そして制御回路４０及びコプロセッサ１４及び１６に供給される。コプロセッサ・インタフェイス３０の一部とも考えられるハードウェアデータポート信号（ＨＤＰ［３１：０］）７２はコプロセッサ１４及び１６とプロセッサ１２内の内部回路との間で双方向に移動する。
【００１０】
本発明の一つの実施形態においては、複数の信号がバス２８に、またはバス２８から供給されてメモリ１８及び／又はメモリ２４にデータをロードまたは記憶する。一つの実施形態においては、これらの信号は転送リクエスト信号（ＴＲＥＱ＊）７３を含み、この信号は制御回路４０が生成してバス２８に供給される。転送エラーアクノリッジ信号（ＴＥＡ＊）７４は制御回路４０にバス２８を通して供給される。転送アクノリッジ信号（ＴＡ＊）７５は制御回路４０にバス２８を通して供給される。命令はバス２８から命令パイプ４４に導電体７６を通して供給される。データはＭＵＸ５４に導電体７６を通して供給される。駆動データ信号７９によりトライステートバッファ９５はラッチＭＵＸ５２からのデータを導電体８８及び７６を通して供給することができる。アドレス選択信号７８によりラッチＭＵＸ５０はアドレスをバス２８に導電体７７を通して供給することができる。ＭＵＸ５４への別の入力はＨＤＰ信号（ＨＤＰ［３１：０］）７２により行なわれる。ＭＵＸ５４への別の入力はＡＬＵ結果導電体（ＡＬＵ  ｒｅｓｕｌｔ  ｃｏｎｄｕｃｔｏｒｓ）８６を通して行なわれる。ＭＵＸ５４の出力、すなわち結果信号（ｒｅｓｕｌｔ  ｓｉｇｎａｌｓ）８３はレジスタ４６、及びトライステートバッファ９６の入力に供給される。ＥＮＡＢＬＥ＿ＢＲＯＡＤＣＡＳＴ信号８２によりトライステートバッファ９６はＨＤＰ［３１：０］７２を結果信号８３のレベルに駆動することができる。トライステートバッファ９６の出力はラッチＭＵＸ５２の入力にも接続される。結果信号８３はラッチＭＵＸ５０への入力及び制御回路４０への入力として供給される。結果信号８３はレジスタ４６にＭＵＸ５４を通して供給される。結果選択信号（ＲＥＳＵＬＴ＿ＳＥＬＥＣＴ）８１はＭＵＸ５４のどの入力を駆動して結果導電体８３に出力すべきかを選択する。ソース選択信号（ＳＯＵＲＣＥ＿ＳＥＬＥＣＴ）８０はラッチＭＵＸ５２に供給されてどの信号を駆動して導電体８８を通してライステートバッファ９５に出力すべきかを選択する。制御回路４０は制御情報を供給し、そしてステータス情報をレジスタ４６から導電体９１を通して受信する。制御回路４０は制御信号を供給し、そしてステータス信号を論理演算ユニット４８から導電体９２を通して受信する。制御回路４０は制御信号及び情報信号を供給し、そして制御信号及び情報信号をブロードキャスト領域制御ユニット１２０からＲＥＧＩＯＮ  ＳＰＥＣＩＦＩＥＲＳ１２２を通して受信する。制御回路は制御信号を供給し、そしてステータス信号をプログラム・カウンタユニット１３０から導電体１２４を通して受信する。制御回路４０は制御信号を供給し、そしてステータス信号を命令パイプ４４及び命令デコード回路４２から導電体９３を通して受信する。命令パイプ４４は命令を供給できるように命令デコード回路４２に導電体８９を通して接続される。命令デコード回路４２はデコードされた命令情報を制御回路４０及びプログラム・カウンタユニット１３０に導電体９０を通して供給する。レジスタ４６はソースオペランドを論理演算ユニット４８に導電体８４を通して供給する。レジスタ４６はメモリ１８またはメモリ２４に記憶されるデータを���電体８４、ラッチＭＵＸ５２、トライステートバッファ９５及び導電体７６を通して供給する。レジスタ４６はアドレス情報をメモリ１８またはメモリ２４に導電体８４、ラッチＭＵＸ５０及びアドレス導電体７７を通して供給する。レジスタ４６は第２ソースオペランドを論理演算ユニット４８に導電体８５を通して供給する。プログラム・カウンタユニット１３０はプログラムカウンタをメモリ１８またはメモリ２４に導電体１２６、ラッチＭＵＸ５０及びアドレス導電体７７を通して供給する。プログラムカウンタ１３０はまた、プログラムカウンタ情報をブロードキャスト領域制御ユニット１２０に供給する。プログラムカウンタ１３０は出力アドレスをラッチＭＵＸ５０から入力として受信し、次のメモリアドレスを生成する。
【００１１】
ここで本発明の別の実施形態はレジスタ４６にどのような数のレジスタも含むことができることに注目されたい。また本発明の別の実施形態は情報を伝送するために、双方向バスに代えて一対の単一方向バスを、トライステートバッファに代えてマルチプレクサロジックを使用することができる。例えば、ＨＤＰ［３１：０］または他の双方向バスを別々の入力部分及び出力部分として実現することができる。
【００１２】
図３はコプロセッサ１４の一部の一の実施形態を示すブロック図である。一の実施形態においては、コプロセッサ１４は制御回路１００、演算回路１０２及び任意選択の記憶回路１０４を含む。制御回路１００はプロセッサ１２に、信号６０〜７２及び１２８を含むコプロセッサ・インタフェイス３０を通して双方向通信可能に接続される。本発明の一の実施形態においては、制御回路１００は動作信号６１及びデコード信号６３をプロセッサ１２から受信するデコード回路１０６を含む。制御回路１００は制御情報を供給し、そしてステータス情報を任意選択の記憶回路１０４から導電体１０８を通して受信する。制御回路１００は制御情報を供給し、そしてステータス情報を演算回路１０２から導電体１０９を通して受信する。演算回路１０２及び任意選択の記憶回路１０４は双方向通信可能に導電体１１０を通して接続される。一つ以上の信号１１０はバス２８または集積回路端子３２に供給される、或いはバス２８または集積回路端子３２から供給される。制御回路１００は情報を導電体１１２を通して、バス２８または集積回路端子３２から受信する、或いはバス２８または集積回路端子３２に供給する。信号７２は演算回路１０２及び任意選択の記憶回路１０４に双方向に接続される。さらに信号７２は、バス２８または集積回路端子３２に双方向に接続することができる。本発明の別の実施形態においては任意選択の記憶回路１０４を使用しないことができる。任意選択の記憶回路１０４を使用する本発明の実施形態においては、この記憶回路は、レジスタ、いずれかのタイプのメモリ、ラッチまたはプログラマブルロジックアレイなどを含むいずれかのタイプの記憶回路を使用して実現することができる。本発明の別の実施形態においては、演算回路１０２はどのタイプの論理機能または演算機能も実行することができる。
【００１３】
このシステムは、特定用途関連の動作のために最適化された外部コプロセッサ１４（またはハードウェアアクセラレータ）によるタスクの処理効率化をサポートする。これらの外部コプロセッサ１４，１６は、頻度カウントを行なうコプロセッサ１４と同じように簡単にする、或いはＤＳＰアクセラレーションプロセッサ１４のようにもっと複雑な機能を行なえるコプロセッサ１４とする、または高速積和演算機能を有するコプロセッサ１６とすることができる。
【００１４】
データは、プロセッサ１２とコプロセッサ１４との間で、特定の実施形態に適する幾つかのメカニズムの内の一つ以上のメカニズムにより転送される。これらのメカニズムはコプロセッサ１４への転送及びコプロセッサ１４からの転送に分けることができる。
【００１５】
データをコプロセッサ１４に転送するメカニズムの内の一つは命令プリミティブを含まないレジスタブロードキャスト（Ｒｅｇｉｓｔｅｒ  Ｂｒｏａｄｃａｓｔ）メカニズムであるが、通常のプロセッサ１２動作に伴う副産物である。このメカニズムは、コプロセッサ１４が一つ以上のプロセッサ１２レジスタの更新をモニターすることができるように、プロセッサ１２の汎用レジスタ（Ｇｅｎｅｒａｌ  Ｐｕｒｐｏｓｅ  Ｒｅｇｉｓｔｅｒｓ：「ＧＰＲ」）４６の更新をインタフェイスを介して反映させる操作を含む。この操作は、コプロセッサ１４が内部レジスタまたは内部機能を実行するためにＧＰＲ４６を「充てる」場合に適切なものとなる。この場合、プロセッサ１２からコプロセッサ１４にパラメータを明示的に渡す必要が無くなる。
【００１６】
データをコプロセッサ１４に転送する別の方法はデータ駆動によるコプロセッシングであり、このコプロセッシングは一つ以上のデータ項目のコプロセッサへの転送を含む。これらの項目を転送することにより、明示的なコプロセッサ命令または指示が無くてもコプロセッシング動作を起動することができる。コプロセッサに付随する通信オーバーヘッドを減らすと、性能を大幅に改善することができる。
【００１７】
命令プリミティブをベースプロセッサ１２に設定して外部コプロセッサ１４，１６とプ
ロセッサ１２との間のオペランド及び命令の明示的な転送も行なう。ハンドシェークメカニズムを設定して命令及びデータ転送の速度に対する制御を可能にする。
【００１８】
ここで、コプロセッサ１４機能が実施形態に特定のユニットとなるように構成しているので、同じ命令マッピングが在るとしても所定のユニットの具体的な機能を異なる実施形態間で自由に変えることができる。
【００１９】
図４はレジスタブロードキャスト動作を示すタイミング図である。コプロセッサ１４または外部モニターに渡されるパラメータの性能オーバーヘッドを避けるために、レジスタブロードキャストメカニズム（レジスタスヌーピングメカニズムとも呼ぶことができる）を設定する。これによりコプロセッサ１４はプロセッサ１２の汎用レジスタ４６の内の一つ以上のシャドウコピーを実行することができる。この機能は、プロセッサＧＰＲ４６の内の一つに書き込まれている値と、どのレジスタ４６が各ＧＰＲ更新により更新されているのかを示す通知を転送することにより実現する。（ここで、下線の付されたレジスタ、例えばＲＡ及びＲＣは該当する命令の送信先レジスタ、例えばＡＤＤＣ及びＯＲをそれぞれ指すことに注目されたい）。ストローブ信号ＲＥＧＷＲ＊６７をアサートして各レジスタを更新する。この値を３２ビット双方向データパスＨＤＰ［３１：０］７２を通して転送し、そして５ビットレジスタ番号バスは、（ＲＥＧ［４：０］）６８に更新されている実際のプロセッサレジスタ４６にポインタを供給する。このレジスタ番号は正常なファイルまたは代わりのファイルのレジスタ４６を指すことができる。好適な実施形態においては、代わりのファイルレジスタはＲＥＧ［４］＝＝１で示され、そして正常なファイルレジスタはＲＥＧ［４］＝＝０で示される。しかしながら、本発明はレジスタセットの実際の区分に全く依存しない。
【００２０】
コプロセッサ１４は送信先レジスタ４６番号の通知と共にこの値を内部にラッチして、後のレジスタ情報の明示的な移動を避ける。この機能はデバッグコプロセッサ１４も使用し、レジスタファイル４６またはそのサブセットの状態を追跡する。図４はブロードキャスト機能の例を示している。
【００２１】
図４に関連して示されるブロードキャスト機能は、レジスタファイルに対する書込みトランザクション毎にブロードキャストをＨＤＰ［３１：０］７２を通して行なわれる。従ってこの機能によりコプロセッサ１４はプロセッサ１２のレジスタファイル（すなわちＧＰＲ４６）のシャドウコピーを保持し、そして幾つかのパラメータをプロセッサ１２からコプロセッサ１４に明示的に渡す必要を無くすことができる。しかしながら、プロセッサ１２及びコプロセッサ１４のブロードキャスト機能をさらに制御する機能に対する要求がある。従って図５〜９には、プロセッサ１２に選択的ブロードキャスト機能を持たせ、そしてコプロセッサ１４に選択的更新ポリシーを持たせる本発明の一の実施形態が示されている。
【００２２】
図５は、本発明の一の実施形態に従って選択的ブロードキャスト機能の実行を可能にするブロードキャストマスクレジスタを示している。従って、ＧＰＲ４６の結果更新をすべてブロードキャストするのに代えて、ブロードキャストマスクレジスタを使用してＧＰＲ４６のサブセットを選択し、このサブセットに対する結果がコプロセッサ１４にブロードキャストされる。例えばＧＰＲ４６の各レジスタに対して、単一ビットをブロードキャスト表示として使用してその特定のレジスタを更新することにより更新されたレジスタコンテンツがコプロセッサ１４に（ＨＤＰ［３１：０］７２を通して）転送されるかどうかを判断する。図５はブロードキャストマスクレジスタの一例を示しており、この場合ＧＰＲ４６は１６個のレジスタを有すると仮定している。この例においては、０は特定ビットに関連付けられるレジスタがその結果をブロードキャストできないことを示し、そして１は特定ビットに関連付けられるレジスタがその結果をブロードキャストできることを示す。
従って図５の例の場合、ビット位置８及び９（一つの実施形態においては、ＧＰＲ４６内のレジスタＲ８及びレジスタＲ９を指す）に対応するレジスタの更新のみがコプロセッサ１４にブロードキャストされる。ＧＰＲ４６が８個のレジスタしか含まない場合、ブロードキャストマスクレジスタは８ビット長で済む。従ってブロードキャストマスクレジスタは、ＧＰＲ４６に対応する一連のブロードキャスト表示を有するブロードキャスト指定子であると考えることができる。
【００２３】
一つの実施形態においては、ブロードキャストマスクレジスタ（例えばブロードキャスト特定子）はユーザにより書込み可能であり（ソフトウェアによりアクセス可能な）、従ってシステム状態が変化する際に変更して、新規の要求が生まれるときの種々のコプロセッシングの経時的なアクティビティを明らかにすることができる。別の実施形態においては、ブロードキャストマスクレジスタまたはブロードキャスト特定子は、ブロードキャストマスクレジスタを更新するために構成される特定の命令内の即値フィールドによりアクセスすることができる。別の実施形態では、異なるブロードキャスト特定子及び各レジスタの該当するブロードキャスト指示子を提供する異なる方法も使用し、この場合各レジスタはその結果を、図５に示すブロードキャストマスクレジスタを使用せずにプロセッサ１２によりブロードキャストする必要がある。例えば、レジスタマスクフィールドをＧＰＲ４６に対応するメモリ１８または２４に記憶する。
【００２４】
ブロードキャストマスクレジスタ（または他のブロードキャスト特定子）を使用することにより、ＨＤＰ［３１：０］７２に与える負荷及び全体の電力消費を減らすことができる。例えば、或る値をコプロセッサ１４によりスヌーピングする必要が無い場合、この値を記憶するためにＧＰＲ４６内の一のレジスタを割り当て、そしてブロードキャストマスクを使用してこのレジスタに関するブロードキャストが行なわれないようにすることにより、この値がプロセッサ１２によりブロードキャストされないようにすることができる。従って、計算値のサブセットのみをプロセッサ１２からコプロセッサ１４にブロードキャストする必要がある場合、ＧＰＲ４６のサブセットをこれらの値を保持するために確保し、続いてこれらの確保したレジスタの内の一つを更新するだけで計算値のブロードキャストを行なうことができる。結果を生成する命令の数が大きいので、全ての書込み結果をブロードキャストすると不必要にＨＤＰ［３１：０］７２に負荷を掛け、そしてより多くの電力を消費する。このようにして、レジスタ更新のサブセットのみがコプロセッサ１４にブロードキャストされるようにブロードキャストをマスクすることにより、プロセッサ１２内の電力消費を減らし、そしてＨＤＰ［３１：０］７２に掛かる余分の負荷を減らすことができる。
【００２５】
ブロードキャスト機能をさらに制御するために、ブロードキャスト領域を使用することができる。図６はサンプルプログラム空間１７２を示し、この空間は４つのブロードキャスト領域、すなわちブロードキャスト領域１  １６４、ブロードキャスト領域２  １６６、ブロードキャスト領域３  １６８、及びブロードキャスト領域４  １７０に分割される。プログラム空間１７２はプロセッサ１２内のどのようなプログラム空間であっても良く、そしてメモリ１８または２４のようなプログラムメモリのいずれにも配置することができる。ブロードキャスト領域とは命令アドレス範囲（すなわちプログラム領域または実行領域）を指し、この範囲内でブロードキャストを制御する。図６において、各ブロードキャスト領域は該当するブロードキャストマスクを有する。例えば、ブロードキャスト領域１  １６４はブロードキャストマスク１  １５８に対応し、ブロードキャスト領域２  １６６及びブロードキャスト領域４  １７０はともにブロードキャストマスク２  １６０に対応し、そしてブロードキャスト領域３  １６８はブロードキャストマスク３  １６２に対応する。従って、ブロードキャストマスクは一つ以上のブロードキャスト領域に対応することができる。
【００２６】
ブロードキャストマスクのブロードキャスト領域に対する割当ては複数の方法で制御することができる。この割当て方法は固定する、またはソフトウェアで制御してユーザによる書込みを可能とする。書込みは、ブロードキャストマスクを各実行ブロードキャスト領域とペアにする制御レジスタを通して行なわれるか、または他の記憶手段を通して行なわれる。システムを実行している間、ブロードキャストマスクのブロードキャスト領域に対する関連付けはユーザプログラム制御により、またはシステムイベントをハードウェアでモニターすることにより、或いはデータ処理システムに適した他のいずれかの制御手段を用いることにより変更することができる。
【００２７】
コードをブロードキャスト領域内で実行しているときに、該当するブロードキャストマスクを使用して更新結果の選択的ブロードキャストを行なう。例えば、ブロードキャスト領域１  １６４内では、ブロードキャストマスク１  １５８で示されるレジスタの更新のみがコプロセッサ１４にブロードキャストされる。ブロードキャスト領域２  １６６またはブロードキャスト領域４  １７０内では、ブロードキャストマスク２  １６０で示されるレジスタの更新のみがコプロセッサ１４にブロードキャストされる。ブロードキャスト領域３  １６８内では、ブロードキャストマスク３  １６２で示されるレジスタの更新のみがコプロセッサ１４にブロードキャストされる。
【００２８】
このようなブロードキャスト領域を使用することによりコプロセッサ１４の動作を簡単にすることもできる。例えば、コプロセッサ１４がもはやプロセッサ１２から明示的な命令の形での通知を要求せず、その代わり、プロセッサ１２は厳密な駆動項目しかコプロセッサ１４に渡さないように設計されているのでデータ駆動方式で動作できる場合がある。よって、ブロードキャスト領域及びブロードキャストマスクを使用することにより、プロセッサ１２はそのブロードキャスト機能を制御し、従って、それがコプロセッサ１４に送信する駆動項目を制御することができる。データ駆動方式で動作することにより、個々の制御動作または命令をコプロセッサ１４または１６に渡すことにより生じるオーバーヘッドを減らす、または無くすことができるので、システム性能を改善し、そしてシステム電力消費を減らすことができる。
【００２９】
別の構成として、図６のブロードキャスト領域１〜４をブロードキャストマスク１〜３から独立させて使用することもできる。例えば、ブロードキャスト領域を、ブロードキャストが行なわれる、または行なわれない領域として定義することができる。すなわち、ブロードキャスト領域１  １６４内のコードに対して、ブロードキャストはＧＰＲ４６を更新するときには必ず行なわれる。これに対してブロードキャスト領域２を、この範囲内のコードに対してブロードキャストが全く行なわれないように定義することができる。従ってブロードキャスト機能は、ブロードキャストマスクまたはブロードキャストマスクとブロードキャスト領域の組み合わせのみに基づいて、というよりもブロードキャスト領域にのみ基づいて選択的に実行することもできる。
【００３０】
図７は選択的レジスタブロードキャスト動作の一例のタイミング図を示している。命令ＡＤＤ  Ｒ３，Ｒ２及びＯＲ  Ｒ４，Ｒ５が図６のブロードキャスト領域１  １６４内に在り、従ってブロードキャストマスク１  １５８に対応し、この例は図７にも示される。命令ＡＤＤ  Ｒ６，Ｒ７，ＳＵＢ  Ｒ３，  Ｒ４、及びＭＵＬ  Ｒ９，  Ｒ１０が図６のブロードキャスト領域２  １６６内に在り、従ってブロードキャストマスク２  １６０に対応し、この例は図７にも示される。図７のタイミング図は、命令が命令パイプライン４４の実行段階にあるときを示している。各命令内の下線の付されたレジスタは送信先レジスタ（結果が書き込まれる先のレジスタ）を示す。
【００３１】
領域１  １６４内では、ＡＤＤ  Ｒ３，Ｒ２の結果がレジスタＲ３（この場合、Ｒ３＝Ｒ３＋Ｒ２）に書き込まれる。ブロードキャストマスク１  １５８はビット位置３に「１
」が書き込まれているので、レジスタＲ３への全ての書込みはプロセッサ１２によってＨＤＰ［３１：０］７２を通してブロードキャストされることになる。従って、図７のタイミング図の最初のクロックサイクル内で、ＡＤＤ命令の結果（この結果はプロセッサ１２内のＲ３に書き込まれている）はＨＤＰ［３１：０］７２を通してコプロセッサ１４にブロードキャストされる。この結果がブロードキャストされているので、Ｒ３に対応するレジスタ番号もコプロセッサ１４にＲＥＧ［４：０］６８により供給される。ＲＥＧＷＲ＊６７をアサートすることによりコプロセッサ１４に着信結果をそのレジスタの内の一つに書き込ませることができ、そしてＥＮＡＢＬＥ＿ＢＲＯＡＤＣＡＳＴ８２をアサートして図２のトライステートバッファ９６がこの結果を駆動してＨＤＰ［３１：０］７２に出力するようにする。また、領域指示子はＨ＿ＲＥＧＩＯＮ［Ｎ：１］１２８によりコプロセッサ１４に供給される。従って、コードを領域１で実行している間、Ｈ＿ＲＥＧＩＯＮ［Ｎ：１］１２８（一のＮビット値に対応する）は「１」を示す。
【００３２】
ＯＲ  Ｒ４，Ｒ５命令がＡＤＤ  Ｒ３，Ｒ２命令に続き、そしてブロードキャスト領域１  １６４内に依然として留まるが、その送信先レジスタはＲ４である。ブロードキャストマスク１  １５８に従って、Ｒ４に書き込まれる結果はブロードキャストされないことになるので、ＯＲ命令の結果はコプロセッサ１４に供給されず、レジスタ番号はＲＥＧ［４：０］６８を通して要求されず、そしてＲＥＧＷＲ＊及びＥＮＡＢＬＥ＿ＢＲＯＡＤＣＡＳＴの両方をデアサートする。
【００３３】
次の３つの命令、ＡＮＤ  Ｒ６，Ｒ７，ＳＵＢ  Ｒ３，Ｒ４、及びＭＵＬ  Ｒ９，Ｒ１０は全てブロードキャスト領域２  １６６内に在る。Ｒ６，Ｒ３及びＲ９には下線が付され、これらがそれらの該当する命令の送信先レジスタであることを示している。一旦ブロードキャスト領域２  １６６に入ってしまうと、Ｈ＿ＲＥＧＩＯＮ［Ｎ：１］１２８は状態を変えて「２」を示すようになる。ブロードキャスト領域２  １６６は該当するブロードキャストマスク２  １６０を有し、このマスクによりレジスタＲ９及びＲ６への書込みのみがブロードキャストされる必要があることが示される。従って図７のタイミング図からわかるように、ＡＮＤ命令及びＭＵＬ命令の結果のみがブロードキャスト領域２  １６６に含まれつつＨＤＰ［３１：０］７２を通してコプロセッサ１４にブロードキャストされる。各々のレジスタ番号もＲＥＧ［４：０］６８を通して送信され、そしてＲＥＧＷＲ＊及びＥＮＡＢＬＥ＿ＢＲＯＡＤＣＡＳＴ８２の両方がアサートされる。しかしながら、ブロードキャストマスク２  １６０はブロードキャスト領域２  １６６内ではＲ３への書込みがブロードキャストできないことを示しているので、ＳＵＢ命令の結果はブロードキャストされない。
【００３４】
図８は図２の制御回路４０の一部の一の実施形態をブロック図の形で示している。制御回路４０の一部はブロードキャストマスク１レジスタ１３４、ブロードキャストマスク２レジスタ１３６、及びブロードキャストマスクＭレジスタ１３８、マスク選択回路１３２、及び送信先比較ユニット１４２を含む。制御回路４０はＭ個のブロードキャストマスクレジスタを含む。（ここで、３つのレジスタの例が示されているが、制御回路４０は１つのみの、または２つのブロードキャストマスクレジスタを含むことができることにも留意されたい）。制御回路４０はブロードキャストマスク１レジスタ１３４、ブロードキャストマスク２レジスタ１３６、及びブロードキャストマスクＭレジスタ１３８に接続されるマスク選択回路１３２も含む。マスク選択回路はまた、Ｈ＿ＲＥＧＩＯＮ［Ｎ：１］を受信し、そして現在のブロードキャストマスク１４０を送信先比較ユニット１４２に供給する。送信先比較ユニット１４２は命令デコード４２からの導電体９０にも接続され、そしてＥＮＡＢＬＥ＿ＢＲＯＡＤＣＡＳＴ８２をトライステートバッファ９６に供給する。
【００３５】
動作状態において、ブロードキャストマスクレジスタ１３４，１３６及び１３８の値を結果信号８３を通してロードすることができる。従って、一の命令をプロセッサ１２に発
行して値をブロードキャストマスクレジスタにロードすることができるので、導電体９０を通しての制御信号により、実際の値がＭＵＸ５４から結果信号８３として供給されている状態でブロードキャストマスクレジスタ１３４，１３６または１３８をロードする命令を実行するように通知することができる。従って本実施形態においては、ブロードキャストマスクレジスタ１３４，１３６及び１３８はユーザによる書込みが可能である。マスク選択回路１３２は、現在実行中のコード領域（すなわち現在のプログラム領域）を示すＮビットの値であるＨ＿ＲＥＧＩＯＮ［Ｎ：１］１２８を受信する。（ここで、領域の数Ｙはプロセッサ１２の構成に依存する形でおおよそブロードキャストマスクレジスタの数程度とすることができることに注目されたい）。マスク選択回路１３２を多くの異なる方法で構成してブロードキャストマスクレジスタ１３４，１３６，・・・，１３８の内の一つをＨ＿ＲＥＧＩＯＮ［Ｎ：１］１２８により示される各領域に関連付けることができる。一の実施形態においては、マスク選択回路１３２は特定のブロードキャストマスクを各ブロードキャスト領域に関連付ける。別の実施形態においては、マスク選択回路１３２はユーザによる書込みが可能なレジスタまたは他の回路を含むことにより選択したブロードキャストマスクを各ブロードキャスト領域に任意に関連付けることができ、従ってブロードキャストマスクを種々のブロードキャスト領域に共有させることができる。別の構成として、一のブロードキャストマスクを一のブロードキャスト領域に関連付ける操作は、データ処理システム１０の状態に基づいて行なうことができ、そしてソフトウェアを使用せずに動的に変えることができる。
【００３６】
従ってマスク選択回路１３２はＨ＿ＲＥＧＩＯＮ［Ｎ：１］１２８を使用して該当するブロードキャストマスクレジスタ（１３４，１３６または１３８）を選択し、そしてそれを現在のブロードキャストマスク１４０として供給する。例えば、Ｈ＿ＲＥＧＩＯＮ［Ｎ：１］１２８が図６のブロードキャスト領域２  １６６を示す場合、マスク選択回路１３２はブロードキャストマスク２  １６０に対応する値（この値はブロードキャストマスクレジスタ１３４，１３６または１３８の内のいずれかに記憶することができる）を有するブロードキャストマスクレジスタを選択することになる。次に送信先比較ユニット１４２は、命令によってオペランドをいつＧＰＲ４６内の送信先レジスタに書き込むべきかを判断し、そして命令デコード４２により導電体９０を通して供給される送信先レジスタを現在のブロードキャストマスク１４０と比較してブロードキャストを可能にすべきかどうかを判断する。比較により結果をブロードキャストすべきであることが示されると、ＥＮＡＢＬＥ＿ＢＲＯＡＤＣＡＳＴ８２をアサートしてトライステートバッファ９６が結果を駆動してＨＤＰ［３１：０］７２に出力できるようにする。
【００３７】
図９は図２のブロードキャスト領域制御ユニット１２０の一部の一の実施形態をブロック図の形で示している。ブロードキャスト領域制御ユニット１２０は、領域１上限レジスタ１４６、領域１下限レジスタ１４８、領域２上限レジスタ１５０、領域２下限レジスタ１５２、領域Ｙ上限レジスタ１５４、領域Ｙ下限レジスタ１５６、及び境界比較ユニット１４４を含む。領域１上限レジスタ１４６、領域１下限レジスタ１４８、領域２上限レジスタ１５０、領域２下限レジスタ１５２、領域Ｙ上限レジスタ１５４、領域Ｙ下限レジスタ１５６はＲＥＧＩＯＮ＿ＳＰＥＣＩＦＩＥＲＳ  １２２を制御ユニット４０から受信し、そしてこれらの特定子を記憶する。特定の特定子は各境界レジスタ１４６，１４８，１５０，１５２，１５４及び１５６に供給される。これらの特定子は制御回路４０が結果８３から選択するので命令実行結果値の関数である、または命令デコード９０を通して、或いは他の別の手段により供給することができる。境界レジスタ１４６，１４８，１５０，１５２，１５４及び１５６は出力を境界比較ユニット１４４に供給する。境界比較ユニット１４４はまた、プログラム・カウンタユニット１３０からの導電体１２６に接続され、そしてＨ＿ＲＥＧＩＯＮ［Ｎ：１］１２８を出力として供給する。
【００３８】
動作状態において、領域１上限レジスタ１４６及び領域１下限レジスタ１４８によりブ
ロードキャスト領域１（例えば、図６のブロードキャスト領域１  １６４のような）に対応する開始命令アドレス及び終了命令アドレスを定義する。従って、プログラムカウンタ（プログラム・カウンタユニット１３０内の）が開始命令アドレスから終了命令アドレスの範囲（すなわち、領域１の上限から下限の範囲）に入ると、境界比較ユニット１４４はＨ＿ＲＥＧＩＯＮ［Ｎ：１］１２８を出力して領域１を通知する。同様にして、例えば１５０及び１５２または１５４及び１５６のような領域上限と領域下限の各ペアによりブロードキャスト領域を定義し、そしてプログラムカウンタがこれらの領域のいずれかに入ると、該当する領域がＨ＿ＲＥＧＩＯＮ［Ｎ：１］１２８として出力される。ここで図９に示すように、ブロードキャスト領域制御ユニット１２０は３つのブロードキャスト領域定義を含むが、どのような数Ｙの領域を定義することもできる。これらの上限レジスタ及び下限レジスタ（１４６，１４８，１５０，１５２，１５４及び１５６）は全て、これらのレジスタをロードするために値及び制御信号の両方を供給するＲＥＧＩＯＮ＿ＳＰＥＣＩＦＩＥＲＳ  １２２を通してユーザが書込みできるものとすることができる。
【００３９】
別の実施形態においては、他の方法及びレジスタを使用してブロードキャスト領域を定義することができる。例えば、一のベースアドレス及び一のマスクを使用して下限及び上限ではなく各ブロードキャスト領域を定義することができる。また、ページ属性を使用してブロードキャスト領域をシステムの中に、プロテクション制御またはリロケーション制御（アドレス変換バッファ：ｔａｂｌｅ  ｌｏｏｋ  ａｓｉｄｅ  ｂｕｆｆｅｒ：ＴＬＢのような）を利用して定義することができる。別の実施形態においては、ブロードキャスト領域制御ユニット１２０を制御回路４０内に配置することもできる。別の構成として、ブロードキャストマスクレジスタ及びブロードキャスト領域定義レジスタを組み合わせて特定のマスクを特定の領域により選択するようにすることができる。このようにして、マスク及び領域定義を更新するためのオーバーヘッドを減らすことができる。また上述したように、種々のブロードキャスト領域が一の同じブロードキャストマスクを共有すると、ブロードキャストマスクレジスタの数も減らすことができる。また、別の実施形態ではブロードキャスト領域情報をコプロセッサ１４に供給する必要が無いのでＨ＿ＲＥＧＩＯＮ［Ｎ：１］１２８が不要になる。
【００４０】
本発明の別の実施形態においては、図６のブロードキャスト領域１〜４によりコプロセッサ１４が選択的な実行モードポリシーを実行することも可能になる。ブロードキャスト領域は実行領域と言うこともできる。例えば、現在の実行領域（上述のＨ＿ＲＥＧＩＯＮ［Ｎ：１］１２８のような）を示す信号を渡すことにより、プロセッサ１２は実行コンテキストをコプロセッサ１４に供給することができる。すなわち、Ｈ＿ＲＥＧＩＯＮ［Ｎ：１］１２８を使用してコプロセッサ１４にそれ自体をセットアップさせて種々の固有のデータ駆動動作モードで動作させることができ、この場合これらのモードはプロセッサ１２の動作中にＨ＿ＲＥＧＩＯＮ［Ｎ：１］１２８の値により動的に選択される。例えば、現在の実行領域（すなわち、プログラムコードの内のどのセクションが現在実行されているか）に依存する形で、コプロセッサ１４をＨ＿ＲＥＧＩＯＮ［Ｎ：１］１２８に従ってセットアップして種々のモードで動作させる、または種々の機能を実行させることができる。例えば、Ｈ＿ＲＥＧＩＯＮ［Ｎ：１］１２８が実行領域２を示す場合、コプロセッサ１４はサイクリックリダンダンシーチェック（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）をメモリへの転送に対して実行し、そしてＨ＿ＲＥＧＩＯＮ［Ｎ：１］１２８が実行領域３を示す場合、コプロセッサ１４はフィルタリング機能、またはその代わりにハードウェア型ハッシング機能を実行する。従って、コプロセッサ１４は現在の実行領域に応じてその機能を変えることができる。
【００４１】
本発明の幾つかの実施形態においては、Ｈ＿ＲＥＧＩＯＮ［Ｎ：１］１２８を通して現在の実行領域特定子を受信するのに応答してコプロセッサ１４の動作を変更するというコンセプトにより、コプロセッサを簡素化できるのみならず、プロセッサ１２とコプロセッ
サ１４との間の命令転送に際して生じるオーバーヘッドを減らすことができる。コプロセッサ１４はデータ駆動方式で動作することができ、この方式においては処理がプロセッサ１２からＨＤＰ［３１：０］７２を通してのデータ転送、及びＧＰＲ４６の更新されているレジスタのＲＥＧ［４：０］６８を通しての通知に応答して行なわれる。ブロードキャストマスクのコンセプトを採用すると、厳密なデータ駆動項目のみがコプロセッサ１４に渡される。このようにして、ＲＥＧ［４：０］６８が示し、プロセッサ１２が実行している命令の送信先レジスタに対応する各値はさらに、コプロセッサ１４が実行する特定の動作を現在の実行コンテキストの関数として通知するように機能する。プロセッサ１２が命令を実行すると、ＧＰＲ４６内の特定のレジスタが目標となって、レジスタブロードキャスト動作が行なわれるときに、コプロセッサ１４により選択される機能が間接的に有効になる。さらに、ＲＥＧ［４：０］６８の特定コードが対応する選択される機能は、Ｈ＿ＲＥＧＩＯＮ［Ｎ：１］が示す実行コンテキストが変化すると変化し、プロセッサ１２によりコプロセッサ１４を明示的に再構成する際のオーバーヘッドを無くすことができる。
【００４２】
上述の明細書においては、本発明を特定の実施形態を参照して記載してきた。しかしながら、この技術分野の当業者であれば種々の変形及び変更を以下に示す請求項に示される本発明の技術範囲から逸脱しない範囲において実施形態に加え得ることを理解できるであろう。例えば、本明細書に記載される回路を単一集積回路、または一つ以上の集積回路、或いはハードウェア及びはソフトウェアの組み合わせにより具現化することができる。従って、本明細書及び図面は制限的な意味ではなく例示として捉えられるべきであり、そのような変形の全ては本発明の技術範囲に含まれるべきものであると考えられる。
【００４３】
効果、他の利点、及び問題解決法が特定の実施形態に関連する形で上に記載されてきた。しかしながら、効果、利点、問題解決法、及びこのような効果、利点、または問題解決法をもたらし、またはさらに顕著にさせるすべての要素（群）が、いずれかの請求項または全ての請求項の必須の、必要な、または基本的な特徴、或いは要素であると考えられるべきではない。この明細書で使用されるように、「ｃｏｍｐｒｉｓｅｓ」、「ｃｏｍｐｒｉｓｉｎｇ」という用語、または他のすべてのこれらの変形は包括的な意味を指すものであり、例えば一連の要素を備えるプロセス、方法、製品、または装置がこれらの要素のみを含む、ということではなく、明らかには挙げられていない、またはそのようなプロセス、方法、製品、または装置に固有の他の要素を含むことができる。
【図面の簡単な説明】
【００４４】
本発明は例を通して示されるが以下の図面により制限されるものではなく、これらの図面では同様な参照符号は同様な要素を示す。
【図１】本発明によるデータ処理システムの一実施形態を示すブロック図。
【図２】図１のプロセッサの一部の一実施形態を示すブロック図。
【図３】図１のコプロセッサの一部の一実施形態を示すブロック図。
【図４】レジスタブロードキャスト動作の一実施形態を示すタイミング図。
【図５】ブロードキャストマスクレジスタの一実施形態を示すブロック図。
【図６】ブロードキャスト領域の一実施形態を示すブロック図。
【図７】レジスタブロードキャスト動作の別の実施形態を示すタイミング図。
【図８】図２の制御回路の一部の一実施形態を示すブロック図。
【図９】図２のブロードキャスト領域制御ユニットの一部の一実施形態を示すブロック図。
【００４５】
当業者であれば、図の構成要素は簡潔性及び明瞭性のために例示されており、そして必ずしも実際の寸法通りには描かれていないことがわかるであろう。例えば、図の構成要素の幾つかの寸法は他の構成要素に対して誇張されていて本発明の実施形態の理解を深めるのに役立つようになっている。
【図１】
2005528669.tif 000003
【図２】
2005528669.tif 000004
【図３】
2005528669.tif 000005
【図４】
2005528669.tif 000006
【図５】
2005528669.tif 000007
【図６】
2005528669.tif 000008
【図７】
2005528669.tif 000009
【図８】
2005528669.tif 000010
【図９】
2005528669.tif 000011
【手続補正書】
【提出日】平成15年9月26日(2003.9.26)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】  複数のレジスタを含むレジスタファイル及び同レジスタファイルに対応するブロードキャスト特定子を有するプロセッサが、書込みトランザクションを前記レジスタファイルにコプロセッサ通信バスを介して選択的にブロードキャストする方法であって、
前記レジスタファイルに書き込むべきオペランドを受信する工程と、
前記レジスタファイルの複数のレジスタの内の一つを選択する工程と、
前記レジスタファイルに書き込むべき前記オペランドを前記レジスタファイルに供給する工程と、
前記ブロードキャスト特定子に基づいて、前記レジスタファイルに書き込むべきオペランドを前記コプロセッサ通信バスを介して選択的に供給する工程と、
からなる方法。
【請求項２】  前記ブロードキャスト特定子は一連のブロードキャスト指示子を含み、前記一連のブロードキャスト指示子内の各ブロードキャスト指示子は前記複数のレジスタの内の一つに対応して、
前記レジスタファイルに書き込まれるべき前記オペランドを前記コプロセッサ通信バスを介して選択的に供給する操作は、前記レジスタファイルの複数のレジスタの内の前記選択された一つに対応する前記ブロードキャスト指示子に基づく請求項１記載の方法。
【請求項３】  前記ブロードキャスト特定子はプロセッサ内の複数のブロードキャスト特定子の内の一つであり、前記複数のブロードキャスト特定子の各々は前記プロセッサの少なくとも一つのブロードキャスト領域に対応し、そして請求項１に記載の方法においてさらに、
現在の書込みトランザクションの現在のブロードキャスト領域に対応する領域指示子を前記コプロセッサ通信バスを介して選択的に供給する請求項１記載の方法。
【請求項４】  第２プロセッサにコプロセッサ通信バスを介して接続される第１プロセッサが、前記第１プロセッサの実行モードを選択的に変える方法であって、
前記第２プロセッサの現在の実行領域を示す領域指示子を前記第２プロセッサから前記コプロセッサ通信バスを介して受信する工程と、
前記第１プロセッサの前記実行モードを前記領域指示子に応じて選択的に変える工程と、
からなる方法。
【請求項５】  第２プロセッサにコプロセッサ通信バスを介して接続される第１プロセッサが、同第１プロセッサの実行モードを選択的に変える方法であって、
前記第２プロセッサに含まれ、オペランドが書き込まれているレジスタファイルの中の選択されたレジスタを示すレジスタ特定子を前記第２プロセッサから前記コプロセッサ通信バスを介して受信する工程と、
前記第１プロセッサの実行モードを前記レジスタ特定子に応じて選択的に変える工程と、
からなる方法。
【請求項６】  複数のレジスタを含むレジスタファイルを有するプロセッサが、書込みトランザクションを前記レジスタファイルにコプロセッサ通信バスを介して選択的にブロードキャストする方法であって、
前記レジスタファイルに書き込むべきオペランドを受信する工程と、
前記レジスタファイルの前記複数のレジスタの内の一つを選択する工程と、
前記レジスタファイルに書き込むべきオペランドを前記レジスタファイルに供給する工程と、
前記プロセッサの現在の実行領域に基づいて、前記レジスタファイルに書き込まれるべきオペランドを前記コプロセッサ通信バスを介して選択的に供給する工程と、
からなる方法。
【請求項７】  複数のレジスタと、
同複数のレジスタの内の一つに対して書込み動作を実行する回路と、
前記書込み動作実行用のオペランドを前記複数のレジスタの内の一つに供給する導電体群と、
一連のブロードキャスト特定子と、
前記複数のレジスタの内の一つと前記ブロードキャスト特定子の内の選択された一つとを比較し、ブロードキャストイネーブル信号を供給する比較回路と、
同比較回路に接続されて、コプロセッサ通信バスと通信するポートであって、前記ブロードキャストイネーブル信号に応答して前記オペランドを選択的に供給するための、少なくとも一つのコプロセッサ通信バス信号を送信するポート、
を備えるプロセッサ。
【請求項８】  前記一連のブロードキャスト特定子内の各ブロードキャスト特定子は、一連のブロードキャスト指示子を含み、各ブロードキャスト指示子は前記複数のレジスタの内の少なくとも一つに対応する請求項７に記載のプロセッサ。
【請求項９】  さらに、アドレス位置を示すプログラム・カウンタユニットと、
前記プログラム・カウンタユニットに接続され、前記プログラム・カウンタユニットが示す前記アドレス位置が一連のブロードキャスト領域の内の一つに入る時を通知するブロードキャスト領域制御ユニットと、
を備える請求項７記載のプロセッサ。
【請求項１０】  複数のレジスタと、
同複数のレジスタの内の一つに対して書込み動作を実行する回路と、
前記書込み動作実行用のオペランドを前記複数のレジスタの内の一つに供給する導電体群と、
アドレス位置を示すプログラム・カウンタユニットと、
前記プログラム・カウンタユニットに接続され、同プログラム・カウンタユニットが示す前記アドレス位置が一連の実行領域の内の一つに入る時を通知する実行領域制御ユニットと、
前記実行領域制御ユニットに接続されて、コプロセッサ通信バスと通信するポートとであって、少なくとも一つのコプロセッサ通信バス信号からなり、この信号により、前記プログラム・カウンタユニットが示す前記アドレス位置が前記一連の実行領域の内の一つに入るときに、前記一連の実行領域の内の現在の実効領域を通知するポートと、
からなるプロセッサ。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
スーパーバイザモード信号６２は制御回路４０が生成し、そしてコプロセッサ１４及び１６に供給される。デコード信号６３は制御回路４０が生成し、そしてコプロセッサ１４及び１６に供給される。コプロセッサビジー信号６４は制御回路４０がコプロセッサ１４又は１６から受信する。実行信号（ｅｘｅｃｕｔｅ  ｓｉｇｎａｌ）６５は制御回路４０が生成し、そしてコプロセッサ１４及び１６に供給される。例外信号（ｅｘｃｅｐｔｉｏｎ
ｓｉｇｎａｌ）６６は制御回路４０がコプロセッサ１４又はコプロセッサ１６から受信する。レジスタライト信号（ＲＥＧＩＳＴＥＲ＊）６７は制御回路４０が生成し、そしてコプロセッサ１４及び１６に供給される。レジスタ信号（ＲＥＧ［４：０］）６８は制御回路４０が生成し、そしてコプロセッサ１４及び１６に供給される。エラー信号（Ｈ＿ＥＲＲ＊）６９は制御回路４０が生成し、そしてコプロセッサ１４及び１６に供給される。データストローブ信号（Ｈ＿ＤＳ＊）７０は制御回路４０が生成し、そしてコプロセッサ１４及び１６に供給される。データアクノリッジ信号（Ｈ＿ＤＡ＊）７１は制御回路４０がコプロセッサ１４又はコプロセッサ１６から受信する。領域信号（Ｈ＿ＲＥＧＩＯＮ［Ｎ：１］）はブロードキャスト領域制御ユニット１２０が生成し、そして制御回路４０及びコプロセッサ１４及び１６に供給される。コプロセッサ・インタフェイス３０の一部とも考えられるハードウェアデータポート信号（ＨＤＰ［３１：０］）７２はコプロセッサ１４及び１６とプロセッサ１２内の内部回路との間で双方向に移動する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
本発明の一つの実施形態においては、複数の信号がバス２８に、またはバス２８から供給されてメモリ１８及び／又はメモリ２４にデータをロードまたは記憶する。一つの実施形態においては、これらの信号は転送リクエスト信号（ＴＲＥＱ＊）７３を含み、この信号は制御回路４０が生成してバス２８に供給される。転送エラーアクノリッジ信号（ＴＥＡ＊）７４は制御回路４０にバス２８を通して供給される。転送アクノリッジ信号（ＴＡ＊）７５は制御回路４０にバス２８を通して供給される。命令はバス２８から命令パイプ４４に導電体７６を通して供給される。データはＭＵＸ５４に導電体７６を通して供給される。駆動データ信号７９によりトライステートバッファ９５はラッチＭＵＸ５２からのデータを導電体８８及び７６を通して供給することができる。アドレス選択信号７８によりラッチＭＵＸ５０はアドレスをバス２８に導電体７７を通して供給することができる。ＭＵＸ５４への別の入力はＨＤＰ信号（ＨＤＰ［３１：０］）７２により行なわれる。ＭＵＸ５４への別の入力はＡＬＵ結果導電体（ＡＬＵ  ｒｅｓｕｌｔ  ｃｏｎｄｕｃｔｏｒｓ）８６を通して行なわれる。ＭＵＸ５４の出力、すなわち結果信号（ｒｅｓｕｌｔ  ｓｉｇｎａｌｓ）８３はレジスタ４６、及びトライステートバッファ９６の入力に供給される。ＥＮＡＢＬＥ＿ＢＲＯＡＤＣＡＳＴ信号８２によりトライステートバッファ９６はＨＤＰ［３１：０］７２を結果信号８３のレベルに駆動することができる。トライステートバッファ９６の出力はラッチＭＵＸ５２の入力にも接続される。結果信号８３はラッチＭＵＸ５０への入力及び制御回路４０への入力として供給される。結果信号８３はレジスタ４６にＭＵＸ５４を通して供給される。結果選択信号（ＲＥＳＵＬＴ＿ＳＥＬＥＣＴ）８１はＭＵＸ５４のどの入力を駆動して結果導電体８３に出力すべきかを選択する。ソース選
択信号（ＳＯＵＲＣＥ＿ＳＥＬＥＣＴ）８０はラッチＭＵＸ５２に供給されてどの信号を駆動して導電体８８を通してライステートバッファ９５に出力すべきかを選択する。制御回路４０は制御情報を供給し、そしてステータス情報をレジスタ４６から導電体９１を通して受信する。制御回路４０は制御信号を供給し、そしてステータス信号を論理演算ユニット４８から導電体９２を通して受信する。制御回路４０は制御信号及び情報信号を供給し、そして制御信号及び情報信号をブロードキャスト領域制御ユニット１２０からＲＥＧＩＯＮ  ＳＰＥＣＩＦＩＥＲＳ１２２を通して受信する。制御回路は制御信号を供給し、そしてステータス信号をプログラム・カウンタユニット１３０から導電体１２４を通して受信する。制御回路４０は制御信号を供給し、そしてステータス信号を命令パイプ４４及び命令デコード回路４２から導電体９３を通して受信する。命令パイプ４４は命令を供給できるように命令デコード回路４２に導電体８９を通して接続される。命令デコード回路４２はデコードされた命令情報を制御回路４０及びプログラム・カウンタユニット１３０に導電体９０を通して供給する。レジスタ４６はソースオペランドを論理演算ユニット４８に導電体８４を通して供給する。レジスタ４６はメモリ１８またはメモリ２４に記憶されるデータを導電体８４、ラッチＭＵＸ５２、トライステートバッファ９５及び導電体７６を通して供給する。レジスタ４６はアドレス情報をメモリ１８またはメモリ２４に導電体８４、ラッチＭＵＸ５０及びアドレス導電体７７を通して供給する。レジスタ４６は第２ソースオペランドを論理演算ユニット４８に導電体８５を通して供給する。プログラム・カウンタユニット１３０はプログラムカウンタをメモリ１８またはメモリ２４に導電体１２６、ラッチＭＵＸ５０及びアドレス導電体７７を通して供給する。プログラム・カウンタユニット１３０はまた、プログラムカウンタ情報をブロードキャスト領域制御ユニット１２０に供給する。プログラム・カウンタユニット１３０は出力アドレスをラッチＭＵＸ５０から入力として受信し、次のメモリアドレスを生成する。


【国際調査報告】
2005528669.tif 000012
2005528669.tif 000013
2005528669.tif 000014