IP Library Granted Patent US 12,411,768
Granted Patent B2
US 12,411,768 · App. 18/634,662 · Granted Sep 9, 2025

Cache memory device and method for implementing cache scheduling using same

Inventors: Do Hun Kim (Yongin-si, KR); Keebum Shin (Seongnam-si, KR); Kwangsun Lee (Yongin-si, KR)
Assignee: XCENA Inc.
G06F12/0828G06F12/0877
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,411,768
App. No.
18/634,662
Granted
Sep 9, 2025
Kind
B2
Abstract

It is one object of the present disclosure to provide measures for securing scalability of the queue depth of cache schedulers by utilizing a plurality of cache schedulers. To this end, a cache memory device in accordance with one embodiment of the present disclosure comprises: a request reception unit configured to receive input transactions; a traffic monitoring module configured to monitor traffic of the input transactions; N cache schedulers, wherein N is an integer greater than or equal to 2; a region setting module configured to set N input transaction regions corresponding to each of the N cache schedulers based on the traffic of the input transactions monitored, wherein input transactions are transferred via an input transaction region set in each cache scheduler; and an access execution unit configured to perform cache memory accesses to input transactions scheduled by the N cache schedulers.

Claims (58)

1. A cache memory device comprising:

a request reception unit configured to receive input transactions;

a traffic monitoring module configured to monitor traffic of the input transactions;

N cache schedulers, wherein N is an integer greater than or equal to 2;

a region setting module configured to set N input transaction regions corresponding to each of the N cache schedulers based on the traffic of the input transactions monitored, wherein the input transactions are transferred via an input transaction region set in each cache scheduler; and

an access execution unit configured to perform cache memory accesses to the input transactions scheduled by the N cache schedulers,

wherein the region setting module is further configured to set the N input transaction regions based on traffic of first input transactions during a first predetermined period before a time point of performing the setting of the N input transaction regions.

2. The cache memory device of claim 1 , wherein the region setting module is further configured to:

generate a histogram representing the number of memory accesses to addresses of the input transactions; and

set the N input transaction regions based on the histogram.

3. The cache memory device of claim 1 , wherein the region setting module is further configured to:

set the N input transaction regions based on a determination that there are no input transactions remaining in all of the N cache schedulers.

4. The cache memory device of claim 1 , wherein the region setting module is further configured to:

set the N input transaction regions based on a determination that there are no input transactions remaining in at least some of the N cache schedulers.

5. The cache memory device of claim 1 , wherein the region setting module is further configured to:

wait until there are no remaining input transactions by not receiving additional input transactions based on a determination that input transactions remaining in all of the N cache schedulers at predetermined periods are below a threshold; and

reset the N input transaction regions corresponding to each of the N cache schedulers based on the traffic of the input transactions monitored based on a determination that there are no input transactions remaining in all of the N cache schedulers.

6. The cache memory device of claim 1 , wherein each of the N cache schedulers comprise at least one of a reorder scheduling queue and a completion scheduling queue.

7. The cache memory device of claim 1 , further comprising an arbiter configured to couple the N cache schedulers with the access execution unit.

8. A computing system comprising:

a processor;

a main storage device configured to store commands or data associated with a program executed via the processor;

an auxiliary storage device configured to assist the main storage device; and

a cache memory device located between the processor and the main storage device and configured to temporarily store commands or data of the main storage device or the auxiliary storage device,

wherein the cache memory device comprises:

a request reception unit configured to receive input transactions;

a traffic monitoring module configured to monitor traffic of the input transactions;

N cache schedulers, wherein N is an integer greater than or equal to 2;

a region setting module configured to set N input transaction regions corresponding to each of the N cache schedulers based on the traffic of the input transactions monitored, wherein input transactions are transferred via an input transaction region set in each cache scheduler; and

an access execution unit configured to perform cache memory accesses to input transactions scheduled by the N cache schedulers,

wherein the region setting module is further configured to set the N input transaction regions based on traffic of first input transactions during a first predetermined period before a time point of performing the setting of the N input transaction regions.

9. The computing system of claim 8 , wherein the region setting module is further configured to:

generate a histogram representing the number of memory accesses to addresses of the input transactions; and

set the N input transaction regions based on the histogram.

10. The computing system of claim 8 , wherein the region setting module is further configured to:

set the N input transaction regions based on a determination that there are no input transactions remaining in all of the N cache schedulers.

11. The computing system of claim 8 , wherein the region setting module is further configured to:

set the N input transaction regions based on a determination that there are no input transactions remaining in at least some of the N cache schedulers.

12. The computing system of claim 8 , wherein the region setting module is further configured to:

wait until there are no remaining input transactions by not receiving additional input transactions based on a determination that input transactions remaining in all of the N cache schedulers at predetermined periods are below a threshold; and

reset the N input transaction regions corresponding to each of the N cache schedulers based on the traffic of the input transactions monitored based on a determination that there are no input transactions remaining in all of the N cache schedulers.

13. A method for implementing cache scheduling, the method comprising:

receiving input transactions;

monitoring traffic of the input transactions;

setting N input transaction regions corresponding to each of N cache schedulers based on the traffic of the input transactions monitored, wherein N is an integer greater than or equal to 2;

transferring input transactions to each cache scheduler via an input transaction region set for each of the N cache schedulers; and

performing cache memory accesses to input transactions scheduled by the N cache schedulers,

wherein the setting of the N input transaction regions comprises setting the N input transaction regions based on traffic of first input transactions during a first predetermined period before a time point of performing the setting of the N input transaction regions.

14. The method of claim 13 , wherein the setting of the N input transaction regions comprises:

generating a histogram representing the number of memory accesses to addresses of the input transactions; and

setting the N input transaction regions based on the histogram.

15. The method of claim 13 , wherein the setting of the N input transaction regions comprises:

setting the N input transaction regions based on a determination that there are no input transactions remaining in all of the N cache schedulers.

16. The method of claim 13 , wherein the setting of the N input transaction regions comprises:

setting the N input transaction regions based on a determination that there are no input transactions remaining in at least some of the N cache schedulers.

17. The method of claim 13 , wherein the setting of the N input transaction regions comprises:

waiting until there are no remaining input transactions by not receiving additional input transactions based on a determination that input transactions remaining in all of the N cache schedulers at predetermined periods are below a threshold; and

resetting the N input transaction regions corresponding to each of the N cache schedulers based on, as a result of the waiting, a determination that there are no input transactions remaining in all of the N cache schedulers.

Assignments (1)
CHANGE OF NAME Recorded Jan 29, 2025
From: METISX CO., LTD.
To: XCENA INC.
Reel/Frame 070055/0237 →
Priority Claims (1)
KR 10-2023-0051365 · Apr 19, 2023 · national
Continuity (2)
Continuation 18508840 · Nov 14, 2023
Related Publication 20240354252A1 · Oct 24, 2024
References Cited (39)
US 6442585B1 · Dean · 2002 [cited by examiner]
US 7644221B1 · Chan · 2010 [cited by applicant]
US 7747771B1 · Shah · 2010 [cited by applicant]
US 10241710B2 · Fanning · 2019 [cited by applicant]
US 12099867B2 · Puthoor · 2024 [cited by examiner]
US 20070220517A1 · Lippett · 2007 [cited by applicant]
US 20080168004A1 · Kagarlis · 2008 [cited by applicant]
US 20140283113A1 · Hanna · 2014 [cited by applicant]
US 20150254104A1 · Kessler · 2015 [cited by examiner]
US 20150254207A1 · Kessler · 2015 [cited by examiner]
US 20170091108A1 · Arellano · 2017 [cited by examiner]
US 20190095748A1 · Gan · 2019 [cited by examiner]
US 20190138719A1 · Sultana · 2019 [cited by examiner]
US 20190384690A1 · Liu · 2019 [cited by applicant]
US 20210382651A1 · Lecler · 2021 [cited by examiner]
US 20220308791A1 · Jayaram Masti · 2022 [cited by examiner]
US 20230104845A1 · Ray · 2023 [cited by examiner]
US 20240070072A1 · Roberts · 2024 [cited by examiner]
US 20240220315A1 · Pati · 2024 [cited by examiner]
EP 1868111A1 · 2017 [cited by applicant]
JP 2012141885A · 2012 [cited by applicant]
JP 2019082917A · 2019 [cited by applicant]
KR 101025354B1 · 2011 [cited by applicant]
KR 1020120008483A · 2012 [cited by applicant]
KR 1020190090614A · 2019 [cited by applicant]
KR 102220468B1 · 2021 [cited by applicant]
KR 1020220110225A · 2022 [cited by applicant]
WO 2006124730A2 · 2006 [cited by applicant]
WO WO2019067934A1 · 2019 [cited by examiner]
Y. Li, B. Akesson and K. Goossens, “Dynamic Command Scheduling for Real-Time Memory Controllers,” 2014 26th Euromicro Conference on Real-Time Systems, Madrid, Spain, 2014, pp. 3-14. [cited by examiner]
P. Caheny et al., “Reducing cache coherence traffic with hierarchical directory cache and NUMA-aware runtime scheduling,” 2016 International Conference on Parallel Architecture and Compilation Techniques (PACT), Haifa, … [cited by examiner]
K. Chan, K. T. Lam and C.-L. Wang, “Cache Affinity Optimization Techniques for Scaling Software Transactional Memory Systems on Multi-CMP Architectures,” 2015 14th International Symposium on Parallel and Distributed Com… [cited by examiner]
S. Park, J. Lee and H. Kim, “Software-Level Memory Regulation to Reduce Execution Time Variation on Multicore Real-Time Systems,” in IEEE Access, vol. 10, pp. 93799-93811, 2022. [cited by examiner]
Y. Li, B. Akesson, K. Lampka and K. Goossens, “Modeling and Verification of Dynamic Command Scheduling for Real-Time Memory Controllers,” 2016 IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS), Vi… [cited by examiner]
J. Poe, C. Hughes and T. Li, “Transplant: A parameterized methodology for generating transactional memory workloads,” 2009 IEEE International Symposium on Modeling, Analysis & Simulation of Computer and Telecommunicatio… [cited by applicant]
T. Harris et al., “Transactional Memory: An Overview,” in IEEE Micro, vol. 27, No. 3, pp. 8-29, May-Jun. 2007. [cited by applicant]
T. Bai, X. Shen, C. Zhang, W. N. Scherer, C. Ding and M. L. Scott, “A Key-based Adaptive Transactional Memory Executor,” 2007 IEEE International Parallel and Distributed Processing Symposium, Long Beach, CA, USA, 2007, … [cited by applicant]
Request for submission of opinion for KR 10-2023-0051365 dated Jul. 14, 2023. [cited by applicant]
Written Decision on Registration for KR 10-2023-0051365 dated Sep. 1, 2023. [cited by applicant]