Method and apparatus for grouping pages within a block
First Claim
1. A memory system comprising:
- a non-volatile memory, the non-volatile memory including a first physical block, the first physical block including a plurality of physical pages, the plurality of physical pages being grouped into a plurality of physical groups, wherein each physical group of the plurality of physical group includes two or more physical pages;
code devices for mapping a first logical block to the first physical block, the first logical block corresponding to a plurality of logical pages grouped into a plurality of logical groups, each logical group of the plurality of logical groups including two or more logical pages;
code devices for writing input data into a first physical page included in a first physical group of the first physical block responsive to the input data being associated with a first logical page in a first logical group of the first logical block;
wherein the code devices for writing input data are also for writing input data into a first physical page included in a second physical group responsive to then receiving input data associated with a first logical page in a second logical group of the first logical block, and for writing input data into a second physical page in a third physical group of the first physical block responsive to then receiving input data associated with a second logical page in the first logical group;
and further comprising;
code devices for retrieving data from the second physical page in the third physical group and the first physical page in the first physical group responsive to a read command requesting retrieval of data from the first logical group.
3 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatus for efficiently enabling pages within a block to be accessed are disclosed. According to one aspect of the present invention, a method for writing data into a first block in a non-volatile memory which includes pages that are grouped into groups which each include two or more pages involves determining when a first group is available to receive the data. When it is determined that the first group is available to receive the data, the data is written into a first page included in the first group. The method also includes determining when a second group is available to receive the data if it is determined that the first group is not available to receive the data, and writing the data into a second page included in the second group when it is determined that the second group is available to receive the data.
93 Citations
41 Claims
-
1. A memory system comprising:
-
a non-volatile memory, the non-volatile memory including a first physical block, the first physical block including a plurality of physical pages, the plurality of physical pages being grouped into a plurality of physical groups, wherein each physical group of the plurality of physical group includes two or more physical pages; code devices for mapping a first logical block to the first physical block, the first logical block corresponding to a plurality of logical pages grouped into a plurality of logical groups, each logical group of the plurality of logical groups including two or more logical pages; code devices for writing input data into a first physical page included in a first physical group of the first physical block responsive to the input data being associated with a first logical page in a first logical group of the first logical block; wherein the code devices for writing input data are also for writing input data into a first physical page included in a second physical group responsive to then receiving input data associated with a first logical page in a second logical group of the first logical block, and for writing input data into a second physical page in a third physical group of the first physical block responsive to then receiving input data associated with a second logical page in the first logical group; and further comprising; code devices for retrieving data from the second physical page in the third physical group and the first physical page in the first physical group responsive to a read command requesting retrieval of data from the first logical group. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A memory system, comprising:
-
a non-volatile memory, the non-volatile memory including a first block, the first block including a plurality of pages, the plurality of pages being grouped into a plurality of groups within the first block, wherein each group of the plurality of groups includes two or more pages; code devices for determining whether a first group of the plurality of groups within the first block is available to receive a set of data; code devices for writing the set of data into a first page included in the first group responsive to the code devices determining that the first group is available to receive the set of data; code devices for determining whether a second group of the plurality of groups within the first block is available to receive the set of data responsive to the code devices determining that the first group is not available to receive the set of data; code devices for writing the set of data into a second page included in the second group responsive to the code devices determining that the second group is available to receive the set of data; code devices for determining whether a second block is available to receive the set of data when it is determined that the second group is not available to receive the set of data, the second block being included in the non-volatile memory; code devices for copying contents of some of the plurality of pages into the second block responsive to the code devices determining that the second block is available to receive the set of data; and code devices for writing the set of data into the second block responsive to the code devices determining that the second block is available to receive the set of data. - View Dependent Claims (9, 10, 11)
-
-
12. A method for writing data into a first physical block of a non-volatile memory, the first physical block including a plurality of physical pages, the plurality of physical pages being grouped into a plurality of physical groups, wherein each physical group of the plurality of physical groups includes two or more physical pages, the method comprising:
-
mapping a first logical block to the first physical block, the first logical block arranged as a plurality of logical pages grouped into a plurality of logical groups, each logical group of the plurality of logical groups including two or more logical pages; responsive to receiving input data associated with a first logical page in a first logical group of the first logical block, writing the input data into a first physical page included in a first physical group of the first physical block; responsive to receiving input data associated with a first logical page in a second logical group of the first logical block, writing the input data into a first physical page included in a second physical group; then, responsive to receiving input data associated with a second logical page in the first logical group of the first logical block, writing the input data into a second physical page included in a third physical group of the first physical block; and then, responsive to a read command requesting retrieval of data from the first logical group, retrieving data from the second physical page in the third physical group and the first physical page in the first physical group. - View Dependent Claims (13, 14)
-
-
15. A method for writing data into a first physical block associated with a non-volatile memory, the first physical block including a plurality of physical pages, the plurality of physical pages being grouped into a plurality of physical groups, wherein each physical group of the plurality of physical groups includes two or more physical pages, the method comprising:
-
identifying a first set of data associated with a first logical page, the first logical page being one of a plurality of logical pages included in a first logical group of a logical block; determining whether a first physical group of the plurality of physical groups is associated with the first logical group; determining whether a first physical page included in the first physical group is available to accommodate the first set of data responsive to determining that the first physical group is associated with the first logical group; and writing the first set of data into the first physical page responsive to determining that the first physical page is available to accommodate the first set of data; determining whether the first physical group is available responsive to determining that the first physical group is not associated with the first logical group; associating the first physical group with the first logical group responsive to determining that the first physical group is available; and writing the first set of data into a second physical page associated with the first physical group. - View Dependent Claims (16, 17)
-
-
18. A method for writing data into a first physical block associated with a non-volatile memory, the first physical block including a plurality of physical pages, the plurality of physical pages being grouped into a plurality of physical groups within the first physical block, wherein each physical group of the plurality of physical groups includes two or more physical pages, the method comprising:
-
associating a first set of data with a first logical page, the first logical page being one of a plurality of logical pages included in a first logical group of a logical block; identifying a first physical group of the plurality of physical groups within the first physical block that is associated with the first logical group; then determining whether a first physical page included in the first physical group is available to accommodate the first set of data; writing the first set of data into the first physical page responsive to determining that the first physical page is available to accommodate the first set of data; determining whether a second physical group included in the plurality of physical groups within the first physical block is available responsive to determining that the first physical page is not available to accommodate the first set of data; and then writing the first set of data into a second physical page associated with the second physical group. - View Dependent Claims (19)
-
-
20. A method for writing data into a first physical block associated with a non-volatile memory, the first physical block including a plurality of physical pages, the plurality of physical pages being grouped into a plurality of physical groups, wherein each physical group of the plurality of physical groups includes two or more physical pages, the method comprising:
-
identifying a first set of data associated with a first logical page, the first logical page being one of a plurality of logical pages included in a first logical group of a logical block; determining whether a first physical group of the plurality of physical groups is associated with the first logical group; determining whether a first physical page included in the first physical group is available to accommodate the first set of data responsive to determining that the first physical group is associated with the first logical group; and writing the first set of data into the first physical page responsive to determining that the first physical page is available to accommodate the first set of data; determining whether a second physical group included in the plurality of physical groups is available responsive to determining that the first physical page is not available to accommodate the first set of data; and writing the first set of data into a second physical page associated with the second physical group; wherein, responsive to determining that the second physical block is available, the method further includes; determining whether a second physical block associated with the non-volatile memory is available to accommodate the first set of data responsive to determining that the second physical group is not available; copying some of the contents of the plurality of physical pages included in the first physical block into physical pages included in the second physical block; and writing the first set of data into a third physical page associated with the second physical block. - View Dependent Claims (21, 22, 23)
-
-
24. A memory system comprising:
-
a non-volatile memory, the non-volatile memory including a first physical block having a plurality of physical pages, the plurality of physical pages being grouped into a plurality of physical groups, wherein each physical group of the plurality of physical groups includes two or more physical pages; and a module, the module being arranged to identify a first set of data associated with a first logical page, the first logical page being one of a plurality of logical pages included in a first logical group of a logical block, the module further being arranged to determine whether a first physical group of the plurality of physical groups is associated with the first logical group, to determine whether a first physical page included in the first physical group is available to accommodate the first set of data responsive to determining that the first physical group is associated with the first logical group, and to write the first set of data into the first physical page responsive to determining that the first physical page is available to accommodate the first set of data; wherein the module is still further arranged to determine whether the first physical group is available responsive to determining that the first physical group is not associated with the first logical group, to associate the first physical group with the first logical group responsive to determining that the first physical group is available, and to write the first set of data into a second physical page associated with the first physical group. - View Dependent Claims (25, 26, 27, 28)
-
-
29. A memory system comprising:
-
a non-volatile memory, the non-volatile memory including a first physical block having a plurality of physical pages, the plurality of physical pages being grouped into a plurality of physical groups, wherein each physical group of the plurality of physical groups includes two or more physical pages; and a module, the module being arranged to identify a first set of data associated with a first logical page, the first logical page being one of a plurality of logical pages included in a first logical group of a logical block, the module further being arranged to determine whether a first physical group of the plurality of physical groups is associated with the first logical group, to determine whether a first physical page included in the first physical group is available to accommodate the first set of data responsive to determining that the first physical group is associated with the first logical group, and to write the first set of data into the first physical page responsive to determining that the first physical page is available to accommodate the first set of data; wherein the module is still further arranged to determine whether a second physical group included in the plurality of physical groups is available responsive to determining that the first physical page is not available to accommodate the first set of data, to associate the second physical group with the first logical group responsive to determining that the second physical group is available, and to write the first set of data into a second physical page associated with the second physical group; and further including; a second physical block, wherein the module is still further arranged to determine when the second physical block associated with the non-volatile memory is available to accommodate the first set of data responsive to determining that the second physical group is not available, and to copy some of the contents of the plurality of physical pages included in the first physical block into physical pages included in the second physical block responsive to determining that the second physical block is available, and to write the first set of data into a third physical page associated with the second physical block responsive to determining that the second physical block is available. - View Dependent Claims (30)
-
-
31. A system for writing data into a first physical block of a non-volatile memory, the first physical block including a plurality of physical pages, the plurality of physical pages being grouped into a plurality of physical groups, wherein each physical group of the plurality of physical groups includes two or more physical pages, the system comprising:
-
means for mapping a first logical block to the first physical block, the first logical block corresponding to a plurality of logical pages grouped into a plurality of logical groups, each logical group of the plurality of logical groups including two or more logical pages; means for writing input data into a first physical page included in a first physical group of the first physical block responsive to the input data being associated with a first logical page in a first logical group of the first logical block; wherein the writing means is also for writing input data into a first physical page included in a second physical group responsive to then receiving input data associated with a first logical page in a second logical group of the first logical block, and for writing input data into a second physical page in a third physical group of the first physical block responsive to then receiving input data associated with a second logical page in the first logical group; and further comprising; means for retrieving data from the second physical page in the third physical group and the first physical page in the first physical group responsive to a read command requesting retrieval of data from the first logical group. - View Dependent Claims (32)
-
-
33. A system for writing data into a first physical block associated with a non-volatile memory, the first physical block including a plurality of physical pages, the plurality of physical pages being grouped into a plurality of physical groups, wherein each physical group of the plurality of physical groups includes two or more physical pages, the system comprising:
-
means for identifying a first set of data associated with a first logical page, the first logical page being one of a plurality of logical pages included in a first logical group of a logical block; means for determining whether a first physical group of the plurality of physical groups is associated with the first logical group; means for determining whether a first physical page included in the first physical group is available to accommodate the first set of data responsive to determining that the first physical group is associated with the first logical group; means for writing the first set of data into the first physical page responsive to determining that the first physical page is available to accommodate the first set of data; means for determining whether the first physical group is available responsive to determining that the first physical group is not associated with the first logical group; means for associating the first physical group with the first logical group responsive to determining that the first physical group is available; and means for writing the first set of data into a second physical page associated with the first physical group. - View Dependent Claims (34)
-
-
35. A system for writing data into a first physical block associated with a non-volatile memory, the first physical block including a plurality of physical pages, the plurality of physical pages being grouped into a plurality of physical groups within the first physical block, wherein each physical group of the plurality of physical groups includes two or more physical pages, the system comprising:
-
means for identifying a first set of data associated with a first logical page, the first logical page being one of a plurality of logical pages included in a first logical group of a logical block; means for associating a first physical group of the plurality of physical groups within the first physical block with the first logical group; means for determining whether a first physical page included in the first physical group within the first physical block is available to accommodate the first set of data p; means for writing the first set of data into the first physical page responsive to the determining means determining that the first physical page is available to accommodate the first set of data; means for determining whether a second physical group included in the plurality of physical groups within the first physical block is available responsive to the determining means determining that the first physical page is not available to accommodate the first set of data; and means for writing the first set of data into a second physical page associated with the second physical group. - View Dependent Claims (36, 37, 38, 39, 40, 41)
-
Specification