PCIe扫盲——基于WinDriver快速开发PCIe驱动简明教程
本文将简要介绍如何使用Jungo公司的WinDriver工具快速开发PCI Express设备驱动,以及相关注意事项。本文所使用的的测试平台信息如下:Win7 SP1 64bit、WinDriver12.1、MSVS2012、
发表于 2019/6/25 14:31:17
阅读(12552)
PCIe扫盲——PCIe总线性能评估(有效数据速率估算)
前面的文章提到过PCIe总线(Gen1&Gen2)采用了8b/10b编码,因此其有效数据速率为物理线路上的速率的80%。即Gen1的有效速率为2.0Gbps=2.5Gbps*80%,而Gen2的有效速率为4Gbps=5Gbps*80%。 如果以数据包的Data Payload为真实有效数据,来计算得话,实际应用中的有效速率会更低。因为,数据包的包头、包尾(LCRC和ECRC等)……
发表于 2019/3/6 16:29:52
阅读(13844)
PCIe扫盲——Power Management概述(二)——链路唤醒与PME产生
链路唤醒机制可以让处于非D0状态的Endpoint,通过唤醒来请求Root(软件层)让其返回D0状态。PCIe PM的软件层和PCI PM是兼容的,尽管其硬件实现方式并非完全相同。PCI PM的唤醒机制是通过一个边带信号来实现的,而PCIe PM还支持一种inband的PME消息(Power Management Event Message)来实现这一功能。
发表于 2019/2/26 9:09:56
阅读(15158)
PCIe扫盲——Power Management概述(一)
PCIe总线定义的与功耗管理功能(Power Management,PM)相关的主要有:PCI-Compatible PM、Native PCIe Extensions、Bandwith Management和Event Timing Optimization。
发表于 2019/2/25 16:08:49
阅读(28207)
PCIe扫盲——PCIe配置空间寄存器快速定位表
PCI Express的配置空间结构图如下图所示,为了能够快速定位相关寄存器的描述在PCIe Spec中的位置,整理了一个表格,顺便分享到我的博客上。
发表于 2018/9/6 15:12:02
阅读(11931)
PCIe扫盲——弹性缓存(Elastic Buffer/ CTC Buffer)
前面在介绍PCIe物理层逻辑子层的文章中,有提到过弹性缓存(Elastic Buffer,又称为CTC Buffer或者Synchronization Buffer)。其本质上是一种FIFO,主要用于解决跨时钟域问题。当然,PCIe的弹性缓存还用于补偿时钟误差(Compensate for the clock differences)。实际上,除了PCIe,弹性缓存还广泛应用于其它的高速串行接口—
发表于 2018/8/21 15:42:16
阅读(12145)
PCIe扫盲——PCI Express物理层接口(PIPE)
PCIe物理层接口(Physical Interface for PCI Express,PIPE)定义了物理层中的,媒介层(Media Access Layer,MAC)和物理编码子层(Physical Coding Sub-layer,...
发表于 2018/8/17 10:00:01
阅读(27698)
PCIe扫盲——热插拔简要介绍
某些特殊的应用场合可能要求PCIe设备能够以高可靠性持续不间断运行,为此,PCIe总线采用热插拔(Hot Plug)和热切换(Hot Swap)技术,来实现不关闭系统电源的情况下更换PCIe卡设备。注:本文将简单地介绍一下PCIe总线的热插...
发表于 2018/8/10 10:24:21
阅读(20435)
PCIe扫盲——复位机制介绍(FLR)
PCIe总线自V2.0加入了功能层复位(Function Level Reset,FLR)的功能。该功能主要针对的是支持多个功能的PCIe设备(Multi-Fun PCIe Device),可以实现只对特定的Function复位,而其他的Fu...
发表于 2018/8/9 17:44:42
阅读(11685)
PCIe扫盲——复位机制介绍(Fundamental & Hot)
PCI总线中定义了四种复位名称:冷复位(Cold Reset)、暖复位(Warm Reset)、热复位(Hot Reset)和功能层复位(Function-Level Reset,FLR)。其中FLR是PCIe Spec V2.0加入的功能...
发表于 2018/8/9 17:43:01
阅读(28519)
PCIe扫盲——中断机制介绍(MSI-X)
PCI总线自3.0版本开始支持MSI-X机制,对MSI做出了一些升级和改进,以克服MSI机制的三个主要的缺陷:1. 随着系统的发展,对于特定的大型应用,32个中断向量不够用了(参考前一篇文章);2. 只有一个目标地址使得多核...
发表于 2018/8/9 17:40:37
阅读(20269)
PCIe扫盲——中断机制介绍(MSI)
PCIe扫盲——中断机制介绍(MSI)前面的文章中介绍过,MSI本质上是一种Memory Write,和PCIe总线中的Message概念半毛钱关系都没有。并且,MSI的Data Payload也是固定的,始终为1DW。由于MSI也是从PC...
发表于 2018/8/9 17:37:32
阅读(19567)
PCIe扫盲——中断机制介绍(INTx)
PCIe扫盲——中断机制介绍(INTx)一个简单的PCI总线INTx中断实现流程,如下图所示。1. 首先,PCI设备通过INTx边带信号产生中断请求,经过中断控制器(Interrupt Controller,PIC)后,转换为INT...
发表于 2018/8/9 17:32:01
阅读(22136)
PCIe扫盲——两种中断传递方式
PCIe扫盲——两种中断传递方式为了能够让一些优先级高的事务得到优先处理,PCI总线支持外设中断用以提高总线性能。PCIe总线继承了PCI总线的所有中断特性(包括INTx和MSI/MSI-X),以兼容早期的一些PCI应用层软件。本次连载的文...
发表于 2018/8/9 17:28:48
阅读(13104)
PCIe扫盲——高级错误报告AER(二)
这一篇文章讲一讲,高级错误报告(Advanced Error Reporting,AER)关于可校正和不可校正错误的相关寄存器,以及Root如何处理来自其他PCIe设备的错误消息等内容。Ø 高级可校正错误处理(Advanced Corre...
发表于 2018/8/9 17:26:59
阅读(14807)