PCIe专题学习——2.1

之前我们对PCIe的一些基础概念做了一个宏观的介绍,了解了PCIe是一种封装分层协议(packet-based layered protocol),主要包括事务层(Transaction layer),数据链路层(Data link layer)和物理层(physical layer)。

一:事务层TLP的前世今生

PCIe总线使用的数据报文首先在事务层中形成,这个数据报文也被称为事务层数据报文,即TLP(Transaction Layer packet),TLP在经过数据链路层时被加上sequence number前缀和crc后缀,然后发向物理层。

生活中,有时,我们会陷入一个哲学性的思考:“我们来自哪里,终归何方?”同样的,TLP也有这个命题的答案,TLP来自发送设备的事务层,历经“磨难”,终归接收端的事务层。

那么,在TLP传递的过程中到底要经理哪些磨难呢?请看下图~

我们逐一解析一下这些磨难:

1:发送端Device Core发送事务请求:数据读写,完成反馈(Completions),信息(Message)等;

2:事务层根据Device Core的请求,生成TLP Header,加上Device Core提供的data,最后加上ECRC(end to end crc),此时TLP会放入事务层缓存(Virtual Channel Buffer)之中;

3:当TLP传递至数据链路层时,会被加上sequence number以及LCRC(link CRC),此时,生成“加强版”TLP,并放入数据链路层的Retry buffer;

4:当TLP被传送至物理层时,被加上头和尾,到这里,TLP在发送端就组装完毕了;

5:在接收端就很发送端做的事情相反了,在物理层需要掐头去尾,然后传输至数据链路层;

6:数据链路层收到传入的TLP后,通过计算LCRC验证传输是否正确,正确的话就去掉sequence Number和LCRC,将TLP传输至事务层;

7:事务层接收到TLP后,解析其内容,并将信息传给接收端Device Core,至此,发送端传过来的组装TLP已拆解完毕;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值