A method and apparatus for adjusting link width
Patent Information
- Application Number
- CN202380101158.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-12-20
- Publication Date
- 2026-10-27
- Estimated Expiration
- 2043-12-20
AI Technical Summary
[0003]在业务空闲时,过宽的链路带宽又会造成功耗上的浪费
[0050]上述第三方面至第九方面提供的方案,用于实现上述第一方面或第二方面提供的方法,因此可以与第一方面或第二方面达到相同的有益效果,此处不再进行赘述。
Smart Images

Figure CN121693900B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communications, and more particularly to a method and apparatus for adjusting link width. Background Technology
[0002] With the rapid development of communication technology, interconnected devices transmit service data through links between them. As interfaces support increasingly higher speeds, wider link bandwidth is needed to match these speeds and ensure the transmission rate of service data.
[0003] When business is idle, excessive link bandwidth can lead to wasted power consumption. Therefore, dynamic management of link bandwidth is necessary to match link bandwidth with the transmission requirements of business data, thereby saving link power consumption while ensuring the data transmission rate of business data. Summary of the Invention
[0004] This application provides a method and apparatus for adjusting link width, enabling dynamic adjustment of link width.
[0005] To achieve the above objectives, the embodiments of this application adopt the following technical solutions:
[0006] 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 link width request parameters; receiving a response message from the second device; and adjusting the port transmission link of the first device to the width indicated by the link width request parameters according to the response message.
[0007] 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, and when business demand increases, channels can be quickly opened to support high-speed transmission, thus avoiding business blockage.
[0008] One possible implementation is that the link width request parameter indicates a first number; the link width adjustment message also includes a low-power level. Adjusting the port transmission link of the first device to the width indicated by the link width request parameter includes: identifying 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 transmission link. The channels to be closed enter the state indicated by the low-power level. The link width adjustment message is used to reduce the number of channels, indicating that some channels in the port transmission link should enter the indicated low-power level, with the remaining high-speed channels representing the first number. This achieves a dynamic reduction in the number of link channels.
[0009] Another possible implementation involves determining the channels to be closed, including: identifying a second number of channels from the channels currently in high-speed mode on the port transmission link as channels to be closed, with the channel number being the number of channels currently in high-speed mode minus the first number.
[0010] Another possible implementation involves determining the channels to be closed, including: from the channels currently in high-speed state of the port transmission link, determining a second number of channels with ascending channel numbers as channels to be closed, where the second number is the number of channels currently in high-speed state minus the first number.
[0011] Another possible implementation involves determining the channels to be closed by randomly selecting a second number of channels from those currently in high-speed mode on the port transmission link as channels to be closed, where the second number is the number of channels currently supported in high-speed mode minus the first number.
[0012] Another possible implementation, before the channel to be closed enters the state indicated by the low power level, may further include: sending a control frame in the channel to be closed to indicate that the logic layer is electrically idle, thereby indicating that the channel to be closed at the other end is idle, facilitating the other end to determine the channel to be closed.
[0013] Another possible implementation, the method provided in this application, may further include: sending a padding control frame in the first number of channels in high-speed mode to achieve multi-channel scrambling code reset at both the transmitting and receiving ends.
[0014] In another possible implementation, the method provided in this application may further include: transmitting a data start control frame in a first number of channels in high-speed mode to achieve multi-channel alignment, with both transmitting and receiving ends using the adjusted link bandwidth to transmit data.
[0015] Another possible implementation uses a link width request parameter to indicate a third number. The process of 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; the number of channels currently in high-speed mode in the port transmission link, plus the number of channels to be opened, equals the third number; and transmitting training sequences on the channels to be opened. A link width adjustment message is used to increase the number of channels, indicating that some channels in the port transmission link that are not in high-speed mode should be opened, so that the data from the high-speed channels reaches the third number. This achieves a dynamic increase in the number of link channels.
[0016] Another possible implementation method, the above-mentioned determination of the channels to be opened includes: starting from the largest channel number among the channels currently in high-speed state of the port transmission link, determining the fourth number of channels with the smallest channel number as channels to be opened, where the fourth number is the third number minus the number of channels currently in high-speed state.
[0017] Another possible implementation involves determining the channels to be opened, starting with the smallest channel number among the channels currently in high-speed mode of the port transmission link, and determining a fourth number of channels in descending order of channel number as channels to be opened, where the fourth number is the third number minus the number of channels currently in high-speed mode.
[0018] Another possible implementation method, the above-mentioned determination of the channels to be opened includes: randomly selecting a fourth number of channels as channels to be opened from the channels in the port transmission link that are not currently in a high-speed state, where the fourth number is the third number minus the number of channels currently in a high-speed state.
[0019] Another possible implementation involves sending a training sequence to the channel to be opened, including: sending the training sequence to the channel to be opened; receiving a channel locking feedback message from the second device; completing the training of the channel to be opened through interaction with the peer; opening the channel to be opened; and increasing the link bandwidth.
[0020] Another possible implementation, sending training sequences in the channel to be activated, may further include: sending padding control frames in the channel to be activated; sending padding control frames in the high-speed channels of the port transmission link; and sending data start control frames in all high-speed channels of the port transmission link. For channels that are already activated but not yet activated, the link width is increased.
[0021] Another possible implementation, as described above, of the method for adjusting the link width provided in this application before sending the training sequence to the channel to be opened, may further include: sending a link training start message, which is used to instruct the other end to initiate training on the channel to be opened. By using the link training start message, the other end is notified to begin training on the channel to be opened, thus achieving synchronization of training on both the transmit and receive channels.
[0022] Another possible implementation, the method for adjusting the link width provided in this application before sending the training sequence in the channel to be opened, may further include: sending an electrical idle exit frame in the channel to be opened to wake up the channel to be opened, and then training the channel to be opened.
[0023] Secondly, another method for adjusting the link width is provided, which can be applied to a second device or a chip within the second device. This method may include: receiving a link width adjustment message, the link width adjustment message including link width request parameters; and, if dynamic switching of the link width is supported, sending a response message to confirm that the port receive link of the second device has been adjusted to the width indicated by the link width request parameters.
[0024] 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, and when business demand increases, channels can be quickly opened to support high-speed transmission, thus avoiding business blockage.
[0025] One possible implementation is to support dynamic switching of link width by supporting independent adjustment of the link width for the receiving link and the transmitting link.
[0026] In another possible implementation, the second device sends a response message if the width indicated by the link width request parameter supports the received link. This invention, where the sending end initiates the link width adjustment request and the receiving end responds if the width indicated by the link width adjustment parameter supports the received link, makes the width adjustments of the sending and receiving links independent, avoiding interference and constraints, and improving the flexibility of link width adjustment.
[0027] In another possible implementation, the link width request parameter indicates a first number, and the link width adjustment message also includes a low-power level. The link width adjustment message is used to reduce the number of channels and to indicate that some channels in the port transmit link will enter the indicated low-power level, with the remaining high-speed channels representing the first number of channels. The method provided in this application may further include: 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 transmit link; and the channels to be closed entering the state indicated by the low-power level.
[0028] In another possible implementation, the second device determines the channel to be closed, which can be implemented by: receiving a first control frame; if the first control frame is a logic layer electrical idle control frame, then determining that the channel receiving the first control frame is the channel to be closed.
[0029] In another possible implementation, the method provided in this application may further include: receiving a second control frame; if the second control frame is a padding 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.
[0030] 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, and also to indicate that some channels in the port receive link that are in a non-high-speed state be opened, so that the data of the high-speed channels is the third number. The method provided in this application may further include: receiving a training sequence in the channel to be opened; and opening the channel after training has been completed.
[0031] In another possible implementation, before receiving the training sequence in the channel to be activated, the method provided in this application may further include: determining the channel to be activated, wherein the channel to be activated is a channel that is perceived to be in a non-electrically idle state. The perception that the channel to be activated is in a non-electrically idle state indicates that the other end is waking up the channel to be activated, and thus training is performed on the channel to be activated.
[0032] Among them, sensing that the channel to be opened is not electrically idle means that an electrically idle exit frame is received in the channel to be opened.
[0033] In another possible implementation, before receiving the training sequence on the channel to be opened, the method provided in this application may further include: determining the channel to be opened, wherein the channel to be opened is the channel for initiating training indicated by the link training start message. Synchronization of training on both the transmit and receive channels is achieved through the link training start message.
[0034] In another possible implementation, receiving the training sequence in the channel to be opened also includes sending a channel locking feedback message to the first device.
[0035] In another possible implementation, receiving the training sequence in the channel to be opened further includes: receiving a fill control frame in the channel to be opened; receiving a fill control frame in the high-speed channel in the port receiving link; and receiving a data start control frame in all high-speed channels in the port receiving link.
[0036] Thirdly, an apparatus for adjusting link width is provided, deployed in a first device or a chip within the first device. The apparatus may include: a transmitting unit, a receiving unit, and an adjusting unit. Wherein:
[0037] The sending unit is used to send a link width adjustment message to the second device, the link width adjustment message including link width request parameters.
[0038] The receiving unit is used to receive the response message from the second device.
[0039] The processing unit is used to adjust the port transmission link of the first device to the width indicated by the link width request parameter, based on the response message.
[0040] 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 first aspect or any possible implementation. Its specific implementation can refer to the first aspect or any possible implementation of the first aspect, and will not be elaborated here.
[0041] Fourthly, another device for adjusting link width is provided, applied to a second device or a chip within the second device. This device may include: a receiving unit and a transmitting unit. Wherein:
[0042] The receiving unit is used to receive the link width adjustment message, which includes the link width request parameters.
[0043] The sending unit is used to send a response message when dynamic switching of link width is supported. The response message is used to confirm that the port receive link of the second device is adjusted to the width indicated by the link width request parameter.
[0044] 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 second aspect or any possible implementation. Its specific implementation can refer to the second aspect or any possible implementation of the second aspect, and will not be elaborated here.
[0045] Fifthly, a computing device is provided, the computing device including a memory and at least one processor, the memory being used to store a set of computer instructions; when the processor executes the set of computer instructions, it performs the operation of the method described in the first aspect or the second aspect or any possible implementation thereof.
[0046] A sixth aspect provides a chip including one or more interface circuits and one or more processors; the interface circuits are configured to receive signals from the memory of an electronic device and send the received signals to the processors, the signals including computer instructions stored in the memory. When the processor executes the computer instructions, it causes the electronic device to perform the operational steps of the method described in the first aspect, the second aspect, or any possible implementation thereof.
[0047] A seventh aspect provides a computer-readable storage medium comprising: computer software instructions; which, when executed in a computer, cause the computer to perform the operations described in the first aspect, the second aspect, or any possible implementation thereof.
[0048] Eighthly, a computer program product, when run on a computer, causes the computer to perform the operational steps of the method described in the first aspect, the second aspect, or any possible implementation thereof.
[0049] Ninthly, a data transmission system is provided, the data transmission system including a data transmitting device and a data receiving device, the data transmitting device including the link width adjustment device as described in any of the third aspects above, and the data receiving device including the link width adjustment device as described in the fourth aspect above.
[0050] The solutions provided in the third to ninth aspects above are used to implement the methods provided in the first or second aspects above, and therefore can achieve the same beneficial effects as the first or second aspects, which will not be elaborated here.
[0051] It should be noted that any of the possible implementations of any of the above aspects can be combined, provided that the solutions do not contradict each other. Attached Figure Description
[0052] Figure 1 This is a schematic diagram of the structure of a data transmission system provided in an embodiment of this application;
[0053] Figure 2 This is a schematic diagram of another data transmission system provided in an embodiment of this application;
[0054] Figure 3 A schematic diagram of the basic components of an electronic device provided in an embodiment of this application;
[0055] Figure 4 This application provides a schematic diagram of inter-interface transmission.
[0056] Figure 5 This is a schematic diagram of the structure of a computing device provided in an embodiment of this application;
[0057] Figure 6 A flowchart illustrating a method for adjusting link width provided in an embodiment of this application;
[0058] Figure 7 A flowchart illustrating another method for adjusting link width provided in an embodiment of this application;
[0059] Figure 8a A flowchart illustrating another method for adjusting link width provided in an embodiment of this application;
[0060] Figure 8b A flowchart illustrating another method for adjusting link width provided in an embodiment of this application;
[0061] Figure 8c A flowchart illustrating another method for adjusting link width provided in an embodiment of this application;
[0062] Figure 9This application provides a flowchart illustrating the process of dynamically reducing the number of channels in an embodiment.
[0063] Figure 10 This application provides a flowchart illustrating the process of dynamically increasing the number of channels in an embodiment.
[0064] Figure 11 A schematic diagram of a device for adjusting link width provided in an embodiment of this application;
[0065] Figure 12 A schematic diagram of another device for adjusting link width provided in an embodiment of this application;
[0066] Figure 13 This is a schematic diagram of another device for adjusting link width provided in an embodiment of this application. Detailed Implementation
[0067] In the embodiments of this application, in order to clearly describe the technical solutions of the embodiments of this application, the terms "first" and "second" are used to distinguish identical or similar items with essentially the same function and effect. Those skilled in the art will understand that the terms "first" and "second" do not limit the quantity or execution order, and the terms "first" and "second" are not necessarily different. The technical features described by "first" and "second" have no sequential or size order.
[0068] In the embodiments of this application, the terms "exemplary" or "for example" are used to indicate that something is an example, illustration, or description. Any embodiment or design that is described as "exemplary" or "for example" in the embodiments of this application should not be construed as being more preferred or advantageous than other embodiments or design. Specifically, the use of terms such as "exemplary" or "for example" is intended to present the relevant concepts in a specific manner to facilitate understanding.
[0069] In the embodiments of this application, at least one can also be described as one or more, and multiple can be two, three, four or more, and this application does not impose any restrictions.
[0070] Furthermore, the network architecture and scenarios described in the embodiments of this application are for the purpose of more clearly illustrating the technical solutions of the embodiments of this application, and do not constitute a limitation on the technical solutions provided in the embodiments of this application. As those skilled in the art will know, with the evolution of network architecture and the emergence of new business scenarios, the technical solutions provided in the embodiments of this application are also applicable to similar technical problems.
[0071] To facilitate understanding, the relevant terms involved in the embodiments of this application will be explained first.
[0072] A lane is a pathway used for signal transmission. This lane can be unidirectional or bidirectional. A unidirectional lane consists of one pair of differential signal lines, while a bidirectional lane consists of two pairs of differential signal lines.
[0073] A link is a collection of channels or a conductor line used for power supply. A link typically includes one or more channels. When a channel is operational, a transmitter and a receiver are activated at each end. Data (or signals) is transmitted only from the transmitter to the receiver. In a link, the side containing the transmitter is called the transmitter side (Tx side), and the side containing the receiver is called the receiver side (Rx side). A link where one device sends data to the other is called a port transmit link for that device; a link where one device receives data from the other is called a port receive link for that device.
[0074] Link width refers to the number of channels in a link that are in high-speed mode (supporting the transmission of service data), and can also be called link bandwidth.
[0075] Main Link: Used for high-speed data transmission, such as audio and video signals, third-party protocol data, and other high-speed data transmission.
[0076] Sideband link (SL): Used for low-speed data transmission, such as device management signals, port management signals, bandwidth management signals, and power management signals, as well as control message transmission. The reliability of data transmission via the sideband link is higher than that via the main link.
[0077] Logical Layer Control Frame (LLCF): A special code pattern used to implement link management functions such as link training and state updates.
[0078] A logical layer block (LLB) is the basic unit of data transmission.
[0079] For example, as shown in Tables 1 and 2 below, the frame format of this LLCF includes a frame header, which includes a frame type and a checksum. The frame type indicates the frame type, and the checksum is a check bit for the frame type. Optionally, the frame format of this LLCF may also include a payload, which is information carried by the control frame of the corresponding type. This LLCF may include one or more frame headers, where the frame type and checksum in each header can each occupy one byte (B), meaning the length of the frame type and checksum can both be 1B; the payload in this LLCF can occupy one or more bytes, meaning the length of the payload is variable. For example, this 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 the payload occupies byte B6. The contents of frame headers 1, 2, and 3 in the above frame structure are identical, constituting a duplicate code.
[0080] Table 1
[0081]
[0082] Table 2
[0083]
[0084] The frame type, checksum, payload length, and description of the control frames involved in this application may be as shown in Table 3 below, and may include:
[0085] Logic Layer Control Frame Training Sequence 0 (LLCF_TS0) is used for clock locking during the training phase.
[0086] Logic Layer Control Frame Training Sequence 1 (LLCF_TS1) is used for channel parameter tuning calculations during the training phase.
[0087] Logic Layer Control Frame Training Sequence 2 (LLCF_TS2) is used to confirm the synchronization status of sending and receiving.
[0088] The Logic Layer Control Frame Electrical Idle (LLCF_EI) is used to mark the end of transmission in this lane, after which subsequent data should be discarded.
[0089] The Logic Layer Control Frame Data Start (LLCF_DS) marks the starting position of a new logic block, and the logic block data is transmitted immediately following the LLCF_DS.
[0090] Logic Layer Control Frame Electrical Idle Exit (LLCF_EIE) is used by the sending end to wake up the channel via a high-speed link.
[0091] The Logic Layer pad logical layer control frame (LLCF_PAD) is used for padding.
[0092] Table 3
[0093]
[0094] 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, data transmission devices (e.g., data transmitting devices) and data transmission devices (e.g., data receiving devices) can be directly connected or indirectly connected through switching devices such as routers; that is, all multiple data transmission devices can be connected to the switching device. In this application, data transmission between the multiple data transmission devices can be performed via wired or wireless means. Furthermore, when transmitting data between the multiple data transmission devices, signal transmission can be performed directly or through an interface device.
[0095] When the data transmission device is a chip within a device, the chips in the data transmission system can be interconnected via wired or wireless means. This chip can be a chip within the device, a chip in a docking station, or a chip in an adapter, etc. The docking station can connect to gigabit Ethernet ports, video graphics arrays (VGA), HDMI, trans flash (TF) cards, secure digital (SD) cards, charging ports, and USB ports, etc.
[0096] Optionally, when the data transmission device is a chip, the chip may further include an interface module, meaning this application can be applied to an interface module for chip-to-chip interconnection. This interface module can be understood as an intellectual property (IP) module integrated within the chip. Alternatively, the interface module can also be sold independently as an IP module. For example, the chip can be a system-on-chip (SoC), a central processing unit (CPU), or a graphics processing unit (GPU), etc., and the aforementioned interface module can be an interface module within the SoC, CPU, or GPU, etc. Optionally, the interface module can be a transmitting circuit and / or a receiving circuit.
[0097] The following example, using a data transmission system comprising multiple devices, illustrates the structure of such a data transmission device.
[0098] Figure 1 This is a schematic diagram of a data transmission system provided in an embodiment of this application. The data transmission system includes a first device 110 and a second device 120, which are connected via a wired or wireless means, such as a cable. The first device 110 and the second device 120 can transmit signals, such as audio / video data or charging signals. In one example, the first device 110 can be a set-top box, and the second device 120 can be a television. The set-top box and the television can be connected via a cable, and the set-top box can transmit audio / video data to the television via the cable. In another example, the first device 110 is a monitor, and the second device 120 is a game controller. The monitor and the game controller can be connected via a cable, and the game controller can transmit control information to the monitor via the cable.
[0099] 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 may specifically be between interface A of the first device 110 and interface B of the second device 120, for example, the interface A of the first device 110 and the interface B of the second device 120 may be connected by a cable.
[0100] Figure 2This is a schematic diagram of another data transmission system provided in an embodiment of this application. The data transmission system includes multiple devices 210 and a router 220. The multiple devices 210 can be connected to the router 220 via wired or wireless means; for example, all multiple devices 210 can be connected to the router 220 via cables. Any two devices among the multiple devices 210 can transmit signals through the router 220, such as transmitting audio / video data or charging signals. In one example, the multiple devices 210 may include a display 211, a set-top box 212, and an audio player (e.g., an MP3 player (Moving Picture Experts Group Audio Layer-3)) 213. The set-top box 212 can transmit audio / 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 interconnected devices among the multiple devices 210. For example, the multiple devices 210 may also include a game controller 214, which can be connected to the display 211 and transmit control information to the display 211.
[0101] Optionally, each of the plurality of devices 210 may include an interface, and the router 220 may include multiple interfaces. The interface of each of the plurality of devices 210 may be connected to one of the multiple interfaces of the router 220. For example, the plurality of devices 210 may include a monitor, a set-top box, a game controller, and an audio player. The multiple interfaces of the router 220 include a first interface to a fourth interface. The interface of the monitor 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.
[0102] The devices in the aforementioned system with data transmission capabilities can be called communication devices. These communication devices can be deployed on land, including indoors or outdoors, handheld or vehicle-mounted. They can also be deployed on water (such as on ships) and in the air (such as on airplanes, balloons, and satellites), and can be applied to various scenarios. For example, the communication device may include, but is not limited to: mobile phone, tablet computer, laptop computer, PDA, mobile internet device (MID), camera, wearable device (e.g., smartwatch, smart bracelet, pedometer, etc.), audio equipment, audio and video player, set-top box, game console, printer, mouse, keyboard, in-vehicle equipment (e.g., equipment on vehicles such as cars, bicycles, electric vehicles, airplanes, ships, trains, and high-speed trains), virtual reality (VR) device, augmented reality (AR) device, wireless terminal in industrial control, smart home device (e.g., refrigerator, television, air conditioner, electricity meter, etc.), smart robot, workshop equipment, wireless terminal in self-driving, wireless terminal in remote medical surgery, wireless terminal in smart grid, wireless terminal in transportation safety, wireless terminal in smart city, or smart home. Wireless terminals and flying equipment (e.g., intelligent robots, hot air balloons, drones, airplanes) in the home. Optionally, the signals transmitted between the above-mentioned communication devices may include, but are not limited to: audio and video signals, radio frequency signals, IoT data, and charging signals.
[0103] In this application, the interface specifications used for signal transmission between devices in the data transmission system may include, but are not limited to: Universal Serial Bus (USB) interface specifications, High Definition Multimedia Interface (HDMI) specifications, DisplayPort (DP) specifications, Unified Multimedia Interconnection (UMI) interface specifications, and Peripheral Component Interconnect Express (PCI-Express) interface specifications. Correspondingly, the interface may be HDMI, miniHDMI, micro HDMI, Type-A, Type-B, Micro-B, or Type-C, etc.
[0104] For example, in the above example, the interface connection between the set-top box and the TV, or between the game console and the monitor, can be via a USB cable, following the USB interface standard; or the connection can be via an HDMI cable, following the HDMI interface standard.
[0105] It is understood that the interface specifications used for signal transmission between the above-mentioned devices are merely exemplary. In practical applications, the interface specifications may also include other or any interface specifications that may appear in the future, such as the Unified Media Interconnection (UMI) interface, etc. This application embodiment does not impose specific limitations on this.
[0106] In this application, when the aforementioned device is an electronic device, such as Figure 3The diagram illustrates the basic components of an electronic device. The electronic device includes an interface chip 300 (Unified Multimedia Interconnect Interface), which comprises one or more adapters 301, a management and control adapter 302, and one or more ports 303; alternatively, if the electronic device is a routing device, the interface chip 300 may only include one or more ports 303. Each of the one or more adapters 301 can be coupled to external components of the interface chip 300. The management and control adapter 302 can be coupled to management and control components outside the interface chip 300. Ports 303 can be coupled to a connector 304 of the electronic device, which is used to couple external devices of the electronic device. The one or more adapters 301 may be transmit / receive adapters. For example, when adapter 301 is used for audio / video format adaptation, it may be an audio / video transmit / receive adapter. When adapter 301 is used for third-party protocol adaptation, it may be a third-party protocol adapter.
[0107] For example, when port 303 is a downlink port, the transmitting 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 receiving adapter 301 can be used to adapt the service information received from port 303 into service information that can be processed internally by the electronic device for internal processing. The management and control adapter 302 can be used to adapt control information.
[0108] Different electronic devices can be combined with their basic components to form various device types. For example, an electronic device may include a source device with at least one downlink port and at least one audio / video transmission adapter, or a source device with at least one uplink port and an audio / video reception adapter, or a docking station device with at least one uplink port, at least one audio / video reception adapter, and at least one conventional audio / video interface, or a routing device with at least one downlink port and at least one uplink port, but without audio / video transmission adapter and audio / video reception adapter, or a composite device with both uplink and downlink ports.
[0109] like Figure 4 The diagram illustrates an interface transmission method according to an embodiment of this application. The uplink and downlink ports between devices may include a primary link and an auxiliary link. The primary link can be used for high-speed data transmission, such as audio and video signal transmission, while the auxiliary link can be used for 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.
[0110] In one possible embodiment, the main link may include multiple channels, each supporting 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; the auxiliary link may include one bidirectional channel. For example, a main link may include multiple channels, such as 2, 5, or 9. The more channels the main link includes, the faster the data transmission speed. For example, as... Figure 4 As shown, for the uplink port, the main link may include n transmit channels TX0-TXn and m receive channels RX0-RXm, and the auxiliary link includes transmit channel SBTX and receive channel SBRX, where n and m are positive integers; for the downlink port, the main link may include n receive channels RX0-RXn and m transmit channels TX0-TXm, and the auxiliary link includes receive channel SBRX and transmit channel SBTX.
[0111] Furthermore, the upstream and downstream ports between devices can also include a power-bus link (PL) and a cable-information link (CL). The cable-information link can be used to transmit cable information, such as cable type and cable capability information. The power-bus link and the cable-information link are not shown in the figure.
[0112] It is understandable that ports between devices, whether uplink or downlink, can include multiple pins, such as pins for connecting to ground, pins for connecting to power, pins for connecting to the main link channel, and pins for connecting to the auxiliary link channel.
[0113] In a high-speed interconnect interface, the main link mentioned above can also be called a high-speed link. Specifically, it can include multiple channels that support high-speed data transmission. For example, the transmission rate supported by the main link channel can be 2Gbps, 4Gbps, or 8Gbps. The auxiliary link mentioned above can also be called a low-speed link. Specifically, it can include multiple channels that support low-speed transmission. For example, the transmission rate supported by the auxiliary link channel can be 12.5Mbps.
[0114] When transmitting data across multiple channels, even if the same clock source is used from the transmitting end, if the data is not processed at the receiving end, it cannot be guaranteed that the data from all channels will arrive at the receiving end simultaneously, resulting in a time difference between the channels. There are many reasons for this time difference, such as differences in the length of the signal lines for each channel, variations in impedance during circuit board printing, delays introduced by serialization and deserialization, and external factors such as temperature.
[0115] The solutions provided by the embodiments of this application will be described in detail below with reference to the accompanying drawings.
[0116] On one hand, this application provides a schematic diagram of the structure of a computing device 50. This computing device 50 can achieve... Figure 1 The functions of the first device 110 or the second device 120 are illustrated in the diagram.
[0117] like Figure 5 As shown, 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.
[0118] It should be understood that in this embodiment, the processor 5010 may be a central processing unit (CPU), but it may also be other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general-purpose processor may be a microprocessor or any conventional processor.
[0119] 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 used to control the execution of the program of the present application.
[0120] The communication interface 5040 is used to enable communication between the computing device 50 and external devices or components.
[0121] Bus 5020 may include a pathway for transferring information between the aforementioned components (such as processor 5010 and memory 5030). In addition to a data bus, bus 5020 may also include a power bus, control bus, and status signal bus. However, for clarity, all buses are labeled as bus 5020 in the diagram. Bus 5020 may be a peripheral component interconnect express (PCIe) bus, or an extended industry standard architecture (EISA) bus, a unified bus (Ubus or UB), a compute express link (CXL), a cache coherent interconnect for accelerators (CCIX), etc. Bus 5020 can be divided into address bus, data bus, control bus, etc.
[0122] As an example, computing device 50 may include multiple processors. A processor may be a multi-core (multi-CPU) processor. Here, "processor" can refer to one or more devices, circuits, and / or computing units used to process data (e.g., computer program instructions).
[0123] It is worth noting that, Figure 5 Taking computing device 50 as an example, which includes one processor 5010 and one memory 5030, the processor 5010 and memory 5030 are used to indicate a type of device or equipment. In specific embodiments, the number of each type of device or equipment can be determined according to business needs.
[0124] The memory 5030 can be a pool of volatile memory or a pool of non-volatile memory, or it can include both volatile and non-volatile memory. The non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory can be random access memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous linked dynamic random access memory (SLDRAM), and direct rambus RAM (DR RAM).
[0125] For example, the processor 5010 can perform the following functions by running or executing software programs and / or modules stored in the memory 5030:
[0126] Send a link width adjustment message to the second device, the link width adjustment message including link width request parameters; receive a response message from the second device; and adjust the port sending link of the first device to the width indicated by the link width request parameters according to the response message.
[0127] For example, the processor 5010 can perform the following functions by running or executing software programs and / or modules stored in the memory 5030:
[0128] Receive a link width adjustment message, which includes link width request parameters; if dynamic switching of link width is supported, send a response message to confirm that the port receive link of the second device has been adjusted to the width indicated by the link width request parameters.
[0129] On the other hand, embodiments of this application provide 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, this method can be applied to... Figure 1The illustrated data transmission system.
[0130] Specifically, the method for adjusting the link width is used to dynamically adjust the width (i.e., the number of channels) of the transmission link from the first device to the second device (that is, the reception link from which the second device receives data from the first device). The adjustment of the port transmission link width is achieved through negotiation between the sending end and the receiving end.
[0131] Furthermore, the adjustment of link width described in this application refers to adjusting the width of the main link (ML) between devices.
[0132] like Figure 6 As shown, the method for adjusting link width provided in this application may include:
[0133] S601, The first device sends a link width adjustment message to the second device. The link width adjustment message includes link width request parameters.
[0134] The Link Width Adjust Message (LWAM) can be a set of link width adjustment request parameters. LWAM is used when the link is in service transmission mode (high-speed mode). It is initiated when link bandwidth requirements need to be adjusted.
[0135] Specifically, the link width request parameter can be used to indicate the number of channels included in the adjusted link width.
[0136] In one possible implementation, in a scenario where the number of channels is dynamically reduced, the link width request parameter indicates a first number, and the link width adjustment message also includes a low-power level. The link width adjustment message is used to reduce the number of channels, indicating that some channels in the port transmission link will enter the indicated low-power level, with the remaining high-speed channel data representing the first number.
[0137] For example, low-power levels can include multiple different levels. For instance, based on wake-up time and energy consumption, there are four levels: LP0, LP1, LP2, LP3, and disabled. By disabling more and more functional modules, lower energy consumption is achieved; correspondingly, the wake-up time from the low-power level also increases. LP0-LP2 can be woken up via LLCF_EIE, while LP3 and disabled states cannot. In specific implementations, one or more of the above four states can be supported; this invention does not limit this.
[0138] For example, the link width adjustment message includes a link width request parameter, which can be a first number. The minimum first number is 1. The maximum value of the first number is related to the maximum transmission rate of the main link, for example, it can be set to a maximum of 8 or a maximum of 16, which is not limited in this invention.
[0139] For example, the link width adjustment message includes a link width request parameter, which can be the sequence number of the channel to be closed, and the first number is the number of channels currently in high-speed mode, excluding the channel to be closed. The minimum first number is 1. The maximum value of the first number is related to the maximum transmission rate of the main link, for example, it can be set to a maximum of 8, or a maximum of 16, which is not limited in this invention.
[0140] In another possible implementation, in a scenario where the number of channels is dynamically increased, the link width request parameter is used to indicate the third number. The link width adjustment message is used to increase the number of channels, and it instructs that some channels in the port transmission link that are not in a high-speed state be opened, so that the data from the high-speed channels reaches the third number.
[0141] For example, the link width adjustment message includes a link width request parameter, which can be a third number. The maximum value of the third number is related to the maximum transmission rate of the main link, and for example, it can be set to a maximum of 8 or a maximum of 16. This invention does not limit this.
[0142] For example, the link width adjustment message includes a link width request parameter that can be the sequence number of the channel to be opened, and the third number is the number of channels currently in high-speed mode plus the number of channels to be opened. The maximum value of the third number is related to the maximum transmission rate of the main link, for example, it can be set to a maximum of 8 or a maximum of 16, and the present invention does not limit it.
[0143] 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 this embodiment of the application does not limit it. LWAM can support transmission via ML and SL.
[0144] In one possible implementation, the number of channels indicated by the link width request parameter can be indicated by the upper layer of the logic layer (such as the transport layer or the adaptation layer), which is not limited in this embodiment of the application.
[0145] In one possible implementation, the sequence number of the channel to be closed, or the sequence number of the channel to be opened, indicated by the link width request parameter, can be indicated by the upper layer of the logic layer (such as the transport layer or the adaptation layer), which is not limited in this embodiment of the application.
[0146] For example, the first device can determine the link bandwidth, i.e., the value of a first number or a third number, based on the transmission requirements of the service data. One specific implementation method is: Link width = ceiling(R1 / R2), where ceiling() represents rounding up, R1 represents the transmission requirement rate of the service 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 initial transmission requirement rate of the service data is 32Gbps and the channel transmission rate is 4Gbps, then the link width is 8. If, after a period of time, the transmission requirement of the service data decreases, for example, to 2Gbps, the first device can set the first number to 1, adjusting the link width from 8 to 1 to save link power consumption; if the transmission requirement of the service data subsequently rises back to 16Gbps, the first device can set the third number to 4, adjusting the link width from 1 to 4 to meet the service requirements.
[0147] In this invention, the value of the first number or the third number can be determined according to the transmission requirements of the service data, so as to match the link width with the transmission requirements of the service data and save link power consumption while ensuring the data transmission rate of the service data.
[0148] S602, The second device receives the link width adjustment message.
[0149] The link width adjustment message received by the second device in S602 is the same as the link width adjustment message sent by the first device in S601, which will not be described in detail here.
[0150] S603. The second device sends a response message if it supports dynamic switching of link width.
[0151] Specifically, after receiving the link width adjustment message, the second device responds with Ack to LWAM if it agrees to the link width adjustment request; otherwise, it responds with Nack.
[0152] The response message (ACK) is used to confirm that the port receive link of the second device has been adjusted to the width indicated by the link width request parameter.
[0153] One possible implementation is to support dynamic switching of link width by supporting independent adjustment of the link width for the receiving link and the transmitting link.
[0154] In another possible implementation, supporting dynamic link width switching can be achieved by the second device sending a response message when it receives the link width adjustment request parameter. This application involves the sending end initiating a link width adjustment request message, and the receiving end responding when it receives the width indicated by the link width adjustment message. This ensures that the width adjustments of the sending and receiving links are independent, avoiding interference and constraints, and improving the flexibility of link width adjustment.
[0155] In another possible implementation, supporting dynamic switching of link width can be achieved by supporting independent adjustment of the link width of the receiving link and the sending link, and the receiving link supporting the width indicated by the link width request parameter.
[0156] It should be noted that the format and content layout of the corresponding response messages are not limited in this application embodiment.
[0157] S604, The first device receives the response message from the second device.
[0158] The response message received by the first device in S604 is the same as the response message sent by the second device in S603, which will not be described in detail here.
[0159] S605. Based on the response message, the first device adjusts the port sending link of the first device to the width indicated by the link width request parameter.
[0160] Specifically, when the first device receives a response message from the second device indicating that the second device agrees to the link width adjustment request, the first device can then begin the link width adjustment process.
[0161] Specifically, the implementation of S605 can be described in two scenarios: dynamically reducing the number of channels and dynamically increasing the number of channels.
[0162] 1) Scenarios where the number of channels is dynamically reduced:
[0163] In scenarios where the number of channels is dynamically reduced, the link width request parameter indicates a first number, which is less than the number of channels currently in high-speed mode in the first device port's transmission link. The link width adjustment message also includes a low-power level. In this scenario, some channels currently in high-speed mode in the first device port's transmission link are shut down (entered into a low-power state) (the channels to be shut down), so that the number of channels in high-speed mode in the first device port's transmission link is the first number.
[0164] Specifically, S605 can be implemented as follows: determine the channel to be closed, and in addition to the channel to be closed, there are a first number of channels in high-speed state in the port transmission link; the channel to be closed enters the state indicated by the low power level.
[0165] The process of the control channel entering a low-power state is not limited in the embodiments of this application.
[0166] Furthermore, the channels to be closed can be the second number of channels in the port transmission link that are currently in a high-speed state, where the second number is the number of channels in the high-speed state minus the first number.
[0167] In one possible implementation, determining the channels to be closed includes: from the channels whose links are currently in a high-speed state, sending data from the port of the first device, identifying a second number of channels with channel numbers in descending order as channels to be closed.
[0168] Here, the channel number is a parameter configured for the channel, and different channels have different channel numbers. This application does not limit the format of the channel number in its embodiments.
[0169] For example, suppose the link includes 8 channels, numbered 00 to 08, and the channels currently in high-speed mode are 00 to 04, a total of 5 channels. The first number is 3. Then, channels 04 and 03 can be identified as channels to be closed.
[0170] In another possible implementation, determining the channels to be closed includes: from the channels whose links are currently in a high-speed state, sending data from the port of the first device, identifying a second number of channels with ascending channel numbers as channels to be closed.
[0171] For example, suppose the link includes 8 channels, numbered 00 to 08, and the channels currently in high-speed mode are 00 to 04, a total of 5 channels. The first number is 3. Then, channels 00 and 01 can be identified as channels to be closed.
[0172] In another possible implementation, determining the channels to be closed includes: randomly selecting a second number of channels from those currently in a high-speed state from the port's transmission link as channels to be closed.
[0173] In another possible implementation, determining the channel to be closed includes: receiving the sequence number of the channel to be closed indicated by the upper layer of the logic layer (such as the transport layer or the adaptation layer), and determining the channel indicated by the sequence number as the channel to be closed. This application embodiment does not limit this.
[0174] 2) Scenarios where the number of channels is dynamically increased:
[0175] In scenarios where the number of channels is dynamically increased, the link width request parameter indicates a third number, which is greater than the number of channels currently in high-speed mode in the first device port's transmission link. In this scenario, some channels in the first device port's transmission link that are not in high-speed mode are enabled (wake up), so that the data of the channels in high-speed mode is the third number.
[0176] Specifically, S605 can be implemented as follows: determine the channel to be opened, the number of channels currently in high-speed state in the port transmission link, plus the number of channels to be opened, which is the third number; send the training sequence on the channel to be opened.
[0177] The process of opening (waking up) the channel is not limited in this embodiment.
[0178] Furthermore, the channels to be opened can be the fourth number of channels in the port transmission link that 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.
[0179] In one possible implementation, determining the channels to be opened includes: starting from the largest channel number among the channels currently in high-speed state of the port transmission link, determining the fourth largest channel number from the smallest to the largest as the channels to be opened.
[0180] For example, suppose the link includes 8 channels, numbered 00 to 08, and the channels currently in high-speed mode are 00 to 04, a total of 5 channels. The third number is 7. Then, channels 05 and 06 can be identified as channels to be activated.
[0181] In another possible implementation, determining the channels to be opened includes: starting from the smallest channel number among the channels currently in high-speed state of the port transmission link, determining the fourth number of channels with decreasing channel numbers as channels to be opened.
[0182] For example, suppose the link includes 8 channels, numbered 00 to 08, and the channels currently in high-speed mode are 03 to 07, a total of 5 channels. The third number is 7. Then, channels 01 and 02 can be identified as channels to be activated.
[0183] In another possible implementation, determining the channels to be opened includes: randomly selecting a fourth number of channels from the channels in the port transmission link that are not currently in a high-speed state as the channels to be opened.
[0184] In another possible implementation, determining the channel to be opened includes: receiving the sequence number of the channel to be opened indicated by the upper layer of the logic layer (such as the transport layer or the adaptation layer), and determining the channel indicated by the sequence number as the channel to be opened. This application embodiment does not limit this aspect.
[0185] The solution provided in this application embodiment can dynamically adjust the number of channels for high-speed data transmission according to the business situation by adjusting the link width. When the business demand decreases, some channels are closed to reduce power consumption, and when the business demand increases, channels are quickly opened to support high-speed transmission, thus avoiding business blockage.
[0186] Furthermore, in scenarios where the number of channels is dynamically reduced, such as... Figure 7 As shown, before the channel to be shut down enters the state indicated by the low power level, the method provided in this application embodiment may further include S606:
[0187] S606. The first device sends a control frame in the channel to be closed to indicate that the logic layer is electrically idle.
[0188] Furthermore, while executing S606, or after executing S606, the first device sends a fill control frame in the remaining channels to facilitate smooth switching of local and peer data during multi-lane switching.
[0189] The number of channels to be closed is the second number, and the remaining channels are the channels currently in high-speed mode in the first device port transmission link, excluding the channels to be closed. In other words, these are the channels used for data transmission that are in high-speed mode after the channel width adjustment. The number of the remaining channels is the first number.
[0190] In the channels to be closed, the first device sends a control frame indicating that the logic layer is electrically idle. Specifically, in a second number of channels to be closed, the first device sends a control frame indicating that the logic layer is electrically idle. This control frame indicating that the logic layer is electrically idle can be LLCF_EI. LLCF_EI is used to mark the end of channel transmission. The specific content of LLCF_EI is not limited in this embodiment.
[0191] The first device sends padding control frames in the remaining channels. Specifically, the first device sends padding control frames in the first number of channels that are in high-speed mode. The padding control frames can be LLCF_PAD, and the LLCF_PAD sent in each channel has the same length.
[0192] After executing S606, the first device will put the channel to be shut down into the state indicated by the low power level.
[0193] Furthermore, after S605, the method provided in this application embodiment may further include: a second device determining a channel to be closed, wherein in addition to the channel to be closed, there are a first number of channels in a high-speed state in the port transmission link; and the second device putting the channel to be closed into a state indicated by a low power level.
[0194] Specifically, such as Figure 7 As shown, the second device can specifically determine the channel to be closed as S607.
[0195] S607. The second device receives the first control frame. If the first control frame is a logic layer electrical idle control frame, then the channel receiving the first control frame is determined to be a channel to be closed.
[0196] Specifically, when the second device receives a control frame (e.g., LLCF_EI) indicating that the logic layer is electrically idle in some channels, the second device can determine that these channels are to be shut down, and then the second device will put the channels to be shut down into the state indicated by the low power level. Under normal circumstances, the second device receives LLCF_EI on a second number of channels.
[0197] Furthermore, during or after the execution of S607, such as Figure 7 As shown, the method provided in this application embodiment may further include S608.
[0198] S608. The second device receives the second control frame. If the second control frame is a padding control frame, it is determined that the channel receiving the second control frame is in a high-speed state.
[0199] The number of channels in high-speed mode is the first number. By filling control frames, the transmitting and receiving ends synchronize the channels currently in high-speed mode, which facilitates smooth switching of data transmitted by both ends during multi-lane switching.
[0200] The second device receives fill control frames in some channels. The second device can then determine that these channels are not channels to be closed, and these channels continue to operate at high speed. Normally, the second device receives fill control frames in a first number of channels.
[0201] After receiving LLCF_PAD, the second device resets the scrambling seed.
[0202] Furthermore, such as Figure 7 As shown, the method provided in this application embodiment may further include S609 and S610.
[0203] S609. The first device sends a data start control frame in the remaining channels.
[0204] Among these, the remaining channels are all the remaining TX lanes in high-speed mode in the port transmission link of the first device. The number of all remaining TX lanes in high-speed mode is the first number.
[0205] The control frame used to start the data can be LLCF_DS. This application does not limit the specific content of LLCF_DS in its embodiments.
[0206] S610. The second device receives the third control frame. If the third control frame is a data start control frame, it determines that normal service will be sent on the channel where the third control frame is received.
[0207] After that, the first and second devices can send normal services under the new link width.
[0208] Furthermore, in scenarios where the number of channels is dynamically increased, the first device in S605 sends a training sequence to the channel to be opened in order to open (wake up) the channel. One specific implementation is as follows: Figure 8a As shown, the first device sending the training sequence in the channel to be opened can be specifically implemented as S6051 to S6060.
[0209] S6051. The first device sends the training sequence in the channel to be opened.
[0210] In one possible implementation, the training sequence sent in S6051 is LLCF_TS2. This application embodiment does not limit the content of LLCF_TS2.
[0211] S6052. The second device receives the training sequence in the channel to be opened.
[0212] Following S6051 and S6052, the first and second devices begin training the channels to be activated. The second device needs to check whether the channels to be activated have completed training. If all have completed training, then S6053 is executed. If any channel to be activated fails to train, the second device sends a message to the first device indicating that some channels failed to train. Regarding the link width adjustment process result, the first and second devices still perform service transmission and reception based on the original number of channels.
[0213] S6053, The second device sends a channel lock feedback message.
[0214] One possible implementation is that, in a scenario where the channel to be opened is woken up from LPx, the channel lock feedback message can be a Lane Lock Feedback Message (LLFM) to indicate that all newly added channels have been successfully locked. This application embodiment does not limit the content or format of the LLFM.
[0215] S6054. The first device receives a channel lock feedback message sent by the second device.
[0216] S6055. The first device sends a fill control frame in the channel to be opened.
[0217] Specifically, the padding control frame can be several LLCF_PADs. The first device sends a padding control frame on the channel to be opened to align the positions of the control frames sent by the newly added channel (the channel to be opened) with those of the existing channels in high-speed mode.
[0218] S6056. The second device receives the filling control frame in the channel to be opened.
[0219] The second device receives a filling control frame in the channel to be opened, which is used to align the positions of the control frames sent by the newly added channel (the channel to be opened) and the existing channels in high-speed mode.
[0220] S6057. The first device sends a filling control frame in all high-speed channels of the port transmission link.
[0221] Specifically, the padding control frame sent in S6057 can be one LLCF_PAD. All channels in high-speed mode send LLCF_PADs of the same length, which facilitates smooth switching of local and peer data during multi-lane switching.
[0222] S6058. The second device receives filling control frames in all high-speed channels of the port receiving link.
[0223] All channels of the second device in high-speed mode receive fill control frames to facilitate smooth switching of local and peer data during multi-lane switching.
[0224] After receiving the padding control frame, reset the scrambling seed.
[0225] S6059. The first device sends a data start control frame in all high-speed channels of the port transmission link.
[0226] The data start control frame can be one LLCF_DS. This application does not limit the specific content and format of the LLCF_DS. In all channels operating at high speed, the data start control frame can be used for multi-channel alignment.
[0227] S6060, the second device receives the data start control frame in all high-speed channels of the port receiving link.
[0228] After that, the first and second devices can send normal services under the new link width.
[0229] In scenarios where the number of channels is dynamically increased, the first device in S605 sends a training sequence to the channel to be activated in order to activate (wake up) the channel. One possible implementation is that when the channel to be activated is woken up from LP3 or disabled, further, such as... Figure 8b As shown, before the first device sends the training sequence in S605, the method provided in this application embodiment may further include S605a and S605b.
[0230] S605a, The first device sends a link training start message.
[0231] The Training Start Message (TSM) is used to indicate that training should be initiated on the channel to be opened. The TSM can be sent via the main link or via an auxiliary link; this embodiment does not limit the specific method used.
[0232] S605b: The second device receives the link training start message and determines the channel to be opened.
[0233] Subsequently, the first and second devices initiate training on the channel to be activated according to the link training process, including channel clock recovery and locking, and channel equalization. The process of channel clock recovery and locking, and channel equalization is not limited in this invention. The channel that is successfully equalized is the channel to be activated, and steps S6051-S6060 are executed.
[0234] Specifically, in S605b, the second device can determine that the channel to be opened is the channel for initiating training as indicated by the link training start message.
[0235] Subsequently, between the first and second devices, steps S6051-S6060 are executed to restore the channel to be opened to high-speed status.
[0236] In scenarios where the number of channels is dynamically increased, the first device in S605 sends a training sequence to the channel to be activated in order to activate (wake up) the channel. One possible implementation is that when the channel to be activated wakes up from LPx (a low-power state, which can have different levels, such as LP0, LP1, LP2), further, as... Figure 8c As shown, before the first device sends the training sequence in S605, the method provided in this application embodiment may further include S605c and S605d.
[0237] S605c, The first device sends an electrical idle exit frame in the channel to be opened.
[0238] The electrical idle exit frame is used to wake up channels in a low-power state (LPx state) and enter a high-speed state.
[0239] For example, the electrical idle exit frame can be LLCF_EIE. This application does not limit the content or format of LLCF_EIE.
[0240] S605d, the second device determines the channel to be opened.
[0241] Among them, the channel to be opened is the channel that is detected to be in a non-electrically idle state.
[0242] Specifically, the second device detects that the channel is not electrically idle when it is in a low-power state, thus determining that the channel is a channel to be opened.
[0243] Subsequently, between the first and second devices, steps S6051-S6060 are executed to restore the channel to be opened to high-speed status.
[0244] The above embodiments describe the process of adjusting the link width. The following examples illustrate the contents involved in the above embodiments, but do not constitute specific limitations.
[0245] First, let's illustrate the link width adjustment message with an example.
[0246] The Link Width Adjustment Message (LWAM) is a collection of link width adjustment request parameters, including the adjusted link width parameters. In scenarios where the number of channels is reduced, LWAM also includes the low-power settings corresponding to the channels that need to be shut down after the link width adjustment.
[0247] LWAM is used when the link is in service transmission mode. It is initiated when the link bandwidth requirement needs to be adjusted. Through negotiation with the peer, the link width of the port is adjusted. LWAM requires an acknowledgment; the receiving end agrees to the link width adjustment request and responds with an Ack; otherwise, it responds with a Nack. The acknowledgment information is described below.
[0248] LWAM supports transmission via ML and SL. The layout of the Logical Layer Main Link Management Packet (LLMMP) for ML transmission is shown in Table 4. The layout of the Logical Layer Sideband Link Management Packet (LLSMP) for SL transmission is shown in Table 5. Table 4
[0249]
[0250] Table 5
[0251]
[0252] The following is an example of the response information.
[0253] Ack / Nack messages (Ack / Nack) are a collection of responses to management messages. Ack / Nack is used when a management message requires a response. It is used to acknowledge received information and provide feedback on the current port's response or decision. Ack / Nack messages do not require a response.
[0254] Ack / Nack supports transmission via ML and SL. The LLMMP layout format corresponding to ML transmission is shown in Table 6. The LLSMP layout format corresponding to SL transmission is shown in Table 7.
[0255] Table 6
[0256]
[0257] Table 7
[0258]
[0259]
[0260] The following example illustrates the process of dynamically adjusting the link width.
[0261] Dynamically adjusting the link width is a process of dynamically switching channel states. Dynamically switching channel states is mainly used in scenarios where high-speed data services cannot be interrupted. Before and after dynamically switching channel states, at least one channel must be maintained in a high-speed service transmission state.
[0262] Dynamically switching channel status includes the following operations:
[0263] Operation 1: Dynamically increase the number of channels: When the current port has at least 1 TX channel for service transmission, dynamically increase 1 to 7 TX channels, up to a maximum of 8 TX channels.
[0264] Operation 2: Dynamically reduce the number of channels: When the current port has at least 2 TX channels for service transmission, dynamically reduce 1 to 7 TX channels, and reduce it to a maximum of 1 TX channel.
[0265] To facilitate link management, it is prohibited to repeatedly initiate dynamic channel switching procedures while the link is performing link initial training, link recovery, link low power, or other dynamic channel switching procedures.
[0266] To facilitate more convenient and flexible management of link bandwidth, the operation of dynamically switching link width is initiated from the TX side of the port. That is, a port can only actively manage the width of its own TX link.
[0267] To simplify the channel state switching process, complex channel state switching needs to be simplified into atomic link operations involving multiple channel width switching. Simultaneously, to facilitate faster execution of the channel state switching process, it is recommended to use the main link for handshake information exchange as much as possible. During the switching process, it is advisable to ensure that the port has both high-speed TX and RX channels available simultaneously in the intermediate switching states.
[0268] The following example illustrates the scenario of dynamically reducing the number of channels during the process of dynamically adjusting the link width.
[0269] After link training is complete, the channel state machine (LNSM) of all valid transmit channels is in the HS (high-speed) state. When the port input bandwidth decreases, the upper layer can control some channels to enter the low-power LP0~LP2 state or the disabled state to reduce the transmission layer link bandwidth.
[0270] The process of dynamically reducing the number of channels can be as follows: Figure 9 As shown, it includes:
[0271] 1. Device port A sends one LWAM to device B via a high-speed link, informing the peer device B of the adjusted link width value and the low-power state to be entered for the channel to be closed.
[0272] 2. After receiving the LWAM, the RX of device port B sends back the corresponding LWAM ACK / Nack.
[0273] If the corresponding port of device B supports dynamic switching of link width, device B will send a NACK response; otherwise, device B should send an ACK response.
[0274] If device B responds with a NACK message, the process ends. Device A and device B then transmit and receive services based on the original number of channels.
[0275] 3. After receiving the ACK for the corresponding LWAM at port A, device A enters a low-power state after sending four LLCF_EIs on the channel to be closed. All remaining TX lanes in high-speed state simultaneously send one LLCF_PAD (the PAD length sent by all TX channels is cf_pad_length), facilitating smooth data switching between local and peer ends during multi-lane switching.
[0276] Among them, the channel to be closed is device A, which is determined to be the channel to be closed based on the adjusted link width value.
[0277] Note: Device B's RX channel needs to reset the scrambling seed after receiving LLCF_PAD.
[0278] 4. Device A port will simultaneously send one LLCF_DS to all remaining TX Lanes that are in high-speed mode.
[0279] Correspondingly, all RX Lanes on device B port in high-speed mode receive LLCF_DS.
[0280] 5. Device A port sends normal services under the new link width.
[0281] The following example illustrates the scenario of dynamically increasing the number of channels during the process of dynamically adjusting the link width.
[0282] After the bandwidth increases, the channel that is in a low-power or disabled state can be quickly switched back to the HS state by the upper layer control, and the transmission layer link bandwidth can be quickly restored.
[0283] The process of dynamically increasing the number of channels can be as follows: Figure 10 As shown, it includes:
[0284] 1. Device port A sends one LWAM to device B via the high-speed link, informing the peer device B of the adjusted link width value.
[0285] 2. After receiving the LWAM, the RX of device port B sends back the corresponding LWAM ACK / Nack.
[0286] If the corresponding port of device B supports dynamic switching of link width, device B will send a NACK response; otherwise, device B should send an ACK response.
[0287] If device B responds with a NACK message, the process ends. Device A and device B then transmit and receive services based on the original number of channels.
[0288] 3. After receiving the ACK for the corresponding LWAM on port A, port A will continuously send LLCF_TS2 on the newly added TX channel, while other TX channels will send services normally.
[0289] 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.
[0290] Note: This example illustrates a scenario where a new TX channel on port A is woken up from LPx. This is a quick wake-up, so sending LLCF_TS2 is sufficient. If the new TX channel on port A is woken up from disabled, then the new channel needs to send LLCF_TS0, LLCF_TS1, and LLCF_S2 for channel training. Simultaneously, device A also needs to send a TSM instruction to start the initial training for the corresponding channel.
[0291] 4. After the device B port detects that all the required new RX channels have completed training, it sends an LLFM signal to indicate that all new channels have been successfully locked.
[0292] Note 1: This example illustrates a scenario where a new TX channel on port A is woken up from LPx. If the new TX channel on port A is disabled, it is necessary to wait for the new channel to complete the initial training process (i.e., during this process, device B may provide feedback messages such as CLFM, EQFM, and LLFM).
[0293] Note 2: If any newly added channel training fails, the process ends after Device B issues a CLFM, EQFM, or LLFM indicating that some channels have failed training. Device A and Device B then perform service transmission and reception based on the original number of channels.
[0294] 5. After receiving the instruction that all newly added channels have been successfully locked to LLFM, device A sends several LLCF_PADs on the newly added TX channels to align the positions of the CFs sent by the newly added channels with those of the existing channels in high-speed mode.
[0295] 6. Then, device A will simultaneously send one LLCF_PAD to all remaining TX Lanes in high-speed mode (the length of the PAD sent by all TX channels is cf_pad_length), which facilitates smooth switching of local and peer data during multi-lane switching.
[0296] Note: Device B's RX channel needs to reset the scrambling seed after receiving LLCF_PAD.
[0297] 7. Device A simultaneously sends one LLCF_DS to all TX Lanes that are in high-speed mode.
[0298] 8. Device A port sends normal services under the new link width.
[0299] The above primarily describes the solutions provided by the embodiments of the present invention from the perspective of the working principle of the device. It is understood that computing devices, etc., include hardware structures and / or software modules corresponding to the execution of each function in order to achieve the above-mentioned functions. Those skilled in the art should readily recognize that, in conjunction with the units and algorithm steps of the various examples described in the embodiments disclosed herein, the present invention can be implemented in hardware or a combination of hardware and computer software. Whether a certain function is executed by hardware or by computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of the present invention.
[0300] In this embodiment of the invention, computing devices and the like can be divided into functional modules according to the above method examples. For example, each function can be divided into its own functional modules, or two or more functions can be integrated into one processing module. The integrated modules can be implemented in hardware or as software functional modules. It should be noted that the module division in this embodiment is illustrative and only represents one logical functional division; other division methods may be used in actual implementation.
[0301] When dividing each function into modules according to its corresponding function. Figure 11 This illustration shows a link width adjustment device 110 provided in an embodiment of this application. This link width adjustment device 110 is used to implement the function of the first device or device A in the above method embodiment. For example... Figure 11 As shown, the device 110 for adjusting link width may include: a transmitting unit 1101, a receiving unit 1102, and a processing unit 1103. The transmitting unit 1101 is used to perform... Figure 6 or Figure 7 or Figure 8a or Figure 8b or Figure 8c In process S601, the receiving unit 1102 is used to execute... Figure 6 or Figure 7 or Figure 8a or Figure 8b or Figure 8c In process S604; processing unit 1103 is used to execute Figure 6 or Figure 7 or Figure 8a or Figure 8b or Figure 8c The process S605 is described above. All relevant content regarding each step in the above method embodiment can be found in the functional descriptions of the corresponding functional modules, and will not be repeated here.
[0302] When dividing each function into modules according to its corresponding function. Figure 12 This illustration shows another link width adjustment device 120 provided in an embodiment of this application. This link width adjustment device 120 is used to implement the function of the second device or device B in the above method embodiments. For example... Figure 12 As shown, the device 120 for adjusting the link width may include: a receiving unit 1201 and a transmitting unit 1202. The receiving unit 1201 is used to perform... Figure 6 or Figure 7 or Figure 8a or Figure 8b or Figure 8c In process S602; the sending unit 1202 is used to execute Figure 6 or Figure 7 or Figure 8a or Figure 8b or Figure 8c The process S603 is described above. All relevant content regarding each step in the above method embodiment can be found in the functional descriptions of the corresponding functional modules, and will not be repeated here.
[0303] When using integrated units, such as Figure 13 The illustration shows another link width adjustment device 130 provided in this application embodiment, used to implement the functions of the first device or device A or the second device or device B in the above embodiments. The link width adjustment device 130 includes a processing module 1301 and a communication module 1302. The processing module 1301 is used to control and manage the operation of the link width adjustment device 130, and the communication module 1302 is used to communicate with other devices. For example, the processing module 1301 is used to execute... Figure 6 Any of the processes S601 to S605 in the process; 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 also include a storage module 1303 for storing the program code and data of the device 130 for adjusting the link width.
[0304] The processing module 1301 can be Figure 5 The processor 5010 in the physical structure of the computing device 50 shown can be a processor or a controller. For example, it can be a CPU, a general-purpose processor, a DSP, an ASIC, an FPGA, or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. It can implement or execute the various exemplary logic blocks, modules, and circuits described in conjunction with the disclosure of this application. The processing module 1301 can also be a combination that implements computing functions, such as including one or more microprocessor combinations, a combination of a DSP and a microprocessor, etc. The communication module 1302 can be... Figure 5 The communication interface 5040 and communication module 1302 in the physical structure of the computing device 50 shown can be a communication port, a transceiver, a transceiver circuit, or a communication interface, etc. Alternatively, the communication interface can communicate with other devices through the aforementioned transceiver components. The transceiver components can be implemented by antennas and / or radio frequency devices. The storage module 1303 can be... Figure 5 The memory 5030 is located in the physical structure of the computing device 50 shown.
[0305] As mentioned above, the link width adjustment device 110, link width adjustment device 120, and link width adjustment device 130 provided in the embodiments of this 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 embodiments of this application. For ease of explanation, only the parts related to the embodiments of this application are shown. For specific technical details not disclosed, please refer to the various embodiments of this application.
[0306] In another aspect, embodiments of this application provide a data transmission system, including the aforementioned link width adjustment device 110 and link width adjustment device 120.
[0307] As another embodiment of this invention, a computer-readable storage medium is provided, on which instructions are stored, which, when executed, perform the method for adjusting the link width in the above method embodiments.
[0308] As another form of this embodiment, a computer program product containing instructions is provided, which, when run on a computer, causes the computer to execute the method for adjusting the link width in the above method embodiment.
[0309] As another embodiment, a chip is provided, including one or more interface circuits and one or more processors; the interface circuits are used to receive signals from the memory of an electronic device and send the received signals to the processors, the signals including computer instructions stored in the memory. When the processor executes the computer instructions, it causes the electronic device to perform the operational steps of the method described in the first aspect or any possible implementation thereof.
[0310] This application provides another chip system, which includes a processor for implementing the technical methods of the embodiments of the present invention. In one possible design, the chip system further includes a memory for storing program instructions and / or data necessary for the embodiments of the present invention. In another possible design, the chip system further includes a memory for the processor to call application code stored in the memory. This chip system may be composed of one or more chips, or may include chips and other discrete devices; this application does not specifically limit this.
[0311] Those skilled in the art will readily recognize that, based on the units and method steps described in conjunction with the embodiments disclosed in this application, this application can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed in hardware or by computer software driving hardware depends on the specific application scenario and design constraints of the technical solution.
[0312] The above embodiments can be implemented, in whole or in part, by software, hardware, firmware, or any other combination thereof. When implemented using software, the above embodiments can be implemented, in whole or in part, as 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, all or part of the processes or functions described in the embodiments of this application of the present invention are generated. 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. 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 wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more sets of available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium. The semiconductor medium can be an SSD.
[0313] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any changes or substitutions within the technical scope disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
Claims
1. A method for adjusting link width, characterized in that, Performed by a first device or a chip in the first device, the method includes: A link width adjustment message is sent to the second device. The link width adjustment message includes a link width request parameter and a low power level. The link width request parameter is used to indicate the sequence number of the channel to be closed. Receive the response message from the second device; According to the response message, the port transmission link of the first device is adjusted to the width indicated by the link width request parameter; adjusting the port transmission link of the first device to the width indicated by the link width request parameter includes: the channel to be closed enters the state indicated by the low power level.
2. The method according to claim 1, characterized in that, Before the channel to be shut down enters the state indicated by the low power level, the method further includes: In the channel to be closed, a control frame is sent to indicate that the logic layer is electrically idle.
3. The method according to claim 1 or 2, characterized in that, The method further includes: In a high-speed channel, fill control frames are sent.
4. A method for adjusting link width, characterized in that, The method is applied to a second device or a chip in a second device, and includes: Receive a link width adjustment message, the link width adjustment message including link width request parameters and low power level; the link width request parameters are used to indicate the sequence number of the channel to be closed; If dynamic switching of link width is supported, a response message is sent to confirm that the port receive link of the second device is adjusted to the width indicated by the link width request parameter. The channel to be shut down enters the state indicated by the low power level.
5. The method according to claim 4, characterized in that, The method further includes: Receive the first control frame; If the first control frame is a logic layer electrical idle control frame, then the channel receiving the first control frame is determined to be the channel to be closed.
6. The method according to claim 4 or 5, characterized in that, The method further includes: Receive the second control frame; If the second control frame is a padding control frame, then it is determined that the channel receiving the second control frame is in a high-speed state, and the number of channels in a high-speed state is a first number.
7. A device for adjusting link width, characterized in that, A chip deployed in or within a first device, the device comprising: The sending unit is used to send a link width adjustment message to the second device. The link width adjustment message includes a link width request parameter and a low power level. The link width request parameter is used to indicate the sequence number of the channel to be closed. A receiving unit is configured to receive a response message from the second device; The processing unit is configured to adjust the port transmission link of the first device to the width indicated by the link width request parameter according to the response message; the processing unit is specifically configured to: the channel to be closed enter the state indicated by the low power level.
8. The apparatus according to claim 7, characterized in that, Before the channel to be closed enters the state indicated by the low power level, the transmitting unit is further configured to: In the channel to be closed, a control frame is sent to indicate that the logic layer is electrically idle.
9. The apparatus according to claim 7 or 8, characterized in that, The transmitting unit is further configured to: In a high-speed channel, fill control frames are sent.
10. A device for adjusting link width, characterized in that, The device is used in a second device or a chip within a second device, the device comprising: A receiving unit is configured to receive a link width adjustment message, the link width adjustment message including a link width request parameter and a low power level; the link width request parameter is used to indicate the sequence number of the channel to be closed; The sending unit is configured to send a response message when dynamic switching of link width is supported. The response message is used to confirm that the port receive link of the second device is adjusted to the width indicated by the link width request parameter. The processing unit is used to bring the channel to be shut down into the state indicated by the low power level.
11. The apparatus according to claim 10, characterized in that, The receiving unit is further configured to: receive a first control frame; The processing unit is further configured to determine, if the first control frame is a logic layer electrical idle control frame, that the channel receiving the first control frame is a channel to be closed.
12. The apparatus according to claim 10 or 11, characterized in that, The receiving unit is also configured to: receive a second control frame; The processing unit is further configured to, if the second control frame is a filling 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 a first number.
13. A computing device, characterized in that, The computing device includes a memory and at least one processor, the memory being used to store a set of computer instructions; when the processor executes the set of computer instructions, it performs the operational steps of the method according to any one of claims 1-6.
14. A chip, characterized in that, The device includes one or more interface circuits and one or more processors; the interface circuits are configured to receive signals from the memory of the electronic device and send the signals to the processors, the signals including computer instructions stored in the memory; when the processor executes the computer instructions, the electronic device performs the operation of the method according to any one of claims 1-6.
15. A data transmission system, characterized in that, The data transmission system includes a data transmitting device and a data receiving device. The data transmitting device includes the means for adjusting the link width as described in any one of claims 7-9, and the data receiving device includes the means for adjusting the link width as described in any one of claims 10-12.
16. A computer-readable storage medium, characterized in that, include: Computer software instructions; when the computer software instructions are run in a computer, they cause the computer to perform the operational steps of the method according to any one of claims 1-6.
17. A computer program product, characterized in that, The computer program product includes a software program that, when executed by a computer or processor, causes the computer or processor to perform the operational steps of the method according to any one of claims 1-6.
Citation Information
Patent Citations
Link width adjustment method and apparatus
US20230367728A1