CN102004672A - 一种可配置归约目标自增间隔的归约装置 - Google Patents
一种可配置归约目标自增间隔的归约装置 Download PDFInfo
- Publication number
- CN102004672A CN102004672A CN 201010559448 CN201010559448A CN102004672A CN 102004672 A CN102004672 A CN 102004672A CN 201010559448 CN201010559448 CN 201010559448 CN 201010559448 A CN201010559448 A CN 201010559448A CN 102004672 A CN102004672 A CN 102004672A
- Authority
- CN
- China
- Prior art keywords
- reduction
- target
- vector operation
- operation unit
- interval
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
一种可配置归约目标自增间隔的归约装置,包括:归约网络单元,包括与处理器中向量运算单元一一对应的输入单元,归约网络单元将归约运算部件的归约结果送到各自分组的所有向量运算单元的写端口上;归约运算部件,包括一种以上的运算部件,执行时对多种运算的结果做出选择,输出所需要的归约运算的结果;归约目的选择器,对每一个向量运算单元产生各自的写使能信号,确定归约目标。本发明具有结构简单紧凑、原理简单、工作可靠、适用范围广等优点。
Description
技术领域
本发明主要涉及到向量微处理器中的向量运算单元,特指一种归约装置,用于将多个向量运算单元的数据归约到其中的某一个单元中,且归约的目的单元可以按照一定的间隔自增。
背景技术
图像处理和现代通信等媒体应用领域算法具有大规模并行性。为了处理这中大规模的并行运算,通常会使用到存在若干个向量运算单元的向量处理器。
并行程序在执行过程中,一个向量运算单元会经常性的使用到其他向量运算单元的数据。数据在多个运算单元间的交互主要分为混洗和归约两种。归约是指将多个向量运算单元中的数据通过某种运算方式归纳到一个或者多个向量运算单元中。
现在通常使用的归约装置所能实现的功能是根据给定的归约目标,将待归约的数据从归约源归约到归约目标中。每次执行归约时,所使用的信息都是当次的输入值,前一次归约的执行结果对本次归约的执行并没有任何的影响。
但实际计算机程序执行过程中使用到的归约指令往往不是将数据归纳到一个固定的向量运算单元中去的,而是进行多次归约,每次归约的输入信息和前一次归约具有一定联系,通常表现为增加一个固定值。
以矩阵乘法为例,计算矩阵C=A*B,A、B均为n阶方阵,其中:
假设处理器中有m个向量运算单元(m>=n),则计算过程如下:
第一步:运算单元1计算a1,1b1,1,运算单元2计算a1,2b2,1,…,第n个运算单元计算a1,nbn,1,最后使用加法归约将所有运算单元的计算结果归约到运算单元1中得到c1,1。
第二步:运算单元1计算a1,1b1,2,运算单元2计算a1,2b2,2,…,第n个运算单元计算a1,nbn, 2,最后使用加法归约将所有运算单元的计算结果归约到运算单元2中得到c1,2。
第三步及n-1步类似以上操作,不再赘述。
第n步:运算单元1计算a1,1b1,n,运算单元2计算a1,2b2,n,…,第n个运算单元计算a1,nbn,n,最后使用加法归约将所有运算单元的计算结果归约到运算单元n中得到c1,n。
最后,使用一条向量存储指令,将所计算的c1,1,c1,2…c1,n存储到存储器中,如此获得了C矩阵的第一行结果。
为实现上述例子中的算法,需要归约可以实现以下的操作:归约部件可以配置为每次归约目标较上次的归约目标加一,这样在程序编写时可以将上述的过程通过一个n遍的循环实现,如果需要在每步都显式指定归约目标则无法使用循环的方式编写程序。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种结构简单紧凑、原理简单、工作可靠、适用范围广的可配置归约目标自增间隔的归约装置。
为解决上述技术问题,本发明采用以下技术方案:
一种可配置归约目标自增间隔的归约装置,其特征在于包括:
归约网络单元,包括与处理器中向量运算单元一一对应的输入单元,归约网络单元将归约运算部件的归约结果送到各自分组的所有向量运算单元的写端口上;
归约运算部件,包括一种以上的运算部件,执行时对多种运算的结果做出选择,输出所需要的归约运算的结果;
归约目的选择器,对每一个向量运算单元产生各自的写使能信号,确定归约目标。
作为本发明的进一步改进:
所述归约网络单元根据输出数量不同时具有不同的结构:当运算单元的分组数为n时,只有n个输出结果;当运算单元不分组时,归约目标是任意一个运算单元;当运算单元分组时,归约目标是组内的任意一个运算单元。
所述归约目的选择器包括两种模式:一种是显示的指明归约目标,对归约目标信号进行译码,得到对应与每个向量运算单元的写使能信号,每次执行本模式时归约目的选择器中含有的寄存器会记录本次的归约目标;另一种是不指明归约目标,只指明本次归约目标和上次的间隔,归约目的选择器从寄存器中读取上次的归约目的信息,加上归约间隔后即得到本次的归约目标,再通过译码得到各个向量运算单元的写使能信号,最后将本次的归约目的更新到寄存器中记录。
与现有技术相比,本发明的优点在于:
1、本发明结构简单紧凑、原理简单、工作可靠、适用范围广,可以更适合向量处理器中多个运算单元间的数据交互,也简化了向量程序的编写;本发明非常适合面向无线通信、视频图像处理及运行嵌入式操作系统的微处理器,但不局限于此种处理器,其他需要开发多种并行性的处理器也可以借鉴;
2、采用本发明的归约装置,首先,由于归约目标可以是任意一个运算单元,故可以对将要存储在存储器中的计算结果进行一定顺序的排列,例如矩阵运算中c1,1,c1,2…c1,n,可以组成矩阵c的第1行;第二,由于可以实现一定间隔的自增归约,故在程序编写时可以更适合循环编程时的风格,即用同一条指令在不同次的循环体中执行不同的功能;第三,更多的归约操作类型可以带来更灵活的应用方式;第四,分组归约可以支持2k个单元间的归约,可以支持的运算范围增加,以矩阵乘法为例,可以支持2,4,…,2k-1,2k阶的矩阵操作。
附图说明
图1是本发明具体实施例中归约装置的框架结构示意图;
图2是具体实施例中16PE为一组进行归约时归约网络结构示意图;
图3是具体实施例中8PE为一组进行归约时归约网络结构示意图;
图4是具体实施例中4PE为一组进行归约时归约网络结构示意图;
图5是具体实施例中2PE为一组进行归约时归约网络结构示意图;
图6是具体实施例中单个归约运算部件的结构示意图;
图7是通过寄存器实现归约目的自增操作示意图。
具体实施方式
以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
本发明可配置归约目标自增间隔的归约装置,包括:
归约网络单元。假设处理器中共含有2k个向量运算单元。归约网络单元共有2k个输入单元,输入单元和向量运算单元一一对应。归约网络单元在输出数量不同时会呈现出不同的结构:当分组数为n时只有n个输出结果。当向量运算单元不分组时,归约目标可以是任意一个运算单元;当向量运算单元分组时,归约目标可以是组内的任意一个向量运算单元。向量运算单元分组的最小单位是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模块的详细示意图。两个操作数operand0和operand1从源PE的寄存器文件中读取,通过calculation_mode来选择几种归约运算中的一种,计算结果通过out线输出。图中列出了3种归约操作供选择,实际使用是可以根据具体的应用需求重新设计CALCULATION_UNIT以满足需要。
图7是归约目的选择器。归约目标可以直接显式的通过write_target指定,也可以通过inc指定自增间隔。最后,通过译码电路将归约目标对应的PEx(本例共有16个PE,故x的取值为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。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
Claims (3)
1.一种可配置归约目标自增间隔的归约装置,其特征在于包括:
归约网络单元,包括与处理器中向量运算单元一一对应的输入单元,归约网络单元将归约运算部件的归约结果送到各自分组的所有向量运算单元的写端口上;
归约运算部件,包括一种以上的运算部件,执行时对多种运算的结果做出选择,输出所需要的归约运算的结果;
归约目的选择器,对每一个向量运算单元产生各自的写使能信号,确定归约目标。
2.根据权利要求1所述的可配置归约目标自增间隔的归约装置,其特征在于所述归约网络单元根据输出数量不同时具有不同的结构:当向量运算单元的分组数为n时,只有n个输出结果;当向量运算单元不分组时,归约目标是任意一个向量运算单元;当向量运算单元分组时,归约目标是组内的任意一个向量运算单元。
3.根据权利要求1或2所述的可配置归约目标自增间隔的归约装置,其特征在于所述归约目的选择器包括两种模式:一种是显示的指明归约目标,对归约目标信号进行译码,得到对应与每个向量运算单元的写使能信号,每次执行本模式时归约目的选择器中含有的寄存器会记录本次的归约目标;另一种是不指明归约目标,只指明本次归约目标和上次的间隔,归约目的选择器从寄存器中读取上次的归约目的信息,加上归约间隔后即得到本次的归约目标,再通过译码得到各个向量运算单元的写使能信号,最后将本次的归约目的更新到寄存器中记录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010559448 CN102004672B (zh) | 2010-11-25 | 2010-11-25 | 一种可配置归约目标自增间隔的归约装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010559448 CN102004672B (zh) | 2010-11-25 | 2010-11-25 | 一种可配置归约目标自增间隔的归约装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102004672A true CN102004672A (zh) | 2011-04-06 |
CN102004672B CN102004672B (zh) | 2012-12-05 |
Family
ID=43812050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010559448 Active CN102004672B (zh) | 2010-11-25 | 2010-11-25 | 一种可配置归约目标自增间隔的归约装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102004672B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103995688A (zh) * | 2014-05-30 | 2014-08-20 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 一种基于标签的无序矢量归约电路 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080183779A1 (en) * | 2007-01-31 | 2008-07-31 | International Business Machines Corporation | Method and System for Optimal Parallel Computing Performance |
US20090249026A1 (en) * | 2008-03-28 | 2009-10-01 | Mikhail Smelyanskiy | Vector instructions to enable efficient synchronization and parallel reduction operations |
CN101609715A (zh) * | 2009-05-11 | 2009-12-23 | 中国人民解放军国防科学技术大学 | 行列访问端口分离的矩阵寄存器文件 |
CN101833441A (zh) * | 2010-04-28 | 2010-09-15 | 中国科学院自动化研究所 | 并行向量处理引擎结构 |
-
2010
- 2010-11-25 CN CN 201010559448 patent/CN102004672B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080183779A1 (en) * | 2007-01-31 | 2008-07-31 | International Business Machines Corporation | Method and System for Optimal Parallel Computing Performance |
US20090249026A1 (en) * | 2008-03-28 | 2009-10-01 | Mikhail Smelyanskiy | Vector instructions to enable efficient synchronization and parallel reduction operations |
CN101609715A (zh) * | 2009-05-11 | 2009-12-23 | 中国人民解放军国防科学技术大学 | 行列访问端口分离的矩阵寄存器文件 |
CN101833441A (zh) * | 2010-04-28 | 2010-09-15 | 中国科学院自动化研究所 | 并行向量处理引擎结构 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103995688A (zh) * | 2014-05-30 | 2014-08-20 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 一种基于标签的无序矢量归约电路 |
CN103995688B (zh) * | 2014-05-30 | 2016-10-12 | 广东顺德中山大学卡内基梅隆大学国际联合研究院 | 一种基于标签的无序矢量归约电路 |
Also Published As
Publication number | Publication date |
---|---|
CN102004672B (zh) | 2012-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7174432B2 (en) | Asynchronous, independent and multiple process shared memory system in an adaptive computing architecture | |
US7325123B2 (en) | Hierarchical interconnect for configuring separate interconnects for each group of fixed and diverse computational elements | |
JP3916680B2 (ja) | プロセッサ | |
CN102541809B (zh) | 一种动态可重构处理器 | |
CN102043761B (zh) | 一种基于可重构技术的傅立叶变换的实现方法 | |
CN105335331B (zh) | 一种基于大规模粗粒度可重构处理器的sha256实现方法及系统 | |
CN102279818B (zh) | 支持有限共享的向量数据访存控制方法及向量存储器 | |
CN105912501B (zh) | 一种基于大规模粗粒度可重构处理器的sm4-128加密算法实现方法及系统 | |
TW200405208A (en) | A scalar/vector processor | |
CN109992304A (zh) | 用于加载片寄存器对的系统和方法 | |
Jenkins et al. | Enabling fast, noncontiguous GPU data movement in hybrid MPI+ GPU environments | |
CN101093474B (zh) | 利用矢量处理器实现矩阵转置的方法和处理系统 | |
CN102508803A (zh) | 一种矩阵转置存储控制器 | |
WO2016024508A1 (ja) | マルチプロセッサ装置 | |
CN104915213B (zh) | 一种可重构系统的局部重构控制器 | |
CN104756069A (zh) | 元素选择单元及其中的方法 | |
CN100470571C (zh) | 一种用于密码学运算的微处理器内核装置 | |
EP3516515A1 (en) | Scheduling of tasks in a multiprocessor device | |
CN102004672B (zh) | 一种可配置归约目标自增间隔的归约装置 | |
US7917707B2 (en) | Semiconductor device | |
CN103034621B (zh) | 基2×k并行fft架构的地址映射方法及系统 | |
CN110890120B (zh) | 基于阻变存储器的通用区块链应用处理加速方法及系统 | |
CN102012802B (zh) | 面向向量处理器数据交换的方法及装置 | |
CN101727434B (zh) | 一种特定应用算法专用集成电路结构 | |
CN103293373A (zh) | 电能计量装置及其电能计量芯片 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |