JP6225554B2 - 演算処理装置及び演算処理装置の制御方法 - Google Patents

演算処理装置及び演算処理装置の制御方法 Download PDF

Info

Publication number
JP6225554B2
JP6225554B2 JP2013168694A JP2013168694A JP6225554B2 JP 6225554 B2 JP6225554 B2 JP 6225554B2 JP 2013168694 A JP2013168694 A JP 2013168694A JP 2013168694 A JP2013168694 A JP 2013168694A JP 6225554 B2 JP6225554 B2 JP 6225554B2
Authority
JP
Japan
Prior art keywords
instruction
cycle
staging
staging latches
unit
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.)
Active
Application number
JP2013168694A
Other languages
English (en)
Other versions
JP2015036922A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013168694A priority Critical patent/JP6225554B2/ja
Priority to EP14177225.1A priority patent/EP2843543B1/en
Priority to US14/335,973 priority patent/US20150052334A1/en
Publication of JP2015036922A publication Critical patent/JP2015036922A/ja
Application granted granted Critical
Publication of JP6225554B2 publication Critical patent/JP6225554B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • 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
    • 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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Advance Control (AREA)

Description

本発明は、演算処理装置及び演算処理装置の制御方法に関する。
互いに依存関係にある2以上の命令を発行する命令発行制御部と、実行パイプラインとを有する情報処理装置が知られている(例えば、特許文献1参照)。命令発行制御部は、命令デコード部と、命令が使用するリソースの使用状態を管理するリソース管理部とを有する。発行タイミング決定&リソース割り当て部は、リソースの使用状態に基づきデコード済み命令が使用するリソースが現在から何サイクル後に使用可能になるのかを判断し、デコード済み命令の発行タイミングとして決定し、リソースの使用状態を更新しリソースの割り当てを行う。発行確定命令待機バッファは、発行タイミングの決定及びリソースの割り当てが行われた命令を、その発行タイミングとなるまでの間バッファリングして保持し、その発行タイミングで実行パイプラインに発行する。
また、マルチスレッドプロセッサの、複数のスレッドにより共用使用されるパイプラインのディスパッチ時点において、1つのスレッドをブロックする方法が知られている(例えば、特許文献2参照)。1つのスレッドの命令に対する長い待ち時間の条件は、パイプラインを共用使用するスレッドのすべてを停止させることができる。ディスパッチブロック信号命令は、ディスパッチ時に長い待ち時間の条件を含むスレッドをブロックする。ブロックの長さは、待ち時間の長さと一致するため、長い待ち時間の条件が解除された後に、パイプラインは、ブロックされたスレッドから命令をディスパッチできる。ディスパッチ時に1つのスレッドをブロックすることにより、プロセッサは、ブロックの間、他のスレッドから命令をディスパッチできる。
特開2012−173755号公報 特開2006−351008号公報
2個の命令をオーバーラップさせて発行すれば、スループットを向上させることができる。しかし、オーバーラップ可能な命令とオーバーラップ困難な命令とがある。オーバーラップ困難な命令であっても、その一部をオーバーラップできれば、スループットを向上させることができる。
1つの側面では、本発明の目的は、2個の命令を発行する際にスループットを向上させることができる演算処理装置及び演算処理装置の制御方法を提供することである。
演算処理装置は、複数のステージングラッチを有し、前記複数のステージングラッチのうち、最終段のステージングラッチを含む第1の複数のステージングラッチ間におけるデータの遷移に単一のクロックのみを必要とするパイプライン動作と、前記複数のステージングラッチのうち、前記第1の複数のステージングラッチよりも前段側に位置する第2の複数のステージングラッチ間におけるデータの遷移に複数のクロックを必要とするマルチサイクル動作とにより第1の命令を実行する第1の命令実行部と、第2の命令を実行する第2の命令実行部と、前記第1の命令と前記第2の命令とを入力し、前記第1の命令の実行と前記第2の命令の実行とが一部重複するように、前記第1の命令を前記第1の命令実行部に発行するとともに、前記第2の命令を前記第2の命令実行部に発行する命令制御部とを有し、前記命令制御部は、前記第1の命令実行部が前記第1の命令の実行中に、前記第1の命令の不定の終了サイクルを確定し、前記確定した終了サイクルに応じて、前記第2の命令の前記第2の命令実行部への発行の抑止を解除する。
一部重複するように第1の命令及び第2の命令を発行することにより、スループットを向上させることができる。
図1は、演算処理装置としてのプロセッサを含む情報処理システムの構成例を示す図である。 図2は、プロセッサの構成例を示す図である。 図3は、図2に示した命令発行制御部の構成例を示す図である。 図4(A)及び(B)は、図3の取出し可能命令検出部の一部の構成例を示す図である。 図5は、演算器のパイプライン動作を示す図である。 図6は、演算器のマルチサイクル動作を示す図である。 図7は、スループット1のパイプライン動作を示す図である。 図8は、命令発行制御部の命令発行例を示す図である。 図9は、2個の複合マルチサイクル動作の命令発行を示す図である。 図10は、複合マルチサイクル動作及び共有完全パイプライン動作の命令発行を示す図である。 図11は、2個の複合マルチサイクル動作の命令発行を示す図である。 図12は、複合マルチサイクル動作及び共有完全パイプライン動作の命令発行を示す図である。 図13は、発行抑止信号を用いて動作を部分的にオーバーラップさせる方法を示す図である。 図14は、演算命令のサイクルステージを説明するための図である。 図15は、先行命令が複合マルチサイクル動作であり、後続命令が複合マルチサイクル動作である場合のタイミングチャートである。 図16は、先行命令が複合マルチサイクル動作であり、後続命令が純粋マルチサイクル動作である場合のタイミングチャートである。 図17は、先行命令が複合マルチサイクル動作であり、後続命令が共有完全パイプライン動作である場合のタイミングチャートである。
図1は、演算処理装置としてのプロセッサを含む情報処理システムの構成例を示す図である。図1に示す情報処理システムは、例えば複数のプロセッサ11A、11B及びメモリ12A、12Bと、外部装置との入出力制御を行うインターコネクト制御部13とを有する。
図2は、プロセッサ11の構成例を示す図である。プロセッサ11は、演算処理装置であり、図1のプロセッサ11A及び11Bに対応し、例えば命令のアウトオブオーダ実行やパイプライン処理の機能を有する。
命令フェッチステージでは、命令フェッチ部21、命令バッファ24、分岐予測回路22、一次命令キャッシュメモリ23、及び二次キャッシュメモリ34等が動作する。命令フェッチ部21は、分岐予測回路22からフェッチする命令の予測分岐先アドレス、分岐制御部30から分岐演算により確定した分岐先アドレス等を受け取る。命令フェッチ部21は、受け取った予測分岐先アドレス、分岐先アドレス、及び命令フェッチ部21内で作成した分岐しない場合にフェッチする命令の連続した次のアドレス等から、1つのアドレスを選択して次の命令フェッチアドレスを確定する。命令フェッチ部21は、確定した命令フェッチアドレスを一次命令キャッシュメモリ23に出力し、出力された確定後の命令フェッチアドレスに対応する命令コードをフェッチする。
一次命令キャッシュメモリ23は、二次キャッシュメモリ34の一部のデータを格納しているものであり、二次キャッシュメモリ34は、メモリコントローラ35を介してアクセス可能なメモリの一部のデータを格納しているものである。一次命令キャッシュメモリ23に該当するアドレスのデータが存在しない場合には二次キャッシュメモリ34からデータをフェッチし、二次キャッシュメモリ34に該当するデータが存在しない場合にはメモリからデータをフェッチする。本実施形態では、メモリはプロセッサ11の外部に配置しているため、外部にあるメモリとの入出力制御はメモリコントローラ35を介して行われる。一次命令キャッシュメモリ23や二次キャッシュメモリ34、メモリの該当するアドレスからフェッチされた命令コードは、命令バッファ24に格納される。
分岐予測回路22は、命令フェッチ部21から出力された命令フェッチアドレスを受け取り、命令フェッチと並行して分岐予測を実行する。分岐予測回路22は、受け取った命令フェッチアドレスを基に分岐予測を行い、分岐の成立又は不成立を示す分岐方向と予測分岐先アドレスとを命令フェッチ部21へ返す。命令フェッチ部21は、予測された分岐方向が成立であった場合には次の命令フェッチアドレスとして予測された分岐先アドレスを選択する。
命令発行ステージでは、命令デコーダ25及び命令発行制御部26が動作する。命令デコーダ25は、命令バッファ24から命令コードを受け取って命令の種別や必要な実行資源等を解析し、解析結果を命令発行制御部26に出力する。命令発行制御部26は、リザベーションステーションの構造を持つ。命令発行制御部26は、命令で参照するレジスタ等の依存関係を見て、依存関係のあるレジスタの更新状況や同じ実行資源を用いる命令の実行状況等から実行資源が命令を実行可能かどうかを判断する。命令発行制御部26は、実行資源が命令を実行可能であると判断した場合には、レジスタ番号やオペランドアドレス等の命令の実行に必要な情報を実行資源に対して出力する。また、命令発行制御部26は、実行可能な状態になるまで命令を格納しておくバッファの機能も有する。演算器制御回路27は、命令発行制御部26から入力した情報に応じて演算器28を制御する。
命令実行ステージでは、演算器28、一次オペランドキャッシュメモリ29、及び分岐制御部30等の実行資源が動作する。演算器28は、レジスタ31や一次オペランドキャッシュメモリ29からデータを受け取り、四則演算、論理演算、三角関数演算、及びアドレス計算等の命令に対応した演算を実行し、演算結果をレジスタ31や一次オペランドキャッシュメモリ29に出力する。一次オペランドキャッシュメモリ29は、命令キャッシュメモリ23と同様に、二次キャッシュメモリ34の一部のデータを格納しているものである。一次オペランドキャッシュメモリ29は、ロード命令によるメモリから演算器28やレジスタ31へのデータのロードや、ストア命令による演算器28やレジスタ31からメモリへのデータのストア等に用いられる。各実行資源は、命令実行の完了通知を命令完了制御部32へ出力する。
分岐制御部30は、命令デコーダ25から分岐命令の種別を受け取り、演算器28から分岐先アドレスや分岐条件となる演算の結果を受け取って、演算結果が分岐条件を満たしていれば分岐成立、満たしていなければ分岐不成立の判断を行い、分岐方向を確定する。また、分岐制御部30は、演算結果と分岐予測時の分岐先アドレスと分岐方向が一致するかどうかの判断や、分岐命令の順序関係の制御も行う。分岐制御部30は、演算結果と予測とが一致した場合には命令完了制御部32へ分岐命令の完了通知を出力する。一方、演算結果と予測とが一致しなかった場合には分岐予測失敗を意味するので、分岐制御部30は、命令完了制御部32へ分岐命令の完了通知とともに後続命令のキャンセル及び再命令フェッチ要求を出力する。
命令完了ステージでは、命令完了制御部32、レジスタ31、及び分岐履歴更新部33が動作する。命令完了制御部32は、命令の各実行資源から受け取った完了通知を基に、コミットスタックエントリに格納された命令コード順に命令完了処理を行い、レジスタ31の更新指示を出力する。レジスタ31は、命令完了制御部32からレジスタ更新指示を受け取ると、演算器28や一次オペランドキャッシュメモリ29から受け取る演算結果のデータを基にレジスタの更新を実行する。分岐履歴更新部33は、分岐制御部30から受け取る分岐演算の結果を基に分岐予測の履歴更新データを作成し、分岐予測回路22に出力する。
図3は、図2に示した命令発行制御部26の構成例を示す図である。図3には、リザベーションステーションの機能を実現する命令発行制御部26の構成例を示している。図3に示す命令発行制御部26は、複数の出力ポートPA及びPBを有し、各出力ポートPA及びPBからそれぞれ1つの命令を出力することで複数の命令を同時に出力可能なものである。図3には、2つの出力ポートPA及びPBを有する例を示している。
命令デコーダ25でデコードされた命令は、リザベーションステーションのエントリ本体39の空いているエントリに登録される。登録される内容は、エントリが有効であることを示すバリッドビット(V)、命令におけるディスティネーションレジスタ等の命令オペランドを識別するタグ、及びデコード済みオペコード等である。リザベーションステーションのエントリ本体39に登録された命令は、取出し可能命令検出部36により、実行済命令のタグ等に基づいて先行命令との間のレジスタ依存関係が解析され実行可能であると判定されると、エントリ本体39から取出し可能な命令として検出される。取出し可能な命令は、ポート調停部37により出力ポートPA及びPBの調停を受け、調停の結果、出力されることが決定した命令は演算器28へ送出される。なお、命令デコーダ25から取出し可能命令検出部36に命令に係る情報をバイパスする経路を設けることで、命令が1クロックサイクルのレイテンシでリザベーションステーションを通過できるようにすることも可能である。発行抑止信号設定部38は、出力ポートPA及びPBの命令がオーバーラップ不可である場合には、発行抑止信号を出力する。発行抑止信号が出力されると、ポート調停部37による調停は行われず、命令の発行が待機させられる。
図4(A)及び(B)は、図3の取出し可能命令検出部36の一部の構成例を示す図であり、エントリnにバッファされている命令が特定の出力ポートPA又はPBから取り出されることを許可又は禁止する論理回路の一例を示す。図4(A)は、出力ポートPAについてのエントリnに対応する回路を示しており、図4(B)は、出力ポートPBについてのエントリnに対応する回路を示している。
図4(A)に示すように、取出し可能命令検出部36は、出力ポートPAについては、論理積(AND)回路41、42、及び否定論理和(NOR)回路43を有する。AND回路41には、信号En_MC_OP及び信号INH_PA_MC_OPが入力される。また、AND回路42には、信号En_FLA_OP及び信号INH_PA_FLA_OPが入力される。NOR回路43には、AND回路41及び42の出力信号が入力され、その演算結果が信号En_ENA_PAとして出力される。
また、図4(B)に示すように、取出し可能命令検出部36は、出力ポートPBについては、AND回路44、45、及びNOR回路46を有する。AND回路44には、信号En_MC_OP及び信号INH_PB_MC_OPが入力される。また、AND回路45には、信号En_FLA_OP及び信号INH_PB_FLA_OPが入力される。NOR回路46には、AND回路44及び45の出力信号が入力され、その演算結果が信号En_ENA_PBとして出力される。
図4(A)及び(B)において、入力信号En_MC_OPは、エントリnにバッファされている命令が、使用する演算器28を複数サイクル(マルチサイクル)占有し続ける命令であることを示す信号である。入力信号INH_PA_MC_OPは、出力ポートPAに接続されている演算器28が、この演算器28を複数サイクル占有し続ける命令によって既に使用されていることを示し、新たにこの演算器28を使用する命令が出力ポートPAから取り出されることを禁止する信号である。信号En_MC_OPと信号INH_PA_MC_OPとを論理積演算して得られる信号は、エントリnにバッファされている命令が演算器28を複数サイクル占有し続ける命令であって、かつ、出力ポートPAに接続されている演算器28が既に使用されていることから、エントリnの命令が出力ポートPAから取り出されることを禁止する信号である。
入力信号En_FL_OPは、エントリnにバッファされている命令が、最大の出力遅延サイクル数が固定であるパイプライン化された演算器28を用いる命令であることを示す信号である。ここで、最大の出力遅延サイクル数が固定であるとは、例えば、演算器28の演算レイテンシが4サイクル又は6サイクルである場合に、レイテンシが高々6サイクルであると演算終了以前に予見できるといった意味である。入力信号INH_PA_FLA_OPは、出力ポートPAに接続されている演算器28であり、最大の出力遅延サイクル数が固定であるパイプライン化された演算器28について、その演算結果出力のための伝送路が他の命令によって使用される見込みであることを示し、新たにこの演算器28を使用する命令が出力ポートPAから取り出されることを禁止する信号である。信号En_FLA_OPと信号INH_PA_FLA_OPとを論理積演算して得られる信号は、エントリnにバッファされている命令が最大の出力遅延サイクル数が固定であるパイプライン化された演算器28を用いる命令であり、かつ、その演算結果出力のための伝送路が他の命令によって使用される見込みであることから、エントリnの命令が出力ポートPAから取り出されることを禁止する信号である。出力信号En_ENA_PAは、エントリnにバッファされている命令が出力ポートPAから取り出されることを許可する信号である。なお、図4(B)に示す各信号は、前述した図4(A)に示す各信号を出力ポートPAと出力ポートPBとを入れ換えたものに相当する。
ある演算器の結果出力のための伝送路が他の命令によって使用される状態が起こる場合としては、演算器が複数種類あって、それぞれのレイテンシが異なる場合があげられる。後続命令が用いる小さいレイテンシの演算器の結果出力の伝送路が、先行命令が用いる大きいレイテンシの演算器の結果出力のために使用されることが予め確定している場合には、その伝送路を用いる演算器が接続された出力ポートへの後続命令の出力を禁止する制御を行う。前述した信号En_MC_OP、En_FLA_OPは、命令の種類によって異なる命令実行時の制御を指示する信号であり、命令デコーダ25から送られる。前段のパイプラインステージから命令がエントリに登録された後に、レイテンシ1サイクルで通過することができるリザベーションステーションを構成するために、これらの信号の直前にバイパス経路を設けてもよい。入力信号INH_PA_MC_OP及びINH_PB_MC_OPは、発行抑止信号設定部38の発行抑止信号に対応している。
例えば、同時に1命令発行し、アウトオブオーダ実行を行うパイプラインを想定しているが、スーパースカラであっても、インオーダ実行であってもよい。
図5は、演算器(命令実行部)28のパイプライン動作を示す図である。演算器28は、例えば、複数のステージングラッチ51及び組み合わせ回路52を有する。パイプライン動作では、クロックサイクル毎に組み合わせ回路52の演算結果が後段のステージングラッチ51に伝達され、スループット1(毎クロックサイクル結果を出力する)の動作が行われる。パイプライン動作は、複数のステージングラッチ51を有し、複数のステージングラッチ51間におけるデータの遷移に単一のクロックのみを必要とする動作である。
図6は、演算器(命令実行部)28のマルチサイクル動作を示す図である。例えば、前段の組み合わせ回路52は、後段の組み合わせ回路52の演算結果61を入力して演算を行う。この部分では、複数クロックサイクルで結果が出力されるマルチサイクル動作が行われる。マルチサイクル動作は、複数のステージングラッチ51を有し、複数のステージングラッチ51間におけるデータの遷移に複数のクロックを必要とする動作である。
図7は、図5に対応し、スループット1のパイプライン動作を示す図である。パイプラン動作では、単一クロックサイクル動作が行われ、各パイプラインステージ71がスループット1である。命令発行制御部26は、複数の命令を順に発行し、複数の命令をオーバーラップさせることにより、スループットを向上させることができる。
図8は、命令発行制御部26の命令発行例を示す図である。純粋マルチサイクル動作81は、例えば除算・平方根の演算であり、複数のステージングラッチ51間におけるデータの遷移に複数のクロックを必要とするとともに、複数のステージングラッチ51間にそれぞれ位置する回路52を、他の命令の実行の演算器28の回路とは共有しない非共有マルチサイクル動作である。非共有完全パイプライン動作82は、例えば乗算・加算の演算であり、他の動作と資源を共有しないパイプライン動作のみの動作である。共有完全パイプライン動作83は、パイプライン動作84〜86のみの動作であり、一部のパイプライン動作85が他の動作89と資源(回路)を共有する。複合マルチサイクル動作87は、パイプライン動作88、マルチサイクル動作89及びパイプライン動作90を有し、マルチサイクル動作89が他の動作85と資源(回路)を共有する。
図9は、2個の複合マルチサイクル動作91及び95の命令発行を示す図である。横軸は時刻であり、縦軸は命令発行順である。複合マルチサイクル動作91は、図5及び図6の複数のステージングラッチ51を有し、パイプライン動作92、マルチサイクル動作93及びパイプライン動作94を順に行う。パイプライン動作94は、図5に示すように、複数のステージングラッチ51のうち、最終段のステージングラッチ51を含む第1の複数のステージングラッチ51間におけるデータの遷移に単一のクロックのみを必要とする動作である。マルチサイクル動作93は、図6に示すように、複数のステージングラッチ51のうち、上記の第1の複数のステージングラッチ51よりも前段側に位置する第2の複数のステージングラッチ51間におけるデータの遷移に複数のクロックを必要とする動作である。
複合マルチサイクル動作95は、図5及び図6の複数の第2のステージングラッチ51を有し、パイプライン動作96、マルチサイクル動作97及びパイプライン動作98を順に行う。パイプライン動作96は、図5に示すように、複数の第2のステージングラッチ51のうち、最初段のステージングラッチ51を含む第3の複数のステージングラッチ51間におけるデータの遷移に単一のクロックのみを必要とする動作である。マルチサイクル動作97は、図6に示すように、複数の第2のステージングラッチ51のうち、上記の第3の複数のステージングラッチ51よりも後段側に位置する第4の複数のステージングラッチ51間におけるデータの遷移に複数のクロックを必要とする動作である。ここで、マルチサイクル動作93及び97は、資源を共有しているため、複合マルチサイクル動作91及び95は相互にオーバーラップさせることが困難であり、スループット低下の原因になる。本実施形態では、一部オーバーラップさせることにより、スループットを向上させる。その詳細は、後に図11を参照しながら説明する。
図10は、複合マルチサイクル動作101及び共有完全パイプライン動作105の命令発行を示す図である。複合マルチサイクル動作101は、パイプライン動作102、マルチサイクル動作103及びパイプライン動作104を順に行う。共有完全パイプライン動作105は、複数の第2のステージングラッチ51を有し、パイプライン動作106、パイプライン動作107及びパイプライン動作108を順に行う。ここで、マルチサイクル動作103及びパイプライン動作107は、資源を共有しているため、複合マルチサイクル動作101及び共有完全パイプライン動作105は相互にオーバーラップさせることが困難であり、スループット低下の原因になる。パイプライン動作106は、複数の第2のステージングラッチ51のうち、最初段のステージングラッチ51を含む第3の複数のステージングラッチ51間におけるデータの遷移に単一のクロックのみを必要とし、上記の第3の複数のステージングラッチ51間にそれぞれ位置する回路52を、他の命令の実行で使用する演算器28の回路とは共有しない非共有パイプライン動作である。パイプライン動作107は、複数の第2のステージングラッチ51のうち、上記の第3の複数のステージングラッチ51よりも後段側に位置する第4の複数のステージングラッチ51間におけるデータの遷移に単一のクロックのみを必要とし、上記の第4の複数のステージングラッチ51間にそれぞれ位置する回路52を、他の命令の実行に使用する演算器28の回路と共有する共有パイプライン動作である。本実施形態では、一部オーバーラップさせることにより、スループットを向上させる。その詳細は、後に図12を参照しながら説明する。
図11は、図9に対応し、2個の複合マルチサイクル動作91及び95の命令発行を示す図である。マルチサイクル動作93及び97は、資源を共有している。そのため、命令発行制御部26がマルチサイクル動作93を発行している期間111では、図3の発行抑止信号設定部38は発行抑止信号を取出し可能命令検出部36に出力する。これにより、期間111では、取出し可能命令検出部36は、マルチサイクル動作97の発行を禁止する。2個の複合マルチサイクル動作91及び95は、相互に一部を時間的にオーバーラップさせることができる。具体的には、パイプライン動作96は、マルチサイクル動作93とオーバーラップする。マルチサイクル動作97は、パイプライン動作94とオーバーラップする。これにより、スループットを向上させることができる。特に、レイテンシが長い処理をオーバーラップさせることの効果は大きい。
なお、パイプライン動作96は、マルチサイクル動作93の他、パイプライン動作92の一部にもオーバーラップさせることができる。また、パイプライン動作98は、パイプライン動作94の一部にオーバーラップさせることができる。
図12は、図10に対応し、複合マルチサイクル動作101及び共有完全パイプライン動作105の命令発行を示す図である。マルチサイクル動作103及びパイプライン動作107は、資源を共有している。そのため、命令発行制御部26がマルチサイクル動作103を発行している期間121では、図3の発行抑止信号設定部38は発行抑止信号を取出し可能命令検出部36に出力する。これにより、期間121では、取出し可能命令検出部36は、パイプライン動作107の発行を禁止する。複合マルチサイクル動作101及び共有完全パイプライン動作105は、相互に一部を時間的にオーバーラップさせることができる。具体的には、パイプライン動作106は、マルチサイクル動作103とオーバーラップする。パイプライン動作107は、パイプライン動作104とオーバーラップする。パイプライン動作108は、パイプライン動作104とオーバーラップする。これにより、スループットを向上させることができる。特に、レイテンシが長い処理をオーバーラップさせることの効果は大きい。なお、パイプライン動作106は、マルチサイクル動作103の他、パイプライン動作102の一部にもオーバーラップさせることができる。
図13は、マルチサイクル演算命令の発行抑止信号135及び136を用いて動作を部分的にオーバーラップさせる方法を示す図である。本実施形態では、部分的なパイプライン制御を導入し、演算処理のオーバーラップを実現するため、オーバーラップ可能な命令の最大数だけ命令情報ラッチを用意する。言い換えると、1つのパイプラインステージが複数クロックサイクルにわたるパイプライン処理を行う。演算器28に対して2命令までオーバーラップさせようとした場合、演算器28全体が2つの仮想的なパイプラインステージに分割されているものとして制御する。命令の状態は、2つのパイプラインステージに対応して保持される。図13のタイミングチャートは、制御信号を示し、発行から数サイクル遅れて実際の演算処理が行われる。同期式回路の場合では、各信号はクロックサイクル単位で変化する。
先行命令は、パイプライン1段目信号131及びパイプライン2段目信号132を有する。後続命令は、パイプライン1段目信号133及びパイプライン2段目信号134を有する。命令発行制御部26は、先行命令に応じて、パイプライン1段目信号131を出力し、その後、パイプライン2段目信号132を出力する。パイプライン1段目信号131が出力されると、発行抑止信号設定部38は発行抑止信号135を出力する。命令発行制御部26は、発行抑止信号135の出力が終了するまで、後続命令のマルチサイクル演算命令の発行を抑止し、発行抑止信号135の出力が終了すると、後続命令のマルチサイクル演算の発行を開始する。命令発行制御部26は、後続命令に応じて、パイプライン1段目信号133を出力し、その後、パイプライン2段目信号134を出力する。これにより、先行命令のパイプライン段目信号132と後続命令のパイプライン1段目信号133とをオーバーラップさせ、スループットを向上させることができる。
図14は、演算命令のサイクルステージを説明するための図である。サイクルステージでは、P、B1、B2、X1〜Xnが順に行われる。Pは、実行可能な命令の調停及び取り出しを行うパイプライン処理のサイクルステージである。B1は、レジスタ読み出し1サイクル目のパイプライン処理のサイクルステージである。B2は、レジスタ読み出し2サイクル目のパイプライン処理のサイクルステージである。X1〜Xnは、演算の実行サイクルステージである。演算は、演算器28での演算処理を意味する。X1は、実行1サイクル目の演算開始のサイクルステージである。Xn−pは、実行(n−p)サイクル目のサイクルステージである。Xnは、実行nサイクル目の演算終了のサイクルステージである。サイクルステージXn−kでは、演算器制御回路27により、実行サイクル数nが確定する。
図15〜図17は、命令発行制御部26の制御方法を示すタイミングチャートであり、時間の経過に伴う信号及び命令の状態変化を示す。時間は、左から右へ流れている。上段の両方向矢印の線分は命令情報1を保持するラッチの信号状態を示し、下段の両方向矢印の線分は命令情報2を保持するラッチの信号状態を示す。片方向の矢印は、信号及び状態変化についての因果関係を表している。例えば、A→Bは、Aを契機(条件)としてBが変化することを示している。ただし、Aが、Bの変化の必要条件に過ぎない場合がある。
サイクルは、命令の処理段階(命令ステージ)のことであり、回路構成がパイプライン動作及びマルチサイクル動作のいずれであっても命令ステージは毎クロックサイクル遷移する(同一サイクルが続くような待ち状態はない)ものとして表記する。この例では、発行サイクルPから実行サイクルX1までのレイテンシが3クロックサイクルである例を示している。発行サイクルPから実行サイクルX1までのレイテンシはこれに限られない。発行サイクルPの前にレジスタ読み出しサイクルB1,B2を行う構成であってもよい。
図15は、図11に対応し、先行命令が複合マルチサイクル動作91であり、後続命令が複合マルチサイクル動作95である場合を示す図である。先行命令と後続命令とは、レジスタ依存関係がなく、演算順序の制約を持たないものとする。依存関係のある命令同士の場合は、演算処理X1〜Xmをオーバーラップして実行することができない。
複合マルチサイクル動作を行う先行命令と複合マルチサイクル動作を行う後続命令との演算処理がオーバーラップするクロックサイクル数をmとする。オーバラップクロックサイクル数mは、先行命令の複合マルチサイクル動作91の最後部パイプライン動作94のクロックサイクル数と、後続命令の複合マルチサイクル動作95の先頭部のパイプライン動作96のクロックサイクル数との和とすることが好適であるが、これより少なくても良い。
複合マルチサイクル動作を行う先行命令が発行されたことにより、発行抑止信号設定部38は、先行命令のサイクルPで発行抑止信号に1をセットする。これにより、次のクロックサイクルで発行抑止信号が1となる。発行抑止信号が1となることにより、後続命令のマルチサイクル演算命令に対して発行抑止がかかる。すなわち、発行条件を満たさなくなり、命令発行制御部26は、命令を発行しなくなる。また、既に発行されている可能性のある次のクロックサイクルでサイクルPとなるマルチサイクル演算命令に対してはキャンセル処理が行われる。キャンセルにより命令は無効となる。発行抑止信号を1にすることにより、同一の演算回路に対して複数の命令による演算処理が競合することが防がれる。
複合マルチサイクル動作を行う先行命令が発行された後、演算器28は、サイクルB1及びB2でレジスタなどからオペランドデータを受け取り、サイクルX1からオペランドデータを用いて演算を開始する。先行命令のサイクルX1では、命令の情報(有効フラグ、命令種、命令タグ、結果を書き込むレジスタなどを含む)が命令情報1のラッチにセットされる。命令の情報は、演算処理が行われている間保持される。
演算の終了時点をサイクルXnと表記するが、演算開始時点ではnの値は未定である。マルチサイクル演算命令は、演算開始から演算終了までのサイクル数(演算レイテンシ)が発行の時点では不定な命令である。演算命令の種類や、演算データのパターンにより演算レイテンシは変化する。演算レイテンシは、演算器制御回路27により決定される。マルチサイクル演算命令の場合、演算器制御回路27は、演算終了のk+mサイクル前の実行サイクルXn−k−mまでに実行サイクル数nを確定することができる。命令発行制御部26は、先行命令の演算終了のk+mサイクル前の実行サイクルXn−k−mに演算終了予告信号が演算器制御回路27から通知され、演算終了サイクルXnの時刻が確定する。発行抑止信号設定部38は、命令情報1を保持しているラッチの有効フラグが、命令が有効であると示していて、命令種が複合マルチサイクル動作の命令であることを示しており、かつ、命令の状態が実行サイクルXn−p−mとなっている場合、発行抑止信号を0にリセットする。
その後、例えば、複合マルチサイクル動作を行う先行命令がサイクルXn−p−m+2に、複合マルチサイクル動作を行う後続命令が発行される。命令情報1を保持しているラッチの有効フラグが、命令が有効であると示していて、かつ、命令の状態がサイクルXn−mとなっているとき、命令情報1を保持しているラッチの内容が、命令情報2を保持しているラッチへ移動する。これにより、命令情報1を保持しているラッチに新たに後続命令の情報を保持することが可能となる。この命令情報の移動のタイミングは、サイクルXn−mであることが好適である。サイクルXn−mではない構成も可能であるが、nのとれる値の範囲が狭まり、演算レイテンシnの最小値の制約が大きくなる。または、オーバーラップ量mが小さくなる。
命令情報の移動タイミングをサイクルXn−m’とした場合、具体的なデメリットは、複合マルチサイクル動作を行う先行命令と複合マルチサイクル動作を行う後続命令とについて、命令情報2のラッチの情報が保持されている期間について注目すると、m’≦n−m、つまり、m+m’≦nとなることである。したがって、nのとれる値の最小値が大きくなる、又は、オーバーラップ量mが小さくなる。
なお、命令情報1のラッチについて注目すると、n−m’≦n−m、つまり、m≦m’である。以上より、m=m’となることが好適である。
複合マルチサイクル動作を行う後続命令のサイクルX1では、複合マルチサイクル動作を行う先行命令と同様に、命令情報1がラッチにセットされる。命令情報1は、複合マルチサイクル演算を行っている間保持される。先行命令がサイクルXnになると演算処理は終了し、命令情報2を保持しているラッチの内容は、図示されていない後続の命令処理段階に対応するラッチへ移動する。
複合マルチサイクル動作を行う先行命令のサイクルXn−m+1からサイクルXnまでの間のmクロックサイクルは、複合マルチサイクル動作を行う後続命令の演算処理(サイクルX1以降のmサイクル)とオーバーラップして実行されており、演算器28のスループットが向上している。例えば、複合マルチサイクル動作を用いる命令を連続して実行する場合のスループットはn/(n−m)倍となる。
次に、後続命令が複合マルチサイクル動作を用いる命令の場合を説明する。後続命令がマルチサイクル演算命令の場合、演算終了のk+mサイクル前までに演算レイテンシが確定し、命令発行制御部26は、サイクルXn−k−mで演算器制御回路27より演算終了予告信号が通知される。発行抑止信号設定部38は、命令情報1を保持しているラッチの有効フラグが、命令が有効であると示していて、命令種が複合マルチサイクル動作を用いる命令であることを示しており、かつ、命令の状態がサイクルXn−p−mとなっているとき、発行抑止信号を0にリセットする。ここで、先行命令のサイクルXnと後続命令のサイクルXn−p−mとの間の時刻の前後関係は不定である。
命令情報1を保持しているラッチの有効フラグが、命令が有効であると示していて、命令の状態がサイクルXn−mとなっているとき、命令情報1を保持しているラッチの内容が、命令情報2を保持しているラッチへ移動する。先行命令の情報は、命令情報2を保持しているラッチから既に移動しており、衝突しない。ここでは、命令情報1及び2のラッチを持つ場合、m<=n−mという制約を仮定している。
図16は、先行命令が複合マルチサイクル動作であり、後続命令が純粋マルチサイクル動作である場合を示す図である。先行命令の複合マルチサイクル動作は、図15の先行命令と同じである。後続命令の純粋マルチサイクル動作は、図8の純粋マルチサイクル動作81と同じであり、複数の第2のステージングラッチ51を有し、複数の第2のステージングラッチ51間におけるデータの遷移に複数のクロックを必要とするとともに、複数の第2のステージングラッチ51間にそれぞれ位置する回路52を、他の命令の実行で使用する演算器28の回路とは共有しない非共有マルチサイクル動作である。図16のタイミングチャートは、図15のタイミングチャートに対して、後続命令のサイクルXn−k−mまでは同じである。以下、図16が図15と異なる点を説明する。
後続命令(純粋マルチサイクル動作)は、複合マルチサイクル動作を行う先行命令のサイクルXn−p−m+2のタイミングで発行される。図16では、図15に対して、後続命令の状態に起因する発行抑止信号のリセットのタイミングが変わっている。発行抑止信号設定部38は、命令情報2を保持しているラッチの有効フラグが、保持された命令が有効であると示していて、命令種が純粋マルチサイクル動作の命令であることを示しており、かつ、命令の状態がサイクルXn−pとなっているとき、発行抑止信号を0にリセットする。
この場合も、複合マルチサイクル動作を行う先行命令のサイクルXn−m+1からサイクルXnまでの間のmクロックサイクルは、後続命令の演算処理(サイクルX1以降のmサイクル)とオーバーラップして実行されており、演算器28のスループットが向上している。
図17は、図12に対応し、先行命令が複合マルチサイクル動作101であり、後続命令が共有完全パイプライン動作105である場合を示す図である。図17のタイミングチャートは、図15のタイミングチャートに対して、先行命令のサイクルXn−p−mまでは同じである。以下、図17が図15と異なる点を説明する。
後続命令(共有完全パイプライン動作)は、複合マルチサイクル動作を行う先行命令のサイクルXn−p−m+2のタイミングで発行される。先行命令のサイクルXn−p−m+2サイクルのタイミング以降では、発行抑止信号が0であることにより、後続命令が発行抑止されなくなる。これは、先行命令と後続命令とで演算器28内の演算回路が競合しなくなったためである。これにより、後続命令は、抑止されずに、パイプライン動作を実行する。
この場合も、複合マルチサイクル動作を行う先行命令のサイクルXn−m+1からサイクルXnまでの間のmクロックサイクルは、共有完全パイプライン動作を行う後続命令の演算処理(サイクルX1以降のmサイクル)とオーバーラップして実行されており、演算器28のスループットが向上している。
図15〜図17では、命令発行制御部(命令制御部)26は、最終に行うパイプライン動作及びその前に行うマルチサイクル動作を含む複合マルチサイクル動作の先行命令(第1の命令)と、後続命令(第2の命令)とを入力する。そして、命令発行制御部26は、先行命令の実行と後続命令の実行とが一部重複するように、先行命令を演算器(命令実行部)28に発行するとともに、後続命令を演算器(命令実行部)28に発行する。
図15では、後続命令は、最初に行うパイプライン動作及びその後に行うマルチサイクル動作を含む複合マルチサイクル動作の命令である。図16では、後続命令は、非共有のマルチサイクル動作の命令である。図17では、後続命令は、最初に行う非共有のパイプライン動作及びその後に行う共有のパイプライン動作を含む共有完全パイプライン動作の命令である。発行抑止信号設定部38は、発行抑止信号のリセットタイミングを命令種によって切り替える。
命令発行制御部26は、先行命令のマルチサイクル動作が後続命令と資源を共有する期間では後続命令の発行を抑止する。先行命令の最終に行うパイプライン動作は、後続命令の動作とオーバーラップするように発行される。より好ましくは、先行命令の最終に行うパイプライン動作及びその前に行うマルチサイクル動作は、後続命令の動作とオーバーラップするように発行される。これにより、スループットを向上させることができる。
命令発行制御部26は、先行命令を実行する場合、ステージングラッチ51間に位置するいずれかの回路52が、後続命令を実行することによりステージングラッチ51間に位置する回路と共有されるときは、後続命令の演算器28への発行を抑止する。
また、命令発行制御部26は、先行命令の実行における最後のパイプライン動作と、後続命令の実行とが一部重複するように、先行命令及び後続命令を演算器28に発行する。また、命令発行制御部26は、先行命令の実行における最後のパイプライン動作又はその前のマルチサイクル動作と、後続命令の実行とが一部重複するように、先行命令及び後続命令を演算器28に発行する。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
11 プロセッサ
21 命令フェッチ部
22 分岐予測回路
23 一次命令キャッシュメモリ
24 命令バッファ
25 命令デコーダ
26 命令発行制御部
27 演算器制御回路
28 演算器
29 一次オペランドキャッシュメモリ
30 分岐制御部
31 レジスタ
32 命令完了制御部
33 分岐履歴更新部
34 二次キャッシュメモリ
35 メモリコントローラ
36 取出し可能命令検出部
37 ポート調停部
38 発行抑止信号設定部
39 エントリ本体

Claims (8)

  1. 複数のステージングラッチを有し、前記複数のステージングラッチのうち、最終段のステージングラッチを含む第1の複数のステージングラッチ間におけるデータの遷移に単一のクロックのみを必要とするパイプライン動作と、前記複数のステージングラッチのうち、前記第1の複数のステージングラッチよりも前段側に位置する第2の複数のステージングラッチ間におけるデータの遷移に複数のクロックを必要とするマルチサイクル動作とにより第1の命令を実行する第1の命令実行部と、
    第2の命令を実行する第2の命令実行部と、
    前記第1の命令と前記第2の命令とを入力し、前記第1の命令の実行と前記第2の命令の実行とが一部重複するように、前記第1の命令を前記第1の命令実行部に発行するとともに、前記第2の命令を前記第2の命令実行部に発行する命令制御部とを有し、
    前記命令制御部は、前記第1の命令実行部が前記第1の命令の実行中に、前記第1の命令の不定の終了サイクルを確定し、前記確定した終了サイクルに応じて、前記第2の命令の前記第2の命令実行部への発行の抑止を解除することを特徴とする演算処理装置。
  2. 前記第2の命令実行部は、
    複数の第2のステージングラッチを有し、前記複数の第2のステージングラッチのうち、最初段のステージングラッチを含む第3の複数のステージングラッチ間におけるデータの遷移に単一のクロックのみを必要とするパイプライン動作と、前記複数の第2のステージングラッチのうち、前記第3の複数のステージングラッチよりも後段側に位置する第4の複数のステージングラッチ間におけるデータの遷移に複数のクロックを必要とするマルチサイクル動作とにより、前記第2の命令を実行することを特徴とする請求項1記載の演算処理装置。
  3. 前記第2の命令実行部は、複数の第2のステージングラッチを有し、非共有マルチサイクル動作により、前記第2の命令を実行するものであり、
    前記非共有マルチサイクル動作は、前記複数の第2のステージングラッチ間におけるデータの遷移に複数のクロックを必要とするものであり、
    前記ステージングラッチ間にそれぞれ位置する回路の資源に関して、前記第2の命令実行部における前記非共有マルチサイクル動作と、前記演算処理装置が備える他の命令実行部は、回路の資源を共有していないことを特徴とする請求項1記載の演算処理装置。
  4. 前記第2の命令実行部は、複数の第2のステージングラッチを有し、非共有パイプライン動作と共有パイプライン動作により、前記第2の命令を実行するものであり、
    前記非共有パイプライン動作は、前記複数の第2のステージングラッチのうち、最初段のステージングラッチを含む第3の複数のステージングラッチ間におけるデータの遷移に単一のクロックのみを必要とするものであり、
    前記共有パイプライン動作は、前記複数の第2のステージングラッチのうち、前記第3の複数のステージングラッチよりも後段側に位置する第4の複数のステージングラッチ間におけるデータの遷移に単一のクロックのみを必要とするものであり、
    前記ステージングラッチ間にそれぞれ位置する回路の資源に関して、前記第2の命令実行部における前記非共有パイプライン動作と、前記演算処理装置が備える他の命令実行部は、回路の資源を共有していないものであり、
    前記ステージングラッチ間にそれぞれ位置する回路の資源に関して、前記第2の命令実行部における前記共有パイプライン動作と、前記演算処理装置が備える他の命令実行部は、回路の資源を共有しているものであることを特徴とする請求項1記載の演算処理装置。
  5. 前記命令制御部は、
    前記第1の命令実行部が前記第1の命令実行中において、前記第1の命令のマルチサイクル動作の実行と、前記第2の命令のマルチサイクル動作、非共有マルチサイクル動作又は共有パイプライン動作の実行とが重複しないように、前記第2の命令の前記第2の命令実行部への発行を抑止することを特徴とする請求項〜4のいずれか1項に記載の演算処理装置。
  6. 前記命令制御部は、
    前記第1の命令の実行における前記パイプライン動作と、前記第2の命令の実行とが一部重複するように、前記第1の命令を前記第1の命令実行部に発行するとともに、前記第2の命令を前記第2の命令実行部に発行することを特徴とする請求項1〜5のいずれか1項に記載の演算処理装置。
  7. 前記命令制御部は、
    前記第1の命令の実行における前記パイプライン動作又は前記マルチサイクル動作と、前記第2の命令の実行とが一部重複するように、前記第1の命令を前記第1の命令実行部に発行するとともに、前記第2の命令を前記第2の命令実行部に発行することを特徴とする請求項1〜6のいずれか1項に記載の演算処理装置。
  8. 複数のステージングラッチを有し、前記複数のステージングラッチのうち、最終段のステージングラッチを含む第1の複数のステージングラッチ間におけるデータの遷移に単一のクロックのみを必要とするパイプライン動作と、前記複数のステージングラッチのうち、前記第1の複数のステージングラッチよりも前段側に位置する第2の複数のステージングラッチ間におけるデータの遷移に複数のクロックを必要とするマルチサイクル動作とにより第1の命令を実行する第1の命令実行部と、第2の命令を実行する第2の命令実行部とを有する演算処理装置の制御方法において、
    前記演算処理装置が有する命令制御部が、前記第1の命令と前記第2の命令とを入力し、
    前記命令制御部が、前記第1の命令の実行と前記第2の命令の実行とが一部重複するように、前記第1の命令を前記第1の命令実行部に発行するとともに、前記第2の命令を前記第2の命令実行部に発行し、
    前記命令制御部が、前記第1の命令実行部が前記第1の命令の実行中に、前記第1の命令の不定の終了サイクルを確定し、前記確定した終了サイクルに応じて、前記第2の命令の前記第2の命令実行部への発行の抑止を解除することを特徴とする演算処理装置の制御方法。
JP2013168694A 2013-08-14 2013-08-14 演算処理装置及び演算処理装置の制御方法 Active JP6225554B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013168694A JP6225554B2 (ja) 2013-08-14 2013-08-14 演算処理装置及び演算処理装置の制御方法
EP14177225.1A EP2843543B1 (en) 2013-08-14 2014-07-16 Arithmetic processing device and control method of arithmetic processing device
US14/335,973 US20150052334A1 (en) 2013-08-14 2014-07-21 Arithmetic processing device and control method of arithmetic processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013168694A JP6225554B2 (ja) 2013-08-14 2013-08-14 演算処理装置及び演算処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2015036922A JP2015036922A (ja) 2015-02-23
JP6225554B2 true JP6225554B2 (ja) 2017-11-08

Family

ID=51224726

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013168694A Active JP6225554B2 (ja) 2013-08-14 2013-08-14 演算処理装置及び演算処理装置の制御方法

Country Status (3)

Country Link
US (1) US20150052334A1 (ja)
EP (1) EP2843543B1 (ja)
JP (1) JP6225554B2 (ja)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07244588A (ja) * 1994-01-14 1995-09-19 Matsushita Electric Ind Co Ltd データ処理装置
SG75756A1 (en) * 1994-02-28 2000-10-24 Intel Corp Method and apparatus for avoiding writeback conflicts between execution units sharing a common writeback path
JPH08305567A (ja) * 1995-05-10 1996-11-22 Hitachi Ltd 演算命令の並列処理方法および並列処理装置
US6304954B1 (en) * 1998-04-20 2001-10-16 Rise Technology Company Executing multiple instructions in multi-pipelined processor by dynamically switching memory ports of fewer number than the pipeline
US20020032558A1 (en) * 2000-03-10 2002-03-14 Paul Strong Method and apparatus for enhancing the performance of a pipelined data processor
US20060224864A1 (en) * 2005-03-31 2006-10-05 Dement Jonathan J System and method for handling multi-cycle non-pipelined instruction sequencing
US7313673B2 (en) 2005-06-16 2007-12-25 International Business Machines Corporation Fine grained multi-thread dispatch block mechanism
US20070022277A1 (en) * 2005-07-20 2007-01-25 Kenji Iwamura Method and system for an enhanced microprocessor
JP2012173755A (ja) 2011-02-17 2012-09-10 Nec Computertechno Ltd 情報処理装置及び情報処理方法

Also Published As

Publication number Publication date
JP2015036922A (ja) 2015-02-23
EP2843543A2 (en) 2015-03-04
EP2843543B1 (en) 2022-08-10
EP2843543A3 (en) 2017-06-07
US20150052334A1 (en) 2015-02-19

Similar Documents

Publication Publication Date Title
US9733945B2 (en) Pipelining out-of-order instructions
US10684860B2 (en) High performance processor system and method based on general purpose units
JP3547482B2 (ja) 情報処理装置
CN108089883B (zh) 基于推测度量将资源分配给线程
US9811340B2 (en) Method and apparatus for reconstructing real program order of instructions in multi-strand out-of-order processor
JP5047542B2 (ja) マルチスレッドプロセッサのディスパッチ時にスレッドをブロックする方法、コンピュータプログラム、および装置(精細なマルチスレッドディスパッチロックメカニズム)
US9658853B2 (en) Techniques for increasing instruction issue rate and reducing latency in an out-of order processor
CN105005463B (zh) 具有世代重命名的计算机处理器
KR20180021812A (ko) 연속하는 블록을 병렬 실행하는 블록 기반의 아키텍쳐
JP5861354B2 (ja) 演算処理装置及び演算処理装置の制御方法
WO2018026539A1 (en) Transactional register file for a block-based processor
US20150074353A1 (en) System and Method for an Asynchronous Processor with Multiple Threading
JP2002268878A (ja) スレッド間優先度可変プロセッサ
JP2018005488A (ja) 演算処理装置及び演算処理装置の制御方法
US20100100709A1 (en) Instruction control apparatus and instruction control method
JP6225554B2 (ja) 演算処理装置及び演算処理装置の制御方法
US7437544B2 (en) Data processing apparatus and method for executing a sequence of instructions including a multiple iteration instruction
JP4996945B2 (ja) データ処理装置、データ処理方法
JP7115203B2 (ja) 演算処理装置および演算処理装置の制御方法
JP7032647B2 (ja) 演算処理装置及び演算処理装置の制御方法
US20070043930A1 (en) Performance of a data processing apparatus
US11194577B2 (en) Instruction issue according to in-order or out-of-order execution modes
US12118355B2 (en) Cache coherence validation using delayed fulfillment of L2 requests
JP6381019B2 (ja) 情報処理装置及び制御方法
US20160342415A1 (en) Arithmetic processing device and processing method of arithmetic processing device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160510

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170413

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170925

R150 Certificate of patent or registration of utility model

Ref document number: 6225554

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150