片上系统中断机制的可靠性设计_第1页
片上系统中断机制的可靠性设计_第2页
片上系统中断机制的可靠性设计_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    片上系统中断机制的可靠性设计1引言在嵌入式系统应用中,异步实时交互系统占了很大部分,这就要求系统对数据或者控制信号的输入具有较高的响应速度。相对查询方式而言,中断方式具有响应速度快、效率高等特点,因而在嵌入式系统中广泛采用。随着VLSI进入深亚微米时代,嵌入式系统趋向于片上系统(SoC),中断控制部分不再由独立的通用中断控制芯片构成,而是由系统开发者根据特定的中断类型设计专用的中断控制逻辑。目前,对于中断控制器的设计方法以及中断的快速1 引言在嵌入式系统应用中,异步实时交互系统占了很大部分,这就要求系统对数据或者控制信号的输入具有较高的响应速度。

2、相对查询方式而言,中断方式具有响应速度快、效率高等特点,因而在嵌入式系统中广泛采用。随着VLSI进入深亚微米时代,嵌入式系统趋向于片上系统(SoC),中断控制部分不再由独立的通用中断控制芯片构成,而是由系统开发者根据特定的中断类型设计专用的中断控制逻辑。目前,对于中断控制器的设计方法以及中断的快速转移等已经有大量的研究,但是对于中断机制的可靠性问题研究较少。事实上,中断机制的可靠性问题是不可忽视的,因为Windows、Unix和Linux等操作系统中,中断的发生可以导致系统由用户态进入核心态,如果中断机制存在问题,在严重情况下可能导致安全漏洞和系统隐患。因而中断机制的可靠性问题对于高可靠性系统

3、来说是一个重要问题。本文尝试对中断机制的可靠性问题进行了一些探讨,从中断检测、中断转移和中断处理三个角度提出了安全性原则和相关的解决方法,并针对这些问题提出了一种安全的中断机制的实现。2 中断机制可靠性的探讨2.1 概述中断是一种控制转移机制,它引起处理器暂停当前程序的执行,并将控制转移给中断处理程序(Interrupt Service Routine),当中断处理完成之后恢复原来程序的执行。中断的处理通常是对当前正在执行的程序透明的,并且保留处理器发生中断时的状态。按照中断的起源,可以分为以下三种情况:第一种情况,一个中断可能是源于外部事件,一般称之为外部中断。大多数处理器(如x86微处理器

4、和Alpha微处理器)都采用如下类似的方式实现:处理器的一些物理引脚被设计成可以改变电压(如从+5V变成-5V),从而引起CPU停止当前工作并开始执行处理中断的特殊代码中断处理程序。依据它们如何发送给处理器的方法而进一步分为可屏蔽中断(INTR)和不可屏蔽中断(NMI)。第二种情况,一个中断可能是源于处理器内部,一般称之为异常。这种中断一般对应于一条指令执行过程中检测到的某种状态。第三种情况,一个中断可能是源于处理器指令的,一般称之为软件中断,如x86微处理器中的INT指令。软件中断是一个指令执行的直接结果。在本文中,将以上三种中断统称为中断。一般来说,一次中断从发生到处理结束可以分为中断检测

5、、中断转移和中断处理三个阶段,以下依次讨论其中的可靠性问题。2.2 中断检测中的可靠性问题对于中断检测的基本要求是准确及时检测所发生的中断,并将检测到的中断递交中断转移单元。这里所涉及的安全问题主要是不会遗漏发生的中断,不因干扰而误报错误的中断。对于前者,要求中断检测单元具有一定的检测速度,并且在递交中断时如果中断转移单元处于忙碌状态,需要中断检测单元具有保存所发生的中断并可延迟提交的能力。对于后者,一般外部中断管脚在噪音干扰下可能有短时间的跳变,如果采用简单的电平检测或者边沿检测就会产生误报中断的情况。一种解决的方法是采用边沿检测,但是要求边沿两侧的低电平和高电平持续若干周期。另一种解决的方

6、法是采用电平检测,如低电平有效,但是要求该电平必须持续若干周期。这样,通过加宽检测范围的方法,就可以滤除部分噪声干扰的影响,减少误报中断的几率,维持系统正常的运行。2.3 中断转移中的可靠性问题中断发生之后,中断检测单元会触发中断转移单元,中断转移单元应该中断当前任务的运行,转向中断处理程序。对于简单的中断机制而言,中断转移过程可能只有一个周期或者几个周期;但是,对于复杂的中断机制而言,中断转移过程可能需要上百个周期,如x86微处理器中的某些中断转移即是如此。所以,中断转移中的安全问题主要是必须保证中断转移的完整性,或者中断转移的不可中断性,否则,系统状态将进入一种未知的状态。一种解决方法是在

7、中断转移的过程中将中断转移单元置于忙碌状态,中断检测单元应停止中断的提交。2.4 中断处理中的可靠性问题中断处理中面临的安全问题主要是正确的维护系统状态,包括处理器状态(如寄存器等)和系统表状态等。中断处理可以使用两种方式,一种是发生中断的任务中的某段程序来进行处理,另一种是采用另外一个独立的任务来进行处理。前者只需要在同一任务内进行控制转移,只需保存中断处理程序使用的部分寄存器,比较简单,转移过程也比较好;后者需要发生任务切换,可以保存处理器的全部寄存器状态,对中断具有较好的隔离性,但是需要花费的时钟周期数目较多。为了兼顾转移的效率和处理的安全程度,有必要对全部中断进行合理的分类,对于非严重

8、的中断采用当前任务处理,对于严重的中断必须采用独立的任务进行处理。如果对于系统的性能要求较高,可以为中断处理程序专门保留一些寄存器使用,这些保留的寄存器在非中断处理程序中是不可见的。中断处理时另外一个安全问题和中断转移类似,即正在执行中断处理程序又发生了另外的中断,中断处理程序应该继续执行还是响应新的中断。如果肓目的忽略中断继续执行,可能错过对某些中断的处理时机;如果及时响应新发生的中断,多次中断嵌套可能导致堆栈溢出等问题。一种解决方法是对中断分级,高优先级中断可以中断低优先级的中断处理程序,但是低优先级中断不可中断高优先级的中断处理程序;同时,对中断分类,限制某些严重中断嵌套的层数,而不限制非严重中断的嵌套层数。3 “龙腾S1”片上系统中的中断机制可靠性设计在西北工业大学最近实现的一种面向工业控制的SoC芯片“龙腾S1”中,所实现的中断机制严格的考虑了安全性问题。“龙腾Sl”片卜系统应用于工业控制的嵌入式应用中,内含32位嵌入式微处理器、PC104总线控制器、SDRAM控制、电子盘控制器和串并口控制器等,是PC104系统的高度集成。“龙腾S1”支持256个硬件中断和软件中断,中断的整体分布和主要属性如表1所示。由表1可以看到,除NMI之外,中断分为三种类型:故障、陷阱和中止。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论