IP Library › Granted Patent US 12,596,664
Granted Patent B2
US 12,596,664 · App. 19/088,830 · Granted Apr 7, 2026

Data processing method and electronic device using dma

Inventors: Boeui Hong (Seongnam-si, KR); Jaedon Lee (Seongnam-si, KR); Jiun Yu (Seongnam-si, KR); Hyebin Jeong (Seongnam-si, KR); Sangjun Nam (Seongnam-si, KR); Hongyun Kim (Seongnam-si, KR)
Assignee: REBELLIONS INC.
G06F13/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,596,664
App. No.
19/088,830
Granted
Apr 7, 2026
Kind
B2
Abstract

A data processing method using a DMA, the method comprising: deriving a waiting time of a waiting time of a first DMA operation for a first computation task and a waiting time of a second DMA operation for a second computation task, deriving a MO value of the first DMA operation and a MO value of the second DMA operation based on the waiting time of the first DMA operation and the waiting time of the second DMA operation, and performing the first DMA operation based on the MO value of the first DMA operation, and performing the second DMA operation based on the MO value of the second DMA operation.

Claims (48)

1 . A data processing method using a direct memory access (DMA), the method comprising:

deriving a waiting time of a first DMA operation for a first computation task and a waiting time of a second DMA operation for a second computation task;

deriving a Multiple Outstanding (MO) value of the first DMA operation and a MO value of the second DMA operation based on the waiting time of the first DMA operation and the waiting time of the second DMA operation, the MO value of a DMA operation representing a number of outstanding data transactions associated with the DMA operation for a plurality of computation tasks to be executed including the first computation task and the second computation task, wherein a ratio of the MO value of the first DMA operation to the MO value of the second DMA operation is adjusted based on a comparison of the waiting time of the first DMA operation and the waiting time of the second DMA operation to allocate more shared DMA bandwidth over a shared memory bus to the first DMA operation or the second DMA operation having the smaller waiting time; and

performing the first DMA operation based on the MO value of the first DMA operation, and performing the second DMA operation based on the MO value of the second DMA operation,

wherein the waiting time of the first DMA operation is derived as a sum of predicted execution times of computation tasks performed before the first computation task among waiting computation tasks, and

wherein the waiting time of the second DMA operation is derived as a sum of predicted execution times of computation tasks performed before the second computation task among the waiting computation tasks.

2 . The method of claim 1 , wherein the first DMA operation is an operation in which data for the first computation task between a first memory and a specific memory is transferred by a first DMA device, and

wherein the second DMA operation is an operation in which data for the second computation task between a second memory and the specific memory is transferred by a second DMA device.

3 . The method of claim 2 , wherein the MO value of the first DMA operation and the MO value of the second DMA operation are derived based on a ratio of a reciprocal of the waiting time of the first DMA operation and a reciprocal of the waiting time of the second DMA operation.

4 . The method of claim 3 , wherein the MO value of the first DMA operation is derived by multiplying a maximum MO value of the first DMA operation, by a value obtained by dividing the reciprocal of the waiting time of the first DMA operation by a sum of the reciprocal of the waiting time of the first DMA operation and the reciprocal of the waiting time of the second DMA operation.

5 . The method of claim 4 , wherein the maximum MO value of the first DMA operation is set based on time it takes for a transaction of the first DMA operation to move from the first memory to the specific memory and return to the first memory.

6 . The method of claim 4 , wherein the maximum MO value of the second DMA operation is set based on time it takes for a transaction of the second DMA operation to move from the second memory to the specific memory and return to the second memory.

7 . The method of claim 3 , wherein the MO value of the second DMA operation is derived by multiplying a maximum MO value of the second DMA operation, by a value obtained by dividing the reciprocal of the waiting time of the second DMA operation by a sum of the reciprocal of the waiting time of the first DMA operation and the reciprocal of the waiting time of the second DMA operation.

8 . The method of claim 3 , wherein the method further comprises:

when the first DMA operation for the first computation task is completed, updating the waiting time of the first DMA operation for the first DMA operation for a third computation task;

deriving the MO value of the first DMA operation and the MO value of the second DMA operation based on the updated waiting time of the first DMA operation and the waiting time of the second DMA operation; and

performing the first DMA operation based on the MO value of the first DMA operation, and performing the second DMA operation based on the MO value of the second DMA operation,

wherein the waiting time of the first DMA operation is updated as a sum of predicted execution times of computation tasks performed before the third computation task among the waiting computation tasks.

9 . The method of claim 3 , wherein the method further comprises:

when the second DMA operation for the second computation task is completed, updating the waiting time of the second DMA operation for the second DMA operation for a fourth computation task;

deriving the MO value of the first DMA operation and the MO value of the second DMA operation based on the waiting time of the first DMA operation and the updated waiting time of the second DMA operation; and

performing the first DMA operation based on the MO value of the first DMA operation, and performing the second DMA operation based on the MO value of the second DMA operation,

wherein the waiting time of the second DMA operation is updated as a sum of predicted execution times of computation tasks performed before the fourth computation task among the waiting computation tasks.

10 . The method of claim 3 , wherein when the first DMA operation for a current computation task is completed, the waiting time of the first DMA operation is updated based a computation task of a next order of the current computation task, and the MO value of the first DMA operation and the MO value of the second DMA operation are derived based on the updated waiting time of the first DMA operation and the waiting time of the second DMA operation, and

wherein the computation task of the next order is a computation task for the first DMA operation performed after the first DMA operation for the current computation task.

11 . The method of claim 3 , wherein when the second DMA operation for a current computation task is completed, the waiting time of the second DMA operation is updated based a computation task of a next order of the current computation task, and the MO value of the first DMA operation and the MO value of the second DMA operation are derived based on the waiting time of the first DMA operation and the updated waiting time of the second DMA operation, and

wherein the computation task of the next order is a computation task for the second DMA operation performed after the second DMA operation for the current computation task.

12 . An electronic device, comprising:

a command processor (CP) that operates firmware for a direct memory access (DMA) operation;

a first DMA device performing a first DMA operation between a first memory and a specific memory; and

a second DMA device performing a second DMA operation between a second memory and the specific memory,

wherein the CP derives a waiting time of the first DMA operation for a first computation task and a waiting time of the second DMA operation for a second computation task, derives a Multiple Outstanding (MO) value of the first DMA operation and a MO value of the second DMA operation based on the waiting time of the first DMA operation and the waiting time of the second DMA operation, the MO value of a DMA operation representing a number of outstanding data transactions associated with the DMA operation for a plurality of computation tasks to be executed including the first computation task and the second computation task, wherein a ratio of the MO value of the first DMA operation to the MO value of the second DMA operation is adjusted based on a comparison of the waiting time of the first DMA operation and the waiting time of the second DMA operation to allocate more shared DMA bandwidth over a shared memory bus to the first DMA operation or the second DMA operation having the smaller waiting time,

wherein the first DMA device performs the first DMA operation based on the MO value of the first DMA operation,

wherein the second DMA device performs the second DMA operation based on the MO value of the second DMA operation,

wherein the waiting time of the first DMA operation is derived as a sum of predicted execution times of computation tasks performed before the first computation task among waiting computation tasks, and

wherein the waiting time of the second DMA operation is derived as a sum of predicted execution times of computation tasks performed before the second computation task among the waiting computation tasks.

13 . The electronic device of claim 12 , wherein the MO value of the first DMA operation and the MO value of the second DMA operation are derived based on a ratio of a reciprocal of the waiting time of the first DMA operation and a reciprocal of the waiting time of the second DMA operation.

14 . The electronic device of claim 13 , wherein the MO value of the first DMA operation is derived by multiplying a maximum MO value of the first DMA operation, by a value obtained by dividing the reciprocal of the waiting time of the first DMA operation by a sum of the reciprocal of the waiting time of the first DMA operation and the reciprocal of the waiting time of the second DMA operation.

15 . The electronic device of claim 14 , wherein the maximum MO value of the first DMA operation is set based on time it takes for a transaction of the first DMA operation to move from the first memory to the specific memory and return to the first memory.

16 . The electronic device of claim 13 , wherein the MO value of the second DMA operation is derived by multiplying a maximum MO value of the second DMA operation, by a value obtained by dividing the reciprocal of the waiting time of the second DMA operation by a sum of the reciprocal of the waiting time of the first DMA operation and the reciprocal of the waiting time of the second DMA operation.

17 . The electronic device of claim 13 , wherein when the first DMA operation for the first computation task is completed, the CP updates the waiting time of the first DMA operation for the first DMA operation for a third computation task, derives the MO value of the first DMA operation and the MO value of the second DMA operation based on the updated waiting time of the first DMA operation and the waiting time of the second DMA operation, and

wherein the waiting time of the first DMA operation is updated as a sum of predicted execution times of computation tasks performed before the third computation task among the waiting computation tasks.

18 . The electronic device of claim 13 , wherein when the second DMA operation for the second computation task is completed, the CP updates the waiting time of the second DMA operation for the second DMA operation for a fourth computation task, derives the MO value of the first DMA operation and the MO value of the second DMA operation based on the waiting time of the first DMA operation and the updated waiting time of the second DMA operation, and

wherein the waiting time of the second DMA operation is updated as a sum of predicted execution times of computation tasks performed before the fourth computation task among the waiting computation tasks.

19 . The electronic device of claim 13 , wherein when the first DMA operation for a current computation task is completed, the waiting time of the first DMA operation is updated based a computation task of a next order of the current computation task, and the MO value of the first DMA operation and the MO value of the second DMA operation are derived based on the updated waiting time of the first DMA operation and the waiting time of the second DMA operation, and

wherein the computation task of the next order is a computation task for the first DMA operation performed after the first DMA operation for the current computation task.

20 . The electronic device of claim 13 , wherein when the second DMA operation for a current computation task is completed, the waiting time of the second DMA operation is updated based a computation task of a next order of the current computation task, and the MO value of the first DMA operation and the MO value of the second DMA operation are derived based on the waiting time of the first DMA operation and the updated waiting time of the second DMA operation, and

wherein the computation task of the next order is a computation task for the second DMA operation performed after the second DMA operation for the current computation task.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 25, 2025
From: HONG, BOEUI; LEE, JAEDON; YU, JIUN; JEONG, HYEBIN; NAM, SANGJUN; KIM, HONGYUN
To: REBELLIONS INC.
Reel/Frame 070620/0679 →
Priority Claims (1)
KR 10-2024-0112063 · Aug 21, 2024 · national
Continuity (1)
Related Publication 20260056897A1 · Feb 26, 2026
References Cited (28)
US 6092127A · Tausheck · 2000 [cited by examiner]
US 7415550B2 · Tanaka · 2008 [cited by examiner]
US 7533198B2 · Bartley · 2009 [cited by examiner]
US 8285889B2 · Shinohara · 2012 [cited by examiner]
US 8321605B2 · Bratt · 2012 [cited by examiner]
US 8892794B2 · Moallem · 2014 [cited by examiner]
US 9128838B2 · Vilela · 2015 [cited by examiner]
US 10783103B1 · Jain · 2020 [cited by examiner]
US 10983920B2 · Thyamagondlu · 2021 [cited by examiner]
US 11847507B1 · Borkovic · 2023 [cited by examiner]
US 20080281999A1 · Kang · 2008 [cited by examiner]
US 20110307233A1 · Tseng · 2011 [cited by examiner]
US 20130031281A1 · Feehrer · 2013 [cited by examiner]
US 20130125097A1 · Ebcioglu · 2013 [cited by examiner]
US 20150039944A1 · Vilela · 2015 [cited by examiner]
US 20160373510A1 · Sreevalsan · 2016 [cited by examiner]
US 20170270921A1 · Arslan · 2017 [cited by examiner]
US 20200310800A1 · Parra · 2020 [cited by examiner]
US 20200310993A1 · Kumar · 2020 [cited by examiner]
US 20200401540A1 · Birsan · 2020 [cited by examiner]
US 20230231811A1 · Dalal · 2023 [cited by examiner]
US 20250103528A1 · Yuenyongsgool · 2025 [cited by examiner]
JP 2008547138A · 2008 [cited by applicant]
JP 2014160341A · 2014 [cited by applicant]
KR 1020080071840A · 2008 [cited by applicant]
KR 1020150006266A · 2015 [cited by applicant]
KR 1020190110869A · 2019 [cited by applicant]
Notice of Allowance for KR 10-2024-0112063 by Korean Intellectual Property Office dated Mar. 5, 2025. [cited by applicant]