JP3707729B2 - アドレス生成インターロック検出方法およびシステム - Google Patents

アドレス生成インターロック検出方法およびシステム Download PDF

Info

Publication number
JP3707729B2
JP3707729B2 JP2001282724A JP2001282724A JP3707729B2 JP 3707729 B2 JP3707729 B2 JP 3707729B2 JP 2001282724 A JP2001282724 A JP 2001282724A JP 2001282724 A JP2001282724 A JP 2001282724A JP 3707729 B2 JP3707729 B2 JP 3707729B2
Authority
JP
Japan
Prior art keywords
general register
instruction
vector
execution
pending
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
JP2001282724A
Other languages
English (en)
Other versions
JP2002132500A (ja
Inventor
ブルース・シー・ジャメイ
マーク・エイ・チェック
ジョン・エス・リプテイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2002132500A publication Critical patent/JP2002132500A/ja
Application granted granted Critical
Publication of JP3707729B2 publication Critical patent/JP3707729B2/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/3838Dependency mechanisms, e.g. register scoreboarding
    • 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/3824Operand accessing
    • 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

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

【0001】
【発明の属する技術分野】
本開示は、パイプライン・プロセッサにおけるアドレス生成インターロックの検出のための方法およびシステムに関する。
【0002】
【従来の技術】
事実上、全ての高性能プロセッサは、今日、“パイプライン化”されている。大抵の命令は、同じ基本シーケンス、すなわち、最初に命令が必然的に取り出され、それがデコードされ、オペランドが取り出される、を通過する必要がある。次に、命令が必然的に実行され、実行の結果が必然的に格納される。次の命令を開始するよりも前に命令が全体シーケンスの初めから終わりまでを進むのを待つよりもむしろ、大抵のプロセッサ・アーキテクチャは、パイプライン化され、そしてそれによって、命令mがいったん取り出されデコード・ステージに進むと、命令m+1が取り出される。次に、命令mがアドレス生成ステージへ進み、命令m+1がデコード・ステージに進み、命令m+2が取り出される。こうして、複数の命令が、同時にパイプラインの様々なステージでアクティブになり得る。しかしながら、パイプラインへの命令のフローは、多くの理由で停止し得る。例えば、命令mが、次の命令例えば命令m+2がそのオペランドのアドレスを計算する必要があるレジスタを変更する場合には、命令m+2は、アドレス生成ステージに進み得るが、命令mがその結果を格納することを終了する(すなわち、命令m+2が必要とするレジスタを更新する)まで必然的にそこに保留される。その後になってはじめて、命令m+2は、そのアドレス生成を完了し、パイプラインを継続することができる。パイプラインへの命令のフローにおけるこの停止は、アドレス生成インターロック(Address Generation Interlock;AGI)と呼ばれる。
【0003】
命令デコード(Instruction−decode;Iデコード)および実行ステージの間に、命令がキュー内に配置され、Iデコード・ステージがアドレス生成(address generation;AGEN)の準備において汎用レジスタ(general registers;GR's)を読み取るために使用される場合には、AGIは、必要とされるGR'sを、各々のおよび全ての適切な命令キュー(instruction queue;Iキュー)位置からの保留GR更新情報と比較することにより、デコード・サイクルの間に検出可能である。命令は、対応する命令のサクセスフルな実行に引き続いてIキューから取り除かれる。
【0004】
【発明が解決しようとする課題】
以前は、これは、各Iキュー位置において、対応する命令によって更新されるべきGR'sの範囲を定義する最初のおよび最後のGR番号を保管することによって成し遂げられてきた。新しい命令がデコードされるとき、AGENに必要とされるGR'sは、Iキュー内部の全ての保留GR更新範囲と比較される。一方、各GR読み取りについては、これは、ZがIキュー位置の番号であるZ入力論理ORファンクションが従う保留範囲を完全に定義するために、2N個のGR'sに加えていくつかの組み合わせ論理を備えるマシンにおいて、2つのNビット比較器を必要とする。しかしながら、Iキューのサイズが増大するにつれ、そしてマシン・サイクル・タイムが短縮されるにつれ、このソリューションを実現することがますます困難となる。
【0005】
【課題を解決するための手段】
命令デコード・ステージ,デコード・ステージに続くアドレス計算ステージ,およびアドレス計算ステージに続く命令実行ステージを含む複数のシリアルに接続された処理ステージの形式のパイプラインを有するデータ・プロセッサにおいてアドレス生成インターロックを検出する方法およびシステムであって、各ステージは、パイプラインが命令のシリーズをステージからステージへ移して命令のシリーズにパイプライン処理を実行する命令を処理し、データ・プロセッサは、パイプライン内の命令実行ステージにおいて命令処理の結果として書き込まれ、あるいは、パイプライン内のアドレス計算ステージにおいて命令の処理の間に読み取られ得るN個の汎用レジスタのセットを含む方法およびシステムが開示される。この方法は、プロセッサ・クロック・サイクルの定義済数の上に複数のベクトルを累算するステップ、後続のベクトルが後続のクロック・サイクルに対応し、特定の汎用レジスタに対応する複数のベクトルの各ベクトルにおいて同一のビット位置を有する複数のベクトルに1以上の汎用レジスタのステータスを累算するステップ、複数のベクトルの論理結合から保留汎用レジスタ更新のリストを生成するステップ、保留汎用レジスタ更新のリストからアドレス生成インターロックの存在を判別するステップを含む。
【0006】
【発明の実施の形態】
サイクル・タイム圧力を減らすために、その大多数が少なくとも次のサイクルの間Iキュー内にとどまり得る、Iキュー内の命令についての保留GR更新情報が、保留GR更新の要約へあらかじめ累算されるということが望ましい。これを行うために、保留GR更新情報を保管するために使用されるIキュー・フィールドは、フォーマットが、2つのNビット値から、各ビットが対応する更新されるべきGRを指示する単一の2Nビット・ベクトルへ変更され得る。これは、これらのベクトルのいくつかに、共に論理ORされ(logically OR'ed together)、あらかじめ要約ベクトルを作成することを許可する。要約ベクトルは、あらかじめサイクルを計算されるので、IデコードからIキューへ加えられ、あるいは実行によってIキューから取り除かれる命令は、同様の方法(2つの付加的2Nビット・ベクトルは、これらの命令を追跡するために使用可能である)で別個にアカウントされる必要がある。その結果、3つの2Nビット・ベクトルを結合して単一の2Nビット・ベクトルにし、更新されるべき全ての保留GR'sを識別し、結果を、選択ラインとしてAGENのためのGR読み取りアドレスを用いる2N:1マルチプレクサに与えることにより、AGIは、Iデコード・サイクルにおいて検出可能である。
【0007】
AGI状態によって影響を受けた命令のAGENサイクルは、ブロックされ得る。影響を受けた命令は、全ての未解決のAGI状態が解決されるまでパイプラインのアドレス加算器ステージ内にとどまり得る。AGI状態を生じさせ得る命令についての情報は、Iキュー内に保持される。Iキューにおいて各命令について保管された情報の一部は、GR書込みフラグのセットである。書込みフラグは、一定の命令がGRsまたはARsのどちらを更新あるいは書き込むか指示する。各未処理の命令についてのフラグは、命令デコードの必要なGR読み取りに対して比較される。デコードの間に、GRsは、AGENのために読み取られている。GR読み取りが未処理のGR更新と交差する場合には、つまり、AGI状態が存在する。インターロックされた命令のデコード・サイクルは、首尾よく完了することを許される。標準的にデコードと関連したGR読み取りは、インターロックされた命令がインタレストの新しいGR内容を待つ間に絶えず再試行される。その期間の間に、インターロックされた命令のAGENサイクルは、ブロックされた、または不成功とみなされる。インターロックされた命令の次の命令は、たとえその命令がAGENファンクションを必要としなくても、そのデコード・サイクルを完了することからブロックされる。AGIによって遅延させられた命令の実際のデコード・サイクルは、終了することを許され、アドレス加算(address add;AA)サイクルは、成功するまで遅延させられる、もしくは繰り返される。遅延させられたAAは、たとえ将来の命令がアドレス加算器を必要としなくても、将来の命令のさらなるデコードをブロックする結果になる。Iキュー内の1命令以上が、現在デコードする命令に対してAGI状態を生じさせ得る。1つのインターロック以上が発生する場合には、AAサイクルは、全ての未解決のAGI状態が解決されるまでブロックされ得る。
【0008】
GR書込みフラグ(命令ごとに16個であり、GRごとに1つが割り当てられる)は、命令のデコード・サイクルの間に判別される。いったん、命令が首尾よくデコードされると、命令は、Iキュー内へ移動する。Iキューは、ディープであり得る(よりディープなキューに発展することが予期される)ので、Iキューは難しすぎて、命令デコードに対して全てのIキュー位置を比較することができない。したがって、Iキュー内の全ての保留GR更新は、要約され、16ビット要約汎用レジスタ書込みベクトル内へ配置される。これは、サイクル・タイム問題を緩和する。例えば、要約汎用レジスタ書込みベクトルのビット5=1bの場合には、つまり、GR5を更新し得る命令がIキュー内に存在する。Iキューを更新することに加えて、新しいGR書込みフラグは、IキューAGI情報をバイパスし、命令についてのデコードされたベクトルを提供して、その最後のデコード・サイクルの次のサイクルにおいてそのAGIカバレッジ(coverage)を維持できることが必要とされる。適切なものよりも長いAGI状態の検出を回避するために、命令は、その確認済み実行セットアップ・サイクル(E0)の間に、AGIキューから命令実行リストへ移される。これは、IキューAGI情報とAGI検出論理との間のエクストラ・ラッチのために、必須である。
【0009】
AGI検出論理は、命令デコードの汎用レジスタ・ベース読み取りアドレス(ベース,B)および汎用レジスタ・インデックス読み取りアドレス(インデックス,X)・フィールドを使用し、保留GR書込みベクトルの適切なビットを選択して、AGI状態が存在するか否か判別する。図3および4は、どのサイクルで命令がインターロックを生じさせ得るか、そしてデータ・フローのどの部分が各サイクルにおける検出を可能にするか説明する。
【0010】
図1を参照すると、本発明のデータフローが100において概略的に示される。命令レジスタ80は、出力としてデコードされた命令82を与える。命令デコード90は、出力として、どのGR'sがデコードされた命令に対して更新されるべきか識別する汎用レジスタ書込みベクトル92を与える。汎用レジスタ書込みベクトル92は、入力としてアドレス生成インターロック・キュー200へ与えられる。AGIキュー200は、保留GR更新を有し得る命令のリストである。アドレス生成インターロック・キュー200は、出力として、デコードされたが未だ実行が開始されていない命令に対応するGR書込みベクトルのセットを与える。ベクトルの出力セット202は、入力として、要約ファンクション300および選択ファンクション400へ与えられる。要約ファンクション300において、各出力ベクトル202(AGIキュー・エントリ)は、汎用レジスタ書込みべクトルにAGI情報の要約の計算に関与することを許容する、対応する制御信号304と結合される。要約ファンクション300は、出力302として、デコードされたが未だ実行されていない未処理の命令の保留汎用レジスタ更新を与える。選択ファンクション400において、ベクトルの出力セット202は、どのAGIキュー・エントリが実行ベクトル内へ移されるべきか指定する制御信号404と結合される。選択されたAGIキュー・エントリは、現在実行セットアップ・サイクル,E0内にある命令に対応する。選択ファンクション400は、出力として、E0サイクル内にある命令に対応するベクトル402を与える。
【0011】
汎用レジスタ書込みベクトル92は、さらに、入力として、デコードされたベクトル500へ与えられる。一方、未処理の命令の保留汎用レジスタ更新302は、入力として、要約ベクトル600へ与えられ、そして、E0サイクル内にある命令に対応する出力ベクトル402は、入力として、実行ベクトル700へ与えられる。
【0012】
デコードされたベクトル500は、出力として、新しくデコードされた命令についての保留GR更新を指示する新しい汎用レジスタ書込みベクトル502を与える。要約ベクトル600は、出力として、実行を待つ命令についての保留GR更新を指示する要約汎用レジスタ書込みベクトル602を与える。そして、実行ベクトル700は、出力として、実行ユニット内の命令についての保留GR更新を指示する命令実行リスト汎用レジスタ書込みベクトル702を与える。前述のベクトル502,602,702は、出力として全ての保留GR更新を指示するトラップ・ベクトル802を与える論理ORゲート800内で結合される。トラップ・ベクトル802は、そこにおいてトラップ・ベクトル802が汎用レジスタ・ベース読み取りアドレス902と結合され、“ベース”に対する無条件のAGI検出102を出力として与えるn:1マルチプレクサ900へ入力として与えられる。トラップ・ベクトル802は、さらに、そこにおいてトラップ・ベクトル802が汎用レジスタ・インデックス読み取りアドレス1002と結合され、“インデックス”に対する無条件のAGI検出104を出力として与えるn:1マルチプレクサ1000へ入力として与えられる。nは、GR'sの数である。
【0013】
図2を参照すると、AGIキュー200は、複数のマルチプレクサ204との206での信号通信における(デコードされたが未だ実行されていない命令に対応する)AGIキュー汎用レジスタ書込みベクトル208を含む複数のラッチを備える。複数のマルチプレクサ204は、入力として、(どの汎用レジスタがデコードされた命令に対して更新されるべきか識別する)デコード汎用レジスタ書込みベクトル92と、フィードバック信号210すなわち、AGIキュー汎用レジスタ書込みベクトル208の出力とを受け取る。AGIキュー汎用レジスタ書込みベクトル208は、出力として、デコードされたが未だ実行されていない命令202を与える。デコードされたが未だ実行されていない命令202は、入力として、要約ファンクション300および選択ファンクション400へ与えられる。
【0014】
要約ファンクション300は、入力として、対応するAGIキュー・エントリからの汎用レジスタ書込みベクトル208にAGI情報の要約の計算に関与することを許容する複数の制御信号304をさらに受け取る。信号304およびベクトル202は、論理ANDゲート306において結合され、それによって、出力として修飾ベクトルのセット308を与える。修飾ベクトルのセット308は、論理ORゲート310において結合され、それによって、デコードされたが未だ実行されていない未処理の命令の保留汎用レジスタ更新を指示する信号302を出力として与える。上述したように、出力信号302すなわちデコードされたが未だ実行されていない命令の保留汎用レジスタ更新は、実行を待つ命令についての保留汎用レジスタ更新を出力602として与える要約ベクトル600へ与えられる。
【0015】
選択ファンクション400は、デコードされたが未だ実行されていない命令に対応するベクトル202と、どのAGIキュー・エントリが実行ベクトル内へ移されるべきか指定する制御信号404とを、入力として受け取るために働くマルチプレクサ406を備える。選択ファンクションは、このようにして、E0サイクル内にある命令に対応するベクトル402を出力として与える。
【0016】
実行ベクトル700は、マルチプレクサ704との706での信号通信における命令実行リスト汎用レジスタ書込みベクトル718を含むラッチを備える。マルチプレクサ704は、前述のベクトル402,(パイプラインの実行ステージ内の命令に対応する)命令実行リスト汎用レジスタ書込みベクトル718の出力からのフィードバック信号708およびE0実行サイクル確認716を入力として受け取る。命令実行リスト汎用レジスタ書込みベクトル718の出力および命令実行リスト汎用レジスタ書込みベクトル718の妥当性検査714は、論理ANDゲート710において結合され、それによって、実行ユニット内の命令についての保留汎用レジスタ更新702を出力として与える。
【0017】
デコード・ベクトル500は、マルチプレクサ504との506での信号通信におけるラッチ508を備える。マルチプレクサ504は、デコード汎用レジスタ書込みベクトル92(どの汎用レジスタがデコードされた命令に対して更新されるべきか識別する),新しい汎用レジスタ書込みベクトル・ラッチ508の出力からのフィードバック信号である新しい汎用レジスタ書込みベクトル510(首尾よくデコードされた最後の命令に対応する)およびAGIが前のサイクルにおいて検出され、したがってAGENが現在のサイクルにおいて成功できず汎用レジスタが再読取りされる必要がある時に働く信号516を入力として受け取る。新しい汎用レジスタ書込みベクトル・ラッチ508は、出力として、新しい汎用レジスタ書込みベクトル510を与える。信号516は、518で反転されて新しい汎用レジスタ書込みベクトル510の使用修飾(usage qualification)520を与える。ラッチ522は、新しい汎用レジスタ書込みベクトル510を妥当性検査する信号524を与える。新しい汎用レジスタ書込みベクトル510,新しい汎用レジスタ書込みベクトル510の使用修飾520および信号524は、新しいAGIトラップ・ベクトル502を出力として与える論理ANDゲート512において結合される。新しいAGIトラップ・ベクトル502は、汎用レジスタ書込みベクトルが000016に等しくなければ、汎用レジスタ書込みベクトル510がAGI検出に関与する必要がある時に、新しい汎用レジスタ書込みベクトル510と等しい。
【0018】
新しいAGIトラップ・ベクトル502(新しくデコードされた命令のための保留汎用レジスタ更新),実行を待つ命令のための保留汎用レジスタ更新602および命令実行リスト汎用レジスタ書込みベクトル702は、論理ORゲート800において結合されて全ての保留汎用レジスタ更新のリストであるAGIトラップ・ベクトル802を出力として与える。全ての保留汎用レジスタ更新のリスト802は、マルチプレクサ900において汎用レジスタ・ベース読み取りアドレス902と結合される。ベース読み取りアドレス902によってアドレス指定された汎用レジスタの内容は、AGENの際にベース・レジスタとして使用され得る。ベース読み取りアドレスは、命令デコードの際に判別される。マルチプレクサ900の出力102は、ベースに対するAGI検出である。全ての保留汎用レジスタ更新のリスト802は、さらに、マルチプレクサ1000において汎用レジスタ・インデックス読み取りアドレス1002と結合される。汎用レジスタ・インデックス読み取りアドレス1002の内容は、AGENの際にインデックス・レジスタとして使用され得る。インデックス読み取りアドレスは、命令デコードの際に判別される。マルチプレクサ1000の出力104は、インデックスに対するAGI検出である。
【0019】
図3において、第1の代表的な命令のタイミング図が10で概略的に示される。命令の完了は、単一のデコード・サイクル12,実行セットアップ・サイクル14,実行サイクル16および格納サイクル18を含む6つのサイクルを必要とする。AGIカバレッジ(coverage)は、デコード・サイクル12の次のサイクルから最後の実行サイクル16の末端までの22において必要とされ、それからGR'sは、20で更新される。デコード・サイクル12の際に、GR'sの命令更新は24で判別され、命令デコード90は、デコード・ベクトル500およびAGIキュー200に供給(feeds)する。命令最終デコード・サイクル確認が行われる。デコード・サイクル12の次に、AGIカバレッジがデコード・ベクトル500によって26で与えられ、AGIキュー200は、要約ベクトル600に供給(feeds)する。先のAGIカバレッジ26の次に、AGIが要約ベクトル600によって28で与えられる。実行セットアップ・サイクル14の際に、AGIキュー200は実行ベクトル700に供給(feeds)する。実行セットアップ・サイクル14の次に、AGIカバレッジが実行ベクトル700によって32で与えられ、命令最終実行サイクル16が確認されGR'sが20で更新される。
【0020】
図4において、第2の代表的な命令のタイミング図が50で概略的に示される。命令の完了は、第1および第2のデコード・サイクル52,54,実行セットアップ・サイクル56,第1および第2の実行サイクル58,60および格納サイクル62を含む8つのサイクルを必要とする。AGIカバレッジは、最後のデコード・サイクル54の次のサイクルから最後の実行サイクル60の末端までの66で必要とされ、それからGR'sが64で更新される。最後のデコード・サイクル54の際に、GR'sの命令更新が68で判別され、命令デコード90は、デコード・ベクトル500およびAGIキュー200に供給(feeds)する。命令最終デコード・サイクル確認が行われる。最後のデコード・サイクル54の次に、AGIカバレッジは、デコード・ベクトル500によって70で与えられ、AGIキュー200は、要約ベクトル600に供給(feeds)する。先のAGIカバレッジ70の次に、AGIは、要約ベクトル600によって72で与えられる。実行セットアップ・サイクル56の際に、74で、AGIキュー200は、実行ベクトル700に供給(feeds)する。実行セットアップ・サイクル56の次に、AGIカバレッジは、実行ベクトル700によって76で与えられ、命令最終実行サイクル60が確認され、GR'sが64で更新される。
【0021】
いったんAGI状態が検出されると、その状態は、インターロックを生じさせる最後の命令が格納サイクル(put away;PA)に達するまで存在し続け得る。格納サイクルの際に、インタレストの汎用レジスタあるいはアクセス・レジスタ(access register;AR)は、GRまたはARアレイへ書き込まれる。GRおよびARアレイは、新しいデータのためのバイパス・パスを有する。したがって、そこにおいてGRが更新されるサイクルは、GRを読み取り、更新済み内容を獲得するための最初のサイクルである。このサイクルの際に、更新済みGRが読み取られ、その出力がアドレス加算器への入力であるラッチへ供給される。アドレス加算サイクル,AAは、次のサイクルを許可される。
【0022】
図6において、3つの代表的な命令のタイミング図が120,140,170で概略的に示される。命令C120の完了は、単一のデコード・サイクル122,実行セットアップ・サイクル124,実行サイクル126および格納サイクル128を含む6つのサイクルを必要とする。130での実行サイクル126の際に、将来のGR内容が実行ユニットによって計算され、実行ユニットの出力レジスタ内に配置される。命令Cの格納サイクル132において、更新済みGR情報を読み取るための最初のサイクルが存在する。AGI−Q2へ割当てられた命令Cは、命令DについてのAGIを生じさせる。したがって、命令Dデコード・サイクル142の次のサイクルから命令Cの格納サイクル128の末端までの命令Dのアドレス加算は、命令CによってもたらされたAGIによってブロックされる。命令D140のアドレス加算は、命令Cの格納サイクル128の完了の後まで成功しない。命令Eのデコード172,174,176,178は、アドレス加算が、152および180において命令Dについて成功するまで遅延させられる。
【0023】
図6内の184において、AGIq有効信号は、命令Cデコードの後にhighになり、命令CのE0サイクルの後までその状態のままである。186において、命令Dに対応する同種の信号が示され、この信号は、命令Dデコードの後にhighになり、命令DのE0サイクルの後までその状態のままである。188において、汎用レジスタ書込みベクトルにAGI情報の要約の計算に関与することを許可する制御信号304は、AGIの間lowであり、命令Dが成功したアドレス加算を得る後までその状態のままであり、それから、制御信号304は、highになる。190において、AGIヒット信号は、命令Cアドレス加算の間highになり、AGIが消えるまでその状態のままである。192において、AGIブロック・デコード信号は、AGIヒット信号190のラッチされたコピーであり、その結果、AGIq−3書込みベクトルおよび命令Dに対応する新しい汎用レジスタ書込みベクトルは、無視される。
【0024】
好適な実施の形態と関連して本発明を説明してきたが、本発明の範囲から外れることなしに、様々な変更を行うことができ、発明の構成要素を均等物で置換することができるということが、当業者によって理解できる。その上、多くの変更をおこなって、発明の本質的な範囲から外れることなしに、特定の状況あるいは要素を本発明の教示に適合させることができる。したがって、本発明は、本発明実施のための熟慮された最良の形態として開示された特定の実施の形態に限定されず、その一方で、本発明は、添付の特許請求の範囲の範囲に含まれる全ての実施の形態を含み得るということが意図される。
【0025】
まとめとして、本発明の構成に関して以下の事項を開示する。
(1)命令デコード・ステージ,前記デコード・ステージに続くアドレス計算ステージ,および前記アドレス計算ステージに続く命令実行ステージを含む複数のシリアルに接続された処理ステージの形式のパイプラインを有するデータ・プロセッサにおいてアドレス生成インターロックを検出する方法であって、各ステージは、前記パイプラインが命令のシリーズをステージからステージへ移して前記命令のシリーズにパイプライン処理を実行する命令を処理し、前記データ・プロセッサは、前記パイプライン内の前記命令実行ステージにおいて命令処理の結果として書き込まれ、あるいは、前記パイプライン内の前記アドレス計算ステージにおいて前記命令の処理の間に読み取られ得るN個の汎用レジスタのセットを含み、前記方法は、プロセッサ・クロック・サイクルの定義済数の上に複数のベクトルを累算するステップ、後続のベクトルが後続のクロック・サイクルに対応し、特定の汎用レジスタに対応する前記複数のベクトルの各ベクトルにおいて同一のビット位置を有する前記複数のベクトルに1以上の汎用レジスタのステータスを累算するステップ、前記複数のベクトルの論理結合から保留汎用レジスタ更新のリストを生成するステップ、前記保留汎用レジスタ更新のリストからアドレス生成インターロックの存在を判別するステップを含む方法。
(2)特定の汎用レジスタに対応する前記複数のベクトルの各ベクトルにおいて同一のビット位置を有する前記複数のベクトルに前記1以上の汎用レジスタのステータスを累算するステップは、どの汎用レジスタが前記デコードされた命令に対して更新されるべきか識別するステップと、アドレス生成インターロック・キューにおいて、保留汎用レジスタ更新を有し得る命令のリストを生成するステップと、新しくデコードされた命令についての保留汎用レジスタ更新を含むデコードされたベクトルを生成するステップと、実行を待つ命令についての保留汎用レジスタ更新を含む要約ベクトルを生成するステップと、前記実行ステージ内の命令についての保留汎用レジスタ更新を含む実行ベクトルを生成するステップとを含む上記(1)に記載の方法。
(3)デコードされたが未だ実行されていない命令を、汎用レジスタ書込みベクトルにアドレス生成インターロック情報の要約の計算に関与することを許可する第1の制御信号と結合し、それによって未処理の命令の前記保留汎用レジスタ更新を生成するステップを、さらに含む上記(2)に記載の方法。
(4)デコードされたが未だ実行されていない命令を、どのアドレス生成インターロック・キュー・エントリが前記実行ベクトル内に移されるべきか指定する第2の制御信号と結合し、それによって実行サイクル内にある前記命令に対応するベクトルを生成するステップを、さらに含む上記(2)に記載の方法。
(5)デコードされたが未だ実行されていない命令を、前記第1の制御信号と結合するステップは、前記第1の制御信号と共に、前記デコードされたが未だ実行されていない命令に論理ANDを行い、それによってデコードされたが未だ実行されていない命令に対応する条件付のベクトルを生成するステップと、デコードされたが未だ実行されていない命令に対応する前記条件付のベクトルに論理ORを行うステップとを含む上記(3)に記載の方法。
(6)デコードされたが未だ実行されていない命令を、前記第2の制御信号と結合するステップは、前記第2の制御信号と、前記デコードされたが未だ実行されていない命令を多重化するステップを含む上記(4)に記載の方法。
(7)新しくデコードされた命令についての保留汎用レジスタ更新を含むデコードされたベクトルを生成するステップは、汎用レジスタ書込みベクトル,前のサイクルにおいてアドレス生成インターロックが検出された時に働く信号および新しい汎用レジスタ書込みベクトルを多重化するステップと、前記新しい汎用レジスタ書込みベクトル,前記新しい汎用レジスタ書込みベクトルを妥当性検査する信号および前記新しい汎用レジスタ書込みベクトルの使用修飾に論理ANDを行うステップとを含む上記(2)に記載の方法。
(8)前記実行ステージ内の命令についての保留汎用レジスタ更新を含む実行ベクトルを生成するステップは、実行サイクル内にある前記命令に対応するベクトル,実行サイクル確認および命令実行リスト汎用レジスタ書込みベクトルを多重化するステップと、前記命令実行リスト汎用レジスタ書込みベクトルおよび前記命令実行リスト汎用レジスタ書込みベクトルの妥当性検査に論理ANDを行うステップとを含む上記(2)に記載の方法。
(9)前記複数のベクトルの論理結合から保留汎用レジスタ更新のリストを生成するステップは、新しくデコードされた命令についての前記保留汎用レジスタ更新,実行を待つ命令についての前記保留汎用レジスタ更新および前記実行ステージ内の命令についての前記保留汎用レジスタ更新に論理ORを行うステップを含む上記(2)に記載の方法。
(10)前記保留汎用レジスタ更新のリストからアドレス生成インターロックの存在を判別するステップは、前記保留汎用レジスタ更新のリストを、汎用レジスタ・ベース読み取りアドレスと結合し、それによってベースに対するアドレス生成インターロック検出を生成するステップを含む上記(9)に記載の方法。
(11)前記保留汎用レジスタ更新のリストからアドレス生成インターロックの存在を判別するステップは、前記保留汎用レジスタ更新のリストを、汎用レジスタ・インデックス読み取りアドレスと結合し、それによってインデックスに対するアドレス生成インターロック検出を生成するステップを含む上記(9)に記載の方法。
(12)前記保留汎用レジスタ更新のリストを、汎用レジスタ・ベース読み取りアドレスと結合する前記ステップは、前記保留汎用レジスタ更新のリストを、前記汎用レジスタ・ベース読み取りアドレスと多重化するステップを含む上記(10)に記載の方法。
(13)前記保留汎用レジスタ更新のリストを、汎用レジスタ・インデックス読み取りアドレスと結合する前記ステップは、前記保留汎用レジスタ更新のリストを、前記汎用レジスタ・インデックス読み取りアドレスと多重化するステップを含む上記(11)に記載の方法。
(14)アドレス生成インターロック・キューを与えるステップは、どの汎用レジスタが前記デコードされた命令に対して更新されるべきか識別する汎用レジスタ書込みベクトルをそこへ入力として受け取る複数のマルチプレクサとの信号通信内に複数の汎用レジスタ書込みベクトルを与えるステップを含む上記(2)に記載の方法。
(15)命令デコード・ステージ,前記デコード・ステージに続くアドレス計算ステージ,および前記アドレス計算ステージに続く命令実行ステージを含む複数のシリアルに接続された処理ステージの形式のパイプラインを有するデータ・プロセッサにおいてアドレス生成インターロックを検出するシステムであって、各ステージは、前記パイプラインが命令のシリーズをステージからステージへ移して前記命令のシリーズにパイプライン処理を実行する命令を処理し、前記データ・プロセッサは、前記パイプライン内の前記命令実行ステージにおいて命令処理の結果として書き込まれ、あるいは、前記パイプライン内の前記デコード・ステージにおいて前記命令の処理の間に読み取られ得るN個の汎用レジスタのセットを含み、前記システムは、命令レジスタとの通信における命令デコード・ファンクションから発生する汎用レジスタ書込みベクトル、前記汎用レジスタ書込みベクトルは、どの汎用レジスタが前記デコードされた命令に対して更新されるべきか識別し、保留汎用レジスタ更新を有し得る命令のリストを含み、前記汎用レジスタ書込みベクトルをそこへ入力として受け取るために働くアドレス生成インターロック・キュー、新しくデコードされた命令についての保留汎用レジスタ更新を含むデコードされたベクトル、実行を待つ命令についての保留汎用レジスタ更新を含む要約ベクトル、前記実行ステージ内の命令についての保留汎用レジスタ更新を含む実行ベクトル、を備えるシステム。
(16)前記アドレス生成インターロック・キューは、前記デコード汎用レジスタ書込みベクトルをそこへ入力として受け取るために働く複数の第1のマルチプレクサと、前記複数の第1のマルチプレクサとの信号通信における、デコードされたが未だ実行されていない命令に対応するアドレス生成インターロック・キュー汎用レジスタ書込みベクトルを含み、前記デコードされたが未だ実行されていない命令を出力として与えるために働く複数のラッチとを有する上記(15)に記載のシステム。
(17)実行を待つ命令についての前記保留汎用レジスタ更新を生成する論理回路の第1のセットを、さらに備える上記(16)に記載のシステム。
(18)前記論理回路の第1のセットは、デコードされたが未だ実行されていない命令を、対応するアドレス生成インターロック・キュー・エントリからの前記汎用レジスタ書込みベクトルにアドレス生成インターロック情報の要約の計算に関与することを許可する制御信号と結合し、それによって修飾ベクトルのセットを生成する第1の論理ANDゲートと、前記修飾ベクトルのセットをそこへ入力として受け取り、それによって実行を待つ命令についての前記保留汎用レジスタ更新を生成するために働く第1の論理ORゲートとを有する上記(17)に記載のシステム。
(19)前記実行ステージ内の命令についての前記保留汎用レジスタ更新を生成する論理回路の第2のセットを、さらに備える上記(16)に記載のシステム。
(20)前記論理回路の第2のセットは、前記デコードされたが未だ実行されていない命令を、どのアドレス生成インターロック・キュー・エントリが前記実行ベクトル内へ移されるべきか指定する制御信号と結合し、それによって実行セットアップ・サイクル内にある前記命令に対応するベクトルを生成する第2のマルチプレクサと、前記実行セットアップ・サイクル内にある前記命令に対応する前記ベクトルを、実行セットアップ・サイクル確認と結合し、それによって前記パイプラインの前記実行ステージ内の前記命令に対応する命令実行リスト汎用レジスタ書込みベクトルを生成する第3のマルチプレクサと、前記命令実行リスト汎用レジスタ書込みベクトルを、前記命令実行リスト汎用レジスタ書込みベクトルの妥当性検査と結合し、それによって前記実行ユニット内の命令についての前記保留汎用レジスタ更新を生成する第2の論理ANDゲートとを有する上記(19)に記載のシステム。
(21)新しくデコードされた命令についての前記保留汎用レジスタ更新を生成する論理回路の第3のセットを、さらに備える上記(16)に記載のシステム。
(22)前記論理回路の第3のセットは、前記汎用レジスタ書込みベクトルを、前のサイクルにおいて前記アドレス生成インターロックが検出された時に働く信号と結合し、それによって出力信号を生成する第4のマルチプレクサと、前記出力信号をそこへ入力として受け取り、新しい汎用レジスタ書込みベクトルを出力として与えるために働く新しい汎用レジスタ書込みベクトル・ラッチと、前記新しい汎用レジスタ書込みベクトルを妥当性検査する信号,前記新しい汎用レジスタ書込みベクトルの使用修飾および前記新しい汎用レジスタ書込みベクトルを結合し、それによって新しくデコードされた命令についての前記保留汎用レジスタ更新を生成する第3の論理ANDゲートとを有する上記(21)に記載のシステム。
(23)新しくデコードされた命令についての前記保留汎用レジスタ更新,実行を待つ命令についての前記保留汎用レジスタ更新および前記実行ユニット内の命令についての前記保留汎用レジスタ更新を結合し、それによって全ての保留汎用レジスタ更新を出力として与える第2の論理ORゲートを、さらに備える上記(16)に記載のシステム。
(24)前記全ての保留汎用レジスタ更新のリストおよび汎用レジスタ・ベース読み取りアドレスを結合する第5のマルチプレクサを、さらに備える上記(23)に記載のシステム。
(25)前記全ての保留汎用レジスタ更新のリストおよび汎用レジスタ・インデックス読み取りアドレスを結合する第6のマルチプレクサを、さらに備える上記(23)に記載のシステム。
【図面の簡単な説明】
【図1】本発明のアドレス生成インターロック検出データフローの概括的な概略図である。
【図2】図1のアドレス生成インターロック検出データフローのより詳述した概略図である。
【図3】アドレス生成インターロックを生じさせる単一のデコード・サイクルおよび単一の実行サイクルを備える代表的な命令のタイミング図である。
【図4】アドレス生成インターロックを生じさせる複数のデコード・サイクルおよび複数の実行サイクルを備える命令のタイミング図である。
【図5】パイプライン・プロセッサにおける命令ストリームの全体のタイミング図である。
【図6】3つの代表的な命令の標準のアドレス生成インターロック解決のタイミング図である。
【符号の説明】
80 命令レジスタ
90 命令デコード
100 データフロー
200 アドレス生成インターロック・キュー
204 複数のマルチプレクサ
208 AGIキュー汎用レジスタ書込みベクトル
300 要約ファンクション
306 論理ANDゲート
310 論理ORゲート
400 選択ファンクション
406 マルチプレクサ
500 デコードされたベクトル
504 マルチプレクサ
508 ラッチ
512 論理ANDゲート
518 反転
522 ラッチ
600 要約ベクトル
700 実行ベクトル
704 マルチプレクサ
710 論理ANDゲート
718 命令実行リスト汎用レジスタ書込みベクトル
800 論理ORゲート
900 マルチプレクサ
1000 マルチプレクサ

Claims (25)

  1. 命令デコード・ステージ,前記デコード・ステージに続くアドレス計算ステージ,および前記アドレス計算ステージに続く命令実行ステージを含む複数のシリアルに接続された処理ステージの形式のパイプラインを有するデータ・プロセッサにおいてアドレス生成インターロックを検出する方法であって、各ステージは、前記パイプラインが命令のシリーズをステージからステージへ移して前記命令のシリーズにパイプライン処理を実行する命令を処理し、前記データ・プロセッサは、前記パイプライン内の前記命令実行ステージにおいて命令処理の結果として書き込まれ、あるいは、前記パイプライン内の前記アドレス計算ステージにおいて前記命令の処理の間に読み取られ得るN個の汎用レジスタのセットを含み、前記方法は、
    定義された数のプロセッサ・クロック・サイクルにわたって、連続するクロック・サイクルに対応する一連のベクトルを有する複数のベクトルを累算するステップ
    特定の汎用レジスタに対応する前記複数のベクトルの各ベクトルにおける同一のビット位置を有する前記複数のベクトルの中の1以上の汎用レジスタのステータスを累算するステップ
    前記複数のベクトルの論理結合から保留汎用レジスタ更新のリストを生成するステップ
    前記保留汎用レジスタ更新のリストからアドレス生成インターロックの存在を判別するステップを含む方法。
  2. 特定の汎用レジスタに対応する前記複数のベクトルの各ベクトルにおいて同一のビット位置を有する前記複数のベクトルに前記1以上の汎用レジスタのステータスを累算するステップは、
    どの汎用レジスタが前記デコードされた命令に対して更新されるべきか識別するステップと、
    アドレス生成インターロック・キューにおいて、保留汎用レジスタ更新を有し得る命令のリストを生成するステップと、
    新しくデコードされた命令についての保留汎用レジスタ更新を含むデコードされたベクトルを生成するステップと、
    実行を待つ命令についての保留汎用レジスタ更新を含む要約ベクトルを生成するステップと、
    前記実行ステージ内の命令についての保留汎用レジスタ更新を含む実行ベクトルを生成するステップとを含む請求項1に記載の方法。
  3. デコードされたが未だ実行されていない命令を、汎用レジスタ書込みベクトルにアドレス生成インターロック情報の要約の計算に関与することを許可する第1の制御信号と結合し、それによって未処理の命令の前記保留汎用レジスタ更新を生成するステップを、さらに含む請求項2に記載の方法。
  4. デコードされたが未だ実行されていない命令を、どのアドレス生成インターロック・キュー・エントリが前記実行ベクトル内に移されるべきか指定する第2の制御信号と結合し、それによって実行サイクル内にある前記命令に対応するベクトルを生成するステップを、さらに含む請求項2に記載の方法。
  5. デコードされたが未だ実行されていない命令を、前記第1の制御信号と結合するステップは、
    前記第1の制御信号と共に、前記デコードされたが未だ実行されていない命令に論理ANDを行い、それによってデコードされたが未だ実行されていない命令に対応する条件付のベクトルを生成するステップと、
    デコードされたが未だ実行されていない命令に対応する前記条件付のベクトルに論理ORを行うステップとを含む請求項3に記載の方法。
  6. デコードされたが未だ実行されていない命令を、前記第2の制御信号と結合するステップは、前記第2の制御信号と、前記デコードされたが未だ実行されていない命令を多重化するステップを含む請求項4に記載の方法。
  7. 新しくデコードされた命令についての保留汎用レジスタ更新を含むデコードされたベクトルを生成するステップは、
    汎用レジスタ書込みベクトル,前のサイクルにおいてアドレス生成インターロックが検出された時に働く信号および新しい汎用レジスタ書込みベクトルの使用修飾に論理ANDを行うステップとを含む請求項2に記載の方法。
  8. 前記実行ステージ内の命令についての保留汎用レジスタ更新を含む実行ベクトルを生成するステップは、
    実行サイクル内にある前記命令に対応するベクトル,実行サイクル確認および命令実行リスト汎用レジスタ書込みベクトルを多重化するステップと、
    前記命令実行リスト汎用レジスタ書込みベクトルおよび前記命令実行リスト汎用レジスタ書込みベクトルの妥当性検査に論理ANDを行うステップとを含む請求項2に記載の方法。
  9. 前記複数のベクトルの論理結合から保留汎用レジスタ更新のリストを生成するステップは、
    新しくデコードされた命令についての前記保留汎用レジスタ更新,実行を待つ命令についての前記保留汎用レジスタ更新および前記実行ステージ内の命令についての前記保留汎用レジスタ更新に論理ORを行うステップを含む請求項2に記載の方法。
  10. 前記保留汎用レジスタ更新のリストからアドレス生成インターロックの存在を判別するステップは、
    前記保留汎用レジスタ更新のリストを、汎用レジスタ・ベース読み取りアドレスと結合し、それによってベースに対するアドレス生成インターロック検出を生成するステップを含む請求項9に記載の方法。
  11. 前記保留汎用レジスタ更新のリストからアドレス生成インターロックの存在を判別するステップは、
    前記保留汎用レジスタ更新のリストを、汎用レジスタ・インデックス読み取りアドレスと結合し、それによってインデックスに対するアドレス生成インターロック検出を生成するステップを含む請求項9に記載の方法。
  12. 前記保留汎用レジスタ更新のリストを、汎用レジスタ・ベース読み取りアドレスと結合する前記ステップは、
    前記保留汎用レジスタ更新のリストを、前記汎用レジスタ・ベース読み取りアドレスと多重化するステップを含む請求項10に記載の方法。
  13. 前記保留汎用レジスタ更新のリストを、汎用レジスタ・インデックス読み取りアドレスと結合する前記ステップは、
    前記保留汎用レジスタ更新のリストを、前記汎用レジスタ・インデックス読み取りアドレスと多重化するステップを含む請求項11に記載の方法。
  14. アドレス生成インターロック・キューを与えるステップは、
    どの汎用レジスタが前記デコードされた命令に対して更新されるべきか識別する汎用レジスタ書込みベクトルをそこへ入力として受け取る複数のマルチプレクサとの信号通信内に複数の汎用レジスタ書込みベクトルを与えるステップを含む請求項2に記載の方法。
  15. 命令デコード・ステージ,前記デコード・ステージに続くアドレス計算ステージ,および前記アドレス計算ステージに続く命令実行ステージを含む複数のシリアルに接続された処理ステージの形式のパイプラインを有するデータ・プロセッサにおいてアドレス生成インターロックを検出するシステムであって、各ステージは、前記パイプラインが命令のシリーズをステージからステージへ移して前記命令のシリーズにパイプライン処理を実行する命令を処理し、前記データ・プロセッサは、前記パイプライン内の前記命令実行ステージにおいて命令処理の結果として書き込まれ、あるいは、前記パイプライン内の前記デコード・ステージにおいて前記命令の処理の間に読み取られ得るN個の汎用レジスタのセットを含み、前記システムは、
    どの汎用レジスタがデコードされた命令に対して更新されるべきか識別する汎用レジスタ書込みベクトルを出力するデコーダと、
    保留汎用レジスタ更新を有し得る命令のリストを格納し、前記汎用レジスタ書込みベクトル入力として受け取るアドレス生成インターロック・キュー
    新しくデコードされた命令についての保留汎用レジスタ更新を含むデコードされたベクトルを、前記汎用レジスタ書込みベクトルに基づいて生成する手段と、
    未だ実行されていない未処理の命令についての保留汎用レジスタ更新を含む要約ベクトルを、前記アドレス生成インターロック・キューに入力された前記汎用レジスタ書込みベクトルに基づいて生成する手段と、
    前記実行ステージ内の命令についての保留汎用レジスタ更新を含む実行ベクトルを、前記アドレス生成インターロック・キューに入力された前記汎用レジスタ書込みベクトルに基づいて生成する手段と
    を備えるシステム。
  16. 前記アドレス生成インターロック・キューは、
    前記デコード汎用レジスタ書込みベクトルをそこへ入力として受け取るために働く複数の第1のマルチプレクサと、
    前記複数の第1のマルチプレクサとの信号通信における、デコードされたが未だ実行されていない命令に対応するアドレス生成インターロック・キュー汎用レジスタ書込みベクトルを含み、前記デコードされたが未だ実行されていない命令を出力として与えるために働く複数のラッチとを有する請求項15に記載のシステム。
  17. 実行を待つ命令についての前記保留汎用レジスタ更新を生成する論理回路の第1のセットを、さらに備える請求項16に記載のシステム。
  18. 前記論理回路の第1のセットは、
    デコードされたが未だ実行されていない命令を、対応するアドレス生成インターロック・キュー・エントリからの前記汎用レジスタ書込みベクトルにアドレス生成インターロック情報の要約の計算に関与することを許可する制御信号と結合し、それによって修飾ベクトルのセットを生成する第1の論理ANDゲートと、
    前記修飾ベクトルのセットをそこへ入力として受け取り、それによって実行を待つ命令についての前記保留汎用レジスタ更新を生成するために働く第1の論理ORゲートとを有する請求項17に記載のシステム。
  19. 前記実行ステージ内の命令についての前記保留汎用レジスタ更新を生成する論理回路の第2のセットを、さらに備える請求項16に記載のシステム。
  20. 前記論理回路の第2のセットは、
    前記デコードされたが未だ実行されていない命令を、どのアドレス生成インターロック・キュー・エントリが前記実行ベクトル内へ移されるべきか指定する制御信号と結合し、それによって実行セットアップ・サイクル内にある前記命令に対応するベクトルを生成する第2のマルチプレクサと、
    前記実行セットアップ・サイクル内にある前記命令に対応する前記ベクトルを、実行セットアップ・サイクル確認と結合し、それによって前記パイプラインの前記実行ステージ内の前記命令に対応する命令実行リスト汎用レジスタ書込みベクトルを生成する第3のマルチプレクサと、
    前記命令実行リスト汎用レジスタ書込みベクトルを、前記命令実行リスト汎用レジスタ書込みベクトルの妥当性検査と結合し、それによって前記実行ユニット内の命令についての前記保留汎用レジスタ更新を生成する第2の論理ANDゲートとを有する請求項19に記載のシステム。
  21. 新しくデコードされた命令についての前記保留汎用レジスタ更新を生成する論理回路の第3のセットを、さらに備える請求項16に記載のシステム。
  22. 前記論理回路の第3のセットは、
    前記汎用レジスタ書込みベクトルを、前のサイクルにおいて前記アドレス生成インターロックが検出された時に働く信号と結合し、それによって出力信号を生成する第4のマルチプレクサと、
    前記出力信号をそこへ入力として受け取り、新しい汎用レジスタ書込みベクトルを出力として与えるために働く新しい汎用レジスタ書込みベクトル・ラッチと、
    前記新しい汎用レジスタ書込みベクトルを妥当性検査する信号,前記新しい汎用レジスタ書込みベクトルの使用修飾および前記新しい汎用レジスタ書込みベクトルを結合し、それによって新しくデコードされた命令についての前記保留汎用レジスタ更新を生成する第3の論理ANDゲートとを有する請求項21に記載のシステム。
  23. 新しくデコードされた命令についての前記保留汎用レジスタ更新,実行を待つ命令についての前記保留汎用レジスタ更新および前記実行ユニット内の命令についての前記保留汎用レジスタ更新を結合し、それによって全ての保留汎用レジスタ更新を出力として与える第2の論理ORゲートを、さらに備える請求項16に記載のシステム。
  24. 前記全ての保留汎用レジスタ更新のリストおよび汎用レジスタ・ベース読み取りアドレスを結合する第5のマルチプレクサを、さらに備える請求項23に記載のシステム。
  25. 前記全ての保留汎用レジスタ更新のリストおよび汎用レジスタ・インデックス読み取りアドレスを結合する第6のマルチプレクサを、さらに備える請求項23に記載のシステム。
JP2001282724A 2000-10-02 2001-09-18 アドレス生成インターロック検出方法およびシステム Expired - Fee Related JP3707729B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/678,226 US6671794B1 (en) 2000-10-02 2000-10-02 Address generation interlock detection
US09/678226 2000-10-02

Publications (2)

Publication Number Publication Date
JP2002132500A JP2002132500A (ja) 2002-05-10
JP3707729B2 true JP3707729B2 (ja) 2005-10-19

Family

ID=24721922

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001282724A Expired - Fee Related JP3707729B2 (ja) 2000-10-02 2001-09-18 アドレス生成インターロック検出方法およびシステム

Country Status (2)

Country Link
US (1) US6671794B1 (ja)
JP (1) JP3707729B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7502725B2 (en) * 2004-04-29 2009-03-10 International Business Machines Corporation Method, system and computer program product for register management in a simulation environment
US8056067B2 (en) * 2006-09-29 2011-11-08 International Business Machines Corporation Method, computer program product, and device for reducing delays in data processing
US8165864B2 (en) * 2008-02-08 2012-04-24 International Business Machines Corporation Method, system and computer program product for verifying address generation, interlocks and bypasses
US7987343B2 (en) * 2008-03-19 2011-07-26 International Business Machines Corporation Processor and method for synchronous load multiple fetching sequence and pipeline stage result tracking to facilitate early address generation interlock bypass

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4287561A (en) 1978-03-16 1981-09-01 International Business Machines Corporation Address formulation interlock mechanism
US4991080A (en) 1986-03-13 1991-02-05 International Business Machines Corporation Pipeline processing apparatus for executing instructions in three streams, including branch stream pre-execution processor for pre-executing conditional branch instructions
JPH0760388B2 (ja) 1987-06-09 1995-06-28 三菱電機株式会社 パイプライン制御回路
US5127093A (en) * 1989-01-17 1992-06-30 Cray Research Inc. Computer look-ahead instruction issue control
US5787303A (en) 1991-10-31 1998-07-28 Kabushiki Kaisha Toshiba Digital computer system capable of processing a plurality of instructions in parallel based on a VLIW architecture
US5481683A (en) * 1992-10-30 1996-01-02 International Business Machines Corporation Super scalar computer architecture using remand and recycled general purpose register to manage out-of-order execution of instructions
US5416911A (en) 1993-02-02 1995-05-16 International Business Machines Corporation Performance enhancement for load multiple register instruction
US5790821A (en) * 1996-03-08 1998-08-04 Advanced Micro Devices, Inc. Control bit vector storage for storing control vectors corresponding to instruction operations in a microprocessor
US6016540A (en) * 1997-01-08 2000-01-18 Intel Corporation Method and apparatus for scheduling instructions in waves
US6212619B1 (en) * 1998-05-11 2001-04-03 International Business Machines Corporation System and method for high-speed register renaming by counting
US6122727A (en) * 1998-08-24 2000-09-19 Advanced Micro Devices, Inc. Symmetrical instructions queue for high clock frequency scheduling
US6405304B1 (en) * 1998-08-24 2002-06-11 Compaq Information Technologies Group, L.P. Method for mapping instructions using a set of valid and invalid logical to physical register assignments indicated by bits of a valid vector together with a logical register list
US6266759B1 (en) * 1998-12-14 2001-07-24 Cray, Inc. Register scoreboarding to support overlapped execution of vector memory reference instructions in a vector processor

Also Published As

Publication number Publication date
JP2002132500A (ja) 2002-05-10
US6671794B1 (en) 2003-12-30

Similar Documents

Publication Publication Date Title
US10019266B2 (en) Selectively performing a single cycle write operation with ECC in a data processing system
US6510511B2 (en) Methods and apparatus for branch prediction using hybrid history with index sharing
JPH1124929A (ja) 演算処理装置およびその方法
US10664280B2 (en) Fetch ahead branch target buffer
US20050138327A1 (en) VLIW digital signal processor for achieving improved binary translation
US5761467A (en) System for committing execution results when branch conditions coincide with predetermined commit conditions specified in the instruction field
JP2002229777A (ja) プロセッサ装置
US20090198984A1 (en) Global History Branch Prediction Updating Responsive to Taken Branches
JPH05150979A (ja) 即値オペランド拡張方式
JP3707729B2 (ja) アドレス生成インターロック検出方法およびシステム
EP0497485A2 (en) Computer for implementing two-operand instructions
US7234043B2 (en) Decoding predication instructions within a superscaler data processing system
US6289428B1 (en) Superscaler processor and method for efficiently recovering from misaligned data addresses
US7600102B2 (en) Condition bits for controlling branch processing
JP3708022B2 (ja) プロセッサ
JP3534987B2 (ja) 情報処理装置
JPH08212789A (ja) 連想メモリ回路及びtlb回路
JP3082944B2 (ja) パイプライン処理装置
US12032966B2 (en) Reducing overhead in processor array searching
US20240111541A1 (en) Reducing Overhead In Processor Array Searching
US7191432B2 (en) High frequency compound instruction mechanism and method for a compare operation in an arithmetic logic unit
US11663014B2 (en) Speculatively executing instructions that follow a status updating instruction
JPH07182165A (ja) コミット条件付き命令の処理方法およびその装置
JPS61288230A (ja) パイプライン制御方式
EP1069499A2 (en) Data processing apparatus and method for simultaneously executing plural instructions

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040511

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040603

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040830

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040902

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050105

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20050221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20050221

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050331

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050408

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050623

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: 20050719

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20050720

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050729

R150 Certificate of patent or registration of utility model

Ref document number: 3707729

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080812

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090812

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090812

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100812

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100812

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110812

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120812

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130812

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees