Innovations in MCU design enable higher performance and smaller code size
Evolving user expectations are placing increasingly high cost and performance pressures on industrial manufacturers. Real-time performance has always been an important aspect of industrial designs, and increasingly, industrial designs are using sensors to monitor real-world signals such as temperature, pressure, flow, sound, and position. Modern microcontrollers (MCUs) need to be able to handle the advanced signal processing that is required to make sense of these changing signals in real-time. To accomplish that, modern MCUs draw on the strengths of traditional architectures such as advanced interrupt handlers, pipelining, complex instructions, power management and supervisory functions, accumulators, and floating point hardware in order to deliver the benefits of real-time performance including capabilities for digital signal processing (DSP)and floating point math while also minimizing code size and power consumption. In other words, innovative and holistic design practices targeted at creating highly efficient MCUs are required.
One approach to minimizing code size and achieving highly efficient MCUs is through dedicated instructions. Modern MCUs such as the Renesas RXFamily of 32-bit MCUs have an instruction set architecture (ISA) that contains dedicated instructions for DSP and floating point maththat enable fast and efficient processing of those tasks. The RX instructions draw on traditional CISC techniques, which includemultipleinstruction types, variable length instructions, and multiple addressing modes that allow the instructions to be extremely efficient and operate directly on registers and memory. For example, using this approach, a floating-point divide operation can occur in one instruction whereas it would take over one hundred instructions using a traditional architecture without built-in floating point math capabilities.
Another way to minimize code size with modern MCUs is to analyze typical application programs and assign the shortest instruction codes to the most commonly used instructions. For instance, the most commonly used instruction in embedded applications is the “move” instruction. In traditional RISC architectures, the move instruction is implemented using load and store instructions to move data between registers and memory. Even in optimized RISC architectures, which have two-byte instruction lengths, this requires4 bytes of code to execute the move. However, in modern MCU architectures that have an optimized move instruction, it is possible to execute the same move operation in half the code size.Why does it matter? Because these code size savings add up fast, and ultimately the application code must be placed into memory. Efficient application designs that can get by with smaller code sizes will require less system memory and therefore will be less expensive.
As signal-processing gets more heavily used in today’s industrial applications, restrictions in traditional MCU architectures begin to surface. For example, traditional RISC architectures result in larger-than-needed code sizes and traditional DSPs have higher-than-needed power consumption levels. Modern MCUs need to deliver new levels of performance,such as real-time signal processing and floating point math, while at the same time meeting tight cost and power budgets. The best MCU platforms draw on the strengths of traditional architectures and take a holistic design approach,which enables them to increase performance-adding capabilities, such as DSP and floating point math, while at the same time minimizing code size and power consumption.
A holistic design approach involves taking a system level perspective and implementing features in a manner which results in best overall system behavior. For example, by implementing an inline floating point unit (FPU) such that the FPU is able to operate directly on the general registers it is possible to remove the load and store steps which would be required to move data between FPU registers and general registers. With an inline FPU implementation it’s possible to improve performance while at the same timeminimize code size and power consumption.
Microcontrollers are not all the same. Even microcontrollers with similar feature sets can have very different behavior. Facing pressure to both increase performance and reduce cost, industrial designers can take advantage of Modern MCU architectures and those which have been designed using a holistic design methodology offer the highest levels of efficiency. In applications where cost and power are major factors, efficiency is a very good thing indeed.