CN116049031A - 数据处理方法、装置、电子设备和存储介质 - Google Patents
数据处理方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN116049031A CN116049031A CN202310187812.0A CN202310187812A CN116049031A CN 116049031 A CN116049031 A CN 116049031A CN 202310187812 A CN202310187812 A CN 202310187812A CN 116049031 A CN116049031 A CN 116049031A
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- information
- directory
- coherence
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 32
- 238000012423 maintenance Methods 0.000 claims abstract description 109
- 238000013500 data storage Methods 0.000 claims abstract description 67
- 238000000034 method Methods 0.000 claims description 34
- 230000004044 response Effects 0.000 claims description 29
- 230000008569 process Effects 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 14
- 238000010586 diagram Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种数据处理方法、装置、电子设备和存储介质。该数据处理方法包括:通过一致性维护模块维护由多个处理器使用的多个缓存中存储的数据存储信息对应的数据的一致性,其中,所述多个缓存被配置为存储数据存储信息,所述多个缓存中的第一缓存还被配置为存储一致性目录信息,所述一致性目录信息对应于所述数据存储信息所对应的数据中的至少部分数据;接收多个处理器中的第一处理器对于第一存储地址的访问请求;向一致性维护模块发送对应于第一存储地址的目录预取请求;由一致性维护模块处理目录预取请求,以用于将对应于第一存储地址的一致性目录信息缓存到第一缓存中。该数据处理方法能够降低处理器访问地址时的访问延时。
Description
技术领域
本发明涉及一种数据处理方法数据、数据处理装置、电子设备和存储介质。
背景技术
目前,对于具有多个处理器和多个高速缓冲存储器(Cache,即缓存)的计算机系统,缓存可以缓存大量数据,这些数据可能是独占的,也可能在不同缓存中保存有相同地址的数据副本。当不同的缓存对所缓存的相同地址的数据进行操作时,会产生一致性问题。为了解决这个问题,出现了很多技术来维护数据一致性。例如,当多个缓存存储有相同的数据副本时,某个处理器想修改某个缓存中存储的数据时,该数据在其他缓存的副本将被标记无效,以避免发生一致性错误。
发明内容
本公开的至少一个实施例提供了一种数据处理方法,所述数据处理方法包括:通过一致性维护模块维护由多个处理器使用的多个缓存中存储的数据存储信息对应的数据的一致性,其中,所述多个缓存被配置为存储数据存储信息,所述多个缓存中的第一缓存还被配置为存储一致性目录信息,所述一致性目录信息对应于所述数据存储信息所对应的数据中的至少部分数据;接收所述多个处理器中的第一处理器对于第一存储地址的访问请求;向所述一致性维护模块发送对应于所述第一存储地址的目录预取请求;由所述一致性维护模块处理所述目录预取请求,以用于将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中。
例如,在本公开的至少一个实施例提供的数据处理方法中,由所述一致性维护模块处理所述目录预取请求,以用于将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中,包括:所述一致性维护模块向系统存储器发送与所述目录预取请求对应的目录读取请求,以读取对应于所述第一存储地址的一致性目录信息;响应于对应于所述第一存储地址的一致性目录信息存储在系统存储器中,所述一致性维护模块将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中。
例如,在本公开的至少一个实施例提供的数据处理方法中,由所述一致性维护模块处理所述目录预取请求,以用于将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中,还包括:响应于对应于所述第一存储地址的一致性目录信息非存在于所述系统存储器中,所述一致性维护模块不将对应于所述第一存储地址的一致性目录信息缓存到在所述第一缓存中。
例如,在本公开的至少一个实施例提供的数据处理方法中,所述访问请求是数据预取请求。
例如,在本公开的至少一个实施例提供的数据处理方法中,所述第一处理器发出所述数据预取请求的同时或之后发出所述目录预取请求。
例如,在本公开的至少一个实施例提供的数据处理方法中,所述一致性维护模块将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中,包括:响应于所述第一缓存不存在存储容量冲突,所述一致性维护模块直接将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中。
例如,在本公开的至少一个实施例提供的数据处理方法中,所述一致性维护模块将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中,还包括:响应于所述第一缓存存在存储容量冲突,基于替换规则,确定存储在所述第一缓存中的待替换的信息;响应于所述待替换的信息为一致性目录信息,将对应于所述第一存储地址的一致性目录信息存储在所述第一缓存中的用于存储所述待替换的信息的存储地址中,并将所述待替换的信息存储在所述系统存储器中。
例如,在本公开的至少一个实施例提供的数据处理方法中,所述一致性维护模块将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中,还包括:响应于所述待替换的信息为数据存储信息,且所述数据存储信息对应的数据对应的数据状态信息表示脏状态,将对应于所述第一存储地址的一致性目录信息存储在所述第一缓存中的用于存储所述待替换的信息的存储地址中,并将所述待替换的信息存储在所述系统存储器中;响应于所述待替换的信息为数据存储信息,且所述数据存储信息对应的数据对应的数据状态信息表示干净状态,将对应于所述第一存储地址的一致性目录信息存储在所述第一缓存中的用于存储所述待替换的信息的存储地址中。
本公开的至少一个实施例还提供了一种电子设备,该电子设备包括:多个处理器;多个缓存,包括第一缓存,其中,所述多个缓存被配置为存储数据存储信息,所述多个缓存中的第一缓存还被配置为存储一致性目录信息,所述一致性目录信息对应于所述数据存储信息所对应的数据中的至少部分数据;一致性维护模块,配置为维护所述多个缓存中存储的数据存储信息对应的数据的一致性;目录预测模块,其中,所述目录预测模块配置为:接收所述多个处理器中的第一处理器对于第一存储地址的访问请求,向所述一致性维护模块发送对应于所述第一存储地址的目录预取请求,其中,所述一致性维护模块还配置为处理所述目录预取请求,以用于将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中。
例如,在至少一个实施例的电子设备中,所述一致性维护模块还配置为处理所述目录预取请求,以用于将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中,包括:所述一致性维护模块向系统存储器发送与所述目录预取请求对应的目录读取请求,以读取对应于所述第一存储地址的一致性目录信息;响应于对应于所述第一存储地址的一致性目录信息存储在系统存储器中,所述一致性维护模块将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中。
例如,在至少一个实施例的电子设备中,所述一致性维护模块配置为处理所述目录预取请求,以用于将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中,还包括:响应于对应于所述第一存储地址的一致性目录信息非存在于系统存储器中,所述一致性维护模块不将对应于所述第一存储地址的一致性目录信息缓存到在所述第一缓存中。
例如,在至少一个实施例的电子设备中,所述访问请求是数据预取请求。
例如,在至少一个实施例的电子设备中,所述第一处理器包括所述目录预测模块。
例如,在至少一个实施例的电子设备中,所述一致性维护模块将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中,包括:响应于所述第一缓存不存在存储容量冲突,所述一致性维护模块直接将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中。
例如,在至少一个实施例的电子设备中,所述一致性维护模块将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中,还包括:响应于所述第一缓存存在存储容量冲突,基于替换规则,确定存储在所述第一缓存中的待替换的信息;响应于所述待替换的信息为一致性目录信息,将对应于所述第一存储地址的一致性目录信息存储在所述第一缓存中的用于存储所述待替换的信息的存储地址中,并将所述待替换的信息存储在所述系统存储器中。
例如,在至少一个实施例的电子设备中,所述一致性维护模块将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中,还包括:响应于所述待替换的信息为数据存储信息,且所述数据存储信息对应的数据对应的数据状态信息表示脏状态,将对应于所述第一存储地址的一致性目录信息存储在所述第一缓存中的用于存储所述待替换的信息的存储地址中,并将所述待替换的信息存储在所述系统存储器中;响应于所述待替换的信息为数据存储信息,且所述数据存储信息对应的数据对应的数据状态信息表示干净状态,将对应于所述第一存储地址的一致性目录信息存储在所述第一缓存中的用于存储所述待替换的信息的存储地址中。
本公开的至少一个实施例还提供了一种数据处理装置,该数据处理装置包括:存储器,配置为存储计算机可执行指令;以及处理器,配置为执行所述计算机可执行指令,其中,所述计算机可执行指令被所述处理器执行时实现如上任一实施例所述的方法。
本公开的至少一个实施例还提供了一种非暂时性存储介质,非暂时性地存储计算机可执行指令,其中,当所述计算机可执行指令由处理器执行时,实现如上任一实施例所述的方法。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1为本公开一些实施例提供的一种电子设备的示意图。
图2为本公开至少一个实施例提供的一种电子设备的结构示意图。
图3为本公开一些实施例提供的一种第一缓存的结构示意图。
图4为本公开一些实施例提供的一种第一缓存和系统存储器的结构示意图。
图5为本公开一些实施例提供的一种数据处理方法的流程图。
图6为本公开一些实施例提供的目录预取示意图。
图7示出了本公开一实施例提供的一种数据处理装置的示意图。
图8示出了本公开一实施例提供的一种非暂时性存储介质的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
为了保持对本公开实施例的以下说明清楚且简明,本公开省略了部分已知功能和已知部件的详细说明。
在具有多个处理器(或处理器核)的电子设备(例如计算机系统)中,为了能提高数据一致性维护的效率,可以利用例如侦听过滤等技术进行数据一致性维护。侦听过滤可以帮助追踪数据在多个缓存中的缓存状态,例如,数据在缓存中只有单一副本、有多个副本、或者该数据只存在系统存储器(例如,主存)中等。
在具有多个处理器和多个缓存的计算机系统中,目前,某些目录式一致性系统会通过目录追踪数据的缓存状态,并把追踪到的数据的缓存状态存储在目录中,即,目录可以用于维护数据一致性。当一致性代理侦听总线发现一致性事务后,会查询目录追踪的信息并发出响应的探针完成一致性维护。例如,处理器对私有缓存发出的访存请求,会首先发送到拥有相应缓存块的目录结构中,该目录结构中记录了当前缓存块的共享情况,目录结构控制器会根据当前缓存块的状态,选取响应此请求或者转发此请求到其它相应的私有缓存中。
当处理器需要读写系统一致性数据时,首先会在多级缓存内查询,假设都没有命中则发送读写请求到一致性维护模块,一致性维护模块会查询可缓存目录的系统级缓存(SLC,system level cache),假设也没有命中,则会从系统存储器中读出相应地址的数据和/或对应的目录信息;若从系统存储器中读回的目录信息可以命中,则一致性维护模块对该缓存地址进行一致性维护返回相应的回复给发送请求的处理器;若从系统存储器中读回的目录信息没有命中,则一致性维护模块会更新该地址缓存的目录信息并保存在SLC的对应地址上,并返回相应的回复给发送请求的处理器。
所缓存的目录信息如缓存的数据一样,当发生缓存容量冲突时,会根据替换规则被冲突数据所替换,被替换的目录信息会保存到预先分配好的系统存储器的映射地址中。当相同地址再次被访问时,从系统存储器中读取系统数据时也要从所映射的目录地址中读取目录数据到SLC中,一致性维护模块需要该缓存地址的目录信息完成一致性事务处理。然而,当某个地址的目录信息被从缓存存储到系统存储器后,处理器需要访问这个地址时,需要等待目录信息从系统存储器中先读取出来再做一致性维护操作,这会增加处理器的访问延时。
本公开至少一个实施例提供一种数据处理方法。例如,本公开提供的一种电子设备包括多个处理器、由多个处理器使用的多个缓存和一致性维护模块,多个缓存包括第一缓存,第一缓存被配置为存储多个缓存中存储的所有数据存储信息对应的数据中的至少部分数据对应的一致性目录信息,一致性维护模块被配置为维护多个缓存中存储的所有数据存储信息对应的数据的一致性。该数据处理方法包括:接收多个处理器中的第一处理器对于第一存储地址的访问请求;向一致性维护模块发送对应于第一存储地址的目录预取请求;由一致性维护模块处理目录预取请求,以用于将对应于第一存储地址的一致性目录信息缓存到第一缓存中。
在本公开的实施例中,当处理器(例如上述第一处理器)实际发送访问地址(例如上述的第一存储地址)的请求时,一致性维护模块就可以直接从缓存中读取之前预取的一致性目录信息进行一致性维护,从而降低处理器访问地址时的访问延时。
本公开至少一些实施例还提供了一种电子设备,包括:多个处理器、多个缓存、一致性维护模块和目录预测模块。多个缓存配置为由多个处理器使用,其中,多个缓存包括第一缓存,第一缓存被配置为存储多个缓存中存储的所有数据存储信息对应的数据中的至少部分数据对应的一致性目录信息;一致性维护模块配置为维护多个缓存中存储的所有数据存储信息对应的数据的一致性;目录预测模块配置为:接收多个处理器中的第一处理器对于第一存储地址的访问请求,向一致性维护模块发送对应于第一存储地址的目录预取请求。一致性维护模块还配置为处理目录预取请求,以用于将对应于第一存储地址的一致性目录信息缓存到第一缓存中。
上述实施例的电子设备的技术效果与上述数据处理方法的技术效果相同。
上述实施例中,第一处理器可以是多个处理器中的任一处理器,第一存储地址可以是任一存储地址,即,这里的“第一”仅用于标识作为描述对象的处理器或存储地址,而非特指某一特定的处理器或存储地址。
下面将结合具体示例对本公开的各个实施例进行说明。
图1为本公开至少一个实施例提供的一种电子设备的示意图,图2为本公开至少一个实施例提供的一种电子设备的结构示意图。
如图1所示,如图1和图2所示,电子设备100包括多个缓存101(缓存1011~缓存1016)、一致性维护模块102、多个处理器103(处理器1031~1032)和系统存储器105。虽然图1和图2中示例性地示出了具体数量的缓存、处理器、一致性维护模块以及系统存储器,但本公开的实施例不限于此,该具体数量可以根据实际需要设置为任何值。
例如,如图1和图2所示,多个缓存101包括由多个处理器103使用的多个专用缓存以及多个处理器103共用的至少一个共享缓存。在一些实施例中,至少一个共享缓存包括第一缓存1011,即第一缓存1011为共享缓存,且可以由多个处理器103共用;在另一些实施例中,第一缓存1011可以为专用缓存;本公开的实施例对此不作具体的限定。
需要说明的是,在本公开的实施例中,处理器的专用缓存表示仅仅可以由该处理器访问的缓存,而共享缓存则可以由多个处理器访问。
每个处理器103可以使用至少一个专用缓存和至少一个共享缓存,例如,图1和图2所示的缓存1012和缓存1013可以为由处理器1031使用的专用缓存,图1和图2所示的缓存1014和缓存1015可以为由处理器1032使用的专用缓存,图1和图2所示的缓存1016可以为由处理器1031和处理器1032共用的共享缓存。例如,第一缓存1011也可以为由处理器1031和处理器1032共用的共享缓存。例如,缓存1012和缓存1014可以为第一级缓存(L1),缓存1013和缓存1015可以为第二级缓存(L2)。缓存1016可以为第三级缓存(L3),第一缓存1011可以为系统级缓存(SLC,system level cache,SLC通常指计算机系统中分布在系统存储器和多级缓存(L1、L2、L3等)之间的缓存)。
需要说明的是,在电子设备100中,缓存的结构层次可以根据实际情况设置,而不限于图2所示的结构,例如,在一些实施例中,缓存的结构可以包括互联拓扑结构。
本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)、可穿戴电子设备等的移动终端以及诸如数字TV、台式计算机、智能家居设备等的固定终端以及各种类型的服务器。
例如,多个缓存101配置为由多个处理器103使用。一致性维护模块102被配置为维护多个缓存101中存储的所有数据存储信息对应的数据的一致性。如图1和图2所示,多个缓存101包括第一缓存,例如,图1和图2所示的缓存1011可以为第一缓存的一个示例。本公开不限于此,在另一些实施例中,图1和图2所示的缓存1016也可以为第一缓存的一个示例。在本公开的示例中,多个缓存101被配置为存储数据存储信息,多个缓存101中的第一缓存1016被配置为存储一致性目录信息,该一致性目录信息对应于多个缓存101中存储的数据存储信息所对应的数据中的至少部分数据。例如,第一缓存被配置为存储多个缓存101中存储的所有数据存储信息对应的数据中的至少部分数据对应的一致性目录信息。
下面以缓存1011为第一缓存为例进行描述,因此,下面的描述中采用1011表示第一缓存。
例如,第一缓存1011可以是仅用于存储一致性目录信息的缓存。但是本公开不限于此,在一些实施例中,第一缓存1011可以用于存储一致性目录信息和数据存储信息二者。
例如,如图2所示,根据访问缓存的逻辑顺序,缓存1012最靠近处理器1031,缓存1011最远离处理器1031,即处理器1031最先访问缓存1012,最后访问缓存1011;类似地,缓存1014最靠近处理器1032,缓存1011最远离处理器1032。
例如,在一些实施例中,如图2所示,一致性维护模块102与第一缓存1011耦接(例如,二者直接耦接,从而提高一致性维护模块102访问第一缓存1011的速度),以直接访问第一缓存1011。
例如,如图2所示,电子设备100还包括一致性互联总线104,一致性互联总线104与缓存1016直接耦接,还与一致性维护模块102直接耦接。一致性互联总线104为信息传输的公共通信干线,例如,一致性互联总线104为由导线等电子元件组成的传输线束并且遵循相应的一致性协议。
例如,在另一实施例中,当以缓存1016为第一缓存时,一致性互联总线104将一致性维护模块102与第一缓存(即缓存1016)耦接。
例如,如图1和图2所示,电子设备100还包括系统存储器105。第一缓存1011被配置为能够存储与至少一个系统存储器中存储的所有数据中的至少部分数据对应的一致性目录信息。
例如,系统存储器105可以为主存(例如DRAM),也可以为电子设备101外接的存储器,例如,硬盘、软盘、光盘、U盘等。
例如,如图2所示,一致性维护模块102与系统存储器105耦接,例如,直接耦接,即一致性维护模块102可以直接访问系统存储器105,从而实现维护系统存储器105中存储的数据的一致性。
需要说明的是,在本公开中,两个器件“耦接”表示在逻辑关系上其中一个器件可以访问另一个器件。
例如,每个系统存储器可以包括目录存储空间,目录存储空间用于存储多个缓存101中存储的所有数据存储信息对应的数据中的至少部分数据对应的一致性目录信息。目录存储空间所存储的一致性目录信息和第一缓存1011所存储的一致性目录信息可以部分相同。
需要说明的是,对于系统存储器中的目录存储空间,该目录存储空间中存储的一致性目录信息的判断是由一致性维护模块102实现的。
图3为本公开一些实施例提供的一种第一缓存的结构示意图。
如图3所示,第一缓存1011包括缓存控制模块1011A,该缓存控制模块1011A可以实现地址之间的比较。例如,当处理器103发出读取请求,且该读取请求被传输至第一缓存1011时,缓存控制模块1011A可以解析该读取请求,并获取处理器103需要读取的存储地址(系统存储器上的地址),该缓存控制模块1011A可以将第一缓存1011中的每个存储块中缓存的存储地址(例如包括标签(Tag)、索引(Index)等)与解析后的存储地址进行比较,以确定第一缓存1011中是否缓存有解析后的存储地址对应的数据。需要说明的是,目录信息的比较过程(即地址的比较过程)和数据的比较过程是相互独立的。
对于缓存,为了便于快速查询缓存中存储的内容,可以将每个缓存划分多个存储组,每个存储组包括多个存储块。例如,如图3所示,第一缓存1011可以包括多个存储组C1~Cn,每个存储组包括多个存储块B1~Bm(图3示出了存储块B1、存储块B2、存储块B(m-1)和存储块Bm),n和m均为大于1的正整数。多个存储组C1~Cn包括多个缓存存储组,在一些实施例中,图3所示的存储组C1和存储组C2可以为缓存存储组。多个缓存存储组用于存储多个缓存101中存储的所有数据中的至少部分数据对应的一致性目录信息。
需要说明的是,多个存储组分别对应的存储块数量可以各不相同,也可以至少部分相同,具体可以根据实际设计需求进行设计。图3所示的示例中,每个存储组对应的存储块数量均为m,即每个存储组包括m个存储块。
例如,对于多个缓存101中存储的所有数据中的每个数据:该数据在用于存储该数据的系统存储器中对应的地址包括第一地址部分和第二地址部分。需要说明的是,“该数据在用于存储该数据的系统存储器中对应的地址”表示该数据存储在系统存储器的该地址所指示的位置中。
例如,数据对应的一致性目录信息包括数据的缓存状态信息和第一地址部分。该第一地址部分表示目录地址标志。数据的缓存状态信息用于指示存储有数据的缓存,即表示哪些缓存存储了该数据,数据的缓存状态信息还用于指示数据是否被修改等信息。
例如,第二地址部分用于确定第一缓存1011中用于存储数据对应的一致性目录信息的缓存存储组,例如,一致性维护模块102基于第二地址部分,将数据对应的一致性目录信息存储在第一缓存1011中与第二地址部分对应的缓存存储组中的任一存储块中。例如,在一些实施例中,一致性维护模块102基于第二地址部分,通过组相联的地址映射方式,将数据对应的一致性目录信息存储在第一缓存1011中与第二地址部分对应的缓存存储组中的任一存储块中。
例如,在多个缓存存储组中,按照组相联的方式保存了多个数据分别对应的一致性目录信息,该一致性目录信息能够表示数据在缓存中的存储状态,为了能快速查找某个数据在缓存中的存储状态,通常该数据在用于存储该数据的系统存储器中对应的地址的一部分(即第二地址部分)作为组相联的地址映射关系实现映射,该数据在用于存储该数据的系统存储器中对应的地址的剩下部分(即第一地址部分)与该数据的缓存状态信息作为该数据对应的一致性目录信息被存储在第一缓存1011中的对应缓存存储组的某一存储块中。
例如,在本公开的实施例中,每个缓存存储组中的每个存储块可以存储多个数据对应的一致性目录信息。如图3所示,对于存储组C1中的存储块B1,该存储组C1中的存储块B1存储的内容可以包括目录标志和多个一致性目录信息。每个一致性目录信息可以包括目录地址标志和缓存状态信息,目录标志用于表示该存储组C1中的存储块B1存储的内容为一致性目录信息。例如,在图3所示的示例中,存储组C1中的存储块B1可以存储两个一致性目录信息,分别为目录地址标志0和缓存状态信息0以及目录地址标志1和缓存状态信息1。需要说明书的是,本公开对存储组中的一个存储块中存储的一致性目录信息的数量不作限制。
例如,多个存储组C1~Cn还可以包括多个数据存储组,例如,图3所示的存储组Cn可以为数据存储组。每个数据存储组中的每个存储块用于存储一个数据对应的数据存储信息。
如图3所示,在一个示例中,对于存储组Cn中的存储块B1,该存储块B1存储的内容可以包括数据标志和数据存储信息。每个数据存储信息可以包括数据地址标志、数据状态信息和该数据本身,数据标志用于表示该存储组Cn中的存储块B1存储的内容为数据。例如,在图3所示的示例中,存储组Cn中的存储块B1存储的内容为数据0对应的数据存储信息,数据0对应的数据存储信息包括数据地址标志0、数据状态信息0以及数据0。需要说明的是,本公开对存储组中的一个存储块中可以存储的数据存储信息的数量不作限制。
例如,数据状态信息通常为表示该数据是“干净”或是“脏”(dirty)状态,即指示该数据是否被改写,当数据状态信息为“脏”状态,则表示该数据已经被改写(例如同时主存中对应的数据尚未被改写);当数据状态信息为“干净”状态,则表示该数据没有被改写。需要说明的是,数据状态信息还可以指示数据的其他状态信息。
图4为本公开一些实施例提供的一种第一缓存和系统存储器的结构示意图。
例如,如图4所示,系统存储器105可以包括目录存储空间105A,当某个数据的一致性目录信息需要被存储至第一缓存1011中的某个缓存存储组,若该缓存存储组存在容量冲突,即该缓存存储组的所有存储块均已经存储有信息(一致性目录信息或数据存储信息),则需要对某个缓存存储组中存储的某个信息(例如,待替换的信息)进行相应处理。例如,若待替换的信息为一致性目录信息,则该待替换的信息可以被扩展存储到目录存储空间105A,然后将该数据的一致性目录信息存储至该缓存存储组中;例如,若待替换的信息为数据存储信息,且该数据存储信息中的数据状态信息为脏状态,则该待替换的信息可以被写入对应的系统存储器中,然后将该数据的一致性目录信息存储至该缓存存储组中;例如,若待替换的信息为数据存储信息,且该数据存储信息中的数据状态信息为干净状态,则直接将该数据的一致性目录信息存储至该缓存存储组中从而覆盖该待替换的信息。
例如,处理器不但包含多级缓存架构来保存最近被访问的数据,同时还可以(例如利用预取器)发现处理器对数据、指令访问的规律,来提前预取即将被访问的数据、指令到缓存中。如果预取的是指令,则称为指令预取,对应的预取器为指令预取器;如果预取的是数据,则称为数据预取,对应的预取器为数据预取器。处理器的数据预取器发出的用于数据预取的数据读取请求(访问请求)为数据预取请求。
图5为本公开一些实施例提供的一种数据处理方法的流程图。图6为本公开一些实施例提供的目录预取示意图。
例如,本公开实施例的数据处理方法可以应用于本公开的实施例提供的电子设备中,例如,上述电子设备100,该包括电子设备100多个处理器以及多个缓存。如图5所示,在本公开的一些实施例中,数据处理方法包括以下步骤S101-S103。
步骤S101,接收多个处理器中的第一处理器对于第一存储地址的访问请求。
例如,如图6所示,电子设备可以包括第一处理器1035,第一处理器1035可以包括目录预测模块103A,第一处理器1035可以视为图1和2中示出的多个处理器103中的任何一个。目录预测模块103A可以接收第一处理器1035对于存储地址的访问请求。例如,该对于存储地址的访问请求可以是常规的数据读取请求,也可以是数据预取请求。
例如,在本公开的一个实施例中,目录预测模块103A可以由目录预取器实现。例如,目录预取器可以预测未来可能需要的目录信息并提前将该目录信息加载到处理器的缓存中,以加速缓存一致性的维护。目录预取器通常会监测程序对缓存的访问模式,然后预测未来可能需要的目录信息,并将相应的目录信息预取到缓存中。例如,本公开的目录预取器的可以加速缓存一致性的维护,提高程序的执行效率。需要说明的是,本公开对目录预取器的具体硬件结构不作任何限定,只要能够实现本公开的目录预取操作的硬件均可以符合要求。
图6中所示的目录预测模块103A仅为本公开的一个实施例,本公开的目录预测模块的实施例不限于此,例如,多个处理器可以共用一个目录预测模块或由每个处理器分别包括专用的目录预测模块,目录预取模块可以属于处理器的一部分或者是与处理器分开的独立模块。为了便于描述,下面以图6中示出的目录预测模块103A包括在第一处理器1035中为例进行说明。
步骤S102,向一致性维护模块发送对应于第一存储地址的目录预取请求。
例如,如图6所示,目录预测模块103A可以向一致性维护模块102发送对应于第一存储地址的目录预取请求。例如,当第一处理器1035需要预取与某一地址对应的数据时,可能触发对于该地址对应的数据的一致性维护,该一致性维护操作需要用到该地址对应的数据的一致性目录信息,因此,第一处理器1035可以提前将存储该地址缓存的数据对应的一致性目录信息提前读入到缓存(Cache)中。
例如,第一处理器1035可以在发出数据预取请求的同时或发出数据预取请求之后发出目录预取请求,该目录预取请求是指对处理器所要预取的数据所对应的一致性目录信息的预取请求。
例如,作为示例,当数据预取器进行数据投机预取时,如果此时预取的数据对应的目录也存储在系统存储器中,通常需要将该目录信息也预取出来完成目录投机预取,以提高处理器的处理效率,此时处理器通常在发出数据预取请求之后触发目录预取请求。然而,本公开对此不作限制,作为另一示例,也可以在数据预取请求发出的同时就发出对应的目录预取请求,以充分利用处理器的并行性能,并且规避等待使用对应的目录的时间,改善系统性能;或者,作为另一示例,也可以在数据预取请求发出之后例如预定间隔时间后发出对应的目录预取请求,可以选择该预定间隔时间,以避免等待使用对应的目录的时间,或避免等待使用对应的目录的时间过长,改善系统性能。
步骤S103,由一致性维护模块处理目录预取请求,以用于将对应于第一存储地址的一致性目录信息缓存到第一缓存中。
例如,如图6所示,一致性维护模块102在收到目录预测模块103A发送的目录预取请求后,对目录预取请求进行处理,以用于将对应于第一存储地址的一致性目录信息缓存到第一缓存中。例如,一致性维护模块102向系统存储器105发送与目录预取请求对应的目录读取请求,以读取对应于第一存储地址的一致性目录信息。例如,响应于对应于第一存储地址的一致性目录信息存储在系统存储器105中,系统存储器105将对应于第一存储地址的一致性目录信息返回给一致性维护模块102,一致性维护模块102将对应于第一存储地址的一致性目录信息缓存到第一缓存1011中。
例如,响应于对应于第一存储地址的一致性目录信息不存在于系统存储器105中,一致性维护模块不将对应于第一存储地址的一致性目录信息缓存到在第一缓存1011中。例如,响应于对应于第一存储地址的一致性目录信息不存在于系统存储器105中,一致性维护模块102不进行将对应于第一存储地址的一致性目录信息缓存到在第一缓存1011中的操作。
在本公开的至少一实施例中,当第一处理器1035实际发送访问地址的请求时,一致性维护模块1035就可以直接从第一缓存1011中读取之前预取的一致性目录信息进行一致性维护,从而降低第一处理器1035访问地址时的访问延时。
例如,响应于第一缓存不存在存储容量冲突,一致性维护模块直接将对应于第一存储地址的一致性目录信息缓存到第一缓存1011中。例如,当对应于第一存储地址的一致性目录信息需要被存储至第一缓存1011中的某个缓存存储组时,若该缓存存储组不存在容量冲突,即该缓存存储组存在还未存储有信息(一致性目录信息或数据存储信息)的空闲的存储块,则可以直接将对应于第一存储地址的一致性目录信息缓存到第一缓存1011中。
例如,响应于第一缓存1011存在存储容量冲突,基于替换规则,确定存储在第一缓存1011中的待替换的信息;响应于待替换的信息为一致性目录信息,将对应于第一存储地址的一致性目录信息存储在第一缓存1011中的用于存储待替换的信息的存储地址中,并将待替换的信息存储在系统存储器105中。
例如,当第一存储地址的一致性目录信息需要被存储至第一缓存1011中的某个缓存存储组,若该缓存存储组存在容量冲突,即该缓存存储组的所有存储块均已经存储相应的信息(一致性目录信息或数据存储信息),则需要对缓存存储组中存储的某个信息(例如,待替换的信息)进行相应处理,例如,若待替换的信息为一致性目录信息,则该待替换的信息可以被扩展存储到目录存储空间105A,然后将该数据的一致性目录信息存储至该缓存存储组中。
例如,响应于待替换的信息为数据存储信息,且数据存储信息对应的数据对应的数据状态信息表示脏状态,将对应于第一存储地址的一致性目录信息存储在第一缓存1011中的用于存储待替换的信息的存储地址中,并将待替换的信息存储在系统存储器105中;响应于待替换的信息为数据存储信息,且数据存储信息对应的数据对应的数据状态信息表示干净状态,将对应于第一存储地址的一致性目录信息存储在第一缓存1011中的用于存储待替换的信息的存储地址中。
例如,若待替换的信息为数据存储信息,且该数据存储信息中的数据状态信息为脏状态,则该待替换的信息可以被写入系统存储器105中,然后将对应于第一存储地址的一致性目录信息存储至该缓存存储组中;例如,若待替换的信息为数据存储信息,且该数据存储信息中的数据状态信息为干净状态,则直接将对应于第一存储地址的一致性目录信息存储至该缓存存储组中从而覆盖该待替换的信息。
在本公开的实施例中,当处理器实际发送第一存储地址的访问请求时,一致性维护模块102就可以直接从第一缓存1011中读取之前预取的一致性目录信息进行一致性维护,从而降低处理器访问地址时的访问延时。
例如,同样参照图1、图2和图6,本公开一些实施例还提供了一种电子设备,该电子设备100包括多个处理器103(处理器1031~1032)、多个缓存101(缓存1011~缓存1016)、一致性维护模块102和目录预测模块103A。例如,多个缓存101被配置为由多个处理器103使用,多个缓存101包括第一缓存1011,第一缓存1011被配置为存储多个缓存101中存储的所有数据存储信息对应的数据中的至少部分数据对应的一致性目录信息。例如,一致性维护模块102被配置为维护多个缓存101中存储的所有数据存储信息对应的数据的一致性。目录预测模块103A配置为:接收多个处理器103中的第一处理器对于第一存储地址的访问请求,向一致性维护模块102发送对应于第一存储地址的目录预取请求。例如,一致性维护模块102还配置为处理目录预取请求,以用于将对应于第一存储地址的一致性目录信息缓存到第一缓存中。
上述第一处理器可以是多个处理器中的任一处理器,第一存储地址可以是任一存储地址,即,这里的“第一”仅用于标识作为描述对象的处理器或存储地址,而非特指某一特定的处理器或存储地址。
例如,多个处理器103和多个缓存101可以用于实现的功能的具体说明可以参考上述数据处理方法的实施例中对于多个处理器103和多个缓存101的描述。
例如,目录预测模块103A可以用于实现图5所示的数据处理方法中的步骤S101和S102,关于目录预测模块103A可以实现的功能或操作的具体说明可以参考上述数据处理方法的实施例中对于步骤S101和S102的描述。
例如,该对于存储地址的访问请求可以是常规的数据读取请求,也可以是数据预取请求,本公开的实施例对于数据预取请求的产生方式可以不作限制。
例如,如图6所示,电子设备可以包括第一处理器1035,第一处理器1035可以包括目录预测模块103A。然而,图6中所示的目录预测模块103A仅为本公开的一个实施例,本公开的目录预测模块的实施例不限于此,例如,多个处理器可以共用一个目录预测模块或由每个处理器分别包括专用的目录预测模块,目录预取模块可以属于处理器的一部分或者是与处理器分开的独立模块。
例如,一致性维护模块102可以用于实现图5所示的数据处理方法中的步骤S103,关于一致性维护模块102可以实现的功能的具体说明可以参考上述数据处理方法的实施例中对于步骤S103的描述。
在本公开的实施例中,当处理器(例如上述第一处理器)实际发送访问地址(例如上述的第一存储地址)的请求时,一致性维护模块102就可以直接从缓存中读取之前预取的一致性目录信息进行一致性维护,从而降低处理器访问地址时的访问延时。
本公开一些实施例还提供一种数据处理装置。图7为本公开一些实施例提供的数据处理装置的示意图。如图7所示,根据本公开实施例的数据处理装置500包括处理器501以及存储器502,处理器501和存储器502可以通过总线503进行互连。
处理器501可以根据存储在存储器502中的程序或代码执行各种动作和处理。具体地,处理器501可以是一种集成电路芯片,具有信号的处理能力。例如,上述处理器501可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本公开实施例中公开的各种方法和步骤。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,可以是X86架构或者是ARM架构等。
存储器502用于非暂时性存储计算机可执行指令,处理器501用于运行计算机可执行指令。当计算机可执行指令在被处理器501执行时实现本公开至少一实施例提供的数据处理方法。
例如,存储器502可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)或闪存。易失性存储器可以是随机存取存储器(RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、双倍数据速率同步动态随机存取存储器(DDRSDRAM)、增强型同步动态随机存取存储器(ESDRAM)、同步连接动态随机存取存储器(SLDRAM)和直接内存总线随机存取存储器(DRRAM)。应注意,本文描述的方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本公开的实施例还提供了一种非暂时性存储介质,该非暂时性存储介质可以为非暂时性计算机可读存储介质。非暂时性存储介质用于非瞬时性地存储计算机可执行指令,该计算机可执行指令在被计算机执行时实现本公开一些实施例提供的数据处理方法。
图8是本公开一些实施例提供的一种非暂时性存储介质的示意图。如图8所示,非暂时性存储介质600可以非暂时性地存储计算机可执行指令610,计算机可执行指令610在被计算机执行时实现本公开任一实施例提供的数据处理方法。
类似地,本公开实施例中的非暂时性存储介质可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。应注意,本文描述的方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本公开的实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在非暂时性存储介质中。计算机设备的处理器从非暂时性存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行根据本公开实施例的数据处理方法。
上述数据处理装置以及非暂时性存储介质的技术效果与上述数据处理方法的技术效果相同,此处不再赘述。
需要说明的是,附图中的流程图和框图,图示了按照本公开的各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含至少一个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
一般而言,本公开的各种示例实施例可以在硬件或专用电路、软件、固件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其他方面可以在可以由控制器、微处理器或其他计算设备执行的固件或软件中实施。当本公开的实施例的各方面被图示或描述为框图、流程图或使用某些其他图形表示时,将理解此处描述的方框、装置、系统、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某些组合中实施。
对于本公开,还有以下几点需要说明:
(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)为了清晰起见,在用于描述本公开的实施例的附图中,层或结构的厚度和尺寸被放大。可以理解,当诸如层、膜、区域或基板之类的元件被称作位于另一元件“上”或“下”时,该元件可以“直接”位于另一元件“上”或“下”,或者可以存在中间元件。
(3)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (18)
1.一种数据处理方法,包括:
通过一致性维护模块维护由多个处理器使用的多个缓存中存储的数据存储信息对应的数据的一致性,其中,所述多个缓存被配置为存储数据存储信息,所述多个缓存中的第一缓存还被配置为存储一致性目录信息,所述一致性目录信息对应于所述数据存储信息所对应的数据中的至少部分数据;
接收所述多个处理器中的第一处理器对于第一存储地址的访问请求;
向所述一致性维护模块发送对应于所述第一存储地址的目录预取请求;
由所述一致性维护模块处理所述目录预取请求,以用于将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中。
2.根据权利要求1所述的方法,其中,由所述一致性维护模块处理所述目录预取请求,以用于将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中,包括:
所述一致性维护模块向系统存储器发送与所述目录预取请求对应的目录读取请求,以读取对应于所述第一存储地址的一致性目录信息;
响应于对应于所述第一存储地址的一致性目录信息存储在系统存储器中,所述一致性维护模块将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中。
3.根据权利要求2所述的方法,其中,由所述一致性维护模块处理所述目录预取请求,以用于将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中,还包括:
响应于对应于所述第一存储地址的一致性目录信息非存在于所述系统存储器中,所述一致性维护模块不将对应于所述第一存储地址的一致性目录信息缓存到在所述第一缓存中。
4.根据权利要求1所述的方法,其中,所述访问请求是数据预取请求。
5.根据权利要求4所述的方法,其中,所述第一处理器发出所述数据预取请求的同时或之后发出所述目录预取请求。
6.根据权利要求2所述的方法,其中,所述一致性维护模块将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中,包括:
响应于所述第一缓存不存在存储容量冲突,所述一致性维护模块直接将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中。
7.根据权利要求2所述的方法,其中,所述一致性维护模块将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中,还包括:
响应于所述第一缓存存在存储容量冲突,基于替换规则,确定存储在所述第一缓存中的待替换的信息;
响应于所述待替换的信息为一致性目录信息,将对应于所述第一存储地址的一致性目录信息存储在所述第一缓存中的用于存储所述待替换的信息的存储地址中,并将所述待替换的信息存储在所述系统存储器中。
8.根据权利要求7所述的方法,其中,所述一致性维护模块将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中,还包括:
响应于所述待替换的信息为数据存储信息,且所述数据存储信息对应的数据对应的数据状态信息表示脏状态,将对应于所述第一存储地址的一致性目录信息存储在所述第一缓存中的用于存储所述待替换的信息的存储地址中,并将所述待替换的信息存储在所述系统存储器中;
响应于所述待替换的信息为数据存储信息,且所述数据存储信息对应的数据对应的数据状态信息表示干净状态,将对应于所述第一存储地址的一致性目录信息存储在所述第一缓存中的用于存储所述待替换的信息的存储地址中。
9.一种电子设备,包括:
多个处理器;
多个缓存,包括第一缓存,其中,所述多个缓存被配置为存储数据存储信息,所述多个缓存中的第一缓存还被配置为存储一致性目录信息,所述一致性目录信息对应于所述数据存储信息所对应的数据中的至少部分数据;
一致性维护模块,配置为维护所述多个缓存中存储的数据存储信息对应的数据的一致性;
目录预测模块,其中,所述目录预测模块配置为:
接收所述多个处理器中的第一处理器对于第一存储地址的访问请求,
向所述一致性维护模块发送对应于所述第一存储地址的目录预取请求,
其中,所述一致性维护模块还配置为处理所述目录预取请求,以用于将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中。
10.根据权利要求9所述的电子设备,其中,所述一致性维护模块还配置为处理所述目录预取请求,以用于将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中,包括:
所述一致性维护模块向系统存储器发送与所述目录预取请求对应的目录读取请求,以读取对应于所述第一存储地址的一致性目录信息;
响应于对应于所述第一存储地址的一致性目录信息存储在系统存储器中,所述一致性维护模块将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中。
11.根据权利要求9所述的电子设备,其中,所述一致性维护模块配置为处理所述目录预取请求,以用于将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中,还包括:
响应于对应于所述第一存储地址的一致性目录信息非存在于系统存储器中,所述一致性维护模块不将对应于所述第一存储地址的一致性目录信息缓存到在所述第一缓存中。
12.根据权利要求9所述的电子设备,其中,所述访问请求是数据预取请求。
13.根据权利要求9所述的电子设备,其中,所述第一处理器包括所述目录预测模块。
14.根据权利要求10所述的电子设备,其中,所述一致性维护模块将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中,包括:
响应于所述第一缓存不存在存储容量冲突,所述一致性维护模块直接将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中。
15.根据权利要求10所述的电子设备,其中,所述一致性维护模块将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中,还包括:
响应于所述第一缓存存在存储容量冲突,基于替换规则,确定存储在所述第一缓存中的待替换的信息;
响应于所述待替换的信息为一致性目录信息,将对应于所述第一存储地址的一致性目录信息存储在所述第一缓存中的用于存储所述待替换的信息的存储地址中,并将所述待替换的信息存储在所述系统存储器中。
16.根据权利要求15所述的电子设备,其中,所述一致性维护模块将对应于所述第一存储地址的一致性目录信息缓存到所述第一缓存中,还包括:
响应于所述待替换的信息为数据存储信息,且所述数据存储信息对应的数据对应的数据状态信息表示脏状态,将对应于所述第一存储地址的一致性目录信息存储在所述第一缓存中的用于存储所述待替换的信息的存储地址中,并将所述待替换的信息存储在所述系统存储器中;
响应于所述待替换的信息为数据存储信息,且所述数据存储信息对应的数据对应的数据状态信息表示干净状态,将对应于所述第一存储地址的一致性目录信息存储在所述第一缓存中的用于存储所述待替换的信息的存储地址中。
17.一种数据处理装置,包括:
存储器,配置为存储计算机可执行指令;以及
处理器,配置为执行所述计算机可执行指令,
其中,所述计算机可执行指令被所述处理器执行时实现根据权利要求1-8中任一项所述的方法。
18.一种非暂时性存储介质,非暂时性地存储计算机可执行指令,其中,当所述计算机可执行指令由处理器执行时,实现根据权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310187812.0A CN116049031A (zh) | 2023-02-28 | 2023-02-28 | 数据处理方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310187812.0A CN116049031A (zh) | 2023-02-28 | 2023-02-28 | 数据处理方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116049031A true CN116049031A (zh) | 2023-05-02 |
Family
ID=86125688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310187812.0A Pending CN116049031A (zh) | 2023-02-28 | 2023-02-28 | 数据处理方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116049031A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105488012A (zh) * | 2015-12-09 | 2016-04-13 | 浪潮电子信息产业股份有限公司 | 一种基于独占数据的一致性协议设计方法 |
CN113342709A (zh) * | 2021-06-04 | 2021-09-03 | 海光信息技术股份有限公司 | 在多处理器系统中访问数据的方法和多处理器系统 |
CN114238171A (zh) * | 2021-12-21 | 2022-03-25 | 海光信息技术股份有限公司 | 电子设备、数据处理方法和装置、计算机系统 |
-
2023
- 2023-02-28 CN CN202310187812.0A patent/CN116049031A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105488012A (zh) * | 2015-12-09 | 2016-04-13 | 浪潮电子信息产业股份有限公司 | 一种基于独占数据的一致性协议设计方法 |
CN113342709A (zh) * | 2021-06-04 | 2021-09-03 | 海光信息技术股份有限公司 | 在多处理器系统中访问数据的方法和多处理器系统 |
CN114238171A (zh) * | 2021-12-21 | 2022-03-25 | 海光信息技术股份有限公司 | 电子设备、数据处理方法和装置、计算机系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102518095B1 (ko) | 스토리지 장치 및 시스템 | |
US10346302B2 (en) | Systems and methods for maintaining the coherency of a store coalescing cache and a load cache | |
JP5348429B2 (ja) | 持続性メモリのためのキャッシュコヒーレンスプロトコル | |
JP5752989B2 (ja) | プロセッサ・メインメモリのための持続性メモリ | |
US20100325374A1 (en) | Dynamically configuring memory interleaving for locality and performance isolation | |
US7991963B2 (en) | In-memory, in-page directory cache coherency scheme | |
JP4119380B2 (ja) | マルチプロセッサシステム | |
CN113342709B (zh) | 在多处理器系统中访问数据的方法和多处理器系统 | |
US20120102273A1 (en) | Memory agent to access memory blade as part of the cache coherency domain | |
CN113138851B (zh) | 一种数据管理方法、相关装置及系统 | |
CN114238165B (zh) | 数据处理方法、数据处理装置以及存储介质 | |
KR20070084441A (ko) | 로컬 메모리 데이터의 가간섭성 캐싱 | |
CN114238171B (zh) | 电子设备、数据处理方法和装置、计算机系统 | |
CN106406745B (zh) | 根据目录信息维护Cache数据一致性的方法及装置 | |
CN112463652B (zh) | 基于缓存一致性的数据处理方法、装置、处理芯片及服务器 | |
US7089372B2 (en) | Local region table for storage of information regarding memory access by other nodes | |
CN116049031A (zh) | 数据处理方法、装置、电子设备和存储介质 | |
US20220050786A1 (en) | Inter-device processing system with cache coherency | |
US7757046B2 (en) | Method and apparatus for optimizing line writes in cache coherent systems | |
CN112612726B (zh) | 基于缓存一致性的数据存储方法、装置、处理芯片及服务器 | |
US6996675B2 (en) | Retrieval of all tag entries of cache locations for memory address and determining ECC based on same | |
US8117393B2 (en) | Selectively performing lookups for cache lines | |
US20220229552A1 (en) | Computer system including main memory device having heterogeneous memories, and data management method thereof | |
CN114238170A (zh) | 数据处理方法、数据处理装置和存储介质 | |
CN115934367A (zh) | 缓冲处理方法及探听过滤器、多处理器系统、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |