中断处理方法及中断控制器的制造方法

文档序号:9375516阅读:310来源:国知局
中断处理方法及中断控制器的制造方法
【技术领域】
[0001 ] 本发明涉及通信领域,具体涉及一种中断处理方法及中断控制器。
【背景技术】
[0002]在移动芯片上的中断控制器设计领域,目前常见的中断控制器处理方式为被动接受中断信号的方式,当前中断控制器结构如图1所示。目前移动芯片的设计都是SOC的架构,几乎所有的外设都集成在片上,通过不同的总线和总线桥作为slave完成与CPU的交互,通过中断线作为master完成与CPU的交互。外设内部所有的中断通过共享一根中断线连接到中断控制器上。中断控制器中的采样接口对接入的中断线进行采样,并将采样结果送给中断控制逻辑。当连接在中断控制器上的某根中断线有效时,中断控制逻辑根据用户预先通过slave 口设定在寄存器组中的信息(中断使能与否,中断触发方式和中断优先级等信息)来判决当前采样的信号是否有效。如果有效,则控制采样接口停止对当前响应中断线的采样,同时使连接CPU的中断线有效,使CPU响应中断。CPU自动关闭总中断,然后运行中断处理程序,从中断控制器组中读取当前相应的中断号,然后根据中断号处理对应的中断。如果响应的中断的触发方式是电平类型的,还需要在中断处理程序中写相应的外设中的中断清除寄存器来清除中断源。当中断处理完毕后,中断处理程序会写入中断控制器要求的值给中断控制器组中的指定寄存器,这样中断控制逻辑就会使能采样接口对当前响应的中断线继续采样,以响应新的中断。同时CPU总中断会被打开,以响应其它的中断。
[0003]在上述中断控制器对中断的处理方法中,对于电平触发的中断,在用户没有清除中断源的情况下,中断控制器会在响应完一次中断后继续响应当前的中断,造成系统运行故障。同时在SOC系统中外设往往挂在不同的速度的子总线下,CPU在进行中断源的清除时,需要经过很多个总线转换桥去访问相应外设的中断清除寄存器以获取清除中断源所需要的信息;导致CPU做一次中断源清除操作需要花费很多时间,不利于对中断的快速响应;而中断的处理原则是关闭系统总中断的时间尽量短,否者会延迟其它中断的响应时间。

【发明内容】

[0004]本发明要解决的主要技术问题是,提供一种中断处理方法及中断控制器,解决现有中断源的清除需花费处理器较多时间的问题。
[0005]为解决上述技术问题,本发明提供一种中断处理方法,包括:
[0006]在处理器将当前中断的中断处理完毕标识信息写入中断控制器之前,将所述中断的中断源清除信息存入所述中断控制器;
[0007]在所述中断控制器接收到所述处理器发送的写入所述中断处理完毕标识信息请求时,根据所述中断控制器中存储的所述中断源清除信息对所述中断的中断源进行清除。
[0008]在本发明的一种实施例中,所述中断源清除信息包括产生所述中断的外设的中断清除寄存器地址以及所述中断对应的中断状态寄存器中的内容。
[0009]在本发明的一种实施例中,将所述中断清除寄存器地址存入所述中断控制器包括:
[0010]在所述外设初始化时,获取所述外设的中断清除寄存器地址并存入所述中断控制器中。
[0011 ] 在本发明的一种实施例中,所述方法还包括:在所述外设初始化时,获取所述外设的中断状态寄存器地址并存入所述中断控制器中。
[0012]在本发明的一种实施例中,将所述中断对应的中断状态寄存器内容存入所述中断控制器包括:监测到所述处理器模块响应所述外设产生的中断时,根据所述中断状态寄存器地址读取所述中断对应的中断状态寄存器中的内容存入所述中断控制器中。
[0013]在本发明的一种实施例中,所述处理器响应所述中断后,当需要获取所述中断对应的中断状态寄存器内容时,从所述中断控制器直接获取。
[0014]在本发明的一种实施例中,根据所述中断控制器中存储的所述中断源清除信息对所述中断的中断源进行清除包括:
[0015]采用所述中断清除寄存器地址,以所述中断状态寄存器中的内容为数据发起总线写传输。
[0016]在本发明的一种实施例中,所述中断为电平触发式中断。
[0017]为了解决上述问题,本发明还提供了一种中断控制器,包括存储模块和中断清除模块;
[0018]所述中断清除模块用于在处理器将当前中断的中断处理完毕标识信息写入所述中断控制器之前,获取所述中断的中断源清除信息并存储在所述存储模块中;以及用于在所述中断控制器接收到所述处理器发送的写入所述中断处理完毕标识信息请求时,根据所述存储模块存储的所述中断源清除信息对所述中断的中断源进行清除。
[0019]在本发明的一种实施例中,所述中断源清除信息包括产生所述中断的外设的中断清除寄存器地址以及所述中断对应的中断状态寄存器中的内容。
[0020]在本发明的一种实施例中,所述存储模块包括中断清除寄存器地址存储单元;所述中断清除模块在所述外设初始化时,获取所述外设的中断清除寄存器地址并存入所述中断清除寄存器地址存储单元。
[0021 ] 在本发明的一种实施例中,所述存储模块包括中断状态寄存器地址存储单元所述中断清除模块在所述外设初始化时,获取所述外设的中断状态寄存器地址并存入所述中断状态寄存器地址存储单元。
[0022]在本发明的一种实施例中,所述存储模块还包括中断状态寄存器内容存储单元;所述中断清除模块用于在所述处理器模块响应所述外设产生的中断时,根据所述外设的中断状态寄存器地址读取所述中断对应的中断状态寄存器中的内容存入所述中断状态寄存器内容存储单元。
[0023]在本发明的一种实施例中,所述中断状态寄存器内容存储单元还用于在所述处理器响应所述中断后且需要获取所述中断对应的中断状态寄存器内容时,直接为所述处理器提供其存储的中断状态寄存器内容。
[0024]在本发明的一种实施例中,所述中断清除模块根据所述存储模块存储的所述中断源清除信息对所述中断的中断源进行清除包括:
[0025]采用所述中断清除寄存器地址,以所述中断状态寄存器中的内容为数据发起总线写传输。
[0026]本发明的有益效果是:
[0027]本发明提供的中断处理方法及中断控制器,在处理器将当前中断的中断处理完毕标识信息写入中断控制器之前,就将该中断的中断源清除信息存入中断控制器;然后在中断控制器接收到处理器发送的写入中断处理完毕标识信息请求时,直接根据中断控制器中存储的中断源清除信息对该中断的中断源进行清除;并不需要处理器先通过多个总线转换桥去访问相应外设的中断清除寄存器以获取清除中断源所需要的信息,然后再进行清除。因此本发明提供的方案可以在较大程度上缩短中断源清除所需的时间,避免延迟其他中断的响应时间。
【附图说明】
[0028]图1为现有的中断控制器结构示意图;
[0029]图2为本发明实施例一提供的中断处理方法流程图;
[0030]图3为本发明实施例二提供的中断控制器结构图;
[0031]图4为本发明实施例三提供的中断控制器结构图;
[0032]图5为本发明实施例三提供的触发中断源清除的流程示意图;
[0033]图6为本发明实施例三提供的中断源清除过程流程示意图。
【具体实施方式】
[0034]下面通过【具体实施方式】结合附图对本发明作进一步详细说明。
[0035]实施例一:
[0036]请参见图2所示,本实施例提供的中断处理方法包括以下步骤:
[0037]步骤201:在处理器将当前中断的中断处理完毕标识信息写入中断控制器之前,将中断的中断源清除信息存入中断控制器;
[0038]本实施例中的中断处理完毕标识信息是指当中断处理完毕后,中断处理程序会写入中断控制器要求的值给中断控制器组中的指定寄存器,这样中断控制器的中断控制逻辑就会使能采样接口对当前响应的中断线继续采样,以响应新的中断;同时处理器的总中断会被打开,以响应其它的中断;
[0039]步骤202:在中断控制器接收到处理器发送的写入中断处理完毕标识信息请求时,直接根据中断控制器中存储的中断源清除信息对该中断的中断源进行清除;
[0040]步骤203:将中断处理完毕标识信息写入中断控制器要求的值给中断控制器组中的指定寄存器。
[0041]可见,本实施例提供的中断处理方法,在处
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1