网站大量收购闲置独家精品文档,联系QQ:2885784924

5.5CPU新技术(上)-吴学涯教程.pptx

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5.5CPU新技术(上)-吴学涯教程

5.5 CPU新技术(上);5.5.1 SIMD技术;为了解SIMD在性能上的优势,我们以加法指令为例说明 单指令流单数据流(SISD)型CPU对指令译码后, 执行部件先访问主存,取得第一个操作数 之后再一次访问主存,取得第二个操作数 随后才能进行求和运算 SIMD型CPU对指令译码后, 几个执行部件同时访问主存,一次性获得所有操作数进行运算 SIMD技术这一特点特别适合多媒体应用等数据密集型运算;1.MMX技术;;2.SSE技术;;计算一个很长的浮点型数组中每一个元素的平方根 for each f in array { 把f从主存加载到浮点寄存器 计算平方根 再把计算结果从寄存器中取出写入主存 } 在采用SSE技术后,算法可改写为: for each 4 members in array { //对数组中每4个元素 把数组中这4个数加载到一个128位SSE寄存器中 在一个指令执行周期中完成计算4个数平方根的操作 把所得的4个结果取出写入主存 };3.SSE2技术;在整数处理方面, 随MMX技术引进的SIMD整数指令从64位扩展到了128位,使SIMD整数类型操作的执行效率成倍提高 在浮点数处理方面, 双精度浮点SIMD指令允许以SIMD格式同时执行两个浮点操作 除SSE2指令之外,最初的SSE指令也得到增强 支持多种数据类型(例如双字、四字)的算术运算 支持灵活、动态范围更广的计算功能;4.SSE3技术;5.5.2 RISC技术;1.CISC的产生和发展;设计师们想出了一种解决方案——操作码扩展 在指令格式中,操作码后面跟的是地址码 有些指令用不着地址码或只用少量位数的地址码 可把操作码扩展到地址码的位置,使操作码位数增加 如果一个指令系统的操作码为2位,那么可以有00、01、10、11四条不同的指令 现在把11作为保留,把操作码扩展到4位,那么就可以有00、01、10、1100、1101、1110、1111七条指令 其中1100、1101、1110、1111这四条指令的地址码部分必须减少两位;为了达到减少地址码这一操作码扩展的先决条件,设计师们又发明了各种各样的寻址方式 最大限度地压缩地址码长度,为操作码留出空间 于是,CISC指令系统逐渐形成 CISC的特点,也是CISC的缺点 大量的复杂指令、可变的指令长度、多种寻址方式 大大增加了译码的难度 在高速硬件迅猛发展的今天,复杂指令所带来的速度提升早已不及在译码上所浪费的时间了;2.RISC的产生;3.RISC的特点;;;RISC三要素:⑴一个有限的简单的指令集;⑵CPU配备大量的通用寄存器;⑶强调对指令流水线的优化 RISC的典型特征 ⑴指令种类少,指令格式规范 ⑵寻址方式简化 ⑶大量利用寄存器间操作 ⑷简化处理器结构 ⑸便于使用VLSI技术 ⑹加强处理器的并行能力 ⑺RlSC技术的复杂性在于它的优化编译程序;⑴指令种类少,指令格式规范;⑵寻址方式简化;⑶大量利用寄存器间操作;⑷简化处理器结构;⑸便于使用VLSI技术;⑹加强处理器的并行能力;⑺RlSC技术的复杂性在于它的优化编译程序;4.RISC与CISC的主要特征对比;5.5.3 超线程/多核技术;1.超线程技术;线程是程序执行的基本原子单位 一个进程可以由多个线程组成 在分布式程序设计中正确使用线程,能够很好地提高应用程序的性能及运行效率 其实现原理是将一个进程分成多个线程,然后让它们并发异步执行,从而提高运行效率 “并发执行”在单核情形下并不是各线程同时执行(占有CPU),在任意时刻还是只能有一个线程占用CPU 它们彼此轮换使用CPU,感觉上似乎都在运行;设一个进程要完成两个任务:任务1和任务2,并且任务1要经历A1?B1?C1三个步骤才能完成,任务2要经历A2??B2?C2三个步骤才能完成 ①如果两个任务同步执行的话,完成两个任务是这样执行的: 从A1到C2只能一个一个地执行 当A1执行时,CPU被占用,B1到C2的线程只能等待 甚至当它们彼此之间并不竞争同一个资源时,也要等待前面的线程执行完毕后才能执行 ;②如果两个任务异步执行的话,完成两个任务是这样执行的: 任务1和任务2分成两个独立的执行对象 A1?B1?C1和A2?B2?C2是并发执行的 当A1执行某个运算时,A2可去做其他事情(如访问外设) 完成所有任务, 方式①需要6个时间段,方式②需要3个时间段 方式②完成整个任务要快于方式①;2.多核技术;;

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档