CN106815174B - 数据访问控制方法及节点控制器 - Google Patents
数据访问控制方法及节点控制器 Download PDFInfo
- Publication number
- CN106815174B CN106815174B CN201510860073.2A CN201510860073A CN106815174B CN 106815174 B CN106815174 B CN 106815174B CN 201510860073 A CN201510860073 A CN 201510860073A CN 106815174 B CN106815174 B CN 106815174B
- Authority
- CN
- China
- Prior art keywords
- data
- node
- visited
- access
- access request
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据访问控制方法及节点控制器,该方法包括:第一节点控制器在接收到第一节点发送的访问某一数据的访问请求时,根据访问请求获取待访问数据的数据属性;第一节点控制器根据该待访问数据的数据属性确定该访问请求的处理方式:当该待访问数据为私有数据时,第一节点控制器向第一节点所在处理器的存储控制器发送访问该数据的访问请求,以请求存储控制器协助完成该数据的访问过程;当该待访问数据为共享数据时,第一节点控制器向第一节点的主节点发送访问该数据的访问请求,以请求第一节点的主节点协助完成该数据的访问过程。本发明对于异构多核处理器能够有效节省不必要的处理过程,提高数据访问效率。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种数据访问控制方法及节点控制器。
背景技术
目录一致性协议的基本思想是为每个内存行维护一个目录项,用于记录拥有该内存行副本的核(Core)号以及相应状态与控制信息,根据地址的映射和分布,每个内存行都有一个对应的宿主(Home Core)结点位置。当处理器中的某核需要与该处理器其他核进行协作和通讯才能完成对Cache数据的访问时,请求先发往宿主结点,由Home Core结点根据目录中状态内容决定本次“组播”需要通知的核,之后将相应的请求发送给这些相关的核。
目录一致性协议对对称多核处理器内部大量的共享数据访问非常有效,但是对于异构多核处理器来说,处理效率较低。
异构多核处理器一般在应用时,各核相对独立,核间交互或共享的数据较少,如果所有的数据都要进行上述繁琐的目录一致性流程处理,将带来大量不必要的处理和延时,影响CPU访问效率。
发明内容
针对现有技术的不足,本发明提供一种数据访问控制方法及节点控制器,本发明对于异构多核处理器能够有效节省不必要的处理过程,提高数据访问效率。
为实现上述目的,本发明通过以下技术方案予以实现:
第一方面,本发明提供了一种数据访问控制方法,包括:
第一节点控制器在接收到第一节点发送的访问某一数据的访问请求时,根据所述访问请求获取待访问数据的数据属性;其中,所述数据属性包括共享数据和私有数据;
第一节点控制器根据该待访问数据的数据属性确定该访问请求的处理方式:
当该待访问数据的数据属性为私有数据时,第一节点控制器向第一节点所在处理器的存储控制器发送访问该数据的访问请求,以请求该存储控制器协助完成该数据的访问过程;
当该待访问数据的数据属性为共享数据时,第一节点控制器向第一节点的主节点发送访问该数据的访问请求,以请求第一节点的主节点协助完成该数据的访问过程。
进一步地,根据所述访问请求获取待访问数据的数据属性,包括:
第一节点控制器根据所述访问请求中携带的待访问数据的虚拟地址,从预设的内存页表中获取与该待访问数据对应的数据属性;其中,预设的内存页表中预先存储有虚拟地址和数据属性的一一对应关系;所述访问请求中携带有该待访问数据的虚拟地址。
进一步地,当该待访问数据的数据属性为私有数据时,第一节点控制器向第一节点所在处理器的存储控制器发送访问该数据的访问请求,以请求存储控制器协助完成该数据的访问过程,包括:
当该待访问数据的数据属性为私有数据时,若第一节点控制器确定第一节点对该待访问数据的访问类型为读操作,且第一节点的缓存中不存在该待访问数据,则向存储控制器发送读取该待访问数据的访问请求;
以及,接收所述存储控制器发送的访问数据,该访问数据为所述存储控制器根据所述访问请求获取的访问数据;
当待访问数据的数据属性为私有数据时,若第一节点控制器确定第一节点对该待访问数据的访问类型为写操作,则向存储控制器发送更新该待访问数据的访问请求,以使存储控制器同步更新该待访问数据。
进一步地,在第一节点控制器向存储控制器发送更新该待访问数据的访问请求之前,所述方法还包括:
第一节点控制器在第一节点的缓存中更新该待访问数据。
进一步地,当该待访问数据的数据属性为共享数据时,第一节点控制器向第一节点的主节点发送访问该数据的访问请求,以请求第一节点的主节点协助完成该数据的访问过程,包括:
当该待访问数据的数据属性为共享数据时,若第一节点控制器确定第一节点对该待访问数据的访问类型为读操作,且第一节点的缓存中不存在该待访问数据,则向第一节点的主节点发送读取该待访问数据的访问请求,以使第一节点的主节点在自身缓存中存在该待访问数据时将第一节点标记为该待访问数据的共享者,或使第一节点的主节点在自身缓存中不存在该待访问数据时,向存储控制器发送访问该待访问数据的访问请求;
当该待访问数据的数据属性为共享数据时,若第一节点控制器确定第一节点对该待访问数据的访问类型为写操作,则向第一节点的主节点发送更新该待访问数据的访问请求,以使第一节点的主节点在确定不影响其他节点的情况下在自身缓存中更新该待访问数据,并向存储控制器发送更新该待访问数据的访问请求,以使存储控制器同步更新该待访问数据。
第二方面,本发明还提供了一种节点控制器,该节点控制器用于为第一节点提供访问控制的节点控制器,该节点控制器包括:接收单元、获取单元和处理单元;
所述接收单元,用于接收第一节点发送的访问某一数据的访问请求;
所述获取单元,用于根据所述接收单元接收的访问请求获取待访问数据的数据属性;其中,所述数据属性包括共享数据和私有数据;
所述处理单元,用于根据所述获取单元获取的待访问数据的数据属性确定所述处理单元对该访问请求的处理方式;
具体地,所述处理单元,用于在该待访问数据的数据属性为私有数据时,向第一节点所在处理器的存储控制器发送访问该数据的访问请求,以请求存储控制器协助完成该数据的访问过程;
所述处理单元,还用于在该待访问数据的数据属性为共享数据时,向第一节点的主节点发送访问该数据的访问请求,以请求第一节点的主节点协助完成该数据的访问过程。
进一步地,所述获取单元,具体用于:
根据所述接收单元接收的访问请求中携带的待访问数据的虚拟地址,从预设的内存页表中获取与该待访问数据对应的数据属性;其中,预设的内存页表中预先存储有虚拟地址和数据属性的一一对应关系;所述访问请求中携带有该待访问数据的虚拟地址。
进一步地,所述处理单元,包括:第一判断模块、第二判断模块和第一处理模块;
所述第一判断模块,用于在所述获取单元获取的待访问数据的数据属性为私有数据时,判断第一节点对该待访问数据的访问类型;
所述第二判断模块,用于在第一判断模块确定第一节点对该待访问数据的访问类型为读操作时,判断第一节点的缓存中是否存在该待访问数据;
所述第一处理模块,用于在所述第一判断模块确定第一节点对该待访问数据的访问类型为读操作,且在所述第二判断模块确定第一节点的缓存中不存在该待访问数据时,向第一节点所在处理器的存储控制器发送读取该待访问数据的访问请求;
相应地,所述接收单元,还用于在接收所述存储控制器发送的访问数据,该访问数据为所述存储控制器根据所述访问请求获取的访问数据;
所述第一处理模块,还用于在所述第一判断模块确定第一节点对该待访问数据的访问类型为写操作时,向第一节点所在处理器的存储控制器发送更新该待访问数据的访问请求,以使存储控制器同步更新该待访问数据。
进一步地,所述第一处理模块,还用于在所述第一判断模块确定第一节点对该待访问数据的访问类型为写操作时,在第一节点的缓存中更新该待访问数据。
进一步地,所述处理单元,包括:第三判断模块、第四判断模块和第二处理模块;
所述第三判断模块,用于在所述获取单元获取的待访问数据的数据属性为共享数据时,判断第一节点对该待访问数据的访问类型;
所述第四判断模块,用于在第三判断模块确定第一节点对该待访问数据的访问类型为读操作时,判断第一节点的缓存中是否存在该待访问数据;
所述第二处理模块,用于在所述第三判断模块确定第一节点对该待访问数据的访问类型为读操作,且在所述第四判断模块确定第一节点的缓存中不存在该待访问数据时,向第一节点的主节点发送读取该待访问数据的访问请求,以使第一节点的主节点在自身缓存中存在该待访问数据时将第一节点标记为该待访问数据的共享者,或使第一节点的主节点在自身缓存中不存在该待访问数据时,向第一节点所在处理器的存储控制器发送访问该待访问数据的访问请求;
所述第二处理模块,还用于在所述第三判断模块确定第一节点对该待访问数据的访问类型为写操作时,向第一节点的主节点发送更新该待访问数据的访问请求,以使第一节点的主节点在确定不影响其他节点的情况下在自身缓存中更新该待访问数据,并向第一节点所在处理器的存储控制器发送更新该待访问数据的访问请求,以使存储控制器同步更新该待访问数据。
本发明至少具有如下的有益效果:
本发明所述的数据访问控制方法,根据待访问数据的数据属性进行分别处理。当待访问数据的数据属性为私有数据时,不再向第一节点的主节点发送访问请求,而是直接向第一节点所在处理器的存储控制器发送访问请求,请求所述存储控制器协助完成数据访问过程。即本发明所述的数据访问控制方法,对于私有数据,不进行完整的目录一致性过程,仅在本地Cache/内存中访问和更新;对于共享数据,才进行完整目录一致性处理,这样就节省了不必要的处理过程,提高了访问效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1提供的数据访问控制方法的流程图;
图2是本发明实施例3提供的本地私有数据的读取过程示意图;
图3是本发明实施例3提供的本地私有数据的更新过程示意图;
图4是本发明实施例4提供的共享数据的一种读取过程示意图;
图5a-图5b是本发明实施例4提供的共享数据的另一种读取过程示意图;
图6a-图6b是本发明实施例4提供的共享数据的更新过程示意图;
图7是本发明实施例5提供的节点控制器的结构示意图;
图8是本发明实施例7提供的节点控制器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
从背景技术部分的描述可知,Cache目录一致性协议对于异构处理器来说,CPU访问效率较低。本发明针对该问题,提出了一种私有数据本地访问的改进方法。
实施例1
本发明实施例提出了一种数据访问控制方法,图1示出了本发明实施例提供的数据访问控制方法的流程图,参见图1,该方法包括如下步骤:
步骤101:第一节点控制器在接收到第一节点发送的访问某一数据的访问请求时,根据所述访问请求获取待访问数据的数据属性。
在本步骤中,所述数据属性包括共享数据和私有数据。其中,共享数据是指除该数据所在的节点以外,还有其他节点可以读取和/或更新该数据。私有数据是指只有该数据所在的节点可以读取和/或更新该数据。
步骤102:第一节点控制器根据该待访问数据的数据属性确定该访问请求的处理方式。
在本步骤中,根据该待访问数据的数据属性有以下两种处理方式:
A1.当该待访问数据的数据属性为私有数据时,第一节点控制器向第一节点所在处理器的存储控制器发送访问该数据的访问请求,以请求存储控制器协助完成该数据的访问过程。
其中,所述存储控制器中存储有处理器所有节点的数据。
A2.当该待访问数据的数据属性为共享数据时,第一节点控制器向第一节点的主节点发送访问该数据的访问请求,以请求第一节点的主节点协助完成该数据的访问过程。
其中,所述第一节点的主节点中存储有该主节点管理下的节点的数据。
本实施例所述的数据访问控制方法,根据待访问数据的数据属性进行分别处理。当待访问数据的数据属性为私有数据时,不再向第一节点的主节点发送访问请求,而是直接向第一节点所在处理器的存储控制器发送访问请求,请求所述存储控制器协助完成数据访问过程。即本实施例所述的数据访问控制方法,对于私有数据,不进行完整的目录一致性过程,仅在本地Cache/内存中访问和更新;对于共享数据,才进行完整目录一致性处理,这样就节省了不必要的处理过程,提高了访问效率。
实施例2
在本发明实施例中,给出了上述步骤101获取待访问数据的数据属性的具体实现方式。
在本实施例中,上述步骤A1,根据所述访问请求获取待访问数据的数据属性,包括:
第一节点控制器根据所述访问请求中携带的待访问数据的虚拟地址,从预设的内存页表中获取与该待访问数据对应的数据属性;其中,预设的内存页表中预先存储有虚拟地址和数据属性的一一对应关系;所述访问请求中携带有该待访问数据的虚拟地址。
其中,现代处理器一般都支持内存保护模式,即每条load和store指令会被内存页表TLB(Translation Lookaside Buffer)转化,负责将虚拟地址转化为物理地址。TLB中的每个表项对应一段虚拟地址和物理地址的映射关系以及可读写等属性。在本实施例中,在TLB表中增加了“共享数据/私有数据”可配置属性,在应用访问数据过程中,节点控制器在TLB中查询到数据或变量所对应的TLB表项中的属性为本地私有数据时,则不进行完整的目录一致性过程,仅在本地Cache/内存中访问和更新;如果是共享数据属性时,才进行完整目录一致性处理,这样就节省了不必要的处理过程,提高了访问效率。
上述提到CPU访问的“数据或变量”所在TLB表项位置,一般由操作系统规划定义,不是本发明所关注的内容,这里不再赘述。
实施例3
在本发明实施例中,给出了上述步骤A1的一种具体实现过程。
在本实施例中,上述步骤A1:当该待访问数据的数据属性为私有数据时,第一节点控制器向第一节点所在的处理器存储控制器发送访问该数据的访问请求,以请求存储控制器协助完成该数据的访问过程,具体包括:
a11:当该待访问数据的数据属性为私有数据时,若第一节点控制器确定第一节点对该待访问数据的访问类型为读操作,且第一节点的缓存中不存在该待访问数据,则向第一节点所在处理器的存储控制器发送读取该待访问数据的访问请求;以及,接收所述存储控制器发送的访问数据,该访问数据为所述存储控制器根据所述访问请求获取的访问数据。
a12:当待访问数据的数据属性为私有数据时,若第一节点控制器确定第一节点对该待访问数据的访问类型为写操作,则向存储控制器发送更新该待访问数据的访问请求,以使存储控制器同步更新该待访问数据。
其中,在第一节点控制器向存储控制器发送更新该待访问数据的访问请求之前,所述方法还包括:第一节点控制器在第一节点的缓存中更新该待访问数据。
图2-图3示出了本地私有数据的访问过程。其中,图2是本地私有数据的读取过程示意图,图3是本地私有数据的更新过程示意图。参见图2,第一节点如Core n,在读数据R2前,首先通过TLB将数据R2的虚拟地址V转为物理地址P,同时查询该数据的虚拟地址V所对应TLB表项中的数据属性。如果该数据的数据属性是“共享数据”,则进行完整的Cache目录一致性协议;如果该数据的数据属性是“私有数据”,则判断该数据无需参与Cache一致性过程,即该第一节点对应的节点控制器将不再查询该第一节点的主节点(Home Core)等目录信息,而仅在本地Cache/内存中进行读取。如果本地Cache未命中,则发送读请求到DDR存储控制器。DDR存储控制器找到数据0x77后回送本地节点控制器响应,同时本地节点控制器保存相关Cache Line信息。写机制过程类似,可参见图3,仅操作本地Cache/内存,将虚拟地址为V的数据更新为0x77。在更新本地Cache Line信息的同时,同步更新DDR存储控制器中的相关数据。上述数据访问过程有效减少了目录一致性协议对于本地私有数据的访问处理路径和开销。
实施例4
在本发明实施例中,给出了上述步骤A2的一种具体实现过程。
在本实施例中,上述步骤A2:当该待访问数据的数据属性为共享数据时,第一节点控制器向第一节点的主节点发送访问该数据的访问请求,以请求第一节点的主节点协助完成该数据的访问过程,具体包括:
a21:当该待访问数据的数据属性为共享数据时,若第一节点控制器确定第一节点对该待访问数据的访问类型为读操作,且第一节点的缓存中不存在该待访问数据,则向第一节点的主节点发送读取该待访问数据的访问请求,以使第一节点的主节点在自身缓存中存在该待访问数据时将第一节点标记为该待访问数据的共享者,或使第一节点的主节点在自身缓存中不存在该待访问数据时,向第一节点所在处理器的存储控制器发送访问该待访问数据的访问请求。
a22:当该待访问数据的数据属性为共享数据时,若第一节点控制器确定第一节点对该待访问数据的访问类型为写操作,则向第一节点的主节点发送更新该待访问数据的访问请求,以使第一节点的主节点在确定不影响其他节点的情况下在自身缓存中更新该待访问数据,并向存储控制器发送更新该待访问数据的访问请求,以使存储控制器同步更新该待访问数据。
图4示出了共享数据的一种读取过程示意图。参见图4,第一节点如Core 1读取某数据R2,该数据的虚拟地址为V,首先通过TLB得到该数据的物理地址P。Core 1上的节点控制器通过TAG比较没有在本地找到相应的Cache Line数据,然后发送读请求到该节点的主节点Home Core(Core 2)。Home Core比较TAG后,在本地相应Cache Line找到相关数据0x42,即远端读命中,然后在目录里标记Core 1也为此Cache Line的共享者,同时HomeCore向请求数据的Core 1响应,Core1收到后将数据存放在本地Cache Line里。
图5a-图5b示出了共享数据的另一种读取过程示意图。参见图5a-图5b,第一节点如Core 0读取某数据,该数据的虚拟地址为V,首先通过TLB得到该数据的物理地址P。Core0上的节点控制器通过TAG比较没有在本地找到相应的Cache Line数据,然后发送读请求到该节点的主节点Home Core(Core 1)。如果Home Core也没相关信息,即远端读失效,那么它将发送读请求到DDR存储控制器。DDR存储控制器找到数据0x42后回送Home Core响应,然后在Home Core中保存相关Cache Line信息,同时在目录里标记Core 0为此Cache Line的共享者。之后Home Core向请求数据的Core 0响应,Core 0收到后,将数据也存放在本地的Cache Line里。
图6a-图6b示出了共享数据的一种更新过程示意图。参见图6a-图6b,第一节点如Core 0更新某数据,该数据的虚拟地址为V,更新值为0x77,首先通过TLB得到该数据的物理地址P。Core 0上节点控制器找到物理地址P所对应的Cache Line,更新为数据0x77,同时发送写请求给Home Core(Core 2)。Home Core收到请求后,检查对应Cache Line目录中共享核列表,发现Core 1是此数据的共享者,于是向Core 1发送数据无效命令。Core 1收到命令后,使相应Cache Line无效,同时将结果告知Home。Home收到响应后,共享者Core 1信息将从目录项中删除,同时更新本地数据为0x77,并向DDR存储控制器发送更新请求,以告知DDR存储控制器进行该数据的更新,更新完成后,Home将向写请求Core 0写更新回复响应,这样就完成远端写更新整个过程。
实施例5
本发明实施例提出了一种节点控制器,该节点控制器用于为第一节点提供访问控制的节点控制器,参见图7,该节点控制器包括:接收单元11、获取单元12和处理单元13;
所述接收单元11,用于接收第一节点发送的访问某一数据的访问请求;
所述获取单元12,用于根据所述接收单元接收的访问请求获取待访问数据的数据属性;其中,所述数据属性包括共享数据和私有数据;
所述处理单元13,用于根据所述获取单元获取的待访问数据的数据属性确定所述处理单元对该访问请求的处理方式;
具体地,所述处理单元13,用于在该待访问数据的数据属性为私有数据时,向第一节点所在处理器的存储控制器发送访问该数据的访问请求,以请求存储控制器协助完成该数据的访问过程;
所述处理单元13,还用于在该待访问数据的数据属性为共享数据时,向第一节点的主节点发送访问该数据的访问请求,以请求第一节点的主节点协助完成该数据的访问过程。
实施例6
在本发明实施例中,所述获取单元12,具体用于:
根据所述接收单元接收的访问请求中携带的待访问数据的虚拟地址,从预设的内存页表中获取与该待访问数据对应的数据属性;其中,预设的内存页表中预先存储有虚拟地址和数据属性的一一对应关系;所述访问请求中携带有该待访问数据的虚拟地址。
实施例7
在本发明实施例中,参见图8,所述处理单元13,具体包括:第一判断模块131、第二判断模块132和第一处理模块133;
所述第一判断模块131,用于在所述获取单元12获取的待访问数据的数据属性为私有数据时,判断第一节点对该待访问数据的访问类型。
所述第二判断模块132,用于在第一判断模块131确定第一节点对该待访问数据的访问类型为读操作时,判断第一节点的缓存中是否存在该待访问数据。
所述第一处理模块133,用于在所述第一判断模块131确定第一节点对该待访问数据的访问类型为读操作,且在所述第二判断模块132确定第一节点的缓存中不存在该待访问数据时,向第一节点所在处理器的存储控制器发送读取该待访问数据的访问请求。相应地,所述接收单元11,还用于在接收所述存储控制器发送的访问数据,该访问数据为所述存储控制器根据所述访问请求获取的访问数据。
所述第一处理模块133,还用于在所述第一判断模块131确定第一节点对该待访问数据的访问类型为写操作时,向存储控制器发送更新该待访问数据的访问请求,以使存储控制器同步更新该待访问数据。
进一步地,所述第一处理模块133,还用于在所述第一判断模块131确定第一节点对该待访问数据的访问类型为写操作时,在第一节点的缓存中更新该待访问数据。
进一步地,所述处理单元12,还包括:第三判断模块134、第四判断模块135和第二处理模块136;
所述第三判断模块134,用于在所述获取单元12获取的待访问数据的数据属性为共享数据时,判断第一节点对该待访问数据的访问类型;
所述第四判断模块135,用于在第三判断模块134确定第一节点对该待访问数据的访问类型为读操作时,判断第一节点的缓存中是否存在该待访问数据;
所述第二处理模块136,用于在所述第三判断模块134确定第一节点对该待访问数据的访问类型为读操作,且在所述第四判断模块确定第一节点的缓存中不存在该待访问数据时,向第一节点的主节点发送读取该待访问数据的访问请求,以使第一节点的主节点在自身缓存中存在该待访问数据时将第一节点标记为该待访问数据的共享者,或使第一节点的主节点在自身缓存中不存在该待访问数据时,向存储控制器发送访问该待访问数据的访问请求;
所述第二处理模块136,还用于在所述第三判断模块134确定第一节点对该待访问数据的访问类型为写操作时,向第一节点的主节点发送更新该待访问数据的访问请求,以使第一节点的主节点在确定不影响其他节点的情况下在自身缓存中更新该待访问数据,并向存储控制器发送更新该待访问数据的访问请求,以使存储控制器同步更新该待访问数据。
其中,本发明实施例5-7所述的节点控制器可以用于执行上面所述的方法实施例,其实现原理和技术效果类似,此处不再详述。
以上实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种数据访问控制方法,其特征在于,包括:
第一节点控制器在接收到第一节点发送的访问某一数据的访问请求时,根据所述访问请求获取待访问数据的数据属性;其中,所述数据属性包括共享数据和私有数据;
第一节点控制器根据该待访问数据的数据属性确定该访问请求的处理方式:
当该待访问数据的数据属性为私有数据时,第一节点控制器向第一节点所在处理器的存储控制器发送访问该数据的访问请求,以请求该存储控制器协助完成该数据的访问过程;
当该待访问数据的数据属性为共享数据时,第一节点控制器向第一节点的主节点发送访问该数据的访问请求,以请求第一节点的主节点协助完成该数据的访问过程;
其中,当该待访问数据的数据属性为共享数据时,第一节点控制器向第一节点的主节点发送访问该数据的访问请求,以请求第一节点的主节点协助完成该数据的访问过程,包括:
当该待访问数据的数据属性为共享数据时,若第一节点控制器确定第一节点对该待访问数据的访问类型为读操作,且第一节点的缓存中不存在该待访问数据,则向第一节点的主节点发送读取该待访问数据的访问请求,以使第一节点的主节点在自身缓存中存在该待访问数据时将第一节点标记为该待访问数据的共享者,或使第一节点的主节点在自身缓存中不存在该待访问数据时,向存储控制器发送访问该待访问数据的访问请求;
当该待访问数据的数据属性为共享数据时,若第一节点控制器确定第一节点对该待访问数据的访问类型为写操作,则向第一节点的主节点发送更新该待访问数据的访问请求,以使第一节点的主节点在确定不影响其他节点的情况下在自身缓存中更新该待访问数据,并向存储控制器发送更新该待访问数据的访问请求,以使存储控制器同步更新该待访问数据。
2.根据权利要求1所述的方法,其特征在于,根据所述访问请求获取待访问数据的数据属性,包括:
第一节点控制器根据所述访问请求中携带的待访问数据的虚拟地址,从预设的内存页表中获取与该待访问数据对应的数据属性;其中,预设的内存页表中预先存储有虚拟地址和数据属性的一一对应关系;所述访问请求中携带有该待访问数据的虚拟地址。
3.根据权利要求1或2所述的方法,其特征在于,当该待访问数据的数据属性为私有数据时,第一节点控制器向第一节点所在处理器的存储控制器发送访问该数据的访问请求,以请求存储控制器协助完成该数据的访问过程,包括:
当该待访问数据的数据属性为私有数据时,若第一节点控制器确定第一节点对该待访问数据的访问类型为读操作,且第一节点的缓存中不存在该待访问数据,则向存储控制器发送读取该待访问数据的访问请求;
以及,接收所述存储控制器发送的访问数据,该访问数据为所述存储控制器根据所述访问请求获取的访问数据;
当待访问数据的数据属性为私有数据时,若第一节点控制器确定第一节点对该待访问数据的访问类型为写操作,则向存储控制器发送更新该待访问数据的访问请求,以使存储控制器同步更新该待访问数据。
4.根据权利要求3所述的方法,其特征在于,在第一节点控制器向存储控制器发送更新该待访问数据的访问请求之前,所述方法还包括:
第一节点控制器在第一节点的缓存中更新该待访问数据。
5.一种节点控制器,该节点控制器用于为第一节点提供访问控制的节点控制器,其特征在于,该节点控制器包括:接收单元、获取单元和处理单元;
所述接收单元,用于接收第一节点发送的访问某一数据的访问请求;
所述获取单元,用于根据所述接收单元接收的访问请求获取待访问数据的数据属性;其中,所述数据属性包括共享数据和私有数据;
所述处理单元,用于根据所述获取单元获取的待访问数据的数据属性确定所述处理单元对该访问请求的处理方式;
具体地,所述处理单元,用于在该待访问数据的数据属性为私有数据时,向第一节点所在处理器的存储控制器发送访问该数据的访问请求,以请求存储控制器协助完成该数据的访问过程;
所述处理单元,还用于在该待访问数据的数据属性为共享数据时,向第一节点的主节点发送访问该数据的访问请求,以请求第一节点的主节点协助完成该数据的访问过程;
其中,所述处理单元,包括:第三判断模块、第四判断模块和第二处理模块;
所述第三判断模块,用于在所述获取单元获取的待访问数据的数据属性为共享数据时,判断第一节点对该待访问数据的访问类型;
所述第四判断模块,用于在第三判断模块确定第一节点对该待访问数据的访问类型为读操作时,判断第一节点的缓存中是否存在该待访问数据;
所述第二处理模块,用于在所述第三判断模块确定第一节点对该待访问数据的访问类型为读操作,且在所述第四判断模块确定第一节点的缓存中不存在该待访问数据时,向第一节点的主节点发送读取该待访问数据的访问请求,以使第一节点的主节点在自身缓存中存在该待访问数据时将第一节点标记为该待访问数据的共享者,或使第一节点的主节点在自身缓存中不存在该待访问数据时,向第一节点所在处理器的存储控制器发送访问该待访问数据的访问请求;
所述第二处理模块,还用于在所述第三判断模块确定第一节点对该待访问数据的访问类型为写操作时,向第一节点的主节点发送更新该待访问数据的访问请求,以使第一节点的主节点在确定不影响其他节点的情况下在自身缓存中更新该待访问数据,并向第一节点所在处理器的存储控制器发送更新该待访问数据的访问请求,以使存储控制器同步更新该待访问数据。
6.根据权利要求5所述的节点控制器,其特征在于,所述获取单元,具体用于:
根据所述接收单元接收的访问请求中携带的待访问数据的虚拟地址,从预设的内存页表中获取与该待访问数据对应的数据属性;其中,预设的内存页表中预先存储有虚拟地址和数据属性的一一对应关系;所述访问请求中携带有该待访问数据的虚拟地址。
7.根据权利要求5或6所述的节点控制器,其特征在于,所述处理单元,包括:第一判断模块、第二判断模块和第一处理模块;
所述第一判断模块,用于在所述获取单元获取的待访问数据的数据属性为私有数据时,判断第一节点对该待访问数据的访问类型;
所述第二判断模块,用于在第一判断模块确定第一节点对该待访问数据的访问类型为读操作时,判断第一节点的缓存中是否存在该待访问数据;
所述第一处理模块,用于在所述第一判断模块确定第一节点对该待访问数据的访问类型为读操作,且在所述第二判断模块确定第一节点的缓存中不存在该待访问数据时,向第一节点所在处理器的存储控制器发送读取该待访问数据的访问请求;
相应地,所述接收单元,还用于在接收所述存储控制器发送的访问数据,该访问数据为所述存储控制器根据所述访问请求获取的访问数据;
所述第一处理模块,还用于在所述第一判断模块确定第一节点对该待访问数据的访问类型为写操作时,向第一节点所在处理器的存储控制器发送更新该待访问数据的访问请求,以使存储控制器同步更新该待访问数据。
8.根据权利要求7所述的节点控制器,其特征在于,所述第一处理模块,还用于在所述第一判断模块确定第一节点对该待访问数据的访问类型为写操作时,在第一节点的缓存中更新该待访问数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510860073.2A CN106815174B (zh) | 2015-11-30 | 2015-11-30 | 数据访问控制方法及节点控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510860073.2A CN106815174B (zh) | 2015-11-30 | 2015-11-30 | 数据访问控制方法及节点控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106815174A CN106815174A (zh) | 2017-06-09 |
CN106815174B true CN106815174B (zh) | 2019-07-30 |
Family
ID=59156699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510860073.2A Active CN106815174B (zh) | 2015-11-30 | 2015-11-30 | 数据访问控制方法及节点控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106815174B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108170544B (zh) * | 2017-12-29 | 2020-08-28 | 中国人民解放军国防科技大学 | 面向数据无冲突程序的共享数据动态更新方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102270180A (zh) * | 2011-08-09 | 2011-12-07 | 清华大学 | 一种多核处理器高速缓存及其管理方法 |
US8189568B2 (en) * | 2005-11-23 | 2012-05-29 | At&T Intellectual Property I, Lp | System and method for location management and emergency support for a voice over internet protocol device |
WO2012112794A1 (en) * | 2011-02-17 | 2012-08-23 | Ellis Frampton E | A method of using a secure private network to actively configure the hardware of a computer or microchip |
CN103020003A (zh) * | 2012-12-31 | 2013-04-03 | 哈尔滨工业大学 | 面向多核程序确定性重演的内存竞争记录装置及其控制方法 |
CN104252392A (zh) * | 2013-06-28 | 2014-12-31 | 华为技术有限公司 | 一种访问数据缓存的方法和处理器 |
CN104461932A (zh) * | 2014-11-04 | 2015-03-25 | 浪潮电子信息产业股份有限公司 | 一种面向大数据应用的目录缓存管理方法 |
CN104699577A (zh) * | 2013-12-06 | 2015-06-10 | 英特尔公司 | 用于在分布式码字存储系统中定位故障管芯的计数器 |
CN105095109A (zh) * | 2014-05-21 | 2015-11-25 | 华为技术有限公司 | 缓存访问方法、缓存访问路由器和计算机系统 |
-
2015
- 2015-11-30 CN CN201510860073.2A patent/CN106815174B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8189568B2 (en) * | 2005-11-23 | 2012-05-29 | At&T Intellectual Property I, Lp | System and method for location management and emergency support for a voice over internet protocol device |
WO2012112794A1 (en) * | 2011-02-17 | 2012-08-23 | Ellis Frampton E | A method of using a secure private network to actively configure the hardware of a computer or microchip |
CN102270180A (zh) * | 2011-08-09 | 2011-12-07 | 清华大学 | 一种多核处理器高速缓存及其管理方法 |
CN103020003A (zh) * | 2012-12-31 | 2013-04-03 | 哈尔滨工业大学 | 面向多核程序确定性重演的内存竞争记录装置及其控制方法 |
CN104252392A (zh) * | 2013-06-28 | 2014-12-31 | 华为技术有限公司 | 一种访问数据缓存的方法和处理器 |
CN104699577A (zh) * | 2013-12-06 | 2015-06-10 | 英特尔公司 | 用于在分布式码字存储系统中定位故障管芯的计数器 |
CN105095109A (zh) * | 2014-05-21 | 2015-11-25 | 华为技术有限公司 | 缓存访问方法、缓存访问路由器和计算机系统 |
CN104461932A (zh) * | 2014-11-04 | 2015-03-25 | 浪潮电子信息产业股份有限公司 | 一种面向大数据应用的目录缓存管理方法 |
Non-Patent Citations (1)
Title |
---|
肖瑞瑾.《多核处理器层次化存储体系研究》.《万方数据》.2014,第42-48页. |
Also Published As
Publication number | Publication date |
---|---|
CN106815174A (zh) | 2017-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190079868A1 (en) | Snoop filter for cache coherency in a data processing system | |
US20170192886A1 (en) | Cache management for nonvolatile main memory | |
US8103835B2 (en) | Low-cost cache coherency for accelerators | |
CN104899160B (zh) | 一种缓存数据控制方法、节点控制器和系统 | |
US7613885B2 (en) | Cache coherency control method, chipset, and multi-processor system | |
CN103154909B (zh) | 分布式高速缓冲存储器一致性协议 | |
CN108701092A (zh) | 自愈粗粒探听过滤器 | |
US9170949B2 (en) | Simplified controller with partial coherency | |
CN102929832A (zh) | 基于非写分配的高速缓存一致性的多核处理器数据传输系统 | |
CN109240945A (zh) | 一种数据处理方法及处理器 | |
WO2018137327A1 (zh) | 一种主备机数据传递方法、控制节点以及数据库系统 | |
TWI386810B (zh) | 多處理器系統以目錄為主之資料傳輸協定 | |
US20140006716A1 (en) | Data control using last accessor information | |
CN103999063B (zh) | 处理器的存储器共享 | |
JP2000067024A (ja) | 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ | |
CA2505259A1 (en) | Methods and apparatus for multiple cluster locking | |
JP4643543B2 (ja) | キャッシュ一貫性保証機能を有するストレージクラスタシステム | |
CN106815174B (zh) | 数据访问控制方法及节点控制器 | |
WO2000038077A1 (fr) | Antememoire et procede de commande | |
CN108170544B (zh) | 面向数据无冲突程序的共享数据动态更新方法 | |
US8185699B2 (en) | Cache memory controller and cache memory controlling method | |
CN102043731A (zh) | 一种存储系统的缓存系统 | |
US8627016B2 (en) | Maintaining data coherence by using data domains | |
CN105808497A (zh) | 一种数据处理方法 | |
CN110023916A (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 |