IP Library Granted Patent US 12,306,752
Granted Patent B2
US 12,306,752 · App. 18/438,932 · Granted May 20, 2025

Processor cluster address generation

Inventors: David John Simpson (San Jose, CA); Stephen Curtis Johnson (Morgan Hill, CA); Richard Douglas Trauben (Morgan Hill, CA)
Assignee: MIPS Holding, Inc.
G06F12/0646G06F13/28G06F2212/1041
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,306,752
App. No.
18/438,932
Granted
May 20, 2025
Kind
B2
Abstract

Techniques for data manipulation using processor cluster address generation are disclosed. One or more processor clusters capable of executing software-initiated work requests are accessed. A plurality of dimensions from a tensor is flattened into a single dimension. A work request address field is parsed, where the address field contains unique address space descriptors for each of the plurality of dimensions, along with a common address space descriptor. A direct memory access (DMA) engine coupled to the one or more processor clusters is configured. Addresses are generated based on the unique address space descriptors and the common address space descriptor. The plurality of dimensions can be summed to generate a single address. Memory is accessed using two or more of the addresses that were generated. The addresses are used to enable DMA access.

Claims (43)

1. A processor-implemented method for data manipulation comprising:

accessing one or more processors capable of executing software-initiated work requests;

flattening a tensor having a plurality of dimensions into a single dimension;

parsing a work request address field, wherein the address field contains unique address space descriptors for each of the plurality of dimensions of the tensor along with a common address space descriptor;

generating addresses, based on the unique address space descriptors and the common address space descriptor;

accessing memory, using two or more of the addresses that were generated, at the respective locations in memory specified by the two or more addresses; and

performing, by the one or more processors, one or more computer operations on data at the accessed respective locations in memory specified by the two or more addresses.

2. The method of claim 1 further comprising configuring a direct memory access (DMA) engine coupled to the one or more processors.

3. The method of claim 2 further comprising jumping an address offset within a flattened dimensional space based on the flattening.

4. The method of claim 3 wherein the address offset is based on a DMA dimension.

5. The method of claim 3 further comprising jumping a second address offset within the flattened dimensional space.

6. The method of claim 5 wherein the second address offset is based on a second DMA dimension.

7. The method of claim 2 wherein the addresses are used to enable DMA access.

8. The method of claim 1 further comprising summing across the plurality of dimensions to generate a single address.

9. The method of claim 1 wherein the plurality of dimensions includes four dimensions.

10. The method of claim 9 wherein the plurality of dimensions does not include channels.

11. The method of claim 10 further comprising summing across channels as part of a convolution operation.

12. The method of claim 1 further comprising using five dimensions to read results of the flattening.

13. The method of claim 12 wherein the results of the flattening comprise a two-dimensional object.

14. The method of claim 12 wherein the five dimensions include height x width within a first dimension.

15. The method of claim 14 wherein channels comprise a second dimension.

16. The method of claim 15 wherein the channels comprise RGB information.

17. The method of claim 15 wherein batch size comprises a third dimension.

18. The method of claim 1 wherein the generating comprises establishing five programming loops to accomplish five-dimensional (5-D) address generation.

19. The method of claim 18 wherein the 5-D address generation enables a convolution to be performed on a matrix multiply engine.

20. The method of claim 18 wherein the 5-D address is a portion of a larger dimensional address.

21. The method of claim 1 , wherein each of the one or more processors comprises any of: a central processing unit (CPU), a graphics processing unit (GPU), an arithmetic processor, a multiplication processor, a reconfigurable processor, a reconfigurable integrated circuit or chip, or an application-specific integrated circuit (ASIC).

22. A computer program product embodied in a non-transitory computer readable medium for data manipulation, the computer program product comprising code which causes one or more processors to perform operations of:

accessing one or more processors capable of executing software-initiated work requests;

flattening a tensor having a plurality of dimensions into a single dimension;

parsing a work request address field, wherein the address field contains unique address space descriptors for each of the plurality of dimensions of the tensor along with a common address space descriptor;

generating addresses, based on the unique address space descriptors and the common address space descriptor;

accessing memory, using two or more of the addresses that were generated, at the respective locations in memory specified by the two or more addresses; and

providing, to the one or more processors, data at the accessed respective locations in memory specified by the two or more addresses.

23. A computer system for data manipulation comprising:

a memory which stores instructions;

one or more processors coupled to the memory wherein the one or more processors, when executing the instructions which are stored, are configured to:

access one or more processors capable of executing software-initiated work requests;

flatten a tensor having a plurality of dimensions into a single dimension;

parse a work request address field, wherein the address field contains unique address space descriptors for each of the plurality of dimensions of the tensor along with a common address space descriptor;

generate addresses, based on the unique address space descriptors and the common address space descriptor;

access memory, using two or more of the addresses that were generated, at the respective locations in memory specified by the two or more addresses; and

provide, to the one or more processors, data at the accessed respective locations in memory specified by the two or more addresses.

Assignments (1)
CHANGE OF NAME Recorded May 8, 2024
From: WAVE COMPUTING, INC.
To: MIPS HOLDING, INC.
Reel/Frame 067355/0324 →
Continuity (17)
Continuation 17035869 · Sep 29, 2020
Continuation In Part 16943252 · Jul 30, 2020
Continuation In Part 16835812 · Mar 31, 2020
Provisional Application 62907907 · Sep 30, 2019
Provisional Application 62898770 · Sep 11, 2019
Provisional Application 62898114 · Sep 10, 2019
Provisional Application 62894002 · Aug 30, 2019
Provisional Application 62893970 · Aug 30, 2019
Provisional Application 62887722 · Aug 16, 2019
Provisional Application 62887713 · Aug 16, 2019
Provisional Application 62882175 · Aug 2, 2019
Provisional Application 62874022 · Jul 15, 2019
Provisional Application 62857925 · Jun 6, 2019
Provisional Application 62856490 · Jun 3, 2019
Provisional Application 62850059 · May 20, 2019
Provisional Application 62827333 · Apr 1, 2019
Related Publication 20240211397A1 · Jun 27, 2024
References Cited (1)
US 11934308B2 · Simpson · 2024 [cited by examiner]