MARC II: A parametrized speculative multi-ported memory subsystem for reconfigurable computers

We describe a parameterized memory system suitable as target for automatic high-level language to hardware compilers for reconfigurable computers. It fully supports the spatial computation paradigm by allowing the realization of each memory operator by a dedicated hardware memory port. Inter-port coherency is maintained only for those ports that actually require it, and efficient speculative execution is enabled by a dynamic scheme for arbitrating access to shared resources (such as main memory), relying on techniques inspired by the branch prediction of conventional software-programmable processors.

[1]  David Woods Coherent Shared Memories for FPGAs , 2009 .

[2]  Yale N. Patt,et al.  Alternative implementations of two-level adaptive branch prediction , 1992, ISCA '92.

[3]  Andreas Koch,et al.  Architectures and Execution Models for Hardware/Software Compilation and Their System-Level Realization , 2010, IEEE Transactions on Computers.

[4]  David Kaeli,et al.  Speculative Execution In High Performance Computer Architectures (Chapman & Hall/Crc Computer & Information Science Series) , 2005 .

[5]  Michael Hind,et al.  Which pointer analysis should I use? , 2000, ISSTA '00.

[6]  Andreas Koch,et al.  A Flexible Compute and Memory Infrastructure for High-Level Language to Hardware Compilation , 2010, 2010 International Conference on Field Programmable Logic and Applications.

[7]  Antonio González,et al.  Speculative multithreaded processors , 1998, ICS '98.

[8]  Onur Mutlu,et al.  Techniques for bandwidth-efficient prefetching of linked data structures in hybrid prefetching systems , 2009, 2009 IEEE 15th International Symposium on High Performance Computer Architecture.

[9]  First the Tick , Now the Tock : Intel ® Microarchitecture ( Nehalem ) Introducing a New Dynamically and Design-Scalable Microarchitecture , 2009 .

[10]  Jeff Mason,et al.  CHiMPS: A C-level compilation flow for hybrid CPU-FPGA architectures , 2008, 2008 International Conference on Field Programmable Logic and Applications.

[11]  Andreas Koch,et al.  Memory Access Schemes for Configurable Processors , 2000, FPL.

[12]  Kenneth E. Batcher,et al.  Sorting networks and their applications , 1968, AFIPS Spring Joint Computing Conference.

[13]  Andrew A. Kennings,et al.  Symmetric multiprocessing on programmable chips made easy , 2005, Design, Automation and Test in Europe.

[14]  Andreas Koch,et al.  Memory access parallelisation in high-level language compilation for reconfigurable adaptive computers , 2008, 2008 International Conference on Field Programmable Logic and Applications.

[15]  David J. Lilja,et al.  Exploiting the Prefetching Effect Provided by Executing Mispredicted Load Instructions , 2002, Euro-Par.

[16]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[17]  David A. Wood,et al.  TokenTM: Efficient Execution of Large Transactions with Hardware Transactional Memory , 2008, 2008 International Symposium on Computer Architecture.

[18]  David Kaeli,et al.  Speculative execution in high performance computer architectures , 2005 .