# US 2010/0169549 A1 · Memory system and controller

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2010/0169549 A1
- Document ID: US20100169549A1
- Status: Published application
- Kind: A1
- Application number: 12/542,222
- Filed: 2009-08-17
- Published: 2010-07-01
- Earliest claimed: 2008-12-27
- Assignees: Kabushiki Kaisha Toshiba
- Inventors: Hirokuni YANO; Naoki Otsuka
- Web page: https://patentgrep.com/patent/US20100169549A1

## CPC

- G06F 12/0862: with prefetch
- G06F 12/0868: Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
- G06F 2212/214: Solid state disk
- G06F 2212/222: Non-volatile memory
- G06F 2212/6028: Prefetching based on hints or prefetch instructions
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A controller sets, out of a data range that is specified in a read request from a host device, a predetermined size of a first data range that follows a top portion of the data range and a predetermined size of a second data range that follows the first data range, and after transfer, to the host device, of data corresponding to the first data range from a second storage unit or a third storage unit having smaller data output latency than the first storage unit in which read/write of data is performed is started, the controller searches for data corresponding to the second data range in the second storage unit or the third storage unit.

## Claims

### Claim 1

A memory system comprising:
a first storage unit that is constituted by a nonvolatile semiconductor storage device in which reading and writing of data is performed;
a second storage unit that is constituted by a semiconductor storage device having smaller data output latency than the nonvolatile semiconductor storage device;
a third storage unit that is constituted by a semiconductor storage device having smaller data output latency than the nonvolatile semiconductor storage device; and
a controller that writes data for which a write request has been issued by a host device in the first storage unit through the second storage unit, and that transfers data for which a read request has been issued to the host device by reading from any one of the second storage unit and the third storage unit, or by reading from the first storage unit through the third storage unit, wherein
the controller sets, out of a data range that is specified in a read request from the host device, a predetermined size of a data range that follows a top portion of the data range as a first data range, sets a predetermined size of a data range that follows the first data range as a second data range, and searches for data corresponding to the second data range in any one of the second storage unit and the third storage unit after transfer of data corresponding to the first data range from any one of the second storage unit and the third storage unit to the host device is started.

### Claim 2 (depends on 1)

The memory system according to claim 1, wherein the controller sets the first data range and the second data range in such a manner that a processing time required for transfer of data that corresponds to the first data range to the host device and a processing time required for search for data that corresponds to the second data range are equal to each other.

### Claim 3 (depends on 1)

The memory system according to claim 1, wherein when read request data for which a read request is issued by the host device is not present in the third storage unit, the controller starts transfer of the read request data from the first storage unit to the third storage unit, and thereafter,
the controller searches for the read request data in the second storage unit, and when the read request data is found in the second storage unit as a result of the search, the controller transfers the read request data to the host device from the second storage unit, and when the read request data is not found in the second storage unit as a result of the search, the controller transfers the read request data to the host device from the first storage unit through the third storage unit.

### Claim 4 (depends on 1)

The memory system according to claim 1, wherein, when the read request data requested by the host device is present in the third storage unit,
the controller searches the read request data in the second storage unit, and when the read request data is found in the second storage unit as a result of the search, the controller transfers the read request data to the host device from the second storage unit, while when the read request data is not found in the second storage unit as a result of the search, the controller transfers the read request data to the host device from the third storage unit.

### Claim 5 (depends on 1)

The memory system according to claim 1, wherein the controller searches for a first continuous data that is data continuing from a top of the first data range in the third storage unit, and when the first continuous data is found in the third storage unit as a result of the search, the controller searches the first continuous data in the second storage unit, and when the first continuous data is found in the second storage unit as a result of the search, the controller transfers the first continuous data to the host device from the second storage unit, while when the first continuous data is not found in the second storage unit as a result of the search, the controller transfers the first continuous data to the host device from the third storage unit.

### Claim 6 (depends on 1)

The memory system according to claim 1, wherein the controller searches for a first subsequent data that is data other than data continuing from a top of the first data range in the third storage unit, and when the first subsequent data is found in the third storage unit as a result of the search, the controller searches the first subsequent data in the second storage unit, and when the first subsequent data is found in the second storage unit as a result of the search, the controller transfers the first subsequent data to the host device from the second storage unit, while when the first subsequent data is not found in the second storage unit as a result of the search, the controller transfers the first subsequent data to the host device from the third storage unit.

### Claim 7 (depends on 1)

The memory system according to claim 1, wherein the controller searches for a second continuous data that is data continuing from a top of the second data range in the third storage unit, and when the second continuous data is found in the third storage unit as a result of the search, the controller searches the second continuous data in the second storage unit, and when the second continuous data is found in the second storage unit as a result of the search, the controller transfers the second continuous data to the host device from the second storage unit, while when the second continuous data is not found in the second storage unit as a result of the search, the controller transfers the second continuous data to the host device from the third storage unit.

### Claim 8 (depends on 1)

The memory system according to claim 1, wherein the controller searches for a second subsequent data that is data other than data continuing from a top of the second data range in the third storage unit, and when the second subsequent data is found in the third storage unit as a result of the search, the controller searches the second subsequent data in the second storage unit, and when the second subsequent data is found in the second storage unit as a result of the search, the controller transfers the second subsequent data to the host device from the second storage unit, while when the second subsequent data is not found in the second storage unit as a result of the search, the controller transfers the second subsequent data to the host device from the third storage unit.

### Claim 9 (depends on 1)

The memory system according to claim 1, wherein the second storage unit and the third storage unit are configured by dividing a storage area in an identical volatile semiconductor storage device.

### Claim 10 (depends on 1)

The memory system according to claim 1, wherein the controller reads a predetermined size of data that is subsequent to a requested data range from the first storage unit in accordance with a read request from the host device, and transfers the data to the third storage unit.

### Claim 11

A controller comprising:
a control unit that controls a first storage unit that is constituted by a nonvolatile semiconductor storage device in which reading and writing of data is performed, a second storage unit that is constituted by a semiconductor storage device having smaller data output latency than the nonvolatile semiconductor storage device, a third storage unit that is constituted by a semiconductor storage device having smaller data output latency than the nonvolatile semiconductor storage device, wherein
the control unit writes data for which a write request has been issued by a host device in the first storage device through the second storage unit, and transfers data for which a read request has been issued to the host device by reading from any one of the second storage unit and the third storage unit, or by reading from the first storage unit through the third storage unit, and sets, out of a data range that is specified in a read request from the host device, a predetermined size of a data range that follows a top portion of the data range as a first data range, sets a predetermined size of a data range that follows the first data range as a second data range, and searches for data corresponding to the second data range in any one of the second storage unit and the third storage unit after transfer of data corresponding to the first data range from any one of the second storage unit and the third storage unit to the host device is started.

### Claim 12 (depends on 11)

The controller according to claim 11, wherein the control unit sets the first data range and the second data range in such a manner that a processing time required for transfer of data that corresponds to the first data range to the host device and a processing time required for search for data that corresponds to the second data range are equal to each other.

### Claim 13 (depends on 11)

The controller according to claim 11, wherein when read request data for which a read request is issued by the host device is not present in the third storage unit, the control unit starts transfer of the read request data from the first storage unit to the third storage unit and thereafter,
the control unit searches for the read request data in the second storage unit, and when the read request data is found in the second storage unit as a result of the search, the control unit transfers the read request data to the host device from the second storage unit, and when the read request data is not found in the second storage unit as a result of the search, the control unit transfers the read request data to the host device from the first storage unit through the third storage unit.

### Claim 14 (depends on 11)

The controller according to claim 11, wherein, when the read request data requested by the host device is present in the third storage unit,
the control unit searches the read request data in the second storage unit, and when the read request data is found in the second storage unit as a result of the search, the control unit transfers the read request data to the host device from the second storage unit, while when the read request data is not found in the second storage unit as a result of the search, the control unit transfers the read request data to the host device from the third storage unit.

### Claim 15 (depends on 11)

The controller according to claim 11, wherein the control unit searches for a first continuous data that is data continuing from a top of the first data range in the third storage unit, and when the first continuous data is found in the third storage unit as a result of the search, the control unit searches the first continuous data in the second storage unit, and when the first continuous data is found in the second storage unit as a result of the search, the control unit transfers the first continuous data to the host device from the second storage unit, while when the first continuous data is not found in the second storage unit as a result of the search, the control unit transfers the first continuous data to the host device from the third storage unit.

### Claim 16 (depends on 11)

The controller according to claim 11, wherein the control unit searches for a first subsequent data that is data other than data continuing from a top of the first data range in the third storage unit, and when the first subsequent data is found in the third storage unit as a result of the search, the control unit searches the first subsequent data in the second storage unit, and when the first subsequent data is found in the second storage unit as a result of the search, the control unit transfers the first subsequent data to the host device from the second storage unit, while when the first subsequent data is not found in the second storage unit as a result of the search, the control unit transfers the first subsequent data to the host device from the third storage unit.

### Claim 17 (depends on 11)

The controller according to claim 11, wherein the control unit searches for a second continuous data that is data continuing from a top of the second data range in the third storage unit, and when the second continuous data is found in the third storage unit as a result of the search, the control unit searches the second continuous data in the second storage unit, and when the second continuous data is found in the second storage unit as a result of the search, the control unit transfers the second continuous data to the host device from the second storage unit, while when the second continuous data is not found in the second storage unit as a result of the search, the control unit transfers the second continuous data to the host device from the third storage unit.

### Claim 18 (depends on 11)

The controller according to claim 11, wherein the control unit searches for a second subsequent data that is data other than data continuing from a top of the second data range in the third storage unit, and when the second subsequent data is found in the third storage unit as a result of the search, the control unit searches the second subsequent data in the second storage unit, and when the second subsequent data is found in the second storage unit as a result of the search, the control unit transfers the second subsequent data to the host device from the second storage unit, while when the second subsequent data is not found in the second storage unit as a result of the search, the control unit transfers the second subsequent data to the host device from the third storage unit.

### Claim 19 (depends on 11)

The controller according to claim 11, wherein the second storage unit and the third storage unit are configured by dividing a storage area in an identical volatile semiconductor storage device.

### Claim 20 (depends on 11)

The controller according to claim 11, wherein the controller reads a predetermined size of data that is subsequent to a requested data range from the first storage unit in accordance with a read request from the host device, and transfers the data to the third storage unit.
