既然有了前面我们讲的基于三种资源(ID、Memory、IO)的两种路由方式ID路由和地址路由,为什么还要有个隐式路由(Implicit Routing,也叫模糊路由)呢?

一是因为PCI总线有一些边带信号来传送信息和控制,在PCIe中采用消息(Message)机制来实现。PCIe Spec规定消息的路由方式为隐式路由。

二是在系统中,有一些报文是由EP发给RC的或者RC发出的广播报文,这些广播报文可以传递到系统中每一个设备,这时候就不需要按照ID和地址路由来区分设备了。

所谓隐式也就是这个意思,有潜规则的传播 :)。我个人更喜欢把Implicit叫做隐式而不是模糊。

EP收到隐式路由的报文,如果是RC发出的广播报文(通常是RC发出的)或者本地报文(Local – Terminate at Receiver,通常是INTx消息),EP接收此报文。

Switch的处理则分上下行。如果上行端口收到RC的广播报文,则讲此报文发给所有下行端口。如果下行口收到发向RC的消息报文,则将此报文直接转发到上行端口,送给RC;如果收到本地消息报文,则接收此报文,不再向上或向下传播。

哪些消息是需要隐式路由的呢?如下:(注:不需要特意去记忆或理解这些,有个印象就好)

  • INTx Interrupt Signaling        

          中断信号。PCI里面有INTx的信号

  •  Power Management           

           电源管理用

  • Error Signaling                        

          错误相关的信号

  • Locked Transaction Support          

          支持Lock事务

  • Slot Power Limit Support       

          功率限制

  • Vendor-Defined Messages            

          厂商自定义

  • LTR Messages                          

          Latency Tolerance Reporting

  • OBFF Messages                       

          Optimized Buffer Flush/Fill

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注