A Dynamic Cache Architecture for Efficient Memory Resource Allocation in Many-Core Systems
Today’s computing systems still mostly consist of homogeneous multi-core processing systems with statically allocated computing resources. Looking into the future, these computing systems will evolve to heterogeneous processing systems with more diverse processing units and new requirements. With multiple applications running concurrently on these many-core platforms, these applications compete for computational resources and thus processing power. However, not all applications are able to efficiently make use of all available resources at all times, which leads to the challenge to efficiently allocate tasks to computational resources during run-time. This issue is especially crucial when looking at cache resources, where the bandwidth and the available resources strongly bound computation times. For example, streaming based algorithms will run concurrently with block-based computations, which leads to an inefficient allocation of cache resources.
In this paper, we propose a dynamic cache architecture that enables the parameterization and the resource allocation of cache memory resources between cores during run-time. The reallocation is done with only little overhead such that each algorithm class can be more efficiently executed on the many-core platform. We contribute with a cache architecture that is for the first time prototyped on programmable hardware to demonstrate the feasibility of the proposed approach. At last we evaluate the overhead introduced by the increased flexibility of the hardware architecture.
This research work is supported by the German Research Foundation (DFG) within the Transregio SFB Invasive Computing (DFG SFB/TRR89).
- 1.Albonesi, D.: Selective cache ways: on-demand cache resource allocation. In: Proceedings of the 32nd Annual ACM/IEEE International Symposium on Microarchitecture (1999)Google Scholar
- 2.Gordon-Ross, A., Lau, J., Calder, B.: Phase-based cache reconfiguration for a highly-configurable two-level cache hierarchy. In: Proceedings of the 18th ACM Great Lakes symposium on VLSI (2008)Google Scholar
- 3.Ji, X., Nicolaescu, D., Veidenbaum, A., Nicolau, A., Gupta, R.: Compiler Directed Cache Assist Adaptivity. Technical report, University of California Irvine (2000)Google Scholar
- 4.Malik, A., Moyer, B., Cermak, D.: A low power unified cache architecture providing power and performance flexibility (poster session). In: Proceedings of the International Symposium on Low Power Electronics and Design (2000)Google Scholar
- 6.Nowak, F., Buchty, R., Karl, W.: A run-time reconfigurable cache architecture. In: Advances in Parallel Computing (2008)Google Scholar
- 7.Prokop, H.: Cache-oblivious algorithms. Master’s thesis, MIT (1999)Google Scholar
- 8.Ranganathan, P., Adve, S., Jouppi, N.P.: Reconfigurable caches and their application to media processing. In: Proceedings of the 27th Annual International Symposium on Computer Architecture - ISCA 2000 (2000)Google Scholar
- 9.Sutter, H.: The free lunch is over: a fundamental turn toward concurrency in software. Dr. Dobb’s Journal (2005)Google Scholar
- 11.Zhang, C., Vahid, F., Najjar, W.: A highly configurable cache architecture for embedded systems. In: 30th Annual International Symposium on Computer Architecture (2003)Google Scholar