不同CPU中断技术对比专题研究
微型计算机原理及应用教程第7章 中断与DMA技术
7.1 中断原理
7.2 8086/8088 CPU 中断系统 7.3 可编程中断控制器8259A 7.4 8259A的应用举例 7.5 DMA控制器
引 言
中断在计算机中是非常重要的。中断提高了计算机的并
行度和处理器的效率,改善了计算机的性能。它解决了CPU
与各种外围设备之间的速度匹配问题。 中断在故障检测、实时处理与控制、分时系统、多级系 统与通信、并行处理、人机交互等诸多领域都得到了广泛应 用和不断发展。 本章就中断的管理、 8086/8088 CPU 中断系统、可编程 中断控制器8259进行介绍。
挥了CPU高速性的特点。 实现实时处理:例如键盘、打印机、显示器的使用等 实现故障处理:电源故障、除法溢出、非法操作、存储 器出错等
中断系统应具有以下功能:
中断响应:当中断源发出中断请求后,CPU能够决定是否 暂时中止当前程序的执行,去响应 该中断请求。 断点保护: CPU在响应中断请求后,保护被暂时中止的当 前程序的运行环境和结果(例如:下一条指令地址的CS和
7.1.3中断优先权与中断嵌套
1.中断优先权
在实际系统中,常常遇到多个中断源同时请求中断的情况, 这时 CPU 必须确定首先为哪一个中断源服务,以及服务的 次序。解决的方法是用中断优先排队的处理方法。即根据中 断源要求的轻重缓急,先排好中断处理的优先次序,即优先
级(又称优先权)。CPU先响应优先级最高的中断请求。对
7.1
中断原理
当 CPU 与外设交换信息时,若用查询的方式,则 CPU 就
要浪费很多时间去等待外设,这样就存在一个快速的 CPU 与 慢速的外设之间的矛盾,这也是计算机在发展过程中遇到的 严重问题之一。为解决这个问题,一方面要提高外设的工作 速度;另一方面就必须要使用中断处理。
不同CPU中断技术对比
不同CPU中断技术对比摘要:本文大体论述了80x86,80c51,和ARM在中断源,中断申请方式、中断优先级管理方式、中断的处理过程、中断向量等方面比较。
关键词:CPU,80x86,80c51,,ARM,中断申请方式,中断优先级管理方式,中断的处理过程,中断向量。
正文:一、X86 CPU,80C51,ARM中断源:X86 CPU支持256个中断向量,中断号00H--0FFH 。
0~19是系统预定义的异常和NMI,20~31被Intel保留,如表1。
所以,外部中断从32开始。
CPU处理的流程都一样,在执行完当前指令后,根据中断源提供的中断向量,在IDT中找到并调用相应的服务例程。
X86 CPU中断分为内部中断和外部中断。
内部中断分为:软中断,内部中断和异常,异常分为3种:Fault:可以被更正的错误,异常处理程序的返回地址是产生fault的指令。
Trap:执行trap指令(例如INT 3)后被报告的异常,异常处理程序的返回地址是产生trap指令的后一条指令。
Abort:严重错误,无法继续执行。
外部中断分为:不可屏蔽硬件中断和可屏蔽硬件中断。
不可屏蔽硬件中断(02H):由NMI端引入的中断请求,中断请求不可被屏蔽;可屏蔽硬件中断请求:由INTR端引入,中断请求可由IF=0进行屏蔽,使中断请求不进入。
表180C51的中断系统包括中断源、中断允许寄存器IE、中断优先级寄存器IP、中断矢量等。
在80C51中,只有两级中断优先级。
图1是80C51的中断系统结构示意图。
80C51有5个中断源分别为:两个外部中断源INT0、INT1和三个内部中断源T0、T1定时/计数谥出中断源和串行口发送或接收中断源。
外部中断是由外部信号引起的,它们的中断请求信号分别从引脚INT0和INT1上引入图1ARM 7TDMI具有常规中断(IRQ)、快中断(FIQ)和软件中断(SoftWare Interrupt)三种中方式。
常规中断和快中断都是硬件中断。
不同中断技术对比
不同中断技术对比PC机中断类型码为8位二进制数,即0~255。
所有类型中断的服务子程序入口地址放在中断向量表中(即内存的最低1KB),由中断类型码×4,得到该中断类型服务子程序入口地址在中断向量表的位置,然后从中取出这个地址,转到相应的子程序。
ARM在嵌入式系统中常用的RISC处理器是ARM核,它具有体积小、功耗低、成本低、性价比高的特点。
然而,不管是哪种型号的ARM 处理器,也无论该嵌入式系统中是否有操作系统,中断处理,特别是IRQ中断,始终是必须的,而中断处理的核心问题是上下文的保存。
能否安全而又高效地保存上下文,将影响一个嵌入式系统的性能与稳定。
笔者对ARM处理器的普通中断处理、任务切换中断处理、可重人中断处理和基于优先级的可重人性中断处理的上下文保存技术进行分析与总结。
为保证理论的正确性,核心的程序代码都经过了实验的检测。
1 系统中断处理简介ARM处理器的中断主要有两种:IRQ普通中断和FIQ快速中断。
快速中断本质上与普通中断没有太大的差别,它们在处理机制上有许多相同的地方。
IRQ中断是最频繁的也是最为影响系统性能的,所以对它的研究与处理也就最有价值。
下面简要地介绍一下IRQ异常发生时ARM处理器的工作过程。
在IRQ中断发生时,ARM处理器的硬件会自动执行以下工作:①将被中断任务模式的CPSR值保存到IRQ模式中的SPSR 寄存器中;②将被中断任务模式的PC值保存到IRQ模式中的LR寄存器中;③将模式自动切换到IRQ模式,并将CPSR中的bit7位置1禁止后继IRQ中断的发生;④PC被赋予0xl8的地址值,程序将从0xl8片开始执行。
结合图1,可以更好地理解ARM中断处理机制的工作过程。
2 普通中断处理有些ARM嵌入式系统可能对中断的要求比较低,即发生中断后首先查询相应的中断源,然后进行中断服务,最后从中断服务程序中返回到被中断处继续运行程序。
如何在这种简单应用中保证安全又高效地处理中断呢?“安全”就意味着中断发生时上下文被完好保存不被破坏,“高效”就是说保存尽可能少的寄存器(当然是建立在安全的基础上的)。
了解不同的处理器型号及其性能差异
了解不同的处理器型号及其性能差异现如今,计算机已经成为我们日常生活中不可或缺的一部分。
而计算机的核心部件之一就是处理器。
处理器的性能直接影响到计算机的运行速度和处理能力。
然而,市场上有众多不同型号的处理器,每个型号都有其独特的特点和功能。
了解不同的处理器型号及其性能差异,对我们选购和使用计算机具有重要的指导意义。
一、处理器的基本知识处理器是计算机的核心组成部分,主要用于执行计算机程序中的指令。
处理器的性能取决于其架构、频率、核心数量、缓存等因素。
1. 处理器架构处理器的架构决定了其内部组成和运行方式。
主流的处理器架构有x86架构和ARM架构。
x86架构主要用于个人电脑和服务器领域,而ARM架构主要用于移动设备领域。
2. 处理器频率处理器频率指的是处理器每秒钟执行指令的次数,通常以赫兹(Hz)为单位。
频率越高,处理器执行指令的速度越快。
3. 处理器核心数量处理器的核心数量决定了处理器同时执行多个任务的能力。
多核处理器能够更好地支持多任务处理和并行计算。
4. 处理器缓存处理器缓存是处理器内部的高速存储器,用于临时存储数据和指令。
较大的缓存能提高数据读取和写入的效率。
二、不同的处理器型号及其性能差异不同的处理器型号在架构、制造工艺、频率、核心数量、缓存等方面存在差异,因此其性能也会有所不同。
下面以目前市场上常见的几个处理器品牌为例,介绍其不同型号及性能差异。
1. Intel处理器Intel是全球最大的处理器制造商之一,其处理器以高性能而闻名。
- Intel Core i3:入门级处理器,适用于日常办公和网页浏览,性能较低。
- Intel Core i5:中端处理器,适用于日常办公、多媒体和一般游戏,性能中等。
- Intel Core i7:高端处理器,适用于专业级应用、游戏和虚拟化技术,性能较高。
- Intel Core i9:旗舰级处理器,适用于专业工作站和高性能游戏,性能最高。
2. AMD处理器AMD是另一家著名的处理器制造商,其处理器在性价比方面具有竞争力。
浅谈嵌入式MCU的中断处理
浅谈嵌入式MCU的中断处理众所周知,一方面,MCU在嵌入式系统中的广泛使用的一个重要原因就是其相对于MPU和通用CPU的时效性优势。
而低延迟的外设中断和中断嵌套正是MCU实时性的最大保障。
另一方面,在嵌入式系统MCU软件开发中,随着系统功能的日益复杂,不论是否采用RTOS,多任务都是不可避免的。
在裸奔系统中,为了让时间关键的任务得到最先响应,往往需要通过外设中断嵌套来实现,属于基于外设的硬件中断嵌套,而在RTOS中,则给所有系统任务,都赋以具体的优先级,由内核根据优先级高低来进行调度,实际上是实现了一套基于优先级的软件中断嵌套。
RTOS中的任务软件嵌套通过内核tick 定时器中断不断查询RTOS任务就绪表中各任务的优先级高低来实现任务切换,其外设硬件中断未必需要嵌套。
本文旨在给大家介绍嵌入式MCU的中断处理相关知识,帮助大家理解中断,并使用好中断。
既然中断嵌套对于嵌入式系统设计如此重要,具体什么是中断嵌套呢?在具体解释中断嵌套之前,有必须要先讲一下嵌入式MCU的中断工作机制和中断优先级:写过裸奔程序的工程师都知道,一个内核CPU同一个时刻只能执行一个任务/程序代码/指令,比如数据计算,与片上外设进行交互通信等。
代码的执行顺序是用户自己首先写好的,CPU逐行取指、译码、执行即可。
产品功能的实现就是在main函数的while(1)循环中(常称作主程序),不断的调用其他功能函数实现的。
但实际工作环境中、很多事件是随机发生的,比如网络通信,外部IO输入等不确定事件,这个时候CPU就不得不放下当前正在执行的工作,却响应这些紧急事件,及时读取网络报文、处理并回复网络通信需求,及时外部IO请求。
这样的处理就叫做中断。
嵌入式MCU中内核CPU异常和各种外设工作都能够产生响应的中断,且通过中断控制器统一进行管理。
这样CPU在中断未产生时就可以专心处理顺序执行的任务,而只有在中断产生时才通过中断控制器中断CPU(通过产生一个高电平/低电平信号给CPU,这个过程被称为中断请求),如果此时CPU全局中断处于使能状态,则CPU会结合中断向量表和中。
中断技术是计算机中重要的技术之一,它既和硬件有关,又和软件有关正
89S51中断系统主要由几个与中断有关的特殊功
能寄存器、中断入口、顺序查询逻辑电路等组成。
89S51的中断系统结构框图示于图8-3。如图所示, 与中断有关的特殊功能寄存器有4个,分别为中断源 寄存器(即专用寄存器TCON、SCON的相关位)、 中断允许控制寄存器IE和中优先级,即可实现二级中 断嵌套。5个中断源的排列顺序由中断有限级控制寄 存器IP和顺序查询逻辑电路(图中的硬件查询)共同 决定。5个中断源对应5个固定的中断入口地址,亦称 矢量地址。
2、实现是实时处理
在实时控制中,现场的各个参数、信息是随时间和现场情况 不断变化的。有了中断功能,外界的这些变化量可根据要求, 随时向CPU发出中断请求,要求CPU及时处理,CPU就可以马 上响应(若中断响应条件满足)。这样的及时处理在查询方式 下是做不到的。
3、故障处理
计算机在运行过程中,出现一些事先无法预料的故障是难 免的,如电源突跳,在储出错,运算溢出等。有了中断功能, 计算机就能自行处理,而不必停机处理。
序事先却无法确知,因为“中断”的发生是由外部 的
因素决定的,程序中无法事先安排调用指令,因而 调用中断服务程序的过程是由硬件自动完成的。
8.1.2 引进中断技术的优点
计算机引进中断技术之后主要有如下优点:
1、分时操作
有了中断功能就解决了快速的CPU与慢速的外设之间的矛 盾。可以使CPU和外设同时工作。CPU在启动外设工作后,继 续执行主程序,同时外设也在工作,每当外设做完一件事,就 发出中断申请,请求CPU中断它正在执行的程序,转去执行中 断服务程序(一般情况是处理输入输出数据),中断处理完之 后,CPU恢复执行主程序,外设仍继续工作。这样CPU可以命 令多个外设同时工作,从而大大提高了CPU的利用率。
基于SEP3203~1处理器的ARM-μ Clinux中断处理技术的研究与实现
第30卷 第2期2007年4月电子器件Ch inese Jou r nal Of Elect ro n DevicesVol.30 No.2Ap r.2007Implementatio n o f ARM 2μC Linux Interrupt T ech nique B ased o n the SEP32031Pr o cesso r 3ZOU Zhi 2f en g ,W A N G X ue 2x i an g ,Z H A N G Yu(N ati onal AS IC S ystem Engi neeri ng Center ,S out heas t Uni versi t y ,Nanj i n g 210096,Chi na)Abstract :Inter ruption techni que i s very i mport ant in an e mbedded syst em.Wi t h t hi s techni que ,processor and perip hery equipment s ca n work toget her and CPU can work more efficiency.It analyzes t he i nt errupt 2t ec hni que wit hi n t he a rm 2μClinux syst em f rom hardware to soft wa re ,and t he n ,i nt roduces t he inter rupt vector t able based on t he SEP3203p rocessor particul arl y .The i nit ializat io n of t he i nt errupt vector and t he net device ’s ISR regist er a re discussed.K ey w or ds :inter rupt ;ISR ;A RM 2μClinux EEACC :1265F基于SEP32031处理器的ARM 2μCl inux 中断处理技术的研究与实现3邹志烽,王学香,张 宇(东南大学国家专用集成电路系统工程技术中心,南京210096)收稿日期62623基金项目基于国内第一个RM 大学计划授权,S 33是由东南大学国家专用集成电路系统工程技术研究中心自主设计的63位R IS 微控制器作者简介邹志烽(2),女,硕士研究生,主要研究方向为嵌入式系统软件,z zf @摘 要:在现代嵌入式操作系统中,中断处理技术是一项重要的技术.通过中断技术,使得处理器能够和外设并行地工作,提高了CPU 的执行效率.首先结合了软件和硬件两个方面分析a rm 2μclinux 的中断处理技术,然后基于S EP3203微处理器介绍了中断向量表的软件实现,最后通过网络设备中断例程的注册阐述了如何实现用户中断例程的安装.关键词:中断;设备中断例程注册;ARM 2μClinux中图分类号:TP334.7 文献标识码:A 文章编号:100529490(2007)022******* 随着信息科技的不断发展,嵌入式系统(Em 2bedded Syst em s )已经遍及工业控制、消费类电子产品、通信系统、网络系统等各类产品市场.产品功能集成的越多,相应的外围控制模块与C PU 的交互也就越频繁.CPU 与外设的交互有多种方式,在现代嵌入式系统中,为了实现处理器与外设能够并行工作,常采用中断处理技术来实现CPU 与外设的交互,这可以在很大程度上提高CPU 的执行效率[2].本文研究了一种基于SEP3203处理器的μClinux 中断处理实现方案,从硬件和软件的角度介绍了中断向量表的实现以及μCLinux 下网络设备的中断处理例程的安装.1 ARM 2μClin ux 简介目前ARM 处理器已经风靡全球,32位的R ISC 嵌入式处理器已经开始成为高中端嵌入式应用和设计的主流.ARM 微控制器的低功耗、高性价比,也向传统的8位/16位微控制器提出了挑战.AR M7TDMI 是一款经典的通用32位微控制器.S EP3203是内嵌A RM7TDM I 核的16/32位R ISC 微控制器,面向低成本手持设备和其它通用嵌入式设备.μCli nux 是Micro 2Cont roll er 2Li nux 的缩写,即“针对微控制领域而设计的Linux 系统”[3].它的优势在于:开源,免费,稳定及强大的网络功能.主要应8:20000:A E P 021/2C :1979o u ho tmail.co m.用于工业控制等中低端电子产品中.与标准L INU X 的主要区别在于:不支持MMU 、默认的文件系统为只读紧凑的ro mf s 且重写了C 程序库.μClinux 对程序库采用静态连接的形式,这是由μCli nux 内存管理形式决定的.2 ARM 处理器的工作模式与异常中断操作系统需要在硬件设备上运行.A RM7TDMI 芯核提供了7种工作模式,而μClinux 操作系统只定义了用户态和内核态两种工作模式.结合μCli nux ,ARM 处理器通常只运行于3种工作模式:用户模式(U se r )、外部中断模式(IR Q )和特权模式(SVC ).Li nux 系统运行于用户态时,A RM 处理器通常工作在用户模式下.无论Linux 系统在何种工作模式下,当响应外部硬件中断时,ARM 处理器即进入IRQ 模式;特权模式是操作系统的保护模式,处理器响应软件中断时即进入特权模式.各种不同的处理器模式有对应于该模式的物理寄存器组[4].广义上来讲中断是指CPU 对系统发生的某个事件作出的一种反应:C PU 暂停正在执行的程序,保留现场后自动转去执行相应的处理程序,处理完该事件后再返回断点继续执行被"打断"的程序.在A RM 体系结构中,有两个术语对应此概念:异常和中断.虽然处理异常和处理中断的方式基本是相同的,但异常和中断是两个不同的概念.中断有向处理器主动申请的色彩.而异常主要是从处理器被动接受的角度出发,异常的产生必须考虑与处理器时钟的同步,异常往往被称为同步中断.在这个概念的基础上,A RM7TDMI 具有常规中断(IRQ )、快中断(F IQ )和软件中断(S of t ware Int errupt )三种中断方式.各种中断对应着一定的处理器模式.本文只涉及常规中断(IRQ).3 ARM 核下的多中断源处理方案A RM 核只有一个常规中断引脚nIRQ ,而在现代嵌入式系统中,中断源可能多达几十个.为此,在系统设计时,采用了二级中断的方式来实现中断控制.即由一个中断控制器来处理来自不同中断源的中断信号,经过判断后将中断信号送给A RM 内核的中断引脚.S EP3203内集成的中断控制器支持32个普通中断源,并给这32个普通中断源分配了固定的优先级每个中断源相应的可以配置为硬件中断或软件强制中断当硬件中断或软件强制中断产生的时候,都可以产生IRQ 中断信号[]基于硬件的架构,软件系统在实现中断向量的初始化时要构建2级向量表,如图1所示.第一级为AR M 核的异常向量表(普通向量表),第二级由具体CPU 中断控制器控制的异常向量表———通常第二级向量表是IRQ 异常处理向量表(特殊向量表).在μCLi nux 中,使用一组指针来指向中断例程的首地址.这些例程对应于设备的中断服务函数,同时由它负责在设备初始化时为每个设备驱动申请其请求的中断号.这组指针构成了由C PU 中断控制器控制的第二级异常向量表.图1 两级中断向量表4 SEP3203的μClinux 中断机制实现 如上所述,在SEP3203上的中断向量分为两级.对应于软件的具体实现,在start _kernel (st art _ker nel 是Linux 的C 语言的入口函数,此函数是系统的初始化主要函数)中,有关中断的初始化的有两个重要的函数:t rap_i nit ()和IRQ_init ().它们分别实现了第一级和第二级中断向量的初始化.本文接下来详细介绍这两个重要函数的具体实现.4.1 A RM 核的异常向量表初始化Trap_i ni t ()通过调用ent ry 2armv.S 中的(__t rap_i nit )函数段———由汇编语言编写的一段代码.用于在系统的0x00地址处安装AR M 的异常向量表,然后在0x200处建立各个异常(如i rq ,fi q ,data ,undefi ned 等)的分类处理路线,以建立起完整的异常处理表.中断发生时处理器的动作如下[8].①拷贝CPSR 到SPSR_<mode >;②设置适当的CPSR 位:i.改变处理器状态进入A RM 状态ii.改变处理器模式进入相应的异常模式iii.设置中断禁止位禁止相应中断③更新LR_<mode >④设置PC 到相应的异常向量具体代码实现如图无论在何种工作模式发生异常,系统都将切换到SV 模式下处理主要的响应流程为保护现场,556第2期邹志烽,王学香等:基于S EP3203处理器的AR M 2μCli nux 中断处理技术的研究与实现8..9.2.C .:图2 ARM 异常向量表的建立获得中断号(get _irqnr _a nd _ba se ),强制切换到(SV C )模式,再执行相应的处理.获得中断号的处理函数如下图3所示.图3 获得确定中断号其中IN TC_FNLS TS 是G arfield S EP3203的中断控制器中的最终状态寄存器,在linux 22.4.x \in 2cl ude\asm 2a rmnom mu\arch 2gfd\hardware.h 中定义.获得中断控制器中的最终状态寄存器的值后,采用移位判断法来确定最终的中断号.在DO _IRQ 中,根据中断号获得相应处理函数的入口指针地址,执行中断处理.中断处理完成后,进行一次调度,如果没有其它进程需要执行,则系统返回中断前的用户现场.4.2 IRQ 异常向量表的初始化ini t_IRQ ()函数实现了第二级中断向量表的初始化.此函数初始化了IRQ 的请求队列,为每一个中断号分配一个i rq_desc 结构,组成了一个数组.N R_IRQ S 代表中断数目.SEP3203的中断控制器提供有3个IRQ 中断源,因此在我们的系统中定义N R _IRQS 为3S 33的中断号和N R _IRQS 在22GFD q 中有定义.如下所图4所示.图4 中断数目和中断号的初始化4.3 中断请求队列的初始化st art _kernel 通过执行上面的两个函数来建立两级中断向量表.但第二级向量表是一堆空的数组结构,每个中断服务队列都是空的[5].虽然从中断源的硬件以及中断控制器的角度来看,似乎已经得到服务了,但是从逻辑角度、功能角度来看,他并没有执行到具体的中断服务例程,没有得到具体的中断服务.具体设备初始化时会将其中断处理程序通过reque st_i rq ()向系统"登记",调用set up _arm _i rq ()挂入某个中断请求队列,参数i rq 是中断请求号,对应于中断控制器为每个中断源配置的中断号[5].中断处理例程结束时通过f ree_irq 来释放中断.5 中断机制在网络设备驱动中的应用 我们采用了R TL8019网络控制器,接在S EP3203处理器的IN T14中断引脚,根据硬件Da 2ta Sheet ,其中断号为0x0f.本文只注册了一个网卡et h0,在网卡的初始化函数ne_probe ()中注册了网络设备的基地址和中断号,并调用系统提供的系统调用函数request _i rq ()来注册中断处理例程.如下图5,图6所示.图5 网卡设备地址和中断号的注册图6 网卡中断处理例程的注册 通过上面的网卡中断例程的注册,当物理网络设备接收到新数据时,它将发送一个硬件中断请求给x 系统[6]系统在侦察到有物理设备发出中断请求,由硬件自动将设为x 8,通过级中断向量表调用网卡的中断处理函数_来处656电 子 器 件第30卷82 2.EP 20asm a rmnom mu/arch /i r s.h linu .PC 012ei interrupt理中断请求.网络中断的处理流程如下图7所示:图7 网络中断的处理流程5 结束语本文结合软件和硬件提出了基于S EP3203处理器的ARM 2μClinux 中断处理机制,并着重分析了2级中断向量的初始化的具体实现方法.最后通过具体的网络设备的中断处理过程,实现了此中断处理机制的应用.目前此机制已应用于油库数据采集终端系统项目中,实践证明此方案稳定可靠,网络的处理速度可达2.5~3.5Mbps ,满足项目要求,也可为其他嵌入式系统的设计提供一定参考.参考文献:[1] OL AF KIR CH &T ERR Y DAWSON.Linu x Net wor k Ad 2minis trato r ’s Guide (Version 2)[S].O ’RIL L Y.[2] 蒋静,徐志伟.操作系统原理.技术编程[M ].机械工业出版社2004.1.[3] 周立功,陈明计,陈渝.A RM 嵌入式lin ux 系统构建与驱动开发范例[M].北京航空航天大学出版社.2006.1.[4] 杜春雷.ARM 体系结构与编程[M ].清华大学出版社,2003.[5] 毛德操,胡希明.Li nux 内核源代码情景分析(上册)[M ],杭州:浙江大学出版社出版,2001.[6] 潘刚.Li nux 网络设备分析[J ].微电子科学与计算机,2006年6期.[7] AL ESSANDRO RUBINI &J ONA THAN COR B E T.魏永明骆刚姜君译.L INUX 设备驱动程序(第二版)[M ],北京:中国电力出版社,2002.346~393.[8] 费浙平.基于A RM 的嵌入式系统程序开发要点(四)———异常处理机制的设计[J ].单片机与嵌入式系统应用.2003,(11):82285.[9] 东南大学国家专用集成电路系统工程技术中心东芯IVSEP3203F50用户手册[S]2006.6.(上接第653页){DWORD fJ umping ;}USB_BOOT_AC K;在传输中,这种类型的数据还起到请求数据的作用,此时,数据包是由设备端发送至主机的,定义为Data Reque st.③Dat a :此时后面的数据块为传输数据块,它是由主机发送给HPC 的.数据块的前四个字节为USB_BL OC K _H EADER ,后面为真正的传输数据,如下:USB_BL OC K _HEADERDataUSB_BL OC K _HEAD ER 的结构如下:t ype def str uct tagUSB_BLOC K _HEADER {DWORD uBlockNum ;}USB_BLOC K_H EADER ;总结如下:①设备端发送Boot Request 请求开始传输数据.②主机接受到请求后向设备端发送Boot AC K ,示意设备端数据传输开始.③设备端接受到主机回应后发送数据请求包Dat a Request ,在包内注明请求的包的ID.④主机接受到设备端的Dat a Request 后发送相应的数据包给设备.⑤重复步骤3、4直至数据发送完成.镜像在内存中存放的地址需要在软件中明确定义下载完成后,把X 55的指令指针寄存器的值定位到镜像存放的起始地址即可运行操作系统进行调试.该下载方案将速度提高到760kbyt e/s ,可以满足li nux 开发平台上传输操作系统内核镜像和文件系统镜像的需求.5 小结本文分析了U SB 设备的结构框架,在功能单元层上定义了简单的数据传输协议,并配置了PXA255的UDC 模块完成了boot loade r 下宿主机到目标机的数据传输.该下载方案已经应用于一款PMC 的开发中,传输速度达到了760kbyte/s ,方便了该产品的开发调试,对相关的嵌入式系统开发具有一定的参考意义.参考文献:[1] 毛德操胡希明.嵌入式系统-采用公开源代码和St rong 2ARM/XScal e 处理器[M ].Oct .2003.浙江大学出版社.[2] Vi ncent Sanders.Boot ing AR M Li nux [J ].May.2004.[3] 严菊明.基于A RM 嵌入式系统的通用boot loader 的设计与实现[D ].Mar.2005.[4] C o m p aq Int el Micro s oft N EC.U ni versal S erial Bus S p ecifica 2t ion [S].Sep.1998.[5] 马伟.计算机U S B 系统原理及其主/从机设计[M ].Sep.2003.北京航空航天出版社.[6] Int el C o rpo rat ion.Int el PXA255Processor Developer ’s Manu 2[S]M 3[] I I X 55D G [S]M 3756第2期邹志烽,王学香等:基于S EP3203处理器的AR M 2μCli nux 中断处理技术的研究与实现8.P A2a l .a r.200.7nt el Co rpo ra t ion.nte l P A 2Proce s so r e si gn uide .ar.200.。
计算机硬件技术--中断技术知识考试题
第八章习题参考答案8.1 什么是中断?采用中断技术有哪些好处?答:中断是指由CPU内/外部事件引起或由程序的预先安排,使CPU中断正在运行的正常程序(主程序),而转到为该内部/外部事件或预先安排的事件服务程序,待服务完毕,再返回被暂时中断的正常程序处继续执行正常程序的过程。
采用中断技术,可以使计算机方便地实现如下一些操作:(1)分时操作。
有了中断系统,CPU可以命令多个外部设备同时工作,CPU分时控制这些外设,大大提高了CPU的吞吐率。
(2)实现实时处理。
当计算机用于实时控制,系统要求计算机为它服务的时间是随机的,而中断系统中这种请求--响应模式正好迎合了实时系统的需求。
(3)故障处理。
计算机在运行过程中,往往会出现一些故障,如电源掉电、存储出错、运算溢出等。
有了中断系统,当出现上述情况时,CPU可以随时转去执行故障处理程序,自行处理故障而不必停机。
随着微型计算机的发展,中断系统不断增加新的功能,中断系统甚至可以实现计算机系统中软硬件资源的自动管理。
8.2 什么叫中断系统?它具备哪些功能?答:把能够实现中断全部功能的软件、硬件的总称称为中断系统。
不同计算机的中断系统,其具体实现可能不尽一样,但中断系统的基本功能是相同的。
中断系统的基本功能如下:1.能实现中断响应、中断处理(服务)、中断返回和中断屏蔽。
这是中断系统最基本的功能。
2.能实现中断优先级排队(管理)。
即当有多个中断源同时申请中断时,CPU如何能够优先响应最紧急的中断申请。
3.能实现中断嵌套。
即当CPU正在为优先级较低的中断源服务时,具有较高优先级的中断源提出中断申请,此时中断系统应当允许较高优先级的中断源中断较低优先级的中断源,待较高优先级的中断处理完成后,再接着处理较低优先级的中断,这种中断服务程序再被中断的过程称为中断嵌套。
8.3 何谓非屏蔽中断和可屏蔽中断?答:非屏蔽中断是指用户不能用软件屏蔽的中断。
它是通过8086的NMI引脚进入。
基于向量表的RISC-V处理器普通中断与NMI优化设计
基于向量表的RISC-V处理器普通中断与NMI优化设计基于向量表的RISC-V处理器普通中断与NMI优化设计摘要:RISC-V是当前流行的开源指令集架构之一,而中断是现代处理器上一种重要的功能。
本文针对RISC-V处理器中的普通中断和非屏蔽中断(NMI)进行优化设计,并采用向量表的方式实现中断处理。
通过对中断处理的流程进行优化,提高了中断响应的速度和系统的可靠性,为嵌入式系统开发提供了更好的解决方案。
一、引言中断是处理器中一种重要的机制,它可以及时响应外部事件并中断正在执行的程序,执行相应的中断服务例程。
随着嵌入式系统的发展,对中断处理的要求越来越高,因此对中断处理的优化也成为了研究的热点之一。
RISC-V是一种开源指令集架构,它具有简洁、清晰的特点,为了实现高效的中断处理,本文将采用RISC-V处理器,并通过向量表的方式实现中断的响应和处理。
二、RISC-V处理器中的中断RISC-V处理器中的中断分为两种,一种是普通中断,另一种是非屏蔽中断(NMI)。
普通中断是通过设置相关中断使能寄存器以及中断控制寄存器来触发和控制的;而NMI是一类紧急中断,无论处理器是否处于中断使能状态,都会立即响应并执行中断服务例程。
传统的RISC-V中断处理采用了轮询的方式,即在每个指令执行之后都会进行中断检测。
这种方式的中断响应时间较长,且会浪费大量的处理器周期。
为了改进中断处理的效率,本文将采取向量表的方式,实现中断的优化处理。
三、向量表的设计向量表是一种保存中断服务例程地址的数据结构,每个中断向量表都包含了不同中断的服务例程地址。
在RISC-V处理器中,中断向量地址的存放是由处理器控制的,通过对向量表进行适当的设计和布局,可以有效地提高中断处理的效率。
本文设计了一个基于向量表的中断处理机制。
首先,创建一个向量表,并初始化其中的中断向量地址。
然后,将向量表的地址加载到处理器的中断向量地址寄存器中。
当中断发生时,处理器会根据中断编号从向量表中读取相应的中断向量地址,并跳转到中断服务例程执行。
浅谈嵌入式软件开发之影响嵌入式MCU中断延迟(InterruptLatency)的因素总结
浅谈嵌⼊式软件开发之影响嵌⼊式MCU中断延迟(InterruptLatency)的因素总结内容提要引⾔(何为中断延迟)1. 存储中断向量表和中断ISR代码的存储器访问速度2. CPU内核Cache命中(hit)与否3. 中断ISR代码的复杂程度(是否需要压栈)4. 中断ISR代码的编译效率(⼯具链编译器的优化设置)5. 中断识别时间(外设中断事件发⽣到中断标志位置位)6. 中断优先级设置与中断嵌套配置7. CPU内核是否正使能硬件浮点数单元(FPU)引⾔(何为中断延迟)经常有客户和公众号的读者问我关于嵌⼊式MCU中断延迟(Interrupt Latency)相关的问题。
所谓嵌⼊式MCU的中断延迟,是指MCU外设发⽣中断事件(⽐如定时器溢出,CAN报⽂接收完成,DMA传输错误等),到CPU内核执⾏相应中断事件中断服务程序(ISR)第⼀条指令/做出相应事件的响应动作所花费的时间。
下⾯,本⽂就此问题,结合作者多年的嵌⼊式MCU开发经验,对影响嵌⼊式MCU中断延迟(Interrupt Latency)的因素进⾏了⼀个全⾯的归纳和总结,希望对⼤家有所启发和帮助。
1. 存储中断向量表和中断ISR代码的存储器访问速度当外设中断被内核的中断控制器(⽐如KEA/S32K系列MCU使⽤的ARM Cortex-M的NVIC和Qorivva MPC56/57xx效率MCU使⽤的Power e200系列内核的INTC中断控制器)识别后,CPU内核会⾸先从中断向量表中读取相应中断的中断向量(即中断ISR函数地址)到内核PC指针,从⽽快速跳转到中断ISR函数执⾏。
若存储中断向量表和中断ISR的存储器,⽐如Flash访问速度不够快,则CPU内核需要等待若⼲内核时钟周期才能拿到中断向量和中断ISR函数代码指令,从⽽将增加MCU的中断延迟时间。
因此,将MCU的CPU内核中断向量表重定向(remap/relocate)到SRAM中,并将关键(频繁发⽣)的内核异常和外设中断ISR拷贝到SRAM中执⾏,可以避免此类中断延迟。
【哈工程】计算机硬件技术基础--10硬基第7章中断
(二)中断标志
1、中断允许标志 在CPU的标志寄存器中的IF标志。表示是否可以响应 外设的中断请求。通常用1来表示允许。 2、中断请求标志 对应每个外设有一位,用来纪录外设的中断请求状态。 有请求时置1,中断处理完后清0。 在PC机中,用8259A来管理外设的中断请求,而在 8051系列的单片机中,该标志也在CPU内部。
栈弹出
26
第二节 8086/8088的中断结构
在8086/8088系统中提 供了256种中断类型的 结构,用1个字节进行编 码称为中断类型码;每 个中断类型对应于4个字 节的程序入口地址称为 中断向量;256个中断 向量存放在内存最开始 的1KB的中断向量表中。
00000H
┇ 003FFH ┇
27
11
(三)中断屏蔽
有些硬件中断源的请求可以根据IF标志决定是否响应, 而有些硬件中断源的请求需要一定被响应。 在8086/8088系统中,INTR是可屏蔽中断请求引脚; NMI是不可屏蔽的中断请求引脚。 在PC机系统中,通过8259A管理的外设中断源连在 CPU的INTR引脚上。在8259A内部有8位的中断申请寄存 器和8位的中断屏蔽寄存器,可以对应于8个外设的中断申 请和中断屏蔽。
3
二、中断的定义:
中断定义: CPU执行程序时,由于发生了某种随机的事件(外 部或内部),引起CPU暂时中断正在运行的程序,转去 执行一段特殊的服务程序(称为中断服务程序或中断处 理程序),以处理该事件,该事件处理完后又返回被中 断的程序继续执行,这一过程称为中断。 中断请求:外设的硬件和系统软件指令的软件 中断请求。
17
中断源识别
软件查询法
中断矢量法。 由中断源提供中断类型号,CPU根据 类型确定中断源。
微机原理及接第七章中断技术可编程中断控制器(Intel 8259A)口技术
A/D转换器 开关量输入 D/A转换器 开关量输出
键盘 数字化仪 点阵打印 CRT 显示 光笔 图形输入 激光打印 液晶显示 声音输入 喷墨打印 绘图仪 X-Y记录仪 扫描仪
硬盘 软盘 光盘 磁带
微机控制各类接口框图
二、 CPU 与外设之间的接口信息
1. 数据信息 (DATA) CPU与外设交换的基本信息是数据, 有三种类型: (1) 数字量 由键盘、光电输入机等输入的信息。
译 码 器 三态缓 冲器 G
A15~A0 M/ IO
INTA INTR
中断允许 触发器
工作原理:若输入设备准备好数据,且中断允许,则通 过中断请求触发器发INTR。如果IF=1,则CPU在当前指 令执行完后,进入中断响应周期,发INTA,待到中断类 型号,进入中断服务实现数据传送。
外 设 准 备 数 据
3. 控制信息 (CONTROL)
CPU通过接口输出用以控制外设工作的信息。 例如控制I/O 设备启动或停止等。
AB CPU DB CB DATA STATUS I/O 设备
1 I/O 接口 2
3 CONTROL
CPU 与外设之间的接口信息
三、接口的功能
接口用以解决CPU与外设连接时存
在的矛盾,一般有以下功能: 1. 数据缓存:匹配不同的数据传送速率。 2. 端口寻址:选择某一外设,某一端口。 3. 命令译码:解释CPU输出的命令,产生相 应的操作控制信号。
4. 同步控制:协调时序上的差异。
8.2
I/O 端口的编址方式
接口电路中能被CPU访问的寄存器或某 些特定器件称为I/O端口。I/O端口分为数据 端口、状态端口和命令端口。
AB
CPU 1 I/O 接口 2 DATA
微机原理第六章 输入输出和中断技术 part 2 (2)
中断处理的一般过程
6.4.3 8088/8086中断系统
8086/8088为每个中断源分配 一个中断类型码(中断向量码),其取值范围为 0~255,实际可处理56种中断。其中包括软件中断,系统占用的中断,已经开放 给用户使用的中断。所有中断又可分为两大类:内部中断和外部中断。
内部中断
6.4.2 中断处理的一般过程
1. 中断请求 2. 中断源识别及中断判优 3. 中断响应 4. 中断处理(服务) 5. 中断返回
1. 中断请求 ➢ INTR中断请求信号应保持到中断被处理为止 ➢ CPU响应中断后,中断请求信号应及时撤销
2. 中断源识别 ➢ 软件判优:由软件来安排中断源的优先级别。顺序查询中断请求,先查询的
➢ (4)能向存储器或外设发出读/写命令。 ➢ (5)能决定传送的字节数,并判断DMA传送是否结束。 ➢ (6)在DMA过程结束后,能向CPU发出DMA结束信号,将总线控制权交
还给CPU。
2. DMA控制器的工作过程 ➢ (1)当外设准备好,可以进行DMA传送时,外设向DMA控制器发出
“DMA传送请求”信号DRQ ➢ (2)DMA控制器收到请求后,向CPU发出“总线请求”信号HOLD ➢ (3)CPU在完成当前总线周期后会立即发出HLDA信号,对HOLD信号进
➢ (2)单步中断——1型中断,标志寄存器中有一位陷阱标志TF。 ➢ (3)断点中断——3型中断,专用于设置断点的指令INT 3,用于程序中设
置断点来调试程序。
➢ (4)溢出中断——4型中断,在算数指令的执行过程发出溢出 ➢ (5)用户自定义的软件中断——n型中断,执行中断指令INT n引起内部中
断。
需要时,CPU回到原来被中断的地方继续执行自己的程序。 优点: ➢ CPU效率高,实时性好 缺点 ➢ 程序编制相对较为复杂
嵌入式系统的性能优化技术研究
嵌入式系统的性能优化技术研究引言嵌入式系统广泛应用于工业、能源、交通等领域,对其性能的精益求精已经成为许多企业的共同目标。
因此,研究嵌入式系统的性能优化技术已经成为许多学者研究的热点。
本文将从CPU、存储器、I/O接口三个方面,探讨嵌入式系统性能优化的方法。
一、CPU性能优化技术1. 频率、电压的调整频率和电压对于CPU的工作性能至关重要。
合理的频率和电压可以提高系统的性能,但是不合理的频率和电压则可能会影响CPU的寿命。
因此,在进行频率和电压调整之前,应该仔细的评估系统的负载和CPU的温度,制定科学的频率和电压方案。
2. 软硬件协同设计软硬件协同设计是优化CPU性能的常见手段,可以利用硬件加速来提高系统性能。
例如,在专用硬件的帮助下,可以将一些计算或者解析任务转到硬件中执行,从而减轻CPU的负担,提高运行效率。
3. 代码优化对于大部分嵌入式系统而言,代码优化是提高CPU性能的重要手段之一。
有一些基本原则可以帮助优化代码:(1)减少指令数:更少的指令数可以减轻CPU的负担,从而提高运行效率。
(2)利用CPU缓存:CPU缓存是非常重要的资源,可以快速读取和写入内存中的数据,提高系统性能。
(3)利用CPU指令集:CPU指令集是CPU硬件实现的指令,可以提高程序运行效率和速度。
二、存储器性能优化技术存储器性能是影响系统性能的重要因素之一,其影响了系统的运行速度和响应速度。
1. 内存管理内存管理是优化存储器性能的关键。
通过合理的内存管理,可以减少内存碎片,提高内存的利用率,从而提高系统的性能。
2. 缓存算法缓存算法是优化存储器性能的重要手段之一。
常见的缓存算法有LFU(最近最少使用)算法和LRU(最近最少使用)算法等。
这些算法都是基于时间和空间的平衡,通过调整缓存大小和数据调度策略,来提高系统的性能。
3. 存储器技术更新随着技术的不断发展,存储器技术也在不断更新换代。
新的存储器技术可以提高带宽、节省功率、提高容量等等。
CPU处理器架构之争系列(一):英特尔经典x86架构
CPU处理器架构之争系列(一):英特尔经典x86架构展开全文在集成电路的发展历程中,有一家公司必须被提及,那就是英特尔。
不论是其创始人诺伊斯发明了可工业化生产硅芯片的平面工艺技术,还是后来在微处理器领域引领全球数十年,英特尔在集成电路领域的成就都是令人敬重的。
Intelx86架构起源1971年英特尔发明了微处理4004,由此开启了微处理器快速发展的浪潮。
1978年,英特尔推出了首款基于x86架构的16位处理器8086 CPU。
当时英特尔与IBM合作,推出基于8086处理器的PC,在市场上获得巨大成功,这也使x86迅速发展成为PC标准平台。
早年采用x86架构的企业其实也有数家,但最后就剩AMD能够与英特尔竞争,这其中关键竞争要素不仅在芯片设计技术上,还在于领先的工艺技术。
x86架构采用CISC架构,需要向前兼容x86架构采用可变指令长度的复杂指令集(Complex Instruciton Set Computer,CISC)架构。
与精简指令集(Reduced Instruciton Set Computer,RISC)相比,CISC执行效率更低。
另外x86架构有一个重要特点就是向前兼容。
每次架构的升级一定程度上帮助英特尔建立了更高的生态壁垒,但同时这也是困扰x86架构速度提升的一个历史包袱。
为了顾全兼容性和高性能,Intel推出的x86的新架构,把x86指令转换成类似RISC的微指令,然后再执行,以此获得和RISC相当的性能,同时仍然能够前向兼容。
英特尔于1985年推出了基于32位的80386 CPU,扩展了x86架构的位数,提升了CPU的性能。
而后在32位处理器向64位处理器转移的过程中,英特尔也想尝试放弃前向兼容,采用新架构,和RISC 的ARM硬拼。
但是失败了,因为已有的软件生态不支持这样的新架构。
与此同时,老对手AMD在继承32位x86架构基础上,率先推出了64位的x86架构处理器。
并于微软操作系统形成良好互动,英特尔只能放弃原来自己的新架构,采用AMD的64位架构进行扩展。
第四章中断系统
一、中断源和中断请求标志
8051单片机有5个中断请求源:
▪ 外部输入中断源INT0(P3.2) 或
▪ 外部输入中断源INT1(P3.3)
或
▪ 片内定时器T0的溢出
▪ 片内定时器T1的溢出 ▪ 片内串行口发送或接收中断源
(2)中断服务程序入口地址(也称为中断向量)由硬件 决定,与CPU类型有关,不能更改。而子程序入口地 址由用户安排。
(3) 子程序中可以任意调用另一子程序,但中断有优先 级,同级或低级中断不能打断正在执行的同级或更高优 先级中断服务程序。
(4) 尽管子程序返回指令RET和中断返回指令RETI均会 将栈顶两个字节信息装入PC,恢复断点,但RETI还清 除相应中断优先级触发器,因此中断返回指令不可用子 程序返回指令RET代替。
INT0 INT1
单片机 T0 T1
串行口
MCS-51的中断系统——中断标 志
中断源
中断标志位
CPU
INT0
IE0
T0
TF0
主
INT1
IE1
程 序பைடு நூலகம்
T1
TF1
串口
TI
RI
▪ 每一个中断源都有相应的中断标志位;
▪ 某一个中断源申请中断,相应中断标志位置1。
MCS-51的中断系统——中断允许
中断源
中断标志位 中断允许
• IE0:外部中断0中断标志。其操作功能与IE1 相同。
• IT0:外中断0触发方式控制位。其操作功能与 IT1相同。
SCON寄存器——串行口控制寄存 器
SCON
76 5 4
3
计算机组成原理中断处理基础知识全面解析
计算机组成原理中断处理基础知识全面解析计算机组成原理是指计算机硬件和软件之间的关系以及它们是如何协同工作的。
其中,中断处理是计算机组成原理中至关重要的一部分。
本文将对计算机中断处理的基础知识进行全面解析,包括中断的定义、中断处理的过程以及中断处理的相关技术和应用。
一、中断的定义中断是一种由计算机硬件或软件发出的信号,用于暂停当前程序的执行,并转而处理某种特定事件。
中断可以分为硬件中断和软件中断两种类型。
硬件中断是由计算机硬件发出的中断信号,如外部设备发生故障、定时器计数完毕等。
当计算机接收到硬件中断信号时,它会立即中止当前正在执行的程序,并跳转到中断处理程序来处理相应的事件。
软件中断是由程序员在程序中主动发起的中断信号,用于请求操作系统提供某种服务,如文件读取、内存分配等。
软件中断一般通过指令或系统调用的方式触发,与硬件中断相比,软件中断的处理方式更加灵活和可控。
二、中断处理的过程中断处理是指在计算机接收到中断信号后,进行中断处理程序的执行。
中断处理的过程可以分为以下几个步骤:1. 中断请求发生:当计算机接收到中断信号时,中断控制器将信号传递给中央处理器(CPU),并暂停当前正在执行的程序。
2. 中断服务程序选择:中央处理器根据中断信号的优先级选择相应的中断服务程序,并将程序的入口地址加载到中央处理器的指令寄存器。
3. 中断服务程序执行:中央处理器开始执行中断服务程序,在程序中完成与中断事件相关的操作和数据处理。
4. 中断服务程序结束:中断服务程序执行完毕后,中央处理器会从堆栈中恢复之前执行的程序状态,并继续执行被中断的程序。
三、中断处理的相关技术和应用1. 中断向量表:中断向量表是一个存储中断服务程序入口地址的数据结构,用于实现中断服务程序的调度和执行。
每个中断类型都对应着中断向量表中的一个表项,当中断发生时,中断向量表能够帮助中央处理器快速找到对应的中断服务程序。
2. 中断屏蔽:中断屏蔽是一种控制中断处理的技术,通过屏蔽某些中断信号,可以实现对中断处理的灵活控制。
中断和dma工作原理
中断和dma工作原理1. 中断中断是计算机系统中一种非常重要的机制,它可以帮助处理器在执行程序的同时处理其他任务。
在计算机运行过程中,当发生一些特殊的事件时,比如外设发出信号、软件产生异常等,CPU就会暂停当前的工作,转而去执行一些特定的程序,这个就是中断。
中断可以让CPU 完成对当前任务的暂停并转而处理其他任务,保证了系统的实时性、可靠性和可扩展性。
2. DMADMA是Direct Memory Access的缩写,直接内存访问,是一种无需CPU干预的数据传输技术。
和中断机制不同,DMA技术可以用来解决大数据传输、高速数据采集等计算机系统中的瓶颈问题。
DMA技术通过预设的高速通道,直接控制外部设备与内存之间的数据传输。
相比于中断机制,DMA技术能够避免CPU等待时间的浪费,提高了数据传输的效率。
3. 中断和DMA的区别中断是由特定事件触发并暂停当前工作以执行其他任务,而DMA 技术则是无需CPU干预地控制外部设备与内存之间的数据传输。
中断机制可以解决一些对实时性有要求的事件处理,DMA技术则可以用来解决大数据传输、高速数据采集等计算机系统中数据传输的瓶颈问题。
4. 中断和DMA的工作原理中断的具体操作方式和实现方法和硬件和操作系统架构有关,但是大体流程大致相同。
当事件发生时,CPU会根据当前运行的进程和中断优先级等信息去调用相应的中断处理程序,从而响应和处理触发事件。
中断处理程序执行完毕后,CPU会回到原任务的位置继续执行。
DMA的工作方式则是整个过程被分为了三个步骤:通道的设置、数据传输、中断的设置。
DMA传输的流程分为如下几个步骤:首先,CPU 将要传输的数据拷贝到DMA缓冲区中;然后,DMA将从外部设备中读取数据并传输到内存对应地址的缓冲区;最后,DMA传输完成后会发送一个DMA传输结束的中断,通知CPU数据已经传输完毕。
因此,中断机制和DMA技术是计算机系统中非常重要和常用的技术手段,相较之下每种技术都有其适用性,可根据实际应用需求或具体情况而使用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
不同CPU中断技术对比专题研究下面是本小组对不同CPU中断技术的研究列表。
CPU类型包括:ARM,8051和x86。
比较的方向包括:中断源中断申请方式、中断优先级管理方式、中断的处理过程、中断向量等。
1中断源中断申请方式续方式所请求。
EXTINT 寄存器为外部中断配制信号触发方式为电平触发或边沿触发,同时还配制信号触发极性。
为了确认电平中断,由于噪声滤波必须保持EXTINTn引脚上有效逻辑电平至少40ns。
b.外部中断屏蔽寄存器(EINTMASK)EXTMASK[23:4]分别对应外部中断23~4,等于1,对应的中断被屏蔽;等于0,允许外部中断。
EXTMASK[3:0]保留。
c.外部中断挂起寄存器(EINTPEND)中断挂起寄存器INTPND共有32位,前4位保留(因为EINT0—EINT3对应的挂起位在寄存器INTPND中),4~23位对应着一个中断源,当中断请求被响应的时候,相应的位会被设置为1。
在中断服务子程序中可以通过判断EINTPND来判断哪个中断在提起申请。
设都预先指定一个中断向量号,当CPU识别出某个设备请求中断并予以响应时,中断控制逻辑就将请求设备的中断向量号送给CPU,由中断向量号自动地引导到中断服务程序。
中断优先级管理ARM处理器中有7种类型的异常,按优先级从高到低的排列如下:复位异常(Reset)、数据异常(Data Abort)、快速中断异常(FIQ)、外部中断异常(IRQ)、预取异常(Prefetch Abort)、软件中断(SWI)、未定义指令异常(Undefinedinstruction)。
关于各种异常的具体介绍,详见附录2。
1.低优先级中断请求不能打断高优先级的中断服务;但高优先级中断请求可以打断低优先级的中断服务,从而实现中断嵌套。
2.如果一个中断请求已被响应,则同级的其他中断响应将被禁止。
3.如果同级的多个请求同时出现,则按CPU查询次序确定哪个中断请求被响应。
当CPU接收到中断请求信号后,执行判优查询程序,逐个检测外设的中断请求标志位状态,检测的顺序是按优先级的大小排列的,最先检测到的中断源具有最高的优先级。
2方式其查询次序为:外部中断0;定时中断0;外部中断1;定时中断1;串行中断。
中断的处理过程当异常中断发生时,系统执行完当前指令后,将跳转到相应的异常中断处理程序处执行。
当异常中断处理程序执行完成后,程序返回到发生中断的指令的下一条指令处执行。
在进入异常中断处理程序时,要保存被中断的程序的执行现场。
从异常中断处理程序退出时,要恢复被中断的程序的执行现场。
ARM体系中通常在存储地址的低端固化了一个32字节的硬件中断向量表,用来指定各异常中断及其处理程序的对应关系。
当一个异常出现以后,ARM微处理器会执行以下几步操作:1)保存处理器当前状态、中断屏蔽位以及各条件标志位;2)设置当前程序状态寄存器CPSR中相应的位;3)将寄存器lr_mode设置成返回地址;4)将程序计数器(PC)值设置成该异常中断的中断向量地址,从而跳转到相应的异常中断处理程序处执行。
在接收到中断请求以后,ARM处理器内核会自动执行以上四步,程序计数器PC总是跳转到相应的固定地址。
从异常中断处理程序中返回包括下面两个基本操作:1.中断源提出申请,并建立相应的中断标志(由硬件置位标志位);2.CPU结束当前指令,响应该中断申请,同时把主程序断点处地址(程序计数器PC当前值)压入堆栈,即保护断点;3.保护现场。
把断点处的有关信息(如工作寄存器、累加器、标志位的内容),压入堆栈;执行中断服务程序;4.恢复现场。
把保存的现场内容从堆栈弹出,以恢复寄存器和存储单元的原有内容;5.返回主程序(或调用程序),执行中断返回指令,把断点处地址从通常由中断申请、中断响应、中断处理、中断返回四个过程完成。
1.中断申请:当外设需要中断服务时,由硬件产生一个中断请求信号INTR发送给CPU;CPU在当前指令结束时检测INTR引脚,判断是否有中断请求。
2.中断响应当检测到有中断请求且IF=1时,总线周期信号M/IO D/CW/R为000,通过总线控制逻3中断的处理过程续1)恢复被屏蔽的程序的处理器状态;2)返回到发生异常中断的指令的下一条指令处继续执行。
当异常中断发生时,程序计数器PC所指的位置对于各种不同的异常中断是不同的,同样,返回地址对于各种不同的异常中断也是不同的。
例外的是,复位异常中断处理程序不需要返回,因为整个应用系统是从复位异常中断处理程序开始执行的。
栈顶弹出,从断点处继续执行主程序(或调用程序)。
然而,中断响应后,如果不及时清除中断请求标志,会引起中断的混乱。
下面按中断请求的类型说明中断请求的撤除方法。
(1)定时中断由硬件自动撤除定时中断响应后,硬件自动把标志位(TFx)清零。
(2)外部中断的自动与强制撤除若外部中断以脉冲方式触发,则由硬件自动地把标志位(IEx)清零。
若以电平方式触发,则需由外部电路和软件配合撤除。
(3)串行中断软件撤除串行中断的标志位是TI和RI,但对这两个中断标志位不进行自动清零。
因为在中断响应后,还需测试这两个标志位的状态,以判定是接收操作还是发送操作,然后辑发中断响应信号INTA给中断请求设备表示应答;中断请求设备将中断号送上数据总线;系统自动进入中断响应周期,由硬件完成关中断、保存断点、取中断服务的入口地址(N*4)等一系列操作,而后转向中断服务程序执行中断处理。
3.中断处理执行中断服务程序中规定的操作。
4.中断返回将压栈的断点从堆栈中弹出,开中断,CPU转向被中断的主程序继续执行。
4才能清除。
所以串行中断请求的撤除应使用软件方法。
即:CLR TI;TI 0CLR RI;RI 0中断向量复位异常FFFF0000 00000000未定义指令异常FFFF0004 00000004软件中断FFFF0008 00000008预取异常FFFF000C 0000000C数据异常FFFF0010 00000010外部中断异常FFFF0018 00000018快速中断异常FFFF001C 0000001C与中断控制有关的寄存器有4个:TCON:定时控制寄存器SCON:串行口控制寄存器IE:中断允许寄存器IP:中断优先级寄存器限于表格篇幅,有关8051中断控制相关寄存器的详细说明,详见附录3。
有关8051中断管理主程序,详见附录4。
中断矢量表是存放中断服务程序入口地址的存储空间。
实模式下,存放于存储器的低端000H--3FFH,共1K字节,每一个中断号占据4字节的空间,低2字节存放对应中断入口子程序的偏移地址,高2字节存放对应中断入口子程序的段基址。
保护模式下,除了2字节的段描述符,偏移量用4字节表示,因此中断向量表中的表项由8字节组成,中断向量表也称中断描述符表,可存放于存储器的任意位置,由中断描述符表寄存器IDTR标识其在物理存储器中的位置。
5附录1 ARM内部中断寄存器详解中断控制器中有5个中断控制寄存器。
各个中断控制寄存器及其每一位的具体用法,限于篇幅,不在表格里阐述,详见附录1。
a.源挂起寄存器,SOURCE PENDING (SRCPND)REGISTER中断控制寄存器INTCON共有32位,每一位对应着一个中断源,当中断源发出中断请求的时候,就会置位源挂起寄存器的相应位。
反之,中断的挂起寄存器的值为0。
该寄存器中的每一位对应特定的中断源,当该位的值为:0,表示这个中断源中没有中断被请求;1,表示该中断源中有中断被请求。
b.中断模式寄存器,INTERRUPT MODE (INTMOD)REGISTER中断模式寄存器INTMOD共有32位,每一位对应着一个中断源,当中断源的模式位设置为1时,对应的中断会由ARM920T内核以FIQ模式来处理。
相反,当模式位设置为0时,中断会以IRQ模式来处理。
默认为IRQ模式。
(注意:如果中断模式为FIQ模式,INTPND和INTOFFSET寄存器是无效的,也就是说,这两个寄存器只在IRQ模式下有效。
)该寄存器中的每一位对应特定的中断源。
当该位的值为:0,表示这个中断源中的中断为IRQ模式;1,表示该中断源中的中断为FIQ 模式。
c.中断屏蔽寄存器,INTERRUPT MASK (INTMSK)REGISTER这个寄存器有32位,分别对应一个中断源。
当中断源的屏蔽位设置为1时,CPU不响应该中断源的中断请求,反之,等于0时CPU能响应该中断源的中断请求。
该寄存器中的每一位对应特定的中断源,当该位的值为:0,表示这个中断源没有被屏蔽,其中的中断可以被响应;1,表示该中断源被屏蔽,该中断源中的中断不可以被响应。
d.中断优先权寄存器,PRIORITY REGISTER (PRIORITY)下面以CPU arm920t 为例,其优先级判断分为两级。
①ARBITER6所控制的REQ0,1,2,3,4,5实际上对应ARBITER0,1,2,3,4,5②REQ0在任何情况下具有最高优先级,REQ5具有最低优先级;对ARBITER1-4的仲裁组来说(仲裁组组中的不同的中断),在任何情况下:对应的仲裁组中的中断REQ0具有最高优先级,中断REQ5具有最低优先级,而ARBITER0,ARBITER5仲裁组中并没有中REQ0,REQ5。
对ARBITER6仲裁组来说(不同的中断仲裁组),在任何情况下:ARBITER0具有最高优先级,即仲裁组中的中断优先级是最高的,比别的仲裁组中的中断优先级都要高。
ARBITER5具有最低优先级,同理。
e.中断挂起寄存器,INTERRUPT PENDING (INTPND) REGISTER中断挂起寄存器INTPND共有32位,每一位对应着一个中断源,当中断请6求被响应的时候,相应的位会被设置为1。
在某一时刻只有一个位能为1,因此在中断服务子程序中可以通过判断INTPND来判断哪个中断正在被响应,在中断处理函数退出前,需要清除源挂起寄存器中对应的位,以及中断挂起寄存器中对应的位。
附录2 ARM处理器的中断异常详解1.复位异常当处理器的复位引脚有效时,系统产生复位异常中断,程序跳转到复位异常中断处理程序处执行。
复位异常中断通常用在下面两种情况下。
*系统上电。
*系统复位。
复位异常中断处理程序的主要功能:*设置异常中断向量表。
*初始化数据栈和寄存器。
*初始化存储系统,如系统中的MMU等。
*初始化关键的I/O设备。
*使能中断。
*处理器切换到合适的模式。
*初始化C变量,跳转到应用程序执行。
2.未定义指令异常当ARM处理器执行协处理器指令时,它必须等待一个外部协处理器应答后,才能真正执行这条指令。
若协处理器没有响应,则发生未定义指令异常。
3.软中断SWI软中断异常发生时,处理器进入特权模式,执行一些特权模式下的操作系统功能。