Step-by-Step Simulation and Statistical Analysis of C and Assembly Programs for MSP430

Many low-end embedded devices, such as miniature sensors and actuators, are equipped with 8 or 16-bit microcontrollers. The computational capabilities of these microcontrollers are far below that of more powerful 32-bit processors, which is not only because of lower clock frequencies, but also due to the lack of advanced architectural and micro-architectural features like branch prediction or superscalar execution. Therefore, the quality of C compilers for these platforms is particularly crucial to achieve acceptable software performance. However, results in the recent literature show that optimizing C compilers for the 16-bit MSP430 architecture of Texas Instruments are, in terms of performance, still a lot worse (up to an order of magnitude) than hand-tuned Assembly code, even when the C sources have been carefully optimized. We present in this paper a simulation and analysis tool that can help compiler designers and software developers to spot performance deficiencies in C code. Using two cryptographic permutations, namely Ascon and Photon, as case study, we demonstrate that the tool is capable to pinpoint three shortcomings of the code-optimization backend of version 4.6.3 of MSPGCC. More concretely, we show that the produced code is sub-optimal when it comes to register allocation, the rotation of multi-word operands, and addressing modes for operations that depend heavily on static look-up tables.

Authors

Institutions

Publication Details

Published
2024-08-19
DOI
https://doi.org/10.1109/ficloud62933.2024.00049
Primary Topic
Manufacturing Process and Optimization
Type
article
Field-Weighted Citation Impact
0.00
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Step-by-Step Simulation and Statistical Analysis of C and Assembly Programs for MSP430

Christian Franck, Johann Großschädl
Manufacturing Process and Optimization
article

Step-by-Step Simulation and Statistical Analysis of C and Assembly Programs for MSP430

Christian Franck, Johann Großschädl
article en

Abstract

Many low-end embedded devices, such as miniature sensors and actuators, are equipped with 8 or 16-bit microcontrollers. The computational capabilities of these microcontrollers are far below that of more powerful 32-bit processors, which is not only because of lower clock frequencies, but also due to the lack of advanced architectural and micro-architectural features like branch prediction or superscalar execution. Therefore, the quality of C compilers for these platforms is particularly crucial to achieve acceptable software performance. However, results in the recent literature show that optimizing C compilers for the 16-bit MSP430 architecture of Texas Instruments are, in terms of performance, still a lot worse (up to an order of magnitude) than hand-tuned Assembly code, even when the C sources have been carefully optimized. We present in this paper a simulation and analysis tool that can help compiler designers and software developers to spot performance deficiencies in C code. Using two cryptographic permutations, namely Ascon and Photon, as case study, we demonstrate that the tool is capable to pinpoint three shortcomings of the code-optimization backend of version 4.6.3 of MSPGCC. More concretely, we show that the produced code is sub-optimal when it comes to register allocation, the rotation of multi-word operands, and addressing modes for operations that depend heavily on static look-up tables.

University of Luxembourg (LU)
Openalex Percentile: Top 71%
Manufacturing Process and Optimization
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.