admin管理员组

文章数量:1567290

2024年2月13日发(作者:)

第四章作业答案

4.1 解释概念:主存、辅存,Cache, RAM, SRAM, DRAM, ROM, PROM ,EPROM ,EEPROM

CDROM, Flash Memory.

解:1主存:主存又称为内存,直接与CPU交换信息。

2辅存:辅存可作为主存的后备存储器,不直接与CPU交换信息,容量比主存大,速度比主存慢。

3 Cache: Cache缓存是为了解决主存和CPU的速度匹配、提高访存速度的一种存储器。它设在主存和CPU之间,速度比主存快,容量比主存小,存放CPU最近期要用的信息。

4 RAM; RAM是随机存取存储器,在程序的执行过程中既可读出信息又可写入信息。

5 SRAM: 是静态RAM,属于随机存取存储器,在程序的执行过程中既可读出信息又可写入信息。靠触发器原理存储信息,只要不掉电,信息就不会丢失。

6 DRAM是动态RAM,属于随机存取存储器,在程序的执行过程中既可读出信息又可写入信息。靠电容存储电荷原理存储信息,即使电源不掉电,由于电容要放电,信息就会丢失,故需再生。

7ROM: 是只读存储器,在程序执行过程中只能读出信息,不能写入信息。

8 PROM: 是可一次性编程的只读存储器。

9 EPROM 是可擦洗的只读存储器,可多次编程。

10 EEPROM: 即电可改写型只读存储器,可多次编程。

11 CDROM 即只读型光盘存储器。

12 Flash Memory 即可擦写、非易失性的存储器。

4.3存储器的层次结构主要体现在什么地方?为什么要分这些层次?计算机如何管理这些层次?

答:存储器的层次结构主要体现在Cache—主存和主存—辅存这两个存储层次上。

Cache—主存层次在存储系统中主要对CPU访存起加速作用,即从整体运行的效果分析,CPU访存速度加快,接近于Cache的速度,而寻址空间和位价却接近于主存。

主存—辅存层次在存储系统中主要起扩容作用,即从程序员的角度看,他所使用的存储器其容量和位价接近于辅存,而速度接近于主存。

综合上述两个存储层次的作用,从整个存储系统来看,就达到了速度快、容量大、位价低的优化效果。

主存与Cache之间的信息调度功能全部由硬件自动完成。而主存—辅存层次的调度目前广泛采用虚拟存储技术实现,即将主存与辅存的一部份通过软硬结合的技术组成虚拟存储器,程序员可使用这个比主存实际空间(物理地址空间)大得多的虚拟地址空间(逻辑地址空间)编程,当程序运行时,再由软、硬件自动配合完成虚拟地址空间与主存实际物理空间的转换。因此,这两个层次上的调度或转换操作对于程序员来说都是透明的。

1

4. 6. 某机字长为32位,其存储容量是64KB,按字编址其寻址范围是多少?若主存以字节编址,试画出主存字地址和字节地址的分配情况。

解:存储容量是64KB时,

(1)按字节编址的寻址范围就是64KB.

(2)按字寻址范围 = 64K×8 / 32=16K字

按字节编址时的主存地址分配图如下:

字地址字节地址

0

4

16K ……

65528

65532

0

4

1

5

2

6

3

7

讨论:

1、在按字节编址的前提下,按字寻址时,地址的位数仍为16位,即地址编码范围仍为0~64K-1,但字(数)空间为16K字,字地址不连续。

2、字寻址的单位为:字,不是B(字节)

4.8. 试比较静态RAM和动态RAM。

答:静态RAM和动态RAM的比较见下表:

特性

存储信息

破坏性读出

需要刷新

送行列地址

运行速度

集成度

发热量

存储成本

功耗

可靠性

可用性

适用场合

SRAM

触发器

不要

同时送

使用方便

高速小容量存储器

2

DRAM

电容

需要

分两次送

不方便

大容量主存

4.9. 什么叫刷新?为什么要刷新?说明刷新有几种方法。

解:刷新——对DRAM定期进行的全部重写过程;

刷新原因——因电容泄漏而引起的DRAM所存信息的衰减需要及时补充,因此安排了定期刷新操作;

常用的刷新方法有三种——集中式、分散式、异步式。

集中式:在最大刷新间隔时间内,集中安排一段时间进行刷新;

分散式:在每个读/写周期之后插入一个刷新周期,无CPU访存死时间;

异步式:是集中式和分散式的折中。

4.11. 一个8K×8位的动态RAM芯片,其内部结构排列成256×256形式,存取周期为0.1µs。试问采用集中刷新、分散刷新及异步刷新三种方式的刷新间隔各为多少?

注:该题题意不太明确。实际上,只有异步刷新需要计算刷新间隔。

解:设DRAM的刷新最大间隔时间为2ms,则

异步刷新的刷新间隔 =2ms/256行 =0.0078125ms =7.8125µs 即:每7.8125µs刷新一行。

集中刷新时,刷新最晚启动时间=2ms-0.1µs×256行 =2ms-25.6µs=1974.4µs

集中刷新启动后刷新间隔 = 0.1µs即:每0.1µs刷新一行。

集中刷新的死时间 =0.1µs×256 =25.6µs

分散刷新的刷新间隔 =0.1µs×2 =0.2µs即:每0.2µs刷新一行。

分散刷新一遍的时间 =0.1µs×2×256行 =51.2µs 则分散刷新时,2ms内可重复刷新遍数 =2ms/ 51.2µs ≈39遍

4.14. 某8位微型机地址码为18位,若使用4K×4位的RAM芯片组成模块板结构的存储器,试问:

(1)该机所允许的最大主存空间是多少?

(2)若每个模块板为32K×8位,共需几个模块板?

(3)每个模块板内共有几片RAM芯片?

(4)共有多少片RAM?

(5)CPU如何选择各模块板?

解:

(1)218 = 256K,则该机所允许的最大主存空间是256K×8位(或256KB);

(2)模块板总数 = 256K×8 / 32K×8 = 8块;

(3)板内片数 = 32K×8位 / 4K×4位= 8 × 2 = 16片;

(4)总片数 = 16片× 8 = 128片;

(5)CPU通过最高3位地址译码选板,次高3位地址译码选片。地址格式分配如下:

17 15 14 12 11 0

3 3 12

3

4.15设CPU共有16根地址线,8根数据线,并用/MREQ(低电平有效)作访存控制信号,R/-W作读/写命令信号(高电平为读,低电平为写)。现有这些存储芯片:

ROM(2K×8位,4K×4位,8K×8位),RAM(1K×4位,2K×8位,4K×8位),及74138译码器和其他门电路(门电路自定)。

试从上述规格中选用合适的芯片,画出CPU和存储芯片的连接图。要求如下:

(1)最小4K地址为系统程序区,4096~16383地址范围为用户程序区;

(2)指出选用的存储芯片类型及数量;

(3)详细画出片选逻辑。

解:

(1)最小4K地址为系统程序区,4096~16383地址范围为用户程序区;

(2)指出选用的存储芯片类型及数量;

(3)详细画出片选逻辑。

解:(1)地址空间分配图:

系统程序区(ROM共4KB):0000H-0FFFH

用户程序区(RAM共12KB):4096-------------------- 16383 (D)

1,0000,0000,0000-11,1111,1111,1111(B)

1000H----3FFFH。()

(2):ROM:4K × 4位:2片;(位扩展)

RAM:4K × 8位:3片;(字扩展)

选片:ROM:选择4K×4位芯片2片,位并联RAM:选择4K×8位芯片3片,字串联(RAM1地址范围为:1000H-1FFFH,RAM2地址范围为2000H-2FFFH, RAM3地址范围为:3000H-3FFFH)

A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

RAM1

RAM2

RAM3

0

0

0

0

0

0

ROM1,2 0

CPU和存储器连接逻辑图及片选逻辑如下图(1)所示:

4

CS...CSCPUD0D3D4D7R/CS图(1)

(注:修改 A15 接/G2A, / MREQ接/G2B,G1接高电平(VCC)!)

4.17. 写出1100、1101、1110、1111对应的汉明码。(配偶原则)

解:有效信息均为n=4位,假设有效信息用b4b3b2b1表示

校验位位数k=3位,(2k>=n+k+1)

设校验位分别为c1、c2、c4,则汉明码共4+3=7位,即:c1c2b4c4b3b2b1

校验位在汉明码中分别处于第1、2、4位

c1=b4⊕b3⊕b1

c2=b4⊕b2⊕b1

c4=b3⊕b2⊕b1

当有效信息为1100时,c1c2c4=011,汉明码为0111100。

当有效信息为1101时,c1c2c4=100,汉明码为1010101。

当有效信息为1110时,c1c2c4=000,汉明码为0010110。

当有效信息为1111时,c1c2c4=111,汉明码为1111111。

4.18. 已知收到的汉明码(按配偶原则配置)为1100100、1100111、1100000、1100001,检查上述代码是否出错?第几位出错?

解:假设接收到的汉明码为:c1c2b4c4b3b2b1

纠错过程如下:

P1=c1⊕b4⊕b3⊕b1

P2=c2⊕b4⊕b2⊕b1

P4=c4⊕b3⊕b2⊕b1

如果收到的汉明码为1100100,则p4p2p1=110,说明代码有错,第6位(b2)出错,有效信息为:0110

如果收到的汉明码为1100111,则p4p2p1=111,说明代码有错,第7位(b1)出错,有5

......

效信息为: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成本价高,所以不能取代主存。

6

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位,存储器按字节寻址,写出上述三种映射方式下主存的地址格式。

解:

(1) Cache 容量2K字=211字(Cache地址 11位)

块长4字 4=22字

Cached包含的块数= Cache 容量/块长 =211/22 =29块

Cache字块地址

9

(2)在直接映射方式下,设计主存地址格式

主存容量 256K字 =218字(主存地址 18位)

主存包含的块数:218/22 =216块

主存字块标记=主存地址长度- Cache地址长度=18-11=7 位

主存字块标记

7

(3)在四路组相联映射方式下,设计主存地址格式

四路组相联=>每组4块=>r=2 (4块=22

)

Cache可分的组数= 29/22 = 27 =>q=7(组地址需要7位)

主存字块标记=主存地址长度- 组地址长度-字块内地址(b)=18-7-2=9位

主存字块标记

9

字块内地址

2

Cache字块地址

9

字块内地址

2

组地址

7

7

字块内地址

2

(4)在全相联映射方式下,设计主存地址格式:

主存字块标记=主存地址长度- 字块内地址(b)=18-2=16位

主存字块标记

16

字块内地址

2

同理:若存储字长为32位,存储器按字节寻址,写出上述三种映射方式下主存的地址格式。

Cache 容量 2K字=211*32/8=213(Cache地址 13位)

每个块容量=4*32/8=16字节(块内地址需4位)

Cache包含的块数:2K字/4字=29块

Cache字块地址

9

字块内地址

4

(1)在直接映射方式下,设计主存地址格式

主存容量 256K字 =218

字= 218

*32/8=220字节(主存字节地址20位)

每个块容量=4*32/8=16字节(块内地址需4位)

主存包含的块数: 218/22 =216块

主存字块标记=主存地址长度- Cache地址长度=20-4-9=7 位

主存字块标记

7

Cache字块地址

9

字块内地址

4

(2)在四路组相联映射方式下,设计主存地址格式

四路组相联=>每组4块=>r=2 (4块=22

)

Cache可分的组数= 29/22 = 27 =>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组织。

8

字块内地址

4

(1)画出主存地址字段中各段的位数;

(2)设Cache的初态为空,CPU依次从主存第0、1、2……89号单元读出90个字(主存一次读出一个字),并重复按此次序读8次,问命中率是多少?

(3)若Cache的速度是主存的6倍,试问有Cache和无Cache相比,速度约提高多少倍?

解:(1)由于容量是按字节表示的,则主存地址字段格式划分如下:

1. 主存容量为4MB=222B (主存字节地址共22位)

2. Cache容量为16KB=214B (Cache字节地址14位)

3. 每字块有8个字,每字32位,=>8*32/8=25

(块内字节地址5位)

4. 四路组相联映射(即Cache每组内共有4个字块)

5. Cache包括的块数=214B/8*32=29

6. Cache的组数=29

/ 4 =27

组(组地址为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

M(x)·x4

=110 0000

M(x)·x4/G(x) =110 0000/11011=100+1100/11011 R(x) =1100

M(x)·x4+R(x) =110 0000+1100=110 1100 =CRC码(7,3)码

注:此题的G(x)选得不太好,当最高位和最低位出错时,余数相同,均为0001。此时只能检错,无法纠错

9

4.42 有一个(7,4)码,生成多项式G(x)=x3+x+1,写出代码1001的循环冗余校验码。

解:编码过程如下:

M(x) =1001 n =4

G(x) =1011 k+1 =4 k =3

M(x)·x3=1001 000

M(x)·x3/G(x) =1001 000/1011=1010+110/1011 R(x) =110

M(x)·x3+R(x) =1001 000+110=1001 110 =CRC码(7,4)码

10

本文标签: 主存地址信息刷新字块