IP Library › Granted Patent US 12,423,580
Granted Patent B1
US 12,423,580 · App. 18/194,043 · Granted Sep 23, 2025

Crossbar based transpose data transfers

Inventors: Patricio Kaplan (Palo Alto, CA); Ron Diamant (San Jose, CA)
Assignee: Amazon Technologies, Inc.
G06N3/08G06F13/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,423,580
App. No.
18/194,043
Granted
Sep 23, 2025
Kind
B1
Abstract

Techniques to perform transpose operations in a crossbar circuit may include receiving a set of write transactions to write a data array to a target memory, and determining that the set of write transactions is for a transpose write. Write data for each of the write transactions can be stored diagonally in a transpose memory of the crossbar circuit. Each row of data in the transpose memory can be rotated, and rotated data from each row of the transpose memory can be provided to a corresponding output port of the crossbar circuit to write to the target memory.

Claims (61)

1. A neural network processor comprising:

one or more direct memory access (DMA) engines;

a state buffer memory having a plurality of row partitions organized into row groups; and

a crossbar circuit having a transpose memory coupled to a plurality of output ports, each output port operable to write to a corresponding row group of the state buffer memory,

wherein the one or more DMA engines are operable to issue a set of write transactions to write a data array to the state buffer memory,

wherein the crossbar circuit is operable to:

determine that the set of write transactions is for a transpose write;

store write data for each write transaction diagonally in the transpose memory;

rotate each row of data in the transpose memory; and

provide rotated data from each row of the transpose memory to a corresponding output port to write to the state buffer memory, and

wherein each of the write transactions in the set of write transactions includes an opcode to provide flow control information to manage transpose credits used for accessing the transpose memory.

2. The neural network processor of claim 1 , wherein each output port includes an output buffer, and

wherein the crossbar circuit is further operable to:

store the rotated data from a row of the transpose memory diagonally in the output buffer of an output port;

rotate each row of buffer data in the output buffer; and

write the rotated buffer data from each row of the output buffer to a corresponding row partition of the state buffer memory.

3. The neural network processor of claim 1 , wherein each of the write transactions includes a set of attributes including the opcode, size information of the data array, a data element size of the data array, and offset information for the state buffer memory.

4. The neural network processor of claim 3 , wherein the set of attributes is provided in an address field of each write transaction.

5. An integrated circuit device comprising:

a target memory; and

a crossbar circuit including:

a transpose memory arranged in rows and columns; and

a plurality of output ports,

wherein each row of the transpose memory is coupled to a corresponding output port,

wherein the crossbar circuit is operable to:

receive a set of write transactions to write a data array to the target memory;

determine that the set of write transactions is for a transpose write; and

transpose the data array being written into the target memory by:

storing write data for each write transaction diagonally in the transpose memory;

rotating each row of data in the transpose memory; and

providing rotated data from each row of the transpose memory to a corresponding output port to write to the target memory, and

wherein each of the write transactions in the set of write transactions includes an opcode to provide flow control information to manage transpose credits used for accessing the transpose memory.

6. The integrated circuit device of claim 5 , wherein the target memory is organized into row groups each containing a plurality of row partitions, and each output port is operable to write to a corresponding row group.

7. The integrated circuit device of claim 6 , wherein an output port of the crossbar circuit includes an output buffer, and the output buffer is operable to:

store the rotated data from a row of the transpose memory diagonally in the output buffer;

rotate each row of buffer data in the output buffer; and

write rotated buffer data from each row of the output buffer to a corresponding row partition of the target memory.

8. The integrated circuit device of claim 5 , wherein the opcode differentiates between a transpose write operation and a non-transpose write operation.

9. The integrated circuit device of claim 5 , wherein the opcode of a write transaction is provided in an address field of the write transaction.

10. The integrated circuit device of claim 5 , wherein the opcode of a write transaction is set to a spray command when a data source has more than one write transaction to issue for the transpose write, and the write transaction is not a last write transaction from the data source.

11. The integrated circuit device of claim 5 , wherein the opcode of a write transaction is set to a spray-last command when the write transaction is either a last write transition from a data source for the transpose write, or is an only write transaction from the data source for the transpose write.

12. The integrated circuit device of claim 5 , wherein when the data array fills only a subset of rows in the transpose memory, the set of write transactions further includes one or more write transactions that each has the opcode set to a no-operation (nop) with no data to write.

13. The integrated circuit device of claim 5 , wherein each of the write transactions includes an address field, and wherein size information of the data array is provided in the address field.

14. The integrated circuit device of claim 13 , wherein

the size information of the data array includes a row size indicating a number of rows in the data array.

15. The integrated circuit device of claim 5 , wherein each of the write transactions includes an address field, and wherein a data element size of the data array is provided in the address field.

16. The integrated circuit device of claim 5 , wherein the set of write transactions is issued by one or more direct memory access engines.

17. A method comprising:

receiving, at a crossbar circuit, a set of write transactions to write a data array to a target memory;

determining that the set of write transactions is for a transpose write;

storing write data for each of the write transactions diagonally in a transpose memory of the crossbar circuit;

rotating each row of data in the transpose memory; and

providing rotated data from each row of the transpose memory to a corresponding output port of the crossbar circuit to write to the target memory,

wherein each of the write transactions in the set of write transactions includes an opcode to provide flow control information to manage transpose credits used for accessing the transpose memory.

18. The method of claim 17 , wherein the target memory is organized into row groups each containing a plurality of row partitions, and each output port writes to a row group, and

wherein the method further comprises:

storing the rotated data from a row of the transpose memory diagonally in an output buffer of an output port;

rotating each row of buffer data in the output buffer; and

writing rotated buffer data from each row of the output buffer to a corresponding row partition of the target memory.

19. The method of claim 17 , wherein each of the write transactions includes a set of attributes including one or more of size information of the data array, a data element size of the data array, and offset information for the target memory.

20. The method of claim 19 , wherein the set of attributes is provided in an address field of each write transaction.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2024
From: KAPLAN, PATRICIO; DIAMANT, RON
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 066695/0981 →
References Cited (24)
US 9952831B1 · Ross · 2018 [cited by examiner]
US 10817260B1 · Huang et al. · 2020 [cited by applicant]
US 11494326B1 · Xu et al. · 2022 [cited by applicant]
US 20060294347A1 · Zou et al. · 2006 [cited by applicant]
US 20080013119A1 · Case · 2008 [cited by examiner]
US 20080219160A1 · Trinh et al. · 2008 [cited by applicant]
US 20090161547A1 · Riddle et al. · 2009 [cited by applicant]
US 20150106587A1 · Che et al. · 2015 [cited by applicant]
US 20160224098A1 · Gendler et al. · 2016 [cited by applicant]
US 20170235511A1 · Palmer et al. · 2017 [cited by applicant]
US 20190042248A1 · Bradford · 2019 [cited by examiner]
US 20190340491A1 · Norden et al. · 2019 [cited by applicant]
US 20200142806A1 · Zbiciak et al. · 2020 [cited by applicant]
US 20200192968A1 · Prathapan · 2020 [cited by examiner]
US 20200241844A1 · Koeplinger · 2020 [cited by examiner]
US 20230017662A1 · Kadri · 2023 [cited by examiner]
US 20230176981A1 · Wei · 2023 [cited by examiner]
US 20230229910A1 · Brady · 2023 [cited by examiner]
US 20240134564A1 · Choi · 2024 [cited by examiner]
US 20240143525A1 · Chen · 2024 [cited by examiner]
US 20240152471A1 · Liu · 2024 [cited by examiner]
U.S. Appl. No. 18/194,034, inventors Kaplan P., et al., filed on Mar. 31, 2023. [cited by applicant]
U.S. Non-Final Office Action dated Nov. 8, 2024 in U.S. Appl. No. 18/194,034. [cited by applicant]
U.S. Final Office Action dated Mar. 24, 2025 in U.S. Appl. No. 18/194,034. [cited by applicant]