当前位置: 首页 > article >正文

基于nxp LS1046+fpga的嵌入式系统中虚拟化设备的设计与实现

3 虚拟化设备仿真平台设计
本文需要设计和实现的虚拟化设备需要搭建一个仿真平台,一个完善的仿真平台才
是一种虚拟化设备能搭建起来的关键,仿真平台的搭建需要一定条件的硬件环境,更为
主要的是软件环境,下文就要详细介绍此虚拟化平台的搭建。
3.1 设备仿真平台架构
本论文所要设计的虚拟化设备所需要的硬件环境主要是需要 ARM v8 架构的 Linux
服务器作为宿主机,其中 CPU 核数不少于 16 ,硬盘容量不低于 500GB ,物理内存不低
32GB 。在软件环境方面,设备仿真平台主要分为处理器平台仿真、硬件适配和环境
部署三个方面。其中需要模拟的主控设备采用的是 LS1046 处理器,处理器的仿真采用
QEMU 虚拟化技术。 QEMU 的开发与运行都是基于宿主机 Linux 系统环境进行,其中
Linux 系统内核版本建议不低于 3.10 ,本次开发使用的是开源的 QEMU 源码,源码版本
3.1.0-rc4 。硬件适配采用重定位共享库技术,共享库运行在操作系统中,接口库封装
Linux 操作系统的交叉编译环境。环境部署主要包含虚拟仿真设备的部署与全系统的网
络拓扑搭建,设备的部署采用 shell 脚本实现;而网络拓扑一部分属于处理器仿真,通
QEMU 实现;另一部分位于 HOST 环境,需基于 bridge-utils 搭建虚拟网桥环境。
3.1.1 仿真平台软件总体方案模型
整个设备仿真平台架构如图 3-1 所示,这个主要分为 HOST 硬件平台、 HOST 软件
系统、 QEMU 硬件模拟和 GUEST 软件系统四个层次。
(1)HOST 硬件平台层:
该层对于设备仿真平台而言主要提供 CPU 和内存模拟的物理资源,其中 CPU 核数、
CPU 主频以及内存大小三方面硬件资源基本决定了设备仿真平台的整体性能。
(2) HOST 软件系统层:
宿主机的操作系统在设备仿真平台中主要拆分为两方面的功能: KVM 驱动是保障
设备仿真平台性能的核心,实现 CPU 和内存的硬件加速;虚拟交换子系统则是设备仿
真平台网络功能的基础,支撑设备仿真平台操作系统内部与外部物理环境网络通信以及
仿真设备之间的网络通信功能。
(3) QEMU 模拟硬件层:
这一层负责模拟设备仿真平台中的硬件单元,主要分为 CPU 、内存以及 IO 设备三
大部分,具体硬件单元的划分与物理设备一一对应。该层主要服务于 guest 软件系统中
的内核部分,使内核不感知是运行于实际物理设备还是虚拟仿真设备中,是设备仿真平
台最核心的部分。
(4)GUEST 软件系统层:
该层是设备仿真平台的软件运行层,按功能垂直划分,最下层运行的是设备仿真平
台的内核软件,负责与硬件的交互;内核之上运行根文件系统,提供用户程序的运行环
境;最上层就是体现虚拟设备主体功能的应用层软件。
3.1.2 仿真平台 QEMU 模拟硬件模块架构
设备仿真平台的 QEMU 模拟硬件模块架构如图 3-2 所示,主要分三个层面:
(1) 最外层为 MACHINE ,可对应于物理机处理器级别,包含 LS1046 处理器与相关
外部设备,如内存、网口设备、 PCIe-PCI 桥、外部 SATA 卡存储和 CPLD 等外部设备,
此外还有 ARM 架构的启动引导单元;
(2) 中间层为 SOC ,可对应于 LS1046 处理器,包含 4 Coretex-A72 ARM 核、中
断控制器、串口控制器、 PCIe 控制器、 SATA 控制器以及 CCSR 部分系统控制单元等;
(3) 最内层则为各具体硬件模块,这部分主要是需要实现硬件单元的地址空间读写
访问、中断控制及相关功能逻辑的模拟。
上述 QEMU 硬件模拟只覆盖到处理器级别,针对板卡级的外围硬件,则需要在
GUEST 软件系统层进行模拟,通过重定位共享库对设备中主控软件运行过程执行的硬
件初始化函数以及硬件功能函数进行劫持,屏蔽后续的硬件操作而直接返回适配和数据
仿真结果。

Specification

Description

处理器

NXP LS1046A at up to 1.4GHz 双CPU

存储

每一个模块
8G DDR4, 8GB Emmc,16MB QSPI FLASH

板卡形状

定制板卡 双CPU模块

尺寸

270.00 * 254.99mm

接口

每一个模块包含
4路1000MBase-TX RJ45
3路USB2.0
1路RS232
4路RS485

调试接口

JTAG / COP debug port

3.2 仿真平台主要功能设计
按照需要实现功能将设备仿真平台划分为成如下几个子系统,设备仿真平台的功能
划分如图 3-3 所示。
(1) 虚拟处理器:模拟处理器 ARM 架构的 CPU 核,模拟 SMP 多核架构,模拟 GIC
中断机制,模拟 CCF DCFG SCFG 等处理器配置单元,模拟启动引导功能,模拟
PCIe 总线相关的功能;
(2) 虚拟内存:分配指定大小的运行内存,模拟 MMU 内存管理机制;
(3) 模拟串口控制台:模拟串口控制器,实现 reboot powerdown 等系统控制命令;
(4) 模拟网络设备:模拟网络控制器,模拟多个网卡设备;
(5) 模拟外存设备:模拟外存控制器,模拟外部存储卡设备;
(6) 性能加速:即 KVM 机制,实现 CPU 和内存的硬件加速;
(7) 设备仿真适配:屏蔽硬件细节,适配设备硬件初始化操作,模拟设备类型、设备
在位和告警等信息,模拟业务设备的部分数据。

http://www.kler.cn/a/415968.html

相关文章:

  • 《安富莱嵌入式周报》第346期:开源2GHz带宽,12bit分辨率,3.2Gsps采样率示波,开源固件安全分析器, 开源口袋电源,开源健康测量,FreeCAD
  • 计算机的错误计算(一百六十九)
  • Tülu 3:重新定义开源大模型的后训练范式
  • spark3.x之后时间格式数据偶发报错org.apache.spark.SparkUpgradeException
  • 火山引擎VeDI在AI+BI领域的演进与实践
  • 视频汇聚平台Liveweb国标GB28181视频平台监控中心设计
  • [python脚本处理文件入门]-17.Python如何操作Excel文件的读写
  • Lyapunov方法发展简史
  • WPS 文本——在修订模式中、并且保留所有批注的情况下,如何显示全部文本的最终状态
  • D2761 适合在个人电脑、便携式音响等系统中作音频限幅用。
  • Java开发网络安全常见问题
  • (C语言) 8大翻译阶段
  • 宠物空气净化器推荐2024超详细测评 希喂VS霍尼韦尔谁能胜出
  • vue3-新增API组件
  • mac上的建议xftp 工具
  • oracle将select作为字段查询
  • Leetcode 每日一题 104.二叉树的最大深度
  • 论文阅读 - Labeled Datasets for Research on Information Operations
  • hue 4.11容器化部署,已结合Hive与Hadoop
  • 单点登录原理
  • Spring Web开发注解和请求(1)
  • 基于投影寻踪博弈论-云模型的滑坡风险评价
  • uniapp使用扩展组件uni-data-select出现的问题汇总
  • 《多模态大型语言模型(MM-LLMs)的最新进展》解读
  • springboot/ssm大学校园生活信息平台Java校园活动论坛交流问卷系统web源码
  • 【面试重难点问题】c++中为什么可以函数重载,但是c语言中不可以