# US 10,372,446 B2 · Technology to dynamically modulate memory device read granularity

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

- Number: US 10,372,446 B2
- Document ID: US10372446B2
- Status: Granted
- Kind: B2
- Application number: 15/640,484
- Filed: 2017-07-01
- Published: 2019-01-03
- Granted: 2019-08-06
- Earliest claimed: 2017-07-01
- Assignees: Intel Corporation
- Applicants: Intel Corporation
- Inventors: David J. Pelster; Sudhakar Ayyasamy; Mark Anthony S. Golez; Yogesh B. Wakchaure; Yu Du
- Web page: https://patentgrep.com/patent/US10372446B2

## CPC

- G06F 9/30003: {Arrangements for executing specific machine instructions}
- G06F 3/0611: {in relation to response time}
- G06F 11/004: {Error avoidance (G06F11/07 and subgroups take precedence)}
- G06F 12/0238: {Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory}
- G06F 12/0638: {Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module (address formation of the next microinstruction G06F9/26; masking faults in memories by using spares or by reconfiguring G11C29/70)}
- G06F 15/7867: {with reconfigurable architecture}
- H03K 19/1776: for memories
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H03K: PULSE TECHNIQUE (measuring pulse characteristics G01R; modulating sinusoidal oscillations with pulses H03C; transmission of digital information H04L; discriminator circuits detecting phase difference between two signals by counting or integrating cycles of oscillation H03D3/04; automatic control, starting, synchronisation or stabilisation of generators of electronic oscillations or pulses where the type of generator is irrelevant or unspecified H03L; coding, decoding or code conversion, in general H03M)

## Abstract

Technology to dynamically modulate read granularity of a memory device. A computing system may include a controller and one or more memory devices coupled to the controller, the one or more memory devices including instructions, which when executed by the controller, may cause the computing system to determine whether a read to a memory device satisfies a sub-page read policy. In addition, the instructions, when executed, may cause the computing system to issue a sub-page read command to retrieve data from the memory device at sub-page granularity when the read satisfies the sub-page read policy. Moreover, the instructions, when executed, may cause the computing system to issue a full-page read command to retrieve the data at full-page granularity when the read does not satisfy the sub-page read policy or when a read for a segment of sequentially stored data does not satisfy the sub-page read policy.

## Claims

### Claim 1

A computing system comprising:
a controller; and
one or more memory devices coupled to the controller, the one or more memory devices including instructions, which when executed by the controller, cause the computing system to:
determine whether a read to a memory device satisfies a sub-page read policy; and
issue a sub-page read command to retrieve data from the memory device at sub-page granularity when the read satisfies the sub-page read policy, the computing system further to:
issue a persistent state command to enter the memory device to a sub-page state or a full-page state, wherein the sub-page state allows the memory device to read data at the sub-page granularity until a full-page read is required, and wherein the full-page state allows the memory device to read data at a full-page granularity until a sub-page read is required; or
issue a non-persistent toggle state command that is to disable a default state of the memory device to allow the memory device to retrieve data at granularity specific to a non-default state, implement one read at the granularity specific to the non-default state, and re-enable the default state when the one read is complete.

### Claim 2 (depends on 1)

The computing system of claim 1, wherein the instructions, when executed, cause the computing system to:
determine whether the read satisfies a physical requirement;
determine whether the read satisfies a random read requirement; and
determine whether the read satisfies a maximum sub-page read size.

### Claim 3 (depends on 1)

The computing system of claim 1, wherein the instructions, when executed, cause the computing system to:
determine whether a read size of the read matches a current sub-page read size; and
set the current sub-page read size to the read size to implement a new sub-page read size.

### Claim 4 (depends on 1)

The computing system of claim 1, wherein the instructions, when executed, cause the computing system to:
determine whether the data is present in a memory buffer;
discontinue preparation to issue the sub-page read command and retrieve the data from the memory buffer when the data is present in the memory buffer; and
issue the sub-page read command when the data is not present in the memory buffer.

### Claim 5 (depends on 1)

The computing system of claim 1, wherein the instructions, when executed, cause the computing system to:
determine each segment of sequentially stored data for the read when the read does not satisfy a predetermined read size condition;
prepare to dispatch a separate read command for each segment;
determine whether each read for each segment of sequentially stored data satisfies the sub-page read policy; and
issue a separate sub-page read command to retrieve each segment of sequentially stored data at sub-page granularity for which a corresponding read satisfies the sub-page read policy and issue a separate full-page read command to retrieve each segment of sequentially stored data at full-page granularity for which a corresponding read does not satisfy the sub-page read policy.

### Claim 6 (depends on 1)

The computing system of claim 1, wherein the instructions, when executed, cause the computing system to issue a full-page read command to retrieve the data at full-page granularity when the read does not satisfy the sub-page read policy or when a read for a segment of sequentially stored data does not satisfy the sub-page read policy.

### Claim 7 (depends on 6)

The computing system of claim 6, wherein the instructions, when executed, cause the computing system to:
discontinue preparation to issue the full-page read command and retrieve the data from a memory buffer when the data is present in a memory buffer; and
discontinue preparation to issue the full-page read command and retrieve the sequentially stored data from the memory buffer when the sequentially stored data is present in the memory buffer, wherein one or more of the data or the sequentially stored data are to be placed in the memory buffer via a prior single-plane full-page read or a prior multi-plane full-page read.

### Claim 8

An apparatus comprising:
a substrate; and
logic coupled to the substrate, wherein the logic includes one or more of configurable logic or fixed-functionality hardware logic, the logic coupled to the substrate to:
determine whether a read to a memory device satisfies a sub-page read policy; and
issue a sub-page read command to retrieve data from the memory device at sub-page granularity when the read satisfies the sub-page read policy, the logic further to:
issue a persistent state command to enter the memory device to a sub-page state or a full-page state, wherein the sub-page state allows the memory device to read data at the sub-page granularity until a full-page read is required, and wherein the full-page state allows the memory device to read data at a full-page granularity until a sub-page read is required; or
issue a non-persistent toggle state command that is to disable a default state of the memory device to allow the memory device to retrieve data at granularity specific to a non-default state, implement one read at the granularity specific to the non-default state, and re-enable the default state when the one read is complete.

### Claim 9 (depends on 8)

The apparatus of claim 8, wherein the logic is to:
determine whether the read satisfies a physical requirement;
determine whether the read satisfies a random read requirement; and
determine whether the read satisfies a maximum sub-page read size.

### Claim 10 (depends on 8)

The apparatus of claim 8, wherein the logic is to:
determine whether a read size of the read matches a current sub-page read size; and
set the current sub-page read size to the read size to implement a new sub-page read size.

### Claim 11 (depends on 8)

The apparatus of claim 8, wherein the logic is to:
determine whether the data is present in a memory buffer;
discontinue preparation to issue the sub-page read command and retrieve the data from the memory buffer when the data is present in the memory buffer; and
issue the sub-page read command when the data is not present in the memory buffer.

### Claim 12 (depends on 8)

The apparatus of claim 8, wherein the logic is to:
determine each segment of sequentially stored data for the read when the read does not satisfy a predetermined read size condition;
prepare to dispatch a separate read command for each segment;
determine whether each read for each segment of sequentially stored data satisfies the sub-page read policy; and
issue a separate sub-page read command to retrieve each segment of sequentially stored data at sub-page granularity for which a corresponding read satisfies the sub-page read policy and issue a separate full-page read command to retrieve each segment of sequentially stored data at full-page granularity for which a corresponding read does not satisfy the sub-page read policy.

### Claim 13 (depends on 8)

The apparatus of claim 8, wherein the logic is to issue a full-page read command to retrieve the data at full-page granularity when the read does not satisfy the sub-page read policy or when a read for a segment of sequentially stored data does not satisfy the sub-page read policy.

### Claim 14

At least one non-transitory computer readable storage medium comprising a set of instructions, which when executed by a processor, cause the processor to:
determine whether a read to a memory device satisfies a sub-page read policy; and
issue a sub-page read command to retrieve data from the memory device at sub-page granularity when the read satisfies the sub-page read policy, the processor further to:
issue a persistent state command to enter the memory device to a sub-page state or a full-page state, wherein the sub-page state allows the memory device to read data at the sub-page granularity until a full-page read is required, and wherein the full-page state allows the memory device to read data at a full-page granularity until a sub-page read is required; or
issue a non-persistent toggle state command that is to disable a default state of the memory device to allow the memory device to retrieve data at granularity specific to a non-default state, implement one read at the granularity specific to the non-default state, and re-enable the default state when the one read is complete.

### Claim 15 (depends on 14)

The at least one non-transitory computer readable storage medium of claim 14, wherein the instructions, when executed, cause the processor to:
determine whether the read satisfies a physical requirement;
determine whether the read satisfies a random read requirement; and
determine whether the read satisfies a maximum sub-page read size.

### Claim 16 (depends on 14)

The at least one non-transitory computer readable storage medium of claim 14, wherein the instructions, when executed, cause the processor to:
determine whether a read size of the read matches a current sub-page read size; and
set the current sub-page read size to the read size to implement a new sub-page read size.

### Claim 17 (depends on 14)

The at least one non-transitory computer readable storage medium of claim 14, wherein the instructions, when executed, cause the processor to:
determine whether the data is present in a memory buffer;
discontinue preparation to issue the sub-page read command and retrieve the data from the memory buffer when the data is present in the memory buffer; and
issue the sub-page read command when the data is not present in the memory buffer.

### Claim 18 (depends on 14)

The at least one non-transitory computer readable storage medium of claim 14, wherein the instructions, when executed, cause the processor to:
determine each segment of sequentially stored data for the read when the read does not satisfy a predetermined read size condition;
prepare to dispatch a separate read command for each segment;
determine whether each read for each segment of sequentially stored data satisfies the sub-page read policy; and
issue a separate sub-page read command to retrieve each segment of sequentially stored data at sub-page granularity for which a corresponding read satisfies the sub-page read policy and issue a separate full-page read command to retrieve each segment of sequentially stored data at full-page granularity for which a corresponding read does not satisfy the sub-page read policy.

### Claim 19 (depends on 14)

The at least one non-transitory computer readable storage medium of claim 14, wherein the instructions, when executed, cause the processor to issue a full-page read command to retrieve the data at full-page granularity when the read does not satisfy the sub-page read policy or when a read for a segment of sequentially stored data does not satisfy the sub-page read policy.

### Claim 20

A method comprising:
determining whether a read to a memory device satisfies a sub-page read policy; and
issuing a sub-page read command to retrieve data from the memory device at sub-page granularity when the read satisfies the sub-page read policy, the method further including:
issuing a persistent state command to enter the memory device to a sub-page state or a full-page state, wherein the sub-page state allows the memory device to read data at the sub-page granularity until a full-page read is required, and wherein the full-page state allows the memory device to read data at a full-page granularity until a sub-page read is required; or
issuing a non-persistent toggle state command that is to disable a default state of the memory device to allow the memory device to retrieve data at granularity specific to a non-default state, implement one read at the granularity specific to the non-default state, and re-enable the default state when the one read is complete.

### Claim 21 (depends on 20)

The method of claim 20, further including:
determining whether the read satisfies a physical requirement;
determining whether the read satisfies a random read requirement; and
determining whether the read satisfies a maximum sub-page read size.

### Claim 22 (depends on 20)

The method of claim 20, further including issuing a full-page read command to retrieve the data at full-page granularity when the read does not satisfy the sub-page read policy or when a read for a segment of sequentially stored data does not satisfy the sub-page read policy.

### Claim 23

An apparatus comprising:
a substrate; and
logic coupled to the substrate, wherein the logic includes one or more of configurable logic or fixed-functionality hardware logic, the logic coupled to the substrate to:
determine whether a read to a memory device satisfies a sub-page read policy;
issue a sub-page read command to retrieve data from the memory device at sub-page granularity when the read satisfies the sub-page read policy, the logic further to:
determine each segment of sequentially stored data for the read when the read does not satisfy a predetermined read size condition;
prepare to dispatch a separate read command for each segment;
determine whether each read for each segment of sequentially stored data satisfies the sub-page read policy; and
issue a separate sub-page read command to retrieve each segment of sequentially stored data at sub-page granularity for which a corresponding read satisfies the sub-page read policy and issue a separate full-page read command to retrieve each segment of sequentially stored data at full-page granularity for which a corresponding read does not satisfy the sub-page read policy.

### Claim 24

At least one non-transitory computer readable storage medium comprising a set of instructions, which when executed by a processor, cause the processor to:
determine whether a read to a memory device satisfies a sub-page read policy; and
issue a sub-page read command to retrieve data from the memory device at sub-page granularity when the read satisfies the sub-page read policy, the processor further to:
determine each segment of sequentially stored data for the read when the read does not satisfy a predetermined read size condition;
prepare to dispatch a separate read command for each segment;
determine whether each read for each segment of sequentially stored data satisfies the sub-page read policy; and
issue a separate sub-page read command to retrieve each segment of sequentially stored data at sub-page granularity for which a corresponding read satisfies the sub-page read policy and issue a separate full-page read command to retrieve each segment of sequentially stored data at full-page granularity for which a corresponding read does not satisfy the sub-page read policy.

### Claim 25

A method comprising:
determining whether a read to a memory device satisfies a sub-page read policy; and
issuing a sub-page read command to retrieve data from the memory device at sub-page granularity when the read satisfies the sub-page read policy, the method further including:
determining each segment of sequentially stored data for the read when the read does not satisfy a predetermined read size condition;
preparing to dispatch a separate read command for each segment;
determining whether each read for each segment of sequentially stored data satisfies the sub-page read policy; and
issuing a separate sub-page read command to retrieve each segment of sequentially stored data at sub-page granularity for which a corresponding read satisfies the sub-page read policy and issuing a separate full-page read command to retrieve each segment of sequentially stored data at full-page granularity for which a corresponding read does not satisfy the sub-page read policy.
