复习:(1)Amdahl提出的系统结构定义及实质。(2)计算机系统结构、计算机组成、计算机实现之间的关系。(3)计算机系统设计的定量原理中的Amdahl定律的内容。Amdahl提出的系统结构传统机器语言级程序员所看到的计算机属性。计算机系统结构概念的实质:确定计算机系统中软、硬件的界面,界面之上是软件实现的功能,界面之下是硬件和固件实现的功能。计算机组成:计算机系统结构的逻辑实现包含物理机器级中的数据流和控制流的组成以及逻辑设计等。计算机实现:计算机组成的物理实现。计算机系统结构:计算机系统的软、硬件的界面,即机器语言程序员所看到的传统机器级所具有的属性。Amdahl定律加快某部件执行速度所能获得的系统性能加速比,受限于该部件的执行时间占系统中总执行时间的百分比。系统性能加速比:加速比=总执行时间改进前总执行时间改进后=(1-可改进比例)+可改进比例部件加速比1本次课的主要内容:(1)程序的局部性原理(2)计算机系统结构的发展(3)计算机系统结构中并行性的发展1.3定量分析技术程序的局部性原理程序执行时所访问的存储器地址分布不是随机的,而是相对地簇聚。常用的一个经验规则程序执行时间的90%都是在执行程序中10%的代码。程序的时间局部性程序即将用到的信息很可能就是目前正在使用的信息。程序的空间局部性程序即将用到的信息很可能与目前正在使用的信息在空间上相邻或者临近。1.4计算机系统结构的发展对系统结构进行的改进输入/输出方式的改进采用并行处理技术挖掘传统机器中的并行性。在不同的级别采用并行技术。例如,微操作级、指令级、线程级、进程级、任务级等。程序控制输入输出方式DMAI/O处理机程序等待程序中断成组传递周期挪用通道外围处理机1.4计算机系统结构的发展存储器组织结构的发展相联存储器与相联处理机通用寄存器组高速缓冲存储器Cache指令集的发展两个发展方向:复杂指令集计算机(CISC)精减指令集计算机(RISC)1.4计算机系统结构的发展软件的可移植性:一个软件可以不经修改或者只需少量修改就可以由一台计算机移植到另一台计算机上正确地运行。差别只是执行时间的不同。我们称这两台计算机是软件兼容的。实现可移植性的常用方法采用系列机,模拟与仿真,统一高级语言。1.4.2软件对系统结构的影响1.4计算机系统结构的发展模拟和仿真使软件能在具有不同系统结构的机器之间相互移植。在一种系统结构上实现另一种系统结构。从指令集的角度来看,就是要在一种机器上实现另一种机器的指令集。模拟:用软件的方法在一台现有的机器(称为宿主机)上实现另一台机器(称为虚拟机)的指令集。通常用解释的方法来实现。运行速度较慢,性能较差。1.4计算机系统结构的发展仿真:用一台现有机器(宿主机)上的微程序去解释实现另一台机器(目标机)的指令集。运行速度比模拟方法的快仿真只能在系统结构差距不大的机器之间使用统一高级语言实现软件移植的一种理想的方法较难实现软件是促使计算机系统结构发展的最重要的因素。1.4计算机系统结构的发展摩尔定律集成电路芯片上所集成的晶体管数目每隔18个月就翻一番。计算机的分代主要以器件作为划分标准。它们在器件、系统结构和软件技术等方面都有各自的特征。器件是促使计算机系统结构发展最活跃的因素。1.4.3器件发展对系统结构的影响1.4计算机系统结构的发展不同的应用对计算机系统结构的设计提出了不同的要求。应用需求是促使计算机系统结构发展的最根本的动力。一些特殊领域:需要高性能的系统结构高结构化的数值计算气象模型、流体动力学、有限元分析非结构化的数值计算语音识别、图像处理、计算机视觉1.4.4应用对系统结构的影响1.4计算机系统结构的发展大存储容量和输入输出密集的问题数据库系统、事务处理系统图形学和设计问题计算机辅助设计人工智能面向知识的系统、推理系统等应用需求是促使计算机系统结构发展的最根本的动力。并行性:计算机系统在同一时刻或者同一时间间隔内进行多种运算或操作。只要在时间上相互重叠,就存在并行性。同时性:两个或两个以上的事件在同一时刻发生。并发性:两个或两个以上的事件在同一时间间隔内发生。1.5计算机系统结构中并行性的发展1.5.1并行性的概念1.5计算机系统结构中并行性的发展从处理数据的角度来看,并行性等级从低到高可分为:字串位串:每次只对一个字的一位进行处理。最基本的串行处理方式,不存在并行性。字串位并:同时对一个字的全部位进行处理,不同字之间是串行的。开始出现并行性。字并位串:同时对许多字的同一位(称为位片)进行处理。具有较高的并行性。全并行:同时对许多字的全部位或部分位进行处理。最高一级的并行。1.5计算机系统结构中并行性的发展从执行程序的角度来看,并行性等级从低到高可分为:指令内部并行:单条指令中各微操作之间的并行。指令级并行:并行执行两条或两条以上的指令。线程级并行:并行执行两个或两个以上的线程。通常是以一个进程内派生的多个线程为调度单位。•任务级或过程级并行:并行执行两个或两个以上的过程或任务(程序段)以子程序或进程为调度单元。•作业或程序级并行:并行执行两个或两个以上的作业或程序。1.5计算机系统结构中并行性的发展三种途径:时间重叠引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。资源重复引入空间因素,以数量取胜。通过重复设置硬件资源,大幅度地提高计算机系统的性能。1.5.2提高并行性的技术途径1.5计算机系统结构中并行性的发展资源共享这是一种软件方法,它使多个任务按一定时间顺序轮流使用同一套硬件设备。1.5计算机系统结构中并行性的发展在发展高性能单处理机过程中,起主导作用的是时间重叠原理。实现时间重叠的基础:部件功能专用化把一件工作按功能分割为若干相互联系的部分;把每一部分指定给专门的部件完成;按时间重叠原理把各部分的执行过程在时间上重叠起来,使所有部件依次分工完成一组同样的工作。1.5.3单机系统中并行性的发展1.5计算机系统结构中并行性的发展例如:对于解释指令的5个过程,就分别需要5个专用的部件:取指令部件(IF)、指令译码部件(ID)、指令执行部件(EX)、访问存储器部件(M)和写结果部件(WB)。IFIDEXMWBIFIDEXMWBIFIDEXMWBIFIDEXMWBIFIDEXMWBIFIDEXMWBIFIDEXMWB指令i指令i+1指令i+2指令i指令i+1指令i+2指令i+3时间串行执行流水执行1.5计算机系统结构中并行性的发展在单处理机中,资源重复原理的运用也已经十分普遍。多体存储器多操作部件通用部件被分解成若干个专用部件,如加法部件、乘法部件、除法部件、逻辑运算部件等,而且同一种部件也可以重复设置多个。只要指令所需的操作部件空闲,就可以开始执行这条指令(如果操作数已准备好的话)。这实现了指令级并行。1.5计算机系统结构中并行性的发展阵列处理机(并行处理机)更进一步,设置许多相同的处理单元,让它们在同一个控制器的指挥下,按照同一条指令的要求,对向量或数组的各元素同时进行同一操作,就形成了阵列处理机。在单处理机中,资源共享的概念实质上是用单处理机模拟多处理机的功能,形成所谓虚拟机的概念。分时系统总结:(1)程序的局部性原理(2)软件、应用、器件对系统结构的影响(3)单机系统中并行性的发展