做网站续费要多少钱淘宝支持做微交易网站吗

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

做网站续费要多少钱,淘宝支持做微交易网站吗,设计网站建设合同书6,wordpress4.5的主题1.概述 TLP报文按照类型#xff0c;可以大致分为4中类型#xff0c;分别是IO请求报文、存储器请求报文、配置请求报文、完成报文和消息请求报文。IO请求报文可分为IO读请求#xff08;不携带数据#xff09;和IO写请求#xff08;携带数据#xff09;。存储器请求报文可…1.概述 TLP报文按照类型可以大致分为4中类型分别是IO请求报文、存储器请求报文、配置请求报文、完成报文和消息请求报文。IO请求报文可分为IO读请求不携带数据和IO写请求携带数据。存储器请求报文可分为存储器读请求不携带数据、带锁的存储器读请求不携带数据和存储器写请求携带数据。配置请求报文可分为配置0读请求不携带数据、配置0写请求携带数据、配置1读请求不携带数据和配置1写请求携带数据。完成报文可分为携带数据带锁和不带锁、不携带数据带锁和不带锁。消息请求可分为携带数据和不携带数据两种类型。 2.IO Requests 在早期的PCI总线中CPU访问PCI设备的IO地址空间使用IO请求而在较新的PCIe总线中CPU使用memory map方式访问PCIe设备的IO地址空间很少使用IO请求。为了保持对PCI总线的兼容性PCIe总线中也保留了IO请求。IO请求可以访问16位和32位IO地址空间具体位宽根据设备的BAR确定。IO请求TLP报文的格式如下图所示。 位域意义FmtIO请求报文格式。000b IO Read(3DW without data)010b IO Write(3DW with data)TypeIO请求报文类型00010bTCIO请求通常为0确保IO请求报文不干扰任何高优先级的报文Attr不适用于IO请求保持为0TH不适用于IO请求保持为0AT不适用于IO请求保持为0LengthIO请求的数据长度最大为1DW所以设置为1Requester ID发出IO请求Function的BDFTag确保一段时间内同一个Function发出的IO请求不重复通常使用低5位若使用扩展tag和PF选项可以扩展到11位最大允许2048个IO请求不重复Last DW BEIO请求的数据长度最大为1DW所以为01st DW BE确认1DW数据负载中的有效位可能同时为0AddressIO请求读写的地址低2位为0地址按DW对齐 3.Memory Requests 存储器请求有3DW和4DW两种报文类型3DW对应32位地址4DW对应64位地址。需要注意的是若存储器请求及其完成报文携带数据则不能越过4KB地址边界。具体的报文格式如下图所示。 存储器请求的位域意义如下表所示没有列出的参考TLP通用格式章节。 位域意义Fmt存储器请求报文格式。000b Memory Read (3DW w/o data)010b Memory Write (3DW w/ data)001b Memory Read (4DW w/o data)011b Memory Write (4DW w/ data)1xxb TLP PrefixType存储器请求报文类型00000b Memory Read or Write00001b Memory Read LockedAddress [63:32]存储器请求使用64位地址时保存高32位地址Address [31:2]32位地址低2位为0地址按DW对齐 4.Configuration Requests 配置请求分为Type0和Type1类型。Type0配置请求可以直接访问PCIe设备。Type1配置请求不能直接访问PCIe设备需要至少穿越一个PCIe桥当访问的PCIe设备没有与PCIe桥直接相连时PCIe桥会直接向下转发Type1配置请求当访问的PCIe设备与PCIe桥直接相连时则PCIe桥会将Type1配置请求转换成Type0配置请求然后转发给PCIe设备。通常情况下CPU若访问与Host桥相连的PCIe桥或者设备则发出Type0配置请求否则需要发出Type1配置请求。配置请求TLP报文格式如下图所示。 位域意义Fmt配置请求报文格式。000b configuration read (no data)010b configuration write (with data)Type配置请求报文类型00100b Type 0 Config Request00101b Type 1 Config RequestTC配置请求通常为0确保配置请求报文不干扰任何高优先级的报文Attr不适用于配置请求保持为0TH不适用于配置请求保持为0AT不适用于配置请求保持为0Length配置请求的数据长度最大为1DW所以设置为1Requester ID发出配置请求Function的BDFTag确保一段时间内同一个Function发出的配置请求不重复通常使用低5位若使用扩展tag可以扩展到8位最大允许256个配置请求不重复Last DW BE配置请求的数据长度最大为1DW所以为01st DW BE确认1DW数据负载中的有效位可能同时为0Completer ID配置请求访问目标设备的BDFExt Register Number配置空间扩展寄存器地址。用于访问PCIe扩展的配置空间。访问配置空间的前256字节则位0。和Register Number一起组成10位地址可以访问PCIe扩展的4KB地址空间Register Number配置空间寄存器地址。用于访问配置空间的前256字节和Ext Register Number一起组成10位地址可以访问PCIe扩展的4KB地址空间 5.Completions 完成报文用于响应non‐posted请求non‐posted请求包括IO读请求、配置读请求和存储器读请求。完成报文可以携带数据也可以不携带数据Zero-Length读完成报文不携带数据携带数据的完成报文的数据最大长度不超过MPS在x86和PowrPC处理器中一般不超过RCB。完成报文的许多位域和对应的请求报文相同如TC、Attr、Requester ID和tag完成报文使用Requester ID路由到发送请求的设备。完成报文TLP格式如下图所示。正常情况下Completer ID对于发送请求的设备没有意义但对于完成报文发生错误时可以通过Completer ID定位发生错误的设备。 位域意义Fmt完成报文格式。000b Completion without data (Cpl)010b Completion with data (CplD)Type完成报文类型01010bTC和请求报文相同Attr和请求报文相同TH不适用于完成报文保持为0AT不适用于配置请求保持为0Length完成报文携带的数据长度按DW对齐若真实数据长度没有按DW对齐则需要借助Lower Address和Byte Count字段描述第一个DW和最后一个DW的有效字节Completer ID完成报文状态。000b Successful Completion (SC)001b Unsupported Request (UR)010b Config Req Retry Status (CRS)100b Completer abort (CA)其他保留Compl. Status(Completion Status Code)完成报文Function的BDFBCM(Byte Count Modified)用于PCI-X总线发送完成报文的设备对于PCIe总线无意义Byte Count一个请求可能需要多个完成报文响应该字段记录源设备还需要从目标设备接收多少字节数据才能完成全部数据据传输而且包含当前完成报文携带的数据。若多个完成报文中有一个完成报文的状态不是SC则终止此次请求。IO和配置请求只需要一个完成报文。0x0表示4096字节0x1表示1字节0xFFF表示4095字节Requester ID和请求Function的BDF相同Tag和请求Function的tag相同用来匹配发送的请求Requester ID和Tag组成的Transaction ID必须和源设备的Transaction ID相同Lower Address第一读请求完成报文携带数据的起始地址的低7位。当真实数据没有按DW对齐时需要和Byte Count字段一起用于描述第一个DW和最后一个DW的有效字节完成报文中没有First DW BE和Last DW BE字段 读请求返回的数据遵循下面的规则 一个读请求可能需要多个完成报文响应所有完成报文传输的数据长度等于读请求的数据长度。一个明确的完成报文只能响应一个读请求。IO和配置读请求数据长度为1DW因此只有一个完成报文。若完成报文的完成状态不是SC则会终止此次事务。若一个读请求需要多个完成报文响应则完成报文读取的数据地址必须按RCB对齐。RC的RCB为64字节或者128字节由硬件设置软件可以通过配置空间读取。若一个读请求需要多个完成报文响应则完成报文读取的数据地址依次增大。 完成报文的接收处理规则 若接收方接收到一个没有匹配到读请求的完成报文则视为非预期的完成报文当作错误处理。若接收方收到的完成报文的完成状态不是SC和CRS时则作为错误处理与之相关的读请求缓冲区将被释放。RC在发出配置请求之后若收到的完成报文的完成状态是CRS时则此次配置请求终止。后续的行为由硬件的实现决定若RC支持处理这种情况则会在其寄存器定义处理CRS的策略软件可以读取和设置。处理CRS的策略有以下几种情况若软件不能获取CRS状态则RC会重发该配置读请求重发的次数由实现决定。若软件能获取CRS状态则当RC发出PCI_VENDOR_ID配置读请求之后若收到的完成报文是CRS状态则RC会将VENDOR_ID的值设置为0x0001然后返回给软件软件读到该状态通常会等待一段时间再发起PCI_VENDOR_ID读请求。PCI‐SIG保留了VENDOR_ID0x0001值。对于其他配置读写请求RC会自动的重发该请求。CRS状态用于响应配置请求对于其他类型请求将视为有缺陷的TLP报文处理。若完成报文状态为reserved时处理行为和完成报文状态为UR时一致。若一个读请求需要多个完成报文响应若有一个完成报文的完成状态不是SC则此次事务结束对于错误之前接收到的数据由实现决定。 6.Message Requests 消息请求通常是直接发向RC或者来自RC的广播报文其取代了在PCI和PCI-X总线中使用的中断、错误和电源管理边带信号。消息请求类似于posted存储器写请求无需完成报文响应但不同的是posted存储器写请求基于地址路由而消息请求基于地址路由、ID路由和隐式路由具体的路由方式和消息请求类型有关系。消息请求使用4DW格式如下图所示。 位域意义Fmt数据包格式。001b Message Request without data011b Message Request with dataType数据包类型。Bit[4:3]固定为10b表示消息请求。Bit[2:0]表示消息路由方式。000b Implicitly Routed to RC (Root Complex)001b Routed by address010b Routed by ID011b Implicitly Broadcast from RC100b Local‐Terminate at Receiver101b Gather route to RC0thers Reserved, treated as LocalTC不适用于消息请求默认为0Attr[2]TLP是否使用ID‐based OrderingTH保留Attr[1:0]保留AT不适用于配置请求保持为0Length对于消息请求没有数据保留默认为0有数据为1消息请求最多携带1DW数据Message Code消息编码。0000 0000b Unlock Message(Locked Transaction Support)0001 0000b Latency Tolerance Reporting(LTR)0001 0010b Optimized Buffer Flush/Fill(OBFF)0001 xxxxb Power Management Message0010 0xxxb INTx Message0011 00xxb Error Message0100 xxxxb Ignored Messages (related to Hot‐Plug support in spec revision 1.1)0101 0000b Set Slot Power Message0111 111xb Vendor‐Defined Messages。详细信息参考PCIe5.0 Spec Table F-1 Message Code Usage表格Byte8-11如果使用地址路由则为64位地址的高32位。如果使用ID路由Bytes8和Bytes9为target ID即目标设备的BDF。其他路由方式不使用Byte12-15如果使用地址路由则为64位地址的低32位。其他路由方式不使用 下面只介绍INTx消息、电源管理消息和错误消息其他参考PCIe Spec。 6.1.INTx Interrupt Messages PCIe总线使用MSI或MSI-X中断机制但为了兼容PCI总线保留了传统的INTx中断。传统的INTx中断有4根中断信号线连接中断控制器使用电平触发中断有Assert和Deassert过程而PCIe总线没有中断信号线只能使用数据包模拟中断而数据包模拟中断类似于边沿触发中断。因此PCIe总线使用两个消息请求模拟INTx中断第一个消息Assert中断第二个消息Deassert中断。 INTx MessageMessage CodeRouting(Type[2:0])Assert_INTA0010 0000b100b Local‐Terminate at ReceiverAssert_INTB0010 0001b100b Local‐Terminate at ReceiverAssert_INTC0010 0010b100b Local‐Terminate at ReceiverAssert_INTD0010 0011b100b Local‐Terminate at ReceiverDeassert_INTA0010 0000b100b Local‐Terminate at ReceiverDeassert_INTB0010 0001b100b Local‐Terminate at ReceiverDeassert_INTC0010 0010b100b Local‐Terminate at ReceiverDeassert_INTD0010 0011b100b Local‐Terminate at Receiver 使用INTx消息的规则 INTx消息没有数据负载Length保留默认为0。INTx消息由上行口发送。对于接收到的数据包检查这一规则是可选的如果检测不符合规范的INTx消息会被视为错误的TLP报文。INTx消息默认使用传输类型TC0接收端必须检查该字段若违反该规则则会被视为错误的TLP报文。连接链路两端的设备必须跟踪四个INTx中断的当前状态。如果某个中断的逻辑状态在上行端口处发生变化则必须发送相应的INTx消息。当Command寄存器中的中断禁止位被设置为1时INTx中断将被关闭。设备产生中断后上行端口将发送INTx消息若设备的中断此时被禁止则上行端口将发送Deassert_INTx消息。Switch必须独立的跟踪每个下行口的四个INTx中断状态并将这些状态合并到上行口。RC必须独立跟踪四个INTx中断状态并以特定于实现的方式将它们转换成系统中断。INTx消息的路由类型为Local‐Terminate at Receiver这允许Switch在需要的时候重新映射中断。 6.2.Power Management Messages PCIe总线兼容PCI总线的电源管理规范并添加了基于硬件的链路层电源管理。电源管理消息用于传递电源管理信息。 Power Management MessageMessage CodeRouting(Type[2:0])PM_Active_State_Nak0001 0100b100b Local‐Terminate at ReceiverPM_PME0001 1000b000b - Implicitly Routed to RCPM_Turn_Off0001 1001b011b - Implicitly Broadcast from RCPME_TO_Ack0001 1011b101b - Gather route to RC 使用电源管理消息的规则 电源管理消息没有数据负载Length保留默认为0。电源管理消息默认使用传输类型TC0接收端必须检查该字段若违反该规则则会被视为错误的TLP报文。当下行端口收到链路对端设备将链路电源状态切换到L1的请求时但下行端口不允许切换时将发送PM_Active_State_Nak消息报文。当设备请求电源管理事件时其上行端口将会发送PM_PME消息报文。PM_Turn_Off消息会发送到下游的所有EP。PM_Turn_Off消息由EP发送到上游对于有多个下行端口的Swtich需要等待所有下行端口收到PM_Turn_Off消息后才会转发到上游。 6.3.Error Messages 当PCIe设备检测到错误时会向其上游发送错误消息。错误消息使用隐式路由最终会到达RC。软件可以通过错误消息TLP的Requester ID确定发生错误的设备。 Error MessageMessage CodeRouting(Type[2:0])ERR_COR (Correctable)0011 0000b000b - Implicitly Routed to RCERR_NONFATAL (Uncorrectable, Non‐fatal)0011 0001b000b - Implicitly Routed to RCERR_FATAL (Uncorrectable, Fatal)0011 0011b000b - Implicitly Routed to RC 使用错误消息的规则 错误消息没有数据负载Length保留默认为0。错误消息默认使用传输类型TC0接收端必须检查该字段若违反该规则则会被视为错误的TLP报文。RC会将错误消息转换为系统特定的事件以通知软件处理。 参考资料 PCIEXPRESS体系结构导读PCI Express technology 3.0PCI Express® Base Specification Revision 5.0 Version 1.0