IP Library Granted Patent US 12,591,633
Granted Patent B2
US 12,591,633 · App. 18/830,123 · Granted Mar 31, 2026

Computational memory

Inventor: William Martin Snelgrove (Toronto, CA)
Assignee: UNTETHER AI CORPORATION
G06F17/16G06F7/5324G06F7/5443G06F7/575G06F9/30101
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,591,633
App. No.
18/830,123
Granted
Mar 31, 2026
Kind
B2
Abstract

A processing device includes a two-dimensional array of processing elements, each processing element including an arithmetic logic unit to perform an operation. The device further includes interconnections among the two-dimensional array of processing elements to provide direct communication among neighboring processing elements of the two-dimensional array of processing elements. A processing element of the two-dimensional array of processing elements is connected to a first neighbor processing element that is immediately adjacent the processing element in a first dimension of the two-dimensional array. The processing element is further connected to a second neighbor processing element that is immediately adjacent the processing element in a second dimension of the two-dimensional array.

Claims (34)

1 . A processing device comprising:

a two-dimensional array of processing elements, each processing element including:

an arithmetic logic unit to perform an operation;

an input selector to select input to the processing element from one of its neighboring processing elements;

an output selector to select output from the processing element to a different one its neighboring processing elements; and

interconnections among the array of processing elements to provide direct communication between each processing element and its neighboring processing elements; and

a controller connected to the array of processing elements, the controller configured to:

load an input vector into the array of processing elements;

divide a non-square matrix of coefficients into a plurality of square submatrices of coefficients;

load each square submatrix of coefficients into the array of processing elements as serialized coefficients;

control the array of processing elements to perform a computation with each loaded square submatrix of coefficients and the input vector by:

performing a parallel operation with the serialized coefficients in the array of processing elements and the input vector;

accumulating a result vector; and

rotating the result vector in the array of processing elements and repeating the performing of the parallel operation and the accumulating until the operation is complete; and

when each of the computations is complete, outputting the result vector.

2 . The processing device of claim 1 wherein the controller is further configured to:

combine the result vector of each of the computations to obtain a final result vector corresponding to the non-square matrix of coefficients.

3 . The processing device of claim 1 wherein the controller is further configured to:

divide the input vector into a plurality of input vector portions, each of the plurality of input vector portions corresponding to one of the plurality of square submatrices of coefficients; and

perform the computation with each loaded square submatrix of coefficients and its corresponding input vector portion.

4 . A system comprising a controller and a two-dimensional array of processing elements, wherein the controller is configured to:

load an input vector into the array of processing elements;

divide a non-square matrix of coefficients into a plurality of square submatrices of coefficients;

load each square submatrix of coefficients into the array of processing elements as serialized coefficients;

control the array of processing elements to perform a computation with each loaded square submatrix of coefficients and the input vector by:

performing a parallel operation with the serialized coefficients in the array of processing elements and the input vector;

accumulating a result vector; and

rotating the result vector in the array of processing elements and repeating the performing of the parallel operation and the accumulating until the operation is complete; and

when each of the computations is complete, outputting the result vector.

5 . The controller of claim 4 further configured to:

combine the result vector of each of the computations to obtain a final result vector corresponding to the non-square matrix of coefficients.

6 . The controller of claim 4 further configured to:

divide the input vector into a plurality of input vector portions, each of the plurality of input vector portions corresponding to one of the plurality of square submatrices of coefficients; and

perform the computation with each loaded square submatrix of coefficients and its corresponding input vector portion.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2026
From: UNTETHER AI CORPORATION
To: AT-MEMORY COMPUTING LP
Reel/Frame 075495/0905 →
RELEASE OF SECURITY INTEREST Recorded Jun 17, 2025
From: NATIONAL BANK OF CANADA
To: UNTETHER AI CORPORATION
Reel/Frame 071655/0897 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 10, 2024
From: SNELGROVE, WILLIAM MARTIN
To: UNTETHER AI CORPORATION
Reel/Frame 068545/0341 →
Continuity (8)
Continuation 17675729 · Feb 18, 2022
Continuation In Part 16815535 · Mar 11, 2020
Provisional Application 62983076 · Feb 28, 2020
Provisional Application 62929233 · Nov 1, 2019
Provisional Application 62904142 · Sep 23, 2019
Provisional Application 62887925 · Aug 16, 2019
Provisional Application 62816380 · Mar 11, 2019
Related Publication 20250005104A1 · Jan 2, 2025
References Cited (73)
US 4809347A · Nash et al. · 1989 [cited by applicant]
US 5038386A · Li · 1991 [cited by examiner]
US 5258934A · Agranat et al. · 1993 [cited by applicant]
US 5268856A · Wilson · 1993 [cited by applicant]
US 5345408A · Hoogenboom · 1994 [cited by applicant]
US 5537562A · Gallup et al. · 1996 [cited by applicant]
US 5600582A · Miyaguchi · 1997 [cited by applicant]
US 5627943A · Yoneda et al. · 1997 [cited by applicant]
US 5689661A · Hayashi et al. · 1997 [cited by applicant]
US 5689719A · Miura et al. · 1997 [cited by applicant]
US 5729758A · Inoue et al. · 1998 [cited by applicant]
US 5822608A · Dieffenderfer et al. · 1998 [cited by applicant]
US 5903771A · Sgro et al. · 1999 [cited by applicant]
US 5956274A · Elliott et al. · 1999 [cited by applicant]
US 6067609A · Meeker · 2000 [cited by examiner]
US 6145072A · Shams et al. · 2000 [cited by applicant]
US 6167501A · Barry et al. · 2000 [cited by applicant]
US 6279088B1 · Elliott et al. · 2001 [cited by applicant]
US 6405185B1 · Pechanek et al. · 2002 [cited by applicant]
US 6560684B2 · Elliott et al. · 2003 [cited by applicant]
US 6590419B1 · Betz et al. · 2003 [cited by applicant]
US 6675187B1 · Greenberger · 2004 [cited by applicant]
US 6681316B1 · Clermidy et al. · 2004 [cited by applicant]
US 6754684B1 · Kotlov · 2004 [cited by applicant]
US 6883084B1 · Donohoe · 2005 [cited by applicant]
US 7155581B2 · Elliott et al. · 2006 [cited by applicant]
US 7418579B2 · Guibert et al. · 2008 [cited by applicant]
US 8275820B2 · Jhang et al. · 2012 [cited by applicant]
US 8443169B2 · Pechanek · 2013 [cited by applicant]
US 8769216B2 · Fossum · 2014 [cited by applicant]
US 8812905B2 · Sutardja et al. · 2014 [cited by applicant]
US 10175839B2 · Srivastava et al. · 2019 [cited by applicant]
US 10331282B2 · Srivastava et al. · 2019 [cited by applicant]
US 10346944B2 · Nurvitadhi et al. · 2019 [cited by applicant]
US 10387122B1 · Olsen · 2019 [cited by applicant]
US 10706498B2 · Nurvitadhi et al. · 2020 [cited by applicant]
US 10936408B2 · Wu · 2021 [cited by applicant]
US 20020198911A1 · Blomgren · 2002 [cited by examiner]
US 20030179631A1 · Koob et al. · 2003 [cited by applicant]
US 20040103264A1 · Fujii et al. · 2004 [cited by applicant]
US 20040133750A1 · Stewart et al. · 2004 [cited by applicant]
US 20050226337A1 · Dorojevets et al. · 2005 [cited by applicant]
US 20060161607A1 · Gustavson · 2006 [cited by examiner]
US 20070033369A1 · Kasama · 2007 [cited by examiner]
US 20100122070A1 · Guevorkian et al. · 2010 [cited by applicant]
US 20100211757A1 · Park et al. · 2010 [cited by applicant]
US 20110185151A1 · Whitaker et al. · 2011 [cited by applicant]
US 20120216012A1 · Vorbach et al. · 2012 [cited by applicant]
US 20130103925A1 · Meeker · 2013 [cited by applicant]
US 20150310311A1 · Shi et al. · 2015 [cited by applicant]
US 20160148901A1 · Alvarez-Icaza Rivera · 2016 [cited by examiner]
US 20170148371A1 · Qian · 2017 [cited by applicant]
US 20170206089A1 · Hosoi · 2017 [cited by examiner]
US 20180157970A1 · Henry et al. · 2018 [cited by applicant]
US 20180336165A1 · Phelps · 2018 [cited by examiner]
US 20190004878A1 · Adler et al. · 2019 [cited by applicant]
US 20190018794A1 · Beard et al. · 2019 [cited by applicant]
US 20190065151A1 · Chen et al. · 2019 [cited by applicant]
US 20190095776A1 · Kfir et al. · 2019 [cited by applicant]
US 20190138922A1 · Liu et al. · 2019 [cited by applicant]
US 20190303168A1 · Fleming, Jr. et al. · 2019 [cited by applicant]
US 20200034145A1 · Bainville · 2020 [cited by examiner]
US 20200145926A1 · Velusamy · 2020 [cited by applicant]
US 20200202200A1 · Son et al. · 2020 [cited by applicant]
US 20200279349A1 · Nurvitadhi et al. · 2020 [cited by applicant]
US 20210264247A1 · Kang et al. · 2021 [cited by applicant]
WO WO2014007845A1 · 2014 [cited by applicant]
Beivide, Ramon, et al. “Optimized mesh-connected networks for SIMD and MIMD architectures.” Proceedings of the 14th annual international symposium on Computer architecture. 1987. [cited by applicant]
Serrano, Mauricio J. et al. “Optimal architectures and algorithms for mesh-connected parallel computers with separable row/column buses.” IEEE transactions on parallel and distributed systems 4.10 (1993): 1073-1080. [cited by applicant]
Svensson, B., “SIMD processor array architectures”, May 16, 1990, pp. 1-44. [cited by applicant]
Castaneda, Oscar, et al. “PPAC: A versatile in-memory accelerator for matrix-vector-product-like operations.” 2019 IEEE 30th International Conference on Application-specific Systems, Architectures and Processors (ASAP).… [cited by applicant]
Kondo, Toshio et al., “Two-Dimensional Array Processor AAP2 and Its Programming Language.” Systems and computers in Japan 20.12 (1989): 14-22. [cited by applicant]
Slotnick, Daniel L. et al., “The SOLOMON computer.” Proceedings of the Dec. 4-6, 1962, fall joint computer conference. 1962. [cited by applicant]