[发明专利]数据处理方法、处理器、数据处理装置及存储介质有效
申请号: | 201811457851.3 | 申请日: | 2018-11-30 |
公开(公告)号: | CN111258645B | 公开(公告)日: | 2022-12-09 |
发明(设计)人: | 不公告发明人 | 申请(专利权)人: | 上海寒武纪信息科技有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06N3/063 |
代理公司: | 北京华进京联知识产权代理有限公司 11606 | 代理人: | 孙岩 |
地址: | 200120 上海市浦*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据处理 方法 处理器 装置 存储 介质 | ||
本申请涉及一种数据处理方法、处理器、数据处理装置及存储介质。所述数据处理方法包括:根据运算指令从第一存储装置中读取第一子数据,并将当前读取的第一子数据存储至第二存储装置中,获取第二子数据,并且判断当前读取的第一子数据是否大于第二子数据,当第一子数据大于第二子数据时,将第二子数据作为当前比较结果存储于第一存储装置中,之后返回继续从第一存储装置中读取第一子数据,直至完成该运算指令对应的相关运算操作。通过将大数据拆分成小数据进行循环运算处理,通过对操作数按照数据读取容量循环读取,使得运算处理时的能够容纳的数据大小满足要求,且加快运算速度。
技术领域
本申请涉及数据处理技术领域,特别是涉及一种数据处理方法、处理器、数据处理装置及存储介质。
背景技术
原子操作是指不会被线程调度机制打断的操作,这种操作一旦开始,就一直运行到结束,中间不会有任何线程切换(例如共享变量i执行累加,非原子操作情况下多个核同时i++的结果会出错)。在多核处理器系统当中,多个处理器核共享同一块存储空间,通常的数据传输技术可能无法保证原子性,即同一时间可能有多个处理器核访问同一地址。
在实际程序当中,运算结果存储在一个存储空间内,该存储空间具有一定的地址范围,由于该存储空间可能在运算完成之前被其他处理器核访问,传统的做法是先将该存储空间的数据读到存储单元,然后将运算结果存在该存储单元,指令运算结束之后将该存储单元的结果写回到该存储空间。然而,如果运算期间有其它的处理器核访问该存储空间,就会得到一个错误的结果,破坏这次累加的原子性。
发明内容
基于此,有必要针对上述技术问题,提供一种能够实现原子操作期间单独访问片外存储空间的数据处理方法、处理器、数据处理装置及存储介质。
一种数据处理方法,所述方法包括:
获取运算指令,其中,所述运算指令用于实现第一源操作数以及第二源操作数的减法运算,所述第一源操作数包括至少一个第一子数据,所述第二源操作数包括至少一个第二子数据;
根据数据读取容量以及所述运算指令,按照预设的数据读取方式,从第一存储装置中读取所述第一子数据,并将当前读取的所述第一子数据存储至第二存储装置,其中,所述第一存储装置为片外存储装置,所述第二存储装置为片上存储装置;
根据所述运算指令获取所述第二子数据,判断当前读取的所述第一子数据是否大于所述第二子数据,当所述第一子数据大于所述第二子数据时,将所述第二子数据作为当前比较结果存储至所述第二存储装置以及所述第一存储装置中;当所述第一子数据小于或等于所述第二子数据时,将所述第一子数据与第一预设值相减,并将相减后的所述第一子数据作为当前比较结果存储至所述第二存储装置以及所述第一存储装置中;
之后,返回根据数据读取容量以及所述运算指令,按照预设的数据读取方式,从第一存储装置中读取所述第一子数据的步骤,直至完成所述运算指令对应的运算操作。
在其中一个实施例中,所述方法还包括:
根据所述运算指令获取所述第二子数据,判断当前读取的所述第一子数据是否与第二预设值相等,当所述第一子数据与所述第二预设值相等时,将所述第二子数据作为当前比较结果存储至所述第二存储装置以及所述第一存储装置中。
在其中一个实施例中,所述方法还包括:
当所述第一子数据与所述第二预设值不相等时,将所述第一子数据与所述第一预设值相减,并将相减后的所述第一子数据作为当前比较结果存储至所述第二存储装置以及所述第一存储装置中。
在其中一个实施例中,每当将所述当前比较结果存储至所述第一存储装置中之后,所述方法还包括如下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海寒武纪信息科技有限公司,未经上海寒武纪信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811457851.3/2.html,转载请声明来源钻瓜专利网。