1 / 21

讲课中贯彻启发性和创新性 1—— 关于软件中断和硬件中断

讲课中贯彻启发性和创新性 1—— 关于软件中断和硬件中断. 所有中断处理子程序都有着 相同的结构模式 ,即: ① 一开始通过一系列 推入堆栈 指令来保护中断现场,即保护各寄存器的值 ( 当然有时未必需要保存所有寄存器的值 ) 。 ② 一般情况下,应用指令设置中断允许标志 IF 来 开放中断 ,以允许级别较高的中断请求进入。 ③ 中断处理的 具体内容 ,这是中断处理子程序的主要部分。. 讲课中贯彻启发性和创新性 1—— 关于软件中断和硬件中断. ④ 中断处理模块之后,是一系列 弹出堆栈 指令,使各寄存器恢复进入中断处理时的值。

vance-wynn
Download Presentation

讲课中贯彻启发性和创新性 1—— 关于软件中断和硬件中断

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 讲课中贯彻启发性和创新性1——关于软件中断和硬件中断讲课中贯彻启发性和创新性1——关于软件中断和硬件中断 所有中断处理子程序都有着相同的结构模式,即: • ① 一开始通过一系列推入堆栈指令来保护中断现场,即保护各寄存器的值(当然有时未必需要保存所有寄存器的值)。 • ② 一般情况下,应用指令设置中断允许标志IF来开放中断,以允许级别较高的中断请求进入。 • ③ 中断处理的具体内容,这是中断处理子程序的主要部分。

  2. 讲课中贯彻启发性和创新性1——关于软件中断和硬件中断讲课中贯彻启发性和创新性1——关于软件中断和硬件中断 • ④ 中断处理模块之后,是一系列弹出堆栈指令,使各寄存器恢复进入中断处理时的值。 • ⑤ 最后是中断返回指令,中断返回指令的执行使堆栈中保存的断点值和标志值分别装入EIP/IP、CS和标志寄存器。

  3. 中断处理子程序除了结构上的这些特点外,在位置上也有特点,它们在系统中,不是像其他应用程序那样浮动装配,而是固定装配的。装配的起始地址由中断向量表给出。并且,中断处理子程序通常都常驻内存,即系统一启动,就完成中断处理子程序的装配。中断处理子程序除了结构上的这些特点外,在位置上也有特点,它们在系统中,不是像其他应用程序那样浮动装配,而是固定装配的。装配的起始地址由中断向量表给出。并且,中断处理子程序通常都常驻内存,即系统一启动,就完成中断处理子程序的装配。 • 从上面可了解到,中断处理子程序和一般子程序相比,前者的最后一条指令是中断返回指令,而一般子程序的最后一条指令是返回指令。于是产生了这样一个想法,能不能像调用远程子程序那样利用软件来调用中断处理子程序?——软件中断

  4. 关于软件中断和硬件中断 • 软件中断有如下特点: • ① 用 INT 指令进入中断处理子程序,并且,中断类型号n 由指令提供。 • ② 进入中断时,不需要执行中断响应总线周期。 • ③ 不受中断允许标志IF的影响,也就是说,不管IF是1还是0,任何一个软件中断均可执行。不过,软件中断的一号中断受标志寄存器中另外一个标志即TF(单步中断标志)的影响,只有TF为1时,才能执行单步中断。

  5. 关于软件中断和硬件中断 • ④ 正在执行软件中断时,如果有外部硬件中断请求,并且是非屏蔽中断请求,那么,会在执行完当前指令后立即给予响应。如果在执行软件中断时有可屏蔽中断请求,并且此前由于中断处理子程序中执行了开放中断指令,从而使中断允许标志IF为1,那么也会在当前指令执行完后响应可屏蔽中断请求。 ⑤ 软件中断没有随机性。 • INT 21H INT 10H • INT 64H INT 63H

  6. 讲课中贯彻启发性和创新性2——关于地址错位技术讲课中贯彻启发性和创新性2——关于地址错位技术 • 大多数接口用两个连续的端口地址对应内部寄存器的读/写。怎样在接口和数据总线的某8位数据线相连时,满足接口对端口地址的设置要求,即一个接口用一奇一偶两个连续地址,能准确地和CPU进行数据信息、控制信息和状态信息的传输呢? • 在16位系统中,为了使所有的数据传输都利用数据总线的低8位,必须把地址总线的A1线和接口的A0端相连。为什么要这样进行地址的错位连接呢?

  7. 地址错位相连技术小结 CPU 数据线 体数 选0体 地址线 错位相连 初值 差值 • 8 1 20 A0_A0 A0=0 1 • 16 2 A0=0 20 A1_A0 A1A0=0 2 80386 32 4 A1A0 =0 32 A2_A0 A2_A0=0 4 Pentium64 8A2_A0=0 32 A3_A0 A3_A0=0 8 用低8位数据线——选0体 (BE0=0)

  8. 贯彻启发性和创新性3—Pentium流水线分支预测技术贯彻启发性和创新性3—Pentium流水线分支预测技术 • 程序设计中,条件转移指令用得非常多。条件转移指令在执行前,不能确定转移是否发生。而指令预取缓冲器是顺序取指令的,如果产生转移,那么,指令预取缓冲器中取得的后续指令全部白取,从而造成流水线断流,损失流水线效能。为此,希望在转移指令执行前,能够预测转移是否发生,从而确定此后执行哪一段程序。 • 执行预测功能,这种功能基于一个重要的分支规律。为了便于说明,先来看下面的程序段,这个程序段用来对屏幕像素填色。

  9. Pentium流水线分支预测技术 MOV DX,100 ;右下角像素的y坐标 AAA:MOV CX, 200 ;右下角像素的x坐标 BBB:MOV AL, 04 ;设置红色值04H MOV AH, 0CH ;写像素操作功能码 INT 10H ;像素位置写颜色 DEC CX ;x坐标左移一个像素 JNZ BBB;未到最左,则继续 DEC DX ;填完一行再对上一行操作 JNL AAA;如未结束则继续 …… ;如填好则结束

  10. 上面程序中,出现两个条件转移指令,即JNZ BBB和JNZ AAA。由于CX中事先设置了参数200,所以,在执行JNZ BBB指令时,有199次转向BBB处,只有1次转向下一条指令。同样,由于DX中事先设置了参数100,所以,在执行指令JNZ AAA时,有99次转向AAA处,只有最后1次才转向下一条指令。 • 上面程序中的分支转移情况十分常见。由此可以归纳出这样的规律:一是大多数条件转移指令转向每个分支的机会不是均等的;二是大多数条件转移指令排列在循环程序段中。这两点造成的综合结果是,在程序运行过程中,同一条件转移指令可能会多次甚至成百上千次执行。其中只有一次转向某一分支,其余全部转向另一分支,后者一般就是在循环体中循环,而前者则转出循环体。

  11. 由此可得到结论:条件转移指令的转移目标地址是可以预测的,预测的依据就是前一次的转移目标地址即所谓历史状态,预测的准确率尽管不是100%,但是可以很高,有时候甚至非常高。由此可得到结论:条件转移指令的转移目标地址是可以预测的,预测的依据就是前一次的转移目标地址即所谓历史状态,预测的准确率尽管不是100%,但是可以很高,有时候甚至非常高。 • 正是基于上述结论对转移指令进行分支预测,它含有一个1KB容量的Cache,其中可以容纳256条转移指令的目标地址和历史状态。历史状态用2位二进制数表示4种可能情况,即必定转移、可能转移、可能不转移和必定不转移。

  12. 讲课中怎样贯彻启发性和创新性的目的 • 弄明白一个技术的来龙去脉; • 从细微的现象中,得到启示。

  13. 对于微型机实验的考虑 对于《微型机原理》或《微型机技术》课程的实验安排,多年来,笔者和同行以及学生进行过很多讨论和交流,几乎一致的意见是,在计算机集成度越来越高的今天,用扩展板做硬件实验,价值甚小。因为, 一是扩展板上所有的实验,实际上是既不需要实验者设计、也不需要实验者连接和检测的线路实验,而不是计算机实验; 二是这些实验所用的线路其实与当前的计算机接口技术和系统技术相距很大,并不能由此提高学生对计算机技术的领悟力; 三是即使一些厂商推出的所谓改进型扩展板,实际上也仅仅是扩展板和主机之间的连接作了改变,实验内容仍然是老框框和老模式,和当前实际的计算机系统技术相去甚远。

  14. 出现学生不知道怎样连接硬盘。 作为“TPC-1实验系统”的主设计者,坦诚地劝告同行,现在完全不必再去购买商家推出的各种扩展板实验设备了。我们在实践和调查中感到,当前,最切合实际的微机实验, 1。 让学生打开手边的计算机机箱,结合书本知识,做一些分析性和综合性的训练题; 2。动手编写一些程序,在Pentium系统中调试和运行一下,看看自己的设计是否可行; 3。可以组织小组讨论和课堂讨论,对未来的微型机技术发展作展望,甚至可以进行不加限制、不作否定性评判的设想,再分析和比较,哪些是可能实现的。

  15. 对于微型机实验的考虑 本书配套教材正是出于这样的考虑而进行了改革和创新,推出了一套精心设计的综合训练题集。

  16. 关于综合训练 提供综合训练题的另一个原因是,我们了解到一些学校为了进行《微型机技术》课程的实验,经费上经历很多麻烦,但实验效果并不好。 因为实验的很大一部分内容是驱动8段显示管,而8段显示管在计算机系统中完全不用; 另外,所谓硬件实验,其实电路完全已经在印刷板上设计好,并不能提高学生的动手能力;最重要的是,这些内容大部分已经过时了。

  17. 关于综合训练 当年《TPC-1十六位微型机实验培训系统》的设计者,后来此系统被多个公司抄袭仿制。在此,笔者向兄弟院校坦诚建议,不要再买这类系统了,用综合训练题集可以收到更符合实际、更好的效果,并且可节省不必要的开支。 综合训练题集使用时,内容上可以选择一部分题做;时间上可以分两部分安排: 一部分时间用于每个学生自己做, 另一部分时间按小组进行讨论和交流,还可以组间交流,教师归纳和评价。

  18. 关于考试试卷 ① 覆盖知识面和关键点。 ② 不靠死记硬背。 ③ 好学生考出好成绩。

  19. 联系地址 ① me@tirc.cs.tsinghua.edu.cn ② sjq@tirc.cs.tsinghua.edu.cn

  20. 谢谢各位!

More Related