计数装置和计数方法制造方法及图纸

技术编号:20328965 阅读:25 留言:0更新日期:2019-02-13 05:38
一种计数装置及计数方法。计数装置包括存储单元、计数单元、以及寄存器单元,其中,存储单元与计数单元连接,用于存储待计数的输入数据以及用于存储统计的输入数据中满足给定条件的元素个数;寄存器单元,用于存储待计数的输入数据在存储单元中存储的地址;计数单元,与寄存器单元连接,用于获取计数指令,根据计数指令在寄存器单元中读取待计数的输入数据的存储地址,在存储单元中获取相应的待计数的输入数据,并对待计数的输入数据中满足给定条件的元素个数进行统计计数,得到计数结果。计数装置和计数方法中,通过将统计输入数据中满足给定条件的元素个数的算法编写成指令的形式,可以提高计算效率。

【技术实现步骤摘要】
计数装置和计数方法本申请是申请号为201880000923.3中国专利的分案申请,母案专利的内容皆引用于此。
本公开涉及计算机领域,进一步涉及人工智能领域的计数装置和计数方法。
技术介绍
随着大数据时代的来临,神经网络算法成为了近些年人工智能领域的一个研究热点,在模式识别、图像分析、智能机器人等方面都得到了广泛的应用。深度学习是机器学习中一种基于对数据进行表征学习的方法。观测值(例如一幅图像)可以使用多种方式来表示,如每个像素强度值的向量,或者更抽象地表示成一系列边、特定形状的区域等。而使用某些特定的表示方法更容易从实例中学习人物(例如,人脸识别或面部表情识别)。至今已有数种深度学习架构,如深度神经网络、卷积神经网络和深度信念网络和递归神经网络已被应用于计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域,并获取了极好的效果。另外,深度学习已成为类似术语,或者说是神经网络的品牌重塑。随着深度学习(神经网络)的大热,神经网络加速器也应运而生,通过专门的内存和运算模块设计,神经网络加速器在进行深度学习运算时可以获得相比较通用处理器几十倍甚是上百倍的加速比,并且面积更小,功耗更低。
技术实现思路
本公开提供一种计数装置,包括存储单元、计数单元、以及寄存器单元,其中,存储单元与计数单元连接,用于存储待计数的输入数据以及用于存储统计的输入数据中满足给定条件的元素个数;寄存器单元,用于存储待计数的输入数据在存储单元中存储的地址;计数单元,与寄存器单元连接,用于获取计数指令,根据计数指令在寄存器单元中读取所述待计数的输入数据的存储地址,在存储单元中获取相应的待计数的输入数据,并对所述待计数的输入数据中满足给定条件的元素个数进行统计计数,得到计数结果。本公开还提供一种应用上述计数装置的计数方法,其特征在于包括:存储单元存储待计数的输入数据以及存储统计的输入数据中满足给定条件的元素个数;寄存器单元存储待计数的输入数据在存储单元中存储的地址;计数单元获取计数指令,根据计数指令在寄存器单元中读取待计数的输入数据的存储地址,在存储单元中获取相应的待计数的输入数据,并对所述待计数的输入数据中满足给定条件的元素个数进行统计计数,得到计数结果。本公开的计数装置和计数方法中,通过将统计输入数据中满足给定条件的元素个数的算法编写成指令的形式,可以提高计算效率。附图说明为了更清楚地说明本公开实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。图1为本公开实施例计数装置的框架结构示意图。图2为本公开实施例计数装置中计数单元的结构示意图。图3为图2计数单元中的加法器结构示意图。图4为本公开实施例计数装置中计数指令的指令集格式示意图。图5为本公开实施例计数装置中计数单元的执行过程流程图。图6为本公开实施例计数装置的结构示意图。图7为本公开实施例计数装置的执行过程流程图。具体实施方式下面结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开的保护范围。本公开提供一种支持计数指令的计数装置和计数方法,通过将统计输入数据(待计数的数据)中满足给定条件的元素个数的算法编写成指令的形式,可以提高计算效率,以下将结合具体实施例对该进行具体阐述。在本公开的示例性实施例中,提供了一种支持计数指令的计数装置。图1为本公开实施例计数装置的框架结构示意图。如图1所示,本公开支持计数指令的计数装置包括:存储单元、计数单元、以及寄存器单元。存储单元与计数单元连接,用于存储待计数的输入数据以及用于存储统计的输入数据中满足给定条件的元素个数(计数结果),该存储单元可以是主存;也可以是暂存型存储器,进一步的,可以是高速暂存存储器,通过将待统计的输入数据暂存在高速暂存存储器上,使得计数指令可以灵活有效地支持不同宽度的数据,提升执行性能。在一种实施方式中,该存储单元是高速暂存存储器,能够支持不同位宽的输入数据和/或占据不同大小存储空间的输入数据,将待计数的输入数据暂存在高速暂存存储器上,使计数过程可以灵活有效地支持不同宽度的数据。计数单元与寄存器单元连接,计数单元用于获取计数指令,根据计数指令读取寄存器单元中的输入数据的地址,然后根据输入数据的地址在存储单元中获取相应的待计数的输入数据,并对输入数据中满足给定条件的元素个数进行统计计数,得到最终计数结果并将该计数结果存储于存储单元中。寄存器单元用于存储待计数的输入数据在存储单元中存储的地址。在一种实施方式中,寄存器单元存储的地址为待计数的输入数据在高速暂存存储器上的地址。在一些实施例中,待计数的输入数据的数据类型可以是0/1向量,也可以是数值型向量或矩阵。统计输入数据中满足给定条件的元素个数时,所统计元素要满足的条件,可以是与一给定元素相同,例如统计向量A中包含元素x的个数,x可以是数字n,n=0,1,2...,x也可以是向量m,例如m=00,01,11...。所统计元素要满足的条件,也可以是满足给定表达式,例如统计向量B中大于数值y的元素个数,其中y可以是整数n,n=0,1,2...也可以是浮点数f,f=0.5,0.6...;例如统计向量C中能够整除z的元素个数,其中z可以是整数n,n=0,1,2...。图2为本公开实施例计数装置中计数单元的结构示意图。如图2所示,计数单元包括输入输出模块、运算模块、累加器模块。输入输出模块与运算模块连接,对存储单元中待计数的输入数据,每次取其中设定长度(该长度可以根据实际需求配置)数据,输入到运算模块进行运算,运算模块运算完成后,输入输出模块继续取固定长度的下一段数据,直到取完待计数的输入数据的所有元素;输入输出模块将累加器模块计算得到的计数结果输出到存储单元。运算模块与累加器模块连接,输入设定长度数据(一段固定长度的数据),用运算模块的加法器将所述输入数据的满足给定条件的各个元素的个数相加,将得到的结果输出到累加器模块。运算模块中还包括判断子模块,用于判断输入数据是否满足给定的条件(给定的条件可以是设定长度数据中的若干元素与一给定元素相同,也可以是设定长度数据中的若干元素数值介于设定的区间内),如满足,则输出1,如不满足,则输出0,然后送入加法器中累加。在一种实施方式中,加法器的结构可包括n层,其中:第一层有l个全加器、第二层有个全加器、……第m层有个全加器;其中,l、m、n为大于1的整数,m为大于1小于n的整数,表示对数据x做取上整操作。下面对其具体工作过程进行描述,假设输入的数据类型为0/1向量,现要统计待计数的0/1向量中1的个数,假设一段固定长度的0/1向量长度为3l,其中l为大于1的整数。加法器第一层有l个全加器;加法器第二层有个全加器,每个全加器有3个输入和2个输出,则第一层总共得到4l/3个输出;按照所述方法,各层全加器都有3个输入和2个输出,并且同一层的加法器可并行执行;计算过程中若第i位数据个数为1,则可作为最后本文档来自技高网...

【技术保护点】
1.一种计数装置,包括存储单元、计数单元、以及寄存器单元,其中,所述存储单元与所述计数单元连接,用于存储待计数的输入数据以及用于存储统计的输入数据中满足给定条件的元素个数;所述寄存器单元用于存储待计数的输入数据在存储单元中存储的地址;所述计数单元与所述寄存器单元连接,用于获取计数指令,根据计数指令在寄存器单元中读取所述待计数的输入数据的存储地址,在所述存储单元中获取相应的待计数的输入数据,并对所述待计数的输入数据中满足给定条件的元素个数进行统计计数,得到计数结果。

【技术特征摘要】
2017.04.21 CN 20171026468691.一种计数装置,包括存储单元、计数单元、以及寄存器单元,其中,所述存储单元与所述计数单元连接,用于存储待计数的输入数据以及用于存储统计的输入数据中满足给定条件的元素个数;所述寄存器单元用于存储待计数的输入数据在存储单元中存储的地址;所述计数单元与所述寄存器单元连接,用于获取计数指令,根据计数指令在寄存器单元中读取所述待计数的输入数据的存储地址,在所述存储单元中获取相应的待计数的输入数据,并对所述待计数的输入数据中满足给定条件的元素个数进行统计计数,得到计数结果。2.根据权利要求1所述的计数装置,其特征在于,所述存储单元为主存和/或高速暂存型存储器。3.根据权利要求1所述的计数装置,其特征在于,所述计数单元包括输入输出模块、运算模块和累加器模块,其中,所述输入输出模块与所述运算模块连接,用于在所述待计数的输入数据中,每次取其中设定长度数据,输入到所述运算模块;所述运算模块包括加法器,用于将设定长度数据中满足给定条件的各个元素的个数相加,将得到的结果输出到累加器模块;所述累加模块用于将运算模块得到的结果进行累加。4.根据权利要求3所述的计数装置,其特征在于,所述给定的条件包括:设定长度数据中的若干元素与一给定元素相同;或者设定长度数据中的若干元素的数值介于设定的区间内。5.根据权利要求3所述的计数装置,其特征在于,所述运算模块还包括:判断子模块,用于判断设定长度数据是否满足给定的条件,如满足,则输出1,如不满足,则输出0,然后将输出为1的值送入加法器中累加。6.根据权利要求3所述的计数装置,其特征在于,所述加法器的结构包括n层,其中:第一层有l个全加器、第二层有个全加器、第m层有个全加器,其中,l、m、n为大于1的整数,m为大于1小于等于n的整数,表示对数据x做取上整操作。7.根据权利要求3所述的计数装置,其特征在于,所述计数单元为多流水级结构,其中,输入输出模块中取向量操作处于第一流水级,运算模块处于第二流水级,累加器模块处于第三流水级。8.根据权利要求1所述的计数装置,其特征在于,所述计数指令包括一操作码和一个或多个操作域;其中,所述操作码用于指示该指令为计数指令,计数单元通过识别该操作码可进行计数运算;所述操作域包括:指示该计数指令中待计数的输入数据的地址信息,和/或判断条件的地址信息。9.根据权利要求1所述的计数装置,其特征在于,还包括:指令存储器,用于存储计数指令;指令处理单元,与所述指令存储器连接,用于从所述指令存储器中获取计数指令,并对所述计数指令进行处理;指令缓存单元,与所述指令处理单元连接,用于顺序存储待执行和执行过程中的计数指令;还与所述计数单元和所述存储单元连接,用于将执行完的计数指令和计数结果提交到所述存储单元;依赖关系处理单元,与所述指令处理单元连接,用于在计数单元获取计数指令前,判断该计数指令所需输入数据是否为最新,若是,直接将计数指令提供给所述计数单元;否则,将该计数指令存储在所述依赖关系处理单元的一存储队列中,所需输入数据被更新后,将存储队列中的该计数指令提供给所述计数单元;其中,所述计数指令从所述指令处理单元中被发射到依赖关系处理单元的过程中,计数指令从所述寄存器单元中读取输入数据在所述存储单元中的存储地址。10.根据权利要求9所述的计数装置,其特征在于,所述指令处理单元包括:取指模块,与所述指令存储器连接,用于从指令存储器中获取计数指令;译码模块,与所述取指模块连接,用于对获取的计数指令进行译码;指令队列,与所述译码模块连接,用于对译码后的计数指令进行顺序存储,并顺序将指令发射到所述指令缓存单元和所述依赖关系处理单元。11.根据权利要求10所述的计数装置,...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:上海寒武纪信息科技有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1