JP5611972B2 - デジタルプロセッサにおいてジャンプ動作を実施するための方法および装置 - Google Patents
デジタルプロセッサにおいてジャンプ動作を実施するための方法および装置 Download PDFInfo
- Publication number
- JP5611972B2 JP5611972B2 JP2011539686A JP2011539686A JP5611972B2 JP 5611972 B2 JP5611972 B2 JP 5611972B2 JP 2011539686 A JP2011539686 A JP 2011539686A JP 2011539686 A JP2011539686 A JP 2011539686A JP 5611972 B2 JP5611972 B2 JP 5611972B2
- Authority
- JP
- Japan
- Prior art keywords
- target address
- jump instruction
- jdi
- memory
- jump
- 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
Links
- 238000000034 method Methods 0.000 title claims description 73
- 230000015654 memory Effects 0.000 claims description 270
- 230000004044 response Effects 0.000 claims description 20
- 230000009191 jumping Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 12
- 239000003550 marker Substances 0.000 description 9
- 238000012545 processing Methods 0.000 description 6
- 101100490563 Caenorhabditis elegans adr-1 gene Proteins 0.000 description 5
- 101100388220 Caenorhabditis elegans adr-2 gene Proteins 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
- G06F9/3806—Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
本願は、同時係属の米国特許出願第12/328,484号(2008年12月4日出願)に基づく優先権および利益を主張する。該出願の全体が参照により本明細書に引用される。
本発明は、デジタルプロセッサでのジャンプ動作の実行に関し、より具体的には、新規のジャンプ二重間接命令およびジャンプ二重間接命令を実装するための装置に関する。
本明細書は、例えば、以下の項目も提供する。
(項目1)
パイプラインデジタルプロセッサでジャンプ動作を実施するための方法であって、
該プロセッサによって実行されるジャンプ命令の目標アドレスをメモリテーブルに書き込むことと、
該プロセッサによって実行されている第1のジャンプ命令を検出することであって、該第1のジャンプ命令は、該メモリテーブルの中の第1の目標アドレスに対するポインタを参照する、ことと、
該プロセッサが、
該第1の目標アドレスにジャンプすることと、
該メモリテーブルの中の第2の目標アドレスを指すように該ポインタを修正することであって、該第2の目標アドレスは第2のジャンプ命令に対応する、ことと
を行うことによって、該第1のジャンプ命令を実行することと
を含む、方法。
(項目2)
前記第1のジャンプ命令を実行することは、
前記メモリテーブルから少なくとも1つの将来の目標アドレスをプリフェッチすることと、
該少なくとも1つの将来の目標アドレスをローカルメモリに書き込むことと
をさらに含む、項目1に記載の方法。
(項目3)
前記第2のジャンプ命令を検出することに応答して、前記ローカルメモリの中の前記第2の目標アドレスにアクセスすることをさらに含む、項目2に記載の方法。
(項目4)
前記ポインタを修正することは、該ポインタをポストインクリメントすることを含む、項目1に記載の方法。
(項目5)
前記第1のジャンプ命令を実行することは、前記メモリテーブルの中の前記第1の目標アドレスにアクセスすることをさらに含む、項目1に記載の方法。
(項目6)
一連の命令の実行前に、前記メモリテーブルに書き込まれる前記目標アドレスを事前計算することをさらに含む、項目1に記載の方法。
(項目7)
前記第2のジャンプ命令がコミットする時に、前記ローカルメモリから前記第2の目標アドレスを回収することをさらに含む、項目3に記載の方法。
(項目8)
前記少なくとも1つの将来の目標アドレスは、前記第1のジャンプ命令がコミットする時に、前記ローカルメモリに書き込まれる、項目3に記載の方法。
(項目9)
前記少なくとも1つの将来の目標アドレスをプリフェッチすることは、前記ローカルメモリが満杯ではない時に、2つの将来の目標アドレスをプリフェッチすることを含む、項目3に記載の方法。
(項目10)
前記デジタルプロセッサは、パイプラインを含み、前記方法は、誤予測条件を検出することに応答して、該パイプラインをクリアすることをさらに含む、項目3に記載の方法。
(項目11)
前記第1のジャンプ命令を検出することは、前記プロセッサの中の分岐予測器によって実施される、項目1に記載の方法。
(項目12)
前記目標アドレスをメモリテーブルに書き込むことは、ジャンプ命令の前記目標アドレスを、複数回実行される一連のジャンプ命令の開始時と、再度、該一連のジャンプ命令の終了時とに書き込むことを含む、項目1に記載の方法。
(項目13)
分岐予測器を有するパイプラインデジタルプロセッサでジャンプ動作を実施するための方法であって、
該プロセッサによって実行されるジャンプ命令の目標アドレスをメモリテーブルに書き込むことと、
該プロセッサの命令セットアーキテクチャにおいてジャンプ命令を提供することであって、該ジャンプ命令は、該メモリテーブルの中の目標アドレスに対するポインタを参照する、ことと、
該分岐予測器が第1のジャンプ命令を検出することに応答して、第1の目標アドレスにジャンプすることと、
該メモリテーブルの中の第2の目標アドレスを指すように該ポインタを修正することであって、該第2の目標アドレスは、第2のジャンプ命令に対応する、ことと
を含む、方法。
(項目14)
前記メモリテーブルから少なくとも1つの将来の目標アドレスをプリフェッチすることと、該少なくとも1つの将来の目標アドレスをローカルメモリに書き込むこととをさらに含む、項目13に記載の方法。
(項目15)
前記分岐予測器が前記第2のジャンプ命令を検出することに応答して、前記ローカルメモリの中の前記第2の目標アドレスにアクセスすることをさらに含む、項目14に記載の方法。
(項目16)
前記第2のジャンプ命令がコミットする時に、前記ローカルメモリから前記第2の目標アドレスを回収することをさらに含む、項目15に記載の方法。
(項目17)
前記少なくとも1つの将来の目標アドレスは、前記第1のジャンプ命令がコミットする時に、前記ローカルメモリに書き込まれる、項目15に記載の方法。
(項目18)
前記少なくとも1つの将来の目標アドレスをプリフェッチすることは、前記ローカルメモリが満杯ではない時に、2つの将来の目標アドレスをプリフェッチすることを含む、項目15に記載の方法。
(項目19)
前記デジタルプロセッサは、パイプラインを含み、前記方法は、誤予測条件を検出することに応答して、該パイプラインをクリアすることをさらに含む、項目15に記載の方法。
(項目20)
前記ポインタを修正することは、該ポインタをポストインクリメントすることを含む、項目13に記載の方法。
(項目21)
前記第1の目標アドレスにジャンプすることは、該第1の目標アドレスを前記プロセッサの命令フェッチステージに提供することを含む、項目13に記載の方法。
(項目22)
前記目標アドレスをメモリテーブルに書き込むことは、ジャンプ命令の前記目標アドレスを、複数回実行される一連のジャンプ命令の開始時と、再度、前記一連のジャンプ命令の終了時とに書き込むことを含む、項目13に記載の方法。
(項目23)
パイプラインデジタルプロセッサでジャンプ動作を実施するための装置であって、
実行されるジャンプ命令の目標アドレスを記憶するメモリテーブルと、
ローカルメモリと、
該メモリテーブルの中の目標アドレスに対するポインタを参照するジャンプ命令の実行を制御するためのジャンプ命令制御ユニットと
を備え、
該ジャンプ命令制御ユニットは、第1の目標アドレスにジャンプする第1のジャンプ命令に応答して、
該メモリテーブルの中の第2の目標アドレスを指すようにポインタを修正することと、
該メモリテーブルから少なくとも1つの将来の目標アドレスをプリフェッチすることと、
該少なくとも1つの将来の目標アドレスを該ローカルメモリに書き込むことと
を行う、装置。
(項目24)
前記ジャンプ命令制御ユニットは、前記第2のジャンプ命令を検出することに応答して、前記ローカルメモリの中の前記第2の目標アドレスにアクセスするように構成されている、項目23に記載の装置。
(項目25)
前記ジャンプ命令制御ユニットは、前記第2のジャンプ命令がコミットする時に、前記ローカルメモリから前記第2の目標アドレスを回収するようにさらに構成されている、項目24に記載の装置。
(項目26)
前記ジャンプ命令制御ユニットは、前記第1のジャンプ命令がコミットする時に、前記少なくとも1つの将来の目標アドレスを前記ローカルメモリに書き込むように構成されている、項目24に記載の装置。
(項目27)
前記ローカルメモリが満杯ではない時に、2つの目標アドレスをプリフェッチするように構成されている、項目24に記載の装置。
(項目28)
前記デジタルプロセッサは、パイプラインを含み、前記ジャンプ命令制御ユニットは、誤予測条件を検出することに応答して、該パイプラインをクリアするように構成されている、項目24に記載の装置。
(項目29)
パイプラインデジタルプロセッサでジャンプ動作を実施するための方法であって、
該プロセッサによって実行されるジャンプ命令の目標アドレスをメモリテーブルに書き込むことと、
該プロセッサの分岐予測器で第1のジャンプ命令を学習することであって、該第1のジャンプ命令は、該メモリテーブルの中の第1の目標アドレスに対するポインタを参照する、ことと、
該プロセッサのフェッチブロックで該第1のジャンプ命令をフェッチすることと、
該分岐予測器で該第1のジャンプ命令を検出することと、
ローカルメモリから該第1のジャンプ命令に対応する該第1の目標アドレスを読み取り、該第1の目標アドレスを該プロセッサの該フェッチブロックに提供することと、
該メモリテーブルの中の第2の目標アドレスを指すように該ポインタを修正することであって、該第2の目標アドレスは、第2のジャンプ命令に対応する、ことと、
該メモリテーブルから将来の目標アドレスをプリフェッチすることと、
該第1のジャンプ命令がコミットする時に、該プリフェッチされた将来の目標アドレスを該ローカルメモリに書き込むことと、
該第1のジャンプ命令がコミットする時に、該ローカルメモリから該第1の目標アドレスを回収することと
を含む、方法。
(項目30)
前記第2のジャンプ命令を検出することと、前記ローカルメモリの中の前記第2の目標アドレスを読み取ることとをさらに含む、項目29に記載の方法。
(項目31)
前記第2のジャンプ命令がコミットする時に、前記ローカルメモリから前記第2の目標アドレスを回収することをさらに含む、項目30に記載の方法。
(項目32)
前記デジタルプロセッサは、パイプラインを含み、前記方法は、誤予測条件を検出することに応答して、前記パイプラインをクリアすることをさらに含む、項目30に記載の方法。
(項目33)
前記目標アドレスをメモリテーブルに書き込むことは、ジャンプ命令の前記目標アドレスを、複数回実行される一連のジャンプ命令の開始時と、再度、該一連のジャンプ命令の終了時とに書き込むことを含む、項目29に記載の方法。
JUMP([Px++]);
ここで、Pxは、メモリテーブル34の中のエントリに対するポインタを含む、一組のポインタレジスタのうちの1つである。メモリテーブル34の中のエントリは、ジャンプ命令の目標アドレスを含む。加えて、ポインタは、ジャンプ命令がコミットする時に修正されるポストである。次の目標アドレスを得る際には、「ジャンプ二重間接」という名称で示唆されるように、2つの間接のレベルがある。
bp_rdptr=ff_rdptr+sum(ujdi)+sum(jdi)+sum(pjdi) (1)
式中、sum(ujdi)は、予測外JDIパイプ122を通して進む予測外JDI命令の合計であり、sum(jdi)は、予測JDIパイプ120を通して進む予測JDI命令の合計であり、sum(pjdi)は、パイプライン20の上流ステージの予測JDI命令の合計である。
future_fifo_size=fifo_entries+sum(pfetch_addr)−sum(jdi) (2)
式中、fifo_entriesは、JDIメモリ32の中の現在の目標アドレスの数であり、sum(pfetch_addr)は、メモリテーブル34からプリフェッチされ、MEM1パイプ112を通して進むアドレスの合計であり、sum(jdi)は、予測JDIパイプ120を通して進む予測JDIと、予測外JDIパイプ122を通して進む予測外JDIとの合計である。
Claims (31)
- パイプラインデジタルプロセッサでジャンプ動作を実施するための方法であって、
該プロセッサによって実行されるジャンプ命令の目標アドレスをメモリテーブルに書き込むことと、
該プロセッサによって実行されている第1のジャンプ命令を検出することであって、該第1のジャンプ命令は、該メモリテーブルの中の第1の目標アドレスに対するポインタを参照する、ことと、
該プロセッサが、
該第1の目標アドレスにジャンプすることと、
該メモリテーブルの中の第2の目標アドレスを指すように該ポインタを修正することであって、該第2の目標アドレスは第2のジャンプ命令に対応する、ことと
を行うことによって、該第1のジャンプ命令を実行することと
を含み、
該第1のジャンプ命令を実行することは、
該メモリテーブルから少なくとも1つの将来の目標アドレスをプリフェッチすることと、
該少なくとも1つの将来の目標アドレスをローカルメモリに書き込むことと
をさらに含む、方法。 - 前記第2のジャンプ命令を検出することに応答して、前記ローカルメモリの中の前記第2の目標アドレスにアクセスすることをさらに含む、請求項1に記載の方法。
- 前記ポインタを修正することは、該ポインタをポストインクリメントすることを含む、請求項1に記載の方法。
- 前記第1のジャンプ命令を実行することは、前記メモリテーブルの中の前記第1の目標アドレスにアクセスすることをさらに含む、請求項1に記載の方法。
- 一連の命令の実行前に、前記メモリテーブルに書き込まれる前記目標アドレスを事前計算することをさらに含む、請求項1に記載の方法。
- 前記第2のジャンプ命令がコミットする時に、前記ローカルメモリから前記第2の目標アドレスを回収することをさらに含む、請求項2に記載の方法。
- 前記少なくとも1つの将来の目標アドレスは、前記第1のジャンプ命令がコミットする時に、前記ローカルメモリに書き込まれる、請求項2に記載の方法。
- 前記少なくとも1つの将来の目標アドレスをプリフェッチすることは、前記ローカルメモリが満杯ではない時に、2つの将来の目標アドレスをプリフェッチすることを含む、請求項2に記載の方法。
- 前記デジタルプロセッサは、パイプラインを含み、前記方法は、誤予測条件を検出することに応答して、該パイプラインをクリアすることをさらに含む、請求項2に記載の方法。
- 前記第1のジャンプ命令を検出することは、前記プロセッサの中の分岐予測器によって実施される、請求項1に記載の方法。
- 前記目標アドレスをメモリテーブルに書き込むことは、ジャンプ命令の前記目標アドレスを、複数回実行される一連のジャンプ命令の開始時と、再度、該一連のジャンプ命令の終了時とに書き込むことを含む、請求項1に記載の方法。
- 分岐予測器を有するパイプラインデジタルプロセッサでジャンプ動作を実施するための方法であって、
該プロセッサによって実行されるジャンプ命令の目標アドレスをメモリテーブルに書き込むことと、
該プロセッサの命令セットアーキテクチャにおいてジャンプ命令を提供することであって、該ジャンプ命令は、該メモリテーブルの中の目標アドレスに対するポインタを参照する、ことと、
該分岐予測器が第1のジャンプ命令を検出することに応答して、第1の目標アドレスにジャンプすることと、
該メモリテーブルの中の第2の目標アドレスを指すように該ポインタを修正することであって、該第2の目標アドレスは、第2のジャンプ命令に対応する、ことと、
該メモリテーブルから少なくとも1つの将来の目標アドレスをプリフェッチすることと、該少なくとも1つの将来の目標アドレスをローカルメモリに書き込むことと
を含む、方法。 - 前記分岐予測器が前記第2のジャンプ命令を検出することに応答して、前記ローカルメモリの中の前記第2の目標アドレスにアクセスすることをさらに含む、請求項12に記載の方法。
- 前記第2のジャンプ命令がコミットする時に、前記ローカルメモリから前記第2の目標アドレスを回収することをさらに含む、請求項13に記載の方法。
- 前記少なくとも1つの将来の目標アドレスは、前記第1のジャンプ命令がコミットする時に、前記ローカルメモリに書き込まれる、請求項13に記載の方法。
- 前記少なくとも1つの将来の目標アドレスをプリフェッチすることは、前記ローカルメモリが満杯ではない時に、2つの将来の目標アドレスをプリフェッチすることを含む、請求項13に記載の方法。
- 前記デジタルプロセッサは、パイプラインを含み、前記方法は、誤予測条件を検出することに応答して、該パイプラインをクリアすることをさらに含む、請求項13に記載の方法。
- 前記ポインタを修正することは、該ポインタをポストインクリメントすることを含む、請求項12に記載の方法。
- 前記第1の目標アドレスにジャンプすることは、該第1の目標アドレスを前記プロセッサの命令フェッチステージに提供することを含む、請求項12に記載の方法。
- 前記目標アドレスをメモリテーブルに書き込むことは、ジャンプ命令の前記目標アドレスを、複数回実行される一連のジャンプ命令の開始時と、再度、前記一連のジャンプ命令の終了時とに書き込むことを含む、請求項12に記載の方法。
- パイプラインデジタルプロセッサでジャンプ動作を実施するための装置であって、
実行されるジャンプ命令の目標アドレスを記憶するメモリテーブルと、
ローカルメモリと、
該メモリテーブルの中の目標アドレスに対するポインタを参照するジャンプ命令の実行を制御するためのジャンプ命令制御ユニットと
を備え、
該ジャンプ命令制御ユニットは、第1の目標アドレスにジャンプする第1のジャンプ命令に応答して、
該メモリテーブルの中の第2の目標アドレスを指すようにポインタを修正することと、
該メモリテーブルから少なくとも1つの将来の目標アドレスをプリフェッチすることと、
該少なくとも1つの将来の目標アドレスを該ローカルメモリに書き込むことと
を行う、装置。 - 前記第2の目標アドレスは第2のジャンプ命令に対応し、前記ジャンプ命令制御ユニットは、該第2のジャンプ命令を検出することに応答して、前記ローカルメモリの中の該第2の目標アドレスにアクセスするように構成されている、請求項21に記載の装置。
- 前記ジャンプ命令制御ユニットは、前記第2のジャンプ命令がコミットする時に、前記ローカルメモリから前記第2の目標アドレスを回収するようにさらに構成されている、請求項22に記載の装置。
- 前記ジャンプ命令制御ユニットは、前記第1のジャンプ命令がコミットする時に、前記少なくとも1つの将来の目標アドレスを前記ローカルメモリに書き込むように構成されている、請求項22に記載の装置。
- 前記ジャンプ命令制御ユニットは、前記ローカルメモリが満杯ではない時に、2つの将来の目標アドレスをプリフェッチするように構成されている、請求項22に記載の装置。
- 前記デジタルプロセッサは、パイプラインを含み、前記ジャンプ命令制御ユニットは、誤予測条件を検出することに応答して、該パイプラインをクリアするように構成されている、請求項22に記載の装置。
- パイプラインデジタルプロセッサでジャンプ動作を実施するための方法であって、
該プロセッサによって実行されるジャンプ命令の目標アドレスをメモリテーブルに書き込むことと、
該プロセッサの分岐予測器で第1のジャンプ命令を学習することであって、該第1のジャンプ命令は、該メモリテーブルの中の第1の目標アドレスに対するポインタを参照する、ことと、
該プロセッサのフェッチブロックで該第1のジャンプ命令をフェッチすることと、
該分岐予測器で該第1のジャンプ命令を検出することと、
ローカルメモリから該第1のジャンプ命令に対応する該第1の目標アドレスを読み取り、該第1の目標アドレスを該プロセッサの該フェッチブロックに提供することと、
該メモリテーブルの中の第2の目標アドレスを指すように該ポインタを修正することであって、該第2の目標アドレスは、第2のジャンプ命令に対応する、ことと、
該メモリテーブルから将来の目標アドレスをプリフェッチすることと、
該第1のジャンプ命令がコミットする時に、該プリフェッチされた将来の目標アドレスを該ローカルメモリに書き込むことと、
該第1のジャンプ命令がコミットする時に、該ローカルメモリから該第1の目標アドレスを回収することと
を含む、方法。 - 前記第2のジャンプ命令を検出することと、前記ローカルメモリの中の前記第2の目標アドレスを読み取ることとをさらに含む、請求項27に記載の方法。
- 前記第2のジャンプ命令がコミットする時に、前記ローカルメモリから前記第2の目標アドレスを回収することをさらに含む、請求項28に記載の方法。
- 前記デジタルプロセッサは、パイプラインを含み、前記方法は、誤予測条件を検出することに応答して、前記パイプラインをクリアすることをさらに含む、請求項28に記載の方法。
- 前記目標アドレスをメモリテーブルに書き込むことは、ジャンプ命令の前記目標アドレスを、複数回実行される一連のジャンプ命令の開始時と、再度、該一連のジャンプ命令の終了時とに書き込むことを含む、請求項27に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/328,484 | 2008-12-04 | ||
US12/328,484 US7941653B2 (en) | 2008-12-04 | 2008-12-04 | Jump instruction having a reference to a pointer for accessing a branch address table |
PCT/US2009/066547 WO2010065716A1 (en) | 2008-12-04 | 2009-12-03 | Methods and apparatus for performing jump operations in a digital processor |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012511212A JP2012511212A (ja) | 2012-05-17 |
JP5611972B2 true JP5611972B2 (ja) | 2014-10-22 |
Family
ID=41667396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011539686A Active JP5611972B2 (ja) | 2008-12-04 | 2009-12-03 | デジタルプロセッサにおいてジャンプ動作を実施するための方法および装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7941653B2 (ja) |
EP (1) | EP2368180B1 (ja) |
JP (1) | JP5611972B2 (ja) |
CN (1) | CN102349051B (ja) |
WO (1) | WO2010065716A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8407442B2 (en) * | 2010-06-24 | 2013-03-26 | International Business Machines Corporation | Preemptive in-pipeline store compare resolution |
WO2015013895A1 (zh) * | 2013-07-30 | 2015-02-05 | 华为技术有限公司 | 指令的跳转处理方法和装置 |
CN104424037B (zh) * | 2013-08-29 | 2018-12-14 | 中兴通讯股份有限公司 | 一种动态补丁函数的方法及装置 |
CN109308280B (zh) * | 2017-07-26 | 2021-05-18 | 华为技术有限公司 | 数据处理方法和相关设备 |
US10445241B2 (en) * | 2018-03-06 | 2019-10-15 | Arm Limited | Prefetching using offset data to access a pointer within a current data element for use in prefetching a subsequent data element |
CN111325331B (zh) * | 2018-12-14 | 2022-12-09 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
CN109783143B (zh) * | 2019-01-25 | 2021-03-09 | 贵州华芯通半导体技术有限公司 | 用于流水线指令流的控制方法和控制设备 |
US11288071B2 (en) | 2020-05-04 | 2022-03-29 | Morgan Stanley Services Group Inc. | System and method for prefetching instructions and data |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5101341A (en) * | 1988-08-25 | 1992-03-31 | Edgcore Technology, Inc. | Pipelined system for reducing instruction access time by accumulating predecoded instruction bits a FIFO |
US5434985A (en) * | 1992-08-11 | 1995-07-18 | International Business Machines Corporation | Simultaneous prediction of multiple branches for superscalar processing |
SE509499C2 (sv) * | 1996-05-03 | 1999-02-01 | Ericsson Telefon Ab L M | Metod och anordning för hantering av villkorliga hopp vid instruktionsbehandling i en pipeline-arkitektur |
US6167506A (en) * | 1997-11-17 | 2000-12-26 | Advanced Micro Devices, Inc. | Replacing displacement in control transfer instruction with encoding indicative of target address, including offset and target cache line location |
JP2000132390A (ja) * | 1998-10-23 | 2000-05-12 | Toshiba Corp | プロセッサ及び分岐予測器 |
US6308322B1 (en) * | 1999-04-06 | 2001-10-23 | Hewlett-Packard Company | Method and apparatus for reduction of indirect branch instruction overhead through use of target address hints |
US6651162B1 (en) * | 1999-11-04 | 2003-11-18 | International Business Machines Corporation | Recursively accessing a branch target address cache using a target address previously accessed from the branch target address cache |
US6721877B1 (en) | 2000-05-25 | 2004-04-13 | Advanced Micro Devices, Inc. | Branch predictor that selects between predictions based on stored prediction selector and branch predictor index generation |
US7266676B2 (en) * | 2003-03-21 | 2007-09-04 | Analog Devices, Inc. | Method and apparatus for branch prediction based on branch targets utilizing tag and data arrays |
-
2008
- 2008-12-04 US US12/328,484 patent/US7941653B2/en active Active
-
2009
- 2009-12-03 JP JP2011539686A patent/JP5611972B2/ja active Active
- 2009-12-03 EP EP09802055.5A patent/EP2368180B1/en active Active
- 2009-12-03 CN CN200980156146.2A patent/CN102349051B/zh active Active
- 2009-12-03 WO PCT/US2009/066547 patent/WO2010065716A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2010065716A1 (en) | 2010-06-10 |
EP2368180B1 (en) | 2015-01-21 |
EP2368180A1 (en) | 2011-09-28 |
CN102349051B (zh) | 2015-04-29 |
CN102349051A (zh) | 2012-02-08 |
JP2012511212A (ja) | 2012-05-17 |
US7941653B2 (en) | 2011-05-10 |
US20100146248A1 (en) | 2010-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5611972B2 (ja) | デジタルプロセッサにおいてジャンプ動作を実施するための方法および装置 | |
JP5198879B2 (ja) | ループ末尾に置かれた分岐により分岐履歴レジスタの更新を抑制すること | |
KR101459536B1 (ko) | 사전 통지 기법들을 사용하여 프로그램의 순차적 흐름을 변경하기 위한 방법들 및 장치 | |
US6389531B1 (en) | Indexing branch target instruction memory using target address generated by branch control instruction to reduce branch latency | |
US7814469B2 (en) | Speculative multi-threading for instruction prefetch and/or trace pre-build | |
JP5137948B2 (ja) | ローカル及びグローバル分岐予測情報の格納 | |
KR101099203B1 (ko) | 명시적 서브루틴 호출의 브랜치 예측 동작을 에뮬레이트하기 위한 방법 및 장치 | |
EP2087420B1 (en) | Methods and apparatus for recognizing a subroutine call | |
US20060168432A1 (en) | Branch prediction accuracy in a processor that supports speculative execution | |
US7266676B2 (en) | Method and apparatus for branch prediction based on branch targets utilizing tag and data arrays | |
JP2011100466A5 (ja) | ||
JP2008532142A5 (ja) | ||
JPH0334024A (ja) | 分岐予測の方法とそのための装置 | |
JP2006520964A5 (ja) | ||
JP4728877B2 (ja) | マイクロプロセッサおよびパイプライン制御方法 | |
JPH0588891A (ja) | キヤツシユメモリ制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20121029 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131129 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140203 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140428 |
|
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: 20140804 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140903 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5611972 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: R3D04 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |