问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

QEMU模拟器及其与CXL功能模拟技术详解

创作时间:
作者:
@小白创作中心

QEMU模拟器及其与CXL功能模拟技术详解

引用
CSDN
1.
https://m.blog.csdn.net/weixin_43633784/article/details/137567485

在探讨QEMU及其与CXL功能模拟相关技术时,本文将从QEMU的基本概念出发,详细解析其工作模式、与KVM的关系,以及在CXL功能模拟方面的具体实现。

前言

在撰写技术论文时,直接引用QEMU官网的介绍虽然省事,但并不推荐。为了确保对QEMU有深入的理解,本文将探讨QEMU的基本原理、功能模拟方式,以及其在CXL相关功能方面的实现。

需要关注的问题

  1. QEMU是什么?QEMU有哪些工作模式?
  2. QEMU是如何支持CXL相关功能的?具体支持哪些功能?
  3. KVM与QEMU的关系是什么?它们是如何协作的?

问题一:QEMU是什么?

QEMU(Quick EMUlator)是一种开源的虚拟机监视器和仿真器,主要目的是实现功能上的模拟,而不关注系统内部实现与真实世界是否完全一致。

QEMU主要有两种使用方式:

  • 作为emulator使用:包括full-system和user-mode两种模式。full-system模式会模拟系统的全部组件,包括处理器和外围设备,可以直接在其上运行操作系统;user-mode模式则是在当前宿主机环境下,运行与当前CPU不同指令集的进程。
  • 作为virtualizer使用:通过底层硬件支持(如Intel-VT、AMD-V等虚拟化技术)和Xen或KVM等系统级虚拟化技术相结合,高效运行虚拟化系统。

emulator与virtualizer的区别

  • emulator:主要用于模拟不同指令集或体系架构的CPU,通常需要解释执行微指令,因此效率相对较低。
  • virtualizer:主要虚拟出相同指令集和架构的硬件平台,可以直接利用CPU执行目标指令,因此运行速度更快。

问题二:QEMU如何支持CXL功能?

QEMU主要支持CXL 2.0及更高版本,并实现了多个CXL系统标准组件,包括CXL主机桥、CXL根端口、CXL交换机以及CXL type 3设备等。这些组件的控制和功能是通过系统软件使用CXL 2.0规范中描述的方法来实现的。

问题三:QEMU与KVM的关系

QEMU本身可以模拟底层的全部硬件,包括CPU、内存和硬件设备等。Guest OS将QEMU模拟出的硬件视为真实硬件进行交互,但所有指令都需要通过QEMU转译,因此性能较差。

KVM是Linux内核的一个模块,主要功能是打开并初始化Virtual Machine Extension(VMX)功能,提供相应的接口以支持虚拟机运行。KVM只模拟CPU和内存,Guest OS的CPU指令不需要经过QEMU转译,直接运行,从而大大提高速度。

QEMU-KVM的结合是为了同时满足虚拟化性能和与底层模拟硬件的交互。在这种模式下,QEMU负责模拟网卡、显示器等I/O设备,而CPU和内存的模拟则由KVM负责。此外,为了进一步提高设备性能,还引入了pass through半虚拟化设备。


上图来自:https://blog.csdn.net/whatday/article/details/78445932

参考文献

  1. QEMU入门指南
  2. QEMU的编译与使用
  3. Qemu: User mode emulation and Full system emulation
  4. QEMU支持3种运行模式的理解
  5. CXL-QEMU
  6. KVM-Qemu-Libvirt三者之间的关系
  7. QEMU和KVM的关系
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号