IP Library Granted Patent US 12,242,725
Granted Patent B2
US 12,242,725 · App. 18/481,704 · Granted Mar 4, 2025

Electronic device and computing system including same

Inventors: Ju Hyun Kim (Yongin-si, KR); Jin Yeong Kim (Yongin-si, KR); Jae Wan Yeon (Yongin-si, KR)
Assignee: XCENA Inc.
G06F3/061G06F3/0656G06F3/0659G06F3/0673
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,242,725
App. No.
18/481,704
Granted
Mar 4, 2025
Kind
B2
Abstract

As one aspect of the present disclosure, an electronic device is disclosed. The device may include: a volatile memory device; and a controller configured to be connected with a host processor and the volatile memory device, wherein the controller may be further configured to receive a swap-out request for first data in pages from the host processor, generate first compressed data by compressing the first data in response to the swap-out request, and store the first compressed data in the volatile memory device.

Claims (69)

1. An electronic device for compressing and storing data, comprising:

a volatile memory device comprising a first area defined and managed as a compressed memory pool and a second area defined and managed as a temporary memory pool, the second area being different from the first area; and

a controller configured to be connected with a host processor and the volatile memory device,

wherein the controller is further configured to:

receive first data in pages and a swap-out request for the first data from the host processor,

store the first data in a first temporary buffer in the temporary memory pool,

generate first compressed data by compressing the first data in response to the swap-out request,

store the first compressed data in a second temporary buffer in the temporary memory pool,

determine a size of the first compressed data in the second temporary buffer of the temporary memory pool,

allocate the size of the first compressed data in the second temporary buffer in a storage area of the compressed memory pool of the volatile memory device,

store the first compressed data stored in the second temporary buffer in the storage area of the compressed memory pool,

record a location of the storage area in metadata of the first data, and

notify the host processor of completion of processing of the swap-out request,

wherein a size of the allocated storage area of the compressed memory pool corresponds to the size of the first compressed data in the second temporary buffer of the temporary memory pool.

2. The electronic device of claim 1 , wherein the controller is further configured to divide and manage the volatile memory device into the compressed memory pool and the temporary memory pool.

3. The electronic device of claim 1 , wherein the controller is further configured to:

receive a swap-in request for second data in pages from the host processor,

generate decompressed data by decompressing second compressed data in which the second data is compressed in response to the swap-in request, and

transfer the decompressed data to the host processor.

4. The electronic device of claim 3 , wherein the controller is further configured to:

store the decompressed data in a third temporary buffer of a page size in the temporary memory pool, and

transfer the decompressed data stored in the third temporary buffer to the host processor.

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

notify the host processor of completion of processing of the swap-in request, and

initialize metadata of the second data.

6. The electronic device of claim 1 , wherein the controller comprises:

a swap controller configured to request allocation of a memory space of the volatile memory device based on page information on the first data included in the swap-out request and control compression of the first data;

a memory manager configured to secure an empty space in the volatile memory device according to a determination of the swap controller; and

a compression and decompression module configured to compress the first data according to the determination of the swap controller.

7. The electronic device of claim 6 , wherein the controller further comprises:

a direct memory access (DMA) module configured to receive data to be swapped out from the host processor or transmit data to be swapped in to the host processor by using a predetermined protocol.

8. The electronic device of claim 6 , wherein the controller further comprises:

a cache memory configured to store data that has ever been accessed or is expected to be accessed; and

a memory controller configured to be connected with the volatile memory device and the cache memory.

9. The electronic device of claim 3 , wherein the controller comprises:

a swap controller configured to identify a storage location of the second compressed data in the volatile memory device based on page information on the second data included in the swap-in request and metadata of the second data, and control decompression of the second compressed data;

a memory manager configured to secure an empty space in the volatile memory device according to a determination of the swap controller; and

a compression and decompression module configured to decompress the second compressed data according to the determination of the swap controller.

10. The electronic device of claim 1 , wherein the controller is further configured to:

transfer the size of the first compressed data to the host processor,

receive an address where the first compressed data is to be stored from the host processor, and

store the first compressed data at the received address.

11. The electronic device of claim 1 , wherein the controller is further configured to:

determine cold data out of data stored in the compressed memory pool in the volatile memory device, and

transmit the cold data to a non-volatile storage device configured to be connected to the controller.

12. The electronic device of claim 1 , wherein the controller is further configured to:

determine cold data out of data stored in the compressed memory pool in the volatile memory device,

generate decompressed data by decompressing the cold data, and

transmit the decompressed data to a non-volatile storage device configured to be connected to the controller.

13. The electronic device of claim 1 , wherein the controller is configured to be connected with an external electronic device, and

the controller is further configured to receive a swap-out request for third data in pages from the external electronic device, generate third compressed data by compressing the third data in response to the swap-out request for the third data, and store the third compressed data in the volatile memory device.

14. The electronic device of claim 1 , wherein the controller is configured to be connected with an external electronic device, and

the controller is further configured to receive a swap-in request for fourth data in pages from the external electronic device, generate decompressed data by decompressing fourth compressed data in which the fourth data is compressed in response to the swap-in request, and transfer the decompressed data to the external electronic device.

15. A computing system comprising:

a host processor; and

an electronic device,

wherein the electronic device comprises:

a volatile memory device comprising a first area defined and managed as a compressed memory pool and a second area defined and managed as a temporary memory pool, the second area being different from the first area; and

a controller configured to be connected with the host processor and the volatile memory device,

wherein the controller is further configured to:

receive first data in pages and a swap-out request for the first data from the host processor,

generate first compressed data by compressing the first data in response to the swap-out request,

store the first compressed data in a second temporary buffer in the temporary memory pool,

determine a size of the first compressed data in the second temporary buffer of the temporary memory pool,

allocate the size of the first compressed data in the second temporary buffer in a storage area of the compressed memory pool of the volatile memory device,

store the first compressed data stored in the second temporary buffer in the storage area of the compressed memory pool,

record a location of the storage area in metadata of the first data, and

notify the host processor of completion of processing of the swap-out request,

wherein a size of the allocated storage area of the compressed memory pool corresponds to the size of the first compressed data in the second temporary buffer of the temporary memory pool.

Assignments (2)
CHANGE OF NAME Recorded Jan 10, 2025
From: METISX CO., LTD.
To: XCENA INC.
Reel/Frame 069873/0923 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2023
From: KIM, JU HYUN; KIM, JIN YEONG; YEON, JAE WAN
To: METISX CO., LTD.
Reel/Frame 065139/0393 →
Priority Claims (1)
KR 10-2023-0035760 · Mar 20, 2023 · national
Continuity (1)
Related Publication 20240319878A1 · Sep 26, 2024
References Cited (27)
US 6513094B1 · Magro · 2003 [cited by examiner]
US 11409648B2 · Choi · 2022 [cited by examiner]
US 20030061457A1 · Geiger · 2003 [cited by examiner]
US 20030188110A1 · Abali · 2003 [cited by examiner]
US 20070005911A1 · Yang · 2007 [cited by examiner]
US 20080133855A1 · Jeong · 2008 [cited by examiner]
US 20100274876A1 · Kagan · 2010 [cited by examiner]
US 20130185474A1 · Ge · 2013 [cited by examiner]
US 20140164686A1 · Choi · 2014 [cited by examiner]
US 20150301843A1 · Guo · 2015 [cited by examiner]
US 20160077946A1 · Raikin · 2016 [cited by examiner]
US 20200004621A1 · Athmaram · 2020 [cited by examiner]
US 20210318819A1 · Mun · 2021 [cited by examiner]
US 20220206961A1 · Lempel · 2022 [cited by examiner]
US 20220350531A1 · Wang · 2022 [cited by examiner]
KR 1020080047096A · 2008 [cited by applicant]
KR 1020120066198A · 2012 [cited by applicant]
KR 1020180044095A · 2018 [cited by applicant]
KR 102254099B1 · 2021 [cited by applicant]
KR 1020210126925A · 2021 [cited by applicant]
KR 1020210126984A · 2021 [cited by applicant]
KR 102434170B1 · 2022 [cited by applicant]
Freedman, Michael & Tr, Recitation. (2001). The Compression Cache: Virtual Memory Compression for Handheld Computers. (Year: 2001). [cited by examiner]
T.Cortes, Y.Becerra, and R. Cervera, “Swap Compression: Resurrecting Oldldears,” in Software-Practice and Experience Journal, No. 30, pp. 567-587, Jun. 2000. (Year: 2000). [cited by examiner]
Douglis, The Compression Cache: Using On-Line Compression to Extend Physical Memory, USENIX, Jan. 1993. (Year: 1993). [cited by examiner]
Request for submission of opinion for KR 10-2023-0035760 dated Jun. 5, 2023. [cited by applicant]
Written decision on registration for KR 10-2023-0035760 dated Jul. 21, 2023. [cited by applicant]