CN114238171B - 电子设备、数据处理方法和装置、计算机系统 - Google Patents

电子设备、数据处理方法和装置、计算机系统 Download PDF

Info

Publication number
CN114238171B
CN114238171B CN202111568672.9A CN202111568672A CN114238171B CN 114238171 B CN114238171 B CN 114238171B CN 202111568672 A CN202111568672 A CN 202111568672A CN 114238171 B CN114238171 B CN 114238171B
Authority
CN
China
Prior art keywords
data
cache
processed
storage
consistency
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
CN202111568672.9A
Other languages
English (en)
Other versions
CN114238171A (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.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information Technology Co 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 Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202111568672.9A priority Critical patent/CN114238171B/zh
Publication of CN114238171A publication Critical patent/CN114238171A/zh
Application granted granted Critical
Publication of CN114238171B publication Critical patent/CN114238171B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache

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,即缓存)的计算机系统,缓存可以缓存大量数据,这些数据可能是独占的,也可能在不同缓存中保存有相同地址的数据副本。当不同的缓存对所缓存的相同地址的数据进行操作时,会产生一致性问题。为了解决这个问题,出现了很多技术来维护数据一致性。例如,当多个缓存存储有相同的数据副本时,某个处理器想修改某个缓存中存储的数据时,该数据在其他缓存的副本将被标记无效,以避免发生一致性错误。
发明内容
本公开至少一个实施例提供一种电子设备,包括:多个缓存和一致性维护模块,其中,所述多个缓存中的每个被配置为能够存储至少一个数据对应的数据存储信息;所述一致性维护模块被配置为维护所述多个缓存中存储的所有数据存储信息对应的数据的一致性,所述多个缓存包括第一缓存,所述第一缓存还被配置为存储所述多个缓存中存储的所有数据存储信息对应的数据中的至少部分数据对应的一致性目录信息。
例如,本公开至少一个实施例提供的电子设备还包括多个处理器,其中,所述多个缓存包括由所述多个处理器使用的多个专用缓存以及所述多个处理器共用的至少一个共享缓存,所述至少一个共享缓存包括所述第一缓存。
例如,在本公开至少一个实施例提供的电子设备中,所述至少一个共享缓存还包括至少一个第二缓存,对于所述多个处理器中需要访问缓存的当前处理器,所述当前处理器首先访问由所述当前处理器使用的至少一个专用缓存,然后访问所述至少一个共享缓存中的至少一个第二缓存,最后访问所述至少一个共享缓存中的所述第一缓存。
例如,在本公开至少一个实施例提供的电子设备中,所述一致性维护模块与所述第一缓存耦接,以直接访问所述第一缓存。
例如,本公开至少一个实施例提供的电子设备还包括:一致性互联总线,其中,所述一致性互联总线将所述一致性维护模块与所述第一缓存耦接。
例如,本公开至少一个实施例提供的电子设备还包括:至少一个系统存储器,其中,所述第一缓存被配置为能够存储与所述至少一个系统存储器中存储的所有数据中的至少部分数据对应的一致性目录信息。
例如,在本公开至少一个实施例提供的电子设备中,每个系统存储器包括目录存储空间,所述目录存储空间用于存储所述多个缓存中存储的所有数据存储信息对应的数据中的至少部分数据对应的一致性目录信息。
例如,在本公开至少一个实施例提供的电子设备中,对于所述多个缓存中存储的所有数据存储信息对应的数据中的每个数据:所述数据在用于存储所述数据的系统存储器中对应的地址包括第一地址部分,所述数据对应的一致性目录信息包括所述数据的缓存状态信息和所述第一地址部分,所述数据的缓存状态信息用于指示存储有所述数据的缓存。
例如,在本公开至少一个实施例提供的电子设备中,对于所述多个缓存中存储的所有数据存储信息对应的数据中的每个数据:所述数据在用于存储所述数据的系统存储器中对应的地址还包括第二地址部分,所述第一缓存包括多个存储组,每个存储组包括多个存储块,所述多个存储组包括多个缓存存储组,所述多个缓存存储组用于存储所述多个缓存中存储的所有数据存储信息对应的数据中的至少部分数据对应的一致性目录信息,所述一致性维护模块基于所述第二地址部分,将所述数据对应的一致性目录信息存储在所述第一缓存中与所述第二地址部分对应的缓存存储组中的任一存储块中。
例如,在本公开至少一个实施例提供的电子设备中,所述多个存储组还包括多个数据存储组,每个数据存储组中的每个存储块用于存储一个数据对应的数据存储信息,每个缓存存储组中的每个存储块用于存储多个数据对应的一致性目录信息。
例如,在本公开至少一个实施例提供的电子设备中,所述一致性维护模块与所述至少一个系统存储器中的一个系统存储器耦接,以实现维护所述系统存储器中存储的数据的一致性。
本公开至少一个实施例提供一种数据处理方法,应用于本公开任一实施例所述的电子设备,其中,所述数据处理方法包括:获取待处理数据;确定所述待处理数据对应的一致性目录信息;将所述待处理数据对应的一致性目录信息存储在所述第一缓存中。
例如,在本公开至少一个实施例提供的数据处理方法中,在所述电子设备包括至少一个系统存储器,每个系统存储器包括目录存储空间,所述第一缓存包括多个缓存存储组,每个缓存存储组包括多个存储块的情况下,将所述待处理数据对应的一致性目录信息存储在所述第一缓存中,包括:基于所述待处理数据在存储所述待处理数据的系统存储器中对应的地址,确定所述第一缓存中用于存储所述待处理数据对应的一致性目录信息的缓存存储组;响应于所述缓存存储组不存在容量冲突,直接将所述待处理数据对应的一致性目录信息存储在所述缓存存储组中的任一存储块;响应于所述缓存存储组存在容量冲突,基于替换规则,确定存储在所述缓存存储组中的待替换的信息,响应于所述待替换的信息为一致性目录信息,将所述待处理数据对应的一致性目录信息存储在用于存储所述待替换的信息的存储块中,并将所述待替换的信息存储在与所述一致性维护模块耦接的系统存储器的目录存储空间中;响应于所述待替换的信息为数据存储信息,且所述数据存储信息对应的数据对应的数据状态信息表示脏状态,将所述待处理数据对应的一致性目录信息存储在用于存储所述待替换的信息的存储块中,并将所述待替换的信息存储在对应的系统存储器中;响应于所述待替换的信息为数据存储信息,且所述数据存储信息对应的数据对应的数据状态信息表示干净状态,将所述待处理数据对应的一致性目录信息存储在用于存储所述待替换的信息的存储块中。
例如,在本公开至少一个实施例提供的数据处理方法中,确定所述待处理数据对应的一致性目录信息,包括:响应于所述电子设备中的至少一个缓存中存储有所述待处理数据,获取所述待处理数据对应的原始一致性目录信息,对所述原始一致性目录信息进行一致性维护,以确定所述待处理数据对应的一致性目录信息;响应于所述电子设备中的所有缓存均没有存储所述待处理数据,通过所述电子设备中的至少一个缓存存储所述待处理数据,基于存储有所述待处理数据的至少一个缓存,确定所述待处理数据对应的缓存状态信息,基于所述待处理数据在存储所述待处理数据的系统存储器中对应的地址,确定所述待处理数据对应的目录地址标志,基于所述缓存状态信息和所述目录地址标志,生成所述待处理数据对应的一致性目录信息。
例如,在本公开至少一个实施例提供的数据处理方法中,所述待处理数据在存储所述待处理数据的系统存储器中对应的地址包括第一地址部分,所述第一地址部分作为所述目录地址标志。
例如,在本公开至少一个实施例提供的数据处理方法中,所述待处理数据在存储所述待处理数据的系统存储器中对应的地址还包括第二地址部分,基于所述待处理数据在存储所述待处理数据的系统存储器中对应的地址,确定所述第一缓存中用于存储所述待处理数据对应的一致性目录信息的缓存存储组,包括:从所述待处理数据在存储所述待处理数据的系统存储器中对应的地址中获取所述第二地址部分;基于所述第二地址部分,确定所述第一缓存中用于存储所述待处理数据对应的一致性目录信息的缓存存储组。
例如,在本公开至少一个实施例提供的数据处理方法中,所述电子设备包括多个处理器的情况下,所述多个处理器包括第一处理器,获取待处理数据包括:通过所述第一处理器发出读取请求;基于所述读取请求,确定所述待处理数据和所述待处理数据在存储所述待处理数据的系统存储器中对应的地址;响应于由所述第一处理器使用的所有缓存中的至少一个缓存中存储有所述待处理数据,从所述至少一个缓存中读取所述待处理数据;响应于由所述第一处理器使用的所有缓存中均没有存储所述待处理数据,且所述第一缓存或所述一致性维护模块耦接的系统存储器的目录存储空间中存储有所述待处理数据对应的一致性目录信息,基于所述待处理数据对应的一致性目录信息从存储有所述待处理数据的缓存中读取所述待处理数据;响应于由所述第一处理器使用的所有缓存中均没有存储所述待处理数据,且所述第一缓存和所述一致性维护模块耦接的系统存储器的目录存储空间中均没有存储所述待处理数据对应的一致性目录信息,从存储所述待处理数据的系统存储器中读取所述待处理数据。
例如,本公开至少一个实施例提供的数据处理方法还包括:将所述待处理数据存储在由所述第一处理器使用的至少一个缓存中。
例如,在本公开至少一个实施例提供的数据处理方法中,将所述待处理数据存储在由所述第一处理器使用的至少一个缓存中,包括:对于由所述第一处理器使用的至少一个缓存中的每个缓存:响应于所述缓存中存储有所述待处理数据且所述待处理数据对应的数据状态信息表示脏状态,获取所述待处理数据对应的数据存储信息,将所述数据存储信息存储在所述缓存中;响应于所述缓存中没有存储所述待处理数据或所述待处理数据对应的数据状态信息不表示脏状态,且响应于所述第一缓存或所述一致性维护模块耦接的系统存储器的目录存储空间中存储有所述待处理数据对应的一致性目录信息,对所述待处理数据进行一致性维护以确定所述待处理数据对应的数据存储信息,将所述数据存储信息存储在所述缓存中;响应于所述第一缓存和所述一致性维护模块耦接的系统存储器的目录存储空间中均没有存储所述待处理数据对应的一致性目录信息,获取所述待处理数据对应的数据存储信息,将所述数据存储信息存储在所述缓存中。
本公开至少一个实施例提供一种数据处理装置,应用于本公开任一实施例所述的电子设备,其中,所述数据处理装置包括:获取模块,被配置为获取待处理数据;目录信息确定模块,被配置为确定所述待处理数据对应的一致性目录信息;存储模块,被配置为将所述待处理数据对应的一致性目录信息存储在所述第一缓存中。
本公开至少一个实施例提供一种计算机系统,包括根据本公开任一实施例所述的电子设备。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1A为本公开至少一个实施例提供的一种电子设备的示意图;
图1B为本公开至少一个实施例提供的一种电子设备的结构示意图;
图2A为本公开一些实施例提供的一种第一缓存的结构示意图;
图2B为本公开一些实施例提供的一种第一缓存和系统存储器的结构示意图;
图3A为本公开的实施例提供的另一种电子设备的结构示意图;
图3B为本公开的实施例提供的另一种电子设备的另一种结构示意图;
图4为本公开一些实施例提供的一种数据处理方法的示意图;
图5A为本公开至少一个实施例提供的读取待处理数据的过程的示意图;
图5B为本公开至少一个实施例提供的向缓存中写入待处理数据的过程的示意图;
图6为本公开至少一个实施例提供的一种数据处理装置的示意图;
图7为本公开一实施例提供的一种计算机系统的示意图。
具体实施方式
为了使得本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
为了保持本公开实施例的以下说明清楚且简明,本公开省略了部分已知功能和已知部件的详细说明。
在具有多个处理器的计算机系统中,为了能提高数据一致性维护的效率,可以利用例如侦听过滤等技术进行数据一致性维护。侦听过滤可以帮助追踪数据在多个缓存中的缓存状态,例如,数据在缓存中只有单一副本、有多个副本、或者该数据只存在系统存储器(例如,主存)中等。
在具有多个处理器和多个缓存的计算机系统中,目前,某些目录式一致性系统会通过目录追踪数据的缓存状态,并把追踪到的数据的缓存状态存储在目录中,即目录可以用于维护数据一致性。当一致性代理侦听总线发现一致性事务后,会查询目录追踪的信息并发出响应的探针完成一致性维护。在使用目录进行一致性维护时,服务器多核计算机系统中会包含一个独立的存储目录的存储模块,以减少计算机系统内的各个模块间的传输通信数目。然而该存储模块会占用一定的电路资源,增加电路的资源消耗。
本公开至少一个实施例提供一种电子设备、数据处理方法、数据处理装置和计算机系统。该电子设备包括多个缓存和一致性维护模块。多个缓存中的每个被配置为能够存储至少一个数据对应的数据存储信息;一致性维护模块被配置为维护多个缓存中存储的所有数据存储信息对应的数据的一致性,多个缓存包括第一缓存,第一缓存还被配置为存储多个缓存中存储的所有数据存储信息对应的数据中的至少部分数据对应的一致性目录信息。
在本公开的实施例中,通过存储数据的缓存来缓存数据对应的一致性目录信息,可以以较小的电路资源消耗来实现目录功能,减少电子设备中的存储元件,节省电路资源,降低成本。
需要说明的是,在本公开的实施例中,缓存存储数据即表示缓存存储数据对应的数据存储信息。
图1A为本公开至少一个实施例提供的一种电子设备的示意图,图1B 为本公开至少一个实施例提供的一种电子设备的结构示意图。
如图1A和图1B所示,电子设备100包括多个缓存101(缓存1011~缓存1016)和一致性维护模块102。
本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)、可穿戴电子设备等等的移动终端以及诸如数字TV、台式计算机、智能家居设备等等的固定终端。
例如,多个缓存101中的每个缓存被配置为能够存储至少一个数据对应的数据存储信息。一致性维护模块102被配置为维护多个缓存101中存储的所有数据存储信息对应的数据的一致性,即用于维护多个缓存101中存储的所有数据的一致性。
如图1A和图1B所示,多个缓存101包括第一缓存,例如,图1A和图 1B所示的缓存1011可以为第一缓存的一个示例。本公开不限于此,在另一些实施例中,图1A和图1B所示的缓存1016也可以为第一缓存的一个示例。在本公开的实施例中,第一缓存表示可以同时存储数据和一致性目录信息的缓存。下面以缓存1011为第一缓存为例进行描述,因此,下面的描述中采用1011表示第一缓存。
例如,第一缓存1011还被配置为存储多个缓存101中存储的所有数据存储信息对应的数据中的至少部分数据对应的一致性目录信息,也就是说,第一缓存1011既可以存储数据(例如,存储数据对应的数据存储信息),还可以存储数据对应的一致性目录信息。
在本公开中,“维护多个缓存101中存储的所有数据存储信息对应的数据的一致性”通常指基于探针的数据的状态的维护与数据的传递、以及相应的一致性目录信息的更新机制,但是也可以包括数据的其他方面的一致性维护。
例如,缓存101可以为高速缓冲存储器,高速缓冲存储器由静态存储芯片(SRAM)组成。在计算机存储系统的层次结构中,高速缓冲存储器是介于中央处理器和系统存储器之间的高速小容量存储器。
图2A为本公开一些实施例提供的一种第一缓存的结构示意图。
对于缓存,为了便于快速查询缓存中存储的内容,可以将每个缓存划分多个存储组,每个存储组包括多个存储块。例如,如图2A所示,第一缓存 1011可以包括多个存储组C1~Cn,每个存储组包括多个存储块B1~Bm(图 2A示出了存储块B1、存储块B2、存储块B(m-1)和存储块Bm),n和m均为大于1的正整数。多个存储组C1~Cn包括多个缓存存储组,在一些实施例中,图2A所示的存储组C1和存储组C2可以为缓存存储组。多个缓存存储组用于存储多个缓存101中存储的所有数据中的至少部分数据对应的一致性目录信息。
需要说明的是,多个存储组分别对应的存储块数量可以各不相同,也可以至少部分相同,具体可以根据实际设计需求进行设计。图2A所示的示例中,每个存储组对应的存储块数量均为m,即每个存储组包括m个存储块。
例如,对于多个缓存101中存储的所有数据中的每个数据:该数据在用于存储该数据的系统存储器中对应的地址包括第一地址部分和第二地址部分。需要说明的是,“该数据在用于存储该数据的系统存储器中对应的地址”表示该数据存储在系统存储器的该地址所指示的位置中。
例如,数据对应的一致性目录信息包括数据的缓存状态信息和第一地址部分。该第一地址部分表示目录地址标志。数据的缓存状态信息用于指示存储有数据的缓存,即表示哪些缓存存储了该数据,数据的缓存状态信息还用于指示数据是否被修改等信息。
例如,第二地址部分用于确定第一缓存1011中用于存储数据对应的一致性目录信息的缓存存储组,例如,一致性维护模块102基于第二地址部分,将数据对应的一致性目录信息存储在第一缓存1011中与第二地址部分对应的缓存存储组中的任一存储块中。例如,在一些实施例中,一致性维护模块 102基于第二地址部分,通过组相联的地址映射方式,将数据对应的一致性目录信息存储在第一缓存1011中与第二地址部分对应的缓存存储组中的任一存储块中。
例如,在多个缓存存储组中,按照组相联的方式保存了多个数据分别对应的一致性目录信息,该一致性目录信息能够表示数据在缓存中的存储状态,为了能快速查找某个数据在缓存中的存储状态,通常该数据在用于存储该数据的系统存储器中对应的地址的一部分(即第二地址部分)作为组相联的地址映射关系实现映射,该数据在用于存储该数据的系统存储器中对应的地址的剩下部分(即第一地址部分)与该数据的缓存状态信息作为该数据对应的一致性目录信息被存储在第一缓存中的对应缓存存储组的某一存储块中。
例如,在本公开的实施例中,每个缓存存储组中的每个存储块可以存储多个数据对应的一致性目录信息。如图2A所示,对于存储组C1中的存储块B1,该存储组C1中的存储块B1存储的内容可以包括目录标志和多个一致性目录信息。每个一致性目录信息可以包括目录地址标志和缓存状态信息,目录标志用于表示该存储组C1中的存储块B1存储的内容为一致性目录信息。例如,在图2A所示的示例中,存储组C1中的存储块B1可以存储两个一致性目录信息,分别为目录地址标志0和缓存状态信息0以及目录地址标志1和缓存状态信息1。
例如,多个存储组C1~Cn还包括多个数据存储组,例如,图2A所示的存储组Cn可以为数据存储组。每个数据存储组中的每个存储块用于存储一个数据对应的数据存储信息。
例如,在一些实施例中,由于数据存储信息和一致性目录信息的格式的区别,存储组中的一个存储块可以存储一个数据存储信息或者十个一致性目录信息,然而,本公开的实施例对此不作具体限定,每个存储块可以存储的信息的数量根据实际设计可以随意调整。
例如,除了第一缓存1011,其余缓存(例如,图1A和图1B所示的缓存1012~缓存1016)中的存储组均为数据存储组。
需要说明的是,在本公开的实施例中,缓存存储组和数据存储组在结构上并没有区别,缓存存储组表示即可以存储数据也可以存储数据对应的一致性目录信息的存储组,而数据存储组则表示仅可以存储数据的存储组。
例如,每个数据对应的数据存储信息可以包括数据地址标志和数据状态信息。数据在存储该数据的系统存储器中对应的地址包括第一地址部分和第二地址部分,第一地址部分用于表示数据对应的数据地址标志,第二地址部分用于确定在缓存中用于存储该数据对应的数据存储信息的数据存储组。
例如,在每个缓存中,通常按照组相联的方式保存多个数据,即存储多个数据分别对应的数据存储信息,为了能快速查找某个数据,通常该数据在用于存储数据的系统存储器中对应的地址的一部分(即第二地址部分)作为组相联的地址映射关系实现映射,该数据在用于存储该数据的系统存储器中对应的地址的剩下部分(即第一地址部分)、该数据以及数据状态信息作为该数据对应的数据存储信息被存储在一个或多个缓存中的对应数据存储组的某一存储块中。数据状态信息通常为表示该数据是“干净”或是“脏”状态,即指示该数据是否被改写,当数据状态信息为“脏”状态,则表示该数据已经被改写;当数据状态信息为“干净”状态,则表示该数据没有被改写。需要说明的是,数据状态信息还可以指示数据的其他状态信息。
需要说明的是,虽然本公开中,可以采用“组相联”的方式进行地址映射,然而应该理解,地址映射的方式不限于组相联,还可以采用任何合适的方式实现,例如,全相联或者一一映射的方式。
如图2A所示,对于存储组Cn中的存储块B1,该存储块B1存储的内容可以包括数据标志和数据存储信息。每个数据存储信息可以包括数据地址标志、数据状态信息和该数据本身,数据标志用于表示该存储组Cn中的存储块B1存储的内容为数据。例如,在图2A所示的示例中,存储组Cn中的存储块B1存储的内容为数据0对应的数据存储信息,数据0对应的数据存储信息包括数据地址标志0、数据状态信息0以及数据0。
需要说明的是,第一地址部分和第二地址部分的划分方式可以根据实际情况设置,本公开对此不作限定。一致性目录信息或者数据存储信息不限制为图2A所示的具体内容,其还可以具有其他信息,一致性目录信息或者数据存储信息包括的具体信息可以根据实际情况设置,本公开对此不作限定。
例如,在第一缓存1011中,每个存储块仅能存储一种类型的信息,即只能存储一致性目录信息或数据存储信息。但是每个存储组可以同时存储一致性目录信息和数据存储信息,即该存储组中的一些存储块存储一致性目录信息,该存储组中的另一些存储块则存储数据存储信息。
例如,如图1A和图1B所示,电子设备100还包括多个处理器103(处理器1031和处理器1032),多个缓存101包括由多个处理器103使用的多个专用缓存以及多个处理器103共用的至少一个共享缓存。在一些实施例中,至少一个共享缓存包括第一缓存1011,即第一缓存1011为共享缓存,且可以由多个处理器103共用。在另一些实施例中,第一缓存1011可以为专用缓存。本公开对此不作具体的限定。
需要说明的是,在本公开的实施例中,处理器的专用缓存表示仅仅可以由该处理器访问的缓存,而共享缓存则可以由多个处理器访问。
每个处理器103可以使用至少一个专用缓存和至少一个共享缓存,例如,图1A和图1B所示的缓存1012和缓存1013可以为由处理器1031使用的专用缓存,图1A和图1B所示的缓存1014和缓存1015可以为由处理器1032 使用的专用缓存,图1A和图1B所示的缓存1016可以为由处理器1031和处理器1032共用的共享缓存。例如,第一缓存1011也可以为由处理器1031 和处理器1032共用的共享缓存。例如,缓存1012和缓存1014可以为第一级缓存(L1),缓存1013和缓存1014可以为第二级缓存(L2)。缓存1016 可以为第三级缓存(L3),第一缓存1011可以为系统级缓存(SLC,system level cache,SLC通常指计算机系统中分布在系统存储器和缓存(L1、L2、 L3等)之间的缓存)。
例如,至少一个共享缓存还包括至少一个第二缓存。如图1A和图1B所示,缓存1016可以为第二缓存。对于多个处理器103中需要访问缓存的当前处理器,当前处理器首先访问由当前处理器使用的至少一个专用缓存,然后访问至少一个共享缓存中的至少一个第二缓存,最后访问至少一个共享缓存中的第一缓存。例如,当前处理器可以为处理器1031,当处理器1031发出读取请求以读取数据时,处理器1031会访问缓存,此时,处理器1031首先访问由处理器1031使用的至少一个专用缓存,即缓存1012和缓存1013,在设计的过程,对于专用缓存的访问可以设定访问顺序,例如,处理器1031 可以先访问缓存1012,当缓存1012中没有存储处理器1031需要读取的数据时,处理器1031接着访问缓存1013;当访问完专用缓存,即缓存1012和缓存1013均没有存储处理器1031需要读取的数据时,处理器1031则可以继续访问该处理器1031使用的至少一个共享缓存,即图1A和图1B所示的第一缓存1011和缓存1016,在设计的过程,对于共享缓存的访问也可以设定访问顺序,例如,处理器1031可以先访问缓存1016(第二缓存),当缓存 1016中没有存储处理器1031需要读取的数据时,则处理器1031访问第一缓存1011。
需要说明的是,在图1A和图1B所示的示例中,仅示出了六个缓存101 (缓存1011~缓存1016)和两个处理器103(处理器1031和处理器1032),然而,本公开的实施例并不限于此,电子设备100可以包括更多或更少的缓存,也可以包括更多的处理器。
例如,每个缓存具有一个缓存控制模块,该缓存控制模块可以访问缓存中的每一个存储块,以对存储块中存储的内容进行读取,然后解析该存储的内容。在判断处理器103发出的读取请求中的需要被读取的数据是否被存储在某个缓存中时,由缓存中的缓存控制模块执行判断的过程,即缓存控制模块将存储块中的内容读取出并解析,将解析后的内容与基于读取请求确定的需要被读取的数据进行比较,从而判断存储块中存储的数据与需要被读取的数据是否一致。缓存控制模块每次可以读取一个存储组中的所有存储块存储的内容,并行进行比较。
如图2A所示,第一缓存1011包括缓存控制模块1011A,该缓存控制模块1011A不仅可以实现数据之间的比较,还可以实现地址之间的比较。例如,当处理器103发出读取请求,且该读取请求被传输至第一缓存1011时,缓存控制模块1011A可以解析该读取请求,并获取处理器103需要读取的数据以及该数据对应的地址(系统存储器上的地址),该缓存控制模块1011A可以将第一缓存1011中的每个存储块中的内容读取出并解析,将解析后的内容与需要读取的数据以及该数据对应的地址进行比较。需要说明的是,目录信息的比较过程(即地址的比较过程)和数据的比较过程是相互独立的。
例如,如图1B所示,根据访问缓存的逻辑顺序,缓存1012最靠近处理器1031,缓存1011最远离处理器1031,即处理器1031最先访问缓存1012,最后访问缓存1011;类似地,缓存1014最靠近处理器1032,缓存1011最远离处理器1032。
例如,在一些实施例中,如图1B所示,一致性维护模块102与第一缓存1011耦接(例如,直接耦接,从而提高一致性维护模块102访问第一缓存1011的速度),以直接访问第一缓存1011。
例如,如图1B所示,电子设备100还包括一致性互联总线104,一致性互联总线104与缓存1016直接耦接,还与一致性维护模块102直接耦接。一致性互联总线104为信息传输的公共通信干线,例如,一致性互联总线104 为由导线等电子元件组成的传输线束。
例如,当缓存1016为第一缓存时,一致性互联总线104将一致性维护模块102与第一缓存(即缓存1016)耦接。
例如,如图1A和图1B所示,电子设备100还包括至少一个系统存储器105。第一缓存1011被配置为能够存储与至少一个系统存储器中存储的所有数据中的至少部分数据对应的一致性目录信息。
例如,系统存储器105可以为主存,也可以为电子设备101外接的存储器,例如,硬盘、软盘、光盘、U盘等。
例如,如图1B所示,一致性维护模块102与至少一个系统存储器105 中的一个系统存储器1051耦接,例如,直接耦接,即一致性维护模块102可以直接访问系统存储器1051,从而实现维护系统存储器1051中存储的数据的一致性。
需要说明的是,在本公开中,两个器件“耦接”表示在逻辑关系上其中一个器件可以访问另一个器件。
例如,如图1B所示,当处理器1031需要读取数据时,若处理器1031 使用的所有缓存(即缓存1012、缓存1013、缓存1016和缓存1011)均没有存储该数据,则可以从系统存储器1051中读取该数据并反馈给处理器1031。根据访问缓存的逻辑顺序,缓存1012和缓存1014最远离系统存储器1051,而缓存1011最靠近系统存储器1051。
例如,每个系统存储器可以包括目录存储空间,目录存储空间用于存储多个缓存101中存储的所有数据存储信息对应的数据中的至少部分数据对应的一致性目录信息。目录存储空间所存储的一致性目录信息和第一缓存1011 所存储的一致性目录信息可以部分相同,也可以完全不相同。
需要说明的是,对于系统存储器中的目录存储空间,该目录存储空间中存储的一致性目录信息的判断是由一致性维护模块102实现的。
图2B为本公开一些实施例提供的一种第一缓存和系统存储器的结构示意图。
例如,如图2B所示,系统存储器1051可以包括目录存储空间1051A,当某个数据的一致性目录信息需要被存储至第一缓存1011中的某个缓存存储组,若该缓存存储组存在容量冲突,即该缓存存储组的所有存储块均已经存储相应的信息(一致性目录信息或数据存储信息),则需要对缓存存储组中存储的某个信息(例如,待替换的信息)进行相应处理,例如,若待替换的信息为一致性目录信息,则该待替换的信息可以被扩展存储到目录存储空间1051A,然后将该数据的一致性目录信息存储至该缓存存储组中;例如,若待替换的信息为数据存储信息,且该数据存储信息中的数据状态信息为脏状态,则该待替换的信息可以被写入对应的系统存储器中,然后将该数据的一致性目录信息存储至该缓存存储组中;例如,若待替换的信息为数据存储信息,且该数据存储信息中的数据状态信息为干净状态,则直接将该数据的一致性目录信息存储至该缓存存储组中从而覆盖该待替换的信息。
例如,如图2B所示的存储组C1的存储块B3中存储的一致性目录信息可以包括待替换的信息,且该待替换的信息为待替换的一致性目录信息,然后该待替换的一致性目录信息被存储至目录存储空间1051A,然后将该数据的一致性目录信息存储至该缓存存储组中的存储块B3中。当待替换的一致性目录信息对应的数据再次被读取时,则可以从目录存储空间1051A中读取该待替换的一致性目录信息,在进行一致性维护之后,将该一致性维护后的待替换的一致性目录信息存储至第一缓存1011中,例如,该一致性维护后的待替换的一致性目录信息可以被存储至存储组C1中的任一存储块。
例如,在一些实施例中,目录存储空间1051A可以包括多个目录存储组,该多个目录存储组可以与第一缓存1011中的多个缓存存储组一一对应。若待替换的信息为一致性目录信息,在将待替换的信息被扩展存储到目录存储空间1051A时,可以将该待替换的信息存储到目录存储空间1051A的与该缓存存储组对应的目录存储组,从而便于后续查询该待替换的信息。
例如,在又一些实施例中,可以在每个缓存存储组中设置标志位,该标志位用于指示是否该缓存存储组中的信息被扩展存储到目录存储空间1051A,当标志位为使能状态,则表示该缓存存储组中的信息被扩展存储到目录存储空间1051A;当标志位为非使能状态,则表示该缓存存储组中没有信息被扩展存储到目录存储空间1051A。例如,若待替换的信息为一致性目录信息,在将待替换的信息被扩展存储到目录存储空间1051A的与该缓存存储组对应的目录存储组,可以将该缓存存储组的标志位设置为使能状态,从而便于一致性维护。
在本公开的实施例提供的电子设备中,可以减小传统目录模块(即存储一致性目录信息的模块)对电路资源的消耗,并且由于第一缓存和系统存储器通常比传统目录模块大几个数量级,因此相较于传统目录模块,能存储的一致性目录信息的数量有较大提高,从而可以提高系统性能。
需要说明的是,容量冲突不只发生在缓存一致性目录信息的缓存存储组上,缓存数据的数据存储组一样会产生容量冲突。在缓存存储组发生容量冲突的情况下,根据替换规则,如果待替换的信息的是一致性目录信息,则将该待替换的一致性目录信息写入系统存储器的目录存储空间,如果待替换的信息是数据,即数据存储信息,若待替换的数据状态信息为脏状态,则该待替换的数据存储信息被写入系统存储器,若待替换的数据存储信息中的数据状态信息为干净状态,则将新一致性目录信息或新数据(即数据存储信息) 直接覆盖旧数据(即待替换的数据存储信息)的位置。缓存数据的数据存储组容量冲突为缓存本身就包含的功能,在此不再赘述。
例如,替换规则可以采用LRU(Least Recently Used,即最近最少使用) 等算法,替换规则也可以采用随机的方式,即待替换的信息是随机选择的。本公开的实施例对替换规则的具体实现方式不作限制。
例如,一致性维护模块102可以采用软件、硬件、固件以及它们的任意可行的组合实现。例如,一致性维护模块102可以包括逻辑器件,例如,寄存器、锁存器、触发器、缓存器、反转器等。
例如,处理器103可以是中央处理单元(CPU)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元,例如现场可编程门阵列(FPGA) 或张量处理单元(TPU)等;例如,中央处理单元(CPU)可以为X86或ARM 架构等。
图3A为本公开的实施例提供的另一种电子设备的结构示意图,图3B 为本公开的实施例提供的另一种电子设备的另一种结构示意图。
如图3A所示,在一些实施例中,电子设备可以包括四个处理器 1031~1034、12个缓存1011~1016以及1111~1116、两个一致性维护模块102 和112、两个系统存储器105/1051和115。对于处理器1031和1032、缓存1011~1016、一致性维护模块102、系统存储器105/1051的相关描述参见附图1B的相关说明,在此不再赘述。
例如,如图3A所示,由处理器1033使用的专用缓存包括缓存1112和缓存1113,由处理器1034使用的专用缓存包括缓存1114和缓存1115,由处理器1033和处理器1034共用的共享缓存包括缓存1116和缓存1111。在一些实施例中,缓存1111可以为第一缓存,即缓存1111可以存储数据对应的数据存储信息,还可以存储数据对应的一致性目录信息。在另一些实施例中,缓存1116可以为第一缓存。一致性维护模块112被配置为维护缓存中存储的数据的一致性。
例如,一致性维护模块112与缓存1111耦接(例如,直接耦接),以直接访问缓存1111。
例如,如图3A所示,一致性互联总线104与缓存1016和缓存1116均直接耦接,还与一致性维护模块102和一致性维护模块112直接耦接。
例如,缓存1112和缓存1114可以为第一级缓存(L1),缓存1113和缓存1115可以为第二级缓存(L2),缓存1116可以为第三级缓存(L3),缓存 1111可以为系统级缓存(SLC)。
如图3B所示,在一些实施例中,电子设备可以包括四个处理器 1031~1034、11个缓存1011~1016以及1111~1115、两个一致性维护模块102 和112、两个系统存储器105/1051和115。图3B所示的电子设备的结构层次与图3A所示的电子设备的结构层次类似,不同之处在于:在图3B中,电子设备不再包括一致性互联总线,缓存1016由四个处理器1031~1034共用,两个系统存储器105/1051和115均直接耦接至缓存1016。例如,在图3B所示的电子设备中,缓存1016用于存储一致性目录信息,由于两个系统存储器105/1051和115均直接耦接至缓存1016,从而系统存储器105/1051和115 访问缓存1016的速度较快。或者,在图3B所示的电子设备中,缓存1011 和缓存1111用于存储一致性目录信息。
需要说明的是,在电子设备100中,缓存的结构层次可以根据实际情况设置,而不限于图1B、图3A和图3B所示的结构,例如,在一些实施例中,缓存的结构可以互联拓扑结构。
图4为本公开一些实施例提供的一种数据处理方法的示意图。
例如,数据处理方法可以应用于本公开的实施例提供的电子设备中,例如,上述电子设备100。如图4所示,在本公开的一些实施例中,数据处理方法包括以下步骤S101-S103。
步骤S101,获取待处理数据。
步骤S102,确定待处理数据对应的一致性目录信息。
步骤S103,将待处理数据对应的一致性目录信息存储在第一缓存中。
在本公开的实施例提供的数据处理方法中,通过将一致性目录信息存储在第一缓存中,可以以较小的电路资源消耗来实现目录功能,节省电路资源。
例如,在一些实施例中,在电子设备包括多个处理器的情况下,多个处理器包括第一处理器,步骤S101可以包括:通过第一处理器发出读取请求;基于读取请求,确定待处理数据和待处理数据在存储待处理数据的系统存储器中对应的地址;响应于由第一处理器使用的所有缓存中的至少一个缓存中存储有待处理数据,从至少一个缓存中读取待处理数据;响应于由第一处理器使用的所有缓存中均没有存储待处理数据,且第一缓存或一致性维护模块耦接的系统存储器的目录存储空间中存储有待处理数据对应的一致性目录信息,基于待处理数据对应的一致性目录信息从存储有待处理数据的至少一个缓存中读取待处理数据;响应于由第一处理器使用的所有缓存中均没有存储待处理数据,且第一缓存和一致性维护模块耦接的系统存储器的目录存储空间中均没有存储待处理数据对应的一致性目录信息,从存储待处理数据的系统存储器中读取待处理数据。
例如,由第一处理器使用的所有缓存包括专用缓存和共享缓存。
例如,在一些实施例中,步骤S102可以包括:响应于电子设备中的至少一个缓存中存储有待处理数据,获取待处理数据对应的原始一致性目录信息,对原始一致性目录信息进行一致性维护,以确定待处理数据对应的一致性目录信息;响应于电子设备中的所有缓存均没有存储待处理数据,通过电子设备中的至少一个缓存存储待处理数据,基于存储有待处理数据的至少一个缓存,确定待处理数据对应的缓存状态信息,基于待处理数据在存储待处理数据的系统存储器中对应的地址,确定待处理数据对应的目录地址标志,基于缓存状态信息和目录地址标志,生成待处理数据对应的一致性目录信息。
例如,当第一处理器发出读取请求之后,该读取请求会依次访问该第一处理器使用的所有缓存中,若由第一处理器使用的所有缓存中的至少一个缓存中存储有待处理数据,则从至少一个缓存中读取待处理数据;若由第一处理器使用的所有缓存中均没有存储待处理数据,则该读取请求会访问一致性维护模块。
图5A为本公开至少一个实施例提供的读取待处理数据的过程的示意图。需要说明的是,图5A所示的过程是在由第一处理器使用的除了第一缓存之外的所有缓存中均没有存储待处理数据的情况下所对应的过程。
如图5A所示,当由第一处理器使用的除了第一缓存之外的所有缓存中均没有存储待处理数据,读取该待处理数据的过程可以包括以下步骤S501- S511。
在步骤S501,读取请求访问一致性维护模块。
在步骤S502,一致性维护模块访问第一缓存。
在步骤S503,判断数据是否命中。当数据命中,则执行步骤S504,执行一致性维护,并向第一处理器回复待处理数据。当数据命中,一致性维护模块可以对该待处理数据执行一致性维护,并从第一缓存中读取该待处理数据并将该待处理数据传输至第一处理器中。
当数据没有命中,则执行步骤S505,判断目录是否命中。在步骤S505 中,当目录命中,则执行步骤S506,基于一致性维护方法完成一致性读请求,更新后的一致性目录信息存储在第一缓存中。即当目录命中时,基于待处理数据对应的一致性目录信息从存储有待处理数据的至少一个缓存(该至少一个缓存并不是由第一处理器使用的缓存)中读取待处理数据,并对该待处理数据执行一致性维护,然后,该待处理数据被传输至第一处理器中,同时,该待处理数据可以被存储在由第一处理器使用的所有缓存中的至少一个缓存中。对该待处理数据执行一致性维护,从而可以更新待处理数据对应的一致性目录信息,该更新后的一致性目录信息存储在第一缓存中。
在步骤S505中,当目录没有命中时,则执行步骤S507,读取系统存储器中存储的一致性目录信息。当目录没有命中时,还执行步骤S508,读取系统存储器存储的待处理数据。在步骤S508中,可以基于读取请求中的待处理数据在存储该待处理数据的系统存储器中对应的地址,从系统存储器中读取该待处理数据。步骤S507和步骤S508可以同时执行,如果在步骤S507 中目录命中,则步骤S508中读取的待处理数据不进行后续处理,如果在步骤S507中目录没有命中,则步骤S508中读取的待处理数据可以直接被传输至第一处理器中,从而可以节省读取数据的时间。
在步骤S509中,判断目录是否命中。在步骤S509中,当目录命中,则执行步骤S510,基于一致性维护方法完成一致性读请求,更新后的一致性目录信息存储在第一缓存中。当目录命中时,基于待处理数据对应的一致性目录信息从存储有待处理数据的至少一个缓存中读取待处理数据,即在步骤 S510中,在电子设备的缓存中读取该待处理数据。该待处理数据被传输至第一处理器中,同时,该待处理数据可以被存储在由第一处理器使用的所有缓存中的至少一个缓存中。对该待处理数据执行一致性维护,从而可以更新待处理数据对应的一致性目录信息,该更新后的一致性目录信息存储在第一缓存中。
例如,获取更新待处理数据对应的一致性目录信息包括获取待处理数据对应的原始一致性目录信息,对原始一致性目录信息进行一致性维护,以更新待处理数据对应的一致性目录信息并确定待处理数据对应的一致性目录信息。
在步骤S509中,当目录没有命中时,则执行步骤S511,基于一致性维护方法完成一致性读请求,生成一致性目录信息,并将一致性目录信息存储在第一缓存中。在步骤S511中,在电子设备的系统存储器中读取该待处理数据,由于该待处理数据并没有被存储在电子设备的任一缓存中,因此,第一缓存和系统存储器的目录存储空间并没有存储该待处理数据的一致性目录信息,由此,需要基于该待处理数据的缓存状态信息和待处理数据在存储待处理数据的系统存储器中对应的地址等信息生成该待处理数据的一致性目录信息,然后将该一致性目录信息存储在第一缓存中。
例如,在步骤S511中,当从电子设备的系统存储器中读取该待处理数据之后,可以将该待处理数据存储至第一处理器使用的至少一个缓存中,基于存储有待处理数据的至少一个缓存,确定待处理数据对应的缓存状态信息,基于待处理数据在存储待处理数据的系统存储器中对应的地址,确定待处理数据对应的目录地址标志,基于缓存状态信息和目录地址标志,则可以生成待处理数据对应的一致性目录信息。
例如,待处理数据在存储待处理数据的系统存储器中的对应地址包括第一地址部分,该第一地址部分作为目录地址标志。
需要说明的是,在步骤S505中,判断第一缓存中存储的一致性目录信息是否命中,而在步骤S509中,则判断系统存储器的目录存储空间中存储的一致性目录信息是否命中。在本公开中,“数据命中”表示第一缓存中存储有该待处理数据,“目录命中”表示第一缓存或系统存储器的目录存储空间中存储有该待处理数据对应的一致性目录信息。
例如,在电子设备包括至少一个系统存储器,每个系统存储器包括目录存储空间,电子设备中的第一缓存包括多个缓存存储组,每个缓存存储组包括多个存储块的情况下,步骤S103包括:基于待处理数据在存储待处理数据的系统存储器中对应的地址,确定第一缓存中用于存储待处理数据对应的一致性目录信息的缓存存储组;响应于缓存存储组不存在容量冲突,直接将待处理数据对应的一致性目录信息存储在缓存存储组中的任一存储块;响应于缓存存储组存在容量冲突,基于替换规则,确定存储在缓存存储组中的待替换的信息,响应于待替换的信息为一致性目录信息,将待处理数据对应的一致性目录信息存储在用于存储待替换的信息的存储块中,并将待替换的信息存储在与一致性维护模块耦接的系统存储器的目录存储空间中;响应于待替换的信息为数据存储信息,且数据存储信息对应的数据对应的数据状态信息表示脏状态,将待处理数据对应的一致性目录信息存储在用于存储待替换的信息的存储块中,并将待替换的信息存储在对应的系统存储器(例如,该对应的系统存储器可以表示待替换的信息(即数据存储信息)对应的数据所对应的系统存储器,即将该数据存储至原始用于存储该数据的系统存储器中) 中;响应于待替换的信息为数据存储信息,且数据存储信息对应的数据对应的数据状态信息表示干净状态,将待处理数据对应的一致性目录信息存储在用于存储待替换的信息的存储块中。
在本公开的实施例中,“容量冲突”表示缓存存储组中的所有存储块均已存储信息,即缓存存储组中的所有存储块均没有存储空间存储一致性目录信息。
本公开对于确定待替换的信息的方法不作具体限制。
例如,待处理数据在存储待处理数据的系统存储器中对应的地址还包括第二地址部分。在步骤S103中,基于待处理数据在存储待处理数据的系统存储器中对应的地址,确定第一缓存中用于存储待处理数据对应的一致性目录信息的缓存存储组,包括:从待处理数据在存储待处理数据的系统存储器中对应的地址中获取第二地址部分;基于第二地址部分,确定第一缓存中用于存储待处理数据对应的一致性目录信息的缓存存储组。
需要说明的是,第二地址部分和缓存存储组的具体映射关系可以根据实际情况设置,本公开的实施例对此不作具体限制。
例如,在一些实施例中,数据处理方法还包括:将待处理数据存储在由第一处理器使用的至少一个缓存中。
例如,将待处理数据存储在由第一处理器使用的至少一个缓存中,包括:对于由第一处理器使用的至少一个缓存中的每个缓存:响应于缓存中存储有待处理数据且待处理数据对应的数据状态信息表示脏状态,获取待处理数据对应的数据存储信息,将待处理数据对应的数据存储信息存储在缓存中;响应于缓存中没有存储待处理数据或待处理数据对应的数据状态信息不表示脏状态,且响应于第一缓存或一致性维护模块耦接的系统存储器的目录存储空间中存储有待处理数据对应的一致性目录信息,对待处理数据进行一致性维护以确定待处理数据对应的数据存储信息,将待处理数据对应的数据存储信息存储在缓存中;响应于第一缓存和一致性维护模块耦接的系统存储器的目录存储空间中均没有存储待处理数据对应的一致性目录信息,获取待处理数据对应的数据存储信息,将待处理数据对应的数据存储信息存储在缓存中。
例如,待处理数据在存储待处理数据的系统存储器中对应的地址包括第一地址部分和第二地址部分,第一地址部分用于表示待处理数据对应的数据地址标志,第二地址部分用于确定在缓存中用于存储待处理数据对应的数据存储信息的数据存储组。
在本公开的实施例中,第一地址部分既可以表示目录地址标志,也可以表示数据地址标志,第二地址部分既可以用于确定第一缓存中用于存储待处理数据对应的一致性目录信息的缓存存储组,也用于确定在缓存中用于存储待处理数据对应的数据存储信息的数据存储组。需要说明的是,第二地址部分和数据存储组的具体映射关系可以根据实际情况设置,本公开的实施例对此不作具体限制。
例如,获取待处理数据对应的数据存储信息,将待处理数据对应的数据存储信息存储在缓存中,包括:从待处理数据在存储待处理数据的系统存储器中对应的地址中获取待处理数据对应的第一地址部分和第二地址部分;确定待处理数据对应的数据状态信息;基于待处理数据、待处理数据对应的第一地址部分和待处理数据对应的数据状态信息确定待处理数据对应的数据存储信息;确定缓存中与第二地址部分对应的数据存储组;将待处理数据对应的数据存储信息存储在数据存储组中的任一存储块中。
例如,在缓存中存储有待处理数据且待处理数据对应的数据状态信息表示“脏”状态的情况下,确定待处理数据对应的数据状态信息包括:从该缓存中读取该待处理数据对应的数据存储信息,并基于该待处理数据对应的数据存储信息确定该待处理数据对应的数据状态信息。此时,该待处理数据对应的数据状态信息表示“脏”状态。在第一缓存和一致性维护模块耦接的系统存储器的目录存储空间中均没有存储待处理数据对应的一致性目录信息的情况下,确定待处理数据对应的数据状态信息包括:直接生成该待处理数据对应的数据状态信息。此时,该待处理数据对应的数据状态信息表示“干净”状态。
例如,对待处理数据进行一致性维护以确定待处理数据对应的数据存储信息,将待处理数据对应的数据存储信息存储在缓存中,包括:获取待处理数据对应的原始数据状态信息,对原始数据状态信息进行一致性维护,以确定待处理数据对应的数据状态信息;从待处理数据在存储待处理数据的系统存储器中对应的地址中获取待处理数据对应的第一地址部分和第二地址部分;基于待处理数据、待处理数据对应的第一地址部分和进行一致性维护之后的待处理数据对应的数据状态信息确定待处理数据对应的数据存储信息;确定缓存中与第二地址部分对应的数据存储组;将待处理数据对应的数据存储信息存储在数据存储组中的任一存储块中。
例如,在缓存中存储有待处理数据且待处理数据对应的数据状态信息表示干净状态的情况下,获取待处理数据对应的原始数据状态信息包括:从该缓存中读取该待处理数据对应的数据存储信息,并基于该待处理数据对应的数据存储信息确定该待处理数据对应的原始数据状态信息。此时,该待处理数据对应的原始数据状态信息为“干净”状态。
例如,在缓存中存储没有待处理数据的情况下,获取待处理数据对应的原始数据状态信息包括:基于待处理数据对应的一致性目录信息,从存储有该待处理数据的缓存中读取该待处理数据对应的数据存储信息,并基于该待处理数据对应的数据存储信息确定该待处理数据对应的原始数据状态信息。此时,该待处理数据对应的原始数据状态信息可以为“脏”状态或“干净”状态。
图5B为本公开至少一个实施例提供的向缓存中写入待处理数据的过程的示意图。
如图5B所示,向缓存中写入该待处理数据的过程可以包括以下步骤 S521-S530。
在步骤S521,一致性写请求访问一致性维护模块。
在步骤S522,一致性维护模块访问第一缓存。
在步骤S523,判断数据是否命中且数据对应的数据状态信息是否为“脏”状态。当数据命中且数据(即待处理数据)对应的数据状态信息为“脏”状态,则执行步骤S524,写入待处理数据。
当数据没有命中或数据(即待处理数据)对应的数据状态信息不为“脏”状态,则执行步骤S525,判断目录是否命中。在步骤S525中,当目录命中,则执行步骤S526,对待处理数据执行一致性维护,写入待处理数据。
在步骤S525中,当目录没有命中时,则执行步骤S527,读取系统存储器中存储的一致性目录信息。
在步骤S528中,判断目录是否命中。在步骤S528中,当目录命中,则执行步骤S529,对待处理数据执行一致性维护,写入待处理数据。
在步骤S528中,当目录没有命中,则执行步骤S530,写入待处理数据。在步骤S530中,由于该待处理数据并没有被存储在电子设备的任一缓存中,即该待处理数据从电子设备的系统存储器中读取得到,然后将该待处理数据写入对应的缓存中,同时,需要生成该待处理数据的一致性目录信息,并将该待处理数据的一致性目录信息存储在第一缓存中。
需要说明的是,写入待处理数据表示将待处理数据写入缓存中,具体写入待处理数据的过程可以参考上面的关于将待处理数据对应的数据存储信息存储在缓存中的相关描述。例如,“一致性维护”包括不修改数据对应的一致性目录信息,当执行一致性维护并确定数据对应的一致性目录信息没有改变,则不修改数据对应的一致性目录信息。
图6为本公开至少一个实施例提供的一种数据处理装置的示意图。
本公开的实施例提供的数据处理装置的技术效果与本公开的实施例提供的数据处理方法的技术效果相同,此处不再赘述。
例如,数据处理装置可以应用于本公开的实施例提供的电子设备中,例如,上述电子设备100。
如图6所示,在本公开的一些实施例中,数据处理装置600包括获取模块601、目录信息确定模块602和存储模块603。
获取模块601被配置为获取待处理数据。获取模块601可以用于实现图 4所示的数据处理方法中的步骤S101,关于获取模块601可以实现的功能的具体说明可以参考上述数据处理方法的实施例中对于步骤S101的描述。
目录信息确定模块602被配置为确定待处理数据对应的一致性目录信息。目录信息确定模块602可以用于实现图4所示的数据处理方法中的步骤 S102,关于目录信息确定模块602可以实现的功能的具体说明可以参考上述数据处理方法的实施例中对于步骤S102的描述。
存储模块603被配置为将待处理数据对应的一致性目录信息存储在第一缓存中。存储模块603可以用于实现图4所示的数据处理方法中的步骤S103,关于存储模块603可以实现的功能的具体说明可以参考上述数据处理方法的实施例中对于步骤S103的描述。
例如,获取模块601、目录信息确定模块602和存储模块603之间可以实现数据传输。
例如,获取模块601、目录信息确定模块602和/或存储模块603可以采用硬件、软件、固件以及它们的任意可行的组合实现。
例如,获取模块601、目录信息确定模块602和存储模块603等组件可以通过有线或无线的方式进行通信,例如,获取模块601、目录信息确定模块602和存储模块603等组件可以通过总线进行互联,以实现通信,或者,获取模块601、目录信息确定模块602和存储模块603等组件之间也可以通过网络连接进行通信,本公开的实施例对此不作限制。
在一些实施例中,获取模块601、目录信息确定模块602和/或存储模块 603包括存储在存储器中的代码和程序;处理器可以执行该代码和程序以实现如上所述的获取模块601、目录信息确定模块602和/或存储模块603的一些功能或全部功能。在另一些实施例中,获取模块601、目录信息确定模块 602和/或存储模块603可以是专用硬件器件,用来实现如上所述的获取模块 601、目录信息确定模块602和/或存储模块603的一些或全部功能。例如,获取模块601、目录信息确定模块602和/或存储模块603可以是一个电路板或多个电路板的组合,用于实现如上所述的功能。在本公开的实施例中,该一个电路板或多个电路板的组合可以包括:(1)一个或多个处理器;(2)与处理器相连接的一个或多个非暂时的计算机可读的存储器;以及(3)处理器可执行的存储在存储器中的固件。
本公开至少一实施例还提供一种计算机系统。图7为本公开一实施例提供的一种计算机系统的示意图。
例如,如图7所示,计算机系统700可以包括本公开任一实施例所述的电子设备701。例如,电子设备701可以为上述电子设备100。应当注意,图7所示的计算机系统700的组件只是示例性的,而非限制性的,根据实际应用需要,该计算机系统700还可以具有其他组件。
需要说明的是,附图中的流程图和框图,图示了按照本公开的各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含至少一个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
一般而言,本公开的各种示例实施例可以在硬件或专用电路、软件、固件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其他方面可以在可以由控制器、微处理器或其他计算设备执行的固件或软件中实施。当本公开的实施例的各方面被图示或描述为框图、流程图或使用某些其他图形表示时,将理解此处描述的方框、装置、系统、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某些组合中实施。
对于本公开,还有以下几点需要说明:
(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)为了清晰起见,在用于描述本发明的实施例的附图中,层或结构的厚度和尺寸被放大。可以理解,当诸如层、膜、区域或基板之类的元件被称作位于另一元件“上”或“下”时,该元件可以“直接”位于另一元件“上”或“下”,或者可以存在中间元件。
(3)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。

Claims (21)

1.一种电子设备,包括:多个缓存和一致性维护模块,
其中,所述多个缓存中的每个被配置为能够存储至少一个数据对应的数据存储信息,所述数据存储信息包括所述至少一个数据的数据地址标志以及数据状态信息和包括所述至少一个数据本身;
所述一致性维护模块被配置为维护所述多个缓存中存储的所有数据存储信息对应的数据的一致性,
所述多个缓存包括第一缓存,所述第一缓存还被配置为存储所述多个缓存中存储的所有数据存储信息对应的数据中的至少部分数据对应的一致性目录信息。
2.根据权利要求1所述的电子设备,还包括多个处理器,
其中,所述多个缓存包括由所述多个处理器使用的多个专用缓存以及所述多个处理器共用的至少一个共享缓存,
所述至少一个共享缓存包括所述第一缓存。
3.根据权利要求2所述的电子设备,其中,所述至少一个共享缓存还包括至少一个第二缓存,
对于所述多个处理器中需要访问缓存的当前处理器,所述当前处理器首先访问由所述当前处理器使用的至少一个专用缓存,然后访问所述至少一个共享缓存中的至少一个第二缓存,最后访问所述至少一个共享缓存中的所述第一缓存。
4.根据权利要求1所述的电子设备,其中,所述一致性维护模块与所述第一缓存耦接,以直接访问所述第一缓存。
5.根据权利要求4所述的电子设备,还包括:一致性互联总线,
其中,所述一致性互联总线将所述一致性维护模块与所述第一缓存耦接。
6.根据权利要求1所述的电子设备,还包括:至少一个系统存储器,
其中,所述第一缓存被配置为能够存储与所述至少一个系统存储器中存储的所有数据中的至少部分数据对应的一致性目录信息。
7.根据权利要求6所述的电子设备,其中,每个系统存储器包括目录存储空间,所述目录存储空间用于存储所述多个缓存中存储的所有数据存储信息对应的数据中的至少部分数据对应的一致性目录信息。
8.根据权利要求6所述的电子设备,其中,对于所述多个缓存中存储的所有数据存储信息对应的数据中的每个数据:所述数据在用于存储所述数据的系统存储器中对应的地址包括第一地址部分,所述数据对应的一致性目录信息包括所述数据的缓存状态信息和所述第一地址部分,所述数据的缓存状态信息用于指示存储有所述数据的缓存。
9.根据权利要求8所述的电子设备,其中,对于所述多个缓存中存储的所有数据存储信息对应的数据中的每个数据:所述数据在用于存储所述数据的系统存储器中对应的地址还包括第二地址部分,
所述第一缓存包括多个存储组,每个存储组包括多个存储块,所述多个存储组包括多个缓存存储组,
所述多个缓存存储组用于存储所述多个缓存中存储的所有数据存储信息对应的数据中的至少部分数据对应的一致性目录信息,
所述一致性维护模块基于所述第二地址部分,将所述数据对应的一致性目录信息存储在所述第一缓存中与所述第二地址部分对应的缓存存储组中的任一存储块中。
10.根据权利要求9所述的电子设备,其中,所述多个存储组还包括多个数据存储组,
每个数据存储组中的每个存储块用于存储一个数据对应的数据存储信息,
每个缓存存储组中的每个存储块用于存储多个数据对应的一致性目录信息。
11.根据权利要求6所述的电子设备,其中,所述一致性维护模块与所述至少一个系统存储器中的一个系统存储器耦接,以实现维护所述系统存储器中存储的数据的一致性。
12.一种数据处理方法,应用于权利要求1-11任一项所述的电子设备,其中,所述数据处理方法包括:
获取待处理数据;
确定所述待处理数据对应的一致性目录信息;
将所述待处理数据对应的一致性目录信息存储在所述第一缓存中。
13.根据权利要求12所述的数据处理方法,其中,在所述电子设备包括至少一个系统存储器,每个系统存储器包括目录存储空间,所述第一缓存包括多个缓存存储组,每个缓存存储组包括多个存储块的情况下,
将所述待处理数据对应的一致性目录信息存储在所述第一缓存中,包括:
基于所述待处理数据在存储所述待处理数据的系统存储器中对应的地址,确定所述第一缓存中用于存储所述待处理数据对应的一致性目录信息的缓存存储组;
响应于所述缓存存储组不存在容量冲突,直接将所述待处理数据对应的一致性目录信息存储在所述缓存存储组中的任一存储块;
响应于所述缓存存储组存在容量冲突,基于替换规则,确定存储在所述缓存存储组中的待替换的信息,响应于所述待替换的信息为一致性目录信息,将所述待处理数据对应的一致性目录信息存储在用于存储所述待替换的信息的存储块中,并将所述待替换的信息存储在与所述一致性维护模块耦接的系统存储器的目录存储空间中;响应于所述待替换的信息为数据存储信息,且所述数据存储信息对应的数据对应的数据状态信息表示脏状态,将所述待处理数据对应的一致性目录信息存储在用于存储所述待替换的信息的存储块中,并将所述待替换的信息存储在对应的系统存储器中;响应于所述待替换的信息为数据存储信息,且所述数据存储信息对应的数据对应的数据状态信息表示干净状态,将所述待处理数据对应的一致性目录信息存储在用于存储所述待替换的信息的存储块中。
14.根据权利要求13所述的数据处理方法,其中,确定所述待处理数据对应的一致性目录信息,包括:
响应于所述电子设备中的至少一个缓存中存储有所述待处理数据,获取所述待处理数据对应的原始一致性目录信息,对所述原始一致性目录信息进行一致性维护,以确定所述待处理数据对应的一致性目录信息;
响应于所述电子设备中的所有缓存均没有存储所述待处理数据,通过所述电子设备中的至少一个缓存存储所述待处理数据,基于存储有所述待处理数据的至少一个缓存,确定所述待处理数据对应的缓存状态信息,基于所述待处理数据在存储所述待处理数据的系统存储器中对应的地址,确定所述待处理数据对应的目录地址标志,基于所述缓存状态信息和所述目录地址标志,生成所述待处理数据对应的一致性目录信息。
15.根据权利要求14所述的数据处理方法,其中,所述待处理数据在存储所述待处理数据的系统存储器中对应的地址包括第一地址部分,所述第一地址部分作为所述目录地址标志。
16.根据权利要求15所述的数据处理方法,其中,所述待处理数据在存储所述待处理数据的系统存储器中对应的地址还包括第二地址部分,
基于所述待处理数据在存储所述待处理数据的系统存储器中对应的地址,确定所述第一缓存中用于存储所述待处理数据对应的一致性目录信息的缓存存储组,包括:
从所述待处理数据在存储所述待处理数据的系统存储器中对应的地址中获取所述第二地址部分;
基于所述第二地址部分,确定所述第一缓存中用于存储所述待处理数据对应的一致性目录信息的缓存存储组。
17.根据权利要求12所述的数据处理方法,其中,所述电子设备包括多个处理器的情况下,所述多个处理器包括第一处理器,
获取待处理数据包括:
通过所述第一处理器发出读取请求;
基于所述读取请求,确定所述待处理数据和所述待处理数据在存储所述待处理数据的系统存储器中对应的地址;
响应于由所述第一处理器使用的所有缓存中的至少一个缓存中存储有所述待处理数据,从所述至少一个缓存中读取所述待处理数据;
响应于由所述第一处理器使用的所有缓存中均没有存储所述待处理数据,且所述第一缓存或所述一致性维护模块耦接的系统存储器的目录存储空间中存储有所述待处理数据对应的一致性目录信息,基于所述待处理数据对应的一致性目录信息从存储有所述待处理数据的缓存中读取所述待处理数据;
响应于由所述第一处理器使用的所有缓存中均没有存储所述待处理数据,且所述第一缓存和所述一致性维护模块耦接的系统存储器的目录存储空间中均没有存储所述待处理数据对应的一致性目录信息,从存储所述待处理数据的系统存储器中读取所述待处理数据。
18.根据权利要求17所述的数据处理方法,还包括:将所述待处理数据存储在由所述第一处理器使用的至少一个缓存中。
19.根据权利要求18所述的数据处理方法,其中,将所述待处理数据存储在由所述第一处理器使用的至少一个缓存中,包括:
对于由所述第一处理器使用的至少一个缓存中的每个缓存:
响应于所述缓存中存储有所述待处理数据且所述待处理数据对应的数据状态信息表示脏状态,获取所述待处理数据对应的数据存储信息,将所述数据存储信息存储在所述缓存中;
响应于所述缓存中没有存储所述待处理数据或所述待处理数据对应的数据状态信息不表示脏状态,且响应于所述第一缓存或所述一致性维护模块耦接的系统存储器的目录存储空间中存储有所述待处理数据对应的一致性目录信息,对所述待处理数据进行一致性维护以确定所述待处理数据对应的数据存储信息,将所述数据存储信息存储在所述缓存中;
响应于所述第一缓存和所述一致性维护模块耦接的系统存储器的目录存储空间中均没有存储所述待处理数据对应的一致性目录信息,获取所述待处理数据对应的数据存储信息,将所述数据存储信息存储在所述缓存中。
20.一种数据处理装置,应用于权利要求1-11任一项所述的电子设备,其中,所述数据处理装置包括:
获取模块,被配置为获取待处理数据;
目录信息确定模块,被配置为确定所述待处理数据对应的一致性目录信息;
存储模块,被配置为将所述待处理数据对应的一致性目录信息存储在所述第一缓存中。
21.一种计算机系统,包括根据权利要求1-11任一项所述的电子设备。
CN202111568672.9A 2021-12-21 2021-12-21 电子设备、数据处理方法和装置、计算机系统 Active CN114238171B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111568672.9A CN114238171B (zh) 2021-12-21 2021-12-21 电子设备、数据处理方法和装置、计算机系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111568672.9A CN114238171B (zh) 2021-12-21 2021-12-21 电子设备、数据处理方法和装置、计算机系统

Publications (2)

Publication Number Publication Date
CN114238171A CN114238171A (zh) 2022-03-25
CN114238171B true CN114238171B (zh) 2022-09-30

Family

ID=80760047

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111568672.9A Active CN114238171B (zh) 2021-12-21 2021-12-21 电子设备、数据处理方法和装置、计算机系统

Country Status (1)

Country Link
CN (1) CN114238171B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116049031A (zh) * 2023-02-28 2023-05-02 海光信息技术股份有限公司 数据处理方法、装置、电子设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105488012A (zh) * 2015-12-09 2016-04-13 浪潮电子信息产业股份有限公司 一种基于独占数据的一致性协议设计方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020138698A1 (en) * 2001-03-21 2002-09-26 International Business Machines Corporation System and method for caching directory information in a shared memory multiprocessor system
US6868485B1 (en) * 2002-09-27 2005-03-15 Advanced Micro Devices, Inc. Computer system with integrated directory and processor cache
US20080244189A1 (en) * 2007-03-30 2008-10-02 Allison Brian D Method, Apparatus, System and Program Product Supporting Directory-Assisted Speculative Snoop Probe With Concurrent Memory Access
CN102270180B (zh) * 2011-08-09 2014-04-02 清华大学 一种多核处理器系统的管理方法
CN102591800B (zh) * 2011-12-31 2015-01-07 龙芯中科技术有限公司 一种弱一致性存储模型的数据访存系统和方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105488012A (zh) * 2015-12-09 2016-04-13 浪潮电子信息产业股份有限公司 一种基于独占数据的一致性协议设计方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
多处理器共享缓存设计与实现;张剑飞;《计算机与数字工程》;20080920(第09期);全文 *

Also Published As

Publication number Publication date
CN114238171A (zh) 2022-03-25

Similar Documents

Publication Publication Date Title
EP2476051B1 (en) Systems and methods for processing memory requests
US9384134B2 (en) Persistent memory for processor main memory
US9064330B2 (en) Shared virtual memory between a host and discrete graphics device in a computing system
JP5348429B2 (ja) 持続性メモリのためのキャッシュコヒーレンスプロトコル
US8209499B2 (en) Method of read-set and write-set management by distinguishing between shared and non-shared memory regions
US10402327B2 (en) Network-aware cache coherence protocol enhancement
US8285969B2 (en) Reducing broadcasts in multiprocessors
US20100325374A1 (en) Dynamically configuring memory interleaving for locality and performance isolation
US7991963B2 (en) In-memory, in-page directory cache coherency scheme
US20120102273A1 (en) Memory agent to access memory blade as part of the cache coherency domain
US6560681B1 (en) Split sparse directory for a distributed shared memory multiprocessor system
US10761986B2 (en) Redirecting data to improve page locality in a scalable data fabric
CN114238171B (zh) 电子设备、数据处理方法和装置、计算机系统
US9037804B2 (en) Efficient support of sparse data structure access
US9442856B2 (en) Data processing apparatus and method for handling performance of a cache maintenance operation
CN102902631A (zh) 一种避免读缺失时数据回写的多处理器核间传输方法
CN114238165B (zh) 数据处理方法、数据处理装置以及存储介质
CN112612726B (zh) 基于缓存一致性的数据存储方法、装置、处理芯片及服务器
US11379370B1 (en) System and methods for reducing global coherence unit snoop filter lookup via local memories
CN116049031A (zh) 数据处理方法、装置、电子设备和存储介质
CN115934367A (zh) 缓冲处理方法及探听过滤器、多处理器系统、存储介质
CN114238170A (zh) 数据处理方法、数据处理装置和存储介质
Jalil et al. Proposal New Cache Coherence Protocol to Optimize CPU Time through Simulation Caches

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
GR01 Patent grant
GR01 Patent grant