IP Library › Granted Patent US 12,346,260
Granted Patent B2
US 12,346,260 · App. 18/449,935 · Granted Jul 1, 2025

Memory device and memory system

Inventor: Tomoya Suzuki (San Diego, CA)
Assignee: Kioxia Corporation
G06F12/0882G06F12/126
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 12,346,260
App. No.
18/449,935
Granted
Jul 1, 2025
Kind
B2
Abstract

According to one embodiment, a memory device includes a controller, a nonvolatile memory, and a cache memory. The controller is configured to record a plurality of first addresses sequentially accessed to read data stored in the nonvolatile memory, acquire an address list including a second address within the first addresses and a third address within the first addresses which is estimated to be accessed after the second address is accessed, read data from the nonvolatile memory based on the third address included in the address list if the second address included in the address list is accessed, and store, in the cache memory, the data read from the nonvolatile memory.

Claims (99)

1. A memory device comprising:

a controller;

a nonvolatile memory; and

a cache memory, wherein

the controller is configured to:

record a plurality of first addresses sequentially accessed to read data stored in the nonvolatile memory,

acquire an address list including a second address within the first addresses and a third address within the first addresses which is estimated to be accessed after the second address is accessed,

read data from the nonvolatile memory based on the third address included in the address list if the second address included in the address list is accessed, and

store, in the cache memory, the data read from the nonvolatile memory, and

the second address and the third address are specified from the first addresses by analyzing the first addresses.

2. The memory device of claim 1 , wherein

the nonvolatile memory includes a plurality of pages where a page is a unit of data read operation, and

the controller is configured to read, if two or more data within the data to be read based on the third address included in the address list are placed in one of the pages, the two or more data from the page in one read operation and stores the two or more data in the cache memory.

3. The memory device of claim 1 , wherein, out of data to be read based on a second address and a third address included in the address list, data which is not stored in the cache memory when the second address is accessed is placed in advance in a memory area where data can be read faster than the nonvolatile memory.

4. A memory device comprising:

a controller;

a nonvolatile memory; and

a cache memory, wherein

the controller is configured to:

record a plurality of first addresses sequentially accessed to read data stored in the nonvolatile memory,

acquire an address list including a second address within the first addresses and a third address within the first addresses which is estimated to be accessed after the second address is accessed,

read data from the nonvolatile memory based on the third address included in the address list if the second address included in the address list is accessed, and

store, in the cache memory, the data read from the nonvolatile memory,

the nonvolatile memory includes a plurality of pages where a page is a unit of data read operation,

the address list includes a plurality of third addresses, and

the controller is configured to place, before the second address in the address list is accessed, data read based on each of the third addresses in a same page included in the nonvolatile memory.

5. The memory device of claim 4 , wherein the controller is configured to:

generate, if the data read based on each of the third addresses is placed in the same page included in the nonvolatile memory, access resume data including the second address and a fourth address, the fourth address including a page number to identify the page, and

read, if the second address included in the access resume data is accessed, data from the nonvolatile memory based on a fourth address included in the access resume data.

6. The memory device of claim 5 , wherein

the third addresses include a fifth address with high priority and a sixth address with low priority, and

the controller is configured to:

place data read based on the fifth address in a first page included in the nonvolatile memory, and generate first access resume data including the second address and the fourth address, the fourth address including a page number to identify the first page,

place data read based on the sixth address in a second page which is different from the first page included in the nonvolatile memory, and generate second access resume data including the second address and the fourth address, the fourth address including a page number to identify the second page, and

refer to the first access resume data with higher priority than the second access resume data in order to store the data in the cache memory.

7. The memory device of claim 6 , wherein

the controller is configured to record the first addresses for a plurality of times, and

the fifth and sixth addresses are determined based on occurrence numbers thereof in the first addresses recorded for the plurality of times.

8. The memory device of claim 5 , wherein

the controller is configured to:

acquire an address list including a plurality of second addresses and a plurality of third addresses estimated to be accessed after each of the second addresses is accessed,

generate a plurality of access resume data corresponding to each of the second addresses included in the address list, and

switch, if one second address of the second addresses is accessed, the access resume data to be referred to for storing the data in the cache memory with access resume data corresponding to another second address of the second addresses.

9. The memory device of claim 5 connected to a processor configured to execute a plurality of programs, wherein

the controller is configured to:

generate access resume data for each of the programs,

detect, if the second address is accessed, a start of execution of a specific program based on the second address, and

switch access resume data to be referred to for storing the data read from the nonvolatile memory in the cache memory based on a detection result.

10. A memory system comprising:

a memory device; and

a processor connected to the memory device, wherein

the memory device includes a controller, a nonvolatile memory, and a cache memory, and

the controller is configured to:

record a plurality of first addresses sequentially accessed to read data stored in the nonvolatile memory,

acquire an address list including a second address within the first addresses and a third address within the first addresses which is estimated to be accessed after the second address is accessed,

read data from the nonvolatile memory based on the third address included in the address list if the second address included in the address list is accessed, and

store, in the cache memory, the data read from the nonvolatile memory,

the processor is configured to generate the address list based on the first addresses recorded, and

the second address and the third address are specified from the first addresses by analyzing the first addresses.

11. The memory system of claim 10 , wherein

the nonvolatile memory includes a plurality of pages where a page is a unit of data read operation, and

the controller is configured to read, if two or more data within the data to be read based on the third address included in the address list are placed in one of the pages, the two or more data from the page in one read operation and stores the two or more data in the cache memory.

12. The memory system of claim 10 , wherein, out of data to be read based on a second address and a third address included in the address list, data which is not stored in the cache memory when the second address is accessed is placed in advance in a memory area where data can be read faster than the nonvolatile memory.

13. A memory system comprising:

a memory device; and

a processor connected to the memory device, wherein

the memory device includes a controller, a nonvolatile memory, and a cache memory, and

the controller is configured to:

record a plurality of first addresses sequentially accessed to read data stored in the nonvolatile memory,

acquire an address list including a second address within the first addresses and a third address within the first addresses which is estimated to be accessed after the second address is accessed,

read data from the nonvolatile memory based on the third address included in the address list if the second address included in the address list is accessed, and

store, in the cache memory, the data read from the nonvolatile memory, and

the processor is configured to generate the address list based on the first addresses recorded,

the nonvolatile memory includes a plurality of pages where a page is a unit of data read operation,

the address list includes a plurality of third addresses, and

the controller is configured to place, before the second address in the address list is accessed, data read based on each of the third addresses in a same page included in the nonvolatile memory.

14. The memory system of claim 13 , wherein the controller is configured to:

generate, if the data read based on each of the third addresses is placed in the same page included in the nonvolatile memory, access resume data including the second address and a fourth address, the fourth address including a page number to identify the page, and

read, if the second address included in the access resume data is accessed, data from the nonvolatile memory based on a fourth address included in the access resume data.

15. The memory system of claim 14 , wherein

the third addresses include a fifth address with high priority and a sixth address with low priority, and

the controller is configured to:

place data read based on the fifth address in a first page included in the nonvolatile memory, and generate first access resume data including the second address and the fourth address, the fourth address including a page number to identify the first page,

place data read based on the sixth address in a second page which is different from the first page included in the nonvolatile memory, and generate second access resume data including the second address and the fourth address, the fourth address including a page number to identify the second page, and

refer to the first access resume data with higher priority than the second access resume data in order to store the data in the cache memory.

16. The memory system of claim 15 , wherein

the controller is configured to record the first addresses for a plurality of times, and

the fifth and sixth addresses are determined based on occurrence numbers thereof in the first addresses recorded for the plurality of times.

17. The memory system of claim 14 , wherein

the controller is configured to:

acquire an address list including a plurality of second addresses and a plurality of third addresses estimated to be accessed after each of the second addresses is accessed,

generate a plurality of access resume data corresponding to each of the second addresses included in the address list, and

switch, if one second address of the second addresses is accessed, the access resume data to be referred to for storing the data in the cache memory with access resume data corresponding to another second address of the second addresses.

18. The memory system of claim 14 , wherein

the processor is configured to execute a plurality of programs, and

the controller is configured to:

generate access resume data for each of the programs,

detect, if the second address is accessed, a start of execution of a specific program based on the second address, and

switch access resume data to be referred to for storing the data read from the nonvolatile memory in the cache memory based on a detection result.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2023
From: SUZUKI, TOMOYA
To: KIOXIA CORPORATION
Reel/Frame 064592/0350 →
Priority Claims (1)
JP 2022-131698 · Aug 22, 2022 · national
Continuity (1)
Related Publication 20240061785A1 · Feb 22, 2024
References Cited (8)
US 10719445B1 · Navon et al. · 2020 [cited by applicant]
US 10860498B2 · Jeong · 2020 [cited by applicant]
US 20120072698A1 · Unesaki · 2012 [cited by examiner]
US 20200174942A1 · Jung · 2020 [cited by applicant]
US 20220019538A1 · Roberts · 2022 [cited by applicant]
JP 202087421A · 2020 [cited by applicant]
Schall et al. “Lukewarm Serverless Functions: Characterization and Optimization” Proceedings of the 49th Annual International Symposium on Computer Architecture, 2022, pp. 757-770 (14 pages) DOI: 10.1145/3470496.3527390. [cited by applicant]
Zhang et al. “RnR: A Software-Assisted Record-and-Replay Hardware Prefetcher” 2020 53rd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO), 2020, pp. 609-621 (13 pages) DOI: 10.1109/MICRO50266.2020.000… [cited by applicant]
Cited By (1)
US 12,717,520