Claims Analysis
Total Claims: 11
Claim 1
Independent Claim
257 words
A data storage device of the type comprising: - input/output means (10) for exchanging data between the device and an external data handling system; - media read/write means (12) for reading/writing data from/to a storage medium; - a data buffer (13) connected between the input/output means (10) and the media read/write means (12) for buffering the transfer of data between the input/output means (10) and the media read/write means; and - control and processing means (16)connected to the input/output means (10), the data buffer (13) and the read/write means (12), and operative to control the transfer of data via said data buffer (13) between the input/output means (10) and the read/write means (12) and to process said data, said control and processing means (16) including a non-volatile memory (18) for holding program code and a program-controlled processor (17) operative to execute said program code; characterised in that at least a portion of said non-volatile memory is a flash memory (18) and the control and processing means (16) is operative to implement the following steps in sequence for the purpose of reprogramming the flash memory (18) with new program code: a) storage of the new program code, received via said input/output means (10) or said media read/write means (12), into said data buffer (13); b) determination of when all said new program code has been received and stored in the data buffer (13); c) erasure of said flash memory (18); and d) transfer of the new program code from said data buffer (13) to said flash memory (18).
Claim 2
Dependent Claim
108 words
A data storage device according to claim 1, wherein at least steps (c) and (d) are implemented by said program-controlled processor (17) under the control of the original said program code, said processor (17) having a further, rewritable, memory (19) associated therewith and the control and processing means (16) being operative in reprogramming the flash memory (18) to copy across from the flash memory (18) to said further memory (19), prior to erasure of the flash memory, that portion of said original program code which corresponds to steps (c) and (d) and thereafter to execute steps (c) and (d) by reading the code from said further memory (19).
Claim 3
Dependent Claim
107 words
A data storage device according to claim 1, wherein at least steps (c) and (d) are implemented by said control and processing means (16) under program control, said control and processing means (16) including a further, rewritable, memory (19) and being operative in reprogramming the flash memory (18) to receive and store in said further memory (19), a program for implementing steps (c) and (d) that is provided via said input/output means (10) or said read/write means (12) along with said new program code, the control and processing means (16) thereafter executing steps (c) and (d) by reading the said program stored in said further memory (19.
Claim 4
Dependent Claim
65 words
A data storage device according to claim 1, wherein following a positive determination in step (b) and prior to implementing step (c), the control and processing means (16) effects a checking step in which one or more checks are carried out on the new program code, the control and processing means (16) only proceeding with steps (c) and (d) where the check results are satisfactory.
Claim 5
Dependent Claim
43 words
A data storage device according to claim 4, wherein said checking step involves checking the new program code stored in the data buffer (13) to ascertain whether any of the new program code has become corrupted since storage in the data buffer (13).
Claim 6
Dependent Claim
114 words
A data storage device according to claim 5, wherein the device is operative during step (a): - to store parity data in respect of each byte or word of the new program code, and - to generate progressively an error checking code by carrying out an exclusive OR function between each bit of the new program code as it is stored in the data buffer (13) and another bit in said buffer, the resultant error checking code being stored in said buffer; the device being further operative during said checking step to regenerate said error checking code and said parity data to detect any errors and seek to effect correction of errors so detected.
Claim 7
Dependent Claim
106 words
A data storage device according to claim 4, wherein the flash memory (18) holds identification data indicative of the identity of said program code and/or of said device, and wherein the said new program code also includes identification data indicative of the identity of the new program code and/or of the device on which the new program code is intended to run; said control and processing means (16) being operative during the said checking step to compare the identification data held in the flash memory (18) with that provided with the new program code to ascertain whether the new program code is compatible with said device.
Claim 8
Dependent Claim
52 words
A data storage device according to claim 4, wherein the flash memory (18) holds device operational parameters, the control and processing means being operative to transfer said device operational parameters to a temporary store (13) prior to implementing step (c), and then subsequently to restore said parameters to the flash memory (18).
Claim 9
Dependent Claim
113 words
A data storage device according to claim 1, wherein the control and processing means (16) is operative during step (a) to calculate a checksum for the area of the buffer used to store the new program code, this checksum being recalculated as new program code is progressively stored in the buffer (13), the final checksum being loaded into the flash memory (18) together with the new program code; the control and processing means (16) being further operative upon power up of the device to recalculate the checksum for the flash memory (18) and compare it with the stored checksum to check the integrity of the program code stored in the flash memory (18).
Claim 10
Dependent Claim
57 words
A data storage device according to claim 1, wherein along with the new program code, the device is provided with an indication of the length of the new code, the control and processing means (16) being operative in implementing step (b) to utilize this length information to determine when all said new program code has been received.
Claim 11
Dependent Claim
48 words
A data storage device according to claim 1, wherein the new program code is provided to said device in encoded form, the control and processing means (16) being operative in implementing step (a) to decode the encoded program code and to store decoded code in said buffer (13).