Method and apparatus for adjusting link width
By sending a link width adjustment message to the second device and dynamically adjusting the link width, the problem that the link width in the prior art is difficult to match the service data transmission requirements, and power consumption reduction and transmission efficiency improvement are achieved.
Patent Information
- Application Number
- PCT/CN2023/140388
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-12-20
- Publication Date
- 2025-06-26
AI Technical Summary
The prior art is difficult to dynamically adjust the link width to match the transmission requirements of service data, resulting in waste of power consumption or transmission blockage.
By sending a link width adjustment message to the second device, the link width is dynamically adjusted, and the channel is turned on or closed according to service needs to achieve matching the link width and service data transmission requirements.
It realizes dynamic adjustment of link width according to service needs, reduce power consumption, avoid transmission blocking, and improve link utilization.
Smart Images

Figure CN2023140388_26062025_PF_FP_ABST
Abstract
Description
Method and device for adjusting link width Technical Field
[0001] The present application relates to the field of communications, and in particular to a method and device for adjusting link width. Background Art
[0002] With the rapid development of communication technology, business data is transmitted between interconnected devices through the links between them. As the rates supported by interfaces become higher and higher, wider link bandwidth is required to match the rates to ensure the transmission rate of business data.
[0003] When services are idle, excessive link bandwidth can waste power. Therefore, dynamic link bandwidth management is used to match link bandwidth with service data transmission requirements, saving link power consumption while ensuring service data transmission rates.
[0004] Summary of the Invention
[0005] The present application provides a method and device for adjusting link width, which realize dynamic adjustment of link width.
[0006] To achieve the above objectives, the present invention adopts the following technical solutions:
[0007] In a first aspect, a method for adjusting link width is provided, the method being performed by a first device or a chip in the first device. The method may include: sending a link width adjustment message to a second device, the link width adjustment message including a link width request parameter; receiving a response message from the second device; and adjusting, based on the response message, a link width of a port of the first device to the width indicated by the link width request parameter.
[0008] The solution provided in this application can dynamically adjust the number of channels for high-speed data transmission according to business conditions by adjusting the link width. When business demand decreases, some channels can be closed to reduce power consumption. When business demand increases, channels can be quickly opened to support high-speed transmission to avoid blocking business.
[0009] In a possible implementation, the link width request parameter is used to indicate a first number; the link width adjustment message also includes a low power consumption level. The above-mentioned adjustment of the port sending link of the first device to the width indicated by the link width request parameter includes: determining the channel to be closed, and in addition to the channel to be closed, there are a first number of channels in a high-speed state in the port sending link. The channel to be closed enters the state indicated by the low power consumption level. The link width adjustment message is used to reduce the number of channels, and the link width adjustment message is used to indicate that some channels in the port sending link enter the indicated low power consumption level, and the remaining channel data in the high-speed state is the first number. Dynamic reduction of the number of link channels is achieved.
[0010] Another possible implementation manner is to determine the channels to be closed, including: determining a second number of channels, numbered from largest to smallest, from the channels whose port sending links are currently in a high-speed state as the channels to be closed, where the second number is the number of channels currently in a high-speed state minus the first number.
[0011] Another possible implementation method is to determine the channels to be closed, including: determining a second number of channels with channel numbers from small to large from the channels whose port sending links are currently in a high-speed state as the channels to be closed, where the second number is the number of channels currently in a high-speed state minus the first number.
[0012] Another possible implementation manner is to determine the channels to be closed, including: randomly selecting a second number of channels from the channels whose port sending links are currently in a high-speed state as the channels to be closed, where the second number is the number of channels currently supporting the high-speed state minus the first number.
[0013] In another possible implementation, before the channel to be closed enters the state indicated by the low power consumption level, the method provided in this application may further include: sending a control frame indicating that the logical layer is electrically idle in the channel to be closed. This indicates to the other end that the channel to be closed is idle, thereby facilitating the other end to determine the channel to be closed.
[0014] In another possible implementation, the method provided by the present application may further include: sending a padding control frame in a first number of channels in a high-speed state to achieve multi-channel scrambling code reset at both ends of the transmitter and receiver.
[0015] In another possible implementation, the method provided in the present application may further include: sending a data start control frame in a first number of high-speed channels to achieve multi-channel alignment, and the transmitting and receiving ends use the adjusted link bandwidth to transmit data.
[0016] In another possible implementation, the link width request parameter is used to indicate a third number. Adjusting the port transmission link of the first device to the width indicated by the link width request parameter includes: determining the channels to be opened, where the number of channels currently in a high-speed state in the port transmission link plus the number of channels to be opened equals the third number; and sending a training sequence on the channels to be opened. A link width adjustment message is used to increase the number of channels. The link width adjustment message is used to instruct the opening of some channels in a non-high-speed state in the port transmission link, so that the number of channels in a high-speed state equals the third number. This achieves a dynamic increase in the number of link channels.
[0017] In another possible implementation, the determining of the channels to be enabled includes: starting with the largest channel number among the channels whose port sending links are currently in a high-speed state, determining a fourth number of channels, numbered in ascending order, as the channels to be enabled, where the fourth number is the third number minus the number of channels currently in a high-speed state.
[0018] In another possible implementation, the determining of the channels to be enabled includes: starting with the smallest channel number among the channels whose port sending links are currently in a high-speed state, determining a fourth number of channels, ranked in descending order of channel numbers, as the channels to be enabled, where the fourth number is the third number minus the number of channels currently in a high-speed state.
[0019] In another possible implementation, the determining of the channels to be opened includes randomly selecting a fourth number of channels from the channels in the port sending link that are not currently in a high-speed state as the channels to be opened, where the fourth number is the third number minus the number of channels currently in a high-speed state.
[0020] Another possible implementation method is to send a training sequence on the channel to be opened, including: sending a training sequence on the channel to be opened; receiving a channel lock feedback message sent by a second device; completing the training of the channel to be opened through interaction with the other end, opening the channel to be opened, and increasing the link width.
[0021] Another possible implementation involves sending a training sequence on the channel to be enabled, which may also include: sending a fill control frame on the channel to be enabled; sending a fill control frame on a high-speed channel in the port's transmission link; and sending a data start control frame on all high-speed channels in the port's transmission link. For the channel to be enabled, the link width is increased.
[0022] In another possible implementation, before sending a training sequence on the channel to be opened, the link width adjustment method provided in this application may further include sending a link training initiation message, where the link training initiation message is used to indicate the initiation of training on the channel to be opened. The link training initiation message notifies the peer end to start training on the channel to be opened, thereby achieving synchronization of the transmitting and receiving channel training.
[0023] Another possible implementation method is that before sending the training sequence on the channel to be opened, the method for adjusting the link width provided in the present application may also include: sending an electrical idle exit frame on the channel to be opened to wake up the channel to be opened, and then training the channel to be opened.
[0024] In a second aspect, another method for adjusting link width is provided, which can be applied to a second device or a chip in the second device for execution. The method may include: receiving a link width adjustment message, the link width adjustment message including a link width request parameter; and, if dynamic link width switching is supported, sending a response message confirming adjustment of a link receiving port of the second device to the width indicated by the link width request parameter.
[0025] The solution provided in this application can dynamically adjust the number of channels for high-speed data transmission according to business conditions by adjusting the link width. When business demand decreases, some channels can be closed to reduce power consumption. When business demand increases, channels can be quickly opened to support high-speed transmission to avoid blocking business.
[0026] In a possible implementation, supporting dynamic link width switching may include supporting independent link width adjustment for a receiving link and a transmitting link.
[0027] In another possible implementation, the second device sends a response message if its received link supports the width indicated by the link width request parameter. In the present invention, the transmitting end initiates a link width adjustment request, and the receiving end responds if its received link supports the width indicated by the link width adjustment parameter. This makes the width adjustment of the transmitting and receiving links independent of each other, avoiding interference and constraints and improving the flexibility of link width adjustment.
[0028] In another possible implementation, the link width request parameter is used to indicate a first number, and the link width adjustment message also includes a low power consumption level. The link width adjustment message is used to reduce the number of channels, and the link width adjustment message is used to instruct that some channels in the port transmission link be brought into the indicated low power consumption level, with the remaining channel data in the high-speed state being the first number. The method provided in the present application may also include: determining channels to be closed, where, in addition to the channels to be closed, the port transmission link also has a first number of channels in the high-speed state; and the channels to be closed enter the state indicated by the low power consumption level.
[0029] In another possible implementation, the second device determines the channel to be closed, which can be specifically implemented by: receiving a first control frame; if the first control frame is a logical layer electrical idle control frame, determining that the channel receiving the first control frame is the channel to be closed.
[0030] In another possible implementation, the method provided in the present application may further include: receiving a second control frame; if the second control frame is a fill control frame, determining that the channel receiving the second control frame is in a high-speed state, and the number of channels in the high-speed state is a first number.
[0031] In another possible implementation, the link width request parameter is used to indicate a third number. The link width adjustment message is used to increase the number of channels. The link width adjustment message is used to instruct the port receive link to open some channels in a non-high-speed state, so that the number of channels in a high-speed state is the third number. The method provided in this application may also include: receiving a training sequence on the channel to be opened. After completing training for the channel to be opened, the channel is opened.
[0032] In another possible implementation, before the channel to be activated receives the training sequence, the method provided in this application may further include: determining the channel to be activated, where the channel to be activated is a channel that is detected to be in a non-electrical idle state. Detecting that the channel to be activated is in a non-electrical idle state indicates that the peer end is waking up the channel to be activated, and thus training the channel to be activated.
[0033] The sensing that the channel to be opened is in non-electrical idle state refers to receiving an electrical idle exit frame on the channel to be opened.
[0034] In another possible implementation, before the channel to be enabled receives the training sequence, the method provided in this application may further include: determining the channel to be enabled, where the channel to be enabled is the channel for initiating training indicated by the link training initiation message. Synchronization of the transmitting and receiving channel training is achieved through the link training initiation message.
[0035] In another possible implementation, receiving a training sequence on the channel to be opened further includes: sending a channel locking feedback message to the first device.
[0036] In another possible implementation, receiving a training sequence on a channel to be opened further includes: receiving a fill control frame on the channel to be opened; receiving a fill control frame on a channel in a high-speed state in a port receiving link; and receiving a data start control frame on all channels in a high-speed state in a port receiving link.
[0037] In a third aspect, a device for adjusting link width is provided, which is deployed in a first device or a chip in the first device. The device may include: a sending unit, a receiving unit, and an adjustment unit.
[0038] The sending unit is configured to send a link width adjustment message to the second device, where the link width adjustment message includes a link width request parameter.
[0039] A receiving unit is configured to receive a response message from the second device.
[0040] The processing unit is configured to adjust the port sending link of the first device to a width indicated by the link width request parameter according to the response message.
[0041] It should be noted that the device for adjusting the link width provided in the third aspect is used to implement the method for adjusting the link width provided in the above-mentioned first aspect or any possible implementation method. Its specific implementation can refer to the first aspect or any possible implementation method of the first aspect, and will not be repeated here.
[0042] In a fourth aspect, another apparatus for adjusting link width is provided, which is applied to a second device or a chip in the second device. The apparatus may include: a receiving unit and a sending unit.
[0043] The receiving unit is configured to receive a link width adjustment message, where the link width adjustment message includes a link width request parameter.
[0044] The sending unit is configured to send a response message when dynamic link width switching is supported, where the response message is used to confirm that the port receiving link of the second device is adjusted to the width indicated by the link width request parameter.
[0045] It should be noted that the device for adjusting the link width provided in the fourth aspect is used to implement the method for adjusting the link width provided in the above-mentioned second aspect or any possible implementation method. Its specific implementation can refer to the second aspect or any possible implementation method of the second aspect, and will not be repeated here.
[0046] In a fifth aspect, a computing device is provided, which includes a memory and at least one processor, the memory being used to store a set of computer instructions; when the processor executes this set of computer instructions, the operations of the method described in the first aspect or the second aspect or any possible implementation method are performed.
[0047] In a sixth aspect, a chip is provided, comprising one or more interface circuits and one or more processors; the interface circuits are configured to receive signals from a memory of an electronic device and transmit the received signals to the processors, the signals comprising computer instructions stored in the memory. When the processors execute the computer instructions, the electronic device performs the steps of the method described in the first aspect, the second aspect, or any possible implementation.
[0048] In a seventh aspect, a computer-readable storage medium is provided, comprising: computer software instructions; when the computer software instructions are executed in a computer, the computer executes the operations of the method described in the first aspect or the second aspect or any possible implementation method.
[0049] In an eighth aspect, a computer program product, when running on a computer, enables the computer to execute the operating steps of the method described in the first aspect or the second aspect or any possible implementation method.
[0050] In a ninth aspect, a data transmission system is provided, which includes a data sending device and a data receiving device, the data sending device includes the device for adjusting the link width as described in any one of the third aspects above, and the data receiving device includes the device for adjusting the link width as described in the fourth aspect above.
[0051] The solutions provided in the third to ninth aspects are used to implement the methods provided in the first or second aspects, and therefore can achieve the same beneficial effects as the first or second aspects, and will not be repeated here.
[0052] It should be noted that various possible implementations of any of the above aspects can be combined under the premise that the solutions are not contradictory. BRIEF DESCRIPTION OF THE DRAWINGS
[0053] FIG1 is a schematic structural diagram of a data transmission system provided in an embodiment of the present application;
[0054] FIG2 is a schematic diagram of the structure of another data transmission system provided in an embodiment of the present application;
[0055] FIG3 is a schematic diagram of basic components of an electronic device provided in an embodiment of the present application;
[0056] FIG4 is a schematic diagram of inter-interface transmission provided in an embodiment of the present application;
[0057] FIG5 is a schematic diagram of the structure of a computing device provided in an embodiment of the present application;
[0058] FIG6 is a flow chart of a method for adjusting link width according to an embodiment of the present application;
[0059] FIG7 is a flow chart of another method for adjusting link width provided in an embodiment of the present application;
[0060] FIG8a is a flow chart of another method for adjusting link width provided in an embodiment of the present application;
[0061] FIG8 b is a flow chart of another method for adjusting link width provided in an embodiment of the present application;
[0062] FIG8c is a flowchart of another method for adjusting link width provided in an embodiment of the present application;
[0063] FIG9 is a schematic diagram of a process for dynamically reducing the number of channels according to an embodiment of the present application;
[0064] FIG10 is a schematic diagram of a process for dynamically increasing the number of channels according to an embodiment of the present application;
[0065] FIG11 is a schematic structural diagram of a device for adjusting link width provided in an embodiment of the present application;
[0066] FIG12 is a schematic structural diagram of another apparatus for adjusting link width provided in an embodiment of the present application;
[0067] FIG13 is a schematic structural diagram of another apparatus for adjusting link width provided in an embodiment of the present application. DETAILED DESCRIPTION
[0068] In the embodiments of the present application, in order to clearly describe the technical solutions of the embodiments of the present application, words such as "first" and "second" are used to distinguish between identical or similar items with substantially the same functions and effects. Those skilled in the art will understand that words such as "first" and "second" do not limit the quantity or execution order, and words such as "first" and "second" do not necessarily mean different. There is no order of precedence or priority between the technical features described by "first" and "second".
[0069] In the embodiments of this application, words such as "exemplary" or "for example" are used to indicate examples, illustrations, or descriptions. Any embodiment or design described as "exemplary" or "for example" in the embodiments of this application should not be construed as being preferred or advantageous over other embodiments or designs. Rather, the use of words such as "exemplary" or "for example" is intended to present the relevant concepts in a concrete manner to facilitate understanding.
[0070] In the embodiments of the present application, at least one can also be described as one or more, and multiple can be two, three, four or more, which is not limited in this application.
[0071] In addition, the network architecture and scenarios described in the embodiments of the present application are intended to more clearly illustrate the technical solutions of the embodiments of the present application, and do not constitute a limitation on the technical solutions provided in the embodiments of the present application. Ordinary technicians in this field can know that with the evolution of network architecture and the emergence of new business scenarios, the technical solutions provided in the embodiments of the present application are also applicable to similar technical problems.
[0072] To facilitate understanding, the relevant terms involved in the embodiments of this application are first explained.
[0073] Lane: A path used to transmit signals. A lane can be unidirectional or bidirectional. A unidirectional lane consists of a pair of differential signal lines, while a bidirectional lane consists of two pairs of differential signal lines.
[0074] A link is a collection of channels or a conductor line used for power supply. A link generally consists of one or more channels. When a channel is operating, a transmitter and a receiver are enabled at each end, and data (or signals) are transmitted only from the transmitter to the receiver. For a link, the transmitter side is called the transmitter side (Tx side), and the receiver side is called the receiver side (Rx side). The link where a device sends data to the other end is called the device's port sending link; the link where a device receives data from the other end is called the device's port receiving link.
[0075] Link width refers to the number of channels in a link that are in a high-speed state (a state that supports the transmission of business data), and can also be called link bandwidth.
[0076] Main Link: Used for high-speed data transmission, such as audio and video signals, third-party protocol data, and other high-speed data transmission.
[0077] Sideband link (SL): Used for low-speed data transmission, such as device management signals, port management signals, bandwidth management signals, and power management signals. It is also used to transmit control messages. The reliability of data transmission on the sideband link is higher than that on the main link.
[0078] Logical Layer Control Frame (LLCF): A special code pattern used to implement link management functions such as link training and status update.
[0079] Logical Layer Block (LLB), the basic unit of data transmission.
[0080] Exemplarily, as shown in Table 1 and Table 2 below, the frame format of the LLCF includes a frame header, the frame header includes a frame type and a checksum, the frame type is used to indicate the frame type, and the checksum is a check digit for the frame type. Optionally, the frame format of the LLCF may also include a payload, which is information carried by a control frame of the corresponding type. Among them, the LLCF may include one or more frame headers, and the frame type and checksum in each frame header may each occupy one byte (byte, B), that is, the length of the frame type and checksum may both be 1B; the payload in the LLCF may occupy one or more bytes, that is, the length of the payload is variable. Exemplarily, the LLCF includes multiple frame headers and payloads, frame header 1 occupies bytes B0 and B1, frame header 2 occupies bytes B2 and B3, frame header 3 occupies bytes B4 and B5, and payload occupies byte B6. The contents of frame header 1, frame header 2, and frame header 3 in the above frame structure are the same, constituting a repetition code.
[0081] Table 1
[0082] Table 2
[0083] The frame type, checksum, payload length, and description of the control frame involved in this application may be as shown in Table 3 below, and may include:
[0084] Logic Layer Control Frame Training Sequence 0 (LLCF_TS0) is used for clock locking during the training phase.
[0085] Logic Layer Control Frame Training Sequence 1 (LLCF_TS1) is used for channel parameter tuning calculations during the training phase.
[0086] Logic Layer Control Frame Training Sequence 2 (LLCF_TS2) is used to send and receive confirmation of synchronization status.
[0087] Logic Layer Control Frame Electrical Idle (LLCF_EI) is used to mark the end of the lane transmission, and the subsequent data should be discarded.
[0088] The Logic Layer Control Frame Data Start (LLCF_DS) marks the starting position of a new logic block. The logic block data is transmitted immediately following the LLCF_DS.
[0089] Logic Layer Control Frame Electrical Idle Exit (LLCF_EIE) is used by the transmitter to wake up the channel through the high-speed link line.
[0090] Logic Layer pad logical layer control frame (LLCF_PAD) is used for padding.
[0091] Table 3
[0092] The technical solution provided in this application can be applied to a data transmission system including multiple data transmission devices, which can be devices, chips applied to devices, or interface devices, etc. In this data transmission system, a data transmission device (for example, a data sending device) and a data transmission device (for example, a data receiving device) can be directly connected, or indirectly connected through a switching device such as a router, that is, the multiple data transmission devices can all be connected to the switching device. In this application, data transmission can be performed between the multiple data transmission devices in a wired manner or in a wireless manner. In addition, when data transmission is performed between the multiple data transmission devices, signals can be transmitted directly or through an interface device.
[0093] When the data transmission device is a chip in a device, the chips in the data transmission system can be interconnected via wired or wireless means. The chip can be a chip in the device, a chip in a docking station, or a chip in an adapter, etc. The docking station can be connected to a Gigabit Ethernet port, a video graphics array (VGA), an HDMI port, a flash memory (TF) card, a secure digital (SD) card, a charging port, and a USB port, etc.
[0094] Optionally, when the data transmission device is a chip, the chip may further include an interface module, that is, the present application may be applied to an interface module for interconnecting chips. The interface module may be understood as an intellectual property (IP) module integrated inside the chip. Alternatively, the interface module may also be sold separately as an IP module. For example, the chip may be a system on chip (SoC), a central processing unit (CPU), or a graphics processing unit (GPU), etc., and the above-mentioned interface module may be an interface module in the SoC, CPU, or GPU, etc. Optionally, the interface module may be a transmitting circuit and / or a receiving circuit.
[0095] The following uses the data transmission system including multiple devices as an example to illustrate the structure of the data transmission device.
[0096] Figure 1 is a structural diagram of a data transmission system provided by an embodiment of the present application. The data transmission system includes a first device 110 and a second device 120, and the first device 110 and the second device 120 are connected by wired or wireless means, for example, by a cable. Among them, signals can be transmitted between the first device 110 and the second device 120, for example, audio and video data can be transmitted or charging signals can be transmitted. In one example, the first device 110 can be a set-top box, and the second device 120 can be a TV. The set-top box and the TV can be connected by a cable, and the set-top box can transmit audio and video data to the TV via a cable. In another example, the first device 110 is a display, and the second device 120 is a game controller. The display and the game controller can be connected by a cable, and the game controller can transmit control information to the display via a cable.
[0097] Optionally, the first device 110 may include interface A, and the second device may include interface B. The connection between the first device 110 and the second device 120 can be specifically a connection between interface A of the first device 110 and interface B of the second device 120. For example, interface A of the first device 110 and interface B of the second device 120 are connected via a cable.
[0098] Figure 2 is a structural diagram of another data transmission system provided in an embodiment of the present application. The data transmission system includes multiple devices 210 and a router 220. The multiple devices 210 can be connected to the router 220 in a wired or wireless manner. For example, the multiple devices 210 can all be connected to the router 220 via cables. Among them, any two devices in the multiple devices 210 can transmit signals through the router 220, such as transmitting audio and video data or transmitting charging signals. In one example, the multiple devices 210 may include a display 211, a set-top box 212 and an audio player (for example, MP3 (Moving Picture Experts Group Audio Layer-3)) 213. The set-top box 212 can transmit audio and video data to the display 211 through the router 220, and the set-top box 212 can also transmit audio data to the audio player 213 through the router 220. In addition, there may be two devices connected to each other among the multiple devices 210 . For example, the multiple devices 210 may also include a game controller 214 . The game controller 214 may be connected to the display 211 and transmit control information to the display 211 .
[0099] Optionally, each of the multiple devices 210 may include an interface, and the router 220 may include multiple interfaces, and the interface of each of the multiple devices 210 may be connected to one of the multiple interfaces of the router 220. For example, the multiple devices 210 include a display, a set-top box, a game controller, and an audio player, and the multiple interfaces of the router 220 include a first interface to a fourth interface, the interface of the display is connected to the first interface of the router 220 via a cable, the interface of the set-top box is connected to the second interface of the router 220 via a cable, the interface of the game controller is connected to the third interface of the router 220 via a cable, and the interface of the audio player is connected to the fourth interface of the router 220 via a cable.
[0100] The devices in the above-mentioned system with data transmission capabilities can be referred to as communication devices. The communication devices can be deployed on land, including indoors or outdoors, and can be handheld or vehicle-mounted. The communication devices can also be deployed on water (such as ships) or in the air (such as aircraft, balloons, and satellites). The communication devices can be applied in different scenarios. Exemplarily, the communication device may include, but is not limited to: a mobile phone, a tablet computer, a laptop computer, a PDA, a mobile internet device (MID), a camera, a wearable device (such as a smart watch, a smart bracelet, a pedometer, etc.), an audio device, an audio and video player, a set-top box, a game console, a printer, a mouse, a keyboard, an in-vehicle device (such as a car, a bicycle, an electric car, an airplane, a ship, a train, a high-speed train, etc.), a virtual reality (VR) device, an augmented reality (AR) device, a wireless terminal in industrial control, a smart home device (such as a refrigerator, a television, an air conditioner, an electric meter, etc.), an intelligent robot, a workshop device, a wireless terminal in self-driving, a wireless terminal in remote medical surgery, a wireless terminal in a smart grid, a wireless terminal in transportation safety, a wireless terminal in a smart city, or a smart home. Wireless terminals in homes, flying devices (e.g., smart robots, hot air balloons, drones, airplanes), etc. Optionally, the signals transmitted between the above communication devices may include, but are not limited to: audio and video signals, radio frequency signals, IoT data, and charging signals.
[0101] In the present application, the interface specifications used for signal transmission between devices in a data transmission system may include, but are not limited to: universal serial bus (USB) interface specifications, high definition multimedia interface (HDMI) interface specifications, display port (DP) interface specifications, unified multimedia interconnection (UMI) interface specifications, and peripheral component interconnect express (PCI-Express) interface specifications, etc. Accordingly, the interface may be HDMI, miniHDMI, micro HDMI, type-A interface, type-B interface, Micro-B, and type-C interface, etc.
[0102] For example, in the above examples, the interface connection method between the set-top box and the TV, or the interface connection method between the game console and the monitor can be connected through a USB cable, and the interface standard followed is the USB interface specification, or the connection method can be connected through an HDMI cable, and the interface standard followed is the HDMI interface specification.
[0103] It will be understood that the interface specifications used for signal transmission between the above-mentioned devices are merely exemplary. In actual applications, the interface specifications may also include other or any interface specifications that may appear in the future, such as a unified media interconnection (UMI) interface, etc., and the embodiments of the present application are not specifically limited to this.
[0104] In this application, when the above-mentioned device is an electronic device, FIG3 is a schematic diagram of the basic components of an electronic device. The electronic device includes an interface chip 300 (Uniform Multimedia Interconnect Interface), which includes one or more adapters 301, a management and control adapter 302, and one or more ports 303. Alternatively, when the electronic device is a routing device, the interface chip 300 only includes one or more ports 303. Each of the one or more adapters 301 can be coupled to an external component of the interface chip 300. The management and control adapter 302 can be coupled to a component outside the interface chip 300 for management and control. The port 303 can be coupled to a connector 304 of the electronic device, which is used to couple to external devices of the electronic device. One or more adapters 301 can be a transmit / receive adapter. For example, when the adapter 301 is used to adapt audio and video formats, the adapter 301 can be an audio and video transmit / receive adapter. When the adapter 301 is used to adapt a third-party protocol, the adapter 301 can be a third-party protocol adapter.
[0105] For example, when port 303 is a downlink port, the transmission adapter can be used to adapt the service information to be sent into service information that can be transmitted on port 303 of the interface chip, and then send the service information out through port 303. When port 303 is an uplink port, the reception adapter 301 can be used to adapt the service information received from port 303 into service information to be processed internally by the electronic device. The management and control adapter 302 can be used to adapt control information.
[0106] The basic components of different electronic devices can be combined to form a variety of different device types. For example, an electronic device may include a source device with at least one downstream port and at least one audio and video transmitter adapter, or a source device with at least one upstream port and an audio and video receiver adapter, or a docking station device with at least one upstream port, at least one audio and video receiver adapter, and at least one traditional audio and video interface, or a routing device with at least one downstream port and at least one upstream port but without an audio and video transmitter adapter or an audio and video receiver adapter, or a composite device with both an upstream port and a downstream port.
[0107] Figure 4 shows a schematic diagram of inter-interface transmission provided by an embodiment of the present application. Devices may include a primary link and a secondary link between their uplink and downlink ports. The primary link can be used for high-speed data transmission, such as audio and video signals. The secondary link can be used for inter-device management and control, such as device discovery, capability query, device configuration, and device control. It can also be used for low-speed data transmission and control message transmission.
[0108] In one possible embodiment, the main link may include multiple channels, each of which supports unidirectional transmission; the auxiliary link may include two unidirectional channels in different directions. In other possible embodiments, the main link may include multiple channels, some of which are unidirectional channels and others are bidirectional channels; and the auxiliary link may include one bidirectional channel. Exemplarily, a main link may include multiple channels, for example, 2, 5, or 9. The greater the number of channels included in the main link, the faster the data transmission speed. Exemplarily, as shown in Figure 4, for an uplink port, the main link may include n transmit channels TX0-TXn and m receive channels RX0-RXm, and the auxiliary link may include a transmit channel SBTX and a receive channel SBRX, where n and m are positive integers. For a downlink port, the main link may include n receive channels RX0-RXn and m transmit channels TX0-TXm, and the auxiliary link may include a receive channel SBRX and a transmit channel SBTX.
[0109] Furthermore, a power-bus link (PL) and a cable-information link (CL) may be included between the upstream and downstream ports of each device. The cable-information link can be used to transmit cable information, such as the cable model and cable capability. The power-bus link and the cable-information link are not shown in the figure.
[0110] It can be understood that for ports between devices, whether they are uplink ports or downlink ports, they can include multiple pins, such as pins connected to ground wires, pins connected to power lines, pins connected to channels of the main link, and pins connected to channels of the auxiliary link.
[0111] In the high-speed interconnection interface, the above-mentioned main link can also be called a high-speed link, which can specifically include multiple channels supporting high-speed data transmission. For example, the transmission rate supported by the channel of the main link can be 2Gbps, 4Gbps or 8Gbps, etc.; the above-mentioned auxiliary link can also be called a low-speed link, which can specifically include multiple channels supporting low-speed transmission. For example, the transmission rate supported by the channel of the auxiliary link can be 12.5Mbps.
[0112] When transmitting multi-channel data, even if the same clock source is used from the transmitter, data from all channels cannot be guaranteed to arrive at the receiver simultaneously unless it is processed at the receiver. This can lead to time differences between channels. This time difference can be caused by a variety of factors, including varying signal line lengths, impedance differences in printed circuit boards, delays introduced by serialization and deserialization of data, and external factors such as temperature.
[0113] The solutions provided by the embodiments of the present application are described in detail below with reference to the accompanying drawings.
[0114] In one aspect, an embodiment of the present application provides a schematic structural diagram of a computing device 50. The computing device 50 can implement the functions of the first device 110 or the second device 120 shown in FIG1 .
[0115] 5 , the computing device 50 may include a processor 5010 , a bus 5020 , a memory 5030 , and a communication interface 5040 . The processor 5010 , the memory 5030 , and the communication interface 5040 are connected via the bus 5020 .
[0116] It should be understood that in this embodiment, the processor 5010 may be a central processing unit (CPU), and the processor 5010 may also be other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field-programmable gate arrays (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor may be a microprocessor or any conventional processor, etc.
[0117] The processor 5010 may also be a graphics processing unit (GPU), a neural network processing unit (NPU), a microprocessor, an ASIC, or one or more integrated circuits for controlling the execution of the program of the present application.
[0118] The communication interface 5040 is used to implement communication between the computing device 50 and external devices or components.
[0119] The bus 5020 may include a path for transmitting information between the above-mentioned components (such as the processor 5010 and the memory 5030). In addition to the data bus, the bus 5020 may also include a power bus, a control bus, and a status signal bus. However, for the sake of clarity, various buses are labeled as bus 5020 in the figure. The bus 5020 may be a peripheral component interconnect express (PCIe) bus, an extended industry standard architecture (EISA) bus, a unified bus (Ubus or UB), a computer express link (CXL), a cache coherent interconnect for accelerators (CCIX), etc. The bus 5020 can be divided into an address bus, a data bus, a control bus, etc.
[0120] As an example, computing device 50 may include multiple processors. The processor may be a multi-core (multi-CPU) processor. A processor herein may refer to one or more devices, circuits, and / or computing units for processing data (e.g., computer program instructions).
[0121] It is worth noting that FIG5 only takes the computing device 50 including one processor 5010 and one memory 5030 as an example. Here, the processor 5010 and the memory 5030 are respectively used to indicate a type of device or equipment. In a specific embodiment, the number of each type of device or equipment can be determined according to business requirements.
[0122] The memory 5030 may be a volatile memory pool or a non-volatile memory pool, or may include both volatile and non-volatile memories. The non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory may be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic random access memory (DRAM), synchronous DRAM (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link DRAM (SLDRAM), and direct rambus RAM (DR RAM).
[0123] For example, the processor 5010 may perform the following functions by running or executing the software programs and / or modules stored in the memory 5030:
[0124] Sending a link width adjustment message to the second device, the link width adjustment message including a link width request parameter; receiving a response message from the second device; and adjusting the port sending link of the first device to the width indicated by the link width request parameter according to the response message.
[0125] For example, the processor 5010 may perform the following functions by running or executing the software programs and / or modules stored in the memory 5030:
[0126] A link width adjustment message is received, the link width adjustment message including a link width request parameter; and in the case of supporting dynamic link width switching, a response message is sent, the response message being used to confirm that the port receiving link of the second device is adjusted to the width indicated by the link width request parameter.
[0127] On the other hand, an embodiment of the present application provides a method for adjusting link width, which can be applied to a data transmission system including a first device and a second device. For example, the method can be applied to the data transmission system shown in FIG1 .
[0128] Specifically, the link width adjustment method is used to dynamically adjust the width (i.e., the number of channels) of the transmission link from a first device to a second device (i.e., the receiving link through which the second device receives data from the first device). The width of the port transmission link is adjusted by negotiation between the transmitting end and the peer end.
[0129] Furthermore, the adjustment of the link width described in this application refers to adjusting the width of the main link (ML) between devices.
[0130] As shown in FIG6 , the method for adjusting the link width provided in this application may include:
[0131] S601: A first device sends a link width adjustment message to a second device, where the link width adjustment message includes a link width request parameter.
[0132] The Link Width Adjust Message (LWAM) may be a set of link width adjustment request parameters. The LWAM is used when the link is in a service transmission state (high-speed state) and is initiated when the link bandwidth requirement needs to be adjusted.
[0133] Specifically, the link width request parameter may be used to indicate the number of channels included in the adjusted link width.
[0134] In one possible implementation, in a scenario where the number of lanes is dynamically reduced, a link width request parameter is used to indicate a first number, and the link width adjustment message also includes a low power consumption level. The link width adjustment message is used to reduce the number of lanes, and the link width adjustment message is used to instruct that some lanes in the port's transmit link be brought to the indicated low power consumption level, with the remaining lanes in a high-speed state being the first number.
[0135] Exemplarily, the low power consumption level may include multiple different levels. For example, based on wake-up time and energy consumption, it is divided into four levels: LP0, LP1, LP2, LP3, and disable. By shutting down more and more functional modules, lower energy consumption is achieved, and accordingly, the time to wake up from the low power consumption level is also getting longer and longer. LP0-LP2 can be awakened by LLCF_EIE, while LP3 and disable states cannot be awakened by LLCF_EIE. Specific implementations may support one or more of the above four states, and the present invention is not limited to this.
[0136] Illustratively, the link width request parameter included in the link width adjustment message may be a first number. The first number is at least 1. The maximum value of the first number is related to the maximum transmission rate of the main link, and may be, for example, set to a maximum of 8 or a maximum of 16, which is not limited in the present invention.
[0137] Illustratively, the link width request parameter included in the link width adjustment message may be the sequence number of the channel to be closed, and the first number is the number of channels currently in a high-speed state, excluding the channel to be closed. The minimum value of the first number is 1. The maximum value of the first number is related to the maximum transmission rate of the main link, and may be set to a maximum of 8 or 16, for example, but this invention is not limited thereto.
[0138] In another possible implementation, in a scenario where the number of channels is dynamically increased, the link width request parameter is used to indicate a third number. The link width adjustment message is used to increase the number of channels. The link width adjustment message is used to instruct the port send link to open some channels in a non-high-speed state, so that the number of channels in a high-speed state is the third number.
[0139] For example, the link width request parameter included in the link width adjustment message may be a third number. The maximum value of the third number is related to the maximum transmission rate of the main link, for example, it may be set to a maximum of 8 or a maximum of 16, which is not limited in the present invention.
[0140] For example, the link width request parameter included in the link width adjustment message may be the sequence number of the channel to be enabled, and the third number may be the number of channels currently in a high-speed state plus the number of channels to be enabled. The maximum value of the third number is related to the maximum transmission rate of the main link and may be set to a maximum of 8 or 16, for example, but this invention is not limited thereto.
[0141] It should be noted that the arrangement of the link width request parameters in the link width adjustment message can be configured according to actual needs and is not limited in the embodiment of the present application. LWAM can support transmission via ML and SL.
[0142] In one possible implementation, the number of channels indicated by the link width request parameter may be indicated by an upper layer of the logical layer (such as a transport layer or an adaptation layer), which is not limited in this embodiment of the present application.
[0143] In one possible implementation, the serial number of the channel to be closed, or the serial number of the channel to be opened, indicated by the link width request parameter, can be indicated by an upper layer of the logical layer (such as a transport layer or an adaptation layer), which is not limited in this embodiment of the present application.
[0144] Exemplarily, the first device can determine the link bandwidth, that is, the value of the first number or the third number, based on the transmission demand of the business data. One specific implementation method is: link width = ceiling (R1 / R2), where ceiling() represents rounding up, R1 represents the transmission demand rate of the business data, and R2 represents the transmission rate of each channel. The value of R2 can be 2Gbps, 4Gbps, or 8Gbps, etc. For example, if the transmission demand rate of the business data is 32Gbps at the beginning and the transmission rate of the channel is 4Gbps, then the link width is 8. If after a period of time, the transmission demand of the business data decreases, for example, to 2Gbps, the first device can set the first number to 1 and adjust the link width from 8 to 1 to save link power consumption; if the transmission demand of the business data then rises back to 16Gbps, the first device can set the third number to 4 and adjust the link width from 1 to 4 to meet the business demand.
[0145] In the present invention, the value of the first number or the third number can be determined according to the transmission requirements of the business data, so that the link width matches the transmission requirements of the business data, and the link power consumption is saved while ensuring the business data transmission rate.
[0146] S602: The second device receives a link width adjustment message.
[0147] The link width adjustment message received by the second device in S602 is the link width adjustment message sent by the first device in S601 , and will not be described in detail here.
[0148] S603: If the second device supports dynamic link width switching, it sends a response message.
[0149] Specifically, after receiving the link width adjustment message, if the second device agrees with the link width adjustment request, it responds with an Ack to the LWAM; otherwise, it responds with a Nack.
[0150] The response message (ie, ACK) is used to confirm that the port receiving link of the second device is adjusted to the width indicated by the link width request parameter.
[0151] In a possible implementation, supporting dynamic link width switching may include supporting independent link width adjustment for a receiving link and a transmitting link.
[0152] In another possible implementation, supporting dynamic link width switching can be: the second device sends a response message when its received link supports the width indicated by the link width request parameter. In this application, the transmitting end initiates a link width adjustment request message, and the receiving end responds when its received link supports the width indicated by the link width adjustment message. This makes the width adjustment of the transmitting link and the receiving link independent of each other, avoiding interference and constraints, and improving the flexibility of link width adjustment.
[0153] In another possible implementation, supporting dynamic link width switching may include supporting independent link width adjustment for a receiving link and a transmitting link, and the receiving link supports the width indicated by the link width request parameter.
[0154] It should be noted that the format and content arrangement of the corresponding response message are not limited in this embodiment of the present application.
[0155] S604: The first device receives a response message from the second device.
[0156] The response message received by the first device in S604, that is, the response message sent by the second device in S603, will not be described in detail here.
[0157] S605: The first device adjusts the port sending link of the first device to the width indicated by the link width request parameter according to the response message.
[0158] Specifically, the first device receives the response message sent by the second device, indicating that the second device agrees to the link width adjustment request, and the first device can start to perform the link width adjustment process.
[0159] Specifically, the specific implementation of S605 can be divided into the following scenarios of dynamically reducing the number of channels and dynamically increasing the number of channels, respectively.
[0160] 1) Dynamically reduce the number of channels:
[0161] In the scenario of dynamically reducing the number of channels, the link width request parameter is used to indicate a first number, which is less than the number of channels currently in a high-speed state in the transmission link of the first device port. At the same time, the link width adjustment message also includes a low-power consumption level. In this scenario, a portion of the channels currently in a high-speed state in the transmission link of the first device port (the channels to be closed) is closed (entered into a low-power state), so that the number of channels in a high-speed state in the transmission link of the first device port is the first number.
[0162] Specifically, S605 may be implemented as follows: determining the channels to be closed, where, in addition to the channels to be closed, there are a first number of channels in a high-speed state in the port sending link; and the channels to be closed enter a state indicated by a low power consumption level.
[0163] Among them, the embodiment of the present application does not limit the process of controlling the channel to enter the low power consumption state.
[0164] Furthermore, the channels to be closed may be a second number of channels in high-speed state among the channels of the port sending link currently in high-speed state, where the second number is the number of channels currently in high-speed state minus the first number.
[0165] In a possible implementation, determining the channels to be closed includes: determining a second number of channels, numbered in descending order, from channels whose port sending links are currently in a high-speed state on the first device as the channels to be closed.
[0166] The channel number is a parameter for channel configuration, and different channels have different channel numbers. The embodiment of the present application does not limit the form of the channel number.
[0167] For example, assuming that the link includes 8 channels, the channel numbers are 00 to 08, the channels currently in high-speed state are 00 to 04, a total of 5 channels, and the first number is 3, then channels 04 and 03 can be determined as channels to be closed.
[0168] In another possible implementation, determining the channels to be closed includes: determining a second number of channels, numbered from smallest to largest, from channels whose port sending links of the first device are currently in a high-speed state as the channels to be closed.
[0169] For example, assuming that the link includes 8 channels, the channel numbers are 00 to 08, the channels currently in high-speed state are 00 to 04, a total of 5 channels, and the first number is 3, then channels 00 and 01 can be determined as channels to be closed.
[0170] In another possible implementation, determining the channels to be closed includes randomly selecting a second number of channels from channels whose port sending links are currently in a high-speed state as the channels to be closed.
[0171] In another possible implementation, determining the channel to be closed includes: receiving the serial number of the channel to be closed indicated by the upper layer of the logical layer (such as the transport layer or the adaptation layer), and determining the channel indicated by the serial number as the channel to be closed. This embodiment of the present application is not limited to this.
[0172] 2) Dynamically increase the number of channels:
[0173] In the scenario of dynamically increasing the number of channels, the link width request parameter is used to indicate a third number that is greater than the number of channels currently in high-speed state in the transmit link of the first device port. In this scenario, some channels in the transmit link of the first device port that are in a non-high-speed state are enabled (awakened) so that the number of channels in high-speed state reaches the third number.
[0174] Specifically, S605 may be implemented as follows: determining the channel to be opened, adding the number of channels currently in high-speed state in the port transmission link to the number of channels to be opened to obtain a third number; and sending a training sequence on the channel to be opened.
[0175] The embodiment of the present application does not limit the process of opening (waking up) the channel.
[0176] Furthermore, the channels to be opened may be a fourth number of channels among the channels whose port sending links are currently in a non-high-speed state, where the fourth number is the third number minus the number of channels currently in a high-speed state.
[0177] In a possible implementation, determining the channels to be opened includes: starting from the largest channel sequence number among the channels whose port transmission links are currently in a high-speed state, determining the fourth number of channels with the smallest sequence number as the channels to be opened.
[0178] For example, assuming that the link includes 8 channels, the channel numbers are 00-08, the channels currently in high-speed state are 00-04, a total of 5 channels, and the third number is 7, then channels 05 and 06 can be determined as channels to be opened.
[0179] In another possible implementation, determining the channels to be opened includes: starting from the channel with the smallest channel sequence number among the channels whose port sending links are currently in a high-speed state, determining the fourth number of channels with the largest channel sequence number as the channels to be opened.
[0180] For example, assuming that the link includes 8 channels, the channel numbers are 00 to 08, the channels currently in high-speed state are 03 to 07, a total of 5 channels, and the third number is 7, then channels 01 and 02 can be determined as channels to be opened.
[0181] In another possible implementation, determining the channels to be opened includes randomly selecting a fourth number of channels from channels in the port sending link that are not currently in a high-speed state as the channels to be opened.
[0182] In another possible implementation, determining the channel to be opened includes: receiving the serial number of the channel to be opened indicated by the upper layer of the logical layer (such as the transport layer or the adaptation layer), and determining the channel indicated by the serial number as the channel to be opened. This embodiment of the present application is not limited to this.
[0183] The solution provided in the embodiment of the present application can dynamically adjust the number of channels for high-speed data transmission according to business conditions by adjusting the link width. When business demand decreases, some channels can be closed to reduce power consumption. When business demand increases, channels can be quickly opened to support high-speed transmission to avoid blocking business.
[0184] Furthermore, in a scenario where the number of channels is dynamically reduced, as shown in FIG7 , before the channels to be closed enter the state indicated by the low power consumption level, the method provided in the embodiment of the present application may further include S606:
[0185] S606: The first device sends a control frame indicating that the logical layer is electrically idle in the channel to be closed.
[0186] Furthermore, while executing S606 or after executing S606 , the first device sends a padding control frame in the remaining channels to facilitate smooth switching of local and peer data during multi-Lane switching.
[0187] The number of channels to be closed is the second number, and the remaining channels are the channels currently in high-speed state in the transmission link of the first device port excluding the channels to be closed, that is, the channels in high-speed state used for data transmission after the channel width adjustment. The number of the remaining channels is the first number.
[0188] The first device transmits a control frame indicating that the logical layer is electrically idle in the channel to be closed. Specifically, the first device transmits a control frame indicating that the logical layer is electrically idle in the second number of channels to be closed. The control frame indicating that the logical layer is electrically idle may be an LLCF_EI. The LLCF_EI is used to mark the end of a lane transmission. The specific content of the LLCF_EI is not limited in this embodiment of the present application.
[0189] The first device sends a padding control frame in the remaining channels. Specifically, the first device sends a padding control frame in a first number of channels in a high-speed state. The padding control frame may be LLCF_PAD, and the LLCF_PAD sent by each channel has the same length.
[0190] After executing S606 , the first device puts the channel to be closed into a state indicated by the low power consumption level.
[0191] Furthermore, after S605, the method provided in the embodiment of the present application may also include: the second device determines the channel to be closed, and in addition to the channel to be closed, there are a first number of channels in a high-speed state in the port sending link; and the second device puts the channel to be closed into a state indicated by a low power consumption level.
[0192] Specifically, as shown in FIG7 , the second device may determine the channel to be closed in S607 .
[0193] S607: The second device receives the first control frame. If the first control frame is a logical layer electrical idle control frame, it determines that the channel receiving the first control frame is a channel to be closed.
[0194] Specifically, when the second device receives a control frame indicating logical layer electrical idle (e.g., LLCF_EI) on some channels, the second device can determine that these channels are to be shut down, and the second device puts the channels to be shut down into a state indicated by the low power consumption level. Normally, the second device receives LLCF_EI on a second number of channels.
[0195] Furthermore, while executing S607, or after executing S607, as shown in FIG7 , the method provided in the embodiment of the present application may further include S608.
[0196] S608: The second device receives the second control frame. If the second control frame is a fill control frame, it is determined that the channel for receiving the second control frame is in a high-speed state.
[0197] The number of lanes in high-speed state is the first number. By filling the control frame, the transmitting and receiving ends synchronize the lanes currently in high-speed state, so that data transmitted by the two ends can be smoothly switched when multiple lanes are switched.
[0198] The second device receives the fill control frame in some channels, and the second device can determine that these channels are not channels to be closed, and these channels continue to be in a high-speed state. Normally, the second device has a first number of channels that receive the fill control frame.
[0199] After receiving the LLCF_PAD, the second device resets the scrambling code seed.
[0200] Furthermore, as shown in FIG7 , the method provided in the embodiment of the present application may also include S609 and S610.
[0201] S609: The first device sends a data start control frame in the remaining channels.
[0202] The remaining channels are all TX Lanes in the port transmission link of the first device that are still in a high-speed state. The number of all TX Lanes that are still in a high-speed state is a first number.
[0203] The control frame for data start may be LLCF_DS. The specific content of LLCF_DS is not limited in the embodiment of the present application.
[0204] S610: The second device receives a third control frame. If the third control frame is a data start control frame, the second device determines to send a normal service on the channel for receiving the third control frame.
[0205] Afterwards, the first device and the second device can send normal services at the new link width.
[0206] Furthermore, in the scenario where the number of channels is dynamically increased, the first device in S605 sends a training sequence on the channel to be opened in order to open (wake up) the channel to be opened. One specific implementation is shown in Figure 8a, and the first device sending the training sequence on the channel to be opened can be specifically implemented as S6051 to S6060.
[0207] S6051. The first device sends a training sequence on the channel to be opened.
[0208] In a possible implementation, the training sequence sent in S6051 is LLCF_TS2. The embodiment of the present application does not limit the content of LLCF_TS2.
[0209] S6052: The second device receives a training sequence on the channel to be opened.
[0210] After S6051 and S6052, the first and second devices begin channel training on the channels to be opened. The second device checks whether training has completed for all the channels to be opened. If so, it proceeds to S6053. If training fails for any of the channels to be opened, the second device sends a message to the first device indicating that training failed for some of the channels, indicating the result of the link width adjustment process. The first and second devices then continue to transmit and receive services based on the original number of channels.
[0211] S6053: The second device sends a channel locking feedback message.
[0212] In one possible implementation, in a scenario where the channel to be opened is awakened from LPx, the channel lock feedback message may be a Lane Lock Feedback Message (LLFM), which is used to indicate that all newly added channels have been locked successfully. The present embodiment does not limit the content and format of the LLFM.
[0213] S6054. The first device receives the channel lock feedback message sent by the second device.
[0214] S6055. The first device sends a padding control frame on the channel to be opened.
[0215] Specifically, the padding control frame may be several LLCF_PADs. The first device sends the padding control frame on the channel to be opened to align the positions of the control frames sent on the newly added channel (channel to be opened) and the original high-speed channel.
[0216] S6056. The second device receives a padding control frame on the channel to be opened.
[0217] The second device receives a filling control frame on the channel to be opened, so as to align the positions of the control frames sent on the newly added channel (the channel to be opened) and the original channel in the high-speed state.
[0218] S6057: The first device sends a padding control frame in all high-speed channels in the port sending link.
[0219] Specifically, the padding control frame sent in S6057 can be 1 LLCF_PAD. The LLCF_PADs sent by all high-speed channels have the same length, which facilitates smooth switching of local and peer data during multi-Lane switching.
[0220] S6058. The second device receives the padding control frame in all high-speed channels in the port receiving link.
[0221] All high-speed channels of the second device receive the filling control frame, which facilitates smooth switching of local and peer data during multi-Lane switching.
[0222] After receiving the padding control frame, the scrambling seed is reset.
[0223] S6059: The first device sends a data start control frame in all high-speed channels in the port sending link.
[0224] The data start control frame may be one LLCF_DS. The specific content and format of the LLCF_DS are not limited in the present embodiment. Sending the data start control frame in all high-speed channels can be used for multi-channel alignment.
[0225] S6060: The second device receives a data start control frame in all high-speed channels in the port receiving link.
[0226] Afterwards, the first device and the second device can send normal services at the new link width.
[0227] In the scenario where the number of channels is dynamically increased, in S605, the first device sends a training sequence on the channel to be opened in order to open (wake up) the channel to be opened. In one possible implementation, when the channel to be opened is awakened from LP3 or disable, further, as shown in Figure 8b, before the first device sends the training sequence in S605, the method provided in the embodiment of the present application may also include S605a and S605b.
[0228] S605a: The first device sends a link training start message.
[0229] The link training start message (TSM) is used to instruct the initiation of training for the channel to be opened. The link training start message can be sent through the main link or through the auxiliary link, which is not limited in the embodiment of the present application.
[0230] S605b: The second device receives the link training start message and determines the channel to be opened.
[0231] Afterward, the first and second devices initiate training on the channel to be opened according to the link training process, including channel clock recovery and locking, and channel equalization. This invention does not limit the process of channel clock recovery and locking, and channel equalization. The channel that successfully achieves channel equalization is the channel to be opened, and steps S6051-S6060 are executed.
[0232] Specifically, in S605b, the second device may determine that the channel to be opened is the channel for initiating training indicated by the link training start message.
[0233] Afterwards, the first device and the second device execute steps S6051 to S6060 to restore the channel to be opened to a high-speed state.
[0234] In the scenario where the number of channels is dynamically increased, the first device in S605 sends a training sequence on the channel to be opened in order to open (wake up) the channel to be opened. In one possible implementation method, when the channel to be opened is awakened from LPx (low power state, which can have different levels, such as LP0, LP1, LP2), further, as shown in Figure 8c, before the first device sends the training sequence in S605, the method provided in the embodiment of the present application may also include S605c and S605d.
[0235] S605c: The first device sends an electrical idle exit frame on the channel to be opened.
[0236] Among them, the electrical idle exit frame is used to wake up the channel in the low power state (LPx state) and enter the high-speed state.
[0237] For example, the electrical idle exit frame may be LLCF_EIE. The embodiment of the present application does not limit the content and format of LLCF_EIE.
[0238] S605d: The second device determines the channel to be opened.
[0239] The channel to be opened is a channel that is detected to be in non-electrical idle state.
[0240] Specifically, the second device senses that the channel in the low power consumption state is in non-electrical idle state, that is, determines that the channel is a channel to be turned on.
[0241] Afterwards, the first device and the second device execute steps S6051 to S6060 to restore the channel to be opened to a high-speed state.
[0242] The above embodiment describes the process of link width adjustment. The following examples illustrate the contents involved in the above embodiment, but do not constitute a specific limitation.
[0243] First, an example of a link width adjustment message is given.
[0244] The Link Width Adjustment Message (LWAM) is a set of link width adjustment request parameters, including the adjusted link width parameters. In the scenario of reducing the number of channels, the LWAM also includes the low-power settings corresponding to the channels that need to be closed after the link width adjustment.
[0245] LWAM is used when the link is transmitting services. It is initiated when link bandwidth requirements need to be adjusted. It negotiates with the peer to adjust the port's transmit link width. LWAM requires a response. If the receiving end agrees to the link width adjustment request, it responds with an Ack; otherwise, it responds with a Nack. For more information about responses, refer to the following description of response information.
[0246] LWAM supports transmission via ML and SL. The format of the Logical Layer Main Link Management Packet (LLMMP) corresponding to ML transmission can be shown in Table 4. The format of the Logical Layer Sideband Link Management Packet (LLSMP) corresponding to SL transmission can be shown in Table 5. Table 4
[0247] Table 5
[0248] Next, an example of the response information is given.
[0249] Ack / Nack messages (Ack / Nack) are responses to management messages. Ack / Nack messages are used when a management message requires a response. They acknowledge received messages and provide feedback on the current port's response or decision. Ack / Nack messages do not require a response.
[0250] Ack / Nack can be transmitted via both ML and SL. The LLMMP format corresponding to ML transmission is shown in Table 6. The LLSMP format corresponding to SL transmission is shown in Table 7.
[0251] Table 6
[0252] Table 7
[0253] The following is an example to illustrate the process of dynamically adjusting the link width.
[0254] Dynamic link width adjustment involves dynamically switching channel states. This is primarily used in scenarios where high-speed data services are constantly flowing. Before and after dynamically switching channel states, at least one channel must be in a high-speed service transmission state.
[0255] Dynamically switching channel status includes the following operations:
[0256] Operation 1: Dynamically increase the number of channels: When the current port has at least one TX channel for service transmission, dynamically increase 1 to 7 TX channels, up to a maximum of 8 TX channels.
[0257] Operation 2: Dynamically reduce the number of channels: When the current port has at least two TX channels for service transmission, dynamically reduce 1 to 7 TX channels, and reduce to a maximum of 1 TX channel.
[0258] To facilitate link management, it is prohibited to repeatedly initiate the dynamic channel state switching process when the link is performing link initial training, link recovery, link low power consumption or other dynamic channel state switching processes.
[0259] To manage link bandwidth more easily and flexibly, dynamic link width switching is initiated by the TX side of the port. That is, a port can only actively manage the width of the TX link on its own side.
[0260] To simplify the channel state switching process, complex channel state switching needs to be simplified into atomic link operations with multiple channel width switches. To facilitate faster channel state switching, the main link should be used for handshake information exchange whenever possible. It is recommended that the port have both TX and RX high-speed channels available during the intermediate state of the switching process.
[0261] Next, an example is given to illustrate the scenario of dynamically reducing the number of channels during the dynamic adjustment of link width.
[0262] After link training is complete, the LNSM state machines of all valid transmission channels are in the HS (High Speed) state. If the port input bandwidth decreases, the upper layer can control some channels to enter the low-power LP0-LP2 or disable state to reduce the transport layer link bandwidth.
[0263] The process of dynamically reducing the number of channels can be shown in Figure 9, including:
[0264] 1. Device port A sends an LWAM to device B via the high-speed link, informing the peer device B of the adjusted link width value and the low-power state to be entered by the channel to be closed.
[0265] 2. After receiving the LWAM, the RX of device port B sends back the ACK / Nack corresponding to the LWAM.
[0266] If the corresponding port of device B supports dynamic switching of link width, device B will feedback NACK; otherwise, device B should feedback ACK.
[0267] If device B returns a NACK response message, the process ends. Device A and device B send and receive services based on the original number of channels.
[0268] 3. After receiving the ACK for the corresponding LWAM, device A sends four LLCF_EIs on the channel to be shut down and enters a low-power state. All remaining high-speed TX lanes simultaneously send one LLCF_PAD (the length of the PAD sent by all TX lanes is cf_pad_length), facilitating smooth switching of local and peer data during multi-lane switching.
[0269] The channel to be closed is device A, and the channel to be closed is determined based on the adjusted link width value.
[0270] Note: The RX channel of device B needs to reset the scrambling seed after receiving LLCF_PAD.
[0271] 4. Device A port sends one LLCF_DS to all remaining TX Lanes in high-speed state simultaneously.
[0272] Accordingly, all RX Lanes of the port of device B in high-speed state receive LLCF_DS.
[0273] 5. Port A of device sends normal services at the new link width.
[0274] Next, an example is given to illustrate the scenario of dynamically increasing the number of channels during the dynamic adjustment of link width.
[0275] After the bandwidth increases, the channel in low power or disable state can be quickly switched back to HS state by upper layer control, quickly restoring the transport layer link bandwidth.
[0276] The process of dynamically increasing the number of channels can be shown in Figure 10, including:
[0277] 1. Device port A sends an LWAM to device B via the high-speed link to inform the peer device B of the adjusted link width value.
[0278] 2. After receiving the LWAM, the RX of device port B sends back the ACK / Nack corresponding to the LWAM.
[0279] If the port corresponding to device B supports dynamic link width switching, device B will feedback NACK; otherwise, device B should feedback ACK.
[0280] If device B returns a NACK response message, the process ends. Device A and device B send and receive services based on the original number of channels.
[0281] 3. After device A port receives the ACK of the corresponding LWAM, device A port continues to send LLCF_TS2 on the newly added TX channel, and other TX channels send services normally.
[0282] Among them, the newly added TX channel is device A, and the channel that needs to be opened is determined based on the adjusted link width value.
[0283] Note: This example shows a scenario where the newly added TX channel of port A is awakened from LPx. For fast wakeup, sending LLCF_TS2 is sufficient. If the newly added TX channel of port A is awakened from disable, the newly added channel needs to send LLCF_TS0, LLCF_TS1, and LLCF_S2 for channel training. At the same time, device A also needs to send TSM to indicate that the corresponding channel starts initial training.
[0284] 4. After device B detects that all newly added RX channels have completed training, it sends LLFM to indicate that all newly added channels have been successfully locked.
[0285] Note 1: This example shows the scenario where the newly added TX channel of port A is awakened from LPx. If the newly added TX channel of port A is disabled, it is necessary to wait for the newly added channel to complete the initial training process (that is, the feedback message from device B in this process may include CLFM, EQFM, and LLFM).
[0286] Note 2: If training of any newly added channels fails, the process ends after device B returns the CLFM, EQFM, or LLFM signal indicating that some channels failed training. Devices A and B continue to send and receive services based on the original number of channels.
[0287] 5. After device A receives the LLFM indicating that all newly added channels have successfully locked, device A sends several LLCF_PADs on the newly added TX channel to align the position of the CF sent by the newly added channel with the original channel in the high-speed state.
[0288] 6. Device A then sends one LLCF_PAD to all remaining high-speed TX Lanes simultaneously (the length of the PAD sent by all TX channels is cf_pad_length), facilitating smooth switching of local and peer data during multi-Lane switching.
[0289] Note: The scrambling seed needs to be reset after the RX channel of device B receives LLCF_PAD.
[0290] 7. Device A sends one LLCF_DS to all TX Lanes in high-speed state at the same time.
[0291] 8. Port A of device sends normal services at the new link width.
[0292] The above mainly introduces the solution provided by the embodiment of the present invention from the perspective of the working principle of the device. It can be understood that in order to realize the above functions, the computing device, etc. includes hardware structures and / or software modules corresponding to the execution of each function. It should be easy for those skilled in the art to realize that, in combination with the units and algorithm steps of each example described in the embodiments disclosed herein, the present invention can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in the form of hardware or computer software driving hardware depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of the present invention.
[0293] In the embodiments of the present invention, computing devices, etc., can be divided into functional modules according to the above-described method examples. For example, functional modules can be divided according to respective functions, or two or more functions can be integrated into a single processing module. The above-described integrated modules can be implemented in the form of hardware or software functional modules. It should be noted that the module division in the embodiments of the present invention is illustrative and is merely a logical functional division. In actual implementation, other division methods may be used.
[0294] In the case of dividing each functional module according to each function, Figure 11 illustrates a device 110 for adjusting link width provided in an embodiment of the present application, and the device 110 for adjusting link width is used to implement the function of the first device or device A in the above-mentioned method embodiment. As shown in Figure 11, the device 110 for adjusting link width may include: a sending unit 1101, a receiving unit 1102, and a processing unit 1103. The sending unit 1101 is used to execute the process S601 in Figure 6 or Figure 7 or Figure 8a or Figure 8b or Figure 8c, and the receiving unit 1102 is used to execute the process S604 in Figure 6 or Figure 7 or Figure 8a or Figure 8b or Figure 8c; the processing unit 1103 is used to execute the process S605 in Figure 6 or Figure 7 or Figure 8a or Figure 8b or Figure 8c. Among them, all relevant contents of each step involved in the above-mentioned method embodiment can be referred to the functional description of the corresponding functional module, and will not be repeated here.
[0295] In the case of dividing each functional module according to each function, Figure 12 illustrates another device 120 for adjusting the link width provided in an embodiment of the present application, and the device 120 for adjusting the link width is used to implement the function of the second device or device B in the above-mentioned method embodiment. As shown in Figure 12, the device 120 for adjusting the link width may include: a receiving unit 1201 and a sending unit 1202. The receiving unit 1201 is used to execute the process S602 in Figure 6 or Figure 7 or Figure 8a or Figure 8b or Figure 8c; the sending unit 1202 is used to execute the process S603 in Figure 6 or Figure 7 or Figure 8a or Figure 8b or Figure 8c. Among them, all relevant contents of each step involved in the above-mentioned method embodiment can be referred to the functional description of the corresponding functional module, and will not be repeated here.
[0296] In the case of adopting an integrated unit, as shown in FIG13 , another device 130 for adjusting the link width provided in an embodiment of the present application is used to implement the functions of the first device or device A or the second device or device B in the above-mentioned embodiment. The device 130 for adjusting the link width includes a processing module 1301 and a communication module 1302. The processing module 1301 is used to control and manage the actions of the device 130 for adjusting the link width, and the communication module 1302 is used to communicate with other devices. For example, the processing module 1301 is used to execute any of the processes S601 to S605 in FIG6 ; the communication module 1302 is used for the device 130 for adjusting the link width to interact with other devices. The device 130 for adjusting the link width may further include a storage module 1303 for storing program code and data of the device 130 for adjusting the link width.
[0297] The processing module 1301 may be the processor 5010 in the physical structure of the computing device 50 shown in FIG5 , and may be a processor or controller. For example, it may be a CPU, a general-purpose processor, a DSP, an ASIC, an FPGA, or other programmable logic device, a transistor logic device, a hardware component, or any combination thereof. It may implement or execute the various exemplary logic blocks, modules, and circuits described in conjunction with the disclosure of this application. The processing module 1301 may also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, and so on. The communication module 1302 may be the communication interface 5040 in the physical structure of the computing device 50 shown in FIG5 . The communication module 1302 may be a communication port, or may be a transceiver, a transceiver circuit, or a communication interface. Alternatively, the communication interface may enable communication with other devices through the aforementioned transceiver components. The transceiver components may be implemented by antennas and / or radio frequency devices. The storage module 1303 may be the memory 5030 in the physical structure of the computing device 50 shown in FIG5 .
[0298] As mentioned above, the apparatus 110 for adjusting the link width, the apparatus 120 for adjusting the link width, and the apparatus 130 for adjusting the link width provided in the embodiments of the present application can be used to implement the functions of the first device or device A or the second device or device B in the above-mentioned embodiments of the present application. For ease of explanation, only the parts related to the embodiments of the present application are shown. For specific technical details not disclosed, please refer to the embodiments of the present application.
[0299] On the other hand, an embodiment of the present application provides a data transmission system, including the above-mentioned device for adjusting link width 110 and the device for adjusting link width 120.
[0300] As another form of this embodiment, a computer-readable storage medium is provided, on which instructions are stored. When the instructions are executed, the method for adjusting the link width in the above method embodiment is performed.
[0301] As another form of this embodiment, a computer program product containing instructions is provided. When the computer program product is run on a computer, the computer is caused to execute the method for adjusting the link width in the above method embodiment.
[0302] As another form of this embodiment, a chip is provided, comprising one or more interface circuits and one or more processors. The interface circuits are configured to receive signals from a memory of an electronic device and transmit the received signals to the processors, the signals comprising computer instructions stored in the memory. When the processors execute the computer instructions, the electronic device performs the operational steps of the method described in the first aspect or any possible implementation.
[0303] The embodiment of the present application further provides a chip system, which includes a processor for implementing the technical method of the embodiment of the present application. In one possible design, the chip system also includes a memory for storing the necessary program instructions and / or data of the embodiment of the present invention. In one possible design, the chip system also includes a memory for the processor to call the application code stored in the memory. The chip system can be composed of one or more chips, or can include chips and other discrete devices, which is not specifically limited in the embodiment of the present application.
[0304] Those skilled in the art will readily appreciate that, in conjunction with the various exemplary units and method steps described in the embodiments disclosed herein, this application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in hardware or in a hardware-driven manner by computer software depends on the specific application scenario and design constraints of the technical solution.
[0305] The above embodiments can be implemented in whole or in part by software, hardware, firmware or any other combination. When implemented using software, the above embodiments can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded or executed on a computer, the process or function described in the embodiment of the present application of the present invention is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from one website, computer, server or data center to another website, computer, server or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) method. The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server or data center that contains one or more available media sets. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium. The semiconductor medium can be an SSD.
[0306] The above is only a specific embodiment of the present application, but the scope of protection of this application is not limited to this. Any changes or substitutions within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims.
Claims
1. A method for adjusting link width, characterized in that, Executed by a first device or a chip in the first device, the method includes: Sending a link width adjustment message to a second device, the link width adjustment message including link width request parameters; Receiving a response message from the second device; According to the response message, adjusting the port transmission link of the first device to the width indicated by the link width request parameters.
2. The method according to claim 1, characterized in that, The link width request parameters are used to indicate a first number; the link width adjustment message further includes a low power consumption level; The adjusting the port transmission link of the first device to the width indicated by the link width request parameters includes: Determining channels to be closed, and there are the first number of channels in a high-speed state in addition to the channels to be closed in the port transmission link; The channels to be closed enter the state indicated by the low power consumption level.
3. The method according to claim 2, wherein Before the channels to be closed enter the state indicated by the low power consumption level, the method further includes: Sending a control frame for indicating logical layer electrical idle in the channels to be closed.
4. The method according to claim 2 or 3, characterized in that The method further includes: Sending padding control frames in the first number of channels in a high-speed state.
5. The method according to claim 1, wherein The link width request parameters are used to indicate a third number; The adjusting the port transmission link of the first device to the width indicated by the link width request parameters includes: Determining channels to be opened, and the number of channels in a high-speed state in the port transmission link currently, plus the number of channels to be opened, is the third number; Sending a training sequence in the channels to be opened.
6. The method according to claim 5, wherein The sending a training sequence in the channels to be opened includes: Sending a training sequence in the channels to be opened; Receiving a channel lock feedback message sent by the second device.
7. The method according to claim 5 or 6, characterized in that, Before sending a training sequence in the channels to be opened, it further includes: Sending a link training start message, the link training start message being used to indicate initiating training for the channels to be opened; or, Sending an electrical idle exit frame in the channels to be opened.
8. A method for adjusting link width, characterized in that Applied to be executed by a second device or a chip in the second device, the method includes: Receiving a link width adjustment message, the link width adjustment message including link width request parameters; When dynamic link width switching is supported, sending a response message, the response message being used to confirm adjusting the port receiving link of the second device to the width indicated by the link width request parameters.
9. The method according to claim 8, wherein The link width request parameters are used to indicate a first number, the link width adjustment message further includes a low power consumption level; the method further includes: Determining channels to be closed, and there are the first number of channels in a high-speed state in addition to the channels to be closed in the port transmission link; The channels to be closed enter the state indicated by the low power consumption level.
10. The method according to claim 9, wherein The determining channels to be closed includes: Receiving a first control frame; If the first control frame is a logical layer electrical idle control frame, determining the channel receiving the first control frame as the channel to be closed.
11. The method according to claim 9 or 10, characterized in that, The method further includes: Receiving a second control frame; If the second control frame is a padding control frame, determine that the channel receiving the second control frame is in a high-speed state, and the number of channels in the high-speed state is the first number.
12. The method according to claim 8, wherein The link width request parameter is used to indicate a third number; the method further includes: Receive a training sequence on the channel to be enabled.
13. The method according to claim 12, characterized in that, Before receiving the training sequence on the channel to be enabled, it further includes: Determine the channel to be enabled, where the channel to be enabled is a channel sensed to be in a non-electrical idle state; or, the channel for initiating training indicated by a link training start message.
14. The method according to claim 12 or 13, characterized in that, When receiving the training sequence on the channel to be enabled, it further includes: Send a channel lock feedback message to the first device.
15. A device for adjusting link width, characterized in that, Deployed in the first device or a chip in the first device, the device includes: A sending unit, configured to send a link width adjustment message to a second device, where the link width adjustment message includes a link width request parameter; A receiving unit, configured to receive a response message from the second device; A processing unit, configured to adjust the port sending link of the first device to the width indicated by the link width request parameter according to the response message.
16. The device according to claim 15, characterized in that, The link width request parameter is used to indicate a first number; the link width adjustment message further includes a low power consumption level; Specifically, the processing unit is configured to: Determine the channel to be closed, where there are the first number of channels in the high-speed state in the port sending link except for the channel to be closed; The channel to be closed enters the state indicated by the low power consumption level.
17. The device according to claim 16, characterized in that, Before the channel to be closed enters the state indicated by the low power consumption level, the sending unit is further configured to: Send a control frame for indicating logical layer electrical idle in the channel to be closed.
18. The device according to claim 16 or 17, characterized in that The sending unit is further configured to: Send a padding control frame in the first number of channels in the high-speed state.
19. The device according to claim 15, characterized in that, The link width request parameter is used to indicate a third number; Specifically, the processing unit is configured to: Determine the channel to be enabled, where the number of channels currently in the high-speed state in the port sending link plus the number of channels to be enabled is the third number; Send a training sequence on the channel to be enabled.
20. The device according to claim 19, characterized in that, Specifically, the sending unit is configured to: Send a training sequence on the channel to be enabled; Receive the channel lock feedback message sent by the second device.
21. The device according to claim 19 or 20, characterized in that, Before sending the training sequence on the channel to be enabled, the sending unit is further configured to: Send a link training start message, where the link training start message is used to indicate initiating training on the channel to be enabled; or, Send an electrical idle exit frame on the channel to be enabled.
22. An apparatus for adjusting link width, characterized in that Applied to the second device or a chip in the second device, the device includes: A receiving unit, configured to receive a link width adjustment message, where the link width adjustment message includes a link width request parameter; A sending unit, configured to send a response message for confirming adjusting the port receiving link of the second device to the width indicated by the link width request parameter when supporting dynamic link width switching.
23. The device according to claim 22, characterized in that The link width request parameter is used to indicate a first number, and the link width adjustment message further includes a low power consumption level; the device further includes a processing unit, and the processing unit is configured to: Determine a channel to be closed. In the link received by the port, in addition to the channel to be closed, there are also the first number of channels in a high-speed state. Put the channel to be closed into the state indicated by the low power consumption level.
24. The device according to claim 23, wherein The receiving unit is further configured to: receive a first control frame; The processing unit is further configured to, if the first control frame is a logical layer electrical idle control frame, determine that the channel receiving the first control frame Is the channel to be closed.
25. The device according to claim 23 or 24, wherein The receiving unit is further configured to: receive a second control frame; The processing unit is further configured to, if the second control frame is a padding control frame, determine that the channel receiving the second control frame is in a high-speed state, and the number of channels in the high-speed state is the first number.
26. The device according to claim 22, characterized in that, The link width request parameter is used to indicate a third number; The receiving unit is further configured to: receive a training sequence on the channel to be opened.
27. The device according to claim 26, wherein The processing unit is further configured to: Determine the channel to be opened, where the channel to be opened is a channel sensed to be in a non-electrical idle state; or, the channel for initiating training indicated by the link training start message.
28. The device according to claim 26 or 27, characterized in that, The sending unit is specifically configured to: Send a channel lock feedback message to the first device.
29. A computing device, characterized in that, The computing device includes a memory and at least one processor. The memory is used to store a set of computer instructions; when the processor executes the set of computer instructions, it performs the operation steps of the method according to any one of claims 1-14 above.
30. A chip, characterized in that, Includes one or more interface circuits and one or more processors; the interface circuit is configured to receive a signal from the memory of the electronic device and send the signal to the processor, and the signal includes computer instructions stored in the memory; when the processor executes the computer instructions, the electronic device is caused to perform the operations of the method according to any one of claims 1-14.
31. A data transmission system, characterized in that, The data transmission system includes a data sending device and a data receiving device. The data sending device includes a device for adjusting the link width according to any one of claims 15-21, and the data receiving device includes a device for adjusting the link width according to any one of claims 22-28.
32. A computer-readable storage medium, characterized in that, Includes: Computer software instructions; when the computer software instructions run on a computer, the computer is caused to perform the operation steps of the method according to any one of claims 1-14 above.
33. A computer program product, characterized in that, The computer program product includes a software program. When the software program is executed by a computer or a processor, the computer or the processor is caused to perform the operation steps of the method according to any one of claims 1-14 above.
Citation Information
Patent Citations
Method and equipment for allocating high-level data link control link bandwidths
CN103379551A
Method for saving power on multi-channel devices
CN104104539A
Partial link width states for multilane links
CN111666234A
Energy-saving method applied to multi-link communication and communication device
CN113365327A
Method and device for adjusting link width
CN116802621A