一种可配置归约目标自增间隔的归约装置的制作方法

文档序号:6336778阅读:213来源:国知局
专利名称:一种可配置归约目标自增间隔的归约装置的制作方法
技术领域
本发明主要涉及到向量微处理器中的向量运算单元,特指一种归约装置,用于将 多个向量运算单元的数据归约到其中的某一个单元中,且归约的目的单元可以按照一定的 间隔自增。
背景技术
图像处理和现代通信等媒体应用领域算法具有大规模并行性。为了处理这中大规 模的并行运算,通常会使用到存在若干个向量运算单元的向量处理器。并行程序在执行过程中,一个向量运算单元会经常性的使用到其他向量运算单元 的数据。数据在多个运算单元间的交互主要分为混洗和归约两种。归约是指将多个向量运 算单元中的数据通过某种运算方式归纳到一个或者多个向量运算单元中。现在通常使用的归约装置所能实现的功能是根据给定的归约目标,将待归约的数 据从归约源归约到归约目标中。每次执行归约时,所使用的信息都是当次的输入值,前一次 归约的执行结果对本次归约的执行并没有任何的影响。但实际计算机程序执行过程中使用到的归约指令往往不是将数据归纳到一个固 定的向量运算单元中去的,而是进行多次归约,每次归约的输入信息和前一次归约具有一 定联系,通常表现为增加一个固定值。以矩阵乘法为例,计算矩阵C = A*B,A、B均为η阶方阵,其中
假设处理器中有m个向量运算单元(m>= η),则计算过程如下第一步运算单元1计算aubu,运算单元2计算aub^,…,第η个运算单元计 算^nIv1,最后使用加法归约将所有运算单元的计算结果归约到运算单元1中得到Cu。第二步运算单元1计算a^bu,运算单元2计算ai,2b2,2,…,第η个运算单元计 算ai,nbn, 2,最后使用加法归约将所有运算单元的计算结果归约到运算单元2中得到C1,2。第三步及n-1步类似以上操作,不再赘述。第η步运算单元1计算 ,九,运算单元2计算ai,2b2,n,…,第η个运算单元计 算ai,nbn,n,最后使用加法归约将所有运算单元的计算结果归约到运算单元η中得到C1,η。最后,使用一条向量存储指令,将所计算的Cu,C1,2-C1,η存储到存储器中,如此获 得了 C矩阵的第一行结果。为实现上述例子中的算法,需要归约可以实现以下的操作归约部件可以配置为 每次归约目标较上次的归约目标加一,这样在程序编写时可以将上述的过程通过一个η遍 的循环实现,如果需要在每步都显式指定归约目标则无法使用循环的方式编写程序。

发明内容
本发明要解决的技术问题就在于针对现有技术存在的技术问题,本发明提供一 种结构简单紧凑、原理简单、工作可靠、适用范围广的可配置归约目标自增间隔的归约装置。为解决上述技术问题,本发明采用以下技术方案一种可配置归约目标自增间隔的归约装置,其特征在于包括归约网络单元,包括与处理器中向量运算单元一一对应的输入单元,归约网络单 元将归约运算部件的归约结果送到各自分组的所有向量运算单元的写端口上;归约运算部件,包括一种以上的运算部件,执行时对多种运算的结果做出选择,输 出所需要的归约运算的结果;归约目的选择器,对每一个向量运算单元产生各自的写使能信号,确定归约目标。作为本发明的进一步改进所述归约网络单元根据输出数量不同时具有不同的结构当运算单元的分组数为 η时,只有η个输出结果;当运算单元不分组时,归约目标是任意一个运算单元;当运算单元 分组时,归约目标是组内的任意一个运算单元。所述归约目的选择器包括两种模式一种是显示的指明归约目标,对归约目标信 号进行译码,得到对应与每个向量运算单元的写使能信号,每次执行本模式时归约目的选 择器中含有的寄存器会记录本次的归约目标;另一种是不指明归约目标,只指明本次归约 目标和上次的间隔,归约目的选择器从寄存器中读取上次的归约目的信息,加上归约间隔 后即得到本次的归约目标,再通过译码得到各个向量运算单元的写使能信号,最后将本次 的归约目的更新到寄存器中记录。与现有技术相比,本发明的优点在于1、本发明结构简单紧凑、原理简单、工作可靠、适用范围广,可以更适合向量处理 器中多个运算单元间的数据交互,也简化了向量程序的编写;本发明非常适合面向无线通 信、视频图像处理及运行嵌入式操作系统的微处理器,但不局限于此种处理器,其他需要开 发多种并行性的处理器也可以借鉴;2、采用本发明的归约装置,首先,由于归约目标可以是任意一个运算单元,故可以 对将要存储在存储器中的计算结果进行一定顺序的排列,例如矩阵运算中Cu,C1^clin, 可以组成矩阵C的第1行;第二,由于可以实现一定间隔的自增归约,故在程序编写时可以 更适合循环编程时的风格,即用同一条指令在不同次的循环体中执行不同的功能;第三,更 多的归约操作类型可以带来更灵活的应用方式;第四,分组归约可以支持2k个单元间的归 约,可以支持的运算范围增加,以矩阵乘法为例,可以支持2,4,…,Zk-1^k阶的矩阵操作。


图1是本发明具体实施例中归约装置的框架结构示意图;图2是具体实施例中16PE为一组进行归约时归约网络结构示意图;图3是具体实施例中8PE为一组进行归约时归约网络结构示意图;图4是具体实施例中4PE为一组进行归约时归约网络结构示意图5是具体实施例中2PE为一组进行归约时归约网络结构示意图;图6是具体实施例中单个归约运算部件的结构示意图;图7是通过寄存器实现归约目的自增操作示意图。
具体实施例方式以下将结合说明书附图和具体实施例对本发明做进一步详细说明。本发明可配置归约目标自增间隔的归约装置,包括归约网络单元。假设处理器中共含有2k个向量运算单元。归约网络单元共有2k 个输入单元,输入单元和向量运算单元一一对应。归约网络单元在输出数量不同时会呈现 出不同的结构当分组数为η时只有η个输出结果。当向量运算单元不分组时,归约目标可 以是任意一个运算单元;当向量运算单元分组时,归约目标可以是组内的任意一个向量运 算单元。向量运算单元分组的最小单位是2,组内单元数量为2的整数次幂。归约运算部件。归约运算部件内部可以含有多种运算部件,例如实现加法、取最大 值、异或等多种不同的操作。实际设计过程中,可以根据所需要的运算类型重新定义归约运 算部件,以实现多种归约操作。执行时,在归约运算部件内对多种运算的结果做出选择,最 后输出所需要的归约运算的结果。归约目的选择器。对于不同的分组,归约运算部件会给出不同的归约结果。归约 网络单元总是将这些归约结果送到各自分组的所有向量运算单元(PE)的写端口上,只有 在写使能信号为1的向量运算单元的寄存器才将结果写入。归约目的选择器的功能是对每 一个运算单元产生各自的写使能信号,确定其是否是归约目的单元。目的选择器可以工作 在两种模式下一种是显示的指明归约目标;另一种是不指明归约目标,只指明本次归约 目标和上次的间隔。在显示指明各组的归约目标时,归约目的选择器简单的对归约目标信 号进行译码,得到对应与每个PE的写使能信号,每次执行本模式时归约目的选择器中含有 的寄存器会记录本次的归约目标。当不指明归约目的只给出归约间隔时,归约目的选择器 会从寄存器中读取上次的归约目的信息,加上归约间隔后即得到本次的归约目标,再通过 译码得到各个PE的写使能信号,最后将本次的归约目的更新到寄存器中记录。本发明以16个向量运算单元(以下用PE表示)为例,这个数量也可以根据具体 应用情况任意改变为2的整数次幂。图1是本发明在具体实施例中的总体结构示意图,图中有16个向量运算单元。 其中,READ_ADDR是归约源寄存器的地址线;READ_EN是PE中寄存器文件的读使能信号; READ_DATA是归约源寄存器的数据线;WRITE_ADDR是归约目的寄存器的地址线;WRITE_EN 是PE中寄存器文件的写使能信号,每个PE拥有独立的WRITE_EN信号;WRITE_DATA是归约 目的寄存器的数据线;PE_REG是每个PE中的寄存器文件,包括了 PE中所有可以用来作为 混洗源的寄存器。通过READ_ADDR给出归约源的寄存器编号,当READ_EN有效时将归约源 寄存器的内容送至READ_DATA上。通过WRITE_ADDR指定归约目的寄存器编号,WRITE_DATA 上准备好要写入归约目的寄存器的内容,当WRITE_EN有效时将WRITE_DATA上的数据送至 WRITE_ADDR指定的寄存器中。SELECT是归约目的选择器,即多级归约结果的选择部件。从 图中可以看到,本结构可以实现2的整数次幂个PE间的归约操作,SELECT部件可以从树形 归约网络中的各级结果中选择一个写入WRITE_DATA线上,作为归约结果。Sel为SELECT部件提供选择信号,根据归约PE数量的不同,选择不同级的归约结果。CALCULATION_UNIT 是归约运算部件,根据指定的FUNCTION的不同,可以执行加法,最大,最小等多种形式。 CALCULATION_UNIT还可根据需求设计成特殊的运算功能。FUNCTION给CALCULATION_UNIT 单元提供运算功能选择。图2 图5,描述了 PE数量为16时归约网络在不同分组大小的情况下,实际呈现 的形态。具体装置中可以根据应用需求任意的将PE的数量设置为2的整数次幂,相应的归 约网络的形态也会根据PE数量的增加而增加。其中,图2是16PE为一组进行归约时归约网络结构示意图。所有PE为1组,从中 选择一个PE作为归约目标。共有4级的归约计算,最终得到一个归约结果,写入归约目标。图3是8PE为一组进行归约时归约网络结构示意图。每8个PE为1组,共2组, 从每组中选择一个PE作为归约目标。共有3级的归约计算,最终得到2个归约结果,分别 写入每组的归约目标中。图4是4PE为一组进行归约时归约网络结构示意图。每4个PE为1组,共4组, 从每组中选择一个PE作为归约目标。共有2级的归约计算,最终得到4个归约结果,分别 写入每组的归约目标中。图5是2PE为一组进行归约时归约网络结构示意图。每2个PE为1组,共8组, 从每组中选择一个PE作为归约目标。共有1级的归约计算,最终得到8个归约结果,分别 写入每组的归约目标中。图6是图1中CALCULATION_UNIT模块的详细示意图。两个操作数operandi)和 operandi从源PE的寄存器文件中读取,通过calculationjnode来选择几种归约运算中的 一种,计算结果通过out线输出。图中列出了 3种归约操作供选择,实际使用是可以根据具 体的应用需求重新设计CAIXULATI0N_UNIT以满足需要。图7是归约目的选择器。归约目标可以直接显式的通过writejarget指定,也可 以通过inc指定自增间隔。最后,通过译码电路将归约目标对应的PEx (本例共有16个PE, 故χ的取值为0到15)的WRITE_EN_PEx线选通。mode选择归约模式,可以是直接指定归约目标进行归约;或者是不指定归约目 标,只指定归约目标自增间隔。单元内部的CACHE缓存上次的归约的目的PE编号,当执行 自增归约时本次归约目标为CACHE缓存内容加上inc所指定的自增间隔。每次执行归约后 CACHE都会更新其中缓存的当次归约目的PE编号。write_target是归约目标选择,16PE归约时只指定一个归约目标,8PE、4PE、2PE 归约时要给每组都指定一个归约目标。inc指定归约目标的自增间隔。在执行自增归约时和HOLD配合使用。TRANSLATE单元将压缩存储的归约目的PE编号译码成为每个PE的写使能信号,将 归约目的PE的写使能至1,其余的为0。以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例, 凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的 普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护 范围。
权利要求
1.一种可配置归约目标自增间隔的归约装置,其特征在于包括归约网络单元,包括与处理器中向量运算单元一一对应的输入单元,归约网络单元将 归约运算部件的归约结果送到各自分组的所有向量运算单元的写端口上;归约运算部件,包括一种以上的运算部件,执行时对多种运算的结果做出选择,输出所 需要的归约运算的结果;归约目的选择器,对每一个向量运算单元产生各自的写使能信号,确定归约目标。
2.根据权利要求1所述的可配置归约目标自增间隔的归约装置,其特征在于所述归约 网络单元根据输出数量不同时具有不同的结构当向量运算单元的分组数为η时,只有η个 输出结果;当向量运算单元不分组时,归约目标是任意一个向量运算单元;当向量运算单 元分组时,归约目标是组内的任意一个向量运算单元。
3.根据权利要求1或2所述的可配置归约目标自增间隔的归约装置,其特征在于所述 归约目的选择器包括两种模式一种是显示的指明归约目标,对归约目标信号进行译码,得 到对应与每个向量运算单元的写使能信号,每次执行本模式时归约目的选择器中含有的寄 存器会记录本次的归约目标;另一种是不指明归约目标,只指明本次归约目标和上次的间 隔,归约目的选择器从寄存器中读取上次的归约目的信息,加上归约间隔后即得到本次的 归约目标,再通过译码得到各个向量运算单元的写使能信号,最后将本次的归约目的更新 到寄存器中记录。
全文摘要
一种可配置归约目标自增间隔的归约装置,包括归约网络单元,包括与处理器中向量运算单元一一对应的输入单元,归约网络单元将归约运算部件的归约结果送到各自分组的所有向量运算单元的写端口上;归约运算部件,包括一种以上的运算部件,执行时对多种运算的结果做出选择,输出所需要的归约运算的结果;归约目的选择器,对每一个向量运算单元产生各自的写使能信号,确定归约目标。本发明具有结构简单紧凑、原理简单、工作可靠、适用范围广等优点。
文档编号G06F9/50GK102004672SQ201010559448
公开日2011年4月6日 申请日期2010年11月25日 优先权日2010年11月25日
发明者万江华, 余再祥, 刘蓬侠, 吴虎成, 孙永节, 孙锁林, 李闻博, 汪东, 罗恒, 胡封林, 陈书明, 陈挺 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1