[发明专利]一种基于标签的无序矢量归约电路有效
申请号: | 201410240877.8 | 申请日: | 2014-05-30 |
公开(公告)号: | CN103995688B | 公开(公告)日: | 2016-10-12 |
发明(设计)人: | 黄以华;韦铭 | 申请(专利权)人: | 广东顺德中山大学卡内基梅隆大学国际联合研究院;中山大学 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/38 |
代理公司: | 广州粤高专利商标代理有限公司 44102 | 代理人: | 林丽明 |
地址: | 528300 广东省佛山市顺德区大良*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 标签 无序 矢量 电路 | ||
技术领域
本发明涉及一种矢量归约电路领域,更具体地,涉及一种基于标签的、可同时进行多个独立矢量的归约运算的、数据输入次序任意的无序矢量归约电路。
背景技术
矢量归约,是指将一系列的输入数据的值,即矢量,通过运算归约为一个标量值的过程。这种类型的矢量运算形式是大量科学与工程运算的基础,其核心运算一般满足交换率和结合率。常见的矢量归约运算有矢量中所有元素的累加和、累乘积,寻找矢量中的最大、最小元素等。矢量归约运算的特点是其为多步运算,且后面步骤需要前面步骤的运算结果。
在一些对算法实时性要求高的嵌入式应用中,矢量归约运算的功能需要在FPGA、ASIC等芯片上以硬件电路的形式实现。然而,为了达到更高的工作频率,大多复杂运算如浮点加法和浮点乘法等的硬件运算器,通常经过深度流水,延迟超过一个时钟周期。使用多周期硬件运算器的矢量归约电路应当安排好运算的各个步骤,合理地存储和调度各步骤的运算结果,使得硬件运算器的流水线能尽量地被填满,保证电路的吞吐量。另外,考虑到资源利用效率和系统总体性能,一个矢量归约电路应该使用尽量少的硬件运算器,能同时处理多个独立矢量的归约运算,并且实现完全流水,不阻塞输入数据。
现有的矢量归约电路中有一些可以满足上述要求,但在同时处理多个矢量的归约运算时,都要求一个矢量的数据全部输入电路后才能输入下一个矢量的数据,也就是说,要求输入数据有序。然而,在一些应用中,矢量归约电路需要处理的数据的输入次序是无序的,即多个矢量的数据无规律地混杂在一起输入。例如,矢量归约电路与多个上位模块通过应用Lottery算法等基于概率的仲裁算法的总线仲裁器连接,或组成了片上网络,这时输入数据的次序基本无法预测;现有的矢量归约电路无法处理这样的输入数据。
另外,从面向实际应用角度出发,一个矢量归约电路应该有规范和友好的接口,无复杂的操作时序,以保证与上下位模块的良好兼容性。现有的矢量归约电路大多不关注这方面的问题,给实际应用带来不便。
发明内容
针对现有的矢量归约电路存在的问题,本发明提出了一种基于标签的无序矢量归约电路,它能同时处理多个独立的、任意长度的矢量的归约运算,数据的输入次序任意;本矢量归约电路更灵活性,可伸缩性强,内部不存在复杂的控制算法和逻辑。
为了实现上述目的,本发明的技术方案为:
一种基于标签的无序矢量归约电路,一个矢量内所有的数据均附带有一个信号以指明其所属的矢量,该信号为数据的标签;
电路包括容器模块、缓冲区模块、多路选择器模块及运算器模块;
容器模块:在每个时钟周期,容器模块接受两个带标签数据,检查容器模块内所有的数据,将带有相同标签的数据两两配成带标签数据对,并输出,
容器模块每个时钟周期接受的两个带标签数据分别是来自无序矢量归约电路外部的带标签数据与运算器模块输出的带标签数据;
缓冲区模块:根据容器模块输出的带标签数据对的数量进行缓冲操作;
多路选择器模块:将缓冲区模块选通输出的有效带标签数据对输出至运算器模块;
运算器模块:对输入的有效带标签数据对中的数据进行运算,将运算结果和有效带标签数据中的标签构成一个带标签数据,返回容器模块。
矢量归约的核心运算通常是满足交换率和结合率的二元运算(乘法,加法,取大者,取小者等)。称一个矢量的所有原始数据及归约运算时的所有中间结果的集合为一个数据集。对于多个矢量的归约运算,本发明的处理过程:设置一个容器模块,在每个时钟周期将当前的输入数据和从运算器输出的中间结果数据放入容器,并从容器中选出两个属于同一数据集的数据组成一对,送入运算器中进行运算。若所有矢量的数据已经输入电路,容器中任意两个数据都不属于同一个数据集,而运算器的流水线已经为空,那么所有矢量的归约运算便完成,此时容器里的数据便是所有矢量的归约运算结果。这样的处理方式显然并不需要关心这些矢量的数据的输入次序。因为输入数据是来自多个矢量的数据混杂而成,每个数据必定会附带一个信号以指明其所属的矢量。将这个信号视为数据信号的标签信号,附加在数据信号上。容器依靠标签来区分各个数据集的数据,对数据相应的进行存储和匹配等操作。相同标签的数据会被组成一对送入运算器,运算结果也会被附加上一样的标签。这样,每个数据集都对应唯一一个标签值,无效的数据会被附加一个与所有数据集的标签都不同的标签,以指明其无效,不属于任何一个数据集,保证运算的正确性与准确性。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东顺德中山大学卡内基梅隆大学国际联合研究院;中山大学,未经广东顺德中山大学卡内基梅隆大学国际联合研究院;中山大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410240877.8/2.html,转载请声明来源钻瓜专利网。