数据处理装置和存储器保护方法与流程

文档序号:19527589发布日期:2019-12-27 15:04阅读:341来源:国知局
数据处理装置和存储器保护方法与流程

相关申请的交叉引用

这里通过引用并入2018年6月18日提交的日本专利申请no.2018-115176的全部公开内容,包括说明书、附图和摘要。

本发明涉及数据处理装置和存储器保护方法,并且可以适用于例如虚拟机在其中操作的数据处理装置。



背景技术:

虚拟化技术被称为用于在物理机器上构建虚拟机(virtualmachine)的技术。在这种虚拟化技术中,虚拟机在被称为虚拟机监视器(virtualmachinemonitor)的管理软件上运行。在结合了虚拟化技术的数据处理装置中,可能存在两种类型的存储器保护。一种是由虚拟机监视器设置的存储器保护。另一种是由虚拟机设置的存储器保护,更具体地,是由在虚拟机上执行的程序(例如,操作系统(operatingsystem)设置的存储器保护。

在这方面,日本专利申请no.2016-509303公开了一种具有第一mpu(存储器保护单元)和第二mpu的微处理器核。



技术实现要素:

在日本专利申请no.2016-509303中描述的微处理器核中,当实现上述两种类型的存储器保护时,虚拟机使用第一mpu并且虚拟机监视器使用第二mpu。这里,第一mpu中使用的条目数和第二mpu中使用的条目数都取决于要操作的虚拟机。即,例如,当不同的虚拟机在一个物理机上以时分方式顺序地操作时,在第一mpu中使用的条目数和在第二mpu中使用的条目数根据哪个虚拟机正在操作而变化。因此,需要在制造物理机时将会在物理机上操作的每个虚拟机在第一mpu中使用的最大条目数静态地设置为第一mpu的条目数。类似地,在制造物理机时需要考虑会在物理机上操作的每个虚拟机来静态地设置第二mpu的条目数。换句话说,第一mpu的条目数和第二mpu的条目数必须都是要使用的最大数目。这导致电路规模的增加。

根据一个实施例,数据处理装置包括:存储器保护设置存储单元,其能够存储多个地址部分;多个第一确定单元,其临时确定是否允许访问请求,分类信息确定存储在所述存储器保护设置存储单元中的每个地址部分是用于由虚拟机监视器设置的存储器保护还是用于由虚拟机设置的存储器保护;以及第二确定单元,其基于每个第一确定单元的每个临时确定的结果来最终确定是否允许访问请求。

根据上述实施例,可以实现由虚拟机监视器设置的存储器保护功能和由虚拟机设置的存储器保护功能,同时抑制电路规模的增加。

附图说明

图1是示出结合了虚拟化技术的数据处理装置中的两种类型的存储器保护的示意图。

图2是示出当使用两个mpu实现两种类型的存储器保护时每个mpu的条目数的示意图。

图3是示出当使用一个mpu实现两种类型的存储器保护时的条目数的示意图。

图4是示出根据实施例的概要的数据处理装置的配置示例的框图。

图5是根据第一实施例的数据处理装置的配置示例的框图。

图6是示出存储在mpu条目块中的每个条目中的信息的示例的示意图。

图7是示出存储器保护权限确定单元的配置的示例的框图。

图8是示出根据第一实施例的最终访问确定单元的配置示例的框图。

图9是示出条目寄存器访问权限确定单元的配置示例的框图。

图10是示出设置寄存器访问权限确定单元的配置示例的框图。

图11是示出根据第二实施例的数据处理装置的配置示例的框图。

图12是示出根据第二实施例的最终访问确定单元的配置示例的框图。

图13是示出由处理电路接收的主机违规信息和访客违规信息与由处理电路维护的违规信息之间的关系的示例的表。

图14是示出由处理电路接收的主机违规信息和访客违规信息和产生异常的机器之间的关系的示例的表。

图15是示出根据第三实施例的数据处理装置的配置示例的框图。

图16是示出由虚拟机监视器的指令执行的设置信息的切换的示意图。

图17是示出由虚拟机的适当指令执行的设置信息的切换的示意图。

图18是示出由虚拟机上的不适当指令执行的设置信息的切换的示意图。

图19是示出根据第四实施例的最终访问确定单元的配置示例的框图。

具体实施方式

为了清楚地解释,以下描述和附图进行了适当地省略和简化。在附图中,相同的元件由相同的附图标记表示,并且根据需要省略其重复描述。

在描述实施例之前,首先,将描述发明人关于实施例所考虑的事项。

图1是示出结合了虚拟化技术的数据处理装置中的两种类型的存储器保护的示意图。在虚拟化技术中,如图1所示,虚拟机监视器91(也称为管理程序)在诸如cpu(中央处理单元)90的物理机上运行。例如,虚拟机92_1和92_2在虚拟机监视器91上实现。在每个虚拟机中,安装了os和应用软件。在某些情况下,不安装os,仅安装应用软件。在图1所示的示例中,os920_1和应用软件921_1在虚拟机92_1中执行,os920_2和应用软件921_2和921_3在虚拟机92_2中执行。

在包含这种虚拟化技术的数据处理装置中,可以存在由虚拟机(虚拟机92_1或虚拟机92_2)设置的存储器保护和由虚拟机监视器91设置的存储器保护。在图1中,存储器保护95_1和存储器保护95_2是由虚拟机设置的存储器保护。存储器保护95_1是用于防止虚拟机中的应用软件之间的干扰的存储器保护,并且存储器保护95_2是用于防止从应用软件到os的干扰的存储器保护。在图1中,存储器保护95_3和存储器保护95_4是由虚拟机监视器设置的存储器保护。存储器保护95_3是用于防止虚拟机之间的干扰的存储器保护,并且存储器保护95_4是用于防止从虚拟机到虚拟机监视器的干扰的存储器保护。

图2是示出当使用两个mpu实现两种类型的存储器保护时每个mpu的条目数的示意图。在图2中,第一mpu(图2中的mpu1)是用于通过虚拟机的存储器保护功能的mpu,第二mpu(图2中的mpu2)是用于通过虚拟机监视器的存储器保护功能的mpu。在图2所示的实施例中,四种类型的虚拟机,即vm0、vm1、vm2和vm3,按此顺序操作。

这里,特别地,在vm1的操作时,虚拟机的存储器保护仅通过虚拟机的存储器保护就可以充分实现,从而不需要虚拟机监视器的存储器保护。出于这个原因,当vm1操作时在mpu1中需要许多条目,但在mpu2中需要的条目数为0。例如,当在vm1上执行提供对虚拟机监视器而言高度可靠的存储器保护功能的操作系统时,会发生这种情况。另外,由于在vm2的操作期间没有通过虚拟机的存储器保护,因此只有虚拟机监视器必须执行存储器保护。因此,在vm2的操作期间,在mpu1中所需的条目数为零,但是在mpu2中所需的条目数很大。例如,当在vm2上执行不具有存储器保护功能的控制软件等时,会发生这种情况。

如图2所示,mpu1所需的条目数和mpu2所需的条目数不是恒定的。这里,假设当vm1操作时mpu1中所需的条目数是n1,并且当vm2操作时,mpu2中所需的条目数是n2。如图2所示,当mpu1的条目数被设计为n1时,当vm1以外的虚拟机操作时存在剩余条目。类似地,当mpu2的条目数被设计为n2时,当vm2之外的虚拟机操作时存在剩余条目。

另一方面,图3是示出当使用一个mpu实现两种类型的存储器保护时的条目数的示意图。如图3所示,通过使用以下条目可以实现有效的配置:所述条目在一定时间用于通过虚拟机的存储器保护功能或通过虚拟机监视器的存储器保护功能,并且还可以在其它时间用于其他存储器保护功能。在这种情况下,例如,要在mpu中提供的条目的数量可以是n3,其小于n1和n2的总和。在下面描述的实施例中,将描述用于实现这种动态条目设置的技术。

在详细描述实施例之前,将描述实施例的概要。图4是示出根据实施例的概要的数据处理装置1的配置的示例的框图。如图4所示,数据处理装置1包括存储器保护设置存储单元2、第一确定单元3和第二确定单元4。

存储器保护设置存储单元2是能够存储要为其设置存储器保护的多个地址部分的存储单元。这里,存储在存储器保护设置存储单元2中的地址部分可以是允许访问的地址部分或禁止访问的地址部分。例如,当默认禁止访问存储器时、即原则上禁止访问时,通过设置可以允许访问的地址部分来实现存储器保护。在这种情况下,存储在存储器保护设置存储单元2中的地址部分是其中允许访问的地址部分。类似地,当默认允许访问存储器时、即原则上允许访问时,通过设置其中禁止访问的地址部分来实现存储器保护。在这种情况下,存储在存储器保护设置存储单元2中的地址部分是其中禁止访问的地址部分。

存储器保护设置存储单元2包括例如多个存储区域(多个寄存器)并且在每个存储区域中存储地址部分。每个存储区域对应于上述条目。在存储器保护设置存储单元2中,每个条目可以被用于通过虚拟机监视器的存储器保护或者可以被用于通过虚拟机的存储器保护。也就是说,可以由虚拟机监视器为每个条目设置地址部分,或者可以由虚拟机设置地址部分。每个条目被用于哪种存储器保护是由稍后描述的分类信息定义的。存储器保护设置存储单元2不需要具有分类信息。

提供多个第一确定单元3。具体地,为存储在存储器保护设置存储单元2中的每个地址部分提供第一确定单元3。第一确定单元3基于由访问请求指定的目的地地址是否对应于从存储器保护设置存储单元2获取的地址部分,来初步确定是否允许访问请求。每个第一确定单元3将临时确定结果输出到第二确定单元。

第二确定单元4基于分类信息和第一确定单元3的临时确定结果来最终确定是否允许访问。这里,分类信息是用于确定存储在存储器保护设置存储单元2中的每个地址部分是用于由虚拟机监视器设置的存储器保护还是用于由虚拟机设置的存储器保护的信息。

如上所述,在数据处理装置1中,可以基于分类信息指定存储在存储器保护设置存储单元2中的地址部分用于两种类型的存储器保护中的哪一种。因此,第二确定单元4可以指定应该将第一确定单元3的临时确定结果识别为用于通过虚拟机监视器的存储器保护的临时确定结果还是用于通过虚拟机的存储器保护的临时确定结果。因此,在存储器保护设置存储单元2中,即使混合了用于虚拟机监视器的条目和用于虚拟机的条目,也可以适当地实现两种类型的存储器保护。可以通过分类信息动态地改变存储器保护设置存储单元2中的用于虚拟机监视器的条目数和用于虚拟机的条目数。也就是说,根据数据处理装置1,可以在存储器保护设置存储单元2中灵活地改变用于虚拟机监视器的条目和用于虚拟机的条目的比率。因此,根据数据处理装置1,可以实现由虚拟机监视器设置的存储器保护功能和由虚拟机设置的存储器保护功能,同时抑制电路规模的增加。

如上所述,存储器保护设置存储单元2不需要存储分类信息。也就是说,要由虚拟机和虚拟机监视器设置的条目的设置内容不依赖于是否执行了通过上述配置的存储器保护。因此,可以在采用上述配置时抑制对已有技术的影响。

存储器保护设置存储单元2还可以与地址部分相关联地存储属性信息,该属性信息是关于访问属性的信息。这里,属性信息可以是例如指示保护设置用于哪种访问类型(例如,读取访问、写入访问、执行访问等)的信息。此外,属性信息可以是例如指示保护设置用于哪种访问权限(例如,用户模式下的访问、特权模式下的访问等)的信息。此外,属性信息可以是指示保护设置用于哪个访问源的信息。在这种情况下,第一确定单元3基于由访问请求指定的访问目的地的地址区域是否对应于从存储器保护设置存储单元2获取的地址部分以及访问请求的属性是否与从存储器保护设置存储单元2获取的属性信息匹配,来临时确定是否允许访问请求。利用这种配置,可以实现更详细的存储器保护。

第一实施例

接下来,描述实施例的详细说明。图5是示出根据第一实施例的数据处理装置10的配置示例的框图。如图5所示,数据处理装置10包括处理电路11、存储器12、全局设置信息存储单元13、mpu条目单元14、临时访问确定单元15、最终访问确定单元16、条目寄存器访问权限确定单元17和设置寄存器访问权限确定单元18。

处理电路11是通过执行程序来执行各种处理的电路,并且具体地是诸如cpu的处理器。存储器12例如是易失性存储器或非易失性存储器,并且存储由处理电路11执行的程序、用于处理电路11的处理的数据等。由处理电路11执行的程序包括例如各种程序,例如虚拟机监视器和虚拟机。在本实施例中,基于mpu条目单元14中设置的信息和从全局设置信息存储单元13获得的条目边界信息,为存储器12实现通过虚拟机监视器的存储器保护设置或通过虚拟机的存储器保护设置。

全局设置信息存储单元13是用于存储条目边界信息的寄存器。全局设置信息存储单元13存储条目边界信息,该条目边界信息是与上述分类信息相对应的信息,因此也被称为分类信息存储单元。稍后将描述条目边界信息的细节。除了条目边界信息之外,全局设置信息存储单元13可以存储用于存储器保护的其他综合设置信息。

mpu条目单元14对应于图4的存储器保护设置存储单元2,并且包括从条目140_0到条目140_n的总共n+1个条目。也就是说,mpu条目单元14由例如n+1个寄存器组成。存储器保护功能的设置信息存储在每个条目中。因此,mpu条目单元14可以存储n+1种类型的存储器保护功能的设置信息。设置信息由虚拟机监视器或虚拟机设置在mpu条目单元14中。

由虚拟机监视器设置的存储器保护功能的设置信息需要被用于通过虚拟机监视器的存储器保护,并且由虚拟机器设置的存储器保护功能的设置信息需要被用于通过虚拟机的存储器保护。因此,需要指定存储在mpu条目单元14中的哪个设置信息是由虚拟机监视器设置的设置信息以及哪个设置信息是由虚拟机设置的设置信息。在本实施例中,条目边界信息被用于所述指定。条目边界信息对应于上述分类信息。条目边界信息是以下的信息,其定义条目140_0至140_n中的哪个条目是用于虚拟机的条目和哪个条目是用于虚拟机监视器的条目。在以下描述中,用于虚拟机的条目被称为访客管理条目,用于虚拟机监视器的条目被称为主机管理条目。此外,条目140_0、条目140_1......和条目140_n在被引用时被称为条目140而没有任何特别的区分。

在图5中,为了便于理解,通过用不同图案对访客管理条目和主机管理条目加阴影线来区分mpu条目单元14。然而,对于mpu条目单元14不必区分每个条目140是访客管理条目还是主机管理条目。也就是说,不必在mpu条目单元14中设置每个条目140是访客管理条目还是主机管理条目。这是因为它可以通过条目边界信息来区分。

图6是示出存储在mpu条目单元14的每个条目140中的信息的示例的示意图。如图6所示,在该实施例中,在每个条目140中存储定义地址部分的下限地址和上限地址。此外,每个条目140与下限地址和上限地址相关联地存储属性信息,该属性信息是关于访问属性的信息。在本实施例中,假设默认禁止访问存储器12。因此,每个条目140存储定义可以允许访问的地址部分的下限地址和上限地址。此外,在本实施例中,作为属性信息,指示哪个访问源设置针对访问的保护的信息被存储在每个条目140中。具体地,每个条目140存储用于标识哪个程序(虚拟机)设置针对访问的保护的标识符信息。在以下说明中,该标识符信息被称为mpid。所存储的属性信息可以是其他信息,诸如访问类型和模式类型(例如,用户模式、特权模式等)。另外,可以存储多条属性信息。

临时访问确定单元15参考每个条目140的设置信息。临时访问确定单元15包括存储器保护权限确定单元150_0、存储器保护权限确定单元150_1......以及存储器保护权限确定单元150_n。在以下描述中,存储器保护权限确定单元150_0、存储器保护权限确定单元150_1......和存储器保护权限确定单元150_n在被引用时被称为存储器保护权限确定单元150而没有进行特别的区分。

存储器保护权限确定单元150对应于图4中的第一确定单元3,并且是基于存储在mpu条目单元14中的设置信息临时确定是否可以访问的电路。对应于mpu条目单元14的每个条目140提供存储器保护权限确定单元150。

当存在来自处理电路11的访问请求时,每个存储器保护权限确定单元150基于从mpu条目单元14获取的设置信息执行临时确定,并将临时确定结果输出到最终访问确定单元16。也就是说,当存在来自处理电路11的访问请求时,存储器保护权限确定单元150_0基于从条目140_0获取的设置信息来执行临时确定。类似地,存储器保护权限确定单元150_i基于从条目140_i获取的设置信息来执行临时确定。其中i是大于或等于0且小于或等于n的整数。因此,当存在来自处理电路11的访问请求时,从每个存储器保护权限确定单元150输出的n+1个临时确定结果被输出到最终访问确定单元16。存储器保护权限确定单元150_0的临时确定结果被表示为rlt0。类似地,存储器保护权限确定单元150_i的临时确定结果被表示为rlti。其中i是大于或等于0且小于或等于n的整数。

当访问存储器12时,处理电路11输出访问地址、vm标志和属性信息。如上所述,在本实施例中,属性信息是mpid。vm标志是指示访问是由虚拟机监视器还是由虚拟机进行的信息,例如,当值为0时,它表示访问是由虚拟机监视器进行的,当值为1时,它表示访问是由虚拟机进行的。也就是说,vm标志还可以被称为访问源信息,该访问源信息指示访问请求所请求的访问是否是通过虚拟机监视器的访问。vm标志由最终访问确定单元16(稍后将描述)使用,以根据访问源是否是虚拟机监视器来控制访问确定。在本实施例中,在最终访问确定单元16中执行使用vm标志的控制,但是当没有在最终访问确定单元16中使用vm标志的情况下执行控制时,处理电路11可以不输出vm标志或者最终访问确定单元16可以不接收vm标志。响应于来自处理电路11的访问请求从处理电路11输出的访问信息可以包括其他信息,例如访问类型和访问大小。

当处理器11请求访问时,访问地址和属性信息(mpid)被输入到存储器保护权限确定单元150。每个存储器保护权限确定单元150将从mpu条目单元14获取的信息(下限地址、上限地址和属性信息)与从处理电路11输入的信息(访问地址和属性信息)进行比较,从而临时确定是否允许访问。

图7是示出存储器保护权限确定单元150的配置示例的框图。如图7所示,每个存储器保护权限确定单元150包括地址确定单元151、属性确定单元152和and电路153。

来自mpu条目单元14的下限地址和上限地址以及来自处理电路11的访问地址被输入到地址确定单元151。访问地址例如是由地址和访问大小确定的地址区域。地址确定单元151是确定访问地址是否匹配基于下限地址和上限地址定义的条件的电路,例如,下限地址≤访问地址≤上限地址。当输入的访问地址满足条件时地址确定单元151输出1作为确定结果信号“ahit”,并且当输入的访问地址不满足条件时地址确定单元151输出0作为确定结果信号“ahit”。确定结果信号“ahit”被输入到and电路153。

来自mpu条目单元14的属性信息和来自处理电路11的属性信息被输入到属性确定单元152。属性确定单元152是确定从处理电路11输入的属性信息是否与基于从mpu条目单元14输入的属性信息定义的条件(例如,“从处理电路11输入的属性信息”=“从mpu条目单元14输入的属性信息”)匹配的电路。在本实施例中,属性确定单元152确定从处理器11输入的mpid是否满足基于从mpu条目单元14输入的mpid的条件,但是确定目标不限于mpid。也就是说,可以执行诸如访问类型的其他属性信息的确定。属性确定单元152输出确定结果信号“mhit”。当从处理器11输入的属性信息满足条件时,属性确定单元152输出1作为确定结果信号“mhit”,并且当不满足条件时,输出0作为确定结果信号“mhit”。确定结果信号“mhit”被输入到and电路153。在mpid确定中,可以确定来自处理器11的mpid是否与存储在mpu条目单元14中的多个mpid中的任何一个mpid匹配。

确定结果信号“ahit”和确定结果信号“mhit”被输入到and电路153。and电路153计算这些输入信号的and并输出确定结果信号“ehit”。确定结果信号“ehit”是指示来自处理器11的访问请求是否满足由mpu条目单元14中的设置信息定义的条件的信号。当来自处理器11的访问请求满足由mpu条目单元14中的设置信息定义的条件时,即,当访问请求满足地址确定单元151中的条件并且访问请求满足属性确定单元152中的条件时,确定结果信号“ehit”变为1。否则,确定结果信号“ehit”变为0。确定结果信号“ehit”被输出到最终访问确定单元16作为临时确定结果信号rlti。

在本实施例中,存储器保护权限确定单元150确定地址和属性信息,但是可以仅确定地址。在这种情况下,属性信息可以不被存储在mpu条目单元14中。

接下来,将描述最终访问确定单元16。从每个存储器保护权限确定单元150输出的n+1个临时确定结果被输入到最终访问确定单元16。vm标志从处理电路11输入到最终访问确定单元16。条目边界信息从全局设置信息存储单元13输入到最终访问确定单元16。

在本实施例中,条目边界信息指示mpu条目单元14的条目140中的哪些条目是访客管理条目。也就是说,条目边界信息指示要切换到主机管理条目的mpu条目单元14的一系列条目140的条目数,即,主机管理条目的条目数的最小值。例如,当条目边界信息的值是0时,这意味着mpu条目单元14的所有条目140都是主机管理条目。当条目边界信息是n+1时,这意味着mpu条目单元14的所有条目140都是访客管理条目。

图8是示出最终访问确定单元16的配置示例的框图。如图8所示,最终访问确定单元16包括分类单元160、or电路164a、164b和165以及and电路166。

分类单元160是将从每个存储器保护权限确定单元150输出的n+1个临时确定结果分类为对应于访客管理条目的临时确定结果和对应于主机管理条目的临时确定结果的电路。换句话说,分类单元160将从每个存储器保护权限确定单元150输出的临时确定结果分类为根据由虚拟机设置的存储器保护条件确定的临时确定结果和根据由虚拟机监视器设置的存储器保护条件确定的临时确定结果。

具体地,分类单元160包括解码器161和n+1个分离电路162_0...162_n。

解码器161将从全局设置信息存储单元13输入的条目边界信息转换为n+1条标签信息vmentry0至vmentryn。这里,vmentryi是与存储器保护权限确定单元150_i的临时确定结果rlti相对应的标签信息。其中i是大于或等于0且小于或等于n的整数。标签信息是指定从每个存储器保护权限确定单元150输出的每个临时确定结果是对应于访客管理条目的临时确定结果还是对应于主机管理条目的临时确定结果的信息。解码器161基于条目边界信息生成以下二进制标签信息。当条目边界信息的值是i时,解码器161将从vmentry0起的vmentry(i-1)的值设置为1,并将vmentryi至vmentryn的值设置为0。因此,当条目边界信息的值为0时,从vmentry0到vmentryn的所有值都是0,并且当条目边界信息的值是n+1时,从vmentry0到vmentryn的所有值都是1。

分离电路162_i连接到存储器保护权限确定单元150_i,并接收临时确定结果rlti。分离电路162_i包括两个and电路163a_i和163b_i。从存储器保护权限确定单元150_i输出的临时确定结果rlti被输入到and电路163a_i和163b_i。and电路163a_i和163b_i也接收从解码器161输出的标签信息vmentryi。注意,通过反转从解码器161输出的标签信息vmentryi而获得的信号被输入到and电路163b-i。and电路163a-i对临时确定结果rlti和标签信息vmentryi执行and运算,并输出运算结果。and电路163b-i对临时确定结果rlti和标签信息vmentryi的反相信号执行and运算,并输出运算结果。and电路163a_i的输出被输入到or电路164a。and电路163b_i的输出被输入到or电路164b。因此,在or电路164a中聚合对应于访客管理条目并且具有值1的所有临时确定结果。类似地,在or电路164b中聚合对应于主机管理条目并且具有值1的所有临时确定结果。

or电路164a确定来自处理电路11的访问请求是否满足由任何访客管理条目的设置信息定义的条件。or电路164a输出确定结果信号“ghit”。当来自处理电路11的访问请求满足由任何访客管理条目的设置信息所定义的条件时,or电路164a输出1作为确定结果信号“ghit”,并且当来访问请求不满足由任何访客管理条目的设置信息所定义的条件时,输出0作为确定结果信号“ghit”。确定结果信号“ghit”被输入到or电路165。

or电路164b确定来自处理电路11的访问请求是否满足由任何主机管理条目的设置信息定义的条件。or电路164b输出确定结果信号“hhit”。当来自处理电路11的访问请求满足任何主机管理条目的设置信息所定义的条件时,or电路164b输出1作为确定结果信号“hhit”,并且当访问请求不满足主机管理条目的设置信息所定义的任何条件时,输出0作为确定结果信号“hhit”。确定结果信号“hhit”被输入到and电路166。

or电路165确定是否采用与访客管理条目相对应的临时确定结果。or电路165输出信号“grlt”。虚拟机在虚拟机监视器的管理下运行。因此,当访问源是虚拟机监视器时,优选的是,不根据由虚拟机设置的存储器保护功能来限制访问。因此,在本实施例中,当访问源是虚拟机监视器时,对应于访客管理条目的临时确定结果被强制转换为1。vm标志的反相信号和确定结果信号“ghit”被输入到or门165。结果,当访问源是虚拟机监视器时,即,当vm标志的值为0时,or电路165输出1作为信号“grlt”而不管确定结果信号“ghit”的值。

and电路166最终确定是否允许访问存储器12。and电路166接收从or电路165输出的信号“grlt”。此外,从or电路164b输出的确定结果信号“hhit”作为信号“hrlt”输入到and电路166。从以上说明可以明显看出,信号“grlt”是表示基于访客管理条目的设置信息的访问允许的确定结果的信号,并且通过信号值1表示访问允许,通过信号值0表示访问禁止。类似地,信号“hrlt”是表示基于主机管理条目的设置信息的访问允许或非访问允许的确定结果的信号,并且通过信号值1表示访问允许,通过信号值0表示访问禁止。

and电路166对输入的信号“grlt”和信号“hrlt”执行and操作,并输出操作结果作为存储器12是否可访问的最终确定结果。当操作结果为1时,允许访问存储器12。当操作结果为0时,禁止访问存储器12。

如上所述,在最终访问确定单元16中,如果vm标志的值是0,则不使用基于访客管理条目的设置信息的临时确定结果,并且如果通过基于主机管理条目的设置信息的确定而允许访问(即,当获得信号“hrlt”=1时),则最终确定访问是允许的。在vm标志指示1时,当基于访客管理条目的设置信息允许访问时(即,当信号“grlt”为1时),并且还基于主机管理条目的设置信息允许访问时(即,当信号“hrlt”为1),最终确定允许访问。当执行读取访问时,可以推测性地将访问请求发出到存储器12,并且在存储器保护确定之后可以不使用读取访问的结果。

接下来,将描述条目寄存器访问权限确定单元17和设置寄存器访问权限确定单元18。优选地,控制对mpu条目单元14的写入,使得mpu条目单元14的主机管理条目的设置信息在访客模式中不被重写。另外,优选地,控制对全局设置信息存储单元13的写入,使得在访客模式中不重写用于存储器保护的综合信息,例如条目边界信息。也就是说,需要将虚拟机的自由写入限制于mpu条目单元14和全局设置信息存储单元13。条目寄存器访问权限确定单元17和设置寄存器访问权限确定单元18确定写入的权限,并且在没有权限的情况下限制自由写入。访客模式是当操作虚拟机时数据处理装置10的操作模式。另一方面,当操作虚拟机监视器时数据处理装置10的操作模式被称为主机模式。数据处理装置10通过以分时方式在主机模式和访客模式之间切换来实现虚拟机监控器和虚拟机的操作。

条目寄存器访问权限确定单元17是确定写入权限并限制对mpu条目单元14的自由写入的电路。条目寄存器访问权限确定单元17(也称为存储器保护设置写入控制单元)基于在存储器保护设置存储单元(mpu条目单元14)的存储区域中指定写入目标的地址、分类信息(条目边界信息)和指示是否由虚拟机监视器进行写入的写入源信息(vm标志)来控制对存储器保护设置存储单元的存储区域的写入。根据这样的配置,可以实现对存储器保护设置存储单元(mpu条目单元14)的安全写入。在下文中,将描述条目寄存器访问权限确定单元17的具体配置。

图9是示出条目寄存器访问权限确定单元17的配置示例的框图。条目寄存器访问权限确定单元17从处理电路11接收写入目的地地址和vm标志。vm标志是指示写入是由虚拟机监视器进行还是由虚拟机进行的信息,并且当值为1时表示虚拟机的写入访问,当值为0时表示虚拟机监视器的写入访问。条目寄存器访问权限确定单元17从全局设置信息存储单元13接收条目边界信息。

如图9所示,条目寄存器访问权限确定单元17包括解码器170、地址解码器171和n+1个确定电路172_0、......、172_n。在以下描述中,当提到确定电路172_0、......、172_n时它们被称为确定电路172而没有进行任何特别区分。

解码器170是与最终访问确定单元16中的解码器161的电路类似的电路,并且将从全局设置信息存储单元13输入的条目边界信息转换为n+1条标签信息vmentry0至vmentryn。所述n+1条标签信息与n+1个确定电路172的输入一一对应。

地址解码器171是用于判断从处理电路11输入的写入目的地地址访问哪个条目140的电路。例如,地址解码器171将mpu条目单元14中的每个条目140的地址与从处理电路11输入的地址进行比较,以确定写入请求所请求的访问将要访问哪个条目140。存在与各个条目140对应的n+1个输出信号线。地址解码器171针对对应于作为写入目的地的条目140的输出信号线输出1,并且针对对应于不是写入目的地的条目140的输出信号线输出0。地址解码器171的n+1个输出信号线一对一地对应于n+1个确定电路172的输入。假设从用于第i个条目140的输出信号线输入到确定电路172_i的信号是wrentryi。其中i是大于或等于0且小于或等于n的整数。

n+1个确定电路172与mpu条目单元14的n+1个条目140相对应地提供。确定电路172_i对应于mpu条目单元14的第i个条目140,并且包括or电路(or电路)173_i和and电路(and电路)174_i。

vm标志和标签信息vmentryi被输入到or电路173_i。然而,vm标志的反相信号被输入到or电路173_i。or电路173_i计算vm标志的反相信号和标签信息vmentryi的逻辑or,并输出vm标志的反相信号和标签信息vmentryi的逻辑or。

and电路174_i确定是否允许写入第i个条目140。and电路174_i接收or电路173_i的输出和从地址解码器171输出的信号wrentryi。and电路174_i计算两个输入信号的and,并输出计算结果作为是否允许写入第i个条目140的确定结果。当操作结果为1时,允许写入第i个条目140。当操作结果为0时,禁止写入第i个条目140。

根据条目寄存器访问权限确定单元17,当发生对第i个条目140的写入访问并且vm标志的值为0时,即,访问源是虚拟机监视器时,对此条目140的写入访问被允许。当发生对第i个条目140的写入访问并且vm标志的值是1且标签信息vmentryi指示该条目140是访客管理条目时,允许对该条目140的写入访问。另一方面,当发生对第i个条目140的写入访问并且vm标志的值是1且标签信息vmentryi指示该条目140是主机管理条目时,不允许对该条目140的写入访问。也就是说,禁止写入。也就是说,当访问源是虚拟机时,允许仅写入mpu条目单元14的条目140中的访客管理条目,而禁止写入主机管理条目。

设置寄存器访问权限确定单元18是确定写入权限并限制对全局设置信息存储单元13的自由写入的电路。设置寄存器访问权限确定单元18也被称为分类信息写入控制单元,并且基于指定写入目标在分类信息存储单元的存储区域中的地址以及指示是否由虚拟机监视器执行写入的写入源信息(vm标志)来控制对分类信息存储单元(全局设置信息存储单元13)的存储区域的写入。根据这样的配置,可以实现对分类信息存储单元13的安全写入。在下文中,将描述设置寄存器访问权限确定单元18的具体配置。

图10是示出设置寄存器访问权限确定单元18的配置示例的框图。设置寄存器访问权限确定单元18从处理电路11接收写入目的地地址和vm标志。该vm标志也是指示写入是由虚拟机监视器还是由虚拟机写入的信息,并且当值为1时,它表示通过虚拟机的写入访问,当值为0时,表示通过虚拟机监视器的写入访问。

如图10所示,设置寄存器访问权限确定单元18包括地址解码器180和逻辑and电路181。

地址解码器180是用于确定从处理电路11输入的写入目的地地址是否是对全局设置信息存储单元13的访问的电路。例如,地址解码器180将全局设置信息存储单元13的每个地址与从处理电路11输入的地址进行比较,以确定写入请求所请求的访问是否是对全局设置信息存储单元13的访问。当从处理电路11输入的写入目的地的地址是对全局设置信息存储单元13的访问时,地址解码器180输出1,或者如果不是,则输出0。

and电路181确定是否允许写入全局设置信息存储单元13。地址解码器180的输出和vm标志被输入到and电路181。and电路181计算两个输入信号的and,并输出计算结果作为是否允许写入全局设置信息存储单元13的确定结果。当计算结果为1时,允许写入全局设置信息存储单元13。当计算结果为0时,禁止写入全局设置信息存储单元13。

根据设置寄存器访问权限确定单元18,当发生对全局设置信息存储单元13的写入访问并且vm标志的值为0时,即访问源是虚拟机监视器时,允许对全局设置信息存储单元13的写入访问。当发生对全局设置信息存储单元13的写入访问并且vm标志的值是1时,即访问源是虚拟机时,不允许对全局设置信息存储单元13的写入访问。也就是说,禁止写入。

上面已经描述了第一实施例。如上所述,在根据第一实施例的数据处理装置10中,可以基于条目边界信息指定mpu条目单元14的每个条目140是主机管理条目还是访客管理条目。因此,最终访问确定单元16可以指定临时访问确定单元15(存储器保护权限确定单元150)的每个临时确定结果是基于主机管理条目的设置信息还是访客管理条目的设置信息。因此,即使在mpu条目单元14中混合了访客管理条目和主机管理条目,也可以适当地实现两种类型的存储器保护。

也就是说,根据第一实施例的数据处理装置10,在mpu条目单元14中提供的条目数量并不需要是主机管理条目所需的最大条目数目和访客管理条目所需的最大条目数目的总和。根据数据处理装置10,可以通过条目边界信息灵活地改变主机管理条目和访客管理条目的比率。在数据处理装置10中,当在主机模式中切换虚拟机的上下文时,可以通过切换每个条目140的设置信息并改变条目边界信息,为每个虚拟机构建最佳存储器保护状态。例如,如图3所示,可以实现其中四种类型的虚拟机(图3中的vm0、vm1、vm2和vm3)顺序操作的系统而不需要过多的硬件资源。如上所述,根据数据处理装置10,可以实现由虚拟机监视器设置的存储器保护功能和由虚拟机设置的存储器保护功能,同时抑制电路规模的增加。

mpu条目单元14不需要存储条目边界信息。也就是说,条目140的设置内容不依赖于是否执行根据本实施例的配置的存储器保护。因此,在采用本实施例的配置时,可以抑制对现有技术的影响。

鉴于在mpu条目单元14的每个条目140中设置了定义地址部分的下限地址和上限地址的事实,可以说本实施例中的最终访问确定单元16最终如下地确定是否允许访问。也就是说,最终访问确定单元16使用第一确定结果和第二确定结果执行预定的逻辑运算,以最终确定是否允许访问。这里,第一确定结果是根据临时访问确定单元15(存储器保护权限确定单元150)的临时确定结果计算的确定结果(确定结果信号“hhit”),用于通过分类信息(条目边界信息)被分类为由虚拟机监视器设置的存储器保护的地址部分。第二确定结果是根据临时访问确定单元15(存储器保护权限确定单元150)的临时确定结果计算的确定结果(确定结果信号“ghit”),用于通过分类信息(条目边界信息)被分类为由虚拟机设置的存储器保护的地址部分。

在本实施例中,mpu条目单元14不仅存储定义地址部分的下限地址和上限地址,还存储与地址部分相关联的属性信息,该属性信息是关于访问属性的信息。然后,临时访问确定单元15(存储器保护权限确定单元150)基于由访问请求指定的访问目的地的地址区域是否对应于在条目140中设置的地址部分以及访问请求的属性是否与条目140中设置的属性信息匹配,来临时确定是否允许访问请求。因此,与仅通过设置地址部分来实现存储器保护的情况相比,可以实现更详细的存储器保护。

在本实施例中,最终访问确定单元16基于分类信息(条目边界信息)、临时访问确定单元15(存储器保护权限确定单元150)的临时确定结果和指示访问请求所请求的访问是否是通过虚拟机监视器的访问的访问源信息(vm标志)来最终确定是否允许访问。因此,取决于访问源是否是虚拟机监视器,可以控制是否采用与访客管理条目相对应的临时确定结果。因此,当访问源是虚拟机监视器时,可以防止根据虚拟机设置的存储器保护功能的访问限制。

第二实施例

图11是示出根据第二实施例的数据处理装置20的配置示例的框图。如图11所示,根据第二实施例的数据处理装置20与根据第一实施例的数据处理装置10的不同之处在于,从最终访问确定单元21输出关于确定的信息。为了输出关于确定的信息,在第二实施例中,用最终访问确定单元21替换最终访问确定单元16。除了用最终访问确定单元21替换最终访问确定单元16之外,数据处理装置20具有与数据处理装置10相同的配置。在以下描述中,省略重复描述,并且将具体描述与第一实施例不同的点。

在数据处理装置20中,最终访问确定单元21将异常分类信息、主机违规信息和访客违规信息输出到处理电路11。这里,异常分类信息是指示在最终访问确定单元21中最终不允许处理电路11对存储器12的访问请求的信息。主机违规信息是指示处理电路11对存储器12的访问请求不满足由主机管理条目的设置信息定义的任何条件的信息。访客违规信息是指示处理电路11对存储器12的访问请求不满足由访客管理条目的设置信息定义的任何条件的信息。

图12是示出根据第二实施例的最终访问确定单元21的配置示例的框图。如图12所示,最终访问确定单元21与第一实施例的最终访问确定单元16的不同之处在于,增加了用于输出异常分类信息的信号线210、用于输出主机违规信息的信号线211和用于输出访客违规信息的信号线212。

信号线210连接到and电路166的输出。and电路166的输出信号由连接到信号线210的反相电路213反相,并作为异常分类信息输出到处理电路11。当异常确定信息的值是1时,异常确定信息指示在最终访问确定单元21中最终不允许访问请求。

信号线211连接到or电路164b的输出。or电路164b的输出信号由连接到信号线211的反相电路214反相,并作为主机违规信息被输出到处理电路11。当主机违规信息的值是1时,主机违规信息指示访问请求不满足由主机管理条目的设置信息定义的任何条件。

信号线212连接到or电路164a的输出。or电路164a的输出信号由连接到信号线212的反相电路215反相,并作为访客违规信息被输出到处理电路11。当访客违规信息的值是1时,访客违规信息指示访问请求不满足访客管理条目的设置信息所定义的任何条件。

在接收到指示不允许访问请求的异常确定信息时,处理电路11执行例如异常的发生、违规信息的保留或向安全机制通知违规。图13是示出由处理电路11接收的主机违规信息和访客违规信息与由处理电路11保持的违规信息之间的对应关系的示例的表。如图13所示,例如,当主机违规信息的值为0并且访客违规信息的值为1时,处理电路11记录访问请求不满足由访客管理条目的设置信息定义的任何条件。也就是说,在这种情况下,记录访客违规信息。当主机违规信息的值是1并且访客违规信息的值是0时,处理电路11记录访问请求不满足由主机管理条目的设置信息定义的任何条件。也就是说,在这种情况下,记录主机违规信息。当主机违规信息和访客违规信息的值都是1时,处理电路11优先记录访问请求不满足由访客管理条目的设置信息定义的任何条件。也就是说,在这种情况下,优先记录访客违规信息。当主机违规信息和访客违规信息的值都是0时,处理电路11不保持违规信息。在图13所示的示例中,优先记录访客违规信息,但是可以针对访客违规信息和主机违规信息二者记录异常信息,或者可以优先记录主机违规信息。数据处理装置20可以包括用于设置或改变主机违规信息和访客违规信息与由处理电路11保持的违规信息之间的对应关系的控制机制。

图14是示出由处理电路11接收的主机违规信息和访客违规信息与产生异常的机器之间的对应关系的示例的表。如图14所示,例如,当主机违规信息的值是0并且访客违规信息的值是1时,处理电路11在虚拟机中生成异常。当主机违规信息的值是1并且访客违规信息的值是0时,处理电路11在虚拟机监视器中生成异常。当主机违规信息和访客违规信息的值都是1时,处理电路11优先在虚拟机中生成异常。当主机违规信息和访客违规信息的值都是0时,处理电路11不产生异常。在图14所示的示例中,示出了以下示例:在虚拟机中优先生成异常,但是可以在虚拟机和虚拟机监视器中都生成异常。另外,可以在虚拟机监视器中优先生成异常。也就是说,不管哪个管理条目条件不被满足,都可以在虚拟机监视器中生成异常。数据处理装置20可以包括用于设置或改变由处理电路11接收的主机违规信息和访客违规信息与产生异常的机器之间的对应关系的控制机制。

如上所述,在根据第二实施例的数据处理装置20中,从最终访问确定单元21向处理电路11通知关于确定的信息。因此,当不允许访问时,处理电路11可以执行各种控制,例如异常的发生和异常的记录。因此,当不允许访问时,可以适当地控制系统。

另外,处理电路11可以基于从最终访问确定单元21通知的信息来控制用于处理异常或异常处理的优先级顺序的机器。例如,如上所述,当主机违规信息和访客违规信息的值都是1时,可以记录根据访客管理条目的设置的访问错误,并且异常发生机器可以是虚拟机。在这种情况下,可以配置一个系统,其中由虚拟机中的低可靠性任务(例如,在虚拟机上运行的应用软件)引起的异常首先由虚拟机中的高可靠性任务处理(例如,在虚拟机上运行的os)。

应当注意,可以准备用于将异常发生机器固定到虚拟机监视器的开关,并且可以仅由虚拟机监视器执行异常处理。在以上描述中,最终访问确定单元21输出三条信息,即异常确定信息、主机违规信息和访客违规信息,但是也可以输出一条或两条信息。也就是说,最终访问确定单元21可以向处理电路11通知第一确定结果(or电路164a的输出)、第二确定结果(or电路164b的输出)或最终确定结果。

第三实施例

当虚拟机监视器切换要操作的虚拟机时,或者当虚拟机切换要执行的应用软件时,需要切换mpu条目单元14的每个条目140的设置信息。通过将设置信息保存到存储器12并从存储器12恢复设置信息来执行每个条目140的设置信息的切换。该实施例与上述实施例的不同之处在于,在处理电路中提供了用于保存和恢复设置信息的定序器。

图15是示出根据第三实施例的数据处理装置30的配置示例的框图。如图15所示,根据第三实施例的数据处理装置30与根据第一实施例的数据处理装置10的不同之处在于,处理电路11被包括保存/恢复定序器190的处理电路19代替。在以下描述中,省略重复描述,并且将具体描述与第一实施例不同的点。

保存/恢复定序器190是将存储在mpu条目单元14的每个条目140中的全部或部分设置信息保存到存储器12并将全部或部分设置信息从存储器12恢复到每个条目140的控制电路。保存/恢复定序器190将存储在由虚拟机监视器或虚拟机指定的地址范围中的设置信息在mpu条目单元14和存储器12之间移动。

在通过虚拟机监视器的指令执行的设置信息的切换中,例如,如图16所示,包括主机管理条目和访客管理条目的条目140的设置信息被保存在存储器12中,并且新的设置信息从存储器12返回到包括主机管理条目和访客管理条目的条目140。因此,当通过虚拟机监视器的指令切换设置信息时,允许针对所有条目140将设置信息从存储器12返回到mpu条目单元14。

另一方面,在通过虚拟机的指令执行的设置信息的切换中,需要仅允许访客管理条目的切换并限制主机管理条目的切换。也就是说,尽管如图17所示仅允许返回到访客管理条目,但是如图18所述对主机管理条目的返回需要被禁止。因此,保存/恢复定序器190具有与上述条目寄存器访问权限确定单元17相同的控制机制,并且基于指定在mpu条目单元14的存储区域中写入目标的地址、条目边界信息和vm标志来控制设置信息从存储器12到条目140的返回。具体地,当基于条目边界信息和指定写入目标的地址确定返回目的地(写入目标)的条目140包括主机管理条目并且vm标志的值为1时,保存/恢复定序器190禁止将设置信息返回到条目140。

如上所述,数据处理装置30包括保存/恢复定序器190,用于将存储在mpu条目单元14中的信息保存到存储器12并将保存在存储器12中的信息恢复到mpu条目单元14。如上所述,在本实施例中,由于存在用于切换mpu条目单元14的专用硬件,所以期望切换处理以比通过软件处理执行切换的情况更高的速度完成。另外,由于在切换条目140的内容时执行与条目寄存器访问权限确定单元17的控制相同的控制,因此可以禁止虚拟机不正确地写入主机管理条目。

第四实施例

在第一实施例中,默认禁止访问存储器12。因此,在第一实施例中,条目140存储下限地址和上限地址,其限定了可以允许访问的地址部分。第四实施例示出了默认允许访问存储器12的实施例。即,将描述以下的配置示例:定义其中禁止访问的地址部分的下限地址和上限地址作为设置信息被存储在每个条目140中。

除了用最终访问确定单元31替换最终访问确定单元16之外,根据第四实施例的数据处理装置与根据第一实施例的数据处理装置10相同。在以下描述中,省略重复描述,并且将具体描述与第一实施例不同的点。

图19是示出根据第四实施例的最终访问确定单元31的配置示例的框图。如图19中所示,最终访问确定部分31与最终访问确定部分16的不同之处在于,它具有反相电路(not电路)310和311。

反相电路310设置在or电路164a和or电路165之间,并且使从or电路164a输出的确定结果信号“ghit”反相并将反相信号输入到or电路165。反相电路311设置在or电路164b和and电路166之间,并且使从or电路164b输出的确定结果信号“hhit”反相并将反相信号输入到and电路166。

当来自处理器11的访问请求满足由访客管理条目之一的设置信息定义的条件时,确定结果信号“ghit”是具有值为1的信号。当来自处理器11的访问请求满足由任何主机管理条目的设置信息定义的条件时,确定结果信号“hhit”是具有值为1的信号。在本实施例中,访客管理条目和主机管理条目存储下限地址和上限地址作为设置信息,下限地址和上限地址定义了禁止访问的地址部分。因此,当确定结果信号“ghit”的值是1时,意味着满足禁止访问的条件。因此,在本实施例中,如上所述,反相电路310使确定结果信号“ghit”反相,从而输入到or电路165的信号变为与输入到根据第一实施例的最终访问确定单元16中的or电路165的信号等同的信号。类似地,通过使反相电路311中的确定结果信号“hhit”反相,输入到and电路166的信号变为与输入到根据第一实施例的最终访问确定单元16中的and电路166的信号等同的信号。

如上所述,同样在本实施例中,输入到or电路165的信号和输入到and电路166的信号与第一实施例中的相同。因此,or电路165和and电路166可以实现与第一实施例中相同的访问控制。

如上所述,由存储在mpu条目单元14中的设置信息表示的地址部分可以指示可以允许访问的地址部分,或者可以指示禁止访问的地址部分。如在第一实施例中那样,当设置可以允许访问的地址部分时,在默认禁止访问存储器12的系统中,可以实现由虚拟机监视器设置的存储器保护功能和由虚拟机设置的存储器保护功能,同时抑制电路规模的增加。另外,与第四实施例中一样,当设置禁止访问的地址部分时,在默认允许访问存储器12的系统中,可以实现由虚拟机监视器设置的存储器保护功能和由虚拟机设置的存储器保护功能,同时抑制电路规模的增加。

在上述所有实施例中,附图中描述的作为用于执行各种处理的功能块的每个元件可以由cpu、存储器和其他硬件电路配置,并且通过以软件加载到存储器中的程序来实现。因此,本领域技术人员可以理解,这些功能块可以通过单独的硬件、单独的软件或其组合以各种形式实现,并且本发明不限于它们中的任何一种。

还可以使用各种类型的非暂时性计算机可读介质来存储程序并将其提供给计算机。非暂时性计算机可读介质包括各种类型的有形存储介质。非暂时性计算机可读介质的示例包括磁记录介质(例如,软盘、磁带、硬盘驱动器)、磁光记录介质(例如,磁光盘)、cd-rom(只读存储器、cd-r、cd-r/w、固态存储器(例如,掩模rom、prom(可编程rom)、eprom(可擦除prom、闪存rom、ram(随机存取存储器))。程序还可以通过各种类型的暂时性计算机可读介质提供给计算机。暂时性计算机可读介质的示例包括电信号、光信号和电磁波。暂时性计算机可读介质可以经由有线或无线通信路径,例如电线和光纤,来将程序提供给计算机。

尽管已经基于实施例具体描述了由发明人做出的发明,但是本发明不限于已经描述的实施例,并且不用说,可以在不脱离其主旨的情况下进行各种修改。例如,可以组合第二实施例和第三实施例。第二实施例的特征和第三实施例的特征中的任一者或二者都可以被应用于第四实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1