JP2007515715A - 命令キャッシュからラベル境界上のトレースキャッシュに遷移させる方法 - Google Patents
命令キャッシュからラベル境界上のトレースキャッシュに遷移させる方法 Download PDFInfo
- Publication number
- JP2007515715A JP2007515715A JP2006542625A JP2006542625A JP2007515715A JP 2007515715 A JP2007515715 A JP 2007515715A JP 2006542625 A JP2006542625 A JP 2006542625A JP 2006542625 A JP2006542625 A JP 2006542625A JP 2007515715 A JP2007515715 A JP 2007515715A
- Authority
- JP
- Japan
- Prior art keywords
- trace
- instruction
- cache
- branch
- microprocessor
- 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
- 230000007704 transition Effects 0.000 title abstract description 8
- 238000000034 method Methods 0.000 claims abstract description 22
- 230000015654 memory Effects 0.000 claims description 52
- 230000000977 initiatory effect Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 description 45
- 239000000872 buffer Substances 0.000 description 13
- 230000008569 process Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 5
- 230000001427 coherent effect Effects 0.000 description 4
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 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
-
- 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
-
- 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
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
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)
- Debugging And Monitoring (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
マイクロプロセッサ内で処理される命令は、1と0の連続としてエンコードされている。あるマイクロプロセッサ・アーキテクチャでは、命令が、ある特定のバイト数のように、固定された長さでエンコードされる。x86のような他のマイクロプロセッサアーキテクチャでは、命令の長さは可変である。x86マイクロプロセッサアーキテクチャは、可変長命令セット(すなわち、様々な命令がそれぞれ異なるバイト数で指定される命令セット)を指定する。例えば、80386マイクロプロセッサおよび後期型のx86マイクロプロセッサは、特定の命令を指定するために1バイトから15バイトのバイト数を用いる。命令は、1〜2バイトの操作符号を有し、かつ、実行される命令に関する、アドレッシングモード、オペランドおよび付加的な詳細を特定するための付加的なバイトが追加される。
トレースジェネレータ170は、リタイアキュー102からリタイアオペレーションの基本ブロックを受け取るとともに、これらの基本ブロックをトレースキャッシュ160内に格納するように構成されていてもよい。これに代えて、トレースジェネレータ170は、マイクロプロセッサの前段(front-end)に(例えば、ディスパッチユニットの前あるいは後)結合されていてもよく、そのときにマイクロプロセッサ内のパイプライン内で検出された基本ブロックからトレースを生成するように構成されていてもよい。トレースを組み立てている間は、トレースジェネレータ170は、トレースを生成するために、リタイアキュー102から受け取ったオペレーションの基本ブロック上で遷移を実行してもよい。いくつかの形態例では、これらの遷移は、オペレーションのリオーダおよびオペレーションの削除を含んでもよい。
図5は、一形態例のコンピュータシステム400を示す。このコンピュータシステム400は、バスブリッジ402を介して様々なシステム要素に結合されたマイクロプロセッサ100を備える。マイクロプロセッサ100は、この形態例では、上述したようにトレースキャッシュジェネレータ170を備えてもよい。コンピュータシステムは、他の形態例に構成することが可能であり、考えられるであろう。ここに示すシステムでは、メインメモリ200はメモリバス406を介してバスブリッジ402に結合され、グラフィックコントローラ408はAGPバス410を介してバスブリッジ402に結合されている。多数のPCIデバイス412A−412Bは、PCIバス414を介してバスブリッジ402に結合されている。セカンダリバスブリッジ416は、EISA/ISAバス420を介して、電気的なインターフェイスを1又は複数のEISAまたはISAデバイス418に適合させるために用いられてもよい。この形態例では、マイクロプロセッサ100は、CPUバス424を介してバスブリッジ402に結合されるとともに、任意的なL2キャッシュ428に結合される。いくつかの形態例では、マイクロプロセッサ100は、集積L1キャッシュ(図示せず)を備えてもよい。
Claims (10)
- 命令を格納する命令キャッシュ(106)、
分岐予測ユニット(132)、
命令の複数のトレース(166)を格納するトレースキャッシュ(160)、および、
前記命令キャッシュ(106)、前記分岐予測ユニット(132)および前記トレースキャッシュ(160)に結合されたプリフェッチユニット(108)を備えるマイクロプロセッサ(100)において、
前記プリフェッチユニット(108)は、前記分岐予測ユニット(132)が予測ターゲットアドレスを出力するまで、前記命令キャッシュ(106)から命令をフェッチし、
前記プリフェッチユニット(108)は、前記トレースキャッシュ(160)内で前記予測ターゲットアドレスのマッチを識別すると、前記トレースキャッシュ(160)から1又は複数の前記トレース(166)をフェッチする、マイクロプロセッサ。 - 前記マイクロプロセッサ(100)は、トレースジェネレータ(170)をさらに備え、このトレースジェネレータ(170)は、ラベル境界に対応する命令のトレース(166)を開始する、請求項1記載のマイクロプロセッサ(100)。
- 前記トレースジェネレータ(170)は、トレースキャッシュ(160)を確認し、当該トレースジェネレータ(170)が組み立てるトレース(166)の複製を調べる、請求項2記載のマイクロプロセッサ(100)。
- 前記トレース(166)の各々は、部分的にデコードされた命令を含む、請求項1記載のマイクロプロセッサ(100)。
- 前記トレース(166)の各々は、そのトレース(166)内に格納された命令のうち、プログラムの順序が一番初めの命令のアドレスを有するタグと関係付けられる、請求項1記載のマイクロプロセッサ(100)。
- 前記トレース(166)の各々は、フロー制御フィールド(168)と関係付けられており、このフロー制御フィールド(168)は、命令のラベルを含み、そのトレース(166)内の各分岐オペレーションは、制御フローによって前記命令のラベルにパスされる、請求項1記載のマイクロプロセッサ(100)。
- システムメモリ(404)、および、
前記システムメモリ(404)に結合されたマイクロプロセッサ(100)を備えるコンピュータシステム(400)において、
前記マイクロプロセッサは、
命令を格納する命令キャッシュ(106)、
分岐予測ユニット(132)、
命令の複数のトレース(166)を格納するトレースキャッシュ(160)、および、
前記命令キャッシュ(106)、前記分岐予測ユニット(132)および前記トレースキャッシュ(160)に結合されたプリフェッチユニット(108)を備えるマイクロプロセッサ(100)において、
前記プリフェッチユニット(108)は、前記分岐予測ユニット(132)が予測ターゲットアドレスを出力するまで、前記命令キャッシュ(106)から命令をフェッチし、
前記プリフェッチユニット(108)は、前記トレースキャッシュ(160)内で前記予測ターゲットアドレスのマッチを識別すると、前記トレースキャッシュ(160)から1又は複数の前記トレース(166)をフェッチする、コンピュータシステム(400)。 - 命令キャッシュ(106)から命令をフェッチするステップと、
分岐ターゲットアドレスが生成されるまで、前記命令キャッシュ(106)からの命令のフェッチを続けるステップと、
分岐ターゲットアドレスが生成されると、前記分岐ターゲットアドレスに対応するエントリ(162)をトレースキャッシュ(160)から探すステップとを備える方法。 - 前記分岐ターゲットアドレスに対応するエントリ(162)がトレースキャッシュ(160)内で識別されると、前記トレースキャッシュ(160)から1又は複数のトレース(166)をフェッチするステップをさらに備える、請求項8記載の方法。
- リタイアした命令を受け取るステップと、
前記受け取った命令が分岐ラベルと関係付けられていれば、新たなトレース(166)の組み立てを開始するステップと、
以前の組み立て中のトレース(166)が前記トレースキャッシュ(160)内でトレース(166)を複製すると、受け取る命令が分岐ラベルに対応するまで、新たなトレース(166)の組み立てを遅延するステップと
をさらに備える請求項8記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/726,902 US8069336B2 (en) | 2003-12-03 | 2003-12-03 | Transitioning from instruction cache to trace cache on label boundaries |
PCT/US2004/039269 WO2005062167A2 (en) | 2003-12-03 | 2004-11-22 | Transitioning from instruction cache to trace cache on label boundaries |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007515715A true JP2007515715A (ja) | 2007-06-14 |
Family
ID=34633400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006542625A Pending JP2007515715A (ja) | 2003-12-03 | 2004-11-22 | 命令キャッシュからラベル境界上のトレースキャッシュに遷移させる方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US8069336B2 (ja) |
JP (1) | JP2007515715A (ja) |
KR (1) | KR20070001900A (ja) |
CN (1) | CN100520712C (ja) |
DE (1) | DE112004002365T5 (ja) |
GB (1) | GB2423852B (ja) |
TW (1) | TWI363992B (ja) |
WO (1) | WO2005062167A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012003771A (ja) * | 2010-06-21 | 2012-01-05 | Arm Ltd | 推測的に実行される命令のトレーシング |
Families Citing this family (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7133969B2 (en) * | 2003-10-01 | 2006-11-07 | Advanced Micro Devices, Inc. | System and method for handling exceptional instructions in a trace cache based processor |
US7555633B1 (en) | 2003-11-03 | 2009-06-30 | Advanced Micro Devices, Inc. | Instruction cache prefetch based on trace cache eviction |
US8069336B2 (en) | 2003-12-03 | 2011-11-29 | Globalfoundries Inc. | Transitioning from instruction cache to trace cache on label boundaries |
US7213126B1 (en) | 2004-01-12 | 2007-05-01 | Advanced Micro Devices, Inc. | Method and processor including logic for storing traces within a trace cache |
US7197630B1 (en) | 2004-04-12 | 2007-03-27 | Advanced Micro Devices, Inc. | Method and system for changing the executable status of an operation following a branch misprediction without refetching the operation |
US20050273559A1 (en) * | 2004-05-19 | 2005-12-08 | Aris Aristodemou | Microprocessor architecture including unified cache debug unit |
US7365007B2 (en) * | 2004-06-30 | 2008-04-29 | Intel Corporation | Interconnects with direct metalization and conductive polymer |
US20060212654A1 (en) * | 2005-03-18 | 2006-09-21 | Vinod Balakrishnan | Method and apparatus for intelligent instruction caching using application characteristics |
US7814298B1 (en) | 2005-09-28 | 2010-10-12 | Oracle America, Inc. | Promoting and appending traces in an instruction processing circuit based upon a bias value |
US7870369B1 (en) | 2005-09-28 | 2011-01-11 | Oracle America, Inc. | Abort prioritization in a trace-based processor |
US7877630B1 (en) | 2005-09-28 | 2011-01-25 | Oracle America, Inc. | Trace based rollback of a speculatively updated cache |
US7949854B1 (en) | 2005-09-28 | 2011-05-24 | Oracle America, Inc. | Trace unit with a trace builder |
US8015359B1 (en) | 2005-09-28 | 2011-09-06 | Oracle America, Inc. | Method and system for utilizing a common structure for trace verification and maintaining coherency in an instruction processing circuit |
US8370576B1 (en) | 2005-09-28 | 2013-02-05 | Oracle America, Inc. | Cache rollback acceleration via a bank based versioning cache ciruit |
US8037285B1 (en) | 2005-09-28 | 2011-10-11 | Oracle America, Inc. | Trace unit |
US8499293B1 (en) | 2005-09-28 | 2013-07-30 | Oracle America, Inc. | Symbolic renaming optimization of a trace |
US8051247B1 (en) | 2005-09-28 | 2011-11-01 | Oracle America, Inc. | Trace based deallocation of entries in a versioning cache circuit |
US7953961B1 (en) | 2005-09-28 | 2011-05-31 | Oracle America, Inc. | Trace unit with an op path from a decoder (bypass mode) and from a basic-block builder |
US7747088B2 (en) | 2005-09-28 | 2010-06-29 | Arc International (Uk) Limited | System and methods for performing deblocking in microprocessor-based video codec applications |
US8024522B1 (en) | 2005-09-28 | 2011-09-20 | Oracle America, Inc. | Memory ordering queue/versioning cache circuit |
US7937564B1 (en) | 2005-09-28 | 2011-05-03 | Oracle America, Inc. | Emit vector optimization of a trace |
US8019944B1 (en) | 2005-09-28 | 2011-09-13 | Oracle America, Inc. | Checking for a memory ordering violation after a speculative cache write |
US7987342B1 (en) | 2005-09-28 | 2011-07-26 | Oracle America, Inc. | Trace unit with a decoder, a basic-block cache, a multi-block cache, and sequencer |
US7546420B1 (en) | 2005-09-28 | 2009-06-09 | Sun Microsystems, Inc. | Efficient trace cache management during self-modifying code processing |
US7783863B1 (en) | 2005-09-28 | 2010-08-24 | Oracle America, Inc. | Graceful degradation in a trace-based processor |
US7953933B1 (en) | 2005-09-28 | 2011-05-31 | Oracle America, Inc. | Instruction cache, decoder circuit, basic block cache circuit and multi-block cache circuit |
US8032710B1 (en) | 2005-09-28 | 2011-10-04 | Oracle America, Inc. | System and method for ensuring coherency in trace execution |
US7966479B1 (en) | 2005-09-28 | 2011-06-21 | Oracle America, Inc. | Concurrent vs. low power branch prediction |
US7849292B1 (en) | 2005-09-28 | 2010-12-07 | Oracle America, Inc. | Flag optimization of a trace |
TWI446356B (zh) | 2005-09-30 | 2014-07-21 | Mosaid Technologies Inc | 具有輸出控制之記憶體及其系統 |
US11948629B2 (en) | 2005-09-30 | 2024-04-02 | Mosaid Technologies Incorporated | Non-volatile memory device with concurrent bank operations |
US7652922B2 (en) | 2005-09-30 | 2010-01-26 | Mosaid Technologies Incorporated | Multiple independent serial link memory |
US7797517B1 (en) | 2005-11-18 | 2010-09-14 | Oracle America, Inc. | Trace optimization via fusing operations of a target architecture operation set |
TWI448901B (zh) * | 2006-03-28 | 2014-08-11 | Mosaid Technologies Inc | 非揮發性記憶體系統及控制非揮發性記憶體系統之方法 |
US8010745B1 (en) | 2006-09-27 | 2011-08-30 | Oracle America, Inc. | Rolling back a speculative update of a non-modifiable cache line |
US8370609B1 (en) | 2006-09-27 | 2013-02-05 | Oracle America, Inc. | Data cache rollbacks for failed speculative traces with memory operations |
TWI502357B (zh) * | 2009-08-11 | 2015-10-01 | Via Tech Inc | 資料預先提取方法、裝置及電腦系統 |
KR101086457B1 (ko) * | 2009-12-28 | 2011-11-25 | 전남대학교산학협력단 | 저 전력 트레이스 캐쉬 및 명령어 세트 예측기를 구비한 프로세서 시스템 |
CN102306092B (zh) * | 2011-07-29 | 2014-04-09 | 北京北大众志微系统科技有限责任公司 | 超标量处理器实现指令缓存路选择的方法及装置 |
US8935574B2 (en) | 2011-12-16 | 2015-01-13 | Advanced Micro Devices, Inc. | Correlating traces in a computing system |
US9158696B2 (en) * | 2011-12-29 | 2015-10-13 | Intel Corporation | Hiding instruction cache miss latency by running tag lookups ahead of the instruction accesses |
US9311247B1 (en) | 2012-03-20 | 2016-04-12 | Marvell International Ltd. | Method and apparatus for detecting patterns of memory accesses in a computing system with out-of-order program execution |
WO2013147828A1 (en) * | 2012-03-30 | 2013-10-03 | Intel Corporation | Preempting fixed function media devices |
US9164900B1 (en) | 2012-05-23 | 2015-10-20 | Marvell International Ltd. | Methods and systems for expanding preload capabilities of a memory to encompass a register file |
US8832500B2 (en) | 2012-08-10 | 2014-09-09 | Advanced Micro Devices, Inc. | Multiple clock domain tracing |
US8959398B2 (en) | 2012-08-16 | 2015-02-17 | Advanced Micro Devices, Inc. | Multiple clock domain debug capability |
KR20140134421A (ko) * | 2013-05-14 | 2014-11-24 | 한국전자통신연구원 | 이중 명령어 페치 장치 및 방법 |
US10140210B2 (en) * | 2013-09-24 | 2018-11-27 | Intel Corporation | Method and apparatus for cache occupancy determination and instruction scheduling |
US10740105B2 (en) * | 2014-04-04 | 2020-08-11 | Texas Instruments Incorporated | Processor subroutine cache |
US20160335089A1 (en) * | 2015-05-11 | 2016-11-17 | Qualcomm Incorporated | Eliminating redundancy in a branch target instruction cache by establishing entries using the target address of a subroutine |
US20180054374A1 (en) * | 2016-08-19 | 2018-02-22 | Andes Technology Corporation | Trace information encoding apparatus, encoding method thereof, and readable computer medium |
US10606599B2 (en) * | 2016-12-09 | 2020-03-31 | Advanced Micro Devices, Inc. | Operation cache |
CN107103116B (zh) * | 2017-03-27 | 2019-07-30 | 中国科学院计算技术研究所 | 一种复用追踪缓存的触发装置及设计方法 |
US10268630B1 (en) * | 2017-10-24 | 2019-04-23 | Hewlett Packard Enterprise Development Lp | Noncoherent interprocessor communication remapping node controller |
CN112286577B (zh) * | 2020-10-30 | 2022-12-06 | 上海兆芯集成电路有限公司 | 处理器及其操作方法 |
US20230305992A1 (en) * | 2022-03-25 | 2023-09-28 | Nokia Solutions And Networks Oy | Processor using target instructions |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11328031A (ja) * | 1998-03-12 | 1999-11-30 | Hewlett Packard Co <Hp> | 動的変換システムにおけるトレ―スのランク付け方法 |
US6014742A (en) * | 1997-12-31 | 2000-01-11 | Intel Corporation | Trace branch prediction unit |
JP2003509733A (ja) * | 1997-10-23 | 2003-03-11 | インテル・コーポレーション | トレースに基づく命令キャッシング |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3896419A (en) * | 1974-01-17 | 1975-07-22 | Honeywell Inf Systems | Cache memory store in a processor of a data processing system |
US5210843A (en) | 1988-03-25 | 1993-05-11 | Northern Telecom Limited | Pseudo set-associative memory caching arrangement |
WO1993017385A1 (en) | 1992-02-27 | 1993-09-02 | Intel Corporation | Dynamic flow instruction cache memory |
US5896528A (en) | 1995-03-03 | 1999-04-20 | Fujitsu Limited | Superscalar processor with multiple register windows and speculative return address generation |
EP0870228B1 (en) | 1995-10-06 | 2003-08-13 | Advanced Micro Devices, Inc. | Unified multi-function operation scheduler for out-of-order execution in a superscalar processor |
US5745724A (en) | 1996-01-26 | 1998-04-28 | Advanced Micro Devices, Inc. | Scan chain for rapidly identifying first or second objects of selected types in a sequential list |
US6167536A (en) | 1997-04-08 | 2000-12-26 | Advanced Micro Devices, Inc. | Trace cache for a microprocessor-based device |
US6185675B1 (en) | 1997-10-24 | 2001-02-06 | Advanced Micro Devices, Inc. | Basic block oriented trace cache utilizing a basic block sequence buffer to indicate program order of cached basic blocks |
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 |
US5930497A (en) | 1997-12-11 | 1999-07-27 | International Business Machines Corporation | Method and means for generation of realistic access patterns in storage subsystem benchmarking and other tests |
US6216206B1 (en) | 1997-12-16 | 2001-04-10 | Intel Corporation | Trace victim cache |
US6182210B1 (en) * | 1997-12-16 | 2001-01-30 | Intel Corporation | Processor having multiple program counters and trace buffers outside an execution pipeline |
GB2381101B (en) | 1998-04-20 | 2003-06-25 | Intel Corp | System and method for maintaining branch information |
US6256727B1 (en) | 1998-05-12 | 2001-07-03 | International Business Machines Corporation | Method and system for fetching noncontiguous instructions in a single clock cycle |
US6493821B1 (en) | 1998-06-09 | 2002-12-10 | Intel Corporation | Recovery from writeback stage event signal or micro-branch misprediction using instruction sequence number indexed state information table |
US6339822B1 (en) | 1998-10-02 | 2002-01-15 | Advanced Micro Devices, Inc. | Using padded instructions in a block-oriented cache |
US6233678B1 (en) | 1998-11-05 | 2001-05-15 | Hewlett-Packard Company | Method and apparatus for profiling of non-instrumented programs and dynamic processing of profile data |
US6247097B1 (en) | 1999-01-22 | 2001-06-12 | International Business Machines Corporation | Aligned instruction cache handling of instruction fetches across multiple predicted branch instructions |
US6345295B1 (en) | 1999-01-22 | 2002-02-05 | International Business Machines Corporation | Conducting traces in a computer system attachment network |
US6535905B1 (en) | 1999-04-29 | 2003-03-18 | Intel Corporation | Method and apparatus for thread switching within a multithreaded processor |
US6357016B1 (en) | 1999-12-09 | 2002-03-12 | Intel Corporation | Method and apparatus for disabling a clock signal within a multithreaded processor |
US7260684B2 (en) | 2001-01-16 | 2007-08-21 | Intel Corporation | Trace cache filtering |
US6578128B1 (en) | 2001-03-29 | 2003-06-10 | Emc Corporation | Address management for a shared memory region on a multi-processor controller board |
US20020144101A1 (en) | 2001-03-30 | 2002-10-03 | Hong Wang | Caching DAG traces |
US6973543B1 (en) | 2001-07-12 | 2005-12-06 | Advanced Micro Devices, Inc. | Partial directory cache for reducing probe traffic in multiprocessor systems |
US6823428B2 (en) | 2002-05-17 | 2004-11-23 | International Business | Preventing cache floods from sequential streams |
US7139902B2 (en) | 2002-10-29 | 2006-11-21 | Broadcom Corporation | Implementation of an efficient instruction fetch pipeline utilizing a trace cache |
US7024537B2 (en) * | 2003-01-21 | 2006-04-04 | Advanced Micro Devices, Inc. | Data speculation based on addressing patterns identifying dual-purpose register |
US7143273B2 (en) | 2003-03-31 | 2006-11-28 | Intel Corporation | Method and apparatus for dynamic branch prediction utilizing multiple stew algorithms for indexing a global history |
US7178134B2 (en) | 2003-04-24 | 2007-02-13 | International Business Machines Corporation | Method and apparatus for resolving memory allocation trace data in a computer system |
US7003629B1 (en) | 2003-07-08 | 2006-02-21 | Advanced Micro Devices, Inc. | System and method of identifying liveness groups within traces stored in a trace cache |
US7133969B2 (en) | 2003-10-01 | 2006-11-07 | Advanced Micro Devices, Inc. | System and method for handling exceptional instructions in a trace cache based processor |
US8069336B2 (en) | 2003-12-03 | 2011-11-29 | Globalfoundries Inc. | Transitioning from instruction cache to trace cache on label boundaries |
US7219207B2 (en) | 2003-12-03 | 2007-05-15 | Intel Corporation | Reconfigurable trace cache |
-
2003
- 2003-12-03 US US10/726,902 patent/US8069336B2/en active Active
-
2004
- 2004-11-22 JP JP2006542625A patent/JP2007515715A/ja active Pending
- 2004-11-22 CN CNB200480036205XA patent/CN100520712C/zh active Active
- 2004-11-22 KR KR1020067011089A patent/KR20070001900A/ko not_active Application Discontinuation
- 2004-11-22 DE DE112004002365T patent/DE112004002365T5/de not_active Ceased
- 2004-11-22 GB GB0611775A patent/GB2423852B/en not_active Expired - Fee Related
- 2004-11-22 WO PCT/US2004/039269 patent/WO2005062167A2/en active Application Filing
- 2004-11-30 TW TW093136824A patent/TWI363992B/zh active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003509733A (ja) * | 1997-10-23 | 2003-03-11 | インテル・コーポレーション | トレースに基づく命令キャッシング |
US6014742A (en) * | 1997-12-31 | 2000-01-11 | Intel Corporation | Trace branch prediction unit |
JPH11328031A (ja) * | 1998-03-12 | 1999-11-30 | Hewlett Packard Co <Hp> | 動的変換システムにおけるトレ―スのランク付け方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012003771A (ja) * | 2010-06-21 | 2012-01-05 | Arm Ltd | 推測的に実行される命令のトレーシング |
US8769344B2 (en) | 2010-06-21 | 2014-07-01 | Arm Limited | Tracing speculatively executed instructions |
US9639361B2 (en) | 2010-06-21 | 2017-05-02 | Arm Limited | Tracing speculatively executed instructions |
Also Published As
Publication number | Publication date |
---|---|
GB2423852B (en) | 2007-05-30 |
US8069336B2 (en) | 2011-11-29 |
TW200530912A (en) | 2005-09-16 |
WO2005062167A3 (en) | 2006-02-09 |
CN1890631A (zh) | 2007-01-03 |
DE112004002365T5 (de) | 2006-11-09 |
GB0611775D0 (en) | 2006-07-26 |
US20050125632A1 (en) | 2005-06-09 |
WO2005062167A2 (en) | 2005-07-07 |
CN100520712C (zh) | 2009-07-29 |
GB2423852A (en) | 2006-09-06 |
TWI363992B (en) | 2012-05-11 |
KR20070001900A (ko) | 2007-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8069336B2 (en) | Transitioning from instruction cache to trace cache on label boundaries | |
US6151662A (en) | Data transaction typing for improved caching and prefetching characteristics | |
US7415597B2 (en) | Processor with dependence mechanism to predict whether a load is dependent on older store | |
US7003629B1 (en) | System and method of identifying liveness groups within traces stored in a trace cache | |
US6950925B1 (en) | Scheduler for use in a microprocessor that supports data-speculative execution | |
US7133969B2 (en) | System and method for handling exceptional instructions in a trace cache based processor | |
US7487340B2 (en) | Local and global branch prediction information storage | |
KR100958705B1 (ko) | 로드 동작들의 추론적 결과들을 레지스터 값들에링크시키는 시스템 및 방법 | |
US7213126B1 (en) | Method and processor including logic for storing traces within a trace cache | |
US20020091915A1 (en) | Load prediction and thread identification in a multithreaded microprocessor | |
JP2007536626A (ja) | ロードオペレーションの投機的な結果をレジスタ値にリンクするメモリファイルを検証するためのシステムおよび方法 | |
EP1586029A1 (en) | Data speculation based on addressing patterns identifying dual-purpose register | |
KR100698493B1 (ko) | 좁은 피연산자들에서 계산을 수행하는 방법 및 장치 | |
WO2003093983A1 (en) | System and method of using speculative source operands in order to bypass load/store operations | |
US7366885B1 (en) | Method for optimizing loop control of microcoded instructions | |
EP1644823B1 (en) | Load store unit with replay mechanism | |
US8799628B2 (en) | Early branch determination | |
JP5335440B2 (ja) | オペランドの早期の条件付き選択 | |
WO2004099977A2 (en) | System and method for operation replay within a data-speculative microprocessor | |
US7197630B1 (en) | Method and system for changing the executable status of an operation following a branch misprediction without refetching the operation | |
US7266673B2 (en) | Speculation pointers to identify data-speculative operations in microprocessor | |
US7694110B1 (en) | System and method of implementing microcode operations as subroutines | |
US7555633B1 (en) | Instruction cache prefetch based on trace cache eviction | |
US20080162905A1 (en) | Design structure for double-width instruction queue for instruction execution | |
WO1998002805A1 (en) | A load/store unit with multiple pointers for completing store and load-miss instructions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071102 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20100421 |
|
RD05 | Notification of revocation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7425 Effective date: 20100902 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101027 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110323 |