面向科学计算的64位流处理器芯片体系结构的制作方法

文档序号:6572208阅读:178来源:国知局
专利名称:面向科学计算的64位流处理器芯片体系结构的制作方法
技术领域
本发明主要涉及到微处理器的设计领域,特指一种面向科学计算的64位流处理器芯片体系结构。
背景技术
一直以来,微处理器性能(单位时间内能够处理的操作数目,一般用MIPS或FLOPS来衡量)的提升主要取决于两个因素时钟频率和并行。近些年,由于功耗、信号完整性等因素的影响,时钟频率的持续攀升呈现出变缓的趋势,每年仅为6%的提升。相应的,性能的改善也从20世纪90年代的52%下降为20%左右。并行性的开发重新成为提升微处理器性能的主要途径。所谓的并行性就是指平均每个时钟周期能够同时执行的操作的数目。指令级并行(Instruction Level Parallelism,简称ILP)、数据级并行(Data LevelParallelism,简称DLP)以及线程级并行(Thread Level Parallelism,简称TLP)都是微处理器中并行性开发的主要形式。
ILP是指指令的重叠或同时执行。流水线是开发ILP的最简单的方法,通过将部件专用化和指令功能分段来重叠指令执行的部分阶段。相关(hazards)是并行性开发的主要障碍,可以通过硬件动态开发的形式或编译器静态调度的形式来解决,超标量和超长指令字(Very Long Instruction Word,简称VLIW)分别是两种技术的代表。
DLP是指数据的重叠或同时处理。不同的数据往往会被相同的指令或指令序列处理,例如科学计算和媒体处理应用中的向量计算、循环处理等程序结构。SIMD(SingleInstruction stream,Multiple Data streams)将同一个操作并行应用于不同的处理部件,处理不同的数据,可以有效开发DLP。每个处理部件都有自己的数据存储空间,但共享同一个指令空间和控制逻辑。向量处理器和流处理器是DLP开发的实例向量处理是多个数据在一个操作上的并行处理,但多个连续的向量操作可以通过“链接”技术串联执行,而流处理则是多个数据在一个操作序列或一段程序上的并行处理。
TLP是指线程的重叠或同时执行。线程是指具有独立指令空间和数据空间的进程,既可以代表一个进程,也可以是一个独立的程序。多个线程并行执行时,数据空间不同,发生数据相关的概率较低,只要有足够的执行资源,来自不同线程的指令序列就可以同时进行处理,是一种MIMD(Multiple Instruction streams,Multiple Data streams)的执行模式,开发并行性更为灵活。多处理器系统以及单芯片多处理器都可以支持TLP的开发,是一种更粗粒度、更高层次的并行。
虽然并行性的开发可以从多种渠道进行,但是它们都最终受限于数据通信的带宽,特别是对于数据集庞大的科学计算应用,这就是所谓的“存储墙”问题。现代集成电路工艺的发展使得片上集成成千上万的计算部件不成问题,但是如何为海量的计算部件提供操作数据成为限制微处理器性能提升的主要问题。数据的载入和保存、换入和换出占据了CPU时间的大部分,是程序执行的关键路径,提高片内、片外的存储带宽或尽量避免繁重的存储类操作是现代微处理器体系结构设计的主要目标之一。
将应用程序流程序化(streamization,简称流化)有助于暴露程序中的并行性和数据的局部性。所谓流(stream)是指由一组具有相同结构的、互不相关的数据(称为记录)组成的有序集合,流程序设计的基本思想是将存储操作和计算操作分离,以计算为节点、以数据流作为连接节点的线索来组织程序。流处理器就是能够有效利用流程序所暴露出的并行性和局部性来提高处理性能的微处理器体系结构。目前的流处理器主要有Imagine处理器、Cell处理器和Raw处理器模型,均为32位处理器,对于需要至少64位计算能力的科学计算应用并不适合。
科学计算应用本质上具有大量的指令级并行性和数据级并行性,可以进行流程序化,面向科学计算的微处理器体系结构应当具有丰富的计算资源支持并行性开发,在存储带宽受限的情况下能够有效隐藏存储延时,并通过开发数据操作的局部性提高计算访存比。

发明内容
本发明要解决的技术问题就在于针对现有技术存在的技术问题,本发明提出一种本发明的目的在于提出一种异构多核流处理器体系结构,面向64位科学计算应用,实现标量程序与流程序的混合执行,通过提供大量的片上计算部件和层次式寄存器文件,能够有效提高计算访存比,缓解存储带宽瓶颈,支持指令级并行性和数据级并行性的同时开发,提高了科学计算等领域应用程序的执行性能。
为解决上述技术问题,本发明提出的解决方案为一种面向科学计算的64位流处理器芯片体系结构,其特征在于它包括64位标量处理核心、64位流处理核心、片上存储器及控制器和网络接口,64位标量处理核心作为主处理器负责标量程序的执行以及流处理核心的调度,片上存储器及控制器是64位标量处理核心和64位流处理核心与外界的通信接口并存储数据和指令,网络接口是64位标量处理核心和64位流处理核心同其他处理器通信的接口;所述64位流处理核心包括流控制器、计算群、指令缓冲、计算群控制器、数据缓冲以及数据缓冲控制器,流控制器是流级指令控制器,负责流调度指令的控制和发射,计算群负责流程序中计算群操作指令的执行,指令缓冲存储流程序的计算群操作指令,计算群控制器接收流控制器的控制信号启动计算群以及加载计算群操作指令;数据缓冲保存计算群计算所需的操作数和最终计算结果;数据缓冲控制器接收流控制器的控制信号从存储器读取流数据和流指令,并将最终结果写回存储器。
所述计算群是结构相同的一组处理单元PE(PE0、PE1、…….、PEN),所有PE的结构均完全相同,以SIMD的方式同时执行来自计算群控制器的同一条指令或指令序列,每个PE包含多个算术、逻辑运算处理部件(F1、F2、……、Fn)和局部的寄存器文件,处理部件F1、F2、……、Fn支持超长指令字执行,可以同时并行处理多个不同类型的操作,每个处理部件都有单独的局部寄存器文件,直接为处理部件提供操作数并保存计算结果。
所述数据缓冲器由寄存器文件、m个流缓冲器、仲裁控制器、m个流缓冲控制器等模块组成。寄存器文件采用单端口SRAM结构,分为N个并行的体,每个体与相关计算群对应,流数据的记录在寄存器文件中按体交叉存放,其他模块(计算群、计算群控制器等)通过流缓冲器访问数据缓冲器。
与现有技术相比,本发明的优点就在于采用本发明所提出的64位流处理器体系结构设计方法,可以对流化的科学计算应用实现性能的大幅提升。异构多核集成技术采用通用与专用相结合的设计理念,既能与传统应用兼容,又可以针对科学计算程序实现加速。多层次的存储系统设计可以捕获流化科学计算程序中的局部性,SIMD与VLIW融合的计算群设计充分开发了科学计算程序中大量存在的指令级并行性和数据级并行性,提高了计算访存比,在存储带宽受限的情况下能够有效隐藏存储延时,缓解了存储带宽瓶颈,极大提高了科学计算应用的执行性能。


图1是面向科学计算的流处理器体系结构框架示意图;图2是标量处理核心流水线示意图;图3是数据缓冲器结构示意图;图4是计算群结构示意图。
具体实施例方式
以下将结合附图和具体实施例对本发明做进一步详细说明。
本发明的一种面向科学计算的64位流处理器芯片体系结构,它包括64位标量处理核心、64位流处理核心、片上存储器及控制器和网络接口,64位标量处理核心作为主处理器负责标量程序的执行以及流处理核心的调度,片上存储器及控制器是64位标量处理核心和64位流处理核心与外界的通信接口并存储数据和指令,网络接口是64位标量处理核心和64位流处理核心同其他处理器通信的接口;所述64位流处理核心包括流控制器、计算群、指令缓冲、计算群控制器、数据缓冲以及数据缓冲控制器,流控制器是流级指令控制器,负责流调度指令的控制和发射,计算群负责流程序中计算群操作指令的执行,指令缓冲存储流程序的计算群操作指令,计算群控制器接收流控制器的控制信号启动计算群以及加载计算群操作指令;数据缓冲保存计算群计算所需的操作数和最终计算结果;数据缓冲控制器接收流控制器的控制信号从存储器读取流数据和流指令,并将最终结果写回存储器。计算群是结构相同的一组处理单元PE(PE0、PE1、……、PEN),所有PE的结构均完全相同,以SIMD的方式同时执行来自计算群控制器的同一条指令或指令序列,每个PE包含多个算术、逻辑运算处理部件(F1、F2、……、Fn)和局部的寄存器文件,处理部件F1、F2、……、Fn支持超长指令字执行,可以同时并行处理多个不同类型的操作,每个处理部件都有单独的局部寄存器文件,直接为处理部件提供操作数并保存计算结果。数据缓冲器由寄存器文件、m个流缓冲器、仲裁控制器、m个流缓冲控制器等模块组成。寄存器文件采用单端口SRAM结构,分为N个并行的体,每个体与相关计算群对应,流数据的记录在寄存器文件中按体交叉存放,其他模块(计算群、计算群控制器等)通过流缓冲器访问数据缓冲器。
其中,本发明结构体系中各组件的功能为1.指令集扩展本发明所基于的指令集体系结构(Instruction Set Architecture,简称ISA)可以是任意通用64位指令集(如x86-64、PowerPC、MIPS等)的扩展。扩展主要是为了对流程序的开发提供支持,主要包括以下几类●流调度指令控制流数据在存储器和数据缓冲之间,以及计算群操作代码从数据缓冲到指令缓冲的移动,由数据缓冲控制器执行;●计算群操作指令流程序的核心计算指令,超长指令字格式,显式的指令级并行,由计算群执行;通过指令集的扩展,标量程序和流程序可以融合在一起。标量程序采用通用指令集编写,流程序使用扩展指令集编写,流调度指令是标量程序与流程序通信的接口,标量程序通过流调度指令控制流加速部件的启动与停止。
2.64位标量处理核心64位标量处理核心用来处理传统的标量应用程序以及发射流调度指令控制计算群的运行。标量处理核心可以是最简单的单发射、顺序执行流水线核心,也可以是复杂的多发射、乱序执行超标量流水线核心或VLIW核心,可以包含指令cache或数据cache。最基本的流水线有五站取指、译码、发射、执行、写回。取指段从存储器读取应用程序代码;译码段分析指令的功能;发射段一般为指令队列,检测数据相关和资源相关,并读取操作数,为就绪指令分配功能部件;执行段指令在功能部件进行功能处理;写回段用计算结果修改处理器状态。在译码段如果发现需要执行流调度指令,则发往流控制器,启动流程序执行。
3.流控制器流控制器内部包含一个指令队列,用来接收从标量处理核心发送来的流调度指令,并在满足相关性约束的条件下将这些指令发射到执行这些指令。通过流调度指令的执行,数据缓冲控制器可以控制流数据(包括指令和数据)的载入和存储,同时也为标量处理核心读取某些标量数据提供数据通路;计算群控制器可以进行指令的载入;网络接口可以接收从其他处理器传来的流数据。根据这些流处理部件反馈回来的状态信号,可以确定出操作什么时候完成、一条指令的相关性什么时候得到满足。流控制器还包括一个通用寄存器文件——SCTRF,它可以被read、write、move等指令访问,在流控制器与标量处理核心等部件的内部控制寄存器之间传递数据。
4.多层次存储结构本发明中的片上存储器是片外主存储器在片内的一个备份,所存储的数据是主存储器内容的一个子集,为标量处理核心和数据缓冲提供数据和指令。数据缓冲器本质上作为标量处理核心的扩展寄存器文件使用,保存流程序指令序列以及计算所需流数据,数据块的载入与存储由标量处理核心联合流控制器通过在数据缓冲控制器中执行流调度指令控制。数据缓冲器不是随机访问的,而是顺序访问,速度快,且完全由软件(流调度指令)管理。
数据缓冲器由寄存器文件、m个流缓冲器、仲裁控制器、m个流缓冲控制器等模块构成。寄存器文件采用单端口SRAM结构,分为N个并行的体,每个体与相关计算群对应,流数据的记录在寄存器文件中按体交叉存放,其他模块(计算群、计算群控制器等)通过流缓冲器访问数据缓冲器。首先,访问模块向流缓冲器发出读流(或写流)请求,然后仲裁控制器处理这些请求,由相应的流缓冲控制器控制流缓冲器读(或写)寄存器文件。访问模块能够在不占用太多带宽的条件下从其相关的流缓冲器读出流(或向相关流缓冲器写入流),这种方式使SRAM单物理端口完成了m个逻辑端口的功能。
同时,在计算群的处理单元内部还有大量的局部寄存器文件,保存计算群内部计算的中间结果。三级存储层次的带宽分为三个等级,数据缓冲器到片上存储器的带宽是每秒GB量级,局部寄存器到数据缓冲器的通信带宽为每秒10GB量级,而局部寄存器内部的通信带宽为每秒100GB量级。计算部件可以捕获流程序中的局部性,计算速度取决于所使用的局部寄存器带宽(三级中最大的通信带宽),避免了大量耗时的远程存储访问,缓解了外部存储带宽的压力,降低了计算的平均访存时间。
5.数据缓冲控制器数据缓冲控制器提供了数据缓冲到片上存储器的高速通路以及相关的地址产生器和地址缓冲,负责执行流调度指令。数据缓冲控制器可以控制流数据(包括指令和数据)的载入和存储,同时也为标量处理核心读取某些标量数据提供数据通路。为了达到所要求的带宽,数据缓冲控制器允许同时有两个存储访问流处于活跃状态。每个存储访问流可以同时有8个记录处于活跃状态,每个存储访问流使用自己对应的地址生成器来生成访问地址。存储器总的峰值带宽为4GB/秒,片上存储器与数据缓冲之间的传输速率为2*64bit/拍。对于存储操作,数据来自于数据缓冲中的流缓冲器;对于载入操作,从存储器读出的数据也相应存入流缓冲器。
6.计算群控制器计算群控制器是计算群操作的控制单元。计算群控制器接收流控制器发出的参数和控制信号,从数据缓冲器中加载流程序的计算群操作代码到计算群控制器中的指令缓冲部件。流程序的计算代码是由编译器生成的VLIW指令。计算群控制器对这些VLIW指令进行译码,并广播到计算群的N个处理单元以SIMD的方式执行,即每个处理单元执行相同的指令,但处理不同的数据。计算群控制器可以通过流控制器接收标量处理核心或数据缓冲器的阻塞请求,暂停计算群的处理,保证与标量处理核心的同步或等待数据缓冲器的就绪。
7.计算群计算群是结构相同的一组处理单元PE(PE0、PE1、……、PEN)。所有PE的结构均完全相同,以SIMD的方式同时执行来自计算群控制器的同一条指令或指令序列。每个PE包含多个算术、逻辑运算处理部件(F1、F2、……、Fn)和局部的寄存器文件。处理部件F1、F2、……、Fn支持超长指令字执行,可以同时并行处理多个不同类型的操作(如加法、乘法、乘加、逻辑运算等)。每个处理部件都有单独的局部寄存器文件,直接为处理部件提供操作数并保存计算结果。操作数首先从数据缓冲读入局部寄存器,由于流控制器在启动计算群控制器进行译码、分派、映射执行之前已经把操作数调入了数据缓冲,因此操作数从数据缓冲调入PE局部寄存器的延时是固定的,处理部件在执行指令操作时不存在因数据未就绪而导致的停顿。因此,超长指令字在所有PE上执行任何操作所需的延时都是一致的、可知的,编译器可以完全开发指令级并行性ILP,生成超长指令字指令序列,无需硬件干预。每个局部寄存器文件之间有网络相连,可以交换计算生成的中间临时数据。同时PE之间也存在互连网络,可以进行必要的同步和数据交换。
8.网络接口网络接口提供了多处理器系统中各处理器间的高带宽连接。标量处理核心和流控制器都可以控制网络接口。标量处理核心采用传统消息传递的方式同其他处理器进行通信,需要软件通信协议的支持;流处理核心采用流的方式同其他处理器进行通信,直接与数据缓冲进行流数据交换。网络使用源路由,路由信息由流调度程序决定,它跟踪链路的使用并以静态方式分配负载。一个消息通过设置发送和接收流控寄存器并且指定各种参数来传输。每个处理器有4个外部双向网络通道。网络可以采用节点深度为4的任意拓扑结构。链路时钟频率可以从任意低到2倍片上时钟频率。为了能扩展到多板的多处理器系统,传输信号为差分电流模式。链路控制位编码到片模式里。每个输入通道使用单独的同步器。
下面以具体实施例对本发明做详细说明。如图1所示是面向科学计算的64位流处理器体系结构框图。整个处理器采用异构多核结构,集成两种不同结构的处理器核64位标量处理核心和64位流处理核心,在通过标量处理核心实现对传统标量程序兼容的同时,流处理核心采用海量计算部件开发程序中的指令级并行性和数据级并行性,采用层次式寄存器文件捕获流程序中的局部性,实现对流化的科学计算应用程序的加速。其总体结构包括64位标量处理核心、片上存储器及控制器、网络接口及64位流处理核心等部件。64位标量处理核心作为主处理器负责标量程序的执行以及流处理核心的调度;片上存储器及控制器是两种处理器核心与外界的通信接口,存储数据和指令,通信带宽每秒GB量级;网络接口是处理器中的两个处理核心同其他处理器通信的接口,通过它可以构建大规模并行处理系统。流处理核心包括流控制器、计算群、指令缓冲、计算群控制器、数据缓冲、数据缓冲控制器等部件。其中流控制器是流级指令控制器,负责流调度指令的控制和发射;计算群负责流程序中计算群操作指令的执行;指令缓冲存储流程序的计算群操作指令;计算群控制器接收流控制器的控制信号启动计算群以及加载计算群操作指令;数据缓冲保存计算群计算所需的操作数和最终计算结果;数据缓冲控制器接收流控制器的控制信号从存储器读取流数据和流指令,并将最终结果写回存储器。
图2是标量处理核心流水线示意图。最基本的流水线有五站取指、译码、发射、执行、写回。取指段从存储器读取应用程序代码;译码段分析指令的功能;发射段一般为指令队列,检测数据相关和资源相关,并读取操作数,为就绪指令分配功能部件;执行段指令在功能部件进行功能处理;写回段用计算结果修改处理器状态。在译码段如果发现需要执行流调度指令,则发往流控制器,启动流程序执行。
图3是数据缓冲器结构图。数据缓冲器由寄存器文件、m个流缓冲器、仲裁控制器、m个流缓冲控制器等模块构成。寄存器文件采用单端口SRAM结构,分为N个并行的体,每个体与相关计算群对应,流数据的记录在寄存器文件中按体交叉存放,其他模块(计算群、计算群控制器等)通过流缓冲器访问数据缓冲器。首先,访问模块向流缓冲器发出读流(或写流)请求,然后仲裁控制器处理这些请求,由相应的流缓冲控制器控制流缓冲器读(或写)寄存器文件。访问模块能够在不占用太多带宽的条件下从其相关的流缓冲器读出流(或向相关流缓冲器写入流),这种方式使SRAM单物理端口完成了m个逻辑端口的功能。
图4是计算群结构图。计算群是结构相同的一组处理单元PE(PE0、PE1、……、PEN)。所有PE的结构均完全相同,以SIMD的方式同时执行来自计算群控制器的同一条指令或指令序列。每个PE包含多个算术、逻辑运算处理部件(F1、F2、……、Fn)和局部的寄存器文件。处理部件F1、F2、……、Fn支持超长指令字执行,可以同时并行处理多个不同类型的操作(如加法、乘法、乘加、逻辑运算等)。每个处理部件都有单独的局部寄存器文件,直接为处理部件提供操作数并保存计算结果。操作数首先从数据缓冲器读入局部寄存器,最终结果写回数据缓冲器。每个局部寄存器文件之间有网络相连,可以交换计算生成的中间临时数据。同时PE之间也存在互连网络,可以进行必要的同步和数据交换。
权利要求
1.一种面向科学计算的64位流处理器芯片体系结构,其特征在于它包括64位标量处理核心、64位流处理核心、片上存储器及控制器和网络接口,64位标量处理核心作为主处理器负责标量程序的执行以及流处理核心的调度,片上存储器及控制器是64位标量处理核心和64位流处理核心与外界的通信接口并存储数据和指令,网络接口是64位标量处理核心和64位流处理核心同其他处理器通信的接口;所述64位流处理核心包括流控制器、计算群、指令缓冲、计算群控制器、数据缓冲以及数据缓冲控制器,流控制器是流级指令控制器,负责流调度指令的控制和发射,计算群负责流程序中计算群操作指令的执行,指令缓冲存储流程序的计算群操作指令,计算群控制器接收流控制器的控制信号启动计算群以及加载计算群操作指令;数据缓冲保存计算群计算所需的操作数和最终计算结果;数据缓冲控制器接收流控制器的控制信号从存储器读取流数据和流指令,并将最终结果写回存储器。
2.根据权利要求1所述的面向科学计算的64位流处理器芯片体系结构,其特征在于所述计算群是结构相同的一组处理单元PE(PE0、PE1、……、PEN),所有PE的结构均完全相同,以SIMD的方式同时执行来自计算群控制器的同一条指令或指令序列,每个PE包含多个算术、逻辑运算处理部件(F1、F2、……、Fn)和局部的寄存器文件,处理部件F1、F2、……、Fn支持超长指令字执行,可以同时并行处理多个不同类型的操作,每个处理部件都有单独的局部寄存器文件,直接为处理部件提供操作数并保存计算结果。
3.根据权利要求1或2所述的面向科学计算的64位流处理器芯片体系结构,其特征在于所述数据缓冲器由寄存器文件、m个流缓冲器、仲裁控制器、m个流缓冲控制器等模块组成,寄存器文件采用单端口SRAM结构,分为N个并行的体,每个体与相关计算群对应,流数据的记录在寄存器文件中按体交叉存放,其他模块(计算群、计算群控制器等)通过流缓冲器访问数据缓冲器。
全文摘要
本发明公开了一种面向科学计算的64位流处理器芯片体系结构,它包括64位标量处理核心作为主处理器负责标量程序的执行以及流处理核心的调度,片上存储器及控制器是64位标量处理核心和64位流处理核心与外界的通信接口并存储数据和指令,网络接口是64位标量处理核心和64位流处理核心同其他处理器通信的接口;所述64位流处理核心包括流控制器、计算群、指令缓冲、计算群控制器、数据缓冲以及数据缓冲控制器。本发明面向64位科学计算应用,可实现标量程序与流程序的混合执行,通过提供大量的片上计算部件和层次式寄存器文件,可有效提高计算访存比,缓解存储带宽瓶颈,支持指令级并行性和数据级并行性的同时开发,提高科学计算等领域应用程序的执行性能。
文档编号G06F9/38GK101021831SQ20071003456
公开日2007年8月22日 申请日期2007年3月19日 优先权日2007年3月19日
发明者杨学军, 张民选, 邢座程, 蒋江, 马驰远, 李勇, 陈海燕, 高军, 李晋文, 衣晓飞, 张明, 张承义, 穆长富, 阳柳, 曾献君, 倪晓强, 唐遇星 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1