430 likes | 664 Views
计算机系统结构 - 经典理论( 2 ). 上海大学计算机学院 徐炜民. 目录. 属性 分类 并行性 多机结构 评测(专题). 发展. 有人认为没有发展,其实有发展: 冯 · 诺依曼结构 — 单机 大型机 — 主机 + 终端 小型机 — 可移动的大型机 PC 机 — 计算机普及、兼容(“盗版”) 多机 — 计算力( power ) 计算机 + 网络 高性能 — 体现超计算力 高效能 — 功耗成为主要指标 冠以“计算” — 网格计算、云计算、网络计算、透明计算。。。. 发展.
E N D
计算机系统结构-经典理论(2) 上海大学计算机学院 徐炜民
目录 • 属性 • 分类 • 并行性 • 多机结构 • 评测(专题)
发展 有人认为没有发展,其实有发展: • 冯·诺依曼结构—单机 • 大型机—主机+终端 • 小型机—可移动的大型机 • PC机—计算机普及、兼容(“盗版”) • 多机—计算力(power) • 计算机+网络 • 高性能—体现超计算力 • 高效能—功耗成为主要指标 • 冠以“计算”—网格计算、云计算、网络计算、透明计算。。。
发展 目前,衡量超级计算(supercomputing)仍用习惯的方法(小时、作业、程序数、程序可移植性) 采用共享存储器的向量多处理器系统仍是主流(Cray Research, Fujitsu, IBM, Hitachi, NEC)。例如,1993年的C90用 16台处理器,Gigaflops=1610,9,500次/美元。 九十年代,RISC标量处理机可达5000次/美元。基于消息传递的多计算机系统可达到Teraflops。 值得注意:新的体系结构IBM的“cell”处理机(流媒体)、GPU(SIMD)、ASIC/FPGA… 从广义上讲,可扩展性反映了系统结构、算法、软件和环境之间的相互关系。它涉及到系统结构的通用性、可扩展性、可编程性、可实现性。
性能的系统属性 理想的计算机系统的性能要求机器功能和程序行为之间有良好的匹配。 机器功能:好的硬件技术、改进的系统结构特性、有效的资源管理… 程序行为:难预测,与应用和运行条件有密切的关系。如算法设计、数据结构、语言效率、程序员的技能、编译技术…
性能的系统属性(cont.) • 由于机器性能会随程序而变化,因此,应该在一定范围内或按调和分布来描述性能。 • 描述性能的一些术语和公式: • 时钟频率: CPU是由一个恒定周期(τ,以ns表示)的时钟驱动。周期的倒数是时钟频率 f=1/τ,以MHz表示 • CPI (Cycle Per Instruction) :一条指令的周期数。不针对某类指令,则表示给定的指令系统和综合程序的平均值。
性能的系统属性(cont.) • 性能因子:五个Ic -已知程序的指令条数或指令计数,p -指令译码和执行所需的处理机周期数,m -所需的存储器访问次数,k -存储周期与处理机周期之比,k值与存储器技术及处 理机—存储器互连方法有关。存储周期比处理机周期τ大k倍。T -执行程序所需的CPU时间。一条指令执行的过程一般分为取指令、译码、取操作数、执行、存储结果五个阶段。其中译码和执行由CPU完成,称处理机周期;取指令、取操作数(有可能操作二次)和存储结果是对存储器操作,称存储器周期。T = Ic×CPI×τ = Ic×(p+m×k)×τ
性能的系统属性(cont.) • 系统属性:四个 • 指令系统结构 • 编译技术 • 处理机实现和控制技术 • 高速缓存与存储器层次结构 • MIPS速率:每秒百万次,表示CPU的执行速度 • 吞吐率:系统在单位时间内能执行多少个程序
性能的系统属性(cont.) MIPS速率:(Million Instruction Per Second) 每秒百万次,表示CPU的执行速度。 MISP速率 = Ic/(T×106)=f/(CPI×106)=(f×Ic)/(C×106) C是执行已知程序所需的时钟周期总数。
性能的系统属性(cont.) 吞吐率: Wp(处理机吞吐率): 处理机在单位时间内能执行多少个程序。 Wp = f/(Ic×CPI) Ws(系统吞吐率): 系统在单位时间内能执行多少个程序。 Ws < Wp ( Ws有额外系统开销:I/O、编译、OS…)
Flynn分类法 Micheal Flynn(1972)提出指令流、数据流和多倍性概念,把不同的计算机分为四大类(图1-3): SISD(Single-Instruction Single-Data,单处理机结构) SIMD(Single-Instruction Multi-Data,带分布存储器) MISD(Multi-Instruction Single-Data,搏动式阵列) MIMD(Multi-Instruction Multi-Data,带共享存储器)
系统结构中的并行性概念 计算机系统增加并行性可以提高机器的处理速度。 例:运算器有串行运算(n位数据用一位运算器)演变到并行运算(用n位运算器),使得在元器件速度相同的条件下,后者的运算速度几乎提高到前者的n倍。 并行性(parallelism)定义: 在同一时刻或同一时间间隔内完成两种或两种以上性质相同或不相同的工作,只要时间上互相重叠,均存在并行性。 • 同时性(simultaneity):两个或多个事件在同一时刻发生的并行性 • 并发性(concurrency):两个或多个事件在同一时间间隔内发生的并行性
并行性概念(cont.) 不同等级的并行性: 指令内部并行,指令内部微操作之间的并行 指令间并行,并行执行两条或多条指令 任务级或过程级并行,并行执行两个或多个任务或过程(程序段) 作业或程序级并行,在多个作业或程序间并行 www.acmqueue.org
并行性表现形式 • 并行性在不同的处理级别中可表现为多种形式:先行方式、流水线方式、向量化、并发性、同时性、数据并行性、划分、交叉、重叠、多重性、重复、时间共享、空间共享、多任务处理、多道程序、多线程方式、分布式计算。
并行性概念(cont.) 提高并行性的三种技术途径: 时间重叠:多个处理过程在时间上相互错开,轮流重叠使用同一套硬件的各个部件,以加快部件的周转而提高速度。(例:指令的重叠解释) 资源重复:重复设置硬件资源以提高计算机系统的性能。(例:单处理机发展到多处理机,价格的不断下降是推动该技术途径的主要因素) 资源共享:利用软件的方法,使多个用户分时使用同一套计算机系统。(例:主机分时系统) 在一个计算机系统内,可以通过多种技术途径,采用多种并行性措施,既有执行程序的并行性,又有处理数据的并行性。 。
并行性概念(cont.) 举例一、重叠方式: 将一件工作按功能分割成若干相互联系的部分,每一部分由指定的专门部件完成,然后按时间重叠原则把各部分执行过程在时间上重叠起来,使所有部件依次分工完成一组同样工作。当处理机内部能同时解释执行两条指令,从而提高处理机速度。 先行方式: 如果把指令解释过程分解成多个子过程,分别由多个专用部件完成。 流水线方式: 如果把功能专用化深入到处理机的执行部件内部,将该部件再分成多个专用功能段,进行流水处理。 。
并行性概念(cont.) 举例二、先行控制原理 “一次重叠”(指令分成“取指分析”和“执行”二段)要流畅的前提是分割的二段执行的时间必须是等时的。但由于指令系统的复杂性,难以做到只分二段和等时这两点。 在只有一套指令分析器和执行部件,在执行第K条指令的同时,指令控制部件能对其后续的第K+1条、第K+2条。。。指令进行“预取”和“预处理”,为执行部件执行新的指令做好必要而充分的前期准备。 虽然在流程中会出现指令分析器和执行部件之间的等待时间间隔,但它们各自流程中却是连续的。 上述的思想就是先行控制方式。 连续解释n条指令所需时间为: T先行=t分析1+∑t执行i
并行性概念(cont.) 举例三、流水技术原理(现代工厂的装配线) 流水线技术是将一个重复的时序过程分解成若干个子过程,而每个子过程都可有效地在其专用“功能段”上与其他子过程同时执行。 特点: 1。流水线可分成若干个相互有联系的子过程(功能段),它由专用功能部件来实现。 2。实现子过程的功能段所需的时间尽可能相等,避免因不等而产生处理的瓶颈,造成流水线的“断流”。 3。形成流水线要有“通过时间”,此后才能稳定。 4。流水线不应该经常“断流”(如转移),否则效率不高。 5。流水技术适用大量重复的程序过程,这样效率高。 。
并行性概念复杂性 线性流水线处理机 定义:由k个处理段(function)线性地逐级串联在一起,外部输入(数据流)馈入流水线的第一段S1,处理结果从Si段送到Si+1段(i=1,2,…,k-1),最后结果从流水线的最后段Sk送出。流水线执行完成一种固定的功能。(指令执行、算术计算、存储器访问等) 异步和同步模型 异步模型:相邻段之间的数据流是由一个信号交换(握手交互)协议来控制。发出就绪信号--输入数据--回送应答信号。图6-1a 用于消息传递型;吞吐率可变;不同段可以有不同的延迟量
并行程序设计方法 有二种并行程序设计方法:隐式并行性和显式并行性。 隐式并行性:常用传统的语言编程成顺序源编码,经并行编 译器编译成并行目标码执行。(语言容易,编译器难) 显式并行性:需要并行语言来编程,编译器仅保持并行性和把资源分配给目标机器。(语言难,编译器容易)
时间复杂性和空间复杂性 计算机求解一个规模为s的问题的算法复杂性取决于所需的执行时间和存储空间。 所以: 时间复杂性是问题规模的函数(时间复杂性函数是算法的渐近时间复杂性)。通常考虑最坏情况下的时间复杂性。 空间复杂性也是问题规模的函数(空间复杂性函数是算法的渐近空间复杂性)。通常考虑大问题的数据存储,而程序存储和输入数据的存储一般不考虑
复杂性复杂性 串行复杂性:串行算法的时间复杂性 并行复杂性:并行算法的时间复杂性 一般认为:并行复杂性比串行复杂性低,或相近 确定性算法:每个操作步骤是唯一确定的;与实际计算机上程序执行的过程是一致的。 不确定性算法:目前没有这类的实际机器。
多机系统结构的发展过程 1.共享存储型发展过程 2.消息传递型发展过程 3.多向量机发展过程 4.SIMD机发展过程 5.多线程发展过程 6.数据流发展过程
发展过程(cont.) 从不同角度分析,有三种模型 • 结构组织模型 • 理论模型 • 复杂性模型 先讨论结构组织模型
1。共享存储型多处理机 • 均匀存储器存取-UMA模型(UMA-Uniform Memory Access) • 非均匀存储器存取-NUMA模型(NUMA-Nonuniform Memory Access) • 只用高速缓存的存储器结构-COMA模型(COMA-Cache Only Memory Architecture)
UMA模型 均匀存储器存取-UMA模型(UMA-Uniform Memory Access) UMA模型( UMA-Uniform Memory Access)适用于多用户的一般应用和分时应用。它可以在限时应用中用来加快单个大程序的执行。所有处理器均匀(所谓均匀是指所有处理器对所有存储字具有相同的存取时间)共享物理存储器。各处理机之间的通信是通过共享存储器的共享变量来实现的。这一类多处理机由于对资源的高度共享,常称紧耦合系统(tightly coupled system)。系统互联常采用总线、交叉开关、多级网络。
UMA模型(cont.) • 对称多处理机系统(symmetric multi-processor) 所有处理机都能同样访问所有外围设备;所有处理机都能同样运行执行程序,如操作系统的内核、I/O服务程序。 • 不对称处理机系统(asymmtric multi-processor) 只有一台或一组处理机(MP主处理机)执行操作系统并操纵I/O,其余处理机(AP附属处理机)没有I/O能力。
NUMA模型 非均匀存储器存取-NUMA模型(NUMA-Nonuniform Memory Access) NUMA模型的共享存储器物理上是分布在所有处理机的本地存储器上,这些存储器的集合组成全局地址空间。由于访问本地存储器快,访问远程存储器慢(经过互联网络),所以访问时间取决于存储字所在位置。 下图表示了层次结构NUMA模型。处理机被分成若干机群(cluster),每个机群内可以是UMA模型或NUMA模型,但整个系统被认为NUMA模型。
COMA模型 只用高速缓存的存储器结构-COMA模型(COMA-Cache Only Memory Architecture) COMA模型是NUMA模型的一种特例。由全部高速缓存组成全局地址空间,访问远程缓存是通过分布在各处理机上的高速缓存目录来进行的。
分布存储型 (1)系统由多个结点(由处理机、本地存储器、I/O设备组成的自治的计算机)通过消息传递网络互相连接。
2。消息传递型 • 第一代(1983-1987)基于处理机板技术,采用超立方体结构和软件控制的消息交换方法。(Intel Ipsc/1) • 第二代(1988-1992)用网络连结的系统结构、硬件消息寻径、中粒度分布计算的软件环境。(Intel Paragon) • 第三代(1993- )处理机与通信工具在同一芯片上实现的细粒度多计算环境。(MIT J-Machine)
消息传递型(cont.) 消息寻径方式 • 网络的流控制策略 • 死锁避免 • 虚拟通道 • 消息传递原语 • 程序分解技术
3。多向量机 向量超级计算机 向量计算机往往是在标量处理机与向量处理机的“混合物”,程序与数据由主机加载到主存储器; 全部指令由标量控制器译码,若是标量操作或程序控制操作则有标量处理机的标量功能流水线执行; 若是向量操作则送入向量控制器,由主存储器与向量功能流水线执行向量数据流。
4。SIMD超级计算机 SIMD计算机的操作模型可以用五元组表示: M=(N,C,I,M,R) 式中: N:机器的处理单元(PE-Processor Element)数 C:由控制部件(CU-Control Unit)直接执行的指令集,包括标量与程序流控制指令; I:由CU广播到所有PE进行并行执行的指令集,包括算逻运算、数据寻径、屏蔽操作、PE执行的局部操作; M:屏蔽方案集,把PE划分为允许操作与禁止操作两种子集; R:数据寻径功能集,互连网络中PE间通信所需的 各种设置模式。
PRAM和VLSI模型 并行计算机的理论模型是从物理模型抽象得到的. 算法和芯片设计者利用理论模型为开发并行算法提供了一种方便的框架(无需关心实现细节或物理约束条件. 这些模型可为并行计算机求的理论性能界限或芯片制作前估算芯片区的VLSI复杂性和执行时间. 当将实际机器与联想机器(不考虑结点间通信开销)作比较时,抽象模型在分析可扩展性和可编程性方面是十分有用的.