编码方法、处理器、编码模块及存储介质技术

技术编号:24804896 阅读:31 留言:0更新日期:2020-07-07 22:02
本申请涉及一种编码方法、处理器、编码装置及存储介质。所述方法包括:对模型数据中出现的大量连续的零进行游程编码。采用本方法能够在减少数据冗余的同时,避免特殊字符的定义冲突。

【技术实现步骤摘要】
编码方法、处理器、编码模块及存储介质
本申请涉及统计编码
,特别是涉及一种编码方法、处理器、编码模块及存储介质。
技术介绍
随着数字电子技术的不断发展,各类人工智能(ArtificialIntelligence,AI)芯片的快速发展对于神经网络处理器的要求也越来越高。神经网络算法作为智能芯片广泛应用的算法之一,运行于神经网络处理器中。然而,由于定点化和稀疏化的广泛应用,模型数据中通常会出现大量连续的零,占用了大量的带宽资源,影响神经网路处理器的整体处理效率。
技术实现思路
基于此,有必要针对上述技术问题,提供一种能够对模型数据中出现的大量连续的零进行游程编码,从而在减少数据冗余的同时,避免特殊字符定义冲突的编码方法、处理器、编码模块及存储介质。一种编码方法,所述方法包括:获取输入数据;若所述输入数据中连续排列的第一预设数字的数目大于游程阈值,则对大于所述游程阈值后排列在首位的所述第一预设数字进行字符编码,并根据游程位宽,对大于所述游程阈值后排列在首位的所述第一预设数字之后的其他所述第一预设数字进行编码,得到游程,写入目标编码中;利用第一预设字符,对所述目标编码中的所述第一预设数字的字符编码,以及排列在所述第一预设数字的字符编码之后的游程进行替换;若所述目标编码中存在与所述第一预设字符数值相同的字符编码,则为与所述第一预设字符数值相同的字符编码设置附加字符校验位。在其中一个实施例中,所述方法还包括:若所述输入数据的首位数字为所述第一预设数字,则根据所述第一预设数字的数据位宽,将所述第一预设数字进行字符编码,并根据所述游程位宽,对所述输入数据中位于所述首位数字之后的其他所述第一预设数字进行编码,得到所述游程,写入所述目标编码中。在其中一个实施例中,所述方法还包括:用第二预设字符对所述第一预设字符进行替换;若所述目标编码中存在与所述第二预设字符值相同的字符编码,则为与所述第二预设字符数值相同的字符编码设置附加字符校验位。一种处理器,所述处理器包括运算单元、与所述运算单元邻近设置的存储单元以及控制器单元,所述控制器单元连接于所述运算单元与所述存储单元之间;其中,所述运算单元包括编码模块,所述编码模块用于若输入数据中连续排列的第一预设数字的数目大于游程阈值,则对大于所述游程阈值后排列在首位的所述第一预设数字进行字符编码,并根据游程位宽,对大于所述游程阈值后排列在首位的所述第一预设数字之后的其他所述第一预设数字进行编码,得到游程,写入目标编码中;所述编码模块用于利用第一预设字符,对所述目标编码中的所述第一预设数字的字符编码,以及排列在所述第一预设数字的字符编码之后的游程进行替换;所述编码模块用于若所述目标编码中存在与所述第一预设字符数值相同的字符编码,则为与所述第一预设字符数值相同的字符编码设置附加字符校验位;所述存储单元用于存储原始数据以及编码后的数据,并与所述控制器单元以及所述运算单元之间进行数据传输;所述控制器单元用于获取输入数据以及计算指令,并将解析该计算指令得到的多个运算指令以及所述输入数据发送至所述运算单元。在其中一个实施例中,所述编码模块包括控制信号接口、缓存、多个寄存器、配置模块以及输出模块;其中,所述控制信号接口用于实现所述编码模块与所述控制器单元之间的连接以及数据传输;所述缓存分别与所述缓存邻近设置的寄存器以及所述配置模块连接,用于存储输入数据、所述第一预设字符、所述第二预设字符以及第一预设字符编码;所述多个寄存器用于存储多级流水线的执行结果;所述配置模块用于对所述第一预设字符进行编码,得到第一预设字符编码,并将所述第一预设字符编码存储至所述缓存中;所述输出模块用于存储并输出编码数据。在其中一个实施例中,所述运算单元包括主处理电路和至少一个从处理电路,至少一个所述从处理电路均连接至所述主处理电路;所述编码模块设置于所述主处理电路以及每一所述从处理电路中。一种编码装置,所述装置包括:输入数据获取模块,用于获取输入数据;游程获取模块,用于若所述输入数据中连续排列的第一预设数字的数目大于游程阈值,则对大于所述游程阈值后排列在首位的所述第一预设数字进行字符编码,并根据游程位宽,对大于所述游程阈值后排列在首位的所述第一预设数字之后的其他所述第一预设数字进行编码,得到游程,写入目标编码中;第一预设字符替换模块,用于利用第一预设字符,对所述目标编码中的所述第一预设数字的字符编码,以及排列在所述第一预设数字的字符编码之后的游程进行替换;附加字符校验位设置模块,用于若所述目标编码中存在与所述第一预设字符数值相同的字符编码,则为与所述第一预设字符数值相同的字符编码设置附加字符校验位。一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述编码方法的步骤。上述编码方法、处理器、编码模块及存储介质,通过在运算单元中设置编码模块,在第一级流水线根据游程位宽,将待编码数据中的第一预设数字进行游程编码,在第二级流水线,用预设字符替换游程编码得到的输出数据,并为与预设字符数值相同的字符编码设置附加字符校验位,从而在减少数据冗余的同时,避免特殊字符的定义冲突;同时,利用预设字符和两级流水线执行编码操作,能够进一步提高数据压缩的效率。附图说明图1为一个实施例中处理器1000的结构示意图;图2为一个实施例中处理器2000的结构示意图;图3为一个实施例中编码装置中缓存的结构示意图;图4为一个实施例中处理器3000的结构示意图;图5为一个实施例中处理器4000的结构示意图;图6为另一个实施例中处理器的结构示意图;图7为另一个实施例中处理器的结构示意图;图8为另一个实施例中处理器的结构示意图;图9为另一个实施例中主处理电路的结构示意图;图10为一个实施例中编码方法的流程示意图;图11为一个实施例中解码方法的流程示意图;图12为另一个实施例中解码方法的流程示意图;图13为一个实施例中编码装置的结构框图;图14为一个实施例中解码装置的结构框图;图15为另一个实施例中解码装置的结构框图。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或本文档来自技高网...

【技术保护点】
1.一种编码方法,其特征在于,所述方法包括:/n获取输入数据;/n若所述输入数据中连续排列的第一预设数字的数目大于游程阈值,则对大于所述游程阈值后排列在首位的所述第一预设数字进行字符编码,并根据游程位宽,对大于所述游程阈值后排列在首位的所述第一预设数字之后的其他所述第一预设数字进行编码,得到游程,写入目标编码中;/n利用第一预设字符,对所述目标编码中的所述第一预设数字的字符编码,以及排列在所述第一预设数字的字符编码之后的游程进行替换;/n若所述目标编码中存在与所述第一预设字符数值相同的字符编码,则为与所述第一预设字符数值相同的字符编码设置附加字符校验位。/n

【技术特征摘要】
1.一种编码方法,其特征在于,所述方法包括:
获取输入数据;
若所述输入数据中连续排列的第一预设数字的数目大于游程阈值,则对大于所述游程阈值后排列在首位的所述第一预设数字进行字符编码,并根据游程位宽,对大于所述游程阈值后排列在首位的所述第一预设数字之后的其他所述第一预设数字进行编码,得到游程,写入目标编码中;
利用第一预设字符,对所述目标编码中的所述第一预设数字的字符编码,以及排列在所述第一预设数字的字符编码之后的游程进行替换;
若所述目标编码中存在与所述第一预设字符数值相同的字符编码,则为与所述第一预设字符数值相同的字符编码设置附加字符校验位。


2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述输入数据的首位数字为所述第一预设数字,则根据所述第一预设数字的数据位宽,将所述第一预设数字进行字符编码,并根据所述游程位宽,对所述输入数据中位于所述首位数字之后的其他所述第一预设数字进行编码,得到所述游程,写入所述目标编码中。


3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述输入数据拆分为第二预设数字和所述第一预设数字;
根据所述游程位宽,得到所述游程阈值;
若所述第二预设数字后连续排列的所述第一预设数字的数目小于或等于所述游程阈值,则对所述第二预设数字后连续排列的多个所述第一预设数字进行编码,得到所述游程。


4.根据权利要求3所述的方法,其特征在于,所述第一预设数字为零值,所述第二预设数字为非零值。


5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述输入数据进行统计,得到所述第一预设数字的出现频率;
根据所述第一预设数字的出现频率,设定所述游程位宽。


6.根据权利要求1所述的方法,其特征在于,所述利用第一预设字符,对所述目标编码中的所述第一预设数字的字符编码,以及排列在所述第一预设数字的字符编码之后的游程进行替换,包括:
获取第一预设字符编码,其中,所述第一预设字符编码为在配置模块中对所述第一预设字符进行编码后得到的字符编码;
利用所述第一预设字符编码,对字符编码后的所述第一预设数字以及字符编码后的所述第一预设数字之后的游程进行替换。


7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
用第二预设字符对所述第一预设字符进行替换;
若所述目标编码中存在与所述第二预设字符值相同的字符编码,则为与所述第二预设字符数值相同的字符编码设置附加字符校验位。


8.一种处理器,其特征在于,所述处理器包括运算单元、与所述运算单元邻近设置的存储单元以及控制器单元,所述控制器单元连接于所述运算单元与所述存储单元之间;
其中,所述运算单元包括编码模块,所述编码模块用于若输入数据中连续排列的第一预设数字的数目大于游程阈值,则对大于所述游程阈值后排列在首位的所述第一预设数字进行字符编码,并根据游程位宽,对大于所述游程阈值后排列在首位的所述第一预设数字之后的其他所述第一预设数字进行编码,得到游程,写入目标编码中;
所述编码模块用于利用第一预设字符,对所述目标编码中的所述第一预设数字的字符编码,以及排列在所述第一预设数字的字符编码之后的游程进行替换;
所述编码模块用于若所述目标编码中存在与所述第一预设字符数值相同的字符编码,则为与所述第一预设字符数值相同的字符编码设置附加字符校验位;
所述存储单元用于存储原始数据以及编码后的数据,并与所述控制器单元以及所述运算单元之间进行数据传输;
所述控制器单元用于获取输入数据以及计...

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

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

1