0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一些关于TLP路由的基础知识

SwM2_ChinaAET 来源:未知 作者:李倩 2018-05-11 09:35 次阅读

首先来分析一个例子,如下图所示:

当包(Packet)到达Switch的输入端口(Ingress Port)时,端口首先会检查包是否有错误,然后根据包的路由(Routing)信息,来做出以下三种处理方式之一:

1、 接受这个包,并自己(Switch)使用它(Internal Use);

2、 将其通过响应的输出端口(Egress Port)转发到下一级Endpoint(或者下一级Switch);

3、 拒绝接受这个包。

在前面的文章中多次介绍过,PCIe总线中一共有三种类型的包:Ordered Sets(命令集包,只在相邻的设备的物理层之间进行传递,不会被转发到其他的设备中)、DLLPs(数据链路层包,只在相邻的设备的数据链路层之间进行传递,不会被转发到其他设备中)和TLPs(事务层包,可以根据包中的路由信息被转发到其他的设备中)。

注:实际上不论是TLPs还是DLLPs都会经过物理层,这里说的TLP和DLLP指的是包的最初来源分别是事务层和数据链路层,即DLLP和上一层的事务层没有什么关系,其内容和作用完全是由数据链路层自己决定的。

注:Endpoint不仅可以发送TLP给其上层的设备(如Root),也可以发送TLP给其他的Endpoint,当然这需要借助Switch来实现。这种传输方式叫做Peer-to-Peer。

TLP一共有三种路由方式,分别是ID路由(ID Routing,即BDF Routing)、地址路由(Address Routing,包括Memory和IO)以及模糊路由(Implicitly Routing)。本文将简单介绍一些关于TLP路由的基础知识,具体的路由方式将会在接下来的三篇文章中依次进行介绍。

具体采用哪一种路由方式是由TLP的类型所决定的,如下表所示:

注:AtomicOp是PCIe Spec V2.1新增的内容,有兴趣的可以自行阅读V2.1的相关内容。

注:一般情况下,Message都是使用模糊路由(Implicitly Routing)的,但是也有PCIe设备厂商自定义的Message会使用地址路由或者ID路由。

可能有的人要有疑惑了,既然Message可以使用地址路由或者ID路由,为什么还要单独搞出来一个模糊路由呢?原因很简单,使用模糊路由可以广播Message到每一个设备,采用其他的路由方式必须明确指定是哪一个设备。

那么PCIe中是如何来判断TLP的类型的呢?又是如何判断其为Request还是Completion的呢?实际上是通过TLP Header的Format和Type部分来确定的,如下图所示:

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 总线
    +关注

    关注

    10

    文章

    2868

    浏览量

    87995
  • PCIe
    +关注

    关注

    15

    文章

    1224

    浏览量

    82447
  • TLP
    TLP
    +关注

    关注

    0

    文章

    32

    浏览量

    15605

原文标题:【博文连载】PCIe扫盲——TLP路由(Routing)基础

文章出处:【微信号:ChinaAET,微信公众号:电子技术应用ChinaAET】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    关于电脑的一些基础知识

    关于电脑的一些基础知识
    发表于 05-30 16:27

    有关电脑的一些基础知识

    有关电脑的一些基础知识
    发表于 05-30 16:28

    关于protel的一些基础知识

    关于protel的一些基础知识
    发表于 05-31 09:16

    关于protel的一些基础知识

    关于protel的一些基础知识
    发表于 05-31 09:56

    夯实地基:关于AVR的一些基础知识(硬件&软件)

    一些关于最近学习AVR硬件、软件的基础知识。希望对刚刚准备学习AVR单片机的朋友提供一些帮助。在自己后期学习AVR过程中还会上传一些资料。希
    发表于 11-09 16:25

    pwm的一些基础知识和应用小程序

    自己总结的一些pwm的基础知识,和大家分享
    发表于 03-25 15:50

    模拟电路教程和一些模电基础知识

    里面包含模拟电路教程和一些模电基础知识
    发表于 04-04 10:38

    关于电容的一些基础知识都在这里

    关于电容的一些基础知识都在这里
    发表于 04-23 07:12

    路由器常用基础知识总结

    路由器常用基础知识总结路由器常用基础知识总结路由器常用基础知识总结
    发表于 10-30 18:08 0次下载

    关于红外通信的一些问题知识

    关于红外通信的一些问题知识点。
    发表于 05-05 17:40 4次下载

    关于PID一些常用知识

    本文档详细介绍分析了关于PID的一些常用知识
    发表于 08-29 14:22 2次下载

    usb通信的一些基础知识

    目前了解了usb通信层面的一些基础知识如下。如果有空还要再了解hid报告描述符及协议的数据包波形。
    发表于 05-18 10:18 4394次阅读

    嵌入式系统的一些基础知识

    本文主要介绍嵌入式系统的一些基础知识,希望对各位有帮助。
    的头像 发表于 02-18 10:44 2280次阅读

    5G通信技术的一些基础知识

    随着社会的进步和技术的发展,5G生活离我们愈来愈近了,这里和大家分享下5G通信技术的一些基础知识
    的头像 发表于 02-09 16:11 2w次阅读
    5G通信技术的<b class='flag-5'>一些</b><b class='flag-5'>基础知识</b>

    关于数码管的一些知识笔记

    “写写关于数码管的一些知识笔记”
    的头像 发表于 06-28 11:29 3256次阅读
    <b class='flag-5'>关于</b>数码管的<b class='flag-5'>一些</b><b class='flag-5'>知识</b>笔记