CN103645996A - 内存拷贝的方法、装置和片上系统 - Google Patents

内存拷贝的方法、装置和片上系统 Download PDF

Info

Publication number
CN103645996A
CN103645996A CN201310686394.6A CN201310686394A CN103645996A CN 103645996 A CN103645996 A CN 103645996A CN 201310686394 A CN201310686394 A CN 201310686394A CN 103645996 A CN103645996 A CN 103645996A
Authority
CN
China
Prior art keywords
memory
data
copied
cache
cache directory
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.)
Granted
Application number
CN201310686394.6A
Other languages
English (en)
Other versions
CN103645996B (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 CN201310686394.6A priority Critical patent/CN103645996B/zh
Publication of CN103645996A publication Critical patent/CN103645996A/zh
Application granted granted Critical
Publication of CN103645996B publication Critical patent/CN103645996B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供一种内存拷贝的方法、装置和片上系统。本发明内存拷贝的方法,包括:接收内存拷贝指令,内存拷贝指令中包括待拷贝数据在内存中的源地址、目的地址和待拷贝数据的长度;向源地址对应的缓存目录存储装置发送读取请求,读取请求中携带源地址,以使源地址对应的缓存目录存储装置根据源地址获取对应的待拷贝数据;接收缓存目录存储装置发送的读取响应,读取响应中携带待拷贝数据;向目的地址对应的缓存目录存储装置发送写入请求,写入请求中携带待拷贝数据,以使缓存目录存装置块将待拷贝数据写入目的地址对应的内存中。本发明可以提高内存拷贝的效率,降低系统消耗。

Description

内存拷贝的方法、装置和片上系统
技术领域
本发明涉及计算机技术,尤其涉及一种内存拷贝的方法、装置和片上系统。
背景技术
内存拷贝是指将内存中的一块连续的数据从一个地址拷贝到另一个地址。目前,处理器的计算速度飞速提升,而处理器访问内存的能力(访存能力)提升缓慢。内存拷贝过程几乎不需要任何计算,而需要大量的访存操作,占用大量的访存带宽这一宝贵的访存资源。
多核处理器时代的内存拷贝更加复杂,同样一个数据可能既存在于cache中,又存在于内存中。这个数据在cache中的值和在内存中的值如果不相同,则称cache的不一致性;如果相同,则称cache的一致性。cache的不一致性可能引发系统错误,特别对于支持高速缓冲存储器cache一致性的多核处理器。另外,处理器采用的虚地址和内存数据使用的实地址有专门的对应关系,该关系由页表统一维护。内存拷贝时,需要考虑虚实地址转换的工作。现有技术中,采用DMA(Direct Memory Access,直接内存访问)技术,在访存系统中所使用的DMA模块是独立于最后一级缓存和内存控制器之外的模块,作为一个外部模块,在内存拷贝过程中,其向最后一级缓存发送的读取命令需要耗费较多的资源。此外,内存拷贝过程中,处理器采用虚地址,内存中存储的数据使用的是实地址,虚、实地址有专门的对应关系,DMA模块需要不断地进行虚实地址转换的工作,导致系统内存拷贝效率低,系统消耗大。
发明内容
本发明提供一种内存拷贝的方法、装置和片上系统,用以提高内存拷贝效率,降低系统消耗。
本发明第一方面提供一种内存拷贝方法,包括:
接收内存拷贝指令,所述内存拷贝指令中包括待拷贝数据在内存中的源地址、目的地址和所述待拷贝数据的长度;
向所述源地址对应的缓存目录存储装置发送读取请求,所述读取请求中携带所述源地址,以使所述源地址对应的缓存目录存储装置根据所述源地址获取对应的所述待拷贝数据;
接收所述缓存目录存储装置发送的读取响应,所述读取响应中携带所述待拷贝数据;
向所述目的地址对应的缓存目录存储装置发送写入请求,所述写入请求中携带所述待拷贝数据,以使所述缓存目录存装置块将所述待拷贝数据写入目的地址对应的内存中。
所述读取请求中还包括cache标识位,以使所述源地址对应的缓存目录存储模块根据所述cache标识位确定是否对所述待拷贝数据进行本地存储。
所述写入请求中还包括cache标识位,以使所述目的地址对应的缓存目录存储装置根据所述cache标识位确定是否对所述待拷贝数据进行本地存储。
本发明第二方面提供一种内存拷贝装置,其特征在于,包括:
第一接收模块,用于接收内存拷贝指令,所述内存拷贝指令中包括待拷贝数据在内存中的源地址、目的地址和所述待拷贝数据的长度;
第一发送模块,用于向所述源地址对应的缓存目录存储装置发送读取请求,所述读取请求中携带所述源地址,以使所述源地址对应的缓存目录存储装置根据所述源地址获取对应的所述待拷贝数据;
第二接收模块,用于接收所述源地址对应的缓存目录存储装置发送的读取响应,所述读取响应中携带所述待拷贝数据;
第二发送模块,用于向所述目的地址对应的缓存目录存储装置发送写入请求,所述写入请求中携带所述待拷贝数据,以使所述缓存目录存储装置块将所述待拷贝数据写入目的地址对应的内存中。
第三方面,本发明提供一种片上系统,包括:处理器核、缓存目录存储装置,所述缓存目录存储装置上聚合设置第二方面提供的内存拷贝装置;
所述处理器核用于执行内存拷贝指令,将所述内存拷贝指令发送给所述内存拷贝装置,所述内存拷贝指令中包括待拷贝数据在内存中的源地址、目的地址和待拷贝数据的长度;
所述内存拷贝装置用于根据所述内存拷贝命令向所述源地址对应的缓存目录存储装置发送读取请求,根据所述缓存目录存储装置的读取响应,向所述目的地址对应的缓存目录存储装置发送写入请求,所述读取请求中携带所述源地址;所述写入请求中携带所述待拷贝数据;
所述缓存目录存储装置用于根据所述读取请求获取所述源地址对应的所述待拷贝数据,向所述内存拷贝装置发送读取响应,根据所述写入请求将所述待拷贝数据写入内存,所述读取响应中携带所述待拷贝数据。
本发明内存拷贝的方法、装置和片上系统,通过在内存拷贝过程中使用了内存拷贝指令,该指令中携带被拷贝数据在内存中的源地址、目的地址和所述待拷贝数据的长度。由于该指令给出了源地址和目的地址,因此在拷贝过程中无需进行额外的虚实地址转换,提高了内存拷贝效率。本发明使用的内存拷贝装置可以聚合设置于缓存目录存储装置中,是缓存目录存储装置的内部装置,该内部装置与缓存目录存储装置通信时所消耗的资源少于现有技术中使用外部模块DMA与缓存目录存储装置通信所消耗的资源。
附图说明
图1为本发明内存拷贝方法实施例的流程图;
图2为本发明内存拷贝实施例的示意图;
图3为本发明内存拷贝实施例的另一示意图;
图4为现有内存拷贝方法最后一级cache示意图;
图5为本发明内存拷贝方法最后一级cache示意图;
图6为本发明内存拷贝装置实施例一的结构示意图;
图7为本发明片上系统实施例的结构示意图。
具体实施方式
图1为本发明内存拷贝方法实施例的流程图,如图1所示,本实施例的方法可以包括:
S101、接收内存拷贝指令,内存拷贝指令中包括待拷贝数据在内存中的源地址、目的地址和待拷贝数据的长度。
S102、向源地址对应的缓存目录存储装置发送读取请求,读取请求中携带源地址,以使源地址对应的缓存目录存储装置根据源地址获取对应的待拷贝数据。
S103、接收缓存目录存储装置发送的读取响应,读取响应中携带待拷贝数据。
一种可能的实施方式,上述的读取响应中还包括cache标识位,以使源地址对应的缓存目录存储模块根据cache标识位确定是否对所述待拷贝数据进行本地存储。
S104、向目的地址对应的缓存目录存储装置发送写入请求,写入请求中携带待拷贝数据,以使缓存目录存装置块将待拷贝数据写入目的地址对应的内存中。
同样的,写入请求中还包括cache标识位,以使目的地址对应的缓存目录存储装置根据cache标识位确定是否对待拷贝数据进行本地存储。
本发明实施例的方法通过在内存拷贝过程中使用了内存拷贝指令,该指令中携带被拷贝数据在内存中的源地址、目的地址和所述待拷贝数据的长度。由于该指令给出了源地址和目的地址,因此在拷贝过程中无需进行额外的虚实地址转换,提高了内存拷贝效率。
图2为本发明内存拷贝实施例的示意图,实现本发明内存拷贝方法的系统具体为一种片上多核处理器,多核处理器里可以有多个处理器核,处理器核的数量是可以变化的,本实施例以比较常见的四核处理器为例进行说明,以二级缓存作为最后一级缓存为例,举例说明本发明内存拷贝的过程,其中一致性协议的维护通过缓存目录管理,缓存目录中存储系统内所有一级cache和二级cache的数据存储信息,若缓存目录存储在二级cache中,则由二级cache来维护cache一致性;若缓存目录存储在内存控制器中,则由内存控制器来维护cache一致性;维护cache一致性是指根据缓存目录来查询一级cache是否有数据备份,这些数据备份的状态为独占、共享或者无效,确保内存和所有cache中存储的数据一致。作为一种可行的实施方式,在图2中,内存拷贝模块可以是数据搬运模块(Data Movement Module,DMM)这样的硬件模块,设置在二级缓存内部,是二级缓存的一部分。即本实施例使用二级缓存来维护cache一致性操作。
以下以图2所示的实施例为例,详细论述本发明的实施过程。图2中左边内存的数据被拷贝到右边内存(如图2中虚箭头所示)。图2中左边二级cache即为源地址对应的二级cache,右边二级cache即为目的地址对应的二级cache。由于图2所示的实施例是把内存中的数据从左边内存拷贝到右边内存,因此,左边DMM参与本次内存拷贝过程,右边DMM不参与本次内存拷贝过程。可以理解的是,如果要把内存中的数据从右边内存拷贝到左边内存,则右边DMM参与内存拷贝过程,而左边DMM不参与本次内存拷贝过程。
图2中左边二级cache,根据源地址获取对应的被拷贝数据时,首先查询缓存目录,判断系统内所有一级cache中是否存在被拷贝数据。其中,缓存目录中存储系统内所有一级cache和二级cache的数据存储信息。若系统内存在存储有被拷贝数据的一级cache,由于左边一级cache存储的数据是左边二级cache存储数据的子集,那么,左边二级cache必然也存储了被拷贝数据。此时,还需进一步判断左边一级cache存储的数据,与左边二级cache存储的数据,这两者是否有一致。若两者不一致,则左边二级cache从存储有被拷贝数据的左边一级cache中获取被拷贝数据,因为该数据是最新的数据;若两者一致,说明两者并没有“新、旧”的区别,则左边二级cache也无需从左边一级cache中获取被拷贝数据。若系统内不存在存储有被拷贝数据的一级cache(即图中4个一级cache都没有存储被拷贝数据),还需进一步判断左边一级cache是否存储了被拷贝数据,如果没有存储,则左边二级cache还需要从源地址对应的内存(即图中左边内存)中获取被拷贝数据。(被拷贝数据有三种存储情况:1一级cache中有最新的数据,即某一个一级cache中数据状态为独占,则从一级cache中获取数据;2一级cache或者二级cache中有数据,该数据是共享状态,则一级cache和二级cache中的数据是一样的,则直接从二级cache中获取数据;3一级cache和二级cache都没有数据,则从内存中获取数据)(说明:一级cache是二级cache的子集,一级cache有数据则二级cache肯定也有该数据)
进一步的,二级cache查询缓存目录时,若判断被拷贝的数据处于独占状态(即有且仅有1个一级cache存储该被拷贝的数据,并且该一级cache中存储的被拷贝的数据的值,与二级cache中存储的被拷贝的数据的值,两者不一致),则左边二级cache向该一级cache发出写回请求。随后,该一级cache将被拷贝的数据写回到左边二级cache,并将缓存目录中该cache状态从独占状态更新为共享状态(至少一个一级cache存储有待拷贝数据,并且该一级cache中存储的被拷贝的数据的值,与二级cache中存储的被拷贝的数据的值,两者一致)。二级cache查询缓存目录时,若判断被拷贝的数据处于共享状态,则左边二级cache也无需从左边一级cache中获取被拷贝数据。
图3为本发明内存拷贝实施例的另一示意图,在图2所示实施例的基础上,作为另一种可行的实施方式,在本示意图中,内存拷贝模块DMM还可以设置在内存控制器内部,是内存控制器的一部分。即在本实施例中使用内存控制器来维护cache一致性操作。
具体的,图3中左边内存的数据被拷贝到右边内存(如图3中虚箭头所示)。图3中左边内存控制器即为源地址对应的内存控制器,右边内存控制器即为目的地址对应的内存控制器,左边DMM参与本次内存拷贝过程,右边DMM不参与本次内存拷贝过程。以此类推,如果要把内存中的数据从右边内存拷贝到左边内存,则右边DMM参与内存拷贝过程,而左边DMM不参与本次内存拷贝过程。具体的拷贝过程参见图2所示实施例,由内存控制器及DMM来完成图2中二级cache及DMM的操作。
进一步的,内存控制器查询缓存目录时,若判断被拷贝的数据处于独占状态(即有且仅有1个一级cache存储该被拷贝的数据,并且该一级cache中存储的被拷贝的数据的值,与二级cache中存储的被拷贝的数据的值,两者不一致),则左边内存控制器向该一级cache发出写回请求。随后,该一级cache将被拷贝的数据写回到左边二级cache,并将缓存目录中该cache状态从独占状态更新为共享状态(至少一个一级cache存储有待拷贝数据,并且该一级cache中存储的被拷贝的数据的值,与二级cache中存储的被拷贝的数据的值,两者一致)。
图2、图3的内存拷贝过程中,假设了只有二级缓存,若系统中有多级缓存,可以用同样的方式实现内存拷贝功能,对于内存拷贝实现的系统中具体有几级cache,本发明不作限制。此外,一个处理器核可以认为是一个单核处理器。
表1为内存拷贝指令示意,仅用于说明内存拷贝指令可行的指令长度以及指令的可行结构,但并不能依次作为对本发明的限制。
Figure BDA0000438566040000071
表1内存拷贝指令示意
格式:MEMCPY.cache rd,rs,rt
描述:for(i=0;i<rt;i++)
         memory(rd+i)<-memory(rs+i)
如表1及上述代码所示,该指令共32比特,其中,op域和fmt域表示当前指令就是内存拷贝指令。Rs指示内存数据的源地址。Rt指示需要拷贝的数据长度。Rd指示内存数据要拷贝的目的地址。cache标志位由内存拷贝指令中拷贝字符串MEMCPY来确定,具体的,程序员可以根据程序的行为来设置Cache标志位,cache标志位用于指示是否对被拷贝数据进行本地存储。如果cache为0,DMM将被拷贝的数据,既不存放在左边二级cache中,又不存放在右边二级cache中,不会造成任何的cache污染,本发明称其为普通模式。如果cache为1,DMM会将被拷贝的数据存放在左边二级cache中,而不存放在右边二级cache,本发明称其为源模式。如果cache为2,DMM会将被拷贝的数据存放在右边二级cache中,而不存放在左边的二级cache中,本发明称其为目的模式。如果cache为3,DMM将被拷贝的数据,既存放在左边二级cache中,又存放在右边二级cache中,本发明称其为cache模式。
进一步的,左边二级cache获取被拷贝数据之后,根据cache标识位确定是否对被拷贝数据进行本地存储。具体的,如果cache标志位所指示的是源模式或者cache模式,左边二级cache把被拷贝的数据发给DMM之后,并且把该被拷贝的数据存储在左边二级cache中。如果cache标志位所指示的是普通模式或者目的模式,则二级cache不会把该被拷贝的数据存储在左边二级cache中,也就避免了cache的污染。
进一步的,右边二级cache将被拷贝的数据写入右边内存中时,首先,右边二级cache查询缓存目录,判断系统内所有一级cache中是否存在待覆盖数据。缓存目录中存储有系统内所有一级cache和二级cache的数据存储信息。若系统内存在存储有待覆盖数据的一级cache,则右边二级cache无效一级cache中的待覆盖数据;若系统内不存在存储有被拷贝数据的一级cache,则右边二级cache直接将被拷贝的数据写入右边内存中。
进一步的,若系统内存在存储有待覆盖数据的一级cache,如果该待覆盖数据处于独占状态(即4个一级cache中,有且仅有一个cache存储有该待覆盖数据),则右边二级cache向存储有该待覆盖数据的该cache发送无效并写回的请求,获得对该无效并写回的请求的响应之后,将被拷贝的数据写入右边内存;如果该待覆盖数据处于共享状态(即4个一级cache中,有多个cache存储有该待覆盖数据),则右边二级cache向存储有该待覆盖数据的多个cache发送无效请求,获得对该无效请求的响应之后,将被拷贝的数据写入右边内存。
进一步的,写入请求中携带cache标识位,右边二级cache将被拷贝数据写入右边内存中之后,根据cache标识位,确定是否对被拷贝数据进行本地存储。具体的,如果cache标志位所指示的是目的模式或者cache模式,则二级cache将拷贝数据写入内存,并且需要保存该数据。如果cache标志位所指示的是普通模式或者源模式,则二级cache将拷贝数据写入内存,并且无须保存该数据,这样可以避免cache被污染。
上述步骤完成后,DMM完成一次内存拷贝过程。如果需要拷贝的数据较大,需要多次重复上述步骤,直至需要拷贝的数据全部被拷贝完毕。
在图1的实施例中,使用二级cache实现内存拷贝中cache一致性的维护。对于某些系统中,内存拷贝中cache一致性的维护由内存控制器来维护,则将DMM聚合设置于内存控制器中,使DMM成为内存控制器的一部分,图4为现有内存拷贝方法最后一级cache示意图,图5为本发明内存拷贝方法最后一级cache示意图,如图5所示DMM模块属于最后一级cache的一部分,而DMA模块独立于cache和内存控制器之外,通过输入输出接口和cache通信,本发明具体操作详见图2所示。图2所示的实施例的具体实施实施方式和图1所示的实施方式类似,在此不再赘述。
另外,除了上述实施例中通过缓存或者内存控制器来维护cache的一致性之外,还可以通过直接内存存取(Direct Memory Access,简称DMA)的一种方法来实现,在内存拷贝之前,将所有cache的数据全部无效掉,然后进行数据拷贝,因为cache中已经没有任何数据备份,内存拷贝不会出现不一致。具体的维护cache的一致性方式根据实际情况选择,本发明不做限制。
本发明在内存拷贝过程中使用了内存拷贝指令,该指令中携带被拷贝数据在内存中的源地址和目的地址。使用该指令的方式进行内存拷贝,无需进行额外的虚实地址转换,提高了内存拷贝效率。此外,本发明使用的内存拷贝装置可以聚合设置于缓存目录所在的最后一级cache中或者内存控制器中,是最后一级cache中或者内存控制器的内部装置,该内部装置与二级cache中或者内存控制器通信时所消耗的资源少于现有技术中使用外部模块DMA与二级cache中或者内存控制器通信所消耗的资源。
图6为本发明内存拷贝装置实施例一的结构示意图,如图6所示,本实施例的装置可以包括:
第一接收模块61,用于接收内存拷贝指令,内存拷贝指令中包括待拷贝数据在内存中的源地址、目的地址和待拷贝数据的长度;
第一发送模块62,用于向源地址对应的缓存目录存储装置发送读取请求,读取请求中携带源地址,以使源地址对应的缓存目录存储装置根据源地址获取对应的待拷贝数据;
第二接收模块63,用于接收源地址对应的缓存目录存储装置发送的读取响应,读取响应中携带待拷贝数据;
第二发送模块64,用于向目的地址对应的缓存目录存储装置发送写入请求,写入请求中携带待拷贝数据,以使缓存目录存装置块将待拷贝数据写入目的地址对应的内存中。
可选的,第一发送模块62,还用于:向源地址对应的缓存目录存储装置发送读取请求,读取请求携带cache标识位,以使源地址对应的缓存目录存储模块根据cache标识位确定是否对待拷贝数据进行本地存储。
可选的,第二发送模块64,还用于:向目的地址对应的缓存目录存储装置发送写入请求,写入请求中还携带cache标识位,以使目的地址对应的缓存目录存储装置根据cache标识位确定是否对待拷贝数据进行本地存储。
本发明实施例的装置通过在内存拷贝过程中使用了内存拷贝指令,该指令中携带被拷贝数据在内存中的源地址、目的地址和所述待拷贝数据的长度。由于该指令给出了源地址和目的地址,因此在拷贝过程中无需进行额外的虚实地址转换,提高了内存拷贝效率。
图7为本发明片上系统实施例的结构示意图,如图7所示,本实施例的片上系统包括:处理器核71、缓存目录存储装置72,缓存目录存储装置72上聚合设置有图6所示的内存拷贝装置73。
处理器核71用于执行内存拷贝指令,将内存拷贝指令发送给内存拷贝装置73,内存拷贝指令中包括待拷贝数据在内存中的源地址、目的地址和待拷贝数据的长度;
内存拷贝装置73用于根据内存拷贝命令向源地址对应的缓存目录存储装置发送读取请求,根据缓存目录存储装置72的读取响应,向目的地址对应的缓存目录存储装置72发送写入请求,读取请求中携带源地址;写入请求中携带待拷贝数据;
缓存目录存储装置72用于根据读取请求获取源地址对应的待拷贝数据,向内存拷贝装置73发送读取响应,根据写入请求将待拷贝数据写入内存,读取响应中携带待拷贝数据。
进一步的,缓存目录存储装置72还用于:查询缓存目录判断系统内所有一级缓存至最后一级缓存中是否存在待拷贝数据,缓存目录中存储系统内所有一级缓存至最后一级的数据存储信息;
若系统内存在存储有待拷贝数据的缓存,并且待拷贝数据为独占状态,则从存储有待拷贝数据的缓存中获取待拷贝数据;
或者,若系统内不存在存储有待拷贝数据的缓存,则从源地址对应的内存中获取待拷贝数据。
进一步的,缓存目录存储装置72还用于:
将缓存目录中存储待拷贝数据的一级缓存由独占状态更新为共享状态。
进一步的,内存拷贝装置73还用于:
向源地址对应的缓存目录存储装置发送读取请求,读取请求携带cache标识位,则缓存目录存储装置72还用于:根据cache标识位确定是否对待拷贝数据进行本地存储。
进一步的,缓存目录存储装置72还用于:
查询缓存目录判断系统内所有一级缓存至最后一级前一级缓存中是否存在待覆盖数据,缓存目录中存储系统内所有缓存的数据存储信息;若系统内存在存储有待覆盖数据的缓存,则无效缓存中的待覆盖数据;或者,若系统内不存在存储有待拷贝数据的缓存,则直接将待拷贝数据写入目的地址对应的内存中。
进一步的,内存拷贝装置73还用于:向目的地址对应的缓存目录存储装置发送写入请求,写入请求中还包括cache标识位,
则缓存目录存储装置72还用于:根据cache标识位确定是否对待拷贝数据进行本地存储。
进一步的,缓存目录存储装置72具体为最后一级缓存或者内存控制器。
本实施例提供的内存拷贝系统的实现原理和技术方案与图1-图5的方法实施例对应,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (13)

1.一种内存拷贝方法,其特征在于,包括:
接收内存拷贝指令,所述内存拷贝指令中包括待拷贝数据在内存中的源地址、目的地址和所述待拷贝数据的长度;
向所述源地址对应的缓存目录存储装置发送读取请求,所述读取请求中携带所述源地址,以使所述源地址对应的缓存目录存储装置根据所述源地址获取对应的所述待拷贝数据;
接收所述缓存目录存储装置发送的读取响应,所述读取响应中携带所述待拷贝数据;
向所述目的地址对应的缓存目录存储装置发送写入请求,所述写入请求中携带所述待拷贝数据,以使所述缓存目录存装置块将所述待拷贝数据写入目的地址对应的内存中。
2.根据权利要求1所述的方法,其特征在于,
所述读取请求中还包括cache标识位,以使所述源地址对应的缓存目录存储模块根据所述cache标识位确定是否对所述待拷贝数据进行本地存储。
3.根据权利要求1所述的方法,其特征在于,所述写入请求中还包括cache标识位,以使所述目的地址对应的缓存目录存储装置根据所述cache标识位确定是否对所述待拷贝数据进行本地存储。
4.一种内存拷贝装置,其特征在于,包括:
第一接收模块,用于接收内存拷贝指令,所述内存拷贝指令中包括待拷贝数据在内存中的源地址、目的地址和所述待拷贝数据的长度;
第一发送模块,用于向所述源地址对应的缓存目录存储装置发送读取请求,所述读取请求中携带所述源地址,以使所述源地址对应的缓存目录存储装置根据所述源地址获取对应的所述待拷贝数据;
第二接收模块,用于接收所述源地址对应的缓存目录存储装置发送的读取响应,所述读取响应中携带所述待拷贝数据;
第二发送模块,用于向所述目的地址对应的缓存目录存储装置发送写入请求,所述写入请求中携带所述待拷贝数据,以使所述缓存目录存装置块将所述待拷贝数据写入目的地址对应的内存中。
5.根据权利要求4所述的装置,其特征在于,所述第一发送模块,还用于:
向所述源地址对应的缓存目录存储装置发送读取请求,所述读取请求携带cache标识位,以使所述源地址对应的缓存目录存储模块根据所述cache标识位确定是否对所述待拷贝数据进行本地存储。
6.根据权利要求4所述的装置,其特征在于,所述第二发送模块,还用于:
向所述目的地址对应的缓存目录存储装置发送写入请求,所述写入请求中还携带cache标识位,以使所述目的地址对应的缓存目录存储装置根据所述cache标识位确定是否对所述待拷贝数据进行本地存储。
7.一种片上系统,其特征在于,包括:处理器核和缓存目录存储装置,所述缓存目录存储装置上聚合设置如权利要求4-6所述的内存拷贝装置;
所述处理器核用于执行内存拷贝指令,将所述内存拷贝指令发送给所述内存拷贝装置,所述内存拷贝指令中包括待拷贝数据在内存中的源地址、目的地址和待拷贝数据的长度;
所述内存拷贝装置用于根据所述内存拷贝命令向所述源地址对应的缓存目录存储装置发送读取请求,根据所述缓存目录存储装置的读取响应,向所述目的地址对应的缓存目录存储装置发送写入请求,所述读取请求中携带所述源地址;所述写入请求中携带所述待拷贝数据;
所述缓存目录存储装置用于根据所述读取请求获取所述源地址对应的所述待拷贝数据,向所述内存拷贝装置发送读取响应,根据所述写入请求将所述待拷贝数据写入内存,所述读取响应中携带所述待拷贝数据。
8.根据权利要求7所述的系统,其特征在于,所述缓存目录存储装置还用于:
查询缓存目录判断系统内所有一级缓存至最后一级缓存中是否存在所述待拷贝数据,所述缓存目录中存储所述系统内所有一级缓存至最后一级的数据存储信息;
若所述系统内存在存储有所述待拷贝数据的缓存,并且所述待拷贝数据为独占状态,则从存储有所述待拷贝数据的缓存中获取所述待拷贝数据;
或者,若所述系统内不存在存储有所述待拷贝数据的缓存,则从所述源地址对应的内存中获取所述待拷贝数据。
9.根据权利要求8所述的系统,其特征在于,所述缓存目录存储装置还用于:
将缓存目录中存储所述待拷贝数据的一级缓存由所述独占状态更新为共享状态。
10.根据权利要求7所述的系统,其特征在于,所述内存拷贝装置还用于:
向所述源地址对应的缓存目录存储装置发送读取请求,所述读取请求携带cache标识位,则所述缓存目录存储装置还用于:
根据所述cache标识位确定是否对所述待拷贝数据进行本地存储。
11.根据权利要求7所述的系统,其特征在于,所述缓存目录存储装置还用于:
查询缓存目录判断系统内所有一级缓存至最后一级前一级缓存中是否存在待覆盖数据,所述缓存目录中存储所述系统内所有缓存的数据存储信息;若所述系统内存在存储有所述待覆盖数据的缓存,则无效所述缓存中的所述待覆盖数据;或者,若所述系统内不存在存储有所述待拷贝数据的缓存,则直接将所述待拷贝数据写入所述目的地址对应的内存中。
12.根据权利要求7所述的系统,其特征在于,所述内存拷贝装置还用于:向所述目的地址对应的缓存目录存储装置发送写入请求,所述写入请求中还包括cache标识位,
则所述缓存目录存储装置还用于:
根据所述cache标识位确定是否对所述待拷贝数据进行本地存储。
13.根据权利要求7所述的系统,其特征在于,所述缓存目录存储装置具体为最后一级缓存或者内存控制器。
CN201310686394.6A 2013-12-09 2013-12-09 内存拷贝的方法、装置和片上系统 Active CN103645996B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310686394.6A CN103645996B (zh) 2013-12-09 2013-12-09 内存拷贝的方法、装置和片上系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310686394.6A CN103645996B (zh) 2013-12-09 2013-12-09 内存拷贝的方法、装置和片上系统

Publications (2)

Publication Number Publication Date
CN103645996A true CN103645996A (zh) 2014-03-19
CN103645996B CN103645996B (zh) 2016-07-06

Family

ID=50251217

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310686394.6A Active CN103645996B (zh) 2013-12-09 2013-12-09 内存拷贝的方法、装置和片上系统

Country Status (1)

Country Link
CN (1) CN103645996B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015024418A1 (zh) * 2013-08-20 2015-02-26 华为技术有限公司 一种数据拷贝方法、设备和系统
CN109040221A (zh) * 2018-07-26 2018-12-18 郑州云海信息技术有限公司 一种数据传输方法、系统、设备及存储阵列和存储介质
CN109165099A (zh) * 2018-08-27 2019-01-08 迈普通信技术股份有限公司 一种电子设备、内存拷贝方法及装置
CN109597776A (zh) * 2017-09-30 2019-04-09 杭州华为数字技术有限公司 一种数据操作方法、内存控制器以及多处理器系统
CN113836053A (zh) * 2021-09-07 2021-12-24 上海砹芯科技有限公司 信息获取方法、装置和电子设备
CN114020353A (zh) * 2021-10-28 2022-02-08 济南浪潮数据技术有限公司 旁路卸载方法、装置、计算机设备及存储介质
CN117742977A (zh) * 2024-02-20 2024-03-22 沐曦科技(成都)有限公司 芯片内存数据拷贝方法、电子设备和介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101876925A (zh) * 2009-11-27 2010-11-03 成都市华为赛门铁克科技有限公司 内存镜像处理方法、装置和系统
CN102043687A (zh) * 2009-10-20 2011-05-04 杭州华三通信技术有限公司 实现数据快照的首写拷贝装置及控制方法
CN102160040A (zh) * 2008-09-17 2011-08-17 松下电器产业株式会社 高速缓存存储器、存储器系统、数据复制方法及数据改写方法
US8127104B1 (en) * 2007-08-06 2012-02-28 Marvell International Ltd. Alignment matrix memory copy
CN102968395A (zh) * 2012-11-28 2013-03-13 中国人民解放军国防科学技术大学 用于微处理器的内存拷贝加速方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8127104B1 (en) * 2007-08-06 2012-02-28 Marvell International Ltd. Alignment matrix memory copy
CN102160040A (zh) * 2008-09-17 2011-08-17 松下电器产业株式会社 高速缓存存储器、存储器系统、数据复制方法及数据改写方法
CN102043687A (zh) * 2009-10-20 2011-05-04 杭州华三通信技术有限公司 实现数据快照的首写拷贝装置及控制方法
CN101876925A (zh) * 2009-11-27 2010-11-03 成都市华为赛门铁克科技有限公司 内存镜像处理方法、装置和系统
CN102968395A (zh) * 2012-11-28 2013-03-13 中国人民解放军国防科学技术大学 用于微处理器的内存拷贝加速方法及装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015024418A1 (zh) * 2013-08-20 2015-02-26 华为技术有限公司 一种数据拷贝方法、设备和系统
CN109597776A (zh) * 2017-09-30 2019-04-09 杭州华为数字技术有限公司 一种数据操作方法、内存控制器以及多处理器系统
CN109040221A (zh) * 2018-07-26 2018-12-18 郑州云海信息技术有限公司 一种数据传输方法、系统、设备及存储阵列和存储介质
CN109165099A (zh) * 2018-08-27 2019-01-08 迈普通信技术股份有限公司 一种电子设备、内存拷贝方法及装置
CN113836053A (zh) * 2021-09-07 2021-12-24 上海砹芯科技有限公司 信息获取方法、装置和电子设备
CN114020353A (zh) * 2021-10-28 2022-02-08 济南浪潮数据技术有限公司 旁路卸载方法、装置、计算机设备及存储介质
CN114020353B (zh) * 2021-10-28 2024-02-13 济南浪潮数据技术有限公司 旁路卸载方法、装置、计算机设备及存储介质
CN117742977A (zh) * 2024-02-20 2024-03-22 沐曦科技(成都)有限公司 芯片内存数据拷贝方法、电子设备和介质
CN117742977B (zh) * 2024-02-20 2024-04-26 沐曦科技(成都)有限公司 芯片内存数据拷贝方法、电子设备和介质

Also Published As

Publication number Publication date
CN103645996B (zh) 2016-07-06

Similar Documents

Publication Publication Date Title
CN103645996A (zh) 内存拷贝的方法、装置和片上系统
TWI526829B (zh) 電腦系統、用於存取儲存裝置之方法及電腦可讀儲存媒體
US8291175B2 (en) Processor-bus attached flash main-memory module
WO2016082524A1 (zh) 一种进行数据存储的方法、装置及系统
US8271735B2 (en) Cache-coherency protocol with held state
US9418016B2 (en) Method and apparatus for optimizing the usage of cache memories
KR20210147976A (ko) 확장 가능하고 일관성 있는 메모리 장치를 위한 시스템 및 방법
US8037252B2 (en) Method for reducing coherence enforcement by selective directory update on replacement of unmodified cache blocks in a directory-based coherent multiprocessor
US11544093B2 (en) Virtual machine replication and migration
US20120102273A1 (en) Memory agent to access memory blade as part of the cache coherency domain
US10402338B2 (en) Method and apparatus for erase block granularity eviction in host based caching
US20170177482A1 (en) Computing system having multi-level system memory capable of operating in a single level system memory mode
EP3049938B1 (en) Data management on memory modules
US11593258B2 (en) Enhanced filesystem support for zone namespace memory
KR101355105B1 (ko) 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치
US8832388B2 (en) Managing shared memory used by compute nodes
CN112100093B (zh) 保持多处理器共享内存数据一致性的方法和多处理器系统
KR20140038075A (ko) 캐시 일관성 유지 장치 및 방법, 이를 이용하는 멀티프로세서 장치
KR20180109675A (ko) 저장된 교체 정보를 갖는 스누프 필터, 이에 대한 방법 및 희생자 전용 캐시와 스누프 필터 공유 교체 정책을 포함하는 시스템
US9037804B2 (en) Efficient support of sparse data structure access
US10789168B2 (en) Maintaining multiple cache areas
CN105700953B (zh) 一种多处理器缓存一致性处理方法及装置
CN113360090B (zh) 相干性锁定方案
US10936493B2 (en) Volatile memory cache line directory tags
CN114730300B (zh) 对区命名空间存储器的增强型文件系统支持

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address

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: 100190 No. 10 South Road, Zhongguancun Academy of Sciences, Haidian District, Beijing

Patentee before: LOONGSON TECHNOLOGY Corp.,Ltd.

CP03 Change of name, title or address