Input/output device including a mechanism for accelerated error handling in multiple processor and multi-function systems
First Claim
1. An input/output (I/O) device comprising:
- a host interface configured to receive and process a plurality of transaction packets sent by a plurality of processing units, each processing unit corresponding to a respective root complex;
wherein the host interface includes an error handling unit having error logic configured to, as the transaction packets are received, determine whether each transaction packet has an error and to store information corresponding to any detected errors within a storage including a plurality of entries according to which processing unit and to which function of a plurality of functions each packet is associated;
wherein a given entry of a first portion of the plurality of entries corresponds to a respective function of the plurality of functions, and wherein a given entry of a second portion of the plurality of entries corresponds to a processor hierarchy associated with a respective processing unit;
wherein the error handling unit also includes;
an error processor configured to execute error processing instructions to access each entry of the storage that includes the information corresponding to any detected errors to determine any error processing operations based upon the information, and to generate and send one or more instruction operations, each corresponding to a particular error processing operation;
an error processing unit configured to execute the one or more instruction operations to perform the particular error processing operations.
1 Assignment
0 Petitions
Accused Products
Abstract
An I/O device includes a host interface that may receive and process transaction packets sent by a number of processing units, with each processing unit corresponding to a respective root complex. The host interface includes an error handling unit having error logic implemented in hardware that may determine, as each packet is received, whether each transaction packet has an error and to store information corresponding to any detected errors. The error handling unit may include an error processor that may be configured to execute error processing instructions to determine any error processing operations based upon the information. The error processor may also generate and send one or more instruction operations, each corresponding to a particular error processing operation. The error handling unit may also include an error processing unit that may execute the one or more instruction operations to perform the particular error processing operations.
36 Citations
20 Claims
-
1. An input/output (I/O) device comprising:
-
a host interface configured to receive and process a plurality of transaction packets sent by a plurality of processing units, each processing unit corresponding to a respective root complex; wherein the host interface includes an error handling unit having error logic configured to, as the transaction packets are received, determine whether each transaction packet has an error and to store information corresponding to any detected errors within a storage including a plurality of entries according to which processing unit and to which function of a plurality of functions each packet is associated; wherein a given entry of a first portion of the plurality of entries corresponds to a respective function of the plurality of functions, and wherein a given entry of a second portion of the plurality of entries corresponds to a processor hierarchy associated with a respective processing unit; wherein the error handling unit also includes; an error processor configured to execute error processing instructions to access each entry of the storage that includes the information corresponding to any detected errors to determine any error processing operations based upon the information, and to generate and send one or more instruction operations, each corresponding to a particular error processing operation; an error processing unit configured to execute the one or more instruction operations to perform the particular error processing operations. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method comprising:
-
receiving and processing a plurality of transaction packets sent by a plurality of processing units, each processing unit corresponding to a respective root complex; as the transaction packets are received, an error handling unit determining whether each transaction packet has an error and storing information corresponding to any detected errors within a storage including a plurality of entries including a plurality of entries according to which processing unit and to which function of a plurality of functions each packet is associated; wherein a given entry of a first portion of the plurality of entries corresponds to a respective function of the plurality of functions, and wherein a given entry of a second portion of the plurality of entries corresponds to a processor hierarchy associated with a respective processing unit; subsequently processing the information corresponding to the detected errors by; an error processor executing error processing instructions to access each entry of the storage that includes the information corresponding to any detected errors to determine any error processing operations based upon the information, and generating and sending one or more instruction operations, each corresponding to a particular error processing operation; an error processing unit executing the one or more instruction operations to perform the particular error processing operations. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A system comprising:
-
one or more processing units each configured to execute operating system software and one or more application device drivers; and an input/output (I/O) device coupled to each of the one or more processing units via a respective communication link; wherein the I/O device includes; a host interface configured to receive and process a plurality of transaction packets sent by a plurality of processing units, each processing unit corresponding to a respective root complex; wherein the host interface includes an error handling unit having error logic configured to, as the transaction packets are received, determine whether each transaction packet has an error and to store information corresponding to any detected errors within a storage including a plurality of entries including a plurality of entries according to which processing unit and to which function of a plurality of functions each packet is associated; wherein a given entry of a first portion of the plurality of entries corresponds to a respective function of the plurality of functions, and wherein a given entry of a second portion of the plurality of entries corresponds to a processor hierarchy associated with a respective processing unit; wherein the error handling unit also includes; an error processor configured to execute error processing instructions to access each entry of the storage that includes the information corresponding to any detected errors to determine any error processing operations based upon the information, and to generate and send one or more instruction operations, each corresponding to a particular error processing operation; an error processing unit configured to execute the one or more instruction operations to perform the particular error processing operations. - View Dependent Claims (16, 17, 18)
-
-
19. A system comprising:
-
one or more processing units each configured to execute operating system software and one or more application device drivers; and an input/output (I/O) device coupled to each of the one or more processing units via a respective communication link; wherein the I/O device includes; a host interface configured to receive and process a plurality of transaction packets sent by a plurality of processing units, each processing unit corresponding to a respective root complex; wherein the host interface includes an error handling unit having error logic configured to, as the transaction packets are received, determine whether each transaction packet has an error and to store information corresponding to any detected errors within a storage; wherein the error handling unit also includes; an error processor configured to execute error processing instructions to determine any error processing operations based upon the information and to generate and send one or more instruction operations, each corresponding to a particular error processing operation; wherein the error processing operations include updating status registers of a plurality of groups of configuration space registers; and wherein each instruction operation includes an opcode field, and address field, a data field, and a function field including an encoding of a number of functions for which the status register is to be modified; and an error processing unit configured to execute the one or more instruction operations to perform the particular error processing operations.
-
-
20. A method comprising:
-
receiving and processing a plurality of transaction packets sent by a plurality of processing units, each processing unit corresponding to a respective root complex; as the transaction packets are received, an error handling unit determining whether each transaction packet has an error and storing information corresponding to any detected errors; subsequently processing the information corresponding to the detected errors by; an error processor executing error processing instructions to determine any error processing operations based upon the information, and generating and sending one or more instruction operations, each corresponding to a particular error processing operation; wherein the error processing operations include updating status registers of a plurality of groups of configuration space registers; and wherein each instruction operation includes an opcode field, and address field, a data field, and a function field including an encoding of a number of functions for which the status register is to be modified; and an error processing unit executing the one or more instruction operations to perform the particular error processing operations.
-
Specification