admin管理员组文章数量:1026989
PCIe功耗管理(三)ASPM机制
通常情况下,处于D0状态的设备会保持其Upstream链路处于L0状态;而ASPM为D0状态定义了一种协议,可以将链路置于低功耗状态,同时指示另一端同样及那个第功耗。ASPM可以动态降低链路功耗,实现比只有软件控制更细致的电源管理。
相关寄存器
Link Capabilities Register寄存器:
寄存器域 | 描述 |
Supported Link Speeds | 0001b:支持2.5GT/s 0010b:支持2.5/5.0GT/s; 其他保留; |
Maximum Link Width | 000000b:保留; 000001b:x1; 000010b:x2; 000100b:x4; 001000b:x8; 001100b:x12; 010001b:x16; 100001b:x32; |
Active State Power Management(ASPM)Support | 00b:保留 01b:支持L0s; 10b:保留; 11b:支持L0s和L1; |
L0s Exit Latency | 000b:小于64ns; 001b:64~128ns; 010b:128~256ns; 011b:256~512ns; 100b:512ns~1us; 101b:1~2us; 110b:2~4us; 111b:大于4us; |
L1 Exit Latency | 000b:小于1us; 001b:1~2us; 010b:2~4us; 011b:4~8us; 100b:8~16us; 101b:16~32us; 110b:32~64us; 111b:大于64us; |
Clock Power Management | 1b:表示在L1和L2/L3 Ready状态下,可通过CLKREQ#机制移除时钟; 0n:表示在这些状态不能移除时钟 |
Surprise Down Error Reporting Capable | 当作为下行端口且支持检测和上报Surprise Down错误则需要置为1;否则置为0; |
Data Link Layer Link Active Reporting Capable | 当下行端口支持上报DL_Active状态和管理状态机,需要置为1;其他置为0; |
Link Bandwidth Notification Capability | 1:支持Link Bandwidth Notification状态和中断机制; |
Port Number | 指示PCI Express Link的Port Number; |
Link Control Register寄存器:
寄存器域 | 描述 |
Active State Power Management (ASPM) Control | 00b:关闭ASPM; 01b:使能L0s; 10b:使能L1; 11b:使能L0s和L1; |
RsvdP | 保留域 |
Read Completion Boundary(RCB) | 0:64bytes 1:128bytes |
Link Disable | 当设置为1,将Link LTSSM转入Disabled状态 |
L0s ASPM状态
进入L0s ASPM状态
如果在不超过7us时间(实际时间是由系统特定的)内满足定义的idle条件,则使能L0s的端口将其传输通道置于L0s状态;
EP和RC定义的idle条件:
- 没有TLP需要传输或者所有FC都不足以传输TLP;
- 没有DLLP需要传输;
退出L0s ASPM状态
当有TLP或者DLLP需要发送的时候,设备可以发起L0s的退出;
L1 ASPM状态
同意进入L1 ASPM流程
L1 ASPM进入条件
- credits足够发送最大数据包(TLP);
- 接收到所有发送TLP得ACK,满足重发条件情况下也需要等到重发完毕;
L1 ASPM进入其他规则
- 当决定进入低功耗状态,DL层不再接收TL层的TLP;当在进入L1过程中,需要先进入L1;再退出到L0,发送TLP;
拒绝进入L1 ASPM流程
退出L1 ASPM
当有TLP或者DLLP需要发送的时候,设备可以发起L1的退出;
PCIe功耗管理(三)ASPM机制
通常情况下,处于D0状态的设备会保持其Upstream链路处于L0状态;而ASPM为D0状态定义了一种协议,可以将链路置于低功耗状态,同时指示另一端同样及那个第功耗。ASPM可以动态降低链路功耗,实现比只有软件控制更细致的电源管理。
相关寄存器
Link Capabilities Register寄存器:
寄存器域 | 描述 |
Supported Link Speeds | 0001b:支持2.5GT/s 0010b:支持2.5/5.0GT/s; 其他保留; |
Maximum Link Width | 000000b:保留; 000001b:x1; 000010b:x2; 000100b:x4; 001000b:x8; 001100b:x12; 010001b:x16; 100001b:x32; |
Active State Power Management(ASPM)Support | 00b:保留 01b:支持L0s; 10b:保留; 11b:支持L0s和L1; |
L0s Exit Latency | 000b:小于64ns; 001b:64~128ns; 010b:128~256ns; 011b:256~512ns; 100b:512ns~1us; 101b:1~2us; 110b:2~4us; 111b:大于4us; |
L1 Exit Latency | 000b:小于1us; 001b:1~2us; 010b:2~4us; 011b:4~8us; 100b:8~16us; 101b:16~32us; 110b:32~64us; 111b:大于64us; |
Clock Power Management | 1b:表示在L1和L2/L3 Ready状态下,可通过CLKREQ#机制移除时钟; 0n:表示在这些状态不能移除时钟 |
Surprise Down Error Reporting Capable | 当作为下行端口且支持检测和上报Surprise Down错误则需要置为1;否则置为0; |
Data Link Layer Link Active Reporting Capable | 当下行端口支持上报DL_Active状态和管理状态机,需要置为1;其他置为0; |
Link Bandwidth Notification Capability | 1:支持Link Bandwidth Notification状态和中断机制; |
Port Number | 指示PCI Express Link的Port Number; |
Link Control Register寄存器:
寄存器域 | 描述 |
Active State Power Management (ASPM) Control | 00b:关闭ASPM; 01b:使能L0s; 10b:使能L1; 11b:使能L0s和L1; |
RsvdP | 保留域 |
Read Completion Boundary(RCB) | 0:64bytes 1:128bytes |
Link Disable | 当设置为1,将Link LTSSM转入Disabled状态 |
L0s ASPM状态
进入L0s ASPM状态
如果在不超过7us时间(实际时间是由系统特定的)内满足定义的idle条件,则使能L0s的端口将其传输通道置于L0s状态;
EP和RC定义的idle条件:
- 没有TLP需要传输或者所有FC都不足以传输TLP;
- 没有DLLP需要传输;
退出L0s ASPM状态
当有TLP或者DLLP需要发送的时候,设备可以发起L0s的退出;
L1 ASPM状态
同意进入L1 ASPM流程
L1 ASPM进入条件
- credits足够发送最大数据包(TLP);
- 接收到所有发送TLP得ACK,满足重发条件情况下也需要等到重发完毕;
L1 ASPM进入其他规则
- 当决定进入低功耗状态,DL层不再接收TL层的TLP;当在进入L1过程中,需要先进入L1;再退出到L0,发送TLP;
拒绝进入L1 ASPM流程
退出L1 ASPM
当有TLP或者DLLP需要发送的时候,设备可以发起L1的退出;
本文标签: PCIe功耗管理(三)ASPM机制
版权声明:本文标题:PCIe功耗管理(三)ASPM机制 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/IT/1694674121a254907.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论