[go: up one dir, main page]

Choi et al., 2004 - Google Patents

A general framework for prefetch scheduling in linked data structures and its application to multi-chain prefetching

Choi et al., 2004

View PDF
Document ID
6356803692350203097
Author
Choi S
Kohout N
Pamnani S
Kim D
Yeung D
Publication year
Publication venue
ACM Transactions on Computer Systems (TOCS)

External Links

Snippet

Pointer-chasing applications tend to traverse composite data structures consisting of multiple independent pointer chains. While the traversal of any single pointer chain leads to the serialization of memory operations, the traversal of independent pointer chains provides …
Continue reading at dl.acm.org (PDF) (other versions)

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformations of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4441Reducing the execution time required by the program code
    • G06F8/4442Reducing the number of cache misses; Data prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformations of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/445Exploiting fine grain parallelism, i.e. parallelism at instruction level
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for programme control, e.g. control unit
    • G06F9/06Arrangements for programme control, e.g. control unit using stored programme, i.e. using internal store of processing equipment to receive and retain programme
    • G06F9/30Arrangements for executing machine-instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformations of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/456Parallelism detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for programme control, e.g. control unit
    • G06F9/06Arrangements for programme control, e.g. control unit using stored programme, i.e. using internal store of processing equipment to receive and retain programme
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/50Computer-aided design
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/30Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches

Similar Documents

Publication Publication Date Title
Liao et al. Post-pass binary adaptation for software-based speculative precomputation
Oplinger et al. Software and hardware for exploiting speculative parallelism with a multiprocessor
Luk Tolerating memory latency through software-controlled pre-execution in simultaneous multithreading processors
US8612949B2 (en) Methods and apparatuses for compiler-creating helper threads for multi-threading
Ottoni et al. Automatic thread extraction with decoupled software pipelining
Kistler et al. Continuous program optimization: A case study
Tian et al. Copy or discard execution model for speculative parallelization on multicores
Oplinger et al. In search of speculative thread-level parallelism
Wang et al. Guided region prefetching: A cooperative hardware/software approach
Yang et al. Push vs. pull: Data movement for linked data structures
EP1668500B1 (en) Methods and apparatuses for thread management of multi-threading
US8037465B2 (en) Thread-data affinity optimization using compiler
González et al. Trace-level reuse
Vera et al. Data caches in multitasking hard real-time systems
Krishnamurthy et al. Analyses and optimizations for shared address space programs
Luk et al. Automatic compiler-inserted prefetching for pointer-based applications
Faraboschi et al. Instruction scheduling for instruction level parallel processors
Cohn et al. Hot cold optimization of large Windows/NT applications
US8886887B2 (en) Uniform external and internal interfaces for delinquent memory operations to facilitate cache optimization
Pai et al. Code transformations to improve memory parallelism
US7243195B2 (en) Software managed cache optimization system and method for multi-processing systems
Choi et al. A general framework for prefetch scheduling in linked data structures and its application to multi-chain prefetching
Kim et al. A study of source-level compiler algorithms for automatic construction of pre-execution code
Kohout et al. Multi-chain prefetching: Effective exploitation of inter-chain memory parallelism for pointer-chasing codes
Barua et al. Cost-driven thread coarsening for GPU kernels