Memory controller, memory system with memory controller, and method of controlling flash memory
First Claim
1. A memory controller for controlling access to one or more flash memories, in which data erasing is performed in physical blocks, comprising:
- a logical block management unit which forms plural logical blocks each composed of plural logical sectors to each of which a logical address for a host system is assigned;
a free block management unit which manages free physical blocks each of which is a physical block not storing effective data;
an assignment unit which assigns a logical block to a free physical block;
an order management unit which manages assignment order for physical blocks each storing effective data so that a position of a physical block in the assignment order becomes higher according as assignment of a logical block to the physical block is performed more recently;
a data writing unit which, in response to a request issued by the host system, identifies a logical block including a logical sector corresponding to a logical address pertaining to the request and stores data corresponding to the logical address in a physical block corresponding to the logical block identified;
an identification unit which, when the assignment unit assigns a logical block to a free physical block, identifies a previous physical block which is a physical block storing effective data and corresponding to the same logical block as the free physical block;
a determination unit which, when the identification unit identifies the previous physical block, makes a determination whether or not a position of the previous physical block identified is higher than a predetermined position in the assignment order; and
a data transfer unit which, when the determination is negative, performs data transfer for transferring all effective data stored in the previous physical block identified to the free physical block corresponding to the same logical block as the identified previous physical block;
wherein, after completing the data transfer, the identified previous physical block becomes a free physical block and is managed by the free block management unit.
1 Assignment
0 Petitions
Accused Products
Abstract
Access to flash memories is controlled so that efficiency of data writing and effective utilization of storage area go together. In the access control, priority order, for physical blocks each storing effective data, is managed so that a position of a physical block in the assignment order becomes higher according as assignment of a logical block to the physical block is performed more recently. When assigning a logical block to a free physical block, a determination is made whether a position of a previous physical block is higher than a predetermined position in the priority order. The previous physical block is a physical block, then, corresponding to the same logical block as the free physical block. When the determination is negative, effective data stored in the previous physical block is transferred to the free physical block.
-
Citations
6 Claims
-
1. A memory controller for controlling access to one or more flash memories, in which data erasing is performed in physical blocks, comprising:
-
a logical block management unit which forms plural logical blocks each composed of plural logical sectors to each of which a logical address for a host system is assigned; a free block management unit which manages free physical blocks each of which is a physical block not storing effective data; an assignment unit which assigns a logical block to a free physical block; an order management unit which manages assignment order for physical blocks each storing effective data so that a position of a physical block in the assignment order becomes higher according as assignment of a logical block to the physical block is performed more recently; a data writing unit which, in response to a request issued by the host system, identifies a logical block including a logical sector corresponding to a logical address pertaining to the request and stores data corresponding to the logical address in a physical block corresponding to the logical block identified; an identification unit which, when the assignment unit assigns a logical block to a free physical block, identifies a previous physical block which is a physical block storing effective data and corresponding to the same logical block as the free physical block; a determination unit which, when the identification unit identifies the previous physical block, makes a determination whether or not a position of the previous physical block identified is higher than a predetermined position in the assignment order; and a data transfer unit which, when the determination is negative, performs data transfer for transferring all effective data stored in the previous physical block identified to the free physical block corresponding to the same logical block as the identified previous physical block; wherein, after completing the data transfer, the identified previous physical block becomes a free physical block and is managed by the free block management unit. - View Dependent Claims (3)
-
-
2. A memory controller for controlling access to one or more flash memories, in which data erasing is performed in physical blocks, comprising:
-
a logical block management unit which forms plural logical blocks each composed of plural logical sectors to each of which a logical address for a host system is assigned; a virtual block management unit which forms plural virtual blocks into which physical blocks are divided; a free block management unit which manages free virtual blocks each of which is a virtual block not storing effective data; an assignment unit which assigns a logical block to a free virtual block; an order management unit which manages assignment order for virtual blocks each storing effective data so that a position of a virtual block in the assignment order becomes higher according as assignment of a logical block to the virtual block is performed more recently; a data writing unit which, in response to a request issued by the host system, identifies a logical block including a logical sector corresponding to a logical address pertaining to the request and stores data corresponding to the logical address in a virtual block corresponding to the logical block identified; an identification unit which, when the assignment unit assigns a logical block to a free virtual block, identifies a previous virtual block which is a virtual block storing effective data and corresponding to the same logical block as the free virtual block; a determination unit which, when the identification unit identifies the previous virtual block, makes a determination whether or not a position of the previous virtual block identified is higher than a predetermined position in the assignment order; and a data transfer unit which, when the determination is negative, performs data transfer for transferring all effective data stored in the previous virtual block identified to the free virtual block corresponding to the same logical block as the identified previous virtual block; wherein, after completing the data transfer, the identified previous virtual block becomes a free virtual block and is managed by the free block management unit. - View Dependent Claims (4)
-
-
5. A method for controlling access to one or more flash memories, in which data erasing is performed in physical blocks, comprising:
-
a logical block management step of forming plural logical blocks each composed of plural logical sectors to each of which a logical address for a host system is assigned; a free block management step of managing free physical blocks each of which is a physical block not storing effective data; an assignment step of assigning a logical block to a free physical block; an order management step of managing assignment order for physical blocks each storing effective data so that a position of a physical block in the assignment order becomes higher according as assignment of a logical block to the physical block is performed more recently; a data writing step of, in response to a request issued by the host system, identifying a logical block including a logical sector corresponding to a logical address pertaining to the request and stores data corresponding to the logical address in a physical block corresponding to the logical block identified; an identification step of, when assigning a logical block to a free physical block in the assignment step, identifying a previous physical block which is a physical block storing effective data and corresponding to the same logical block as the free physical block; a determination step of, when identifying the previous physical block in the identification step, making a determination whether or not a position of the previous physical block identified is higher than a predetermined position in the assignment order; and a data transfer step of, when the determination is negative, performing data transfer for transferring all effective data stored in the previous physical block identified to the free physical block corresponding to the same logical block as the identified previous physical block; wherein, after completing the data transfer, the identified previous physical block becomes a free physical block and is managed in the free block management step.
-
-
6. A method for controlling access to one or more flash memories, in which data erasing is performed in physical blocks, comprising:
-
a logical block management step of forming plural logical blocks each composed of plural logical sectors to each of which a logical address for a host system is assigned; a virtual block management step of forming plural virtual blocks into which physical blocks are divided; a free block management step of managing free virtual blocks each of which is a virtual block not storing effective data; an assignment step of assigning a logical block to a free virtual block; an order management step of managing assignment order for virtual blocks each storing effective data so that a position of a virtual block in the assignment order becomes higher according as assignment of a logical block to the virtual block is performed more recently; a data writing step of, in response to a request issued by the host system, identifying a logical block including a logical sector corresponding to a logical address pertaining to the request and stores data corresponding to the logical address in a virtual block corresponding to the logical block identified; an identification step of, when assigning a logical block to a free virtual block in the assignment step, identifying a previous virtual block which is a virtual block storing effective data and corresponding to the same logical block as the free virtual block; a determination step of, when identifying the previous virtual block in the identification step, making a determination whether or not a position of the previous virtual block identified is higher than a predetermined position in the assignment order; and a data transfer step of, when the determination is negative, performing data transfer for transferring all effective data stored in the previous virtual block identified to the free virtual block corresponding to the same logical block as the identified previous virtual block; wherein, after completing the data transfer, the identified previous virtual block becomes a free virtual block and is managed in the free block management step.
-
Specification