# US 12,223,010 B2 · Methods and circuits of spatial alignment

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,223,010 B2
- Document ID: US12223010B2
- Status: Granted
- Kind: B2
- Application number: 17/339,895
- Filed: 2021-06-04
- Published: 2022-12-08
- Granted: 2025-02-11
- Earliest claimed: 2021-06-04
- Assignees: Arm Limited
- Applicants: Arm Limited
- Inventors: Supreet Jeloka; Mudit Bhargava; Saurabh Pijuskumar Sinha; Rahul Mathur
- Web page: https://patentgrep.com/patent/US12223010B2

## CPC

- G06F 17/16: Matrix or vector computation {, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization (matrix transposition G06F7/78)}
- G06F 9/3001: {Arithmetic instructions}
- G06F 9/30014: {with variable precision}
- G06F 9/30036: {Instructions to perform operations on packed data, e.g. vector, tile or matrix operations}
- G06F 17/153: {Multidimensional correlation or convolution}
- G06F 9/30032: {Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

According to one implementation of the present disclosure, a method includes performing a spatial alignment of at least one of first or second data tiers of a circuit; and performing a computation based on the spatial alignment of the at least one of the first and second data tiers. According to another implementation of the present disclosure, a circuit includes: a compute circuitry; and at least first and second data tiers of two or more data tiers positioned at least partially overlapping one another. In an example, each of the at least first and second data tiers is coupled to the compute circuitry. In certain implementations, the positioning of the first and second data tiers at least partially overlapping one another corresponds to a spatial alignment.

## Claims

### Claim 1

A method comprising:
performing a spatial transform from a first alignment to a second alignment of at least one of first or second data tiers of a circuit, wherein data elements of the first data tier and data elements of the second data tier are respectively coupled through a compute circuitry; and
performing, by the compute circuitry, a computation of the data elements of the first and second tiers based at least partially on the second alignment.

### Claim 2 (depends on 1)

The method of claim 1, wherein:
each of the data elements of the first and second data tiers is spatially co-related; and
each spatial co-relation corresponds to the respective coupling of a respective data element of the first data tier and a respective data element of the second tier to one another and to the compute circuitry by a respective interconnect wiring.

### Claim 3 (depends on 1)

The method of claim 1, wherein each of the at least first or second data tiers comprise an N×N matrix, wherein the N×N matrix comprises N2 data elements, and wherein each of the N2 data elements comprises one of at least one memory bit-cell, at least one sequential logic or at least one state holding element.

### Claim 4 (depends on 1)

The method of claim 1, wherein the spatial transform is performed in a spatial Z-direction of a three-dimensional XYZ plane.

### Claim 5 (depends on 1)

The method of claim 1, wherein the computation comprises a matrix-multiplication of the first and second data tiers, and wherein the matrix-multiplication comprises one or more multiplication and addition operations of the respective data elements of the first and second data tiers.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
storing output values in at least one or more of the first and second data tiers of the circuit, or a third data tier of the circuit.

### Claim 7 (depends on 6)

The method of claim 6, wherein the computation comprises a matrix-multiplication of the at least first and second data tiers, wherein the matrix-multiplication comprises one or more multiplication and addition operations of the respective data elements of the at least first and second tiers, and wherein the matrix multiplication is performed in one or more processing elements of the first, second, or third data tiers.

### Claim 8 (depends on 1)

The method of claim 1, wherein the circuit comprises two or more data tiers, and wherein the spatial transform is performed on one or more of the two or more data tiers.

### Claim 9 (depends on 1)

The method of claim 1, wherein the spatial transform comprises one or more of a matrix transpose operation, a rotation operation, a slide operation, a convolution, or a sliding window.

### Claim 10 (depends on 1)

The method of claim 1, wherein the first and second data tiers comprise N×N matrices; wherein the spatial transform comprises rotating the second data tier by 90 degrees; and wherein the computation comprising a matrix multiplication is performed by:
for N cycles:
in a first cycle:
multiplying, by one or more multipliers, each of the respective data elements of the first and second data tiers to generate partial products;
adding, by one or more adders, each row of the generated partial products; and
storing, in an accumulation block, added rows diagonally of a resultant matrix-multiplication; and
in successive cycles until the completion of the Nth cycle:
rotate up by one count of each of the data elements of the second data tier;
multiplying, by the one or more multipliers, each of the respective data elements of the first and second data tiers to generate the partial products;
adding, by the one or more adders, each row of the generated partial products; and
storing, in an accumulation block, diagonal added rows of the resultant matrix-multiplication.

### Claim 11 (depends on 1)

The method of claim 1, wherein the first and second data tiers comprise N×N matrices; wherein the spatial transform comprises concurrently rotating-left each data element of each row of the first data tier by a corresponding row index number, and concurrently rotating-up each data element of each column of the second data tier by a correspond column index number, and wherein the computation comprising a matrix multiplication is performed by:
for N cycles:
in a first cycle:
multiplying, by one or more multipliers, each of the respective data elements of the first and second data tiers to generate partial products;
adding, by one or more adders, each row of the generated partial products; and
storing, in an accumulation block, added rows of a resultant matrix-multiplication; and
in successive cycles until the completion of the Nth cycle:
sequentially rotate-left by one count each row of the data elements of the first data tier;
sequentially rotate-up by one count each column of the data elements of the second data tier;
multiplying, by the one or more multipliers, each of the respective data elements of the first and second data tiers to generate partial products;
adding, by the one or more adders, the generated partial products; and
storing, in an accumulation block, the generated partial products of the resultant matrix-multiplication.

### Claim 12

A circuit comprising:
a compute circuitry; and
at least first and second data tiers of two or more data tiers positioned at least partially overlapping one another, wherein:
data elements of each of the at least first and second data tiers are respectively coupled to one another and to the compute circuitry, and
the positioning of the first and the second data tiers at least partially overlapping one another corresponds to a performed spatial transform.

### Claim 13 (depends on 12)

The circuit of claim 12, wherein the at least first and second data tiers comprises a data element matrix, and wherein the data elements of the first and second data tiers are co-related.

### Claim 14 (depends on 13)

The circuit of claim 13, wherein each data element of the data element matrix comprises one of at least one memory bit-cell, at least one sequential logic or at least one state holding element.

### Claim 15 (depends on 12)

The circuit of claim 12, wherein respective three-dimensional electrical connections are configured to couple the compute circuitry to respective corresponding data elements of the first and second data tiers.

### Claim 16 (depends on 12)

The circuit of claim 12, wherein the compute circuitry is configured to perform a matrix multiplication of the first and second data tiers.

### Claim 17 (depends on 16)

The circuit of claim 16, wherein outputs of the matrix multiplication are stored in one or more of at least the first and second data tiers or a third data tier.

### Claim 18 (depends on 12)

The circuit of claim 12, wherein the compute circuitry comprises one or more multipliers, one or more adders, and one or more accumulation blocks.

### Claim 19

A computer-readable storage medium comprising instructions that, when executed by a processor, cause the processor to perform operations including:
performing, by a circuit design tool, a spatial transform from a first alignment to a second alignment of at least one of first or second data tiers of a circuit, wherein the spatial transform comprises one or more of a matrix transpose, a rotation, a slide, a convolution, or a sliding window; and
performing, by the circuit design tool, a computation based at least partially on the second spatial alignment.
