Reducing Power Consumption and Latency in Mobile Devices Using an Event Stream Model

Reducing Power Consumption and Latency in Mobile Devices Using an Event Stream Model
复制标题

DOI:
10.1145/2964203
复制
发表时间:
2016-10
期刊:
ACM Transactions on Embedded Computing Systems (TECS)
影响因子:
--
通讯作者:
S. Marz;B. V. Zanden
S. Marz;B. V. Zanden
中科院分区:
其他
文献类型:
--
作者:
S. Marz;B. V. Zanden

文献摘要

相似文献

大多数基于消费者的移动的设备使用异步事件来唤醒应用。目前,事件处理在应用程序或应用程序框架(如Java的虚拟机(VM)或Microsoft的.NET)中实现,并且它使用“轮询循环”定期查询事件队列以确定事件是否发生。这些循环必须唤醒进程,检查事件,然后每秒多次将进程重新置于睡眠状态。这种持续的唤醒可以防止CPU进入深度睡眠状态,这会增加功耗。此外,进程在休眠时无法检查事件,并且处理事件的这种延迟会增加延迟,延迟是事件发生与应用程序响应事件之间所经过的时间。我们将这种事件处理模型称为“拉取”模型,因为它需要查询硬件设备或软件队列,以便从它们“拉取”事件。输入设备的最新进展支持在事件发生时对内核进行直接的信息中断。这使我们能够开发一个更有效的事件处理模型,称为“事件流模型”(ESM)。这个模型是一个推送模型,它允许进程在没有事件发生时休眠,但当事件发生时立即唤醒进程。此模型消除了轮询循环,从而消除了轮询之间的延迟诱导睡眠,并降低了不必要的功耗。要正常工作,ESM模型必须在内核中实现,而不是在应用程序中实现。在本文中,我们描述了如何在Android操作系统(OS)中实现ESM模型。我们的研究结果表明,与事件流模型,功耗降低了23.8%,在某些情况下,延迟平均减少了13.6ms。
Most consumer-based mobile devices use asynchronous events to awaken apps. Currently, event handling is implemented in either an application or an application framework such as Java’s virtual machine (VM) or Microsoft’s .NET, and it uses a “polling loop” that periodically queries an event queue to determine if an event has occurred. These loops must awaken the process, check for an event, and then put the process back to sleep many times per second. This constant arousal prevents the CPU from being put into a deep sleep state, which increases power consumption. Additionally, the process cannot check for events while it sleeps, and this delay in handling events increases latency, which is the time that elapses between when an event occurs and when the application responds to the event. We call this model of event handling a “pull” model because it needs to query hardware devices or software queues in order to “pull” events from them. Recent advances in input devices support direct, informative interrupts to the kernel when an event occurs. This allows us to develop a much more efficient event-handling model called the “Event Stream Model” (ESM). This model is a push model that allows a process to sleep as long as no event occurs but then immediately awakens a process when an event occurs. This model eliminates the polling loop, thus eliminating latency-inducing sleep between polls and reducing unnecessary power consumption. To work properly, the ESM model must be implemented in the kernel rather than in the application. In this article, we describe how we implemented the ESM model in Android operating system (OS). Our results show that with the event stream model, power consumption is reduced by up to 23.8% in certain circumstances, and latency is reduced by an average of 13.6ms.