Low Latency Hardware-Accelerated Dynamic Memory Manager for Hard Real-Time and Mixed-Criticality Systems

This paper presents a novel hardware architecture of dynamic memory manager providing memory allocation and deallocation operations. Due to very low and constant latency of these operations with respect to the actual number and location of free blocks of memory, the proposed solution is suitable for hard real-time and mixed-criticality systems. The proposed hardware-accelerated memory manager implements Worst-Fit algorithm for selection of a suitable free block of memory that can be used by the external environment, e.g. CPU or any custom hardware. The proposed solution uses hardware-accelerated max queue, which is a data structure that continuously provides the largest free memory block in two clock cycles regardless of the actual number or constellation of available free blocks. The proposed memory manager was verified using simplified version of UVM and applying billions of randomly generated instructions as test inputs. A synthesis into Intel FPGA Cyclone V was performed, and the synthesis results are presented as well. The memory manager was also synthesized into 28 nm technology with 1 GHz clock frequency and the power supply voltage of 0.9 V. The ASIC synthesis results show that the proposed memory manager consumes additional chip area from 35% to 70% of the managed memory.

[1]  Ismael Ripoll,et al.  Dynamic Memory Management for Embedded Real-Time Systems , 2006, DIPES.

[2]  R. Cayssials,et al.  Real-time scheduling coprocessor for NIOS II processor , 2012, 2012 VIII Southern Conference on Programmable Logic.

[3]  Johan Stärner,et al.  Real-time scheduling co-processor in hardware for single and multiprocessor systems , 1996, Proceedings of EUROMICRO 96. 22nd Euromicro Conference. Beyond 2000: Hardware and Software Design Strategies.

[4]  Oliver Sinnen,et al.  Improving application performance with hardware data structures , 2010, 2010 IEEE International Symposium on Parallel & Distributed Processing, Workshops and Phd Forum (IPDPSW).

[5]  Kang G. Shin,et al.  Scalable Hardware Priority Queue Architectures for High-Speed Packet Switches , 2000, IEEE Trans. Computers.

[6]  Soo-Mook Moon,et al.  Java Memory Allocation with Lazy Worst Fit for Small Objects , 2005, Comput. J..

[7]  J. Morris Chang,et al.  Upper Bounds for Dynamic Memory Allocation , 2010, IEEE Transactions on Computers.

[8]  Bhagirath Narahari,et al.  Real-Time Scheduling with Hardware Data Structures , 2010 .

[9]  Carter Bays,et al.  A comparison of next-fit, first-fit, and best-fit , 1977, CACM.

[10]  Jordan Gergov,et al.  Algorithms for compile-time memory optimization , 1999, SODA '99.

[11]  Mathai Joseph,et al.  Real-time systems - specification, verification and analysis , 1995, Prentice Hall International series in computer science.

[12]  Alan Burns,et al.  Real-Time Systems and Programming Languages , 2009 .

[13]  Giorgio Buttazzo,et al.  Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications , 1997 .

[14]  Peter Marwedel,et al.  Embedded system design , 2010, Embedded Systems.

[15]  J. Morris Chang,et al.  A study of best-fit memory allocators , 2005, Comput. Lang. Syst. Struct..

[16]  Chanik Park,et al.  Real-time scheduling in heterogeneous dual-core architectures , 2006, 12th International Conference on Parallel and Distributed Systems - (ICPADS'06).

[17]  Richard P. Brent,et al.  Efficient implementation of the first-fit strategy for dynamic storage allocation , 1989, TOPL.

[18]  Arnaldo S. R. Oliveira,et al.  Hardware Co-Processor for the OReK Real-Time Executive , 2010 .

[19]  Paul R. Wilson,et al.  The memory fragmentation problem: solved? , 1998, ISMM '98.

[20]  Rajib Mall Real-Time Systems: Theory and Practice , 2009 .

[21]  Andrew S. Cromarty,et al.  "Fast" Is Not "Real-Time": Designing Effective Real-Time AI Systems , 1985, Other Conferences.

[22]  Neil W. Bergmann,et al.  A Hardware Scheduler Based on Task Queues for FPGA-Based Embedded Real-Time Systems , 2015, IEEE Transactions on Computers.

[23]  Ulrik Pagh Schultz,et al.  HartOS - A hardware implemented RTOS for hard real-time applications , 2012, PDeS.

[24]  Benjamin G. Zorn,et al.  Using lifetime predictors to improve memory allocation performance , 1993, PLDI '93.

[25]  Pradip K. Srimani,et al.  Worst case performance of weighted buddy systems , 1987, Acta Informatica.

[26]  Fawnizu Azmadi Hussin,et al.  SEOS: Hardware Implementation of Real-Time Operating System for Adaptability , 2013, 2013 First International Symposium on Computing and Networking.

[27]  Xue Liu,et al.  Hardware scheduler of Real-time Operating System , 2013 .

[28]  Daniel S. Hirschberg,et al.  A class of dynamic memory allocation algorithms , 1973, CACM.

[29]  Rivalino Matias,et al.  An Experimental Study on Memory Allocators in Multicore and Multithreaded Applications , 2011, 2011 12th International Conference on Parallel and Distributed Computing, Applications and Technologies.