文档库 最新最全的文档下载
当前位置:文档库 › 计算机组成与系统结构课后答案全(清华大学出版社 袁春风主编)

计算机组成与系统结构课后答案全(清华大学出版社 袁春风主编)

计算机组成与系统结构课后答案全(清华大学出版社 袁春风主编)
计算机组成与系统结构课后答案全(清华大学出版社 袁春风主编)

第 1 章习题答案

5.若有两个基准测试程序P1和P2在机器M1和M2上运行,假定M1和M2的价格分别是5000元和8000

请回答下列问题:

(1)对于P1,哪台机器的速度快?快多少?对于P2呢?

(2)在M1上执行P1和P2的速度分别是多少MIPS?在M2上的执行速度又各是多少?从执行速度来看,对于P2,哪台机器的速度快?快多少?

(3)假定M1和M2的时钟频率各是800MHz和1.2GHz,则在M1和M2上执行P1时的平均时钟周期数CPI各是多少?

(4)如果某个用户需要大量使用程序P1,并且该用户主要关心系统的响应时间而不是吞吐率,那么,该用户需要大批购进机器时,应该选择M1还是M2?为什么?(提示:从性价比上考虑)(5)如果另一个用户也需要购进大批机器,但该用户使用P1和P2一样多,主要关心的也是响应时间,那么,应该选择M1还是M2?为什么?

参考答案:

(1)对于P1,M2比M1快一倍;对于P2,M1比M2快一倍。

(2)对于M1,P1的速度为:200M/10=20MIPS;P2为300k/0.003=100MIPS。

对于M2,P1的速度为:150M/5=30MIPS;P2为420k/0.006=70MIPS。

从执行速度来看,对于P2,因为100/70=1.43倍,所以M1比M2快0.43倍。

(3)在M1上执行P1时的平均时钟周期数CPI为:10×800M/(200×106)=40。

在M2上执行P1时的平均时钟周期数CPI为:5×1.2G/(150×106)=40。

(4)考虑运行P1时M1和M2的性价比,因为该用户主要关心系统的响应时间,所以性价比中的性能应考虑执行时间,其性能为执行时间的倒数。故性价比R为:

R=1/(执行时间×价格)

R越大说明性价比越高,也即,“执行时间×价格”的值越小,则性价比越高。

因为10×5000 > 5×8000,所以,M2的性价比高。应选择M2。

(5)P1和P2需要同等考虑,性能有多种方式:执行时间总和、算术平均、几何平均。

若用算术平均方式,则:因为(10+0.003)/2×5000 > (5+0.006)/2×8000,所以M2的性价比高,应选择M2。

若用几何平均方式,则:因为sqrt(10×0.003) ×5000 < sqrt(5×0.006) ×8000,所以M1的性价比高,应选择M1。

6.若机器M1和M2具有相同的指令集,其时钟频率分别为1GHz和1.5GHz。在指令集中有五种不同类

请回答下列问题:

(1)M1和M2的峰值MIPS各是多少?

(2)假定某程序P的指令序列中,五类指令具有完全相同的指令条数,则程序P在M1和M2上运行时,哪台机器更快?快多少?在M1和M2上执行程序P时的平均时钟周期数CPI各是多少?

参考答案:

(1)M1上可以选择一段都是A类指令组成的程序,其峰值MIPS为1000MIPS。

M2上可以选择一段A和B类指令组成的程序,其峰值MIPS为1500/2=750MIPS。

(2)5类指令具有完全相同的指令条数,所以各占20%。

在M1和M2上执行程序P时的平均时钟周期数CPI分别为:

M1:20%×(1+2+2+3+4)= 0.2×12 = 2.4

M2:20%×(2+2+4+5+6)= 0.2×19 = 3.8

假设程序P的指令条数为N,则在M1和M2上的执行时间分别为:

M1:2.4× N×1/1G = 2.4N (ns)

M2:3.8×N×1/1.5G = 2.53 N (ns)

M1执行P的速度更快,每条指令平均快0.13ns,也即M1比M2快0.13/2.53×100%≈5%。

(思考:如果说程序P在M1上执行比M2上快(3.8–2.4)/3.8×100%= 36.8%,那么,这个结论显然是错误的。请问错在什么地方?)

7.假设同一套指令集用不同的方法设计了两种机器M1和M2。机器M1的时钟周期为0.8ns,机器M2的时钟周期为1.2ns。某个程序P在机器M1上运行时的CPI为4,在M2上的CPI为2。对于程序P 来说,哪台机器的执行速度更快?快多少?

参考答案:

假设程序P的指令条数为N,则在M1和M2上的执行时间分别为:

M1:4 N×0.8 = 3.2N (ns)

M2:2 N×1.2 = 2.4 N (ns)

所以,M2执行P的速度更快,每条指令平均快0.8ns,比M1快0.8/3.2×100%=25%。

8.假设某机器M的时钟频率为4GHz,用户程序P在M上的指令条数为8×109,其CPI为1.25,则P在M上的执行时间是多少?若在机器M上从程序P开始启动到执行结束所需的时间是4秒,则P占用的CPU时间的百分比是多少?

参考答案:

程序P在M上的执行时间为:1.25×8×109×1/4G = 2.5 s,从启动P执行开始到执行结束的总时间为4秒,其中2.5秒是P在CPU上真正的执行时间,其他时间可能执行操作系统程序或其他用户程序。

程序P占用的CPU时间的百分比为:2.5/4 = 62.5%。

9.假定某编译器对某段高级语言程序编译生成两种不同的指令序列S1和S2,在时钟频率为500MHz的机器M上运行,目标指令序列中用到的指令类型有A、B、C和D四类。四类指令在M上的CPI和

请问:S1和S2各有多少条指令?CPI各为多少?所含的时钟周期数各为多少?执行时间各为多少?

参考答案:

S1有10条指令,CPI为(5×1+2×2+2×3+1×4)/10=1.9, 所含的时钟周期数为10×1.9=19,执行时间为19/500M = 38ns。

S2有8条指令,CPI为(1×1+1×2+1×3+5×4)/8 =3.25, 所含的时钟周期数为8×3.25=26,执行时间为26/500M = 52ns。

(注:从上述结果来看,对于同一个高级语言源程序,在同一台机器上所生成的目标程序不同,其执行时间可能不同,而且,并不是指令条数少的目标程序执行时间就一定少。)

10.假定机器M的时钟频率为1.2GHz,某程序P在机器M上的执行时间为12秒钟。对P优化时,将其所有的乘4指令都换成了一条左移2位的指令,得到优化后的程序P’。已知在M上乘法指令的CPI 为5,左移指令的CPI为2,P的执行时间是P’执行时间的1.2倍,则P中有多少条乘法指令被替换成了左移指令被执行?

参考答案:

显然,P’的执行时间为10秒,因此,P比P’多花了2秒钟,因此,执行时被换成左移指令的乘法指令的条数为1.2G×2/(5–2) = 800M。

第二章习题答案

3.实现下列各数的转换。

(1)(25.8125)10= (?)2= (?) 8= (?) 16

(2)(101101.011)2 = (?)10= (?) 8= (?) 16= (?) 8421

(3)(0101 1001 0110.0011)8421 = (?)10= (?) 2= (?) 16

(4)(4E.C)16 = (?)10= (?) 2

参考答案:

(1) (25.8125)10 = (1 1001.1101)2 = (31.64) 8 = (19.D) 16

(2)(101101.011)2 = (45.375)10 = (55.3) 8 = (2D.6) 16 = (0100 0101.0011 0111 0101) 8421

(3)(0101 1001 0110.0011)8421 = (596.3)10 = (1001010100.01001100110011…) 2 = (254.4CCC…) 16 (4)(4E.C)16 = (78.75)10 = (0100 1110.11) 2

4.假定机器数为8位(1位符号,7位数值),写出下列各二进制数的原码和补码表示。

+0.1001,–0.1001,+1.0,–1.0,+0.010100,–0.010100,+0,–0

参考答案:

原码补码

+0.1001:0.1001000 0.1001000

–0.1001: 1.1001000 1.0111000

+1.0:溢出溢出

–1.0:溢出 1.0000000

+0.010100:0.0101000 0.0101000

–0.010100: 1.0101000 1.1011000

+0:0.0000000 0.0000000

–0: 1.0000000 0.0000000

5.假定机器数为8位(1位符号,7位数值),写出下列各二进制数的补码和移码表示。

+1001,–1001,+1,–1,+10100,–10100,+0,–0

参考答案:

移码补码

+1001:10001001 00001001

–1001:01110111 11110111

+1:10000001 00000001

–1:011111111 11111111

+10100:10010100 00010100

–10100:01101100 11101100

+0:10000000 00000000

–0:10000000 00000000

6.已知[x]补,求x

(1)[x]补=1.1100111 (2)[x]补=10000000

(3)[x]补=0.1010010 (4)[x]补=11010011

参考答案:

(1)[x]补=1.1100111 x = –0.0011001B

(2)[x]补=10000000 x = –10000000B = –128

(3)[x]补=0.1010010 x = +0.101001B

(4)[x]补=11010011 x = – 101101B = – 45

7.假定一台32位字长的机器中带符号整数用补码表示,浮点数用IEEE 754标准表示,寄存器R1和R2的内容分别为R1:0000108BH,R2:8080108BH。不同指令对寄存器进行不同的操作,因而,不同指令执行时寄存器内容对应的真值不同。假定执行下列运算指令时,操作数为寄存器R1和R2的内容,则R1和R2中操作数的真值分别为多少?

(1)无符号数加法指令

(2)带符号整数乘法指令

(3)单精度浮点数减法指令

参考答案:

R1 = 0000108BH = 0000 0000 0000 0000 0001 0000 1000 1011b

R2 = 8080108BH = 1000 0000 1000 0000 0001 0000 1000 1011b

(1)对于无符号数加法指令,R1和R2中是操作数的无符号数表示,因此,其真值分别为R1:108BH, R2:8080108BH。

(2)对于带符号整数乘法指令,R1和R2中是操作数的带符号整数补码表示,由最高位可知,R1为正数,R2为负数。R1的真值为+108BH, R2的真值为–(0111 1111 0111 1111 1110 1111 0111 0100b + 1b) = –7F7FEF75H。

(3)对于单精度浮点数减法指令,R1和R2中是操作数的IEEE754单精度浮点数表示。在IEEE 754 标准中,单精度浮点数的位数为32位,其中包含1位符号位,8位阶码,23位尾数。

由R1中的内容可知,其符号位为0,表示其为正数,阶码为0000 0000,尾数部分为000 0000 0001 0000 1000 1011,故其为非规格化浮点数,指数为–126,尾数中没有隐藏的1,用十六进制表示尾数为+0.002116H,故R1表示的真值为+0.002116H × 10-126。

由R2中的内容可知,其符号位为1,表示其为负数,阶码为0000 0001,尾数部分为000 0000 0001 0000 1000 1011,故其为规格化浮点数,指数为1–127 = –126,尾数中有隐藏的1,用十六进制表示尾数为–1.002116H,故R2表示的真值为–1.002116H × 10-126

8.假定机器M的字长为32位,用补码表示带符号整数。下表第一列给出了在机器M上执行的C语言

程序中的关系表达式,请参照已有的表栏内容完成表中后三栏内容的填写。

9.以下是一个C 语言程序,用来计算一个数组a 中每个元素的和。当参数len 为0时,返回值应该是0,

但是在机器上执行时,却发生了存储器访问异常。请问这是什么原因造成的,并说明程序应该如何修改。

1 float sum_elements(float a[], unsigned len)

2 {

3 int i; 4

float result = 0; 5 6 for (i = 0; i <= len –1; i++) 7 result += a[i]; 8 return result; 9 }

参考答案:

参数len 的类型是unsigned ,所以,当len=0时,执行len-1的结果为11…1,是最大可表示的无符号数,因而,任何无符号数都比它小,使得循环体被不断执行,引起数组元素的访问越界,发生存储器访问异常。 只要将len 声明为int 型,或循环的测试条件改为i

10. 设某浮点数格式为:

其中,移码的偏置常数为16,补码采用一位符号位,基数为4。 (1) 用这种格式表示下列十进制数:+1.7,–0.12,+19,–1/8。

(2) 写出该格式浮点数的表示范围,并与12位定点补码整数表示范围比较。 参考答案:(假定采用0舍1入法进行舍入) (1) +1.7 = +1.1011001B = 0.011011B× 41, 故阶码为1 +16 = 17 = 10001B, 尾数为+0.011011的补码,

即0.011011,所以+1.7表示为0 10001 011011。 –0.12 = – 0.000111101B = – 0.011111B × 4–1, 故阶码为 –1 + 16 =15 = 01111B, 尾数为– 0.011111

的补码,即1.100001, 所以–0.12表示为1 01111 100001。 +19 = +10011B = 0.010011B× 43,故阶码为3 + 16 = 19 = 10011B, 尾数为0.010011,所以+19表

示为0 10011 010011。

–1/8 = – 0.125 = – 0.001B = – 0.100000 × 4–1,阶码为–1 + 16 = 15 = 01111B,尾数为– 0.100000的补码,即1.100000,所以–1/8表示为1 01111 100000。

(2)该格式浮点数表示的范围如下。

正数最大值:0.111111B × 411111,即:0.333× 415 (≈230 ≈109)

正数最小值:0.000001B × 400000,即:0.001× 4–16 (≈2–34≈10–10)

负数最大值:–0.000001B × 400000,即:–0.001× 4–16

负数最小值:–1.000000B × 411111,即:–1.000× 415

因此,该格式浮点数的数量级在10–10~109之间。

12位定点补码整数的表示范围为:–211~+(211–1),即:–2048~2047

由此可见,定点数和浮点数的表示范围相差非常大。

11. 下列几种情况所能表示的数的范围是什么?

(1)16位无符号整数

(2)16位原码定点小数

(3)16位补码定点小数

(4)16位补码定点整数

(5)下述格式的浮点数(基数为2,移码的偏置常数为128)

1位8位移码7位原码

参考答案:

(1)无符号整数:0~216–1。

(2)原码定点小数:–(1–2–15) ~+ (1–2–15)。

(3)补码定点小数:–1 ~+ (1–2–15)。

(4)补码定点整数:–32768 ~+32767。

(5)浮点数:负数:– (1–2–7)×2+127 ~–2–7×2–128。

正数:+2–135 ~(1–2–7) ×2+127。

12. 以IEEE 754单精度浮点数格式表示下列十进制数。

+1.75,+19,–1/8,258

参考答案:

+1.75 = +1.11B = 1.11B × 20, 故阶码为0+127=01111111B, 数符为0,尾数为1.110…0,小数点前为隐藏位,所以+1.7表示为0 01111111 110 0000 0000 0000 0000 0000,用十六进制表示为3FE00000H。

+19 = +10011B = +1.0011B × 24,故阶码为4+127 = 10000011B, 数符为0,尾数为1.00110…0,所以+19表示为0 10000011 001 1000 0000 0000 0000 0000,用十六进制表示为41980000H。

–1/8 = – 0.125 = – 0.001B = – 1.0 × 2–3,阶码为–3+127 = 01111100B,数符为1,尾数为1.0…0,所以–1/8表示为1 01111100 000 0000 0000 0000 0000 0000,用十六进制表示为BE000000H。

258=100000010B=1.0000001B × 28, 故阶码为8+127=10000111B, 数符为0,尾数为1.0000001,所以258表示为0 10000111 000 0001 0000 0000 0000 0000,用十六进制表示为43810000H。

13.设一个变量的值为4098,要求分别用32位补码整数和IEEE 754单精度浮点格式表示该变量(结果用十六进制表示),并说明哪段二进制序列在两种表示中完全相同,为什么会相同?

参考答案:

4098 = +1 0000 0000 0010B = +1. 0000 0000 001 × 212

32位2-补码形式为:0000 0000 0000 0000 0001 0000 0000 0010(00001002H)

IEEE754单精度格式为:0 10001011 0000 0000 0010 0000 0000 000 (45801000H)

粗体部分为除隐藏位外的有效数字,因此,在两种表示中是相同的序列。

14.设一个变量的值为–2147483647,要求分别用32位补码整数和IEEE754单精度浮点格式表示该变量(结果用十六进制表示),并说明哪种表示其值完全精确,哪种表示的是近似值。

参考答案:

–2147483647 = –111 1111 1111 1111 1111 1111 1111 1111B

= –1.11 1111 1111 1111 1111 1111 1111 1111 × 230

32位2-补码形式为:1000 0000 0000 0000 0000 0000 0000 0001 (80000001H)

IEEE 754单精度格式为:1 10011101 1111 1111 1111 1111 1111 111 (CEFFFFFFH)

32位2-补码形式能表示精确的值,而浮点数表示的是近似值,低位被截断

15.下表给出了有关IEEE 754浮点格式表示中一些重要数据的取值,表中已经有最大规格化数的相应内

16.已知下列字符编码:A=100 0001,a=110 0001,0=011 0000,求E、e、f、7、G、Z、5的7位ACSII 码和第一位前加入奇校验位后的8位编码。

参考答案:

E的ASCII码为‘A’ + (‘E’–‘A’) = 100 0001 + 100 = 100 0101, 奇校验位P = 0,第一位前加入奇校验位后的8位编码是0 100 0101。

e的ASCII码为‘a’+ (‘e’–‘a’) = 110 0001 + 100 = 110 0101,奇校验位P = 1, 第一位前加入奇校验位后的8位编码是1 110 0101。

f的ASCII码为‘a’+ (‘f’–‘a’) = 110 0001 + 101 = 110 0110, 奇校验位P = 1, 第一位前加入奇校验位后的8位编码是 1 110 0110。

7的ASCII码为‘0’+ (7 - 0) = 011 0000 + 111 = 011 0111,奇校验位P = 0, 第一位前加入奇校验位后的8位编码是0 011 0111。

G的ASCII码为‘A’+ (‘G’–‘A’) = 100 0001 + 0110 = 100 0111, 奇校验位P = 1, 第一位前加入奇校验位后的8位编码是1 100 0111。

Z的ASCII码为‘A’+(‘Z’–‘A’) = 100 0001 + 11001 = 101 1010, 奇校验位P = 1, 第一位前加入奇校验位后的8位编码是1 101 1010。

5的ASCII码为‘0’+(5 – 0) = 011 0000 + 101 = 011 0101,奇校验位P = 1, 第一位前加入奇校验位后的8位编码是1 011 0101。

17.假定在一个程序中定义了变量x、y和i,其中,x和y是float型变量(用IEEE754单精度浮点数表示),i是16位short型变量(用补码表示)。程序执行到某一时刻,x = –0.125、y=7.5、i=100,它们都被写到了主存(按字节编址),其地址分别是100,108和112。请分别画出在大端机器和小端机器上变量x、y和i在内存的存放位置。

参考答案:

–0.125 = –0.001B = –1.0 ×2-3

x在机器内部的机器数为:1 01111100 00…0 (BE00 0000H)

7.5= +111.1B= +1.111×22

y在机器内部的机器数为:0 10000001 11100…0 (40F0 0000H)

100=64+32+4=1100100B

i在机器内部表示的机器数为:0000 0000 0110 0100(0064H)

大端机小端机

地址内容内容

100 BEH 00H

101 00H 00H

102 00H 00H

103 00H BEH

108 40H 00H

109 F0H 00H

110 00H F0H

111 00H 40H

112 00H 64H

113 64H 00H

18.假定某计算机的总线采用奇校验,每8位数据有一位校验位,若在32位数据线上传输的信息是8F 3C AB 96H,则对应的4个校验位应为什么?若接受方收到的数据信息和校验位分别为87 3C AB 96H和0101B,则说明发生了什么情况,并给出验证过程。

参考答案:

传输信息8F 3C AB 96H展开为1000 1111 0011 1100 1010 1011 1001 0110,每8位有一个奇校验位,因此,总线上发送方送出的4个校验位应该分别为0、1、0、1。

接受方的数据信息为87 3C AB 96H,展开后为1000 0111 0011 1100 1010 1011 1001 0110;接收到的校验位分别为0、1、0、1。在接受方进行校验判断如下:

根据接收到的数据信息计算出4个奇校验位分别为1、1、0、1,将该4位校验位分别和接收到的4位校验位进行异或,得到1、0、0、0,说明数据信息的第一个字节发生传输错误。对照传输前、后的数据信息,第一字节8FH变成了87H,说明确实发生了传输错误,验证正确。

19.写出16位数据的SEC码。假定数据为0101 0001 0100 0110,说明SEC码如何正确检测数据位5的错误。

参考答案:

对于16位数据,可以如下插入校验位:

M16 M15 M14 M13 M12 P5 M11 M10 M9 M8 M7 M6 M5 P4 M4 M3 M2 P3 M1 P2 P1

其中M i是原信息数据,P i是加入的校验位,对于各个校验位的值可以如下计算

P1 = M1⊕M2⊕M3⊕M4⊕M5⊕M7⊕M9⊕M11⊕M12⊕M14⊕M16 = 1

P2 = M1⊕M3⊕M4⊕M6⊕M7⊕M10⊕M11⊕M13⊕M14 = 1

P3 = M2⊕M3⊕M4⊕M8⊕M9⊕M10⊕M11⊕M15⊕M16 = 0

P4 = M5⊕M6⊕M7⊕M8⊕M9⊕M10⊕M11 = 0

P5 = M12⊕M13⊕M14⊕M15⊕M16 = 0

所以此时P5 P4 P3 P2 P1 = 00011,第五位数据出错时,数据字变为:0101 0001 0101 0110,P5’P4’P3’P2’P1’= 01010,故障字= 00011⊕01010 = 01001,说明码字第9位出错,即M5出错。

20.假设要传送的数据信息为:100011,若约定的生成多项式为:G(x)= x3+1,则校验码为多少?假定在接收端接收到的数据信息为100010,说明如何正确检测其错误,写出检测过程。

参考答案:

原数据信息为100011,对应的报文多项式为M(x) = x5 + x + 1, 生成多项式的位数为4位,所以在原数据信息后面添加3个0,变为M’(x) = x3M(x) = x8 + x4 + x3, 用M(x)去模2除G(x),得到的余数为111,所以得到CRC码为100011 111。

检测时,用接收到的CRC码去模2除生成多项式1001,若得到的余数为0,则表明正确,否则说明传输时发生了错误。此题中接收到的CRC码为100010 111(即数据100010加检验位111),显然,用100010 111 模2除1001,得到余数为001,不为0,说明传输时发生错误。

第 3 章习题答案

2(4)高级语言中的运算和机器语言(即指令)中的运算是什么关系?假定某一个高级语言源程序P中有乘、除运算,但机器M中不提供乘、除运算指令,则程序P能否在机器M上运行?为什么?

参考答案:(略)

3.考虑以下C语言程序代码:

int func1(unsigned word)

{

return (int) (( word <<24) >> 24);

}

int func2(unsigned word)

{

return ( (int) word <<24 ) >> 24;

}

假设在一个32位机器上执行这些函数,该机器使用二进制补码表示带符号整数。无符号数采用逻辑移位,带符号整数采用算术移位。请填写下表,并说明函数func1和func2的功能。

函数func1的功能是把无符号数高24位清零(左移24位再逻辑右移24位),结果一定是正的有符号数;而函数func2的功能是把无符号数的高24位都变成和第25位一样,因为左移24位后进行算术右移,高24位补符号位(即第25位)。

4

5.以下是两段C语言代码,函数arith( )是直接用C语言写的,而optarith( )是对arith( )函数以某个确定的M和N编译生成的机器代码反编译生成的。根据optarith( ),可以推断函数arith( ) 中M和N 的值各是多少?

#define M

#define N

int arith (int x, int y)

{

int result = 0 ;

result = x*M + y/N;

return result;

}

int optarith ( int x, int y)

{

int t = x;

x << = 4;

x - = t;

if ( y < 0 ) y += 3;

y>>2;

return x+y;

参考答案:

可以看出x*M和“int t = x; x << = 4; x-=t;”三句对应,这些语句实现了x乘15的功能(左移4位相当于乘以16,然后再减1),因此,M等于15;

y/N与“if ( y < 0 ) y += 3; y>>2;”两句对应,功能主要由第二句“y右移2位”实现,它实现了y除以4的功能,因此N是4。而第一句“if ( y < 0 ) y += 3;”主要用于对y=–1时进行调整,若不调整,则–1>>2=–1而–1/4=0,两者不等;调整后–1+3=2,2>>2=0,两者相等。

思考:能否把if ( y < 0 ) y += 3; 改成if ( y < 0 ) y += 2; ?

不能!因为y = - 4时不正确。

6.设A4~A1和B4~B1分别是四位加法器的两组输入,C0为低位来的进位。当加法器分别采用串行进位和先行进位时,写出四个进位C4 ~C1的逻辑表达式。

参考答案:

串行进位:

C1 = X1C0+Y1C0 + X1 Y1

C2 = X2C1+Y2C1 + X2 Y2

C3 = X3C2+Y3C2 + X3 Y3

C4 = X4C3+Y4C3 + X4 Y4

并行进位:

C1 = X1Y1 + (X1+Y1)C0

C2 = X2Y2 + (X2 +Y2) X1Y1 + (X2+Y2) (X1+Y1)C0

C3 = X3Y3 + (X3 + Y3) X2Y2 + (X3 + Y3) (X2 + Y2) X1Y1 + (X3 + Y3) (X2 + Y2)(X1 + Y1)C0

C4=X4Y4+(X4+Y4)X3Y3+(X4+Y4)(X3+Y3)X2Y2+(X4+Y4)(X3+Y3)(X2+Y2)X1Y1+(X4+Y4)(X3+Y3)

(X2+Y2)(X1+Y1)C0

7.用SN74181和SN74182器件设计一个16位先行进位补码加/减运算器,画出运算器的逻辑框图,并给出零标志、进位标志、溢出标志、符号标志的生成电路。

参考答案(图略):

逻辑框图参见教材中的图3.15和图3.16,将两个图结合起来即可,也即只要将图3.15中的B输入端的每一位B i取反,得到B i,和原码B i一起送到一个二路选择器,由进位C0作为选择控制信号。当C0为1时做减法,此时,选择将B i作为SN74181的B输入端;否则,当C0为1时,做加法。

零标志ZF、进位标志CF、溢出标志OF、符号标志SF的逻辑电路根据以下逻辑表达式画出即可。

ZF=F15+F14+F13+F12+F11+F10+F9+F8+F7+F6+F5+F4+F3+F2+F1+F0

CF=C16

OF= C0(A15B15F15 + A15B15F15)+ C0(A15B15F15 + A15B15F15)

SF= F15

8.用SN74181和SN74182器件设计一个32位的ALU,要求采用两级先行进位结构。

(1)写出所需的SN74181和SN74182芯片数。

(2)画出32位ALU的逻辑结构图。

参考答案(图略):

将如图3.15所示的两个16位ALU级联起来即可,级联时,低16位ALU的高位进位C16作为高16位ALU的低位进位C0,因此,只要用8片SN74181和2片SN74182。

9.已知x = 10,y = – 6,采用6位机器数表示。请按如下要求计算,并把结果还原成真值。

(1)求[x+y]补,[x–y]补。

(2)用原码一位乘法计算[x×y]原。

(3)用MBA(基4布斯)乘法计算[x×y]补。

(4)用不恢复余数法计算[x/y]原的商和余数。

(5)用不恢复余数法计算[x/y]补的商和余数。

参考答案:

[10]补= 001010 [–6]补= 111010 [6]补= 000110 [10]原= 001010 [–6]原= 100110

(1)[10+(– 6)]补= [10]补+[– 6]补= 001010+111010 = 000100 (+4)

[10–(–6)]补= [10]补+[– (–6)]补= 001010+000110 = 010000 (+16)

(2)先采用无符号数乘法计算001010× 000110的乘积,原码一位乘法过程(前面两个0省略)如下:

C P Y 说明

0 0 0 0 0 0 1 1 0 P0 = 0

+ 0 0 0 0 y4 = 0,+0

0 0 0 0 0 C, P 和Y同时右移一位

0 0 0 0 0 0 0 1 1 得P1

+ 1 0 1 0 y3 = 1,+X

0 1 0 1 0 C, P 和Y同时右移一位

0 0 1 0 1 0 0 0 1 得P2

+ 1 0 1 0 y2 = 1,+X

0 1 1 1 1 0 0 0 0 C, P 和Y同时右移一位

0 0 1 1 1 1 0 0 0 得P3

+ 0 0 0 0 y1 = 0,+0

0 0 1 1 1 C, P 和Y同时右移一位

0 0 0 1 1 1 1 0 0 得P4

若两个6位数相乘的话,则还要右移两次,得000000 111100

符号位为:0 ⊕1 = 1,因此,[X×Y]原= 1000 0011 1100

即X × Y = –11 1100B = – 60

(3)[–10]补= 110110,布斯乘法过程如下:

P Y y-1说明

0 0 0 0 0 0 1 1 1 0 1 0 0 设y-1 = 0,[P0]补= 0

y0 y-1 = 00,P、Y直接右移一位

0 0 0 0 0 0 0 1 1 1 0 1 0 得[P1]补

+ 1 1 0 1 1 0 y1 y0 =10,+[–X]补

1 1 0 1 1 0 P、Y同时右移一位

1 1 1 0 1 1 0 0 1 1 1 0 1 得[P2]补

+ 0 0 1 0 1 0 y2 y1 =01,+[X]补

0 0 0 1 0 1 P、Y同时右移一位

0 0 0 0 1 0 1 0 0 1 1 1 0 得[P3]补

+ 1 1 0 1 1 0 1 0 0 1 1 1 0 y3 y2 = 10,+[–X]补

1 1 1 0 0 0 P、Y同时右移一位

1 1 1 1 0 0 0 1 0 0 1 1 1 得[P4]补

+ 0 0 0 0 0 0 0 1 0 0 1 1 1 y4 y3 = 11,+0

1 1 1 1 0 0 P、Y同时右移一位

1 1 1 1 1 0 0 0 1 0 0 1 1 得[P5]补

+ 0 0 0 0 0 0 0 0 1 0 0 1 1 y5 y4 = 11,+0

1 1 1 1 1 0 P、Y同时右移一位

1 1 1 1 1 1 0 0 0 1 0 0 1 得[P6]补

因此,[X × Y]补=1111 1100 0100,即X × Y = –11 1100B= – 60

(4)因为除法计算是2n位数除n位数,所以[6]原=0110,[10]原=0000 1010,[–6]补=1010,商的符号位:0 ⊕1 = 1,运算过程(前面两个0省略)如下:

原0100。

(5)将10和–6分别表示成补码形式为:[10]补= 0 1010 , [–6]补= 1 1010,计算过程如下:先对被除数进行符号扩展,[10]补=00000 01010,[6]补= 0 0110

余数寄存器R 余数/商寄存器Q 说明

0 0 0 0 0 0 1 0 1 0 开始R0 = [X]

+ 1 1 0 1 0 R1=[X] +[Y]

1 1 0 1 0 0 1 0 1 0 R1与[Y]同号,则q5 =1

1 0 1 0 0 1 0 1 0 1 2R1(R和Q同时左移,空出一位上商1)

+0 0 1 1 0 R2 = 2R1+[–Y]

1 1 0 1 0 1 0 1 0 1 R2与[Y]同号,则q4= 1,

1 0 1 0 1 0 1 0 1 1 2R2(R和Q同时左移,空出一位上商1)

+ 0 0 1 1 0 R3 = 2R2 +[-Y]

1 1 0 1 1 0 1 0 1 1 R3与[Y]同号,则q3 = 1

1 0 1 1 0 1 0 1 1 1 2R3(R和Q同时左移,空出一位上商1)

+ 0 0 1 1 0 R4 = 2R3 +[–Y]

1 1 1 0 0 1 0 1 1 1 R4与[Y]同号,则q

2 = 1

1 1 0 0 1 0 1 1 1 1 2R4(R和Q同时左移,空出一位上商0)

+ 0 0 1 1 0 R5= 2R4 +[-Y]

1 1 1 1 1 0 1 1 1 1 R5与[Y]同号,则q1= 1,

1 1 1 1 0 1 1 1 1 1 2R5(R和Q同时左移,空出一位上商1)

+ 0 0 1 1 0 R6= 2R5 +[–Y]

0 0 1 0 0 1 1 1 1 0 R6与[Y]异号,则q 0 = 0,Q左移,空出一位上商1

+ 0 0 0 0 0 + 1 商为负数,末位加1;余数不需要修正

0 0 1 0 0 1 1 1 1 1

所以,[X/Y]补=11111,余数为00100。

即:X/Y= – 0001B = – 1,余数为0100B = 4

将各数代入公式“除数×商+余数= 被除数”进行验证,得:(–6)×(–1) +4= 10。

10.若一次加法需要1ns,一次移位需要0.5ns。请分别计算用一位乘法、两位乘法、基于CRA的阵列乘法、基于CSA的阵列乘法四种方式计算两个8位无符号二进制数乘积时所需的时间。

参考答案:

一位乘法:8次右移,8次加法,共计12ns;

二位乘法:4次右移,4次加法,共计6ns;

基于CRA的阵列乘法:每一级部分积不仅依赖于上一级部分积,还依赖于上一级最终的进位,而每一级进位又是串行进行的,所以最长的路径总共经过了8+2×(8–1)=22次全加器,共计约22ns;

基于CSA的阵列乘法:本级进位和本级和同时传送到下一级,同级部分积之间不相互依赖,只进行O(N)次加法运算,因此,共计约8ns。

11.在IEEE 754浮点数运算中,当结果的尾数出现什么形式时需要进行左规,什么形式时需要进行右规?

如何进行左规,如何进行右规?

参考答案:

(1) 对于结果为±1x .xx……x的情况,需要进行右规。右规时,尾数右移一位,阶码加1。右规操作

可以表示为:M b←M b ×2 -1,E b←E b+1。右规时注意以下两点:

a)尾数右移时,最高位“1”被移到小数点前一位作为隐藏位,最后一位移出时,要考虑舍入。

b)阶码加1时,直接在末位加1。

(2) 对于结果为±0.00……01x……x的情况,需要进行左规。左规时,数值位逐次左移,阶码逐次减1,

直到将第一位“1”移到小数点左边。假定k为结果中“±”和左边第一个1之间连续0的个数,则左规操作可以表示为:M b←M b ×2k,E b←E b–k。左规时注意以下两点:

a) 尾数左移时数值部分最左k个0被移出,因此,相对来说,小数点右移了k位。因为进行尾数相

加时,默认小数点位置在第一个数值位(即:隐藏位)之后,所以小数点右移k位后被移到了第一位1后面,这个1就是隐藏位。

b) 执行E b←E b–k时,每次都在末位减1,一共减k次。

12.在IEEE 754浮点数运算中,如何判断浮点运算的结果是否溢出?

参考答案:

浮点运算结果是否溢出,并不以尾数溢出来判断,而主要看阶码是否溢出。尾数溢出时,可通过右规操作进行纠正。阶码上溢时,说明结果的数值太大,无法表示;阶码下溢时,说明结果数值太小,可以把结果近似为0。

在进行对阶、规格化、舍入和浮点数的乘/除运算等过程中,都需要对阶码进行加、减运算,可能会发生阶码上溢或阶码下溢,因此,必须对阶码进行溢出判断。

(有关对阶码进行溢出判断的方法可参见教材中相关章节。)

13.假设浮点数格式为:阶码是4位移码,偏置常数为8,尾数是6位补码(采用双符号位),用浮点运算规则分别计算在不采用任何附加位和采用2位附加位(保护位、舍入位)两种情况下的值。(假定对阶和右规时采用就近舍入到偶数方式)

(1)(15/16) ×27 +(2/16) ×25(2)(15/16) ×27–(2/16) ×25

(3)(15/16) ×25 +(2/16) ×27(4)(15/16) ×25–(2/16) ×27

参考答案(假定采用隐藏位):

X= (15/16) ×27 = 0.111100B ×27= (1.111000)2 × 26

Y1= (2/16) ×25 = 0.001000B ×25= (1.000000)2 × 22

Y2= (–2/16) ×25 = –0.001000B ×25= (–1.000000)2 × 22

K= (15/16) ×25 = 0.111100B ×25= (1.111000)2 × 24

J1= (2/16) ×27 = 0.001000B ×27= (1.000000)2 × 24

J2= (–2/16) ×27 = –0.001000B ×27= (–1.000000)2 × 24

根据题目所给的各种位数,可以得到在机器中表示为:

[X]浮= 00 1110 (1)111000 [Y1]浮= 00 1010 (1)000000 [Y2]浮= 11 1010 (1)000000

[K]浮= 00 1100 (1)111000 [J1]浮= 00 1100 (1)000000 [J2]浮= 11 1100 (1)000000

所以,E x = 1110,M x = 00 (1). 111000 ,E y1 = 1010,M y = 00(1).000000,E y2 = 1010,M y = 11(1).000000

E k= 1100,M K = 00 (1). 111000 ,E J1= 1100,M J1 = 00(1).000000,E J2= 1100,M J2 =

11(1).000000

尾数M中小数点前面有三位,前两位为数符,表示双符号,第三位加了括号,是隐藏位“1”。

没有附加位时的计算:

(1)X+Y1

[ΔE]补= [E x]移+ [–[E y1]移]补(mod 2n) = 1110 + 0110 = 0100

ΔE = 4,根据对阶规则可知需要对y1进行对阶,结果为:E y1 = E x = 1110,M y 1= 000.000100 尾数相加:M b = M x + M y1 = 001. 111000+ 000.000100 = 001.111100,两位符号相等,数值部分最高位为1,不需要进行规格化,所以最后结果为:E=1110,M=00(1).111100, 即(31/32) ×27

(2)X+Y2

[ΔE]补= [E x]移+ [–[E y2]移]补(mod 2n) = 1110 + 0110 = 0100;

ΔE = 4,根据对阶规则可知需要对y2进行对阶,结果为:E y2 = E x = 1110,M y2= 111.111100

尾数相加:M b = M x + M y2 = 001. 111000+ 111.111100=001.110100,两位符号相等,数值部分最高为1,不需要进行规格化,所以最后结果为:E=1110,M=00(1).110100, 即(29/32) ×27

(3)K+J1

[ΔE]补= [E K]移+ [–[E J1]移]补(mod 2n) = 1100 + 0100 = 0000;

ΔE = 0,根据对阶规则可知不需要进行对阶。

尾数相加:M b = M K + M J1 = 001. 111000+ 001.000000= 010.111000,两位符号不等,说明尾数溢出,需要进行右规,最后结果为:E=1101,M=00(1).011100, 即(23/32) ×26

(4)K+J2

[ΔE]补= [E K]移+ [–[E J2]移]补(mod 2n) = 1100 + 0100 = 0000;

ΔE = 0,根据对阶规则可知不需要进行对阶。

尾数相加:M b = M K + M J2 = 00 1. 111000+ 111.000000 = 000.111000,两位符号相等,数值部分最高位为0,需要进行左规,所以最后结果为:E=1011,M=00(1).110000, 即(7/8) ×24

如果有两位附加位精度上会有提高,在对阶的时候要注意小数点后就不是6位,而是8位,最后两位为保护位和舍入位。但是由于本题6位尾数已经足够,再加2位附加位,其结果是一样的。

14.采用IEEE 754单精度浮点数格式计算下列表达式的值。

(1)0.75+(– 65.25)(2)0.75–(– 65.25)

参考答案:

x = 0.75 = 0.110...0B = (1.10...0)2 × 2-1

y = – 65.25 = – 1000001.01000...0B = (–1.00000101...0) 2 × 26

用IEEE 754标准单精度格式表示为:

[x]浮= 0 01111110 10...0 [y]浮= 1 10000101 000001010 0

所以,E x = 01111110,M x = 0 (1). 1...0 ,E y = 10000101,M y = 1(1).000001010 0

尾数M x和M y中小数点前面有两位,第一位为数符,第二位加了括号,是隐藏位“1”。

以下是计算机中进行浮点数加减运算的过程(假定保留2位附加位:保护位和舍入位)

(1)0.75+ (– 65.25)

①对阶:[ΔE]补= [E x]移+ [–[E y]移]补(mod 2n) = 0111 1110 + 0111 1011 = 1111 1001

ΔE = –7,根据对阶规则可知需要对x进行对阶,结果为:E x =E y= 10000101,M x = 00.000000110 (000)

x的尾数M x右移7位,符号不变,数值高位补0,隐藏位右移到小数点后面,最后移出的2位保留

②尾数相加:M b = M x + M y = 00.000000110...000+ 11.000001010 ...000 (注意小数点在隐藏位后)

根据原码加/减法运算规则,得:00.000000110...000+ 11.000001010...000 = 11.000000100 (000)

上式尾数中最左边第一位是符号位,其余都是数值部分,尾数后面两位是附加位(加粗)。

③规格化:根据所得尾数的形式,数值部分最高位为1,所以不需要进行规格化。

④舍入:把结果的尾数M b中最后两位附加位舍入掉,从本例来看,不管采用什么舍入法,结果

都一样,都是把最后两个0去掉,得:M b = 11.000000100 0

⑤溢出判断:在上述阶码计算和调整过程中,没有发生“阶码上溢”和“阶码下溢”的问题。

因此,阶码E b = 10000101。

最后结果为E b = 10000101,M b = 1(1).00000010…0,即:– 64.5。

(2)0.75–(– 65.25)

①对阶:[ΔE]补= [E x]移+ [–[E y]移]补(mod 2n) = 0111 1110 + 0111 1011 = 1111 1001

ΔE = -7,根据对阶规则可知需要对x进行对阶,结果为:E x =E y= 10000110,M x = 00.000000110 (000)

x的尾数M x右移一位,符号不变,数值高位补0,隐藏位右移到小数点后面,最后移出的位保留

②尾数相加:M b = M x– M y = 00.000000110...000 – 11.000001010...000 (注意小数点在隐藏位后)

根据原码加/减法运算规则,得:00.000000110...000 – 11.000001010...000=01.00001000 (000)

上式尾数中最左边第一位是符号位,其余都是数值部分,尾数后面两位是附加位(加粗)。

③规格化:根据所得尾数的形式,数值部分最高位为1,不需要进行规格化。

④舍入:把结果的尾数M b中最后两位附加位舍入掉,从本例来看,不管采用什么舍入法,结果

都一样,都是把最后两个0去掉,得:M b = 01.00001000 0

⑤溢出判断:在上述阶码计算和调整过程中,没有发生“阶码上溢”和“阶码下溢”的问题。

因此,阶码E b = 10000101。

最后结果为E b = 10000101,M b = 0(1).00001000…0,即:+66。

思考题:对阶时发生什么情况,就可以不再继续进行计算?

15.假定十进制数用8421 NBCD码表示,采用十进制加法运算计算下列表达式的值,并讨论在十进制BCD码加法运算中如何判断溢出。

(1)234+567 (2)548+729

参考答案:

(1)234+567

0010 0011 0100

+ 0101 0110 0111

0111 1001 1011

结果为:(801)10

(2)548+729

0000 0101 0100 1000

0001 0010 0111 0111

结果为:(1277)10

在第(2)题中,如果是采用12位数表示加数548和729,则能看出最后得到的答案是1100 0111 0111,这时就是BCD码加法溢出了。所以我们在判断的时候不能仅仅看BCD码最高位是不是丢失,而要看结果的最高4位是不是大于9,如果大于9,就可以认为是溢出了。

16.假定十进制数用8421 NBCD码表示,十进制运算673–356可以采用673加上(–356)的模10补码实现。

画出实现上述操作的3位十进制数的BCD码减法运算线路,列出线路中所有的输入变量和输出变量。

参考答案:

[– (356) 10]补= 0110 0100 0100

0110 0111 0011

+ 0110 0100 0100

1100 1011 0111

最高位产生进位,因此,结果为正数:0011 0001 0111,故结果为:(+317)10

电路图分为两部分,一个是求出模10补码,另一个是计算以及判断输出结果的电路图(参见教材图

3.33)。

求模10补码的电路图(RTL级)如下:

计算电路图(RTL级)如下:

第 4 章 习 题 答 案

3. 已知某机主存空间大小为64KB ,按字节编址。要求: (1)若用1K×4位的SRAM 芯片构成该主存储器,需要多少个芯片? (2)主存地址共多少位?几位用于选片?几位用于片内选址? (3)画出该存储器的逻辑框图。 参考答案: (1)64KB / 1K×4位 = 64×2 = 128片。

(2)因为是按字节编址,所以主存地址共16位,6位选片,10位片内选址。

(3)显然,位方向上扩展了2倍,字方向扩展了64倍。下图中片选信号CS 为高电平有效。

A 15

A 10A 9

A 0

D 0

D 7

WE

4. 用64K×1位的DRAM 芯片构成256K×8位的存储器。要求: (1) 计算所需芯片数,并画出该存储器的逻辑框图。

(2) 若采用异步刷新方式,每单元刷新间隔不超过2ms ,则产生刷新信号的间隔是多少时间?若采

用集中刷新方式,则存储器刷新一遍最少用多少读写周期? 参考答案:

(1)256KB / 64K×1位 = 4×8 = 32片。存储器逻辑框图见下页(图中片选信号CS 为高电平有效)。 (2)因为每个单元的刷新间隔为2ms ,所以,采用异步刷新时,在2ms 内每行必须被刷新一次,且

仅被刷新一次。因为DRAM 芯片存储阵列为64K=256×256,所以一共有256行。因此,存储器控制器必须每隔2ms/256=7.8μs 产生一次刷新信号。采用集中刷新方式时,整个存储器刷新一遍需要256个存储(读写)周期,在这个过程中,存储器不能进行读写操作。

A 17

A 16A 15

A 0

D 0

D 7

……

5. 用8K×8位的EPROM 芯片组成32K×16位的只读存储器,试问:

(1)数据寄存器最少应有多少位? (2) 地址寄存器最少应有多少位? (3) 共需多少个EPROM 芯片? (4) 画出该只读存储器的逻辑框图。 参考答案:

(1)数据寄存器最少有16位。

(2)地址寄存器最少有:15位(若按16位的字编址);16位(若按字节编址)。 (3)共需要 32K×16位 / 8K×8位= 4×2 = 8片。

(4)该只读存储器的逻辑框图如下(假定按字编址,图中片选信号CS 为高电平有效)。

A 14A 13A 12

A 0

D 0

D 15

WE

D 8D 7

6. 某计算机中已配有0000H ~7FFFH 的ROM 区域,现在再用8K×4位的RAM 芯片形成32K×8位的

存储区域,CPU 地址总线为A0-A15,数据总线为D0-D7,控制信号为R/W#(读/写)、MREQ#(访存)。要求说明地址译码方案,并画出ROM 芯片、RAM 芯片与CPU 之间的连接图。假定上述其他条件不变,只是CPU 地址线改为24根,地址范围000000H ~007FFFH 为ROM 区,剩下的所有地址空间都用8K×4位的RAM 芯片配置,则需要多少个这样的RAM 芯片? 参考答案:

CPU 地址线共16位,故存储器地址空间为0000H ~FFFFH ,其中,8000H ~FFFFH 为RAM 区,共215=32K 个单元,其空间大小为32KB ,故需8K×4位的芯片数为32KB/8K×4位= 4×2 = 8片。

因为ROM 区在0000H ~7FFFH ,RAM 区在8000H ~FFFFH ,所以可通过最高位地址A 15来区分,当A 15为0时选中ROM 芯片;为1时选中RAM 芯片,此时,根据A 14和A 13进行译码,得到4个译码信号,分别用于4组字扩展芯片的片选信号。(图略,可参照图4.15)

若CPU 地址线为24位,ROM 区为000000H ~007FFFH ,则ROM 区大小为32KB ,总大小为16MB=214KB=512×32KB ,所以RAM 区大小为511×32KB ,共需使用RAM 芯片数为511×32KB/8K×4位=511×4×2个芯片。

7. 假定一个存储器系统支持4体交叉存取,某程序执行过程中访问地址序列为3, 9, 17, 2, 51, 37, 13, 4, 8,

41, 67, 10,则哪些地址访问会发生体冲突? 参考答案:

对于4体交叉访问的存储系统,每个存储模块的地址分布为: Bank0: 0、4、8、12、16 … …

Bank1: 1、5、9、13、17 ...37 ...41... Bank2: 2、6、10、14、18 ... ... Bank3: 3、7、11、15、19...51 (67)

如果给定的访存地址在相邻的4次访问中出现在同一个Bank 内,就会发生访存冲突。所以,17和9、37和17、13和37、8和4发生冲突。

8. 现代计算机中,SRAM 一般用于实现快速小容量的cache ,而DRAM 用于实现慢速大容量的主存。

以前超级计算机通常不提供cache ,而是用SRAM 来实现主存(如,Cray 巨型机),请问:如果不考虑成本,你还这样设计高性能计算机吗?为什么?

计算机图形学习题分析

第一章绪论 1、计算机图形学、图形处理与模式识别本质区别是什么?请各举一例说明。 解:计算机图形学是研究根据给定的描述,用计算机生成相应的图形、图像所生成的图形、图像可以显示屏幕上、硬拷贝输出或作为数据集存在计算机中的学科。计算机图形学研究的是从数据描述到图形生成的过程。例如计算机动画。 图形处理是利用计算机对原来存在物体的映像进行分析处理,然后再现图像。例如工业中射线探伤。 模式识别是指计算机对图形信息进行识别和分析描述,是从图形(图像)到描述的表达过程。例如邮件分捡设备扫描信件上手写的邮政编码,并将编码用图像复原成数字。 2、举3个例子说明计算机图形学的应用。 解:①事务管理中的交互绘图 应用图形学最多的领域之一是绘制事务管理中的各种图形。通过从简明的形式呈现出数据的模型和趋势以增加对复杂现象的理解,并促使决策的制定。 ②地理信息系统 地理信息系统是建立在地理图形基础上的信息管理系统。利用计算机图形生成技术可以绘制地理的、地质的以及其他自然现象的高精度勘探、测量图形。 ③计算机动画 用图形学的方法产生动画片,其形象逼真、生动,轻而易举地解决了人工绘图时难以解决的问题,大大提高了工作效率。 3、计算机生成图形的方法有哪些? 解:计算机生成图形的方法有两种:矢量法和描点法。 ①矢量法:在显示屏上先给定一系列坐标点,然后控制电子束在屏幕上按一定的顺序扫描,逐个“点亮”临近两点间的短失线,从而得到一条近似的曲线。尽管显示器产生的只是一些短直线的线段,但当直线段很短时,连成的曲线看起来还是光滑的。 (2)描点法 4.什么叫虚拟现实技术和可视化? 解:虚拟现实技术: 利用计算机生成一种模拟环境,通过多种传感器和设备使用户“投入”到该环境中 ,实现用户和该环境直接进行交互的技术。例如模拟飞机驾驶舱。 可视化技术: 通过对空间数据场构造中间几何因素,或用图形绘制技术在屏幕上产生二维图象。例如分子模型构造。 5.对于分辨绿为1024*1024的光栅系统,若每一像素咏8位和12位二进制来表示存储信息,各需多大光栅存储容量?每一屏幕最多能显示多少颜色?若R,G,B灰度都占8位,其显示颜色的总数是多少? 解: 1) 每一像素用8位二进制来表示存储信息,所需容量为1024*1024*1=220(byte)=1MB

计算机组成原理 课后答案

第一章计算机系统概论p.19 1.1什么是计算机系统、计算机硬件和计算机软件?硬件和软件哪个更重要? 计算机系统:计算机硬件、软件和数据通信设备的物理或逻辑的综合体 计算机硬件:计算机的物理实体 计算机软件:计算机运行所需的程序及相关资料 硬件和软件在计算机系统中相互依存,缺一不可,因此同样重要 1.2如何理解计算机系统的层次结构? 实际机器M1向上延伸构成了各级虚拟机器,机器M1内部也可向下延伸而形成下一级的微程序机器M0,硬件研究的主要对象归结为传统机器M1和微程序机器M0,软件研究对象主要是操作系统及以上的各级虚拟机 1.3说明高级语言、汇编语言和机器语言的差别及其联系。 机器语言是可以直接在机器上执行的二进制语言 汇编语言用符号表示指令或数据所在存储单元的地址,使程序员可以不再使用繁杂而又易错的二进制代码来编写程序 高级语言对问题的描述十分接近人们的习惯,并且还具有较强的通用性 1.4如何理解计算机组成和计算机体系结构? 计算机体系结构是对程序员可见的计算机系统的属性 计算机组成对程序员透明,如何实现计算机体系结构所体现的属性 1.5冯·诺依曼计算机的特点是什么? 由运算器、控制器、存储器、输入设备、输出设备五大部件组成 指令和数据以同一形式(二进制形式)存于存储器中 指令由操作码、地址码两大部分组成 指令在存储器中顺序存放,通常自动顺序取出执行 以运算器为中心(原始冯氏机) 1.6画出计算机硬件组成框图,说明各部件的作用及计算机硬件的主要技术指标。 计算机硬件各部件 运算器:ACC, MQ, ALU, X 控制器:CU, IR, PC 主存储器:M, MDR, MAR I/O设备:设备,接口 计算机技术指标: 机器字长:一次能处理数据的位数,与CPU的寄存器位数有关 存储容量:主存:存储单元个数×存储字长 运算速度:MIPS, CPI, FLOPS 1.7解释概念 主机:计算机硬件的主体部分,由CPU+MM(主存或内存)组成 CPU:中央处理器,是计算机硬件的核心部件,由运算器+控制器组成 主存:计算机中存放正在运行的程序和数据的存储器,可随机存取;由存储体、各种逻辑部件及控制电路组成 存储单元:可存放一个机器字并具有特定存储地址的存储单位 存储元件/存储基元/存储元:存储一位二进制信息的物理元件,是存储器中最小的存储单位,不能单独存取 存储字:一个存储单元所存二进制代码的逻辑单位 存储字长:一个存储单元所存二进制代码的位数

计算机系统结构课后答案

1、数据结构和机器的数据表示之间是什么关系?确定和引入数据表示的基本原则是什么? 答:数据表示是能由硬件直接识别和引用的数据类型。数据结构反映各种数据元素或信息单元之间的结构关系。数据结构要通过软件映象变换成机器所具有的各种数据表示实现,所以数据表示是数据结构的组成元素。不同的数据表示可为数据结构的实现提供不同的支持,表现在实现效率和方便性不同。数据表示和数据结构是软件、硬件的交界面。 除基本数据表示不可少外,高级数据表示的引入遵循以下原则:(1)看系统的效率有否提高,是否养活了实现时间和存储空间。(2)看引入这种数据表示后,其通用性和利用率是否高。 2、标志符数据表示与描述符数据表示有何区别?描述符数据表示与向量数据表示对向量数据结构所提供的支持有什么不同? 答:标志符数据表示指将数据类型与数据本身直接联系在一起,让机器中每个数所都带类型樗位。其优点是:(1)简化了指令系统和程序设计;(2)简化了编译程序;(3)便于实现一致性校验;(4)能由硬件自动变换数据类型;(5)支持数据库系统的实现与数据类型无关;(6)为软件调试和应用软件开发提供支持。缺点是:(1)会增加程序所点的主存空间;(2)在微观上对机器的性能(运算速度)不利。 数据描述符指数据的描述与数据分开存放,描述所访问的数据是整块还是单个的,及访问该数据块或数据元素的地址住处它具备标志符数据表示的优点,并减少了标志符数据表示所占的空间,为向量和数组结构的实现提供支持。 数据描述符方法优于标志符数据表示,数据的描述与数据分开,描述所访问的数据是整块还是单个的,及访问该数据块或数据元素的地址信息,减少了樗符数据表示所占的窨。用描述符方法实现阵列数据的索引比用变址方法实现要方便,且便于检查出程序中的阵列越界错误。但它不能解决向量和数组的高速运算问题。而在有向量、数组数据表示的向量处理机上,硬件上设置有丰富的赂量或阵列运算指令,配有流水或阵列方式处理的高速运算器,不仅能快速形成向量、数组的元素地址,更重要的是便于实现把向量各元素成块预取到中央处理机,用一条向量、数组指令流水或同时对整个向量、数组高速处理.如让硬件越界判断与元素运算并行。这些比起用与向量、阵列无关的机器语言和数据表示串行实现要高效的多。 3、堆栈型机器与通用寄存器型机器的主要区别是什么?堆栈型机器系统结构为程序调用的哪些操作提供了支持? 答:有堆栈数据表示的机器称为堆栈机器。它与一般通用寄存器型机器不同。通用寄存器型

计算机系统结构考试计算题

3.12 有一指令流水线如下所示 (1) 求连续输入10条指令,该流水线的实际吞吐率和效率; (2) 该流水线的“瓶颈”在哪一段?请采取两种不同的措施消除此“瓶颈”。 对于你所给出的两种新的流水线,连续输入10条指令时,其实际吞吐率和效率各是多少? 解:(1) 2200(ns)2009200)10050(50t )1n (t T max m 1 i i pipeline =?++++=?-+?=∑= )(ns 220 1 T n T P 1pipeline -== 45.45%11 5 4400T P m t T P E m 1 i i ≈=? =?? =∑= (2)瓶颈在3、4段。 ? 变成八级流水线(细分) 850(ns)509850t 1)(n t T max m 1 i i pipeline =?+?=?-+?=∑= )(ns 85 1 T n T P 1pipeline -== 58.82%17 10 8400T P m ti T P E m 1 i ≈=? =?? =∑= ? 重复设置部件 出 50ns 50ns 100ns 200ns

)(ns 85 1 T n T P 1pipeline -== 58.82%17 10885010400E ≈=??= 3.13 4段组成,3段时,一次,然4段。如果 需要的时间都是,问: (1) 当在流水线的输入端连续地每时间输入任务时,该流水线会发生 什么情况? (2) 此流水线的最大吞吐率为多少?如果每输入一个任务,连续处理 10个任务时的实际吞吐率和效率是多少? (3) 当每段时间不变时,如何提高该流水线的吞吐率?仍连续处理10个 任务时,其吞吐率提高多少? (2) t ?t ?2

计算机图形学教程课后习题参考答案.

第一章 1、试述计算机图形学研究的基本内容? 答:见课本P5-6页的1.1.4节。 2、计算机图形学、图形处理与模式识别本质区别是什么?请各举一例说明。 答:计算机图形学是研究根据给定的描述,用计算机生成相应的图形、图像,且所生成的图形、图像可以显示屏幕上、硬拷贝输出或作为数据集存在计算机中的学科。计算机图形学研究的是从数据描述到图形生成的过程。例如计算机动画制作。 图形处理是利用计算机对原来存在物体的映像进行分析处理,然后再现图像。例如工业中的射线探伤。 模式识别是指计算机对图形信息进行识别和分析描述,是从图形(图像)到描述的表达过程。例如邮件分捡设备扫描信件上手写的邮政编码,并将编码用图像复原成数字。 3、计算机图形学与CAD、CAM技术关系如何? 答:见课本P4-5页的1.1.3节。 4、举3个例子说明计算机图形学的应用。 答:①事务管理中的交互绘图 应用图形学最多的领域之一是绘制事务管理中的各种图形。通过从简明的形式呈现出数据的模型和趋势以增加对复杂现象的理解,并促使决策的制定。 ②地理信息系统 地理信息系统是建立在地理图形基础上的信息管理系统。利用计算机图形生成技术可以绘制地理的、地质的以及其它自然现象的高精度勘探、测量图形。 ③计算机动画 用图形学的方法产生动画片,其形象逼真、生动,轻而易举地解决了人工绘图时难以解决的问题,大大提高了工作效率。 5、计算机绘图有哪些特点? 答:见课本P8页的1.3.1节。 6、计算机生成图形的方法有哪些? 答:计算机生成图形的方法有两种:矢量法和描点法。 ①矢量法:在显示屏上先给定一系列坐标点,然后控制电子束在屏幕上按一定的顺序扫描,逐个“点亮”临近两点间的短矢量,从而得到一条近似的曲线。尽管显示器产生的只是一些短直线的线段,但当直线段很短时,连成的曲线看起来还是光滑的。 ②描点法:把显示屏幕分成有限个可发亮的离散点,每个离散点叫做一个像素,屏幕上由像素点组成的阵列称为光栅,曲线的绘制过程就是将该曲线在光栅上经过的那些像素点串接起来,使它们发亮,所显示的每一曲线都是由一定大小的像素点组成的。当像素点具有多种颜色或多种灰度等级时,就可以显示彩色图形或具有不同灰度的图形。 7、当前计算机图形学研究的课题有哪些? 答:见课本P10-11页的1.4节。

计算机组成原理_第四版课后习题答案(完整版)[]

第一章 1.比较数字计算机和模拟计算机的特点 解:模拟计算机的特点:数值由连续量来表示,运算过程是连续的;数字计算机的特点:数值由数字量(离散量)来表示,运算按位进行。两者主要区别见 P1 表 1.1 。 2.数字计算机如何分类?分类的依据是什么? 解:分类:数字计算机分为专用计算机和通用计算机。通用计算机又分为巨型机、大型机、 中型机、小型机、微型机和单片机六类。分类依据:专用和通用是根据计算机的效率、速度、价格、运行的经济性和适应性来划分的。 通用机的分类依据主要是体积、简易性、功率损耗、性能指标、数据存储容量、 指令系统规模和机器价格等因素。 3.数字计算机有那些主要应用?(略) 4.冯 . 诺依曼型计算机的主要设计思想是什么?它包括哪些主要组成部分? 解:冯 . 诺依曼型计算机的主要设计思想是:存储程序和程序控制。存储程序:将解题的程序(指令序列)存放到存储器中;程序控制:控制器顺序执行存储的程序,按指令功能控制全机协调地完成运算任务。 主要组成部分有:控制器、运算器、存储器、输入设备、输出设备。 5.什么是存储容量?什么是单元地址?什么是数据字?什么是指令字? 解:存储容量:指存储器可以容纳的二进制信息的数量,通常用单位KB MB GB来度量,存储 容 量越大,表示计算机所能存储的信息量越多,反映了计算机存储空间的大小。单元地址:单元地址简称地址,在存储器中每个存储单元都有唯一的地址编号,称为单元地 址。 数据字:若某计算机字是运算操作的对象即代表要处理的数据,则称数据字。指令字:若某计算机字代表一条指令或指令的一部分,则称指令字。 6.什么是指令?什么是程序? 解:指令:计算机所执行的每一个基本的操作。程序:解算某一问题的一串指令序列称为该问题的计算程序,简称程序。 7.指令和数据均存放在内存中,计算机如何区分它们是指令还是数据? 解:一般来讲,在取指周期中从存储器读出的信息即指令信息;而在执行周期中从存储器中读出的信息即为数据信息。

计算机系统结构课后答案unit3

第3章总线、中断与输入输出系统 3.1.简要举出集中式串行链接,定时查询和独立请求3种总线控制方式的优缺点。同时分析硬件产生故障时通讯的可靠性。 答:集中式串行链连接方式。其过程为: ①所有部件都经公共的“总线请求”线向总线控制器发使用总线申请。 ②当“总线忙”信号未建立时,“总线请求”才被总线控制器响应,送出“总线可用”信号,它串行地通过每个部件。 ③如果某部件未发过“总线请求”,则它将“总线可用”信号往下一部件转,如果某部件发过“总线请求”,则停止“总线可用”信号的传送。 ④该部件建立“总线忙”,并除去“总线请求”,此时该部件获得总线使用权,准备传送数据。 ⑤数据传送期间,“总线忙”维持“总线可用”的建立。 ⑥传送完成后,该部件去除“总线忙”信号和“总线可用”信号。 ⑦当“总线请求”再次建立时,就开始新的总线分配过程。 优点:①选择算法简单;②控制总线数少;③可扩充性好;④可靠性高。 缺点:①对“总线可用”线及其有关电路失效敏感,②不灵活;③总线中信号传送速度慢。 集中式定时查询方式,过程: ①总线上每个部件通过“总线请求”发请求。 ②若“总线忙”信号未建立,则计数器开始计数,定时查询个部件,以确定是谁发的请求。 ③当查询线上的计数值与发出请求的部件号一致时,该部件建立“总线忙”,计数停止,查询也停止。除去“总线请求”,该部件获得总线使用权。 ④“总线忙”维持到数据传送完毕。 ⑤数据传送完,去除“总线忙”。 ⑥当“总线请求”线上有新的请求,就开始下一个总线分配过程。 优点:①优先次序灵活性强;②可靠性高。 缺点:①控制线数较多;②扩展性较差;③控制较为复杂;④总线分配受限于计数信号,不能很高。 集中式独立请求方式,过程:

计算机系统结构试卷B

《计算机系统结构B卷》 一、填空题(每小题1.5分,共30分)。 1.对系列机而言,必须保证做到软件,力争做到软件向上兼容。 2.由软件实现的计算机称之为。 3. 多处理机系统按组织形式分有三种,功能分布是多处理机系统分工方式。 4.依据从哪一层开始设计,计算机体系结构设计的主要方法有三种,占据主导地位的是设计。 5. 在先行控制方式实现流水线的处理器中,有先行指令、先行操作、先行读数和后行写数等四个缓冲栈,缓冲深度最大的是。 6.按流水线的功能多寡分,可分为单功能流水线和。 7. 用于表示非线性流水线中的任务对未进入流水线的后继任务流入流水线的时间间隔的约束称为。 8.中断转移相关处理的基本方法包括不精确断点法和。 9. 互连网络中任意两个结点之间距离的最大值称为。 10.在多级交叉开关互联网络中,交叉开关的控制方式有、组控制和单元控制。 11. 在多计算机系统的互连网络中,通信模式包括、选播、广播和会议等四种。 12. 描述网络寻径效率常用的两个参数是通道流量和。 13.自定义数据表示包括标志符和两种数据表示。 14. 浮点数尾数基值越大,浮点数表示的数据范围。 15. 根据运算类型指令操作数存储方法不同,指令集结构可分为堆栈型、累加器型和。 16. 标量处理机是否高度并行是以指令级并行度(ILP)为来区分。 17.存储系统的基本存储层次有、主存储器和辅助存储器。 18. 采用并行存储器的目的是。 19. 从时间开销来看,伪命中的时间正常命中的时间。 20. 增加Cache存储系统的相联度,可降低Cache的不命中率,但会增加Cache 的。

二、简答题(每小题6分,共30分)。 1.多计算机系统和多处理机系统的差别有哪几方面?其中最根本的差别是哪个方面? 2. 什么是流水线相关?流水线相关可分为哪几大类? 3. 什么是动态互连网络?动态互连网络的互联形式有哪几种? 4. 指令系统设计包括哪两个方面?指令格式优化设计的目的是什么? 5. 维护Cache与主存一致性的更新算法有哪些? 三、分析题(第一小题8分,第二小题12分,共20分)。 1.某种处理机10条指令的使用频度分别为:0.25,0.20,0.15,0.10,0.08,0.08,0.05,0.04 ,0.03 ,0.02,试画出该处理机进行Huffman编码时的一棵Huffman树。 2. 在某采用全相联映象、相联目录表实现地址变换Cache存储器中,Cache 的容量是8KB,主存是由4个存储体组成的低位交叉访问存储器,主存总容量是32MB,每一个存储体的字长是32位,。 (1)写出主存地址和Cache地址的格式,并标出各字段的长度。 (2)说明目录表的行数、相联比较的位数和目录表的宽度。 四、计算题(第一小题8分,第二小题12分,共20分)。 1. 设16个处理器编号分别为0、1、……、15,用单级互连网络连接,当互连函数分别为:(1)Cube3、(2)PM+3、(3)Shuffle(Shuffle)时,第13号处理器分别与哪一个处理器相连? 2. 有一条5个功能段的线性动态多功能流水线如图所示,其中1→2→3→5功能段组成加法流水线,1→4→5功能段组成乘法流水线,设每个功能段的延迟时间 均相等为△t。用这条流水线计算F=4 1() i i i a b = + ∏,画出流水线时空图,并计算流水线的实际吞吐率、加速比和效率。 Z

计算机图形学第三章答案

1. voidLine_Midpoint(int x1, int y1, int x2, int y2, int color) { int x = x1, y = y1; int a = y1 - y2, b = x2 - x1; int cx = (b >= 0 ? 1 : (b = -b, -1)); int cy = (a <= 0 ? 1 : (a = -a, -1)); putpixel(x, y, color); int d, d1, d2; if (-a <= b) // 斜率绝对值 <= 1 { d = 2 * a + b; d1 = 2 * a; d2 = 2 * (a + b); while(x != x2) { if (d < 0) y += cy, d += d2; else d += d1; x += cx; putpixel(x, y, color); } } else // 斜率绝对值 > 1 { d = 2 * b + a; d1 = 2 * b; d2 = 2 * (a + b); while(y != y2) { if(d < 0) d += d1; else x += cx, d += d2; y += cy; putpixel(x, y, color); } } } 7 void Line_Midpoint(int x1, int y1, int x2, int y2, int color, int flag) { intx,y; if(flag==0) { x0=point.x; y0=point.y; flag=1; } else { flag=0; x1=point.x; y1=point.y; a=y0-y1;

计算机组成原理课后答案

… 第一章计算机系统概论 什么是计算机系统、计算机硬件和计算机软件硬件和软件哪个更重要 计算机系统:计算机硬件、软件和数据通信设备的物理或逻辑的综合体 计算机硬件:计算机的物理实体 计算机软件:计算机运行所需的程序及相关资料 硬件和软件在计算机系统中相互依存,缺一不可,因此同样重要 如何理解计算机系统的层次结构 实际机器M1向上延伸构成了各级虚拟机器,机器M1内部也可向下延伸而形成下一级的微程序机器M0,硬件研究的主要对象归结为传统机器M1和微程序机器M0,软件研究对象主要是操作系统及以上的各级虚拟机 》 说明高级语言、汇编语言和机器语言的差别及其联系。 机器语言是可以直接在机器上执行的二进制语言 汇编语言用符号表示指令或数据所在存储单元的地址,使程序员可以不再使用繁杂而又易错的二进制代码来编写程序 高级语言对问题的描述十分接近人们的习惯,并且还具有较强的通用性 如何理解计算机组成和计算机体系结构 计算机体系结构是对程序员可见的计算机系统的属性 计算机组成对程序员透明,如何实现计算机体系结构所体现的属性 冯·诺依曼计算机的特点是什么 。 由运算器、控制器、存储器、输入设备、输出设备五大部件组成 指令和数据以同一形式(二进制形式)存于存储器中 指令由操作码、地址码两大部分组成 指令在存储器中顺序存放,通常自动顺序取出执行 以运算器为中心(原始冯氏机) 画出计算机硬件组成框图,说明各部件的作用及计算机硬件的主要技术指标。 计算机硬件各部件 运算器:ACC, MQ, ALU, X ' 控制器:CU, IR, PC 主存储器:M, MDR, MAR I/O设备:设备,接口 计算机技术指标: 机器字长:一次能处理数据的位数,与CPU的寄存器位数有关 存储容量:主存:存储单元个数×存储字长 运算速度:MIPS, CPI, FLOPS 解释概念 & 主机:计算机硬件的主体部分,由 CPU+MM(主存或内存)组成 CPU:中央处理器,是计算机硬件的核心部件,由运算器+控制器组成 主存:计算机中存放正在运行的程序和数据的存储器,可随机存取;由存储体、各种逻辑部件及控制电路组成

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

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

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

计算机系统结构期末考试题目

第一章: 1.计算机系统结构的定义 答:由程序设计者看到的一个计算机系统的属性,即概念性结构和功能特性。 2.透明性概念 答:在计算机技术中,一种本来是存在的事物或属性,但从某种角度看似乎不存在,称为透明性现象。 3.兼容性向后兼容 兼容性:同一个软件可以不加修改地运行于系统结构相同的各档机器,可获得相同的结果,差别只在于不同的运行时间。 向后兼容:按某个时期投入市场的某种型号机器编制的程序,不加修改就能运行于在它之后投入市场的机器。 4.Amdahl定律 答:系统中某一部件由于采用某种更快的执行方式后整个系统性能的提高与这种执行方式的使用频率或占总执行时间的比例有关。 5.CPI 答:每条指令的平均时钟周期数。 6.MIPS 答:每秒百万条指令数!MIPS=时钟频率/(CPI*10^6) 7.MFLOPS 答:每秒百万次浮点操作次数。MFLOPS=程序中的浮点操作次数/(执行时间*10^6) 8.命中率的概念 答: 9.Flynn分类法是按指令流和数据流的多倍性特征进行计算机系统结构的划分 答:①单指令流单数据流SISD ②单指令流多数据流SIMD ③多指令流单数据流MISD (实际不存在)④多指令流多数据流MIMD 10.计算机系统设计的定量原理(四个) 答:①加快经常性事件的速度②Amdahl定律③CPU性能公式④访问的局部性原理11.CPI和加速比的计算 答:CPI=CPU时钟周期数/IC CPU时间=CPU时钟周期数/频率 CPU时间=CPU时钟周期*时钟周期长 加速比=(采用改进措施后的性能)/(没有采用改进措施前的性能) =(没有采用改进措施前执行某任务的时间)/(采用改进措施后执行某任务的时间) 12.软硬件实现的特点 硬件实现:速度快、成本高;灵活性差、占用内存少 软件实现:速度低、复制费用低;灵活性好、占用内存多 13.系统评价的标准 ①运算速度②存储器系统③其他性能④成本标准

计算机组成原理第二版课后习题答案

第1章计算机系统概论 1. 什么是计算机系统、计算机硬件和计算机软件?硬件和软件哪个更重要? 解: 计算机系统:由计算机硬件系统和软件系统组成的综合体。 计算机硬件:指计算机中的电子线路和物理装置。 计算机软件:计算机运行所需的程序及相关资料。 硬件和软件在计算机系统中相互依存,缺一不可,因此同样重要。 2. 如何理解计算机的层次结构? 答:计算机硬件、系统软件和应用软件构成了计算机系统的三个层次结构。 (1)硬件系统是最层的,它是整个计算机系统的基础和核心。 (2)系统软件在硬件之外,为用户提供一个基本操作界面。 (3)应用软件在最外层,为用户提供解决具体问题的应用系统界面。 通常将硬件系统之外的其余层称为虚拟机。各层次之间关系密切,上层是下层的扩展,下层是上层的基础,各层次的划分不是绝对的。 3. 说明高级语言、汇编语言和机器语言的差别及其联系。 答:机器语言是计算机硬件能够直接识别的语言,汇编语言是机器语

言的符号表示,高级语言是面向算法的语言。高级语言编写的程序(源程序)处于最高层,必须翻译成汇编语言,再由汇编程序汇编成机器语言(目标程序)之后才能被执行。 4. 如何理解计算机组成和计算机体系结构? 答:计算机体系结构是指那些能够被程序员所见到的计算机系统的属性,如指令系统、数据类型、寻址技术组成及I/O机理等。计算机组成是指如何实现计算机体系结构所体现的属性,包含对程序员透明的硬件细节,如组成计算机系统的各个功能部件的结构和功能,及相互连接方法等。 5. ?诺依曼计算机的特点是什么? 解:?诺依曼计算机的特点是:P8 ●计算机由运算器、控制器、存储器、输入设备、输出设备五大 部件组成; ●指令和数据以同同等地位存放于存储器,并可以按地址访问; ●指令和数据均用二进制表示; ●指令由操作码、地址码两大部分组成,操作码用来表示操作的 性质,地址码用来表示操作数在存储器中的位置; ●指令在存储器中顺序存放,通常自动顺序取出执行; ●机器以运算器为中心(原始?诺依曼机)。

计算机系统结构_课后答案

习题一 1、解释下列术语 计算机系统的外特性:通常所讲的计算机系统结构的外特性是指机器语言程序员或编译程序编写者所看到的外特性,即由他们所看到的计算机的基本属性(概念性结构和功能特性)。 计算机系统的内特性:计算机系统的设计人员所看到的基本属性,本质上是为了将有关软件人员的基本属性加以逻辑实现的基本属性。 模拟:模拟方法是指用软件方法在一台现有的计算机上实现另一台计算机的指令系统。 可移植性:在新型号机出台后,原来开发的软件仍能继续在升级换代的新型号机器上使用,这就要求软件具有可兼容性,即可移植性。可兼容性是指一个软件可不经修改或只需少量修改,便可由一台机器移植到另一台机器上运行,即同一软件可应用于不同环境。 Amdahl 定律:系统中对于某一部件采用某种更快的执行方式所能获得的系统性能改进程度,取决于这种执行方式被使用的频度或占总执行时间的比例。 虚拟机(Virtual Machine ):指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。 6、 7、假定求浮点数平方根的操作在某台机器上的一个基准测试程序中占总执行时间的20%,为了增强该操作的性能,可采用两种不同的方法:一种是增加专门的硬件,可使求浮点数平方根操作的速度提高为原来的20倍;另一种方法是提高所有浮点运算指令的速度,使其为原来的2倍,而浮点运算指令的执行时间在总执行时间中占30%。试比较这两种方法哪一种更好些。 答:增加硬件的方法的加速比23.120 /2.0)2.01(1 1=+-= p S , 另一种方法的加速比176.12 /3.0)3.01(1 2=+-=p S ,经计算可知Sp1>Sp2第一种方 法更好些。 9、假设高速缓存Cache 的工作速度为主存的5倍,且Cache 被访问命中的概率

计算机系统结构考试题库及答案

计算机系统结构试题及答案 一、选择题(50分,每题2分,正确答案可能不只一个,可单选 或复选) 1.(CPU周期、机器周期)是内存读取一条指令字的最短时间。 2.(多线程、多核)技术体现了计算机并行处理中的空间并行。 3.(冯?诺伊曼、存储程序)体系结构的计算机把程序及其操作数 据一同存储在存储器里。 4.(计算机体系结构)是机器语言程序员所看到的传统机器级所具 有的属性,其实质是确定计算机系统中软硬件的界面。 5.(控制器)的基本任务是按照程序所排的指令序列,从存储器取 出指令操作码到控制器中,对指令操作码译码分析,执行指令操作。 6.(流水线)技术体现了计算机并行处理中的时间并行。 7.(数据流)是执行周期中从内存流向运算器的信息流。 8.(指令周期)是取出并执行一条指令的时间。 9.1958年开始出现的第二代计算机,使用(晶体管)作为电子器件。 10.1960年代中期开始出现的第三代计算机,使用(小规模集成电路、 中规模集成电路)作为电子器件。 11.1970年代开始出现的第四代计算机,使用(大规模集成电路、超 大规模集成电路)作为电子器件。 12.Cache存储器在产生替换时,可以采用以下替换算法:(LFU算法、 LRU算法、随机替换)。

13.Cache的功能由(硬件)实现,因而对程序员是透明的。 14.Cache是介于CPU和(主存、内存)之间的小容量存储器,能高 速地向CPU提供指令和数据,从而加快程序的执行速度。 15.Cache由高速的(SRAM)组成。 16.CPU的基本功能包括(程序控制、操作控制、时间控制、数据加 工)。 17.CPU的控制方式通常分为:(同步控制方式、异步控制方式、联合 控制方式)反映了时序信号的定时方式。 18.CPU的联合控制方式的设计思想是:(在功能部件内部采用同步控 制方式、在功能部件之间采用异步控制方式、在硬件实现允许的情况下,尽可能多地采用异步控制方式)。 19.CPU的同步控制方式有时又称为(固定时序控制方式、无应答控 制方式)。 20.CPU的异步控制方式有时又称为(可变时序控制方式、应答控制 方式)。 21.EPROM是指(光擦可编程只读存储器)。 22.MOS半导体存储器中,(DRAM)可大幅度提高集成度,但由于(刷 新)操作,外围电路复杂,速度慢。 23.MOS半导体存储器中,(SRAM)的外围电路简单,速度(快),但 其使用的器件多,集成度不高。 24.RISC的几个要素是(一个有限的简单的指令集、CPU配备大量的 通用寄存器、强调对指令流水线的优化)。

计算机图形学第二版课后习题答案

第一章绪论 概念:计算机图形学、图形、图像、点阵法、参数法、 图形的几何要素、非几何要素、数字图像处理; 计算机图形学和计算机视觉的概念及三者之间的关系; 计算机图形系统的功能、计算机图形系统的总体结构。 第二章图形设备 图形输入设备:有哪些。 图形显示设备:CRT的结构、原理和工作方式。 彩色CRT:结构、原理。 随机扫描和光栅扫描的图形显示器的结构和工作原理。 图形显示子系统:分辨率、像素与帧缓存、颜色查找表等基本概念,分辨率的计算 第三章交互式技术 什么是输入模式的问题,有哪几种输入模式。 第四章图形的表示与数据结构 自学,建议至少阅读一遍 第五章基本图形生成算法 概念:点阵字符和矢量字符; 直线和圆的扫描转换算法; 多边形的扫描转换:有效边表算法; 区域填充:4/8连通的边界/泛填充算法;

内外测试:奇偶规则,非零环绕数规则; 反走样:反走样和走样的概念,过取样和区域取样。 5.1.2 中点 Bresenham 算法(P109) 5.1.2 改进 Bresenham 算法(P112) 习题答案

习题5(P144) 5.3 试用中点Bresenham算法画直线段的原理推导斜率为负且大于1的直线段绘制过程(要求写清原理、误差函数、递推公式及最终画图过程)。(P111) 解: k<=-1 |△y|/|△x|>=1 y为最大位移方向 故有 构造判别式: 推导d各种情况的方法(设理想直线与y=yi+1的交点为Q): 所以有: y Q-kx Q-b=0 且y M=y Q d=f(x M-kx M-b-(y Q-kx Q-b)=k(x Q-x M) 所以,当k<0, d>0时,M点在Q点右侧(Q在M左),取左点 P l(x i-1,y i+1)。 d<0时,M点在Q点左侧(Q在M右),取右点 Pr(x i,y i+1)。 d=0时,M点与Q点重合(Q在M点),约定取右点 Pr(x i,y i+1) 。 所以有 递推公式的推导: d2=f(x i-1.5,y i+2) 当d>0时, d2=y i+2-k(x i-1.5)-b 增量为1+k =d1+1+k

计算机组成课后答案

第一章计算机系统概论 1. 什么是计算机系统、计算机硬件和计算机软件?硬件和软件哪个更重要? 解:P3 计算机系统:由计算机硬件系统和软件系统组成的综合体。 计算机硬件:指计算机中的电子线路和物理装置。 计算机软件:计算机运行所需的程序及相关资料。 硬件和软件在计算机系统中相互依存,缺一不可,因此同样重要。 5. 冯?诺依曼计算机的特点是什么? 解:冯?诺依曼计算机的特点是:P8 计算机由运算器、控制器、存储器、输入设备、输出设备五大部件组成;指令和数据以同同等地位存放于存储器内,并可以按地址访问;指令和数据均用二进制表示;指令由操作码、地址码两大部分组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置;指令在存储器中顺序存放,通常自动顺序取出执行;机器以运算器为中心(原始冯?诺依曼机)。 7. 解释下列概念: 主机、CPU、主存、存储单元、存储元件、存储基元、存储元、存储字、存储字长、存储容量、机器字长、指令字长。 解:P9-10主机:是计算机硬件的主体部分,由CPU和主存储器MM合成为主机。CPU:中央处理器,是计算机硬件的核心部件,由运算器和控制器组成;(早期的运算器和控制器不在同一芯片上,现在的CPU内除含有运算器和控制器外还集成了CAC HE)。 主存:计算机中存放正在运行的程序和数据的存储器,为计算机的主要工作存储器,可随机存取;由存储体、各种逻辑部件及控制电路组成。

存储单元:可存放一个机器字并具有特定存储地址的存储单位。 存储元件:存储一位二进制信息的物理元件,是存储器中最小的存储单位,又叫存储基元或存储元,不能单独存取。 存储字:一个存储单元所存二进制代码的逻辑单位。 存储字长:一个存储单元所存二进制代码的位数。 存储容量:存储器中可存二进制代码的总量;(通常主、辅存容量分开描述)。 机器字长:指CPU一次能处理的二进制数据的位数,通常与CPU的寄存器位数有关。指令字长:一条指令的二进制代码位数。 8. 解释下列英文缩写的中文含义: CPU、PC、IR、CU、ALU、ACC、MQ、X、MAR、MDR、I/O、MIPS、CPI、FLOPS 解:全面的回答应分英文全称、中文名、功能三部分。 CPU:Central Processing Unit,中央处理机(器),是计算机硬件的核心部件,主要由运算器和控制器组成。 PC:Program Counter,程序计数器,其功能是存放当前欲执行指令的地址,并可自动计数形成下一条指令地址。 IR:Instruction Register,指令寄存器,其功能是存放当前正在执行的指令。 CU:Control Unit,控制单元(部件),为控制器的核心部件,其功能是产生微操作命令序列。 ALU:Arithmetic Logic Unit,算术逻辑运算单元,为运算器的核心部件,其功能是进行算术、逻辑运算。 ACC:Accumulator,累加器,是运算器中既能存放运算前的操作数,又能存放运算结果的寄存器。

计算机体系结构课后答案

计算机体系结构课后答案

计算机体系结构课后答案 【篇一:计算机体系结构习题(含答案)】 1、尾数用补码、小数表示,阶码用移码、整数表示,尾数字长p=6(不包括符号位),阶码字长q=6(不包括符号位),为数基值rm=16,阶码基值re=2。对于规格化浮点数,用十进制表达式写出如下数据(对于前11项,还要写出16进值编码)。 (1)最大尾数(8)最小正数 (2)最小正尾数(9)最大负数 (3)最小尾数(10)最小负数 (4)最大负尾数(11)浮点零 (5)最大阶码(12)表数精度 (6)最小阶码(13)表数效率 (7)最大正数(14)能表示的规格化浮点数个数 2.一台计算机系统要求浮点数的精度不低于10-7.2,表数范围正数不小于1038,且正、负数对称。尾数用原码、纯小数表示,阶码用移码、整数表示。 (1) 设计这种浮点数的格式 (2) 计算(1)所设计浮点数格式实际上能够表示的最大正数、最大负数、表数精度和表数效率。 3.某处理机要求浮点数在正数区的积累误差不大于2-p-1 ,其中,p是浮点数的尾数长度。 (1) 选择合适的舍入方法。

(2) 确定警戒位位数。 (3) 计算在正数区的误差范围。 4.假设有a和b两种不同类型的处理机,a处理机中的数据不带标志符,其指令字长和数据字长均为32位。b处理机的数据带有标志符,每个数据的字长增加至36位,其中有4位是标志符,它的指令数由最多256条减少到不到64条。如果每执行一条指令平均要访问两个操作数,每个存放在存储器中的操作数平均要被访问8次。对于一个由1000条指令组成的程序,分别计算这个程序在a处理机和b处理机中所占用的存储空间大小(包括指令和数据),从中得到什么启发? 5.一台模型机共有7条指令,各指令的使用频率分别为35%,25%,20%,10%,5%,3%和2%,有8个通用数据寄存器,2个变址寄存器。 (1) 要求操作码的平均长度最短,请设计操作码的编码,并计算所设计操作码的平均长度。 6.某处理机的指令字长为16位,有双地址指令、单地址指令和零地址指令3类,并假设每个地址字 段的长度均为6位。 (1) 如果双地址指令有15条,单地址指令和零地址指令的条数基本相同,问单地址指令和零地址指令各有多少条?并且为这3类指令分配操作码。 (2) 如果要求3类指令的比例大致为1:9:9,问双地址指令、单地址指令和零地址指令各有多少条?并且为这3类指令分配操作码。 7.别用变址寻址方式和间接寻址方式编写一个程序,求c=a+b,其中,a与b都是由n个元素组成的一维数组。比较两个程序,并回答下列问题: (1) 从程序的复杂程度看,哪一种寻址方式更好?

计算机系统结构期末考试试题及其答案

计算机系统结构期末考试试题及其答案

《计算机系统结构》期末考试试卷A 卷第 2 页 共 24 页 计算机科学系《计算机系统结构》期末考试试卷(A 卷) 2、此试卷适用于计算机科学与技术本科专业。 一 单选题:(10分,每题1分) 1、 ."启动I/O"指令是主要的输入输出指 令,是属于( B ) A.目态指令 B.管态指令 C.目态、管态都能用的指令 D.编译程序只能用的指令 2、 输入输出系统硬件的功能对(B )是透 明的 A.操作系统程序员 B.应用程序员 C.系统结构设计人员 D.机器语言程序设计员 3、 全相联地址映象是指(A ) A.任何虚页都可装入主存中任何实页的位置 B.一个虚页只装进固定的主存实页位置 C.组之间固定,组内任何虚页可装入任何实页位

置 D.组间可任意装入,组内是固定装入 4、( C ) 属于MIMD系统结构 A.各处理单元同时受一个控制单元的管理 B.各处理单元同时受同个控制单元送来的指令 C.松耦合多处理机和多计算机系统 D.阵列处理机 5、多处理机上两个程序段之间若有先写 后读的数据相关,则(B ) A.可以并行执行 B.不可能并行 C.任何情况均可交换串行 D.必须并行执行 6、计算机使用的语言是(B) A.专属软件范畴,与计算机体系结构无关 B.分属于计算机系统各个层次 C.属于用以建立一个用户的应用环境 D.属于符号化的机器指令 7、指令执行结果出现异常引起的中断是 (C ) A.输入/输出中断 B.机器校验中断 C.程序性中断 D.外部中断 《计算机系统结构》期末考试试卷A卷第 3 页共 24 页

计算机图形学课后习题答案

第三章习题答案 3.1 计算机图形系统的主要功能是什么? 答:一个计算机图形系统应具有计算、存储、输入、输出、交互等基本功能,它们相互协作,完成图形数据的处理过程。 1. 计算功能 计算功能包括: 1)图形的描述、分析和设计;2)图形的平移、旋转、投影、透视等几何变换; 3)曲线、曲面的生成;4)图形之间相互关系的检测等。 2. 存储功能 使用图形数据库可以存放各种图形的几何数据及图形之间的相互关系,并能快速方便地实现对图形的删除、增加、修改等操作。 3. 输入功能 通过图形输入设备可将基本的图形数据(如点、线等)和各种绘图命令输入到计算机中,从而构造更复杂的几何图形。 4. 输出功能 图形数据经过计算后可在显示器上显示当前的状态以及经过图形编辑后的结果,同时还能通过绘图仪、打印机等设备实现硬拷贝输出,以便长期保存。 5. 交互功能 设计人员可通过显示器或其他人机交互设备直接进行人机通信,对计算结果和图形利用定位、拾取等手段进行修改,同时对设计者或操作员输入的错误给以必要的提示和帮助。 3.2 阴极射线管由哪些部分组成?它们的功能分别是什么? 答:CRT主要由阴极、电平控制器(即控制极)、聚焦系统、加速系统、偏转系统和阳极荧光粉涂层组成,这六部分都在真空管内。 阴极(带负电荷)被灯丝加热后,发出电子并形成发散的电子云。这些电子被电子聚集透镜聚焦成很细的电子束,在带正高压的阳极(实际为与加速极连通的CRT屏幕内侧的石墨粉涂层,从高压入口引入阳极高电压)吸引下轰击荧光粉涂层,而形成亮点。亮点维持发光的时间一般为20~40mS。 电平控制器是用来控制电子束的强弱的,当加上正电压时,电子束就会大量通过,在屏幕上形成较亮的点,当控制电平加上负电压时,依据所加电压的大小,电子束被部分或全部阻截,通过的电子很少,屏幕上的点也就比较暗。所以改变阴极和 控制电平之间的电位差,就可调节电子 束的电流密度,改变所形成亮点的明暗 程度。 利用偏转系统(包括水平方向和 垂直方向的偏转板)可将电子束精确定 位在屏幕的任意位置上。只要根据图形 的几何坐标产生适当的水平和垂直偏转磁场(或水平和垂直偏转板静电场),图 2.2CRT原理图

相关文档
相关文档 最新文档