IP Library › Granted Patent US 12,273,269
Granted Patent B1
US 12,273,269 · App. 18/299,397 · Granted Apr 8, 2025

Selective mesh routing through non-adjacent nodes

Inventors: Nir Ofir (Yuvalim, IL); Robert Michael Bunce (Cary, NC)
Assignee: Marvell Asia Pte Ltd
H04L45/74H04L45/42
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,273,269
App. No.
18/299,397
Granted
Apr 8, 2025
Kind
B1
Abstract

A memory array circuit routes packet data to a destination within the array. The memory array includes memory devices arranged in a plurality of rows and columns, as well as passthrough channels connecting non-adjacent memory devices. Each of the memory devices includes a memory configured to store packet data, and a packet router configured to interface with at least one adjacent memory device of the memory array. The packet router determines a destination address for a packet, and, based on the destination address, selectively forwards the packet to a non-adjacent memory device via a passthrough channel of the plurality of passthrough channels. A memory interface routes the packet from a source to the memory array, and selectively forwarding the packet to one of the plurality of memory devices based on the destination address.

Claims (39)

1. A circuit, comprising:

a memory array having a plurality of memory devices arranged in a plurality of rows and columns and a plurality of passthrough channels connecting non-adjacent memory devices, each of the memory devices including:

a memory configured to store packet data, and

a packet router configured to interface with at least one non-adjacent memory device of the memory array, the packet router configured to: 1) determine a destination address for a packet, and 2) based on the destination address, selectively forward the packet to a non-adjacent memory device via a passthrough channel of the plurality of passthrough channels, the passthrough channel being routed through an adjacent memory device located between the memory device and the non-adjacent memory device, the passthrough channel being communicatively decoupled from a memory and a packet router of the adjacent memory device; and

a memory interface configured to route the packet from a source to the memory array, the memory interface selectively forwarding the packet to one of the plurality of memory devices based on the destination address;

wherein the memory interface is further configured to append the destination address to the packet prior to forwarding the packet to the memory array, the appending including a target identifier (ID) indicating XY coordinates within the memory array for the one of the plurality of memory devices.

2. The circuit of claim 1 , wherein the packet router is further configured to forward the packet to the memory in response to determining a match between the memory device and the destination address.

3. The circuit of claim 1 , wherein the plurality of passthrough channels are integral to the plurality of memory devices.

4. The circuit of claim 1 , wherein the plurality of passthrough channels connect memory devices separated by a single memory device of the memory array.

5. The circuit of claim 1 , wherein the memory interface is further configured to identify the destination address based on a packet header of the packet, the destination address indicating one of the plurality of memory devices.

6. The circuit of claim 1 , wherein the memory interface is configured to selectively forward the packet to one of a subset of the memory devices, the subset including 1) two adjacent memory devices in a first column, and 2) two non-adjacent memory devices in a second column distinct from the first column.

7. The circuit of claim 1 , wherein each of the plurality of passthrough channels connect memory devices separated by multiple memory devices.

8. The circuit of claim 1 , further comprising a plurality of memory interfaces including the memory interface, each of the plurality of memory interfaces configured to route the packet from one or more respective sources to one of a subset of the memory devices coupled to the memory interface.

9. The circuit of claim 1 , wherein the packet router is further configured to select the non-adjacent memory device for forwarding the packet based on a history of at least one memory device to which the packet router forwarded a previous packet.

10. The circuit of claim 1 , wherein the packet router is further configured to select the non-adjacent memory device for forwarding the packet based on a location of the memory interface relative to the memory array.

11. The circuit of claim 1 , wherein the packet router is further configured to select the non-adjacent memory device for forwarding the packet based on a signal issued by the memory interface.

12. A method of routing packet data, comprising:

at a memory device of a memory array having a plurality of memory devices arranged in a plurality of rows and columns and a plurality of passthrough channels connecting non-adjacent memory devices:

determine a destination address for a packet; and

based on the destination address, selectively forward the packet to a non-adjacent memory device via a passthrough channel of the plurality of passthrough channels, the passthrough channel being routed through an adjacent memory device located between the memory device and the non-adjacent memory device, the passthrough channel being communicatively decoupled from a memory and a packet router of the adjacent memory device; and

at a memory interface, selectively forwarding the packet to one of the plurality of memory devices based on the destination address; and

at the memory interface, appending the destination address to the packet prior to forwarding the packet to the memory array, the appending including a target identifier (ID) indicating XY coordinates within the memory array for the one of the plurality of memory devices.

13. The method of claim 12 , further comprising forwarding the packet to the memory in response to determining a match between the memory device and the destination address.

14. The method of claim 12 , wherein the plurality of passthrough channels are integral to the plurality of memory devices.

15. The method of claim 12 , wherein the plurality of passthrough channels connect memory devices separated by a single memory device of the memory array.

16. The method of claim 12 , further comprising:

identifying the destination address based on a packet header of the packet, the destination address indicating one of the plurality of memory devices.

17. The method of claim 12 , further comprising, at the memory interface, selectively forwarding the packet to one of a subset of the memory devices, the subset including 1) two adjacent memory devices in a first column, and 2) two non-adjacent memory devices in a second column distinct from the first column.

18. The method of claim 17 , further comprising, at the memory device, selecting the non-adjacent memory device for forwarding the packet based on a location of the memory interface relative to the memory array.

19. A circuit, comprising:

a node array having a plurality of node devices arranged in a plurality of rows and columns and a plurality of passthrough channels connecting non-adjacent node devices, each of the node devices including:

a processor configured to process packet data, and

a packet router configured to interface with at least one non-adjacent node device of the node array, the packet router configured to: 1) determine a destination address for a packet, and 2) based on the destination address, selectively forward the packet to the non-adjacent node device via a passthrough channel of the plurality of passthrough channels, the passthrough channel being routed through an adjacent memory device located between the memory device and the non-adjacent memory device, the passthrough channel being communicatively decoupled from a memory and a packet router of the adjacent memory device; and

an interface configured to 1) append the destination address to the packet prior to forwarding the packet to the memory array, the appending including a target identifier (ID) indicating XY coordinates within the memory array for the one of the plurality of memory devices, and 2) route the packet from a source to the node array, the interface selectively forwarding the packet to one of the plurality of node devices based on the destination address.

20. A circuit, comprising:

at a memory device of a memory array having a plurality of memory devices arranged in a plurality of rows and columns and a plurality of passthrough channels connecting non-adjacent memory devices:

means for determining a destination address for a packet; and

means for selectively forwarding, based on the destination address, the packet to a non-adjacent memory device via a passthrough channel of the plurality of passthrough channels, the passthrough channel being routed through an adjacent memory device located between the memory device and the non-adjacent memory device, the passthrough channel being communicatively decoupled from a memory and a packet router of the adjacent memory device; and

at a memory interface, means for 1) appending the destination address to the packet prior to forwarding the packet to the memory array, the appending including a target identifier (ID) indicating XY coordinates within the memory array for the one of the plurality of memory devices, and 2) selectively forwarding the packet to one of the plurality of memory devices based on the destination address.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2025
From: MARVELL ISRAEL (M.I.S.L) LTD.
To: MARVELL ASIA PTE LTD
Reel/Frame 071646/0552 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2025
From: MARVELL SEMICONDUCTOR, INC.
To: MARVELL ASIA PTE LTD
Reel/Frame 071646/0689 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2025
From: OFIR, NIR
To: MARVELL ISRAEL (M.I.S.L) LTD.
Reel/Frame 071873/0750 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2025
From: BUNCE, ROBERT MICHAEL
To: MARVELL SEMICONDUCTOR, INC.
Reel/Frame 071873/0778 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 16, 2023
From: BUNCE, ROBERT MICHAEL
To: MARVELL SEMICONDUCTOR, INC.
Reel/Frame 065234/0219 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 16, 2023
From: OFIR, NIR
To: MARVELL ISRAEL (M.I.S.L) LTD.
Reel/Frame 065234/0390 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 16, 2023
From: MARVELL ISRAEL (M.I.S.L) LTD.
To: MARVELL ASIA PTE LTD
Reel/Frame 065234/0498 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 16, 2023
From: MARVELL SEMICONDUCTOR, INC.
To: MARVELL ASIA PTE LTD
Reel/Frame 065234/0732 →
Continuity (1)
Provisional Application 63423800 · Nov 8, 2022
References Cited (40)
US 5920699A · Bare · 1999 [cited by examiner]
US 7143219B1 · Chaudhari et al. · 2006 [cited by applicant]
US 7739436B2 · Meyer · 2010 [cited by applicant]
US 8467213B1 · Channabasappa · 2013 [cited by examiner]
US 9569369B2 · Sedlar · 2017 [cited by examiner]
US 10141034B1 · Zitlaw · 2018 [cited by examiner]
US 10824505B1 · Swarbrick · 2020 [cited by examiner]
US 10936486B1 · Swarbrick · 2021 [cited by examiner]
US 11769832B2 · Han · 2023 [cited by examiner]
US 11923995B2 · Raleigh · 2024 [cited by examiner]
US 20030028713A1 · Khanna et al. · 2003 [cited by applicant]
US 20090245257A1 · Comparan · 2009 [cited by examiner]
US 20090316700A1 · White · 2009 [cited by examiner]
US 20100013517A1 · Manohar et al. · 2010 [cited by applicant]
US 20120215976A1 · Inoue · 2012 [cited by examiner]
US 20130121178A1 · Mainaud · 2013 [cited by examiner]
US 20130329546A1 · Wijnands · 2013 [cited by examiner]
US 20140215185A1 · Danielsen · 2014 [cited by applicant]
US 20140226634A1 · Voigt · 2014 [cited by examiner]
US 20150006776A1 · Liu et al. · 2015 [cited by applicant]
US 20150188847A1 · Chopra · 2015 [cited by examiner]
US 20150205530A1 · Eilert et al. · 2015 [cited by applicant]
US 20170193136A1 · Prasad · 2017 [cited by examiner]
US 20170195295A1 · Tatlicioglu · 2017 [cited by examiner]
US 20180301201A1 · Kantipudi · 2018 [cited by examiner]
US 20200026684A1 · Swarbrick · 2020 [cited by examiner]
US 20210385164A1 · Parmar · 2021 [cited by examiner]
US 20220150044A1 · Xiang · 2022 [cited by examiner]
US 20230315898A1 · Alaeddini · 2023 [cited by examiner]
US 20230316334A1 · Vankayala · 2023 [cited by examiner]
US 20240048508A1 · Viego et al. · 2024 [cited by applicant]
Fusella, et al., “Understanding Turn Models for Adaptive Routing: the Modular Approach,” Design, Automation and Test in Europe (2018) 1489-1492. [cited by applicant]
Glass, et al., “The Turn Model for Adaptive Routing,” Advanced Computer Systems Laboratory, 1992, 278-287. [cited by applicant]
Khan, et al., “Design of a Round Robin Arbiter On Resource Sharing,” Proceedings of 8th IRF International Conference, May 4, 2014, Pune, India. [cited by applicant]
Lee, et al., “Probabilistic Distance-based Arbitration: Providing Equality of Service for Many-core CMPs,” 2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture, pp. 509-519. [cited by applicant]
Mandal, et al., “Theoretical Analysis and Evaluation of NoCs with Weighted Round-Robin Arbitration,” Dept. of ECE, University of Wisconsin-Madison, Aug. 21, 2021. [cited by applicant]
Merchant, “The Design and Performance Analysis of an Arbiter for a Multi-Processor Shared-Memory System,” Aug. 1984, Laboratory for Information and Decision Systems, Massachusetis Institute of Technology, Cambridge, Mas… [cited by applicant]
Next Hop Definition, Created Nov. 17, 2005, Retrieved from the Internet at http://www.linfo.org/next_hop.html on Sep. 15, 2022, The Linux Information Project. [cited by applicant]
Wikipedia, “Mesh Interconnect Architecture—Intel,” Retrieved from the Internet on Nov. 23, 2022 at https://en.wikipedia.org/wiki/Turn_restriction_routing. [cited by applicant]
Wikipedia, “Turn restriction routing,” Retrieved from the Internet on Nov. 23, 2022 at https://en.wikichip.org/wiki/Intel/mesh_interconnect_architecture. [cited by applicant]