CN114238165B - 数据处理方法、数据处理装置以及存储介质 - Google Patents

数据处理方法、数据处理装置以及存储介质 Download PDF

Info

Publication number
CN114238165B
CN114238165B CN202111568891.7A CN202111568891A CN114238165B CN 114238165 B CN114238165 B CN 114238165B CN 202111568891 A CN202111568891 A CN 202111568891A CN 114238165 B CN114238165 B CN 114238165B
Authority
CN
China
Prior art keywords
data
stored
information
data information
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.)
Active
Application number
CN202111568891.7A
Other languages
English (en)
Other versions
CN114238165A (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 CN202111568891.7A priority Critical patent/CN114238165B/zh
Publication of CN114238165A publication Critical patent/CN114238165A/zh
Application granted granted Critical
Publication of CN114238165B publication Critical patent/CN114238165B/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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • 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

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是图3中“将待存储数据信息存放在空闲的存储单元里或将待存储数据信息存入存储单元”步骤的示意图;
图5是图3中“将被选择数据信息根据被选择数据信息的数据状态移出用于存储被选择数据信息的存储单元”步骤的示意图;
图6为本公开一些实施例提出的一种数据处理方法的示意图;
图7是图6中“将待存储目录信息存入被选择存储单元”步骤的示意图;
图8为本公开一些实施例提供的一种数据处理装置的示意图;
图9为图8中第一数据操作模块的示意图;
图10为图8中第二数据操作模块的示意图;
图11为本公开一些实施例提供的数据处理装置的示意图;以及
图12为本公开一些实施例提供的一种非暂时性存储介质的示意图。
具体实施方式
为了使得本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
为了保持本公开实施例的以下说明清楚且简明,本公开省略了部分已知功能和已知部件的详细说明。
在具有多个处理器的计算机***中,为了能提高数据一致性维护的效率,可以利用例如侦听过滤等技术进行数据一致性维护。侦听过滤可以帮助追踪数据在多个缓存中的缓存状态,例如,数据在缓存中只有单一副本、有多个副本、或者该数据只存在***存储器(例如,主存)中等。
在具有多个处理器和多个缓存的计算机***中,目前,某些目录式一致性***会通过目录追踪数据的缓存状态,并把追踪到的数据的缓存状态存储在目录中,即目录可以用于维护数据一致性。当一致性代理侦听总线发现一致性事务后,会查询目录追踪的信息并发出响应的探针完成一致性维护。在使用目录进行一致性维护时,服务器多核计算机***中会包含一个独立的存储目录的存储模块,以减少计算机***内的各个模块间的传输通信数目。然而该存储模块会占用一定的电路资源,增加电路的资源消耗。
本公开至少一个实施例提供一种数据处理方法、数据处理装置和存储介质。该数据处理方法应用于电子设备,电子设备包括目录存储器和由多个处理器使用的多个缓存,目录存储器用于存储多个缓存中存储的数据信息对应的目录信息,目录存储器包括多个存储组,每个存储组包括至少一个存储单元,该数据处理方法包括:接收待存储数据信息,其中,待存储数据信息与***存储器中由数据地址所指示的位置相对应;响应于目录存储器中的与数据地址对应的存储组中存在空闲的存储单元,将待存储数据信息存放在空闲的存储单元里。
在本公开的实施例中,通过存储目录信息的目录存储器来存储数据信息,从而提高目录存储器的利用率,而且处理器可以快速找到并读取目录存储器存储的数据信息,从而提高***的整体性能。
图1为本公开一些实施例提供的一种电子设备的示意图。
如图1所示,电子设备100包括至少一个目录存储器101、多个缓存106(缓存1061~缓存1065)、至少一个***存储器105和一致性维护模块102。
本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)、可穿戴电子设备等等的移动终端以及诸如数字TV、台式计算机、智能家居设备等等的固定终端。
例如,多个缓存106中的每个缓存被配置为能够存储至少一个数据信息对应的数据存储信息,每个数据信息对应的数据存储信息包括该数据信息、该数据信息对应的数据状态和数据地址信息,数据地址信息可以为该数据信息对应的数据地址的至少一部分。一致性维护模块102被配置为维护多个缓存106中存储的所有数据存储信息对应的数据信息的一致性,即用于维护多个缓存106中存储的所有数据信息的一致性。
例如,目录存储器101可以采用与缓存不同的实现方式进行实现。本公开不限于此,在另一些实施例中,目录存储器101可以采用与缓存相同的实现方式进行实现,例如,图1所示的多个缓存106中的缓存1065也可以为目录存储器101的一个示例。例如,目录存储器101可以是目录侦听过滤器,以维护多个缓存106中存储的所有数据信息的一致性。
在本公开的实施例中,目录存储器101用于存储多个缓存106中存储的数据信息对应的目录信息,目录存储器101还被配置为可以存储至少一个数据信息,也就是说,目录存储器101表示可以同时存储目录信息和数据信息的存储器,其中,目录信息用于实现数据信息的一致性维护,该目录信息也可以被叫做一致性目录信息;该数据信息表示与***存储器105(后续描述)中该数据信息对应的数据地址指向的存储位置所存储的数据。
例如,存储在目录存储器101中的数据信息可以不存储与该数据信息对应的目录信息,例如,当该数据信息仅存储在目录存储器101上时,可以不存储与该数据信息对应的目录信息。
例如,若数据信息不仅存储在目录存储器101上且同时存在于多个缓存106中的至少一个缓存中时,可以存储与该数据信息对应的目录信息,此时可以对该数据信息进行一致性维护,例如维护多个缓存106中的至少一个缓存中以及目录存储器101中的该数据信息的一致性。
在本公开中,“维护多个缓存106中存储的所有数据信息的一致性”通常指基于探针的数据的状态的维护与数据的传递、以及相应的目录信息的更新机制,但是也可以包括数据的其他方面的一致性维护。
例如,在一些实施例中,目录存储器101以及缓存106可以实现为高速缓冲存储器,高速缓冲存储器由静态存储芯片(SRAM)组成。在计算机存储***的层次结构中,高速缓冲存储器是介于中央处理器和***存储器之间的高速小容量存储器。由于目录存储器101为缓存,且作为读写缓存,从而降低了***对数据的读写延时,提高了计算机***的整体性能。
在本公开的实施例中,以目录存储器101实现为高速缓冲存储器为例进行描述。
图2为本公开一些实施例提供的一种目录存储器的结构示意图。
对于缓存,为了便于快速查询缓存中存储的内容,可以将每个缓存划分多个存储组,每个存储组包括至少一个存储单元(也可以叫做存储块)。例如,缓存106中的每个存储单元用于一个数据信息对应的数据存储信息,目录存储器101中的每个存储单元用于存储多个目录信息或一个数据信息对应的数据存储信息。
例如,如图2所示,目录存储器101可以包括多个存储组C1~Cn(图2示出了三个存储组,即存储组C1、存储组C2、存储组Cn),每个存储组包括至少一个存储单元B1~Bm(图2示出了存储单元B1、存储单元B2、存储单元B(m-1)和存储单元Bm),n和m均为大于1的正整数。
需要说明的是,多个存储组中的每个存储组均可以用于存储数据信息和数据信息对应的目录信息。
例如,多个存储组分别对应的多个存储单元数量可以各不相同,也可以至少部分相同,具体可以根据实际设计需求进行设计。需要说明的是,存储组对应的存储单元数量表示存储组所包括的存储单元的数量。图2所示的示例中,每个存储组对应的存储单元数量均为m,即每个存储组包括m个存储单元。
例如,数据信息在存储该数据信息的***存储器中对应的地址包括第一地址部分和第二地址部分,第一地址部分用于表示该数据信息对应的数据地址信息,即数据地址信息可以为该第一地址部分;第二地址部分用于确定在缓存中用于存储该数据信息的存储组,即在将数据信息存储到缓存时,第二地址部分用于实现缓存中的存储组的映射。
例如,第一地址部分还可以表示该数据信息对应的目录信息中的目录地址,即目录信息中的目录地址可以为该第一地址部分;第二地址部分还可以用于确定在目录存储器中用于存储数据信息对应的目录信息的存储组,或用于确定在目录存储器中用于存储数据信息的存储组,即在将目录信息或数据信息存储到目录存储器时,该第二地址部分用于实现目录存储器中的存储组的映射。需要说明的是,第二地址部分和存储组的具体映射关系可以根据实际情况设置,本公开的实施例对此不作具体限制。
需要说明的是,关于第一地址部分和第二地址部分的划分方式,本公开不作限制。
需要说明的是,在电子设备100中,缓存的结构层次可以根据实际情况设置,而不限于图1所示的结构,例如,在一些实施例中,缓存的结构可以互联拓扑结构。
例如,如图2所示,在目录存储器101中,每个存储组的每个存储单元包括用于表示该存储单元存储的信息属于目录信息还是数据信息的存储标志位。
例如,在目录存储器101中,当存储单元的存储标志位指示目录标志时,该存储单元存储数据信息对应的目录信息。如图2所示,对于存储组C1中的存储单元B1,该存储组C1中的存储单元B1存储的内容可以包括目录标志和多个目录信息。每个目录信息可以包括目录地址和缓存状态,目录地址表示目录信息对应的数据信息的第一地址部分,缓存状态表示存储有该目录信息对应的数据信息的缓存,即表示哪些缓存存储了该数据信息,目录标志用于表示该存储组C1中的存储单元B1存储的内容为目录信息。例如,在图2所示的示例中,存储组C1中的存储单元B1可以存储两个目录信息,分别为目录地址0和缓存状态0以及目录地址1和缓存状态1。
例如,在目录存储器101中,通常按照组相联的方式保存多个数据信息,为了能快速查找某个数据信息,通常该数据信息在用于存储数据信息的***存储器中对应的地址的一部分(例如,上述第二地址部分)作为组相联的地址映射关系实现映射,该数据信息对应的地址的剩下部分(例如,上述第一地址部分)、该数据信息以及该数据信息对应的数据状态作为该数据信息对应的数据存储信息被存储在目录存储器101中的对应存储组的某一存储单元中。数据状态通常表示该数据信息是“干净”或是“脏”状态,即指示该数据信息是否被改写,当数据状态为“脏”状态,则表示该数据信息已经被改写;当数据状态为“干净”状态,则表示该数据信息没有被改写。
例如,在目录存储器101中,也可以按照组相联的方式保存多个目录信息。例如,可以通过目录信息的目录地址来确定目录信息在目录存储器101上对应的存储组,例如目录信息的目录地址可以对应于该目录信息对应的数据信息在用于存储该数据信息的***存储器中对应的地址的一部分(例如上述第一地址部分),例如可以通过该目录信息对应的数据信息在用于存储该数据信息的***存储器中对应的地址的一部分(例如上述第二地址部分)作为组相联的地址映射关系实现映射来确定目录信息在目录存储器101上对应的存储组。
例如,目录存储器101中的与数据信息对应的存储组可以通过该数据信息在***存储器中的地址的一部分(例如第二地址部分)来确定,例如通过组相联的方式确定与该数据信息对应的存储组。
需要说明的是,虽然本公开中,可以采用“组相联”的方式进行地址映射,然而应该理解,地址映射的方式不限于组相联,还可以采用任何合适的方式实现,例如,全相联或者一一映射的方式。
例如,在目录存储器101中,当存储单元的存储标志位指示数据标志时,该存储单元存储数据信息。如图2所示,对于存储组C1中的存储单元B2,该存储单元B2存储的内容可以包括数据标志和数据信息对应的数据存储信息,数据存储信息包括数据信息、数据信息对应的数据状态和数据地址信息。数据标志用于表示该存储组C1中的存储单元B2存储的内容为数据存储信息。例如,在图2所示的示例中,存储组C1中的存储单元B2存储的内容包括数据信息0、数据地址信息0和数据状态0。
需要说明的是,目录信息和数据存储信息不限制为图2所示的具体内容,其还可以具有其他信息,目录信息包括的具体内容和数据存储信息包括的具体内容可以根据实际情况设置,本公开对此不作限定。由于目录信息和数据存储信息的位宽并不一定相同,图2中示出了存储两个目录信息的存储单元可以存储一个数据存储信息的情况,但是本公开不限于此,实际中可以为各种比例(例如,1(数据存储信号):10(目录信息))或非对其的存储方式。
例如,在目录存储器101中,每个存储单元仅能存储一种类型的信息,即只能存储目录信息或数据信息。但是每个存储组可以同时存储目录信息和数据信息,即该存储组中的一些存储单元存储目录信息,该存储组中的另一些存储单元则存储数据信息。
例如,如图1所示,电子设备100还包括多个处理器103(处理器1031和处理器1032),多个缓存106包括由多个处理器103使用的多个专用缓存,在一些实施例中,多个缓存106还可以包括由多个处理器103共用的至少一个共享缓存。在一些实施例中,如图1所示,至少一个共享缓存包括缓存1065,即缓存1065为共享缓存,且可以由多个处理器103共用。在另一些实施例中,缓存1065可以为专用缓存。本公开对此不作具体的限定。
需要说明的是,在本公开的实施例中,处理器的专用缓存表示仅仅可以由该处理器访问的缓存,而共享缓存则可以由多个处理器访问。
每个处理器103可以使用至少一个专用缓存,在一些实施例中,每个处理器103还可以使用至少一个共享缓存,例如,图1所示的缓存1061和缓存1062可以为由处理器1031使用的专用缓存,图1所示的缓存1063和缓存1064可以为由处理器1032使用的专用缓存,图1所示的缓存1065可以为由处理器1031和处理器1032共用的共享缓存。例如,缓存1061和缓存1063可以为第一级缓存(L1),缓存1062和缓存1064可以为第二级缓存(L2)。缓存1065可以为第三级缓存(L3),目录存储器101可以为***级缓存(SLC,system level cache,SLC通常指计算机***中分布在***存储器和缓存(L1、L2、L3等)之间的缓存)。
例如,对于多个处理器103中需要访问缓存的当前处理器,当前处理器首先访问由当前处理器使用的至少一个专用缓存,然后访问至少一个共享缓存中的至少一个缓存,最后访问目录存储器。例如,当前处理器可以为处理器1031,当处理器1031发出读取请求以读取数据信息时,处理器1031会访问缓存,此时,处理器1031首先访问由处理器1031使用的至少一个专用缓存,即缓存1061和缓存1062,在设计的过程,对于专用缓存的访问可以设定访问顺序,例如,处理器1031可以先访问缓存1061,当缓存1061中没有存储处理器1031需要读取的数据时,处理器1031接着访问缓存1062;当访问完专用缓存,即缓存1061和缓存1062均没有存储处理器1031需要读取的数据时,处理器1031则可以继续访问该处理器1031使用的至少一个共享缓存,即图1所示的缓存1065,在设计的过程,对于共享缓存的访问也可以设定访问顺序;当访问完专用缓存和共享缓存,即缓存1061、缓存1062和缓存1065均没有存储处理器1031需要读取的数据时,处理器1031则可以继续访问目录存储器101。而当目录存储器101也没有存储处理器1031需要读取的数据时,则处理器1031可以继续访问***存储器105。
需要说明的是,在图1所示的示例中,仅示出了一个目录存储器101、一个***存储器105和五个缓存106(缓存1061~缓存1065)和两个处理器103(处理器1031和处理器1032),然而,本公开的实施例并不限于此,电子设备100可以包括更多的目录存储器,也可以包括更多或更少的缓存,也可以包括更多的处理器。
例如,每个缓存具有一个缓存控制模块,该缓存控制模块可以访问缓存中的每一个存储单元,以对存储单元中存储的内容进行读取,然后解析该存储的内容。在判断处理器103发出的读取请求中的需要被读取的数据是否被存储在某个缓存中时,由缓存中的缓存控制模块执行判断的过程,即缓存控制模块将存储单元中的内容读取出并解析,将解析后的内容与基于读取请求确定的需要被读取的数据进行比较,从而判断存储单元中存储的数据与需要被读取的数据是否一致。缓存控制模块每次可以读取一个存储组中的所有存储单元存储的内容,并行进行比较。
如图2所示,当目录存储器101实现为缓存时,目录存储器101包括缓存控制模块101A,该缓存控制模块101A不仅可以实现数据信息之间的比较,还可以实现地址之间的比较。例如,当处理器103发出读取请求,且该读取请求被传输至目录存储器101时,缓存控制模块101A可以解析该读取请求,并获取处理器103需要读取的数据信息以及该数据信息对应的数据地址(***存储器上的地址),该缓存控制模块101A可以将目录存储器101中的每个存储单元中的内容读取出并解析,将解析后的内容与需要读取的数据信息以及该数据信息对应的数据地址进行比较。需要说明的是,目录信息的比较过程(即地址的比较过程)和数据信息的比较过程是相互独立的。
例如,如图1所示,根据访问缓存的逻辑顺序,缓存1061最靠近处理器1031,目录存储器101最远离处理器1031,即处理器1031最先访问缓存1061,最后访问目录存储器101;类似地,缓存1063最靠近处理器1032,目录存储器101最远离处理器1032。
例如,在一些实施例中,如图1所示,一致性维护模块102与目录存储器101耦接(例如,直接耦接,从而提高一致性维护模块102访问目录存储器101的速度),以直接访问目录存储器101。
例如,如图1所示,电子设备100还包括一致性互联总线104,一致性互联总线104与缓存1065直接耦接,还与一致性维护模块102直接耦接。一致性互联总线104为信息传输的公共通信干线,例如,一致性互联总线104为由导线等电子元件组成的传输线束。
例如,如图1所示,目录存储器101被配置为能够存储与至少一个***存储器105中存储的所有数据信息中的至少部分数据信息对应的目录信息。
例如,***存储器105可以为主存,也可以为电子设备101外接的存储器,例如,硬盘、软盘、光盘、U盘等。
例如,如图1所示,一致性维护模块102与***存储器105耦接,例如,直接耦接,即一致性维护模块102可以直接访问其耦接的***存储器105,从而实现维护***存储器105中存储的数据信息的一致性。
需要说明的是,在本公开中,两个器件“耦接”表示在逻辑关系上其中一个器件可以访问另一个器件。
例如,如图1所示,当处理器1031需要读取数据信息时,若处理器1031使用的所有缓存(即缓存1061、缓存1062和缓存1065)均没有存储该数据信息,同时,目录存储器101也均没有存储该数据信息,则可以从***存储器105中读取该数据信息并反馈给处理器1031。根据访问缓存的逻辑顺序,缓存1061和缓存1062最远离***存储器105,而目录存储器101最靠近***存储器105。
例如,在一些实施例中,每个***存储器105可以包括目录存储空间,目录存储空间用于扩展存储目录信息,将目录信息扩展存储到***存储器中对***存储器的影响很小同时提高了用于存储目录信息的存储容量,降低了降级发生的概率,进而提高了***整体的性能。目录存储空间用于存储多个缓存106中存储的所有数据信息中的至少部分数据信息对应的目录信息。目录存储空间所存储的目录信息和目录存储器101所存储的目录信息可以部分相同,也可以完全不相同。
例如,目录存储空间可以包括与目录存储器中的多个存储组一一对应的多个扩展存储组,当某个目录信息需要存储到目录存储器中的某个存储组,而该存储组没有存储空间存储该目录信息时,该目录信息可以被存储到目录存储空间中的与该存储组对应的扩展存储组,以实现扩展存储目录信息,也便于后续查询该目录信息。
需要说明的是,对于***存储器105中的目录存储空间,该目录存储空间中存储的目录信息的判断是由一致性维护模块102实现的。
图3为本公开一些实施例提供的一种数据处理方法的示意图。
例如,数据处理方法可以应用于本公开的实施例提供的电子设备中,例如,上述电子设备100。
如图3所示,在本公开的一些实施例中,数据处理方法至少包括以下步骤S101-S102。
步骤S101,接收待存储数据信息。
在接收到待存储数据信息且确定待存储数据信息需要被存储至目录存储器的情况下,可以判断目录存储器中的与数据地址对应的存储组中是否存在空闲的存储单元,响应于目录存储器中的与数据地址对应的存储组中存在空闲的存储单元,则执行步骤S102,将待存储数据信息存放在空闲的存储单元里。
例如,在一些实施例中,如图1所示,电子设备100包括目录存储器101、***存储器105和由多个处理器103使用的多个缓存106,目录存储器101用于存储多个缓存106中存储的数据信息对应的目录信息,目录存储器101包括多个存储组,每个存储组包括至少一个存储单元。
例如,如图1所示,在步骤S101中,待存储数据信息与***存储器105中由数据地址所指示的位置相对应,例如,该待存储数据信息可以是处理器103从***存储器105中由数据地址所指示的位置读取的数据信息,或者,该待存储数据信息也可以是处理器103向***存储器105的数据地址写入的数据信息,本公开的实施例不对该数据信息的类型作限制。也就是说,当处理器需要读取某个地址的数据信息时,如果目录存储器中与该地址对应的存储组中有空闲的存储单元,则可以将***存储器中的该地址内的数据信息存储到目录存储器的该空间的存储单元;当处理器中需要向***存储器中写某个数据信息时,也可以直接写在目录存储器的对应空闲的存储单元中。
例如,在步骤S102中,当待存储数据信息被存放在目录存储器中之后,当***中需要再次读取该待存储数据信息时可以直接从目录存储器中读取缓存该待存储数据信息。
例如,在一些实施例中,目录存储器101上的存储组的空闲的存储单元可以包括存储标志位、地址位、状态位和数据位,如图2所示,存储单元B2可以为空闲的存储单元的一个示例。例如,该存储标志位、地址位、状态位和数据位等仅仅是示意性的划分方式,而不是实际的结构差异,每个存储单元的尺寸可以是固定的,而上述存储标志位、地址位、状态位和数据位等的划分方式可以根据存储单元存储的信息来划分。
图4是图3中“将待存储数据信息存放在空闲的存储单元里或将待存储数据信息存入存储单元”步骤的示意图。
如图4所示,在一些实施例中,步骤S102可以包括如下四个步骤S401~S404。
步骤S401,设置存储标志位为数据标志。
步骤S402,将待存储数据信息对应的数据地址的至少一部分存储在地址位。
步骤S403,将待存储数据信息对应的数据状态存储在状态位。
步骤S404,将待存储数据信息存储在数据位。
例如,步骤S401可以包括:将存储单元里设置用于表示该存储单元所存储的数据种类(例如该数据种类包括数据信息和目录信息)的存储标志位(Flag)设置为表示数据信息的标志,即设置为数据标志。例如,可以采用二进制数“0”表示数据信息的标志,即当存储单元中的存储标志位设置为“0”,则该存储单元存储的内容为数据信息。
例如,在步骤S402中,数据信息对应的数据地址信息即为数据地址的至少一部分。步骤S402中的地址位可以根据实际数据信息对应的地址格式以及数据信息对应的数据地址的大小等进行调整,例如,可以调整地址位具体占用的存储空间的大小等,本公开对此不做限定。例如,数据地址可以是与该数据地址对应的数据信息在***存储器中的地址,存储在地址位的数据地址的至少一部分可以为上述第一地址部分。
例如,在步骤S403中,数据状态可以是“干净”或是“脏”状态,即指示该数据信息是否被改写,当数据状态为“脏”状态,则表示该数据信息已经被改写;当数据状态为“干净”状态,则表示该数据信息没有被改写。步骤S403中的状态位可以根据实际数据状态的格式等特点进行适应性调整,本公开对此不作限定。
例如,步骤S404中的数据位可以根据实际数据信息的大小以及类型等特点进行适应性调整,本公开对此不作限定。
需要说明的是,在本公开的实施例中,“空闲的存储单元”表示目录存储器中的没有存储任何信息的存储单元。
如图3所示,在本公开的另一些实施例中,响应于目录存储器中的与数据地址对应的存储组中不存在空闲的存储单元,则判断目录存储器是否存储有至少一个数据信息,响应于目录存储器存储有至少一个数据信息,数据处理方法还包括以下步骤S103-S105。
步骤S103,确定至少一个数据信息中的被选择数据信息。
步骤S104,将被选择数据信息根据被选择数据信息的数据状态移出用于存储被选择数据信息的存储单元。
步骤S105,将待存储数据信息存入存储单元。
例如,步骤S103可以包括通过随机方式、最近最少使用(Least Recently Used,LRU)等方式确定至少一个数据信息中的被选择数据信息,本公开对此不做限定。
例如,当目录存储器中的与数据地址对应的存储组中不存在空闲的存储单元且没有存储数据信息时,其表示目录存储器中的与数据地址对应的存储组中存储的全部都是目录信息,此时,该存储组中的任何目录信息不能被数据信息所替换,也即,在这种情况下待存储数据信息不能存入目录存储器中。此时,可以根据交换规则,将多个缓存中存储的某个数据信息移除,并将该待存储数据信息存储在缓存中的用于存储该移除的数据信息的存储单元中。
图5是图3中“将被选择数据信息根据被选择数据信息的数据状态移出用于存储被选择数据信息的存储单元”步骤的示意图。
例如,在一些实施例中,如图5所示,步骤S104可以包括如下两个子步骤S301~S302。
首先判断被选择数据信息的数据状态指示被选择数据信息是否被修改,响应于被选择数据信息的数据状态指示被选择数据信息已被修改,执行步骤S301,先将被选择数据信息写入***存储器,之后再将被选择数据信息移出用于存储被选择数据信息的存储单元;响应于被选择数据信息的数据状态指示被选择数据信息未被修改,执行步骤S302,直接将被选择数据信息移出用于存储被选择数据信息的存储单元。
例如,在被选择数据信息已被修改,则被选择数据信息的数据状态可以是“脏”状态;在被选择数据信息未被修改,则被选择数据信息的数据状态可以是“干净”状态。
例如,在一些实施例中,被选择数据信息可以仅被存储在目录存储器中;在另一些实施例中,被选择数据信息不仅被存储在目录存储器中,还被存储在至少一个缓存中。
步骤S105的具体过程可以参考上述步骤S102的具体过程,此处不再赘述。
例如,当待存储数据信息被存放在目录存储器的空闲的存储单元之后,需要相应地设置或更新该待存储数据信息的数据状态。如图3所示,在本公开的另一些实施例中,数据处理方法还包括步骤S106,设置待存储数据信息的数据状态。
例如,在一些实施例中,待存储数据信息还被存储在至少一个缓存中,此时,步骤S106可以包括:响应于在多个缓存的至少一个缓存中存储的待存储数据信息已被修改,设置待存储数据信息的数据状态为第一状态;响应于在多个缓存的至少一个缓存中存储的待存储数据信息未被修改,设置待存储数据信息的数据状态为第二状态。
例如,在一些实施例中,电子设备的所有缓存均没有存储该待存储数据信息,此时,步骤S106可以包括:设置待存储数据信息的数据状态为第二状态。
例如,数据处理方法在将待存储数据信息存入目录存储器中的存储单元(空闲的存储单元或者存储被选择数据信息的存储单元)后,还要设置待存储数据信息对应的数据状态,例如,在步骤S106中,可以根据待存储数据信息是否被修改来设置待存储数据信息的数据状态。例如,当待存储数据信息被修改,则将待存储数据信息的数据状态设置为第一状态(例如“脏”状态),当待存储数据信息未被修改,则将待存储数据信息的数据状态设置为第二状态(例如“干净”状态),也就是说,在本申请中,第一状态表示“脏”状态,第二状态表示“干净”状态。
图6为本公开一些实施例提出的一种数据处理方法的示意图。
例如,本公开一些实施例提供的数据处理方法还可以包括图6所示的数据处理方法的各个步骤。如图6所示,在本公开的另一些实施例中,数据处理方法还包括步骤S201~S204。
步骤S201,获取需要存入目录存储器的待存储目录信息。
在获取待存储目录信息之后,判断目录存储器的与待存储目录信息对应的存储组中是否存在空闲的存储空间,响应于目录存储器的与待存储目录信息对应的存储组中不存在空闲的存储空间,执行步骤S202~S204。
步骤S202,确定与待存储目录信息对应的存储组中的被选择存储单元。
步骤S203,将被选择存储单元中存储的至少部分信息移出被选择存储单元。
步骤S204,将待存储目录信息存入被选择存储单元。
例如,空闲的存储空间可以是整个存储单元,也可以是存储单元中能够存放一个目录信息的存储区域。
例如,步骤S202中,可以通过随机方式、最近最少使用(Least Recently Used,LRU)等方式确定与待存储目录信息对应的存储组中的被选择存储单元,本公开对此不做限定。例如,若待存储目录信息对应的存储组存储有数据信息,可以从存储数据信息的一个或多个存储单元中随机或基于LRU方式选择一个存储单元作为被选择存储单元;若待存储目录信息对应的存储组没有存储数据信息,可以从存储组包括的多个存储单元中随机或基于LRU方式选择一个存储单元作为被选择存储单元。
例如,步骤S203中,被选择存储单元可以存储有数据信息,也可以存储有至少一个目录信息。当被选择存储单元中存储数据信息时,在移出该数据信息之前需要先判断该数据信息的数据状态是“干净”状态还是“脏”状态,当数据状态为“脏”状态时,需要将该数据信息先写入***存储器再从该被选择存储单元中移出,当数据状态为“干净”时,直接将该数据信息从该存储空间中移出;当被选择存储单元中存储目录信息时,可以先判断该目录信息对应的数据信息是否需要被移出,若该对应的数据信息需要移出,移出该数据信息的方法可以参考上述移出数据信息的方法,之后将该目录信息从该被选择存储单元中移出。当被选择存储单元中存储多个目录信息时,可以仅移除一个目录存储,也可以移除多个目录信息,本公开对此不作限制。
例如,当目录存储器的与待存储目录信息对应的存储组中存在空闲的存储空间时,则可以直接将该需要存入目录存储器的待存储目录信息存入空闲的存储空间中。
例如,在一些实施例中,目录存储器上的存储组的被选择存储单元可以包括存储标志位、地址位、状态位,如图2所示,存储单元B1可以为被选择存储单元的一个示例。例如,上述存储标志位、地址位和状态位等仅仅是示意性的划分方式,而不是实际的结构差异,每个存储单元的尺寸可以是固定的,而上述存储标志位、地址位和状态位等的划分方式可以根据存储单元存储的信息来划分。
图7是图6中“将待存储目录信息存入被选择存储单元”步骤的示意图。
如图7所示,步骤S204中的“将待存储目录信息存入被选择存储单元”可以包括如下三个步骤S501~S503。
步骤S501,设置存储标志位为目录标志。
步骤S502,将待存储目录信息中的目录地址存储在地址位。
步骤S503,将待存储目录信息中的缓存状态存储在状态位。
例如,步骤S501可以包括:将被选择存储单元里设置用于表示该被选择存储单元所存储的数据种类(例如该数据种类包括数据信息和目录信息)的存储标志位(Flag)设置为表示目录信息的标志,即设置为目录标志。例如,可以采用二进制数“1”表示目录信息的标志,即当存储单元存储标志位设置为“1”,则该存储单元存储的内容为目录信息。
例如,步骤S502中的地址位可以根据实际目录地址的格式和大小等进行调整,本公开对此不做限定。
例如,在步骤S503中,缓存状态可以用于表示目录信息对应的数据信息在多个缓存中的存储状态。步骤S503中的状态位可以根据实际缓存状态的格式等特点进行适应性调整,本公开对此不作限定。
本公开一些实施例还提供了一种数据处理装置,该数据处理装置应用于电子设备,电子设备包括目录存储器和由多个处理器使用的多个缓存,目录存储器用于存储多个缓存中存储的数据信息对应的目录信息,目录存储器包括多个存储组,每个存储组包括至少一个存储单元,该数据处理装置包括:数据接收模块,配置为接收待存储数据信息,其中,待存储数据信息与***存储器中由数据地址所指示的位置相对应;第一数据操作模块,配置为响应于目录存储器中的与数据地址对应的存储组中存在空闲的存储单元,将待存储数据信息存放在空闲的存储单元里。
该数据处理装置的技术效果与本公开提供的数据处理方法的技术效果相同,此处不再赘述。
图8为本公开一些实施例提供的一种数据处理装置的示意图。
例如,数据处理装置可以应用于本公开的实施例提供的电子设备中,例如,上述电子设备100。数据处理装置可以用于执行本公开的实施例提供的数据处理方法。
如图8所示,在本公开的一些实施例中,数据处理装置300至少包括数据接收模块310和第一数据操作模块320。例如,在本公开另一些实施例中,数据处理装置300还可以包括第二数据操作模块330和数据状态设置模块340。
数据接收模块310被配置为接收待存储数据信息,其中,待存储数据信息与***存储器中由数据地址所指示的位置相对应。数据接收模块310可以用于实现图3所示的数据处理方法中的步骤S101,关于数据接收模块310可以实现的功能的具体说明可以参考上述数据处理方法的实施例中对于步骤S101的描述。
第一数据操作模块320被配置为响应于目录存储器中的与数据地址对应的存储组中存在空闲的存储单元,将待存储数据信息存放在空闲的存储单元里。第一数据操作模块320可以用于实现图3所示的数据处理方法中的步骤S102,关于第一数据操作模块320可以实现的功能的具体说明可以参考上述数据处理方法的实施例中对于步骤S102的描述。
第一数据操作模块320还被配置为响应于目录存储器中的与数据地址对应的存储组中不存在空闲的存储单元且存储有至少一个数据信息,确定至少一个数据信息中的被选择数据信息,将被选择数据信息根据被选择数据信息的数据状态移出用于存储被选择数据信息的存储单元,将待存储数据信息存入该用于存储被选择数据信息的存储单元。第一数据操作模块320还可以进一步用于实现图3所示的数据处理方法中的步骤S103~步骤S105,关于第一数据操作模块320可以进一步实现的功能的具体说明可以参考上述数据处理方法的实施例中对于步骤S103~步骤S105的描述。
第二数据操作模块330被配置为获取需要存入目录存储器的待存储目录信息,响应于目录存储器的与待存储目录信息对应的存储组中不存在空闲的存储空间,确定与待存储目录信息对应的存储组中的被选择存储单元,将被选择存储单元中存储的至少部分信息移出被选择存储单元;将待存储目录信息存入被选择存储单元。第二数据操作模块330可以用于实现图6所示的数据处理方法中的步骤S201~步骤S204,关于第二数据操作模块330可以实现的功能的具体说明可以参考上述数据处理方法的实施例中对于步骤S201~步骤S204的描述。
数据状态设置模块340被配置为设置待存储数据信息的数据状态。数据状态设置模块340可以用于实现图3所示的数据处理方法中的步骤S106,关于数据状态设置模块340可以实现的功能的具体说明可以参考上述数据处理方法的实施例中对于步骤S106的描述。
图9为本公开一些实施例提供的图8中第一数据操作模块的示意图。
如图9所示,在本公开的一些实施例中,第一数据操作模块320可以包括第一存储标志操作单元321、第一地址位操作单元322、第一状态位操作单元323以及第一数据位操作单元324。
第一存储标志操作单元321被配置为设置存储标志位为数据标志。第一存储标志操作单元321可以用于实现图4所示的数据处理方法中的步骤S401,关于第一存储标志操作单元321可以实现的功能的具体说明可以参考上述数据处理方法的实施例中对于步骤S401的描述。
第一地址位操作单元322被配置为将待存储数据信息对应的数据地址的至少一部分存储在地址位。第一地址位操作单元322可以用于实现图4所示的数据处理方法中的步骤S402,关于第一地址位操作单元322可以实现的功能的具体说明可以参考上述数据处理方法的实施例中对于步骤S402的描述。
第一状态位操作单元323被配置为将待存储数据信息对应的数据状态存储在状态位。第一状态位操作单元323可以用于实现图4所示的数据处理方法中的步骤S403,关于第一状态位操作单元323可以实现的功能的具体说明可以参考上述数据处理方法的实施例中对于步骤S403的描述。
第一数据位操作单元324被配置为将待存储数据信息存储在数据位。第一数据位操作单元324可以用于实现图4所示的数据处理方法中的步骤S404,关于第一数据位操作单元324可以实现的功能的具体说明可以参考上述数据处理方法的实施例中对于步骤S404的描述。
图10为本公开一些实施例提供的图8中第二数据操作模块的示意图。
如图10所示,在本公开的一些实施例中,第二数据操作模块330可以包括第二存储标志操作单元331、第二地址位操作单元332以及第二状态位操作单元333。
第二存储标志操作单元331被配置为设置存储标志位为目录标志。第二存储标志操作单元331可以用于实现图7所示的数据处理方法中的步骤S501,关于第二存储标志操作单元331可以实现的功能的具体说明可以参考上述数据处理方法的实施例中对于步骤S501的描述。
第二地址位操作单元332被配置为将待存储目录信息中的目录地址存储在地址位。第二地址位操作单元332可以用于实现图7所示的数据处理方法中的步骤S502,关于第二地址位操作单元332可以实现的功能的具体说明可以参考上述数据处理方法的实施例中对于步骤S502的描述。
第二状态位操作单元333被配置为将待存储目录信息中的缓存状态存储在状态位。第二状态位操作单元333可以用于实现图7所示的数据处理方法中的步骤S503,关于第二状态位操作单元333可以实现的功能的具体说明可以参考上述数据处理方法的实施例中对于步骤S503的描述。
例如,数据接收模块310、第一数据操作模块320、第二数据操作模块330和数据状态设置模块340之间可以实现数据传输。
例如,数据接收模块310、第一数据操作模块320、第二数据操作模块330和数据状态设置模块340可以采用硬件、软件、固件以及它们的任意可行的组合实现。
例如,数据接收模块310、第一数据操作模块320、第二数据操作模块330和数据状态设置模块340等组件可以通过有线或无线的方式进行通信,例如,数据接收模块310、第一数据操作模块320、第二数据操作模块330和数据状态设置模块340等组件可以通过总线进行互联,以实现通信,或者,数据接收模块310、第一数据操作模块320、第二数据操作模块330和数据状态设置模块340等组件之间也可以通过网络进行通信,本公开的实施例对此不作限制。
图11为本公开一些实施例提供的数据处理装置的示意图。
如图11所示,根据本公开实施例的数据处理装置400可以包括处理器401以及存储器402,其可以通过总线403进行互连。应当注意,图11所示的数据处理装置400的组件只是示例性的,而非限制性的,根据实际应用需要,该数据处理装置400还可以具有其他组件。
处理器401可以根据存储在存储器402中的程序或代码执行各种动作和处理。具体地,处理器401可以是一种集成电路芯片,具有信号的处理能力。例如,上述处理器401可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本公开实施例中公开的各种方法、步骤、流程及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,可以是X86架构或者是ARM架构等。
存储器402用于非暂时性存储计算机可执行指令,处理器401用于运行计算机可执行指令。当计算机可执行指令在被处理器401执行时实现本公开至少一实施例提供的数据处理方法。
例如,存储器402可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)或闪存。易失性存储器可以是随机存取存储器(RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、双倍数据速率同步动态随机存取存储器(DDRSDRAM)、增强型同步动态随机存取存储器(ESDRAM)、同步连接动态随机存取存储器(SLDRAM)和直接内存总线随机存取存储器(DRRAM)。应注意,本文描述的方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
图11所示的数据处理装置的技术效果与本公开提供的数据处理方法的技术效果相同,此处不再赘述。
本公开的实施例还提供了一种非暂时性存储介质,该非暂时性存储介质可以为计算机可读存储介质,且用于非瞬时性地存储计算机可执行指令,该计算机可执行指令在被计算机执行时实现本公开一些实施例提供的数据处理方法。
图12为本公开一些实施例提供的一种非暂时性存储介质的示意图。
如图12所示,非暂时性存储介质500可以非暂时性地存储计算机可执行指令510,计算机可执行指令510在被计算机执行时实现本公开任一实施例提供的数据处理方法。
类似地,本公开实施例中的计算机可读存储介质可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。应注意,本文描述的方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本公开的实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行根据本公开实施例的数据处理方法。
上述数据处理装置以及存储介质的技术效果与上述数据处理方法的技术效果相同,此处不再赘述。
需要说明的是,附图中的流程图和框图,图示了按照本公开的各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含至少一个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
一般而言,本公开的各种示例实施例可以在硬件或专用电路、软件、固件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其他方面可以在可以由控制器、微处理器或其他计算设备执行的固件或软件中实施。当本公开的实施例的各方面被图示或描述为框图、流程图或使用某些其他图形表示时,将理解此处描述的方框、装置、***、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某些组合中实施。
对于本公开,还有以下几点需要说明:
(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)为了清晰起见,在用于描述本公开的实施例的附图中,层或结构的厚度和尺寸被放大。可以理解,当诸如层、膜、区域或基板之类的元件被称作位于另一元件“上”或“下”时,该元件可以“直接”位于另一元件“上”或“下”,或者可以存在中间元件。
(3)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。

Claims (16)

1.一种数据处理方法,应用于电子设备,其中,所述电子设备包括目录存储器和由多个处理器使用的多个缓存,所述目录存储器用于存储所述多个缓存中存储的数据信息对应的目录信息,所述目录存储器包括多个存储组,每个存储组包括至少一个存储单元,
所述数据处理方法包括:
接收待存储数据信息,其中,所述待存储数据信息与***存储器中由数据地址所指示的位置相对应;
响应于所述目录存储器中的与所述数据地址对应的存储组中存在空闲的存储单元,将所述待存储数据信息存放在所述空闲的存储单元里,
其中,所述待存储数据信息是从所述***存储器的所述数据地址读取的数据信息,或者,所述待存储数据信息是向所述***存储器的所述数据地址写入的数据信息。
2.如权利要求1所述的方法,还包括:
响应于所述目录存储器中的与所述数据地址对应的存储组中不存在空闲的存储单元且存储有至少一个数据信息:
确定所述至少一个数据信息中的被选择数据信息,
将所述被选择数据信息根据所述被选择数据信息的数据状态移出用于存储所述被选择数据信息的存储单元,
将所述待存储数据信息存入所述存储单元。
3.如权利要求2所述的方法,其中,所述将所述被选择数据信息根据所述被选择数据信息的数据状态移出用于存储所述被选择数据信息的存储单元包括:
响应于所述被选择数据信息的数据状态指示所述被选择数据信息已被修改,先将所述被选择数据信息写入所述***存储器,之后再将所述被选择数据信息移出用于存储所述被选择数据信息的存储单元;
响应于所述被选择数据信息的数据状态指示所述被选择数据信息未被修改,直接将所述被选择数据信息移出所述用于存储所述被选择数据信息的存储单元。
4.如权利要求1所述的方法,还包括:
获取需要存入所述目录存储器的待存储目录信息,
响应于所述目录存储器的与所述待存储目录信息对应的存储组中不存在空闲的存储空间:
确定与所述待存储目录信息对应的存储组中的被选择存储单元;
将所述被选择存储单元中存储的至少部分信息移出所述被选择存储单元;
将所述待存储目录信息存入所述被选择存储单元。
5.如权利要求4所述的方法,其中,所述被选择存储单元用于存储数据信息或至少一个目录信息。
6.如权利要求1所述的方法,还包括:设置所述待存储数据信息的数据状态,
其中,设置所述待存储数据信息的数据状态包括:
响应于在所述多个缓存的至少一个缓存中存储的所述待存储数据信息已被修改,设置所述待存储数据信息的数据状态为第一状态,
响应于在所述多个缓存的至少一个缓存中存储的所述待存储数据信息未被修改,设置所述待存储数据信息的数据状态为第二状态。
7.如权利要求1-6任一所述的方法,其中,所述空闲的存储单元包括:存储标志位、地址位、状态位和数据位,
将所述待存储数据信息存放在所述空闲的存储单元里,包括:
设置所述存储标志位为数据标志;
将所述数据地址的至少一部分存储在所述地址位;
将所述待存储数据信息对应的数据状态存储在所述状态位;
将所述待存储数据信息存储在所述数据位。
8.如权利要求4或5所述的方法,其中,所述被选择存储单元包括:存储标志位、地址位和状态位,
将所述待存储目录信息存入所述被选择存储单元,包括:
设置所述存储标志位为目录标志;
将所述待存储目录信息中的目录地址存储在所述地址位;
将所述待存储目录信息中的缓存状态存储在所述状态位。
9.一种数据处理装置,应用于电子设备,其中,所述电子设备包括目录存储器和由多个处理器使用的多个缓存,所述目录存储器用于存储所述多个缓存中存储的数据信息对应的目录信息,所述目录存储器包括多个存储组,每个存储组包括至少一个存储单元,
所述数据处理装置包括:
数据接收模块,配置为接收待存储数据信息,其中,所述待存储数据信息与***存储器中由数据地址所指示的位置相对应;
第一数据操作模块,配置为响应于所述目录存储器中的与所述数据地址对应的存储组中存在空闲的存储单元,将所述待存储数据信息存放在所述空闲的存储单元里,
其中,所述待存储数据信息是从所述***存储器的所述数据地址读取的数据信息,或者,所述待存储数据信息是向所述***存储器的所述数据地址写入的数据信息。
10.如权利要求9所述的数据处理装置,其中,
所述第一数据操作模块还配置为响应于所述目录存储器中的与所述数据地址对应的存储组中不存在空闲的存储单元且存储有至少一个数据信息:
确定所述至少一个数据信息中的被选择数据信息,
将所述被选择数据信息根据所述被选择数据信息的数据状态移出用于存储所述被选择数据信息的存储单元,
将所述待存储数据信息存入所述存储单元。
11.如权利要求9所述的数据处理装置,还包括:
第二数据操作模块,配置为:
获取需要存入所述目录存储器的待存储目录信息,响应于所述目录存储器的与所述待存储目录信息对应的存储组中不存在空闲的存储空间:
确定与所述待存储目录信息对应的存储组中的被选择存储单元,
将所述被选择存储单元中存储的至少部分信息移出所述被选择存储单元;
将所述待存储目录信息存入所述被选择存储单元。
12.如权利要求9所述的数据处理装置,还包括:数据状态设置模块,配置为设置所述待存储数据信息的数据状态,其中,
在执行设置所述待存储数据信息的数据状态的操作时,所述数据状态设置模块被配置为:
响应于在所述多个缓存中的至少一个缓存存储的所述待存储数据信息已被修改,设置所述待存储数据信息的数据状态为第一状态,
响应于在所述多个缓存中的至少一个缓存存储的所述待存储数据信息未被修改,设置所述待存储数据信息的数据状态为第二状态。
13.如权利要求9-12任一所述的数据处理装置,其中,所述空闲的存储单元包括:存储标志位、地址位、状态位和数据位,所述第一数据操作模块包括:
第一存储标志操作单元,配置为设置所述存储标志位为数据标志;
第一地址位操作单元,配置为将所述数据地址的至少一部分存储在所述地址位;
第一状态位操作单元,配置为将所述待存储数据信息对应的数据状态存储在所述状态位;
第一数据位操作单元,配置为将所述待存储数据信息存储在所述数据位。
14.如权利要求11所述的装置,其中,所述被选择存储单元包括:
存储标志位、地址位和状态位,所述第二数据操作模块包括:
第二存储标志操作单元,配置为设置所述存储标志位为目录标志;
第二地址位操作单元,配置为将所述待存储目录信息中的目录地址存储在所述地址位;
第二状态位操作单元,配置为将所述待存储目录信息中的缓存状态存储在所述状态位。
15.一种数据处理装置,包括:
存储器,用于非暂时性存储计算机可执行指令;以及
处理器,用于运行所述计算机可执行指令,
其中,所述计算机可执行指令被所述处理器运行时执行根据权利要求1-8任一项所述的数据处理方法。
16.一种非暂时性存储介质,非暂时性地存储计算机可执行指令,其中,当所述计算机可执行指令由计算机执行时,执行根据权利要求1-8任一项所述的数据处理方法。
CN202111568891.7A 2021-12-21 2021-12-21 数据处理方法、数据处理装置以及存储介质 Active CN114238165B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111568891.7A CN114238165B (zh) 2021-12-21 2021-12-21 数据处理方法、数据处理装置以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111568891.7A CN114238165B (zh) 2021-12-21 2021-12-21 数据处理方法、数据处理装置以及存储介质

Publications (2)

Publication Number Publication Date
CN114238165A CN114238165A (zh) 2022-03-25
CN114238165B true CN114238165B (zh) 2023-03-24

Family

ID=80759968

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111568891.7A Active CN114238165B (zh) 2021-12-21 2021-12-21 数据处理方法、数据处理装置以及存储介质

Country Status (1)

Country Link
CN (1) CN114238165B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117539799B (zh) * 2023-11-29 2024-07-05 沐曦集成电路(上海)有限公司 一种可配置Cache存储***

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104077375B (zh) * 2014-06-24 2017-09-12 华为技术有限公司 一种cc‑numa***中节点的错误目录的处理方法和节点
GB2539383B (en) * 2015-06-01 2017-08-16 Advanced Risc Mach Ltd Cache coherency
CN106406745B (zh) * 2015-07-27 2020-06-09 华为技术有限公司 根据目录信息维护Cache数据一致性的方法及装置
CN111158597A (zh) * 2019-12-28 2020-05-15 浪潮电子信息产业股份有限公司 一种元数据读取方法、装置及电子设备和存储介质
CN112579480B (zh) * 2020-12-09 2022-12-09 海光信息技术股份有限公司 存储管理方法、存储管理装置以及计算机***

Also Published As

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

Similar Documents

Publication Publication Date Title
US11748256B2 (en) Memory system and method for controlling nonvolatile memory
JP5752989B2 (ja) プロセッサ・メインメモリのための持続性メモリ
JP5348429B2 (ja) 持続性メモリのためのキャッシュコヒーレンスプロトコル
CN105740164B (zh) 支持缓存一致性的多核处理器、读写方法、装置及设备
CN104679669B (zh) 高速缓存cache存储器***及访问缓存行cache line的方法
US8669992B2 (en) Shared virtual memory between a host and discrete graphics device in a computing system
US20200081848A1 (en) Storage device and system
US20100325374A1 (en) Dynamically configuring memory interleaving for locality and performance isolation
US11210020B2 (en) Methods and systems for accessing a memory
US20180032429A1 (en) Techniques to allocate regions of a multi-level, multi-technology system memory to appropriate memory access initiators
WO2018057129A1 (en) Multi-level system memory having near memory space capable of behaving as near memory cache or fast addressable system memory depending on system state
JP6343722B2 (ja) マルチコアシステムにおいてデータ訪問者ディレクトリにアクセスするための方法及びデバイス
CN114238165B (zh) 数据处理方法、数据处理装置以及存储介质
EP4024213A1 (en) Cache management method and device
CN114238171B (zh) 电子设备、数据处理方法和装置、计算机***
US20230060587A1 (en) Undo capability for memory devices
CN112463652B (zh) 基于缓存一致性的数据处理方法、装置、处理芯片及服务器
US6996675B2 (en) Retrieval of all tag entries of cache locations for memory address and determining ECC based on same
CN114238170A (zh) 数据处理方法、数据处理装置和存储介质
CN112612726B (zh) 基于缓存一致性的数据存储方法、装置、处理芯片及服务器
CN116049031A (zh) 数据处理方法、装置、电子设备和存储介质
CN116225978A (zh) 数据处理方法、数据处理装置、电子设备和存储介质
CN117667785A (zh) 数据处理方法、数据处理装置、电子设备和存储介质
CN116795739A (zh) 一种内存访问方法及装置
CN117827706A (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
GR01 Patent grant
GR01 Patent grant