首页 > 其他分享 >PCIe扫盲——PCI总线的三种传输模式

PCIe扫盲——PCI总线的三种传输模式

时间:2024-12-09 10:42:37浏览次数:3  
标签:DMA PIO 传输方式 总线 PCIe PCI Peer CPU

本文来简单地介绍一下PCI Spec规定的三种数据传输模型:Programmed I/O(PIO),Peer-to-Peer和DMA。

三种数据传输模型的示意图如下图所示:

image

首先来介绍一下Programmed I/O(PIO)

PIO在早期的PC中被广泛使用,因外当时的处理器的速度要远远大于任何其他外设的速度,所以PIO足以胜任所有的任务。举一个例子,比如说某一个PCI设备需要向内存(SDRAM)中写入一些数据,该PCI设备会向CPU请求一个中断,然后CPU首先先通过PCI总线把该PCI设备的数据读取到CPU内部的寄存器中,然后再把数据从内部寄存器写入到内存(SDRAM)中。

现在看来,这种传输方式的效率还是很低的。首先,每次CPU和PCI设备以及SDRAM通信都需要额外的时钟周期(相对于DMA);其次,这种传输方式还需要长时间地占用CPU,影响CPU的使用率。试想一下,你在用PC在线观看一个1080p60的高清视频,这需要以太网连续地向内存(SDRAM)中写入数据,如果使用PIO的方式的话,将难以保证数据的写入速度。随着目前的PCI外设速度越来越高,PIO已经逐渐被DMA传输方式所取代,但是为了兼容早期的一些设备,PCI Spec依然保留了PIO。

DMA,即Direct Memory Access

DMA是一种在传输过程中,几乎不需要CPU进行干预的数据传输方式。如上面的图片所示,以太网可以直接向内存(SDRAM)中写入数据,而几乎不需要CPU的干预。实际上,DMA不仅仅应用于PCI总线系统中,它是一种更为广泛应用的数据传输方式。目前,几乎所有的CPU,甚至是MCU都支持DMA。具体这里就不详细地介绍了,有兴趣的可以参考百度百科:https://baike.baidu.com/item/DMA/2385376?fr=aladdin或者其它的资料。

Peer-to-Peer

前面的文章中,我们介绍过PCI总线系统中的主机身份并不是固定不变的,而是可以切换的(借助仲裁器),但是同一时刻只能存在一个主机。完成Peer-to-Peer这一传输方式的前提是,PCI总线系统中至少存在一个有能力成为主机的设备。在仲裁器的控制下,完成主机身份的切换,进而获得PCI总线的控制权,然后与总线上的其他PCI设备进行通信。不过,需要注意的是,在实际的系统中,Peer-to-Peer这一传输方式却很少被使用,这是因为获得主机身份的PCI设备(Initiator)和另一个PCI设备(Target)通常采用不同的数据格式,除非他们是同一个厂家的设备。

标签:DMA,PIO,传输方式,总线,PCIe,PCI,Peer,CPU
From: https://www.cnblogs.com/linhaostudy/p/18594392

相关文章

  • PCIe扫盲——PCI总线中的Reflected-Wave Signaling
    PCISpec规定了每个PCI总线上最多可以连接多达32个PCI设备,但是实际上却远远达不到32个,33MHz的32位PCI总线一般只能连接10到12个负载。注:如果使用插槽连接,则一个连接算两个PCI设备,插槽和PCI卡分别算作一个PCI设备。也就是说一个33MHz的PCI总线最多只能连接4到5个插槽即PCI卡。这......
  • PCIe扫盲——一个典型的PCI总线周期
    PCI总线是一种地址和数据复用的总线,即地址和数据占用同一组信号线AD。PCI总线的所有信号都与时钟信号同步,及所有的信号的变化都发生在时钟的上升沿,或者在时钟上升沿进行采样。如下图所示,除了时钟信号CLK和数据地址复用信号AD之外,PCI总线至少还应包括FRAME#(用于表示一次数据传输的......
  • 嵌入式系统的内存访问和总线通信机制解析、PCI/PCIe引入
    往期内容Uart子系统专栏:专栏地址:Uart子系统Linux内核早期打印机制与RS485通信技术–末片,有专栏内容观看顺序interrupt子系统专栏:专栏地址:interrupt子系统Linux链式与层级中断控制器讲解:原理与驱动开发–末片,有专栏内容观看顺序pinctrl和gpio子系统专栏:专栏地......
  • 深入解析非桥PCI设备的访问和配置方法
    往期内容本文章相关专栏往期内容,PCI/PCIe子系统专栏:嵌入式系统的内存访问和总线通信机制解析、PCI/PCIe引入Uart子系统专栏:专栏地址:Uart子系统Linux内核早期打印机制与RS485通信技术–末片,有专栏内容观看顺序interrupt子系统专栏:专栏地址:interrupt子系统Linux链......
  • PCI总线基本概念
    PCI是PeripheralComponentInterconnect(外设部件互连标准)的缩写,它曾经是个人电脑中使用最为广泛的接口,几乎所有的主板产品上都带有这种插槽。目前该总线已经逐渐被PCIExpress总线所取代。PCI即PeripheralComponentInterconnect,中文意思是“外围器件互联”,是由PCISIG(PCIS......
  • PCIe扫盲——PCIe简介
    PCI-Express是继ISA和PCI总线之后的第三代I/O总线,即3GIO。由Intel在2001年的IDF上提出,由PCI-SIG(PCI特殊兴趣组织)认证发布后才改名为“PCI-Express”。它的主要优势就是数据传输速率高,另外还有抗干扰能力强,传输距离远,功耗低等优点。注:第一代总线一般指ISA、EISA、VESA和MicroPla......
  • 2.PCIe协议分析
    从今天开始,我们讲解PCIE协议分析章节的内容,本章分为4节内容,具体如下。第1节:预备知识点我们知道要想深入了解FPGAPCIe逻辑、理解PIO例子工程、应用XAPP1052demo、应用XDMA例子工程,需要熟练知道PCIe的一些最基本的概念,比如PCIe配置空间、PCIeBar空间、PCIe地址映射、PCIe传输层......
  • PCIe发展及基础知识
    1.什么是PCIePCIExpress是新一代的总线接口。早在2001年的春季,英特尔公司就提出了要用新一代的技术取代PCI总线和多种芯片的内部连接,并称之为第三代I/O总线技术。随后在2001年底,包括Intel、AMD、DELL、IBM在内的20多家业界主导公司开始起草新技术的规范,并在2002年完成,对其正式命......
  • XCVU13P板卡设计原理图:509-基于XCVU13P的4路QSFP28光纤PCIeX16收发卡
     一、板卡概述     基于XCVU13P的4路QSFP28光纤PCIeX16收发卡。该板卡要求符合PCIe3.0标准,包含一片XCVU13P-2FLGA2014I、4组64-bit/8GBDDR4;4路QSFP284X光纤,每路光纤支持4X25Gbps,双向;支持32路IO。板卡工作温度范围0到60℃,板卡设计加工包含散热装置,支持服务器风冷散热......
  • 查看PCIe设备的class code
    PCIExpress(PCIe)设备的类代码(ClassCode)是一个标识符,它指示了设备的主要功能或它所属的通用类别。类代码由三个字节组成,通常以十六进制格式表示,它们分别代表基础类(BaseClass)、子类(Subclass)和编程接口(ProgrammingInterface)。可以直接通过/sys下面提供的接口来查看对应设......