第七章中断和流水线
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5、中断矢量表
中断矢量表的首地址决定于命令文件,而该首 地址所在的页数,用户必须在程序代码中赋给 IPTR,而IPTR是PMST寄存器的高9bit; 中断执行时,DSP根据IFR判断是哪个中断, 然后根据IPTR找到中断矢量表起始地址,起 始地址加上该中断偏移地址,得到该中断的4 个word的地址,并从这里开始执行。 IPTR默认值为1FF,系统自己有一个中断矢量 表,MP方式时,位于程序空间FF80地址;
5、中断矢量表
Baidu Nhomakorabea
他是一个长度为128word的程序段,通常是用户定义 段,把它放在一个汇编源文件中; 在命令文件对中断矢量表定位时,必须位于程序空 间一个128word的页中,也就是中断矢量表必须是 80h整数倍开始的程序空间地址; 中断矢量表的128个word中,每连续4个word对应一 个中断的执行代码,比如开始的4个word对应复位中 断。而每一个中断对应于中断矢量表中的偏移地址 是固定的,即排列顺序固定。 通常,4个word对应的指令为跳转指令,跳转到真正 的中断服务程序。
4、中断返回指令与流水
TMS320C54x DSP Reference Set Volume 1: CPU and Peripherals Page 7-12
5、流水线冲突
流水线冲突产生的原因是同一个时刻不同的指 令在各自不同的阶段使用相同的资源或者访问 相同的地址; 系统的流水线冲突通常系统会自己解决,如访 问程序和数据空间的单访问或者双访问存储器 时; 系统不可以自己解决的冲突,我们在程序中加 以解决,解决的方法就是在产生冲突的两条语 句间,加上NOP指令;或者如课本280页给的 一些使用的习惯来克服冲突
三、流水线介绍
1、指令执行步骤 任何一条指令的执行,都需要经过下面 的六个步骤,虽然,某些指令只会使用 到六个步骤中的某几个。 TMS320C54x DSP Reference Set Volume 1: CPU and Peripherals Page 7-3 课本Page 273
2、指令占有的周期
第六章 中断和流水线
一、中断的概述 1、中断产生的来源 软件指令:INTR,TRAP,RESET 外部中断管脚:NMI,INT0,INT1…… 片内外设:Timer,DMA,McBSP,HPI口
2、中断分类
外部中断(管脚产生),内部中断(指令 和外设产生); 软件中断(指令产生),硬件中断(管脚 和外设产生); 不可屏蔽中断,可屏蔽中断(IMR寄存器 中定义的中断为可屏蔽中断);
TMS320C54x DSP Reference Set Volume 1: CPU and Peripherals Page 6-38
二、中断处理步骤
1、概述 请求中断 响应中断 执行中断
2、请求中断
中断产生后,不管是否执行中断程序, 首先修改标志位,即IFR对应中断比特为 由1变为0。 TMS320C54x DSP Reference Set Volume 1: CPU and Peripherals Page 6-27 我们可以通过CCS人工修改FIR。
我们把六个CPU时钟周期称为一个指令 周期; 一条指令是单周期还是双周期不是看执 行花费的CPU时钟周期,而是占用的指 令周期个数; 一条指令的执行不是每个CPU时钟周期 里都要使用资源,即使使用,也是一部 分资源,这是流水的产生根源。
3、流水线的例子
TMS320C54x DSP Reference Set Volume 1: CPU and Peripherals Page 7-6,7-7
TMS320C54x DSP Reference Set Volume 1: CPU and Peripherals Page 6-36-47
6、中断保护
大多数工作由系统自己完成 某些寄存器的值要在程序中手工进行保 护 保护的方法就是压栈和弹栈 堆栈大小可以在命令文件中设置,SP为 其指针,默认大小为1k
IFR对应比特复位方法: 硬件或者软件复位 中断服务程序被执行 向对应比特写如1 INTR指令执行对应中断
3、中断响应
中断响应要满足下列条件: 该中断的优先级是最高的一个。 对于可屏蔽中断ST1和IMR寄存器满足条件。 ST1寄存器中的INTM位,他用于控制所以可 屏蔽中断是否使能。0为使能,1为禁止。下面 指令用于修改他。 RSBX INTM(置0) SSBX INTM(置1) TMS320C54x DSP Reference Set Volume 1: CPU and Peripherals Page 4-4
3、各种中断的关系
VC54X有16个可屏蔽中断,不同型号的 DSP,只有其中的一部分才有意义。 不可屏蔽中断包括所有软件中断和两个 硬件中断。软件中断一定是内部中断, 而这两个硬件中断是外部中断,即RS和 NMI。两个硬件中断是通过管脚产生的。 中断之间存在优先级,1级最高。 中断同流水之间也有竞争关系。
4、中断执行
TMS320C54x DSP Reference Set Volume 1: CPU and Peripherals Page 6-35 注意:只有TRAP在中断执行中不把 INTM置1,而其他软件和硬件中断都有 把INTM置1,中断在返回主程序时, INTM是否被置0,看使用RET(不置0) 还是RETE(置0)指令
7、中断延时
中断有时候不是一旦产生就马上有响 应,有许多原因会导致中断的延时。流 水线是其中一个原因。 由于流水线的作用,有些中断不打断 程序的正常执行,必须等流水线达到一 定条件才可以执行中断。 一般不必考虑中断延时。
8、中断总结
课本Page 270 框图在 TMS320C54x DSP Reference Set Volume 1: CPU and Peripherals Page 6-37
ST1寄存器中的INTM位,他用于控制所以可 屏蔽中断是否使能。0为使能,1为禁止。下面 指令用于修改他。 RSBX INTM(置0) SSBX INTM(置1) TMS320C54x DSP Reference Set Volume 1: CPU and Peripherals Page 4-4 寄存器IMR中,相应可屏蔽中断控制位是使能 的,即为1。 TMS320C54x DSP Reference Set Volume 1: CPU and Peripherals Page 6-29