首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于FPGA的M2M异构虚拟化系统

基于FPGA的M2M异构虚拟化系统

摘要
在多核体系构架与并行计算时代,尤其是云计算的出现,虚拟化技术正迅速发展成为计算系统中的一项核心技术。虚拟化技术提供了系统层次之间的抽象化,并将资源以一个或多个虚拟的运行环境提供给用户。目前对虚拟化的研究工作主要关注于资源的分割,独立和封装等研究点,但主要在一个特定处理器体系结构以及处理器同构的前提下。

本项目提出一种新颖的M2M(Multiple ISAs applications to Multiple heter-ogeneous core,M2M)概念,将虚拟化系统分为多核异构层、虚拟化管理层、二进制翻译层、软件应用层四个层次,创新地在传统的虚拟化管理层上增加二进制翻译层,从而引入多个不同体系结构的应用程序,虚拟化管理器调度分配给硬件层引入的异构处理器。M2M的特性使虚拟化系统上层应用的灵活性大大增加,并且硬件异构化也使系统的效率有效提升。

本项目主要贡献点和创新点有:
  • 多指令集体系应用虚拟环境。在应用层提供不同指令集体系构架的虚拟运行环境,以支持不同应用系统的应用程序。
  • 软硬协同的二进制翻译层。在二进制翻译层,采用软硬协同的方式实现不同架构体系间的动态二进制翻译,提高硬件目标代码生成和运行的性能和灵活性。
  • 设计实现了自主可扩展32位的SoC核。在多核异构层,设计了一个自主,可扩展,可配置的32位RISC处理器。基于此处理器核可配置实现多个RISC SoC平台(QS-I)。本项目在XUP Virtex-5和Digilent Nexys3 FPGA开发平台构建了多核异构层。
  • 动态虚拟化管理。在虚拟化管理层,以轻量级的方式实现了系统资源与上层应用的管理。通过资源管理与任务调度动态分配或迁移运行任务。虚拟层的多个体系结构的应用程序(如x86和MIPS)可动态运行于异构的处理器核上(如处理能力不同的MIPS核)。
  • 提供了系统库和运行程序。在软件应用层,为自主设计的QS-I平台提供完善的程序运行环境并设计了多样化的应用程序。项目完全自主地设计实现了系统库(如图形库、I/O库)以及典型的多样化应用软件,包括MIPS下的吃豆子游戏、X86下的推箱子游戏。


1.项目背景
在计算机科学领域中,虚拟化代表着对计算资源的抽象,而不仅仅局限于虚拟机的概念,实现虚拟化的方法不止一种,无论何种方法都是以不同层次的抽象来实现某一视角对应的效果。

1.1.项目需求
虚拟化技术正迅速发展成为计算系统中的一项核心技术,它提供了计算机系统层次之间的抽象层,并将资源分配以提供一个或多个虚拟的运行环境。现在对虚拟化的研究工作主要关注于资源的分割,独立和封装等研究点,但主要在一个特定处理器体系结构以及处理器同构的前提下。本项目提出一种新颖的M2M(Multiple ISAs applications to Multiple heterogeneous core,M2M)概念,将虚拟化系统分为多核异构层、虚拟化管理层、二进制翻译层、软件应用层四个层次,创新地在传统的虚拟化管理层上增加二进制翻译层,从而引入多个不同体系结构的应用程序,并在硬件层引入处理器的异构性。M2M的特性使虚拟化系统的上层应用的灵活性大大增加,并且硬件异构化也使系统的效率有效提升。

1.2.相关技术及其发展现状
本小节将介绍虚拟化以及动态翻译等技术的基本概念及其发展现状。

1.2.1.虚拟化技术的基本概念
虚拟化技术最早可以追溯到上个世纪60年代,IBM公司的System 360系统对运行多个虚拟化系统进行了最早的尝试。如今,虚拟化技术正迅速发展成为计算机系统中的一项核心技术,它提供了计算机系统层次之间的抽象层,并将资源分配以提供一个或多个虚拟的运行环境。
例如计算机系统可分为如图 1中所示的四个层次,由最底层的硬件自下而上分别是操作系统、用户库、应用程序。相应地,虚拟化技术可以针对各个层次进行抽象虚拟,从而为上一层的应用提供一个或多个虚拟环境。

图 1 计算机系统的四个层次

返回列表