CN114020439A - 一种中断处理方法、装置及计算机设备 - Google Patents
一种中断处理方法、装置及计算机设备 Download PDFInfo
- Publication number
- CN114020439A CN114020439A CN202111364977.8A CN202111364977A CN114020439A CN 114020439 A CN114020439 A CN 114020439A CN 202111364977 A CN202111364977 A CN 202111364977A CN 114020439 A CN114020439 A CN 114020439A
- Authority
- CN
- China
- Prior art keywords
- interrupt
- processing
- coprocessor
- service
- type
- 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/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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
本公开提供了一种中断处理方法、装置及计算机设备,其应用于可编程中断协处理器,所述中断协处理器包括有若干个,且每个中断协处理器中内置有特定类型外设的协处理服务程序,所述方法包括:所述中断协处理器接收外部中断信号;所述中断协处理器的逻辑单元根据服务地址寄存器中获取协处理服务程序入口地址;通过协处理服务程序检查当前中断类型是否匹配;若匹配则执行该中断类型的处理过程;若不匹配,则退出到待命状态;完成中断处理,进入待命状态。所述方案通过将处理外设中断的工作从CPU剥离处理出来,由独立的中断协处理器进行处理,从而降低CPU在用户进程与中断处理之间切换的频率,提升计算机系统的整体性能。
Description
技术领域
本公开属于中断处理技术领域,尤其涉及一种中断处理方法、装置及计算机设备。
背景技术
本部分的陈述仅仅是提供了与本公开相关的背景技术信息,不必然构成在先技术。
现代计算机体系结构均提供中断机制来响应和处理外部设备触发的中断。即外部设备发出中断信号时,CPU会暂停当前执行的任务,转而执行中断服务来处理中断,完成后再恢复执行被打断的任务。中断导致的任务切换将导致大量缓存的失效,因而频繁中断对计算机运行性能的影响是非常显著的。
发明人发现,为了解决上述问题,现有方法采用以下方案:
(1)在多CPU架构下,操作系统通过设置把CPU分成两组,一组CPU专门处理中断,而另一组CPU则不参与处理中断,由此避免由中断导致的任务切换的开销,减少外部中断对系统性能的影响;但是,由于外设中断的发生是随机不固定的,所以这种固定配置各个CPU用途的方法,明显会影响系统对计算资源的统一调度,可能出现一组CPU很忙,而另一组却闲置的情况,导致资源的浪费。
(2)采用DMA即直接存储器访问技术,可以完成某些种类外设与内存之间批量数据交换的任务,从而降低了CPU的负担;但是,DMA主要针对块设备,并且不能降低CPU处理外设中断的频率。
发明内容
本公开为了解决上述问题,提供了一种中断处理方法、装置及计算机设备,所述方案通过将处理外设中断的工作从CPU剥离处理出来,由独立的中断协处理器进行处理,从而降低CPU在用户进程与中断处理之间切换的频率,提升计算机系统的整体性能。
根据本公开实施例的第一个方面,提供了一种中断处理方法,其应用于可编程中断协处理器,所述中断协处理器包括有若干个,且每个中断协处理器中内置有特定类型外设的协处理服务程序,所述方法包括:
所述中断协处理器接收外部中断信号;
所述中断协处理器的逻辑单元根据服务地址寄存器中获取协处理服务程序入口地址;
通过协处理服务程序检查当前中断类型是否匹配;若匹配则执行该中断类型的处理过程;若不匹配,则退出到待命状态;
完成中断处理,进入待命状态。
进一步的,所述中断处理方法预先需要执行如下初始化操作:
宿主机加电时,中断协处理器的服务地址寄存器清零、指令缓存清空;
宿主机操作系统启动过程,将协处理服务程序入口地址存入到服务地址寄存器,中断协处理器进入待命状态。
进一步的,所述初始化操作还包括:
宿主机操作系统启动过程中,配置所有同类外设的中断信号连接到对应的中断协处理器上。
进一步的,所述执行该中断类型的处理过程包括设置状态和填充缓冲区。
根据本公开实施例的第二个方面,提供了一种中断处理装置,包括若干个中断协处理器,且每个中断协处理器中内置有特定类型外设的协处理服务程序;
其中,所述中断协处理器被配置为接收外部中断信号,根据服务地址寄存器中获取协处理服务程序入口地址;通过协处理服务程序检查当前中断类型是否匹配;若匹配则执行该中断类型的处理过程;若不匹配,则退出到待命状态;完成中断处理,进入待命状态。
根据本公开实施例的第三个方面,提供了一种计算机设备,包括主控器和上述的中断处理装置,其中,对于外设引发的外部中断,均由所述中断处理装置进行处理。
与现有技术相比,本公开的有益效果是:
(1)本公开所述方法引入专门的中断协处理装置,降低CPU在用户进程与中断处理之间切换时的消耗,提升计算机性能。
(2)本公开所述方案的中断协处理器直接面向外设,缩短了传统上从外设发出中断到CPU切换任务完成中断处理的长路径。有利于降低计算机系统复杂性和提高可靠性。
本公开附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本公开的实践了解到。
附图说明
构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。
图1为本公开实施例一中所述的现有中断过程与本公开所述方案中断过程对照示意图;
图2为本公开实施例一中所述的中断协处理器结构示意图。
具体实施方式
下面结合附图与实施例对本公开做进一步说明。
应该指出,以下详细说明都是示例性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
实施例一:
本实施例的目的是提供一种中断处理方法。
一种中断处理方法,其应用于可编程中断协处理器,所述中断协处理器包括有若干个,且每个中断协处理器中内置有特定类型外设的协处理服务程序,所述方法包括:
所述中断协处理器接收外部中断信号;
所述中断协处理器的逻辑单元根据服务地址寄存器中获取协处理服务程序入口地址;
通过协处理服务程序检查当前中断类型是否匹配;若匹配则执行该中断类型的处理过程;若不匹配,则退出到待命状态;
完成中断处理,进入待命状态。
进一步的,所述中断处理方法预先需要执行如下初始化操作:
宿主机加电时,中断协处理器的服务地址寄存器清零、指令缓存清空;
宿主机操作系统启动过程,将协处理服务程序入口地址存入到服务地址寄存器,中断协处理器进入待命状态。
进一步的,所述初始化操作还包括:
宿主机操作系统启动过程中,配置所有同类外设的中断信号连接到对应的中断协处理器上。
进一步的,所述执行该中断类型的处理过程包括设置状态和填充缓冲区。
进一步的,所述中断协处理器包括逻辑单元、服务地址寄存器、指令缓存和总线接口。
进一步的,所述逻辑单元用于执行中断服务程序完成任务,其具体实现采用与宿主机系统CPU相同指令集的低功耗CPU;
或
异构的低功耗CPU;
或
基于FPGA实现。
进一步的,所述服务地址寄存器用于存储协处理服务程序的入口地址。
进一步的,所述指令缓存用于预取和缓存协处理服务程序的指令。
具体的,为了便于理解,以下结合附图从设计原理、硬件构成以及具体工作流程三个方面对本公开所述方案进行详细说明:
首先,需要说明的是,本技术领域中通常将内部异常(如缺页异常等)和系统调用称为“内部中断”,而本公开所述方案中描述的方法和装置仅处理由外设引发的外部中断,不影响计算机系统对内部异常和系统调用的处理。
(一)设计原理
以下结合图1,通过对比现行中断过程,对本公开所述方案的原理和特点进行详细说明:
图1左侧为现有的中断过程:
步骤(1):外设达到某种状态或者受某种条件触发,发出中断信号到中断控制器。
步骤(2):中断控制器对所有当前待处理的中断进行仲裁,依据优先级等预定策略选择一个中断上报到CPU。
步骤(3):CPU暂停当前正在执行的任务,保存现场状态后,转而切换到相应的中断服务程序入口处。
步骤(4):中断服务开始执行,根据外设中断的内容,执行处理逻辑,包括设置状态,填充数据缓冲区等等。服务完成后,CPU切换回被中断的原先任务继续执行。
图1右侧为本公开所述方案中的中断过程:
步骤(1):初始化中断协处理器,为其指定对应的协处理服务程序。
步骤(2):外设达到某种状态或者受某种条件触发,发出中断信号到中断协处理器。
步骤(3):中断协处理器根据接收到中断的内容,直接调用对应的协处理服务进行处理,包括设置状态,填充数据缓冲区等等。协处理执行此过程与CPU并行,不再触发CPU所执行任务的切换。
作为进一步的限定,本公开所述方案中针对计算机系统包含的每一种外设,设置一个对应的中断协处理器对其中断进行处理。所有协处理器的硬件完全相同,只是在初始化时指定不同的协处理服务程序入口,以对应相应的外设类型。
(二)中断协处理器硬件的构成
如图2所示,本公开所述方案中的中断协处理器由四个部分构成:逻辑单元、服务地址寄存器、指令缓存和总线接口。
(1)逻辑单元:逻辑单元负责执行中断服务程序完成任务,是核心部件。有三类实现方案备选。(1)与系统CPU相同指令集的低功耗CPU;(2)异构的低功耗CPU,例如risc-v/arm/mips等;(3)基于FPGA实现。
(2)服务地址寄存器:存储协处理服务的入口地址。协处理服务是一段处理中断的程序,属于操作系统内核的一部分,在操作系统启动时被加载到某一块内存地址空间中。该服务与与现行计算机系统中的中断服务在功能上是等价的,因而执行后可以达到与传统中断方式同样的效果。实践上,可以对现行计算机系统中的中断服务进行简单调整后,作为协处理服务程序。
(3)指令缓存:预取和缓存协处理服务程序的指令,提高协处理器性能。
(4)总线接口:协处理器与外部通信的接口。该接口是协处理器与外部交换信息的唯一途径,包括中断信号、地址信息和数据信息。
(三)具体工作流程
步骤(1):初始化中断协处理器,包括两个阶段:计算机加电阶段和操作系统启动阶段。
具体的,所述步骤(1)包括:
步骤(1-1):计算机系统加电时,中断协处理器的服务地址寄存器清零、指令缓存清空。整个中断协处理器处于停止状态,不工作。
步骤(1-2):操作系统启动过程中,把协处理服务处理程序入口地址存入到服务地址寄存器,协处理进入待命状态。即从此时起,一旦对应的外部中断信号到来,逻辑单元将根据服务地址寄存器中存放的地址值执行处理程序。此外,操作系统在启动时,配置所有同类外设的中断信号连接到对应的中断协处理器上,即每一类外设对应一块协处理器。
步骤(2):外设发出中断信号到中断协处理器。
步骤(3):收到外设中断时,触发协处理器调用协处理服务执行如下的处理过程。
具体的,所述步骤(3)包括:
步骤(3-1):逻辑单元根据服务地址寄存器的值确定协处理服务入口地址,开始执行。执行过程中,指令缓存协助预取加载最近即将被执行的若干条指令,以降低从内存中取指令的频率。
步骤(3-2):协处理服务检查当前中断的类型能否处理。如果不是本服务要处理的目标类型,退出到B.2.4待命状态。
步骤(3-3):协处理服务执行对此中断的处理过程,包括设置状态,填充缓冲区等等。
步骤(3-4):完成中断处理,进入待命状态,等待下一个中断信号的唤醒。
本公开所述方案把处理外设中断的工作从CPU剥离处理出来,由独立的中断协处理器进行处理,从而降低CPU在用户进程与中断处理之间切换的频率,提升计算机系统的整体性能。
实施例二:
本实施例的目的是提供一种中断处理装置。
一种中断处理装置,包括若干个中断协处理器,且每个中断协处理器中内置有特定类型外设的协处理服务程序;
其中,所述中断协处理器被配置为接收外部中断信号,根据服务地址寄存器中获取协处理服务程序入口地址;通过协处理服务程序检查当前中断类型是否匹配;若匹配则执行该中断类型的处理过程;若不匹配,则退出到待命状态;完成中断处理,进入待命状态。
实施例三:
本实施例的目的是提供一种计算机设备。
一种计算机设备,包括主控器和上述的中断处理装置,其中,对于外设引发的外部中断,均由所述中断处理装置进行处理;
所述中断处理装置,包括若干个中断协处理器,且每个中断协处理器中内置有特定类型外设的协处理服务程序;
其中,所述中断协处理器被配置为接收外部中断信号,根据服务地址寄存器中获取协处理服务程序入口地址;通过协处理服务程序检查当前中断类型是否匹配;若匹配则执行该中断类型的处理过程;若不匹配,则退出到待命状态;完成中断处理,进入待命状态。
在更多实施例中,还提供:
一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成实施例一中所述的方法。为了简洁,在此不再赘述。
应理解,本实施例中,处理器可以是中央处理单元CPU,处理器还可以是其他通用处理器、数字信号处理器DSP、专用集成电路ASIC,现成可编程门阵列FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据、存储器的一部分还可以包括非易失性随机存储器。例如,存储器还可以存储设备类型的信息。
一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成实施例一中所述的方法。
实施例一中的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
本领域普通技术人员可以意识到,结合本实施例描述的各示例的单元即算法步骤,能够以电子硬件或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
上述实施例提供的一种中断处理方法、装置及计算机设备可以实现,具有广阔的应用前景。
以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (10)
1.一种中断处理方法,其特征在于,其应用于可编程中断协处理器,所述中断协处理器包括有若干个,且每个中断协处理器中内置有特定类型外设的协处理服务程序,所述方法包括:
所述中断协处理器接收外部中断信号;
所述中断协处理器的逻辑单元根据服务地址寄存器中获取协处理服务程序入口地址;
通过协处理服务程序检查当前中断类型是否匹配;若匹配则执行该中断类型的处理过程;若不匹配,则退出到待命状态;
完成中断处理,进入待命状态。
2.如权利要求1所述的一种中断处理方法,其特征在于,所述中断处理方法预先需要执行如下初始化操作:
宿主机加电时,中断协处理器的服务地址寄存器清零、指令缓存清空;
宿主机操作系统启动过程,将协处理服务程序入口地址存入到服务地址寄存器,中断协处理器进入待命状态。
3.如权利要求2所述的一种中断处理方法,其特征在于,所述初始化操作还包括:
宿主机操作系统启动过程中,配置所有同类外设的中断信号连接到对应的中断协处理器上。
4.如权利要求1所述的一种中断处理方法,其特征在于,所述执行该中断类型的处理过程包括设置状态和填充缓冲区。
5.如权利要求1所述的一种中断处理方法,其特征在于,所述中断协处理器包括逻辑单元、服务地址寄存器、指令缓存和总线接口。
6.如权利要求1所述的一种中断处理方法,其特征在于,所述逻辑单元用于执行中断服务程序完成任务,其具体实现采用与宿主机系统CPU相同指令集的低功耗CPU;
或
异构的低功耗CPU;
或
基于FPGA实现。
7.如权利要求1所述的一种中断处理方法,其特征在于,所述服务地址寄存器用于存储协处理服务程序的入口地址。
8.如权利要求1所述的一种中断处理方法,其特征在于,所述指令缓存用于预取和缓存协处理服务程序的指令。
9.一种中断处理装置,其特征在于,包括若干个中断协处理器,且每个中断协处理器中内置有特定类型外设的协处理服务程序;
其中,所述中断协处理器被配置为接收外部中断信号,根据服务地址寄存器中获取协处理服务程序入口地址;通过协处理服务程序检查当前中断类型是否匹配;若匹配则执行该中断类型的处理过程;若不匹配,则退出到待命状态;完成中断处理,进入待命状态。
10.一种计算机设备,其特征在于,包括主控器和如权利要求9所述的中断处理装置,其中,对于外设引发的外部中断,均由所述中断处理装置进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111364977.8A CN114020439A (zh) | 2021-11-17 | 2021-11-17 | 一种中断处理方法、装置及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111364977.8A CN114020439A (zh) | 2021-11-17 | 2021-11-17 | 一种中断处理方法、装置及计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114020439A true CN114020439A (zh) | 2022-02-08 |
Family
ID=80064893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111364977.8A Pending CN114020439A (zh) | 2021-11-17 | 2021-11-17 | 一种中断处理方法、装置及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114020439A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023220928A1 (en) * | 2022-05-17 | 2023-11-23 | Telefonaktiebolaget Lm Ericsson (Publ) | Data processing device, coprocessor and methods performed thereby |
-
2021
- 2021-11-17 CN CN202111364977.8A patent/CN114020439A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023220928A1 (en) * | 2022-05-17 | 2023-11-23 | Telefonaktiebolaget Lm Ericsson (Publ) | Data processing device, coprocessor and methods performed thereby |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7155600B2 (en) | Method and logical apparatus for switching between single-threaded and multi-threaded execution states in a simultaneous multi-threaded (SMT) processor | |
US20040216101A1 (en) | Method and logical apparatus for managing resource redistribution in a simultaneous multi-threaded (SMT) processor | |
US6976158B2 (en) | Repeat instruction with interrupt | |
US20100095306A1 (en) | Arithmetic device | |
EP1387259B1 (en) | Inter-processor control | |
EP4336359A1 (en) | Method for processing page faults and corresponding apparatus | |
JPH076151A (ja) | オンチップメモリデバイスのアクセスのために最適化されたcpuコアバス | |
US20100122064A1 (en) | Method for increasing configuration runtime of time-sliced configurations | |
US20070016760A1 (en) | Central processing unit architecture with enhanced branch prediction | |
US20170212852A1 (en) | Method and accelerator unit for interrupt handling | |
KR20010080349A (ko) | 처리 장치 | |
CN114020439A (zh) | 一种中断处理方法、装置及计算机设备 | |
US5948093A (en) | Microprocessor including an interrupt polling unit configured to poll external devices for interrupts when said microprocessor is in a task switch state | |
US20030028696A1 (en) | Low overhead interrupt | |
JP4067063B2 (ja) | マイクロプロセッサ | |
US20050125801A1 (en) | Method and apparartus for context switching in computer operating systems | |
US10073810B2 (en) | Parallel processing device and parallel processing method | |
US20110231637A1 (en) | Central processing unit and method for workload dependent optimization thereof | |
JP6066807B2 (ja) | 計算機システム、計算機システムの割込み処理プログラム及び計算機システムの割込み処理方法 | |
US9342312B2 (en) | Processor with inter-execution unit instruction issue | |
CN114787777A (zh) | 异构处理器之间的任务转移方法 | |
JP3838182B2 (ja) | プロセッサにおける割込み発生時のレジスタ退避方法および装置 | |
US20070220234A1 (en) | Autonomous multi-microcontroller system and the control method thereof | |
JPH11184752A (ja) | データ処理装置及びデータ処理システム | |
JP3493122B2 (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 |