1.一种数据压栈方法,其特征在于,包括:在压栈动作发生时,若存在未完成更新的上下文数据,则跳过所述未完成更新的上下文数据,并在其它上下文数据全部或部分压栈完成后再压栈所述未完成更新的上下文数据,包括:先按序压栈所有上下文数据,并在压栈到所述未完成更新的上下文数据时,若确定所述未完成更新的上下文数据仍未完成更新,则跳过所述未完成更新的上下文数据并压栈后续上下文数据,直至后续上下文数据压栈完成后再压栈所述未完成更新的上下文数据,若确定所述未完成更新的上下文数据已完成更新,则继续按序压栈所有上下文数据,其中,所述压栈所述未完成更新的上下文数据包括:若确定所述未完成更新的上下文数据已完成更新,则压栈完成更新后的上下文数据;若确定所述未完成更新的上下文数据未完成更新,则在完成更新后再压栈完成更新后的上下文数据;若未存在所述未完成更新的上下文数据,则按序压栈所有上下文数据。
2.根据权利要求1所述的数据压栈方法,其特征在于,所述跳过所述未完成更新的上下文数据,并在其它上下文数据全部或部分压栈完成后再压栈所述未完成更新的上下文数据,还包括:先按序压栈排序在所述未完成更新的上下文数据之后的上下文数据,再按序压栈排序在所述未完成更新的上下文数据之前的上下文数据,最后再压栈所述未完成更新的上下文数据。
3.根据权利要求1所述的数据压栈方法,其特征在于,所述跳过所述未完成更新的上下文数据,并在其它上下文数据全部或部分压栈完成后再压栈所述未完成更新的上下文数据,还包括:将所有上下文数据划分为多个数据区间;在确定所述未完成更新的上下文数据所处的数据区间后,先压栈其它数据区间对应的上下文数据,再压栈所述未完成更新的上下文数据所处的数据区间对应的上下文数据。
4.根据权利要求3所述的数据压栈方法,其特征在于,所述多个数据区间包括数据长度相同的第一数据区间和第二数据区间,且所述未完成更新的上下文数据的数据更新时长分别小于所述第一数据区间和所述第二数据区间的数据压栈时长,所述先压栈其它数据区间对应的上下文数据,再压栈所述未完成更新的上下文数据所处的数据区间对应的上下文数据,包括:当所述未完成更新的上下文数据处于所述第一数据区间时,先压栈所述第二数据区间对应的上下文数据,再压栈所述第一数据区间对应的上下文数据;当所述未完成更新的上下文数据处于所述第二数据区间时,先压栈所述第一数据区间对应的上下文数据,再压栈所述第二数据区间对应的上下文数据。
5.根据权利要求3所述的数据压栈方法,其特征在于,所述多个数据区间包括第三数据区间、第四数据区间和第五数据区间,所述第三数据区间和所述第四数据区间的数据长度相同,所述未完成更新的上下文数据处于所述第三数据区间或所述第四数据区间,且所述未完成更新的上下文数据的数据更新时长分别小于所述第三数据区间和所述第四数据区间的数据压栈时长。
6.根据权利要求5所述的数据压栈方法,其特征在于,所述先压栈其它数据区间对应的上下文数据,再压栈所述未完成更新的上下文数据所处的数据区间对应的上下文数据,包括:当所述未完成更新的上下文数据处于所述第三数据区间时,先压栈所述第四数据区间对应的上下文数据,再压栈所述第三数据区间对应的上下文数据,最后压栈所述第五数据区间对应的上下文数据;当所述未完成更新的上下文数据处于所述第四数据区间时,先压栈所述第三数据区间对应的上下文数据,再压栈所述第四数据区间对应的上下文数据,最后压栈所述第五数据区间对应的上下文数据。
7.根据权利要求1所述的数据压栈方法,其特征在于,所述上下文数据包括程序状态寄存器数据、定点寄存器数据、浮点寄存器数据和中断返回地址中的一种或多种。
8.一种数据压栈装置,其特征在于,包括:确定模块,用于在压栈动作发生时,确定未完成更新的上下文数据;压栈模块,用于通过所述确定模块确定存在未完成更新的上下文数据时,跳过所述未完成更新的上下文数据,并在其它上下文数据全部或部分压栈完成后再压栈所述未完成更新的上下文数据,以及在通过所述确定模块确定未存在所述未完成更新的上下文数据时,按序压栈所有上下文数据,包括:先按序压栈所有上下文数据,并在压栈到所述未完成更新的上下文数据时,若确定所述未完成更新的上下文数据仍未完成更新,则跳过所述未完成更新的上下文数据并压栈后续上下文数据,直至后续上下文数据压栈完成后再压栈所述未完成更新的上下文数据,若确定所述未完成更新的上下文数据已完成更新,则继续按序压栈所有上下文数据,其中,所述压栈所述未完成更新的上下文数据包括:若确定所述未完成更新的上下文数据已完成更新,则压栈完成更新后的上下文数据;若确定所述未完成更新的上下文数据未完成更新,则在完成更新后再压栈完成更新后的上下文数据。
9.根据权利要求8所述的数据压栈装置,其特征在于,所述压栈模块具体用于:先按序压栈排序在所述未完成更新的上下文数据之后的上下文数据,再按序压栈排序在所述未完成更新的上下文数据之前的上下文数据,最后再压栈所述未完成更新的上下文数据。
10.根据权利要求8所述的数据压栈装置,其特征在于,所述压栈模块具体用于:将所有上下文数据划分为多个数据区间,并在确定所述未完成更新的上下文数据所处的数据区间后,先压栈其它数据区间对应的上下文数据,再压栈所述未完成更新的上下文数据所处的数据区间对应的上下文数据。
11.一种芯片,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述数据压栈方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述数据压栈方法的步骤。