[发明专利]一种同步多线程系统中共享寄存器的验证方法及装置有效
申请号: | 201710842395.3 | 申请日: | 2017-09-18 |
公开(公告)号: | CN109522049B | 公开(公告)日: | 2023-04-25 |
发明(设计)人: | 申晖 | 申请(专利权)人: | 展讯通信(上海)有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30 |
代理公司: | 北京兰亭信通知识产权代理有限公司 11667 | 代理人: | 赵永刚 |
地址: | 201203 上海市浦东新区浦东*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 同步 多线程 系统 共享 寄存器 验证 方法 装置 | ||
本发明提供一种同步多线程系统中共享寄存器的验证方法及装置,所述方法包括:当同步多线程系统中至少两个线程同时访问同一共享寄存器时,对所述线程所执行的指令序列分别进行监测并分别获取所述线程对应的指令信息;根据所获取的指令信息识别出非法的指令序列并发出错误提示信息。本发明能够优化同步多线程系统中共享寄存器的验证方式,达到提高验证人员针对共享寄存器编程的灵活性,以及对共享寄存器验证的随机性和完备性的作用。
技术领域
本发明涉及计算机处理器技术领域,尤其涉及一种同步多线程系统中共享寄存器的验证方法及装置。
背景技术
随着CPU技术的发展,CPU的主频与性能不断提高,需要调入指令和数据的速度不断提高。因此,为了开发指令级并行(ILP),在过去的几十年中利用了超标量(同时具备多个执行器)、乱序执行(允许无数据关联性的指令同时运行)、动态分支预测,超长指令集(VLIW)等技术。然而,超标量使设计的复杂性急剧增加,同时,指令之间的数据相关和控制相关,可以开发的ILP也有限,以及一些其他因素,使得经典的超标量结构处理器难以进一步提高处理器性能,因此,为了提高处理器的性能,则采用同步多线程(SMT),SMT可以在一个时钟周期内执行来自多个线程的指令,利用处理器超标量的思想来提高处理器使用率。
同时,多线程是处理器设计中的一种线程级并行技术,能够同时调动多个线程执行多个应用程序,提高处理器的吞吐量。在SMT系统中,针对共享寄存器的验证会遇到以下两方面的问题:
(1)多个线程同时读/写同一个共享寄存器,从系统的角度可能会产生一些非法的访问序列,导致发生读后写相关,从而某个线程读到的值并不一定是该共享寄存器的最新值。在某些场景下,这样的读后写相关会导致系统发生死锁。
(2)由于在一段时间内可能存在多个线程修改同一个共享寄存器的值,因此,对同一个线程来说,读到的值并不一定是该线程之前写入的值,而是其他线程写入的值,所以在进行结果检测时,某一线程读到的值并不唯一。
针对上述问题,目前主要采取软件规避的方式避免产生针对共享寄存器的非法访问序列,虽然简单且成本低廉,但损失了验证的随机性和完备性,还可能导致无意中漏掉了某些边界情况,使得验证存在风险的问题。
发明内容
本发明提供的同步多线程系统中共享寄存器的验证方法及装置,能够优化同步多线程系统中共享寄存器的验证方式,达到提高验证人员针对共享寄存器编程的灵活性,以及对共享寄存器验证的随机性和完备性的作用。
第一方面,本发明提供一种同步多线程系统中共享寄存器的验证方法,包括:
当同步多线程系统中至少两个线程同时访问同一共享寄存器时,对所述线程所执行的指令序列分别进行监测并分别获取所述线程对应的指令信息;
根据所获取的指令信息识别出非法的指令序列并发出错误提示信息。
可选地,所述指令信息包括读/写属性信息、写入值信息和指令的完成状态信息中一种或者任意组合。
可选地,所述根据所获取的指令信息识别出非法的指令序列包括:
提取对第一线程进行监测所获取的第一线程的指令信息;
提取对第二线程进行监测所获取的第二线程的指令信息;
根据第一线程的指令信息和第二线程的指令信息识别出非法的指令序列。
可选地,所述根据第一线程的指令信息和第二线程的指令信息识别出非法的指令序列包括:
当第一线程的指令信息中读请求已完成后,判断第二线程的指令信息中写请求是否完成,如果所述写请求已完成,则所述指令序列不是非法的指令序列并执行下一步;如果所述写请求未完成,则所述指令序列为非法的指令序列。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于展讯通信(上海)有限公司,未经展讯通信(上海)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710842395.3/2.html,转载请声明来源钻瓜专利网。