高级计算机系统结构综述
- 格式:doc
- 大小:22.00 KB
- 文档页数:6
龙源期刊网 http://www.qikan.com.cn 高级计算机系统结构综述 作者:王子淳 来源:《科学与财富》2017年第18期
摘 要:计算机体系结构是一门连接硬件与软件的学科,在不断的深入研究过程中,一直在追求计算机的功能、性能、功率以及花费的高度协调,以期达到各方面的最佳状态,在花费、能量、可用性的抑制下,实现计算机的多功能、高性能、低功率、少花费的新时代。本篇综述主要讲述流水线技术,指令系统,以及计算机系统结构的发展趋势。
关键词:高级计算机系统结构,流水线技术,指令系统 1流水线技术 1.1 流水线的基本概念 计算机系统结构的国际权威美国Stanford大学的John L.Hennessy和UC Berkely大学的 David A.Paterson在其名著《Computer Architecture-- A quantitative approach》一书中特别指出:“流水线过去是,而且将来也很有可能还是提高计算机性能的最有效技术之一”[1]
流水线技术(Pipeline technology)是将一个重复的时序过程分解成为若干个子过程,而每一个子过程都可有效地在其专用功能段上与其他子过程同时执行。流水线中的每个子过程及其功能部件称为流水线的级或段(pipeline stage),流水线的段数称为流水线的深度(pipeline depth),段与段相互连接形成流水线。
1.2 流水线的分类 从不同的角度和观点,可以把流水线分成多种不同的种类: 1.单功能流水线(single-function pipeline):只能完成一种固定功能的流水线 2.多功能流水线(multi-function pipeline ):流水线的各段可以进行不同的连接,从而使流水线在不同的时间,或者在同一时间完成不同的功能。
3.静态流水线(static pipeline):在同一时间内,流水线的各段只能按同一种功能的连接方式工作。
4.动态流水线(dynamic pipeline):在同一时间内,当某些段正在实现某种运算时,另一些段却在实现另一种运算。 龙源期刊网 http://www.qikan.com.cn 5.部件级流水线(component level pipeline):把处理机的算术逻辑部件分段,以便为各种数据类型进行流水操作。
6.处理机级流水线(processor level pipeline):把解释指令的过程按照流水方式处理。 7.处宏流水线(macro pipeline):由两个以上的处理机串行地对同一数据流进行处理,每个处理机完成一项任务。
8.标量流水处理机(Scalar pipeline processor):处理机不具有向量数据表示,仅对标量数据进行流水处理。
9.向量流水处理机(vector pipeline processor):处理机具有向量数据表示,并通过向量指令对向量的各元素进行处理。
10.线性流水线(linear pipeline):流水线的各段串行连接,没有反馈回路。 11.非线性流水线(non-linear pipeline):流水线中除有串行连接的通路 外,还有反馈回路。 12.顺序流水线(order pipeline):流水线输出端任务流出的顺序与输入端任务流入的顺序完全相同。每一个任务在流水线的各段中是一个跟着一个顺序流动的。
13.乱序流水线(out-order pipeline):流水线输出端任务流出的顺序与输入端任务流入的顺序可以不同,允许后进入流水线的任务先完成(从输出端流出)。
1.3流水线的相关与冲突 相关(correlation)是指两条指令之间存在某种依赖关系。如果两条指令相关,则他们就有可能不能在流水线中重叠执行或者只能部分重叠执行,
1. 结构相关(structure correlation):当指令在重叠执行过程中,硬件资源满足不了指令重叠执行的要求,发生资源冲突时将产生“结构相关”;
2. 数据相关(data correlation):当一条指令需要用到前面指令的执行结果,而这些指令均在流水线中重叠执行时,就可能引起“数据相关”;
3. 控制相关(control correlation):当流水线遇到分支指令或其他会改变PC值的指令时就会发生“控制相关”。 龙源期刊网 http://www.qikan.com.cn 流水线冲突(pipeline conflict)是指对于具体的流水线来说,由于相关的存在,使得指令流中的下一条指令不能在指定的时钟周期执行。流水线冲突有三种类型:
1.结构冲突(structure conflict):因硬件资源满足不了指令重叠执行的要求而发生的冲突。解决方法:流水化功能单元;资源重复;暂停流水线。
2.数据冲突(data conflict):当指令在流水线中重叠执行时,因需要用到前面指令的执行结果而发生的冲突。
3.控制冲突(control conflict):流水线遇到分支指令和其他会改变PC值的指令所引起的冲突。
2.指令系统 2.1 指令系统的基本概念 [2]指令系统(instruction system)是指机器所具有的全部指令的集合 ,它反映了计算机所拥有的基本功能。在计算机系统的设计和使用过程中 ,硬件设计人员采用各种手段实现指令系统 ,而软件设计人员则使用这些指令系统编制各种各样的系统软件和应用软件 ,用这些软件来填补硬件的指令系统与人们习惯的使用方式之间的语义差距。计算机指令系统分为两类:复杂指令系统(CISC)和精简指令系统(RISC)
2.2 复杂指令系统 ( CISC ) 2.2.1CISC的产生 早期的计算机 ,存储器是一个很昂贵的资源 ,因此希望指令系统能支持生成最短的程序。此外 ,还希望程序执行时所需访问的程序和数据位的总数越少越好。在微程序出现后 ,将以前由一串指令所完成的功能移到了微代码中 ,从而改进了代码密度。此外 ,它也避免了从主存取指令的较慢动作 ,从而提高执行效率。在微代码中实现功能的另一论点是: 这些功能能较好的支持编译程序。如果一条高级语言的语句能被转换成一条机器语言指令 ,这可使编译软件的编写变得非常容易。此外 ,在机器语言中含有类似高级语言的语句指令 ,便能使机器语言与高级语言的间隙减少。这种发展趋向导致了复杂指令系统 ( CISC )设计风格的形成 ,即认为计算机性能的提高主要依靠增加指令复杂性及其功能来获取。
2.2.2 CISC 的主要特点 CISC指令系统的主要特点是: (1)指令系统复杂,具体表现在以下几个方面: 龙源期刊网 http://www.qikan.com.cn ①指令数多 ,一般大于 100条。 ② 寻址方式多 ,一般大于 4种。 ③ 指令格式多 ,一般大于 4种。 (2)绝大多数指令需要多个机器时钟周期方可执行完毕。 (3)各种指令都可以访问存储器。 2.3 精简指令系统 (RISC) 2.3.1RISC的产生 由于CISC技术在发展中出现了问题 ,计算机系统结构设计的先驱者们尝试从另一条途径来支持高级语言及适应 VLSI技术特点。1975年IBM公司 John Cocke提出了精简指令系统(RISC)的设想。到了1979年,[4]美国UC Berkely大学由 Patterson 教授领导的研究组,首先提出了RISC这一术语 ,并先后研制了 RISC-Ⅰ和 RISC-Ⅱ计算机。1981年美国的Stanford大学在Hennessy教授领导下的研究小组研制了MIPSRISC计算机 ,强调高效的流水和采用编译方法进行流水调度,使得RISC技术设计风格得到很大补充和发展。到了90年代初,IEEE的Michael Slater 对于RISC的定义作了如下描述:RISC处理器所设计的指令系统应使流水线处理能高效率执行 ,并使优化编译器能生成优化代码。
2.3.2 RISC 的主要特点 RISC为使流水线高效率执行 ,应具有下述特征: (1)简单而统一格式的指令译码; (2)大部分指令可以单周期执行完成; (3)只有 LOAD 和 STORE 指令可以访问存储器; (4)简单的寻址方式 ; (5)采用延迟转移技术 ; (6)采用 LOAD 延迟技术。 RISC为使优化编译器便于生成优化代码 ,应具有下述特征: (1)三地址指令格式 ; 龙源期刊网 http://www.qikan.com.cn (2)较多的寄存器 ; (3)对称的指令格式。 2.4 RISC和CISC 的比较 2.4.1不同的实现方式 两者的实现方式是不一样的。对于CISC来说,采用的存储结构是比较易于实现的数据和指令合一的方式。采用这种存储结构的原因是CISC具有比较高级的指令语义,同时具有比较长的执行指令的周期。而对于RISC来说,其采用的存储结构是数据和指令相互分离的结构,这是因为其采取了逻辑的硬布线方式,同时对于指令的读取比较频繁。
2.4.2不同的编译器要求 如果时钟频率相同,同时失去编译器,那么RISC与CISC的体系结构的计算机的效率其实并没有差别。而且相对来说,RISC体系结构更加需要编译器对指令的优化。CISC具有很大的市场,同时技术的发展也已经相当成熟。RISC体系结构并不能够直接取代CISC的体系结构。固然,RISC体系结构具有很强的竞争力,但是其逻辑硬布线到目前为止并没有统一的规定。RISC也并不是传统意义上的概念,现代的RISC也具有很多明显的变化,主要表现在:具有分支预测的功能、能够超标量执行,同时还能够乱序执行指令。
3.计算机系统结构的发展趋势 3.1多线程体系 所谓的多线程技术(multithreading technology)[5],是一种结合了冯诺依曼的控制流模型以及数据流模型的新兴技术。它能够进行现场的指令级交换以及顺序调度。一般说来,在线程中,如果其中一条指令执行,那么相应后面的指令都会相继执行。线程可以成为计算机中调度执行的基本步骤,同时计算机中可以同时并发运行许多个线程。这样做的好处是:提高了并行度的效果,同时又能相互隐藏延迟的操作。多线程有着许多优点,同时也有一些不足之处。它的优点是能够在很大程度上提高整个处理器的利用效率,在整体上使计算机的性能提高到一个新的档次。多线程技术能很好地隐藏几乎所有的延迟,这是诸如分支预测错误延迟技术等其它技术所不具备的。因此,多线程技术能够在计算机微处理器的结构中具有很高的应用价值。
3.2 高性能计算 [6]高性能计算(high performance computer,HPC)是计算机集群系统,它通过各种互联技术将多个计算机系统连接在一起,利用所有被连接系统的综合计算能力来处理大型计算问题。高性能计算方法的基本原理就是将问题分为若干部分,而相连的每台计算机均可同时参与问题的解决,从而显著缩短了解决整个问题的计算时间。解决大型计算问题需要功能强大的计