IP Library › Granted Patent US 12,572,300
Granted Patent B2
US 12,572,300 · App. 18/344,837 · Granted Mar 10, 2026

Memory expander, heterogeneous computing device using memory expander, and operation method of heterogenous computing

Inventors: Chon Yong Lee (Hwaseong-si, KR); Jae-Gon Lee (Seoul, KR); Kyunghan Lee (Suwon-si, KR)
Assignee: Samsung Electronics Co., Ltd.
G06F3/0655G06F3/0604G06F3/0679
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,572,300
App. No.
18/344,837
Granted
Mar 10, 2026
Kind
B2
Abstract

A memory expander includes a memory device that stores a plurality of task data. A controller controls the memory device. The controller receives metadata and a management request from an external central processing unit (CPU) through a compute express link (CXL) interface and operates in a management mode in response to the management request. In the management mode, the controller receives a read request and a first address from an accelerator through the CXL interface and transmits one of the plurality of task data to the accelerator based on the metadata in response to the read request.

Claims (69)

1 . A memory system comprising:

a memory device configured to store a plurality of task data; and

a controller configured to control the memory device,

wherein the controller is configured to:

receive metadata from an external central processing unit (CPU) through a compute express link (CXL) interface;

receive a first read information from an accelerator through the CXL interface, the first read information corresponding to a first task;

determine, from a read counter, a read count corresponding to the first task, wherein the read count is a value indicating a number of transmitted unit data; and

transmit first task data, corresponding to the first task, of the plurality of task data to the accelerator, based on the metadata and the read count, in response to the first read information,

wherein the accelerator is configured to receive task information that includes a first task address from the external CPU,

wherein the controller is configured to receive second read information from the accelerator through the CXL interface, and transmit second task data of the plurality of task data to the accelerator in response to the second read information, and

wherein each of the first read information and the second read information includes the first task address.

2 . The memory system of claim 1 , wherein the controller is configured to receive write information and result data from the accelerator.

3 . The memory system of claim 1 ,

wherein the controller is configured to read the first task data from the memory device based on the first task address, and transmit the first task data to the accelerator through the CXL interface.

4 . The memory system of claim 1 ,

wherein the second task data is sequential data for the first task data.

5 . The memory system of claim 4 , wherein the controller is configured to determine that data corresponding to the first task address is the first task data or the second task data, based on a delimiter included in the metadata and the read count.

6 . The memory system of claim 1 ,

wherein the second task data is data for a new task.

7 . The memory system of claim 1 , wherein the controller is configured to output a completion to the external CPU or the accelerator through the CXL interface upon a plurality of result data respectively associated with the plurality of task data being stored in the memory device.

8 . The memory system of claim 1 , wherein the controller is configured to receive a status request from the external CPU, and transmit information about the read counter associated with the task data and information about a write counter associated with a plurality of result data to the external CPU in response to the status request.

9 . An operation method of an accelerator connected to an external central processing unit (CPU) and a memory system through a compute express link (CXL) interface, the method comprising:

receiving task information from the external CPU through the CXL interface;

transmitting first read information to the memory system through the CXL interface;

receiving first task data corresponding to the first read information from the memory system through the CXL interface;

computing on the first task data based on the task information to generate first result data;

transmitting the first result data to the memory system through the CXL interface; and

after the transmitting the first result data, transmitting second read information to the memory system through the CXL interface without an interrupt to the external CPU,

wherein each of the first read information and the second read information includes a same first task address.

10 . The method of claim 9 , comprising:

receiving second task data corresponding to the second read information from the memory system through the CXL interface, the second task data being different from the first task data;

computing on the second task data based on the task information to generate second result data; and

transmitting the second result data to the memory system through the CXL interface.

11 . The method of claim 9 , further comprises:

receiving end data from the memory system; and

transmit a completion for the task information to the external CPU.

12 . A computing system comprising:

a central processing unit (CPU);

an accelerator; and

a memory system configured to store a plurality of task data;

wherein the CPU, the accelerator, and the memory system are connected with a compute express link (CXL) interface,

wherein the CPU is configured to transmit metadata to the memory system through the CXL interface and transmit task information to the accelerator through the CXL interface,

wherein the accelerator is configured to transmit first read information to the memory system through the CXL interface,

wherein the memory system is configured to:

receive metadata from the CPU through the CXL interface;

receive a first read information from the accelerator through the CXL interface, the first read information corresponding to a first task;

determine, from a read counter, a read count corresponding to the first task,

wherein the read count is a value indicating a number of transmitted unit data; and

transmit, based upon the metadata and the read count, first task data of the task data to the accelerator in response to the first read information, and

wherein the accelerator is configured to perform a computation on the first task data based on the task information to generate first result data,

wherein the accelerator is configured to transmit the first result data to the memory system, and transmit second read information to the memory system,

wherein the memory system is configured to transmit second task data of the plurality of task data to the accelerator in response to the second read information, and

wherein each of the first read information and the second read information includes a same first task address.

13 . The computing system of claim 12 , wherein the accelerator is configured to perform a computation on the second task data based on the task information to generate second result data, and transmit the second result data to the memory system.

14 . The computing system of claim 13 , wherein the memory system is configured to sequentially store the first result data and the second result data in an order of the first task data and the second task data.

15 . The computing system of claim 13 , wherein the memory system is configured to non-sequentially store the first result data and the second result data.

16 . The computing system of claim 12 , wherein the memory system and the accelerator are configured to operate without an interrupt to the CPU until a task corresponding to the task information is completed.

17 . A memory system comprising:

a memory device configured to store a plurality of task data; and

a controller configured to control the memory device,

wherein the controller is configured to:

receive first metadata and second metadata from at least one external central processing unit (CPU) through a computing express link (CXL) interface;

receive first read information from a first accelerator through the CXL interface, the first read information corresponding to a first task;

determine, from a read counter, a first read count corresponding to the first task, wherein the first read count is a value indicating a number of transmitted unit data; and

transmit, based on the first metadata and the first read count, first task data of the plurality of task data in response to the first read information;

receive second read information from a second accelerator through the CXL interface, the second read information corresponding to a second task;

determine, from the read counter, a second read count corresponding to the second task; and

transmit, based on the second read count, second task data of the plurality of task data in response to the second read information,

wherein each of the first read information and the second read information includes a same first task address.

Priority Claims (1)
KR 10-2020-0141710 · Oct 29, 2020 · national
Continuity (2)
Continuation 17509669 · Oct 25, 2021
Related Publication 20230342073A1 · Oct 26, 2023
References Cited (29)
US 7984248B2 · Kottapalli et al. · 2011 [cited by applicant]
US 10467176B2 · Morishita et al. · 2019 [cited by applicant]
US 20050278502A1 · Hundley · 2005 [cited by applicant]
US 20090034548A1 · Soni · 2009 [cited by examiner]
US 20090307416A1 · Luo et al. · 2009 [cited by applicant]
US 20110264875A1 · Watanabe · 2011 [cited by examiner]
US 20170322948A1 · Chen · 2017 [cited by examiner]
US 20180011812A1 · Morishita et al. · 2018 [cited by applicant]
US 20180081804A1 · Turner · 2018 [cited by examiner]
US 20180107506A1 · Suzuki · 2018 [cited by examiner]
US 20180150298A1 · Balle et al. · 2018 [cited by applicant]
US 20180173461A1 · Carroll · 2018 [cited by examiner]
US 20190179670A1 · Kim et al. · 2019 [cited by applicant]
US 20190317805A1 · Metsch · 2019 [cited by examiner]
US 20200042240A1 · Therene et al. · 2020 [cited by applicant]
US 20200050570A1 · Agarwal et al. · 2020 [cited by applicant]
US 20200065290A1 · Natu · 2020 [cited by applicant]
US 20200159584A1 · Cho · 2020 [cited by examiner]
US 20200228375A1 · Chen · 2020 [cited by examiner]
US 20200327084A1 · Choudhary et al. · 2020 [cited by applicant]
US 20210208818A1 · Zheng · 2021 [cited by examiner]
US 20220114125A1 · Thakur et al. · 2022 [cited by applicant]
US 20230022294A1 · Huang · 2023 [cited by examiner]
KR 19960002031 · 1997 [cited by applicant]
KR 101227885 · 2013 [cited by applicant]
European Examination Report Dated Apr. 28, 2023. [cited by applicant]
Google Scholar search results (Year: 2023). [cited by applicant]
IEEE search results (Year: 2023). [cited by applicant]
Prateek Shantharama et al., “Hardware-Accelerated Platforms and Infrastructures for Network Functions: A Survey of Enabling Technologies and Research Studies”, IEEE Access, vol. 8, 2020, pp. 132021-132085. [cited by applicant]