Enabling Power Measurements on Renesas H2 Lager Board

Purpose

Power management optimization is becoming a key acceptance criteria for modern high-performance embedded application processor like Renesas RCar-H2.

In order to assess and validate software power management optimizations, a platform shall provide power measurement capabilities.

The purpose of this page is to describe how to enable such power measurements on RCar-H2 Lager Board, by analyzing the board schematics and layout, highlighting where probe points could be added.

This page will start first with a short description of what power measurement means, then analyze the Lager board capabilities with regards to power measurements (with no or minimal board modifications), and conclude with recommendations for next generations.

Note this study was intended to enable the monitoring of the RCar-H2 processor power consumption, but not other external peripherals present on the lager board.

DISCLAIMER

Any hardware modifications described below are done AT YOUR OWN RISK. Baylibre SAS shall not be held responsible and/or accountable of any board damage or alterations that might occur.

Power Measurements

To do power measurements, one needs to be able to measure both the voltage and current:

  • P (Watt) = U (Volt) * I (Ampere)

Additional notes about power measurements:

  • Current and voltage are fluctuating analog variables. Hence, it requires to be sampled at a sufficient rate ( e.g. > 1Ksample/s), otherwise a good amount of consumed energy may be missed.
  • Voltage and current shall be measured at the same time for proper instantaneous power consumption computation.
  • Averaging power consumption of a given amount of [U, I] measurements is done by averaging (U * I). A common error is to average U and I, then compute the Uavg * Iavg
    • Pavg = avg(U * I) != Uavg * Iavg

Measuring the current

To measure current consumption, a shunt resistor shall be placed in series with the power line. Following Ohm's law ( U = R * I, i.e. I = Ushunt / Rshunt), by measuring the voltage drop at the resistor ends and knowing the resistor value, the current can be calculated.

Additional important notes about current consumption:

  • The shunt resistor must be of highest possible precision. Otherwise the measurement will not be accurate. As per Ohm's law, there is is a 1 to 1 ratio between resistor value tolerance and measurement precision. E.g.
    • A 5% resistor leads to a 5% accuracy on current measurement;
    • A 0.1% resistor leads to 0.1% accuracy on current measurement.
  • The value of the shunt resistor shall be selected as low as possible. The higher the value, the higher the voltage drops at resistor ends, thus potentially leading to an out of valid range voltage at component end. To select the right resistor value, one shall:
    • Estimate the maximum current going through the shunt resistor,
    • Compute the maximum voltage drop at shunt resistor ends (U = R * I),
    • Refer to SoC specification to find the acceptable input voltage range,
    • Select a shunt resistor value which does not generate a voltage drop higher than tolerated by the SoC, considering maximum current consumption.

Measuring the voltage

Contrary to current measurement, measuring the voltage usually does not require any extra onboard component, but only 2 test points for the voltage measurement equipment:

  • Vcc / Vdd
  • Gnd / Vss

Lager Schematics & Layout Review

Description

RCar-H2 processor Lager board schematics and layout was fully reviewed in order to:

  • Retrieve the power distribution tree,
  • Assess which power rails may be accessible for power measurements,
  • Assess which power rails may be relevant for power measurements,
  • Deliver recommendations for next generations.

Please follow the 2 links below to download 2 representations of the RCar-H2 processor Lager board power distribution:

For each power connection, we reviewed the schematics and layout. We used 3 different colors to rank the board modification level of difficulty:

  • Green: requiring easy soldering adaptation
  • Orange: requiring medium complexity modification
  • Red: not possible or requiring very complex modification

Analysis

NB: regarding voltage measurement, the technique is identical for each power rail, so it will not be explicitly described below. One end of the voltage probe shall be connected to the Lager Board ground, the other to the shunt resistor end, the one that is the closest to H2 processor.

VDD_DVFS (1.0V, scalable)

H2 Cortex-A15 CPU0/CPU1/CPU2/CPU3 & Peripherals (SCU, L2$ controller) supports DVFS (Dynamic Voltage & Frequency Scaling) and are powered by VDD_DVFS voltage rail. Therefore this is a critical rail for CPU power optimization. The Lager board is already equipped with a shunt resistor (R584, 10mohm, 3W). hence the only remaining thing to do is to connect the measurement equipment to the R584 ends. This is pretty much the best possible situation, as:

  • The shunt resistor is already calibrated and mounted on the board.
  • The rail powers only one item (H2 Cortex-A15 cluster)

Only missing item would be additional test points to avoid having to solder wires on shunt resistor.

D1.0V

This rails powers H2 Cortex-A7 CPU4/CPU5/CPU6/CPU6 + other peripherals (RCar-H2 documentation does not explicitly list all the internal peripherals connected to this rail), and SATA[0:1]. The Lager board is already equipped with a shunt resistor (R601, 5mohm, 0.5W) on this rail. Hence the only remaining thing to do is to connect the measurement equipment to the R601 ends. However even if the Lager board is equipped with the necessary shunt resistor, still the measurement on this rail will be difficult to analyze, as it powers many different peripherals at the same time. In practice, it will not be possible to distinguish (isolate) consumption from individual peripherals; but it will still be possible to track that peripherals are powered on/off on purpose at runtime.

D3.3V

This rail is used to power several Lager board peripherals, including RCar H2 processor (VD331, VCCQ, VCCQ_SD1, VCCQ_SD3).

Power rails dedicated to RCar H2 processor (VCCQ_SD1, VCCQ_SD3, …) are equipped with 0ohm resistor (R71, R74, R76) that can be easily replaced by shunt resistor. Therefore, Lager board does not limit the power assessment of RCar H2 processor.

However, when considering external peripherals, power measurement is considered of high complexity:

  • Most rails are directly wired to the power source (e.g. eMMC, HDMI OUT, …)
  • Some rails also require an extra shunt resistor to be inserted using inductance pads (e.g. L25, L26, …).

Note R602 (5mohm, 0.5W) shunt resistor can be used to measure global power consumption on this rail, with the limitation of not being able to isolate individual contributions.

D1.8V

This rails powers many H2 peripherals (DDR3 controller (DBSC), SATA[0:1], CPG, Display Unit (DU, including DU_LVDS[0-1]), MLB+, MLB, USB2.0 Channel [0:2]). The Lager board is already equipped with a shunt resistor (R603, 5mohm, 0.5W) on this rail. Hence the only remaining thing to do is to connect the measurement equipment to the R603 ends. In addition to this “global” R603 shunt resistor measuring the total current consumed, it also features a 1ohm resistor (e.g. R63) on almost all “individual” rails. Hence it is possible to both retrieve the total power consumption on this rail and isolate sub-rails consumption, with no board modification.

Note however that some rails like DDR_MSTB_VREF, VCCQ18, VD181, VDDQ_M1A, oscillators and glue components have direct wiring, making it impossible to isolate from others.

Note also that rails VDDA_SATA[0-1] & AVDD does not feature a shunt resistor but an inductance. Hence an additional shunt resistor will be required, so board modification complexity is raised to medium for these rails.

Having such fine-grained measurement is always appreciated, but may then become tedious when a single peripheral gets powered by several different lines, like for example the DDR3 controller (14 rails). In such situation, our recommendation would be to wherever possible add one extra shunt resistor per peripheral, to be able to measure peripheral total consumption in one shot.

On this specific D1.8V rail, one last recommendation would be to keep H2 processor and other external Lager board peripherals power rails isolated, i.e. use D1.8V_PERI to supply oscillators and Lager glue components/pull-ups.

D1.8V_PERI

This voltage rail is used to power some H2 board peripherals like HDMI, Video decoder, SDCard, oscillator. Power measurement of this rail is possible, but requires a little bit more work, as no shunt resistor is available:

  • Jumper JP3 may be used to insert a shunt resistor,
  • Oscillator & Video Decoder DVDD current consumptions cannot be isolated as directly wired,
  • HDMI IN DVDD_D1.8V may be measured by replacing R399 0ohm resistor by a shunt resistor,
  • Other rails may be measured by reusing the inductance pads to insert an extra shunt resistor.

But as none of these rails powers H2 processor, this higher level of complexity is not a limiting factor in terms of H2 power optimization.

VCCQ1.8V

This rail is not measurable. As a consequence, it will not be possible to do IO leakage optimization (impossible to track miss-configured IO, shortcuts, double pull-ups, pull up/down conflicts, …). We strongly recommend to add power measurement capability on this rail, as leakage optimization is key in overall platform power optimization.

VLDO3_SD0 / VCCQ_SD0 & VLDO4_SD2 / VCCQ_SD2

These rails are used to power SDCard0 & SDCard2 peripherals of H2 processor. Mounted 0ohm resistors like R75/R101/R77/R89 could be replaced by shunt resistors, so it is considered easy to do power measurement on these rails.

VDDCORE

This rail is not measurable, but is not used to power RCar H2 processor. Therefore it shouldn't impact H2 processor power optimization work.

D5.0V

This rail is used to power several Lager board peripherals, including RCar H2 processor (VDD_DVFS, VDDQ_M0BKUP).

Power measurement of Lager board peripherals on this rail is of medium or high complexity. Some are directly wired to the power source (e.g. LVDS_MON_POWER, SDIF_POWER, …) or require an extra shunt resistor to be inserted using inductance pads (e.g. L2, L6, …).

On the other hand, power rails dedicated to RCar H2 processor (VDD_DVFS, VDDQ_M0BKUP) are equipped with shunt resistors (R584) or 0ohm resistor (R93), making it easy to do power measurements.

D1.5V

This voltage rail is dedicated to powering RCar H2 processor external memories (DDR3). It features a shunt resistor (R585, 10mohm, 3W), hence enabling power measurement.

However, 4 rails out of 5 (DDR_VREF, VDDQ_M0, VDDQ_M1, and DDR memories) have direct connection with no 0ohm resistor nor test points. Hence only the total consumption will be measured, individual contributions can not be. This could be problematic with regards to DDR power optimizations, as there will be no way to make sure DDR low-power modes will be entered on purpose.

Conclusion

The Lager board is actually pretty well designed and enabled for power measurements: critical power rails do already feature the necessary shunt resistor. Hence we believe that this board can be used for RCar H2 processor power optimization work, with no sophisticated hardware rework.

Nevertheless, some areas may still be improved for next generations:

  • VCCQ_ISO cannot be measured, and it is the most important limitation found during this study: it prevents from doing IO power optimization, which could be problematic with regards to leakage power optimization.
  • Some power rails have neither shunt resistor nor test points nor 0ohm resistor, making it almost not possible to evaluate it. Any power rail shall at least have a 0ohm resistor. The main issue with this approach is that it does not allow such rail to be assessed (i.e. any over-consumption cannot be detected), and when such power rail is also shared with other peripherals, in practice it is very difficult or impossible to isolate each individual power contribution; system power optimization may hence be impacting.
  • Complex peripherals like DDR3 or RCar H2 application processor require multiple different power supplies. Whenever possible, board design shall make sure that such component power contribution could be nicely assessed:
    • If several supplies have the same voltage, put a global shunt resistor sensing the total consumption. This makes power measurements less tedious by avoiding having to measure multiple rails one by one. E.g. VDDQ_M[0-1]DPLL[0-3] on the Lager board. Note it is also appreciated to place 0ohm resistor on individual rail in case deeper investigation was required.
    • Keep it isolated from other peripherals, i.e. if there was a shunt resistor mounted, make sure it measures only the power contribution of this specific peripheral. For instance D1.8V power rail on the Lager board supplying many different peripherals which some of them cannot also be individually measured.
  • Wherever shunt or 0ohm resistor was used, make sure it is accessible with probes or for replacement. E.g. 0ohm resistors like R63, R64, R65, etc are very small and crowded under the processor shall be avoided if possible, as it makes it pretty difficult to replace it by shunt resistor or other power equipment.

Finally, 2 additional global recommendations:

  • Think first about what is the global objective, then design the board accordingly.
    • Measure/optimize the power consumption of the application processor only?
    • Measure/optimize the complete system?
    • Measure/optimize the power consumption of the application processor plus some key peripherals?
    • In any case, when targeted components and power rails are designated, make sure all its power rails are equipped for power measurements and can be distinguished from other peripherals power consumption.
  • Add test points (like basic HE10 jumpers) around shunt resistors. This way power measurement equipment may be attached to the board without amy hardware modification.
    • Going further, a better solution than jumpers would be to use a standard power measurement interface. Note that Baylibre is actively working of defining such a standard interface.
renesas_r-car_h2/power_measurement_on_lager.txt · Last modified: 2014/09/21 18:26 by ptitiano
Recent changes RSS feed Creative Commons License Donate Minima Template by Wikidesign Driven by DokuWiki