




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机组成原理,PrinciplesofComputerOrganization,广义双语教学课程,09/skyclass25/,青岛理工大学校级精品课程,盛建伦jlsheng,2,异步清零并行置数三态输出的16位寄存器,16位寄存器应该有16位的数据输入端口D和数据输出端口Q,还有时钟脉冲CLK、置数控制load、清零clear和输出允许(输出三态门控制)OE等端口,16位寄存器的系统框图,VHDL程序,盛建伦jlsheng,3,异步清零并行置数三态输出的16位寄存器,libraryieee;-异步清零并行置数三态输出的16位寄存器useieee.std_logic_1164.all;entityreg16THRisport(clk,clear,load,oe_l:instd_logic;d:instd_logic_vector(15downto0);q:outstd_logic_vector(15downto0);endentityreg16THR;,architecturev1ofreg16THRissignalq1:std_logic_vector(15downto0);begin,盛建伦jlsheng,4,异步清零并行置数三态输出的16位寄存器,process(clock,clear)beginif(oe_l=0)thenq=q1;elseq=ZZZZZZZZZZZZZZZZ;-不允许输出时为高阻态endif;,ifclear=1thenq10);-异步清零elsifrising_edge(clock)thenif(load=1)thenq1=d;-并行置数endif;endif;endprocess;endarchitecturev1;,第10章输入输出系统,Chapter10Input/outputSystem,ComputerEngineering(alsocalledElectronicandComputerEngineering,orComputerSystemsEngineering)isadisciplinethatcombinesbothElectronicEngineeringandComputerScience.,Computerengineersusuallyhavetraininginelectronicengineering,softwaredesignandhardware-softwareintegrationinsteadofonlysoftwareengineeringorelectronicengineering.,Computerengineersareinvolvedinmanyaspectsofcomputing,fromthedesignofindividualmicroprocessors,personalcomputers,andsupercomputers,tocircuitdesign.,(2),6,10.2程序中断输入输出方式,中断(Interrupt)是由I/O设备或其它非预期的急需处理的事件引起的。,它使CPU暂时中断当前正在执行的程序,而转去执行另一个中断服务程序(Interrupt-serviceRoutine)去处理这些事件(为中断源服务)。,处理完后再返回原来的程序断点继续执行原来的程序。,A程序,中断请求,中断服务程序,断点,盛建伦jlsheng,7,引起中断的事件称为中断源(InterruptSource)。,外中断,内中断,软中断,由处理机外部的I/O设备、定时器、电源等引起的中断。,程序运行出错或处理器硬件故障引起的中断(异常)。,由自陷指令产生的中断。,外中断又可分为:可屏蔽中断(MaskableInterrupt),非屏蔽中断(NonMaskableInterrupt)。,盛建伦jlsheng,8,在计算机系统中,中断有以下作用:,CPU与I/O设备并行工作。,硬件故障处理。,实现人机联系。,实现多道程序和分时操作。,实现实时处理。,实现应用程序和操作系统的联系。,多处理机系统中各处理机之间的联系。,盛建伦jlsheng,9,中断系统需解决的问题,中断源如何向CPU发出中断请求?,有多个中断源同时申请中断时,如何确定应该先响应哪个中断请求?,CPU以什么方式响应中断,什么时候允许响应中断请求?,CPU响应中断后,如何保护现场?,CPU响应中断时,如何停止原程序的执行,如何转到中断服务程序的入口地址?,中断处理结束时,如何恢复现场,返回到原程序的间断点?,如果在中断处理过程中出现新的中断请求,应如何处理?,盛建伦jlsheng,10,CPU有若干条中断输入引脚:,中断源如何向CPU发出中断请求InterruptRequest?,中断应答Interruptacknowledge,可屏蔽中断MaskableInterrupt,非屏蔽中断NonMaskableInterrupt,CPU,INTR,NMI,INTA,中断输出引脚,盛建伦jlsheng,11,每个中断源有不同的中断优先级InterruptPriority。,有多个中断源同时申请中断时,如何确定应该先响应哪个中断请求?,首先响应优先级最高的中断请求。,盛建伦jlsheng,12,中断方式InterruptMode:向量中断,非向量中断,等。,向量中断(VectoredInterrupt)方式要求中断源向CPU提供一个唯一代表该中断源的特征代码。,CPU以什么方式响应中断,在什么时候允许响应中断请求?,CPU不是在任意时刻都可以响应中断。如果中断没有被屏蔽,至少要等到当前正在执行的这一条指令执行完,然后才能响应中断。,盛建伦jlsheng,13,保护现场就是保护程序被中断时的状态(程序的断点地址,寄存器的内容),以保证在处理完中断服务后还能够继续正确执行原来的程序。,CPU响应中断后,如何保护现场?,通常采用将现场信息压入堆栈的方法。,盛建伦jlsheng,14,CPU响应中断时,如何停止原程序的执行,如何转到中断服务程序的入口地址?,每个中断源都有自己的中断服务程序(在主存储器中)。,必须根据响应的是哪个中断源的中断请求,找到其中断服务程序的入口地址。,把中断服务程序的入口地址送入程序计数器PC,按新的地址取指令,就转而执行中断服务程序,原程序的执行自然就停止了。,盛建伦jlsheng,15,中断处理结束时,如何恢复现场,返回到原程序的间断点。,在中断处理完成后,中断返回之前,必须恢复现场,将堆栈中保存的各个寄存器的内容弹出到原来的寄存器中。,盛建伦jlsheng,16,一般的计算机都支持多重中断(中断嵌套)。,如果在中断处理过程中出现了新的中断请求,应如何处理?,允许响应新的中断,为优先级更高的中断请求服务。从而形成多重中断,或称为中断嵌套。,中断的全过程包括5个阶段:中断请求,中断判优,中断响应,中断处理,中断返回。,盛建伦jlsheng,17,1中断请求InterruptRequest,外部设备完成指定的工作,或者发生意外事件,向CPU申请中断。,一般的CPU有数条中断请求输入引脚。每条线可能要连接多个中断源。,每个中断源有一个中断触发器,组成一个中断寄存器。,申请中断的外部设备使中断控制器/接口的中断触发器置1。,中断控制器/接口使中断请求线为有效电平,向CPU发出中断请求。,盛建伦jlsheng,18,2中断判优,如果有多个中断源同时请求中断,CPU只能响应处理其中的一个。,将每个中断源按其紧急与重要的程度分高低优先级,CPU只接受优先级最高的一个中断请求。,中断判优的方法有:软件查询法,硬件排队法。,硬件排队是在CPU响应中断之前完成的,软件查询是在CPU响应中断之后进行的。,AninterruptcontrollercircuitsuchastheIBMPCsProgrammableInterruptController(PIC)maybeconnectedbetweentheinterruptingdeviceandtotheprocessorsinterruptpintomultiplexseveralsourcesofinterruptontotheoneortwoCPUlinestypicallyavailable.,盛建伦jlsheng,19,软件查询法SoftwarePolling,按中断源的优先级别高低,由程序按优先数的顺序,依次查询中断请求标志寄存器的各个中断源是否发出中断请求。,先发现的中断请求是优先权最高的,得到CPU的响应,用跳转指令直接转到该中断源的中断服务程序入口执行。,软件查询法的速度低。,盛建伦jlsheng,20,硬件排队法,通常有两类方法:菊花链,中断控制器。,中断控制器InterruptController,中断控制器是一个专门的逻辑电路。每个中断控制器可以连接多个(一般是8个)中断源的中断请求线。,在中断控制器内有中断寄存器和优先权排队逻辑。,如果有两个或多个中断源同时请求中断,只把优先权最高的一个中断源的中断请求传递给CPU,并封锁优先权低的中断源的中断请求。,盛建伦jlsheng,21,优先权最高的设备排在队列的最前面,距离CPU最近。只要有中断请求就可以向CPU发出,不会被封锁。,菊花链DaisyChain,用一个专门的电路,将各个中断源的中断请求逻辑按优先权由高到低的顺序连接起来。,CPU在响应中断时不需要再进行中断优先权判断,所响应的就是当时优先权最高的一个中断源的中断请求。,菊花链DaisyChain,只要一个设备被允许发出中断请求,则自动封锁优先权低于它的所有设备的中断申请,一直到该优先权高的设备的中断服务程序执行完。,保证了在排队链上,同一时间只有一个设备能够向CPU发出中断请求,而CPU也只会接到一个中断源的中断请求。,盛建伦jlsheng,23,3中断响应InterruptResponse,CPU响应中断的条件,CPU在每个机器周期都检测中断请求线是否为有效电平。但是,如果INTR为有效电平,CPU是否响应(可屏蔽)中断还取决于以下3个条件:,中断响应被允许,CPU收到中断请求,一条指令执行完毕(非流水线机器),盛建伦jlsheng,24,中断响应被允许,CPU内有一个“中断允许触发器”。,执行“开中断”指令,使中断允许触发器置1。,执行“关中断”指令,使中断允许触发器置0。,中断允许触发器只屏蔽可屏蔽中断请求,不能屏蔽非屏蔽中断请求。,若该触发器为0状态,就不允许CPU响应中断(中断被屏蔽)。,若该触发器为1状态,就允许CPU响应(可屏蔽)中断。,盛建伦jlsheng,25,CPU收到中断请求,当CPU检测中断请求线状态的时刻,中断请求线上必须是有效电平,CPU才能收到中断请求。,如果中断源的中断请求没有维持足够长的时间,就会丢失申请。,所以,中断控制逻辑要在接收到CPU发出的中断应答信号INTA后才撤消中断请求信号。,Typically,theprocessorsamplestheinterruptinputatpredefinedtimesduringeachbuscyclesuchasstateT2fortheZ80microprocessor.Iftheinterruptisntactivewhentheprocessorsamplesit,theCPUdoesntseeit.,盛建伦jlsheng,26,如果中断没有被屏蔽,CPU响应中断,停止现行程序的运行,执行一条中断隐指令将断点地址(PC内容)压入堆栈并关中断,然后要找到该中断源的中断服务程序入口地址,把该地址送入程序计数器PC,就可以转去执行中断服务程序了。,寻找中断服务程序入口地址的方法,寻找中断服务程序入口地址有3种方法:中断向量法,软件查询法,非屏蔽中断有固定的入口。,一条指令执行完毕(非流水线机器),即被中断的是程序,当前正在执行的指令还得执行完。,对于非屏蔽中断请求,CPU必须在当前正在执行的指令执行完后无条件响应。,盛建伦jlsheng,27,软件查询法SoftwarePolling,软件查询法是和中断判优一起完成的。找到中断源后,用一条转移指令直接转到中断服务程序入口地址执行。,中断向量法VectoredInterrupt,中断向量(InterruptVector)是中断服务程序的入口地址。每个中断源都有自己的中断向量。,CPU在响应中断时,发出中断应答信号INTA。,中断控制器或有中断功能的接口逻辑收到中断应答信号就将代表发出中断请求的中断源的一个特征代码送上数据总线。,该特征代码又称为“向量地址”(IntelX86称为“中断类型码”),一般是一个8位的字,唯一地对应一个中断源。,CPU接着从数据总线读入该向量地址。不同的CPU有不同的方法,根据该向量地址寻找或形成中断服务程序入口地址。,例如,Z80的中断方式0,中断源(或中断控制器)向CPU提供的特征代码是一条RST指令。它指向主存储器的0000H、0008H、0038H等8个地址。这些就是中断服务程序的入口地址,每个地址有8个单元。如果中断服务程序比较长,则在该入口地址放一条转移指令,转到中断服务程序入口。,盛建伦jlsheng,29,又如,Z80的中断方式2,向量地址是中断向量表(中断服务程序入口地址表)指针的低8位。高8位在中断向量寄存器I中。,Intel8086也采用这种方法。在中断向量表中,每个表项是2个字节的指令指针IP的值和2个字节的代码段寄存器CS的值。,控制器把中断向量寄存器的内容与从数据总线读入的向量地址合成一个完整的16位地址指针。用该地址指针去查表,在中断服务程序入口地址表中取出中断服务程序入口地址。,将中断服务程序入口地址置入程序计数器PC中,接着按该地址取指令就转到中断服务程序入口执行了。,盛建伦jlsheng,30,CPU响应中断时的现场保护,CPU响应中断时需要保护的现场有两类:一是程序的断点地址,二是CPU内一些寄存器的内容。,断点地址的保护由硬件完成:CPU响应中断时自动执行一条中断隐指令,将程序计数器PC的内容压栈。,为了保证保护断点地址的过程不被新的中断打乱(否则不能保证正确地返回到断点),所以CPU在响应中断时自动关中断(将中断允许触发器置0)。,盛建伦jlsheng,31,CPU响应中断时的现场保护,如果在中断服务程序中使用某个寄存器,或者有算术逻辑运算指令(影响程序状态字寄存器),则需要将受影响的寄存器内容压入堆栈。,由于在不同程序中需要保护的寄存器是不同的,所以,对于这些寄存器的保护,不宜由硬件完成。,通常在中断服务程序的开始部分安排几条压栈指令,将它们的内容压入堆栈。,盛建伦jlsheng,32,4中断处理InterruptProcessing,这一程序段是中断服务程序中完成对事件的处理,或输入/输出,或I/O设备的启动/停止,等操作的实质性工作的程序。,盛建伦jlsheng,33,5中断返回InterruptReturn,当CPU完成中断服务后,应该立即返回原程序的断点。,在中断服务程序的末尾安排一条中断返回指令。中断返回指令的功能是把堆栈栈顶的内容弹出到PC中。,如果在保护现场时曾经把一些寄存器内容压栈,则在中断返回前必须恢复现场。按与压栈时相反的次序弹出到相应的寄存器中。,注意:,在中断服务程序中压栈和出栈的次数必须相等。谨慎使用条件返回指令。由于CPU在响应中断时已经自动关中断,所以,如果在本次中断后还允许CPU响应中断,就应该在中断服务程序中安排一条开中断指令。,盛建伦jlsheng,34,多重中断MultipleInterrupt,当CPU正在为一个中断源A服务时,又响应另外一个优先级更高的中断源B的中断请求,在执行完后者的中断服务程序之后再返回继续执行前者的中断服务程序,这样就形成了中断嵌套Interruptnesting,或者叫多重中断。,多重中断的原则是:优先级高的中断源可以中断优先级低的中断服务程序。,程序,中断服务程序A,中断服务程序B,中断服务程序C,中断请求,由于CPU在响应中断时已经自动关中断,所以,要想实现中断嵌套就必须在进入中断服务程序后执行开中断指令,使得CPU能够再次响应新的中断请求。一般把开中断指令安排在保护现场之后。,如果一个中断服务程序不允许被中断,但是,在本次中断服务之后仍然允许CPU响应中断,则开中断指令必须安排在恢复现场之后,中断返回指令之前。,盛建伦jlsheng,36,Homework,10-1,3,5,6,7,Interruptscanbecategorizedinto:maskableinterrupt(IRQ),non-maskableinterrupt(NMI),interprocessorinterrupt(IPI),softwareinterrupt,andspuriousinterrupt.,Amaskableinterrupt(IRQ)isahardwareinterruptthatmaybeignoredbysettingabitinaninterruptmaskregisters(IMR)bit-mask.,Likewise,anon-maskableinterrupt(NMI)isahardwareinterruptthatdoesnothaveabit-maskassociatedwithit-meaningthatitcanneverbeignored.,盛建伦jlsheng,37,本节的重点内容:,中断(Interrupt)是由I/O设备或其它非预期的急需处理的事件引起的,它使CPU暂时中断当前正在执行的程序,而转去执行另一个中断服务程序(Interrupt-serviceRoutine)去处理这些事件(为中断源服务),处理完后再返回原来的程序断点继续执行原来的程序。,引起中断的事件称为中断源(InterruptSource)。,外中断,内中断,软中断,外中断又可分为:可屏蔽中断(MaskableInterrupt),非屏蔽中断(NonMa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国际法专业试题及答案
- 5月妇产科护理学题库(附参考答案)
- 2025至2030中国智能水监控设备行业项目调研及市场前景预测评估报告
- 2025至2030中国自动码垛机和卸垛机行业产业运行态势及投资规划深度研究报告
- 5年(2021-2025)高考1年模拟数学真题分类汇编专题01 集合与常用逻辑用语、不等式(天津专用)(原卷版)
- 合法房屋改造方案范本
- 河南环保钢板仓施工方案
- 女儿墙外墙抹灰施工方案
- 心肺衰竭出院护理查房
- 公民医学素养体系构建
- 山西省太原三十七中2023-2024学年九年级上学期月考物理试卷(10月份)
- 抖音洗浴按摩足浴商家本地团购短视频直播运营策划方案【抖音本地生活运营】
- 深水井施工方案
- (幻灯片)世界各国国旗大全中文
- 碳酸乙烯亚乙酯和甲烷二磺酸亚甲酯功能添加剂在锂离子电池中的性能研究的开题报告
- 《藻类植物》授课课件
- 《禁骑电动自行车》班会课件
- 秋收活动方案
- 物流地产发展前景分析
- 三年个人成长路线图:高中数学名师工作室
- 基于机器学习的异常检测与预警机制
评论
0/150
提交评论