异常与中断 异常并不意外!一一lxx© llxx@ustc.edu.cn
异常与中断 异常并不意外!——llxx☺ llxx@ustc.edu.cn
程序如何执行的?用到哪些设备? /*-sum.c-=*/ 数据的表示 int sum(int a[]unsigned len) 数据的运算 { 各类语句的转换与表示(指令) int i,sum =0; 各类复杂数据类型的转换表示 for(i=0;i<=len-1:++) sum +a[i]; :过程(函数)调用的转换表示 return sum; Microsoft VisualC++ Unhandled exception in Test.exe:0xC0000005:Access Violation. /*---main.c---*/ int main() { 确定 inta[1]=100; int s; 链接(linker)和加载 s=sum(a,0); 程序执行(存储器访问) printf("%d",s); 异常和中断处理 输入输出(VO) C语言计算机? IF ID EX MEM WB
程序如何执行的?用到哪些设备? • C语言计算机?
Pentium Socket7插座 CPU CPU总线 北桥 士存与 Lacache 主存(DRAM) CPU总线 cache (256 PCI总线 控制器 512KB) (4I28MB)】 桥芯片 输入输出 I 芯片 可选 P▣总线 桥 PCI扩充槽 ROM BIOS 8042MPU PC总线 (64一128KB) 鼠标器 I5A总线 桥芯片 及 健盆、 鼠标 DMA.中断 62脚 控制递辑 控制器 (长精) 实时钟/日历 CMOS RAM ISA总线 电他 136脚 触盘 (短槽 唐图10.19 ISA扩充精 IF ID EX MEM WB
输入输出 唐图10.19
内容提要 ·异常与中断的基本概念,4.9 调用printfO -功能:处理意外事件,/O 应用程序 ·指令异常,系统服务(syscall) 库函数printf( ·外部中断 C函数库 一时序:顺序语义 库函数write() ·指令周期:同步,异步(中断周期) 系统调用write( 内核 -属性:5种 ·异常与中断响应的基本过程 一机构 ·向量式/非向量式,控制栈 User program Interrupt handler ·异常:EPC,Cause,Vector ·中断:EPC,Cause,Vector,Enable,Mask -OS:ESR/ISR -约定:软硬件接口 ·异常与中断响应过程控制 Interrupt- 一多周期异常处理:中断周期 occurs here j+ 一流水线异常处理 ·精确,非精确 M
内容提要 • 异常与中断的基本概念,4.9 – 功能:处理意外事件,I/O • 指令异常,系统服务(syscall) • 外部中断 – 时序:顺序语义 • 指令周期:同步,异步(中断周期) – 属性:5种 • 异常与中断响应的基本过程 – 机构 • 向量式/非向量式,控制栈 • 异常:EPC,Cause,Vector • 中断:EPC,Cause,Vector,Enable,Mask – OS:ESR/ISR – 约定:软硬件接口 • 异常与中断响应过程控制 – 多周期异常处理:中断周期 – 流水线异常处理 • 精确,非精确
Terms:exceptions、interrupts、traps 改变正常指令执行流(Transfer of Control)的意外事件。 一暂停当前程序的执行,转而执行其他程序; 一其他程序执行完成后,恢复被中断程序的执行。 与过程调用的区别:发生场景(程序内/外),系统状态切换 ● RISC:MIPS/ARM/RV统称exceptions,含 一内部事件 当前程序 ·指令异常:非法指令、溢出、访存错 异常/中断 系统调用(syscall):软中断(陷阱)、断点break 服务程序 -外部事件:中断Interrupts (ESR/ISR) ·/O中断(可屏蔽),设备故障(不可屏蔽) Type of event From where? RISC-V terminology System reset External Exception I/O device request External Interrupt Invoke the operating system from user program Internal Exception Using an undefined instruction Internal Exception Hardware malfunctions Either Either
Terms:exceptions、interrupts、traps • 改变正常指令执行流(Transfer of Control)的意外事件。 – 暂停当前程序的执行,转而执行其他程序; – 其他程序执行完成后,恢复被中断程序的执行。 – 与过程调用的区别:发生场景(程序内/外),系统状态切换 • RISC:MIPS/ARM/RV统称exceptions,含 – 内部事件 • 指令异常:非法指令、溢出、访存错 • 系统调用(syscall):软中断(陷阱)、断点break – 外部事件:中断Interrupts • I/O中断(可屏蔽),设备故障(不可屏蔽)