Patent ID: 6961833

Claim:
A method for protecting data in a computer system having a storage device, a computing device and a data protection controller interposed between the storage device and the computing device, the method comprising the steps of: executing a configuration procedure to create four virtual partitions including a read-only zone, a sketch zone, an admin zone and an unprotect zone in the storage device; loading protected data to the storage device; and executing a data protection procedure including the steps of: (a) setting the protection controller to a data protection mode; (b) initializing the sketch zone; (c) initializing a location table in the admin zone; (d) waiting until a write data request or a read data request is received; (e) determining whether the received request is a read data request or a write data request, executing step (f) if the received request is a read data request, otherwise executing step (k); (f) determining whether data requested by the read data request is in the unprotect zone or not, executing step (g) if data requested by the read data request is in the unprotect zone, otherwise executing step (h); (g) retrieving the requested data from the unprotect zone, transmitting the retrieved data to the computing device, and returning to step (d); (h) checking the location table to determine if the requested data has been written in the sketch zone; (i) retrieving the requested data from the sketch zone, transmitting the retrieved data to the computing device and returning to step (d) if the requested data has been written in the sketch zone, otherwise executing step (j); (j) retrieving the requested data from the read-only zone, writing the requested data into the sketch zone, updating the location table to indicate that the retrieved data from the read-only zone has been written in the sketch zone, transmitting the retrieved data to the computing device, and returning to step (d); (k) determining whether the write data request is to write data to a section in the unprotect zone or not, executing step (l) if the write data request is to write data in the unprotect zone, otherwise executing step (m); (l) writing data to the section in the unprotect zone and returning to step (d); (m) writing data to a section in the sketch zone, updating the location table to indicate that the section in the sketch zone contains valid data, and returning to step (d).