JP4098241B2 - プロセッサをコプロセッサに接続する方法及び装置 - Google Patents

プロセッサをコプロセッサに接続する方法及び装置 Download PDF

Info

Publication number
JP4098241B2
JP4098241B2 JP2003544586A JP2003544586A JP4098241B2 JP 4098241 B2 JP4098241 B2 JP 4098241B2 JP 2003544586 A JP2003544586 A JP 2003544586A JP 2003544586 A JP2003544586 A JP 2003544586A JP 4098241 B2 JP4098241 B2 JP 4098241B2
Authority
JP
Japan
Prior art keywords
broadcast
processor
register
coprocessor
registers
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003544586A
Other languages
English (en)
Other versions
JP2005528669A (ja
JP2005528669A5 (ja
Inventor
シー. モイヤー、ウィリアム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NXP USA Inc
Original Assignee
NXP USA Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NXP USA Inc filed Critical NXP USA Inc
Publication of JP2005528669A publication Critical patent/JP2005528669A/ja
Publication of JP2005528669A5 publication Critical patent/JP2005528669A5/ja
Application granted granted Critical
Publication of JP4098241B2 publication Critical patent/JP4098241B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)
  • Executing Machine-Instructions (AREA)

Description

本発明は概してプロセッサ及び少なくとも一つのコプロセッサを有するデータ処理システムに関し、特に、プロセッサをコプロセッサに接続する方法及び装置に関する。
ベースラインアーキテクチャ及びプロセッサ機能を専用及び特定化されたハードウェア機能素子によって拡張する能力は、拡大縮小可能で伸縮自在のアーキテクチャの重要な要素である。
ベースラインアーキテクチャ及びプロセッサ機能を拡張する好適な方法の一つは、コプロセッサを使用することにより行なわれる。これらのコプロセッサは専用で、かつ普通は単一目的のプロセッサであり、プロセッサの指示により動作する。コプロセッサの従来の使用法の一つは、数値演算コプロセッサとしてのものであり、このような機能を直接サポートしないアーキテクチャに浮動小数点演算機能を選択的に提供していた。このような数値演算コプロセッサの例としては、インテル製8087及び80287がある。コプロセッサの他の可能性のある使用法またはタイプとして、乗加算器、変調器/復調器(モデム)、デジタルシグナルプロセッサ(DSP)、vitterbi計算器、クリプトグラフィックプロセッサ、イメージプロセッサ、及びベクトルプロセッサが挙げられる。
コプロセッサを実現する一つの方法はコプロセッサ・インタフェイスを使用することであり、このインタフェイスをコプロセッサに十分密着して接続し、インタフェイスを十分に高速で使用して、どのように単純な機能でも起動させることにより利点が生じ、しかもインタフェイスを抽出してプロセッサ・アーキテクチャが所定コプロセッサの出来る限り多くの細部から分離されるようにする。例えば、このようにインタフェイスが密着する形で接続されるコプロセッサは、オペランド及び制御ワードをメインプロセッサの専用インタフェイスを介して受信することができる。多くの場合、メインプロセッサは一つの値を、メインプロセッサがそれをメインプロセッサが行なう一連の動作に基づいて生成した後に、コプロセッサに渡す。最後の変更を施した後、この値はコプロセッサに送信される。しかしながら、この最後の転送によりオーバーヘッドが付いてしまい、これが幾つかのコプロセッサ動作にとって許容できないものとなる。
以下の記載においては、特定のワード長または特定のバイト長などの多くの特定の詳細を示して本発明の全容の理解に供する。しかしながらこの技術分野の当業者であれば、本発明がこのような特定の詳細によらずとも実施できるものであることは容易に理解できるものと考えられる。別の例においては、回路をブロック図の形で示して本発明が不必要な細部で不明瞭になることを防止している。ほとんどの場合、タイミングの考察などに関する詳細は、このような詳細が本発明の完全な理解には必要ではなく、しかも関連分野の当業者の技術の範囲内に含まれるので省略する。
「bus」という用語を使用して複数の信号または導電体を指し、これらの信号または導電体を使用してデータ、アドレス、制御、またはステータス等の一つ以上の種々のタイプの情報を転送する。「assert」及び「negate」という用語は、信号、ステータスビット、または同様な要素をそれぞれ論理的に真の状態または論理的に偽の状態にする動作を指すときに使用する。論理的に真の状態が論理レベル「1」である場合、論理
的に偽の状態は論理レベル「0」となる。そして論理的に真の状態が論理レベル「0」である場合、論理的に偽の状態は論理レベル「1」となる。信号名に続く符号「*」は、その信号が負論理信号である(論理的に真の状態が論理レベル「0」の場合を意味する)ことを示す。
図1はデータ処理システム10の一つの実施形態を示すブロック図であり、このシステムはプロセッサ12、コプロセッサ14、コプロセッサ16、メモリ18、他のモジュール20及び外部バスインタフェイス22を備え、これらは全てバス28を通して双方向通信可能に接続される。本発明の別の実施形態では、一つのみのコプロセッサ14、2つのコプロセッサ14及び16、またはさらに多くのコプロセッサ(図示せず)を有することができる。外部バスインタフェイス22は外部バス26に双方向通信可能に集積回路端子35を通して接続される。メモリ24は外部バス26に双方向通信可能に接続される。プロセッサ12は任意ではあるが、データ処理システム10の外部と集積回路端子31を通して接続することができる。コプロセッサ14は任意ではあるが、データ処理システム10の外部と集積回路端子32を通して接続することができる。メモリ18は任意ではあるが、データ処理システム10の外部と集積回路端子33を通して接続することができる。他のモジュール20は任意ではあるが、データ処理システム10の外部と集積回路端子34を通して接続することができる。プロセッサ12はコプロセッサ14及びコプロセッサ16の両方とコプロセッサ・インタフェイス30を通して双方向通信可能に接続される。図1には示されないが、別の実施形態はメモリ18と同様なメモリをさらにバス28を通して接続することもできる。
図2は図1のプロセッサ12の一部を示すブロック図である。一つの実施形態では、プロセッサ12は制御回路40、命令デコード回路42、命令パイプ44、レジスタ46、論理演算ユニット(Arithmetic Logic Unit:ALU)48、ラッチマルチプレクサ(MUX)50、ラッチマルチプレクサ(MUX)52、マルチプレクサ(MUX)54、ブロードキャスト領域制御ユニット120、及びプログラム・カウンタユニット130を含む。本発明の一つの実施形態においては、コプロセッサ・インタフェイス30は信号60〜72及び128を含む。クロック信号60は制御回路40が生成する。コプロセッサ動作信号61は制御回路40が生成し、そしてコプロセッサ14及び16に供給される。
スーパーバイザモード信号62は制御回路40が生成し、そしてコプロセッサ14及び16に供給される。デコード信号63は制御回路40が生成し、そしてコプロセッサ14及び16に供給される。コプロセッサビジー信号64は制御回路40がコプロセッサ14又は16から受信する。実行信号(execute signal)65は制御回路40が生成し、そしてコプロセッサ14及び16に供給される。例外信号(exception
signal)66は制御回路40がコプロセッサ14又はコプロセッサ16から受信する。レジスタライト信号(REGISTER)67は制御回路40が生成し、そしてコプロセッサ14及び16に供給される。レジスタ信号(REG[4:0])68は制御回路40が生成し、そしてコプロセッサ14及び16に供給される。エラー信号(H_ERR)69は制御回路40が生成し、そしてコプロセッサ14及び16に供給される。データストローブ信号(H_DS)70は制御回路40が生成し、そしてコプロセッサ14及び16に供給される。データアクノリッジ信号(H_DA)71は制御回路40がコプロセッサ14又はコプロセッサ16から受信する。領域信号(H_REGION[N:1])はブロードキャスト領域制御ユニット120が生成し、そして制御回路40及びコプロセッサ14及び16に供給される。コプロセッサ・インタフェイス30の一部とも考えられるハードウェアデータポート信号(HDP[31:0])72はコプロセッサ14及び16とプロセッサ12内の内部回路との間で双方向に移動する。
本発明の一つの実施形態においては、複数の信号がバス28に、またはバス28から供給されてメモリ18及び/又はメモリ24にデータをロードまたは記憶する。一つの実施形態においては、これらの信号は転送リクエスト信号(TREQ)73を含み、この信号は制御回路40が生成してバス28に供給される。転送エラーアクノリッジ信号(TEA)74は制御回路40にバス28を通して供給される。転送アクノリッジ信号(TA)75は制御回路40にバス28を通して供給される。命令はバス28から命令パイプ44に導電体76を通して供給される。データはMUX54に導電体76を通して供給される。駆動データ信号79によりトライステートバッファ95はラッチMUX52からのデータを導電体88及び76を通して供給することができる。アドレス選択信号78によりラッチMUX50はアドレスをバス28に導電体77を通して供給することができる。MUX54への別の入力はHDP信号(HDP[31:0])72により行なわれる。MUX54への別の入力はALU結果導電体(ALU result conductors)86を通して行なわれる。MUX54の出力、すなわち結果信号(result signals)83はレジスタ46、及びトライステートバッファ96の入力に供給される。ENABLE_BROADCAST信号82によりトライステートバッファ96はHDP[31:0]72を結果信号83のレベルに駆動することができる。トライステートバッファ96の出力はラッチMUX52の入力にも接続される。結果信号83はラッチMUX50への入力及び制御回路40への入力として供給される。結果信号83はレジスタ46にMUX54を通して供給される。結果選択信号(RESULT_SELECT)81はMUX54のどの入力を駆動して結果導電体83に出力すべきかを選択する。ソース選
択信号(SOURCE_SELECT)80はラッチMUX52に供給されてどの信号を駆動して導電体88を通してライステートバッファ95に出力すべきかを選択する。制御回路40は制御情報を供給し、そしてステータス情報をレジスタ46から導電体91を通して受信する。制御回路40は制御信号を供給し、そしてステータス信号を論理演算ユニット48から導電体92を通して受信する。制御回路40は制御信号及び情報信号を供給し、そして制御信号及び情報信号をブロードキャスト領域制御ユニット120からREGION SPECIFIERS122を通して受信する。制御回路は制御信号を供給し、そしてステータス信号をプログラム・カウンタユニット130から導電体124を通して受信する。制御回路40は制御信号を供給し、そしてステータス信号を命令パイプ44及び命令デコード回路42から導電体93を通して受信する。命令パイプ44は命令を供給できるように命令デコード回路42に導電体89を通して接続される。命令デコード回路42はデコードされた命令情報を制御回路40及びプログラム・カウンタユニット130に導電体90を通して供給する。レジスタ46はソースオペランドを論理演算ユニット48に導電体84を通して供給する。レジスタ46はメモリ18またはメモリ24に記憶されるデータを導電体84、ラッチMUX52、トライステートバッファ95及び導電体76を通して供給する。レジスタ46はアドレス情報をメモリ18またはメモリ24に導電体84、ラッチMUX50及びアドレス導電体77を通して供給する。レジスタ46は第2ソースオペランドを論理演算ユニット48に導電体85を通して供給する。プログラム・カウンタユニット130はプログラムカウンタをメモリ18またはメモリ24に導電体126、ラッチMUX50及びアドレス導電体77を通して供給する。プログラム・カウンタユニット130はまた、プログラムカウンタ情報をブロードキャスト領域制御ユニット120に供給する。プログラム・カウンタユニット130は出力アドレスをラッチMUX50から入力として受信し、次のメモリアドレスを生成する。
ここで本発明の別の実施形態はレジスタ46にどのような数のレジスタも含むことができることに注目されたい。また本発明の別の実施形態は情報を伝送するために、双方向バスに代えて一対の単一方向バスを、トライステートバッファに代えてマルチプレクサロジックを使用することができる。例えば、HDP[31:0]または他の双方向バスを別々の入力部分及び出力部分として実現することができる。
図3はコプロセッサ14の一部の一の実施形態を示すブロック図である。一の実施形態においては、コプロセッサ14は制御回路100、演算回路102及び任意選択の記憶回路104を含む。制御回路100はプロセッサ12に、信号60〜72及び128を含むコプロセッサ・インタフェイス30を通して双方向通信可能に接続される。本発明の一の実施形態においては、制御回路100は動作信号61及びデコード信号63をプロセッサ12から受信するデコード回路106を含む。制御回路100は制御情報を供給し、そしてステータス情報を任意選択の記憶回路104から導電体108を通して受信する。制御回路100は制御情報を供給し、そしてステータス情報を演算回路102から導電体109を通して受信する。演算回路102及び任意選択の記憶回路104は双方向通信可能に導電体110を通して接続される。一つ以上の信号110はバス28または集積回路端子32に供給される、或いはバス28または集積回路端子32から供給される。制御回路100は情報を導電体112を通して、バス28または集積回路端子32から受信する、或いはバス28または集積回路端子32に供給する。信号72は演算回路102及び任意選択の記憶回路104に双方向に接続される。さらに信号72は、バス28または集積回路端子32に双方向に接続することができる。本発明の別の実施形態においては任意選択の記憶回路104を使用しないことができる。任意選択の記憶回路104を使用する本発明の実施形態においては、この記憶回路は、レジスタ、いずれかのタイプのメモリ、ラッチまたはプログラマブルロジックアレイなどを含むいずれかのタイプの記憶回路を使用して実現することができる。本発明の別の実施形態においては、演算回路102はどのタイプの論理機能または演算機能も実行することができる。
このシステムは、特定用途関連の動作のために最適化された外部コプロセッサ14(またはハードウェアアクセラレータ)によるタスクの処理効率化をサポートする。これらの外部コプロセッサ14,16は、頻度カウントを行なうコプロセッサ14と同じように簡単にする、或いはDSPアクセラレーションプロセッサ14のようにもっと複雑な機能を行なえるコプロセッサ14とする、または高速積和演算機能を有するコプロセッサ16とすることができる。
データは、プロセッサ12とコプロセッサ14との間で、特定の実施形態に適する幾つかのメカニズムの内の一つ以上のメカニズムにより転送される。これらのメカニズムはコプロセッサ14への転送及びコプロセッサ14からの転送に分けることができる。
データをコプロセッサ14に転送するメカニズムの内の一つは命令プリミティブを含まないレジスタブロードキャスト(Register Broadcast)メカニズムであるが、通常のプロセッサ12動作に伴う副産物である。このメカニズムは、コプロセッサ14が一つ以上のプロセッサ12レジスタの更新をモニターすることができるように、プロセッサ12の汎用レジスタ(General Purpose Registers:「GPR」)46の更新をインタフェイスを介して反映させる操作を含む。この操作は、コプロセッサ14が内部レジスタまたは内部機能を実行するためにGPR46を「充てる」場合に適切なものとなる。この場合、プロセッサ12からコプロセッサ14にパラメータを明示的に渡す必要が無くなる。
データをコプロセッサ14に転送する別の方法はデータ駆動によるコプロセッシングであり、このコプロセッシングは一つ以上のデータ項目のコプロセッサへの転送を含む。これらの項目を転送することにより、明示的なコプロセッサ命令または指示が無くてもコプロセッシング動作を起動することができる。コプロセッサに付随する通信オーバーヘッドを減らすと、性能を大幅に改善することができる。
命令プリミティブをベースプロセッサ12に設定して外部コプロセッサ14,16とプ
ロセッサ12との間のオペランド及び命令の明示的な転送も行なう。ハンドシェークメカニズムを設定して命令及びデータ転送の速度に対する制御を可能にする。
ここで、コプロセッサ14機能が実施形態に特定のユニットとなるように構成しているので、同じ命令マッピングが在るとしても所定のユニットの具体的な機能を異なる実施形態間で自由に変えることができる。
図4はレジスタブロードキャスト動作を示すタイミング図である。コプロセッサ14または外部モニターに渡されるパラメータの性能オーバーヘッドを避けるために、レジスタブロードキャストメカニズム(レジスタスヌーピングメカニズムとも呼ぶことができる)を設定する。これによりコプロセッサ14はプロセッサ12の汎用レジスタ46の内の一つ以上のシャドウコピーを実行することができる。この機能は、プロセッサGPR46の内の一つに書き込まれている値と、どのレジスタ46が各GPR更新により更新されているのかを示す通知を転送することにより実現する。(ここで、下線の付されたレジスタ、例えばRA及びRCは該当する命令の送信先レジスタ、例えばADDC及びORをそれぞれ指すことに注目されたい)。ストローブ信号REGWR67をアサートして各レジスタを更新する。この値を32ビット双方向データパスHDP[31:0]72を通して転送し、そして5ビットレジスタ番号バスは、(REG[4:0])68に更新されている実際のプロセッサレジスタ46にポインタを供給する。このレジスタ番号は正常なファイルまたは代わりのファイルのレジスタ46を指すことができる。好適な実施形態においては、代わりのファイルレジスタはREG[4]==1で示され、そして正常なファイルレジスタはREG[4]==0で示される。しかしながら、本発明はレジスタセットの実際の区分に全く依存しない。
コプロセッサ14は送信先レジスタ46番号の通知と共にこの値を内部にラッチして、後のレジスタ情報の明示的な移動を避ける。この機能はデバッグコプロセッサ14も使用し、レジスタファイル46またはそのサブセットの状態を追跡する。図4はブロードキャスト機能の例を示している。
図4に関連して示されるブロードキャスト機能は、レジスタファイルに対する書込みトランザクション毎にブロードキャストをHDP[31:0]72を通して行なわれる。従ってこの機能によりコプロセッサ14はプロセッサ12のレジスタファイル(すなわちGPR46)のシャドウコピーを保持し、そして幾つかのパラメータをプロセッサ12からコプロセッサ14に明示的に渡す必要を無くすことができる。しかしながら、プロセッサ12及びコプロセッサ14のブロードキャスト機能をさらに制御する機能に対する要求がある。従って図5〜9には、プロセッサ12に選択的ブロードキャスト機能を持たせ、そしてコプロセッサ14に選択的更新ポリシーを持たせる本発明の一の実施形態が示されている。
図5は、本発明の一の実施形態に従って選択的ブロードキャスト機能の実行を可能にするブロードキャストマスクレジスタを示している。従って、GPR46の結果更新をすべてブロードキャストするのに代えて、ブロードキャストマスクレジスタを使用してGPR46のサブセットを選択し、このサブセットに対する結果がコプロセッサ14にブロードキャストされる。例えばGPR46の各レジスタに対して、単一ビットをブロードキャスト表示として使用してその特定のレジスタを更新することにより更新されたレジスタコンテンツがコプロセッサ14に(HDP[31:0]72を通して)転送されるかどうかを判断する。図5はブロードキャストマスクレジスタの一例を示しており、この場合GPR46は16個のレジスタを有すると仮定している。この例においては、0は特定ビットに関連付けられるレジスタがその結果をブロードキャストできないことを示し、そして1は特定ビットに関連付けられるレジスタがその結果をブロードキャストできることを示す。
従って図5の例の場合、ビット位置8及び9(一つの実施形態においては、GPR46内のレジスタR8及びレジスタR9を指す)に対応するレジスタの更新のみがコプロセッサ14にブロードキャストされる。GPR46が8個のレジスタしか含まない場合、ブロードキャストマスクレジスタは8ビット長で済む。従ってブロードキャストマスクレジスタは、GPR46に対応する一連のブロードキャスト表示を有するブロードキャスト指定子であると考えることができる。
一つの実施形態においては、ブロードキャストマスクレジスタ(例えばブロードキャスト特定子)はユーザにより書込み可能であり(ソフトウェアによりアクセス可能な)、従ってシステム状態が変化する際に変更して、新規の要求が生まれるときの種々のコプロセッシングの経時的なアクティビティを明らかにすることができる。別の実施形態においては、ブロードキャストマスクレジスタまたはブロードキャスト特定子は、ブロードキャストマスクレジスタを更新するために構成される特定の命令内の即値フィールドによりアクセスすることができる。別の実施形態では、異なるブロードキャスト特定子及び各レジスタの該当するブロードキャスト指示子を提供する異なる方法も使用し、この場合各レジスタはその結果を、図5に示すブロードキャストマスクレジスタを使用せずにプロセッサ12によりブロードキャストする必要がある。例えば、レジスタマスクフィールドをGPR46に対応するメモリ18または24に記憶する。
ブロードキャストマスクレジスタ(または他のブロードキャスト特定子)を使用することにより、HDP[31:0]72に与える負荷及び全体の電力消費を減らすことができる。例えば、或る値をコプロセッサ14によりスヌーピングする必要が無い場合、この値を記憶するためにGPR46内の一のレジスタを割り当て、そしてブロードキャストマスクを使用してこのレジスタに関するブロードキャストが行なわれないようにすることにより、この値がプロセッサ12によりブロードキャストされないようにすることができる。従って、計算値のサブセットのみをプロセッサ12からコプロセッサ14にブロードキャストする必要がある場合、GPR46のサブセットをこれらの値を保持するために確保し、続いてこれらの確保したレジスタの内の一つを更新するだけで計算値のブロードキャストを行なうことができる。結果を生成する命令の数が大きいので、全ての書込み結果をブロードキャストすると不必要にHDP[31:0]72に負荷を掛け、そしてより多くの電力を消費する。このようにして、レジスタ更新のサブセットのみがコプロセッサ14にブロードキャストされるようにブロードキャストをマスクすることにより、プロセッサ12内の電力消費を減らし、そしてHDP[31:0]72に掛かる余分の負荷を減らすことができる。
ブロードキャスト機能をさらに制御するために、ブロードキャスト領域を使用することができる。図6はサンプルプログラム空間172を示し、この空間は4つのブロードキャスト領域、すなわちブロードキャスト領域1 164、ブロードキャスト領域2 166、ブロードキャスト領域3 168、及びブロードキャスト領域4 170に分割される。プログラム空間172はプロセッサ12内のどのようなプログラム空間であっても良く、そしてメモリ18または24のようなプログラムメモリのいずれにも配置することができる。ブロードキャスト領域とは命令アドレス範囲(すなわちプログラム領域または実行領域)を指し、この範囲内でブロードキャストを制御する。図6において、各ブロードキャスト領域は該当するブロードキャストマスクを有する。例えば、ブロードキャスト領域1 164はブロードキャストマスク1 158に対応し、ブロードキャスト領域2 166及びブロードキャスト領域4 170はともにブロードキャストマスク2 160に対応し、そしてブロードキャスト領域3 168はブロードキャストマスク3 162に対応する。従って、ブロードキャストマスクは一つ以上のブロードキャスト領域に対応することができる。
ブロードキャストマスクのブロードキャスト領域に対する割当ては複数の方法で制御することができる。この割当て方法は固定する、またはソフトウェアで制御してユーザによる書込みを可能とする。書込みは、ブロードキャストマスクを各実行ブロードキャスト領域とペアにする制御レジスタを通して行なわれるか、または他の記憶手段を通して行なわれる。システムを実行している間、ブロードキャストマスクのブロードキャスト領域に対する関連付けはユーザプログラム制御により、またはシステムイベントをハードウェアでモニターすることにより、或いはデータ処理システムに適した他のいずれかの制御手段を用いることにより変更することができる。
コードをブロードキャスト領域内で実行しているときに、該当するブロードキャストマスクを使用して更新結果の選択的ブロードキャストを行なう。例えば、ブロードキャスト領域1 164内では、ブロードキャストマスク1 158で示されるレジスタの更新のみがコプロセッサ14にブロードキャストされる。ブロードキャスト領域2 166またはブロードキャスト領域4 170内では、ブロードキャストマスク2 160で示されるレジスタの更新のみがコプロセッサ14にブロードキャストされる。ブロードキャスト領域3 168内では、ブロードキャストマスク3 162で示されるレジスタの更新のみがコプロセッサ14にブロードキャストされる。
このようなブロードキャスト領域を使用することによりコプロセッサ14の動作を簡単にすることもできる。例えば、コプロセッサ14がもはやプロセッサ12から明示的な命令の形での通知を要求せず、その代わり、プロセッサ12は厳密な駆動項目しかコプロセッサ14に渡さないように設計されているのでデータ駆動方式で動作できる場合がある。よって、ブロードキャスト領域及びブロードキャストマスクを使用することにより、プロセッサ12はそのブロードキャスト機能を制御し、従って、それがコプロセッサ14に送信する駆動項目を制御することができる。データ駆動方式で動作することにより、個々の制御動作または命令をコプロセッサ14または16に渡すことにより生じるオーバーヘッドを減らす、または無くすことができるので、システム性能を改善し、そしてシステム電力消費を減らすことができる。
別の構成として、図6のブロードキャスト領域1〜4をブロードキャストマスク1〜3から独立させて使用することもできる。例えば、ブロードキャスト領域を、ブロードキャストが行なわれる、または行なわれない領域として定義することができる。すなわち、ブロードキャスト領域1 164内のコードに対して、ブロードキャストはGPR46を更新するときには必ず行なわれる。これに対してブロードキャスト領域2を、この範囲内のコードに対してブロードキャストが全く行なわれないように定義することができる。従ってブロードキャスト機能は、ブロードキャストマスクまたはブロードキャストマスクとブロードキャスト領域の組み合わせのみに基づいて、というよりもブロードキャスト領域にのみ基づいて選択的に実行することもできる。
図7は選択的レジスタブロードキャスト動作の一例のタイミング図を示している。命令ADD R3,R2及びOR R4,R5が図6のブロードキャスト領域1 164内に在り、従ってブロードキャストマスク1 158に対応し、この例は図7にも示される。命令ADD R6,R7,SUB R3, R4、及びMUL R9, R10が図6のブロードキャスト領域2 166内に在り、従ってブロードキャストマスク2 160に対応し、この例は図7にも示される。図7のタイミング図は、命令が命令パイプライン44の実行段階にあるときを示している。各命令内の下線の付されたレジスタは送信先レジスタ(結果が書き込まれる先のレジスタ)を示す。
領域1 164内では、ADD R3,R2の結果がレジスタR3(この場合、R3=R3+R2)に書き込まれる。ブロードキャストマスク1 158はビット位置3に「1
」が書き込まれているので、レジスタR3への全ての書込みはプロセッサ12によってHDP[31:0]72を通してブロードキャストされることになる。従って、図7のタイミング図の最初のクロックサイクル内で、ADD命令の結果(この結果はプロセッサ12内のR3に書き込まれている)はHDP[31:0]72を通してコプロセッサ14にブロードキャストされる。この結果がブロードキャストされているので、R3に対応するレジスタ番号もコプロセッサ14にREG[4:0]68により供給される。REGWR67をアサートすることによりコプロセッサ14に着信結果をそのレジスタの内の一つに書き込ませることができ、そしてENABLE_BROADCAST82をアサートして図2のトライステートバッファ96がこの結果を駆動してHDP[31:0]72に出力するようにする。また、領域指示子はH_REGION[N:1]128によりコプロセッサ14に供給される。従って、コードを領域1で実行している間、H_REGION[N:1]128(一のNビット値に対応する)は「1」を示す。
OR R4,R5命令がADD R3,R2命令に続き、そしてブロードキャスト領域1 164内に依然として留まるが、その送信先レジスタはR4である。ブロードキャストマスク1 158に従って、R4に書き込まれる結果はブロードキャストされないことになるので、OR命令の結果はコプロセッサ14に供給されず、レジスタ番号はREG[4:0]68を通して要求されず、そしてREGWR及びENABLE_BROADCASTの両方をデアサートする。
次の3つの命令、AND R6,R7,SUB R3,R4、及びMUL R9,R10は全てブロードキャスト領域2 166内に在る。R6,R3及びR9には下線が付され、これらがそれらの該当する命令の送信先レジスタであることを示している。一旦ブロードキャスト領域2 166に入ってしまうと、H_REGION[N:1]128は状態を変えて「2」を示すようになる。ブロードキャスト領域2 166は該当するブロードキャストマスク2 160を有し、このマスクによりレジスタR9及びR6への書込みのみがブロードキャストされる必要があることが示される。従って図7のタイミング図からわかるように、AND命令及びMUL命令の結果のみがブロードキャスト領域2 166に含まれつつHDP[31:0]72を通してコプロセッサ14にブロードキャストされる。各々のレジスタ番号もREG[4:0]68を通して送信され、そしてREGWR及びENABLE_BROADCAST82の両方がアサートされる。しかしながら、ブロードキャストマスク2 160はブロードキャスト領域2 166内ではR3への書込みがブロードキャストできないことを示しているので、SUB命令の結果はブロードキャストされない。
図8は図2の制御回路40の一部の一の実施形態をブロック図の形で示している。制御回路40の一部はブロードキャストマスク1レジスタ134、ブロードキャストマスク2レジスタ136、及びブロードキャストマスクMレジスタ138、マスク選択回路132、及び送信先比較ユニット142を含む。制御回路40はM個のブロードキャストマスクレジスタを含む。(ここで、3つのレジスタの例が示されているが、制御回路40は1つのみの、または2つのブロードキャストマスクレジスタを含むことができることにも留意されたい)。制御回路40はブロードキャストマスク1レジスタ134、ブロードキャストマスク2レジスタ136、及びブロードキャストマスクMレジスタ138に接続されるマスク選択回路132も含む。マスク選択回路はまた、H_REGION[N:1]を受信し、そして現在のブロードキャストマスク140を送信先比較ユニット142に供給する。送信先比較ユニット142は命令デコード42からの導電体90にも接続され、そしてENABLE_BROADCAST82をトライステートバッファ96に供給する。
動作状態において、ブロードキャストマスクレジスタ134,136及び138の値を結果信号83を通してロードすることができる。従って、一の命令をプロセッサ12に発
行して値をブロードキャストマスクレジスタにロードすることができるので、導電体90を通しての制御信号により、実際の値がMUX54から結果信号83として供給されている状態でブロードキャストマスクレジスタ134,136または138をロードする命令を実行するように通知することができる。従って本実施形態においては、ブロードキャストマスクレジスタ134,136及び138はユーザによる書込みが可能である。マスク選択回路132は、現在実行中のコード領域(すなわち現在のプログラム領域)を示すNビットの値であるH_REGION[N:1]128を受信する。(ここで、領域の数Yはプロセッサ12の構成に依存する形でおおよそブロードキャストマスクレジスタの数程度とすることができることに注目されたい)。マスク選択回路132を多くの異なる方法で構成してブロードキャストマスクレジスタ134,136,・・・,138の内の一つをH_REGION[N:1]128により示される各領域に関連付けることができる。一の実施形態においては、マスク選択回路132は特定のブロードキャストマスクを各ブロードキャスト領域に関連付ける。別の実施形態においては、マスク選択回路132はユーザによる書込みが可能なレジスタまたは他の回路を含むことにより選択したブロードキャストマスクを各ブロードキャスト領域に任意に関連付けることができ、従ってブロードキャストマスクを種々のブロードキャスト領域に共有させることができる。別の構成として、一のブロードキャストマスクを一のブロードキャスト領域に関連付ける操作は、データ処理システム10の状態に基づいて行なうことができ、そしてソフトウェアを使用せずに動的に変えることができる。
従ってマスク選択回路132はH_REGION[N:1]128を使用して該当するブロードキャストマスクレジスタ(134,136または138)を選択し、そしてそれを現在のブロードキャストマスク140として供給する。例えば、H_REGION[N:1]128が図6のブロードキャスト領域2 166を示す場合、マスク選択回路132はブロードキャストマスク2 160に対応する値(この値はブロードキャストマスクレジスタ134,136または138の内のいずれかに記憶することができる)を有するブロードキャストマスクレジスタを選択することになる。次に送信先比較ユニット142は、命令によってオペランドをいつGPR46内の送信先レジスタに書き込むべきかを判断し、そして命令デコード42により導電体90を通して供給される送信先レジスタを現在のブロードキャストマスク140と比較してブロードキャストを可能にすべきかどうかを判断する。比較により結果をブロードキャストすべきであることが示されると、ENABLE_BROADCAST82をアサートしてトライステートバッファ96が結果を駆動してHDP[31:0]72に出力できるようにする。
図9は図2のブロードキャスト領域制御ユニット120の一部の一の実施形態をブロック図の形で示している。ブロードキャスト領域制御ユニット120は、領域1上限レジスタ146、領域1下限レジスタ148、領域2上限レジスタ150、領域2下限レジスタ152、領域Y上限レジスタ154、領域Y下限レジスタ156、及び境界比較ユニット144を含む。領域1上限レジスタ146、領域1下限レジスタ148、領域2上限レジスタ150、領域2下限レジスタ152、領域Y上限レジスタ154、領域Y下限レジスタ156はREGION_SPECIFIERS 122を制御ユニット40から受信し、そしてこれらの特定子を記憶する。特定の特定子は各境界レジスタ146,148,150,152,154及び156に供給される。これらの特定子は制御回路40が結果83から選択するので命令実行結果値の関数である、または命令デコード90を通して、或いは他の別の手段により供給することができる。境界レジスタ146,148,150,152,154及び156は出力を境界比較ユニット144に供給する。境界比較ユニット144はまた、プログラム・カウンタユニット130からの導電体126に接続され、そしてH_REGION[N:1]128を出力として供給する。
動作状態において、領域1上限レジスタ146及び領域1下限レジスタ148によりブ
ロードキャスト領域1(例えば、図6のブロードキャスト領域1 164のような)に対応する開始命令アドレス及び終了命令アドレスを定義する。従って、プログラムカウンタ(プログラム・カウンタユニット130内の)が開始命令アドレスから終了命令アドレスの範囲(すなわち、領域1の上限から下限の範囲)に入ると、境界比較ユニット144はH_REGION[N:1]128を出力して領域1を通知する。同様にして、例えば150及び152または154及び156のような領域上限と領域下限の各ペアによりブロードキャスト領域を定義し、そしてプログラムカウンタがこれらの領域のいずれかに入ると、該当する領域がH_REGION[N:1]128として出力される。ここで図9に示すように、ブロードキャスト領域制御ユニット120は3つのブロードキャスト領域定義を含むが、どのような数Yの領域を定義することもできる。これらの上限レジスタ及び下限レジスタ(146,148,150,152,154及び156)は全て、これらのレジスタをロードするために値及び制御信号の両方を供給するREGION_SPECIFIERS 122を通してユーザが書込みできるものとすることができる。
別の実施形態においては、他の方法及びレジスタを使用してブロードキャスト領域を定義することができる。例えば、一のベースアドレス及び一のマスクを使用して下限及び上限ではなく各ブロードキャスト領域を定義することができる。また、ページ属性を使用してブロードキャスト領域をシステムの中に、プロテクション制御またはリロケーション制御(アドレス変換バッファ:table look aside buffer:TLBのような)を利用して定義することができる。別の実施形態においては、ブロードキャスト領域制御ユニット120を制御回路40内に配置することもできる。別の構成として、ブロードキャストマスクレジスタ及びブロードキャスト領域定義レジスタを組み合わせて特定のマスクを特定の領域により選択するようにすることができる。このようにして、マスク及び領域定義を更新するためのオーバーヘッドを減らすことができる。また上述したように、種々のブロードキャスト領域が一の同じブロードキャストマスクを共有すると、ブロードキャストマスクレジスタの数も減らすことができる。また、別の実施形態ではブロードキャスト領域情報をコプロセッサ14に供給する必要が無いのでH_REGION[N:1]128が不要になる。
本発明の別の実施形態においては、図6のブロードキャスト領域1〜4によりコプロセッサ14が選択的な実行モードポリシーを実行することも可能になる。ブロードキャスト領域は実行領域と言うこともできる。例えば、現在の実行領域(上述のH_REGION[N:1]128のような)を示す信号を渡すことにより、プロセッサ12は実行コンテキストをコプロセッサ14に供給することができる。すなわち、H_REGION[N:1]128を使用してコプロセッサ14にそれ自体をセットアップさせて種々の固有のデータ駆動動作モードで動作させることができ、この場合これらのモードはプロセッサ12の動作中にH_REGION[N:1]128の値により動的に選択される。例えば、現在の実行領域(すなわち、プログラムコードの内のどのセクションが現在実行されているか)に依存する形で、コプロセッサ14をH_REGION[N:1]128に従ってセットアップして種々のモードで動作させる、または種々の機能を実行させることができる。例えば、H_REGION[N:1]128が実行領域2を示す場合、コプロセッサ14はサイクリックリダンダンシーチェック(Cyclic Redundancy Check)をメモリへの転送に対して実行し、そしてH_REGION[N:1]128が実行領域3を示す場合、コプロセッサ14はフィルタリング機能、またはその代わりにハードウェア型ハッシング機能を実行する。従って、コプロセッサ14は現在の実行領域に応じてその機能を変えることができる。
本発明の幾つかの実施形態においては、H_REGION[N:1]128を通して現在の実行領域特定子を受信するのに応答してコプロセッサ14の動作を変更するというコンセプトにより、コプロセッサを簡素化できるのみならず、プロセッサ12とコプロセッ
サ14との間の命令転送に際して生じるオーバーヘッドを減らすことができる。コプロセッサ14はデータ駆動方式で動作することができ、この方式においては処理がプロセッサ12からHDP[31:0]72を通してのデータ転送、及びGPR46の更新されているレジスタのREG[4:0]68を通しての通知に応答して行なわれる。ブロードキャストマスクのコンセプトを採用すると、厳密なデータ駆動項目のみがコプロセッサ14に渡される。このようにして、REG[4:0]68が示し、プロセッサ12が実行している命令の送信先レジスタに対応する各値はさらに、コプロセッサ14が実行する特定の動作を現在の実行コンテキストの関数として通知するように機能する。プロセッサ12が命令を実行すると、GPR46内の特定のレジスタが目標となって、レジスタブロードキャスト動作が行なわれるときに、コプロセッサ14により選択される機能が間接的に有効になる。さらに、REG[4:0]68の特定コードが対応する選択される機能は、H_REGION[N:1]が示す実行コンテキストが変化すると変化し、プロセッサ12によりコプロセッサ14を明示的に再構成する際のオーバーヘッドを無くすことができる。
上述の明細書においては、本発明を特定の実施形態を参照して記載してきた。しかしながら、この技術分野の当業者であれば種々の変形及び変更を以下に示す請求項に示される本発明の技術範囲から逸脱しない範囲において実施形態に加え得ることを理解できるであろう。例えば、本明細書に記載される回路を単一集積回路、または一つ以上の集積回路、或いはハードウェア及びはソフトウェアの組み合わせにより具現化することができる。従って、本明細書及び図面は制限的な意味ではなく例示として捉えられるべきであり、そのような変形の全ては本発明の技術範囲に含まれるべきものであると考えられる。
効果、他の利点、及び問題解決法が特定の実施形態に関連する形で上に記載されてきた。しかしながら、効果、利点、問題解決法、及びこのような効果、利点、または問題解決法をもたらし、またはさらに顕著にさせるすべての要素(群)が、いずれかの請求項または全ての請求項の必須の、必要な、または基本的な特徴、或いは要素であると考えられるべきではない。この明細書で使用されるように、「comprises」、「comprising」という用語、または他のすべてのこれらの変形は包括的な意味を指すものであり、例えば一連の要素を備えるプロセス、方法、製品、または装置がこれらの要素のみを含む、ということではなく、明らかには挙げられていない、またはそのようなプロセス、方法、製品、または装置に固有の他の要素を含むことができる。
本発明は例を通して示されるが以下の図面により制限されるものではなく、これらの図面では同様な参照符号は同様な要素を示す。
本発明によるデータ処理システムの一実施形態を示すブロック図。 図1のプロセッサの一部の一実施形態を示すブロック図。 図1のコプロセッサの一部の一実施形態を示すブロック図。 レジスタブロードキャスト動作の一実施形態を示すタイミング図。 ブロードキャストマスクレジスタの一実施形態を示すブロック図。 ブロードキャスト領域の一実施形態を示すブロック図。 レジスタブロードキャスト動作の別の実施形態を示すタイミング図。 図2の制御回路の一部の一実施形態を示すブロック図。 図2のブロードキャスト領域制御ユニットの一部の一実施形態を示すブロック図。
当業者であれば、図の構成要素は簡潔性及び明瞭性のために例示されており、そして必ずしも実際の寸法通りには描かれていないことがわかるであろう。例えば、図の構成要素の幾つかの寸法は他の構成要素に対して誇張されていて本発明の実施形態の理解を深めるのに役立つようになっている。

Claims (5)

  1. 複数のレジスタを含むレジスタファイル及び同レジスタファイルに対応するブロードキャスト特定子を有するプロセッサが、書込みトランザクションを前記レジスタファイルにコプロセッサ通信バスを介して選択的にブロードキャストする方法であって、
    前記レジスタファイルに書き込むべきオペランドを、プロセッサが受信する工程と、
    前記レジスタファイルの複数のレジスタの内の一つを、プロセッサが選択する工程と、
    前記レジスタファイルに書き込むべき前記オペランドを、プロセッサが前記レジスタファイルに供給する工程と、
    前記ブロードキャスト特定子が複数のビットを含み、各ビットが複数のレジスタの1つに対応し、該ブロードキャスト特定子に基づいて、前記レジスタファイルに書き込むべきオペランドを、プロセッサが前記コプロセッサ通信バスを介して選択的に供給する工程と、からなる方法。
  2. 前記ブロードキャスト特定子は、前記プロセッサ内の複数のブロードキャスト特定子のうちの1つであって、前記複数のブロードキャスト特定子はそれぞれ、前記プロセッサの少なくとも1つのブロードキャスト領域に対応する請求項1に記載の方法。
  3. プロセッサが備える複数のレジスタと、
    同複数のレジスタの内の一つに対して、プロセッサが書込み動作を実行する回路と、
    前記書込み動作実行用のオペランドを前記複数のレジスタの内の一つに供給する導電体群と、
    一組のブロードキャスト特定子を記憶するための記憶回路であって、ブロードキャスト特定子はそれぞれ複数のブロードキャスト指示子からなり、各ブロードキャスト指示子は複数のレジスタのうちの1つに対応して、対応するレジスタへの書き込みはブロードキャストされるべきか否かを指示する、前記記憶回路と、
    前記複数のレジスタの内の一つと前記ブロードキャスト特定子の内の選択された一つと、を比較し、ブロードキャストイネーブル信号を供給する、プロセッサ内の比較回路と、
    同比較回路に接続されて、コプロセッサ通信バスと通信するポートであって、前記ブロードキャストイネーブル信号に応答して前記オペランドを選択的に供給するための、少なくとも一つのコプロセッサ通信バス信号を送信する、プロセッサ内のポートと、
    を備えるプロセッサ。
  4. 更に、アドレスの位置を示すためのプログラムカウンタユニットと、
    同プログラムカウンタユニットから示されたアドレス位置が、一組のブロードキャスト領域内にある時を示すために、同プログラムカウンタユニットに接続されたブロードキャスト領域制御ユニットと、
    からなる請求項3に記載のプロセッサ。
  5. に、前記ブロードキャストイネーブル信号は、対応するブロードキャスト指示子が複数のレジスタのうちの1つへのブロードキャストを指示し、対応するブロードキャスト指示子が複数のレジスタのうちの1つにブロードキャスト指示しない時は、ブロードキャスト信号はブロードキャストを指示しない、前記比較回路と、
    オペランドを供給するための少なくとも1つのプロセッサ通信バス信号を含み、前記ブロードキャストイネーブル信号はブロードキャストを可能にし、前記ブロードキャストイネーブル信号がブロードキャストをイネーブルにしないときはオペランドを供給しない前記ポートと、
    からなる請求項3に記載のプロセッサ。
JP2003544586A 2001-11-13 2002-10-30 プロセッサをコプロセッサに接続する方法及び装置 Expired - Fee Related JP4098241B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/054,577 US7228401B2 (en) 2001-11-13 2001-11-13 Interfacing a processor to a coprocessor in which the processor selectively broadcasts to or selectively alters an execution mode of the coprocessor
PCT/US2002/034955 WO2003042819A1 (en) 2001-11-13 2002-10-30 Method and apparatus for interfacing a processor to a coprocessor

Publications (3)

Publication Number Publication Date
JP2005528669A JP2005528669A (ja) 2005-09-22
JP2005528669A5 JP2005528669A5 (ja) 2006-01-05
JP4098241B2 true JP4098241B2 (ja) 2008-06-11

Family

ID=21992061

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003544586A Expired - Fee Related JP4098241B2 (ja) 2001-11-13 2002-10-30 プロセッサをコプロセッサに接続する方法及び装置

Country Status (7)

Country Link
US (1) US7228401B2 (ja)
EP (1) EP1446717A1 (ja)
JP (1) JP4098241B2 (ja)
KR (1) KR100981033B1 (ja)
CN (1) CN1290003C (ja)
TW (1) TWI313822B (ja)
WO (1) WO2003042819A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003256870A1 (en) * 2002-08-09 2004-02-25 Intel Corporation Multimedia coprocessor control mechanism including alignment or broadcast instructions
US6986023B2 (en) * 2002-08-09 2006-01-10 Intel Corporation Conditional execution of coprocessor instruction based on main processor arithmetic flags
US7392368B2 (en) * 2002-08-09 2008-06-24 Marvell International Ltd. Cross multiply and add instruction and multiply and subtract instruction SIMD execution on real and imaginary components of a plurality of complex data elements
US20050131561A1 (en) * 2003-12-16 2005-06-16 Dell Products L.P. Information handling system including docking station with digital audio capability
US7395410B2 (en) * 2004-07-06 2008-07-01 Matsushita Electric Industrial Co., Ltd. Processor system with an improved instruction decode control unit that controls data transfer between processor and coprocessor
US7490223B2 (en) * 2005-10-31 2009-02-10 Sun Microsystems, Inc. Dynamic resource allocation among master processors that require service from a coprocessor
US8914618B2 (en) 2005-12-29 2014-12-16 Intel Corporation Instruction set architecture-based inter-sequencer communications with a heterogeneous resource
US7921195B2 (en) * 2008-06-09 2011-04-05 International Business Machines Corporation Optimizing service processing based on business information, operational intelligence, and self-learning
CN102207919A (zh) 2010-03-30 2011-10-05 国际商业机器公司 加速数据传输的处理单元、芯片、计算设备和方法
US20130326192A1 (en) * 2011-12-22 2013-12-05 Elmoustapha Ould-Ahmed-Vall Broadcast operation on mask register
US9336000B2 (en) * 2011-12-23 2016-05-10 Intel Corporation Instruction execution unit that broadcasts data values at different levels of granularity
CN110471699B (zh) 2011-12-23 2023-07-28 英特尔公司 用于指令处理的处理器核、方法和系统
WO2013101232A1 (en) 2011-12-30 2013-07-04 Intel Corporation Packed rotate processors, methods, systems, and instructions
US9417873B2 (en) 2012-12-28 2016-08-16 Intel Corporation Apparatus and method for a hybrid latency-throughput processor
US9361116B2 (en) 2012-12-28 2016-06-07 Intel Corporation Apparatus and method for low-latency invocation of accelerators
US10140129B2 (en) 2012-12-28 2018-11-27 Intel Corporation Processing core having shared front end unit
US10346195B2 (en) * 2012-12-29 2019-07-09 Intel Corporation Apparatus and method for invocation of a multi threaded accelerator
US9785444B2 (en) 2013-08-16 2017-10-10 Analog Devices Global Hardware accelerator configuration by a translation of configuration data
CN104298639B (zh) * 2014-09-23 2017-03-15 天津国芯科技有限公司 主处理器与若干协处理器的嵌入式连接方法及连接接口
US10409601B2 (en) * 2017-12-29 2019-09-10 Intel Corporation Apparatus and method for loop flattening and reduction in a single instruction multiple data (SIMD) pipeline
US10719329B2 (en) * 2018-06-28 2020-07-21 Arm Limited Apparatus and method for using predicted result values
US12026555B2 (en) 2020-12-15 2024-07-02 International Business Machines Corporation Adjunct processor command-type filtering
US11487556B2 (en) 2020-12-15 2022-11-01 International Business Machines Corporation Command-type filtering based on per-command filtering indicator

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5117350A (en) * 1988-12-15 1992-05-26 Flashpoint Computer Corporation Memory address mechanism in a distributed memory architecture
US5283881A (en) * 1991-01-22 1994-02-01 Westinghouse Electric Corp. Microcoprocessor, memory management unit interface to support one or more coprocessors
EP0519348B1 (en) 1991-06-19 1999-07-28 Hewlett-Packard Company Co-processor supporting architecture adapted to a processor which does not natively support co-processing
US6047122A (en) * 1992-05-07 2000-04-04 Tm Patents, L.P. System for method for performing a context switch operation in a massively parallel computer system
US5923893A (en) * 1997-09-05 1999-07-13 Motorola, Inc. Method and apparatus for interfacing a processor to a coprocessor
US6505290B1 (en) 1997-09-05 2003-01-07 Motorola, Inc. Method and apparatus for interfacing a processor to a coprocessor
US5983338A (en) 1997-09-05 1999-11-09 Motorola, Inc. Method and apparatus for interfacing a processor to a coprocessor for communicating register write information
US6223277B1 (en) * 1997-11-21 2001-04-24 Texas Instruments Incorporated Data processing circuit with packed data structure capability
US6138185A (en) * 1998-10-29 2000-10-24 Mcdata Corporation High performance crossbar switch

Also Published As

Publication number Publication date
JP2005528669A (ja) 2005-09-22
KR20050058240A (ko) 2005-06-16
CN1610880A (zh) 2005-04-27
CN1290003C (zh) 2006-12-13
WO2003042819A1 (en) 2003-05-22
EP1446717A1 (en) 2004-08-18
TWI313822B (en) 2009-08-21
US7228401B2 (en) 2007-06-05
TW200300230A (en) 2003-05-16
KR100981033B1 (ko) 2010-09-10
US20030093648A1 (en) 2003-05-15

Similar Documents

Publication Publication Date Title
JP4098241B2 (ja) プロセッサをコプロセッサに接続する方法及び装置
JP2987308B2 (ja) 情報処理装置
JP3678427B2 (ja) 論理レジスタ・ファイルのレジスタ群を特定する2種類の命令を実行するための方法および装置
JP4829541B2 (ja) マルチレベル・レジスタ・ファイルを有するディジタル・データ処理装置
US20010049763A1 (en) Methods and apparatus for scalable array processor interrupt detection and response
US7600096B2 (en) Coprocessor extension architecture built using a novel split-instruction transaction model
KR980010763A (ko) 연산처리장치
JPH09311786A (ja) データ処理装置
JP4226085B2 (ja) マイクロプロセッサ及びマルチプロセッサシステム
US6430684B1 (en) Processor circuits, systems, and methods with efficient granularity shift and/or merge instruction(s)
US6594711B1 (en) Method and apparatus for operating one or more caches in conjunction with direct memory access controller
JP2001195384A (ja) 処理装置及び処理装置の入出力ピンを制御する方法
KR100465388B1 (ko) Risc 구조의 8비트 마이크로 제어기
US5410721A (en) System and method for incrementing a program counter
US5734927A (en) System having registers for receiving data, registers for transmitting data, both at a different clock rate, and control circuitry for shifting the different clock rates
JP3616556B2 (ja) 拡張命令を処理する並列プロセッサ
EP0840223B1 (en) Microcomputer capable of accessing an external memory
JP3705811B2 (ja) 再構成可能なプログラム状態語を有するマイクロコントローラ
US5666508A (en) Four state two bit recoded alignment fault state circuit for microprocessor address misalignment fault generation
US6697931B1 (en) System and method for communicating information to and from a single chip computer system through an external communication port with translation circuitry
EP0840221A1 (en) Microcomputer with packet bus
EP1235139B1 (en) System and method for supporting precise exceptions in a data processor having a clustered architecture
JPH05165641A (ja) シングルチップマイクロコンピュータ
JP4758538B2 (ja) データ処理装置および制御方法
Penton et al. Cortex-R4: A mid-range processor for deeply-embedded applications

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051026

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051026

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061226

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070326

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070403

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070622

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070807

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071026

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20071203

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080304

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080312

R150 Certificate of patent or registration of utility model

Ref document number: 4098241

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110321

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20120321

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130321

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20130321

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20140321

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees