# US 8,572,432 B1 · Method and apparatus for processing an event notification in a concurrent processing system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,572,432 B1
- Document ID: US8572432B1
- Status: Granted
- Kind: B1
- Application number: 12/417,069
- Filed: 2009-04-02
- Granted: 2013-10-29
- Earliest claimed: 2009-04-02
- Assignees: Xilinx, Inc.
- Applicants: David B. Parlour; Jorn W. Janneck; Ian D. Miller
- Inventors: David B. Parlour; Jorn W. Janneck; Ian D. Miller
- Web page: https://patentgrep.com/patent/US8572432B1

## CPC

- G06F 11/0793: {Remedial or corrective actions (recovery from an exception in an instruction pipeline G06F9/3861; by retry G06F11/1402; for recovering from a failure of a protocol instance or entity H04L69/40)}
- G06F 11/0712: {in a virtual computing platform, e.g. logically partitioned systems}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

In one embodiment, a concurrent processing system is disclosed. For example, in one embodiment of the present invention, a concurrent processing system, comprises a first processing element comprising a first monitor module, a second processing element in communication with the first processing element, the second processing element comprising a second monitor module, and a first system monitor for receiving a notification from at least one of: the first processing element, or the second processing element, wherein the notification indicates an event detected by one of the first monitor module, or the second monitor module.

## Claims

### Claim 1

A concurrent processing system, comprising:
a first processing element comprising a first monitor module;
a second processing element in communication with said first processing element, said second processing element comprising a second monitor module;
a first system monitor for receiving a notification, wherein a source of said notification is at least one of: said first processing element, or said second processing element, wherein said notification indicates an event detected by one of said first monitor module, or said second monitor module, and wherein said event is derived from an assertion specifying a condition that must always be true; and
a recovery module in communication with said system monitor, wherein said recovery module is configured to issue at least one recovery action instruction to said source specifying a remedial action that is implemented by said source, wherein said at least one recovery action instruction is tailored to address a particular problem caused by said event without having to reset said source;
wherein said first processing element comprises a first recover module, and said second processing element comprises a second recover module, and wherein said at least one recovery action instruction is provided to said first recover module or said second recover module;
wherein said first recover module or said second recover module implements said remedial action responsive to said at least one recovery action instruction; and
wherein the remedial action is ignoring a current input value and awaiting another input value.

### Claim 2 (depends on 1)

The system of claim 1, wherein said first system monitor determines that said event has caused a dataflow stall or a dataflow lock.

### Claim 3 (depends on 1)

The system of claim 1, wherein each of said first processing element and said second processing element comprises a portion of a programmable logic device (PLD).

### Claim 4 (depends on 1)

The system of claim 1, wherein each of said first processing element and said second processing element comprises a programmable logic device (PLD).

### Claim 5 (depends on 1)

The system of claim 1, wherein each of said first processing element and said second processing element comprises a plurality of programmable logic devices (PLDs).

### Claim 6 (depends on 1)

The system of claim 1, wherein each of said first processing element and said second processing element comprises a programmable portion of an integrated circuit.

### Claim 7 (depends on 1)

The system of claim 1, wherein said first system monitor provides a second notification to a second system monitor located external to said concurrent processing system, wherein said second system monitor is a device or module.

### Claim 8 (depends on 7)

The system of claim 7, wherein said first system monitor and said second system monitor have a hierarchical relationship.

### Claim 9 (depends on 1)

The system of claim 1, wherein the assertion is an expression that evaluates to a Boolean value in which “true” implies a correct operation and “false” implies an incorrect operation.

### Claim 10 (depends on 1)

The system of claim 1, wherein the notification includes a cause of the event.

### Claim 11 (depends on 10)

The system of claim 10, wherein the recovery module sends the at least one recovery action responsive to a diagnosis received from the first system monitor.

### Claim 12 (depends on 1)

The system of claim 1, wherein the remedial action is resuming operation for a number of computational cycles.

### Claim 13

A method for processing a notification, comprising:
receiving the notification, wherein a source of said notification is at least one of: a first processing element comprising a first monitor module, or a second processing element comprising a second monitor module, wherein said first processing element and said second processing element are deployed in a concurrent processing system, wherein said notification indicates an event detected by one of said first monitor module, or said second monitor module, and wherein said event is derived from an assertion specifying a condition that must always be true; and
processing said notification to determine whether at least one recovery action instruction is to be issued to said first processing element or said second processing element, wherein said at least one recovery action specifies a remedial action that is implemented by said first processing element or said second processing element, and
wherein said at least one recovery action instruction is tailored to address a particular problem caused by said event without having to reset said source;
wherein said at least one recovery action instruction is provided to a first recover module within said first processing element or a second recover module within said second processing element;
wherein said first recover module or said second recover module implements said remedial action responsive to said at least one recovery action instruction; and
wherein the remedial action is ignoring a current input value and awaiting another input value.

### Claim 14 (depends on 13)

The method of claim 13, wherein said event is determined to have caused a dataflow stall or a dataflow lock.

### Claim 15 (depends on 13)

The method of claim 13, wherein each of said first processing element and said second processing element comprises at least one of: a portion of a programmable logic device (PLD), a programmable logic device (PLD), a plurality of programmable logic devices (PLDs), or a programmable portion of an integrated circuit.

### Claim 16 (depends on 13)

The method of claim 13, further comprising:
providing a second notification to a system monitor located external to said concurrent processing system, wherein said system monitor is a device or module.

### Claim 17

A non-transitory computer-readable medium having stored thereon a plurality of instructions, the plurality of instructions including instructions which, when executed by a processor, cause the processor to perform a method for processing a notification, comprising:
receiving the notification, wherein a source of said notification is at least one of: a first processing element comprising a first monitor module, or a second processing element comprising a second monitor module, wherein said first processing element and said second processing element are deployed in a concurrent processing system, wherein said notification indicates an event detected by one of said first monitor module, or said second monitor module, and wherein said event is derived from an assertion specifying a condition that must always be true; and
processing said notification to determine whether at least one recovery action instruction is to be issued to said first processing element or said second processing element, wherein said at least one recovery action specifies a remedial action that is implemented by said first processing element or said second processing element, and wherein said at least one recovery action instruction is tailored to address a particular problem caused by said event without having to reset said source;
wherein said at least one recovery action instruction is provided to a first recover module within said first processing element or a second recover module within said second processing element;
wherein said first recover module or said second recover module implements said remedial action responsive to said at least one recovery action instruction; and
wherein the remedial action is ignoring a current input value and awaiting another input value.
