Memory system and operating method of memory system

By using the controller to process speculative read requests based on the remaining credits, sending or discarding read commands, and adjusting the credits based on the read data hit rate, the problem of read latency in the memory system is solved, and system performance is improved.

CN121635792APending Publication Date: 2026-03-10SK HYNIX INC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-01-23
Publication Date
2026-03-10

AI Technical Summary

Technical Problem

Read latency issues in memory systems, especially unnecessary read operations caused by speculative read requests, consume memory throughput and affect system performance.

Method used

The controller processes speculative read requests based on the remaining credit amount, transmits or discards read commands, and adjusts the total credit amount and remaining credit amount based on whether the read data hits, thus optimizing the use of the buffer.

Benefits of technology

It effectively reduces read latency, improves the operational performance of the memory system, and reduces the impact of unnecessary read operations on memory throughput.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121635792A_ABST
    Figure CN121635792A_ABST
Patent Text Reader

Abstract

The invention discloses a memory system and an operating method of the memory system. The memory system includes a memory subsystem and a controller configured to transmit a read command corresponding to a speculative read request to the memory subsystem according to a remaining credit, receive read data corresponding to the speculative read request from the memory subsystem, and transmit the read data to the memory subsystem according to the remaining credit. And adjusting the total and remaining credits depending on whether the read data is a speculative read hit.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-references to related applications

[0002] This application claims priority to Korean Patent Application No. 10-2024-0118555, filed on September 2, 2024, the entire disclosure of which is incorporated herein by reference. Technical Field

[0003] Embodiments of this disclosure relate to a memory system. Background Technology

[0004] In computing systems, the way host devices access memory devices can have a significant impact on system performance. Specifically, read latency, which occurs when the host device reads data from memory devices, can be a major cause of system performance degradation. To reduce read latency, memory systems can use buffers, which are accessed much faster than the memory devices themselves. Furthermore, speculative read techniques can effectively reduce read latency by predicting the data the host device will need in the future and reading that data into a buffer. By utilizing buffers and speculative read techniques, memory systems can provide the necessary data to the host device more quickly and reduce memory access bottlenecks, thereby improving the overall performance of the memory system. Summary of the Invention

[0005] A memory system according to an embodiment of the present disclosure may include a memory subsystem; and a controller configured to transmit a read command corresponding to a speculative read request to the memory subsystem based on the remaining credit, receive read data corresponding to the speculative read request from the memory subsystem, and adjust the total credit and the remaining credit based on whether the read data is a speculative read hit.

[0006] A memory system according to embodiments of the present disclosure may include a memory subsystem; and a controller configured to, based on the remaining credit, transmit a read command to the memory subsystem in response to a speculative read request received from a host device, or discard the speculative read request without transmitting a read command to the memory subsystem.

[0007] An operation method of a memory system according to an embodiment of the present disclosure may include: receiving a speculative read request from a host device; transmitting a read command corresponding to the speculative read request to a memory subsystem based on the remaining credit, and reducing the remaining credit based on the transmission of the read command; increasing the remaining credit based on receiving read data corresponding to the speculative read request from the memory subsystem; and adjusting the total credit and the remaining credit based on whether the read data is a speculative read hit. Attached Figure Description

[0008] Figure 1This is a block diagram illustrating a memory system according to an embodiment of the present disclosure.

[0009] Figure 2 This is a diagram illustrating changes in credit volume according to embodiments of the present disclosure.

[0010] Figures 3 to 8 This is a block diagram illustrating the operation of a controller according to an embodiment of the present disclosure.

[0011] Figure 9 This is a flowchart illustrating the operation of a memory system according to an embodiment of the present disclosure. Detailed Implementation

[0012] Hereinafter, embodiments of the present disclosure will be described in more detail with reference to the accompanying drawings.

[0013] Figure 1 This is a block diagram illustrating a memory system 10 according to an embodiment of the present disclosure.

[0014] The memory system 10 can store data under the control of the host device 20. The memory system 10 may include PCMCIA cards, smart media cards, memory sticks, various multimedia cards (e.g., MMC, eMMC, RS-MMC, and micro MMC), secure digital cards (e.g., SD, mini SD, and micro SD), universal flash memory (UFS), or solid-state drives (SSD).

[0015] According to an embodiment, the memory system 10 can communicate with the host device 20 via a high-speed compute link (CXL) interface. The CXL interface can improve the communication speed between the host device 20, such as the central processing unit, and the memory system 10 in a high-performance computing system. The CXL interface can effectively reduce read latency by supporting speculative read requests, as will be described below.

[0016] The memory system 10 may include a memory subsystem 100 and a controller 200. The memory subsystem 100 may include a memory controller 110 and a memory device 120. The controller 200 may include a buffer 210.

[0017] The memory controller 110 can access the memory device 120 in response to a command received from the controller 200. For example, the memory controller 110 can store data in the memory device 120 in response to a write command received from the controller 200. The memory controller 110 can read data from the memory device 120 in response to a read command received from the controller 200 and transfer the data to the controller 200.

[0018] The memory device 120 can store data under the control of the memory controller 110. The memory device 120 may include non-volatile memory devices and / or volatile memory devices. Non-volatile memory devices may include NAND flash memory, 3D NAND flash memory, NOR flash memory, resistive random access memory (RRAM), phase-change memory (PRAM), magnetoresistive random access memory (MRAM), ferroelectric random access memory (FRAM), and spin-transfer torque random access memory (STT-RAM). Volatile memory devices may include dynamic random access memory (DRAM) and static random access memory (SRAM).

[0019] The controller 200 can transmit commands to the memory subsystem 100 in response to requests from the host device 20. For example, the controller 200 can transmit a write command to the memory subsystem 100 in response to a write request from the host device 20. Furthermore, the controller 200 can transmit a read command to the memory subsystem 100 in response to a read request from the host device 20.

[0020] Read requests from host device 20 may include speculative read requests and normal read requests. A speculative read request may be a request to pre-read data anticipated to be needed in the future from memory subsystem 100 into buffer 210. A normal read request may be a request to transfer data required by host device 20 to host device 20. When a normal read request for specific read data is received between the time when a speculative read request for specific read data is received and a predetermined valid time period, controller 200 can quickly transfer the read data pre-read into buffer 210 via the speculative read request to host device 20. Therefore, the read latency of normal read requests can be effectively reduced.

[0021] Controller 200 may transmit a read command corresponding to a speculative read request to memory subsystem 100 based on the remaining credit. Controller 200 may transmit a read command corresponding to a speculative read request to memory subsystem 100 based on determining that the remaining credit is greater than a reference value (e.g., zero (0)), and reduce the remaining credit based on the transmission of the read command. Based on determining that the remaining credit is 0, controller 200 may discard the speculative read request without transmitting the read command to memory subsystem 100.

[0022] When the memory subsystem 100 transmits the read data corresponding to the speculative read request to the controller 200 in response to a read command corresponding to the speculative read request, the controller 200 can increase the remaining credit based on the read data received corresponding to the speculative read request.

[0023] The controller 200 may store the read data corresponding to the speculative read request in the buffer 210 and may not transmit the read data to the host device 20. The controller 200 may also choose not to transmit the response corresponding to the speculative read request to the host device 20.

[0024] Controller 200 can adjust the total credit limit and remaining credit limit based on whether the read data corresponding to the speculative read request is a speculative read hit. Specifically, controller 200 can determine that the read data is a speculative read hit based on the fact that a normal read request corresponding to the speculative read request is received from host device 20 from the time the speculative read request is received until a predetermined validity period. The normal read request corresponding to the speculative read request may be a request to transmit the read data corresponding to the speculative read request to host device 20. Controller 200 can increase the total credit limit and remaining credit limit based on the determination that the read data is a speculative read hit. Controller 200 can also determine that the read data is a speculative read miss based on the fact that no normal read request corresponding to the speculative read request is received from host device 20 from the time the speculative read request is received until the predetermined validity period. Controller 200 can decrease the total credit limit based on the determination that the read data is a speculative read miss.

[0025] When the read data corresponding to the speculative read request is a speculative read hit, that is, when the controller 200 receives a normal read request corresponding to the speculative read request, the controller 200 may, in response to the normal read request, transmit the corresponding read data from the buffer 210 to the host device 20.

[0026] Even when read data corresponding to a normal read request unrelated to a speculative read request is already stored in buffer 210, controller 200 can still transfer read data from buffer 210 to host device 20 in response to a normal read request. When read data corresponding to a normal read request is not stored in buffer 210, for example, when the normal read request is unrelated to a speculative read request, or when the corresponding speculative read request is discarded, controller 200 can transfer a read command corresponding to the normal read request to memory subsystem 100, receive read data corresponding to the normal read request from memory subsystem 100, and transfer the read data to host device 20.

[0027] According to an embodiment, controller 200 can transmit a speculative read command to memory subsystem 100 in response to a speculative read request, and transmit a normal read command, different from the speculative read command, to memory subsystem 100 in response to a normal read request. Memory subsystem 100 can distinguish between speculative read commands and normal read commands, and process speculative read commands and normal read commands according to a predetermined priority.

[0028] Figure 2 This is a diagram illustrating changes in credit volume according to embodiments of the present disclosure.

[0029] Reference Figure 2 Total Credit Ratio (TCRD) can represent the total credit ratio currently held by the memory system 10. TCRD can also represent the maximum number of speculative read requests that the memory system 10 can process simultaneously.

[0030] The remaining credits RCRD can represent the amount of remaining credits currently available for memory system 10. Each time memory system 10 reads and accesses memory subsystem 100 in response to a speculative read request or transmits a read command corresponding to a speculative read request to memory subsystem 100, one credit can be used; that is, the remaining credits RCRD can decrease. Each time a speculative read request is fully processed or read data corresponding to a speculative read request is received from memory subsystem 100, one credit can be restored; that is, the remaining credits RCRD can increase. When memory system 10 starts up, the remaining credits RCRD can be equal to the total credits TCRD. When read commands corresponding to as many speculative read requests as the total credits TCRD are transmitted to memory subsystem 100, and no read data corresponding to the speculative read requests has been read, the remaining credits RCRD can be 0.

[0031] The maximum credit limit (MCRD) can represent the maximum limit of credit that the memory system 10 can hold. Based on the determination that the read data is a speculative read hit, the total credit limit (TCRD) can increase to the maximum credit limit (MCRD), or based on the determination that the read data is a speculative read miss, the total credit limit (TCRD) can decrease to 1. The maximum credit limit (MCRD) can correspond to the maximum size of the region 215 in buffer 210 that can be allocated to handle speculative read requests. The size of the region 215 in buffer 210 that can be allocated to handle speculative read requests can vary.

[0032] Figures 3 to 8 This is a block diagram illustrating the operation of a controller 200 according to an embodiment of the present disclosure.

[0033] Reference Figure 3 The host device 20 can transmit a speculative read request SPR to the controller 200. When the remaining credit RCRD is greater than a reference value (e.g., zero (0)), the controller 200 can transmit a read command RCMD to the memory subsystem 100 in response to the speculative read request SPR. In addition, the controller 200 can reduce the remaining credit RCRD (i.e., RCRD--) - (1) based on the transmission of the read command RCMD.

[0034] Reference Figure 4 The memory subsystem 100 can respond to Figure 3 The read command RCMD shown transmits the read data RD corresponding to the read command RCMD to the controller 200. The controller 200 can store the read data RD received from the memory subsystem 100 in the buffer 210. When the read data RD corresponds to... Figure 3 When the speculative read request SPR is shown, and the remaining credit amount RCRD is less than the total credit amount TCRD, the controller 200 may increment the remaining credit amount RCRD by 1 (i.e., RCRD++) based on the receipt of read data RD. When the remaining credit amount RCRD is equal to the total credit amount TCRD, the controller 200 does not increment the remaining credit amount RCRD even if the read data RD corresponds to the speculative read request SPR.

[0035] Reference Figure 5 The controller 200 can determine whether the read data RD corresponding to the speculative read request SPR is a speculative read hit or a speculative read miss. When the controller 200 receives from the host device 20... Figure 3 From the time of the speculative read request SPR shown, up to a predetermined valid time, the controller 200 receives a normal read request NMR corresponding to the speculative read request SPR from the host device 20, and the controller 200 can determine that the read data RD is a speculative read hit. In one example, the predetermined valid time may be the time when the read data RD corresponding to the speculative read request SPR is fully stored in the buffer 210. In another example, the predetermined valid time may be the time elapsed since the time when the read data RD corresponding to the speculative read request SPR is fully stored in the buffer 210. In yet another example, the predetermined valid time may be the time elapsed since the time when the speculative read request SPR is received from the host device 20.

[0036] When it is determined that the read data RD is a speculative read hit, the read data RD corresponding to the speculative read request SPR can be transmitted from buffer 210 to host device 20. Based on the determination that the read data RD is a speculative read hit, controller 200 can increase the total credit amount TCRD by a predetermined amount (i.e., TCRD++), for example, 1, and increase the remaining credit amount RCRD by 1 (i.e., RCRD++).

[0037] Reference Figure 6 When receiving from controller 200 Figure 3If, before the predetermined valid time has elapsed since the speculative read request SPR, the controller 200 has not received a normal read request NMR corresponding to the speculative read request SPR from the host device 20, the controller 200 can determine that the read data RD corresponding to the speculative read request SPR is a speculative read miss. Based on the determination that the read data RD is a speculative read miss, the controller 200 can reduce the total credit amount TCRD by a predetermined amount (i.e., TCRD --), for example, 1. The controller 200 can remove the read data RD determined to be a speculative read miss from the buffer 210. Although the controller 200 reduces the total credit amount TCRD by a predetermined amount based on the determination that the read data RD is a speculative read miss, the remaining credit amount RCRD can remain unchanged.

[0038] Reference Figure 7 The host device 20 can transmit a speculative read request (SPR) to the controller 200. When the remaining credit (RCRD) is 0, the controller 200 can discard the speculative read request SPR without transmitting the corresponding read command (RCMD) to the memory subsystem 100. A remaining credit (RCRD) of 0 can mean that the memory subsystem 100 has not yet processed read commands corresponding to as many speculative read requests as the total credit (TCRD). Therefore, when the controller 200 discards the speculative read request SPR, it can prevent the execution of other operations from being delayed due to excessive memory throughput.

[0039] In summary, a larger total credit limit (TCRD) reduces the likelihood of a speculative read request (SPR) being dropped, while a smaller total credit limit (TCRD) increases the likelihood of a speculative read request (SPR) being dropped. Furthermore, a large number of speculative read misses can indicate numerous unnecessary read operations for memory device 120. Therefore, by adjusting the total credit limit (TCRD) based on speculative read hits and misses, the situation where unnecessary read operations consume memory throughput can be improved. Thus, the performance of memory system 10 can be improved.

[0040] When a normal read request NMR corresponding to the speculative read request SPR is received after the speculative read request SPR is discarded, the controller 200 may, as referred to Figure 8 The description handles normal read requests (NMR) without considering speculative read requests (SPR).

[0041] Reference Figure 8The host device 20 can transmit a normal read request (NMR) to the controller 200. The controller 200 can determine whether to transmit a read command (RCMD) corresponding to the normal read request (NMR) to the memory subsystem 100. Specifically, when the read data (RD) corresponding to the normal read request (NMR) does not exist in the buffer 210, the controller 200 can transmit the read command (RCMD) corresponding to the normal read request (NMR) to the memory subsystem 100.

[0042] For example, when the speculative read request SPR corresponding to the normal read request NMR is as follows: Figure 7 When the request is discarded, the read data RD corresponding to the normal read request NMR may not exist in buffer 210. In another example, when a normal read request NMR is transmitted from host device 20 without a prior speculative read request, the read data RD corresponding to the normal read request NMR may not exist in buffer 210. In another example, when a normal read request NMR is transmitted from host device 20 after a predetermined valid time following the transmission of a speculative read request corresponding to the normal read request NMR, the read data RD corresponding to the normal read request NMR may be deleted from buffer 210.

[0043] The memory subsystem 100 can transmit read data RD corresponding to the normal read request NMR to the controller 200 in response to the read command RCMD corresponding to the normal read request NMR. The controller 200 can store the read data RD in the buffer 210 and then transmit the read data RD from the buffer 210 to the host device 20.

[0044] Figure 9 This is a flowchart illustrating the operation of a memory system 10 according to an embodiment of the present disclosure.

[0045] Reference Figure 9 In S110, the controller 200 can receive a speculative read request from the host device 20.

[0046] In S120, controller 200 can determine whether the remaining credit amount is greater than a reference value (e.g., 0). Based on the determination that the remaining credit amount is 0, the process can proceed to S130. Based on the determination that the remaining credit amount is greater than 0, the process can proceed to S140.

[0047] In S130, controller 200 may discard a speculative read request without transmitting the corresponding read command to memory subsystem 100. The process may then be terminated.

[0048] In S140, the controller 200 may transmit a read command corresponding to the speculative read request to the memory subsystem 100, and reduce the remaining credit amount by a reference value (e.g., 1) based on the transmission of the read command.

[0049] In S150, controller 200 can receive read data corresponding to a speculative read request from memory subsystem 100 and store the read data in buffer 210. Based on the received read data corresponding to the speculative read request, controller 200 can increase the remaining credit amount by a reference value (e.g., 1).

[0050] In S160, the controller 200 can determine whether the read data corresponding to the speculative read request is a speculative read hit or a speculative read miss. If the controller 200 receives a normal read request corresponding to the speculative read request within a predetermined validity period from the time the speculative read request was received, the controller 200 can determine that the read data corresponding to the speculative read request is a speculative read hit. If the controller 200 does not receive a normal read request corresponding to the speculative read request within the predetermined validity period from the time the speculative read request was received, the controller 200 can determine that the read data corresponding to the speculative read request is a speculative read miss. Based on the determination that the read data corresponding to the speculative read request is a speculative read hit, the process can proceed to S170. Based on the determination that the read data corresponding to the speculative read request is a speculative read miss, the process can proceed to S180.

[0051] In S170, controller 200 may increment the total credit amount and remaining credit amount by a reference value (e.g., 1). In response to a normal read request, controller 200 may transfer the read data corresponding to the normal read request from buffer 210 to host device 20.

[0052] In S180, controller 200 may reduce the total credit by a reference value (e.g., 1). Controller 200 may remove read data determined to be a speculative read miss from buffer 210.

[0053] According to embodiments of the present technology, a memory system and a method of operating the memory system can have improved operational performance by mitigating the memory throughput of unnecessary read operations when speculating read requests based on credit processing.

[0054] Although embodiments of this disclosure have been described for illustrative purposes, those skilled in the art will understand that various modifications and changes can be made without departing from the essential characteristics of the embodiments. Therefore, the embodiments disclosed herein are not intended to limit but rather illustrate the technical scope of this disclosure. The scope of protection of the embodiments of this disclosure should be interpreted based on the appended claims. Furthermore, it should be understood that all technical details included in this disclosure that are identical or equivalent to those in the claims are included within the scope of this disclosure. Additionally, embodiments may be combined to form additional embodiments.

Claims

1. A memory system comprising: a memory sub-system; and a controller: transmitting, according to a remaining credit amount, a read command corresponding to a speculative read request to the memory sub-system, receiving, from the memory sub-system, read data corresponding to the speculative read request, and adjusting a total credit amount and the remaining credit amount according to whether the read data is a speculative read hit.

2. The memory system of claim 1, wherein, the controller, based on determining that the remaining credit amount is greater than a reference value, transmits the read command to the memory sub-system, and based on the transmission of the read command, decreases the remaining credit amount.

3. The memory system of claim 1, wherein, the controller, based on determining that the remaining credit amount is a reference value, discards the speculative read request without transmitting the read command to the memory sub-system.

4. The memory system of claim 1, wherein, the controller, based on receiving the read data from the memory sub-system, increases the remaining credit amount.

5. The memory system of claim 1, wherein, the controller includes a buffer that stores the read data, and wherein the total credit amount is less than or equal to a maximum credit amount that corresponds to a maximum size of an area in the buffer that can be allocated for processing the speculative read request.

6. The memory system of claim 1, wherein, the controller, based on receiving, from a time of receiving the speculative read request to a predetermined valid time, a normal read request corresponding to the speculative read request, determines that the read data is the speculative read hit.

7. The memory system of claim 6, wherein, the controller transmits the read data to a host device as a response corresponding to the normal read request, instead of as a response corresponding to the speculative read request.

8. The memory system of claim 1, wherein, the controller, based on determining that the read data is the speculative read hit, increases the total credit amount and the remaining credit amount.

9. The memory system of claim 1, wherein, the controller, based on determining that the read data is a speculative read miss, decreases the total credit amount.

10. A memory system comprising: a memory sub-system; and a controller, according to a remaining credit amount, transmits, in response to a speculative read request received from a host device, a read command to the memory sub-system, or discards the speculative read request without transmitting the read command to the memory sub-system.

11. The memory system of claim 10, wherein, the controller, based on determining that the remaining credit amount is greater than a reference value, transmits the read command to the memory sub-system, and based on the transmission of the read command, decreases the remaining credit amount.

12. The memory system of claim 10, wherein, the controller, based on determining that the remaining credit amount is a reference value, discards the speculative read request without transmitting the read command to the memory sub-system.

13. The memory system of claim 10, wherein, the controller further adjusts the remaining credit amount based on receiving, from the memory sub-system, read data corresponding to the speculative read request.

14. The memory system of claim 13, wherein, the controller, based on receiving, from a time of receiving the speculative read request to a predetermined valid time, a normal read request corresponding to the speculative read request from the host device, determines that the read data is a speculative read hit.

15. The memory system of claim 14, wherein, the controller further adjusts a total credit amount and the remaining credit amount based on determining that the read data is the speculative read hit.

16. An operating method of a memory system, the operating method comprising: receiving a speculative read request from a host device; transmitting, according to a remaining credit amount, a read command corresponding to the speculative read request to a memory subsystem, and decreasing the remaining credit amount based on transmission of the read command; increasing the remaining credit amount based on receiving read data corresponding to the speculative read request from the memory subsystem; and adjusting a total credit amount and the remaining credit amount according to whether the read data is a speculative read hit.

17. The operating method of claim 16, further comprising: discarding the speculative read request without transmitting the read command based on determining that the remaining credit amount is a reference value.

18. The method of operation of claim 16, wherein, adjusting the total credit amount and the remaining credit amount includes increasing the total credit amount and the remaining credit amount based on determining that the read data is the speculative read hit.

19. The method of operation of claim 16, wherein, adjusting the total credit amount and the remaining credit amount includes decreasing the total credit amount based on determining that the read data is a speculative read miss.

20. The operating method of claim 16, further comprising: determining that the read data is the speculative read hit based on receiving a normal read request corresponding to the speculative read request from the host device from a time of receiving the speculative read request to a predetermined valid time.