from emulation to virtualization

Oct 7th, 2008 | Posted by yajin | Filed under emulation

写一个 from emulation to virtualization 的文章的计划很早就在我的大脑中盘旋。可是要写这样的一个文章,需要比较深的积累。

之前在尝试移植lguest到MIPS平台,虽然后来放弃了这个努力,但是仍然积累了一些经验。同时也明白,要想写一个virtualization之类的东西,对于ARM/MIPS的深刻了解是必不可少的。

在选择ARM还是MIPS作为文章的平台上,一直在考虑和权衡。最终还是选择ARM。这是因为(1)我想做的是嵌入式的virtualization,而 ARM又是嵌入式和手持设备中使用最为广泛的平台。(2)我对ARM平台还不是非常了解,而借此机会,可以深刻了解ARM平台。而不仅仅把自己局限在 MIPS平台上。从目前我了解的情况来看,MIPS相比ARM比较简单。而ARM的设计更为复杂,也更为灵活。不仅仅是单纯的RISC的理念。

为了实现这个目标,大约分为以下几个步骤进行。

  1. 写一个解释型的ARM SOC的模拟器。目标:深刻理解ARM结构
  2. 验证书上所提到的emulation的优化方法进行优化,得出每一种优化的效率。并做整理。作为短期目标的文章发布。
  3. JIT。目标是移植一个通用的JIT框架。从ARM->中间表示->优化->host。而这一部分也可以写一些文章。
  4. 移植lguest到ARM中。在这一过程中,需要权衡每一种设计方案,比较在ARM中设计虚拟化和X86的不同。
  5. 在lguest中运行一些benchmark,看看有哪些可以优化的地方。
  6. 仿照INTEL VT对ARM的指令集进行扩展

由于实现的模拟器的作用是用来作为example,因此,该模拟器的结构不要太复杂,代码量不要太大。基本上在1W行以内( 不包括JIT部分)。

模拟器的SOC初步定为OMAP3系列。原因在于有良好的文档和工具。模拟的板子为beagle borad,以后可以加入V哥的OPENOMAP。DSP扩展和3D加速的模拟作为低优先级任务。

整个计划的时间大约在6个月左右。也就是2008-10到2009-3月左右。

Tags:
  1. 一个新项目 omap3emu
    Nov 28th, 2008 at 11:27
    #1