PCIe扫盲——PCIe错误源详解(一)
这篇文章来详细地分析一下各种错误源的产生原理,由于内容较多,因此分为两篇文章。第一篇介绍一下ECRC校检错误和Data Poisoning等;第二篇文章介绍事务(Transaction)错误、链路流量控制(Link Flow Control...
发表于 8/7/2018 5:40:49 PM
阅读(18235)
PCIe扫盲——PCIe错误检测机制
PCIe总线错误检测囊括了链路(Link)上的错误以及包传递过程中的错误,如下图所示。用户设计的应用程序层中的错误不属于链路传输中的错误,不应当通过PCIe的错误检测与处理机制处理,一般可借助设备特殊中断(Device Specific Interrupt)等合适的方式进行报告与处理。
发表于 8/6/2018 6:00:15 PM
阅读(19283)
PCIe扫盲——PCIe错误定义与分类
前面的文章提到过,PCI总线中定义两个边带信号(PERR#和SERR#)来处理总线错误。其中PERR#主要对应的是普通数据奇偶校检错误(Parity Error),而SERR#主要对应的是系统错误(System Error)。具体如下:· ...
发表于 8/6/2018 4:44:26 PM
阅读(19593)
PCIe扫盲系列博文连载目录篇(第四阶段)
本文为PCIe扫盲系列博文连载目录篇(第四阶段),主要内容包括错误检测与处理,PCIe中断机制(INTx,MSI/MSI-X),PCIe复位机制,热插拔简要介绍相关内容等。1、PCIe扫盲——PCIe错误定义与...
发表于 8/6/2018 3:29:20 PM
阅读(79170)
PCIe扫盲——Lattice ECP3/ECP5 SerDes简介
FPGA发展到今天,SerDes (Serializer - Deserializer) 基本上是标配了。从PCI到PCI Express,从ATA到SATA,从并行ADC接口到JESD204,从RIO到Serial RIO,……等等,都是...
发表于 6/3/2018 7:02:41 PM
阅读(15335)
PCIe扫盲——物理层电气部分基础(二)之De-emphasis
这一篇文章中,我们主要来聊一聊PCIe中的信号补偿技术(Signal Compensation)——De-emphasis。需要注意的是,Gen1&Gen2与Gen3的De-emphasis实现机制差别较大,而本文只介绍Gen1&Gen2相...
发表于 4/23/2018 8:01:37 PM
阅读(20392)
PCIe扫盲——物理层电气部分基础(一)
之所以把物理层电气部分的文章放在链路初始化与训练文章的后面,是因为这一部分涉及到一些相关的概念,如Beacon Signal、LTSSM等等。前面已经多次提及,由于本次连载的文章主要是基于Gen2的,所以关于Gen3的相关内容只会提及,但是...
发表于 4/23/2018 7:59:42 PM
阅读(16008)
PCIe扫盲——链路初始化与训练基础(三)之LTSSM
这一篇文章来简单地介绍一下链路训练状态机(Link Training and Status State Machine,LTSSM),并简要地介绍各个状态的作用和实现机制。
发表于 4/21/2018 4:14:51 PM
阅读(32263)
PCIe扫盲——链路初始化与训练基础(二)
前面的文章中提到过,Ordered Sets分别有以下几种:TS1 and TS2 Ordered Set (TS1OS/TS2OS)、Electrical Idle Ordered Set (EIOS)、FTS Ordered Set (...
发表于 4/21/2018 3:37:06 PM
阅读(19885)
PCIe扫盲——链路初始化与训练基础(一)
PCIe总线中的链路初始化与训练(Link Initialization & Training)是一种完全由硬件实现的功能,处于PCIe体系结构中的物理层。整个过程由链路训练状态机(Link Training and Status State Machine,LTSSM)自动完成,也就说基本没有数据链路层和事务层啥事。
发表于 4/21/2018 12:50:59 PM
阅读(28382)
PCIe扫盲系列博文连载目录篇(第三阶段)
本文为PCIe扫盲系列博文连载目录篇(第三阶段),主要内容包括TLP Header详解、Flow Control(流量控制)基础、Quality of Service简介、数据链路层包(DLLP)、Ack/Nak 机制详解和物理层逻辑子层基础等。
发表于 4/18/2018 8:59:39 AM
阅读(96635)
PCIe扫盲——物理层逻辑部分基础(三)
PCIe扫盲——物理层逻辑部分基础(三)这一篇文章来继续聊一聊接收端物理层逻辑子层的实现细节。回顾一下之前的那张图片:其中的一个Lane的具体逻辑如下图所示:其中,Rx Clock Recovery从输入的串行数据流中提取出Rx Clock...
发表于 4/17/2018 8:53:40 PM
阅读(14252)
PCIe扫盲——物理层逻辑部分基础(二)
上一篇文章中提到了Mux会对来自数据链路层的数据(TLP&DLLP)插入一些控制字符,如下图所示。当然,这些控制字符只用于物理层之间的传输,接收端的设备的物理层接收到这些数据后,会将这些控制字符去除,在往上传到其数据链路层。当然,除了STP...
发表于 4/17/2018 8:51:44 PM
阅读(24193)
PCIe扫盲——物理层逻辑部分基础(一)
首先,回顾一下,之前看了很多遍的PCIe的Layer结构图:PCIe中的物理层主要完成编解码(8b/10b for Gen1&Gen2,128b/130b for Gen3 and later)、扰码与解扰码、串并转换、差分发送与接收、链路...
发表于 4/17/2018 8:48:51 PM
阅读(19637)
PCIe扫盲——Ack/Nak 机制详解(二)
这一篇文章来简单地分析几个Ack/Nak机制的例子。Example 1. Example of AckStep1 设备A准备依次向设备B发送5个TLP,其对应的序列号分别为3,4,5,6,7;Step2 设备B成功的接收到了TL...
发表于 4/17/2018 8:45:29 PM
阅读(12488)