技术领域
[0003] 本发明涉及存储器保护电路和存储器保护方法,并且例如涉及适合于经由公共存储器在多个虚拟机之间快速传输数据的存储器保护电路和存储器保护方法。
相关背景技术
[0004] 为了防止从算术处理电路(例如,CPU(中央处理单元))到存储器的无效访问,在CPU和存储器之间提供控制从CPU到存储器的访问的存储器保护电路。
[0005] 通过使用使单个物理资源假装多个资源的虚拟化技术,可以使多个虚拟机在管理程序的控制下在单个CPU上操作。但是,需要一种控制从虚拟机到存储器的访问的机制,以允许虚拟机共享单个存储器。
[0006] 在日本未审查专利申请公开No.2013-232151中公开了相关技术。日本未审查专利申请公开No.2013-232151中公开的存储器保护电路仅授权高度可靠的管理程序访问寄存器,该寄存器在其中存储关于具有访问存储器的权限的虚拟机的信息,并且不授权低可靠性的虚拟机访问该寄存器。以这种方式,日本未审查专利申请公开No.2013-232151中公开的存储器保护电路控制虚拟机对公共存储器的访问。
具体实施方式
[0020] 为了清楚说明,在下面的描述和附图中适当地省略和简化。作为执行各种处理的功能块的在附图中示出的每个组件,如果由硬件实现可以由CPU(中央处理单元)、存储器或其他电路配置,而如果由软件实现可以通过加载到存储器的程序来实现。因此,本领域技术人员将理解,这些功能块可以仅通过硬件、仅通过软件或以各种方式的硬件和软件的组合来实现,并且实现不限于它们中的任何一种。在整个附图中,相同的组件用相同的附图标记标示,并且根据需要省略冗余的描述。
[0021] 上述程序可以存储在各种类型的非暂时性计算机可读介质中以提供给计算机。非暂时性计算机可读介质包括各种类型的有形记录介质。非暂时性计算机可读介质的示例包括磁记录介质(例如,软盘、磁带和硬盘驱动器)、磁光记录介质(例如,磁光盘)、CD-ROM(只读存储器)、CD-R、CD-R/W和半导体存储器(例如,掩模ROM、PROM(可编程ROM)、EPROM(可擦除ROM)、闪存ROM和RAM(随机存取存储器))。而且,程序可以通过各种类型的暂时性计算机可读介质提供给计算机。暂时性计算机可读介质的示例包括电信号、光信号和电磁波。暂时性计算机可读介质可以经由有线通信路径(例如电线和光纤)或无线通信路径将程序提供给计算机。
[0022] <发明人先前的研究>
[0023] 在描述根据第一实施例的存储器保护系统之前,描述发明人先前研究的内容。
[0024] 图7是示出根据第一实施例之前的构思的存储器保护系统SYS50的配置示例的框图。
[0025] 如图7所示,存储器保护系统SYS50包括由诸如CPU的运算处理电路实现的n(n是2或更大的整数)个虚拟机VM1至VMn和管理程序HV1、存储器保护电路50和存储器M1。在下文中,虚拟机VM1至VMn中的任何一个虚拟机都可以称为虚拟机VM。
[0026] 管理程序HV1具有比虚拟机VM1至VMn更高的可靠性,并且管理这些虚拟机VM1至VMn。管理程序HV1具有访问存储器保护电路50中提供的每个寄存器的权限。尽管虚拟机VM1至VMn可以并行执行算术处理,但是它们不具有访问提供在存储器保护电路50中的每个寄存器的权限。
[0027] 存储器保护电路50控制虚拟机VM1至VMn对存储器M1的访问。具体地,存储器保护电路50包括寄存器组51和访问确定电路52。
[0028] 寄存器组51包括保护区域设置寄存器511和ID存储寄存器512。在保护区域设置寄存器511中,设置了针对虚拟机VM1至VMn的访问进行保护的存储器M1的存储区域。ID存储寄存器512在其中存储了被给予对存储器M1的访问权限的虚拟机VM1至VMn的虚拟机VM的ID(标识)。
[0029] 当从虚拟机VM1至VMn的任何虚拟机VM接收到访问存储器M1的请求时,访问确定电路52确定是否允许已发出访问请求的虚拟机VM访问存储器M1。
[0030] 具体地,访问确定电路52包括地址比较器电路521和ID比较器电路522。地址比较器电路521将由发出访问请求的虚拟机VM指定的存储器M1中的地址与在保护区域设置寄存器511中设置的存储区域中的地址相互比较。ID比较器电路522将发出访问请求的虚拟机VM的ID与存储在ID存储寄存器512中的ID相互比较。当访问比较器电路521的比较结果表明匹配并且ID比较器电路522的比较结果表明匹配时,访问确定电路52允许已发出访问请求的虚拟机VM访问存储器M1。
[0031] 例如,当经由公共存储器M1在两个虚拟机VM1和VM2之间传送数据时,首先由存储器保护电路50中的管理程序HV1给予虚拟机VM1访问存储器M1的权限。具体地,管理程序HV1将虚拟机VM1的ID存储到ID存储寄存器512中。因此,例如,数据由虚拟机VM1写入存储器M1。
[0032] 此后,当完成虚拟机VM1对存储器M1的访问时,从虚拟机VM1向管理程序HV1通知访问的完成。响应于该通知,处理从虚拟机VM1迁移到管理程序HV1。此后,管理程序HV1将访问存储器M1的权限从虚拟机VM1切换到虚拟机VM2。具体地,由管理程序HV1将存储在ID存储寄存器512中的ID从虚拟机VM1的ID重写为虚拟机VM2的ID。因此,例如,由虚拟机VM2读取写入在存储器M1中的数据。
[0033] 如上所述,在存储器保护电路50中,例如,当经由公共存储器M1在两个虚拟机VM1和VM2之间传送数据时,每次完成任何虚拟机对存储器M1的访问时都需要使处理从该虚拟机迁移到管理程序,并且然后响应来自管理程序的请求将访问权限切换到下一个虚拟机。因此,存储器保护电路50具有不能经由公共存储器在多个虚拟机之间快速传送数据的问题。
[0034] 此外,需要为管理程序开发用于执行这一系列处理的软件。此外,因为通过上下文切换的存储器访问处理出现在从虚拟机到管理程序的转换中以及从管理程序到虚拟机的转换中,所以通过诸如CPU的算术处理电路的处理周期变得更长,从而导致从一个虚拟机完成数据通信处理到下一个虚拟机开始数据通信处理的时间增加。
[0035] 因此,发明人发现了根据第一实施例的存储器保护电路,其能够经由公共存储器在多个机器之间进行快速数据传送。
[0036] <第一实施例>
[0037] 图1是示出其中提供根据第一实施例的存储器保护电路的存储器保护系统SYS1的配置示例的框图。
[0038] 如图1所示,存储器保护系统SYS1包括由诸如CPU的运算处理电路实现的n(n是2或更大的整数)个虚拟机VM1至VMn和管理程序HV1、存储器保护电路1和存储器M1。在下文中,虚拟机VM1至VMn中的任何虚拟机可以称为虚拟机VM。
[0039] 管理程序HV1具有比虚拟机VM1至VMn更高的可靠性,并且管理这些虚拟机VM1至VMn。管理程序HV1具有访问设置在存储器保护电路1中的每个寄存器(保护区域设置寄存器111、第一ID存储寄存器112、第二ID存储寄存器113和模式设置寄存器116)的权限。尽管虚拟机VM1至VMn可以并行执行算术处理,但是对存储器保护电路1的访问权限是受限的。
[0040] 存储器保护电路1控制虚拟机VM1至VMn对存储器M1的访问。具体地,存储器保护电路1包括寄存器组11、访问确定电路12、访问确定电路14和ID更新控制电路15。
[0041] 寄存器组11包括保护区域设置寄存器111、第一ID存储寄存器112、第二ID存储寄存器113、触发生成寄存器114、ID锁定寄存器115和模式设置寄存器116。
[0042] 在保护区域设置寄存器111中,设置存储器M1中的存储区域,该存储区域将被保护以防止虚拟机VM1到VMn的访问。第一ID存储寄存器112在其中存储虚拟机VM1至VMn中的被给予对存储器M1的访问权限的虚拟机VM的ID(标识)。稍后将描述第二ID存储寄存器113、触发生成寄存器114、ID锁定寄存器115和模式设置寄存器116。
[0043] 当从虚拟机VM1到VMn中的任何虚拟机VM接收到访问存储器M1的请求时,访问确定电路12确定是否允许发出了访问请求的虚拟机VM访问存储器M1。
[0044] 具体地,访问确定电路12包括地址比较器电路121和ID比较器电路122。地址比较器电路121将由发出了访问请求的虚拟机VM指定的存储器M1中的地址与在保护区域设置寄存器111中设置的存储区域中的地址相互比较。ID比较器电路122将发出了访问请求的虚拟机VM的ID与存储在ID存储寄存器112中的ID相互比较。当访问比较器电路121的比较结果表明匹配并且ID比较器电路122的比较结果表明匹配时,访问确定电路12允许发出了访问请求的虚拟机VM访问存储器M1。
[0045] 在寄存器组11中,第二ID存储寄存器113在其中存储了被给予对第一ID存储寄存器112的访问权限的两个虚拟机VM的ID。换句话说,第二ID存储寄存器113在其中存储了被给予重写存储在第一ID存储寄存器112中的ID的权限的两个虚拟机VM的ID。
[0046] 当从虚拟机VM1至VMn中的任何虚拟机VM向存储器保护电路1发出了重写存储在第一ID存储寄存器112中的ID的请求时(换句话说,请求了改变具有访问存储器M1的权限的虚拟机VM),访问确定电路14确定是否允许发出了ID重写请求的虚拟机VM重写存储在第一ID存储寄存器112中的ID。
[0047] 例如,当发出了ID重写请求的虚拟机VM的ID和存储在第二ID存储寄存器113中的两个ID中的任何一个ID彼此匹配时,访问确定电路14允许发出了ID重写请求的虚拟机VM重写存储在第一ID存储寄存器112中的ID。此时,触发生成器114输出脉冲状的触发信号TRG。当已经输出触发信号TRG时,ID更新控制电路15将存储在第一ID存储寄存器112中的ID从存储在第二ID存储寄存器113中的两个ID中的一个ID重写为另一个ID。
[0048] 例如,第一ID存储寄存器112具有与32个虚拟机VM1至VM32相对应的32位宽度ID存储区域。在32位宽度ID存储区域中,最低位的值表示虚拟机VM1存在或不存在对存储器M1的访问权限,并且从最低位起的第32位的值(也就是说,最高位的值)表示例如虚拟机VM32存在或不存在对存储器M1的访问权限。
[0049] 类似地,第二ID存储寄存器113具有与32个虚拟机VM1至VM32相对应的32位宽度ID存储区域。在32位宽度ID存储区域中,例如,最低位的值表示虚拟机VM1存在或不存在重写ID的权限,并且从最低位起的第32位的值(即,最高位的值)表示虚拟机VM32存在或不存在重写ID的权限。
[0050] 在向虚拟机VM1给予对存储器M1的访问权限并且向虚拟机VM1和VM2给予重写存储在第一ID存储寄存器112中的ID的权限的情况下,例如,第一ID存储寄存器112的低四位的值是“0001”,第二ID存储寄存器113的低四位的值是“0011”。因为在本示例中高28位的值都是0,所以在以下描述中省略了这些值。
[0051] 当响应于ID重写请求输出了触发信号TRG时,ID更新控制电路15计算存储在第一ID存储寄存器112中的32位宽度值的每个位与存储在第二ID存储寄存器113中的32位宽度值的每个位的异或,并将其重写在第一ID存储寄存器112中。具体而言,ID更新控制电路15将值“0010”重写在第一ID存储寄存器112中,该值“0010”是所述第一ID存储寄存器112中低四位“0001”的每个位与第二ID存储寄存器113中低四位“0011”的每个位的异或。因此,具有访问存储器M1的权限的虚拟机从虚拟机M1迁移到虚拟机VM2。
[0052] 此外,当从虚拟机VM1至VMn中的任何虚拟机VM向存储器保护电路1发出了锁定存储在第一ID存储寄存器112中的ID的请求时,访问确定电路14确定是否允许发出了ID锁定请求的虚拟机VM锁定存储在第一ID存储寄存器112中的ID。
[0053] 例如,当发出了ID锁定请求的虚拟机VM的ID和存储在第一ID存储寄存器112中的ID彼此匹配时,访问确定电路14允许虚拟机VM锁定存储在第一ID存储寄存器112中的ID。此时,ID锁定寄存器115使锁定信号LK有效。当锁定信号LK变为有效时,ID更新控制电路15锁定存储在第一ID存储寄存器112中的ID。因此,在释放锁定之前,不能重写存储在第一ID存储寄存器112中的ID。
[0054] 此外,当从具有锁定的ID的虚拟机VM发出了重写存储在第一ID存储寄存器112中的ID的请求时,接受该重写请求。此时,ID锁定寄存器115将锁定信号LK从有效状态切换到无效状态。因此,锁定被释放。同时,ID更新控制电路15将存储在第一ID存储寄存器112中的ID从存储在第二ID存储寄存器113中的两个ID中的一个ID重写为另一个ID。
[0055] 因此,在由具有访问存储器M1的权限的虚拟机VM1将数据写入存储器M1之前,访问存储器M1的权限从虚拟机VM1迁移到虚拟机VM2,并且之后完成由虚拟机VM2从存储器M1的数据读取,例如可以防止访问存储器M1的权限从虚拟机VM2迁移到虚拟机VM1。
[0056] 图2示出了在未锁定存储在第一ID存储寄存器112中的ID的情况下,发出了ID重写请求的虚拟机VM的ID与存储在第一ID存储寄存器112中的ID之间的关系。假设在图2的示例中,将重写存储在第一ID存储寄存器112中的ID的权限给予虚拟机VM1和VM2。
[0057] 参考图2,在未锁定存储在第一ID存储寄存器112中的ID的情况下,当从虚拟机VM1和VM2中的任何虚拟机发出了ID重写请求时,存储在第一ID存储寄存器112中的ID从虚拟机VM1和VM2中的一个虚拟机的ID被重写为另一个虚拟机的ID。
[0058] 图3示出了在存储在第一ID存储寄存器112中的ID被锁定的情况下,发出了ID重写请求的虚拟机VM的ID与存储在第一ID存储寄存器112中的ID之间的关系。假设在图3的示例中,将存储在第一ID存储寄存器112中的ID的重写权限给予虚拟机VM1和VM2。
[0059] 参考图3,在存储在第一ID存储寄存器112中的ID被锁定的情况下,仅当从其ID被存储在第一ID存储寄存器112中的虚拟机VM发出了ID重写请求时,存储在第一ID存储寄存器112中的ID才从虚拟机VM1和VM2中的一个虚拟机的ID被重写为另一个虚拟机的ID。此外,当重写ID时,同时释放锁定。
[0060] 在模式设置寄存器116中,设置是否激活其中响应于来自具有存储在第二ID存储寄存器113中的ID的虚拟机VM的重写请求、重写存储在第一ID存储寄存器中的ID的操作模式(以下称为操作模式MD)。在本实施例中,操作模式MD被设置为有效。当操作模式MD被设置为无效时,存储器保护电路1执行与例如存储器保护电路50类似的操作。
[0061] <存储器保护电路1的操作>
[0062] 接下来,描述存储器保护电路1的操作。在该示例中,描述了经由公共存储器M1在虚拟机VM1和VM2之间传送数据的情况。
[0063] 首先,管理程序HV1对存储器保护电路1中的每个寄存器执行初始设置。例如,将虚拟机VM1的ID存储在第一ID存储寄存器112中。因此,访问存储器M1的权限被给予虚拟机VM1。在第二ID存储寄存器113中,存储虚拟机VM1和VM2的两个ID。因此,将重写存储在第一ID存储寄存器112中的ID的权限给予给虚拟机VM1和VM2。在保护区域设置寄存器111中设置使虚拟机VM1和VM2可以访问的存储器M1的存储区域。此外,模式设置寄存器116被设置为使操作模式MD有效。
[0064] 在对存储器保护电路1的每个寄存器执行初始设置之后,管理程序HV1启动具有访问存储器M1的权限的虚拟机VM1。
[0065] 例如,具有访问存储器M1的权限的虚拟机VM1将数据写入存储器M1。此时,虚拟机VM1可以请求存储器保护电路1锁定存储在第一ID存储寄存器112中的ID。在完成由虚拟机VM1对存储器M1的数据写入之前,ID的锁定可以防止访问存储器M1的权限从虚拟机VM1迁移到虚拟机VM2。
[0066] 在完成向存储器M1的数据写入时,虚拟机VM1请求存储器保护电路1重写存储在第一ID存储寄存器112中的ID。当响应于ID重写请求从触发生成寄存器114输出了触发信号TRG时,ID更新控制电路15将存储在第一ID存储寄存器112中的ID从虚拟机VM1的ID重写为虚拟机VM2的ID。因此,访问存储器M1的权限从虚拟机M1迁移到虚拟机VM2。此时,从ID锁定寄存器115输出的锁定信号LK变为无效。因此,释放存储在第一ID存储寄存器112中的ID的锁定。
[0067] 此后,虚拟机VM1向虚拟机VM2通知中断以使虚拟机VM2启动。
[0068] 例如,具有访问存储器M1的权限的虚拟机VM2读出写入在存储器M1中的数据。此时,虚拟机VM2可以请求存储器保护电路1锁定存储在第一ID存储寄存器112中的ID。在完成虚拟机VM2从存储器M1的数据读取之前,ID的锁定可以防止访问存储器M1的权限从虚拟机VM2迁移到虚拟机VM1。
[0069] 在完成从存储器M1的数据读取时,虚拟机VM2请求存储器保护电路1重写存储在第一ID存储寄存器112中的ID。当响应于ID重写请求从触发生成寄存器114输出了触发信号TRG时,ID更新控制电路15将存储在第一ID存储寄存器112中的ID从虚拟机VM2的ID重写为虚拟机VM1的ID。因此,访问存储器M1的权限从虚拟机VM2迁移到虚拟机VM1。此时,从ID锁定寄存器115输出的锁定信号LK变为无效。因此,释放存储在第一ID存储寄存器112中的ID的锁定。
[0070] 此后,虚拟机VM2向虚拟机VM1通知中断以使虚拟机VM1启动。重复这些操作。
[0071] 如上所述,在经由公共存储器在两个虚拟机之间传送数据的情况下,存储器保护电路1可以在即使在由虚拟机中的一个虚拟机完成对存储器M1的访问之后,仍使处理直接从该一个虚拟机迁移到另一个虚拟机,而不会使处理从该一个虚拟机迁移到管理程序。也就是说,存储器保护电路1使得能够经由公共存储器M1在两个虚拟机之间快速传送数据而没有使用管理程序HV1。
[0072] 此外,对于存储器保护电路1,与存储器保护电路50不同,不需要开发用于响应于来自管理程序HV1的请求来重写存储在第一ID存储寄存器112中的ID的软件。因此,可以减少工时。
[0073] 此外,为了在两个虚拟机之间执行数据通信,访问存储器M1的权限仅被给予给两个虚拟机VM中的任一个虚拟机。另外,只有通过来自两个虚拟机VM的请求才允许具有访问存储器M1的权限的虚拟机VM的迁移。也就是说,只有通过两个虚拟机才能访问要保护的存储器M1中的存储区域,因此还可以保护数据免受其它资源的影响。
[0074] <存储器保护电路1的改型>
[0075] 尽管本实施例已经描述了存储器保护电路1被配置为允许经由存储器保护电路1中的公共存储器M1在两个虚拟机VM1和VM2之间进行数据传送的情况,但是存储器保护电路1的配置不限于此。存储器保护电路1可以被配置为允许可以经由公共存储器M1在三个或更多个虚拟机之间执行数据传送。以下作为存储器保护电路1a简要描述存储器保护电路1的改型。
[0076] 图4是存储器保护电路1a的操作示例的说明图。在图4的示例中,数据经由公共存储器M1在三个虚拟机VM1至VM3之间被传送。
[0077] 在第二ID存储寄存器113中,存储虚拟机VM1至VM3的相应ID。也就是说,在该改型中,响应于来自虚拟机VM1至VM3的ID重写请求,可以重写存储在第一ID存储寄存器112中的ID。
[0078] 首先,在图4的示例中,将访问存储器M1的权限给予虚拟机VM1。当虚拟机VM1请求存储器保护电路1a将存储在第一ID存储寄存器112中的ID从虚拟机VM1的ID重写为虚拟机VM2的ID时,存储在第一ID存储寄存器112中的ID从虚拟机VM1的ID被重写为虚拟机VM2的ID。因此,访问存储器M1的权限从虚拟机M1迁移到虚拟机VM2。
[0079] 接下来,当虚拟机VM2已请求存储器保护电路1a将存储在第一ID存储寄存器112中的ID从虚拟机VM2的ID重写为虚拟机VM3的ID时,存储在第一ID存储寄存器112中的ID从虚拟机VM2的ID被重写为虚拟机VM3的ID。因此,访问存储器M1的权限从虚拟机VM2迁移到虚拟机VM3。
[0080] 接下来,当虚拟机VM3已请求存储器保护电路1a将存储在第一ID存储寄存器112中的ID从虚拟机VM3的ID重写为虚拟机VM1的ID时,存储在第一ID存储寄存器112中的ID从虚拟机VM3的ID被重写为虚拟机VM1的ID。因此,访问存储器M1的权限从虚拟机VM3迁移到虚拟机VM1。
[0081] 接下来,当没有访问存储器M1的权限的虚拟机VM3请求存储器保护电路1a将存储在第一ID存储寄存器112中的ID从虚拟机VM1的ID重写为虚拟机VM2的ID时,存储在第一ID存储寄存器112中的ID没有从虚拟机VM1的ID重写为虚拟机VM2的ID。在这种情况下,例如,存储在第一ID存储寄存器112中的ID被重写为已访问的虚拟机VM3的ID。因此,访问存储器M1的权限从虚拟机VM1迁移到虚拟机VM3。
[0082] 接下来,当具有访问存储器M1的权限的虚拟机VM3已访问并请求存储器保护电路1a锁定存储在第一ID存储寄存器112中的ID(即,虚拟机VM3的ID)时,存储在第一ID存储寄存器112中的ID被锁定。
[0083] 此时,即使没有访问存储器M1的权限的虚拟机VM2已请求存储器保护电路1a将存储在第一ID存储寄存器112中的ID从虚拟机VM3的ID重写为虚拟机VM1的ID,存储在第一ID存储寄存器112中的ID也不会从虚拟机VM3的ID被重写为虚拟机VM1的ID,因为存储在第一ID存储寄存器112中的ID被锁定。也就是说,存储在第一ID存储寄存器112中的ID被保持为虚拟机VM3的ID。因此,访问存储器M1的权限被保留在虚拟机VM3中。
[0084] 同时,当具有访问存储器M1的权限的虚拟机VM3已请求存储器保护电路1a将存储在第一ID存储寄存器112中的ID从虚拟机VM3的ID重写为虚拟机VM1的ID时,存储在第一ID存储寄存器112中的ID的锁定被释放,从而存储在第一ID存储寄存器112中的ID从虚拟机VM3的ID被重写为虚拟机VM1的ID。因此,访问存储器M1的权限从虚拟机VM3迁移到虚拟机VM1。
[0085] 通过具有访问存储器M1的权限的虚拟机,指定访问存储器M1的权限迁移到虚拟机VM1至VM3中的其ID存储在第二ID存储寄存器113中的任何虚拟机。例如,被指定为访问存储器M1权限的迁移目的地的虚拟机VM的ID被存储在触发生成寄存器114中。然后,当存储在触发生成寄存器114中的ID和存储在第二ID存储寄存器113中的三个ID中的任何一个ID彼此匹配时,存储在第一ID存储寄存器112中的ID被重写成存储在触发生成寄存器114中的ID。然而,如已经描述的,当由没有访问存储器M1的权限的虚拟机指定迁移目的地时,例如,存储在第一ID存储寄存器112中的ID被重写成已请求迁移访问权限的虚拟机的ID,而不是重写成存储在触发生成寄存器114中的ID。
[0086] 如上所述,存储器保护电路1a可以在不使用管理程序的情况下经由公共存储器M1在三个或更多个虚拟机之间快速地传送数据。
[0087] <第二实施例>
[0088] 图5是示出根据第二实施例的存储器保护系统SYS2的配置示例的框图。当与存储器保护系统SYS1进行比较时,存储器保护系统SYS2包括存储器保护电路2来代替存储器保护电路1。当与存储器保护电路1进行比较时,存储器保护电路2还包括计数器21、比较器电路22和阈值存储寄存器117。
[0089] 阈值存储寄存器117在其中存储由管理程序HV1指定的预定阈值。计数器21与从ID锁定寄存器115输出的锁定信号LK变为有效(例如,高电平)的定时(即存储在第一ID存储寄存器112中的ID被锁定的定时)同步地开始向上计数其计数值CN的操作,该计数值CN具有零作为初始值。
[0090] 比较器电路22将计数器21的计数值CN与存储在阈值存储寄存器117中的阈值N1相互比较。当计数值CN在从计数器21开始向上计数起的预定时间之后达到阈值N1时,比较器电路22将比较结果从无效状态切换到有效状态(例如,从低电平切换到高电平)。因此,从ID锁定寄存器115输出的锁定信号LK被强制从有效状态切换到无效状态,并且因此释放存储在第一ID存储寄存器112中的ID的锁定。即,即使在存储在第一ID存储寄存器112中的ID例如由于系统错误继续被无意地锁定的情况下,在从开始锁定起的预定时间之后也强制释放该ID的锁定。此外,通过将比较结果从无效状态切换到有效状态,可以在释放锁定的同时执行存储在第一ID存储寄存器112中的ID的重写。
[0091] 存储器保护电路2的其他配置与存储器保护电路1的配置相同,因此省略其描述。
[0092] <存储器保护电路2的操作>
[0093] 接下来,参考图6描述存储器保护电路2的操作。
[0094] 图6是示出存储器保护电路2的操作的流程图。
[0095] 如图6中所示,首先,当具有存储在第一ID存储寄存器112中的ID的虚拟机VM(即,给予访问存储器M1的权限的虚拟机VM)已经访问并请求存储器保护电路2锁定存储在第一ID存储寄存器112中的ID时,ID锁定寄存器115将锁定信号LK从无效状态切换到有效状态(例如,从低电平切换到高电平)。因此,存储在第一ID存储寄存器112中的ID被锁定(步骤S101)。
[0096] 计数器21在存储在第一ID存储寄存器112中的ID被锁定的定时开始向上计数其以零作为初始值的计数值CN的操作(步骤S102)。
[0097] 例如,当在计数值CN达到阈值N1之前(在步骤S103中为否)、响应于来自具有存储在第一ID存储寄存器112中的ID的虚拟机VM的ID重写请求而释放该ID的锁定时(步骤S104为是),在释放锁定的同时执行存储在第一ID存储寄存器112中的ID的重写(步骤S106)。此时,计数器21的向上计数操作停止,并且计数值CN被初始化为零。
[0098] 另一方面,除非在计数值CN达到阈值N1之前(步骤S103为否)释放存储在第一ID存储寄存器112中的ID的锁定(步骤S104为否),否则计数器21的向上计数计数值CN的操作继续。
[0099] 然后,当计数值CN达到阈值N1时(步骤S103为是),即使没有来自其ID存储在第一ID存储寄存器112中的虚拟机VM的ID重写请求,从ID锁定寄存器115输出的锁定信号LK也被强制从有效状态切换到无效状态。因此,释放存储在第一ID存储寄存器112中的ID的锁定(步骤S105)。也就是说,同样在存储在第一ID存储寄存器112中的ID例如由于系统错误继续被无意地锁定的情况下,在从开始锁定起的预定时间之后强制释放该ID的锁定。
[0100] 在这种情况下,响应于来自具有存储在第一ID存储寄存器112中的ID的虚拟机的请求,根据需要重写该ID(步骤S106)。
[0101] 如上所述,根据本实施例的存储器保护电路2可以获得与存储器保护电路1相同或近似相同的有益效果。此外,根据本实施例的存储器保护电路2在锁定存储在第一ID存储寄存器112中的ID起的预定时间之后,即使没有来自具有存储在第一ID存储寄存器112中的ID的虚拟机VM的请求,也释放存储在第一ID存储寄存器112中的ID的锁定。因此,即使在存储在第一ID存储寄存器112中的ID例如由于系统错误继续被无意地锁定的情况下,根据本实施例的存储器保护电路2在从锁定开始经过预定时间之后强制释放该ID的锁定,从而使存储器保护电路2的设置能够返回到正常状态。
[0102] 此外,根据本实施例的存储器保护电路2在没有通过管理程序HV1的处理的情况下基于比较器电路22的比较结果强制地释放ID的锁定。因此,不需要保存用于启动管理程序HV1的上下文和管理程序HV1的恢复操作,从而抑制了存储器保护系统SYS2的性能劣化。
[0103] 如上所述,当经由公共存储器在多个虚拟机之间传送数据时,根据上述第一实施例和第二实施例的存储器保护电路1和2可以在完成虚拟机中的任何一个虚拟机对存储器M1的访问之后使处理从该一个虚拟机迁移到下一个虚拟机,而不会使处理从该一个虚拟机迁移到管理程序。也就是说,存储器保护电路1使得能够经由公共存储器M1在虚拟机之间实现快速数据传送,无需使用管理程序HV1。
[0104] 在上文中,已经通过实施例具体描述了由本申请的发明人做出的发明。然而,自然理解的是,本发明不限于上述实施例,并且可以在不脱离其主旨的范围内以各种方式进行改变。