- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
j计算机体系结构第三章习题
第 三 章 习 题
1.1 解释下列名词术语
顺序流动是指任务从流水线流出的次序同流入流水线的次序一样。
异步流动是指任务从流水线流出的次序同流入流水线的次序不一样,也称为乱序流动或错序流动。
1.2 什么是流水线?简述流水线的特点。
流水线是指把一个重复的过程分解为若干个子过程,一个过程的子过程可以与其它过程的不同的子过程并行进行,实现不同过程在时间上重叠进行的工作方式。实现流水线的技术方法称为流水线技术。它的特点主要有:
(1)流水线中各功能段的时间应尽量相等,否则将引起“堵塞”、“断流”等
(2)流水线需要有“装入时间”和“排空时间”。
(3)只有连续不断地提供同种任务才能充分发挥流水线的效率。
(4)在流水线的每一个功能部件的后面都要有一个缓冲寄存器,或称为锁存器、闸门寄存器等。
1.3 什么是先行控制?简述处理机采用先行控制的基本原理,描述实现先行控制的基本结构。
先行控制是指通过对任务的预处理和缓冲,以平滑功能部件工作速度上的差异,使功能部件能独立地工作,并始终处于忙碌状态,提高任务执行的速度。它实质是缓冲技术和预处理技术相结合的结果。
先行控制方式的基本原理是:当流水线中某功能段的延迟时间较长时,该功能段前面的功能段对后继任务进行预处理,预处理好的后继任务置于缓冲器中。而该功能段后面的功能段则对以前置于缓冲器的任务进行后行处理。这样,所有的功能段都处于忙碌状态。某任务的流程中,各功能段之间有等待的时间间隔,但各自的流程是连续的。当然,如果前面功能段的缓冲器已满,或者后面功能段没有后行处理任务,流水线仍是不流畅的。实现先行控制的基本结构如下图所示。
1.4 什么是数据相关?它有哪几种类型?
数据相关是指在流水线的机器中,程序中相近的两条指令要对同一存储单元进行操作时,应有一定的先后次序,否则会导致数据供求关系上的冲突,引发程序执行错误。这种相关主要有“先写后读”相关、“先读后写”相关和“写一写”相关三种。由于数据相关对程序执行过程影响较小,仅涉及到相应指令的前后一条或几条指令的执行,所以又称为局部相关。
1.5 什么是控制相关?它有哪几种类型?
控制相关是指在流水线的机器中,由于转移指令或中断引起程序执行方向的改变,使得转移指令或中断引起的断点指令与后续指令不能同时在流水线中执行。它包括转移相关和中断相关两种。由于控制相关对程序执行过程影响较大,可能改变程序的执行方向,所以又称为全局相关。
3.8 在一台单流水线多操作部件的处理机上执行下面的程序,每条指令的取指令、指令译码需要一个时钟周期,MOVE、ADD和MUL操作分别需要2个、3个和4个时钟周期,每个操作都在第一个时钟周期从通用寄存器中读操作数,在最后一个时钟周期把运算结果写到通用寄存器中。
k: MOVE R1,R0 ;R1← (R0)
k+1: MUL R0,R2,R1 ;R0← (R2)×(R1)
k+2: ADD R0,R2,R3 ;R0← (R2)+(R3)
(1)就程序本身而言,可能有哪几种数据相关?
(2)在程序实际执行过程中,哪几种数据相关会引起流水线停顿?
(3)画出指令执行过程的流水线时空图,并计算完成这3条指令共需要多少个时钟周期?
解:(1)就程序本身而言,可能有三种数据相关。若3条指令顺序流动,则k指令对R1寄存器的写与k+1指令对R1寄存器的读形成的“先写后读”相关。若3条指令异步流动,则k指令对R0寄存器的读与k+1指令对R0寄存器的写形成的“先读后写”相关,k+2指令对R0寄存器的写与k+1指令对R0寄存器的写形成的“写—写”相关。
(2)在程序实际执行过程中,二种数据相关会引起流水线停顿。一是“先写后读”相关,k指令对R1的写在程序执行开始后的第四个时钟;k+1指令对R1的读对指令本身是第三个时钟,但k+1指令比k指令晚一个时钟进入流水线,则在程序执行开始后的第四个时钟要读R1。不能在同一时钟周期内读写同一寄存器,因此k+1指令应推迟一个时钟进入流水线,产生了流水线停顿。二是“写—写”相关,k+1指令对R0的写对指令本身是第六个时钟,而要求该指令进入流水线应在程序执行开始后的第三个时钟,所以对R0的写是在程序执行开始后的第八个时钟。k+2指令对R0的写对指令本身是第五个时钟,而k+2指令比k+1指令晚一个时钟进入流水线,则在程序执行开始后的第四个时钟,所以对R0的写是在程序执行开始后的第八个时钟。不能在同一时钟周期内写写同一寄存器,因此k+2指令应推迟一个时钟进入流水线,产生了流水线停顿。另外,可分析“先读后写”相关不会产生流水线的停顿。
(3)由题意可认位该指令流水线由六个功能段取指、译码、取数、运一、运二和存数等组成,则程序指令执行
文档评论(0)