CN118012255A - 一种io设备的功耗控制方法、io设备及计算机 - Google Patents
一种io设备的功耗控制方法、io设备及计算机 Download PDFInfo
- Publication number
- CN118012255A CN118012255A CN202410216940.8A CN202410216940A CN118012255A CN 118012255 A CN118012255 A CN 118012255A CN 202410216940 A CN202410216940 A CN 202410216940A CN 118012255 A CN118012255 A CN 118012255A
- Authority
- CN
- China
- Prior art keywords
- link
- mode
- transaction layer
- effective
- physical layer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000005540 biological transmission Effects 0.000 claims abstract description 229
- 238000012544 monitoring process Methods 0.000 claims abstract description 23
- 230000011664 signaling Effects 0.000 claims description 17
- 238000012423 maintenance Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 6
- 230000001965 increasing effect Effects 0.000 claims description 5
- 230000009467 reduction Effects 0.000 claims description 5
- 230000000875 corresponding effect Effects 0.000 description 117
- 238000007726 management method Methods 0.000 description 41
- 238000012545 processing Methods 0.000 description 18
- 230000007246 mechanism Effects 0.000 description 14
- 238000012546 transfer Methods 0.000 description 9
- 230000001276 controlling effect Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000000593 degrading effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000002618 waking effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Landscapes
- Communication Control (AREA)
Abstract
本申请实施例提供一种IO设备的功耗控制方法、IO设备及计算机,其中方法包括:在IO设备的数据传输状态下,监测事务层在多个时间范围传输的有效事务层负载包的数量,得到多个有效事务层负载包数量;根据所述多个有效事务层负载包数量,确定物理层与所述多个有效事务层负载包数量相匹配的目标链路模式;其中,物理层具有数据传输能力不同的多个链路模式,且所述多个链路模式的数据传输能力与功耗呈正相关关系;将物理层的链路模式调整为所述目标链路模式。本申请实施例可以在IO设备的数据传输过程中,优化IO设备的功耗。
Description
技术领域
本申请实施例涉及计算机技术领域,具体涉及一种IO设备的功耗控制方法、IO设备及计算机。
背景技术
IO(Input/Output,输入输出)设备作为计算机用于输入输出的硬件设备,在服务器、用户终端等计算机中具有广泛应用,且可适用于计算机的网络连接、数据存储等场景。
基于IO设备在计算机的广泛应用,合理的控制IO设备的功耗,对于维持计算机的可靠性、可用性、可维护性以及降低能源成本具有重要意义。因此如何提供IO设备的功耗控制方案,以优化IO设备的功耗,成为了本领域技术人员亟需解决的技术问题。
发明内容
有鉴于此,本申请实施例提供一种IO设备的功耗控制方法、IO设备及计算机,以在IO设备的数据传输过程中,优化IO设备的功耗。
为实现上述目的,本申请实施例提供如下技术方案。
第一方面,本申请实施例提供一种IO设备的功耗控制方法,包括:
在IO设备的数据传输状态下,监测事务层在多个时间范围传输的有效事务层负载包的数量,得到多个有效事务层负载包数量;
根据所述多个有效事务层负载包数量,确定物理层与所述多个有效事务层负载包数量相匹配的目标链路模式;其中,物理层具有数据传输能力不同的多个链路模式,且所述多个链路模式的数据传输能力与功耗呈正相关关系;
将物理层的链路模式调整为所述目标链路模式。
第二方面,本申请实施例提供一种IO设备,包括:
监测模块,用于在IO设备的数据传输状态下,监测事务层在多个时间范围传输的有效事务层负载包的数量,得到多个有效事务层负载包数量;
模式确定模块,用于根据所述多个有效事务层负载包数量,确定物理层与所述多个有效事务层负载包数量相匹配的目标链路模式;其中,物理层具有数据传输能力不同的多个链路模式,且所述多个链路模式的数据传输能力与功耗呈正相关关系;
模式调整模块,用于将物理层的链路模式调整为所述目标链路模式。
第三方面,本申请实施例提供的一种计算机设备,包括如上述第二方面所述的IO设备。
本申请实施例提供的IO设备的功耗控制方法可以在IO设备的数据传输状态下,监测事务层在多个时间范围传输的有效事务层负载包的数量,从而得到多个有效事务层负载包数量。进而,基于所述多个有效事务层负载包数量,确定与所述多个有效事务层负载包数量相匹配的目标链路模式;其中,物理层具有数据传输能力不同的多个链路模式,且所述多个链路模式的数据传输能力与功耗呈正相关关系。也就是说,在监测得到多个有效事务层负载包数量之后,多个有效事务层负载包数量可以反映事务层的有效事务层负载包传输需求;而物理层的多个链路模式的数据传输能力不同,且数据传输能力与功耗正相关,因此基于多个有效事务层负载包数量,确定与多个有效事务层负载包数量相匹配的目标链路模式,能够确定出满足事务层的有效事务层负载包传输需求且功耗相适配的目标链路模式。进而,本申请实施例可以将物理层的链路模式调整为目标链路模式,以在满足事务层的有效事务层负载包传输需求的情况下,优化物理层所使用的链路模式,进而优化物理层的功耗。
可以看出,在IO设备的数据传输状态下,本申请实施例可以监测IO设备的事务层在多个时间范围传输的有效事务层负载包的数量,并且监测结果可用于确定物理层满足有效事务层负载包传输需求且功耗相适配的目标链路模式,从而在物理层实现链路模式的调整,使得物理层能够在满足有效事务层负载包传输需求的情况下,使用功耗相匹配的目标链路模式进行数据传输,以在IO设备的数据传输过程中,优化IO设备的物理层的功耗。即本申请实施例可以在IO设备的数据传输状态下,基于IO设备的事务层传输的有效事务层负载包的数量变化,合理匹配IO设备的物理层的链路模式,从而优化IO设备的功耗,为在IO设备的数据传输过程中,整体降低IO设备的功耗提供了可能性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为IO设备之间的连接示例图。
图2为本申请实施例提供的IO设备的功耗控制方法的流程图。
图3为本申请实施例提供的IO设备的功耗控制方法的另一流程图。
图4为本申请实施例提供的IO设备的功耗控制方法的再一流程图。
图5为本申请实施例提供的IO设备的功耗控制方法的又一流程图。
图6为本申请实施例提供的配置多个时间范围的流程图。
图7为本申请实施例提供的IO设备的示例图。
图8为本申请实施例提供的功耗控制方法的实现示例图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
IO设备作为计算机的输入输出设备,可以使用数据传输协议进行数据传输,例如,IO设备可以使用数据传输协议接收数据和发送数据。IO设备可以具有多种类型,不同类型的IO设备使用的数据传输协议可能不同,例如IO设备可以包括但不限于如下任一项:PCIE(Peripheral Component Interconnect Express,外围组件互连扩展)设备、USB(Universal Serial Bus,通用串行总线)设备、SATA(Serial ATA,串行ATA)设备、CXL(Compute Express Link,计算互联链接)设备、ETH(Ethernet,以太网)设备等。
上述PCIE设备、USB设备等不同类型的IO设备使用的数据传输协议可以具有相似的体系结构,比如PCIE协议、USB协议等数据传输协议可以具有相似的体系结构。
在一个示例中,数据传输协议的体系结构可以包括应用层、事务层、数据链路层和物理层。为便于理解,图1示例性的示出了IO设备之间的连接示例图,结合图1所示,IO设备101和IO设备102可以是使用相同数据传输协议的两个IO设备;比如,IO设备101和IO设备102可以是使用PCIE协议的两个PCIE设备。
IO设备101和IO设备102之间可以使用数据传输协议进行数据传输,IO设备101和IO设备102的数据传输方向涉及发送(TX)方向和接收(RX)方向。也就是说,IO设备101在发送(TX)方向上发送数据给IO设备102,在接收(RX)方向上接收IO设备102发送的数据;IO设备102在发送(TX)方向上发送数据给IO设备101,在接收(RX)方向上接收IO设备101发送的数据。
为便于说明,发送数据的IO设备可称为发送IO设备,接收数据的IO设备可称为接收IO设备。一个IO设备在发送数据时可成为发送IO设备,在接收数据时可成为接收IO设备,因此发送IO设备和接收IO设备视数据的传输方向而定。
如图1所示,IO设备101和IO设备102可以分别设置有应用层110、应用层接口120、事务层130、数据链路层140和物理层150。应用层、应用层接口、事务层、数据链路层和物理层可以视为是IO设备内设置的多个电路模块;例如,PCIE设备等IO设备可以设置多个电路模块,该多个电路模块可以包括应用层、应用层接口、事务层、数据链路层和物理层。
应用层110位于数据传输协议(比如PCIE协议)的顶层,用于负责处理高层协议和高层协议的数据,并且为用户空间的用户应用程序提供数据传输服务。比如,应用层可负责解释和执行与IO设备的设备类型相应的高层协议,并且可负责IO设备的驱动程序与用户空间之间的通信。需要说明的是,高层协议是指应用层处理的协议,例如IO设备与计算机的操作系统或用户应用程序之间进行通信时所采用的协议,高层协议与IO设备的设备类型和功能相关。基于应用层涉及与用户空间的用户应用程序进行交互,应用层也称为用户层。应用层可以根据用户需求进行设计。
在一个示例中,应用层可以在硬件实现,并通过软件协同配合工作。比如,以PCIE设备为例,针对根PCIE设备,应用层可以在CPU(中央处理器)实现,针对端PCIE设备,应用层可以在存储控制器(比如内存控制器)或者GPU(图形处理器)实现,并通过软件协同配合工作。需要说明的是,在PCIE总线的拓扑结构中,根PCIE设备可以是PCIE总线的拓扑结构的起点和管理者,端PCIE设备可以是连接到PCIE总线的其他设备。
应用层接口120为对接应用层110与事务层130的接口,可负责应用层110与事务层130之间的通信。
事务层130用于负责使用事务层负载包进行事务管理;也就是说,在IO设备的发送方向上,事务层负责创建事务层负载包,在IO设备的接收方向上,事务层负责事务层负载包的解析。事务层负载包可以是事务层的数据传输基本单元,用于承载事务请求,比如事务层负载包可以传输事务层的负载数据。以PCIE设备为例,事务层负载包例如TLP(TransactionLayer Packet,事务层包)。
在一个示例,针对发送IO设备,事务层可以根据应用层的事务请求产生事务层负载包(比如,根据应用层的数据读、写等事务请求生成相应的事务层负载包);事务层产生的事务层负载包在经过数据链路层时被加上序列号(Sequence Number)前缀和CRC(CyclicRedundancy Check,循环冗余校验)后缀,然后发往物理层;物理层再为事务层负载包添加包头和包尾,从而传输到接收IO设备。又例如,针对接收IO设备,物理层对接收的事务层负载包进行包头和包尾的去除,然后传输到数据链路层;数据链路层确定CRC校检通过后,去除事务层负载包的序列号前缀和CRC后缀,然后将事务层负载包传输至事务层;事务层接收到事务层负载包之后,解析事务层负载包的内容,并将解析的内容传给应用层,从而完成发送IO设备的事务请求至接收IO设备的传输。
可以看出,事务层负载包(例如TLP)起源于发送IO设备的事务层,终止于接收IO设备的事务层,用于在发送IO设备和接收IO设备之间传输事务请求和对应的负载数据,负载数据例如事务请求为数据写请求所对应的写数据、事务请求为数据读请求所对应的读数据等。
进一步的,事务层还可具有QoS(Quality of Service,服务质量)、流量控制(FlowControl)以及传输排序(Transaction Ordering)等功能。
数据链路层140用于负责使用链路层管理包进行链路管理,例如,数据链路层可以使用链路层管理包执行链路管理的控制和操作。以PCIE设备为例,链路层管理包例如DLLP(Data Link Layer Packet,数据链路层包)。
数据链路层140除可以转发事务层的事务层负载包(例如TLP)之外,还可以使用链路层管理包(例如DLLP)进行链路管理;比如,在IO设备的发送方向上,数据链路层负责创建链路层管理包,在IO设备的接收方向上,事务层负责链路层管理包的解析。
在一个示例中,针对发送IO设备,数据链路层可基于链路管理需求产生链路层管理包,产生的链路层管理包可传输到物理层,从而在物理层添加开始(start)字符和结束(end)字符之后,传输到接收IO设备。针对接收IO设备,物理层接收到链路层管理包之后,可以删除开始字符和结束字符,然后将链路层管理包传输到数据链路层,从而在数据链路层解析和处理链路层管理包。
可见,链路层管理包(例如DLLP)起源于发送IO设备的数据链路层,终止于接收IO设备的数据链路层,用于在发送IO设备和接收IO设备之间进行链路管理。比如,链路层管理包(例如DLLP)可用于在发送IO设备和接收IO设备之间进行事务层负载包(例如TLP)的ACK(Acknowledgment,确认)、NAK(Negative Acknowledgment,否定确认)等管理,还可以用于进行电源管理、流控制信息的交换等。
物理层150位于数据传输协议(比如PCIE协议)的底层,负责管理物理传输介质、以及数据的编码和解码等与硬件相关的底层操作。在管理物理传输介质的层面,物理层可以负责IO设备的数据包(事务层负载包、链路层管理包等)在物理传输介质的传输。
物理传输介质可以具有多个通道(lane),PCIE等数据传输协议的总线宽度可以由物理层所管理的物理传输介质的通道数量决定,比如,PCIE协议可以具有x1、x2、x4、x8、x16等不同倍数的总线宽度,一个倍数对应一个通道,即x1表示1个通道,x4表示4个通道,以此类推。
从而,针对发送IO设备,物理层可以将数据包(事务层负载包、链路层管理包等)分发到各个通道进行传输;针对接收IO设备,物理层可以从各个通道接收数据包(事务层负载包、链路层管理包等)并进行汇总。
上述对于IO设备(例如PCIE设备)的架构进行了介绍,可以看出,IO设备之间存在数据传输的需求。例如,基于应用层的事务请求(对应用户的事务),IO设备之间需进行数据传输;基于链路管理的需求,IO设备之间需进行数据传输等。
基于PCIE设备等IO设备在计算机中的广泛应用、以及功耗作为计算机的关键指标之一,PCIE设备等IO设备具有低功耗控制的需求。也就是说,PCIE设备等IO设备具有有效管理功耗和降低功耗的需求,因此需要对PCIE设备等IO设备进行功耗控制。
一种对IO设备(例如PCIE设备)进行功耗控制的方式是:为IO设备(例如PCIE设备)设置不同程度的低功耗状态,从而在IO设备不处于数据传输状态时,通过进入不同程度的低功耗状态,来降低IO设备的功耗。
以PCIE设备为例,PCIE设备具有多种链路状态,该多种链路状态可以包括L0链路状态、L0s链路状态、L1链路状态、L2链路状态和L3链路状态。
其中,L0链路状态是完全活跃(Fully Active)状态,表示PCIE设备处于数据传输状态,即PCIE设备的链路处于传输数据的状态。
L0s链路状态是一种低功耗状态,表示PCIE设备的链路处于休眠状态,但是PCIE设备仍可接收数据,L0s链路状态的功耗低于L0链路状态。L0s链路状态支持ASPM(ActiveState Power Management,活跃状态电源管理)机制进行控制。
L1链路状态是另一种低功耗状态,表示PCIE设备的链路处于休眠状态,但是PCIE设备仍可接收数据,L1链路状态的功耗低于L0s链路状态。L1链路状态支持通过PCI-PM(PCIPower Management,PCI电源管理)机制以及ASPM机制进行控制。在L1链路状态,PCIE设备可以通过关闭参考时钟、发送端共模电路,接收端电气空闲检测电路,以降低功耗。
L2链路状态是再一种低功耗状态,表示PCIE设备的链路处于电源管理的状态,L2链路状态的功耗低于L1链路状态;L2链路状态支持通过PCI-PM机制进行控制。在L2链路状态,PCIE设备可以关闭主电源且使用辅助电源工作;例如,在L2链路状态,PCIE设备可以关闭参考时钟、PLL(Phase Locked Loop,相位锁定环)电路、关闭主电源(Main Power),但保留辅助电源(Aux Power)。
L3链路状态是又一种低功耗状态,且功耗低于L2链路状态;L3链路状态支持通过PCI-PM机制进行控制。在L3链路状态,PCIE设备的所有电源被关闭,因此L3链路状态也称为链路关闭(Link Off)状态。
上述多种链路状态的功耗高低可以表示为L0>L0s>L1>L2>L3,其中,功耗越低的链路状态恢复到L0链路状态(数据传输状态)所需的时间越长。
同时,PCIE设备可以提供多种电源状态,该多种电源状态可以包括D0电源状态、D1电源状态、D2电源状态、和D3电源状态
其中,D0电源状态是一种全电源(full power)的状态,D0电源状态可与L0链路状态相对应,PCIE设备在D0电源状态下具有完全的电源供应,处于全功率运行状态。
D1电源状态是第一级的睡眠状态,视为是一种轻微睡眠(slight sleep)状态;PCIE设备在D1电源状态下进入轻微睡眠,功耗相对较低,但PCIE设备仍能迅速的响应唤醒;在D1电源状态下,PCIE设备能够继续处理本地请求,但不能处理来自系统总线的请求。
D2电源状态是第二级的睡眠状态,视为是一种深度睡眠(deep sleep)状态,PCIE设备在D2电源状态下进入深度睡眠,功耗更低,但PCIE设备唤醒需要较长时间;在D2电源状态,PCIE设备不能处理本地请求和来自系统总线的请求。
D3电源状态是一种通过关闭电源来实现低功耗的状态,分为D3热(hot)电源状态和D3冷(cold)电源状态;在D3热电源状态下,PCIE设备关闭主电源且使用辅助电源;在D3冷电源状态下,PCIE设备的全部电源都已关闭。D3热电源状态的功耗高于D3冷电源状态。
上述多种电源状态的功耗高低可以表示为D0>D1>D2>D3热电源状态>D3冷电源状态。
可以看出,PCIE设备是通过设置多种链路状态,来区分PCIE设备的数据传输状态(例如L0链路状态)以及不同程度的低功耗状态(例如L0s链路状态、L1链路状态、L2链路状态和L3链路状态),并设置相应的多种电源状态;从而,PCIE设备在不处于数据传输状态时(例如,PCIE设备不处于L0链路状态时),通过控制PCIE设备进入L0s链路状态、L1链路状态、L2链路状态和L3链路状态等不同程度的低功耗状态,实现降低PCIE设备的功耗。
然而,上述功耗控制方式是在PCIE设备等IO设备不存在数据传输时(即PCIE设备等IO设备不处于数据传输状态时),通过进入不同程度的低功耗状态,来实现降低PCIE设备等IO设备的功耗;而当PCIE设备等IO设备需恢复数据传输时(即PCIE设备等IO设备需恢复数据传输状态时),需要将PCIE设备等IO设备从低功耗状态中唤醒,但是并无法在PCIE设备等IO设备处于数据传输状态时降低功耗。也就是说,上述功耗控制方式是在PCIE设备等IO设备不处于数据传输状态时,通过不同程度的低功耗状态来降低功耗,而无法在PCIE设备等IO设备处于数据传输状态时降低功耗。
另外,PCIE设备等IO设备在进入低功耗状态后,若需要将PCIE设备等IO设备从低功耗状态唤醒到数据传输状态,则需要较长的唤醒时间。比如,以将PCIE设备等IO设备唤醒到L0链路状态为例,不同程度的低功耗状态所需的唤醒时间由高至低可以表示为:L3>L2>L1>L0s。也就是说,低功耗状态的功耗越低,则唤醒到数据传输状态所需的唤醒时间越长,这将影响PCIE设备等IO设备的唤醒效率,进而影响数据传输效率。
基于此,本申请实施例提供改进的IO设备的功耗控制方法,以在IO设备的数据传输过程中(即IO设备处于数据传输状态的过程中),优化IO设备的功耗。例如,在IO设备的数据传输过程中,基于IO设备的事务层传输有效TLP的传输需求,合理匹配IO设备的物理层的链路模式,从而优化IO设备的功耗,为在IO设备的数据传输过程中,整体降低IO设备的功耗提供可能性。
另外,在IO设备的数据传输状态下实现功耗控制,可以节省IO设备由低功耗状态唤醒到数据传输状态所需的唤醒时间,为提升IO设备的数据传输效率提供可能性。
作为可选实现,在IO设备(例如PCIE设备)的数据传输过程中,本申请实施例可以在事务层监测有效事务层负载包(例如有效TLP)的数量,并基于监测结果调整物理层的链路模式,从而使得物理层的链路模式与事务层所监测的有效事务层负载包的数量相匹配,以通过调整物理层的链路模式,来在IO设备的物理层实现功耗优化。
基于上述思路,作为可选实现,图2示例性的示出了本申请实施例提供的IO设备的功耗控制方法的可选流程图。该方法流程可应用于IO设备,参照图2,该方法流程可以包括如下步骤。
在步骤S210中,在数据传输状态下,监测事务层在多个时间范围传输的有效事务层负载包的数量,得到多个有效事务层负载包数量。
作为可选实现,本申请实施例可以配置多个时间范围,从而在IO设备的数据传输状态下,本申请实施例可以分别监测事务层在多个时间范围传输的有效事务层负载包的数量,以得到事务层在多个时间范围的有效事务层负载包数量,即多个有效事务层负载包数量,其中,一个有效事务层负载包数量为事务层在一个时间范围传输的有效事务层负载包的数量。
在可选实现中,一个时间范围可以包括起始时间和终止时间,从而在当前时间到达一个时间范围的起始时间时,本申请实施例可以开始监测事务层在该时间范围传输的有效事务层负载包的数量,例如,事务层在该时间范围内每传输一个有效事务层负载包,则该时间范围的有效事务层负载包数量加一,直至当前时间到达该时间范围的终止时间时,可以得到事务层在该时间范围的有效事务层负载包数量。
作为可选实现,在配置多个时间范围时,一个时间范围可以是多个时间形成的时间段,且一个时间范围内的时间相连续。在一个实现示例中,时间范围内的时间可以以IO设备(例如PCIE设备)的时钟周期(简称为周期)为单位,IO设备的时钟周期例如IO设备的系统时钟的时钟周期。从而,一个时间范围可以是由连续的多个周期形成。进一步的,多个时间范围中各个时间范围的时间长度可以相同,例如,各个时间范围所包含的周期数量相同。
在进一步的可选实现中,本申请实施例可以配置多个时间范围中的各个时间范围存在部分重叠的时间。例如,各个时间范围的起始时间和终止时间可以不同,但是各个时间范围的起始时间和终止时间之间的部分时间存在重叠。也就是说,各个时间范围用于监测有效事务层负载包数量的部分时间可以重叠,从而为后续基于多个时间范围的有效事务层负载包数量(即多个有效事务层负载包数量),确定物理层的相匹配的目标链路模式提供一定冗余量,进而在一定的冗余量下,提升所确定的物理层的目标链路模式,能够满足事务层的有效事务层负载包传输需求的可能性。
在可选实现中,事务层传输的事务层负载包可能是事务层发送的事务层负载包,也可能是事务层接收的事务层负载包,也就是说,事务层发送事务层负载包和接收事务层负载包均视为是事务层传输事务层负载包。从而,针对多个时间范围中的任一个时间范围,在该时间范围内,本申请实施例每监测到事务层发送一个事务层负载包或者接收一个事务层负载包,则可判断事务层负载包是否为有效事务层负载包;若是,则可将该时间范围监测的有效事务层负载包数量加一。
作为可选实现,有效事务层负载包应符合IO设备(例如PCIE设备)所使用的数据传输协议的格式和数据长度。也就是说,如果事务层传输的事务层负载包(例如TLP)符合数据传输协议的格式和数据长度,则事务层传输的事务层负载包为有效事务层负载包(例如有效TLP);如果事务层传输的事务层负载包不符合数据传输协议的格式和数据长度,则事务层传输的事务层负载包为无效事务层负载包(例如无效TLP)。在各个时间范围内,本申请实施例是对事务层传输的有效事务层负载包的数量进行计数。
在一个实现示例中,符合数据传输协议的格式和数据长度的有效事务层负载包可以满足如下有效条件:
事务层负载包的包头(Header)中的Format(格式)字段的长度满足预设字段长度;
物理层占位符和CRC占位符的长度满足预设占位符长度;
事务层负载包的Header中的Length(长度)字段对应的负载(Payload)长度有效,例如,有效事务层负载包的Payload长度应与实际传输的数据长度相对应。
以PCIE设备为例,TLP的Header中具有Format字段,用于表示TLP的包类型,TLP的Format字段可以具有3DW(Double words,双字节)和4DW两种长度类型,其中,3DW表示占用3个DW空间,4DW表示占用4个DW空间;从而,如果TLP的包头中的Format字段的长度为3DW或者4DW,则可确定Format字段的长度满足预设字段长度,否则,确认Format字段的长度不满足预设字段长度。同时,在TLP中,物理层占位符和CRC占位符共占用了2个DW的空间(其中,物理层占位符占用1个DW的空间,CRC占位符共占用1个DW的空间),以用于验证TLP的完整性;从而,如果TLP的物理层占位符和CRC占位符的长度分别为1个DW,则可确定物理层占位符和CRC占位符的长度满足预设占位符长度,否则,确定物理层占位符和CRC占位符的长度不满足预设占位符长度。
也就是说,在上述示例中,TLP可以包括Header和负载;其中,Header中具有Format字段和Length字段,Format字段可以指定TLP的包类型,并且不同包类型的Format字段的长度不同,主要有3DW和4DW两种类型的长度;Length字段可以指示TLP的负载的长度,同时每个TLP又需要1DW的CRC占位符和1DW的物理层占位符。从而,本申请实施例在某一时间范围监测到事务层传输TLP时,可以获取TLP;判断TLP的Header中的Format字段的长度是否为3DW或4DW,判断TLP的物理层占位符和CRC占位符是否分别占用1DW,以及判断TLP的Header中的Length字段对应的负载长度是否有效;进而,在所有判断结果均为是时,确定TLP为有效TLP;如果任一判断结果为否,则确定TLP不为有效TLP(即无效TLP)。
在步骤S211中,根据多个有效事务层负载包数量,确定物理层与多个有效事务层负载包数量相匹配的目标链路模式;其中,物理层具有数据传输能力不同的多个链路模式,且所述多个链路模式的数据传输能力与功耗呈正相关关系。
作为可选实现,物理层可以具有多个链路模式,并且多个链路模式的数据传输能力不同。多个链路模式的数据传输能力不同可以视为是,多个链路模式在单位时间的数据传输量不同;例如,链路模式在单位时间的数据传输量越大,则链路模式的数据传输能力越高。在一个实现示例中,链路模式在单位时间的数据传输量可以由链路模式使用的链路速率、链路带宽决定,从而物理层的多个链路模式的示例可以是物理层的多个链路速率模式和/或多个链路带宽模式。
作为可选实现,物理层的多个链路模式的数据传输能力可与功耗呈正相关关系。例如,链路模式的数据传输能力越高,则链路模式的功耗越高;链路模式的数据传输能力越低,则链路模式的功耗越低。在一个实现示例中,链路模式在单位时间的数据传输量可以由链路模式使用的链路速率、链路带宽决定,链路模式在单位时间的数据传输量越大(即链路模式的数据传输能力越高),则链路模式使用的链路速率越快或者链路带宽越大,从而链路模式需要的功耗越高。
在监测得到多个有效事务层负载包数量之后,多个有效事务层负载包数量可以体现事务层的有效事务层负载包传输需求(例如多个有效TLP数量可以体现事务层的有效TLP传输需求),从而可以基于多个有效事务层负载包数量,确定物理层与多个有效事务层负载包数量相匹配的目标链路模式,可以使得所确定的目标链路模式满足有效事务层负载包传输需求且功耗相适配。也就是说,在物理层的多个链路模式的数据传输能力与功耗呈正相关关系的情况下,基于多个有效事务层负载包数量确定相匹配的目标链路模式,可使得所确定的目标链路模式的数据传输能力满足有效事务层负载包传输需求,并且功耗相适配。
在步骤S212中,将物理层的链路模式调整为所述目标链路模式。
在确定与多个有效事务层负载包数量相匹配的目标链路模式之后,本申请实施例可以将物理层的链路模式调整为目标链路模式。也就是说,目标链路模式为在满足事务层的有效事务层负载包传输需求的情况下,物理层所能使用的功耗相适配的链路模式;如果物理层的当前链路模式与目标链路模式不一致,则可将物理层的链路模式由当前链路模式调整为目标链路模式,以使得物理层后续在满足事务层的有效事务层负载包传输需求的情况下,使用功耗相适配的目标链路模式进行数据传输。
在可选实现中,基于物理层的链路模式的调整涉及到IO设备的链路管理,因此可以通过在相互连接的IO设备之间(例如相互连接的PCIE设备之间)通过链路协商,以实现将物理层的链路模式调整为目标链路模式。
可以看出,在IO设备的数据传输状态下,本申请实施例可以监测IO设备的事务层在多个时间范围传输的有效事务层负载包的数量,并且监测结果可用于确定物理层满足有效事务层负载包传输需求且功耗相适配的目标链路模式,从而在物理层实现链路模式的调整,使得物理层能够在满足有效事务层负载包传输需求的情况下,使用功耗相匹配的目标链路模式进行数据传输,以在IO设备的数据传输过程中,优化IO设备的物理层的功耗。即本申请实施例可以在IO设备的数据传输状态下,基于IO设备的事务层传输的有效事务层负载包的数量变化,合理匹配IO设备的物理层的链路模式,从而优化IO设备的功耗,为在IO设备的数据传输过程中,整体降低IO设备的功耗提供了可能性。
作为可选实现,本申请实施例提供的功耗控制方法可以定时执行,例如,每隔多个时间范围执行一次本申请实施例提供的功耗控制方法,以对物理层使用的链路模式进行调整,从而使得物理层维持处于使用满足事务层的有效事务层负载包传输需求且功耗相匹配的目标链路模式的状态,以维持优化物理层的功耗。
作为可选实现,本申请实施例提供的功耗控制方法可用于降低物理层的链路模式,也可以用于提升物理层的链路模式。例如,物理层的多个链路模式可以按照数据传输能力由低至高进行排序,即上一链路模式的数据传输能力低于下一链路模式。从而,本申请实施例可以在当前链路模式下,逐级的降低链路模式或者逐级的升高链路模式。
可选的,在物理层的当前链路模式下,降低物理层的链路模式可以视为是:将物理层的链路模式由当前链路模式降低至上一链路模式,直至物理层的链路模式处于最低链路模式(最低链路模式即数据传输能力最低的链路模式)。在物理层的当前链路模式下,提升物理层的链路模式可以视为是:将物理层的链路模式由当前链路模式提升至下一链路模式,直至物理层的链路模式处于最高链路模式(最高链路模式即数据传输能力最高的链路模式)。
需要说明是,基于链路模式的数据传输能力与功耗呈正相关关系,因此降低物理层的链路模式对应降低物理层的功耗,提升物理层的链路模式对应提升物理层的功耗。
在可选实现中,基于所监测的事务层在多个时间范围的多个有效事务层负载包数量,本申请实施例可以在满足事务层的有效事务层负载包传输需求的情况下,控制降低物理层的链路模式(对应降低物理层的功耗),或者控制提升物理层的链路模式(对应提升物理层的功耗)。可选的,控制降低物理层的链路模式以及控制提升物理层的链路模式可以通过不同的处理逻辑实现。作为可选实现,图3示例性的示出了本申请实施例提供的IO设备的功耗控制方法的另一可选流程图,参照图3,该方法流程可以包括如下步骤。
在步骤S310中,在IO设备的数据传输状态下,监测事务层在多个时间范围传输的有效事务层负载包的数量,得到多个有效事务层负载包数量。
基于多个有效事务层负载包数量,本申请实施例可以控制降低物理层的链路模式或者控制提升物理层的链路模式。下述步骤S311至步骤S313示出了降低物理层的链路模式的处理逻辑。
在步骤S311中,如果物理层的当前链路模式不为数据传输能力最低的链路模式,根据多个有效事务层负载包数量,判断物理层是否满足链路模式降低条件;若否,执行步骤S312,若是,执行步骤S313。
在步骤S312中,结束降低链路模式的处理逻辑。
在步骤S313中,确定当前链路模式的上一链路模式为目标链路模式。
降低物理层的链路模式的情况基于物理层的当前链路模式不为最低链路模式,即物理层的当前链路模式不为数据传输能力最低的链路模式。如果物理层的当前链路模式的数据传输能力为多个链路模式中最低的,则无降低物理层的链路模式的意义。
在物理层的当前链路模式不为数据传输能力最低的链路模式时,本申请实施例可以判断是否可以将物理层的链路模式由当前链路模式降低至上一链路模式,即在物理层不处于最低链路模式时,本申请实施例可以判断物理层是否可以通过降级链路模式,以达到降低功耗的目的。
本申请实施例在降低链路模式的情况下,需保障降低的链路模式仍能满足事务层的有效事务层负载包传输需求,因此本申请实施例可以基于反映有效事务层负载包传输需求的多个有效事务层负载包数量,判断物理层是否满足链路模式降低条件。从而,在满足链路模式降低条件时,本申请实施例可以将当前链路模式的上一链路模式确定为目标链路模式,即通过将物理层的链路模式调整为当前链路模式的上一链路模式,以在满足有效事务层负载包传输需求的情况下,降低物理层的功耗。而在不满足链路模式降低条件时,本申请实施例可以停止降低物理层的链路模式的处理逻辑。
在可选实现中,降低物理层的链路模式的目的可以是在满足事务层的有效事务层负载包传输需求的情况下,控制物理层通过降级链路模式,来降低物理层的功耗。
基于此,在可选实现中,基于任一个有效事务层负载包数量反映的是事务层在一个时间范围的有效事务层负载包传输需求,因此本申请实施例可以在一个时间范围的时间长度下,预先设置物理层的多个链路模式分别对应的有效数据量阈值。其中,在一个时间范围的时间长度下,一个链路模式对应的有效数据量阈值可以视为是该链路模式理论传输的有效数据量。以多个时间范围中各个时间范围的时间长度均为10000个周期为例,则物理层的一个链路模式在10000个周期理论传输的有效数据量,可以视为是该链路模式在10000个周期对应的有效数据量阈值。
基于多个链路模式的数据传输能力不同,则在一个时间范围的时间长度下,多个链路模式对应的有效数据量阈值不同,例如物理层的多个链路模式在10000个周期对应的有效数据量阈值是不同的。并且,链路模式的数据传输能力与在一个时间范围的时间长度所对应的有效数据量阈值呈正相关关系,即链路模式的数据传输能力越高,则链路模式在一个时间范围的时间长度所对应的有效数据量阈值越大。另外,基于多个链路模式的数据传输能力与功耗呈正相关关系,因此多个链路模式在一个时间范围的时间长度所对应的有效数据量阈值,与功耗呈正相关关系;即,链路模式在一个时间范围的时间长度所对应的有效数据量阈值越大,则链路模式的功耗越高。
在预先设置各个链路模式在一个时间范围的时间长度所对应的有效数据量阈值之后,本申请实施例可以获取当前链路模式的上一链路模式在一个时间范围的时间长度所对应的有效数据量阈值,并将多个有效事务层负载包数量分别转换为有效事务层负载包数据量,得到多个有效事务层负载包数据量;从而,将上一链路模式在一个时间范围的时间长度所对应的有效数据量阈值,与多个有效事务层负载包数据量进行比对,判断多个有效事务层负载包数据量是否均小于上一链路模式对应的有效数据量阈值。
如果多个有效事务层负载包数据量均小于上一链路模式对应的有效数据量阈值,则物理层采用当前链路模式的上一链路模式进行数据传输,仍能满足有效事务层负载包传输需求,并且还能达到降低功耗的效果,因此本申请实施例可以进行链路模式的降级,从而将当前链路模式的上一链路模式作为目标链路模式,并控制物理层的链路模式调整为目标链路模式。
如果多个有效事务层负载包数据量不是均小于上一链路模式对应的有效数据量阈值,则物理层采用当前链路模式的上一链路模式进行数据传输,可能存在无法满足有效事务层负载包传输需求的情况,因此本申请实施例不进行链路模式的降级。
需要说明的是,将多个有效事务层负载包数量转换为多个有效事务层负载包数据量是指,有效事务层负载包的数量至数据量(即数据大小)的转换。在可选实现中,本申请实施例可以将各个有效事务层负载包数量转换为有效事务层负载包数据量,从而得到多个有效事务层负载包数据量。例如,本申请实施例可以设定一个有效事务层负载包所对应的数据量,从而针对多个有效事务层负载包数量中的任一个有效事务层负载包数量,将该有效事务层负载包数量与一个有效事务层负载包所对应的数据量相结合(例如将该有效事务层负载包数量与一个有效事务层负载包所对应的数据量相乘),以得到该有效事务层负载包数量对应的有效事务层负载包数据量。进而,在得到各个有效事务层负载包数量对应的有效事务层负载包数据量后,形成多个有效事务层负载包数据量。
上述步骤S311至步骤S313示出了降低物理层的链路模式的处理逻辑。下面基于步骤S314至步骤S316,对提升物理层的链路模式的处理逻辑进行介绍。
在步骤S314中,如果物理层的当前链路模式不为数据传输能力最高的链路模式,根据所述多个有效事务层负载包数量,判断物理层是否满足链路模式提升条件;若否,执行步骤S315,若是,执行步骤S316。
在步骤S315中,结束提升链路模式的处理逻辑。
在步骤S316中,确定当前链路模式的下一链路模式为目标链路模式。
提升物理层的链路模式的情况基于物理层的当前链路模式不为最高链路模式,即物理层的当前链路模式不为数据传输能力最高的链路模式。如果物理层的当前链路模式的数据传输能力为多个链路模式中最高的,则无提升物理层的链路模式的意义。
在物理层的当前链路模式不为数据传输能力最高的链路模式时,本申请实施例可以判断是否可以将物理层的链路模式由当前链路模式提升至下一链路模式。基于此,本申请实施例可以预先设置链路模式提升条件,从而根据所述多个有效事务层负载包数量,判断物理层是否满足链路模式提升条件。进而,在满足链路模式降低条件时,确定可以将物理层的链路模式由当前链路模式提升至下一链路模式,即当前链路模式的下一链路模式可以作为与多个有效事务层负载包数量相匹配的目标链路模式;而在不满足链路模式提升条件时,本申请实施例可以停止提升物理层的链路模式的处理逻辑。
在可选实现中,将物理层的当前链路模式提升至下一链路模式意味着,物理层的当前链路模式可能无法满足事务层的有效事务层负载包传输需求,因此需要提升链路模式,以为满足事务层的有效事务层负载包传输需求提供可能性。
基于此,在可选实现中,基于任一个有效事务层负载包数量反映的是事务层在一个时间范围的事务层负载包传输需求,本申请实施例可以在一个时间范围的时间长度下,预先设置物理层的多个链路模式分别对应的有效数据量最大值。可选的,链路模式对应的有效数据量最大值表示的是,链路模式在一个时间范围的时间长度下所能传输的有效数据量的上限值;针对任一链路模式,在一个时间范围的时间长度下,链路模式对应的有效数据量最大值可以不小于对应的有效数据量阈值,但应低于下一链路模式对应的有效数据量阈值。例如,针对任一链路模式,本申请实施例可以将链路模式对应的有效数据量最大值的取值,选取在链路模式对应的有效数据量阈值以及下一链路模式对应的有效数据量阈值之间。需要说明的是,任一链路模式在一个时间范围的时间长度对应的有效数据量最大值,可以根据实际情况确定,本申请实施例并不设限。
由于链路模式在一个时间范围的时间长度对应的有效数据量最大值,表示的是链路模式在一个时间范围的时间长度所能传输的有效数据量的上限,因此如果多个有效事务层负载包数据量均处于当前链路模式在一个时间范围的时间长度所对应的有效数据量最大值的边缘,则可视为当前链路模式接近、甚至超过了所能传输的数据量的上限,此时可以视为满足链路模式提升条件,可以将物理层的当前链路模式提升至下一链路模式,以为物理层能够满足有效事务层负载包传输需求提供可能性。
从而,在可选实现中,本申请实施例可以将多个有效事务层负载包数量分别转换为有效事务层负载包数据量,得到多个有效事务层负载包数据量;进而,根据当前链路模式在一个时间范围的时间长度所对应的有效数据量最大值、以及多个有效事务层负载包数据量,判断多个有效事务层负载包数据量是否均处于当前链路模式对应的有效数据量最大值的边缘;如果多个有效事务层负载包数据量均处于当前链路模式对应的有效数据量最大值的边缘,则确定满足链路模式提升条件;如果多个有效事务层负载包数据量未均处于当前链路模式对应的有效数据量最大值的边缘,则确定不满足链路模式提升条件。
在可选实现中,本申请实施例可以根据当前链路模式在一个时间范围的时间长度所对应的有效数据量最大值、以及多个有效事务层负载包数据量,判断多个有效事务层负载包数据量与当前链路模式对应的有效数据量最大值的差值,是否均处于预设差值范围内;如果均处于预设差值范围内,则视为多个有效事务层负载包数据量均处于当前链路模式对应的有效数据量最大值的边缘,可确认满足链路模式提升条件;如果未均处于预设差值范围内,则视为多个有效事务层负载包数据量未均处于当前链路模式对应的有效数据量最大值的边缘,可确认不满足链路模式提升条件。
需要说明的是,多个有效事务层负载包数据量中,如果存在任一有效事务层负载包数据量不处于当前链路模式对应的有效数据量最大值的边缘(例如存在任一有效事务层负载包数据量与当前链路模式对应的有效数据量最大值的差值,不处于预设差值范围内),则视为多个有效事务层负载包数据量未均处于当前链路模式对应的有效数据量最大值的边缘,从而可确认不满足链路模式提升条件。
需要进一步说明的是,针对任一有效事务层负载包数据量,有效事务层负载包数据量处于当前链路模式对应的有效数据量最大值的边缘,可能是有效事务层负载包数据量大于当前链路模式对应的有效数据量最大值,但差值在预设差值范围内;也可能是有效事务层负载包数据量小于当前链路模式对应的有效数据量最大值,但差值在预设差值范围内。预设差值范围可以根据实际情况设定,例如,视调整精度确定预设差值范围,本申请实施例对此并不设限。
在满足链路模式提升条件的情况下,本申请实施例可以将当前链路模式的下一链路模式,作为目标链路模式,以提升物理层的链路模式,从而在满足有效事务层负载包传输需求的情况下,尽可能的控制物理层的功耗。
在步骤S317中,将物理层的链路模式调整为目标链路模式。
可以看出,本申请实施例可以在IO设备的数据传输状态下,提供物理层的链路模式降低机制和提升机制。在链路模式降低机制下,本申请实施例可以将监测的事务层在多个时间范围的多个有效事务层负载包数量作用于物理层,从而在确定当前链路模式的上一链路模式能够满足事务层的有效事务层负载包传输需求时,使得物理层调整链路模式为当前链路模式的上一链路模式,以降低功耗。在链路模式提升机制下,本申请实施例可以将监测的多个有效事务层负载包数量作用于物理层,在物理层的当前链路模式贴近、甚至超出数据传输上限时,确定当前链路模式的下一链路模式为目标链路模式,使得物理层能够在满足事务层的有效事务层负载包传输需求的情况下,尽可能的控制功耗。因此,本申请实施例可以在IO设备的数据传输过程中,基于IO设备的事务层传输有效事务层负载包的传输需求,合理匹配IO设备的物理层的链路模式,从而优化IO设备的功耗,为在IO设备的数据传输过程中,整体降低IO设备的功耗提供了可能性。
作为可选实现,调整物理层的链路模式可以通过调整物理层的数据传输速率或者链路带宽来实现。从而物理层的链路模式可以是物理层的链路速率模式和/或链路带宽模式。也就是说,物理层的多个链路模式可以是多个链路速率模式,和/或多个链路带宽模式。
可选的,物理层的链路速率模式可以由IO设备使用的数据传输协议的版本决定,相应的,物理层的多个链路速率模式可以对应数据传输协议的多个版本,其中,一个链路速率模式为数据传输协议的一个版本。数据传输协议的版本与数据传输速率呈正相关关系,即随着数据传输协议的版本的提升,数据传输协议的版本对应的数据传输速率随之提升。从而,在使用链路速率模式作为链路模式的情况下,链路模式的数据传输能力可以是链路速率模式的数据传输速率,即多个链路模式的数据传输能力包括多个链路速率模式的数据传输速率,且多个链路速率模式的数据传输速率与功耗呈正相关关系。例如,可以按照数据传输速率由低至高的顺序,为多个链路速率模式进行排序,从而上一链路速率模式的数据传输速率低于下一链路速率模式。
在一个示例中,以PCIE设备为例,PCIE数据传输协议可以具有Gen1、Gen2、Gen3、Gen4和Gen5等多个版本,对应多个链路速率模式。也就是说,在此示例中,物理层的多个链路速率模式可以为Gen1、Gen2、Gen3、Gen4和Gen5等。需要说明的是,Gen是Generation(代际)的缩写,表示PCIE协议的版本或代际,例如Gen5指第五代PCIE协议,随着PCIE协议的版本(也称代际)的提升,PCIE协议引入了新的特性和改进,以提高数据传输速度和性能。
可选的,物理层的链路带宽模式可以由物理层使用的通道数量决定,相应的,不同链路带宽模式对应物理层的不同通道数量,且链路带宽模式对应的通道数量决定链路带宽模式的带宽。链路带宽模式的通道数量与链路带宽模式的带宽呈正相关关系,即链路带宽模式的通道数量越多,则链路带宽模式对应的带宽越多。从而,在使用链路带宽模式作为链路模式的情况下,链路模式的数据传输能力可以是链路带宽模式的带宽,即多个链路模式的数据传输能力包括多个链路带宽模式的带宽,且多个链路带宽模式的带宽与功耗呈正相关关系。例如,可以按照带宽由低至高的顺序(比如按照通道数量由低至高的顺序),为多个链路带宽模式进行排序,从而上一链路带宽模式的带宽低于下一链路带宽模式。
在一个示例中,以PCIE设备为例,PCIE设备的通道数量可以分为x1(1个通道)、x2(2个通道)、x4(4个通道)、x8(8个通道)和x16(16个通道)等。也就是说,在此示例中,物理层的多个链路带宽模式可以为x1、x2、x4、x8和x16等。
为便于理解,下表1示例性的示出了PCIE设备的数据传输速率和数据链路带宽的示例图。
速率\带宽 | x1 | x2 | x4 | x8 | x16 |
Gen1 | 2Gbit/s | 4Gbit/s | 8Gbit/s | 16Gbit/s | 32Gbit/s |
Gen2 | 4Gbit/s | 8Gbit/s | 16Gbit/s | 32Gbit/s | 64Gbit/s |
Gen3 | 8Gbit/s | 16Gbit/s | 32Gbit/s | 64Gbit/s | 128Gbit/s |
Gen4 | 16Gbit/s | 32Gbit/s | 64Gbit/s | 128Gbit/s | 256Gbit/s |
Gen5 | 32Gbit/s | 64Gbit/s | 128Gbit/s | 256Gbit/s | 512Gbit/s |
表1
由表1可以看出,Gen1和x1对应的单位时间的数据传输量为2Gbit/s(1Gbit/s表示每秒十亿比特数据传输)、Gen1和x2对应的单位时间的数据传输量为4Gbit/s等。需要说明的是,Gen1、Gen2的数据传输速率在每个通道分别为2.5Gbit/s和5Gbit/s,但由于采用的编码方式有20%带宽损耗,所以调整为2Gbit/s和4Gbit/s。在表1示例下,以PCIE的Gen5和x16为例,Gen5在每个通道的数据传输速率为32Gbit/s(例如PCIE设备的高速串并转换接口在采用Gen5的PCIE协议时,高速串并转换接口在每个通道的数据传输速率为32Gbit/s,即1秒的数据位宽为32bit的1G的数据位宽),则在x16的16条通道下,Gen5和x16的数据传输速率可达到:16x32Gbit/s=512Gbit/s。
基于物理层的链路模式可以是物理层的链路速率模式和/或链路带宽模式,作为可选实现,本申请实施例可以基于事务层在多个时间范围的多个有效事务层负载包数量,调整物理层的链路速率模式和/或链路带宽模式。例如,本申请实施例可以基于多个有效事务层负载包数量,从调整物理层的链路速率模式的角度,对物理层的链路模式进行调整。又例如,本申请实施例可以基于多个有效事务层负载包数量,从调整物理层的链路带宽模式的角度,对物理层的链路模式进行调整。再例如,本申请实施例可以基于多个有效事务层负载包数量,从调整物理层的链路速率模式和链路带宽模式(即物理层的链路速率模式和链路带宽模式一块调整)的角度,对物理层的链路模式进行调整。
下面分别从调整物理层的链路速率模式和链路带宽模式的角度,对本申请实施例提供的IO设备的功耗控制方法进行介绍。
以物理层的链路速率模式为例,作为可选实现,图4示例性的示出了本申请实施例提供的IO设备的功耗控制方法的再一可选流程图。参照图4,该方法流程可以包括如下步骤。
在步骤S410中,在IO设备的数据传输状态下,监测事务层在多个时间范围传输的有效事务层负载包的数量,得到多个有效事务层负载包数量。
在步骤S411中,将多个有效事务层负载包数量分别转换为有效事务层负载包数据量,得到多个有效事务层负载包数据量。
在步骤S412中,如果当前链路速率模式不为最低的链路速率模式,判断多个有效事务层负载包数据量是否均小于上一链路速率模式对应的有效数据量阈值;若否,执行步骤S413,若是,执行步骤S414。
在步骤S413中,结束降低链路速率模式的处理逻辑。
在步骤S414中,将上一链路速率模式作为目标链路模式。
作为可选实现,物理层的当前链路速率模式不为数据传输速率最低的链路速率模式,则本申请实施例可以判断物理层是否可以将链路速率模式进行降低。例如,物理层的当前链路速率模式不为Gen1时,可以判断物理层是否可以将链路速率模式进行降低。
作为可选实现,在一个时间范围的时间长度下,本申请实施例可以设置物理层的多个链路速率模式分别对应的有效数据量阈值。例如,在任一个链路带宽模式下,物理层的多个链路速率模式在一个时间范围的时间长度存在对应的多个有效数据量阈值,其中,一个链路速率模式对应一个有效数据量阈值。也就是说,每个链路带宽模式的多个链路速率模式,在一个时间范围的时间长度下均存在对应的有效数据量阈值。例如,在维持物理层的链路带宽模式不变的情况下,本申请实施例可以在物理层的当前链路带宽模式下,得到物理层的多个链路速率模式在一个时间范围的时间长度所对应的多个有效数据量阈值(一个链路速率模式对应一个有效数据量阈值)。从而,在将多个有效事务层负载包数量转换为多个有效事务层负载包数据量后,可以将多个有效事务层负载包数据量与多个链路速率模式对应的有效数据量阈值进行比对,判断是否满足预设的链路速率模式降低条件。
在一个实现示例中,以PICE设备为例,假设一个时间范围的时间长度为10000个周期,且PCIE设备的时钟周期的速率为1GT/s(每秒10亿次),即1秒产生10亿个周期,则在x16的链路带宽模式下,PICE设备的Gen5的链路速率模式在一个周期的数据传输量为512bit(比特)。例如,结合表1所示,Gen5和x16的带宽为512Gbit/s,由于PCIE设备在1秒产生10亿个周期,则Gen5和x16在一个周期的数据传输量为512bit。从而在10000个周期下(一个时间范围的时间长度的一种示例),基于x16的链路带宽模式,Gen5的链路速率模式对应的有效数据量阈值为640000byte(字节),即512bit×10000=5120000bit,而1byte为8比特,从而在x16的链路带宽模式下,Gen5的链路速率模式在10000个周期对应的有效数据量阈值为5120000bit÷8=640000byte。
相应的,在10000个周期下,基于x16的链路带宽模式,Gen4的链路速率模式对应的有效数据量阈值为320000byte,Gen3的链路速率模式对应的有效数据量阈值为160000byte,Gen2的链路速率模式对应的有效数据量阈值为80000byte,Gen1的链路速率模式对应的有效数据量阈值为对应40000byte。具体示例可以参照下表2所示,表2为x16的链路带宽模式下,多个链路速率模式在10000个周期对应的有效数据量阈值。
Gen1 | Gen2 | Gen3 | Gen4 | Gen5 |
40000byte | 80000byte | 160000byte | 320000byte | 640000byte |
表2
作为可选实现,本申请实施例可以根据当前链路速率模式的上一链路速率模式在一个时间范围的时间长度所对应的有效数据量阈值、以及多个有效事务层负载包数据量,判断多个有效事务层负载包数据量是否均小于上一链路速率模式对应的有效数据量阈值;若是,则可确认满足链路速率模式降低条件,从而将当前链路速率模式的上一链路速率模式,作为目标链路模式;若否,则确定不满足链路速率模式降低条件,结束降低链路速率模式的处理逻辑。
在一个示例中,结合表2所示,在维持物理层的链路带宽模式不变的情况下,如果当前链路速率模式为Gen2,且多个有效事务层负载包数据量均小于40000byte(Gen1对应的有效数据量阈值),则可确定物理层可调整链路速率模式为Gen1;如果当前链路速率模式为Gen3,且多个有效事务层负载包数据量均小于80000byte(Gen2对应的有效数据量阈值),则可确定物理层可调整链路速率模式为Gen2;如果当前链路速率模式为Gen4,且多个有效事务层负载包数据量均小于160000byte(Gen3对应的有效数据量阈值),则可确定物理层可调整链路速率模式为Gen3;如果当前链路速率模式为Gen5,且多个有效事务层负载包数据量均小于小于320000byte(Gen4对应的有效数据量阈值),则可确定物理层可调整链路速率模式为Gen4。
在步骤S415中,如果当前链路速率模式不为最高的链路速率模式,判断多个有效事务层负载包数据量是否均处于当前链路速率模式对应的有效数据量最大值的边缘;若否,执行步骤S416,若是,执行步骤S417。
在步骤S416中,结束提升链路速率模式的处理逻辑。
在步骤S417中,将下一链路速率模式作为目标链路速率模式。
作为可选实现,物理层的当前链路速率模式不为数据传输速率最高的链路速率模式,本申请实施例可以判断物理层是否可以将链路速率模式进行提升。例如,物理层的当前链路速率模式不为Gen5时,可以判断物理层是否可以将链路速率模式进行提升。提升链路速率模式的目的在于保障物理层能够满足有效事务层负载包传输需求。
作为可选实现,如果物理层的当前链路速率模式不为数据传输速率最高的链路速率模式,并且多个有效事务层负载包数据量均位于当前链路速率模式对应的有效数据量最大值的边缘(比如,多个有效事务层负载包数据量与当前链路速率模式对应的有效数据量最大值的差值,均处于预设差值范围内),则本申请实施例可以确认满足链路速率模式提升条件,将物理层的当前链路速率模式的下一链路速率模式作为目标链路速率模式,以调整物理层的链路速率模式为下一链路速率模式;否则,本申请实施例可以结束提升链路速率模式的处理逻辑。
在步骤S418中,将物理层的链路速率模式调整为目标链路速率模式。
作为可选实现,本申请实施例可以在PCIE设备等IO设备之间通过传输速率协商流程,将物理层的链路速率模式调整为目标链路速率模式。
例如,在满足链路速率模式的速率调整条件时,本申请实施例可以通过状态机将链路的传输速率调整为目标链路速率模式对应的目标传输速率,从而实现在链路两端的IO设备(例如PCIE设备)之间进行链路速率模式的协商调整。作为可选实现,满足链路速率模式的速率调整条件可以包括但不限于如下至少一项:
禁止向对端IO设备继续发送数据,例如,禁止继续向对端IO设备发送事务层负载包(例如TLP)和链路层管理包(例如DLLP),即阻挡所有的事务层负载包和链路层管理包的发送;其中,对端IO设备与IO设备通过链路连接,即对端IO设备为与IO设备相交互的另一IO设备;
禁止向对端IO设备反馈事务层负载包(例如TLP)的接收数量指示信号,例如,禁止给对端IO设备反馈事务层负载包的credit(信用)信号,其中,credit信号是一种指示能够接收的事务层负载包数量的信号,可以防止接收事务层负载包的缓冲区溢出;
确认已发送的事务层负载包已收到确定的链路层管理包(例如ACK DLLP);
确认已发送的读(Read)请求对应的事务层负载包已收到响应信号。
在一个示例中,以PCIE设备为例,本申请实施例可以在禁止继续发送TLP和DLLP、禁止反馈TLP的credit信号、并且确认已发送的TLP已收到的ACK DLLP、确认已发送的Read请求对应的TLP已收到响应信号的情况下,通过状态机将链路的传输速率调整为目标链路速率模式对应的目标传输速率,以实现在链路两端的IO设备(例如PCIE设备)之间协商调整链路速率模式为目标链路速率模式。
以调整链路带宽模式为例,作为可选实现,图5示例性的示出了本申请实施例提供的IO设备的功耗控制方法的又一可选流程图。参照图5,该方法流程可以包括如下步骤。
在步骤S510中,在IO设备的数据传输状态下,监测事务层在多个时间范围传输的有效事务层负载包的数量,得到多个有效事务层负载包数量。
在步骤S511中,将多个有效事务层负载包数量分别转换为有效事务层负载包数据量,得到多个有效事务层负载包数据量。
在步骤S512中,如果当前链路带宽模式为不为最低的链路带宽模式,判断多个有效事务层负载包数据量是否均小于上一链路带宽模式对应的有效数据量阈值;若否,执行步骤S513,若是,执行步骤S514。
在步骤S513中,结束降低链路带宽模式的处理逻辑。
在步骤S514中,将上一链路带宽模式作为目标链路带宽模式。
作为可选实现,物理层的当前链路带宽模式不为带宽最低的链路带宽模式,则本申请实施例可以判断物理层是否可以将链路带宽模式进行降低。例如,物理层的当前链路带宽模式不为x1时,可以判断物理层是否可以将链路带宽模式进行降低。
作为可选实现,在一个时间范围的时间长度下,物理层的多个链路带宽模式对应的有效数据量阈值不同,且链路带宽模式对应的有效数据量阈值与链路带宽模式的功耗正相关。
在可选实现中,在任一个链路速率模式下,物理层的多个链路带宽模式在一个时间范围的时间长度下,可以存在对应的多个有效数据量阈值,其中,一个链路带宽模式对应一个有效数据量阈值。也就是说,每个链路速率模式下的多个链路带宽模式,在一个时间范围的时间长度下均存在对应的有效数据量阈值。例如,在维持物理层的链路速率模式不变的情况下,本申请实施例可以在物理层的当前链路速率模式下,得到物理层的多个链路带宽模式在一个时间范围的时间长度所对应的多个有效数据量阈值,一个链路带宽模式对应一个有效数据量阈值。
在一个实现示例中,以PICE设备为例,假设一个时间范围的时间长度为10000个周期,且PCIE设备的时钟周期的速率为1GT/s(每秒10亿次),即1秒产生10亿个周期,则在Gen5的链路速率模式下,PCIE设备的x16的链路带宽模式在一个周期的数据传输量为512bit;从而,在Gen5的链路速率模式下,x16的链路带宽模式在10000个周期对应的有效数据量阈值为640000byte。
相应的,在10000个周期下,基于Gen5的链路速率模式,x8的链路带宽模式对应的有效数据量阈值为320000byte,x4的链路带宽模式对应的有效数据量阈值为160000byte,x2的链路带宽模式对应的有效数据量阈值为80000byte,x1的链路带宽模式对应的有效数据量阈值为40000byte。
作为可选实现,为在满足有效事务层负载包传输需求的情况下,本申请实施例能够通过降级链路带宽模式来降低功耗。本申请实施例可以将当前链路带宽模式的上一链路带宽模式在一个时间范围的时间长度所对应的有效数据量阈值,与多个多个有效事务层负载包数据量进行比对,以判断多个有效事务层负载包数据量是否均小于上一链路带宽模式对应的有效数据量阈值;若是,则可确认满足链路带宽模式降低条件,从而将上一链路带宽模式作为目标链路模式;若否,则确定不满足链路带宽模式降低条件,结束降低链路带宽模式的处理逻辑。
在一个示例中,在维持物理层的链路速率模式不变的情况下,如果当前链路带宽模式为x2,且多个有效事务层负载包数据量均小于40000byte(x1对应的有效数据量阈值),则可确定物理层可调整链路带宽模式为x1;如果当前链路带宽模式为x4,且多个有效事务层负载包数据量均小于80000byte(x2对应的有效数据量阈值),则可确定物理层可调整链路带宽模式为x2;如果当前链路带宽模式为x8,且多个有效事务层负载包数据量均小于160000byte(x4对应的有效数据量阈值),则可确定物理层可调整链路带宽模式为x4;如果当前链路带宽模式为x16,且多个有效事务层负载包数据量均小于320000byte(x8对应的有效数据量阈值),则可确定物理层可调整链路带宽模式为x8。
在步骤S515中,如果当前链路带宽模式不为最高的链路带宽模式,判断多个有效事务层负载包数据量是否均处于当前链路带宽模式对应的有效数据量最大值的边缘;若否,执行步骤S516,若是,执行步骤S517。
在步骤S516中,结束提升链路带宽模式的处理逻辑。
在步骤S517中,将下一链路带宽模式作为目标链路带宽模式。
作为可选实现,物理层的当前链路带宽模式不为带宽最高的链路带宽模式,本申请实施例可以判断物理层是否可以将链路带宽模式进行提升。例如,物理层的当前链路带宽模式不为x16时,可以判断物理层是否可以将链路带宽模式进行提升。提升链路带宽模式的目的在于保障物理层能够满足有效事务层负载包传输需求。
作为可选实现,如果物理层的当前链路带宽模式不为最高带宽的链路带宽模式,并且多个有效事务层负载包数据量均位于当前链路带宽模式对应的有效数据量最大值的边缘(比如,多个有效事务层负载包数据量与当前链路带宽模式对应的有效数据量最大值的差值,均处于预设差值范围内),则本申请实施例可以确认满足链路带宽模式提升条件,将物理层的当前链路带宽模式的下一链路带宽模式作为目标链路带宽模式,以调整物理层的链路带宽模式为下一链路带宽模式;否则,本申请实施例可以结束提升链路带宽模式的处理逻辑。
在步骤S518中,将物理层的链路带宽模式调整为目标链路带宽模式。
作为可选实现,本申请实施例可以在PCIE设备等IO设备之间通过链路带宽协商流程,将物理层的链路带宽模式调整为目标链路带宽模式。
在可选实现中,IO设备需要调整带宽时,可以向对端IO设备发送调整带宽的链路层管理包(例如DLLP)。比如IO设备需要降低带宽时,可以向对端IO设备发送降低带宽的链路层管理包(例如DLLP);IO设备需要提升带宽时,可以向对端IO设备发送提升带宽的链路层管理包(例如DLLP)。从而,对端IO设备可以向IO设备回复响应或拒绝的链路层管理包(例如DLLP);IO设备可以在对端IO设备回复响应的链路层管理包(例如DLLP)时,继续进行带宽调整。
作为可选实现,降低带宽(即目标链路带宽模式的带宽低于当前链路带宽模式,比如物理层由当前链路带宽模式调整为上一链路带宽模式)可以表示物理层需要关闭通道;从而本申请实施例可以在IO设备与对端IO设备之间协商关闭通道(比如使得需关闭的通道处于空闲状态),并且重新对齐不需关闭的通道,以实现调整链路带宽模式。
例如,如果目标链路带宽模式的带宽低于当前链路带宽模式,则本申请实施例可以确定目标链路带宽模式相对于当前链路带宽模式的待关闭通道以及维持通道,并向对端IO设备发送降低带宽的链路层管理包(例如DLLP);其中,待关闭通道为需要关闭的通道,维持通道为不需关闭且维持激活的通道;
从而,若接收到对端IO设备响应的链路层管理包(例如响应的DLLP),本申请实施例可以控制维持通道继续工作;并在维持通道发送SKP(Skip Ordered Sets,跳过有序集)信令时,控制待关闭通道发送EIOS(End of Idle Ordered Sets,结束空闲有序集)信号,以使得对端IO设备基于SKP信令与IO设备重新对齐维持通道,并使得对端IO设备基于EIOS信号将待关闭通道置于空闲状态。
在一个实现示例中,以PCIE设备的物理层的链路带宽模式由x16降低为x8为例(即物理层需要关闭8条通道),则可维持x16中的8条通道继续工作,在需要发送SKP信令时,继续工作的8条通道发送SKP信令,而需要关闭的8条通道发送EIOS信号;从而对端PCIE设备在接收SKP信令时,可以对发送SKP信令的8条通道重新完成时钟和数据的对齐(deskew),而在接收EIOS信号时,可以设置发送EIOS信号的8条通道开始进入空闲状态(Elecidle)。
作为可选实现,提升带宽(即目标链路带宽模式的带宽高于当前链路带宽模式,比如物理层由当前链路带宽模式调整为下一链路带宽模式)可以表示物理层需要新增通道;从而本申请实施例可以在IO设备与对端IO设备之间协商对齐原通道以及新增通道,以实现调整链路带宽模式。
例如,如果目标链路带宽模式的带宽高于当前链路带宽模式,则本申请实施例可以确定目标链路带宽模式相对于当前链路带宽模式的新增通道,并向对端IO设备发送提升带宽的链路层管理包(例如DLLP);
从而,若接收到对端IO设备的响应的链路层管理包(例如响应的DLLP),本申请实施例可以维持当前链路带宽模式的原通道继续工作(例如,维持当前链路带宽模式的原先通道继续工作),并与对端IO设备完成新增通道的TS(Training Sequence,训练序列)握手;
进而,在原通道发送SKP信令时,本申请实施例可以控制新增通道发送SKP信令,以使对端IO设备基于原通道和新增通道发送的SKP信令,与IO设备对齐原通道和新增通道。
在一个实现示例中,以PCIE设备的物理层的链路带宽模式由x8提升为x16为例(即物理层需要新增8条通道),则已经激活的x8对应的8条通道继续发送数据,新增的8条通道先与对端PCIE设备完成TS握手;然后,在已经激活的8条通道需要发送SKP信令时,新增的8条通道一起发送SKP信令,从而对端PCIE设备可以通过SKP信令完成16条通道的时钟和数据的对齐,之后便可以通过16条通道传输数据。
需要说明的是,此处的对端IO设备是指与IO设备通过链路连接的另一IO设备(即对端IO设备与IO设备通过链路连接),比如IO设备为发送IO设备时,对端IO设备为相应的接收IO设备。
可以看出,本申请实施例提供的功耗控制方案,提供了物理层调整链路速率模式和链路带宽模式的机制,能够在IO设备的数据传输状态下,基于IO设备的事务层传输有效事务层负载包的数量变化,合理匹配IO设备的物理层的链路模式,从而优化IO设备的功耗,进而为在IO设备的数据传输过程中,整体降低IO设备的功耗提供了可能性。
作为可选实现,调整链路速率模式可以通过调整链路的数据传输速率来实现,比如调整端口的时钟频率和翻转率,以实现调整数据传输速率的效果。示例的,本申请实施例可以在降低链路速率模式时,通过降低端口的时钟频率和翻转率与目标链路速率模式相对应来实现。调整链路带宽模式可以在保持数据传输的情况下下,通过关闭通道或者增加通道来实现,此时端口的频率和翻转率可以保持不变。
作为可选实现,本申请实施例可以配置多个时间范围,以在多个时间范围分别对事务层传输的有效事务层负载包进行数量计数。在一个实现示例中,多个时间范围中各个时间范围的时间长度相同,且各个时间范围存在部分重叠的时间。可选的,图6示例性的示出了本申请实施例提供的配置多个时间范围的可选流程图,参照图6,该方法流程可以包括如下步骤。
在步骤S610中,将预设起始时间作为第一个时间范围的起始时间,并将第一个时间范围的时间长度配置为预设时间长度,得到第一个时间范围。
本申请实施例可以配置各个时间范围的时间长度相同,且各个时间范围的时间长度定义为预设时间长度。进而,在定义预设起始时间的情况下,可以将预设起始时间作为第一个时间范围的起始时间,并将第一个时间范围的时间长度配置为预设时间长度,从而得到第一个时间范围。
作为可选实现,本申请实施例可以按照多个时间范围开始监测的先后顺序,将第一个开始监测的时间范围称为第一个时间范围,而第二个开始监测的时间范围称为第二个时间范围,以此类推。
在一个实现示例中,以时间范围的时间为周期为例,则假设一个时间范围时间长度(即预设时间长度)为10000个周期,预设起始时间为第0个周期,则对于第一个时间范围,第一个时间范围可以是第0个周期至第10000个周期的时间范围。
在步骤S611中,根据预设时间长度以及所述多个时间范围的数量,确定相邻时间范围的起始时间的间隔时间。
在步骤S612中,基于相邻时间范围的起始时间相距所述间隔时间,分别确定除第一个时间范围外的其他时间范围的起始时间。
在步骤S613中,基于其他时间范围的起始时间,将其他时间范围的时间长度分别配置为预设时间长度,得到其他时间范围。
本申请实施例可以根据预设时间长度以及多个时间范围的数量,确定相邻时间范围的起始时间的间隔时间,从而在确定第一个时间范围的起始时间为预设起始时间(例如第0个周期)的情况下,按照相邻时间范围的起始时间相距上述间隔时间的方式,分别确定除第一个时间范围外的其他时间范围的起始时间;进而,基于其他时间范围的起始时间,将其他时间范围的时间长度分别配置为预设时间长度,则可得到其他时间范围。
例如,本申请实施例可以将预设时间长度除以多个时间范围的数量,得到相邻时间范围的起始时间的间隔时间,从而在确定第一个时间范围的起始时间为预设起始时间(例如第0个周期)的情况下,确定第二个时间范围的起始时间与第一个时间范围的起始时间相差上述间隔时间,得到第二个时间范围的起始时间,并将第二个时间范围的时间长度配置为预设时间长度,得到第二个时间范围;在确定第二个时间范围的起始时间的情况下,确定第三个时间范围的起始时间与第二个时间范围的起始时间相差上述间隔时间,得到第三个时间范围的起始时间,并将第三个时间范围的时间长度配置为预设时间长度,得到第三个时间范围;以此类推,得到各个时间范围。
在一个示例中,以预设时间长度为10000个周期、预设起始时间为第0个周期、多个时间范围的数量为4个为例,则可确定第一个时间范围为第0个周期至第10000个周期;从而,将预设时间长度(10000)除以多个时间范围的数量(4),得到相邻时间范围的起始时间的间隔时间为2500个周期;进而,在第一个时间范围的起始时间(第0个周期)的基础上,加上2500个周期,得到第二个时间范围的起始时间为第2500个周期,并为第二个时间范围配置10000个周期的时间长度,得到第二个时间范围为第2500个周期至第12500个周期;同理,在第二个时间范围的起始时间(第2500个周期)的基础上,加上2500个周期,得到第三个时间范围的起始时间为第5000个周期,并为第三个时间范围配置10000个周期的时间长度,得到第三个时间范围为第5000个周期至第15000个周期;同理,在第三个时间范围的起始时间(第5000个周期)的基础上,加上2500个周期,得到第四个时间范围的起始时间为第7500个周期,并为第四个时间范围配置10000个周期的时间长度,得到第四个时间范围为第7500个周期至第17500个周期。
在进一步的可选实现中,本申请实施例可以为多个时间范围配置多个计数器,且一个时间范围对应配置一个计数器,一个计数器用于在对应的时间范围内计数有效事务层负载包的数量。例如,在上述的4个时间范围的示例中,可以配置4个计数器,比如第一个计数器可以对第一个时间范围内监测的有效事务层负载包的数量进行计数,第二个计数器可以对第二个时间范围内监测的有效事务层负载包的数量进行计数,第三个计数器可以对第三个时间范围内监测的有效事务层负载包的数量进行计数,第四个计数器可以对第四个时间范围内监测的有效事务层负载包的数量进行计数,从而4个计数器的计数值可形成4个有效事务层负载包数量。
例如,在上述示例中,事务层在第0至第10000个周期内传输的有效事务层负载包的数量,会被第一个计数器进行计数记录;事务层在第2500到第12500个周期内传输的有效事务层负载包的数量,会被第二个计数器计数记录;事务层在第5000个周期到第15000个周期内传输的有效事务层负载包的数量,会被第三个计数器计数记录;事务层在第7500到第17500个周期内的传输的有效事务层负载包的数量,会被第四个计数器计数记录。
可以看出,本申请实施例以周期为单位,配置各个计数器在对应的时间范围内,对事务层传输的有效事务层负载包进行计数,同时,配置各个计数器对应的时间范围存在部分重叠的时间(比如部分重叠的周期),可以在提供一个冗余量的情况下,保障本申请实施例提供的物理层的链路模式降低机制、链路模式提升机制的准确性。
本申请实施例还提供一种IO设备(例如PICE设备等),以实现本申请实施例提供的功耗控制方法。下文描述内容可与上文描述内容相互对应参照。
作为可选实现,图7示例性的示出了本申请实施例提供的IO设备的示例图,结合图1和图7所示,IO设备可以包括:应用层110、事务层130、数据链路层140和物理层150;
以及,监测模块710,用于在IO设备的数据传输状态下,监测事务层在多个时间范围传输的有效事务层负载包的数量,得到多个有效事务层负载包数量;
模式确定模块720,用于根据所述多个有效事务层负载包数量,确定物理层与所述多个有效事务层负载包数量相匹配的目标链路模式;其中,物理层具有数据传输能力不同的多个链路模式,且所述多个链路模式的数据传输能力与功耗呈正相关关系;
模式调整模块730,用于将物理层的链路模式调整为所述目标链路模式。
其中,监测模块710、模式确定模块720、和模式调整模块730可以是IO设备中设置的电路模块,本申请实施例对于监测模块710、模式确定模块720、和模式调整模块730的设置位置并不设限。
在可选实现中,监测模块710可以在多个时间范围,监测事务层和数据链路层之间传输的事务层负载包;例如,对事务层和数据链路层的传输接口所经过的事务层负载包进行监测;从而对监测的事务层负载包进行有效性判断(即判断监测的事务层负载包是否为有效事务层负载包),并且在判断事务层负载包有效时(即事务层负载包为有效事务层负载包时),将对应时间范围的有效事务层负载包数量进行增加。
作为可选实现,监测模块710可以包括有效性判断逻辑、以及与多个时间范围对应的多个计数器。
有效性判断逻辑,用于在多个时间范围,对事务层传输的事务层负载包进行有效性判断(即判断事务层传输的事务层负载包是否为有效事务层负载包);并在判断事务层传输的事务层负载包为有效事务层负载包时,使对应时间范围的计数器所计数的有效事务层负载包数量进行增加。例如,在任一时间范围内,如果每监测到事务层传输一个事务层负载包,则有效性判断逻辑可以判断事务层负载包是否为有效事务层负载包,如果为有效事务层负载包,则将该时间范围对应的计数器的计数值加一,从而在该时间范围结束时,该时间范围对应的计数器的计数值可以表示该时间范围的有效事务层负载包数量。
在可选实现中,模式确定模块720可以包括比较器。
例如,在降低链路模式的机制下,比较器可比对多个有效事务层负载包数据量是否均小于上一链路模式对应的有效数据量阈值;即在物理层的当前链路模式不为数据传输能力最低的链路模式时,比较器可比对多个有效事务层负载包数据量是否均小于上一链路模式对应的有效数据量阈值;从而在比较器的比对结果为是时,产生上一链路模式为目标链路模式的指示信号,以指示模式调整模块730将物理层的链路模式调整为上一链路模式。
例如,在提升链路模式的机制下,比较器可比对多个有效事务层负载包数据量是否均处于当前链路模式对应的有效数据量最大值的边缘;即在物理层的当前链路模式不为数据传输能力最高的链路模式时,比较器可比对多个有效事务层负载包数据量是否均处于当前链路模式对应的有效数据量最大值的边缘;从而在比较器的比对结果为是时,产生下一链路模式为目标链路模式的指示信号,以指示模式调整模块730将物理层的链路模式调整为下一链路模式。
在可选实现中,模式调整模块730可以是IO设备中具有链路协商功能的电路模块,以通过链路协商过程与对端IO设备进行链路协商,从而实现将物理层的链路模式调整为目标链路模式。
需要说明的是,监测模块、模式确定模块、和模式调整模块的具体功能可以结合参照前文功耗控制方法相应部分的内容,此处不再展开。
作为一个实现示例,以设置4个时间范围为例,图8示例性的示出了本申请实施例提供的功耗控制方法的实现示例图,如图8所示,计数器811可对事务层在第0至第10000个周期内传输的有效事务层负载包(例如有效TLP)进行数量计数;计数器812可对事务层在第2500到第12500个周期内传输的有效事务层负载包进行数量计数;计数器813可对事务层在第5000个周期到第15000个周期内传输的有效事务层负载包进行数量计数;计数器814可对事务层在第7500到第17500个周期内传输的有效事务层负载包进行数量计数;
从而,计数器811、812、813和814完成计数后,各个计数器的计数值可以导入比较器821(也可以是将计数器811、812、813和814计数的有效事务层负载包数量转换为有效事务层负载包数据量之后,再导入比较器821);进而由比较器821进行比较,从而得到目标链路模式的指示信号。比较器的比较过程和实现方式可以参照前文相应部分的描述,此处不再展开。
本申请实施例还提供一种计算机,例如终端设备或者服务器设备,该计算机可以包括本申请实施例提供的具有功耗控制功能的IO设备,例如具有功耗控制功能的PCIE设备。
上文描述了本申请实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本申请实施例披露、公开的实施例方案。
虽然本申请实施例披露如上,但本申请并非限定于此。任何本领域技术人员,在不脱离本申请的精神和范围内,均可作各种更动与修改,因此本申请的保护范围应当以权利要求所限定的范围为准。
Claims (20)
1.一种IO设备的功耗控制方法,其特征在于,包括:
在IO设备的数据传输状态下,监测事务层在多个时间范围传输的有效事务层负载包的数量,得到多个有效事务层负载包数量;
根据所述多个有效事务层负载包数量,确定物理层与所述多个有效事务层负载包数量相匹配的目标链路模式;其中,物理层具有数据传输能力不同的多个链路模式,且所述多个链路模式的数据传输能力与功耗呈正相关关系;
将物理层的链路模式调整为所述目标链路模式。
2.根据权利要求1所述的方法,其特征在于,所述根据所述多个有效事务层负载包数量,确定物理层与所述多个有效事务层负载包数量相匹配的目标链路模式包括:
如果物理层的当前链路模式不为数据传输能力最低的链路模式,根据所述多个有效事务层负载包数量,判断物理层是否满足链路模式降低条件;
若满足链路模式降低条件,确定当前链路模式的上一链路模式为目标链路模式;其中,当前链路模式的数据传输能力高于上一链路模式。
3.根据权利2所述的方法,其特征在于,所述根据所述多个有效事务层负载包数量,判断物理层是否满足链路模式降低条件包括:
将所述多个有效事务层负载包数量分别转换为有效事务层负载包数据量,得到多个有效事务层负载包数据量;
根据上一链路模式在一个时间范围的时间长度所对应的有效数据量阈值、以及所述多个有效事务层负载包数据量,判断所述多个有效事务层负载包数据量是否均小于上一链路模式对应的有效数据量阈值;
若是,则确定满足链路模式降低条件;若否,则确定不满足链路模式降低条件。
4.根据权利要求1所述的方法,其特征在于,所述根据所述多个有效事务层负载包数量,确定物理层与所述多个有效事务层负载包数量相匹配的目标链路模式包括:
如果物理层的当前链路模式不为数据传输能力最高的链路模式,根据所述多个有效事务层负载包数量,判断物理层是否满足链路模式提升条件;
若满足链路模式提升条件,确定当前链路模式的下一链路模式为目标链路模式,其中,当前链路模式的数据传输能力低于下一链路模式。
5.根据权利要求4所述的方法,其特征在于,所述根据所述多个有效事务层负载包数量,判断物理层是否满足链路模式提升条件包括:
将所述多个有效事务层负载包数量分别转换为有效事务层负载包数据量,得到多个有效事务层负载包数据量;
根据当前链路模式在一个时间范围的时间长度所对应的有效数据量最大值、以及所述多个有效事务层负载包数据量,判断所述多个有效事务层负载包数据量是否均处于当前链路模式对应的有效数据量最大值的边缘;
若是,则确定满足链路模式提升条件;若否,则确定不满足链路模式提升条件。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述多个链路模式包括物理层的多个链路速率模式;所述多个链路速率模式对应数据传输协议的多个版本,且数据传输协议的版本与数据传输速率呈正相关关系;
其中,所述多个链路模式的数据传输能力包括所述多个链路速率模式的数据传输速率,且所述多个链路速率模式的数据传输速率与功耗呈正相关关系。
7.根据权利要求6所述的方法,其特征在于,所述目标链路模式包括目标链路速率模式;所述将物理层的链路模式调整为所述目标链路模式包括:
在满足链路速率模式的速率调整条件时,通过状态机将链路的数据传输速率调整为目标链路速率模式所对应的数据传输速率。
8.根据权利要求7所述的方法,其特征在于,所述满足链路速率模式的速率调整条件包括如下至少一项:
禁止继续向对端IO设备发送数据,所述对端IO设备与所述IO设备通过链路连接;
禁止向对端IO设备反馈事务层负载包的接收数量指示信号;
确认已发送的事务层负载包已收到确定的链路层管理包;
确认已发送的读请求对应的事务层负载包已收到响应信号。
9.根据权利要求1-5任一项所述的方法,其特征在于,所述多个链路模式包括物理层的多个链路带宽模式;不同链路带宽模式对应物理层的不同通道数量,且链路带宽模式对应的通道数量决定链路带宽模式的带宽;
其中,所述多个链路模式的数据传输能力包括所述多个链路带宽模式的带宽,且所述多个链路带宽模式的带宽与功耗呈正相关关系。
10.根据权利要求9所述的方法,其特征在于,所述目标链路模式包括目标链路带宽模式;所述将物理层的链路模式调整为所述目标链路模式包括:
如果目标链路带宽模式的带宽低于当前链路带宽模式,确定目标链路带宽模式相对于当前链路带宽模式的待关闭通道以及维持通道,并向对端IO设备发送降低带宽的链路层管理包;
若接收到对端IO设备的响应的链路层管理包,控制所述维持通道继续工作;
在所述维持通道发送SKP信令时,控制待关闭通道发送EIOS信号,以使得对端IO设备基于SKP信令与IO设备重新对齐所述维持通道,并使得对端IO设备基于EIOS信号将待关闭通道置于空闲状态。
11.根据权利要求9所述的方法,其特征在于,所述目标链路模式包括目标链路带宽模式;所述将物理层的链路模式调整为所述目标链路模式包括:
如果目标链路带宽模式的带宽高于当前链路带宽模式,确定目标链路带宽模式相对于当前链路带宽模式的新增通道,并向对端IO设备发送提升带宽的链路层管理包;
若接收到对端IO设备的响应的链路层管理包,维持当前链路带宽模式的原通道继续工作,并与对端IO设备完成新增通道的TS握手;
在原通道发送SKP信令时,控制新增通道发送SKP信令,以使对端IO设备基于原通道和新增通道发送的SKP信令,与IO设备对齐原通道和新增通道。
12.根据权利要求1所述的方法,其特征在于,所述监测事务层在多个时间范围传输的有效事务层负载包的数量,得到多个有效事务层负载包数量包括:
针对多个时间范围中的任一个时间范围,在该时间范围内,每监测到事务层传输一个事务层负载包,则判断事务层负载包是否为有效事务层负载包;其中,有效事务层负载包符合数据传输协议的格式和数据长度;若事务层负载包为有效事务层负载包,则将该时间范围监测的有效事务层负载包数量加一。
13.根据权利要求12所述的方法,其特征在于,所述判断事务层负载包是否为有效事务层负载包包括:
判断事务层负载包是否符合数据传输协议的格式和数据长度对应的有效条件,若是,则事务层负载包为有效事务层负载包,若否,则事务层负载包为无效事务层负载包;
其中,所述有效条件包括如下至少一项:
事务层负载包的包头中的格式字段的长度满足预设字段长度;
物理层占位符和CRC占位符的长度满足预设占位符长度;
事务层负载包的包头中的长度字段对应的负载长度有效。
14.根据权利要求1所述的方法,其特征在于,所述方法还包括:
配置多个时间范围,其中,所述多个时间范围中各个时间范围的时间长度相同,且各个时间范围存在部分重叠的时间。
15.根据权利要求14所述的方法,其特征在于,所述时间范围包括起始时间和终止时间;所述配置多个时间范围包括:
将预设起始时间作为第一个时间范围的起始时间,并将第一个时间范围的时间长度配置为预设时间长度,得到第一个时间范围;
根据预设时间长度以及所述多个时间范围的数量,确定相邻时间范围的起始时间的间隔时间;
基于相邻时间范围的起始时间相距所述间隔时间,分别确定除第一个时间范围外的其他时间范围的起始时间;
基于其他时间范围的起始时间,将其他时间范围的时间长度分别配置为预设时间长度,得到其他时间范围。
16.根据权利要求14-15任一项所述的方法,其特征在于,所述时间范围的时间以IO设备的时钟周期为单位;所述方法还包括:
为多个时间范围配置多个计数器,且一个时间范围对应配置一个计数器,所述计数器用于在对应的时间范围内计数有效事务层负载包数量。
17.一种IO设备,其特征在于,包括:
监测模块,用于在IO设备的数据传输状态下,监测事务层在多个时间范围传输的有效事务层负载包的数量,得到多个有效事务层负载包数量;
模式确定模块,用于根据所述多个有效事务层负载包数量,确定物理层与所述多个有效事务层负载包数量相匹配的目标链路模式;其中,物理层具有数据传输能力不同的多个链路模式,且所述多个链路模式的数据传输能力与功耗呈正相关关系;
模式调整模块,用于将物理层的链路模式调整为所述目标链路模式。
18.根据权利要求17所述的IO设备,其特征在于,所述模式确定模块包括比较器;
所述比较器,用于在物理层的当前链路模式不为数据传输能力最低的链路模式时,比对多个有效事务层负载包数量对应的多个有效事务层负载包数据量,是否均小于上一链路模式对应的有效数据量阈值;在比对结果为是时,产生上一链路模式为目标链路模式的指示信号;
或者,在物理层的当前链路模式不为数据传输能力最高的链路模式,比对多个有效事务层负载包数据量是否均处于当前链路模式对应的有效数据量最大值的边缘;在比对结果为是时,产生下一链路模式为目标链路模式的指示信号。
19.根据权利要求17所述的IO设备,其特征在于,所述监测模块包括:有效性判断逻辑、以及与多个时间范围对应的多个计数器;
所述有效性判断逻辑,用于在多个时间范围,判断事务层传输的事务层负载包是否为有效事务层负载包;并在判断事务层传输的事务层负载包为有效事务层负载包时,使对应时间范围的计数器所计数的有效事务层负载包数量进行增加。
20.一种计算机设备,其特征在于,包括如权利要求17-19任一项所述的IO设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410216940.8A CN118012255A (zh) | 2024-02-27 | 2024-02-27 | 一种io设备的功耗控制方法、io设备及计算机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410216940.8A CN118012255A (zh) | 2024-02-27 | 2024-02-27 | 一种io设备的功耗控制方法、io设备及计算机 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118012255A true CN118012255A (zh) | 2024-05-10 |
Family
ID=90953921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410216940.8A Pending CN118012255A (zh) | 2024-02-27 | 2024-02-27 | 一种io设备的功耗控制方法、io设备及计算机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118012255A (zh) |
-
2024
- 2024-02-27 CN CN202410216940.8A patent/CN118012255A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9830292B2 (en) | Architected protocol for changing link operating mode | |
US8972640B2 (en) | Controlling a physical link of a first protocol using an extended capability structure of a second protocol | |
US10180927B2 (en) | Device, system and method for communication with heterogeneous physical layers | |
JP6243469B2 (ja) | 低電力物理ユニットのロード/ストア通信プロトコルへの提供 | |
US8856573B2 (en) | Setting a number (N) of fast training sequences (FTS) automatically to an optimal value | |
US8638783B2 (en) | Optimized link training and management mechanism | |
US7137018B2 (en) | Active state link power management | |
US7349973B2 (en) | Data transfer control device, electronic equipment, and data transfer control method | |
US7793030B2 (en) | Association of multiple PCI express links with a single PCI express port | |
US20150089110A1 (en) | Providing A Consolidated Sideband Communication Channel Between Devices | |
US8924612B2 (en) | Apparatus and method for providing a bidirectional communications link between a master device and a slave device | |
US20130227184A1 (en) | Low latency interconnect bus protocol | |
JP2013510375A (ja) | データ通信のためのシステム、方法、および装置 | |
EP3671476A1 (en) | Alternate physical layer power mode | |
US20090185580A1 (en) | Enabling flexibility of packet length in a communication protocol | |
CN118012255A (zh) | 一种io设备的功耗控制方法、io设备及计算机 | |
CN111352893B (zh) | 一种fpga和stm32单片机的通信方法 | |
TW202411856A (zh) | 用於互連協定的通道同步的方法、控制器以及儲存裝置 | |
CN117955583A (zh) | 用于互连协议的通道同步的方法、控制器以及存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |