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





