JPWO2022081221A5 - - Google Patents
Download PDFInfo
- Publication number
- JPWO2022081221A5 JPWO2022081221A5 JP2023521849A JP2023521849A JPWO2022081221A5 JP WO2022081221 A5 JPWO2022081221 A5 JP WO2022081221A5 JP 2023521849 A JP2023521849 A JP 2023521849A JP 2023521849 A JP2023521849 A JP 2023521849A JP WO2022081221 A5 JPWO2022081221 A5 JP WO2022081221A5
- Authority
- JP
- Japan
- Prior art keywords
- prediction
- conditional control
- instruction
- speculative
- control instructions
- 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
Links
- 238000012545 processing Methods 0.000 claims 25
- 238000000034 method Methods 0.000 claims 14
- 230000001419 dependent effect Effects 0.000 claims 5
- 238000012958 reprocessing Methods 0.000 claims 1
Claims (26)
1つ以上の命令パイプラインを備える命令処理回路と、
第1投機的予測履歴インジケータと、を含み、
前記命令処理回路は、
前記第1投機的予測履歴インジケータに基づいて、前記1つ以上の命令パイプラインのうちの第1命令パイプラインにおける命令ストリーム内の第1条件付き制御命令において、条件を投機的に予測し、
前記命令ストリーム内の第1条件付き制御命令に続く、第1CD命令領域における1つ以上の第1制御依存(CD)条件付き制御命令の条件を投機的に予測し、
前記命令ストリーム内の前記第1CD命令領域に続く、CI命令領域における1つ以上の第1制御独立(CI)条件付き制御命令の条件を投機的に予測し、
前記CI命令領域における前記1つ以上の第1CI条件付き制御命令のそれぞれの投機的予測に基づいて、前記第1投機的予測履歴インジケータの1つ以上の第1CI予測エントリを更新し、
前記第1条件付き制御命令の前記条件を解決するように、前記第1条件付き制御命令を実行し、かつ、
前記第1条件付き制御命令の前記投機的予測が、前記第1条件付き制御命令の実行における前記解決された条件に一致しないことに応答して、
前記第1投機的予測履歴インジケータの前記1つ以上の第1CI予測エントリを保管し、
前記第1条件付き制御命令の前記解決された条件に基づいて、第2CD命令領域における1つ以上の第2CD条件付き制御命令をフェッチし、
前記第2CD命令領域における前記1つ以上の第2CD条件付き制御命令の条件を投機的に予測し、かつ、
前記第1投機的予測履歴インジケータ内の前記保管された1つ以上の第1CI予測エントリを回復する、
ように構成されている、
プロセッサ。 1. A processor comprising:
an instruction processing circuit having one or more instruction pipelines;
a first speculative prediction history indicator;
The instruction processing circuit includes:
speculatively predicting a condition at a first conditional control instruction in an instruction stream in a first instruction pipeline of the one or more instruction pipelines based on the first speculative prediction history indicator;
speculatively predicting conditions of one or more first control-dependent (CD) conditional control instructions in a first CD instruction region that follow a first conditional control instruction in the instruction stream;
speculatively predicting conditions of one or more first control independent (CI) conditional control instructions in a CI instruction region following the first CD instruction region in the instruction stream;
updating one or more first CI prediction entries of the first speculative prediction history indicator based on a speculative prediction of each of the one or more first CI conditional control instructions in the CI instruction domain;
executing the first conditional control instruction to resolve the condition of the first conditional control instruction; and
in response to the speculative prediction of the first conditional control instruction not meeting the resolved condition in execution of the first conditional control instruction,
storing the one or more first CI prediction entries of the first speculative prediction history indicator;
fetching one or more second CD conditional control instructions in a second CD instruction domain based on the resolved condition of the first conditional control instruction;
speculatively predicting conditions of the one or more second CD conditional control instructions in the second CD instruction domain; and
recovering the one or more stored first CI prediction entries in the first speculative prediction history indicator;
It is configured as follows:
Processor.
メモリから前記1つ以上の命令パイプラインのうち前記第1命令パイプラインへと複数の命令をフェッチし、
前記第1条件付き制御命令の前記条件の前記投機的予測に基づいて、前記第1投機的予測履歴インジケータ内の第1予測エントリを更新し、
前記第1条件付き制御命令の前記投機的予測に基づいて、前記第1条件付き制御命令の前記第1CD命令領域における前記複数の命令のうち前記1つ以上の第1CD条件付き制御命令をフェッチし、
前記第1CD命令領域における前記1つ以上の第1CD条件付き制御命令のそれぞれの投機的予測に基づいて、前記第1投機的予測履歴インジケータの1つ以上のCD予測エントリを更新し、
前記第1条件付き制御命令の前記CI命令領域における1つ以上のCI命令をフェッチし、かつ、
前記第1条件付き制御命令の前記投機的予測が、前記第1条件付き制御命令の実行において前記第1条件付き制御命令の前記解決された条件に一致しないことに応答して、
前記第1条件付き制御命令の前記解決された条件に基づいて、前記第1投機的予測履歴インジケータ内の、前記第1予測エントリを更新し、
前記第1投機的予測履歴インジケータの前記1つ以上のCD予測エントリを除去し、
前記第2CD命令領域における1つ以上の第2CD条件付き制御命令の条件を投機的に予測し、かつ、
前記第2CD命令領域における前記1つ以上の第2CD条件付き制御命令の前記それぞれの投機的予測に基づいて、前記第1投機的予測履歴インジケータの前記1つ以上のCD予測エントリを更新する、
ように構成されている、請求項1に記載のプロセッサ。 The instruction processing circuit further comprises:
fetching a plurality of instructions from memory into the first instruction pipeline of the one or more instruction pipelines;
updating a first prediction entry in the first speculative prediction history indicator based on the speculative prediction of the condition of the first conditional control instruction;
fetching the one or more first CD conditional control instructions of the plurality of instructions in the first CD instruction domain of the first conditional control instruction based on the speculative prediction of the first conditional control instruction;
updating one or more CD prediction entries of the first speculative prediction history indicator based on a speculative prediction of each of the one or more first CD conditional control instructions in the first CD instruction domain;
fetching one or more CI instructions in the CI instruction field of the first conditional control instruction; and
in response to the speculative prediction of the first conditional control instruction not being met at the resolved condition of the first conditional control instruction upon execution of the first conditional control instruction,
updating the first prediction entry in the first speculative prediction history indicator based on the resolved condition of the first conditional control instruction;
removing the one or more CD prediction entries of the first speculative prediction history indicator;
speculatively predicting conditions of one or more second CD conditional control instructions in the second CD instruction domain; and
updating the one or more CD prediction entries of the first speculative prediction history indicator based on the respective speculative predictions of the one or more second CD conditional control instructions in the second CD instruction domain.
The processor of claim 1 configured to:
前記命令処理回路は、さらに、
前記第1投機的予測履歴インジケータの前記1つ以上の第1CI予測エントリが回復されるまで、次の命令を前記第1命令パイプラインへとフェッチすることを引き延ばす、
請求項1に記載のプロセッサ。 in response to a speculative prediction of the first conditional control instruction not meeting the resolved condition upon execution of the first conditional control instruction,
The instruction processing circuit further comprises:
deferring fetching a next instruction into the first instruction pipeline until the one or more first CI prediction entries of the first speculative prediction history indicator are restored.
The processor of claim 1 .
前記第1CD命令領域における前記1つ以上の第1CD条件付き制御命令の前記それぞれの投機的予測に基づいて、前記第1投機的予測履歴インジケータの1つ以上のCD予測エントリを更新する、
ように構成されており、
前記命令処理回路は、
前記第2CD命令領域における前記1つ以上の第2CD条件付き制御命令の前記それぞれの投機的予測に基づいて、前記第1投機的予測履歴インジケータの前記1つ以上のCD予測エントリが更新された後で、前記第1投機的予測履歴インジケータの前記保管された1つ以上の第1CI予測エントリを回復する、
ように構成されている、
請求項1に記載のプロセッサ。 The instruction processing circuit further comprises:
updating one or more CD prediction entries of the first speculative prediction history indicator based on the respective speculative predictions of the one or more first CD conditional control instructions in the first CD instruction domain.
It is structured as follows:
The instruction processing circuit includes:
recovering the stored one or more first CI prediction entries of the first speculative prediction history indicator after the one or more CD prediction entries of the first speculative prediction history indicator have been updated based on the respective speculative predictions of the one or more second CD conditional control instructions in the second CD instruction domain.
It is configured as follows:
2. The processor of claim 1.
前記第1投機的予測履歴インジケータにおける前記1つ以上のCD予測エントリをシフトアウトするために、前記1つ以上のCD予測エントリの数だけ、前記第1投機的予測履歴インジケータにおける前記1つ以上のCD予測エントリをシフトするように構成されている、ことによって、configured to shift the one or more CD prediction entries in the first speculative prediction history indicator by a number of the one or more CD prediction entries to shift out the one or more CD prediction entries in the first speculative prediction history indicator, whereby
前記第1投機的予測履歴インジケータの前記1つ以上のCD予測エントリを除去する、removing the one or more CD prediction entries of the first speculative prediction history indicator.
ように構成されている、請求項4に記載のプロセッサ。The processor of claim 4 configured to:
前記第1投機的予測履歴インジケータに保管された前記1つ以上の第1CI予測エントリを回復する、recovering the one or more first CI prediction entries stored in the first speculative prediction history indicator;
ように構成されている、請求項1に記載のプロセッサ。The processor of claim 1 configured to:
前記第1投機的予測履歴インジケータに基づいて、1つ以上のより若いCI条件付き制御命令の条件を投機的に予測し、かつ、
前記第1投機的予測履歴インジケータに基づいて、前記1つ以上のCI条件付き制御命令の前記それぞれの投機的予測に基づいて、前記第1投機的予測履歴インジケータの前記1つ以上の第1CI予測エントリを更新する、
ように構成されている、
請求項1に記載のプロセッサ。 In response to the retrieval of the one or more saved first CI prediction entries in the first speculative prediction history indicator, the instruction processing circuitry further comprises:
speculatively predicting a condition of one or more younger CI conditional control instructions based on the first speculative prediction history indicator; and
updating the one or more first CI prediction entries of the first speculative prediction history indicator based on the respective speculative predictions of the one or more CI-conditional control instructions based on the first speculative prediction history indicator.
It is configured as follows:
2. The processor of claim 1.
前記第1投機的予測履歴インジケータに基づいて、前記回復された1つ以上の第1CI予測エントリを用いて、前記1つ以上の第1CI条件付き制御命令を処理する、
ように構成されている、
請求項1に記載のプロセッサ。 In response to the retrieval of the one or more saved first CI prediction entries in the first speculative prediction history indicator, the instruction processing circuitry further comprises:
processing the one or more first CI conditional control instructions using the recovered one or more first CI prediction entries based on the first speculative prediction history indicator.
It is configured as follows:
2. The processor of claim 1.
ように構成されている、It is configured as follows:
請求項8に記載のプロセッサ。The processor of claim 8.
ように構成されている、
請求項8に記載のプロセッサ。 the instruction processing circuit processes the one or more first CI conditional control instructions, including the one or more CI data independent (DI) (CIDI) conditional control instructions that are data dependent on the one or more first CD conditional control instructions in the first CD instruction domain, based on the first speculative prediction history indicator having the recovered one or more first CI prediction entries.
It is configured as follows:
The processor of claim 8.
前記第1投機的予測履歴インジケータに基づいて、前記回復された1つ以上の第1CI予測エントリを用いて、前記1つ以上の第1CI条件付き制御命令を実行する、executing the one or more first CI conditional control instructions using the recovered one or more first CI prediction entries based on the first speculative prediction history indicator.
ように構成されている、It is configured as follows:
請求項1に記載のプロセッサ。The processor of claim 1 .
1つ以上のCIデータ依存(DD)(CIDD)条件付き制御命令を含む、前記1つ以上の第1CI条件付き制御命令を再フェッチする、refetching the one or more first CI conditional control instructions, the one or more first CI conditional control instructions including one or more CI data dependent (DD) (CIDD) conditional control instructions;
ように構成されている、It is configured as follows:
請求項1に記載のプロセッサ。The processor of claim 1 .
分岐リオーダバッファ(BRB)回路であり、
条件付き制御命令の識別子を保管するように構成された条件付き制御命令識別子予測エントリと、前記第1投機的予測履歴インジケータに基づいて生成された予測アドレスポインタと、条件付き制御命令について予測インジケータを保管するように構成された予測エントリと、を各々備える、複数の分岐エントリを備える、
BRB回路、を含み、
前記命令処理回路は、
前記BRB回路における前記複数の分岐エントリのうち第1分岐エントリに前記第1条件付き制御命令に対する第1条件付き制御命令識別子を保管し、
前記第1分岐エントリにおける前記予測アドレスポインタによってアドレス可能な予測テーブル回路における予測値に基づいて、前記命令ストリームにおける前記第1条件付き制御命令内の前記条件を投機的に予測し、
前記BRB回路における前記複数の分岐エントリのうち1つ以上の第2分岐エントリ内の前記予測エントリそれぞれにおいて1つ以上の第2条件付き制御命令識別子を保管し、前記1つ以上の第2条件付き制御命令は、前記第1CD命令領域におけるそれぞれの1つ以上の第1CD条件付き制御命令を識別し、
前記1つ以上の第1CD条件付き制御命令の前記投機的予測を、前記1つ以上の第2分岐エントリの前記予測エントリにおけるそれぞれの予測インジケータとして保管し、
前記BRB回路における前記複数の分岐エントリのうち1つ以上の第3分岐エントリ内の前記予測エントリにおいて1つ以上の第3条件付き制御命令識別子を保管し、前記1つ以上の第3条件付き制御命令識別子は、前記CI命令領域におけるそれぞれの1つ以上の第1CI条件付き制御命令を識別し、かつ、
前記1つ以上の第1CI条件付き制御命令の前記投機的予測を、前記1つ以上の第3分岐エントリの前記予測エントリにおけるそれぞれの予測インジケータとして保管する、
ように構成されている、
請求項1に記載のプロセッサ。 The processor further comprises:
A branch reorder buffer (BRB) circuit,
a conditional control instruction identifier prediction entry configured to store an identifier of a conditional control instruction; and a prediction entry configured to store a prediction indicator for the conditional control instruction, the prediction address pointer generated based on the first speculative prediction history indicator ;
BRB circuit,
The instruction processing circuit includes:
storing a first conditional control instruction identifier for the first conditional control instruction in a first branch entry of the plurality of branch entries in the BRB circuit;
speculatively predicting the condition in the first conditional control instruction in the instruction stream based on a prediction value in a prediction table circuit addressable by the prediction address pointer in the first branch entry;
storing one or more second conditional control instruction identifiers in each of the prediction entries in one or more second branch entries of the plurality of branch entries in the BRB circuit , the one or more second conditional control instructions identifying respective one or more first CD conditional control instructions in the first CD instruction field;
storing the speculative predictions of the one or more first CD conditional control instructions as respective prediction indicators in the prediction entries of the one or more second branch entries;
storing one or more third conditional control instruction identifiers in the prediction entry within one or more third branch entries of the plurality of branch entries in the BRB circuit , the one or more third conditional control instruction identifiers identifying respective one or more first CI conditional control instructions in the CI instruction domain; and
storing the speculative predictions of the one or more first CI conditional control instructions as respective prediction indicators in the prediction entries of the one or more third branch entries;
It is configured as follows:
2. The processor of claim 1.
前記1つ以上の第2分岐エントリ内の前記予測エントリにおける前記1つ以上の第2条件付き制御命令識別子を除去し、かつ、
前記BRB回路における前記複数の分岐エントリのうち1つ以上の第4分岐エントリ内の前記予測エントリにおける1つ以上の第4条件付き制御命令識別子を保管し、
前記1つ以上の第4条件付き制御命令識別子は、前記第2CD命令領域における前記それぞれの1つ以上の第2CD条件付き制御命令を識別する、
ように構成されている、
請求項13に記載のプロセッサ。 In response to the speculative prediction of the first conditional control instruction not matching the resolved condition upon execution of the first conditional control instruction, the instruction processing circuitry further comprises:
removing the one or more second conditional control instruction identifiers in the prediction entries in the one or more second branch entries; and
storing one or more fourth conditional control instruction identifiers in the prediction entry in one or more fourth branch entries of the plurality of branch entries in the BRB circuit;
the one or more fourth conditional control instruction identifiers identify the respective one or more second CD conditional control instructions in the second CD instruction field.
It is configured as follows:
The processor of claim 13 .
前記第1条件付き制御命令の前記投機的予測が、前記第1条件付き制御命令の実行において前記解決された条件に一致しないことに応答して、前記命令処理回路は、さらに、
前記BRB回路における前記複数の分岐エントリのうち各分岐エントリに対する前記インデックスリンクインジケータにおけるインデックスリンクを保管する、ように構成されており、
前記インデックスリンクは、前記第2CD命令領域における前記1つ以上の第2CD条件付き制御命令内の次のCD条件付き制御命令について前記BRB回路における前記複数の分岐エントリのうち次の分岐エントリに対して、前記第2CD命令領域における前記それぞれの1つ以上の第2CD条件付き制御命令を識別する、
請求項14に記載のプロセッサ。 each branch entry of the plurality of branch entries in the BRB circuit further comprising an index link indicator configured to store an index link to a next branch entry of the plurality of branch entries;
In response to the speculative prediction of the first conditional control instruction not matching the resolved condition upon execution of the first conditional control instruction, the instruction processing circuitry further comprises:
storing an index link in the index link indicator for each branch entry in the plurality of branch entries in the BRB circuit;
the index link identifies the respective one or more second CD conditional control instructions in the second CD instruction field to a next branch entry among the plurality of branch entries in the BRB circuit for a next CD conditional control instruction within the one or more second CD conditional control instructions in the second CD instruction field.
The processor of claim 14 .
前記CI命令領域における前記1つ以上の第1CI条件付き制御命令の条件を投機的に再予測し、かつ、
前記1つ以上の第1CI条件付き制御命令それぞれの投機的な再予測に基づいて、前記第1投機的予測履歴インジケータの前記1つ以上の第1CI予測エントリを更新する、
ように構成されている、
請求項1に記載のプロセッサ。 In response to restoring the one or more saved first CI prediction entries of the first speculative prediction history indicator, the instruction processing circuitry further comprises:
speculatively re -predicting conditions of the one or more first CI conditional control instructions in the CI instruction domain; and
updating the one or more first CI prediction entries of the first speculative prediction history indicator based on the speculative re- prediction of each of the one or more first CI conditional control instructions.
It is configured as follows:
The processor of claim 1 .
前記命令処理回路は、さらに、
前記1つ以上の第1CI条件付き制御命令の実行に応答して、第1非投機的予測履歴インジケータに基づいて、前記1つ以上の第1CI条件付き制御命令それぞれについて前記予測アドレスポインタを更新し、
前記1つ以上の第1CI条件付き制御命令の実行に基づいて、前記1つ以上の第1CI条件付き制御命令それぞれについて実際の解決された条件を生成し
前記1つ以上の第1CI条件付き制御命令それぞれについての前記更新された予測アドレスポインタでの前記予測テーブル回路における前記1つ以上の第1CI条件付き制御命令それぞれについての前記予測値を、前記1つ以上の第1CI条件付き制御命令それぞれについての前記実際の解決された条件と比較し、
前記1つ以上の第1CI条件付き制御命令それぞれについての前記予測値が、実行時に前記1つ以上の第1CI条件付き制御命令それぞれの前記実際の解決された条件に一致しないことに応答して、前記1つ以上の第1CI条件付き制御命令それぞれについての前記更新された予測アドレスポインタでの、前記予測テーブル回路における前記1つ以上の第1CI条件付き制御命令それぞれについての前記予測値を更新する、
ように構成されている、
請求項16に記載のプロセッサ。 the instruction processing circuitry is configured to speculatively predict the condition of each of the one or more first CI conditional control instructions based on a prediction value in a prediction table circuit at a prediction address pointer determined based on the first speculative prediction history indicator;
The instruction processing circuit further comprises:
updating the prediction address pointer for each of the one or more first CI conditional control instructions based on a first non-speculative prediction history indicator in response to execution of the one or more first CI conditional control instructions;
generating an actual resolved condition for each of the one or more first CI conditional control instructions based on the execution of the one or more first CI conditional control instructions;
comparing the predicted value for each of the one or more first CI conditional control instructions in the prediction table circuit at the updated prediction address pointer for each of the one or more first CI conditional control instructions to the actual resolved condition for each of the one or more first CI conditional control instructions;
updating the prediction value for each of the one or more first CI conditional control instructions in the prediction table circuit at the updated prediction address pointer for each of the one or more first CI conditional control instructions in response to the prediction value for each of the one or more first CI conditional control instructions not matching the actual resolved condition of each of the one or more first CI conditional control instructions upon execution.
It is configured as follows:
20. The processor of claim 16 .
前記第1条件付き制御命令の前記解決された条件に基づいて、前記第1条件付き制御命令の前記第2CD命令領域における前記1つ以上の第2CD条件付き制御命令をフェッチした後で、
前記CI命令領域における前記1つ以上の第1CI条件付き制御命令の条件を、投機的に再予測し、かつ、
前記1つ以上の第1CI条件付き制御命令それぞれの投機的な再予測に基づいて、前記第1投機的予測履歴インジケータの前記1つ以上の第1CI予測エントリについて第2の更新を実行する、
ように構成されている、
請求項16に記載のプロセッサ。 The instruction processing circuit further comprises:
after fetching the one or more second CD conditional control instructions in the second CD instruction field of the first conditional control instruction based on the resolved condition of the first conditional control instruction;
speculatively re-predicting conditions of the one or more first CI conditional control instructions in the CI instruction domain; and
performing a second update for the one or more first CI prediction entries of the first speculative prediction history indicator based on the speculative re- prediction of each of the one or more first CI conditional control instructions.
It is configured as follows:
20. The processor of claim 16 .
前記CI命令領域における前記1つ以上の第1CI条件付き制御命令の前記投機的に再予測された条件が、前記CI命令領域における前記1つ以上の第1CI条件付き制御命令の前記投機的に予測された条件と一致するかを判定し、かつ、
前記1つ以上の第1CI条件付き制御命令の前記投機的に再予測された条件が、前記CI命令領域における前記1つ以上の第1CI条件付き制御命令の前記投機的に予測された条件に一致しないことに応答して、
前記第2の更新がされた1つ以上の第1CI予測エントリを用いて、前記第1投機的予測履歴インジケータに基づいて、前記1つ以上の第1CI条件付き制御命令を再処理する、
ように構成されている、
請求項18に記載のプロセッサ。 The instruction processing circuit further comprises:
determining whether the speculatively re-predicted condition of the one or more first CI conditional control instructions in the CI instruction domain matches the speculatively predicted condition of the one or more first CI conditional control instructions in the CI instruction domain; and
in response to the speculatively re-predicted condition of the one or more first CI conditional control instructions not matching the speculatively predicted condition of the one or more first CI conditional control instructions in the CI instruction domain,
reprocessing the one or more first CI conditional control instructions based on the first speculative prediction history indicator using the second updated one or more first CI prediction entries.
It is configured as follows:
20. The processor of claim 18 .
前記1つ以上の第1CI条件付き制御命令に続く、複数の命令をフェッチし、
前記CI命令領域における前記1つ以上の第1CI条件付き制御命令の条件を投機的に再予測し、かつ、
前記1つ以上の第1CI条件付き制御命令それぞれの投機的な再予測に基づいて、前記第1投機的予測履歴インジケータの前記1つ以上の第1CI予測エントリを更新する、
ように構成されている、
請求項18に記載のプロセッサ。 The instruction processing circuit further comprises:
fetching a plurality of instructions following the one or more first CI conditional control instructions;
speculatively re-predicting conditions of the one or more first CI conditional control instructions in the CI instruction domain; and
updating the one or more first CI prediction entries of the first speculative prediction history indicator based on the speculative re- prediction of each of the one or more first CI conditional control instructions.
It is configured as follows:
20. The processor of claim 18 .
第1投機的予測履歴インジケータに基づいて、第1命令パイプラインにおける命令ストリーム内の第1条件付き制御命令において、条件を投機的に予測するステップと、
前記命令ストリーム内の前記第1条件付き制御命令に続く、第1CD命令領域における1つ以上の第1制御依存(CD)条件付き制御命令の条件を投機的に予測するステップと、
前記命令ストリーム内の前記第1CD命令領域に続く、CI命令領域における1つ以上の第1制御独立(CI)条件付き制御命令の条件を投機的に予測するステップと、
前記CI命令領域における前記1つ以上の第1CI条件付き制御命令のそれぞれの投機的予測に基づいて、前記第1投機的予測履歴インジケータの1つ以上の第1CI予測エントリを更新するステップと、
前記第1条件付き制御命令の前記条件を解決するように、前記第1条件付き制御命令を実行するステップと、
前記第1条件付き制御命令の前記投機的予測が、前記第1条件付き制御命令の実行における前記解決された条件に一致しないことに応答して、
前記第1投機的予測履歴インジケータの前記1つ以上の第1CI予測エントリを保管するステップ、
前記第1条件付き制御命令の前記解決された条件に基づいて、前記第1条件付き制御命令の第2CD命令領域における1つ以上の第2CD条件付き制御命令をフェッチするステップ、
前記第2CD命令領域における前記1つ以上の第2CD条件付き制御命令の条件を投機的に予測するステップ、および、
前記第1投機的予測履歴インジケータ内で、前記第1投機的予測履歴インジケータの前記保管された1つ以上の第1CI予測エントリを回復するステップ、
を含む、方法。 1. A method in a processor for recovering speculative history used to make one or more speculative predictions for a conditional control instruction, comprising:
speculatively predicting a condition at a first conditional control instruction in an instruction stream in a first instruction pipeline based on a first speculative prediction history indicator;
speculatively predicting conditions of one or more first control-dependent (CD) conditional control instructions in a first CD instruction region that follows the first conditional control instruction in the instruction stream;
speculatively predicting conditions of one or more first control independent (CI) conditional control instructions in a CI instruction region following the first CD instruction region in the instruction stream;
updating one or more first CI prediction entries of the first speculative prediction history indicator based on a speculative prediction of each of the one or more first CI conditional control instructions in the CI instruction domain;
executing the first conditional control instruction so as to resolve the condition of the first conditional control instruction;
in response to the speculative prediction of the first conditional control instruction not meeting the resolved condition in execution of the first conditional control instruction,
storing the one or more first CI prediction entries in the first speculative prediction history indicator;
fetching one or more second CD conditional control instructions in a second CD instruction field of the first conditional control instruction based on the resolved condition of the first conditional control instruction;
speculatively predicting conditions of the one or more second CD conditional control instructions in the second CD instruction domain; and
retrieving, within the first speculative prediction history indicator, the one or more saved first CI prediction entries of the first speculative prediction history indicator;
A method comprising:
前記第1CD命令領域における前記1つ以上の第1CD条件付き制御命令それぞれの前記投機的予測に基づいて、前記第1投機的予測履歴インジケータの1つ以上のCD予測エントリを更新するステップと、updating one or more CD prediction entries of the first speculative prediction history indicator based on the speculative prediction of each of the one or more first CD conditional control instructions in the first CD instruction domain;
前記第2CD命令領域における前記1つ以上の第2CD条件付き制御命令それぞれの前記投機的予測に基づいて、前記第1投機的予測履歴インジケータの前記1つ以上のCD予測エントリを更新した後で、前記第1投機的予測履歴インジケータの前記保管された1つ以上の第1CI予測エントリを回復するステップと、restoring the one or more saved first CI prediction entries of the first speculative prediction history indicator after updating the one or more CD prediction entries of the first speculative prediction history indicator based on the speculative prediction of each of the one or more second CD conditional control instructions in the second CD instruction domain;
を含む、請求項21に記載の方法。22. The method of claim 21 , comprising:
前記第1投機的予測履歴インジケータに基づいて、前記回復された1つ以上の第1CI予測エントリを用いて、前記1つ以上の第1CI条件付き制御命令を処理するステップ、processing the one or more first CI conditional control instructions using the recovered one or more first CI prediction entries based on the first speculative prediction history indicator;
を含む、請求項21に記載の方法。22. The method of claim 21 , comprising:
前記CI命令領域における前記1つ以上の第1CI条件付き制御命令の前記条件を投機的に再予測するステップと、speculatively re-predicting the conditions of the one or more first CI conditional control instructions in the CI instruction domain;
前記1つ以上の第1CI条件付き制御命令それぞれの投機的な再予測に基づいて、第1投機的予測履歴インジケータの前記1つ以上の第1CI予測エントリを更新するステップと、updating the one or more first CI prediction entries of a first speculative prediction history indicator based on a speculative re-prediction of each of the one or more first CI conditional control instructions;
を含む、請求項21に記載の方法。22. The method of claim 21 , comprising:
前記第1投機的予測履歴インジケータに基づいて決定された予測アドレスポインタでの予測テーブル回路における予測値に基づいて、前記CI命令領域における前記1つ以上の第1CI条件付き制御命令それぞれの前記条件を投機的に予測するステップ、を含み、speculatively predicting the condition of each of the one or more first CI conditional control instructions in the CI instruction domain based on a prediction value in a prediction table circuit at a prediction address pointer determined based on the first speculative prediction history indicator;
前記方法は、さらに、The method further comprises:
前記1つ以上の第1CI条件付き制御命令の実行に応答して、第1非投機的予測履歴インジケータに基づいて、前記1つ以上の第1CI条件付き制御命令それぞれについて前記予測アドレスポインタを更新するステップと、updating the prediction address pointer for each of the one or more first CI conditional control instructions based on a first non-speculative prediction history indicator in response to execution of the one or more first CI conditional control instructions;
前記1つ以上の第1CI条件付き制御命令の実行に基づいて、前記1つ以上の第1CI条件付き制御命令それぞれについて実際に解決された条件を生成するステップと、generating an actual resolved condition for each of the one or more first CI conditional control instructions based on execution of the one or more first CI conditional control instructions;
前記1つ以上の第1CI条件付き制御命令それぞれについて、前記更新された予測アドレスポインタでの前記更新された予測テーブル回路における前記1つ以上の第1CI条件付き制御命令それぞれについての前記予測値を、前記1つ以上の第1CI条件付き制御命令それぞれについての前記実際の解決された条件と比較するステップと、for each of the one or more first CI conditional control instructions, comparing the predicted value for each of the one or more first CI conditional control instructions in the updated prediction table circuit at the updated prediction address pointer to the actual resolved condition for each of the one or more first CI conditional control instructions;
前記1つ以上の第1CI条件付き制御命令のそれぞれについての前記予測値が、実行時に前記1つ以上の第1CI条件付き制御命令それぞれの前記実際の解決された条件に一致しないことに応答して、前記1つ以上の第1CI条件付き制御命令それぞれについての前記更新された予測アドレスポインタでの、前記予測テーブル回路における前記1つ以上の第1CI条件付き制御命令それぞれについての前記予測値を更新するステップと、updating the prediction value for each of the one or more first CI conditional control instructions in the prediction table circuit at the updated prediction address pointer for each of the one or more first CI conditional control instructions in response to the prediction value for each of the one or more first CI conditional control instructions not matching the actual resolved condition of each of the one or more first CI conditional control instructions at execution time;
を含む、請求項24に記載の方法。25. The method of claim 24, comprising:
前記CI命令領域における前記1つ以上の第1CI条件付き制御命令の条件を、投機的に再予測するステップと、speculatively re-predicting conditions of the one or more first CI conditional control instructions in the CI instruction domain;
前記1つ以上の第1CI条件付き制御命令それぞれの投機的な再予測に基づいて、前記第1投機的予測履歴インジケータの前記1つ以上の第1CI予測エントリを更新するステップと、updating the one or more first CI prediction entries of the first speculative prediction history indicator based on a speculative re-prediction of each of the one or more first CI conditional control instructions;
を含む、請求項24に記載の方法。25. The method of claim 24, comprising:
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/068,253 US11698789B2 (en) | 2020-10-12 | 2020-10-12 | Restoring speculative history used for making speculative predictions for instructions processed in a processor employing control independence techniques |
US17/068,253 | 2020-10-12 | ||
PCT/US2021/041347 WO2022081221A1 (en) | 2020-10-12 | 2021-07-13 | Restoring speculative history used for making speculative predictions for instructions processed in a processor employing control independence techniques |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2023545134A JP2023545134A (en) | 2023-10-26 |
JPWO2022081221A5 true JPWO2022081221A5 (en) | 2024-06-25 |
Family
ID=77265206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023521849A Pending JP2023545134A (en) | 2020-10-12 | 2021-07-13 | Speculative history recovery used to make speculative predictions about instructions processed within a processor employing control-independent techniques |
Country Status (6)
Country | Link |
---|---|
US (1) | US11698789B2 (en) |
EP (1) | EP4226241A1 (en) |
JP (1) | JP2023545134A (en) |
KR (1) | KR20230084140A (en) |
CN (1) | CN116324720A (en) |
WO (1) | WO2022081221A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11768688B1 (en) * | 2022-06-02 | 2023-09-26 | Microsoft Technology Licensing, Llc | Methods and circuitry for efficient management of local branch history registers |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5163140A (en) | 1990-02-26 | 1992-11-10 | Nexgen Microsystems | Two-level branch prediction cache |
KR100310581B1 (en) * | 1993-05-14 | 2001-12-17 | 피터 엔. 데트킨 | Inference recording mechanism of branch target buffer |
US5454117A (en) | 1993-08-25 | 1995-09-26 | Nexgen, Inc. | Configurable branch prediction for a processor performing speculative execution |
US5864697A (en) * | 1996-06-28 | 1999-01-26 | Texas Instruments Incorporated | Microprocessor using combined actual and speculative branch history prediction |
US6502188B1 (en) * | 1999-11-16 | 2002-12-31 | Advanced Micro Devices, Inc. | Dynamic classification of conditional branches in global history branch prediction |
GB2393274B (en) | 2002-09-20 | 2006-03-15 | Advanced Risc Mach Ltd | Data processing system having an external instruction set and an internal instruction set |
US7363477B2 (en) | 2003-12-03 | 2008-04-22 | Intel Corporation | Method and apparatus to reduce misprediction penalty by exploiting exact convergence |
US20080209190A1 (en) | 2007-02-28 | 2008-08-28 | Advanced Micro Devices, Inc. | Parallel prediction of multiple branches |
KR101685247B1 (en) | 2010-09-17 | 2016-12-09 | 소프트 머신즈, 인크. | Single cycle multi-branch prediction including shadow cache for early far branch prediction |
US9858081B2 (en) * | 2013-08-12 | 2018-01-02 | International Business Machines Corporation | Global branch prediction using branch and fetch group history |
US11061683B2 (en) | 2019-06-13 | 2021-07-13 | Microsoft Technology Licensing, Llc | Limiting replay of load-based control independent (CI) instructions in speculative misprediction recovery in a processor |
-
2020
- 2020-10-12 US US17/068,253 patent/US11698789B2/en active Active
-
2021
- 2021-07-13 WO PCT/US2021/041347 patent/WO2022081221A1/en active Application Filing
- 2021-07-13 JP JP2023521849A patent/JP2023545134A/en active Pending
- 2021-07-13 KR KR1020237010307A patent/KR20230084140A/en active Search and Examination
- 2021-07-13 CN CN202180069681.5A patent/CN116324720A/en active Pending
- 2021-07-13 EP EP21752313.3A patent/EP4226241A1/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5606682A (en) | Data processor with branch target address cache and subroutine return address cache and method of operation | |
KR100310581B1 (en) | Inference recording mechanism of branch target buffer | |
US5530825A (en) | Data processor with branch target address cache and method of operation | |
US5625837A (en) | Processor architecture having out-of-order execution, speculative branching, and giving priority to instructions which affect a condition code | |
EP2673703B1 (en) | Controlling the execution of adjacent instructions that are dependent upon a same data condition | |
US5276882A (en) | Subroutine return through branch history table | |
US5987595A (en) | Method and apparatus for predicting when load instructions can be executed out-of order | |
JP7160956B2 (en) | Selective execution of advance branch prediction based on branch instruction type | |
JPH0820949B2 (en) | Information processing device | |
JPH0557617B2 (en) | ||
JPH0334024A (en) | Method of branch prediction and instrument for the same | |
JP2000222205A (en) | Method and device for reducing delay of set associative cache by set prediction | |
TW201719389A (en) | Handling exceptional conditions for vector arithmetic instruction | |
US10423420B2 (en) | Stream based branch prediction index accelerator for multiple stream exits | |
US20190369999A1 (en) | Storing incidental branch predictions to reduce latency of misprediction recovery | |
US5842008A (en) | Method and apparatus for implementing a branch target buffer cache with multiple BTB banks | |
JP2006520964A (en) | Method and apparatus for branch prediction based on branch target | |
US11301253B2 (en) | Branch prediction structure indexed based on return address popped from a call-return stack | |
KR100276138B1 (en) | Branch history table with branch pattern field | |
JPH1040104A (en) | Device and method for predicting result of branch instruction | |
KR20210058812A (en) | Apparatus and method of prediction of source operand values, and optimization processing of instructions | |
US8521999B2 (en) | Executing touchBHT instruction to pre-fetch information to prediction mechanism for branch with taken history | |
US7600102B2 (en) | Condition bits for controlling branch processing | |
JPWO2022081221A5 (en) | ||
US10430195B2 (en) | Stream based branch prediction index accelerator with power prediction |