首页> 中文学位 >基于龙芯平台的并行化动态二进制翻译中无锁队列的研究
【6h】

基于龙芯平台的并行化动态二进制翻译中无锁队列的研究

代理获取

摘要

近年来,主流的桌面和服务器软件均基于x86平台开发,但是龙芯是基于MIPS指令集的处理器,因此,如何让现有x86平台的软件兼容MIPS架构,成为了国产芯片发展的重要问题。二进制翻译是实现x86软件与龙芯cpu兼容的一种重要方法,目前龙芯平台上主要使用QEMU作为全系统模拟器,它已能通过二进制翻译技术将windows XP操作系统运行在龙芯平台上,但其性能有待提高。
  在处理器频率发展步入2GHz以后,凭借提升处理器效率而带来的性能提升愈加有限,为了保证摩尔定律继续有效,多核处理器已经成为潮流。但是现有的全系统模拟是串行模拟,只使用了主机处理器单个核心的资源,因此全系统模拟的并行化迫在眉睫。真正实现并行的系统级模拟,会大大提升机器的速度和性能,最终实现国产芯片的商业产业化。
  如何让龙芯平台在模拟x86时能发挥其核心数量优势,渐渐成为研究的重点。目前基于QEMU的并行化全系统模拟在业内已经有人开始研究,比如PQEMU,HQEMU,COREMU都在不同角度对QEMU进行并行化研究,但是这些并行的全系统模拟器都没用使用龙芯平台作为宿主机器。本文主要分析了QEMU的运行原理,QEMU对SMP机器的模拟原理以及现有的并行化QEMU的实现手段。本文选择将QEMU对SMP机器的模拟由串行改为并行,把QEMU对SMP机器不同核的模拟逻辑封装到不同的线程里,由操作系统对这些线程进行调度,使这些线程并发地执行在龙芯的多个核上,从而达到多核龙芯模拟多核X86机器的目的。这种并行化方法需要解决两个关键问题:原子指令翻译问题和SMP机器的中断模拟问题。本人所在课题组曾提出过一种基于gcc内置原子操作函数的原子指令翻译方案,但是经本人研究发现这种翻译方案存在问题,一是对简单指令翻译的膨胀都超过复杂指令,二是在解决非对齐原子指令时,不能完备地应对所有可能出现的情况。本文提出了一种新的直接使用MIPS的ll/sc指令对的原子指令翻译方案,该方案不存在冗余操作,并且能完备地解决非对齐原子指令翻译问题。本文使用了linux实时信号与FIFO队列来实现对SMP机器中断的模拟。为保证中断模拟效率,有必要使用无锁技术实现FIFO队列。本文根据MIPS的ll/sc指令对的特点,以及中断模拟中无锁队列的特性,提出了一种能够避免ABA问题的无锁队列的算法,大大提高了中断模拟效率。最终QEMU能并行地运行在龙芯3A平台下,达到了充分利用龙芯主机平台核心数量优势的目的。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号