为了能够让本项目在实际的工程开发中产生真正的效益,我们在产品的性能,易用性,可扩展性等几个方面做了创新。其中在仿真处理器性能上面我们使用了基于LLVM的二进制翻译技术,在易用性上我们提出了可视化的建模技术,在可扩展性上我们开发了分布式仿真技术。下面我们分别对这三个创新点进行描述:
1、基于LLVM的二进制翻译技术
在传统的动态二进制翻译的基础上,我们进一步的提出动态二进制编译技术。相比于动态二进制翻译,动态二进制编译技术并不是把目标码直接翻译成主机代码,而是把目标码翻译中中间代码,然后对中间代码进行编译器的各种优化,最终生成主机代码。相比于传统的二进制翻译技术,我们应用了各种编译器的优化技术,从而生成更高效率的主机代码。其区别如下示意图:
如上图,解释执行是最早采用的指令执行技术,它简单的对一条指令进行取指,解码和执行。中间的动态翻译是把一组目标指令进行取指,并翻译成主机代码。而最右侧的动态编译是把一组目标指令翻译成中间语言,即IR。然后再进行多种优化后再编译成x86。所以动态编译的特点在于翻译时间比动态翻译长,但是生成的代码质量高,运行速度快。对于规模较大的目标软件,动态翻译的指令仿真性能较好。
2、可视化的系统仿真技术
可视化的系统仿真技术是通过图形拖拽的方式来构建整个硬件系统。在这个技术中,其他的硬件模型抽象为一个对象,如处理器,总线和外设等。对象和对象之间可以有不同的连接方法进行联系。这样我们通过拖拽这些对象,并且用鼠标建立这些对象的链接,可以所见即所得的获得一个定制化的硬件系统。这样的可视化系统仿真技术能够有效的降低仿真软件的学习门槛,软硬件开发人员可以通过可视化系统仿真技术进行把各自对系统的理解进行交流,减少了沟通成本。而是用可视化的系统仿真技术也易于对后面硬件系统的修改方面的进行模型的映射,有效的缩短了嵌入式产品的开发周期。其图形化示例如下:
3、分布式仿真技术
为了满足用户的可扩张性需求,我们的仿真平台产品采用了分布式仿真技术,利用集群来对多机以及多机之间的通信进行了虚拟仿真。并行仿真的流行主要原因是由于近年来多核多处理器的计算平台已经变为了企业的主流计算平台。很自然的,仿真平台的开发者想到了利用便宜的并行计算平台的平行计算能力去提高仿真的速度。而真实硬件系统的并行化程度较高,有很多并行部件,我们可以把我们软件的系统仿真平台利用多线程技术进行并行化去模拟并行的硬件行为,从而利用我们的分布式多核计算平台对系统仿真平台进行加速。其架构示意图如下: