效信息为:0110
如果收到的汉明码为1100000,则p4p2p1=011,说明代码有错,第3位(b4)出错,有效信息为:1000
如果收到的汉明码为1100001,则p4p2p1=100,说明代码有错,第4位(c4)出错,有效信息为:0001
4.19 已知接收到下列汉明码,分别写出它们所对应的欲传送的代码。 (1) 1100000(按偶性配置) (4) 0011001(按奇性配置) 解:
(1)1100000(按配偶性)
注意:按偶配置,检测时, Pi=0 正确,代表本小组(gi)的1的个数为偶数。 Pi=1 错误
如果收到的汉明码为1100000,
则p4p2p1=011,说明代码有错,第3位(b4)出错,有效信息为:1000
(4)0011001(按奇配置) 则: p4p2p1=000
注意:按奇配置,检测时, Pi=0 错误,代表本小组(gi)的1的个数不为奇数个1 Pi=1 正确 代表本小组(gi)的1的个数为奇数个1(正确)
为了定位,可取反 p4p2p1=/0/0/0=111 即第7位出错,有效信息为:1000
4.25 什么是程序访问的局部性?存储系统中哪一级采用了程序访问的局部性原理。 答:局部性访问原理是指程序执行时对存储器的访问是不均匀的,这是由于指令和数据在主存的地址分布不是随机的,而是相对的集中(簇聚)。
存储系统的缓存----主存级和主存-----辅存级都用到程序访问的局部性原理。对缓存---主存级而言,把CPU最近期执行的程序放在容量较小,速度较高的缓存中。对主存---辅存级而言,把程序中访问频度高,比较活跃的部分放在主存中,这样既提高了访存的速度又扩大了存储器的容量。
4.26 计算机中Cache的作用是什么?能不能把Cache扩大,最后取代主存,WHY? 答:Cache的作用是提高访存速度。当Cache容量达到一定值时,命中率不因容量的增大而明显提高,而且Cache成本价高,所以不能取代主存。
9
4.25(补充). Cache做在CPU芯片有什么好处?将指令Cache和数据Cache分开又有什么好处?
答:Cache做在CPU芯片主要有下面几个好处:
1)可提高外部总线的利用率。因为Cache在CPU芯片,CPU访问Cache时不必占用外部总线。
2)Cache不占用外部总线就意味着外部总线可更多地支持I/O设备与主存的信息传输,增强了系统的整体效率。
3)可提高存取速度。因为Cache与CPU之间的数据通路大大缩短,故存取速度得以提高。 将指令Cache和数据Cache分开有如下好处:
1)可支持超前控制和流水线控制,有利于这类控制方式下指令预取操作的完成。 2)指令Cache可用ROM实现,以提高指令存取的可靠性。
3)数据Cache对不同数据类型的支持更为灵活,既可支持整数(例32位),也可支持浮点数据(如64位)。
4.28. 设主存容量为256K字,Cache容量为2K字,块长为4。 (1)设计Cache地址格式,Cache中可装入多少块数据? (2)在直接映射方式下,设计主存地址格式。
(3)在四路组相联映射方式下,设计主存地址格式。 (4)在全相联映射方式下,设计主存地址格式。
(5)若存储字长为32位,存储器按字节寻址,写出上述三种映射方式下主存的地址格式。
解:
11
(1) Cache 容量 2K字=2字 (Cache地址 11位)
2
块长4字 4=2字
11 29
Cached包含的块数= Cache 容量/块长 =2/2 =2 块
Cache字块地址 9 字块地址 2
(2)在直接映射方式下,设计主存地址格式
18
主存容量 256K字 =2字 ( 主存地址 18位)
18216
主存包含的块数: 2/2 =2 块
主存字块标记=主存地址长度- Cache地址长度=18-11=7 位
主存字块标记 7
(3)在四路组相联映射方式下,设计主存地址格式
2
四路组相联=>每组4块=>r=2 (4块=2 )
927
Cache可分的组数= 2/2 = 2 =>q=7 (组地址需要7位)
主存字块标记=主存地址长度- 组地址长度-字块地址(b)=18-7-2=9 位
主存字块标记 9
Cache字块地址 9 字块地址 2 组地址 7 9
字块地址 2
(4)在全相联映射方式下,设计主存地址格式:
主存字块标记=主存地址长度- 字块地址(b)=18-2=16 位
主存字块标记 16 字块地址 2
同理:若存储字长为32位,存储器按字节寻址,写出上述三种映射方式下主存的地址格式。
11 13
Cache 容量 2K字=2 *32/8=2 (Cache地址 13位) 每个块容量=4*32/8=16字节 (块地址需4位)
9
Cache包含的块数:2K字/4字=2块
Cache字块地址 9 字块地址 4
(1)在直接映射方式下,设计主存地址格式
18 18 20
主存容量 256K字 =2字 = 2*32/8=2 字节 ( 主存字节地址 20位) 每个块容量=4*32/8=16字节 (块地址需4位)
18216
主存包含的块数: 2/2 =2 块
主存字块标记=主存地址长度- Cache地址长度=20-4-9=7 位
主存字块标记 7 Cache字块地址 9 字块地址 4
(2)在四路组相联映射方式下,设计主存地址格式
2
四路组相联=>每组4块=>r=2 (4块=2 )
927
Cache可分的组数= 2/2 = 2 =>q=7 (组地址需要7位)
主存字块标记=主存地址长度- 组地址长度-字块地址(b)=20-7-4=9 位
主存字块标记 9 组地址 7 字块地址 4
(3)在全相联映射方式下,设计主存地址格式:
主存字块标记=主存地址长度- 字块地址(b)=20-4=16 位
主存字块标记 16
4. 32. 设某机主存容量为4MB,Cache容量为16KB,每字块有8个字,每字32位,设计一个四路组相联映射(即Cache每组共有4个字块)的Cache组织。
9
字块地址 4
(1)画出主存地址字段中各段的位数;
(2)设Cache的初态为空,CPU依次从主存第0、1、2……89号单元读出90个字(主存一次读出一个字),并重复按此次序读8次,问命中率是多少?
(3)若Cache的速度是主存的6倍,试问有Cache和无Cache相比,速度约提高多少倍? 解:(1)由于容量是按字节表示的,则主存地址字段格式划分如下:
22
1. 主存容量为4MB=2B (主存字节地址共22位)
14
2. Cache容量为16KB=2B (Cache字节地址14位)
5
3. 每字块有8个字,每字32位,=>8*32/8=2 (块字节地址5位) 4. 四路组相联映射(即Cache每组共有4个字块)
149
5. Cache包括的块数=2B/8*32=2个
9 7
6. Cache的组数=2/ 4 =2组 (组地址为7位)
7. 主存字块标记=主存地址长度- 组地址长度-字块地址(b)=22-7-5=10 位
主存字块标记 10 组地址 7 字块地址 5
8 7 2 3 2
(2)由于题意中给出的字地址是连续的,故(1)中地址格式的最低2位不参加字的读出操作。当主存读0号字单元时,每字块有8个字,将主存0号字块(0~7)调入Cache(0组0号块),主存读8号字单元时,将1号块(8~15)调入Cache(1组0号块)…… 主存读89号单元时,将11号块(88~89)调入Cache(11组0号块)。
共需调90/8 =12次,就把主存中的90个字调入Cache。除读第1遍时CPU需访问主存12次外,以后重复读时不需再访问主存。则在90×8 =720个读操作中: 访Cache次数 =(90-12)+630 =708次 Cache命中率 =708/720 ≈0.98≈ 98%
(3)设无Cache时访主存需时720T(T为主存周期),加入Cache后需时: 708′T/6+12T =(118+12)T =130T 则:720T/130T =5.54倍
有Cache和无Cache相比,速度提高了4.54倍左右。
4.41 设有效信息为110,试用生成多项式G(x) =11011将其编成循环冗余校验码。 解:编码过程如下: M(x) =110 n =3
G(x) =11011 k+1 =5 k =4
4
M(x)·x=110 0000
4
M(x)·x/G(x) =110 0000/11011=100+1100/11011 R(x) =1100
4
M(x)·x+R(x) =110 0000+1100=110 1100 =CRC码 (7,3)码
注:此题的G(x)选得不太好,当最高位和最低位出错时,余数相同,均为0001。此时只能检错,无法纠错
9
3
4.42 有一个(7,4)码,生成多项式G(x)=x+x+1,写出代码1001的循环冗余校验码。 解:编码过程如下: M(x) =1001 n =4
G(x) =1011 k+1 =4 k =3
3
M(x)·x=1001 000
3
M(x)·x/G(x) =1001 000/1011=1010+110/1011 R(x) =110
3
M(x)·x+R(x) =1001 000+110=1001 110 =CRC码 (7,4)码
9
相关推荐: