资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,第八章 中断和流水线,根据信号源,中断分两类:,1.,硬件中断,(,1),受外部中断信号触发的外部硬件中断,如,NMI,INT0,INT1,等,。,(2),受片内功能器件信号触发的内部硬件中断,如,Timer,DMA,McBSP,HPI,口,等,。,2.,软件中断,指令,INTR,,,TRAP,,,RESET,产生的软件中断。,一、中断概述,根据,IMR,寄存器,中断可分为:,1.,可屏蔽中断:,IMR,(,Interrupt Mask Register,)寄存器中定义的中断为可屏蔽中断;受状态寄存器,ST1,中,INTM,位影响,即,INTM,1,,关闭;,INTM,0,,开启。,SSBX INTM;,禁止中断,RSBX INTM,;开启中断,2.,不可屏蔽中断:,CPU,总能响应此中断,包括所有软中断和,RS,、,NMI,外部中断。,中断标志寄存器,IFR,各种中断的关系,VC54X,有16个可屏蔽中断,不同型号的,DSP,,只有其中的一部分才有意义。他们都是所有外设中断和部分外部管脚中断(,INT0,INT1.)。,不可屏蔽中断包括所有软件中断和两个硬件中断。软件中断一定是内部中断,而这两个硬件中断是外部中断,即,RS,和,NMI。,两个硬件中断是通过管脚产生的。,中断之间存在优先级,1级最高。,中断同流水之间也有竞争关系,。,二、中断处理步骤,接受请求中断:在有软件或硬件的中断时暂停主程序的执行,,IFR,相应位被置位。,响应中断:对于可屏蔽中断,当满足条件时,开放中断;对于非可屏蔽中断,可立即响应。,执行中断,:,跳到中断服务程序(,ISR,)的入口地址开始执行。,1,、接受请求中断,中断产生后,不管是否执行中断程序,首先修改标志位,即,IFR,对应中断比特为由,0,变为,1,。,我们可以通过,CCS,人工修改,IFR。,1,IFR,对于比特清零方法:,硬件或者软件复位,中断服务程序被执行,向对应比特写如1,INTR,指令执行对应中断,2,、中断响应,1,)软件中断和非屏蔽的硬件中断可立即被响应。,2,)可屏蔽中断响应要满足下列条件:,该中断的优先级是最高的一个。,ST1,寄存器中的,INTM,位是0,它用于控制所以可屏蔽中断是否使能。下面指令用于修改它。,RSBX INTM(,置0):允许,SSBX INTM(,置1,),:禁止,寄存器,IMR,中,相应可屏蔽中断控制位是使能(置,1,)的,表示允许中断。,4、中断执行,中断执行过程:,注:只有,TRAP,在中断执行中不把,INTM,置1,而其他软件和硬件中断都有把,INTM,置1,中断在返回主程序时,,INTM,是否被置0,看使用,RET(,不置0)还是,RETE(,置0)指令,中断矢量表,它是一个长度为128,word,的程序段;,必须位于程序空间一个128,word,的页中;,每4个,word,代表一个中断的执行代码;,中断矢量表的首地址决定于,IPTR,IPTR,根据命令文件在程序中赋值;,每一个中断对应于中断矢量表中的偏移地址是固定的;,IPTR,默认值为1,FF,,系统自己有一个中断矢量表,位于,FF80,地址;,4,、中断保护现场,寄存器的值要在程序中手工进行保护;,保护的方法就是压栈和弹栈:如保存,CPU,寄存器和外设寄存器,可用,PSHM,或,POPM,压入或弹出堆栈;采用,PSHD,或,POPD,将数据存储器的值压入或弹出堆栈。,堆栈大小可以在命令文件中设置,,SP,为其指针,默认大小为1,k,。,5,、中断延时,中断有时候不是一旦产生就马上有响应,有许多原因会导致中断的延时。流水线是其中一个原因。,由于流水线的作用,有些中断不打断程序的正常执行,必须等流水线达到一定条件才可以执行中断。,6,、中断总结,可屏蔽中断,非屏蔽中断,中断例子,定时器,三、流水线介绍,指令占有的周期,我们把六个,CPU,时钟周期称为一个指令周期;,一条指令是单周期还是双周期不是看执行花费的,CPU,时钟周期,而是占用的指令周期个数;,一条指令的执行不是每个,CPU,时钟周期里都要使用资源,即使使用,也是一部分资源,这是流水的产生根源。,流水线及其例子,中断返回指令与流水,5、流水线冲突,流水线冲突产生的原因是同一个时刻不同的指令在各自不同的阶段使用相同的资源或者访问相同的地址;,系统的流水线冲突通常系统会自己解决,如访问程序和数据空间的单访问或者双访问存储器时;,系统不可以自己解决的冲突,我们在程序中加以解决,解决的方法就是在产生冲突的两条语句间,加上,NOP,指令;,
展开阅读全文