下面以存储器读为例,说明PCI-X设备如何使用Split总线事务。这些PCI-X桥使用Split Response周期结束当前总线事务,释放上游PCI总线。之后继续转发这个存储器读请求,直到Completer认领这个存储器读请求总线事务。Completer准备好数据后,将重新申请总线,并使用存储器读完成总线事务主动地将数据传送给Requester。PCI-X总线提出的Split总线事务被PCIe总线继承。......
2025-09-30
MR-IOV技术的主要功能是将处理器系统的PCI总线域划分为多个虚拟PCI总线域,从而多个处理器系统可以共享同一个物理PCI总线域。MR-IOV技术引入了几个新的概念,MRA RP、MRA Devices和MRA Switch。其中MRA Switch的结构如图13-14所示。
MRA Switch与传统的Switch相比,其结构有较大不同。
●MRA Switch由0个或者多个上游端口组成,如图13-14所示MRA Switch可以与多个RP连接,这个RP可以是MRA RP也可以是传统的RP。在某些应用中,MRA Switch可以作为中间节点与其他MRA RP相连,此时该MRA Switch不需要上游端口。
●MRA Switch由0个或者多个下游端口组成,MRA Switch可以与多个MRA设备连接,也可以连接SR-IOV设备和传统的PCIe设备。MRA Switch可以作为中间节点与其他MRA Switch相连,此时该MRA Switch可以不需要下游端口。

图13-14 MRA Switch的结构
●使用MRA Switch可以组成多个虚拟PCI总线域VHs(Virtual Hierarchies)。如图13-14所示,MRA Switch由3套P2P桥组成,每一套P2P可以组成1个PCI总线域,这3个PCI总线域的地址空间独立。
●MRA Switch可支持若干个双向端口,与其他MRA Switch和MRA RP相连。处理器系统之间可以使用这些双向端口组成复杂的服务器系统。
MRA Switch的设计与实现较为复杂,而且该类芯片的应用范围较为有限,目前仅可能应用在支持虚拟化技术的高端服务器上。更为重要的是,Intel并没有制作Switch芯片的传统,因此在短时间之内MRA Switch仅可能出现在MR-IOV规范中,而很难有实际的芯片。Intel目前还没有支持MRA RP的Chipse t,但是可以预计MRA RP一定出现在MRA Switch之前,因而目前应该关注MRA RP与MRA Devices的连接拓扑结构。
MRA Devices与SR-IOV设备相比略有不同,MRA Devices略微更改了数据链路层。此外MRA Devices还重新定义了SR-IOV设备的PF和VF,使得这些PF或者VF可以分属于不同的PCI总线域。
MRA Devices可以与MRA RP或者MRA Switch联合使用,从而组成独立的PCI总线域。这些独立的PCI总线域可以与多个独立的虚拟机组成多个虚拟处理器系统。在这种结构下,不同的存储器域可以使用独立的PCI总线域,以最大限度地实现虚拟机对外部设备的隔离访问。MRA Device的组成结构如图13-15所示。
在MRA Device中含有1个新的子设备BF(Base Function),该设备存放管理MRA De-vices的MR-IOV的Capability结构,该结构用来管理在MRA Device的PCI总线域。除此之外,在该结构中还可以存放与设备相关的寄存器,如网卡使用的MAC地址。BF使用“BF0:f”进行描述,其中“0”表示BF使用的VH号,而“f”表示BF使用的Function号,其值在0~255之间。值得注意的是BF使用的VH号只能为0。
(https://www.chuimin.cn)
图13-15 MRA Device的结构
在MRA Device中,如果含有多个PF设备,这种MRA Device也被称为SR-IOV/MRA Devices。这些PF设备使用“PF h:f”进行编码,其中“h”表示PF使用的VH号,而“f”表示PF使用的Function号,其值在0~255之间。
而与SR-IOV类似,在MRA Device中还存在多组VF,其中每一组VF与一个PF对应,并使用“VF h:f,s”描述,其中“h”表示VF使用的VH号,而“f”表示PF使用的Function号,“s”表示VF号。
由以上描述可见,在MRA Device中,PF和VF可以分别属于不同的虚拟PCI总线域VH,并与MRA RP或者MRA Switch连接,形成一个完整的PCI总线域。为简便起见,本节仅介绍MRA RP与SR-IOV设备、SR-IOV/MRA Devices和MRA Devices的连接关系,如图13-16所示。

图13-16 MRA RP与MRA Device的连接
该图所示的MRA RC支持三个虚拟PCI总线域,分别为VHA、VHB和VHC,并包含三个MRA RP,其中RP1与SR-IOV Device X、RP2与SR-IOV/MRA Device Y、RP3与MRA De-vice Z连接。
Device X仅含有一个PCI总线域,因此只能指派给一个虚拟PCI总线域,假设该设备使用VHA;Device Y中含有2个PCI总线域,假设该设备的VH1与VHB对应,而VH0与VHA对应;Device Z中含有3个PCI总线域,假设该设备的VH2与VHC对应,VH1与VHB对应,而VH0与VHA对应。
由此可知,在当前处理器系统中,虚拟PCI总线域VHA中包含Device X中的全部子设备、Device Y中的“PF0:1”、“VF 0:1,1”和“VF 0:1,2”和Device Z中的“F0:0”;虚拟PCI总线域VHB中包含Device Y的“PF1:0”和Device Z中的“F1:0”;而虚拟PCI总线域VHC中包含Device Z中的“F2:0”。
假设在处理器系统中含有3个虚拟机,这3个虚拟机可以分别使用VHA、B和C这3个不同的虚拟PCI总线域,从而实现对PCI设备的隔离访问。MR-IOV技术的实现细节较为复杂,本节对此不做深入介绍。
通过以上描述,可以发现使用MR-IOV技术,通过为虚拟机提供独立的PCI总线域,较好地解决了虚拟机对外部设备的隔离访问。而且处理器系统还可以使用MRA Switch组成更为复杂的网络拓扑结构,从而便于实现基于多个SMP系统的虚拟机。但是目前尚无支持MR-IOV技术的RP和Switch。
相关文章
下面以存储器读为例,说明PCI-X设备如何使用Split总线事务。这些PCI-X桥使用Split Response周期结束当前总线事务,释放上游PCI总线。之后继续转发这个存储器读请求,直到Completer认领这个存储器读请求总线事务。Completer准备好数据后,将重新申请总线,并使用存储器读完成总线事务主动地将数据传送给Requester。PCI-X总线提出的Split总线事务被PCIe总线继承。......
2025-09-30
目前虚拟化技术在处理器体系结构中,已经占据一席之地。本章所强调的虚拟化技术是指在一个处理器系统[109]中运行多个虚拟处理器系统的技术。因此处理器需要为虚拟化环境设置专门的硬件,以支持多个虚拟处理器系统在一个物理环境中的资源共享。虚拟化技术的核心是通过VMM集中管理物理资源,而每个虚拟处理器系统通过VMM访问实际的物理资源。本章重点关注的是VMM对外部设备的管理,而在外部设备中重点关注对PCI设备的管理。......
2025-09-30
一家公司准备聘用一名公关部长,经笔试筛选后,只剩下八名考生等待面试,面试限定每人在两分钟内,对主考官的提问做出回答。结果,这五名应试者全部被淘汰了。公共关系主体是公共关系三大要素之一。在社会组织的运行过程中,社会组织必须树立明确的公共关系意识,社会组织总是居于主体地位,策划各种旨在影响和改变组织环境的公共关系活动,使组织处于良性运转之中。......
2025-09-29
事务层是PCIe总线层次结构的最高层,该层次将接收PCIe设备核心层的数据请求,并将其转换为PCIe总线事务,PCIe总线使用的这些总线事务在TLP头中定义。PCIe的事务层还支持流量控制和虚通路管理等一系列特性,而PCI总线并不支持这些新的特性。在PCIe总线中,不同的总线事务采用的路由方式不相同。PCIe总线使用的数据报文首先在事务层中形成,这个数据报文也称为事务层数据报文,即TLP。......
2025-09-30
MSI Capability结构共有四种组成方式,分别是32和64位的Message结构,32位和64位带中断Masking的结构。MSI Capability寄存器的结构如图10-1所示。图10-1 MSI Capability结构●Capability ID字段记载MSI Capability结构的ID号,其值为0x05。表10-1 MSI Cabalibities结构的Message Control字段[67] 此时PCI设备配置空间Command寄存器的“Interrupt Disable”位为1。当MSI En able位有效时,该字段存放MSI报文使用的数据。该字段需要与Mask Bits字段联合使用。......
2025-09-30
在一段程序中,存在大量的分支预测指令,因而在某种程度上增加了指令Fetch的难度。但是分支预测单元并不会每次都能正确判断分支指令的执行路径,这为指令Fetch制造了不小的麻烦,在这个背景下许多分支预测策略应运而生。在PowerPC处理器中,条件转移指令“bc”表示Taken;而“bc-”表示Not Taken。BTB的功能相当于存放转移指令的Cache,其状态机转换也与Cache类似。转移指令B执行完毕后,将实际执行结果Rc更新到BHR寄存器中,并同时更新PHT中对应的Entry。......
2025-09-30
设置DLLP的目的是为了保证TLP的正确传送和管理PCIe链路。值得注意的是,DLLP并不是由TLP加上Sequence前缀和LCRC后缀组成的,而具有单独的格式。图7-4 DLLP的格式大多数DLLP由PCIe设备自动产生,而与事务层没有直接联系。表7-1 DLLP的编码这些DLLP报文的描述如下。该DLLP表示接收端正确收到来自对端的TLP。ACK和NAK DLLP与ACK/NAK协议相关,是数据链路层的两个重要DLLP。这两个DLLP的详细作用如第7.2节所述。一些定制的DLLP,PCIe总线规范并未对此约束。这些DLLP由用户自定义使用。......
2025-09-30
相关推荐