《计算机系统的体系结构》课后答案_李学干_清华大学出版社 下载本文

内容发布更新时间 : 2024/5/7 7:37:33星期一 下面是文章的全部内容请认真阅读。

14.简要比较CISC机器和RISC机器各自的结构特点,它们分别存在哪些不足和问题?为什么说今后

的发展应是CISC和RISC的结合?

答:CISC结构特点:机器指令系统庞大复杂。

RISC结构特点:机器指令系统简单,规模小,复杂度低。

CISC的问题:

(1)指令系统庞大,一般200条以上; (2)指令操作繁杂,执行速度很低;

(3)难以优化生成高效机器语言程序,编译也太长,太复杂;

(4)由于指令系统庞大,指令的使用频度不高,降低系统性能价格比,增加设计人员负担。

RISC的问题;

(1)由于指令少,在原CISC上一条指令完成的功能现在需多条RISC指令才能完成,加重汇编语

言程序设计负担,增加了机器语言程序长度,加大指令信息流量。 (2)对浮点运算和虚拟存储支持不很强。 (3)RISC编译程序比CISC难写。

由于RISC和CISC各有优缺点,在设计时,应向着两者结合,取长补短方向发展。 Theskyline:

单地址指令格式: 指令 地址 9 3 位

所以前面9位由于三地址指令用了最前面3位,还有中间6位可作为编码(也就是总共可以有9位作为单地址指令的指令操作码的编码)。减去3地址指令的4条,有4*2^6=256条, 但由于韪目要求要有255条,所以剩下一个编码,已经用了9位的全部编码,最后零地址指令(全部12位都可作为操作码的编码)还有1*2^3=8

(这是12位编码中最后三位的)若只要求254种,则可以有(256-254)*2^3=16条

第3章 总线、中断与输入输出系统

3.1.简要举出集中式串行链接,定时查询和独立请求3种总线控制方式的优缺点。同时分析硬件产生故障时通讯的可靠性。

答:集中式串行链连接方式。其过程为:

①所有部件都经公共的“总线请求”线向总线控制器发使用总线申请。 ②当“总线忙”信号未建立时,“总线请求”才被总线控制器响应,送出“总线可用”信号,它串行地通过每个部件。

③如果某部件未发过“总线请求”,则它将“总线可用”信号往下一部件转,如果某部件发过“总线请求”,则停止“总线可用”信号的传送。

④该部件建立“总线忙”,并除去“总线请求”,此时该部件获得总线使用权,准备传送数据。

⑤数据传送期间,“总线忙”维持“总线可用”的建立。

⑥传送完成后,该部件去除“总线忙”信号和“总线可用”信号。 ⑦当“总线请求”再次建立时,就开始新的总线分配过程。

优点:①选择算法简单;②控制总线数少;③可扩充性好;④可靠性高。 缺点:①对“总线可用”线及其有关电路失效敏感,②不灵活;③总线中信号传送速度慢。

集中式定时查询方式,过程:

①总线上每个部件通过“总线请求”发请求。

②若“总线忙”信号未建立,则计数器开始计数,定时查询个部件,以确定是谁发的请求。

③当查询线上的计数值与发出请求的部件号一致时,该部件建立“总线忙”,计数停止,查询也停止。除去“总线请求”,该部件获得总线使用权。 ④“总线忙”维持到数据传送完毕。 ⑤数据传送完,去除“总线忙”。

⑥当“总线请求”线上有新的请求,就开始下一个总线分配过程。 优点:①优先次序灵活性强;②可靠性高。

缺点:①控制线数较多;②扩展性较差;③控制较为复杂;④总线分配受限于计数信号,不能很高。

集中式独立请求方式,过程:

①每个部件有一对“总线请求”和“总线准许”线。

②每个部件使用“总线请求”发中请,当“总线已分配”无信号时,总线控制器

根据某种算法对同时送来的多个请求进行仲裁,以确定哪个部件使用总线,信号从“总线准许”送回该部件,去除该部件的“总线请求”,建立总线已分配”。 ③获得总线使用权的部件传送数据,直至完毕。

④数据传送完毕后,除去总线已分配”和“总线准许”,开始新的总线分配。 优点:①总线分配速度快;②灵活;③能方便隔离失效部件的请求。 缺点:①控制线数多;②复杂。 硬件产生故障时,通信的可靠性分析:

串行链接对通信的可靠性,主要表现在“总线可用”线及其有关电路的失效会造成系统整体瘫痪的问题。一旦“总线可用”线出现断路或碰地,其高电平不能顺链往下传送,就会使后面的部件在要求使用总线时,其请求无法得到响应。为了提高可靠性,可对“总线可用”线及其相关电路,采取重复设置两套或多套来解决。 定时查询对通信的可靠性要求比串行链接的高。因为总线控制器通过计数,查询到某个出故障的部件时,故障部件不会给出“总线忙”信号,这样,不会影响控制器继续计数,去查询下一个部件,所以整个总线系统的工作不会瘫痪。 独立请求对通信的可靠性要求同样比串行链接的高。因为某个部件在发生故障时,不发总线请求,即使发出总线请求,总线控制器也可以通过软件或硬件的措施,将发生故障的部件送来的请求予以屏蔽掉,不让其参与总线的分配。所以,某个部件的故障不会导致整个系统的工作处于瘫痪状态。

3.2. 设中断级屏蔽位“1”对应于开放,“0”对应于屏蔽,各级中断处理程序的中断级屏蔽位设置如下: (见课本)

(1)当中断响应优先次序为1→2→3→4时,其中断处理次序是什么? 答:(1)1—3—4—2 中断处理程序

(2)如果所有的中断处理都各需3个单位时间,中断响应和中断返回时间相对中断处理时间少得多。当机器正在运行用户程序时,同时发生第2,3级中断请求,过两个单位时间,又同时发生第1,4级中断请求,试画出程序运行过程示意图。 答:

《南京大学出版社》李学干主编的辅导书 对本题的分析:

为了领会中断响应排队器对中断响应优先次序是用硬件固定的,以及通过由操作系统给各中断级服务程序现行程序状态字中的中断级屏蔽位设置不同的状态,可以改变中断处理(完)的次序这两个要点,下图给出了一个中断响应硬件部分的简单逻辑原理示意图。图中略去了某些实现上的具体细节,因为这些已不是本课程要讨论的内容。

中断级屏蔽位是程序状态字中的一个组成部分。程序状态字是将散布于系统各部分,反映程序工作时某些关键性硬件的状态,组合在一起所构成的字,有的计算机也称其为处理器状态字或程序换道区。每类程序均在主存中指定一个区域来放置其程序状态字。运行一个程序或进程时,就会将其程序状态字从主存指定单元或区域取出送到分散于系统各部分的寄存器或计数器中,建立起运行此程序或进程的环境。一个程序或进程在退出运行时,也会将反映该程序状态的这些寄存器或计数器内容组拼成程序状态字,存回该程序或进程在主存中的指定单元或区域里。因此,程序或进程的切换,只需要通过硬件启动的交换新旧程序状态字的内容即可快速完成。例如,在IBM370系列机上,程序状态字为64位,等于它的长字,交换程序状态字只需硬件启动写长字和读长字两次访存即可完成。 尽管中断请求是随机发出的,为了便于精确保存中断的断点以及在中断处理完后又能返回到原中断处,中断响应排队器总是在每条指令执行到最后一个机器周期

的最后一个时钟周期时,对目前到达中断响应排队器入口的所有中断请求排一次队,择优进行响应。在中断响应排队器相应的输出端产生出响应信号。此信号经中断级服务程序入口地址形成硬件,生成出该级中断服务程序的程序状态字在内存区中所存放的地址。同时,经中断响应控制信号启动,进行新旧程序状态字的交换,完成程序的切换。被中断的程序的断点地址(即程序计数器的内容),由硬件自动压入返回地址堆栈,予以保存。系统切换到新的程序或进程后,继续运行下去。如果新的程序或进程是一个中断服务程序,在运行结束,执行到中断返回指令时,就会从堆栈中弹出所保存的返回地址,再次交换程序状态字,系统又重新返回到原被中断的程序,恢复运行。

当然,低级的中断服务程序在处理过程中又遇到了比其更高级的中断请求时,应允许其被中断,以实现多级中断的嵌套。利用返回地址堆栈的后进先出工作方式,就可以完成中断嵌套时的正确返回。可以看出,只要某道程序运行时,由操作系统在现行程序的程序状态字中,根据对各中断级的中断请求是否屏蔽,设置好中断级屏蔽位的状态,就可以控制这些级别的中断请求是否进入中断响应排队器去参加排队。只有能进入中断响应排队器的中断级请求,才有机会得到响应,从而就可改变中断实际处理完的次序。

应当注意的是,用户程序是不能屏蔽任何中断的。因此,用户程序的现行程序状态字中,对各中断级的屏蔽位均应让其处于“开放”状态。

根据本题中所给出的各级中断处理程序对中断级屏蔽位设置的状况,很容易得出