Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

Zero cost indexing for improved processor cache performance

Published: 01 January 2006 Publication History
  • Get Citation Alerts
  • Abstract

    The increasing use of microprocessor cores in embedded systems as well as mobile and portable devices creates an opportunity for customizing the cache subsystem for improved performance. In traditional cache design, the index portion of the memory address bus consists of the K least significant bits, where K = log2 D and D is the depth of the cache. However, in devices where the application set is known and characterized (e.g., systems that execute a fixed application set) there is an opportunity to improve cache performance by choosing a near-optimal set of bits used as index into the cache. This technique does not add any overhead in terms of area or delay. In this article, we present an efficient heuristic algorithm for selecting K index bits for improved cache performance. We show the feasibility of our algorithm by applying it to a large number of embedded system applications as well as the integer SPEC CPU 2000 benchmarks. Specifically, for data traces, we show up to 45% reduction in cache misses. Likewise, for instruction traces, we show up to 31% reduction in cache misses. When a unified data/instruction cache architecture is considered, our results show an average improvement of 14.5% for the Powerstone benchmarks and an average improvement of 15.2% for the SPEC'00 benchmarks.

    References

    [1]
    Abella, J., Gonzalez, A., Liosa, J., and Vera, X. 2002. Near-optimal loop tiling by means of cache miss equations and genetic algorithms. In Proceedings of the International Conference on Parallel Processing Workshops (Washington, DC). IEEE Computer Society Press, Los Alamitos, CA, 568--580.]]
    [2]
    Balasubramonian, R., Albonesi, D., Buyuktosunoglu, A., and Dwarkadas, S. 2000. Memory hierarchy reconfiguration for energy and performance in general-purpose processor architectures. In Proceedings of the International Symposium on Microarchitecture. ACM, New York, 245--257.]]
    [3]
    Corman, T., Leiserson, C., Rivest, R., and Stein, C. 2001. Introduction to Algorithms, 2 ed. The MIT Press and McGraw-Hill, Cambridge, MA.]]
    [4]
    Ding, C. and Kennedy, K. 1999. Improving cache performance in dynamic applications through data and computation reorganization at run time. In Proceedings of the Conference on Programming Language Design and Implementation. ACM, New York, 229--241.]]
    [5]
    Grun, P., Dutt, N., and Nicolau, A. 2000. Memory aware compilation through accurate timing extraction. In Proceedings of the Design Automation Conference. ACM, New York, 316--321.]]
    [6]
    Grun, P., Dutt, N., and Nicolau, A. 2001. Aggressive memory-aware compilation. In Intelligent Memory Systems. Springer-Verlag, London, UK, 147--151.]]
    [7]
    Gurari, E. 1989. An introduction to the theory of computation. McGraw-Hill, New York.]]
    [8]
    Huang, Q., Xue, J., and Vera, X. 2003. Code tiling for improving the cache performance of pde solvers. In Proceedings of the International Conference on Parallel Processing. ACM, New York, 615--626.]]
    [9]
    ITRS. 2005. Technology roadmap for semiconductors. http://www.itrs.com.]]
    [10]
    Kozyrakis, C. and Patterson, D. 1998. A new direction for computer architecture research. IEEE Comput. 31, 11, 24--32.]]
    [11]
    Malik, A., Moyer, B., and Cermak, D. 2000. A low power unified cache architecture providing power and performance flexibility. In Proceedings of the Symposium on Low Power Electronics and Design. ACM, New York, 241--243.]]
    [12]
    Panda, P., Nakamura, H., Dutt, N., and Nicolau, A. 1997. Improving cache performance through riling and data alignment. In Proceedings of the Workshop on Parallel Algorithms for Irregularly Structured Problems. ACM, New York, 167--185.]]
    [13]
    Patterson, D. and Hennessy, J. 1997. Computer Organization and Design: The Hardware/Software Interface, 2 ed. Morgan-Kaufmann, San Francisco, CA.]]
    [14]
    Petrov, P. and Orailoglu, A. 2001. Towards effective embedded processors in codesigns: Customizable partitioned caches. In Proceedings of the International Conference on Hardware/Software Codesign. ACM, New York, 79--84.]]
    [15]
    PowerStone. 1999. The powerstone benchmarks. www.motorola.com.]]
    [16]
    Rivera, G. and Tseng, C.-W. 1997. Compiler optimizations for eliminating cache conflict misses. Tech. Rep. CS-TR-3819, University of Maryland.]]
    [17]
    SPEC'00. Spec cpu 2000. http://www.spec.org.]]
    [18]
    Su, C. L. and Despain, A. 1995. Cache design trade-offs for power and performance optimization: A case study. In Proceedings of the International Symposium on Low Power Electronics and Design. ACM, New York, 63--68.]]
    [19]
    Suzuki, K., Arai, T., Kouhei, N., and Kuroda, I. 1998. V830R/Av: Embedded multimedia superscalar RISC processor. IEEE Micro 18, 2, 36--47.]]
    [20]
    Tiwari, B. and Martonosi, M. 2000. Wattch: A framework for architecture-level power analysis and optimization. In Proceedings of the Symposium on Computer Architecture. ACM, New York, 83--94.]]
    [21]
    Vahid, F. and Givargis, T. 1999. The case for a configure-and-execute paradigm. In Proceedings of the International Conference on Hardware/Software Codesign. ACM, New York, 59--63.]]
    [22]
    Wong, S., Vassiliadis, S., and Cotofana, S. 2004. Future directions of (programmable and reconfigurable) embedded processors. In Domain-Specific Processors: Systems, Architecture, Modeling, and Simulation. Marcel Dekker, Inc., London, UK, 235--257.]]

    Cited By

    View all
    • (2016)Pipelining data-dependent tasks in FPGA-based multicore architecturesMicroprocessors and Microsystems10.1016/j.micpro.2016.02.00842(165-179)Online publication date: May-2016
    • (2016)Multi-objective optimization of energy consumption and execution time in a single level cache memory for embedded systemsJournal of Systems and Software10.1016/j.jss.2015.10.012111:C(200-212)Online publication date: 1-Jan-2016
    • (2015)Adaptive Selection of Cache Indexing Bits for Removing Conflict MissesIEEE Transactions on Computers10.1109/TC.2014.233981964:6(1534-1547)Online publication date: 1-Jun-2015
    • Show More Cited By

    Index Terms

    1. Zero cost indexing for improved processor cache performance

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image ACM Transactions on Design Automation of Electronic Systems
      ACM Transactions on Design Automation of Electronic Systems  Volume 11, Issue 1
      January 2006
      250 pages
      ISSN:1084-4309
      EISSN:1557-7309
      DOI:10.1145/1124713
      Issue’s Table of Contents
      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Journal Family

      Publication History

      Published: 01 January 2006
      Published in TODAES Volume 11, Issue 1

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. Cache optimization
      2. design exploration
      3. index hashing

      Qualifiers

      • Article

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)4
      • Downloads (Last 6 weeks)0
      Reflects downloads up to 09 Aug 2024

      Other Metrics

      Citations

      Cited By

      View all
      • (2016)Pipelining data-dependent tasks in FPGA-based multicore architecturesMicroprocessors and Microsystems10.1016/j.micpro.2016.02.00842(165-179)Online publication date: May-2016
      • (2016)Multi-objective optimization of energy consumption and execution time in a single level cache memory for embedded systemsJournal of Systems and Software10.1016/j.jss.2015.10.012111:C(200-212)Online publication date: 1-Jan-2016
      • (2015)Adaptive Selection of Cache Indexing Bits for Removing Conflict MissesIEEE Transactions on Computers10.1109/TC.2014.233981964:6(1534-1547)Online publication date: 1-Jun-2015
      • (2013)An FPGA-based multi-core approach for pipelining computing stagesProceedings of the 28th Annual ACM Symposium on Applied Computing10.1145/2480362.2480647(1533-1540)Online publication date: 18-Mar-2013
      • (2009)Direct address translation for virtual memory in energy-efficient embedded systemsACM Transactions on Embedded Computing Systems10.1145/1457246.14572518:1(1-31)Online publication date: 4-Jan-2009
      • (2007)Dynamic Tag Reduction for Low-Power Caches in Embedded Systems with Virtual MemoryInternational Journal of Parallel Programming10.1007/s10766-006-0030-135:2(157-177)Online publication date: 1-Apr-2007

      View Options

      Get Access

      Login options

      Full Access

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media