一种总线虚拟化的方法、装置及系统的制作方法

文档序号:9432355阅读:743来源:国知局
一种总线虚拟化的方法、装置及系统的制作方法
【技术领域】
[0001] 本发明涉及计算机技术领域,具体涉及一种总线虚拟化的方法、装置及系统。
【背景技术】
[0002] 现有技术中的多内核操作系统是指在一个物理计算节点内包含多个处理器内核, 处理器内核使用同一根全局数据总线,也叫前端总线,前端总线通过主桥(hostbridge)或 者根复合体(RC,rootcomplex)的转接可W连接到PCIE总线,于是,运行于不同处理器内 核的内核代码都可W通过一个配置寄存器对扫描连接在PCIE总线上的总线设备、对PCI总 线上的总线设备进行访问。一个配置寄存器对包括一个地址寄存器和一个数据寄存器。
[0003] 现有技术中,每个处理器内核都可W通过一个配置寄存器对扫描总线和配置读写 总线设备。送样;所有的处理器内核只有一个配置寄存器对,多个处理器内核对该配置寄存 器对进行共享,送样,地址寄存器和数据寄存器中的值就会出现混乱,导致正确性的问题。

【发明内容】

[0004] 本发明实施例提供一种总线虚拟化的方法,可W确保每个处理器内核在访问总线 设备时,可W使用独立的一个配置寄存器对,从而可W保证处理器内核对总线设备访问正 确性。本发明实施例还提供了相应的装置及系统。
[0005] 本发明第一方面提供一种总线虚拟化的方法,包括;所述总线的根复合体RC中包 括多个配置寄存器对,且每个配置寄存器对包括一个地址寄存器和一个数据寄存器;
[0006] 所述RC接收处理器内核中的总线代理装置发出的总线事务消息,所述总线事务 消息中包含本次总线事务的标识,所述本次总线事务的标识用于标识发起所述本次总线事 务的所述处理器内核;
[0007] 所述RC从所述多个配置寄存器对中,确定所述本次总线事务的标识对应的所述 处理器内核应使用的配置寄存器对,W便所述处理器内核向确定的所述配置寄存器对的地 址寄存器中写入要配置的地址信息,向确定的所述配置寄存器对的数据寄存器中读写要给 总线设备配置的数据。
[0008] 结合第一方面,在第一种可能的实现方式中,所述RC从所述多个配置寄存器对 中,确定所述本次总线事务的标识对应的所述处理器内核应使用的配置寄存器对,包括:
[0009] 所述RC根据所述本次总线事务的标识,从总线事务标识与配置寄存器对的关联 关系中,确定与所述本次总线事务的标识对应的配置寄存器对,作为所述本次总线事务的 标识对应的所述处理器内核应使用的配置寄存器对。
[0010] 结合第一方面,在第二种可能的实现方式中,所述RC从所述多个配置寄存器对 中,确定所述本次总线事务的标识对应的所述处理器内核应使用的配置寄存器对,包括:
[0011] 所述RC从所述多个配置寄存器对中,确定状态处于空闲态的配置寄存器对;
[0012] 从状态处于空闲态的配置寄存器对中,选择一个配置寄存器对,作为所述本次总 线事务的标识对应的所述处理器内核应使用的配置寄存器对。
[0013] 结合第一方面第二种可能的实现方式,在第H种可能的实现方式中,所述从状态 处于空闲态的配置寄存器对中,选择一个配置寄存器对,作为所述本次总线事务的标识对 应的所述处理器内核应使用的配置寄存器对之后,所述方法还包括:
[0014] 将选择的所述一个配置寄存器对中记录的总线事务标识修改为所述本次总线事 务的标识,将所述一个配置寄存器对的状态修改为使用状态。
[0015] 结合第一方面第二种可能的实现方式,在第四种可能的实现方式中,当确定状态 处于空闲态的配置寄存器对时,确定出所述多个配置寄存器对的状态都处于使用状态,贝U 向所述处理器内核发出异常报告。
[0016] 结合第一方面、第一方面第一种至第四种可能的实现方式中的任意一种,在第五 种可能的实现方式中,当所述总线事务消息中还包含事务类型的索引信息时,所述RC从所 述多个配置寄存器对中,确定所述本次总线事务的标识对应的所述处理器内核应使用的配 置寄存器对之后,所述方法还包括:
[0017] 根据所述事务类型的索引信息和设备访问权限表,确定所述处理器内核对所述事 务类型的索引信息所标识的总线设备是否具有访问权限,所述设备访问权限表用于描述处 理器内核对事务类型的索引信息所标识的总线设备是否具有访问权限;
[0018] 当确定具有访问权限时,则允许所述处理器内核访问所述事务类型的索引信息所 标识的总线设备。
[0019] 结合第一方面、第一方面第一种至第四种可能的实现方式中的任意一种,在第六 种可能的实现方式中,所述本次总线事务的标识为单核中央处理器CPU的标识、运行于处 理器内核上的负载操作系统的标识或者是多个负载操作系统构成的分区的区域标识。
[0020] 本发明第二方面提供一种总线的根复合体RC装置,包括:多个配置寄存器对,且 每个配置寄存器对包括一个地址寄存器和一个数据寄存器;
[0021] 接收单元,用于接收处理器内核中的总线代理装置发出的总线事务消息,所述总 线事务消息中包含本次总线事务的标识,所述本次总线事务的标识用于标识发起所述本次 总线事务的所述处理器内核;
[0022] 确定单元,用于从所述多个配置寄存器对中,确定所述接收单元接收的所述本次 总线事务的标识对应的所述处理器内核应使用的配置寄存器对,W便所述处理器内核向确 定的所述配置寄存器对的地址寄存器中写入要配置的地址信息,向确定的所述配置寄存器 对的数据寄存器中读写要给总线设备配置的数据。
[0023] 结合第二方面,在第一种可能的实现方式中,
[0024] 所述确定单元,用于根据所述本次总线事务的标识,从总线事务标识与配置寄存 器对的关联关系中,确定与所述本次总线事务的标识对应的配置寄存器对,作为所述本次 总线事务的标识对应的所述处理器内核应使用的配置寄存器对。
[00巧]结合第二方面,在第二种可能的实现方式中,
[0026]所述确定单元,用于从所述多个配置寄存器对中,确定状态处于空闲态的配置寄 存器对,从状态处于空闲态的配置寄存器对中,选择一个配置寄存器对,作为所述本次总线 事务的标识对应的所述处理器内核应使用的配置寄存器对。
[0027] 结合第二方面第二种可能的实现方式,在第H种可能的实现方式中,
[0028]所述确定单元,还用于将选择的所述一个配置寄存器对中记录的总线事务标识修 改为所述本次总线事务的标识,将所述一个配置寄存器对的状态修改为使用状态。
[0029] 结合第二方面第二种可能的实现方式,在第四种可能的实现方式中,所述装置还 包括发送单元,
[0030] 所述发送单元,用于当所述确定单元确定状态处于空闲态的配置寄存器对时,确 定出所述多个配置寄存器对的状态都处于使用状态,则向所述处理器内核发出异常报告。
[0031] 结合第二方面、第二方面第一种至第四种可能的实现方式中的任意一种,在第五 种可能的实现方式中,当所述总线事务消息中还包含事务类型的索引信息时,
[0032] 所述确定单元,还用于根据所述事务类型的索引信息和设备访问权限表,确定所 述处理器内核对所述事务类型的索引信息所标识的总线设备是否具有访问权限,所述设备 访问权限表用于描述处理器内核对事务类型的索引信息所标识的总线设备是否具有访问 权限;
[0033] 所述装置还包括:
[0034] 权限验证单元,用于当所述确定单元确定具有访问权限时,则允许所述处理器内 核访问所述事务类型的索引信息所标识的总线设备。
[0035] 本发明第H方面提供一种总线虚拟化的系统,包括:多个处理器内核、总线的根复 合体RC和总线设备,所述每个处理器内核中都包含一个总线代理装置,所述总线的根复合 体RC中包括多个配置寄存器对,且每个配置寄存器对包括一个地址寄存器和一个数据寄 存器;
[0036] 所述RC接收处理器内核中的总线代理装置发出的总线事务消息,所述总线事务 消息中包含本次总线事务的标识,所述本次总线事务的标识用于标识发起所述本次总线事 务的所述处理器内核;
[0037] 所述RC从所述多个配置寄存器对中,确定所述本次总线事务的标识对应的所述 处理器内核应使用的配置寄存器对,W便所述处理器内核向确定的所述配置寄存器对的地 址寄存器中写入要配置的地址信息,向确定的所述配置寄存器对的数据寄存器中读写要给 总线设备配置的数据。
[0038] 本发明实施例提供的总线虚拟化的方法中,所述总线的根复合体RC中包括多个 配置寄存器对,且每个配置寄存器对包括一个地址寄存器和一个数据寄存器;所述RC接收 处理器内核中的总线代理装置发出的总线事务消息,所述总线事务消息中包含本次总线事 务的标识,所述本次总线事务的标识用于标识发起所述本次总线事务的所述处理器内核; 所述RC从所述多个配置寄存器对中,确定所述本次总线事务的标识对应
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1