PCIe扫盲——Base & Limit寄存器详解
PCIe扫盲——Base & Limit寄存器详解上一篇文章介绍了Type0型配置空间Header中的BAR的作用和用法,但是PCIe中的桥设备(Switch和Root中的P2P)又是如何判断某一请求(Request)是否属于自己或者自己的...
发表于 4/3/2018 8:10:42 PM
阅读(23356)
PCIe扫盲——基地址寄存器(BAR)详解
基地址寄存器(BAR)在配置空间(Configuration Space)中的位置如下图所示:其中Type0 Header最多有6个BAR,而Type1 Header最多有两个BAR。这就意味着,对于Endpoint来说,最多可以拥有6个不...
发表于 4/3/2018 8:06:15 PM
阅读(74673)
PCIe扫盲——Memory & IO 地址空间
早期的PC中,所有的IO设备(除了存储设备之外的设备)的内部存储或者寄存器都只能通过IO地址空间进行访问(Intel干的好事)。但是这种方式局限性很大,而且效率低,于是乎,软件开发者和硬件厂商都不能忍了……然后一种新的东西就出来了——MMI...
发表于 4/3/2018 7:57:29 PM
阅读(28502)
PCIe扫盲——配置空间的读写机制
需要特别注意的是,PCIe的Spec中明确规定只有Root有权限发起配置请求(Originate Configuration Requests),也就是说PCIe系统里面的其他设备是不允许去配置其他设备的配置空间的,即peer-to-pee...
发表于 4/3/2018 7:54:28 PM
阅读(31764)
PCIe扫盲——一个Memory Read操作的例子
前面的一系列文章简要地介绍了PCIe总线的结构、事务层、数据链路层和物理层。下面我们用一个简单地的例子来回顾并总结一下。如下图所示,Requester的应用层(软件层)首先向其事务层发送如下信息:32位(或者64位)的Memory地址,事务...
发表于 3/31/2018 7:48:46 PM
阅读(28793)
PCIe扫盲——BDF与配置空间
前面的文章中介绍过,每一个PCIe设备可以只有一个功能(Function),即Fun0。也可以拥有最多8个功能,即多功能设备(Multi-Fun)。不管这个PCIe设备拥有多少个功能,其每一个功能都有一个唯一独立的配置空间(Configur...
发表于 3/31/2018 7:46:54 PM
阅读(47936)
PCIe扫盲——PCIe总线物理层入门
PCIe扫盲——PCIe总线物理层入门前面的文章简单的介绍了一些关于PCIe总线事务层(Transaction Layer)和数据链路层(Data Link Layer)的一些基本概念。这篇文章来继续聊一聊PCIe总线的最底层——物理层(P...
发表于 3/31/2018 7:29:19 PM
阅读(29395)
PCIe扫盲系列博文连载目录篇(第一阶段)
本文为PCIe扫盲系列博文连载目录篇(第一阶段),所谓第一阶段就是说后面还有第二阶段和第三阶段……第一阶段主要是介绍PCIe总线的发展历史与展望,PCI总线和PCI-X总线的简要回顾,PCIe总线的体系结构入门,PCIe总线的事务层、数据链路层,物理层入门;最后以一个简单的例子进行总结与回顾。
发表于 3/30/2018 9:57:47 AM
阅读(202441)
PCIe扫盲——PCIe总线数据链路层入门
前面的文章介绍过,数据链路层(Data Link Layer)主要进行链路管理(Link Management)、TLP错误检测,Flow Control和Link功耗管理。数据链路层不仅可以转发来自事务层的包(TLP),还可以直接向另一个...
发表于 3/29/2018 7:53:22 PM
阅读(22628)
PCIe扫盲——PCIe总线事务层入门(三)
PCIe总线设计之初,主要是针对于音频和视频传输等这些对时间要求特别敏感的应用的。为了保证这些特殊应用的数据包能够得到优先发送,PCIe Spec中为每一个包都分配了一个优先级,通过TLP的Header中的3位(即TC,Traffic Cl...
发表于 3/29/2018 7:51:40 PM
阅读(30505)
PCIe扫盲——PCIe总线事务层入门(二)
前面的文章介绍了TLP的几种类型以及TLP的包结构。这篇文章来详细地聊一聊Non-Posted Transaction(包括Ordinary Read、Locked Read和IO/Configuration Writes)与Posted ...
发表于 3/29/2018 7:48:18 PM
阅读(29672)
PCIe扫盲——PCIe总线事务层入门(一)
在介绍事务层之前,首先简单地了解一下PCIe总线的通信机制。假设某个设备要对另一个设备进行读取数据的操作,首先这个设备(称之为Requester)需要向另一个设备发送一个Request,然后另一个设备(称之为Completer)通过Comp...
发表于 3/29/2018 7:45:06 PM
阅读(37534)
PCIe扫盲——PCIe总线体系结构入门
和很多的串行传输协议一样,一个完整的PCIe体系结构包括应用层、事务层(Transaction Layer)、数据链路层(Data Link Layer)和物理层(Physical Layer)。其中,应用层并不是PCIe Spec所规定的...
发表于 3/29/2018 7:39:16 PM
阅读(35874)
PCIe扫盲——PCIe总线怎样做到在软件上兼容PCI总线
前面的文章中多次说道,PCIe总线在软件上是向前兼容PCI总线的。因此,PCIe总线完整的继承了PCI总线中的配置空间(Configuration Header)的概念。在PCIe总线中也有两种Header,Header0和Header1,...
发表于 3/29/2018 7:36:55 PM
阅读(20659)
PCIe扫盲——PCIe总线基本概念
PCIe总线的提出可以算是代表着传统并行总线向高速串行总线发展的时代的到来。实际上,不仅是PCI总线到PCIe总线,高速串行总线取代传统并行总线是一个大的趋势。如ATA到SATA,SCSI到USB等……
发表于 3/28/2018 4:30:23 PM
阅读(32684)