基于FPGA的M2M异构虚拟化系统(2)
基于FPGA的M2M异构虚拟化系统(2)微软雅黑
更具体地,虚拟化的层次可分为如图 2所示的指令集架构(ISA)、硬件抽象层(HAL)、操作系统、用户级库、应用程序的五个层次。图 2中还在各个层次下方列出了与其对应的知名产品。
图 2 虚拟化技术的五个层次及其相应产品
1.2.2.ISA层的虚拟化技术ISA层的虚拟化是虚拟化技术中的一个重要内容,它的主要目的是为上层应用提供一个或多个不同于物理层实际处理器ISA的ISA抽象层,从而使得多个处理器架构的应用程序能够在同一个处理器上运行,如图 3所示。
图 3ISA层的虚拟化
ISA层虚拟化所产生的异构性使处理器本身的性能得到提高。同时,x86架构凭借其强大的软硬件支持,仍将在未来的处理器竞争中占有统治地位 。本项目将重点实现不同ISA(x86和MIPS)之间的虚拟化技术,使该RISC处理器与x86架构达到二进制兼容。
1.2.3.动态翻译技术
在ISA层的虚拟化中,二进制翻译是最重要的实现技术。二进制翻译是指把一中体系结构的机器码翻译成为另一种体系结构的机器码。通过二进制翻译,体系结构将成为一个软件层,它使得复杂的遗留体系结构能够用简单的硬件来实现,并且使得新颖的体系结构能够兼容原来的软件;此外,二进制翻译能够促进软件的优化。
二进制翻译有两种主要的实现方法,一种是静态翻译,另一种动态翻译。
静态翻译把整个二进制可执行文件翻译成目标体系结构的指令集,它不需要先运行代码,所有的翻译都在编译时完成。所以静态翻译很难做到正确性,因为不是所有的代码都能在编译时被翻译器发现。比如,可执行文件的某些部分只能通过间接跳转才能到达,而间接跳转的目标值只有在运行时才知道。
动态翻译把一小段源体系结构的代码翻译成目标体系结构的代码并把这一小段生成的代码缓存起来。只有当代码被运行时才开始执行翻译。跳转指令会被指定到已经翻译和缓存起来的代码段上。
2.项目目标及开发平台选择
2.1.项目目标及内容
本项目提出一种新颖的M2M(Multiple ISAs applications to Multiple heter--og-eneous core,M2M)概念,在虚拟化管理层上增加二进制翻译层,从而引入多个不同体系结构的应用程序,并在硬件层引入处理器的异构性。如图 4所示的项目总体层次包括多核异构层、虚拟化管理层、二进制翻译层以及软件应用层。
图 4 项目总体层次
本项目目标是基于Xilinx公司的XUP Virtex-5和Digilent的Nexys3 FPGA开发板实现多个RISC SoC平台建立硬件多核异构层;选择MIPS和x86 ISA构架设计吃豆子、俄罗斯方块等典型应用程序构成多样化应用场景,实现M2M原型系统。
具体任务如下:
多核异构层
实现MIPS基本指令集,支持精确中断,含一级Cache的32位RISC CPU的RTL描述及其验证;
完成VGA(或DVI)、PS/2、SRAM、UART等外设的控制器模块描述及各个模块的验证;
引入Wishbone总线,集成SoC平台的各个模块;
基于不同FPGA的RISC SoC平台(分别在XUP Vritex-5和Digilent Nexys3上基于自主软核QS-I搭建了RISC SoC平台),构建多核异构层
虚拟化管理层
对多核异构层的资源管理;
对应用层多样化程序的调度分配
二进制翻译层
以软硬件协同方式完成RISC处理器在ISA层对x86的虚拟化,使得RISC处理器能够与多架构(如x86)二进制兼容;
动态翻译的软件架构设计
软件应用层
系统软件编写。系统软件包括外设的驱动程序及系统控制程序;
运行环境及库编写。设计实现系统库(如图形库、I/O库);
应用软件编写。应用软件包括多个SoC完整应用系统(x86和MIPS),如简单的游戏程序。
页:
[1]