Configuration monitoring and self-repairing method based on PCIe to SRIO switching network
By designing JSON files and using C language development methods, routing configuration and fault self-healing of the SRIO switching network on the Phytium D2000 processor were realized. This solved the problem that the D2000 processor could not efficiently monitor and repair the SRIO switching network, and achieved centralized routing configuration and real-time fault isolation, supporting system-level fault diagnosis.
Patent Information
- Application Number
- CN202511381646.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-09-25
- Publication Date
- 2025-12-12
AI Technical Summary
The Phytium D2000 processor does not support the SRIO communication interface, which makes it impossible to efficiently monitor node devices and repair the SRIO switching network in real time.
The design uses JSON files to describe the topology and configuration information of the SRIO switching system. The routing configuration and fault self-healing of the SRIO switching network are implemented using C language. The PCIe to SRIO function is implemented using FPGA. By combining static and dynamic configuration, the node status is monitored in real time and isolated and automatically handled when a fault occurs.
It implements centralized routing configuration for SRIO switching networks, effectively solves network failures caused by single node failures, supports real-time monitoring and self-repair of faults, avoids processor crashes, and provides system-level fault diagnosis capabilities.
Smart Images

Figure CN121125658A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The application belongs to the technical field of PCIe to SRIO switching network design, and particularly relates to a configuration monitoring and self-repairing method based on a PCIe to SRIO switching network. BACKGROUND
[0002] With the deepening of domestication, more and more embedded system solutions use domestic operating systems and domestic CPU chips. The Tianmian 3 operating system is an operating system specially designed for embedded systems, which has high reliability and high security, and has become an important part of the embedded system field. The Feiteng D2000 processor, as a domestic high-performance processor, has the advantages of low power consumption and high performance, but still has the following shortcomings:
[0003] The D2000 processor does not support the SRIO communication interface, and needs to use a bridging technology to convert its PCIe communication interface to an SRIO communication interface, which cannot efficiently monitor node devices and real-time repair the SRIO switching network.
[0004] The present application is proposed in view of the above technical defects. SUMMARY
[0005] The purpose of the present application is to provide a configuration monitoring and self-repairing method based on a PCIe to SRIO switching network, which is a configuration, monitoring and self-repairing method based on a PCIe to SRIO switching network on a D2000 processor and a Tianmian 3 operating system platform, which can be developed using C language and can realize the routing, rate fast configuration, node state real-time monitoring and fault self-repairing functions of the SRIO network.
[0006] The technical solution of the present application is:
[0007] A configuration monitoring and self-repairing method based on a PCIe to SRIO switching network, comprising:
[0008] Step one, design a json file to describe the topology information and configuration information of the SRIO switching system in the format of a json file;
[0009] Store the json file in the file system of the program target machine for calling during program running;
[0010] Step two, design a periodic node state monitoring task:
[0011] Parse the json file, create an SRIO switch node linked list, and configure the routing, rate, and port opening or closing information of each SRIO switch node;
[0012] Periodically enumerate SRIO switch nodes, dynamically configure the routing and port enablement of each SRIO switch node, wherein when the SRIO switch nodes are enumerated for the first time, the configuration information of the json file is read, the state registers of each SRIO switch node are queried according to the node order, and it is judged in turn whether the link between each SRIO switch node is normal, if not, the SRIO switch node is repaired;
[0013] For link exceptions between SRIO switch nodes, only the upstream SRIO switch port is configured to perform a reset operation.
[0014] Step three, create a TCP server task for the TCP client to view the state information of the SRIO switch network in real time.
[0015] According to at least one embodiment of the present application, the SRIO switch node information is updated to the node state record information table in the above-mentioned PCIe-to-SRIO switch network configuration monitoring and self-repairing method, which is provided for the TCP client to view in real time.
[0016] According to at least one embodiment of the present application, the SRIO switch node information in the above-mentioned PCIe-to-SRIO switch network configuration monitoring and self-repairing method includes node name, port enablement, port rate, port width, parent node, child node, next node, port routing, and node interconnection relationship.
[0017] According to at least one embodiment of the present application, the SRIO switch node information in the above-mentioned PCIe-to-SRIO switch network configuration monitoring and self-repairing method includes node name, port enablement, port rate, port width, parent node, child node, next node, port routing, and node interconnection relationship.
[0018] Determine whether the downstream SRIO switch node in the link between the SRIO switch nodes supports repair, if not, isolate the upstream SRIO switch port, if it supports repair, change the routing of the upstream SRIO switch port to packet loss and attempt repair, send a link-request packet to request a reset from the opposite end, reset the SRIO switch node port, if the upstream SRIO switch port is repaired successfully, restore the routing and continue to use the upstream SRIO switch port, otherwise isolate the upstream SRIO switch port and no longer use it.
[0019] According to at least one embodiment of the present application, the state information structure of the state record information table in the above-mentioned PCIe-to-SRIO switch network configuration monitoring and self-repairing method includes switch routing, rate, and register information.
[0020] According to at least one embodiment of this application, the above-described configuration monitoring and self-healing method for a PCIe-to-SRIO switching network runs on a Phytium processor D2000, the operating system is Tianmai 3, it is developed and implemented using C language, the IDE tool for compiling C code is ACORE_IDEv1.0.0.0, the FPGA is used to perform the PCIe-to-SRIO function, and the SRIO switch uses the domestic NRS1800 switching chip.
[0021] This application has at least the following beneficial technical effects:
[0022] A configuration monitoring and self-healing method based on PCIe to SRIO switching networks is provided:
[0023] Centralized routing configuration of the SRIO switching network has been implemented, which effectively decouples the previous distributed routing configuration of each module.
[0024] It effectively solves the problem that the failure of one node in an SRIO switching network can lead to the failure of the entire network or even processor crashes;
[0025] The status information of each SRIO switch node can be viewed intuitively using a host computer, which facilitates system-level troubleshooting. Attached Figure Description
[0026] Figure 1 This is a schematic diagram of the periodic node status monitoring task provided in an embodiment of this application;
[0027] Figure 2 This is a schematic diagram of the node anomaly repair process provided in the embodiments of this application.
[0028] To better illustrate this embodiment, some content in the accompanying drawings may be omitted. They are for illustrative purposes only and should not be construed as limiting the scope of this application. Detailed Implementation
[0029] To make the technical solution and advantages of this application clearer, the technical solution of this application will be described in a clearer and more complete manner below with reference to the accompanying drawings. It should be understood that the specific embodiments described herein are only some embodiments of this application, and are only used to explain this application, not to limit this application. It should be noted that, for ease of description, only the parts related to this application are shown in the accompanying drawings, and other related parts can be referred to the general design.
[0030] Furthermore, unless otherwise defined, the technical or scientific terms used in this application description shall have the ordinary meaning understood by one of ordinary skill in the art to which this application pertains. The word "comprising" as used in this application description indicates that the concept preceding the word encompasses the concepts listed following the word and their equivalents, without excluding other related concepts.
[0031] A configuration monitoring and self-healing method based on PCIe to SRIO switching network.
[0032] Step 1: Design a JSON file to describe the topology and configuration information of the SRIO switching system in JSON format.
[0033] Each SRIO switch node information includes node name, port enable, port speed, port width, parent node, child node, next node, port route, and node interconnection relationship.
[0034] Store the JSON file in the target machine's file system for the program to access during runtime.
[0035] Step 2: Design the periodic node status monitoring task, flowchart as follows Figure 1 As shown:
[0036] Parse the JSON file, create an SRIO switch node linked list, and configure the routing, speed, and port open or closed information for each SRIO switch node;
[0037] The SRIO switch nodes are periodically enumerated, and the routing and port enabling of each SRIO switch node are dynamically configured. When the SRIO switch nodes are enumerated for the first time, the configuration information in the JSON file is read, and the status register of each SRIO switch node is queried in the order of nodes. The link between each SRIO switch node is checked in turn to see if it is normal. If it is abnormal, the SRIO switch node is repaired and the SRIO switch node information is updated to the node status record information table.
[0038] Design a status information structure for the status log table, including switch routing, speed, and register information.
[0039] For link anomalies between SRIO switch nodes, only the upstream SRIO switch port is configured for reset operations to avoid the problem of cyclic repair between the two ports. A link anomaly repair process between SRIO switch nodes is designed, such as... Figure 2 As shown:
[0040] Determine whether the downstream SRIO switch node in the link between SRIO switch nodes supports repair. If it does not support repair, isolate the upstream SRIO switch port. If it supports repair, change the route of the upstream SRIO switch port to packet loss and attempt repair, send a link-request packet to request the other end to reset, reset the SRIO switch node port. If the upstream SRIO switch port is successfully repaired, restore the route and continue to use the upstream SRIO switch port; otherwise, isolate the upstream SRIO switch port and stop using it.
[0041] Step 3: Create a TCP server task so that TCP clients can view the status information of the SRIO switching network in real time.
[0042] The configuration monitoring and self-healing method for PCIe-to-SRIO switching networks disclosed in the above embodiments runs on a Phytium processor D2000, with the operating system being Tianmai 3, the IDE tool for compiling C code being ACORE_IDEv1.0.0.0, the PCIe-to-SRIO function being implemented using an FPGA, and the SRIO switch using the domestically produced NRS1800 switching chip.
[0043] The above embodiments disclose a configuration monitoring and self-healing method for PCIe-to-SRIO switching networks:
[0044] The system combines static and dynamic configuration: static node information of the SRIO switching network is written to a JSON file. During program initialization, the node information can be combined into a device list, and the routing, speed, and port open or closed information of each SRIO switch node can be configured. During the real-time enumeration of each SRIO switch node, the routing and port enablement can be dynamically configured to prevent backpressure on the link.
[0045] Fault isolation and automatic packet loss: When a link failure is encountered during link monitoring, the route of the faulty port is configured as 0xDF. Data packets routed to this port are automatically dropped to prevent data backpressure on the upstream link. At this time, it does not affect other normal ports of the SRIO switch, and can effectively isolate the fault.
[0046] Port Fault Detection and Repair: The status registers of each SRIO switch node are queried in sequence. When an abnormal port status register is encountered, port repair is performed. The abnormal port of the SRIO switch sends a link-request to reset the port of the peer device, and then performs a self-reset of the port. For link faults between SRIO switch nodes, only the upstream switch port is configured to perform the reset operation to avoid the problem of two ports being repaired in a loop.
[0047] Interactive viewing of switch topology and node information: Supports socket communication with a host computer, such as a Windows PC, to run TCP server tasks. The host computer can act as a client to request and interact with the system, and respond to its commands in real time, such as viewing the switch topology, checking the online status of each node, viewing the switch routing and speed, and the status register information of each node.
[0048] The technical solution of this application has been described in conjunction with the preferred embodiments shown in the accompanying drawings. Those skilled in the art should understand that the scope of protection of this application is obviously not limited to these specific embodiments. Without departing from the principles of this application, those skilled in the art can make equivalent changes or substitutions to the relevant technical features, and the technical solutions after these changes or substitutions will all fall within the scope of protection of this application.
Claims
1. A configuration monitoring and self-healing method based on a PCIe-to-SRIO switching network, characterized in that, include: Step 1: Design a JSON file to describe the topology and configuration information of the SRIO switching system in JSON format; Store the JSON file in the target machine's file system for the program to access at runtime; Step 2: Design the periodic node status monitoring task: Parse the JSON file, create an SRIO switch node linked list, and configure the routing, speed, and port open or closed information for each SRIO switch node; The SRIO switch nodes are periodically enumerated, and the routing and port enabling of each SRIO switch node are dynamically configured. When the SRIO switch nodes are enumerated for the first time, the configuration information of the JSON file is read, the status register of each SRIO switch node is queried in the order of the nodes, and the link between each SRIO switch node is checked in turn to see if it is normal. If it is abnormal, the SRIO switch node is repaired. For link anomalies between SRIO switch nodes, only configure the upstream SRIO switch port to perform a reset operation. Step 3: Create a TCP server task so that TCP clients can view the status information of the SRIO switching network in real time.
2. The configuration monitoring and self-healing method for PCIe-to-SRIO switching networks according to claim 1, characterized in that, Each SRIO switch node information includes node name, port enable, port speed, port width, parent node, child node, next node, port route, and node interconnection relationship.
3. The configuration monitoring and self-healing method for PCIe-to-SRIO switching networks according to claim 2, characterized in that, Update the SRIO switch node information to the node status record table for TCP clients to view in real time.
4. The configuration monitoring and self-healing method for PCIe-to-SRIO switching networks according to claim 3, characterized in that, Design a status information structure for the status log table, including switch routing, speed, and register information.
5. The configuration monitoring and self-healing method for PCIe-to-SRIO switching networks according to claim 4, characterized in that, The design process for repairing link anomalies between SRIO switch nodes is as follows: Determine whether the downstream SRIO switch node in the link between SRIO switch nodes supports repair. If it does not support repair, isolate the upstream SRIO switch port. If it supports repair, change the route of the upstream SRIO switch port to packet loss and attempt repair, send a link-request packet to request the other end to reset, reset the SRIO switch node port. If the upstream SRIO switch port is successfully repaired, restore the route and continue to use the upstream SRIO switch port; otherwise, isolate the upstream SRIO switch port and stop using it.
6. The configuration monitoring and self-healing method for PCIe-to-SRIO switching networks according to claim 5, characterized in that, It runs on a Phytium D2000 processor, uses the Tianmai 3 operating system, is developed and implemented in C language, and uses the ACORE_IDEv1.0.0.0 IDE tool to compile C code. It uses FPGA to perform PCIe to SRIO function, and the SRIO switch uses the domestic NRS1800 switching chip.