片上系统中断机制的可靠性设计

发布者:炉火旁的Yye最新更新时间:2012-04-26 来源: 中国集成电路关键字:片上系统  中断机制  可靠性 手机看文章 扫描二维码
随时随地手机看文章
1 引言

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

目前,对于中断控制器的设计方法以及中断的快速转移等已经有大量的研究,但是对于中断机制的可靠性问题研究较少。事实上,中断机制的可靠性问题是不可忽视的,因为Windows、Unix和Linux等操作系统中,中断的发生可以导致系统由用户态进入核心态,如果中断机制存在问题,在严重情况下可能导致安全漏洞和系统隐患。因而中断机制的可靠性问题对于高可靠性系统来说是一个重要问题。本文尝试对中断机制的可靠性问题进行了一些探讨,从中断检测、中断转移和中断处理三个角度提出了安全性原则和相关的解决方法,并针对这些问题提出了一种安全的中断机制的实现。

2 中断机制可靠性的讨论

2.1 概述

中断是一种控制转移机制,它引起处理器暂停当前程序的执行,并将控制转移给中断处理程序(Interrupt Service Routine),当中断处理完成之后恢复原来程序的执行。中断的处理通常是对当前正在执行的程序透明的,并且保留处理器发生中断时的状态。

按照中断的起源,可以分为以下三种情况:

第一种情况,一个中断可能是源于外部事件,一般称之为外部中断。大多数处理器(如x86微处理器和Alpha微处理器)都采用如下类似的方式实现:处理器的一些物理引脚被设计成可以改变电压(如从+5V变成-5V),从而引起CPU停止当前工作并开始执行处理中断的特殊代码——中断处理程序。依据它们如何发送给处理器的方法而进一步分为可屏蔽中断(INTR)和不可屏蔽中断(NMI)。

第二种情况,一个中断可能是源于处理器内部,一般称之为异常。这种中断一般对应于一条指令执行过程中检测到的某种状态。

第三种情况,一个中断可能是源于处理器指令的,一般称之为软件中断,如x86微处理器中的INT指令。软件中断是一个指令执行的直接结果。

在本文中,将以上三种中断统称为中断。

一般来说,一次中断从发生到处理结束可以分为中断检测、中断转移和中断处理三个阶段,以下依次讨论其中的可靠性问题。

2.2 中断检测中的可靠性问题

对于中断检测的基本要求是准确及时检测所发生的中断,并将检测到的中断递交中断转移单元。这里所涉及的安全问题主要是不会遗漏发生的中断,不因干扰而误报错误的中断。

对于前者,要求中断检测单元具有一定的检测速度,并且在递交中断时如果中断转移单元处于忙碌状态,需要中断检测单元具有保存所发生的中断并可延迟提交的能力。

对于后者,一般外部中断管脚在噪音干扰下可能有短时间的跳变,如果采用简单的电平检测或者边沿检测就会产生误报中断的情况。一种解决的方法是采用边沿检测,但是要求边沿两侧的低电平和高电平持续若干周期。另一种解决的方法是采用电平检测,如低电平有效,但是要求该电平必须持续若干周期。这样,通过加宽检测范围的方法,就可以滤除部分噪声干扰的影响,减少误报中断的几率,维持系统正常的运行。

2.3 中断转移中的可靠性问题

中断发生之后,中断检测单元会触发中断转移单元,中断转移单元应该中断当前任务的运行,转向中断处理程序。对于简单的中断机制而言,中断转移过程可能只有一个周期或者几个周期;但是,对于复杂的中断机制而言,中断转移过程可能需要上百个周期,如x86微处理器中的某些中断转移即是如此。所以,中断转移中的安全问题主要是必须保证中断转移的完整性,或者中断转移的不可中断性,否则,系统状态将进入一种未知的状态。

一种解决方法是在中断转移的过程中将中断转移单元置于忙碌状态,中断检测单元应停止中断的提交。

2.4 中断处理中的可靠性问题

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

中断处理时另外一个安全问题和中断转移类似,即正在执行中断处理程序又发生了另外的中断,中断处理程序应该继续执行还是响应新的中断。如果肓目的忽略中断继续执行,可能错过对某些中断的处理时机;如果及时响应新发生的中断,多次中断嵌套可能导致堆栈溢出等问题。一种解决方法是对中断分级,高优先级中断可以中断低优先级的中断处理程序,但是低优先级中断不可中断高优先级的中断处理程序;同时,对中断分类,限制某些严重中断嵌套的层数,而不限制非严重中断的嵌套层数。

[page]
3 “龙腾S1”片上系统中的中断机制可靠性设计

在西北工业大学最近实现的一种面向工业控制的SOC芯片“龙腾S1”中,所实现的中断机制严格的考虑了安全性问题。“龙腾Sl”片卜系统应用于工业控制的嵌入式应用中,内含32位嵌入式微处理器、PC104总线控制器、SDRAM控制、电子盘控制器和串并口控制器等,是PC104系统的高度集成。“龙腾 S1”支持256个硬件中断和软件中断,中断的整体分布和主要属性如表1所示。

由表1可以看到,除NMI之外,中断分为三种类型:故障、陷阱和中止。故障主要用于指令执行之前的中断检测,故障处理完毕之后,故障指令可以重新执行;陷阱主要用于指令执行结束之后的巾断通知,陷阱处理完毕之后,系统将继续执行下一条应该执行的指令;中止用来汇报系统的严重错误,系统接收到中止异常之后,处理程序需要重建各种系统表,并可能需要重新启动操作系统。

3.1 中断检测中的可靠性考虑

对于外部中断的检测,采取了上升沿的检测方法,要求低电平和高电平各持续8个周期以上。

对于中断提交的时机,指令内部中断可在中断转移单元空闲的任何时间提交,以便尽快的中断转移并进人中断处理程序;而对于外部中断则需要在指令窗口之间提交(即上一条指令执行结束和下一条指令即将开始之时),以便保持指令执行的完整性。

3.2 中断转移中的可靠性考虑

由于中断转移周期较长,所以中断转移是依靠处理器固化的微程序实现的。为了防止中断转移被新的中断所打断,中断转移微程序首先设置中断电路中的状态标志字为忙碌状态,这样可以避免中断检测电路再次提交新的中断,从而保证中断转移的完整性。在中断转移完毕后,中断转移微程序设置中断电路的状态标志字为空闲状态。

3.3 中断处理中的可靠性考虑

“龙腾S1”为中断的处理提供了两种方式:中断/陷阱门和任务门。前者无需任务切换,而后者实施任务切换。如前所述,对于严重错误,如无效TSS(任务状态段)、双故障等,必须使用任务门进行中断处理,这样可以保证处理程序在一个有效的任务环境之中。其他中断通常可在当前任务环境中进行处理。中断门和陷阱门的唯一区别是中断门屏蔽可屏蔽中断,而陷阱门不屏蔽可屏蔽中断,用户可以根据需要进行选择。

“龙腾S1”为了保证中断处理过程中的堆栈安全,为不同特权级设置了不同的堆栈。“龙腾 S1”支持四种特权级,一般操作系统运行在最高特权级0,用户程序运行在最低特权级3。当用户程序发生中断时,无论是通过中断/陷阱门处理还是任务门处理,如果处理器由最低特权级转换到最高特权级,堆栈也会随之改变。通过这种机制,可以保证中断处理程序具有自己的堆栈,从而可以保证有足够的空间来保存处理器状态和任务上下文等。有关四种特权级下的堆栈指针信息全部保存在任务的任务状态段(Task State Segment)中,堆栈切换时新的堆栈将从任务状态段中读取。

“龙腾S1”中为中断定义的优先级如上表所示,一般在处理低优先级中断时又发生高优先级中断可以串行处理。但是,发生某些严重问题时,系统将不再发生新产生的中断,而是汇报双故障中断。按照各种中断的严重程序,从轻到重将中断分为良性、协作、页故障和中止,如上表所示。至于哪些中断的连续发生会导致双故障,需要按照中断性质进行考虑,如表2所示。

表2中第一行所列为正在处理的中断性质,第一列为又发生的中断性质,表格内容中所采取的策略:串行处理,双故障、页故障和中止。可看到连续发生良性异常,由于中断严重程序较低,系统策略为串行处理;而对于最为严重的中止,发生任何中断都会导致系统进入停机状态,即只有通过NMI信号输入或者系统复位才能使处理器重新启动。最后,我们给出“龙腾S1”中的中断检测电路(图1)和中断转移流程(图2)。[page]


4 小结

中断机制为处理外部请求(如外设请求)和指令执行过程中的一些异常情况和事件提供了有力的支持。中断的处理将会导致控制的转移——从应用程序转移到系统的中断处理程序。本文重点讨论了这一过程中中断检测、中断转移和中断处理三个阶段中的可靠性问题,分别给出了若干设计规则,最后给出了一种工业控制用片上系统“龙腾S1”中的安全考虑和实现方法。“龙腾S1”片上系统已经使用 SMIC 0.18微米工艺流片,样片测试中可以运行未经修改的DOS 6.22操作系统,并能运行大量应用程序,从而证明本文针对中断的可靠性设计是有效的。本文的研究结果对口益普遍的片上系统中的中断控制单元设计有着重要的参考价值。

关键字:片上系统  中断机制  可靠性 引用地址:片上系统中断机制的可靠性设计

上一篇:嵌入式MPEG-4解码系统的设计与实现
下一篇:嵌入式数控系统体系结构研究

推荐阅读最新更新时间:2024-03-16 12:58

军用嵌入式系统可靠性考虑因素
1 可靠性是军用嵌入式系统的重要因素     嵌入式系统往往工作环境恶劣、受电噪声干扰较大,而且随着软件越来越复杂,系统运行不稳定的现象愈来愈严重,因此,可靠性已经成为衡量嵌人式系统优劣的重要因素;军用嵌入式系统更应高度重视其可靠性设计、测试和评估技术,应把可靠性作为嵌入式系统最重要的指标优先考虑。这一方面是因为嵌入式系统是软硬一体的混合系统,软件和硬件要共用大量的接口。因此要特别注意系统的稳定性、信号串扰、电磁干扰与静电防护等方面的可靠性设计问题。    另一方面,嵌入式系统的开发应用也为可靠性设计提供了有效手段(如软件抗干扰、仿真测试等可靠性技术)。然而,由于主要的处理器芯片和操作系统的核心技术掌握于国外厂商手中,我国的嵌
[嵌入式]
EMC对策产品: TDK开发出业内首款用于汽车的高可靠性贴片磁珠
EMC对策产品: TDK开发出业内首款用于汽车的高可靠性贴片磁珠,支持150℃环境下的高耐久性焊接 为汽车应用而设计,如ECM、ABS、EPS、EV-EHV、逆变器和LED前照灯 EMC对策产品: TDK开发出业内首款用于汽车的高可靠性贴片磁珠 TDK株式会社开发出用于汽车的高可靠性贴片磁珠MMZ1608-HE系列并已开始投入量产,其支持150℃环境下的高耐久性焊接。该系列产品是业内首款*高可靠性贴片磁珠,专为汽车相关应用而设计,如发动机控制模块(ECM)、防抱死制动系统(ABS)、电动助力转向系统(EPS)、电动和混合动力汽车(EV/EHV)、逆变器和LED前大灯等。 在发动机舱等高温汽车环境中,高耐久性焊
[电源管理]
EMC对策产品: TDK开发出业内首款用于汽车的高<font color='red'>可靠性</font>贴片磁珠
压力传感器测试过程可靠性分析
1 引言 可靠性是指产品在规定条件下和规定时间内,完成规定功能的能力。可靠性是对一种产品投入使用时无故障工作能力的度量。产品可靠性的高低是表示产品在规定条件下、规定时间内,完成规定功能可能性的大小。可靠性通常采用可靠度、失效率及MTBF来表示,传感器等元器件可靠性水平的高低通常用失效率来表示,而设备可靠性多用可靠度、MTBF、有效度等指标来表示。 压力是生产过程和科学实验中进行测量和控制的最基本参数之一,而对压力进行测量的并能把压力通过一定的规律转换成电信号的压力传感器就成为测量这一信号的重要元器件,它被广泛地应用在工业、石油、化工、生物医学、航海、航天、航空等领域的生产和科研当中。传感器的可靠性是十分重要的,它直接关系着使用该传
[测试测量]
压力传感器测试过程<font color='red'>可靠性</font>分析
收集完这几大技巧,入门开发高可靠性嵌入式系统
当一个应用程序被确认为 成功 的那一刻,通常会有一种如释重负的感觉,但仅仅因为软件在受控条件下的那一刻运行正常并不意味着明天或一年后还会运行正常。 从规范完善的开发周期到严格执行和系统检查,开发高可靠性 嵌入式 系统的技术有许多种。本文介绍了7个易操作且可以长久使用的技巧,它们对于确保系统更加可靠地运行并捕获异常行为大有帮助。 技巧#1 用已知值填充ROM 软件开发人员往往都是非常乐观的一群人,只要让他们的代码忠实地长时间地运行就可以了,仅此而已。微控制器跳出应用程序空间并在非预想的代码空间中执行这种情况似乎是相当少有的。然而,这种情况发生的机会并不比缓存溢出或错误指针失去引用少。它确实会发生!发生这种情况后的系统行为将是不
[嵌入式]
智能温度传感器可靠性及安全性设计
传统的A/D转换器大多采用积分式或逐次比较式转换技术,其噪声容限低,抵制混叠噪声及量化噪声的能力比较差。新型智能温度传感器(例如:TMP03/04,LM74、LM83)普遍采用了高性能的∑-△式A/D转换器,它能以很高的采样速率和很低的采样分辨力将模拟信号转换成数字信号,再利用过采样,噪声整形和数字滤波技术,来提高有效分辨力,∑-△式A/D转换器不仅能滤除量化噪声,而且对外围元件的精度要求低;由于采用了数字反馈方式,因此比较器的失调电压及零点漂移都不会影响温度的转换精度。这种智能温度传感器兼有抵制串模干扰能力强,分辨力高,线性度好成本低等优点。 为了避免在温控系统受到噪声干扰时产生误动作,在AD7416/7417、LM75/7
[嵌入式]
汽车用紧凑型高可靠性贴片压敏电阻
TDK  株式会社扩大了其用于 汽车 应用的贴片 压敏电阻 的产品阵容。该 AVRH 系列产品最大工 作电压为 19 V 到 70 V,电容范围为 4.7 pF 到 50 pF。这一小型电压保护器件因其紧凑型尺寸 仅为 1.0 mm x 0.5 mm x 0.5 mm 而可用于 IEC 1005 工况(EIA 0402),这使得新元件的体积 比性能相当的现有元件减少了 75%。高可靠性的 AVRH 系列工作温度范围同样为-55 到 150 °C, 可承受 25 kV 接触放电,符合 IEC 61000-4-2 并通过 AEC-Q200 认证。   新 AVRH 系列采用 TDK 独有的涂装技术从而实现了汽车要求的高可靠性。因此,A
[嵌入式]
单片机的可靠性设计中常用软件抗干扰措施
单片机的可靠性设计是一项系统工程,单片机系统的可靠性必须从软件、硬件以及结构设计等方面全面考虑。硬件系统的可靠性设计是单片机系统可靠性的根本,而软件系统的可靠性设计起到抑制外来干扰的作用。软件系统的可靠性设计的主要方法有:开机自检、软件陷阱(进行程序“跑飞”检测)、设置程序运行状态标记、输出端口刷新、输入多次采样、软件“看门狗”等。通过软件系统的可靠性设计,达到最大限度地降低干扰对系统工作的影响,确保单片机及时发现因干扰导致程序出现的错误,并使系统恢复到正常工作状态或及时报警的目的。 一、开机自检 开机后首先对单片机系统的硬件及软件状态进行检测,一旦发现不正常,就进行相应的处理。开机自检程序通常包括对RAM、ROM、I/
[单片机]
Littelfuse扩大高可靠性瞬态抑制二极管的供货
两个经升级筛选的高可靠性瞬态抑制二极管新系列现货供应。 中国,北京,2014年8月5日讯 - Littelfuse公司是全球电路保护领域的领先企业, 日前宣布Littelfuse公司扩大了带可订制升级筛选和分类处理流程的高可靠性瞬态抑制(TVS)二极管的供货。 这些元件经过特别筛选分类,适用于对航空电子设备和其它需要高可靠性的应用中的直流电路进行保护,可防止敏感电子设备受到雷电引致的电压瞬变和其它瞬态电压现象的损害。 Littelfuse高可靠性瞬态抑制二极管非常适合为FADEC、飞机传感器、航电计算机、电传飞控系统、驾驶舱电子设备和机场着陆辅助系统等航空电子产品提供直流电源保护和ESD保护。 其他用途包括能源工业等工业
[电源管理]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved