发明内容
本发明提供一种用于同步中央处理器所属缓存的方法,包括:
确定源中央处理器和目的中央处理器;
将所述源中央处理器所属指定的缓存区域的数据同步到目的中央处理器所属的相应的缓存区域;
所述中央处理器所属的指定的缓存区域包括内存的指定区域对应的中央处理器所属的缓存区域。
可选地,所述确定源中央处理器和目的中央处理器的操作前还包括:
判断是否满足进行中央处理器所属缓存间同步的条件;
若满足,执行后续操作。
可选地,所述判断是否满足进行中央处理器所属缓存间同步的条件包括:
判断所述内存的指定区域对应的中央处理器所属缓存区域的数据是否被更新;
若被更新,判断所述内存的指定区域的标记是否包括同步标记和下述标记的至少一种:写回标记或写穿标记;
若包括,则满足进行中央处理器所属缓存间同步的条件。
可选地,所述判断是否满足进行中央处理器所属缓存间同步的条件包括:
判断是否获取到将中央处理器所属的指定的缓存区域进行同步的指令,所述指令指定目的中央处理器和内存的指定区域;
若获取到,则满足进行中央处理器所属缓存间同步的条件。
可选地,所述确定源中央处理器和目的中央处理器包括:
将所述内存的指定区域对应的中央处理器所属缓存区域被更新的中央处理器作为源中央处理器;
确定目的中央处理器。
可选地,所述将所述源中央处理器的指定的缓存区域的数据同步到目的中央处理器的相应的缓存区域的操作前,还包括:
执行写回或写穿标记所对应的操作。
可选地,所述确定源中央处理器和目的中央处理器包括:
利用同步内存和中央处理器所属缓存的模块确定源中央处理器;
确定目的中央处理器。
可选地,所述确定源中央处理器和目的中央处理器包括:
确定源处理器;
查找所述内存的指定区域所对应的关联中央处理器;
将所述关联中央处理器中除源中央处理器外的其他中央处理器作为目的中央处理器。
可选地,所述将所述源中央处理器所属指定的缓存区域的数据同步到目的中央处理器所属相应的缓存区域包括:
利用同步内存和中央处理器所属缓存的模块,不通过内存,直接将所述源中央处理器所属指定的缓存区域的数据同步到目的中央处理器所属的相应的缓存区域。
可选地,所述利用同步内存和中央处理器所属缓存的模块,不通过内存,直接将所述源中央处理器所属指定的缓存区域的数据同步到目的中央处理器所属的相应的缓存区域的操作前,还包括:
判断同步内存和中央处理器所属缓存的模块是否空闲。
可选地,所述同步内存和中央处理器缓存的模块部署于:中央处理器内或独立于中央处理器单独部署。
可选地,所述将所述源中央处理器所属指定的缓存区域的数据同步到目的中央处理器所属的相应的缓存区域包括:
利用快速通道连接,将所述源中央处理器所属指定的缓存区域的数据同步到目的中央处理器所属的相应的缓存区域。
本发明还提供一种用于触发同步中央处理器所属缓存的方法,包括:
判断内存的指定区域对应的中央处理器所属缓存区域的数据是否被更新;
若被更新,判断所述内存的指定区域的标记是否包括同步标记和下述标记的至少一种:写回标记或写穿标记;
若包括,则触发进行同步中央处理器所属缓存的操作。
可选地,所述触发进行同步中央处理器所属缓存的操作前还包括:
执行写回或写穿标记所对应的操作。
本发明还提供一种用于启动同步中央处理器所属缓存的方法,包括:
生成启动同步中央处理器所属缓存的指令,所述指令包括目的中央处理器的标识和内存的指定区域的标识;
发送所述指令启动同步中央处理器所属缓存。
本发明还提供一种操作内存的方法,包括:
将内存的指定区域的标记设置为同步;
根据所述标记,同步中央处理器所属缓存的相应区域。
本发明还提供一种用于同步中央处理器所属缓存的装置,包括:
确定单元,用于确定源中央处理器和目的中央处理器;
同步单元,用于将所述源中央处理器所属指定的缓存区域的数据同步到目的中央处理器所属的相应的缓存区域。
可选地,还包括:
判断单元,用于判断是否满足进行中央处理器所属缓存间同步的条件。
可选地,所述判断单元包括:
第一判断子单元,用于判断所述内存的指定区域对应的中央处理器所属缓存区域的数据是否被更新;
标记判断子单元,用于若被更新,判断所述内存的指定区域的标记是否包括同步标记和下述标记的至少一种:写回标记或写穿标记;
包括子单元,用于若包括,则满足进行中央处理器所属缓存间同步的条件。
可选地,所述判断单元包括:
第二判断子单元,用于判断是否获取到将中央处理器所属的指定的缓存区域进行同步的指令,所述指令指定目的中央处理器和内存的指定区域;
获取到子单元,用若获取到,则满足进行中央处理器所属缓存间同步的条件。
可选地,所述确定单元包括:
源确定子单元,用于将所述内存的指定区域对应的中央处理器所属缓存区域被更新的中央处理器作为源中央处理器;
目的确定子单元,用于确定目的中央处理器。
可选地,还包括:
相应操作执行单元,用于执行写回或写穿标记所对应的操作。
可选地,所述确定单元包括:
源确定第二子单元,用于利用同步内存和中央处理器所属缓存的模块确定源中央处理器;
目的确定子单元,用于确定目的中央处理器。
可选地,所述确定单元包括:
源确定子单元,用于确定源处理器;
查找子单元,用于查找所述内存的指定区域所对应的关联中央处理器;
作为子单元,用于将所述关联中央处理器中除源中央处理器外的其他中央处理器作为目的中央处理器。
可选地,所述同步单元具体用于:
利用同步内存和中央处理器所属缓存的模块,不通过内存,直接将所述源中央处理器所属指定的缓存区域的数据同步到目的中央处理器所属的相应的缓存区域。
可选地,还包括:
空闲判断单元,用于判断同步内存和中央处理器所属缓存的模块是否空闲。
本发明还提供一种用于触发同步中央处理器所属缓存的装置,包括:
判断单元,用于判断内存的指定区域对应的中央处理器所属缓存区域的数据是否被更新;
标记判断单元,用于若被更新,判断所述内存的指定区域的标记是否包括同步标记和下述标记的至少一种:写回标记或写穿标记;
触发单元,用于若包括,则触发进行同步中央处理器所属缓存的操作。
可选地,还包括:
执行单元,用于执行写回或写穿标记所对应的操作。
本发明还提供一种用于启动同步中央处理器所属缓存的装置,包括:
生成单元,用于生成启动同步中央处理器所属缓存的指令,所述指令包括目的中央处理器的标识和内存的指定区域的标识;
发送单元,用于发送所述指令启动同步中央处理器所属缓存。
本发明还提供一种操作内存的装置,包括:
设置单元,用于将内存的指定区域的标记设置为同步;
同步单元,用于根据所述标记,同步中央处理器所属缓存的相应区域。
本发明还提供一种机器可读的存储介质,所述存储介质存储或携带有用于同步中央处理器所属缓存的指令,所述指令被执行后,导致下述操作:
判断是否满足进行中央处理器所属缓存间同步的条件;
若满足,确定源中央处理器和目的中央处理器;
将所述源中央处理器所属指定的缓存区域的数据同步到目的中央处理器所属的相应的缓存区域;
所述中央处理器所属的指定的缓存区域包括内存的指定区域对应的中央处理器所属的缓存区域。
本发明还提供一种机器可读的存储介质,所述存储介质存储或携带有用于触发同步中央处理器所属缓存的指令,所述指令被执行后,导致下述操作:
判断内存的指定区域对应的中央处理器所属缓存区域的数据是否被更新;
若被更新,判断所述内存的指定区域的标记是否包括同步标记和下述标记的至少一种:写回标记或写穿标记;
若包括,则进行同步中央处理器所属缓存的操作。
本发明还提供一种机器可读的存储介质,所述存储介质存储或携带有用于启动同步中央处理器所属缓存的指令,所述指令被执行后,导致下述操作:
生成启动同步中央处理器所属缓存的指令,所述指令包括目的中央处理器的标识和内存的指定区域的标识;
发送所述指令启动同步中央处理器所属缓存。
本发明还提供一种机器可读的存储介质,所述存储介质存储或携带有操作内存的指令,所述指令被执行会导致下述操作:
将内存的指定区域的标记设置为同步;
根据所述标记,同步中央处理器所属缓存的相应区域。
本发明还提供一种电子设备,包括存储介质和处理器,所述存储介质存储或携带有实现用于同步中央处理器所属缓存的方法的程序,该设备通电并通过所述处理器运行所述实现用于同步中央处理器所属缓存的方法的程序后,执行下述操作:
判断是否满足进行中央处理器所属缓存间同步的条件;
若满足,确定源中央处理器和目的中央处理器;
将所述源中央处理器所属指定的缓存区域的数据同步到目的中央处理器所属的相应的缓存区域;
所述中央处理器所属的指定的缓存区域包括内存的指定区域对应的中央处理器所属的缓存区域。
本发明还提供一种电子设备,包括存储介质和处理器,所述存储介质存储或携带有实现用于触发同步中央处理器所属缓存的方法的程序,该设备通电并通过所述处理器运行所述实现用于触发同步中央处理器所属缓存的方法的程序后,执行下述操作:
判断内存的指定区域对应的中央处理器所属缓存区域的数据是否被更新;
若被更新,判断所述内存的指定区域的标记是否包括同步标记和下述标记的至少一种:写回标记或写穿标记;
若包括,则进行同步中央处理器所属缓存的操作。
本发明还提供一种电子设备,包括存储介质和处理器,本发明还提供所述存储介质存储或携带有实现用于启动同步中央处理器所属缓存的方法的程序,该设备通电并通过所述处理器运行所述实现用于启动同步中央处理器所属缓存的方法的程序后,执行下述操作:
生成启动同步中央处理器所属缓存的指令,所述指令包括目的中央处理器的标识和内存的指定区域的标识;
发送所述指令启动同步中央处理器所属缓存。
本发明还提供一种电子设备,包括存储介质和处理器,所述存储介质存储或携带有实现操作内存的方法的程序,该设备通电并通过所述处理器运行所述实现操作内存的方法的程序后,执行下述操作:
将内存的指定区域的标记设置为同步;
根据所述标记,同步中央处理器所属缓存的相应区域。
本发明还提供一种用于多中央处理器架构的缓存操作访问的方法,包括:根据设定条件确定多中央处理器架构中源中央处理器和目的中央处理器;
将所述源中央处理器所属指定的缓存区域的数据同步到目的中央处理器所属的相应的缓存区域;
所述目的中央处理器对其所属缓存的所述区域的数据进行操作及访问;
所述中央处理器所属的指定的缓存区域包括内存的指定区域对应的中央处理器所属的缓存区域。
本发明还提供一种用于多中央处理器架构的缓存操作访问的装置,包括:确定单元,用于根据设定条件确定多中央处理器架构中源中央处理器和目的中央处理器;
同步单元,用于将所述源中央处理器所属指定的缓存区域的数据同步到目的中央处理器所属的相应的缓存区域;
操作单元,用于所述目的中央处理器对其所属缓存的所述区域的数据进行操作及访问。
与现有技术相比,本发明提供的一种用于同步中央处理器所属缓存的方法具有以下优点:能够将中央处理器所属缓存中的数据直接复制同步到其他中央处理器所属缓存的相应区域,确保程序运行的时候,其他中央处理器可以直接从本地缓存里面访问到数据,有效降低开销,提高程序运行效率。
与现有技术相比,本发明提供的一种用于触发同步中央处理器所属缓存的方法具有以下优点:通过对内存标记的判断触发开始同步中央处理器所属缓存。能够充分利用内存标记的功能,实现容易,效率高。
与现有技术相比,本发明提供的一种用于启动同步中央处理器所属缓存的方法具有以下优点:采用指令的方式启动同步中央处理器所属缓存。能够为程序提供灵活的中央处理器缓存同步得方式。
与现有技术相比,本发明提供的一种用于同步中央处理器所述缓存区域的方法具有以下优点:通过标记内存的指定区域为同步并根据所述标记同步中央处理器所属缓存的相应区域,能够为中央处理器的缓存同步提供灵活的触发条件。
与现有技术相比,本发明提供的用于多中央处理器架构的缓存操作访问的方法具有以下优点:能够将其他中央处理器缓存同步到本地缓存后操作访问,提高了效率。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
本申请第一实施例提供一种用于同步中央处理器所属缓存的方法,其应用场景如图1所示,
在具有多个中央处理器计算机系统中,每个中央处理器(CPU0和CPU1) 具有自己所属的缓存(Cache),应用程序所用到的数据(DATA)除了被存储在内存(Memory)中,还可能同时存在于中央处理器所属指定的缓存区域中(CPU0 或CPU1所属的缓存的相应区域)以便中央处理器对其进行的处理。
所述中央处理器所属的指定的缓存区域为内存的指定区域对应的中央处理器所属的缓存区域。所述内存的指定区域可以由内存的地址所指定。即图中内存中数据(DATA)所在区域对应于CPU0和CPU1的存储所述数据的缓存区域。内存的所述区域由内存的地址所确定。
所述数据被中央处理器处理后可能会被更新为不同的值,如图中内存中的数据(DATA)被读入CPU0所属缓存中后经过任务0(TASK0)处理后更新为最新的值(DATA’),当其他中央处理器(如CPU1)的任务1(TASK1)需要访问所述数据的最新的值(DATA’)的时候,需要启动查找所述数据的最新的值 (DATA’)的位置(CPU0所属的缓存中)并将其拷贝到相应的中央处理器(CPU1) 所属的相应的缓存区域中的一系列操作。
除了需要在内存和各个中央处理器所属缓存中查找最新数据的位置外,当所述最新的数据存在于其他中央处理器所属缓存中时(图中位于CPU0所属的缓存中),在本申请之前现有的将所述数据的最新的值拷贝到相应的中央处理器的相应缓存区域中的方式只能是先将其从所述中央处理器的缓存同步到内存中再从内存中同步到需要访问所述数据的中央处理器(CPU1)的缓存中。
可见,现有的方式时间开销较大,速度慢,效率低。
本申请例提供的方法能够在所述最新的数据被其他中央处理器用到之前将其拷贝到所述中央处理器的缓存中。其流程示意图如图2所示。
在进行框101所示的确定源中央处理器和目的中央处理器的操作前,还可以先对系统当前情况进行判断,判断是否满足进行中央处理器所属缓存间同步的条件。
具体地,本实施例提供下述两种判断是否满足进行中央处理器所属缓存间同步的条件的方法:
方法一,通过内存指定区域的标记来判断是否满足进行中央处理器所属缓存间同步的条件。具体地,可以采取以下操作来判断:
首先判断所述内存的指定区域对应的中央处理器所属缓存区域的数据是否被更新。如,可以利用系统中同步内存和中央处理器所属缓存的模块来判对数据的更新情况进行判断。
所述同步内存和中央处理器所属缓存的模块监控各个中央处理器的缓存和内存中的数据,能够获得数据被更新的信息,知道最新数据的位置。利用其判断所述内存的指定区域对应的中央处理器所属缓存区域的数据是否被更新简便易行,无需额外的开发成本。例如,多中央处理器系统的Agent模块为窥探机制中监控中央处理器所属缓存数据并同步中央处理器所属缓存和内存的模块,可以利用其获知中央处理器所属的相应缓存内数据是否被更新。
当获知所述数据被更新后,判断所述内存的指定区域的标记是否包括同步标记和下述标记的至少一种:写回标记或写穿标记。
在多中央处理器的系统中,内存类型寄存器(Memory Type Range Register,简称MTRR)由一些类型寄存器(MSR寄存器)构成的,对系统内存不同区域的属性加以标记,用以提示CPU的内存访问行为,如是否需要缓存(cache),是否需要立即同步到内存等。
通过对MTRR进行设置,能够将系统内存不同区域打上上述标签之一,在系统开启了paging模式情况下,页表项(Page Table Entry,简称PTE)中也会带有相应的标签。这些标签用来提示CPU在访问数据后的行为。
所述内存区域的属性标记可以包括:UC(UnCacheable),WC(Write Combining),WP(Write Protected),WT(Write Through),WB(Write Back) 等。
PTE和MTRR对内存的标记可能不同,不一样时,选择对数据安全最严格的方式进行操作,比如MTRR标记为WB,但是PTE为WT时,CPU将选择WT,即将数据写入cache的同时也写入内存。
本实施例中,当MTRR或PTE二者之一对所述指定的内存区域的标记为表示同步的标记(例如Remote Sync,简称RS),并且另一个标记为WB或WT时,则认为满足进行中央处理器所属缓存间同步的条件。如果MTRR或者PTE二者之一将所述内存指定的区域标记为UC/WP/WC的一种,则不管另一个标记是否为表示同步的标记,都不满足进行中央处理器所属缓存间同步的条件。
例如MTRR中对所述内存的指定区域标记为RS且PTE中对所述内存的指定区域标记为WT时,或者MTRR中对所述内存的指定区域标记为WB且PTE中对所述内存的指定区域标记为RS时,则认为满足进行中央处理器所属缓存间同步的条件。
方法二,通过判断是否获取到启动同步操作的指令来判断是否满足进行中央处理器所属缓存间同步的条件。
应用程序或软件自身往往对自己的行为更加了解,能够准确预测自己对数据的访问行为。
能够运行在多个中央处理器上的应用软件或程序知道哪些数据可能被多个中央处理器访问,知道什么时候哪个中央处理器需要访问哪些数据,以及所述数据是否有可能存在于其他中央处理器所属的缓存中。
中上述应用程序或软件在中央处理器需要用到可能存储于其他中央处理器缓存中的数据前,可以发送启动同步操作的指令。本实施例的方法通过是否获取到所述指令来判断是否满足进行中央处理器所属缓存间同步的条件。
若没有获取到所述指令,则认为还不满足进行中央处理器所属缓存间同步的条件,继续等待并判断是否获取到所述指令;若获取到所述指令则认为满足进行中央处理器所属缓存间同步的条件。
还可以将上述的两种方法结合起来判断满足进行中央处理器所属缓存间同步的条件。如当其中一种方法判断出满足进行中央处理器所属缓存间同步的条件就可以认为当前系统满足进行中央处理器所属缓存间同步的条件。也可以当上述两种方法都得出满足进行中央处理器所属缓存间同步的条件的情况认为系统当前满足进行中央处理器所属缓存间同步的条件。具体的情况可以根据应用场景来确定。
上述两种方法能够提供灵活的判断是否满足进行中央处理器所属缓存间同步的条件。便于配置和调用。
当判断出系统当前状态满足进行中央处理器所属缓存间同步的条件后,再确定同步操作相对应地源中央处理器和目的中央处理器。在后续操作前对当前状态满足进行中央处理器所属缓存间同步的条件进行判断能够使得后续操作的效率更高。
框101,确定源中央处理器和目的中央处理器。
确定源中央处理器的方式可以有多种,本实施例提供下述两种确定源中央处理器的方式:
对于前文中采用方法一判断得出满足进行中央处理器所属缓存间同步的条件的情况,可以将将所述内存的指定区域对应的中央处理器所属缓存区域被更新的中央处理器作为源中央处理器。
对于前文中采用方法二判断得出满足进行中央处理器所属缓存间同步的条件的情况,可以利用方法一中所述的同步内存和中央处理器所属缓存的模块确定源中央处理器:将所述内存的指定区域的数据对应的缓存中数据最新的中央处理器作为源中央处理器。
所述同步内存和中央处理器所属缓存的模块(如Agent模块),能够获得数据被更新的信息,知道最新数据的位置,因此利用其确定源中央处理器方便快捷。
确定目的中央处理器的方式同样可以有多种,例如对于采用前文中方法二,通过判断是否获取到将中央处理器所属的指定的缓存区域进行同步的指令,判断得出满足进行中央处理器所属缓存间同步的条件的情况,所述指令中指定了目的中央处理器的标识,据此可以确定木器中央处理器。
此外,对于还没有确定目的中央处理器的情况,本实施例还提供下述的方式来确定目的中央处理器:查找所述内存的指定区域所对应的关联中央处理器。
具体地,可以配置MSR寄存器,用来记录一段内存的基地址,这一段内存相当于一个内存指定区域与关联中央处理器的对应表,其中每一条记录的内容是:内存地址以及所述内存地址对应的关联中央处理器的标识。
所述内存地址对应于内存的指定区域,所述关联中央处理器为可能存储有所述内存指定区域的数据或其更新值的中央处理器。
查找所述对应表,所述关联中央处理器中除源中央处理器外的其他中央处理器作为目的中央处理器。
例如所述对应表内内存地址为A对应中央处理器0,中央处理器1,中央处理器2和中央处理器3,而源中央处理器为中央处理器0,则将中央处理器1,中央处理器2和中央处理器3作为目的中央处理器。
至此能够确定源中央处理器和目的中央处理器,可以进行框102所述的相应的同步操作。
在进行框102所述的同步操作前,对于前文所述通过内存指定区域的标记判断得出满足进行中央处理器所属缓存间同步的条件的情况,还可以执行相应的写回或写穿标记所对应的操作。
例如,对于MTRR和PTE中内存标记为写穿(WT)和标识同步的标记(如 RS)时,进行后续中央处理器所属的缓存区域前,先执行WT所对应的操作,将数据写入缓存的同时也写入内存中。
上述操作能够按照内存标记的含义对内存和其相应的中央处理器所属缓存进行同步,不影响后续不同中央处理器属缓存间的同步。
框102,将所述源中央处理器指定的缓存区域的数据同步到目的中央处理器相应的缓存区域。
确定了同步操作所对应的源中央处理器和目的中央处理器后,可以进行同步操作,具体地,可以利用前文所述的同步内存和中央处理器所属缓存的模块 (如Agent),不通过内存,直接将所述源中央处理器所属指定的缓存区域的数据同步到目的中央处理器所属的相应的缓存区域。所述中央处理器所属指定的缓存区域为内存指定区域所对应的缓存区域。
所述同步内存和中央处理器所属缓存的模块能够将内存中的数据与中央处理器缓存中相应的数据进行同步,利用其直接在不同的中央处理器的缓存间同步数据方便快捷。
利用所述同步内存和中央处理器所属缓存的模块记性同步操作前,还可以判断其状态是否空闲,仅当其状态为空闲时才利用其进行相应的同步。这样能够不影响内存的读写性能。
所述同步内存和中央处理器所述缓存的模块既可以部署在中央处理器内 (如每个中央处理内都部署也可以仅在某个中央处理器中部署),也可以部署于中央处理器外作为独立的模块工作。
本框所述的同步操作还可以是利用快速通道连接(QPI),将所述源中央处理器所属指定的缓存区域的数据同步到目的中央处理器所属的相应的缓存区域。这样可以不必通过内存直接将所述源中央处理器所属指定的缓存区域的数据同步到目的中央处理器所属的相应的缓存区域。
本申请第二实施例提供一种用于触发同步中央处理器所属缓存的方法,其流程示意图如图3所示,包括下述操作:
框201,判断内存的指定区域对应的中央处理器所属缓存区域的数据是否被更新。
通过监控所述内存指定区域与对应的中央处理器所属指定缓存区域的数据,可以获知数据是否被更新,本框中所述的操作可以利用同步内存和中央处理器所属缓存的模块获得数据被更新的信息,更详细的说明可以参考本申请第一实施例中相关的描述,在此不做赘述。
框202,若被更新,判断所述内存的指定区域的标记是否包括同步标记和下述标记的至少一种:写回标记或写穿标记。
当获得了数据被更新的信息后,对内存指定区域的标记,如MTRR和PTE 进行判断,更详细的说明可以参考本申请第一实施例中相关的描述,在此不做赘述。
框203,若包括,则触发进行同步中央处理器所属缓存的操作。
当所述内存的指定区域的标记包括表示同步的标记和写回标记或同步标记和写穿标记时,触发进行同步中央处理器所属缓存的操作。
当所述内存的指定区域的标记包括表示同步的标记和写回标记或同步标记和写穿标记时,在进行同步中央处理器所属缓存前,还可以执行写回或写穿标记所对应的操作。从而不会影响系统对内存操作。
本申请第三实施例提供一种用于启动同步中央处理器所属缓存的方法,其流程示意图如图4所示,包括下述操作:
框301,生成启动同步中央处理器所属缓存的指令,所述指令包括目的中央处理器的标识和内存的指定区域的标识。
当可能需要对内存指定区域所对应的中央处理器所属缓存区域中的最新数据时进行同步时,生成指令,所述指令指定需要使用用到所述最新数据的中央处理器和所述内存的指定区域。
例如可以指定中央处理器的标识和内存的地址来制定所述中央处理器和所述内存的指定区域。
更详细的说明可以参考本申请第一实施例中相关的描述,在此不做赘述。
框302,发送所述指令启动同步中央处理器所属缓存。
生成所述指令后,将其发送给预先设定的管理同步的接收者,以启动相应的同步操作。
本申请第四实施例提供一种操作内存的方法,其流程示意图如图5所示,包括下述操作:
框401,将内存的指定区域的标记设置为同步。
将所述内存区域标记为预先设定的表示同步的标记。例如可以将MTRR或 PTE中内存的标记设置为RS等,内存的指定区域可以又内存的地址来指定。详细的说明可以参考本申请第一实施例中相关的描述,在此不做赘述。
框402,根据所述标记,同步中央处理器所属缓存的相应区域。
将内存的指定区域的标记设置为同步后,在可能需要进行中央处理器所属缓存的同步操作时,根据所述标记进行相应的操作。
本申请第五实施例提供一种用于同步中央处理器所属缓存的装置,其结构框图如图6所示,包括:
确定单元501,用于确定源中央处理器和目的中央处理器;
同步单元502,用于将所述源中央处理器所属指定的缓存区域的数据同步到目的中央处理器所属的相应的缓存区域。
可选地,所述用于同步中央处理器所属缓存的装置,还包括:
判断单元,用于判断是否满足进行中央处理器所属缓存间同步的条件。
可选地,所述判断单元可以包括:
第一判断子单元,用于判断所述内存的指定区域对应的中央处理器所属缓存区域的数据是否被更新;
标记判断子单元,用于若被更新,判断所述内存的指定区域的标记是否包括同步标记和下述标记的至少一种:写回标记或写穿标记;
包括子单元,用于若包括,则满足进行中央处理器所属缓存间同步的条件。
可选地,所述判断单元也可以包括:
第二判断子单元,用于判断是否获取到将中央处理器所属的指定的缓存区域进行同步的指令,所述指令指定目的中央处理器和内存的指定区域;
获取到子单元,用若获取到,则满足进行中央处理器所属缓存间同步的条件。
可选地,所述确定单元包括:
源确定子单元,用于将所述内存的指定区域对应的中央处理器所属缓存区域被更新的中央处理器作为源中央处理器;
目的确定子单元,用于确定目的中央处理器。
可选地,所述装置还可以包括:
相应操作执行单元,用于执行写回或写穿标记所对应的操作。
可选地,所述确定单元也可以包括:
源确定第二子单元,用于利用同步内存和中央处理器所属缓存的模块确定源中央处理器;
目的确定子单元,用于确定目的中央处理器。
可选地,所述确定单元也可以包括:
源确定子单元,用于确定源处理器;
查找子单元,用于查找所述内存的指定区域所对应的关联中央处理器;
作为子单元,用于将所述关联中央处理器中除源中央处理器外的其他中央处理器作为目的中央处理器。
可选地,所述同步单元可以具体用于:
利用同步内存和中央处理器所属缓存的模块,不通过内存,直接将所述源中央处理器所属指定的缓存区域的数据同步到目的中央处理器所属的相应的缓存区域。
可选地,所述装置还可以包括:
空闲判断单元,用于判断同步内存和中央处理器所属缓存的模块是否空闲。
本申请第六实施例提供一种用于触发同步中央处理器所属缓存的装置,其结构框图如图7所示,特征在于,包括:
判断单元601,用于判断内存的指定区域对应的中央处理器所属缓存区域的数据是否被更新;
标记判断单元602,用于若被更新,判断所述内存的指定区域的标记是否包括同步标记和下述标记的至少一种:写回标记或写穿标记;
触发单元603,用于若包括,则触发进行同步中央处理器所属缓存的操作。
可选地,所述装置还可以包括执行单元,用于执行写回或写穿标记所对应的操作。
本申请第七实施例提供一种用于启动同步中央处理器所属缓存的装置,其结构框图如图8所示,包括:
生成单元701,用于生成启动同步中央处理器所属缓存的指令,所述指令包括目的中央处理器的标识和内存的指定区域的标识;
发送单元702,用于发送所述指令启动同步中央处理器所属缓存。
本申请第八实施例提供一种操作内存的装置,其结构框图如图9所示,包括:
设置单元801,用于将内存的指定区域的标记设置为同步;
同步单元802,用于根据所述标记,同步中央处理器所属缓存的相应区域。
本申请第九实施例提供一种机器可读的存储介质,所述存储介质存储或携带有用于同步中央处理器所属缓存的指令,所述指令被执行后,导致下述操作:
判断是否满足进行中央处理器所属缓存间同步的条件;
若满足,确定源中央处理器和目的中央处理器;
将所述源中央处理器所属指定的缓存区域的数据同步到目的中央处理器所属的相应的缓存区域;
所述中央处理器所属的指定的缓存区域包括内存的指定区域对应的中央处理器所属的缓存区域。
本申请第十实施例提供一种机器可读的存储介质,所述存储介质存储或携带有用于触发同步中央处理器所属缓存的指令,所述指令被执行后,导致下述操作:
判断内存的指定区域对应的中央处理器所属缓存区域的数据是否被更新;
若被更新,判断所述内存的指定区域的标记是否包括同步标记和下述标记的至少一种:写回标记或写穿标记;
若包括,则进行同步中央处理器所属缓存的操作。
本申请第十一实施例提供一种机器可读的存储介质,所述存储介质存储或携带有用于启动同步中央处理器所属缓存的指令,所述指令被执行后,导致下述操作:
生成启动同步中央处理器所属缓存的指令,所述指令包括目的中央处理器的标识和内存的指定区域的标识;
发送所述指令启动同步中央处理器所属缓存。
本申请第十二实施例提供一种机器可读的存储介质,所述存储介质存储或携带有操作内存的指令,所述指令被执行会导致下述操作:
将内存的指定区域的标记设置为同步;
根据所述标记,同步中央处理器所属缓存的相应区域。
本申请第十三实施例提供一种电子设备,包括存储介质和处理器,所述存储介质存储或携带有实现用于同步中央处理器所属缓存的方法的程序,该设备通电并通过所述处理器运行所述实现用于同步中央处理器所属缓存的方法的程序后,执行下述操作:
判断是否满足进行中央处理器所属缓存间同步的条件;
若满足,确定源中央处理器和目的中央处理器;
将所述源中央处理器所属指定的缓存区域的数据同步到目的中央处理器所属的相应的缓存区域;
所述中央处理器所属的指定的缓存区域包括内存的指定区域对应的中央处理器所属的缓存区域。
本申请第十四实施例提供一种电子设备,包括存储介质和处理器,所述存储介质存储或携带有实现用于触发同步中央处理器所属缓存的方法的程序,该设备通电并通过所述处理器运行所述实现用于触发同步中央处理器所属缓存的方法的程序后,执行下述操作:
判断内存的指定区域对应的中央处理器所属缓存区域的数据是否被更新;
若被更新,判断所述内存的指定区域的标记是否包括同步标记和下述标记的至少一种:写回标记或写穿标记;
若包括,则进行同步中央处理器所属缓存的操作。
本申请第十五实施例提供一种电子设备,包括存储介质和处理器所述存储介质存储或携带有实现用于启动同步中央处理器所属缓存的方法的程序,该设备通电并通过所述处理器运行所述实现用于启动同步中央处理器所属缓存的方法的程序后,执行下述操作:
生成启动同步中央处理器所属缓存的指令,所述指令包括目的中央处理器的标识和内存的指定区域的标识;
发送所述指令启动同步中央处理器所属缓存。
本申请第十六实施例提供一种电子设备,包括存储介质和处理器,所述存储介质存储或携带有实现操作内存的方法的程序,该设备通电并通过所述处理器运行所述实现操作内存的方法的程序后,执行下述操作:
将内存的指定区域的标记设置为同步;
根据所述标记,同步中央处理器所属缓存的相应区域。
本申请第十七实施例提供一种用于多中央处理器架构的缓存操作访问的方法,其流程示意图如图10所示,包括一下操作:
框1001,根据设定条件确定多中央处理器架构中源中央处理器和目的中央处理器。
所述设定的条件包括对源中央处理器的选择条件,对目的中央处理器的选择条件以及执行本方法的条件等,如时间是否满足执行本方法的时间要求或系统软硬件状态是否满足执行本方法的要求等。本操作的具体说明可以参考本申请第一实施例中的详细描述,在此不做赘述。
框1002,将所述源中央处理器所属指定的缓存区域的数据同步到目的中央处理器所属的相应的缓存区域。
本操作的具体说明可以参考本申请第一实施例中的详细描述,在此不做赘述。
框1003,所述目的中央处理器对其所属缓存的所述区域的数据进行操作及访问。
目的中央处理器所述缓存的所述区域的数据被更新后,目的中央处理器可以对所述缓存区域的数据进行读取,写入等操作。
本申请地十八实施例提供一种用于多中央处理器架构的缓存操作访问的装置,其结构框图如图11所示,包括:
确定单元1101,用于根据设定条件确定多中央处理器架构中源中央处理器和目的中央处理器。
同步单元1102,用于将所述源中央处理器所属指定的缓存区域的数据同步到目的中央处理器所属的相应的缓存区域。
操作单元1103,用于所述目的中央处理器对其所属缓存的所述区域的数据进行操作及访问。
本发明虽然以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以做出可能的变动和修改,因此本发明的保护范围应当以本发明权利要求所界定的范围为准。