CN109522049B - 一种同步多线程系统中共享寄存器的验证方法及装置 - Google Patents

一种同步多线程系统中共享寄存器的验证方法及装置 Download PDF

Info

Publication number
CN109522049B
CN109522049B CN201710842395.3A CN201710842395A CN109522049B CN 109522049 B CN109522049 B CN 109522049B CN 201710842395 A CN201710842395 A CN 201710842395A CN 109522049 B CN109522049 B CN 109522049B
Authority
CN
China
Prior art keywords
thread
instruction information
instruction
shared register
information
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
CN201710842395.3A
Other languages
English (en)
Other versions
CN109522049A (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.)
Spreadtrum Communications Shanghai Co Ltd
Original Assignee
Spreadtrum Communications Shanghai 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 Spreadtrum Communications Shanghai Co Ltd filed Critical Spreadtrum Communications Shanghai Co Ltd
Priority to CN201710842395.3A priority Critical patent/CN109522049B/zh
Publication of CN109522049A publication Critical patent/CN109522049A/zh
Application granted granted Critical
Publication of CN109522049B publication Critical patent/CN109522049B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/30098Register arrangements
    • G06F9/30141Implementation provisions of register files, e.g. ports

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种同步多线程系统中共享寄存器的验证方法及装置,所述方法包括:当同步多线程系统中至少两个线程同时访问同一共享寄存器时,对所述线程所执行的指令序列分别进行监测并分别获取所述线程对应的指令信息;根据所获取的指令信息识别出非法的指令序列并发出错误提示信息。本发明能够优化同步多线程系统中共享寄存器的验证方式,达到提高验证人员针对共享寄存器编程的灵活性,以及对共享寄存器验证的随机性和完备性的作用。

Description

一种同步多线程系统中共享寄存器的验证方法及装置
技术领域
本发明涉及计算机处理器技术领域,尤其涉及一种同步多线程系统中共享寄存器的验证方法及装置。
背景技术
随着CPU技术的发展,CPU的主频与性能不断提高,需要调入指令和数据的速度不断提高。因此,为了开发指令级并行(ILP),在过去的几十年中利用了超标量(同时具备多个执行器)、乱序执行(允许无数据关联性的指令同时运行)、动态分支预测,超长指令集(VLIW)等技术。然而,超标量使设计的复杂性急剧增加,同时,指令之间的数据相关和控制相关,可以开发的ILP也有限,以及一些其他因素,使得经典的超标量结构处理器难以进一步提高处理器性能,因此,为了提高处理器的性能,则采用同步多线程(SMT),SMT可以在一个时钟周期内执行来自多个线程的指令,利用处理器超标量的思想来提高处理器使用率。
同时,多线程是处理器设计中的一种线程级并行技术,能够同时调动多个线程执行多个应用程序,提高处理器的吞吐量。在SMT系统中,针对共享寄存器的验证会遇到以下两方面的问题:
(1)多个线程同时读/写同一个共享寄存器,从系统的角度可能会产生一些非法的访问序列,导致发生读后写相关,从而某个线程读到的值并不一定是该共享寄存器的最新值。在某些场景下,这样的读后写相关会导致系统发生死锁。
(2)由于在一段时间内可能存在多个线程修改同一个共享寄存器的值,因此,对同一个线程来说,读到的值并不一定是该线程之前写入的值,而是其他线程写入的值,所以在进行结果检测时,某一线程读到的值并不唯一。
针对上述问题,目前主要采取软件规避的方式避免产生针对共享寄存器的非法访问序列,虽然简单且成本低廉,但损失了验证的随机性和完备性,还可能导致无意中漏掉了某些边界情况,使得验证存在风险的问题。
发明内容
本发明提供的同步多线程系统中共享寄存器的验证方法及装置,能够优化同步多线程系统中共享寄存器的验证方式,达到提高验证人员针对共享寄存器编程的灵活性,以及对共享寄存器验证的随机性和完备性的作用。
第一方面,本发明提供一种同步多线程系统中共享寄存器的验证方法,包括:
当同步多线程系统中至少两个线程同时访问同一共享寄存器时,对所述线程所执行的指令序列分别进行监测并分别获取所述线程对应的指令信息;
根据所获取的指令信息识别出非法的指令序列并发出错误提示信息。
可选地,所述指令信息包括读/写属性信息、写入值信息和指令的完成状态信息中一种或者任意组合。
可选地,所述根据所获取的指令信息识别出非法的指令序列包括:
提取对第一线程进行监测所获取的第一线程的指令信息;
提取对第二线程进行监测所获取的第二线程的指令信息;
根据第一线程的指令信息和第二线程的指令信息识别出非法的指令序列。
可选地,所述根据第一线程的指令信息和第二线程的指令信息识别出非法的指令序列包括:
当第一线程的指令信息中读请求已完成后,判断第二线程的指令信息中写请求是否完成,如果所述写请求已完成,则所述指令序列不是非法的指令序列并执行下一步;如果所述写请求未完成,则所述指令序列为非法的指令序列。
可选地,在所述对所述线程所执行的指令序列分别进行监测并分别获取所述线程对应的指令信息之后,所述方法还包括:
将所获取的指令信息进行存储。
可选地,在所述对所述线程所执行的指令序列分别进行监测并分别获取所述线程对应的指令信息之后,所述方法还包括:
对共享寄存器的值进行验证。
可选地,所述对共享寄存器的值进行验证包括:
获取共享寄存器的更新结果;
提取所存储的指令信息;
根据所述更新结果和所存储的指令信息判断共享寄存器的值是否正确,如果所述共享寄存器的值正确,则继续对共享寄存器进行验证;如果共享寄存器的值不正确,则发出错误提示信息。
可选地,所述根据所述更新结果和所存储的指令信息判断共享寄存器的值是否正确为判断所述更新结果是否在所存储的指令信息内,如果在所存储的指令信息内,则所述共享寄存器的值正确;如果不在所存储的指令信息内,则共享寄存器的值不正确。
第二方面,本发明提供一种同步多线程系统中共享寄存器的验证装置,包括:
共享寄存器,分别与同步多线程系统中各线程连接,并用于同步多线程系统中各线程同时访问;
访问监测器,分别与同步多线程系统中各线程连接,并用于对各线程进行监测并获取各线程对应的指令信息,以及根据所获取的指令信息识别出非法的指令序列并发出错误提示信息。
可选地,所述访问监测器包括:
监测模块,用于对各线程进行监测并获取各线程对应的指令信息;
存储模块,用于将所获取的指令信息进行存储;
识别模块,用于根据所获取的指令信息识别出非法的指令序列;
错误发送模块,用于发出错误提示信息。
可选地,所述识别模块包括:
第一提取单元,用于提取对第一线程进行监测所获取的第一线程的指令信息;
第二提取单元,用于提取对第二线程进行监测所获取的第二线程的指令信息;
识别单元,用于根据第一线程的指令信息和第二线程的指令信息识别出非法的指令序列。
可选地,所述装置还包括:
验证控制器,用于对共享寄存器的值进行验证。
可选地,所述验证控制器包括:
获取模块,用于获取共享寄存器的更新结果;
提取模块,用于提取所存储的指令信息;
判断模块,用于根据所述更新结果和所存储的指令信息判断共享寄存器的值是否正确。
本发明实施例提供的同步多线程系统中共享寄存器的验证方法及装置,所述方法为当同步多线程系统中至少两个线程同时访问同一共享寄存器时,对所述线程所执行的指令序列分别进行监测并分别获取所述线程对应的指令信息,例如,当同步多线程系统中第一线程、第二线程和第三线程同时执行各自的指令序列,独立访问同一共享寄存器时,同时对第一线程所执行的指令序列进行监测并获取第一线程的指令信息、第二线程所执行的指令序列进行监测并获取第二线程的指令信息和第三线程所执行的指令序列进行监测并获取第三线程的指令信息,其中,所述对所述线程所执行的指令序列分别进行监测并分别获取所述线程对应的指令信息可通过对所述线程当前访问的共享寄存器、读/写属性信息、写入值信息和访问的完成状态信息进行监测,获取所述线程对应的指令信息;然后,所述根据所获取的指令信息识别出非法的指令序列并发出错误提示信息主要是通过各线程的读/写属性信息和访问的完成状态信息进行分析,并判断出是否存在非法指令序列,因此,所述验证方法实现了对各线程进行监测并自行分析识别出非法的指令序列,同时,当识别出非法的指令序列时,向验证人员发出错误提示信息,帮助验证人员分析验证程序,进而防止由于共享寄存器的竞争访问而导致的死锁。
同时,本实施例所述验证方法对同步多线程系统中的每个线程的指令信息进行单独的监测、记录、跟踪和分析,并根据各线程的指令信息和共享寄存器的值识别出非法的指令序列,从而帮助验证人员分析验证程序,避免由于同步多线程系统中多线程同时访问共享寄存器产生的读后写相关带来的程序死锁。因此,所述验证方法优化了同步多线程系统中共享寄存器的验证方式,不仅达到提高验证人员针对共享寄存器编程的灵活性,以及对共享寄存器验证的随机性和完备性的作用,同时,还能避免由于无意中漏掉了某些边界情况,导致处理器存在风险的问题。
附图说明
图1为本发明一实施例同步多线程系统中共享寄存器的验证方法的流程图;
图2为本发明另一实施例同步多线程系统中共享寄存器的验证方法的流程图;
图3为本发明另一实施例同步多线程系统中共享寄存器的验证方法的流程图;
图4为本发明一实施例同步多线程系统中共享寄存器的验证装置的结构示意图;
图5为本发明另一实施例同步多线程系统中共享寄存器的验证装置的结构示意图;
图6为本发明另一实施例同步多线程系统中共享寄存器的验证装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种同步多线程系统中共享寄存器的验证方法,如图1所示,所述方法包括:
S11、当同步多线程系统中至少两个线程同时访问同一共享寄存器时,对所述线程所独立执行的指令序列分别进行监测并分别获取所述线程对应的指令信息;
S12、根据所获取的指令信息识别出非法的指令序列并发出错误提示信息。
本发明实施例提供的同步多线程系统中共享寄存器的验证方法为当同步多线程系统中至少两个线程同时访问同一共享寄存器时,对所述线程所执行的指令序列分别进行监测并分别获取所述线程对应的指令信息,例如,当同步多线程系统中第一线程、第二线程和第三线程同时执行各自的指令序列,独立访问同一共享寄存器时,同时对第一线程所执行的指令序列进行监测并获取第一线程的指令信息、第二线程所执行的指令序列进行监测并获取第二线程的指令信息和第三线程所执行的指令序列进行监测并获取第三线程的指令信息,其中,所述对所述线程所执行的指令序列分别进行监测并分别获取所述线程对应的指令信息可通过对所述线程当前访问的共享寄存器、读/写属性信息、写入值信息和访问的完成状态信息进行监测,获取所述线程对应的指令信息;然后,所述根据所获取的指令信息识别出非法的指令序列并发出错误提示信息主要是通过各线程的读/写属性信息和访问的完成状态信息进行分析,并判断出是否存在非法指令序列,因此,所述验证方法实现了对各线程进行监测并自行分析识别出非法的指令序列,同时,当识别出非法的指令序列时,向验证人员发出错误提示信息,帮助验证人员分析验证程序,进而防止由于共享寄存器的竞争访问而导致的死锁。
本实施例所述验证方法对同步多线程系统中的每个线程的指令信息进行单独的监测、记录、跟踪和分析,并根据各线程的指令信息和共享寄存器的值识别出非法的指令序列,从而帮助验证人员分析验证程序,避免由于同步多线程系统中多线程同时访问共享寄存器产生的读后写相关带来的程序死锁。因此,所述验证方法优化了同步多线程系统中共享寄存器的验证方式,不仅达到提高验证人员针对共享寄存器编程的灵活性,以及对共享寄存器验证的随机性和完备性的作用,同时,还能避免由于无意中漏掉了某些边界情况,导致处理器存在风险的问题。
可选地,如图2所示,所述指令信息包括读/写属性信息、写入值信息和指令的完成状态信息中一种或者任意组合。
可选地,所述根据所获取的指令信息识别出非法的指令序列包括:
提取对第一线程进行监测所获取的第一线程的指令信息;
提取对第二线程进行监测所获取的第二线程的指令信息;
根据第一线程的指令信息和第二线程的指令信息识别出非法的指令序列。
具体的,本实施例中所述验证方法当同步多线程系统中两个线程同时访问同一共享寄存器时,则同时对第一线程所执行的指令序列进行监测并获取第一线程的指令信息、和第二线程所执行的指令序列进行监测并获取第二线程的指令信息;然后将分别将需分析的第一线程的指令信息和第二线程的指令信息提取出来进行分析判断,并识别出其中所出现的非法的指令序列。
其中,所述验证方法通过对两条线程进行具体的说明但是不限于两条线程同时对共享寄存器进行访问。
可选地,所述根据第一线程的指令信息和第二线程的指令信息识别出非法的指令序列包括:
当第一线程的指令信息中读请求已完成后,判断第二线程的指令信息中写请求是否完成,如果所述写请求已完成,则所述指令序列不是非法的指令序列并执行下一步;如果所述写请求未完成,则所述指令序列为非法的指令序列。
具体的,基于读后写相关的原理,本实施例所述验证方法采用当第一线程的指令信息中读请求已完成后,判断第二线程的指令信息中写请求是否完成的方式对非法的指令序列进行识别,能够快速地识别出非法的指令序列,提高验证效率。
其中,当所述指令序列不是非法的指令序列时,可继续执行步骤S11,或者结束验证。当所述指令序列为非法的指令序列时,发出错误提示信息,待验证人员分析验证程序并做出相应修改后,再继续步骤S11,或者直接结束验证。
例如,当同步多线程系统中两个线程同时访问同一共享寄存器时,本实施例所述验证方法步骤如下:
S111、同步多线程系统中第一线程和第二线程同时访问同一共享寄存器;
S112、对第一线程所执行的指令序列进行监测并获取第一线程的指令信息;
S113、对第二线程所执行的指令序列进行监测并获取第二线程的指令信息;
S121、提取对第一线程进行监测所获取的第一线程的指令信息;
S122、提取对第二线程进行监测所获取的第二线程的指令信息;
S123、当第一线程的指令信息中读请求已完成后,判断第二线程的指令信息中写请求是否完成,如果所述写请求已完成,则所述指令序列不是非法的指令序列并执行下一步;如果所述写请求未完成,则所述指令序列为非法的指令序列并发出错误提示信息。
可选地,如图3所示,在所述对所述线程所执行的指令序列分别进行监测并分别获取所述线程对应的指令信息之后,所述方法还包括:
S13、将所获取的指令信息进行存储。
具体的,本实施例中,当同步多线程系统中第一线程和第二线程同时执行各自的指令序列,独立访问同一共享寄存器时,为所述共享寄存器分配两个存储单元,分别存储第一线程的指令信息和第二线程的指令信息。所述验证方法通过为每个共享寄存器对应分配存储单元,进而能够实现独立地对所有共享寄存器进行记录、跟踪和分析,使得所述验证方法具有很好的可扩展性,能够快速地移植到其他同步多线程系统的验证环境中,减少重复劳动。
可选地,在所述对所述线程所执行的指令序列分别进行监测并分别获取所述线程对应的指令信息之后,所述方法还包括:
S14、对共享寄存器的值进行验证。
可选地,所述对共享寄存器的值进行验证包括:
S141、获取共享寄存器的更新结果;
S142、提取所存储的指令信息;
S143、根据所述更新结果和所存储的指令信息判断共享寄存器的值是否正确,如果所述共享寄存器的值正确,则继续对共享寄存器进行验证;如果共享寄存器的值不正确,则发出错误提示信息。
可选地,所述根据所述更新结果和所存储的指令信息判断共享寄存器的值是否正确为判断所述更新结果是否在所存储的指令信息内,如果在所存储的指令信息内,则所述共享寄存器的值正确;如果不在所存储的指令信息内,则共享寄存器的值不正确。
综上所述,本实施例中所述验证方法实现了对每个线程的指令信息进行单独地记录、跟踪和分析,获取共享寄存器的更新结果用以对共享寄存器的值进行验证,并在验证过程中识别出非法的指令序列,当出现非法的指令序列或共享寄存器的值错误时及时发出错误提示信息,帮助验证人员针对性的分析验证程序,防止由于共享寄存器的竞争访问而导致的死锁,所述验证方法还具有良好的可扩展性和可移植性,适合推广。其中,所述验证方法的具体优点如下:
第一方面,所述验证方法通过对同步多线程系统中每个线程的指令信息进行单独地监测并获取每个线程对应的指令信息,实现对每个线程的指令信息单独的记录、跟踪和分析;对共享寄存器的值进行检测验证,并识别出非法的访问序列,帮助验证人员分析验证程序,避免由于访问共享寄存器产生的RAW相关带来的程序死锁。
第二方面,所述验证方法通过获取共享寄存器的更新结果并根据共享寄存器的更新结果和所存储的指令信息实现对共享寄存器的值进行验证,实现在验证过程中对共享寄存器的值进行单独检测,提高了验证人员针对共享寄存器编程的随机性和灵活性。
第三方面,所述验证方法通过为每个共享寄存器对应分配存储单元,进而能够实现独立地对所有共享寄存器进行记录、跟踪和分析,使得所述验证方法具有很好的可扩展性,能够快速地移植到其他同步多线程系统的验证环境中,减少重复劳动。
本发明实施例还提供一种同步多线程系统中共享寄存器的验证装置,如图4所示,所述装置包括:
共享寄存器11,分别与同步多线程系统中至少两个线程连接,并用于同步多线程系统中至少两个线程同时访问;
访问监测器12,分别与同步多线程系统中各线程连接,并用于对各线程进行监测并获取各线程对应的指令信息,以及根据所获取的指令信息识别出非法的指令序列并发出错误提示信息。
本发明实施例提供的同步多线程系统中共享寄存器的验证装置包括由同步多线程系统中至少两个线程同时访问的共享寄存器,当所述共享寄存器有至少两个线程同时独立访问时,通过所述访问监测器对所述线程所执行的指令序列分别进行监测并分别获取所述线程对应的指令信息,例如,当同步多线程系统中第一线程、第二线程和第三线程同时执行各自的指令序列,独立访问所述共享寄存器时,由所述访问监测器同时对第一线程所执行的指令序列进行监测并获取第一线程的指令信息、第二线程所执行的指令序列进行监测并获取第二线程的指令信息和第三线程所执行的指令序列进行监测并获取第三线程的指令信息,并由访问监测器通过各线程的读/写属性信息和访问的完成状态信息进行分析,并判断出是否存在非法指令序列并发出错误提示信息,因此,所述装置通过所述访问监测器对同步多线程系统中的每个线程的指令信息进行单独的监测、记录、跟踪和分析,并根据各线程的指令信息和共享寄存器的值识别出非法的指令序列,从而帮助验证人员分析验证程序,避免由于同步多线程系统中多线程同时访问共享寄存器产生的读后写相关带来的程序死锁。
可选地,如图6所示,所述访问监测器包括:
监测模块121,用于对各线程进行监测并获取各线程对应的指令信息;
存储模块122,用于将所获取的指令信息进行存储;
识别模块123,用于根据所获取的指令信息识别出非法的指令序列;
错误发送模块124,用于发出错误提示信息。
可选地,所述识别模块123包括:
第一提取单元1231,用于提取对第一线程进行监测所获取的第一线程的指令信息;
第二提取单元1232,用于提取对第二线程进行监测所获取的第二线程的指令信息;
识别单元1233,用于根据第一线程的指令信息和第二线程的指令信息识别出非法的指令序列。
可选地,如图5和图6所示,所述装置还包括:
验证控制器13,用于对共享寄存器的值进行验证。
可选地,所述验证控制器13包括:
获取模块131,用于获取共享寄存器的更新结果;
提取模块133,用于提取所存储的指令信息;
判断模块132,用于根据所述更新结果和所存储的指令信息判断共享寄存器的值是否正确。
本实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (13)

1.一种同步多线程系统中共享寄存器的验证方法,其特征在于,包括:
当同步多线程系统中至少两个线程同时访问同一共享寄存器时,对所述线程所执行的指令序列分别进行监测并分别获取所述线程对应的指令信息;
根据所获取的指令信息识别出非法的指令序列并发出错误提示信息,其中,当第一线程的指令信息中读请求已完成后,判断第二线程的指令信息中写请求是否完成的方式对非法的指令序列进行识别。
2.根据权利要求1所述的方法,其特征在于,所述指令信息包括读/写属性信息、写入值信息和指令的完成状态信息中一种或者任意组合。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所获取的指令信息识别出非法的指令序列包括:
提取对第一线程进行监测所获取的第一线程的指令信息;
提取对第二线程进行监测所获取的第二线程的指令信息;
根据第一线程的指令信息和第二线程的指令信息识别出非法的指令序列。
4.根据权利要求3所述的方法,其特征在于,所述根据第一线程的指令信息和第二线程的指令信息识别出非法的指令序列包括:
当第一线程的指令信息中读请求已完成判断第二线程的指令信息中写请求是否完成,如果所述写请求已完成,则所述指令序列不是非法的指令序列并执行下一步;如果所述写请求未完成,则所述指令序列为非法的指令序列。
5.根据权利要求1所述的方法,其特征在于,在所述对所述线程所执行的指令序列分别进行监测并分别获取所述线程对应的指令信息之后,所述方法还包括:
将所获取的指令信息进行存储。
6.根据权利要求1所述的方法,其特征在于,在所述对所述线程所执行的指令序列分别进行监测并分别获取所述线程对应的指令信息之后,所述方法还包括:
对共享寄存器的值进行验证。
7.根据权利要求6所述的方法,其特征在于,所述对共享寄存器的值进行验证包括:
获取共享寄存器的更新结果;
提取所存储的指令信息;
根据所述更新结果和所存储的指令信息判断共享寄存器的值是否正确,如果所述共享寄存器的值正确,则继续对共享寄存器进行验证;如果共享寄存器的值不正确,则发出错误提示信息。
8.根据权利要求7所述的方法,其特征在于,所述根据所述更新结果和所存储的指令信息判断共享寄存器的值是否正确包括:
判断所述更新结果是否在所存储的指令信息内,如果在所存储的指令信息内,则所述共享寄存器的值正确;如果不在所存储的指令信息内,则共享寄存器的值不正确。
9.一种同步多线程系统中共享寄存器的验证装置,其特征在于,包括:
共享寄存器,分别与同步多线程系统中各线程连接,并用于同步多线程系统中各线程同时访问;
访问监测器,分别与同步多线程系统中各线程连接,并用于对各线程进行监测并获取各线程对应的指令信息,以及根据所获取的指令信息识别出非法的指令序列并发出错误提示信息;其中,当第一线程的指令信息中读请求已完成后,判断第二线程的指令信息中写请求是否完成的方式对非法的指令序列进行识别。
10.根据权利要求9所述的装置,其特征在于,所述访问监测器包括:
监测模块,用于对各线程进行监测并获取各线程对应的指令信息;
存储模块,用于将所获取的指令信息进行存储;
识别模块,用于根据所获取的指令信息识别出非法的指令序列;
错误发送模块,用于发出错误提示信息。
11.根据权利要求10所述的装置,其特征在于,所述识别模块包括:
第一提取单元,用于提取对第一线程进行监测所获取的第一线程的指令信息;
第二提取单元,用于提取对第二线程进行监测所获取的第二线程的指令信息;
识别单元,用于根据第一线程的指令信息和第二线程的指令信息识别出非法的指令序列。
12.根据权利要求9-11任一所述的装置,其特征在于,所述装置还包括:
验证控制器,用于对共享寄存器的值进行验证。
13.根据权利要求12所述的装置,其特征在于,所述验证控制器包括:
获取模块,用于获取共享寄存器的更新结果;
提取模块,用于提取所存储的指令信息;
判断模块,用于根据所述更新结果和所存储的指令信息判断共享寄存器的值是否正确。
CN201710842395.3A 2017-09-18 2017-09-18 一种同步多线程系统中共享寄存器的验证方法及装置 Active CN109522049B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710842395.3A CN109522049B (zh) 2017-09-18 2017-09-18 一种同步多线程系统中共享寄存器的验证方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710842395.3A CN109522049B (zh) 2017-09-18 2017-09-18 一种同步多线程系统中共享寄存器的验证方法及装置

Publications (2)

Publication Number Publication Date
CN109522049A CN109522049A (zh) 2019-03-26
CN109522049B true CN109522049B (zh) 2023-04-25

Family

ID=65768051

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710842395.3A Active CN109522049B (zh) 2017-09-18 2017-09-18 一种同步多线程系统中共享寄存器的验证方法及装置

Country Status (1)

Country Link
CN (1) CN109522049B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110569191A (zh) * 2019-08-30 2019-12-13 暨南大学 Wsn程序中线程访问共享资源出错的检测方法及工具
CN114942831A (zh) * 2022-03-31 2022-08-26 上海阵量智能科技有限公司 处理器、芯片、电子设备及数据处理方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102708090A (zh) * 2012-05-16 2012-10-03 中国人民解放军国防科学技术大学 用于共享存储多核多线程处理器硬件锁的验证方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6496925B1 (en) * 1999-12-09 2002-12-17 Intel Corporation Method and apparatus for processing an event occurrence within a multithreaded processor
US6357016B1 (en) * 1999-12-09 2002-03-12 Intel Corporation Method and apparatus for disabling a clock signal within a multithreaded processor
US6681345B1 (en) * 2000-08-15 2004-01-20 International Business Machines Corporation Field protection against thread loss in a multithreaded computer processor
US20060206902A1 (en) * 2005-03-14 2006-09-14 Sujat Jamil Variable interleaved multithreaded processor method and system
US20060212853A1 (en) * 2005-03-18 2006-09-21 Marvell World Trade Ltd. Real-time control apparatus having a multi-thread processor
US8380966B2 (en) * 2006-11-15 2013-02-19 Qualcomm Incorporated Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging
WO2016103092A1 (en) * 2014-12-22 2016-06-30 Centipede Semi Ltd. Run-time code parallelization with continuous monitoring of repetitive instruction sequences

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102708090A (zh) * 2012-05-16 2012-10-03 中国人民解放军国防科学技术大学 用于共享存储多核多线程处理器硬件锁的验证方法

Also Published As

Publication number Publication date
CN109522049A (zh) 2019-03-26

Similar Documents

Publication Publication Date Title
KR102025556B1 (ko) 처리 장치, 추적 유닛 및 진단 장치
US8839203B2 (en) Code coverage-based taint perimeter detection
US9672029B2 (en) Determining test case priorities based on tagged execution paths
JP6342129B2 (ja) 混合モードプログラムのソースコードエラー位置検出装置及び方法
CN110799952A (zh) 分布式时间旅行跟踪记录和重放
US20090019451A1 (en) Order-relation analyzing apparatus, method, and computer program product thereof
JP6363152B2 (ja) データフロー分析のための装置、方法、コンピュータプログラム及び記憶媒体
US20140365833A1 (en) Capturing trace information using annotated trace output
US9471583B2 (en) Data race analysis with improved detection filtering
CN103365776A (zh) 基于确定性重放的并行系统弱一致性的验证方法和系统
WO2008091457A1 (en) Fast and accurate static data-race detection for concurrent programs
CN109635568B (zh) 一种基于静态分析和模糊测试相结合的并发漏洞检测方法
WO2017107843A1 (zh) 周期性任务的处理方法和装置及计算机程序和可读介质
Sato et al. On-the-fly detection of precise loop nests across procedures on a dynamic binary translation system
CN109522049B (zh) 一种同步多线程系统中共享寄存器的验证方法及装置
JPWO2021070393A5 (zh)
US9740430B2 (en) Optimizing parallel build of application
US20110167413A1 (en) Coverage apparatus and method for testing multi-thread environment
CN109522048B (zh) 一种同步多线程中断验证方法及系统
Wang et al. Detecting data races in interrupt-driven programs based on static analysis and dynamic simulation
US11687361B1 (en) Generating thread sensors for extracting side channel information from multithreading processors
CN110543395B (zh) 验证方法、装置以及相关产品
US8561030B2 (en) Synchronization coverage in logic code
US10613910B2 (en) Virtual architecture generating apparatus and method, and runtime system, multi-core system and methods of operating runtime system and multi-core system
JP2009244969A (ja) プログラム動作比較装置及び方法及びプログラム

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