PCIe扫盲——Ack/Nak 机制详解(一)
前面在数据链路层入门的文章中简单地提到过Ack/Nak机制的原理和作用,接下来的几篇文章中将对Ack/Nak机制进行详细地介绍。Ack/Nak是一种由硬件实现的,完全自动的机制,目的是保证TLP有效可靠地传输。Ack DLLP用于确认TLP...
发表于 4/16/2018 8:45:17 PM
阅读(19392)
PCIe扫盲——DLLP(数据链路层包)详解
首先说明一下,在本次连载的博文中,DLLP一般指的是由发送端的数据链路层发送,接收端的数据链路层接收的数据包,其和事务层(Transaction Layer)一般没有什么关系。本文将要介绍的DLLP指的正是这样的数据包,其一般用于Ack/N...
发表于 4/16/2018 8:42:52 PM
阅读(17480)
PCIe扫盲——Quality of Service简介
前面的文章中介绍过,为了保证视频、音频等数据得到优先传输,PCIe总线实现了一种叫做Quality of Service(QoS)的机制。QoS可以满足视频、音频等对Latency和实时性(Isochronous)要求比较高(一般不可以被打...
发表于 4/16/2018 8:40:32 PM
阅读(12363)
PCIe扫盲——Flow Control基础(二)
在任何事务层包(TLP)发送之前,PCIe总线必须要先完成Flow Control初始化。当物理层完成链路初始化后,便会将LinkUp信号变为有效,告知数据链路层可以开始Flow Control初始化了。如下图所示:注:由于VC0是默认使能...
发表于 4/16/2018 8:38:14 PM
阅读(17441)
PCIe扫盲——Flow Control基础(一)
Flow Control即流量控制,这一概念起源于网络通信中。PCIe总线采用Flow Control的目的是,保证发送端的PCIe设备永远不会发送接收端的PCIe设备不能接收的TLP(事务层包)。也就是说,发送端在发送前可以通过Flow ...
发表于 4/16/2018 8:35:25 PM
阅读(20138)
PCIe扫盲——TLP Header详解(四)
PCIe中的Message主要是为了替代PCI中采用边带信号,这些边带信号的主要功能是中断,错误报告和电源管理等。所有的Message请求采用的都是4DW的TLP Header,但是并不是所有的空间都被利用上了,例如有的Message就没有...
发表于 4/16/2018 8:32:53 PM
阅读(23658)
PCIe扫盲——TLP Header详解(三)
CompletionsCompletions的TLP Header的格式如下图所示: 这里来解释一下Completion Status Codes· 000b (SC) Successful Completion:表示请求(R...
发表于 4/6/2018 10:20:44 AM
阅读(19734)
PCIe扫盲——TLP Header详解(二)
下面用几个具体的例子来讲解TLP Header的格式与作用。因为内容较多,所以分为两篇文章分别进行介绍。第一篇(即本文)介绍IO Request、Memory Request和Configuration Request。第二篇文章(即TLP...
发表于 4/6/2018 10:19:17 AM
阅读(18160)
PCIe扫盲——TLP Header详解(一)
事务层包(TLP)的一般格式如下图所示:前面的文章介绍过,TLP Header为3DW或者4DW,Data Payload为1-1024DW,最后的TLP Digest(ECRC)是可选的,为1DW。TLP Header在整个TLP的位置如...
发表于 4/6/2018 10:15:56 AM
阅读(35944)
PCIe扫盲系列博文连载目录篇(第二阶段)
本文为PCIe扫盲系列博文连载目录篇(第二阶段),主要内容包括PCIe的配置空间、地址空间、事务层包(TLP)路由等。
发表于 4/3/2018 8:27:39 PM
阅读(104977)
PCIe扫盲——TLP路由之Implicit Routing
模糊路由(Implicit Routing,又译为隐式路由)只能用于Message的路由。前面的文章中多次提到过,PCIe总线相对于PCI总线的一大改进便是消除了大量的边带信号,这正是通过Message的机制来实现的。PCIe定义的Mess...
发表于 4/3/2018 8:20:57 PM
阅读(11975)
PCIe扫盲——TLP路由之Address Routing
地址路由(Address Routing)的地址包括IO和Memory。对于Memory请求来说,32bit的地址使用3DW的Header,64bit的地址使用4DW的Header。而IO请求则只能使用32bit的地址,即只能使用3DW的H...
发表于 4/3/2018 8:19:56 PM
阅读(14308)
PCIe扫盲——TLP路由之ID Routing
ID 路由(ID Routing)有的时候也被称为BDF路由,即采用Bus Number、Device Number和Function Number来确定目标设备的位置。这是一种兼容PCI和PCI-X总线协议的路由方式,主要用于配置请求(C...
发表于 4/3/2018 8:18:21 PM
阅读(16107)
PCIe扫盲——TLP路由(Routing)基础
首先来分析一个例子,如下图所示:当包(Packet)到达Switch的输入端口(Ingress Port)时,端口首先会检查包是否有错误,然后根据包的路由(Routing)信息,来做出以下三种处理方式之一:1、 接受这个包,并自己(Swit...
发表于 4/3/2018 8:17:03 PM
阅读(21500)
PCIe扫盲——Type0 & Type1 型配置请求
前面的文章中介绍过有两种类型的配置空间,Type0和Type1,分别对应非桥设备(Endpoint)和桥设备(Root和Switch端口中的P2P桥)。Type0还是Type1是由事务层包(TLP)包头中的Type Field所决定的,而读...
发表于 4/3/2018 8:14:29 PM
阅读(29927)