Patent Publication Number: US-7596392-B2

Title: Method and system for arranging frequently accessed data to optimize power consumption

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     The present application is a divisional of and claims the benefit of U.S. patent application Ser. No. 10/199,271, filed on Jul. 18, 2002 now U.S. Pat. No. 7,072,637. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to data storage and, more particularly, to optimizing data storage for frequently accessed files in a mobile terminal disk-based memory, in order to minimize power consumption during file access. 
     2. Prior Art 
     With regard to storage devices in mobile terminals, solid-state flash cards are the most commonly used technology. However, the cost per storage area is relatively high when compared with high capacity disk based memory systems. On the other hand, a disadvantage with disk-based storage systems is the high power drain due to factors such as the combined power needed to rotate the memory disk and, at the same time, actuate the disk heads. It will be appreciated that this disadvantage is exacerbated in power-limited devices such as battery-powered mobile phones and other battery powered devices. 
     Therefore, it is desirable to provide a method and system to optimize data object placement in a disk-based memory system so that power consumption is minimized when accessing desired data files, thereby extending battery life. 
     SUMMARY OF THE INVENTION 
     The foregoing and other problems are overcome, and other advantages are realized, in accordance with the presently preferred embodiments of these teachings. 
     In accordance with one embodiment of the present invention a method for conserving battery power in a battery powered memory device is provided. The method includes operating the battery powered memory device in a battery-powered mode, and gathering at least one metric associated with retrieving a first data file. The method also includes operating the battery powered memory device in a non-battery powered mode, wherein operating the battery powered memory device in the non-battery powered mode includes determining a first power efficient location in the battery powered memory device, and storing the first data file in the first power efficient location. 
     In accordance with another embodiment of the invention a device is provided. The device includes a memory having a disk-based memory system adapted to optimize power consumption P during data file write/read operations, wherein optimization is based in part on the number of times a data file is expected to be accessed. 
     In accordance with another embodiment of the invention a method for optimizing battery power is provided. The method includes analyzing at least one first data file metric associated with a first data file and analyzing at least one second data file metric associated with a second data file. The method also includes estimating a first and second battery power consumption for memory storage/retrieval of the first and second data file, respectively. Estimating the first and second battery power consumptions further includes making the first and second battery power consumption estimates based at least partially on the at least one first data file metric and the at least one second data file metric, respectively. The method includes organizing on a memory device the first and second data files in accordance with the first and second battery power consumption estimates. 
     In accordance with another embodiment of the present invention a program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform conserving battery power in a battery powered memory device is provided. The program includes operating the battery powered memory device in a battery-powered mode, and gathering at least one metric associated with retrieving a first data file. The program also includes operating the battery powered memory device in a non-battery powered mode, and determining a first power efficient location in the battery powered memory device; and storing the first data file in the first power efficient location. 
     The invention is also directed towards a method for optimizing energy consumption during an optimization mode in a mobile device. The method includes providing a disk-based memory having a plurality of recordable tracks and associated track radii R 0 . . . R m  and determining a data file metric associated with a data file. The track on the disk may alternatively be arranged as a single consecutive spiral or several such consecutive spirals. For clarity, the same formalism is used for all embodiments, so that “track” refers to either a specific discrete track with radius R, or a location on a continuous track such that the beginning of the file has radius R. The method selects in accordance with the data file metric, an energy-optimum recordable track from the plurality of recordable tracks. The method also includes defragmenting the data file and writing the data file on the selected energy-optimum recordable track. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The foregoing aspects and other features of the present invention are explained in the following description, taken in connection with the accompanying drawings, wherein: 
         FIG. 1  is a perspective view of a mobile station incorporating features of the present invention; 
         FIG. 2  is a block diagram of the mobile station shown in  FIG. 1  that is constructed and operated in accordance with this invention; 
         FIG. 3  is a flow chart illustrating method steps for randomly arranging frequently accessed data in memory to optimize power consumption for the system as shown in  FIG. 2 ; 
         FIG. 4  is a flow chart illustrating method steps for sequentially arranging frequently accessed data in memory to optimize power consumption for the system as shown in  FIG. 2 ; 
         FIGS. 5A-5C  are pictorial diagrams of multiple symmetrical recordable tracks and a spiral recordable track, respectively, and associated recordable segments incorporating features of the present invention shown in  FIG. 1 . 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     Although the present invention will be described with reference to several embodiments shown in the drawings, it should be understood that the present invention can be embodied in many alternate forms of embodiments. 
     The usability of the file allocation optimization teachings described herein can include two working modes; namely, a working mode and an optimization mode. The working mode is assumed to be the normal usage case, when the user carries the mobile device and the device is not plugged to any power supply facility. In this case the mobile device, or any suitable device, will work as usual and only registers the needed file access frequency information in the FAT (or a mirror of it). In a preferable embodiment, the optimization mode is reserved for the case that the device is plugged to a power supply facility (e.g. charger). During this period the file allocation optimization will be started automatically to improve the file allocation and defragmentation. 
     Referring to  FIG. 1  there is shown a pictorial representation of a Mobile station  10  incorporating features of this invention. Mobile station  10  includes a display  110  that displays data, menus and areas for softkey functions  121 A and  121 B that can be activated by pressing of softkeys  120 A and  120 B. Scroll keys  130  are also provided to scroll through menu items featured on display  110 . Scroll keys  130  may also be a rolling cylinder, ball or the like which will allow for scrolling through items displayed. Keyboard  140  operates for the input of data. The keys of keyboard  140  may also be illuminated by various methods known to those skilled in the art to produce a visual reminder in response to an event. Entry of data may be facilitated by the use of predictive keyboard entry that is known by those skilled in the art. Data is stored in a memory  12 . Memory  12  may include volatile Random Access Memory (RAM) including a cache area for the temporary storage of data. Mobile station  10  may also include non-volatile memory  12 A, which may be embedded or removable. Non-volatile memory  12 A may be EEPROM, flash memory, or NVRAM technology, such as FeRAM and the like. The mobile station  10  also includes a disk-based memory device  12 C wherein data objects, particularly multimedia data objects are stored in accordance with the teachings of this invention in order to optimize power consumption. 
     Referring to  FIG. 2 , therein is illustrated a simplified block diagram of an embodiment of mobile station  10  that is suitable for practicing this invention.  FIG. 2  also shows a network operator (NO 1 ), also referred to herein simply as a first system, that transmits in a forward or downlink direction both physical and logical channels to the mobile station  10  in accordance with a predetermined air interface standard or protocol. 
     The mobile station  10  includes a micro-control unit (MCU)  170  having an output coupled to an input of a display  14  and an input coupled to an output of a keyboard or keypad  16 . The mobile station  10  may be considered to be a radiotelephone, such as a cellular telephone or a personal communicator having voice and/or packet data capabilities, or it may be a wireless packet data terminal. The mobile station  10  contains a wireless section that includes a digital signal processor (DSP)  18 , or equivalent high-speed processor, as well as a wireless transceiver comprised of a transmitter  20  and a receiver  22 , both of which are coupled to an antenna  24  for communication with the currently selected network operator. Some type of local oscillator (LO)  19 , which enables the transceiver to tune to different frequency channels when scanning and otherwise acquiring service, is controlled from the DSP  18 . The MCU  170  is assumed to include or be coupled to the read-only memory (ROM)  12 A for storing an operating program, as well as the random access memory (RAM)  12 B for temporarily storing required data, scratchpad memory, etc. 
     A portion of the RAM  12 B may be non-volatile, enabling data to be retained when power is turned off. A separate removable SIM  15  can be provided as well, the SIM storing, for example, subscriber-related information. 
     The mobile station  10  also includes a File Allocation Table (FAT)  12   z  for storing information related to the data objects stored and retrieved in disk based memory device  12 B in accordance with the teachings presented herein. 
     Referring also to  FIGS. 5A-5C , R is defined to be the radius (the distance from the center of the disk) to where a data file is stored on a track of the disk-based memory device  12 C. In order to optimize power consumption during file retrieval, a corresponding optimal range for R is determined in accordance with the teachings of the invention. In alternate embodiments R may correspond to the radius of particular track segments within a track as shown in  FIG. 5A , items  5 A 1  and  5 A 2  (i.e., R 0 . . . R m  corresponding to tract segments TS 0 . . . TS m ). Referring also to  FIG. 5B , R may correspond to a particular track segment such as  5 B 2  in spiraling track T 1S . Referring to  FIG. 5C , it will be further appreciated that an alternate embodiment may include tracks  5 A 1  at fixed radii as well as one or more spiral tracks T 1s . In embodiments with spiraling tracks the track position may be characterized by R min  and R max , indicating the track start/stop position on the disk. Spiraling track T lS  may be any suitable spiraling track such as, for example, a symmetrical spiraling track or mathematically derived spiral track such as a logarithmic spiral track. It will be appreciated that alternate embodiments may include a plurality of spiraling tracks. 
     
       
         
           
               
               
               
             
               
                   
                 TABLE A 
               
               
                   
                   
               
             
            
               
                   
                 s 
                 Throughput (bits/s) 
               
               
                   
                 σ 
                 Linear bit density of the disk (bit/mm) 
               
               
                   
                 ω 
                 Rotating speed of the disk (rpm) 
               
               
                   
                 r 
                 Radius (mm) 
               
               
                   
                 τ 
                 Time used to read a file (sec); typically τ &lt;&lt; T (see below) 
               
               
                   
                 P 
                 Power consumption (mW) 
               
               
                   
                 κ 
                 Dependence of power on ω: P = ω κ . Default value 3. 
               
               
                   
                 Ψ 
                 Energy expended (mJ) 
               
               
                   
                 L 
                 Length of file (bits) 
               
               
                   
                 T 
                 Maximum allowed time to read clip (sec) 
               
               
                   
                 Γ 
                 Empirically determined exponent 
               
               
                   
                   
               
            
           
         
       
     
     In addition to the parameters defined in Table A, the following assumptions are made:
         1. The data files are referred to by the index j, j=1:N. The file with index  1  is the one that is located nearest to the center of the disk; the others are in consecutive order towards the edge. The files may be either contiguous, or there may be gaps between them. The system with gaps is a preferred embodiment, but the invention is not limited to that case.   2. The disk preferably has constant linear bit density σ [bits/mm].   3. The data files are assumed to have lengths L j  [bits] that are much smaller than the entire capacity of the disk. With this approximation, each file can be approximated to be a distance R j  [mm] from the center.   4. At a given angular rotation speed ω [rotations/sec], the number of bits per second read is given by s j =σωR j .   5. Assuming that the bit rate is approximately constant during the reading of the file, the time to read the file is T j =L j /s j =L j /σωR j .       

     In general, the power consumption of a disk drive as function of the rotation speed ω is given by a function P(ω) Also, in the general case, a disk throughput relationship may be defined as s(ω,r)=σ(r)ω(r)r. 
     The power profile may then be represented by: 
     
       
         
           
             
               
                 
                   
                     ψ 
                     ⁡ 
                     
                       ( 
                       
                         ω 
                         , 
                         r 
                       
                       ) 
                     
                   
                   = 
                   
                     
                       
                         P 
                         ⁡ 
                         
                           ( 
                           
                             ω 
                             ⁡ 
                             
                               ( 
                               r 
                               ) 
                             
                           
                           ) 
                         
                       
                       ⁢ 
                       
                         L 
                         / 
                         
                           s 
                           ⁡ 
                           
                             ( 
                             
                               ω 
                               , 
                               r 
                             
                             ) 
                           
                         
                       
                     
                     = 
                     
                       
                         
                           
                             P 
                             ⁡ 
                             
                               ( 
                               
                                 ω 
                                 ⁡ 
                                 
                                   ( 
                                   r 
                                   ) 
                                 
                               
                               ) 
                             
                           
                           
                             r 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             
                               σ 
                               ⁡ 
                               
                                 ( 
                                 r 
                                 ) 
                               
                             
                             ⁢ 
                             
                               ω 
                               ⁡ 
                               
                                 ( 
                                 r 
                                 ) 
                               
                             
                           
                         
                         ⁢ 
                         L 
                       
                       ≡ 
                       
                         
                           ξ 
                           ⁡ 
                           
                             ( 
                             r 
                             ) 
                           
                         
                         ⁢ 
                         L 
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     Eq 
                     . 
                     
                         
                     
                     ⁢ 
                     1 
                   
                   ) 
                 
               
             
           
         
       
     
     In one embodiment, the teachings of the present invention are applicable to constant linear velocity (CLV) disk systems. In alternate embodiments the teachings are combined with an angular velocity (AV) disk system, such as, for example, a constant angular velocity (CAV) disk system. Many modern disk systems follow a CAV strategy or a more complicated zoning system based on CAV. The teachings of the invention will be described and made clear with reference to these alternate embodiments. 
     In the general case, the energy consumption to read the file is the product of the time spent reading the file and the power consumption during the readout. In the general case, 
     
       
         
           
             
               
                 
                   
                     E 
                     ⁡ 
                     
                       ( 
                       
                         F 
                         j 
                       
                       ) 
                     
                   
                   = 
                   
                     
                       
                         T 
                         j 
                       
                       ⁢ 
                       
                         
                           ∑ 
                           i 
                           
                               
                           
                         
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           
                             a 
                             i 
                           
                           ⁢ 
                           
                             ω 
                             
                               
                                 k 
                                 ⁡ 
                                 
                                   ( 
                                   i 
                                   ) 
                                 
                               
                               - 
                               1 
                             
                           
                         
                       
                     
                     = 
                     
                       
                         L 
                         j 
                       
                       ⁢ 
                       
                         
                           ∑ 
                           
                               
                           
                         
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           
                             b 
                             i 
                           
                           ⁢ 
                           
                             R 
                             j 
                             
                               - 
                               
                                 k 
                                 ⁡ 
                                 
                                   ( 
                                   i 
                                   ) 
                                 
                               
                             
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     Eq 
                     . 
                     
                         
                     
                     ⁢ 
                     2 
                   
                   ) 
                 
               
             
           
         
       
     
     The units and formulations have been chosen to make future calculations easier. The terms k(i)−1 can be either integers or fractional. Equation 2 is the generic formulation of the power consumption; in alternate embodiments its exact form may be different and is preferably determined empirically. 
     When k(i)−1=i for all i, the Equation 2 is the Taylor series of the energy profile. However, the equation is more general than the Taylor series in that it can also take non-linearity into account. These non-linearities are preferably determined empirically. 
     It will be appreciated that Equation 2 applies to CLV and CAV embodiments as well as CLV/CAV hybrids. In the case of CAV, Equation 2 is preferably suited to the acceleration stage, after which the energy becomes predominantly stable; i.e. the term a 1  dominates. Thus, the general case of Equation 2 advantageously describes any suitable energy profile. 
     The derivative of Equation 2 is: 
     
       
         
           
             
               
                 
                   
                     
                       ∂ 
                       E 
                     
                     
                       ∂ 
                       R 
                     
                   
                   = 
                   
                     
                       - 
                       
                         L 
                         j 
                       
                     
                     ⁢ 
                     
                       
                         ∑ 
                         
                             
                         
                       
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         
                           b 
                           i 
                         
                         ⁢ 
                         
                           k 
                           ⁡ 
                           
                             ( 
                             i 
                             ) 
                           
                         
                         ⁢ 
                         
                           R 
                           j 
                           
                             
                               - 
                               
                                 k 
                                 ⁡ 
                                 
                                   ( 
                                   i 
                                   ) 
                                 
                               
                             
                             - 
                             1 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     Eq 
                     . 
                     
                         
                     
                     ⁢ 
                     3 
                   
                   ) 
                 
               
             
           
         
       
     
     Thus, since E is monotonically increasing, the resulting derivative of Equation 2, i.e., Equation 3, is negative. Therefore, moving or storing a file outward, in accordance with the teachings of the present invention, generally results in decreased power consumption. It should be noted that in some instances (e.g. using pulsing mechanisms, or gear systems) that E may not increase monotonically, thereby providing a non-negative derivative or a pathological anomaly. However, these pathological anomalies, in general, act as a small perturbation on the average power consumption derived from the normal case and need not be discussed here. 
     A teaching of the present invention optimizes energy consumption (i.e., decrease energy consumption) by associating an access parameter n j  for each file in the File Allocation Table (FAT) ( FIG. 2 , item  12   z ), where the access parameter is incremented, or modified, each time the file is accessed. Thus, the total power expended for retrieving a certain file may be expressed as the power expended per each access time multiplied by the number of access times or 
     
       
         
           
             
               
                 
                   
                     P 
                     j 
                   
                   = 
                   
                     
                       
                         T 
                         j 
                       
                       ⁢ 
                       
                         
                           ∑ 
                           i 
                           
                               
                           
                         
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           
                             a 
                             i 
                           
                           ⁢ 
                           
                             ω 
                             
                               
                                 k 
                                 ⁡ 
                                 
                                   ( 
                                   i 
                                   ) 
                                 
                               
                               - 
                               1 
                             
                           
                         
                       
                     
                     = 
                     
                       
                         n 
                         j 
                       
                       ⁢ 
                       
                         L 
                         j 
                       
                       ⁢ 
                       
                         
                           ∑ 
                           
                               
                           
                         
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           
                             b 
                             i 
                           
                           ⁢ 
                           
                             R 
                             j 
                             
                               - 
                               
                                 k 
                                 ⁡ 
                                 
                                   ( 
                                   i 
                                   ) 
                                 
                               
                             
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     Eq 
                     . 
                     
                         
                     
                     ⁢ 
                     4 
                   
                   ) 
                 
               
             
           
         
       
     
     In addition, file ordering may be written as a vector Ord_zero={1,2,3, . . . }. The optimal file arrangement within the storage medium is then the permutation Perm(Ord_zero) which minimizes the total P. 
     It will be appreciated that in alternate embodiments any suitable parameters may be associated with a file. For example, the order Ord_zero and a vector of pointers to the actual location on the disk Loc_zero={R 1 *,R 2 *, . . . } where Ri* is a pointer to the location of the file (from which the distance to the center R can be derived). Thus, advantageously optimizing not only the order of the files, but also the precise placement of the files within the storage medium. Other parameters may include the length of the file and in alternate embodiments the time to read the file, as taught in co-pending application Ser. No. 10/012,801, filed Dec. 7, 2001, and hereby incorporated by reference in its entirety. 
     In alternate embodiments where the access parameter is predetermined, the methods taught below may be used to determine the optimal placement before the file has been accessed for the first time. 
     The access parameter n j  may be determined dynamically, or in alternate embodiments, the parameter may be determined a priori, or a combination of the two embodiments. For example, the access parameter may be pre-assigned a predetermined base number (i.e., default n j =1) and then incremented (or decremented) when the file is actually accessed. The access information can be available directly through knowing the file extension and the usage patterns, or by some other means. As an example, it is known that the mailbox file will be accessed and modified each time the user receives mail. Thus, it is possible to set a very high value of n j  for that file. 
     Also, in a preferable embodiment the access parameter n j  is independent of file name changes (i.e., n j  is not reset to a new value because of a file name change). Also, in a preferable embodiment n j  tracks data file access as well as file name changes. 
     The teachings described herein are independent of the details of the file allocation system. However, in a preferable embodiment file fragmentation is minimized by including unallocated space between files. Further, optimization enhancements may be gained by dynamically defragmenting files during or before the optimization stage presented herein. 
     Referring now to  FIG. 3  there is shown a flow chart illustrating method steps of an embodiment of the present invention shown in  FIG. 2 . Step  3 A 2  randomly selects a memory location x and step  3 A 13  determines if a file F 1  is stored in the randomly selected memory location x. Likewise, steps  3 A 4  and  3 A 5  randomly select a second memory location y and determines if a file F 2  is stored in the location, respectively. Note that the second randomly selected file location y is greater than x. For example, in a disk based memory storage system x is an inner radius relative to a radius represented by y. Step  3 A 7  determines the energy required to retrieve F 1 , while step  3 A 8  determines the energy required to retrieve F 2 . Note, that the energy determinations depend at least in part on the number of times each file is accessed. For example, if F 1  has been, or is expected to be, retrieved ten times and the energy required to retrieve F 1  from memory location x is ten joules then the total energy for retrieving F 1  from memory location x is 100 joules. Likewise, if F 2  is expected to be retrieved five times and the energy required to retrieve F 2  from memory location y is two joules then total energy required to retrieve F 2  from memory location y is ten joules. Step  3 A 7  determines the total energy required to retrieve files F 1  and F 2  from their current memory locations x and y, respectively. One method of determining power consumption may be determined by assuming e.g., the power distribution can be described by one leading term in the series of Eq. 4 with exponent Γ:
 
 P ( j )= nLR   −Γ    (Eq. 5), and
 
 dP ( j )= LR   −Γ   dn+LR   −Γ   dL−nLΓR   −Γ−1   =nLR   −Γ ( dn/n+dL/L−ΓdR/R )  (Eq. 6)
 
     It will be appreciated that Eq. 6 is most easily negative when n is large. Thus, an initial assumption at the optimal order is in the order of the n, from smallest to largest. 
     However, it will be appreciated that in alternate embodiments and suitable method for determining power consumption may be used. In particular, the actual energy profile may be more complex than the case in Eq. 5 and not easily described by a single term. In such a case, an optimal order may be different from that mentioned above; the specific ordering is preferably determined empirically or semi-empirically for each system. 
     Step  3 A 8  also determines the total energy that would be required if the location of files F 1  and F 2  were exchanged. Step  3 A 10  then exchanges the files if the decision step  3 A 9  determined that the total energy required to retrieve the files would be less than the energy required to retrieve the files from their current memory locations. Decision step  3 A 11  determines if the optimization process should stop. In a preferred embodiment the optimization process is during an energy recovery mode such as battery recharging. In alternate embodiments conditions for halting the process could be any suitable condition, such as when charging is finished, when an external power supply is no longer present, or when no exchanges have been made in M tries, where M is a pre-determined number. 
     It will be appreciated that this embodiment is interruption tolerant, or in other words the optimization process may be interrupted at any time. 
       FIG. 4  is a flow chart illustrating method steps for sequentially arranging frequently accessed data in memory to optimize power consumption. In this embodiment the energy consumption for all the files stored in memory are determined for each memory location. Step  3 B 1  initializes a storage location counter R and file pointer F. Step  3 B 2  retrieves file F and step  3 B 3  determines the energy required (or estimated) to retrieve file F from the memory location indicated by storage location R. Storage location R is then incremented and step  3 B 3  again determines the energy required to retrieve the file F from the new storage location. This process continues until all the storage locations have an energy retrieval associated with file F. Then step  3 B 6  increments file F and the process is repeated. Step  3 B 8  then selects for each storage location R the file F having the lowest energy retrieval associated with that storage location. It will be appreciated that this embodiment is suitable when the number of files is below a predetermined number and/or when the optimization mode is expected to last for a predetermined amount of time, such as overnight charging. 
     File ordering may be any suitable ordering, such as physical location within the storage medium expressed in terms of radius, access time, or access frequency. Thus, steps  3 B 1 - 3 B 7  may be expressed by the pseudo-code:
         Let Ord={1,2,3, . . . }   For y=1:(N−1);   For z=1:(N−1)   dP=P(Ord(z+1))−P(Ord(z));   if dP&lt;0; xx=Ord(z); Ord(z)=Ord(z+1); Ord(z+1)=xx;   end;   end;   end;   Reorder the files by the new Ord vector.       

     In an alternate embodiment the reordered or optimized files may be organized contiguously by the following method (or simple extensions of it):
         Start from file N (the outermost file). If the file is not at the outermost edge of the disk, move it there. This may be expressed by the pseudo-code:
           if L(N) is the length of the file and LD*=pointer to last bit on the disk, then   Copy the contents of file F(N) into a buffer or empty part of the drive;   Let x*=LD*−L(N)   Copy the contents from the buffer to x*.   
           Then repeat the same procedure for all other files so that the files are contiguous from the outer edge of the disk.       

     Then, consecutive files can be easily swapped if P(z−1)&lt;P(z):
         x*=Pointer to start of file F(z−1);   y*=Pointer to start of file F(z);   Read contents of file F(z−1) into a buffer or empty part of the drive;   Write file F(z) to x*   Write file F(z−1) to x*+L(z−1).       

     This can be repeated as long as desired; the system will slowly saturate towards the optimum energy. Note that this is not necessarily an absolutely optimal solution, since it become unwieldy when file lengths change during access (as with mailbox files). 
     In this manner, the present invention advantageously decreases the average power consumption of disk memories during the optimization mode. Power reduction is realized by optimizing the location of frequently accessed data files so that power consumption, is minimized. 
     It should be understood that the foregoing description is only illustrative of the invention. Various alternatives and modifications can be devised by those skilled in the art without departing from the invention. For example, alternative embodiments may include any wireless or non-wireless multimedia products, in which data (e.g., MP3 files or game data) is disk stored. Alternate embodiments may also include any memory device in which power consumption or access time is dependent on physical file location (e.g. closeness to the main data bus). In these alternate embodiments the fundamental teaching of the present invention is used: define a power consumption or access time function E(Fj) for each file, order the files by order frequency nj so that nj*E(Fj) is minimized. Accordingly, the present invention is intended to embrace all such alternatives, modifications and variances that fall within the scope of the appended claims.