CN109062613A - 多核互联二级缓存访问验证方法 - Google Patents

多核互联二级缓存访问验证方法 Download PDF

Info

Publication number
CN109062613A
CN109062613A CN201810558363.5A CN201810558363A CN109062613A CN 109062613 A CN109062613 A CN 109062613A CN 201810558363 A CN201810558363 A CN 201810558363A CN 109062613 A CN109062613 A CN 109062613A
Authority
CN
China
Prior art keywords
cache
multicore
expected
main memory
queue
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
Application number
CN201810558363.5A
Other languages
English (en)
Other versions
CN109062613B (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.)
Hangzhou C Sky Microsystems Co Ltd
Original Assignee
Hangzhou C Sky Microsystems 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 Hangzhou C Sky Microsystems Co Ltd filed Critical Hangzhou C Sky Microsystems Co Ltd
Priority to CN201810558363.5A priority Critical patent/CN109062613B/zh
Publication of CN109062613A publication Critical patent/CN109062613A/zh
Priority to EP19810228.7A priority patent/EP3797359B1/en
Priority to PCT/CN2019/089556 priority patent/WO2019228506A1/en
Priority to JP2020564129A priority patent/JP7405773B2/ja
Priority to US16/488,502 priority patent/US11550646B2/en
Application granted granted Critical
Publication of CN109062613B publication Critical patent/CN109062613B/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/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/0721Error 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 within a central processing unit [CPU]
    • G06F11/0724Error 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 within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • 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/0766Error or fault reporting or storing
    • 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/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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
    • 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/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0828Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
    • 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/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • 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/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • 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/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明提供一种多核互联二级缓存访问验证方法,要解决的技术问题是多核互联二级缓存功能验证过程遇到的错误定位延时长、校验预期结果生成困难的问题。技术方案是通过一致性传输监测模块实时检测多核互联系统与各单核处理器、二级缓存和主存的交互,并将收集的传输信息发送给二级缓存预期生成器和校验模块。二级缓存预期生成器依据多核一致性协议,从全局内存精准控制模块中获得信息后,生成预期结果。校验模块负责预期结果与实际结果的对比,从而无延时实现多核互联对二级缓存访问的正确性判断。

Description

多核互联二级缓存访问验证方法
技术领域
本发明涉及多核处理器验证技术领域,尤其涉及一种多核互联二级缓存访问验证方法。
背景技术
当前,随着对计算能力不断增长的需求,使得高性能处理器设计深耕于多核领域。而多核处理器对传统的多级高速缓存结构提出了更高的要求,各个单核之间的缓存(cache)如何高效、精确地进行数据一致性的维护成为研究难题。多核互联结构的提出,旨在依据缓存一致性协议,将各单核发出的各种类型访存传输转发至其他单核或者下一次缓存。但是,其执行结果预期依赖于传输种类与当前地址一致性属性,此种多样化特点也给多核验证领域带来巨大的挑战。
考虑到进一步提高多核互联的性能,设计人员往往在多核互联结构中增加二级缓存。当各单核内部的缓存对某一地址均出现数据缺失时,将由原先的直接向片外主存获取数据,转变为对二级缓存的访问,从而大幅减少访存延时。与之相对应的是,多核互联验证新增一个全新的维度,需要对二级缓存的访问与否与访问内容均进行校验。传统的验证流程是基于单核访问的方式来进行,当多核互联结构的二级缓存访问出现问题时,很难快速、精准定位。同时单核发出的传输类型多样化与当前缓存行处于各异的一致性状态均给二级缓存访问结果判断带来复杂度。使得多核互联二级缓存验证过程中出现错误定位延时长、校验预期结果生成困难。
发明内容
为了解决多核互联二级缓存功能验证过程遇到的错误定位延时长、校验预期结果生成困难的问题,本发明提供了一种支持实时校验,符合多核一致性协议预期精确生成的多核互联二级缓存访问验证方法。
本发明解决其技术问题所采用的技术方案是:
一种多核互联二级缓存访问验证方法,包括:
步骤1:将各单核处理器向多核互联系统发送的传输通过一致性传输监测模块实时检测,并将收集的传输信息发送给二级缓存预期生成器;
步骤2:二级缓存预期生成器对接收到的传输信息进行预处理,分拣出需要访问二级缓存的操作,并存放到缓存预期队列中;
步骤3:将多核互联系统向二级缓存发送的访问请求通过一致性传输监测模块实时观测,并将收集的传输信息发送给缓存校验模块;
步骤4:缓存校验模块根据步骤3接收的请求识别号从缓存预期队列中寻找是否存在此请求对应的预期结果,如果预期队列中不存在有效结果,或者预期队列中存在有效结果,但预期结果与实际结果不一致,则认为系统发生错误,将报错并提供错误信息;否则认为多核互联系统操作正确,继续执行步骤5;
步骤5:将二级缓存向多核互联系统发送的反馈信息通过一致性传输监测模块实时观测,并将收集的传输信息发送给二级缓存预期生成器;
步骤6:二级缓存预期生成器按照步骤5收集的二级缓存反馈信息,从全局内存精准控制模块中获得各核缓存行状态,判断是否需要再次访问二级缓存,如果需要访问,则更新缓存预期队列中对应表项信息;如果无需访问,则将缓存预期队列中对应表项信息删除;同时判断是否需要访问主存,如果需要,则存放到主存预期队列中;
步骤7:将多核互联系统对主存发起的访问请求通过一致性传输监测模块实时观测,并将收集的传输信息发送给主存校验模块;
步骤8:主存校验模块根据步骤7接收的请求识别号从主存预期队列中寻找此请求的有效预期结果,如果预期队列中不存在有效结果,或者预期队列中存在有效结果,但预期结果与实际结果不一致,则认为系统出现错误,主存校验模块将报错并提供错误信息;否则认为多核互联系统操作正确,继续执行步骤9;
步骤9:当所有传输结束时,缓存校验模块检查缓存预期队列是否仍旧存在剩余表项,主存校验模块检查主存预期队列是否仍旧存在剩余表项,如果缓存预期队列或者主存预期队列存在剩余表项,则认为系统出现错误,缓存校验模块或者主存校验模块将报错并提供错误信息;否则认为多核互联系统操作正确。
可选地,所述步骤1中收集的传输信息包括多核一致性操作类型、操作地址、操作地址区间大小、操作数据、操作地址属性和操作识别号。
可选地,所述步骤2中对传输信息进行预处理的方式包括:根据操作地址属性来进行筛选,如果操作地址属性是非缓存属性,则操作不会访问二级缓存;如果操作地址属性是缓存属性,则操作将访问二级缓存。
可选地,所述步骤3中收集的传输信息包括二级缓存操作类型、操作地址、操作数据和操作识别号。
可选地,所述步骤4和步骤6中支持两个及两个以上具有相同的识别号不同传输的校验操作;单核发出两个及两个以上具有相同识别号的不同传输,多核互联系统将按照发送的先后顺序转发请求,校验系统也将按照相同规则进行正确性判定。
可选地,所述步骤5中收集的传输信息包括缓存缺失与否指示以及返回数据。
可选地,在所述步骤6中,全局内存精准控制模块记录各单核对内存地址的写操作地址与数据以及内存地址在各单核的缓存行状态。
可选地,在所述步骤6中,二级缓存预期生成器依据全局内存精准控制模块记录提供的内存地址在各单核的缓存行状态与二级缓存返回信息,对二级缓存的访问操作依据总线传输协议转换成对主存的访问。
可选地,所述步骤7中收集的传输信息包括主存访问操作类型、操作地址、操作地址区间大小、操作数据、操作地址属性和操作识别号。
可选地,在所述步骤9中,当多核互联系统出错导致传输丢失情形时,缓存校验模块或者主存校验模块将立即报错。
本发明提供的多核互联二级缓存访问验证方法,在多核互联系统执行操作过程中,具备不依赖于激励产生方式而能自主收集交互信息,并依据缓存一致性原理,独立维护全局内存精准控制模块,然后无延时提供二级缓存访问预期结果,且支持多次缓存访问判定,最终与实际结果进行比较,帮助快速定位错误。
附图说明
图1为本发明实施例提供的多核互联二级缓存访问验证的系统框图;
图2为本发明实施例提供的对二级缓存访问进行无延时校验的执行流程;
图3为本发明实施例提供的全局精准控制模块表项内容。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种多核互联二级缓存访问验证方法,如图1和图2所示,所述方法包括以下步骤:
步骤1:将各单核处理器向多核互联系统发送的传输通过一致性传输监测模块实时检测,并将收集的传输信息发送给二级缓存预期生成器;
步骤2:二级缓存预期生成器对接收到的传输信息进行预处理,分拣出需要访问二级缓存的操作,并存放到缓存预期队列中;
步骤3:将多核互联系统向二级缓存发送的访问请求通过一致性传输监测模块实时观测,并将收集的传输信息发送给缓存校验模块;
步骤4:缓存校验模块根据步骤3接收的请求识别号从缓存预期队列中寻找是否存在此请求对应的预期结果,如果预期队列中不存在有效结果,或者预期队列中存在有效结果,但预期结果与实际结果不一致,则认为系统发生错误,将报错并提供错误信息;否则认为多核互联系统操作正确,继续执行步骤5;
步骤5:将二级缓存向多核互联系统发送的反馈信息通过一致性传输监测模块实时观测,并将收集的传输信息发送给二级缓存预期生成器;
步骤6:二级缓存预期生成器按照步骤5收集的二级缓存反馈信息,从全局内存精准控制模块中获得各核缓存行状态,判断是否需要再次访问二级缓存,如果需要访问,则更新缓存预期队列中对应表项信息;如果无需访问,则将缓存预期队列中对应表项信息删除;同时判断是否需要访问主存,如果需要,则存放到主存预期队列中;
步骤7:将多核互联系统对主存发起的访问请求通过一致性传输监测模块实时观测,并将收集的传输信息发送给主存校验模块;
步骤8:主存校验模块根据步骤7接收的请求识别号从主存预期队列中寻找此请求的有效预期结果,如果预期队列中不存在有效结果,或者预期队列中存在有效结果,但预期结果与实际结果不一致,则认为系统出现错误,主存校验模块将报错并提供错误信息;否则认为多核互联系统操作正确,继续执行步骤9;
步骤9:当所有传输结束时,缓存校验模块检查缓存预期队列是否仍旧存在剩余表项,主存校验模块检查主存预期队列是否仍旧存在剩余表项,如果缓存预期队列或者主存预期队列存在剩余表项,则认为系统出现错误,缓存校验模块或者主存校验模块将报错并提供错误信息;否则认为多核互联系统操作正确。
如图1所示,一致性传输监测模块实时监测多核系统内各单核处理器是否发出传输,如果发出传输,将收集传输信息。该收集过程不依赖于验证平台输入的测试激励类型,通过监视模块独立自主完成。之后二级缓存预期生成器将利用该信息,分拣出需要访问二级缓存的操作。该分拣过程是通过分析多核一致性操作类型和操作地址属性实现。然后一致性传输监测模块将观察多核互联系统是否向二级缓存发起访问,如果发出访问,将收集访问信息,并通知缓存校验模块进行检查。缓存校验模块从缓存预期队列中寻找是否存在该请求预期结果。如果预期队列中不存在有效结果,或者预期队列中存在有效结果,但预期结果与实际结果不一致,则认为系统发生错误,将报错并提供错误信息。至此,请求的第一次向二级缓存发起访问的结果正确性对比完成。
如图1所示,多核互联系统和与其交互的CPU(处理器)核0,CPU核1,CPU核2,CPU核3、二级缓存、主存。一致性传输监测模块负责监测CPU(处理器)核0,CPU核1,CPU核2,CPU核3、二级缓存和主存是否与多核互联系统发生通讯,如果存在通讯,则收集信息,然后传给二级缓存预期生成器。二级缓存预期生成器将会依赖于全局内存精准控制模块生成多核互联系统对缓存与主存的访问预期。缓存校验模块与主存校验模块将把预期结果与实际结果进行对比,并生成工作正确性报告。
如图2所示,一致性传输监测模块观察二级缓存向多核互联系统发送的反馈信息,包含缓存缺失与否指示、返回数据。二级缓存预期生成器将依据反馈信息,从全局内存精准控制模块中获得各核缓存行状态,依据缓存一致性协议,判断是否需要再次访问二级缓存。如果需要访问,则更新缓存预期队列中对应表项信息。如果无需访问,则将缓存预期队列中对应表项信息删除。同时,判断是否需要访问主存。如果需要,则存放到主存预期队列中。然后一致性传输监测模块将观察多核互联系统是否向二级缓存再次发起访问,如果发出访问,将收集访问信息,并通知缓存校验模块进行检查。缓存校验模块从缓存预期队列中寻找是否存在第二次访问请求预期结果。如果预期队列中不存在有效结果,或者预期队列中存在有效结果,但预期结果与实际结果不一致,则认为系统发生错误,将报错并提供错误信息。至此,同一个请求第二次向二级缓存发起访问的结果正确性对比完成。
如图2所示,一致性传输监测模块实时观测多核互联系统对主存发起访问传输,如果发出传输,将收集传输信息。主存校验模块根据传输信息识别号从主存预期队列中寻找此请求的有效预期结果。如果预期队列中不存在有效结果,或者预期队列中存在有效结果,但预期结果与实际结果不一致,则认为系统出现错误,主存校验模块将报错并提供错误信息。至此,同一个请求向主存发起访问的结果正确性对比完成。
如图2所示,当所有传输均执行完成时,缓存校验模块将检查缓存预期队列是否仍旧存在剩余表项,主存校验模块将检查主存预期队列是否仍旧存在剩余表项。如果缓存预期队列或者主存预期队列存在剩余表项,则认为系统出现错误,缓存校验模块或者主存校验模块将报错并提供错误信息。否则认为多核互联系统操作正确。
如图3所示,全局精准控制模块记录各单核对内存地址的写操作地址与数据、内存地址在各单核的缓存行状态。对于同一个地址的信息记录,只会在全局精准控制模块中存在一个表项。并且对于多个地址的存放方式采用队列的形式,从而减少存放空间的占用。
本发明提供的多核互联二级缓存访问验证方法,在多核互联系统执行操作过程中,具备不依赖于激励产生方式而能自主收集交互信息,并依据缓存一致性原理,独立维护全局内存精准控制模块,然后无延时提供二级缓存访问预期结果,且支持多次缓存访问判定,最终与实际结果进行比较,帮助快速定位错误。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (10)

1.一种多核互联二级缓存访问验证方法,其特征在于,包括:
步骤1:将各单核处理器向多核互联系统发送的传输通过一致性传输监测模块实时检测,并将收集的传输信息发送给二级缓存预期生成器;
步骤2:二级缓存预期生成器对接收到的传输信息进行预处理,分拣出需要访问二级缓存的操作,并存放到缓存预期队列中;
步骤3:将多核互联系统向二级缓存发送的访问请求通过一致性传输监测模块实时观测,并将收集的传输信息发送给缓存校验模块;
步骤4:缓存校验模块根据步骤3接收的请求识别号从缓存预期队列中寻找是否存在此请求对应的预期结果,如果预期队列中不存在有效结果,或者预期队列中存在有效结果,但预期结果与实际结果不一致,则认为系统发生错误,将报错并提供错误信息;否则认为多核互联系统操作正确,继续执行步骤5;
步骤5:将二级缓存向多核互联系统发送的反馈信息通过一致性传输监测模块实时观测,并将收集的传输信息发送给二级缓存预期生成器;
步骤6:二级缓存预期生成器按照步骤5收集的二级缓存反馈信息,从全局内存精准控制模块中获得各核缓存行状态,判断是否需要再次访问二级缓存,如果需要访问,则更新缓存预期队列中对应表项信息;如果无需访问,则将缓存预期队列中对应表项信息删除;同时判断是否需要访问主存,如果需要,则存放到主存预期队列中;
步骤7:将多核互联系统对主存发起的访问请求通过一致性传输监测模块实时观测,并将收集的传输信息发送给主存校验模块;
步骤8:主存校验模块根据步骤7接收的请求识别号从主存预期队列中寻找此请求的有效预期结果,如果预期队列中不存在有效结果,或者预期队列中存在有效结果,但预期结果与实际结果不一致,则认为系统出现错误,主存校验模块将报错并提供错误信息;否则认为多核互联系统操作正确,继续执行步骤9;
步骤9:当所有传输结束时,缓存校验模块检查缓存预期队列是否仍旧存在剩余表项,主存校验模块检查主存预期队列是否仍旧存在剩余表项,如果缓存预期队列或者主存预期队列存在剩余表项,则认为系统出现错误,缓存校验模块或者主存校验模块将报错并提供错误信息;否则认为多核互联系统操作正确。
2.根据权利要求1所述的多核互联二级缓存访问验证方法,其特征在于:所述步骤1中收集的传输信息包括多核一致性操作类型、操作地址、操作地址区间大小、操作数据、操作地址属性和操作识别号。
3.根据权利要求1所述的多核互联二级缓存访问验证方法,其特征在于:所述步骤2中对传输信息进行预处理的方式包括:根据操作地址属性来进行筛选,如果操作地址属性是非缓存属性,则操作不会访问二级缓存;如果操作地址属性是缓存属性,则操作将访问二级缓存。
4.根据权利要求1所述的多核互联二级缓存访问验证方法,其特征在于:所述步骤3中收集的传输信息包括二级缓存操作类型、操作地址、操作数据和操作识别号。
5.根据权利要求1所述的多核互联二级缓存访问验证方法,其特征在于:所述步骤4和步骤6中支持两个及两个以上具有相同的识别号不同传输的校验操作;单核发出两个及两个以上具有相同识别号的不同传输,多核互联系统将按照发送的先后顺序转发请求,校验系统也将按照相同规则进行正确性判定。
6.根据权利要求1所述的多核互联二级缓存访问验证方法,其特征在于:所述步骤5中收集的传输信息包括缓存缺失与否指示以及返回数据。
7.根据权利要求1所述的多核互联二级缓存访问验证方法,其特征在于:在所述步骤6中,全局内存精准控制模块记录各单核对内存地址的写操作地址与数据以及内存地址在各单核的缓存行状态。
8.根据权利要求1所述的多核互联二级缓存访问验证方法,其特征在于:在所述步骤6中,二级缓存预期生成器依据全局内存精准控制模块记录提供的内存地址在各单核的缓存行状态与二级缓存返回信息,对二级缓存的访问操作依据总线传输协议转换成对主存的访问。
9.根据权利要求1所述的多核互联二级缓存访问验证方法,其特征在于:所述步骤7中收集的传输信息包括主存访问操作类型、操作地址、操作地址区间大小、操作数据、操作地址属性和操作识别号。
10.根据权利要求1所述的多核互联二级缓存访问验证方法,其特征在于:在所述步骤9中,当多核互联系统出错导致传输丢失情形时,缓存校验模块或者主存校验模块将立即报错。
CN201810558363.5A 2018-06-01 2018-06-01 多核互联二级缓存访问验证方法 Active CN109062613B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201810558363.5A CN109062613B (zh) 2018-06-01 2018-06-01 多核互联二级缓存访问验证方法
EP19810228.7A EP3797359B1 (en) 2018-06-01 2019-05-31 Method of verifying access of multi-core interconnect to level-2 cache
PCT/CN2019/089556 WO2019228506A1 (en) 2018-06-01 2019-05-31 Method of verifying access of multi-core interconnect to level-2 cache
JP2020564129A JP7405773B2 (ja) 2018-06-01 2019-05-31 マルチコア相互接続のレベル2キャッシュへのアクセスを検証する方法
US16/488,502 US11550646B2 (en) 2018-06-01 2019-05-31 Method of verifying access of multi-core interconnect to level-2 cache

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810558363.5A CN109062613B (zh) 2018-06-01 2018-06-01 多核互联二级缓存访问验证方法

Publications (2)

Publication Number Publication Date
CN109062613A true CN109062613A (zh) 2018-12-21
CN109062613B CN109062613B (zh) 2020-08-28

Family

ID=64819887

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810558363.5A Active CN109062613B (zh) 2018-06-01 2018-06-01 多核互联二级缓存访问验证方法

Country Status (5)

Country Link
US (1) US11550646B2 (zh)
EP (1) EP3797359B1 (zh)
JP (1) JP7405773B2 (zh)
CN (1) CN109062613B (zh)
WO (1) WO2019228506A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019228506A1 (en) * 2018-06-01 2019-12-05 C-Sky Microsystems Co., Ltd. Method of verifying access of multi-core interconnect to level-2 cache
CN110597656A (zh) * 2019-09-11 2019-12-20 上海高性能集成电路设计中心 一种二级缓存标记阵列的校验单错处理方法
CN110727611A (zh) * 2019-09-09 2020-01-24 无锡江南计算技术研究所 一种带状态监测的可配置一致性验证系统
CN115618801A (zh) * 2022-12-01 2023-01-17 北京智芯微电子科技有限公司 缓存一致性检验方法、装置及电子设备
CN116167310A (zh) * 2023-04-25 2023-05-26 上海芯联芯智能科技有限公司 一种验证多核心处理器缓存一致性的方法及装置
CN117785292A (zh) * 2023-12-26 2024-03-29 上海合芯数字科技有限公司 多核处理器系统的缓存一致性的验证方法及验证装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112559433B (zh) * 2019-09-25 2024-01-02 阿里巴巴集团控股有限公司 一种多核互联总线、核间通信方法及多核处理器

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101008921A (zh) * 2007-01-26 2007-08-01 浙江大学 基于总线侦听的嵌入式异构多核缓存一致性方法
CN101354682A (zh) * 2008-09-12 2009-01-28 中国科学院计算技术研究所 一种用于解决多处理器访问目录冲突的装置和方法
CN101446987A (zh) * 2007-11-27 2009-06-03 上海高性能集成电路设计中心 一种用于多核处理器Cache一致性实物验证的装置
CN102103568A (zh) * 2011-01-30 2011-06-22 中国科学院计算技术研究所 片上多核处理器系统的高速缓存一致性协议的实现方法
US20110238926A1 (en) * 2007-12-28 2011-09-29 Fryman Joshua B Method And Apparatus For Supporting Scalable Coherence On Many-Core Products Through Restricted Exposure
CN102662885A (zh) * 2012-04-01 2012-09-12 天津国芯科技有限公司 对称式多核处理器维护二级缓存一致性的装置及其方法
CN103440223A (zh) * 2013-08-29 2013-12-11 西安电子科技大学 一种实现高速缓存一致性协议的分层系统及其方法
US20150067259A1 (en) * 2013-08-29 2015-03-05 Ren Wang Managing shared cache by multi-core processor
US20150095661A1 (en) * 2013-09-30 2015-04-02 Microsoft Corporation Flexible Memory Addressing For Data Security
CN105740164A (zh) * 2014-12-10 2016-07-06 阿里巴巴集团控股有限公司 支持缓存一致性的多核处理器、读写方法、装置及设备
US20170004004A1 (en) * 2015-07-02 2017-01-05 International Business Machines Corporation Transactional storage accesses supporting differing priority levels
US20180137053A1 (en) * 2016-11-15 2018-05-17 Intel Corporation Sequential data writes to increase invalid to modified protocol occurrences in a computing system

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5793941A (en) 1995-12-04 1998-08-11 Advanced Micro Devices, Inc. On-chip primary cache testing circuit and test method
WO2006090328A2 (en) 2005-02-28 2006-08-31 Koninklijke Philips Electronics N.V. Multiprocessor system, testing device and method for generating cache coherence testing traffic
JP5256948B2 (ja) * 2008-09-04 2013-08-07 富士通株式会社 キャッシュ論理検証装置、キャッシュ論理検証方法およびキャッシュ論理検証プログラム
JP2010128698A (ja) * 2008-11-26 2010-06-10 Toshiba Corp マルチプロセッサシステム
US8645762B2 (en) 2010-12-08 2014-02-04 Advanced Micro Devices, Inc. Queue freeze on protocol error
US8904073B2 (en) 2013-03-14 2014-12-02 Apple Inc. Coherence processing with error checking
WO2014204495A1 (en) * 2013-06-19 2014-12-24 Empire Technology Development, Llc Locating cached data in a multi-core processor
US10540284B2 (en) * 2014-07-29 2020-01-21 Nxp Usa, Inc. Cache-coherent multiprocessor system and a method for detecting failures in a cache-coherent multiprocessor system
US9524188B1 (en) * 2015-06-26 2016-12-20 International Business Machines Corporation Multithreaded transactions
CN109062613B (zh) * 2018-06-01 2020-08-28 杭州中天微系统有限公司 多核互联二级缓存访问验证方法
CN109032964A (zh) * 2018-07-02 2018-12-18 京东方科技集团股份有限公司 缓存替换方法及其装置、异构多核系统
US11307987B2 (en) * 2019-05-24 2022-04-19 Texas Instmments Incorporated Tag update bus for updated coherence state

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101008921A (zh) * 2007-01-26 2007-08-01 浙江大学 基于总线侦听的嵌入式异构多核缓存一致性方法
CN101446987A (zh) * 2007-11-27 2009-06-03 上海高性能集成电路设计中心 一种用于多核处理器Cache一致性实物验证的装置
US20110238926A1 (en) * 2007-12-28 2011-09-29 Fryman Joshua B Method And Apparatus For Supporting Scalable Coherence On Many-Core Products Through Restricted Exposure
CN101354682A (zh) * 2008-09-12 2009-01-28 中国科学院计算技术研究所 一种用于解决多处理器访问目录冲突的装置和方法
CN102103568A (zh) * 2011-01-30 2011-06-22 中国科学院计算技术研究所 片上多核处理器系统的高速缓存一致性协议的实现方法
CN102662885A (zh) * 2012-04-01 2012-09-12 天津国芯科技有限公司 对称式多核处理器维护二级缓存一致性的装置及其方法
CN103440223A (zh) * 2013-08-29 2013-12-11 西安电子科技大学 一种实现高速缓存一致性协议的分层系统及其方法
US20150067259A1 (en) * 2013-08-29 2015-03-05 Ren Wang Managing shared cache by multi-core processor
US20150095661A1 (en) * 2013-09-30 2015-04-02 Microsoft Corporation Flexible Memory Addressing For Data Security
CN105740164A (zh) * 2014-12-10 2016-07-06 阿里巴巴集团控股有限公司 支持缓存一致性的多核处理器、读写方法、装置及设备
US20170004004A1 (en) * 2015-07-02 2017-01-05 International Business Machines Corporation Transactional storage accesses supporting differing priority levels
US20180137053A1 (en) * 2016-11-15 2018-05-17 Intel Corporation Sequential data writes to increase invalid to modified protocol occurrences in a computing system

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019228506A1 (en) * 2018-06-01 2019-12-05 C-Sky Microsystems Co., Ltd. Method of verifying access of multi-core interconnect to level-2 cache
US11550646B2 (en) 2018-06-01 2023-01-10 C-Sky Microsystems Co., Ltd. Method of verifying access of multi-core interconnect to level-2 cache
CN110727611A (zh) * 2019-09-09 2020-01-24 无锡江南计算技术研究所 一种带状态监测的可配置一致性验证系统
CN110597656A (zh) * 2019-09-11 2019-12-20 上海高性能集成电路设计中心 一种二级缓存标记阵列的校验单错处理方法
CN110597656B (zh) * 2019-09-11 2023-08-08 上海高性能集成电路设计中心 一种二级缓存标记阵列的校验单错处理方法
CN115618801A (zh) * 2022-12-01 2023-01-17 北京智芯微电子科技有限公司 缓存一致性检验方法、装置及电子设备
CN116167310A (zh) * 2023-04-25 2023-05-26 上海芯联芯智能科技有限公司 一种验证多核心处理器缓存一致性的方法及装置
CN117785292A (zh) * 2023-12-26 2024-03-29 上海合芯数字科技有限公司 多核处理器系统的缓存一致性的验证方法及验证装置

Also Published As

Publication number Publication date
CN109062613B (zh) 2020-08-28
JP7405773B2 (ja) 2023-12-26
JP2021524966A (ja) 2021-09-16
US20210357327A1 (en) 2021-11-18
EP3797359A4 (en) 2021-08-18
US11550646B2 (en) 2023-01-10
EP3797359A1 (en) 2021-03-31
EP3797359B1 (en) 2024-04-17
WO2019228506A1 (en) 2019-12-05

Similar Documents

Publication Publication Date Title
CN109062613A (zh) 多核互联二级缓存访问验证方法
JP6574779B2 (ja) 複数のトランザクションを扱うためのデータ処理システム及びデータ処理方法
CN104935680B (zh) 一种多层级共享缓存的递归域名服务系统和方法
CN107391649A (zh) 一种提升区块链查询效率的系统及方法
CN109921996A (zh) 一种高性能的OpenFlow虚拟流表查找方法
CN109614262A (zh) 业务校验方法、装置及计算机可读存储介质
CN105701219B (zh) 一种分布式缓存的实现方法
CN108959337A (zh) 大数据获取方法、装置、设备及存储介质
CN108021429B (zh) 一种基于numa架构的虚拟机内存及网卡资源亲和度计算方法
CN104156400B (zh) 一种海量网络流数据的存储方法及装置
CN110413541A (zh) 支持附加实地址不可知加速器的集成电路和数据处理系统
CN108780458A (zh) 一种页面缓存处理方法、装置和服务器
CN115130402A (zh) 一种缓存验证方法、系统、电子设备及可读存储介质
JP2023541298A (ja) トランザクション処理方法、システム、装置、機器、及びプログラム
CN108989390A (zh) 用户请求转发方法及装置、反向代理服务器和计算机可读存储介质
CN116627857B (zh) 一种处理器核外缓存模型及模拟方法
CN109547294A (zh) 一种基于固件分析的联网设备型号探测方法、装置
Eiríksson The formal design of 1M-gate ASICs
CN110109931A (zh) 一种用于防止rac实例间数据访问发生冲突的方法及系统
CN110520845A (zh) 更新htm用户异常中止元数据
US20060174155A1 (en) System, method and computer program product for testing software
CN107332945A (zh) 一种虚拟机ip地址获取方法及装置
CN103455364A (zh) 一种多核环境并行程序Cache性能在线获取系统及方法
CN109120691A (zh) 业务系统的状态检测方法、系统、装置及计算机可读介质
CN107908470B (zh) 一种基于cim模型的查询访问方法、装置及系统

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