ABSTRACT
Developers accelerating applications on FPGAs or other reconfigurable logic have nothing but raw memory devices in their standard toolkits. Each project typically includes tedious development of single-use memory management. Software developers expect a programming environment to include automatic memory management. Virtual memory provides the illusion of very large arrays and processor caches reduce access latency without explicit programmer instructions.
LEAP scratchpads for reconfigurable logic dynamically allocate and manage multiple, independent, memory arrays in a large backing store. Scratchpad accesses are cached automatically in multiple levels, ranging from shared on-board, RAM-based, set-associative caches to private caches stored in FPGA RAM blocks. In the LEAP framework, scratchpads share the same interface as on-die RAM blocks and are plug-in replacements. Additional libraries support heap management within a storage set. Like software developers, accelerator authors using scratchpads may focus more on core algorithms and less on memory management.
- Arvind. Bluespec: A Language for Hardware Design, Simulation, Synthesis and Verification. In MEMOCODE '03: Proceedings of the First ACM and IEEE International Conference on Formal Methods and Models for Co-Design, page 249. IEEE Computer Society, 2003. Google ScholarDigital Library
- Z. Budimlic, A. M. Chandramowlishwaran, K. Knobe, G. N. Lowney, V. Sarkar, and L. Treggiari. Declarative Aspects of Memory Management in the Concurrent Collections Parallel Programming Model. In DAMP '09: Proceedings of the 4th Workshop on Declarative Aspects of Multicore Programming, pages 47--58. ACM, 2008. Google ScholarDigital Library
- N. Dave, M. C. Ng, M. Pellauer, and Arvind. A design ow based on modular refinement. In Formal Methods and Models for Codesign (MEMOCODE), 2010 8th IEEE/ACM International Conference on, pages 11--20, Jul. 2010.Google Scholar
- M. B. Gokhale, J. M. Stone, J. Arnold, and M. Kalinowski. Stream-Oriented FPGA Computing in the Streams-C High Level Language. In FCCM '00: Proceedings of the 2000 IEEE Symposium on Field-Programmable Custom Computing Machines, page 49. IEEE Computer Society, 2000. Google ScholarDigital Library
- S. S. Huang, A. Hormati, D. F. Bacon, and R. Rabbah. Liquid Metal: Object-Oriented Programming Across the Hardware/Software Boundary. In ECOOP '08: Proceedings of the 22nd European conference on Object-Oriented Programming, pages 76--103. Springer-Verlag, 2008. Google ScholarDigital Library
- W. W. Hwu and P. P. Chang. Achieving High Instruction Cache Performance with an Optimizing Compiler. SIGARCH Comput. Archit. News, 17(3):242--251, 1989. Google ScholarDigital Library
- C.-K. Luk and T. C. Mowry. Cooperative Prefetching: Compiler and Hardware Support for Effective Instruction Prefetching in Modern Processors. In MICRO 31: Proceedings of the 31st Annual ACM/IEEE International Symposium on Microarchitecture, pages 182--194. IEEE Computer Society Press, 1998. Google ScholarDigital Library
- W. A. Najjar, W. Böhm, B. A. Draper, J. Hammes, R. Rinker, J. R. Beveridge, M. Chawathe, and C. Ross. High-Level Language Abstraction for Reconfigurable Computing. Computer, 36(8):63--69, 2003. Google ScholarDigital Library
- A. Parashar, M. Adler, K. Fleming, M. Pellauer, and J. Emer. LEAP: A Virtual Platform Architecture for FPGAs. In CARL '10: The 1st Workshop on the Intersections of Computer Architecture and Reconfigurable Logic, 2010.Google Scholar
- A. Parashar, M. Adler, M. Pellauer, and J. Emer. Hybrid CPU/FPGA Performance Models. In WARP '08: The 3rd Workshop on Architectural Research Prototyping, 2008.Google Scholar
- M. Pellauer, M. Adler, D. Chiou, and J. Emer. Soft Connections: Addressing the Hardware-Design Modularity Problem. In DAC '09: Proceedings of the 46th Annual Design Automation Conference, pages 276--281. ACM, 2009. Google ScholarDigital Library
- J. Simsa and S. Singh. Designing Hardware with Dynamic Memory Abstraction. In FPGA '10: Proceedings of the 18th Annual ACM/SIGDA International Symposium on Field Programmable Gate Arrays, pages 69--72. ACM, 2010. Google ScholarDigital Library
- Xilinx, Inc. UG363: Virtex-6 FPGA Memory Resources User Guide. 2010.Google Scholar
Index Terms
- Leap scratchpads: automatic memory and cache management for reconfigurable logic
Recommendations
Hardware-software co-optimization of memory management in dynamic languages
ISMM 2018: Proceedings of the 2018 ACM SIGPLAN International Symposium on Memory ManagementDynamic programming languages are becoming increasingly popular, yet often show a significant performance slowdown compared to static languages. In this paper, we study the performance overhead of automatic memory management in dynamic languages. We ...
Enabling Hybrid PCM Memory System with Inherent Memory Management
RACS '16: Proceedings of the International Conference on Research in Adaptive and Convergent SystemsReplacing the traditional volatile main memory, e.g., DRAM, with a non-volatile phase change memory (PCM) has become a possible solution to reduce the energy consumption of computing systems. To further reduce the bit cost of PCM, the development trend ...
Enabling Efficient and Scalable Hybrid Memories Using Fine-Granularity DRAM Cache Management
Hybrid main memories composed of DRAM as a cache to scalable non-volatile memories such as phase-change memory (PCM) can provide much larger storage capacity than traditional main memories. A key challenge for enabling high-performance and scalable ...
Comments