JP5748800B2 - ループバッファのパッキング - Google Patents
ループバッファのパッキング Download PDFInfo
- Publication number
- JP5748800B2 JP5748800B2 JP2013125335A JP2013125335A JP5748800B2 JP 5748800 B2 JP5748800 B2 JP 5748800B2 JP 2013125335 A JP2013125335 A JP 2013125335A JP 2013125335 A JP2013125335 A JP 2013125335A JP 5748800 B2 JP5748800 B2 JP 5748800B2
- Authority
- JP
- Japan
- Prior art keywords
- loop
- loop buffer
- buffer
- iteration
- instruction
- 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.)
- Expired - Fee Related
Links
- 239000000872 buffer Substances 0.000 title claims description 240
- 238000012856 packing Methods 0.000 title description 3
- 238000000034 method Methods 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 12
- 238000003860 storage Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 230000002093 peripheral effect Effects 0.000 description 7
- 238000013519 translation Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 230000015572 biosynthetic process Effects 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 238000003786 synthesis reaction Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 3
- 230000009249 intrinsic sympathomimetic activity Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 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
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
- G06F9/381—Loop buffering
-
- 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
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
-
- 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
- G06F9/325—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
-
- 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/3816—Instruction alignment, e.g. cache line crossing
-
- 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/3818—Decoding for concurrent execution
- G06F9/382—Pipelined decoding, e.g. using predecoding
-
- 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
-
- 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/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
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)
- Memory System Of A Hierarchy Structure (AREA)
Description
12 プロセッサ複合体
14、16 中央処理ユニット(CPU)
18 レベル2(L2)キャッシュ
20 バスインターフェースユニット(BIU)
22 メモリコントローラ
24、26 メモリ物理インターフェース回路(PHY)
30 コア
32 フェッチ及びデコード(FED)ユニット
33 L1命令キャッシュ
34 アライナ
35 ループバッファ
36 マップ及びディスパッチユニット
38 リオーダバッファ(ROB)
40 メモリ管理ユニット(MMU)
42 コアインターフェースユニット(CIF)
44 実行ユニット
46 ロード−格納ユニット(LSU)
48 L1データキャッシュ
50 格納待ち行列
52 ロード待ち行列
60 フェッチフロントエンド
62 ループバッファ
64 ループバッファコントロールユニット
66 分枝追跡表
70A−F デコーダ
80 フェッチフロントエンド
82A−F デコーダ
84 ループバッファ
86 ループバッファコントロールユニット
88 分枝追跡表
100 アライナ
102 命令待ち行列
103 反復境界
104 命令クロスバー
110 ループバッファ
112 中間点
140 システム
142 外部メモリ
144 周辺機器
146 電源
150 デスクトップコンピュータ
160 ラップトップコンピュータ
170 タブレットコンピュータ
180 セルフォン
190 コンピュータ可読媒体
Claims (20)
- 複数の行を含むループバッファであって、各行は複数のエントリを含む、ループバッファと、
前記ループバッファへ連結されているループバッファコントロールユニットであって、 命令ストリームの中にループを検出し、
前記ループの第1反復を前記ループバッファへ書き込ませ、
前記ループの最後の命令が前記ループバッファの行の最後のエントリに書き込まれなかったことを検出することに応えて、前記ループの第2反復を前記ループバッファへ書き込ませるように、
構成されているループバッファコントロールユニットと、を備えている装置。 - 前記ループバッファコントロールユニットは、更に、
前記ループバッファが少なくとも半分まで埋まっていないと判定したことに応えて、前記ループの反復をもう1つ前記ループバッファへ書き込ませるように、及び、
前記ループバッファが少なくとも半分まで埋まっていると判定したことに応えて、前記ループの追加の反復が前記ループバッファへ書き込まれることを防ぐように、構成されている、請求項1に記載の装置。 - 前記ループバッファコントロールユニットは、前記ループバッファが半分まで埋まっているかどうかを、前記ループバッファに対する書き込みポインタの位置に基づいて判定するように構成されている、請求項2に記載の装置。
- 前記ループバッファコントロールユニットは、更に、
前記最後の命令が前記ループバッファの行の最後のエントリへ書き込まれたと判定したことに応えて、前記ループの追加の反復が前記ループバッファへ書き込まれることを防ぐように、構成されている、請求項1に記載の装置。 - 前記ループバッファコントロールユニットは、前記ループバッファが少なくとも半分まで埋まっていないことを検出したことにさらに応えて、前記ループの第2反復を前記ループバッファに書き込むように構成されている、請求項1に記載の装置。
- 前記ループの第1反復の第1命令オペレーションを前記ループバッファの第1行の第1スロットへ書き込むように構成されているアライナを更に備えている、請求項1に記載の装置。
- 前記ループバッファは、同時に当該ループバッファの行のすべての命令オペレーションをディスパッチするように構成されている、請求項1に記載の装置。
- 複数の行を含むループバッファであって、各行は複数のエントリを含む、ループバッファと、
前記ループバッファへ連結されているループバッファコントロールユニットであって、 命令ストリームの中にループを検出し、
前記ループの第1反復を前記ループバッファへ書き込ませ、
前記ループの最後の命令が前記ループバッファの行の最後のエントリに書き込まれなかったことを検出することに応えて、前記ループの第2反復を前記ループバッファへ書き込ませるように、
構成されているループバッファコントロールユニットと、を備えているプロセッサにおいて、
前記ループバッファが、
前記ループの複数の反復を格納するように、及び、
前記プロセッサがループバッファモードに入ったことに応えて、前記ループの前記複数の反復の命令をディスパッチするように、構成されている、プロセッサ。 - 前記ループの前記複数の反復のそれぞれの反復は同一である、請求項8に記載のプロセッサ。
- 前記ループの始まりを識別してマークするように構成されているフェッチユニットを更に備えている、請求項8に記載のプロセッサ。
- 前記フェッチユニットは、ループ反復境界を識別するように構成されているアライナを備えている、請求項10に記載のプロセッサ。
- 前記アライナは、更に、前記プロセッサがループバッファモードに入ったことに応えて、前記ループの先の反復の後方分岐枝を検出した後にストールを生じさせるように構成されている、請求項11に記載のプロセッサ。
- 前記アライナは、更に、前記ループの最終反復の後方分岐枝が前記ループバッファへ書き込まれたことを検出した後にストールを生じさせるように構成されている、請求項12に記載のプロセッサ。
- 前記アライナは、更に、
前記ループの第1反復の後方分岐枝を、第1クロックサイクルの第1スロットへ割り当てるように、及び、
前記ループの第2反復の第1命令オペレーションを、前記第1クロックサイクルの前記第1スロットに隣接している第2スロットへ割り当てるように、構成されている、請求項13に記載のプロセッサ。 - 命令ストリームの中にループを検出する段階と、
前記ループの第1反復を複数の行を含むループバッファへ書き込む段階であって、各行は複数のエントリを含む、段階と、
前記ループの最後の命令が前記ループバッファの行の最後のエントリへ書き込まれなかったことを検出することに応えて、前記ループの第2反復を前記ループバッファへ書き込む段階と、を備えている方法。 - 前記方法は、
前記ループの前記第2反復のループ終結分枝を検出したことに応えて、前記ループバッファが半分まで埋まっているかどうかを判定する段階と、
前記ループの前記第1反復及び前記第2反復を前記ループバッファからディスパッチする段階と、を更に備えている、請求項15に記載の方法。 - 前記方法は、前記ループの前記第1反復及び前記第2反復を前記ループバッファからディスパッチしたことに応えて、フェッチユニットをシャットダウンする段階を更に備えている、請求項16に記載の方法。
- 前記ループバッファに格納されている有効行の数に等しい第1値を格納する段階を更に備えている、請求項17に記載の方法。
- 前記ループの前記第1反復及び前記第2反復を前記ループバッファからディスパッチする段階は、読み出しポインタに前記ループバッファの前記第1値に等しい行数を進ませる段階を備えている、請求項18に記載の方法。
- 前記読み出しポインタが前記ループバッファの前記第1値に等しい行数を進んだことに応えて、前記読み出しポインタを前記ループバッファの第1行へリセットする段階を更に備えている、請求項19に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/524,478 US9753733B2 (en) | 2012-06-15 | 2012-06-15 | Methods, apparatus, and processors for packing multiple iterations of loop in a loop buffer |
US13/524,478 | 2012-06-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014002736A JP2014002736A (ja) | 2014-01-09 |
JP5748800B2 true JP5748800B2 (ja) | 2015-07-15 |
Family
ID=48607066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013125335A Expired - Fee Related JP5748800B2 (ja) | 2012-06-15 | 2013-06-14 | ループバッファのパッキング |
Country Status (8)
Country | Link |
---|---|
US (1) | US9753733B2 (ja) |
EP (1) | EP2674857B1 (ja) |
JP (1) | JP5748800B2 (ja) |
KR (1) | KR101496009B1 (ja) |
CN (1) | CN103513964B (ja) |
BR (1) | BR102013015262A2 (ja) |
TW (1) | TWI503744B (ja) |
WO (1) | WO2013188123A2 (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9557999B2 (en) | 2012-06-15 | 2017-01-31 | Apple Inc. | Loop buffer learning |
US9710276B2 (en) * | 2012-11-09 | 2017-07-18 | Advanced Micro Devices, Inc. | Execution of instruction loops using an instruction buffer |
US9459871B2 (en) * | 2012-12-31 | 2016-10-04 | Intel Corporation | System of improved loop detection and execution |
US9632791B2 (en) | 2014-01-21 | 2017-04-25 | Apple Inc. | Cache for patterns of instructions with multiple forward control transfers |
US9471322B2 (en) * | 2014-02-12 | 2016-10-18 | Apple Inc. | Early loop buffer mode entry upon number of mispredictions of exit condition exceeding threshold |
US9524011B2 (en) | 2014-04-11 | 2016-12-20 | Apple Inc. | Instruction loop buffer with tiered power savings |
CN104317572B (zh) * | 2014-09-30 | 2017-05-24 | 南京大学 | 一种实时系统的循环边界内向分析方法 |
CN104461933B (zh) * | 2014-11-07 | 2017-10-03 | 珠海全志科技股份有限公司 | 内存管理方法及其装置 |
US9830152B2 (en) * | 2015-12-22 | 2017-11-28 | Qualcomm Incorporated | Selective storing of previously decoded instructions of frequently-called instruction sequences in an instruction sequence buffer to be executed by a processor |
JP2018005488A (ja) * | 2016-06-30 | 2018-01-11 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
TWI666930B (zh) * | 2016-07-12 | 2019-07-21 | 聯發科技股份有限公司 | 一種使用環形緩衝器和競賽模式環形緩衝器訪問控制方案的視訊處理系統 |
US10348329B2 (en) * | 2017-02-13 | 2019-07-09 | Qualcomm Incorporated | Low density parity check (LDPC) circular buffer rate matching |
CN108897700A (zh) * | 2018-06-26 | 2018-11-27 | 青岛海信宽带多媒体技术有限公司 | 一种环形缓存器的数据处理方法、装置及机顶盒 |
US10915322B2 (en) * | 2018-09-18 | 2021-02-09 | Advanced Micro Devices, Inc. | Using loop exit prediction to accelerate or suppress loop mode of a processor |
CN111414199B (zh) * | 2020-04-03 | 2022-11-08 | 中国人民解放军国防科技大学 | 一种指令融合的实现方法及装置 |
US20240028339A1 (en) * | 2022-07-25 | 2024-01-25 | Apple Inc. | Using a Next Fetch Predictor Circuit with Short Branches and Return Fetch Groups |
US20240385841A1 (en) * | 2023-05-18 | 2024-11-21 | Qualcomm Incorporated | Fetching beyond predicted-taken branch instructions in fetch bundles of processor-based devices |
US12360765B2 (en) * | 2023-10-20 | 2025-07-15 | Qualcomm Incorporated | Processing unit employing micro-operations (micro-ops) random access memory (RAM) as main program memory |
Family Cites Families (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63314644A (ja) | 1987-06-17 | 1988-12-22 | Nec Corp | デ−タ処理装置 |
EP0449369B1 (en) | 1990-03-27 | 1998-07-29 | Koninklijke Philips Electronics N.V. | A data processing system provided with a performance enhancing instruction cache |
JP3032031B2 (ja) | 1991-04-05 | 2000-04-10 | 株式会社東芝 | ループ最適化方法及び装置 |
JP3032030B2 (ja) | 1991-04-05 | 2000-04-10 | 株式会社東芝 | ループ最適化方法及び装置 |
MX9306994A (es) | 1992-12-15 | 1994-06-30 | Ericsson Telefon Ab L M | Sistema de control de flujo para interruptores de paquete. |
US5493556A (en) * | 1993-02-16 | 1996-02-20 | Sanyo Electric Co., Ltd. | Multi-disk player/recorder with biased locking means for disk cassettes |
JPH0991136A (ja) | 1995-09-25 | 1997-04-04 | Toshiba Corp | 信号処理装置 |
JPH10124315A (ja) | 1996-10-18 | 1998-05-15 | Hitachi Ltd | 分岐処理方法およびそのための情報処理装置 |
JPH10177482A (ja) | 1996-10-31 | 1998-06-30 | Texas Instr Inc <Ti> | マイクロプロセッサおよび動作方法 |
US5893142A (en) | 1996-11-14 | 1999-04-06 | Motorola Inc. | Data processing system having a cache and method therefor |
US6076159A (en) | 1997-09-12 | 2000-06-13 | Siemens Aktiengesellschaft | Execution of a loop instructing in a loop pipeline after detection of a first occurrence of the loop instruction in an integer pipeline |
US6125440A (en) | 1998-05-21 | 2000-09-26 | Tellabs Operations, Inc. | Storing executing instruction sequence for re-execution upon backward branch to reduce power consuming memory fetch |
US6269440B1 (en) * | 1999-02-05 | 2001-07-31 | Agere Systems Guardian Corp. | Accelerating vector processing using plural sequencers to process multiple loop iterations simultaneously |
JP2000298587A (ja) | 1999-03-08 | 2000-10-24 | Texas Instr Inc <Ti> | 命令反復中に指定先にブランチする装置を持つ処理装置 |
EP1050804A1 (en) * | 1999-05-03 | 2000-11-08 | STMicroelectronics SA | Execution of instruction loops |
US6598155B1 (en) | 2000-01-31 | 2003-07-22 | Intel Corporation | Method and apparatus for loop buffering digital signal processing instructions |
JP2001195302A (ja) | 1999-11-30 | 2001-07-19 | Texas Instr Inc <Ti> | 命令ループ・バッファ |
US6963965B1 (en) | 1999-11-30 | 2005-11-08 | Texas Instruments Incorporated | Instruction-programmable processor with instruction loop cache |
US7302557B1 (en) * | 1999-12-27 | 2007-11-27 | Impact Technologies, Inc. | Method and apparatus for modulo scheduled loop execution in a processor architecture |
US6578138B1 (en) * | 1999-12-30 | 2003-06-10 | Intel Corporation | System and method for unrolling loops in a trace cache |
US6757817B1 (en) | 2000-05-19 | 2004-06-29 | Intel Corporation | Apparatus having a cache and a loop buffer |
US6671799B1 (en) | 2000-08-31 | 2003-12-30 | Stmicroelectronics, Inc. | System and method for dynamically sizing hardware loops and executing nested loops in a digital signal processor |
US6748523B1 (en) | 2000-11-02 | 2004-06-08 | Intel Corporation | Hardware loops |
US6898693B1 (en) | 2000-11-02 | 2005-05-24 | Intel Corporation | Hardware loops |
US6950929B2 (en) | 2001-05-24 | 2005-09-27 | Samsung Electronics Co., Ltd. | Loop instruction processing using loop buffer in a data processing device having a coprocessor |
KR100464406B1 (ko) * | 2002-02-08 | 2005-01-03 | 삼성전자주식회사 | 가변길이 vliw 명령어를 위한 디스패치 장치 및 방법 |
JP2004038601A (ja) | 2002-07-04 | 2004-02-05 | Matsushita Electric Ind Co Ltd | キャッシュメモリ装置 |
WO2004049154A2 (en) | 2002-11-28 | 2004-06-10 | Koninklijke Philips Electronics N.V. | A loop control circuit for a data processor |
US20040123075A1 (en) | 2002-12-19 | 2004-06-24 | Yoav Almog | Extended loop prediction techniques |
US7159103B2 (en) | 2003-03-24 | 2007-01-02 | Infineon Technologies Ag | Zero-overhead loop operation in microprocessor having instruction buffer |
US7130963B2 (en) | 2003-07-16 | 2006-10-31 | International Business Machines Corp. | System and method for instruction memory storage and processing based on backwards branch control information |
US7752426B2 (en) | 2004-08-30 | 2010-07-06 | Texas Instruments Incorporated | Processes, circuits, devices, and systems for branch prediction and other processor improvements |
JP2006309337A (ja) * | 2005-04-26 | 2006-11-09 | Toshiba Corp | プロセッサ及びプロセッサの命令バッファ動作方法 |
US7330964B2 (en) * | 2005-11-14 | 2008-02-12 | Texas Instruments Incorporated | Microprocessor with independent SIMD loop buffer |
US7475231B2 (en) | 2005-11-14 | 2009-01-06 | Texas Instruments Incorporated | Loop detection and capture in the instruction queue |
US7873820B2 (en) | 2005-11-15 | 2011-01-18 | Mips Technologies, Inc. | Processor utilizing a loop buffer to reduce power consumption |
TW200723094A (en) | 2005-12-01 | 2007-06-16 | Ind Tech Res Inst | Dynamic branch prediction system and method |
US9052910B2 (en) | 2007-10-25 | 2015-06-09 | International Business Machines Corporation | Efficiency of short loop instruction fetch |
US20090217017A1 (en) | 2008-02-26 | 2009-08-27 | International Business Machines Corporation | Method, system and computer program product for minimizing branch prediction latency |
TWI362001B (en) | 2008-07-16 | 2012-04-11 | Faraday Tech Corp | Recovery apparatus for solving branch mis-prediction and method and central processing unit thereof |
JP2010066892A (ja) | 2008-09-09 | 2010-03-25 | Renesas Technology Corp | データプロセッサ及びデータ処理システム |
US9952869B2 (en) * | 2009-11-04 | 2018-04-24 | Ceva D.S.P. Ltd. | System and method for using a branch mis-prediction buffer |
CN102882845B (zh) * | 2010-04-07 | 2016-07-13 | 苹果公司 | 实时或准实时流传输 |
US8446186B2 (en) | 2010-06-07 | 2013-05-21 | Silicon Laboratories Inc. | Time-shared latency locked loop circuit for driving a buffer circuit |
US20120079303A1 (en) | 2010-09-24 | 2012-03-29 | Madduri Venkateswara R | Method and apparatus for reducing power consumption in a processor by powering down an instruction fetch unit |
US20120185714A1 (en) | 2011-12-15 | 2012-07-19 | Jaewoong Chung | Method, apparatus, and system for energy efficiency and energy conservation including code recirculation techniques |
US9557999B2 (en) | 2012-06-15 | 2017-01-31 | Apple Inc. | Loop buffer learning |
US9471322B2 (en) | 2014-02-12 | 2016-10-18 | Apple Inc. | Early loop buffer mode entry upon number of mispredictions of exit condition exceeding threshold |
-
2012
- 2012-06-15 US US13/524,478 patent/US9753733B2/en active Active
-
2013
- 2013-05-30 WO PCT/US2013/043335 patent/WO2013188123A2/en active Application Filing
- 2013-06-04 EP EP13170364.7A patent/EP2674857B1/en active Active
- 2013-06-14 KR KR20130068472A patent/KR101496009B1/ko not_active Expired - Fee Related
- 2013-06-14 CN CN201310353450.4A patent/CN103513964B/zh not_active Expired - Fee Related
- 2013-06-14 JP JP2013125335A patent/JP5748800B2/ja not_active Expired - Fee Related
- 2013-06-14 TW TW102121212A patent/TWI503744B/zh not_active IP Right Cessation
- 2013-06-17 BR BRBR102013015262-5A patent/BR102013015262A2/pt not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
EP2674857B1 (en) | 2019-07-24 |
KR20130141396A (ko) | 2013-12-26 |
JP2014002736A (ja) | 2014-01-09 |
TW201411486A (zh) | 2014-03-16 |
WO2013188123A3 (en) | 2014-02-13 |
KR101496009B1 (ko) | 2015-02-25 |
CN103513964B (zh) | 2015-12-02 |
CN103513964A (zh) | 2014-01-15 |
TWI503744B (zh) | 2015-10-11 |
BR102013015262A2 (pt) | 2015-07-14 |
EP2674857A1 (en) | 2013-12-18 |
US9753733B2 (en) | 2017-09-05 |
US20130339699A1 (en) | 2013-12-19 |
WO2013188123A2 (en) | 2013-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5748800B2 (ja) | ループバッファのパッキング | |
US9557999B2 (en) | Loop buffer learning | |
US9471322B2 (en) | Early loop buffer mode entry upon number of mispredictions of exit condition exceeding threshold | |
US9582276B2 (en) | Processor and method for implementing barrier operation using speculative and architectural color values | |
US9448936B2 (en) | Concurrent store and load operations | |
US9600289B2 (en) | Load-store dependency predictor PC hashing | |
US9354886B2 (en) | Maintaining the integrity of an execution return address stack | |
US8856447B2 (en) | Converting memory accesses near barriers into prefetches | |
US20120185714A1 (en) | Method, apparatus, and system for energy efficiency and energy conservation including code recirculation techniques | |
US9201658B2 (en) | Branch predictor for wide issue, arbitrarily aligned fetch that can cross cache line boundaries | |
KR101806279B1 (ko) | 명령어 순서 강제 명령어들의 쌍들, 프로세서들, 방법들, 및 시스템들 | |
US12229557B2 (en) | Atomic operation predictor to predict whether an atomic operation will complete successfully | |
US11422821B1 (en) | Age tracking for independent pipelines |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140804 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20141104 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150107 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150406 |
|
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: 20150427 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150512 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5748800 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 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |