FPGA implementation of a configurable cache/scratchpad memory with virtualized user-level RDMA capability

  • Authors:
  • George Kalokerinos;Vassilis Papaefstathiou;George Nikiforos;Stamatis Kavadias;Manolis Katevenis;Dionisios Pnevmatikatos;Xiaojun Yang

  • Affiliations:
  • Institute of Computer Science, FORTH, Heraklion, Crete, Greece;Institute of Computer Science, FORTH, Heraklion, Crete, Greece;Institute of Computer Science, FORTH, Heraklion, Crete, Greece;Institute of Computer Science, FORTH, Heraklion, Crete, Greece;Institute of Computer Science, FORTH, Heraklion, Crete, Greece;Institute of Computer Science, FORTH, Heraklion, Crete, Greece;Institute of Computer Science, FORTH, Heraklion, Crete, Greece

  • Venue:
  • SAMOS'09 Proceedings of the 9th international conference on Systems, architectures, modeling and simulation
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

We report on the hardware implementation of a local memory system for individual processors inside future chip multiprocessors (CMP). It intends to support both implicit communication, via caches, and explicit communication, via directly accessible local ("scratchpad") memories and remote DMA (RDMA). We provide run-time configurability of the SRAM blocks near each processor, so that part of them operates as 2nd level (local) cache, while the rest operates as scratchpad. We also strive to merge the communication subsystems required by the cache and scratchpad into one integrated Network Interface (NI) and Cache Controller (CC), in order to economize on circuits. The processor communicates with the NI in user-level, through virtualized command areas in scratchpad; through a similar mechanism, the NI also provides efficient support for synchronization, using two hardware primitives: counters, and queues. We describe the block diagram, the hardware cost, and the latencies of our FPGA-based prototype implementation, which integrates four MicroBlaze processors, each with 64 KBytes of local SRAM, a crossbar NoC, and a DRAM controller on a Xilinx-5 FPGA. One-way, end-to-end, user-level communication completes within about 30 clock cycles for short transfer sizes.