盛泽网站建设,网站建设就选,wordpress文学模版,建设电子商务网站市场分析PCIE总线记录描述PCI分类与速度PCIE连接拓扑与角色PCIE接口定义PCIE数据传输方式与中断在PCIE中有两种数据传输方式#xff1a;PCIE中断#xff1a;PCIE协议栈与工作流程PCIE地址空间分类实例分析PCIE两种访问方式描述
PCI-Express(peripheral component interconnect expre…
PCIE总线记录描述PCI分类与速度PCIE连接拓扑与角色PCIE接口定义PCIE数据传输方式与中断在PCIE中有两种数据传输方式PCIE中断PCIE协议栈与工作流程PCIE地址空间分类实例分析PCIE两种访问方式描述
PCI-Express(peripheral component interconnect express)是一种高速串行计算机扩展总线标准它原来的名称为“3GIO”是由英特尔在2001年提出的旨在替代旧的PCIPCI-X和AGP总线标准。PCIe属于高速串行点对点双通道高带宽传输所连接的设备分配独享通道带宽不共享总线带宽主要支持主动电源管理错误报告端对端的可靠性传输热插拔以及服务质量(QOS)等功能。PCIe交由PCI-SIGPCI特殊兴趣组织认证发布后才改名为“PCI-Express”简称“PCI-e”。它的主要优势就是数据传输速率高目前最高的16X 2.0版本可达到10GB/s而且还有相当大的发展潜力。PCI Express也有多种规格从PCI Express x1到PCI Express x32能满足将来一定时间内出现的低速设备和高速设备的需求。PCI-Express最新的接口是PCIe 3.0接口其比特率为8Gbps约为上一代产品带宽的两倍并且包含发射器和接收器均衡、PLL改善以及时钟数据恢复等一系列重要的新功能用以改善数据传输和数据保护性能。
PCI分类与速度 PCIE连接拓扑与角色 EP设备终端设备。 RC设备根总线设备总线控制器。 BG设备桥设备。将pcie总线转换成其他总线的设备或者反之。类似于网关。 SW设备连接多个pci终端设备在同一总线域的设备。类似于交换机。
PCIE接口定义 PRSNT1/2#热插拔信号引脚 SMCLKSMDATSMBUS信号接口用于管理pcie设备。 TCKTDITDOTMSTRST#jtag接口用于调试pcie设备。 WAKE#唤醒引脚。 PERST#复位引脚。 CLKREQ#时钟请求引脚。 REFCLK/-差分时钟引脚。 HS O/I p/n (0)差分IO引脚。
Tips:实际使用中可以根据需求删减引脚。
PCIE数据传输方式与中断
在PCIE中有两种数据传输方式
DMA(Direct Memory Access)直接内存访问在该模式下数据传送不是由CPU负责处理而是由一个特殊的处理器DMA控制器来完成因此占用极少的CPU资源。 PIO(Programmed Input-Output)可编程输入输出在该模式下数据传送由CPU执行I/O端口指令来按照字节或更大的数据单位来处理占用大量的CPU资源数据传输速度也大大低于DMA模式。举例老说在DMA方式下如果copy文件的同时在播放mp3音乐则不受丝毫影响如果在PIO模式下则会发现音乐声时断时续这是因为大部分CPU资源被文件传输占用。
PCIE中断
在PCIE总线中没有中断引脚所以中断信号通过MSI的方式传输。也就是中断信号与数据信号一起传输。
PCIE协议栈与工作流程 pcie设备上电或者复位,并且电源与pll变稳定后。pcie就会开始尝试建立连接。当链路处于有效状态终端设备就会告诉总线设备自己已经准备好建立连接了。两者状态同步后总线设备LTSSM开始检测可用的通道数并且开始链路训练用来确认该状态下的链路最佳的通信参数。物理层的linkup建立后数据链路模块开始工作并且初始化控制流。控制流初始化完毕后。数据链路模块发信号给传输层模块告诉他准备好允许发送/接收TLP流量。
Tips:在正常操作期间LTSSM和数据链路模块继续管理底层链路完整性。 4、pcie枚举发现新设备。
PCIE地址空间分类
pcie的空间分为io、mem与配置空间。配置空间是每一个PCI设备都要提供的一个寄存器位于硬件设备中它的作用是
告诉系统本硬件的名称、生产厂商、设备类型、版本、是否支持背靠背传输等信息告诉系统本硬件需要的IO、中断、MEMORY等资源的数量接受系统赋予以上资源的基地址 EP设备配置空间
实例分析 bar中的地址就是linux kernel map中的物理地址linux kernel如果是32位那么虚拟内存大小是一块4G的空间各个外设比如pciddr等通过映射的方式可以将物理地址映射上来。另外这个bar地址是上电后系统根据实际配置情况与bar信息经过映射的地址保存在pci设备中的配置信息记录的是设备在pci空间中的地址与长度等信息。 拿到bar中的地址信息了。我们就等于拿到了pcie设备的寄存器起始地址了。接下来就可以正式编写设备驱动了。
PCIE两种访问方式 默认情况下RC outbound的方式访问PCIE设备。如果需要RC inbound那么需要额外配置。
参考来源组内大佬的分享文档