《计算机系统结构复习汇总.ppt》由会员分享,可在线阅读,更多相关《计算机系统结构复习汇总.ppt(414页珍藏版)》请在三一办公上搜索。
1、第1章 计算机系统结构的基本概念张晨曦 刘依,1.1 引言1.2 计算机系统结构的概念1.3 定量分析技术1.4 计算机系统结构的发展1.5 计算机系统结构中并行性的发展,第一台通用电子计算机诞生于1946年 计算机技术的飞速发展得益于两个方面 计算机制造技术的发展 计算机系统结构的创新经历了4个发展过程,1.1 引 言,1.1 引言,1.1 引言,功耗问题(已经很大)。可以进一步有效开发的指令级并行性已经很少。存储器访问速度的提高缓慢。,1.1 引言,系统结构的重大转折:从单纯依靠指令级并行转向开发线程级并行和数据级并行。计算机系统结构在计算机的发展中有着极其重要的作用。,计算机系统硬件/固
2、件软件计算机语言从低级向高级发展 高一级语言的语句相对于低一级语言来说功能更强,更便于应用,但又都以低级语言为基础。从计算机语言的角度,把计算机系统按功能划分成 多级层次结构。每一层以一种语言为特征,1.2 计算机系统结构的概念,1.2.1 计算机系统的层次结构,软件,硬件或固件,1.2 计算机系统结构的概念,虚拟机:由软件实现的机器 语言实现的两种基本技术翻译:先把N+1级程序全部转换成N级程序后,再去执行新产生的N级程序,在执行过程中N+1级程序不再被访问。解释:每当一条N+1级指令被译码后,就直接去执行一串等效的N级指令,然后再去取下一条N+1级的指令,依此重复进行。解释执行比编译后再执
3、行所花的时间多,但占用的存储空间较少。,1.2 计算机系统结构的概念,计算机系统结构的经典定义程序员所看到的计算机属性,即概念性结构与功能特性。按照计算机系统的多级层次结构,不同级程序员所看到的计算机具有不同的属性。透明性在计算机技术中,把这种本来存在的事物或属性,但从某种角度看又好像不存在的概念称为透明性。,1.2.2 计算机系统结构的定义,1.2 计算机系统结构的概念,Amdahl提出的系统结构 传统机器语言级程序员所看到的计算机属性。广义的系统结构定义:指令集结构、组成、硬件(计算机设计的3个方面)对于通用寄存器型机器来说,这些属性主要是指:指令系统 包括机器指令的操作类型和格式、指令间
4、的排序和控制机构等。数据表示 硬件能直接识别和处理的数据类型。寻址规则 包括最小寻址单元、寻址方式及其表示。,1.2 计算机系统结构的概念,寄存器定义(包括各种寄存器的定义、数量和使用方式)中断系统(中断的类型和中断响应硬件的功能等)机器工作状态的定义和切换(如管态和目态等)存储系统(主存容量、程序员可用的最大存储容量等)信息保护(包括信息保护方式和硬件对信息保护的支持),1.2 计算机系统结构的概念,I/O结构包括I/O连接方式、处理机/存储器与I/O设备之间数据传送的方式和格式以及I/O操作的状态等计算机系统结构概念的实质:确定计算机系统中软、硬件的界面,界面之上是软件实现的功能,界面之下
5、是硬件和固件实现的功能。,1.2 计算机系统结构的概念,1.2.3 计算机组成和计算机实现,计算机系统结构:计算机系统的软、硬件的界面即机器语言程序员所看到的传统机器级所具有的属性。计算机组成:计算机系统结构的逻辑实现包含物理机器级中的数据流和控制流的组成以及逻辑设计等。着眼于:物理机器级内各事件的排序方式与控制方式、各部件的功能以及各部件之间的联系。,1.2 计算机系统结构的概念,计算机实现:计算机组成的物理实现包括处理机、主存等部件的物理结构,器件的集 成度和速度,模块、插件、底板的划分与连接,信号传输,电源、冷却及整机装配技术等。着眼于:器件技术(起主导作用)、微组装技术。,一种体系结构
6、可以有多种组成。一种组成可以有多种物理实现。,1.2 计算机系统结构的概念,系列机 由同一厂家生产的具有相同系统结构、但具有不同组成和实现的一系列不同型号的计算机。例如,IBM公司的IBM 370系列,Intel公司的x86系列等。,1.2.4 计算机系统结构的分类,常见的计算机系统结构分类法有两种:Flynn分类法、冯氏分类法,1.2 计算机系统结构的概念,冯氏分类法用系统的最大并行度对计算机进行分类。最大并行度:计算机系统在单位时间内能够处理 的最大的二进制位数。用平面直角坐标系中的一个点代表一个计算机系统,其横坐标表示字宽(n位),纵坐标表示一次能同时处理的字数(m字)。mn就表示了其最
7、大并行度。Flynn分类法 按照指令流和数据流的多倍性进行分类。指令流:计算机执行的指令序列。,1.2 计算机系统结构的概念,1.2 计算机系统结构的概念,数据流:由指令流调用的数据序列。多倍性:在系统受限的部件上,同时处于同一执 行阶段的指令或数据的最大数目。Flynn分类法把计算机系统的结构分为4类:单指令流单数据流(SISD)单指令流多数据流(SIMD)多指令流单数据流(MISD)多指令流多数据流(MIMD)4类计算机的基本结构IS:指令流,DS:数据流,CS:控制流,CU:控制部件,PU:处理部件,MM和SM:存储器。,4个定量原理:以经常性事件为重点对经常发生的情况采用优化方法的原则
8、进行选 择,以得到更多的总体上的改进。优化是指分配更多的资源、达到更高的性能或 者分配更多的电能等。,1.3 定量分析技术,1.3.1 计算机系统设计的定量原理,1.3 定量分析技术,Amdahl定律 加快某部件执行速度所能获得的系统性能加速比,受限于该部件的执行时间占系统中总执行时间的百分比。系统性能加速比:,加速比,系统性能改进后,系统性能改进前,总执行时间改进前,总执行时间改进后,1.3 定量分析技术,加速比依赖于两个因素可改进比例:在改进前的系统中,可改进部分的执 行时间在总的执行时间中所占的比例。它总是小于等于1。例如:一个需运行60秒的程序中有20秒的运算可以加速,那么这个比例就是
9、20/60。部件加速比:可改进部分改进以后性能提高的倍数。它是改进前所需的执行时间与改进后执行时间的比。一般情况下部件加速比是大于1的。例如:若系统改进后,可改进部分的执行时间是2秒,而改进前其执行时间为5秒,则部件加速比为5/2。,1.3 定量分析技术,改进后程序的总执行时间,总执行时间改进后 不可改进部分的执行时间 可改进部分改进后的执行时间总执行时间改进后(1可改进比例)总执行时间改进前,+,(1 可改进比例)+总执行时间改进前,可改进比例,部件加速比,可改进比例总执行时间改进前,部件加速比,1.3 定量分析技术,系统加速比为改进前与改进后总执行时间之比,加速比,总执行时间改进前,总执行
10、时间改进后,(1可改进比例)+,可改进比例,部件加速比,1,1.3 定量分析技术,例1.1 将计算机系统中某一功能的处理速度提高到原来的20倍,但该功能的处理时间仅占整个系统运行时间的40%,则采用此提高性能的方法后,能使整个系统的性能提高多少?解 由题可知,可改进比例=40%=0.4,部件加速比=20 根据Amdahl定律可知:采用此提高性能的方法后,能使整个系统的性能提高到原来的1.613倍。,总加速比=,1,0.6+,0.4,20,=1.613,1.3 定量分析技术,例1.2 某计算机系统采用浮点运算部件后,使浮点运算速度提高到原来的20倍,而系统运行某一程序的整体性能提高到原来的5倍,
11、试计算该程序中浮点操作所占的比例。解 由题可知,部件加速比=20,系统加速比=5 根据Amdahl定律可知 由此可得:可改进比例=84.2%即程序中浮点操作所占的比例为84.2%。,1.3 定量分析技术,Amdahl定律:一种性能改进的递减规则如果仅仅对计算任务中的一部分做性能改进,则改 进得越多,所得到的总体性能的提升就越有限。重要推论:如果只针对整个任务的一部分进行改 进和优化,那么所获得的加速比不超过 1/(1可改进比例),1.3 定量分析技术,CPU性能公式执行一个程序所需的CPU时间CPU时间=执行程序所需的时钟周期数时钟周期时间其中,时钟周期时间是系统时钟频率的倒数。每条指令执行的
12、平均时钟周期数CPI(Cycles Per Instruction)CPI=执行程序所需的时钟周期数IC IC:所执行的指令条数程序执行的CPU时间可以写成 CPU时间=IC CPI 时钟周期时间,1.3 定量分析技术,CPU的性能取决于3个参数时钟周期时间:取决于硬件实现技术和计算机组成。CPI:取决于计算机组成和指令集结构。IC:取决于指令集结构和编译技术。对CPU性能公式进行进一步细化 假设:计算机系统有n种指令;CPIi:第i种指令的处理时间;ICi:在程序中第i种指令出现的次数;则 CPU时钟周期数=(CPIi ICi),n,i=1,1.3 定量分析技术,CPU时间=执行程序所需的时
13、钟周期数时钟周期时间=(CPIiICi)时钟周期时间CPI可以表示为CPI=其中,(ICi/IC)反映了第i种指令在程序中所占的比例。,i=1,n,时钟周期数,IC,(CPIiICi),i=1,n,IC,(CPIi),i=1,n,ICi,IC,1.3 定量分析技术,例1.3 考虑条件分支指令的两种不同设计方法:(1)CPUA:通过比较指令设置条件码,然后测试条件码进行分支。(2)CPUB:在分支指令中包括比较过程。在这两种CPU中,条件分支指令都占用2个时钟周期,而所有其他指令占用1个时钟周期。对于CPUA,执行的指令中分支指令占20%;由于每条分支指令之前都需要有比较指令,因此比较指令也占2
14、0%。由于CPUA在分支时不需要比较,因此CPUB的时钟周期时间是CPUA的1.25倍。问:哪一个CPU更快?如果CPUB的时钟周期时间只是CPUA的1.1倍,哪一个CPU更快呢?,1.3 定量分析技术,解 我们不考虑所有系统问题,所以可用CPU性能公式。占用2个时钟周期的分支指令占总指令的20%,剩下的指令占用1个时钟周期。所以 CPIA=0.2 2+0.80 1=1.2则CPUA性能为 总CPU时间A=ICA 1.2 时钟周期A根据假设,有 时钟周期B=1.25 时钟周期A 在CPUB中没有独立的比较指令,所以CPUB的程序量为CPUA的80%,分支指令的比例为,1.3 定量分析技术,20
15、%/80%=25%这些分支指令占用2个时钟周期,而剩下的75%的指令占用1个时钟周期,因此 CPIB=0.25 2+0.75 1=1.25因为CPUB不执行比较,故 ICB=0.8 ICA因此CPUB性能为 总CPU时间B=ICB CPIB 时钟周期B=0.8 ICA 1.25(1.25 时钟周期A)=1.25 ICA 时钟周期A,1.3 定量分析技术,在这些假设之下,尽管CPUB执行指令条数较少,CPUA因为有着更短的时钟周期,所以比CPUB快。如果CPUB的时钟周期时间仅仅是CPUA的1.1倍,则 时钟周期B=1.10 时钟周期ACPUB的性能为 总CPU时间B=ICB CPIB 时钟周期
16、B=0.8 ICA 1.25(1.10 时钟周期A)=1.10 ICA 时钟周期A 因此CPUB由于执行更少指令条数,比CPUA运行更快。,1.3 定量分析技术,程序的局部性原理 程序执行时所访问的存储器地址分布不是随机的,而是相对地簇聚。常用的一个经验规则程序执行时间的90%都是在执行程序中10%的代码。程序的时间局部性程序即将用到的信息很可能就是目前正在使用的信息。程序的空间局部性 程序即将用到的信息很可能与目前正在使用的信息在空间上相邻或者临近。,1.3 定量分析技术,执行时间和吞吐率 如何评测一台计算机的性能,与测试者看问题的角度有关。用户关心的是:单个程序的执行时间(执行单个 程序所
17、花的时间很少)数据处理中心的管理员关心的是:吞吐率(在单 位时间里能够完成的任务很多),1.3.2 计算机系统的性能评测,1.3 定量分析技术,假设两台计算机为X和Y,X比Y快的意思是:对于给定任务,X的执行时间比Y的执行时间少。X的性能是Y的n倍,即而执行时间与性能成反比,即,执行时间Y,执行时间X,=n,n=,执行时间Y,执行时间X,性能Y,1,性能X,1,性能X,性能Y,1.3 定量分析技术,执行时间可以有多种定义:计算机完成某一任务所花费的全部时间,包括磁盘访问、存储器访问、输入/输出、操作系统开销等。CPU时间:CPU执行所给定的程序所花费的时间,不包含I/O等待时间以及运行其他程序
18、的时间。用户CPU时间:用户程序所耗费的CPU时间。系统CPU时间:用户程序运行期间操作系统耗费的 CPU时间。,1.3 定量分析技术,基准测试程序 用于测试和比较性能的基准测试程序的最佳选择是真实应用程序。(例如编译器)以前常采用简化了的程序,例如:核心测试程序:从真实程序中选出的关键代码段构 成的小程序。小测试程序:简单的只有几十行的小程序。合成的测试程序:人工合成出来的程序。Whetstone与Dhrystone是最流行的合成测试程序。从测试性能的角度来看,上述测试程序就不可信了。,1.3 定量分析技术,原因:这些程序比较小,具有片面性;系统结构设计者和编译器的设计者可以“合谋”把他们的
19、计算机面向这些测试程序进行优化设计,使得 该计算机显得性能更高。性能测试的结果除了和采用什么测试程序有关以 外,还和在什么条件下进行测试有关。基准测试程序设计者对制造商的要求采用同一种编译器;对同一种语言的程序都采用相同的一组编译标志。,1.3 定量分析技术,一个问题:是否允许修改测试程序的源程序三种不同的处理方法:不允许修改。允许修改,但因测试程序很复杂或者很大,几乎是无法修改。允许修改,只要保证最后输出的结果相同。基准测试程序套件:由各种不同的真实应用程序构成。(能比较全面地反映计算机在各个方面的处理性能)SPEC系列:最成功和最常见的测试程序套件(美国的标准性能评估公司开发),1.3 定
20、量分析技术,台式计算机的基准测试程序套件可以分为两大类:处理器性能测试程序,图形性能测试程序SPEC89:用于测试处理器性能。10个程序(4个整数程序,6个浮点程序)演化出了4个版本SPEC92:20个程序SPEC95:18个程序SPEC2000:26个程序SPEC CPU2006:29个程序SPEC CPU2006,1.3 定量分析技术,整数程序12个(CINT2006)9个是用C写的,3个是用C+写的浮点程序17个(CFP2006)6个是用FORTRAN写的,4个是用C+写的,3个是用C写的,4个是用C和FORTRAN混合编写的。SPEC测试程序套件中的其他一系列测试程序组件SPECSFS
21、:用于NFS(网络文件系统)文件服务器的测试程序。它不仅测试处理器的性能,而且测试I/O系统的性能。它重点测试吞吐率。SPECWeb:Web服务器测试程序。,1.3 定量分析技术,SPECviewperf:用于测试图形系统支持OpenGL库的性能。SPECapc:用于测试图形密集型应用的性能。事务处理(TP)性能测试基准程序:用于测试计算机在事务处理方面的能力,包括数据库访问 和更新等。20世纪80年代中期,一些工程师成立了称为TPC的独立组织。目的是开发用于TP性能测试的真实而又公平的基准程序。先后发布了多个版本:TPC-A、TPC-C、TPC-H、TPC-W、TPC-App等(主要是用于测
22、试服务器的性能),1.3 定量分析技术,用于测试基于Microsoft公司的Windows系列操作系统平台的测试套件 PCMark04:中央处理器测试组、内存测试组、图形芯片测试组、硬盘测试组等。Business Winstone 2004:主要用于测试计算机系统商业应用的综合性能。Multimedia Content Creation Winstone 2004:主要用于测试计算机系统多媒体应用的综合性能。SiSoft Sandra Pro 2004:一套功能强大的系统分析评比工具,拥有超过30种以上的分析与测试模块。主要包括:CPU、存储器、I/O接口、I/O设备、主板等。,性能比较,两个
23、程序在A、B、C三台计算机上的执行时间,1.3 定量分析技术,1.3 定量分析技术,如何比较这3台计算机的性能呢?从该表可以得出:执行程序1:A机的速度是B机的10倍A机的速度是C机的20倍B机的速度是C机的2倍执行程序2:B机的速度是A机的100倍C机的速度是A机的50倍B机的速度是C机的2倍,1.3 定量分析技术,总执行时间:计算机执行所有测试程序的总时间B机执行程序1和程序2的速度是A机的50.05倍C机执行程序1和程序2的速度是A机的24.02倍B机执行程序1和程序2的速度是C机的2倍平均执行时间:各测试程序执行时间的算术平均值其中,Ti:第i个测试程序的执行时间 n:测试程序组中程序
24、的个数,1.3 定量分析技术,加权执行时间:各测试程序执行时间的加权平均值其中,Wi:第i个测试程序在测试程序组中所占的比重 Ti:该程序的执行时间,1.4 计算机系统结构的发展,1.4.1 冯诺依曼结构,存储程序计算机的结构,1.4 计算机系统结构的发展,存储程序原理的基本点:指令驱动程序预先存放在计算机存储器中,计算机一旦启动,就能按照程序指定的逻辑顺序执行这些程序,自动完成由程序所描述的处理工作。冯诺依曼结构的主要特点以运算器为中心。在存储器中,指令和数据同等对待。指令和数据一样可以进行运算,即由指令组成的程序是可以修改的。存储器是按地址访问、按顺序线性编址的一维结 构,每个单元的位数是
25、固定的。,1.4 计算机系统结构的发展,指令的执行是顺序的。一般是按照指令在存储器中存放的顺序执行。程序的分支由转移指令实现。由指令计数器PC指明当前正在执行的指令在存储器 中的地址。指令由操作码和地址码组成。指令和数据均以二进制编码表示,采用二进制运算。,1.4 计算机系统结构的发展,对系统结构进行的改进输入/输出方式的改进采用并行处理技术 如何挖掘传统机器中的并行性?在不同的级别采用并行技术。例如,微操作级、指令级、线程级、进程级、任务级等。,1.4 计算机系统结构的发展,存储器组织结构的发展相联存储器与相联处理机通用寄存器组高速缓冲存储器Cache指令集的发展 两个发展方向:复杂指令集计
26、算机(CISC)精减指令集计算机(RISC),1.4 计算机系统结构的发展,软件的可移植性:一个软件可以不经修改或者只 需少量修改就可以由一台计算机移植到另一台计算机上正确地运行。差别只是执行时间的不同。我们称这两台计算机是软件兼容的。实现可移植性的常用方法 采用系列机,模拟与仿真,统一高级语言。,1.4.2 软件对系统结构的影响,系列机 由同一厂家生产的具有相同的系统结构,但具有不同组成和实现的一系列不同型号的机器。较好地解决软件开发要求系统结构相对稳定与器 件、硬件技术迅速发展的矛盾。软件兼容,1.4 计算机系统结构的发展,1.4 计算机系统结构的发展,向上(下)兼容:按某档机器编制的程序
27、,不加修改 就能运行于比它高(低)档的机器。向前(后)兼容:按某个时期投入市场的某种型号机 器编制的程序,不加修改地就能运行于在它之前(后)投入市场的机器。向后兼容是系列机的根本特征。兼容机:由不同公司厂家生产的具有相同系统结 构的计算机。,1.4 计算机系统结构的发展,模拟和仿真使软件能在具有不同系统结构的机器之间相互移植。在一种系统结构上实现另一种系统结构。从指令集的角度来看,就是要在一种机器上实现 另一种机器的指令集。模拟:用软件的方法在一台现有的机器(称为宿主机)上实现另一台机器(称为虚拟机)的指令集。通常用解释的方法来实现。运行速度较慢,性能较差。,1.4 计算机系统结构的发展,仿真
28、:用一台现有机器(宿主机)上的微程序 去解释实现另一台机器(目标机)的指令集。运行速度比模拟方法的快仿真只能在系统结构差距不大的机器之间使用统一高级语言 实现软件移植的一种理想的方法较难实现,1.4 计算机系统结构的发展,摩尔定律 集成电路芯片上所集成的晶体管数目每隔18个月就翻一番。计算机的分代主要以器件作为划分标准。它们在器件、系统结构和软件技术等方面都有各 自的特征。SMP:对称式共享存储器多处理机 MPP:大规模并行处理机,1.4.3 器件发展对系统结构的影响,1.4 计算机系统结构的发展,不同的应用对计算机系统结构的设计提出了不同的要求应用需求是促使计算机系统结构发展的最根本的动力一
29、些特殊领域:需要高性能的系统结构 高结构化的数值计算气象模型、流体动力学、有限元分析非结构化的数值计算蒙特卡洛模拟、稀疏矩阵实时多因素问题语音识别、图像处理、计算机视觉,1.4.4 应用对系统结构的影响,1.4 计算机系统结构的发展,大存储容量和输入输出密集的问题数据库系统、事务处理系统图形学和设计问题计算机辅助设计人工智能面向知识的系统、推理系统等计算机性能随时间下移,1.4 计算机系统结构的发展,系统结构的生命周期:从诞生、发展、成熟到消亡从硬件成熟到系统软件成熟大约需要57年的时间从系统软件成熟到应用软件成熟,大约也需要57年时间。再过57年的时间,这种系统结构就不会作为主流系统结构存在
30、了。Intel的x86系列微处理器中32位系统结构的发展,1.4.5 系统结构的生命周期,1.4 计算机系统结构的发展,并行性:计算机系统在同一时刻或者同一时间间隔内 进行多种运算或操作。只要在时间上相互重叠,就存在并行性。同时性:两个或两个以上的事件在同一时刻发生。并发性:两个或两个以上的事件在同一时间间隔 内发生。,1.5 计算机系统结构中并行性的发展,1.5.1 并行性的概念,1.5 计算机系统结构中并行性的发展,从处理数据的角度来看,并行性等级从低到高可分为:字串位串:每次只对一个字的一位进行处理。最基本的串行处理方式,不存在并行性。字串位并:同时对一个字的全部位进行处理,不 同字之间
31、是串行的。开始出现并行性。字并位串:同时对许多字的同一位(称为位片)进行处理。具有较高的并行性。全并行:同时对许多字的全部位或部分位进行处理。最高一级的并行。,1.5 计算机系统结构中并行性的发展,从执行程序的角度来看,并行性等级从低到高可分为:指令内部并行:单条指令中各微操作之间的并行。指令级并行:并行执行两条或两条以上的指令。线程级并行:并行执行两个或两个以上的线程。通常是以一个进程内派生的多个线程为调度单位。任务级或过程级并行:并行执行两个或两个以上 的过程或任务(程序段)以子程序或进程为调度单元。作业或程序级并行:并行执行两个或两个以上的 作业或程序。,1.5 计算机系统结构中并行性的
32、发展,三种途径:时间重叠 引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。资源重复 引入空间因素,以数量取胜。通过重复设置硬件资源,大幅度地提高计算机系统的性能。,1.5.2 提高并行性的技术途径,1.5 计算机系统结构中并行性的发展,资源共享 这是一种软件方法,它使多个任务按一定时间顺序轮流使用同一套硬件设备。,1.5 计算机系统结构中并行性的发展,在发展高性能单处理机过程中,起主导作用的是时间 重叠原理。实现时间重叠的基础:部件功能专用化把一件工作按功能分割为若干相互联系的部分;把每一部分指定给专门的部件完成;按时间重叠原理把
33、各部分的执行过程在时间上 重叠起来,使所有部件依次分工完成一组同样的工作。,1.5.3 单机系统中并行性的发展,1.5 计算机系统结构中并行性的发展,例如:对于解释指令的5个过程,就分别需要5个专用的部件:取指令部件(IF)、指令译码部件(ID)、指令执行部件(EX)、访问存储器部件(M)和写结果部件(WB)。,1.5 计算机系统结构中并行性的发展,在单处理机中,资源重复原理的运用也已经十分普遍。多体存储器多操作部件通用部件被分解成若干个专用部件,如加法部件、乘 法部件、除法部件、逻辑运算部件等,而且同一种部 件也可以重复设置多个。只要指令所需的操作部件空闲,就可以开始执行这条 指令(如果操作
34、数已准备好的话)。这实现了指令级并行。,1.5 计算机系统结构中并行性的发展,阵列处理机(并行处理机)更进一步,设置许多相同的处理单元,让它们在同一个控制器的指挥下,按照同一条指令的要求,对向量或数组的各元素同时进行同一操作,就形成了阵列处理机。在单处理机中,资源共享的概念实质上是用单处理机 模拟多处理机的功能,形成所谓虚拟机的概念。分时系统,1.5 计算机系统结构中并行性的发展,多机系统遵循时间重叠、资源重复、资源共享原理,发展为3种不同的多处理机:异构型多处理机、同构型多处理机、分布式系统耦合度 反映多机系统中各机器之间物理连接的紧密程度和交互作用能力的强弱。紧密耦合系统(直接耦合系统):
35、在这种系统 中,计算机之间的物理连接的频带较高,一般是,1.5.4 多机系统中并行性的发展,1.5 计算机系统结构中并行性的发展,通过总线或高速开关互连,可以共享主存。松散耦合系统(间接耦合系统):一般是通过通 道或通信线路实现计算机之间的互连,可以共享 外存设备(磁盘、磁带等)。机器之间的相互作 用是在文件或数据集一级上进行的。表现为两种形式:多台计算机和共享的外存设备连接,不同机器之间实现功能上的分工(功能专用化),机器处理的结果以文件或数据集的形式送到共享外存设备,供其他机器继续处理。计算机网络,通过通信线路连接,实现更大范围的资源共享。,1.5 计算机系统结构中并行性的发展,功能专用化
36、(实现时间重叠)专用外围处理机例如,输入/输出功能的分离。专用处理机如数组运算、高级语言翻译、数据库管理等,分离出来。异构型多处理机系统 由多个不同类型、至少担负不同功能的处理机组成,它们按照作业要求的顺序,利用时间重叠原理,依次对它们的多个任务进行加工,各自完成规定的功能动作。,1.5 计算机系统结构中并行性的发展,机间互连容错系统可重构系统 对计算机之间互连网络的性能提出了更高的要求。高带宽、低延迟、低开销的机间互连网络是高效实现程序或任务一级并行处理的前提条件。同构型多处理机系统 由多个同类型或至少担负同等功能的处理机组成,它们同时处理同一作业中能并行执行的多个任务。,第2章 计算机指令
37、集结构张晨曦 刘依,2.1指令集结构的分类2.2寻址方式2.3指令集结构的功能设计2.4操作数的类型和大小2.5指令格式的设计2.6MIPS指令集结构,区别不同指令集结构的主要因素 CPU中用来存储操作数的存储单元的类型CPU中用来存储操作数的存储单元的主要类型堆栈累加器通用寄存器组将指令集结构分为三种类型,2.1 指令集结构的分类,2.1 指令集结构的分类,堆栈结构累加器结构通用寄存器结构根据操作数的来源不同,又可进一步分为:寄存器-存储器结构(RM结构)(操作数可以来自存储器)寄存器-寄存器结构(RR结构)(所有操作数都是来自通用寄存器组)也称为load-store结构,这个名称强调:只有
38、load指令和store指令能够访问存储器。,2.1 指令集结构的分类,对于不同类型的指令集结构,操作数的位置、个数以及操作数的给出方式(显式或隐式)也会不同。显式给出:用指令字中的操作数字段给出隐式给出:使用事先约定好的存储单元,2.1 指令集结构的分类,例:表达式C=A+B在4种类型指令集结构上的代码。假设:A、B、C均保存在存储器单元中,并且不能 破坏A和B的值。,2.1 指令集结构的分类,通用寄存器结构现代指令集结构的主流在灵活性和提高性能方面有明显的优势跟其他的CPU内部存储单元一样,寄存器的访问 速度比存储器快。对编译器而言,能更加容易、有效地分配和使用 寄存器。寄存器可以用来存放
39、变量。(1)减少对存储器的访问,加快程序的执行速度;(因为寄存器比存储器快),2.1 指令集结构的分类,(2)用更少的地址位(相对于存储器地址来说)来对寄 存器进行寻址,从而有效地减少程序的目标代码的 大小。根据ALU指令的操作数的两个特征对通用寄存器型指 令集结构进一步细分ALU指令的操作数个数3个操作数的指令 两个源操作数、一个目的操作数2个操作数的指令其中一个操作数既作为源操作数,又作为目的操作数。,2.1 指令集结构的分类,ALU指令中存储器操作数的个数可以是0中的某一个,为0表示没有存储器操作数。,ALU指令中操作数个数和存储器操作数个数的典型组合,2.1 指令集结构的分类,通用寄存
40、器型指令集结构进一步细分为3种类型寄存器-寄存器型(RR型)寄存器-存储器型(RM型)存储器-存储器型(MM型)3种通用寄存器型指令集结构的优缺点 表中(m,n)表示指令的n个操作数中有m个存 储器操作数。,一种指令集结构如何确定所要访问的数据的地址?当前的指令集结构中所采用的一些操作数寻址方式:赋值操作Mem:存储器Regs:寄存器组方括号:表示内容Mem:存储器的内容Regs:寄存器的内容MemRegsR1:以寄存器R1中的内容作为地址的 存储器单元中的内容,2.2 寻址方式,2.2 寻址方式,采用多种寻址方式可以显著地减少程序的指令条 数,但可能增加计算机的实现复杂度以及指令的CPI。,
41、2.2 寻址方式,程序所使用的偏移量大小分布十分广泛 主要是因为在存储器中所保存的数据并不是十分集中,需要使用不同的偏移量才能对其进行访问。较小的偏移量和较大的偏移量均占有相当大 的比例,2.2 寻址方式,立即数寻址方式立即数寻址方式的使用频度,大约1/4的load指令和ALU指令采用了立即数寻址。,指令集结构的功能设计确定软、硬件功能分配,即确定哪些基本功能应该由硬件实现,哪些功能由软件实现比较合适。在确定哪些基本功能用硬件来实现时,主要考虑3个因素:速度、成本、灵活性硬件实现的特点 速度快、成本高、灵活性差软件实现的特点 速度慢、价格便宜、灵活性好,2.3 指令集结构的功能设计,2.3 指
42、令集结构的功能设计,对指令集的基本要求 完整性、规整性、高效率、兼容性 完整性:在一个有限可用的存储空间内,对于任何可解的问题,编制计算程序时,指令集所提供的指令足够用。要求指令集功能齐全、使用方便下表为许多指令集结构都包含的一些指令类型 前4类属于通用计算机系统的基本指令对于最后4种类型的操作,不同指令集结构的支 持大不相同。,2.3 指令集结构的功能设计,2.3 指令集结构的功能设计,规整性:主要包括对称性和均匀性。对称性:所有与指令集有关的存储单元的使用、操作码的设置等都是对称的。例如:在存储单元的使用上,所有通用寄存器都要同等对 待。在操作码的设置上,如果设置了A-B的指 令,就应该也
43、设置B-A的指令。均匀性:指对于各种不同的操作数类型、字长、操作 种类和数据存储单元,指令的设置都要同等对待。例如:如果某机器有5种数据表示,4种字长,两种存储单 元,则要设置542=40种同一操作的指令。,2.3 指令集结构的功能设计,高效率:指指令的执行速度快、使用频度高。在设计指令集结构时,有两种截然不同的设计策略。(产生了两类不同的计算机系统)CISC(复杂指令集计算机)增强指令功能,把越来越多的功能交由硬件来实 现,并且指令的数量也是越来越多。RISC(精简指令集计算机)尽可能地把指令集简化,不仅指令的条数少,而且 指令的功能也比较简单。,2.3 指令集结构的功能设计,CISC结构追
44、求的目标 强化指令功能,减少程序的指令条数,以达到提高性能的目的。增强指令功能主要是从以下几个方面着手:面向目标程序增强指令功能 增强运算型指令的功能增强数据传送指令的功能增强程序控制指令的功能 丰富的程序控制指令为编程提供了多种选择。,2.3.1 CISC指令集结构的功能设计,2.3 指令集结构的功能设计,例如:循环在程序中占有相当大的 比例,所以在指令上提供专 门的支持。循环控制部分通常用3条指令完成:一条加法指令一条比较指令一条分支指令设置循环控制指令,用一条指令完成上述3条指令的功能。,一般循环程序的结构,2.3 指令集结构的功能设计,面向高级语言的优化实现来改进指令集(缩小高级语言与
45、机器语言的语义差距)高级语言与一般的机器语言的语义差距非常大,为高级语言程序的编译带来了一些问题。(1)编译器本身比较复杂。(2)编译生成的目标代码比较难以达到很好的优化。,2.3 指令集结构的功能设计,2.3 指令集结构的功能设计,增强对高级语言和编译器的支持 对源程序中各种高级语言语句的使用频度进行 统计与分析,对使用频度高、执行时间长的语句,增强有关指令的功能,加快这些指令的执行速度,或者增加专门的指令,可以达到减少目标程序的执行时间和减少目标程序长度的目的。增强系统结构的规整性,减少系统结构中的各种例外情况。(面向高级语言的计算机),2.3 指令集结构的功能设计,高级语言计算机 间接执
46、行高级语言机器 高级语言成为机器的汇编语言,这时高级语言和机器语言是一一对应的。用汇编的方法把高级语言源程序翻译成机器语言程序。直接执行高级语言的机器 直接把高级语言作为机器语言,直接由固件/硬件对高级语言源程序的语句逐条进行解释执行。这时既不用编译,也不用汇编。,2.3 指令集结构的功能设计,面向操作系统的优化实现改进指令集 操作系统和计算机系统结构是紧密联系的,操作系 统的实现在很大程度上取决于系统结构的支持。指令集对操作系统的支持主要有:处理机工作状态和访问方式的切换。进程的管理和切换。存储管理和信息保护。进程的同步与互斥,信号灯的管理等。支持操作系统的有些指令属于特权指令,一般用户程序
47、是不能使用的。,2.3 指令集结构的功能设计,CISC指令集结构存在的问题(1979年开始,Patterson等人的研究)各种指令的使用频度相差悬殊据统计:只有20的指令使用频度比较高,占运行时间的80,而其余80的指令只在20的运行时间内才会用到。使用频度高的指令也是最简单的指令。,2.3.2 RISC指令集结构的功能设计,Intel 80 x86最常用的10条指令,2.3 指令集结构的功能设计,指令集庞大,指令条数很多,许多指令的功能又 很复杂,使得控制器硬件非常复杂。导致的问题:占用了大量的芯片面积(如占用CPU芯片总面积的一半以上),给VLSI设计造成很大的困难;增加了研制时间和成本,
48、容易造成设计错误。许多指令由于操作繁杂,其CPI值比较大,执行 速度慢。采用这些复杂指令有可能使整个程序的 执行时间反而增加。由于指令功能复杂,规整性不好,不利于采用流 水技术来提高性能。,2.3 指令集结构的功能设计,设计RISC机器遵循的原则 指令条数少而简单。只选取使用频度很高的指令,在此基础上补充一些最有用的指令。采用简单而又统一的指令格式,并减少寻址方式;指令字长都为32位或64位。指令的执行在单个机器周期内完成。(采用流水线机制)只有load和store指令才能访问存储器,其他指令的操作都是在寄存器之间进行。(即采用load-store结构)大多数指令都采用硬连逻辑来实现。,2.3
49、 指令集结构的功能设计,强调优化编译器的作用,为高级语言程序生成优化的代码。充分利用流水技术来提高性能。早期的RISC微处理器1981年,Berkeley分校的Patterson 等人的32位微处理器RISC I:31条指令,指令字长都是32位,78个通用寄存器,时钟频率为8 MHz;控制部分所占的芯片面积只有约6%。商品化微处理器MC68000和Z8000分别为50%和53%;性能比MC68000和Z8000快34倍。,2.3 指令集结构的功能设计,1983年的RISC:指令条数为39,通用寄存器个数为138,时钟频率为12 MHz。后来发展成了Sun公司的SPARC系列微处理器。1981年
50、,Stanford大学Hennessy等人的MIPS后来发展成了MIPS Rxxx系列微处理器。IBM的801共同特点:采用load-store结构指令字长为32位采用高效的流水技术,2.3 指令集结构的功能设计,控制指令是用来改变控制流的。跳转:当指令是无条件改变控制流时,称之为跳转指令。分支:当控制指令是有条件改变控制流时,则称之为分支指令。能够改变控制流的指令分支跳转过程调用过程返回,2.3.3 控制指令,2.3 指令集结构的功能设计,控制指令的使用频度(load-store型指令集结构的机器,基准程序为SPEC CPU2000),改变控制流的大部分指令是分支指令(条件转移)。,常用的3