数据处理方法、处理器、数据处理装置及存储介质制造方法及图纸

技术编号:24454767 阅读:17 留言:0更新日期:2020-06-10 15:13
本申请涉及一种数据处理方法、处理器、数据处理装置及存储介质。所述数据处理方法包括:根据运算指令从第一存储装置中读取第一子数据,并将当前读取的第一子数据存储至第二存储装置中,获取第二子数据,并且判断当前读取的第一子数据是否大于或等于第二子数据,当第一子数据大于或等于第二子数据时,将第一子数据复位,并将复位后的第一子数据作为当前比较结果存储于第一存储装置中,之后返回继续从第一存储装置中读取第一子数据,直至完成该运算指令对应的相关运算操作。通过将大数据拆分成小数据进行循环运算处理,通过对操作数按照数据读取容量循环读取,使得运算处理时的能够容纳的数据大小满足要求,且加快运算速度。

Data processing method, processor, data processing device and storage medium

【技术实现步骤摘要】
数据处理方法、处理器、数据处理装置及存储介质
本申请涉及数据处理
,特别是涉及一种数据处理方法、处理器、数据处理装置及存储介质。
技术介绍
原子操作是指不会被线程调度机制打断的操作,这种操作一旦开始,就一直运行到结束,中间不会有任何线程切换(例如共享变量i执行累加,非原子操作情况下多个核同时i++的结果会出错)。在多核处理器系统当中,多个处理器核共享同一块存储空间,通常的数据传输技术可能无法保证原子性,即同一时间可能有多个处理器核访问同一地址。在实际程序当中,运算结果存储在一个存储空间内,该存储空间具有一定的地址范围,由于该存储空间可能在运算完成之前被其他处理器核访问,传统的做法是先将该存储空间的数据读到存储单元,然后将运算结果存在该存储单元,指令运算结束之后将该存储单元的结果写回到该存储空间。然而,如果运算期间有其它的处理器核访问该存储空间,就会得到一个错误的结果,破坏这次累加的原子性。
技术实现思路
基于此,有必要针对上述技术问题,提供一种能够实现原子操作期间单独访问片外存储空间的数据处理方法、处理器、数据处理装置及存储介质。一种数据处理方法,所述方法包括:获取运算指令,其中,所述运算指令用于实现第一源操作数以及第二源操作数的累加运算,所述第一源操作数包括至少一个第一子数据,所述第二源操作数包括至少一个第二子数据;根据数据读取容量以及所述运算指令,按照预设的数据读取方式,从第一存储装置中读取所述第一子数据,并将当前读取的所述第一子数据存储至第二存储装置,其中,所述第一存储装置为片外存储装置,所述第二存储装置为片上存储装置;根据所述运算指令获取所述第二子数据,判断当前读取的所述第一子数据是否大于或等于所述第二子数据,当所述第一子数据大于或等于所述第二子数据时,将所述第一子数据复位,并将复位后的所述第一子数据作为当前比较结果存储至所述第二存储装置以及所述第一存储装置中;之后,返回根据数据读取容量以及所述运算指令,按照预设的数据读取方式,从第一存储装置中读取所述第一子数据的步骤,直至完成所述运算指令对应的运算操作。在其中一个实施例中,每当将所述当前比较结果存储至所述第一存储装置中之后,所述方法还包括如下步骤:控制计数器累加一次或递减一次,之后,返回根据数据读取容量以及所述运算指令,按照预设的数据读取方式,从第一存储装置中读取所述第一子数据的步骤,直至所述计数器从初始值累加至目标循环次数,或所述计数器从所述目标循环次数递减为初始值,完成所述运算指令对应的运算操作。在其中一个实施例中,所述方法还包括:根据所述运算指令,获得所述第一源操作数的数据大小;根据所述第一源操作数的数据大小以及预设的拆分粒度,得到所述目标循环次数。在其中一个实施例中,所述运算指令的指令格式,包括指令类别、指令类型、第一源操作数、第二源操作数、目标操作数及操作码;所述指令类别用于确定所述运算指令是否为原子操作运算指令;所述指令类型用于确定所述运算指令的运算类型;所述操作码用于配置源操作数的个数;所述目标操作数用于表示所述当前比较结果。一种用于数据处理方法的处理器,所述处理器包括运算电路、读写电路以及与所述运算电路邻近设置的第二存储装置,所述第二存储装置能够通过所述读写电路与所述处理器外部的第一存储装置连接;其中,所述运算电路用于获取运算指令,根据所述运算指令向所述第一存储装置发送读写请求;所述运算指令用于实现第一源操作数和第二源操作数的累加运算,所述第一源操作数包括至少一个第一子数据,所述第二源操作数包括至少一个第二子数据;所述读写电路用于根据所述读写请求,从所述第一存储装置中读取第一子数据,并将所述第一子数据存储至所述第二存储装置;所述运算电路用于获取所述第二子数据,判断当前读取的所述第一子数据是否大于或等于所述第二子数据,当所述第一子数据大于或等于所述第二子数据时,将所述第一子数据复位,并将复位后的所述第一子数据作为当前比较结果存储至所述第二存储装置以及所述第一存储装置中;之后,再次向所述第一存储装置发送读写请求,直至完成所述运算指令对应的运算操作。在其中一个实施例中,所述运算电路包括主处理电路和一个以上的从处理电路,一个以上的所述从处理电路均连接至所述主处理电路;所述累加运算模块置于所述主处理电路中。一种数据处理装置,所述装置包括:获取模块,用于获取运算指令,其中,所述运算指令用于实现第一源操作数以及第二源操作数的比较运算,所述第一源操作数包括至少一个第一子数据,所述第二源操作数包括至少一个第二子数据;读取模块,用于根据数据读取容量以及所述运算指令,按照预设的数据读取方式,从第一存储装置中读取所述第一子数据,并将当前读取的所述第一子数据存储至第二存储装置中,其中,所述第一存储装置为片外存储装置,所述第二存储装置为片上存储装置;运算模块,用于根据所述运算指令获取所述第二子数据,判断当前读取的所述第一子数据是否大于或等于所述第二子数据,当所述第一子数据大于或等于所述第二子数据时,将所述第一子数据复位,并将复位后的所述第一子数据作为当前比较结果存储至所述第二存储装置以及所述第一存储装置中。一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:获取运算指令,其中,所述运算指令用于实现第一源操作数以及第二源操作数的累加运算,所述第一源操作数包括至少一个第一子数据,所述第二源操作数包括至少一个第二子数据;根据数据读取容量以及所述运算指令,按照预设的数据读取方式,从第一存储装置中读取所述第一子数据,并将当前读取的所述第一子数据存储至第二存储装置,其中,所述第一存储装置为片外存储装置,所述第二存储装置为片上存储装置;根据所述运算指令获取所述第二子数据,判断当前读取的所述第一子数据是否大于或等于所述第二子数据,当所述第一子数据大于或等于所述第二子数据时,将所述第一子数据复位,并将复位后的所述第一子数据作为当前比较结果存储至所述第二存储装置以及所述第一存储装置中;之后,返回根据数据读取容量以及所述运算指令,按照预设的数据读取方式,从第一存储装置中读取所述第一子数据的步骤,直至完成所述运算指令对应的运算操作。上述数据处理方法、处理器、数据处理装置及存储介质,根据运算指令,按照预设的数据读取方式,从第一存储装置中读取第一子数据,并将当前读取的第一子数据存储至第二存储装置中,然后根据运算指令获取第二子数据,并且判断当前读取的第一子数据是否大于或等于第二子数据,当第一子数据大于或等于第二子数据时,将第一子数据复位,并将复位后的第一子数据作为当前比较结果存储于第二存储装置以及第一存储装置中,之后返回继续从第一存储装置中读取第一子数据,直至完成该运算指令对应的相关运算操作。通过循环读取数据进行比较,将每次循环的比较结果不断地存储到第一存储装置中,对该第一存储装置实现独占访问,避免其它的处理器本文档来自技高网...

【技术保护点】
1.一种数据处理方法,其特征在于,所述方法包括:/n获取运算指令,其中,所述运算指令用于实现第一源操作数以及第二源操作数的累加运算,所述第一源操作数包括至少一个第一子数据,所述第二源操作数包括至少一个第二子数据;/n根据数据读取容量以及所述运算指令,按照预设的数据读取方式,从第一存储装置中读取所述第一子数据,并将当前读取的所述第一子数据存储至第二存储装置,其中,所述第一存储装置为片外存储装置,所述第二存储装置为片上存储装置;/n根据所述运算指令获取所述第二子数据,判断当前读取的所述第一子数据是否大于或等于所述第二子数据,当所述第一子数据大于或等于所述第二子数据时,将所述第一子数据复位,并将复位后的所述第一子数据作为当前比较结果存储至所述第二存储装置以及所述第一存储装置中;/n之后,返回根据数据读取容量以及所述运算指令,按照预设的数据读取方式,从第一存储装置中读取所述第一子数据的步骤,直至完成所述运算指令对应的运算操作。/n

【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法包括:
获取运算指令,其中,所述运算指令用于实现第一源操作数以及第二源操作数的累加运算,所述第一源操作数包括至少一个第一子数据,所述第二源操作数包括至少一个第二子数据;
根据数据读取容量以及所述运算指令,按照预设的数据读取方式,从第一存储装置中读取所述第一子数据,并将当前读取的所述第一子数据存储至第二存储装置,其中,所述第一存储装置为片外存储装置,所述第二存储装置为片上存储装置;
根据所述运算指令获取所述第二子数据,判断当前读取的所述第一子数据是否大于或等于所述第二子数据,当所述第一子数据大于或等于所述第二子数据时,将所述第一子数据复位,并将复位后的所述第一子数据作为当前比较结果存储至所述第二存储装置以及所述第一存储装置中;
之后,返回根据数据读取容量以及所述运算指令,按照预设的数据读取方式,从第一存储装置中读取所述第一子数据的步骤,直至完成所述运算指令对应的运算操作。


2.根据权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
当所述第一子数据小于所述第二子数据时,将所述第一子数据与预设值相加,并将相加后的所述第一子数据作为当前比较结果存储至所述第二存储装置以及所述第一存储装置中。


3.根据权利要求1所述的数据处理方法,其特征在于,所述判断当前读取的所述第一子数据是否大于或等于所述第二子数据的步骤,包括:
将当前读取的所述第一子数据与所述第二子数据进行对位比较,判断当前读取的所述第一子数据是否大于或等于所述第二子数据。


4.根据权利要求1至3中任一项所述的数据处理方法,其特征在于,所述第二源操作数为立即数或所述第二存储装置中存储的数据,所述方法还包括:
若所述第二源操作数为立即数,则复制所述立即数,复制获得的多个所述立即数作为所述第二子数据,所述第二子数据的数量与当前读取的所述第一子数据的数量相等;
若所述第二源操作数为所述第二存储装置中存储的数据,则从所述第二存储装置的预设存储地址中读取所述第二子数据,当前读取的所述第二子数据的数量与所述第一子数据的数量相等。


5.根据权利要求4所述的数据处理方法,其特征在于,所述方法还包括如下步骤:
根据所述运算指令,将所述源操作数A和/或所述源操作数B作为所述第二源操作数。


6.根据权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
每当将所述当前比较结果存储于所述第一存储装置中之后,将上一次读取的所述第一子数据的结束地址的下一位地址,作为当前读取的第一子数据的起始地址。


7.根据权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
所述当前比较结果存储于所述第一存储装置中时,所述当前比较结果的存储地址与所述当前读取的第一子数据的存储地址一致。


8.根据权利要求1所述的数据处理方法,其特征在于,所述将所述当前比较结果存储至所述第二存储装置以及所述第一存储装置中的步骤,包括:
将所述当前比较结果存储至所述第二存储装置中;
将所述第二存储装置中的所述当前比较结果存储至所述第一存储装置中。


9.根据权利要求1所述的数据处理方法,其特征在于,每当将所述当前比较结果存储至所述第一存储装置中之后,所述方法还包括如下步骤:
控制计数器累加一次或递减一次,之后,返回根据数据读取容量以及所述运算指令,按照预设的数据读取方式,从第一存储装置中读取所述第一子数据的步骤,直至所述计数器从初始值累加至目标循环次数,或所述计数器从所述目标循环次数递减为初始值,完成所述运算指令对应的运算操作。


10.根据权利要求1所述的数据处理方法,其特征在于,每当将所述当前比较结果存储至所述第一存储装置中之后,所述方法还包括如下步骤:
控制计数器累加一次或递减一次,之后,返回根据数据读取容量以及所述运算指令,按照预设的数据读取方式,从第一存储装置中读取所述第一子数据的步骤,直至所述第一源操作数中的多个所述第一子数据全部置零。


11.根据权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
根据所述运算指令,获得所述第一源操作数的数据大小;
根据所述第一源操作数的数据大小以及预设的拆分粒度,得到所述目标循环次数。


12.根据权利要求1所述的数据处理方法,其特征在于,
所述运算指令的指令格式,包括指令类别、指令类型、第一源操作数、第二源操作数、目标操作数及操作码;
所述...

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

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

1