计算机科学引论课件03.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Machine Structure 复旦大学计算机科学与工程系 Machine Structure 计算机科学引论 CPU的结构和指令的执行 CPU的基本部件 计算机的基本模型有两个部件 内存 存储需要处理的数据 存储处理好的数据 存储程序 CPU 执行存储在内存中的程序,把需要处理的数据变换成所期望的新格式或内容(处理好的数据) 结构比内存复杂得多 CPU的基本部件 CPU究竟需要哪些部件? CPU的工作:执行程序(program) 程序:一系列的指令(instruction) 指令:对一个或多个数进行某个操作 CPU的基本部件 指令编码 编码操作 常用操作个数:20-30个 CPU的基本部件 指令编码 编码操作数 操作数存储在内存中 内存用地址索引 ?用地址编码操作数? 32位平台,地址一般是32位 3操作数指令的话,地址要32*3=96位! 现代内存相对于现代CPU的速度来说也太慢了 ?把操作数放到快而小的存储空间 ?指令中只编码一个地址 CPU的基本部件 指令编码 编码操作数 操作数放在哪里? 比较小,可以用很短的地址编码 非常快,和CPU的计算速度相当 要快,就要小! ? 寄存器(register) CPU的基本部件 指令编码 寄存器(register) CPU中存放操作数的空间 小:一般不超过32个 快:一般一个CPU周期可访问多次(2到10多次) 编码操作数 编码寄存器的地址 32个寄存器须用5位二进制编码,3个操作数需要3*5=15位二进制数 CPU的基本部件 指令编码 寄存器中的数从何而来? 数据总是存储在内存中的 ? 数据必须从内存读 内存访问指令:只编码一个地址 RISC类CPU甚至只编码半个地址,一个32位地址须由两条指令装载到寄存器并拼接而成 CPU需要内存访问单元(memory unit) CPU的基本部件 指令所指定的操作需要执行 CPU需要有执行部件 不同功能的执行部件有不同的名字 ALU:算术逻辑单元(执行整数算术逻辑运算) FPU:浮点单元(执行浮点运算) …… CPU的基本部件 指令也必须从内存中读取 存储程序 ? 取指部件(instruction fetch) CPU的基本部件 指令从哪个内存单元取? IP/PC Instruction Pointer, Program Counter CPU的基本部件 控制器(Control Unit) 控制指令执行过程,协调各部件工作 指令执行过程 第一步:取指 把IP/PC的值交给MU MU读到指令给IF IP/PC增加,指向下一条指令 指令执行过程 第二步:指令译码(decode) 解出指令的操作和操作数,并从寄存器读出需要的操作数 指令执行过程 第三步:运算 执行指令所指定的运算 指令执行过程 第四步:内存访问 如果是要读写内存的指令:读写内存 如果不是??暂停等待一周期,或跳过 指令执行过程 第五步:写回 把结果写回寄存器 MIPS的指令执行 简化表示 程序的执行 程序是多条指令的序列 一条接一条地执行 较老的CPU是这么设计的 但很慢 加速程序执行的方法 流水线(pipeline) 流水线是工业化生产的重要概念 极大地提高了劳动生产率 也可以提高CPU部件的“劳动生产率” 流水线为什么有效? 指令执行各步骤占用的部件不同 ?如果各步骤串行进行,则大部分部件在大部分时间都空闲 ?各步骤并行,让各部件都忙起来 加速指令执行的方法 指令执行各步骤部件占用情况 第一步:取指 IP/PC, MU, IF 第二步:译码 寄存器 第三步:运算 ALU/FPU 第四步:内存访问 MU 第五步:写回 寄存器 加速指令执行的方法 一条指令执行中占用资源情况 加速指令执行的方法 指令流水线 把多条指令的各执行步骤并行 加速指令执行的方法 周期(cycle) 指令执行一步所需要的时间 要使用流水线技术,各不同步骤的执行时间必须相同:都是一周期 在同一个周期,有多条指令在流水线中 每条指令在不同的执行步骤,占用不同的部件 加速指令执行的方法 流水线的性能 例:执行10条指令,每指令5步骤,每步骤一周期 ?不用流水线:5*10=50周期 ? 5级流水线:10+(5-1)=14周期 加速比:50/14=3.57 流水线的理论最高加速比=级数 指令数越多,加速比越高 无限多条指令?加速比=级数 一条指令?? ?加速比为1 ? 不能加速! 加速指令执行的方法 流水线的性能 指令的延迟(latency) 执行一条指令所需时间 流水线不能减少单条指令的延迟 流水线可以减少程序的延迟 指令的产出(throughput) 单位时间内系统处理的指令数 流水线可以增加指令的产出 加速指令执行的方法 流水线问题 结构竞争:同一个周期使用相同的部件 1. 内存访问

文档评论(0)

yuguanyin2015 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档