CN116643945B - 一种二级缓存的数据检测方法、系统及计算机设备 - Google Patents

一种二级缓存的数据检测方法、系统及计算机设备 Download PDF

Info

Publication number
CN116643945B
CN116643945B CN202310638726.7A CN202310638726A CN116643945B CN 116643945 B CN116643945 B CN 116643945B CN 202310638726 A CN202310638726 A CN 202310638726A CN 116643945 B CN116643945 B CN 116643945B
Authority
CN
China
Prior art keywords
request
key information
data
secondary cache
storage
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
CN202310638726.7A
Other languages
English (en)
Other versions
CN116643945A (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.)
Hexin Technology Suzhou Co ltd
Hexin Technology Co ltd
Original Assignee
Hexin Technology Suzhou Co ltd
Hexin 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 Hexin Technology Suzhou Co ltd, Hexin Technology Co ltd filed Critical Hexin Technology Suzhou Co ltd
Priority to CN202310638726.7A priority Critical patent/CN116643945B/zh
Publication of CN116643945A publication Critical patent/CN116643945A/zh
Application granted granted Critical
Publication of CN116643945B publication Critical patent/CN116643945B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明涉及计算机技术领域,尤其涉及一种二级缓存的数据检测方法、系统及计算机设备,包括:将激励产生器生成的请求打包成请求数据包后,存入与请求的类型对应的请求队列;请求包括取指请求、访问请求、存储请求和地址转换请求;监测并获取二级缓存中与请求对应的关键信息,以从请求队列中查找与关键信息具有相同请求标识的请求数据包;根据查找到的请求数据包访问内存模型,并将从内存模型中获取的数据与关键信息进行比较,若数据不一致,则报错;将经过比较后的请求数据包从请求队列中删除。本发明通过监测少量的请求关键信息实现快速有效地定位二级缓存读写数据的错误,并通过对读写请求执行顺序的检测,使其满足地址相关性要求。

Description

一种二级缓存的数据检测方法、系统及计算机设备
技术领域
本发明涉及计算机技术领域,尤其涉及一种二级缓存的数据检测方法、系统及计算机设备。
背景技术
随着电子技术的不断发展,高性能处理器一般配置有一级缓存和二级缓存,其中,二级缓存是介于一级缓存和内存之间的存储器,其容量较大于一级缓存、远小于内存,主要用来协调一级缓存于内存之间的速率差,二级缓存的关键在于能够提高查询效率,它可以把获取的数据进行本地缓存,当再次发生该查询时,它可以比loading(加载)数据更迅速,此外,二级缓存还可以把对象直接存储在缓存中,而不是数据库,从而节约了正常从数据库中提取对象的时间,减轻CPU(中央处理器)对主存的访问压力,提高系统性能,因此,二级缓存是CPU性能表现的关键之一。
虽然二级缓存具备许多优点,但是二级缓存在部署中必须完全无碍,以保证数据的准确性,否则查询的结果将不仅不准确,甚至可能出现错误,然而目前缺乏对二级缓存数据检测的研究,因此,亟需提供一种二级缓存的数据检测方法,以保证二级缓存数据的准确性,提高用户体验。
发明内容
本发明的目的在于提供一种二级缓存的数据检测方法、系统及计算机设备,以通过监测少量关键信号就能有效检测二级缓存读写数据逻辑的准确性,从而保证二级缓存查询结果的准确性。
为解决以上技术问题,本发明提供了一种二级缓存的数据检测方法、系统及计算机设备。
第一方面,本发明提供了一种二级缓存的数据检测方法,所述方法包括以下步骤:
将激励产生器生成的请求打包成请求数据包后,存入与所述请求的类型对应的请求队列;其中,所述请求包括取指请求、访问请求、存储请求和地址转换请求;
对二级缓存进行监测,获取与所述请求对应的关键信息,并根据所述关键信息,从所述请求队列中查找与所述关键信息具有相同请求标识的请求数据包;
根据查找到的请求数据包访问内存模型,并将从所述内存模型中获取的数据与所述关键信息进行比较,若数据不一致,则报错;
将经过比较后的请求数据包从所述请求队列中删除。
在进一步的实施方案中,当所述请求为取指请求或者访问请求时,所述对二级缓存进行监测,获取与所述请求对应的关键信息,并根据所述关键信息,从所述请求队列中查找与所述关键信息具有相同请求标识的请求数据包的步骤包括:
监测二级缓存中所述请求的关键信息,若监测到二级缓存从激励产生器中未获取到所述请求的关键信息,则检测所述请求是否被取消,若取消,则将所述请求从所述请求队列中删除;否则继续监测二级缓存中所述请求的关键信息;
若监测到二级缓存从激励产生器中获取到所述请求的关键信息,则根据预设的请求标识,从与所述请求对应的所述请求队列中查找与所述关键信息具有相同请求标识的请求数据包;
检测查找到的所述请求数据包是否错误,若查找到的所述请求数据包错误,则直接将错误的请求数据包从所述请求队列中删除,否则通过所述请求的访问地址,访问内存模型。
在进一步的实施方案中,当所述请求为取指请求或者访问请求时,所述预设的请求标识为所述请求的内存高位地址标签。
在进一步的实施方案中,当所述请求为访问请求时,所述将从所述内存模型中获取的数据与所述关键信息进行比较的步骤还包括:
若数据一致,则遍历存储请求队列,当在所述存储请求队列中检测到与所述访问请求具有相同访问地址的存储请求存在当前时刻仍未完成且其请求时间早于当前完成访问请求的请求时间时,进行报错。
在进一步的实施方案中,当所述请求为存储请求时,所述对二级缓存进行监测,获取与所述请求对应的关键信息,并根据所述关键信息,从所述请求队列中查找与所述关键信息具有相同请求标识的请求数据包的步骤包括:
监测新存入的所述存储请求是否存在合并操作,若存在合并操作,则以预设的合并目标查找原则,从存储请求队列中查找出与新存入的所述存储请求合并的目标存储请求,并将所述目标存储请求与新存入的所述存储请求进行合并,将合并后的存储请求保留在存储请求队列中;
监测二级缓存是否存在正在进行的写数据操作,若不存在正在进行的写数据操作,则继续监测;
若存在正在进行的写数据操作,则根据监测到的访问地址,从存储请求队列中查找出与监测到的当前访问地址相同、当前写操作线程ID相同和请求类型相同的存储请求的请求数据包;
若从存储请求队列中未查找到与监测到的访问地址相同、当前写操作线程ID相同和请求类型请相同的存储请求的请求数据包,则进行报错并进行对应的调试。
在进一步的实施方案中,所述合并目标查找原则,具体为:
查找出与新存入的所述存储请求具有相同缓存行、相同线程ID和相同强访问排序属性的现有存储请求,若存在多个现有存储请求,则选取请求时间最近的现有存储请求作为与新存入的所述存储请求合并的目标存储请求。
在进一步的实施方案中,当所述请求为存储请求时,所述根据查找到的请求数据包访问内存模型,并将从所述内存模型中获取的数据与所述关键信息进行比较的步骤包括:
若从存储请求队列中查找到与监测到的访问地址相同、当前写操作线程ID相同和请求类型请相同的存储请求的请求数据包,则根据查找到的请求数据包对内存模型进行写操作,以将存储请求数据写入内存模型;
将从所述内存模型中获取的写数据与所述关键信息进行比较。
在进一步的实施方案中,当所述请求为地址转换请求时,所述对二级缓存进行监测,获取与所述请求对应的关键信息,并根据所述关键信息,从所述请求队列中查找与所述关键信息具有相同请求标识的请求数据包的步骤包括:
监测二级缓存中所述地址转换请求的关键信息,若监测到二级缓存从激励产生器中未获取到所述地址转换请求的关键信息,则继续监测二级缓存中所述地址转换请求的关键信息;
若监测到二级缓存从激励产生器中获取到所述地址转换请求的关键信息,则根据预设的请求标识,从与所述请求对应的所述请求队列中查找与所述地址转换请求的关键信息具有相同请求标识的请求数据包;
检测查找到的所述请求数据包是否错误,若查找到的所述请求数据包错误,则直接将错误的请求数据包从所述请求队列中删除,否则通过所述地址转换请求的访问地址,访问内存模型。
在进一步的实施方案中,当所述请求为地址转换请求时,所述预设的请求标识为所述地址转换请求的内存高位地址标签。
在进一步的实施方案中,所述将经过比较后的请求数据包从所述请求队列中删除的步骤之后还包括:检测所述请求队列是否为空,若否,则进行报错并进行对应的调试。
第二方面,本发明提供了一种二级缓存的数据检测系统,所述系统包括:
激励产生器,用于生成请求,并将所述请求打包成请求数据包后,存入与所述请求的类型对应的请求队列;其中,所述请求包括取指请求、访问请求、存储请求和地址转换请求;
DUT监测器,用于对二级缓存进行监测,获取与所述请求对应的关键信息,并将所述关键信息发送至核心控制器;
核心控制器,用于根据接收到的所述关键信息,从所述请求队列中查找与所述关键信息具有相同请求标识的请求数据包;
以及,
根据查找到的请求数据包访问内存模型,并将从所述内存模型中获取的数据与所述关键信息进行比较,若数据不一致,则报错;将经过比较后的请求数据包从所述请求队列中删除。
在进一步的实施方案中,所述系统还包括:
内存模型,用于在仿真零时刻进行初始化,以及根据不同请求类型对内存模型进行读写操作;
比较模块,用于对二级缓存中返回的数据和从内存模型中获取的数据进行比较。
在进一步的实施方案中,所述比较模块包括请求顺序比较器;
所述请求顺序比较器,用于对访问同一缓存行的访问请求和存储请求,当访问请求完成时,遍历存储请求队列,当在存储请求队列中检测到与访问请求相同访问地址的存储请求存在当前时刻仍未完成且其请求时间早于当前完成访问请求的请求时间时,进行报错。
第三方面,本发明还提供了一种计算机设备,包括处理器和存储器,所述处理器与所述存储器相连,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序,以使得所述计算机设备执行实现上述方法的步骤。
本发明提供了一种二级缓存的数据检测方法、系统及计算机设备,所述方法通过将生成的不同类型请求打包成对应请求数据包后,存入与请求的类型对应的请求队列;对二级缓存进行监测并获取与请求对应的关键信息,根据关键信息,从请求队列中查找与关键信息具有相同请求标识的请求数据包;根据查找到的请求数据包访问内存模型,并将从内存模型中获取的数据与关键信息进行比较,若数据不一致,则报错。与现有技术相比,该方法针对二级缓存数据进行检测,通过对不同类型请求执行不同控制,能够更加有效快速地定位二级缓存读写数据的正确性,当数据出错时,实时报出错误信息,提高调试效率。
附图说明
图1是本发明实施例提供的二级缓存的数据检测方法流程示意图;
图2是本发明实施例提供的取指请求执行流程示意图;
图3是本发明实施例提供的访问请求执行流程示意图;
图4是本发明实施例提供的存储请求执行流程示意图;
图5是本发明实施例提供的地址转换请求执行流程示意图;
图6是本发明实施例提供的二级缓存的数据检测系统框图;
图7是本发明实施例提供的二级缓存数据检测系统结构图;
图8是本发明实施例提供的计算机设备的结构示意图。
具体实施方式
下面结合附图具体阐明本发明的实施方式,实施例的给出仅仅是为了说明目的,并不能理解为对本发明的限定,包括附图仅供参考和说明使用,不构成对本发明专利保护范围的限制,因为在不脱离本发明精神和范围基础上,可以对本发明进行许多改变。
参考图1,本发明实施例提供了一种二级缓存的数据检测方法,如图1所示,该方法包括以下步骤:
S1.将激励产生器生成的请求打包成请求数据包后,存入与所述请求的类型对应的请求队列。
本实施例通过验证环境中的激励产生器产生验证所需的激励,并将激励发送至二级缓存,在二级缓存的验证环境中主要产生各种不同类型的请求,所述请求包括取指请求、访问(Load)请求、存储(Store)请求和地址转换请求等不同类型的请求,对应地,取指请求队列用于存放取指请求的请求数据包,访问请求队列用于存放访问请求的请求数据包,存储请求队列用于存放存储请求的请求数据包,地址转换请求队列用于存放地址转换请求的请求数据包,在本实施例中,在激励产生器将其产生的请求发送给二级缓存的同时,将所述请求打包成请求数据包存入对应的请求队列,并将新存入的请求数据包放在对应请求队列的头部,以表示该请求是最新生成的请求。
S2.对二级缓存进行监测,获取与所述请求对应的关键信息,并根据所述关键信息,从所述请求队列中查找与所述关键信息具有相同请求标识的请求数据包。
S3.根据查找到的请求数据包访问内存模型,并将从所述内存模型中获取的数据与所述关键信息进行比较,若数据不一致,则报错。
本实施例通过DUT(Design under test,待验证设计)监测器监测二级缓存中所述请求的少量关键信息,包括二级缓存执行完取指请求、Load请求或者地址转换请求并将数据返回给核心控制器的时刻、二级缓存将数据写入自身RAM的时刻、请求是否被取消的信息、Store请求是否发生合并的信息以及同步请求是否完成等信息,这些关键信息决定核心控制器的对相应请求的执行流程,由于每次读取的关键信息量很小,降低了核心处理器对二级缓存操作时的功耗,同时提高了数据准确性检测效率,实现了快速高效、稳定可靠的二级缓存数据检测,以下将取指请求、访问请求、存储请求和地址转换请求的执行过程进行详细说明。
在一个实施例中,当所述请求为取指请求时,如图2所示,所述对二级缓存进行监测,获取与所述请求对应的关键信息,并根据所述关键信息,从所述请求队列中查找与所述关键信息具有相同请求标识的请求数据包的步骤包括:
在激励产生器生成取指请求之后,监测二级缓存中所述请求的关键信息,若监测到二级缓存从激励产生器中未获取到所述取指请求的关键信息,则检测所述取指请求是否被取消,若所述取指请求被取消且二级缓存已经返回所述取指请求的tag(内存高位地址标签),则将该取指请求从所述取指请求队列中删除;否则继续监测二级缓存中所述取指请求的关键信息;在本实施例中,若所述取指请求在存入取指请求队列一个cycle(周期)之后被取消,将所述取指请求的取消标志位置为1;
若监测到二级缓存从激励产生器中获取到所述取指请求的关键信息,则根据预设的取指请求的请求标识,从与所述取指请求对应的所述取指请求队列中查找与所述关键信息具有相同请求标识的请求数据包;
检测查找到的所述请求数据包是否错误,若查找到的所述请求数据包错误,则直接将错误的请求数据包从所述请求队列中删除,否则通过所述请求的访问地址,访问内存模型。
在本实施例中,当所述请求为取指请求时,所述预设的请求标识为所述取指请求的内存高位地址标签,在本实施例中,所述取指请求的信息包括访问地址、内存高位地址标签(tag,tag表示块地址中未用于缓存索引的高位地址)、请求类型等关键信息,本领域技术人员可以根据具体实施情况设置取指请求相应的关键信息,不局限于本发明实施例;本实施例通过取指请求的少量关键信息,对二级缓存从激励产生器中获取到的取指请求数据和从访问内存模型中获取到的数据进行一致性检测,不仅能够快速地获取相应的请求数据,提高缓存中数据检测的时效性,而且能够快速有效地报出错误,保证取指请求数据的正确性。
在一个实施例中,当所述请求为访问请求时,如图3所示,所述对二级缓存进行监测,获取与所述请求对应的关键信息,并根据所述关键信息,从所述请求队列中查找与所述关键信息具有相同请求标识的请求数据包的步骤包括:
监测二级缓存中所述访问请求的关键信息,若监测到二级缓存从激励产生器中未获取到所述访问请求的关键信息,则检测所述访问请求是否被取消,若所述访问请求在存入访问请求队列一个cycle(周期)之后被取消,则将所述访问请求从所述请求队列中删除;否则继续监测二级缓存中所述访问请求的关键信息;
若监测到二级缓存从激励产生器中获取到所述访问请求的关键信息,则根据预设的访问请求的请求标识,从与所述访问请求对应的所述访问请求队列中查找与所述关键信息具有相同请求标识的请求数据包;
检测查找到的所述请求数据包是否错误,若查找到的所述请求数据包错误,则直接将错误的请求数据包从所述请求队列中删除,否则通过所述访问请求的访问地址,访问内存模型。
在本实施例中,当所述请求为访问请求时,访问请求的请求标识为访问请求的内存高位地址标签,在本实施例中,所述访问请求包括访问地址、tag(内存高位地址标签)、请求类型、请求时间以及thread id(线程ID)等关键信息,其中,请求时间是指当前的仿真时间,可以采用$time函数获得当前的仿真时间,可用于后续Load请求与Store请求的访问顺序比较,本领域技术人员可以根据具体实施情况设置访问请求相应的关键信息,不局限于本发明实施例。
在本实施例中,当所述请求为访问请求时,所述将从所述内存模型中获取的数据与所述关键信息进行比较的步骤还包括:
若数据一致,则遍历存储请求队列,当在存储请求队列中检测到与访问请求具有相同访问地址的存储请求存在当前时刻仍未完成且其请求时间早于当前完成访问请求的请求时间时,进行报错。
具体地,由于Load请求或者Store请求之间存在地址相关性,即访问的地址在同一cacheline(缓存行)时,Load请求或者Store请求的执行必须满足一定的条件,因为处理器在下发Load请求或者Store请求时,Store请求对应的指令已经提交(Commit),Load请求对应的指令一般还没有提交(Commit),因此,对于访问同一cacheline(缓存行)的Load请求和Store请求,当Load请求完成时,比Load请求的请求时间更早的Store请求必须已经完成,因此,本实施例需要在Load请求完成时,查找Store请求队列,以在查找出存在不满足上述条件的Store请求时,进行报错,本实施例通过对读数据请求和写数据请求执行顺序的检测,不仅使其满足了地址相关性要求,而且避免出现由于Load请求和Store请求的执行顺序错误导致无法得到数据正确结果的情况,有效地提高了二级缓存数据的时序性和准确性。
本实施例针对访问请求进行检测,包括对二级缓存从激励产生器中获取到的访问请求数据和从访问内存模型中获取到的数据进行一致性检测,以及基于读数据请求和写数据请求之间存在地址相关性,对读写请求的执行顺序进行检测,能够消除执行顺序异常导致的请求数据错误等隐患,保证访问请求数据的正确性以及满足地址相关性的要求。
在一个实施例中,当所述请求为地址转换请求时,如图4所示,所述对二级缓存进行监测,获取与所述请求对应的关键信息,并根据所述关键信息,从所述请求队列中查找与所述关键信息具有相同请求标识的请求数据包的步骤包括:
监测二级缓存中所述地址转换请求的关键信息,若监测到二级缓存从激励产生器中未获取到所述地址转换请求的关键信息,则继续监测二级缓存中所述请求的关键信息;
若监测到二级缓存从激励产生器中获取到所述地址转换请求的关键信息,则根据预设的地址转换请求的请求标识,从与所述地址转换请求对应的所述地址转换请求队列中查找与所述关键信息具有相同请求标识的请求数据包;
检测查找到的所述请求数据包是否错误,若查找到的所述请求数据包错误,则直接将错误的请求数据包从所述请求队列中删除,否则通过所述地址转换请求的访问地址,访问内存模型。
在本实施例中,当所述请求为地址转换请求时,所述请求标识为所述地址转换请求的内存高位地址标签,所述地址转换请求可以包括访问地址、tag(内存高位地址标签)、请求类型以及thread id(线程ID)等关键信息,本领域技术人员可以根据具体实施情况设置地址转换请求相应的关键信息,不局限于本发明实施例。
本实施例针对地址转换请求的数据进行一致性分析检测,当二级缓存中的地址转换请求数据出错时,能够实时报出地址转换请求的错误信息,从而实现高效定位错误数据,保证地址转换请求数据的正确性、完整性。
在一个实施例中,当所述请求为存储请求时,如图5所示,所述存储请求可以包括访问地址、写数据、byte(字节)有效位、请求类型、请求时间以及thread id(线程ID)等关键信息,其中,请求时间是指当前的仿真时间,可用于Load请求与Store请求的顺序比较,本领域技术人员可以根据具体实施情况设置存储请求相应的关键信息,不局限于本发明实施例,在本实施例中,在激励产生器生成存储请求之后,监测二级缓存中所述请求的关键信息以及通过关键信息与从所述内存模型中获取的数据进行比较的过程包括:
监测新存入的所述存储请求是否存在合并操作,需要说明的是,合并操作是指对写同一cacheline(缓存行)的存储请求进行合并,以提高写效率;
若存在合并操作,则以预设的合并目标查找原则,从存储请求队列中查找出与新存入的所述存储请求合并的目标存储请求,并将所述目标存储请求与新存入的所述存储请求进行合并,将合并后的存储请求保留在存储请求队列中,将新存入的所述存储请求从存储请求队列中删除;
监测二级缓存是否存在正在进行的写数据操作,若不存在正在进行的写数据操作,则继续监测;
若存在正在进行的写数据操作,则根据监测到的访问地址,从存储请求队列中查找出与监测到的当前访问地址相同、当前写操作线程ID(thread id)相同和请求类型相同的存储请求的请求数据包;
若从存储请求队列中未查找到与监测到的访问地址相同、当前写操作线程ID相同和请求类型请相同的存储请求的请求数据包,则进行报错并进行对应的调试;
若从存储请求队列中查找到与监测到的访问地址相同、当前写操作线程ID相同和请求类型请相同的存储请求的请求数据包,则根据查找到的请求数据包的访问地址、写数据以及byte(字节)有效位等信息对内存模型进行写操作,以将存储请求数据写入内存模型;
将从所述内存模型中获取的写数据与所述关键信息进行比较。
在本实施例中,所述合并目标查找原则,具体为:
查找出与新存入的所述存储请求具有相同缓存行、相同线程ID和相同强访问排序属性的现有存储请求,若存在多个现有存储请求,则选取请求时间最近的现有存储请求作为与新存入的所述存储请求合并的目标存储请求。
本实施例针对存储请求进行数据检测,包括对合并操作、正在进行的写数据操作以及二级缓存从激励产生器中获取到的存储请求数据和从访问内存模型中获取到的写数据进行一致性比较,其中,本实施例在进行数据一致性比较之前,预先对合并操作、正在进行的写数据操作,可以提高缓存一致性检测的效率,保证用户提取可靠数据。
S4.将经过比较后的请求数据包从所述请求队列中删除。
在本实施例中,所述将经过比较后的请求数据包从所述请求队列中删除的步骤之后还包括:对于不同类型请求的执行,在仿真结束时,检测对应的请求队列是否为空,若不为空,则说明存在请求未被执行,需要报错并进行对应的调试。
本实施例提供的二级缓存的数据检测方法能快速有效地定位二级缓存的读写数据是否正确,且与二级缓存微架构不相关,只需监测少量关键信号就能有效地判断读写数据的逻辑是否准确,可以移植到其他微架构的二级缓存验证环境中,而且可以对读写请求的执行顺序进行检查,使其满足地址相关性要求。
在一实施例中,本实施例提供的技术方案可扩展到多核场景,即有多个二级缓存和总线互联的验证环境,对每个二级缓存建立独立的请求队列和核心控制器,共用一个内存模型,该内存模型对应到所有二级缓存的数据RAM(随机存取存储器)和连接总线互联的VIP(Verification IP,验证模型)中的memory(内存),在多核场景中,对所有二级缓存的读写数据进行检查,对内存一致性进行检查。
本发明实施例提供了一种二级缓存的数据检测方法,所述方法不仅提供了对取指请求、访问请求、地址转换请求这类读数据请求执行控制方法,对存储请求这类写数据请求执行控制方法,而且基于读数据请求和写数据请求之间存在的地址相关性,实现对读数据请求和写数据请求执行顺序的检测。相较于现有技术而言,本实施例提供的技术方案实现了对不同类型请求执行的控制,比较访问数据的正确性,能够有效快速地定位二级缓存读写数据的错误,提高调试效率。
需要说明的是,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在一个实施例中,如图6所示,本发明实施例提供了一种二级缓存的数据检测系统,所述系统包括:
激励产生器101,用于生成请求,并将所述请求打包成请求数据包后,存入与所述请求的类型对应的请求队列;其中,所述请求包括取指请求、访问请求、存储请求和地址转换请求;
DUT监测器102,用于对二级缓存进行监测,获取与所述请求对应的关键信息,并将所述关键信息发送至核心控制器;
核心控制器103,用于根据接收到的所述关键信息,从所述请求队列中查找与所述关键信息具有相同请求标识的请求数据包;
以及,
根据查找到的请求数据包访问内存模型,并将从所述内存模型中获取的数据与所述关键信息进行比较,若数据不一致,则报错;将经过比较后的请求数据包从所述请求队列中删除;
如图7所示,本发明实施例提供的一种二级缓存的数据检测系统还包括:
内存模型104,用于在仿真零时刻进行初始化,其中,初始化值根据DUT中实际初始值确定,与二级缓存中实际初始值保持一致;还用于在仿真进行过程中,根据不同请求类型对内存模型进行读写操作;
比较模块105,用于对二级缓存中返回的数据和从内存模型中获取的数据进行比较。
在本实施例中,所述比较模块105包括访问数据比较器、存储数据比较器、同步请求比较器和请求顺序比较器;其中,所述访问数据比较器用于在所述请求为取指请求、Load请求或者地址转换请求时,将DUT监测器从二级缓存读取到的关键信息与从内存模型中获取的数据进行比较;所述存储数据比较器,用于在所述请求为Store请求时,将DUT监测器从二级缓存读取到的关键信息与从内存模型中获取的数据进行比较;所述同步请求比较器,用于在所述请求为同步请求(存储请求类型的一种)时,基于在所述同步请求之前的Store请求都执行完成才能执行同步请求原则,在二级缓存发出同步请求完成信号时,检查存储请求队列中是否存在比同步请求的请求时间更早的Store请求,若存在,则报错;所述请求顺序比较器,用于对访问同一缓存行的Load请求和Store请求,当Load请求完成时,遍历存储请求队列,当在存储请求队列中检测到与Load请求相同访问地址的Store请求存在当前时刻仍未完成且其请求时间早于当前完成Load请求的请求时间时,进行报错。
本实施例基于读数据请求和写数据请求之间存在地址相关性,通过请求顺序比较器对访问同一缓存行的读数据请求和写数据请求执行顺序的检测,不仅使其满足了地址相关性要求,而且避免出现由于Load请求和Store请求的执行顺序错误导致无法得到数据正确结果的情况,消除执行顺序异常导致的请求数据错误等隐患,有效地提高了二级缓存数据的时序性和准确性。
关于一种二级缓存的数据检测系统的具体限定可以参见上述对于一种二级缓存的数据检测方法的限定,此处不再赘述。本领域普通技术人员可以意识到,结合本申请所公开的实施例描述的各个模块和步骤,能够以硬件、软件或者两者结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本发明实施例提供了一种二级缓存的数据检测系统,所述系统通过DUT监测器实现对二级缓存中的数据监测;通过核心处理器以及比较模块实现对读写数据逻辑的准确性检测以及对读写请求执行顺序的检测,使其满足地址相关性要求。与现有技术相比,本申请通过监测少量关键信号就能有效检测二级缓存读写数据逻辑的准确性,从而提高了二级缓存数据查询的准确率。
图8是本发明实施例提供的一种计算机设备,包括存储器、处理器和收发器,它们之间通过总线连接;存储器用于存储一组计算机程序指令和数据,并可以将存储的数据传输给处理器,处理器可以执行存储器存储的程序指令,以执行上述方法的步骤。
其中,存储器可以包括易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者;处理器可以是中央处理器、微处理器、特定应用集成电路、可编程逻辑器件或其组合。通过示例性但不是限制性说明,上述可编程逻辑器件可以是复杂可编程逻辑器件、现场可编程逻辑门阵列、通用阵列逻辑或其任意组合。
另外,存储器可以是物理上独立的单元,也可以与处理器集成在一起。
本领域普通技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有相同的部件布置。
以上所述实施例仅表达了本申请的几种优选实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本申请的保护范围。因此,本申请专利的保护范围应以所述权利要求的保护范围为准。

Claims (14)

1.一种二级缓存的数据检测方法,其特征在于,包括以下步骤:
将激励产生器生成的请求打包成请求数据包后,存入与所述请求的类型对应的请求队列;其中,所述请求包括取指请求、访问请求、存储请求和地址转换请求;
对二级缓存进行监测,获取与所述请求对应的关键信息,并根据所述关键信息,从所述请求队列中查找与所述关键信息具有相同请求标识的请求数据包;所述关键信息用于决定核心控制器对相应请求的执行流程,所述关键信息包括二级缓存执行完取指请求、访问请求或者地址转换请求并将数据返回给核心控制器的时刻、二级缓存将数据写入自身RAM的时刻、请求是否被取消的信息、存储请求是否发生合并的信息以及同步请求是否完成信息;
根据查找到的请求数据包访问内存模型,并将从所述内存模型中获取的数据与所述关键信息进行比较,若数据不一致,则报错;
将经过比较后的请求数据包从所述请求队列中删除。
2.如权利要求1所述的一种二级缓存的数据检测方法,其特征在于,当所述请求为取指请求或者访问请求时,所述对二级缓存进行监测,获取与所述请求对应的关键信息,并根据所述关键信息,从所述请求队列中查找与所述关键信息具有相同请求标识的请求数据包的步骤包括:
监测二级缓存中所述请求的关键信息,若监测到二级缓存从激励产生器中未获取到所述请求的关键信息,则检测所述请求是否被取消,若取消,则将所述请求从所述请求队列中删除;否则继续监测二级缓存中所述请求的关键信息;
若监测到二级缓存从激励产生器中获取到所述请求的关键信息,则根据预设的请求标识,从与所述请求对应的所述请求队列中查找与所述关键信息具有相同请求标识的请求数据包;
检测查找到的所述请求数据包是否错误,若查找到的所述请求数据包错误,则直接将错误的请求数据包从所述请求队列中删除,否则通过所述请求的访问地址,访问内存模型。
3.如权利要求2所述的一种二级缓存的数据检测方法,其特征在于:当所述请求为取指请求或者访问请求时,所述预设的请求标识为所述请求的内存高位地址标签。
4.如权利要求2所述的一种二级缓存的数据检测方法,其特征在于,当所述请求为访问请求时,所述将从所述内存模型中获取的数据与所述关键信息进行比较的步骤还包括:
若数据一致,则遍历存储请求队列,当在所述存储请求队列中检测到与所述访问请求具有相同访问地址的存储请求存在当前时刻仍未完成且其请求时间早于当前完成访问请求的请求时间时,进行报错。
5.如权利要求1所述的一种二级缓存的数据检测方法,其特征在于,当所述请求为存储请求时,所述对二级缓存进行监测,获取与所述请求对应的关键信息,并根据所述关键信息,从所述请求队列中查找与所述关键信息具有相同请求标识的请求数据包的步骤包括:
监测新存入的所述存储请求是否存在合并操作,若存在合并操作,则以预设的合并目标查找原则,从存储请求队列中查找出与新存入的所述存储请求合并的目标存储请求,并将所述目标存储请求与新存入的所述存储请求进行合并,将合并后的存储请求保留在存储请求队列中;
监测二级缓存是否存在正在进行的写数据操作,若不存在正在进行的写数据操作,则继续监测;
若存在正在进行的写数据操作,则根据监测到的访问地址,从存储请求队列中查找出与监测到的当前访问地址相同、当前写操作线程ID相同和请求类型相同的存储请求的请求数据包;
若从存储请求队列中未查找到与监测到的访问地址相同、当前写操作线程ID相同和请求类型请相同的存储请求的请求数据包,则进行报错并进行对应的调试。
6.如权利要求5所述的一种二级缓存的数据检测方法,其特征在于,所述合并目标查找原则,具体为:
查找出与新存入的所述存储请求具有相同缓存行、相同线程ID和相同强访问排序属性的现有存储请求,若存在多个现有存储请求,则选取请求时间最近的现有存储请求作为与新存入的所述存储请求合并的目标存储请求。
7.如权利要求5所述的一种二级缓存的数据检测方法,其特征在于,当所述请求为存储请求时,所述根据查找到的请求数据包访问内存模型,并将从所述内存模型中获取的数据与所述关键信息进行比较的步骤包括:
若从存储请求队列中查找到与监测到的访问地址相同、当前写操作线程ID相同和请求类型请相同的存储请求的请求数据包,则根据查找到的请求数据包对内存模型进行写操作,以将存储请求数据写入内存模型;
将从所述内存模型中获取的写数据与所述关键信息进行比较。
8.如权利要求1所述的一种二级缓存的数据检测方法,其特征在于,当所述请求为地址转换请求时,所述对二级缓存进行监测,获取与所述请求对应的关键信息,并根据所述关键信息,从所述请求队列中查找与所述关键信息具有相同请求标识的请求数据包的步骤包括:
监测二级缓存中所述地址转换请求的关键信息,若监测到二级缓存从激励产生器中未获取到所述地址转换请求的关键信息,则继续监测二级缓存中所述地址转换请求的关键信息;
若监测到二级缓存从激励产生器中获取到所述地址转换请求的关键信息,则根据预设的请求标识,从与所述请求对应的所述请求队列中查找与所述地址转换请求的关键信息具有相同请求标识的请求数据包;
检测查找到的所述请求数据包是否错误,若查找到的所述请求数据包错误,则直接将错误的请求数据包从所述请求队列中删除,否则通过所述地址转换请求的访问地址,访问内存模型。
9.如权利要求8所述的一种二级缓存的数据检测方法,其特征在于:当所述请求为地址转换请求时,所述预设的请求标识为所述地址转换请求的内存高位地址标签。
10.如权利要求1所述的一种二级缓存的数据检测方法,其特征在于,所述将经过比较后的请求数据包从所述请求队列中删除的步骤之后还包括:检测所述请求队列是否为空,若否,则进行报错并进行对应的调试。
11.一种二级缓存的数据检测系统,其特征在于,所述系统包括:
激励产生器,用于生成请求,并将所述请求打包成请求数据包后,存入与所述请求的类型对应的请求队列;其中,所述请求包括取指请求、访问请求、存储请求和地址转换请求;
DUT监测器,用于对二级缓存进行监测,获取与所述请求对应的关键信息,并将所述关键信息发送至核心控制器;所述关键信息用于决定核心控制器对相应请求的执行流程,所述关键信息包括二级缓存执行完取指请求、访问请求或者地址转换请求并将数据返回给核心控制器的时刻、二级缓存将数据写入自身RAM的时刻、请求是否被取消的信息、存储请求是否发生合并的信息以及同步请求是否完成信息;
核心控制器,用于根据接收到的所述关键信息,从所述请求队列中查找与所述关键信息具有相同请求标识的请求数据包;
以及,
根据查找到的请求数据包访问内存模型,并将从所述内存模型中获取的数据与所述关键信息进行比较,若数据不一致,则报错;将经过比较后的请求数据包从所述请求队列中删除。
12.如权利要求11所述的一种二级缓存的数据检测系统,其特征在于,所述系统还包括:
内存模型,用于在仿真零时刻进行初始化,以及根据不同请求类型对内存模型进行读写操作;
比较模块,用于对二级缓存中返回的数据和从内存模型中获取的数据进行比较。
13.如权利要求12所述的一种二级缓存的数据检测系统,其特征在于:所述比较模块包括请求顺序比较器;
所述请求顺序比较器,用于对访问同一缓存行的访问请求和存储请求,当访问请求完成时,遍历存储请求队列,当在存储请求队列中检测到与访问请求相同访问地址的存储请求存在当前时刻仍未完成且其请求时间早于当前完成访问请求的请求时间时,进行报错。
14.一种计算机设备,其特征在于:包括处理器和存储器,所述处理器与所述存储器相连,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序,以使得所述计算机设备执行如权利要求1至10中任一项所述的方法。
CN202310638726.7A 2023-05-31 2023-05-31 一种二级缓存的数据检测方法、系统及计算机设备 Active CN116643945B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310638726.7A CN116643945B (zh) 2023-05-31 2023-05-31 一种二级缓存的数据检测方法、系统及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310638726.7A CN116643945B (zh) 2023-05-31 2023-05-31 一种二级缓存的数据检测方法、系统及计算机设备

Publications (2)

Publication Number Publication Date
CN116643945A CN116643945A (zh) 2023-08-25
CN116643945B true CN116643945B (zh) 2023-12-15

Family

ID=87618492

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310638726.7A Active CN116643945B (zh) 2023-05-31 2023-05-31 一种二级缓存的数据检测方法、系统及计算机设备

Country Status (1)

Country Link
CN (1) CN116643945B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103106122A (zh) * 2011-08-08 2013-05-15 Arm有限公司 针对同时待处理数据访问请求的数据冲突处理
CN110865769A (zh) * 2018-08-28 2020-03-06 阿里巴巴集团控股有限公司 处理读/写请求的方法、网络存储系统及电子设备
CN114153680A (zh) * 2021-12-14 2022-03-08 广东赛昉科技有限公司 一种二级缓存接口协议的验证方法及系统
CN114237715A (zh) * 2021-11-16 2022-03-25 广东赛昉科技有限公司 多核访存指令验证系统与方法
CN114518839A (zh) * 2020-11-18 2022-05-20 爱思开海力士有限公司 存储器控制器
CN115202738A (zh) * 2022-06-13 2022-10-18 广东赛昉科技有限公司 一种写穿策略下多核系统的验证方法和系统
CN115481048A (zh) * 2022-09-02 2022-12-16 新华三半导体技术有限公司 一种内存系统及芯片

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103106122A (zh) * 2011-08-08 2013-05-15 Arm有限公司 针对同时待处理数据访问请求的数据冲突处理
CN110865769A (zh) * 2018-08-28 2020-03-06 阿里巴巴集团控股有限公司 处理读/写请求的方法、网络存储系统及电子设备
CN114518839A (zh) * 2020-11-18 2022-05-20 爱思开海力士有限公司 存储器控制器
CN114237715A (zh) * 2021-11-16 2022-03-25 广东赛昉科技有限公司 多核访存指令验证系统与方法
CN114153680A (zh) * 2021-12-14 2022-03-08 广东赛昉科技有限公司 一种二级缓存接口协议的验证方法及系统
CN115202738A (zh) * 2022-06-13 2022-10-18 广东赛昉科技有限公司 一种写穿策略下多核系统的验证方法和系统
CN115481048A (zh) * 2022-09-02 2022-12-16 新华三半导体技术有限公司 一种内存系统及芯片

Also Published As

Publication number Publication date
CN116643945A (zh) 2023-08-25

Similar Documents

Publication Publication Date Title
US6892286B2 (en) Shared memory multiprocessor memory model verification system and method
JP7405773B2 (ja) マルチコア相互接続のレベル2キャッシュへのアクセスを検証する方法
US6021261A (en) Method and system for testing a multiprocessor data processing system utilizing a plurality of event tracers
EP2485149A1 (en) Symbolic execution and test generation for programs to be run on a graphic processor
EP2037368A2 (en) Simulation of program execution to detect problem such as deadlock
CN105930242B (zh) 一种支持精确访存检测的多核处理器随机验证方法及装置
US20110252424A1 (en) System and method for detecting deadlock in a multithread program
US9081628B2 (en) Detecting potential access errors in a multi-threaded application
US8296518B2 (en) Arithmetic processing apparatus and method
CN115130402B (zh) 一种缓存验证方法、系统、电子设备及可读存储介质
CN115563914A (zh) 验证方法及装置、计算设备、计算机可读存储介质
US8392891B2 (en) Technique for finding relaxed memory model vulnerabilities
CN116049034A (zh) 一种多核处理器系统的缓存一致性的验证方法及装置
JP5628411B2 (ja) 半導体装置
US10846211B2 (en) Testing kernel mode computer code by executing the computer code in user mode
US5794012A (en) Verification of strongly ordered memory accesses in a functional model of an out-of-order computer system
CN116643945B (zh) 一种二级缓存的数据检测方法、系统及计算机设备
Ziv Cross-product functional coverage measurement with temporal properties-based assertions [logic verification]
US20230367516A1 (en) Program Detection Method and Apparatus
CN110727611B (zh) 一种带状态监测的可配置一致性验证系统
CN117112522A (zh) 并发进程日志管理方法、装置、设备和存储介质
CN114428749B (zh) 用于验证cache的检测器
CN116167310A (zh) 一种验证多核心处理器缓存一致性的方法及装置
US8935200B2 (en) Dynamic database dump
US7103812B1 (en) Method and apparatus for tracking memory access statistics for data sharing applications

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