找回密码
 立即注册

QQ登录

只需一步,快速开始

PCIe扫盲——PCIe总线数据链路层入门

0
回复
1666
查看
[复制链接]

52

主题

58

帖子

1101

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1101

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主论坛元老

来源: 2020-4-19 10:09:00 显示全部楼层 |阅读模式
前面的文章介绍过,数据链路层(Data Link Layer)主要进行链路管理(Link Management)、TLP错误检测,Flow Control和Link功耗管理。
数据链路层不仅可以转发来自事务层的包(TLP),还可以直接向另一个相邻设备的数据链路层直接发送DLLP,比如应用于Flow Control和Ack/Nak的DLLP。如下图所示:
数据链路层还实现了一种自动的错误校正功能,即Ack/Nak机制。如下图所示,发送方会对每一个TLP在Replay Buffer中做备份,直到其接收到来自接收方的Ack DLLP,确认该DLP已经成功的被接受,才会删除这个备份。如果接收方发现TLP存在错误,则会向发送发发送Nak DLLP,然后发送方会从Replay Buffer中取出数据,重新发送该TLP。
注:关于Ack/Nak机制,后面的文章会详细的介绍。
两种DLLP(转发TLP的DLLP,用于Flow Control或Ack/Nak等的DLLP)的结构图分别如下图所示:
一个Non-Posted传输中,Ack/Nak的执行过程如下图所示:

您需要登录后才可以回帖 登录 | 立即注册
关闭

站长推荐 上一条 /1 下一条

商业洽谈 文章投递 寻求报道
电话咨询: 173xxxxxxx
关注微信