Restoring of content lost from a volatile memory
FIELD OF THE INVENTION
The present invention generally relates to the field of portable battery powered data processing devices and more particularly to a method of enabling restoring data content in a portable data processing device, a method of restoring data content in a portable data processing device, data processing devices and computer program products for performing the methods as well as such a portable data processing device.
BACKGROUND OF THE INVENTION
Battery powered media playing devices, which are normally portable, have been known for some time. Such players have traditionally been using magnetic tape or optical discs as storage of the content. With the ever increasing size reductions, power efficiency and larger storing capacity of non- volatile solid state memories it has become more and more interesting to provide these players with such memories. Also the compression of audio data from CD format to MP3 and other formats have made this memory interesting to use. There are several advantages with these memories compared to other storage technologies, like HDD, CD and tape. For instance the following advantages are obtained. The content can more easily be changed without loss of quality of the media signals, access to content is faster and the memory in question has lower costs when the memory is fairly small-sized. Other advantages compared with disc and tape are mechanical robustness and low power consumption. Many players therefore use non-volatile memories, like NAND flash memories for storing the content. This type of memory has the advantage of retaining the information stored thereon when power is lost.
It is, however, interesting to use volatile memories for storing content. One main reason for interest this is that these types of memories are normally less costly to produce and therefore the use of such a memory can be the decisive advantage on a competitive consumer market. It may also be that future downscaling of the technology to
smaller feature sizes may be more suitable for volatile memories like SDRAM than for non¬ volatile memories like NAND Flash. Another advantage of these memories is that they are generally faster with a data transfer from and two such a SDRAM than non-volatile memories. The problem with such a volatile memory is however that it needs to be powered all the time if the information stored in the memory is not to be lost, with the consequence that the consumer might get irritated if the media content cannot be retained.
It would therefore be advantageous if lost content could easily be restored. In the patent document US 2003/0158614 it is described an audio system for use in a car, where audio content is stored in a DRAM memory. Thereby, the car battery powers the audio system. Here programming parameters in relation to radio recording are stored in a flash memory, where the programming parameters are the frequency band, station frequency as well as time, date and duration of a broadcast to be tuned to. This information is kept there so that a user would not need to repeat programming in case the DRAM memory is emptied when power is lost. Thus this known audio system does not allow the restoration of lost media content.
OBJECT AND SUMMARY OF THE INVENTION
It is therefore an object of the present invention to enable simple restoring of files lost in a volatile memory of a portable data processing device. According to a first aspect of the present invention, this object is achieved by a method of enabling restoring of data content in a portable data processing device comprising the steps of: obtaining at least one data file, storing the data file in a volatile memory of the portable data processing device, obtaining meta data associated with said data file, and storing said meta data associated with said data file in a non-volatile memory of the portable data processing device.
According to a second aspect of the present invention, this object is also achieved by a data processing device arranged to: obtain at least one data file, store said data file in a volatile memory of a portable data processing device, obtain meta data associated with said data file, and store said meta data associated with said data file in a non- volatile memory of said portable data processing device.
According to a third aspect of the present invention, this object is also achieved by a computer program product for enabling restoring of data content in a portable data processing device, comprising computer program code, which, when said program code is loaded in a data processing device, operates to: obtain at least one data file, store the data file in a volatile memory of the portable data processing device, obtain meta data associated with said data file, and store said meta data associated with said data file in a non-volatile memory of the portable data processing device.
According to claim 2, the meta data includes the name of the file. This feature provides the minimum information needed for retrieving lost content. If the meta data is limited to this only, the size of the non- volatile memory can be kept very small. If in addition the meta data includes information about the origin of the file the data file can be found faster.
According to Claim 3 the advantage of allowing faster retrieval of lost content from the backup-storing device is given. According to claim 4, the meta data is compressed before storing in the portable data processing device, which has the advantage of limiting the size of the non- volatile memory even further.
According to claims 5 - 8, the meta data includes more information that is of use to a user, like additional meta data indicating user preference settings in relation to the presentation of files, either common or separate, and user preference data related to the files. This has the advantage in that a user does not have to set these once again if power is lost for the portable data processing device.
It is also an object of the present invention to restore files lost in a volatile memory of a portable data processing device. According to a fourth aspect of the present invention, this object is achieved by a method of restoring at least some data files lost from a volatile memory of a portable data processing device comprising the steps of: retrieving, from a non-volatile memory of the portable data processing device, meta data associated with potentially lost data files in the volatile memory, fetching data files corresponding to at least some retrieved meta data from an associated backup storing device, and storing the fetched data files in the volatile memory.
According to a fifth aspect of the present invention, this object is also achieved by a data processing device arranged to: retrieve, from a non- volatile memory of a portable data processing device, meta data associated with potentially lost data files in a volatile memory of said portable data processing device, fetching data files corresponding to at least some retrieved meta data and storing the fetched data files in said volatile memory.
According to a sixth aspect of the present invention, this object is also achieved by a computer program product for restoring at least some data files lost from a volatile memory of a portable data processing device, comprising computer program code, which, when said program code is loaded in a data processing device, operates to: retrieve, from a non- volatile memory of the portable data processing device, meta data associated with potentially lost data files in the volatile memory, fetching data files corresponding to at least some retrieved meta data from an associated backup storing device, and storing the fetched data files in the volatile memory.
According to a seventh aspect of the present invention, the above-mentioned objects are also achieved by a portable data processing device comprising: at least one data file processing unit, a volatile memory arranged to store at least one data file, a non-volatile memory arranged to store meta data associated with said data file, and a control unit arranged to at least control the supply of data files to the at least one data file processing unit. According to claim 12, it is determined if there are data files missing in the volatile memory that correspond to retrieved meta data and at least some of those missing data files are fetched. This has the advantage of only retrieving those data files that are actually lost upon power failure of the portable data processing device.
According to claim 13, a connecting of the portable data processing device to the backup storing device is detected. This feature allows the automatic restoring of lost content.
According to claims 14, it is determined if there is meta data for which there is no data file in the associated backup storing device. This feature allows other measures to be taken for either avoiding loss of data files or obtaining them from other sources. According to claim 15, it is determined if there is at least one data file corresponding to the meta data in the volatile memory that docs not correspond to a file in
the backup storing device and copying said file from the volatile memory to the backup storing device. This feature allows providing of backups of content downloaded from other sources than the backup storing device, which can later be retrieved in case power is lost for the portable data processing device. By using a volatile memory of a portable data processing device for storing data files, a cheaper memory that can be accesses faster than a non-volatile memory is used. These types of memories may furthermore be more suitable for future downscaling of the memory technology to smaller feature sizes. The meta data in the non-volatile memory also allows simple restoring of lost content without unduly bothering the user of the portable data processing device.
The essential idea of the invention is that data files to be used in a portable data processing device are stored in a volatile memory of the device, while meta data associated with these files is stored in a non- volatile memory of this device. Because of this files lost because of a discharged battery can easily be restored for the portable data processing device.
These and other aspects of the invention will be apparent from and elucidated with reference to the embodiments described hereinafter.
BRIEF DESCRIPTION OF THE DRAWINGS The invention will be described in more detail with reference to embodiments shown in the enclosed drawings to which, however, the inventions is not restricted. Fig 1 schematically shows a portable music player connected to a PC. Fig 2 shows in form of a block diagram of a portable music player according to the present invention. Fig. 3 schematically shows a flow chart of a method of restoring music files lost in the music player in Fig. 2.
Fig. 4 schematically shows a flow chart of a method of storing music files in the music player of Fig. 2.
Fig. 5 schematically shows a computer program product in the form of a CD-ROM disc comprising computer program code for performing the methods according to the present invention.
DESCRIPTION OF EMBODIMENTS
In the following the invention will be described by means of a portable media player in the form of an audio player for playing audio data files. It has, however, to be mentioned that the invention is not limited to audio players but can be applied in other types of media players, such as image presenting and/or captioning units like video players, camcorders or cameras. In fact the present invention is not limited to media players at all but can be used on any portable data processing device working with different types of data files, such as PDAs and laptop computers. The invention can also with advantage be provided in cellular phones.
Normally an portable audio player is a portable battery powered device that includes functionality for playing coded audio data files, like MP3 or WMA coded music and provides sound which can be listened to via a head set.
In order to download audio data files into the audio player the audio player needs to be connected to a PC or some other data processing device from where the audio data can be downloaded either directly or indirectly via the Internet. Fig. 1 schematically shows an audio player 12 having a volatile memory wherein audio data files are to be stored. The audio player 12 is connected to a PC (Personal Computer) 10. For the sake of simplification the audio player 12 is further referred to as player 12. The PC 10 has in this case a processor and program memory, which program memory stores an application for controlling the downloading of audio data files into the player 12 as well as for restoring audio data lost in the player 12. The PC 10 can be seen as a data processing device. The PC 10 furthermore comprises audio data files that can be downloaded into the player 12. In connexion with this, the PC 10 can be seen as a backup-storing device and thus functions as a combined data processing device and backup-storing device. The functioning of the application for downloading and restoring of audio data files is described in more detail later on. After such downloading and when the battery of the player 12 is charged to a sufficient level, the player 12 can be used for listening to music, i.e. downloaded audio data files. When then the player 12 is used for a long time without being charged, the battery will not be able to provide enough power to the player 12 for keeping the volatile memory powered and the content of the volatile memory will be lost.
Fig. 2 shows in form of a block diagram the player 12 according to an embodiment of the present invention. The player 12 includes a USB (Universal Serial Bus) port 24 intended for connection to the PC 10 of Fig. 1. The USB port 24 is connected to a control unit in the form of a micro-controller 14 and to a volatile memory in the form of an SDRAM (Synchronous Dynamic Random Access Memory) 16 and to a non- volatile memory in the form of a flash memory 18. These two memories are also connected to and controllable by the micro-controller 14. The player 12 furthermore comprises a music file or audio data file processing unit divided into two parts, an audio decoder 20 for decoding MP3 coded music files and a digital to analog converter DAC 22 connected to the audio decoder 20 and able to convert decoded digital music files into analog audio signals. The DAC 22 is furthermore connected to an audio output 26, to which audio output 26 an earphone or a loud speaker is connectable for reproducing the analog audio signals of DAC 22. The micro-controller 14 is also connected to the audio decoder 20 and to the DAC 22. The player 12 furthermore includes a battery (not shown) used for powering the player 12. According to the present invention, the volatile memory respectively SDRAM 16 is used for storing audio data files AD, while the non-volatile memory respectively flash memory 18 is used for storing meta data MD related to the stored audio files AD.
Content in the form of audio data files AD is stored in the SDRAM 16 and meta data MD associated with the audio data files AD is stored in the flash memory 18. The meta data MD for an audio data file AD includes the file name of a downloaded file as well as information about the origin of the file on the PC 10, which meta data MD may be in the form "C:\MyMusic\Artist\Album\FileName", for enabling fast retrieving from the PC 10. The information about the origin, i.e. the section "C:\MyMusic\Artist\Album", here points out a location of the file on the PC. As an alternative it is possible to store the information as filename= song.mp3 dir= C:\MyMusic\Artist\Album
This meta data MD for all downloaded files is then provided in a list or table of contents in the flash memory 18. For the sake of explaining the basic functioning of the present invention in this case it is assumed that all files have been downloaded from the PC
10 and thus there are no other file sources. Later on other examples will be given where files are provided from other sources.
A first part of the present invention will now be described with reference being made to Figures 1, 2 and 3, wherein the latter shows a flow chart of a method of restoring content lost in the player 12. The player 12 is first connected with its USB port 24 to a USB port of the PC 10, step 28. When connected, the battery is being charged via this USB port. A restoring application in the PC 10 is alerted or invoked, which alert or invocation can be made automatically as a result of the connection step of the player 12 to the PC 10. It may be mentioned that the restoring application may be started manually by the user. A main procedure executed by the restoring application is described now by means of the flow chart shown in Fig.3. According to a step 30 the restoring application first retrieves the table of contents from the flash memory 18 of the player 12. The restoring application then checks whether the table of contents is empty or not, step 32. If it is empty then the application proceeds with step 40, wherein the player 12 is ready for use by the user. If the table of contents is not empty, step 32, the application continues and checks whether there are audio data files AD in the SDRAM 16, step 34. The checking of files in the SDRAM 16 and the retrieving of the table of contents can either be made directly by the PC 10 addressing the different memories 16, 18 in the player 12 or indirectly under the control of the micro-controller 14, i.e. the micro-controller 14 addresses the memories 16, 18 in question after a query by the restoring application. If there are audio data files AD present in the SDRAM 16 then the restoring application proceed to step 40 and if there are no audio data files AD present in the SDARM 16, i.e. due to the battery has been discharged, the restoring application continues to a step 36. In step 36 the restoring application fetches the audio data files AD from the PC 10 based on the meta data MD. Since the meta data MD, i.e. file name and/or origin information, directly points out the audio data file AD at the specified location of the PC 10, the fetching goes fast. The audio data files AD are then stored in the SDRAM 16 of the player 12, step 37. After the audio data files AD have been written into the SDRAM 16, the table of contents is updated and stored into the flash memory 18, step 38, whereupon the player 12 is ready to use, step 40. Now, when the player 12 is ready for use and still connected to the PC 10, it is possible for the user to download new content. A second part of the invention directed
towards this downloading of new content will now be described with reference being made to Figure 1, 2 and 4, wherein the latter shows a flow chart of a method of storing files in the player 12 that enables later restoring of lost files. The method starts with the application in the PC 10 receiving user selections of audio data files AD present in the PC 10, step 42. In the selection meta data MD in the form of file name and origin information in the form of file location is also obtained. The table of contents is then once again retrieved from the flash memory 18, step 44. The selected audio data files AD are then taken from the specified location, step 46 and stored in the SDRAM 16 of the player 12, step 48. The specified location in this case is the location "C:\MyMusic". This can be achieved by the user dragging and dropping files on representations of the player 12 on the screen of the PC 10. When the user has selected audio data files AD and these have been stored on the SDRAM 16, the table of content is updated in the flash memory 18 with the meta data MD for the newly added audio data files AD mentioned, step 50, and the user has now downloaded content in the player 12, which content can be retrieved if power is lost. With these methods it is possible to store files in a volatile memory, which volatile memory is often both cheaper and faster than a non-volatile solid-state memory, e.g. NAND flash. Because of the meta data MD in the non- volatile memory, the content can be retrieved easily and fast from a backup storage device, which backup storage device in the first embodiment is a PC. The user does not have to be unduly burdened with the restoring of lost content, which restoring can in many cases be performed automatically. The meta data MD also occupies a fairly small space within the non-volatile memory and therefore the non- volatile memory can be kept small. That means that one can use a relatively cheap non¬ volatile memory and that lowers the cost of the player.
The two described methods according to Figures 3 and 4 are preferably provided through software, which software is provided in the PC 10. This software can also be provided in the form of a computer program product like a CD-ROM 52, which is shown in Fig. 5. Said software performs the methods described above when being loaded into the PC 10. It might be mentioned that said software might be provided on a server, being downloadable via the Internet. Another possibility is that said software is present in the player 12 and then preferably in the flash memory 18 and being run by the PC 10 from that memory or being copied to the PC and being run in the PC.
There are a number of variations possible regarding the methods described above. It is possible to only have the file names as meta data MD. In this case the PC 10 has to do a search of the files on the PC 10, which search might take some time. To have stored file names only however limits the size of the flash memory and thus allows it to be even smaller. It is furthermore possible to also have more information in the meta data MD such as user preference settings in the form of personalized file presentation settings of the player, for instance volume, bass and treble and then such a setting for all files or on a file per file basis. It is furthermore possible to have user preference data, for instance presentation order data in the form of one or more play lists, provided in the meta data MD. When a playing process is stopped in a certain position of a play list because of lost power, that position can be noted. Playing can then be resumed from that position upon recharging of the player. It is also possible that a personal schedule intervenes and a new collection status is loaded. It is also possible that the amount of information in the flash memory is reduced, for instance by compressing the table of contents, perhaps using a zip method. Another alternative is to use a path pointer is common to a number of files. This can be exemplified the following way: path = C:\MyMusic dir = Artist\Album filename= song.mp3. The actual path might then only be provided once in the meta data MD if all audio data files AD share the same path or at least a limited number of times, whereas "dir" and "filename" are provided for each file. The application then has to combine the path and dir information in order to obtain the correct location of the file. According to yet another variation of the present invention the application does not check if there are any files present in the SDRAM, but directly downloads the content corresponding to the table of contents.
In the described embodiment audio data files AD only downloaded from one PC 10. It is also possible that audio data files AD are downloaded from other devices, like other PCs, other players, or servers within a network (like internet). In this case audio data files downloaded from a "strange" PC, i.e. a PC not normally used for backup of the files, will not be possible to restore from a "home" PC, i.e. the ordinary backup PC. In this case it is possible that the application will set the origin information of the audio data file AD by
either completely omitting the setting or by some other setting indicating an unknown/unreachable source. It is then possible that when such an audio player is thereafter connected to the "home" PC without the battery being discharged, the content downloaded from the "strange" PC is then first copied to the "home" PC, such that it can later be restored. In this case the origin information of the audio data file AD is furthermore updated to reflect the location in the home PC.
For such a case it is furthermore possible that the method according to the first part of the invention is somewhat modified in that the application first checks if there are audio data files AD on the SDRAM and then restores those audio data files AD that have been lost. In case there are then audio data files AD in the table of contents that are not present in the "home" PC, the user is then notified of the missing audio data files AD and might also optionally be asked if he wants to download them, for instance from a web site. According to another variation of the present invention the audio data files AD are not downloaded from a "home" PC but from a global data file providing server like a server of an Internet web site, perhaps using the "home" PC. In this case the backup storing device is not the "home" PC, but said web server and then the origin information might be a link to a location on the web server, which could be a URL looking something like: "http://www.MusicServer.com/artist/album/filename"
This could be combined with authentication information provided in the flash memory, like password and other types of keys.
The presence of content in the SDRAM might furthermore be signaled from the audio player to the home PC via a response to a "report status" command. The report status command would then be a question to the audio player if it has its content in the SDRAM, which the audio player then answers. A restoring is then made if the answer was negative. It should furthermore be realised that the audio decoder need not be provided in the form of a separate hardware module, but can be provided in the form of software stored in the flash memory and run under the control of the control unit, which control unit in this case is a microprocessor. In this case part of that memory is used for the meta data MD also. The audio player need furthermore not be connected to the PC via a USB port, even if this is preferred since then charging of the battery and downloading of data can be
combined. It can also be provided through a Bluetooth connection or an Ultra Wide Band connection as described in IEEE 802.15.3a. In these cases the audio player would need a separate charger for charging the battery.
It should be emphasized that the term "comprises/comprising" when used in this specification is taken to specify the presence of stated features, integers, steps or components, but does not preclude the presence or addition of one or more other features, integers, steps, components or groups thereof. It should furthermore be realized that reference signs appearing in the claims should in no way be construed as limiting the scope of the present invention.