Patent ID: 7564639

Claim:
A battery powered device comprising: a disk memory; a means for rotating the disk memory; a read/write means for at least one of reading and writing streaming data from or to the disk memory; a buffer memory for storing data read from or to be written to the disk memory, said buffer memory including a plurality of buffer memories associated with a corresponding one of said streaming data allowing concurrent reading and writing, said buffer memory being partitioned into n buffers for n data streams, wherein at least one buffer memory buffers data to be written and at least one buffer memory buffers data that has been read, said plurality of buffer memories being chosen proportional to a maximum bit rate associated with said corresponding streaming data, an energy saving scheduling means for: monitoring the buffer memory to determine how long before each of said at least one memory buffer performing a write function is full and to determined how long before each of said at least one of memory buffer memory performing a read function is empty: adjusting scheduled disk starting and stopping times in accordance with the monitored fullness of each of the plurality of the buffer memories, wherein said adjusting includes at least one of a time based reordering a refilling and emptying of each of said plurality of buffers to remove gaps between filling said memory buffers; and controlling the disk memory rotating means in accordance with the adjusted schedule, wherein the scheduling means performs the functions of: spinning up a disk memory; filling/emptying each stream i of a set S of the n data streams by reading/writing from/to the storage means until the respective stream is full/empty; determining an earliest next spinning up time t 0 ; putting the storage means in standby mode thereby spinning down the disk memory; re-determining, at or just prior to time t 0 , a new earliest spinning up time t k based on current buffer fillings f i (t) at a current time t for each stream i in the set S; iteratively performing the re-determining the new earliest spinning up time t k until the time t k is within a predetermined closeness to t k−1 or within a predetermined closeness to the current time t; and, waiting until time t k , or just prior to time t k .