Embedded Systems Optimisation
Embedded systems optimisation to maximise performance and differentiation
Embedded system optimisation and trouble-shooting are carefully managed processes that can correct defects, improve system performance, enhance reliability or add new functionality.
The potential of system optimisation to offer different versions of a product for competitive advantage, as well as offering the product in advanced versions at a later time, can bring attractive, commercial advantages for OEMs.
Conversely, performance or reliability problems identified by end-users following product release can be damaging to the company’s reputation, costly and with limited options to resolve.
The need becomes critical where systems carry high thresholds for quality and reliability. A malfunctioning medical device or braking system on a car could have fatal consequences.
So where an existing system is not meeting performance or power targets, or operating reliably, embedded systems optimisation can offer a solution. The result is growth in dependency on system optimisation to achieve innovation and differentiation from devices without compromising performance, reliability, or security.
Changing the embedded system configuration – hardware and software – after installation is however challenging and often costly.
Embedded developers are increasingly being tasked with building powerful deterministic capabilities and processing efficiency into ever smaller, resource-constrained, low-power devices with less time to develop or improve a product, yet increased criticality of systems and heightened end user expectation and more frequent release cycles.
Timescales are typically limited, stakeholders bring varying needs, documentation may be disparate or incomplete, and the need remains for software flexibility to support future extension and evolution – all against uncompromising performance targets.
Our embedded system optimisation expertise
Isolating, identifying and correcting system problems requires specialist expertise.
Pebble Bay offers a range of services to help troubleshoot and optimise your embedded software. This can range from fast turn-round investigation and diagnosis to longer-term strategic product improvement projects.
With more than 30 years of experience in improving embedded systems, we understand the technical and business issues at the core of your problem and can help re-engineer your system to overcome performance or reliability problems.
We advise and implement multiple system optimisation techniques for software performance and reliability improvement against system constraints – performance, reliability, functionality, cost, energy consumption and speed to market.
Delivering embedded system optimisation at all levels of system design, from embedded (real-time) operating systems, optimisations of real-time properties and measurement and analysis techniques relating to resource consumption.
We have exceptional knowledge of compiler functionality and code generation, looking beyond compiler-generated optimised code, and ensuring control of system optimisation.
Optimisation in real-time embedded systems is an area we bring specific expertise; scheduling algorithms, measurement against inaccurate system information and potential issues of heterogeneous optimisation.
We are best suited to troubleshooting and optimising your embedded software. Our expertise, proven process and tools can help you identify and resolve problems more quickly than you could alone.
Embedded systems optimisation brochure
Pebble Bay developed an outstanding quality QNX Gigabit Ethernet driver with PTP support for us. The project was completed on schedule and within budget and overall we were very happy.
Do you have a question about embedded systems optimisation?
Embedded Systems Optimisation FAQs
What are the challenges of embedded systems optimisation?
As each embedded system is different, so too are the optimisation requirements, whether extracting the highest level of performance or energy from a system, or applying a fix to prevent potentially life-endangering consequences.
Many characteristics of an embedded system could derive benefit from optimisation; system timing; code size; RAM usage; energy consumption; power.
There is of course no single, tried and tested approach for optimising an embedded system. The specific characteristic will largely determine the choice of optimisation tools and methods, which could include consideration of the choice of compiler, compiler settings, programming algorithm and techniques, code profilers, disassembling and analysing code or rewriting the programme.
Further, depending on the complexity of the embedded system, the development cycle could potentially be revisited multiple times across the lifecycle.
An RTOS with a modular architecture for example should allow manufacturers to maximise the useful life of the system core to several generations of products by enriching them with new features and capabilities, which increases the return on their investment in the operating system.
Control remains an important optimisation challenge, along with the need to balance fast and small code. Debugging code also presents challenges for systems optimisation, requiring careful tuning for the debug phase and shipping code.
The ideal is that code executed on an embedded system has to be optimised both to utilise available limited resources in way that meets all system requirements.
In practical terms, embedded code is written to make optimum use of processor or compiler features, as well as managing the memory or power requirement. But this invites an unwelcome trade-off when bringing the product to market quickly, risking emergence of performance or reliability problems later in the development process.
How can you manage the return on improvement?
One pervasive practical parameter is that with each optimisation cycle, there is a diminishing return on improvement.
Knowing the point at which effort has become disproportionate to the enhancement is an important commercial concern from a cost and time perspective.
This demands clarity of optimisation targets and optimal parameters for a model from the outset to mitigate this risk. Systematic changes of parameters can determine adequate model configuration.
Baseline measurements are taken at the starting point of any optimisation cycle, to quantify system improvements against resource input, against target levels. System metrics will again differ by project requirement, and could include power dissipation, physical size and manufacturing costs.