Record an error in the error handling device in the system
By deploying multiple error handling devices in PCH and recording error messages using error register groups, the problem that existing systems are difficult to quickly record and report errors when handling errors is solved, and fast and reliable error handling and fault diagnosis are achieved.
Patent Information
- Application Number
- CN201811364902.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2017-12-18
- Filing Date
- 2018-11-16
- Publication Date
- 2025-06-24
- Estimated Expiration
- 2038-11-16
AI Technical Summary
It is difficult for existing systems to quickly record and report errors when handling errors, especially when unexpected global power cycles and unexpected thermal reset events occur, which may cause the system to freeze or fail to read the wrong data, affecting system management and troubleshooting.
Deploy multiple error handling devices in the Platform Controller Center (PCH), record error messages through global and local error register groups, and use system event control registers to determine the severity level of the error, and decide whether to propagate error messages to the global error handling device.
It realizes fast and reliable error recording and reporting capabilities, reduces system downtime, and improves system management and fault diagnosis efficiency.
Smart Images

Figure CN109933449B_ABST
Abstract
Description
Technical Field
[0001] Embodiments described herein generally relate to recording errors in an error handling device in a system. Background Art
[0002] A system (e.g., a system-on-chip (SOC)) provides for the recording and handling of errors from connected devices. Errors may occur in packet transmissions at devices connected to the SOC and at different communication layers within the SOC, e.g., transaction layer errors, data link layer errors, physical layer errors. Errors can be classified as correctable errors handled by hardware and uncorrectable errors handled by device-specific software and system software, e.g., fatal and non-fatal errors. Reliability, availability, and serviceability (RAS) requirements in system design include error collection, i.e., recording and reporting errors. Error reporting is needed to perform platform diagnostics so as to identify the cause of server system downtime (in-situ and remotely) if a catastrophic error becomes mandatory, to perform crash data collection, and FRU (field replaceable unit) isolation. Since unexpected global power cycles and unanticipated thermal reset events may impede the ability to read error data after a catastrophic error that may freeze the system or subject it to a cyber-attack, new error collection schemes before and after reset are essential so that the hypervisor can quickly debug and reduce downtime by isolating and localizing the cause of the fault to various functional blocks (IPs) within the platform, SOC, or chipset.
[0003] For Intel The server error reporting scheme for a server consists of a global integrated error handler (GIEH) that is coupled to a plurality of satellite integrated error handlers (SIEHs) in platform controller hubs (PCHs) distributed in a system-on-chip (e.g., the north and south complexes of an SOC package). For example, for a u-server error architecture used with a monolithic die based on Intel Atom TM the SOC has a single GIEH connected to various error sources that generate errors. In the case of a client system, the SOC relies on an interrupt timer subsystem (ITSS) IP for the error recording scheme and reporting, which provides one error recording bit to the PCH. Brief Description of the Drawings
[0004] Embodiments are described by way of example with reference to the drawings, which are not drawn to scale, where like reference numerals refer to like elements.
[0005] Figure 1 A system in which embodiments are implemented is shown.
[0006] Figure 2An embodiment of an error handling device is shown.
[0007] Figure 3 An embodiment of an error message is shown.
[0008] Figure 4 An embodiment of a global / local error register group is shown.
[0009] Figure 5 An embodiment of a system event control register entry is shown.
[0010] Figure 6 An embodiment of an error handling logic is shown.
[0011] Figure 7 An embodiment of an error handling logic for processing received error messages is shown.
[0012] Figure 8 An embodiment of an error handling logic for detecting recorded errors in a global error register is shown.
[0013] Figure 9 An embodiment of an error handling logic for processing error messages from another error handling device is shown.
[0014] Figure 10 Shows Figure 1 the system in which the system can be deployed. Detailed Description
[0015] The described embodiments provide error handling in a Platform Controller Hub (PCH) that deploys multiple error handling devices to collect errors and propagate them to a global error handling device to accommodate various types of systems from servers to clients in which error handling embodiments will be deployed. The described embodiments provide extensive error recording and reporting capabilities for software to quickly debug and isolate faulty units in a timely manner compared to other earlier implementations.
[0016] The described embodiments provide an improvement to error reporting by providing error registers (e.g., a global error register and local error registers) in each of the error handling devices in the error handling apparatus. Values (e.g., bit values) provide an index to a register bank in the error registers. Each of the devices connected to the error handling device is associated with one of the values to associate the device transmitting the error message with the register bank in the error registers. The error of the device is then recorded in the register bank to which the device is mapped. In some embodiments, the port identifier of the device can be used to determine the register bank in which the error message is recorded. Additionally, with the described embodiments, error messages from devices such as a Peripheral Component Interconnect Express (PCIe) device and legacy devices, error messages from the local fabric, and internal errors recorded in the global error register are reported as system events to account for propagation to a global error handling device that receives errors from multiple error handling devices distributed across different Platform Control Hubs (PCHs) connected through a host interface.
[0017] In the following description, numerous specific details are set forth such as logic implementations, opcode, units for specifying operands, resource partitioning / sharing / copying implementations, types and interrelationships of system components, and logic partitioning / integration choices in order to provide a more thorough understanding of the present invention. However, those skilled in the art will understand that the present invention may be practiced without these specific details. In other instances, control structures, gate level circuits, and full software instruction sequences are not shown in detail so as not to obscure the present invention. With the included description, one of ordinary skill in the art will be able to implement the appropriate functionality without undue experimentation.
[0018] References in the specification to "one embodiment", "an embodiment", "example embodiment", etc., indicate that the described embodiment may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include that particular feature, structure, or characteristic. Moreover, these phrases do not necessarily refer to the same embodiment. Some embodiments relate to electronic components of a storage device. Embodiments include both apparatuses and methods for forming the electronic components.
[0019] Figure 1An embodiment of system 100 is shown, for example, a system-on-chip (SOC) or composed of multiple integrated circuit dies, including multiple processing cores 102 connected to different platform controller hubs (PCHs) 106a, 106b via a mesh or other interface 104. In one embodiment, PCH 106a may include a north bridge center, and PCH 106b may include a south bridge center. PCH 106a includes error handling devices 200a and 200b. Error handling device 200a is used to record errors from connected devices 1101, 1102, and error handling device 200b is used to record errors from devices 1103, 1104 and local structures 114a such as the primary scalable fabric (PSF) based on the integrated on-chip system fabric (IOSF) specification. The IOSF specification and the PSF specification are developed by the company (Intel is a registered trademark worldwide). PCH 106b includes error handling device 200c, which is used to record errors from devices 1105, 1106 and local structures 112b, 112c (e.g., PSF). PCHs 106a, 106b are connected via main interfaces 112a, 112b (e.g., direct media interface (DMI), RLINK, etc.). PCH 106a also includes interconnect structures 116a, 116b to provide interconnection of error handling devices 200a, 200b. Error handling devices 200a, 200b, and 200c can propagate errors to the global error handling device 118 in PCH 106a.
[0020] Devices 1101, 1102... 1106 may be located outside system 100, for example, devices outside the SOC. Devices 1101, 1102... 1106 may include legacy devices and PCIe devices, such as memories, storage devices, graphics cards, etc.
[0021] In an alternative embodiment, there may be only one or more than two PCHs in system 100, fewer or different types or numbers of interconnections than shown, and fewer or more devices, structures, and interconnections than shown. Interconnections and structures can be implemented using IOSF, PSF, and mesh interfaces and / or different types of interface protocols.
[0022] Figure 2 An instance 200 of one of the error handling devices in the error handling device is shown i, for example, error handling devices 200a, 200b, 200c, and include a master interface 202 (e.g., an IOSF master interface) for connecting to the master interface 112a, 112b, a sideband interface 204 for receiving and sending error messages on the IOSF type interface, a PCIe configuration register 206 for communicating with a PCIe device, and an error handler 208. The error handler 208 includes logic 600 for performing error handling operations, wherein error messages are recorded for forwarding to a global error register 212 of the global error handling device 118, and wherein the error handling device 200 is also recorded. i The local error register 214 includes certain errors including internal errors in the host interface 202, PCIe configuration registers 206 and sideband interface 204 and internal errors in the connected local fabric, such as local fabric errors 112a, 112b. The error handler identifier (ID) register 216 provides error handling devices 200 with local error handling devices. i The system event control register 500 indicates when to mask or not mask error messages recorded in the global error register 212 to be forwarded to the global error handling device 118 .
[0023] Figure 3 The local structure 114 is shown from the device 1101 (eg, PCIe device and legacy device), i An embodiment of a received error message 300 for one of a (e.g., PSF) or internal error. From the error handling device 200 i Internal errors of components 202, 204, 206 within the error message 300 may have a different format than that shown. The error message 300 may include one or more of the following fields, including: a destination port identifier (ID) 302, which indicates the port to which the error message 300 is directed; a source port ID 304 of the source port from which the error message originated; an operation code (opcode) 306 of the error message; a device / function 308, so that for PCIe devices the device and the function of the device may be indicated, and for other types of devices no function may be indicated; a local error flag 312, which indicates whether the error message should be recorded in the local error register 214; and a severity level 314 of the error, for example, fatal, non-fatal, correctable, uncorrectable, etc.
[0024] In some embodiments, the device connected to the error handling device 200 i Device 110 iAn error message 300 can be generated, for example, a PCIe error message (PCI_ERR), for example, a data parity error, a Do_SERR message, for example, an irrecoverable fatal or non-fatal error, an uncorrectable error, an uncorrectable Advanced Error Reporting (AER) error message on the IOSF sideband interface 204.
[0025] Figure 4 An embodiment of a global / local error register group 400 for mapping device, PSF, or internal errors is shown. i of. The register group 400 i can include one or more of the following fields, including: a bit value 402 that provides an index to the register group in the global error register 212 or local error register 214 to which a device port ID or other information is mapped; a device / function name 404 of the device that originated the error, indicating the function name if the PCIe device that generated the error includes a PCIe function; a port ID 406 of the device that sent the error for determining the bit value 402; an error message 408; and one or more pairs of error status registers 4101...4102 and corresponding error status mask registers 4121...4122 for each of the different possible severity levels that can be indicated in the error message, e.g., correctable, uncorrectable fatal, and uncorrectable non-fatal. The error status mask registers 4121...4122 indicate whether the errors with the corresponding error status in the error status registers 4101...4102 are to be masked (i.e., not recorded) or not masked (i.e., recorded). For a reported error, e.g., for the error severity of the received message 300, one of the error status registers 410 i is set (e.g., to 1), and the other error status registers are not set (e.g., to 0) for the different error severity levels indicated in the reported error.
[0026] The error register group 400 i can include columns of registers in a bit map, where the bit value 402 that serves as an index to the registers 212, 214 includes the column number in the register, and the rows across the registers indicate bit / index values in the register. Other register groups in the global error register and local error register can be used to form the error register group 400 i for errors from different sources / devices.
[0027] Figure 5 An entry 500 for the severity level in the system event control register 500 is shown. iAn embodiment, and includes a severity level 502 and a masked / unmasked flag 504, which indicates whether the error message of the system event reported as having the severity level 502 is masked and not forwarded to the global error handling device 118 or unmasked and forwarded.
[0028] Figure 6 An embodiment of error handling logic 600 is shown, which includes a bitmap decoder 602 for mapping the port identifiers of legacy devices and PCIe devices of the connections that send error messages (e.g., Do_SERR and PCIe_ERR) to generate bit values 604 that provide an index to the global error status register sets 4001, 4002... 400 31 to which the error messages 3001, 3002 are mapped. The error handling logic 600 also maps the uncorrectable error 3003 from the local fabric and the internal error 3004 from the error handling device 200 i to the local error register 214 and the global error status register set 4000 indexed by the bit value 0. In one embodiment, the PSF error and the internal error have a fixed mapping to the first register set 4000 in the global error register 212. In an alternative embodiment, errors from the local fabrics 114a, 114b, 114c (e.g., PSF) and internal errors can be mapped to multiple and different global error status register sets 400 i .
[0029] In some embodiments, the basic input / output system (BIOS) (e.g., the BIOS 1016 described with respect to Figure 10 can configure the association of devices, local fabrics, and internal errors with the global error register 212 and the local error register 214 based on the configuration of the devices in the system 100 during system 100 initialization. Software programs can set the error status mask registers 4121... 4122 in the error register set and set the mask 504 in the system event control register 500. Software can also collect error information in the error register 214 for error diagnosis.
[0030] Figure 7An embodiment of an operation performed by error handling logic 600 to handle a received error message 300 on sideband interface 204 or an internal error from one of components 202, 204, and 206 (at block 700) is shown. If (at block 702) the error is not a local error as indicated by local error flag 312, then the port ID is determined (at block 704), e.g., the destination port ID 302 as indicated in message 300. The bit value corresponding to the port ID of the device / function is determined (at block 706). For the bit value, an error register group 400 in global error register 212 is determined (at block 708) i The error handling logic 600 determines the severity level 314 of the error (at block 710). If (at block 712) for the error status register 410 i corresponding to the severity level 314 in the determined register group 400 j the mask register 412 j indicates not masked, then the error handling logic 600 records the error message (at block 714) in the determined register group 400 of the global error register 412 indicating the error message, and records the severity level 314 in the corresponding error status register 400 i for the severity level 314 j . If (at block 712) the mask register 412 j is masked, then the error message 300 is not recorded (at block 716).
[0031] If (at block 702) the error is a local error as indicated by local error flag 312, then the error handling logic 600 determines (at block 718) the error register group 400 in local error register 214 to which the received internal error or local structural error maps, and this mapping can be determined by the type of the internal error or the identity of the local structure (e.g., PSF device). The severity level 314 of the error message 300 is determined (at block 720). The error handling logic 600 determines the severity level 314 (at block 714). If (at block 722) for the error status register 410 i corresponding to the severity level 314 in the determined register group 400 i the mask register 412 j indicates not masked, then the error handling logic 600 records the error message (at block 724) in the determined register group 400 of the local error register 214 indicating the error message, and records the severity level 314 in the corresponding error status register 410 j for the severity level 314 i . jIn addition, for internal errors or local structural errors, error message 300 is recorded (at block 726) in register group 400 for internal errors or local structural errors in global error register 212 i For example, for the first bit value being zero, it is recorded in register group 4000 in global error register 212. If (at block 722) mask register 412 j is masked, then error message 300 is not recorded (at block 728).
[0032] Using Figure 7 In an embodiment, the port ID of the device is used to record error messages from devices such as PCIe devices and legacy devices in global error register 212 to determine the bit value used as an index to the register groups in global error register 212. Error messages from other components (e.g., internal errors and local structures) can also be recorded in local error register 214 as well as global error register 212, where error messages identified as local errors (e.g., internal errors and local structural errors) can be mapped to only one register group in global error register 212 (e.g., the register group for the first bit value). Thus, the described embodiment provides a fast technique for determining the error register group in which the error and error severity information are recorded by providing a mapping using a port identifier or error types such as internal errors and local structural errors.
[0033] Figure 8 An embodiment showing the operation performed by error handling logic 600 to forward the recorded error message to global error handling device 118 is shown. Upon detecting (at block 800) the recording of an error message in one of the error register groups in error message register group 400 in global error register 212 i the error is reported as a system event, and error handling logic 600 determines (at block 802) the severity level from set error status register 410 i If (at block 804), system event control register 500 i for the determined severity level 502 indicates not masked 504, then error message 300 is generated (at block 806) using error handler ID 216 and according to an interconnect protocol (e.g., IOSF). If (at block 808) error handling device 200 i is directly connected to global error handling device 118, then error handling device 200 iForward (at block 810) the generated error message via the sideband interface 204 (e.g., IOSF interconnect) to the global error handling device 118. If (at block 808) the global error handling device 118 is not directly connected, the error handling device 200 i Forward (at block 812) the generated error message via the main interface 112b to another error handling device 200a, e.g., in another PCH 106a. If (at block 804) the system event control register 500 for the error severity level of the error message i is masked, the error message is not forwarded to the global error handling device 118.
[0034] Using Figure 8 an embodiment of, the user can control which messages recorded in the global error register 212 are propagated to the global error handling device 118 by setting the mask for the error severity level (which determines whether the error message is masked or not). In some embodiments, the errors collected by the global error register are mapped to system events. Masking the system event status forces the status bit of the error status register 410 i to have an error of 0. When the global error status register 410 i bit transitions from 0 to 1, the transition can trigger a system event to be forwarded to the global error handling device 118 based on the system event control register 500.
[0035] Figure 9 Illustrates an embodiment of the operation performed by the error handling logic 600 in the error handling device 200 i to process error messages forwarded by another error handling device 200 j e.g., via the main interfaces 112a, 112b or directly. When receiving (at block 900) an error message from another error handling device 200 j e.g., via the main interfaces 112a, 112b, the error handling logic 600 attempts to record the error message 902, which may not succeed because the error handling device 200 i may not include an error register for the device to which the sending error handling device 200 j is connected. The error handling logic 600 forwards (at block 904) the error message to the global error handling device 118 via a direct interface connection (e.g., sideband 204), or forwards it to another error handling device 200 k via the main interface 202 for further forwarding to the global error handling device 118.
[0036] Using Figure 9 an embodiment of, when the sending error handling device 200 jWhen there is no direct connection to the global error handling device through an interconnect technology (e.g., IOSF), the error handling device 200 i can receive error messages sent according to an interconnect protocol (e.g., IOSF) received from another error handling device 200 j for forwarding to the global error handling device 118.
[0037] Figure 10 An embodiment of the system 1000 is shown, in which Figure 1 a system 100 (e.g., a system-on-chip (SOC)) can be deployed as a system-on-chip 1004, a system memory 1008, and a storage device 1010 for long-term storage. The processor 1004 can communicate with the system memory 1008 (where the programs, operands, and parameters being executed are cached), the non-volatile storage device 1010, the graphics card 1012, and other input / output (I / O) devices (e.g., display devices, ports, network interfaces, etc.) via a bus 1006. The basic input / output system (BIOS) 1016 can initialize the values for the components in the system during startup of the system 1000, including the error registers 212, 214 of the error handling devices 200a, 200b, 200c, the system event control register 500, the error handler ID register 216, and other components. Devices 110 connected to the PCH 106a, 106b of the system 100 i can include the components 1008, 1010, 1012, and 1014 of the system 1000.
[0038] It should be understood that references to a structure or feature described in connection with an embodiment throughout the specification include that structure or feature in at least one embodiment of the present invention. Thus, it should be emphasized and understood that two or more references to "an embodiment" or "one embodiment" or "an alternative embodiment" in various parts of this specification do not necessarily all refer to the same embodiment. Additionally, specific features, structures, or characteristics may be appropriately combined in one or more embodiments of the present invention.
[0039] Similarly, it should be understood that in the foregoing description of the embodiments of the present invention, for the purpose of simplifying the disclosure to facilitate understanding of one or more aspects of the various inventive aspects, various features are sometimes combined together in a single embodiment, drawing, or its description. However, this method of disclosure should not be construed as reflecting an intention that the claimed subject matter requires more features than are explicitly recited in each claim. Rather, as reflected in the appended claims, the inventive aspects lie in less than all the features of a single foregoing disclosed embodiment. Thus, the claims following the detailed description are hereby expressly incorporated into this detailed description.
[0040] Examples
[0041] Example 1 is an error handling device that is configured to record errors in a computing system that includes a plurality of devices connected to the error handling device. The error handling device is configured to: provide an error register bank, where each error register bank is associated with a value among a plurality of values, and where each device among the devices that transmit errors to the error handling device is associated with one of the values; receive error messages from the devices connected to the error handling device. For each received error message among the received error messages, the error handling device determines the value among the plurality of values that is associated with the device that transmitted the received error message; determines the error register bank associated with the determined value; and records the received error message in the determined error register bank.
[0042] In Example 2, the subject matter of Example 1 and 3 - 13 may optionally include: a port identifier of a device is mapped to a value, where determining the value of the device that transmitted the received error message is determining the value that is mapped to the port identifier of the device that transmitted the received error message.
[0043] In Example 3, the subject matter of Example 1, 2, and 4 - 13 may optionally include: the error handling device communicates with a global error handling device, and further includes: a system event control register that indicates, for each of a plurality of severity levels, whether a received error message having the severity level is masked or not masked. The error handling device is further configured to: indicate the severity of the error indicated in the received error message in the error register bank; and in response to the system event control register indicating that the severity level indicated in the error register bank for the received error message is not masked, forward the received error message to the global error handling device.
[0044] In Example 4, the subject matter of Example 1 - 3 and 5 - 13 may optionally include: at least one of the devices connected to the error handling device implements a plurality of device functions, where there is one register bank for each device function among the device functions of each device that implements the plurality of device functions in the error register bank, and where the register bank for at least one device that implements the plurality of device functions indicates the device and the functions of the device.
[0045] In Example 5, the subject matter of Examples 1-4 and 6-13 may optionally include: Each error register group includes an error severity status register for an error severity level and a mask register for each error severity status register in the error severity status register, wherein recording the received error message in the determined register group includes: determining whether the mask register for the severity level indicated in the received error message indicates that the severity level is masked or not masked, wherein, in response to the mask register for the severity level indicating not masked, the received error message is recorded, and wherein recording the received error message further includes: indicating the severity level in the received error message in the error severity status register for the severity level in the received error message, wherein, in response to the mask register for the severity level of the received error message indicating masked, the received error message is not recorded in the error register group.
[0046] In Example 6, the subject matter of Examples 1-5 and 7-13 may optionally include: The error severity levels for which there are error severity status registers include correctable errors, fatal uncorrectable errors, and non-fatal uncorrectable errors.
[0047] In Example 7, the subject matter of Examples 1-6 and 8-13 may optionally include: The error handling device communicates with a global error handling device, wherein the error register group includes a global error register and a local error register, and wherein the error handling device is further configured to: determine whether the received error message indicates a local error message, wherein, in response to the received error message indicating a local error message, the determined error register group is in the local error register, and wherein, in response to the received error message not indicating a local error message, the determined error register group is in the global error register; and forward the error message recorded in the global error register to the global error handling device.
[0048] In Example 8, the subject matter of Examples 1-7 and 9-13 may optionally include: The local error register provides a register group pre-allocated for internal errors from the error handling device and at least one local structure coupled to the error handling device, and wherein the error handling device is further configured to: record the received error message in the register group in the local error register in the register group in the global error register; and forward the received error message in the register groups in the local error register and the global error register to the global error handling device.
[0049] In Example 9, the subject matter of Examples 1-8 and 10-13 may optionally include: The received error messages for internal errors and errors from at least one local structure are recorded in a register group in the global error register.
[0050] In Example 10, the subject matter of Examples 1-9 and 11-13 may optionally include: a global error register that records errors from legacy devices and Peripheral Component Interconnect Express (PCIe) devices coupled to an error handling device, where a local error register records internal errors from the error handling device and errors from at least one local fabric coupled to the error handling device, and where one error register group associated with one of the values in the global error register records internal errors and errors from at least one local fabric.
[0051] In Example 11, the subject matter of Examples 1-10 and 12-13 may optionally include: a computer system that includes a plurality of additional error handling devices and a global error handling device in the computer system, the plurality of additional error handling devices record errors of different devices in the computer system that are handled by the error handling device, the global error handling device is used to record received error messages from the error handling device and the additional error handling devices, where the additional error handling devices and the error handling device are programmed with unique identifiers to distinguish the error handling devices, and where the error handling device is further used to: forward the received error messages recorded in the error register group to the global error handling device that includes the unique identifier of the error handling device.
[0052] In Example 12, the subject matter of Examples 1-11 and 13 may optionally include: the error handling device is further used to: when the error handling device does not provide a direct interface to the global error handling device, forward the received error messages recorded in the error register group to the global error handling device through a primary interface to an additional error handling device, where the additional error handling device that receives the received error message forwards the received error message to the global error handling device; and when the error handling device provides a direct interface to the global error handling device, forward the received error messages recorded in the error register group to the global error handling device.
[0053] In Example 13, the subject matter of Examples 1-12 may optionally include: the error handling device is further used to: receive an error message on a primary interface that points to the global error handling device; record the received error message that points to the global error handling device in an error register; and forward the error message to the global error handling device through a direct interface.
[0054] Example 14 is a system that includes: a processor; a plurality of devices that communicate with the processor; and an error handling device that is configured to record errors in the system, where the error handling device is configured to: provide error register groups, where each error register group is associated with a value among a plurality of values, and where each device that conveys an error to the error handling device is associated with one of the values; receive error messages from devices connected to the error handling device; and for each received error message among the received error messages: determine the value among the plurality of values that is associated with the device that sent the received error message; determine the error register group associated with the determined value; and record the received error message in the determined error register group.
[0055] In Example 15, the subject matter of Examples 14 and 16-19 may optionally include: mapping a port identifier of a device to a value, where determining the value of the device that sent the received error message is determining the value that is mapped to the port identifier of the device that sent the received error message.
[0056] In Example 16, the subject matter of Examples 14, 15, and 17-19 may optionally include: a global error handling device; a system event control register that indicates, for each of a plurality of severity levels, whether a received error message having the severity level is masked or not masked; where the error handling device is further configured to: indicate the severity of the error indicated in the received error message in the error register group; and forward the received error message to the global error handling device in response to the system event control register indicating that the severity level indicated in the error register group for the received error message is not masked.
[0057] In Example 17, the subject matter of Examples 14-16 and 18-19 may optionally include: each error register group includes an error severity status register for an error severity level and a mask register for each error severity status register in the error severity status register, where recording the received error message in the determined register group includes: determining whether the mask register for the severity level indicated in the received error message indicates that the severity level is masked or not masked, where, in response to the mask register for the severity level indicating not masked, the received error message is recorded, and where recording the received error message further includes: indicating the severity level in the received error message in the error severity status register for the severity level in the received error message, where, in response to the mask register for the severity level of the received error message indicating masked, the received error message is not recorded in the error register group.
[0058] In Example 18, the subject matter of Examples 14 - 17 and 19 may optionally include: a global error handling device, wherein the error register group includes a global error register and a local error register, and wherein the error handling device is further configured to: determine whether a received error message indicates a local error message, wherein in response to the received error message indicating a local error message, the determined error register group is in the local error register, and wherein in response to the received error message not indicating a local error message, the determined error register group is in the global error register; and forward the error message recorded in the global error register to the global error handling device.
[0059] In Example 19, the subject matter of Examples 14 - 18 may optionally include: a plurality of additional error handling devices; a global error handling device; wherein the error handling device is further configured to: when the error handling device does not provide a direct interface to the global error handling device, forward the received error message recorded in the error register group to the global error handling device through the primary interface to the additional error handling device, wherein the additional error handling device that receives the received error message forwards the received error message to the global error handling device; and when the error handling device provides a direct interface to the global error handling device, forward the received error message recorded in the error register group to the global error handling device.
[0060] Example 20 is a method for an error handling device that is configured to record errors in a computing system including a plurality of devices connected to the error handling device. The method includes: providing an error register group, wherein each error register group is associated with a value among a plurality of values, and wherein each of the devices that transmits an error to the error handling device is associated with one of the values; receiving an error message from a device connected to the error handling device; and for each received error message among the received error messages: determining the value among the plurality of values associated with the device that transmitted the received error message; determining the error register group associated with the determined value; and recording the received error message in the determined error register group.
[0061] In Example 21, the subject matter of Examples 20 and 22 - 25 may optionally include: mapping a port identifier of a device to a value, wherein determining the value of the device that transmitted the received error message includes: determining the value mapped to the port identifier of the device that transmitted the received error message.
[0062] In Example 22, the subject matter of Examples 20, 21, and 23 - 25 may optionally include: providing a system event control register that indicates, for each of a plurality of severity levels, whether a received error message having the severity level is masked or not masked; indicating the severity of an error indicated in a received error message in an error register group; and forwarding the received error message to a global error handling device in response to the system event control register indicating that the severity level indicated in the error register group for the received error message is not masked.
[0063] In Example 23, the subject matter of Examples 20 - 22 and 24 - 25 may optionally include: each error register group includes an error severity status register for an error severity level and a mask register for each error severity status register in the error severity status register, wherein recording the received error message in the determined register group includes: determining whether the mask register for the severity level indicated in the received error message indicates that the severity level is masked or not masked, wherein, in response to the mask register for the severity level indicating not masked, the received error message is recorded, and wherein recording the received error message further includes: indicating the severity level in the received error message in the error severity status register for the severity level in the received error message, wherein, in response to the mask register for the severity level of the received error message indicating masked, the received error message is not recorded in the error register group.
[0064] In Example 24, the subject matter of Examples 20 - 23 and 25 may optionally include: the error register group includes a global error register and a local error register, and the method further includes: determining whether the received error message indicates a local error message, wherein, in response to the received error message indicating a local error message, the determined error register group is in the local error register, and wherein, in response to the received error message not indicating a local error message, the determined error register group is in the global error register; and forwarding the error message recorded in the global error register to a global error handling device.
[0065] In Example 25, the subject matter of Examples 20 - 24 may optionally include: when the error handling device does not provide a direct interface to the global error handling device, forwarding the received error message recorded in the error register group to the global error handling device through a primary interface to an additional error handling device, wherein the additional error handling device that receives the received error message forwards the received error message to the global error handling device; and when the error handling device provides a direct interface to the global error handling device, forwarding the received error message recorded in the error register group to the global error handling device.
[0066] Example 26 is an apparatus for an error handling device that records errors in a computing system including a plurality of devices connected to the error handling device. The apparatus includes: a unit for providing an error register group, where each error register group is associated with a value among a plurality of values, and where each device that transmits an error to the error handling device is associated with one of the values; a unit for receiving an error message from a device connected to the error handling device; and a unit for performing the following operations for each received error message among the received error messages: determining the value among the plurality of values that is associated with the device that transmitted the received error message; determining the error register group associated with the determined value; and recording the received error message in the determined error register group.
[0067] Example 27 is an apparatus including a unit for performing the method described in the foregoing Examples 1 - 26.
[0068] Example 28 is a machine - readable storage device including machine - readable instructions that, when executed, are used to implement the method claimed in the foregoing Examples 1 - 26 or to implement the apparatus claimed in the foregoing Examples 1 - 26.
Claims
1. An error handling device for recording errors in a computing system including a plurality of devices connected to the error handling device, wherein, The error handling device is configured to: Provide a plurality of error register groups, wherein each error register group is associated with one of a plurality of values, and wherein each device among the devices that transmit errors to the error handling device is associated with one of the values; Receive error messages from the devices connected to the error handling device; and For each received error message among the received error messages, perform the following operations: Determine the value among the plurality of values that is associated with the device that sent the received error message; Determine the error register group associated with the determined value; and Record the received error message in the determined error register group.
2. The error handling device according to claim 1, wherein, The port identifier of the device is mapped to the value, wherein determining the value of the device that sent the received error message is: Determine the value that is mapped to the port identifier of the device that sent the received error message.
3. The error handling device according to claim 1, which communicates with a global error handling device, further includes: A system event control register that indicates, for each of a plurality of severity levels, whether the received error message having the severity level is masked or not masked; Wherein the error handling device is further configured to: Indicate the severity of the error indicated in the received error message in the error register group; and In response to the system event control register indicating that the severity level indicated in the error register group for the received error message is not masked, forward the received error message to the global error handling device.
4. The error handling device according to claim 1, wherein, At least one of the devices connected to the error handling device implements a plurality of device functions, wherein there is one register group for each device function among the device functions of each device that implements a plurality of device functions in the error register group, and wherein the register group for the at least one device that implements a plurality of device functions indicates the device and the function of the device.
5. The error handling device according to claim 1, wherein, Each error register group includes an error severity status register for an error severity level and a mask register for each error severity status register in the error severity status register, wherein recording the received error message in the determined register group includes: Determine whether the mask register for the severity level indicated in the received error message indicates that the severity level is masked or not masked, wherein in response to the mask register for the severity level indicating not masked, the received error message is recorded, and wherein recording the received error message further includes: indicating the severity level in the received error message in the error severity status register for the severity level in the received error message, and wherein in response to the mask register for the severity level of the received error message indicating masked, the received error message is not recorded in the error register group.
6. The error handling device according to claim 5, wherein, The error severity levels for the error severity status register include correctable errors, fatal uncorrectable errors, and non-fatal uncorrectable errors.
7. The error handling device according to claim 1, which communicates with a global error handling device, wherein, The error register group includes a global error register and a local error register. Among them, the error handling device is further configured to: Determine whether the received error message indicates a local error message. In response to the received error message indicating the local error message, the determined error register group is in the local error register. And in response to the received error message not indicating a local error message, the determined error register group is in the global error register; and Forward the error message recorded in the global error register to the global error handling device.
8. The error handling device according to claim 7, wherein, The local error register provides a register group for internal errors pre-allocated to the error handling device and at least one local structure coupled to the error handling device. Among them, the error handling device is further configured to: Record the received error message in the register group of the local error register in the register group of the global error register; and Forward the received error message in the register groups of the local error register and the global error register to the global error handling device.
9. The error handling device according to claim 8, wherein, The received error messages for the internal errors and the errors from the at least one local structure are recorded in a register group in the global error register.
10. The error handling device according to claim 7, wherein, The global error register records errors from legacy devices and Peripheral Component Interconnect Express (PCIe) devices coupled to the error handling device. The local error register records internal errors from the error handling device and errors from at least one local structure coupled to the error handling device. And one error register group associated with one of the values in the global error register records the internal errors and the errors from the at least one local structure.
11. The error handling device according to claim 1, wherein, A computer system includes a plurality of additional error handling devices and a global error handling device in the computer system. The plurality of additional error handling devices record errors of different devices in the computer system that are handled by the error handling device. The global error handling device is used to record the received error messages from the error handling device and the additional error handling devices. Among them, the additional error handling devices and the error handling device are programmed with unique identifiers to distinguish the error handling devices. The error handling device is further configured to: Forward the received error message recorded in the error register group to the global error handling device including the unique identifier of the error handling device.
12. The error handling device according to claim 1, wherein, The error handling device is further configured to: When the error handling device does not provide a direct interface to the global error handling device, forward the received error message recorded in the error register group to the global error handling device through the main interface to an additional error handling device, wherein the additional error handling device that receives the received error message forwards the received error message to the global error handling device; and When the error handling device provides a direct interface to the global error handling device, forward the received error message recorded in the error register group to the global error handling device.
13. The error handling device according to claim 12, wherein, The error handling device is further configured to:[[]] Receive an error message on the main interface pointing to the global error handling device; Record the received error message pointing to the global error handling device in the error register; And Forward the error message to the global error handling device through the direct interface.
14. A system for error handling, comprising: A processor; A plurality of devices communicating with the processor; An error handling device for recording errors in the system, wherein the error handling device is configured to:[[]] Provide a plurality of error register groups, wherein each error register group is associated with one of a plurality of values, and wherein each of the devices that transmits an error to the error handling device is associated with one of the values; Receive error messages from the devices connected to the error handling device; and For each received error message in the received error messages, perform the following operations:[[]] Determine the value among the plurality of values associated with the device that sent the received error message; Determine the error register group associated with the determined value; and Record the received error message in the determined error register group.
15. The system according to claim 14, wherein The port identifier of the device is mapped to the value, wherein determining the value of the device that sent the received error message is:[[]] Determine the value mapped to the port identifier of the device that sent the received error message.
16. The system according to claim 14, comprising: A global error handling device; A system event control register indicating for each of a plurality of severity levels whether the received error message having that severity level is masked or not masked; Wherein the error handling device is further configured to:[[]] Indicate the severity of the error indicated in the received error message in the error register group; and In response to the system event control register indicating that the severity level indicated in the error register group for the received error message is not masked, forward the received error message to the global error handling device.
17. The system according to claim 14, wherein, Each error register group includes an error severity status register for the error severity level and a mask register for each error severity status register in the error severity status register, wherein recording the received error message in the determined register group includes:[[]] Determine whether the mask register for the severity level indicated in the received error message indicates that the severity level is masked or not masked. Wherein, in response to the mask register for the severity level indicating not masked, the received error message is recorded. And wherein, recording the received error message further includes: indicating the severity level in the received error message in the error severity status register for the severity level in the received error message. Wherein, in response to the mask register for the severity level of the received error message indicating masked, the received error message is not recorded in the error register group.
18. The system according to claim 14, further comprising: A global error handling device, wherein the error register group includes a global error register and a local error register, and wherein the error handling device is further configured to: Determine whether the received error message indicates a local error message. Wherein, in response to the received error message indicating the local error message, the determined error register group is in the local error register. And wherein, in response to the received error message not indicating a local error message, the determined error register group is in the global error register; and Forward the error message recorded in the global error register to the global error handling device.
19. The system according to claim 14, further comprising: A plurality of additional error handling devices; A global error handling device; Wherein the error handling device is further configured to: When the error handling device does not provide a direct interface to the global error handling device, forward the received error message recorded in the error register group to the global error handling device through the main interface to the additional error handling device. Wherein, the additional error handling device that receives the received error message forwards the received error message to the global error handling device; and When the error handling device provides a direct interface to the global error handling device, forward the received error message recorded in the error register group to the global error handling device.
20. A method for an error handling device, the error handling device being configured to record errors in a computing system including a plurality of devices connected to the error handling device. The method includes: Providing a plurality of error register groups, wherein each error register group is associated with one of a plurality of values, and wherein each of the devices that transmit errors to the error handling device is associated with one of the values; Receiving an error message from the devices connected to the error handling device; and For each received error message in the received error messages: Determine the value among the plurality of values associated with the device that sent the received error message; Determine the error register group associated with the determined value; and Record the received error message in the determined error register group.
21. The method according to claim 20, wherein, The port identifier of the device is mapped to the value, wherein determining the value of the device that sent the received error message includes: Determining the value mapped to the port identifier of the device that sent the received error message.
22. The method according to claim 20, further comprising: Providing a system event control register that indicates, for each severity level among a plurality of severity levels, whether the received error message having the severity level is masked or not masked; Indicating, in the error register group, the severity of the error indicated in the received error message; and Forwarding the received error message to a global error handling device in response to the system event control register indicating that the severity level indicated in the error register group for the received error message is not masked.
23. The method according to claim 20, wherein, Each error register group includes an error severity status register for an error severity level and a mask register for each error severity status register in the error severity status register, wherein recording the received error message in the determined register group includes: Determining whether the mask register for the severity level indicated in the received error message indicates that the severity level is masked or not masked, wherein, in response to the mask register for the severity level indicating not masked, the received error message is recorded, and wherein recording the received error message further includes: indicating the severity level in the received error message in the error severity status register for the severity level in the received error message, wherein, in response to the mask register for the severity level of the received error message indicating masked, the received error message is not recorded in the error register group.
24. The method according to claim 20, wherein, The error register group includes a global error register and a local error register, and the method further comprises: Determining whether the received error message indicates a local error message, wherein, in response to the received error message indicating the local error message, the determined error register group is in the local error register, and wherein, in response to the received error message not indicating a local error message, the determined error register group is in the global error register; and Forwarding the error message recorded in the global error register to a global error handling device.
25. The method according to claim 20, further comprising: When the error handling device does not provide a direct interface to the global error handling device, forwarding the received error message recorded in the error register group to the global error handling device through a main interface to an additional error handling device, wherein the additional error handling device that received the received error message forwards the received error message to the global error handling device; and When the error handling device provides a direct interface to the global error handling device, the received error message recorded in the error register group is forwarded to the global error handling device.
Citation Information
Patent Citations
User-configurable error handling
US9495239B1