CN114691296A - 中断处理方法、装置、介质及设备 - Google Patents
中断处理方法、装置、介质及设备 Download PDFInfo
- Publication number
- CN114691296A CN114691296A CN202210253496.8A CN202210253496A CN114691296A CN 114691296 A CN114691296 A CN 114691296A CN 202210253496 A CN202210253496 A CN 202210253496A CN 114691296 A CN114691296 A CN 114691296A
- Authority
- CN
- China
- Prior art keywords
- interrupt
- information
- processed
- list register
- memory
- 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
Images
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
- 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了中断处理方法、装置、介质及设备,该方法包括:获取中断信息;在列表寄存器的当前状态指示列表寄存器不可用时,将中断信息保存至内存;生成并发送模拟软件中断至中断控制器,模拟软件中断用于对内存中的待处理中断信息进行管理以及检测列表寄存器的当前状态;待处理中断信息包括中断信息;当模拟软件中断检测到列表寄存器的当前状态指示列表寄存器由不可用变为可用时模拟软件中断通知中断控制器将内存中保存的待处理中断信息写入列表寄存器,以将待处理中断信息作为虚拟中断并发送至对应的虚拟处理单元。本申请可以有效减少维持中断的使用开销,提升中断处理效率。
Description
技术领域
本申请涉及中断技术领域,具体涉及中断处理方法、装置、介质及设备。
背景技术
相关技术中,人们提出了一种虚拟化技术,能够通过虚拟机监控器(Hypervisor),对物理计算机的CPU(Central Processing Unit,中央处理单元)、内存和硬件设备等进行虚拟化,在一台真实的计算机上虚拟出多台虚拟机(Virtual Machine,VM),并在多台虚拟机上运行不同的操作系统。
在虚拟机监视器中,利用维持中断(Maintenance interrupt,一种物理中断)来追踪处理虚拟机中的一些关键中断事件,如当ARM系统寄存器LR从不可用状态变为可用状态时或中断溢出时则需要产生该维持中断。若中断事件频繁产生而不能及时处理就会增加维持中断的调用频率,增加了虚拟机监视器的维护开销。
发明内容
为了降低对中断的维护开销,本申请提供了中断处理方法、装置、介质及设备。所述技术方案如下:
第一方面,本申请提供了一种中断处理方法,所述方法包括:
获取中断信息;
在列表寄存器的当前状态指示所述列表寄存器不可用时,将所述中断信息保存至内存;
生成并发送模拟软件中断至中断控制器,所述模拟软件中断用于对内存中保存的待处理中断信息进行管理以及检测所述列表寄存器的当前状态;所述待处理中断信息包括所述中断信息;
当所述模拟软件中断检测到所述列表寄存器的当前状态指示所述列表寄存器由不可用变为可用时,所述模拟软件中断通知所述中断控制器将所述内存中保存的待处理中断信息写入所述列表寄存器,以将所述待处理中断信息作为虚拟中断并发送至对应的虚拟处理单元。
可选的,所述方法还包括:
若所述待处理中断信息仍未能成功写入所述列表寄存器,触发维持中断,所述维持中断为用于通知对所述待处理中断信息进行管理的物理中断。
进一步地,所述将所述内存中保存的待处理中断信息写入所述列表寄存器包括:
根据所述待处理中断信息中的优先级信息和中断状态信息,确定目标中断对应的目标中断信息;
将所述目标中断信息优先写入所述列表寄存器。
进一步地,所述将所述内存中保存的待处理中断信息写入所述列表寄存器,以将所述待处理中断信息转化为虚拟中断并发送至对应的虚拟处理单元包括:
所述列表寄存器根据所述待写入中断信息,确定中断号和虚拟处理单元标识;
所述列表寄存器根据所述中断号和所述虚拟处理单元标识,将所述中断号写入与所述虚拟处理单元标识对应的虚拟处理单元接口寄存器。
第二方面,本申请提供了一种中断处理装置,所述装置包括:
获取模块,用于获取中断信息;
保存模块,用于在列表寄存器的当前状态指示所述列表寄存器不可用时,将所述中断信息保存至内存;
模拟模块,用于生成并发送模拟软件中断至中断控制器,所述模拟软件中断用于对内存中保存的待处理中断信息进行管理以及检测所述列表寄存器的当前状态;所述待处理中断信息包括所述中断信息;
写入模块,用于当所述模拟软件中断检测到所述列表寄存器的当前状态指示所述列表寄存器由不可用变为可用时,所述模拟软件中断通知所述中断控制器将所述内存中保存的待处理中断信息写入所述列表寄存器,以将所述待处理中断信息作为虚拟中断并发送至对应的虚拟处理单元。
第三方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由处理器加载并执行以实现如第一方面所述的一种中断处理方法。
第四方面,本申请提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由所述处理器加载并执行以实现如第一方面所述的一种中断处理方法。
第五方面,本申请提供了一种计算机程序产品,所述计算机程序产品包括计算机指令,所述计算机指令被处理器执行时实现如第一方面所述的一种中断处理方法。
本申请提供的中断处理方法、装置、介质及设备,具有如下技术效果:
本申请提供的方案在在列表寄存器的当前状态指示所述列表寄存器不可用时,将溢出的中断信息保存至内存中;同时生成并发送模拟软件中断至中断控制器,该模拟软件中断用于对内存中保存的待处理中断信息进行管理以及检测列表寄存器的当前状态;待处理中断信息包括所述中断信息;当模拟软件中断检测到列表寄存器的当前状态指示列表寄存器由不可用变为可用时,模拟软件中断通知中断控制器将内存中保存的待处理中断信息写入列表寄存器,以将待处理中断信息作为虚拟中断并发送至对应的虚拟处理单元。在基于ARM的虚拟化扩展中,若列表寄存器已满或由不可用变为可用时,通过触发维持中断来对内存中的中断进行管理,但一个CPU只有一个维持中断,在中断异常情况频繁时则会高频调用该维持中断,当使用频率很高会导致等待,增加内存中断的处理时间,内存中中断无法得到高效及时的处理,本申请所提供的技术方案通过生成模拟软件中断来替代维持中断以对内存中的中断进行管理,降低了系统的维护开销,同时也提升了对内存中中断的管理效率,从而可以促进对中断的处理效率。
本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本申请实施例提供的一种中断处理方法的流程示意图;
图2是本申请实施例提供的另一种中断处理方法的流程示意图;
图3是本申请实施例提供的一种中断处理装置的示意图;
图4是本申请实施例提供的用于实现一种中断处理方法的设备的硬件结构示意图。
具体实施方式
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于理解本申请实施例所述的技术方案及其产生的技术效果,本申请实施例对于涉及到的相关专业名词进行解释:
中断:是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。
虚拟化:是将单一物理设备模拟为相互隔离的多个虚拟设备,同时保证这些虚拟设备的高效性。
ARM:是一种精简指令集(reduced instruction set computer,RISC)架构,精简(reduced)的意思是每条汇编指令独自完成所有的工作,而与之相对的复杂指令集则不是,它的一条汇编指令可能会翻译成好几条机器指令。
Hypervisor:又称虚拟机监视器(virtual machine monitor,缩写为VMM),是一种运行在基础物理服务器和操作系统之间的中间软件层,可以访问服务器上包括磁盘和内存在内的所有物理设备。Hypervisor协调着这些硬件资源的访问,以及各个虚拟机之间的防护。服务器启动时,它会加载所有虚拟机客户端的操作系统,同时为虚拟机分配内存、磁盘和网络等。Hypervisor实现了操作系统和应用程序与硬件层之间的隔离,这样就可以有效的减轻软件对硬件设备以及驱动的依赖性。Hypervisor可以允许操作系统和应用程序工作负载在更广泛的硬件资源上运行,支持多操作系统和工作负载。
GIC:Generic Interrupt Controller,通用中断控制器,是ARM公司提供的一个通用的中断控制器。GIC通过AMBA(Advanced Microcontroller Bus Architecture)这样的片上总线连接到一个或者多个ARM处理器上,将多个中断源的中断请求发送给不同的CPU。GIC可以分为两部分:
Distributor:分发器,负责接收中断,设置这个中断是否使能和它的优先级,之后把它送到对应的CPU interface(中央处理器接口)上去。
CPU interface:中断接口负责屏蔽低优先级中断,让高优先级的中断抢占该Cpu。
Maintenance interrupt:在GIC虚拟扩展中,用于跟踪处理虚拟机上的一些关键中断事件。
SGI:Software Generated Interrupt,软件生成中断,用于核间通信。
请参阅图1,图1是本申请实施例提供的一种中断处理方法的流程图,本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。请参照图1,本申请实施例提供的一种中断处理方法可以包括如下步骤:
S100:获取中断信息。
在本申请实施例中,基于ARM体系可以对外设中断、软件中断等提供支持,其中所述外设中断对应于外部设备触发的中断请求或中断事件。在串口接收到了数据、USB(Universal Serial Bus,通用串行总线)接口中插入了设备、键盘被按下了某个按键等时,则会触发外设中断请求。其中所述软件中断用于多核系统之间的核间通信。
在一种基于ARM的硬件虚拟化架构中,中断控制器收集各个中断请求并发送至虚拟机监视器,虚拟机监视器将各个中断发送至一个或多个CPU。虚拟机监视器获取中断请求对应的中断信息,该中断信息可以包括中断的基本信息如中断设备、中断号、中断程序地址、中断上下文等,还可以包括对应的控制信息。
在一种基于基于ARM的片上系统中,其包括了中断控制器、虚拟机监视器和列表寄存器,中断控制器和虚拟机监视器都能够通过对列表寄存器进行写入和访问。
S200:在列表寄存器的当前状态指示所述列表寄存器不可用时,将所述中断信息保存至内存。
在本申请实施例中,列表寄存器(List Register,LR)为ARM中的系统寄存器,为虚拟处理单元的虚拟CPU接口提供虚拟中断的基本信息。LR中同一个中断源的中断只能存在一个,必须要等前一个执行完才能接收下一个。LR最多可以写入16个中断,当写入的中断数达到最大数量,则没有空闲位,当前列表寄存器不可用,新到来的中断信息写入失败,也即中断溢出。
一般的,虚拟机监视器在接收到该中断信息后,会设置一个虚拟中断,以将该虚拟中断添加至对应虚拟处理单元的虚拟CPU接口中,以使得对应虚拟处理单元通过访问该虚拟CPU接口获取该虚拟中断。但是,在中断溢出时会出现写入失败的结果,即在需要将中断信息写入LR时,LR中没有可用数据空间。此时,在ARM架构中,一般的预先人为设置有Maintenance Interrupt(维持中断),在一定情况下如LR无可用空间或者注入到虚拟机(Virtual Machine,VM)中的虚拟中断已经完成执行后需要通知虚拟机监视器清除对应的中断状态时,会触发该中断,由虚拟机监视器发送信号至中断控制器,告诉中断控制器,中断对应的上下文(寄存器GICH_LR中中断的Pending、active、active andpending状态或者中断所处的安全组等)发生了变化,需要更改信息。在中断溢出或中断频发而不能及时处理时,会增加Maintenance Interrupt的调用频率,增加了虚拟机监视器的维护开销。
而在本申请实施例中,在列表寄存器当前不可用也即中断信息未能成功写入寄存器时,虚拟机监视器先将其保存在内存中。
S300:生成并发送模拟软件中断至中断控制器,所述模拟软件中断用于对内存中保存的待处理中断信息进行管理以及检测所述列表寄存器的当前状态;所述待处理中断信息包括所述中断信息。
在本申请实施例中,模拟软件中断为虚拟机监视器发出的以软件中断为模拟形式的信号,利用软件中断中的中断处理函数实现对内存中保存的待处理中断信息的管理(主要可以包括状态信息、安全组信息的管理),同时在本申请实施例中,模拟软件中断还可以通过读取列表寄存器的状态来检测列表寄存器的当前可用状态。可以理解的是,模拟软件中断用于取代维持中断,不管是模拟软件中断还是维持中断,其实质并不是真正的中断事件额,而是一种信号量。
需要说明的是,前述中断信息为溢出的中断,在此之前还可以有其他因溢出而保存在内存中的中断,也即上述待处理中断信息可以包括一条或多条中断信息,一条或多条中断信息中包括了前述的中断信息。
S400:当所述模拟软件中断检测到所述列表寄存器的当前状态指示所述列表寄存器由不可用变为可用时,所述模拟软件中断通知所述中断控制器将所述内存中保存的待处理中断信息写入所述列表寄存器,以将所述待处理中断信息作为虚拟中断并发送至对应的虚拟处理单元。
在本申请实施例中,模拟软件中断还可以通过读取列表寄存器的状态来检测列表寄存器的当前可用状态。当检测到空闲状态位,也即指示所述列表寄存器由不可用变为可用时,所述模拟软件中断通知中断控制器将内存中待处理中断信息尝试写入列表寄存器中。
具体地,所述将所述内存中保存的待处理中断信息写入所述列表寄存器包括:
根据所述待处理中断信息中的优先级信息和中断状态信息,确定目标中断对应的目标中断信息;
将所述目标中断信息优先写入所述列表寄存器。
也即对于内存中存储的一条或多条中断信息,可以根据中断信息的优先级和中断状态,确定各中断信息的写入次序,并依次写入列表寄存器。
具体地,所述将所述内存中保存的待处理中断信息写入所述列表寄存器,以将所述待处理中断信息转化为虚拟中断并发送至对应的虚拟处理单元,还包括:
所述列表寄存器根据所述待写入中断信息,确定中断号和虚拟处理单元标识;
其中,中断号表征是系统分配给每个中断源的代号,以便识别和处理,也即可以让处理器识别是哪个设备发出了中断请求;虚拟处理单元标识指示负责处理该中断的虚拟处理器。
所述列表寄存器根据所述中断号和所述虚拟处理单元标识,将所述中断号写入与所述虚拟处理单元标识对应的虚拟处理单元接口寄存器。
也即,通过将中断信息写入列表寄存器并由列表寄存器进行中断的路由,从而可以实现在虚拟化扩展中物理中断到虚拟中断的转换。虚拟处理单元通过访问对应的虚拟处理单元接口寄存器获取到对应的虚拟中断,从而执行对应的中断程序。
在本申请的一个实施例中,若所述待处理中断信息仍未能成功写入所述列表寄存器,触发维持中断,所述维持中断为用于通知对所述待处理中断信息进行管理的物理中断。
可以理解的是,由于每个CPU只有一个该维持中断,而在Group0/1虚拟中断的禁用及使能、ARM系统寄存器LR从不可用到可用时、当有EOI请求时没有可用LR、中断溢出等情况都需要产生该维持中断,从而导致维持中断的调用频率高且中断相关的处理效率较低,本申请实施例通过生成模拟软件中断来代替维持中断的部分工作,降低维持中断的调用频率也即降低虚拟机监视器对中断的维护开销,同时模拟软件中断可以有效提高在LR可用状态发生变化时对内存中保存的待处理中断的管理效率。
请参阅图2,图2是本申请提供的另一种中断处理方法的流程示意图。如图2所示,虚拟机监视器获取中断信息,在需要将中断信息写入LR但LR中没有可用数据空间导致写入失败时,虚拟机监视器先将其保存在内存中。然后虚拟机监视器生成模拟软件中断并发送至通知中断控制器(Generic Interrupt Controller,GIC),模拟软件中断通知执行本身的中断处理服务程序对内存中保存的待处理中断信息进行管理以及检测所述列表寄存器的当前状态,其中前述的中断信息包含在待处理中断信息中。当模拟软件中断检测到列表寄存器由不可用变为可用时,例如列表寄存器中的中断的执行结束被清除后列表寄存器出现空闲状态位,模拟软件中断通知中断控制器将内存中保存的待处理中断信息写入所述列表寄存器,也即中断控制器会尝试将内存中的待处理中断信息写入列表寄存器,在写入的过程中,可以根据各待处理中断信息的优先级进行选择。若能成功写入,则不需触发维持中断也可以对内存中的待处理中断信息进行管理,提高对内存中待处理中断信息的处理效率。
进一步地,若所述中断信息仍未能全部写入列表寄存器,触发维持中断(Maintenance Interrupt),所述维持中断用于通知对所述中断信息进行维持管理。
其中,维持中断事件(Maintenance Interrupt)是一种物理中断,跟踪处理各种中断事件的状态,如中断写入成功、失败、中断处理、中断清除等。
除了本申请实施例所示的中断溢出,在其他情况下也会需要触发MaintenanceInterrupt,如:虚拟中断的禁用及使能、当有EOI(End of Interrupt,中断结束)请求时,没有可用LR等。也可以在其他需要产生Maintenance Interrupt的情况下,基于本申请实施例相同的构思采取相应的中断处理方法,用模拟软件中断替代Maintenance Interrupt以减少Maintenance Interrupt的使用。
进一步地,若中断信息成功写入列表寄存器,初始化中断信息,。
进一步地,若能将中断信息成功写入列表寄存器并在虚拟处理单元处理完成后,则对通用中断控制器(GIC)的寄存器GICC_EOIR1进行写入以告知CPU该中断处理完成。
本申请提供的方案在在列表寄存器的当前状态指示所述列表寄存器不可用时,将溢出的中断信息保存至内存中;同时生成并发送模拟软件中断至中断控制器,该模拟软件中断用于对内存中保存的待处理中断信息进行管理以及检测列表寄存器的当前状态;待处理中断信息包括所述中断信息;当模拟软件中断检测到列表寄存器的当前状态指示列表寄存器由不可用变为可用时,模拟软件中断通知中断控制器将内存中保存的待处理中断信息写入列表寄存器,以将待处理中断信息作为虚拟中断并发送至对应的虚拟处理单元。在基于ARM的虚拟化扩展中,若列表寄存器已满或由不可用变为可用时,通过触发维持中断来对内存中的中断进行管理,但一个CPU只有一个维持中断,在中断异常情况频繁时则会高频调用该维持中断,当使用频率很高会导致等待,增加内存中断的处理时间,内存中中断无法得到高效及时的处理,本申请所提供的技术方案通过生成模拟软件中断来替代维持中断以对内存中的中断进行管理,降低了系统的维护开销,同时也提升了对内存中中断的管理效率,从而可以促进对中断的处理效率。
本申请实施例还提供了一种中断处理装置300,如图3所示,所述装置300可以包括:
获取模块310,用于获取中断信息;
保存模块320,用于在列表寄存器的当前状态指示所述列表寄存器不可用时,将所述中断信息保存至内存;
模拟模块330,用于生成并发送模拟软件中断至中断控制器,所述模拟软件中断用于对内存中保存的待处理中断信息进行管理以及检测所述列表寄存器的当前状态;所述待处理中断信息包括所述中断信息;
写入模块340,用于当所述模拟软件中断检测到所述列表寄存器的当前状态指示所述列表寄存器由不可用变为可用时,所述模拟软件中断通知所述中断控制器将所述内存中保存的待处理中断信息写入所述列表寄存器,以将所述待处理中断信息作为虚拟中断并发送至对应的虚拟处理单元。
在本申请的一个实施例中,所述装置300还可以包括:
维持中断触发单元,用于若所述待处理中断信息仍未能成功写入所述列表寄存器,触发维持中断,所述维持中断为用于通知对所述待处理中断信息进行管理的物理中断。。
在本申请的一个实施例中,所述写入模块340可以包括:
目标中断选择单元,用于根据所述待处理中断信息中的优先级信息和中断状态信息,确定目标中断对应的目标中断信息;
优先写入单元,用于将所述目标中断信息优先写入所述列表寄存器。。
在本申请的一个实施例中,所述写入模块340还可以包括:
写入信息确定单元,用于所述列表寄存器根据所述待写入中断信息,确定中断号和虚拟处理单元标识;
写入单元单元,用于所述列表寄存器根据所述中断号和所述虚拟处理单元标识,将所述中断号写入与所述虚拟处理单元标识对应的虚拟处理单元接口寄存器。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请实施例提供了一种计算机设备,该计算机设备包括处理器和存储器,该存储器中存储有至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现如上述方法实施例所提供的一种中断处理方法。
图4示出了一种用于实现本申请实施例所提供的一种中断处理方法的设备的硬件结构示意图,所述设备可以参与构成或包含本申请实施例所提供的装置或系统。如图4所示,设备10可以包括一个或多个(图中采用1002a、1002b,……,1002n来示出)处理器1002(处理器1002可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器1004、以及用于通信功能的传输装置1006。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图4所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,设备10还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。
应当注意到的是上述一个或多个处理器1002和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到设备10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器1004可用于存储应用软件的软件程序以及模块,如本申请实施例中所述的方法对应的程序指令/数据存储装置,处理器1002通过运行存储在存储器1004内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的一种中断处理方法。存储器1004可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1004可进一步包括相对于处理器1002远程设置的存储器,这些远程存储器可以通过网络连接至设备10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置1006用于经由一个网络接收或者发送数据。上述的网络具体实例可包括设备10的通信供应商提供的无线网络。在一个实例中,传输装置1006包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置1006可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与设备10(或移动设备)的用户界面进行交互。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质可设置于服务器之中以保存用于实现方法实施例中一种中断处理方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述方法实施例提供的一种中断处理方法。
可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例还提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实施方式中提供的一种中断处理方法。
由上述本申请提供的中断处理方法、装置、介质及设备的实施例可见,
本申请提供的方案在在列表寄存器的当前状态指示所述列表寄存器不可用时,将溢出的中断信息保存至内存中;同时生成并发送模拟软件中断至中断控制器,该模拟软件中断用于对内存中保存的待处理中断信息进行管理以及检测列表寄存器的当前状态;待处理中断信息包括所述中断信息;当模拟软件中断检测到列表寄存器的当前状态指示列表寄存器由不可用变为可用时,模拟软件中断通知中断控制器将内存中保存的待处理中断信息写入列表寄存器,以将待处理中断信息作为虚拟中断并发送至对应的虚拟处理单元。在基于ARM的虚拟化扩展中,若列表寄存器已满或由不可用变为可用时,通过触发维持中断来对内存中的中断进行管理,但一个CPU只有一个维持中断,在中断异常情况频繁时则会高频调用该维持中断,当使用频率很高会导致等待,增加内存中断的处理时间,内存中中断无法得到高效及时的处理,本申请所提供的技术方案通过生成模拟软件中断来替代维持中断以对内存中的中断进行管理,降低了系统的维护开销,同时也提升了对内存中中断的管理效率,从而可以促进对中断的处理效率。
需要说明的是:上述本申请实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备和存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (7)
1.一种中断处理方法,其特征在于,所述方法包括:
获取中断信息;
在列表寄存器的当前状态指示所述列表寄存器不可用时,将所述中断信息保存至内存;
生成并发送模拟软件中断至中断控制器,所述模拟软件中断用于对内存中保存的待处理中断信息进行管理以及检测所述列表寄存器的当前状态;所述待处理中断信息包括所述中断信息;
当所述模拟软件中断检测到所述列表寄存器的当前状态指示所述列表寄存器由不可用变为可用时,所述模拟软件中断通知所述中断控制器将所述内存中保存的待处理中断信息写入所述列表寄存器,以将所述待处理中断信息作为虚拟中断并发送至对应的虚拟处理单元。
2.根据权利要求1所述的中断处理方法,其特征在于,所述方法还包括:
若所述待处理中断信息仍未能成功写入所述列表寄存器,触发维持中断,所述维持中断为用于通知对所述待处理中断信息进行管理的物理中断。
3.根据权利要求1所述的中断处理方法,其特征在于,所述将所述内存中保存的待处理中断信息写入所述列表寄存器包括:
根据所述待处理中断信息中的优先级信息和中断状态信息,确定目标中断对应的目标中断信息;
将所述目标中断信息优先写入所述列表寄存器。
4.根据权利要求1所述的中断处理方法,其特征在于,所述将所述内存中保存的待处理中断信息写入所述列表寄存器,以将所述待处理中断信息转化为虚拟中断并发送至对应的虚拟处理单元包括:
所述列表寄存器根据所述待写入中断信息,确定中断号和虚拟处理单元标识;
所述列表寄存器根据所述中断号和所述虚拟处理单元标识,将所述中断号写入与所述虚拟处理单元标识对应的虚拟处理单元接口寄存器。
5.一种中断处理装置,其特征在于,所述装置包括:
获取模块,用于获取中断信息;
保存模块,用于在列表寄存器的当前状态指示所述列表寄存器不可用时,将所述中断信息保存至内存;
模拟模块,用于生成并发送模拟软件中断至中断控制器,所述模拟软件中断用于对内存中保存的待处理中断信息进行管理以及检测所述列表寄存器的当前状态;所述待处理中断信息包括所述中断信息;
写入模块,用于当所述模拟软件中断检测到所述列表寄存器的当前状态指示所述列表寄存器由不可用变为可用时,所述模拟软件中断通知所述中断控制器将所述内存中保存的待处理中断信息写入所述列表寄存器,以将所述待处理中断信息作为虚拟中断并发送至对应的虚拟处理单元。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1至4中任一项所述的一种中断处理方法。
7.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由所述处理器加载并执行以实现如权利要求1至4中任一项所述的一种中断处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210253496.8A CN114691296A (zh) | 2022-03-15 | 2022-03-15 | 中断处理方法、装置、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210253496.8A CN114691296A (zh) | 2022-03-15 | 2022-03-15 | 中断处理方法、装置、介质及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114691296A true CN114691296A (zh) | 2022-07-01 |
Family
ID=82139236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210253496.8A Pending CN114691296A (zh) | 2022-03-15 | 2022-03-15 | 中断处理方法、装置、介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114691296A (zh) |
-
2022
- 2022-03-15 CN CN202210253496.8A patent/CN114691296A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190220418A1 (en) | Memory Management Method and Apparatus | |
US9697024B2 (en) | Interrupt management method, and computer implementing the interrupt management method | |
CN102027453B (zh) | 用于在虚拟环境中优化中断处理的系统和方法 | |
US20110010709A1 (en) | Optimizing System Performance Using Spare Cores in a Virtualized Environment | |
US20110219373A1 (en) | Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform | |
US10459773B2 (en) | PLD management method and PLD management system | |
US20110107344A1 (en) | Multi-core apparatus and load balancing method thereof | |
JP2011100431A (ja) | 仮想マシン制御装置及び仮想マシン制御方法 | |
US20230259380A1 (en) | Chip system, virtual interrupt processing method, and corresponding apparatus | |
CN103744716A (zh) | 一种基于当前vcpu调度状态的动态中断均衡映射方法 | |
KR20090080753A (ko) | 다중 프로세서 시스템에서 작업을 이동시키는 방법 및 장치 | |
US10831539B2 (en) | Hardware thread switching for scheduling policy in a processor | |
US11126575B1 (en) | Interrupt recovery management | |
US20150269640A1 (en) | Capacity Upgrade on Demand Automation | |
CN110162397B (zh) | 资源分配方法、装置及系统 | |
CN103810015A (zh) | 虚拟机创建方法和设备 | |
US20220229688A1 (en) | Virtualized i/o | |
WO2020192448A1 (zh) | 虚拟机的迁移方法和系统 | |
US20190377612A1 (en) | VCPU Thread Scheduling Method and Apparatus | |
CN105677481B (zh) | 一种数据处理方法、系统及电子设备 | |
CN100487654C (zh) | 使用转移中修改虚拟化设备自描述信息的方法 | |
US9088569B2 (en) | Managing access to a shared resource using client access credentials | |
CN111666036B (zh) | 一种迁移数据的方法、装置及系统 | |
CN113703913B (zh) | 设备测试方法及装置 | |
CN114691296A (zh) | 中断处理方法、装置、介质及设备 |
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 |