CN113282397B - 外设的中断处理方法及设备 - Google Patents
外设的中断处理方法及设备 Download PDFInfo
- Publication number
- CN113282397B CN113282397B CN202110714677.1A CN202110714677A CN113282397B CN 113282397 B CN113282397 B CN 113282397B CN 202110714677 A CN202110714677 A CN 202110714677A CN 113282397 B CN113282397 B CN 113282397B
- Authority
- CN
- China
- Prior art keywords
- interrupt
- interrupt interface
- address
- target
- control
- 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
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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Microcomputers (AREA)
Abstract
本申请提供一种外设的中断处理方法及设备,涉及计算机技术领域。该方法应用于中断处理电路,中断处理电路包括至少一个中断接口、与中断接口对应的事件控制器,每个中断接口对应一个事件控制器,事件控制器是独立于中央处理器的数字逻辑电路,上述方法包括:通过中断接口接收第一外设的中断信号;响应于中断信号,通过中断接口对应的事件控制器,将中断接口对应的源寄存器指定的控制标记,写入到中断接口对应的目标寄存器指定的目标地址中,控制标记用于指示对目标地址对应的第二外设,进行与控制标记对应的控制处理。本申请实施例可以在计算设备不支持输入输出机制时,降低外设之间交互的功耗,以及提高外设之间交互的灵活性。
Description
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种外设的中断处理方法及设备。
背景技术
在计算机技术领域中,计算设备可以接入若干外部设备,其中,外部设备(简称为外设)可以为外部存储器、终端设备等。这些外设之间可以进行交互,例如,外设EE1可以请求启动外设EE2、或清除外设EE2的寄存器、或关闭外设EE2等。外设之间的这种交互可以通过计算设备的CPU(central processing unit,中央处理器)实现,当CPU处于空闲状态时,CPU需要从空闲状态转换为唤醒状态之后进行外设之间的交互。然而唤醒CPU会导致功耗较高。
现有技术中,为了解决功耗较高的问题,通过PPI(programmable peripheralinterconnect,可编程外设互联)通道实现两个外设之间的直接连接,避免唤醒CPU。具体地,将每个外设作为一个状态机,每个状态机对应有输入寄存器、输出寄存器和状态寄存器。在外设EE1需要启动EE2时,可以通过PPI通道将外设EE1的输出寄存器与EE2的输入寄存器连接起来,从而在EE1存在输出时,EE1的输出寄存器被置为1,EE2的输入寄存器被置为1,如此,EE2被启动。
然而,上述方案需要计算设备的CPU支持状态机的输入输出机制,无法适用于不支持该输入输出机制的计算设备,并且上述方式的灵活性较差。
发明内容
有鉴于此,本申请提供一种外设的中断处理方法及设备,以在计算设备不支持输入输出机制时,降低外设之间交互的功耗,以及提高外设之间交互的灵活性。
第一方面,本申请实施例提供了一种外设的中断处理方法,应用于中断处理电路,所述中断处理电路包括至少一个中断接口、与所述中断接口对应的事件控制器,每个中断接口对应一个事件控制器,所述事件控制器是独立于中央处理器的数字逻辑电路,上述方法包括:
通过所述中断接口接收第一外设的中断信号;
响应于所述中断信号,通过所述中断接口对应的所述事件控制器,将所述中断接口对应的源寄存器指定的控制标记,写入到所述中断接口对应的目标寄存器指定的目标地址中,所述控制标记用于指示对所述目标地址对应的第二外设,进行与所述控制标记对应的控制处理。
第二方面,本申请实施例提供了一种外设的中断处理电路,包括至少一个中断接口、与所述中断接口对应的事件控制器,每个中断接口对应一个事件控制器,所述事件控制器是独立于中央处理器的数字逻辑电路;
所述中断接口用于接收第一外设的中断信号;
所述事件控制器用于响应于所述中断信号,将所述中断接口对应的源寄存器指定的控制标记,写入到所述中断接口对应的目标寄存器指定的目标地址中,所述控制标记用于指示对所述目标地址对应的第二外设,进行与所述控制标记对应的控制处理。
综上所述,本申请实施例提供了一种外设的中断处理方法及设备。可以通过中断接口接收第一外设的中断信号,并通过事件控制器根据中断信号对第二外设进行控制处理。由于本申请实施例是通过无线接口和事件控制器实现的,并不需要计算设备的CPU支持状态机的输入输出机制,从而可以应用于不支持输入输出机制的计算设备。此外,由于事件控制器是数字逻辑电路,与中央处理器之间相互独立,从而不需要唤醒中央处理器,可以降低唤醒中央处理器之后,中央处理器的功耗。并且,事件控制器可以将源寄存器指定的控制标记写入到目标寄存器指定的目标地址,以实现对第二设备的控制处理。由于源寄存器指定的控制标记和目标寄存器指定的目标地址都可以灵活配置,以实现对不同的第二外设进行不同的控制处理,提高了灵活性。
附图说明
图1示例性示出了本申请实施例应用的计算设备和外设的关系示意图;
图2示例性示出了本申请实施例提供的一种外设的中断处理电路的结构示意图;
图3示例性示出了本申请实施例提供的一种外设的中断处理方法的步骤流程图;
图4示例性示出了本申请实施例提供的一种基于预设事件标记进行中断处理的过程示意图;
图5示例性示出了本申请实施例提供的事件控制器ECR_m根据控制寄存器IRQ_EN_m中的工作模式进行处理的过程示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供的技术方案可以应用于计算设备中。计算设备可以接入若干外部设备,外部设备之间可以进行交互。图1示例性示出了本申请实施例应用的计算设备和外设的关系示意图。参照图1所示,计算设备接入有4个外设EE1、EE2、EE3和EE4。其中,任意两个外设之间可以进行交互,例如,EE1和EE2之间可以进行交互。
外设之间的这种交互可以通过计算设备的CPU实现,当CPU处于空闲状态时,CPU需要从空闲状态转换为唤醒状态之后进行外设之间的交互。然而唤醒CPU会导致功耗较高。
现有技术中,为了解决功耗较高的问题,通过PPI通道实现两个外设之间的直接连接,避免唤醒CPU。具体地,将每个外设作为一个状态机,每个状态机对应有输入寄存器、输出寄存器和状态寄存器。在外设EE1需要启动EE2时,可以通过PPI通道将外设EE1的输出寄存器与EE2的输入寄存器连接起来,从而在EE1存在输出时,EE1的输出寄存器被置为1,EE2的输入寄存器被置为1,如此,EE2被启动。
然而,上述方案需要计算设备的CPU支持状态机的输入输出机制,无法适用于不支持该输入输出机制的计算设备,并且上述方式只能支持固有的控制处理,灵活性较差。
为了解决上述问题,本申请实施例可以通过中断接口接收第一外设的中断信号,并通过事件控制器根据中断信号对第二外设进行控制处理。由于本申请实施例是通过无线接口和事件控制器实现的,并不需要计算设备的CPU支持状态机的输入输出机制,从而可以应用于不支持输入输出机制的计算设备。此外,由于事件控制器是数字逻辑电路,与中央处理器之间相互独立,从而不需要唤醒中央处理器,可以降低唤醒中央处理器之后,中央处理器的功耗。并且,事件控制器可以将源寄存器指定的控制标记写入到目标寄存器指定的目标地址,以实现对第二设备的控制处理。由于源寄存器指定的控制标记和目标寄存器指定的目标地址都可以灵活配置,以实现对不同的第二外设进行不同的控制处理,提高了灵活性。
本申请实施例提供的中断处理电路包括至少一个中断接口,每个中断接口对应有一个事件控制器、一个源寄存器、一个目标寄存器。
图2示例性示出了本申请实施例提供的一种外设的中断处理电路的结构示意图。参照图2所示,中断处理电路包括m个中断接口:IRQ_EN_1至IRQ_EN_m,m个事件控制器:ECR_1至ECR_m,m个源寄存器:SRC_REG_1至SRC_REG_m,m个目标寄存器:DES_REG_1至DES_REG_m。
其中,中断接口是一个物理接口,例如,USB(universal serial bus,通用串行总线)接口。中断接口被插入一个外设时,该中断接口即可接收到该外设发送的中断信号。
需要说明的是,中断接口的数量可以根据计算设备的数据总线位数对应。例如,若数据总线位数为32,则中断接口的数量可以为32,也就是图2中的m为32。不同中断接口之间、不同事件控制器之间是互不影响,独立运行的。
基于图2所示的中断处理电路,图3示例性示出了本申请实施例提供的一种外设的中断处理方法的步骤流程图。如图3所示,该方法可以包括:S201和S202。
S201、通过中断接口接收第一外设的中断信号。
其中,中断接口是上述多个中断接口中的其中一个,该中断接口接收到的中断信号是与该中断接口电连接的外部设备发送的。外部设备可以在预设条件下发送中断信号。中断信号可以是一个高电平的信号,或者是高低电平交替的信号,本申请实施例对中断信号的具体形式不加以限制。
S202、响应于中断信号,通过中断接口对应的事件控制器,将中断接口对应的源寄存器指定的控制标记,写入到中断接口对应的目标寄存器指定的目标地址中,控制标记用于指示对目标地址对应的第二外设,进行与控制标记对应的控制处理。
上述每个中断接口对应一个事件控制器和一个源寄存器、一个目标寄存器。也就是,中断接口、事件控制器、源寄存器、目标寄存器之间构成一一对应的映射关系。如图2所示,中断接口存在m个,则事件控制器的数量也为m,源寄存器的数量也为m,目标寄存器的数量也为m。
需要说明的是,上述源寄存器和目标寄存器可以是计算设备的寄存器中为中断接口分配的存储区域,也可以分别是一个独立的寄存器。本申请实施例对其不加以限制。
其中,上述控制处理包括但不限于:启动第二外设、清除第二外设的寄存器、关闭第二外设。
上述源寄存器中的信息包括:控制标记或控制标记的存储地址。源寄存器指定的控制标记就是源寄存器中存储的控制标记,或源寄存器中存储的存储地址中存储的控制标记。源寄存器指定的控制标记不同,代表对中断信号的不同控制处理。
上述目标寄存器中的信息为控制标记的写入地址,目标寄存器指定的目标地址就是目标寄存器中存储的写入地址。不同的目标地址代表对不同的外部设备进行控制处理。
上述源寄存器和目标寄存器中的信息是可以根据具体应用场景灵活配置的。从而,对源寄存器中的信息的配置就是对控制处理的修改,对目标寄存器中的信息的配置就是对操作的外部设备的修改。
下面举例说明对源寄存器和目标寄存器中的信息进行修改之后的控制处理过程。例如,在t1时刻,将中断接口IRQ_EN_1对应的源寄存器中的控制标记配置为CI1,将中断接口IRQ_EN_1对应的目标寄存器中的目标地址调整为ADDR1,在t2时刻,将中断接口IRQ_EN_1对应的源寄存器中的控制标记配置为CI2,将中断接口IRQ_EN_1对应的目标寄存器中的目标地址调整为ADDR2。假设存在两个时间t3和t4,t4>t2>t3>t1,并且CI1对应启动外部设备,CI2对应清理外部设备的寄存器,ADDR1对应外部设备EE1,ADDR2对应外部设备EE2。从而,在t3时刻接收到中断信号时,事件控制器将控制标记CI1写入ADDR1中,以实现启动EE1;在t4时刻接收到中断信号时,事件控制器将控制标记CI2写入ADDR2中,以实现清理EE2的寄存器。
从上述过程可以看出,在接收到中断信号时,可以通过事件控制器对中断信号进行处理,以实现对第二外设的控制处理。
在本申请实施例的另一种实例中,还可以通过配置灵活的选取是否通过事件控制器对中断信号进行处理。
具体地,每个上述中断接口对应一个预设事件标记,从而可以根据预设时间标记的具体取值是否通过事件控制器对中断信号进行处理。其中,预设事件标记可以存储于中断接口对应的一个寄存器中。预设事件标记可以对应有两种取值:第一标记和第二标记。
当中断接口对应的预设事件标记为第一标记时,通过中断接口对应的事件控制器,将中断接口对应的源寄存器指定的控制标记,写入到中断接口对应的目标寄存器指定的目标地址中。例如,参照图4所示,IRQ_EN_1接收到第一外设发送的中断信号时,如果IRQ_EN_1对应的预设事件标记为第一标记,则通过ECR_EN_1对应的事件控制器ECR_1将控制标记写入到目标地址中,以实现对第二外设的控制处理。
当中断接口对应的预设事件标记为第二标记时,需要通过中央处理器对第二外设进行控制处理。此时,需要确定中央处理器的状态。中央处理器的状态包括唤醒状态和空闲状态。在唤醒状态下,中央处理器正在进行处理,此时,中央处理器的功耗较高。在空闲状态下,中央处理器不进行任何处理,此时中央处理器的功耗较低。例如,参照图4所示,IRQ_EN_1接收到第一外设发送的中断信号时,如果IRQ_EN_1对应的预设事件标记不为第二标记,也就是第二标记,则通过CPU对第二外设进行控制处理。
当中断接口对应的预设事件标记为第二标记时,如果此时中央处理器处于空闲状态,则触发该中央处理器为唤醒状态之后,通过中央处理器对第二外设进行控制处理。
当中断接口对应的预设事件标记为第二标记时,如果此时中央处理器处于唤醒状态,则直接通过中央处理器对第二外设进行控制处理。
需要说明的是,在中央处理器处于空闲状态时,本申请实施例不需要唤醒中央处理器对中断信号进行处理,而是通过事件控制器进行处理。如此,可以降低唤醒中央处理器所需要的功耗。
可选地,本申请实施例的每个中断接口还可以对应有一个控制寄存器,该控制寄存器中可以存储有事件控制器对应的工作模式。当然,前述预设事件标记也可以存储于该控制寄存器中。
从而,在接收到中断信号之后,首先,事件控制器从中断接口对应的控制寄存器中读取中断接口的工作模式;然后,事件控制器根据工作模式将中断接口对应的源寄存器指定的控制标记,写入到中断接口对应的目标寄存器指定的目标地址中。每个事件控制器均可以根据工作模式将控制标记写入到目标地址中,图5示例性示出了本申请实施例提供的事件控制器ECR_m根据控制寄存器IRQ_EN_m中的工作模式进行处理的过程示意图。
参照图5所示,工作模式包括:数值模式、第一链表模式和第二链表模式。在不同的工作模式下,事件控制器写入控制标记的模式不同。
当工作模式为数值模式时,中断接口对应的源寄存器中存储有控制标记,中断接口对应的目标寄存器中存储有目标地址。从而,事件控制器根据工作模式将控制标记写入到目标地址中,也就是事件控制器可以从源寄存器中读取控制标记,以将其写入目标地址中。
参照图5所示,在数值模式下,在中断接口每接收到一个中断信号时,中断接口对应的事件控制器都会将源寄存器中的控制标记写入到目标地址中。
如果源寄存器中存储的控制标记不变,那么至少两次接收到中断信号之后,写入的控制标记相同,也就是针对这两次中断信号进行的控制处理相同。如果源寄存器中存储的控制标记变化,那么至少两次接收到中断信号之后,写入的控制标记不同,也就是针对这两次中断信号进行的控制处理不同。
当然,如果目标地址中存储的目标地址不变,那么至少两次接收到中断信号之后,写入的目标地址相同,也就是针对两次中断信号对相同的第二外设进行控制处理。如果目标地址中存储的目标地址变化,那么至少两次接收到中断信号之后,写入的目标地址不同,也就是针对两次中断信号对不同的第二外设进行控制处理。
下面举例说明在上述源寄存器和目标寄存器中的信息变化或不变时,对应的控制处理。
例如,在t1时刻,向源寄存器中存储控制标记CI1,向目标寄存器中存储目标地址ADDR1。在t2时刻,接收到一个中断信号IRQ1,在t3时刻,接收到另一个中断信号IRQ2。其中,t1<t2<t3。那么针对这两个中断信号IRQ1和IRQ2,事件控制器对ADDR1对应的同一个第二外设,进行CI1对应的相同控制处理。
又例如,在t1时刻,向源寄存器中存储控制标记CI1,向目标寄存器中存储目标地址ADDR1。在t2时刻,接收到一个中断信号IRQ1。在t4时刻,向源寄存器中存储控制标记CI2。在t3时刻,接收到另一个中断信号IRQ2。其中,t1<t2<t4<t3。那么针对中断信号IRQ1,事件控制器对ADDR1对应的第二外设,进行CI1对应的控制处理。针对中断信号IRQ2事件控制器对ADDR1对应的第二外设,进行CI2对应的控制处理。可以看出,针对IRQ1和IRQ2,对相同的第二外设进行不同的控制操作。
再例如,在t1时刻,向源寄存器中存储控制标记CI1,向目标寄存器中存储目标地址ADDR1。在t2时刻,接收到一个中断信号IRQ1。在t4时刻,向目标寄存器中存储目标地址ADDR2。在t3时刻,接收到另一个中断信号IRQ2。其中,t1<t2<t4<t3。那么针对中断信号IRQ1,事件控制器对ADDR1对应的第二外设,进行CI1对应的控制处理。针对中断信号IRQ2事件控制器对ADDR2对应的第二外设,进行CI1对应的控制处理。可以看出,针对IRQ1和IRQ2,对不同的第二外设进行相同的控制处理。
又例如,在t1时刻,向源寄存器中存储控制标记CI1,向目标寄存器中存储目标地址ADDR1。在t2时刻,接收到一个中断信号IRQ1。在t4时刻,向源寄存器中存储控制标记CI2,向目标寄存器中存储目标地址ADDR2。在t3时刻,接收到另一个中断信号IRQ2。其中,t1<t2<t4<t3。那么针对中断信号IRQ1,事件控制器对ADDR1对应的第二外设,进行CI1对应的控制处理。针对中断信号IRQ2事件控制器对ADDR2对应的第二外设,进行CI2对应的控制处理。可以看出,针对IRQ1和IRQ2,对不同的第二外设进行不同的控制处理。
当工作模式为第一链表模式时,中断接口对应的源寄存器中存储有源链表地址,中断接口对应的目标寄存器中存储有目标链表地址。此时,事件控制器根据工作模式将控制标记写入到目标地址中,也就是图5中的将源链表地址对应的源链表中存储的多个控制标记,顺序写入目标链表地址对应的目标链表中,目标链表中的不同控制标记用于对不同的第二外设分别进行控制处理。
其中,源链表地址为源链表的起始地址,源链表中存储有至少两个顺序排列的控制标记,这些控制标记可以相同或不同。
目标链表地址为目标链表的起始地址,目标链表用于存储顺序写入的控制标记。
可以理解的是,将源链表中的多个控制标记顺序写入目标链表中,实现了将多个控制标记写入多个连续的目标地址中,以对多个第二外设进行控制处理。
下面举例说明将源链表中的控制标记写入到目标链表之后的控制处理。
例如,源寄存器中存储的源链表地址ADDR1为源链表LIST1的起始地址,目标寄存器中存储的目标链表地址ADDR2为目标链表LIST2的起始地址。源链表中存储有3个控制标记CI1、CI2和CI3,从而在接收到一个中断信号时,可以将LIST1中的CI1、CI2和CI3顺序写入LIST2中。如此,实现了对ADDR2及之后的两个地址ADDR3、ADDR4对应的第二外设,分别进行CI1、CI2和CI3对应的控制处理。也就是,对ADDR2对应的第二外设进行CI1对应的控制处理,对ADDR3对应的第二外设进行CI2对应的控制处理,对ADDR4对应的第二外设进行CI3对应的控制处理。
当然,源链表中的控制标记也可以相同。例如,源寄存器中存储的源链表地址ADDR1为源链表LIST1的起始地址,目标寄存器中存储的目标链表地址ADDR2为目标链表LIST2的起始地址。源链表中存储有3个控制标记CI1、CI2和CI1,从而在接收到一个中断信号时,可以将LIST1中的CI1、CI2和CI1顺序写入LIST2中。如此,实现了对ADDR2及之后的两个地址ADDR3、ADDR4对应的第二外设,分别进行CI1、CI2和CI1对应的控制处理。也就是,对ADDR2对应的第二外设进行CI1对应的控制处理,对ADDR3对应的第二外设进行CI2对应的控制处理,对ADDR4对应的第二外设进行CI1对应的控制处理。可以看出,对ADDR2和ADDR4对应的第二设备进行了相同的控制处理。
当工作模式为第二链表模式时,中断接口对应的源寄存器中存储有源链表的待读取地址,中断接口对应的目标寄存器中存储有目标链表的待写入地址。此时,事件控制器根据工作模式将控制标记写入到目标地址中,也就是图5中的将源链表的待读取地址中存储的控制标记写入目标链表的待写入地址中。
其中,待读取地址是源链表中的用于读取的地址。在每次读取之后待读取地址均需要更新,更新为源链表中的下一个地址。源链表中存储有至少两个顺序排列的控制标记,这些标记可以相同或不同。
同理,待写入地址是目标链表中的用于写入的地址,在每次写入之后待写入地址均需要更新,更新为目标链表中的下一个地址。目标链表用于存储顺序写入的控制标记。
与第一链表模式不同的是,在第二链表模式下,每接收到一个中断信号之后,仅将待写入地址中的一个控制标记写入到待写入地址中,待写入地址也就是目标地址。如此,如果源链表中存储有三个控制标记,则在接收到三个中断信号之后,可以将这三个控制标记写入到目标链表中。
下面举例说明将待读取地址中的控制标记写入到待写入地址中之后的控制处理。
例如,源寄存器中存储的待读取地址ADDR1为源链表LIST1的起始地址,目标寄存器中存储的待写入地址ADDR2为目标链表LIST2的起始地址。源链表中存储有3个控制标记CI1、CI2和CI3。此时,在接收到一个中断信号IRQ1时,可以将LIST1的起始地址ADDR1中存储的CI1写入LIST2的起始地址ADDR2中。如此,实现了对ADDR2对应的第二外设,进行CI1对应的控制处理。
在将CI1写入之后,将待读取地址更新为源链表中位于ADDR1之后的下一个地址ADDR5,将待写入地址更新为目标链表中位于ADDR2之后的下一个地址ADDR3。之后在接收到另一个中断信号IRQ2时,可以将LIST1的地址ADDR5中存储的CI2写入LIST2的地址ADDR3中。如此,实现了对ADDR3对应的第二外设,进行CI2对应的控制处理。
在将CI2写入之后,将待读取地址更新为源链表中位于ADDR5之后的下一个地址ADDR6,将待写入地址更新为目标链表中位于ADDR3之后的下一个地址ADDR4。之后在接收到另一个中断信号IRQ3时,可以将LIST1的地址ADDR6中存储的CI3写入LIST2的地址ADDR4中。如此,实现了对ADDR4对应的第二外设,进行CI3对应的控制处理。
当然,源链表中的控制标记也可以相同。例如,源寄存器中存储的待读取地址ADDR1为源链表LIST1的起始地址,目标寄存器中存储的待写入地址ADDR2为目标链表LIST2的起始地址。源链表中存储有3个控制标记CI1、CI2和CI1。此时,在接收到一个中断信号IRQ1时,可以将LIST1的起始地址ADDR1中存储的CI1写入LIST2的起始地址ADDR2中。如此,实现了对ADDR2对应的第二外设,进行CI1对应的控制处理。
在将CI1写入之后,将待读取地址更新为源链表中位于ADDR1之后的下一个地址ADDR5,将待写入地址更新为目标链表中位于ADDR2之后的下一个地址ADDR3。之后在接收到另一个中断信号IRQ2时,可以将LIST1的地址ADDR5中存储的CI2写入LIST2的地址ADDR3中。如此,实现了对ADDR3对应的第二外设,进行CI2对应的控制处理。
在将CI2写入之后,将待读取地址更新为源链表中位于ADDR5之后的下一个地址ADDR6,将待写入地址更新为目标链表中位于ADDR3之后的下一个地址ADDR4。之后在接收到另一个中断信号IRQ3时,可以将LIST1的地址ADDR6中存储的CI1写入LIST2的地址ADDR4中。如此,实现了对ADDR4对应的第二外设,进行CI1对应的控制处理。
当然,对于上述第一链表模式和第二链表模式,上述源链表还可以对应设置有结束标志,以将该结束标志之前的控制标记写入到目标链表中。
需要说明的是,无论在哪种模式下,源寄存器和目标寄存器中的信息分别为一个,如果要向其中写入一个新的信息,那么原信息被替换。例如,在数值模式下,源寄存器中存储控制标记CI1,如果要写入控制标记CI2,那么就是将控制标记CI2替换掉CI1。又例如,目标寄存器中存储目标地址ADDR1,如果要写入目标地址ADDR2,那么就是要将目标地址ADDR2替换掉ADDR1。
可选地,中断接口还对应有位寄存器,该位寄存器中存储有目标位,目标位用于表示控制标记在目标地址中占用的比特。
其中,目标位可以用一个数值表示,该数值可以是任意进制的。例如,当目标位为ox3时,代表目标位是用十六进制表示的,从而可以将十六进制的数值3转换为二进制11,以将控制标记写入目标地址中取值为1的比特中,也就是第一个比特和第二个比特。
可以看出,本申请实施例可以通过目标位灵活的控制写入目标地址中的比特位,提高了控制标记的写入灵活性。
可选地,控制寄存器中还存储有位宽,该位宽用于表示写入到目标地址的比特数。
可以理解的是,当控制标记占用的比特数大于或等于位宽,则会对控制标记进行截断。例如,若位宽为3,控制标记占用5个比特,则会将控制标记中的高两位或低两位截掉,只写入控制标记中的剩余比特位。
可选地,该中断接口还对应有状态寄存器,该状态寄存器中存储有状态信息,每个中断接口对应一个状态寄存器。从而事件控制器可以更新中断接口对应的状态信息,状态信息包括以下一种:用于表示中断接口未接收到中断信号的信息、用于表示针对中断信号待写入控制标记的信息、用于表示针对中断信号已写入控制标记的信息。
可以理解的是,上述事件控制器可以在不同阶段对状态信息进行不同的更新。例如,默认状态下将状态信息更新为表示中断接口未接收到中断信号的信息。又例如,在接收到中断信号之后,将状态信息更新为表示针对中断信号待写入控制标记的信息。在例如,在将控制标记写入到目标地址中之后,将状态信息更新为表示针对中断信号已写入控制标记的信息。
本申请实施例可以通过状态信息准确的表示中断接口的状态或事件控制器的状态,以掌握中断接口的状态或事件控制器的状态。
对应于上述外设的中断处理方法,本申请实施例提供了一种外设的中断处理电路,中断处理电路的结构可以参照图2所示。
在图2的中断处理电路中,中断接口用于接收第一外设的中断信号。
事件控制器用于响应于所述中断信号,将所述中断接口对应的源寄存器指定的控制标记,写入到所述中断接口对应的目标寄存器指定的目标地址中,所述控制标记用于指示对所述目标地址对应的第二外设,进行与所述控制标记对应的控制处理。
可选地,每个所述中断接口对应一个预设事件标记,
上述中断接口对应的事件控制器,用于若中断接口对应的所述预设事件标记为第一标记,则将所述中断接口对应的源寄存器指定的控制标记,写入到所述中断接口对应的目标寄存器指定的目标地址中。
可选地,所述中央处理器处于空闲状态,所述外设的中断处理电路还用于若所述中断接口对应的所述预设事件标记为第二标记,则触发所述中央处理器为唤醒状态;上述中央处理器用于对所述第二外设进行控制处理。
可选地,上述中断接口对应的事件控制器,还用于通过所述中断接口对应的所述事件控制器,从所述中断接口对应的控制寄存器中读取所述中断接口的工作模式;根据所述工作模式将所述中断接口对应的源寄存器指定的控制标记,写入到所述中断接口对应的目标寄存器指定的目标地址中。
可选地,所述工作模式为数值模式,所述中断接口对应的所述源寄存器中存储有控制标记,所述中断接口对应的所述目标寄存器中存储有目标地址,上述中断接口对应的事件控制器,用于将所述控制标记写入所述目标地址中。
可选地,所述工作模式为第一链表模式,所述中断接口对应的源寄存器中存储有源链表地址,所述中断接口对应的目标寄存器中存储有目标链表地址,上述中断接口对应的事件控制器,用于将所述源链表地址对应的源链表中存储的多个控制标记,顺序写入所述目标链表地址对应的目标链表中,所述目标链表中的不同所述控制标记用于对不同的第二外设分别进行控制处理。
可选地,所述工作模式为第二链表模式,所述中断接口对应的源寄存器中存储有源链表的待读取地址,所述中断接口对应的所述目标寄存器中存储有目标链表的待写入地址,上述中断接口对应的事件控制器,用于将所述源链表的待读取地址中存储的控制标记写入所述目标链表的待写入地址中。
可选地,上述中断处理电路还用于:更新所述源链表的待读取地址,以及,更新所述目标链表的待写入地址。
可选地,所述中断接口还对应有位寄存器,所述位寄存器中存储有目标位,所述目标位用于表示控制标记在所述目标地址中占用的比特。
可选地,所述控制寄存器中还存储有位宽,所述位宽用于表示写入到所述目标地址的比特数。
可选地,所述中断接口还对应有状态寄存器,所述状态寄存器中存储有所述状态信息,所述中断接口的事件控制器还用于:
更新所述中断接口对应的所述状态信息,所述状态信息包括以下一种:用于表示所述中断接口未接收到中断信号的信息、用于表示针对所述中断信号待写入所述控制标记的信息、用于表示针对所述中断信号已写入所述控制标记的信息。
可选地,所述控制处理包括以下至少一种:启动所述第二外设、清除所述第二外设的寄存器、关闭所述第二外设。
上述外设的中断处理电路的实施例是上述方法实施例对应的装置实施例,具有与方法实施例相同的技术效果,详细说明可以参照方法实施例的详细说明,本申请实施例在此不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
Claims (13)
1.一种外设的中断处理方法,其特征在于,应用于中断处理电路,所述中断处理电路包括至少一个中断接口、与所述中断接口对应的事件控制器,每个中断接口对应一个事件控制器,所述事件控制器是独立于中央处理器的数字逻辑电路,所述方法包括:
通过所述中断接口接收第一外设的中断信号;
响应于所述中断信号,通过所述中断接口对应的所述事件控制器,将所述中断接口对应的源寄存器指定的控制标记,写入到所述中断接口对应的目标寄存器指定的目标地址中,所述控制标记用于指示对所述目标地址对应的第二外设,进行与所述控制标记对应的控制处理。
2.根据权利要求1所述的方法,其特征在于,每个所述中断接口对应一个预设事件标记,所述通过所述中断接口对应的所述事件控制器,将所述中断接口对应的源寄存器指定的控制标记,写入到所述中断接口对应的目标寄存器指定的目标地址中,包括:
若所述中断接口对应的所述预设事件标记为第一标记,则通过所述中断接口对应的所述事件控制器,将所述中断接口对应的源寄存器指定的控制标记,写入到所述中断接口对应的目标寄存器指定的目标地址中。
3.根据权利要求2所述的方法,其特征在于,所述中央处理器处于空闲状态,所述方法还包括:
若所述中断接口对应的所述预设事件标记为第二标记,则触发所述中央处理器为唤醒状态;
通过所述中央处理器对所述第二外设进行控制处理。
4.根据权利要求1所述的方法,其特征在于,所述将所述中断接口对应的源寄存器指定的控制标记,写入到所述中断接口对应的目标寄存器指定的目标地址中,包括:
通过所述中断接口对应的所述事件控制器,从所述中断接口对应的控制寄存器中读取所述中断接口的工作模式;
根据所述工作模式将所述中断接口对应的源寄存器指定的控制标记,写入到所述中断接口对应的目标寄存器指定的目标地址中。
5.根据权利要求4所述的方法,其特征在于,所述工作模式为数值模式,所述中断接口对应的所述源寄存器中存储有控制标记,所述中断接口对应的所述目标寄存器中存储有目标地址,所述根据所述工作模式将所述中断接口对应的源寄存器指定的控制标记,写入到所述中断接口对应的目标寄存器指定的目标地址中,包括:
将所述控制标记写入所述目标地址中。
6.根据权利要求4所述的方法,其特征在于,所述工作模式为第一链表模式,所述中断接口对应的源寄存器中存储有源链表地址,所述中断接口对应的目标寄存器中存储有目标链表地址,所述根据所述工作模式将所述中断接口对应的源寄存器指定的控制标记,写入到所述中断接口对应的目标寄存器指定的目标地址中,包括:
将所述源链表地址对应的源链表中存储的多个控制标记,顺序写入所述目标链表地址对应的目标链表中,所述目标链表中的不同所述控制标记用于对不同的第二外设分别进行控制处理。
7.根据权利要求4所述的方法,其特征在于,所述工作模式为第二链表模式,所述中断接口对应的源寄存器中存储有源链表的待读取地址,所述中断接口对应的所述目标寄存器中存储有目标链表的待写入地址,所述根据所述工作模式将所述中断接口对应的源寄存器指定的控制标记,写入到所述中断接口对应的目标寄存器指定的目标地址中,包括:
将所述源链表的待读取地址中存储的控制标记写入所述目标链表的待写入地址中。
8.根据权利要求7所述的方法,其特征在于,还包括:
更新所述源链表的待读取地址,以及,更新所述目标链表的待写入地址。
9.根据权利要求1至8任一项所述的方法,其特征在于,所述中断接口还对应有位寄存器,所述位寄存器中存储有目标位,所述目标位用于表示控制标记在所述目标地址中占用的比特。
10.根据权利要求4至8任一项所述的方法,其特征在于,所述控制寄存器中还存储有位宽,所述位宽用于表示写入到所述目标地址的比特数。
11.根据权利要求1所述的方法,其特征在于,所述中断接口还对应有状态寄存器,所述状态寄存器中存储有状态信息,还包括:
通过所述中断接口对应的所述事件控制器,更新所述中断接口对应的所述状态信息,所述状态信息包括以下一种:用于表示所述中断接口未接收到中断信号的信息、用于表示针对所述中断信号待写入所述控制标记的信息、用于表示针对所述中断信号已写入所述控制标记的信息。
12.根据权利要求1所述的方法,其特征在于,所述控制处理包括以下至少一种:启动所述第二外设、清除所述第二外设的寄存器、关闭所述第二外设。
13.一种外设的中断处理电路,其特征在于,包括至少一个中断接口、与所述中断接口对应的事件控制器,每个中断接口对应一个事件控制器,所述事件控制器是独立于中央处理器的数字逻辑电路;
所述中断接口用于接收第一外设的中断信号;
所述事件控制器用于响应于所述中断信号,将所述中断接口对应的源寄存器指定的控制标记,写入到所述中断接口对应的目标寄存器指定的目标地址中,所述控制标记用于指示对所述目标地址对应的第二外设,进行与所述控制标记对应的控制处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110714677.1A CN113282397B (zh) | 2021-06-25 | 2021-06-25 | 外设的中断处理方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110714677.1A CN113282397B (zh) | 2021-06-25 | 2021-06-25 | 外设的中断处理方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113282397A CN113282397A (zh) | 2021-08-20 |
CN113282397B true CN113282397B (zh) | 2022-08-30 |
Family
ID=77285873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110714677.1A Active CN113282397B (zh) | 2021-06-25 | 2021-06-25 | 外设的中断处理方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113282397B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117407059B (zh) * | 2023-10-25 | 2024-05-07 | 合芯科技有限公司 | 中断控制方法、设备、存储介质及程序产品 |
CN117667466A (zh) * | 2024-02-01 | 2024-03-08 | 井芯微电子技术(天津)有限公司 | 一种中断处理方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101315648A (zh) * | 2008-07-22 | 2008-12-03 | 中国科学院计算技术研究所 | 一种满足systemC语法的多核处理器的事件处理单元组 |
CN104111870A (zh) * | 2014-07-08 | 2014-10-22 | 福建星网锐捷网络有限公司 | 一种中断处理装置及中断处理方法 |
CN105095128A (zh) * | 2014-05-22 | 2015-11-25 | 中兴通讯股份有限公司 | 中断处理方法及中断控制器 |
CN106681816A (zh) * | 2016-12-27 | 2017-05-17 | 深圳开立生物医疗科技股份有限公司 | PCIe中断方法和系统 |
CN110069432A (zh) * | 2018-01-22 | 2019-07-30 | 华大半导体有限公司 | 带有数据处理功能的外围电路互连系统及其联动方法 |
-
2021
- 2021-06-25 CN CN202110714677.1A patent/CN113282397B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101315648A (zh) * | 2008-07-22 | 2008-12-03 | 中国科学院计算技术研究所 | 一种满足systemC语法的多核处理器的事件处理单元组 |
CN105095128A (zh) * | 2014-05-22 | 2015-11-25 | 中兴通讯股份有限公司 | 中断处理方法及中断控制器 |
CN104111870A (zh) * | 2014-07-08 | 2014-10-22 | 福建星网锐捷网络有限公司 | 一种中断处理装置及中断处理方法 |
CN106681816A (zh) * | 2016-12-27 | 2017-05-17 | 深圳开立生物医疗科技股份有限公司 | PCIe中断方法和系统 |
CN110069432A (zh) * | 2018-01-22 | 2019-07-30 | 华大半导体有限公司 | 带有数据处理功能的外围电路互连系统及其联动方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113282397A (zh) | 2021-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113282397B (zh) | 外设的中断处理方法及设备 | |
JPH02267634A (ja) | 割込み処理装置 | |
US6691179B2 (en) | Direct memory access controller for converting a transfer mode flexibly in accordance with a data transfer counter value | |
CN112099856A (zh) | 嵌入式系统及系统的启动方法 | |
JPH07160392A (ja) | キーコード可変キーボード | |
KR20040052443A (ko) | 마이크로프로세서를 위한 인터럽트 제어기 | |
KR100410986B1 (ko) | 디지털신호프로세서 외부메모리의 억세스제어방법 | |
JP2005010966A (ja) | Lsi装置 | |
JPS6235958A (ja) | マイクロ・コンピユ−タ | |
EP0162231A2 (en) | Multi-function CPU having interface | |
JP2758745B2 (ja) | 記憶回路 | |
JP4174272B2 (ja) | デバイス制御装置 | |
KR0162763B1 (ko) | 먹스를 이용한 pci 디바이스의 형상영역 설계장치 및 방법 | |
JPS60225959A (ja) | 複合機能cpu | |
JPH11353170A (ja) | フラッシュメモリ制御装置およびフラッシュメモリ制御装置のメモリアクセス方法 | |
JPH01219930A (ja) | 間接アドレス方式の割り込み制御回路装置 | |
JPS6280744A (ja) | Ramの制御回路 | |
JPH06161944A (ja) | Dma制御装置 | |
JPS5922961B2 (ja) | シ−ケンスコントロ−ラ | |
JPH02268355A (ja) | 制御信号の出力方式 | |
KR20060120959A (ko) | 데이터 기입장치 및 방법 | |
JPH05298089A (ja) | レジスタ | |
JPH04270430A (ja) | アドレス拡張方式 | |
JPS63144496A (ja) | 記憶装置の書込み制御方式 | |
JP2001109709A (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 |