WO2001097041A3 - Compiler-based cache line optimization - Google Patents

Compiler-based cache line optimization Download PDF

Info

Publication number
WO2001097041A3
WO2001097041A3 PCT/US2001/018969 US0118969W WO0197041A3 WO 2001097041 A3 WO2001097041 A3 WO 2001097041A3 US 0118969 W US0118969 W US 0118969W WO 0197041 A3 WO0197041 A3 WO 0197041A3
Authority
WO
WIPO (PCT)
Prior art keywords
cache
control flow
probabilities
scheduled
cache line
Prior art date
Application number
PCT/US2001/018969
Other languages
French (fr)
Other versions
WO2001097041A2 (en
Inventor
Nicolai Kosche
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Priority to AU2001266887A priority Critical patent/AU2001266887A1/en
Publication of WO2001097041A2 publication Critical patent/WO2001097041A2/en
Publication of WO2001097041A3 publication Critical patent/WO2001097041A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6028Prefetching based on hints or prefetch instructions

Abstract

Cache line optimization involves computing where cache misses are in a control flow and assigning probabilities to cache misses. Cache lines may be scheduled on the assigned probabilities and where the cache misses are in the control flow. Cache line probabilities may be calculated based on the relationship of the cache line and where the cache misses are in the control flow. A control flow may be pruned before calculating cache line probabilities. Function call sites may be used to prune the control flow. Address generation of a cache miss may be duplicated to speculatively hoist address generation and the associated prefetch. References may be selected for optimization, identifying cache lines, and mapping the selected references. Dependencies within the cache lines may be determined and the cache lines may be scheduled based on the determined dependencies and probabilities of usefulness. Instructions may be scheduled based on the scheduled cache lines and the target machine model to maximize outstanding memory transactions. Cache lines may be scheduled across call sites.
PCT/US2001/018969 2000-06-15 2001-06-13 Compiler-based cache line optimization WO2001097041A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001266887A AU2001266887A1 (en) 2000-06-15 2001-06-13 Compiler-based cache line optimization

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/594,430 US6564297B1 (en) 2000-06-15 2000-06-15 Compiler-based cache line optimization
US09/594,430 2000-06-15

Publications (2)

Publication Number Publication Date
WO2001097041A2 WO2001097041A2 (en) 2001-12-20
WO2001097041A3 true WO2001097041A3 (en) 2002-11-21

Family

ID=24378833

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/018969 WO2001097041A2 (en) 2000-06-15 2001-06-13 Compiler-based cache line optimization

Country Status (3)

Country Link
US (1) US6564297B1 (en)
AU (1) AU2001266887A1 (en)
WO (1) WO2001097041A2 (en)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2365375A1 (en) * 2001-12-18 2003-06-18 Ibm Canada Limited-Ibm Canada Limitee Optimizing source code for iterative execution
GB0202728D0 (en) * 2002-02-06 2002-03-27 Transitive Technologies Ltd Condition code flag emulation for program code conversion
US7331040B2 (en) * 2002-02-06 2008-02-12 Transitive Limted Condition code flag emulation for program code conversion
US8065665B1 (en) 2004-02-28 2011-11-22 Oracle America, Inc. Method and apparatus for correlating profile data
US7735073B1 (en) 2004-02-28 2010-06-08 Oracle International Corporation Method and apparatus for data object profiling
US7827543B1 (en) 2004-02-28 2010-11-02 Oracle America, Inc. Method and apparatus for profiling data addresses
US7707554B1 (en) 2004-04-21 2010-04-27 Oracle America, Inc. Associating data source information with runtime events
US7434002B1 (en) * 2006-04-24 2008-10-07 Vmware, Inc. Utilizing cache information to manage memory access and cache utilization
US7581064B1 (en) 2006-04-24 2009-08-25 Vmware, Inc. Utilizing cache information to manage memory access and cache utilization
US7530060B1 (en) * 2008-01-08 2009-05-05 International Business Machines Corporation Methods and computer program product for optimizing binaries with coding style formalization
US8527974B2 (en) * 2008-03-28 2013-09-03 International Business Machines Corporation Data transfer optimized software cache for regular memory references
US8561043B2 (en) * 2008-03-28 2013-10-15 International Business Machines Corporation Data transfer optimized software cache for irregular memory references
US8561044B2 (en) * 2008-10-07 2013-10-15 International Business Machines Corporation Optimized code generation targeting a high locality software cache
US8135911B2 (en) * 2008-10-21 2012-03-13 International Business Machines Corporation Managing a region cache
US9996356B2 (en) * 2015-12-26 2018-06-12 Intel Corporation Method and apparatus for recovering from bad store-to-load forwarding in an out-of-order processor
US9696973B1 (en) 2016-02-24 2017-07-04 Semmle Limited Compilation cache with imports scanner
US11593117B2 (en) * 2018-06-29 2023-02-28 Qualcomm Incorporated Combining load or store instructions

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0743598A2 (en) * 1995-05-18 1996-11-20 Hewlett-Packard Company Compiler for increased data cache efficiency
US5900022A (en) * 1994-02-22 1999-05-04 Advanced Micro Devices, Inc. Apparatus and method for reducing the cache miss penalty in a virtual addressed memory system by using a speculative address generator and an accurate address generator
EP0919921A2 (en) * 1997-11-26 1999-06-02 Digital Equipment Corporation Method for estimating statistics of properties of instructions processed by a processor pipeline
US5950007A (en) * 1995-07-06 1999-09-07 Hitachi, Ltd. Method for compiling loops containing prefetch instructions that replaces one or more actual prefetches with one virtual prefetch prior to loop scheduling and unrolling
US6049669A (en) * 1997-04-17 2000-04-11 Hewlett-Packard Company Exploiting case correlation to increase performance of programs with branch/switch instructions

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5900022A (en) * 1994-02-22 1999-05-04 Advanced Micro Devices, Inc. Apparatus and method for reducing the cache miss penalty in a virtual addressed memory system by using a speculative address generator and an accurate address generator
EP0743598A2 (en) * 1995-05-18 1996-11-20 Hewlett-Packard Company Compiler for increased data cache efficiency
US5950007A (en) * 1995-07-06 1999-09-07 Hitachi, Ltd. Method for compiling loops containing prefetch instructions that replaces one or more actual prefetches with one virtual prefetch prior to loop scheduling and unrolling
US6049669A (en) * 1997-04-17 2000-04-11 Hewlett-Packard Company Exploiting case correlation to increase performance of programs with branch/switch instructions
EP0919921A2 (en) * 1997-11-26 1999-06-02 Digital Equipment Corporation Method for estimating statistics of properties of instructions processed by a processor pipeline

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HOLLER A M: "OPTIMIZATION FOR A SUPERSCALAR OUT-OF-ORDER MACHINE", PROCEEDINGS OF THE 29TH. ANNUAL IEEE/ACM INTERNATIONAL SYMPOSIUM ON MICROARCHITECTURE. MICRO-29. PARIS, DEC. 2 - 4, 1996, PROCEEDINGS OF THE ANNUAL IEEE/ACM INTERNATIONAL SYMPOSIUM ON MICROARCHITECTURE. (MICRO), LOS ALAMITOS, IEEE COMP. SOC. PRESS, U, vol. SYMP. 29, 2 December 1996 (1996-12-02), pages 336 - 348, XP000724383, ISBN: 0-8186-7641-8 *
WOLF M E ET AL: "COMBINING LOOP TRANSFORMATIONS CONSIDERING CACHES AND SCHEDULING", PROCEEDINGS OF THE 29TH. ANNUAL IEEE/ACM INTERNATIONAL SYMPOSIUM ON MICROARCHITECTURE. MICRO-29. PARIS, DEC. 2 - 4, 1996, PROCEEDINGS OF THE ANNUAL IEEE/ACM INTERNATIONAL SYMPOSIUM ON MICROARCHITECTURE. (MICRO), LOS ALAMITOS, IEEE COMP. SOC. PRESS, U, vol. SYMP. 29, 2 December 1996 (1996-12-02), pages 274 - 286, XP000724378, ISBN: 0-8186-7641-8 *

Also Published As

Publication number Publication date
AU2001266887A1 (en) 2001-12-24
US6564297B1 (en) 2003-05-13
WO2001097041A2 (en) 2001-12-20

Similar Documents

Publication Publication Date Title
WO2001097041A3 (en) Compiler-based cache line optimization
Hill et al. Experimental evaluation of on-chip microprocessor cache memories
WO2004027605A3 (en) Post-pass binary adaptation for software-based speculative precomputation
WO2002054230A3 (en) System and method for prefetching data into a cache based on miss distance
EP0735463A3 (en) Computer processor having a register file with reduced read and/or write port bandwidth
ATE244417T1 (en) REAL-TIME PROGRAM VOICE ACCELERATOR
DE69625768T2 (en) Cache memory with maximum simultaneous lookup for computer arrangements with multi-thread environment
CA2057389A1 (en) Predictive historical cache memory
TW253946B (en) Data processor with branch prediction and method of operation
TW200609730A (en) Information processing apparatus and information processing method
DE69814137D1 (en) CACHE MEMORY OPERATION
WO2002017086A3 (en) Method and apparatus for pipelining ordered input/output transactions in a cache coherent, multi-processor system
EP1349063A3 (en) Program simulation with just-in-time compilation
EP1439460A3 (en) Apparatus and method for invalidation of redundant entries in a branch target address cache
EP1622028A3 (en) Cache memory and method for controlling cache memory
WO2003087974A3 (en) Computerized trading system and method useful therefor
TR200201390T2 (en) A method of controlling the amount of the substance fed during the transfer of a substance
DE60000908D1 (en) IMPROVED PRECISION BENDING PRESS
WO2004079489A3 (en) Data processing system with prefetching means
WO2005048113A3 (en) Dynamically caching engine instructions for on demand program execution
Zhang et al. Execution history guided instruction prefetching
WO2004088461A3 (en) Local emulation of data ram utilizing write-through cache hardware within a cpu module
Lee et al. An intelligent cache system with hardware prefetching for high performance
WO2005029335A3 (en) Method and apparatus for joint cache coherency states in multi-interface caches
EP1622026A3 (en) Cache memory control unit, cache memory control method, central processing unit, information processor and central processing method

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
AK Designated states

Kind code of ref document: A3

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP