License: Creative Commons Attribution 3.0 Unported license (CC BY 3.0)
When quoting this document, please refer to the following
DOI: 10.4230/OASIcs.NG-RES.2021.3
URN: urn:nbn:de:0030-drops-134790
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2021/13479/
Go to the corresponding OASIcs Volume Portal


Jungklass, Philipp ; Berekovic, Mladen

Static Allocation of Basic Blocks Based on Runtime and Memory Requirements in Embedded Real-Time Systems with Hierarchical Memory Layout

pdf-format:
OASIcs-NG-RES-2021-3.pdf (0.4 MB)


Abstract

Modern microcontrollers for safety-critical real-time systems use a hierarchical memory system to increase execution speed and memory capacity. For this purpose, flash memories, which offer high capacity at low transfer rates, are combined with scratchpad memories, which provide high access speed at low memory capacities. The main goal is to use both types of memory in such a way that their advantages are optimally exploited. The target is to allocate runtime-intensive code fragments with low memory requirements to the fast scratchpad memories. Previous approaches to separate program code on system memories consider the executed functions as the smallest logical unit. This is contradicted by the fact that not all parts of a function have the same computing time in relation to their memory usage. This article introduces a procedure that automatically analyses the compiled source code and identifies runtime intensive fragments. For this purpose, the translated code is executed in an offline simulator and the maximum repetition for each instruction is detected. This information is used to create logical code fragments called basic blocks. This is repeated for all functions in the overall system. During the analysis of the functions, the dependencies between them are also extracted and a corresponding call-graph with the call frequencies is generated. By combining the information from the call graph and the evaluation of the basic blocks, a prognosis of the computing load of the respective code blocks is created, which serves as base for the distribution into the fast scratchpad memories. To verify the described procedure, EEMBC’s CoreMark is executed on an Infineon AURIX TC29x microcontroller, in which different scratchpad sizes are simulated. It is demonstrated that the allocation of basic blocks scales significantly better with smaller memory sizes than the previous function-based approach.

BibTeX - Entry

@InProceedings{jungklass_et_al:OASIcs:2021:13479,
  author =	{Philipp Jungklass and Mladen Berekovic},
  title =	{{Static Allocation of Basic Blocks Based on Runtime and Memory Requirements in Embedded Real-Time Systems with Hierarchical Memory Layout}},
  booktitle =	{Second Workshop on Next Generation Real-Time Embedded Systems (NG-RES 2021)},
  pages =	{3:1--3:14},
  series =	{OpenAccess Series in Informatics (OASIcs)},
  ISBN =	{978-3-95977-178-8},
  ISSN =	{2190-6807},
  year =	{2021},
  volume =	{87},
  editor =	{Marko Bertogna and Federico Terraneo},
  publisher =	{Schloss Dagstuhl--Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops.dagstuhl.de/opus/volltexte/2021/13479},
  URN =		{urn:nbn:de:0030-drops-134790},
  doi =		{10.4230/OASIcs.NG-RES.2021.3},
  annote =	{Keywords: Memory Architecture, Memory Management, Real-time Systems}
}

Keywords: Memory Architecture, Memory Management, Real-time Systems
Collection: Second Workshop on Next Generation Real-Time Embedded Systems (NG-RES 2021)
Issue Date: 2021
Date of publication: 14.01.2021


DROPS-Home | Fulltext Search | Imprint | Privacy Published by LZI