pcie处置层协议中文详解.docx

上传人:b****5 文档编号:3325112 上传时间:2022-11-21 格式:DOCX 页数:15 大小:800.28KB
下载 相关 举报
pcie处置层协议中文详解.docx_第1页
第1页 / 共15页
pcie处置层协议中文详解.docx_第2页
第2页 / 共15页
pcie处置层协议中文详解.docx_第3页
第3页 / 共15页
pcie处置层协议中文详解.docx_第4页
第4页 / 共15页
pcie处置层协议中文详解.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

pcie处置层协议中文详解.docx

《pcie处置层协议中文详解.docx》由会员分享,可在线阅读,更多相关《pcie处置层协议中文详解.docx(15页珍藏版)》请在冰豆网上搜索。

pcie处置层协议中文详解.docx

pcie处置层协议中文详解

pcie(PCI-Express)处置层协议中文详解

处置层协议(transactionLayerspecification)

◆TLP概况。

◆寻址定位和路由导向。

◆i/o,memory,configuration,messagerequest、completion详解。

◆请求和响应处置机制。

◆virtualchannel(vc)Mechanism虚拟通道机制。

◆dataintegrity数据完整性。

一.TLP概况

处置层(transactionLayerspecification)是请求和响应信息形成的基础。

包括四种地址空间,三种处置类型,从以下图能够看出在transactionLayer中形成的包的大体归纳。

一类是对i/o口和memory的读写包(TLPS:

transactionLayerspackages),另一类是对配置寄放器的读写设置包,还有一类是信息包,描述通信状态,作为事件的信号告知用户。

对memory的读写包分为读请求包和响应包、写请求包(不需要存储器的响应包)。

而i/o类型的读写请求都需要返回I/O口的响应包,configuration包对配置寄放器的读写请求也有响应包。

这些请求包还能够按属性来分确实是:

NP-nonposted,即请求需要返回completion的响应包;还有一种确实是;poste,即不需要completion返回响应包。

例如上面的存储器写入请求包和Message包都隶属于posted包。

包的要紧格式结构如下:

每种类型的包都有必然格式的包头(TlpHeader),依照不同的包的特性,还包括有效数据负荷(DataPayload)和tlp开销块(TlpDigest)。

包头中的数据用于对包的治理和操纵。

有效数据负荷域寄存有效数据信息。

具有数据的TLP传递是有必然规那么的:

以DW为长度单位,发送端数据承载量不得超过“DeviceControlRegister”中的“Max_Payload_Size”数值,接收端中,所接收到的数据量也不能超过接收端“DeviceControlRegister”中的“Max_Payload_Size”数值。

TLpDigest域是32位的ECRC校验。

具体的包结构图如下:

由此图可看出数据从低字节的高位先发送,从左到右。

以下详细介绍TLPS的每一个成份。

R为保留信息位,应设为0,路由器switch对此位不做修改,接收器应该忽略此位。

▲                     Fmt[1:

0]:

FormatofTLP(seeTable2-2)–bits6:

5ofbyte0

▲                     Type[4:

0]:

TypeofTLP–bits4:

0ofbyte0

▲                     TC[2:

0]:

TrafficClass–bits[6:

4]ofbyte1,关于TC的作用将在下文说明。

▲                     Attr[1:

0]:

Attributes–bits[5:

4]ofbyte2,详细介绍见下文

▲                     TD:

1bindicatespresenceofTLPdigestintheformofasingleDWattheendoftheTLP标志TLPDigest域的有无。

▲                     EP:

indicatestheTLPispoisoned–bit6ofbyte2有效数据中毒(犯错)机制。

 

▲                     Length[9:

0]:

LengthofdatapayloadinDW.

Fmt开销位说明TLPHeader的长度和TLP是不是包括数据,见以下图。

▲ Fmt[1:

0]=00b,代表3DW的包头,没有数据。

▲ Fmt[1:

0]=01b,代表4DW的包头,没有数据。

▲ Fmt[1:

0]=10b,代表3DW的包头,有数据。

▲ Fmt[1:

0]=11b,代表4DW的包头,有数据。

Fmt和Type开销组合概念了包(TLP)的类型如下。

上图概念了各类类型的包,图中的r[2:

0]用于概念Message包的隐含寻址方式,在下文中更为详细。

Length域概念了有效负荷的DW长度如下。

 

在不包括datapayload块的包中Length的值应被设置为保留值R,并被接收端忽略。

余下的各个开销位将在后文提到。

二.TLP打包定址和路由导向方式

要紧有三种TLP寻址方式:

地址路由(address)、ID识别路由、间接路由(implicit)。

下面要紧说明address和ID寻址方式,间接寻址将在后面提及。

address寻址要紧用于memory和i/orequest请求包,memory读写请求包支持64位地址和32位地址,i/o读写请求只支持32位地址。

64位地址寻址的TLPHeader有4DW(16字节),32位地址寻址的TLPHeader有3DW长。

上图确实是64位地址的4DW的包头和32位地址的3DW的包头。

关于memory读写request包,AT(addressTypefield)有如下的编码。

ID寻址方式要紧用在configuration请求包、部份message包、响应包中。

ID包括Busnumber、Divcenumber、functionnumber为TLP定位目标接收器。

ID寻址的TLP包头长度也有4DW和3DW两种,ID在TLP中位置见以下图。

第七个Byte(Byte7)是第一个DW数据负荷和最后一个DW数据负荷使能位(ByteEnables),ByteEnables在于memory,i/o,configuration请求包中有效,如图。

关于lastDWBE和1stDWBE中的每一个位,为0表示相应的数据字节不被读或写,为1表示相应的数据字节有效。

每一个使能位相对应的字节如下。

处置层描述符(transactionDescriptor),用于请求器件和应答器件间转送处置层信息,包括三部份,TransacitonID、Attributes、Trafficclass(TC)。

如以下图。

其中TransactionID包括:

RequesterID、Tag,如图。

Tag[7:

0]是由产生请求包的器件生成的,若是请求器件需要应答,那么每一个Tag[7:

0]和FunctionNumber是并世无双的。

TransactionID是一个全局标识符用于响应包寻址请求器件。

TC的规定如下,描述效劳的层次和用于映射虚拟通道:

处置层描述符在请求包中第二个DW:

中图中看出,描述字符放在第二个DW的前三个字节中。

三.i/o,memory,configuration,messagerequest、completetion详解。

memory、i/o、configurationrequest包头除大体的域之外还包括:

TransactionID即requesterID、Tag、LastDWBE、1stDWBE,放在第二个DW中。

以下别离介绍这三种不同的请求包。

memoryrequestpackage:

采纳直接地址寻址,有64bit地址和32bit地址两种,其中读请求包的Length域不该大于Max_Read_Request_Size寄放器设置的值。

请求器件可不能例如一个所访问的memory空间超过4KB的readrequest包。

以下是两种不同地址长度的memoryrequest包。

I/Orequest包:

I/Orequest包只有32位地址寻址。

有如下限制:

▲                     TC[2:

0]mustbe000b

▲                     Attr[1:

0]mustbe00b

▲                     AT[1:

0]mustbe00b

▲                     Length[9:

0]mustbe0000000001b

▲                     LastDWBE[3:

0]mustbe0000b

格式如下:

可见每次只传送一个DW数据。

configurationrequest包:

configurationrequest包采纳ID寻址方式,包头(TlpHeader长度是3DW)。

有如下规定:

•TC[2:

0]mustbe000b

•Attr[1:

0]mustbe00b

•AT[1:

0]mustbe00b

•[9:

0]mustbe0000000001b

•LastDWBE[3:

0]mustbe0000b

包格式:

Message包:

Message包分为:

􀂉INTxInterruptSignalingINTx中断信息包

􀂉PowerManagement电源治理性能。

􀂉ErrorSignaling错误信息包

􀂉LockedTransactionSupport锁住交易的支持

􀂉SlotPowerLimitSupport插槽电源限制的支持

􀂉Vendor-DefinedMessages制造商自行概念信息

所有的Message包都用Msg编码,即不包括数据负荷的Message包,除Vendor_DefinedMessages和Set_Slot_Power_LimitMessage包,Message包有以下限制:

□     TheMessageCodefieldmustbefullydecoded(Messagealiasingisnotpermitted).

□     Exceptasnoted,theAttr[1:

0]fieldisreserved.保留Attr域。

□     AT[1:

0]mustbe00b.

□     Exceptasnoted,bytes8through15arereserved.保留包头部份的bytes8到byte15.

□     MessageRequestsarepostedanddonotrequire包不需要返回响应包。

□     MessageRequestsfollowthesameorderingrulesasMemoryWriteRequests.

寻址方式:

隐含寻址,由Type域中的r[2:

0]决定,即Type域的最后三位。

具体寻址映射如下:

r[2:

0]是010时,寻址方式确实是ID寻址。

completionrules(应答机制):

completion包用ID寻址方式,寻址利用的ID确实是request提供的requesterID。

除那些正常的域之外,还包括:

◆         CompleterID[15:

0]–IdentifiestheCompleter–describedindetailbelow

◆         CompletionStatus[2:

0]–IndicatesthestatusforaCompletion

◆         BCM–ByteCountModified

◆         ByteCount[11:

0]–TheremainingbytecountforRequest

◆         Tag[7:

0]–incombinationwiththeRequesterIDfield,correspondstotheTransactionID

◆         LowerAddress[6:

0]–lowerbyteaddressforstartingbyteofCompletion

位有如下含义:

 

四.请求和应答处置机制

处置机制确实是对接收到的经DataLinkLayer进行数据完整性验证的Tlp进行处置。

无效的包将被抛弃,保留字(reserved)将被忽略。

以下是处置流程:

对所有的包分requesthandling和completionhandling,按不同的标准处置。

RequestHandlingRules:

若是请求是一个不支持的请求包,而且需要响应,那么CompletionStatus=UR,即不支持的请求。

若是请求包是一个Message包那么按Message包处置规那么处置,不然对那个request进行处置。

若是请求违背器件编程概念那么给出ca响应,即响应器件舍弃该请求,不然做出正确应答。

completionhandling:

若是接收到一个completion包的TransactionID和requester的TransactionID不一致那么那个应答包是非预期包。

合法的应答包将按域处置并提取有效数据负荷。

五.virtualchannel(vc)Mechanism虚拟通道机制。

虚拟信道(virtualchannel)在总线中提供用TC域来区分的虚拟信息通路,即某一传输通路,有不同的流程操纵机制(FlowControl)。

当某流程操纵显现拥塞时,其他通路仍然畅通。

VC有自己的独立流操纵,是实现Qos的要领。

VC通道是解决拥塞的基础。

在Switch内部,VC通道机制如下:

 

每一个TLP包并非包括具体的VC信息,VC是由TC映射取得的。

每一个器件的TC/VC映射是不同的,TC0/VC0是固定的。

具体TC、VC映射如下:

一个或多个TC映射到一个VC,同一个TC不能映射到不同的VC上,连接两边的映射机制一致。

除TC0外,其他的能够软件设置。

链路两头的映射方案要一致,如图是一种映射方案。

具体的虚拟通道是由VCID决定和识别的。

 

此刻介绍FlowControl,每一个虚拟通道有独立的流程操纵的缓冲空间。

在收发两边,流程操纵信息是用数据链路包(DLLP)打包发送的,其中的“VCID“确实是用来载送虚拟通道的识别。

总的来讲,流程操纵是由数据交易层(TransactionLayer)搭配了数据链路层(DataLinkLayer)来处置的,只是,处置层一般是针对接收到的TLP打包,生成TC,再由TC映射到VC。

流程操纵信息是FCP(FlowControlPackage),即DLLP打包的一种。

流程操纵的信誉单位是Credit,也确实是接收器的缓冲空间是4DW。

信誉单位:

确实是接收端缓冲空间大小的大体单位。

流程操纵能分辨三种包:

postedrequests(p)、non-postedrequests(Np)、completions(cpl)。

还能够分辨三种包的包头Header和数据Data,能够如此说,每一个虚拟通道(VC)对应的特定流程操纵包括6种不同的流程操纵信息:

1、PH=postedRequestHeader;2、PD=postedrequestDataPayload;3、NPH=non-postedrequestHeader;4、NPD=non-postedrequestDataPayload;5、CPLH=completionHeader;6、CPLD=completionDataPayload。

各类包对应的流程操纵如下表;

六.dataintegrity数据完整性

要紧的数据完整性保证之一是DataLinkLayer中的crc(lcrc)。

为了确保数据端对端的靠得住性在Transaction层的TLpDigest域还选择性的做一ECRC校验,ECRC的初值是FFFFFFFF,算法实现如下:

 

TransactionLayerspecifications只是pcie总线标准的一层标准,要紧处置数据包的传送治理,另外还有DataLinkLayer标准和physicalLayer标准。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1