IP Library Granted Patent US 12,436,901
Granted Patent B2
US 12,436,901 · App. 18/259,070 · Granted Oct 7, 2025

Controlling access to a memory shared by a cluster of multiple processing elements

Inventor: Stefan Blixt (Bålsta, SE)
Assignee: Telesis Innovation AB
G06F13/1663
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,436,901
App. No.
18/259,070
Granted
Oct 7, 2025
Kind
B2
Abstract

There is provided a Cluster Controller, CC, configured to control memory access by a cluster of multiple processing units or processing elements, PEs, to a common Cluster Memory, CM, shared by the processing elements within the cluster. The Cluster Controller is configured to receive requests, referred to as cluster broadcast requests, from at least a subset of the multiple processing elements within the cluster for broadcasting of data from the common cluster memory to said at least a subset of the multiple processing elements. The Cluster Controller is configured to initiate broadcasting of data in response to the received cluster broadcast requests only after broadcast requests have been received from all processing elements of said at least a subset of said multiple processing elements that are participating in the broadcast.

Claims (21)

1. A Cluster Controller, CC, configured to control memory access by a cluster of multiple processing units or processing elements, PEs, to a common Cluster Memory, CM, shared by the processing elements within the cluster,

wherein said Cluster Controller is configured to receive requests, referred to as cluster broadcast requests, from at least a subset of said multiple processing elements within the cluster for broadcasting of data from said common cluster memory to said at least a subset of said multiple processing elements; and

wherein said Cluster Controller is configured to initiate said broadcasting of said data in response to the received cluster broadcast requests only after broadcast requests have been received from all processing elements of said at least a subset of said multiple processing elements that are participating in the broadcast.

2. The Cluster Controller of claim 1 , wherein said Cluster Controller and said multiple processing elements within said cluster are interconnected via data paths for transfer of data and control paths for transfer of control signaling,

wherein said Cluster Controller is configured to go through and analyze the control signaling from at least a subset or all of said multiple processing elements to detect cluster broadcast requests,

wherein said Cluster Controller is configured to enable the data paths to at least a subset or all of said multiple processing elements.

3. The Cluster Controller of claim 1 , wherein at least one cluster broadcast request includes information that is indicative of the number of processing elements that should receive the broadcast, and

wherein said Cluster Controller is configured to count the number of received cluster broadcast requests and to execute said broadcasting of said data when the number of received cluster broadcast requests matches the indicated number of processing elements that should receive the broadcast.

4. The Cluster Controller of claim 1 , wherein at least one cluster broadcast request includes information representing a memory address in said common cluster memory and the amount of data to be transferred in said broadcasting.

5. The Cluster Controller of any of claim 1 , wherein at least one cluster broadcast request further includes a request code indicating that broadcast is requested.

6. The Cluster Controller of any of claim 1 , wherein each one of said multiple processing elements is a programmable processing element, the functionality of which is defined by internal microcode in a microprogram memory associated with the processing element.

7. The Cluster Controller of claim 6 , wherein, for each processing element, the microcode defines when a cluster broadcast request needs to be sent from the processing element to the Cluster Controller.

8. The Cluster Controller of claim 6 , wherein said Cluster Controller is configured to initiate or execute transfer of data in the form of microcode to the microprogram memory in each of the processing elements.

9. The Cluster Controller of any of claim 1 , wherein said Cluster Controller is configured to initiate or execute broadcasting of data, in the form of input data and/or parameters, to memory and/or at least one register in each of the processing elements that are participating in the broadcast.

10. The Cluster Controller of claim 1 , wherein said Cluster Controller is configured to receive a request control signal (REQ) from each of the multiple processing elements within the cluster, each request control signal (REQ) being either raised or not to indicate whether or not the corresponding processing element is sending a cluster broadcast (CB) request, and wherein said Cluster Controller comprises a request arbiter, which is configured to receive the request control signals (REQs) from the processing elements for handling the cluster broadcast (CB) requests in order according to the unit number of the processing elements, while skipping request control signals (REQs) that are not raised by determining a distance to the next request control signal (REQ) that is raised and jumping to the corresponding processing element to serve based on this distance.

11. The Cluster Controller of claim 1 , wherein said Cluster Controller is configured to execute said broadcasting as a single-word broadcast or as a multi-word broadcast.

12. The Cluster Controller of claim 1 , wherein said Cluster Controller is configured to operate as a memory controller for said common Cluster Memory.

13. The Cluster Controller of claim 1 , wherein said Cluster Controller is configured to receive at least one clock signal to generate at least one internal clock signal for the Cluster Controller and the common Cluster Memory.

14. The Cluster Controller of claim 1 , wherein said Cluster Controller is configured to transfer at least one clock signal to said multiple processing elements to enable generation of at least one internal clock signal within the processing elements.

15. The Cluster Controller of claim 1 , wherein all processing elements of said at least a subset of said multiple processing elements that are participating in the broadcast have enabled storage of broadcast data.

16. The Cluster Controller of claim 1 , wherein the received cluster broadcast requests are identical request messages.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2023
From: BLIXT, STEFAN
To: TELESIS INNOVATION AB
Reel/Frame 064434/0031 →
Continuity (2)
Provisional Application 63130089 · Dec 23, 2020
Related Publication 20240054081A1 · Feb 15, 2024
References Cited (39)
US 5287470A · Simpson · 1994 [cited by applicant]
US 5345563A · Uihlein et al. · 1994 [cited by applicant]
US 5890007A · Zinguuzi · 1999 [cited by examiner]
US 6018782A · Hartmann · 2000 [cited by applicant]
US 6145072A · Shams et al. · 2000 [cited by applicant]
US 8060727B2 · Blixt · 2011 [cited by applicant]
US 20030033490A1 · Gappisch et al. · 2003 [cited by applicant]
US 20070159488A1 · Danskin et al. · 2007 [cited by applicant]
US 20070244962A1 · Laadan · 2007 [cited by examiner]
US 20070283037A1 · Burns · 2007 [cited by examiner]
US 20080037650A1 · Stojancic et al. · 2008 [cited by applicant]
US 20100091787A1 · Muff et al. · 2010 [cited by applicant]
US 20100191814A1 · Heddes et al. · 2010 [cited by applicant]
US 20110307459A1 · Jacob · 2011 [cited by applicant]
US 20120124324A1 · Park et al. · 2012 [cited by applicant]
US 20120290815A1 · Takahashi · 2012 [cited by applicant]
US 20140156907A1 · Palmer · 2014 [cited by applicant]
US 20140219209A1 · Soneda · 2014 [cited by examiner]
US 20140310467A1 · Shalf et al. · 2014 [cited by applicant]
US 20170078385A1 · Dress · 2017 [cited by examiner]
US 20170116153A1 · Takada · 2017 [cited by applicant]
US 20170147513A1 · Hilton et al. · 2017 [cited by applicant]
US 20170153993A1 · Palmer et al. · 2017 [cited by applicant]
US 20170220499A1 · Gray · 2017 [cited by applicant]
US 20170230447A1 · Harsha et al. · 2017 [cited by applicant]
US 20170286329A1 · Fernando · 2017 [cited by applicant]
US 20180232148A1 · Saeed · 2018 [cited by applicant]
US 20190042245A1 · Toll et al. · 2019 [cited by applicant]
US 20190138237A1 · Palmer · 2019 [cited by applicant]
US 20190158427A1 · Harsha et al. · 2019 [cited by applicant]
US 20190191814A1 · Stuempfig et al. · 2019 [cited by applicant]
US 20190303328A1 · Balski et al. · 2019 [cited by applicant]
US 20200201690A1 · Sankaralingam et al. · 2020 [cited by applicant]
US 20200301865A1 · Davies · 2020 [cited by applicant]
JP 2009104521A · 2009 [cited by applicant]
WO 2017120270A1 · 2017 [cited by applicant]
International Search Report and Written Opinion for corresponding Application No. PCT/SE2021/050658, issued on Sep. 13, 2021. [cited by applicant]
Caputa “Efficient High-Speed On-Chip Global Interconnects”, Linköping Studies in Science and Technology, Dissertation No. 992, Linköping University 2006. [cited by applicant]
Hassan, et al. “An Enhanced Network-on-chip Simulation for Cluster-based Routing”, Procedia Computer Science vol. 94, 2016, pp. 410-417. [cited by applicant]