JP2019101543A - プロセッサ及びパイプライン処理方法 - Google Patents

プロセッサ及びパイプライン処理方法 Download PDF

Info

Publication number
JP2019101543A
JP2019101543A JP2017229010A JP2017229010A JP2019101543A JP 2019101543 A JP2019101543 A JP 2019101543A JP 2017229010 A JP2017229010 A JP 2017229010A JP 2017229010 A JP2017229010 A JP 2017229010A JP 2019101543 A JP2019101543 A JP 2019101543A
Authority
JP
Japan
Prior art keywords
instruction
thread
branch
pipeline processing
subsequent
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.)
Pending
Application number
JP2017229010A
Other languages
English (en)
Inventor
和大 美馬
Kazuhiro Mima
和大 美馬
仁美 宍戸
Hitomi Shishido
仁美 宍戸
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.)
Sanken Electric Co Ltd
Original Assignee
Sanken Electric Co 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 Sanken Electric Co Ltd filed Critical Sanken Electric Co Ltd
Priority to JP2017229010A priority Critical patent/JP2019101543A/ja
Priority to US16/201,296 priority patent/US10853081B2/en
Publication of JP2019101543A publication Critical patent/JP2019101543A/ja
Pending 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/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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
    • 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/3802Instruction prefetching
    • 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/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Advance Control (AREA)

Abstract

【課題】タイムロスが生じることを抑制し、処理速度を向上させることができるプロセッサ及びパイプライン処理方法を提供する。【解決手段】複数のスレッドを処理し、分岐命令を含み前記スレッドのスレッド番号に対応した命令を実行して並行に処理するパイプライン処理を行うプロセッサであって、実行権を得たスレッドの命令をフェッチするフェッチ部1、フェッチ部でフェッチされた命令を実行する演算実行部2を備えたパイプライン処理部と、分岐命令を実行したスレッドのスレッド番号とパイプライン処理部内にある分岐命令の後続命令のスレッド番号とに応じて後続命令を破棄するかどうかを判定する分岐制御部14とを備える。【選択図】図1

Description

本発明は、パイプライン処理するとともに、分岐命令を実行するプロセッサ及びパイプライン処理方法に関する。
プロセッサでは、処理速度を向上するためにパイプライン処理が行われている。パイプライン処理は、命令をフェッチし、命令をデコードして演算を実行する処理であり、命令Aのフェッチが終わってデコードを開始すると、同時に命令Bのフェッチを開始する処理である。
即ち、パイプライン処理においては、複数の命令を並行して処理することが行われている。複数の命令は、プロセッサとは別に構成される命令メモリに格納され、任意のアドレスと結び付けられる。
図5にマルチスレッドのブロック図を示す。図5に示すマルチスレッドは、複数の命令のアドレスと結び付けられる複数のスレッドTH0〜TH2を有し、各スレッドTH0〜TH2には、独自のプログラムカウンタやレジスタがある。実行権が得られたスレッドの命令がフェッチFEされ、命令がデコードDEされて演算が実行される。
図6に、従来のプロセッサのパイプライン処理においてスレッド切替がある場合のスレッドの命令破棄の処理を示す。図6において、FEは、フェッチであり、DEはデコードであり、EXは、演算実行であり、WB1,WB2は、データのレジスタへの書き込みであり、例えば、命令1のフェッチが終わってデコードを開始すると、同時に分岐命令JMPのフェッチを開始するパイプライン処理を示している。
図6では、スレッドTH1,TH2があり、スレッドの切替がある例を示している。スレッドTH2の分岐命令JMPが実行されたら、分岐命令の後続のパイプライン内のスレッドTH1の命令C2、スレッドTH2の命令Ciも破棄していた(図では×、dropで示す)。
また、従来の技術として、特許文献1に記載された分岐誤予測バッファを用いるためのプロセッサが知られている。このプロセッサは、命令メモリに格納された命令に対してパイプライン処理を実行し、分岐命令を検出すると、分岐命令の結果を予測し、予測の結果に基づいて命令メモリに後続の命令を要求する。
このプロセッサは、分岐予測によって予測されなかった命令を記憶することで、分岐予測が誤った場合に発生するペナルティを抑制し、プロセッサの処理速度を向上することができる。
特開2011−100454号公報
しかしながら、分岐命令が検出されたとき、既にパイプライン内にある命令は、図6及び特許文献1で説明したように、破棄されている。その後、破棄された命令を実行する場合、分岐命令の実行と同時に破棄された命令を再度、読み出す必要がある(図6のスレッドTH1の命令C2の再フェッチ)。
この場合、命令が破棄されることで、タイムロスが生じるため、プロセッサの処理速度を向上させることができなかった。
本発明の課題は、タイムロスが生じることを抑制し、処理速度を向上させることができるプロセッサ及びパイプライン処理方法を提供することにある。
本発明に係るプロセッサは、複数のスレッドを処理し、分岐命令を含み前記スレッドのスレッド番号に対応した命令を実行して並行に処理するパイプライン処理を行うプロセッサであって、実行権を得た前記スレッドの前記命令をフェッチするフェッチ部と前記フェッチ部でフェッチされた命令を実行する演算実行部とを備えたパイプライン処理部と、前記分岐命令を実行したスレッドのスレッド番号と前記パイプライン処理部内にある前記分岐命令の後続命令のスレッド番号とに応じて前記後続命令を破棄するかどうかを判定する分岐制御部とを備えることを特徴とする。
本発明に係るパイプライン処理方法は、複数のスレッドを処理し、分岐命令を含み前記スレッドのスレッド番号に対応した命令を実行して並行に処理するパイプライン処理方法であって、実行権を得た前記スレッドの前記命令をフェッチし、フェッチされた命令を実行するパイプライン処理を行うステップと、前記分岐命令を実行したスレッドのスレッド番号と前記パイプライン処理内にある前記分岐命令の後続命令のスレッド番号とに応じて前記後続命令を破棄するかどうかを判定する分岐制御ステップとを備えることを特徴とする。
本発明のプロセッサ及びパイプライン処理方法によれば、分岐制御部は、分岐命令を実行したスレッドのスレッド番号とパイプライン処理内にある分岐命令の後続命令のスレッド番号とに応じて後続命令を破棄するかどうかを判定するので、分岐命令の後続命令のスレッド番号に応じて後続命令を破棄せずに後続命令の実行を継続することができる。従って、タイムロスが生じることを抑制し、処理速度を向上させることができる。
本発明の実施例1に係るプロセッサの構成図である。 実施例1に係るプロセッサのパイプライン処理においてスレッド切替がある場合のスレッドの命令破棄の処理を示す図である。 実施例1に係るプロセッサのパイプライン処理においてスレッド切替がない場合のスレッドの命令破棄の処理を示す図である。 実施例1に係るプロセッサのパイプライン処理のブロック図である。 マルチスレッドのブロック図である。 従来のプロセッサのパイプライン処理においてスレッド切替がある場合のスレッドの命令破棄の処理を示す図である。
以下、本発明の実施の形態のプロセッサ及びパイプライン処理方法について、図面を参照しながら詳細に説明する。
パイプライン処理は、複数の命令を並行して処理する。以下の実施例では、複数のスレッドに属する命令を処理するマルチスレッドについて説明するが、本発明は、マルタスレッド以外にも適用可能である。
(実施例1)
図1は、本発明の実施例1に係るプロセッサの構成図である。実施例1に係るプロセッサは、複数のスレッドを処理し、分岐命令を含み前記スレッドのスレッド番号に対応した命令を実行して並行に処理するパイプライン処理を行いプロセッサであって、パイプライン処理は、命令フェッチ(F)1、デコード(D)/演算実行(E)2、結果格納(W)3からなり、例えば、命令Aのフェッチが終わってデコードを開始すると、同時に命令Bのフェッチを開始する処理である。
命令フェッチ(F)1は、スレッド(TH)11、プログラムカウンタ(PC)12、命令メモリ13、分岐制御部14を有する。スレッド(TH)11は、フェッチされた命令のスレッド番号である。プログラムカウンタ(PC)12は、現在処理中の命令が格納されている命令メモリ13上のアドレスである。
命令メモリ13は、プログラムカウンタ(PC)12のアドレスに対応して各スレッド(例えば、TH1)に属する一連の複数の命令(C1〜C3)を格納している。
分岐制御部14は、スレッド(TH)11から受けるスレッド番号と分岐制御部14から受けるスレッド番号とを比較し、比較信号を命令デコーダ21に出力する。なお、分岐制御部14の特徴的な処理については、後述する。
デコード(D)/演算実行(E)2は、本発明における演算実行部に相当し、命令デコーダ21、レジスタ読み出し部22、演算制御部23、分岐処理部24、加算部25、データ読み出し部26を備えている。
命令デコーダ21は、レジスタ15に格納された命令をデコードして、デコード結果を演算制御部23に出力する。レジスタ読み出し部22は、図示されないフラグレジスタに格納された0又は1のフラグを読み出して演算制御部23を介して分岐処理部24に出力する。
演算制御部23は、命令デコーダ21でデコードされた命令を実行し、実行結果をレジスタ書き込み部31と分岐処理部24に出力する。
分岐処理部24は、命令デコーダ21でデコードされた命令が分岐命令であり、且つフラグが1の場合には、takenとして分岐処理を行い、フラグが0の場合には、not takenとして分岐処理を行わない。
分岐制御部14は、分岐処理部24で分岐処理を行う場合に、命令フェッチ(F)1でフェッチされた命令のスレッド番号TH_Fと、デコード(D)/演算実行(E)2で実行された命令のスレッド番号TH_Eとが同じかどうかを判定することにより後続命令を破棄するかを決定する。前者のスレッド番号は、スレッド(TH)11に格納されるスレッド番号である。後者のスレッド番号は、分岐処理部24で実行された分岐命令のスレッド番号である。
具体的には、分岐制御部14は、分岐命令を実行したスレッドのスレッド番号とパイプライン処理部内にある分岐命令の後続命令のスレッド番号とに応じて後続命令を破棄するかどうかを判定する。
分岐制御部14は、分岐命令を実行したスレッドのスレッド番号とパイプライン処理部内にある分岐命令の後続命令のスレッド番号とが異なる場合には、後続命令を破棄せずに後続命令の実行を継続する。
分岐制御部14は、分岐命令を実行したスレッドのスレッド番号とパイプライン処理部内にある分岐命令の後続命令のスレッド番号とが同じである場合には、後続命令を破棄する。
加算部25は、レジスタ15からのアドレスに、分岐処理部24からのアドレスを変更して、変更結果をプログラムカウンタ(PC)12に出力する。
データ読み出し部26は、命令デコーダ21でデコードされた命令のデータを読み出してレジスタ書き込み部31に出力する。
結果格納(W)3は、データをレジスタに書き込むレジスタ書き込み部31を有する。
次に、このように構成された実施例1のプロセッサ及びパイプライン処理方法の動作を、図面を参照しながら詳細に説明する。なお、図2及び図4におけるEXは、本発明における演算実行部に相当する。
まず、図2及び図4を参照しながら、プロセッサのパイプライン処理においてスレッド切替がある場合のスレッドの命令破棄の処理を説明する。
まず、スレッドTH2の分岐命令(JMP)がフェッチFEされ、デコードDEされ、実行EXされる。次に、スレッドTH2の分岐命令がデコードDEされるタイミングで、スレッドTH1の命令C2がフェッチされ、デコードDEされ、実行EXされる。
スレッドTH2の分岐命令(JMP)が実行EXされているとき、分岐処理部24によりフラグが1のときにはtakenとなり、分岐命令を実行する。このとき、分岐制御部14は、分岐命令を実行したスレッドのスレッド番号TH2とパイプライン処理部内にある分岐命令の後続命令C2のスレッド番号TH1とが異なる場合には、各ステージのValid信号を有効にする。これにより、後続命令C2を破棄せずに後続命令C2の実行を継続することができる。
従って、異なるスレッドの命令をパイプラインフラッシュしてしまい、もう一度フェッチからやり直すというタイムロスをなくすことができる。これにより、タイムロスの発生を抑制し、処理速度を向上させることができる。図2及び図4に示される5段パイプラインの構成は、図1で説明された3段パイプラインと異なるが、本発明はパイプラインの段数に限らず適用できる。
次に、スレッドTH2の分岐命令が実行EXされるタイミングで、分岐制御部14は、分岐命令を実行したスレッドのスレッド番号TH2とパイプライン処理部内にある分岐命令の後続命令Ciのスレッド番号TH2とが同じである場合には、各ステージのValid信号を無効にする。これにより、後続命令Ciを破棄することができる。
次に、図3を参照しながら、プロセッサのスレッド切替がない場合のスレッドの命令破棄の処理を説明する。
まず、スレッドTH1の分岐命令(JMP)がフェッチFEされ、デコードDEされ、実行EXされる。次に、スレッドTH1の分岐命令がデコードDEされるタイミングで、スレッドTH1の命令C2がフェッチFEされ、デコードDEされ、実行EXされる。
スレッドTH1の分岐命令(JMP)が実行EXされているとき、分岐処理部24によりフラグが1のときにはtakenとなり、分岐命令を実行する。このとき、分岐制御部14は、分岐命令を実行したスレッドのスレッド番号TH1とパイプライン処理部内にある分岐命令の後続命令C2のスレッド番号TH1とが同じであるので、後続命令C2を破棄する。
次に、分岐制御部14は、分岐命令を実行したスレッドのスレッド番号TH1とパイプライン処理部内にある分岐命令の後続命令C3のスレッド番号TH1とが同じであるので、後続命令C3を破棄する。
なお、プログラムカウンタPCのアドレスを用いて、後続命令の破棄を行うかどうかを判断してもよい。
1 命令フェッチ(F)
2 デコード(D)/演算実行(E)
3 結果格納(W)
11 スレッド(TH)
12 プログラムカウンタ(PC)
13 命令メモリ
14 分岐制御部
15 レジスタ
21 命令デコーダ
22 レジスタ読み出し部
23 演算制御部
24 分岐処理部
25 加算部
26 データ読み出し部
31 レジスタ書き込み部

Claims (6)

  1. 複数のスレッドを処理し、分岐命令を含み前記スレッドのスレッド番号に対応した命令を実行して並行に処理するパイプライン処理を行うプロセッサであって、
    実行権を得た前記スレッドの前記命令をフェッチするフェッチ部と前記フェッチ部でフェッチされた命令を実行する演算実行部とを備えたパイプライン処理部と、
    前記分岐命令を実行したスレッドのスレッド番号と前記パイプライン処理部内にある前記分岐命令の後続命令のスレッド番号とに応じて前記後続命令を破棄するかどうかを判定する分岐制御部と、
    を備えることを特徴とするプロセッサ。
  2. 前記分岐制御部は、前記分岐命令を実行したスレッドのスレッド番号と前記パイプライン処理部内にある前記分岐命令の後続命令のスレッド番号とが異なる場合には、前記後続命令を破棄せずに前記後続命令の実行を継続することを特徴とする請求項1記載のプロセッサ。
  3. 前記分岐制御部は、前記分岐命令を実行したスレッドのスレッド番号と前記パイプライン処理部内にある前記分岐命令の後続命令のスレッド番号とが同じである場合には、前記後続命令を破棄することを特徴とする請求項1又は請求項2記載のプロセッサ。
  4. 複数のスレッドを処理し、分岐命令を含み前記スレッドのスレッド番号に対応した命令を実行して並行に処理するパイプライン処理方法であって、
    実行権を得た前記スレッドの前記命令をフェッチし、フェッチされた命令を実行するパイプライン処理を行うステップと、
    前記分岐命令を実行したスレッドのスレッド番号と前記パイプライン処理内にある前記分岐命令の後続命令のスレッド番号とに応じて前記後続命令を破棄するかどうかを判定する分岐制御ステップと、
    を備えることを特徴とするパイプライン処理方法。
  5. 前記分岐制御ステップは、前記分岐命令を実行したスレッドのスレッド番号と前記パイプライン処理内にある前記分岐命令の後続命令のスレッド番号とが異なる場合には、前記後続命令を破棄せずに前記後続命令の実行を継続することを特徴とする請求項4記載のパイプライン処理方法。
  6. 前記分岐制御ステップは、前記分岐命令を実行したスレッドのスレッド番号と前記パイプライン処理内にある前記分岐命令の後続命令のスレッド番号とが同じである場合には、前記後続命令を破棄することを特徴とする請求項4又は請求項5記載のパイプライン処理方法。
JP2017229010A 2017-11-29 2017-11-29 プロセッサ及びパイプライン処理方法 Pending JP2019101543A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017229010A JP2019101543A (ja) 2017-11-29 2017-11-29 プロセッサ及びパイプライン処理方法
US16/201,296 US10853081B2 (en) 2017-11-29 2018-11-27 Processor and pipelining method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017229010A JP2019101543A (ja) 2017-11-29 2017-11-29 プロセッサ及びパイプライン処理方法

Publications (1)

Publication Number Publication Date
JP2019101543A true JP2019101543A (ja) 2019-06-24

Family

ID=66632343

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017229010A Pending JP2019101543A (ja) 2017-11-29 2017-11-29 プロセッサ及びパイプライン処理方法

Country Status (2)

Country Link
US (1) US10853081B2 (ja)
JP (1) JP2019101543A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11868825B2 (en) 2019-09-12 2024-01-09 Sanken Electric Co., Ltd. Processor and event processing method

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114253821B (zh) * 2022-03-01 2022-05-27 西安芯瞳半导体技术有限公司 一种分析gpu性能的方法、装置及计算机存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04373023A (ja) 1991-06-21 1992-12-25 Fujitsu Ltd データ処理装置
JP3641327B2 (ja) 1996-10-18 2005-04-20 株式会社ルネサステクノロジ データプロセッサ及びデータ処理システム
US6256728B1 (en) * 1997-11-17 2001-07-03 Advanced Micro Devices, Inc. Processor configured to selectively cancel instructions from its pipeline responsive to a predicted-taken short forward branch instruction
US6694425B1 (en) * 2000-05-04 2004-02-17 International Business Machines Corporation Selective flush of shared and other pipeline stages in a multithread processor
US7013383B2 (en) * 2003-06-24 2006-03-14 Via-Cyrix, Inc. Apparatus and method for managing a processor pipeline in response to exceptions
US7254700B2 (en) * 2005-02-11 2007-08-07 International Business Machines Corporation Fencing off instruction buffer until re-circulation of rejected preceding and branch instructions to avoid mispredict flush
JP2008299729A (ja) 2007-06-01 2008-12-11 Digital Electronics Corp プロセッサ
US9047197B2 (en) * 2007-10-23 2015-06-02 Oracle America, Inc. Non-coherent store instruction for fast inter-strand data communication for processors with write-through L1 caches
US9489207B2 (en) * 2009-04-14 2016-11-08 International Business Machines Corporation Processor and method for partially flushing a dispatched instruction group including a mispredicted branch
US9952869B2 (en) 2009-11-04 2018-04-24 Ceva D.S.P. Ltd. System and method for using a branch mis-prediction buffer
US8862861B2 (en) * 2011-05-13 2014-10-14 Oracle International Corporation Suppressing branch prediction information update by branch instructions in incorrect speculative execution path
US10255074B2 (en) * 2015-09-11 2019-04-09 Qualcomm Incorporated Selective flushing of instructions in an instruction pipeline in a processor back to an execution-resolved target address, in response to a precise interrupt
US20180095766A1 (en) * 2016-10-05 2018-04-05 Centipede Semi Ltd. Flushing in a parallelized processor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11868825B2 (en) 2019-09-12 2024-01-09 Sanken Electric Co., Ltd. Processor and event processing method

Also Published As

Publication number Publication date
US20190163494A1 (en) 2019-05-30
US10853081B2 (en) 2020-12-01

Similar Documents

Publication Publication Date Title
JP5889986B2 (ja) 実行された命令の結果を選択的にコミットするためのシステムおよび方法
US6898699B2 (en) Return address stack including speculative return address buffer with back pointers
US9201654B2 (en) Processor and data processing method incorporating an instruction pipeline with conditional branch direction prediction for fast access to branch target instructions
US7444501B2 (en) Methods and apparatus for recognizing a subroutine call
US9135015B1 (en) Run-time code parallelization with monitoring of repetitive instruction sequences during branch mis-prediction
JP5815596B2 (ja) プロシージャリターンシーケンスを加速するための方法およびシステム
US7620804B2 (en) Central processing unit architecture with multiple pipelines which decodes but does not execute both branch paths
JP2019101543A (ja) プロセッサ及びパイプライン処理方法
US20050149931A1 (en) Multithread processor architecture for triggered thread switching without any cycle time loss, and without any switching program command
US20160092221A1 (en) Dependency-prediction of instructions
JP2008299729A (ja) プロセッサ
JP5696210B2 (ja) プロセッサ及びその命令処理方法
JP4728877B2 (ja) マイクロプロセッサおよびパイプライン制御方法
US11586444B2 (en) Processor and pipeline processing method for processing multiple threads including wait instruction processing
US20220308888A1 (en) Method for reducing lost cycles after branch misprediction in a multi-thread microprocessor
US20220308887A1 (en) Mitigation of branch misprediction penalty in a hardware multi-thread microprocessor
JP2944335B2 (ja) 情報処理装置
JPH05108348A (ja) 並列演算処理装置
JP2012043166A (ja) 演算処理装置
JPH04317130A (ja) 分岐命令処理装置
JPH05233284A (ja) 命令先取り方式
JP2001142703A (ja) マイクロコンピュータおよび条件分岐命令フェッチ制御方法
JP2014059665A (ja) マイクロコンピュータ及びマイクロコンピュータにおける命令処理方法