针对龙芯多核CPU模拟的动态代码转换的多线程化方法技术

技术编号:8593809 阅读:189 留言:0更新日期:2013-04-18 06:57
本发明专利技术为一种针对龙芯多核CPU模拟的动态代码转换的多线程化方法,包括:对需要模拟的龙芯多核CPU进行初始化;为各个待模拟的CPU核准备相应的动态代码转换环境;通过线程间通信完成各动态代码转换线程初始化;各个动态代码转换线程开始并行工作。该方法首先通过针对需要模拟的龙芯CPU核数进行探测,准备对应的多线程代码转换相应环境,再依靠多线程之间的通讯机制保证动态代码转换的并行执行,则避免模拟核在需要获得执行机会以及核间通讯过程中的不必要等待,提高对龙芯多核CPU的模拟效率。本发明专利技术的方法在计算机虚拟化技术领域内具有广泛地实用价值和应用前景。

【技术实现步骤摘要】
针对龙芯多核CPU模拟的动态代码转换的多线程化方法
本专利技术涉及针对龙芯多核CPU模拟的动态代码转换的多线程化方法,具体涉及一种多线程化的代码转换环境设计、多转换线程之间的通讯机制以及基于以上方法的对龙芯多核CPU的多线程模拟方法,它能够通过在对龙芯多核CPU模拟时多线程并行地进行代码转换从而对模拟效率进行优化,属于计算机虚拟化

技术介绍
当前采用国产龙芯处理器的服务器中,大部分采用龙芯多核CPU,通常在研发过程中需要对CPU硬件进行模拟,对CPU进行模拟是指通过软件方法模拟出相应的硬件环境,提供给上层一个透明的运行环境,使上层感觉自己就像直接运行在相应的CPU硬件上一样,通常对CPU硬件进行模拟可以满足虚拟化、上层相应软件调试等需求,同时可以在模拟的CPU硬件上注入故障以检查上层软件的健壮性。现有的对龙芯多核CPU的模拟实现中并没有使多个模拟核进行并行的代码转换,这降低了龙芯多核CPU的模拟效率,如图1所示,在当前龙芯多核CPU的模拟实现中,由于每个模拟的CPU核按照轮询方式来获得执行机会,同时在进行核间通讯的过程中,需要响应的模拟核因没有得到执行机会而不能及时完成通讯本文档来自技高网...
针对龙芯多核CPU模拟的动态代码转换的多线程化方法

【技术保护点】
一种针对龙芯多核CPU模拟的动态代码转换的多线程化方法,其特征在于包括:步骤A:对需要模拟的龙芯多核CPU进行初始化;步骤B:为各个待模拟的CPU核准备相应的动态代码转换环境;步骤C:通过线程间通信完成各动态代码转换线程初始化;步骤D:使各个动态代码转换线程开始并行工作。

【技术特征摘要】
1.一种针对龙芯多核CPU模拟的动态代码转换的多线程化方法,其特征在于包括:步骤A:对需要模拟的龙芯多核CPU进行初始化;步骤B:为各个待模拟的CPU核准备相应的动态代码转换环境;步骤C:通过线程间通信完成各动态代码转换线程初始化;步骤D:使各个动态代码转换线程开始并行工作,其中所述步骤B包括:初始化各个核的动态代码转换上下文(步骤202-1);初始化各个核转换的目的代码的执行前后序列(步骤202-2);初始化各个核转换的中间代码操作码及操作数缓存(步骤202-3);初始化各个核的动态转换加速资源(步骤202-4),所述步骤C包括:设置多个代码转换线程相互之间及与IO线程之间的信号通讯机制和锁变量,从而保证多个CPU核能够在同时就绪的情况下同时开始工作,从而使线程间通信能够保证多个动态代码转换线程的一致性,利用系统的初始主线程,为每个CPU核创建一个子线程,其中所述主线程在创建每个所述子线程后保留每个子线程的线程号用于后续的通信,主线程需要CPU线程初始化后才能开始后续工作,在主线程创建所述子线程后,挂起所述主线程,随后主线程等待创建的子线程准备就绪并返回线程号后再被唤醒继续运行,使用CPU信号cpu_cond和每个CPU核的全局锁global_mutex_multi来同步所述主线程和子线程。2.根据权利要求1所述的针对龙芯多核CPU模拟的动态代码转换的多线程化方法,其特征在于所述步骤A包括:对需要模拟的龙芯多核CPU进行特定的分析,确定每个CPU中要进行模拟的核数,同时给对应的核进行特定标识,以便之后动...

【专利技术属性】
技术研发人员:肖利民唐浩夫阮利王慧祥徐鹏
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1