述第一进程的上下文数据由所述第一存储器中的所述第一存储地址所对应的区域转移至所述第二存储器中的所述第二存储地址所对应的区域;从而数据转移装置可以获取处理器配置的指示信息。例如:指示信息包括:a(10?20)、b (20?30),其中,a表示第一存储器的标识,b表示第二存储器的标识,a (10?20)表示第一进程的待转移上下文数据在第一存储器中存储地址为地址10?20,b(20?30)表示第一进程的待转移上下文数据在第二存储器中的存储地址为地址20?30。
[0031]可选地,处理器可以将指示信息中的第一进程的待转移上下文数据在第一存储器中的第一存储地址配置给数据转移装置中的控制寄存器;处理器可以将指示信息中的第一进程的待转移上下文数据中在第二存储器中的第二存储地址配置给数据转移装置中的配置寄存器。
[0032]S202、根据所述指示信息,在所述第一存储器中的所述第一存储地址所对应的区域中获取所述第一进程的待转移上下文数据。
[0033]本实施例中,在获取处理器的处理信息之后,根据该指示信息所指示的信息,在第一存储器中的第一存储地址所对应的区域获取该区域存储的数据,该数据即为第一进程的待转移上下文数据。
[0034]可选地,在处理器向数据转移装置配置指示信息之后,处理器可以将数据转移装置的读写信号置位,从而触发数据转移装置根据该指示信息进行数据转移。
[0035]S203、将所述获取的所述第一进程的待转移上下文数据转移至所述第二存储器中所述第二存储地址所对应的区域。
[0036]本实施例中,在获取第一进程的待转移上下文数据之后,根据该指示信息,将第一进程的待转移上下文数据转移至第二存储器中第二存储地址所对应的区域中,从而实现第一进程的切换。第一进程的待转移上下文数据转移成功后,第一存储器中的第一存储地址所对应的区域中不再存储该第一进程的待转移上下文数据,第二存储器中的第二存储地址所对应的区域中存储有第一进程的待转移上下文数据,这时所述第一进程的待转移上下文数据的存储地址为第二存储器中的第二存储地址。
[0037]在本实施例的第一种可行的实现方式中,第一存储器为寄存器,第二存储器为内存,第一进程为当前正在运行的进程;本实施例中,第一存储器为寄存器,即为处理器内部的寄存器,第二存储器为内存,即为处理器外部的存储器,当第一进程需要切换时,表示第一进程的待转移上下文数据需要调离寄存器而存储至内存中,其中,第一进程的待转移上下文数据可以是第一进程的所有上下文数据,也可以是第一进程的一部分上下文数据,处理器的指示信息可以包括:第一进程的待转移上下文数据在寄存器中的第一存储地址、第一进程的待转移上下文数据在内存中的第二存储地址,指示信息具体用于指示将所述第一进程的待转移上下文数据由寄存器中的所述第一存储地址所对应的区域转移至所述内存中的所述第二存储地址所对应的区域。第一进程的待转移上下文数据可以占用一个或多个寄存器,该第一存储地址可以为一个寄存器的标识或多个寄存器的标识,由于处理器中包括多个寄存器,寄存器的标识可以为寄存器的索引值,此时表示第一进程的待转移上下文数据为该标识对应的寄存器中存储的所有数据,则数据转移装置将该标识对应的寄存器中存储的所有数据均转移至内存中;或者,第一存储地址可以为一个寄存器或多个寄存器中的一部分存储地址,则第一存储地址为寄存器的标识+该寄存器中的一部分存储地址,例如??第I个寄存器的O?10的地址和第3个寄存器的O?15的地址,然后数据转移装置将第I个寄存器的O?10的地址对应的区域中存储的数据和第3个寄存器的O?15的地址对应的区域中存储的数据转移至内存中。上述的第一进程的待转移上下文数据的转移过程可以称为第一进程的保存。
[0038]可选地,第一传输通道为写通道,写通道表示第一进程的待转移上下文数据由寄存器传输至内存的通道。
[0039]在本实施例的第二种可行的实现方式中,第一存储器为内存,第二存储器为寄存器,第一进程为当前待运行的进程;本实施例中,当第一进程需要切换时,表示第一进程的待转移上下文数据需要调度至寄存器中,其中,第一进程的待转移上下文数据可以是第一进程的所有上下文数据,也可以是第一进程的一部分上下文数据,处理器的指示信息可以包括:第一进程的待转移上下文数据在内存中的第一存储地址、第一进程的待转移上下文数据在寄存器中的第二存储地址,指示信息具体用于指示将所述第一进程的待转移上下文数据由内存中的所述第一存储地址所对应的区域转移至所述寄存器中的所述第二存储地址所对应的区域。第一进程的待转移上下文数据可以转移至一个或多个寄存器中,该第二存储地址可以为一个寄存器的标识或多个寄存器的标识,由于处理器中包括多个寄存器,寄存器的标识可以为寄存器的索引值,此时表示第一进程的待转移上下文数据可以存储在该标识对应的寄存器中,则数据转移装置将内存中的第一进程的待转移上下文数据转移至该标识对应的寄存器中,例如:可以将第一进程的待转移上下文数据的一部分存储在第I个寄存器中,将另一部分存储在第2个寄存器中;或者,第二存储地址可以为一个寄存器或多个寄存器中的一部分存储地址,则第二存储地址为寄存器的标识+该寄存器中的一部分存储地址,例如:第I个寄存器的O?10的地址和第3个寄存器的O?15的地址,然后数据转移装置将内存中的第一进程的待转移上下文数据存储在第I个寄存器的O?10的地址对应的区域中和第3个寄存器的O?15的地址对应的区域中。上述的第一进程的待转移上下文数据的转移过程可以称为第一进程的恢复。
[0040]可选地,第一传输通道为读通道,读通道表示第一进程的待转移上下文数据由内存传输至寄存器的通道。
[0041]本发明实施例提供的数据转移方法,通过获取处理器的指示信息,所述指示信息包括所述第一进程的上下文数据在所述第一存储器中的第一存储地址、所述第一进程的上下文数据在所述第二存储器中的第二存储地址;根据所述指示信息,在所述第一存储器中的所述第一存储地址所对应的区域中获取所述第一进程的待转移上下文数据;以及将所述获取的所述第一进程的待转移上下文数据转移至所述第二存储器中所述第二存储地址所对应的区域。从而实现了第一进程的切换,而且第一进程的上下文数据的转移过程不需要处理器来操作,从而使得处理器能够有空余足够的资源来处理其它工作,提高了处理器的利用率。
[0042]图3为本发明数据转移方法实施例三的流程图,如图3所示,本实施例的方法可以数据转移装置来执行,该数据转移装置可以为:处理器中的DRA装置,本实施例是在图1所示的数据转移方法实施例的基础上,对本发明提供的数据转移方法进行详细说明,本实施例的方法可以包括:
[0043]S301、获取处理器的指示信息,所述指示信息包括所述第一进程的待转移上下文数据在所述第一存储器中的第一起始地址、所述第一进程的待转移上下文数据的长度、所述第一进程的待转移数据在所述第二存储器中的第二起始地址;所述指示信息具体用于指示将所述第一存储器中起始地址为所述第一起始地址所对应的区域中所述长度的所述第一进程的待转移上下文数据转移至所述第二存储器中起始地址为所述第二起始地址所对应的区域。
[0044]本实施例中,第一进程需要切换时,当前第一进程的待转移上下文数据存储在第一存储器中,即第一进程的待转移上下文数据需要由第一存储器转移至第二存储器时,处理器可以获知第一进程的待转移上下文数据在第一存储器中的第一起始地址,第一起始地址为第一进程的待转移上下文数据在第一存储器的起始地址,假设第一存储器的存储地址为O?100,则第一起始地址可以为第一存储器的存储地址O?100中的10,处理器也可以获知第一进程的待转移上下文数据的长度,例如20 ;处理器还可以获知第一进程的待转移上下文数据在第二存储器中的第二起始地址,第二起始地址为第一进程的待转移上下文数据存储在第二存储器中的起始地址,假设第二存储器的存储地址为O?50,则第二起始地址可以为第二存储器的存储地址O?50中的20。然后处理器可以向数据转移装置配置指示信息,该指示信息包括该第一进程的待转移上下文数据在第一存储器中的第一起始地址、该第一进程的待上下文数据的长度、该第一进程的待上下文数据在第二存储器中的第二起始地址,该指示信息具体用于指示将该长度的所述第一进程的待转移上下文数据由所述第一存储器中的所述第一起始地址所对应的区域转移至所述第二存储器中的所述第二起始地址所对应的区域;从而数据转移装置可以获取处理器配置的指示信息。例如:指示信息包括:a (10)、20、b (20),其中,a表示第一存储器的标识,b表示第二存储器的标识,a (10)表示第一进程的待转移上下文数据在第一存储器中的起始地址为地址10,20表示第一进程的待转移上下文数据的长度为20,b(20)表示第一进程的待转移上下文数据在第二存储器中的起始地址为地址20。可选地,处理器可以将指示信息中的第一进程的待转移上下文数据在第一存储器中的第一起始地址和第一进程的待转移上下文数据配置给数据转移装置中的控制寄存器;处理器可以将指示信息中的第一进程的待转移上下文数据中在第二存储器中的第二起始地址配置给数据转移装置中的配置寄存器。
[0045]S3