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

news/2024/11/27 15:22:19/

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.ppmy.cn/news/1550377.html

相关文章

红外小目标检测

目录 背景概述算法原理演示效果核心逻辑 使用方式基础镜像配置环境直接运行 参考文献 文章声明,非广告,仅个人体验。 背景 红外图像在许多领域中都有所应用。例如军事领域中,经常需要通过红外成像设备对远距离的目标进行侦察和监视&#xff…

tableau-制作30个图表

制作条形图 步骤: 1、横轴是数值,对应了某一个度量值,纵轴是一个标签 战区的成交额,条形图横轴是战区,纵轴是成交额 下钻条形图 1、增加业务架构-战区右键点击,分层结构,增加分层结构 调整业务架构,将战区,城市,小组移动到业务架构下方 此时的条形图上方有➕号展开后…

ElasticSearch学习笔记六:Springboot整合

一、前言 在前一篇文章中,我们学习了ES中的一部分的搜索功能,作为一名Java工程师,更多时候我们是用代码去操作ES,同时对于Java而言时下最流行的就是Springboot了,所以这里我们将ES和Springboot整合将上一篇文章中的所…

【C++】读取数量不定的输入数据

读取数量不定的输入数据 似乎是一个很实用的东西? 问题: 我们如何对用户输入的一组数(事先不知道具体有多少个数)求和? 这需要不断读取数据直至没有新的输入为止。(所以我们的代码就是这样设计的&#x…

淘宝/天猫按图搜索(拍立淘)API的深度解析与应用实践

在数字化时代,电商行业的快速发展带来了消费者购物习惯的转变,个性化、便捷性和高效性成为新的购物需求。淘宝/天猫作为国内领先的电商平台,推出了按图搜索(拍立淘)API,这一功能通过图像识别技术&#xff0…

鸿蒙HarmonyOS系统相机Camera相关API使用

HarmonyOS下Camera相机相关API使用 准备工作 1. 导入camera接口 import { camera } from kit.CameraKit; import { BusinessError } from kit.BasicServicesKit; import { common } from kit.AbilityKit;2.获取cameraManager对象 getCameraManager(): camera.CameraManager…

大模型面试题:能简单说下attention中存在的问吗?

我整理了1000道算法面试题: 获取 先说结论:从Attention is not all you need 这篇论文来看,单纯的不加残差连接且不加MLP的多层多头的Attention堆叠会导致模型输出的秩坍缩到rank-1的矩阵,也就是最后所有的表征都趋向于同一个向量…

训练的decoder模型文本长度不一致,一般设置为多大合适,需要覆盖最长的文本长度么

在训练解码器模型时,文本长度不一致是常见的情况,需要根据任务的特性和数据集的长度分布来设置合理的最大长度 (max_length)。以下是一些指导原则,帮助你设置合适的最大长度: 1. 是否需要覆盖最长文本长度 覆盖最长文本长度: 如果任务对完整性要求很高(例如生成数学公式、…