当PCIe设备处于D0active状态时,PCIe设备处于正常工作模式,并没有任何节电措施。对于PCIe设备,从D3hot状态返回D0uninitializated状态的过程相当于热复位。当PCIe设备的Vcc电源被移除时,PCIe设备无论处于何种状态,都将进入D3cold状态。......
2023-10-20
PCIe总线完成流量控制的初始化之后,Current节点、Upstream节点和Downstream节点通过发送UpdateFC-P、UpdateFC-NP和UpdateFC-Cpl报文进行流量控制。
1.Upstream节点向Current节点发送报文
Upstream节点向Current节点发送报文时,需要设置一些参数。
(1)CREDITS_CONSUMED,简称为CC。该参数存放Upstream节点已经发送了多少个FC Unit,不同数据缓存的FC Unit的大小见表9-3。在PCIe设备初始化时该参数为0,之后PCIe设备每发送一个FC Unit,该值将加1。PCIe总线规定
CC=(CC+Increment)mod 2Field Size
其中Incre ment指发送的TLP含有的FC Unit个数。其中PH、NPH和CplH的Field Size参数为8,而PD、NPD和CplD的Fie ld Size参数为12。
(2)CREDIT_LIMIT,简称为CL。该参数存放当前节点的Credit,在VC初始化时,该参数通过收到的InitFC1报文赋值。此后每收到UpdateFC报文时,Current节点将此参数与UpdateFC报文中的Credit比较,如果结果不等,则使用UpdateFC报文中的Credit对此参数重新赋值。
在Upstream节点中,设置了一个Credit检查逻辑(Transmitter Gating Function),用来判断在Current节点中是否有足够的缓存接收即将发送的TLP。如果Upstream节点没有足够的Credit时,则不能向对端设备发送这个TLP。
Upstream节点检查缓存的算法如下。首先将CUMULATIVE_CREDITS_REQUIRED参数简称为CR,而CR=CC+<PTLP(即将发送TLP所需要的Credit)>。当以下公式
(CL-CR)Mod2Field Size≤2Field Size/2成立时,表示Upstream节点可以向Current节点发送TLP报文。
使该公式成立有一个额外需求,即每次发送的Credit小于2Field Size/2[65],此时CL不可能比CC大2Field Size/2。当(CL-CR)Mod 2Field Size不大于2Field Size/2时,表示Current节点有足够的缓冲接收来自Upstream节点的报文;如果(CL-CR)Mod 2Field Size大于2Field Size/2时,运算结果是一个负数,表示Current节点没有足够的缓冲接收来自Upstream节点的报文。
2.Current节点从Upstream节点接收报文(www.chuimin.cn)
Current节点接收来自Upstream节点发送报文时,也需要设置一些参数。
(1)CREDITS_ALLOCATED,简称为CA。该参数存放Current节点一共允许Upstream节点发送多少个FC Unit,不同数据缓存的FC Unit初始化后使用的最小值见表9-3。在初始化时该参数为Current节点接收缓冲的大小,之后Current节点每分配一个FC Unit,该值将加
1。PCIe总线规定:
CA=(CA+Incre ment)mod 2Field Size其中Incre ment指Current节点新分配的FC Unit个数。PH、NPH和CplH的Field Size参数为8,而PD、NPD和CplD的Field Size参数为12。Current节点使用UpdateFC DLLP将CA传递给Upstream节点,之后Upstream节点使用该值更新CL参数。
(2)CREDIT_RECEIVED,简称为CRCV。该参数存放Current节点一共接收了多少个FC Unit。在初始化时该参数为0,之后Current节点每接收一个FC Unit,该值将加1。PCIe总线规定:
CRCV=(CRCV+Increment)mod 2Field Size
其中Increment指Current节点新接收的FC Unit个数。
Current节点可以设置一个逻辑检查部件,检查来自Upstream节点的TLP报文是否会造成CA的溢出。这个逻辑检查部件是一个可选件,因为Upstream节点在发送TLP时,已经保证了Current节点的CA不会溢出。当以下公式
(CA-CRCV)Mod 2Field Size≥2Field Size/2
成立时,Current节点认为CA溢出,此时Current节点将抛弃来自Upstream节点的TLP,而并不改变CRCV的值,同时释放为这个TLP预先分配的缓存空间。
有关PCI Express体系结构导读的文章
当PCIe设备处于D0active状态时,PCIe设备处于正常工作模式,并没有任何节电措施。对于PCIe设备,从D3hot状态返回D0uninitializated状态的过程相当于热复位。当PCIe设备的Vcc电源被移除时,PCIe设备无论处于何种状态,都将进入D3cold状态。......
2023-10-20
此外PCI/PCI-X和PCIe设备还扩展了0x40~0xFF这段配置空间,在这段空间主要存放一些与MSI或者MSI-X中断机制和电源管理相关的Capability结构。PCIe设备使用的扩展配置空间最大为4KB,在PCIe总线的扩展配置空间中,存放PCIe设备所独有的一些Capability结构,而PCI设备不能使用这段空间。PCI-X和PCIe总线规范要求其设备必须支持Capabilities结构。......
2023-10-20
如果PCIe设备支持MSI机制,系统软件首先设置该设备MSI Capability结构的Message Address和Message Data字段。系统软件完成这些设置后,将置MSI Capability结构的MSI Enable位有效,使能该PCIe设备的MSI机制。此时某些PCIe设备的Multiple Message Enable字段可能会小于Multiple Message Capable字段。由上所述,在MPC8572处理器系统中,PCIe设备使用存储器写TLP传送MSI中断报文,这个存储器写TLP使用的地址为PCIe设备Capability结构的Message Address字段,而数据为Message Data~Message Data+Multiple Message Enable-1之间。MPC8572处理器也可以处理PCIe设备的MSI-X中断机制,本节对此不做进一步介绍。......
2023-10-20
PCIe设备进行Cold Reset时,所有使用Vcc进行供电的寄存器和PCIe端口逻辑将无条件进入初始状态。而PCIe总线将通过TS1和TS2序列对下游设备进行Hot Reset。系统软件填写某些寄存器时,PCIe设备将使用FLR方式进行复位。此时受到影响的PCIe设备需要使用FLR方式复位内部逻辑,以免造成对新分区的资源污染,并保护之前任务的运行结果。但是采用这种方式,与FLR方式相比,PCIe设备的初始化恢复时间较长。......
2023-10-20
TOLUD~4GB这段PCI总线地址空间主要映射和ICH相连的PCI设备地址空间,此外还包括EPBAR指向的空间,以及MCHBAR和DMIBAR指向的空间等。FSB Interrupts存储器空间与MSI中断机制相关,PCIe设备向这段存储器空间进行写操作时,MCH将这个写操作转换为FSB总线的Interrupt Message总线事务。DMI Interface负向译码空间被分为若干段,用来映射ICH使用的PCI总线地址空间。这些PCI设备的BAR空间被映射到这段空间。由以上说明可以发现与MCH连接的PCIe设备的访问延时小于与ICH连接中的PCIe设备。......
2023-10-20
图12-11 Capric卡的DMA写过程首先处理器填写Capric卡的WR_DMA_ADR、WR_DMA_SIZE和DCSR2寄存器,经过延时D0之后,这些命令陆续到达Capric卡。Capric卡收到处理器的DMA写请求后,将向RC连续发送存储器写TLP,并由RC将数据写入到主存储器。处理器收到MSI报文后,将执行中断处理程序,Capric卡的中断处理例程通过RC读取中断控制状态寄存器INT_REG,并结束整个DMA写操作。首先处理器填写Capric卡的寄存器启动DMA读。......
2023-10-20
PCIe设备必须支持L0s状态。L0s状态是一个低功耗状态,PCIe设备进入或者退出该状态不需要系统软件的干预,其状态转换由硬件控制完成。图8-13 L0s的接收状态机接收逻辑RX处于L0状态时,如果收到1个EIOS序列后,将进入Rx_L0s.Entry状态。接收逻辑RX在Rx_L0s.Idle状态中将持续监测接收链路,如果发现对端设备的发送逻辑TX退出“Electrical Idle”状态时,接收逻辑RX将进入Rx_L0s.FTS状态。......
2023-10-20
图11-5 IDO模型的优点这种拥塞也被称为HOLBlocking。在PCIe V2.1总线规范提出之前,PLX[81]公司已经使用类似IDO模型的技术以优化Switch的数据传送,即PLX-Specific Relaxed Ordering技术。在PEX8518中,每一个Ingress端口都为不同的TC设置了一个“PLX-Specific Relaxed Ordering”使能位,当该位为1时,当一个Ingress端口收到的TLPs发向的Egress端口不同,则没有序的要求;而Egress端口相同的TLPs必须按序进行。......
2023-10-20
相关推荐