At ARM TechCon this week, SOMNIUM Technologies Limited unveiled DRT, a new software development environment for ARM Cortex based systems that resolves the dilemma embedded developers face between whole global and local program compilation and linking.
The company is demonstrating its DRT (Device Resequencing Technology) at Booth 817 at ARM Techcon 2014.
Traditionally embedded developers often eschew global for local optimization, which consider only information local to a basic code block. Since basic blocks have no control flow, these optimizations need very little analysis (saving time and reducing storage requirements), but this also means that no information is preserved across jumps. Global optimizations are what are called “intraprocedural methods” and act on whole functions., giving them more information to work with but often makes expensive computations necessary.
According to Dave Edwards, Founder, CEO and CTO of SOMNIUM, unlike other solutions currently available, SOMNIUM’s patent-pending resequencing technology (Figure below ) resolves such dilemmas and provides much greater scope for optimization – resulting in shorter development times, improved performance characteristics and lower associated costs.
Click on image to enlarge.
Early tests have shown that code size reductions of over 20% can be achieved without any impact on performance, he said. .
“Embedded systems developers must ensure that the software they produce is completed on schedule and within budget, while simultaneously making it as streamlined as possible and maximizing its effectiveness,” said Edwards.
The company's new approach is able to acheive this kind of improvement, he said, Edwards, because DRT takes into account not only the processor element of the device but also its underlying memory system.
DRT is different from the traditional GNU compiler and linker based software development tools embedded designers are familier with because of its patent pending device-aware resequencing optimizations techniques.
“These analyze the whole program and identify all instruction and data sequences, as well as the interactions occurring between them and the hardware,” he said. “As this process takes place after existing compilers have applied their optimization techniques, it builds upon traditional compiler optimizations, and integrates easily into code generation flows without the need for modifications.
“Every element of the code generation flow is fully aware of the target device in its entirety, resulting in optimizations beyond those possible with traditional tools and techniques.”
As it is fully automated, he said, human intervention is not required: there is therefore no need for profiler feedback or source code changes. The result is smaller, faster, more efficient and less power hungry designs, produced on time and with less programmer effort.