有没有做租赁的网站做网站 宁波

当前位置: 首页 > news >正文

有没有做租赁的网站,做网站 宁波,电话约建设网站 客户,重庆餐饮加盟网站建设✨前言#xff1a; 在PCI Express (PCIe) 技术中#xff0c;数据包的路由方式对于确保信息能够高效、准确地传送至目标设备至关重要。PCIe定义了几种路由方式#xff0c;主要有以下几种。 #x1f31f;地址路由#xff08;Address Based Routing#xff09; 这是最基本…✨前言 在PCI Express (PCIe) 技术中数据包的路由方式对于确保信息能够高效、准确地传送至目标设备至关重要。PCIe定义了几种路由方式主要有以下几种。 地址路由Address Based Routing 这是最基本的路由方式PCIe设备利用目的地址信息来决定数据包的路由路径。目的地址通常包括目标设备的总线号、设备号和功能号。在经过每一个交换节点时基于这些信息来决定数据包是向下一个交换节点转发还是到达了最终目标。 ID路由ID Based Routing 在这种路由方式中每个PCIe设备或端点都有一个唯一的ID这个ID在数据包中用于识别目标设备。这种方式常用于结束点到结束点的直接信号传输在多点传输场景下尤其是在那些具有复杂拓扑结构的系统中ID路由可以非常有效。 隐式路由Implicit Routing 这种路由方式主要用于处理某些特定类型的数据包如功率管理事件或热管理事件。这些数据包不需要明确的目标地址因为它们通常由系统中的所有设备或者由特定处理这类事件的设备处理。隐式路由依赖于系统硬件和固件的内建规则来正确地处理和转发这些数据包。 具体采用哪一种路由方式是由TLP的类型所决定的如下表所示 注AtomicOp是PCIe Spec V2.1新增的内容有兴趣的可以自行阅读V2.1的相关内容。 注一般情况下Message都是使用模糊路由Implicitly Routing的但是也有PCIe设备厂商自定义的Message会使用地址路由或者ID路由。 可能有的人要有疑惑了既然Message可以使用地址路由或者ID路由为什么还要单独搞出来一个模糊路由呢原因很简单使用模糊路由可以广播Message到每一个设备采用其他的路由方式必须明确指定是哪一个设备。 那么PCIe中是如何来判断TLP的类型的呢又是如何判断其为Request还是Completion的呢实际上是通过TLP Header的Format和Type部分来确定的如下图所示 在PCI Express (PCIe) 架构中事务层数据包Transaction Layer Packets, TLPs是数据通信的基本单位。TLPs用于在设备间传输数据、内存读写请求以及控制信息。TLP的类型、是否为请求Request还是完成Completion报文等都通过TLP的头部信息来识别。 ⭐️TLP头部信息 TLP头部包含了多个字段其中一些关键字段用于指示TLP的类型以及它是请求还是完成报文 格式Format指示TLP头部的长度和布局不同类型的TLPs如内存读/写、I/O读/写、配置读/写等会使用不同的头部格式。 类型Type这是一个关键字段它直接指示了TLP是什么类型的数据包。例如内存读请求、内存写请求、I/O读写请求、配置读写请求或者是完成报文用于响应之前的某个请求。 请求者IDRequester ID在请求TLPs中这个字段指示了发起请求的设备。 目的IDDestination ID在完成TLPs中这个字段用于指示响应应当发送到哪个设备。 ⭐️区分请求和完成 通过类型Type字段区分TLP头部中的类型字段是区分TLP是请求还是完成报文的关键依据。例如内存读请求和内存写请求被明确标记为请求类型而完成报文则有其特定的标识符来指明是作为之前某个请求的响应。 格式字段辅助判断虽然格式字段主要描述的是头部的大小和布局但通过它与类型字段的组合可以更确切地识别TLP的具体类型和性质。 下面就跟着我来详细了解一下这三种路由 ✨一、ID Routing ID 路由ID Routing有的时候也被称为BDF路由即采用Bus Number、Device Number和Function Number来确定目标设备的位置。这是一种兼容PCI和PCI-X总线协议的路由方式主要用于配置请求Configuration Request的路由在PCIe总线中其还可以被用于Completion和Message的路由。 TLP的Header有3DW的和4DW的其中4DW的Header一般只用于Message中。使用ID路由的TLP Header以下两张图所示第一个为3DW Header第二个为4DW Header 对于Endpoint来说其只需要检查TLP Header中的BDF是否与自己的BDF一致如果一致则认为是发送给自己的否则便会忽略该TLP。 注采用ID路由的TLP Header中并未包含Requester的IDBDF那么Completer怎么确定Requester的位置呢实际上这个问题并不难回答因为ID路由主要用于配置请求和Completion偶尔也用于一些厂商自定义的Message。首先配置请求的Requester只能是Root所以不需要确定其位置再之Completion用于对其他路由方式的回应如地址路由中包含了Requester的BDF最后Message是Posted型的即其根本不需要Completion自然也就不需要Requester的BDF了。 注实际上PCIe是一种点对点Point-to-Point的通信方式即每个链路只能连接一个设备因此大部分情况下使用5bit的空间来描述Device Number完全是多余的。为此PCIe Spec提出了ARI格式这里暂时不详细介绍了有兴趣的可以自行阅读PCIe Spec的相关内容。 对于Switch来说则需要根据TLP Header中的BDF来判断这个TLP是给自己的还是给自己下属的其他设备的。如下图所示
请求者ID的作用 请求者IDRequester ID是一个重要字段用于标识发起TLP请求的设备。在PCIe中每个设备拥有一个唯一的ID称为Bus/Device/FunctionBDF编号。这个ID确保了即使在复杂的系统拓扑中完成者也能够确定并发送响应到正确的请求者。 TLP中的请求者ID 对于请求TLP无论是用于读操作还是写操作头部中都会包含请求者ID字段。这个字段确保了当完成者完成操作并需要发回完成CompletionTLP时知道将响应发送至何处。 对于完成TLP头部包含的是完成者IDCompleter ID这是因为响应需要标识出是哪个设备完成了操作。同时完成TLP还包含了一个标签TAG字段这个标签在请求时由请求者生成并由完成者在生成完成TLP时复制过去这样请求者就可以匹配响应到它原始的请求。 ✨二、Address Routing 地址路由Address Routing的地址包括IO和Memory。对于Memory请求来说32bit的地址使用3DW的Header64bit的地址使用4DW的Header。而IO请求则只能使用32bit的地址即只能使用3DW的Header。 注再次强调IO请求是为了兼容早期的PCI设备的在新的PCIe设备中禁止使用。 3DW和4DW的TLP Header分别如以下两张图所示 当Endpoint接收到采用地址路由的TLP时其会根据该TLP Header中的地址信息和自己的配置空间中的BAR寄存器来判断这个TLP是不是自己的。如下图所示 Switch的地址路由机制如下图所示
✨三、Implicit Routing 模糊路由Implicit Routing又译为隐式路由只能用于Message的路由。PCIe总线相对于PCI总线的一大改进便是消除了大量的边带信号这正是通过Message的机制来实现的。 PCIe定义的Message主要有以下几种类型 1.Power Management电源管理: 这类消息用于管理设备的电源状态比如将设备置于不同的睡眠状态L1, L2等或者唤醒设备。这对于节能和热管理非常关键。 2.INTx Legacy Interrupt SignalingINTx传统中断信号: 尽管PCIe设备推荐使用基于消息的中断MSI或MSI-X但为了向后兼容PCIe也支持通过特殊消息来模拟传统的PCI中断线INTA, INTB, INTC, INTD。 3.Error Signaling错误信号: PCIe设备和交换机可以通过发送特定的错误消息来报告诸如不可纠正错误、可纠正错误等问题。这些消息对于确保系统稳定运行和及时诊断故障至关重要。 4.Locked Transaction Support锁定事务支持: 用于支持特定类型的原子操作在确保数据一致性和事务的原子性方面非常重要。 5.Hot Plug Signaling热插拔信号: 这类消息支持系统动态地检测和配置新增或移除的设备比如在不需要关闭电源的情况下添加或移除扩展卡。 6.Vendor‐Specific Signaling厂商特定信号: 这使得厂商可以定义自己特定的消息类型进行通信和控制为设备制造商提供了设计灵活性。 7.Slot Power Limit Settings插槽功率限制设置: 用于传递有关插槽可提供给插入设备的最大功率限制的信息有助于电源管理和避免过载。 所有采用模糊路由的TLP的Header都是4DW的具体如下图所示 其中Type决定了模糊路由的类型具体如下图所示 000b: 路由到RC 001b:使用地址路由 010b: 使用ID路由 011b:来自RC的广播报文 100b:本地消息在接收端结束legacy中断消息使用这种报恩格式传递来自PCI总线的中断报文。 101b:用于PCIe电源管理PME_TO_Ack报文使用 110b-111b:保留字段 当一个Endpoint收到一个Message TLP检查TLP Header如果是RC的广播Message011b或者该Message终结于它100b它就接受该Message。当一个Switch收到一个Message TLP检查TLP Header如果是RC的广播Message011b则往它每个下游端口复制该Message然后转发。如果该Message终结于它100b则接受该TLP。如果下游端口收到发给RC的Message则往上游端口转发。