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条件:

  1. 没有TLP需要传输或者所有FC都不足以传输TLP;
  2. 没有DLLP需要传输;

退出L0s ASPM状态

    当有TLP或者DLLP需要发送的时候,设备可以发起L0s的退出;

 L1 ASPM状态

同意进入L1 ASPM流程

L1 ASPM进入条件

  1. credits足够发送最大数据包(TLP);
  2. 接收到所有发送TLP得ACK,满足重发条件情况下也需要等到重发完毕;

L1 ASPM进入其他规则

  1. 当决定进入低功耗状态,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条件:

  1. 没有TLP需要传输或者所有FC都不足以传输TLP;
  2. 没有DLLP需要传输;

退出L0s ASPM状态

    当有TLP或者DLLP需要发送的时候,设备可以发起L0s的退出;

 L1 ASPM状态

同意进入L1 ASPM流程

L1 ASPM进入条件

  1. credits足够发送最大数据包(TLP);
  2. 接收到所有发送TLP得ACK,满足重发条件情况下也需要等到重发完毕;

L1 ASPM进入其他规则

  1. 当决定进入低功耗状态,DL层不再接收TL层的TLP;当在进入L1过程中,需要先进入L1;再退出到L0,发送TLP;

拒绝进入L1 ASPM流程

 退出L1 ASPM

 当有TLP或者DLLP需要发送的时候,设备可以发起L1的退出;

本文标签: PCIe功耗管理(三)ASPM机制