CN105335227A - 一种节点内的数据处理方法、装置和系统 - Google Patents
一种节点内的数据处理方法、装置和系统 Download PDFInfo
- Publication number
- CN105335227A CN105335227A CN201410277440.1A CN201410277440A CN105335227A CN 105335227 A CN105335227 A CN 105335227A CN 201410277440 A CN201410277440 A CN 201410277440A CN 105335227 A CN105335227 A CN 105335227A
- Authority
- CN
- China
- Prior art keywords
- transaction message
- bus transaction
- authority
- processing unit
- central processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明实施例公开了一种节点内的数据处理方法、装置和系统。本发明实施例采用由根复合体接收CPU发送的第一系统总线事务消息,其中,该第一系统总线事务消息携带事务类型、目的地址和权限标识;在该事务类型指示为配置事务时,根据该权限标识确定该CPU是否具有配置权限,若有权限,则将该第一系统总线事务消息转换为相应的第一外部总线事务消息,根据所述目的地址将所述第一外部总线事务消息发送给相应的外部控制器,以进行读写权限配置,否则,若没有权限,则向该CPU发送异常事件提示信息;该方案中可以在保障分区安全性的同时,灵活地调整资源的分配和隔离。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种节点内的数据处理系统、装置和方法。
背景技术
随着数据量及数据处理需求的进一步提升,负载对操作系统的性能要求也越来越高,微内核、多内核已经成为了操作系统发展的一个趋势,而如何对节点内物理资源进行安全,有效的分配和隔离,是多内核多操作系统架构所面临的一个关键问题。
现有对于安全分区的构建方法具有多种,静态逻辑区分技术就是其中的一种,该技术的主要特点就是为交叉开关矩阵模块(Crossbar)添加各种支持,然后通过该Crossbar来访问一段共享的内存,即,通过对Crossbar进行静态配置,来对节点内物理资源进行有效的分配和隔离,由于采用对Crossbar静态配置,因此不会发生一个恶意的操作系统实例非法操作节点内其他操作系统实例所占用的资源,从而破坏其他操作系统实例甚至整个操作系统的情况,可以保障分区的安全性,
在对现有技术的研究和实践过程中,本发明的发明人发现,由于Crossbar的配置是静态的,因此,资源的分配和隔离无法灵活调整,比如,如果需要调整,还需对Crossbar的配置进行重启,即需要人工重新进行映射。
发明内容
本发明实施例提供一种节点内的数据处理系统、装置和方法,可以在保障分区安全性的同时,灵活地调整资源的分配和隔离。
第一方面,本发明实施例提供一种节点内的数据处理方法,包括:
根复合体接收中央处理器(CPU,CentralProcessingUnit)发送的第一系统总线事务消息,所述第一系统总线事务消息携带事务类型、目的地址和权限标识;
在所述事务类型指示为配置事务时,根复合体根据所述权限标识确定所述CPU是否具有配置权限;
若是,则根复合体将所述第一系统总线事务消息转换为相应的第一外部总线事务消息,根据所述目的地址将所述第一外部总线事务消息发送给相应的外部控制器,以进行读写权限配置;
若否,则根复合体向所述CPU发送异常事件提示信息。
在第一种可能的实施方式中,结合第一方面,其中,
通过在所述第一系统总线事务消息中修改或添加字段以设置特权字段,若所述特权字段的值为第一值,则指示所述CPU具有配置权限,若所述特权字段的值为第二值,则指示所述CPU不具有配置权限。
在第二种可能的实施方式中,结合第一方面,该方法还可以包括:
若所述事务类型指示为非配置事务,则将所述第一系统总线事务消息转换为相应的第一外部总线事务消息,根据所述目的地址将所述第一外部总线事务消息发送给所述外部控制器,以进行事务处理。
在第三种可能的实施方式中,结合第一方面、第一方面的第一或第二种可能的实施方式,所述根据所述目的地址将所述第一外部总线事务消息发送给相应的外部控制器,以进行读写权限配置之后,还包括:
根复合体获取可用设备列表信息,根据所述可用设备列表信息获取对应的节点中所有外部控制器的读写权限配置信息;
根复合体根据所述读写权限配置信息建立设备权限表。
在第四种可能的实施方式中,结合第一方面的第三种可能的实施方式,所述根据所述读写权限配置信息建立设备权限表之后,还包括:
根复合体接收CPU发送的第二系统总线事务消息,所述第二系统总线事务消息携带所述CPU的标识、需要访问的外部控制器的设备标识和事务类型;
根复合体在确定所述事务类型、CPU的标识和设备标识分别与设备权限表中的记录相匹配时,将所述第二系统总线事务消息转换为相应的第一外部总线事务消息,将所述第一外部总线事务消息发送给所述需要访问的外部控制器;
根复合体在确定所述事务类型、CPU的标识和设备标识中至少有一项与设备权限表中的记录不相匹配时,向所述CPU发送异常事件提示信息。
在第五种可能的实施方式中,结合第一方面的第四种可能的实施方式,所述设备权限表包括配置空间权限控制子表和存储空间权限控制子表,则所述根复合体在确定所述事务类型、CPU的标识和设备标识分别与设备权限表中的记录相匹配时,将所述第二系统总线事务消息转换为相应的第一外部总线事务消息,将所述第一外部总线事务消息发送给所述需要访问的外部控制器,根复合体在确定所述事务类型、CPU的标识和设备标识中至少有一项与设备权限表中的记录不相匹配时,向所述CPU发送异常事件提示信息,包括:
若所述事务类型指示为配置读写事务,则根复合体在确定所述CPU的标识和设备标识分别与所述配置空间权限控制子表中的记录相匹配时,将所述第二系统总线事务消息转换为相应的第一外部总线事务消息,将所述第一外部总线事务消息发送给所述需要访问的外部控制器;根复合体在确定所述CPU的标识或设备标识与所述配置空间权限控制子表中的记录不相匹配时,向所述CPU发送异常事件提示信息;
若所述事务类型指示为存储器读写事务或输入输出接口(I/O,Input/Output)读写事务,则根复合体在确定所述CPU的标识和设备标识分别与所述存储空间权限控制子表中的记录相匹配时,将所述第二系统总线事务消息转换为相应的第一外部总线事务消息,将所述第一外部总线事务消息发送给所述需要访问的外部控制器;根复合体在确定所述CPU的标识或设备标识与所述存储空间权限控制子表中的记录不相匹配时,向所述CPU发送异常事件提示信息。
在第六种可能的实施方式中,结合第一方面或第一方面的第一种可能的实施方式,所述根据所述目的地址将所述第一外部总线事务消息发送给相应的外部控制器,以进行读写权限配置之后,还包括:
根复合体接收CPU发送的第二系统总线事务消息,所述第二系统总线事务消息携带所述CPU的标识、需要访问的外部控制器的设备标识和事务类型;
将所述第二系统总线事务消息转换为相应的第二外部总线事务消息,所述第二外部总线事务消息携带CPU的标识和事务类型;
根据所述需要访问的外部控制器的设备标识将所述第二外部总线事务消息发送给所述需要访问的外部控制器,以便所述需要访问的外部控制器根据所述CPU的标识和事务类型进行访问权限判断。
第二方面,本发明实施例还提供一种节点内的数据处理方法,包括:
外部控制器接收根复合体发送的第二外部总线事务消息,所述第二外部总线事务消息携带CPU的标识和事务类型;
外部控制器在确定所述事务类型、CPU的标识和设备标识分别与设备端权限位图/设备端权限表中的记录相匹配时,根据所述第二外部总线事务消息执行事务;
外部控制器在确定所述事务类型、CPU的标识和设备标识中至少有一项与所述设备端权限位图/设备端权限表中的记录不相匹配时,发出指示权限错误的中断事件;
所述设备端权限位图/设备端权限表用于记录所述外部控制器的读写权限配置信息。
在第一种可能的实施方式中,结合第二方面,该方法还包括:
外部控制器接收根复合体发送的第一外部总线事务消息;
根据所述第一外部总线事务消息对所述设备端权限位图/设备端权限表中的读写权限配置信息进行更新。
第三方面,本发明实施例还提供一种根复合体,包括:
接收单元,用于接收CPU发送的第一系统总线事务消息,所述第一系统总线事务消息携带事务类型、目的地址和权限标识;
判断单元,用于在所述事务类型指示为配置事务时,根据所述权限标识确定所述CPU是否具有配置权限;
转换单元,用于在判断单元确定所述CPU具有配置权限时,将所述第一系统总线事务消息转换为相应的第一外部总线事务消息。
发送单元,用于根据所述目的地址将所述第一外部总线事务消息发送给相应的外部控制器,以进行读写权限配置,以及,在判断单元确定所述CPU不具有配置权限时,向所述CPU发送异常事件提示信息。
在第一种可能的实施方式中,结合第三方面,其中:
所述转换单元,还用于在所述事务类型指示为非配置事务时,将所述第一系统总线事务消息转换为相应的第一外部总线事务消息,根据所述目的地址将所述第一外部总线事务消息发送给所述外部控制器,以进行事务处理。
在第二种可能的实施方式中,结合第三方面或第三方面的第一种可能的实施方式,该根复合体还可以包括建立单元;
所述建立单元,用于获取可用设备列表信息,根据所述可用设备列表信息获取对应的外部控制器的读写权限配置信息,根据所述读写权限配置信息建立设备权限表。
在第三种可能的实施方式中,结合第三方面的第二种可能的实施方式,其中:
所述接收单元,还用于接收CPU发送的第二系统总线事务消息,所述第二系统总线事务消息携带所述CPU的标识、需要访问的外部控制器的设备标识和事务类型;
所述转换单元,还用于在确定所述事务类型、CPU的标识和设备标识分别与设备权限表中的记录相匹配时,将所述第二系统总线事务消息转换为相应的第一外部总线事务消息;
所述发送单元,还用于将所述第二系统总线事务消息转换而成的第一外部总线事务消息发送给所述需要访问的外部控制器,以及在确定所述事务类型、CPU的标识和设备标识中至少有一项与设备权限表中的记录不相匹配时,向所述CPU发送异常事件提示信息。
在第四种可能的实施方式中,结合第三方面的第三种可能的实施方式,所述设备权限表包括配置空间权限控制子表和存储空间权限控制子表,则:
所述转换单元,具体用于在所述事务类型指示为配置读写事务,且确定所述CPU的标识和设备标识分别与所述配置空间权限控制子表中的记录相匹配时,将所述第二系统总线事务消息转换为相应的第一外部总线事务消息,在所述事务类型指示为存储器读写事务或I/O读写事务,且确定所述CPU的标识和设备标识分别与所述存储空间权限控制子表中的记录相匹配时,将所述第二系统总线事务消息转换为相应的第一外部总线事务消息;
所述发送单元,具体用于在所述事务类型指示为配置读写事务,且确定所述CPU的标识或设备标识与所述配置空间权限控制子表中的记录不相匹配时,向所述CPU发送异常事件提示信息,以及在所述CPU的标识或设备标识与所述配置空间权限控制子表中的记录不相匹配时,向所述CPU发送异常事件提示信息,且确定所述CPU的标识或设备标识与所述存储空间权限控制子表中的记录不相匹配时,向所述CPU发送异常事件提示信息。
在第五种可能的实施方式中,结合第三方面或第三方面的第一种可能的实施方式,其中:
所述接收单元,还用于接收CPU发送的第二系统总线事务消息,所述第二系统总线事务消息携带所述CPU的标识、需要访问的外部控制器的设备标识和事务类型;
所述转换单元,还用于将所述第二系统总线事务消息转换为相应的第二外部总线事务消息,所述第二外部总线事务消息携带CPU的标识和事务类型;
所述发送单元,还用于根据所述需要访问的外部控制器的设备标识将所述第二外部总线事务消息发送给所述需要访问的外部控制器,以便所述需要访问的外部控制器根据所述CPU的标识和事务类型进行访问权限判断。
第四方面,本发明实施例还提供一种外部控制器,包括:
接收单元,用于接收根复合体发送的第二外部总线事务消息,所述第二外部总线事务消息携带CPU的标识和事务类型;
第一处理单元,用于在确定所述事务类型、CPU的标识和设备标识分别与设备端权限位图/设备端权限表中的记录相匹配时,根据所述第二外部总线事务消息执行事务,所述设备端权限位图/设备端权限表用于记录所述外部控制器的读写权限配置信息;
第二处理单元,用于在确定所述事务类型、CPU的标识和设备标识中至少有一项与所述设备端权限位图/设备端权限表中的记录不相匹配时,发出指示权限错误的中断事件。
在第一种可能的实施方式中,结合第四方面,该外部控制器还可以包括更新单元;
所述接收单元,还用于接收根复合体发送的第一外部总线事务消息;
所述更新单元,用于根据所述第一外部总线事务消息对所述设备端权限位图/设备端权限表中的读写权限配置信息进行更新。
第五方面,本发明实施例还提供一种节点,包括本发明实施例提供的一种根复合体。
在第一种可能实施的方式中,结合第五方面,该节点还可以包括本发明实施例提供的任一种外部控制器。
第六方面,本发明实施例还提供一种节点内安全分区的构建方法,包括:
基本输入输出系统(BIOS,BasicInputOutputSystem)获取物理资源划分信息;
所述BIOS根据所述物理资源划分信息构建分区描述符,并建立分区描述符表,所述分区描述符表包括分区标识、可用CPU列表信息、可用物理内存列表信息和可用设备列表信息;
所述BIOS根据所述可用CPU列表信息设置各个CPU的权限;
所述BIOS根据可用物理内存列表信息设置主存控制器的分区内存权限表;
所述BIOS根据所述可用设备列表信息设置根复合体中的设备权限表,以及设备中断方式和中断路由;
所述BIOS根据所述分区标识创建分区启动镜像,并复制所述镜像至内存,以进行启动分区操作系统实例。
第七方面,本发明实施例还提供一种节点内安全分区的销毁方法,包括:
BIOS释放系统物理资源,并更新物理资源划分信息;
所述BIOS根据更新后的物理资源划分信息构建分区描述符,并建立分区描述符表,所述分区描述符表包括分区标识、可用CPU列表信息、可用物理内存列表信息和可用设备列表信息;
所述BIOS根据所述可用设备列表信息更新根复合体中的设备权限表,以及设备中断方式和中断路由;
所述BIOS根据可用物理内存列表信息更新主存控制器的分区内存权限表;
所述BIOS根据所述可用CPU列表信息更新各个CPU的权限。
第八方面,本发明实施例还提供一种BIOS,包括:
获取单元,用于获取物理资源划分信息;
建立单元,用于根据所述物理资源划分信息构建分区描述符,并建立分区描述符表,所述分区描述符表包括分区标识、可用CPU列表信息、可用物理内存列表信息和可用设备列表信息;
设置单元,用于所述BIOS根据所述可用CPU列表信息设置各个CPU的权限;根据可用物理内存列表信息设置主存控制器的分区内存权限表;以及根据所述可用设备列表信息设置根复合体中的设备权限表,以及设备中断方式和中断路由;
启动单元,用于根据所述分区标识创建分区启动镜像,并复制所述镜像至内存,以进行启动分区操作系统实例。
第九方面,本发明实施例还提供一种BIOS,包括:
释放单元,用于释放系统物理资源,并更新物理资源划分信息;
建立单元,用于根据更新后的物理资源划分信息构建分区描述符,并建立分区描述符表,所述分区描述符表包括分区标识、可用CPU列表信息、可用物理内存列表信息和可用设备列表信息;
设置单元,用于根据所述可用设备列表信息更新根复合体中的设备权限表,以及设备中断方式和中断路由;以及根据可用物理内存列表信息更新主存控制器的分区内存权限表;根据所述可用CPU列表信息更新各个CPU的权限。
本发明实施例采用由根复合体接收CPU发送的第一系统总线事务消息,其中,该第一系统总线事务消息携带事务类型、目的地址和权限标识;在该事务类型指示为配置事务时,根据该权限标识确定该CPU是否具有配置权限,若有权限,则将该第一系统总线事务消息转换为相应的第一外部总线事务消息,根据该目的地址将第一外部总线事务消息发送给相应的外部控制器,以进行读写权限配置,否则,若没有权限,则向该CPU发送异常事件提示信息;由于在该方案中,可以由特定的CPU(即有权限的CPU)通过下发事务消息的形式来对外部控制器进行读写权限配置,以实现资源的分配和隔离,因此,相对于现有的静态配置而言,大大提高了配置的灵活性,即可以在保障分区安全性的同时,灵活地调整资源的分配和隔离。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本发明实施例提供的节点内的数据处理方法的系统框图;
图1b是本发明实施例提供的节点内的数据处理方法的流程图;
图2是本发明实施例提供的节点内的数据处理方法的另一流程图;
图3a是本发明实施例提供的节点内各个设备的配置方法的流程图;
图3b是本发明实施例提供的基于根复合体中的设备权限表的访问控制的流程图;
图4是本发明实施例提供的基于外部控制器中的设备端权限位图/设备端权限表的访问控制方法的流程图;
图5是本发明实施例提供的根复合体的结构示意图;
图6是本发明实施例提供的外部控制器的结构示意图;
图7是本发明实施例提供的节点的结构示意图;
图8是本发明实施例提供的一种节点内安全分区的构建方法的流程图;
图9是本发明实施例提供的一种节点内安全分区的销毁方法的流程图;
图10是本发明实施例提供的一种BIOS的结构示意图;
图11是本发明实施例提供的另一种BIOS的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种节点内的数据处理系统、装置和方法。以下分别进行详细说明。
为了方便后续说明,以下将对该节点结构进行简略说明。
参见图1a,该节点可以包括根复合体(Rootcomplex)、外部控制器和若干个CPU,其中,外部控制器包括节点内的各种设备。比如扩展周边元件扩展接口(PCIE,PeripheralComponentInterconnectionExpress)设备等。另外,需说明的是,在该节点中,至少包括一个具有配置权限的CPU,用于对节点内的各个设备进行读写配置,以实现资源的分配和隔离,为了描述方便,在本发明实施例中,将该CPU称为特权CPU。例如,可以在该具有配置权限的CPU,即特权CPU上增加一个新的寄存器(Pri_CPU_R),当然,也可以在现有状态寄存器中添加一个位(bit),用来暂存因为该特权所引起的额外的指令、数据和地址等,然后可以通过修改系统总线事务的某个字段来指示CPU的权限,比如,可以由CPU的总线代理(BUSagent)为系统总线事务消息添加一个字段来表示CPU的操作,如下:
当CPU端总线代理(BUSagent)确定某个CPU存在Pre_CPU_R寄存器,且其值为1时,则可以确定该CPU为特权CPU,因此,可以将该CPU发出的所有总线事务消息中添加指示具有配置权限的权限标识,比如将特权字段设置为1,等等。
当CPU端总线代理(BUSagent)确定某个CPU不存在Pre_CPU_R寄存器,或其值为0时,则可以确定该CPU为普通CPU(即非特权CPU),因此,可以将该CPU发出的所有总线事务消息中添加指示不具有配置权限的权限标识,比如将特权字段设置为0,等等。
在此基础上,后续再由根复合体,比如具体可以由根复合体中的主桥(Hostbridge)来对配置权限进行控制,比如根据总线事务消息中的权限标识确定CPU是否具有配置权限来对节点内的各个设备进行读写权限配置,等等,并且根据判断结果决定是执行事务转换逻辑,还是向CPU返回异常事件提示信息。
在对节点内的各个设备进行读写权限配置之后,还可以有根复合体,比如具体可以由根复合体中的主桥(Hostbridge)来对各个设备的访问进行权限控制,或者,也可以由根复合体中的主桥(Hostbridge)直接执行事务转换逻辑,然后再由外部控制,比如PCIE设备来对权限进行控制,等等。
以下在各个实施例中将进行详细说明。
实施例一、
本实施例将从根复合体的角度进行描述。
一种节点内的数据处理方法,包括:根复合体接收CPU发送的第一系统总线事务消息,其中,该第一系统总线事务消息携带事务类型、目的地址和权限标识等信息;在该事务类型指示为配置事务时,根复合体根据该权限标识确定该CPU是否具有配置权限;若是,则根复合体将该第一系统总线事务消息转换为相应的第一外部总线事务消息,根据该目的地址将该第一外部总线事务消息发送给相应的外部控制器,以进行读写权限配置;若否,则根复合体向该CPU发送异常事件提示信息。
如图1b所示,具体流程可以如下:
101、根复合体接收CPU发送的系统总线事务消息,为了描述方便,在本发明实施例中,称为第一系统总线事务消息。
其中,该第一系统总线事务消息可以携带事务类型、目的地址和权限标识等信息,其中,权限标识用于指示该CPU是否具有配置权限(在本发明实施例中,具有配置权限指的是具有写配置权限),例如,通过修改或添加该第一系统总线事务消息的某个字段来指示下发该第一系统总线事务的CPU的配置权限,其中,为了描述方便,将该用于指示配置权限的字段称为特权字段,比如,具体可以由CPU的总线代理(BUSagent)为该第一系统总线事务消息在该特权字段中添加具体的值来表示特权CPU的操作,以指示该特权CPU的配置权限,从而区分于其他的普通CPU,等等,比如,可以设置当特权字段的值为第一值,时,指示该CPU具有配置权限(即该CPU为特权CPU),而若该特权字段的值为第二值,则指示该CPU不具有配置权限(即该CPU为普通CPU),其中,第一值和第二值可以根据实际应用的需求进行设置,比如,可以设置第一值为1,第二值为0,或者,设置第一值为0,第二值为1,等等,具体可以如下:
当CPU端总线代理(BUSagent)确定某个CPU存在Pre_CPU_R寄存器,且其值为1(即表示该CPU为特权CPU)时,在该CPU发出的第一系统总线事务消息中添加指示具有配置权限的权限标识,比如将特权字段设置为1,等等,需说明的是,如果将该特权字段设置为0则表示该CPU不具有配置权限,当然,反之亦可,或者,也可以采用其他的权限标识,在此不再赘述。
需说明的是,本发明实施例所说的系统总线可以包括前端总线(FSB,FrontSideBus)、高速传输(HT,HyperTransport)总线和快速通道互联(QPI,QuickPathInterconnect)总线等。也就是说,该第一系统总线事务消息具体可以为FSB事务消息、HT总线事务消息或QPI总线事务消息等等。
以FSB总线为例,在携带权限标识时,具体可以在FSB事务消息的请求(request)阶段,由CPU的总线代理将该权限标识填充至该FSB消息事务的特权字段,其中,可以将现有的FSB消息事务的空闲字段作为该特权字段,也可以新增字段来作为该特权字段,在此不再赘述。
102、在该第一系统总线事务消息所携带的事务类型指示为配置事务时,根复合体(比如具体可以是根复合体中的主桥)根据该权限标识确定该CPU是否具有配置权限,若具有配置权限,则执行步骤103,否则,若不具有配置权限,则执行步骤104。
103、在确定该CPU具有配置权限时,根复合体(比如具体可以是根复合体中的主桥)将该第一系统总线事务消息转换为相应的外部总线事务消息,为了描述方便,在本发明实施例中称为第一外部总线事务消息,根据该目的地址将该第一外部总线事务消息发送给相应的外部控制器,比如PCIE设备,以进行读写权限配置。
其中,该第一外部总线事务消息具体可以为事务层包(TLP,TransactionLayerPacket)事务消息等。
104、在确定该CPU不具有配置权限时,根复合体(比如具体可以是根复合体中的主桥)向该CPU发送异常事件提示信息。
需说明的是,若该第一系统总线事务消息所携带的事务类型指示为非配置事务,则根复合体可以将该第一系统总线事务消息转换为相应的第一外部总线事务消息,根据该目的地址将该第一外部总线事务消息发送给该外部控制器,以进行事务处理。
此外,在根据该目的地址将第一外部总线事务消息发送给相应的外部控制器,以进行读写权限配置之后,根复合体还可以获取可用设备列表信息,比如读取PCIE设备树,根据该可用设备列表信息获取对应的节点中所有外部控制器的读写权限配置信息,然后根据该读写权限配置信息建立设备权限表,以便后续可以根据该设备权限表对各个设备的访问权限进行控制。即在根据所述读写权限配置信息建立设备权限表之后,该节点内的数据处理方法还可以包括步骤(1)和(2),如下:
(1)根复合体(比如具体可以是根复合体中的主桥)接收CPU发送的第二系统总线事务消息,其中,该第二系统总线事务消息携带该CPU的标识(简称为CPU标识)、需要访问的外部控制器的设备标识和事务类型等信息。
其中,第二系统总线事务消息具体可以为FSB事务消息、HT总线事务消息或QPI总线事务消息等等。
(2)根复合体(比如具体可以是根复合体中的主桥)在确定该第二系统总线事务消息中携带的事务类型、CPU标识和设备标识分别与设备权限表中的记录相匹配时,将该第二系统总线事务消息转换为相应的第一外部总线事务消息,将该第一外部总线事务消息发送给该需要访问的外部控制器,比如发送给需要访问的PCIE设备等。反之,若根复合体在确定该事务类型、CPU标识和设备标识中至少有一项与设备权限表中的记录不相匹配,则向该CPU发送异常事件提示信息。
具体实现时,设备权限表可以通过多种形式来实现,例如,设备权限表可以包括多个子表,比如,如表1和表2所示,该设备权限表可以包括配置空间权限控制子表(表1)和存储空间权限控制子表(表2),如下:。
表1:
表2:
其中,本发明实施例的设备标识可以包括装置标识(DeviceID)和总线地址,其中,DeviceID可以作为判断配置读写事务的索引,DeviceID可以包括域(Domain)、总线(Bus)、设备(Device)和函数(Function)等的标识,配置空间权限控制子表的每个表项描述以函数(Function)为单位。而总线地址可以作为判断存储器读写事务或输入输出接口(I/O,Input/Output)读写事务的索引,每个设备的配置空间有6个基址寄存器(BAR,BaseRegister)描述其存储器空间,该存储器空间是连续的段。
基于这两个子表(即配置空间权限控制子表和存储空间权限控制子表),步骤(2)具体可以如下:
若该第二系统总线事务消息中携带的事务类型指示为配置读写事务,则根复合体在确定该CPU标识和设备标识分别与该配置空间权限控制子表中的记录相匹配时,将该第二系统总线事务消息转换为相应的第一外部总线事务消息,将该第一外部总线事务消息发送给所述需要访问的外部控制器;否则,根复合体在确定该CPU标识或设备标识与该配置空间权限控制子表中的记录不相匹配时,向该CPU发送异常事件提示信息;
若该第二系统总线事务消息中携带的事务类型指示为存储器读写事务或I/O读写事务,则根复合体在确定该CPU标识和设备标识分别与所述存储空间权限控制子表中的记录相匹配时,将该第二系统总线事务消息转换为相应的第一外部总线事务消息,将该第一外部总线事务消息发送给该需要访问的外部控制器;根复合体在确定该CPU标识或设备标识与所述存储空间权限控制子表中的记录不相匹配时,向该CPU发送异常事件提示信息。
当然,也可以将这两个子表合并为一个表,如表3所示。
表3:
同理,其中,DeviceID可以作为判断配置读写事务的索引,而总线地址可以作为判断存储器读写事务或I/O读写事务的索引。
需说明的是,对于设备权限表的更新,也主要由特权CPU来进行操作,其中,在一个节点内,可以运行多个操作系统(OS,OperatingSystem),其中,特权CPU对应的操作系统称为由管理操作系统(HeavyOS),也称为管理操作系统内核,主要负责轻量级操作系统(LightOS)的管理以及面向应用的接口,作为虚拟化系统的宿主操作系统;而除特权CPU之外的其他CPU所对应的操作系统则称为LightOS,也称为轻量级操作系统内核,主要负责提供系统服务或应用执行环境,作为虚拟化系统中的一个运行环境存在。其中,由于特权CPU和其他普通CPU的权限的不同,导致HeavyOS和LightOS也具有不同的权限,例如,如表4所示,各个操作系统对节点内各个设备的访问权限具体可以如下:
表4:
操作系统 | CPU | 配置读 | 配置写 | 访问读 | 访问写 |
Heavy OS | 特权CPU | √ | √ | √ | √ |
Light OS | 其他CPU | √ | × | √ | √ |
在表4中,符号“√”表示“允许”,即具有权限,符号“×”表示不允许,即不具有权限;由表1可以看出,特权CPU(对应着HeavyOS)可以对节点内的各个设备进行“配置读”、“配置写”、“访问读”和“访问写”等操作,而其他的CPU(对应着LightOS)只能进行“配置读”、“访问读”和“访问写”等操作,而不能进行“配置写”操作,其中,“配置写”即为本发明实施例所说的“配置权限”,也就是说,只有特权CPU才有权限对节点中的各个设备的读写权限进行配置,包括对根复合体中所保存的设备权限表的修改等,在此不再赘述。
此外,还需说明的是,除了可以由根复合体来对各个设备的访问权限进行控制之外,也可以由设备端,即由各个外部控制器如PCIE设备来对访问权限进行控制,即在根据该目的地址将第一外部总线事务消息发送给相应的外部控制器,以进行读写权限配置之后,该节点内的数据处理方法还可以包括:
根复合体接收CPU发送的第二系统总线事务消息,其中,该第二系统总线事务消息携带所述CPU标识、需要访问的外部控制器的设备标识和事务类型等信息;将该第二系统总线事务消息转换为相应的外部总线事务消息,为了描述方便,在本发明实施例中,将该外部总线事务消息称为第二外部总线事务消息,该第二外部总线事务消息可以携带CPU标识和事务类型等信息;根据该需要访问的外部控制器的设备标识将该第二外部总线事务消息发送给所述需要访问的外部控制器,以便该需要访问的外部控制器根据所述CPU标识和事务类型进行访问权限判断。
其中,第二外部总线事务消息具体可以为TLP事务消息,以TLP事务消息为例,若要在TLP事务消息中携带CPU标识,具体可以由多种方式,例如,可以在请求者标识(RequesterID)字段中进行携带,因为对于邮寄方式(Posted)方式的事务的TLP的报头(header)来说RequesterID字段是没有用途的,但对于非邮寄方式(Non-Posted)方式的事务来说,就需要在发送完成报文时使用RequesterID字段,因此,可以在发送TLP事务消息时利用该RequesterID字段来携带CPU标识。又例如,还可以使用标签(Tag)位的扩展字段和其他保留位来携带CPU标识,又例如,还可以扩展TLP的报头(header)的大小来携带CPU标识,等等,在此不再列举。
由上可知,本实施例采用由根复合体接收CPU发送的第一系统总线事务消息,其中,该第一系统总线事务消息携带事务类型、目的地址和权限标识等信息;在该事务类型指示为配置事务时,根据该权限标识确定该CPU是否具有配置权限,若有权限,则将该第一系统总线事务消息转换为相应的第一外部总线事务消息,根据该目的地址将第一外部总线事务消息发送给相应的外部控制器,以进行读写权限配置,否则,若没有权限,则向该CPU发送异常事件提示信息;由于在该方案中,可以由特定的CPU(即有权限的CPU)通过下发事务消息的形式来对外部控制器进行读写权限配置,以实现资源的分配和隔离,因此,相对于现有的静态配置而言,大大提高了配置的灵活性,即可以在保障分区安全性的同时,灵活地调整资源的分配和隔离。
实施例二、
在对节点内的各个设备的读写权限进行配置之后,除了可以由根复合体来对访问权限进行控制之外,也可以在设备端(即外部控制器)对访问权限进行控制,以下将对此进行详细说明。
本实施例将从外部控制器的角度进行描述,该外部控制器具体可以为PCIE设备等。
一种节点内的数据处理方法,包括:外部控制器接收根复合体发送的第二外部总线事务消息,其中,第二外部总线事务消息携带CPU标识和事务类型;外部控制器在确定该事务类型、CPU标识和设备标识分别与设备端权限位图/设备端权限表中的记录相匹配时,根据该第二外部总线事务消息执行事务;外部控制器在确定该事务类型、CPU标识和设备标识中至少有一项与所述设备端权限位图/设备端权限表中的记录不相匹配时,发出指示权限错误的中断事件;其中,设备端权限位图/设备端权限表用于记录所述外部控制器的读写权限配置信息。
如图2所示,该节点内的数据处理方法,具体流程可以如下:
201、外部控制器接收根复合体发送的第二外部总线事务消息。
其中,该第二外部总线事务消息携带CPU标识和事务类型等信息,具体可参见实施例一,在此不再赘述。
202、外部控制器在确定该第二外部总线事务消息中携带的事务类型、CPU标识和设备标识是否与设备端权限位图/设备端权限表中的记录相匹配,若是,则执行步骤203,若否,则执行步骤204。
其中,设备端权限位图/设备端权限表(即设备端权限位图或设备端权限表)用于记录该外部控制器的读写权限配置信息。具体可以由HeavyOS(管理操作系统)在启动时,通过特权CPU对所有设备(即本发明实施例所说的外部控制器)的进行配置,以设置其读写权限。具体实施时,是采用设备端权限位图的方式还是采用设备端权限表,可以根据实际应用的需求进行设置,例如,其中,该设备端权限表具体可参见表5,如下:
表5:
203、外部控制器在确定该第二外部总线事务消息中携带的事务类型、CPU标识和设备标识等与设备端权限位图/设备端权限表中的记录相匹配时,根据该第二外部总线事务消息执行事务。
例如,如果某个CPU标识所对应的配置写权限为可写,则表明该CPU标识所对应的CPU为特权CPU,可以对该设备端权限位图/设备端权限表进行配置,等等。
204、外部控制器在确定该第二外部总线事务消息中携带的事务类型、CPU标识和设备标识中至少有一项与该设备端权限位图/设备端权限表中的记录不相匹配时,发出指示权限错误的中断事件。
此外,在系统对资源进行划分或共享时,还可以由HeavyOS通过特权CPU对该设备端权限位图/设备端权限表进行更新,比如,可以由特权CPU发送第一系统总线事务消息给根复合体,然后由根复合体将该第一系统总线事务消息转换成配置类型的第一外部总线事务消息,并发送给外部控制器,由外部控制器根据该第一外部总线事务消息对该设备端权限位图/设备端权限表中的读写权限配置信息进行更新;即该节点内的数据处理方法还可以包括:
外部控制器接收根复合体发送的第一外部总线事务消息,根据该第一外部总线事务消息对该设备端权限位图/设备端权限表中的读写权限配置信息进行更新。
由上可知,在由特权CPU对节点内各个设备进行读写权限配置(详见实施例一)的基础上,本实施例还可以在设备端(即外部控制器)对访问权限进行控制,因此,本实施例除了可以实现实施例一的有益效果之外,还可以减轻根复合体的运算负载,从而提高整个系统的性能。
根据实施例一和二所描述的方法,以下将举例作进一步详细说明。
实施例三、
在本实施例中,将以由根复合体来对访问权限进行控制为例进行说明。
参见图1a,在本实施例中,将以CPU1为特权CPU,而其他的CPU,比如,CPU2、CPU3……CPUn等具体为普通CPU为例进行说明。
如图3a和图3b所示,一种节点内的数据处理方法,具体流程可以如下:
(1)节点内各个设备的配置方法,参见图3a,具体可以如下:
A301、CPU通过总线代理(BUSagent)发送第一系统总线事务消息给根复合体。
其中,该第一系统总线事务消息中可以携带事务类型、目的地址和权限标识等信息,该第一系统总线事务消息具体可以为FSB事务消息、HT总线事务消息或QPI总线事务消息等等。
例如,如果该CPU为CPU1,由于CPU1为特权CPU,因此,CPU1的总线代理在接收到该第一系统总线事务消息时,需要为该第一系统总线事务消息添加指示具有配置权限的权限标识,比如将特权字段设置为1,等等。
A302、根复合体接收CPU发送的第一系统总线事务消息后,根据该第一系统总线事务消息中携带的事务类型确定该第一系统总线事务消息的事务类型,若该事务类型指示为配置事务,则执行步骤A303,若该事务类型指示为非配置事务,则执行步骤A305。
例如,具体可以由根复合体中的主桥(Hostbridge)来接收CPU发送的第一系统总线事务消息,然后根据该第一系统总线事务消息中携带的事务类型确定该第一系统总线事务消息的事务类型,若该事务类型指示为配置事务,则执行步骤A303,若该事务类型指示为非配置事务,则执行步骤A305。
A303、在该事务类型指示为配置事务时,根复合体(比如具体可以是根复合体中的主桥)根据该权限标识确定该CPU是否具有配置权限,若具有配置权限,则执行步骤304,否则,若不具有配置权限,则执行步骤306。
A304、在确定该CPU具有配置权限时,根复合体(比如具体可以是根复合体中的主桥)将该第一系统总线事务消息转换为相应的第一外部总线事务消息,比如,转换为第一TLP事务消息,并根据该目的地址将该第一外部总线事务消息发送给相应的外部控制器,比如发送给相应的PCIE设备,以进行读写权限配置,得到该外部控制器对应的读写权限配置信息。
例如,如果该CPU为CPU1,则此时可以确定该CPU具有配置权限,于是可以将该第一系统总线事务消息转换为相应的第一外部总线事务消息,比如,转换为第一TLP事务消息,并根据该目的地址将该第一外部总线事务消息发送给各个外部控制器,以进行读写权限配置。
A305、在确定该CPU不具有配置权限时,根复合体(比如具体可以是根复合体中的主桥)向该CPU发送异常事件提示信息。
例如,如果该CPU为除CPU1之外的CPU,则此时根复合体向该CPU发送异常事件提示信息。
A306、若该事务类型指示为非配置事务,则根复合体(比如具体可以是根复合体中的主桥)可以将该第一系统总线事务消息转换为相应的第一外部总线事务消息,比如,转换为第一TLP事务消息,并根据该目的地址将该第一外部总线事务消息发送给该外部控制器,以进行事务处理。
由于不是配置事务,因此,所有CPU都具有读写权限,因此,此时只需将该第一系统总线事务消息当作一般的事务消息处理即可。
在根据该目的地址将第一外部总线事务消息发送给相应的外部控制器,以进行读写权限配置之后,根复合体还可以获取可用设备列表信息,比如读取PCIE设备树,根据该可用设备列表信息获取对应的节点中所有外部控制器的读写权限配置信息,然后根据该读写权限配置信息建立设备权限表,以便后续可以根据该设备权限表对各个设备的访问权限进行控制,以下将对该访问权限的控制进行详细说明。
(2)基于根复合体中的设备权限表的访问权限的控制方法,参见图3b,具体流程可以如下:
B301、根复合体(比如具体可以是根复合体中的主桥)获取可用设备列表信息,比如读取PCIE设备树,根据该可用设备列表信息获取对应的节点中所有外部控制器的读写权限配置信息,然后根据该读写权限配置信息建立设备权限表。
具体实现时,设备权限表可以通过多种形式来实现,例如,设备权限表可以包括多个子表,比如,该设备权限表可以包括配置空间权限控制子表(表1)和存储空间权限控制子表(表2),等等,或者,又例如,该设备权限表也可以将多个子表合并为一个表,例如,参见表3,具体可参见实施例一,在此不再赘述。
B302、CPU发送第二系统总线事务消息给根复合体(比如具体可以是根复合体中的主桥)。
其中,该第二系统总线事务消息携带该CPU标识、需要访问的外部控制器的设备标识和事务类型。
其中,第二系统总线事务消息具体可以为FSB事务消息、HT总线事务消息或QPI总线事务消息等等。
B303、根复合体(比如具体可以是根复合体中的主桥)接收CPU发送的第二系统总线事务消息后,确定该第二系统总线事务消息中携带的事务类型、CPU标识和设备标识分别与设备权限表中的记录是否相匹配,若相匹配,则执行步骤B304,否则,则执行步骤B305。
B304、在确定该第二系统总线事务消息中携带的事务类型、CPU标识和设备标识分别与设备权限表中的记录相匹配时,根复合体(比如具体可以是根复合体中的主桥)将该第二系统总线事务消息转换为相应的第一外部总线事务消息,将该第一外部总线事务消息发送给该需要访问的外部控制器,比如需要访问的PCIE设备等。
比如,如果该CPU为CPU1(即为特权CPU),而该第二系统总线事务消息中所携带的事务类型指示该事务为对某个设备进行“配置写”,则此时,可以确定该第二系统总线事务消息中携带的事务类型、CPU标识和设备标识分别与设备权限表中的记录相匹配(如实施例中所描述的,特权CPU具备配置写的权限),于是将该第二系统总线事务消息转换为相应的第一外部总线事务消息,将该第一外部总线事务消息发送给该需要访问的外部控制器,比如需要访问的PCIE设备,等等。
B305、在确定该第二系统总线事务消息中携带的事务类型、CPU标识和设备标识分别与设备权限表中的记录不相匹配时,根复合体(比如具体可以是根复合体中的主桥)向该CPU发送异常事件提示信息。
比如,如果该CPU为除CPU1之外的其他CPU(即不是特权CPU),而该第二系统总线事务消息中所携带的事务类型指示该事务为对某个设备进行“配置写”,则此时,可以确定该第二系统总线事务消息中携带的事务类型、CPU标识和设备标识分别与设备权限表中的记录不相匹配(如实施例一所述,普通CPU是不具备配置写的权限的),于是向该CPU发送异常事件提示信息。
由上可知,本实施例采用由根复合体接收CPU发送的第一系统总线事务消息,其中,该第一系统总线事务消息携带事务类型、目的地址和权限标识;在该事务类型指示为配置事务时,根据该权限标识确定该CPU是否具有配置权限,若有权限,则将该第一系统总线事务消息转换为相应的第一外部总线事务消息,根据所述目的地址将所述第一外部总线事务消息发送给相应的外部控制器,以进行读写权限配置,否则,若没有权限,则向该CPU发送异常事件提示信息;然后由根复合体根据这些读写权限配置信息建立设备权限表,并基于该设备权限表进行访问控制。由于在该方案中,可以由特定的CPU(即有权限的CPU)通过下发事务消息的形式来对外部控制器进行读写权限配置,以实现资源的分配和隔离,因此,相对于现有的静态配置而言,大大提高了配置的灵活性,即可以在保障分区安全性的同时,灵活地调整资源的分配和隔离。
实施例四、
与实施例三不同的是,在本实施例中,将以由设备端,即由外部控制器来对访问权限进行控制为例进行说明。
其中,节点内各个设备的配置方法与实施例三中的相同,在此不再赘述。以下将对其访问控制方法进行详细说明。
如图4所示,该基于外部控制器中的设备端权限位图/设备端权限表的访问控制方法的具体流程可以如下:
401、CPU发送第二系统总线事务消息给根复合体(比如具体可以是根复合体中的主桥)。
其中,该第二系统总线事务消息携带该CPU标识、需要访问的外部控制器的设备标识和事务类型。
其中,第二系统总线事务消息具体可以为FSB事务消息、HT总线事务消息或QPI总线事务消息等等。
402、根复合体(比如具体可以是根复合体中的主桥)收CPU发送的第二系统总线事务消息后,将所述第二系统总线事务消息转换为相应的第二外部总线事务消息,并将该第二外部总线事务消息发送给需要访问的外部控制器,比如PCIE设备。
其中,该第二外部总线事务消息可以携带CPU标识和事务类型等信息,该第二外部总线事务消息具体可以为TLP事务消息等。
403、外部控制器接收根复合体发送的第二外部总线事务消息后,确定该第二外部总线事务消息中携带的事务类型、CPU标识和设备标识是否与设备端权限位图/设备端权限表中的记录相匹配,若匹配,则执行步骤404,否则,如果不匹配,则执行步骤405。
其中,设备端权限位图/设备端权限表用于记录该外部控制器的读写权限配置信息,例如,具体可参见表5,在此不再赘述。
404、外部控制器确定该第二外部总线事务消息中携带的事务类型、CPU标识和设备标识与设备端权限位图/设备端权限表中的记录相匹配时,根据该第二外部总线事务消息执行事务。
405、外部控制器在确定该第二外部总线事务消息中携带的事务类型、CPU标识和设备标识中至少有一项与该设备端权限位图/设备端权限表中的记录不相匹配时,发出指示权限错误的中断事件。
本实施例同样可以实现实施例三所能实现的有益效果,而且,由于对访问权限的控制主要是由设备端(即外部控制)来执行的,因此,可以减轻根复合体的运算负载,从而提高整个系统的性能。
实施例五、
为了更好地实施以上方法,本发明实施例还提供一种根复合体,如图5所示,该根复合体包括接收单元501、判断单元502、转换单元503和发送单元504,如下:
接收单元501,用于接收CPU发送的第一系统总线事务消息。
其中,该第一系统总线事务消息可以携带事务类型、目的地址和权限标识等信息,其中,权限标识用于指示该CPU是否具有配置权限,例如,通过添加或修改该第一系统总线事务消息的某个字段来指示下发该第一系统总线事务的CPU的配置权限,比如,可以由CPU的总线代理为该第一系统总线事务消息在该特权字段中添加具体的值来表示配置权限,如下:
当CPU端的总线代理确定某个CPU存在Pre_CPU_R寄存器,且其值为1(即表示该CPU为特权CPU)时,在该CPU发出的第一系统总线事务消息中添加指示具有配置权限的权限标识,比如将特权字段设置为1,等等,需说明的是,如果将该特权字段设置为0则表示不具有配置权限,当然,反之亦可,或者,也可以采用其他的权限标识,在此不再赘述。
需说明的是,本发明实施例所说的系统总线可以包括FSB、HT总线和QPI总线等。也就是说,该第一系统总线事务消息具体可以为FSB事务消息、HT总线事务消息或QPI总线事务消息等等。
判断单元502,用于在该第一系统总线事务消息中的事务类型指示为配置事务时,根据该权限标识确定该CPU是否具有配置权限。
转换单元503,用于在判断单元502确定该CPU具有配置权限时,将该第一系统总线事务消息转换为相应的第一外部总线事务消息。
其中,该第一外部总线事务消息具体可以为TLP事务消息等。
发送单元504,用于根据该目的地址将该第一外部总线事务消息发送给相应的外部控制器,比如发送给相应的PCIE设备,以进行读写权限配置,以及,在判断单元502确定该CPU不具有配置权限时,向该CPU发送异常事件提示信息。
需说明的是,如果是非配置类型的事务,则直接按照普通的事务进行处理,即:
转换单元503,还可以用于在该第一系统总线事务消息中的事务类型指示为非配置事务时,将该第一系统总线事务消息转换为相应的第一外部总线事务消息,根据该目的地址将所述第一外部总线事务消息发送给该外部控制器,以进行事务处理。
此外,在根据该目的地址将第一外部总线事务消息发送给相应的外部控制器,以进行读写权限配置之后,根复合体还可以获取可用设备列表信息,比如读取PCIE设备树,根据该可用设备列表信息获取对应的节点中所有外部控制器的读写权限配置信息,然后根据该读写权限配置信息建立设备权限表,以便后续可以根据该设备权限表对各个设备的访问权限进行控制。即该根复合体还可以包括建立单元;
建立单元,用于获取可用设备列表信息,根据该可用设备列表信息获取对应的外部控制器的读写权限配置信息,根据该读写权限配置信息建立设备权限表。
在根据所述读写权限配置信息建立设备权限表之后,还可以根据该设备权限表对各个设备的访问权限进行控制,如下:
接收单元501,还可以用于接收CPU发送的第二系统总线事务消息。
其中,该第二系统总线事务消息携带该CPU的标识、需要访问的外部控制器的设备标识和事务类型;
转换单元503,还可以用于在确定该第二系统总线事务消息中携带的事务类型、CPU的标识和设备标识与设备权限表中的记录相匹配时,将该第二系统总线事务消息转换为相应的第一外部总线事务消息。
则此时,发送单元504,还可以用于将该第二系统总线事务消息转换而成的第一外部总线事务消息发送给所述需要访问的外部控制器,以及在确定该事务类型、CPU的标识和设备标识中至少有一项与设备权限表中的记录不相匹配时,向该CPU发送异常事件提示信息。
具体实现时,设备权限表可以通过多种形式来实现,例如,设备权限表可以包括多个子表,比如包括配置空间权限控制子表和存储空间权限控制子表,等,则:
转换单元503,具体可以用于在该事务类型指示为配置读写事务,且确定该CPU的标识和设备标识分别与该配置空间权限控制子表中的记录相匹配时,将该第二系统总线事务消息转换为相应的第一外部总线事务消息,在该事务类型指示为存储器读写事务或输入输出接口(I/O)读写事务,且确定该CPU的标识和设备标识与该存储空间权限控制子表中的记录相匹配时,将该第二系统总线事务消息转换为相应的第一外部总线事务消息;
发送单元504,具体可以用于在该事务类型指示为配置读写事务,且确定该CPU的标识或设备标识与该配置空间权限控制子表中的记录不相匹配时,向该CPU发送异常事件提示信息,以及在该CPU的标识或设备标识与该配置空间权限控制子表中的记录不相匹配时,向该CPU发送异常事件提示信息,且确定该CPU的标识或设备标识与该存储空间权限控制子表中的记录不相匹配时,向该CPU发送异常事件提示信息。
当然,也可以将这两个子表合并为一个表,具体可参见前面的实施例,在此不再赘述。
此外,需说明的是,除了可以由根复合体来对各个设备的访问权限进行控制之外,也可以由设备端,即由各个外部控制器(比如PCIE设备)来对访问权限进行控制,即:
接收单元501,还用于接收CPU发送的第二系统总线事务消息,所述第二系统总线事务消息携带所述CPU的标识、需要访问的外部控制器的设备标识和事务类型;
转换单元503,还可以用于将所述第二系统总线事务消息转换为相应的第二外部总线事务消息,所述第二外部总线事务消息携带CPU的标识和事务类型;
发送单元504,还可以用于根据该需要访问的外部控制器的设备标识将该第二TLP事务消息发送给该需要访问的外部控制器,以便该需要访问的外部控制器根据该CPU的标识和事务类型进行访问权限判断。
具体实施时,以上各个单元可以作为独立的实体实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的实施例,在此不再赘述。
由上可知,本实施例的根复合体的接收单元501可以接收CPU发送的第一系统总线事务消息,其中,该第一系统总线事务消息携带事务类型、目的地址和权限标识;在该事务类型指示为配置事务时,由判断单元502根据该权限标识确定该CPU是否具有配置权限,若有权限,则由交换单元503将该第一系统总线事务消息转换为相应的第一外部总线事务消息,并由发送单元504根据该目的地址将该第一外部总线事务消息发送给相应的外部控制器,以进行读写权限配置,否则,若没有权限,则由发送单元504向该CPU发送异常事件提示信息;由于在该方案中,可以由特定的CPU(即有权限的CPU)通过下发事务消息的形式来对外部控制器进行读写权限配置,以实现资源的分配和隔离,因此,相对于现有的静态配置而言,大大提高了配置的灵活性,即可以在保障分区安全性的同时,灵活地调整资源的分配和隔离。
实施例六、
在对节点内的各个设备的读写权限进行配置之后,除了可以由根复合体来对访问权限进行控制之外,也可以在设备端(即外部控制器)对访问权限进行控制,因此,本发明实施例还提供一种外部控制器,可以用于对访问权限进行控制。
如图6所示,该外部控制器可以包括接收单元601、第一处理单元602和第二处理单元603,如下:
接收单元601,用于接收根复合体发送的第二外部总线事务消息。
其中,该第二外部总线事务消息携带CPU标识和事务类型等信息,具体可参见前面的实施例,在此不再赘述。
第一处理单元602,可以用于在确定该第二外部总线事务消息中携带的事务类型、CPU的标识和设备标识与设备端权限位图/设备端权限表中的记录相匹配时,根据该第二外部总线事务消息执行事务。
其中,设备端权限位图/设备端权限表用于记录该外部控制器的读写权限配置信息。具体可以由HeavyOS在启动时,通过特权CPU对所有设备(即外部控制器)的进行配置,以设置其读写权限。例如,具体可参见表5以及前面的实施例,在此不再赘述。
第二处理单元603,用于在确定该第二外部总线事务消息中携带的事务类型、CPU的标识和设备标识中至少有一项与所述设备端权限位图/设备端权限表中的记录不相匹配时,发出指示权限错误的中断事件。
此外,在系统对资源进行划分或共享时,还可以由HeavyOS通过特权CPU对该设备端权限位图/设备端权限表进行更新,比如,可以由特权CPU发送第一系统总线事务消息给根复合体,由根复合体将该第一系统总线事务消息转换成配置类型的第一外部总线事务消息,并发送给外部控制器,即该外部控制器还可以包括更新单元,如下:
接收单元601,还可以用于接收根复合体发送的第一外部总线事务消息;
更新单元,用于根据该第一外部总线事务消息对该设备端权限位图/设备端权限表中的读写权限配置信息进行更新。
具体实施时,以上各个单元可以作为独立的实体实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的实施例,在此不再赘述。
由上可知,本实施例可以在外部控制器对访问权限进行控制,因此,本实施例除了可以实现实施例五的有益效果之外,还可以减轻根复合体的运算负载,从而提高整个系统的性能。
实施例七、
相应的,本发明实施例还提供一种节点,包括本发明实施例提供的任一种根复合体,此外,还可以包括本发明实施例提供的任一种外部控制器,以及多个CPU,例如,如图7所示,该节点可以包括至少一个特权CPU7011和多个普通CPU7012、根复合体702和多个外部控制器703,如下:
特权CPU7011,用于通过总线代理(BUSagent)发送第一系统总线事务消息给根复合体,其中,该第一系统总线事务消息携带事务类型、目的地址和指示具有权限的权限标识等信息。
普通CPU7012,用于通过总线代理(BUSagent)发送第一系统总线事务消息给根复合体,其中,该第一系统总线事务消息携带事务类型、目的地址和指示不具有权限的权限标识等信息。
根复合体702,用于接收特权CPU7011或普通CPU7012发送的第一系统总线事务消息;在该事务类型指示为配置事务时,根据该权限标识确定该CPU是否具有配置权限,即判定该CPU是特权CPU701还是普通CPU7012;若是,则表明该CPU为特权CPU7011,于是将该第一系统总线事务消息转换为相应的第一外部总线事务消息,根据该目的地址将该第一外部总线事务消息发送给相应的外部控制器703;若否,则表明该CPU为普通CPU7012,于是向该普通CPU7012返回异常事件提示信息。
该根复合体702,还用于在该事务类型指示为非配置事务时,将该第一系统总线事务消息转换为相应的第一外部总线事务消息,根据该目的地址将该第一外部总线事务消息发送给该外部控制器703,以进行事务处理。
外部控制器703,用于接收根复合体702发送的第一外部总线事务消息,根据该第一外部总线事务消息进行读写权限配置或进行事务处理。
此外,在根据该目的地址将第一外部总线事务消息发送给相应的外部控制器,以进行读写权限配置之后,根复合体702还可以获取可用设备列表信息,比如读取PCIE设备树,根据该可用设备列表信息获取对应的节点中所有外部控制器的读写权限配置信息,然后根据该读写权限配置信息建立设备权限表,以便后续可以根据该设备权限表对各个设备的访问权限进行控制,例如,具体可以如下:
特权CPU7011,还可以用于发送第二系统总线事务消息给根复合体702,其中,该第二系统总线事务消息携带特权CPU7011的CPU标识、需要访问的外部控制器703的设备标识和事务类型等信息。
普通CPU7012,还可以用于发送第二系统总线事务消息给根复合体702,其中,该第二系统总线事务消息携带普通CPU7012的CPU标识、需要访问的外部控制器703的设备标识和事务类型等信息。
根复合体702,还可以用于接收特权CPU7011或普通CPU7012发送的第二系统总线事务消息,在确定该事务类型、CPU标识和设备标识分别与设备权限表中的记录相匹配时,将该第二系统总线事务消息转换为相应的第一外部总线事务消息,将该第一外部总线事务消息发送给该需要访问的外部控制器703,反之,若在确定该事务类型、CPU标识和设备标识中至少有一项与设备权限表中的记录不相匹配,则向源CPU,比如特权CPU7011或普通CPU7012发送异常事件提示信息。
外部控制器703,用于接收根复合体702发送的第一外部总线事务消息,根据该第一外部总线事务消息进行事务处理。
具体实现时,设备权限表可以通过多种形式来实现,例如,设备权限表可以包括多个子表,如配置空间权限控制子表和存储空间权限控制子表等,具体可参见前面的实施例,在此不再赘述。
此外,还需说明的是,除了可以由根复合体702来对各个设备的访问权限进行控制之外,也可以由设备端,即由各个外部控制器703来对访问权限进行控制,如下:
根复合体702,用于在接收到特权CPU7011或普通CPU7012发送的第二系统总线事务消息后,将所述第二系统总线事务消息转换为相应的第二外部总线事务消息,该第二外部总线事务消息可以携带CPU标识和事务类型等信息;根据该需要访问的外部控制器的设备标识将所述第二TLP事务消息发送给所述需要访问的外部控制器703。
外部控制器703,用于接收根复合体发送的第二外部总线事务消息,在确定该事务类型、CPU标识和设备标识分别与设备端权限位图/设备端权限表中的记录相匹配时,根据该第二外部总线事务消息执行事务;在确定该事务类型、CPU标识和设备标识中至少有一项与所述设备端权限位图/设备端权限表中的记录不相匹配时,发出指示权限错误的中断事件。
其中,设备端权限位图/设备端权限表用于记录所述外部控制器的读写权限配置信息,具体可参见前面的实施例,在此不再赘述。
以上各个设备的具体操作可参见前面的实施例,在此不再赘述。
由于该节点可以包括本发明实施例提供的任一种根复合体和外部控制器,因此,同样可以实现本发明实施例所提供的任一种根复合体和外部控制器的有益效果,详见前面实施例,在此不再赘述。
实施例八、
此外,本发明实施例还提供一种节点内安全分区的构建方法,以下将进行详细说明。
如图8所示,该一种节点内安全分区的构建方法的具体流程可以如下:
801、基本输入输出系统(BIOS,BasicInputOutputSystem)获取物理资源划分信息。
从系统的角度来看,需要配置其安全权限的内部资源主要可以包括主桥(Hostbridge)、RC寄存器(RCRegisterBlock)、管理存储器系统(PowerPC)、输入/输出内存管理单元(IOMMU,Input/OutputMemoryManagementUnit)和高级可编程中断控制器(APIC,AdvancedProgrammableInterruptController)等,因此,此时具体可以获取这些内部资源的划分信息。
其中,这些物理资源的划分,具体可以由管理员通过管理操作系统提供的接口进行指定。
802、BIOS根据所述物理资源划分信息构建分区描述符,并建立分区描述符表。
例如,具体可以在根据该物理资源划分信息构建分区描述符后,将分区描述符插入分区描述符表中。
其中,所述分区描述符表可以用来描述所有分区的资源信息,该分区描述符表具体可以包括分区标识(partitionID)、可用CPU列表信息(CPUIDlist)、可用物理内存列表信息(MemoryRegionList)和可用设备列表信息(DeviceList)等信息。
803、BIOS根据该可用CPU列表信息设置各个CPU的权限。
需说明的是,如果存在高速缓冲存储器(cache)性能隔离模块的话,则此时还可以是设置cache性能隔离模块,为LightOS更新cache颜色和cache重映射表,等等。
在为各个CPU设置了权限之后,比如设置那些CPU是特权CPU,具有何种权限,哪些CPU是普通CPU,又具有什么权限,等等,后续在分区操作系统实例启动之后,就可以根据这些设置,由特权CPU对节点内的各个设备的读写权限进行设置,然后由根复合体或外部控制器基于这些权限对访问进行控制,详见前面的实施例,在此不再赘述。
804、BIOS根据可用物理内存列表信息设置主存控制器的分区内存权限表。
805、BIOS根据所述可用设备列表信息设置根复合体中的设备权限表或外部控制器中的设备端权限位图/设备端权限表,以及设置设备中断方式和中断路由。
比如,具体可以根据可用设备列表信息设置根复合体中的设备权限表,或设置设备端(即外部控制器)中的设备端权限位图/设备端权限表,然后更新设备APIC表项中的中断路由,或设备的消息信号中断性能表(MSIcapability,MessageSignaledInterruptscapability)表项等。
806、BIOS根据该分区标识创建分区启动镜像,并复制该镜像至内存,以进行启动分区操作系统实例。
在该启动分区操作系统实例之后,便可以由特权CPU对节点内的各个设备的读写权限进行设置,然后由根复合体或外部控制器基于这些权限对访问进行控制,详见前面的实施例,在此不再赘述。
由上可知,本发明实施例可以获取物理资源划分信息,然后根据该物理资源划分信息构建分区描述符,并建立分区描述符表,再然后基于该分区描述符表对节点内的各种权限表进行设置,以启动分区操作系统实例,以便在该分区操作系统实例下,可以由特权CPU对节点内的各个设备的读写权限进行设置,使得后续可以基于该读写权限进行访问控制,实现资源的分配和隔离,因此,该方案相对于现有的静态配置而言,大大提高了配置的灵活性,即可以在保障分区安全性的同时,灵活地调整资源的分配和隔离。
实施例九、
相应的,本发明实施例还提供一种节点内安全分区的销毁方法,如图9所示,具体流程可以如下:
901、BIOS释放系统物理资源,并更新物理资源划分信息。
其中,系统物理资源可以包括主桥(Hostbridge)、RC寄存器(RCRegisterBlock)、管理存储器系统(PowerPC)、输入/输出内存管理单元(IOMMU)和高级可编程中断控制器(APIC)等,因此,此时可以释放这些物理资源,并更新物理资源划分信息。
902、BIOS根据更新后的物理资源划分信息构建分区描述符,并建立分区描述符表。
例如,具体可以在根据该物理资源划分信息构建分区描述符后,将分区描述符插入分区描述符表中。
其中,所述分区描述符表可以用来描述所有分区的资源信息,该分区描述符表具体可以包括分区标识、可用CPU列表信息、可用物理内存列表信息和可用设备列表信息等信息。
903、BIOS根据该可用设备列表信息更新根复合体中的设备权限表,以及设备中断方式和中断路由。
比如,具体可以根据可用设备列表信息设置根复合体中的设备权限表,或设置设备端(即外部控制器)中的设备端权限位图/设备端权限表,然后更新设备APIC表项中的中断路由,或设备的MSIcapability表项等。
904、BIOS根据可用物理内存列表信息更新主存控制器的分区内存权限表。
905、BIOS根据该可用CPU列表信息更新各个CPU的权限,具体可参见实施例八的步骤803,在此不再赘述。
需说明的是,如果存在高速缓冲存储器(cache)性能隔离模块的话,则此时还可以是设置cache性能隔离模块,为LightOS更新cache颜色和cache重映射表,等等。
本实施例是与实施例八对应的方法,该实施例可以实现与实施例八同样的有益效果,在此不再赘述。
实施例十、
相应的,本发明实施例还提供一种基本输入输出系统(即BIOS),如图10所示,该BIOS可以包括获取单元1001、建立单元1002、设置单元1003和启动单元1004,如下:
获取单元1001,用于获取物理资源划分信息。
从系统的角度来看,需要配置其安全权限的内部资源主要可以包括主桥(Hostbridge)、RC寄存器(RCRegisterBlock)、管理存储器系统(PowerPC)、输入/输出内存管理单元(IOMMU)和高级可编程中断控制器(APIC)等,因此,此时具体可以获取这些内部资源的划分信息。
其中,这些物理资源的划分,具体可以由管理员通过管理操作系统提供的接口进行指定。
建立单元1002,用于根据该物理资源划分信息构建分区描述符,并建立分区描述符表。
例如,建立单元1002具体可以在根据该物理资源划分信息构建分区描述符后,将分区描述符插入分区描述符表中。
其中,所述分区描述符表可以用来描述所有分区的资源信息,该分区描述符表具体可以包括分区标识、可用CPU列表信息、可用物理内存列表信息和可用设备列表信息等信息。
设置单元1003,用于根据该可用CPU列表信息设置各个CPU的权限,根据可用物理内存列表信息设置主存控制器的分区内存权限表,以及根据该可用设备列表信息设置根复合体中的设备权限表,以及设备中断方式和中断路由等,具体可参见实施例八,在此不再赘述。
需说明的是,如果存在高速缓冲存储器(cache)性能隔离模块的话,则此时,设置单元1003可以是设置cache性能隔离模块,为LightOS更新cache颜色和cache重映射表,等等。
启动单元1004,用于根据该分区标识创建分区启动镜像,并复制所述镜像至内存,以进行启动分区操作系统实例。
在该启动分区操作系统实例之后,便可以由特权CPU对节点内的各个设备的读写权限进行设置,然后由根复合体或外部控制器基于这些权限对访问进行控制,详见前面的实施例,在此不再赘述。
由上可知,本发明实施例的获取单元1001可以获取物理资源划分信息,然后由建立单元1002根据该物理资源划分信息构建分区描述符,并建立分区描述符表,再然后,由设置单元1003基于该分区描述符表对节点内的各种权限表进行设置,以便启动单元1004可以启动分区操作系统实例,使得后续可以在该分区操作系统实例下,由特权CPU对节点内的各个设备的读写权限进行设置,使得后续可以基于该读写权限进行访问控制,实现资源的分配和隔离,因此,该方案相对于现有的静态配置而言,大大提高了配置的灵活性,即可以在保障分区安全性的同时,灵活地调整资源的分配和隔离。
实施例十一、
相应的,本发明实施例还提供另一种基本输入输出系统(即BIOS),如图11所示,该BIOS可以包括释放单元1101、建立单元1102和设置单元1103,如下:
释放单元1101,用于释放系统物理资源,并更新物理资源划分信息。
其中,系统物理资源可以包括主桥(Hostbridge)、RC寄存器(RCRegisterBlock)、管理存储器系统(PowerPC)、输入/输出内存管理单元(IOMMU)和高级可编程中断控制器(APIC)等,因此,此时可以释放这些物理资源,并更新物理资源划分信息。
建立单元1102,用于根据更新后的物理资源划分信息构建分区描述符,并建立分区描述符表。
例如,具体可以在根据该物理资源划分信息构建分区描述符后,将分区描述符插入分区描述符表中。
其中,所述分区描述符表可以用来描述所有分区的资源信息,该分区描述符表具体可以包括分区标识、可用CPU列表信息、可用物理内存列表信息和可用设备列表信息等信息。
设置单元1103,用于根据该可用设备列表信息更新根复合体中的设备权限表,以及设备中断方式和中断路由;以及根据可用物理内存列表信息更新主存控制器的分区内存权限表;根据该可用CPU列表信息更新各个CPU的权限。
需说明的是,如果存在高速缓冲存储器(cache)性能隔离模块的话,则此时,设置单元1103还可以是设置cache性能隔离模块,为LightOS更新cache颜色和cache重映射表,等等。
本实施例是与实施例十对应的装置,该实施例可以实现与实施例十同样的有益效果,在此不再赘述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,ReadOnlyMemory)、随机存取记忆体(RAM,RandomAccessMemory)、磁盘或光盘等。
以上对本发明实施例所提供的一种节点内的数据处理系统、装置和方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (23)
1.一种节点内的数据处理方法,其特征在于,包括:
根复合体接收中央处理器发送的第一系统总线事务消息,所述第一系统总线事务消息携带事务类型、目的地址和权限标识;
在所述事务类型指示为配置事务时,根复合体根据所述权限标识确定所述中央处理器是否具有配置权限;
若是,则根复合体将所述第一系统总线事务消息转换为相应的第一外部总线事务消息,根据所述目的地址将所述第一外部总线事务消息发送给相应的外部控制器,以进行读写权限配置;
若否,则根复合体向所述中央处理器发送异常事件提示信息。
2.根据权利要求1所述的方法,其特征在于,
通过在所述第一系统总线事务消息中修改或添加字段以设置特权字段,若所述特权字段的值为第一值,则指示所述中央处理器具有配置权限,若所述特权字段的值为第二值,则指示所述中央处理器不具有配置权限。
3.根据权利要求1所述的方法,其特征在于,还包括:
若所述事务类型指示为非配置事务,则将所述第一系统总线事务消息转换为相应的第一外部总线事务消息,根据所述目的地址将所述第一外部总线事务消息发送给所述外部控制器,以进行事务处理。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述根据所述目的地址将所述第一外部总线事务消息发送给相应的外部控制器,以进行读写权限配置之后,还包括:
根复合体获取可用设备列表信息,根据所述可用设备列表信息获取对应的节点中所有外部控制器的读写权限配置信息;
根复合体根据所述读写权限配置信息建立设备权限表。
5.根据权利要求4所述的方法,其特征在于,所述根据所述读写权限配置信息建立设备权限表之后,还包括:
根复合体接收中央处理器发送的第二系统总线事务消息,所述第二系统总线事务消息携带所述中央处理器的标识、需要访问的外部控制器的设备标识和事务类型;
根复合体在确定所述事务类型、中央处理器的标识和设备标识分别与设备权限表中的记录相匹配时,将所述第二系统总线事务消息转换为相应的第一外部总线事务消息,将所述第一外部总线事务消息发送给所述需要访问的外部控制器;
根复合体在确定所述事务类型、中央处理器的标识和设备标识中至少有一项与设备权限表中的记录不相匹配时,向所述中央处理器发送异常事件提示信息。
6.根据权利要求5所述的方法,其特征在于,所述设备权限表包括配置空间权限控制子表和存储空间权限控制子表,则所述根复合体在确定所述事务类型、中央处理器的标识和设备标识分别与设备权限表中的记录相匹配时,将所述第二系统总线事务消息转换为相应的第一外部总线事务消息,将所述第一外部总线事务消息发送给所述需要访问的外部控制器,根复合体在确定所述事务类型、中央处理器的标识和设备标识中至少有一项与设备权限表中的记录不相匹配时,向所述中央处理器发送异常事件提示信息,包括:
若所述事务类型指示为配置读写事务,则根复合体在确定所述中央处理器的标识和设备标识分别与所述配置空间权限控制子表中的记录相匹配时,将所述第二系统总线事务消息转换为相应的第一外部总线事务消息,将所述第一外部总线事务消息发送给所述需要访问的外部控制器;根复合体在确定所述中央处理器的标识或设备标识与所述配置空间权限控制子表中的记录不相匹配时,向所述中央处理器发送异常事件提示信息;
若所述事务类型指示为存储器读写事务或输入输出接口I/O读写事务,则根复合体在确定所述中央处理器的标识和设备标识分别与所述存储空间权限控制子表中的记录相匹配时,将所述第二系统总线事务消息转换为相应的第一外部总线事务消息,将所述第一外部总线事务消息发送给所述需要访问的外部控制器;根复合体在确定所述中央处理器的标识或设备标识与所述存储空间权限控制子表中的记录不相匹配时,向所述中央处理器发送异常事件提示信息。
7.根据权利要求1至3中任一项所述的方法,其特征在于,所述根据所述目的地址将所述第一外部总线事务消息发送给相应的外部控制器,以进行读写权限配置之后,还包括:
根复合体接收中央处理器发送的第二系统总线事务消息,所述第二系统总线事务消息携带所述中央处理器的标识、需要访问的外部控制器的设备标识和事务类型;
将所述第二系统总线事务消息转换为相应的第二外部总线事务消息,所述第二外部总线事务消息携带中央处理器的标识和事务类型;
根据所述需要访问的外部控制器的设备标识将所述第二外部总线事务消息发送给所述需要访问的外部控制器,以便所述需要访问的外部控制器根据所述中央处理器的标识和事务类型进行访问权限判断。
8.一种节点内的数据处理方法,其特征在于,包括:
外部控制器接收根复合体发送的第二外部总线事务消息,所述第二外部总线事务消息携带中央处理器的标识和事务类型;
外部控制器在确定所述事务类型、中央处理器的标识和设备标识分别与设备端权限位图/设备端权限表中的记录相匹配时,根据所述第二外部总线事务消息执行事务;
外部控制器在确定所述事务类型、中央处理器的标识和设备标识中至少有一项与所述设备端权限位图/设备端权限表中的记录不相匹配时,发出指示权限错误的中断事件;
所述设备端权限位图/设备端权限表用于记录所述外部控制器的读写权限配置信息。
9.根据权利要求8所述的方法,其特征在于,还包括:
外部控制器接收根复合体发送的第一外部总线事务消息;
根据所述第一外部总线事务消息对所述设备端权限位图/设备端权限表中的读写权限配置信息进行更新。
10.一种根复合体,其特征在于,包括:
接收单元,用于接收中央处理器发送的第一系统总线事务消息,所述第一系统总线事务消息携带事务类型、目的地址和权限标识;
判断单元,用于在所述事务类型指示为配置事务时,根据所述权限标识确定所述中央处理器是否具有配置权限;
转换单元,用于在判断单元确定所述中央处理器具有配置权限时,将所述第一系统总线事务消息转换为相应的第一外部总线事务消息。
发送单元,用于根据所述目的地址将所述第一外部总线事务消息发送给相应的外部控制器,以进行读写权限配置,以及,在判断单元确定所述中央处理器不具有配置权限时,向所述中央处理器发送异常事件提示信息。
11.根据权利要求10所述的根复合体,其特征在于,
所述转换单元,还用于在所述事务类型指示为非配置事务时,将所述第一系统总线事务消息转换为相应的第一外部总线事务消息,根据所述目的地址将所述第一外部总线事务消息发送给所述外部控制器,以进行事务处理。
12.根据权利要求10或11所述的根复合体,其特征在于,还包括建立单元;
所述建立单元,用于获取可用设备列表信息,根据所述可用设备列表信息获取对应的外部控制器的读写权限配置信息,根据所述读写权限配置信息建立设备权限表。
13.根据权利要求12所述的根复合体,其特征在于,
所述接收单元,还用于接收中央处理器发送的第二系统总线事务消息,所述第二系统总线事务消息携带所述中央处理器的标识、需要访问的外部控制器的设备标识和事务类型;
所述转换单元,还用于在确定所述事务类型、中央处理器的标识和设备标识分别与设备权限表中的记录相匹配时,将所述第二系统总线事务消息转换为相应的第一外部总线事务消息;
所述发送单元,还用于将所述第二系统总线事务消息转换而成的第一外部总线事务消息发送给所述需要访问的外部控制器,以及在确定所述事务类型、中央处理器的标识和设备标识中至少有一项与设备权限表中的记录不相匹配时,向所述中央处理器发送异常事件提示信息。
14.根据权利要求13所述的根复合体,其特征在于,所述设备权限表包括配置空间权限控制子表和存储空间权限控制子表,则:
所述转换单元,具体用于在所述事务类型指示为配置读写事务,且确定所述中央处理器的标识和设备标识分别与所述配置空间权限控制子表中的记录相匹配时,将所述第二系统总线事务消息转换为相应的第一外部总线事务消息,在所述事务类型指示为存储器读写事务或输入输出接口I/O读写事务,且确定所述中央处理器的标识和设备标识分别与所述存储空间权限控制子表中的记录相匹配时,将所述第二系统总线事务消息转换为相应的第一外部总线事务消息;
所述发送单元,具体用于在所述事务类型指示为配置读写事务,且确定所述中央处理器的标识或设备标识与所述配置空间权限控制子表中的记录不相匹配时,向所述中央处理器发送异常事件提示信息,以及在所述中央处理器的标识或设备标识与所述配置空间权限控制子表中的记录不相匹配时,向所述中央处理器发送异常事件提示信息,且确定所述中央处理器的标识或设备标识与所述存储空间权限控制子表中的记录不相匹配时,向所述中央处理器发送异常事件提示信息。
15.根据权利要求10或11所述的根复合体,其特征在于,
所述接收单元,还用于接收中央处理器发送的第二系统总线事务消息,所述第二系统总线事务消息携带所述中央处理器的标识、需要访问的外部控制器的设备标识和事务类型;
所述转换单元,还用于将所述第二系统总线事务消息转换为相应的第二外部总线事务消息,所述第二外部总线事务消息携带中央处理器的标识和事务类型;
所述发送单元,还用于根据所述需要访问的外部控制器的设备标识将所述第二外部总线事务消息发送给所述需要访问的外部控制器,以便所述需要访问的外部控制器根据所述中央处理器的标识和事务类型进行访问权限判断。
16.一种外部控制器,其特征在于,包括
接收单元,用于接收根复合体发送的第二外部总线事务消息,所述第二外部总线事务消息携带中央处理器的标识和事务类型;
第一处理单元,用于在确定所述事务类型、中央处理器的标识和设备标识分别与设备端权限位图/设备端权限表中的记录相匹配时,根据所述第二外部总线事务消息执行事务,所述设备端权限位图/设备端权限表用于记录所述外部控制器的读写权限配置信息;
第二处理单元,用于在确定所述事务类型、中央处理器的标识和设备标识中至少有一项与所述设备端权限位图/设备端权限表中的记录不相匹配时,发出指示权限错误的中断事件。
17.根据权利要求16所述的外部控制器,其特征在于,还包括更新单元;
所述接收单元,还用于接收根复合体发送的第一外部总线事务消息;
所述更新单元,用于根据所述第一外部总线事务消息对所述设备端权限位图/设备端权限表中的读写权限配置信息进行更新。
18.一种节点,其特征在于,包括权利要求10至15任一项所述的根复合体。
19.根据权利要求18所述的节点,其特征在于,还包括权利要求16至17任一项所述的外部控制器。
20.一种节点内安全分区的构建方法,其特征在于,包括:
基本输入输出系统BIOS获取物理资源划分信息;
所述BIOS根据所述物理资源划分信息构建分区描述符,并建立分区描述符表,所述分区描述符表包括分区标识、可用中央处理器列表信息、可用物理内存列表信息和可用设备列表信息;
所述BIOS根据所述可用中央处理器列表信息设置各个中央处理器的权限;
所述BIOS根据可用物理内存列表信息设置主存控制器的分区内存权限表;
所述BIOS根据所述可用设备列表信息设置根复合体中的设备权限表或外部控制器中的设备端权限位图/设备端权限表,以及设置设备中断方式和中断路由;
所述BIOS根据所述分区标识创建分区启动镜像,并复制所述镜像至内存,以进行启动分区操作系统实例。
21.一种节点内安全分区的销毁方法,其特征在于,包括:
基本输入输出系统BIOS释放系统物理资源,并更新物理资源划分信息;
所述BIOS根据更新后的物理资源划分信息构建分区描述符,并建立分区描述符表,所述分区描述符表包括分区标识、可用中央处理器列表信息、可用物理内存列表信息和可用设备列表信息;
所述BIOS根据所述可用设备列表信息更新根复合体中的设备权限表,以及设备中断方式和中断路由;
所述BIOS根据可用物理内存列表信息更新主存控制器的分区内存权限表;
所述BIOS根据所述可用中央处理器列表信息更新各个中央处理器的权限。
22.一种基本输入输出系统,其特征在于,包括:
获取单元,用于获取物理资源划分信息;
建立单元,用于根据所述物理资源划分信息构建分区描述符,并建立分区描述符表,所述分区描述符表包括分区标识、可用中央处理器列表信息、可用物理内存列表信息和可用设备列表信息;
设置单元,用于根据所述可用中央处理器列表信息设置各个中央处理器的权限;根据可用物理内存列表信息设置主存控制器的分区内存权限表;以及根据所述可用设备列表信息设置根复合体中的设备权限表或外部控制器中的设备端权限位图/设备端权限表,以及设置设备中断方式和中断路由;
启动单元,用于根据所述分区标识创建分区启动镜像,并复制所述镜像至内存,以进行启动分区操作系统实例。
23.一种基本输入输出系统,其特征在于,包括:
释放单元,用于释放系统物理资源,并更新物理资源划分信息;
建立单元,用于根据更新后的物理资源划分信息构建分区描述符,并建立分区描述符表,所述分区描述符表包括分区标识、可用中央处理器列表信息、可用物理内存列表信息和可用设备列表信息;
设置单元,用于根据所述可用设备列表信息更新根复合体中的设备权限表,以及设备中断方式和中断路由;以及根据可用物理内存列表信息更新主存控制器的分区内存权限表;根据所述可用中央处理器列表信息更新各个中央处理器的权限。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410277440.1A CN105335227B (zh) | 2014-06-19 | 2014-06-19 | 一种节点内的数据处理方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410277440.1A CN105335227B (zh) | 2014-06-19 | 2014-06-19 | 一种节点内的数据处理方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105335227A true CN105335227A (zh) | 2016-02-17 |
CN105335227B CN105335227B (zh) | 2019-01-08 |
Family
ID=55285783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410277440.1A Active CN105335227B (zh) | 2014-06-19 | 2014-06-19 | 一种节点内的数据处理方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105335227B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107864036A (zh) * | 2017-11-20 | 2018-03-30 | 安徽亿联智能有限公司 | 一种具有高安全性能的电脑读取盒子关键数据记录方式 |
WO2019076297A1 (zh) * | 2017-10-16 | 2019-04-25 | 华为技术有限公司 | 一种处理器系统和终端芯片 |
CN110635964A (zh) * | 2018-06-22 | 2019-12-31 | 克洛纳测量技术有限公司 | 用于在总线通信时进行错误处理的方法以及总线通信系统 |
WO2020029254A1 (zh) * | 2018-08-10 | 2020-02-13 | 深圳市汇顶科技股份有限公司 | 一种SoC芯片及总线访问控制方法 |
CN113498596A (zh) * | 2020-01-22 | 2021-10-12 | 华为技术有限公司 | 一种基于PCIe的数据传输方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1520556A (zh) * | 2001-06-29 | 2004-08-11 | �Ҵ���˾ | 使用本地标识符的端节点分区 |
CN1920786A (zh) * | 2005-08-23 | 2007-02-28 | 北京软通科技有限责任公司 | 实现操作系统安全控制的系统及方法 |
CN101983365A (zh) * | 2008-04-02 | 2011-03-02 | 惠普开发有限公司 | 在共享的i/o系统中转换重置 |
CN102906721A (zh) * | 2010-06-23 | 2013-01-30 | 国际商业机器公司 | 与访问地址空间并行地对地址空间调整大小 |
CN103034526A (zh) * | 2012-12-06 | 2013-04-10 | 中国电信股份有限公司云计算分公司 | 一种虚拟化服务的实现方法和装置 |
CN103257860A (zh) * | 2006-04-19 | 2013-08-21 | 英特尔公司 | 支持处理系统的分区中的独立操作系统的方法和设备 |
CN103870748A (zh) * | 2012-12-17 | 2014-06-18 | 华为技术有限公司 | 虚拟机的安全处理方法及装置 |
-
2014
- 2014-06-19 CN CN201410277440.1A patent/CN105335227B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1520556A (zh) * | 2001-06-29 | 2004-08-11 | �Ҵ���˾ | 使用本地标识符的端节点分区 |
CN1920786A (zh) * | 2005-08-23 | 2007-02-28 | 北京软通科技有限责任公司 | 实现操作系统安全控制的系统及方法 |
CN103257860A (zh) * | 2006-04-19 | 2013-08-21 | 英特尔公司 | 支持处理系统的分区中的独立操作系统的方法和设备 |
CN101983365A (zh) * | 2008-04-02 | 2011-03-02 | 惠普开发有限公司 | 在共享的i/o系统中转换重置 |
CN102906721A (zh) * | 2010-06-23 | 2013-01-30 | 国际商业机器公司 | 与访问地址空间并行地对地址空间调整大小 |
CN103034526A (zh) * | 2012-12-06 | 2013-04-10 | 中国电信股份有限公司云计算分公司 | 一种虚拟化服务的实现方法和装置 |
CN103870748A (zh) * | 2012-12-17 | 2014-06-18 | 华为技术有限公司 | 虚拟机的安全处理方法及装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019076297A1 (zh) * | 2017-10-16 | 2019-04-25 | 华为技术有限公司 | 一种处理器系统和终端芯片 |
CN107864036A (zh) * | 2017-11-20 | 2018-03-30 | 安徽亿联智能有限公司 | 一种具有高安全性能的电脑读取盒子关键数据记录方式 |
CN110635964A (zh) * | 2018-06-22 | 2019-12-31 | 克洛纳测量技术有限公司 | 用于在总线通信时进行错误处理的方法以及总线通信系统 |
WO2020029254A1 (zh) * | 2018-08-10 | 2020-02-13 | 深圳市汇顶科技股份有限公司 | 一种SoC芯片及总线访问控制方法 |
CN111295645A (zh) * | 2018-08-10 | 2020-06-16 | 深圳市汇顶科技股份有限公司 | 一种SoC芯片及总线访问控制方法 |
US11048648B2 (en) | 2018-08-10 | 2021-06-29 | Shenzhen GOODIX Technology Co., Ltd. | SoC chip and method for controlling bus access |
CN111295645B (zh) * | 2018-08-10 | 2023-09-22 | 深圳市汇顶科技股份有限公司 | 一种SoC芯片及总线访问控制方法 |
CN113498596A (zh) * | 2020-01-22 | 2021-10-12 | 华为技术有限公司 | 一种基于PCIe的数据传输方法及装置 |
CN113498596B (zh) * | 2020-01-22 | 2022-10-11 | 华为技术有限公司 | 一种基于PCIe的数据传输方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105335227B (zh) | 2019-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10235097B2 (en) | Area and performance optimized namespace sharing method in virtualized PCIE based SSD controller | |
US20170249162A1 (en) | Safe transmit packet processing for network function virtualization applications | |
US7234037B2 (en) | Memory mapped Input/Output operations | |
CN105335227A (zh) | 一种节点内的数据处理方法、装置和系统 | |
US8458368B2 (en) | System and method for discovering and protecting shared allocated resources in a shared virtualized I/O device | |
US10387184B2 (en) | Address based host page table selection | |
US10402576B2 (en) | Safe physical function passthrough using virtual machine functions | |
US10257166B2 (en) | Guest netfilter protection by virtual machine function | |
US20240168911A1 (en) | PCIe DEVICE | |
US9875132B2 (en) | Input output memory management unit based zero copy virtual machine to virtual machine communication | |
US11983136B2 (en) | PCIe device and operating method thereof | |
JP2016516228A (ja) | システムオンチップ内のスレーブユニットへの、コントロール下でのアクセス方法および回路装置 | |
CN103649923B (zh) | 一种numa系统内存镜像配置方法、解除方法、系统和主节点 | |
US10698713B2 (en) | Virtual processor state switching virtual machine functions | |
US11366940B2 (en) | Secure-aware bus system | |
US20220092223A1 (en) | Technologies for filtering memory access transactions received from one or more i/o devices | |
KR102568909B1 (ko) | PCIe 펑션 및 그 동작 방법 | |
US10013199B2 (en) | Translation bypass by host IOMMU for systems with virtual IOMMU | |
CN115203095A (zh) | PCIe装置及其操作方法 | |
CN112528345A (zh) | 通信方法、装置、计算机可读存储介质和芯片 | |
US8312461B2 (en) | System and method for discovering and protecting allocated resources in a shared virtualized I/O device | |
US9459907B2 (en) | Guest controlled malicious payload protection | |
CN111241029A (zh) | 片上系统内的访问限制管理 | |
US7676608B1 (en) | System for extending Multiple Independent Levels of Security (MILS) partitioning to input/output (I/O) devices | |
US10073710B2 (en) | Host-driven application memory protection for virtual machines |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |