Port rate determining method and computer device
11005744 · 2021-05-11
Assignee
Inventors
Cpc classification
Y02D30/50
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
G06F13/385
PHYSICS
H04L41/0896
ELECTRICITY
International classification
Abstract
A method and apparatus for determining a port rate determines a channel transmission rate of an SAS port including N physical channels. The method includes: determining M different negotiated rates of the N physical channels; separately determining M total port bandwidths corresponding to the M different negotiated rates; and determining a negotiated rate corresponding to a largest total port bandwidth in the M total port bandwidths as a channel transmission rate of the port. A lowest negotiated rate is no longer used as the channel transmission rate of the port, but the negotiated rate corresponding to the largest total port bandwidth is determined as the channel transmission rate of the port.
Claims
1. A method for determining a port rate, applied to a computer device, wherein the computer device comprises a port for performing data transmission with a peer end, the port comprises N physical channels, the method comprising: obtaining, by the computer device, a negotiated rate of each of the N physical channels, to obtain M different negotiated rates, wherein a negotiated rate is a communication rate negotiated for each physical channel when a connection is established between the port and a port of the peer end, N is a positive integer greater than 1, and M is a positive integer not greater than N; determining, by the computer device, a total port bandwidth corresponding to each of the M negotiated rates, wherein a total port bandwidth corresponding to an i.sup.th negotiated rate in the M negotiated rates is a total bandwidth reached by the port when the i.sup.th negotiated rate is set as a channel transmission rate of the port for representing an actual rate of data transmission on each physical channel in the port and wherein the total port bandwidth corresponding to the i.sup.th negotiated rate is a product of the i.sup.th negotiated rate and a quantity of physical channels whose negotiated rates are not less than the i.sup.th negotiated rate in the N physical channels; and setting, by the computer device, a negotiated rate corresponding to a largest total port bandwidth in total port bandwidths corresponding to the M negotiated rates as the channel transmission rate of the port.
2. The method according to claim 1, further comprising: after setting the negotiated rate, disabling a physical channel whose negotiated rate is less than the channel transmission rate in the N physical channels.
3. The method according to claim 1, further comprising: after setting the negotiated rate, decreasing a negotiated rate of a physical channel in the N channels that is greater than the channel transmission rate to the channel transmission rate.
4. The method according to claim 1, wherein setting the negotiated rate comprises: determining a lowest negotiated rate in the two or more negotiated rates as the channel transmission rate of the port when the largest total port bandwidth in the total port bandwidths corresponding to the M negotiated rates is corresponding to two or more negotiated rates.
5. A computer device, comprising: a port for performing data transmission with a peer end, wherein the port comprises N physical channels; a processor; and a memory storing instructions that, when executed by the processor, cause the computer device to: obtain a negotiated rate of each of the N physical channels, to obtain M different negotiated rates, wherein a negotiated rate is a communication rate negotiated for each physical channel when a connection is established between the port and a port of the peer end, N is a positive integer greater than 1, and M is a positive integer not greater than N, determine a total port bandwidth corresponding to each of the M negotiated rates, wherein a total port bandwidth corresponding to an i.sup.th negotiated rate in the M negotiated rates is a total bandwidth reached by the port when the i.sup.th negotiated rate is set as a channel transmission rate of the port for representing an actual rate of data transmission on each physical channel in the port and wherein the total port bandwidth corresponding to the i.sup.th negotiated rate is a product of the i.sup.th negotiated rate and a quantity of physical channels whose negotiated rates are not less than the i.sup.th negotiated rate in the N physical channels, and set a negotiated rate corresponding to a largest total port bandwidth in total port bandwidths corresponding to the M negotiated rates as the channel transmission rate of the port.
6. The computer device according to claim 5, wherein the instructions, when executed by the processor, cause the computer device to: after setting the negotiated rate, disable a physical channel whose negotiated rate is less than the channel transmission rate in the N physical channels.
7. The computer device according to claim 5, wherein the instructions, when executed by the processor, cause the computer device to: after setting the negotiated rate, decrease a negotiated rate of a physical channel in the N channels that is greater than the channel transmission rate to the channel transmission rate.
8. The computer device according to claim 5, wherein to set the negotiated rate, the instructions, when executed by the processor, cause the computer device to: determine a lowest negotiated rate in the two or more negotiated rates as the channel transmission rate of the port when the largest total port bandwidth in the total port bandwidths corresponding to the M negotiated rates is corresponding to two or more negotiated rates.
Description
BRIEF DESCRIPTION OF DRAWINGS
(1)
(2)
(3)
(4)
DESCRIPTION OF EMBODIMENTS
(5) Embodiments of this application provide a port rate determining method, to determine a channel transmission rate of an SAS port. Embodiments of this application further provide a related computer device. Descriptions are separately provided below.
(6) The SAS port is usually integrated into an SAS interface card. The SAS interface card is controlled by program software that runs on the computer device. The SAS interface card may serve as a peripheral interface of the computer device or a device in which the computer device is disposed, and is connected to the computer device in a Peripheral Component Interconnect Express (PCIe) manner.
(7)
(8) The computer device provided in an embodiment of this application may be implemented by a computer device 200 shown in
(9) The memory 202 may include a volatile memory, for example, a random access memory (RAM); or the memory 202 may include a non-volatile memory, for example, a read-only memory (ROM), a flash memory, a hard disk drive (HDD), or a solid state disk (SSD); or the memory 202 may include a combination of the foregoing types of memories. When the technical solutions provided in the embodiments of this application are implemented by using software, program code used to implement the port rate determining method provided in embodiments of this application may be stored in the memory 202, and may be executed by the processor 201.
(10) The communications interface 203 is configured to connect to an SAS interface card. A PCIe interface matching the SAS interface card is usually used as the communications interface 203, or another interface may be used. This is not limited in this application.
(11) The processor 201 may be one or a combination of the following hardware units with a processing function: a CPU, digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), a hardware chip, and the like. The processor 201 invokes the program code stored in the memory 202 and runs the program code in the memory 202, to perform a port rate determining method shown in
(12) The port rate determining method is shown in
(13) 301. Obtain M negotiated rates of N physical channels in a port.
(14) In this embodiment, the port including the N physical channels is used as an example for description, where N is a positive integer greater than 1. The computer device obtains a negotiated rate of each of the N physical channels. Specifically, the computer device may determine the negotiated rate of each physical channel through rate negotiation, or obtain the negotiated rate of each physical channel in another manner. This is not limited in this embodiment.
(15) The negotiated rates of the N physical channels may be different from each other, or some of the negotiated rates of the physical channels may be the same. Therefore, the computer device determines the negotiated rates of the N physical channels, to obtain the M different negotiated rates in total, where M is a positive integer not greater than N. Specifically, if the negotiated rates of the N physical channels are different from each other, N=M. If some of the negotiated rates of the physical channels are the same, M<N.
(16) The port shown in
(17) 302. Determine a total port bandwidth corresponding to each of the M negotiated rates.
(18) After determining the M different negotiated rates, the computer device determines total port bandwidths corresponding to the M different negotiated rates. In this embodiment, a total port bandwidth corresponding to an i.sup.th negotiated rate in the M negotiated rates is a total bandwidth that can be reached by the port when the i.sup.th negotiated rate is used as a channel transmission rate of the port. The channel transmission rate of the port is a data transmission rate of any one of the N physical channels that is selected from the port, where i is a positive integer not greater than M.
(19) It may be understood that, when the i.sup.th negotiated rate is used as the channel transmission rate of the port, data cannot be transmitted on a physical channel whose negotiated rate is less than the i.sup.th negotiated rate, and data can be normally transmitted on a physical channel whose negotiated rate is greater than or equal to the i.sup.th negotiated rate. Therefore, the total port bandwidth corresponding to the i.sup.th negotiated rate is a product of the i.sup.th negotiated rate and a quantity of physical channels whose negotiated rates are not less than the i.sup.th negotiated rate.
(20) The port shown in
(21) The computer device determines the total port bandwidth corresponding to each of the M negotiated rates based on a method the same as the method for determining the total port bandwidth corresponding to the i.sup.th negotiated rate, to obtain the M total port bandwidths in total.
(22) 303. Determine a channel transmission rate of the port.
(23) After determining the M total port bandwidths corresponding to all the M negotiated rates, the computer device determines a negotiated rate corresponding to a largest total port bandwidth in the M total port bandwidths as the channel transmission rate of the port.
(24) The port shown in
(25) After the computer device determines the channel transmission rate of the port, if new data is to be transmitted on the port, the computer device selects a physical channel from the port, and transmits the new data on the physical channel at the channel transmission rate.
(26) This embodiment of this application provides the port rate determining method. For the port including the N physical channels, the computer device determines the M different negotiated rates of the N physical channels; separately determines the M total port bandwidths corresponding to the M different negotiated rates; and determines the negotiated rate corresponding to the largest total port bandwidth in the M total port bandwidths as the channel transmission rate of the port. In this embodiment, a lowest negotiated rate is no longer used as the channel transmission rate of the port, but the negotiated rate corresponding to the largest total port bandwidth is determined as the channel transmission rate of the port. In this way, the largest total port bandwidth can be obtained, to improve data transmission efficiency.
(27) Optionally, after determining the channel transmission rate of the port, the computer device may disable a physical channel whose negotiated rate is less than the channel transmission rate in the port. The disabled physical channel cannot be used any longer. In this case, during subsequent selection of a data transmission physical channel, the physical channel whose negotiated rate is less than the channel transmission rate is not selected, so that a data transmission failure probability can be greatly reduced.
(28) The channel transmission rate that is of the port and that is determined in step 303 may be less than negotiated rates of some available physical channels in the port. In some prior-art scenarios, the computer device further has a physical channel selection function. When negotiated rates of available physical channels in the port are different, the computer device preferentially selects a physical channel with a relatively low negotiated rate, to fully utilize performance of each physical channel. However, in this method, a physical channel is not selected at random, increasing a computation amount of the computer device; and in addition, a physical channel with a relatively low negotiated rate is preferentially used, and consequently use frequency of all the physical channels is imbalanced, and utilization of transmission performance of all the physical channels cannot be balanced. Therefore, optionally, in this embodiment of this application, after determining the channel transmission rate of the port, the computer device may decrease a negotiated rate of a physical channel in the port that is greater than the channel transmission rate, so that the negotiated rate of the physical channel decreases to the channel transmission rate. In this way, negotiated rates of available physical channels in the port are the same. Therefore, a physical channel only needs to be selected from the port at random for data transmission, without a need of selecting a physical channel by the computer device. In this way, a computation amount of the computer device is decreased. In addition, selecting a physical channel at random balances use frequency of all the physical channels and can balance utilization of transmission performance of all the physical channels.
(29) Optionally, in step 303, if the largest total port bandwidth in the M total port bandwidths is corresponding to two or more negotiated rates, one of the two or more negotiated rates may be selected at random as the channel transmission rate of the port, or one of the two or more negotiated rates may be selected as the channel transmission rate of the port based on a specific rule. This is not limited in this application. For example, a lowest negotiated rate in the two or more negotiated rates may be selected as the channel transmission rate. A low negotiated rate is selected as the channel transmission rate, so that more physical channels can be used instead of being disabled, and load of all the physical channels can be balanced.
(30) Optionally, each time the computer device or a device in which the computer device is disposed is restarted, or a cable of the computer device or a device in which the computer device is disposed is disconnected or connected, or another event that results in port renegotiation occurs, the computer device performs the port rate determining method shown in
(31) The foregoing embodiment describes the port rate determining method provided in this application, and a computer device that implements the foregoing method is described below. For a specific structure of the computer device, refer to
(32) The negotiated rate determining module 401 is configured to determine a negotiated rate of each of N physical channels in an SAS port, where N is a positive integer greater than 1, and the negotiated rate is used to represent a communication rate negotiated for each physical channel when a connection is established between the port and a port of a peer end. Negotiated rates of the N physical channels include M different negotiated rates, where M is a positive integer not greater than N.
(33) The port bandwidth calculation module 402 is configured to determine a total port bandwidth corresponding to each of the M negotiated rates. A total port bandwidth corresponding to an i.sup.th negotiated rate in the M negotiated rates is a total bandwidth that can be reached by the port when the i.sup.th negotiated rate is used as a channel transmission rate of the port. The channel transmission rate is used to represent an actual rate of data transmission on each physical channel in the port.
(34) The channel rate control module 403 is configured to set a negotiated rate corresponding to a largest total port bandwidth in total port bandwidths corresponding to the M negotiated rates as the channel transmission rate of the port.
(35) This embodiment of this application provides the computer device. For the port including the N physical channels, the negotiated rate determining module 401 determines the M different negotiated rates of the N physical channels. The port bandwidth calculation module 402 separately determines the M total port bandwidths corresponding to the M different negotiated rates. The channel rate control module 403 determines the negotiated rate corresponding to the largest total port bandwidth in the M total port bandwidths as the channel transmission rate of the port. The computer device provided in this embodiment no longer uses a lowest negotiated rate as the channel transmission rate of the port, but determines the negotiated rate corresponding to the largest total port bandwidth as the channel transmission rate of the port. In this way, the largest total port bandwidth can be obtained, to improve data transmission efficiency.
(36) Optionally, the total port bandwidth corresponding to the i.sup.th negotiated rate is specifically a product of the i.sup.th negotiated rate and a quantity of physical channels whose negotiated rates are not less than the i.sup.th negotiated rate.
(37) Optionally, the channel rate control module 403 is further configured to disable a physical channel whose negotiated rate is less than the channel transmission rate in the port. The disabled physical channel cannot be used any longer. In this case, during subsequent selection of a data transmission physical channel, a physical channel whose negotiated rate is less than the channel transmission rate is not selected, so that a data transmission failure probability can be greatly reduced.
(38) Optionally, the channel rate control module 403 is further configured to decrease a negotiated rate of a physical channel in the port that is greater than the channel transmission rate, so that the negotiated rate of the physical channel decreases to the channel transmission rate. In this way, negotiated rates of available physical channels in the port are the same, so that utilization of transmission performance of all the physical channels can be balanced.
(39) Optionally, if the largest total port bandwidth in the M total port bandwidths is corresponding to two or more negotiated rates, the channel rate control module 403 may select, from the two or more negotiated rates, a lowest negotiated rate as the channel transmission rate. A low negotiated rate is selected as the channel transmission rate, so that more physical channels can be used instead of being disabled, and load of all the physical channels can be balanced.
(40) For related descriptions of the computer device shown in
(41) The computer device shown in
(42) It may be clearly understood by persons skilled in the art that, for the purpose of convenient and brief description, for a detailed working process of the foregoing system, apparatus, and unit, refer to a corresponding process in the foregoing method embodiments, and details are not described herein again.
(43) In the several embodiments provided in this application, it should be understood that the disclosed system, apparatus, and method may be implemented in other manners. For example, the described apparatus embodiment is merely an example. For example, the unit division is merely logical function division and may be other division in actual implementation. For example, a plurality of units or components may be combined or integrated into another system, or some features may be ignored or not performed. In addition, the displayed or discussed mutual couplings or direct couplings or communication connections may be implemented by using some interfaces. The indirect couplings or communication connections between the apparatuses or units may be implemented in electronic, mechanical, or other forms.
(44) In addition, functional units in the embodiments of this application may be integrated into one processing unit, or each of the units may exist alone physically, or two or more units may be integrated into one unit. The integrated unit may be implemented in a form of hardware, or may be implemented in a form of a software functional unit.
(45) When the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, the integrated unit may be stored in a computer-readable storage medium. Based on such an understanding, the technical solutions of this application essentially, or the part contributing to the prior art, or all or some of the technical solutions may be implemented in the form of a software product. The software product is stored in a storage medium and includes several instructions for instructing a computer device (which may be a personal computer, a server, or a network device) to perform all or some of the steps of the methods described in the embodiments of this application. The foregoing storage medium includes: any medium that can store program code, such as a USB flash drive, a removable hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disc.
(46) The foregoing embodiments are merely intended for describing the technical solutions of this application, but not for limiting this application. Although this application is described in detail with reference to the foregoing embodiments, persons of ordinary skill in the art should understand that they may still make modifications to the technical solutions described in the foregoing embodiments or make equivalent replacements to some technical features thereof, without departing from the spirit and scope of the technical solutions of the embodiments of this application.