|
知识路径: > 计算机系统知识 > 计算机硬件知识 > 计算机系统组成和主要设备的基本工作原理 > CISC/RISC、流水线操作、多处理机、并行处理基本概念 >
|
被考次数:13次
被考频率:高频率
总体答错率:30%  
知识难度系数:
|
由 软考在线 用户真实做题大数据统计生成
|
考试要求:熟悉
相关知识点:32个
|
|
|
|
围绕着如何提高指令的执行速度和计算机系统的性能价格比,出现了多种计算机的系统结构,如流水线处理机、并行处理机、多处理机及精简指令系统计算机等。尽管这些计算机在结构上有较大的改进,但仍没有突破冯.诺伊曼型计算机的体系结构,都是基于并行处理技术来提高计算机速度。为此,本节先介绍并行处理的概念及计算机系统的分类,然后分别简要介绍流水线处理机、并行处理机、多处理机,最后介绍精简指令系统计算机。
|
|
|
|
所谓并行性,是指计算机系统具有可以同时进行运算或操作的特性,它包括同时性与并发性两种含义。同时性指的是两个或两个以上的事件在同一时刻发生,并发性指的是两个或两个以上的事件在同一时间间隔发生。计算机系统中提高并行性的措施多种多样,就其基本思想而言,可归纳为如下3条途径:
|
|
|
(1)时间重叠。在并行性概念中引入时间因素,即多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转时间而赢得速度。因此时间重叠可称为时间并行技术。
|
|
|
(2)资源重复。在并行性概念中引入空间因素,以数量取胜的原则,通过重复设置硬件资源,大幅度提高计算机系统的性能。随着硬件价格的降低,这种方式在单处理机中广泛使用,而多处理机本身就是实施“资源重复”原理的结果。因此资源重复可称为空间并行技术。
|
|
|
(3)资源共享。这是一种软件方法,它使多个任务按一定时间顺序轮流使用同一套硬件设备。例如多道程序、分时系统就是遵循“资源共享”原理而产生的。资源共享既降低了成本,又提高了计算机设备的利用率。
|
|
|
上述三种并行性反映了计算机系统结构向高性能发展的自然趋势:一方面在单处理机内部广泛采用多种并行性措施,另一方面发展各种多计算机系统。
|
|
|
计算机的基本工作过程是执行一串指令,对一组数据进行处理。通常,把计算机执行的指令序列称为“指令流”,指令流调用的数据序列称为“数据流”,把计算机同时可处理的指令或数据的个数称为“多重性”。根据指令流和数据流的多重性可将计算机系统分为下列4类(S-single、单一的,I-instruction、指令,M-multiple、多倍的,D-data、数据)。
|
|
|
(1)单指令流单数据流(SISD):这类计算机的指令部件一次只对一条指令进行译码,并且只对一个操作部件分配数据。传统的单处理机属于SISD计算机。
|
|
|
(2)单指令流多数据流(SIMD):这类计算机有多个处理单元,它们在同一个控制部件的管理下执行同一指令,但向各个处理单元分配各自需要的不同数据。并行处理机属于这类计算机。
|
|
|
(3)多指令流单数据流(MISD):这类计算机包含有多个处理单元,按多条不同指令的要求对同一数据及其中间结果进行不同的处理。这类计算机实际上很少见。
|
|
|
(4)多指令流多数据流(MIMD):这类计算机包含有多个处理机、存储器和多个控制器,实际上是几个独立的SISD计算机的集合,它们同时运行多个程序并对各自的数据进行处理。多处理机属于这类计算机。
|
|
|
|
计算机中的流水线是把一个重复的过程分解为若干个子过程,每个子过程与其他子过程并行进行。由于这种工作方式与工厂中的生产流水线十分相似,因此称为流水线技术。流水线技术是一种非常经济、对提高计算机的运算速度非常有效的技术。采用流水线技术只需增加少量硬件就能把计算机的运算速度提高几倍,成为计算机中普遍使用的一种并行处理技术。从本质上讲,流水线技术是一种时间并行技术。
|
|
|
一条指令的执行过程可以分为多个阶段(或子过程),具体分法随计算机不同而不同。下图(a)中把一条指令的执行过程分成以下3个阶段:
|
|
|
(1)取指令。按照指令计数器的内容访问主存储器,取出一条指令送到指令寄存器。
|
|
|
(2)指令分析。对指令操作码进行译码,按照给定的寻址方式和地址字段中的内容形成操作数的地址,并用这个地址读取操作数。
|
|
|
(3)指令执行。根据操作码的要求,完成指令规定的功能,即把运算结果写到通用寄存器或主存中。
|
|
|
|
|
若假定上图(a)中取指令、分析指令和执行指令的时间相同,均为t,则完成n条指令所需时间T1为:
|
|
|
|
若将一条指令的各个操作步与其后指令(一条或若干条)的各个操作步适当重叠执行,即形成指令执行的流水线,若假定上图(b)中取指令、分析指令和执行指令的时间相同,均为t,则完成n条指令所需时间T2为:
|
|
|
|
传统的串行执行方式,优点是控制简单,节省设备。主要的缺点有两个:一是处理机执行指令的速度很慢,只有当上一条指令全部执行完毕后下一条指令才能够开始执行,即在任何时刻,处理机中只有一条指令在执行;二是功能部件的利用率很低,如取指令时主存是忙碌的,而指令执行部件是空闲的。而执行指令时指令执行部件是忙碌的,而主存又是空闲的。
|
|
|
采用重叠执行方式后带来了两个优点:一是程序的执行时间大大缩短;二是功能部件的利用率明显提高。主存基本上可以处于忙碌状态,其他功能部件的利用率也得到提高。但是为此需要付出一定的代价,即需要增加一些硬件,控制过程也变得复杂一些。指令重叠执行方式实际上就是指令流水线,指令流水线是多条指令并行执行的一种实现技术。
|
|
|
|
|
并行处理机也称为阵列式计算机,它将大量重复设置的处理单元按一定方式互连成阵列,在单一控制部件(Control Unit,CU)控制下对各自所分配的不同数据并行执行同一指令规定的操作,是操作并行的SIMD计算机。它采用资源重复的措施开发并行性,是以SIMD(单指令流多数据流)方式工作的。并行处理机的基本结构和操作模型,如下图所示。
|
|
|
|
|
并行处理机通常由一个控制器CU、N个处理器单元(Processing Element, PE)(包括处理器和存储模块)以及一个互连网络部件(IN)组成。
|
|
|
|
|
(2)并行处理机采用资源重复方法引入空间因素,即在系统中设置多个相同的处理单元来开发并行性,这与利用时间重叠的向量流水线处理机是不一样的。此外,它利用的是并行性中的同时性,所有处理单元必须同时进行相同操作。
|
|
|
(3)并行处理机是以某一类算法为背景的专用计算机。这是由于并行处理机中通常都采用简单、规整的互连网络来实现处理单元间的连接操作,从而限定了它所适用的求解算法类别。因此,对互连网络设计的研究就成为并行处理机研究的重点之一。
|
|
|
(4)并行处理机的研究必须与并行算法的研究密切结合,以使它的求解算法的适应性更强一些,应用面更广一些。
|
|
|
(5)从处理单元来看,由于结构都相同,因而可将并行处理机看成是一个同构型并行机。但它的控制器实质上是一个标量处理机,而为了完成I/O操作以及操作系统的管理,尚需一个前端机,因此实际的并行处理机系统是由上述三部分构成的一个异构型多处理机系统。
|
|
|
|
|
流水线处理器通过若干级流水的时间并行技术来获得高性能。并行处理器由多台处理机组成,每台处理机执行相同的程序。这两类处理器都是执行单个程序,可对向量或数组进行运算。这种系统结构能高效地执行适合于SIMD的程序,所以这类处理器对某些应用问题非常有效。但是有些大型题目在这种SIMD结构的处理器上运行并不那么有效,原因是这类问题没有对结构化数据进行重复运算的操作,它所要求的操作通常是非结构化的而且是不可预测的。要想解决这类问题并保持高性能,只能在多处理机结构中寻找出路。
|
|
|
多处理机的系统结构由若干台独立的计算机组成,每台计算机能够独立执行自己的程序。Flynn称这种结构为MIMD(多指令流多数据流)结构。在多处理机系统中,处理机与处理机之间通过互连网络进行连接,从而实现程序之间的数据交换和同步。
|
|
|
下图给出了多处理机系统的一般模型。系统中有n个处理机(P1到Pn),它们通过一个处理机存储器互连网络(PMIN)连接到一个共享的主存储器上,这些处理机之间通过共享主存储器进行通信。处理机间还可以有一个处理机互连网络(PPIN),PPIN通常用来从一台处理机向处理机发送中断信号,以达到进程同步的目的。此外,这些处理机还通过处理机-I/O互连网络(PIOIN)同各I/O设备连接。有时为了使系统简单,可以把全部I/O设备连接在一台I/O处理机或少数几台处理机上。
|
|
|
|
|
|
多处理机属于MIMD计算机,它和SIMD计算机的并行处理机相比,有很大的差别。它们的本质差别在于并行性级别的不同:多处理机要实现任务或作业一级的并行,而并行处理机只实现指令一级的并行。下面通过与并行处理机的比较,进一步说明多处理机系统的特点。
|
|
|
(1)结构灵活性。并行处理机的结构主要是针对数组向量处理算法而设计的。结构特点是:处理单元(PE)数目很多甚至上万,但只需设置有限和固定的互连网络,即可满足一批并行性很高的算法的需要。而多处理机需要有较强的通用性。这就要求多处理机能适应更为多样的算法,具备更为灵活多变的系统结构以实现各种复杂的计算机间互联模式,同时还要解决共享资源的冲突问题。目前,多处理机中处理单元的数目还不可能做得很多。
|
|
|
(2)程序并行性。并行处理机实现操作一级的并行,其并行性存在于指令内部,一条指令可以同时对整个数组进行处理,再加上系统具有的专用性特点,就使程序并行性的识别较易实现。在多处理机中,并行性存在于指令外部,即表现在多个任务之间,再加上系统通用性的要求,就使程序并行性的识别难度增大。因此,它必须利用多种途径,如算法、程序语言、编译、操作系统以至指令、硬件等,尽量挖掘潜在的并行性。
|
|
|
(3)并行任务派生。并行处理机依靠单指令流对多数据流实现并行操作,即通过指令本身就可以启动多个PE并行工作。但多处理机处于多指令流操作方式,一个程序中就存在多个并发的程序段,需要采用专门的指令来表示并发关系,因此一个任务开始执行时能够派生出与它并行执行的另一些任务。如果任务数多于处理机数,多余的任务就进入排队器等待。
|
|
|
(4)进程同步。并行处理机仅有一个控制部件CU,自然是同步的。而多处理机执行不同的指令,工作进度不会也不必保持相同。如果某个处理机先做完,那么就要停下来等待。当然如果发生数据相关和控制相关,那么处理机也要停下来等待。因此,在多处理机系统中要采取特殊的同步措施来确保程序按所要求的正确顺序进行。
|
|
|
(5)资源分配和进程调度。并行处理机的PE是固定的,采用屏蔽手段可改变实际参加操作的PE数目。多处理机执行并发任务,需要的处理机数目不固定,各个处理机进入或退出任务的时刻不相同,所需共享资源的品种、数量又随时变化。因此提出了资源分配和进程调度问题,它对整个系统的效率有很大的影响。
|
|
|
|
目前许多计算机的指令系统可包含几百条指令,十多种寻址方式,这对简化汇编语言设计、提高高级语言的执行效率是有利的。这些计算机被称为复杂指令集计算机(Complex Instruction Set Computer, CISC)。
|
|
|
|
(1)使目标程序得到优化:例如设置数组运算命令,把原来要用一段程序才能完成的功能,只用一条指令来实现。
|
|
|
(2)给高级语言提供更好的支持:高级语言和一般的机器语言之间有明显的语义差别。改进指令系统,设置一些在语义上接近高级语言语句的指令,就可以减轻编译的负担,提高编译效率。
|
|
|
(3)提供对操作系统的支持:操作系统日益发展,其功能也日趋复杂,这就要求指令系统提供越来越复杂的功能。
|
|
|
但是,复杂的指令系统使得计算机的结构也越来越复杂,这不仅增加了计算机的研制周期和成本,而且难以保证其正确性,有时还可能降低系统的性能。实践证明,各种指令的使用频率相当悬殊,在如此庞大的指令系统中,只有算术逻辑运算、数据传送、转移、子程序调用等几十条基本指令才是经常使用的,它们在程序中出现的概率占到80%以上,而需要大量硬件支持的复杂指令的利用率却很低,造成了硬件资源的大量浪费。
|
|
|
精简指令系统计算机(RISC)的着眼点不是简单地放在简化指令系统上,而是通过简化指令使计算机的结构更加简单合理,从而提高机器的性能。RISC与CISC比较,其指令系统的主要特点如下。
|
|
|
(1)指令数目较少,一般都选用使用频度最高的一些简单指令。
|
|
|
(2)指令长度固定,指令格式种类少,寻址方式种类少。
|
|
|
|
(4)通用寄存器数量多,只有存数/取数指令访问存储器,而其余指令均在寄存器之间进行操作。
|
|
|
RISC与CISC技术两者的主要区别在于设计思想上的差别,RISC的设计思想是;将那些不是最频繁使用的功能(指令)由软件来加以实现,这样就可以优化硬件,并可使其执行得更快。采用RISC技术后,由于指令系统简单,CPU的控制逻辑大大简化,芯片上可设置更多的通用寄存器,指令系统也可以采用速度较快的硬连线逻辑来实现,且更适合于采用指令流水技术,这些都可以使指令的执行速度进一步提高。指令数量少,固然使编译工作量加大,但由于指令系统中的指令都是精选的,编译时间少,反过来对编译程序的优化又是有利的。CISC和RISC技术都在发展,两者都各有自己的优点和缺点。但是RISC技术作为一种新的设计思想,无疑对计算机的发展将产生重大影响。
|
|
|