IP Library Granted Patent US 12,332,807
Granted Patent B2
US 12,332,807 · App. 18/758,943 · Granted Jun 17, 2025

DMA converter (UDMAC) that supports conversion between aligned and unaligned data

Inventors: Zhilin Xu (Beijing, CN); Qi Chen (Beijing, CN); Longfei Bai (Beijing, CN); Yimin Chen (Los Angeles, CA); Jian Wang (Beijing, CN)
Assignees: Beijing Youzhuju Network Technology Co., Ltd.; Lemon Inc
G06F12/1081G06F13/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,332,807
App. No.
18/758,943
Granted
Jun 17, 2025
Kind
B2
Abstract

The present disclosure provides a data processing method and apparatus, an electronic device, and a storage medium. The data processing provided by the present disclosure includes: receiving a first request message from a first device, where the first request message includes a first address aligned with a first data length and a first size in a unit of the first data length; converting the first address into a second address aligned with a second data length, where the second data length is greater than the first data length; converting the first size into a second size in a unit of the second data length; and sending a second request message to a second device, where the second request message includes the second address and the second size.

Claims (86)

1. A data processing method, comprising:

receiving a first request message from a first device, wherein the first request message comprises a first address aligned with a first data length and a first size in a unit of the first data length;

converting the first address into a second address aligned with a second data length,

wherein the second data length is greater than the first data length;

converting the first size into a second size in a unit of the second data length; and

sending a second request message to a second device, wherein the second request message comprises the second address and the second size,

wherein the first device is operating based on the first data length, and the second device is operating based on the second data length.

2. The method according to claim 1 , wherein the converting the first address into the second address aligned with the second data length comprises:

setting a low bit that is in the first address and that corresponds to a low bit with value 0 in a binary representation of the second data length to 0, to obtain the second address.

3. The method according to claim 1 , wherein the converting the first size into the second size in the unit of the second data length comprises:

rounding up a quotient of the first size and the second data length, to obtain an intermediate size in the unit of the second data length;

determining a first boundary address based on the second address and the intermediate size;

determining a first end address based on the first address and the first size; and

determining the second size based on the intermediate size and a comparison between the first end address and the first boundary address.

4. The method according to claim 3 , wherein the determining the second size based on the intermediate size and the comparison between the first end address and the first boundary address comprises:

determining the intermediate size as the second size when the first end address is less than or equal to the first boundary address; and

determining the intermediate size plus 1 as the second size when the first end address is greater than the first boundary address.

5. The method according to claim 1 , wherein the first request message comprises a first write request message, and the first write request message further comprises first write data in the unit of the first data length,

wherein the method further comprises:

converting the first write data into second write data in the unit of the second data length; and

comprising the second write data into the second request message.

6. The method according to claim 5 , wherein the converting the first write data into the second write data in the unit of the second data length comprises:

determining a first offset between the first address and the second address;

adding, before the first write data, 0 corresponding to J first data lengths, wherein J is an integer same as the first offset;

determining a first end address based on the first address and the first size;

determining a second end address based on the second address and the second size;

determining a second offset between the first end address and the second end address; and

adding, after the first write data, 0 corresponding to M first data lengths, to generate the second write data, wherein M is an integer same as the second offset.

7. The method according to claim 5 , further comprising:

generating an indication signal used to indicate which data in the second write data is valid data corresponding to the first write data; and

comprising the indication signal into the second request message.

8. The method according to claim 7 , wherein the indication signal comprises a first indication signal and a second indication signal,

wherein the first indication signal is used to indicate which data in a first piece of data of the second data length in the second write data is valid data corresponding to the first write data; and

the second indication signal is used to indicate which data in a last piece of data of the second data length in the second write data is valid data corresponding to the first write data.

9. The method according to claim 1 , wherein the first request message comprises a first read request message, and

the method further comprises:

receiving second read data in the unit of the second data length from the second device based on the second address and the second size;

converting the second read data into first read data based on the first address and the first size; and

sending the first read data to the first device.

10. The method according to claim 9 , wherein the converting the second read data into the first read data based on the first address and the first size comprises:

determining a third offset between the first address and the second address;

removing data corresponding to first K first data lengths from the second read data,

wherein K is an integer same as the third offset;

determining a third end address based on the first address and the first size;

determining a fourth end address based on the second address and the second size;

determining a fourth offset between the third end address and the fourth end address; and

removing data corresponding to last L first data lengths from the second read data, to generate the first read data, wherein L is an integer same as the fourth offset.

11. The method according to claim 1 , wherein the first device is a direct memory access interface device, and the second device is a data bus interface device.

12. The method according to claim 1 , wherein the first data length is one byte, and the second data length is 2N bytes, wherein N is an integer greater than or equal to 1.

13. A data processing apparatus, comprising:

a first interface, configured to receive a first request message from a first device, wherein the first request message comprises a first address aligned with a first data length and a first size in a unit of the first data length;

a first conversion module, configured to convert the first address into a second address aligned with a second data length, wherein the second data length is greater than the first data length;

a second conversion module, configured to convert the first size into a second size in a unit of the second data length; and

a second interface, configured to send a second request message to a second device, wherein the second request message comprises the second address and the second size,

wherein the first device is operating based on the first data length, and the second device is operating based on the second data length.

14. A data processing apparatus, comprising:

at least one processor; and

a storage apparatus, storing at least one program, wherein when the at least one program is executed by the at least one processor, the at least one processor implements a data processing method,

wherein the data processing method comprises:

receiving a first request message from a first device, wherein the first request message comprises a first address aligned with a first data length and a first size in a unit of the first data length;

converting the first address into a second address aligned with a second data length,

wherein the second data length is greater than the first data length;

converting the first size into a second size in a unit of the second data length; and

sending a second request message to a second device, wherein the second request message comprises the second address and the second size,

wherein the first device is operating based on the first data length, and the second device is operating based on the second data length.

15. The data processing apparatus according to claim 14 , wherein the converting the first size into the second size in the unit of the second data length comprises:

rounding up a quotient of the first size and the second data length, to obtain an intermediate size in the unit of the second data length;

determining a first boundary address based on the second address and the intermediate size;

determining a first end address based on the first address and the first size; and

determining the second size based on the intermediate size and a comparison between the first end address and the first boundary address.

16. The data processing apparatus according to claim 15 , wherein the determining the second size based on the intermediate size and the comparison between the first end address and the first boundary address comprises:

determining the intermediate size as the second size when the first end address is less than or equal to the first boundary address; and

determining the intermediate size plus 1 as the second size when the first end address is greater than the first boundary address.

17. The data processing apparatus according to claim 14 , wherein the first request message comprises a first write request message, and the first write request message further comprises first write data in the unit of the first data length,

wherein the method further comprises:

converting the first write data into second write data in the unit of the second data length; and

comprising the second write data into the second request message.

18. The data processing apparatus according to claim 17 , wherein the converting the first write data into the second write data in the unit of the second data length comprises:

determining a first offset between the first address and the second address;

adding, before the first write data, 0 corresponding to J first data lengths, wherein J is an integer same as the first offset;

determining a first end address based on the first address and the first size;

determining a second end address based on the second address and the second size;

determining a second offset between the first end address and the second end address; and

adding, after the first write data, 0 corresponding to M first data lengths, to generate the second write data, wherein M is an integer same as the second offset.

19. An electronic device, comprising the data processing apparatus according to claim 14 .

20. A non-transitory storage medium comprising computer-executable instructions, wherein when the computer-executable instructions are executed by a processor of a computer, the processor implements the method according to claim 1 .

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 20, 2025
From: BAI, LONGFEI
To: SHANGHAI FROSFORT TECHNOLOGY CO., LTD.
Reel/Frame 071163/0451 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 20, 2025
From: XU, ZHILIN; WANG, JIAN
To: DOUYIN VISION CO., LTD.
Reel/Frame 071163/0551 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 20, 2025
From: CHEN, QI
To: BEIJING FUTURE SIGNET TECHNOLOGY CO., LTD.
Reel/Frame 071163/0701 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 20, 2025
From: CHEN, YIMIN
To: BYTEDANCE INC.
Reel/Frame 071163/0769 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 20, 2025
From: BYTEDANCE INC.; DOUYIN VISION CO., LTD.; BEIJING FUTURE SIGNET TECHNOLOGY CO., LTD.; SHANGHAI FROSFORT TECHNOLOGY CO., LTD.
To: BEIJING YOUZHUJU NETWORK TECHNOLOGY CO., LTD.; LEMON INC.
Reel/Frame 071163/0962 →
Priority Claims (1)
CN 202310898226.7 · Jul 20, 2023 · national
Continuity (1)
Related Publication 20250028649A1 · Jan 23, 2025
References Cited (31)
US 5367705A · Sites et al. · 1994 [cited by applicant]
US 7016987B2 · Hussain · 2006 [cited by examiner]
US 7657724B1 · DeHaemer · 2010 [cited by applicant]
US 10558600B2 · Kuwabara · 2020 [cited by examiner]
US 10768823B2 · Karaje · 2020 [cited by examiner]
US 10936508B2 · Byun · 2021 [cited by applicant]
US 11709783B1 · Chen · 2023 [cited by examiner]
US 20070050592A1 · Gschwind · 2007 [cited by examiner]
US 20090138672A1 · Katsuragi et al. · 2009 [cited by applicant]
US 20170293426A1 · Karaje et al. · 2017 [cited by applicant]
US 20210191854A1 · Yang · 2021 [cited by applicant]
US 20210200541A1 · Zhang et al. · 2021 [cited by applicant]
US 20220327102A1 · De · 2022 [cited by applicant]
CN 101216755A · 2008 [cited by applicant]
CN 102103740A · 2011 [cited by applicant]
CN 110073329A · 2019 [cited by applicant]
CN 110175049A · 2019 [cited by applicant]
CN 113076057A · 2021 [cited by applicant]
CN 113646744A · 2021 [cited by applicant]
CN 115113799A · 2022 [cited by applicant]
CN 115374032B · 2023 [cited by applicant]
EP 0997822A2 · 2000 [cited by examiner]
TW 200517954A · 2005 [cited by applicant]
TW 200839532A · 2008 [cited by applicant]
TW 201020795A · 2010 [cited by applicant]
TW 201828065A · 2018 [cited by applicant]
WO WO2014131273A1 · 2014 [cited by examiner]
“Unit Description”, NVDLA Open Source Project, Retreived from the link: “http://nvdla.org/hw/v1/ias/unit_description.html#rubik”, pp. 1-38. [cited by applicant]
International Search Report and Written Opinion received for PCT Patent Application No. PCT/CN2024/106123, mailed on Aug. 22, 2024, 10 pages (1 pages of English Translation and 9 pages of Original Document). [cited by applicant]
European Search Report for EP Patent Application No. 24184940.5, Issued on Nov. 7, 2024, 8 pages. [cited by applicant]
Office action received from Taiwan patent application No. 112127017 mailed on Jan. 17, 2025, 9 pages (1 pages English Translation and 8 pages Original Copy). [cited by applicant]