JP3771273B2 - 述語レジスタ・セットをレストアする方法および装置 - Google Patents

述語レジスタ・セットをレストアする方法および装置 Download PDF

Info

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
Application number
JP51669798A
Other languages
English (en)
Other versions
JP2001501759A5 (ja
JP2001501759A (ja
Inventor
モリス,デイル・シイ
ミルズ,ジャック,ディ
Original Assignee
イデア・コーポレーション
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 イデア・コーポレーション filed Critical イデア・コーポレーション
Publication of JP2001501759A publication Critical patent/JP2001501759A/ja
Publication of JP2001501759A5 publication Critical patent/JP2001501759A5/ja
Application granted granted Critical
Publication of JP3771273B2 publication Critical patent/JP3771273B2/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
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30072Arrangements 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のレジスタ・セットの内前記マスクによって選択された複数のレジスタをレストアする段階と
    を含む方法。
  2. 第1のレジスタ・セットをレストアするプログラムを格納しているコンピュータ可読記憶媒体であって、コンピュータに
    第1のレジスタ・セットについてのレストア操作を指定する第1の命令をデコードさせるプログラムと、
    前記第1の命令から取り出されるとともに前記第1のレジスタ・セット中の複数のレジスタに対応する少なくとも1つのビットと残りの複数のレジスタに1対1で対応する複数のビットとを含むマスクであって、少数のマスク・ビットで多数のレジスタを制御し、それにより固定サイズの命令に適合させることを可能にしたマスクを使用して、前記第1のレジスタ・セットのレストアする複数のレジスタを選択させるプログラムと、
    前記少なくとも1つのビットがセットされているときに当該1つのビットに対応する複数のレジスタをレストアさせることをも含めて、前記第1の命令に応答して第1のレジスタ・セットの内前記マスクによって選択された複数のレジスタをレストアさせるプログラム
    格納しているコンピュータ可読記憶媒体。
  3. 第1のレジスタ・セットをレストアするように動作可能なコンピュータ・システムであって、
    第1のレジスタ・セット上でレストア操作を実行するよう指定する第1の命令をデコードするように動作可能に構成されたデコーダと、
    前記第1の命令から取り出されるとともに前記第1のレジスタ・セット中の複数のレジスタに対応する少なくとも1つのビットと残りの複数のレジスタに1対1で対応する複数のビットとを含むマスクであって、少数のマスク・ビットで多数のレジスタを制御し、それにより固定サイズの命令に適合させることを可能にしたマスクを使用して、前記第1のレジスタ・セットのレストアする複数のレジスタを選択するように動作可能に構成されたレストア・ユニットであって、さらに
    前記少なくとも1つのビットがセットされているときに当該1つのビットに対応する複数のレジスタをレストアすることをも含めて、前記第1の命令に応答して第1のレジスタ・セットの内前記マスクによって選択された複数のレジスタをレストアするように動作可能に構成されたレストア・ユニットと
    を含むコンピュータ・システム。
JP51669798A 1996-10-03 1997-09-26 述語レジスタ・セットをレストアする方法および装置 Expired - Fee Related JP3771273B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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