(57)【要約】      （修正有）【課題】並行実行能力を完全に使用し、処理能力を縮小させることのないデータ処理システムを提供する。【解決手段】多重実行段階Ｅ１，Ｅ２，Ｅ３をそれぞれ備え、もし古い指示のためのオペランド値の結果が、新しい指示の入力オペランド値として上記オペランド値の結果を必要とする実行段階に優先する実行段階において生成されることが検出された場合に、それらの間にデータ依存性があるにもかかわらず、並行して同時に指示が送出される可能性があり、従って、データ依存性を解決するために実行パイプライン間のオペランド値の交差転送（cross-forwarding）が可能となる多重実行パイプラインを備えるデータ処理システム。【選択図】図２
2006331399.tif 000002
【特許請求の範囲】
【請求項１】
出力オペランド値を生成するためにプログラム指示系列のプログラム指示を並行して実行する複数の実行パイプラインと、
上記複数の実行パイプラインのそれぞれの実行パイプラインに並行して送出される候補プログラム指示の間のデータ依存性危険について、第１上記候補プログラム指示の出力オペランド値が第２上記候補プログラム指示の入力オペランド値であることにより検出し、もしこのようなデータ依存性危険が検出された場合には、データ依存性危険信号が生成されるデータ危険検査論理と、
上記第２上記候補プログラム指示の上記入力オペランド値が必要とされる前に、上記第１上記候補プログラム指示の上記出力オペランド値が生成されるかどうかを検出し、データ危険取消信号を生成するデータ危険取消論理と、
上記データ危険取消信号を受信すると、いずれかのデータ依存性危険信号でも取り消し、上記第１上記候補プログラム指示と上記第２上記候補プログラム指示を並行して送出することを許可する指示送出制御論理と、
上記第１上記候補プログラム指示の上記出力オペランド値が、上記第２上記候補プログラム指示の上記入力オペランド値として扱われるために、実行パイプライン間に送信されるように制御するオペランド転送論理とを備え、
上記実行パイプラインのそれぞれは、対応する複数の実行段階を備え、異なる実行段階において異なる形式のプログラム指示のための出力オペランド値を生成することを特徴とするデータ処理装置。
【請求項２】
上記複数の実行パイプラインは、プログラム指示の実行順序で実施する２つの実行パイプラインで構成されることを特徴とする請求項１記載の装置。
【請求項３】
上記複数の実行段階は、上記複数の実行段階の間で進行するプログラム指示の実行のために必要とされる異なるデータ処理機能を実施するそれぞれ異なる指示実行論理を備えることを特徴とする上記請求項１記載の装置。
【請求項４】
少なくともいくつかの形式のプログラム指示については、上記複数の実行段階の最後が到達する前に、少なくとも１つの出力オペランド値を生成するために必要とされる必要な処理機能の全てが完了していることを特徴とする上記請求項３記載の装置。
【請求項５】
少なくともいくつかの形式のプログラム指示については、第１上記複数の実行段階が到達する後までは、少なくとも１つの入力オペランド値が必要とされないことを特徴とする上記請求項３記載の装置。
【請求項６】
上記それぞれの異なる指示実行論理は、
データシフト機能、
ＡＬＵ機能、
及び読込み／記憶機能のうちの１つまたはそれ以上を実施することを特徴とする上記請求項３記載の装置。
【請求項７】
上記それぞれの実行パイプラインのための上記複数の実行段階は、
データシフト機能を実施するシフト実行段階と、
ＡＬＵ機能を実施するＡＬＵ実行段階と、
読込み／記憶機能を実施する読込み／記憶実行段階とを備える実行段階の系列を並べて備えることを特徴とする上記請求項１記載の装置。
【請求項８】
候補プログラム指示に関しては、
ＡＬＵプログラム指示により後続されるシフトプログラム指示が並行して送出され、
読込み／記憶プログラム指示により後続されるシフトプログラム指示が並行して送出され、
及び読込み／記憶プログラム指示により後続されるＡＬＵプログラム指示が並行して送出される場合に、データ依存性危険を有することを特徴とする上記請求項７記載の装置。
【請求項９】
出力オペランド値を生成するためにプログラム指示系列のプログラム指示を並行して実行する複数の実行パイプライン手段と、
上記複数の実行パイプライン手段のそれぞれの実行パイプライン手段に並行して送出される候補プログラム指示の間のデータ依存性危険について、第１上記候補プログラム指示の出力オペランド値が第２上記候補プログラム指示の入力オペランド値であることにより検出し、もしこのようなデータ依存性危険が検出された場合には、データ依存性危険信号が生成されるデータ危険検査手段と、
上記第２上記候補プログラム指示の上記入力オペランド値が必要とされる前に、上記第１上記候補プログラム指示の上記出力オペランド値が生成されるかどうかを検出し、データ危険取消信号を生成するデータ危険取消手段と、
上記データ危険取消信号を受信すると、いずれかのデータ依存性危険信号でも取り消し、上記第１上記候補プログラム指示と上記第２上記候補プログラム指示を並行して送出することを許可する指示送出制御手段と、
上記第１上記候補プログラム指示の上記出力オペランド値が、上記第２上記候補プログラム指示の上記入力オペランド値として扱われるために、実行パイプライン手段間に送信されるように制御するオペランド転送手段とを備え、
上記実行パイプラインのそれぞれは、対応する複数の実行段階手段を備え、異なる実行段階手段において異なる形式のプログラム指示のための出力オペランド値を生成することを特徴とするデータ処理装置。
【請求項１０】
出力オペランド値を生成するために複数の実行パイプライン内のプログラム指示系列のプログラム指示を並行して実行するステップと、
上記複数の実行パイプラインのそれぞれの実行パイプラインに並行して送出される候補プログラム指示の間のデータ依存性危険について、第１上記候補プログラム指示の出力オペランド値が第２上記候補プログラム指示の入力オペランド値であることにより検出し、もしこのようなデータ依存性危険が検出された場合には、データ依存性危険信号が生成されるステップと、
上記第２上記候補プログラム指示の上記入力オペランド値が必要とされる前に、上記第１上記候補プログラム指示の上記出力オペランド値が生成されるかどうかを検出し、データ危険取消信号を生成するステップと、
上記データ危険取消信号を受信すると、いずれかのデータ依存性危険信号でも取り消し、上記第１上記候補プログラム指示と上記第２上記候補プログラム指示を並行して送出することを許可するステップと、
上記第１上記候補プログラム指示の上記出力オペランド値が、上記第２上記候補プログラム指示の上記入力オペランド値として扱われるために、実行パイプライン間に送信されるように制御するステップとを備え、
上記実行パイプラインのそれぞれは、対応する複数の実行段階を備え、異なる実行段階において異なる形式のプログラム指示のための出力オペランド値を生成することを特徴とするデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理システムに係わり、更に詳しくは、本発明はスカラデータ処理システム内の指示送出制御に関する。
【背景技術】
【０００２】
プロセッサの処理能力の増加により、プログラム指示の多重流れが並行して実行されることが可能な多重指示パイプラインを備えるスーパースカラデータ処理システムの提供が知られている。このようなシステムの問題は、もし２つの指示が一緒に送出されたとすると、必要とされたときに、古い指示により未だ計算されていないため、新しい指示への真の入力が使用出来ない場合のように、複数のプログラム指示間のデータ依存性が、１つの指示の出力がもう１つの指示の入力として使用されることを要求する可能性があることである。この状態を扱うために、これらの指示が一緒に送出された場合にエラーの原因となるデータ依存性と指示のいずれかの組み合わせとを特定するために、送出されるプログラム指示のソースレジスタ指定子と宛先レジスタ指定子とに反応するデータ依存性危険検査機構の提供が知られている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
もしこのようなデータ危険が検出されると、新しい指示が抑えられ、データ危険が発生しない後のサイクルで送出される。これは、並行実行能力が完全に使用されていないため、処理能力を縮小させる。
【課題を解決するための手段】
【０００４】
本発明が提供する一態様によるデータ処理装置は、出力オペランド値を生成するためにプログラム指示系列のプログラム指示を並行して実行する複数のパイプラインと、上記複数の実行パイプラインのそれぞれの実行パイプラインに並行して送出される候補プログラム指示の間のデータ依存性危険について、第１上記候補プログラム指示の出力オペランド値が第２上記候補プログラム指示の入力オペランド値であることにより検出し、もしこのようなデータ依存性危険が検出された場合には、データ依存性危険信号が生成されるデータ危険検査論理と、上記第２上記候補プログラム指示の上記入力オペランド値が必要とされる前に、上記第１上記候補プログラム指示の上記出力オペランド値が生成されるかどうかを検出し、データ危険取消信号を生成するデータ危険取消論理と、上記データ危険取消信号を受信すると、いずれかのデータ依存性危険信号でも取り消し、上記第１上記候補プログラム指示と上記第２上記候補プログラム指示を並行して送出することを許可する指示送出制御論理と、上記第１上記候補プログラム指示の上記出力オペランド値が、上記第２上記候補プログラム指示の上記入力オペランド値として扱われるために、実行パイプライン間に送信されるように制御するオペランド転送論理とを備え、上記実行パイプラインのそれぞれは、対応する複数の実行段階を備え、異なる実行段階において異なる形式のプログラム指示のための出力オペランド値が生成する。
【０００５】
上記発明は、プログラム指示の形式に従い異なる実行段階において生成される出力オペランド値のそれぞれの実行パイプラインの多重実行段階が存在する処理システムに関し、２つの指示の間にデータ依存性が存在する場合であっても、並行して実行されるようにプログラム指示のいくつかの組み合わせが一緒に送出されることを可能とする処理システムの範疇であると認識する。これは、データ依存性危険となるデータ値が１である場合に、これらのプログラム指示が一緒に送出された場合に、従属するプログラム指示の入力オペランドを形成するために必要とされる実行段階に先行する実行段階において、出力オペランド値が生成されることを可能とする。この環境では、検出されたデータ依存性危険にもかかわらず、並行して一緒に送出される可能性のある上記プログラム指示の組み合わせが検出される可能性があり、この検出から生じる信号は、データ依存性危険の取り消しに使用される。上記機構は、従属するプログラム指示が指示パイプラインに沿って進行しているときに、必要な入力オペランド値として扱われるように、実行パイプライン間の出力オペランド値の送信／転送を制御するために使用されてもよい。
【０００６】
本技術は２つ以上の指示パイプラインを備える多重パイプラインを備えるシステムにおけるデータ依存性危険検査の取消のために提供されてもよく、上記技術はプログラム指示の実行順序で実施する２つの実行パイプラインを備えるシステムよく適合することも認識される。もし実行順序が乱れることを許容すれば、順序乱れ制御を取り扱うために必要とされる相当量の複雑さの増加を犠牲にして、データ依存性に関係する問題は軽減されることができる。
【０００７】
出力オペランド値が異なる実行段階で可能となる上記状況は、関係する実行段階が異なるデータ処理機能に異なる実行段階論理を実行させるときに特に生じやすい。このようなシステム内では、異なる段階で実施される異なる形式の処理による実行段階の間で実行作業量が分配される。いくつかの指示は、例えばもう１つの段階におけるＡＬＵ機能により後続される１つの段階におけるシフトのように、異なる実行段階で実施される指示と共に実施される多重の異なる形式の処理を必要とする可能性がある。
【０００８】
それぞれの実行段階に供給される異なる指示実行論理は、様々な異なる形態をとることが可能であるが、好ましい実施形態では、データシフト機能、ＡＬＵ機能、読込み／記憶機能の１つまたはそれ以上を実施する論理を備える。これらの機能は、それぞれの実行段階で次々と実施されるパイプライン内に適宜配置されることが可能である。
【０００９】
この構成では、一緒に並行して送出されたにもかかわらずデータ依存性危険を有する候補プログラム指示は、ＡＬＵプログラム指示により後続されるシフトプログラム指示、読込み／記憶プログラム指示により後続されるシフトプログラム指示、及び読込み／記憶プログラム指示により後続されるＡＬＵプログラム指示を備える。これらのケースの全てにおいて、それと並行して送出される後続するプログラム指示のための入力オペランド値として必要とされるそれに優先する実行パイプライン段階内で、古い指示の出力オペランド値が可能となる。
【００１０】
本発明が提供する別の一態様によるデータ処理装置は、出力オペランド値を生成するためにプログラム指示系列のプログラム指示を並行して実行する複数の実行パイプライン手段と、上記複数の実行パイプライン手段のそれぞれの実行パイプライン手段に並行して送出される候補プログラム指示の間のデータ依存性危険について、第１上記候補プログラム指示の出力オペランド値が第２上記候補プログラム指示の入力オペランド値であることにより検出し、もしこのようなデータ依存性危険が検出された場合には、データ依存性危険信号が生成されるデータ危険検査手段と、上記第２上記候補プログラム指示の上記入力オペランド値が必要とされる前に、上記第１上記候補プログラム指示の上記出力オペランド値が生成されるかどうかを検出し、データ危険取消信号を生成するデータ危険取消手段と、上記データ危険取消信号を受信すると、いずれかのデータ依存性危険信号でも取り消し、上記第１上記候補プログラム指示と上記第２上記候補プログラム指示を並行して送出することを許可する指示送出制御手段と、上記第１上記候補プログラム指示の上記出力オペランド値が、上記第２上記候補プログラム指示の上記入力オペランド値として扱われるために、実行パイプライン手段間に送信されるように制御するオペランド転送手段とを備え、上記実行パイプラインのそれぞれは、対応する複数の実行段階手段を備え、異なる実行段階手段において異なる形式のプログラム指示のための出力オペランド値を生成する。
【００１１】
本発明が提供するさらなる態様によるデータ処理方法は、出力オペランド値を生成するために複数の実行パイプライン内のプログラム指示系列のプログラム指示を並行して実行するステップと、上記複数の実行パイプラインのそれぞれの実行パイプラインに並行して送出される候補プログラム指示の間のデータ依存性危険について、第１上記候補プログラム指示の出力オペランド値が第２上記候補プログラム指示の入力オペランド値であることにより検出し、もしこのようなデータ依存性危険が検出された場合には、データ依存性危険信号が生成されるステップと、上記第１上記候補プログラム指示の上記入力オペランド値が必要とされる前に、上記第１上記候補プログラム指示の上記出力オペランド値が生成されるかどうかを検出し、データ危険取消信号を生成するステップと、上記データ危険取消信号を受信すると、いずれかのデータ依存性危険信号でも取り消し、上記第１上記候補プログラム指示と上記第２上記候補プログラム指示を並行して送出することを許可するステップと、上記第１上記候補プログラム指示の上記出力オペランド値が、上記第２上記候補プログラム指示の上記入力オペランド値として扱われるために実行パイプライン間に送信されるように制御するステップとを備え、上記実行パイプラインのそれぞれは、対応する複数の実行段階を備え、異なる実行段階において異なる形式のプログラム指示のための出力オペランド値を生成する。
【発明の効果】
【００１２】
本発明の上記の内容及び他の目的、特徴及び効果は、添付の図面と関連して読まれる以下に述べる実例となる実施形態の詳細な記載により明らかにされる。
【発明を実施するための最良の形態】
【００１３】
図１は、２つの実行パイプラインを備える多重送出データ処理システムの一部を示す概略図である。図１は、高度に図式化した表現であり、現実には相当数の付加的機能構成要素が存在し、システム全体として必要とされることが認識される。これらの機能構成要素は、簡素化のために図１に図示されない。
【００１４】
図１は、それぞれの実行パイプラインが共用レジスタバンク２からそのソースとなる入力オペランド値をどのように引き出すかを図示している。実行パイプラインのそれぞれからの出力オペランド値の宛先は、同様にレジスタファイル２に戻るように記載されている。この例示される実施形態において、それぞれの実行パイプラインは、シフター４，４´、算術論理演算ユニット６，６´、及び読込み／記憶ユニット８，８´をそれぞれ備えるＥ１，Ｅ２，Ｅ３の３つの実行段階を備えるものとして示される。
【００１５】
選択されたソースオペランド値と共にそれぞれの実行パイプラインに沿って渡される指示は、シフター４，４´によるシフト機能、算術論理演算ユニット６，６´による算術論理演算機能、及び読込み／記憶ユニット８，８´によるメモリアクセス機能を主体としてもよい。また、異なる数の実行段階が使用されてもよく、かつ関連する指示実行論理、すなわちシフター４，４´、算術論理演算ユニット６，６´、及び読込み／記憶ユニット８，８´の配置は、特定の実施に従い変更してもよいことが認識される。また、多数または大部分の指示は、これらの意図された処理機能を実施するために、これらの異なる指示実行回路の部分集合のみを使用することが認識される。例として、単純なシフト機能の指示は、一般にシフター４，４´のみを使用する。そのシフト機能からの出力オペランド値は、第１実行段階Ｅ１の最後で使用可能となる。同様に、単純な算術論理演算機能の指示は、たぶんＡＬＵユニット６，６´のみを使用し、その出力オペランド値は２番目の実行段階Ｅ２の最後で使用可能となる。上記算術論理演算ユニット６，６´は、第２実行段階Ｅ２の初めまでこれらの入力オペランド値が存在することを必要としない。したがって、これらの入力オペランド値が他の実行パイプラインでシフト機能を使用し計算される場合には、このシフトされた値は他の実行パイプラインにおいて第１実行段階Ｅ１の最後で存在し、第２実行段階Ｅ２の初めに間に合うように、それを必要とするＡＬＵユニット６，６´の入力オペランド値として扱う実行パイプラインの間で転送されることができる。これは、並行して送出される指示のオペランドの２つの実行パイプラインの交差転送（cross-forwarding）を表している。同様に、読込み／記憶ユニット８，８´は、第３の実行段階Ｅ３の初めまでこれらの入力オペランド値を必要とせず、したがって、隣接する実行パイプラインからＡＬＵユニット６，６´またはシフター４，４´のどちらかにより生成された出力オペランド値を入力オペランド値として受信することが可能である。
【００１６】
図２は、上記の技術を使用する２つの実行パイプラインの一部分を示す概略図である。取出し指示送出ブロック１０は、指示キャッシュから多重プログラム指示（候補プログラム指示）を取り出し、これらが個別（パイプライン０の下流）に送出されることを必要としているかどうか、または並行に２つのパイプライン（パイプライン０と１）に送出可能かどうかを検出する。データ危険検出ユニット１２は、送出された古い候補プログラム指示の目的地レジスタとして使用されるレジスタの範囲内に、新しい指示が入力オペランド値として必要とするかどうかを決定するために、並行して送出される候補指示である指示を調査する（部分デコード）。これは、従来どおりに実行され、データ依存性の後を追うためにスコアボード１４を使用できるようなデータ危険検出である。このような標準のデータ危険検出は、実行パイプラインに沿って並行して発行された候補プログラム指示に適合するだけではなく、実行パイプラインに沿って既に処理されたが、これが調査された候補プログラム指示により必要とされたときに間にあうようにその宛先（出力）値が生成されていない指示への依存性を有する指示の送出を探す場合も生ずる。指示パイプライン内の未決定のプログラム指示間のこの形式のデータ危険検出は知られており、ここでは更に述べない。
【００１７】
本技術は、もしこれらの指示が、新しい指示によって必要とされる古い指示によって生成される出力データが２つの指示が実行パイプラインに沿って並行して処理されるような、新しい指示によってデータが実際に必要とされる前に生成される場合に、これらが並行して送出される候補指示間で発生するときに危険取消論理１６を使用し検出されたデータ危険を取り消す付加的能力を供給する。この状態が満足されるばあいには、関係するデータが実行パイプライン間で交差転送（cross-forwarding）され、２つの指示が一緒に送出される。上記送出制御論理１８は、調査された指示の候補ペアから１つまたは２つの指示のいずれか一方が送出するために、従来型のデータ危険検出論理１２と危険取消検出論理１６との両方に反応する。もし実行パイプライン間で転送が必要とされ、危険取消検出論理１６を含んだタイミングを与えられる可能性があるように検出された場合には、この転送は転送制御論理２０により制御される。
【００１８】
実行パイプラインそれ自身内において、多重実行段階が到達する前に、これらはそれぞれデコーダ段階により先んぜられる。上記実行段階は、先に述べられたように、データ処理の異なる形態を実施できる。デコードされた制御信号とオペランドにより明らかにされた指示は、段階間に二重線で引かれた矢印により示されるような段階間で引き渡される。必要な場合には、転送制御論理２０により生成された交差転送（cross-forwarding）制御信号の制御下で、他のパイプラインから選択されたオペランド値と共に上記オペランドをパイプラインに沿って処理する現在のオペランド値（又は有効なスペースホルダ）を置き換えるために、１つのオペランドは多重変換装置２２，２４を使用して実行パイプライン間を転送されることが可能である。この例示された実施形態において、上記古い指示は常にパイプライン０に送出され、したがって、交差転送（cross-forwarding）はパイプライン０からパイプライン１にのみ必要とされる。
【００１９】
図３は、危険が存在するかどうかを検出し、かつ交差転送（cross-forwarding）の制御とともに危険を取り消す制御信号の生成を示す概略図である。デコーダ２６，２８，３０は、新しい指示により特定される２つのソースレジスタに加えて、古い指示を特定する宛先レジスタのそれぞれを復号する。コンパレータ３２，３４は、古い指示の宛先レジスタが新しい指示のソースレジスタのそれぞれと同じかどうかを検出し、もしこれが検出された場合には、データ危険信号が生成される。
【００２０】
デコーダ２６，２８，３０は、古い指示の場合宛先レジスタ値が使用可能となることにより、かつ新しい指示によりソースレジスタ値が必要とされることにより実行段階を決定するために、これらの指示に反応する。これらの条件が満たされた実行段階は、関係する指示の形式に従い変化する。例として、図１のシステムのシフト機能は、これらのソースが早い段階（実行段階Ｅ１の初め）で存在することを必要とし、これらの宛先も早い段階（実行段階Ｅ１の終わり）で生成する。逆に、読込み／記憶機能は、これらのソースがもっと遅い段階（実行段階Ｅ３の初め）まで存在することを必要とせず、同様にもっとも遅い段階（実行段階Ｅ３の終わり）に宛先レジスタを生成する。コンパレータ３６，３８は、必要とされる新しい指示に必要とされるソース値のそれぞれに優先して、古い指示により作成された宛先値が使用可能かどうかを検出する。もしこのような状況が存在した場合には、これらのコンパレータ３６，３８の出力は、検出されたデータ危険信号のいずれかを取り消すためにＡＮＤゲート４０，４２と共に使用される。１つのＯＲゲート４２は、もしこのようなデータ危険が存在し、かつ交差転送（cross-forwarding）により解決できない場合に、上書きされずかつ２重送出を抑制するデータ危険信号（新しい指示の入力オペランド値のそれぞれ）のいずれかに反応する。もし１つのデータ危険が検出され、上書きされた場合には、ＡＮＤゲート４４，４６は、これが必要となるそれぞれのソースオペランドに交差転送（cross-forwarding）可能信号を生成する。これらの交差転送（cross-forwarding）制御信号は、それぞれ直接に、またはそうでなければ発生する転送要求を受け入れる更なる処理に従い、図２の多重変換装置を制御するために使用される。更なる処理のもう１つの例は、デコーダ２６により生成され、宛先段階がその結果値を生成するのと同時に、あるいはそれに続いて発する信号の追跡を必要とし、オペランド値は、データ依存性を解決するために実行パイプラインの間で送信されることが可能である。
【００２１】
図４は、多重指示の送出の制御の概略を示すフローチャート図である。ステップ４８で２重送出の２つの候補指示が受信される。ステップ５０は、例えば新しい指示がそのソースの１つとして古い指示の宛先となる値を必要とするように、２つの指示の間にデータ危険が存在するかどうかを決定する。もしこのようなデータ危険が存在しない場合には、処理はステップ５２に進み、両方の指示が２つの実行パイプラインに並行して送出される。
【００２２】
もしデータ危険がステップ５０で検出された場合には、処理はステップ５４に進み、このデータ危険が、交差転送（cross-forwarding）が可能となることにより取り消されるかどうかが検査される。交差転送（cross-forwarding）が可能かどうかは、関係する指示の特別の形式に依存する。もし古い指示が１つのシフトである場合には、図１の例では、これはＡＬＵ指示あるいは読込み／記憶指示と一緒に送出されてもよい。もし古い指示がＡＬＵ指示である場合には、これは読込み／記憶指示と並行して送出されてもよい。これらは特別な例であり、かつ本技術の範囲の一般性に限定されない。
【００２３】
もしステップ５４が、交差転送（cross-forwarding）がステップ５０で検出されたデータ危険を打消すことが出来ないことを判定すれば、処理はステップ５６に進み、古い指示だけが送出され、新しい指示は、いくつかの他のデータ依存性がこれを否定しない後続の処理サイクルで送出される。もしステップ５４において、交差転送（cross-forwarding）がデータ危険を取り消すのに最適であると判定されれば、処理はステップ５４に進み、必要な交差転送（cross-forwarding）が実行パイプラインに沿って進行する指示として適切な時間に起こるように設定され、２つの指示がステップ２２において一緒に送出される。
【００２４】
上記図２で説明したように、指示により使用される交差転送（cross-forwarding）パスは、２つの実行パイプライン中に一緒に並行して送出される。実行パイプライン間の転送は、これらの指示に加えて、実行パイプラインに並行して同時に送出される他の指示のために実行されることは、この分野の当業者に認識される。この形式の転送は、通常の技術に従うスコアボード１４に保持されたデータに従って制御されることが可能である。図２に示される実施形態は簡素化されており、現実にはパイプライン間のそれぞれの方向への転送は、２つのパイプラインへ同時に並行して送出される指示を処理する場合だけでなく、異なる時間で送出される指示のように様々な段階で実施される可能性がある。どのオペランドが実行パイプライン間で送信されるべきかと、いつ両方の通常転送機能を併合するかの選択は、同時に一緒に送出される指示にとって本技術に従い実施される転送だけでなく、異なる時間で送出される指示のためのスコアボードによっても制御される。上記制御信号は、後続する多重変換装置を制御するためにパイプラインに沿って渡され、これら２つの異なる形式は併合され、同じハードウェアで実施される。転送を実行するハードウェアは、転送が異なるときに送出された指示のための従来型のスコアボード形式の転送の結果によるものであるか、または、同じ形式で送出され、これらの指示が同時に送出されたとしても、実行パイプライン間の交差転送（cross-forwarding）がデータ依存性を解決できると判定された指示のための転送の結果によるものであるかを知る必要はない。このように、スコアボード１４と共に、危険取消検出論理１６と一緒に機能するデータ危険検出論理１２は、両方の形式の状態に起因する転送を制御するために、指示の実行パイプラインを転送される転送制御信号を生成し、図２に示される転送制御ユニット２０の入力信号を供給する。転送制御論理２０による転送制御が実行パイプラインに沿った２つの指示が進行する期間の前記データ依存性を解決できる環境下において、データ危険検出論理１２からのデータ依存性信号があるにもかかわらず、同時に２重指示の並行送出を許可するために、危険取消検出論理１６も、送出制御論理１８へ入力信号を供給する。
【００２５】
本発明の実例となる実施形態は添付の図面を参照してここに詳細に説明されたが、本発明はこれらの明確な実施形態に限定されず、添付されたクレームにより限定される本発明の範囲及び精神から離れることなく当業者により様々な変化及び変更がもたらされうることが理解される。
【図面の簡単な説明】
【００２６】
【図１】共用レジスタバンクにアクセスする多重実行パイプラインの実行段階を示す概略図である。
【図２】データ危険検出、危険上書き、及び交差転送（cross-forwarding）論理を備える２つの指示パイプラインの一部分を示す概略図である。
【図３】指示送出と並行して送出される指示のために交差転送（cross-forwarding）されるオペランドを制御する概略部分回路図である。
【図４】指示送出と交差転送（cross-forwarding）の制御の概略を示すフローチャート図である。
【符号の説明】
【００２７】
２  共用レジスタバンク
４，４´  シフター
６，６´  算術論理演算ユニット
８，８´  読込み／記憶ユニット
１０  取出し指示送出ブロック
１２  データ危険検出ユニット
１４  スコアボード
１６  危険取消検出論理
１８  送出制御
２０  転送制御論理
Ｅ１，Ｅ２，Ｅ３  実行段階
【図１】
2006331399.tif 000003
【図２】
2006331399.tif 000004
【図３】
2006331399.tif 000005
【図４】
2006331399.tif 000006
【外国語明細書】
2006331399.tif 000007
2006331399.tif 000008
2006331399.tif 000009
2006331399.tif 000010
2006331399.tif 000011
2006331399.tif 000012
2006331399.tif 000013
2006331399.tif 000014
2006331399.tif 000015
2006331399.tif 000016
2006331399.tif 000017
2006331399.tif 000018
2006331399.tif 000019
2006331399.tif 000020
2006331399.tif 000021
2006331399.tif 000022
2006331399.tif 000023
2006331399.tif 000024
2006331399.tif 000025
2006331399.tif 000026