半导体器件的制作方法

文档序号:17397430发布日期:2019-04-13 00:55阅读:123来源:国知局
半导体器件的制作方法

包括本说明书、附图和摘要的于2017年10月4日提交的日本专利申请no.2017-194248的公开内容通过引用以其整体并入本文。

本发明涉及一种半导体器件,以及例如涉及一种具有由多个处理共同使用的公用资源(commonresource)的半导体器件。



背景技术:

近年来,在半导体器件(诸如执行程序的处理器)中,通过使用诸如使用多个运算核心或者在单一运算核心上使用虚拟机的逻辑配置等方法来并行地执行处理。在执行并行处理的半导体器件中,存在单一资源(例如,存储器、dac、定时器等)被多个处理共同使用的情况。共同使用的资源将被称为公用资源。在使用公用资源的情况下,当使用公用资源而多个处理没有进行限制时,由单一处理所生成的处理结果可能被另一处理破坏,或者另一处理基于单一处理的处理结果来进行操作并且出现错误的操作。因此,在使用公用资源的情况下,为了避免处理之间的操作干扰,公用资源独占控制(exclusioncontrol)被执行。美国专利no.6,792,497(专利文献1)公开了对供应资源的独占控制的一个示例。

在专利文献1中,两个虚拟机被配置在单一处理器上,并且这两个虚拟机访问单一公用资源。在专利文献1中,通过使用执行公用资源独占控制的信号量来执行对公用资源的独占控制。



技术实现要素:

然而,在专利文献1中所描述的技术具有如下问题:虽然可以执行对公用资源的独占控制,但是如此独占地使用公用资源集的效率较低,并且半导体器件的处理能力不能被完全表现出来。

根据说明书和附图的描述,其他问题和新颖特征将变得显而易见。

根据一个实施例,一种半导体器件包括:在处理器上所执行的多个处理中共同使用的公用资源;信号量(semaphore),控制公用资源的占有权(possessoryright);以及信号量管理单元,响应于在处理器上所执行的处理的请求而对信号量执行获取公用资源的占有权的处理。当从多个处理中的第一处理接收到获取公用资源的占有权的请求、并且占有权不能被获得时,信号量管理单元执行将在处理器上所执行的处理切换为第二处理的控制以及重复执行由第一处理所请求的占有权获取处理。当获得由第一处理所请求的占有权时,信号量管理单元执行将在处理器上所执行的处理从第二处理切换为第一处理的控制。

根据一个实施例,一种半导体器件,包括:处理器,第一虚拟机和第二虚拟机被逻辑地配置在上述处理器中;公用资源,由上述第一虚拟机和上述第二虚拟机所共享;以及信号量,上述信号量将上述公用资源的占有权给予上述第一虚拟机和上述第二虚拟机的其中一个虚拟机,其中上述处理器包括:虚拟机管理单元,将处于操作状态的虚拟机在上述第一虚拟机与上述第二虚拟机之间切换;以及信号量管理单元,以及其中当上述第一虚拟机和上述第二虚拟机的其中一个虚拟机获取上述公用资源的上述占有权失败时,上述信号量管理单元指令上述虚拟机管理单元将处于上述操作状态的上述虚拟机从上述虚拟机中的上述一个虚拟机切换为另一虚拟机,以及重复由上述虚拟机中的上述一个虚拟机获取上述公用资源的上述占有权的处理,以及其中,响应于获取关于上述虚拟机中的上述一个虚拟机的上述公用资源的上述占有权从失败改变为成功,上述信号量管理单元指令上述虚拟机管理单元将处于上述操作状态的上述虚拟机从上述另一虚拟机切换为上述虚拟机中的上述一个虚拟机。其中上述信号量管理单元具有信号量比较数据寄存器,上述信号量比较数据寄存器存储关于由上述信号量向其给予上述占有权的上述虚拟机的第一信号量信息,以及其中上述信号量管理单元将在上述信号量比较数据寄存器中所存储的上述第一信号量信息与第二信号量信息相比较,以及当上述两条信息不匹配时,使用上述第二信号量信息来周期性地重复获取信号量,其中向来自请求获取对于上述信号量的上述占有权的上述虚拟机的上述信号量生成上述第二信号量信息。其中上述第二信号量信息包括以下至少一项:标识生成上述第二信号量信息的虚拟机的虚拟机标识符、标识在上述虚拟机上所处理的应用软件的应用标识符、以及标识有关在上述虚拟机上所处理的上述应用软件的代码的步骤的步骤标识符。其中请求获取上述占有权的上述虚拟机参照为上述信号量管理单元所提供的自旋锁定状态寄存器,来确定是否获得其本身所请求的上述占有权。其中当对上述信号量执行关于上述第一虚拟机和上述第二虚拟机的其中一个虚拟机的上述占有权获取处理、并且从上述另一虚拟机请求上述占有权获取处理时,上述信号量管理单元向上述另一虚拟机通知忙碌状态。其中还包括第一处理器和第二处理器,上述第一处理器和上述第二处理器中的至少一个处理器具有与上述处理器的配置相同的配置,其中上述信号量将上述公用资源的上述占有权给予上述第一处理器和上述第二处理器中的任何一个处理器,以及其中当对上述信号量执行关于上述第一虚拟机和上述第二虚拟机中的任何一个处理器的上述占有权获取处理、并且从上述另一虚拟机请求上述占有权获取处理时,上述信号量管理单元向上述另一虚拟机通知忙碌状态。

根据一个实施例,一种半导体器件,包括:多个处理器;公用资源,由上述多个处理器所共享;以及信号量,上述信号量将上述公用资源的占有权给予由上述多个处理器所执行的处理的每个单元,其中上述多个处理器中的至少一个处理器具有信号量管理单元,以及其中当通过由上述信号量管理单元的上述处理器所执行的第一处理来获取上述公用资源的上述占有权失败时,上述信号量管理单元将上述处理从上述第一处理切换为第二处理,以及重复向上述信号量获取上述占有权的处理,直到通过上述第一处理上述公用资源的上述占有权能够被获取,以及其中,响应于通过上述第一处理获取上述公用资源的上述占有权从失败改变为成功,上述信号量管理单元将由上述信号量管理单元的上述处理器所执行的上述处理从上述第二处理切换为上述第一处理。其中执行上述第一处理和上述第二处理的处理器包括:第一虚拟机、第二虚拟机、以及在上述第一虚拟机与上述第二虚拟机之间切换的同时控制操作的虚拟机管理单元。

根据本发明的实施例,提高了虚拟机的处理效率,以及可以提高半导体器件的处理能力。

附图说明

图1是根据第一实施例的半导体器件的框图。

图2是根据第一实施例解释半导体器件的操作的时序图。

图3是根据第一实施例解释信号量管理单元的操作的流程图。

图4是根据第一实施例解释信号量管理单元的自旋锁定处理的流程图。

图5是根据第二实施例的半导体器件的框图。

图6是根据第二实施例解释半导体器件的操作的时序图。

具体实施方式

为了使描述清楚,在以下的描述和附图中进行了适当地省略和简化。在附图中所图示的作为执行各种处理的功能块的元件可以由cpu、存储器和其他电路组成,以作为硬件,并且通过被加载到存储器等的程序来实现,以作为软件。因此,本领域的技术人员要理解,可以仅通过硬件、仅通过软件、或者通过硬件和软件的组合但是不限于它们中的任何一种以各种形式来实现这些功能块。在附图中,相同的附图标记被分配给相同的组件,并且若必要,则省略重复的描述。

通过使用各种类型的非暂时性计算机可读介质中的任何一种非暂时性计算机可读介质来存储上文所描述的程序,并且上文所描述的程序可以被提供到计算机。非暂时性计算机可读介质包括各种类型的有形存储介质。非暂时性计算机可读介质的示例包括:磁记录介质(例如,软盘、磁带和硬盘驱动器)、磁光记录介质(例如,磁光盘)、cd-rom(只读存储器)、cd-r、cd-r/w、以及半导体存储器(例如,掩膜rom、prom(可编程rom)、epron(可擦除prom)、闪速rom、以及ram(随机存取存储器))。可以通过各种类型的暂时性计算机可读介质中的任何暂时性计算机可读介质来将程序提供到计算机。暂时性计算机可读介质的示例包括:电信号、光信号、以及电磁波。暂时性计算机可读介质可以经由有线通信路径(诸如电线或者光纤)或者无线通信路径来向计算机提供程序。

第一实施例

图1是根据第一实施例的半导体器件1的框图。如图1中所图示,根据第一实施例的半导体器件1具有处理器单元10、纵横开关11、信号量12、以及公用资源13。虽然在图1单一公用资源被图示为公用资源,但是备选地,可以提供多个公用资源。

例如,处理器单元10是执行在内部存储器(未图示)或者外部存储设备(未图示)中所存储的程序的运算单元。纵横开关11将处理器单元10、信号量12、以及公用资源13切换为传输/接收数据和控制信号等的单元。信号量12控制公用资源13的占有权。公用资源13是具有特定功能的电路,诸如存储器、定时器、模数转换电路、数模转换电路、或者协处理器。公用资源13是由在处理器单元10上所执行的多个处理共同使用的硬件资源。

在根据第一实施例的半导体器件1中,处理器单元10具有处理器核心20和信号量管理单元21。在处理器核心20中,配置了虚拟机管理单元30、第一虚拟机(例如,虚拟机31)、以及第二虚拟机(例如,虚拟机32)。通过基本软件的功能(诸如由处理器核心20所执行的操作系统(os)),虚拟机管理单元30以及虚拟机31和32被逻辑地配置在处理器核心20上。

在处理器核心20中,虚拟机31和32执行不同的处理。在处理器核心20中,虚拟机管理单元30以时分方式在虚拟机31的操作和虚拟机32的操作之间进行切换。虚拟机管理单元30根据从稍后将描述的信号量管理单元21所生成的中断信号来切换虚拟机以进行操作。在以下的描述中,由虚拟机31所执行的处理被称为第一处理,而由虚拟机32所执行的处理被称为第二处理。在根据处理中的每个处理向信号量12获得有关处理所需的公用资源的占有权时,虚拟机31和32中的每一个向信号量12生成占有权获取请求。

在根据第一实施例的半导体器件1中,在生成向信号量12占有权获取请求的情况下,指定生成占有权获取请求的虚拟机的标识符被包括进来作为用于占有权获取请求的指令中的信号量信息。可以在各种单元中进行占有权获取请求,诸如应用软件单元或者配置软件的代码中的每个代码的步骤单元。

在对应用软件单元进行占有权获取请求的情况下,信号量信息包括用于指定应用软件的标识符。在使用用于指定应用软件的标识符的情况下,优选地将应用软件与虚拟机相互关联。

在配置软件的代码的步骤单元中进行占有权获取请求的情况下,信号量信息包括用于指定应用软件的标识符。例如当期望按顺序执行处理0至3时,在处理0的执行期间,标识符的值被设置为0,在处理0完成之后,信号量12中的计数器的计数值被增加。虚拟机根据信号量的计数值改变为1来开始处理1。之后,虚拟机通过重复类似的处理来执行处理,直到处理3。在每个步骤设置标识符的情况下,必须将虚拟机和步骤相关联。

信号量管理单元21具有自旋控制单元40和寄存器41。自旋控制单元40基于从虚拟机31或32所生成的占有权获取请求来对信号量12执行占有权获取处理。在寄存器41中,存储了在由自旋控制单元40所执行的占有权获取处理中所使用的各种信息。在图1所图示的示例中,提供了自旋锁定控制寄存器51、自旋锁定状态寄存器52、信号量地址寄存器53、信号量比较数据寄存器54、以及信号量锁定数据寄存器55。寄存器41还被设置有未图示的寄存器,以及在图1中未图示的信息也被用于自旋控制单元40的处理。例如自旋控制单元40在占有权获取处理中使用各种定时器,以及寄存器41被设置有存储用于测量定时器中的时间的设定值的寄存器。稍后将描述包括自旋控制单元40的操作的信号量管理单元21的具体操作。

在自旋锁定控制寄存器51中,存储了起始标志。进行获取公用资源13的请求的虚拟机将起始标志设置为“1”。响应于变为“1”的起始标志,自旋控制单元40开始进行操作。由于起始标志“1”指示信号量管理单元21处于忙碌状态,则在进行占有权获取请求时起始标志为“1”的情况下,虚拟机在识别到占有权获取请求失败的情况下进行操作。

在自旋锁定状态寄存器52中,存储了指示公用资源13的占有权的获取状态或者自旋锁定处理的结果的值。例如,被存储在自旋锁定状态寄存器52中的值在获取公用资源13的占有权成功时变为成功值,在获取公用资源13的占有权失败时变为“失败”值,并且即使在超过指定时间执行了重复执行占有权获取处理以获得公用资源13的占有权的自旋锁定处理之后,也在获取占有权不成功时变为超时值。

在信号量地址寄存器53中,存储了信号量12的地址值。当存在多个信号量12时,为每个信号量设置自旋锁定控制寄存器51、自旋锁定状态寄存器52、信号量地址寄存器53、信号量比较数据寄存器54、以及信号量锁定数据寄存器55的集合。

在信号量比较数据寄存器54中,存储了指示信号量12不向处理或者虚拟机中的任何一个处理或虚拟机给予占有权的状态的值作为期望值。例如,当信号量12不将公用资源13的占有权给予处理或者虚拟机中的任何一个处理或者虚拟机时,值“0”被存储在信号量比较数据寄存器54中。

在信号量锁定数据寄存器55中,存储了执行自旋锁定处理的处理(例如信号量锁定数据)或者虚拟机的标识符的信息。

在存在来自处理器单元10的占有权获取请求的情况下,当公用资源13的占有权不被分配给任何处理(例如,虚拟机)时,信号量12将公用资源13的占有权给予生成占有权获取请求的虚拟机。在存在来自处理器单元10的占有权获取请求的情况下,当公用资源13的占有权被分配给任何处理(例如,虚拟机)时,信号量12拒绝将公用资源13的占有权给予生成占有权获取请求的虚拟机。信号量12具有存储标识信息的寄存器,该标识信息标识向其给予公用资源13的占有权的处理或虚拟机。标识信息将被称为信号量信息(例如,信号量锁定数据)。在根据第一实施例的半导体器件1中,由信号量管理单元21代替处理或虚拟机来执行向信号量12发布占有权获取请求。将在信号量管理单元21的详细描述中描述信号量信息的细节。

将详细描述信号量管理单元21的操作。当从虚拟机31或32发送了获取公用资源13的占有权的请求时,信号量管理单元21对信号量12执行获取处理。当获得公用资源13的占有权时,指示获取成功的成功值被存储在自旋锁定状态寄存器52中。

另一方面,当根据从虚拟机31或32获取公用资源13的占有权的请求来对信号量12执行获取处理并且由此获取公用资源13的占有权失败时,信号量管理单元21将指示获取失败的“失败”值存储到自旋锁定状态寄存器52中。例如,该失败值是指示信号量管理单元21执行自旋锁定处理的状态的值。当公用资源13的占有权出现失败时,信号量管理单元21执行重复执行占有权获取处理的自旋锁定处理。

进一步,当虚拟机31和32中的一个虚拟机未能获取公用资源13的占有权时,信号量管理单元21指令虚拟机管理单元30将处于操作状态的虚拟机从虚拟机中的一个虚拟机切换为另一虚拟机,并且重复由虚拟机中的一个虚拟机获取公用资源13的占有权的处理。响应于有关虚拟机中的一个虚拟机的公用资源占有权获取状态从失败变为成功,信号量管理单元21指令虚拟机管理单元30将处于操作状态的虚拟机从另一虚拟机切换为虚拟机中的一个虚拟机。

随后,将描述根据第一实施例的半导体器件1的操作。图2是根据第一实施例解释半导体器件1的操作的时序图。在图2所图示的示例中,虚拟机管理单元30被指示为vmm,虚拟机31被指示为vm1,以及虚拟机32被指示为vm2。

图2中的示例图示了以下情况:在其中由虚拟机31获得公用资源13的占有权的状态下,将进行操作的虚拟机从虚拟机31切换为虚拟机32,并且维持其中由虚拟机31获得公用资源13的占有权的状态。

参照图2,将描述根据第一实施例的半导体器件1的操作的细节。在图2图示的示例中,首先,虚拟机31生成向信号量12请求公用资源13的占有权的占有权获取请求(图2中的锁定请求lr(vm0))。响应于锁定请求,信号量管理单元21向信号量12给予独占加载指令(加载链接),并且读取在当前时间点在信号量12中所存储的信号量锁定数据。信号量管理单元21将作为被包括在从虚拟机31所接收到的锁定请求中、作为信号量锁定数据的虚拟机31的标识符的信号量信息存储到信号量锁定数据寄存器55中。在图2所图示的示例中,响应于独占加载指令,信号量12发送回值“0”,因为在该时间点,公用资源13的占有权不被给予虚拟机中的任何一个虚拟机。通过该值,信号量管理单元21识别到信号量12不将公用资源13的占有权给予虚拟机中的任何一个虚拟机,并且通过使用独占存储指令(条件存储)来将从虚拟机31所提供的信号量信息写入到信号量12。独占存储指令的成功被指示为图2中的成功响应sr。信号量管理单元21基于响应请求sr来将成功值写入自旋锁定状态寄存器52。虚拟机31参考成功值,并且识别到获得了公用资源13的占有权。因此,虚拟机31使用公用资源13来继续处理。

之后,在预定虚拟机切换定时,虚拟机管理单元30将进行操作的虚拟机从虚拟机31切换为虚拟机32(图2中的t_sch)。虚拟机32根据处理生成有关公用资源13的占有权获取请求(图2中的锁定请求lr(vm1))。此时,信号量管理单元21将作为被包括在从虚拟机32所接收到的锁定请求中、作为信号量锁定数据的虚拟机31的标识符的信号量信息存储到信号量锁定数据寄存器55中。根据锁定请求lr(vm1),信号量管理单元21向信号量12给予独占加载指令,并且读取在该时间点在信号量12中所存储的信号量锁定数据。此时,在图2所图示的示例中,信号量12将公用资源13的占有权给予虚拟机31,使得信号量12根据独占加载指令来将指示占有权被给予虚拟机31的信号量锁定数据发送回信号量管理单元21。因此,信号量管理单元21识别到信号量12将公用资源13的占有权给予虚拟机31。在图2所图示的示例中,使用独占存储指令,从虚拟机31所给予的信号量信息被写入信号量12。在图2中图示了独占存储指令的成功在于,信号量12发送回指示独占权被给予虚拟机31的信号量锁定数据,作为失败响应fr。

在信号量管理单元21中,响应于接收到失败响应fr,自旋控制单元40将失败值存储到自旋锁定状态寄存器52中。响应于接收到失败响应fr,自旋控制单元40还向虚拟机管理单元30生成中断信号(信号量中断s_int)。虚拟机管理单元30将响应于对信号量中断s_int的通知而进行操作的虚拟机从虚拟机32切换为虚拟机31(图2中的s_sch)。这使虚拟机31重新开始进行操作。响应于将失败值写入自旋锁定状态寄存器52,自旋控制单元40开始自旋锁定处理。在自旋锁定处理中,信号量管理单元21基于从虚拟机32到信号量12所生成的占有权获取请求来周期性地执行获取公用资源13的占有权的处理。

在图2所图示的示例中,在信号量管理单元21继续自旋锁定处理的时段中重新开始进行操作的虚拟机31经由信号量管理单元21来向信号量12生成占有权释放请求(图2中的解锁定请求ulr(vm0))。更具体地,接收到解锁定请求ulr(vm0)的信号量管理单元21向信号量12生成将信号量12的信号量锁定数据重写为“0”的独占存储指令。这使信号量12释放被给予虚拟机31的公用资源13的占有权。当信号量管理单元21通过随后的自旋锁定处理而成功获取关于公用资源13的占有权时,从信号量12发送回成功响应sr。更具体地,信号量管理单元21通过独占存储指令来将在信号量锁定数据寄存器55中所存储的信号量锁定数据写入信号量12,并且响应于写入的成功,虚拟机32识别到可以获得公用资源13的占有权。在图2中,信号量管理单元21成功写入信号量锁定数据指示为成功响应sr。

响应于自旋控制单元40接收到成功响应sr,信号量管理单元21将成功值存储在自旋锁定状态寄存器52中。根据接收到成功响应sr,自旋控制单元40向虚拟机管理单元30生成中断信号(信号量中断s_int)。虚拟机管理单元30将通知信号量中断s_int时被操作的虚拟机从虚拟机31切换为虚拟机32(图2中的s_sch)。这使操作在虚拟机32可以使用公用资源13的状态下重新开始。自旋控制单元40响应于将成功值写入自旋锁定状态寄存器52而开始自旋锁定处理。另外,在将自旋锁定控制寄存器51的起始标志的值从“1”重写为“0”之后,自旋控制单元40结束自旋锁定处理,并且转换到待机状态。

随后,将参照流程图详细描述信号量管理单元21的操作。图3是根据第一实施例图示信号量管理单元21的操作的流程图。在对图3和图4的描述中,获取有关公用资源13的占有权被表示为信号量获取。

如在图3所图示,信号量管理单元21根据从虚拟机接收到的锁定请求来开始处理。在信号量管理单元21中,当自旋控制单元40开始处理时,自旋锁定控制寄存器51的起始标志的值被从“0”重写为“1”(步骤s0)。虽然未被图示,但是在步骤s0中,信号量管理单元21将关于生成锁定请求的虚拟机的信号量信息存储在信号量锁定数据中。随后,自旋控制单元40从信号量12获得被保持在信号量12中的信号量信息(例如,信号量锁定数据)(步骤s1)。在步骤s1中,自旋控制单元40使用独占加载指令(加载链接)来执行读取处理。自旋控制单元40将从信号量12所获得的信号量信息与在信号量比较数据寄存器54中所存储的信号量信息相比较(步骤s2)。在图3和图4所图示的示例中,在信号量比较数据寄存器54中,设置了在信号量管理单元21不将公用资源13的占有权给予虚拟机中的任何一个虚拟机时的值(例如,值“0”)。

当在步骤s2的比较处理中两条信息相匹配时,自旋控制单元40通过使用独占存储指令(存储指令)将从虚拟机所给予的信号量信息(例如,在信号量锁定数据寄存器55中所存储的信号量锁定数据)写入信号量12来执行信号量获取处理(步骤s3)。响应于成功获取信号量,自旋控制单元40将自旋锁定状态寄存器52的值(例如,自旋锁定状态信息)设置为成功值(步骤s4和s5)。

另一方面,在步骤s2的比较处理中两条信息不匹配的情况下,或者在步骤s4中所确定的获取信号量失败的情况下,自旋控制单元40利用失败值来更新自旋锁定状态寄存器52的值(例如,自旋锁定状态信息)(步骤s6)。作为在步骤s4中信号量获取失败的一个示例,当在步骤s2中识别到信号量12的信号量锁定数据之后并且在步骤s4中的信号量获取处理之前的时段任何处理或者虚拟机获取信号量时,出现失败。自旋控制单元40将信号量中断s_int输出到处理器核心20(步骤s7)。这将在处理器核心20上进行操作的虚拟机从虚拟机32切换为虚拟机31。之后,自旋控制单元40执行自旋锁定处理(步骤s8)。

将详细描述步骤s8中的自旋锁定处理。图4是根据第一实施例图示信号量管理单元21的自旋锁定处理的流程图。如图4中所图示,在自旋锁定处理中,直到预定重试周期时间已过,自旋控制单元40等待获取公用资源13的占有权的处理(步骤s11)。在重试周期时间已过之后,自旋控制单元40开始获取公用资源13的占有权的处理。

在信号量获取处理中,首先,自旋控制单元40通过使用独占加载指令(加载链接)来从信号量12获得被保持在信号量12中的信号量信息(步骤s12)。自旋控制单元40将从信号量12所获得的信号量信息与在信号量比较数据寄存器54中所存储的值“0”相比较(步骤s13)。

当在步骤s13的比较处理中两条信息相匹配时,自旋控制单元40通过使用独占存储指令(存储条件句)将从虚拟机所给予的信号量信息(例如,在信号量锁定数据寄存器55中所存储的信号量锁定数据)写入信号量12来执行信号量获取处理(步骤s14)。自旋控制单元40根据成功获取信号量来将自旋锁定状态寄存器52的值(例如,自旋锁定状态信息)设置为成功值(步骤s15和s16)。自旋控制单元40将信号量中断s_int输出到处理器核心20(步骤s17)。这将在处理器核心20上进行操作的虚拟机从虚拟机31切换为虚拟机32。

另一方面,当在步骤s13的比较处理中两条信息不匹配时或者当在步骤s15中所确定的获取信号量失败时,自旋控制单元40重复从步骤s11到步骤s15的处理,直到初步设置已过的超时时间(步骤s18)。提供超时时间以防止处理不前进,并且优选地,将超时时间设置为比另一虚拟机取消信号量获取状态的时间足够长。在信号量管理单元21即使在超时时间已过之后也无法获取信号量的情况下,自旋控制单元40利用超时值来更新自旋锁定状态寄存器52的值(例如,自旋锁定状态信息)(步骤s19)。自旋控制单元40将信号量中断s_int输出到处理器核心20,并且通知虚拟机获取信号量失败(步骤s20)。响应于步骤s20或者s17中的处理完成,信号量管理单元21结束自旋锁定处理。

在上文的描述中,当由虚拟机(或者预定处理单元)无法获取公用资源13的占有权时,根据第一实施例的半导体器件1将在处理器核心20上的处理切换为除了生成占有权获取请求的虚拟机之外的虚拟机,并且通过使用信号量管理单元21来执行最初由虚拟机所执行的自旋锁定处理。当通过信号量管理单元21的操作成功获得公用资源13的占有权时,根据第一实施例的半导体器件1将在处理器核心20上的处理从在该时间点处于操作状态的虚拟机切换为生成占有权获取请求的虚拟机。

通过这种处理,根据第一实施例的半导体器件1防止了虚拟机的处理免于在虚拟机执行自旋锁定处理时延迟,并且可以提高半导体器件的处理效率。

例如,在专利文献1的技术中,虚拟机在被以预定时间间隔切换的同时交替地进入操作状态。因此,在专利文献1的技术中,在当虚拟机中的一个虚拟机从信号量获得占有权时该处理从虚拟机中的一个虚拟机切换为另一虚拟机的情况下,另一虚拟机无法从信号量获得公用资源的占有权,并且执行重复获得独占权的处理的自旋锁定处理。因此,专利文献1的技术具有以下问题:直到由虚拟机中的一个虚拟机释放占有权,另一虚拟机的自旋锁定处理继续,并且另一虚拟机的处理不前进。然而,在根据第一实施例的半导体器件1中,解决了虚拟机的处理不像在专利文献1中所描述的技术中那样前进的问题。

第二实施例

在第二实施例中,将描述作为根据第一实施例的半导体器件1的另一模式的半导体器件2。图5是根据第二实施例的半导体器件2的框图。与在第一实施例中的那些附图标记相同的附图标记被指定给与在第一实施例中所描述的那些组件相同的组件,并且将不给予重复的描述。

如图5中所图示,通过向根据第一实施例的半导体器件1添加处理器单元10b来获得根据第二实施例的半导体器件2。在图5中,图1中所图示的处理器单元10的附图标记被设置为10b。处理器单元10b可以是如处理器单元10一样被逻辑地配置的虚拟机的处理器单元或者是没有被配置的虚拟机并且执行单一操作的处理器单元。即,在根据第二实施例的半导体器件2中,处理器单元10a和10b中的至少一个处理器单元具有与处理器单元10的配置相同的配置就足够了。

随后,将描述根据第二实施例的半导体器件2的操作。图6是根据第二实施例图示半导体器件的操作的时序图。在图6所图示的示例中,处理器单元10b(图6中的cpu_b)获取公用资源13的占有权,并且使用公用资源13来执行处理。

之后,处理器单元10a(图6中的cpu_a)的虚拟机31向信号量12生成占有权获取请求(图6中的锁定请求lr(vm0))。然而,公用资源13的占有权已经由处理器单元10b获得,使得信号量管理单元21生成信号量中断s_int以将在处理器核心20上进行操作的虚拟机从虚拟机31切换为虚拟机32。信号量管理单元21开始自旋锁定处理。

之后,处理器单元10b释放公用资源13的占有权。当信号量管理单元21成功获取公用资源13的占有权时,信号量管理单元21输出信号量中断s_int。响应于信号量中断s_int,虚拟机管理单元30将在处理器核心20上进行操作的虚拟机从虚拟机32重新设置为虚拟机31。因此,虚拟机31可以使用公用资源13来继续处理。

如上文所描述,在根据第二实施例的半导体器件2中,提供了与被设置有信号量管理单元21的处理器单元10a不同的处理器单元10b。同样在这种情况下,由于处理器单元10a被设置有信号量管理单元21,因此,根据第二实施例的半导体器件2可以防止虚拟机31和32的处理免于被延迟,并且提高半导体器件的处理效率。

根据第二实施例的半导体器件2的配置被总结如下。该半导体器件具有多个处理器10a和10b、由多个处理器所共享的公用资源13、以及将公用资源13的占有权给予由多个处理器所执行的处理的每个单元的信号量12。当通过由信号量管理单元21的处理器所执行的第一处理来获取公用资源的占有权失败时,信号量管理单元21将处理从第一处理切换为第二处理,并且重复向信号量获取占有权的处理,直到可以由第一处理获取公用资源13的占有权。响应于从由第一处理获取公用资源的占有权从失败变为成功,信号量管理单元21将由处理器所执行的处理从第二处理切换为第一处理。

执行第一处理和第二处理的处理器具有第一虚拟机和第二虚拟机以及在切换第一虚拟机和第二虚拟机的同时控制操作的虚拟机管理单元。

虽然已经基于实施例具体描述了本文中由本发明人所实现的本发明,但是显然地,本发明不限于前述实施例,而是在不脱离主旨的情况下,可以对其进行各种改变。

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