并行向量处理引擎结构的制作方法

文档序号:6601741阅读:372来源:国知局
专利名称:并行向量处理引擎结构的制作方法
技术领域
本发明涉及数字信号处理芯片架构技术领域,特别是一种并行向量处理引擎(Vector Processing Engine, VPE)结构,应用于高性能计算系统中芯片的向量寄存器资 源、向量运算部件、并行流水线、并行总线和并行存储体系。
背景技术
在过去的四十年期间,DSP处理器得到了突飞猛进的发展。但DSP计算能力必须进 一步提升才能满足当前应用需求。半导体工艺是DSP发展的基础,一直是DSP发展的最主 要动力,过去DSP性能提升绝大部分来源于芯片工作频率的提高。但由于集成电路工艺和 功耗的限制,主频提升的时代已经结束,必须依靠架构创新才能进一步提高处理器性能;但 架构的优化只能针对特定应用领域,所以针对特定应用领域的领域处理器成为了今后DSP 芯片的发展趋势。在数字信号处理领域,存在大量向量计算,且数字信号中各个向量之间具有高度 并行性。比如矩阵/向量之间的四则运算即为行向量或列向量之间的运算,而各行或列之 间不存在相关性,可以同时计算;对于长序列的FIR算法,利用重叠保留法对输入数据进行 分段,各段之间互不相关,可并行计算;而FFT变换也可通过调整,将长序列的一维FFT算 法,分解成多个短序列的二维FFT变换,各个短序列之间不存在相关,可并行计算。已有一些专利和文章讨论了向量处理器的指令集架构,但这些指令集都只讨论了 向量的四则运算,没有针对数字信号处理算法进行分析和提取;同时,这些专利是在标量的 基础上来讨论向量计算,利用标量的计算资源来实现向量计算,没有实现向量元素的并行 计算,无法进一步利用向量数据内在并行性进行优化设计。因此,并行向量计算是数字信号处理的内在特性,如能针对这一特性,设计一种并 行向量处理引擎结构,将芯片元操作从标量计算提升为向量计算,必将极大地提高数字处 理芯片整体计算性能。

发明内容
(一)要解决的技术问题有鉴于此,本发明的主要目的在于提供一种并行向量处理引擎结构,以提高数字 处理芯片整体计算性能。( 二 )技术方案为达到上述目的,本发明采用的技术方案如下一种并行向量处理引擎结构,该结构包括局部存储器、总线控制器、向量处理单元 和通信同步单元,其中,该局部存储器由多个存储块组成,每个存储块独立运行,且每个存 储块作为一从设备通过总线与该总线控制器连接,该向量处理单元与该通信同步单元均作 为一主设备通过该总线控制器连接。上述方案中,所述局部存储器用于存放指令和数据,所述向量处理单元通过在该局部存储器中加载或存储指令实现数据的存取。上述方案中,所述总线控制器用于将接收自某一主设备的请求根据特定规则路由至某一从设备,并且当多个主设备向同一从设备发出请求时,该总线控制根据特定规则对 这些请求进行排序,同一时间内只向同一从设备转发一个请求。上述方案中,所述向量处理单元包括四个并行执行的功能单元标量计算单元、地 址计算单元、程序控制单元和向量计算单元,其中标量计算单元用于执行所有标量计算指 令,地址计算单元用于执行所有地址计算指令、加载或存储指令,程序控制单元用于执行所 有跳转指令,向量计算单元用于执行所有向量计算指令。上述方案中,所述向量处理单元采用变长流水级结构,其流水级分别是F” F2、D、 E0> E1,…、E1^l,其中K为大于等于1的自然数A级为指令预取级,F2级为指令返回级, D级为解码级,E0至Ek级为指令执行级,所述标量计算单元、地址计算单元、程序控制单元 和向量计算单元这四个功能单元并行运行,共用F1级和F2级,但该四个功能单元在D、E0, Ep…、Ek级分离,各个功能单元包括独立的运算部件和流水寄存器。上述方案中,所述向量处理单元还包括一取指单元;在F1级,该取指单元向指令总线发出取指请求和取指地址,指令总线返回状态信 息,表明该次请求是否被接受,如果该次请求未被接受,该取指单元须在下一时钟周期重新 发起请求;在F2级,该取指单元从指令总线获取指令并将指令分发给标量计算单元、地址计 算单元、程序控制单元和向量计算单元,如果当前周期指令总线没有返回指令,该取指单元 须在接下来的时钟周期内等待指令返回;在D级,标量计算单元、地址计算单元、程序控制单元和向量计算单元分别进行指 令译码,地址计算单元、标量计算单元和向量计算单元读取源操作数,同时,地址计算单元 完成地址计算;在ΕρΕρ…、Ek级,标量计算单元和向量计算单元进行计算,并将计算结果写回局 部存储器。上述方案中,所述地址计算单元在Etl级向数据总线发出加载或存储请求及地址, 数据总线返回状态信息,表明该次请求是否被接受,如果该次请求未被接受,流水级停顿, 同时地址计算单元须在下一时钟周期重新发起请求;地址计算单元在E1级读取数据总线操作结果,如果为加载指令,将返回数据写回 寄存器,如果当前周期数据总线没有返回操作结果,流水级停顿,同时地址计算单元在接下 来的周期内重新读取数据总线操作结果。上述方案中,所述通信同步单元包括直接内存访问控制器和消息寄存器,用于实 现该向量处理引擎结构与外界进行的数据交换,是该向量处理引擎结构与外部功能单元进 行数据交换的唯一途径。上述方案中,所述消息寄存器对向量处理单元和外部功能单元表现出不同的特 性,对向量处理单元表现出通道的特性,对该并行向量处理引擎结构的外部功能单元表现 为内存地址映射的寄存器。上述方案中,所述向量处理单元通过通道指令读写以及查询消息寄存器,获得通 信同步单元的状态,或者控制通信同步单元的行为;所述向量处理单元通过通道指令读取、写入和查询通道;该通道指令通过专用总线来传输数据和控制信号;所述通信同步单元中的通道能够实现状态寄存器和控制寄存器的功能,且每个通 道是可读通道或可写通道,不是可读写通道;所述通信同步单元中每个通道均为32位宽,每个通道都有对应的通道号。上述方案中,所述内存地址映射的寄存器仅针对该并行向量处理引擎结构的外部 功能单元,一个通道有一个对应的内存地址映射的寄存器地址,内存地址映射的寄存器读 写不会阻塞,且可读可写。上述方案中,该通信同步单元还通过片上总线接口连接于片上网络。(三)有益效果从上述技术方案可以看出,本发明具有以下有益效果1)、本发明提供的并行向量处理引擎结构,能够优化向量计算,提高了芯片的数字 信号处理能力。2)、本发明提供的并行向量处理引擎结构,其中的通信同步单元提供了统一的、灵 活的数据通信和同步接口,利用该通信同步单元,可灵活连接多个向量处理引擎,在线程级 实现多个向量并行计算。向量处理引擎也可作为独立的IP核集成到SoC设计中,加速芯片 的向量处理能力。3)、本发明提供的并行向量处理引擎结构,其中的向量计算单元(VCU)、标量计算 单元(SCU)、地址产生单元(AGU)和程序控制单元(SEQ)并行执行,在进行向量计算的同时 可进行标量计算。4)、本发明提供的并行向量处理引擎结构,具有并行存储、并行传送、并行计算的 特性,数据计算能力与数据搬运能力相匹配,在单位面积内具有最高的向量计算性能。


图1是本发明提供的并行向量处理引擎结构的示意图;图2是VPE之间互连的示意图;图3是通道和MMR之间的关系示意图;图4是程序员可见的寄存资源示意图;图5是芯片硬件功能单元的示意图;图6是指令执行流水线的示意图;图7是向量指令并行实现的示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照 附图,对本发明进一步详细说明。本发明提供的这种并行向量处理引擎结构,利用向量元素之间的并行性进行优化 设计;同时,还针对数字信号处理领域中向量之间的并行性进行优化设计。本发明提供的这种并行向量处理引擎结构,由上到下,在以下三个层次优化向量 并行计算首先,在线程级优化并行计算。针对向量之间的并行性,将向量处理引擎设计成多核架构中的一个处理核,向量处理引擎中包含专用于多核通信和同步的功能单元,多个向 量处理引擎互连构成多核向量处理芯片。其次是指令级并行。针对向量处理专用指令集,在处理引擎内部定义标量计算单 元、向量计算单元、加载/存储单元和程序控制单元,实现标量计算指令、向量计算指令、数 据加载指令、程序控制指令的并行执行。最后是指令内并行。在架构中定义向量运算单元,向量单元中 运算部件个数与向 量指令中的向量元素个数相同,运算部件并行计算各向量元素;对于向量元素之间存在相 关性的横向求和指令,定义专用的横向求和网络,提高该类指令的执行速度。如图1所示,图1是本发明提供的并行向量处理引擎结构的示意图,该结构优化 第一层次并行计算,包括局部存储器(Local Memory, LM)、总线控制器、向量处理单元 (Vector Processing Uint,VPU)禾口通信同步单兀(Communication & Synchronization Unit,CSU)。其中,该局部存储器由多个存储块组成,每个存储块独立运行,且每个存储块作 为一从设备通过总线与该总线控制器连接,该向量处理单元与该通信同步单元均作为一主 设备通过该总线控制器连接,该通信同步单元还通过片上总线接口连接于片上网络。在该结构中,局部存储器(Local Memory,LM)用于存放指令和数据,向量处理单元 通过在该局部存储器中加载或存储指令实现数据的存取。局部存储器(LM)由多个存储块 组成,每个存储块独立运行,因此,局部存储器(LM)可并行处理多存储请求。每个存储块作 为一从设备通过总线与总线控制器相连;同时,向量处理单元和通信同步单元各作为一主 设备通过总线控制器相连。总线控制器具有“路由”和“仲裁”功能。路由功能指总线控制器可将任一主设备 所发出的请求根据特定规则转发给某一从设备。仲裁功能指当多个主设备向同一从设备发 出请求时,总线控制根据特定规则对这些请求进行排序,同一时间内只向同一从设备转发 一个请求。通信同步单元(Communication& Synchronization Unit,CSU),用于向量处理引 擎与外界进行数据交换,也是向量处理引擎与外部功能单元进行数据交换的唯一途径。通信同步单元中包括直接内存访问控制器(DMAC)和消息寄存器,用于实现该向 量处理引擎结构与外界进行的数据交换,是该向量处理引擎结构与该并行向量处理引擎结 构的外部功能单元进行数据交换的唯一途径。消息寄存器对向量处理单元和外部功能单 元表现出不同的特性。消息寄存器对向量处理单元表现出“通道”的特性,对外部功能单元 表现为内存地址映射的寄存器(MMR);但两者在物理上为同一实体。向量处理单元通过通 道指令读写以及查询消息寄存器,以获得通信同步单元状态或控制通信同步单元行为。因 此,向量处理单元必须实现通道相关的三个指令,即通道读取指令(RDCH)、通道写入指令 (WRCH)和通道查询指令(RDCNT)。通信同步单元中“通道”具有状态寄存器和控制寄存器的功能,但又不仅仅是状态 寄存器或控制寄存器。每个通道只能是可读通道或可写通道,不存在读/写通道。通信同 步单元中每个通道均为32位宽,并具有如下特性1)通道的读/写特性每个通道只能是可读通道或可写通道,不存在读/写通道。 向量处理单元通过专用的读通道指令(RDCH)读取消息,通过写通道指令(WRCH)向通道写 入消息。
2)通道容量每个通道都有预先设定的容量,表明该通道最多可以存放多少个消 肩、ο3)消息个数该特性表明通道中当前的消息个数,当通道可读时,通道消息个数 表明通道中的已经有的消息个数;当通道可写时,通道内容个数表示消息的空位数。向量处 理单元通过专用的通道记录个数读取指令(RDCNT)查询消息个数。4)通道阻塞特性读取或写入消息个数为0的通道会使指令阻塞。“指令阻塞”即 该指令一直处于流水线的执行级,此时流水线停顿,处理器等待该指令完成。当读取通道阻 塞时,读取指令一直等待该通道中消息个数大于0,然后读取通道中的消息后返回;当向通 道写入记录阻塞时,写入指令一直等待通道有消息空位出现,然后向通道写入消息后返回。每个通道都有对应的通道号。向量处理单元通过通道指令读取、写入和查询通道, 通道指令(RDCH、WRCH、RDCNT)不同于Load/Store指令,并且通过专用的总线传输数据和控 制信号。在通信同步单元中,内存地址映射的寄存器(Memory MappedRegi ster,MMR)针对 外部功能单元而主,其内容与通道基本相同,一个通道一般有一个对应的MMR地址,但通道 和MMR有较大的区别。首先,通道是对向量处理单元而言,而MMR是对向量处理引擎外部分的功能单元 而言。其次通道需要专用的通道指令读写,而外部功能单元用Load/Store指令即可对MMR 读写。另外,通道读写有可能会阻塞,而MMR读写永远不会阻塞,并且可读可写。最后,通道 有内容个数的特性,可通过RDCNT指令查询该通道的消息个数,而MMR虽然也有消息个数属 性,但不能直接通过读取该MMR获得MMR的消息个数,需要读取与该MMR对应消息个数寄存 器来获得。因此,从外部功能单元看来,向量处理引擎实现上是一个地址映射的协处理器。 图3表示了通道和MMR之间的关系。向量处理引擎结构在第一层次优化了并行计算。芯片中可包括多个向量处理引 擎,一个向量处理引擎负责一个或多个互不相关的向量计算,各个向量处理引擎并行运行; 同时,利用通信同步单元单元中的DMA控制器和通道寄存器,芯片内多个向量处理引擎之 间可以高效进行数据通信和同步,如图2所示,图2是VPE之间互连的示意图。向量处理单元(Vector Processing Uint,VPU)为该并行向量处理引擎结构的核 心功能单元。向量处理单元实现第二层次并行计算,即指令级并行。首先向量处理单元中 对寄存器进行分组,程序员可见的寄存资源如图4所示。其中地址寄存器组用J表示,包含 7个寄存器;程序控制寄存器组包含4个寄存器;标量寄存器组用R表示,包括15个寄存 器;向量寄存器组用VR表示,包括15个寄存器,每个寄存器位宽为16 X 32比特,其中VR15 为特殊寄存器,只能读取,不能写入,读取时其值固定为(0,1,2,3,4,5,6,7,8,9,10,11,12, 13,14,15). 二维矢量寄存器组一共包括16X16个元素,每个元素位宽为32比特。二维矢 量寄存器组可以按行或按列读写,但一次只能读写一行或一列。Mask寄存器为特殊的寄存 器,在执行向量指令时,表示哪些向量元素参与本次操作。为实现指令级并行,向量处理单元中设置四个可以并行执行的功能单元标量计 算单元,地址计算单元,程序控制单元,向量计算单元,如图5所示。SCU为标量计算单元,执 行所有标量计算指令;AGU为地址计算单元,执行所有地址计算指令和加载/存储指令;SEQ 为程序控制单元,执行所有跳转指令;VCU为向量计算单元,执行所有向量计算指令。
向量处理单元采用变长流水级结构,其流水级分别是FpFpDjc^Ep…、Ek级,其 中K为大于等于1的自然数。F1级为指令预取级,F2级为指令返回级,D级为解码级,E0至 Ek级为指令执行级。S⑶、AGU、SEQ、V⑶四个功能部件并行运行,共用&、&流水级,但四个 功能单元在Djc^Ep…、E1^l分离,各个功能单元包括独立的运算部件和流水寄存器,流水 线数也不尽相同,如图6所示。在F1级,取指单元向指令总线发出取指请求和取指地址,同时,总线返回状态信 息,表明该次请求是否被接受。如果该次请求末被接受,取指单元必须在下一时钟周期重新 发起请求。在F2级,取指单元从指令总线获取指令并将指令分发给四个功能单元(SCU、AGU、 SEQ、VCU)。如果当前周期指令总线没有返回指令,取指单元必须在接下来的时钟周期内等 待指令返回。在D级,四个功能单元分别进行指令译码,地址产生单元(AGU)、标量计算单元 (SCU)、向量计算单元(VCU)读取源操作数。同时,AGU单元完成地址计算。在ΕρΕρ…、Ek级,标量计算单元(S⑶)和向量计算单元(V⑶ )进行计算,并将计 算结果写回寄存器。地址产生单元(AGU)在Etl级向数据总线发出加载/存储请求和地址,同时,总线返 回状态信息,表明该次请求是否被接受。如果该次请求末被接受,流水线停顿,同时AGU必 须在下一时钟周期重新发起请求。AGU在Ejl读取数据总线操作结果,如果为加载指令,把返回数据写回寄存器。如 果当前周期数据总线没有返回操作结果,流水线必须停顿,同时AGU在接下来的周期内重 新读取总线操作结果。向量计算单元VCU和地址产生单元AGU在第三层次优化并行计算,即在指令内优 化向量并行计算。向量计算单元包括多个并行的高性能运算部件,可对多个向量元素进行 并行计算;同时,VCU中设计专用的横向求和网络,优化横向求和以及点积相关指令。地址 产生单元与并行总线相连,配合并行存储结构,可实现连续向量或离散向量的并行存储。因 此,向量处理引擎具有并行存储、并行传送、并行计算的特性,优化了向量计算,如图7所
7J\ ο以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详 细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡 在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保 护范围之内。
权利要求
一种并行向量处理引擎结构,其特征在于,该结构包括局部存储器、总线控制器、向量处理单元和通信同步单元,其中,该局部存储器由多个存储块组成,每个存储块独立运行,且每个存储块作为一从设备通过总线与该总线控制器连接,该向量处理单元与该通信同步单元均作为一主设备通过该总线控制器连接。
2.根据权利要求1所述的并行向量处理引擎结构,其特征在于,所述局部存储器用于 存放指令和数据,所述向量处理单元通过在该局部存储器中加载或存储指令实现数据的存 取。
3.根据权利要求1所述的并行向量处理引擎结构,其特征在于,所述总线控制器用于 将接收自某一主设备的请求根据特定规则路由至某一从设备,并且当多个主设备向同一从 设备发出请求时,该总线控制根据特定规则对这些请求进行排序,同一时间内只向同一从 设备转发一个请求。
4.根据权利要求1所述的并行向量处理引擎结构,其特征在于,所述向量处理单元包 括四个并行执行的功能单元标量计算单元、地址计算单元、程序控制单元和向量计算单 元,其中标量计算单元用于执行所有标量计算指令,地址计算单元用于执行所有地址计算 指令、加载或存储指令,程序控制单元用于执行所有跳转指令,向量计算单元用于执行所有 向量计算指令。
5.根据权利要求4所述的并行向量处理引擎结构,其特征在于,所述向量处理单元采用变长流水级结构,其流水级分别是FpFyDjpEi.....£1 级,其中K为大于等于1的自然数A级为指令预取级,F2级为指令返回级,D级为解码级,&至Ek级为指令执行级,所述标 量计算单元、地址计算单元、程序控制单元和向量计算单元这四个功能单元并行运行,共用级和F2级,但该四个功能单元在D、&、Ei.....Ek级分离,各个功能单元包括独立的运算部件和流水寄存器。
6.根据权利要求5所述的并行向量处理引擎结构,其特征在于,所述向量处理单元还 包括一取指单元;在h级,该取指单元向指令总线发出取指请求和取指地址,指令总线返回状态信息,表 明该次请求是否被接受,如果该次请求未被接受,该取指单元须在下一时钟周期重新发起 请求;在F2级,该取指单元从指令总线获取指令并将指令分发给标量计算单元、地址计算单 元、程序控制单元和向量计算单元,如果当前周期指令总线没有返回指令,该取指单元须在 接下来的时钟周期内等待指令返回;在D级,标量计算单元、地址计算单元、程序控制单元和向量计算单元分别进行指令译 码,地址计算单元、标量计算单元和向量计算单元读取源操作数,同时,地址计算单元完成 地址计算;在EpEi.....Ejl,标量计算单元和向量计算单元进行计算,并将计算结果写回局部存储器。
7.根据权利要求6所述的并行向量处理引擎结构,其特征在于,所述地址计算单元在 仏级向数据总线发出加载或存储请求及地址,数据总线返回状态信息,表明该次请求是否 被接受,如果该次请求未被接受,流水级停顿,同时地址计算单元须在下一时钟周期重新发 起请求;地址计算单元在Ei级读取数据总线操作结果,如果为加载指令,将返回数据写回寄存 器,如果当前周期数据总线没有返回操作结果,流水级停顿,同时地址计算单元在接下来的 周期内重新读取数据总线操作结果。
8.根据权利要求1所述的并行向量处理引擎结构,其特征在于,所述通信同步单元包 括直接内存访问控制器和消息寄存器,用于实现该向量处理引擎结构与外界进行的数据交 换,是该向量处理引擎结构与外部功能单元进行数据交换的唯一途径。
9.根据权利要求8所述的并行向量处理引擎结构,其特征在于,所述消息寄存器对向 量处理单元和外部功能单元表现出不同的特性,对向量处理单元表现出通道的特性,对该 并行向量处理引擎结构的外部功能单元表现为内存地址映射的寄存器。
10.根据权利要求9所述的并行向量处理引擎结构,其特征在于,所述向量处理单元通过通道指令读写以及查询消息寄存器,获得通信同步单元的状 态,或者控制通信同步单元的行为;所述向量处理单元通过通道指令读取、写入和查询通 道;该通道指令通过专用总线来传输数据和控制信号;所述通信同步单元中的通道能够实现状态寄存器和控制寄存器的功能,且每个通道是 可读通道或可写通道,不是可读写通道;所述通信同步单元中每个通道均为32位宽,每个通道都有对应的通道号。
11.根据权利要求9所述的并行向量处理引擎结构,其特征在于,所述内存地址映射的 寄存器仅针对该并行向量处理引擎结构的外部功能单元,一个通道有一个对应的内存地址 映射的寄存器地址,内存地址映射的寄存器读写不会阻塞,且可读可写。
12.根据权利要求1所述的并行向量处理引擎结构,其特征在于,该通信同步单元还通 过片上总线接口连接于片上网络。
全文摘要
本发明公开了一种并行向量处理引擎结构,该结构包括局部存储器、总线控制器、向量处理单元和通信同步单元,其中,该局部存储器由多个存储块组成,每个存储块独立运行,且每个存储块作为一从设备通过总线与该总线控制器连接,该向量处理单元与该通信同步单元均作为一主设备通过该总线控制器连接。本发明提供的并行向量处理引擎结构,能够优化向量计算,提高了芯片的数字信号处理能力。
文档编号G06F9/38GK101833441SQ201010162350
公开日2010年9月15日 申请日期2010年4月28日 优先权日2010年4月28日
发明者尹志刚, 张志伟, 林啸, 王东琳, 薛晓军, 谢少林, 闫寒 申请人:中国科学院自动化研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1