IP Library Granted Patent US 10,061,710
Granted Patent B2
US 10,061,710 · App. 15/110,581 · Granted Aug 28, 2018

Storage device

Inventors: Atsushi Kawamura (Tokyo, JP); Junji Ogawa (Tokyo, JP)
Assignee: Hitachi, Ltd.
G06F12/1009G06F3/061G06F3/064G06F3/0616G06F3/0644G06F3/0656G06F3/0679G06F3/0688G06F12/0246G06F2212/657G06F2212/7201
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,061,710
App. No.
15/110,581
Granted
Aug 28, 2018
Kind
B2
Abstract

The present invention provides a storage device adopting a semiconductor device as a storage media having a nonvolatile property and must be erased for writing data, wherein the device divides and manages a logical storage space provided to a higher level device in logical page units, and manages a virtual address space which is a linear address space to which multiple physical blocks of the semiconductor device are mapped. The storage device uses a page mapping table managing a correspondence between a logical page and an address in the virtual address space, and a virtual address configuration information managing a correspondence between an area in the virtual address space and a physical block, in order to manage the correspondence between the respective logical pages and storage areas of the semiconductor device.

Claims (73)

1. A flash memory storage device comprising a controller and multiple flash memory chips, comprising:

the controller comprising

a processor,

a buffer composed of a volatile memory,

a storage interface for connecting with a higher level device, and

a flash memory interface for connecting the multiple flash memories with the controller;

each physical block in the multiple flash memory chips includes multiple physical pages which are minimum access unit areas of the flash memory chip,

the processor, managing a logical storage space being provided to the higher level device, dividing the logical storage space into logical pages units which are areas having a size not equal to a size of the physical page,

the processor managing a virtual address space which is a linear address space to which multiple physical pages in the multiple flash memory chips and multiple logical pages in the logical storage space are respectively mapped; and

the processor further managing a page mapping table storing a correspondence between the logical page and an address in the virtual address space, and a virtual address configuration information storing a correspondence between an area in the virtual address space and the physical pages.

2. The flash memory storage device according to claim 1 , wherein:

when the processor receives a write request to the logical page from the higher level device, it selects an unused area in the virtual address space, and stores the correspondence between an address of the selected unused area in the virtual space and the logical page in the page mapping table.

3. The flash memory storage device according to claim 1 , wherein:

when the processor receives a read request to the logical page from the higher level device, the processor refers to the page mapping table to specify the address in the virtual space corresponding to the logical page, and by referring to the virtual address configuration information, specifies one or multiple physical pages within a physical block mapped to the address in the virtual address space.

4. The flash memory storage device according to claim 1 , wherein:

when the processor receives write data from the higher level device, the processor accumulates the write data in the buffer; and

when data corresponding to a size of a single physical page or greater is accumulated in the buffer, the processor stores the data accumulated in the buffer to the physical page per size of the physical page.

5. A flash memory storage device comprising a controller and multiple flash memory chips, comprising:

the controller comprising

a processor,

a buffer composed of a volatile memory,

a storage interface for connecting with a higher level device, and

a flash memory interface for connecting the multiple flash memories with the controller;

each physical block in the multiple flash memory chips includes multiple physical pages which are minimum access unit areas of the flash memory chip,

the processor, managing a logical storage space being provided to the higher level device, dividing the logical storage space into logical pages units,

the processor managing a virtual address space which is a linear address space to which multiple physical pages in the multiple flash memory chips and multiple logical pages in the logical storage space are respectively mapped

the processor further managing a page mapping table storing a correspondence between the logical page and an address in the virtual address space, and a virtual address configuration information storing a correspondence between an area in the virtual address space and the physical pages,

the processor has multiple free block lists for managing a physical block not yet mapped to the virtual address space, and each free block list manages physical block numbers of physical blocks having a same type of attribute,

the attribute is a deterioration level which is an index value based on information related to a number of erases of a physical block, or is an attribute information for specifying a flash memory chip to which a physical block belongs.

6. The flash memory storage device according to claim 5 , wherein:

a physical block number of a free physical block having a deterioration level within a first range is managed by a first free block list out of the multiple free block lists, and a physical block number of a free physical block having a deterioration level within a second range is managed by a second free block list out of the multiple free block lists; and

when the processor maps the physical block to an area within a given range of the virtual address space, the processor selects one free block list out of the first and second free block lists, and maps a physical block managed by the selected free block list to an area within a given range of the virtual address space.

7. The flash memory storage device according to claim 5 , wherein:

the attribute is an attribute information for specifying a flash memory chip to which a physical block belongs, and the physical blocks having an equivalent attribute information are managed by the same free block list;

when the processor maps the physical block to an area within a given range of the virtual address space, the processor selects one free physical block from each of the multiple free block lists, and maps the selected physical block to the area within the given range of the virtual address space; and

when the processor stores data to multiple physical blocks mapped to the area within the given range of the virtual address space, the processor issues a write request in parallel to the multiple physical blocks.

8. A flash memory storage device comprising a controller and multiple flash memory chips, comprising:

the controller comprising

a processor,

a buffer composed of a volatile memory,

a storage interface for connecting with a higher level device, and

a flash memory interface for connecting the multiple flash memories with the controller;

each physical block in the multiple flash memory chips includes multiple physical pages which are minimum access unit areas of the flash memory chip,

the processor, managing a logical storage space being provided to the higher level device, dividing the logical storage space into logical pages units,

the processor managing a virtual address space which is a linear address space to which multiple physical pages in the multiple flash memory chips and multiple logical pages in the logical storage space are respectively mapped,

the processor further managing a page mapping table storing a correspondence between the logical page and an address in the virtual address space, and a virtual address configuration information storing a correspondence between an area in the virtual address space and the physical pages,

the controller is configured to convert and store the write data from the higher level device per logical page; and

the controller manages information of a range within the virtual address space to which the converted data in logical page is mapped in the page mapping table per each logical page.

9. The flash memory storage device according to claim 8 , wherein:

when the controller receives write data from the higher level device, the controller converts the write data and stores it in a buffer, and thereafter, writes the converted data stored in the buffer into the flash memory chip.

10. The flash memory storage device according to claim 8 , wherein:

when the controller receives write data from the higher level device, the controller stores the write data to a buffer without converting it, writes the data stored in the buffer in the flash memory chip, and when the data written in the flash memory chip is to be copied to a different flash memory chip, the controller converts the data written in the flash memory chip, and copies the converted data to a different flash memory chip.

11. A flash memory storage device comprising a controller and multiple flash memory chips, comprising:

the controller comprising

a processor,

a buffer composed of a volatile memory,

a storage interface for connecting with a higher level device, and

a flash memory interface for connecting the multiple flash memories with the controller;

each physical block in the multiple flash memory chips includes multiple physical pages which are minimum access unit areas of the flash memory chip,

the flash memory storage device includes two or more types of physical blocks having different physical page size characteristics,

the processor, managing a logical storage space being provided to the higher level device, dividing the logical storage space into logical pages units,

the processor managing a virtual address space which is a linear address space to which multiple physical pages in the multiple flash memory chips and multiple logical pages in the logical storage space are respectively mapped;

the processor further managing a page mapping table storing a correspondence between the logical page and an address in the virtual address space, and a virtual address configuration information storing a correspondence between an area in the virtual address space and the physical pages;

the processor manages multiple types of said virtual address spaces; and

only the blocks having the same physical page size characteristic are mapped to each respective virtual address space.

12. A storage system comprising a storage controller and multiple flash memory storage devices, wherein:

the flash memory storage device includes a controller and multiple flash memory chips; each physical block in the multiple flash memory chips includes multiple physical pages which are minimum access unit areas of the flash memory chip;

the controller manages a logical storage space being provided to the storage controller, dividing the logical storage space into logical pages units which are areas having a size not equal to a size of the physical page, and manages a virtual address space which is a linear address space to which multiple physical pages in the multiple flash memory chips and multiple logical pages in the logical storage space are respectively mapped; and

the controller further manages a page mapping table which manages a correspondence between the logical page and an address in the virtual address space, and a virtual address configuration information which manages a correspondence between an area in the virtual address space and the physical pages.

13. The storage system according to claim 12 , wherein:

when the controller receives a write request to the logical page from the storage controller, the controller selects an unused area in the virtual address space, and stores the correspondence between an address of the selected unused area in the virtual space and the logical page in the page mapping table.

14. The storage system according to claim 12 , wherein:

when the controller receives a read request to the logical page from the storage controller, the controller refers to the page mapping table to specify the address in the virtual space corresponding to the logical page, and by referring to the virtual address configuration information, specifies one or multiple physical pages within a physical block mapped to the address in the virtual address space.

Assignments (2)
COMPANY SPLIT Recorded Aug 20, 2024
From: HITACHI, LTD.
To: HITACHI VANTARA, LTD.
Reel/Frame 069518/0761 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2016
From: KAWAMURA, ATSUSHI; OGAWA, JUNJI
To: HITACHI, LTD.
Reel/Frame 039120/0224 →
Continuity (1)
Related Publication 20160335195A1 · Nov 17, 2016
Cited By (1)
US 12,554,440