Shared Memory Multicore MicroBlaze System with SMP Linux Support

In this work, we present PolyBlaze, a scalable and configurable multicore platform for FPGA-based embedded systems and systems research. PolyBlaze is an extension of the MicroBlaze soft processor, leveraging the configurability of the MicroBlaze and bringing it into the multicore era with Linux Symmetric Multi-Processor (SMP) support. This work details the hardware modifications required for the MicroBlaze processor and its software stack to enable fully validated SMP operations, including atomic operation support, shared interrupts and timers, and exception handling. New in this work, we present a scalable and flexible memory hierarchy optimized for Field Programmable Gate Arrays (FPGAs), which manages atomic operations and provides support for future flexible memory hierarchies and heterogeneous systems. Also new is an in-depth analysis of key performance characteristics, including memory bandwidth, latency, and resource usage. For all system configurations, bandwidth is found to scale linearly with the addition of processor cores until the memory interface is saturated. Additionally, average memory latency remains constant until the memory interface is saturated; after which, it scales linearly with each additional processor core.

[1]  Lesley Shannon,et al.  A configurable framework for investigating workload execution , 2010, 2010 International Conference on Field-Programmable Technology.

[2]  Todd M. Austin,et al.  SimpleScalar: An Infrastructure for Computer System Modeling , 2002, Computer.

[3]  J. Gregory Steffan,et al.  The microarchitecture of FPGA-based soft processors , 2005, CASES '05.

[4]  Dam Sunwoo,et al.  FPGA-Accelerated Simulation Technologies (FAST): Fast, Full-System, Cycle-Accurate Simulators , 2007, MICRO.

[5]  Christoforos E. Kozyrakis,et al.  RAMP: Research Accelerator for Multiple Processors , 2007, IEEE Micro.

[6]  Lesley Shannon,et al.  Polyblaze: From one to many bringing the microblaze into the multicore era with Linux SMP support , 2012, 22nd International Conference on Field Programmable Logic and Applications (FPL).

[7]  Jason Agron,et al.  Building heterogeneous reconfigurable systems with a hardware microkernel , 2009, CODES+ISSS '09.

[8]  Alexandra Fedorova,et al.  Addressing shared resource contention in multicore processors via scheduling , 2010, ASPLOS 2010.

[9]  K. Asanovi,et al.  RAMP Blue : Implementation of a Manycore 1008 Processor FPGA System , 2008 .

[10]  Fredrik Larsson,et al.  Simics: A Full System Simulation Platform , 2002, Computer.

[11]  Bernard Brezzo,et al.  A cycle-accurate, cycle-reproducible multi-FPGA system for accelerating multi-core processor simulation , 2012, FPGA '12.

[12]  No License,et al.  Intel ® 64 and IA-32 Architectures Software Developer ’ s Manual Volume 3 A : System Programming Guide , Part 1 , 2006 .

[13]  Xiang Zou,et al.  Intel nehalem processor core made FPGA synthesizable , 2010, FPGA.

[14]  Hong Wang,et al.  Intel® atom™ processor core made FPGA-synthesizable , 2009, FPGA '09.