当前位置:文档之家› 计算机系统结构第五章

计算机系统结构第五章

计算机系统结构第五章
计算机系统结构第五章

第五章

标量流水技术

计算机处理器的主要功能是控制指令的解释执行,为了能引入并行处理,目前普遍使用一种经济有效的方法,即流水控制方式。

本章讨论的是有关流水控制的概念、原理、涉及的问题与解决的办法,以及流水控制技术的应用和进一步的发展。

5.1控制流及其改变

按算法要求控制指令序列的先后顺序执行称控制流,通常指令的执行顺序是相继的,但控制流经常会发生间断,破坏顺序性,主要有以下几种情况:

1.转移指令

不转移:PC = K0 + K1T

转移:控制流发生间断,以目标地址为起始点,

再顺序流动。

K

(a)(b)

2.过程调用和返回

可嵌套和递归,返回时从原来断点继续执行。

3.协同程序

与调用不同,被调用过程不总是从头开始,如下

图。

协同程序A协同程序B

4.中断和自陷

为使流水控制方式能高效地解释指令,程序执行的控

制流必须是连续的,因此对控制流的改变要采取有效的措施,以保证流水控制的实现。

5.2标量流水工作原理

5.2.1重叠操作方式和先行控制

指令的解释执行有以下几种工作方式:

1. 顺序方式

这种方式指令串行执行,设一条指令的解释分为:取

指、分析、执行三个阶段,指令解释执行如下图所示:

设各阶段执行时间为t ,解释n 条指令的时间是: t n T ??=3 若各阶段执行时间不同,分别为t 取、t 分、t 执,则解释 n 条指令时间为:

∑==n

i T 1(t 取i +t 分i +t 执i )

顺序方式控制简单,但指令串行解释速度慢,设备利用率 低。

2. 重叠方式

这是使相邻指令的解释在一些阶段上的操作在时间上

重叠执行,如:

T = ( 2n + 1) t

重叠方式需增设指令缓冲寄存器,在执行k 条指令时存放 k+1条指令。同时还要解决取操作数与取指令都要访问存 储器的冲突。

解决冲突的方法:

? 使用分开的指令存储器和数据存储器,称为哈佛结构,

如Pentium 处理器设置有指令Cache 和数据Cache 。

? 采用多体交叉存储器

? 设置指令缓冲寄存器组

这可预取指令,取指阶段时间短,可以合并到分析阶

段,一条指令解释是分析和执行两个阶段。重叠方式如下: 这称为一次重叠。

3. 先行控制

一次重叠方式中,若分析和执行两个阶段操作时间不

一样,有可能使分析与执行操作有时处于空闲,如下图:

解释n 条指令的时间为:

T = t 分1 +

∑=n i 2(max(t 分i ,t 执i –1)) + t 执n 要消除空闲等待的时间,可进行如下操作:

分析k 执行k 分析k+1 执行k+1 分析k+2 执行k+2

T = t 分1 + ∑=n i 1t 执I

为此,必须采用先行控制技术,即指令预取、指令先行分

析、预取数据等。并增设有关部件,如:指令缓冲站、先 行操作栈、数据缓冲站等。先行控制结构图如下:

5.2.2 标量流水工作原理

流水是重叠方式的进步发展,如把一条指令的解释细

分为:取指、译码、执行、访存、写回寄存器五个子过程, 相邻指令之间多个子过程时间上重叠操作,如下图所示。

S 空间

( S5

S4

S3

S2

S1

m?t (n -1)?t

这种工作方式与工厂中的装配流水线相类似,所以称其为

流水方式。上图给出了指令各功能段重叠操作的时间关系,

称此为流水方式的时空图。

流水的物理实现称流水线,其一般结构如下:

L L L L L 输出

L :锁存器,锁定时间为?tl ,

Si :功能段,延迟时间为?ts 。 1

流水线最高最高工作频率为 :

?ts + ?tl

流水线有以下特点:

(1)一条流水线通常由多个流水段组成,

(2) 每个流水段有专门的功能部件,相邻两个功能部

件由锁存器隔开,

(3) 各流水段所需时间是一样的,

(4) 流水线工作分建立、满载和排空三个阶段,

(5) 流水线满载工作时,每隔?t 时间有一个结果流出

流水线。

上面流水线用于指令的解释,其实也可以用于运算操

作,例如浮点运算。下面是浮点加法运算的流水操作。

p a A 2?= q b B 2?=

两个浮点数相加分四个阶段:

S1:对阶 r = max(p ,q) , t = | p-q | ,小阶尾数右

移t 位。

S2:两个尾数相加求和。

S3:规格化尾数,数前导0,左移尾数

S4:修改阶码

设4个段的延时为

S1=60ns S2=50ns S3=90ns S4=80ns

L=10ns

四个阶段最大延迟时间为90+10=100ns,流水线满载运行时,每100ns可完成一次浮点加法操作。

顺序执行时,完成一次浮点加法操作需要的时间为:2l + S1 + S2 + S3 + S4 = 20 + 60 + 50 + 90 + 80 = 300ns 采用流水线运算速度提高三倍。下图为浮点加法流水线。

5.2.3 流水线分类

流水线按不同的应用,有不同的结构、形式和功能:1. 按处理级别分

操作部件级:如浮点加减运算,

指令级:如指令的解释执行,

处理机级:多处理机的流水操作。

2. 按功能分

单功能:只是一种连接,完成一种功能。

多功能:有多种连接组成流水控制,完成多种功能。

如不同连接实现:定点加、浮点加、定点乘

浮点向量点积等。

3. 按工作方式分

静态:同一时间内只能以一种方式工作,可以是单功

能和多功能,多功能时从一种功能切换到另一

种功能,流水线必须排空,然后重新建立。

动态:同一时间内将不同的功能段连接成不同的功能

子集,完成不同的运算功能。

单功能是静态的,动态是多功能的。

4. 按连接方式分

线性:每个功能段从输入到输出只通过一次,无反遗

非线性:有反遗回路,如下图:

输出

5. 按维数分

有一维和多维之分,如脉动流水控制是平面型的。

5.2.4流水线的主要性能及其分析

衡量流水线性能主要有三个指标:

1. 吞吐率(Tp)

吞吐率是指单位时间内能处理的任务数或输出的结果

数。

(1) 最大吞吐率

流水线达到稳定状态后可获得的吞吐率。表示为:

)

,2,1max (1max tn t t T p ???=Λ 如下面流水线,

?t ?t 3?t ?t

t

T p ?=31max 流水线工作时钟周期按max{?t i , i=1,2…n}确定,这是直接 影响吞吐率的,所以称其为瓶颈。

提高流水线吞吐率需寻找并消除瓶颈。一般有两种方 法。

? 瓶颈段细分

?t ?t ?t ?t ?t ?t

? 重复设置瓶颈段

时空图如下:

(2) 实际吞吐率

设流水线由m 段组成,时钟周期为?t ,连续处理的任 务数为n ,通过各段的时间都是?t ,则:

完成n 个任务的时间 T = M?t + (n -1) ?t

实际吞吐率 )

/)1(1(1)1(n m t t n t m n T p -+?=?-+?= n m T /)1(1max -+=

流水线在开始时有一段建立时间,结束时有一段排空时间,

还有各种相关因素使流水线无法继续流动,所以实际吞吐

率总是小于最大吞吐率。当n ?? m 时,Tp ≈ Tpmax 。

2. 加速比(Sp)

这是流水方式的工作速度与等效的顺序串行方式的工

作速度之比,具体计算如下:

n

m m n m nm t n t m t nm S P /)1(11)1(-+=-+=?-+??= 当n ?? m 时,Sp ≈ m 。这说明要获得高的加速比,流水线 的段数m 应尽可能大,即加大流水线深度。

3. 效率(E)

效率是指流水线中的各功能段的利用率。具体可用流

水线各段处于工作时间的时空区与流水各段总的时空区的 比来衡量流水线的效率。

n 个任务占用的时空区

m 段总的时空区

t T m

S n m n t n m m t nm E P P ?==-+=?-+?=1)1

( 这说明效率与实际吞吐率Tp 成正比。

5.2.5流水线性能分析举例

设有A ,B 两个向量:

A = (a1,a2,a3,a4)

B = (b1,b2,b3,b4)

要求在静态加、乘双功能流水线上计算)(4

1i i i b a +∏=。

流水线如下图所示:

加法:1 5 6 , 乘法:1 2 3 4 6

1. 流水线先设置加法功能,连续计算ai+bi ,(i=1…4)其中

a1+b1,a3+b3 返回x 输入端,

a2+b2,a4+b4 返回y 输入端。

2. 流水线切换为乘法功能,计算:

(a1+b1)(a2+b2) 返回x 输入端,

(a3+b3)(a4+b4) 返回y 输入端。

3. 继续乘法功能计算:

(a1+b1)(a2+b2)(a3+b3)(a4+b4) = ∏(ai+bi) i=1…4。

时空图如下:

总计算时间 T = 17?t , 流出结果7个。

t

T P ?=177 4.2634

9102271763543==??=????+??=t t t t t E % 顺序串行执行,即非流水操作,所需时间为:

T1 = 4×3?t + 3×5?t = 27?t ,所以

88.11727=??=

t

t S P 这个例子表明流水线的吞吐率、效率及加速比均不是很理

想,这是由于功能切换时,要有额外的建立和排空的开销。

此外还有相关问题。流水线适合的操作是求解操作相同,

且输入、输出间相互独立的一大串运算,此时,流水线的

吞吐率可接近最大吞吐率,效率接近于1,而加速比也可

接近流水线的段数值。

5.3流水操作中的主要障碍

流水操作中可能出现的相关会造成流水线断流,下面

以一RISC 机的一个五段流水线为例,分析流水线中可能

出现的相关和解决的办法。

5.3.1资源冲突(结构冲突)

这是多条指令进入流水线后,在同一机器周期内争用同一功能部件所发生的冲突。例如:

时钟 1 2 3 4 5 6 7 8 指令LOAD IF ID EX MEM WB

指令I+1 IF ID EX MEM WB

指令I+2 IF ID EX MEM WB

指令I+3 IF ID EX MEM WB

访存冲突

解决冲突的办法:停顿一拍流水线。

指令LOAD IF ID EX MEM WB

指令I+1 IF ID EX MEM WB

指令I+2 IF ID EX MEM WB

指令I+3 停顿IF ID EX MEM WB 5.3.2数据相关冲突

这是多条指令在流水线中重叠操作,使对操作数访问的顺序发生变化所产生的冲突。

常见的是后继指令所需的操作数是前一指令运算的结果,而此时结果却未产生。称此为先写后读相关,简称为RAW相关(Read after write) 。例如:

ADD R1,R2,R3 (R2) + (R3)→R1

SUB R4,R1,R5 (R1) –(R5) →R4

指令流水操作:

时钟 1 2 3 4 5 写R1

ADD IF ID EX MEM WB

SUB IF ID EX MEM WB

读R1

ADD指令在笫5时钟周期将运算结果写入R1,而SUB指令在第3时钟周期就要读R1,显然读出的是R1旧的内容。解决冲突的办法:

(1) 推后执行,即停顿后继指令的运行。

(2) 相关专用通路,上例中写入R1的ADD运算结果在EX功能段就已产生,所以可通过硬件设置专用通路将此时产生的结果直接送往SUB的EX段进行运算,代替读R1。

时钟 1 2 3 4 5 写R1

ADD IF ID EX MEM WB

SUB IF ID EX MEM WB

(3) 周期分割,即将写R寄存器堆放在时钟周期的前半周期,读R寄存器堆放在后半周期,这样在一个周期写读同一个寄存器时就没有相关问题。如下例:写R1 ADD R1,R2,R3 IF ID EX MEM WB

SUB

AND 读R1 OR R8,R1,R9 ID ID EX

类似于RAW相关,前面指令从存储器读取操作数以供

后继指令使用出现的相关称装载延迟。如下例:写R1

LOAD R1,A IF ID EX MEM WB

ADD R3,R1,R2 IF ID EX MEM WB

此时专用通路不起作用,因为从存储器读取数据是MEM

功能段,不可能提供ADD指令在EX功能段的运算用。解

决方法有两种:

(1) 停顿流水线直至数据竞争消失,停顿周期称空泡。

(2) 优化编译,重新排序和调度指令序列,以消除空泡。

指令流水线有按序流动和非按序流动之分,由此数据相

关除了RAW,还有WAR和WAW,共三种类形。例如,有i和

j两条指令,i在前,j在后,则三种类型数据相关的含义

为:

RAW—指令j试图在指令i写入寄存器之前就读出该寄

存器内容,。

WAR—指令j试图在指令i读出寄存器之前就写入该寄

存器,这样指令i就会错误地读出该寄存器新的内容。

WAW—指令j试图在指令i写入寄存器之前就写入该寄

存器,这样两次写的先后顺序被颠倒,错误地由指令i写

入的值成为该寄存器的内容。

上述三种数据相关,在按序流动的流水线中只可能出

现RAW相关,而在非按序流动的流水线中,由于允许后进

入流水线的指令超过先进入流水线的指令先流出流水线,

三种数据相关都可能发生。

5.3.3控制转移冲突

这由转移指令引起,简称控制相关。转移指令转移成

功时,在MEM段的未尾将目标地址送PC,这样流水线要停

3拍,例如:

BRANCH IF ID EX MEM WB

指令i+1 停顿停顿停顿IF ID EX MEM WB

指令i+2 停顿停顿停顿IF ID EX MEM…

指令i+3 停顿停顿停顿IF ID EX …

这就是说执行一条成功转移指令要4拍,而转移指令据统

计要占总指令的1/4,所以它会使流水线的性能下降。如

假定程序中转移指令为25%,其中2/3会发生转移,由此完

成一条指令的平均周期为:

CPI = 0.75×1+0.25×(1/3×1+(2/3)×(3+1))=1.5 这将使流水线的性能降低33%。

减少因转移而引起流水线性能损失的主要方法有:

(1) 尽早判别转移是否发生,尽早生成转移目标地址。

如能在ID段生成转移目标地址,则只须停顿一拍,这

样就可减少性能的降低。

(2) 预取转移成功或不成功两个控制流方向上的目标指令

这种方法使流水线沿两个方向流动,并将一个方向猜

测为成功路径,通常是选取发生频率较高的路径,并在转

移条件码生成之前只对这个方向上的若干条指令进行译码

和取操作数,但不进行操作,或是进行操作但不送运算结

果。一旦条件码生成并表明猜测成功时,就立即进行操作

或送回运算结果,而当猜测错误时,上述操作使全部作废。

在猜测不会转移的另一个方向上,同样也预取若干条

指令,以备一旦猜错时,可加快在这一方向上指令的执行。

(3) 加快和提前形成条件码

如乘除操作结果的符号,只要根据两个操作数的符号

在运算前就可判别。

(4) 加快短循环程序的处理

这是指把短循环程序段全部放入指令缓冲器中,程序

段执行过程中不必再访问主存,可重复执行而加快执行的

速度。

(5) 提高转移方向的猜准率

这是动态预测转移使用的方法。通过考察以前两次转

移的历史预测转移发生或不发生。有四种状态,用2位=

进制位表示。

11和10表示转移发生,00和01表示转移不发生。

预测转移状态图如下:

从一个状态变到另一个状态,不转移用0表示,转移用1

表示。

水平方向发生状态变化,两个二进位的低位发生变化;

如:从11变为10或从10变为11。

垂直方向发生状态变化,两个二进位的高位发生变化;

如:从10变为00或从01变为11。

这种方法,仅当两次连续猜错时,预测状态才会发生改

变。如从11状态变为10,再变为00。这种方法猜准率在

RISC机上实测可达83%。

Pentium机上也采用基于转移历史分析的动态预测转移技

术。其预测转移状态图为:

(6) 采用延迟转移技术

这是一种软件手段,减少由于控制相关造成的流水线

性能下降。具有长度为n 的转移延迟执行周期为:

转移指令

转移目标指令(转移发生时) 通常n 为1,通过软件调度使后继指令变得有用。有

以下三种调度方法:

a. 将转移指令的前一条指令调度到延迟槽中, 但要

求转移指令必须与此指令不相关。 b. 将转移目标处的那条指令调度到延迟槽中, 但转

转移不发生时,此条指令的执行结果对其他指令没有影响。

c. 将转移不发生时该执行的那条指令调度到延迟槽

中。但当转移发生时,此条指令的执行结果对其他指令没

有影响。

if R2=0 then LOOP :SUB R4,R5,R6 ADD R1,R2,R3 if R1=0 then ADD R1,R2,R3

上述b 适用于转移发生概率高的场合,而c 则适用于转移

不发生概率高的场合。三种调度都不行时,只有加NOP 了。

5.4流水的实现和控制

这主要指流水方式下的中断处理和非线性流水的控制。

5.4.1流水的中断处理

处理流水中的中断比解决控制相关更复杂更困难,其

关键是:断点现场保护及中断后的恢复运行。

处理流水中断的两种方法:

1.不精确断点法

中断发生时不允许后继指令流入流水线,己流入的指

令继续流动直至执行完。然后再执行中断处理程序。

2.精确断点法

中断程序对现场的处理精确到第i 条指令,中断处理

完后能恢复i 条指令后己进入流水线的各指令的现场。

5.4.2流水调度

在非线性流水线中,功能段之间存在反馈回路,进入

流水线的任务会发生使用功能段的冲突,所以对进入流水

线的任务必须进行调度。

以下主要分析单功能非线性流水调度。

1.预约表

是一个二维表,记录各功能段操作的时间节拍,如下

面的例子。

2. 禁止表与冲突向量

禁止表:各功能段操作相间隔的节拍集合,如上例为:

F = (1,5,6,8)

各任务不能按此间隔拍数流入流水线,因为会发生使用功 能段的冲突。

冲突向量:n 个二进制位组成的向量

C = ,,(1-n n C C …),12C C

其中 =i C 0 相隔i 拍流入新任务不发生使用功能段冲 突。 i=1,2, …n-1,n =i C 1 相隔i 拍流入新任务发生使用功能段冲突。

如本例的冲突向量为:C = (10110001)

由冲突向量可知:间隔拍数为1、5、6、8会发生冲突,

而2、3、4、7则不会发生冲突。

3. 状态图

一个任务在流水线中每一节拍向前推进一段,冲突间

隔拍数随之减1,这相当于将冲实向量右移一位,左边移

空位填入0。如间隔2拍流入新任务,当前的冲突向量为:

(10110001) → (00101100)

右移2拍

但新任务流入后,其冲突向量是原始冲突向量,与右

移后的当前冲突向量,合起来形成新的冲突向量。由此给

出后面进入的任务应避开的间隔拍数,即

新冲突向量 = 原始冲突向量∨当前冲突向量

如隔2拍调入一个任务,新冲突向量为:

(10111101)=(10110001)∨(00101100)

以各种不产生冲突的拍数调入新任务,每次调度都产生

一个冲突向量,直至不产生新的冲突向量为止。这些冲突

向量全体表示为下图形式,称非线性流水线的状态转移图。

4. 调度方案

采用状态图中任何一个闭合回路进行调度,都不会发

生争用功能段冲突。列出状态图中所有的闭合回路,从中

选出平均拍数最少的调度即是最佳的调度方案。此外还可

以选择等间隔调度策略等。本例的各种调度方案如下表:

由表中可见,采用隔3拍,后再隔4拍轮流往流水线输入任务的调度方法为最佳,两次调度,平均每次3.5拍即

可流入一个任务,其吞吐率在各调度方案中是最高的。

对多功能的非线性流水线,可按类似思想,推导出相应的调度方案,但比较复杂,且实用阶值不大,这里就不讲。

5.5先进的流水技术

目前在改进计算机的性能设计中,应用流水控制技术有了进一步的发展,主要是动态调度和开发实现在指令一级

的并行性。

5.5.1先进的流水调度方法—动态调度

静态调度是通过软件对指令执行顺序进行调度,从而减少因各种相关造成的流水线停顿时间。

动态调度主要是通过硬件重新安排指令的执行顺序,以减少流水的停顿。比较前者,其优点是:

(1) 能处理某些在编译时无法知道的相关情况。

(2) 能简化编译程序设计。

(3) 使代码有可移植性。

其缺点是硬件较为复杂。

5.5.1.1流水的集中式动态调度

为改善顺序流水可能造成功能部件的闲置,应允许流水线中能按无序(Out-of-order) 方式工作。但由此会引起更

多的相关冲突。解决的办法是通过硬件,对可能的各种相

关进行检测,以保证各功能部件尽可能最大限度地重叠工

作。集中式动态调度方式如下图:

动态调度主要通过一个称为记录控制器的调度部件,对流水线中各功能部件的工作状态、进入流水线的各指令的

工作状态、它们所使用的源寄存器和目的寄存器等进行统

一的记录和调度。

集中式动态调度最初在60年代的CDC6600计算机中采用,目前在超标量机中也采用与此类似的方法。

5.5.1.2流水的分布式动态调度

在IBM 360/91流水计算机中,使用了另一种调度方法,称分布式动态调度。此方法由日本学者TOMASULO于

1967年提出。

IBM 360/91的浮点运算器部分,主要包括以下部件组成。

(1) 运算部分

一个加法部件和一个乘法部件,在两部件的流水操作允许是无序的,即异步流动。

(2) 保存站

用来保存当前参加运算的数据,加法部件有三个:A1、 A2、A3,编号为1010~1100。乘除部件有二个:M1、M2,编号1000~1001。

(3) 指令操作缓冲站

存放经分析后送来的指令,译码后,产生相应的控制信号送到各部件。

(4) 浮点操作数寄存器(FLB)

存放由主存预取来的操作数,作源操作数用。

(5) 浮点寄存器(FLR)

存放操作数的寄存器,作源操作数和目的地址寄存器用。FLR由F0 ~ F7组成,每个寄存器设“忙”位一位,

当它为1时,表明该数据己作源操作数用。另外还设有站

号标志,表示数据从何处来。

(6) 存储数据缓冲站(SDB)

存放将写入存储器的数据,也有站号,但单独编址。

(7) 公用数据总线(CDB)

以上各部件间的连接总线。

分布式动态调度是通过以下几分面实现的:

(1) 加法器和乘法器设保存站减少了资源使用冲突。

(2) 调度算法使用保存站,通过对寄存器重命名(改

写站号) 消除WAR和WAW相关。

(3) 通过对FLR寄存器忙位状态的判别,检测是否存

在RAW相关。

(4) CDB公共数据总线作为相关专用通路,将有关数

据直接送往所有需要的功能部件,而不必先写入寄存器再

读出。

运算器的基本结构如下图所示。

存储器总线指令处理部件

CDB公共数据总线

这种分布式动态调度使用了内部定向原理,其含义是:

B B B B A

C A C , A C C

以下是一个实例,通过调度解决数据相关问题。

S1:LD F0,FLB1;(FLB1)→F0

S2:MD F0,FLB2;(F0)×(FLB2)→F0

S3:STD F0,A; (F0)→F0

S4:LD F0,FLB3;(FLB3)→F0

S5:ADD F0,FLB4;(F0)×(FLB4)→F0 (0002)

FLB1(0001) FLB2(0002) FLB1(0001) FLB2

(0001) (0001) F0 ( )( )(1000) F0 ( )( )(1000)

FLB3(0011) FLB4(0100) FLB3(0011) FLB4(0100)

(0011) (0011) ×( )(1010) F0 ( )( )(1010)

5.5.1.3动态硬件预测转移方法

这是借助硬件动态地预测转移方向,是尽早生成目标

地址的方法。

硬件是一个类似Cache 、称 BTB( Branch target

buffer) 的转移目标缓冲器,其结构如下图所示。BTB 中

每行存放的内容为:

左边:记录过去发生过的转移指令地址,

中间:相应转移指令的转移目标地址,

右边:预测转移发生或不发生的2

位状态位。

左边的转移指令地址作为标志,供检测用。

工作原理:将欲取出指令的PC 值与BTB 中的所有标志

作相联比较,若有相符标志,则将该项中相应的预测转移 目标地址读出,送到PC 中。当转移条件成立时,确认其有 效,马上取出转移目标处的指令。否则取消送入PC 中的转 移目标地址,并对BTB 中内容作相应更改。

动态预测转移方法己在Pentium 处理器中得到应用。

5.5.2流水中指令级并行性的进一步开发

提高计算机性能,主要是开发存在于程序中的并行性,

并行性有两种:

粗粒度:处理单位为进程、任务或作立。

细粒度:处理单位为指令或指令中的操作。

计算机系统应开发两种粒度的并行性,这里目||一讨论的是在单 处理机上开发指令级的细粒度并行性。

细粒度并行性,最初一代设计目称CPI=1,新一代为

CPI<1,即在一个周期内完成多条指令。

指令级并行性由并行度衡量,这是指不存在相关、可

并行执行指令数,如以下两个例子:

LOAD R1←M〔R2〕 ADD R2←R1+1

ADD R3←R3+1 SUB R4←R3-R2

FPMUI F5←F3×F4 STOREM〔R4〕←R5 并行度=3 并行度=1 让多条指令并行执行的几种方法如下:

5.5.2.1超级标量方法

每个时钟周期能启动多条指令,在指令流水执行下每

个时钟周期获得多条指令结果。其特点是:

(1) 配置多个性能不同的处理部件,采用多条流水线

进行处理。

(2) 能同时对若干条指令进行译码,将可并行执行的

指令送往不同的执行部件,从而每周期可启动多条指令。

(3) 在程序运行期间由硬件完成指令调度。

所以超标量机是硬件资源重复实现行操作的。一般它对编

执行

执行

流水机超级标量机

每拍启动3条指令

要求并行度=3

译没有太受的要求,但控制复杂,是新一代微处理器采用

的主要结构形式。

5.5.2.2超长指令方法(VLIW)

这种方法是以一条长指令实现多个操作的并行执行,

指令长度达上百位,甚至上千位。同样基于流水方式,并

发操作主要在流水的执行阶段进行,如下图所示。

完整版计算机体系结构课后习题原版答案_张晨曦著

第1章计算机系统结构的基本概念 (1) 第2章指令集结构的分类 (10) 第3章流水线技术 (15) 第4章指令级并行 (37) 第5章存储层次 (55) 第6章输入输出系统 (70) 第7章互连网络 (41) 第8章多处理机 (45) 第9章机群 (45) 第1章计算机系统结构的基本概念 1.1 解释下列术语 层次机构:按照计算机语言从低级到高级的次序,把计算机系统按功能划分成多级层次结构,每一层以一种不同的语言为特征。这些层次依次为:微程序机器级,传统机器语言机器级,汇编语言机器级,高级语言机器级,应用语言机器级等。 虚拟机:用软件实现的机器。 翻译:先用转换程序把高一级机器上的程序转换为低一级机器上等效的程序,然后再在这低一级机器上运行,实现程序的功能。

解释:对于高一级机器上的程序中的每一条语句或指令,都是转去执行低一级机器上的一段等效程序。执行完后,再去高一级机器取下一条语句或指令,再进行解释执行,如此反复,直到解释执行完整个程序。 计算机系统结构:传统机器程序员所看到的计算机属性,即概念性结构与功能特性。 在计算机技术中,把这种本来存在的事物或属性,但从某种角度看又好像不存在的概念称为透明性。 计算机组成:计算机系统结构的逻辑实现,包含物理机器级中的数据流和控制流的组成以及逻辑设计等。 计算机实现:计算机组成的物理实现,包括处理机、主存等部件的物理结构,器件的集成度和速度,模块、插件、底板的划分与连接,信号传输,电源、冷却及整机装配技术等。 系统加速比:对系统中某部分进行改进时,改进后系统性能提高的倍数。 Amdahl定律:当对一个系统中的某个部件进行改进后,所能获得的整个系统性能的提高,受限于该部件的执行时间占总执行时间的百分比。 程序的局部性原理:程序执行时所访问的存储器地址不是随机分布的,而是相对地簇聚。包括时间局部性和空间局部性。

(完整版)计算机系统结构(张晨曦)简答题

第1章计算机系统结构的基本概念 1. 什么是计算机系统的多级层次结构? 第6级L6:应用语言虚拟机 第5级L5:高级语言虚拟机 第4级L4:汇编语言虚拟机 第3级L3:操作系统虚拟机 第2级L2:机器语言(传统机器级) 第1级L1:微程序机器级 从计算机语言的角度,把计算机系统按功能划分成以下多级层次结构: 2. 硬件和软件在什么意义上是等效的?在什么意义上是不等效的? 硬件和软件在功能实现上是等效的,即一种功能可以由软件实现,也可以由硬件实现。在实现性能上是不等效的。软件实现的优点是设计容易、改进简单;硬件实现的优点是速度快。 3. 经典计算机系统结构的实质是什么? 计算机系统中软、硬件界面的确定,其界面之上的是软件的功能,界面之下的是硬件和固件的功能。 4. 语言实现的两种基本技术是什么? 翻译和解释是语言实现的两种基本技术。它们都是以执行一串N级指令来实现N+1级指令,但二者存在着差别:翻译技术是先把N+1级程序全部变换成N级程序后,再去执行新产生的N级程序,在执行 过程中N+1级程序不再被访问。而解释技术是每当一条N+1级指令被译码后,就直接去执行一串等效的 N 级指令,然后再去取下一条 N+1级的指令,依此重复进行。在这个过程中不产生翻译出来的程序,因此解释过程是边变换边执行的过程。 5. 对于通用寄存器型机器来说,机器语言程序设计者所看到的计算机的属性主要有哪些? (1) 数据表示 (2) 寻址规则 (3) 寄存器定义 (4) 指令集 (5) 中断系统 (6) 机器工作状态的定义和切换 (7) 存储系统 (8) 信息保护 (9) I/O 结构 6. 什么是软件兼容?软件兼容有几种?其中哪一种是软件兼容的根本特征? 同一个软件可以不加修改地运行于系统结构相同的各档机器上,而且它们所获得的结果一样,差别只在于运行时间的不同。 软件兼容分为向上兼容、向下兼容、向前兼容和向后兼容。其中向后兼容是软件兼容的根本特征。

计算机组成与设计第五版答案

计算机组成与设计(2010年机械工业出版社出版的图书): 《计算机组成与设计》是2010年机械工业出版社出版的图书,作者是帕特森(DavidA.Patterson)。该书讲述的是采用了一个MIPS 处理器来展示计算机硬件技术、流水线、存储器的层次结构以及I/O 等基本功能。此外,该书还包括一些关于x86架构的介绍。 内容简介: 这本最畅销的计算机组成书籍经过全面更新,关注现今发生在计算机体系结构领域的革命性变革:从单处理器发展到多核微处理器。此外,出版这本书的ARM版是为了强调嵌入式系统对于全亚洲计算行业的重要性,并采用ARM处理器来讨论实际计算机的指令集和算术运算。因为ARM是用于嵌入式设备的最流行的指令集架构,而全世界每年约销售40亿个嵌入式设备。 采用ARMv6(ARM 11系列)为主要架构来展示指令系统和计算机算术运算的基本功能。 覆盖从串行计算到并行计算的革命性变革,新增了关于并行化的一章,并且每章中还有一些强调并行硬件和软件主题的小节。 新增一个由NVIDIA的首席科学家和架构主管撰写的附录,介绍了现代GPU的出现和重要性,首次详细描述了这个针对可视计算进行了优化的高度并行化、多线程、多核的处理器。 描述一种度量多核性能的独特方法——“Roofline model”,自带benchmark测试和分析AMD Opteron X4、Intel Xeo 5000、Sun Ultra SPARC T2和IBM Cell的性能。

涵盖了一些关于闪存和虚拟机的新内容。提供了大量富有启发性的练习题,内容达200多页。 将AMD Opteron X4和Intel Nehalem作为贯穿《计算机组成与设计:硬件/软件接口(英文版·第4版·ARM版)》的实例。 用SPEC CPU2006组件更新了所有处理器性能实例。 作者简介: David A.Patterson,加州大学伯克利分校计算机科学系教授。美国国家工程研究院院士。IEEE和ACM会士。曾因成功的启发式教育方法被IEEE授予James H.Mulligan,Jr教育奖章。他因为对RISC 技术的贡献而荣获1 995年IEEE技术成就奖,而在RAID技术方面的成就为他赢得了1999年IEEE Reynold Johnson信息存储奖。2000年他~13John L.Hennessy分享了John von Neumann奖。 John L.Hennessy,斯坦福大学校长,IEEE和ACM会士。美国国家工程研究院院士及美国科学艺术研究院院士。Hennessy教授因为在RISC技术方面做出了突出贡献而荣获2001年的Eckert-Mauchly奖章.他也是2001年Seymour Cray计算机工程奖得主。并且和David A.Patterson分享了2000年John von Neumann奖。

计算机系统结构

第一章计算机系统结构概论 一、填空题 1 、实现程序移植的主要途径有统一高级语言、系列机、(模拟)和(仿真)。 2、系统软件兼容必须做到向(后)兼容,尽可能争取向(上)兼容。 3、开发并行性是为了并行处理,并行性又包括有(同时性)和(并发性)二重含义。 4、提高计算机系统并行性的主要技术途径有(时间重叠)、资源重复和(资源共享)。 5、数组多路通道宜于连接多台(高)速设备,通道“数据宽度”为(定长块)。 6 、Cache存储器采用组相联的映象规则是组间(直接)映象,组内各块间(全相联)映象。 7、自定义数据表示又分(带数据标志符)数据表示和(数据描述符)数据表示。 二、选择题 1、汇编语言源程序变换成机器语言目标程序是经过(D)来实现的。 A编译程序解释 B 汇编程序解释 C编译程序翻译 D汇编程序翻译 2、直接执行微指令的是( D ) A汇编程序 B 编译程序 C微指令程序 D 硬件 3、对机器语言程序员透明的是(B) A 中断字 B 主存地址寄存器 C通用寄存器 D条件码 4 、在系统结构设计中,提高软件功能实现的比例会( C ) A 提高解题速度 B 减少需要的存储容量 C 提高系统的灵活性 D 提高系统的性价比 5 、磁盘外部设备适合于连接:( B ) A字节多路通道或选择通道 B 数组多路通道或选择通道 C数组多路通道或字节多路通道 D 任意一种通道 6 、系列机软件应做到( A ) A 向后兼容,力争向上兼容 B向前兼容,并向上兼容 C向前兼容,并向下兼容 D向后兼容,力争向下兼容 7、块冲突概率最高的Cache地址映象方式是:( B ) A 段相联 B直接 C 组相联 D 全相联 8、对系统程序员不透明的应当是:( C ) A Cache存储器 B 系列机各档不同的数据通路宽度 C虚拟存储器 D 指令缓冲寄存器 9、计算机系统结构不包括:(A) A 主存速度 B 机器工作状态 C 信息保护 D 数据表示 10、组相联映象,LRU替换的Cache存储器,不影响Cache命中率的是( D ): A 增加Cache中的块数 B 增大组的大小 C 增大块的大小 D增大主存容量 11 、与全相联映象相比,组相联映象的优点是:( A ) A 目录表小 B 块冲突概率低 C 命中率高 D 主存利用率高 12、流水机器对全局性相关的处理不包括:( A ) A设置相关专用通路 B 提前形成条件码

计算机系统结构作业答案第三章(张晨曦)

3.1 -3.3为术语解释等解答题。 3.4 设一条指令的执行过程分为取指令,分析指令和执行指令3个阶段,每个阶段所需时间分别为ΔT, ΔT, 2ΔT,分别求出下列各种情况下,连续执行N条指令所需的时间。 (1) 顺序执行方式 (2) 只有“取指令”与“执行指令”重叠 (3) “取指令”,“分析指令”与“执行指令”重叠 解: (1) 4NΔT (2) (3N+1) ΔT (3) 2(N+1) ΔT 3.6 解决流水线瓶颈问题有哪两种常用方法? 解: (1) 细分瓶颈段 将瓶颈段细分为若干个子瓶颈段 (2) 重复设置瓶颈段 重复设置瓶颈段,使之并行工作,以此错开处理任务 3.9 列举下面循环中的所有相关,包括输出相关,反相关,真数据相关。 for(i = 2; i < 100; i=i+1) { a[i] = b[i] + a[i]; -----(1) c[i+1] = a[i] + d[i]; -----(2) a[i-1] = 2*b[i]; -----(3) b[i+1] = 2*b[i]; -----(4) } 解: 输出相关:第k次循环时(1)与第k+1轮时(3) 反相关:第k次循环时(1)和(2)与第k-1轮时(3) 真数据相关:每次循环(1)与(2),第k次循环(4)与k+1次循环(1),(3),(4) 3.12 有一指令流水线如下所示 50ns 50ns 100ns 200ns (1)求连续如入10条指令的情况下,该流水线的实际吞吐率和效率 (2)该流水线的“瓶颈”在哪一段?请采用两种不同的措施消除此“瓶颈”。对于你所给出 的两种新的流水线连续输入10条指令时,其实际吞吐率和效率各是多少? 解:(1)(m表示流水线级数,n 表示任务数)

计算机系统结构张晨曦版课后答案

第1章计算机系统结构的基本概念 1.1 解释下列术语 层次机构:按照计算机语言从低级到高级的次序,把计算机系统按功能划分成多级层次结构,每一层以一种不同的语言为特征。这些层次依次为:微程序机器级,传统机器语言机器级,汇编语言机器级,高级语言机器级,应用语言机器级等。 虚拟机:用软件实现的机器。 翻译:先用转换程序把高一级机器上的程序转换为低一级机器上等效的程序,然后再在这低一级机器上运行,实现程序的功能。 解释:对于高一级机器上的程序中的每一条语句或指令,都是转去执行低一级机器上的一段等效程序。执行完后,再去高一级机器取下一条语句或指令,再进行解释执行,如此反复,直到解释执行完整个程序。 计算机系统结构:传统机器程序员所看到的计算机属性,即概念性结构与功能特性。 在计算机技术中,把这种本来存在的事物或属性,但从某种角度看又好像不存在的概念称为透明性。 计算机组成:计算机系统结构的逻辑实现,包含物理机器级中的数据流和控制流的组成以及逻辑设计等。 计算机实现:计算机组成的物理实现,包括处理机、主存等部件的物理结构,器件的集成度和速度,模块、插件、底板的划分与连接,信号传输,电源、冷却及整机装配技术等。 系统加速比:对系统中某部分进行改进时,改进后系统性能提高的倍数。 Amdahl定律:当对一个系统中的某个部件进行改进后,所能获得的整个系统性能的提高,受限于该部件的执行时间占总执行时间的百分比。 程序的局部性原理:程序执行时所访问的存储器地址不是随机分布的,而是相对地簇聚。包括时间局部性和空间局部性。 CPI:每条指令执行的平均时钟周期数。 测试程序套件:由各种不同的真实应用程序构成的一组测试程序,用来测试计算机在各个方面的处理性能。 存储程序计算机:冯?诺依曼结构计算机。其基本点是指令驱动。程序预先存放在计算机存储器中,机器一旦启动,就能按照程序指定的逻辑顺序执行这些程序,自动完成由程序所描述的处理工作。

计算机系统结构李学干版习题答案

第一章 1- 1如有一个经解释实现的计算机,可以按功能划分成4级。每一级为了执行一条指令需要下一级的N条指令解释。若执行第1级的一条指令需K ns时间,那么执行第2、3、4级的一条指令各需要多少时间? 答:执行第2、3、4级的一条指令各需KN ns、(N*N)*K ns、(N*N*N)*K ns 的时间。 1- 2操作系统机器级的某些指令就用传统机器级的指令,这些指令可以用微程序直接解释实现,而不必有操作系统自己来实现。更具你对1-1题的回答,你认为这样做有哪些好处? 答:这样做,可以加快操作系统中操作命令解释的速度,同时也节省了存放解释操作命令这部分解释程序所占的存储空间,简化了操作系统机器级的设计,也有利于减少传统机器级的指令条数。 1- 3有一个计算机系统可按功能分成4级,每级的指令互不相同,每一级的指令都比其下一级的指令在效能上强M倍,即第i级的一条指令能完成第i-1级的M条指令的计算量。 现若需第i级的N条指令解释第i+1级的一条指令,而有一段第1级的程序需要运行Ks,问在第2、3和4级上一段等效程序各需要运行多长时间? 答:第2级上等效程序需运行:(N/M)*Ks。第3级上等效程序需运行:(N/M)*(N/M)*Ks。 第4级上等效程序需运行:(N/M)*(N/M)*(N/M)*Ks。 1- 4硬件和软件在什么意义上是等效的?在什么意义上又是不等效的?试举例说明。 答:软件和硬件在逻辑功能上是等效的,原理上,软件的功能可用硬件或固件完成,硬件的功能也可用软件模拟完成。但是实现的性能价格比,实现的难易程序不同。

例如,编译程序、操作系统等许多用机器语言软件子程序实现的功能完全可以用组合电路硬件或微程序固件来解释实现。它们的差别只是软件实现的速度慢,软件的编制复杂,编程工作量大,程序所占的存储空间量较多,这些都是不利的;但是,这样所用硬件少,硬件实现上也就因此而简单容易,硬件的成本低,解题的灵活性和适应性较好,这些都是有利的。 又如,乘除法运算可以经机器专门设计的乘法指令用硬件电路或乘除部件来实现。向量、数组运算在向量处理机中是直接使用向量、数组类指令和流水或陈列等向量运算部件的硬件方式来实现的,但在标量处理机上也可以通过执行用标量指令组成的循环程序的软件方式来完成。 浮点数运算可以直接通过设置浮点运算指令用硬件来实现,也可以用两个定点数分别表示浮点数的阶码和尾数,通过程序方法把浮点数阶码和尾数的运算映像变换成两个定点数的运算,用子程序软件的方式实现。十进制数的运算可以通过专门设置十进制数运算类指令和专门的十进制运算部件硬的方式来完成,或者通过设置BCD数的表示和若干BCD数运算的校正指令来软硬结合地实现,也可以先经十转二的数制转换子程序将十进制数转成二进制数,再用二进制运算类指令运算,所得结果又调用二转十的数制转换子程序转换成十进制数结果,用全软件的方式实现。 1- 5试以实例说明计算机系统结构、计算机组成与计算机实现之间的相互关系与影响。 答:计算机系统结构、计算机组成、计算机实现互不相同,但又相互影响。 (1)计算机的系统结构相同,但可采用不同的组成。如IBM370系列有115、125、135、158、168等由低档到高档的多种型号机器。从汇编语言、机器语言程序设计者看到的概念性结构相同,均是由中央处理机/主存,通道、设备控制器,外设4级构成。其中,中央处理机都有相同的机器指令和汇编指令系统,只是指令的分析、执行在低档机上采用顺序进行,在高档机上采用重叠、流水或其它并行处理方式。

《计算机系统结构》习题解答%26%2340%3B张晨曦教程%26%2341%3B

1 《计算机系统结构》习题解答(张晨曦教程) 华中科技大学计算机学院 林安 教材:《计算机系统结构教程》,张晨曦等,清华大学出版社,2009 教师参考书:《计算机系统结构学习指导与题解》,张晨曦等,清华大学出版社,2009 实验平台:指令级和流水线操作级模拟器WinMIPS64 一、各次作业应交内容 第1周(2月19日):1.10(改),1.7,1.11(2解法) 第2周(2月26日):2.14(补充),实验1,3.8,3.10 第3周(3月5日):3.11(改),实验2,5.11,5.8,5.9 第4周(3月12日):6.8(改),6.7 第7周(4月2日):7.9,7.11,7.10 第8周(4月9日):7.14(难题),7.12(难题) 第9周(4月16日) :8.12(补),8.11(改) (难题) 第10周(4月23日):9.9(改),9.13 第11周(4月30日): 10.6,10.9(难题) 合计:习题23个,实验2个 二、参考答案 第1章(P28) 1.10(按下文改后再做,题解1.39) 系统中有3个部件同时改进,加速比分别为30、20和10。 (1) 如果前2个部件时间占总时间比例均为30%,第3个部件所占比例要达到多少,才能使系统加速比达到10? (2) 如果3个部件时间占总时间比例分别为30%、30%、20%,改进之后未被改进部分时间占总时间的比例为多少? 解: (1) 将已知数据代入扩展Amdahl 定律:10 3 203.0303.0)33.03.0(11 10 Fe Fe + ++++?= 解出:%369 25 .33≈= Fe (2) 将改进之前总时间记为old T ,则未被改进部分为0.2old T ;又从扩展Amdahl 定律推导过程知,改进后的总时间为: old old T T 245.0102.0203.0303.0)2.03.03.0(1=×?????? +++++?,二者相除:%82245.02.0≈old old T T 1.7 (题解1.36) 解: 01.006.058.035.012950013214 1 ≈≈≈≈==∑=IC IC IC IC IC IC IC IC IC IC i i ,,,, (1) ∑=≈=×+×+×+×=× =4 1 776.11295002300001295001500212950080004129500750002129500450001)(i i i IC IC CPI CPI

计算机系统结构答案

一、选择题 1、对汇编语言程序员,下列(A )不是透明的。 A: 中断字寄存器 B: 乘法器 C: 移位器 D: 指令缓冲器 2、假设对A机器指令系统的每条指令的解释执行可直接由B机器的一段微程序解释执行,则A称为(D )。 A: 仿真机 B: 宿主机 C: 虚拟机 D: 目标机 3、 1. 查看下面三条指令:V3←A;V2←V0+V1;V4←V2*V3;假设向量长度小于64,且前后其他的指令均没有相关性,数据进入和流出每个功能部件,包括访问存储器都需要一拍的时间,假设向量的长度为N。三条指令全部采用串行的方法,那么执行的时间是:A: 3N+20 B: 3N+21 C: 3N+22 D: 3N+23 4、某向量处理机有16个向量寄存器,其中V0-V5种分别存放有向量A,B,C,D,E,F,向量的长度是8,向量各元素均为浮点数;处理部件采用两个单功能流水线,加法功能部件时间为2拍,乘法功能部件时间为3拍。采用类似CRAY-1的链接技术,先计算(A+B)*C,在流水线不停的情况下,接着计算(D+E)*F。求此链接流水线的通过时间是多少拍?(设寄存器出入各需1拍) A: 8 B: 9 C: 17 D: 18 5、设有一个4个处理器的MIMD系统,假设在系统中访存取指和取数的时间可以忽略不计;加法与乘法分别需要2拍和4拍;在MIMD系统中处理器(机)之间每进行一次数据传送的时间为1拍;在MIMD系统中,每个PE都可以和其它PE有直接的的通路。 求利用此系统计算表达式所需的节拍数。 A: 23 B: 12 C: 11 D: 10 6、以下哪些是周期窃取方式的特点? A : 硬件结构简单 B : 硬件结构复杂 C : 数据输入或输出过程中占用了CPU时间 D : 数据输入或输出过程中不占用CPU时间 7、从下列有关Cache的描述中,选出应填入空格中的正确答案: (1)今有甲、乙两台计算机,甲计算机的Cache存取时间为50ns,主存储器为2us;乙计算机的Cache存储时间为100ns,主存储器为1.2us。设Cache的命中率均为95%,则甲计算机的平均存取时间为__A_ns;乙计算机的平均存取时间为__B_ns。 (2)在Cache中,经常采用直接映象或组相联映象两种方式,在Cache容量相等的情况下,前者比后者的命中率__C__。 选项 A : 147.5 153.5 155 180 选项 B : 147.5 153.5 155 180 选项 C : 高低相等 8、有研究人员指出,如果在采用通用寄存器指令集结构的计算机里加入寄存器—存储器寻址方式可能提高计算机效率,做法就是用指令ADD R2,0(Rb)代替指令序列LOAD R1,0(Rb) ADD R2,R2,R1假定使用新的指令能使时钟周期增加10%,并且假定只对时钟产生影响,而不影响CPI那么采用新指令,要达到与原来同样的性能需要去掉的LOAD操作所占的百分比?(提示:去掉的是与ADD指令连用的LOAD指令,假定未采用新指令前LOAD指令占总指令的22.8%) A: 39% B: 36% C: 40% D: 39.8% 9、下述的几个需要解决的问题中,那个是向量处理机所最需要关心的? A: 计算机指令的优化技术 B: 设计满足运算器带宽要求的存储器 C: 如何提高存储器的利用率,增加存储器系统的容量 D: 纵横处理方式的划分问题 10、一台单处理机可以以标量方式运行,也可以以向量方式运行。在向量方式情况下,计算可比标量方式快18倍。设某基准程序在此计算机上运行的时间是T。另外,已知T的25%用于向量方式,其余机器时间则以标量方式运行。那么在上述条件下与完全不用向量方式的条件下相比的加速比是: A: 3 B: 3.43 C: 3.33 D: 以上均不正确 11、给定1个采用完全混洗互连网络,并有256个PE的SIMD机器,加入执行混洗互连函数10次,则原来在PE123中的数据将被送往何处? A: PE237 B: PE222 C: PE111 D: PE175

计算机系统结构(张晨曦)试题

试题1 一、填空题(25分,每空1分) 1. AT89S51单片机为 位单片机 2. MCS-51系列单片机的典型芯片分别为 、 、 。 3. AT89S51的异步通信口为 (单工/半双工/全双工) 4. AT89S51有 级中断, 个中断源 5. AT89S51内部数据存储器的地址范围是 ,位地址空间的字节地址范围是 ,对应的位地址范围是 ,外部数据存储器的最大可扩展容量是 。 6. AT89S51单片机指令系统的寻址方式有 、_______、_ ___、_ __ __、 。 7. 如果(A)=34H ,(R7)=0ABH ,执行XCH A, R7;结果(A)= ,(R7)= 。 8. 82C55可以扩展 个并行口,其中 条口线具有位操作功能; 9. 当单片机复位时PSW = H ,这时当前的工作寄存器区是 区,R4所对应的存储单元地址为 H 。 10. 若A 中的内容为67H ,那么,P 标志位为 。 11. 74LS138是具有3个输入的译码器芯片,其输出作为片选信号时,最多可以选中 片芯片。 二、判断以下指令的正误:(5分) (1)MOV 28H ,@R4; ( ) (2)INC DPTR ; ( ) (3)DEC DPTR ; ( ) (4)CLR R0 ; ( ) (5)MOV T0,#3CF0H ; ( ) 三、简答题 1. 如果(DPTR)=507BH ,(SP)=32H ,(30H)=50H ,(31H)=5FH ,(32H)=3CH,则执行下列指令后: POP DPH; POP DPL; POP SP; 则:(DPH)= __ ___;(DPL )=____ ____;(SP )=____ ____;(6分) 2. 采用6MHz 的晶振,定时1ms ,用定时器方式0时的初值应为多少?(请给出计算过程)(6分) 3. 分析下列程序的功能(5分) PUSH ACC PUSH B POP ACC POP B 四、图为8段共阴数码管,请写出如下数值的段码。 0____ __;1_______ _;2_______ _;3____ _ ;_4______ ;5_____ ; b c f h

《大学计算机基础》第五版_第1-4章课后习题答案

1.简述计算机系统的组成。 由硬件系统和软件系统组成 2.计算机硬件包括那几个部分?分别说明各部分的作用。 a)主机和外设 b)主机包括中央处理器和内存作用分别是指挥计算机的各部件按照指令的功能要求协调工作和存放预执行的程序和数据。外设包括输入输出设备和外存,作用是接受用户输入的原始数据和程序并将它们转化为计算机可以识别的形式存放在内存中,将存放在内存中由计算机处理的结果转变为人们所能接受的形式。 3.指令和程序有什么区别?试述计算机执行指令的过程。 a)指令是能被计算机识别并执行的二进制代码,程序是计算机指令的有序集合。 b)取指令,分析指令,执行指令。 4.指令的串行执行和并行执行有什么区别? 串行执行即在任何时刻只能执行一条指令,并行执行可以执行多条指令。 5.什么是流水线技术? 在程序执行时多条指令重叠进行操作的一种准并行处理技术。 6.简述系统软件和应用软件的区别。 系统软件是指控制计算机的运行、管理计算机的各种资源、并为应用软件提供支持和服务。应用软件是利用计算机的软、硬件资源为某一专门目的而开发的软件。 7.简述机器语言、汇编语言、高级语言各自的特点。 机器语言编程工作量大、难学难记难修改;汇编语言编程质量高,站存储空间少、执行速度快;高级语言接近自然语言和数学公式。 8.简述解释和编译的区别。 解释的翻译工作可立即执行,而编译的翻译工作不可立即装入机器执行。 9.简述将资源程序编译成可执行程序的过程。 首先产生一个与资源程序等价的目标程序,然后连接程序将目标程序和有关的程序库组合成一个完整的可执行程序。 10.简述常用各种高级语言的特点。 FORTRAN:用于科学计算。COBOL:面向商业的通用语言。C/C++:功能丰富,灵活,简洁明了。BASIC:非结构化,功能少,速度慢。JAVA:严谨可靠易懂。 11.什么是主板?它主要有哪些部件?各部件是如何连接的? a)主板(母版)是微型计算机中最大的一块集成电路板,也是其他部件和各种外部设备的连接载体。 b)芯片、插槽和接口。 c)通过接口连接。 12.简述主板构架的作用,并列举常见的主板构架。 作用:对主板的尺寸大小,形状,各元器件的布局、排列方式和所有的电源风格等制定出的通用标准。如ATX,Micro ATX,BTX等。 13.CPU有哪些性能指标? 主频、外频和前段总线频率字长和位数高速缓冲存储器容量核心数量制造工艺 14简述ROM和RAM的作用和区别。 ROM可读不可写、断电后数据不会丢失;RAM可读可写、断电后数据丢失。 15.简述内存和外存的特点。 内存:容量小,CPU可直接访问。外存:容量大,CPU不能直接访问。 16.什么是SATA硬盘?它有什么优点? 使用SATA接口的存储设备。结构简单,可靠性高,数据传输率高,支持热插拔。 17.简述Cacha的作用及其原理。 提高计算机性能;在CPU和内存之间放置Cacha,CPU访问它的速度比访问内存的速度快得多。 18什么是总线?列举总线类型。 总线是各部件、设备之间传送数据的公用通道。 类型:ISA,PCI,AGP. 19.简述并行总线和串行总线的优缺点。 并:适用于短距离低总线频率的传输;串:低速数据传输和高速数据传输都适用。

计算机系统结构(高教版)张晨曦 习题答案 第五章

5.1 解释下列术语 多级存储层次:由若干个采用不同实现技术的存储器构成的存储器系统,各存储器处在离CPU不同距离的层次上。使得靠近CPU的存储器速度较快,容量较小。整个存储系统的速度接近与离CPU最近的存储器的速度,而容量和每位价格接近于最低层次的容量和价格。 全相联映像:指主存中的任一块可以被放置到Cache中的任意一个位置。 直接映像:指主存中的每一块只能被放置到Cache中唯一的一个位置。 组相联映像:指主存中的每一块可以被放置到Cache中固定的一个组中的任意位置。 替换算法:由于主存中的块比Cache中的块多,所以当要从主存中调入一个块到Cache中时,会出现该块所映像的Cache块位置已经被占用的情况。替换算法即解决如何选择替换块的问题。 LRU:最近最少使用法。选择近期最少被访问的块作为被替换的块。 写直达法:在执行“写”操作时,不仅把信息写入Cache中相应的块,而且也写入下一级存储器中相应的块。 写回法:只把信息写入Cache中相应的块,该块只有在被替换时才被写回主存。 按写分配法:在写失效时,先把所写单元所在的块从主存调入Cache,然后再进行写入。 不按写分配法:写失效时,直接写入下一级存储器而不将相应的块调入Cache。 命中时间:CPU所要访问的块在Cache中,确认并取走所花费的时间开销。 失效率:CPU一次访存不命中的概率。 失效开销:CPU一次访存不命中,而额外增加的访存开销。 强制性失效:当第一次访问一个块时,该块不在Cache中,需从下一级存储器中调入Cache。 容量失效:如果程序执行执行时所需的块不能全部调入Cache中,则当某些快被替换后,若又重新被访问,就会发生失效。 冲突失效:在组相联或直接映像Cache中,若不多的块映像到同一组中,则会出现该组中某个块被别的块替换,然后又重新被访问的情况。 2:1 Cache经验规则:大小为N的直接映像Cache的失效率约等于大小为N/2的2路组相联Cache的失效率。 相联度:组相联中每组的块数n成为相联度。 Victim Cache:在Cache和它的下一级存储器之间增设一个全相联映像的Cache,存放因冲突而被替换出去的块。 故障性预取:在预取时,若出现虚地址故障或违反保护权限,就会引发异常。 非故障性预取:在预取时,若出现虚地址故障或违反保护权限,不会引发异常,而是放弃预取,转变为空操作。 非阻塞Cache:Cahce在等待预取数据返回的同时,还能继续提供指令和数据。 尽早重启动:在请求字没有到达时,CPU处于等待状态时,一旦请求字到达,就立即发送给CPU,让等待的CPU尽早冲启动,继续执行。 请求字优先:调块时,首先向存储器请求CPU所要的请求字。请求字一旦到达,就立即送往CPU,让CPU继续执行,同时从存储器调入该块的其余部分。 虚拟Cache:和失效相比,Cache命中发生的频度高的多。按照“以经常性事件为重点”的指导思想,应在Cache中使用虚拟地址。这样的Cache成为虚拟Cache。 多体交叉存储器:在存储系统中采用多个DRAM,并利用它们潜在的并行性,可以把存储芯片组织为多个体,并让他们并行工作。从而能一次读或写多个字,存储器内的各个体是按字交叉的。 存储体冲突:两个请求要访问同一体。 TLB:地址变换缓冲器,用于存放近期使用的页表项,其内容是页表部分内容的一个副本。

计算机系统结构第二版张晨曦考前资料大题大全看完必过

1. 将计算机系统中某一功能的处理速度加快15倍,但该功能的处理时间仅占整个系统运行时间的40%,则采用此方法改进后,能使整个系统的性能提高多少? 注意:计算的是系统的加速比。用的是系统改进前的时间/系统改进后的时间。 引入两个概念: 可改进比例:Fe 部件加速比:Se 公式是推倒出来的。 解:由题意知:Se=15,Fe=40%=0.4 根据Amdahl 定律可知: Sn= 6.15 .14 .04.0-11 e e e -11 ≈+ =+)()(S F F 采用此方法改进后,能使整个系统的性能提高原来的1.6倍 2. 假设FP 指令的比例为25%,其中,FPSQR 占全部指令的比例为2%,FP 操作的CPI 为4,FPSQR 操作的CPI 为20,其他指令的平均CPI 为1.33。现有两种改进方案,第一种是把PFSQR 操作的CPI 减至2,第二种是把所有FP 操作的CPI 减至2,试比较两种方案对系统性能的提高程度。(求得是系统的平均时钟周期CPI ) 注意几个公式: 执行程序所需的时钟周期数:平均时钟周期*指令条数 时钟周期时间 时钟周期时间期数执行程序所需的时钟周时间??=?=IC CPI CPU 这个公式改进任何一个参数都可以提高CPU 性能,但是这些参数往

往是互相关联的,很难做到能单独的改进某一个参数指标而不影响其他的两个指标。所以用到了CPU 时钟周期数。 )(时钟周期数i n 1i CPU IC CPI i ?=∑= 时钟周期时间)(时间??=∑=i n 1 i CPU IC CPI i ∑∑==? =?= =n 1 i i i n 1 i i )CPI (CPI IC IC IC IC CPI IC i 时钟周期数 解:没有改进之前,每条指令的平均时钟周期CPI 为: 2%)7533.1(%)254()CPI (CPI n 1i i i ≈?+?=? =∑=IC IC (1)采用第一种方案:所有FP 操作的CPI 由CPIfp=4减至CPIfp’=2,则整个系统的平均时钟周期为: CPI1=CPI -(CPIfp -CPIfp’)x25%=2-(4-2)x25%=1.5 (2)采用第二种方案:将FPSQR 操作的CPI 由20减至2,则整个系统的指令的平均时钟周期数为: CPI2=CPI -(CPIfpsqr -CPIfpsqr’)x2%=2-(20-2)x2%=1.64 综上:从降低整个系统的指令平均时钟周期程度来看,第二种方案优于第一种方案。 课后题: 3.将计算机系统中某一功能的处理速度加快20倍,但该功能的处理时间仅占整个系统运行时间的40%,则采用该方法改进后,能使整个系统的性能提高多少?

计算机系统结构作业答案第一章(张晨曦)

第一章 计算机体系结构的基本概念 1.6 对于一台400MHz 计算机执行标准测试程序,程序中指令类型,执行数量和平均时钟 解:IC CPI IC CPI i i /)(∑?= 4500017500028000415002 1.776450007500080001500 CPI ?+?+?+?= =+++ 6 40010225.2251.776 f MIPS MIPS CPI ?===速率 程序执行时间= 64(4500017500028000415002)/(40010) 5.7510-?+?+?+??=?s 1.7 将计算机系统中某一功能的处理速度加快10倍,但该功能的处理时间仅为整个系统运行时间的40%,则采用此提高性能的方法后,能使整个系统的性能提高多少? 解:部件加速比=11,可改进比例=40% 系统加速比= 1 1 1.5714(10.4(1--= =0.4 可改进比例 )+ 可改进比例)+ 部件加速11 比 1.8 计算机系统有三个部件可以改进,这三个部件的加速比如下: 部件加速比1=30; 部件加速比2=20; 部件加速比3=10; (1) 如果部件1和部件2的可改进比例为30%,那么当部件3的可改进比例为多少时, 系统的加速比才可以达到10? (2) 如果三个部件的可改进比例为30%、30%和20%,三个部件同时改进,那么系统 中不可加速部分的执行时间在总执行时间中占的比例是多少? 解: 1)在多个部件可改进情况下Amdahl 定理的扩展: ????? ?+-=e e e o e S f f T T )1( e e e S f f S + -= )1(1

计算机体系结构张晨曦版本第四章解答-new

第四章习题四 4.1解释下列术语: 指令级并行:指令序列中存在的潜在的并行性称为指令级并行。 指令调度:指令调度是一种用以避免冲突的方法,但并不改变相关。通过改变指令在程序中的位置,将相关指令间的距离加大到不小于指令执行延迟的时钟数,以此消除相关指令造成的流水线冲突。 指令的动态调度:在程序执行过程中,依靠专门的硬件对代码进行调度,重新安排指令的执行顺序,来调整相关指令实际执行时的关系,减少可能的冲突。 指令的静态调度:在程序的编译期间,由编译器进行代码调度和优化,重新安排指令的执行顺序,把相关的指令拉开距离,以减少可能产生的冲突。 保留站:在Tomasulo算法实现结构中,保留站设置在运算部件的入口,每个保留站中保存一条已经流出并等待到本功能部件执行的指令的相关信息,包括操作码、操作数以及用于检测和解决冲突的信息。在一条指令流出到保留站的时候,如果该指令的操作数已经在寄存器中就绪,则将之取到该保留站中。如果操作数还没有计算出来,则在该保留站中记录将产生这个操作数的保留站的标识。 CDB:公共数据总线,是Tomasulo算法实现结构中的一条重要的数据通路,所有功能部件的计算结果都要送到CDB上,由它把这些结果直接送到各个需要该结果的地方。 动态分支预测技术:用硬件动态地进行分支处理的方法。这些方法是在程序运行时,根据分支指令过去的表现来预测其将来的行为。如果分支行为发生了变化,预测结果也随之改变。其目的有两个:预测分支是否成功和尽快找到分支目标地址(或指令),从而避免控制相关造成流水线停顿。 BHT:分支历史表,也称之为分支预测缓冲器,用来记录分支指令最近一次或几次的执行情况(成功或不成功),并根据此进行预测。 分支目标缓冲:将分支成功的分支指令的地址和它的分支目标地址都放到一个缓冲区中保存起来,缓冲区以分支指令的地址作为标识,取指令阶段,所有指令地址都与保存的标示作比较,一旦相同,就认为本指令是分支指令,且认为它转移成功,并且它的分支目标地址就是保存在缓冲区的分支目标地址。 前瞻执行:基于硬件的前瞻执行结合了以下三种思想:

计算机组成原理第五版课后答案

计算机组成原理第五版课后答案 1.比较数字计算机和模拟计算机的特点。 答:(1)模拟计算机的特点:数值由连续量来表示,运算过程也是连续的。同时用电压表示数据,采用电压组合和测量值的方式来进行计算,以及盘上连线的控制方式。 数字计算机的主要特点:按位运算,并且不连续地跳动计算。用数字 0 和 1 表示数据,采用数字计数的计算方式,程序控制的控制方式。 数字计算机与模拟计算机相比,精度高,数据存储量大,逻辑判断能力强。 2.数字计算机如何分类?分类的依据是什么? 答:数字计算机可分为专用计算机和通用计算机,是根据计算机的效率、速度、价格、运行的经济性和适应性来划分的。 3.数字计算机有哪些主要应用? 答:数字计算机的主要应用有:科学计算、自动控制、测量和测试、信息处理、教育和卫生、家用电器、人工智能。 4.冯·诺依曼型计算机的主要设计思想是什么?它包括哪些主要组成部分? 答:冯·诺依曼型计算机的主要设计思想是:采用存储程序的方式,编制好的程序和数据存放在同一存储器中,计算机可以在无人干预的情况下自动完成逐条取出指令和执行指令的任务;在机器内部,

指令和数据均以二进制码表示,指令在存储器中按执行顺序存放。主要组成部分有:运算器、逻辑器、存储器、输入设备和输出设备。 5.什么是存储容量?什么是单元地址?什么是数据字?什么是指令字? 答:(1)存储器所有存储单元的总数称为存储器的存储容量。 (2)每个存储单元都有编号,称为单元地址。 (3)如果某字代表要处理的数据,称为数据字。 (4)如果某字为一条指令,称为指令字。 6.什么是指令?什么是程序? 答:计算机硬件可直接执行的每一个基本的算术运算或逻辑运算操作称为一条指令,而解算某一问题的一串指令序列,称为程序。 7.指令和数据均存放在内存中,计算机如何区分它们是指令还是数据? 答:取指周期中从内存读出的信息流是指令流,它流向控制器;而在执行器周期中从内存读出的信息流是数据流,它流向运算器。 8.什么是内存?什么是外存?什么是CPU?什么是适配器?简述其功能。 答:(1)半导体存储器称为内存; (2)存储容量更大的磁盘存储器和光盘存储器称为外存,内存和外存共同用来保存二进制数据。 (3)运算器和控制器合在一起称为中央处理器,简称 CPU,它用来控制计算机及进行算术逻辑运算。

计算机系统结构(课后习题答案)

第一章计算机系统结构的基本概念 1.有一个计算机系统可按功能分成4级,每级的指令互不相同,每一级的指令都比其下一级的指令在效能上强M倍,即第i级的一条指令能完成第i-1级的M条指令的计算量。现若需第i级的N 条指令解释第i+1级的一条指令,而有一段第1级的程序需要运行Ks,问在第2、3和4级上一段等效程序各需要运行多长时间? 答:第2级上等效程序需运行:(N/M)*Ks。第3级上等效程序需运行:(N/M)*(N/M)*Ks。第4级上等效程序需运行:(N/M)*(N/M)*(N/M)*Ks。 note: 由题意可知:第i级的一条指令能完成第i-1级的M条指令的计算量。而现在第i 级有N条指令解释第i+1级的一条指令,那么,我们就可以用N/M来表示N/M 表示第i+1级需(N/M)条指令来完成第i级的计算量。所以,当有一段第1级的程序需要运行Ks时,在第2级就需要(N/M)Ks,以此类推 2.硬件和软件在什么意义上是等效的?在什么意义上又是不等效的?试举例说明。 答:软件和硬件在逻辑功能上是等效的,原理上,软件的功能可用硬件或固件完成,硬件的功能也可用软件模拟完成。但是实现的性能价格比,实现的难易程序不同。 在DOS操作系统时代,汉字系统是一个重要问题,早期的汉字系统的字库和处理程序都固化在汉卡(硬件)上,而随着CPU、硬盘、内存技术的不断发展,UCDOS把汉字系统的所有组成部份做成一个软件。 3.试以实例说明计算机系统结构、计算机组成与计算机实现之间的相互关系与影响。 答:计算机系统结构、计算机组成、计算机实现互不相同,但又相互影响。 (1)计算机的系统结构相同,但可采用不同的组成。如IBM370系列有115、125、135、158、168等由低档到高档的多种型号机器。从汇编语言、机器语言程序设计者看到的概念性结构相同,均是由中央处理机/主存,通道、设备控制器,外设4级构成。其中,中央处理机都有相同的机器指令和汇编指令系统,只是指令的分析、执行在低档机上采用顺序进行,在高档机上采用重叠、流水或其它并行处理方式。 (2)相同的组成可有多种不同的实现。如主存器件可用双极型的,也可用MOS型的;可用VLSI单片,也可用多片小规模集成电路组搭。 (3)计算机的系统结构不同,会使采用的组成技术不同,反之组成也会影响结构。如为实现A:=B+CD:=E*F,可采用面向寄存器的系统结构,也可采用面向主存的三地址寻址方式的系统结构。要提高运行速度,可让相加与相乘并行,为此这两种结构在组成上都要求设置独立的加法器和乘法器。但对面向寄存器的系统结构还要求寄存器能同时被访问,而对面向主存的三地址寻址方式的系统结构并无此要求,倒是要求能同时形成多个访存操作数地址和能同时访存。又如微程序控制是组

相关主题
文本预览
相关文档 最新文档