Abstract
As explained in Chap. 2, the problem of optimizing the design of dynamic embedded systems lays on exploiting as much as possible static (design-time) knowledge on the applications, but still leaving space for run-time considerations that allow tackling dynamic variations without resorting to worst case solutions. This requires extensive information about the static and dynamic characteristics of the applications. However, there is not a standard definition or representation of software metadata to typify the characteristics of the dynamic data access behavior of applications because of varying inputs.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
“Orthogonal” and “independent of each other” are used interchangeably in the text.
- 2.
This is an important factor when using the profiling techniques proposed in this chapter. The fact that every access to every dynamic object in the application is logged introduces a high overhead on execution time. The case study shown in this chapter is based on network traces that were collected off-line and thus the whole activity of the system can be replayed using a notion of “virtual execution time” that is independent from the actual “wall time” that it takes to run the experiments. However, for cases where the behavior of the system cannot be analyzed without a real notion of time (i.e., systems where the behavior changes subject to real-time conditions), more advanced profiling techniques out of the scope of this chapter would be needed. For example, the memory subsystem could be augmented during development with a parallel structure to log the different data accesses in real-time, as presented in [40].
- 3.
This “perfect” solution is calculated by selecting the optimal DDT combination for each input case in isolation. Then, the configuration selected is compared against each of them to calculate how far it lies from the optimal for each input case.
- 4.
Even if the \(0\) Byte TCP segment is empty, according to the rules of the C/C++ programming language, an allocation of zero bytes is valid and must return a valid (not NULL) object. However, the actual size of the object is zero bytes and the application cannot access any bytes at this address. Indeed, the previous versions of the C++ standard did not require that a distinct block was returned for zero-size blocks. Based on this fact, an additional optimization may be introduced in the memory manager to ease the allocation of zero-byte blocks: the memory manager may use a fixed block to host all of these requests. Actually, this method could be used to detect application errors during the developing phase by making this special block access-protected.
- 5.
This weight is calculated taking into account the number of memory accesses that are logged between the MallocBegin and MallocEnd profiling tokens, and between the FreeBegin and FreeEnd ones. These accesses correspond to the work that the memory manager has to do in order to handle each application request. The fraction of accesses that correspond to the overhead of doing memory management, i.e., their weight, is obtained dividing this number between the total number of memory accesses.
- 6.
This improvement refers to the energy consumption in the memory subsystem. It is small because the processor and the DMA access the DRAM concurrently and, as the graph shows, there is a slight increase of row activations. The penalty in energy consumption of these additional row activations masks the benefits obtained by using the DMA. However, the total energy consumption of the system may be reduced much more because first, the DMA is more efficient accessing the memory than the processor and, second, the number of cycles that the processor spends accessing the memory is reduced, potentially allowing it to finish other tasks sooner.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
Copyright information
© 2015 Springer International Publishing Switzerland
About this chapter
Cite this chapter
Atienza Alonso, D. et al. (2015). Profiling and Analysis of Dynamic Applications. In: Dynamic Memory Management for Embedded Systems. Springer, Cham. https://doi.org/10.1007/978-3-319-10572-7_3
Download citation
DOI: https://doi.org/10.1007/978-3-319-10572-7_3
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-10571-0
Online ISBN: 978-3-319-10572-7
eBook Packages: EngineeringEngineering (R0)