计算机体系结构(第五版)系列-第一章:量化设计与分析基础 要想做好CPU相关的性能优化,这本书不得不读,因此让我们开启计算机体系结构课程之旅。 一、引言 20世纪80年代,开发了一组指令更为简单的新体系结构-RISC(精简指令集计算机)体系结构。 设计人员在设计时,主要投入在2中关键的性能技术上:指令集并行的开发(流水线到多指令发射)和缓存的使用(简单形式到更为复杂的组织和优化方式) 20世纪90年代,晶体管数目的飞速增长,在低端应用中,比如手机,由于X86转换开销所带来的功耗和硅面成本,促使RISC体系结构称为主流,这就是ARM。 20世纪的这一飞速发展,共有4重效果: 1、它显著增强了可供计算机用户使用的功能, 对许多应用来说,当今性能最高的微处理器比不到10年前的超级计算机还要优秀。 2、性价比的这种大幅提高导致了新型计算机的出现, 个人计算机、工作中、智能手机、平板电脑。 3、根据摩尔定律的预测,半导体制造业的持续发展已经使基于微处理器的计算机在整个计算机设计领域中占据了主导地位, 逻辑电路或门整列制造 到 微处理器 的发展 4、硬件复兴的第4重影响,是对软件开发的影响 开发语言的丰富,软件部署的变化(SaaS),应用程序本质的变化(功能和体系形式) 2003年开始,由于风冷芯片最大功耗和无法有效地开发更多指令级并行这2大孪生瓶颈,单处理器的性能提高速度下降到每年不足22%。Intel在2004年取消了高性能单核处理器项目,转而提高一个芯片上集成的核心数目。 里程碑的信号:单纯依赖指令级并行(ILP)转向数据级并行(DLP)和线程级并行(TLP) 二、计算机分类
从5种计算类别,比较其系统价额、微处理价钱、以及关键的系统设计问题进行对比 对于现有的大环境下,降本增效成为了各个公司的主旋律,成本主要体现在计算类别的其中2类:服务器和集群/仓库级计算机(SaaS),在各自的维护的微服务、大数据架构下依赖的各个组件,需要部署在物理服务器或者容器中,如果能用最小的成本支撑更多的业务,直接的体现就是每月会节省xxx万。 不仅要优化各个大数据架构下的各个软件资源,也要尽可能降低硬件资源,这就需要成本低性能高的服务器。 1、并行度与并行体系结构的分类 多种级别的并行度现在已经成为计算机设计的推动力量,而能耗和成本则是主要约束条件。 应用程序主要有以下2种并行:数据级并行(DLP):可同时操作许多数据项任务级并行(TLP):创建一些能够单独处理但大量采用并行方式执行的工作任务 硬件支持数据级并行和任务级并行的历史,可以追溯到20世60年代Michael Flynn研究并行计算工作量时,提出了一种简单的分类方式,我们今天仍在使用这种分类的缩写。他研究了多处理器最受约束组件中的指令流及数据流的并行,并据此将所有计算机分为以下四类:SISD(单指令流,单数据流):single instruction single data,单处理器,程序员将其看做顺序计算机,但可利用指令级并行。SIMD(单指令流,多数据流):single instruction multi data,同一指令有多个使用不同数据流的处理器执行,SIMD计算机开发数据级并行。简单来说,就是一条指令可以处理多份数据。MISD(多指令流,单数据流):到目前为止,还没有这种类型的商用处理器MIMD(多指令流,多数据流):每个处理器都提取自己的指令,对自己的数据进行操作,针对任务级并行。 三、计算机体系结构的定义 1、指令集体系结构(ISA) ISA分类 3种ISA:80X86、ARM、MIPS 寄存器-存储器ISA:80X86 载入-存储ISA:ARM、MIPS
存储器寻址 字节寻址:所有 操作对象对齐:ARM、MIPS,80X86不需要对齐寻址模式 寄存器寻址、立即数寻址、位移量寻址 MIPS:上述3种 80X86:上述3种,加,位移量的三种变化形式:无寄存器(绝对数)、两个寄存器(2个位移量进行基址寻址)、两个寄存器 ARM:上述3种操作数的类型和大小 位数:8、16、32、64 80X86支持80位浮点,如今好像支持128位浮点操作指令 常见:数据传输治理、算术逻辑指令、控制指令、浮点指令 MIPS:简单、易于流水化,2011年采用RISC体系结构的代表 80X86:操作指令集很丰富 欣赏下MIPS的部分指令
控制流指令 条件转移、无条件跳转、过程调用和返回 不同ISA有一些区别: MIPS:条件分支(BE、BNE)检验寄存器中的内容 80X86、ARM:分支测试条件代码位ISA的编码 固定长度:ARM、MIPS,32位 可变长度:80X86,1~18个字节,与固定长度相比,可变长度指令可占用较少的空间 MIPS64:网络领域的主导ISA,RISC体系结构的出色示例 ARM(Advanced RISC Machine):RISC体系结构的最流行示例 2、真正的计算机体系结构:设计满足目标和功能需求的组成和硬件 组成:存储器系统、存储器互联、设计内部处理器或CPU,或者微体系结构来代替”组成“ 比如,AMD Opteron和Intel Core i7指令集相同,但是内部的流水线、缓存等组成很大不同 硬件:计算机的具体实现,包括逻辑设计、封装技术 本书中,体系结构涵盖:指令集体系结构、组成或微体系结构、硬件。 计算机架构师设计的计算机必须满足功能需求,并达到价格、功耗、性能和可用性指标。 架构师还必须了解技术和计算机应用这两方面的重要趋势,因为浙西额趋势不仅会影响未来的成本,还会影响体系结构的寿命。
3、技术趋势 架构师必须了解实现技术的快速变化 集成电路逻辑技术 :晶体管密度每年大约增加35%,差不多每四年翻两番。晶片大小的增长速度大约在10%到20%之间。2者综合起来,一个芯片上的晶体管数目每年大约增长40%~55%,或者说么18~24个月翻两番。这就是摩尔定律。 半导体DRAM: 半导体闪存: 磁盘技术: 网络技术:取决于交换机性能和传输系统的性能 这些技术的快速发展,左右这计算机设计的命运。设计人员必须为应对这些变化做好打算。 4、性能趋势 4.1、带宽胜过延迟 带宽和吞吐量是指在给定时间内完成的总工作量。 延迟或响应时间是指在一个事件从开始到完成所经历的时间。
性能是区分微处理器和网络的主要指标,所以他们的进步最大:带宽为10000-25000倍,延迟为30~80倍。 对容量和磁盘来说,容量通常比性能更重要,所以容量的提高最多,单带宽发展了300~1200倍,任然要远远高于延迟的6~8倍。 结论:带宽完胜延迟,趋势可能持续下去。经验法则:带宽的增长速度至少是延迟的改进速度的平方。 4.2、晶体管性能与连线的发展 集成电路的制造工艺是用特征尺寸来衡量的,所谓特征尺寸就是一个晶体管或一条连线在x方向或y方向的最小尺寸。 特征尺寸的发展: 1971年:10微米 2011年:0.032微米,即32纳米 … 尺寸缩小,与晶体管性能的提高成线性关系;晶体管数目却是以平方曲线增长,晶体管密度的快速增长,微处理迅速发展,从4位、8位、16、32、64位,… …更宽的SIMD单、推理执行和缓存中的许多创新。 集成电路的连线。连线的信号延迟与其电阻、电容的乘积成正比。关系很复杂,依赖的东西太多:工艺的具体细节、连线的几何形状、连线的负载、其他结构的邻近程度等。这方面的改进小得可怜。 5、集成电路中的功耗和能耗趋势 5.1、功率和能耗:系统观点 如何考虑:性能、功率、能耗? 1、一个处理器需要的最大功率是多少?电压指数方法,允许处理器减缓速度,在更大幅度内调整电压。会降低性能。 2、持续功耗是多少?度量:热设计功耗(TDP) 5.2、微处理器内部的能耗和功率 动态能耗:对CMOS芯片来说,传统的主要能耗源是开关晶体管。
就是,逻辑转变脉冲0->1->0或1->0->1,一次转换(0->1或1->0)的能耗就是:
每个晶体管所需要的功率就是一次转换的能耗与转换频率的乘积:
很显然,对于一项固定任务,降低时钟频率可以降低功率,而不会降低能耗。 但是,降低电压,可以答复降低动态功率和能耗 ,所以20年里,电压已经从5V降低到1V以下。 来个例题,加强下上面的公式计算方法。 现在的一些微处理器设计采用可调电压,电压降低15%可能导致频率下降15%。这对动态能耗和动态功率有什么影响? 由上面的两个公式,容性负载不变(电容值不变),动态能耗变化就是电压平方之比:
因此,能耗降为原能耗的72%
因此,功率缩小为原来的61%。 当我们从一种制造工艺转向另一种工艺时,晶体管的开关次数以及其开关频率的增高强于负载电容和电压的下降,从而导致功耗和能耗的总体上升。 根据上述公式,如果不能降低电压或提高每个芯片的功率,那可能就要减缓时钟频率的增长速度。 如下图所示,就反应了这种局势。
所以:以逸待劳:关闭非活动模块的时钟,节省能耗和动态功率。大多数微处理器都会这么设计。动态电压-频率调整:此种技术直接来自上述公式,在业务活跃程度较低的时期,不需要以最高时钟频率和电压运转。下图绘制了当工作负载降低时,服务器通过DVFS可能节省的功率,三种不同的时钟频率为2.4GHz、1.8GHz、1GHz。可节省的总功率大约为10%~15%。
针对典型的情景设计:个人电脑经常空闲,设计的低功率模式,节省能耗。超频:Intel在2008年开始提供Turbo模式。芯片可以判定在少数几个核心上以比较高时钟频率短时运行是安全的。 尽管通常认为动态功率是CMOS中的主要功率耗散源,但由于即使晶体管处于静止状态时,也存在泄露电流,所以静态功率也正成为一个重要问题:
也就是说,静态功率与器件数目成正比。 因此,如果增大晶体管数目,即使他们处于空闲状态也会增加功率,当晶体管的尺寸较小时,处理器中的泄露电流会更大。 最后,处理器只是系统整体能耗中的一部分,所以如果使用一个速度较快但能耗效率低的处理器,是系统的其他部分能够进入睡眠模式,那也有可能有助于降低整体能耗。这种策略被称为竞相暂停。 6、成本趋势 主要说清楚,影响计算机成本的主要因素,以及这些因素如何随时间变化。 6.1、时间、产量和大众化的影响 即使基础实现技术没有任何重大进步,计算机组件的制造成本也会随着时间的推移而降低。计算机组件的制造成本也会随着时间的推移而降低。 推动成本走低的基础原理是学习曲线—制造成本随时间的推移而降低。学习曲线本身是根据成品率的变化测得的,成品率是指成功通过测试程序的器件占生产器件总数的百分比。无论是芯片、主板、还是系统,是成品率加倍的设计就能使成本减半。DRAM微处理器产量大众化商品:市场竞争激烈,会缩小成本与销售价格的距离,而且还会降低成本。 6.2、集成电路的成本 标准零件(磁盘、闪存、DRAM等)在系统成本中的份额越来越高,集成电路成本称为计算机成本差异的重要因素。 尽管集成电路的成本以指数形式下降,但基本的硅制造工艺没有变化:仍然要对晶圆(wafer)进行测试,切割成晶片(die)进行封装。因此,一个已封装集成电路的成本为:
这一节,主要讨论晶片成本,最后总结测试和封装中的关键问题。 预测一个晶圆上的正品芯片数目,需要先了解一个晶圆上可以放多少个晶片,然后了解如何预测正常工作的晶片的百分比。
晶片成本公式第一项中的最重要特征是它对晶片尺寸非常敏感。
每个晶圆上的晶片数目的估算公式:
该公式只给出了每个晶圆上的最大晶片数目。还有一个关键的问题:一个晶圆上的合格晶片占多大比例呢?即是晶片成品率是多少呢? 集成电路成品率的一种简单模型,嘉定晶圆上的缺陷是随机分布的,成品率与制造工艺的复杂度成反比,由这一模型,可以得出如下结果:
波斯-爱因斯坦公式,是通过研究许多生产线的成品率而得出的经验模型[Sydow 2006]。单位面积上的缺陷具体取决于工艺的成熟度。为了简单预测,可假定晶圆成品率为100%。 冗余单的存在可以显著提高成品率。原因是DRAM和SRAM之类的大众化商品承受着巨大的价格压力,所以设计人员会加上一些冗余,作为提高成品率的方法。 6.3、成本和价格 制造成本和销售价格之间的差额已经缩小。差额用来支付公司的研发、营销、销售、制造设备维护、厂房租金、财务、税前利润、税收等各项费用。 6.4、制造成本与运行成本 7、可信任度 在历史上,集成电路曾经是计算机中最可靠的组件之一。尽管他们的管脚很容易损坏,在信道中也可能发生错误,但芯片内部的错误率是非常低的。当我们向32nm乃至更低特征的尺寸前进时,上述常识发生了变化,由于暂时错误和永久错误的出现频率都大大增加,所以架构师设计的系统必须能够应对这些挑战。 互联网服务判断一个系统的运行是否正常,有明确的指标:服务登记协议(SLA)或服务等级目标(SLO),保证网络或电源服务是可靠的。如,一个月内无法满足协议的时间超过若干小时,就会向客户提供赔偿。服务实现服务中断模块可靠性:平均无故障时间(MTTF),平均修复时间(MTTR),平均故障时间间隔(MTBF)=MTTF+MTTR模块可用性:
可靠性和可用性现在是可量化度量,而不再是可信任度的同义词。 应对故障的主要方法是冗余,或者是时间冗余(重复操作)、资源冗余(其他组件接管)。 8、性能的测量、报告和汇总 计算机用户关心的是缩短响应时间,也就是一个事件从启动到完成的时间,即执行时间。 仓库级计算机的操作人员可能关心的是吞吐量,也就是在给定时间内完成的工作量。 对比计算机性能时,并非总是使用时间这一度量标准。我们的观点是:唯一稳定、可靠的性能度量就是实际程序的执行时间,以任意其他度量代替时间或者以任意其他被测项目代替实际程序,最终都会在计算机设计中产生误导,甚至错误。执行时间:根据测量内容定义为不同方式,挂钟时间、响应时间、已用时间 8.1、基准测试 基准测试应用程序集:基准测试套件,最成功的尝试之一:SPEC(标准性能评估机构)桌面基准测试服务器基准测试 8.2、报告性能测试结果 坚持一条指导原则:可重现性 8.3、性能结果汇总
9、计算机设计的量化原理 9.1、充分利用并行 这是提高性能的最重要方法之一。 系统级别的开发并行:多个处理器,多个磁盘,实现并行读写,就可以支持数据并行。 单独的处理器级别,充分利用指令间的并行,方法就是通过流水线(基本思想是将指令的执行重叠起来)。 数字设计级别也可以开发并行:组相连缓存使用多组存储器,可以对它们进行并行查询。 9.2、局域性原理 程序常常重复使用他们最近用过的数据和指令; 我们可以根据一个程序最近访问的指令和数据,比较准确地预测它近期会使用哪些内容。也适用于数据访问。时间局域性:最近访问过的内容短期内很可能被再次访问空间局域性:地址相互邻近的项目很可能在短时间内都被用到 9.3、重点常见情形 常见情形优于非常见情形,如果某一情形会频繁出现,那对齐进行改进会产生更显著的效果。 如,指令提取与译码器的使用可能比乘法器频繁得多,应优先对齐优化。 9.4、Amdahl定律 利用Amdahl定律,可以计算出通过改进计算机某一部分而能获得性能增益。 Amdahl定律定义了使用某一特定功能所获得的加速比(speedup)。加速比是什么?
或者
Amdahl定律为我们提供了一种快速方法,用来计算某一升级所得到的加速比,加速比取决于2个因素:原计算机计算时间中可升级部分所占的比例,如,一个程序总执行时间为60s,如果有20s的执行时间可进行升级,那这个比例就是20/60;这个值就是升级比例,它总是小于等于1。通过升级执行模式得到的改进,也就是说在未整个程序使用这一执行模式时,任务的运行速度会提高多少倍。
总加速比是这两个执行时间之比:
9.5、处理器性能公式 计算机设计人员用时钟周期的持续时间(如,1 ns)或其频率(如,1GHz)来描述时钟周期的时间。
公式1 或者
公式2 除了执行一个程序所需要的时钟周期数之外,还会计算所执行的指令数:指令路径长度或指令数(IC)。因此出现2个指标:CPI(计算每调指令时钟周期数)、IPC(每时钟周期指令数) IPC是CPI的倒数。
公式3
公式4 将公式1结合公式3,可得公式5:
公式5 因此,可以看出,决定处理器性能有三个特性:时钟周期、每条指令的时钟周期(CPI)、指令数。 只要改进其中一项,性能提升10%,整体CPU时间将改进10%。 但是,很遗憾,这三项特性的基本技术相互关联,很难再不改变其他两个参数的情况下改变其中一个参数。时钟周期时间:硬件技术与组成CPI:组成与指令集体系结构指令数:指令体系结构和编译器技术 but,幸运的是,许多可能采用的性能改进技术都是主要改进处理器性能的一个分量,而对于其余2个分量的影响较小或者在可预测范围内。 10、融会贯通:性能、价格、功耗
11、谬论 多处理器是万能钥匙Amdahl心碎定律的牺牲品:花费精力改进之前,应现对其进行测量【易犯错误】单点故障:确保所有组件都有冗余,是单一组件故障不会导致整个系统宕机【易犯错误】能够提高性能的硬件改进也可以提高能耗效率,至少不会加大能耗基准测试永远有效磁盘的额定平均无故障时间为1 200 000 小时,差不多是140年,所以磁盘实际上永远不会发生故障峰值性能能够反映实际观测性能故障检测会降低可用性【易犯错误】
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/29748.html