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