IP Library Granted Patent US 12,242,387
Granted Patent B2
US 12,242,387 · App. 17/726,100 · Granted Mar 4, 2025

Systems and methods for managing memory utilization

Inventor: Yang Seok Ki (Palo Alto, CA)
Assignee: Samsung Electronics Co., Ltd.
G06F12/1054G06F2212/7201
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,387
App. No.
17/726,100
Granted
Mar 4, 2025
Kind
B2
Abstract

Systems and methods for managing memory are disclosed. In one embodiment, a first data structure is generated, where the first data structure is associated with one or more virtual addresses mapped to one or more physical addresses of the memory. A size of the first data structure is based on a characteristic of the memory. Data to be stored in the memory is received, and a virtual address of the one or more virtual addresses is identified based on the first data structure. The virtual address is mapped to a physical address, and the data is stored in the physical address. The first data structure is updated based on the storing of the data.

Claims (58)

1. A method for managing memory, the method comprising:

generating a first data structure associated with one or more virtual addresses mapped to one or more physical addresses of the memory, wherein the first data structure is configured to implement a circular buffer, and wherein a size of the first data structure is based on a characteristic of the memory;

receiving, from a storage device coupled to a processor, data to be stored in the memory;

identifying a virtual address of the one or more virtual addresses based on the first data structure;

mapping the virtual address to a physical address;

storing the data in the physical address; and

updating identification of a first location of the first data structure based on the storing of the data, wherein the storage device provides the identification of the first location;

retrieving the data from the memory based on a request by the processor; and

updating identification of a second location of the first data structure based on the retrieving of the data, wherein the processor provides the identification of the second location.

2. The method of claim 1 , wherein the memory includes a set associative cache memory.

3. The method of claim 1 , wherein the first data structure is configured to track production and consumption of data in and out of the memory based on an eventual consistency model.

4. The method of claim 1 , wherein the size of the first data structure is based on at least one of a size of the memory, a placement policy used by the memory, or a number of processors having access to the memory.

5. The method of claim 1 , wherein the size is a cache line size.

6. The method of claim 1 further comprising:

generating, by a storage device, a second data structure, wherein the second data structure is based on the first data structure;

updating, by the storage device, the second data structure in response to producing the data; and

transmitting a message to a host computing device in response to the updating of the second data structure, for updating the first data structure, wherein the first data structure and the second data structure adhere to an eventual consistency model.

7. The method of claim 1 further comprising:

identifying a virtual address of the first data structure storing the data;

mapping the virtual address to the physical address of the memory;

retrieving the data from the physical address of the memory; and

updating the first data structure based on the retrieving of the data.

8. The method of claim 7 further comprising:

generating, by a storage device, a second data structure, wherein the second data structure is based on the first data structure;

receiving, by the storage device, a message from a host computing device in response to the updating of the first data structure; and

updating, by the storage device, the second data structure in response to the message from the host computing device, wherein the first data structure and the second data structure adhere to an eventual consistency model.

9. A host computing device comprising:

a memory; and

a processor coupled to the memory, wherein the processor includes logic for:

generating a first data structure associated with one or more virtual addresses mapped to one or more physical addresses of the memory, wherein the first data structure is configured to implement a circular buffer, and wherein a size of the first data structure is based on a characteristic of the memory;

receiving, from a storage device coupled to the processor, data to be stored in the memory;

identifying a first virtual address of the one or more virtual addresses based on the first data structure;

mapping the first virtual address to a first physical address;

storing the data in the first physical address, wherein identification of a first location of the first data structure is updated based on the storage device providing the data to be stored, wherein the storage device provides the identification of the first location;

retrieving the data from the memory;

based on the retrieving of the data:

identifying a second location of the first data structure; and

updating identification of the second location of the first data structure.

10. The host computing device of claim 9 , wherein the memory includes a set associative cache memory.

11. The host computing device of claim 9 , wherein the first data structure is configured to track production and consumption of data in and out of the memory based on an eventual consistency model.

12. The host computing device of claim 9 , wherein the size of the first data structure is based on at least one of a size of the memory, a placement policy used by the memory, or a number of processors having access to the memory.

13. The host computing device of claim 9 , wherein the size is a cache line size.

14. The host computing device of claim 9 , wherein the processor includes logic for:

identifying the first virtual address of the first data structure storing the data;

mapping the first virtual address to the first physical address of the memory;

retrieving the data from the first physical address of the memory; and

updating the first data structure based on the retrieving of the data.

15. A storage device coupled to a host computing device having a memory, the storage device comprising:

a non-transitory storage medium; and

a processor coupled to the non-transitory storage medium, the processor having logic for:

producing data;

identifying a virtual address of one or more virtual addresses of a data structure, wherein the virtual address is mapped to a physical address of the memory of the host computing device, wherein the data structure is configured to implement a circular buffer, and wherein a size of the data structure is based on a characteristic of the memory;

storing the data in the physical address;

based on the storing of the data:

identifying a first location of the data structure;

updating identification of the first location of the data structure; and

providing the identification of the first location to the host computing device,

wherein, the host computing device is configured to retrieve the data from the memory, update identification of a second location of the data structure based on the host computing device retrieving the data, and provide the identification of the second location to the processor.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2022
From: KI, YANG SEOK
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 059983/0065 →
Continuity (2)
Provisional Application 63319604 · Mar 14, 2022
Related Publication 20230289297A1 · Sep 14, 2023
References Cited (39)
US 5948082A · Ichikawa · 1999 [cited by applicant]
US 6124868A · Asaro · 2000 [cited by examiner]
US 6363470B1 · Laurenti · 2002 [cited by examiner]
US 7761666B2 · Narad et al. · 2010 [cited by applicant]
US 8751737B2 · Bu et al. · 2014 [cited by applicant]
US 8838882B1 · Quong · 2014 [cited by examiner]
US 9384147B1 · Morshed et al. · 2016 [cited by applicant]
US 9672180B1 · Morshed et al. · 2017 [cited by applicant]
US 10101964B2 · Xiong et al. · 2018 [cited by applicant]
US 10191849B2 · Delgado et al. · 2019 [cited by applicant]
US 10216640B2 · Rushing et al. · 2019 [cited by applicant]
US 10248563B2 · Tosaka · 2019 [cited by applicant]
US 10275378B2 · Benisty · 2019 [cited by applicant]
US 10311542B2 · Cook et al. · 2019 [cited by applicant]
US 10430352B1 · Sanghi et al. · 2019 [cited by applicant]
US 10649686B2 · Tsirkin · 2020 [cited by applicant]
US 10977192B1 · Habusha et al. · 2021 [cited by applicant]
US 11080189B2 · Wang et al. · 2021 [cited by applicant]
US 20030058875A1 · Arndt et al. · 2003 [cited by applicant]
US 20060236011A1 · Narad et al. · 2006 [cited by applicant]
US 20070260782A1 · Shaikli · 2007 [cited by examiner]
US 20110016284A1 · Balan · 2011 [cited by examiner]
US 20170091096A1 · McCarthy · 2017 [cited by examiner]
US 20170123667A1 · Richter · 2017 [cited by examiner]
US 20170168948A1 · Delgado · 2017 [cited by examiner]
US 20170206169A1 · Coppola et al. · 2017 [cited by applicant]
US 20180196602A1 · Shin · 2018 [cited by examiner]
US 20200285585A1 · Oikawa · 2020 [cited by examiner]
US 20200301765A1 · Vary · 2020 [cited by examiner]
US 20200387405A1 · Xiao · 2020 [cited by examiner]
US 20210019261A1 · Tsirkin · 2021 [cited by examiner]
US 20210064280A1 · Gunda · 2021 [cited by examiner]
US 20210216240A1 · Matsunaga · 2021 [cited by applicant]
US 20210405897A1 · Hansalia · 2021 [cited by examiner]
US 20220137817A1 · Kwak · 2022 [cited by examiner]
CN 111290709A · 2020 [cited by applicant]
CN 109799959B · 2020 [cited by applicant]
Lee, Patrick P.C., et al., “A Lock-Free, Cache-Efficient Multi-Core Synchronization Mechanism for Line-Rate Network Traffic Monitoring,” 2010, IEEE International Symposium on Parallel & Distributed Processing (IPDPS), 1… [cited by applicant]
EPO Extended European Search Report dated Jul. 21, 2023, issued in European Patent Application No. 23161029.6 (12 pages). [cited by applicant]