CPU的结构和功能第八章作业题:2,7,8,11,12,17,18,23,24,25,26,272.什么是指令周期?指令周期是否有一个固定值?为什么?解:指令周期是指一条指令从开始取指令直到指令执行完这段时间。由于计算机中各种指令执行所需的时间差异很大,因此为了提高CPU运行效率,即使在同步控制的机器中,不同指令的指令周期长度都是不一致的,也就是说指令周期对于不同的指令来说不是一个固定值。讨论:指令周期长度不一致的根本原因在于设计者,为了提高CPU运行效率而这样安排的,与指令功能不同及指令实际执行时间不同没有什么必然关系。7.答案见课本第346页系统的并行性。粗粒度并行和细粒度并行的区别。8.答案见课本第346-347页指令流水,二级流水示意图见课本图8.14。11.解:(1)流水线的时钟周期应取完成各步操作的时间中最大的即90ns(2)若相邻的指令发生数据相关,则第2条指令的ID应在第1条指令的WR之后,即应该推迟两个时钟周期:90ns*2=180ns(3)可采取定向技术,又称为旁路技术。(P351)12.解:由题意可知,时钟周期应取10ns,即∆t=10ns,指令条数n=12,指令流水段数m=5,于是得,采用流水线需时间T=m*∆t+(n-1)∆t=(m+n-1)∆t=(5+12-1)*10ns=160ns等效的非流水线需时间T'=12*(10+8+10+10+7)ns=540ns故加速比为SP=T'/T=540ns/160ns=3.375实际吞吐率为TP=n/T=12/160ns=7.5*107条指令/秒17.在中断系统中,INTR、INT、EINT这三个触发器各有何作用?解:INTR——中断请求触发器,用来登记中断源发出的随机性中断请求信号,以便为CPU查询中断及中断排队判优线路提供稳定的中断请求信号;EINT——中断允许触发器,CPU中的中断总开关。当EINT=1时,表示允许中断(开中断),当EINT=0时,表示禁止中断(关中断)。其状态可由开、关中断等指令设置;INT——中断标记触发器,控制器时序系统中周期状态分配电路的一部分,表示中断周期标记。当INT=1时,进入中断周期,执行中断隐指令的操作。讨论:回答时首先应给出该触发器的中文名称,然后说明其主要作用。当进入中断周期时,INT=1;(INT=1时,进入中断周期)INT与EINT配合使用以实现关中断功能,即INT=1,反相后使EINT=0;(关中断并不是INT的主要功能,进入中断周期后要执行中断隐指令的全部三个功能)INT表示自愿中断,完成系统调用;(尽管INT触发器的英文缩写与INT指令助记符完全相同,但它们一个是硬件设置,一个是软中断指令,其作用完全不同)INT标记目前是否正在运行中断程序;(INT标记在运行中断程序时已不存在)INT表示处于中断状态中;(INT并不是在整个中断过程中都存在)INT判断中断过程中是否接受其它中断请求,INT=0时,开中断,允许中断嵌套;(INT标记与中断嵌套技术没有任何关系。它不能表示出中断过程中是否接受其它中断请求,INT=0也不表示开中断)EINT判断CPU是否响应中断请求;(CPU根据EINT状态决定是否响应中断请求)当CPU响应中断时,EINT置1;(当EINT=1时,允许CPU响应中断)EINT确保CPU响应中断后,不受新的中断干扰;(CPU响应中断在先,进入中断周期后才使EINT=0,仅在单重中断时,整个中断过程保持EINT=0,不接受新的中断请求)EINT表示中断隐指令,INT起关中断作用;(把EINT和INT的作用搞反了)INTR=1,判断哪个中断源有请求;(INTR对中断源的请求进行登记,当INTR=1时,表示有请求)18.答案见于课本第363页中断隐指令及其功能23.答案见于课本第364页保护现场的任务及其实现24.现有A、B、C、D四个中断源,其优先级由高向低按A→B→C→D顺序排列。若中断服务程序的执行时间为20µs,请根据下图所示时间轴给出的中断源请求中断的时刻,画出CPU执行程序的轨迹。解:CPU执行程序的轨迹图如下:A服务B服务C服务D服务现行程序0102030405060708090100110120130140150t(µs)B与C请求D请求B请求A请求这是一个多重中断的程序运行轨迹,图中忽略了中断响应时间。25.设某机有五个中断源L0、L1、L2、L3、L4,按中断响应的优先次序由高向低排序为L0L1L2L3L4,现要求中断处理次序改为L1L4L2L0L3,根据下面的格式,写出各中断源的屏蔽字。解:各中断源屏蔽状态见下表:中断源屏蔽字01234L0L1L2L3L41001011111101100001010111表中:设屏蔽位=1表示屏蔽,屏蔽位=0表示中断开放。为了使所有中断都能得到及时响应,现行程序的中断屏蔽字一般设为全开放(全0)状态。讨论:按照修改过的优先次序,当五个中断请求信号同时到来时,CPU中断处理过程如下图:图中括号内为各程序的屏蔽码。注意:中断屏蔽码的判优作用体现在对低级中断请求的屏蔽上,对于多个同时到来的高级中断请求信号之间则只有开放作用,没有判优作用。此时还需依赖硬件排队线路完成进一步的判优。现行程序(00000)五级中断请求同时到来。L0中断服务(10010)保存现场开中断L1中断服务(11111)执行一条指令中断返回L2中断服务(10110)中断返回L4中断服务(10111)中断返回关中断恢复现场执行一条指令L3中断服务(00010)中断返回中断返回中断处理过程示意图(画法二:时空图表示)L4服务L3服务L2服务L1服务L0服务现行程序L0、L1、L2、L3、L4同时请求t程序26.设某机配有A、B、C三台设备,其优先级按A→B→C降序排列,为改变中断处理次序,它们的中断屏蔽字设置如下:设备屏蔽字A111B010C011请按下图所示时间轴给出的设备请求中断的时刻,画出CPU执行程序的轨迹。设A、B、C中断服务程序的执行时间均为20s。解:CPU执行程序的轨迹图如下:主要注意问题:1)轨迹的连续性;2)程序的转出、返回轨迹及时刻;3)现行程序在坐标系中的位置。0102030405060708090t(µs)A请求B请求C请求这是一个多重中断的程序运行轨迹,图中忽略了中断响应时间。A服务B服务C服务现行程序讨论:当从B中断转到C中断时,不返回现行程序,下述程序运行轨迹是错误的:A服务B服务C服务现行程序0102030405060708090t(µs)A请求B请求C请求注意现行程序的运行轨迹在横坐标上,即此程序运行轨迹是相对于现行程序而言的。27.设某机有3个中断源,其优先级按1→2→3降序排列。假设中断处理时间均为τ,在下图所示的时间内共发生5次中断请求,图中①表示1级中断源发出中断请求信号,其余类推,画出CPU执行程序的轨迹。解:CPU执行程序的轨迹图见下页:CPU执行程序的轨迹图1服务2服务3服务现行程序0τ2τ3τ4τ5τ6τt①②③②①程序