TOP特許意匠商標
特許ウォッチ Twitter
公開番号2024040922
公報種別公開特許公報(A)
公開日2024-03-26
出願番号2022145583
出願日2022-09-13
発明の名称演算処理装置、演算処理方法及び情報処理装置
出願人富士通株式会社
代理人弁理士法人酒井国際特許事務所
主分類G06F 9/38 20180101AFI20240318BHJP(計算;計数)
要約【課題】予測精度を維持しつつ演算性能を向上させる演算処理装置、演算処理方法及び情報処理装置を提供する。
【解決手段】分岐予測機構170は、フェッチされたコール命令から得られる予測情報をRASフェッチ171に格納し且つリターン命令で使用される予測情報をRASフェッチ171から取得して削除し、コール命令の実行の完了後に予測情報をRASコンプリート172に格納し且つリターン命令の実行の完了後にRASコンプリート172から予測情報を削除する。分岐命令処理部140は、分岐命令を実行させる複数のエントリを格納するキューを有し、分岐予測ミスを検出した分岐命令を再実行せるエントリのうち、キューの先頭に最も近い第1エントリを特定し、第1エントリより先頭に近いエントリに格納されたコール命令及びリターン命令にしたがってRASフェッチ171に対して予測情報の格納及び削除を行い、第1エントリを再実行させる。
【選択図】図2
特許請求の範囲【請求項1】
命令をフェッチして実行するパイプラインと、
前記パイプラインによりフェッチされたコール命令から得られる予測情報を第1格納部に格納し且つ前記パイプラインによりフェッチされたリターン命令で使用される前記予測情報を前記第1格納部から取得して削除し、前記パイプラインによる前記コール命令の実行の完了後に前記予測情報を第2格納部に格納し且つ前記パイプラインによる前記リターン命令の実行の完了後に前記第2格納部から前記予測情報を削除する分岐予測機構と、
前記コール命令及び前記リターン命令を含む分岐命令を前記パイプラインに実行させる複数のエントリを格納するキューを有し、前記分岐命令に対する分岐予測ミスを検出し、前記分岐予測ミスを検出した前記分岐命令を再実行せるエントリのうち、前記キューの先頭に最も近い第1エントリを特定し、前記第1エントリより前記キューの先頭に近いエントリに格納された前記コール命令及び前記リターン命令にしたがって前記第1格納部に対して前記予測情報の格納及び削除を行い、前記第1エントリを前記パイプラインに再実行させる分岐命令処理部と
を備えたことを特徴とする演算処理装置。
続きを表示(約 1,600 文字)【請求項2】
前記分岐命令処理部は、前記第2格納部が保持する情報を前記第1格納部にコピーし、且つ、前記第1エントリより前記キューの先頭に近いエントリに格納された前記コール命令及び前記リターン命令にしたがって前記第1格納部に対して前記予測情報の格納及び削除を行うことを特徴とする請求項1に記載の演算処理装置。
【請求項3】
前記分岐命令処理部は、特定の分岐命令に対する前記分岐予測ミスを検出した場合、前記特定の分岐命令を再実行させるエントリから前記キューの先頭の間で前記第1エントリを特定することを特徴とする請求項1に記載の演算処理装置。
【請求項4】
前記分岐命令処理部は、前記第1エントリよりも前記キューの先頭に近いエントリにより実行される分岐命令を前記パイプラインから除くことを特徴とする請求項1に記載の演算処理装置。
【請求項5】
前記分岐命令処理部は、前記パイプラインに対して、前記第1エントリの再実行を要求し、且つ、前記第1格納部に対する前記予測情報の格納及び削除が完了するまで前記第1エントリの再実行を待機させることを特徴とする請求項1に記載の演算処理装置。
【請求項6】
命令をフェッチして実行するパイプラインを有する演算処理装置が、
前記パイプラインによりフェッチされたコール命令から得られる予測情報を第1格納部に格納し且つ前記パイプラインによりフェッチされたリターン命令で使用される前記予測情報を前記第1格納部から取得して削除し、
前記パイプラインによる前記コール命令の実行の完了後に前記予測情報を第2格納部に格納し且つ前記パイプラインによる前記リターン命令の実行の完了後に前記第2格納部から前記予測情報を削除し、
前記コール命令及び前記リターン命令を含む分岐命令を前記パイプラインに実行させる複数のエントリをキューに格納し、
前記分岐命令に対する分岐予測ミスを検出し、
前記分岐予測ミスを検出した前記分岐命令を再実行せるエントリのうち、前記キューの先頭に最も近い第1エントリを特定し、
前記第1エントリより前記キューの先頭に近いエントリに格納された前記コール命令及び前記リターン命令にしたがって前記第1格納部に対して前記予測情報の格納及び削除を行い、
前記第1エントリを前記パイプラインにより再実行する
ことを特徴とする演算処理方法。
【請求項7】
演算処理部を有する情報処理装置であって、
前記演算処理部は、
命令をフェッチして実行するパイプラインと、
前記パイプラインによりフェッチされたコール命令から得られる予測情報を第1格納部に格納し且つ前記パイプラインによりフェッチされたリターン命令で使用される前記予測情報を前記第1格納部から取得して削除し、前記パイプラインによる前記コール命令の実行の完了後に前記予測情報を第2格納部に格納し且つ前記パイプラインによる前記リターン命令の実行の完了後に前記第2格納部から前記予測情報を削除する分岐予測機構と、
前記コール命令及び前記リターン命令を含む分岐命令を前記パイプラインに実行させる複数のエントリを格納するキューを有し、前記分岐命令に対する分岐予測ミスを検出し、前記分岐予測ミスを検出した前記分岐命令を再実行せるエントリのうち、前記キューの先頭に最も近い第1エントリを特定し、前記第1エントリより前記キューの先頭に近いエントリに格納された前記コール命令及び前記リターン命令にしたがって前記第1格納部に対して前記予測情報の格納及び削除を行い、前記第1エントリを前記パイプラインに再実行させる分岐命令処理部とを備えた
ことを特徴とする情報処理装置。

発明の詳細な説明【技術分野】
【0001】
本発明は、演算処理装置、演算処理方法及び情報処理装置に関する。
続きを表示(約 2,500 文字)【背景技術】
【0002】
プロセッサが実行するプログラムには、分岐命令を含むものがある。分岐命令の実行では、分岐せずにプログラムカウンタにおいて分岐命令直後に続く命令から実行を続ける場合と、分岐してプログラム内の異なる位置の命令から実行を続ける場合がある。分岐命令を実行した場合に、分岐するか分岐しないかは分岐命令が実行ステージを過ぎるまで確定しない。以下では、命令が命令パイプラインの実行ステージを過ぎることを、その命令の処理が完了すると言う。
【0003】
分岐命令がある場合、それに続いて実行される命令は、分岐命令の実行結果に依存する。このため、分岐命令が実行ステージに至るまでの間、パイプラインはストールする。このストールをなくすため、一般的に採られている方策が命令の投機的実行である。命令の投機的実行とは、分岐命令の実行結果が判明する前に、分岐命令の実行結果を予測し、予測結果に基づいて分岐に続く命令の実行を開始することをいう。分岐命令の実行結果の予測は、分岐予測と呼ばれる。分岐予測が正しければ、パイプラインは分岐がなかったかのように流れ、ストールを除去することができる。
【0004】
これに対して、分岐予測が誤っていれば、プロセッサは、分岐予測に基づいてパイプラインに投入された命令を無効化し、予測結果とは反対の方向の命令を改めてパイプラインに投入する。分岐予測が予測を外した場合、プロセッサは、分岐予測ミスを検出して再命令フェッチを正しい分岐命令のアドレスからかけなおし、同時に誤ったパスの実行をパイプラインからクリアする。再命令フェッチは、分岐命令用のリザベーションステーションなどの分岐命令を処理する機構から命令フェッチに向けて発行される。ここでは、分岐命令を処理する機構として、RSBR(Reservation Station for Branch)を用いる場合で説明する。
【0005】
従来、RSBRは、分岐命令をインオーダーで処理し、分岐予測ミスが判明して再命令フェッチを行うことが明らかになっても、その分岐命令が自己の有するキューの先頭(TOQ:Top Of Que)になるまでそれ以前の分岐命令の処理の完了を待つ。そして、RSBRは、それ以前の分岐命令の処理が完了して分岐が確定し、再命令フェッチを求める分岐命令がTOQになると、その分岐命令の再命令フェッチ要求を出力する。この場合、RSBRは、分岐予測ミスが確定しても前方の分岐命令の処理が完了するまで再命令フェッチの出力を待機することになり、待機時間分処理が停止するため性能的な損失が生じる。
【0006】
このような損失に対して、RSBRは、先に再命令フェッチを出力できれば、命令フェッチまでのパイプラインの処理時間による遅延を隠すことができる。すなわち、RSBRは、分岐予測ミスが発生した場合、分岐命令に対する再命令フェッチ要求をアウトオブオーダーで実行することで、インオーダーにより再命令フェッチ要求を出す場合に比べて、待ち時間分早く再命令フェッチで取得される命令が処理可能である。
【0007】
しかし、再命令フェッチ要求をアウトオブオーダーで実行する場合、再命令フェッチの対象の分岐からTOQ間のコール命令やリターン命令が分岐予測に反映されないことが考えられる。その場合、リターンアドレススタック(RAS:Return Address Stack)による分岐予測精度が下がるという問題が生じる。
【0008】
リターンアドレススタックでは、命令フェッチを基準に更新するインストラクションフェッチ(Instruction Fetch)に基づくRASフェッチと、分岐命令の実行が完了した状態である分岐完了(Branch complete)を基準に更新する分岐処理完了に基づくRASコンプリートとが用いられる。コール命令であれば、プロセッサは、命令フェッチ段階で、その戻り先のアドレスをRASフェッチに格納する。戻り先アドレスの格納は、プッシュ(push)と呼ばれる。また、リターン命令であれば、プロセッサは、命令フェッチ段階で、対応するコール命令の戻り先アドレスをRASフェッチから取得する。戻り先アドレスの取得は、ポップ(pop)と呼ばれる。また、バックアップとして命令の処理完了の段階で、プロセッサは、コール命令であればRASコンプリートをプッシュし、リターン命令であればRASコンプリートをポップする。基本的には、プロセッサは、RASフェッチを用いてコール命令及びリターン命令のそれぞれに対してポップ及びプッシュを行いながら予測を行う。そして、再命令フェッチを行う場合、プロセッサは、RASコンプリートの情報をRASフェッチにコピーして再命令フェッチを用いる分岐命令の情報を反映させてから再命令フェッチを始める。
【0009】
こうすることで、再命令フェッチがTOQから出力される場合、分岐命令の処理はインオーダーで行われるため、RASコンプリートはTOQまでの分岐命令の情報が反映される。プロセッサは、再命令フェッチとなった分岐命令以前の全てのコール命令及びリターン命令の情報を復元してから、再命令フェッチされた命令を処理するので、リターンアドレススタックによる予測を行うことが可能となる。
【0010】
なお、分岐予測の技術として、TOQより後の最初の発行可能なエントリをアウトオブオーダーで発行を行うが、バリアマクロ命令より前のロード命令の場合、フェッチポートにキューインするまでロード命令の投機的な発行を抑止する技術が提案されている。また、プログラム識別情報及び分岐予測テーブルを基に分岐命令に対するターゲット予測情報を決定し、ターゲット予測情報に基づいて予測処理を行い、分岐命令に対する予測結果を生成する技術が提案されている。
【先行技術文献】
【特許文献】
(【0011】以降は省略されています)

この特許をJ-PlatPatで参照する

関連特許

個人
乗降調査装置
21日前
個人
プロジェクター
今日
個人
管理装置
5日前
個人
自動販売機
28日前
日本精機株式会社
投影装置
21日前
個人
コメント配信システム
1か月前
個人
リユース統合システム
1か月前
日本精機株式会社
投影システム
22日前
個人
広告提供方法
1か月前
個人
チラシ掲載位置表示システム
1か月前
個人
モノづくり知識情報システム
1か月前
小林クリエイト株式会社
RFタグ
28日前
株式会社SUBARU
車両
29日前
個人
情報処理装置及びプログラム
1か月前
株式会社協同印刷
防災・災害マウス
1か月前
17LIVE株式会社
サーバ
21日前
株式会社ゼロボード
価格決定システム
20日前
トヨタ自動車株式会社
検査装置
5日前
太陽誘電株式会社
触覚生成装置
1か月前
株式会社カネカ
異常推定システム
1か月前
株式会社フォーバル
仕訳システム
1か月前
株式会社イトーキ
分析装置
1か月前
中国電力株式会社
ゲームシステム
1か月前
株式会社NGA
画像投稿システム
5日前
株式会社アジラ
姿勢推定システム
19日前
個人
ブロックチェーンと既存網との接続方法
1か月前
株式会社三富
取引管理システム
今日
日本電気株式会社
勤務管理装置
27日前
株式会社小野測器
移動量計測システム
12日前
個人
言語翻訳システム及びプログラム
12日前
日本信号株式会社
自転車貸出システム
22日前
小林クリエイト株式会社
あて先表示システム
28日前
日本電気株式会社
端末及び認証システム
22日前
トヨタ自動車株式会社
燃料購入システム
19日前
個人
防災訓練オフ会
29日前
日本信号株式会社
駐車場システム
1か月前
続きを見る