Power efficient media playback on general purpose portable devices
First Claim
Patent Images
1. A method of managing system memory for optimizing performance of a portable computing device, said method comprising:
- receiving a cache creation request from an application being executed by the portable computing device, wherein the application specifies, in said received cache creation request, data to be cached in a memory area of the system memory;
receiving a memory usage event from one or more different applications being executed by the portable computing device, said memory usage event specifying a current memory state of the portable computing device and indicating whether additional memory is required by the one or more different applications to perform their operations;
determining, based on the cache creation request and the memory usage event, whether the portable computing device has sufficient available memory for caching the data specified in the cache creation request;
when the determining indicates the portable computing device has sufficient available memory for caching the specified data;
defining the memory area of the system memory of a portable computing device to be used for caching the specified data during execution of the application, said memory area comprising a plurality of memory segments, said memory segments each having a storage capacity available for caching;
allocating one or more of the memory segments for caching the specified data to be cached;
storing the specified data to be cached in the one or more allocated memory segments; and
retrieving the cached specified data from the one or more allocated memory segments for processing by the application; and
when the determining indicates the portable computing device does not have sufficient available memory for caching the specified data;
generating a pending cache creation request for the particular specified data specified in the received cache creation request and thereafter holding the pending cache creation request until the portable computing device has sufficient memory for caching the particular specified data;
in response to generating the pending cache creation request, monitoring the available memory of the portable computing device;
when the monitoring indicates the portable computing device has sufficient available memory for caching the specified data;
defining a memory area of the system memory of a portable computing device used for caching the particular specified data in the held cache creation request during execution of the application, said memory area comprising a plurality of memory segments, said memory segments each having a storage capacity available for caching;
allocating one or more of the memory segments for caching the particular specified data to be cached;
storing the particular specified data to be cached in the one or more allocated memory segments; and
retrieving the cached particular specified data from the one or more memory segments for processing by the application.
2 Assignments
0 Petitions
Accused Products
Abstract
A portable multifunction computing device optimizes cache storage when processing media files and the like. During a playback operation, the device caches as many media items as possible such that during playback media items are retrieved from cache rather than from a hard disk memory. The device monitors memory requirements of other programs and applications currently in use on the device to insure sufficient cache memory is available for such programs and applications.
-
Citations
16 Claims
-
1. A method of managing system memory for optimizing performance of a portable computing device, said method comprising:
-
receiving a cache creation request from an application being executed by the portable computing device, wherein the application specifies, in said received cache creation request, data to be cached in a memory area of the system memory; receiving a memory usage event from one or more different applications being executed by the portable computing device, said memory usage event specifying a current memory state of the portable computing device and indicating whether additional memory is required by the one or more different applications to perform their operations; determining, based on the cache creation request and the memory usage event, whether the portable computing device has sufficient available memory for caching the data specified in the cache creation request; when the determining indicates the portable computing device has sufficient available memory for caching the specified data; defining the memory area of the system memory of a portable computing device to be used for caching the specified data during execution of the application, said memory area comprising a plurality of memory segments, said memory segments each having a storage capacity available for caching; allocating one or more of the memory segments for caching the specified data to be cached; storing the specified data to be cached in the one or more allocated memory segments; and retrieving the cached specified data from the one or more allocated memory segments for processing by the application; and when the determining indicates the portable computing device does not have sufficient available memory for caching the specified data; generating a pending cache creation request for the particular specified data specified in the received cache creation request and thereafter holding the pending cache creation request until the portable computing device has sufficient memory for caching the particular specified data; in response to generating the pending cache creation request, monitoring the available memory of the portable computing device; when the monitoring indicates the portable computing device has sufficient available memory for caching the specified data; defining a memory area of the system memory of a portable computing device used for caching the particular specified data in the held cache creation request during execution of the application, said memory area comprising a plurality of memory segments, said memory segments each having a storage capacity available for caching; allocating one or more of the memory segments for caching the particular specified data to be cached; storing the particular specified data to be cached in the one or more allocated memory segments; and retrieving the cached particular specified data from the one or more memory segments for processing by the application. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. One or more computer-readable storage media having computer executable components executed by a portable computing device for optimizing performance of the portable computing device, said computer-readable storage media comprising:
-
a defining component for defining a memory area of the system memory of the portable computing device for caching data during execution of an application, said memory area comprising a plurality of memory segments, said memory segments each having a predetermined storage capacity available for caching; an event receiver component for receiving a memory usage event from one or more different applications being executed by the portable computing device, said memory usage event specifying a current memory state of the portable computing device and indicating whether additional memory is required by the one or more different applications to perform their operations; a cache management component for receiving a cache creation request from an application being executed by the portable computing device, wherein the application specifies, in said received cache creation request, data to be cached in the memory area of the system memory, and said cache management component determining, based on the received cache creation request and the memory usage event, whether the portable computing device has sufficient available memory for caching the specified data, wherein the cache management component is further configured for generating a pending cache creation request for the specified data when the cache management component indicates the portable computing device does not have sufficient available memory for caching the specified data and thereafter holding the pending cache creation request until the portable computing device has sufficient memory for caching the specified data; and a consumption component for allocating one or more of the memory segments for caching the specified data when the portable computing device is determined to have sufficient available memory for caching the data specified by the received cache request, and said consumption component storing the specified data to be cached in the one or more allocated memory segments. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A portable computing device comprising:
-
a user interface, associated with an application of the portable computing device, for generating a cache creation request, wherein the application specifies, in said cache creation request, data to be cached in a memory area of a system memory; a processor, associated with the portable computing device, for executing computer-executable instructions stored on computer-readable storage media, said computer-executable instructions comprising computer-executable instructions for; partitioning the memory area of the system memory of the portable computing device into a caching memory portion for caching during execution of the application and into a reserve memory portion and a critical memory portion, said caching memory portion comprising a plurality of memory segments, said memory segments each having a predetermined storage capacity available for caching, said reserve memory portion having a predetermined storage capacity available for additional caching and said critical memory portion having a predetermined storage capacity available for supporting an operating system executing on the portable computing device; receiving a cache creation request from the application, wherein the application specifies, in said received cache creation request, data to be cached in a memory area of the system memory; receiving a memory usage event from one or more different applications being executed by the portable computing device, said memory usage event specifying a current memory state of the portable computing device and indicating whether additional memory is required by the one or more different applications to perform their operations; determining, based on the cache request and the memory usage event, whether the portable computing device has sufficient available system memory for caching the specified data before allocating the one or more memory segments for caching; generating a pending cache creation request for the specified data when the computing device is determined to not have sufficient available system memory for caching the specified data and thereafter holding the pending cache creation request until the portable computing device has sufficient available memory for caching the specified data; allocating one or more of the memory segments for caching the specified data when the computing device is determined to have sufficient available system memory for caching the data specified by the cache request; storing the specified data to be cached in the one or more allocated memory segments; retrieving cached data from the one or more allocated memory segments for processing by the application;
monitoring a plurality of segments to identify one or more of the plurality of segments caching data that has been processed by the application; andremoving the processed data from the identified one or more segments. - View Dependent Claims (15, 16)
-
Specification