Scalable interrupts

US11630789B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11630789-B2
Application numberUS-202117246311-A
CountryUS
Kind codeB2
Filing dateApr 30, 2021
Priority dateSep 11, 2020
Publication dateApr 18, 2023
Grant dateApr 18, 2023

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

An interrupt delivery mechanism for a system includes and interrupt controller and a plurality of cluster interrupt controllers coupled to respective pluralities of processors in an embodiment. The interrupt controller may serially transmit an interrupt request to respective cluster interrupt controllers, which may acknowledge (Ack) or non-acknowledge (Nack) the interrupt based on attempting to deliver the interrupt to processors to which the cluster interrupt controller is coupled. In a soft iteration, the cluster interrupt controller may attempt to deliver the interrupt to processors that are powered on, without attempting to power on processors that are powered off. If the soft iteration does not result in an Ack response from one of the plurality of cluster interrupt controllers, a hard iteration may be performed in which the powered-off processors may be powered on.

First claim

Opening claim text (preview).

What is claimed is: 1. A system comprising: a plurality of cluster interrupt controllers, wherein a respective cluster interrupt controller of the plurality of cluster interrupt controllers is associated with a respective processor cluster of a plurality of processor clusters, and wherein a given processor cluster of the plurality of processor clusters comprises a plurality of processors; and an interrupt controller coupled to the plurality of cluster interrupt controllers, wherein the interrupt controller is configured to receive an interrupt from a first interrupt source and is configured, based on the interrupt, to: perform a first iteration over the plurality of cluster interrupt controllers to attempt to deliver the interrupt; based on non-acknowledge (Nack) responses from the plurality of cluster interrupt controllers in the first iteration, perform a second iteration over the plurality of cluster interrupt controllers; wherein a given cluster interrupt controller of the plurality of cluster interrupt controllers, in the first iteration, is configured to attempt to deliver the interrupt to a subset of the plurality of processors in the respective processor cluster that are powered on without attempting to deliver the interrupt to ones of the respective plurality of processors in the respective processor cluster that are not included in the subset; and wherein the given cluster interrupt controller, in the second iteration, is configured to power on the ones of the plurality of processors that are powered off and attempt to deliver the interrupt to the plurality of processors. 2. The system as recited in claim 1 wherein, during the attempt to deliver the interrupt over the plurality of cluster interrupt controllers: the interrupt controller is configured to assert a first interrupt request to a first cluster interrupt controller of the plurality of cluster interrupt controllers; and based on the Nack response from the first cluster interrupt controller, the interrupt controller is configured to assert a second interrupt request to a second cluster interrupt controller of the plurality of cluster interrupt controllers. 3. The system as recited in claim 2 wherein, during the attempt to deliver the interrupt over the plurality of cluster interrupt controllers: based on a second Nack response from the second cluster interrupt controller, the interrupt controller is configured to assert a third interrupt request to a third cluster interrupt controller of the plurality of cluster interrupt controllers. 4. The system as recited in claim 2 wherein, during the attempt to deliver the interrupt over the plurality of cluster interrupt controllers: based on an acknowledge (Ack) response from the second cluster interrupt controller and a lack of additional pending interrupts, the interrupt controller is configured to terminate the attempt. 5. The system as recited in claim 1 wherein, during the attempt to deliver the interrupt over the plurality of cluster interrupt controllers: the interrupt controller is configured to assert an interrupt request to a first cluster interrupt controller of the plurality of cluster interrupt controllers; and based on an acknowledge (Ack) response from the first cluster interrupt controller and a lack of additional pending interrupts, the interrupt controller is configured to terminate the attempt. 6. The system as recited in claim 1 wherein, during the attempt to deliver the interrupt over the plurality of cluster interrupt controllers: the interrupt controller is configured to serially assert interrupt requests to one or more cluster interrupt controllers of the plurality of cluster interrupt controllers, terminated by an acknowledge (Ack) response from a first cluster interrupt controller of the one or more cluster interrupt controllers. 7. The system as recited in claim 6 wherein the interrupt controller is configured to serially assert in a programmable order. 8. The system as recited in claim 6 wherein the interrupt controller is configured to serially assert the interrupt request based on the first interrupt source, wherein a second interrupt from a second interrupt source results in a different order of the serial assertion. 9. The system as recited in claim 1 wherein, during the attempt to deliver the interrupt over the plurality of cluster interrupt controllers: the interrupt controller is configured to assert an interrupt request to a first cluster interrupt controller of the plurality of cluster interrupt controllers; and the first cluster interrupt controller is configured to serially assert processor interrupt requests to the plurality of processors in the respective processor cluster based on the interrupt request to the first cluster interrupt controller. 10. The system as recited in claim 9 wherein the first cluster interrupt controller is configured to terminate serial assertion based on an acknowledge (Ack) response from a first processor of the plurality of processors. 11. The system as recited in claim 10 wherein the first cluster interrupt controller is configured to transmit the Ack response to the interrupt controller based on the Ack response from the first processor. 12. The system as recited in claim 9 wherein the first cluster interrupt controller is configured to provide the Nack response to the interrupt controller based on Nack responses from the plurality of processors in the respective cluster during the serial assertion of processor interrupts. 13. The system as recited in claim 1 wherein the interrupt controller is included on a first integrated circuit on a first semiconductor substrate that includes a first subset of the plurality of cluster interrupt controllers, and wherein a second subset of the plurality of cluster interrupt controllers are implemented on a second integrated circuit on second, separate semiconductor substrate, and wherein the interrupt controller is configured to serially assert interrupt requests to the first subset prior to attempting to deliver to the second subset. 14. The system as recited in claim 13 wherein the second integrated circuit includes a second interrupt controller, and wherein the interrupt controller is configured to communicate the interrupt request to the second interrupt controller responsive to the first subset refusing the interrupt, and wherein the second interrupt controller is configured to attempt to deliver the interrupt to the second subset. 15. A processor comprising: a reorder buffer configured to track a plurality of instruction operations corresponding to instructions fetched by the processor and not retired by the processor; a load/store unit configured to execute load/store operations; and a control circuit coupled to the reorder buffer and the load/store unit, wherein the control circuit is configured to generate an acknowledge (Ack) response to an interrupt request received by the processor based on a determination that the reorder buffer will retire instruction operations to an interruptible point and the load/store unit will complete load/store operations to the interruptible point within a specified period of time, and wherein the control circuit is configured to generate a non-acknowledge (Nack) response to the interrupt request based on a determination that at least one of the reorder buffer and the load/store unit will not reach the interruptible point within the specified period of time. 16. The processor as recited in claim 15 wherein the determination is the Nack response based on the reorder buffer having at least one instruction operation th

Assignees

Inventors

Classifications

  • G06F13/24Primary

    using interrupt (G06F13/32 takes precedence) · CPC title

  • Power supply means, e.g. regulation thereof (for memories G11C) · CPC title

  • the resource being a machine, e.g. CPUs, Servers, Terminals · CPC title

  • G06F9/4812Primary

    by interrupt, e.g. masked · CPC title

  • Energy efficient computing, e.g. low power processors, power management or thermal management · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11630789B2 cover?
An interrupt delivery mechanism for a system includes and interrupt controller and a plurality of cluster interrupt controllers coupled to respective pluralities of processors in an embodiment. The interrupt controller may serially transmit an interrupt request to respective cluster interrupt controllers, which may acknowledge (Ack) or non-acknowledge (Nack) the interrupt based on attempting to…
Who is the assignee on this patent?
Apple Inc
What technology area does this patent fall under?
Primary CPC classification G06F13/24. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 18 2023 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 10 related publications on this page (citations in our corpus or others sharing the same primary CPC).