某计算机系统主存容量为16MB,计算机组成原理习题课.ppt

P150 11(DRAM刷新),RAM芯片内部结构256×256,存储周期0.1us 假定RAM芯片刷新周期2ms 集中刷新间隔=2ms 分散刷新间隔=256×0.1us=25.6us 异步刷新间隔=2ms,P151 第15题1/8,16根地址线,8根数据线 CPU具有64K×8位的寻址能力 主存储器容量上限是64K×8位 位扩展宽度:8位,P151 第15题2/8,4K地址为系统程序区(ROM区) ROM地址空间:0000~0FFF,容量:4K×8 选择4K×4,2K×8芯片均可 选择4K×4芯片2片,采用位扩展 4096~16383为用户程序区(RAM区) RAM地址空间:1000~3FFF,容量:12K×8 选择1K×4,2K×8,4K×8芯片均可 选择4K×8芯片3片,采用字扩展,P151 第15题3/8,存储器芯片地址空间 共需4个片选,P151 第15题4/8,74138,P151 第15题5/8,74138真值表,,,,,,,,,,,,A0,P151 第15题6/8,负逻辑:译码输出直接作为片选信号 74138输入管脚连接: 控制端:E2,E1#,E0# E2:H(高电平) E1#,E0#:CPU存储器访问请求线MREQ# 译码地址输入端:A2,A1,A0 A2:L(低电平) A1,A0:CPU地址线A13,A12,P151 第15题7/8,译码输出,P151 第15题8/8,,P151 第16题,8片8K×8芯片与CPU连接 共需8个片选,P151 第16题,,P151 第16题,,无论数据写到哪个芯片,A000起始地址芯片总是有相同数据 原因:A000起始地址这个芯片的片选信号发生问题,无论A15A14A13为什么值,该芯片片选信号总为低电平:译码器损坏致使CS5总为低,或芯片的CS端搭接到其他低电平信号上。,P151 第16题,,A13与CPU断线,并搭接成高电平。,,4.28 4.29 4.32,1. 某机主存容量为16MB,组相联方式的Cache容量为64KB,Cache与主存都分为16组,每个数据块为256字节。某指令执行时,经寻址计算,其字节操作数的有效地址为020281H,又知Cache中第2组(组号为2的那组)的前4块已装入,且第2组前4块的Tag内容为:,(1) 写出主存与Cache的地址格式; (2)上述操作数能否从Cache中读取,若能,给出其在Cache中的地址。,CACHE补充:第1题,第1题-第1问,块尺寸=256字节 块内地址:8位 组数=64KB/(256B*16)=16 组地址:4位 主存块数=16MB/256B=64K 主存块/组=64K/16=4K 组内块地址:12位,第1题-第1问,主存地址:24位 Cache的Tag:12位 12位组内块地址,第1题-第2问,主存地址:020281H 最低8位为块内地址 对应组内块地址:020H(将与Cache块Tag比较) 主存块号:0202H 对应Cache组号 主存块号%组数=0202H%16=2 表明:该主存地址可映射在Cache第2组 Cache第2组 第1块的标记:020 结论:命中,可以从Cache读取数据,CACHE补充:第2题,2. 计算机系统包含32K字的主存,Cache容量4K字,每组4 Blocks,每Block 64个字。假设Cache开始是空的,CPU顺序从存储单元0,1,2到4351中读取字,然后再重复这样的取数9次,Cache速度是主存速度的10倍,采用LRU替换算法, 假定块替换的时间忽略不计,计算采用Cache后的加速比。,第2题,CACHE结构 块尺寸=64字 组内块数=4块 组数= 4K/(64*4)=16 主存结构 组数:16 主存块数=32K/64=512 主存块/组=512/16=32,第2题,4352个主存字分配在68个主存块中 主存块0:主存字0~63 主存块1:主存字64~127 。。。 主存块63:主存字4032~4095 主存块64:主存字4096~4159 主存块65:主存字4160~4223 主存块66:主存字4224~4287 主存块67:主存字4288~4351,,第2题,主存块Cache组 68个主存块 16个Cache组,,第2题-CACHE初始为空,第2题-第1次循环(块0~块63),块64~67?,,第2题-第1次循环(块64~块67),块0~3?,Tip: LRU算法替换最长时间不用的块,第2题-第2次循环(块0~块3),第2题-第2次循环(块4~块15),,第2题-第2次循环(块16~块19),第2题-第2次循环(块20~块31),,第2题-第2次循环(块32~块35),第2题-第2次循环(块36~块47),,第2题-第2次循环(块48~块51),第2题-第2次循环(块52~块63),,第2题-第2次循环(块64~块67),第2题-规律,第1次循环(单位:块) 主存块0~63:失效 主存块64~67:失效&&替换 因“块替换的时间忽略不计”等价于仅存在失效 块失效次数:68 第2次循环~第10次循环(单位:块) 映射到组0~3的20个主存块:失效&&替换 主存块:0~3,16~19,32~35,48~51,64~67 其余48个主存块:全部命中 块失效次数:20×9 块命中次数:48×9,第2题,块失效 vs. 块命中(单位:块) 块失效次数:68+20×9=248 块命中次数:48×9=432 块失效 1次字失效,63次字命中 块命中 64次字命中 CPU读存储器总计 Cache失效次数:248 Cache命中次数:63×248+64×432=43272,第2题,设Cache一次访问时间为S 则主存一次访问时间为10S Cache失效访问字时间:10S+S 加速比,指令系统:P336,19题(1问),指令系统:P336,19题(2问),指令系统:补充题,某机字长为16位,数据总线也为16位,内存容量64KB,包含8个16位通用寄存器R0~R7。指令系统基本要求是: 128条双操作数指令,且其中必有一操作数是寄存器直接寻址; 另一操作数的寻址方式有4种:立即寻址,寄存器直接寻址,寄存器间接寻址,变址寻址;立即数和变址寻址时的位移量为16位。 指令长度应满足16的倍数,且要求尽量短。 请给出指令系统的详细设计方案(提示:当另一个操作数为4种寻址方式中的每一种时,说明其指令编码长度,以及指令编码中各字段的详细说明)。,如何理解题目1/6,“某机字长为16位,数据总线也为16位” 对机器作了一般性描述-16位系统 并非所有信息都是有价值的-数据总线也为16位,如何理解题目2/6,“内存容量64KB” 64KB16位地址线 若指令中某个操作数需要访问内存,必须最终能得到16位地址 16位地址如何得到? 显式 需要计算:寄存器+偏移(基址、变址、相对) 无需计算: 隐式寄存器间接寻址,如何理解题目3/6,“包含8个16位通用寄存器R0~R7” 凡是涉及到与寄存器相关的寻址 必须3位编码定位寄存器对应8个寄存器 指令中可能不只一处需要定位寄存器,如何理解题目4/6,“128条双操作数指令,且其中必有一操作数是寄存器直接寻址” 7位操作码对应128条指令 双操作数源/目的区分 1位标志对应源/目的 必然有一个固定的3位域定位该寄存器直接寻址操作数,如何理解题目5/6,“另一操作数的寻址方式有4种:立即寻址,寄存器直接寻址,寄存器间接寻址,变址寻址;立即数和变址寻址时的位移量为16位。” 2位编码4种寻址模式 寄存器直接/间接寻址/变址寻址 需要有一个3位域定位寄存器 立即数为16位&&位移量为16 指令总长度如果只有1个16位,无法描述 某些指令至少是2个16位 第2个16位可以用于编码立即数和位移量,如何理解题目6/6,“指令长度应满足16的倍数,且要求尽量短” 指令长度可以是16位、32位. 指令编码应尽可能紧凑,参考答案,7位OP:128条指令 1位S/D:源/目的选择(对应寄存器直接寻址操作数) 0:R1目的操作数;1:R1是源操作数 2位M:4种寻址模式 00/01/10/11:立即数/寄存器直接/寄存器间接/变址 3位R1:寻址寄存器(寄存器直接寻址操作数) “必有一操作数是寄存器直接寻址” 3位R2:寻址寄存器 寄存器直接/间接/变址都需要访问某个寄存器 16位DISP:立即数/偏移量,OP,S/D,M,R1,R2,7,1,2,3,3,DISP,参考答案,M=00:立即数 S/D:只能为0 R2没有意义,OP,S/D,M,R1,R2,7,1,2,3,3,DISP,OP,0,00,R1,-,7,1,2,3,3,立即数,,参考答案,M=01:寄存器直接寻址 DISP:不存在,OP,S/D,M,R1,R2,7,1,2,3,3,DISP,,OP,S/D,01,R1,R2,7,1,2,3,3,参考答案,M=10:寄存器间接寻址 DISP:不存在,OP,S/D,M,R1,R2,7,1,2,3,3,DISP,,OP,S/D,10,R1,R2,7,1,2,3,3,参考答案,M=11:变址寻址 R2:定位寄存器提供基地址 DISP:偏移量,OP,S/D,M,R1,R2,7,1,2,3,3,DISP,,OP,S/D,11,R1,R2,7,1,2,3,3,偏移量,指令系统设计的基本方法,不存在绝对正确的指令系统! 正确是相对的,指令系统设计的基本方法,第一原则:简洁/和谐! 指令长度尽可能短,并且是机器字长倍数 各域结构清晰,避免过多复用 需求1:4功能;需求2:3功能 方法1:2位+2位 方法2:3位 哪个更好?,指令系统设计的基本方法,设计依据 操作特性:不同操作的数量,具体是些什么操作,复杂程度等 数据类型:各种操作所处理的数据的类型 指令格式:指令长度,地址数目,指令中不同域的大小等 寄存器数目:CPU中可以直接访问的寄存器的数目及使用方法 寻址(Addressing):操作数的寻址方式,指令系统设计的基本方法,指令设计的相关因素 操作数量:决定操作码的位数。 操作数数量:采用几个操作数(一般为两个),每个操作数均涉及寻址模式(有时操作数是隐含的) 寻址方式数量:有时寻址方式可以是隐含的(由操作码决定) 寄存器数量 :确定寄存器编码的位数。 地址范围:存储器直接寻址很少见,但变址(或基址)寻址时,较大的寻址范围必须以较多的displacement位数为前提。 编址粒度(Address Granularity):字节编址或字编址。字节编址方便,但要以更多的地址位数为代价,指令系统设计的基本方法,指令设计 首先考虑指令编码中的固定部分,然后考虑可变的部分 指令编码中固定部分 操作码(数量,位数,编码) 寻址方式(数量,位数,编码) 寄存器(数量,位数,编码) 不同指令所涉及的地址数量,

展开阅读全文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值