WO2024113997A1 - 一种fsi主控制器及其端口路由装置和方法 - Google Patents
一种fsi主控制器及其端口路由装置和方法 Download PDFInfo
- Publication number
- WO2024113997A1 WO2024113997A1 PCT/CN2023/115976 CN2023115976W WO2024113997A1 WO 2024113997 A1 WO2024113997 A1 WO 2024113997A1 CN 2023115976 W CN2023115976 W CN 2023115976W WO 2024113997 A1 WO2024113997 A1 WO 2024113997A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- port
- circuit
- output
- itself
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 239000000872 buffer Substances 0.000 claims abstract description 207
- 230000005540 biological transmission Effects 0.000 claims abstract description 112
- 230000000875 corresponding effect Effects 0.000 claims description 76
- 230000002596 correlated effect Effects 0.000 claims description 14
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 5
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 101000916289 Ctenocephalides felis Salivary antigen 1 Proteins 0.000 description 1
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6275—Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3018—Input queuing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3027—Output queuing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Definitions
- the present application relates to the technical field of data transmission, and in particular to an FSI main controller and a port routing device and method thereof.
- the FSI (Field Replaceable Unit Service Interface) protocol was proposed by IBM. It can provide service access to all chips in the system.
- the FSI interface has been successfully used in IBM servers for many years and can flexibly support processors to connect to the CPU (Central Processing Unit) and IBM's ASIC (Application Specific Integrated Circuit). It is one of the important interfaces in the BMC (Board Management Controller).
- the FSI controller used by some BMC chip manufacturers uses the OPB (On-chip Peripheral Bus) interface protocol, which is mainly used in IBM's core connect bus architecture.
- OPB On-chip Peripheral Bus
- the internal architecture of the FSI main controller is unknown, which is equivalent to a black box structure. If it is used, it needs to be self-developed.
- the FSI main controller is used in ARM's AMBA (Advanced Microcontroller Bus Architecture) bus architecture, various bus interface bridges need to be used for conversion, which reduces the transmission efficiency.
- AMBA Advanced Microcontroller Bus Architecture
- each bridge module and the corresponding port sending module are fixedly connected, which has low flexibility and is not conducive to ensuring the stability and efficiency of data transmission.
- the purpose of the present application is to provide an FSI main controller and its port routing device and method, so as to effectively realize flexible port routing of the FSI main controller and ensure the stability and efficiency of data transmission.
- a port routing device of an FSI main controller comprising:
- N input buffer circuits are respectively connected to N bridge modules in the field replaceable unit service interface FSI main controller, and K input buffers are set in any one of the input buffer circuits, and any one of the input buffer circuits is configured to: when receiving data sent by the bridge module connected to itself, determine the corresponding virtual channel number according to the data type, and store the received data in the virtual channel corresponding to the virtual channel number. In the input buffer corresponding to the channel number;
- An arbitration circuit connected to N input buffer circuits, M output port circuits, and a cross switch circuit is configured to select a data transmission request with the highest priority among the data transmission requests for the virtual channel based on a first priority rule when any one virtual channel of any one output port circuit is in an available state and there is a data transmission request for the virtual channel, and control the cross switch circuit so that the corresponding input buffer circuit sends the data content pointed to by the selected data transmission request to the output buffer corresponding to the virtual channel through the cross switch circuit;
- K output buffers are set in any one of the output port circuits, and any one of the output port circuits is configured to: send data in the output buffer to the port connected to itself; wherein K, N and M are all positive integers not less than 2.
- the input buffer circuit is configured as:
- the data type is determined according to the address information, and the virtual channel number corresponding to the data type is determined, and the received data is stored in the input buffer corresponding to the virtual channel number.
- the data types include: a first data type indicating that the address information is an absolute address, a second data type indicating that the address information is a relative address, and a third data type indicating that the address information is an identical address.
- the first priority rules include:
- the priority of the data transmission request is positively correlated with the existence duration of the data transmission request and positively correlated with the target interval duration;
- the target interval duration indicates the time interval between the last time the input buffer circuit that initiates the data transmission request sent data and the current time.
- the first priority rule includes: for each output port circuit, establishing a priority list with the output port circuit, wherein the priority list stores N input buffer circuits; the priority list is used to move the input buffer circuit to the end of the priority list when the output port circuit receives data from an input buffer circuit, so as to reduce the priority of the output port circuit to the lowest.
- the output port circuit is further configured as:
- the output port circuit is configured as:
- the data in the output buffer is sent to the port connected to itself according to the preset rule.
- the output port circuit is configured as:
- the data in the output buffer is sent to the port connected to itself according to the second priority rule.
- the output port circuit is configured as:
- the output buffer with the largest amount of data among the K output buffers is used as the output buffer with the highest priority
- the output port circuit is configured as:
- the K output buffers are sequentially used as the output buffers with the highest priority
- the output port circuit is further configured as:
- the routing object of the data is a port connected to itself
- an operation of sending the data in the output buffer to the port connected to itself is performed to send the data to the port connected to itself;
- the routing object of the data is not a port connected to itself, the data is cached and a preset error reporting strategy is executed.
- execute the preset error reporting strategy including:
- determining whether the port connected to the device is in an available state includes:
- the arbitration circuit is further configured as:
- the cell value corresponding to any one output port circuit is less than 0, the cell value corresponding to the output port circuit is re-read from the FSI slave controller connected to the output port circuit.
- the cross switch circuit is fully connected to the N-way input buffer circuits, and the cross switch circuit is fully connected to the M-way output port circuits.
- a port routing method for an FSI main controller wherein N input buffer circuits are respectively connected to N bridge modules in the FSI main controller; an arbitration circuit is connected to the N input buffer circuits, M output port circuits, and a cross switch circuit; K input buffers are set in any one input buffer circuit, and K output buffers are set in any one output port circuit;
- the port routing method for the FSI main controller includes:
- any input buffer circuit When any input buffer circuit receives data sent by the bridge module connected to itself, it determines the corresponding virtual channel number according to the data type and stores the received data in the virtual channel. In the input buffer corresponding to the number;
- the arbitration circuit selects a data transmission request with the highest priority among the data transmission requests for the virtual channel based on the first priority rule, and controls the cross switch circuit so that the corresponding input buffer circuit sends the data content pointed to by the selected data transmission request to the output buffer corresponding to the virtual channel through the cross switch circuit;
- the output port circuit sends the data in the output buffer to the port connected to itself;
- K, N and M are all positive integers not less than 2.
- the method before determining the corresponding virtual channel number according to the data type, the method further includes: dividing the data type according to the address field in the data.
- the output port circuit sends the data in the output buffer to the port connected to itself, including: the output port circuit sends the data in its K output buffers to the port connected to itself by polling the K output buffers.
- the first priority rule includes: for any data transmission request, the priority of the data transmission request is positively correlated with the existence duration of the data transmission request and positively correlated with the target interval duration; wherein, the target interval duration represents the time interval between the last time the input buffer circuit that initiated the data transmission request sent data and the current time.
- An FSI main controller includes the port routing device of the FSI main controller as described above.
- N input buffer circuits are respectively connected to N bridge modules in the FSI main controller, so that all N input buffer circuits can receive data.
- K input buffers are set in any one input buffer circuit, and any one input buffer circuit is configured to: when receiving data sent by the bridge module connected to itself, determine the corresponding virtual channel number according to the data type, and store the received data in the input buffer corresponding to the virtual channel number.
- the arbitration circuit When any virtual channel of any output port circuit is in an available state and there is a data transmission request for the virtual channel, the arbitration circuit will select the data transmission request with the highest priority among the data transmission requests for the virtual channel based on the first priority rule, and control the cross switch circuit so that the corresponding input buffer circuit sends the data content pointed to by the selected data transmission request to the output cache corresponding to the virtual channel through the cross switch circuit. It can be seen that for the data transmission request from any input buffer circuit, it can be sent to the output cache of any output port circuit through the cross switch circuit, so the scheme of the present application effectively realizes the flexible port routing of the FSI master controller. Finally, any output port circuit can send the data in its own output cache to the port connected to itself. And it can be seen that since the arbitration circuit controls the cross switch circuit based on the first priority rule to realize data transmission, it is also conducive to ensuring the stability and efficiency of data transmission, and can ensure that important data is sent first and ensure the stable operation of the business.
- the solution of the present application can effectively implement flexible port routing of the FSI main controller, ensuring the stability and efficiency of data transmission.
- FIG1 is a schematic diagram of the structure of a port routing device of an FSI main controller in the present application
- FIG2 is a schematic diagram of the architecture of an FSI main controller in one embodiment of the present application.
- FIG3 is a flowchart of an implementation of a port routing method of an FSI master controller in the present application.
- the core of this application is to provide a port routing device for an FSI main controller, which can effectively realize flexible port routing of the FSI main controller and ensure the stability and efficiency of data transmission.
- FIG. 1 is a schematic diagram of the structure of a port routing device of an FSI main controller in the present application.
- the port routing device of the FSI main controller may include:
- N input buffer circuits 10 are respectively connected to N bridge modules in the FSI main controller, and K input buffers are set in any one of the input buffer circuits 10, and any one of the input buffer circuits 10 is configured to: when receiving data sent by the bridge module connected to itself, determine the corresponding virtual channel number according to the data type, and store the received data in the input buffer corresponding to the virtual channel number;
- the arbitration circuit 20 connected to the N-way input buffer circuit 10, the M-way output port circuit 40, and the cross switch circuit 30 is configured to select the data transmission request with the highest priority among the data transmission requests for the virtual channel based on the first priority rule when any one virtual channel of any one output port circuit 40 is in an available state and there is a data transmission request for the virtual channel, and control the cross switch circuit 30 so that the corresponding input buffer circuit 10 sends the data content pointed to by the selected data transmission request to the output buffer corresponding to the virtual channel through the cross switch circuit 30;
- K output port circuits 40 There are M output port circuits 40, and K output buffers are set in any one of the output port circuits 40, and any one of the output port circuits 40 is configured to: send data in the output buffer to the port connected to itself; wherein K, N and M are all positive integers not less than 2.
- the port routing device of the present application is set in the FSI main controller, and the FSI main controller can be used in occasions such as BMC, server, etc. Since the present application independently designs the FSI main controller and designs the port routing device therein, the FSI main controller of the present application solution can directly use the AMBA bus architecture, without using the FSI of IBM's OPB interface as in some traditional solutions. When using a controller, it is necessary to first perform AMBA to OPB conversion through a bus interface bridge.
- N bridge modules can be provided in the FSI main controller, so N input buffer circuits 10 can be provided in the port routing device, which are respectively connected to the N bridge modules in the FSI main controller.
- FIG2 is a schematic diagram of the architecture of the FSI main controller in a specific implementation, and FIG2 shows that the bridge modules 1 to 3 of the FSI main controller are respectively connected to the CPU (Central Processing Unit) of the previous stage and two DMA (Direct Memory Access) devices.
- CPU Central Processing Unit
- DMA Direct Memory Access
- N can be set and adjusted as needed, but is usually a positive integer not less than 2.
- K input buffers are set, and K is also a positive integer not less than 2.
- K is also a positive integer not less than 2.
- any input buffer circuit 10 when any input buffer circuit 10 receives data sent by the bridge module connected to itself, it can determine the corresponding virtual channel number according to the data type, and then store the received data in the input buffer corresponding to the virtual channel number.
- the total number of data types is the total number of virtual channels, that is, the value of K.
- the data type can be divided according to the address information, that is, according to the address segment in the data.
- the input buffer circuit 10 can be configured as follows:
- the data type is determined according to the address information, and the virtual channel number corresponding to the data type is determined, and the received data is stored in the input buffer corresponding to the virtual channel number.
- data types are divided according to different address types, which is a more convenient implementation in practical applications.
- address types which is a more convenient implementation in practical applications.
- the data types may include: a first data type indicating that the address information is an absolute address, a second data type indicating that the address information is a relative address, and a third data type indicating that the address information is the same address.
- the absolute address is ABS_ADR (absolute address)
- the relative address is REL_ADR (relative address)
- SAME_ADR standard address
- the data type is set to three types, so the total number of virtual channels K is also equal to 3, that is, for each input buffer circuit 10, three input caches need to be set in the input buffer circuit 10.
- three FIFOs can be set in each input buffer circuit 10 to serve as the three input caches in the input buffer circuit 10.
- the address type of the data is ABS_ADR, and the address information of the data can be determined.
- the virtual channel number corresponding to the information is VC1, so the data can be stored in the input cache corresponding to the virtual channel number VC1, that is, stored in the first FIFO of the input buffer circuit 10.
- the input buffer circuit 10 receives data sent by the bridge module connected to itself, and the address type of the data is REL_ADR, it can be determined that the virtual channel number corresponding to the address information of the data is VC2. Therefore, the data can be stored in the input cache corresponding to the virtual channel number VC2, that is, stored in the second FIFO of the input buffer circuit 10.
- the use of the above virtual channel technology can effectively prevent the blocking of the data channel.
- the present application sets a cross switch circuit 30. It is understandable that the cross switch circuit 30 needs to be fully connected with N input buffer circuits 10 and M output port circuits 40 to ensure flexible data routing.
- the cross switch circuit 30 can change its switch state under the control of the arbitration circuit 20 to achieve data routing.
- any one virtual channel of any one output port circuit 40 when any one virtual channel of any one output port circuit 40 is in an available state, it indicates that data is allowed to be sent to the output buffer corresponding to the one virtual channel of the output port circuit 40. If there is a data transmission request for the virtual channel, it indicates that the input buffer of at least one input buffer circuit 10 has initiated a data transmission request.
- the data transmission request can be directly executed, that is, the data in the input cache that initiates the data transmission request is directly sent to the output cache corresponding to the virtual channel of the output port circuit 40.
- data A is stored in the first FIFO of the first input buffer circuit 10
- data B is stored in the third FIFO of the second input buffer circuit 10
- the first FIFO of the first input buffer circuit 10 requests to send data A to the first virtual channel of the first output port circuit 40, that is, to the first FIFO of the first output port circuit 40
- the third FIFO of the second input buffer circuit 10 requests to send data B to the third virtual channel of the second output port circuit 40, that is, to the third FIFO of the second output port circuit 40
- data A and data B can be sent at the same time.
- data A is stored in the first FIFO of the first input buffer circuit 10
- data B is stored in the first FIFO of the second input buffer circuit 10.
- the first FIFO of the first input buffer circuit 10 requests to send data A to the first virtual channel of the first output port circuit 40, that is, to the first FIFO of the first output port circuit 40
- the first FIFO of the second input buffer circuit 10 requests to send data A to the first virtual channel of the first output port circuit 40, that is, to the first FIFO of the first output port circuit 40.
- the FIFO requests to send data B to the first virtual channel of the first output port circuit 40 that is, data B also needs to be sent to the first FIFO of the first output port circuit 40, so there is a conflict, and it is necessary to select the data transmission request with the highest priority among the data transmission requests for the virtual channel based on the first priority rule.
- the data transmission request with the highest priority among the data transmission requests for the virtual channel is selected as the request of the first FIFO of the first input buffer circuit 10, so the arbitration circuit 20 will control the cross switch circuit 30 so that the first FIFO of the first input buffer circuit 10 sends the data content A pointed to by the data transmission request to the output cache corresponding to the first virtual channel of the first output port circuit 40 through the cross switch circuit 30, that is, to a FIFO of the first output port circuit 40.
- the first priority rule can be set and adjusted according to actual needs.
- the first priority rule may include:
- the priority of the data transmission request is positively correlated with the existence duration of the data transmission request and positively correlated with the target interval duration;
- the target interval duration indicates the time interval between the last time the input buffer circuit 10 that initiated the data transmission request sent data and the current time.
- This implementation method takes into account that, for any data transmission request, if the existence duration of the data transmission request is relatively long, the data pointed to by the data transmission request should be sent in a timely manner to avoid the accumulation of some data for a long time. Therefore, in this implementation method, the priority of the data transmission request is positively correlated with the existence duration of the data transmission request.
- the priority of the input buffer circuit 10 should be reduced, that is, the priority of the data transmission request is positively correlated with the target interval time.
- the target interval time represents the time interval between the last time the input buffer circuit 10 that initiates the data transmission request sent data and the current time, that is, the longer the target interval time, the longer the input buffer circuit 10 that initiates the data transmission request has not sent data.
- the priority setting of the aforementioned implementation method takes various factors into consideration, which is helpful to avoid long-term accumulation of data and to ensure the stability of data transmission.
- the first priority rule may be implemented using a relatively simple priority list.
- a priority list of the output port circuit 40 may be established, and the priority list includes N input buffer circuits 10.
- the output port circuit 40 receives data from a certain input buffer circuit 10
- the input buffer circuit 10 is moved to the end of the priority list to reduce its priority to the lowest.
- the M output port circuits 40 can be connected to M FSI slave controllers through corresponding ports, where M is a positive integer not less than 2. Since the present application adopts virtual channel technology to realize data transmission, K output buffers are also required to be set in any 1 output port circuit 40 to store data from different virtual channels respectively.
- Any output port circuit 40 can send data in the output buffer to the port connected to itself.
- the data in its K output buffers can be sent to the port connected to itself in a manner of polling K output buffers.
- the output port circuit 40 may be configured as:
- the data in the output buffer is sent to the port connected to itself according to the preset rule.
- This implementation method takes into account that by judging whether the port connected to itself is in an available state, the subsequent device can be determined, that is, whether the subsequent FSI slave controller can effectively receive data. Therefore, when it is judged that the port connected to itself is in an unavailable state, it means that the corresponding FSI slave controller is temporarily unable to receive new data, so the output port circuit 40 will not send data. When it is judged that the port connected to itself is in an available state, the data in the output buffer will be sent to the port connected to itself, and then sent to the corresponding FSI slave controller. This implementation method is conducive to ensuring the stability of data transmission and is not prone to errors.
- judging whether the port connected to itself is in an available state it can be judged by the cell value.
- judging whether the port connected to itself is in an available state can include:
- the arbitration circuit 20 can determine the cell value of each FSI slave controller. In some cases, the number of bits corresponding to one cell value can be determined, so the cell value can be used to represent the size of the remaining storage space of the FSI slave controller. For example, if the port connected to a certain output port circuit 40 is port 1, that is, port1, and port1 is connected to FSI slave controller 1, then the arbitration circuit 20 can send the cell value of FSI slave controller 1 to the output port circuit 40.
- the output port circuit 40 can determine that the port connected to itself is in an available state, that is, in this case, it is determined that the output port port1 is in an available state. On the contrary, when the cell value of FSI slave controller 1 is 0, the output port circuit 40 can determine that the port port1 connected to itself is in an unavailable state.
- This implementation method uses the arbitration circuit 20 to determine the cell value of each FSI slave controller.
- FIG1 also adopts this implementation method, that is, the cell input in FIG1 indicates that each FSI slave controller can periodically send its own cell value to the arbitration circuit 20.
- FIG1 also shows a cell output, which indicates that the arbitration circuit 20 can send the cell value of each FSI slave controller to other required devices.
- FIG1 for the convenience of viewing, for the N-way input buffer circuit 10, only one of them is shown to be connected to the arbitration circuit 20. Similarly, for the M-way output port circuit 40, only one of them is shown to be connected to the arbitration circuit 20.
- the output port circuit 40 can determine the output port that is related to itself in other ways. Whether the connected port is available does not affect the implementation of this application.
- the arbitration circuit 20 may also be configured as follows:
- the cell value corresponding to any one output port circuit 40 is less than 0, the cell value corresponding to the output port circuit 40 is re-read from the FSI slave controller connected to the output port circuit 40 .
- the cell value corresponding to a certain output port circuit 40 indicates the cell value of the FSI slave controller connected to the output port circuit 40. If the cell value of any FSI slave controller is less than 0, the arbitration circuit 20 will re-read the cell value of the FSI slave controller from the FSI slave controller.
- the data in the output buffer is sent to the port connected to itself according to the second priority rule.
- the output port circuit 40 also sends data based on the priority, which is called the second priority rule. Sending data based on the priority is conducive to further ensuring the efficiency and reliability of data transmission.
- the content of the second priority rule can be set as needed.
- the output port circuit 40 is configured as follows:
- the output buffer with the largest amount of data among the K output buffers is selected as the output buffer with the highest priority
- the output buffer with the largest amount of data in the output port circuit 40 is sent first, which is helpful to avoid data accumulation, and the priority rule is set relatively simple and easy to implement.
- more complex priority rules can be set according to actual needs, for example, some types of data can be sent first.
- the output port circuit 40 may be configured as:
- the K output buffers are sequentially used as the output buffers with the highest priority
- a sequential sending method is adopted, that is, the K output buffers are sequentially used as the output buffers with the highest priority, so that the data in the K output buffers are sequentially sent.
- the output port circuit 40 may also be configured as:
- routing object of the data is a port connected to itself
- the operation of sending the data in the output buffer to the port connected to itself is performed to send the data to the port connected to itself.
- the routing object of the data is not a port connected to itself, the data is cached and a preset error reporting strategy is executed.
- the data stored in the output cache of the output port circuit 40 should be routed to the corresponding FSI slave controller through the port connected to the output port circuit 40. That is, under normal circumstances, before sending any data in the output cache to the port connected to itself, it can be determined based on the routing field in the data to be sent that the routing object of the data is consistent with the port connected to itself.
- the routing object of the data when it is determined that the routing object of the data is not the port connected to itself, it may be that there is an error in the data storage process or an error in the previous data transmission process, such as a crossbar switch error causing the data that should have been sent to other output port circuits 40 to be mistakenly sent to the output port circuit 40. Therefore, in this implementation, for abnormal data, the data will be cached first, and a preset error reporting strategy will be executed to avoid continued transmission of erroneous data.
- the content of the preset error reporting strategy can be selected according to actual needs.
- executing the preset error reporting strategy may include:
- the output port circuit 40 can directly or indirectly feedback an error prompt through other device structures, so that the CPU resends the data to the FSI main controller, that is, retransmits the erroneous data.
- the preset error reporting strategy for example, the previously cached abnormal data can be deleted.
- the output port circuit 40 is further configured as:
- the output port circuit 40 may also choose to feed back a prompt indicating that the data sending is completed to the previous device that sent the data.
- the above of this application describes the process of the FSI master controller routing data from the previous-stage CPU and other devices to the next-stage FSI slave controller.
- data can also be sent to the previous-stage CPU and other devices through the FSI slave controller and the FSI master controller.
- the FSI master controller can implement the data transmission process through the corresponding structure, for example, by adopting the same or similar structure as the above of this application, and this application will not elaborate on this.
- N input buffer circuits 10 are respectively connected to N bridge modules in the FSI main controller, so that N input buffer circuits 10 can receive data.
- K input buffers are set in any one input buffer circuit 10, and any one input buffer circuit 10 is configured to: when receiving data sent by the bridge module connected to itself, determine the corresponding virtual channel number according to the data type, and store the received data in the input buffer corresponding to the virtual channel number. It can be seen that the present application realizes data transmission through virtual channel technology, which can effectively prevent link blocking and is also conducive to ensuring the stability and efficiency of data transmission.
- the arbitration circuit 20 When any one virtual channel of any one output port circuit 40 is in an available state and there is a data transmission request for the virtual channel, the arbitration circuit 20 will select the data transmission request with the highest priority among the data transmission requests for the virtual channel based on the first priority rule, and control the cross switch circuit 30 so that the corresponding input buffer circuit 10 sends the data content pointed to by the selected data transmission request to the output buffer corresponding to the virtual channel through the cross switch circuit 30. It can be seen that for the data transmission request from any input buffer circuit 10, it can be sent to the output buffer of any output port circuit 40 through the cross switch circuit 30, so the scheme of the present application effectively realizes the flexible port routing of the FSI master controller. Finally, any one output port circuit 40 can send the data in its own output buffer to the port connected to itself.
- the arbitration circuit 20 controls the cross switch circuit 30 based on the first priority rule to realize data transmission, it is also conducive to ensuring the stability and efficiency of data transmission, and can ensure that important data is sent first, and ensure the stable operation of the business.
- the solution of the present application can effectively implement flexible port routing of the FSI main controller, ensuring the stability and efficiency of data transmission.
- the embodiment of the present application further provides a port routing method of the FSI main controller, which can be referred to in correspondence with the above.
- N input buffer circuits are respectively connected to N bridge modules in the FSI main controller; the arbitration circuit is connected to the N input buffer circuits, the M output port circuits, and the cross switch circuit; K input buffers are set in any one input buffer circuit, and K output buffers are set in any one output port circuit.
- the port routing method of the FSI main controller may include the following steps:
- Step S101 when any one input buffer circuit receives data sent by a bridge module connected to itself, it determines a corresponding virtual channel number according to the data type, and stores the received data in an input buffer corresponding to the virtual channel number;
- Step S102 when any one virtual channel of any one output port circuit is in an available state and there is a data transmission request for the virtual channel, the arbitration circuit selects the data transmission request with the highest priority among the data transmission requests for the virtual channel based on the first priority rule, and controls the cross switch circuit so that the corresponding input buffer circuit sends the data content pointed to by the selected data transmission request to the output buffer corresponding to the virtual channel through the cross switch circuit;
- Step S103 the output port circuit sends the data in the output buffer to the port connected to itself;
- K, N and M are all positive integers not less than 2.
- step S101 includes:
- any input buffer circuit When any input buffer circuit receives data sent by the bridge module connected to itself, it determines the data type according to the address information, determines the virtual channel number corresponding to the data type, and stores the received data in the input buffer corresponding to the virtual channel number.
- the data types include: a first data type indicating that the address information is an absolute address, a second data type indicating that the address information is a relative address, and a third data type indicating that the address information is an identical address.
- the first priority rule includes:
- the priority of the data transmission request is positively correlated with the existence duration of the data transmission request and positively correlated with the target interval duration;
- the target interval duration indicates the time interval between the last time the input buffer circuit that initiates the data transmission request sent data and the current time.
- it also includes:
- the output port circuit After sending the data in the output buffer to the port connected to itself, the output port circuit feeds back a prompt of data sending completion to the preceding device that sent the data.
- step S103 includes:
- the output port circuit determines whether the port connected to itself is in an available state
- the data in the output buffer is sent to the port connected to itself according to the preset rule.
- step S103 includes:
- the output port circuit determines whether the port connected to itself is in an available state
- the data in the output buffer is sent to the port connected to itself according to the second priority rule.
- sending the data in the output buffer to the port connected to itself includes:
- the K output buffers with the largest amount of data are selected as the output buffer with the highest priority
- sending the data in the output buffer to the port connected to itself includes:
- the K output buffers are sequentially used as the output buffers with the highest priority
- it also includes:
- the output port circuit Before sending any data in the output buffer to the port connected to itself, the output port circuit determines whether the routing object of the data is the port connected to itself according to the routing field in the data to be sent;
- the routing object of the data is a port connected to itself
- an operation of sending the data in the output buffer to the port connected to itself is performed to send the data to the port connected to itself;
- the routing object of the data is not a port connected to itself, the data is cached and a preset error reporting strategy is executed.
- executing a preset error reporting strategy includes:
- determining whether a port connected to itself is in an available state includes:
- it also includes:
- the arbitration circuit determines that the cell value corresponding to any one output port circuit is less than 0, the arbitration circuit re-reads the cell value corresponding to the output port circuit from the FSI slave controller connected to the output port circuit.
- the embodiments of the present application also provide an FSI master controller, which may include a port routing device of the FSI master controller as in any of the above embodiments, which may be referred to in correspondence with the above.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种FSI主控制器及其端口路由装置和方法,应用于数据传输技术领域,包括:N路输入缓冲电路被配置为在接收到与自身连接的桥接模块发送的数据时,根据数据类型以虚拟通道的方式将数据存储至输入缓存中;仲裁电路被配置为在任意1路输出端口电路的任1虚拟通道为可用状态,且存在针对该虚拟通道的数据传输请求时,基于第一优先级规则选取出最高优先级的数据传输请求并进行交叉开关电路的控制,以使得相应的输入缓冲电路将数据发送至相应的输出缓存中;输出端口电路被配置为将输出缓存中的数据发送至与自身相连接的端口。应用本申请的方案,可以有效地实现FSI主控制器灵活的端口路由,保障了数据传输的稳定性和效率。
Description
相关申请的交叉引用
本申请要求于2022年11月30日提交中国专利局,申请号为202211518337.2,申请名称为“一种FS I主控制器及其端口路由装置和方法”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及数据传输技术领域,特别是涉及一种FSI主控制器及其端口路由装置和方法。
FSI(Field Replaceable Unit Service Interface,现场可更换单元服务接口)协议由IBM提出,可以对系统中所有芯片进行服务访问,FSI接口在IBM服务器中已经成功使用多年,可以灵活支持处理器连接到CPU(Central Processing Unit,中央处理器)和IBM的ASIC(Application Specific Integrated Circuit,专用集成电路)。是BMC(Board Management Controller,基板管理控制器)中的重要接口之一。
目前,有BMC芯片厂家使用的FS I控制器使用的是OPB(On-chip Peripheral Bus,片上外设总线)接口协议,主要应用于IBM的core connect总线架构下,但是FSI主控制器的内部架构是未知的,即相当于是黑盒结构,如果使用则需要自研。如果将该FSI主控制器使用在ARM的AMBA(Advanced Microcontroller Bus Architecture,高级微控制器总线架构)总线架构下,需要使用各种总线接口桥的转换,传输效率降低。
目前的一些自研FSI主控制器的设计中,是将其中的各个桥接模块和相应的端口发送模块进行固定连接,灵活性较低,也不利于保障数据传输的稳定性和效率。
综上所述,如何有效地实现FSI主控制器灵活的端口路由,保障数据传输的稳定性和效率,是目前本领域技术人员急需解决的技术问题。
发明内容
本申请的目的是提供一种FSI主控制器及其端口路由装置和方法,以有效地实现FSI主控制器灵活的端口路由,保障数据传输的稳定性和效率。
为解决上述技术问题,本申请提供如下技术方案:
一种FSI主控制器的端口路由装置,包括:
分别与现场可更换单元服务接口FSI主控制器中的N个桥接模块连接的N路输入缓冲电路,任意1路输入缓冲电路中均设置了K个输入缓存,且任意1路输入缓冲电路均被配置为:在接收到与自身连接的桥接模块发送的数据时,根据数据类型确定出相对应的虚拟通道编号,并将接收的数据存储在与虚拟通
道编号相对应的输入缓存中;
与N路输入缓冲电路,M路输出端口电路,以及交叉开关电路均连接的仲裁电路,被配置为在任意1路输出端口电路的任意1个虚拟通道为可用状态,且存在针对该虚拟通道的数据传输请求时,基于第一优先级规则选取出针对该虚拟通道的数据传输请求中的最高优先级的数据传输请求,并进行交叉开关电路的控制,以使得相应的输入缓冲电路将选取出的数据传输请求所指向的数据内容通过交叉开关电路发送至该虚拟通道对应的输出缓存中;
交叉开关电路;
M路输出端口电路,任意1路输出端口电路中均设置了K个输出缓存,且任意1路输出端口电路均被配置为:将输出缓存中的数据发送至与自身相连接的端口;其中,K,N以及M均为不小于2的正整数。
可选的,输入缓冲电路被配置为:
在接收到与自身连接的桥接模块发送的数据时,根据地址信息确定出数据类型,并确定出与数据类型相对应的虚拟通道编号,并将接收的数据存储在与虚拟通道编号相对应的输入缓存中。
可选的,数据类型包括:表示地址信息为绝对地址的第一数据类型,表示地址信息为相对地址的第二数据类型,以及表示地址信息为相同地址的第三数据类型。
可选的,第一优先级规则包括:
针对任意1个数据传输请求,该数据传输请求的优先级与该数据传输请求的存在时长呈正相关,与目标间隔时长呈正相关;
其中,目标间隔时长表示的是发起该数据传输请求的输入缓冲电路上一次发送数据的时刻与当前时刻的时间间隔。
可选的,第一优先级规则包括:对于每一路输出端口电路,建立与输出端口电路的优先级列表,其中,优先级列表中存储了N路输入缓冲电路;优先级列表用于在输出端口电路接收了源自一路输入缓冲电路的数据时,将输入缓冲电路移动到优先级列表中的末尾,使输出端口电路的优先级降为最低。
可选的,输出端口电路还被配置为:
在将输出缓存中的数据发送至与自身相连接的端口之后,向发送该数据的前级设备反馈数据发送完成的提示。
可选的,输出端口电路被配置为:
判断与自身相连接的端口是否为可用状态;
在与自身相连接的端口为可用状态的情况下,则按照预设规则,将输出缓存中的数据发送至与自身相连接的端口。
可选的,输出端口电路被配置为:
判断与自身相连接的端口是否为可用状态;
在与自身相连接的端口为可用状态的情况下,则按照第二优先级规则,将输出缓存中的数据发送至与自身相连接的端口。
可选的,输出端口电路被配置为:
判断与自身相连接的端口是否为可用状态;
在与自身相连接的端口为可用状态的情况下,则将K个输出缓存中数据量最多的作为最高优先级的输出缓存;
将最高优先级的输出缓存中的数据发送至与自身相连接的端口。
可选的,输出端口电路被配置为:
判断与自身相连接的端口是否为可用状态;
在与自身相连接的端口为可用状态的情况下,则将K个输出缓存依次作为最高优先级的输出缓存;
将当前最高优先级的输出缓存中的数据发送至与自身相连接的端口。
可选的,输出端口电路还被配置为:
在将任意1个输出缓存中的数据发送至与自身相连接的端口之前,根据待发送的该数据中的路由字段,判断该数据的路由对象是否为与自身相连接的端口;
在该数据的路由对象是与自身相连接的端口的情况下,则执行将输出缓存中的数据发送至与自身相连接的端口的操作,以将该数据发送至与自身相连接的端口;
在该数据的路由对象不是与自身相连接的端口的情况下,则缓存该数据,并执行预设的报错策略。
可选的,执行预设的报错策略,包括:
向发送该数据的前级设备反馈错误提示,以使前级设备重新将该数据发送至FSI主控制器。
可选的,判断与自身相连接的端口是否为可用状态,包括:
接收由仲裁电路发送的表示与输出端口电路自身相连接的端口对应的FSI从控制器的剩余存储空间大小的信元值;
判断信元值是否大于0;
在信元值大于0的情况下,则确定出与自身相连接的端口为可用状态,在信元值小于或者等于0的情况下,确定出与自身相连接的端口为不可用状态。
可选的,仲裁电路还被配置为:
当判断出对应于任意1路输出端口电路的信元值小于0时,从与该输出端口电路连接的FSI从控制器中重新读取对应于该输出端口电路的信元值。
可选的,交叉开关电路与N路输入缓冲电路全连接,交叉开关电路与M路输出端口电路全连接。
一种FSI主控制器的端口路由方法,N路输入缓冲电路分别与FSI主控制器中的N个桥接模块连接;仲裁电路与N路输入缓冲电路,M路输出端口电路,以及交叉开关电路均连接;任意1路输入缓冲电路中均设置了K个输入缓存,任意1路输出端口电路中均设置了K个输出缓存;FSI主控制器的端口路由方法包括:
任意1路输入缓冲电路在接收到与自身连接的桥接模块发送的数据时,根据数据类型确定出相对应的虚拟通道编号,并将接收的数据存储在与虚拟通道
编号相对应的输入缓存中;
仲裁电路在任意1路输出端口电路的任意1个虚拟通道为可用状态,且存在针对该虚拟通道的数据传输请求时,基于第一优先级规则选取出针对该虚拟通道的数据传输请求中的最高优先级的数据传输请求,并进行交叉开关电路的控制,以使得相应的输入缓冲电路将选取出的数据传输请求所指向的数据内容通过交叉开关电路发送至该虚拟通道对应的输出缓存中;
输出端口电路将输出缓存中的数据发送至与自身相连接的端口;
其中,K,N以及M均为不小于2的正整数。
可选的,根据数据类型确定出相对应的虚拟通道编号之前,方法还包括:根据数据中的地址字段进行数据类型的划分。
可选的,输出端口电路将输出缓存中的数据发送至与自身相连接的端口,包括:输出端口电路通过K个输出缓存轮询的方式,将自身的K个输出缓存中的数据发送至与自身连接的端口。
可选的,第一优先级规则包括:针对任意1个数据传输请求,该数据传输请求的优先级与该数据传输请求的存在时长呈正相关,与目标间隔时长呈正相关;其中,目标间隔时长表示的是发起该数据传输请求的输入缓冲电路上一次发送数据的时刻与当前时刻的时间间隔。
一种FSI主控制器,包括如上述的FSI主控制器的端口路由装置。
应用本申请实施例所提供的技术方案,N路输入缓冲电路分别与FSI主控制器中的N个桥接模块连接,因此N路输入缓冲电路均可以进行数据的接收。并且,任意1路输入缓冲电路中均设置了K个输入缓存,任意1路输入缓冲电路均被配置为:在接收到与自身连接的桥接模块发送的数据时,根据数据类型确定出相对应的虚拟通道编号,并将接收的数据存储在与虚拟通道编号相对应的输入缓存中,可以看出,本申请是通过虚拟通道技术实现数据的传输,可以有效地防止链路阻塞,也有利于保障数据传输的稳定性和效率。
在任意1路输出端口电路的任意1个虚拟通道为可用状态,且存在针对该虚拟通道的数据传输请求时,仲裁电路会基于第一优先级规则选取出针对该虚拟通道的数据传输请求中的最高优先级的数据传输请求,并进行交叉开关电路的控制,以使得相应的输入缓冲电路将选取出的数据传输请求所指向的数据内容通过交叉开关电路发送至该虚拟通道对应的输出缓存中。可以看出,对于源自任意输入缓冲电路的数据传输请求,可以通过交叉开关电路发送至任意输出端口电路的输出缓存中,因此本申请的方案有效地实现了FSI主控制器灵活的端口路由。最后任意1路输出端口电路均可以将自身的输出缓存中的数据发送至与自身相连接的端口。并且可以看出,由于仲裁电路是基于第一优先级规则进行交叉开关电路的控制,实现数据的传输,也有利于保障数据传输的稳定性和效率,可以保障重要数据优先发送,保障业务的稳定进行。
综上所述,本申请的方案可以有效地实现FSI主控制器灵活的端口路由,保障了数据传输的稳定性和效率。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请中一种FSI主控制器的端口路由装置的结构示意图;
图2为本申请一种实施方式中的FSI主控制器的架构示意图;
图3为本申请中一种FSI主控制器的端口路由方法的实施流程图。
本申请的核心是提供一种FSI主控制器的端口路由装置,可以有效地实现FSI主控制器灵活的端口路由,保障了数据传输的稳定性和效率。
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请中一种FSI主控制器的端口路由装置的结构示意图,该FSI主控制器的端口路由装置可以包括:
分别与FSI主控制器中的N个桥接模块连接的N路输入缓冲电路10,任意1路输入缓冲电路10中均设置了K个输入缓存,且任意1路输入缓冲电路10均被配置为:在接收到与自身连接的桥接模块发送的数据时,根据数据类型确定出相对应的虚拟通道编号,并将接收的数据存储在与虚拟通道编号相对应的输入缓存中;
与N路输入缓冲电路10,M路输出端口电路40,以及交叉开关电路30均连接的仲裁电路20,被配置为在任意1路输出端口电路40的任意1个虚拟通道为可用状态,且存在针对该虚拟通道的数据传输请求时,基于第一优先级规则选取出针对该虚拟通道的数据传输请求中的最高优先级的数据传输请求,并进行交叉开关电路30的控制,以使得相应的输入缓冲电路10将选取出的数据传输请求所指向的数据内容通过交叉开关电路30发送至该虚拟通道对应的输出缓存中;
交叉开关电路30;
M路输出端口电路40,任意1路输出端口电路40中均设置了K个输出缓存,且任意1路输出端口电路40均被配置为:将输出缓存中的数据发送至与自身相连接的端口;其中,K,N以及M均为不小于2的正整数。
可选的,本申请的端口路由装置设置在FSI主控制器中,FSI主控制器则可以使用在例如BMC,服务器等场合中。由于本申请自行进行了FSI主控制器的设计,并且设计了其中的端口路由装置,因此,本申请方案的FSI主控制器可以直接使用AMBA总线架构,而无需如部分传统方案中,使用IBM的OPB接口的FSI
控制器时,需要先通过总线接口桥进行AMBA至OPB的转换。
FSI主控制器中可以设置有N个桥接模块,因此,端口路由装置中可以设置N路输入缓冲电路10,分别与FSI主控制器中的N个桥接模块连接。例如图2为一种具体实施方式中的FSI主控制器的架构示意图,图2中示出了该FSI主控制器的桥接模块1至3分别连接了前级的CPU(Central Processing Unit,中央处理器)以及2个DMA(Direct Memory Access,直接存储器访问)设备。
N的取值可以根据需要进行设定和调整,但通常为不小于2的正整数。
本申请采用虚拟通道技术实现数据的传输,因此,对于N路输入缓冲电路10中的任意1路输入缓冲电路10而言,均设置了K个输入缓存,K也是不小于2的正整数,例如后文的一种实施方式中,K=3。
由于采用虚拟通道技术实现数据的传输,因此,任意1路输入缓冲电路10在接收到与自身连接的桥接模块发送的数据时,可以根据数据类型确定出相对应的虚拟通道编号,进而将接收的数据存储在与虚拟通道编号相对应的输入缓存中。
可以看出,数据类型的类型总数,便是虚拟通道的总数量,也即K的取值。而设定的划分数据类型的实施方式可以有多种,并不影响本申请的实施。
例如在本申请的一种实施方式中,考虑到本申请的方案是基于FSI协议来实现数据的传输,数据中具有地址字段,因此,可以根据地址信息,也即根据数据中的地址地段来进行数据类型的划分。
即在本申请的一种实施方式中,对于任意1路输入缓冲电路10,该路输入缓冲电路10均可以被配置为:
在接收到与自身连接的桥接模块发送的数据时,根据地址信息确定出数据类型,并确定出与数据类型相对应的虚拟通道编号,并将接收的数据存储在与虚拟通道编号相对应的输入缓存中。
该种实施方式中,是按照地址类型的不同,进行数据类型的划分,是实际应用中较为方便的实施方式。当然,在其他实施方式中,还可以有其他的数据类型的划分方式。
在按照地址类型的不同进行数据类型的划分时,考虑到FSI协议中常用的有3种类型的地址,因此在实际应用中,数据类型可以包括:表示地址信息为绝对地址的第一数据类型,表示地址信息为相对地址的第二数据类型,以及表示地址信息为相同地址的第三数据类型。
绝对地址即为ABS_ADR(absolute address),相对地址即为REL_ADR(relative address),相同地址即为SAME_ADR(same address),这是FSI协议中常用的3种类型的地址,因此,该种实施方式中,数据类型设置为3种,因此虚拟通道的总数量K也等于3,即对于每1路输入缓冲电路10,该路输入缓冲电路10中需要设置3个输入缓存,例如每1路输入缓冲电路10中可以设置3个FIFO,来作为该路输入缓冲电路10中的3个输入缓存。
例如一种场合中,某1路输入缓冲电路10在接收到与自身连接的桥接模块发送的数据时,该数据的地址类型为ABS_ADR,则可以确定与该数据的地址信
息相对应的虚拟通道编号为VC1,因此可以将该数据存储在与虚拟通道编号VC1相对应的输入缓存中,即存储在该路输入缓冲电路10的第1个FIFO中。
而如果该路输入缓冲电路10在接收到与自身连接的桥接模块发送的数据时,该数据的地址类型为REL_ADR,则可以确定与该数据的地址信息相对应的虚拟通道编号为VC2,因此可以将该数据存储在与虚拟通道编号VC2相对应的输入缓存中,即存储在该路输入缓冲电路10的第2个FIFO中。
如上文的描述,采用上述的虚拟通道技术,可以有效防止数据通道的阻塞。
为了使得任意输入缓冲电路10的数据,可以发送至任意输出端口电路40,本申请设置了交叉开关电路30,可以理解的是,交叉开关电路30需要与N路输入缓冲电路10以及M路输出端口电路40实现全连接,才能够保障数据的灵活路由。而交叉开关电路30可以在受仲裁电路20的控制下,改变自身的开关状态,从而实现数据的路由。
可选的,在任意1路输出端口电路40的任意1个虚拟通道为可用状态时,说明允许将数据发送到该路输出端口电路40的这一个虚拟通道对应的输出缓存中。而如果存在针对该虚拟通道的数据传输请求时,说明有至少1路输入缓冲电路10的输入缓存发起了数据传输请求。
可以理解的是,在同一时刻,对于某1路输出端口电路40的某1个虚拟通道而言,如果只有针对该虚拟通道的1个数据传输请求时,则可以直接执行该数据传输请求,即直接将发起该数据传输请求的输入缓存中的数据,发送至该路输出端口电路40的该虚拟通道所对应的输出缓存中。
而在同一时刻,对于某1路输出端口电路40的某1个虚拟通道而言,如果有2个或者2个以上的针对该虚拟通道的数据传输请求时,则需要基于第一优先级规则选取出针对该虚拟通道的数据传输请求中的最高优先级的数据传输请求,从而进行交叉开关电路30的控制,以使得相应的输入缓冲电路10将选取出的数据传输请求所指向的数据内容通过交叉开关电路30发送至该虚拟通道对应的输出缓存中。
例如在某一时刻,数据A存储在第1路输入缓冲电路10的第1个FIFO中,而数据B存储在第2路输入缓冲电路10的第3个FIFO中,且假设第1路输入缓冲电路10的第1个FIFO请求将数据A发送至第1路输出端口电路40的第1个虚拟通道,即发送至第1路输出端口电路40的第1个FIFO中,而第2路输入缓冲电路10的第3个FIFO请求将数据B发送至第2路输出端口电路40的第3个虚拟通道,即发送至第2路输出端口电路40的第3个FIFO中,则该例子中,可以同时进行数据A和数据B的发送。
例如在某一时刻,数据A存储在第1路输入缓冲电路10的第1个FIFO中,而数据B存储在第2路输入缓冲电路10的第1个FIFO中,且假设第1路输入缓冲电路10的第1个FIFO请求将数据A发送至第1路输出端口电路40的第1个虚拟通道,即发送至第1路输出端口电路40的第1个FIFO中,而第2路输入缓冲电路10的第1个
FIFO请求将数据B发送至第1路输出端口电路40的第1个虚拟通道,即,数据B同样是需要发送至第1路输出端口电路40的第1个FIFO中,因此存在冲突,便需要基于第一优先级规则选取出针对该虚拟通道的数据传输请求中的最高优先级的数据传输请求。例如基于第一优先级规则,选取出针对该虚拟通道的数据传输请求中的最高优先级的数据传输请求为第1路输入缓冲电路10的第1个FIFO的请求,因此仲裁电路20便会进行交叉开关电路30的控制,以使得第1路输入缓冲电路10的第1个FIFO将数据传输请求所指向的数据内容A通过交叉开关电路30发送至第1路输出端口电路40的第1个虚拟通道对应的输出缓存中,即发送至第1路输出端口电路40的1个FIFO中。
第一优先级规则的内容可以根据实际需要进行设定和调整,例如在本申请的一种实施方式中,第一优先级规则可以包括:
针对任意1个数据传输请求,该数据传输请求的优先级与该数据传输请求的存在时长呈正相关,与目标间隔时长呈正相关;
其中,目标间隔时长表示的是发起该数据传输请求的输入缓冲电路10上一次发送数据的时刻与当前时刻的时间间隔。
该种实施方式考虑到,针对任意1个数据传输请求,如果该数据传输请求的存在时长较长,应当及时将该数据传输请求所指向的数据进行发送,避免部分数据长时间堆积,因此,该种实施方式中,数据传输请求的优先级与该数据传输请求的存在时长呈正相关。
而针对任意1个数据传输请求,考虑到如果发起该数据传输请求的输入缓冲电路10刚发送了1次数据,则该输入缓冲电路10的优先级应当降低,即该数据传输请求的优先级与目标间隔时长呈正相关。目标间隔时长表示的是发起该数据传输请求的输入缓冲电路10上一次发送数据的时刻与当前时刻的时间间隔,即目标间隔时长越长,说明发起该数据传输请求的输入缓冲电路10越长时间没有发送数据。
前述实施方式的优先级设置考虑了多种因素,有利于避免数据的长时间堆积,有利于保障数据传输的稳定性。
可以理解的是,在其他实施方式中,还可以设置其他的第一优先级规则,并不影响本申请的实施。例如一种场合中,可以使用较为简单的优先级列表的方式实现第一优先级规则。例如,对于每1路输出端口电路40,可以建立该输出端口电路40的优先级列表,该优先级列表中包含了N路输入缓冲电路10,当该路输出端口电路40接收了源自某路输入缓冲电路10的数据时,会将该路输入缓冲电路10移动到优先级列表中的末尾,使其优先级降为最低。
M路输出端口电路40通过相应端口,可以分别连接M个FSI从控制器,M为不小于2的正整数。由于本申请采用虚拟通道技术实现数据的传输,因此,任意1路输出端口电路40中也需要设置K个输出缓存,以分别存储源自不同虚拟通道的数据。
任意1路输出端口电路40均可以将输出缓存中的数据发送至与自身相连接的端口,例如一种实施方式中,可以以K个输出缓存轮询的方式,将自身的K个输出缓存中的数据发送至与自身相连接的端口。
而在本申请的一种实施方式中,输出端口电路40可以被配置为:
判断与自身相连接的端口是否为可用状态;
在与自身相连接的端口为可用状态的情况下,则按照预设规则,将输出缓存中的数据发送至与自身相连接的端口。
该种实施方式考虑到,通过判断与自身相连接的端口是否为可用状态,可以确定出后级设备,即可以确定出后级的FSI从控制器能否有效地进行数据的接收。因此,在判断出与自身相连接的端口为不可用状态时,说明相应的FSI从控制器暂时无法接收新的数据,因此输出端口电路40不会进行数据的发送。而在判断出与自身相连接的端口为可用状态时,才会将输出缓存中的数据发送至与自身相连接的端口,进而发送至相应的FSI从控制器,这样的实施方式有利于保障数据传输的稳定性,不容易出错。
在判断与自身相连接的端口是否为可用状态时,可以通过信元值来判断。例如在本申请的一种实施方式中,判断与自身相连接的端口是否为可用状态,可以包括:
接收由仲裁电路20发送的表示与输出端口电路40自身相连接的端口对应的FSI从控制器的剩余存储空间大小的信元值;
判断信元值是否大于0;
在信元值大于0的情况下,则确定出与自身相连接的端口为可用状态,在信元值小于或者等于0的情况下,确定出与自身相连接的端口为不可用状态。
该种实施方式中,仲裁电路20可以确定出各个FSI从控制器各自的信元值,在某些场合中,1个信元值对应多少bit是可以确定的,因此,可以使用信元值表示FSI从控制器的剩余存储空间大小。例如某一路输出端口电路40连接的端口为端口1,也即port1,port1与FSI从控制器1连接,则仲裁电路20可以将FSI从控制器1的信元值发送至该路输出端口电路40,如果FSI从控制器1的信元值大于0,说明FSI从控制器1还有存储空间可以用来接收数据,因此该路输出端口电路40可以确定出与自身相连接的端口为可用状态,即该场合中,是确定出端口port1为可用状态,反之,当FSI从控制器1的信元值为0时,该路输出端口电路40可以确定出与自身相连接的端口port1为不可用状态。
该种实施方式是利用仲裁电路20确定出各个FSI从控制器各自的信元值,图1也是采用的该种实施方式,即图1的信元输入,表示的是各个FSI从控制器可以周期性地将自身的信元值发送至仲裁电路20。此外,图1中还示出了信元输出,表示的是仲裁电路20可以将各个FSI从控制器的信元值发送给其他需要的设备。此外还需要说明的是,在图1中为了方便观看,对于N路输入缓冲电路10,仅示出了其中1路与仲裁电路20连接,同样的,对于M路输出端口电路40,仅示出了其中1路与仲裁电路20连接。
此外,在其他实施方式中,输出端口电路40可以以其他方式判断与自身相
连接的端口是否为可用状态,并不影响本申请的实施。
在正常情况下,任意FSI从控制器的信元值为大于等于0的数值,如果出现小于0的情况说明出错了,因此,在本申请的一种实施方式中,仲裁电路20还可以被配置为:
当判断出对应于任意1路输出端口电路40的信元值小于0时,从与该输出端口电路40连接的FSI从控制器中重新读取对应于该输出端口电路40的信元值。
某1路输出端口电路40对应的信元值,即表示的是与该路输出端口电路40相连接的FSI从控制器的信元值。如果出现任意FSI从控制器的信元值小于0的情况,仲裁电路20会从该FSI从控制器中重新读取该FSI从控制器的信元值。
在本申请的一种实施方式中,输出端口电路40可以被配置为:
判断与自身相连接的端口是否为可用状态;
在与自身相连接的端口为可用状态的情况下,则按照第二优先级规则,将输出缓存中的数据发送至与自身相连接的端口。
该种实施方式中,输出端口电路40在进行数据的发送时,也是基于优先级进行发送,称为第二优先级规则。基于优先级的方式进行数据发送,有利于进一步的保障数据传输的效率和可靠性。
第二优先级规则的内容可以根据需要进行设定,例如在本申请的一种实施方式中,输出端口电路40被配置为:
判断与自身相连接的端口是否为可用状态;
如果是,则将K个输出缓存中数据量最多的作为最高优先级的输出缓存;
将最高优先级的输出缓存中的数据发送至与自身相连接的端口。
该种实施方式中,是将输出端口电路40中,数据量最多的输出缓存优先进行发送,有利于避免数据的堆积,且优先级的规则设置地较为简单,便于实施。当然,其他实施方式中,还可以根据实际需要设置更为复杂的优先级规则,例如对于部分类型的数据,可以优先进行发送。
在本申请的一种实施方式中,输出端口电路40可以被配置为:
判断与自身相连接的端口是否为可用状态;
在与自身相连接的端口为可用状态的情况下,则将K个输出缓存依次作为最高优先级的输出缓存;
将当前最高优先级的输出缓存中的数据发送至与自身相连接的端口。
该种实施方式中,则是采用顺序发送的方式,即,将K个输出缓存依次作为最高优先级的输出缓存,实现K个输出缓存中的数据的顺序发送。
在本申请的一种实施方式中,输出端口电路40还可以被配置为:
在将任意1个输出缓存中的数据发送至与自身相连接的端口之前,根据待发送的该数据中的路由字段,判断该数据的路由对象是否为与自身相连接的端口;
在该数据的路由对象是与自身相连接的端口的情况下,则执行将输出缓存中的数据发送至与自身相连接的端口的操作,以将该数据发送至与自身相连接
的端口;
在该数据的路由对象不是与自身相连接的端口的情况下,则缓存该数据,并执行预设的报错策略。
在正常情况下,输出端口电路40的输出缓存中存储的数据,应当通过与该输出端口电路40相连接的端口,路由至相应的FSI从控制器中,即正常情况下,在将任意1个输出缓存中的数据发送至与自身相连接的端口之前,根据待发送的该数据中的路由字段,可以确定出该数据的路由对象与自身相连接的端口是吻合的。
但是在部分异常情况下,判断出该数据的路由对象不是与自身相连接的端口时,说明可能是数据存储过程出错,或者是此前的数据传递过程出错,例如交叉开关错误导致原本应当发送给其他输出端口电路40的数据,被错误发送给了本输出端口电路40。因此,该种实施方式中,对于异常数据,会先缓存该数据,并执行预设的报错策略,以避免错误数据的继续传输。
预设的报错策略的内容可以根据实际需要进行选取,例如在本申请的一种实施方式中,执行预设的报错策略,可以包括:
向发送该数据的前级设备反馈错误提示,以使前级设备重新将该数据发送至FSI主控制器。
例如发送该数据的前级设备为CPU,则输出端口电路40可以直接或通过其他设备结构间接地反馈错误提示,以使CPU重新将该数据发送至FSI主控制器,即进行错误数据的重传。执行了预设的报错策略之后,例如便可以删除此前缓存的异常数据。
在本申请的一种实施方式中,输出端口电路40还被配置为:
在将输出缓存中的数据发送至与自身相连接的端口之后,向发送该数据的前级设备反馈数据发送完成的提示。
该种实施方式中,考虑到输出端口电路40在将输出缓存中的数据发送至与自身相连接的端口之后,也可以选择向发送该数据的前级设备反馈数据发送完成的提示。
此外需要说明的是,本申请的上文中,描述的是FSI主控制器将数据从前级的CPU等设备路由至后级的FSI从控制器的过程,在实际应用中,对于连接FSI从控制器的相关设备,也可以将数据通过FSI从控制器以及FSI主控制器,发送给前级的CPU等设备,FSI主控制器可以通过相应结构实现该数据传递的过程,例如采用与本申请上文相同或者相似的结构,本申请对此不再展开说明。
应用本申请实施例所提供的技术方案,N路输入缓冲电路10分别与FSI主控制器中的N个桥接模块连接,因此N路输入缓冲电路10均可以进行数据的接收。并且,任意1路输入缓冲电路10中均设置了K个输入缓存,任意1路输入缓冲电路10均被配置为:在接收到与自身连接的桥接模块发送的数据时,根据数据类型确定出相对应的虚拟通道编号,并将接收的数据存储在与虚拟通道编号相对应的输入缓存中,可以看出,本申请是通过虚拟通道技术实现数据的传输,可以有效地防止链路阻塞,也有利于保障数据传输的稳定性和效率。
在任意1路输出端口电路40的任意1个虚拟通道为可用状态,且存在针对该虚拟通道的数据传输请求时,仲裁电路20会基于第一优先级规则选取出针对该虚拟通道的数据传输请求中的最高优先级的数据传输请求,并进行交叉开关电路30的控制,以使得相应的输入缓冲电路10将选取出的数据传输请求所指向的数据内容通过交叉开关电路30发送至该虚拟通道对应的输出缓存中。可以看出,对于源自任意输入缓冲电路10的数据传输请求,可以通过交叉开关电路30发送至任意输出端口电路40的输出缓存中,因此本申请的方案有效地实现了FSI主控制器灵活的端口路由。最后任意1路输出端口电路40均可以将自身的输出缓存中的数据发送至与自身相连接的端口。并且可以看出,由于仲裁电路20是基于第一优先级规则进行交叉开关电路30的控制,实现数据的传输,也有利于保障数据传输的稳定性和效率,可以保障重要数据优先发送,保障业务的稳定进行。
综上,本申请的方案可以有效地实现FSI主控制器灵活的端口路由,保障了数据传输的稳定性和效率。
相应于上面的FSI主控制器的端口路由装置的实施例,本申请实施例还提供了一种FSI主控制器的端口路由方法,可与上文相互对应参照。
N路输入缓冲电路分别与FSI主控制器中的N个桥接模块连接;仲裁电路与N路输入缓冲电路,M路输出端口电路,以及交叉开关电路均连接;任意1路输入缓冲电路中均设置了K个输入缓存,任意1路输出端口电路中均设置了K个输出缓存,可参阅图3,该FSI主控制器的端口路由方法可以包括以下步骤:
步骤S101:任意1路输入缓冲电路在接收到与自身连接的桥接模块发送的数据时,根据数据类型确定出相对应的虚拟通道编号,并将接收的数据存储在与虚拟通道编号相对应的输入缓存中;
步骤S102:仲裁电路在任意1路输出端口电路的任意1个虚拟通道为可用状态,且存在针对该虚拟通道的数据传输请求时,基于第一优先级规则选取出针对该虚拟通道的数据传输请求中的最高优先级的数据传输请求,并进行交叉开关电路的控制,以使得相应的输入缓冲电路将选取出的数据传输请求所指向的数据内容通过交叉开关电路发送至该虚拟通道对应的输出缓存中;
步骤S103:输出端口电路将输出缓存中的数据发送至与自身相连接的端口;
其中,K,N以及M均为不小于2的正整数。
在本申请的一种实施方式中,步骤S101包括:
任意1路输入缓冲电路在接收到与自身连接的桥接模块发送的数据时,根据地址信息确定出数据类型,并确定出与数据类型相对应的虚拟通道编号,并将接收的数据存储在与虚拟通道编号相对应的输入缓存中。
在本申请的一种实施方式中,数据类型包括:表示地址信息为绝对地址的第一数据类型,表示地址信息为相对地址的第二数据类型,以及表示地址信息为相同地址的第三数据类型。
在本申请的一种实施方式中,第一优先级规则包括:
针对任意1个数据传输请求,该数据传输请求的优先级与该数据传输请求的存在时长呈正相关,与目标间隔时长呈正相关;
其中,目标间隔时长表示的是发起该数据传输请求的输入缓冲电路上一次发送数据的时刻与当前时刻的时间间隔。
在本申请的一种实施方式中,还包括:
输出端口电路在将输出缓存中的数据发送至与自身相连接的端口之后,向发送该数据的前级设备反馈数据发送完成的提示。
在本申请的一种实施方式中,步骤S103包括:
输出端口电路判断与自身相连接的端口是否为可用状态;
在与自身相连接的端口为可用状态的情况下,则按照预设规则,将输出缓存中的数据发送至与自身相连接的端口。
在本申请的一种实施方式中,步骤S103包括:
输出端口电路判断与自身相连接的端口是否为可用状态;
在与自身相连接的端口为可用状态的情况下,则按照第二优先级规则,将输出缓存中的数据发送至与自身相连接的端口。
在本申请的一种实施方式中,按照第二优先级规则,将输出缓存中的数据发送至与自身相连接的端口,包括:
将K个输出缓存中数据量最多的作为最高优先级的输出缓存;
将最高优先级的输出缓存中的数据发送至与自身相连接的端口。
在本申请的一种实施方式中,按照第二优先级规则,将输出缓存中的数据发送至与自身相连接的端口,包括:
将K个输出缓存依次作为最高优先级的输出缓存;
将当前最高优先级的输出缓存中的数据发送至与自身相连接的端口。
在本申请的一种实施方式中,还包括:
输出端口电路在将任意1个输出缓存中的数据发送至与自身相连接的端口之前,根据待发送的该数据中的路由字段,判断该数据的路由对象是否为与自身相连接的端口;
在该数据的路由对象是与自身相连接的端口的情况下,则执行将输出缓存中的数据发送至与自身相连接的端口的操作,以将该数据发送至与自身相连接的端口;
在该数据的路由对象不是与自身相连接的端口的情况下,则缓存该数据,并执行预设的报错策略。
在本申请的一种实施方式中,执行预设的报错策略,包括:
向发送该数据的前级设备反馈错误提示,以使前级设备重新将该数据发送至FSI主控制器。
在本申请的一种实施方式中,判断与自身相连接的端口是否为可用状态,包括:
接收由仲裁电路发送的表示与输出端口电路自身相连接的端口对应的FSI
从控制器的剩余存储空间大小的信元值;
判断信元值是否大于0;
在信元值大于0的情况下,则确定出与自身相连接的端口为可用状态,在信元值小于或者等于0的情况下,确定出与自身相连接的端口为不可用状态。
在本申请的一种实施方式中,还包括:
仲裁电路当判断出对应于任意1路输出端口电路的信元值小于0时,从与该输出端口电路连接的FSI从控制器中重新读取对应于该输出端口电路的信元值。
相应于上面的FSI主控制器的端口路由装置和方法的实施例,本申请实施例还提供了一种FSI主控制器,可以包括如上述任一实施例中的FSI主控制器的端口路由装置,可与上文相互对应参照。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请的保护范围内。
Claims (20)
- 一种FSI主控制器的端口路由装置,其特征在于,包括:分别与现场可更换单元服务接口FSI主控制器中的N个桥接模块连接的N路输入缓冲电路,任意1路输入缓冲电路中均设置了K个输入缓存,且任意1路输入缓冲电路均被配置为:在接收到与自身连接的桥接模块发送的数据时,根据数据类型确定出相对应的虚拟通道编号,并将接收的所述数据存储在与所述虚拟通道编号相对应的输入缓存中;与N路输入缓冲电路,M路输出端口电路,以及交叉开关电路均连接的仲裁电路,被配置为在任意1路输出端口电路的任意1个虚拟通道为可用状态,且存在针对该虚拟通道的数据传输请求时,基于第一优先级规则选取出针对该虚拟通道的数据传输请求中的最高优先级的数据传输请求,并进行交叉开关电路的控制,以使得相应的输入缓冲电路将选取出的所述数据传输请求所指向的数据内容通过所述交叉开关电路发送至该虚拟通道对应的输出缓存中;所述交叉开关电路;M路输出端口电路,任意1路输出端口电路中均设置了K个输出缓存,且任意1路输出端口电路均被配置为:将输出缓存中的数据发送至与自身相连接的端口;其中,K,N以及M均为不小于2的正整数。
- 根据权利要求1所述的FSI主控制器的端口路由装置,其特征在于,所述输入缓冲电路被配置为:在接收到与自身连接的桥接模块发送的数据时,根据地址信息确定出数据类型,并确定出与所述数据类型相对应的虚拟通道编号,并将接收的所述数据存储在与所述虚拟通道编号相对应的输入缓存中。
- 根据权利要求2所述的FSI主控制器的端口路由装置,其特征在于,所述数据类型包括:表示地址信息为绝对地址的第一数据类型,表示地址信息为相对地址的第二数据类型,以及表示地址信息为相同地址的第三数据类型。
- 根据权利要求1所述的FSI主控制器的端口路由装置,其特征在于,所述第一优先级规则包括:针对任意1个数据传输请求,该数据传输请求的优先级与该数据传输请求的存在时长呈正相关,与目标间隔时长呈正相关;其中,所述目标间隔时长表示的是发起该数据传输请求的输入缓冲电路上一次发送数据的时刻与当前时刻的时间间隔。
- 根据权利要求4所述的FSI主控制器的端口路由装置,其特征在于,所述第一优先级规则包括:对于每一路输出端口电路,建立与所述输出端口电路的优先级列表,其中,所述优先级列表中存储了N路输入缓冲电路;所述优先级列表用于在所述输出端口电路接收了源自一路输入缓冲电路的数据时,将所述输入缓冲电路移动到优先级列表中的末尾,使所述输出端口电路的优先级降为最低。
- 根据权利要求1所述的FSI主控制器的端口路由装置,其特征在于,所述输出端口电路还被配置为:在将输出缓存中的数据发送至与自身相连接的端口之后,向发送该数据的前级设备反馈数据发送完成的提示。
- 根据权利要求1至6任一项所述的FSI主控制器的端口路由装置,其特征在于,所述输出端口电路被配置为:判断与自身相连接的端口是否为可用状态;在与自身相连接的端口为可用状态的情况下,则按照预设规则,将输出缓存中的数据发送至与自身相连接的端口。
- 根据权利要求7所述的FSI主控制器的端口路由装置,其特征在于,所述输出端口电路被配置为:判断与自身相连接的端口是否为可用状态;在与自身相连接的端口为可用状态的情况下,则按照第二优先级规则,将输出缓存中的数据发送至与自身相连接的端口。
- 根据权利要求10所述的FSI主控制器的端口路由装置,其特征在于,所述输出端口电路被配置为:判断与自身相连接的端口是否为可用状态;在与自身相连接的端口为可用状态的情况下,则将K个输出缓存中数据量最多的作为最高优先级的输出缓存;将最高优先级的输出缓存中的数据发送至与自身相连接的端口。
- 根据权利要求8所述的FSI主控制器的端口路由装置,其特征在于,所述输出端口电路被配置为:判断与自身相连接的端口是否为可用状态;在与自身相连接的端口为可用状态的情况下,则将K个输出缓存依次作为最高优先级的输出缓存;将当前最高优先级的输出缓存中的数据发送至与自身相连接的端口。
- 根据权利要求7所述的FSI主控制器的端口路由装置,其特征在于,所述输出端口电路还被配置为:在将任意1个输出缓存中的数据发送至与自身相连接的端口之前,根据待发送的该数据中的路由字段,判断该数据的路由对象是否为与自身相连接的端口;在该数据的路由对象是与自身相连接的端口的情况下,则执行所述将输出缓存中的数据发送至与自身相连接的端口的操作,以将该数据发送至与自身相连接的端口;在该数据的路由对象不是与自身相连接的端口的情况下,则缓存该数据,并执行预设的报错策略。
- 根据权利要求11所述的FSI主控制器的端口路由装置,其特征在于,所述执行预设的报错策略,包括:向发送该数据的前级设备反馈错误提示,以使所述前级设备重新将该数据发送至FSI主控制器。
- 根据权利要求7所述的FSI主控制器的端口路由装置,其特征在于,所述判断与自身相连接的端口是否为可用状态,包括:接收由仲裁电路发送的表示与所述输出端口电路自身相连接的端口对应的FSI从控制器的剩余存储空间大小的信元值;判断所述信元值是否大于0;在所述信元值大于0的情况下,则确定出与自身相连接的端口为可用状态,在所述信元值小于或者等于0的情况下,确定出与自身相连接的端口为不可用状态。
- 根据权利要求13所述的FSI主控制器的端口路由装置,其特征在于,所述仲裁电路还被配置为:当判断出对应于任意1路输出端口电路的信元值小于0时,从与该输出端口电路连接的FSI从控制器中重新读取对应于该输出端口电路的信元值。
- 根据权利要求1所述的FSI主控制器的端口路由装置,其特征在于,所述交叉开关电路与N路输入缓冲电路全连接,所述交叉开关电路与M路输出端口电路全连接。
- 一种FSI主控制器的端口路由方法,其特征在于,N路输入缓冲电路分别与FSI主控制器中的N个桥接模块连接;仲裁电路与N路输入缓冲电路,M路输出端口电路,以及交叉开关电路均连接;任意1路输入缓冲电路中均设置了K个输入缓存,任意1路输出端口电路中均设置了K个输出缓存;所述FSI主控制器的端口路由方法包括:任意1路输入缓冲电路在接收到与自身连接的桥接模块发送的数据时,根据数据类型确定出相对应的虚拟通道编号,并将接收的所述数据存储在与所述虚拟通道编号相对应的输入缓存中;所述仲裁电路在任意1路输出端口电路的任意1个虚拟通道为可用状态,且存在针对该虚拟通道的数据传输请求时,基于第一优先级规则选取出针对该虚拟通道的数据传输请求中的最高优先级的数据传输请求,并进行交叉开关电路的控制,以使得相应的输入缓冲电路将选取出的所述数据传输请求所指向的数据内容通过所述交叉开关电路发送至该虚拟通道对应的输出缓存中;输出端口电路将输出缓存中的数据发送至与自身相连接的端口;其中,K,N以及M均为不小于2的正整数。
- 根据权利要求16所述的FSI主控制器的端口路由方法,其特征在于,所述根据数据类型确定出相对应的虚拟通道编号之前,所述方法还包括:根据数据中的地址字段进行所述数据类型的划分。
- 根据权利要求16所述的FSI主控制器的端口路由方法,其特征在于,所述输出端口电路将输出缓存中的数据发送至与自身相连接的端口,包括:输出端口电路通过K个输出缓存轮询的方式,将自身的K个输出缓存中的数据发送至与自身连接的端口。
- 根据权利要求16所述的FSI主控制器的端口路由方法,其特征在于,第一优先级规则包括:针对任意1个数据传输请求,该数据传输请求的优先级与该数据传输请求的存在时长呈正相关,与目标间隔时长呈正相关;其中,目标间隔时长表示的是发起该数据传输请求的输入缓冲电路上一次发送数据的时刻与当前时刻的时间间隔。
- 一种FSI主控制器,其特征在于,包括如权利要求1至15任一项所述的FSI主控制器的端口路由装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211518337.2 | 2022-11-30 | ||
CN202211518337.2A CN115550293B (zh) | 2022-11-30 | 2022-11-30 | 一种fsi主控制器及其端口路由装置和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024113997A1 true WO2024113997A1 (zh) | 2024-06-06 |
Family
ID=84721642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2023/115976 WO2024113997A1 (zh) | 2022-11-30 | 2023-08-30 | 一种fsi主控制器及其端口路由装置和方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115550293B (zh) |
WO (1) | WO2024113997A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115550293B (zh) * | 2022-11-30 | 2023-03-10 | 苏州浪潮智能科技有限公司 | 一种fsi主控制器及其端口路由装置和方法 |
WO2024174122A1 (zh) * | 2023-02-22 | 2024-08-29 | 声龙(新加坡)私人有限公司 | 一种缓存路由结构、方法和芯片 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104158738A (zh) * | 2014-08-29 | 2014-11-19 | 中国航空无线电电子研究所 | 一种低缓冲区片上网络路由器及路由方法 |
CN110620731A (zh) * | 2019-09-12 | 2019-12-27 | 中山大学 | 一种片上网络的路由装置及路由方法 |
CN113285935A (zh) * | 2021-05-14 | 2021-08-20 | 山东云海国创云计算装备产业创新中心有限公司 | 一种通信系统和一种片上网络路由器 |
CN115114201A (zh) * | 2022-06-27 | 2022-09-27 | 山东云海国创云计算装备产业创新中心有限公司 | 一种fsi控制器和包括其的bmc芯片 |
CN115550293A (zh) * | 2022-11-30 | 2022-12-30 | 苏州浪潮智能科技有限公司 | 一种fsi主控制器及其端口路由装置和方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040062238A1 (en) * | 2001-02-14 | 2004-04-01 | Hiroshi Yoshizawa | Network switching device |
CA2438195C (en) * | 2001-02-24 | 2009-02-03 | International Business Machines Corporation | Optimized scalabale network switch |
CN105871742B (zh) * | 2016-03-24 | 2018-12-21 | 合肥工业大学 | 一种片上网络中基于虚拟输出队列机制的自适应路由器 |
-
2022
- 2022-11-30 CN CN202211518337.2A patent/CN115550293B/zh active Active
-
2023
- 2023-08-30 WO PCT/CN2023/115976 patent/WO2024113997A1/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104158738A (zh) * | 2014-08-29 | 2014-11-19 | 中国航空无线电电子研究所 | 一种低缓冲区片上网络路由器及路由方法 |
CN110620731A (zh) * | 2019-09-12 | 2019-12-27 | 中山大学 | 一种片上网络的路由装置及路由方法 |
CN113285935A (zh) * | 2021-05-14 | 2021-08-20 | 山东云海国创云计算装备产业创新中心有限公司 | 一种通信系统和一种片上网络路由器 |
CN115114201A (zh) * | 2022-06-27 | 2022-09-27 | 山东云海国创云计算装备产业创新中心有限公司 | 一种fsi控制器和包括其的bmc芯片 |
CN115550293A (zh) * | 2022-11-30 | 2022-12-30 | 苏州浪潮智能科技有限公司 | 一种fsi主控制器及其端口路由装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115550293A (zh) | 2022-12-30 |
CN115550293B (zh) | 2023-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2024113997A1 (zh) | 一种fsi主控制器及其端口路由装置和方法 | |
US7200692B2 (en) | PVDM (packet voice data module) generic bus | |
US9430432B2 (en) | Optimized multi-root input output virtualization aware switch | |
WO2023284169A1 (zh) | 从axi总线到opb总线的数据写入方法及读取方法 | |
US20070204074A1 (en) | Apparatus and method for performing DMA data transfer | |
US9626232B2 (en) | Event queue management | |
WO2024113704A1 (zh) | 一种pcie数据传输方法及相关装置 | |
US20230137668A1 (en) | storage device and storage system | |
CN115794722B (zh) | 一种AXI outstanding接口转换实现方法 | |
WO2021078197A1 (zh) | 内嵌处理器进行快速数据通信的方法、装置及存储介质 | |
WO2024082944A1 (zh) | 一种多处理器数据交互方法、装置、设备及存储介质 | |
US7043603B2 (en) | Storage device control unit and method of controlling the same | |
CN112882986B (zh) | 一种带有超节点以及超节点控制器的众核处理器的应用方法 | |
US20230342086A1 (en) | Data processing apparatus and method, and related device | |
US10445267B2 (en) | Direct memory access (DMA) unit with address alignment | |
CN114443530B (zh) | 基于TileLink的芯片互联电路及数据传输方法 | |
CN111078605A (zh) | 一种多通信接口中断的综合处理系统 | |
US20070022226A1 (en) | Direct memory access system for iSCSI | |
JP2001007893A (ja) | 情報処理システム及びそれに用いる障害処理方式 | |
CN114745325B (zh) | 一种基于PCIe总线的MAC层数据交换方法及系统 | |
US11487695B1 (en) | Scalable peer to peer data routing for servers | |
US11442882B2 (en) | Bridge circuit for providing conversion between PCIe-NVMe protocol and NVMe-TCP protocol and computer system using the same | |
WO2024017073A1 (zh) | 一种存储器件共享的方法、装置及系统 | |
CN118550857A (zh) | 一种数据传输方法、装置、电子设备以及存储介质 | |
US20240089886A1 (en) | Method for lane synchronization for an interconnection protocol, controller, and storage device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23896156 Country of ref document: EP Kind code of ref document: A1 |