Due to increasing proliferation of sensors in our everyday lives, evolution of IoT is natural. The mix of different building blocks with different speed-power-performance constraints makes IoT as the hottest upcoming application area for semiconductor IP vendors. The System-on-Chips (SoCs) coming up in this area typically features a central processor which needs to manage ever increasing number of sensors, processes more complex data, accommodate faster response time etc. But the application focus of IoT has some unique characteristics which makes it important to rethink the usage of standard processors.
The most important of these is power. A large portion of IoT device needs to runs energy harvested from external environment or on battery without any replacement for the whole life-time, which may be more than 10 years in certain scenarios. Hence power consumption is the most critical area which a processor needs to address. A generic processor wakes up, processes the data as fast as possible and then goes to sleep as quickly as possible. But that may not be ideal scenario for IoT processors. Fast processing does not necessarily imply minimum power consumption and also drawing of substantial power from battery within a short span of time may lead to lower battery life. The processing speed of IoT device can be tuned to ensure minimum energy consumption, particularly in the applications where response time of the device is not critical, for example IoT device used with electronics appliances. One of ways this can be achieved is to run the processors at near threshold voltage. This reduces the power consumption allowing the optimum performance for the application.
Another big contribution towards power consumption is due to the processor-memory transactions. Fetching of data from flash memory consumes a substantial amount of power. Hence an IoT processors need to be designed such that it reduces the memory transaction without sacrifice of performance. Also this may improve the response time as flash memory transaction typically slower.
The amount of hardware used in any DSP processing is directly proportional to the precision level of the operands. Higher the precision, lower the error in final result, but higher power and area consumption. Allowing processor to change the precision dynamically depending on the energy available as well as the criticality of the operation will ensure optimum usage of energy in IoT SoC
Security is another key area in IoT application. Security breach in an IoT device can reveal information about one’s bank accounts, financial status, location, health condition etc. Also it can allow wrong person to get access of products (like automobile, medical device, home entertainment) used by other person as well as critical infrastructure like power plants, manufacturing facilities, transport network etc.
There are several mechanisms to enhance the security of a processor. The first of them is to use bus encryption. Bus in a system has higher chance of attack, for example a hacker can tap the processor-memory bus in a PCB and get the critical information. In bus encryption model a processor takes the instruction from memory in an encrypted form and decrypt it internally, process it, encrypt the result again before putting it in the bus. Hence the decrypt value is not accessible outside the processor. To enhance the security data as well as address can be encrypted before it is put on a processor memory bus.
Another common way hacker attacks a processor is power analysis. In this process attacker measures the current drawn by a processor with high precision and correlate that with the computation performed by the processor to identify the value of the cryptographic key. One of the easier solutions of this problem is to insert NOP (no operation) instruction randomly which actually insert noise in power spectrum preventing the analysis tougher. Another effective way to achieve this is to change the key used for encryption, decryption over time which makes the power analysis redundant.
To prevent malevolent users from getting the control of the system, authentication of the IoT system is a key requirement. Authentication can be done by implementing a key-based cryptographic protocol, which in some cases, rely on the randomness in the device manufacturing process converting the randomness to a system/device-specific uniqueness.
P.S. I am grateful to Dr Anupam Chattopadhyay of NTU, Singapore who has helped me with some suggestions regarding a few sections of the above blog