一种嵌入式片上多处理器的中断处理方法

文档序号:6582034阅读:168来源:国知局

专利名称::一种嵌入式片上多处理器的中断处理方法
技术领域
:本发明属于片上多处理器
技术领域
,具体涉及一种嵌入式片上多处理器的中断处理方法。
背景技术
:在单处理器中,中断是CPU在运行当前程序过程中,当出现某些异常事件或某种外部请求内部软件中断请求时,使得CPU暂时停止正在执行的程序,转到执行处理异常或外部设备服务内部软件中断的处理程序,运行完毕后CPU再返回暂时停止的程序处,继续执行原程序。当CPU外设较多时,某一时刻可能会产生大量中断,使得CPU长时间处于中断状态,使得一些中断事件得不到处理,降低了系统的实时性和整体性能。多处理器技术的发展,可以解决上述问题,这就要求有一个合理的多处理器中断控制器。如果将所有中断放在同一个处理器核上处理,同样会出现上述问题。由INTEL公司开发的用于通用计算机的先进的可编程中断控制器(APIC),配合外部8259A协同工作,可以达到处理由处理器在其中断输入引脚上所接收的外部中断以及由软件产生的中断,在多处理器系统中,它与外部的I/OAPIC芯片进行通信,并把这些中断分配给系统总线上的处理器来处理,同时通过总线仲裁动态的修改各局部APIC的仲裁优先级,以维持其均衡性。在申请号为CN200810135521的专利"多核处理器中断负载均衡方法和装置"中,将处理器核动态的分为两组分别专门处理进程和中断,其动态分配处理器核的算法一定程度上解决了中断负载均衡,但以专门划分出一定数目的处理器核为代价,当处理器核数目少时很不划算。多处理器不仅用于通用计算机、服务器,嵌入式片上多处理器也快速发展起来,逐渐向电子通讯、多媒体、工业控制、自动化、智能设备等领域发展。然而应用于嵌入式领域的片上多处理器的中断处理方法还几乎一片空白,如果像通用多处理器计算机那样实现中断处理要求修改各处理器核的原有体系结构,大大增加嵌入式片上多处理器系统开发的时间和成本。
发明内容本发明的目的在于提出一种嵌入式片上多处理器的中断处理方法。本发明提出的嵌入式片上多处理器的中断处理方法,包括基于片上总线的多处理器中断调节器、外部中断的处理、核间中断处理,具体如下(1)基于片上总线的多处理器中断调度器通过设计符合片上总线接口标准的多处理器中断调度器(Multi-ProcessorInterruptScheduler,MPIS)IP核对中断实现集中式调度。该多处理器中断调度器与片上总线相连,实现与各处理器核的通信以及接受来自处理器核发来的中断通信信息,多处理器中断调度器输入端连接外部1/0设备中断源接口,接受外部中断信号源,多处理器中断调度器的N个(为处理器核的个数)输出端中断信号分别连接至各处理器CPU原先的外部不可屏蔽(或已使能)中断信号源端口。通过该多处理器中断调度器实现对外部中断的处理以及核间中断通信处理;(2)外部中断的处理分别记录外部可屏蔽和不可屏蔽中断源信号于多处理器中断调度器的相应寄存器中,程序赋予各中断源优先级(整体上核间中断通信优先级高于外部不可屏蔽中断高于可屏蔽中断),程序设置可屏蔽中断源的使能情况,判断完要调度的中断后,查看各CPU的运行状况(包括正在运行的程序信息和CPU的使用率,由各CPU发送至MPIS相应寄存器,操作系统完成),先中断正在运行的优先级比较低任务的CPU,在任务优先级相同时中断CPU使用率较低的CPU,即在考虑了系统实时性的同时考虑系统负载均衡;(3)核间中断通信处理核间中断通信由各CPU通过片上总线发送中断信息到多处理器中断调度器并记录,然后多处理器中断调度器根据记录文件向被中断CPU发出中断信息,该CPU在中断后读取MPIS的对应CPU中断调度寄存器,做相应的中断服务程序或获取通信数据。本发明具有的有益效果是:本发明是一种嵌入式片上多处理器的中断处理方法,在不改变处理器核原体系结构的基础上通过MPIS合理有效的实现对外部中断和内部中断通信的处理,加快嵌入式片上多处理器系统开发的速度,在考虑了系统实时性的同时考虑系统负载均衡。图l是MPIS在片上多处理器系统中的连接关系示意图。图2是MPIS的内部结构框图。图3是本发明解决外部中断的实施过程示意图。图4是本发明解决核间中断通信的实施过程示意图。具体实施例方式以下结合本发明的方法。实施例1:本发明提出的一种嵌入式片上多处理器的中断处理方法,包括以下过程-1)MPIS在片上多处理器系统中的连接关系。这里以4核处理器为例,如图1所示,MPIS以一个IP核的形式添加到该片上多处理器系统,MPIS以从端口连接在系统中统一的片上总线之上,该MPIS的输入端是I/O设备接口产生外部中断信号源,包括可屏蔽和不可屏蔽中断信号源。另外MPIS还产生中断输出信号INT0、INT1、INT2、INT3,分别连接CPU0、CPU1、CPU2、CPU3原本自带的不可屏蔽外部中断(或已使能)接口。通过该MPIS对外部中断信号源和内部中断通信信号源集中管理调度。2)MPIS内部结构框架。这里假设外部可屏蔽中断信号为64路INTM[63:0],外部不可屏蔽中断信号为32路INTUM[31:0],内部中断通信信号数为8,片上总线信号包括clk、chipselect、address、read、readdata、write、writedata等,如图2所示。MPIS中的寄存器文件包括核间中断通信寄存器、外部不可屏蔽中断寄存器、外部可屏蔽中断寄存器、可屏蔽中断使能寄存器、CPU中断调度寄存器组、CPU运行状态寄存器组、CPU中断使能寄存器等。核间中断通信寄存器用于存储来自CPU的核间中断通信信号,这里有8个内部中断信号,定义为32位寄存器变量CIR,即8个4位的寄存器,其中每个4位代表一个核间中断,其0-1位代表被中断的4个CPUID号OO代表CPUO、Ol代表CPUl、10代表CPU2、11代表CPU3,2位保留清零,3位是1或0代表该中断信号产生与否。外部不可屏蔽中断寄存器定义为32位寄存器变量0UMR,其每一位是1或0代表该中断信号产生与否,同理定义外部可屏蔽中断寄存器为64位寄存器变量(MR。可屏蔽中断使能寄存器用来标识64位外部可屏蔽中断信号源的使能情况,定义为64位寄存器变量MER,每一位是1或O代表相应的外部可屏蔽中断信号源的屏蔽与否。CPU中断调度寄存器组这里有4个CPU中断调度寄存器,分别寄存各CPU的中断调度结果情况。这里定义4个8位的寄存器变量PISRO、PISR1、PISR2、PISR3分别寄存CPUO、CPU1、CPU2、CPU3的中断调度结果。表1列出PISRO的字段描述表lPISRO字段描述位描述5<table>tableseeoriginaldocumentpage6</column></row><table>状态。这里定义4个16位的寄存器变量PRSRO、PRSR1、PRSR2、PRSR3分别寄存CPUO、CPU1、CPU2、CPU3的当前运行状态。表2列出PRSRO的字段描述。表2PRSRO字段描述<table>tableseeoriginaldocumentpage6</column></row><table>源屏蔽情况。利用该寄存器可以让各CPU在程序的控制下实现随意的中断开关,关闭中断的CPU只运行任务程序,开中断的CPU可同时运行任务程序和接受中断。这里定义16为的寄存器变量PIER,其0-3位为1或0分别代表CPUO、CPU1、CPU2、CPU3中断使能与否。4-14为保留清零。15位为1或0代表全部外部可屏蔽中断源的屏蔽与否。MPIS的中断逻辑模块根据寄存器文件的情况做出相应的处理,和修改寄存器文件,结合CPU共同完成片上多处理器系统的中断处理。3)外部中断处理。MPIS对外部中断信号源的处理过程如图3所示,当外部可屏蔽和不可屏蔽中断信号产生时,MPIS将信号寄存在OMR、OUMR中的相应位,中断逻辑根据MER找出需要处理的中断源,查看PRSRO,PRSR1,PRSR2,PRSR3的相应位找出运行最低优先级任务的CPU,如果运行最低相同优先级任务的CPU不止一个,找出各CPU的当前CPU使用率最低的CPU,将找出的该CPU对应的PISR修改为对应找出的需要处理的中断源中最先需要处理的中断源信息。如果CPU上都运行中断服务程序,规则同上。当MPIS决定完要被中断CPU,向各CPU发出INTO、INT1、INT2、INT3中断信号,各CPU产生中断后通过片上总线读取各自对应的PISR寄存器值,根据此寄存器值将CPU跳转到相应已注册服务程序的入口地址执行中断服务程序。4)核间中断通信处理。MPIS对核间通信中断信号源的处理过程如图4所示,由CPU产生核间中断信息,包括被中断的CPU和核间通信中断的ID,通过片上总线修改CIR的对应字段,MPIS査看要被中断CPU对应的PRSR,判断优先级以及CPU使用率决定是否修改要被中断的CPU的PISR寄存器,产生中断信号INTn,CPU中断后通过片上总线读取该CPU的PISR,根据此寄存器值将CPU跳转到相应已注册服务程序的入口地址执行核间中断服务程序或获取通信数据。权利要求1、一种嵌入式片上多处理器的中断处理方法,其特征在于包括基于片上总线的多处理器中断调节器、外部中断的处理、核间中断处理,具体步骤如下(1)基于片上总线的多处理器中断调度器通过设计符合片上总线接口标准的多处理器中断调度器IP核对中断实现集中式调度;该多处理器中断调度器与片上总线相连,实现与各处理器核的通信以及接受来自处理器核发来的中断通信信息,多处理器中断调度器输入端连接外部I/O设备中断源接口,接受外部中断信号源,多处理器中断调度器的N个输出端中断信号分别连接至各处理器CPU原先的外部不可屏蔽中断信号源端口;通过该多处理器中断调度器实现对外部中断的处理以及核间中断通信处理;(2)外部中断的处理分别记录外部可屏蔽和不可屏蔽中断源信号于多处理器中断调度器的相应寄存器中,程序赋予各中断源优先级,即整体上核间中断通信优先级高于外部不可屏蔽中断高于可屏蔽中断,程序设置可屏蔽中断源的使能情况,判断完要调度的中断后,查看各CPU的运行状况,包括正在运行的程序信息和CPU的使用率,由各CPU发送至MPIS相应寄存器,操作系统完成,先中断正在运行的优先级比较低任务的CPU,在任务优先级相同时中断CPU使用率较低的CPU,即在考虑了系统实时性的同时考虑系统负载均衡;(3)核间中断通信处理核间中断通信由各CPU通过片上总线发送中断信息到多处理器中断调度器并记录,然后MPIS根据记录文件向被中断CPU发出中断信息,该CPU在中断后读取多处理器中断调度器对应CPU中断调度寄存器,做相应的中断服务程序或获取通信数据。全文摘要本发明属于片上多处理器
技术领域
,具体涉及一种嵌入式片上多处理器的中断处理方法。本发明在不改变各处理器原结构的基础上,通过设计符合片上总线标准的多处理器中断调度器IP核完成对外部中断的调度,同时实现了由片上处理器产生的中断,达到核间中断通信效果。本发明实现了对片内外多中断的集中调度,考虑了实时性的同时根据对各CPU的使用率检测综合分配中断,起均衡系统负载的效果。文档编号G06F9/50GK101673221SQ200910197529公开日2010年3月17日申请日期2009年10月22日优先权日2009年10月22日发明者毅凌,芸陈申请人:同济大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1