PCIe总线的通信机制:当一个设备要想另一个设备进行读取通信时,请求方requester需要向另一个设备发送请求request,靶向方作为事件完成方completer,以complete Packet的形式返回数据或者错误信息。请求的形式有:内存(memory)、输入输出(IO),配置(Configuration)和消息(Message)
non-posted和posted的区别是是否仅仅将数据发送到接收方就完成动作,non_posted是指请求方发送了一个包含请求的Packet之后,还要得到一个包含completion的Packet的应答,posted指的是发出请求后,不需要completer发送一个包进行应答。显然,posted类型的操作对总线的利用效率更高。
事务层包(Transaction Layer Packet,TLP)的几种类型:
abbreviated :缩写
TLP的传输层示意图:
图中的示意图以发送和接收为例,用户层将数据发送到事务层,事务层给数据加上帧头,并在数据的结尾添加ECRC(端到端CRC校验)信息,再发送给数据链路层(Data Link Layer),护具链路层给接收到的TLP添加网络封包序号和数据链路层CRC校验结果,之后将数据发送到物理层,物理层给接收到的报添加其实和结束标志。
接收方反向操作。