体系结构第1章_第1页
体系结构第1章_第2页
体系结构第1章_第3页
体系结构第1章_第4页
体系结构第1章_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

国家精品课程:计算机体系结构第一章基本概念《计算机体系结构》课程学习目的现代计算机体系结构基本概念、设计思想和实现技术了解一些典型计算机的结构和工作原理了解先进计算机体系结构设计中的关键技术学习计算机性能分析和评价的基本方法

其和其他课程的交叉包括:计算机组成原理,计算机操作系统,汇编语言,数据结构,高级语言等。第一章基本概念本章主要内容:1.1计算机体系结构的概念1.2计算机体系结构的发展1.3计算机系统设计和分析世界上第一台电子数字计算机ENIAC1945年诞生于美国宾夕法尼亚大学的ENIAC,用于计算火炮的弹道冯·诺依曼(JohnvonNeumann)1946年,生于匈牙利的美国数学家冯·诺依曼提出了存储程序计算机Stored-programcomputer称存储程序计算机为冯·诺依曼结构计算机计算机的标准结构60多年来,存储程序计算机的概念和基本结构一直沿用至今,没有发生根本性的变化,是计算机体系结构研究的基础1.1.1存储程序计算机存储程序计算机一种计算机系统设计模型(程序和数据放置在一起的)实现了一种通用图灵机冯·诺依曼描述的计算机由四个部分组成运算器。用于完成数值运算;存储器。用于存储数据和程序;输入/输出设备。用于完成计算机和外部的信息交换;控制器。根据程序形成控制(指令、命令)序列,完成对数据的运算存储程序机器的结构存储程序计算机的主要特点机器以运算器为中心存储器、输入/输出设备的操作由控制器集中控制采用存储程序原理程序(指令)和数据放在同一存储器中存储器是按地址访问的、线性编址的空间控制流由指令流产生解题算法是顺序型的指令由操作码和地址码组成数据以二进制编码表示,采用二进制运算程序执行和指令的操作程序执行的过程分解程序指令,形成控制四个部分工作的控制流对数据进行加工(运算),形成数据流周而复始地产生指令流/数据流并最终得到结果在本教材中,我们将一条指令的操作分解为五个部分取指令

指令译码

取操作数

运算

结果写回一个机器周期里面安排的操作序列计算机从存储器中取出一条指令对这条指令进行译码分解并确定这条指令所指示的操作确定操作对象(操作数)所在的位置某个寄存器单元、存储器单元或者输入设备取操作数并送到运算器运算器按照译码确定的操作进行运算运算结束后,将结果送到指定的位置计算机准备执行下一条指令1.1.2计算机体系结构、组成和实现阿姆道尔(C.M.Amdahl)首次明确计算机体系结构是程序员(汇编或者机器语言程序员)所看到的计算机的属性,即概念性结构与功能特性1964年4月,ArchitectureoftheIBMSystem/360,发表在IBM研发杂志上计算机体系结构概念的经典定义,现在的定义都是在此基础上进行延伸的。程序员所看到的计算机的属性对于通用寄存器型机器,这些属性主要是指(1)数据表示:硬件能直接辨认和处理的数据类型(2)寻址规则:最小寻址单元、寻址方式及其表示(灵活的寻址方式可以丰富指令系统的功能)(3)寄存器定义:寄存器的定义、数量和使用方式(通用寄存器,专用寄存器)(4)指令系统:机器指令的操作类型和格式、指令间的排序和控制机构等(5)中断系统:中断的类型和中断响应硬件的功能等(6)机器工作状态的定义和切换:如系统态和用户态等(7)存储系统:程序员可用的最大存储容量,编址方式,最大可编址空间等(8)信息保护:信息保护方式和硬件的支持,保护核心信息不被破坏情况提供给用户使用。(9)I/O结构:I/O寻址方式、数据传送的方式等计算机组成指令集结构的逻辑实现数据通路宽度各种操作对功能部件的共享程度专用功能部件的设置功能部件的并行性缓冲和排队技术预测技术可靠性技术控制机构的组成,等等计算机的实现处理器、主存的物理结构器件的集成度和速度信号传输器件、模块、插件、底板的划分与连接涉及的专用器件(如:风扇,铜管)电源、冷却微组装技术整机装配技术,等等本课程:计算机体系结构的概念体系结构的概念用于描述计算机系统设计的技术、方法和理论主要包括计算机指令系统、计算机组成和计算机硬件实现三个方面涵盖处理器和多处理器、存储器、输入/输出系统、互联与通信等计算机系统设计的主要内容还涉及到性能评价、编译和操作系统技术通过定量分析的途径,学习掌握现代计算机体系结构研究的基本方法不同年代计算机体系结构研究的变化年代一些重要研究内容典型计算机1940年代程序控制计算机、存储程序计算机ENIAC、EDVAC1960年代指令系统IBM360系列机1960年代末阵列机和并行处理ILLIACIV1970年代流水线、向量处理、微处理器Cray-1(突破每秒亿次)、Intel4004(第一个微处理器)1980年代RISC、cache、流水线MIPSR1000、POWER1990年代SMP、CMP、指令级并行MIPSR10000、PowerPC6042000年以来SMT、功耗、Multi-core、StreamInteli7、Power6、ARM、GPU1.1.3计算机系统中的层次概念软硬件功能等效和分配问题这里从计算机语言的角度,把计算机系统按功能划分成多级层次结构,以对整个系统进行描述、分析、设计和使用计算机系统中的多语言层次结构硬/软件分界从计算机语言角度看计算机体系结构计算机语言:一种虚拟的计算机系统对于用某一层语言编写程序的程序员,有了一种计算机,该机器能执行用该层语言写的全部程序计算机语言由低级向高级发展高一级语言的语句相对于低级语言功能更强,更便于应用,但又都以低级语言为基础计算机(虚拟机)语言执行机制程序执行结果应用微程序机器级微程序机器级的机器语言是微指令集程序员用微指令编写的微程序一般是直接由硬件解释实现的传统机器级传统机器级的语言是该机的指令集机器指令程序可以由微程序进行解释(仿真)可有多个解释程序通过仿真,实现多种指令集可以没有微程序机器级操作系统虚拟机直接管理传统机器中的软硬件资源是传统机器的引伸提供了传统机器所没有的某些基本操作和数据结构文件系统虚拟存储系统多道程序系统多线程管理等汇编语言虚拟机用汇编语言编写的程序,首先翻译或解释成第3级和第2级语言,然后再由相应的机器执行完成汇编语言翻译的程序就叫做汇编程序又叫汇编器高级语言虚拟机机器语言就是各种高级语言用这些语言所编写的程序一般是由称为编译程序翻译到第4级或第3级上个别的高级语言也用解释的方法实现转化应用语言虚拟机为使计算机满足某种用途而专门设计的(人工智能、教育、行政管理、计算机设计)应用语言编写的程序一般是由应用程序包翻译到第5级上翻译和解释翻译Translation先把N+1级程序全部变换成N级程序后,再去执行新产生的N级程序,在执行过程中N+1级程序不再被访问解释Interpretation每当一条N+1级指令被译码后,就直接去执行一串等效的N级指令,然后再去取下一条N+1级的指令,依此重复进行一般来说,解释执行比翻译花的时间多,但存储空间占用较少1.1.4系列机和兼容系列机(familymachine)是具有相同体系结构,但组成和实现不同的一系列不同型号的计算机系统IBM公司在推出IBMS360时首次提出的系列机的概念,被认为是计算机发展史上一个重要里程碑各计算机厂家仍按系列机研发产品现代计算机不但系统系列化,其构成部件和软件也系列化如微处理器(CPU)、硬盘、操作系统、高级语言等系列机(Familymachine)一种指令集结构可以有多种组成。同样,一种组成可以有多种物理实现。系列机就是指在一个厂家生产的具有相同的指令集结构,但具有不同组成和实现的一系列不同型号的机器。计算机时间处理器字宽主要I/O总线存储空间PC和PCXT1981808816位PC总线20位PCAT19828028616位AT(ISA)24位80386PC19858038632位ISA(标准工业总线)/EISA(扩展工业总线)32位80486PC19898048632位ISA+VL32位PentiumPC1993Pentium32位ISA+PCI32位PentiumIIPC1997PentiumII32位ISA+PCI+AGP32位PentiumIIIPC1999PentiumIII32位PCI+AGP+USB32位Pentium4PC2000Pentium432位PCI-X+AGP+USB32位软件兼容长期以来,程序员希望有一个稳定的软件环境,使他们编制出来的程序能够在更加广泛计算机类型中得到长期的应用软件兼容(softwarecompatibility)系列机具有相同的体系结构,软件可以在系列计算机的各档机器上运行同一个软件可以不加修改地运行于体系结构相同的各档机器,而且它们所获得的结果一样,差别只在于有不同的运行时间兼容分为二进制级兼容、汇编级兼容、高级语言兼容、数据级兼容等等兼容机虽然程序员希望有一个稳定的软件环境,但是机器设计人员则希望根据硬件技术和器件技术的进展不断地推出新的机器兼容机(compatiblemachine)不同厂家生产的具有相同体系结构的计算机计算机厂家为了能利用大的计算机厂家的开发成果,采用新的计算机组织和实现技术,研制一些软件兼容的产品,具有更加低廉的价格在市场上有较强的竞争能力兼容性向上(下)兼容指的是按某档机器编制的程序,不加修改的就能运行于比它高(低)档的机器向前(后)兼容指的是按某个时期投入市场的某种型号机器编制的程序,不加修改地就能运行于在它之前(后)投入市场的机器兼容对体系结构的影响计算机系统及软件设计者的“障碍”:系统软件的开发难度大需要保护巨大的应用软件宝库向后兼容是才是软件兼容的根本特征,也是系列机的根本特征为了保证软件的兼容,要求指令集不改变,这无疑又妨碍计算机体系结构的发展向后兼容虽然削弱了系列机对体系结构发展的约束,但仍然是体系结发展的沉重包袱20世纪80年代具有RISC体系结构的微处理器在新结构、新技术应用等方面领先传统的CISC微处理器的主要原因之一Intel公司的x86系列Intel公司的x86系列微处理器在向后兼容方面是非常具有代表性的1979年的8086到2009年的Nehalem由16位系统发展到32位系统增加了保护方式指令集、MMX指令集和面向64位的扩展等但它保持了极好的二进制代码级的向后兼容性1.2计算机体系结构的发展冯诺依曼体系结构计算机分代和分型软件的发展应用的发展集成电路的发展体系结构的发展2.计算机的分代分代器件体系结构技术软件技术典型机器第一代(1945-1954)电子管和继电器存储程序计算机、程序控制I/O机器语言和汇编语言普林斯顿ISA、ENIACIBM701第二代(1955-1964)晶体管、磁芯、印刷电路浮点数据表示、寻址技术、中断、I/O处理机高级语言和编译、批处理监控系统UnivacLARCCDC1604IBM7030第三代(1965-1974)SSI和MSI、多层印刷电路、微程序流水线、Cache、先行处理、系列计算机多道程序和分时操作系统IBM360/370CDC6600/7600、DECPDP-8第四代(1974-1990)LSI和VLSI、半导体存储器向量处理、分布式存储器并行与分布处理Cray-1、IBM3090、DECVAX9000、Convax-1第五代(1991-)高性能微处理器、大规模高密度电路指令级并行、SMP、MP、MPP、网络可扩展并行与分布处理SGICrayT3EIBMxServerSunE10000计算机的分型

技术和性能的“下移”。新型体系结构的设计一方面是合理地增加计算机系统中硬件的功能比例。另一方面则是通过多种途径提高计算机体系结构中的并行性。3.软件的发展计算机语言与编译技术。操作系统。软件工具与中间件。4.应用的发展桌面计算。服务器市场。嵌入式计算。5.集成电路的发展和摩尔定律1965年,时任仙童公司研发实验室主任的摩尔(GordonMooer)在《Electronics》上撰文,认为集成电路密度大约每两年翻一番40年来,摩尔定律不但印证了集成电路技术的发展,也印证了计算机技术的发展6.体系结构的发展分布的IO处理能力。保护的存储器空间。存储器组织结构的发展。并行处理技术指令集发展并行处理技术的发展并行性概念1.指令级并行 2.线程级并行 3.任务级/过程级并行提高并行性的技术途径。1.时间重叠 2.资源重复 3.资源共享并行计算的应用需求。7.计算机系统的成本和价格系统的成本主机:~37%I/O设备:~37%附件:~6%软件:~20%性能/成本设计性能/成本设计:设计者需取得性能与成本之间的平衡。在过去的几十年中,计算机尺寸变小,因此低成本设计和性能/成本设计就显得日益重要,即使是巨型计算机制造商也发觉成本问题已日益重要。计算机系统的成本和价格对计算机系统成本产生影响的主要因素有:时间、产量、商品化等对成本产生最直接影响的是时间。即使实现技术没有变动,计算机系统的制造成本也会不断下降。随着时间的推移,生产工艺会日渐稳定,产品的成品率会不断提高。产品的成本与成品率成反比。1.3计算机系统设计和分析1.3.1成本与价格1.3.2基准测试程序1.3.3量化设计的基本原则1.3.1成本与价格商品的标价(价格)由这样一些因素构成原料成本、直接成本、毛利和折扣PC的成本和价格装机部件的成本分布(2012.11)

型号价格(元)比例处理器AMD

Athlon

II

X4

7404809.0%主板映泰

Hi-Fi-A85W59911.2%显卡华硕

HD7850-DC-1GD5129924.3%内存威刚万紫千红8GB

DDR3

16002103.9%硬盘希捷

酷鱼1TB

单碟4608.6%显示器AOC

D2357PH159929.9%鼠标赛睿

Kinzu

v21693.2%键盘雷蛇

橘仓金蛛

工包版1593.0%机箱航嘉

暗夜奇兵1492.8%电源安钛克

VP

350P2294.3%总价

5353

成本-时间因素:学习曲线产品价格随时间变化的特性,就是价格随时间下降的趋势1.3.2基准测试程序性能与测试程序的执行时间相关,那么用什么做测试程序呢?五类测试程序真实程序修正的(或者脚本化)应用程序核心程序小测试程序合成测试程序测试程序包(组件,benchmarksuites)选择一组各个方面有代表性的测试程序组成尽可能全面地测试了一个计算机系统的性能测试程序包:www.SPEC.org基于NUIX,诞生于20世纪80年代由真实程序和核心程序构成采用C和Fortran两种语言,后增加C++包括整数部分SPECint和浮点部分SPECfp主要版本包括SPEC89、SPEC92、SPEC95、SPEC2000和SPEC2006等SECP2006功能进一步细化台式计测试:SPECCPU2000图像测试:SPECviewperf,SPECapcNFS性能测试:SPECSFSWeb服务测试:SPECWebSPECCPU2006SPEC2006有12个整数程序9个C程序其它是C++程序浮点包中有6个Fortran4个C++3个C4个C和Fortran混合程序其它测试包TPC-x测量事务处理、排队系统、决策支持、数据库应用等的性能1985年发布第一个TPC测试程序TPC-A,并先后发布多个修改版本并补充了四个不同的测试程序,构成TPC测试程序组件嵌入式处理器EEMBC:EDN嵌入式微处理器测试程序联盟发布的测试程序包1.3.3量化设计的基本原则1.大概率事件优先原则追求全局的最优结果2.Amdahl定律系统性能加速比,受限于该部件在系统中所占的重要性可以定量计算3.程序的局部性原理程序执行时所访问存储器在时-空上是相对地簇聚这种簇聚包括指令和数据两部分大概率事件优先的原则对于大概率事件(最常见的事件),赋予它优先的处理权和资源使用权,以获得全局的最优结果要能够确定什么是大概率事件,同时要说明针对该事件进行的改进将如何提高机器的性能“好钢用在刀刃上”,事半功倍Amdahl定律假设我们对机器(部件)进行某种改进,那么机器系统(部件)的加速比就是核心概念:时间系统加速比告诉我们改进后的机器比改进前快多少Amdahl定律系统加速比依赖于两个因素“可改进比例”:可改进部分在原系统计算时间中所占的比例,它总是小于等于1的T0/T1“部件加速比”可改进部分改进以后的性能提高,一般情况下它是大于1的T1/T2ToT1T2TeAmdahl的系统执行时间部件改进后,系统的总执行时间等于不可改进部分的执行时间加上可改进部分改进后的执行时间,即:总执行时间改进后=(1-可改进比例)总执行时间改进前+=总执行时间改进前

[(1-可改进比例)+]Amdahl的系统加速比系统加速比为改进前与改进后总执行时间之比,为: 系统加速比 = =Amdahl定律的观点性能增加的递减规则仅仅对计算机中的一部分做性能改进,则改进越多,系统获得的加速效果越小Amdahl定律的一个重要推论针对整个任务的一部分进行优化,则最大加速比不大于Amdahl定律衡量一个“好”的计算机系统具有高性能价格比的计算机系统是一个带宽平衡的系统,而不是看它使用的某些部件的性能Amdahl定律练习例1:假设在某程序的执行过程中,浮点操作时间占整个执行时间的10%,现希望对浮点操作加速。设对浮点操作的加速比为Sf,请推导出程序总的加速比S和Sf之间的关系表达式;请问程序的最大加速比可达多少?Amdahl定律练习fS与Sf的关系表达式为:Amdahl定律练习f程序的最大加速比Smax为:Amdahl定律练习例2: 求平方根和浮点乘是图形应用中常用的转换,假设求平方根操作在某机器的一个基准程序中占总执行时间的20%,浮点乘操作在该程序中占总执行时间30%,现通过两种方法加速两操作① 增加专门的硬件处理求平方根,使其执行速度为原来的10倍② 通过调整流水线把浮点乘速度提高为原来的1.6倍问: 采用两种方法增强后此基准程序加速比是多少?Amdahl定律练习30%20%加速比=增强前时间/增强后时间

=1/(0.5+0.2/10+0.3/1.6)=1/0.7075=1.41程序局部性程序访问地址的分布不是随机的,而是相对地簇聚包括时间局部性和程序的空间局部性程序的时间局部性程序即将用到的信息很可能就是目前正在使用的信息程序的空间局部性

程序即将用到的信息很可能与目前正在使用的信息在空间上相邻或者临近生产-消费局部性CPU的性能程序执行过程中所处理的指令数,记为IC每条指令执行所需要的时钟周期数CPI(CyclesPerInstruction)CLK:整个程序执行消耗的总时钟周期数每条指令执行所需要的平均时钟周期数深入CPU性能公式假设计算机系统有n种指令,其中第i种指令的处理时间为CPIi,在程序中第i种指令出现的次数为ICi。(f为cpu频率)深入CPU性能公式其中:反映了第i种指令在程序中所占的比例。CPU性能公式练习例:假设我们考虑条件分支指令的两种不同设计方法如下:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论