(1) 第一问。每传送一个 ASC...
(1) 第一问。每传送一个 ASCII字符,需要传输的位数有1位起始位、7位数据位(ASCII 字符占7 位)、1位奇校验位和1位停止位,故总位数为1+7+1+1=10。
第二问。从D接收启动命令到字符送入I/O端口需要0.5ms,I/O端口每秒钟最多可接收1×1s/0.5ms=2000个字符。
(2) 第一问。一个字符传送时间包括:设备D将字符送I/O端口的时间、中断响应时间和中断服务程序前15条指令的执行时间。CPU主频为50MHz,CPU时钟周期为 1/(50MHz)=20ns,设备D将字符送I/O端口的时间为0.5ms/20ns=25000个时钟周期,中断响应需10个时钟周期,CPI为4,中断服务程序前15条指令的执行时间为15×4=60个时钟周期,综上,一个字符的传送时间大约为25000+10+60=25070个时钟周期。完成1000个字符传送所需时间大约为1000×25070=25070000个时钟周期。
第二问。CPU用于一次中断的时间包括:中断响应时间和中断服务程序的执行时间。中断响应需10个时钟周期,中断服务程序共有20条指令,CPI为4,中断服务程序的执行时间为20×4=80个时钟周期,I/O端口每收到一个字符申请一次中断,CPU用于从D读取1000个字符的时间大约为1000×(10+80)=90000= 9×10^4 个时钟周期。
第三问。
参考答案一:
在中断响应阶段中,CPU主要完成以下操作:
①确定中断源:向中断源查询电路发出中断响应信号INTA,去读取当前最高优先权的中断源编码。
②关中断:将中断允许触发器IE清0,暂时不再响应任何中断请求。
③保护程序断点:将中断执行的指令地址,即程序计数器PC的内容,推入堆栈保护起来,以便在中断服务完毕,返回到中断点,继续执行被中断的程序。
④转至相应的中断服务程序入口:根据从中断查询电路获取的中断源编码,转至相应的中断服务程序入口。
参考答案二:
在中断响应阶段中,CPU主要完成以下操作:
①关中断。CPU进入中断周期,意味着CPU响应了某个中断源的请求,为了确保CPU响应后所需做的一系列操作不至于又受到新的中断请求的干扰,在中断周期内必须自动关中断,以禁止CPU再次响应新的中断请求。
②保护程序断点:将当前程序计数器 (PC) 的内容(程序断点)保存到存储器中,以便在中断服务完毕,返回到中断点,继续执行被中断的程序。
③引出中断服务程序。取出中断服务程序的入口地址(中断向量)并传送给程序计数器 (PC)。
登录后提交答案
暂无评论,来抢沙发