Previous | Next --- Slide 25 of 41
Back to Lecture Thumbnails
kayvonf

Question: Why did Google architects choose to add a specialized audio-processor to the Moto X device?

rojo

"ok, google" is the audio that the Moto X device need to listen to while the phone is powered on. This can be done by having the main processor listen to this. But this results in higher energy consumption required to keep this core running 24X7. To limit energy consumption a dedicated small audio-processor (ASIC) is used to handle this audio event and thus save more energy and hence provide better battery life on the phone.

dumbo_

Generalization may increase flexibility, but is not very power efficient. While specialization can be more power friendly. In this case, the main processor is a "general" processor which needs to handle many other different tasks. If we make the main processor listen to "ok, google" all the time, it will be very power consuming, which is not necessary. Instead, specializing a small processor which only handles this audio event will prevent the main processor from running all the time and thus is more energy efficient.

ericwang

I think one of the reasons to do so is that the device needs "always" listening. If using general processors to handle audio input, they will continuously consume energy even the phone is in Hibernation or Standby mode.

One option would be slower the general processors. But general processors will also be used to handler user tasks, so this would be a bad idea.

Another option is using specialized audio-processor. So that this processor can be managed separately. The device can keep this processor running and let other processors sleep.

The designers can make the audio-processor relatively simple so as to consume less energy. For example, audio input may not require multiple processing. And once the designers figure out the right sample space for satisfying the pattern recognition functions, the required bandwidth would be fixed. This processor could be designed to fit this requirement only.

paluri

I think on a higher level, architects have come to terms with the fact that generalization is not inherently the best optimization determinant in an overall computer system. There are definitely very distinct use cases for a lot of the devices we have, and it would be best if the devices we used were optimal for the task which we required of them. This is why the Chromebook can even exist - although it doesn't really do much at all, it is cheap, fast, has a ridiculously long battery, and is very convenient for a niche population who use computers in a way that is optimized by such a device. In the case of the audio listener, since the voice assistance is a feature that the designers wanted to incorporate into the device, it became essential to create hardware to do just that (much like floating-point coprocessors).

BigFish

A specialized processor can be produced to achieve most efficiency to the specific task. It means the device can have a longer battery life, which is critical to mobile users.

lament

Does security play into this at all? If the CPU and the rest of the hardware is only "listening" when some dedicated hardware tells it to listen, it seems slightly less likely that someone would be able hack and constantly listen in. Of course, there would need to be more hardware-specialized security in place to effectively reduce this security concern; if I have dedicated hardware to ping the CPU into an active running state, there should be some hardware that prevents the CPU from continuing in this "active" state indefinitely. Otherwise, I could listen in forever after someone initially says "ok, Google now", or at least until the battery dies.

jcarchi

Another example of heterogeneous parallelism on mobile devices are chips specifically designed for motion tracking. Apple calls it M7 and it's primary use is to collect sensor data from the iphones accelerometer, compass, and gyroscope.