CN116107771A - 缓存状态记录方法、数据访问方法及相关装置、设备 - Google Patents
缓存状态记录方法、数据访问方法及相关装置、设备 Download PDFInfo
- Publication number
- CN116107771A CN116107771A CN202211593112.3A CN202211593112A CN116107771A CN 116107771 A CN116107771 A CN 116107771A CN 202211593112 A CN202211593112 A CN 202211593112A CN 116107771 A CN116107771 A CN 116107771A
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- accessed
- peripheral
- host
- 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
- 238000000034 method Methods 0.000 title claims abstract description 73
- 230000002093 peripheral effect Effects 0.000 claims abstract description 332
- 238000012545 processing Methods 0.000 claims description 85
- 239000003999 initiator Substances 0.000 claims description 25
- 230000004044 response Effects 0.000 claims description 18
- 238000012795 verification Methods 0.000 claims description 7
- 230000000977 initiatory effect Effects 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 13
- 230000003993 interaction Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种缓存状态记录方法、数据访问方法及相关装置、设备,所述方法应用于侦听过滤器,所述侦听过滤器中配置有主机缓存记录表,所述主机缓存记录表用于记录主机的缓存数据在主机缓存中的状态,以及,对应所述缓存数据的外设共享标识,所述外设共享标识用于指示所述缓存数据是否被外设设备共享,所述方法包括:在外设设备共享主机缓存中的缓存数据时,更新外设共享标识,以使得外设共享标识指示对应的缓存数据被外设设备共享;在处理器核独占缓存数据时,更新外设共享标识,以使得所述外设共享标识指示对应的缓存数据未被外设设备共享,所述方法能够实现外设设备中,缓存数据状态的记录。
Description
技术领域
本发明实施例涉及计算机技术领域,具体涉及一种缓存状态记录方法、数据访问方法及相关装置、设备。
背景技术
CXL(Compute Express Link)互连协议是一种用于实现主机和设备的缓存一致性的协议,用于使得主机缓存的数据和设备缓存的数据保持一致,从而避免计算设备内出现数据冲突。
CXL协议支持缓存一致性协议,缓存一致性协议是一种多核处理器场景下,用于实现主机内,多个处理器核各自分别配置的缓存内的数据的一致性的协议。其中,缓存一致性协议将各缓存中的缓存数据划分为多个不同的状态,以表示对应的缓存数据被多个处理器核的共享程度,并基于对应的状态执行不同的操作。在CXL协议中,对应将外设设备缓存中的缓存数据进行对应的状态划分,并基于对应的状态执行对应的操作。
相应的,在基于CXL协议执行对应的缓存数据的访问时,需要记录外设设备中的缓存数据的状态,从而基于对应的状态进行对应的操作。如何记录外设设备中,缓存数据的状态,是本领域技术人员亟待解决的一个技术问题。
发明内容
有鉴于此,本发明实施例提供一种缓存状态记录方法、数据访问方法及相关装置、设备,能够实现外设设备中,缓存数据状态的记录。
为实现上述目的,本发明实施例提供如下技术方案:
本发明实施例提供了一种缓存状态记录方法,应用于侦听过滤器,所述侦听过滤器中配置有主机缓存记录表,所述主机缓存记录表用于记录主机的缓存数据在主机缓存中的状态,以及,对应所述缓存数据的外设共享标识,所述外设共享标识用于指示所述缓存数据是否被外设设备共享,所述方法包括:
在外设设备共享主机缓存中的缓存数据时,更新外设共享标识,以使得外设共享标识指示对应的缓存数据被外设设备共享;
在处理器核独占缓存数据时,更新外设共享标识,以使得所述外设共享标识指示对应的缓存数据未被外设设备共享。
可选的,在外设设备独占缓存数据时,还包括:
发送设备缓存信息更新请求,以更新内存中的设备缓存信息,使所述设备缓存信息指示对应的内存数据被外设设备缓存独占的状态。
可选的,在外设设备独占缓存数据时,还包括:
删除主机缓存记录表中,对应所述缓存数据的状态条目。
可选的,在处理器核独占缓存数据时,还包括:
更新主机缓存记录表中,对应所述缓存数据在主机缓存中的状态,以使得主机缓存记录表中缓存数据的状态指示所述缓存数据被处理器核独占。
可选的,在处理器核独占缓存数据,且主机缓存记录表不存在待访问数据的缓存状态时,还包括:
向内存控制器发送设备缓存信息更新请求,以更新内存中的设备缓存信息,使所述设备缓存信息指示对应的内存数据被外设设备缓存为无效的状态。
本发明实施例还提供了一种数据访问方法,应用于侦听过滤器,包括:
获取访问请求,所述访问请求用于使请求发起方访问待访问数据,所述访问请求中包括所述请求发起方所需获取的权限信息;
查询主机缓存记录表中是否存在所述待访问数据的缓存状态,所述主机缓存记录表用于记录主机的缓存数据在主机缓存中的状态,以及,对应该缓存数据的外设共享标识,所述外设共享标识用于指示所述缓存数据是否被外设设备共享;
基于所述访问请求所需获取的权限和所述主机缓存记录表中的信息,执行对待访问数据的处理。
可选的,所述访问请求中,请求发起方为外设设备,且所述外设设备的设备缓存请求获取待访问数据的共享权限;
在主机缓存记录表存在所述待访问数据的缓存状态时,所述基于所述访问请求所需获取的权限和所述主机缓存记录表中的信息,执行对待访问数据的处理,包括:
向缓存所述待访问数据的处理器核发送数据获取请求,所述数据获取请求用于获取所述处理器核缓存的所述待访问数据;
在所述处理器核发送所述待访问数据后,获取所述处理器核发送的待访问数据;
将所述待访问数据发送至所述外设设备;
执行所述主机缓存记录表的更新流程,以使主机缓存记录表中对应所述待访问数据的所述外设共享标识指示对应的缓存数据被外设设备共享。
可选的,所述访问请求中,请求发起方为多个处理器核中的一处理器核,且所述处理器核请求获取待访问数据的独占权限;
在主机缓存记录表存在所述待访问数据的缓存状态,且所述待访问数据被设备缓存共享时,所述基于所述访问请求所需获取的权限和所述主机缓存记录表中的信息,执行对待访问数据的处理,包括:
向缓存所述待访问数据的处理器核发送数据处理请求,向外设设备发送数据清除请求,所述数据处理请求用于获取所述待访问数据,并清除对应缓存的缓存数据,所述数据清除请求用于清除对应缓存的缓存数据;
在缓存所述待访问数据的处理器核响应所述数据处理请求,发送所述待访问数据至所述侦听过滤器,并清除对应所述待访问数据的缓存数据后,获取所述待访问数据;
在外设设备响应所述数据清除请求,清除对应所述待访问数据的缓存数据,并发送响应消息至所述侦听过滤器后,将所述待访问数据发送至发起所述访问请求的所述处理器核;
执行所述主机缓存记录表的更新流程,以使主机缓存记录表中记录对应所述待访问数据的独占状态,且使对应所述待访问数据的外设共享标识指示对应的缓存数据未被外设设备共享。
可选的,在主机缓存记录表不存在所述待访问数据的缓存状态时,所述基于所述访问请求所需获取的权限和所述主机缓存记录表中的信息,执行对待访问数据的处理,包括:
向内存控制器发送数据读取请求,所述数据读取请求用于读取所述待访问数据,以及对应所述待访问数据的设备缓存信息;
在内存控制器响应所述数据读取请求,发送所述待访问数据和对应所述待访问数据的设备缓存信息至所述侦听过滤器后,获取所述待访问数据;
查询所述设备缓存信息,确定是否存在外设设备缓存所述待访问数据的其他状态;
若是,发送数据清除请求,所述数据清除请求用于请求外设设备清除对应所述待访问数据的缓存数据;在外设设备响应所述数据处理请求,清除对应所述待访问数据的缓存数据,并发送响应消息至所述侦听过滤器后,将所述待访问数据发送至所述处理器核;
以及,执行所述主机缓存记录表的更新流程,以使主机缓存记录表中记录对应所述待访问数据的独占状态,且使对应所述待访问数据的外设共享标识指示对应的缓存数据未被外设设备共享;并且,执行设备缓存信息更新流程,以使所述设备缓存信息指示对应的内存数据被外设设备缓存为无效的状态;
若否,将所述待访问数据发送至发起所述访问请求的所述处理器核;
以及,执行所述主机缓存记录表的更新流程,以使主机缓存记录表中记录对应所述待访问数据的独占状态,且使对应所述待访问数据的外设共享标识指示对应的缓存数据未被外设设备共享。
可选的,所述访问请求中,请求发起方为外设设备,且所述外设设备请求获取待访问数据的独占权限;
在主机缓存记录表存在所述待访问数据的缓存状态时,所述基于所述访问请求所需获取的权限和所述主机缓存记录表中的信息,执行对待访问数据的处理,包括:
向缓存所述待访问数据的处理器核发送数据处理请求,所述数据处理请求用于获取所述待访问数据,并清除所述处理器核对应的缓存数据;
在处理器核响应所述数据处理请求,发送所述待访问数据至所述侦听过滤器,并清除对应所述待访问数据的缓存数据后,获取所述待访问数据;
将所述待访问数据发送至所述外设设备;
执行设备缓存信息更新流程,以使所述设备缓存信息指示对应的内存数据被外设设备缓存独占。
本发明实施例还提供了一种计算机设备,包括主机和外设设备;
其中,所述侦听过滤器配置有主机缓存记录表,所述主机缓存记录表用于记录主机的缓存数据在主机缓存中的状态,以及,对应所述缓存数据的外设共享标识,所述外设共享标识用于指示所述缓存数据是否被外设设备共享。
可选的,所述主机缓存记录表中包括与主机中的缓存数据一一对应的状态条目,所述状态条目包括地址标记、缓存状态、数据所有者、数据分布,以及,所述外设共享标识;
其中,所述外设共享标识配置在所述状态条目的冗余位;或者,所述外设共享标识配置在所述状态条目的独立存储位。
可选的,所述外设共享标识占据所述状态条目的1比特位存储空间。
可选的,所述主机还包括内存,所述外设设备的缓存数据的设备缓存信息存储于所述内存中,所述设备缓存信息用于记录外设设备的缓存数据的状态信息。
可选的,所述设备缓存信息存储于所述缓存数据对应的内存数据所在的内存页的冗余空间内。
可选的,所述设备缓存信息包括外设共享标识、设备缓存状态和设备缓存数据所有者,其中,外设共享标识用于标记对应的内存数据在外设设备中是否被缓存,设备缓存状态用于标记对应的内存数据在设备缓存中的状态,设备缓存数据所有者用于记录缓存所述内存数据的外设设备的设备标识。
可选的,所述内存中还包括错误检查和纠正验证码,所述错误检查和纠正验证码基于所述设备缓存信息和与之对应的内存数据计算得到。
本发明实施例还提供了一种缓存状态记录装置,应用于侦听过滤器,所述侦听过滤器中配置有主机缓存记录表,所述主机缓存记录表用于记录主机的缓存数据在主机缓存中的状态,以及,对应所述缓存数据的外设共享标识,所述外设共享标识用于指示所述缓存数据是否被外设设备共享,包括:
标识更新模块,用于在外设设备共享主机缓存中的缓存数据时,更新外设共享标识,以使得外设共享标识指示对应的缓存数据被外设设备共享;在处理器核独占缓存数据时,更新外设共享标识,以使得所述外设共享标识指示对应的缓存数据未被外设设备共享。
本发明实施例还提供了一种数据访问装置,包括:
请求获取模块,用于获取访问请求,所述访问请求用于使请求发起方访问待访问数据,所述访问请求中包括所述请求发起方所需获取的权限信息;
状态查询模块,用于查询主机缓存记录表中是否存在所述待访问数据的缓存状态,所述主机缓存记录表用于记录主机的缓存数据在主机缓存中的状态,以及,对应该缓存数据的外设共享标识,所述外设共享标识用于指示所述缓存数据是否被外设设备共享;
访问处理模块,用于基于所述访问请求所需获取的权限和所述主机缓存记录表中的信息,执行对待访问数据的处理。
本发明实施例还提供了一种存储介质,所述存储介质存储一条或多条可执行指令,所述一条或多条可执行指令用于执行本发明实施例提供的缓存状态记录方法,或者,执行本发明实施例提供的数据访问方法。
本发明实施例提供了一种缓存状态记录方法、数据访问方法及相关装置、设备,所述方法应用于侦听过滤器,所述侦听过滤器中配置有主机缓存记录表,所述主机缓存记录表用于记录主机的缓存数据在主机缓存中的状态,以及,对应所述缓存数据的外设共享标识,所述外设共享标识用于指示所述缓存数据是否被外设设备共享,所述方法包括:在外设设备共享主机缓存中的缓存数据时,更新外设共享标识,以使得外设共享标识指示对应的缓存数据被外设设备共享;在处理器核独占缓存数据时,更新外设共享标识,以使得所述外设共享标识指示对应的缓存数据未被外设设备共享。
可以看出,本发明实施例提供的缓存状态记录方案及数据访问方案,能够基于主机缓存记录表记录外设共享标识,确定影响数据处理流程的主要状态,从而能够实现外设设备中,缓存数据状态的记录,进而可以基于所述主机缓存记录表的信息,执行对应的访问流程。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为一种计算机设备的可选架构图;
图2为一种可选的状态条目的结构图;
图3为本发明实施例提供的主机缓存记录表的可选结构图;
图4为本发明实施例提供的一个可选的设备缓存信息结构图;
图5为本发明实施例提供的一种数据访问方法的可选流程图;
图6为本发明实施例提供的数据处理的可选流程示意;
图7为本发明实施例提供的数据处理的另一可选流程示意图;
图8为本发明实施例提供的数据处理的又一可选流程示意图;
图9为本发明实施例提供的数据处理的再一可选流程示意图;
图10为本发明实施例提供的缓存状态记录装置的可选框图;
图11为本发明实施例提供的数据访问装置的可选框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如背景技术所述,在基于CXL协议执行对应的缓存数据的访问时,需要记录外设设备中的缓存数据的状态,从而基于对应的状态进行对应的操作。如何记录外设设备中,缓存数据的状态,是本领域技术人员亟待解决的一个技术问题。下面,结合计算机设备的数据访问流程进行详细的说明。
参考图1示出的计算机设备的可选架构图,所述计算机设备包括主机和外设设备(也称为设备)。主机包括多个处理器核(也称为计算核心,图中以处理器核0和处理器核1为例示出),内存控制器、外设控制器和侦听过滤器。
其中,各处理器核均配置有对应的主机缓存,基于对应的主机缓存实现对数据的访问,内存控制器用于将内存中的数据读取并发送至主机缓存,或将主机缓存的数据写入内存,与内存相应的交互均基于内存控制器执行,外设控制器用于控制基于外设设备的数据访问流程,与外设设备相应的交互均基于外设控制器执行,侦听过滤器用于基于总线的访问请求,记录各处理器核的缓存数据在主机缓存中的状态,并使得各访问请求基于其所记录的缓存数据的状态,执行不同的处理流程。其中,在本发明示例中,外设控制器基于CXL协议执行对外设的控制。
缓存数据在缓存中的状态可以包括M(Modified,修改)、E(Exclusive,独占)、S(Share,共享)和I(Invalid,无效)四种状态。其中,M表明缓存数据处于被修改的状态,E表明缓存数据处于被独占的状态,S表明缓存数据处于被共享的状态,I表明缓存数据处于无效的状态。
在侦听过滤器中,针对主机缓存,可以通过主机缓存记录表记录主机缓存的缓存数据的状态,其中,主机缓存记录表内可以基于缓存的空间位置设置与之对应数量的状态条目,以记录对应缓存空间的缓存数据的状态,一种可选的状态条目的结构如图2所示,包括地址标记、缓存状态、数据所有者和数据分布,其中,地址标识用于标识对应缓存数据的系统地址,缓存状态记录对应于缓存中的状态,可以为M、E或S等,数据所有者记录当前记录地址具备所有者权限的处理器核,数据分布记录当前记录地址在处理器核心中的缓存情况。
在一个可选的方案中,为维护外设设备的缓存一致性,所述侦听过滤器中进一步设置设备缓存记录表,从而基于设备缓存记录表维护外设设备与主机中缓存数据的一致性。
具体的,外设设备的缓存(也称为设备缓存)中,缓存数据在缓存中的状态同样可以包括M(Modified,修改)、E(Exclusive,独占)、S(Share,共享)和I(Invalid,无效)四种状态。其中,当缓存数据的缓存状态为M时,最新的数据只存储在设备缓存中,其他地方都没有副本,必须从设备缓存获取数据。当缓存数据的缓存状态为E时,最新的数据同时存储在设备缓存和主机内存中,可以通过主机内存或设备缓存获取最新数据。当缓存数据的缓存状态为S时,最新的数据同时存在于主机缓存、主机内存和设备缓存中,可以通过以上任一处获得最新数据。当缓存数据的缓存状态为I时,最新数据一定不在设备缓存中,可能存在于主机缓存或主机内存中。其中,外设设备在取得E态的权限后,可以在本地静默改写E态为M态,因此,可以将E态和M态统一考虑。
相应的,设备缓存记录表中包括与设备缓存空间位置一一对应的状态条目,进而基于对应的状态条目,从而可以基于设备缓存记录表,实现设备缓存的缓存一致性维护。
可以看出,为记录设备缓存的缓存数据,需要在探听过滤器中增加存储空间以存储对应的状态条目,然而,外设设备的数量及其对应的缓存空间大小是可变的,若增加的存储空间过大,对应的硬件成本过高,若增加的存储空间过小,则会由于硬件不匹配造成系统性能下降。显然,这种针对外设设备的缓存记录方法缺陷过多。
发明人研究缓存数据的状态和对应缓存数据的访问流程后认为,针对设备缓存中的缓存数据,其是否被主机缓存,以及是否被外设设备和处理器核共享是影响其访问流程的主要因素,其中,通过确定其是否被主机缓存时,可以确定是否能够基于主机缓存中的缓存数据进行数据的传递,而通过确定其是否被外设设备和处理器核共享,可以在需要获取缓存数据的独占权限时,确定是否存在缓存数据被共享的设备,进而清除对应设备中的该缓存数据。
有鉴于此,发明人认为,数据是否被主机缓存,可以基于主机缓存记录表中进行确认,同时,基于被外设设备和处理器核共享的缓存数据,必然也会在主机缓存中记录,因此,可以通过在主机缓存记录表进行少量调整,使得主机缓存记录表中标记对应的缓存数据是否被外设设备和处理器核共享,进而确定对应缓存数据的处理流程。
有鉴于此,本发明实施例提供了一种缓存状态记录方案及数据访问方案,该方案通过在主机缓存记录表中增加用于指示缓存数据是否被外设设备共享的外设共享标识,从而记录缓存数据的共享状态,进而在外设设备共享主机缓存中的缓存数据时,更新外设共享标识,以使得该外设共享标识指示对应的缓存数据被外设设备共享;同时,在处理器核独占外设设备共享的缓存数据时,更新外设共享标识,以使得该外设共享标识指示对应的缓存数据未被外设设备共享。
可以看出,本发明实施例提供的缓存状态记录方法,基于主机缓存记录表记录外设共享标识,确定影响数据处理流程的主要状态,从而能够实现外设设备中,缓存数据状态的记录,进而可以基于所述主机缓存记录表的信息,执行对应的访问流程。
并且,本发明实施例提供的缓存状态记录方法,并不需要额外设置对应外设设备的设备缓存记录表,从而不必增加存储空间以进行对应数据的存储,同时,也不必考虑外设设备的数量及其缓存空间大小对系统的影响,避免了增加设备缓存记录表造成的缺陷。
下面将对本发明实施例提供的缓存状态记录方法进行详细介绍。
其中,所述缓存状态记录方法可以应用于图1所示的计算机设备中,前述主机缓存记录表不同的是,所述主机缓存记录表除了记录主机的缓存数据在主机缓存中的状态,还进一步记录对应所述缓存数据的外设共享标识,所述外设共享标识用于指示所述缓存数据是否被外设设备共享。
参考图3所示的本发明实施例提供的主机缓存记录表的可选结构图,所述主机缓存记录表中,设置有与主机缓存的空间位置一一对应的状态条目,也即,与主机中的缓存数据一一对应,所述状态条目可以包括地址标记、缓存状态、数据所有者和数据分布,以指示主机的缓存数据在主机缓存中的状态,同时,所述状态条目可以进一步包括外设共享标识,所述外设共享标识用于指示对应缓存数据是否被外设设备共享,其中,所述被外设设备共享,指的是被外设设备的缓存共享。
在具体的示例中,在所述状态条目存在冗余位时,可以配置所述状态条目的冗余位作为所述外设共享标识;在所述状态条目不存在冗余位时,可以增加与所述外设共享标识对应的存储空间,作为独立的存储位,以记录所述外设共享标识。
其中,需要说明的是,基于所述外设共享标识仅用于标记是否为外设设备共享,因此,其仅需要少量空间即可实现,例如,可以用1比特位存储空间进行记录,从而利用该比特位记录的“0”或“1”指示对应的缓存数据是否为外设设备共享。相比于额外设置对应外设设备的设备缓存记录表,本发明实施例对存储空间的需求显然更小,从而相应的硬件成本也更低。
可以理解的是,在图3所示的状态条目中,地址标识用于标识对应缓存数据的系统地址,缓存状态记录对应于主机缓存中的状态,可以为M、E或S等,数据所有者记录当前记录地址具备所有者权限的处理器核心,数据分布记录当前记录地址在处理器核心中的缓存情况,例如,对应的缓存数据缓存被共享在处理器核心1和处理器核心2中,那么,此处数据分布记录可以记录对应处理器核心1和处理器核心2的标识,以指示该缓存数据被共享在处理器核心1和处理器核心2中。
可以理解的是,主机缓存记录表中仅记录有对应主机缓存中的缓存数据的信息,相应的,设备缓存中的未被主机缓存共享的缓存数据则不能在主机缓存记录表中体现,为避免可能出现的数据冲突,本发明的可选示例中,还可以进一步将设备缓存的缓存数据的状态信息(也可称为设备缓存信息)存储于内存中,例如,设备缓存的缓存数据的独占状态信息、修改状态信息等。在具体的示例中,可以在内存的冗余空间内存储对应的设备缓存信息,以存储所述外设设备的缓存数据的状态。其中,在内存中,存储有缓存数据的原始数据,即内存数据,可以理解的是,在数据访问过程中,内存数据可以读取至缓存中作为缓存数据,相应的,可以对缓存在外设缓存的内存数据配置对应的设备缓存信息。在具体的示例中,所述设备缓存信息存储于所述内存数据所在的内存页的冗余空间内。
所述设备缓存信息可以与缓存数据对应的内存数据相对应,其中,一内存地址(一内存页可以对应一内存地址)可以对应一设备缓存信息,以图4示出的一个可选的设备缓存信息结构图为例,所述设备缓存信息可以包括外设共享标识、设备缓存状态、设备缓存数据所有者等,其中,外设共享标识用于标记对应的内存数据在外设设备中是否被缓存,设备缓存状态用于标记对应的内存数据在设备缓存中的状态,设备缓存数据所有者用于记录缓存所述内存数据的外设设备的设备标识。
需要说明的是,基于主机缓存记录表中的外设共享标识记录了主机缓存与设备缓存共享的缓存数据对应的共享状态,所述设备缓存信息中可以仅存储对应缓存数据的其他状态,以降低设备缓存信息的复杂度。
可以理解的是,在需要确认未被主机缓存共享的数据在设备缓存中的状态时,可以基于内存中存储的设备缓存信息进行确认。
在进一步的可选示例中,所述内存中还存在ECC(Error Correcting Code,错误检查和纠正)验证码,所述设备缓存信息可以与所述内存数据同时进行ECC计算得到所述ECC验证码,从而可以与所述内存数据一起基于所述ECC验证码进行完整性保护。
下面,结合数据访问流程对缓存数据状态记录流程进行进一步的说明,其中,所述缓存数据状态记录流程可以基于上述计算机设备的侦听过滤器和配置于所述侦听过滤器中的主机缓存记录表实现,具体的,所述参考图5示出的一种数据访问的可选流程,所述流程包括:
步骤S100:获取访问请求;
其中,所述访问请求用于使请求发起方访问待访问数据。所述请求发起方可以为外设设备,也可以为主机中的某个处理器核,请求发起方通过发起访问流程,以执行其所分配的任务。
需要说明的是,在具有多个处理器核的架构中,为保持数据一致性,所述访问请求中还包括有所述请求发起方所需获取的权限信息,所述权限信息例如可以为共享权限、独占权限、修改权限等,不同权限信息对应于缓存数据的状态,例如,在需要共享缓存数据时,访问请求对应的权限信息为共享权限,在获取到对应的缓存数据后,记录缓存数据的状态为共享状态,即处于被共享的状态,其他权限也是对应如此,本发明在此不再赘述。
可以理解的是,所述访问请求中还包括待访问数据的地址信息,所述地址信息可以为待访问数据的系统地址,从而可以基于所述地址信息确定具体的待访问数据。
步骤S110:查询主机缓存记录表中是否存在所述待访问数据的缓存状态;
其中,所述主机缓存记录表用于记录主机的缓存数据在主机缓存中的状态,以及,对应该缓存数据的外设共享标识,所述外设共享标识用于指示所述缓存数据是否被设备缓存共享。
可以理解的是,访问请求中包括有待访问数据的地址信息,进而可以基于所述地址信息,查询主机缓存记录表。
在可选示例中,所述主机缓存记录中,设置有与主机缓存的空间位置一一对应的状态条目,所述状态条目可以包括缓存于对应空间位置的缓存数据的地址标记、缓存状态、数据所有者、数据分布和外设共享标识,以指示主机的缓存数据在主机缓存中的状态,以及,对应缓存数据是否被外设设备共享。
可以理解的是,在图3所示的状态条目中,地址标识用于标识对应缓存数据的系统地址,缓存状态记录对应于主机缓存中的状态,可以为M、E或S等,数据所有者记录当前记录地址具备所有者权限的处理器核心,数据分布记录当前记录地址在处理器核心中的缓存情况,例如,对应的缓存数据缓存被共享在处理器核心1和处理器核心2中,那么,此处数据分布记录可以记录对应处理器核心1和处理器核心2的标识,以指示该缓存数据被共享在处理器核心1和处理器核心2中。
外设共享标识用于指示缓存数据是否被外设设备共享,可以理解的是,基于是否被外设设备共享,是影响数据访问流程的主要因素,因此,通过仅记录缓存数据是否被外设设备共享,可以在确定具体的数据访问流程的前提下,尽量占用较少的存储空间,从而尽可能的降低硬件成本。
步骤S120:基于所述访问请求所需获取的权限和所述主机缓存记录表中的信息,执行对待访问数据的处理;
基于所述主机缓存记录表中的信息,可以确定主机缓存记录表中是否存在待访问数据的缓存状态,若存在,还可以确定对应待访问数据是否被设备缓存共享。
可以理解的是,通过确定待访问数据是否被主机缓存时,可以确定是否能够基于主机缓存中的缓存数据进行待访问数据的传递,而通过确定其是否被外设设备和处理器核共享,可以在需要获取缓存数据的独占权限时,确定是否存在缓存数据被共享的设备,进而清除对应设备中的该缓存数据,从而可以基于所述主机缓存记录表的信息,执行对应的数据处理流程。
相应的,在执行对应的数据处理后,可以基于数据处理的结果,进行缓存数据状态的记录。具体的,在外设设备共享主机缓存中的缓存数据时,执行步骤S130。
步骤S130:更新外设共享标识,以使得外设共享标识指示对应的缓存数据被外设设备共享。
需要说明的是,所述外设设备共享主机缓存中的缓存数据,指的是,在访问请求的请求发起方为外设设备,对应的访问请求用于请求获取的待访问数据的权限为共享权限,并且,基于对应的数据处理流程,外设设备获取到待访问数据时,执行步骤S130,进行所述外设共享标识的更新。
相应的,在处理器核独占缓存数据时,执行步骤S140。
步骤S140:更新外设共享标识,以使得所述外设共享标识指示对应的缓存数据未被外设设备共享。
其中,所述处理器核独占缓存数据,指的是,在访问请求的请求发起发为处理器核,对应的访问请求用于请求获取的待访问数据的权限为独占权限,并且,基于对应的数据处理流程,处理器核获取到待访问数据,且其他处理器核或外设设备清除待访问数据后,执行步骤S140,进行所述外设共享标识的更新。
可以理解的是,处理器核独占缓存数据时,需要基于主机缓存记录表中记录的信息,确定待访问数据是否被外设设备共享,从而确定是否需要进行外设设备进行数据的清除流程。
在进一步的示例中,针对设备缓存处于其他状态的信息,可以记录在内存中。具体的,在外设设备独占缓存数据时,执行步骤S150。
步骤S150:发送设备缓存信息更新请求,以更新内存中的设备缓存信息,使所述设备缓存信息指示对应的内存数据被外设设备缓存独占的状态。
需要说明的是,所述外设设备独占缓存数据,指的是,在访问请求的请求发起发为外设设备,对应的访问请求用于请求获取的待访问数据的权限为独占权限,并且,基于对应的数据处理流程,外设设备获取到待访问数据,且处理器核清除待访问数据后,执行步骤S150,向内存控制器发送设备缓存信息更新请求,进行所述设备缓存信息的更新。
相应的,内存控制器基于所述设备缓存信息更新请求,执行步骤S160,更新内存中对应待访问数据的设备缓存信息。
可以看出,本发明实施例提供的缓存状态记录方法,能够基于主机缓存记录表记录外设共享标识,确定影响数据处理流程的主要状态,从而能够实现外设设备中,缓存数据状态的记录,进而可以基于所述主机缓存记录表的信息,执行对应的访问流程。
可以理解的是,基于不同的请求发起方所请求的数据的权限不同,对应的数据访问流程和缓存数据记录方法也不同。下面,结合不同的数据发起方和所请求的数据的权限,对本发明实施例中的数据访问方法和缓存数据记录方法进行进一步的说明。
具体的,以外设设备的设备缓存请求获取待访问数据的共享权限为例,参考图6示出的数据处理的可选流程示意图,所述数据访问方法和缓存数据记录方法可以包括:
步骤S200:侦听过滤器获取外设设备的访问请求;
其中,在所述访问请求的权限信息中,所述访问请求可以请求获取待访问数据的共享权限。需要说明的是,在主机中,所述外设设备的交互信息基于外设控制器进行,相应的访问请求可以基于外设控制器发出。
可以理解的是,步骤S200为步骤S100的具体实现,详细说明可以参照步骤S100中的介绍。
步骤S210:侦听过滤器查询主机缓存记录表中是否存在所述待访问数据的缓存状态;
可以理解的是,基于外设设备的访问请求,可以查询待访问数据是否存在于主机缓存中,以及,所述待访问数据是否被设备缓存共享。
可以理解的是,步骤S210为步骤S110的具体实现,详细说明可以参照步骤S110中的介绍。
步骤S220:侦听过滤器基于所述访问请求所需获取的权限和所述主机缓存记录表中的信息,执行对待访问数据的处理;
其中,在本发明实施例中,所述访问请求为外设设备用于请求获取待访问数据的共享权限。可以理解的是,在主机缓存记录表存在所述待访问数据的缓存状态时,所述对待访问数据的处理具体可以包括:
步骤S221:侦听过滤器向缓存所述待访问数据的处理器核发送数据获取请求,所述数据获取请求用于获取所述处理器核缓存的所述待访问数据。
其中,所述处理器核为主机缓存记录表中记载的存在所述待访问数据的缓存对应的处理器核,图中为处理器核1为例进行说明。可以理解的是,在主机缓存记录表存在所述待访问数据的缓存状态,表明主机缓存有所述待访问数据,同时,可以基于所述主机缓存记录表确定缓存有所述待访问数据的处理器核1,从而可以向缓存有所待访问数据的处理器核1发送数据获取请求,以获取对应的待访问数据。
步骤S222:处理器核1响应所述数据获取请求,发送所述待访问数据至所述侦听过滤器。
步骤S223:侦听过滤器获取所述处理器核1发送的待访问数据。
可以理解的是,在处理器核1发送所述待访问数据后,侦听过滤器可以获取对应的待访问数据。
步骤S224:侦听过滤器将所述待访问数据发送至所述外设设备。
在获取所述待访问数据后,侦听过滤器可以将所述待访问数据发送至所述外设设备,从而使得所述外设设备获取所述待访问数据。
可以理解的是,上述数据访问流程用于使得外设设备共享主机缓存中的缓存数据,相应的,在执行步骤S224之后,还可以执行所述主机缓存记录表的更新流程,以使主机缓存记录表中对应所述待访问数据的所述外设共享标识指示对应的缓存数据被外设设备共享,具体的,可以执行步骤S130,更新主机缓存记录表中对应该待访问数据的缓存数据的外设共享标识,以使得外设共享标识指示对应的缓存数据被外设设备共享。
在进一步的示例中,以多个处理器核中的一处理器核请求获取待访问数据的独占权限为例,参考图7示出的数据处理的另一可选流程示意图,以处理器核0请求获取待访问数据的独占权限为例,所述数据访问方法和缓存数据记录方法可以包括:
步骤S300:侦听过滤器获取处理器核0的访问请求;
其中,在所述访问请求的权限信息中,所述访问请求可以请求获取待访问数据的独占权限。
可以理解的是,步骤S300为步骤S100的具体实现,详细说明可以参照步骤S100中的介绍。
步骤S310:侦听过滤器查询主机缓存记录表中是否存在所述待访问数据的缓存状态;
可以理解的是,基于处理器核的访问请求,可以查询待访问数据是否存在于主机缓存中,以及,所述待访问数据是否被设备缓存共享。需要说明的是,在存在多个处理器核的计算机设备中,一处理器核无法得知另一处理器核中是否存在其所访问的数据,因此,需要基于主机缓存记录表的记录,确认主机缓存中是否存在待访问数据,以及待访问数据是否被设备缓存共享。
可以理解的是,步骤S310为步骤S110的具体实现,详细说明可以参照步骤S110中的介绍。
步骤S320:侦听过滤器基于所述访问请求所需获取的权限和所述主机缓存记录表中的信息,执行对待访问数据的处理;
其中,在本发明实施例中,所述访问请求为处理器核0用于请求获取待访问数据的独占权限。可以理解的是,在主机缓存记录表存在所述待访问数据的缓存状态,且所述待访问数据被设备缓存共享时,所述对待访问数据的处理具体可以包括:
步骤S321:侦听过滤器向缓存所述待访问数据的处理器核1发送数据处理请求,向外设设备发送数据清除请求,所述数据处理请求用于获取所述待访问数据,并清除对应缓存的缓存数据,所述数据清除请求用于清除对应缓存的缓存数据。
可以理解的是,在主机缓存记录表存在所述待访问数据的缓存状态,表明主机缓存有所述待访问数据,同时,所述待访问数据被设备缓存共享,表明外设设备缓存有所述待访问数据,相应的,为满足访问请求所请求的独占权限,可以基于所述主机缓存记录表确定缓存有所述待访问数据的处理器核1,向缓存有所待访问数据的处理器核1和外设设备发送数据处理请求,以获取所述待访问数据,并清除所述处理器核1和所述外设设备对应的缓存数据。
步骤S322:处理器核1响应所述数据处理请求,发送所述待访问数据至所述侦听过滤器,并清除对应所述待访问数据的缓存数据。
可以理解的是,相比与外设设备与处理器核的数据传输,处理器核内部的数据传输显然延时更小,对应的传输效率也更高,因此,可以由处理器核发送所述待访问数据至侦听过滤器。
其中,所述待访问数据可以作为响应消息,发送至侦听过滤器,所述响应消息同时用于通知所述侦听过滤器,相应的缓存数据已清除。
步骤S323:外设设备响应所述数据清除请求,清除对应所述待访问数据的缓存数据,并发送响应消息至所述侦听过滤器。
其中,在处理器核发送待访问数据至侦听过滤器后,所述外设设备可以不再发送所述待访问数据,仅执行对应的数据清除流程即可。
所述响应消息用于通知所述侦听过滤器,相应的缓存数据已清除。
步骤S324:侦听过滤器获取所述处理器核发送的待访问数据。
可以理解的是,在处理器核发送所述待访问数据后,侦听过滤器可以获取对应的待访问数据。
需要说明的是,在外设设备发送相应的响应消息时,侦听过滤器可以接收所述响应消息。
步骤S325:侦听过滤器将所述待访问数据发送至发起所述访问请求的所述处理器核。
在获取所述待访问数据后,侦听过滤器可以将所述待访问数据发送至所述处理器核,从而使得所述处理器核获取所述待访问数据。
需要说明的是,所述侦听过滤器在获取所述待访问数据后,仍应确认在接收到外设设备的响应消息后再发出所述待访问数据。
可以理解的是,上述数据访问流程用于使得处理器核独占主机缓存和设备缓存共享的缓存数据,相应的,在执行步骤S325之后,还可以执行所述主机缓存记录表的更新流程,以使主机缓存记录表中记录对应所述待访问数据的独占状态,且使对应所述待访问数据的外设共享标识指示对应的缓存数据未被外设设备共享,具体的,执行步骤S140,更新主机缓存记录表中对应该待访问数据的缓存数据的外设共享标识,以使得外设共享标识指示对应的缓存数据未被外设设备共享。在步骤S140中,还可以进一步更新主机缓存记录表中,对应所述缓存数据在主机缓存中的状态,以使得主机缓存记录表中缓存数据的状态指示所述缓存数据被处理器核独占。
其中,在进一步的示例中,在主机缓存记录表不存在所述待访问数据的缓存状态时,需要确定是否存在外设设备对待访问数据的其他状态的缓存,并进一步执行对应的处理。具体的,参考图8示出的数据处理的又一可选流程示意图,所述对待访问数据的处理具体可以包括:
步骤S326:侦听过滤器向内存控制器发送数据读取请求,所述数据读取请求用于读取所述待访问数据,以及对应所述待访问数据的设备缓存信息。
其中,在可选示例中,所述设备缓存信息存储于内存数据所在的内存页的冗余空间内,所述数据读取请求可以在读取待访问数据的同时,读取对应的设备缓存信息。
步骤S327:内存控制器响应所述数据读取请求,发送所述待访问数据和对应所述待访问数据的设备缓存信息至侦听过滤器。
基于所述数据读取请求,内存控制器可以执行对应的内存数据的读取流程。
步骤S328:侦听过滤器查询所述设备缓存信息。
在接收所述设备缓存信息后,侦听过滤器可以首先查询所述设备缓存信息,确定是否存在外设设备缓存所述待访问数据的其他状态,若是,执行步骤S329若否,执行步骤S331。
步骤S329:侦听过滤器发送数据清除请求,所述数据清除请求用于请求外设设备清除对应所述待访问数据的缓存数据。
步骤S330:外设设备响应所述数据处理请求,清除对应所述待访问数据的缓存数据,并发送响应消息至所述侦听过滤器。
所述响应消息用于通知所述侦听过滤器,相应的缓存数据已清除。
步骤S331:侦听过滤器将所述待访问数据发送至所述处理器核。
在获取所述待访问数据和外设设备发送的响应消息后,侦听过滤器可以将所述待访问数据发送至所述处理器核,从而使得所述处理器核获取所述待访问数据。
可以理解的是,上述数据访问流程用于使得处理器核独占对应的缓存数据,相应的,在执行步骤S331之后,还可以进一步执行所述主机缓存记录表的更新流程,以使主机缓存记录表中记录对应所述待访问数据的独占状态,且使对应所述待访问数据的外设共享标识指示对应的缓存数据未被外设设备共享,具体的执行步骤S332:更新主机缓存记录表中,对应所述缓存数据在主机缓存中的状态,以使得主机缓存记录表中缓存数据的状态指示所述缓存数据被处理器核独占。可以理解的是,在主机缓存记录表中缓存数据的状态指示所述缓存数据被处理器核独占,相应的待访问数据的外设共享标识即设置为指示对应的缓存数据未被外设设备共享的状态。
可以理解的是,上述数据访问流程用于使得处理器核独占主机缓存的缓存数据,相应的,若设备缓存信息中存在外设设备缓存所述待访问数据的其他状态,还应在执行步骤S332之后,执行设备缓存信息更新流程,以使所述设备缓存信息指示对应的内存数据被外设设备缓存为无效的状态,具体的,可以执行步骤S150,向内存控制器发送设备缓存信息更新请求,以更新内存中的设备缓存信息,使所述设备缓存信息指示对应的内存数据被外设设备缓存为无效的状态。相应的,步骤S160中,内存控制器基于所述设备缓存信息更新请求,更新内存中对应待访问数据的设备缓存信息为无效状态。
在进一步的示例中,以外设设备请求获取待访问数据的独占权限为例,参考图9示出的数据处理的再一可选流程示意图,所述数据访问方法和缓存数据记录方法可以包括:
步骤S400:侦听过滤器获取外设设备的访问请求;
其中,在所述访问请求的权限信息中,所述访问请求可以请求获取待访问数据的独占权限。
可以理解的是,步骤S400为步骤S100的具体实现,详细说明可以参照步骤S100中的介绍。
步骤S410:侦听过滤器查询主机缓存记录表中是否存在所述待访问数据的缓存状态;
基于外设设备的访问请求,可以查询待访问数据是否存在于主机缓存中。
可以理解的是,步骤S410为步骤S110的具体实现,详细说明可以参照步骤S110中的介绍。
步骤S420:侦听过滤器基于所述访问请求所需获取的权限和所述主机缓存记录表中的信息,执行对待访问数据的处理;
其中,在本发明实施例中,所述访问请求为外设设备用于请求获取待访问数据的独占权限。可以理解的是,在主机缓存记录表存在所述待访问数据的缓存状态时,所述对待访问数据的处理具体可以包括:
步骤S421:侦听过滤器向缓存所述待访问数据的处理器核发送数据处理请求,所述数据处理请求用于获取所述待访问数据,并清除所述处理器核对应的缓存数据。
可以理解的是,在主机缓存记录表存在所述待访问数据的缓存状态,表明主机缓存有所述待访问数据,相应的,为满足访问请求所请求的独占权限,可以基于所述主机缓存记录表确定缓存有所述待访问数据的处理器核,向缓存有所待访问数据的处理器核(图中以处理器核1缓存有所待访问数据为例)发送数据处理请求,以获取所述待访问数据,并清除所述处理器核对应的缓存数据。
步骤S422:处理器核1响应所述数据处理请求,发送所述待访问数据至所述侦听过滤器,并清除对应所述待访问数据的缓存数据。
其中,所述待访问数据可以作为响应消息,发送至侦听过滤器,所述响应消息同时用于通知所述侦听过滤器,相应的缓存数据已清除。
步骤S423:侦听过滤器获取所述处理器核发送的待访问数据。
可以理解的是,在处理器核发送所述待访问数据后,侦听过滤器可以获取对应的待访问数据。
步骤S424:侦听过滤器将所述待访问数据发送至所述外设设备。
在获取所述待访问数据后,侦听过滤器可以将所述待访问数据发送至所述外设设备,从而使得所述外设设备获取所述待访问数据。
可以理解的是,上述数据访问流程用于使得外设设备独占主机缓存的缓存数据,相应的,在执行步骤S424之后,执行设备缓存信息更新流程,以使所述设备缓存信息指示对应的内存数据被外设设备缓存独占,具体的,执行步骤S150,向内存控制器发送设备缓存信息更新请求,以更新内存中的设备缓存信息,使所述设备缓存信息指示对应的内存数据被外设设备缓存为独占的状态。相应的,步骤S160中,内存控制器基于所述设备缓存信息更新请求,更新内存中对应待访问数据的设备缓存信息为独占状态。
需要说明的是,在步骤S150之后,还可以进一步执行步骤S425,更新主机缓存记录表中,对应所述缓存数据在主机缓存中的状态条目进行更新,即,删除主机缓存记录表中,对应所述缓存数据的状态条目,以使得主机缓存记录指示所述主机缓存未缓存对应的待访问数据。
可以看出,本发明实施例提供的数据访问方法,能够基于主机缓存记录表记录的信息,实现对应的访问。
下面,对本发明实施例提供的缓存状态记录装置和数据访问装置进行介绍,下文描述的缓存状态记录装置和数据访问装置可以认为是,侦听过滤器为实现本发明实施例提供的缓存状态记录方法和数据访问方法,所需设置的功能模块;下文描述的缓存状态记录装置和数据访问装置的内容,可与上文描述的方法内容相互对应参照。
在可选实现中,图10示出了本发明实施例提供的缓存状态记录装置的可选框图,该缓存状态记录装置可应用于侦听过滤器,如图10所示,该缓存状态记录装置可以包括:
标识更新模块100,用于在外设设备共享主机缓存中的缓存数据时,更新外设共享标识,以使得外设共享标识指示对应的缓存数据被外设设备共享;在处理器核独占缓存数据时,更新外设共享标识,以使得所述外设共享标识指示对应的缓存数据未被外设设备共享。
可选的,该缓存状态记录装置还可以包括:更新请求发送模块110,用于在外设设备独占缓存数据时,发送设备缓存信息更新请求,以更新内存中的设备缓存信息,使所述设备缓存信息指示对应的内存数据被外设设备缓存独占的状态。
可选的,所述标识更新模块100,还用于在外设设备独占缓存数据时,删除主机缓存记录表中,对应所述缓存数据的状态条目。
可选的,所述标识更新模块100,还用于在处理器核独占缓存数据时,更新主机缓存记录表中,对应所述缓存数据在主机缓存中的状态,以使得主机缓存记录表中缓存数据的状态指示所述缓存数据被处理器核独占。
可选的,所述更新请求发送模块110,还用于在处理器核独占缓存数据,且主机缓存记录表不存在所述待访问数据的缓存状态时,还包括:
向内存控制器发送设备缓存信息更新请求,以更新内存中的设备缓存信息,使所述设备缓存信息指示对应的内存数据被外设设备缓存为无效的状态。
在可选实现中,图11示出了本发明实施例提供的数据访问装置的可选框图,该数据访问装置可应用于侦听过滤器,如图11所示,该数据访问装置可以包括:
请求获取模块200,用于获取访问请求,所述访问请求用于使请求发起方访问待访问数据,所述访问请求中包括所述请求发起方所需获取的权限信息;
状态查询模块210,用于查询主机缓存记录表中是否存在所述待访问数据的缓存状态,所述主机缓存记录表用于记录主机的缓存数据在主机缓存中的状态,以及,对应该缓存数据的外设共享标识,所述外设共享标识用于指示所述缓存数据是否被设备缓存共享;
访问处理模块220,用于基于所述访问请求所需获取的权限和所述主机缓存记录表中的信息,执行对待访问数据的处理。
可选的,所述访问请求中,请求发起方为外设设备,且所述外设设备的设备缓存请求获取待访问数据的共享权限;
在主机缓存记录表存在所述待访问数据的缓存状态时,所述访问处理模块220,用于基于所述访问请求所需获取的权限和所述主机缓存记录表中的信息,执行对待访问数据的处理,包括:
向缓存所述待访问数据的处理器核发送数据获取请求,所述数据获取请求用于获取所述处理器核缓存的所述待访问数据;
在所述处理器核发送所述待访问数据后,获取所述处理器核发送的待访问数据;
将所述待访问数据发送至所述外设设备;
执行所述主机缓存记录表的更新流程,以使主机缓存记录表中对应所述待访问数据的所述外设共享标识指示对应的缓存数据被外设设备共享。
可选的,所述访问请求中,请求发起方为多个处理器核中的一处理器核,且所述处理器核请求获取待访问数据的独占权限;
在主机缓存记录表存在所述待访问数据的缓存状态,且所述待访问数据被设备缓存共享时,所述访问处理模块220,用于基于所述访问请求所需获取的权限和所述主机缓存记录表中的信息,执行对待访问数据的处理,包括:
向缓存所述待访问数据的处理器核发送数据处理请求,向外设设备发送数据清除请求,所述数据处理请求用于获取所述待访问数据,并清除对应缓存的缓存数据,所述数据清除请求用于清除对应缓存的缓存数据;
在缓存所述待访问数据的处理器核响应所述数据处理请求,发送所述待访问数据至所述侦听过滤器,并清除对应所述待访问数据的缓存数据后,获取所述待访问数据;
在外设设备响应所述数据清除请求,清除对应所述待访问数据的缓存数据,并发送响应消息至所述侦听过滤器后,将所述待访问数据发送至发起所述访问请求的所述处理器核;
执行所述主机缓存记录表的更新流程,以使主机缓存记录表中记录对应所述待访问数据的独占状态,且使对应所述待访问数据的外设共享标识指示对应的缓存数据未被外设设备共享。
可选的,在主机缓存记录表不存在所述待访问数据的缓存状态时,所述访问处理模块220,用于基于所述访问请求所需获取的权限和所述主机缓存记录表中的信息,执行对待访问数据的处理,包括:
向内存控制器发送数据读取请求,所述数据读取请求用于读取所述待访问数据,以及对应所述待访问数据的设备缓存信息;
在内存控制器响应所述数据读取请求,发送所述待访问数据和对应所述待访问数据的设备缓存信息至所述侦听过滤器后,获取所述待访问数据;
查询所述设备缓存信息,确定是否存在外设设备缓存所述待访问数据的其他状态;
若是,发送数据清除请求,所述数据清除请求用于请求外设设备清除对应所述待访问数据的缓存数据;在外设设备响应所述数据处理请求,清除对应所述待访问数据的缓存数据,并发送响应消息至所述侦听过滤器后,将所述待访问数据发送至所述处理器核;
以及,执行所述主机缓存记录表的更新流程,以使主机缓存记录表中记录对应所述待访问数据的独占状态,且使对应所述待访问数据的外设共享标识指示对应的缓存数据未被外设设备共享;并且,执行设备缓存信息更新流程,以使所述设备缓存信息指示对应的内存数据被外设设备缓存为无效的状态;
若否,将所述待访问数据发送至发起所述访问请求的所述处理器核;
以及,执行所述主机缓存记录表的更新流程,以使主机缓存记录表中记录对应所述待访问数据的独占状态,且使对应所述待访问数据的外设共享标识指示对应的缓存数据未被外设设备共享。
可选的,所述访问请求中,请求发起方为外设设备,且所述外设设备请求获取待访问数据的独占权限;
在主机缓存记录表存在所述待访问数据的缓存状态时,所述访问处理模块220,用于基于所述访问请求所需获取的权限和所述主机缓存记录表中的信息,执行对待访问数据的处理,包括:
向缓存所述待访问数据的处理器核发送数据处理请求,所述数据处理请求用于获取所述待访问数据,并清除所述处理器核对应的缓存数据;
在处理器核响应所述数据处理请求,发送所述待访问数据至所述侦听过滤器,并清除对应所述待访问数据的缓存数据后,获取所述待访问数据;
将所述待访问数据发送至所述外设设备;
执行设备缓存信息更新流程,以使所述设备缓存信息指示对应的内存数据被外设设备缓存独占。
本发明实施例还提供一种存储介质,所述存储介质存储一条或多条可执行指令,所述一条或多条可执行指令用于执行本发明实施例提供的缓存状态记录方法,或者,执行本发明实施例提供的数据访问方法。
可以看出,本发明实施例提供的缓存状态记录方案及数据访问方案,能够基于主机缓存记录表记录外设共享标识,确定影响数据处理流程的主要状态,从而能够实现外设设备中,缓存数据状态的记录,进而可以基于所述主机缓存记录表的信息,执行对应的访问流程。
虽然本发明实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (20)
1.一种缓存状态记录方法,其特征在于,应用于侦听过滤器,所述侦听过滤器中配置有主机缓存记录表,所述主机缓存记录表用于记录主机的缓存数据在主机缓存中的状态,以及,对应所述缓存数据的外设共享标识,所述外设共享标识用于指示所述缓存数据是否被外设设备共享,所述方法包括:
在外设设备共享主机缓存中的缓存数据时,更新所述外设共享标识,以使得所述外设共享标识指示对应的缓存数据被外设设备共享;
在处理器核独占缓存数据时,更新所述外设共享标识,以使得所述外设共享标识指示对应的缓存数据未被外设设备共享。
2.根据权利要求1所述的方法,其特征在于,在外设设备独占缓存数据时,还包括:
发送设备缓存信息更新请求,以更新内存中的设备缓存信息,使所述设备缓存信息指示对应的内存数据被外设设备缓存独占的状态。
3.根据权利要求2所述的方法,其特征在于,在外设设备独占缓存数据时,还包括:
删除主机缓存记录表中,对应所述缓存数据的状态条目。
4.根据权利要求1所述的方法,其特征在于,在处理器核独占缓存数据时,还包括:
更新所述主机缓存记录表中,对应所述缓存数据在主机缓存中的状态,以使得所述主机缓存记录表中缓存数据的状态指示所述缓存数据被处理器核独占。
5.根据权利要求1所述的方法,其特征在于,在处理器核独占缓存数据,且所述主机缓存记录表不存在待访问数据的缓存状态时,还包括:
向内存控制器发送设备缓存信息更新请求,以更新内存中的设备缓存信息,使所述设备缓存信息指示对应的内存数据被外设设备缓存为无效的状态。
6.一种数据访问方法,其特征在于,应用于侦听过滤器,包括:
获取访问请求,所述访问请求用于使请求发起方访问待访问数据,所述访问请求中包括所述请求发起方所需获取的权限信息;
查询主机缓存记录表中是否存在所述待访问数据的缓存状态,所述主机缓存记录表用于记录主机的缓存数据在主机缓存中的状态,以及,对应该缓存数据的外设共享标识,所述外设共享标识用于指示所述缓存数据是否被外设设备共享;
基于所述访问请求所需获取的权限和所述主机缓存记录表中的信息,执行对待访问数据的处理。
7.根据权利要求6所述的方法,其特征在于,所述访问请求中,所述请求发起方为外设设备,且所述外设设备的设备缓存请求获取待访问数据的共享权限;
在所述主机缓存记录表存在所述待访问数据的缓存状态时,所述基于所述访问请求所需获取的权限和所述主机缓存记录表中的信息,执行对待访问数据的处理,包括:
向缓存所述待访问数据的处理器核发送数据获取请求,所述数据获取请求用于获取所述处理器核缓存的所述待访问数据;
在所述处理器核发送所述待访问数据后,获取所述处理器核发送的待访问数据;
将所述待访问数据发送至所述外设设备;
执行所述主机缓存记录表的更新流程,以使所述主机缓存记录表中对应所述待访问数据的所述外设共享标识指示对应的缓存数据被外设设备共享。
8.根据权利要求6所述的方法,其特征在于,所述访问请求中,所述请求发起方为多个处理器核中的一处理器核,且所述处理器核请求获取待访问数据的独占权限;
在所述主机缓存记录表存在所述待访问数据的缓存状态,且所述待访问数据被设备缓存共享时,所述基于所述访问请求所需获取的权限和所述主机缓存记录表中的信息,执行对待访问数据的处理,包括:
向缓存所述待访问数据的处理器核发送数据处理请求,向外设设备发送数据清除请求,所述数据处理请求用于获取所述待访问数据,并清除对应缓存的缓存数据,所述数据清除请求用于清除对应缓存的缓存数据;
在缓存所述待访问数据的处理器核响应所述数据处理请求,发送所述待访问数据至所述侦听过滤器,并清除对应所述待访问数据的缓存数据后,获取所述待访问数据;
在外设设备响应所述数据清除请求,清除对应所述待访问数据的缓存数据,并发送响应消息至所述侦听过滤器后,将所述待访问数据发送至发起所述访问请求的所述处理器核;
执行所述主机缓存记录表的更新流程,以使主机缓存记录表中记录对应所述待访问数据的独占状态,且使对应所述待访问数据的外设共享标识指示对应的缓存数据未被外设设备共享。
9.根据权利要求8所述的方法,其特征在于,在所述主机缓存记录表不存在所述待访问数据的缓存状态时,所述基于所述访问请求所需获取的权限和所述主机缓存记录表中的信息,执行对待访问数据的处理,包括:
向内存控制器发送数据读取请求,所述数据读取请求用于读取所述待访问数据,以及对应所述待访问数据的设备缓存信息;
在内存控制器响应所述数据读取请求,发送所述待访问数据和对应所述待访问数据的设备缓存信息至所述侦听过滤器后,获取所述待访问数据;
查询所述设备缓存信息,确定是否存在外设设备缓存所述待访问数据的其他状态;
若是,发送数据清除请求,所述数据清除请求用于请求外设设备清除对应所述待访问数据的缓存数据;在外设设备响应所述数据处理请求,清除对应所述待访问数据的缓存数据,并发送响应消息至所述侦听过滤器后,将所述待访问数据发送至所述处理器核;
以及,执行所述主机缓存记录表的更新流程,以使所述主机缓存记录表中记录对应所述待访问数据的独占状态,且使对应所述待访问数据的外设共享标识指示对应的缓存数据未被外设设备共享;并且,执行设备缓存信息更新流程,以使所述设备缓存信息指示对应的内存数据被外设设备缓存为无效的状态;
若否,将所述待访问数据发送至发起所述访问请求的所述处理器核;
以及,执行所述主机缓存记录表的更新流程,以使主机缓存记录表中记录对应所述待访问数据的独占状态,且使对应所述待访问数据的外设共享标识指示对应的缓存数据未被外设设备共享。
10.根据权利要求6所述的方法,其特征在于,所述访问请求中,所述请求发起方为外设设备,且所述外设设备请求获取待访问数据的独占权限;
在所述主机缓存记录表存在所述待访问数据的缓存状态时,所述基于所述访问请求所需获取的权限和所述主机缓存记录表中的信息,执行对待访问数据的处理,包括:
向缓存所述待访问数据的处理器核发送数据处理请求,所述数据处理请求用于获取所述待访问数据,并清除所述处理器核对应的缓存数据;
在处理器核响应所述数据处理请求,发送所述待访问数据至所述侦听过滤器,并清除对应所述待访问数据的缓存数据后,获取所述待访问数据;
将所述待访问数据发送至所述外设设备;
执行设备缓存信息更新流程,以使所述设备缓存信息指示对应的内存数据被外设设备缓存独占。
11.一种计算机设备,其特征在于,包括主机和外设设备;所述主机包括多个处理器核和侦听过滤器,各处理器核均配置有对应的主机缓存;
其中,侦听过滤器,所述侦听过滤器配置有主机缓存记录表,所述主机缓存记录表用于记录主机的缓存数据在主机缓存中的状态,以及,对应所述缓存数据的外设共享标识,所述外设共享标识用于指示所述缓存数据是否被外设设备共享。
12.根据权利要求11所述的计算机设备,其特征在于,所述主机缓存记录表中包括与主机中的缓存数据一一对应的状态条目,所述状态条目包括地址标记、缓存状态、数据所有者、数据分布,以及,所述外设共享标识;
其中,所述外设共享标识配置在所述状态条目的冗余位;或者,所述外设共享标识配置在所述状态条目的独立存储位。
13.根据权利要求12所述的计算机设备,其特征在于,所述外设共享标识占据所述状态条目的1比特位存储空间。
14.根据权利要求11所述的计算机设备,其特征在于,所述主机还包括内存,所述外设设备的缓存数据的设备缓存信息存储于所述内存中,所述设备缓存信息用于记录外设设备的缓存数据的状态信息。
15.根据权利要求14所述的计算机设备,其特征在于,所述设备缓存信息存储于所述缓存数据对应的内存数据所在的内存页的冗余空间内。
16.根据权利要求14所述的计算机设备,其特征在于,所述设备缓存信息包括外设共享标识、设备缓存状态和设备缓存数据所有者,其中,外设共享标识用于标记对应的内存数据在外设设备中是否被缓存,设备缓存状态用于标记对应的内存数据在设备缓存中的状态,设备缓存数据所有者用于记录缓存所述内存数据的外设设备的设备标识。
17.根据权利要求15所述的计算机设备,其特征在于,所述内存中还包括错误检查和纠正验证码,所述错误检查和纠正验证码基于所述设备缓存信息和与之对应的内存数据计算得到。
18.一种缓存状态记录装置,其特征在于,应用于侦听过滤器,所述侦听过滤器中配置有主机缓存记录表,所述主机缓存记录表用于记录主机的缓存数据在主机缓存中的状态,以及,对应所述缓存数据的外设共享标识,所述外设共享标识用于指示所述缓存数据是否被外设设备共享,包括:
标识更新模块,用于在外设设备共享主机缓存中的缓存数据时,更新所述外设共享标识,以使得所述外设共享标识指示对应的缓存数据被外设设备共享;在处理器核独占缓存数据时,更新所述外设共享标识,以使得所述外设共享标识指示对应的缓存数据未被外设设备共享。
19.一种数据访问装置,其特征在于,包括:
请求获取模块,用于获取访问请求,所述访问请求用于使请求发起方访问待访问数据,所述访问请求中包括所述请求发起方所需获取的权限信息;
状态查询模块,用于查询主机缓存记录表中是否存在所述待访问数据的缓存状态,所述主机缓存记录表用于记录主机的缓存数据在主机缓存中的状态,以及,对应该缓存数据的外设共享标识,所述外设共享标识用于指示所述缓存数据是否被外设设备共享;
访问处理模块,用于基于所述访问请求所需获取的权限和所述主机缓存记录表中的信息,执行对待访问数据的处理。
20.一种存储介质,其特征在于,所述存储介质存储一条或多条可执行指令,所述一条或多条可执行指令用于执行如权利要求1-5任一项所述的缓存状态记录方法,或者,执行如权利要求6-10任一项所述的数据访问方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211593112.3A CN116107771A (zh) | 2022-12-13 | 2022-12-13 | 缓存状态记录方法、数据访问方法及相关装置、设备 |
PCT/CN2023/116416 WO2024124977A1 (zh) | 2022-12-13 | 2023-09-01 | 缓存状态记录方法、数据访问方法及相关装置、设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211593112.3A CN116107771A (zh) | 2022-12-13 | 2022-12-13 | 缓存状态记录方法、数据访问方法及相关装置、设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116107771A true CN116107771A (zh) | 2023-05-12 |
Family
ID=86262943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211593112.3A Pending CN116107771A (zh) | 2022-12-13 | 2022-12-13 | 缓存状态记录方法、数据访问方法及相关装置、设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116107771A (zh) |
WO (1) | WO2024124977A1 (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017020743A1 (zh) * | 2015-08-06 | 2017-02-09 | 阿里巴巴集团控股有限公司 | 缓存数据共享的方法及设备 |
CN111221826A (zh) * | 2020-01-04 | 2020-06-02 | 苏州浪潮智能科技有限公司 | 一种处理共享缓存同步消息的方法、系统、设备及介质 |
CN112000462A (zh) * | 2020-07-14 | 2020-11-27 | 张世民 | 一种基于共享外设资源的数据处理方法及装置 |
US20220164288A1 (en) * | 2020-11-24 | 2022-05-26 | Arm Limited | Configurable Cache Coherency Controller |
-
2022
- 2022-12-13 CN CN202211593112.3A patent/CN116107771A/zh active Pending
-
2023
- 2023-09-01 WO PCT/CN2023/116416 patent/WO2024124977A1/zh unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017020743A1 (zh) * | 2015-08-06 | 2017-02-09 | 阿里巴巴集团控股有限公司 | 缓存数据共享的方法及设备 |
CN111221826A (zh) * | 2020-01-04 | 2020-06-02 | 苏州浪潮智能科技有限公司 | 一种处理共享缓存同步消息的方法、系统、设备及介质 |
CN112000462A (zh) * | 2020-07-14 | 2020-11-27 | 张世民 | 一种基于共享外设资源的数据处理方法及装置 |
US20220164288A1 (en) * | 2020-11-24 | 2022-05-26 | Arm Limited | Configurable Cache Coherency Controller |
Also Published As
Publication number | Publication date |
---|---|
WO2024124977A1 (zh) | 2024-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6088769A (en) | Multiprocessor cache coherence directed by combined local and global tables | |
JP5116418B2 (ja) | マルチプロセッサ・データ処理システムにおいて、データを処理する方法、マルチプロセッサ・データ処理システムのための処理ユニット、およびデータ処理システム | |
EP0735480B1 (en) | Cache coherent computer system that minimizes invalidation and copyback operations | |
US5802582A (en) | Explicit coherence using split-phase controls | |
US9170946B2 (en) | Directory cache supporting non-atomic input/output operations | |
US8176259B2 (en) | System and method for resolving transactions in a cache coherency protocol | |
US6931496B2 (en) | Data-maintenance method of distributed shared memory system | |
JP4733932B2 (ja) | マルチプロセッサシステム及びマルチプロセッサシステムのキャッシュ一貫性維持方法 | |
EP0834130A1 (en) | Reducing cache snooping overhead in a multilevel cache system with multiple bus masters and a shared level two cache | |
US20080244189A1 (en) | Method, Apparatus, System and Program Product Supporting Directory-Assisted Speculative Snoop Probe With Concurrent Memory Access | |
US20060259705A1 (en) | Cache coherency in a shared-memory multiprocessor system | |
US20080047005A1 (en) | Access monitoring method and device for shared memory | |
JPH0950400A (ja) | マルチプロセッサシステム | |
JP2022528630A (ja) | 共有メモリにアクセスするためのシステム、方法、及び装置 | |
US20140297966A1 (en) | Operation processing apparatus, information processing apparatus and method of controlling information processing apparatus | |
US6918009B1 (en) | Cache device and control method for controlling cache memories in a multiprocessor system | |
KR101858597B1 (ko) | 프로세싱 인 메모리 시스템의 연산할 작업, 연산할 데이터 및 연산 결과 데이터 전달 방법 및 프로세싱 인 메모리 시스템 | |
EP2568379B1 (en) | Method for preventing node controller deadlock and node controller | |
JPH07152647A (ja) | 共有メモリマルチプロセッサ | |
US8397029B2 (en) | System and method for cache coherency in a multiprocessor system | |
CN110083548B (zh) | 数据处理方法及相关网元、设备、系统 | |
US6678800B1 (en) | Cache apparatus and control method having writable modified state | |
JPH04336641A (ja) | 処理システムにおける使用のためのデータキャッシュおよび方法 | |
CN116107771A (zh) | 缓存状态记录方法、数据访问方法及相关装置、设备 | |
US9081685B2 (en) | Data processing apparatus and method for handling performance of a cache maintenance operation |
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 |