计算机组成原理第四章作业答案终板.docx
《计算机组成原理第四章作业答案终板.docx》由会员分享,可在线阅读,更多相关《计算机组成原理第四章作业答案终板.docx(12页珍藏版)》请在冰豆网上搜索。
计算机组成原理第四章作业答案终板
第四章作业答案
4.1解释概念:
主存、辅存,Cache,RAM,SRAM,DRAM,ROM,PROM,EPROM,EEPROMCDROM,FlashMemory.
解:
1主存:
主存又称为内存,直接与CPU交换信息。
2辅存:
辅存可作为主存的后备存储器,不直接与CPU交换信息,容量比主存大,速度比主存慢。
3Cache:
Cache缓存是为了解决主存和CPU的速度匹配、提高访存速度的一种存储器。
它设在主存和CPU之间,速度比主存快,容量比主存小,存放CPU最近期要用的信息。
4RAM;RAM是随机存取存储器,在程序的执行过程中既可读出信息又可写入信息。
5SRAM:
是静态RAM,属于随机存取存储器,在程序的执行过程中既可读出信息又可写入信息。
靠触发器原理存储信息,只要不掉电,信息就不会丧失。
6DRAM是动态RAM,属于随机存取存储器,在程序的执行过程中既可读出信息又可写入信息。
靠电容存储电荷原理存储信息,即使电源不掉电,由于电容要放电,信息就会丧失,故需再生。
7ROM:
是只读存储器,在程序执行过程中只能读出信息,不能写入信息。
8PROM:
是可一次性编程的只读存储器。
9EPROM是可擦洗的只读存储器,可多次编程。
10EEPROM:
即电可改写型只读存储器,可多次编程。
11CDROM即只读型光盘存储器。
12FlashMemory即可擦写、非易失性的存储器。
存储器的层次结构主要表达在什么地方?
为什么要分这些层次?
电脑如何管理这些层次?
答:
存储器的层次结构主要表达在Cache—主存和主存—辅存这两个存储层次上。
Cache—主存层次在存储系统中主要对CPU访存起加速作用,即从整体运行的效果分析,CPU访存速度加快,接近于Cache的速度,而寻址空间和位价却接近于主存。
主存—辅存层次在存储系统中主要起扩容作用,即从程序员的角度看,他所使用的存储器其容量和位价接近于辅存,而速度接近于主存。
综合上述两个存储层次的作用,从整个存储系统来看,就到达了速度快、容量大、位价低的优化效果。
主存与Cache之间的信息调度功能全部由硬件自动完成。
而主存—辅存层次的调度目前广泛采用虚拟存储技术实现,即将主存与辅存的一部份通过软硬结合的技术组成虚拟存储器,程序员可使用这个比主存实际空间〔物理地址空间〕大得多的虚拟地址空间〔逻辑地址空间〕编程,当程序运行时,再由软、硬件自动配合完成虚拟地址空间与主存实际物理空间的转换。
因此,这两个层次上的调度或转换操作对于程序员来说都是透明的。
4.6.某机字长为32位,其存储容量是64KB,按字编址其寻址范围是多少?
假设主存以字节编址,试画出主存字地址和字节地址的分配情况。
解:
存储容量是64KB时,
(1)按字节编址的寻址范围就是64KB.
(2)按字寻址范围=64K×8/32=16K字
按字节编址时的主存地址分配图如下:
0
0
1
2
3
4
4
5
6
7
16K……
65528
65532
字地址字节地址
讨论:
1、在按字节编址的前提下,按字寻址时,地址的位数仍为16位,即地址编码范围仍为0~64K-1,但字(数)空间为16K字,字地址不连续。
2、字寻址的单位为:
字,不是B〔字节〕
4.8.试比较静态RAM和动态RAM。
答:
静态RAM和动态RAM的比较见下表:
特性
SRAM
DRAM
存储信息
触发器
电容
破坏性读出
非
是
需要刷新
不要
需要
送行列地址
同时送
分两次送
运行速度
快
慢
集成度
低
高
发热量
大
小
存储成本
高
低
功耗
高
低
可靠性
高
低
可用性
使用方便
不方便
适用场合
高速小容量存储器
大容量主存
4.9.什么叫刷新?
为什么要刷新?
说明刷新有几种方法。
解:
刷新——对DRAM定期进行的全部重写过程;
刷新原因——因电容泄漏而引起的DRAM所存信息的衰减需要及时补充,因此安排了定期刷新操作;
常用的刷新方法有三种——集中式、分散式、异步式。
集中式:
在最大刷新间隔时间内,集中安排一段时间进行刷新;
分散式:
在每个读/写周期之后插入一个刷新周期,无CPU访存死时间;
异步式:
是集中式和分散式的折中。
4.11.一个8K×8位的动态RAM芯片,其内部结构排列成256×256形式,存取周期为。
试问采用集中刷新、分散刷新及异步刷新三种方式的刷新间隔各为多少?
注:
该题题意不太明确。
实际上,只有异步刷新需要计算刷新间隔。
解:
设DRAM的刷新最大间隔时间为2ms,则
异步刷新的刷新间隔=2ms/256行=0.0078125ms=7.8125µs即:
每刷新一行。
集中刷新时,刷新最晚启动时间=2ms-0.1µs×256行
集中刷新启动后刷新间隔即:
每刷新一行。
集中刷新的死时间=0.1µs×256=25.6µ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位地址译码选片。
地址格式分配如下:
设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
ROM1,2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
RAM1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
RAM2
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
RAM3
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
CPU和存储器连接逻辑图及片选逻辑如以下图
(1)所示:
图〔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〕出错,有效信息为:
0110
如果收到的汉明码为1100000,则p4p2p1=011,说明代码有错,第3位〔b4〕出错,有效信息为:
1000
如果收到的汉明码为1100001,则p4p2p1=100,说明代码有错,第4位〔c4〕出错,有效信息为:
0001
已知接收到以下汉明码,分别写出它们所对应的欲传送的代码。
〔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成本价高,所以不能取代主存。
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
〔2〕在直接映射方式下,设计主存地址格式
主存容量256K字=218字〔主存地址18位〕
主存包含的块数:
218/22=216块
主存字块标记=主存地址长度-Cache地址长度=18-11=7位
主存字块标记
7
Cache字块地址
9
字块内地址
2
〔3〕在四路组相联映射方式下,设计主存地址格式
四路组相联=>每组4块=>r=2(4块=22)
Cache可分的组数=29/22=27=>q=7〔组地址需要7位〕
主存字块标记=主存地址长度-组地址长度-字块内地址〔b〕=18-7-2=9位
主存字块标记
9
组地址
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
4.32.设某机主存容量为4MB,Cache容量为16KB,每字块有8个字,每字32位,设计一个四路组相联映射〔即Cache每组内共有4个字块〕的Cache组织。
〔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
87232
〔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≈≈98%
〔3〕设无Cache时访主存需时720T〔T为主存周期〕,加入Cache后需时:
708´T/6+12T=〔118+12〕T=130T
则:
720T/130T=倍
有Cache和无Cache相比,速度提高了倍左右。
设有效信息为110,试用生成多项式G(x)=11011将其编成循环冗余校验码。
解:
编码过程如下:
M(x)=110n=3
G(x)=11011k+1=5k=4
M(x)·x4=1100000
M(x)·x4/G(x)=1100000/11011=100+1100/11011R(x)=1100
M(x)·x4+R(x)=1100000+1100=1101100=CRC码〔7,3〕码
注:
此题的G(x)选得不太好,当最高位和最低位出错时,余数相同,均为0001。
此时只能检错,无法纠错
4.42有一个〔7,4〕码,生成多项式G(x)=x3+x+1,写出代码1001的循环冗余校验码。
解:
编码过程如下:
M(x)=1001n=4
G(x)=1011k+1=4k=3
M(x)·x3=1001000
M(x)·x3/G(x)=1001000/1011=1010+110/1011R(x)=110
M(x)·x3+R(x)=1001000+110=1001110=CRC码〔7,4〕码