[发明专利]用于共享存储多核多线程处理器硬件锁的验证方法有效
申请号: | 201210151448.4 | 申请日: | 2012-05-16 |
公开(公告)号: | CN102708090A | 公开(公告)日: | 2012-10-03 |
发明(设计)人: | 廖湘科;李春江;杜云飞;晏小波;隋兵才;邓让钰;王永文;杨灿群;窦强;徐炜遐;卢凯 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F15/167 | 分类号: | G06F15/167 |
代理公司: | 湖南兆弘专利事务所 43008 | 代理人: | 赵洪;谭武艺 |
地址: | 410073 湖南省长沙市砚瓦池正*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 共享 存储 多核 多线程 处理器 硬件 验证 方法 | ||
1.一种用于共享存储多核多线程处理器硬件锁的验证方法,其特征在于其实施步骤如下:
1)初始化设置同步线程数目、线程访问存储器的最大访问次数;
2)构造用于操作共享存储多核多线程处理器硬件锁的同步操作模块;
3)根据所述同步线程数目执行多线程初始化;根据所述最大访问次数为每一个线程随机生成小于所述最大访问次数的线程访存操作序列,每一个线程根据所述线程访存次数进行访存操作;
4)根据处理器的锁地址范围随机指定一个用于验证激励的硬件锁地址;通过所述同步操作模块控制各个线程针对所述硬件锁地址的操作,并在所有线程完成后向验证环境输出激励执行结果。
2.根据权利要求1所述的用于共享存储多核多线程处理器硬件锁的验证方法,其特征在于,所述步骤1)还包括初始化设置同步操作类型;所述步骤2)具体的步骤包括:当同步操作类型为栅栏同步操作时,根据栅栏同步操作构造用于操作共享存储多核多线程处理器硬件锁的栅栏同步模块;当同步操作类型为临界区同步操作时,根据临界区同步操作构造用于操作共享存储多核多线程处理器硬件锁的临界区同步模块。
3.根据权利要求2所述的用于共享存储多核多线程处理器硬件锁的验证方法,其特征在于,当同步操作类型为栅栏同步操作时,所述步骤4)中通过同步操作模块控制各个线程针对所述硬件锁地址的操作的详细步骤如下:
4.1.1)当线程运行到同步阶段时,将所述硬件锁地址中保存的锁变量读入寄存器中,此时硬件锁变量的值在读入寄存器的同时所述存储器中的锁变量自动加一;
4.1.2)判断读出的锁变量的数值是否等于所述同步线程数目,如果锁变量的数值不等于同步线程数目,则先到达的线程反复读取存储器中的锁变量,此时读出的锁变量的值是锁变量的原始值且这种读取后锁变量原来的值不变;直至后到达的线程将所述锁变量修改为等于所述同步线程数目时判定所有线程的栅栏同步操作完成。
4.根据权利要求3所述的用于共享存储多核多线程处理器硬件锁的验证方法,其特征在于,当同步操作类型为临界区同步操作时,所述步骤4)中通过同步操作模块控制各个线程针对所述硬件锁地址的操作的详细步骤如下:
4.2.1)当线程运行到临界区时,将所述硬件锁地址中保存的锁变量读入寄存器中,此时硬件锁变量的值在读入寄存器时所述存储器中的锁变量自动加一;
4.2.2)各个线程分别判断所述存储器中锁变量的数值是否为0,如果锁变量的数值不为0,则当前线程返回继续执行步骤4.2.1);如果锁变量的数值为0,则当前线程进入临界区开始执行临界区的代码;当线程执行完临界区代码后,将硬件锁地址所指向的存储器位置中的锁变量的值写为0以允许其他线程再进入临界区。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210151448.4/1.html,转载请声明来源钻瓜专利网。