Method and Apparatus for Protecting Data Using Variable Size Page Stripes in a FLASH-Based Storage System
First Claim
1. A memory system comprising:
- a plurality of FLASH memory chips, each of the plurality of FLASH memory chips being associated with a plurality of physical memory address locations;
a system controller that includes an external communication bus interface for receiving WRITE requests from an external host device, wherein each WRITE request includes a data item and a logical memory address associated with the data item, the system controller further comprising a plurality of internal communication bus interfaces, each allowing the system controller to write data into physical memory locations associated with one or more of the FLASH memory chips; and
a plurality of internal data communication buses, each internal data communications bus coupling one or more of the FLASH memory chips to an internal communication bus interface of the system controller;
wherein the system controller is configured, for each WRITE request, to translate the logical memory address provided by the external host to a physical memory address and to write the data item provided as part of the WRITE request to the physical memory location corresponding to the physical memory address; and
wherein the system controller is further configured to;
(i) associate a number of data items received through a plurality of WRITE requests with each other to form a group of received data items;
(ii) generate data protection information for each group and write the data protection information to a physical memory location;
(iii) perform the translation of the received logical memory addresses for the data items in the group and select the physical memory location for storage of the data protection information such that each of the data items is stored in a physical memory location within a FLASH memory chip that is different from the FLASH memory chips in which the other data items and the data protection information for the group of received data items are stored; and
(iv) dynamically select the number of data items used to form each group, such that the number of data items in one group of received data items differs from the number of data items in a second group of received data items.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatuses for enhanced protection of data stored in a FLASH memory system involve a controller capable of using variable size page stripes in the memory system. The controller is configured to store data such that each page stripe comprises a plurality of data pages, with each data page in the page stripe being stored in a different FLASH memory chip. The controller is also configured to maintain one or more buffers containing information reflecting blocks of memory within the FLASH memory chips that have been erased and are available for information storage, and to dynamically determine the number of data pages to be included in a page stripe based on the information in the one or more buffers such that a first page stripe and a second page stripe can have different numbers of data pages.
82 Citations
6 Claims
-
1. A memory system comprising:
-
a plurality of FLASH memory chips, each of the plurality of FLASH memory chips being associated with a plurality of physical memory address locations; a system controller that includes an external communication bus interface for receiving WRITE requests from an external host device, wherein each WRITE request includes a data item and a logical memory address associated with the data item, the system controller further comprising a plurality of internal communication bus interfaces, each allowing the system controller to write data into physical memory locations associated with one or more of the FLASH memory chips; and a plurality of internal data communication buses, each internal data communications bus coupling one or more of the FLASH memory chips to an internal communication bus interface of the system controller; wherein the system controller is configured, for each WRITE request, to translate the logical memory address provided by the external host to a physical memory address and to write the data item provided as part of the WRITE request to the physical memory location corresponding to the physical memory address; and wherein the system controller is further configured to;
(i) associate a number of data items received through a plurality of WRITE requests with each other to form a group of received data items;
(ii) generate data protection information for each group and write the data protection information to a physical memory location;
(iii) perform the translation of the received logical memory addresses for the data items in the group and select the physical memory location for storage of the data protection information such that each of the data items is stored in a physical memory location within a FLASH memory chip that is different from the FLASH memory chips in which the other data items and the data protection information for the group of received data items are stored; and
(iv) dynamically select the number of data items used to form each group, such that the number of data items in one group of received data items differs from the number of data items in a second group of received data items. - View Dependent Claims (2, 3, 4, 5, 6)
-
Specification