好文档 - 专业文书写作范文服务资料分享网站

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

天下 分享 时间: 加入收藏 我要投稿 点赞

对于以下的访问地址序列: 0, 2, 4, 8, 12, CaCheI缺失5次,而CaChe2缺失4次;

对于以下的访问地址序列: 0, 3, 4, 8, 12, 16, 20, CaCheI缺失7次,而CaChe2缺失6次; 如此等等,可以找出很多。

20. 提高关联度通常会降低缺失率,但并不总是这样。请给出一个地址访问序列,使得采用

法的2-路组相联映射CaChe比具有同样大小的直接映射 CaChe的缺失率更高。

参考答案:

2-路组相联CaChe的组数是直接映射 CaChe的行数的一半,所以,可以找到一个地址序列 A、B、C, 使得:A映射到某一个CaChe行,B和C同时映射到另一个 CaChe行,并且A、B、C映射到同一个 CaChe组。这样,如果访存的地址序列为 A、B、C、A、B、C、A、B、C…,则对于直接映射 CaChe, 其命中情况为: miss/miss/miss /hit/miss/miss ∕hit∕miss∕miss∕ 对于组相联CaChe,因为A、B、C映射到同一个组,每组只有 每个地址处的数据刚调出

命中率可达 33.3%。

2行,采用LRU替换算法,所以,

LRU 替换算

CaChe就又被访问到,每次都是 miss,命中率为0。

例如:假定直接映射 CaChe为4行×字/行,同样大小的2-路组相联CaChe为2组×2行/组×字/行 当访问序列为:0、2、4、0、2、4、0、2、4、…(局部块大小为 100%!

21. 假定有三个处理器,分别带有以下不同的 CaChe:

CaCheI :采用直接映射方式,块大小为 CaChe2:采用直接映射方式,块大小为

1个字,指令和数据的缺失率分别为 4个字,指令和数据的缺失率分别为

4%和6% ; 2%和4% ;

2%和3%。

3)时,则出现上述情况。

当访问的局部块大于组的大小时,可能会发生 “颠簸”现象:刚被替换出去的数据又被访问,导致缺 失率为

CaChe3 :采用2-路组相联映射方式,块大小为 4个字,指令和数据的缺失率分别为 在这些处理器上运行相同的程序,该程序的

CPI为2.0 ,其中有一半是访存指令。若缺失损失为(块大

小+6)个时钟周期,处理器 1和处理器2的时钟周期都为420ps,带有CaChe3的处理器3的时钟周期为 450ps。请问:哪个处理器因 CaChe缺失而引起的额外开销最大?哪个处理器执行速度最快? 参考答案: 假设所运行的程序共执行 N条指令,每条访存指令仅读写一次内存数据,则在该程序执行过程中各处 理器因CaChe缺失而引起的额外开销和执行时间计算如下。 对于处理器 1:

额外开销为: N×(4% + 6% ×50%)×(1+6) = 0.49 N 个时钟周期 执行程序所需时间为: (N×2.0 +0.49N) 4×20ps = 1045.8N ps 对于处理器 2:

额外开销为: N×(2%+4%× 50%)×(4+6) = 0.40N 个时钟周期 执行程序所需时间为: (N×2.0+0.40N) 4×20ps=1008N ps 对于处理器 3:

额外开销为: N×(2%+3%× 50%)×(4+6) = 0.35N 个时钟周期 执行程序所需时间为: (N×2.0+0.35N) 4×50ps=1057.5N ps

由此可见,处理器1的CaChe缺失引起的额外开销最大,处理器 2的执行速度最快。 22.

以下C语言程序段运行在该处理

器上,SiZeof(int) = 4 ,编译器将变量i, j, c, S都分配在通用寄存器中,因此,只要考虑数组元素的访存 情况。若CaChe采用直接映射方式,则当 s=64和s=63时,缺失率分别为多少?若 映射方式,则当s=64和s=63时,缺失率又分别为多少? int i, j, C, s, a[128];

假定某处理器带有一个数据区容量为 256B的cache,其块大小为32B。

CaChe采用2-路组相联

for ( i = 0; i < 10000; i++ )

for ( j = 0; j < 128; j=j+s )

C = a[j]; 参考答案:

已知块大小为32B, CaChe容量为256B = 8行疋字/行×4B∕字,仅考虑数组访问情况。

1) 直接映射,s=64:访存顺序为a[0]、a[64] , a[0]、a[64], ..................... 共循环10000次。这两个元素被映

射到同一个CaChe行中,每次都会发生冲突,因此缺失率为

100%。

2) 直接映射,s=63:访存顺序为 a[0]、a[63]、a[126], a[0]、a[63]、a[126],…共循环 10000 次。这

三个元素中后面两个元素因为映射到同一个 生冲突,故缺失率为 67%。

3) 2-路组相联,s=64:访存顺序为a[0]、a[64] , a[0]、a[64], ……共循环10000次。这两个元素虽

然映射到同一个 CaChe组中,但可以放在该组不同

CaChe行中,所以不会发生冲突,缺失率为0。

CaChe行中,而a[0]不会

CaChe行中,因此每次都会发生冲突,而

a[0]不会发

4) 2-路组相联,s=63:访存顺序为 a[0]、a[63]、a[126], a[0]、a[63]、a[126],…共循环 10000 次。

这三个元素中后面两个元素虽映射到同一个 发生冲突,故缺失率为 0。

CaChe组中,但可放在不同

23.

为16KB ,按字节编址。若页表

假定一个虚拟存储系统的虚拟地址为 40位,物理地址为36位,页大小

4位,磁盘地址不在页表中,则该存储系统中每个

中有有效位、存储保护位、修改位、使用位,共占 参考答案:

进程的页表大小为多少?如果按计算出来的实际大小构建页表,则会出现什么问题? 因为每页大小有16KB ,所以虚拟页数为 240B∕16KB=2 (40-14)=226页。 物理页面和虚拟页面大小相等,所以物理页号的位数为 为简化页表访问,每项大小取

36-4=22位。

226 ×32b=256MB。

页表项位数为:有效位 +保护位+修改位+使用位+物理页号位数=4+22=26位。

32位。因此,每个进程的页表大小为:

如果按实际计算出的页表大小构建页表,则页表过大而导致页表无法一次装入内存。 24.

个 TLB和一个L1 data CaChe。该系统按字节编址,

为4B,共16行。在系统运行到某一时刻时, 六进制表示)如下:

假定一个计算机系统中有一虚拟地址16位,物理地

TLB、页表和L1 data CaChe中的部分内容(用十

址12位;页大小为128B, TLB为四路组相联,共有 16个页表项;L1 data CaChe采用直接映射方式, 块大小

行索引

0 1 2

标记 19 15 1B 有效位 1 0 1 0 字节3 12 — 03 — 字节2 56 — 45 — 字节1 C9 — 12 — 字节0 AC — CD — 3 36

组号标记 页框号有效位 标记 页框号有效位 标记 页框号 0 1 2 3

03 03 02 07 — 2D — — 0 1 0 0 09 02 08 63 0D — — 0D 1 0 0 1 00 04 06 0A — — — 34 有效位 标记 页框号有效位

0 0 0 1 07 0A 03 72 02 — — — 1 0 0 0 (a) TLB (四路组相联):四组、16个页表项

04 05 06 07 08 09

— 16 — 07 13 17 0 1 0 1 1 1 4 5 6 7 8 9 A B C D E F

32 OD — 16 24 2D 2D — 12 16 33 14 1 1 0 1 1 0 1 0 1 1 1 0 23 46 — 12 23 — 43 — 76 A3 2D — 34 67 — 54 62 — 62 — 83 F4 4A — C2 23 — 65 12 — 23 — 21 23 45 — 2A 3D — DC 3A — C3 — 35 11 55 — O09 1 A O— 0 B O19 1 C

— O0 D O11 1 E OOD 1 F

(b)部分页表:(开始16项)

(C) L1 data CaChe :直接映射,共 16行,块大小为 4B

请回答下列问题:

(1) 虚拟地址中哪几位表示虚拟页号?哪几位表示页内偏移量?虚拟页号中哪几位表示

哪几位表示TLB索引?

(2) 物理地址中哪几位表示物理页号?哪几位表示页内偏移量?

(3) 主存(物理)地址如何划分成标记字段、行索引字段和块内地址字段? (4) CPU从地址067AH中取出的值为多少?说明 参考答案:

(1) 16位虚拟地址中低 7位为页内偏移量,高 9位为虚页号;虚页号中高

为TLB组索引。

(2) 12位物理地址中低 7位为页内偏移量,高 5位为物理页号。

(3) 12位物理(主存)地址中,低 2位为块内地址,中间 4位为CaChe行索引,高6位为标记。 (4) 地址 067AH= 0000 0110 0111 1010B,所以,虚页号为 0000011 QQB ,映射到 TLB 的第 00 组,

将0000011B=03H与TLB第0组的四个标记比较,虽然和其中一个相等, 但对应的有效位为 0, 其余都不等,所以 TLB缺失,需要访问主存中的慢表。直接查看

0000011 00B =OOCH处的页

表项,有效位为1,取出物理页号19H=11001B ,和页内偏移111 1010B拼接成物理地址:11001 111 1010B。根据中间4位1110直接找到CaChe第14行(即:第E行),有效位为1 ,且标记为 33H=110011B ,正好等于物理地址高 6位,故命中。根据物理地址最低两位 的内容 4AH=01001010B。

10,取出字节2中 7位为TLB标记,低2 位

CPU读取地址067AH中内容的过程。

TLB标记?

25.

出是指分配的某个内存区域(缓冲区)的大小比存放内容所需空间小。例如,在栈 )

中分配了一块空间用于存放某个过程中的一个字符串,

结果字符串长度超过了分配空间的大小。

缓冲区溢

(StaCk

黑客

往往会利用缓冲区溢出来植入入侵代码。请说明可以采用什么措施来防止缓冲区溢出漏洞。

第5章习题答案

3. 假定某计算机中有一条转移指令,采用相对寻址方式,共占两个字节,第一字节是操作码,第二字节 是相对位移

量(用补码表示),CPU每次从内存只能取一个字节。假设执行到某转移指令时 容为200,执行该转移指令后要求转移到

PC的内

100开始的一段程序执行,则该转移指令第二字节的内容应

该是多少? 参考答案:

因为执行到该转移指令时 PC为200,所以说明该转移指令存放在 CPU每次从内存只能取一个字节,所以每次取一个字节后

该转移指令的执行过程为:取 →PC+1 →计算转移目标地址。假设

该转移指令第二字节为 OfSet ,则100=200+2+Ofset,即OfSet = 100 -202 =-02 = 10011010B

(注:没有说定长指令字,所以不一定是每条指令占 4.

12FCH的内存单元的内容为 38B8H ,而

38B8H单元的内容为88F9H。说明以下各情况下操作数的有效地址和操作数各是多少? (1)

给出的形式地址为

(2) 为

(3)

出的寄存器编号为 答案: (1) (2) (3) 5.

80x86微处理器和 MlPS处理器中各自提供了哪些加法指令,

处理方式。

参考答案(详细信息略): MIPS:

:怡专茗称 add 3ddu -3ddl 200单元开始的两个字节中。因为 →PC+1 →取201单元的相对位移量

PC应该加1。

200单元中的指令操作码并译码

2个字节。)

假设地址为1200H的内存单元中的内容为 12FCH ,地址为

操作数采用变址寻址,变址寄存器的内容为 12,指令中1200H。

操作数采用一次间接寻址,指令中给出的地址码1200H。

操作数采用寄存器间接寻址,指令中给8, 8号寄存器的内容为1200H。 参考

有效地址 EA=OooCH+1200H=120CH ,操作数未知。 有效地址 EA=(1200H)=12FCH ,操作数为 38B8H。 有效地址 EA=1200H ,操作数为12FCH。

通过查资料了解Intel 说明每条加法指令

的汇编形式、指令格式和功能,并比较加、减运算指令在这两种指令系统中不同的设计方式,包括不 同的溢出

匸编格式 功能 Tt T1 ττ Tf Td Td :iidd rd. rs-3 r L addu r-1 τ2, rt adii rt,τ= addiu TtJ ΓSJ imedi ate boo DU U r≡ booooo rs ?01D00 rs ClClI Dr r≡ 7υuorIlXJCUtJ GPK [rd ?DOIMooI ΓPJ?Lrd i τncdiateGFR OO GFRerEI —GP^ [TE. + InrtC?i5 are * ÷ GFR ri.l

Mdιυ :τ∏c?iatc GPR ?t' —GP^ I i∏rc??i ate Intel 80x86: AE)C Oi7on de l?ib l&itw l?id Iq /r 11 /r 丄1 ADD

1 Ξ ∕ι- Ii Λr 13 Zr O&id Ol Zr U3 /r /r Instruct i cn. ADC ALjr iτmG ALrIr AXJ i τw∣1 ΛDC Ilm3 Ξ ADC XS∕1J∣≡!* iliS ADC τ, ∕ol 6, r 1 & ADC r∕n32. r32 ADC i'2i r-∕ιt∣S ADC Γ16J T ∕rol & ADC r§_2J r∕m32 WJD KA>:J ιππ‰?:■■: ADD r∕nS2, r32 AlJD 工L3H, 3^∕τ?iΞ De≡-cr ipt i On Ad√i WLth carry isτβπ8 to AL Add ?wsi th es□rτ,y iτππsl S ts□- AX Λ≡dι Cn r32 t□ r,∕rπ32 A∣>Ξ∣ld v?i 1? e Ξ-ΓB3^,V ΓB∕H∣A ? e b v? r IBEfii ±ι? er, Add With c?τ,rv r/ml& to rl6 Add ?vi th CF r∕m32 ?t 口 r3Ξ Add i mrr∣> H 十 E K A.X ? Add τi32 to τ,∕ιm3Ξ Add r∕π?52 tβ i,32 6.

位,每个操作数的地址码长 某计算机指令系统采用定长指令字格式,指令字长 166位。指令分二地

址、单地址和零地址三类。 若二地址指令有 k2条,无地址指令有k0条,则单地址指令最多有多少条?

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

对于以下的访问地址序列:0,2,4,8,12,CaCheI缺失5次,而CaChe2缺失4次;对于以下的访问地址序列:0,3,4,8,12,16,20,CaCheI缺失7次,而CaChe2缺失6次;如此等等,可以找出很多。20.提高关联度通常会降低缺失率,但并不总是这样。请给出一个地址访问序列,使得采用<
推荐度:
点击下载文档文档为doc格式
9evw80rqi310e609m87w9sc9l3ppgr019x8
领取福利

微信扫码领取福利

微信扫码分享