CN109614218B - 半导体器件 - Google Patents

半导体器件 Download PDF

Info

Publication number
CN109614218B
CN109614218B CN201811069775.9A CN201811069775A CN109614218B CN 109614218 B CN109614218 B CN 109614218B CN 201811069775 A CN201811069775 A CN 201811069775A CN 109614218 B CN109614218 B CN 109614218B
Authority
CN
China
Prior art keywords
virtual machine
semaphore
management unit
state
processor
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.)
Active
Application number
CN201811069775.9A
Other languages
English (en)
Other versions
CN109614218A (zh
Inventor
备后秀和
安达浩次
汤山洋一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Publication of CN109614218A publication Critical patent/CN109614218A/zh
Application granted granted Critical
Publication of CN109614218B publication Critical patent/CN109614218B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2033Failover techniques switching over of hardware resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/85Active fault masking without idle spares

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)

Abstract

本发明涉及一种半导体器件。该半导体器件包括:由在处理器上所执行的多个处理共同使用的公用资源;信号量,控制公用资源的占有权;以及信号量管理单元,响应于在处理器上所执行的处理的请求而执行向信号量获取公用资源的占有权的处理。当从多个处理中的第一处理接收到获取公用资源的占有权的请求但是无法获得占有权时,信号量管理单元将在处理器上所执行的处理切换为第二处理,重复地执行获取由第一处理向信号量所请求的占有权的处理,以及当获得由第一处理所请求的占有权时,将在处理器上的处理从第二处理切换为第一处理。

Description

半导体器件
相关申请的交叉引用
包括本说明书、附图和摘要的于2017年10月4日提交的日本专利申请No.2017-194248的公开内容通过引用以其整体并入本文。
技术领域
本发明涉及一种半导体器件,以及例如涉及一种具有由多个处理共同使用的公用资源(common resource)的半导体器件。
背景技术
近年来,在半导体器件(诸如执行程序的处理器)中,通过使用诸如使用多个运算核心或者在单一运算核心上使用虚拟机的逻辑配置等方法来并行地执行处理。在执行并行处理的半导体器件中,存在单一资源(例如,存储器、DAC、定时器等)被多个处理共同使用的情况。共同使用的资源将被称为公用资源。在使用公用资源的情况下,当使用公用资源而多个处理没有进行限制时,由单一处理所生成的处理结果可能被另一处理破坏,或者另一处理基于单一处理的处理结果来进行操作并且出现错误的操作。因此,在使用公用资源的情况下,为了避免处理之间的操作干扰,公用资源独占控制(exclusion control)被执行。美国专利No.6,792,497(专利文献1)公开了对供应资源的独占控制的一个示例。
在专利文献1中,两个虚拟机被配置在单一处理器上,并且这两个虚拟机访问单一公用资源。在专利文献1中,通过使用执行公用资源独占控制的信号量来执行对公用资源的独占控制。
发明内容
然而,在专利文献1中所描述的技术具有如下问题:虽然可以执行对公用资源的独占控制,但是如此独占地使用公用资源集的效率较低,并且半导体器件的处理能力不能被完全表现出来。
根据说明书和附图的描述,其他问题和新颖特征将变得显而易见。
根据一个实施例,一种半导体器件包括:在处理器上所执行的多个处理中共同使用的公用资源;信号量(semaphore),控制公用资源的占有权(possessory right);以及信号量管理单元,响应于在处理器上所执行的处理的请求而对信号量执行获取公用资源的占有权的处理。当从多个处理中的第一处理接收到获取公用资源的占有权的请求、并且占有权不能被获得时,信号量管理单元执行将在处理器上所执行的处理切换为第二处理的控制以及重复执行由第一处理所请求的占有权获取处理。当获得由第一处理所请求的占有权时,信号量管理单元执行将在处理器上所执行的处理从第二处理切换为第一处理的控制。
根据一个实施例,一种半导体器件,包括:处理器,第一虚拟机和第二虚拟机被逻辑地配置在上述处理器中;公用资源,由上述第一虚拟机和上述第二虚拟机所共享;以及信号量,上述信号量将上述公用资源的占有权给予上述第一虚拟机和上述第二虚拟机的其中一个虚拟机,其中上述处理器包括:虚拟机管理单元,将处于操作状态的虚拟机在上述第一虚拟机与上述第二虚拟机之间切换;以及信号量管理单元,以及其中当上述第一虚拟机和上述第二虚拟机的其中一个虚拟机获取上述公用资源的上述占有权失败时,上述信号量管理单元指令上述虚拟机管理单元将处于上述操作状态的上述虚拟机从上述虚拟机中的上述一个虚拟机切换为另一虚拟机,以及重复由上述虚拟机中的上述一个虚拟机获取上述公用资源的上述占有权的处理,以及其中,响应于获取关于上述虚拟机中的上述一个虚拟机的上述公用资源的上述占有权从失败改变为成功,上述信号量管理单元指令上述虚拟机管理单元将处于上述操作状态的上述虚拟机从上述另一虚拟机切换为上述虚拟机中的上述一个虚拟机。其中上述信号量管理单元具有信号量比较数据寄存器,上述信号量比较数据寄存器存储关于由上述信号量向其给予上述占有权的上述虚拟机的第一信号量信息,以及其中上述信号量管理单元将在上述信号量比较数据寄存器中所存储的上述第一信号量信息与第二信号量信息相比较,以及当上述两条信息不匹配时,使用上述第二信号量信息来周期性地重复获取信号量,其中向来自请求获取对于上述信号量的上述占有权的上述虚拟机的上述信号量生成上述第二信号量信息。其中上述第二信号量信息包括以下至少一项:标识生成上述第二信号量信息的虚拟机的虚拟机标识符、标识在上述虚拟机上所处理的应用软件的应用标识符、以及标识有关在上述虚拟机上所处理的上述应用软件的代码的步骤的步骤标识符。其中请求获取上述占有权的上述虚拟机参照为上述信号量管理单元所提供的自旋锁定状态寄存器,来确定是否获得其本身所请求的上述占有权。其中当对上述信号量执行关于上述第一虚拟机和上述第二虚拟机的其中一个虚拟机的上述占有权获取处理、并且从上述另一虚拟机请求上述占有权获取处理时,上述信号量管理单元向上述另一虚拟机通知忙碌状态。其中还包括第一处理器和第二处理器,上述第一处理器和上述第二处理器中的至少一个处理器具有与上述处理器的配置相同的配置,其中上述信号量将上述公用资源的上述占有权给予上述第一处理器和上述第二处理器中的任何一个处理器,以及其中当对上述信号量执行关于上述第一虚拟机和上述第二虚拟机中的任何一个处理器的上述占有权获取处理、并且从上述另一虚拟机请求上述占有权获取处理时,上述信号量管理单元向上述另一虚拟机通知忙碌状态。
根据一个实施例,一种半导体器件,包括:多个处理器;公用资源,由上述多个处理器所共享;以及信号量,上述信号量将上述公用资源的占有权给予由上述多个处理器所执行的处理的每个单元,其中上述多个处理器中的至少一个处理器具有信号量管理单元,以及其中当通过由上述信号量管理单元的上述处理器所执行的第一处理来获取上述公用资源的上述占有权失败时,上述信号量管理单元将上述处理从上述第一处理切换为第二处理,以及重复向上述信号量获取上述占有权的处理,直到通过上述第一处理上述公用资源的上述占有权能够被获取,以及其中,响应于通过上述第一处理获取上述公用资源的上述占有权从失败改变为成功,上述信号量管理单元将由上述信号量管理单元的上述处理器所执行的上述处理从上述第二处理切换为上述第一处理。其中执行上述第一处理和上述第二处理的处理器包括:第一虚拟机、第二虚拟机、以及在上述第一虚拟机与上述第二虚拟机之间切换的同时控制操作的虚拟机管理单元。
根据本发明的实施例,提高了虚拟机的处理效率,以及可以提高半导体器件的处理能力。
附图说明
图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将由处理器所执行的处理从第二处理切换为第一处理。
执行第一处理和第二处理的处理器具有第一虚拟机和第二虚拟机以及在切换第一虚拟机和第二虚拟机的同时控制操作的虚拟机管理单元。
虽然已经基于实施例具体描述了本文中由本发明人所实现的本发明,但是显然地,本发明不限于前述实施例,而是在不脱离主旨的情况下,可以对其进行各种改变。

Claims (6)

1.一种半导体器件,包括:
处理器,第一虚拟机和第二虚拟机被逻辑地配置在所述处理器中;
公用资源,由所述第一虚拟机和所述第二虚拟机所共享;以及
信号量,所述信号量将所述公用资源的占有权给予所述第一虚拟机和所述第二虚拟机的其中一个虚拟机,
其中所述处理器包括:
虚拟机管理单元,将所述处理器的状态在第一状态和第二状态之间切换,所述第一状态是其中所述第一虚拟机处于操作状态、并且所述第二虚拟机处于非操作状态的状态,所述第二状态是其中所述第一虚拟机处于非操作状态、并且所述第二虚拟机处于操作状态的状态;以及
信号量管理单元,
其中当来自所述第一虚拟机的对所述公用资源的所述占有权的获取请求在所述第一状态中失败时,所述信号量管理单元指令所述虚拟机管理单元将所述处理器的所述状态从所述第一状态切换到所述第二状态,并且在所述第二状态中重复所述获取请求,以及
其中当所述获取请求在所述第二状态中通过所述信号量管理单元而成功时,所述信号量管理单元指令所述虚拟机管理单元将所述处理器的所述状态从所述第二状态切换到所述第一状态。
2.根据权利要求1所述的半导体器件,其中所述第一虚拟机参照为所述信号量管理单元所提供的自旋锁定状态寄存器,来确定是否获得所述占有权。
3.根据权利要求1所述的半导体器件,其中在由所述信号量管理单元处理所述获取请求期间,当从所述第二虚拟机发出对所述公用资源的所述占有权的获取请求时,所述信号量管理单元向所述第二虚拟机通知忙碌状态。
4.一种半导体器件,包括:
处理器,第一虚拟机和第二虚拟机被逻辑地配置在所述处理器中;
公用资源,由所述第一虚拟机和所述第二虚拟机所共享;以及
信号量,所述信号量将所述公用资源的占有权给予所述第一虚拟机和所述第二虚拟机的其中一个虚拟机,
其中所述处理器包括:
虚拟机管理单元,将处于操作状态的虚拟机在所述第一虚拟机与所述第二虚拟机之间切换;以及
信号量管理单元,
当所述第一虚拟机和所述第二虚拟机的其中一个虚拟机获取所述公用资源的所述占有权失败时,所述信号量管理单元指令所述虚拟机管理单元将处于所述操作状态的所述虚拟机从所述虚拟机中的所述一个虚拟机切换为另一虚拟机,以及重复由所述虚拟机中的所述一个虚拟机获取所述公用资源的所述占有权的处理,以及
其中,响应于获取关于所述虚拟机中的所述一个虚拟机的所述公用资源的所述占有权从失败改变为成功,所述信号量管理单元指令所述虚拟机管理单元将处于所述操作状态的所述虚拟机从所述另一虚拟机切换为所述虚拟机中的所述一个虚拟机,
其中所述信号量管理单元具有信号量比较数据寄存器,所述信号量比较数据寄存器存储关于由所述信号量向其给予所述占有权的所述虚拟机的第一信号量信息,以及
其中所述信号量管理单元将在所述信号量比较数据寄存器中所存储的所述第一信号量信息与第二信号量信息相比较,以及当所述第一信号量信息和所述第二信号量信息不匹配时,使用所述第二信号量信息来周期性地重复获取信号量,其中向来自请求获取对于所述信号量的所述占有权的所述虚拟机的所述信号量生成所述第二信号量信息。
5.根据权利要求4所述的半导体器件,其中所述第二信号量信息包括以下至少一项:标识生成所述第二信号量信息的虚拟机的虚拟机标识符、标识在所述虚拟机上所处理的应用软件的应用标识符、以及标识有关在所述虚拟机上所处理的所述应用软件的代码的步骤的步骤标识符。
6.一种半导体器件,包括:
第一处理器,第一虚拟机和第二虚拟机被逻辑地配置在所述第一处理器中;
第二处理器;
公用资源,由所述第一处理器和所述第二处理器所共享;以及
信号量,所述信号量将所述公用资源的占有权给予所述第一虚拟机、所述第二虚拟机和所述第二处理器中的一者,
其中所述第一处理器和所述第二处理器中的至少一个处理器具有信号量管理单元,
其中所述第一处理器包括虚拟机管理单元,将所述第一处理器的状态在第一状态和第二状态之间切换,所述第一状态是其中所述第一虚拟机处于操作状态、并且所述第二虚拟机处于非操作状态的状态,所述第二状态是其中所述第一虚拟机处于非操作状态、并且所述第二虚拟机处于操作状态的状态,
其中当来自所述第一虚拟机的对所述公用资源的所述占有权的获取请求在所述第一状态中失败时,所述信号量管理单元指令所述虚拟机管理单元将所述第一处理器的所述状态从所述第一状态切换到所述第二状态,并且在所述第二状态中重复所述获取请求,以及
其中当所述获取请求在所述第二状态中通过所述信号量管理单元而成功时,所述信号量管理单元指令所述虚拟机管理单元将所述第一处理器的所述状态从所述第二状态切换到所述第一状态。
CN201811069775.9A 2017-10-04 2018-09-13 半导体器件 Active CN109614218B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017-194248 2017-10-04
JP2017194248A JP2019067289A (ja) 2017-10-04 2017-10-04 半導体装置

Publications (2)

Publication Number Publication Date
CN109614218A CN109614218A (zh) 2019-04-12
CN109614218B true CN109614218B (zh) 2023-10-24

Family

ID=63667732

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811069775.9A Active CN109614218B (zh) 2017-10-04 2018-09-13 半导体器件

Country Status (6)

Country Link
US (1) US10884882B2 (zh)
EP (1) EP3467654A1 (zh)
JP (1) JP2019067289A (zh)
KR (1) KR20190039461A (zh)
CN (1) CN109614218B (zh)
TW (1) TW201926036A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7207133B2 (ja) * 2019-04-23 2023-01-18 富士通株式会社 情報処理装置、同期装置及び情報処理装置の制御方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105765535A (zh) * 2013-11-27 2016-07-13 思科技术公司 对cpu进行独占受控访问的硬件虚拟化模块

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6401110B1 (en) * 1998-11-30 2002-06-04 International Business Machines Corporation Method for managing concurrent processes using dual locking
US6757769B1 (en) * 2000-11-28 2004-06-29 Emc Corporation Cooperative lock override procedure
US6792497B1 (en) 2000-12-12 2004-09-14 Unisys Corporation System and method for hardware assisted spinlock
US7500036B2 (en) * 2000-12-28 2009-03-03 International Business Machines Corporation Quad aware locking primitive
TWI256553B (en) * 2004-12-17 2006-06-11 Ind Tech Res Inst Apparatus and method for hardware semaphore
JP3976065B2 (ja) * 2006-01-16 2007-09-12 セイコーエプソン株式会社 マルチプロセッサシステム及びマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラム
CN101546275B (zh) * 2008-03-26 2012-08-22 中国科学院微电子研究所 一种获取多处理器硬件信号量的方法
US9201673B2 (en) * 2008-07-30 2015-12-01 Microsoft Technology Licensing, Llc Efficient detection and response to spin waits in multi-processor virtual machines
JP2010092101A (ja) * 2008-10-03 2010-04-22 Renesas Technology Corp 情報処理装置
JP5349072B2 (ja) * 2009-02-17 2013-11-20 パナソニック株式会社 資源排他制御方法および資源排他制御装置
US20130111168A1 (en) * 2011-10-27 2013-05-02 Freescale Semiconductor, Inc. Systems and methods for semaphore-based protection of shared system resources
JP5813554B2 (ja) * 2012-03-30 2015-11-17 ルネサスエレクトロニクス株式会社 半導体装置
JP2014182507A (ja) * 2013-03-18 2014-09-29 Mitsubishi Electric Corp 計算機及び排他制御方法及び排他制御プログラム
US9542238B2 (en) 2013-05-23 2017-01-10 Nxp Usa, Inc. Systems and methods for direct memory access coherency among multiple processing cores

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105765535A (zh) * 2013-11-27 2016-07-13 思科技术公司 对cpu进行独占受控访问的硬件虚拟化模块

Also Published As

Publication number Publication date
CN109614218A (zh) 2019-04-12
KR20190039461A (ko) 2019-04-12
EP3467654A1 (en) 2019-04-10
TW201926036A (zh) 2019-07-01
US10884882B2 (en) 2021-01-05
US20190102268A1 (en) 2019-04-04
JP2019067289A (ja) 2019-04-25

Similar Documents

Publication Publication Date Title
US8892803B2 (en) Interrupt on/off management apparatus and method for multi-core processor
EP3572967B1 (en) Memory protection circuit and memory protection method
KR20120052406A (ko) 펌웨어 이미지 갱신 및 관리
JP2003029985A (ja) マルチスレッド実行方法及び並列プロセッサシステム
KR20200014378A (ko) 직무 관리
US10198365B2 (en) Information processing system, method and medium
CN110162344B (zh) 一种隔离限流的方法、装置、计算机设备及可读存储介质
CN109614218B (zh) 半导体器件
US9367342B2 (en) Optimizing a deactivation process for a virtual machine system
US10540222B2 (en) Data access device and access error notification method
JP2001014215A (ja) プログラム実行装置
CN118174980A (zh) 一种报文处理方法、装置、电子设备、存储介质及车辆
JPH04127261A (ja) マルチプロセッサシステム
US20220156074A1 (en) Electronic device and multiplexing method of spatial
CN114741237A (zh) 一种任务切换方法、装置、设备及存储介质
JP2010026575A (ja) スケジューリング方法およびスケジューリング装置並びにマルチプロセッサシステム
JP6940283B2 (ja) Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム
JPS60114940A (ja) マルチ・タスク制御用デバイス
JP2023091314A (ja) 半導体装置、半導体装置の制御方法及びプログラム
CN117453413A (zh) 资源申请方法、装置、电子设备以及存储介质
JP2024005775A (ja) 電子制御装置、リプロ実施方法及びリプロ実施プログラム
CN115454661A (zh) 一种目标应用的保活方法、装置、设备及介质
CN115952108A (zh) 内存管理方法、装置、电子设备、存储介质及产品
JP2001186212A (ja) 通信端末および媒体
JPH06332789A (ja) 並列処理装置及び共有データのロック方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant