本文共 6224 字,大约阅读时间需要 20 分钟。
4.2.1
.主存中存储单元地址的分配:存储字长:存储器中一个存储单元(存储地址)所存储的二进制代码的位数,即存储器中的MDR的位数。
字(word) : 若干个字节组成一一个”字” ( word)。一个”字”可以存放-条计算 机指令或一一个数据。 存储芯片的容量: 地址线和数据线的位数来表示
题目一:机器字长32位,地址线24位,按字节寻址范围为:16M
答:1字节 = 8位二进制数; 机器存储字长32位 =32/8 =4字节; 24位地址线有224字节种地址===》224字节 1kb = 1024b = 210b 1M = 1024kb = (1024*1024)字节 = (210 * 210)字节 = 220b 所以224b=220b * 24=1M * 24=16M题目二:机器字长32位,地址线24位,按字寻址范围为:4M
答:1字节 = 8位二进制数 ; 机器存储字长32位 =32/8 =4字节; 所以一个字对应4个字节 24位地址线有224字节种地址===》224字节 1kb = 1024b = 210b 1M = 1024kb = (1024*1024)字节 = (210 * 210)字节 = 220b 所以224b=220b * 24=1M * 24=16M 因为一个字对应4个字节 16/4=4MV题目三:机器字长16位,地址线24位,按字节寻址范围为:16M
答:1字节 = 8位二进制数; 机器存储字长16位 =16/8= 2字节; 24位地址线有224字节种地址===》224字节 1kb = 1024b = 210b 1M = 1024kb = (1024*1024)字节 = (210 * 210)字节 = 220b 所以224b=220b * 24=1M * 24=16M题目四:机器字长16位,地址线24位,按字寻址范围为:8M
答:1字节 = 8位二进制数; 机器存储字长16位 =16/8= 2字节; 所以一个字对应2个字节 24位地址线有224字节种地址===》224字节 1kb = 1024b = 210b 1M = 1024kb = (1024*1024)字节 = (210 * 210)字节 = 220b 所以224b=220b * 24=1M * 24=16M 因为一个字对应2个字节 16/2=8MV题目五:某电脑主存的存储容量为256MB,则按字节寻址的地址线位数对应:28位
256MB= 1MB *256=1MB * 28 1MB=220字节 256MB = 220 * 28=228B 所以对应的地址线位数:28位题目六:计算存储芯片容量,地址线为10根,数据线4根,则芯片容量为:4k位
答:210个存储单元,1k=210B,每个存储单元包含4位数据, 芯片容量=210x4 = 1K * 4位 =4K位题目七:计算存储芯片容量,地址线为14根,数据线1根,则芯片容量为:16k位
答:214个存储单元,1k = 210B,每个存储单元包含1位数据, 芯片容量=214x1 = 16K * 1位 =16K位题目八: 某计算机字长是32位,它的存储容量是64KB,按字编址,它的寻址范围是( 16kb )
答:机器字长32位,8位2进制数表示一个字节,机器字长4字节,寻址范围64/4=16kb题目九: 2片1K x 4位 存储芯片怎么组成1k x 8位的存储芯片?
答:利用位扩展,1K x4位的存储芯片有地址线:10根,数据线:4根 将芯片1的数据线作为高四位D7 - D4,另一片的数据线作为低四位D3-D0题目十:2片1K x 8位 存储芯片怎么组2k x 8位的存储芯片?
答:利用字扩展, 1K x 8位的芯片,有10根地址线,8根数据线; 2K x 8位的芯片,有11根地址线,8根数据线; A0-A9作为地址线,A10用作片选线,因为片选的输入端必须低电平有效 当A10为低电平时,片选信号CS0 有效,选中芯片1; 当A10为高电平时,片选信号经过反向后,信号cs1有效,选中芯片2题目十一: 8片1K x 4位 存储芯片怎么组成4k x 8位的存储芯片?
答:利用字,位同时扩展 两片1K x 4位的芯片构成一组1K x 8位的存储器(位扩展) 4组1K x 8位的存储器便构成4K x 8位的存储器 4K x 8位的存储器:有12根地址线 ,8根数据线 A0 -A9:地址线 A10 - A11:经过片选译码器 得到4个片选信号cs0 cs1 cs2 cs3 cs4 4个片选信号分别选择其中一组 1K x 8位的信号题目十二:
1.主存地址空间分配: 6000H - 67FFH为系统程序区 6800H ~ 6BFFH为用户程序区 2.说明各选几片芯片 3.画出存储芯片的片选逻辑图 答:1.先将16进制地址码 转换为 2 进制地址码,确定其总容量 6000转为二进制:(利用8,2,4,1转换) 6 : 0+4+2+0 -->0110 0 : 0+ 0 +0 + 0–>0000 6000 = 0110 0000 0000 0000 67FFH转为: 7 :0+4+2+1 -->0111 F : =15=8+4+2+1=1111 67FF = 0110 0111 1111 1111 同理: 6800 = 0110 1000 0000 0000 6BFF = 0110 1011 1111 1111 因为有16根地址线,所以排列为:A0 ~ A15A15 | A14 | A13 | A12 | A11 | A10 | A9 | A8 | A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
一:
系统程序区:A0~ A10 编码从全0 ->全1,一共11根线 z11=2k,8根数据线,所以系统程序区总容量为2K x 8位 用户程序区:A0~ A9编码从全0 ->全1,一共10根线 z10=1k,8根数据线,所以系统程序区总容量为1K x 8位 二: 系统程序区:总容量为2K x 8位,因为ROM芯片存放系统程序,所以选择1片 2K x 8位的ROM 用户程序区:总容量为1K x 8位,用户程序,需要可读写,因为RAM芯片存放系统程序,所以选择2片 1K x 4位的RAM芯片 三: 分配地址线: A10 ~ A0 接2K x 8位ROM的 地址线 A9 ~ A0接1K x 4位的RAM的地址线 A11 ~ A15 :总共5根线作为片选线 使用74138译码器: A13 连接 C A12 连接 B A11 连接 A 此时CBA有两种情况,对应Y4 Y5 (74138工作原理 二进制转为十进制) - 100 (转为十进制)=4 - 101 (转为十进制)=5 74138译码器: G1 高电平 G2a 和G2b为低电平才能正常工作 A15始终为“0”,为低电平----对应G2a A14始终为“1”,为高电平—对应G1 访存控制信号MREQ(低电平有效):对应G2b答:
因为有16根地址线,所以排列为:A0 ~ A15 根据地址范围写出二进制地址码: 最小8K x 8位的系统程序区:地址码从全 0 开始,8K说明地址线有13根 A0 ~ A12的地址码从全0 变为 全1 ;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 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
相邻的16k x 8为用户程序区: 用两片 8k x 8位的RAM芯片 组成16K x 8位的芯片
RAM1地址为:A15 | A14 | A13 | A12 | A11 | A10 | A9 | A8 | A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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 | 1 |
RAM2地址为:
A15 | A14 | A13 | A12 | A11 | A10 | A9 | A8 | A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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 | 1 |
最大4k x 8位系统程序工作:
有12根地址线,A0-A11A15 | A14 | A13 | A12 | A11 | A10 | A9 | A8 | A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 1 | 1 | 1 | 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 | 1 | 1 |
分配地址线:
A12 ~ A0 接1片8K x 8位ROM的 地址线和2片8K x 8位RAM的 地址线 A11 ~ A0接4K x 8位的RAM的地址线 A11 ~ A15 :总共5根线作为片选线 使用74138译码器: A15 连接 C A14 连接 B A13 连接 A 此时CBA有4种情况,对应Y0 Y1 Y2 Y7 (74138工作原理 二进制转为十进制) - 000 (转为十进制)=0 - 001 (转为十进制)=1 - 010 (转为十进制)=2 - 111 (转为十进制)=7 74138译码器: G1 高电平 G2a 和G2b为低电平才能正常工作 高电平—对应G1 访存控制信号MREQ(低电平有效):对应G2b G2A存储器模块数为:n,存取周期为:T 总线传输周期:t 已知低位交叉的存储器,连续读取n个字所需要的时间t1为: T +(n-1)t
已知高位交叉的存储器,连续读取n个字所需要的时间t2为: nT
顺序存储和交叉存储连续读出4个字的信息量为324=128位, 顺序存储存储器连续读出4个字的时间为:200ns4=800ns
交叉存储存储器连续读出4个字的时间为:200ns+50ns*(4-1)=350ns 顺序存储器的带宽为:128bit/800ns=16 * 107bps 交叉存储器的带宽为:128bit/350ns=37 * 107bpsFDA459H=1111 1101 1010 0100 0101 1001
有题目知16kb缓存(214 =16k)缓存地址有14位 又因为主存字块标记为主存地址长度与cache地址长度之差,即 主存字块标记24-14=10位 求缓存字块地址和字块内地址? 缓存字块地址位数:因为缓存大小为16k,存储字长32位,一个字节有8位2进制数,所有4个字节。所以缓存中总共有16KB/4B=212个字 因为每个字块8个字,所以有212/ 8=29块 ,所以缓存字块地址为9位。 字块内地址:(3位表示8个字,2位表示每字32位)所以字块内地址5位题目十九:某计算机字长为32位,按字节编址,采用小端(Little Endian)方式存储数据。假定有一个double型变量,其机器数表示为1122 3344 5566 7788H,存放在0000 8040H开始的连续存储单元中,则存储单元0000 8046H中存放的是 (A )
A 22H B 33H C 77H D 66H题目二十:设某机主存容量为16MB,缓存的容量为16KB。每字块有8个字,每个字32位。设计一个四路组相连映射(即缓存每组内共有4个字块)的缓存组织,要求:
(1)画出主存地址字段中各段的位数。 主存容量为16MB =224b 即主存地址字段为24位 字块内地址:(3位表示8个字,2位表示每字32位)所以字块内地址5位 缓存字块地址位数:因为缓存大小为16k,存储字长32位,一个字节有8位2进制数,所有4个字节。所以缓存中总共有16KB/4B=212个字 因为每个字块8个字,所以有212/ 8=29块 , 四路组相连:2r=4 r=2 所以缓存字块地址为9-2=7位。 又因为主存字块标记为主存地址长度与cache地址长度之差,即主存字块标记24-7-5=12位(2)设缓存初态为空,CPU依次从主存第0、1、2、…、99号单元读出100个字(主存一次读出一个字),并重复此次序读8次,问命中率是多少?
字块中共8个字,初态为空,访问0时未命中,访问1-7单元时均命中,同理8,16,。。。。,96均未命中,一共13次未命中。1008-13/1008=98.375%
(3)若缓存的速度是主存速度的6倍,试问有缓存和无缓存相比,速度提高多少倍?
6t 800 / t(800-13)+6t13 主存存取周期6t 缓存存取周期t 不用缓存需要的时间为 6t800 用缓存需要的时间为 6t13 + t*(1000-13) 速度提高多少倍:6t800 /6t13 + t*(1000-13) - 1 =4.5转载地址:http://mothn.baihongyu.com/