Power consumption measurement aids microcontroller selection

Publisher:WhisperingSongLatest update time:2014-09-18 Source: ednchinaKeywords:Cache Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere

  When design engineers select microcontrollers for low-power applications , chip vendor data sheets provide limited help. The data sheets do not provide industry-standard power consumption evaluation methods, nor do they explain how features such as cache and integrated floating-point units affect energy consumption and performance.

  When engineers try to compare processor cores that include a system-on-chip, it becomes a challenge to explain the benefits of these components or units. Vendors also use the typical current consumption value of the chip to measure their microcontrollers, but this measurement hardly explains the energy consumption of different programs running in the application. To solve this problem, the Embedded Processor Benchmark Consortium (EEMBC) has proposed a method to measure energy consumption under a specific load. In this article, we will use a microcontroller with an ARM-9 core as a test example to illustrate the principle of this test method.

  Standardized methods and premises

  Generally speaking, EEMBC measures performance indicators that focus on processor behavior and develops measurement benchmarks that reflect the real environment of embedded applications. Since it is very important to be able to verify the repeatability of all performance and power measurements , the measurement methods must also meet common standards. EnergyBench is a measurement method developed by EEMBC to provide a

A benchmark tool that gives data on the energy consumed by a processor while running an application.

  Reliability of measurement

  EnergyBench uses the LabVIEW platform and data acquisition card from NI (National Instruments). The DAQ card has multiple differential measurement channels for measuring current and multiple single-ended channels for measuring voltage. EnergyBench uses such a DAQ card to sample voltage and current and uses a trigger channel to synchronize the benchmark measurement of performance.

  EnergyBench has two software modules, one for measuring data (power sampling module) and the other for analyzing the acquired data (analysis module). The software's graphical interface is used to display voltage and current, and there are corresponding control buttons to start data acquisition.

  The benchmark data needs to be loaded into the microcontroller and two GPIOs of the microcontroller are used as handshake signals with the power sampling module. When the benchmark data is loaded, one of the GPIOs is used to notify the microcontroller to start the test and the other to notify the power sampling module. After the benchmark runs for multiple iterations, the analysis module calculates the average energy consumed by each iteration of the benchmark. The benchmark score is an evaluation parameter that can be selected by the manufacturer and can be used together with the performance certification score as an indicator of the energy efficiency of the processor.

LPC3180 is an MCU based on ARM9 core

  Figure 1 LPC3180 is an ARM9-based MCU with 32KB instruction and data caches and a vector floating-point coprocessor unit.

  Measurement results of ARM9

  We chose the LPC3180 microcontroller based on the ARM926EJ core produced by NXP as the measurement object to observe the impact of different processor configurations on energy consumption. The reason for choosing this processor is that it has a large internal memory, 64KB of general memory and 32KB of instruction and data cache. In addition, it also has a vector floating point unit and a low voltage operating mode to reduce power consumption.

Measurement results

  Table 1 lists the results of the measurements. The data shows that the vector floating point unit can reduce energy consumption by a factor of 4.5, while the instruction cache is about 1.4. If we look at the data sheet, we can't know what benefits are gained by consuming too much energy. In terms of extra performance, it is obtained by the vector floating point unit and the large cache. The data in the table also shows that the significance of energy measurement is to know when to decide which processor to choose and which option is important. The total energy consumed by the processor is directly related to the clock frequency used for the task it performs. If the instruction cache is turned off, the program has to fetch instructions from the memory located on the AHB bus. Since the operating frequency of the AHB bus is only half of the processor core frequency, the program runs longer and consumes more energy. If the instruction cache is turned on, the energy consumed by the floating point operation in the corresponding cache algorithm will increase, but the program will run faster because the cache operation is performed at the processor core frequency, resulting in a total energy consumption reduction. When the floating point unit is enabled, it can reduce the workload of the processor and the instruction cache. Although there is only a small increase in energy, the actual overall energy consumption has been greatly reduced.

  Impact of external memory on energy consumption

  For most MCU-based applications, the design of the memory subsystem is a decisive factor affecting performance and energy consumption. When designing a low-power system, the choice of memory subsystem and software design will have a great impact on energy consumption. These choices include the selection of memory, the division of code execution space, and the system's power saving mode.

  In the case of the NXP microcontroller LPC3180, the memory controller interface is dynamic, which reduces power consumption by switching I/O pins while dynamically supporting large memory capacities. Table 2 shows the typical power consumption of four types of memory at the same performance level, as well as a comparison of the actual system performance based on different memory usage. Most microcontrollers have internal SRAM and Flash. The LPC3180 has 64KB of SRAM, and the program runs in it at half the processor frequency, which consumes much less energy than accessing external memory. Specifically, the internal memory consumes about 72μW/MHz, and the current consumed when accessing it continuously at 104MHz is about 7.5mA. Accessing the external memory bus draws a lot of current due to the capacitive load of the board and the memory chip. This makes the partitioning of the code execution space a very important part of low-power design, and the code should run as much as possible inside the chip.

  The benchmark measurements show that there are three components that affect the processor's energy consumption: (1) switching losses, (2) cross-conduction losses, and (3) leakage losses. When benchmarking, the first two are dynamic losses, which represent the majority of the microcontroller's energy consumption.

Keywords:Cache Reference address:Power consumption measurement aids microcontroller selection

Previous article:Analysis of load current measurement methods
Next article:Efficient automotive electronics testing

Latest Test Measurement Articles
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号