【技术实现步骤摘要】
数据处理方法、处理器、数据处理装置及存储介质
本申请涉及数据处理
,特别是涉及一种数据处理方法、处理器、数据处理装置及存储介质。
技术介绍
原子操作是指不会被线程调度机制打断的操作,这种操作一旦开始,就一直运行到结束,中间不会有任何线程切换(例如共享变量i执行累加,非原子操作情况下多个核同时i++的结果会出错)。在多核处理器系统当中,多个处理器核共享同一块存储空间,通常的数据传输技术可能无法保证原子性,即同一时间可能有多个处理器核访问同一地址。在实际程序当中,运算结果存储在一个存储空间内,该存储空间具有一定的地址范围,由于该存储空间可能在运算完成之前被其他处理器核访问,传统的做法是先将该存储空间的数据读到存储单元,然后将运算结果存在该存储单元,指令运算结束之后将该存储单元的结果写回到该存储空间。然而,如果运算期间有其它的处理器核访问该存储空间,就会得到一个错误的结果,破坏这次累加的原子性。
技术实现思路
基于此,有必要针对上述技术问题,提供一种能够实现原子操作期间单独访问片外存储空间的数据处理方法、处理器、数据处理装置及存储介质。一种数据处理方法,所述方法包括:获取运算指令,其中,所述运算指令用于实现第一源操作数以及第二源操作数的加法运算,所述第一源操作数包括至少一个第一子数据,所述第二源操作数包括至少一个第二子数据;根据数据读取容量以及所述运算指令,按照预设的数据读取方式,从第一存储装置中读取所述第一子数据,并将当前读取的所述第一子数据存储至第二存储装置,其 ...
【技术保护点】
1.一种数据处理方法,其特征在于,所述方法包括:/n获取运算指令,其中,所述运算指令用于实现第一源操作数以及第二源操作数的加法运算,所述第一源操作数包括至少一个第一子数据,所述第二源操作数包括至少一个第二子数据;/n根据数据读取容量以及所述运算指令,按照预设的数据读取方式,从第一存储装置中读取所述第一子数据,并将当前读取的所述第一子数据存储至第二存储装置,其中,所述第一存储装置为片外存储装置,所述第二存储装置为片上存储装置;/n根据所述运算指令获取所述第二子数据,将当前读取的所述第一子数据与所述第二子数据相加得到当前运算结果,将所述当前运算结果存储至所述第二存储装置以及所述第一存储装置中;/n之后,返回根据数据读取容量以及所述运算指令,按照预设的数据读取方式,从第一存储装置中读取所述第一子数据的步骤,直至完成所述运算指令对应的运算操作。/n
【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法包括:
获取运算指令,其中,所述运算指令用于实现第一源操作数以及第二源操作数的加法运算,所述第一源操作数包括至少一个第一子数据,所述第二源操作数包括至少一个第二子数据;
根据数据读取容量以及所述运算指令,按照预设的数据读取方式,从第一存储装置中读取所述第一子数据,并将当前读取的所述第一子数据存储至第二存储装置,其中,所述第一存储装置为片外存储装置,所述第二存储装置为片上存储装置;
根据所述运算指令获取所述第二子数据,将当前读取的所述第一子数据与所述第二子数据相加得到当前运算结果,将所述当前运算结果存储至所述第二存储装置以及所述第一存储装置中;
之后,返回根据数据读取容量以及所述运算指令,按照预设的数据读取方式,从第一存储装置中读取所述第一子数据的步骤,直至完成所述运算指令对应的运算操作。
2.根据权利要求1所述的数据处理方法,其特征在于,所述将当前读取的所述第一子数据与所述第二子数据相加得到当前运算结果的步骤,包括:
将当前读取的所述第一子数据与所述第二子数据进行对位相加,得到所述当前运算结果。
3.根据权利要求1或2所述的数据处理方法,其特征在于,所述第二源操作数为立即数或所述第二存储装置中存储的数据,所述方法还包括:
若所述第二源操作数为立即数,则复制所述立即数,复制获得的多个所述立即数作为所述第二子数据,所述第二子数据的数量与当前读取的所述第一子数据的数量相等;
若所述第二源操作数为所述第二存储装置中存储的数据,则从所述第二存储装置的预设存储地址中读取所述第二子数据,当前读取的所述第二子数据的数量与所述第一子数据的数量相等。
4.根据权利要求3所述的数据处理方法,其特征在于,所述方法还包括如下步骤:
根据所述运算指令,将所述源操作数A和/或所述源操作数B作为所述第二源操作数。
5.根据权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
每当将所述当前运算结果存储于所述第一存储装置中之后,将上一次读取的所述第一子数据的结束地址的下一位地址,作为当前读取的第一子数据的起始地址。
6.根据权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
所述当前运算结果存储于所述第一存储装置中时,所述当前运算结果的存储地址与所述当前读取的第一子数据的存储地址一致。
7.根据权利要求1所述的数据处理方法,其特征在于,所述将所述当前运算结果存储至所述第二存储装置以及所述第一存储装置中的步骤,包括:
将所述当前运算结果存储至所述第二存储装置中;
将所述第二存储装置中的所述当前运算结果存储至所述第一存储装置中。
8.根据权利要求1所述的数据处理方法,其特征在于,每当将所述当前运算结果存储至所述第一存储装置中之后,所述方法还包括如下步骤:
控制计数器累加一次或递减一次,之后,返回根据数据读取容量以及所述运算指令,按照预设的数据读取方式,从第一存储装置中读取所述第一子数据的步骤,直至所述计数器从初始值累加至目标循环次数,或所述计数器从所述目标循环次数递减为初始值,完成所述运算指令对应的运算操作。
9.根据权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
根据所述运算指令,获得所述第一源操作数的数据大小;
根据所述第一源操作数的数据大小以及预设的拆分粒度,得到所述目标循环次数。
10.根据权利要求1所述的数据处理方法,其特征在于,
所述运算指令的指令格式,包括指令类别、指令类型、第一源操作数、第二源操作数、目标操作数及操作码;
所述指令类别用于确定所述运算指令是否为原子操作运算指令;
所述指令类型用于确定所述运算指令的运算类型;
所述操作码用于...
【专利技术属性】
技术研发人员:不公告发明人,
申请(专利权)人:上海寒武纪信息科技有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。