CN109960567A - 半导体设备 - Google Patents
半导体设备 Download PDFInfo
- Publication number
- CN109960567A CN109960567A CN201811554256.1A CN201811554256A CN109960567A CN 109960567 A CN109960567 A CN 109960567A CN 201811554256 A CN201811554256 A CN 201811554256A CN 109960567 A CN109960567 A CN 109960567A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- interrupt
- information
- cpu
- 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.)
- Pending
Links
- 239000004065 semiconductor Substances 0.000 title claims abstract description 56
- 238000012545 processing Methods 0.000 claims abstract description 105
- 230000015654 memory Effects 0.000 claims abstract description 22
- 238000000034 method Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 claims description 2
- 230000009471 action Effects 0.000 abstract description 3
- 230000004048 modification Effects 0.000 description 33
- 238000012986 modification Methods 0.000 description 33
- 238000010586 diagram Methods 0.000 description 20
- 230000000052 comparative effect Effects 0.000 description 19
- 230000000694 effects Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000005259 measurement Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 235000013399 edible fruits Nutrition 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 101100264195 Caenorhabditis elegans app-1 gene Proteins 0.000 description 1
- 240000001439 Opuntia Species 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4818—Priority circuits therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/481—Exception handling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microcomputers (AREA)
- Bus Control (AREA)
- Debugging And Monitoring (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
需要提供一种提高虚拟机的中断能力的半导体设备。半导体设备包括:存储器,用以存储多个虚拟机和用以管理虚拟机的虚拟机管理器;以及CPU,用以执行虚拟机和虚拟机管理器。当关于中断处理虚拟机的信息(第一信息)等于关于活动虚拟机的信息(第二信息)时,CPU使得活动虚拟机执行中断处理。当第一信息不同于第二信息时,CPU使得虚拟机管理器停止活动虚拟机、并且操作中断处理虚拟机以执行中断处理。
Description
相关申请的交叉引用
包括说明书、附图和摘要的于2017年12月25日提交的申请号为2017-247755的日本专利申请的公开通过引用而被整体包括在本文中。
技术领域
本公开涉及一种半导体设备,更特别地,本公开涉及一种配置虚拟机的半导体设备。
背景技术
虚拟化技术使得一件硬件被假设为多件硬件。虚拟化技术通过将称为VMM(虚拟机监控器或虚拟机管理器)的管理软件或管理程序(hypervisor)放置在OS(操作系统)与硬件(诸如处理器或I/O)之间来实施(公开号为2013-210962的日本未审专利申请)。例如,VMM使用调度功能(scheduler function)以周期性地切换多个虚拟机,使得虚拟机被执行。
专利文献1:公开号为2013-210962的日本未审专利申请
专利文献2:申请号为2013-519169的未审PCT申请的日文翻译
发明内容
当允许活动虚拟机接受中断时,非活动虚拟机延迟对中断的响应,因为非活动虚拟机无法接受中断、直到执行从活动虚拟机切换到非活动虚拟机。当允许VMM接受中断时,活动虚拟机延迟对中断的响应,因为没有中断被接受、直到执行从活动虚拟机切换到VMM。这些和其它问题和新颖性特征可以通过参照本公开下面的描述和所附权利要求而容易地确定。
下面的描述简要地解释了根据本公开的代表方面的概述。半导体设备包括:存储器,用以存储多个虚拟机和用以管理虚拟机的虚拟机管理器;以及CPU,用以执行虚拟机和虚拟机管理器。当关于中断处理虚拟机的信息(第一信息)等于关于活动虚拟机的信息(第二信息)时,CPU使得活动虚拟机执行中断处理。当第一信息不同于第二信息时,CPU使得虚拟机管理器停止活动虚拟机、并且操作中断处理虚拟机以执行中断处理。
上述半导体存储器设备可以提高虚拟机的中断能力。
附图说明
图1是示出虚拟机的概念的图;
图2A和图2B是示出根据第一比较示例的由虚拟机接受的中断的图;
图3A和图3B是示出根据第二比较示例的由虚拟机接受的中断的图;
图4A和图4B是示出根据实施例的由虚拟机接受的中断的图;
图5是示出根据工作示例的半导体设备的配置的框图;
图6示出了图5中的半导体设备的一个CPU和一个事件确定单元;
图7是示出图6中的事件确定单元的配置的框图;
图8是示出根据第一修改的关于中断处理VM的信息的确定的框图;
图9示出了图8中的VM信息表;
图10是示出根据第二修改的半导体设备的配置的框图;
图11是示出图10中的事件确定单元的配置的框图;
图12是示出根据第三修改的中断控制器的配置的框图;
图13是示出图12中的事件确定单元的配置的框图;
图14是示出根据第四修改的半导体设备的配置的框图;
图15A、图15B和图15C是示出VMM调度器的操作的时序图;
图16是示出将根据工作示例的半导体设备应用到车辆的示例的框图。
具体实施方式
以下描述参照附图来说明实施例。在附图中,相同的组成元件由相同的附图标记表示,并且为了简洁,可以省略重复的说明。
以下描述参照图1说明虚拟机。图1示出了虚拟机的概念。
如图1所示,例如,一个CPU(物理机)包括由软件程序组成的虚拟机管理器(在下文中称为VMM)。在VMM的控制下的软件程序配置多个虚拟机(在下文中称为VM)。图1示出了三个VM,即第一虚拟机(在下文中称为VM1)、第二虚拟机(在下文中称为VM2)和第三虚拟机(VM3)。VM1、VM2和VM3执行对应的应用程序(App1、App2和App3)。VMM使用调度功能,以周期性地切换待执行的VM1、VM2和VM3。
参照图2A和图2B,以下描述说明接受每个VM上的中断的示例(第一比较示例)。图2A和图2B是示出根据第一比较示例的中断接受的概念图。图2A是示出在VM1的操作期间向VM1发出的中断请求的图。图2B是示出在VM1的操作期间向VM2发出的中断请求的图。在图2A和图2B中,水平的黑色粗箭头表示处理中(执行中)的操作。竖直的细箭头表示切换VM或切换VMM。这同样适用于图3A、图3B、图4A和图4B。
根据如图2A所示的第一比较示例,当在VM1的操作期间向VM1发出中断请求时,VM1可以接受中断。然而,当在VM1的操作期间向VM2发出中断请求时,VM2无法接受中断。根据如图2B所示的第一比较示例,VMM根据调度器来将VM1切换到VMM并且然后切换到VM2,从而开始VM2的操作。只有在此之后,VM2才可以接受中断。
参照图3A和图3B,以下描述说明了接受VMM上的中断的示例(第二比较示例)。图3A和图3B是示出根据第二比较示例的中断接受的概念图。图3A是示出在VM1的操作期间向VM1发出的中断请求的图。图3B是示出在VM1的操作期间向VM2发出的中断请求的图。
根据如图3A所示的第二比较示例,在VM1的操作期间通知VMM向VM1发出的中断请求。VMM将VM1切换到VMM,然后切换到VM1,从而开始VM1的操作。只有在此之后,VM1可以接受中断。根据如图3B所示的第二比较示例,在VM1的操作期间通知VMM向VM2发出的中断请求。VMM将VM1切换到VMM,然后切换到VM2,从而开始VM2的操作。只有在此之后,VM2才可以接受中断。
与一次允许VMM接受中断的第二比较示例相比,根据第一比较示例,活动VM可以直接接受中断,并且可以确保中断能力。然而,当非活动VM被中断时,发生状态被记录在存储器中。当被调度时的VMM读取该状态。通过调度VM,中断被处理。根据第一比较示例,非活动VM对接受中断的响应取决于VM调度循环。第一比较示例不适于确保VM中断的实时能力。
第二比较示例允许VM接受所有中断。与VM调度循环相比,非活动VM可以接收中断,同时确保实时能力。然而,活动VM降低了中断性能,因为中断总是通过VMM的调解而被接受。
参照图4A和图4B,以下描述说明了根据实施例的中断接受。图4A和图4B是示出根据实施例的中断接受的概念图。图4A是示出在VM1的操作期间向VM1发出的中断请求的示图。图4B是示出在VM1的操作期间向VM2发出的中断请求的示图。
根据图4A所示的实施例,当在VM1的操作期间向VM1发出中断请求时,VM1可以接受中断。根据图4B所示的实施例,在VM1的操作期间通知VMM向VM2发出的中断请求。VMM将VM1切换到VMM,然后切换到VM2,从而开始VM2的操作。只有在此之后,VM2才可以接收中断。
当中断被输入到与活动VM相同的VM时,活动VM直接接受中断。当中断被输入到与活动VM不同的VM时,VMM被启动。VMM将处理切换到中断请求被发出到的VM。中断由此被接受。
换言之,CPU接收到活动VM的中断,并且然后允许活动VM接受中断。CPU接收到非活动虚拟机的中断,并且然后允许VMM接受中断。
特别地,根据实施例的半导体设备包括用以存储多个VM和VMM的存储器,以及用以执行VM和VMM的CPU。CPU基于关于针对中断处理的VM的信息(第一信息)和关于活动VM的信息(第二信息)来执行中断处理。即,当关于针对中断处理的VM的信息等于关于活动VM的信息时,CPU允许活动VM执行中断处理。当关于针对中断处理的VM的信息不同于关于活动VM的信息时,CPU允许VMM切换活动VM,并且然后允许活动VM执行中断处理。
当关于处理中断的VM的信息等于关于活动VM的信息时,活动VM本身可以接受中断。与一次允许VMM接受中断的技术(第二比较示例)相比,可以确保中断性能。此外,即使当关于处理中断的VM的信息不同于关于活动VM的信息时,VMM可以接受中断。与在VM调度循环接受中断的技术(第一比较示例)相比,可以确保中断的实时能力。
工作示例
参照图5,以下描述说明了上述实施例的配置。图5是示出根据工作示例的半导体设备的配置的框图。
半导体设备1包括CPU 10、中断请求器(IRS)50、中断控制器(INTC)20和存储器30。CPU 10执行多个VM。中断请求器50生成中断请求。中断控制器20接收来自中断请求器50的中断请求,并将中断请求输出到CPU 10。存储器30存储用于VM和VMM的软件程序。半导体设备1进一步包括事件确定单元(EDU)40、外围单元(PERIPHERAL)60和总线70。事件确定单元40基于关于中断处理VM的信息和关于活动VM的信息,来确定CPU 10的关于中断的行为。总线70连接在CPU 10、存储器30和外围单元60之间。半导体设备1被设置为由单个半导体芯片组成的微控制器。一个或多个CPU10可以是可用的。事件确定单元40对应于CPU 10设置。当CPU 10的数目是m(CPU#1到m)时,事件确定单元40的数目也是m(事件确定单元#1到m)。第一CPU 10(CPU#1)执行VM1至VMn1中多达n1个VM。第m个CPU 10(CPU#m)执行与VM1至VMnm中的多达nm个VM。假设n1和nm是自然数,并且n1可以等于或可以不等于nm。
图5示出了一个存储器30,但是可以使用多个存储器。在存在来自CPU 10的访问路径时,存储器30可以不直接连接到总线70。存储器30可以可用为诸如SRAM的易失性存储器或诸如闪速存储器的非易失性存储器。虽然设置了一个中断控制器20,但是可以存在多个中断控制器,其中多个中断控制器中的每个中断控制器对应于CPU。虽然所有CPU 10可以如所描述的执行多个VM,但是可以存在仅执行一个VM的CPU和不具有VM的CPU的混合。事件确定单元40可以被包括在CPU 10或中断控制器20中。在图5中,中断请求器50表示一个或多个外围单元或外部终端。
图6示出了图5中的半导体设备的一个CPU和一个事件确定单元。
以下描述假设使用一个CPU 10和一个事件确定单元40,并且两个VM在CPU 10上操作。然而,VM的数目不限于两个。
存储器30存储用于VM1、VM2和VMM的软件程序。用于VM1和VM2的程序包括中断子例程(在下文中称为ISR)。用于VMM的程序包括异常处理程序(EHNDL)。ISR包括第一结束代码(ENDC1)和第二结束代码(ENDC2),以分支到子例程的返回目的地。CPU 10被分配用于VM1、VM2和VMM中的一个的软件程序。VMM执行VM1和VM2的分配。CPU 10由寄存器组成,并且包括用以在VMM、VM1和VM2之间执行通信的消息框(MSGBX)11。VMM可以读取并写入到消息框11,并且VM可以从消息框11读取。根据工作示例,消息框11由寄存器组成,并且放置在CPU 10中。然而,例如,消息框11可以被设置为从CPU可访问的存储设备,并且可以被放置在存储器30中、或与总线70连接的外围单元60中。
当从中断请求器50通知中断时,中断控制器20基于中断信息(诸如中断信道号)来确定关于VM处理中断的信息(PVM)。
参照图7,以下描述说明了事件确定单元的示例。图7是示出图6中的事件确定单元的配置的框图。事件确定单元40允许VM比较电路(VCMP)41确定关于活动VM的信息(EVM)是否与关于中断处理VM的信息(PVM)相匹配。事件确定单元40将匹配信息(匹配确定结果)和关于中断处理VM的信息(PVM)作为事件指令(EVNT)输出到CPU 10。
CPU 10接收中断请求(IRQ)和事件指令(EVNT),并且根据事件指令(EVNT)来确定行为。当被包括在事件指令(EVNT)中的匹配确定结果表示匹配时,CPU 10从存储器30读取用于中断处理VM的ISR并执行中断处理。ISR读取消息框11。在这种情况下,VMM存储用以在消息框11中选择第一结束代码(ENDC1)的指令。例如,VMM先前默认存储用以选择第一结束代码(ENDC1)的指令。ISR根据消息框11中的指令来执行第一结束代码(ENDC1)。第一结束代码(ENDC1)包括用以在由ISR中断之前恢复处理的分支,并且被执行以完成中断处理。
当被包括在事件指令(EVNT)中的匹配确定结果表示不匹配时,CPU 10从存储器30读取用于VMM的异常处理程序(EHNDL)。异常处理程序(EHNDL)包括用以切换VM的程序。VMM将中断处理VM分配到CPU 10。分配到CPU 10的VM接受中断请求,并且从存储器30读取其ISR以执行中断处理。ISR读取消息框11。在这种情况下,VMM存储用以在消息框11中选择第二结束代码(ENDC2)的指令。例如,VMM存储用以在切换VM之前在消息框11中选择第二结束代码(ENDC2)的指令。ISR执行第二结束代码(ENDC2)。第二结束代码(ENDC2)包括允许CPU 10执行VMM的处理,并且被执行以操作VMM。VMM执行指定的终止处理。例如,VMM存储用以在消息框11中选择第一结束代码(ENDC1)的指令,并且向CPU10分配在输入中断请求之前执行的VM。
以下描述具体说明了CPU 10执行VM1的示例。中断控制器20基于输入中断请求来确定关于中断处理VM的信息(PVM)。
当关于中断处理VM的信息(PVM)对应于VM1时,来自事件确定单元40的匹配确定结果表示匹配。作为匹配信息和关于中断处理VM的信息(PVM)的VM1被输出为事件指令(EVNT)。CPU 10遵循事件指令(EVNT),并且从存储器30读取用于VM1的ISR以执行中断处理。ISR读取消息框11。在这种情况下,VMM存储用以在消息框11中选择第一结束代码(ENDC1)的指令。ISR根据消息框11中的指令来执行第一结束代码(ENDC1),并且在中断之前返回到该处理。
当关于中断处理VM的信息(PVM)对应于VM2时,来自事件确定单元40的匹配确定结果表示不匹配。作为匹配信息(不匹配信息)和关于中断处理VM的信息(PVM)的VM2被输出为事件指令(EVNT)。CPU 10遵循事件指令(EVNT),并且从存储器30读取用于VMM的异常处理程序(EHNDL)。VMM存储用以在消息框11中选择第二结束代码(ENDC2)的指令,并且将VM2分配到CPU 10。CPU 10从存储器30读取用于VM2的ISR,并且执行中断处理。ISR读取消息框11。在这种情况下,VMM存储用以在消息框11中选择第二结束代码(ENDC2)的指令。ISR根据消息框11中的指令来执行第二结束代码(ENDC2),并且将VMM分配到CPU 10。VMM存储用以在消息框11中选择第一结束代码(ENDC1)的指令,并且将VM1分配到CPU 10。
根据工作示例,前文中的活动VM本身可以接受中断,从而与一次允许VMM接受中断的技术(第二比较示例)相比,可以确保中断性能。即使当执行除了中断目的地之外的VM时,VMM也可以接受中断,从而与在VM调度循环接受中断的技术(第一比较示例)相比,可以确保中断的实时能力。
修改
代表性的修改在下文中进行描述。修改的以下描述假设与用于上述工作示例的相同的附图标记可以用于包括与上述工作示例中说明的那些类似的配置和功能的部件。上述工作示例的描述在技术上不脱离的范围内适用于根据需要的那些部件的描述。在技术上不脱离的范围内,上述工作实例的部件和全部或部分修改根据需要互相可适用。
第一修改
根据工作示例,从诸如外围单元60的中断请求器50或芯片的外部通知中断。然后,中断控制器20基于中断信息(诸如中断信道号)来确定关于VM处理中断的信息(PVM),但不限于此。
参照图8和图9,以下描述解释了根据第一修改的关于中断处理VM的信息(PVM)的确定。图8是示出根据第一修改的关于中断处理VM的信息的确定的框图。图9示出了图8中的VM信息表。
第一修改通过使用中断控制器20A和VM信息表(VMT)80来确定关于中断处理VM的信息(PVM)。中断控制器20A保持用于每个类型的输入中断的属性信息(AI)。VM信息表(VMT)80确定属性信息(AI)与关于中断处理VM的信息(PVM)之间的关系。如图9所示,VM信息表80基于与属性信息(AI)相对应的值,来确定关于中断处理VM的信息(PVM)。在图9中,属性信息(AI)的“0”和“2”指定VM1作为关于中断处理VM的信息(PVM),并且属性信息(AI)的“1”和“3”指定VM2作为关于中断处理VM的信息(PVM)。图9中的示例提供了与属性信息(AI)的值相对应的一个VM,但不限于此。可以指定多个VM。VM信息表(VMT)80可以放置在事件确定单元40内部。
第二修改
根据工作示例的事件确定单元40被简单地配置。然而,如果活动VM不同于中断请求VM,则VM不可避免地被切换。每当发生中断请求,通过切换VM而发生开销(overhead)。可以不执行基本上提交给CPU 10的处理。实际上,所有中断都不重要,并且不需要以切换活动VM为代价来执行。
第二修改可以根据中断的类型来选择是否切换VM。以下描述说明了关于根据第二修改的事件确定单元的图10和图11。图10是示出根据第二修改的半导体设备的配置的框图。图11是示出图10中的事件确定单元的配置的框图。
除了中断控制器20B和事件确定单元40B之外,根据第二修改的半导体设备1B等于根据工作示例的半导体设备1。
中断优先级(INTP)从中断控制器20B输出,并且被输入到事件确定单元40B。事件确定单元40B包括寄存器(REG)44、优先级比较电路(PCMP)42和VM比较电路(VCMP)41。寄存器(REG)44存储指示中断是否高于或等于指定的优先级的阈值(TH)。优先级比较电路(PCMP)42将阈值(TH)与中断优先级(INTP)作比较。VM比较电路(VCMP)41将关于活动VM的信息(EVM)与关于中断处理VM的信息(PVM)作比较。事件确定单元40B进一步包括事件指令生成电路(EVNTG)43和掩模电路(MSKC)45。事件指令生成电路(EVNTG)43根据优先级比较电路42的优先级比较结果(PCO)和VM比较电路41的比较结果(VCO),来生成事件指令(EVNT)。掩模电路(MSKC)45允许或禁止将中断请求(IRQ)发送到CPU 10。比较结果(VCO)提供匹配确定结果和关于中断处理VM的信息(PVM)。事件指令(EVNT)提供事件指令生成结果(VM切换的可用性)和关于中断处理VM的信息(PVM)。阈值(TH)可以通过使用软件程序而从CPU 10被确定到寄存器44,或者可以被固定到硬件。存储阈值(TH)的寄存器44可以包括当能够从软件程序确定阈值(TH)时用以限制来自VM的设置的机制。
第二修改根据中断优先级(INTP)和阈值(TH)来生成优先级比较结果(PCO)。例如,优先级比较结果(PCO)包括指示中断优先级(INTP)是否大于阈值(TH)的输出。事件指令生成电路43根据VM比较电路(VCMP)41的比较结果(VCO)和优先级比较电路42的优先级比较结果(PCO)来生成事件指令(EVNT)。例如,当VM比较电路41的比较结果(VCO)显示不匹配、并且中断优先级(INTP)大于阈值(TH)时,事件指令生成电路43生成事件指令(EVNT)以切换VM,并且生成信号(MSK)以便允许将中断请求(IRQ)输出到CPU 10。当VM比较电路41的结果显示不匹配、并且中断优先级(INTP)小于或等于阈值(TH)时,事件指令生成电路43生成信号(MSK)以便不将中断请求(IRQ)输出到CPU 10。
例如,当VM比较电路41的比较结果(VCO)显示匹配时,事件指令生成电路43生成事件指令(EVNT)以便不切换VM,并且生成信号(MSK)以允许将中断请求(IRQ)输出到CPU 10。
第二修改使用中断优先级(INTP)和阈值(TH)作为切换VM的条件,但不限于此。例如,中断控制器20可以包括用以提供设置的能力,该设置用以确定是否允许用于中断的每个信道启用VM切换。该设置可以被输出到事件确定单元以生成事件指令。
如果活动VM不同于中断请求VM,则工作示例不可避免地使得VM切换。每当发生中断请求(IRQ),通过切换VM生成开销。可以不执行基本上提交给CPU 10的处理。第二修改基于中断类型来选择VM切换的可用性,从而以停止活动VM的操作为代价来切换受限于需要执行的中断请求(IRQ)的VM。因此,可以防止发生过多的开销发生,并且改善中断处理性能。不要求VM切换的中断不需要选择第二结束代码(ENDC2)。ISR可以被配置为执行第一结束代码(ENDC1)而不读取消息框11。
第三修改
根据第二修改,当VM比较电路41的比较结果(VCO)显示不匹配、并且中断优先级(INTP)小于或等于阈值(TH)时,CPU 10不接受最高优先级中断。然而,即使当VM比较电路41的比较结果(VCO)显示匹配时,也可以暂停较低优先级中断,因为该中断优先级(INTP)小于或等于阈值(VH)。
将参照图12和图13来描述解决该问题的示例(第三修改)。图12是示出根据第三修改的中断控制器的配置的框图。图13是示出图12中的事件确定单元的配置的框图。
除了事件确定单元被设置在中断控制器20C内部之外,根据第三修改的半导体设备等于根据第二修改的半导体设备1B。中断控制器20C包括优先级比较电路,以被供应关于活动VM的信息(EVM)。响应于中断控制器20C内部的每个中断请求(IRQ),比较中断优先级(INTP)和阈值(TH)。当不存在与大于阈值(TH)的中断优先级(INTP)相对应的中断时,输出用于活动VM的中断请求(IRQ)。
特别地,中断控制器20C包括与用于第一信道的中断请求器21相对应的事件确定单元23、与用于第二信道的中断请求器22相对应的事件确定单元24、以及中断选择电路(IRQ_SLCT)25。用于第一信道的中断请求器21将中断请求(IRQ)、关于中断处理VM的信息(PVM)和中断优先级(INTP)输出到事件确定单元23。用于第二信道的中断请求器22将中断请求(IRQ)、关于中断处理VM的信息(PVM)和中断优先级(INTP)输出到事件确定单元24。
类似于根据第二修改的事件确定单元40B,事件确定单元23和24各自包括寄存器(REG)44、优先级比较电路(PCMP)42和VM比较电路(VCMP)41。寄存器(REG)44存储指示中断是否高于或等于指定优先级的阈值(TH)。优先级比较电路(PCMP)42将阈值(TH)与中断优先级(INTP)作比较。VM比较电路(VCMP)41将关于活动VM的信息(EVM)与关于中断处理VM的信息(PVM)作比较。此外,事件确定单元23和24各自包括事件指令生成电路(EVNTG)43C和掩模电路(MSKC)45。事件指令生成电路(EVNTG)43根据优先级比较电路42的优先级比较结果(PCO)和VM比较电路41的比较结果(VCO)来生成事件指令(EVNT)。掩模电路(MSKC)允许或禁止将中断请求(IRQ)发送到CPU 10。比较结果(VCO)提供匹配确定结果和关于中断处理VM的信息(PVM)。事件指令(EVNT)提供事件指令生成结果(VM切换的可用性以及小于或等于阈值的中断优先级)和关于中断处理VM的信息(PVM)。
事件指令生成电路43C根据VM比较电路(VCMP)41的比较结果(VCO)和优先级比较电路42的优先级比较结果(PCO)来生成事件指令(EVNT)。例如,当VM比较电路41的比较结果(VCO)显示不匹配、并且中断优先级(INTP)大于阈值(TH)时,事件指令生成电路43C生成事件指令(EVNT)以切换VM,并且生成信号(MSK)以便允许将中断请求(IRQ)输出到CPU 10。当VM比较电路41的结果显示不匹配、并且中断优先级(INTP)小于或等于阈值时(TH)时,事件指令生成电路43C生成信号(MSK)以便不将中断请求(IRQ)输出到CPU 10。
例如,当VM比较电路41的比较结果(VCO)显示匹配、并且中断优先级(INTP)大于阈值(TH)时,事件指令生成电路43C生成事件指令(EVNT)以便不切换VM,并且生成信号(MSK)以允许将中断请求(IRQ)输出到CPU 10。当VM比较电路41的结果显示匹配、并且中断优先级(INTP)小于或等于阈值(TH)时,事件指令生成电路43C生成指示中断优先级(INTP)小于或等于阈值(TH)并且用以不切换VM的事件指令(EVNT),并且生成信号(MSK)以允许将中断请求(IRQ)输出到CPU 10。
中断选择电路25接收来自事件确定单元23和24的中断请求以及被生成用以切换VM的事件指令(EVNT),中断请求即包括来自VM比较电路41的比较结果(VCO)中的匹配的中断请求、或包括来自VM比较电路41的比较结果(VCO)的不匹配的中断请求。中断选择电路25从接收到的中断请求中选择分配了最高中断优先级的中断请求(IRQ),并且将中断请求(IRQ)和事件指令(EVNT)输出到CPU 10。此时,事件指令(EVNT)包括关于VM的信息(PVM),该信息处理VM切换和中断的存在或不存在。
将在下面描述的情况假设如下。用于第一信道的中断请求器21输出中断请求(IRQ)、作为关于中断处理VM的信息(PVM)的VM1、以及小于或等于阈值(TH)的中断优先级(INTP)。用于第二信道的中断请求器22输出中断请求(IRQ)、作为关于中断处理VM的信息(PVM)的VM2、以及小于或等于阈值(TH)的中断优先级(INTP)。关于活动VM的信息(EVM)是VM2。
根据来自用于第一信道的中断请求器21的中断请求(IRQ),关于中断处理VM的信息(PVM)不同于关于活动VM的信息(EVM)。中断优先级(INTP)小于或等于阈值(TH)。因此,事件确定单元23不将中断请求(IRQ_CH1)和事件指令(EVNT_CH1)输出到中断选择电路25(例如,IRQ_CH1=0以及EVNT_CH1=0)。
根据来自用于第二信道的中断请求器22的中断请求(IRQ),关于中断处理VM的信息(PVM)匹配关于活动VM的信息(EVM)。中断优先级(INTP)小于或等于阈值(TH)。因此,事件确定单元24将中断请求(IRQ_CH2)和事件指令(EVNT_CH2)输出到中断选择电路25。在这种情况下,事件指令(EVNT_CH2)指示没有VM切换。中断优先级小于或等于阈值。关于中断处理VM的信息(PVM)对应于VM2。中断请求被指定为IRQ_CH2=1。
中断选择电路25将来自事件确定单元24的中断请求(IRQ_CH2)和事件指令(EVNT_CH2)输出到CPU 10。因此,用于第二信道的中断请求(IRQ)和事件指令(EVNT)被选择。在这种情况下,事件指令(EVNT)指示没有VM切换。关于中断处理VM的信息(PVM)对应于VM2。即使用于第一信道的中断优先级(INTP)高于用于第二信道的中断优先级(INTP),用于第二信道的中断请求(IRQ)也被输出到CPU 10。换言之,分配了高的中断优先级(INTP)、无VM切换以及关于中断处理VM的信息(PVM)不同于关于活动VM的信息(EVM)的中断请求(IRQ)不妨碍分配了低的中断优先级(INTP)、无VM切换以及关于中断处理VM的信息(PVM)匹配关于活动VM的信息(EVM)的中断请求(IRQ)被输出到CPU 10。
第四修改
工作示例可以通过允许事件指令(EVNT)生成转换到VMM的异常、然后执行第二结束代码(ENDC2)、将处理返回到VMM、并且在中断之前将VM分配到CPU 10,来保持VM调度器的周期性控制。然而,在已经执行ISR的时间内消耗了用于中断的VM的时间窗口。
参照图14、图15A、图15B和图15C,以下描述说明了用以解决该问题的根据第四修改的半导体设备。图14是示出根据第四修改的半导体设备的配置的框图。图15A、图15B和图15C是示出VMM调度器的操作的时序图。图15A示出了VMM调度器的基本操作。图15B示出了根据工作示例的在接受中断时的操作。图15C示出了根据第四示例的操作。
在说明第四修改之前,以下描述说明了VM调度器的基本操作。如图15A所示,VM调度器的一个系统周期(SYSTEM PERIOD)以VMM操作开始。然后,操作切换到VM1并执行VM1。在从VM1操作的开始经过指定时间之后,操作将VM1切换到VMM,并且然后切换到VM2以执行VM2。在从VM2操作的开始经过指定时间之后,VM2切换到VMM。系统周期余量被设置在一个系统周期结束时。
以下描述说明了在根据工作示例的半导体设备的配置中、在VM1的操作期间接受来自VM2的中断请求时的VM调度器操作。如图15B所示,用于VM调度器的一个系统周期(SYSTEM PERIOD)以VMM操作开始。然后,操作切换到VM1并执行VM1。为了接受来自VM2的中断请求,操作将VM1切换到VMM,并且然后切换到VM2以执行中断处理。在VM2上的中断处理之后,操作将VM2切换到VMM,并且然后切换到VM1以执行VM1。在从第一VM1操作的开始经过指定时间之后,VM1切换到VMM,并且然后切换到VM2以被执行。在从VM2操作的开始经过指定时间之后,VM2切换到VMM。系统周期余量被设置在一个系统周期结束时。
第四修改在VMM执行用于与中断请求相对应的VM的ISR之前激活性能测量功能。例如,性能测量功能包括通过使用定时器(TIMER)61来对VM执行时间进行计数的功能,并且可以从VMM启动VM并读取计数器值。性能测量功能包括按需防止VM控制计数器的机制。VMM执行用于与中断请求相对应的VM的ISR,并且然后确认性能测量功能的结果。例如,在一个系统周期结束时的系统周期余量期间提供用以处理用于与中断请求相对应的VM的ISR所消耗的时间(Tcount),并且在处理用于与中断请求相对应的VM的ISR所消耗的时间(Tcount)内执行中断的VM。
特别地,以下描述说明了在根据第四修改的半导体设备的配置中、在VM1的操作期间接受来自VM2的中断请求时的VM调度器操作。如图15C所示,VM调度器的一个系统周期(SYSTEM PERIOD)以VMM操作开始。然后,操作切换到VM1并执行VM1。为了接受来自VM2的中断请求,操作将VM1切换到VMM,并且然后切换到VM2以执行中断处理。将VM1切换到VMM开始对定时器(TIMER)61计数(COUNT START)。在VM2上的中断处理之后,操作将VM2切换到VMM,并且然后切换到VM1以执行VM1。将VMM切换到VM1停止对定时器(TIMER)61计数(COUNTSTOP)。在从第一VM1操作的开始经过指定时间之后,VM1切换到VMM,并且然后切换到VM2以被执行。在从VM2操作的开始经过指定时间之后,VM2切换到VMM。在一个系统周期结束时的系统周期余量期间用以处理用于与中断请求相对应的VM2的ISR所消耗的时间(Tcount)内执行VM1。因此,可以确保由VMM和VM2中断的用于VM1的时间窗口。
通过将用以处理用于与中断请求相对应的VM2的ISR所消耗的时间(Tcount)添加到用于VMM调度器的周期性控制计数器(诸如CPU 10中的定时器(TIMER)12),用于中断的VM的时间窗口可以被恢复到原始估计的长度。该技术延长了用以预先形成VM调度器的一个周期的时间。然而,可以为VM调度器提供看门狗定时器(WDT)62以保护执行时间。
应用
图16是示出将根据工作示例的半导体设备应用于车辆的示例的框图。如图16所示,车辆200包括半导体设备(SEMICONDUCTOR DEVICE)1、传感器(SENSOR)210和相机(CAMERA)220。半导体设备1被设置为车载芯片。传感器210获取关于车辆200的指定信息。相机220获取车辆周围的视频。半导体设备1被供应有由传感器210和相机220获取的信息。半导体设备1基于由传感器210和相机220获取的信息来执行指定的处理。半导体设备1可以由根据第一修改至第四修改的半导体设备中的任意一个替换。
虽然已经描述了由发明人创建的本发明的实施例、工作示例和修改,但是应该清楚地理解,本发明不限于该实施例、工作示例和修改,而是可以以其他方式进行各种修改。
Claims (20)
1.一种半导体设备,包括:
存储器,存储多个虚拟机和用以管理所述虚拟机的虚拟机管理器;以及
CPU,执行所述虚拟机和所述虚拟机管理器,
其中当发出将要由活动虚拟机之外的虚拟机处理的中断请求时,所述虚拟机管理器停止所述活动虚拟机、并且切换到处理中断的所述虚拟机。
2.根据权利要求1所述的半导体设备,进一步包括:
消息框,执行所述虚拟机之间的通信,
其中所述虚拟机中的每个虚拟机包括中断处理子例程,所述中断处理子例程包括第一结束代码和第二结束代码,以分支到所述中断处理子例程的返回目的地,
其中所述第一结束代码包括:用以返回到在所述中断被处理之前的处理的分支处理,
其中所述第二结束代码包括:用以使得所述CPU执行所述虚拟机管理器的处理,以及
其中所述虚拟机管理器包括:用以将所述第一结束代码设置到所述消息框作为初始设置的处理。
3.根据权利要求2所述的半导体设备,
其中所述虚拟机管理器包括异常处理程序,
其中所述中断请求具有指示处理所述中断请求的所述虚拟机的第一信息,
其中,当所述第一信息等于指示所述活动虚拟机的第二信息时,所述CPU执行用于所述活动虚拟机的所述中断处理子例程;以及
其中,当所述第一信息不同于所述第二信息时,执行所述异常处理程序以将由所述第一信息指示的所述虚拟机分配到所述CPU,并且所述CPU执行由所述第一信息指示的用于所述虚拟机的中断处理子例程。
4.根据权利要求3所述的半导体设备,
其中,当所述第一信息等于所述第二信息时,用于所述活动虚拟机的所述中断处理子例程包括:用以根据所述消息框的指令来执行所述第一结束代码的处理;
其中,当所述第一信息不同于所述第二信息时,所述虚拟机管理器包括:用以存储在所述消息框中选择所述第二结束代码的指令的处理;以及
其中,当所述第一信息不同于所述第二信息时,用于由所述第一信息指示的所述虚拟机的所述中断处理子例程包括:用以根据所述消息框中的所述指令来执行所述第二结束代码的处理。
5.根据权利要求4所述的半导体设备,
其中所述第二结束代码包括:存储在所述消息框中选择所述第一结束代码的指令、并且将在输入所述中断请求之前已经活动的虚拟机分配到所述CPU的处理。
6.根据权利要求1所述的半导体设备,进一步包括:
将事件指令输出到所述CPU的装置,
其中所述中断请求具有指示处理所述中断请求的所述虚拟机的第一信息,
其中所述事件指令提供:所述中断请求的信息、所述第一信息、以及关于所述第一信息是否等于指示所述活动虚拟机的第二信息的信息。
7.根据权利要求6所述的半导体设备,进一步包括:
中断控制器,确定来自中断信道的所述第一信息,
其中所述装置包括比较电路,所述比较电路将来自所述中断控制器的所述第一信息与来自所述CPU的所述第二信息作比较。
8.根据权利要求6所述的半导体设备,进一步包括:
中断控制器,包括与中断请求类型相对应的属性信息;以及
虚拟机信息表,存储所述属性信息与所述第一信息之间的关系,
其中所述装置包括比较电路,所述比较电路将来自所述虚拟机信息表的所述第一信息与来自所述CPU的所述第二信息作比较。
9.根据权利要求6所述的半导体设备,进一步包括:
中断控制器,包含从中断信道确定的中断优先级和所述第一信息,
其中所述装置包括:
比较电路,将来自所述中断控制器的所述第一信息与来自所述CPU的所述第二信息作比较;
寄存器,存储指示指定优先级的阈值;
优先级比较电路,将所述阈值与所述中断优先级作比较;
事件指令生成电路,根据所述优先级比较电路的优先级比较结果和所述比较电路的比较结果来生成所述事件指令;以及
掩模电路,基于来自所述事件指令生成电路的信号来执行以下操作之一:允许将中断请求发送到所述CPU,以及禁止将所述中断请求发送到所述CPU。
10.根据权利要求9所述的半导体设备,
其中,当所述比较电路的所述比较结果显示匹配、并且所述中断优先级大于所述阈值时,所述事件指令生成电路生成所述事件指令以不切换虚拟机,并且把允许将中断请求输出到所述CPU的信号输出到所述掩模电路;以及
其中,当所述比较电路的比较结果显示匹配、并且所述中断优先级小于或等于所述阈值时,所述事件指令生成电路把禁止将所述中断请求输出到所述CPU的信号输出到所述掩模电路。
11.根据权利要求6所述的半导体设备,
其中所述装置将关于多个中断请求的中断优先级与指示中断是否高于或等于指定优先级的阈值作比较,并且在大于所述阈值的所述中断优先级不可用时将中断请求输出到活动虚拟机。
12.根据权利要求11所述的半导体设备,
其中所述装置包括:
第一事件确定单元,输入所述第一信息、中断优先级、以及来自用于第一信道的中断请求器的中断请求;
第二事件确定单元,输入所述第一信息、中断优先级、以及来自用于第二信道的中断请求器的中断请求;以及
中断选择电路,选择来自所述第一事件确定单元的中断请求和事件指令、以及来自所述第二事件确定单元的中断请求和事件指令;以及
其中所述第一事件确定单元和所述第二事件确定单元中的每个事件确定单元包括:
比较电路,将来自所述中断控制器的所述第一信息与来自所述CPU的所述第二信息作比较;
寄存器,存储所述阈值;
优先级比较电路,将所述阈值与所述中断优先级作比较;
事件指令生成电路,根据所述优先级比较电路的优先级比较结果和所述比较电路的比较结果来生成所述事件指令;以及
掩模电路,基于来自所述事件指令生成电路的信号来执行以下操作之一:允许将中断请求发送到所述CPU,以及禁止将所述中断请求发送到所述CPU。
13.根据权利要求12所述的半导体设备,
其中,当所述比较电路的比较结果显示匹配、并且中断优先级小于或等于所述阈值时,所述事件指令生成电路生成指示所述中断优先级小于或等于所述阈值的以及没有虚拟机切换的事件指令、并且把允许将中断请求输出到所述CPU的信号输出到所述掩模电路。
14.根据权利要求1所述的半导体设备,
其中,当没有可用的中断请求时,所述虚拟机管理器在一个系统周期内将所述虚拟机中的每个虚拟机分配到所述CPU、并且在所述虚拟机中的每个虚拟机之前将所述虚拟机管理器分配到所述CPU;以及
其中在所述一个系统周期的结束时包括余量。
15.根据权利要求14所述的半导体设备,
当通过所述中断请求在分配的周期的中间切换虚拟机时,将所述余量分配到所述虚拟机。
16.一种半导体设备,包括:
存储器,存储第一虚拟机和第二虚拟机以及用以管理所述第一虚拟机和所述第二虚拟机的虚拟机管理器;以及
CPU,执行所述第一虚拟机和所述第二虚拟机以及所述虚拟机管理器,
其中,当在所述第一虚拟机的操作期间接收到对所述第一虚拟机的中断时,所述CPU使得所述第一活动虚拟机接受中断;以及
其中,当在所述第一虚拟机的操作期间接收到对非活动的所述第二虚拟机的中断时,所述CPU启动所述虚拟机管理器、并且使得所述虚拟机管理器将处理切换到所述第二虚拟机以便接受中断。
17.根据权利要求16所述的半导体设备,
其中所述CPU包括消息框;
其中所述第一虚拟机和所述第二虚拟机中的每个虚拟机包括中断处理子例程,所述中断处理子例程包括第一结束代码和第二结束代码,以分支到子例程的返回目的地;
其中所述虚拟机管理器包括异常处理程序;
其中所述第一结束代码包括:用以返回到在从所述中断处理子例程被中断之前的处理的分支处理;
其中所述第二结束代码包括:用以使得所述CPU执行所述虚拟机管理器的处理;以及
其中所述虚拟机管理器包括:用以对使得所述消息框选择所述第一结束代码的指令进行初始化的处理。
18.根据权利要求17所述的半导体设备,
其中,当在所述第一虚拟机的操作期间接收到对所述第一虚拟机的中断时,所述CPU读取用于所述第一虚拟机的中断处理子例程、并且执行中断处理;以及
其中用于所述第一虚拟机的所述中断处理子例程包括:用以根据所述消息框的指令来执行所述第一结束代码的处理。
19.根据权利要求17所述的半导体设备,
其中,当在所述第一虚拟机的操作期间接收到对非活动的所述第二虚拟机的中断时,所述CPU读取用于所述虚拟机管理器的所述异常处理程序;
其中所述异常处理程序将所述第二虚拟机分配给所述CPU,以及所述CPU读取用于所述第二虚拟机的中断处理子例程、并且执行中断处理;
其中所述虚拟机管理器包括:用以存储使得所述消息框选择所述第二结束代码的指令的处理;以及
其中用于所述第二虚拟机的所述中断处理子例程包括:用以根据所述消息框的指令来执行所述第二结束代码的处理。
20.根据权利要求19所述的半导体设备,
其中所述第二结束代码包括:存储在所述消息框中选择所述第一结束代码的指令、并且将在输入中断请求之前已经活动的虚拟机分配到所述CPU的处理。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017-247755 | 2017-12-25 | ||
JP2017247755A JP2019114097A (ja) | 2017-12-25 | 2017-12-25 | 半導体装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109960567A true CN109960567A (zh) | 2019-07-02 |
Family
ID=65010428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811554256.1A Pending CN109960567A (zh) | 2017-12-25 | 2018-12-18 | 半导体设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10936357B2 (zh) |
EP (1) | EP3502887B1 (zh) |
JP (1) | JP2019114097A (zh) |
KR (1) | KR20190077235A (zh) |
CN (1) | CN109960567A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113448773A (zh) * | 2020-03-24 | 2021-09-28 | 横河电机株式会社 | 容错系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102067089A (zh) * | 2008-06-24 | 2011-05-18 | 松下电器产业株式会社 | 虚拟计算机控制装置、虚拟计算机控制程序以及虚拟计算机控制电路 |
US20130042236A1 (en) * | 2011-08-11 | 2013-02-14 | Mellanox Technologies Ltd. | Virtualization of interrupts |
US20130047157A1 (en) * | 2011-08-15 | 2013-02-21 | Fujitsu Limited | Information processing apparatus and interrupt control method |
US20130174148A1 (en) * | 2012-01-01 | 2013-07-04 | International Business Machines Corporation | Enhancing interrupt handling in a virtual environment |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8489789B2 (en) | 2010-02-05 | 2013-07-16 | Advanced Micro Devices, Inc. | Interrupt virtualization |
JP5813554B2 (ja) | 2012-03-30 | 2015-11-17 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US9772868B2 (en) * | 2014-09-16 | 2017-09-26 | Industrial Technology Research Institute | Method and system for handling interrupts in a virtualized environment |
KR20160039846A (ko) * | 2014-10-02 | 2016-04-12 | 한국전자통신연구원 | 인터럽트 처리 시스템 및 인터럽트 처리 방법 |
-
2017
- 2017-12-25 JP JP2017247755A patent/JP2019114097A/ja active Pending
-
2018
- 2018-11-13 US US16/189,449 patent/US10936357B2/en active Active
- 2018-12-18 CN CN201811554256.1A patent/CN109960567A/zh active Pending
- 2018-12-20 KR KR1020180166492A patent/KR20190077235A/ko unknown
- 2018-12-20 EP EP18214989.8A patent/EP3502887B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102067089A (zh) * | 2008-06-24 | 2011-05-18 | 松下电器产业株式会社 | 虚拟计算机控制装置、虚拟计算机控制程序以及虚拟计算机控制电路 |
US20130042236A1 (en) * | 2011-08-11 | 2013-02-14 | Mellanox Technologies Ltd. | Virtualization of interrupts |
US20130047157A1 (en) * | 2011-08-15 | 2013-02-21 | Fujitsu Limited | Information processing apparatus and interrupt control method |
US20130174148A1 (en) * | 2012-01-01 | 2013-07-04 | International Business Machines Corporation | Enhancing interrupt handling in a virtual environment |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113448773A (zh) * | 2020-03-24 | 2021-09-28 | 横河电机株式会社 | 容错系统 |
Also Published As
Publication number | Publication date |
---|---|
US20190196865A1 (en) | 2019-06-27 |
KR20190077235A (ko) | 2019-07-03 |
JP2019114097A (ja) | 2019-07-11 |
EP3502887B1 (en) | 2021-10-27 |
EP3502887A3 (en) | 2019-08-28 |
US10936357B2 (en) | 2021-03-02 |
EP3502887A2 (en) | 2019-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW490638B (en) | Computer for executing plural operating systems | |
US6128641A (en) | Data processing unit with hardware assisted context switching capability | |
JP5405320B2 (ja) | 仮想計算機制御装置、仮想計算機制御方法及び仮想計算機制御プログラム | |
CN107015862B (zh) | 用于具有不同能力的核心的线程和/或虚拟机调度 | |
EP3001616A2 (en) | Techniques for routing service chain flow packets between virtual machines | |
US7793296B2 (en) | System and method for scheduling a multi-threaded processor | |
US7412590B2 (en) | Information processing apparatus and context switching method | |
US10846251B1 (en) | Scratchpad-based operating system for multi-core embedded systems | |
CN114168271B (zh) | 一种任务调度方法、电子设备及存储介质 | |
KR100495240B1 (ko) | 프로세서 시스템 | |
US20120226842A1 (en) | Enhanced prioritising and unifying interrupt controller | |
CN114205176A (zh) | 网络虚拟化服务系统以及网络虚拟化服务器 | |
TWI603265B (zh) | 積體電路射頻 | |
EP3564814A1 (en) | Method and device for starting and operating system, and computer storage medium | |
CN109960567A (zh) | 半导体设备 | |
US11385927B2 (en) | Interrupt servicing in userspace | |
US9672067B2 (en) | Data processing method and system with application-level information awareness | |
US8424013B1 (en) | Methods and systems for handling interrupts across software instances and context switching between instances having interrupt service routine registered to handle the interrupt | |
US9619277B2 (en) | Computer with plurality of processors sharing process queue, and process dispatch processing method | |
CN111124522A (zh) | 一种微内核及宏内核混合的方法及系统 | |
CN113569231B (zh) | 多进程的mpu保护方法、装置及电子设备 | |
CN113806025B (zh) | 数据处理方法、系统、电子装置及存储介质 | |
TWI748513B (zh) | 資料處理方法、系統、電子裝置及存儲介質 | |
JP2004287618A (ja) | オペレーティングシステム起動制御方法、およびその方法をコンピュータに実行させるプログラム、ならびにオペレーティングシステム起動制御装置 | |
US10528391B1 (en) | Execution manager for binary objects operating across private address spaces |
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 |