IP Library Granted Patent US 10,394,730
Granted Patent B2
US 10,394,730 · App. 14/541,685 · Granted Aug 27, 2019

Distributed interrupt scheme in a multi-processor system

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 10,394,730
App. No.
14/541,685
Granted
Aug 27, 2019
Kind
B2
Abstract

Methods and systems are disclosed for routing and distributing interrupts in a multi-processor computer to various processing elements within the computer. A system for distributing the interrupts may include a plurality of logic devices configured in a hierarchical tree structure that distributes incoming interrupts to interrupt redistributors (redistribution devices). The system also includes plural processing elements, where each processing element has an associated bus address. A shared serial bus couples the redistribution devices and processing elements. Each of the redistribution devices is configured to transfer the incoming interrupts to at least one of the processing elements over the common bus, based on the bus address.

Claims (39)

1. A system, comprising:

a plurality of logic devices including a distributor and redistributors configured in a hierarchical tree structure to distribute one or more incoming interrupts to at least one of a plurality of last-level redistributors;

a plurality of processing elements, each of the processing elements having an associated interrupt bus address and including a CPU interface operatively coupled to the shared interrupt bus and a CPU core operatively coupled to the CPU interface;

a shared interrupt bus coupling the plurality of last-level redistributors and the plurality of the processing elements;

wherein each of the plurality of last-level redistributors is configured to:

transfer the one or more incoming interrupts over the shared interrupt bus based on the interrupt bus address according to a first clock domain to at least one of the plurality of the processing elements a CPU interface of which operates according to a second clock domain having a clock frequency that is different than that of the first clock domain; and

transfer data to and from the shared interrupt bus according to the clock frequency of the first clock domain, and each of the plurality of the processing elements is configured to transfer data to and from the shared interrupt bus via the processing element's CPU interface according to the clock frequency of the second clock domain.

2. The system of claim 1 , wherein the clock frequency of the first clock domain is lower than the clock frequency of the second clock domain.

3. The system of claim 1 , further comprising a bus buffer coupled to the shared interrupt bus to synchronize transfers over the shared interrupt bus between the first clock domain and the second clock domain.

4. The system of claim 1 , wherein the one or more incoming interrupts include interrupt messages defining at least a type of interrupt.

5. The system of claim 1 , wherein each of the plurality of last-level redistributors is configured to transfer one or more interrupt packets over the shared interrupt bus where each of the one or more interrupt packet includes an address field containing the interrupt bus address of a destination processing element and an interrupt message field containing an interrupt message.

6. The system of claim 1 , further comprising one or more bus arbitrators to arbitrate access to the shared interrupt bus among the plurality of processing elements and the plurality of last-level redistributors.

7. A method of distributing one or more interrupts in a system having a plurality of processing elements, each of the processing elements including a CPU interface operatively coupled to the shared interrupt bus and a CPU core operatively coupled to the CPU interface, comprising:

distributing one or more incoming interrupts through a plurality of logic devices including a distributor and redistributors configured in a hierarchical tree structure to at least one of a plurality of last-level redistributors;

transferring the one or more incoming interrupts by the at least one of a plurality of last-level redistributors over the shared interrupt bus based on the interrupt bus address according to a first clock domain to at least one of the plurality of the processing elements a CPU interface of which operates according to a second clock domain having a clock frequency that is different than that of the first clock domain; and

transferring data by each of the plurality of last-level redistributors to and from the shared interrupt bus according to the clock frequency of the first clock domain signal and transferring data by each of the plurality of the processing elements via the processing element's CPU interface to and from the shared interrupt bus according to the clock frequency of the second clock domain signal.

8. The method of claim 7 , wherein the clock frequency of the first clock domain signal is lower than the clock frequency of the second clock domain signal.

9. The method of claim 7 , further comprising:

buffering the shared interrupt bus to synchronize transfers over the shared interrupt bus between a first clock domain and a second clock domain.

10. The method of claim 7 , wherein the incoming interrupts include interrupt messages defining at least a type of interrupt.

11. The method of claim 7 , further comprising:

transferring, from the redistributors, interrupt packets over the shared interrupt bus, where each interrupt packet includes an address field containing the interrupt bus address of a destination processing element and an interrupt message field containing an interrupt message.

12. The method of claim 7 , further comprising:

arbitrating access to the shared interrupt bus among the processing elements and the plurality of last-level redistributors.

13. A system, comprising:

a plurality of means configured in a hierarchical tree structure to distribute one or more incoming interrupts to at least one of a plurality of last level means;

a plurality of processing elements, each of the processing elements having an associated bus address and including a CPU interface operatively coupled to the shared interrupt bus and a CPU core operatively coupled to the CPU interface; and

a shared interrupt bus coupling the of a plurality of last-level means and the processing elements;

wherein each of the plurality of last level means is configured to:

transfer the one or more incoming interrupts over the shared interrupt bus based on the interrupt bus address according to a first clock domain to at least one of the plurality of the processing elements a CPU interface of which operates according to a second clock domain having a clock frequency that is different than that of the first clock domain; and

transfer data to and from the shared interrupt bus according to the clock frequency of the first clock domain and each of the plurality of the processing elements is configured to transfer data to and from the shared interrupt bus via the processing element's CPU interface according to the clock frequency of the second clock domain.

14. A non-transitory computer-readable memory comprising:

executable instructions that when executed by at least one processor of an electronic design automation system (or integrated circuit fabrication system), that when executed cause the at least one processor to:

provide a plurality of logic devices including a distributor and redistributors configured in a hierarchical tree structure to distribute one or more incoming interrupts to at least one of a plurality of last-level redistributors,

provide a plurality of processing elements, each of the processing elements having an associated interrupt bus address and including a CPU interface operatively coupled to the shared interrupt bus and a CPU core operatively coupled to the CPU interface:

provide a shared interrupt bus coupling the plurality of last-level redistributors and the plurality of the processing elements;

wherein each of the plurality of last-level redistributors is configured to:

transfer the one or more of the incoming interrupts over the shared interrupt bus based on the interrupt bus address according to a first clock domain to at least one of the plurality of the processing elements a CPU interface of which operates according to a second clock domain having a clock frequency that is different than that of the first clock domain; and

transfer data to and from the shared interrupt bus according to the clock frequency of the first clock domain and each of the plurality of the processing elements is configured to transfer data to and from the shared interrupt bus via the processing element's CPU interface according to the clock frequency of the second clock domain.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CHANGE OF NAME Recorded Dec 12, 2019
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 051260/0567 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
SECURITY AGREEMENT Recorded Aug 17, 2016
From: CAVIUM, INC.; CAVIUM NETWORKS LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 039715/0449 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2015
From: CHIN, BRYAN WAI; YE, WU; CHILLARIGE, YOGANAND; SCROBOHACI, PAUL; LURNDAL, SCOTT
To: CAVIUM, INC.
Reel/Frame 035431/0070 →