Device controller and method for performing a plurality of write transactions atomically within a nonvolatile data storage device
First Claim
1. A method of operating a device controller to perform a plurality of write transactions atomically within a non-volatile data storage device, each transaction specifying a logical address, the method comprising:
- creating an address translation map for the logical addresses specified by said plurality of write transactions, by referencing an address translation record in the non-volatile data storage device to determine for each logical address a corresponding physical address within the data storage device, and if the corresponding physical address indicated in the address translation record already contains valid data, remapping the logical address to a new physical address in said address translation map;
performing said plurality of write transactions using the logical address to physical address mapping in said address translation map; and
updating the address translation record in the non-volatile data storage device to identify the logical address to physical address mapping in said address translation map only once said plurality of write transactions have been performed in said non-volatile storage device.
1 Assignment
0 Petitions
Accused Products
Abstract
A device controller and method are provided for performing a plurality of write transactions atomically within a non-volatile data storage device. Each transaction specifies a logical address and the method comprises creating an address translation map for the logical addresses specified by the plurality of write transactions, by referencing an address translation record within the non-volatile data storage device to determine for each logical address a corresponding physical address within the data storage device. Further, if the corresponding physical address indicated in the address translation record already contains valid data, the logical address is remapped to a new physical address in the address translation map. However, at this point the address translation record as stored in the data storage device is not updated. Instead, the plurality of write transactions are performed using the logical address to physical address mapping in the address translation map. Then, only once the plurality of write transactions have been performed is the address translation record updated in the non-volatile data storage device in order to identify the logical address to physical address mapping in the address translation map. Since, at the time of performing the write transactions, any new data that updates data already stored in the data storage device is written into a different physical address location, and hence the previous version of the data is still stored on the data storage device, and given that the address translation record is not updated unless the plurality of write transactions are actually performed atomically, then this enables the state held on the data storage device to be rolled back to the state that existed prior to performing the plurality of write transactions, if any event prevents that plurality of write transactions being performed atomically.
9 Citations
20 Claims
-
1. A method of operating a device controller to perform a plurality of write transactions atomically within a non-volatile data storage device, each transaction specifying a logical address, the method comprising:
-
creating an address translation map for the logical addresses specified by said plurality of write transactions, by referencing an address translation record in the non-volatile data storage device to determine for each logical address a corresponding physical address within the data storage device, and if the corresponding physical address indicated in the address translation record already contains valid data, remapping the logical address to a new physical address in said address translation map; performing said plurality of write transactions using the logical address to physical address mapping in said address translation map; and updating the address translation record in the non-volatile data storage device to identify the logical address to physical address mapping in said address translation map only once said plurality of write transactions have been performed in said non-volatile storage device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19)
-
-
18. A device controller for performing a plurality of write transactions atomically within a non-volatile data storage device, each transaction specifying a logical address, the device controller comprising:
-
address translation map generation circuitry configured to create an address translation map for the logical addresses specified by said plurality of write transactions, by referencing an address translation record in the non-volatile data storage device to determine for each logical address a corresponding physical address within the data storage device, if the corresponding physical address indicated in the address translation record already contains valid data, the address translation map generation circuitry being further configured to remap the logical address to a new physical address in said address translation map; transaction control circuitry configured to perform said plurality of write transactions using the logical address to physical address mapping in said address translation map; and address translation record update circuitry configured to update the address translation record in the non-volatile data storage device to identify the logical address to physical address mapping in said address translation map only once said plurality of write transactions have been performed in said non-volatile data storage device.
-
-
20. A device controller for performing a plurality of write transactions atomically within a non-volatile data storage device, each transaction specifying a logical address, the device controller comprising:
-
address translation map generation means for creating an address translation map for the logical addresses specified by said plurality of write transactions, by referencing an address translation record in the non-volatile data storage device to determine for each logical address a corresponding physical address within the data storage device, if the corresponding physical address indicated in the address translation record already contains valid data, the address translation map generation means further for remapping the logical address to a new physical address in said address translation map; transaction control means for performing said plurality of write transactions using the logical address to physical address mapping in said address translation map; and address translation record update means for updating the address translation record in the non-volatile data storage device to identify the logical address to physical address mapping in said address translation map only once said plurality of write transactions have been performed in said non-volatile data storage device.
-
Specification