首页 理论教育PCIe设备的D-State详解

PCIe设备的D-State详解

【摘要】:当PCIe设备处于D0active状态时,PCIe设备处于正常工作模式,并没有任何节电措施。对于PCIe设备,从D3hot状态返回D0uninitializated状态的过程相当于热复位。当PCIe设备的Vcc电源被移除时,PCIe设备无论处于何种状态,都将进入D3cold状态。

PCIe设备的D-State由D0、D1、D2和D3状态组成。其中D0状态由D0uninitializated和D0active两个子状态组成,而D3状态由D3hot和D3cold两个子状态组成。

1.D0状态

PCIe设备必须支持D0状态,该状态由D0uninitializated和D0active两个子状态组成。当PCIe设备处于D0uninitializated状态时,该PCIe设备并没有被系统软件使能,此时该PCIe设备仅能接收配置读写请求TLP,不能主动发出其他TLP。此时该PCIe设备配置寄存器的Command寄存器为复位值0x00。此时虽然PCIe设备已经被加电,但是并不能正常使用。

当PCIe设备处于D0active状态时,PCIe设备处于正常工作模式,并没有任何节电措施。但是PCIe设备仍然可以使用ASPM机制,将链路状态迁移到L0s或者L1状态,以降低功耗。值得注意的是,ASPM机制与PCI PM机制是独立的。

当PCIe设备进行复位后,该设备将首先进入D0uninitializated状态。系统软件通过修改PMC-SR寄存器的Power State字段,也可以使设备从D3hot状态迁移到该状态。值得注意的是D3cold状态迁移到该状态的过程与复位操作等效。当系统软件改写Command寄存器的状态位使能PCIe设备后,该设备从D0uninitializated迁移到D0active状态。

2.D1和D2状态

D1和D2状态分别为PCIe设备的轻度和重度休眠状态。这两个状态为PCIe设备的可选状态,PCIe设备处于D1状态时的功耗高于D2状态。(www.chuimin.cn)

PCIe设备处于这两个状态时,除了PME消息之外,不能主动发送其他TLP;除了接收配置请求TLP外,不能接收其他TLP。当PCIe设备处于这两种状态时,可以向RC发送PME消息,通知系统软件该PCIe设备进入休眠状态。当PCIe设备进入D1或者D2状态时,PCIe链路将进入L1状态。PCIe设备可以从D1和D2状态直接返回到D0active状态。

3.D3状态

PCIe设备必须支持D3状态,D3状态由D3hot和D3cold两个子状态组成。PCIe设备处于D3hot状态与处于D1/D2状态时的功能类似,只是PCIe设备只能从D3hot状态返回D0uninitializated状态,而不能返回D0active状态。对于PCIe设备,从D3hot状态返回D0uninitializated状态的过程相当于热复位。

当PCIe设备的Vcc电源被移除时,PCIe设备无论处于何种状态,都将进入D3cold状态。值得注意的是一个PCIe设备使用两种电源Vcc和Vaux,Vcc电源被移除并不意味着PCIe设备被完全下电。

有些PCIe设备在处于D3cold状态时仍然可以发出PME消息,此时这个PCIe设备负责发送PME消息的功能模块必须使用Vaux而不是Vcc进行供电。