IP Library Granted Patent US 12,487,952
Granted Patent B2
US 12,487,952 · App. 18/936,668 · Granted Dec 2, 2025

Method and system for shifting data within memory

Inventors: Hyunho Kim (Seongnam-si, KR); Sangeun Je (Seongnam-si, KR); Jaewan Bae (Seongnam-si, KR)
Assignee: REBELLIONS INC.
G06F13/18G06F13/1668G06F13/28
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,487,952
App. No.
18/936,668
Granted
Dec 2, 2025
Kind
B2
Abstract

Provided is a method for shifting data within a memory, which is performed by a direct memory access (DMA) controller, and which includes receiving a task associated with an operation of shifting target data stored in a first area of a memory connected to the DMA controller to a second area of the memory, receiving the target data from the memory, determining a priority of each of a plurality of data items divided from the target data based on an address of the first area and an address of the second area, generating a plurality of write requests corresponding to the plurality of data items, and transmitting the plurality of generated write requests sequentially to a memory controller associated with the memory, so that the plurality of data items are stored in the second area in sequence according to the determined priority.

Claims (55)

1 . A method for shifting data within a memory, the method being performed by a direct memory access (DMA) controller and comprising:

receiving a task that requires an operation of shifting target data stored in a first area of a memory connected to the DMA controller to a second area of the memory, wherein the second area partially overlaps with the first area;

receiving the target data from the memory;

determining, based on an address of the first area compared to an address of the second area, a priority from a highest priority to a lowest priority for each of a plurality of data items divided from the target data;

generating a plurality of write requests corresponding to the plurality of data items; and

transmitting the plurality of write requests sequentially to a memory controller associated with the memory, so that the plurality of data items are stored in the second area in sequence from the highest priority to the lowest priority according to the determined priority for each of the plurality of data items, wherein at least one data item in the plurality of data items is stored in an area that overlaps with the first area.

2 . The method according to claim 1 , wherein the memory controller is configured to sequentially store in the second area, in response to sequentially receiving the plurality of write requests from the DMA controller, the plurality of data items corresponding to the plurality of write requests.

3 . The method according to claim 1 , wherein the generating the plurality of write requests comprises sequentially generating the plurality of write requests according to the determined priority such that a first write request for a first data item with a higher priority is transmitted prior to a second write request for a second data item with a lower priority than the first data item.

4 . The method according to claim 3 , wherein

the generating the plurality of write requests comprises:

withholding, in response to receiving the second data item before receiving the first data item, generation of the second write request; and

generating, in response to transmitting all write requests associated with data items having higher priorities than the first data item to the memory controller and to receiving the first data item, the first write request.

5 . The method according to claim 1 , wherein

each of the plurality of data items is stored in a respective one of a plurality of sub-areas in the first area, and

in response to an address of the second area being higher than an address of the first area, the higher an address of a respective one sub-area of the plurality of sub-areas in the first area is, the higher priority is assigned to a data item stored in the respective one sub-area, wherein a higher address is an address further from a starting point of a memory space and a lower address is an address closer to the starting point of the memory space.

6 . The method according to claim 1 , wherein

each of the plurality of data items is stored in a respective one of a plurality of sub-areas in the first area, and

in response to an address of the second area being lower than an address of the first area, the lower an address of a respective one sub-area of the plurality of sub-areas in the first area is, the higher priority is assigned to a data item stored in the respective one sub-area, wherein a lower address is an address closer to a starting point of a memory space and a higher address is an address further from the starting point of the memory space.

7 . The method according to claim 1 , wherein

the generating the plurality of write requests comprises calculating address information of a plurality of sub-areas in the second area where the plurality of data items are to be stored, and each of the plurality of write requests comprises address information of each of the plurality of sub-areas.

8 . The method according to claim 1 , wherein

the transmitting the plurality of write requests comprises transmitting, in response to a first condition, each of the plurality of write requests to the memory controller,

the first condition is that a read of an area where a data item corresponding to each of the plurality of write requests is to be stored is completed.

9 . The method according to claim 1 , wherein the receiving the target data comprises:

generating a plurality of read requests associated with the plurality of data items;

transmitting the plurality of generated read requests to the memory controller; and

receiving the plurality of data items corresponding to the plurality of read requests from the memory controller.

10 . The method according to claim 9 , wherein

the transmitting the plurality of read requests comprises sequentially transmitting the plurality of generated read requests to the memory controller, so that the plurality of data items are read from the first area according to the determined priority, and

the receiving the plurality of data items comprises receiving the plurality of data items in sequence according to the determined priority.

11 . The method according to claim 9 , wherein the receiving the plurality of data items comprises receiving the plurality of data items in sequence independent of the priority of each of the plurality of data items.

12 . The method according to claim 9 , wherein the generating the plurality of read requests comprises generating the plurality of read requests in sequence according to the determined priority.

13 . The method according to claim 9 , wherein

the generating the plurality of read requests comprises calculating address information of a plurality of sub-areas in the first area where the plurality of data items are stored, and

each of the plurality of read requests comprises address information of each of the plurality of sub-areas.

14 . A memory system, comprising:

a direct memory access (DMA) controller;

a memory connected to the DMA controller; and

a memory controller associated with the memory, wherein

the DMA controller is configured to:

receive a task that requires an operation of shifting a target data stored in a first area of the memory to a second area of the memory, wherein the second area partially overlaps with the first area;

receive the target data from the memory;

determine, based on an address of the first area compared to an address of the second area, a priority from a highest priority to a lowest priority for each of a plurality of data items divided from the target data;

generate a plurality of write requests corresponding to the plurality of data items; and

transmit the plurality of generated write requests sequentially to the memory controller, so that the plurality of data items are stored in the second area in sequence from the highest priority to the lowest priority according to the determined priority for each of the plurality of data items, wherein at least one data item in the plurality of data items is stored in an area that overlaps with the first area.

15 . The memory system according to claim 14 , wherein the memory controller is configured to sequentially store in the second area, in response to sequentially receiving the plurality of write requests from the DMA controller, the plurality of data items corresponding to the plurality of write requests.

16 . The memory system according to claim 14 , wherein

each of the plurality of data items is stored in a respective one of a plurality of sub-areas in the first area, and

in response to an address of the second area being higher than an address of the first area, the higher an address of a respective one sub-area of the plurality of sub-areas in the first area is, the higher priority is assigned to a data item stored in the respective one sub-area, wherein a higher address is an address further from a starting point of a memory space and a lower address is an address closer to the starting point of the memory space.

17 . The memory system according to claim 14 , wherein

each of the plurality of data items is stored in a respective one of a plurality of sub-areas in the first area, and

in response to an address of the second area being lower than an address of the first area, the lower an address of a respective one sub-area of the plurality of sub-areas in the first area is, the higher priority is assigned to a data item stored in the respective one sub-area, wherein a lower address is an address closer to a starting point of a memory space and a higher address is an address further from the starting point of the memory space.

18 . The memory system according to claim 14 , wherein

the DMA controller is configured to transmit, in response to a first condition being satisfied, each of the plurality of write requests to the memory controller,

the first condition is that a read of an area where a data item corresponding to each of the plurality of write requests is to be stored is completed.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVING PROPERTY NUMBERS PREVIOUSLY RECORDED AT REEL: 71344 FRAME: 934. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Oct 21, 2025
From: REBELLIONS INC.
To: REBELLIONS INC.
Reel/Frame 073150/0270 →
MERGER AND CHANGE OF NAME Recorded May 21, 2025
From: REBELLIONS INC.; SAPEON KOREA INC.
To: REBELLIONS INC.
Reel/Frame 071344/0934 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 4, 2024
From: KIM, HYUNHO; JE, SANGEUN; BAE, JAEWAN
To: REBELLIONS INC.
Reel/Frame 069130/0692 →
Priority Claims (1)
KR 10-2024-0056762 · Apr 29, 2024 · national
Continuity (1)
Related Publication 20250335376A1 · Oct 30, 2025
References Cited (30)
US 5283883A · Mishler · 1994 [cited by examiner]
US 5426737A · Jacobs · 1995 [cited by examiner]
US 8392662B2 · Jang et al. · 2013 [cited by applicant]
US 9032104B2 · Simon · 2015 [cited by examiner]
US 10185676B2 · Kwon et al. · 2019 [cited by applicant]
US 11455249B2 · Lee · 2022 [cited by applicant]
US 11977735B2 · Cha · 2024 [cited by applicant]
US 20030115403A1 · Bouchard · 2003 [cited by examiner]
US 20060190640A1 · Yoda · 2006 [cited by examiner]
US 20070204073A1 · Chen · 2007 [cited by examiner]
US 20080183882A1 · Flynn · 2008 [cited by examiner]
US 20110131351A1 · Noeldner · 2011 [cited by examiner]
US 20140173208A1 · Cho · 2014 [cited by examiner]
US 20180052789A1 · Chen · 2018 [cited by examiner]
US 20180373656A1 · Kuwabara · 2018 [cited by examiner]
US 20190121761A1 · Yuenyongsgool · 2019 [cited by examiner]
US 20190196996A1 · Balakrishnan · 2019 [cited by examiner]
US 20190243570A1 · Mittal · 2019 [cited by examiner]
US 20200050366A1 · Bavishi · 2020 [cited by examiner]
US 20200133730A1 · Ingram · 2020 [cited by examiner]
US 20200210122A1 · Nakamura · 2020 [cited by examiner]
US 20200380116A1 · Gentili · 2020 [cited by examiner]
US 20200401540A1 · Birsan · 2020 [cited by examiner]
US 20200411081A1 · Hiscock · 2020 [cited by examiner]
US 20220229595A1 · Lee et al. · 2022 [cited by applicant]
KR 1020090131146A · 2009 [cited by applicant]
KR 1020150095139A · 2015 [cited by applicant]
KR 1020210020694A · 2021 [cited by applicant]
KR 1020210138996A · 2021 [cited by applicant]
KR 1020220105285A · 2022 [cited by applicant]