CN105573831B - 数据转移方法和装置 - Google Patents

数据转移方法和装置 Download PDF

Info

Publication number
CN105573831B
CN105573831B CN201410538344.8A CN201410538344A CN105573831B CN 105573831 B CN105573831 B CN 105573831B CN 201410538344 A CN201410538344 A CN 201410538344A CN 105573831 B CN105573831 B CN 105573831B
Authority
CN
China
Prior art keywords
memory
transferred
context data
instruction information
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410538344.8A
Other languages
English (en)
Other versions
CN105573831A (zh
Inventor
孟小甫
高翔
司志莹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Loongson Technology Corp Ltd
Original Assignee
Loongson Technology Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Loongson Technology Corp Ltd filed Critical Loongson Technology Corp Ltd
Priority to CN201410538344.8A priority Critical patent/CN105573831B/zh
Publication of CN105573831A publication Critical patent/CN105573831A/zh
Application granted granted Critical
Publication of CN105573831B publication Critical patent/CN105573831B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Bus Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本发明提供一种数据转移方法和装置,其中,该方法包括:获取处理器的指示信息,所述指示信息用于指示将第一进程的待转移上下文数据由第一存储器转移至第二存储器;根据所述指示信息,将所述第一进程的待转移上下文数据由所述第一存储器转移至所述第二存储器。从而实现了第一进程的切换,而且第一进程的上下文数据的转移过程不需要处理器来操作,从而减少了进程切换所需时间,提高进程切换效率,并且使得处理器能够有空余足够的资源来处理其它工作,提高了处理器的利用率。

Description

数据转移方法和装置
技术领域
本发明涉及芯片技术领域,尤其涉及一种数据转移方法和装置。
背景技术
计算机系统的性能在不断提高,多核处理器和并行程序设计提高了计算机的处理能力,直接的效果是流畅的用户体验。同时最新处理器设计越来越多的采用向量化技术,以提高数据的并行处理能力和吞吐量,而且处理器中的寄存器数量和位宽都在不断的增加,出现了256位、512位,甚至更多位宽的寄存器,寄存器的数量已经达到256个甚至更多,使得进程切换时非常频繁。
目前计算机操作系统中通过一系列访存指令,例如:load和store指令,完成进程切换,即完成处理器内部寄存器和外部存储器之间的进程的上下文数据搬运,具体地,将处理器正在运行的进程的上下文数据转移至进程的堆栈空间中,还可以将待运行的进程的上下文数据转移至处理器内部寄存器堆中,以实现进程的切换。
然而,现有技术中需要处理器来完成进程的切换,导致进程切换时占用了处理器的资源,使得处理器没有足够的资源去处理其它工作,从而降低了处理器的利用率。
发明内容
本发明提供一种数据转移方法和装置,用于实现了进程的切换、提高处理器的利用率。
第一方面,本发明提供一种数据转移方法,包括:
获取处理器的指示信息,所述指示信息用于指示将第一进程的待转移上下文数据由第一存储器转移至第二存储器;
根据所述指示信息,将所述第一进程的待转移上下文数据由所述第一存储器转移至所述第二存储器。
第二方面,本发明提供一种数据转移装置,包括:
获取单元,用于获取处理器的指示信息,所述指示信息用于指示将第一进程的待转移上下文数据由第一存储器转移至第二存储器;
转移单元,用于根据所述获取单元获取的所述指示信息,将所述第一进程的待转移上下文数据由所述第一存储器转移至所述第二存储器。
本发明提供的数据转移方法和装置,通过获取处理器的指示信息,所述指示信息用于指示将第一进程的待转移上下文数据由第一存储器转移至第二存储器;根据所述指示信息,将所述第一进程的待转移上下文数据由所述第一存储器转移至所述第二存储器。从而实现了第一进程的切换,而且第一进程的上下文数据的转移过程不需要处理器来操作,从而使得处理器能够有空余足够的资源来处理其它工作,提高了处理器的利用率。
附图说明
图1为本发明数据转移方法实施例一的流程图;
图2为本发明数据转移方法实施例二的流程图;
图3为本发明数据转移方法实施例三的流程图;
图4为本发明数据转移装置实施例一的结构示意图;
图5为本发明数据转移装置实施例二的结构示意图。
具体实施方式
图1为本发明数据转移方法实施例一的流程图,如图1所示,本实施例的方法可以数据转移装置来执行,该数据转移装置可以为:处理器中的直接寄存器访问(DirectRegister Access,简称:DRA)装置,本实施例的方法可以包括:
S101、获取处理器的指示信息,所述指示信息用于指示将第一进程的待转移上下文数据由第一存储器转移至第二存储器。
本实施例中,第一进程需要切换时,当前第一进程的待转移上下文数据存储在第一存储器中,即第一进程的待转移上下文数据需要由第一存储器转移至第二存储器时,处理器可以向数据转移装置配置指示信息,该指示信息用于指示将第一进程的待转移上下文数据由第一存储器转移至第二存储器;从而数据转移装置可以获取处理器配置的指示信息。
S102、根据所述指示信息,将所述第一进程的待转移上下文数据由所述第一存储器转移至所述第二存储器。
本实施例中,在获取处理器的处理信息之后,根据该指示信息所指示的信息,将存储在第一存储器中的第一进程的待转移上下文数据转移存储至第二存储器中,从而实现第一进程的切换,第一进程的切换表示第一进程的相关数据由第一存储器转移至第二存储器。转移成功后,第一存储器中不再存储该第一进程的待转移上下文数据,第二存储器存储有第一进程的待转移上下文数据。
可选地,所述根据所述指示信息,将所述第一进程的待转移上下文数据由所述第一存储器移动至所述第二存储器,包括:根据所述指示信息,将所述第一进程的待转移上下文数据通过第一传输通道由第一存储器转移至第二存储器,所述第一传输通道为所述处理器配置的所述第一存储器与所述第二存储器之间所述第一进程的待转移上下文数据传输的通道。具体地,处理器在向数据转移装置配置指示信息之后,处理器可以在第一存储器与第二存储器之间配置第一传输通道,该第一传输通道用于传输第一存储器与第二存储器之间的第一进程的待转移上下文数据。然后在数据转移装置实现数据转移的过程中,通过该第一传输通道将第一进程的待转移上下文数据由第一存储器转移至第二存储器。
可选地,所述第一传输通道的个数为多个,即处理器可以在第一存储器与第二存储器之间配置有多个第一传输通道,然后数据转移装置可以将第一进程的待转移上下文数据通过多个第一传输通道由第一存储器转移至第二存储器。由于第一进程的待转移上下文数据可以通过多个传输通道由第一存储器转移至第二存储器,从而可以降低数据转移所需时间,提高进程切换的效率。
可选地,所述指示信息还包括所述第一传输通道的标识,所述指示信息具体用于指示将所述第一进程的待转移上下文数据通过所述第一传输通道由所述第一存储器转移至所述第二存储器。具体地,处理器可以在第一存储器与第二存储器之间配置有多个传输通道,处理器可以选择其中一个或多个传输通道来转移第一进程的待转移上下文数据。若第一传输通道的个数为1个,即处理器选择一个传输通道进行第一进程的上下文数据的转移时,则第一传输通道的标识为处理器选择的一个传输通道的标识,然后数据转移装置将第一进程的待转移上下文数据通过该第一传输通道由第一存储器转移至第二存储器。若第一传输通道的个数为多个,即处理器选择多个传输通道来转移第一进程的待转移上下文数据,以两个为例进行说明,第一传输通道的标识为这两个传输通道的标识,然后数据转移装置将第一进程的待转移上下文数据的一部分通过其中一个传输通道由第一存储器转移至第二存储器,将第一进程的待转移上下文数据的另一部分通过其中另一个传输通道由第一存储器转移至第二存储器,从而实现第一进程的待转移上下文数据可以通过多个通道并行由第一存储器转移至第二存储器,从而可以提高进程的切换效率。
可选地,所述根据所述指示信息,将所述第一进程的待转移上下文数据由所述第一存储器转移至所述第二存储器之后,还包括:向所述处理器通知所述第一进程的待转移上下文数据已成功转移。从而处理器根据数据转移装置的通知获知第一进程的待转移上下文数据已成功转移。
本发明实施例提供的数据转移方法,通过获取处理器的指示信息,所述指示信息用于指示将第一进程的待转移上下文数据由第一存储器转移至第二存储器;根据所述指示信息,将所述第一进程的待转移上下文数据由所述第一存储器转移至所述第二存储器。从而实现了第一进程的切换,而且第一进程的上下文数据的转移过程不需要处理器来操作,从而使得处理器能够有空余足够的资源来处理其它工作,提高了处理器的利用率。
图2为本发明数据转移方法实施例二的流程图,如图2所示,本实施例的方法可以数据转移装置来执行,该数据转移装置可以为:处理器中的DRA装置,本实施例是在图1所示的数据转移方法实施例的基础上,对本发明提供的数据转移方法进行详细说明,本实施例的方法可以包括:
S201、获取处理器的指示信息,所述指示信息包括所述第一进程的上下文数据在所述第一存储器中的第一存储地址、所述第一进程的上下文数据在所述第二存储器中的第二存储地址,所述指示信息用于指示将所述第一进程的上下文数据由所述第一存储器中的所述第一存储地址所对应的区域转移至所述第二存储器中的所述第二存储地址所对应的区域。
本实施例中,第一进程需要切换时,当前第一进程的待转移上下文数据存储在第一存储器中,即第一进程的待转移上下文数据需要由第一存储器转移至第二存储器时,处理器可以获知第一进程的待转移上下文数据在第一存储器中的第一存储地址,假设第一存储器的存储地址为0~100,则第一存储地址可以为第一存储器的存储地址0~100中的10~20,处理器也可以获知第一进程的待转移上下文数据在第二存储器中的第二存储地址,假设第二存储器的存储地址为0~50,则第二存储地址可以为第二存储器的存储地址0~50中的20~30。然后处理器可以向数据转移装置配置指示信息,该指示信息包括该第一进程的待转移上下文数据在第一存储器中的第一存储地址、该第一进程的待上下文数据在第二存储器中的第二存储地址,该指示信息具体用于指示将所述第一进程的上下文数据由所述第一存储器中的所述第一存储地址所对应的区域转移至所述第二存储器中的所述第二存储地址所对应的区域;从而数据转移装置可以获取处理器配置的指示信息。例如:指示信息包括:a(10~20)、b(20~30),其中,a表示第一存储器的标识,b表示第二存储器的标识,a(10~20)表示第一进程的待转移上下文数据在第一存储器中存储地址为地址10~20,b(20~30)表示第一进程的待转移上下文数据在第二存储器中的存储地址为地址20~30。
可选地,处理器可以将指示信息中的第一进程的待转移上下文数据在第一存储器中的第一存储地址配置给数据转移装置中的控制寄存器;处理器可以将指示信息中的第一进程的待转移上下文数据中在第二存储器中的第二存储地址配置给数据转移装置中的配置寄存器。
S202、根据所述指示信息,在所述第一存储器中的所述第一存储地址所对应的区域中获取所述第一进程的待转移上下文数据。
本实施例中,在获取处理器的处理信息之后,根据该指示信息所指示的信息,在第一存储器中的第一存储地址所对应的区域获取该区域存储的数据,该数据即为第一进程的待转移上下文数据。
可选地,在处理器向数据转移装置配置指示信息之后,处理器可以将数据转移装置的读写信号置位,从而触发数据转移装置根据该指示信息进行数据转移。
S203、将所述获取的所述第一进程的待转移上下文数据转移至所述第二存储器中所述第二存储地址所对应的区域。
本实施例中,在获取第一进程的待转移上下文数据之后,根据该指示信息,将第一进程的待转移上下文数据转移至第二存储器中第二存储地址所对应的区域中,从而实现第一进程的切换。第一进程的待转移上下文数据转移成功后,第一存储器中的第一存储地址所对应的区域中不再存储该第一进程的待转移上下文数据,第二存储器中的第二存储地址所对应的区域中存储有第一进程的待转移上下文数据,这时所述第一进程的待转移上下文数据的存储地址为第二存储器中的第二存储地址。
在本实施例的第一种可行的实现方式中,第一存储器为寄存器,第二存储器为内存,第一进程为当前正在运行的进程;本实施例中,第一存储器为寄存器,即为处理器内部的寄存器,第二存储器为内存,即为处理器外部的存储器,当第一进程需要切换时,表示第一进程的待转移上下文数据需要调离寄存器而存储至内存中,其中,第一进程的待转移上下文数据可以是第一进程的所有上下文数据,也可以是第一进程的一部分上下文数据,处理器的指示信息可以包括:第一进程的待转移上下文数据在寄存器中的第一存储地址、第一进程的待转移上下文数据在内存中的第二存储地址,指示信息具体用于指示将所述第一进程的待转移上下文数据由寄存器中的所述第一存储地址所对应的区域转移至所述内存中的所述第二存储地址所对应的区域。第一进程的待转移上下文数据可以占用一个或多个寄存器,该第一存储地址可以为一个寄存器的标识或多个寄存器的标识,由于处理器中包括多个寄存器,寄存器的标识可以为寄存器的索引值,此时表示第一进程的待转移上下文数据为该标识对应的寄存器中存储的所有数据,则数据转移装置将该标识对应的寄存器中存储的所有数据均转移至内存中;或者,第一存储地址可以为一个寄存器或多个寄存器中的一部分存储地址,则第一存储地址为寄存器的标识+该寄存器中的一部分存储地址,例如:第1个寄存器的0~10的地址和第3个寄存器的0~15的地址,然后数据转移装置将第1个寄存器的0~10的地址对应的区域中存储的数据和第3个寄存器的0~15的地址对应的区域中存储的数据转移至内存中。上述的第一进程的待转移上下文数据的转移过程可以称为第一进程的保存。
可选地,第一传输通道为写通道,写通道表示第一进程的待转移上下文数据由寄存器传输至内存的通道。
在本实施例的第二种可行的实现方式中,第一存储器为内存,第二存储器为寄存器,第一进程为当前待运行的进程;本实施例中,当第一进程需要切换时,表示第一进程的待转移上下文数据需要调度至寄存器中,其中,第一进程的待转移上下文数据可以是第一进程的所有上下文数据,也可以是第一进程的一部分上下文数据,处理器的指示信息可以包括:第一进程的待转移上下文数据在内存中的第一存储地址、第一进程的待转移上下文数据在寄存器中的第二存储地址,指示信息具体用于指示将所述第一进程的待转移上下文数据由内存中的所述第一存储地址所对应的区域转移至所述寄存器中的所述第二存储地址所对应的区域。第一进程的待转移上下文数据可以转移至一个或多个寄存器中,该第二存储地址可以为一个寄存器的标识或多个寄存器的标识,由于处理器中包括多个寄存器,寄存器的标识可以为寄存器的索引值,此时表示第一进程的待转移上下文数据可以存储在该标识对应的寄存器中,则数据转移装置将内存中的第一进程的待转移上下文数据转移至该标识对应的寄存器中,例如:可以将第一进程的待转移上下文数据的一部分存储在第1个寄存器中,将另一部分存储在第2个寄存器中;或者,第二存储地址可以为一个寄存器或多个寄存器中的一部分存储地址,则第二存储地址为寄存器的标识+该寄存器中的一部分存储地址,例如:第1个寄存器的0~10的地址和第3个寄存器的0~15的地址,然后数据转移装置将内存中的第一进程的待转移上下文数据存储在第1个寄存器的0~10的地址对应的区域中和第3个寄存器的0~15的地址对应的区域中。上述的第一进程的待转移上下文数据的转移过程可以称为第一进程的恢复。
可选地,第一传输通道为读通道,读通道表示第一进程的待转移上下文数据由内存传输至寄存器的通道。
本发明实施例提供的数据转移方法,通过获取处理器的指示信息,所述指示信息包括所述第一进程的上下文数据在所述第一存储器中的第一存储地址、所述第一进程的上下文数据在所述第二存储器中的第二存储地址;根据所述指示信息,在所述第一存储器中的所述第一存储地址所对应的区域中获取所述第一进程的待转移上下文数据;以及将所述获取的所述第一进程的待转移上下文数据转移至所述第二存储器中所述第二存储地址所对应的区域。从而实现了第一进程的切换,而且第一进程的上下文数据的转移过程不需要处理器来操作,从而使得处理器能够有空余足够的资源来处理其它工作,提高了处理器的利用率。
图3为本发明数据转移方法实施例三的流程图,如图3所示,本实施例的方法可以数据转移装置来执行,该数据转移装置可以为:处理器中的DRA装置,本实施例是在图1所示的数据转移方法实施例的基础上,对本发明提供的数据转移方法进行详细说明,本实施例的方法可以包括:
S301、获取处理器的指示信息,所述指示信息包括所述第一进程的待转移上下文数据在所述第一存储器中的第一起始地址、所述第一进程的待转移上下文数据的长度、所述第一进程的待转移数据在所述第二存储器中的第二起始地址;所述指示信息具体用于指示将所述第一存储器中起始地址为所述第一起始地址所对应的区域中所述长度的所述第一进程的待转移上下文数据转移至所述第二存储器中起始地址为所述第二起始地址所对应的区域。
本实施例中,第一进程需要切换时,当前第一进程的待转移上下文数据存储在第一存储器中,即第一进程的待转移上下文数据需要由第一存储器转移至第二存储器时,处理器可以获知第一进程的待转移上下文数据在第一存储器中的第一起始地址,第一起始地址为第一进程的待转移上下文数据在第一存储器的起始地址,假设第一存储器的存储地址为0~100,则第一起始地址可以为第一存储器的存储地址0~100中的10,处理器也可以获知第一进程的待转移上下文数据的长度,例如20;处理器还可以获知第一进程的待转移上下文数据在第二存储器中的第二起始地址,第二起始地址为第一进程的待转移上下文数据存储在第二存储器中的起始地址,假设第二存储器的存储地址为0~50,则第二起始地址可以为第二存储器的存储地址0~50中的20。然后处理器可以向数据转移装置配置指示信息,该指示信息包括该第一进程的待转移上下文数据在第一存储器中的第一起始地址、该第一进程的待上下文数据的长度、该第一进程的待上下文数据在第二存储器中的第二起始地址,该指示信息具体用于指示将该长度的所述第一进程的待转移上下文数据由所述第一存储器中的所述第一起始地址所对应的区域转移至所述第二存储器中的所述第二起始地址所对应的区域;从而数据转移装置可以获取处理器配置的指示信息。例如:指示信息包括:a(10)、20、b(20),其中,a表示第一存储器的标识,b表示第二存储器的标识,a(10)表示第一进程的待转移上下文数据在第一存储器中的起始地址为地址10,20表示第一进程的待转移上下文数据的长度为20,b(20)表示第一进程的待转移上下文数据在第二存储器中的起始地址为地址20。可选地,处理器可以将指示信息中的第一进程的待转移上下文数据在第一存储器中的第一起始地址和第一进程的待转移上下文数据配置给数据转移装置中的控制寄存器;处理器可以将指示信息中的第一进程的待转移上下文数据中在第二存储器中的第二起始地址配置给数据转移装置中的配置寄存器。
S302、根据所述指示信息,在所述第一存储器中起始地址为所述第一起始地址所对应的区域中获取所述长度的所述第一进程的待转移上下文数据。
本实施例中,在获取处理器的处理信息之后,根据该指示信息所指示的信息,在第一存储器中的起始地址为第一起始地址所对应的区域中获取所述长度的数据,该数据即为第一进程的待转移上下文数据。
可选地,在处理器向数据转移装置配置指示信息之后,处理器可以将数据转移装置的读写信号置位,从而触发数据转移装置根据该指示信息进行数据转移。
S303、将所述获取的所述长度的所述第一进程的待转移上下文数据转移至所述第二存储器中起始地址为所述第二起始地址所对应的区域。
本实施例中,在获取第一进程的待转移上下文数据之后,根据该指示信息,将所述获取的所述长度的所述第一进程的待转移上下文数据转移至所述第二存储器中起始地址为所述第二起始地址所对应的区域中,从而实现第一进程的切换。第一进程的待转移上下文数据转移成功后,在第一存储器中的起始地址为第一起始地址所对应的区域中不再存储所述长度的该第一进程的待转移上下文数据,在第二存储器中的起始地址为第二起始地址所对应的区域中存储有所述长度的第一进程的待转移上下文数据,这时所述第一进程的待转移上下文数据的存储的起始地址为第二存储器中的第二起始地址。
在本实施例的第一种可行的实现方式中,第一存储器为寄存器,第二存储器为内存,第一进程为当前正在运行的进程;当第一进程需要切换时,表示第一进程的待转移上下文数据需要调离寄存器而存储至内存中,其中,第一进程的待转移上下文数据可以是第一进程的所有上下文数据,也可以是第一进程的一部分上下文数据,处理器的指示信息可以包括:第一进程的待转移上下文数据在寄存器中的第一起始地址、第一进程的待转移上下文数据的长度、第一进程的待转移上下文数据在内存中的第二起始地址,指示信息具体用于指示在寄存器中的起始地址为第一起始地址所对应的区域中将所述长度的第一进程的待转移上下文数据转移至内存中起始地址为所述第二起始地址所对应的区域。第一进程的待转移上下文数据可以占用一个或多个寄存器,该第一起始地址可以为寄存器的标识+第一进程的待转移上下文数据在该寄存器中的起始地址,由于处理器中包括多个寄存器,寄存器的标识可以为寄存器的索引值。
若第一进程的待转移上下文数据存储在一个寄存器中,则第一起始地址例如可以为1(10),表示第1个寄存器中的地址10,长度为20,数据转移装置可以将第1个寄存器中起始地址为地址10所对应的区域中存储的将长度为20的数据转移至内存中起始地址为第二存储地址所对应的区域中;若第一进程的待转移上下文数据存储在多个寄存器中,例如两个,则第一起始地址例如可以为:1(10)和3(20),3(20)表示第3个寄存器中的地址20,长度可以分别为10和20,第一个长度数据10表示从第1个寄存器中获取的数据长度为10,第一个长度数据20表示从第3个寄存器中获取的数据长度为20,数据转移装置可以将第1个寄存器中起始地址为地址10所对应的区域中存储的长度为10的数据和第3个寄存器中起始地址为地址20所对应的区域中存储的长度为20的数据转移至内存中起始地址为第二存储地址所对应的区域中。上述的第一进程的待转移上下文数据的转移过程可以称为第一进程的保存。
可选地,第一传输通道为写通道,写通道表示第一进程的待转移上下文数据由寄存器传输至内存的通道。
在本实施例的第二种可行的实现方式中,第一存储器为内存,第二存储器为寄存器,第一进程为当前待运行的进程;本实施例中,当第一进程需要切换时,表示第一进程的待转移上下文数据需要调度至寄存器中,其中,第一进程的待转移上下文数据可以是第一进程的所有上下文数据,也可以是第一进程的一部分上下文数据,处理器的指示信息可以包括:第一进程的待转移上下文数据在内存中的第一起始地址、第一进程的待转移上下文数据在寄存器中的第二起始地址,指示信息具体用于指示在寄存器中的起始地址为第一起始地址所对应的区域中将所述长度的第一进程的待转移上下文数据转移至内存中起始地址为所述第二起始地址所对应的区域。第一进程的待转移上下文数据可以转移至一个或多个寄存器中,该第二起始地址可以为一个寄存器的标识+第一进程的待转移上下文数据在该寄存器中的起始地址,由于处理器中包括多个寄存器,寄存器的标识可以为寄存器的索引值。
若将第一进程的待转移上下文数据转移至一个寄存器中,则第二起始地址例如可以为1(10),表示第1个寄存器中的地址10,数据转移装置可以将第一进程的待转移上下文数据转移至第1个寄存器中起始地址为地址10所对应的区域中;若将第一进程的待转移上下文数据存储至多个寄存器中,例如两个,则第二起始地址例如可以为:1(10)和3(20),3(20)表示第3个寄存器中的地址20,数据转移装置可以将第一进程的待转移上下文数据的一部分转移至第1个寄存器中起始地址为地址10所对应的区域中,将第一进程的待转移上下文数据的另一部分转移至第3个寄存器中起始地址为地址20所对应的区域中。上述的第一进程的待转移上下文数据的转移过程可以称为第一进程的恢复。
可选地,第一传输通道为读通道,读通道表示第一进程的待转移上下文数据由内存传输至寄存器的通道。
本发明实施例提供的数据转移方法,通过获取处理器的指示信息,所述指示信息包括所述第一进程的待转移上下文数据在所述第一存储器中的第一起始地址、所述第一进程的待转移上下文数据的长度、所述第一进程的待转移数据在所述第二存储器中的第二起始地址;根据所述指示信息,在所述第一存储器中起始地址为所述第一起始地址所对应的区域中获取所述长度的所述第一进程的待转移上下文数据,并将所述获取的所述长度的所述第一进程的待转移上下文数据转移至所述第二存储器中起始地址为所述第二起始地址所对应的区域。从而实现了第一进程的切换,而且第一进程的上下文数据的转移过程不需要处理器来操作,从而使得处理器能够有空余足够的资源来处理其它工作,提高了处理器的利用率。
图4为本发明数据转移装置实施例一的结构示意图,如图4所示,本实施例的装置可以包括:获取单元11和转移单元12,其中,获取单元11用于获取处理器的指示信息,所述指示信息用于指示将第一进程的待转移上下文数据由第一存储器转移至第二存储器;转移单元12用于根据获取单元11获取的所述指示信息,将所述第一进程的待转移上下文数据由所述第一存储器转移至所述第二存储器。
本实施例的装置,可以用于执行本发明上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图5为本发明数据转移装置实施例二的结构示意图,如图5所示,本实施例的装置在图4所示装置结构的基础上,进一步地,在第一种可行的实现方式中,获取单元11获取的所述指示信息包括所述第一进程的待转移上下文数据在所述第一存储器中的第一存储地址、所述第一进程的待转移上下文数据在所述第二存储器中的第二存储地址;所述指示信息具体用于指示将所述第一进程的待转移上下文数据由所述第一存储器中的所述第一存储地址所对应的区域转移至所述第二存储器中的所述第二存储地址所对应的区域;转移单元12具体用于:根据所述指示信息,在所述第一存储器中的所述第一存储地址所对应的区域中获取所述第一进程的待转移上下文数据;将所述获取的所述第一进程的待转移上下文数据转移至所述第二存储器中所述第二存储地址所对应的区域。
在第二种可行的实现方式中,获取单元11获取的所述指示信息包括所述第一进程的待转移上下文数据在所述第一存储器中的第一起始地址、所述第一进程的待转移上下文数据的长度、所述第一进程的待转移数据在所述第二存储器中的第二起始地址;所述指示信息具体用于指示将所述第一存储器中起始地址为所述第一起始地址所对应的区域中所述长度的所述第一进程的待转移上下文数据转移至所述第二存储器中起始地址为所述第二起始地址所对应的区域;转移单元12具体用于:根据所述指示信息,在所述第一存储器中起始地址为所述第一起始地址所对应的区域中获取所述长度的所述第一进程的待转移上下文数据;将所述获取的所述长度的所述第一进程的待转移上下文数据转移至所述第二存储器中起始地址为所述第二起始地址所对应的区域。
可选地,转移单元12具体用于根据所述指示信息,将所述第一进程的待转移上下文数据通过第一传输通道由第一存储器转移至第二存储器,所述第一传输通道为所述处理器配置的所述第一存储器与所述第二存储器之间所述第一进程的待转移上下文数据传输的通道。
可选地,转移单元12具体用于根据所述指示信息,将所述第一进程的待转移上下文数据通过多个所述第一传输通道由第一存储器转移至第二存储器。
可选地,所述第一存储器为寄存器,所述第二存储器为内存,所述第一进程为当前正在运行的进程,所述第一传输通道为写通道;或者,所述第一存储器为内存,所述第二存储器为寄存器,所述第一进程为当前待运行的进程,所述第一传输通道为读通道。
可选地,获取单元11获取的所述指示信息还包括所述第一传输通道的标识,所述指示信息具体用于指示将所述第一进程的待转移上下文数据通过所述第一传输通道由所述第一存储器转移至所述第二存储器。
可选地,本实施例的装置还可以包括:通知单元13,该通知单元13用于在转移单元12根据获取单元11获取的所述指示信息,将所述第一进程的待转移上下文数据由所述第一存储器转移至所述第二存储器之后,向所述处理器通知所述第一进程的待转移上下文数据已成功转移。
本实施例的装置,可以用于执行本发明上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
需要说明的是,图4或图5所示的数据转移装置可以为DRA装置,其中,该DRA装置可以设置在处理器中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种数据转移方法,其特征在于,包括:
获取处理器的指示信息,所述指示信息用于指示将第一进程的待转移上下文数据由第一存储器转移至第二存储器;
根据所述指示信息,将所述第一进程的待转移上下文数据由所述第一存储器转移至所述第二存储器;其中,所述方法由直接寄存器访问DRA执行;
所述根据所述指示信息,将所述第一进程的待转移上下文数据由所述第一存储器移动至所述第二存储器,包括:
根据所述指示信息,将所述第一进程的待转移上下文数据通过第一传输通道由第一存储器转移至第二存储器,所述第一传输通道为所述处理器配置的所述第一存储器与所述第二存储器之间所述第一进程的待转移上下文数据传输的通道;
所述指示信息包括所述第一进程的待转移上下文数据在所述第一存储器中的第一起始地址、所述第一进程的待转移上下文数据的长度、所述第一进程的待转移数据在所述第二存储器中的第二起始地址;所述指示信息具体用于指示将所述第一存储器中起始地址为所述第一起始地址所对应的区域中所述长度的所述第一进程的待转移上下文数据转移至所述第二存储器中起始地址为所述第二起始地址所对应的区域;
根据所述指示信息,在所述第一存储器中起始地址为所述第一起始地址所对应的区域中获取所述长度的所述第一进程的待转移上下文数据;
将所述获取的所述长度的所述第一进程的待转移上下文数据转移至所述第二存储器中起始地址为所述第二起始地址所对应的区域。
2.根据权利要求1所述的方法,其特征在于,所述第一传输通道的个数为多个。
3.根据权利要求2所述的方法,其特征在于,所述第一存储器为寄存器,所述第二存储器为内存,所述第一进程为当前正在运行的进程,所述第一传输通道为写通道;
或者,所述第一存储器为内存,所述第二存储器为寄存器,所述第一进程为当前待运行的进程,所述第一传输通道为读通道。
4.根据权利要求2或3所述的方法,其特征在于,所述指示信息还包括所述第一传输通道的标识。
5.根据权利要求1所述的方法,其特征在于,所述根据所述指示信息,将所述第一进程的待转移上下文数据由所述第一存储器转移至所述第二存储器之后,还包括:
向所述处理器通知所述第一进程的待转移上下文数据已成功转移。
6.一种数据转移装置,其特征在于,所述装置为直接寄存器访问DRA,包括:
获取单元,用于获取处理器的指示信息,所述指示信息用于指示将第一进程的待转移上下文数据由第一存储器转移至第二存储器;
转移单元,用于根据所述获取单元获取的所述指示信息,将所述第一进程的待转移上下文数据由所述第一存储器转移至所述第二存储器;
所述转移单元具体用于根据所述指示信息,将所述第一进程的待转移上下文数据通过第一传输通道由第一存储器转移至第二存储器,所述第一传输通道为所述处理器配置的所述第一存储器与所述第二存储器之间所述第一进程的待转移上下文数据传输的通道;
所述获取单元获取的所述指示信息包括所述第一进程的待转移上下文数据在所述第一存储器中的第一起始地址、所述第一进程的待转移上下文数据的长度、所述第一进程的待转移数据在所述第二存储器中的第二起始地址;所述指示信息具体用于指示将所述第一存储器中起始地址为所述第一起始地址所对应的区域中所述长度的所述第一进程的待转移上下文数据转移至所述第二存储器中起始地址为所述第二起始地址所对应的区域;
所述转移单元具体用于:根据所述指示信息,在所述第一存储器中起始地址为所述第一起始地址所对应的区域中获取所述长度的所述第一进程的待转移上下文数据;将所述获取的所述长度的所述第一进程的待转移上下文数据转移至所述第二存储器中起始地址为所述第二起始地址所对应的区域。
7.根据权利要求6所述的装置,其特征在于,所述转移单元具体用于根据所述指示信息,将所述第一进程的待转移上下文数据通过多个所述第一传输通道由第一存储器转移至第二存储器。
8.根据权利要求7所述的装置,其特征在于,所述第一存储器为寄存器,所述第二存储器为内存,所述第一进程为当前正在运行的进程,所述第一传输通道为写通道;
或者,所述第一存储器为内存,所述第二存储器为寄存器,所述第一进程为当前待运行的进程,所述第一传输通道为读通道。
9.根据权利要求7或8所述的装置,其特征在于,所述获取单元获取的所述指示信息还包括所述第一传输通道的标识。
10.根据权利要求6所述的装置,其特征在于,还包括:
通知单元,用于在所述转移单元根据所述获取单元获取的所述指示信息,将所述第一进程的待转移上下文数据由所述第一存储器转移至所述第二存储器之后,向所述处理器通知所述第一进程的待转移上下文数据已成功转移。
CN201410538344.8A 2014-10-13 2014-10-13 数据转移方法和装置 Active CN105573831B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410538344.8A CN105573831B (zh) 2014-10-13 2014-10-13 数据转移方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410538344.8A CN105573831B (zh) 2014-10-13 2014-10-13 数据转移方法和装置

Publications (2)

Publication Number Publication Date
CN105573831A CN105573831A (zh) 2016-05-11
CN105573831B true CN105573831B (zh) 2019-11-26

Family

ID=55884001

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410538344.8A Active CN105573831B (zh) 2014-10-13 2014-10-13 数据转移方法和装置

Country Status (1)

Country Link
CN (1) CN105573831B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106055407B (zh) * 2016-05-25 2020-02-07 努比亚技术有限公司 进程资源调整装置及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739338A (zh) * 2009-12-21 2010-06-16 北京龙芯中科技术服务中心有限公司 一种处理器地址数据跟踪的装置及方法
CN102103483A (zh) * 2009-12-22 2011-06-22 英特尔公司 汇聚和散布多个数据元素
WO2011078855A9 (en) * 2009-12-22 2011-09-09 Intel Corporation Method and apparatus to provide secure application execution
CN103970507A (zh) * 2014-05-21 2014-08-06 龙芯中科技术有限公司 64位虚拟机处理访存指令的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011007599A1 (ja) * 2009-07-17 2011-01-20 株式会社 東芝 メモリ管理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739338A (zh) * 2009-12-21 2010-06-16 北京龙芯中科技术服务中心有限公司 一种处理器地址数据跟踪的装置及方法
CN102103483A (zh) * 2009-12-22 2011-06-22 英特尔公司 汇聚和散布多个数据元素
WO2011078855A9 (en) * 2009-12-22 2011-09-09 Intel Corporation Method and apparatus to provide secure application execution
CN103970507A (zh) * 2014-05-21 2014-08-06 龙芯中科技术有限公司 64位虚拟机处理访存指令的方法及装置

Also Published As

Publication number Publication date
CN105573831A (zh) 2016-05-11

Similar Documents

Publication Publication Date Title
CN105283855B (zh) 一种寻址方法及装置
CN110309088A (zh) Zynq fpga芯片及其数据处理方法、存储介质
CN102508619A (zh) 存储系统服务质量控制方法、系统和存储系统
CN105095116A (zh) 缓存替换的方法、缓存控制器和处理器
US20080120456A1 (en) Method for flash memory data management
US20150253992A1 (en) Memory system and control method
US9772881B2 (en) Hardware resource allocation for applications
US10318165B2 (en) Data operating method, device, and system
CN108376102B (zh) 资源分配的系统、方法及非暂时性计算机可读媒体
US10095442B2 (en) Memory device that changes execution order of commands
CN103246482B (zh) 用于存储器覆盖的设备和方法
CN107870866A (zh) Io命令调度方法与nvm接口控制器
CN105573831B (zh) 数据转移方法和装置
CN101957729A (zh) 逻辑块变换方法及基于该方法兼容用户读写的方法和装置
US20150254116A1 (en) Data processing apparatus for pipeline execution acceleration and method thereof
CN102945148A (zh) 一种并行指令集的实现方法
CN103577349B (zh) 在高速缓存中选择数据进行刷盘的方法和装置
CN106155923B (zh) 内存共享的方法和装置
CN105426131A (zh) 一种kv存储实现方法和装置
CN104572655B (zh) 数据处理的方法、装置及系统
CN107870779A (zh) 调度方法与装置
JP2008077625A (ja) ユーザ定義の拡張演算を処理する演算システムおよび方法
CN105912404B (zh) 一种基于磁盘的大规模图数据中寻找强连通分量的方法
JP6112193B2 (ja) アクセス制御プログラム、ディスク装置及びアクセス制御方法
CN104331322A (zh) 一种进程迁移方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing

Patentee after: Loongson Zhongke Technology Co.,Ltd.

Address before: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing

Patentee before: LOONGSON TECHNOLOGY Corp.,Ltd.