1、1,第一章计算机系统结构设计基础 1.1 计算机系统结构的含义和分类1.1.1 计算机系统结构的含义1.1.1.1 计算机系统结构的外特性1.1.1.2 计算机系统结构的内特性 1.1.1.3计算机系统的微系统结构微外特性 1.2 计算机系统设计的准则 1.1.2计算机系统结构的分类1.1.2.1 按“流”分类1.1.2.2 按“并行级”和“流水线”分类 1.3 计算机系统结构的发展1.3.1 计算机系统结构的演变1.3.2 软件、应用和器件对系统结构发展的影响1.3.2.1 软件对系统结构发展的影响1.3.2.2 应用需求对系统结构发展的影响1.3.2.3 器件对系统结构发展的影响,2,本章
2、从外特性和内特性两方面介绍计算机系统结构的含义。叙述计算机系统结构的主要分类方法。讨论计算机系统设计应遵循的三个定量原理。最后概述计算机系统结构的发展,并说明软件、应用和器件在计算机系统结构发展中所起的作用。 1.1 计算机系统结构的含义和分类计算机计算机系统性能得到了大幅度地提高,价格却大幅度地下降。归结于两个方面的原因: 制造计算机的器件不断发展,3,主要得益于计算机计算机系统结构的改进。大型机的性能巨型机的性能增长小型机的发展由于计算机的实现方法有了较大的改进,采用了许多大型机中行之有效的先进技术。 一个变化是汇编语言编程的重要性逐步降低,这就放宽了对目标代码兼容性的苛刻要求。另一个变化
3、是与制造商无关的、类似UNIX OS那样标准化的建立,使得新系统结构出台的成本和风险都大为降低。这种情况导致了许多公司追求新的系统结构发展方向,从而很快地涌现出一些新的计算机类型,4,1985年开始,一种具有新颖设计风格的系统结构采用RISC技术的系统结构为计算机工业界青睐。应当指出的是,这种改进的基础是通过以往计算机如何被使用的模拟实验数据进行定量分析获得的。,5,1.1.1 计算机系统结构的含义1.1.1.1 计算机系统结构的外特性Architecture建筑学可以认为是一个系统的外貌。计算机作为一个有硬件、软件和固件的系统,也有其外观外特性。1964年IBM360系列机的主设计师Amda
4、hl提出了有关计算机系统结构的定义:,计算机系统结构就是程序员所看到的计算机的基本属性,即概念性结构和功能性结构。这实际上是指计算机的外特性。,6,那么通常所说的计算机系统结构的外特性应是哪一级程序员看到的外特性呢?比较一致的看法是机器语言程序员或编译编写者所看到的外特性,也就是指传统机器级的系统结构。传统机器级以上的功能被视为属于软件功能,而之下则属于硬件和固件功能。因此,计算机系统结构的概念性结构和功能属性实际上已成为计算机系统中软硬件之间的界面。几个重要概念: 计算机系统结构按功能可划分为多层次结构,如图1.1所示。,7,8,虽然软、硬件两者的实质是不同的,但它们的功能在逻辑上是等价的。
5、绝大部分硬件功能都可以用软件来实现,反之亦然。但两者在实现时将在性能价格比上以及实现的难易程度上不等价。, 具有相同功能的计算机系统,它们的软硬件间的功能分配,可能在很宽的范围内变化,因此软硬件的界面是含糊不清的,没有明确的固定界线,可随各种因素的影响在一定的范围内动态地变化。主要因素有:性能和成本、对存储器容量的需求量、可扩展和可更改性。,透明性概念。一种本来存在的差异的事物或属性,从某种角度来看似乎不再存在,称为透明现象。,传统机器级以上的所有机器都称为 虚拟机(Virtual machine)。,9,计算机系统结构的外特性(系统结构),比较一致的看法应包括: 指令系统 数据的表示 操作数
6、寻址方式 寄存器的构成定义 中断机构和例外条件 存储体系和管理 包括主存、编址方式、最大可编址空间。 I/O机构 包括I/O设备的连接方式,处理机、存储器与 I/O设备之间的数据传递方式和格式、传递的数据量及 传递操作结束的表示及出错指示。 机器工作状态的定义和切换 例如是系统态还是用户态。 信息保护 包括保护方式及有关硬件支持等。,10,1.1.1.2 计算机系统结构的内特性计算机系统的外特性是由硬件和固件加以实现的,它们本身也是由电路、逻辑门或寄存器传递级所组成。这些组成的描述通常过于详细,对它们的抽象便成为计算机系统的内特性(也称为计算机组成),它实际上是计算机系统的逻辑实现。计算机系统
7、结构(外特性)是从有关软件人员角度所看到的系统基本属性。那么计算机系统设计者(即计算机组成设计者)所看到的计算机属性实际上就是内特性,即是将有关软件人员所看到的基本属性加以逻辑实现的基本属性(计算机组成) 。计算机实现是指计算机组成的物理实现。主要包括处理机、主存等部件物理结构;器件的集成度和速度的确定;器件、模块、插件、底板的划分与连接;微组装及整机装配技术;专用器件的设计以及信号传输、电源、冷却方法等。它主要着眼于器件技术和微组装技术。,11,1.1.1.3计算机系统的微系统结构微外特性它是由微程序编写者所看到的计算机外部特性逻辑结构和功能能力,把它作为一个抽象级,可以定义硬件和固件(微代
8、码)之间的界面。例如:指令系统属于外特性;指令的解释实现,如取指、取数、运算、存结果等操作及其排序则属于内特性;指令可以按顺序方式执行,也可以按重叠或流水方式执行,而完成这些功能的具体电路器件的设计及装配技术等则是计算机的实现。又如:主存、主存容量与编址方式的确定属外特性; 主存的带宽应是多少才能达到速度要求,象采用多模块交叉存储等到则属于内特性;,12, 选用什么样的存储器芯片来构成和组装成存储器则是计算机实现。应当注意:由于外特性是对内特性的进一步的抽象,它们之间的映象是1:M,即某一外特性可用不同的内特性方式。内特性与具体物理实现之间之间的映象也是1:M。因此,计算机组成与具体实现可由设
9、计者根据所需的性能价格比及实现的难易程度在较大的范围内加以选择。,13,1.1.2计算机系统结构的分类 1.1.2.1 按“流”分类Flynn教授在1966年提出的按指令流和数据流的多倍性概念进行分类的方法。指令流是指机器执行的指令序列;数据流是指令流所调用的数据序列;多倍性是指在机器中最受限制的(即瓶颈最严重的)部件上的处在同一执行阶段的可并行执行的最多指令或数据个数。 按指令流和数据流两者组合可将计算机系统划分成四类: 单指令流单数据流(SISD);单指令流多数据流(SIMD);多指令流单数据流(MISD);多指令流多数据流(MIMD)。,14,传统的单处理计算机是SISD计算机。并行处理
10、机是SIMD计算机的典型代表。与MISD系统对应的计算机实际上并不存在。 MIMD系统包括了大多数多处理机及多计算机系统。Flynn分类的一个缺点是,对于广泛流行的标量及向量流水计算机(包括巨型机)应属于哪一类型系统,不很明确。,15,16,1.1.2.2 按“并行级”和“流水线”分类 1977年, 德国Erlangen大学 Hndeler教授提出了一个在计算机系统中的三个子系统级别上按并行程度及流水线处理程度进行分类的方法,这三个层次为:处理控制器(PCU)、(ALU)、位级电路(BLC)。 这样一个计算机系统可用三对整数来加以描述: T(C)=其中:K: 计算机中的处理控制器数(PCU)K
11、:可组成流水的处理控制器数D: 每一个PCU所控制的ALU或PE数D:可组成流水线的ALU数W: ALU或PE的字长W:在所有ALU或一个PE中的流水段数如果任意一对参数的第二个元素为1,则将其省略。,17,并行计算机,显式并行,流水,多处理机 (K1),阵列计算机 (D1),字片机 (W1),宏流水 (K1),指令流水 (D1),算术流水 (D1),图1.5 Erlangen 计算机系统分类方法,例: CDC6600计算机系统有一个CPU,它的ALU有10个功能部件,所有的功能部件可连成一条流水线,字长60位。此外有10个可并行工作的外围I/O处理器,每I/O处理器字长12位,只有一个ALU
12、。则CDC6600计算机系统可描述为T(CDC6600)=T T = ,18, CRAY-1 计算机系统有一个单CPU,它有12个流水化功能部件,它们的流水段数为114段,最多可将8个部件连接起来形成一个流水线,它的字长为64位。系统可描述为 T(CRAY-1)=T 1.1.2.3 计算机系统结构风格人造物常用风格加以描述, 风格(Style)是一组特征、特性或属性,它可以将功能上等效的人工制造物区分开来。,19,1.2 计算机系统设计的准则1.2.1计算机系统设计的定量原理 只加速使用频率高的部件(Make the common case fast) 阿姆达尔(Amdahl)定律阿姆达尔定律
13、是1967年由IBM360系列机的主要设计者阿姆达尔首先提出来的。阿姆达尔定律是指:,系统中对某一部件采用某种更快执行方式所能获得的系统性能改进程度,取决于这种执行方式被使用的频率,或占总执行时间的比例。,阿姆达尔定律实际定义了采取增强(加速)某部分功能措施后可获得的性能改进或执行时间的加速比。,20,设:TO:不采用任何增强功能措施完成某一任务所需时间; Te:采用某种增强功能措施后完成同一任务所需时间;fe:可采取增强功能措施的部分所占百分比 0 fe 1;re:采用增强功能措施是不采用增强功能措施执行的倍数。则性能或时间加速比Sp可用下式表示:,公式分母中(1-fe)表示不可增强性能部分
14、;显然,fe为 0,即没有可增强性能部分时,Sp为1。当re,分母中,项变为0,此时,21,因此,说明可获取性能改善的极限值受fe的约束。例:将系统中某一功能的处理速度加快10倍,但该功能的处理使用时间仅为整个系统运行时间的40%,采用此增强功能方法后,整个系统功能提高多少?解:由题可知:fe=0.4 ,re=10,若以Sp为纵坐标,fe为横坐标则对不同的 re,可作出Sp = f(fe)的函数曲线图。,22,23, 程序访问的局部性规律程序访问局部性规律是指程序执行中,呈现出频繁重新使用那些最近已被使用过的数据和指令的规律。程序访问局部性主要反映在时间和空间局部性两个方面: 时间局部性是指程
15、序中近期被访问的信息很可能马上被再次访问。空间局部性是指那些在访问地址上相邻的信息项很可能会被一起访问。程序中一小部分约(10%-20%)存放在高速的存储器中。 1.2.2计算机系统设计者的主要任务 计算机系统设计者的主要任务是 满足用户对功能上的要求以及相应的对价格和性能要求功能上要求包括:,24, 应用领域 软件兼容级别:程序语言级还是目标代码(二进制)级兼容 OS要求:地址空间大小、存储管理、保护及环境转换;中断和自陷以及对标准的要求,如浮点标准,I/O总线标准、OS标准、网络标准及程序设计语言标准等。 在满足功能要求基础上进行设计的优化优化主要是以性能价格比为衡量指标,仔细考虑某一所需
16、的功能应该用软件还是用硬件来实现。在选择硬件或软件方法时还应考虑设计的复杂性和具体实现的难易程度。 设计应能适应今后发展的趋势 硬件技术进展表现在IC(集成电路)逻辑技术、DRAM技术和Disk(硬盘)技术。统计资料表明:一个芯片上晶体管数大约每年增加25%,因此每三年可增加一倍;器件开关速度基本类似。,25,DRAM的密度每年增长约60%,因此每三年将增长三倍;访问存储器的周期改进相应较慢,每十年约减少1/3。 硬盘密度每年增加25%,每三年增加一倍,访问时间每十年约减少1/3。 软件技术发展趋势:程序所要求的存储器空间增长,大约每年增长1.52倍;因此相应地要求地址每年增长0.5位到1位,
17、这对设计非常重要,即必须留有足够的地址空间以待扩展。汇编语言将逐步被高级语言所替代,编译技术将起更大的作用,因此系统结构应能更好地支持编译的要求。编译程序将逐步成为用户和计算机间的主要界面。 一个较好的计算机系统设计者应该充分考虑CPU速度、主存容量以及I/O吞吐率三者之间的恰当平衡。有的学者提出对应于1MIPS CPU应配以1MB主存和1MB/s的I/O吞吐率。,26,冯诺依曼计算机的主要特点是: 存储程序方式,指令和数据都以字(二进制形式)存放在同一存储器中,没有区别,由此机器状态(如取指或取操作数周期)来确定从存储器读出的是指令还是数据。 指令串行执行,并由控制器加以集中控制。,1.3
18、计算机系统结构的发展 1.3.1 计算机系统结构的演变,27, 单元定长的一维线性空间的存储器。 使用低级机器语言,数据以二进制形式表示。 单处理机结构,以运算器作为中心。冯诺依曼计算机结构的最大特点是简单易实现,但这种结构存在以下缺点: 存在两个主要瓶颈:物理瓶颈 CPUMM有效地址形成问题智能瓶颈 即每次只能顺序地执行一条指令 低级的机器语言和高级的程序设计语言之间存在着巨大的语义差距,此差距往往要靠大量复杂的软件程序来填补。 复杂的数据结构对象无法直接存放到一维线性地址空间存储器中,必须经过地址映象。近半世纪以来,对冯诺依曼型计算机结构已作了许多改进。归纳为两种方法:改良方法, 即基本上
19、仍保留原来的工作方式,但做了许多重大改进以提高计算机系统性能,称为改进的冯诺依曼型计算机结构。,28,革命方法, 即采用一种与冯诺依曼型计算机完全不同的方式工作。在改进的冯诺依曼型计算机中具有以下一些重要特征,目的是提高运算速度,更好地支持高级语言和结构化数据对象。它们包括: 增加新的数据表示,如浮点数据、字符串和十进制数的表示。 采用了虚拟存储器,方便了高级语言编程。 堆栈的引入,以支持高级语言中的过程调用、递归机制以及表达式求值等。 采用变址寄存器并增加了间接寻址方式,以方便对复杂数据结构对象的访问。 增加CPU内的通用寄存器数量,增设Cache,以减少CPU与主存间的过分频繁的信息交换。
20、 采用存储体交叉访问技术以及无冲突并行存储器,以加宽存储器带宽。 采用流水技术,包括指令级流水和运算级流水,以加快指令及操作执行的速度。 采用多功能部件。这样一条指令就可以对多个数据元素在不同功能部件上进行迸发操作。,29, 采用支持处理机,如协处理机(Coprocessors)及I/O处理机,以使CPU能集中从事数值运算。 采用自定义的数据表示,由数据标志符显式说明是指令还是某一种类型的数据。这一措施的优越性目前有争论,但在LISP那样迟汇集(Late binding)语言中是非常重要的。 使程序和数据空间分开,从而增加了存储器带宽。上述各种改进措施的实现,使计算机由以运算器为中心演变为以存
21、储器为中心。,30,60年代出现了大型通用计算机(Mainframe)。60年代70年代初出现了巨型机(Supercomputer),主要考虑运算速度和大容量主存,价格放在次要地位。它有两种形式,一种是向量计算机,另一种是并行计算机。由于向量机通用性能更好,成为主流巨型机。70年代末出现了超级小型机(Super minicomputer)性能与大型机中低档范围相当。80年代中期,又推出了小巨型机(Mini supercomputer)在向巨型机方向发展的同时,随着LSI技术进展,60年代末70年代初出现了微型机。80年代又出现了具有较强图形功能的工程工作站(Engineering Workst
22、ation),成为高挡个人计算机,上述演变受器件影响较大,特别是集成电路器件的发展。上世纪90年代,计算机系统按销售及性能和成本加以分型,形成一座金字塔。,31,32,从系统结构上讲,主要是通过各种并行处理手段来提高计算机系统性能。最初的并行处理手段主要是在单机系统基础上发展起来, 70年代到80年代又出现多处理机系统,但一般还是小规模的。发展的另一个方向是大规模并行处理系统的出现,在60年代末至70年代掀起一阵研究热,由于专用性较强,再加其它原因没能推广使用。80年代末又开始掀起大规模并行处理系统的研究热潮,并推出了不少商品化产品,如CM-5、CRAY T3D、Intel的Paragon等。
23、上述发展主要是针对粗粒度并行性开发,实际上在单机中还存在有开发细粒度并行性的潜力。80年代初出现了RISC技术一切从实际开创了一种全新的指令系统设计风格,追求平均每个机器周期可处理一条指令。80年代中后期出现了新一代RISC计算机,侧重开发指令级的细粒程度可并行性。出现了Super scalar,VLIW以及Super pipeline等结构类型的机器。,33,总的发展趋势是:计算机性能的要求越来越高,主存容量越来越大,I/O吞吐能力越来越强。在20世纪追求的目标是万亿次(Teraflops)运算速度、万亿字节存储容量(Terabyte)和每秒万亿字节I/O吞吐率(Terabyte/secon
24、d)。 1.3.2 软件、应用和器件对系统结构发展的影响 1.3.2.1 软件对系统结构发展的影响“软件危机”的出现,造成软件成本相对地不断上升,因此希望软件具有兼容性。兼容性:,即可移植性,是指一个软件可不经修改或只需少量修改便可以由一台机器移植到另一台机器上去运行。即同一个软件可应用不同的环境。,为了实现软件的可移植性,一般可采用如下方法:,34, 采用模拟和仿真方法模拟方法:,指用软件的方法在一台现有的计算机上实现另一台计算机的指令系统。即用实际存在的机器语言解释实现软件移植的方法称为模拟。,实际存在的机器称宿主机,待实现的机器称虚拟机。为了模拟待虚拟机器系统,除了指令系统以外通常还需要
25、模拟它系统结构环境:包括存储体系、I/O子系统以及虚拟机的OS等。应用软件的模拟也可以采用类似的方法。由于模拟是采用纯软件解释执行的方法,因此运行速度较慢。仿真,当宿主机(A机)本身采用微程序控制时,直接由A机中对应的一段微程序来完成对目标机(B机)指令系统的每条指令的解释执行。速度比纯软件模拟方法快。,采用二进制翻译方法指在目标计算平台上为源计算平台编译生成的可执行代码的一种技术。,35,二进制翻译方法实际上是模拟和仿真方法的向下延伸,即在二进制代码一级进行模拟放仿真。该技术始于20世纪80年代后期,由于该技术在代码兼容方面具有重要作用,因此受到许多厂商的重视。如IBM公司的Daiay二进制
26、翻译系统,能在地VLIW(目标)机上透明运行Power Pc结构(源)机上的二进制代码,且性能优于源机器。又如HP、SUN等大公司也都开发了相应的二进制翻译系统。二进制翻译技术按在哪一个层次上进行翻译,分为系统级和应用级。二进制翻译技术按在运行前或运行后进行翻译,分为静态级和动态两种。当前大多数的二进制翻译系统是应用动态翻译。二进制翻译的优点如下:可简化硬件设计,因为无须考虑兼容性问题,兼容性问题由二进制翻译负责,这有利于创新系统的开发;具有较大的灵活性,因为可针对不同的应用底层结构进行恰当的裁剪;可以提升性能,因为在代码的运行过程中可以进行优化。,36,采用系列机方法这是一种通过统一的机器语
27、言来实现软件移植的方法,预先确定好一种系统结构(软硬件界面)。然后软件工作者依此进行软件设计。硬件工作者则根据不同的性能、价格要求,采用各种不同的组成和物理实现技术,以向用户提供不同挡次的机器。例如,IBM370系列,它包含了370/115、125、135、145、158、168等一系列由低档到高挡多种型号机器。虽然它们采用了不同的组成和实现技术,具有不同的特性和价格,但从程序设计者看到的概念性结构和功能属性则都是一样的。图1.10显示了它们的概念性结构,它是由CPU/MM(主存) Channel(通道)EC(设备控制器)I/O设备四级连接组成的。,37,图1.10 IBM370系列机的概念性
28、结构,38,在各挡机器在中央处理机中的指令都相同。但指令的分析执行则可有顺序、重叠或流水等不同的处理方式。数据表示方面,从程序设计者所看到的各挡机器的字长均为32位(定点数都有为16 位半字或32位全字,浮点数为单、双、4倍字长) ,但低、中、高的不同型号机器,它们所采用的数据通路可能分别为8位、16 位、32位或64位。显然数据通路宽度对程序员来说是透明的。由上可知,系列机中由于机器语言、汇编语言以及编译程序在各挡机器间可通用,因此它们的软件是兼容的。,软件兼容性按性能上的高低和时间上推出它的先后可分为向上、向下、向前、向后的四种兼容。,向上兼容:指按某档机器编制的程序,不加修改就能运行于比
29、它高档(速)的机器。向下兼容:指按某档机器编制的程序,不加修改就能运行于比它低档(速)的机器。向前兼容:按时期推到市场的该挡计算机上编制的软件,能不加修改地在它之前投入市场的机器上运行。,39,实际上最重要的是向后兼容按时期推到市场的该挡计算机上编制的软件,能不加修改地在它之后投入市场的机器上运行,这是系列机软件必须具有的基本要求。兼顾向上兼容, 统一标准的高级语言是采用与机器无关的高级程序设计语言的标准。 采用模拟和仿真技术为解决不同厂商不同型号计算机间的应用软件可移植性问题提供了有效的方法。但这远非能满足用户的要求,从而导致了所谓开放系统(Open system)的出现。 ,所谓开放系统:
30、一种独立于厂商,且遵守有关国际标准而建立的、具有系统可移植性、交互操作性,从而能允许用户自主选择具体实现技术和多厂商产品渠道的系统集成技术的系统。,40,这里的国际标准主要是指IEEE的开放系统技术委员会主管制定的系统或网络中应用软件、系统软件和硬件相互间的界面接口标准。,系统可移植性指应用系统可移植性和用户可移植性。,应用系统可移植性指应用软件在多厂商、多硬件平台的计算机环境中,从一个平台转移到另一个平台的可行度。用户可移植性指使用规范的一致性,这样用户就可不改变或少许改变它原来的使用习惯,便可从一个平台转移到另一个平台工作。,系统的交互操作性是指在多厂商、多硬件平台的计算机环境中,一个应用
31、软件能与另一个应用软件进行协调工作以实现数据与资源共享的可行度。,它包括了应用软件能透明地在一个系统上通过网络调用另一个系统中的数据资源及计算能力,以及在一个系统上运行的任务可通过网络有效地分解成一些子任务并分配到其它系统上以实现这些子任务的并发操作。,41,开放系统还为系统的档次皆宜性或规模可伸缩性(Scalability)创造了良好的条件,同一应用软件在某一开放系统的系列产品上都具有运行能力,如从PC、Workstation到Minicomputer ,Mainframe、Supercomputer。要达到上述目标,必须在优选的硬件和软件平台上,对编程接口、人机接口、通信接口等加以统一,建
32、立统一的规范和协议。为了适应不同的硬件平台,目前在开放系统中采用硬件抽象层技术,它是硬件系统和OS之间的二进制接口。 ,综上所述,软件是促使计算机系统结构发展的最重要的因素。 ,1.3.2.2 应用需求对系统结构发展的影响计算机应用是促使计算机系统结构发展的最根本的动力。计算机应用对系统结构不断提出的最基本要求是高速度、存储容量大和大的I/O吞吐率。,42,在21世纪的高度信息化社会中,如何能够象人类大脑那样灵活(柔性)方式来处理这种实况计算(Real world computing)的问题,将是智能处理和柔性信息处理所要研究的主要问题。 1.3.2.3 器件对系统结构发展的影响器件是促使计算
33、机系统结构不断发展的最活跃的因素。是促使计算机系统结构性能提高的一个重要的因素。从器件的功能和使用方法来看,器件的发展经历了由初期的非用户片(标准通用片)到现场片,再到半用户片以及全用户片的过程。在发展过程中,用户逐步由被动地对厂商提供的标准片进行选择。到半主动乃至完全主动地投入对芯片的设计与选择。 非用户片(通用片):可通用于各种结构机器的标准片子,用户只能被动使用,无法按自己愿望改变器件内部功能以适应设计的需要。,43, 现场片:出现于70年代中期,允许用户现场更改其功能,如E2PROM,PROM,FPLA,PAL,GAL和可编程接口等芯片。 半用户片:70年代末和80年代初出现,象门阵列片,较好兼顾了器件厂商生产芯片所希望的通用性乃用户对芯片专用性的要求。由厂商完成制造芯片的主要工序,留下最后互连的一、二道工序由用户根据需要来进行连接。 全用户片:出现于80年代中期。全用户片则完全按用户特殊要求来进行生产的芯片,由于用户采用优化设计,因此可获得较高性能和较高的芯片面积利用率。当然全用户芯片存在设计周期较长,设计费用较高和通用性差等缺点,但随着VLSI设计CAD系统的发展,这已不是主要障碍,今后制造具有高性能价格比的计算机,不采用全用户片是很难做到的。,