一种用于PCIE虚拟化管理的方法技术

技术编号:10014761 阅读:205 留言:0更新日期:2014-05-08 09:47
本发明专利技术涉及一种用于PCIE虚拟化管理的方法,给出一个实现虚拟功能的请求序列号的分配方法,保证每个物理功能下面的虚拟功能都是不同的,能够根据请求序列号来直接完成在虚拟机之间的数据直接传输,这样就能满足不同的虚拟功能对应不同的虚拟机,保证每一个虚拟功能的请求序列号是独立的,通过请求序列号找到相应的配置空间,完成地址之间的转换。本发明专利技术给出一个实现虚拟功能的请求序列号的分配方法,能够根据请求序列号来直接完成于虚拟机之间的数据直接传输,从而降低系统处理数据的成本,提高数据处理的速度。

【技术实现步骤摘要】
【专利摘要】本专利技术涉及一种用于PCIE虚拟化管理的方法,给出一个实现虚拟功能的请求序列号的分配方法,保证每个物理功能下面的虚拟功能都是不同的,能够根据请求序列号来直接完成在虚拟机之间的数据直接传输,这样就能满足不同的虚拟功能对应不同的虚拟机,保证每一个虚拟功能的请求序列号是独立的,通过请求序列号找到相应的配置空间,完成地址之间的转换。本专利技术给出一个实现虚拟功能的请求序列号的分配方法,能够根据请求序列号来直接完成于虚拟机之间的数据直接传输,从而降低系统处理数据的成本,提高数据处理的速度。【专利说明】—种用于PCIE虚拟化管理的方法
本专利技术涉及一种用于PCIE虚拟化管理的方法,具体是指将物理PCIE设备虚拟成多个虚拟设备,每个虚拟设备与一个虚拟机相连的方法。属于IT

技术介绍
目前虚拟化技术在处理器体系机构中得到了越来越多的应用,虚拟化的本质就是把软件变成可以按需递交的动态服务,从而降低IT管理的成本,同时大大提升IT服务的响应速度。当前的虚拟化技术有:服务器虚拟化、CPU虚拟化、程序虚拟化、操作系统虚拟化、硬件虚拟化、完全虚拟、超虚拟化、桌面虚拟化、操作系统级的虚拟化等。与PCIE相关的虚拟化技术是指在一个处理器系统中运行多个虚拟化处理器系统的技术,每个一个虚拟处理器都需要独立的虚拟运行环境,包括CPU、内存和外部设备。实现虚拟化有软件实现和硬件实现,软件实现主要是有虚拟机监控器(Virtual MachineMonitor)处理外部设备和虚拟机之间的通信,虚拟机监控器(VMM)来集中管理物理资源,包括对外部设备的管理(PCIE属于外部设备中重点关注的设备)。但是由于数据流通每次都要经过虚拟机监控器(VMM)的拦截和处理,所以造成数据传输速度的降低,例如:10G网卡通过虚拟机监控器(VMM)到达虚拟机的时候实际速度只能到达5G或6G,由于不是虚拟机直接和外部设备直接相连,造成外部设备的很多高级功能都不能正常的被虚拟机使用。硬件实现方式可以直接把一个外部设备直接与虚拟机相连,提高了传输速度和各方面性能。处理器需要为虚拟化环境设置专门的硬件来支持多个虚拟处理器系统在一个物理环境中的资源共享。这方面有IA (Intel Architecture)处理器的直接访问I/O的虚拟化技术(IntelVirtualization Technology for Directed 1/0 /VT_d)技术和 AMD 处理器的输入输出内存管理单元(Input/Output Memory Management Unit)技术,这两种技术原理是都是类似的,都是将PCIE总线域地址转换为主机物理地址(Host Physical Address)地址,这个映射过程也被称为DMA映射(DMA Remapping)。但是这种直接分配(Direct Assignment)方式也有自身的缺点,一个PCIE设备在一个指定的时间内,只能与一个虚拟机I (Domainl)绑定,而其他虚拟机2 (Domain2)访问与该虚拟机绑定的设备时,需要首先向虚拟机I (Domainl)发送申请,在虚拟机I (Domainl)从PCIE获得数据的时候,再传送给虚拟机2 (Domain2),该方法增加了虚拟机访问PCIE设备的延迟,同时也干扰了其他虚拟机的正常工作。在处理器设置多个同样的设备,不仅增加了系统的成本,而且增加了处理器系统的规模,从而造成了不必要的浪费。
技术实现思路
本专利技术的目的在于克服上述不足,提供一种用于PCIE虚拟化管理的方法,保证每一个虚拟功能能够合理的分配请求序列号,降低系统处理数据的成本,提高数据处理的速度。本专利技术的目的是这样实现的:一种用于PCIE虚拟化管理的方法,所述方法包括以下步骤: 步骤一、初始化,获取当前整个系统链路的拓扑结构和总线号、设备号、功能号并存入PCIE的寄存器中; 步骤二、分配新加入的第一个虚拟功能请求序列号 当有物理功能需要进行虚拟化时,为了给该物理功能下的每个虚拟功能分配一个独立的请求序列号,首先对第一个新加入的虚拟功能进行分配请求序列号,该虚拟功能的请求序列号通过在所属物理功能的请求序列号基础上加上一个偏移量,偏移量的值就是当前已分配请求序列号的虚拟功能的总数值; 步骤三、对需要进行虚拟化的物理功能下的所有虚拟功能进行请求序列号分配根据偏移量可以得到第一个虚拟功能的请求序列号,然后该物理功能下面的剩下虚拟功能的虚拟功能在第一个虚拟功能的请求序列号的基础上依次加1,定义一个幅度值变量,幅度值表示需要增加的虚拟功能的值。与现有技术相比,本专利技术的有益效果是: 本专利技术给出一个实现虚拟功能的请求序列号的分配方法,保证每个物理功能下面的虚拟功能都是具有不同的请求序列号,能够根据请求序列号来直接完成于虚拟机之间的数据直接传输,从而降低系统处理数据的成本,提高数据处理的速度。【专利附图】【附图说明】图1是本专利技术涉及的基于单根I/O虚拟化(SR-1OV)的PCIe设备中物理功能(PF)和虚拟功能(VF)的关系图。图2是本专利技术中涉及的初始化功能的状态示意图。图3是本专利技术中的进行请求序列号分配的示意图。图4是本专利技术涉及的四个物理功能(PF)的虚拟功能(VF)产生的请求序列号(RID)的值。【具体实施方式】本专利技术提供一种用于PCIE虚拟化管理的方法,所述方法包括以下步骤: 步骤一、如图2所示,初始化,获取当前整个系统链路的拓扑结构和总线号、设备号、功能号并存入PCIE的寄存器中。I)上电启动时,整个系统不知道各个外连设备的总线号、设备号、功能号,需要PCIE的配置软件进行总线/设备/功能的枚举。配置软件一开始只知道总线O以及驻留在根复合体内Host-PCI桥下游的总线,首先从总线O设备O开始,枚举软件用配置读请求读取总线O可能存在的32个设备之中每一个设备的功能O的厂商ID,若返回一个有效的厂商ID (非FFFFh)表明该设备存在,然后继续探测改端口是什么样的端口,一共有七种:一、纯粹的PCIE端点。二、传统的PCIE端点。三、根复合体的根端口。四、交换开关上游端口。五、交换开关下游端口。六、PCIE到PCI的桥。七、PCI到PCIE的桥。根据图4可知探测到设备O之后,确定是根端点端口,然后将根复合体桥内寄存器(命它为A)三个总线号设定为 原级总线号寄存器=0 ; 次级总线号寄存器=1; 下属总线号寄存器=1; 探测到总线O下面的设备O之后,先纵向探测下面的总线号,后面的设备号等探测到最下面的端点之后继续探测。暂时完成总线O探测开始总线I探测。总线I从设备O开始探测,若设备O存在,它为交换开关上游端口。将交换开关桥内寄存器(命为B)三个总线号设定为 原级总线号寄存器=1 ; 次级总线号寄存器=2; 下属总线号寄存器=2; 此时将桥A的下属总线寄存器也改为2 ;暂时完成总线I探测开始总线2探测。总线2从设备O开始探测,若设备O存在,它为交换开关的下游端口。将交换开关桥内寄存器(命为C)三个总线号设定为 原级总线号寄存器=2; 次级总线号寄存器=3; 下属总线号寄存器=3; 此时将桥A、B的下属总线寄存器也改为3 ;暂时完成总线2探测开始总线3探测。总线3从设备O本文档来自技高网
...
一种用于PCIE虚拟化管理的方法

【技术保护点】
一种用于PCIE虚拟化管理的方法,其特征在于所述方法包括以下步骤:步骤一、初始化,获取当前整个系统链路的拓扑结构和总线号、设备号、功能号并存入PCIE的寄存器中;步骤二、分配新加入的第一个虚拟功能请求序列号当有物理功能需要进行虚拟化时,为了给该物理功能下的每个虚拟功能分配一个独立的请求序列号,首先对第一个新加入的虚拟功能进行分配请求序列号,该虚拟功能的请求序列号通过在所属物理功能的请求序列号基础上加上一个偏移量,偏移量的值就是当前已分配请求序列号的虚拟功能的总数值;步骤三、对需要进行虚拟化的物理功能下的所有虚拟功能进行请求序列号分配根据偏移量可以得到第一个虚拟功能的请求序列号,然后该物理功能下面的剩下虚拟功能的虚拟功能在第一个虚拟功能的请求序列号的基础上依次加1,定义一个幅度值变量,幅度值表示需要增加的虚拟功能的值。

【技术特征摘要】

【专利技术属性】
技术研发人员:林谷李良磊李冰丁贤根
申请(专利权)人:江苏华丽网络工程有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1