Creating hardware and software in the automotive world is getting more complicated by the year. More features and application require ever increasing performance. It’s tough to keep up, especially when trying to design systems to be efficient and with low power consumption in mind.
How should one go about getting the best of both worlds? CPUs are powerful, but are hungry for energy. Parallelism is helping a lot, but not necessarily always the best option. As an example, let’s think about listening to music. Decoding an mp3-file is a breeze with modern processors. There are even dedicated low power blocks inside chips for this purpose. When leaving it to the CPU, it’s possible to do it with the lowest clock possible or burst it at full speed and sleep longer. Depending on the hardware, either one could be better. With multimedia it is quite important to take benefit of the in-built accelerators, pure CPU processing can be very inefficient, especially with more complex video codecs. So, plan your hardware according to your needs in this respect. We do!
To create the optimum system, the design must take energy into account for the whole R&D cycle
For the whole hardware architecture (even CPU blocks) it makes sense to design system so that they are as independent of each other as possible. Separating clock and power domains is preferred, so one can turn off or set dormant unneeded hardware and conserve power this way. Running multiple systems from the same power rail will create unwanted leakages, but can not always be avoided. System wake-ups created from multiple inputs need quiescent power (timers, CAN, external inputs). On the other hand, complexity and BOM will increase by too much separation. Energy saving is more critical when the vehicle is turned off, but will have an impact in active vehicles also. Thermals can play a key role, when tuning the performance of electronics that are buried deep inside the vehicle.
To create the optimum system, the design must take energy into account for the whole R&D cycle. In the beginning, chip and component selection should be done with power in mind and still maintaining automotive grade quality. Once the hardware design is complete, software must be validated on every software release, so regression is detected as early as possible. Targets should be estimated, before the system is even up-and-running. Software release cycles then strive to meet these targets once the software matures.
Make it future-proof!
If the design cycle is long, it makes sense to make your design flexible and with headroom for growth in both SW and HW sense. Adding displays would be the most likely expansion in the future since the amount of infotainment is growing fast. Therefore, it is important to pick a processor that can handle additional graphics load or even make the design modular in a way that is easy to connect to external graphics processing. Cameras and sensors are becoming more prevalent, with quite a lot of processing required for imaging or even autonomous driving. This naturally translates into more power and heat. Cables need to be ready for more current and the thermal design must be able to dissipate the extra heat. Passive or even active cooling might be needed. Location inside the vehicle is very important, since the ambient temperature makes a big impact. It is critical to get the heat away from the active components inside the design and the only way to do that is to push into the immediate environment. Therefore, the surface of the device needs to be carefully designed bearing this in mind. With a passive design, airflow is preferred, but most often only a conducted option is available. The unit should mechanically fit the vehicle optimally, so the thermal conductivity is at its best.
Inside the system, throttling is used to keep processors at decent temperatures. Multicore systems can rotate the active core, park them completely or adjust the operating voltage and frequency. At some point, however, performance starts to degrade and this needs to be avoided to keep the UI experience enjoyable.