计算机组成与系统结构.docx

上传人:b****1 文档编号:13877431 上传时间:2023-06-18 格式:DOCX 页数:27 大小:132.12KB
下载 相关 举报
计算机组成与系统结构.docx_第1页
第1页 / 共27页
计算机组成与系统结构.docx_第2页
第2页 / 共27页
计算机组成与系统结构.docx_第3页
第3页 / 共27页
计算机组成与系统结构.docx_第4页
第4页 / 共27页
计算机组成与系统结构.docx_第5页
第5页 / 共27页
计算机组成与系统结构.docx_第6页
第6页 / 共27页
计算机组成与系统结构.docx_第7页
第7页 / 共27页
计算机组成与系统结构.docx_第8页
第8页 / 共27页
计算机组成与系统结构.docx_第9页
第9页 / 共27页
计算机组成与系统结构.docx_第10页
第10页 / 共27页
计算机组成与系统结构.docx_第11页
第11页 / 共27页
计算机组成与系统结构.docx_第12页
第12页 / 共27页
计算机组成与系统结构.docx_第13页
第13页 / 共27页
计算机组成与系统结构.docx_第14页
第14页 / 共27页
计算机组成与系统结构.docx_第15页
第15页 / 共27页
计算机组成与系统结构.docx_第16页
第16页 / 共27页
计算机组成与系统结构.docx_第17页
第17页 / 共27页
计算机组成与系统结构.docx_第18页
第18页 / 共27页
计算机组成与系统结构.docx_第19页
第19页 / 共27页
计算机组成与系统结构.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

计算机组成与系统结构.docx

《计算机组成与系统结构.docx》由会员分享,可在线阅读,更多相关《计算机组成与系统结构.docx(27页珍藏版)》请在冰点文库上搜索。

计算机组成与系统结构.docx

计算机组成与系统结构

第一章

(1)兼容性:

指硬件之间、软件之间或是硬软件组合系统之间的相互协调工作的程度。

(2)算术逻辑单元(ALU):

能实现多组算术运算和逻辑运算的的组合逻辑电路。

(3)CPI:

表示执行指令所需的时钟周期数。

(4)MIPS:

平均每秒执行多少百万条指令。

5.若有两个基准测试程序P1和P2在机器M1和M2上运行,假定M1和M2的价格分别是5000元和8000元,下表给出了P1和P2在M1和M2上所花的时间和指令条数。

程序

M1

M2

指令条数

执行时间(ms)

指令条数

执行时间(ms)

P1

200×106

10000

150×106

5000

P2

300×103

3

420×103

6

请回答下列问题:

(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

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

在指令集中有五种不同类型的指令A~E。

下表给出了在M1和M2上每类指令的平均时钟周期数CPI。

机器

A

B

C

D

E

M1

1

2

2

3

4

M2

2

2

4

5

6

请回答下列问题:

(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.53N(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%,那么,这个结论显然是错误的。

请问错在什么地方?

第二章

(1)大端方式:

将数据的最高有效字节MSB存放在低地址单元中,将最低有效字节LSB存放在高地址单元中,即数据的地址就是MSB所在的地址。

(2)小端方式:

将数据最高有效字节MSB存放在高地址中,将最低有效字节LSB存放在低地址中,即数据的地址就是LSB所在的地址。

7.假定一台32位字长的机器中带符号整数用补码表示,浮点数用IEEE754标准表示,寄存器R1和R2的内容分别为R1:

0000108BH,R2:

8080108BH。

不同指令对寄存器进行不同的操作,因而,不同指令执行时寄存器内容对应的真值不同。

假定执行下列运算指令时,操作数为寄存器R1和R2的内容,则R1和R2中操作数的真值分别为多少?

(1)无符号数加法指令

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

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

参考答案:

R1=0000108BH=00000000000000000001000010001011b

R2=8080108BH=10000000100000000001000010001011b

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

108BH,R2:

8080108BH。

(2)对于带符号整数乘法指令,R1和R2中是操作数的带符号整数补码表示,由最高位可知,R1为正数,R2为负数。

R1的真值为+108BH,R2的真值为–(01111111011111111110111101110100b+1b)=–7F7FEF75H。

(3)对于单精度浮点数减法指令,R1和R2中是操作数的IEEE754单精度浮点数表示。

在IEEE754标准中,单精度浮点数的位数为32位,其中包含1位符号位,8位阶码,23位尾数。

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

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

符号

阶码

尾数

 

尾数23位表示24位,52位表示23位,其中一位隐藏位。

隐藏位在小数点之前

1位(s)8位(e)23位(f)

8.假定机器M的字长为32位,用补码表示带符号整数。

下表第一列给出了在机器M上执行的C语言程序中的关系表达式,请参照已有的表栏内容完成表中后三栏内容的填写。

关系表达式

运算类型

结果

说明

0==0U

–1<0

–1<0U

2147483647>–2147483647–1

2147483647U>–2147483647–1

2147483647>(int)2147483648U

–1>–2

(unsigned)–1>–2

无符号整数

有符号整数

无符号整数

有符号整数

无符号整数

有符号整数

有符号整数

无符号整数

1

1

0

1

0

1

1

1

00…0B=00…0B

11…1B(–1)<00…0B(0)

11…1B(232–1)>00…0B(0)

011…1B(231–1)>100…0B(–231)

011…1B(231–1)<100…0B(231)

011…1B(231–1)>100…0B(–231)

11…1B(–1)>11…10B(–2)

11…1B(232–1)>11…10B(232–2)

(1)带符号整数符号位1表示负数,0表示正数。

(2)无符号整数常在后加U或u。

(3)结果1表示真,0表示假。

(4)x=2^32-1=4294967296-1=4294967295=-1,-1的补码表示为“11...1.”

x=2^31=-2^-31=-2147483648,2^31表示为“100...0”

第三章

(1)算术逻辑部件ALU:

能实现多组算术运算和逻辑运算的组合逻辑电路。

(2)先行(超前)进位加法器:

通过“进位生成”和“进位传递”函数来使各进位独立,并行产生速度快,可用单级,两级或更多级先行进位方式。

(3)布斯乘法:

一种补码相乘算法。

可以将符号位和数值位结合在一起参加运算,直接得出用补码表示的乘积,且正数和负数同等对待。

(4)阵列乘法器:

基于移位与求和算法实现。

每一行被乘数与乘数中的一位相乘,产生一组部分积。

(5)数据通路:

数字系统中,各个子系统通过数据总线形成的数据传送路径。

9.已知x=10,y=-6,采用6位机器数表示。

请按如下要求计算,并把结果还原成真值。

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

解:

原码:

符号位+数值位(符号位“0”正,“1”负)

正数:

原码、反码、补码一致

负数:

(1)反码:

符号位不变,数值位按位取反。

(2)补码:

符号位不变,数值位按位取反后加“1”。

移码:

与补码的符号位相反,用于表示阶码。

(阶码即浮点数指数,用移码表示)

(1)解:

[10]补=001010[-6]=000110,故[-6]补=111010

二进制加法:

0+0=0,1+0=1,0+1=1,1+1=10

[x+y]补=[10]补+[-6]补=001010+111010=1001100(超出的最高位去掉)=001100(+4)

[x-y]补=[10]补+[-(-6)]补=001010+000110=010000(+16)

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

解:

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

PYy-1说明

0000001110100设y-1=0,[P0]补=0注释:

初始化,Y-1补0

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

0000000111010得[P1]补注释:

将最低两位Y0Y-1来判断执行

+110110y1y0=10,+[–X]补

110110P、Y同时右移一位

右移一位

1110110011101(右移一位)得[P2]补

+001010y2y1=01,+[X]补

000101P、Y同时右移一位

0000101001110得[P3]补

+1101101001110y3y2=10,+[–X]补

111000P、Y同时右移一位

1111000100111得[P4]补

+0000000100111y4y3=11,+0

111100P、Y同时右移一位

1111100010011得[P5]补

+0000000010011y5y4=11,+0

111110P、Y同时右移一位

1111110001001得[P6]补

因此,[X×Y]补=111111000100,即X×Y=–111100B=–60

 

第四章

(1).静态RAM(SRAM):

具有静止存取功能的内存,不需要刷新电路,也能保存它内存存储的数据。

(2)动态RAM(DRAM):

只能将数据保持很短的时间,必须隔一段时间刷新一次。

如果存储单元没有被刷新,存储的信息就会丢失。

(3)片送信号:

指传统南北桥架构的主板中,地址线和数据线分开的BIOS芯片里的22脚的那个信号,可以初步判断南北桥级CPM是否开始工作。

(4)时间局部性:

某单元在一个很短的时间段内可能被重复访问。

(5)空间局部性:

某单元被访问后,其邻进单元也可能被访问。

(6)命中时间:

命中时,CPM在cache中直接存取信息所用的时间。

(7)缺失率:

访问信息不再cache中的概率。

(8)LRU:

最近最少用算法,总是把最近最少用到的那个主存块淘汰掉。

4.10假定某机主存空间大小1GB,按字节编址。

cache的数据区(即不包括标记、有效位等存储区)有64KB,块大小为128字节,采用直接映射和全写(write-through)方式。

请问:

(1)主存地址如何划分?

要求说明每个字段的含义、位数和在主存地址中的位置。

标记

Cache行号

块内地址

解:

主存空间大小为1GB,按字节编址,说明主存地址为30位(1GB=2^30B=2^20KB=2^10MB,1B=8bit)主存地址

(直接映射)

cache共有64KB/128B=512行,因此,行索引(行号)为9位(2^9=512行);块大小128字节(2^7=128B),说明块内地址为7位。

因此,30位主存地址中,高14位为标志(Tag);中间9位为行索引;低7位为块内地址。

(2)cache的总容量为多少位?

解:

因为采用直接映射,所以cache中无需替换算法所需控制位,全写方式下也无需修改(dirty)位,而标志位和有效位总是必须有的,所以,cache总容量为512×(128×8+14+1)=519.5K位。

4.13分析比较以下三个函数的空间局部性,并指出哪个最好,哪个最差?

#defineN1000

typedefstruct{

intvel[3];

intacc[3];

}point;

pointp[N];

voidclear3(point*p,intn)

{

inti,j;

for(j=0;j<3;j++){

for(i=0;i

p[i].vel[j]=0;

for(i=0;i

p[i].acc[j]=0;

}

}

对于函数clear1,其数组访问顺序与在内存的存放顺序完全一致,因此,空间局部性最好。

对于函数clear2,其数组访问顺序在每个数组元素内跳越式访问,相邻两次访问的单元最大相差3个int型变量(假定sizeof(int)=4,则相当于12B),因此空间局部性比clear1差。

若主存块大小比12B小的话,则大大影响命中率。

对于函数clear3,其数组访问顺序与在内存的存放顺序不一致,相邻两次访问的单元都相差6个int型变量(假定sizeof(int)=4,则相当于24B)因此,空间局部性比clear2还差。

若主存块大小比24B小的话,则大大影响命中率。

3.17假设某计算机的主存地址空间大小为64MB,采用字节编址方式。

其cache数据区容量为4KB,采用4路组相联映射方式、LRU替换和回写(writeback)策略,块大小为64B。

请问:

(1)主存地址字段如何划分?

要求说明每个字段的含义、位数和在主存地址中的位置。

2^s路组相联映射(2^q组×2^s行/组映射):

S=1,为2-路组相联,S=2,为4-路组相联。

n=m+q+k,64B=2^6bit/行,即k=6,2^6字节/行

S=2,即2^2行/组

故,有2^4组

解:

(1)主存地址:

标记

(m)

Cache组号

(q)

块内地址

(k)

 

cache的划分为:

4KB=212B=24组×22行/组×26字节/行,所以,cache组号(组索引)占4位。

(主存地址n=12位)

主存地址划分为三个字段:

高16位为标志字段、中间4位为组号、最低6位为块内地址。

即主存空间划分为:

64MB=226B=216组群×24块/组群×26字节/块

(2)该cache的总容量有多少位?

解:

cache共有64行,每行中有16位标志、1位有效位、1位修改(dirty)位、2位LRU位,以及数据64B。

故总容量为64×(16+1+1+2+64×8)=34048位。

(3)若cache初始为空,CPU依次从0号地址单元顺序访问到4344号单元,重复按此序列共访问16次。

若cache命中时间为1个时钟周期,缺失损失为10个时钟周期,则CPU访存的平均时间为多少时钟周期?

解:

因为每块为64B,CPU访问的单元范围为0~4344,共4345个单元,4345/64=67.89,所以CPU访问的是主存前68块(第0~67块),也即CPU的访问过程是对前68块连续访问16次,总访存次数为16×4345=69520。

cache共有16组,每组4行,采用LRU算法的替换情况如下图所示:

根据图中所示可知,第一次循环的每一块只有第一次未命中,其余都命中;以后15次循环中,有20块的第一字未命中,其余都命中。

所以命中率p为(69520–68–15×20)/69520=99.47%

平均访存时间为:

HitTime+(1–p)×MissPenalty

=1+10×(1–p)=1+0.0053×10=1.053个时钟周期

第五章

(1)指令:

告诉计算机从事某一事物特殊运算的代码。

(2)指令集体系结构ISA:

系统程序员感觉到的计算机的功能特征和概念特征结构。

(3)寻址方式:

指令给出操作数或操作数地址的方式。

(4)CISC:

复杂指令系统计算。

(5)RISC:

精简指令系统计算机。

3.以下程序段是某个过程对应的指令序列。

入口参数inta和intb分别置于$a0和$a1中,返回参数是该过程的结果,置于$v0中。

要求为以下MIPS指令序列加注释,并简单说明该过程的功能。

add$t0,$zero,$zero

loop:

beq$a1,$zero,finish

add$t0,$t0,$a0

sub$a1,$a1,1

jloop

finish:

addi$t0,$t0,100

add$v0,$t0,$zero

 

假定过程P调用过程Q:

(1)$ao~$a3用于传递前4个非浮点数入口参数,在过程P中应先将入口参数送入$ao~$a3,然后调用Q.(P将入口参数放到Q能访问到的地方)

(2)$vo~$v1用于传递从Q返回的非浮点数返回参数。

(P将返回地址存到特定的地方,然后将控制转移到Q)

(3)$ra用于存放返回地址,由调用指令(jal)自动将返回地址送入$ra.(Q为P保存现场,并为自己局部变量分配空间)

(4)$s0~$s7在过程P中原来的老值从过程Q返回后可被P继续使用,因此,若在过程Q中使用这些寄存器,则必须现将其保存到栈后才能是使用,并在返回P前回复,因此,它们被称为保存寄存器。

(执行过程Q)

(5)$t0~$t9的值,从过程Q返回后在P中不在需要使用,若需要则有P自己保存,因此,在过程Q中不需对其进行保存,可以自由使用,因此称它们为临时寄存器(Q将返回结果放到P能访问到的地方)

(6)$a0~$a3的值从过程Q返回后在P中也不再需要使用,若需要则由P自己保存,因此,在过程Q不需要为过程p保存(Q取出返回地址,将控制转移到P)

 

类别

指令名称

汇编举例

含义

备注

算术算法

add

add$s1,$s2,$s3

$s1=$s2+$3

三个寄存器操作数

Subtract

sub$s1,$s2,$s3

$s1=$s2-$s3

三个寄存器操作数

存储访问

Loadword

Lw$s1,100($s2)

$s1=Memory[$s2+100]

从内存取一个字到寄存器

storeword

Sw$s1,100($s2)

Memory[$s2+100]=$s1

从寄存器存一个字到内存

逻辑运算

and

And$s1,$s2,$s3

$s1=$s2&$s3

三个寄存器操作数,按位与

or

or$s1,$s2,$s3

$s1=$s2|$s3

三个寄存器操作数,按位或

nor

nor$s1,$s2,$3

$s1=~($s2|$s3)

三个寄存器操作数,三个寄存器数,按位或非

andimmediate

andi$s1,$2,100

$s1=$s2&100

寄位器和常数,按位与

orimmediate

ori$s1,$2,100

$s1=$s2|100

寄位器和常数,按位或

shiftleftlogical

Sll$s1,$2,10

$s1=$s2《10

按常数对寄存器逻辑左移

shiftrightlogical

Srl$s1,$2,10

$s1=$s2》10

按常数对寄存器逻辑右移

条件分支

braanchonequal

Beq$s1,$s2,L

If($s1==$s2)gotoL

相等则转移

Branchonnotequal

Bne$s1,$s2,L

bne($s1!

==$s2)gotoL

不相等则转移

setonlessthane

Slt$s1,$2,$3

setonlessthanimmediate

Slti$s1,$s2,100

无条件跳转

jump

jL

gotoL

直接跳转至目标地址

Jumpregister

Jr$ra

goto$ra

过程返回

Jumpandlink

JalL

$ra=PC+4,gotoL

过程调用

 

指令

格式

add

R

sub

R

lw

I

Rse

I

and

R

or

R

nor

R

andi

I

ori

I

sll

R

srl

R

Rbeq

I

bne

I

slt

R

j

J

jr

R

jal

J

R型指令是RR型指令,I型指令是立即数指令,J型指令主要是无条件跳转指令。

解:

1:

将t0寄存器置零

2:

如果a1的值等于零则程序转移到finish处

3:

将t0和a0的内容相加,结果存放于t

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2