(57)【特許請求の範囲】
【請求項１】
命令デコード・ステージ，前記デコード・ステージに続くアドレス計算ステージ，および前記アドレス計算ステージに続く命令実行ステージを含む複数のシリアルに接続された処理ステージの形式のパイプラインを有するデータ・プロセッサにおいてアドレス生成インターロックを検出する方法であって、各ステージは、前記パイプラインが命令のシリーズをステージからステージへ移して前記命令のシリーズにパイプライン処理を実行する命令を処理し、前記データ・プロセッサは、前記パイプライン内の前記命令実行ステージにおいて命令処理の結果として書き込まれ、あるいは、前記パイプライン内の前記アドレス計算ステージにおいて前記命令の処理の間に読み取られ得るＮ個の汎用レジスタのセットを含み、前記方法は、
定義された数のプロセッサ・クロック・サイクルにわたって、連続するクロック・サイクルに対応する一連のベクトルを有する複数のベクトルを累算するステップと、
特定の汎用レジスタに対応する前記複数のベクトルの各ベクトルにおける同一のビット位置を有する前記複数のベクトルの中の１以上の汎用レジスタのステータスを累算するステップと、
前記複数のベクトルの論理結合から保留汎用レジスタ更新のリストを生成するステップと、
前記保留汎用レジスタ更新のリストからアドレス生成インターロックの存在を判別するステップとを含む方法。
【請求項２】
特定の汎用レジスタに対応する前記複数のベクトルの各ベクトルにおいて同一のビット位置を有する前記複数のベクトルに前記１以上の汎用レジスタのステータスを累算するステップは、
どの汎用レジスタが前記デコードされた命令に対して更新されるべきか識別するステップと、
アドレス生成インターロック・キューにおいて、保留汎用レジスタ更新を有し得る命令のリストを生成するステップと、
新しくデコードされた命令についての保留汎用レジスタ更新を含むデコードされたベクトルを生成するステップと、
実行を待つ命令についての保留汎用レジスタ更新を含む要約ベクトルを生成するステップと、
前記実行ステージ内の命令についての保留汎用レジスタ更新を含む実行ベクトルを生成するステップとを含む請求項１に記載の方法。
【請求項３】
デコードされたが未だ実行されていない命令を、汎用レジスタ書込みベクトルにアドレス生成インターロック情報の要約の計算に関与することを許可する第１の制御信号と結合し、それによって未処理の命令の前記保留汎用レジスタ更新を生成するステップを、さらに含む請求項２に記載の方法。
【請求項４】
デコードされたが未だ実行されていない命令を、どのアドレス生成インターロック・キュー・エントリが前記実行ベクトル内に移されるべきか指定する第２の制御信号と結合し、それによって実行サイクル内にある前記命令に対応するベクトルを生成するステップを、さらに含む請求項２に記載の方法。
【請求項５】
デコードされたが未だ実行されていない命令を、前記第１の制御信号と結合するステップは、
前記第１の制御信号と共に、前記デコードされたが未だ実行されていない命令に論理ＡＮＤを行い、それによってデコードされたが未だ実行されていない命令に対応する条件付のベクトルを生成するステップと、
デコードされたが未だ実行されていない命令に対応する前記条件付のベクトルに論理ＯＲを行うステップとを含む請求項３に記載の方法。
【請求項６】
デコードされたが未だ実行されていない命令を、前記第２の制御信号と結合するステップは、前記第２の制御信号と、前記デコードされたが未だ実行されていない命令を多重化するステップを含む請求項４に記載の方法。
【請求項７】
新しくデコードされた命令についての保留汎用レジスタ更新を含むデコードされたベクトルを生成するステップは、
汎用レジスタ書込みベクトル，前のサイクルにおいてアドレス生成インターロックが検出された時に働く信号および新しい汎用レジスタ書込みベクトルの使用修飾に論理ＡＮＤを行うステップとを含む請求項２に記載の方法。
【請求項８】
前記実行ステージ内の命令についての保留汎用レジスタ更新を含む実行ベクトルを生成するステップは、
実行サイクル内にある前記命令に対応するベクトル，実行サイクル確認および命令実行リスト汎用レジスタ書込みベクトルを多重化するステップと、
前記命令実行リスト汎用レジスタ書込みベクトルおよび前記命令実行リスト汎用レジスタ書込みベクトルの妥当性検査に論理ＡＮＤを行うステップとを含む請求項２に記載の方法。
【請求項９】
前記複数のベクトルの論理結合から保留汎用レジスタ更新のリストを生成するステップは、
新しくデコードされた命令についての前記保留汎用レジスタ更新，実行を待つ命令についての前記保留汎用レジスタ更新および前記実行ステージ内の命令についての前記保留汎用レジスタ更新に論理ＯＲを行うステップを含む請求項２に記載の方法。
【請求項１０】
前記保留汎用レジスタ更新のリストからアドレス生成インターロックの存在を判別するステップは、
前記保留汎用レジスタ更新のリストを、汎用レジスタ・ベース読み取りアドレスと結合し、それによってベースに対するアドレス生成インターロック検出を生成するステップを含む請求項９に記載の方法。
【請求項１１】
前記保留汎用レジスタ更新のリストからアドレス生成インターロックの存在を判別するステップは、
前記保留汎用レジスタ更新のリストを、汎用レジスタ・インデックス読み取りアドレスと結合し、それによってインデックスに対するアドレス生成インターロック検出を生成するステップを含む請求項９に記載の方法。
【請求項１２】
前記保留汎用レジスタ更新のリストを、汎用レジスタ・ベース読み取りアドレスと結合する前記ステップは、
前記保留汎用レジスタ更新のリストを、前記汎用レジスタ・ベース読み取りアドレスと多重化するステップを含む請求項１０に記載の方法。
【請求項１３】
前記保留汎用レジスタ更新のリストを、汎用レジスタ・インデックス読み取りアドレスと結合する前記ステップは、
前記保留汎用レジスタ更新のリストを、前記汎用レジスタ・インデックス読み取りアドレスと多重化するステップを含む請求項１１に記載の方法。
【請求項１４】
アドレス生成インターロック・キューを与えるステップは、
どの汎用レジスタが前記デコードされた命令に対して更新されるべきか識別する汎用レジスタ書込みベクトルをそこへ入力として受け取る複数のマルチプレクサとの信号通信内に複数の汎用レジスタ書込みベクトルを与えるステップを含む請求項２に記載の方法。
【請求項１５】
命令デコード・ステージ，前記デコード・ステージに続くアドレス計算ステージ，および前記アドレス計算ステージに続く命令実行ステージを含む複数のシリアルに接続された処理ステージの形式のパイプラインを有するデータ・プロセッサにおいてアドレス生成インターロックを検出するシステムであって、各ステージは、前記パイプラインが命令のシリーズをステージからステージへ移して前記命令のシリーズにパイプライン処理を実行する命令を処理し、前記データ・プロセッサは、前記パイプライン内の前記命令実行ステージにおいて命令処理の結果として書き込まれ、あるいは、前記パイプライン内の前記デコード・ステージにおいて前記命令の処理の間に読み取られ得るＮ個の汎用レジスタのセットを含み、前記システムは、
どの汎用レジスタがデコードされた命令に対して更新されるべきかを識別する汎用レジスタ書込みベクトルを出力するデコーダと、
保留汎用レジスタ更新を有し得る命令のリストを格納し、前記汎用レジスタ書込みベクトルを入力として受け取るアドレス生成インターロック・キューと、
新しくデコードされた命令についての保留汎用レジスタ更新を含むデコードされたベクトルを、前記汎用レジスタ書込みベクトルに基づいて生成する手段と、
未だ実行されていない未処理の命令についての保留汎用レジスタ更新を含む要約ベクトルを、前記アドレス生成インターロック・キューに入力された前記汎用レジスタ書込みベクトルに基づいて生成する手段と、
前記実行ステージ内の命令についての保留汎用レジスタ更新を含む実行ベクトルを、前記アドレス生成インターロック・キューに入力された前記汎用レジスタ書込みベクトルに基づいて生成する手段と
を備えるシステム。
【請求項１６】
前記アドレス生成インターロック・キューは、
前記デコード汎用レジスタ書込みベクトルをそこへ入力として受け取るために働く複数の第１のマルチプレクサと、
前記複数の第１のマルチプレクサとの信号通信における、デコードされたが未だ実行されていない命令に対応するアドレス生成インターロック・キュー汎用レジスタ書込みベクトルを含み、前記デコードされたが未だ実行されていない命令を出力として与えるために働く複数のラッチとを有する請求項１５に記載のシステム。
【請求項１７】
実行を待つ命令についての前記保留汎用レジスタ更新を生成する論理回路の第１のセットを、さらに備える請求項１６に記載のシステム。
【請求項１８】
前記論理回路の第１のセットは、
デコードされたが未だ実行されていない命令を、対応するアドレス生成インターロック・キュー・エントリからの前記汎用レジスタ書込みベクトルにアドレス生成インターロック情報の要約の計算に関与することを許可する制御信号と結合し、それによって修飾ベクトルのセットを生成する第１の論理ＡＮＤゲートと、
前記修飾ベクトルのセットをそこへ入力として受け取り、それによって実行を待つ命令についての前記保留汎用レジスタ更新を生成するために働く第１の論理ＯＲゲートとを有する請求項１７に記載のシステム。
【請求項１９】
前記実行ステージ内の命令についての前記保留汎用レジスタ更新を生成する論理回路の第２のセットを、さらに備える請求項１６に記載のシステム。
【請求項２０】
前記論理回路の第２のセットは、
前記デコードされたが未だ実行されていない命令を、どのアドレス生成インターロック・キュー・エントリが前記実行ベクトル内へ移されるべきか指定する制御信号と結合し、それによって実行セットアップ・サイクル内にある前記命令に対応するベクトルを生成する第２のマルチプレクサと、
前記実行セットアップ・サイクル内にある前記命令に対応する前記ベクトルを、実行セットアップ・サイクル確認と結合し、それによって前記パイプラインの前記実行ステージ内の前記命令に対応する命令実行リスト汎用レジスタ書込みベクトルを生成する第３のマルチプレクサと、
前記命令実行リスト汎用レジスタ書込みベクトルを、前記命令実行リスト汎用レジスタ書込みベクトルの妥当性検査と結合し、それによって前記実行ユニット内の命令についての前記保留汎用レジスタ更新を生成する第２の論理ＡＮＤゲートとを有する請求項１９に記載のシステム。
【請求項２１】
新しくデコードされた命令についての前記保留汎用レジスタ更新を生成する論理回路の第３のセットを、さらに備える請求項１６に記載のシステム。
【請求項２２】
前記論理回路の第３のセットは、
前記汎用レジスタ書込みベクトルを、前のサイクルにおいて前記アドレス生成インターロックが検出された時に働く信号と結合し、それによって出力信号を生成する第４のマルチプレクサと、
前記出力信号をそこへ入力として受け取り、新しい汎用レジスタ書込みベクトルを出力として与えるために働く新しい汎用レジスタ書込みベクトル・ラッチと、
前記新しい汎用レジスタ書込みベクトルを妥当性検査する信号，前記新しい汎用レジスタ書込みベクトルの使用修飾および前記新しい汎用レジスタ書込みベクトルを結合し、それによって新しくデコードされた命令についての前記保留汎用レジスタ更新を生成する第３の論理ＡＮＤゲートとを有する請求項２１に記載のシステム。
【請求項２３】
新しくデコードされた命令についての前記保留汎用レジスタ更新，実行を待つ命令についての前記保留汎用レジスタ更新および前記実行ユニット内の命令についての前記保留汎用レジスタ更新を結合し、それによって全ての保留汎用レジスタ更新を出力として与える第２の論理ＯＲゲートを、さらに備える請求項１６に記載のシステム。
【請求項２４】
前記全ての保留汎用レジスタ更新のリストおよび汎用レジスタ・ベース読み取りアドレスを結合する第５のマルチプレクサを、さらに備える請求項２３に記載のシステム。
【請求項２５】
前記全ての保留汎用レジスタ更新のリストおよび汎用レジスタ・インデックス読み取りアドレスを結合する第６のマルチプレクサを、さらに備える請求項２３に記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本開示は、パイプライン・プロセッサにおけるアドレス生成インターロックの検出のための方法およびシステムに関する。
【０００２】
【従来の技術】
事実上、全ての高性能プロセッサは、今日、“パイプライン化”されている。大抵の命令は、同じ基本シーケンス、すなわち、最初に命令が必然的に取り出され、それがデコードされ、オペランドが取り出される、を通過する必要がある。次に、命令が必然的に実行され、実行の結果が必然的に格納される。次の命令を開始するよりも前に命令が全体シーケンスの初めから終わりまでを進むのを待つよりもむしろ、大抵のプロセッサ・アーキテクチャは、パイプライン化され、そしてそれによって、命令ｍがいったん取り出されデコード・ステージに進むと、命令ｍ+１が取り出される。次に、命令ｍがアドレス生成ステージへ進み、命令ｍ+１がデコード・ステージに進み、命令ｍ+２が取り出される。こうして、複数の命令が、同時にパイプラインの様々なステージでアクティブになり得る。しかしながら、パイプラインへの命令のフローは、多くの理由で停止し得る。例えば、命令ｍが、次の命令例えば命令ｍ+２がそのオペランドのアドレスを計算する必要があるレジスタを変更する場合には、命令ｍ+２は、アドレス生成ステージに進み得るが、命令ｍがその結果を格納することを終了する（すなわち、命令ｍ+２が必要とするレジスタを更新する）まで必然的にそこに保留される。その後になってはじめて、命令ｍ+２は、そのアドレス生成を完了し、パイプラインを継続することができる。パイプラインへの命令のフローにおけるこの停止は、アドレス生成インターロック（Ａｄｄｒｅｓｓ  Ｇｅｎｅｒａｔｉｏｎ  Ｉｎｔｅｒｌｏｃｋ；ＡＧＩ）と呼ばれる。
【０００３】
命令デコード（Ｉｎｓｔｒｕｃｔｉｏｎ−ｄｅｃｏｄｅ；Ｉデコード）および実行ステージの間に、命令がキュー内に配置され、Ｉデコード・ステージがアドレス生成（ａｄｄｒｅｓｓ  ｇｅｎｅｒａｔｉｏｎ；ＡＧＥＮ）の準備において汎用レジスタ（ｇｅｎｅｒａｌ  ｒｅｇｉｓｔｅｒｓ；ＧＲ'ｓ）を読み取るために使用される場合には、ＡＧＩは、必要とされるＧＲ'ｓを、各々のおよび全ての適切な命令キュー（ｉｎｓｔｒｕｃｔｉｏｎ  ｑｕｅｕｅ；Ｉキュー）位置からの保留ＧＲ更新情報と比較することにより、デコード・サイクルの間に検出可能である。命令は、対応する命令のサクセスフルな実行に引き続いてＩキューから取り除かれる。
【０００４】
【発明が解決しようとする課題】
以前は、これは、各Ｉキュー位置において、対応する命令によって更新されるべきＧＲ'ｓの範囲を定義する最初のおよび最後のＧＲ番号を保管することによって成し遂げられてきた。新しい命令がデコードされるとき、ＡＧＥＮに必要とされるＧＲ'ｓは、Ｉキュー内部の全ての保留ＧＲ更新範囲と比較される。一方、各ＧＲ読み取りについては、これは、ＺがＩキュー位置の番号であるＺ入力論理ＯＲファンクションが従う保留範囲を完全に定義するために、２N個のＧＲ'ｓに加えていくつかの組み合わせ論理を備えるマシンにおいて、２つのＮビット比較器を必要とする。しかしながら、Ｉキューのサイズが増大するにつれ、そしてマシン・サイクル・タイムが短縮されるにつれ、このソリューションを実現することがますます困難となる。
【０００５】
【課題を解決するための手段】
命令デコード・ステージ，デコード・ステージに続くアドレス計算ステージ，およびアドレス計算ステージに続く命令実行ステージを含む複数のシリアルに接続された処理ステージの形式のパイプラインを有するデータ・プロセッサにおいてアドレス生成インターロックを検出する方法およびシステムであって、各ステージは、パイプラインが命令のシリーズをステージからステージへ移して命令のシリーズにパイプライン処理を実行する命令を処理し、データ・プロセッサは、パイプライン内の命令実行ステージにおいて命令処理の結果として書き込まれ、あるいは、パイプライン内のアドレス計算ステージにおいて命令の処理の間に読み取られ得るＮ個の汎用レジスタのセットを含む方法およびシステムが開示される。この方法は、プロセッサ・クロック・サイクルの定義済数の上に複数のベクトルを累算するステップ、後続のベクトルが後続のクロック・サイクルに対応し、特定の汎用レジスタに対応する複数のベクトルの各ベクトルにおいて同一のビット位置を有する複数のベクトルに１以上の汎用レジスタのステータスを累算するステップ、複数のベクトルの論理結合から保留汎用レジスタ更新のリストを生成するステップ、保留汎用レジスタ更新のリストからアドレス生成インターロックの存在を判別するステップを含む。
【０００６】
【発明の実施の形態】
サイクル・タイム圧力を減らすために、その大多数が少なくとも次のサイクルの間Ｉキュー内にとどまり得る、Ｉキュー内の命令についての保留ＧＲ更新情報が、保留ＧＲ更新の要約へあらかじめ累算されるということが望ましい。これを行うために、保留ＧＲ更新情報を保管するために使用されるＩキュー・フィールドは、フォーマットが、２つのＮビット値から、各ビットが対応する更新されるべきＧＲを指示する単一の２Nビット・ベクトルへ変更され得る。これは、これらのベクトルのいくつかに、共に論理ＯＲされ（ｌｏｇｉｃａｌｌｙ  ＯＲ'ｅｄ  ｔｏｇｅｔｈｅｒ）、あらかじめ要約ベクトルを作成することを許可する。要約ベクトルは、あらかじめサイクルを計算されるので、ＩデコードからＩキューへ加えられ、あるいは実行によってＩキューから取り除かれる命令は、同様の方法（２つの付加的２Nビット・ベクトルは、これらの命令を追跡するために使用可能である）で別個にアカウントされる必要がある。その結果、３つの２Nビット・ベクトルを結合して単一の２Nビット・ベクトルにし、更新されるべき全ての保留ＧＲ'ｓを識別し、結果を、選択ラインとしてＡＧＥＮのためのＧＲ読み取りアドレスを用いる２N：１マルチプレクサに与えることにより、ＡＧＩは、Ｉデコード・サイクルにおいて検出可能である。
【０００７】
ＡＧＩ状態によって影響を受けた命令のＡＧＥＮサイクルは、ブロックされ得る。影響を受けた命令は、全ての未解決のＡＧＩ状態が解決されるまでパイプラインのアドレス加算器ステージ内にとどまり得る。ＡＧＩ状態を生じさせ得る命令についての情報は、Ｉキュー内に保持される。Ｉキューにおいて各命令について保管された情報の一部は、ＧＲ書込みフラグのセットである。書込みフラグは、一定の命令がＧＲｓまたはＡＲｓのどちらを更新あるいは書き込むか指示する。各未処理の命令についてのフラグは、命令デコードの必要なＧＲ読み取りに対して比較される。デコードの間に、ＧＲｓは、ＡＧＥＮのために読み取られている。ＧＲ読み取りが未処理のＧＲ更新と交差する場合には、つまり、ＡＧＩ状態が存在する。インターロックされた命令のデコード・サイクルは、首尾よく完了することを許される。標準的にデコードと関連したＧＲ読み取りは、インターロックされた命令がインタレストの新しいＧＲ内容を待つ間に絶えず再試行される。その期間の間に、インターロックされた命令のＡＧＥＮサイクルは、ブロックされた、または不成功とみなされる。インターロックされた命令の次の命令は、たとえその命令がＡＧＥＮファンクションを必要としなくても、そのデコード・サイクルを完了することからブロックされる。ＡＧＩによって遅延させられた命令の実際のデコード・サイクルは、終了することを許され、アドレス加算（ａｄｄｒｅｓｓ  ａｄｄ；ＡＡ）サイクルは、成功するまで遅延させられる、もしくは繰り返される。遅延させられたＡＡは、たとえ将来の命令がアドレス加算器を必要としなくても、将来の命令のさらなるデコードをブロックする結果になる。Ｉキュー内の１命令以上が、現在デコードする命令に対してＡＧＩ状態を生じさせ得る。１つのインターロック以上が発生する場合には、ＡＡサイクルは、全ての未解決のＡＧＩ状態が解決されるまでブロックされ得る。
【０００８】
ＧＲ書込みフラグ（命令ごとに１６個であり、ＧＲごとに１つが割り当てられる）は、命令のデコード・サイクルの間に判別される。いったん、命令が首尾よくデコードされると、命令は、Ｉキュー内へ移動する。Ｉキューは、ディープであり得る（よりディープなキューに発展することが予期される）ので、Ｉキューは難しすぎて、命令デコードに対して全てのＩキュー位置を比較することができない。したがって、Ｉキュー内の全ての保留ＧＲ更新は、要約され、１６ビット要約汎用レジスタ書込みベクトル内へ配置される。これは、サイクル・タイム問題を緩和する。例えば、要約汎用レジスタ書込みベクトルのビット５＝１bの場合には、つまり、ＧＲ５を更新し得る命令がＩキュー内に存在する。Ｉキューを更新することに加えて、新しいＧＲ書込みフラグは、ＩキューＡＧＩ情報をバイパスし、命令についてのデコードされたベクトルを提供して、その最後のデコード・サイクルの次のサイクルにおいてそのＡＧＩカバレッジ（ｃｏｖｅｒａｇｅ）を維持できることが必要とされる。適切なものよりも長いＡＧＩ状態の検出を回避するために、命令は、その確認済み実行セットアップ・サイクル（Ｅ0）の間に、ＡＧＩキューから命令実行リストへ移される。これは、ＩキューＡＧＩ情報とＡＧＩ検出論理との間のエクストラ・ラッチのために、必須である。
【０００９】
ＡＧＩ検出論理は、命令デコードの汎用レジスタ・ベース読み取りアドレス（ベース，Ｂ）および汎用レジスタ・インデックス読み取りアドレス（インデックス，Ｘ）・フィールドを使用し、保留ＧＲ書込みベクトルの適切なビットを選択して、ＡＧＩ状態が存在するか否か判別する。図３および４は、どのサイクルで命令がインターロックを生じさせ得るか、そしてデータ・フローのどの部分が各サイクルにおける検出を可能にするか説明する。
【００１０】
図１を参照すると、本発明のデータフローが１００において概略的に示される。命令レジスタ８０は、出力としてデコードされた命令８２を与える。命令デコード９０は、出力として、どのＧＲ'ｓがデコードされた命令に対して更新されるべきか識別する汎用レジスタ書込みベクトル９２を与える。汎用レジスタ書込みベクトル９２は、入力としてアドレス生成インターロック・キュー２００へ与えられる。ＡＧＩキュー２００は、保留ＧＲ更新を有し得る命令のリストである。アドレス生成インターロック・キュー２００は、出力として、デコードされたが未だ実行が開始されていない命令に対応するＧＲ書込みベクトルのセットを与える。ベクトルの出力セット２０２は、入力として、要約ファンクション３００および選択ファンクション４００へ与えられる。要約ファンクション３００において、各出力ベクトル２０２（ＡＧＩキュー・エントリ）は、汎用レジスタ書込みべクトルにＡＧＩ情報の要約の計算に関与することを許容する、対応する制御信号３０４と結合される。要約ファンクション３００は、出力３０２として、デコードされたが未だ実行されていない未処理の命令の保留汎用レジスタ更新を与える。選択ファンクション４００において、ベクトルの出力セット２０２は、どのＡＧＩキュー・エントリが実行ベクトル内へ移されるべきか指定する制御信号４０４と結合される。選択されたＡＧＩキュー・エントリは、現在実行セットアップ・サイクル，Ｅ0内にある命令に対応する。選択ファンクション４００は、出力として、Ｅ0サイクル内にある命令に対応するベクトル４０２を与える。
【００１１】
汎用レジスタ書込みベクトル９２は、さらに、入力として、デコードされたベクトル５００へ与えられる。一方、未処理の命令の保留汎用レジスタ更新３０２は、入力として、要約ベクトル６００へ与えられ、そして、Ｅ0サイクル内にある命令に対応する出力ベクトル４０２は、入力として、実行ベクトル７００へ与えられる。
【００１２】
デコードされたベクトル５００は、出力として、新しくデコードされた命令についての保留ＧＲ更新を指示する新しい汎用レジスタ書込みベクトル５０２を与える。要約ベクトル６００は、出力として、実行を待つ命令についての保留ＧＲ更新を指示する要約汎用レジスタ書込みベクトル６０２を与える。そして、実行ベクトル７００は、出力として、実行ユニット内の命令についての保留ＧＲ更新を指示する命令実行リスト汎用レジスタ書込みベクトル７０２を与える。前述のベクトル５０２，６０２，７０２は、出力として全ての保留ＧＲ更新を指示するトラップ・ベクトル８０２を与える論理ＯＲゲート８００内で結合される。トラップ・ベクトル８０２は、そこにおいてトラップ・ベクトル８０２が汎用レジスタ・ベース読み取りアドレス９０２と結合され、“ベース”に対する無条件のＡＧＩ検出１０２を出力として与えるｎ：１マルチプレクサ９００へ入力として与えられる。トラップ・ベクトル８０２は、さらに、そこにおいてトラップ・ベクトル８０２が汎用レジスタ・インデックス読み取りアドレス１００２と結合され、“インデックス”に対する無条件のＡＧＩ検出１０４を出力として与えるｎ：１マルチプレクサ１０００へ入力として与えられる。ｎは、ＧＲ'ｓの数である。
【００１３】
図２を参照すると、ＡＧＩキュー２００は、複数のマルチプレクサ２０４との２０６での信号通信における（デコードされたが未だ実行されていない命令に対応する）ＡＧＩキュー汎用レジスタ書込みベクトル２０８を含む複数のラッチを備える。複数のマルチプレクサ２０４は、入力として、（どの汎用レジスタがデコードされた命令に対して更新されるべきか識別する）デコード汎用レジスタ書込みベクトル９２と、フィードバック信号２１０すなわち、ＡＧＩキュー汎用レジスタ書込みベクトル２０８の出力とを受け取る。ＡＧＩキュー汎用レジスタ書込みベクトル２０８は、出力として、デコードされたが未だ実行されていない命令２０２を与える。デコードされたが未だ実行されていない命令２０２は、入力として、要約ファンクション３００および選択ファンクション４００へ与えられる。
【００１４】
要約ファンクション３００は、入力として、対応するＡＧＩキュー・エントリからの汎用レジスタ書込みベクトル２０８にＡＧＩ情報の要約の計算に関与することを許容する複数の制御信号３０４をさらに受け取る。信号３０４およびベクトル２０２は、論理ＡＮＤゲート３０６において結合され、それによって、出力として修飾ベクトルのセット３０８を与える。修飾ベクトルのセット３０８は、論理ＯＲゲート３１０において結合され、それによって、デコードされたが未だ実行されていない未処理の命令の保留汎用レジスタ更新を指示する信号３０２を出力として与える。上述したように、出力信号３０２すなわちデコードされたが未だ実行されていない命令の保留汎用レジスタ更新は、実行を待つ命令についての保留汎用レジスタ更新を出力６０２として与える要約ベクトル６００へ与えられる。
【００１５】
選択ファンクション４００は、デコードされたが未だ実行されていない命令に対応するベクトル２０２と、どのＡＧＩキュー・エントリが実行ベクトル内へ移されるべきか指定する制御信号４０４とを、入力として受け取るために働くマルチプレクサ４０６を備える。選択ファンクションは、このようにして、Ｅ0サイクル内にある命令に対応するベクトル４０２を出力として与える。
【００１６】
実行ベクトル７００は、マルチプレクサ７０４との７０６での信号通信における命令実行リスト汎用レジスタ書込みベクトル７１８を含むラッチを備える。マルチプレクサ７０４は、前述のベクトル４０２，（パイプラインの実行ステージ内の命令に対応する）命令実行リスト汎用レジスタ書込みベクトル７１８の出力からのフィードバック信号７０８およびＥ0実行サイクル確認７１６を入力として受け取る。命令実行リスト汎用レジスタ書込みベクトル７１８の出力および命令実行リスト汎用レジスタ書込みベクトル７１８の妥当性検査７１４は、論理ＡＮＤゲート７１０において結合され、それによって、実行ユニット内の命令についての保留汎用レジスタ更新７０２を出力として与える。
【００１７】
デコード・ベクトル５００は、マルチプレクサ５０４との５０６での信号通信におけるラッチ５０８を備える。マルチプレクサ５０４は、デコード汎用レジスタ書込みベクトル９２（どの汎用レジスタがデコードされた命令に対して更新されるべきか識別する），新しい汎用レジスタ書込みベクトル・ラッチ５０８の出力からのフィードバック信号である新しい汎用レジスタ書込みベクトル５１０（首尾よくデコードされた最後の命令に対応する）およびＡＧＩが前のサイクルにおいて検出され、したがってＡＧＥＮが現在のサイクルにおいて成功できず汎用レジスタが再読取りされる必要がある時に働く信号５１６を入力として受け取る。新しい汎用レジスタ書込みベクトル・ラッチ５０８は、出力として、新しい汎用レジスタ書込みベクトル５１０を与える。信号５１６は、５１８で反転されて新しい汎用レジスタ書込みベクトル５１０の使用修飾（ｕｓａｇｅ  ｑｕａｌｉｆｉｃａｔｉｏｎ）５２０を与える。ラッチ５２２は、新しい汎用レジスタ書込みベクトル５１０を妥当性検査する信号５２４を与える。新しい汎用レジスタ書込みベクトル５１０，新しい汎用レジスタ書込みベクトル５１０の使用修飾５２０および信号５２４は、新しいＡＧＩトラップ・ベクトル５０２を出力として与える論理ＡＮＤゲート５１２において結合される。新しいＡＧＩトラップ・ベクトル５０２は、汎用レジスタ書込みベクトルが００００16に等しくなければ、汎用レジスタ書込みベクトル５１０がＡＧＩ検出に関与する必要がある時に、新しい汎用レジスタ書込みベクトル５１０と等しい。
【００１８】
新しいＡＧＩトラップ・ベクトル５０２（新しくデコードされた命令のための保留汎用レジスタ更新），実行を待つ命令のための保留汎用レジスタ更新６０２および命令実行リスト汎用レジスタ書込みベクトル７０２は、論理ＯＲゲート８００において結合されて全ての保留汎用レジスタ更新のリストであるＡＧＩトラップ・ベクトル８０２を出力として与える。全ての保留汎用レジスタ更新のリスト８０２は、マルチプレクサ９００において汎用レジスタ・ベース読み取りアドレス９０２と結合される。ベース読み取りアドレス９０２によってアドレス指定された汎用レジスタの内容は、ＡＧＥＮの際にベース・レジスタとして使用され得る。ベース読み取りアドレスは、命令デコードの際に判別される。マルチプレクサ９００の出力１０２は、ベースに対するＡＧＩ検出である。全ての保留汎用レジスタ更新のリスト８０２は、さらに、マルチプレクサ１０００において汎用レジスタ・インデックス読み取りアドレス１００２と結合される。汎用レジスタ・インデックス読み取りアドレス１００２の内容は、ＡＧＥＮの際にインデックス・レジスタとして使用され得る。インデックス読み取りアドレスは、命令デコードの際に判別される。マルチプレクサ１０００の出力１０４は、インデックスに対するＡＧＩ検出である。
【００１９】
図３において、第１の代表的な命令のタイミング図が１０で概略的に示される。命令の完了は、単一のデコード・サイクル１２，実行セットアップ・サイクル１４，実行サイクル１６および格納サイクル１８を含む６つのサイクルを必要とする。ＡＧＩカバレッジ（ｃｏｖｅｒａｇｅ）は、デコード・サイクル１２の次のサイクルから最後の実行サイクル１６の末端までの２２において必要とされ、それからＧＲ'ｓは、２０で更新される。デコード・サイクル１２の際に、ＧＲ'ｓの命令更新は２４で判別され、命令デコード９０は、デコード・ベクトル５００およびＡＧＩキュー２００に供給（ｆｅｅｄｓ）する。命令最終デコード・サイクル確認が行われる。デコード・サイクル１２の次に、ＡＧＩカバレッジがデコード・ベクトル５００によって２６で与えられ、ＡＧＩキュー２００は、要約ベクトル６００に供給（ｆｅｅｄｓ）する。先のＡＧＩカバレッジ２６の次に、ＡＧＩが要約ベクトル６００によって２８で与えられる。実行セットアップ・サイクル１４の際に、ＡＧＩキュー２００は実行ベクトル７００に供給（ｆｅｅｄｓ）する。実行セットアップ・サイクル１４の次に、ＡＧＩカバレッジが実行ベクトル７００によって３２で与えられ、命令最終実行サイクル１６が確認されＧＲ'ｓが２０で更新される。
【００２０】
図４において、第２の代表的な命令のタイミング図が５０で概略的に示される。命令の完了は、第１および第２のデコード・サイクル５２，５４，実行セットアップ・サイクル５６，第１および第２の実行サイクル５８，６０および格納サイクル６２を含む８つのサイクルを必要とする。ＡＧＩカバレッジは、最後のデコード・サイクル５４の次のサイクルから最後の実行サイクル６０の末端までの６６で必要とされ、それからＧＲ'ｓが６４で更新される。最後のデコード・サイクル５４の際に、ＧＲ'ｓの命令更新が６８で判別され、命令デコード９０は、デコード・ベクトル５００およびＡＧＩキュー２００に供給（ｆｅｅｄｓ）する。命令最終デコード・サイクル確認が行われる。最後のデコード・サイクル５４の次に、ＡＧＩカバレッジは、デコード・ベクトル５００によって７０で与えられ、ＡＧＩキュー２００は、要約ベクトル６００に供給（ｆｅｅｄｓ）する。先のＡＧＩカバレッジ７０の次に、ＡＧＩは、要約ベクトル６００によって７２で与えられる。実行セットアップ・サイクル５６の際に、７４で、ＡＧＩキュー２００は、実行ベクトル７００に供給（ｆｅｅｄｓ）する。実行セットアップ・サイクル５６の次に、ＡＧＩカバレッジは、実行ベクトル７００によって７６で与えられ、命令最終実行サイクル６０が確認され、ＧＲ'ｓが６４で更新される。
【００２１】
いったんＡＧＩ状態が検出されると、その状態は、インターロックを生じさせる最後の命令が格納サイクル（ｐｕｔ  ａｗａｙ；ＰＡ）に達するまで存在し続け得る。格納サイクルの際に、インタレストの汎用レジスタあるいはアクセス・レジスタ（ａｃｃｅｓｓ  ｒｅｇｉｓｔｅｒ；ＡＲ）は、ＧＲまたはＡＲアレイへ書き込まれる。ＧＲおよびＡＲアレイは、新しいデータのためのバイパス・パスを有する。したがって、そこにおいてＧＲが更新されるサイクルは、ＧＲを読み取り、更新済み内容を獲得するための最初のサイクルである。このサイクルの際に、更新済みＧＲが読み取られ、その出力がアドレス加算器への入力であるラッチへ供給される。アドレス加算サイクル，ＡＡは、次のサイクルを許可される。
【００２２】
図６において、３つの代表的な命令のタイミング図が１２０，１４０，１７０で概略的に示される。命令Ｃ１２０の完了は、単一のデコード・サイクル１２２，実行セットアップ・サイクル１２４，実行サイクル１２６および格納サイクル１２８を含む６つのサイクルを必要とする。１３０での実行サイクル１２６の際に、将来のＧＲ内容が実行ユニットによって計算され、実行ユニットの出力レジスタ内に配置される。命令Ｃの格納サイクル１３２において、更新済みＧＲ情報を読み取るための最初のサイクルが存在する。ＡＧＩ−Ｑ２へ割当てられた命令Ｃは、命令ＤについてのＡＧＩを生じさせる。したがって、命令Ｄデコード・サイクル１４２の次のサイクルから命令Ｃの格納サイクル１２８の末端までの命令Ｄのアドレス加算は、命令ＣによってもたらされたＡＧＩによってブロックされる。命令Ｄ１４０のアドレス加算は、命令Ｃの格納サイクル１２８の完了の後まで成功しない。命令Ｅのデコード１７２，１７４，１７６，１７８は、アドレス加算が、１５２および１８０において命令Ｄについて成功するまで遅延させられる。
【００２３】
図６内の１８４において、ＡＧＩｑ有効信号は、命令Ｃデコードの後にｈｉｇｈになり、命令ＣのＥ0サイクルの後までその状態のままである。１８６において、命令Ｄに対応する同種の信号が示され、この信号は、命令Ｄデコードの後にｈｉｇｈになり、命令ＤのＥ0サイクルの後までその状態のままである。１８８において、汎用レジスタ書込みベクトルにＡＧＩ情報の要約の計算に関与することを許可する制御信号３０４は、ＡＧＩの間ｌｏｗであり、命令Ｄが成功したアドレス加算を得る後までその状態のままであり、それから、制御信号３０４は、ｈｉｇｈになる。１９０において、ＡＧＩヒット信号は、命令Ｃアドレス加算の間ｈｉｇｈになり、ＡＧＩが消えるまでその状態のままである。１９２において、ＡＧＩブロック・デコード信号は、ＡＧＩヒット信号１９０のラッチされたコピーであり、その結果、ＡＧＩｑ−３書込みベクトルおよび命令Ｄに対応する新しい汎用レジスタ書込みベクトルは、無視される。
【００２４】
好適な実施の形態と関連して本発明を説明してきたが、本発明の範囲から外れることなしに、様々な変更を行うことができ、発明の構成要素を均等物で置換することができるということが、当業者によって理解できる。その上、多くの変更をおこなって、発明の本質的な範囲から外れることなしに、特定の状況あるいは要素を本発明の教示に適合させることができる。したがって、本発明は、本発明実施のための熟慮された最良の形態として開示された特定の実施の形態に限定されず、その一方で、本発明は、添付の特許請求の範囲の範囲に含まれる全ての実施の形態を含み得るということが意図される。
【００２５】
まとめとして、本発明の構成に関して以下の事項を開示する。
（１）命令デコード・ステージ，前記デコード・ステージに続くアドレス計算ステージ，および前記アドレス計算ステージに続く命令実行ステージを含む複数のシリアルに接続された処理ステージの形式のパイプラインを有するデータ・プロセッサにおいてアドレス生成インターロックを検出する方法であって、各ステージは、前記パイプラインが命令のシリーズをステージからステージへ移して前記命令のシリーズにパイプライン処理を実行する命令を処理し、前記データ・プロセッサは、前記パイプライン内の前記命令実行ステージにおいて命令処理の結果として書き込まれ、あるいは、前記パイプライン内の前記アドレス計算ステージにおいて前記命令の処理の間に読み取られ得るＮ個の汎用レジスタのセットを含み、前記方法は、プロセッサ・クロック・サイクルの定義済数の上に複数のベクトルを累算するステップ、後続のベクトルが後続のクロック・サイクルに対応し、特定の汎用レジスタに対応する前記複数のベクトルの各ベクトルにおいて同一のビット位置を有する前記複数のベクトルに１以上の汎用レジスタのステータスを累算するステップ、前記複数のベクトルの論理結合から保留汎用レジスタ更新のリストを生成するステップ、前記保留汎用レジスタ更新のリストからアドレス生成インターロックの存在を判別するステップを含む方法。
（２）特定の汎用レジスタに対応する前記複数のベクトルの各ベクトルにおいて同一のビット位置を有する前記複数のベクトルに前記１以上の汎用レジスタのステータスを累算するステップは、どの汎用レジスタが前記デコードされた命令に対して更新されるべきか識別するステップと、アドレス生成インターロック・キューにおいて、保留汎用レジスタ更新を有し得る命令のリストを生成するステップと、新しくデコードされた命令についての保留汎用レジスタ更新を含むデコードされたベクトルを生成するステップと、実行を待つ命令についての保留汎用レジスタ更新を含む要約ベクトルを生成するステップと、前記実行ステージ内の命令についての保留汎用レジスタ更新を含む実行ベクトルを生成するステップとを含む上記（１）に記載の方法。
（３）デコードされたが未だ実行されていない命令を、汎用レジスタ書込みベクトルにアドレス生成インターロック情報の要約の計算に関与することを許可する第１の制御信号と結合し、それによって未処理の命令の前記保留汎用レジスタ更新を生成するステップを、さらに含む上記（２）に記載の方法。
（４）デコードされたが未だ実行されていない命令を、どのアドレス生成インターロック・キュー・エントリが前記実行ベクトル内に移されるべきか指定する第２の制御信号と結合し、それによって実行サイクル内にある前記命令に対応するベクトルを生成するステップを、さらに含む上記（２）に記載の方法。
（５）デコードされたが未だ実行されていない命令を、前記第１の制御信号と結合するステップは、前記第１の制御信号と共に、前記デコードされたが未だ実行されていない命令に論理ＡＮＤを行い、それによってデコードされたが未だ実行されていない命令に対応する条件付のベクトルを生成するステップと、デコードされたが未だ実行されていない命令に対応する前記条件付のベクトルに論理ＯＲを行うステップとを含む上記（３）に記載の方法。
（６）デコードされたが未だ実行されていない命令を、前記第２の制御信号と結合するステップは、前記第２の制御信号と、前記デコードされたが未だ実行されていない命令を多重化するステップを含む上記（４）に記載の方法。
（７）新しくデコードされた命令についての保留汎用レジスタ更新を含むデコードされたベクトルを生成するステップは、汎用レジスタ書込みベクトル，前のサイクルにおいてアドレス生成インターロックが検出された時に働く信号および新しい汎用レジスタ書込みベクトルを多重化するステップと、前記新しい汎用レジスタ書込みベクトル，前記新しい汎用レジスタ書込みベクトルを妥当性検査する信号および前記新しい汎用レジスタ書込みベクトルの使用修飾に論理ＡＮＤを行うステップとを含む上記（２）に記載の方法。
（８）前記実行ステージ内の命令についての保留汎用レジスタ更新を含む実行ベクトルを生成するステップは、実行サイクル内にある前記命令に対応するベクトル，実行サイクル確認および命令実行リスト汎用レジスタ書込みベクトルを多重化するステップと、前記命令実行リスト汎用レジスタ書込みベクトルおよび前記命令実行リスト汎用レジスタ書込みベクトルの妥当性検査に論理ＡＮＤを行うステップとを含む上記（２）に記載の方法。
（９）前記複数のベクトルの論理結合から保留汎用レジスタ更新のリストを生成するステップは、新しくデコードされた命令についての前記保留汎用レジスタ更新，実行を待つ命令についての前記保留汎用レジスタ更新および前記実行ステージ内の命令についての前記保留汎用レジスタ更新に論理ＯＲを行うステップを含む上記（２）に記載の方法。
（１０）前記保留汎用レジスタ更新のリストからアドレス生成インターロックの存在を判別するステップは、前記保留汎用レジスタ更新のリストを、汎用レジスタ・ベース読み取りアドレスと結合し、それによってベースに対するアドレス生成インターロック検出を生成するステップを含む上記（９）に記載の方法。
（１１）前記保留汎用レジスタ更新のリストからアドレス生成インターロックの存在を判別するステップは、前記保留汎用レジスタ更新のリストを、汎用レジスタ・インデックス読み取りアドレスと結合し、それによってインデックスに対するアドレス生成インターロック検出を生成するステップを含む上記（９）に記載の方法。
（１２）前記保留汎用レジスタ更新のリストを、汎用レジスタ・ベース読み取りアドレスと結合する前記ステップは、前記保留汎用レジスタ更新のリストを、前記汎用レジスタ・ベース読み取りアドレスと多重化するステップを含む上記（１０）に記載の方法。
（１３）前記保留汎用レジスタ更新のリストを、汎用レジスタ・インデックス読み取りアドレスと結合する前記ステップは、前記保留汎用レジスタ更新のリストを、前記汎用レジスタ・インデックス読み取りアドレスと多重化するステップを含む上記（１１）に記載の方法。
（１４）アドレス生成インターロック・キューを与えるステップは、どの汎用レジスタが前記デコードされた命令に対して更新されるべきか識別する汎用レジスタ書込みベクトルをそこへ入力として受け取る複数のマルチプレクサとの信号通信内に複数の汎用レジスタ書込みベクトルを与えるステップを含む上記（２）に記載の方法。
（１５）命令デコード・ステージ，前記デコード・ステージに続くアドレス計算ステージ，および前記アドレス計算ステージに続く命令実行ステージを含む複数のシリアルに接続された処理ステージの形式のパイプラインを有するデータ・プロセッサにおいてアドレス生成インターロックを検出するシステムであって、各ステージは、前記パイプラインが命令のシリーズをステージからステージへ移して前記命令のシリーズにパイプライン処理を実行する命令を処理し、前記データ・プロセッサは、前記パイプライン内の前記命令実行ステージにおいて命令処理の結果として書き込まれ、あるいは、前記パイプライン内の前記デコード・ステージにおいて前記命令の処理の間に読み取られ得るＮ個の汎用レジスタのセットを含み、前記システムは、命令レジスタとの通信における命令デコード・ファンクションから発生する汎用レジスタ書込みベクトル、前記汎用レジスタ書込みベクトルは、どの汎用レジスタが前記デコードされた命令に対して更新されるべきか識別し、保留汎用レジスタ更新を有し得る命令のリストを含み、前記汎用レジスタ書込みベクトルをそこへ入力として受け取るために働くアドレス生成インターロック・キュー、新しくデコードされた命令についての保留汎用レジスタ更新を含むデコードされたベクトル、実行を待つ命令についての保留汎用レジスタ更新を含む要約ベクトル、前記実行ステージ内の命令についての保留汎用レジスタ更新を含む実行ベクトル、を備えるシステム。
（１６）前記アドレス生成インターロック・キューは、前記デコード汎用レジスタ書込みベクトルをそこへ入力として受け取るために働く複数の第１のマルチプレクサと、前記複数の第１のマルチプレクサとの信号通信における、デコードされたが未だ実行されていない命令に対応するアドレス生成インターロック・キュー汎用レジスタ書込みベクトルを含み、前記デコードされたが未だ実行されていない命令を出力として与えるために働く複数のラッチとを有する上記（１５）に記載のシステム。
（１７）実行を待つ命令についての前記保留汎用レジスタ更新を生成する論理回路の第１のセットを、さらに備える上記（１６）に記載のシステム。
（１８）前記論理回路の第１のセットは、デコードされたが未だ実行されていない命令を、対応するアドレス生成インターロック・キュー・エントリからの前記汎用レジスタ書込みベクトルにアドレス生成インターロック情報の要約の計算に関与することを許可する制御信号と結合し、それによって修飾ベクトルのセットを生成する第１の論理ＡＮＤゲートと、前記修飾ベクトルのセットをそこへ入力として受け取り、それによって実行を待つ命令についての前記保留汎用レジスタ更新を生成するために働く第１の論理ＯＲゲートとを有する上記（１７）に記載のシステム。
（１９）前記実行ステージ内の命令についての前記保留汎用レジスタ更新を生成する論理回路の第２のセットを、さらに備える上記（１６）に記載のシステム。
（２０）前記論理回路の第２のセットは、前記デコードされたが未だ実行されていない命令を、どのアドレス生成インターロック・キュー・エントリが前記実行ベクトル内へ移されるべきか指定する制御信号と結合し、それによって実行セットアップ・サイクル内にある前記命令に対応するベクトルを生成する第２のマルチプレクサと、前記実行セットアップ・サイクル内にある前記命令に対応する前記ベクトルを、実行セットアップ・サイクル確認と結合し、それによって前記パイプラインの前記実行ステージ内の前記命令に対応する命令実行リスト汎用レジスタ書込みベクトルを生成する第３のマルチプレクサと、前記命令実行リスト汎用レジスタ書込みベクトルを、前記命令実行リスト汎用レジスタ書込みベクトルの妥当性検査と結合し、それによって前記実行ユニット内の命令についての前記保留汎用レジスタ更新を生成する第２の論理ＡＮＤゲートとを有する上記（１９）に記載のシステム。
（２１）新しくデコードされた命令についての前記保留汎用レジスタ更新を生成する論理回路の第３のセットを、さらに備える上記（１６）に記載のシステム。
（２２）前記論理回路の第３のセットは、前記汎用レジスタ書込みベクトルを、前のサイクルにおいて前記アドレス生成インターロックが検出された時に働く信号と結合し、それによって出力信号を生成する第４のマルチプレクサと、前記出力信号をそこへ入力として受け取り、新しい汎用レジスタ書込みベクトルを出力として与えるために働く新しい汎用レジスタ書込みベクトル・ラッチと、前記新しい汎用レジスタ書込みベクトルを妥当性検査する信号，前記新しい汎用レジスタ書込みベクトルの使用修飾および前記新しい汎用レジスタ書込みベクトルを結合し、それによって新しくデコードされた命令についての前記保留汎用レジスタ更新を生成する第３の論理ＡＮＤゲートとを有する上記（２１）に記載のシステム。
（２３）新しくデコードされた命令についての前記保留汎用レジスタ更新，実行を待つ命令についての前記保留汎用レジスタ更新および前記実行ユニット内の命令についての前記保留汎用レジスタ更新を結合し、それによって全ての保留汎用レジスタ更新を出力として与える第２の論理ＯＲゲートを、さらに備える上記（１６）に記載のシステム。
（２４）前記全ての保留汎用レジスタ更新のリストおよび汎用レジスタ・ベース読み取りアドレスを結合する第５のマルチプレクサを、さらに備える上記（２３）に記載のシステム。
（２５）前記全ての保留汎用レジスタ更新のリストおよび汎用レジスタ・インデックス読み取りアドレスを結合する第６のマルチプレクサを、さらに備える上記（２３）に記載のシステム。
【図面の簡単な説明】
【図１】本発明のアドレス生成インターロック検出データフローの概括的な概略図である。
【図２】図１のアドレス生成インターロック検出データフローのより詳述した概略図である。
【図３】アドレス生成インターロックを生じさせる単一のデコード・サイクルおよび単一の実行サイクルを備える代表的な命令のタイミング図である。
【図４】アドレス生成インターロックを生じさせる複数のデコード・サイクルおよび複数の実行サイクルを備える命令のタイミング図である。
【図５】パイプライン・プロセッサにおける命令ストリームの全体のタイミング図である。
【図６】３つの代表的な命令の標準のアドレス生成インターロック解決のタイミング図である。
【符号の説明】
８０  命令レジスタ
９０  命令デコード
１００  データフロー
２００  アドレス生成インターロック・キュー
２０４  複数のマルチプレクサ
２０８  ＡＧＩキュー汎用レジスタ書込みベクトル
３００  要約ファンクション
３０６  論理ＡＮＤゲート
３１０  論理ＯＲゲート
４００  選択ファンクション
４０６  マルチプレクサ
５００  デコードされたベクトル
５０４  マルチプレクサ
５０８  ラッチ
５１２  論理ＡＮＤゲート
５１８  反転
５２２  ラッチ
６００  要約ベクトル
７００  実行ベクトル
７０４  マルチプレクサ
７１０  論理ＡＮＤゲート
７１８  命令実行リスト汎用レジスタ書込みベクトル
８００  論理ＯＲゲート
９００  マルチプレクサ
１０００  マルチプレクサ
【図１】
0003707729.tif 000002
【図２】
0003707729.tif 000003
【図３】
0003707729.tif 000004
【図４】
0003707729.tif 000005
【図５】
0003707729.tif 000006
【図６】
0003707729.tif 000007