CN115857834A - 一种用于检查针对存储器的读写一致性的方法和装置 - Google Patents
一种用于检查针对存储器的读写一致性的方法和装置 Download PDFInfo
- Publication number
- CN115857834A CN115857834A CN202310014806.5A CN202310014806A CN115857834A CN 115857834 A CN115857834 A CN 115857834A CN 202310014806 A CN202310014806 A CN 202310014806A CN 115857834 A CN115857834 A CN 115857834A
- Authority
- CN
- China
- Prior art keywords
- write
- queue
- read
- request command
- read 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000004044 response Effects 0.000 claims abstract description 68
- 238000004590 computer program Methods 0.000 claims abstract description 10
- 238000010586 diagram Methods 0.000 description 12
- 238000012795 verification Methods 0.000 description 12
- 230000003542 behavioural effect Effects 0.000 description 2
Images
Classifications
-
- 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
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请的实施例提供了一种用于检查针对存储器的读写一致性的方法、装置、处理设备及计算机可读存储介质和计算机程序产品。通过将存储器响应于读请求命令而输出的反馈数据和目标数据进行比较,响应于反馈数据与至少一个目标数据中的任一目标数据匹配而确认针对存储器的读写一致性通过。
Description
技术领域
本申请涉及读写一致性检查的技术领域,更具体地,涉及用于检查针对存储器的读写一致性的方法和装置。
背景技术
在存储器中,对于输入请求(例如,读请求和/或写请求)的执行顺序可能是顺序的,也可能是乱序的,即,执行顺序可能是不固定的,例如对于同一地址的五个输入请求A(写)、B(写)、C(读)、D(写)和E(读),其执行顺序例如可能是ABCDE、ACBED、BCADE……等任意顺序,这可能导致难以实现针对存储器的读写一致性检查。
由于针对存储器的读请求命令和写请求命令的执行顺序的不确定性,因此针对存储器的读写一致性检查难以实现。现有技术中还没有很好的方案来实现针对存储器的乱序读写验证。
发明内容
本申请提出了一种通用的检查针对存储器的读写一致性的方法。通过将存储器响应于读请求命令而输出的反馈数据和与所述读请求地址一致的写请求地址所对应的写入数据进行比较,以确认针对所述存储器的读写一致性。此外,本申请还通过将写请求队列划分为写请求完成队列和写请求未完成队列,并借助更新机制,删除了更老的数据,缩小了后续针对该地址的读请求命令的读写一致性检查的范围,从而提高了读写一致性检查效率并使检查结果更加准确。
本申请的实施例提供了一种用于检查针对存储器的读写一致性的方法,其特征在于,所述方法包括:获取提供给所述存储器的输入请求序列,所述输入请求序列包括至少一个读请求命令和至少一个写请求命令,所述至少一个读请求命令中的每个读请求命令包括读请求地址,所述至少一个写请求命令中的每个写请求命令包括写请求地址和写入数据;根据所述读请求命令中的读请求地址从与所述至少一个写请求命令对应的至少一个写入数据中获取至少一个目标数据,所述目标数据是所述至少一个写入数据中与所述读请求地址一致的写请求地址所对应的写入数据;以及将所述存储器响应于所述读请求命令而输出的反馈数据和所述目标数据进行比较,响应于所述反馈数据与所述至少一个目标数据中的任一目标数据匹配而确认针对所述存储器的读写一致性通过。
在一些实施例中,所述方法还包括:响应于从所述存储器获取到写完成标识而从所述输入请求序列中的至少一个写请求命令中确定出与所述写完成标识对应的写请求命令作为已完成写请求命令,所述写完成标识指示基于所述写请求命令针对所述存储器的写请求操作的完成;以及存储所述已完成写请求命令中的写请求地址和对应的写入数据形成第一队列;其中所述根据所述读请求命令中的读请求地址从与所述至少一个写请求命令对应的至少一个写入数据中获取至少一个目标数据包括:根据所述读请求地址从所述第一队列中获取所述至少一个目标数据。
在一些实施例中,所述方法还包括:存储所述输入请求序列中的至少一个写请求命令中各个写请求命令中的写请求地址和对应的写入数据形成第二队列;响应于从所述存储器获取到写完成标识而从所述第二队列中的各个写请求命令中确定出与所述写完成标识对应的写请求命令作为已完成写请求命令,并存储所述已完成写请求命令中的写请求地址和对应的写入数据形成第一队列,所述写完成标识指示基于所述写请求命令针对所述存储器的写请求操作的完成;以及其中根据所述读请求命令中的读请求地址从与所述至少一个写请求命令对应的至少一个写入数据中获取至少一个目标数据包括:根据所述读请求地址从所述第一队列和所述第二队列中获取所述至少一个目标数据。
在一些实施例中,所述方法还包括:判断所述读请求命令是否是针对所述读请求地址的首次读请求命令;响应于所述读请求命令是针对所述读请求地址的首次读请求命令,确定所述第一队列是否包括与所述读请求地址一致的写请求地址;响应于所述第一队列不包括与所述读请求地址一致的写请求地址,将所述读请求地址添加至所述第一队列并在所述第一队列中存储针对所述读请求地址的初始值,使得所述至少一个目标数据包括所述初始值。
在一些实施例中,所述方法还包括:存储所述至少一个读请求命令形成第三队列;针对所述第三队列中的每个读请求命令,判断所述第三队列是否包括针对所述读请求命令中的读请求地址的另外的读请求命令;以及响应于所述第三队列不包括针对所述读请求地址的另外的读请求命令,从第一队列中删除与所述反馈数据不匹配的目标数据所对应的写请求命令。
在一些实施例中,所述存储所述至少一个读请求命令形成第三队列包括:针对所述第三队列中的每个读请求命令,获取与所述读请求命令的读请求地址一致的写请求地址对应的写请求命令在第一队列中的位置;以及在所述读请求命令中存储获取的所述与所述读请求命令的读请求地址一致的写请求地址对应的写请求命令在第一队列中的位置;并且所述响应于所述第三队列不包括针对所述读请求地址的另外的读请求命令,从第一队列中删除与所述反馈数据不匹配的目标数据所对应的写请求命令包括:响应于所述第三队列不包括针对所述读请求地址的另外的读请求命令,从第一队列中删除与所述反馈数据不匹配的且位置已经被存储的目标数据所对应的写请求命令。
在一些实施例中,所述获取提供给所述存储器的输入请求序列包括:从第三队列中删除已经执行读写一致性检查的所述读请求命令。
在一些实施例中,所述获取提供给所述存储器的输入请求序列还包括:从所述第二队列中删除与所述写完成标识对应的写请求命令以更新所述第二队列。
在一些实施例中,所述方法还包括:响应于所述反馈数据与所述至少一个目标数据中的所有目标数据不匹配而报告针对所述存储器的读写一致性的错误。
本申请的另一实施例提供了一种用于检查针对存储器的读写一致性的装置,其特征在于,所述装置包括:输入请求序列获取模块,其被配置成获取提供给所述存储器的输入请求序列,所述输入请求序列包括至少一个读请求命令和至少一个写请求命令,所述至少一个读请求命令中的每个读请求命令包括读请求地址,所述至少一个写请求命令中的每个写请求命令包括写请求地址和写入数据;目标数据获取模块,其被配置成根据所述读请求命令中的读请求地址从与所述至少一个写请求命令对应的至少一个写入数据中获取至少一个目标数据,所述目标数据是所述至少一个写入数据中与所述读请求地址一致的写请求地址所对应的写入数据;以及读写一致性确定模块,其被配置成将所述存储器响应于所述读请求命令而输出的反馈数据和所述目标数据进行比较,响应于所述反馈数据与所述至少一个目标数据中的任一目标数据匹配而确认针对所述存储器的读写一致性通过。
在一些实施例中,所述输入请求序列获取模块包括:第一存储单元,其被配置成响应于从所述存储器获取到写完成标识而从所述输入请求序列中的至少一个写请求命令中确定出与所述写完成标识对应的写请求命令作为已完成写请求命令,并存储所述已完成写请求命令中的写请求地址和对应的写入数据形成第一队列,所述写完成标识指示基于所述写请求命令针对所述存储器的写请求操作的完成;其中目标数据获取模块被配置成根据所述读请求地址从所述第一队列中获取所述至少一个目标数据。
在一些实施例中,所述输入请求序列获取模块包括:第二存储单元,其被配置成存储所述输入请求序列中的至少一个写请求命令中各个写请求命令中的写请求地址和对应的写入数据形成第二队列;第一存储单元,其被配置成响应于从所述存储器获取到写完成标识而从所述第二队列中的各个写请求命令中确定出与所述写完成标识对应的写请求命令作为已完成写请求命令,并存储所述已完成写请求命令中的写请求地址和对应的写入数据形成第一队列,所述写完成标识指示基于所述写请求命令针对所述存储器的写请求操作的完成;其中目标数据获取模块被配置成根据所述读请求地址从所述第一队列和所述第二队列中获取所述至少一个目标数据。
在一些实施例中,所述目标数据获取模块包括:判断单元,其被配置成:判断所述读请求命令是否是针对所述读请求地址的首次读请求命令;响应于所述读请求命令是针对所述读请求地址的首次读请求命令,确定所述第一队列是否包括与所述读请求地址一致的写请求地址;所述目标数据获取模块还包括:初始化单元,其被配置成响应于所述第一队列不包括与所述读请求地址一致的写请求地址,将所述读请求地址添加至所述第一队列并在所述第一队列中存储针对所述读请求地址的初始值,使得所述至少一个目标数据包括所述初始值。
在一些实施例中,所述输入请求序列获取模块包括第三存储单元,其被配置成存储所述至少一个读请求命令形成第三队列;所述装置还包括更新模块,其被配置成:针对所述第三队列中的每个读请求命令,判断所述第三队列是否包括针对所述读请求命令中的读请求地址的另外的读请求命令;以及响应于所述第三队列不包括针对所述读请求地址的另外的读请求命令,从第一队列中删除与所述反馈数据不匹配的目标数据所对应的写请求命令。
在一些实施例中,所述第三存储单元被配置成:针对所述第三队列中的每个读请求命令,获取与所述读请求命令的读请求地址一致的写请求地址对应的写请求命令在第一队列中的位置;以及在所述读请求命令中存储获取的所述与所述读请求命令的读请求地址一致的写请求地址对应的写请求命令在第一队列中的位置;并且所述更新模块被配置成:响应于所述第三队列不包括针对所述读请求地址的另外的读请求命令,从第一队列中删除与所述反馈数据不匹配的且位置已经被存储的目标数据所对应的写请求命令。
在一些实施例中,所述更新模块被配置成从第三队列中删除已经执行读写一致性检查的所述读请求命令。
在一些实施例中,所述更新模块被配置成从所述第二队列中删除与所述写完成标识对应的写请求命令以更新所述第二队列。
在一些实施例中,所述读写一致性确定模块被配置成响应于所述反馈数据与所述至少一个目标数据中的所有目标数据不匹配而报告针对所述存储器的读写一致性的错误。
本申请的另一实施例提供了一种处理设备,包括存储器、以及前述用于检查针对存储器的读写一致性的装置的实施例中任一实施例所述的装置,其中所述装置被配置成检查针对所述存储器的读写一致性。
本申请的另一实施例提供了一种计算机可读存储介质,其存储有计算机可执行指令,当所述计算机可执行指令被执行时,执行如前述的用于检查针对存储器的读写一致性的方法的实施例中任一实施例所述的方法。
本申请的另一实施例提供了一种计算机程序产品,包括计算机程序,其中所述计算机程序被处理器执行时实现前述的用于检查针对存储器的读写一致性的方法的实施例中任一实施例所述的方法的步骤。
以上概述了本申请的一些实施例,基于一些实施例的组合以及不同实施例中特征的组合可以获得另外的不同实施例,这些不同实施例同样属于本申请的保护范围。
根据下文描述的实施例,本申请的这些和其他优点将变得清楚,并且参考下文描述的实施例来阐明本申请的这些和其他优点。
附图说明
现在将更详细并且参考附图来描述本申请的实施例,其中:
图1示意性地图示了用于检查针对存储器的读写一致性的装置的应用环境;
图2图示了根据本申请的一个实施例的用于检查针对存储器的读写一致性的方法的流程图;
图3图示了根据本申请的另一实施例的用于检查针对存储器的读写一致性的方法的流程图;
图4图示了根据本申请的另一实施例的用于检查针对存储器的读写一致性的方法的流程图;
图5图示了根据本申请的一个实施例的用于检查针对存储器的读写一致性的装置的框图;
图6图示了根据本申请的另一实施例的用于检查针对存储器的读写一致性的装置的框图;以及
图7图示了根据本申请的另一实施例的用于检查针对存储器的读写一致性的装置的框图。
具体实施方式
下面将结合本申请中的附图,对本申请中的技术方案进行清楚和完整的描述。所描述的实施例仅仅是本申请的一部分实施例,而不是全部实施例。基于本申请的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例都属于本申请保护的范围。
当对存储器进行乱序读写时,对于包括读请求命令和写请求命令的输入请求的执行顺序是不确定的,其并未严格按照接收到所述输入请求的时间顺序来执行,因此可能导致针对存储器(例如,乱序读写缓存等)的读写一致性检查难以实现。
图1示意性地图示了用于检查针对存储器的读写一致性的装置的应用环境。该应用环境包括存储器101、用于检查针对存储器的读写一致性的装置102。如图1中所示,该用于检查针对存储器的读写一致性的装置所接收的输入例如有以下3个:
(1)输入请求序列:该输入请求序列包括读请求命令和/或写请求命令。每当输入请求序列从设备(比如主设备)发送到存储器时,该输入请求序列同时也被发送到所述用于检查针对存储器的读写一致性的装置;
(2)写完成标识:当写请求命令的写入数据已经被写入到存储器中,即该写请求命令已经执行完成时,存储器将与该写请求命令的ID标识对应的写完成标识发送到所述用于检查针对存储器的读写一致性的装置;以及
(3)反馈数据:即存储器响应于读请求命令而输出的数据。在存储器为缓存的情况下,存储器响应于读请求命令而输出的数据可以是该存储器中存储的数据,或者可以是从下游行为级模型获取的数据。下游行为级模型例如可以是各级存储器。在存储器为非缓存的存储器的情况下,存储器响应于读请求命令而输出的数据可以是该存储器中存储的数据。
每当存储器响应于读请求命令而执行读取操作并将反馈数据(即读取到的数据)输出给发送输入请求的设备(例如主设备)时,该反馈数据也被发送到所述用于检查针对存储器的读写一致性的装置。
所述用于检查针对存储器的读写一致性的装置获取提供给存储器的输入请求序列;根据输入请求序列中的读请求命令中的读请求地址从与至少一个写请求命令对应的至少一个写入数据中获取至少一个目标数据,所述目标数据是所述至少一个写入数据中与所述读请求地址一致的写请求地址所对应的写入数据;并且将存储器响应于读请求命令而输出的反馈数据和目标数据进行比较,响应于所述反馈数据与所述至少一个目标数据中的任一目标数据匹配而确认针对所述存储器的读写一致性通过。
图2图示了根据本申请的一个实施例的用于检查针对存储器的读写一致性的方法的流程图。如图2所示,该方法可包括如下步骤:S210、获取提供给所述存储器的输入请求序列,所述输入请求序列包括至少一个读请求命令和至少一个写请求命令,所述至少一个读请求命令中的每个读请求命令包括读请求地址,所述至少一个写请求命令中的每个写请求命令包括写请求地址和写入数据;S220、根据所述读请求命令中的读请求地址从与所述至少一个写请求命令对应的至少一个写入数据中获取至少一个目标数据,所述目标数据是所述至少一个写入数据中与所述读请求地址一致的写请求地址所对应的写入数据;以及S230、将所述存储器响应于所述读请求命令而输出的反馈数据和所述目标数据进行比较,响应于所述反馈数据与所述至少一个目标数据中的任一目标数据匹配而确认针对所述存储器的读写一致性通过。
在一些实施例中,主设备向存储器发送一系列的输入请求,以便向存储器发起读请求操作或者写请求操作。由于在存储器中读写请求操作的执行不一定按接收到该读写请求命令的顺序来执行,因此先接收到的读写请求命令也可能比后接收到的读写请求命令更晚执行。对于某个读请求命令而言,其可能读取到更早接收到的写请求命令所写入的数据,也可能读取到更晚接收到的写请求命令所写入的数据。换言之,该读请求命令可能读取到在其所读取的存储单元的地址中写入过的所有数据。
为了检查针对存储器的读写一致性,本申请中设置了用于检查针对存储器的读写一致性的装置。当输入请求序列被发送到存储器时,该输入请求序列同时被发送到用于检查针对存储器的读写一致性的装置。在步骤S210中,该装置从主设备获取提供给存储器的输入请求序列。在该输入请求序列中,可包括至少一个读请求命令和至少一个写请求命令。所述至少一个读请求命令中的每个读请求命令包括读请求地址,所述至少一个写请求命令中的每个写请求命令包括写请求地址和写入数据。
在这些实施例中,通过根据读请求命令中的读请求地址从写请求命令中获取与该读请求地址一致的写请求地址所对应的写入数据,并将针对该读请求命令所读取到的数据(从存储器的角度来看,即存储器响应于该读请求命令而输出的反馈数据)与所述写入数据进行比较;当针对该读请求命令所读取到的数据和与该读请求地址一致的写请求地址所对应的写入数据中的任一写入数据匹配时,即可确认针对该存储器的读写一致性通过。
在这些实施例中,由于考虑了与该读请求地址一致的写请求地址所对应的所有写入数据,即该读请求命令所读取到的数据与在该地址写入过的所有数据,因此,能够实现针对存储器的乱序读写验证,确定读写一致性验证结果。
在一些实施例中,该方法还可以包括:响应于从所述存储器获取到写完成标识而从所述输入请求序列中的至少一个写请求命令中确定出与所述写完成标识对应的写请求命令作为已完成写请求命令,并存储所述已完成写请求命令中的写请求地址和对应的写入数据形成第一队列,所述写完成标识指示基于所述写请求命令针对所述存储器的写请求操作的完成。在一些实施例中,该方法还可以包括:根据所述读请求地址从所述第一队列中获取所述至少一个目标数据。
在这些实施例中,通过将与接收到的写完成标识对应的写请求命令作为已完成写请求命令,并存储所述已完成写请求命令,从而构建写请求完成队列,即第一队列,在该第一队列中的写请求命令都已经执行完成。当检查读写一致性时,根据读请求地址从该第一队列中获取与该读请求地址一致的写请求地址的写入数据作为目标数据,并将获取的目标数据与所述读请求命令而输出的反馈数据进行比较,从而可以在确保读写一致性检查结果高准确性的情况下,减少比较的次数。
在实际应用中,由于针对存储器的读写操作可能是乱序执行的,因此,该读请求命令可能读取到更晚接收到的写请求命令的写入数据,也就是说,该读请求命令有可能读取到当前实际已经完成写入操作但尚未接收到相应的写完成标识的写请求命令的写入数据。为了进一步提高读写一致性检查结果的准确性,在一些实施例中,不仅从第一队列(即已经接收到对应的写完成标识的写请求命令形成的队列)中获取目标数据进行比较,还从第二队列(其中可能包括当前实际已经完成写入操作但尚未接收到相应的写完成标识的写请求命令)中获取目标数据进行比较,以实现针对存储器的乱序读写验证。
图3图示了根据本申请的另一实施例的用于检查针对存储器的读写一致性的方法的流程图。如图3所示的用于检查针对存储器的读写一致性的方法的实施例包括步骤S311至步骤S330,其中步骤S311至步骤S313是对图2中的步骤S210的细化和扩展,而步骤S320是对图2中的步骤S220的进一步限定。在步骤S311中,获取提供给所述存储器的输入请求序列,所述输入请求序列包括至少一个读请求命令和至少一个写请求命令,所述至少一个读请求命令中的每个读请求命令包括读请求地址,所述至少一个写请求命令中的每个写请求命令包括写请求地址和写入数据。该步骤与图2中的步骤S210类似。
在该实施例中,该方法还可以包括:S312、存储所述输入请求序列中的至少一个写请求命令中各个写请求命令中的写请求地址和对应的写入数据形成第二队列;以及S313、响应于从所述存储器获取到写完成标识而从所述第二队列中的各个写请求命令中确定出与所述写完成标识对应的写请求命令作为已完成写请求命令,并存储所述已完成写请求命令中的写请求地址和对应的写入数据形成第一队列,所述写完成标识指示基于所述写请求命令针对所述存储器的写请求操作的完成。在该实施例中,该方法还可以包括:S320、根据所述读请求地址从所述第一队列和所述第二队列中获取所述至少一个目标数据。
在步骤S312中,通过将接收到的写请求命令的写请求地址和对应的写入数据进行存储,形成第二队列,即写请求未完成队列。在步骤S313中,通过将与接收到的写完成标识对应的写请求命令作为已完成写请求命令,并存储所述已完成写请求命令,从而构建写请求完成队列,即第一队列,在第一队列中的写请求命令都已经执行完成。在步骤S320中,根据读请求地址从第一队列和第二队列中获取与该读请求地址一致的写请求地址的写入数据作为目标数据。在该实施例中,考虑了与该读请求地址一致的写请求地址所对应的所有写入数据,即该读请求命令所读取到的数据与在该地址写入过的所有数据,从而实现了针对存储器的乱序读写验证。
由于存储器读写顺序的不确定性,因此对于某个地址的存储单元而言,有可能还没有执行针对该地址的写请求命令的写入操作,却已经执行针对该地址的读请求命令的读取操作。在这种情况下,该读请求命令所读取的数据为初始化数据。然而,由于还没有执行针对该地址的写请求命令的写入操作,因此在写请求完成队列(即第一队列)中可能还没有针对该地址的写请求命令,在写请求未完成队列(即第二队列)中虽然可能有针对该地址的写请求命令,但是其对应的写入数据并非初始化数据。
在这种情况下,为了实现针对存储器的乱序读写验证,在获取目标数据进行比较时可以先执行初始化操作,使得至少一个目标数据包括初始值。
在一些实施例中,该方法还可以包括:判断所述读请求命令是否是针对所述读请求地址的首次读请求命令;响应于所述读请求命令是针对所述读请求地址的首次读请求命令,确定所述第一队列是否包括与所述读请求地址一致的写请求地址;响应于所述第一队列不包括与所述读请求地址一致的写请求地址,将所述读请求地址添加至所述第一队列并在所述第一队列中存储针对所述读请求地址的初始值,使得所述至少一个目标数据包括所述初始值。
在这些实施例中,对于针对读请求地址的首次读取操作,如果在第一队列(即写请求完成队列)里不包括与所述读请求地址一致的写请求地址,则在第一队列中添加一个写请求命令,其中,添加的写请求命令的写请求地址为所述读请求命令中的读请求地址,并且添加的写请求命令的写入数据为初始化数据,使得至少一个目标数据包括初始值,从而实现了针对存储器的乱序读写验证。
图4图示了根据本申请的另一实施例的用于检查针对存储器的读写一致性的方法的流程图。如图4所示的用于检查针对存储器的读写一致性的方法的实施例包括步骤S411至步骤S460,其中步骤S411至步骤S413与图2中所示的步骤S311至步骤S313类似,步骤S420至步骤S430与图2中所示的步骤S320至步骤S330类似。除此之外,所述方法还可以包括:S414、存储所述至少一个读请求命令形成第三队列。图4所示的实施例的方法还可以包括:S440、针对所述第三队列中的每个读请求命令,判断所述第三队列是否包括针对所述读请求命令中的读请求地址的另外的读请求命令;以及S450、响应于所述第三队列不包括针对所述读请求地址的另外的读请求命令,从第一队列中删除与所述反馈数据不匹配的目标数据所对应的写请求命令。
在步骤S414中,通过存储所述至少一个读请求命令从而形成第三队列,即读请求队列。在步骤S440中,判断第三队列(即读请求队列)中是否还包括针对该读请求地址的其他的读请求命令,并且在步骤S450中,当第三队列不包括针对所述读请求地址的另外的读请求命令,更新第一队列,即从第一队列中删除与所述反馈数据不匹配的目标数据所对应的写请求命令。
在本次读请求命令执行完成之后,再接收到的读请求命令必然比本次读请求命令更晚执行,因为本次读请求命令已经执行完成之后才收到后面的读请求,因此,在本次读请求命令执行完成之后,且在对第一队列(即写请求完成队列)进行更新之前,如果第三队列(即读请求队列)中不包括针对所述读请求地址的另外的读请求命令,则表明本次读请求命令读取的数据是最新的,此后如果再有针对该地址的新的读请求命令进入读请求队列中,这些读请求是不会读取到那些更老的数据的,因此,此时可以将第一队列中的那些老的数据删除。在这些实施例中,通过对第一队列进行更新,使得可以缩小后续针对所述地址的读请求命令的读写一致性检查的范围,并且进一步提高检查效率并使检查结果更加准确。
在这些实施例中,可能存在这样的情形,在针对读请求地址的读请求命令的读取操作完成后但尚未对写请求完成队列进行更新操作期间,针对与该读请求地址一致的写请求地址的写请求命令的写入操作刚刚执行完成并且被存储在写请求完成队列中。这些刚刚执行完成的写入操作的写入数据比已经完成的针对该相同地址的读请求命令所读取的数据新。
为了避免在更新写请求完成队列时将这些新的写入数据删除,在一些实施例中,上述的步骤S414——存储所述至少一个读请求命令形成第三队列可包括:针对所述第三队列中的每个读请求命令,获取与所述读请求命令的读请求地址一致的写请求地址对应的写请求命令在第一队列中的位置;以及在所述读请求命令中存储获取的所述与所述读请求命令的读请求地址一致的写请求地址对应的写请求命令在第一队列中的位置。在一些实施例中,上述的步骤S450——所述响应于所述第三队列不包括针对所述读请求地址的另外的读请求命令,从第一队列中删除与所述反馈数据不匹配的目标数据所对应的写请求命令可包括:响应于所述第三队列不包括针对所述读请求地址的另外的读请求命令,从第一队列中删除与所述反馈数据不匹配的且位置已经被存储的目标数据所对应的写请求命令。
在接收到读请求命令但尚未执行所述读请求命令之前,就获取写请求完成队列中的且与该读请求地址一致的写请求地址的写请求命令在写请求完成队列中的位置,并将其存储在读请求命令中。存储这些写请求命令在写请求完成队列中的位置是为了将来满足更新条件时删除这些写请求命令。之所以在所述读请求执行之前就存储所述位置,是为了确保这些写请求命令在所述读请求命令执行之前就已经执行完成写入操作,确保这些写请求命令的写入数据不会比所述读请求命令所读取的数据新,从而确保写请求完成队列中被删除的写请求命令对应的写入数据都是老的数据。
由于输入请求序列是不断地接收的,因此,可能不断地接收到读请求命令。随着时间的推移,第三队列可能将变得越来越冗长,从而占用了大量的存储空间,并且使得在根据反馈数据来获取对应的读请求地址时耗费大量的时间。为了节省存储空间,可以在执行完成相应的读请求命令后,对第三队列进行更新。
在一些实施例中,上述的步骤S210——获取提供给所述存储器的输入请求序列可包括:从第三队列中删除已经执行读写一致性检查的所述读请求命令。通过对第三队列的更新操作,使得已经执行了读写一致性检查的读请求命令被及时删除,从而节省存储空间,并减少此后执行读写一致性检查所耗费的时间。
类似地,写请求命令不断地被存储到第二队列中,可能导致第二队列过于冗长,从而占用大量空间。为了进一步提高读写一致性检查执行的效率,以及进一步提高读写一致性检查结果的准确性,可以从第二队列中删除与所述写完成标识对应的写请求命令,以更新所述第二队列。
在一些实施例中,上述的步骤S210——获取提供给所述存储器的输入请求序列可包括:从所述第二队列中删除与所述写完成标识对应的写请求命令以更新所述第二队列。
在一些实施例中,所述方法还包括:响应于所述反馈数据与所述至少一个目标数据中的所有目标数据不匹配而报告针对所述存储器的读写一致性的错误。
图5图示了根据本申请的一个实施例的用于检查针对存储器的读写一致性的装置的框图。如图5所示,装置500包括:输入请求序列获取模块510,其被配置成获取提供给所述存储器的输入请求序列,所述输入请求序列包括至少一个读请求命令和至少一个写请求命令,所述至少一个读请求命令中的每个读请求命令包括读请求地址,所述至少一个写请求命令中的每个写请求命令包括写请求地址和写入数据;目标数据获取模块520,其被配置成根据所述读请求命令中的读请求地址从与所述至少一个写请求命令对应的至少一个写入数据中获取至少一个目标数据,所述目标数据是所述至少一个写入数据中与所述读请求地址一致的写请求地址所对应的写入数据;以及读写一致性确定模块530,其被配置成将所述存储器响应于所述读请求命令而输出的反馈数据和所述目标数据进行比较,响应于所述反馈数据与所述至少一个目标数据中的任一目标数据匹配而确认针对所述存储器的读写一致性通过。
在该实施例中,通过输入请求序列获取模块510从主设备处获取提供给存储器的包括读请求命令和写请求命令的输入请求序列,通过目标数据获取模块520从写入数据中获取与读请求地址一致的写请求地址所对应的写入数据,然后通过读写一致性确定模块530将存储器响应于所述读请求命令而输出的反馈数据和目标数据进行比较。当所述反馈数据与所述至少一个目标数据中的任一目标数据匹配而确认针对所述存储器的读写一致性通过。
在该实施例中,考虑了与该读请求地址一致的写请求地址所对应的所有写入数据,即该读请求命令所读取到的数据与在该地址写入过的所有数据,从而实现了针对存储器的乱序读写验证。
在一些实施例中,所述输入请求序列获取模块510进一步包括:第一存储单元,其被配置成响应于从所述存储器获取到写完成标识而从所述输入请求序列中的至少一个写请求命令中确定出与所述写完成标识对应的写请求命令作为已完成写请求命令,并存储所述已完成写请求命令中的写请求地址和对应的写入数据形成第一队列,所述写完成标识指示基于所述写请求命令针对所述存储器的写请求操作的完成。在这些实施例中,构建了第一队列,即写请求完成队列,在该第一队列中的写请求命令都已经执行完成。在一些实施例中,目标数据获取模块520被配置成根据所述读请求地址从所述第一队列中获取所述至少一个目标数据。
在这些实施例中,当检查读写一致性时,根据读请求地址从该第一队列中获取与该读请求地址一致的写请求地址的写入数据作为目标数据,并将获取的目标数据与所述读请求命令而输出的反馈数据进行比较,从而可以在确保读写一致性检查结果高准确性的情况下,减少比较的次数。
为了进一步提高读写一致性检查结果的准确性,在一些实施例中,不仅从第一队列(即已经接收到对应的写完成标识的写请求命令形成的队列)中获取目标数据进行比较,还从第二队列(其中可能包括当前实际已经完成写入操作但尚未接收到相应的写完成标识的写请求命令)中获取目标数据进行比较,以实现针对存储器的乱序读写验证。
图6图示了根据本申请的另一实施例的用于检查针对存储器的读写一致性的装置的框图。如图6所示,装置600包括输入请求序列获取模块610、目标数据获取模块620以及读写一致性确定模块630,其中,目标数据获取模块620和读写一致性确定模块630与图5中的目标数据获取模块520和读写一致性确定模块530类似。在该实施例中,所述输入请求序列获取模块610可包括:第二存储单元612,其被配置成存储所述输入请求序列中的至少一个写请求命令中各个写请求命令中的写请求地址和对应的写入数据形成第二队列;以及第一存储单元611,其被配置成响应于从所述存储器获取到写完成标识而从所述第二队列中的各个写请求命令中确定出与所述写完成标识对应的写请求命令作为已完成写请求命令,并存储所述已完成写请求命令中的写请求地址和对应的写入数据形成第一队列,所述写完成标识指示基于所述写请求命令针对所述存储器的写请求操作的完成。在一些实施例中,目标数据获取模块620被配置成根据所述读请求地址从所述第一队列和所述第二队列中获取所述至少一个目标数据。
在这些实施例中,通过第二存储单元612存储第二队列,即写请求未完成队列,以及通过第一存储单元611存储第一队列,即写请求完成队列,并且通过目标数据获取模块620根据所述读请求地址从所述第一队列和所述第二队列中获取所述至少一个目标数据进行比较。在这些实施例中,考虑了与该读请求地址一致的写请求地址所对应的所有写入数据,即该读请求命令所读取到的数据与在该地址写入过的所有数据,从而实现了针对存储器的乱序读写验证。
在一些实施例中,所述目标数据获取模块520可包括:判断单元,其被配置成:判断所述读请求命令是否是针对所述读请求地址的首次读请求命令;以及响应于所述读请求命令是针对所述读请求地址的首次读请求命令,确定所述第一队列是否包括与所述读请求地址一致的写请求地址。所述目标数据获取模块520还可包括:初始化单元,其被配置成响应于所述第一队列不包括与所述读请求地址一致的写请求地址,将所述读请求地址添加至所述第一队列并在所述第一队列中存储针对所述读请求地址的初始值,使得所述至少一个目标数据包括所述初始值。
在这些实施例中,在获取目标数据进行比较时先执行初始化操作,使得至少一个目标数据包括初始值。在这些实施例中,对于针对读请求地址的首次读取操作,如果在第一队列(即写请求完成队列)里不包括与所述读请求地址一致的写请求地址,则在第一队列中添加一个写请求命令,其中,添加的写请求命令的写请求地址为所述读请求命令中的读请求地址,并且添加的写请求命令的写入数据为初始化数据,使得至少一个目标数据包括初始值,从而实现了针对存储器的乱序读写验证。
图7图示了根据本申请的另一实施例的用于检查针对存储器的读写一致性的装置的框图。如图7所示,装置700包括输入请求序列获取模块710、目标数据获取模块720、读写一致性确定模块730以及更新模块740,其中,目标数据获取模块720和读写一致性确定模块730与图6中的目标数据获取模块620和读写一致性确定模块630类似。在该实施例中,所述输入请求序列获取模块710可包括:第三存储单元713,其被配置成存储所述至少一个读请求命令形成第三队列。在一些实施例中,根据本申请的另一实施例的用于检查针对存储器的读写一致性的装置还可包括:更新模块740,其被配置成:针对所述第三队列中的每个读请求命令,判断所述第三队列是否包括针对所述读请求命令中的读请求地址的另外的读请求命令;以及响应于所述第三队列不包括针对所述读请求地址的另外的读请求命令,从第一队列中删除与所述反馈数据不匹配的目标数据所对应的写请求命令。
在该实施例中,在对第一队列(即写请求完成队列)进行更新之前,先判断第三队列(即读请求队列)是否包括针对所述读请求命令中的读请求地址的另外的读请求命令,如果第三队列中不包括针对所述读请求地址的另外的读请求命令,则表明本次读请求命令读取的数据是最新的,此后如果再有针对该地址的新的读请求命令进入读请求队列中,这些新的读请求是不会读取到那些更老的数据的。因此,此时可以将第一队列中的那些老的数据删除。
在一些实施例中,所述第三存储单元713被配置成:针对所述第三队列中的每个读请求命令,获取与所述读请求命令的读请求地址一致的写请求地址对应的写请求命令在第一队列中的位置;以及在所述读请求命令中存储获取的所述与所述读请求命令的读请求地址一致的写请求地址对应的写请求命令在第一队列中的位置。在一些实施例中,所述更新模块740被配置成:响应于所述第三队列不包括针对所述读请求地址的另外的读请求命令,从第一队列中删除与所述反馈数据不匹配的且位置已经被存储的目标数据所对应的写请求命令。
在这些实施例中,通过在更早的时间,比如在接收到读请求命令但尚未执行所述读请求命令之前,就获取写请求完成队列中的且与该读请求地址一致的写请求地址的写请求命令在写请求完成队列中的位置,并将其存储在读请求命令中,可以确保这些写请求命令在所述读请求命令执行之前就已经执行完成写入操作,从而确保写请求完成队列中被删除的写请求命令对应的写入数据都是老的数据。
在一些实施例中,所述更新模块740被配置成从第三队列中删除已经执行读写一致性检查的所述读请求命令。在这些实施例中,通过更新第三队列,可以节省存储空间,并减少此后执行读写一致性检查所耗费的时间。
在一些实施例中,所述更新模块740被配置成从所述第二队列中删除与所述写完成标识对应的写请求命令以更新所述第二队列。通过更新第二队列,可以提高读写一致性检查执行的效率,以及提高读写一致性检查结果的准确性。
在一些实施例中,所述读写一致性确定模块530被配置成响应于所述反馈数据与所述至少一个目标数据中的所有目标数据不匹配而报告针对所述存储器的读写一致性的错误。
本申请的另一实施例提供了一种处理设备,包括存储器、以及前述用于检查针对存储器的读写一致性的装置的实施例中任一实施例所述的装置,其中所述装置被配置成检查针对所述存储器的读写一致性。
本申请的另一实施例提供了一种计算机可读存储介质,其存储有计算机可执行指令,当所述计算机可执行指令被执行时,执行如前述的用于检查针对存储器的读写一致性的方法的实施例中任一实施例所述的方法。
本申请的另一实施例提供了一种计算机程序产品,包括计算机程序,其中所述计算机程序被处理器执行时实现前述的用于检查针对存储器的读写一致性的方法中任一项所述方法的步骤。
在本申请的实施例中,通过反馈数据和读请求命令所对应的地址的写请求数据(即目标数据)之间进行比较,只要读请求命令所对应的地址的写请求数据中有任一写请求数据和反馈数据匹配,就确认存储器读写一致性检查通过,即认为读取的数据与所写入数据是一致的,否则报告读写一致性检查错误。在本文中,“匹配”是指相同,“目标数据”是指在写请求队列中与所述读请求地址一致的写请求地址所对应的写入数据。
本申请中提出的方法实现了存储器一致性检查,其中采用模糊比较的机制,只要读请求所对应的地址的写请求数据中的任意一笔写请求数据和反馈数据匹配,就认为一致性检查通过,否则报告数据一致性检查错误,从而提高了检查效率并提高了检查结果的正确性。
本申请的用于检查针对存储器的读写一致性的方法和装置至少具有以下优点:
(1)本申请提出的方案采用了模糊比较机制,通过将存储器响应于读请求命令而输出的反馈数据和所有可能的目标数据(包括写入数据和初始化数据)进行比较,只要有任一目标数据与反馈数据匹配,就确认针对所述存储器的读写一致性通过,这保证了读写一致性检查结果的准确性;
(2)本申请提出的方案通过将写请求队列进一步划分为不同的阶段,即将写请求队列进一步划分为写请求未完成队列和写请求完成队列,并且将已经执行的写请求从写请求未完成队列更新到写请求完成队列中,从而确保写请求未完成队列不会由于过于冗长而占用过多空间;
(3)本申请提出的方案采用了初始化操作,从而实现了对于尚未执行针对相应地址的写入操作的情况的存储器的乱序读写验证;
(4)本申请提出的方案采用了更新机制,通过将写请求完成队列中的所有与读请求的地址一致且写请求数据和反馈数据不匹配的写请求从写请求完成队列中删除,实现了写请求完成队列更新机制,从而缩小了后续针对该地址的读请求的一致性检查范围,提高了检查效率并使检查结果更加准确。
应当理解,上面的实施例仅通过示例的方式描述。虽然实施例已在附图和前面的描述中详细地图示和描述,这样的图示和描述将被认为是说明性或示例性的,并且不是约束性的,并且本申请的范围不限制于所公开的实施例。
诸如“第一”、“第二”等术语在本申请中可以用来描述各种设备、装置、元件、部件或部分,但是并不意图从顺序或重要性的角度对这些设备、装置、元件、部件或部分进行限制。这些术语仅用来将一个设备、装置、元件、部件或部分与另一个设备、装置、元件、部件或部分相区分。
通过研究附图、公开内容和所附权利要求,本领域技术人员可以理解和得到所公开实施例的其他变型。在本申请中,词语“包括”不排除其他元素或步骤,并且不定冠词“一”、“一个”等不排除复数。在互不相同的实施例中列举的特征在不冲突的情况下可以组合。除非明确限定,否则根据本申请实施例的方法的各个步骤在本申请上下文中的记载顺序不应理解为限定了各个步骤在实施时的执行顺序。
Claims (21)
1.一种用于检查针对存储器的读写一致性的方法,其特征在于,所述方法包括:
获取提供给所述存储器的输入请求序列,所述输入请求序列包括至少一个读请求命令和至少一个写请求命令,所述至少一个读请求命令中的每个读请求命令包括读请求地址,所述至少一个写请求命令中的每个写请求命令包括写请求地址和写入数据;
根据所述读请求命令中的读请求地址从与所述至少一个写请求命令对应的至少一个写入数据中获取至少一个目标数据,所述目标数据是所述至少一个写入数据中与所述读请求地址一致的写请求地址所对应的写入数据;以及
将所述存储器响应于所述读请求命令而输出的反馈数据和所述目标数据进行比较,响应于所述反馈数据与所述至少一个目标数据中的任一目标数据匹配而确认针对所述存储器的读写一致性通过。
2.根据权利要求1所述的方法,其中所述方法还包括:
响应于从所述存储器获取到写完成标识而从所述输入请求序列中的至少一个写请求命令中确定出与所述写完成标识对应的写请求命令作为已完成写请求命令,所述写完成标识指示基于所述写请求命令针对所述存储器的写请求操作的完成;以及
存储所述已完成写请求命令中的写请求地址和对应的写入数据形成第一队列,
其中根据所述读请求命令中的读请求地址从与所述至少一个写请求命令对应的至少一个写入数据中获取至少一个目标数据包括:
根据所述读请求地址从所述第一队列中获取所述至少一个目标数据。
3.根据权利要求1所述的方法,其中所述方法还包括:
存储所述输入请求序列中的至少一个写请求命令中各个写请求命令中的写请求地址和对应的写入数据形成第二队列;
响应于从所述存储器获取到写完成标识而从所述第二队列中的各个写请求命令中确定出与所述写完成标识对应的写请求命令作为已完成写请求命令,并存储所述已完成写请求命令中的写请求地址和对应的写入数据形成第一队列,所述写完成标识指示基于所述写请求命令针对所述存储器的写请求操作的完成;以及
其中根据所述读请求命令中的读请求地址从与所述至少一个写请求命令对应的至少一个写入数据中获取至少一个目标数据包括:
根据所述读请求地址从所述第一队列和所述第二队列中获取所述至少一个目标数据。
4.根据权利要求2或3所述的方法,其中所述方法还包括:
判断所述读请求命令是否是针对所述读请求地址的首次读请求命令;
响应于所述读请求命令是针对所述读请求地址的首次读请求命令,确定所述第一队列是否包括与所述读请求地址一致的写请求地址;
响应于所述第一队列不包括与所述读请求地址一致的写请求地址,将所述读请求地址添加至所述第一队列并在所述第一队列中存储针对所述读请求地址的初始值,使得所述至少一个目标数据包括所述初始值。
5.根据权利要求2或3所述的方法,其中所述方法还包括:
存储所述至少一个读请求命令形成第三队列;
针对所述第三队列中的每个读请求命令,判断所述第三队列是否包括针对所述读请求命令中的读请求地址的另外的读请求命令;以及
响应于所述第三队列不包括针对所述读请求地址的另外的读请求命令,从第一队列中删除与所述反馈数据不匹配的目标数据所对应的写请求命令。
6.根据权利要求5所述的方法,其中:
所述存储所述至少一个读请求命令形成第三队列包括:
针对所述第三队列中的每个读请求命令,获取与所述读请求命令的读请求地址一致的写请求地址对应的写请求命令在第一队列中的位置;以及
存储所述与所述读请求命令的读请求地址一致的写请求地址对应的写请求命令在第一队列中的位置;
其中所述响应于所述第三队列不包括针对所述读请求地址的另外的读请求命令,从第一队列中删除与所述反馈数据不匹配的目标数据所对应的写请求命令包括:
响应于所述第三队列不包括针对所述读请求地址的另外的读请求命令,从第一队列中删除与所述反馈数据不匹配的目标数据所对应、且其在所述第一队列中的位置已经被存储的写请求命令。
7.根据权利要求5所述的方法,其中所述获取提供给所述存储器的输入请求序列包括:
从第三队列中删除已经执行读写一致性检查的所述读请求命令。
8.根据权利要求5所述的方法,其中所述获取提供给所述存储器的输入请求序列还包括:
从第二队列中删除与所述写完成标识对应的写请求命令以更新所述第二队列。
9.根据权利要求1所述的方法,其中所述方法还包括:
响应于所述反馈数据与所述至少一个目标数据中的所有目标数据不匹配而报告针对所述存储器的读写一致性的错误。
10.一种用于检查针对存储器的读写一致性的装置,其特征在于,所述装置包括:
输入请求序列获取模块,其被配置成获取提供给所述存储器的输入请求序列,所述输入请求序列包括至少一个读请求命令和至少一个写请求命令,所述至少一个读请求命令中的每个读请求命令包括读请求地址,所述至少一个写请求命令中的每个写请求命令包括写请求地址和写入数据;
目标数据获取模块,其被配置成根据所述读请求命令中的读请求地址从与所述至少一个写请求命令对应的至少一个写入数据中获取至少一个目标数据,所述目标数据是所述至少一个写入数据中与所述读请求地址一致的写请求地址所对应的写入数据;以及
读写一致性确定模块,其被配置成将所述存储器响应于所述读请求命令而输出的反馈数据和所述目标数据进行比较,响应于所述反馈数据与所述至少一个目标数据中的任一目标数据匹配而确认针对所述存储器的读写一致性通过。
11.根据权利要求10所述的装置,其中所述输入请求序列获取模块包括:
第一存储单元,其被配置成响应于从所述存储器获取到写完成标识而从所述输入请求序列中的至少一个写请求命令中确定出与所述写完成标识对应的写请求命令作为已完成写请求命令,并存储所述已完成写请求命令中的写请求地址和对应的写入数据形成第一队列,所述写完成标识指示基于所述写请求命令针对所述存储器的写请求操作的完成;
其中目标数据获取模块被配置成根据所述读请求地址从所述第一队列中获取所述至少一个目标数据。
12.根据权利要求10所述的装置,其中所述输入请求序列获取模块包括:
第二存储单元,其被配置成存储所述输入请求序列中的至少一个写请求命令中各个写请求命令中的写请求地址和对应的写入数据形成第二队列;
第一存储单元,其被配置成响应于从所述存储器获取到写完成标识而从所述第二队列中的各个写请求命令中确定出与所述写完成标识对应的写请求命令作为已完成写请求命令,并存储所述已完成写请求命令中的写请求地址和对应的写入数据形成第一队列,所述写完成标识指示基于所述写请求命令针对所述存储器的写请求操作的完成;
其中目标数据获取模块被配置成根据所述读请求地址从所述第一队列和所述第二队列中获取所述至少一个目标数据。
13.根据权利要求11所述的装置,其中所述目标数据获取模块包括:
判断单元,其被配置成:
判断所述读请求命令是否是针对所述读请求地址的首次读请求命令;
响应于所述读请求命令是针对所述读请求地址的首次读请求命令,确定所述第一队列是否包括与所述读请求地址一致的写请求地址;
所述目标数据获取模块还包括:初始化单元,其被配置成响应于所述第一队列不包括与所述读请求地址一致的写请求地址,将所述读请求地址添加至所述第一队列并在所述第一队列中存储针对所述读请求地址的初始值,使得所述至少一个目标数据包括所述初始值。
14.根据权利要求11或12所述的装置,其中所述输入请求序列获取模块包括第三存储单元,其被配置成存储所述至少一个读请求命令形成第三队列;
所述装置还包括更新模块,其被配置成:
针对所述第三队列中的每个读请求命令,判断所述第三队列是否包括针对所述读请求命令中的读请求地址的另外的读请求命令;以及
响应于所述第三队列不包括针对所述读请求地址的另外的读请求命令,从第一队列中删除与所述反馈数据不匹配的目标数据所对应的写请求命令。
15.根据权利要求14所述的装置,其中:
所述第三存储单元被配置成:
针对所述第三队列中的每个读请求命令,获取与所述读请求命令的读请求地址一致的写请求地址对应的写请求命令在第一队列中的位置;以及
存储所述与所述读请求命令的读请求地址一致的写请求地址对应的写请求命令在第一队列中的位置;
并且所述更新模块被配置成:
响应于所述第三队列不包括针对所述读请求地址的另外的读请求命令,从第一队列中删除与所述反馈数据不匹配的目标数据所对应、且其在所述第一队列中的位置已经被存储的写请求命令。
16.根据权利要求14所述的装置,其中所述更新模块还被配置成从第三队列中删除已经执行读写一致性检查的所述读请求命令。
17.根据权利要求14所述的装置,其中所述更新模块还被配置成从第二队列中删除与所述写完成标识对应的写请求命令以更新所述第二队列。
18.根据权利要求10所述的装置,其中所述读写一致性确定模块被配置成响应于所述反馈数据与所述至少一个目标数据中的所有目标数据不匹配而报告针对所述存储器的读写一致性的错误。
19.一种处理设备,包括存储器、以及如权利要求10-18中任一项所述的装置,其中所述装置被配置成检查针对所述存储器的读写一致性。
20.一种计算机可读存储介质,其存储有计算机可执行指令,当所述计算机可执行指令被执行时,执行如权利要求1-9中任一项所述的方法。
21.一种计算机程序产品,包括计算机程序,其中所述计算机程序被处理器执行时实现权利要求1-9中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310014806.5A CN115857834B (zh) | 2023-01-05 | 2023-01-05 | 一种用于检查针对存储器的读写一致性的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310014806.5A CN115857834B (zh) | 2023-01-05 | 2023-01-05 | 一种用于检查针对存储器的读写一致性的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115857834A true CN115857834A (zh) | 2023-03-28 |
CN115857834B CN115857834B (zh) | 2023-05-09 |
Family
ID=85656936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310014806.5A Active CN115857834B (zh) | 2023-01-05 | 2023-01-05 | 一种用于检查针对存储器的读写一致性的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115857834B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1985247A (zh) * | 2004-06-28 | 2007-06-20 | 英特尔公司 | 存储器读请求越过存储器写 |
US20090067081A1 (en) * | 2007-09-07 | 2009-03-12 | Kei Sato | Storage apparatus and data verification method for the same |
US20090307473A1 (en) * | 2008-06-09 | 2009-12-10 | Emulex Design & Manufacturing Corporation | Method for adopting sequential processing from a parallel processing architecture |
CN108536473A (zh) * | 2017-03-03 | 2018-09-14 | 华为技术有限公司 | 读取数据的方法和装置 |
CN110865769A (zh) * | 2018-08-28 | 2020-03-06 | 阿里巴巴集团控股有限公司 | 处理读/写请求的方法、网络存储系统及电子设备 |
CN113918216A (zh) * | 2020-07-10 | 2022-01-11 | 富泰华工业(深圳)有限公司 | 数据读/写处理方法、装置及计算机可读存储介质 |
-
2023
- 2023-01-05 CN CN202310014806.5A patent/CN115857834B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1985247A (zh) * | 2004-06-28 | 2007-06-20 | 英特尔公司 | 存储器读请求越过存储器写 |
US20090067081A1 (en) * | 2007-09-07 | 2009-03-12 | Kei Sato | Storage apparatus and data verification method for the same |
US20090307473A1 (en) * | 2008-06-09 | 2009-12-10 | Emulex Design & Manufacturing Corporation | Method for adopting sequential processing from a parallel processing architecture |
CN108536473A (zh) * | 2017-03-03 | 2018-09-14 | 华为技术有限公司 | 读取数据的方法和装置 |
CN110865769A (zh) * | 2018-08-28 | 2020-03-06 | 阿里巴巴集团控股有限公司 | 处理读/写请求的方法、网络存储系统及电子设备 |
CN113918216A (zh) * | 2020-07-10 | 2022-01-11 | 富泰华工业(深圳)有限公司 | 数据读/写处理方法、装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115857834B (zh) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111090663B (zh) | 事务并发控制方法、装置、终端设备及介质 | |
CN109189759B (zh) | Kv存储系统中的数据读取方法、数据查询方法、装置及设备 | |
CN106874281A (zh) | 实现数据库读写分离的方法和装置 | |
CN111966287A (zh) | 数据存储方法、电子设备及存储介质 | |
CN107577775B (zh) | 一种读取数据方法、装置、电子设备及可读存储介质 | |
CN110377276B (zh) | 源代码文件管理方法及设备 | |
CN112783866B (zh) | 数据读取方法、装置、计算机设备和存储介质 | |
CN117131060B (zh) | 分布式数据库并发控制方法、系统、计算机设备 | |
CN111444208B (zh) | 一种数据更新方法及相关设备 | |
CN110765125B (zh) | 一种存储数据的方法及装置 | |
CN115857834B (zh) | 一种用于检查针对存储器的读写一致性的方法和装置 | |
CN111552438A (zh) | 一种对象写入的方法、装置、服务器和存储介质 | |
CN109542872B (zh) | 数据读取方法、装置、计算机设备和存储介质 | |
CN115630100A (zh) | 单元和多元时序数据的混合处理方法、装置及计算机设备 | |
CN111399759B (zh) | 读数据、写数据的方法、以及对象文件系统 | |
CN115543685A (zh) | 一种数据库回滚方法、装置、电子设备及存储介质 | |
CN112685431A (zh) | 异步缓存方法、装置、系统、电子设备和存储介质 | |
CN110968267A (zh) | 数据管理方法、装置、服务器及系统 | |
CN111131051A (zh) | 路由下发方法和装置 | |
CN110096389A (zh) | 一种数据库的启动方法、装置、设备和存储介质 | |
CN112241393B (zh) | 文件存储方法、终端和计算机可读存储介质 | |
US11941388B2 (en) | Program update method and update system | |
US20220091778A1 (en) | Semiconductor storage device and writing method of operation control program of semiconductor storage device | |
CN112162950B (zh) | 基于文件系统的数据处理方法、装置和计算机设备 | |
CN112966764B (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 |