异常与中断 异常并不意外!一一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(O ·指令周期:同步,异步(中断周期) 系统调用write( 内核 -属性:5种 ·异常与中断响应的基本过程 User program Interrupt handler 一机构 ·ESR/ISR入口(向量式/非向量式),控制栈 ·异常:EPC,Cause,Vector ·中断:EPC,Cause,Vector,Enable,Mask 2 -OS:ESR/ISR -约定:软硬件接口 ·异常与中断响应过程控制 -单周期 Interrupt- occurs here i+ 多周期:中断周期 一流水线:精确,非精确 M
内容提要 • 异常与中断的基本概念,4.9 – 功能:处理意外事件,I/O • 指令异常,系统服务(syscall) • 外部中断 – 时序:程序序(进程序)语义 • 指令周期:同步,异步(中断周期) – 属性:5种 • 异常与中断响应的基本过程 – 机构 • ESR/ISR入口(向量式/非向量式),控制栈 • 异常:EPC,Cause,Vector • 中断:EPC,Cause,Vector,Enable,Mask – OS:ESR/ISR – 约定:软硬件接口 • 异常与中断响应过程控制 – 单周期 – 多周期:中断周期 – 流水线:精确,非精确
Terms:exceptions、interrupts、traps 改变正常指令执行流(Transfer of Control)的意外事件。 -暂停当前程序的执行,转而执行ESR/ISR程序; ESR/ISR执行完成后,被中断的程序恢复执行。 一与过程调用的区别:发生场景(程序内/外),系统状态切换 RISC:MIPS/ARM/RV统称exceptions,含 当前程序 一内部事件:异常(例外) 异常/中断 服务程序 ·指令异常:非法指令、算术溢出/除零、访存缺页 (ESR/ISR) 系统调用(syscall,.软中断/陷阱):服务、断点break 外部事件:中断Interrupts,硬中断 。/O(键盘,可屏蔽),硬件故障(存储器, 不可屏蔽) Ring 3 Type of event From where? RISC-V terminology Ring 2 p224 System reset External Exception Ring 1 Ring 0 I/O device request External Interrupt Kemel Invoke the operating system from user program Internal Exception Using an undefined instruction Internal Exception Device drivers Hardware malfunctions Either Either Device drivers Applications
Terms:exceptions、interrupts、traps • 改变正常指令执行流(Transfer of Control)的意外事件。 – 暂停当前程序的执行,转而执行ESR/ISR程序; – ESR/ISR执行完成后,被中断的程序恢复执行。 – 与过程调用的区别:发生场景(程序内/外),系统状态切换 • RISC:MIPS/ARM/RV统称exceptions,含 – 内部事件:异常(例外) • 指令异常:非法指令、算术溢出/除零、访存缺页 • 系统调用(syscall,软中断/陷阱):服务、断点break – 外部事件:中断Interrupts,硬中断 • I/O(键盘,可屏蔽),硬件故障(存储器,不可屏蔽) p224