Patent ID: 6970970

Claim:
A method of storing data in a non-volatile memory, the method comprising: (a) in response to a data-writing request, generating and storing logs in a volatile memory, including data to be stored and an address of the non-volatile memory; and (b) comparing addresses of the logs and storing data corresponding to the same page by the unit of page in a corresponding area of the non-volatile memory, and wherein step (b) further comprises: (b1) copying the logs of the volatile memory to a transaction buffer of the non-volatile memory; (b2) comparing the addresses of the data logged in the transaction buffer to addresses for the data-writing request and searching for the logs in the transaction buffer which contains the data logged with the addresses corresponding to the same page as the address for the data writing request; (b3) copying the page of the non-volatile memory which the address for the data writing request belongs to, to the volatile-memory; (b4) storing the data for the writing request in a page area of the volatile memory at the location with its same offset in a page of the non-volatile memory; (b5) storing the data logged in the page area of the volatile memory according to the logs corresponding to the same page; (b6) copying the page of the volatile memory to the page area of the non-volatile memory in order to update the page area of the non-volatile memory; and (b7) removing the logs reflected to update the page of the non-volatile memory from the transaction buffer in the non-volatile memory.