Nullified TLP、Data Poisoning
1.nullified tlp:
待补充
2.Data Poisoning
Non-flit mode:EP
Flit mode: Physical Layer Logical Block mechanisms
错误转发可能应用的场景:
错误转发过程中需要注意的事项:
(1)主要应用的操作是:Read Completion Data, AtomicOp Completion Data, AtomicOp Request Data,Write Data;
(2)带有header的错误的request/completion通常不能转发,因为不知道真正的目的地,因此转发可能会导致一些其他情况,比如数据损坏、系统故障等;
(3)错误转发用于控制错误在系统中的传播、系统诊断等。
(4)错误转发不会导致数据链路层重试,只有当链路上存在由数据链路层的TLP错误检测机制确定的传输错误时,错误的TLP(Poisoned TLPs )才会重试。 Poisoned TLP最终可能导致请求的发起者重新发出请求,针对在读取操作或采取其他操作的情况(在事务层或以上)。
使用Data Poisoning的一些准则:
(1)Poisoned TLPs 操作是可选的,FM模式下, Transmitter允许只支持EP位机制,只支持物理层逻辑块机制,或者两者都支持、两者都不支持;
(2)Data poisoning只适用于写请求(posted或者non-posted)、带数据的消息、AtomicOp请求、读完成或AtomicOp完成中的数据负载;
(3) 事务层中的Poisoned TLPs(带有data payload)通过EP表示;
(4)当在路由过程中,TLP从NFM转换为FM时,如果在NFM TLP中设置了EP位,则必须在FM TLP中设置EP位;
(5)当路由过程中,TLP从FM转换为NFM时,如果FM TLP已经应用了poisoning mechanism,则NFM TLP中必须设置EP位;
(6)transmitter只允许对包含数据有效负载的tlp进行poisoning。在FM中,EP针对不包括有效数据负载的tlp是reserved。在NFM中,如果对不包括数据有效负载的TLP进行poisoning,接收方的行为没有明确的指定。
(7)对于IDE TLP:
只有原始的传输端口被允许对TLP进行poisoning操作,并且必须使用EP位进行该操作;
不允许使用物理层逻辑块机制来对TLP进行poisoning操作;如果在MAC生成之后在IDE TLP中检测到数据损坏,那么即使检测到损坏也需要转发IDE TLP;
(8)如果Transmitter支持data poisoning ,那么在Transmitter事务层已知包含了毁坏的数据数据负载的tlp必须使用EP的poisoning机制。
(10)如果下行端口支持Poisoned TLP Egress Blocking,并且Poisoned TLP Egress Blocking Enable位为1,并且poisoned TLP准备从egress流出,那么除非存在更高优先级的错误,否则端口必须将该TLP作为Poisoned TLP Egress Blocked error处理;
另外,在这种情况下端口不能转发TLP;如果DPC没有触发并且是一个non-posted request,那么port必须返回一个带UR的completion;如果DPC触发了,参考2.9.3节。
(11)对于最终的completer,如下的一些存在Poisoned data的request不能修改目标位置的值:
配置写请求;AtomicOp请求;DMWr请求;
在completer中以控制寄存器或者控制结构为目标的下列请求:I/O Write Request, Memory Write Request, non-vendor-defined Message with data;
除非存在更高优先级的错误,completer必须将这这些请求当作一个Poisoned TLP Received error,如果请求是Non-posted的请求,那么completer必须返回完成状态为UR的completion。无论所报告的错误的严重程度如何,所报告的错误必须作为不可纠正的错误处理(uncorrectable error),而不是非致命错误(Non-Fatal Error)。
Switch路由这些请求的方式必须与没有中毒的请求路由相同(除非请求的目标是Switch本身的位置),如果目标是switch本身,在这种情况下,Switch是该请求的completer,必须遵循上述规则。
(9)对于支持数据中毒的路由元素,如果Non-IDE TLP使用Physical Layer Logical Block mechanisms在接收时被认为是中毒的,则该TLP必须在使用EP位机制标记为中毒的egress上传输。