1. Field of the Invention
The disclosed embodiments relate to data storage devices and data management methods, and more particularly relate to data storage devices with anti-copy protection and data management methods thereof.
2. Background Technology
With the development of information processing technology, requirements for data storage devices have been significantly increased. Portable data storage devices, such as memory cards or USB flash drives (UFDs), which can provide hand-held convenience, large data storage capacity and efficient access, are commonly used in a variety of consumer electronic devices, including mobile phones, digital cameras, personal digital assistants (PDAs) and so on. In addition, with the popularity of portable data storage devices growing, document security for data stored in the data storage devices, such as authorized music or film documents, has become a significant issue.
Conventionally, to address the security flaws related to illegal copying of data storage devices, encryption and decryption techniques, or password verification techniques have typically been developed and implemented. However, each technique may have different drawbacks.
As for encryption and decryption techniques, specific algorithms, such as a cryptographic function, may be applied to encrypt data during data write-in and perform corresponding decryption when the encrypted data is accessed. However, the cryptographic function generally consumes considerable processing time, thereby significantly degrading the performance of data read-out or data write-in process. Moreover, use of the same algorithm is required for both the encryption process and the decryption process. For example, a personal computer or a mobile phone is required to perform corresponding decryption processes after the encryption process is performed on a memory card. That is, it is necessary for the personal computer or the mobile phone to be provided with a corresponding process, so as to allow a user to play music or films on the personal computer or the mobile phone. Thus, the process is inconvenient for users; thereby, hindering the memory card of becoming an even more reliable general purpose device for use.
As for the password verification techniques, when a user accesses data stored in a data storage device, the user needs to enter a corresponding password for verification. Only when the password input by the user is conformed to be the stored password, is when access to the data stored in the data storage device can be obtained. However, a single password is prone to theft; thus, mitigating reliable anti-copy protection.
Accordingly, there is a need for easy, reliable and feasible data management methods capable of preventing data stored in data storage devices from being illegally copied.
An embodiment of the invention provides a data storage device, which is coupled to a host, including a storage media and a controller. The storage media includes a plurality of data sectors for storing data. The controller is coupled to the storage media for sequentially receiving one or more read commands and one or more logical addresses (corresponding to the one or more read commands) from the host, reading a plurality of first data sectors from the storage media according to the one or more read commands and the corresponding one or more logical addresses, outputting data of the first data sectors to the host, calculating a valid duration required for the one or more read commands, calculating an average data throughput according to the number of the first data sectors and the valid duration, and determining whether the average data throughput exceeds a predetermined threshold. In an embodiment, the controller performs a blocking procedure to prevent the storage media from being accessed when the average data throughput exceeds the predetermined threshold.
In addition, an embodiment of the invention provides a data storage device, which is coupled to a host, including a storage media and a controller. The storage media includes a plurality of data sectors for storing a media file. The media file having a plurality of logical address windows is stored into the data sectors with sequential logical addresses. Further, the controller is coupled to the storage media for receiving a first read command and a first logical address (corresponding to the first read command) from the host, determining whether the first logical address is located in a first logical address window of the logical address windows, activating a timer and a counter when the first logical address is located in the first logical address window, reading a plurality of first data sectors from the storage media according to the first logical address, outputting data of the first data sectors to the host, obtaining a valid duration calculated by the timer and the number of the first data sectors counted by the counter when any logical address corresponding to the first data sectors is outside of the first logical address window, calculating an average data throughput according to the number of the first data sectors and the valid duration, and determining whether the average data throughput exceeds a predetermined threshold. In an embodiment, the controller performs a blocking procedure to prevent the storage media from being accessed when the average data throughput exceeds the predetermined threshold.
In addition, an embodiment of the invention provides a data management method for a data storage device. The data storage device includes a storage media having a plurality of data sectors. The data management method includes the steps of: receiving a plurality of read commands and corresponding logical addresses, wherein each logical address is located in a first logical address window; reading a plurality of first data sectors from the storage media according to the read commands and the logical addresses; outputting data of the first data sectors; calculating a valid duration required for the read commands; calculating an average data throughput according to the number of the first data sectors and the valid duration; and performing a blocking procedure to prevent the storage media from being accessed when the average data throughput exceeds a predetermined threshold.
In addition, an embodiment of the invention provides a data management method for a data storage device having a storage media. The storage media includes a plurality of data sectors for storing a media file and the media file includes a plurality of logical address windows. The data management method includes the steps of: receiving a first read command and a corresponding first logical address, wherein the first logical address is located in a first logical address window; starting to calculate a valid duration; reading a plurality of first data sectors from the storage media according to the first read command and the first logical address; sequentially outputting data of the first data sectors; obtaining the number of the first data sectors and the valid duration when any logical address corresponding to the first data sectors is outside of the first logical address window; calculating an average data throughput according to the number of the first data sectors and the valid duration; and performing a blocking procedure to prevent the storage media from being accessed when the average data throughput exceeds a predetermined threshold.
In addition, an embodiment of the invention provides a data management method for a data storage device having a storage media. The storage media includes a plurality of data sectors for storing a media file and the media file includes a plurality of logical address windows. The data management method includes the steps of: receiving a first read command and a corresponding first logical address, wherein the first logical address is located in a first logical address window; starting to calculate a valid duration; reading a plurality of first data sectors from the storage media according to the first read command and the first logical address; sequentially outputting data of the first data sectors; obtaining the valid duration when any logical address corresponding to the first data sectors is outside of the first logical address window; and performing a blocking procedure to prevent the storage media from being accessed when the valid duration is below a predetermined threshold.
In addition, an embodiment of the invention provides a data management method for a data storage device having a storage media. The storage media includes a plurality of data sectors for storing a media file and the media file includes a plurality of logical address windows. The data management method includes the steps of: receiving a first read command and a corresponding first logical address, wherein the first logical address is located in a first logical address window; starting to calculate a valid duration; reading a plurality of first data sectors from the storage media according to the first read command and the first logical address; sequentially outputting data of the first data sectors; receiving a second command and a corresponding second logical address; obtaining the number of the first data sectors and the valid duration when the second logical address is outside of the first logical address window; calculating an average data throughput according to the number of the first data sectors and the valid duration; and performing a blocking procedure to prevent the storage media from being accessed when the average data throughput exceeds a predetermined threshold.
In addition, an embodiment of the invention provides a data management method for a data storage device having a storage media. The storage media includes a plurality of data sectors for storing a media file and the media file includes a plurality of logical address windows. The data management method includes the steps of: receiving a first read command and a corresponding first logical address, wherein the first logical address is located in a first logical address window; starting to calculate a valid duration; reading a plurality of first data sectors from the storage media according to the first read command and the first logical address; sequentially outputting data of the first data sectors; receiving a second command and a corresponding second logical address; obtaining the valid duration when the second logical address is outside of the first logical address window; and performing a blocking procedure to prevent the storage media from being accessed when the valid duration is below a predetermined threshold.
In addition, an embodiment of the invention provides a data management method for a data storage device having a storage media. The storage media includes a plurality of data sectors for storing a media file and the media file includes a plurality of logical address windows. The data management method includes the steps of: sequentially receiving one or more read commands and corresponding one or more logical addresses thereto, wherein a first logical address corresponding to a first read command is located in a first logical address window; reading a plurality of first data sectors from the storage media according to the one or more read commands and the corresponding one or more logical addresses; activating a counter for counting the number of the read commands which have been executed; obtaining a count from the counter when any logical address corresponding to the first data sectors is outside of the first logical address window; and performing a blocking procedure to prevent the storage media from being accessed when the count from the counter is equal to or below a predetermined threshold.
In addition, an embodiment of the invention provides a data management method for a data storage device having a storage media. The storage media includes a plurality of data sectors for storing a media file and the media file includes a plurality of logical address windows. The data management method includes the steps of: sequentially receiving one or more read commands and corresponding one or more logical addresses thereto, wherein a first logical address corresponding to a first read command is located in a first logical address window; reading a plurality of first data sectors from the storage media according to the one or more read commands and the corresponding one or more logical addresses; activating a counter for counting the number of the read commands which have been executed; obtaining a count from the counter when a second logical address corresponding to a second read command is outside of the first logical address window; and performing a blocking procedure to prevent the storage media from being accessed when the count from the counter is equal to or below a predetermined threshold.
A detailed description is given in the following embodiments with reference to the accompanying drawings.
10˜data storage device;
102˜host;
104˜controller;
106˜storage media; and
120˜content table.
The following description is of the best-contemplated mode of carrying out the invention. This description is made for the purpose of illustrating the general principles of the invention and should not be taken in a limiting sense. The scope of the invention is best determined by reference to the appended claims.
As shown in
In operation, the controller 104 is coupled between the storage media 106 and the host 102 for receiving commands with control signals, logical addresses and data from the host 102 and accessing the storage media 106 accordingly. For example, the host 102 may issue read commands and corresponding logical addresses to the controller 104 via a control bus 108. Next, the controller 104 accesses corresponding data sectors according to the corresponding logical addresses. Then, data of the data sectors is returned to the host 102 via a data bus 110 after being read out.
According to an embodiment, one or more media files to be protected against illegal copying, such as authorized music or film files, are stored in the storage media 106. Specifically, each media file may be store into sequential data sectors of the storage media 106 before the data storage device 10 leaves the factory, such that each media file is stored into data sectors with sequential logical addresses. Thus, when the host 102 attempts to read the media files, the host 102 requests data of sequential logical addresses, as shown in
Further, the media file 202 may be divided into four logical address windows 202A, 202B, 202C and 202D, but is not limited to this.
Referring to
In one embodiment, when the host 102 attempts to duplicate/copy the media file 202, the controller 104 receives a plurality of read commands, start logical addresses and data lengths (for simplicity, hereinafter referred to as read commands 212, 214, 216, 218, 220 and 222). In this case, the logical addresses from 1000 to 3000 are read in response to the read command 212, the logical addresses from 3000 to 5000 are read in response to the read command 214, the logical addresses from 5000 to 7000 are read in response to the read command 216, the logical addresses from 7000 to 9000 are read in response to the read command 218, the logical addresses from 9000 to 11000 are read in response to the read command 220, the logical addresses from 11000 to 13000 are read in response to the read command 222, and so on. A detailed description of data management methods for the data storage device 10 is illustrated herein below with reference to
Referring to
In this situation, when receiving the first read command 212 and the first logical address 1000 corresponding to the first read command 212 (i.e., a start logical address to be read) (step S302), the controller 104 subsequently determines whether the first logical address 1000 is located in one of the four logical address windows 202A, 202B, 202C and 202D of the media file 202 (step S304).
In this embodiment, it is assumed that the first logical address 1000 is located in the first logical address window 202A of the media file 202, and a timer and a counter have not been activated yet (step S306). Thus, the controller 104 further activates the timer and the counter (step S308). Specifically, the timer starts to calculate a valid duration and the counter starts to count the number of data sectors which have been output to the host 102.
Next, the controller 104 reads data stored in corresponding data sectors from the storage media 106 according to the first read command 212 and the first logical address 1000 (i.e., the start logical address to be read), and then outputs the data of the corresponding data sectors to the host 102 (step S310). For example, the controller 104 may read 2000 data sectors from the storage media 106 and then output data of the 2000 data sectors to the host 102.
Similarly, the controller 104 receives the read command 214 and the logical address 3000 (i.e., a start logical address to be read) (step S302). Then, the controller 104 determines whether the logical address 3000 is still located the first logical address window 202A of the media file 202 (step S304). In this case, because the timer and the counter have been activated upon executing the read command 212 (step S306), data stored in corresponding data sectors is directly output (step S310). For example, the controller 104 may read 2000 data sectors from the storage media 106 and then output data of the 2000 data sectors to the host 102.
In this manner, the controller 104 further receives the following read commands 216, 218 and 220. As for the process associated with the read commands 216, 218 and 220, it is similar to the process discussed above with respect to the read command 214, and detailed descriptions thereof will be omitted.
Next, the controller 104 receives the second read command 222 and the second logical address 11000 corresponding to the second read command 222 (step S302). As shown in
Following, the controller 104 calculates average data throughput according to the total number of data sectors 10000 and the valid duration 1 second, i.e., 10000 (step S314).
Next, the timer and the counter are respectively reset (step S316). Following, the controller 104 then determines whether the average data throughput 10000 exceeds a predetermined threshold, e.g., 300 (step S318). When the average data throughput exceeds the predetermined threshold, the controller 104 determines that the host 102 has attempted to duplicate the media file 202. As a result, the controller 104 performs a blocking procedure to prevent the host 102 from accessing the storage media 106 (step S320).
According to an embodiment, the controller 104 may output dummy data or invalid data to the host 102 regardless of the following read commands and logical addresses. According to another embodiment, the blocking procedure is performed to ignore all subsequent commands issued by the host 102. According to another embodiment, the blocking procedure is stopping to supply power to the controller 104, so as to power off the data storage device 10. That is, the blocking procedure may be any appropriate method capable of preventing the host 102 from continuously/further accessing the data storage device 10, including, but not are limited to the aforementioned embodiments. Accordingly, the disclosed technique is advantageous to preventing data, which is stored in the storage media 106, from being illegally copied.
Alternatively, when the average data throughput is below the predetermined threshold, the controller 104 allows the operation of the host 102 on the storage media 106 to proceed.
According to the data management method 40, it is noted that only the timer is utilized for elapsed time calculation in steps S406 and S408. Thus, when the controller 104 receives the second read command 222 and the second logical address 11000, the controller 104 obtains the valid duration calculated by the timer, such as 1 second (step S412), and then resets the timer (step S416).
Next, the controller 104 determines whether the valid duration, such as 1 second, is below a predetermined threshold, such as 30 seconds (step S418).
When the valid duration is below the predetermined threshold, the controller 104 performs a blocking procedure (step S420). Note that the blocking procedure is illustrated in the aforementioned embodiments, and hence, a further description thereof is omitted.
When the valid duration is not below the predetermined threshold, the controller 104 allows the operation of the host 102 on the storage media 106 to proceed.
As shown in
In addition, the media file 502 may be divided into four logical address windows 502A, 502B, 502C and 502D, but is not limited to this.
Referring to
In one embodiment, when the host 102 attempts to duplicate/copy the media file 502, the controller 104 receives a plurality of read commands, logical addresses and data lengths (for simplicity, hereinafter referred to as read commands 512, 514, 516, 518 and 520). In this case, the logical addresses from 1000 to 3200 are read in response to the read command 512, the logical addresses from 3200 to 5400 are read in response to the read command 514, the logical addresses from 5400 to 7600 are read in response to the read command 516, the logical addresses from 7600 to 9800 are read in response to the read command 518, the logical addresses from 9800 to 12000 are read in response to the read command 520, and so on.
According to this embodiment, it is noted that each logical address window is not equal to integer multiples of the read commands. That is, the address range read by the read command 520 at least is partially located in the first logical address window 502A while the remaining part of the address range is outside of the first logical address window 502A. A detailed description is given below with reference to
Referring to
In this situation, when receiving the first read command 512 and the first logical address 1000 corresponding to the first read command 512 (i.e., a start logical address to be read) (step S602), the controller 104 subsequently determines whether the first logical address 1000 is located in one of the four logical address windows 502A, 502B, 502C and 502D of the media file 502 (step S604).
In this embodiment, it is assumed that the first logical address 1000 is located in the first logical address window 502A of the media file 502, and a timer and a counter have not been activated yet (step S606). Thus, the controller 104 further activates the timer and the counter (step S608). Specifically, the timer starts to calculate a valid duration and the counter starts to count the number of data sectors which have been output to the host 102.
Next, the controller 104 reads data stored in corresponding data sectors from the storage media 106 according to the first read command 512 and the first logical address 1000 (i.e., the start logical address to be read), and then outputs the data of the corresponding data sectors to the host 102 (step S610). For example, the controller 104 may read 2200 data sectors from the storage media 106. Further, when sequentially outputting data of the 2200 data sectors, the controller 104 simultaneously determines whether the logical addresses corresponding to the data sectors which have been output are located in the first logical address window 502A (step S660). For example, since the logical address 1000 corresponding to the first data sector which has been output is located in the first logical address window 502A, the controller 104 proceeds to output a next data sector. Since the logical address 1001 corresponding to the next data sector is still located in the first logical address window 502A, the controller 104 proceeds to output a further next data sector. In this embodiment, because the logical address 3199 corresponds to the last data sector retrieved by the read command 512 is still located in the first logical address window 502A, the controller 104 returns to step S602.
Similarly, the controller 104 receives the read command 514 and the logical address 3200 (i.e., a start logical address to be read) (step S602). Then, the controller 104 determines whether the logical address 3200 is still located in the first logical address window 502A of the media file 502 (step S604). In this case, because the timer and the counter have been activated upon executing the read command 512 (step S606), data stored in corresponding data sectors is directly output (step S610). Note that when sequentially outputting the data sectors, the controller 104 simultaneously determines whether the logical addresses corresponding to the data sectors which have been output are located in the first logical address window 502A (step S660). The process is similar to the process discussed above with respect to the read command 512, and hence, a detailed description thereof is omitted.
In this manner, the controller 104 further receives the following read commands 516 and 518. As for the process associated with the read commands 516 and 518 it is similar to the process discussed above with respect to the read command 514, and further descriptions thereof will be omitted.
Next, the controller 104 receives the second read command 520 and the second logical address 9800 corresponding to the second read command 520 (step S602). As shown in
Following, the controller 104 calculates an average data throughput according to the total number of data sectors 10000 and the valid duration 1 second, i.e., 10000 (step S614).
Next, the timer and the counter are respectively reset (step S616). Following, the controller 104 then determines whether the average data throughput 10000 exceeds a predetermined threshold, e.g., 300 (step S618). When the average data throughput exceeds the predetermined threshold, the controller 104 determines that the host 102 has attempted to duplicate the media file 502. As a result, the controller 104 performs a blocking procedure to prevent the host 102 from accessing the storage media 106 (step S620).
According to an embodiment, the controller 104 may output dummy data or invalid data to the host 102 regardless of the following read commands and logical addresses. According to another embodiment, the blocking procedure is performed to ignore all subsequent commands issued by the host 102. According to another embodiment, the blocking procedure is stopping to supply power to the controller 104, so as to power off the data storage device 10. That is, the blocking procedure may include, but not are limited to the aforementioned embodiments. Any appropriate method capable of preventing the host 102 from continuously/further accessing the data storage device 10 may be appropriate. Accordingly, the disclosed technique is advantageous to preventing data stored in the storage media 106 from being illegally copied.
Alternatively, when the average data throughput is below the predetermined threshold, the controller 104 allows the operation of the host 102 on the storage media 106 to proceed.
According to the data management method 70, it is noted that only the timer is utilized for elapsed time calculation in steps S706 and S708. Thus, when the controller 104 outputs the data sector with the logical address 11000, the controller 104 obtains the valid duration calculated by the timer, such as 1 second (step S712), and then resets the timer (step S716).
Next, the controller 104 determines whether the valid duration, such as 1 second, is below a predetermined threshold, such as 100 seconds (step S718).
When the valid duration is below the predetermined threshold, the controller 104 performs a blocking procedure (step S720). Note that the blocking procedure is illustrated in the aforementioned embodiments, and hence, a further description thereof is omitted.
When the valid duration is not below the predetermined threshold, the controller 104 allows the operation of the host 102 on the storage media 106 to proceed.
As shown in
In addition, the media file 802 may be divided into three logical address windows 802A, 802B and 802C, but is not limited to this.
Referring to
In one embodiment, when the host 102 attempts to duplicate/copy the media file 802, the controller 104 receives a read command 812 and a corresponding start logical address 1000. Further, the host 102 may issue a stop command to the controller 104 to stop the read operation. According to this embodiment, it is assumed that the host 102 issues the stop command to the controller 104 when receiving the data sector with the logical address 30999. A detailed description of preventing the host 102 from copying the media file 802 as shown in
Referring to
In this embodiment, it is assumed that the first logical address 1000 is located in the first logical address window 802A of the media file 802, and a timer and a counter have not been activated yet (step S906). Thus, the controller 104 further activates the timer and the counter (step S908). Specifically, the timer starts to calculate a valid duration and the counter starts to count the number of data sectors which have been output to the host 102.
Next, the controller 104 sequentially outputs data of the data sectors since the first read command 812 is a read command with variable data lengths (step S910). In addition, the controller 104 determines whether the logical addresses corresponding to the data sectors which have been output are located in the first logical address window 802A (step S960). When the controller 104 outputs the data sector with the logical address 11000, the logical address 11000 is determined to be outside of the first logical address window 802A. In this situation, the controller 104 obtains the valid duration calculated by the timer and the total output number of data sectors counted by the counter. According to the embodiment of
Following, the controller 104 calculates an average data throughput according to the total number of data sectors 10000 and the valid duration 1 second, i.e., 10000 (step S914).
Next, the timer and the counter are respectively reset (step S916). Following, the controller 104 then determines whether the average data throughput 10000 exceeds a predetermined threshold, e.g., 400 (step S918). When the average data throughput exceeds the predetermined threshold, the controller 104 determines that the host 102 has attempted to duplicate the media file 802. As a result, the controller 104 performs a blocking procedure to prevent the host 102 from accessing the storage media 106 (step S920).
Alternatively, when the average data throughput is below the predetermined threshold, the controller 104 allows the operation of the host 102 on the storage media 106 to proceed.
According to the data management method 100, it is noted that only the timer is utilized for elapsed time calculation in steps S1006 and S1008. Thus, when the controller 104 outputs the data sector with the logical address 11000, the controller 104 obtains the valid duration calculated by the timer, such as 1 second (step S1012), and then resets the timer (step S1016).
Next, the controller 104 determines whether the valid duration, such as 1 second, is below a predetermined threshold, such as 50 seconds (step S1018).
When the valid duration is below the predetermined threshold, the controller 104 performs a blocking procedure (step S1020). Note that the blocking procedure is illustrated in the aforementioned embodiments, and hence, a further description thereof is omitted.
When the valid duration is not below the predetermined threshold, the controller 104 allows the operation of the host 102 on the storage media 106 to proceed.
As shown in
In addition, the media file 1102 may be divided into four logical address windows 1102A, 1102B, 1102C and 1102D, but is not limited to this.
Referring to
In one embodiment, when the host 102 attempts to play the media file 1102, the controller 104 receives a plurality of read commands, start logical addresses and data lengths and so on (for simplicity, hereinafter referred to as read commands 1112, 1114, 1116 . . . , 1300 and so on). In this case, the logical addresses from 1000 to 1050 are read in response to the read command 1112, the logical addresses from 1050 to 1100 are read in response to the read command 1114, the logical addresses from 1100 to 1150 are read in response to the read command 1116, the logical addresses from 10980 to 11030 are read in response to the read command 1300, and so on. That is, when the media file 1102 is played, each read command only reads 50 data sectors, i.e., the length of the logical addresses is equal to 50. In operation, a second logical address window is defined to indicate the length of the logical addresses for each data read, such as 50 when the media file 1102 is played. According to one embodiment, the length of the logical addresses for each data read may be determined by the format of the media file 1102. Thus, when playing the media file 1102, the host 112 only reads sufficient amount of data for decoding software. Specifically, each length of the four logical address windows, such as the length of the first logical address window 1102A, i.e., 10000, exceeds the length of the second logical address window, such as 50. More specifically, each length of the four logical address windows is preferably about two, three or more times the length of the second logical address window.
According to the embodiment of
According to this embodiment, each logical address window is not equal to integer multiples of the read commands. That is, the address range read by the read command 1300 at least is partially located in the first logical address window 1102A while the remaining part of the address range is outside of the first logical address window 1102A. A detailed description in conjunction with a situation in which, when the media file 1102 is played, the host 102 will not be inhibited from accessing the storage media 106, is given below with reference to
Referring to
In this situation, the controller 104 receives the first read command 1112 and the first logical address 1000 corresponding to the first read command 1112 (i.e., a start logical address to be read) (step S902). The controller 104 subsequently determines whether the first logical address 1000 is located in one of the four logical address windows 1102A, 1102B, 1102C and 1102D of the media file 1102 (step S904).
In this embodiment, it is assumed that the first logical address 1000 is located in the first logical address window 1102A of the media file 1102, and a timer and a counter have not been activated yet (step S906). Thus, the controller 104 further activates the timer and the counter (step S908). Specifically, the timer starts to calculate a valid duration and the counter starts to count the number of data sectors which have been output to the host 102.
Next, the controller 104 reads data stored in corresponding data sectors from the storage media 106 according to the first read command 1112 and the first logical address 1000 (i.e., the start logical address to be read), and then outputs the data of the corresponding data sectors to the host 102 (step S910). Specifically, the controller 104 reads and sequentially outputs the 50 data sectors from the storage media 106, and then determines whether the logical addresses corresponding to the data sectors which have been output are located in the first logical address window 1102A (step S960). For example, since the logical address 1000 corresponding to the first data sector which has been output is located in the first logical address window 1102A, the controller 104 proceeds to output a next data sector. Since the logical address 1001 corresponding to the next data sector is still located in the first logical address window 1102A, the controller 104 proceeds to output a further next data sector. In this embodiment, because the logical address 1049 corresponding to the last data sector read and output by the read command 1112 is still located in the first logical address window 1102A, the controller 104 returns to step S902.
When 10 seconds have elapsed, the controller 104 receives the read command 1114 and the logical address 1050 (i.e., a start logical address to be read) (step S902). Then, the controller 104 determines whether the logical address 1050 is still located in the first logical address window 1102A of the media file 1102 (step S904). In this case, because the timer and the counter have been activated upon executing the read command 1112 (step S906), data stored in corresponding data sectors is directly output (step S1110). Note that when sequentially outputting the data sectors, the controller 104 simultaneously determines whether the logical addresses corresponding to the data sectors which have been output are located in the first logical address window 1102A (step S960). The process is similar to the process discussed above with respect to the read command 1112, and hence, a detailed description thereof is omitted.
In this manner, the controller 104 further receives the following read command 1116. As for the process associated with the read commands 1116 it is similar to the process discussed above with respect to the read command 1114, and further descriptions thereof will be omitted.
Next, the controller 104 receives the second read command 1130 and the second logical address 10980 corresponding to the second read command (step S902). As shown in
Following, the controller 104 calculates an average data throughput according to the total number of data sectors 10000 and the valid duration 2000 seconds, i.e., 5 (step S914).
Next, the timer and the counter are respectively reset (step S916). Following, the controller 104 then determines whether the average data throughput 5 exceeds the predetermined threshold, e.g., 300 (step S918).
According to this embodiment, the average data throughput 5 is below the predetermined threshold 300, and thus the controller 104 determines that the host 102 has attempted to play the media file 1102, not to duplicate the media file 1102. As a result, the access to the storage media 106 from the host 102 is allowed to proceed by the controller 104 (step S902).
In general, the average data throughput 5 associated with playing the media file 1102 is substantially smaller than the average data throughput 10000 associated with duplicating the media file 1102, thereby facilitating setting of the predetermined threshold. For example, the predetermined threshold may be equal to 300, 500 or 2000 etc.
Referring to
According to the data management method 100, it is noted that only the timer is utilized for elapsed time calculation in steps S1006 and S1008. Thus, when the controller 104 outputs the data sector with the logical address 11000, the controller 104 obtains the valid duration calculated by the timer, such as 2000 seconds (step S1012), and then resets the timer (step S1016).
Next, the controller 104 determines whether the valid duration, such as 2000 seconds, exceeds the predetermined threshold, such as 50 seconds (step S1018).
When the valid duration is not below the predetermined threshold, the controller 104 allows the operation of the host 102 on the storage media 106 to proceed. According to the aforementioned description, the valid duration associated with playing the media file, i.e., 2000 seconds, is considerably larger than the valid duration associated with duplicating the media file, i.e., 1 second. Accordingly, the predetermined threshold may be set as 10 seconds, 20 seconds or 100 seconds.
Additionally, the length of each logical address windows 1102A, 1102B, 1102C and 1102D is larger than the length of each read commands 1112, 1114 and 1116. The length of the logical addresses for each read command may be determined by the format of the media file 1102, such as an MP3 file format, an AVI file format, etc. According to another embodiment, each logical address window may also be determined by the playing time of the media file. For example, each logical address window may be indicative of one-third, one-quarter or one-fifth the playing time of the media file.
When the storage media 106 stores several media files to be protected, a start logical address and a final logical address corresponding to each media file may be recorded into one content table.
According to this embodiment, five media files 1202, 1204, 1206, 1208 and 1210 are prohibited from being illegally copied by users. Referring to
More specifically, for each media file, the controller 104 may further record a window start logical address and a window final logical address corresponding to each logical address window, e.g., the window start logical address 11000 and the window final logical address 21000 corresponding to the logical address window 202B as shown in
From the aforementioned description, the data storage device and the data management methods thereof according to the embodiments of the invention advantageously provide an easy, reliable and feasible manner capable of preventing data to be protected from being illegally copied, without further sacrificing the performance of access to the data storage device.
While the invention has been described by way of example and in terms of preferred embodiment, it is to be understood that the invention is not limited thereto. Those who are skilled in this technology can still make various alterations and modifications without departing from the scope and spirit of this invention. Therefore, the scope of the present invention shall be defined and protected by the following claims and their equivalents.
This application is the 35 U.S.C. §371 national stage of PCT application PCT/CN2010/071055, filed Mar. 15, 2010, with Chinese Patent Office claiming priority of U.S. Provisional Patent Application 61/264,959, filing date Nov. 30, 2009, herein incorporated by reference in their entirety.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/CN10/71055 | 3/15/2010 | WO | 00 | 4/12/2011 |
Number | Date | Country | |
---|---|---|---|
61264959 | Nov 2009 | US |