JP3773470B2 - データ処理装置内でのコプロセッサ命令の取り扱い - Google Patents
データ処理装置内でのコプロセッサ命令の取り扱い Download PDFInfo
- Publication number
- JP3773470B2 JP3773470B2 JP2002182992A JP2002182992A JP3773470B2 JP 3773470 B2 JP3773470 B2 JP 3773470B2 JP 2002182992 A JP2002182992 A JP 2002182992A JP 2002182992 A JP2002182992 A JP 2002182992A JP 3773470 B2 JP3773470 B2 JP 3773470B2
- Authority
- JP
- Japan
- Prior art keywords
- coprocessor
- data processing
- instruction
- virtual
- coprocessors
- 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
Links
- 238000012545 processing Methods 0.000 claims description 71
- 238000013507 mapping Methods 0.000 claims description 35
- 238000000034 method Methods 0.000 claims description 24
- 230000008859 change Effects 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 4
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 claims description 2
- 230000004044 response Effects 0.000 claims 1
- 230000002093 peripheral effect Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent 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)
Description
【発明の属する技術分野】
本発明は、データ処理装置においてコプロセッサの命令を取り扱うための技術に関する。
【0002】
【従来の技術】
通常、データ処理装置はデータ処理命令のシーケンスを処理するためのプロセッサコアを内蔵している。このデータ処理装置の性能を改善するために、特定の計算を特に取り扱うようになっている1つ以上のコプロセッサを設けることが知られている。一例として、汎用プロセッサは浮動小数点計算を行うのに良好に適しているとは言えないので、かかる計算を取り扱うための特殊な浮動小数点ユニット(FPU)の開発が行われている。FPUは浮動小数点計算を取り扱うのにプロセッサコアが使用できるコプロセッサとして実現できる。別の例として、特にMPEGの符号化/アクセレレーションを実行するためのコプロセッサを設けることもできる。
【0003】
多数のコプロセッサを内蔵するデータ処理装置では、通常プロセッサコアが処理すべきデータ処理命令のシーケンスには適当なコプロセッサによって取り扱う多数のコプロセッサ命令を含む。従って、プロセッサコアがかかるコプロセッサ命令に出会うと、プロセッサコアはこのコプロセッサ命令を適当なコプロセッサへ送って実行させる。特定のコプロセッサ命令に対する適当なコプロセッサを識別するために、通常各コプロセッサ命令はそのコプロセッサ命令を実行すべきコプロセッサをユニークに識別するコプロセッサ命令に関連したコプロセッサ番号を有する。
【0004】
【発明が解決しようとする課題】
コプロセッサ番号を指定するために設定されるビット数により、特定できるコプロセッサの数が制限されることが理解できよう。例えばコプロセッサ番号を指定するのに4ビットを使用する場合、16個までのコプロセッサをユニークに識別できることは明らかである。一般にビットスペースは貴重である。従って、特定の実現例で望まれるコプロセッサの数が、コプロセッサ番号を指定するのに割り当てられるその時のビットによって、ユニークに識別できる数よりも大きくなった場合、単にコプロセッサの場合を指定するのに使用されるビット数を増し、所望するコプロセッサの全てをユニークに識別できるようにすることは一般にできない。
【0005】
例えばコプロセッサ番号は命令自身の内部のフィールドとして指定されることが多い。この命令は所定の数のビット、例えば32ビットで指定しなければならならず、種々の情報、例えば命令を実行するための条件、必要な計算の識別、ソースレジスタおよび目的レジスタの識別などを含まなければならない。従って、命令内の各ビットは利用できるビット内で必要な情報の全てを指定できるように、極めて注意深く使用しなければならない。従って、コプロセッサ番号を指定し、よって16個のコプロセッサをユニークに識別できるようにするのに、4ビットを使用する先の例を検討すると、17個以上のコプロセッサを設けたい場合、後でコプロセッサ番号を指定するのに5ビットを使用できるようになる可能性はない。
【0006】
更に所定の実現例では、将来の使用のために1つ以上の可能なコプロセッサの番号を保留することは可能であるが、このことは特定の設計において内蔵できるコプロセッサの番号を制限する。
【0007】
従って、データ処理装置の設計で、より多数のコプロセッサを追加できることが好ましいので、これらプロセッサにコプロセッサ番号を割り当てる問題もより深刻となっている。
【0008】
【課題を解決するための手段】
本発明の第1の特徴によれば、データ処理命令のシーケンスを処理するためのプロセッサコアと、前記データ処理命令のシーケンス内で提供されるコプロセッサ命令を実行するための複数のコプロセッサとを備え、各コプロセッサ命令が、これら複数のコプロセッサのうちのどれがそのコプロセッサ命令を実行するのかを識別するのに使用され、各コプロセッサ命令に関連し、そのコプロセッサ命令を実行する前記複数のコプロセッサ中の幾つかのコプロセッサが存在する仮想的コプロセッサ番号を有するデータ処理装置において、該データ処理装置が、各仮想コプロセッサ番号に対して、マッピングに基づき、どのプロセッサがこの仮想的コプロセッサ番号に割り当てられており、この仮想的コプロセッサ番号に関連する命令を実行するのかを決定する、コプロセッサ決定論理回路を更に含む、データ処理装置が提供される。
【0009】
本発明によれば、データ処理命令のシーケンスを処理する際の特定の時点でコプロセッサの全てが使用できるようになっている必要はない。従って、本発明によれば、必要な特定のコプロセッサに割り当てできる多数の仮想的コプロセッサ番号が提供される。従って、コプロセッサ命令はこの命令に関連した1つの仮想的コプロセッサ番号を有することができ、コプロセッサ決定論理回路はその仮想的コプロセッサ番号に対し、この仮想的コプロセッサ番号をどのコプロセッサに割り当てるかを決定するようになっている。この決定はマッピングを基準にして行われる。
【0010】
この方法によれば、コプロセッサを指定するのに利用できるコプロセッサ番号の数よりも多い数のコプロセッサをデータ処理装置に内蔵することが可能となる。
【0011】
このデータ処理装置は初期化の際に一回マッピングを設定する構成とする。これとは異なり、データ処理装置の作動中にマッピングをダイナミックに変更できるようにする機構を設けることもできる。好ましい実施例では、前記プロセッサコアがマッピングの変更を呼び出すことにより、任意の仮想的コプロセッサ番号に対し、このコプロセッサ番号が割り当てられ、よってそのコプロセッサ番号を有するコプロセッサ命令を実行する責任を果たすコプロセッサの変更が可能となる。従って、かかる実施例ではプロセッサコアは任意の時点でマッピングの変更を呼び出しできる。
【0012】
一実施例ではプロセッサコアはマッピングの変更を直接要求してもよいし、また、これとは異なり、マッピングを変更するための別個の機構を設けることもできることが理解できよう。
【0013】
実際には、コプロセッサは2つのカテゴリーに分けることができる。第1のカテゴリーは常時利用できなければならない包括的コプロセッサ、例えばFPUコプロセッサまたはデバッグおよび制御コプロセッサである。かかるコプロセッサには対応する汎用コプロセッサをユニークに識別する固定されたコプロセッサ番号が割り当てられ、これに対してコプロセッサ決定論理回路を使用する必要はないようにする事が好ましい。コプロセッサの第2のカテゴリーはアプリケーション特定コプロセッサであり、そのうちの一例は先に述べたMPEG用エンコーディング/アクセレレーションコプロセッサである。特定のアプリケーション、アプリケーションスレッド、タスクなどの実行中に、利用できる状態にならなければならないかかる多数のアプリケーション特定コプロセッサが一般に存在する。利用できる状態になっていなければならないこれらアプリケーション特定コプロセッサはかかるアプリケーション、アプリケーションスレッド、タスクなどの間で明らかに変化する。好ましい実施例ではこのカテゴリーのコプロセッサには仮想的コプロセッサ番号が提供される。従って、特定の時点で特定の仮想的コプロセッサ番号をどのアプリケーション特定コプロセッサに割り当てるかを決定するようになっているコプロセッサ決定論理回路により仮想的コプロセッサ番号とアプリケーション特定コプロセッサとのマッピングを行うようになっている。
【0014】
このマッピングはコプロセッサ決定論理回路による参照のためにデータ処理装置内の適当なロケーションに記憶できると理解できよう。しかしながら、好ましい実施例では、前記コプロセッサ決定論理回路は、コプロセッサ命令に関連する仮想的コプロセッサ番号を有するコプロセッサ命令を実行する責任を果たすコプロセッサを、仮想的コプロセッサ番号ごとに識別するマッピングを維持するための記憶装置を含み、前記コプロセッサ決定論理回路は前記プロセッサコアに応答し、マッピングを変更するようになっている。好ましい実施例では、コプロセッサ決定論理回路内の多数のレジスタ内に実際にマッピングが設けられる。
【0015】
プロセッサコアにより適当なコプロセッサにコプロセッサ命令を発行する多数の異なる方法があることが理解できよう。例えば各コプロセッサ命令に関連したコプロセッサ番号を参照し、次にこのコプロセッサ番号によって決定される適当なコプロセッサにコプロセッサ命令をルーティングするための所定の分配論理回路をコア内またはコア外のいずれかに設けることができる。コプロセッサ命令に関連した仮想的コプロセッサ番号を有するコプロセッサ命令に対して、その分配論理回路が正しく作動できるようにするために、その論理回路は各仮想的コプロセッサ番号に対し、その仮想的コプロセッサ番号が割り当てられたコプロセッサを識別するための信号をコプロセッサ決定論理回路から受信する。
【0016】
しかしながら、好ましい実施例では、前記プロセッサコアはバスを介し、前記複数のコプロセッサに結合されており、データ処理命令のシーケンス内で提供される任意のコプロセッサ命令をバスに出力するようになっており、前記コプロセッサ決定論理回路は、コプロセッサが実行すべきコプロセッサ命令を識別するのに使用される仮想的コプロセッサ番号を各コプロセッサに通知するようになっており、各コプロセッサはコプロセッサ命令に関連する仮想的コプロセッサ番号を参照し、バス上に存在するコプロセッサ命令を実行すべきかどうかを決定するようになっている。従って、かかる実施例では個々のコプロセッサは各コプロセッサ命令に関連したコプロセッサ番号に基づき、これらコプロセッサが実行しなければならないのはどのコプロセッサ命令であるかを決定する役割を果たす。このコプロセッサ決定論理回路はそのコプロセッサによって実行すべきコプロセッサ命令を識別するのに使用される仮想的コプロセッサ番号を各コプロセッサに通知し、よって所望するコプロセッサによって各コプロセッサ命令を取り扱うことが可能となる。
【0017】
プロセッサコアは、データ処理命令のシーケンスの実行中の、必要とするいかなる時点においても、マッピングの変更を呼び出すことが可能な構成とし得ることが解る。以下の記載において、「タスク」と言う語は、コプロセッサの所定の組をアクセスすることを要求する任意のアプリケーション、アプリケーションスレッド、タスク、ルーチン等を意味するものとして使用される。
好ましい実施例では、前記プロセッサコアはマルチタスクからのデータ処理命令を実行するようになっており、タスク間で必要とされるコプロセッサが変わるようになっており、現在実行中のタスクが必要とするコプロセッサに仮想的コプロセッサ番号が割り当てられるよう、タスク切り替え後に前記プロセッサコアがマッピングを変更するようになっている
【0018】
従って、かかるマルチタスクの例は、マルチタスクオペレーティングシステムの制御によりプロセッサコアがデータ処理命令を実行中に切り替えられる個々のタスクとなる。しかしながら、本明細書で定義する語としてのマルチ「タスク」の存在にとって、マルチタスクオペレーティングシステムを使用するための要件は存在しないことが理解できよう。
【0019】
タスクの切り替え後にマッピングを変更する方法は多数あることが理解できよう。第1の方法は、プロセッサコアがタスク切り替え時およびタスク切り替え後の任意のデータ処理命令の処理前にプロセッサコアがマッピングを変更させる方法である。この方法は実現が容易であり、タスクの切り替え後のコプロセッサ命令が処理される前に、仮想的コプロセッサ番号とコプロセッサとの間の正しいマッピングが所定の場所に存在することを保証する。しかしながら、再マッピング方法では一般にかなりの時間がかかり、従って、この方法はどのタスク切り替えに対しても時間オーバーヘッドを必要とする。
【0020】
別の方法はタスク切り替え時にコプロセッサへのアクセスを一時的にディスエーブルし、結果として、プロセッサコアがコプロセッサ命令を処理しようとする時、例外が検出され、例外ハンドラーが呼び出される方法である。この例外ハンドラーはコプロセッサへのアクセスを再イネーブルし、マッピングを変更させるようになっている。この方法によれば、特定のタスクへのタスク切り替えの後、次のタスクの切り替えが行われる前にコプロセッサへのアクセスをそのタスクが実際に必要としない場合、そのタスクのための再マッピングを実行するのに必要なオーバーヘッドが存在しなくなる。コプロセッサ命令が不正確に処理されないように保証するために、プロセッサコアがコプロセッサへのコプロセッサ命令を発行しようと試みる場合、未定義命令の例外が生じるように、タスク切り替え後にコプロセッサへのアクセスを一時的にディスエーブルする。これによって例外ハンドラーが呼び出される。この呼び出しは好ましい実施例では例外を取り扱うのに移用されるソフトウェアルーチンである。この特殊なケースでは、例外ハンドラーはコプロセッサへのアクセスを再イネーブルし、実行中のその時のタスクに従ってマッピングを変更するようになっている。
【0021】
コプロセッサへのアクセスを一時的にディスエーブルできる方法は多数あることが理解できよう。第1に、マッピングが有効でないことを表示するための値をコプロセッサ決定論理回路のレジスタ内に記憶できる。これとは異なり、コプロセッサのアクセスをディスエーブルするための値をプロセッサコアのレジスタ内に書き込むこともできる。好ましい実施例ではデバッグおよび制御機能を実行するよう、プロセッサコア内に実際に1つ以上のコプロセッサを設け、好ましい実施例ではこれら特定のコプロセッサはディスエーブルされない。
【0022】
コプロセッサ決定論理回路を配置できる方法は種々存在することが理解できよう。例えばコプロセッサ決定論理回路はコプロセッサごとに1つのレジスタを含むことができ、各コプロセッサに割り当てられる仮想的コプロセッサ番号(割り当てられる場合)は対応するレジスタに記憶される。これによってコプロセッサ決定論理回路から各コプロセッサに容易に出力信号を発生し、そのコプロセッサに割り当てられた仮想的コプロセッサ番号をそのコプロセッサに通知することができる。しかしながら、かかる方法はプログラムのモデルの見地から比較的複雑となる。その理由は、任意の時点で2つ以上のコプロセッサに同じ仮想的コプロセッサ番号が割り当てられないことを保証するルーチンを所定位置に挿入しなければならないからである。更に、比較的多数のレジスタを使用しなければならない。
【0023】
従って、好ましい実施例では、前記コプロセッサ決定論理回路の記憶装置は仮想的コプロセッサ番号の割り当てられるコプロセッサを識別するコプロセッサ識別子を仮想的コプロセッサ番号ごとに記憶するようになっており、前記コプロセッサ決定論理回路は、前記記憶装置の内容を受信し、コプロセッサに割り当てられた仮想的コプロセッサ番号を識別するコプロセッサ番号信号をコプロセッサごとに発生するようになっているデコーダを更に備える。
【0024】
この方法は、上記別の方法よりも一般に少ない記憶容量で済む。例えばデータ処理装置の設計で10個のアプリケーション特定コプロセッサが設けられ、そのうちの最大4個しか特定のタスクに使用されない場合、仮想的コプロセッサ番号の表示を10個のコプロセッサに対して記憶しなければならない代わりに、好ましい方法ではそのコプロセッサ番号が割り当てられたコプロセッサの表示を4個のコプロセッサ番号に対して記憶することとなるからである。次に、コプロセッサに割り当てられた仮想的コプロセッサ番号(割り当てられている場合)を識別するために、各コプロセッサに送られる信号を記憶装置の内容から発生するためにデコーダが使用される。
【0025】
好ましい実施例では、コプロセッサをイネーブルすべきかどうかを識別するイネーブルフラグを、各コプロセッサ識別子と共に前記記憶装置が更に記憶するようになっており、前記デコーダは、コプロセッサがイネーブルされているかどうかを表示するイネーブル信号をコプロセッサごとに発生するようになっている。このようなイネーブル信号を使用することには、コプロセッサに対して発生された対応するコプロセッサ番号信号に更なる資質を与えることが可能となり、特定のコプロセッサがコプロセッサ番号信号を受信したとしても、そのコプロセッサは、そのコプロセッサがイネーブルされていることをイネーブル信号が確定した場合にのみ、その仮想的コプロセッサ番号を有するコプロセッサ命令を処理する。
【0026】
好ましい実施例では、前記デコーダは複数のデコーディング要素を備え、1つのデコーディング要素が各コプロセッサに関連しており、各デコーディング要素は記憶装置の内容を受信し、コプロセッサ番号信号および対応するコプロセッサのためのイネーブル信号を識別する出力信号を発生するようになっている。従って、かかる好ましい実施例では、各コプロセッサに対してコプロセッサ番号信号とイネーブル信号とは別々に発生される。
【0027】
更に好ましい実施例では、各デコーディング要素は前記記憶装置内の前記コプロセッサ識別子と前記関連するコプロセッサのコプロセッサ識別子とを比較するコンパレータ論理回路と、対応するコプロセッサに対するコプロセッサ番号信号をコンパレータ論理回路の出力から発生するエンコーダとを備える。明らかに記憶装置内のコプロセッサ識別子と関連するコプロセッサのコプロセッサ識別子とが一致していることをコンパレータ論理回路が表示した場合、エンコーダは対応する仮想的コプロセッサ番号を識別する信号をコプロセッサに対して発生するようになっている。コンパレータの論理回路が一致していないと表示した場合、コプロセッサ番号信号は種々の形態をとり得ることが明らかである。例えばそのコプロセッサが現在使用されていないことをコプロセッサに表示するデフォルト値を割り当てできる。
【0028】
しかしながら、好ましい実施例では各デコーディング要素は、コンパレータ論理回路の出力および前記記憶装置からのイネーブルフラグに基づき、対応するコプロセッサに対するイネーブル信号を発生するイネーブル信号発生論理回路を更に備える。この方法では、コンパレータ論理回路が一致を識別しない時に、コプロセッサ番号信号の値が何であるかは関係のない事である。その理由は、任意の事象においてイネーブル信号は対応するコプロセッサに対し、イネーブルされていないことを表示し、よってコプロセッサがイネーブルされた状態となり、それに割り当てられた対応する仮想的コプロセッサ番号を識別するコプロセッサ番号信号を受信するまで、コプロセッサはコプロセッサ命令を処理しないかである。
【0029】
本発明の第2の特徴によれば、データ処理命令のシーケンスを処理するプロセッサコアおよび前記データ処理命令のシーケンス内で提供されるコプロセッサ命令を実行する複数のコプロセッサを有するデータ処理装置に、コプロセッサ命令を実行させるように、該データ処理装置を作動させる方法において、(i)前記複数のコプロセッサのうちのどれがコプロセッサ命令を実行すべきかを識別するのに使用される仮想的コプロセッサ番号と各コプロセッサ命令とを関連付ける工程であり、各コプロセッサ命令にそのコプロセッサ命令を実行し得る複数のコプロセッサ内の幾つかのコプロセッサが存在する関連する仮想的コプロセッサ番号を関連づける工程と、(ii)仮想的コプロセッサ番号に関連する命令をどのコプロセッサが実行するかをマッピングに基づき仮想的コプロセッサ番号ごとに決定する工程を備えた、コプロセッサ命令を実行するためにデータ処理装置を作動させる方法が提供される。
【0030】
以下、添付図面に示された本発明の好ましい実施例を参照し、単なる例として本発明について説明する。
【0031】
【発明の実施の形態】
図1は、本明細書ではCPUコアとも称す主プロセッサ130と浮動小数点ユニット(FPU)コプロセッサ100と、多数の(本例では10個の)再マップ可能なコプロセッサ110と、メモリ140と、コプロセッサ決定周辺装置150とを含むデータ処理装置10を示す。主プロセッサ130と、メモリ140と、コプロセッサ決定周辺装置150とは、主バス160(システムバスとも称す)を介してリンクされている。コプロセッサバス120は主プロセッサ130を種々のコプロセッサ100、110にリンクしている。主プロセッサ130の外部のコプロセッサの他に、主プロセッサ130内に1つ以上のコプロセッサ105、115を設けることもできる。図1の例では、デバッグ機能および制御機能を実行するために、本明細書でCPU14およびCP15とも称す2つのコプロセッサ105および115が主プロセッサ130内に設けられている。
【0032】
作動時に主プロセッサ130はデータ処理命令のシーケンスを実行する。これらデータ処理命令はメモリ140およびシステムバス160に接続できる他の部品、例えばキャッシュメモリまたは入出力システム(簡潔にするために、かかる別の論理要素は図1から除いてある)との相互作用を含む一般的タイプのデータ処理演算を制御する。データ処理命令のシーケンス内にはコプロセッサ命令が埋め込まれている。主プロセッサ130はこれらコプロセッサ命令が付加コプロセッサによって実行すべきタイプであると認識し、好ましい実施例ではこの認識はコプロセッサ命令内のコプロセッサ番号フィールドを参照して行われる。従って、主プロセッサ130はコプロセッサバス120にこれらコプロセッサ命令を発生し、これらコプロセッサ命令はこのコプロセッサバスから付加コプロセッサによって受信される。付加コプロセッサはどのコプロセッサ番号がコプロセッサに割り当てられているかを知っているので、付加コプロセッサは対応するコプロセッサ番号を含む受信したコプロセッサの命令を実行する。
【0033】
コプロセッサ命令内のコプロセッサ番号のフィールドのサイズにより指定できるユニークなコプロセッサ番号の数が決定される。従って、一例としてコプロセッサ番号のフィールドの長さが4ビットである場合、対応するコプロセッサ番号によって16個までのコプロセッサをユニークに識別できる。しかしながら実際には、コプロセッサ番号の一部を将来の機能のために保留するケースが多く、従ってコプロセッサにユニークに割り当てるために利用できるコプロセッサ番号の数は16未満となる可能性が高い。
【0034】
本発明の好ましい実施例によれば、これらコプロセッサの割り当てに利用できるコプロセッサの番号の総数をデータ処理装置内に設けることができるコプロセッサの数よりも多くできる技術が提供され、この技術は、実行される特定のタスクが利用可能な全コプロセッサのサブセットにのみアクセスすればよいようなデータ処理装置で使用するようになっている。
【0035】
本発明の好ましい実施例によれば、全利用可能コプロセッサの番号のサブセットが割り当て可能な仮想的コプロセッサ番号と見なされ、これは、コプロセッサの番号とコプロセッサとの間の固定された割り当てではなく、適切なコプロセッサに必要とされる時に必要とされるように設定されるものである。コプロセッサの番号を割り当てでき、これらコプロセッサの番号のサブセットの仮想的プロセッサの番号として使用できる異なる方法は明らかに多数存在している。しかしながら、図7には4ビットのコプロセッサ番号フィールドを有する実現例におけるコプロセッサ番号の使用の特定の例が示されている。図7に示されるように、将来の使用のためにコプロセッサ番号0〜3、8および9ならびに12および13が保留されている。コプロセッサ番号14および15は常にシステム制御/デバッグコプロセッサCP14およびCP15を参照して使用され、FPUコプロセッサ100を参照するのに常にコプロセッサ番号10および11が使用される。好ましい実施例では2つの別個の作動モード、すなわち1倍精度の作動モードおよび2倍精度の作動モードを識別するためにFPU100には2つのコプロセッサ番号が割り当てられている。
【0036】
このようなコプロセッサ番号の割り当てをした場合、他のコプロセッサの割り当てられにはコプロセッサ番号4、5、6および7しか利用できないことは明らかである。データ処理装置が別の3個以下のコプロセッサしか必要としない場合、これによって明らかに問題は生じない。しかしながら、図1の例では10個の追加のコプロセッサ110が設けられており、この場合、これらコプロセッサを参照するのに4つのコプロセッサ番号しか使用できない。従って、本発明の好ましい実施例では、コプロセッサ番号4〜7は仮想的コプロセッサ番号と見なされ、特定のタスクにとって適切なものとして再マップ可能なコプロセッサ110のうちの特定のコプロセッサにマッピングされる。これにより、再マップ可能なコプロセッサ110のうちの4つまでを主プロセッサ130が実行する特定のタスクによって使用できるようになる。
【0037】
コプロセッサバス120に出力されるコプロセッサ命令が正しいコプロセッサによって正しく実行されることを保証するために、コプロセッサ決定周辺装置150が設けられている。この周辺装置は好ましい実施例ではシステムバス160を介して主プロセッサ130に結合されている。このコプロセッサ決定周辺装置150はマッピングに基づき、各仮想的コプロセッサ番号に対し、どのコプロセッサがその仮想的コプロセッサ番号に割り当てられているかを決定し、再マップ可能なコプロセッサ110へその情報を伝える役割を果たす。実施例においてこれらを実現する方法が図3および4に関連して詳しく述べられている。
【0038】
図3は、本発明の好ましい実施例におけるコプロセッサ決定周辺装置150の基本構成部品を示す。各仮想的コプロセッサ番号のうちの1つに対し、複数のレジスタ310が設けられている。従って、図7のコプロセッサ番号の割り当てを参照すると、4つのレジスタが設けられている。すなわちレジスタ0は仮想的コプロセッサ番号4に関連しており、レジスタ1は仮想的コプロセッサ番号5に関連しており、レジスタ2は仮想的コプロセッサ番号6に関連しており、レジスタ3は仮想的コプロセッサ番号7に関連している。
【0039】
周期的に、例えばタスクの切り替え時に、主プロセッサ130はシステムバス160を介してコプロセッサ決定周辺装置150へ信号を出力し、主プロセッサ130がシステムバス160に出力するデータによりレジスタ310の内容を更新させることを命令する。これら信号はコプロセッサ決定周辺装置150内の読みだし/書き込み論理回路300によって受信される。各レジスタ310は読みだし/書き込み論理回路300が受信するアドレスを介して識別され、このアドレスに関連するデータは対応するレジスタ内に記憶されるデータとなる。特に好ましい実施例では、各レジスタに対し、1ビットのイネーブル値および4ビットのコプロセッサ識別子の値が与えられる。(本明細書では、プロセッサIDとも称す)コプロセッサ識別子は、特定のレジスタ310に対応する仮想的コプロセッサ番号に10個の再マップ可能なコプロセッサ110のうちのどれが関連しているかを識別し、イネーブル値はそのコプロセッサをイネーブルすべきかどうかを示す。
【0040】
各レジスタ内には5ビットの情報だけを記憶するだけでよく、各レジスタが一般に16ビット長さとなっている場合は、個々のレジスタのうちの上部の半分、または下部の半分のいずれかへの書き込みを取り扱うための別の論理回路を設けることにより、必要とされるレジスタの数を2つまで減少させることが可能となる。しかしながら、簡潔にするために、好ましい実施例は各仮想的コプロセッサ番号に関連付けられる別個のレジスタを使用している。
【0041】
コプロセッサ決定周辺装置150は再マップ可能なコプロセッサ110に割り当てられた仮想的コプロセッサ番号およびそのコプロセッサがイネーブルされているかどうかの表示を示すための信号をパス170を通して再マップ可能なコプロセッサ110の各々に出力するようになっている。この機能はデコーダ320によって実行され、このデコーダは4つのレジスタ310の各々からのデータを受信し、対応するコプロセッサ110に出力すべき10個の信号の一組を発生するようになっている。好ましい実施例では、デコーダは各再マップ可能なコプロセッサのためのデコーディング要素330を内蔵している。このデコーディング要素330の構造は図4を参照し、より詳細に示されている。
【0042】
図4に示されるように、各デコーディング要素330は4つのレジスタ310の各々からのコプロセッサID値およびイネーブル値を受信する。これらコプロセッサID値はコンパレータ400のバンクへ提供され、各コンパレータは入力信号として受信されたコプロセッサDIとレジスタ410内に記憶されていたコプロセッサIDとを比較する。上記レジスタ410に記憶されていたコプロセッサIDはデコーディング要素が関連している再マップ可能なコプロセッサを識別するものである。図4ではデコーディング要素330はコプロセッサ8に関連する要素と見なされているので、レジスタ410に記憶されたコプロセッサIDはコプロセッサ8を識別する。
【0043】
各コプロセッサ400はコンパレータ400に入力されるコプロセッサIDとレジスタ410内のコプロセッサIDとが一致した場合、ヒット信号(好ましくは論理1の値)を発生し、一致しない場合は論理0の値を出力する。コンパレータ400からの4つの出力信号すべてがエンコーダ410へ入力信号として送られる。エンコーダ410は4つの入力信号に基づき、対応するコプロセッサへ出力すべき仮想的コプロセッサ番号を発生するようになっている。図5の表には好ましい実施例で使用されるコードが示されている。
【0044】
従って、その表に示されるように、レジスタ0からのコプロセッサIDを受信したコンパレータ400によってヒット信号が出力された場合、他の3つのコンパレータが発生した信号に拘わらず、仮想コプロセッサ番号の出力は4となる。レジスタ0からのコプロセッサIDを受信したコンパレータがヒット信号を発生せず、レジスタ1からのコプロセッサIDを受信するようになっているコンパレータがヒット信号を発生した場合、他の2つのコンパレータからの出力に拘わらず、仮想コンパレータ番号の出力は5となる。同様に、レジスタ2からのコプロセッサIDを受信したコンパレータによってヒット信号が出力され、レジスタ0およびレジスタ1の内容を見たコンパレータによってヒット信号が発生されない場合、レジスタ3の内容を見たコンパレータからの出力に拘わらず、仮想的コンパレータ番号の出力は6となる。最後に、レジスタ3からのコプロセッサIDを受信したコンパレータによってヒット信号が発生された場合において、他のコンパレータのいずれもヒット信号を発生しないと仮定した場合、エンコーダ420によって7の仮想的コプロセッサ番号が出力される。
【0045】
この方法では、特定のタスクが必要とするプロセッサ(最大4個まで)が、それらプロセッサの実行しなければならないコプロセッサ命令に関連した仮想的コプロセッサ番号の表示をデコーダ320から受信することが理解できよう。特定のタスクによって使用されないコプロセッサに対して、対応するデコーディング要素330のエンコーダ420はコンパレータ400から4つの論理0の値を受信する。かかる状況では、エンコーダ420はコプロセッサに対し、これらプロセッサが選択されていないことを表示するユニークな出力を発生するようにできる。しかしながら、好ましい実施例では、かかる状況でエンコーダ420が出力する仮想的コプロセッサ番号の実際の値は重要ではない。その理由は、主プロセッサ130が実行する特定のタスクによって必要とされていないコプロセッサに対し、値が論理0となるイネーブル信号を発生するための追加の論理回路が、各デコーディング要素330内に設けられているからである。
【0046】
この論理回路はANDゲート430、440、450および460から成り、これらANDゲートの出力は対応するコプロセッサに対して出力されるイネーブル信号を発生するのに使用されるORゲート470にルーティングされる。ANDゲート430はレジスタ0からのコプロセッサIDを受信する比較器からのパス435上の出力信号と共に、レジスタ0内に記憶されていたイネーブル信号を受信する。従って、レジスタ0内のコプロセッサIDと対応するコプロセッサのコプロセッサIDとが一致し、イネーブル信号がセットされた場合、ANDゲート430は論理1の値を出力する。この論理1の値の信号は次に、対応するコプロセッサにこのコプロセッサがイネーブルされることを表示するためのセットイネーブル信号としてORゲート470を介して出力される。この状況では、ANDゲート440、450および460のいずれも、論理1の出力を発生できない。その理由は、これらゲートはそれらの入力信号の1つとしてパス435上に出力された信号の反転信号(すなわち論理0の値)を受信しているからである。
【0047】
同様に、特定のデコーディング要素がパス435ではなく、パス445上に一致信号を発生した場合、仮想的コプロセッサ番号の出力は5となり、モニタすべき対応するイネーブル信号はANDゲート440によって発生される信号となる。レジスタ1内のイネーブル信号がセットされていると仮定した場合、ANDゲート440は論理1の出力を発生する。その理由は、パス435上の信号は0であり、パス445上の信号は1となるからである。他のANDゲート430、450または460のいずれも、論理1の出力を発生できないので、ORゲート470から出力されるイネーブル信号はANDゲート440の出力によって決定されることが理解できよう。
【0048】
同様に、パス445上にヒット信号が発生された場合、イネーブル信号はANDゲート450の出力によって決定され、一方、パス465上にヒット信号が発生されると、ORゲート470によって発生されるイネーブル信号はANDゲート460の出力によって決定される。
【0049】
従って、コプロセッサ決定周辺装置150はコプロセッサのうちのどれをイネーブルするかの決定と共に、各再マップ可能なコプロセッサ110に割り当てられる仮想的コプロセッサ番号を決定し、次にその情報を対応するコプロセッサに伝え、よってこれらコプロセッサはコプロセッサバス120に出力されこれらコプロセッサ向けのコプロセッサ命令を実行する状態になる。
【0050】
図6は、図3および4に示された論理回路の代わりに使用できるコプロセッサ決定周辺装置150の別の実施例を示すブロック図である。この実施例によれば、図3の読み出し/書き込み論理回路300に類似した読み出し/書き込み論理回路600が設けられる。しかしながら、レジスタバンク610は、再マップ可能なコプロセッサ110ごとにレジスタを含むので、この実施例では10個のレジスタを含む。従って、読み出し/書き込み論理回路はレジスタバンク610内の10個のレジスタの各々に読み出しおよび書き込みができなければならない。適当な時点、例えばタスクの切り替えの後の時点で、主プロセッサ130はシステムバス160上に出力される新しいデータにより、レジスタ610の内容を更新することをコプロセッサ決定周辺装置150に命令する信号をコプロセッサ決定周辺装置150に発生する。レジスタごとにコプロセッがイネーブルされているかどうかを示すイネーブル信号と共に、対応するコプロセッサに割り当てられる仮想的コプロセッサ番号を指定するデータが提供される。次にこのデータは、デコーダ320を必要とすることなく、パス107を通して対応するコプロセッサに直接出力できる。
【0051】
図6に示された実施例がデコーダを必要としないが、より多数のレジスタが必要である場合、潜在的にこの実施例は論理回路のより大きい部分を必要とする。更に、かかる実施例はレジスタのうちの任意のレジスタに、競合する情報が記憶されないことを保証する条件を仮定すれば、プログラマーのモデルの見地から、一般により複雑となる。
【0052】
図1の実施例では、コプロセッサ決定周辺装置150はシステムバス160を介して主プロセッサ130に結合されるように示されている。しかしながら、コプロセッサ決定周辺装置150をこのように結合するという条件はなく、むしろコプロセッサバス120を介し、主プロセッサ130に結合される別個のコプロセッサとしてコプロセッサ決定論理回路を実現できることが理解できよう。かかる回路構造は図2に示されている。基本的には、コプロセッサ決定コプロセッサ200の動作は図1のコプロセッサ決定周辺装置150の動作と同じとなる。しかしながら、主プロセッサ130は1つ以上のプロセッサ命令を使用することにより、コプロセッサ決定コプロセッサ200とコンタクトし、この場合、かかるコプロセッサ命令のコプロセッサ番号フィールドがその特定のコプロセッサ200を指定する。明らかに、かかる実施例ではコプロセッサ決定コプロセッサ200は、好ましくはFPUコプロセッサ100に割り当てられた固定番号と同じように固定されたコプロセッサ番号を有することが好ましい。
【0053】
上記説明から、本発明の好ましい実施例は、特定のコプロセッサ番号に対し、その時にその番号が割り当てられた実際のコプロセッサを決定するために設けられた簡単な周辺装置により、コプロセッサ番号をダイナミックに特定のコプロセッサに割り当てできるような技術を提供することが理解できよう。この簡単な周辺ユニットは任意の時点、例えばタスク切り替えの時点で仮想的コプロセッサ番号とコプロセッサとの間のマッピングを変えることができるように、プロセッサコアの制御によりプログラムできる。特定のタスクに対し、プロセッサコアによって実行されるコードは、特定のコプロセッサ番号を有するコプロセッサ命令を取り扱うようになっているのはどのコプロセッサであるかを識別し、この情報はそのマッピングを更新するために周辺ユニットへ送られる必要な更新情報を発生するために使用される。
【0054】
以上で、本発明の特定の実施例について説明したが、この発明はこの実施例だけに限定されているものではなく、発明の範囲では多数の変形および追加が可能であることは明らかである。例えば発明の範囲から逸脱することなく、次の従属請求項の特徴事項と独立請求項の特徴事項とを種々に組み合わせることができる。
【図面の簡単な説明】
【図1】本発明の第1実施例に係わるデータ処理装置の要素を示すブロック図である。
【図2】本発明の第2実施例に係わるデータ処理装置の要素を示すブロック図である。
【図3】本発明の好ましい実施例のコプロセッサ決定論理回路の実施例を示すブロック図である。
【図4】好ましい実施例に係わるデコーダ内のデコーディング要素の1つの構造をより詳細に示すブロック図である。
【図5】図4に示されたエンコーダの作動を示すテーブルである。
【図6】コプロセッサ決定論理回路の別の実施例を示す。
【図7】コプロセッサ番号の使用の一例を示す。
【符号の説明】
10 データ処理装置
100 FPUコプロセッサ
110 再マップ可能なコプロセッサ
120 コプロセッサバス
130 CPUコア
140 メモリ
150 コプロセッサ決定周辺ユニット
160 システムバス
Claims (14)
- あるシーケンスのデータ処理命令を処理するためのプロセッサコアと、
前記データ処理命令のシーケンス内で提供されるコプロセッサ命令を実行する複数のコプロセッサとを備え、各コプロセッサ命令が、これら複数のコプロセッサのうちのどれがそのコプロセッサ命令を実行するのかを識別するのに使用される、コプロセッサ命令に関連した仮想的コプロセッサ番号を有し、
関連する仮想的コプロセッサ番号を有する各コプロセッサ命令に対し、そのコプロセッサ命令を実行できる前記複数のコプロセッサ内の幾つかのコプロセッサが存在するデータ処理装置において、
該データ処理装置が、仮想コプロセッサ番号を割り当て、この仮想的コプロセッサ番号に関連した命令をどのコプロセッサが実行するのかをマッピングに基づき、仮想的コプロセッサ番号ごとに決定するようになっている、コプロセッサ決定論理回路を更に含む、データ処理装置。 - 任意の仮想的コプロセッサ番号に対し、コプロセッサ番号が割り当てられ、よってそのコプロセッサ番号を有するコプロセッサ命令を実行する責任を果たすコプロセッサを変更するように、前記プロセッサコアがマッピングの変更を呼び出しできる、請求項1記載のデータ処理装置。
- 前記コプロセッサ決定論理回路が、コプロセッサ命令に関連する仮想的コプロセッサ番号を有するコプロセッサ命令を実行する責任を果たすコプロセッサを、仮想的コプロセッサ番号ごとに識別するマッピングを維持するための記憶装置を含み、前記コプロセッサ決定論理回路が前記プロセッサコアに応答し、マッピングを変更するようになっている、請求項2記載のデータ処理装置。
- 前記プロセッサコアがバスを介し、前記複数のコプロセッサに結合されており、データ処理命令のシーケンス内で提供される任意のコプロセッサ命令をバスに出力するようになっており、前記コプロセッサ決定論理回路が、コプロセッサが実行すべきコプロセッサ命令を識別するのに使用される仮想的コプロセッサ番号を各コプロセッサに通知するようになっており、各コプロセッサがコプロセッサ命令に関連する仮想的コプロセッサ番号を参照し、バス上に存在するコプロセッサ命令を実行すべきかどうかを決定するようになっている、請求項1記載のデータ処理装置。
- 前記プロセッサコアがマルチタスクからのデータ処理命令を実行するようになっており、タスク間で必要とされるコプロセッサが変わるようになっており、現在実行中のタスクが必要とするコプロセッサに仮想的コプロセッサ番号が割り当てられるよう、タスク切り替え後に前記プロセッサコアがマッピングを変更するようになっている、請求項1記載のデータ処理装置。
- 前記プロセッサコアがタスク切り替え時、およびタスク切り替え後の任意のデータ処理命令の処理前にマッピングを変更するようになっている、請求項5記載のデータ処理装置。
- タスク切り替え時にコプロセッサへのアクセスが一時的にディスエーブルされ、よってプロセッサコアがコプロセッサ命令を処理しようとする場合に例外を検出し、例外ハンドラーを読み出すようになっており、該例外ハンドラーがコプロセッサへのアクセスを再イネーブルし、マッピングを変更するようになっている、請求項5記載のデータ処理装置。
- 前記コプロセッサ決定論理回路が、コプロセッサ命令に関連する仮想的コプロセッサ番号を有するコプロセッサ命令を実行する責任を果たすコプロセッサを仮想的コプロセッサ番号ごとに識別するマッピングを維持するための記憶装置を備え、前記コプロセッサ決定論理回路が、プロセッサコアに応答してマッピングを変更するようになっており、前記コプロセッサ決定論理回路の記憶装置が仮想的コプロセッサ番号の割り当てられるコプロセッサを識別するコプロセッサ識別子を仮想的コプロセッサ番号ごとに記憶するようになっており、前記コプロセッサ決定論理回路が、
前記記憶装置の内容を受信し、コプロセッサに割り当てられた仮想的コプロセッサ番号を識別するコプロセッサ番号信号をコプロセッサごとに発生するようになっているデコーダを更に備えた、請求項1記載のデータ処理装置。 - コプロセッサをイネーブルすべきかどうかを識別するイネーブルフラグを、各コプロセッサ識別子と共に前記記憶装置が更に記憶するようになっており、前記デコーダが、コプロセッサがイネーブルされているかどうかを表示するイネーブル信号をコプロセッサごとに発生するようになっている、請求項8記載のデータ処理装置。
- 前記デコーダが複数のデコーディング要素を備え、1つのデコーディング要素が各コプロセッサに関連しており、各デコーディング要素が記憶装置の内容を受信し、コプロセッサ番号信号および対応するコプロセッサのためのイネーブル信号を識別する出力信号を発生するようになっている、請求項9記載のデータ処理装置。
- 各デコーディング要素が前記記憶装置内の前記コプロセッサ識別子と前記関連するコプロセッサのコプロセッサ識別子とを比較するためのコンパレータ論理回路と、対応するコプロセッサのためのコプロセッサ番号信号をコンパレータ論理回路の出力から発生するためのエンコーダとを備えた、請求項10記載のデータ処理装置。
- 各デコーディング要素が、コンパレータ論理回路の出力および前記記憶装置からのイネーブルフラグに基づき、対応するコプロセッサのためのイネーブル信号を発生するためのイネーブル信号発生論理回路を更に備えた、請求項11記載のデータ処理装置。
- あるシーケンスのデータ処理命令を処理するためのプロセッサコアおよび前記データ処理命令のシーケンス内で提供されるコプロセッサ命令を実行するための複数のコプロセッサを有するデータ処理装置に、コプロセッサ命令を実行させるように、該データ処理装置を作動させる方法において、
(i)前記複数のコプロセッサのうちのどれがコプロセッサ命令を実行すべきかを識別するのに使用される仮想的コプロセッサ番号と各コプロセッサ命令とを関連付ける工程を備え、関連する仮想的コプロセッサ番号を有するコプロセッサ命令ごとに、そのコプロセッサ命令を実行できる複数のコプロセッサ内の幾つかのコプロセッサが設けられており、
(ii)仮想的コプロセッサ番号に関連する命令をどのコプロセッサが実行するかをマッピングに基づき仮想的コプロセッサ番号ごとに決定する工程を備えた、コプロセッサ命令を実行するためにデータ処理装置を作動させる方法。 - (iii)コプロセッサ命令に関連する仮想的コプロセッサ番号を有するコプロセッサ命令を実行する責任を果たすコプロセッサを、仮想的コプロセッサ番号に対して変更するようマッピングの変更をイネーブルする工程を更に備えた、請求項13記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0118518A GB2378271B (en) | 2001-07-30 | 2001-07-30 | Handling of coprocessor instructions in a data processing apparatus |
GB0118518.0 | 2001-07-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003058368A JP2003058368A (ja) | 2003-02-28 |
JP3773470B2 true JP3773470B2 (ja) | 2006-05-10 |
Family
ID=9919440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002182992A Expired - Fee Related JP3773470B2 (ja) | 2001-07-30 | 2002-06-24 | データ処理装置内でのコプロセッサ命令の取り扱い |
Country Status (3)
Country | Link |
---|---|
US (1) | US6883085B2 (ja) |
JP (1) | JP3773470B2 (ja) |
GB (1) | GB2378271B (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040117601A1 (en) * | 2002-12-12 | 2004-06-17 | Spracklen Lawrence A | General-purpose processor that can rapidly perform binary polynomial arithmetic operations |
US7430652B2 (en) * | 2003-03-28 | 2008-09-30 | Tarari, Inc. | Devices for performing multiple independent hardware acceleration operations and methods for performing same |
US7490223B2 (en) * | 2005-10-31 | 2009-02-10 | Sun Microsystems, Inc. | Dynamic resource allocation among master processors that require service from a coprocessor |
FR2893156B1 (fr) * | 2005-11-04 | 2008-02-15 | Commissariat Energie Atomique | Procede et systeme de calcul intensif multitache et multiflot en temps reel. |
US8914618B2 (en) * | 2005-12-29 | 2014-12-16 | Intel Corporation | Instruction set architecture-based inter-sequencer communications with a heterogeneous resource |
US7930519B2 (en) * | 2008-12-17 | 2011-04-19 | Advanced Micro Devices, Inc. | Processor with coprocessor interfacing functional unit for forwarding result from coprocessor to retirement unit |
US8209523B2 (en) * | 2009-01-22 | 2012-06-26 | Intel Mobile Communications GmbH | Data moving processor |
FR2942556B1 (fr) * | 2009-02-24 | 2011-03-25 | Commissariat Energie Atomique | Unite d'allocation et de controle |
US9063825B1 (en) * | 2009-09-21 | 2015-06-23 | Tilera Corporation | Memory controller load balancing with configurable striping domains |
US9298621B2 (en) * | 2011-11-04 | 2016-03-29 | Hewlett Packard Enterprise Development Lp | Managing chip multi-processors through virtual domains |
US20160011875A1 (en) * | 2014-07-08 | 2016-01-14 | Apple Inc. | Undefined instruction recoding |
US10210134B2 (en) | 2015-05-21 | 2019-02-19 | Goldman Sachs & Co. LLC | General-purpose parallel computing architecture |
US11449452B2 (en) | 2015-05-21 | 2022-09-20 | Goldman Sachs & Co. LLC | General-purpose parallel computing architecture |
ES2929626T3 (es) | 2015-05-21 | 2022-11-30 | Goldman Sachs & Co Llc | Arquitectura de computación paralela de propósito general |
US10324729B2 (en) * | 2017-05-26 | 2019-06-18 | The Charles Stark Draper Laboratory, Inc. | Machine intelligence and learning for graphic chip accessibility and execution |
US11263014B2 (en) * | 2019-08-05 | 2022-03-01 | Arm Limited | Sharing instruction encoding space between a coprocessor and auxiliary execution circuitry |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4994961A (en) * | 1983-04-18 | 1991-02-19 | Motorola, Inc. | Coprocessor instruction format |
US4992938A (en) * | 1987-07-01 | 1991-02-12 | International Business Machines Corporation | Instruction control mechanism for a computing system with register renaming, map table and queues indicating available registers |
US5218711A (en) * | 1989-05-15 | 1993-06-08 | Mitsubishi Denki Kabushiki Kaisha | Microprocessor having program counter registers for its coprocessors |
US6505290B1 (en) * | 1997-09-05 | 2003-01-07 | Motorola, Inc. | Method and apparatus for interfacing a processor to a coprocessor |
US6829697B1 (en) * | 2000-09-06 | 2004-12-07 | International Business Machines Corporation | Multiple logical interfaces to a shared coprocessor resource |
-
2001
- 2001-07-30 GB GB0118518A patent/GB2378271B/en not_active Expired - Lifetime
-
2002
- 2002-06-24 JP JP2002182992A patent/JP3773470B2/ja not_active Expired - Fee Related
- 2002-07-25 US US10/202,029 patent/US6883085B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
GB2378271A (en) | 2003-02-05 |
US6883085B2 (en) | 2005-04-19 |
JP2003058368A (ja) | 2003-02-28 |
GB2378271B (en) | 2004-12-29 |
US20030023831A1 (en) | 2003-01-30 |
GB0118518D0 (en) | 2001-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3773470B2 (ja) | データ処理装置内でのコプロセッサ命令の取り扱い | |
US10318407B2 (en) | Allocating a debug instruction set based on the current operating state in a multi-instruction-set data processing apparatus | |
JP4409427B2 (ja) | 複数のレジスタ・コンテキストを有するデータ処理システムおよび該システムのための方法 | |
US5517651A (en) | Method and apparatus for loading a segment register in a microprocessor capable of operating in multiple modes | |
JP3683230B2 (ja) | データ処理装置、命令セット切換方法、データ処理アーキテクチャおよびデータ処理装置作動方法 | |
US5944816A (en) | Microprocessor configured to execute multiple threads including interrupt service routines | |
US5155853A (en) | Data processor operating in a vector interrupt mode and register bank switching mode with selected bank for interrupt processing | |
US4843541A (en) | Logical resource partitioning of a data processing system | |
US5812868A (en) | Method and apparatus for selecting a register file in a data processing system | |
US6076156A (en) | Instruction redefinition using model specific registers | |
EP0213843A2 (en) | Digital processor control | |
US5455955A (en) | Data processing system with device for arranging instructions | |
KR102187912B1 (ko) | 인터럽트들의 세트들을 구성하는 장치 및 방법 | |
JP2013522749A (ja) | 複数の命令セットにより使用されるレジスタ間のマッピング | |
GB2216306A (en) | Load and synchronize computer architecture and process | |
US4991083A (en) | Method and system for extending address space for vector processing | |
US11836494B2 (en) | System and method for addressing data in memory | |
JP5289688B2 (ja) | プロセッサシステム及びプロセッサシステムを動作させるオペレーティングシステムプログラムの処理方法 | |
US7231509B2 (en) | Extended register bank allocation based on status mask bits set by allocation instruction for respective code block | |
US5542079A (en) | Data driven processor for reading data from storage to apply prescribed operation in response to operation updating instruction and updating the contents of the storage | |
US5664156A (en) | Microcontroller with a reconfigurable program status word | |
JPH09505428A (ja) | ページアドレスモードを有するマイクロコントローラ | |
US6711655B1 (en) | Finding available memory space by finding its associated memory transfer controller | |
JPH0744401A (ja) | 論理集積回路およびそのデータ処理システム | |
US20020073295A1 (en) | Enhanced memory addressing capability |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040826 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060131 |
|
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: 20060203 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060214 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090224 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100224 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110224 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120224 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120224 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130224 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130224 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140224 Year of fee payment: 8 |
|
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 |