JP3771273B2 - 述語レジスタ・セットをレストアする方法および装置 - Google Patents
述語レジスタ・セットをレストアする方法および装置 Download PDFInfo
- Publication number
- JP3771273B2 JP3771273B2 JP51669798A JP51669798A JP3771273B2 JP 3771273 B2 JP3771273 B2 JP 3771273B2 JP 51669798 A JP51669798 A JP 51669798A JP 51669798 A JP51669798 A JP 51669798A JP 3771273 B2 JP3771273 B2 JP 3771273B2
- Authority
- JP
- Japan
- Prior art keywords
- registers
- mask
- restore
- instruction
- register set
- 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
- 238000000034 method Methods 0.000 title claims description 39
- 230000004044 response Effects 0.000 claims description 7
- 230000006978 adaptation Effects 0.000 claims 3
- 238000004590 computer program Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism Effects 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Description
本発明はコンピュータ・システムに関し、さらに詳細には、述語レジスタ・セットをレストアする方法および装置に関する。
発明の背景
コンピュータ・プログラムは、何らかの有用なタスクを行うためにコンピュータ・システム上で実行される1組の命令からなる。通常は、プログラムは、ある特定の命令を条件付きで実行するように設計される、すなわち1つまたは複数の条件が満たされた場合に条件付き命令が実行され、そうでない場合にはそれらは実行されない。ここで、「実行される」とは、ある命令が、コンピュータ・システムの状態を修正する、かつ/またはコンピュータ・システム内で特定の事象シーケンスを生じさせることになる指定の動作を行うことを意味する。従来のコンピュータ・システムでは、条件付き実行は、当技術分野では周知の分岐命令またはジャンプ命令を介して実施される。「述語付き実行」または「述語化(predication)」(「条件付き実行」または「保護付き実行」と呼ばれることもある)は、分岐命令を必要とせずに条件付きで命令を実行することができる技法である。
述語付き実行は、ある「述語」を、その述語がその命令が実行されるか否かを制御する命令と関連づけることによって実施される。述語が「真」と評価された場合には命令は実行され、述語が「偽」と評価された場合には命令は実行されない。「真」および「偽」の定義は、各実施形態ごとに変えることができる。述語を真または偽であると判定するための関数も、各実施形態ごとに変えることができる。例えば、いくつかの実施形態では、値1が真、値0が偽となる単一ビットとして述語を定義することができるが、別の実施形態では、これらのビットを真または偽であると解釈する特定の関数を有する複数ビットとして定義することができる。
述語の制御下で命令を条件付きで実行することにより、述語化によってコンピュータ・プログラムから分岐命令が除去される。これは、分岐の予測を誤ることによるフラッシュが実行パイプライン中でいくつかの「バブル」を引き起こし、命令を実行する機会の大きな損失を生み出す、広く深いパイプラインで有益である。述語化は、分岐を除去し、それにより付随する分岐の誤った予測を除去することにより、性能を改善する。分岐命令は通常は命令取出し機構で中断を引き起こすので、述語化は、分岐間の命令数を増加させ、それにより有効な命令取出し帯域幅を増大させることによっても性能を改善する。
述語は、通常は、専用の「述語レジスタ・セット」中に記憶される。述語レジスタ・セットの正確な形態は、各実施形態ごとに変えることができる。例えば、いくつかの実施形態では、それぞれ単一の述語を含む複数のレジスタを規定することができるが、別の実施形態では、「条件コード」または「フラグ」レジスタ中の1つまたは複数のビットとして述語を規定することができる。述語の正確な数も、各実施形態ごとに変えることができる。例えば、ある実施形態では64個の述語を規定することができるが、別の実施形態では8個のみの述語を規定することができる。
述語にアクセスするために利用される方法には、通常、個別式と「一斉式(broadside)」の2つの方法がある。述語は通常は、比較命令によって個別に書き込まれ、任意の述語付き命令によって個別に読み取られる。一斉式アクセスとは、1回のアクセスで全ての述語を同時に読み取る、または書き込むことを指す。述語は通常は、手続きの入口および出口、ならびにコンテキスト切替えでは、一斉式で読取りおよび書込みされる(コンテキスト切替えは、現在アクティブな「プロセス」または「タスク」の実行が停止し、別のプロセスが実行のために選択されたときに起こる)。一斉式アクセスでは、述語レジスタ・セットの内容は、通常は、プロセッサ中の別のレジスタまたはコンピュータ・システム中のメモリ位置に保管され、プロセッサ中の別のレジスタまたはコンピュータ・システム中のメモリ位置からレストアされる。
通常は、述語レジスタ・セット中の述語は、コンピュータ・プログラム中の全ての手続き(当技術分野では「関数」または「サブルーチン」とも呼ばれる)に等しくアクセス可能である。これは、ある手続きが別の手続きの述語を上書きしないで共用できるようにするための規則の仕様を必要とする。この目的のために、レジスタを、「スクラッチ」および「保存」の2つのクラスに分割する。ソフトウェアの規定により、スクラッチ・レジスタの内容は手続き呼出しの時点で失われ、保存レジスタの内容は手続き呼出しの前後で維持される。レジスタのスクラッチ・クラスおよび保持クラスへの分割は、ソフトウェアが使用する規定であり、通常は命令セット・アーキテクチャによって実施されるものではないことに留意されたい。この分割には、各手続きの一部分へのある特定の処置が必要である。例えば、手続きA(「呼出し元」)が手続きB(「呼出し先」)を呼び出している、したがって手続きBへの呼出し命令が手続きA内に現れ、手続きAへの戻り命令が手続きBの終了時に現れるものと想定する。手続きAは、手続きBへの呼出し後に、任意のスクラッチ・レジスタの内容を必要とする場合には、手続きBを呼び出す命令の前にそられの内容を保管し、前記命令後にそれらの内容をレストアしなければならない。手続きBは、任意の保存レジスタを使用する必要がある場合には、それらを使用する前にその内容を保管し、手続きAに戻る前にそれらの内容をレストアしなければならない。
手続きBが保存述語レジスタを使用する状況では、上述のように手続きの入口および出口では述語は一斉式でアクセスされるので、手続きBが保存述語レジスタをレストアするときに全ての述語が上書きされることになる。この一斉レストアに続く命令が述語レジスタ・セット(例えば述語付き命令)の読取りを必要とする場合には、この一斉レストアの後、前記述語付き命令の前に、追加命令を挿入し、述語レジスタ・セットを再書込みする必要がある。これらの追加命令は、順序に依存した命令の数を増加させることにより、手続きの性能を低下させる。さらに、現在のプロセッサでパイプライン化を使用することにより、以前の一斉述語レストアが完了するのを待機している述語を読み取る命令によって引き起こされるパイプラインの停止によって、性能がさらに低下することがある。
したがって、単一の命令に応答して述語レジスタ・セット中の選択した述語レジスタをレストアすることによって、従来技術の欠点を克服する方法および装置が必要とされている。
発明の概要
本発明は、述語レジスタ・セットをレストアする方法および装置を提供する。本発明の一実施態様は、ある述語レジスタ・セット上でレストア操作を実行するよう指定する第1の命令をデコードする段階を含む。第1の命令に応答して、マスクを使用して、述語レジスタ・セットからレストアする複数の述語レジスタを選択する。次いで、選択した複数の述語レジスタをレストアする。
【図面の簡単な説明】
限定ではなく例示を目的として、添付の図面の各図に本発明を図示する。同じ参照番号は同じ要素を示している。
第1図は、一実施形態による本発明を実施するコンピュータ・システムの一例を示す図である。
第2図は、一実施形態による本発明の各段階を記述する流れ図である。
第3図は、一実施形態による本発明で使用される命令形式を示す図である。
詳細な説明
単一の命令に応答して、マスクを使用して、選択した複数の述語レジスタのレストアを制御する方法および装置について記述する。
第1図は、本発明を実施するコンピュータ・システム100の1例である。図示のように、このコンピュータ・システムは、コンピュータ・システムを動作させるために命令を実行し、その他の機能を行うプロセッサ101を含む。このコンピュータ・システムには、モニタ、キーボード、ディスク・ドライブ、およびこのコンピュータ・システムがその他のコンピュータ・デバイスとネットワークを介して通信することができるようにするネットワーク・デバイスが接続されている。
第1図のプロセッサの内部に、述語レジスタ・セット104が示してある。本発明の一実施形態では、述語レジスタ・セットは64個の1ビット幅の別個のレジスタからなる。代替実施形態では、本発明の範囲を逸脱することなく、レジスタ・セット中に設ける述語レジスタの数を増減し、または述語レジスタの幅を広く(すなわち1ビット幅を超えるように)することもできる。
コードのあるセクションを実行する間に、述語レジスタ中に格納されたデータを、汎用レジスタ・セット102のレジスタにコピーすることができる。例えば、ある手続きが呼び出されたときに、その述語レジスタに格納されたデータを第1図に示す63番目の汎用レジスタ(GR63)などの汎用レジスタにコピーし、その手続きを呼び出す前にその述語レジスタ・セットに格納されたデータを喪失することなく、手続きの実行中にその述語レジスタを使用できるようにすることができる。
本発明は、データをレストアして述語レジスタ・セット104に戻す方法および装置を提供する。具体的に言うと、本発明では、単一の命令に応答して、マスクを使用して、汎用レジスタのどのデータを述語レジスタ・セット中にレストアするかを選択する。その結果として、本発明は、どの述語レジスタをレストアするかをプログラマが選択できるようになるという利点をもたらす。これにより、追加命令が不要となり、パイプライン化したプロセッサの停止が解消されることによって、コンピュータ・プログラムの性能が改善される。さらに、本発明を使用して述語レジスタ以外のレジスタもレストアすることができることは、当業者なら理解するであろう。
一実施形態では、本発明のマスクは、「レストア命令」中の即値として与えられる。このマスク即値は、どの述語レジスタをレストアするかを示す。代替実施形態では、このマスク値は、汎用レジスタやメモリ位置など代替のソースから与えられることもあり、その場合には、このソースのアドレスがレストア命令に含まれることになる。
レストア命令がデコードされた後で、マスク値はデータ・パスを介して、マスクを使用してどの述語レジスタをレストアするかを識別するレストア・ユニット103に転送される。一実施形態では、マスクはビットのセットからなり、マスクの各ビットは単一の述語レジスタに対応している。マスク中の所与のビットが1にセットされたときに、その特定のマスク・ビットに対応する述語レジスタがレストアされることになる。マスク中の所与のビットが0にセットされたときには、対応する述語レジスタはレストアされないことになる。
例えば、第1図のレストア・ユニット中に示すマスクを参照すると、このマスクのビット0〜3は1にセットされていることが分かる。その結果として、述語レジスタ0〜3は、汎用レジスタGR63の対応するビット位置0〜3からのデータでレストアされることになる。これに対して、レストアマスク値に含まれるビットが0にセットされているときには(例えばマスク・ビット10)、対応する述語レジスタはレストアされないことになり、その値は変化しないままとなる。本発明の趣旨を逸脱することなく、マスク値の代替解釈も可能であることは理解されるであろう。例えば、マスク値0で述語レジスタをレストアし、値1で述語レジスタを変化しないままとすることもできる。
さらに、一実施形態では、マスク・ビットの1つが複数の述語レジスタに対応する。すなわち、いくつかのマスク・ビットのうちの1つを使用して、複数の述語レジスタの全てがレストアされるか否かを示し、残りのマスク・ビットが残りの述語レジスタと1対1で対応する。例えば、第1図に示すように、マスク・ビット15が1にセットされたときに、GR63のビット位置63〜15に現在格納されているデータで述語レジスタ63〜15がレストアされる。
マスク中の1つのビットをいくつかの述語レジスタに対応させ、残りのマスク・ビットを残りの述語レジスタと1対1で対応させることにより、少数のマスク・ビットで多数の述語レジスタを制御し、それにより本発明のマスクを固定サイズの命令に適合させることが可能となる。代替実施形態では、複数のマスク・ビットを、複数の述語レジスタのレストアを制御するように規定することもできる。
一実施形態では、第1図に示す本発明のレストア・ユニット103は、別々の各述語レジスタに結合された別々の書込みイネーブル接続を有する専用回路で構成することができる。マスクの所与のビットが1にセットされると、それぞれの書込みイネーブル接続がオンになり、それにより、この回路が、汎用レジスタ中のビット位置からそれぞれの述語レジスタ中にデータをコピーすることが可能となる。このようにして、述語レジスタを並行してレストアすることができる。ただし、代替実施形態では、レストア・ユニットが、どの述語レジスタを更新するかをマスクが示すことができるようにするその他の回路配列で構成することもできることは当業者には明らかであろう。
第2図を参照すると、本発明の各段階をより詳細に記述する流れ図が図示されている。段階202で、述語レジスタ・セットに格納されたデータは、汎用レジスタにコピーされる。代替実施形態では、述語レジスタ・セットは、本発明の範囲を逸脱することなくその他のメモリ・デバイスに保管することもできる。
段階204では、選択した複数の述語レジスタをレストアする命令が、第1図に示すプロセッサ中に与えられた命令セットから選択される。別法として、本発明によるプロセスを行うようにコンピュータをプログラムするために使用することができるマイクロ命令を格納している別のコンピュータ可読記憶媒体上に、このレストア命令を備えることもできる。この記憶媒体には、それだけには限らないが、フロッピー・ディスク、光ディスク、CD−ROM、光磁気ディスクを含めて任意のタイプのディスク、ROM、RAM、EPROM、EEPROM、磁気カード、光カードを含めて任意のタイプのメモリ、あるいは電子命令を記憶するのに適した任意のタイプの媒体が含まれる。
一実施形態では、本発明で使用するマスクは16個のビットからなる。マスク・ビット14〜0はそれぞれ述語レジスタ14〜0の1つに対応する。このマスクのビット15は述語レジスタ63〜15に対応する。すなわち、このマスクのビット15がセットされた場合には、述語レジスタ63〜15がレストアされることになる。ただし、本発明のマスク中のビット数が変化してもよいことは当業者には明らかであろう。さらに、複数のセットのマスク・ビットがそれぞれ別個の述語レジスタのセットに対応することができることは当業者には明らかであろう。
一実施形態では、述語レジスタ0は常に1にセットされる。これは、その場合にはマスク・ビット14〜0が述語レジスタ15〜1に対応し、マスク・ビット15が述語レジスタ63〜16に対応することもあることを意味する。
第3図は、41ビットの固定長を有するレストア命令の一実施形態を示す図である。命令のビット位置5〜0は、レストア命令の実行を制御する述語レジスタ(PR)を識別する。レストア命令の実行を制御するために述語レジスタが使用されない場合には、この命令のビット位置5〜0は全て0を含むことになる。
レストア命令のビット位置12〜6はマスク・ビット6〜0を表す。この命令のビット位置19〜13は、述語レジスタ・セット中にレストアされるデータを含む汎用レジスタ(GR)を識別する。代替実施形態では、述語レジスタにレストアするために使用するデータが汎用レジスタ以外のメモリ位置に格納されている場合には、レストア命令のビット位置19〜13はメモリ・アドレスを含むこともある。
この命令のビット位置23〜20は使用されない。この命令のビット位置31〜24は、マスク・ビット14〜7を表す。この命令のビット位置32は使用されない。この命令のビット位置35〜33は副OPコードを表し、これは本発明の場合には、述語レジスタのレストア操作を一部示す。この命令のビット位置36はマスク・ビット15(M15)を表す。この命令のビット位置40〜37はこの命令のOPコードを表し、これは図示の実施形態では、述語レジスタのレストア操作を示す。ただし、レストア命令を異なる長さにすることができること、ならびにこの命令中のマスクおよびその他のフィールドの配置および長さが、図示の実施形態とは異なることもあることは当業者には明らかであろう。
第2図の流れ図に戻ると、本発明の段階206で、レストア命令は、プロセッサのデコーダ・ユニットによってデコードされる。デコード段階中に、第1図に示すように、マスクのビットはレストア命令から抜き出され、連続的なビット列としてプロセッサのデータ・パス中で結合される。
段階208で、マスクを使用してどの述語レジスタをレストアするかを決定するレストア・ユニットに、マスクが与えられる。より具体的に言うと、1にセットされたマスク・ビット14〜0の各ビットごとに、レストア命令で識別されたレジスタの対応するビット位置からのデータで、そのビットに対応する述語レジスタがレストアされる。マスク・ビット14〜0の中で0にセットされたマスク・ビットの各ビットについては、対応する述語レジスタはレストアされず、変化しないまま残される。本発明の段階210で、マスク・ビット15が1にセットされたかどうかを判定する。マスク・ビット15が1にセットされた場合には、段階212で述語レジスタ63〜15は同様にしてレストアされる。そうでない場合には、段階214で、述語レジスタ63〜15はレストアされず、変化しないまま残される。
Claims (3)
- コンピュータ・システムの第1のレジスタ・セットをレストアする方法において、
そのレジスタ・セットについてのレストア操作を指定する第1の命令をデコードする段階と、
前記第1の命令から取り出されるとともに前記第1のレジスタ・セット中の複数のレジスタに対応する少なくとも1つのビットと残りの複数のレジスタに1対1で対応する複数のビットとを含むマスクであって、少数のマスク・ビットで多数のレジスタを制御し、それにより固定サイズの命令に適合させることを可能にしたマスクを使用して、前記第1のレジスタ・セットのレストアする複数のレジスタを選択する段階と、
前記少なくとも1つのビットがセットされているときに当該1つのビットに対応する複数のレジスタをレストアする段階も含めて、前記第1の命令に応答して第1のレジスタ・セットの内前記マスクによって選択された複数のレジスタをレストアする段階と
を含む方法。 - 第1のレジスタ・セットをレストアするプログラムを格納しているコンピュータ可読記憶媒体であって、コンピュータに、
第1のレジスタ・セットについてのレストア操作を指定する第1の命令をデコードさせるプログラムと、
前記第1の命令から取り出されるとともに前記第1のレジスタ・セット中の複数のレジスタに対応する少なくとも1つのビットと残りの複数のレジスタに1対1で対応する複数のビットとを含むマスクであって、少数のマスク・ビットで多数のレジスタを制御し、それにより固定サイズの命令に適合させることを可能にしたマスクを使用して、前記第1のレジスタ・セットのレストアする複数のレジスタを選択させるプログラムと、
前記少なくとも1つのビットがセットされているときに当該1つのビットに対応する複数のレジスタをレストアさせることをも含めて、前記第1の命令に応答して第1のレジスタ・セットの内前記マスクによって選択された複数のレジスタをレストアさせるプログラムと
を格納しているコンピュータ可読記憶媒体。 - 第1のレジスタ・セットをレストアするように動作可能なコンピュータ・システムであって、
第1のレジスタ・セット上でレストア操作を実行するよう指定する第1の命令をデコードするように動作可能に構成されたデコーダと、
前記第1の命令から取り出されるとともに前記第1のレジスタ・セット中の複数のレジスタに対応する少なくとも1つのビットと残りの複数のレジスタに1対1で対応する複数のビットとを含むマスクであって、少数のマスク・ビットで多数のレジスタを制御し、それにより固定サイズの命令に適合させることを可能にしたマスクを使用して、前記第1のレジスタ・セットのレストアする複数のレジスタを選択するように動作可能に構成されたレストア・ユニットであって、さらに、
前記少なくとも1つのビットがセットされているときに当該1つのビットに対応する複数のレジスタをレストアすることをも含めて、前記第1の命令に応答して第1のレジスタ・セットの内前記マスクによって選択された複数のレジスタをレストアするように動作可能に構成されたレストア・ユニットと
を含むコンピュータ・システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/725,573 | 1996-10-03 | ||
US08/725,573 US5859999A (en) | 1996-10-03 | 1996-10-03 | System for restoring predicate registers via a mask having at least a single bit corresponding to a plurality of registers |
PCT/US1997/017369 WO1998014866A1 (en) | 1996-10-03 | 1997-09-26 | Method and apparatus for restoring a predicate register set |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2001501759A JP2001501759A (ja) | 2001-02-06 |
JP2001501759A5 JP2001501759A5 (ja) | 2005-08-11 |
JP3771273B2 true JP3771273B2 (ja) | 2006-04-26 |
Family
ID=24915094
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP51669798A Expired - Fee Related JP3771273B2 (ja) | 1996-10-03 | 1997-09-26 | 述語レジスタ・セットをレストアする方法および装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US5859999A (ja) |
EP (1) | EP1010064B1 (ja) |
JP (1) | JP3771273B2 (ja) |
AU (1) | AU4802197A (ja) |
DE (1) | DE69739718D1 (ja) |
WO (1) | WO1998014866A1 (ja) |
Families Citing this family (80)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6148350A (en) * | 1998-05-29 | 2000-11-14 | 3Com Corporation | System for allocating an integer unit of memory greater than a requested size and filling the extra space due to difference in sizes with extraneous data |
US6115808A (en) * | 1998-12-30 | 2000-09-05 | Intel Corporation | Method and apparatus for performing predicate hazard detection |
US20040158695A1 (en) * | 1999-05-03 | 2004-08-12 | Laurent Ugen | Method and apparatus for handling transfer of guarded instructions in a computer system |
US6640315B1 (en) | 1999-06-26 | 2003-10-28 | Board Of Trustees Of The University Of Illinois | Method and apparatus for enhancing instruction level parallelism |
US6539503B1 (en) | 1999-11-23 | 2003-03-25 | Hewlett-Packard Company | Method and apparatus for testing error detection |
US6388489B1 (en) | 1999-11-26 | 2002-05-14 | Hewlett-Packard Company | Large input function replaying dynamic entry latch with static and monotonic dual rail outputs |
US6668315B1 (en) | 1999-11-26 | 2003-12-23 | Hewlett-Packard Development Company, L.P. | Methods and apparatus for exchanging the contents of registers |
US6681322B1 (en) | 1999-11-26 | 2004-01-20 | Hewlett-Packard Development Company L.P. | Method and apparatus for emulating an instruction set extension in a digital computer system |
US6651176B1 (en) | 1999-12-08 | 2003-11-18 | Hewlett-Packard Development Company, L.P. | Systems and methods for variable control of power dissipation in a pipelined processor |
US6493812B1 (en) | 1999-12-17 | 2002-12-10 | Hewlett-Packard Company | Apparatus and method for virtual address aliasing and multiple page size support in a computer system having a prevalidated cache |
US6622284B1 (en) | 1999-12-17 | 2003-09-16 | Hewlett-Packard Development Company, L.P. | Method and apparatus for detection of errors in one-hot words |
US6625714B1 (en) | 1999-12-17 | 2003-09-23 | Hewlett-Packard Development Company, L.P. | Parallel distributed function translation lookaside buffer |
US6678853B1 (en) | 1999-12-17 | 2004-01-13 | Hewlett-Packard Development Company, L.P. | Method and apparatus for generating random code |
US6470437B1 (en) * | 1999-12-17 | 2002-10-22 | Hewlett-Packard Company | Updating and invalidating store data and removing stale cache lines in a prevalidated tag cache design |
US6484238B1 (en) | 1999-12-20 | 2002-11-19 | Hewlett-Packard Company | Apparatus and method for detecting snoop hits on victim lines issued to a higher level cache |
US6535989B1 (en) | 1999-12-22 | 2003-03-18 | Hewlett-Packard Company | Input clock delayed by a plurality of elements that are connected to logic circuitry to produce a clock frequency having a rational multiple less than one |
US7171547B1 (en) * | 1999-12-28 | 2007-01-30 | Intel Corporation | Method and apparatus to save processor architectural state for later process resumption |
US6587940B1 (en) | 2000-01-18 | 2003-07-01 | Hewlett-Packard Development Company | Local stall/hazard detect in superscalar, pipelined microprocessor to avoid re-read of register file |
US6591360B1 (en) | 2000-01-18 | 2003-07-08 | Hewlett-Packard Development Company | Local stall/hazard detect in superscalar, pipelined microprocessor |
US6604192B1 (en) | 2000-01-24 | 2003-08-05 | Hewlett-Packard Development Company, L.P. | System and method for utilizing instruction attributes to detect data hazards |
US6643762B1 (en) * | 2000-01-24 | 2003-11-04 | Hewlett-Packard Development Company, L.P. | Processing system and method utilizing a scoreboard to detect data hazards between instructions of computer programs |
US6622238B1 (en) | 2000-01-24 | 2003-09-16 | Hewlett-Packard Development Company, L.P. | System and method for providing predicate data |
US6438681B1 (en) | 2000-01-24 | 2002-08-20 | Hewlett-Packard Company | Detection of data hazards between instructions by decoding register indentifiers in each stage of processing system pipeline and comparing asserted bits in the decoded register indentifiers |
US6512706B1 (en) | 2000-01-28 | 2003-01-28 | Hewlett-Packard Company | System and method for writing to a register file |
US6715060B1 (en) | 2000-01-28 | 2004-03-30 | Hewlett-Packard Development Company, L.P. | Utilizing a scoreboard with multi-bit registers to indicate a progression status of an instruction that retrieves data |
US6490674B1 (en) | 2000-01-28 | 2002-12-03 | Hewlett-Packard Company | System and method for coalescing data utilized to detect data hazards |
US6618801B1 (en) | 2000-02-02 | 2003-09-09 | Hewlett-Packard Development Company, L.P. | Method and apparatus for implementing two architectures in a chip using bundles that contain microinstructions and template information |
US6643800B1 (en) * | 2000-02-02 | 2003-11-04 | Hewlett-Packard Development Company, L.P. | Method and apparatus for testing microarchitectural features by using tests written in microcode |
US6820190B1 (en) | 2000-02-02 | 2004-11-16 | Hewlett-Packard Development Company, L.P. | Method and computer system for decomposing macroinstructions into microinstructions and forcing the parallel issue of at least two microinstructions |
US6487550B1 (en) | 2000-02-03 | 2002-11-26 | Hewlett-Packard Company | Method and apparatus for finding a first element |
US6560737B1 (en) | 2000-02-16 | 2003-05-06 | Hewlett-Packard Development Company, L.P. | Method for adding scan controllability and observability to domino CMOS with low area and delay overhead |
US6895420B1 (en) | 2000-02-16 | 2005-05-17 | Hewlett-Packard Development Company, L.P. | Apparatus and method for sharing data FET for a four-way multiplexer |
US6292041B1 (en) | 2000-02-16 | 2001-09-18 | Hewlett Packard Company | Circuit and method for limiting subthreshold leakage |
US6629167B1 (en) | 2000-02-18 | 2003-09-30 | Hewlett-Packard Development Company, L.P. | Pipeline decoupling buffer for handling early data and late data |
US6636928B1 (en) | 2000-02-18 | 2003-10-21 | Hewlett-Packard Development Company, L.P. | Write posting with global ordering in multi-path systems |
US6587964B1 (en) | 2000-02-18 | 2003-07-01 | Hewlett-Packard Development Company, L.P. | Transparent software emulation as an alternative to hardware bus lock |
US6542862B1 (en) | 2000-02-18 | 2003-04-01 | Hewlett-Packard Development Company, L.P. | Determining register dependency in multiple architecture systems |
US6622241B1 (en) | 2000-02-18 | 2003-09-16 | Hewlett-Packard Development Company, L.P. | Method and apparatus for reducing branch prediction table pollution |
US6560664B1 (en) | 2000-02-18 | 2003-05-06 | Hewlett Packard Development Company, L.P. | Method and apparatus for translation lookaside buffers to access a common hardware page walker |
US6490656B1 (en) | 2000-02-18 | 2002-12-03 | Hewlett-Packard Company | Retaining state information of an array of elements by subdividing the array into groups of elements |
US6625759B1 (en) * | 2000-02-18 | 2003-09-23 | Hewlett-Packard Development Company, L.P. | Method and apparatus for verifying the fine-grained correctness of a behavioral model of a central processor unit |
US6654849B1 (en) | 2000-02-18 | 2003-11-25 | Hewlett-Packard Development Company, L.P. | Method and apparatus to minimize additional address bits and loading when adding a small patch RAM to a microcode ROM |
US6728823B1 (en) | 2000-02-18 | 2004-04-27 | Hewlett-Packard Development Company, L.P. | Cache connection with bypassing feature |
US6609247B1 (en) * | 2000-02-18 | 2003-08-19 | Hewlett-Packard Development Company | Method and apparatus for re-creating the trace of an emulated instruction set when executed on hardware native to a different instruction set field |
US6711671B1 (en) | 2000-02-18 | 2004-03-23 | Hewlett-Packard Development Company, L.P. | Non-speculative instruction fetch in speculative processing |
US6807625B1 (en) | 2000-02-18 | 2004-10-19 | Hewlett-Packard Development Company, L.P. | Method and apparatus for efficiently generating, storing, and consuming arithmetic flags between producing and consuming macroinstructions when emulating with microinstructions |
US6804769B1 (en) | 2000-02-18 | 2004-10-12 | Hewlett-Packard Development Company, L.P. | Unified buffer for tracking disparate long-latency operations in a microprocessor |
DE10050589B4 (de) | 2000-02-18 | 2006-04-06 | Hewlett-Packard Development Co., L.P., Houston | Vorrichtung und Verfahren zur Verwendung beim Durchführen einer Gleitkomma-Multiplizier-Akkumulier-Operation |
US6317379B1 (en) | 2000-02-18 | 2001-11-13 | Hewlett-Packard Company | Determine output of a read/write port |
US6654712B1 (en) | 2000-02-18 | 2003-11-25 | Hewlett-Packard Development Company, L.P. | Method to reduce skew in clock signal distribution using balanced wire widths |
US6532580B1 (en) | 2000-02-18 | 2003-03-11 | Hewlett-Packard Company | In-place method for inserting repeater buffers in an integrated circuit |
US6397375B1 (en) | 2000-02-18 | 2002-05-28 | Hewlett-Packard Company | Method for managing metal resources for over-the-block routing in integrated circuits |
US6910122B1 (en) * | 2000-02-18 | 2005-06-21 | Hewlett-Packard Development Company, L.P. | Method and apparatus for preserving pipeline data during a pipeline stall and for recovering from the pipeline stall |
US6704820B1 (en) | 2000-02-18 | 2004-03-09 | Hewlett-Packard Development Company, L.P. | Unified cache port consolidation |
US6745322B1 (en) | 2000-02-18 | 2004-06-01 | Hewlett-Packard Development Company, Lp. | Apparatus and method for conditionally flushing a pipeline upon a failure of a test condition |
US6477690B1 (en) | 2000-02-18 | 2002-11-05 | Hewlett-Packard Company | In-place repeater insertion methodology for over-the-block routed integrated circuits |
US6789186B1 (en) | 2000-02-18 | 2004-09-07 | Hewlett-Packard Development Company, L.P. | Method and apparatus to reduce penalty of microcode lookup |
US6591393B1 (en) | 2000-02-18 | 2003-07-08 | Hewlett-Packard Development Company, L.P. | Masking error detection/correction latency in multilevel cache transfers |
US6408426B1 (en) | 2000-02-19 | 2002-06-18 | Hewlett-Packard Company | Method for determining locations of interconnect repeater farms during physical design of integrated circuits |
US6351796B1 (en) | 2000-02-22 | 2002-02-26 | Hewlett-Packard Company | Methods and apparatus for increasing the efficiency of a higher level cache by selectively performing writes to the higher level cache |
US6470438B1 (en) | 2000-02-22 | 2002-10-22 | Hewlett-Packard Company | Methods and apparatus for reducing false hits in a non-tagged, n-way cache |
US6606720B1 (en) | 2000-02-22 | 2003-08-12 | Hewlett-Packard Development Company | Scan structure for CMOS storage elements |
US6721875B1 (en) * | 2000-02-22 | 2004-04-13 | Hewlett-Packard Development Company, L.P. | Method and apparatus for implementing a single-syllable IP-relative branch instruction and a long IP-relative branch instruction in a processor which fetches instructions in bundle form |
GB2363480B (en) * | 2000-06-13 | 2002-05-08 | Siroyan Ltd | Predicated execution of instructions in processors |
US6658471B1 (en) * | 2000-06-29 | 2003-12-02 | International Business Machines Corporation | Method and system for zero overhead software performance measurement instrumentation |
US6516388B1 (en) | 2000-09-15 | 2003-02-04 | Hewlett-Packard Company | Method and apparatus for reducing cache pollution |
US6826681B2 (en) * | 2001-06-18 | 2004-11-30 | Mips Technologies, Inc. | Instruction specified register value saving in allocated caller stack or not yet allocated callee stack |
US20030088761A1 (en) * | 2001-11-02 | 2003-05-08 | Paver Nigel C. | Register context usage indicator |
US20030126414A1 (en) * | 2002-01-02 | 2003-07-03 | Grochowski Edward T. | Processing partial register writes in an out-of order processor |
US7143270B1 (en) | 2004-01-30 | 2006-11-28 | Hewlett-Packard Development Company, L.P. | System and method for adding an instruction to an instruction set architecture |
JP4159586B2 (ja) * | 2006-08-03 | 2008-10-01 | エヌイーシーコンピュータテクノ株式会社 | 情報処理装置および情報処理の高速化方法 |
US8131982B2 (en) * | 2008-06-13 | 2012-03-06 | International Business Machines Corporation | Branch prediction instructions having mask values involving unloading and loading branch history data |
US10338923B2 (en) * | 2009-05-05 | 2019-07-02 | International Business Machines Corporation | Branch prediction path wrong guess instruction |
US8819399B1 (en) | 2009-07-31 | 2014-08-26 | Google Inc. | Predicated control flow and store instructions for native code module security |
US10360039B2 (en) * | 2009-09-28 | 2019-07-23 | Nvidia Corporation | Predicted instruction execution in parallel processors with reduced per-thread state information including choosing a minimum or maximum of two operands based on a predicate value |
US8521999B2 (en) * | 2010-03-11 | 2013-08-27 | International Business Machines Corporation | Executing touchBHT instruction to pre-fetch information to prediction mechanism for branch with taken history |
CN103460180B (zh) | 2011-03-25 | 2017-04-26 | 飞思卡尔半导体公司 | 带有断言寄存器的处理器系统、计算机系统和用于管理断言的方法 |
CN107239260B (zh) * | 2017-05-11 | 2020-07-24 | 中国电子科技集团公司第三十八研究所 | 一种面向数字信号处理器的多谓词控制及编译优化方法 |
US11106466B2 (en) | 2018-06-18 | 2021-08-31 | International Business Machines Corporation | Decoupling of conditional branches |
US11907713B2 (en) * | 2019-12-28 | 2024-02-20 | Intel Corporation | Apparatuses, methods, and systems for fused operations using sign modification in a processing element of a configurable spatial accelerator |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6029126B2 (ja) * | 1977-01-14 | 1985-07-09 | 株式会社日立製作所 | デ−タ処理装置 |
US4445173A (en) * | 1981-09-11 | 1984-04-24 | Data General Corporation | Improved system for saving and restoring state in call and return operations |
US4821231A (en) | 1983-04-18 | 1989-04-11 | Motorola, Inc. | Method and apparatus for selectively evaluating an effective address for a coprocessor |
US5321823A (en) * | 1988-07-20 | 1994-06-14 | Digital Equipment Corporation | Digital processor with bit mask for counting registers for fast register saves |
US5416911A (en) * | 1993-02-02 | 1995-05-16 | International Business Machines Corporation | Performance enhancement for load multiple register instruction |
EP0686912B1 (en) * | 1994-06-03 | 1998-12-16 | Motorola, Inc. | Data processor with an execution unit for performing load instructions and method of operation |
US5694565A (en) * | 1995-09-11 | 1997-12-02 | International Business Machines Corporation | Method and device for early deallocation of resources during load/store multiple operations to allow simultaneous dispatch/execution of subsequent instructions |
-
1996
- 1996-10-03 US US08/725,573 patent/US5859999A/en not_active Expired - Lifetime
-
1997
- 1997-09-26 DE DE69739718T patent/DE69739718D1/de not_active Expired - Lifetime
- 1997-09-26 WO PCT/US1997/017369 patent/WO1998014866A1/en active Application Filing
- 1997-09-26 EP EP97910720A patent/EP1010064B1/en not_active Expired - Lifetime
- 1997-09-26 JP JP51669798A patent/JP3771273B2/ja not_active Expired - Fee Related
- 1997-09-26 AU AU48021/97A patent/AU4802197A/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
WO1998014866A1 (en) | 1998-04-09 |
DE69739718D1 (de) | 2010-02-04 |
EP1010064A1 (en) | 2000-06-21 |
EP1010064B1 (en) | 2009-12-23 |
US5859999A (en) | 1999-01-12 |
EP1010064A4 (en) | 2006-07-26 |
AU4802197A (en) | 1998-04-24 |
JP2001501759A (ja) | 2001-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3771273B2 (ja) | 述語レジスタ・セットをレストアする方法および装置 | |
JP2518616B2 (ja) | 分岐方法 | |
JP2796797B2 (ja) | ディジタル命令プロセッサ制御装置によってインターラプトルーチンを処理する方法 | |
EP0365188B1 (en) | Central processor condition code method and apparatus | |
CA2082408C (en) | System and method for preserving source instruction atomicity in translated program code | |
US4435758A (en) | Method for conditional branch execution in SIMD vector processors | |
JP2937485B2 (ja) | スーパースカラプロセッサにおけるトラップを検出して実行する方法及び装置 | |
KR20010030587A (ko) | 데이터 처리장치 | |
US20080114975A1 (en) | Method and processing system for nested flow control utilizing predicate register and branch register | |
KR100777772B1 (ko) | 연산 처리 장치, 정보 처리 장치 및 레지스터 파일의 제어방법 | |
EP1241567A2 (en) | Method and apparatus for executing coprocessor instructions | |
JPH1115673A (ja) | 異なるランタイム環境において実行するための実行可能プログラムにおけるコードシーケンスを機能的に類似したコードシーケンスと条件付きで置き換えるローダ | |
JP3977931B2 (ja) | データプロセッサにおける条件分岐実行を制御するための方法および装置 | |
US6539471B2 (en) | Method and apparatus for pre-processing instructions for a processor | |
JP3756410B2 (ja) | 述語データを提供するシステム | |
US5943494A (en) | Method and system for processing multiple branch instructions that write to count and link registers | |
US20020019929A1 (en) | Data processing device and program conversion device | |
JP3830236B2 (ja) | クイック・デコード命令を用いるための方法およびデータ処理システム | |
JPH02197924A (ja) | 中央演算処理装置 | |
EP0211487A1 (en) | Conditional operations in computers | |
US20090119492A1 (en) | Data Processing Apparatus and Method for Handling Procedure Call Instructions | |
JPH033037A (ja) | マイクロプログラム制御方式 | |
JPS60250438A (ja) | 情報処理装置 | |
JPH05346872A (ja) | 異種計算機命令の疑似実行方法および装置 | |
JPS62174834A (ja) | 計算機のシステムおよび方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040927 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040927 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041117 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050823 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051124 |
|
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: 20060117 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060209 |
|
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: 20100217 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100217 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110217 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120217 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120217 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130217 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130217 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140217 Year of fee payment: 8 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |