2.2 HOST主桥】的更多相关文章

本节以MPC8548处理器为例说明HOST主桥在PowerPC处理器中的实现机制,并简要介绍x86处理器系统使用的HOST主桥. MPC8548处理器是Freescale基于E500 V2内核的一个PowerPC处理器,该处理器中集成了DDR控制器.多个eTSEC(Enhanced Three-Speed Ethernet Controller).PCI/PCI-X和PCIe总线控制器等一系列接口.MPC8548处理器的拓扑结构如图2?2所示.   如上图所示,MPC8548处理器的L1 Cac…
当当热卖商品推荐 先打下广告,上面是一本好书了O(∩_∩)O~ 前言 因为遇到一个pci总线的问题,所以去学习了解linux 的pci驱动,中间总结了一些pci总线原理和linux驱动的知识,在此总结出来备查. PCI总线原理简介 组成结构 PCI总线是一种局部总线,与系统总线有所区别,主要是为了连接外设.它在一个处理器系统中的位置如下图 与PCI总线相关的模块包括,HOST主桥.PCI总线.PCI桥和PCI设备,所有的PCI设备组成一棵树,后面会看到linux内核在内存中也维护了一棵类似的树.…
总线的基本任务是实现数据传送,将一组数据从一个设备传送到另一个设备,当然总线也可以将一个设备的数据广播到多个设备.在处理器系统中,这些数据传送都要依赖一定的规则,PCI总线并不例外. PCI总线使用单端并行数据线,采用地址译码方式进行数据传递,而采用ID译码方式进行配置信息的传递.其中地址译码方式使用地址信号,而ID译码方式使用PCI设备的ID号,包括Bus Number.Device Number.Function Number和Register Number.下文将以图1?1中的处理器系统为…
PCI总线是一条共享总线,在一条PCI总线上可以挂接多个PCI设备.这些PCI设备通过一系列信号与PCI总线相连,这些信号由地址/数据信号.控制信号.仲裁信号.中断信号等多种信号组成. PCI总线是一个同步总线,每一个设备都具有一个CLK信号,其发送设备与接收设备使用这个CLK信号进行同步数据传递.PCI总线可以使用33MHz或者66MHz的时钟频率,而PCI-X总线可以使用133MHz.266MHz或者533MHz的时钟频率. 除了RST#.INTA~D#.PME#和CLKRUN#等信号之外,…
如上文所述,PCI总线作为处理器系统的局部总线,是处理器系统的一个组成部件,讲述PCI总线的组成结构不能离开处理器系统这个大环境.在一个处理器系统中,与PCI总线相关的模块如图1?1所示. 如图1?1所示在一个处理器系统中,与PCI总线相关的模块包括,HOST主桥.PCI总线.PCI桥和PCI设备.PCI总线由HOST主桥和PCI桥推出,HOST主桥与主存储器控制器在同一级总线上,PCI设备可以方便地通过HOST主桥访问主存储器,即进行DMA操作. 值得注意的是,PCI设备的DMA操作需要与处理…
PCI总线作为处理器系统的局部总线,主要目的是为了连接外部设备,而不是作为处理器的系统总线连接Cache和主存储器.但是PCI总线.系统总线和处理器体系结构之间依然存在着紧密的联系. PCI总线作为系统总线的延伸,其设计考虑了许多与处理器相关的内容,如处理器的Cache共享一致性和数据完整性,以及如何与处理器进行数据交换等一系列内容.其中Cache共享一致性和数据完整性是现代处理器局部总线的设计的重点和难点,也是本书将重点讲述的主题之一. 独立地研究PCI总线并不可取,因为PCI总线仅是处理器系…
TLP的路由是指TLP通过Switch或者PCIe桥片时采用哪条路径,最终到达EP或者RC的方法.PCIe总线一共定义了三种路由方法,分别是基于地址(Address)的路由,基于ID的路由和隐式路由(Implicit)方式. 存储器和I/O读写请求TLP使用基于地址的路由方式,这种方式使用TLP中的Address字段进行路由选径,最终到达目的地. 而配置读写报文."Vendor_Defined Messages"报文.Cpl和CplD报文使用基于ID的路由方式,这种方式使用PCI总线号…
在PCI Agent设备进行数据传送之前,系统软件需要初始化PCI Agent设备的BAR0~5寄存器和PCI桥的Base.Limit寄存器.系统软件使用DFS算法对PCI总线进行遍历时,完成这些寄存器的初始化,即分配这些设备在PCI总线域的地址空间.当这些寄存器初始化完毕后,PCI设备可以使用PCI总线地址进行数据传递. 值得注意的是,PCI Agent设备的BAR0~5寄存器和PCI桥的Base寄存器保存的地址都是PCI总线地址.而这些地址在处理器系统的存储器域中具有映像,如果一个PCI设备…
PCI Agent设备之间,以及HOST处理器和PCI Agent设备之间可以使用存储器读写和I/O读写等总线事务进行数据传送.在大多数情况下,PCI桥不直接与PCI设备或者HOST主桥进行数据交换,PCI桥仅转发来自PCI Agent设备或者HOST主桥的数据. PCI Agent设备间的数据交换,并不是本章讨论的重点.本章更侧重讲述PCI Agent设备使用DMA机制读写主存储器的数据,以及HOST处理器如何访问PCI设备的BAR空间.本章还使用了一定的篇幅讨论在PCI总线中与Cache相关…
PCI桥规范定义了透明桥的实现规则,本篇在第2.3.1节中详细介绍了这种桥片.通过透明桥,处理器系统可以以HOST主桥为根节点,建立一颗PCI总线树,在这个树上的PCI设备共享同一个PCI总线域上的地址空间. 但是在某些场合下PCI透明桥并不适用.在图2?15所示的处理器系统中存在两个处理器,此时使用PCI桥1连接处理器2并不利于整个处理器系统的配置与管理.我们假定PCI总线使用32位地址空间,而处理器1和处理器2所使用的存储器大小都为2GB,同时我们假定处理器1和处理器2使用的存储器都可以被P…
PCI总线定义了两类配置请求,一个是Type 00h配置请求,另一个是Type 01h配置请求.PCI总线使用这些配置请求访问PCI总线树上的设备配置空间,包括PCI桥和PCI Agent设备的配置空间. 其中HOST主桥或者PCI桥使用Type 00h配置请求,访问与HOST主桥或者PCI桥直接相连的PCI Agent设备或者PCI桥[1]:而HOST主桥或者PCI桥使用Type 01h配置请求,需要至少穿越一个PCI桥,访问没有与其直接相连的PCI Agent设备或者PCI桥.如图2?8所示…
PCI设备都有独立的配置空间,HOST主桥通过配置读写总线事务访问这段空间.PCI总线规定了三种类型的PCI配置空间,分别是PCI Agent设备使用的配置空间,PCI桥使用的配置空间和Cardbus桥片使用的配置空间. 本节重点介绍PCI Agent和PCI桥使用的配置空间,而并不介绍Cardbus桥片使用的配置空间.值得注意的是,在PCI设备配置空间中出现的地址都是PCI总线地址,属于PCI总线域地址空间. 2.3.1 PCI桥 PCI桥的引入使PCI总线极具扩展性,也极大地增加了PCI总线…
HOST主桥的实现因处理器系统而异.PowerPC处理器和x86处理器的HOST主桥除了集成方式不同之外,其实现机制也有较大差异.但是这些HOST主桥所完成的最基本功能依然是分离存储器域与PCI总线域,完成PCI总线域到存储器域,存储器域到PCI总线域之间的数据传递,并管理PCI设备的配置空间. 上文曾经多次提到在一个处理器系统中,存在PCI总线域与存储器域,深入理解这两个域的区别是理解HOST主桥的关键所在.在一个处理器系统中,存储器域.PCI总线域与HOST主桥的关系如图2?1所示. 上图所…
在PCI体系结构中,含有两类桥片,一个是HOST主桥,另一个是PCI桥.在每一个PCI设备中(包括PCI桥)都含有一个配置空间.这个配置空间由HOST主桥管理,而PCI桥可以转发来自HOST主桥的配置访问.在PCI总线中,PCI Agent设备使用的配置空间与PCI桥使用的配置空间有些差别,但这些配置空间都是由处理器通过HOST主桥管理.…
PCI-X总线仍采用并行总线技术.PCI-X总线使用的大多数总线事务基于PCI总线,但是在实现细节上略有不同.PCI-X总线将工作频率提高到533MHz,并首先引入了PME(Power Management Event)机制.除此之外,PCI-X总线还提出了许多新的特性. 1.5.1 Split总线事务 Split总线事务是PCI-X总线一个重要特性.该总线事务替代了PCI总线的Delayed数据传送方式,从而提高了Non-Posted总线事务的传送效率.下文以存储器读为例,说明PCI-X设备如…
PCI总线使用INTA#.INTB#.INTC#和INTD#信号向处理器发出中断请求.这些中断请求信号为低电平有效,并与处理器的中断控制器连接.在PCI体系结构中,这些中断信号属于边带信号(Sideband Signals),PCI总线规范并没有明确规定在一个处理器系统中如何使用这些信号,因为这些信号对于PCI总线是可选信号.PCI设备还可以使用MSI机制向处理器提交中断请求,而不使用这组中断信号.有关MSI机制的详细说明见第8章. 1.4.1 中断信号与中断控制器的连接关系 不同的处理器使用的…
PCIe总线作为处理器系统的局部总线,其作用与PCI总线类似,主要目的是为了连接处理器系统中的外部设备,当然PCIe总线也可以连接其他处理器系统.在不同的处理器系统中,PCIe体系结构的实现方法略有不同.但是在大多数处理器系统中,都使用了RC.Switch和PCIe-to-PCI桥这些基本模块连接PCIe和PCI设备.在PCIe总线中,基于PCIe总线的设备,也被称为EP(Endpoint). 4.2.1 基于PCIe架构的处理器系统 在不同的处理器系统中,PCIe体系结构的实现方式不尽相同.P…
虽然PCI总线取得了巨大的成功,但是随着处理器主频的不断提高,PCI总线提供的带宽愈发显得捉襟见肘.PCI总线也在不断地进行升级,其位宽和频率从最初的32位/33MHz扩展到64位/66MHz,而PCI-X总线更是将总线频率提高到533MHz,能够提供的最大理论带宽为4263MB.但是PCI总线仍无法解决其体系结构中存在的一些缺陷.PCI总线面临着一系列挑战,包括带宽.流量控制和数据传送质量等. PCI总线的最高工作频率为66M,最大位宽为64b,从理论上讲,PCI总线可以提供的最大传输带宽为5…
在许多高性能处理器中,还提出了一些新的概念,以加速外设到存储器的DMA写过程.如Freescale的I/O Stashing和Intel的IOAT技术. 如图3?8所示,当设备进行存储器写时,如果可以对Cache直接进行写操作时,即便这个存储器写命中了一个状态为M的Cache行,可以不将该Cache行的数据回写到存储器中,而是直接将数据写入Cache,之后该Cache行的状态依然为M.采用这种方法可以有效提高设备对存储器进行写操作的效率.采用直接向Cache行写的方法,PCI设备对存储器写命中一…
如果PCI设备访问的地址在某个CPU的Cache行中命中时,可能会出现三种情况. 第一种情况是命中的Cache行其状态为E,即Cache行中的数据与存储器中的数据一致:而第二种情况是命中的Cache行其状态为S.其中E位为1表示该数据在SMP处理器系统中,有且仅有一个CPU的Cache中具有数据副本:而S位为1表示在SMP处理器系统中,该数据至少在两个以上CPU的Cache中具有数据副本. 当Cache行状态为E时,这种情况比较容易处理.因为PCI设备(通过HOST主桥)写入存储器的信息比Cac…
PCI设备向"可Cache的存储器空间"进行读操作的过程相对简单.对于x86处理器或者PowerPC处理器,如果访问的数据在Cache中命中,CPU会通知FSB总线,PCI设备所访问的数据在Cache中. 首先HOST主桥发起存储器读总线事务,并在Request Phase中,提供地址.Snoop Agent在Snoop Phase进行总线监听,并通过HIT#和HITM#信号将监听结果通知给Response Agent.如果Cache行的状态为E时,Response Agent将提供数…
在x86处理器和PowerPC处理器中,PCI设备对"不可Cache的存储器空间"进行DMA读写的过程并不相同.其中PowerPC处理器对"不可Cache的存储器空间"进行DMA读写进行了专门的处理,而x86处理器在对这类空间操作时,效率相对较低. 1 x86处理器 x86处理器使用MTRR(Memory Type Range Register)寄存器设置存储器空间的属性,如果存储器空间为"可Cache空间",x86处理器还可以进一步设置这段空间…
PCI设备对可Cache的存储器空间进行DMA读写的操作的过程较为复杂,有关Cache一致性的话题可以独立成书.而不同的处理器系统使用的Cache Memory的层次结构和访问机制有较大的差异,这部分内容也是现代处理器系统设计的重中之重. 本节仅介绍在Cache Memory系统中与PCI设备进行DMA操作相关的,一些最为基础的概念.在多数处理器系统中,使用了以下概念描述Cache一致性的实现过程. 1 Cache一致性协议 多数SMP处理器系统使用了MESI协议处理多个处理器之间的Cache一…
PCI总线规范定义了一系列与Cache相关的总线事务,以提高PCI设备与主存储器进行数据交换的效率,即DMA读写的效率.当PCI设备使用DMA方式向存储器进行读写操作时,一定需要经过HOST主桥,而HOST主桥通过FSB总线[1]向存储器控制器进行读写操作时,需要进行Cache共享一致性操作. PCI设备与主存储器进行的Cache共享一致性增加了HOST主桥的设计复杂度.在高性能处理器中Cache状态机的转换模型十分复杂.而HOST主桥是FSB上的一个设备,需要按照FSB规定的协议处理这个Cac…
PCI设备的数据传递使用地址译码方式,当一个存储器读写总线事务到达PCI总线时,在这条总线上的所有PCI设备将进行地址译码,如果当前总线事务使用的地址在某个PCI设备的BAR空间中时,该PCI设备将使能DEVSEL#信号,认领这个总线事务. 如果PCI总线上的所有设备都不能通过地址译码,认领这个总线事务时,这条总线的"负向译码"设备将认领这个总线事务,如果在这条PCI总线上没有"负向译码"设备,该总线事务的发起者将使用Master Abort总线周期结束当前PCI总…
PCI总线作为处理器系统的局部总线,主要目的是为了连接外部设备,而不是作为处理器的系统总线连接Cache和主存储器.但是PCI总线.系统总线和处理器体系结构之间依然存在着紧密的联系. PCI总线作为系统总线的延伸,其设计考虑了许多与处理器相关的内容,如处理器的Cache共享一致性和数据完整性,以及如何与处理器进行数据交换等一系列内容.其中Cache共享一致性和数据完整性是现代处理器局部总线的设计的重点和难点,也是本书将重点讲述的主题之一. 独立地研究PCI总线并不可取,因为PCI总线仅是处理器系…
写在前面 近两年来和几个单位接触下来,发现PCIe还是一个比较常用的,有些难度的案例,主要是涉及面比较广,需要了解逻辑设计.高速总线.Linux和Windows的驱动设计等相关知识. 这篇文章主要针对Xilinx家V6和K7两个系列的PFGA,在Linux和Windows两种系统平台下,基于Xilinx的参考案例XAPP1052的基础上,设计实现了总线主控DMA(Bus Master DMA),透明映像内存空间和中断机制,在实际工程实践中得到了良好的应用,主要应用在光纤PCIe数据采集卡.FPG…
1.2.8判断pcie设备是否支持雷电技术 Intel具有一种基于Thunderbolt技术的PCIE变体,它结合了DisplayPort和PCIe协议,与Mini DisplayPort兼容. Thunderbolt技术融合两种通信方法或者说协议,其中PCI Express用于数据传输,可以连接几乎任何类型的设备,DisplayPort用于显示,能同步传输1080p乃至超高清视频和最多八声道音频. 因此代码只在intel生产的设备中进行判别. set_pcie_thunderbolt() wh…
文档版本 开发工具 测试平台 工程名字 日期 作者 备注 V1.0 ise14.7 DBF板 Day2/PCIETest1 2016.03.31 lutianfei none 参考资料: Spartan 6 PCIE_V2.4 真教程(二) 菜鸟5小时速成FPGA_PCIE设计高手教程.pdf v6_pcie_ug517.pdf PCI+EXPRESS体系结构导读.pdf xapp1052.pdf 一 常见接口速度 二事务处理层协议理解 1 事物层空间说明 2 配置空间概述 21 配置空间寄存器…
初步了解完PCI总线标准之后,我们接下来正式开始PCIe设备的漫游之旅.从我们按下PC的电源按钮开始,BIOS就接管系统控制权开始工作,它会先进行一些内存和设备的初始化工作(当然,也包括我们的PCI设备),由于商业上的原因,Phoenix等厂商的BIOS代码需要授权协议,在此,我们以另外一个款开源BIOS(openbios)为例,来剖析BIOS中,我们的PCIe设备是如何被找到以及初始化的. PCI设备的扫描是基于深度优先搜索算法(DFS:Depth First Search),也就是说,下级分…