Composing Multi-Ported Memories on FPGAs

Multi-ported memories are challenging to implement on FPGAs since the block RAMs included in the fabric typically have only two ports. Hence we must construct memories requiring more than two ports, either out of logic elements or by combining multiple block RAMs. We present a thorough exploration and evaluation of the design space of FPGA-based soft multi-ported memories for conventional solutions, and also for the recently proposed Live Value Table (LVT) [LaForest and Steffan 2010] and XOR [LaForest et al. 2012] approaches to unidirectional port memories, reporting results for both Altera and Xilinx FPGAs. Additionally, we thoroughly evaluate and compare with a recent LVT-based approach to bidirectional port memories [Choi et al. 2012].

[1]  Muriel Médard,et al.  XORs in the Air: Practical Wireless Network Coding , 2006, IEEE/ACM Transactions on Networking.

[2]  N. Manjikian Design issues for prototype implementation of a pipelined superscalar processor in programmable logic , 2003, 2003 IEEE Pacific Rim Conference on Communications Computers and Signal Processing (PACRIM 2003) (Cat. No.03CH37490).

[3]  Mazen A. R. Saghir,et al.  Supporting multithreading in configurable soft processor cores , 2007, CASES '07.

[4]  Randy H. Katz,et al.  A case for redundant arrays of inexpensive disks (RAID) , 1988, SIGMOD '88.

[5]  J. Gregory Steffan,et al.  Efficient multi-ported memories for FPGAs , 2010, FPGA '10.

[6]  Vaughn Betz,et al.  Comparing FPGA vs. custom cmos and the impact on processor microarchitecture , 2011, FPGA '11.

[7]  Roberto Carli,et al.  Flexible MIPS soft processor architecture , 2008 .

[8]  Patrick Akl,et al.  Datapath and ISA Customization for Soft VLIW Processors , 2006, 2006 IEEE International Conference on Reconfigurable Computing and FPGA's (ReConFig 2006).

[9]  Jonathan Rose,et al.  Application-specific customization of soft processor microarchitecture , 2006, FPGA '06.

[10]  Mitchell Hayenga The NoX router , 2011, 2011 44th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[11]  Stephan Wong,et al.  A multiported register file with register renaming for configurable softcore VLIW processors , 2010, 2010 International Conference on Field-Programmable Technology.

[12]  Mikko H. Lipasti,et al.  CRAM: Coded registers for amplified multiporting , 2011, 2011 44th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[13]  Rawan Naous,et al.  A Configurable Multi-ported Register File Architecture for Soft Processor Cores , 2007, ARC.

[14]  Alex K. Jones,et al.  An FPGA-based VLIW processor with custom hardware execution , 2005, FPGA '05.

[15]  J. Gregory Steffan,et al.  Multi-ported memories for FPGAs via XOR , 2012, FPGA '12.

[16]  Jason Helge Anderson,et al.  Impact of Cache Architecture and Interface on Performance and Area of FPGA-Based Processor/Parallel-Accelerator Systems , 2012, 2012 IEEE 20th International Symposium on Field-Programmable Custom Computing Machines.

[17]  Stephen Dean Brown,et al.  A Multithreaded Soft Processor for SoPC Area Reduction , 2006, 2006 14th Annual IEEE Symposium on Field-Programmable Custom Computing Machines.

[18]  Stephan Wong,et al.  A VLIW softcore processor with dynamically adjustable issue-slots , 2010, 2010 International Conference on Field-Programmable Technology.