版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机组成原理课程设计报告题目全称:VC+仿真中断课程名称:VC+仿真中断指导老师:(注:学生姓名填写按学生对该课程设计的贡献及工作量由高到底排列,分数按排名 依次递减。序号排位为“1”的学生成绩最高,排位为“ 10”的学生成绩最低。)指导老师评语:签字:Abstract摘要程序中断传送方式(中断方式)是一种I/O传送的控制方式。这种方式定义 当CPU收到随机的中断请求后,暂时中止现行程序的执行,抓取执行为该随机事 件服务的中断处理程序,处理完毕后自动回复原程序的执行。在当今的大多数计 算机中,I/O传送控制方式多采用 中断方式。了解并且掌握中断方式的机制对于理 解计算机的I/O传送控制方式有
2、着 相当重要的作用。本文利用高级语言VC+开发模拟中断控制器的中断执行过程仿真软件。该软 件可以详细地将中断整个过程给以清晰的动态界面描述,更便于理解和掌握中断 过程。关键词:中断,中断控制器目录 TOC o 1-5 h z 第一章绪论11.1选题背景及意义1 HYPERLINK l bookmark8 o Current Document 1.2国内外研究现状1 HYPERLINK l bookmark11 o Current Document 1.3主要内容2第二章课程设计的需求分析3 HYPERLINK l bookmark14 o Current Document 2.1环境需求3 H
3、YPERLINK l bookmark17 o Current Document 2.2功能需求3 HYPERLINK l bookmark20 o Current Document 2.3性能需求3 HYPERLINK l bookmark23 o Current Document 2.3本章小结3第三章*的设计43.1总体设计4 HYPERLINK l bookmark33 o Current Document 3.2功能模块设计4 HYPERLINK l bookmark49 o Current Document 3.3本章小结7第四章*的实现84.1开发环境介绍8 HYPERLINK
4、l bookmark56 o Current Document 主要功能模块的实现 8 HYPERLINK l bookmark67 o Current Document 本章小结 12第五章测试及成果展示135.1测试环境13 HYPERLINK l bookmark74 o Current Document 5.2测试用例和结果135.3成果展示错误!未定义书签。本章小结 17 HYPERLINK l bookmark95 o Current Document 第六章总结与展望18参考文献19第一章绪论第一章绪论1.1选题背景及意义计算机的硬件部分通常包含了三大部件:CPU、存储器(主存储
5、器和外部存储器)、 I/O设备。这些部件之间必须有连接的通路,才能组成一个完整的计算机系统,以便相 互交换信息,协调一致地工作,实现计算机的基本功能,即执行程序。在主机和外设之 间如果要进行数据的交换,需要一套机制来对该交换过程提供控制信号。在当前的计算 机系统中,主机和外部设备之间的输入/输出操作可采用三种常用的技术,即直接程序 传送方式、程序中断方式、存储器直接访问(DMA)方式。其中,程序中断方式常简称 为中断方式,它是几乎所有的计算机系统都应具备的一种重要的工作机制,在实际工作 中被广泛地应用。在中断方式中需要进行一系列的隐指令操作:保存断点、读取服务程序入口地址; 以及在转入服务程序
6、后首先应执行的操作,如保护源程序的现场信息;在返回原程序前, 还需回复现场、读取返回地址等。这使得中断方式一般适用于处理中、低速的I/O操作 和随机请求,所处理的对象可以是复杂的随机事态。具体来讲,中断方式常有以下六种 典型应用:以中断方式管理中低速I/O操作,使CPU与外部设备并行工作;软中断; 故障处理;实时处理;多机通信;人机对话。在中断过程中,当外部提出中断请求后,CPU是否响应,或者存在多个中断请求时, CPU应该首先响应哪个中断请求。这两种情况决定了中断系统应该具有相应的优先级判 断逻辑和优先级动态调整的手段。中断方式由于其实质上是通过执行程序来进行对事件的服务处理,处理程序可以根
7、 据需要进行扩展,使得程序中断方式的处理能力很强,可以处理复杂事态。而在实时控 制系统中,许多实质性的功能模块就是以中断处理程序形态实现的,而主控制程序仅仅 是一个组织各个模块的框架。正是由于这一原因,使得中断控制方式在当今的计算机系 统中得到了极为广泛的应用。1.2国内外研究现状在微型计算机中,广泛使用一种中断控制器集成芯片,如Intel 8259A。它将中断 请求信号的寄存、汇集、屏蔽、排优、编码等逻辑集中在一块芯片之中。在设计中断系 统时,使用这种芯片就非常方便,不必了解芯片内究竟使用何种具体的排优逻辑。1.3主要内容本课题通过利用高级VC+语言,设计开发了一款中断过程仿真软件。其主要为
8、了 通过高级语言的仿真,将中断过程利用动态的界面形象地展现出来,从而更加深入地理 解和体会中断方式的处理过程。第二章课程设计的需求分析2.1环境需求PC机一台,装有VS2010.2.2功能需求能够模拟中断控制器中断过程。2.3性能需求设计中断屏蔽。在短时间内判断是否响应中断。能够进行中断判优。2.3本章小结本章说明了环境需求,功能需求,和性能需求。第三章中断控制器的设计3.1总体设计程序中断方式(中断方式)即是指:在计算机的运行过程中,如果发生某种随机事 态,CPU将暂停执行现行的程序,转去执行中断程序,为该随机事态服务,并在服务完 毕后自动回复原程序的执行。中断方式的过程具体如图所示。由其本
9、质可以推知,中断 方式具有程序切换和随机性两大重要特征。随机请求中断程序中断程序中断方式3.2功能模块设计终端系统的组成:中断系统即是与中断功能有关的硬件、软件的统称。从硬件角度而言,在接口方面, 中断接口需要具有请求、传递、判优逻辑。在CPU方面,需要有响应中断请求的响应 逻辑。而从软件角度而言,需要有服务程序、以及管理中断源的中断向量表。并且,由 于中断请求出现的随机性,无法在主程序的预定位置进行处理,需要独立地编制中断处 理程序。通过这样的软件组织方法,中断服务程序时独立于主程序实现编制的。在编制 用户主程序时,只需要提供允许中的可能(如开中断),不必细致考虑何时中断、如何 处理等问题,
10、大大地简化了设计方式。一旦发生中断请求,可以通过硬件中断请求信号 或软中断指令提供的中断号,转化为向量地址,从中断向量表中找到相应的服务程序入口地址,从而转入中断服务程序执行。中断请求的提出与传递一个中断请求的提出,需要同时具备以下两种逻辑关系:外部设备有中断请求的需要。例如“准备就绪”或者“完成了一次操作”,可以 将完成状态标志位设置为1,表示外设工作完成,有中断请求的需要。CPU没有对该中断源屏蔽,允许提出中断请求。在中断控制器中,设置了对低优 先级中断的屏蔽,如中断请求优先级低于当前正在执行的任务的优先级,则该中断会被 屏蔽,不会被送往CPU,反之,则有中断控制器发送一个公共的中断请求信
11、号INT,并 将此信号送往CPU进行下一步处理。使用中断控制器的中断系统中,中断请求的传递采用公共请求线的结构,如图2-2 所示。由中断控制器产生的中断公共信号INT通过公共的请求线传送给CPU。中断请求传递结构中断判优中断的判优主要有以下两种情况:CPU与中断请求之间的判优。第一种方法可以利用CPU的“允许中断”标志位的 手段进行CPU与中断请求之间的判优。CPU设置了一个“允许中断”标志位,指令系统 提供开中断与关中断的功能,开中断时标志位为1,关中断时标志位为0。如果关中断, 则CPU不响应任何外中断请求。反之,开中断时,可以响应外部中断请求。第二种方法 则是通过CPU设置程序状态字的优
12、先级字段,为现行的程序赋予优先级。当该优先级低 于中断请求的优先级时,CPU响应中断请求;反之,如果该优先级高于中断请求的优先 级,CPU不响应中断请求。中断请求之间的判优。按请求的性质,一般的优先顺序为:故障引发的中断请求、DMA 请求、外部设备中断请求。按中断请求要求的数据传送方向,一般的原则是让输入操作 的请求优先于输出操作的请求。然而,在目前多数的计算机中,一方面采用硬件逻辑实 现优先级判别,如利用中断控制器集中解决请求信号的接收、屏蔽、判优、编码等问题。 另一方面,计算机又可以改用软件查询方式体现优先级判别。这让计算机可以动态地调 整优先级,使得中断处理过程更加的灵活。中断响应当外设
13、有中断请求,并且没有被屏蔽,CPU处于开中断状态,一条指令(非停机指 令)结束;没有比该中断请求优先级更高的请求时,CPU即可响应该中断请求。在CPU 响应中断请求后,通过执行中断服务程序进行中断处理。服务程序实现存放在主存中, 为了转向中断服务程序,关键要获得该服务程序的入口地址。获得中断服务程序的入口 地址依照中断方式的不同主要有以下两种方法:非向量中断非向量中断是指:CPU响应中断时只产生一个固定的地址,由此读取中断查询程序 的入口地址,然后转向查询程序并执行;通过软件查询方式,确定被优先批准的中断源, 然后获取与之对应的中断服务程序的入口地址,分支进入相应的中断服务程序。向量中断向量中
14、断是指:将各个中断服务程序的入口地址(包括状态字)组织成中断向量表; 响应中断时,由硬件直接产生对应于中断源的向量地址;按该地址访问中断向量表,从 中读取服务程序的入口地址,并由此转向服务程序。这种方式可以根据中断请求信号快 速地直接转向对应的中断服务程序。在获取了中断服务程序的入口地址之后,CPU就可转向程序运行状态,以开始执行 中断服务程序。整体的响应过程如图所示。中断响应过程中断处理当进入中断服务服务程序之后,CPU通过执行程序,按照中断请求的需要进行相应 的处理。如保护现场、开/关中断、多重中断与单级中断、恢复现场与返回等。对于单级中断,CPU相应后只处理一个中断源的请求,处理完毕后才
15、能响应新的中 断请求。而对于多重中断,在某次中断服务过程中,允许CPU响应处理更高级别的中断 请求。它们的具体处理流程如图所示。倒户现场辰蔽字、开中断I酣贩 II逐服务处理II具体服醐理II 卑断 II II恢夏现Xuy同a &I开中断、矣回一|I 开中断、返回 I单级中断处理流程多重中断处理流程3.3本章小结本章介绍了中断控制器的总体设计和各个功能模块的设计。第四章中断控制器的实现4.1开发环境介绍PC机一台,装有VS2010O4.2主要功能模块的实现数据结构:中断开关bool IF中断请求信号class INTRpublic:string Source;中断源int Time;中断执行时间
16、int PRI;中断优先级中断请求:中断请求采用按键盘中断的方式。中断屏蔽判断IF的值,IF为0时关中断,IF为1时开中断。只有在运行系统时才允许 开关中断。比较当前运行程序与中断请求优先级,如中断请求优先级高于当前程序,则执 行中断程序,反之屏蔽中断。代码:主函数:int main()srand(time(0);string c_in;int n_in;cout* endl;coutendl 开中断在中断源处输入OPEN;coutendl关中断在中断源处输入CLOSE;coutendl(任意键继续)endlendl;cout* endl;getch();system(cls);while(1
17、)Display();if (kbhit()CleanKB();/用于清除键盘缓冲区cout* endl;coutendl输入中断源和运行时间endlendl;coutc_in;开关中断if(c_in = OPEN” | | c_in = CLOSE)if (c_in = OPEN)IF = 1;system(cls);cout*endl;coutendl开中断成功! endlendl;cout*endl;Sleep(1000);system(cls);elseIF = 0;system(cls);cout*endl;coutendl关中断成功! endlendl;cout*endl;Slee
18、p(1000);system(cls);continue;coutn_in;判断是否开中断if(IF = 0)system(cls);cout*endl;coutendl系统为关中断状态!;coutendl 不能响应中断! endlendl;cout*endl;Sleep(1000);system(cls); continue;建立中断请求信号INTR t(c_in, n_in, RandInt(1,10)/ 随机产生 110 的优先级coutendl;cout* endl;Sleep(500);system(cls);/中断Break(t);return 0;中断函数:void Break(
19、INTR &t)string c_in;int n_in;cout* endl;coutendl 开始执行中断程 序zendlendl;cout* 0; t.Time-) if (kbhit()CleanKB();/用于清除键盘缓冲区建立中断请求信号cout* endl;coutendl输入中断源和运行时间endlendl;coutc_in;coutn_in;coutendl;cout* endl;Sleep(500);system(cls);INTR t2(c_in, n_in, RandInt(1,10)/随机产生 110的优先级中断判优if (Higher(t2, t)执行中断Break
20、(t2);elsecout*endl;coutendl中断程序优先级低于当前程序!;coutendl 不能响应中断! endlendl;cout*endl;Sleep(1000);system(cls);cout*endl;cout中断程序正在执行.endl;cout (按任意键中断)endl;cout 中断源:t.Sourceendl 剩余时间:t.Timeendl;cout 优先级:t.PRIendl;cout*endl;Sleep(1000);system(cls);cout* endl;coutendl继续执行中断前程 序 endlendl;cout* b.PRI;工具函数:用于产生i-j的随机数。在随机生成中断优先级时用到。int RandInt(int i, int j)return rand()%(j+i-1)+i;由于使用kbhit()函数判断是否中断,此用于清除键盘缓冲区。void CleanKB()/用于清除键盘缓冲区while(kbhit()getch();4.3本章小结本章详细介绍了开发环境、中断控制器的各个功能和详细实现。第五章测试及成果展示5.1测试环境PC机一台,装有VS2010O5.2测试用例和结果此时系统允许中断。测试关中断功能:C:Windows输入中断源和运行时间中断源:CLOSE关中断成功,此时IF为0,不能响应中断
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年修订:机器设备抵押合同范本3篇
- 银行员工年度个人工作总结
- 2024年购置住宅合同:商品房买卖具体规定2篇
- 计算机软件项目开发与实施合同
- 设备回购协议格式
- 设计软件著作权测试版
- 语文味如何融入课堂
- 质保书品质住宅
- 购买回收服务合同
- 购物安全天猫商家保证
- 中国故事英文版哪吒英文二篇
- 细胞核的结构与功能说课课件 高一上学期生物人教版(2019)必修1
- MT 559-1996煤矿用带式输送机橡胶缓冲托辊安全性能检验规范
- GB/T 19589-2004纳米氧化锌
- 激发正能量共筑青春梦课件- 高中主题班会
- 幼儿规则意识培养《有趣的常规》课件
- 六朝志怪小说课件
- 2023江苏省高中学业水平合格性考试英语模拟试卷(含答案详解1)
- 部编版语文四年级上册书面分层作业设计案例25《王戎不取道旁李》(含答案)
- 2022年版义务教育劳动课程标准解读
- 设计任务通知单
评论
0/150
提交评论