CN118018418A - Method and system for configuring bandwidth of adaptation layer in high-speed serial interface - Google Patents

Method and system for configuring bandwidth of adaptation layer in high-speed serial interface Download PDF

Info

Publication number
CN118018418A
CN118018418A CN202410211149.8A CN202410211149A CN118018418A CN 118018418 A CN118018418 A CN 118018418A CN 202410211149 A CN202410211149 A CN 202410211149A CN 118018418 A CN118018418 A CN 118018418A
Authority
CN
China
Prior art keywords
protocol stack
state
sub
protocol
stack
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202410211149.8A
Other languages
Chinese (zh)
Inventor
李兵
王晓阳
何亚军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hefei Kuixian Integrated Circuit Design Co ltd
Shanghai Kuixin Integrated Circuit Design Co ltd
Original Assignee
Hefei Kuixian Integrated Circuit Design Co ltd
Shanghai Kuixin Integrated Circuit Design Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hefei Kuixian Integrated Circuit Design Co ltd, Shanghai Kuixin Integrated Circuit Design Co ltd filed Critical Hefei Kuixian Integrated Circuit Design Co ltd
Priority to CN202410211149.8A priority Critical patent/CN118018418A/en
Publication of CN118018418A publication Critical patent/CN118018418A/en
Pending legal-status Critical Current

Links

Landscapes

  • Communication Control (AREA)

Abstract

The embodiment of the application provides a method and a system for configuring an adaptation layer bandwidth in a high-speed serial interface. The method comprises the following steps: based on the state of the virtual state machine of each sub-protocol stack corresponding to each protocol stack of the adaptation layer, acquiring the state of the state machine of each protocol stack; acquiring a target state of the adaptation layer based on the state of a state machine of each protocol stack, and performing state switching based on the target state of the adaptation layer; and when the data transmission is carried out after the state switching is completed, transmitting a back pressure signal to each sub-protocol stack through the adaptation layer based on a preset bandwidth configuration mode, and carrying out the bandwidth configuration of the adaptation layer for each protocol stack or sub-protocol stack. The scheme is suitable for a scene that the adaptation layer is in butt joint with a plurality of protocol stacks and each protocol stack is in butt joint with a plurality of sub-protocol stacks, and bandwidth configuration can be carried out for each protocol stack or sub-protocol stack according to a preset bandwidth configuration mode.

Description

Method and system for configuring bandwidth of adaptation layer in high-speed serial interface
Technical Field
The application relates to the technical field of high-speed interconnection, in particular to a method and a system for configuring an adaptive layer bandwidth in a high-speed serial interface.
Background
UCIE (Universal Chiplet Interconnect Express, universal core interconnection standard) is the current fastest solution in the field of high-speed interconnection, and ADAPTER LAYER (adaptation layer) is the middle layer of its three-layer structure. ADAPTER LAYER is required to implement conversion of FDI (Flit-aware D2D INTERFACE, transport interface between protocol layer and adaptation layer) interface to RDI (Raw D2D INTERFACE, transport interface between adaptation layer and physical layer) interface and transfer data to the peer. There are some low-bandwidth protocol layers in the usage scenario, which causes huge bandwidth waste if each low-bandwidth protocol layer is used alone by 1 ADAPTER LAYER. To improve bandwidth utilization, current UCIE's ADAPTER LAYER supports simultaneous access to two protocol stacks, and each protocol stack supports simultaneous access to two sub-protocol stacks.
Further, after accessing multiple protocol stacks and sub-protocol stacks, the following scenarios exist: the specific sub-protocol stack of the specific protocol stack sometimes needs to use the whole bandwidth, the two sub-protocol stacks of the specific protocol stack sometimes need to use the whole bandwidth, different protocol stacks need to use the whole bandwidth successively, and different protocol stacks need to use the whole bandwidth alternately according to the specific gravity. Currently, there is no adaptive layer bandwidth configuration scheme applicable to the above scenario.
Disclosure of Invention
The application aims to at least solve one of the technical defects, and the technical scheme provided by the embodiment of the application is as follows:
In one aspect, an embodiment of the present application provides a method for configuring an adaptation layer bandwidth in a high-speed serial interface, including:
Based on the state of the virtual state machine of each sub-protocol stack corresponding to each protocol stack of the adaptation layer, acquiring the state of the state machine of each protocol stack;
acquiring a target state of the adaptation layer based on the state of a state machine of each protocol stack, and performing state switching based on the target state of the adaptation layer;
and when the data transmission is carried out after the state switching is completed, transmitting a back pressure signal to each sub-protocol stack through the adaptation layer based on a preset bandwidth configuration mode, and carrying out the bandwidth configuration of the adaptation layer for each protocol stack or sub-protocol stack.
In an alternative embodiment of the application, the adaptation layer corresponds to two protocol stacks, and each protocol stack corresponds to two sub-protocol stacks.
In an alternative embodiment of the present application, based on the state of the virtual state machine of each sub-protocol stack corresponding to each protocol stack of the adaptation layer, the obtaining the state of the state machine of each protocol stack includes:
for each protocol stack, if two sub-protocol stacks corresponding to the protocol stack are started, determining the state of the state machine of the protocol stack based on the states of the virtual state machines of the two sub-protocol stacks and the first state discrimination table through an arbiter/multiplexer;
if only one of the two sub-protocol stacks corresponding to the protocol stack is started, the state of the virtual state machine of the started sub-protocol stack is directly used as the state of the state machine of the protocol stack through the arbiter/multiplexer.
In an alternative embodiment of the present application, the state of the virtual state machine of the started sub-protocol stack is directly used as the state of the state machine of the protocol stack through the arbiter/multiplexer, which comprises:
And detecting that a bypass enabling control signal of one of the two sub-protocol stacks in the first preset register is set and a bypass enabling control signal of the other sub-protocol stack is not set by a supporting bypass function of the arbiter/multiplexer, and taking the state of a virtual state machine of the sub-protocol stack on which the bypass enabling control signal is set as the state of a state machine of the protocol stack directly.
In an alternative embodiment of the present application, obtaining the target state of the adaptation layer based on the state of the state machine of each protocol stack includes:
if both protocol stacks are started, determining a target state through a stack multiplexer based on states of state machines of the two protocol stacks and a second state discrimination table;
if only one of the two protocol stacks is started, the state of the state machine of the started protocol stack is directly used as a target state through a stack multiplexer.
In an alternative embodiment of the present application, the state of the state machine of the started protocol stack is directly taken as the target state through the stack multiplexer, which comprises:
and detecting that a bypass enabling control signal of one of the two protocol stacks in the second preset register is set and the bypass enabling control signal of the other protocol stack is not set by the support bypass function of the stack multiplexer, and taking the state of a state machine of the protocol stack on which the bypass enabling control signal is set as a target state directly.
In an alternative embodiment of the present application, sending, by an adaptation layer, a backpressure signal to each sub-protocol stack based on a preset bandwidth configuration mode, performing an adaptation layer bandwidth configuration for each protocol stack or sub-protocol stack, including:
If the preset bandwidth configuration mode is that all bandwidths of the adaptation layer are sequentially used by all sub-protocol stacks, when any sub-protocol stack is polled, any sub-protocol stack data packet is sent until no data packet is detected for sending by any sub-protocol stack, in the process of sending the data packet, a back pressure signal of any sub-protocol stack is set to be high level, and back pressure signals of other sub-protocol stacks are set to be low level;
If the preset bandwidth configuration mode is that all bandwidths of the adaptation layer are alternately used by each sub-protocol stack, ping-pong operation is performed on each sub-protocol stack according to data packets in the same transmission period to transmit the data packets of each sub-protocol stack, and when any sub-protocol stack is polled, the back pressure signal of any sub-protocol stack is set to be high level, and the back pressure signals of other sub-protocol stacks are set to be low level.
In an optional embodiment of the present application, if the preset bandwidth configuration mode is that all bandwidths of the adaptation layer are alternately used by each sub-protocol stack, the method further includes:
And in the ping-pong operation process, if any one of the sub-protocol stacks is polled and no data packet is provided for transmission by any one of the sub-protocol stacks, inserting a non-operation data packet.
In an optional embodiment of the present application, if the preset bandwidth configuration mode is that all bandwidths of the adaptation layer are alternately used by each sub-protocol stack, the method further includes:
During ping-pong operation, either the odd or even cycles of any one of the polled sub-protocol stacks are disabled.
In a second aspect, an embodiment of the present application provides a system for configuring bandwidth of an adaptation layer in a high-speed serial interface, including:
The first state determining module is used for obtaining the state of the state machine of each protocol stack based on the state of the virtual state machine of each sub-protocol stack corresponding to each protocol stack of the adaptation layer;
The second state determining module is used for acquiring the target state of the adaptation layer based on the state of the state machine of each protocol stack and performing state switching based on the target state of the adaptation layer;
and the bandwidth configuration module is used for transmitting a back pressure signal to each sub-protocol stack through the adaptation layer based on a preset bandwidth configuration mode when data transmission is performed after the state switching is completed, and performing bandwidth configuration on each protocol stack or sub-protocol stack.
In an alternative embodiment of the application, the adaptation layer corresponds to two protocol stacks, and each protocol stack corresponds to two sub-protocol stacks.
In an alternative embodiment of the present application, the first state determining module is specifically configured to:
for each protocol stack, if two sub-protocol stacks corresponding to the protocol stack are started, determining the state of the state machine of the protocol stack based on the states of the virtual state machines of the two sub-protocol stacks and the first state discrimination table through an arbiter/multiplexer;
if only one of the two sub-protocol stacks corresponding to the protocol stack is started, the state of the virtual state machine of the started sub-protocol stack is directly used as the state of the state machine of the protocol stack through the arbiter/multiplexer.
In an alternative embodiment of the application, the first state determination module is further configured to:
And detecting that a bypass enabling control signal of one of the two sub-protocol stacks in the first preset register is set and a bypass enabling control signal of the other sub-protocol stack is not set by a supporting bypass function of the arbiter/multiplexer, and taking the state of a virtual state machine of the sub-protocol stack on which the bypass enabling control signal is set as the state of a state machine of the protocol stack directly.
In an alternative embodiment of the present application, the second state determining module is specifically configured to:
if both protocol stacks are started, determining a target state through a stack multiplexer based on states of state machines of the two protocol stacks and a second state discrimination table;
if only one of the two protocol stacks is started, the state of the state machine of the started protocol stack is directly used as a target state through a stack multiplexer.
In an alternative embodiment of the application, the second state determination module is further configured to:
and detecting that a bypass enabling control signal of one of the two protocol stacks in the second preset register is set and the bypass enabling control signal of the other protocol stack is not set by the support bypass function of the stack multiplexer, and taking the state of a state machine of the protocol stack on which the bypass enabling control signal is set as a target state directly.
In an alternative embodiment of the present application, the bandwidth configuration module is specifically configured to:
If the preset bandwidth configuration mode is that all bandwidths of the adaptation layer are sequentially used by all sub-protocol stacks, when any sub-protocol stack is polled, any sub-protocol stack data packet is sent until no data packet is detected for sending by any sub-protocol stack, in the process of sending the data packet, a back pressure signal of any sub-protocol stack is set to be high level, and back pressure signals of other sub-protocol stacks are set to be low level;
If the preset bandwidth configuration mode is that all bandwidths of the adaptation layer are alternately used by each sub-protocol stack, ping-pong operation is performed on each sub-protocol stack according to data packets in the same transmission period to transmit the data packets of each sub-protocol stack, and when any sub-protocol stack is polled, the back pressure signal of any sub-protocol stack is set to be high level, and the back pressure signals of other sub-protocol stacks are set to be low level.
In an alternative embodiment of the present application, if the preset bandwidth configuration mode is that all bandwidths of the adaptation layer are alternately used by each sub-protocol stack, the bandwidth configuration module is further configured to:
And in the ping-pong operation process, if any one of the sub-protocol stacks is polled and no data packet is provided for transmission by any one of the sub-protocol stacks, inserting a non-operation data packet.
In an alternative embodiment of the present application, if the preset bandwidth configuration mode is that all bandwidths of the adaptation layer are alternately used by each sub-protocol stack, the bandwidth configuration module is further configured to:
During ping-pong operation, either the odd or even cycles of any one of the polled sub-protocol stacks are disabled.
In a third aspect, an embodiment of the present application provides an electronic device, including a memory and a processor;
a memory having a computer program stored therein;
A processor for executing a computer program to implement the method provided in the first aspect embodiment or any of the alternative embodiments of the first aspect.
In a fourth aspect, embodiments of the present application provide a computer readable storage medium having a computer program stored thereon, which when executed by a processor implements the method provided in the embodiment of the first aspect or any of the alternative embodiments of the first aspect.
In a fifth aspect, embodiments of the present application provide a computer program product or computer program comprising computer instructions stored in a computer readable storage medium. The computer instructions are read from a computer readable storage medium by a processor of a computer device, which processor executes the computer instructions such that the computer device, when executed, implements the method provided in the embodiment of the first aspect or any alternative embodiment of the first aspect.
The technical scheme provided by the embodiment of the application has the beneficial effects that:
When the adaptation layer is connected with a plurality of protocol stacks and the protocol stacks are connected with a plurality of sub-protocol stacks, the state of the corresponding protocol stack is determined through the state of the virtual state machine of each sub-protocol stack, then the target state to be switched by the adaptation layer is determined through the state of the state machine of each protocol stack, and then the state switching is completed based on the target state. The scheme is suitable for a scene that the adaptation layer is in butt joint with a plurality of protocol stacks and each protocol stack is in butt joint with a plurality of sub-protocol stacks, and bandwidth configuration can be carried out for each protocol stack or sub-protocol stack according to a preset bandwidth configuration mode.
Drawings
In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings that are required to be used in the description of the embodiments of the present application will be briefly described below.
Fig. 1 is a schematic flow chart of an adaptation layer bandwidth configuration method in a high-speed serial interface according to an embodiment of the present application;
FIG. 2 is a diagram of an interface hooking of a multi-stack mode ADAPTER LAYER in an example of an embodiment of the present application;
FIG. 3 is a schematic diagram illustrating FDI interface coordination for multi-stack mode ADAPTER LAYER in an example of an embodiment of the application;
FIG. 4 is a schematic diagram illustrating an FDI interface protocol layer sending data to ADAPTER LAYER according to an example of an embodiment of the present application;
FIG. 5 is a diagram of interface hooking for enhanced multi-stack mode ADAPTER LAYER in one example of an embodiment of the application;
FIG. 6 is a schematic diagram illustrating FDI interface coordination for enhanced multi-stack mode ADAPTER LAYER in mode 1 in an example of an embodiment of the present application;
FIG. 7a is a schematic diagram illustrating coordination of FDI interfaces in non-mode 1 for enhanced multi-stack mode ADAPTER LAYER in an example of an embodiment of the application;
FIG. 7b is another FDI interface coordination diagram for enhanced multi-stack mode ADAPTER LAYER in non-mode 1 in an example of an embodiment of the application;
FIG. 8 is a diagram illustrating an interface hooking of a multi-stack mode ADAPTER LAYER in an example of an embodiment of the present application;
FIG. 9 is a single-sided FDI interface coordination diagram of a multi-stack mode ADAPTER LAYER in one example of an embodiment of the application;
FIG. 10 is a diagram illustrating coordination of dual-sided FDI interfaces for a multi-stack mode ADAPTER LAYER in an example of an embodiment of the application;
FIG. 11 is a diagram illustrating an interface hooking of a dual stack 4 sub-stack mode ADAPTER LAYER in an example of an embodiment of the present application;
FIG. 12 is a single-sided FDI interface coordination diagram of a dual stack 4 sub-stack mode ADAPTER LAYER in one example of an embodiment of the application;
FIG. 13 is a diagram illustrating a dual stack out of sync entry Active state for dual stack 4 sub-stack mode ADAPTER LAYER in an example of an embodiment of the present application;
FIG. 14 is a diagram illustrating dual sided FDI interface coordination for dual stack 4 sub-stack mode ADAPTER LAYER in one example of an embodiment of the application;
FIG. 15 is a block diagram illustrating a configuration system of an adaptive layer bandwidth in a high-speed serial interface according to an embodiment of the present application;
fig. 16 is a schematic structural diagram of an electronic device according to an embodiment of the present application.
Detailed Description
Embodiments of the present application are described below with reference to the drawings in the present application. It should be understood that the embodiments described below with reference to the drawings are exemplary descriptions for explaining the technical solutions of the embodiments of the present application, and the technical solutions of the embodiments of the present application are not limited.
As used herein, the singular forms "a", "an", "the" and "the" are intended to include the plural forms as well, unless expressly stated otherwise, as understood by those skilled in the art. It will be further understood that the terms "comprises" and "comprising," when used in this specification, specify the presence of stated features, information, data, steps, operations, elements, and/or components, but do not preclude the presence or addition of other features, information, data, steps, operations, elements, components, and/or groups thereof, all of which may be included in the present specification. It will be understood that when an element is referred to as being "connected" or "coupled" to another element, it can be directly connected or coupled to the other element or intervening elements may be present. Further, "connected" or "coupled" as used herein may include wirelessly connected or wirelessly coupled. The term "and/or" as used herein indicates that at least one of the items defined by the term, e.g., "a and/or B" may be implemented as "a", or as "B", or as "a and B".
For the purpose of making the objects, technical solutions and advantages of the present application more apparent, the embodiments of the present application will be described in further detail with reference to the accompanying drawings.
Under the scene that one adaptation layer can butt joint at most two protocol stacks and each protocol stack corresponds to at most two sub-protocol stacks, each sub-protocol stack corresponds to 1 FDI interface, so that at most 1 ADAPTER LAYER can hang 4 FDI interfaces.
When there are only 1 protocol stack and only 1 sub-protocol stack, there are only 1 LSMs (state machines) of ADAPTER LAYER, which do not need to coordinate with other sub-protocol stacks or with other protocol stacks, and which interact directly with LTSSM (state machine of physical layer). The LSM needs to quickly complete a state switch to improve data transmission efficiency (data can be transmitted only when the LSM of the Adapter is in an ACTIVE state), and a mode corresponding to this scenario may be referred to as a quickly completed state switch mode.
However, when multiple sub-protocol stacks are present, the sub-protocol stacks need to interface with their own vlsm (virtual state machine) first, and the two paths vlsm need to coordinate with each other to interact with the LSM of their protocol stack. Thus, two sub-protocol stacks are supported in different states, thereby adapting to more complex application scenarios (e.g. 1 sub-protocol stack needs to be in ACTIVE state to transmit data, and the other sub-protocol stack needs to be in PM state to reduce power consumption). When multiple protocol stacks are present, the protocol stacks need to interface with respective LSMs, and the two LSMs need to coordinate with each other to interact with the LTSSM. Therefore, two protocol stacks are supported to be in different states, and further, more complex application scenes are adapted, and the mode corresponding to the scenes can be called a collaborative FDI interface mode.
In summary, the most complex application scenarios are as follows:
When there are 2 protocol stacks and 2 sub-protocol stacks for each protocol stack, there are 2 LSMs of ADAPTER LAYER and 2 vlsm for each LSM, at this time, coordination is required between 2 LSMs of each protocol stack and 2 vlsm of LSMs of each protocol stack, coordination is required between 2 LSMs of 2 protocol stacks, and interaction is required between 2 LSMs of 2 protocol stacks and LTSSM, so that 4 FDI interfaces (status switching cannot be completed quickly) are required to be cooperated to improve the overall data transmission efficiency.
Then, when the adaptation layer interfaces with multiple protocol stacks and each protocol stack interfaces with multiple sub-protocol stacks, it may be necessary to switch and process the two modes (fast completion status switching mode and cooperative FDI interface mode), so how to automatically adapt the two modes according to the application scenario becomes a key problem.
The current industry does not have any related implementation, i.e., the handoff process quickly completes the state handoff mode and the collaborative FDI interface mode, or understand that handoff ADAPTER LAYER hangs a single FDI interface and ADAPTER LAYER hangs multiple FDI interfaces. In addition, there is a great difference in the area and speed of implementation of the implementation scheme by the designer's level difference (speed and area are two important indicators of chip design, the faster the speed, the better the smaller the area).
For the purpose of maximizing the effective bandwidth, when ADAPTER LAYER is needed to be used by the low-bandwidth protocol layer, the mode of multiplexing 1 piece ADAPTER LAYER is adopted to replace the mode of singly using 1 piece ADAPTER LAYER for each path so as to reduce resource waste. However, the manner in which multiple paths share 1 ADAPTER LAYER requires coordination of the FDIs of each path and thus introduces switching overhead. The overhead introduced when ADAPTER LAYER cannot be fully used may have no impact on the effective data bandwidth, but when the high-bandwidth protocol layer uses 1-ADAPTER LAYER independently, the effective data bandwidth will be reduced if the switching overhead still exists (the chip area can be reduced by using the same implementation mechanism by sharing 1-ADAPTER LAYER for multiplexing and 1-ADAPTER LAYER for independent use). Therefore, there is a need for an implementation mechanism that can be compatible with both scenarios (there is no switching overhead when 1 ADAPTER LAYER is used independently).
Since the FDI interface of the Adapter is in different link states to accommodate a particular scenario (e.g., in ACTIVE state to allow the protocol layers to transfer data, in PM (power management) state to reduce power consumption), state hops of different protocol layers may not be consistent (related to their current scenario). Therefore, implementing the automatic switching of the two modes described above requires handling the problem of supporting independent switching of multiple FDI interface states. There is no relevant processing method in the current industry.
The embodiment of the application realizes the automatic switching of the two modes by supporting the functions of bypass ARB MUX (arbiter/multiplexer) and Stack MUX (Stack multiplexer) so as to realize the maximization of the effective bandwidth based on application scenes.
The embodiment of the application provides a method and a system for configuring an adaptation layer bandwidth in a high-speed serial interface, which aim to solve the technical problems in the prior art, and a scheme of the embodiment of the application is described in detail below.
Fig. 1 is a flow chart of an adaptation layer bandwidth configuration method in a high-speed serial interface according to an embodiment of the present application, where, as shown in fig. 1, the method may include:
step S101, based on the state of the virtual state machine of each sub-protocol stack corresponding to each protocol stack of the adaptation layer, the state of the state machine of each protocol stack is obtained.
Specifically, the adaptation layer interfaces at most two protocol stacks, each protocol stack interfaces at most two sub-protocol stacks, each protocol stack performs state control through one LSM, and each sub-protocol stack performs state control through one vlsm. For each protocol stack, the state of the LSM is determined based on the corresponding sub-protocol stack, specifically, each sub-protocol stack corresponding to each protocol stack determines the final state interaction to the LSM through the interaction of each vlsm, and the state of the LSM of the protocol stack is obtained.
It should be noted that, the above-mentioned LSM state determining process may be implemented by an ARB/MUX, where the ARB/MUX supports a bypass function, that is, when only one sub-protocol stack corresponding to a protocol stack is started (or when the protocol stack is only docked to one sub-protocol stack), the state of vlsm of the sub-protocol stack corresponding to the protocol stack may be directly determined as the LSM state of the corresponding protocol stack by the ARB/MUX supporting the bypass function.
Step S102, the target state of the adaptation layer is obtained based on the state of the state machine of each protocol stack, and state switching is performed based on the target state of the adaptation layer.
Specifically, after the states of the LSMs of all protocol stacks are determined in the previous step, the target state to be finally switched by the adaptation layer can be determined through a Stack MUX, further, the Stack MUX also supports a bypass function, and when only one corresponding protocol Stack of the adaptation layer is started (or when the adaptation layer is only in butt joint with one protocol Stack), the state of the LSM of the starting protocol Stack can be directly determined to be the final target state through the support bypass function of the Stack MUX. State switching is then completed based on the state flow and the target state under the UCIE protocol.
Step S103, when data transmission is performed after the state switching is completed, a back pressure signal is transmitted to each sub-protocol stack through the adaptation layer based on a preset bandwidth configuration mode, and the bandwidth configuration of the adaptation layer is performed for each protocol stack or sub-protocol stack.
The preset bandwidth configuration mode may indicate a bandwidth utilization form and sequence of each sub-protocol stack, and may indicate a bandwidth occupation proportion of each sub-protocol stack.
Specifically, after the state switching is completed, data transmission of each protocol stack or sub-protocol stack is performed, and as there may be a plurality of combinations of protocol stacks and sub-protocol stacks, bandwidth configuration of an adaptation layer needs to be performed for each protocol stack and sub-protocol stack. In the embodiment of the application, the data transmission of each protocol stack and each sub-protocol stack can be performed according to the preset bandwidth configuration mode, specifically, as one sub-protocol stack corresponds to one FDI interface, the sub-protocol stack can be used as a basic unit for bandwidth configuration, and under the specific preset bandwidth configuration mode, the corresponding back pressure signal can be transmitted to each sub-protocol stack through the adaptation layer, so that the time-sharing multiplexing of the data of the FDI interface of each sub-protocol stack is realized, and the appropriate adaptation layer bandwidth is configured for each sub-protocol stack according to the specific preset bandwidth configuration mode.
It can be understood that the bandwidth configuration can also be performed by taking the protocol stack as a basic unit, and the principle thereof is consistent with the principle of performing the bandwidth configuration by taking the sub-protocol stack as the basic unit, and will not be described herein.
According to the scheme provided by the application, when the adaptation layer is in butt joint with a plurality of protocol stacks and the protocol stacks are in butt joint with a plurality of sub-protocol stacks, the state of the corresponding protocol stack is determined through the state of the virtual state machine of each sub-protocol stack, then the target state to be switched by the adaptation layer is determined through the state of the state machine of each protocol stack, and further the state switching is completed based on the target state. The scheme is suitable for a scene that the adaptation layer is in butt joint with a plurality of protocol stacks and each protocol stack is in butt joint with a plurality of sub-protocol stacks, and bandwidth configuration can be carried out for each protocol stack or sub-protocol stack according to a preset bandwidth configuration mode.
The following describes the data time-sharing multiplexing and state switching process of the FDI interface corresponding to each sub-protocol stack in the embodiment of the present application in detail.
In an alternative embodiment of the application, the adaptation layer corresponds to two protocol stacks, and each protocol stack corresponds to two sub-protocol stacks.
Specifically, in the scheme of the embodiment of the application, the adaptation layer can be abutted to one or more protocol stacks, each protocol stack can be abutted to one or more sub-protocol stacks, and the most complex scene is that the adaptation layer corresponds to two protocol stacks and each protocol stack corresponds to two sub-protocol stacks. It can be understood that the data time-sharing multiplexing and state switching process of the FDI interface in the embodiment of the present application is applicable to any one of the above scenarios, and the principle is the same, and only needs to be adaptively adjusted according to a specific scenario.
In an alternative embodiment of the present application, sending, by an adaptation layer, a backpressure signal to each sub-protocol stack based on a preset bandwidth configuration mode, performing an adaptation layer bandwidth configuration for each protocol stack or sub-protocol stack, including:
If the preset bandwidth configuration mode is that all bandwidths of the adaptation layer are sequentially used by all sub-protocol stacks, when any sub-protocol stack is polled, any sub-protocol stack data packet is sent until no data packet is detected for sending by any sub-protocol stack, in the process of sending the data packet, a back pressure signal of any sub-protocol stack is set to be high level, and back pressure signals of other sub-protocol stacks are set to be low level;
If the preset bandwidth configuration mode is that all bandwidths of the adaptation layer are alternately used by each sub-protocol stack, ping-pong operation is performed on each sub-protocol stack according to data packets in the same transmission period to transmit the data packets of each sub-protocol stack, and when any sub-protocol stack is polled, the back pressure signal of any sub-protocol stack is set to be high level, and the back pressure signals of other sub-protocol stacks are set to be low level.
The preset bandwidth configuration mode is that all bandwidths of the adaptation layer are used by all sub-protocol stacks in sequence, and the method can also further comprise that all bandwidths of the adaptation layer are used by all protocol stacks in sequence. The preset bandwidth configuration mode is that all bandwidths of the adaptation layer are used by all sub-protocol stacks alternately, and the preset bandwidth configuration mode can also further comprise that all bandwidths of the adaptation layer are used by all protocol stacks alternately. As described above, the bandwidth configuration may be performed by using the protocol stack as a basic unit, and the principle thereof is consistent with the principle of performing the bandwidth configuration by using the sub-protocol stack as a basic unit, which is not described herein. The basic units of each different dimension will be described later for convenience in describing the scheme.
Further, if the preset bandwidth configuration mode is that all bandwidths of the adaptation layer are alternately used by each sub-protocol stack, the method may further include:
And in the ping-pong operation process, if any one of the sub-protocol stacks is polled and no data packet is provided for transmission by any one of the sub-protocol stacks, inserting a non-operation data packet.
Further, if the preset bandwidth configuration mode is that all bandwidths of the adaptation layer are alternately used by each sub-protocol stack, the method may further include:
During ping-pong operation, either the odd or even cycles of any one of the polled sub-protocol stacks are disabled.
As shown in fig. 2, only when the Multi-stack mode is on (multi_protocol_enable parameter set for UCIE Protocol) will 1 Adapter be hooked up to the 2-way FDI interface and the 1-way RDI interface. The 2-way FDI interface is respectively connected with two protocol stacks, and the following indexes are required to be met according to UCIE protocol requirements:
(1) The two protocol stacks must use the same protocol for the same performance, each using half the physical bandwidth.
(2) The Adapter ensures that no consecutive Flits (data packets) from the same protocol stack are sent, and both protocol stacks ping-pong according to Flit (data packets).
Wherein Flit is applicable in all situations, including from FDI, retransmission buffers, and when data streams are paused and restarted. Adapter insertion NOP Flits (no operation packets) is allowed to guarantee this (these Flits bypass the TX (i.e. data transmit module) retransmission buffer and are not forwarded to the protocol layer on the receiver).
(3) Each Header carries a single bit stack number.
(4) The receiving protocol layer must be able to receive consecutive blocks of the same Flit at maximum Link speed, but it does not receive consecutive Flits.
(5) The illustrated stack multiplexer maintains a separate link state machine for each protocol stack.
(6) The sideband messages associated with the link state transitions have unique message codes that identify which stack's link state management is affected by the message.
(7) There is no fixed Flits alternating pattern between the different protocol layers.
Specifically, as shown in fig. 3, the hatched filled boxes represent flits of the corresponding protocol stacks, the white filled boxes represent NOP flits, and the numerical values within the boxes represent protocol stack numbers.
In case0, ping-pong operations (meeting clause 2 above) are performed on both protocol stacks per transmission cycle per Flit when both protocol stacks have sufficient data.
In case1, when protocol stack 1 is polled and no Flit is available for transmission in protocol stack 1, the Adapter will insert a NOP Flit (satisfying clause (2) above). And then polls protocol stack 0 to continue sending flits of protocol stack 0.
In case2, when protocol stack 1 is polled and no Flit is available for transmission in protocol stack 1, the Adapter will insert a NOP Flit (satisfying clause (2) above). The Adapter will then insert a NOP Flit (satisfying clause (2) above) when protocol stack 0 is polled and no Flit is available for transmission by protocol stack 0. The Adapter will then start sending flits of the protocol stack 1 when the protocol stack 1 is polled and the protocol stack 1 starts to start and there are flits available for transmission.
According to the UCIE protocol, the protocol layer does not allow insertion of bubbles (gaps) during transmission once the transmission of data is initiated.
In the embodiment of the application, the protocol layer is synchronously back-pressed by the back-pressure signal adpt < 2> proc < - > trdy of the protocol layer through the Adapter so as to realize the time-sharing multiplexing of the data of the two paths of FDI interfaces. The method comprises the following steps:
Let the two backpressure signals corresponding to protocol stack 0 and protocol stack 1 be adpt < 2 > proc_ trdy _stack_0 and adpt < 2 > proc_ trdy _stack_1, respectively. As in case0 of fig. 3, when protocol stack 0 is first polled, both protocol stacks have data to issue, adpt proc_ trdy _stack_0 is set high and adpt proc_ trdy _stack_1 is set low, at which time Flit of protocol stack 0 can issue and protocol stack 1 will be back-pressed and suspended. Adpt2proc_ trdy _stack_0 is set low and adpt proc_ trdy _stack_1 is set high when protocol stack 1 is first polled, at which time protocol stack 1 is de-backpressure and its suspended Flit can be issued and protocol stack 0 will be backpressure and suspended. And the two protocol stacks can perform ping-pong operation according to Flit by sequentially cycling. I.e. by interlocking the two lanes adpt2proc trdy (not allowing for simultaneous high level) the two protocol stacks perform ping-pong operations per Flit. By polling a specific protocol stack and inserting NOP flits when the protocol stack is free of flits for transmission, it is achieved that a Flits alternating pattern (two FDIs completely independent) is supported without fixation between different protocol layers.
As shown in fig. 4, when adpt2proc_trdy, proc2adpt _valid, and proc2adpt _ irdy are all set, the data will be received by the adapter. The Adapter can back-press the protocol layer through adpt <2 > proc-trdy.
In addition, if Flit transmission requires multiple clock cycles, the protocol layer does not allow inserting a gap in the middle of Flit transmission (i.e., proc adpt _valid and proc adpt _ irdy must be set continuously until all Flit transmissions for one operation are completed).
As shown in fig. 5, only when the Enhanced Multi-stack mode is on (the Enhanced multi_protocol_enable parameter set for UCIE Protocol) will 1 Adapter be hooked up to the 2-way FDI interface and the 1-way RDI interface. The 2-way FDI interface is respectively connected with two protocol stacks, and the following indexes are required to be met according to UCIE protocol requirements:
(1) Dynamic multiplexing between two stacks supporting the same or different protocols. Both protocol stacks and adapters must support a common Flit format to enable this feature. The physical bandwidth used by each stack can be allocated (4 modes). The adapter must publish the maximum percentage of bandwidth that can be accepted by the receiver of each protocol layer. The adapter sender (at the RDI interface) must support 100% (no throttling) and throttle one or both protocol layers to 50% of the maximum bandwidth.
(2) Mode 1 (both allowed to use 100% of the link bandwidth independently, corresponding to each sub-protocol stack or protocol stack using the full bandwidth of the adaptation layer in succession): both are allowed to use 100% of the link bandwidth= > the adapter must support poll arbitration between protocol layers (no scaling).
(3) Modes 2-4 (the remote link partner must ensure that it does not send a contiguous Flits on the link for the same stack when the adapter advertises 50% of the maximum bandwidth for one stack, corresponding to each sub-protocol stack or protocol stack alternating the full bandwidth of the adaptation layer), flit is applicable in all cases, including from FDI, retransmission buffers, and when the data stream is paused and restarted. The adapter is allowed to insert NOP Flits to guarantee this (these Flits bypass the TX retry buffer and are not forwarded to the protocol layers on the receiver). NOP Flits is inserted as needed when transmitting Flits from the retry buffer to avoid exceeding the negotiated maximum bandwidth. The receiving protocol layer must be able to receive Flits at the maximum bandwidth percentage of the advertisement; furthermore, the protocol layer must be able to receive consecutive blocks of the same Flit at maximum advertising link speed. I.e. support mixed flits to parse at maximum rate and single stack flits to parse at maximum rate.
The arbitration mode comprises the following steps: A. 1:1 poll arbitration; B. other implementation-specific arbitration schemes are allowed (adjust stack NOP Flits insertion rate) as long as they are per Flit and do not violate the maximum bandwidth percentage issued by the remote adapter for a given stack (1:2 poll arbitration).
As shown in fig. 6, the shaded filled boxes represent flits of the corresponding protocol stacks, and the values within the boxes represent protocol stack numbers. When two protocol stacks sequentially and independently use 100% of link bandwidth (the ratio of the two bandwidths is 1:1), multiplexing the two protocol stacks according to Flit in each transmission period.
The Adapter will send flits of protocol stack 0 when protocol stack 0 is polled and there are flits available for transmission by protocol stack 0. The Adapter will send flits of the protocol stack 1 when the protocol stack 1 is polled and there are flits available for transmission by the protocol stack 1.
In addition, according to UCIE protocol, the protocol layer does not allow insertion of bubbles (gaps) during transmission once the transmission of data is initiated.
In the embodiment of the application, the protocol layer is synchronously back-pressed by the back-pressure signal adpt < 2> proc < - > trdy of the protocol layer through the Adapter so as to realize the time-sharing multiplexing of the data of the two paths of FDI interfaces. The method comprises the following steps:
let the two backpressure signals corresponding to protocol stack 0 and protocol stack 1 be adpt < 2 > proc_ trdy _stack_0 and adpt < 2 > proc_ trdy _stack_1, respectively.
As shown in fig. 6, when protocol stack 0 is first polled, both protocol stacks have data to issue, adpt proc_ trdy _stack_0 is set high and adpt proc_ trdy _stack_1 is set low, at which time Flit of protocol stack 0 may issue and protocol stack 1 will be back-pressed and suspended. Thereafter, flits of protocol stack 0 continue to be transmitted until it is detected that protocol stack 0 has no flits available for transmission (when proc adpt _valid and proc adpt _ irdy are both low). Adpt2proc_ trdy _stack_1 is always set low during the Flit of protocol stack 0 is sent, adpt2proc_ trdy _stack_0 is not polled low by interlocking with adpt2proc_ trdy _stack_1. Adpt2proc_ trdy _stack_0 is set low and adpt proc_ trdy _stack_1 is set high when no flits are detected for transmission by protocol stack 0, at which point protocol stack 1 is de-backpressure and its suspended flits can be issued and protocol stack 0 will be backpressure and suspended. Thereafter, flits of the protocol stack 1 continue to be transmitted until it is detected that no flits are available for transmission by the protocol stack 1. Adpt2proc_ trdy _stack_0 is always set low during the transmission of Flit of protocol stack 1, adpt2proc_ trdy _stack_1 is not polled low by interlocking with adpt2proc_ trdy _stack_0. That is, by interlocking the two paths adpt2proc_ trdy in a complete operation (not allowing simultaneous high level), the two protocol stacks are sequentially exclusive of 100% of the bandwidth. The same MUX (multiplexer) component is used both architecturally and for the Flit ping-pong operation in fig. 3 by simply MUX for both protocol stacks per transmit cycle. The above method supports Flits alternating modes (two-way FDI is completely independent) without fixation between different protocol layers.
As shown in fig. 7a, the hatched filled solid boxes represent flits of the corresponding protocol stacks, the white filled solid boxes represent NOP flits, and the values within the boxes represent protocol stack numbers. When two protocol layers use 50% of link bandwidth respectively, the ratio of the two bandwidths is 1:1. As shown in fig. 7b, when two protocol layers use 50% and 100% of link bandwidths, respectively, the ratio of the two bandwidths is 2:1. Wherein, both protocol stack 0 and protocol stack 1 can be configured as 50% and the other as 100%. Since the principle of both cases is the same, only 100% of the protocol stack 0 is configured, and 50% of the protocol stack 1 is configured for illustration. As shown in fig. 7b, when two protocol layers use 50% of the link bandwidth respectively, the principle is identical to that of the multi-stack mode in fig. 3, and will not be repeated.
As shown in fig. 7b, the hatched filled solid boxes represent flits of the corresponding protocol stacks, the white filled solid boxes represent NOP flits, the white filled dashed boxes represent disabled, and the values within the boxes represent protocol stack numbers. When protocol stack 0 is configured as 100% and protocol stack 1 is configured as 50%, the main difference compared to the multi-stack mode of fig. 3 is that: since the weights of protocol stack 0 and protocol stack 1 are 2:1, ping-pong operation of both protocol stacks per transmission cycle is forced to disable the odd number of cycles (signal adpt2proc_ trdy is set low) when protocol stack 1 wins arbitration. The specific case may refer to the principle of the multi-stack mode in fig. 2, and will not be described in detail.
In an alternative embodiment of the present application, based on the state of the virtual state machine of each sub-protocol stack corresponding to each protocol stack of the adaptation layer, the obtaining the state of the state machine of each protocol stack includes:
for each protocol stack, if two sub-protocol stacks corresponding to the protocol stack are started, determining the state of the state machine of the protocol stack based on the states of the virtual state machines of the two sub-protocol stacks and the first state discrimination table through an arbiter/multiplexer;
if only one of the two sub-protocol stacks corresponding to the protocol stack is started, the state of the virtual state machine of the started sub-protocol stack is directly used as the state of the state machine of the protocol stack through the arbiter/multiplexer.
Further, the state of the virtual state machine of the started sub-protocol stack is directly used as the state of the state machine of the protocol stack through the arbiter/multiplexer, and the method comprises the following steps:
And detecting that a bypass enabling control signal of one of the two sub-protocol stacks in the first preset register is set and a bypass enabling control signal of the other sub-protocol stack is not set by a supporting bypass function of the arbiter/multiplexer, and taking the state of a virtual state machine of the sub-protocol stack on which the bypass enabling control signal is set as the state of a state machine of the protocol stack directly.
As shown in fig. 8, 1 Adapter will only interface with the 2-way FDI interface and the 1-way RDI interface when the multi-stack mode is on. The 2-way FDI interface is respectively connected with the two sub-protocol stacks, and the following indexes are required to be met according to UCIE protocol requirements:
(1) The ARB/MUX arbitrates two FDI requests (proc adpt _state_req) and multiplexes the data dynamically.
(2) 2-Way power state transition requests from the protocol layer are processed, parsed into 1 request and forwarded to the physical layer. Vlsm of each FDI interface is maintained, an ARB/MUX link management packet ALMP is generated, and a cross-link interactive power state conversion request is carried out for each protocol layer.
(3) The RX-side ARB/MUX determines the relevant protocol and transmits the Flit to the correct protocol layer (adpt 2proc_valid/adpt2proc_cancel/adpt2 proc_data). ALMP is processed, participating in any necessary handshakes and updating each vlsm appropriately.
(4) In PCIE mode the ARB/MUX will be bypass, disabling the ARB/MUX from generating ALMP. Based on the status of requests from 1 (FDI 0 or FDI 1) or multiple sub-protocol layers, the ARB/MUX will change the request status to the physical layer.
(5) For implementations in which the sub-protocol layer supports directing the ARB/MUX to LINKRESET or LinkError or LinkDisabled, the ARB/MUX must unconditionally propagate these requests from the sub-protocol layer to the physical layer, with a higher priority than the Table (i.e., the first preset discrimination Table). DPHY in the Disabled state allows CXL.io downstream ports to be mapped to LinkError.
As shown in fig. 9-10, the interlocking principle of the FDI interface is identical to the principle of the enhanced multi-stack mode only when the multi-sub-stack mode is on, and will not be described again. The main difference compared to the enhanced multi-stack mode is the mechanism of FDI link state switching:
since sub-protocol stack 0 and sub-protocol stack 1 may be enabled at the same time, only path 1 may be enabled. There are 3 cases.
When only 1 sub-protocol stack is started, the LSM of ADAPTER LAYER does not need to coordinate with other sub-protocol stacks or other protocol stacks, and the LSM directly interacts with the LTSSM. The LSM needs to quickly complete state switching to improve data transmission efficiency. At this point the sub-protocol stacks need not interface with their own vlsm first, and the functionality of both paths vlsm will be bypassed. Corresponding to 2 cases:
Only the sub-protocol stack 0 corresponding to FDI0 is on, at which time the configured register (i.e., the first preset register) vlsm0_ctrl_en (i.e., the bypass enable control signal) is detected to be set (for bypassing vlsm 0), so state0 from FDI0 is directly used as the final state and interacts with the LSM.
Only the sub-protocol stack 1 corresponding to FDI1 is on, at which time it is detected that the configured register vlsm0_ctrl_en (for bypass vlsm 0) is not set and the register vlsm1_ctrl_en (for bypass vlsm 1) is set, so state1 from FDI1 is directly the final state and interacts with the LSM.
When 2 sub-protocol stacks are started simultaneously, the sub-protocol stacks need to be docked to respective vlsm (vlsm 0 and vlsm in the figure), and the two paths vlsm need to coordinate with each other to interact with the LSM of the protocol stacks, wherein a first preset discrimination table used for the mutual coordination can be shown in table 1. Therefore, the two sub-protocol stacks are supported to be in different states, and further, the method is suitable for more complex application scenes.
TABLE 1
Wherein, each row in table 1 represents a state vlsm, each column represents a state ,Reset,Active,L1.0,L1.1(reserved for future use),L1.2(reserved for future use),L1.3(reserved for future use) of vlsm1 and a state_l2 is different. For example, if vlsm0 is L1.0 and vlsm is Reset, then the coordinated state of the look-up table should be L1.0.
For example, when the sub-protocol stack 0 is in the L1.0 state and the sub-protocol stack 1 is in the Active state, the decision result is that the Active state is still required for the LSM (ADAPTER LAYER is only 1, when one sub-protocol stack needs to be in the Active state to transmit data, and the other sub-protocol stack needs to be in the PM state to reduce power consumption, ADAPTER LAYER needs to be continuously in the Active state to transmit data).
In summary, by supporting the function of bypassing the ARB/MUX when only 1 sub-protocol stack is started, there is no handover overhead between sub-protocol stacks when 1 sub-protocol stack is independently used. Furthermore, the state switching is completed rapidly to improve the data transmission efficiency. The 2 FDI interfaces are cooperated through the ARB/MUX function when 2 sub-protocol stacks are started to improve the overall data transmission efficiency. Meanwhile, 2 FDI interfaces are supported to independently switch respective states so as to adapt to more complex application scenes.
In an alternative embodiment of the present application, obtaining the target state of the adaptation layer based on the state of the state machine of each protocol stack includes:
if both protocol stacks are started, determining a target state through a stack multiplexer based on states of state machines of the two protocol stacks and a second state discrimination table;
if only one of the two protocol stacks is started, the state of the state machine of the started protocol stack is directly used as a target state through a stack multiplexer.
Further, the state of the state machine of the started protocol stack is directly used as a target state through the stack multiplexer, which comprises the following steps:
and detecting that a bypass enabling control signal of one of the two protocol stacks in the second preset register is set and the bypass enabling control signal of the other protocol stack is not set by the support bypass function of the stack multiplexer, and taking the state of a state machine of the protocol stack on which the bypass enabling control signal is set as a target state directly.
As shown in fig. 11, 1 Adapter will interface with the 4-way FDI interface and the 1-way RDI interface when the multi-stack mode is on and each protocol stack is on the multi-sub-stack mode. The 4-path FDI interfaces are respectively connected with 4 sub-protocol stacks, and the following indexes are required to be met according to UCIE protocol requirements:
(1) The Stack Mux maintains a separate Link state machine for each protocol Stack.
(2) If no ARB/MUX exists in the single stack, the single end detects the sending and enters ACTIVE STATE after receiving the Rsp.active; if the ARB/MUX exists, the single end detects the sending and receives the Rsp.active, triggers the ARB/MUX to perform ALMP exchange on the main band, and finally converts vlsms to ACTIVE STATE.
(3) The Stack MUX supports multiplexing two FDI requests (proc adpt _state_req), supporting independent execution of both protocol stacks FDI Bring Up.
As shown in fig. 12, when the multi-stack mode is opened and each protocol stack is opened, the interlocking principle of the FDI interface and the principle of the enhanced multi-stack mode are identical, and will not be described again. The mechanism of FDI link state switching for Stack Mux is as follows:
since protocol stack 0 and protocol stack 1 may be enabled at the same time, only 1 way may be enabled. There are 3 cases.
When only 1 protocol stack is started, the LSM of ADAPTER LAYER does not need to coordinate with other protocol stacks, and the LSM directly interacts with the LTSSM. The LSM needs to quickly complete state switching to improve data transmission efficiency. At this point the protocol Stack does not need to first interface with the respective lsms in the Stack Mux (e.g., lsm0 and lsm1 in the figure), the functions of both lsms will be bypassed. Corresponding to 2 cases:
Only the sub-protocol stacks 0 and 1 corresponding to FDI0 and FDI1 are turned on, and the final state0/state1/state2 from FDI0 and FDI1 is directly used as the final state (i.e. the target state) and interacts with LTSSM (bypasses lsm0 and lsm 1).
Only the sub-protocol stacks 2 and 3 corresponding to FDI2 and FDI3 are turned on, and the final state3/state4/state5 from FDI2 and FDI3 is directly used as the final state and interacts with LTSSM (bypasses lsm0 and lsm 1).
When 2 protocol stacks are started simultaneously, the protocol stacks need to be firstly abutted against respective lsms (such as lsm0 and lsm1 in the figure), and the two lsms need to coordinate with each other (perform Table lookup to determine a final state) to interact with the LTSSM, wherein the Table is a second preset discrimination Table (i.e. Table in the Stack Mux in fig. 12). Therefore, two protocol stacks are supported to be in different states, and further, the method is suitable for more complex application scenes.
For example, the result of the decision when sub-protocol stack 0 is in Active state and sub-protocol stack 1 is in Reset state is Active state, i.e. LSM is still required to be in Active state at this time (ADAPTER LAYER is only 1, when one sub-protocol stack needs to be in Active state to transmit data, another sub-protocol stack needs to be in Reset state to wait for start-up ADAPTER LAYER needs to be continued to be in Active state to transmit data).
Fig. 13 is a schematic diagram of a dual stack asynchronous entry Active state of the dual stack 4 sub-stack mode ADAPTER LAYER, and the specific procedure of the dual stack asynchronous entry Active state is as follows:
the parameter negotiation phase will complete the dual stack configuration at the same time.
The RDI interface is first brign up, and the FDI interface is then independent bring up.
The most complex case is as follows:
ALMP exchanges are performed on the main band sent and received by the protocol Stack 0, adapter0.Rsp.Active→Stack0, and vlsms and lsm0 are finally converted into ACTIVE STATE.
ALMP exchanges are carried out on the main band of the protocol Stack 1 sent and received adapter1.Rsp. Active→Stack1, and vlsm and lsm1 are finally converted into ACTIVE STATE.
The second preset distinguishing table may be: if all ADAPTER LSMS have moved to the common state of LINKRESET/Disabled or Linkerror, then the RDI will be moved to the corresponding state. But if ADAPTER LSMS were in a different state combination (LinkError, disabled or LINKRESET), the RDI was moved to the highest priority state. The priority is from high to low: linkError, disabled, linkReset.
ADAPTER LSM can transition to LINKRESET or Disabled states without requiring RDI transitions to these states. In the case of multiple protocol stacks on the same physical link/adapter, each protocol can enter these states independently without affecting the other protocol stacks on the RDI.
Fig. 14 is a schematic diagram illustrating coordination of two-sided FDI interfaces in the dual-stack 4-sub-stack mode ADAPTER LAYER according to an embodiment of the present application.
In summary, when only 1 protocol Stack is started, by supporting the function of bypassing Stack Mux, there is no handover overhead between protocol stacks when 1 protocol Stack is independently used. Further, the state switching is completed more quickly to improve the data transmission efficiency. When 2 protocol stacks are started, the function of the Stack Mux is used for cooperating with 2 protocol Stack FDI interfaces so as to improve the total data transmission efficiency. Meanwhile, 2 protocol stack FDI interfaces are supported to independently switch respective states so as to adapt to more complex application scenes.
Fig. 15 is a block diagram of a configuration system of an adaptation layer bandwidth in a high-speed serial interface according to an embodiment of the present application, as shown in fig. 15, the system 1500 may include: a first state determination module 1501, a second state determination module 1502, and a bandwidth configuration module 1503, wherein:
the first state determining module 1501 is configured to obtain a state of a state machine of each protocol stack based on a state of a virtual state machine of each sub-protocol stack corresponding to each protocol stack of the adaptation layer;
The second state determining module 1502 is configured to obtain a target state of the adaptation layer based on a state of a state machine of each protocol stack, and perform state switching based on the target state of the adaptation layer;
The bandwidth configuration module 1503 is configured to send a backpressure signal to each sub-protocol stack through the adaptation layer based on a preset bandwidth configuration mode when data transmission is performed after the state switching is completed, and perform bandwidth configuration for each protocol stack or sub-protocol stack.
According to the scheme provided by the application, when the adaptation layer is in butt joint with a plurality of protocol stacks and the protocol stacks are in butt joint with a plurality of sub-protocol stacks, the state of the corresponding protocol stack is determined through the state of the virtual state machine of each sub-protocol stack, then the target state to be switched by the adaptation layer is determined through the state of the state machine of each protocol stack, and further the state switching is completed based on the target state. The scheme is suitable for a scene that the adaptation layer is in butt joint with a plurality of protocol stacks and each protocol stack is in butt joint with a plurality of sub-protocol stacks, and bandwidth configuration can be carried out for each protocol stack or sub-protocol stack according to a preset bandwidth configuration mode.
In an alternative embodiment of the application, the adaptation layer corresponds to two protocol stacks, and each protocol stack corresponds to two sub-protocol stacks.
In an alternative embodiment of the present application, the first state determining module is specifically configured to:
for each protocol stack, if two sub-protocol stacks corresponding to the protocol stack are started, determining the state of the state machine of the protocol stack based on the states of the virtual state machines of the two sub-protocol stacks and the first state discrimination table through an arbiter/multiplexer;
if only one of the two sub-protocol stacks corresponding to the protocol stack is started, the state of the virtual state machine of the started sub-protocol stack is directly used as the state of the state machine of the protocol stack through the arbiter/multiplexer.
In an alternative embodiment of the application, the first state determination module is further configured to:
And detecting that a bypass enabling control signal of one of the two sub-protocol stacks in the first preset register is set and a bypass enabling control signal of the other sub-protocol stack is not set by a supporting bypass function of the arbiter/multiplexer, and taking the state of a virtual state machine of the sub-protocol stack on which the bypass enabling control signal is set as the state of a state machine of the protocol stack directly.
In an alternative embodiment of the present application, the second state determining module is specifically configured to: :
if both protocol stacks are started, determining a target state through a stack multiplexer based on states of state machines of the two protocol stacks and a second state discrimination table;
if only one of the two protocol stacks is started, the state of the state machine of the started protocol stack is directly used as a target state through a stack multiplexer.
In an alternative embodiment of the application, the second state determination module is further configured to:
and detecting that a bypass enabling control signal of one of the two protocol stacks in the second preset register is set and the bypass enabling control signal of the other protocol stack is not set by the support bypass function of the stack multiplexer, and taking the state of a state machine of the protocol stack on which the bypass enabling control signal is set as a target state directly.
In an alternative embodiment of the present application, the bandwidth configuration module is specifically configured to:
If the preset bandwidth configuration mode is that all bandwidths of the adaptation layer are sequentially used by all sub-protocol stacks, when any sub-protocol stack is polled, any sub-protocol stack data packet is sent until no data packet is detected for sending by any sub-protocol stack, in the process of sending the data packet, a back pressure signal of any sub-protocol stack is set to be high level, and back pressure signals of other sub-protocol stacks are set to be low level;
If the preset bandwidth configuration mode is that all bandwidths of the adaptation layer are alternately used by each sub-protocol stack, ping-pong operation is performed on each sub-protocol stack according to data packets in the same transmission period to transmit the data packets of each sub-protocol stack, and when any sub-protocol stack is polled, the back pressure signal of any sub-protocol stack is set to be high level, and the back pressure signals of other sub-protocol stacks are set to be low level.
In an alternative embodiment of the present application, if the preset bandwidth configuration mode is that all bandwidths of the adaptation layer are alternately used by each sub-protocol stack, the bandwidth configuration module is further configured to:
And in the ping-pong operation process, if any one of the sub-protocol stacks is polled and no data packet is provided for transmission by any one of the sub-protocol stacks, inserting a non-operation data packet.
In an alternative embodiment of the present application, if the preset bandwidth configuration mode is that all bandwidths of the adaptation layer are alternately used by each sub-protocol stack, the bandwidth configuration module is further configured to:
During ping-pong operation, either the odd or even cycles of any one of the polled sub-protocol stacks are disabled.
Referring now to fig. 16, there is illustrated a schematic diagram of an electronic device 1600, such as a terminal device or server performing the method illustrated in fig. 1, suitable for use in implementing embodiments of the present application. The electronic device in the embodiment of the present application may include, but is not limited to, a mobile terminal such as a mobile phone, a notebook computer, a digital broadcast receiver, a PDA (personal digital assistant), a PAD (tablet computer), a PMP (portable multimedia player), a car-mounted terminal (e.g., car navigation terminal), a wearable device, etc., and a fixed terminal such as a digital TV, a desktop computer, etc. The electronic device shown in fig. 16 is merely an example, and should not impose any limitation on the functionality and scope of use of embodiments of the present application.
An electronic device includes: the memory is used for storing programs for executing the methods according to the method embodiments; the processor is configured to execute a program stored in the memory. Among other things, the processor herein may be referred to as a processing device 1601 described below, and the memory may include at least one of a Read Only Memory (ROM) 1602, a Random Access Memory (RAM) 1603, and a storage device 1608 described below, as follows:
As shown in fig. 16, the electronic device 1600 may include a processing means (e.g., a central processor, a graphics processor, etc.) 1601 that may perform various suitable actions and processes according to a program stored in a Read Only Memory (ROM) 1602 or a program loaded from a storage means 1608 into a Random Access Memory (RAM) 1603. In the RAM1603, various programs and data required for the operation of the electronic device 1600 are also stored. The processing device 1601, ROM 1602, and RAM1603 are connected to each other by a bus 1604. An input/output (I/O) interface 1605 is also connected to the bus 1604.
In general, the following devices may be connected to the I/O interface 1605: input devices 1606 including, for example, a touch screen, a touch pad, a keyboard, a mouse, a camera, a microphone, an accelerometer, a gyroscope, and the like; an output device 1607 including, for example, a Liquid Crystal Display (LCD), a speaker, a vibrator, and the like; including storage 16082 such as magnetic tape, hard disk, etc., and communication 1609. The communication means 1609 may allow the electronic device 1600 to communicate wirelessly or by wire with other devices to exchange data. While fig. 16 shows an electronic device having various means, it is to be understood that not all of the illustrated means are required to be implemented or provided. More or fewer devices may be implemented or provided instead.
In particular, according to embodiments of the present application, the processes described above with reference to flowcharts may be implemented as computer software programs. For example, embodiments of the present application include a computer program product comprising a computer program embodied on a non-transitory computer readable medium, the computer program comprising program code for performing the method shown in the flow chart. In such an embodiment, the computer program may be downloaded and installed from a network via the communication device 1609, or installed from the storage device 1608, or installed from the ROM 1602. When being executed by the processing means 1601, performs the above-described functions defined in the method of the embodiment of the present application.
The computer readable storage medium of the present application may be a computer readable signal medium or a computer readable storage medium, or any combination of the two. The computer readable storage medium can be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or a combination of any of the foregoing. More specific examples of the computer-readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. In the present application, however, the computer-readable signal medium may include a data signal propagated in baseband or as part of a carrier wave, with the computer-readable program code embodied therein. Such a propagated data signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination of the foregoing. A computer readable signal medium may also be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to: electrical wires, fiber optic cables, RF (radio frequency), and the like, or any suitable combination of the foregoing.
In some embodiments, the clients, servers may communicate using any currently known or future developed network protocol, such as HTTP (HyperText Transfer Protocol ), and may be interconnected with any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network ("LAN"), a wide area network ("WAN"), the internet (e.g., the internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks), as well as any currently known or future developed networks.
The computer readable medium may be contained in the electronic device; or may exist alone without being incorporated into the electronic device.
The computer readable medium carries one or more programs which, when executed by the electronic device, cause the electronic device to:
Based on the state of the virtual state machine of each sub-protocol stack corresponding to each protocol stack of the adaptation layer, acquiring the state of the state machine of each protocol stack; acquiring a target state of the adaptation layer based on the state of a state machine of each protocol stack, and performing state switching based on the target state of the adaptation layer; and when the data transmission is carried out after the state switching is completed, transmitting a back pressure signal to each sub-protocol stack through the adaptation layer based on a preset bandwidth configuration mode, and carrying out the bandwidth configuration of the adaptation layer for each protocol stack or sub-protocol stack.
Computer program code for carrying out operations of the present application may be written in one or more programming languages, including, but not limited to, an object oriented programming language such as Java, smalltalk, C ++ and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of remote computers, the remote computer may be connected to the user computer through any kind of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or may be connected to an external computer (e.g., connected through the internet using an internet service provider).
The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present application. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The modules or units involved in the embodiments of the present application may be implemented in software or in hardware. Where the name of the module or unit does not constitute a limitation of the unit itself in some cases, for example, the first constraint acquisition module may also be described as "a module that acquires the first constraint".
The functions described above herein may be performed, at least in part, by one or more hardware logic components. For example, without limitation, exemplary types of hardware logic components that may be used include: a Field Programmable Gate Array (FPGA), an Application Specific Integrated Circuit (ASIC), an Application Specific Standard Product (ASSP), a system on a chip (SOC), a Complex Programmable Logic Device (CPLD), and the like.
In the context of the present application, a machine-readable medium may be a tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. The machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. The machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples of a machine-readable storage medium would include an electrical connection based on one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
Embodiments of the present application provide a computer program product or computer program comprising computer instructions stored in a computer readable storage medium. The processor of the computer device reads the computer instructions from the computer readable storage medium, and the processor executes the computer instructions such that the computer device performs:
Based on the state of the virtual state machine of each sub-protocol stack corresponding to each protocol stack of the adaptation layer, acquiring the state of the state machine of each protocol stack; acquiring a target state of the adaptation layer based on the state of a state machine of each protocol stack, and performing state switching based on the target state of the adaptation layer; and when the data transmission is carried out after the state switching is completed, transmitting a back pressure signal to each sub-protocol stack through the adaptation layer based on a preset bandwidth configuration mode, and carrying out the bandwidth configuration of the adaptation layer for each protocol stack or sub-protocol stack.
It should be understood that, although the steps in the flowcharts of the figures are shown in order as indicated by the arrows, these steps are not necessarily performed in order as indicated by the arrows. The steps are not strictly limited in order and may be performed in other orders, unless explicitly stated herein. Moreover, at least some of the steps in the flowcharts of the figures may include a plurality of sub-steps or stages that are not necessarily performed at the same time, but may be performed at different times, the order of their execution not necessarily being sequential, but may be performed in turn or alternately with other steps or at least a portion of the other steps or stages.
The foregoing is only a partial embodiment of the present invention, and it should be noted that it will be apparent to those skilled in the art that modifications and adaptations can be made without departing from the principles of the present invention, and such modifications and adaptations are intended to be comprehended within the scope of the present invention.

Claims (10)

1. An adaptation layer bandwidth configuration method in a high-speed serial interface, comprising the steps of:
Based on the state of the virtual state machine of each sub-protocol stack corresponding to each protocol stack of the adaptation layer, acquiring the state of the state machine of each protocol stack;
Acquiring a target state of the adaptation layer based on the state of a state machine of each protocol stack, and performing state switching based on the target state of the adaptation layer;
and when the data transmission is carried out after the state switching is completed, transmitting a back pressure signal to each sub-protocol stack through the adaptation layer based on a preset bandwidth configuration mode, and carrying out the bandwidth configuration of the adaptation layer for each protocol stack or sub-protocol stack.
2. The method of claim 1, wherein the adaptation layer corresponds to two protocol stacks, and each protocol stack corresponds to two sub-protocol stacks.
3. The method according to claim 2, wherein the obtaining the state of the state machine of each protocol stack based on the state of the virtual state machine of each sub-protocol stack corresponding to each protocol stack of the adaptation layer comprises:
For each protocol stack, if two sub-protocol stacks corresponding to the protocol stack are started, determining the state of the state machine of the protocol stack based on the state of the virtual state machines of the two sub-protocol stacks and a first state discrimination table through an arbiter/multiplexer;
If only one of the two sub-protocol stacks corresponding to the protocol stack is started, the state of the virtual state machine of the started sub-protocol stack is directly used as the state of the state machine of the protocol stack through the arbiter/multiplexer.
4. A method according to claim 3, wherein said directly taking the state of the virtual state machine of the started sub-protocol stack as the state of the state machine of the protocol stack by the arbiter/multiplexer comprises:
And detecting that a bypass enabling control signal of one of the two sub-protocol stacks in a first preset register is set and a bypass enabling control signal of the other sub-protocol stack is not set by a supporting bypass function of the arbiter/multiplexer, and taking the state of a virtual state machine of the sub-protocol stack on which the bypass enabling control signal is set as the state of a state machine of the protocol stack directly.
5. The method of claim 2, wherein the obtaining the target state of the adaptation layer based on the state of the state machine of each protocol stack comprises:
If both protocol stacks are started, determining the target state through a stack multiplexer based on the states of state machines of the two protocol stacks and a second state discrimination table;
if only one of the two protocol stacks is started, the state of the state machine of the started protocol stack is directly used as the target state through a stack multiplexer.
6. The method of claim 5, wherein the directly taking the state of the state machine of the started protocol stack as the target state through the stack multiplexer comprises:
and if the bypass enabling control signal of one of the two protocol stacks in the second preset register is detected to be set by the support bypass function of the stack multiplexer and the bypass enabling control signal of the other protocol stack is not set, the state of the state machine of the protocol stack on which the bypass enabling control signal is set is directly used as the target state.
7. The method according to claim 1 or 2, wherein the sending, by the adaptation layer, a backpressure signal to each sub-protocol stack based on a preset bandwidth configuration mode, performing an adaptation layer bandwidth configuration for each protocol stack or sub-protocol stack, comprises:
if the preset bandwidth configuration mode is that all bandwidths of the adaptation layer are sequentially used by all sub-protocol stacks, when any sub-protocol stack is polled, transmitting any sub-protocol stack data packet until no data packet is detected for transmission by any sub-protocol stack, and in the process of transmitting the data packet, setting a back pressure signal of any sub-protocol stack to be high level and setting back pressure signals of other sub-protocol stacks to be low level;
If the preset bandwidth configuration mode is that all bandwidths of the adaptation layer are alternately used by each sub-protocol stack, ping-pong operation is performed on each sub-protocol stack according to data packets in the same transmission period to transmit the data packets of each sub-protocol stack, and when any sub-protocol stack is polled, the back pressure signal of any sub-protocol stack is set to be high level, and the back pressure signals of other sub-protocol stacks are set to be low level.
8. The method of claim 7, wherein if the predetermined bandwidth configuration mode alternates the full bandwidth of the adaptation layer for each sub-protocol stack, the method further comprises:
And in the ping-pong operation process, if any one sub-protocol stack is polled and the data packet is not transmitted by any sub-protocol stack, inserting a non-operation data packet.
9. The method of claim 7, wherein if the predetermined bandwidth configuration mode alternates the full bandwidth of the adaptation layer for each sub-protocol stack, the method further comprises:
and during the ping-pong operation, disabling the odd number of periods or the even number of periods of any one of the polled sub-protocol stacks.
10. An adaptation layer bandwidth allocation system in a high-speed serial interface, comprising:
The first state determining module is used for obtaining the state of the state machine of each protocol stack based on the state of the virtual state machine of each sub-protocol stack corresponding to each protocol stack of the adaptation layer;
the second state determining module is used for acquiring the target state of the adaptation layer based on the state of the state machine of each protocol stack and performing state switching based on the target state of the adaptation layer;
and the bandwidth configuration module is used for transmitting a back pressure signal to each sub-protocol stack based on a preset bandwidth configuration mode through the adaptation layer when data transmission is performed after the state switching is completed, and performing bandwidth configuration on each protocol stack or sub-protocol stack.
CN202410211149.8A 2024-02-26 2024-02-26 Method and system for configuring bandwidth of adaptation layer in high-speed serial interface Pending CN118018418A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410211149.8A CN118018418A (en) 2024-02-26 2024-02-26 Method and system for configuring bandwidth of adaptation layer in high-speed serial interface

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410211149.8A CN118018418A (en) 2024-02-26 2024-02-26 Method and system for configuring bandwidth of adaptation layer in high-speed serial interface

Publications (1)

Publication Number Publication Date
CN118018418A true CN118018418A (en) 2024-05-10

Family

ID=90942710

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410211149.8A Pending CN118018418A (en) 2024-02-26 2024-02-26 Method and system for configuring bandwidth of adaptation layer in high-speed serial interface

Country Status (1)

Country Link
CN (1) CN118018418A (en)

Similar Documents

Publication Publication Date Title
US11216235B2 (en) Message passing framework for audio/video streaming in a topology of devices
US8718065B2 (en) Transmission using multiple physical interface
JPH0720122B2 (en) Packet communication system using ring type transmission line
JP2010503095A (en) Data word stream processing device
CN114679415A (en) Non-blocking banyan network meeting AXI5-Lite protocol standard
CN118018418A (en) Method and system for configuring bandwidth of adaptation layer in high-speed serial interface
RU175049U9 (en) COMMUNICATION INTERFACE DEVICE SpaceWire
TWI534753B (en) A data processing apparatus for segmental processing of input data, systems using the apparatus and methods for data transmittal
TW201405315A (en) Data routing system supporting dual master apparatuses
JPH08251196A (en) Parallel computer
CN112437032B (en) Data transmitting/receiving device and method, storage medium, and electronic apparatus
WO2024060247A1 (en) Data exchange method and apparatus based on bluetooth communication, and device and storage medium
CN101674335A (en) Single network interface device with transmission ports and method thereof
KR100324281B1 (en) Centralized High Speed Data Processing Module
CN117914808A (en) Data transmission system, method and switch
JP2001142852A (en) Synchronism and communication control device for high- speed parallel computation
CN118041927A (en) Communication method and device
CN117687947A (en) PCIe-based bit stream reading method and device
CN115221098A (en) Communication method and device among multi-core processor cores, electronic equipment and medium
GB2477415A (en) Path training via messages in a video streaming topology
JP2004236013A (en) Data transmission system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination