写点什么

科普:嵌入式多核并行仿真

  • 2024-03-19
    浙江
  • 本文字数:1360 字

    阅读完需:约 4 分钟

科普:嵌入式多核并行仿真

自信息技术革命以来,计算机一直被应用在各种复杂的数据处理中,如火箭弹道,高能物理和生物学数据等。随着嵌入式领域的多样化需求的不断丰富,多核 CPU 的应用也越来越广泛:嵌入式系统通常需要同时处理多个任务和实时数据,并在有限的资源和功耗限制下提供高性能和可靠性。多核技术为这些需求提供了有效的解决方案。


CPU 多核技术是一种设计方法,支持将多个独立的处理单元(称为核心)集成在单个芯片上的中央处理器(CPU)中。CPU 内的每个核心都可以作为一个独立的处理单元,能够独立执行指令和进行计算。多核技术的主要目的是提高 CPU 的整体性能和效率:通过拥有多个核心,CPU 可以同时执行多个任务,提高多任务处理能力,实现并行处理和增加吞吐量。


多核技术相比传统的单核处理器具有下列优势:

1. 更好地利用系统资源,多个任务可以同时执行而不会争夺同一个核心,从而提高系统响应速度并减少延迟;


2.有效处理多线程应用程序,不同的执行线程可以分布在多个核心上进行高效处理。


在带来诸多便捷的同时,多核技术也给 CPU 仿真带来了巨大挑战。在目标机只有 1 个核心的情况,通常只需采用一个主机线程来完成 CPU 的逻辑(主要包括取指、解码和执行)。而当目标机拥有多个核心的情况,虽然可以同样采用单核 CPU 仿真的方式,也就是使用一个主机线程串行来完成多个目标机 CPU 的逻辑,尽管这样实现具有较强的确定性(目标机多核 CPU 是串行执行的),但其缺点也是显而易见的:仿真性能大打折扣。


要解决这一问题,也就是实现多核并行仿真面临诸多难点:

Q:怎样保证目标机 CPU 的原子操作?

A:需要理解目标机 CPU 所有原子操作的原理,借助主机平台的一些互斥机制去实现。


Q:怎样保证目标机 CPU 两个核心执行速度一致?

A:需要从不同的维度(如虚拟时间)实现一些同步机制去控制仿真 CPU 运行的速度。


天目全数字实时仿真软件 SkyEye 能够解决这一问题。对于 CPU 多核仿真,SkyEye 既支持串行仿真,又支持并行仿真,可以通过启动脚本灵活配置。


多核并行仿真主要通过使用宿主机 N 个线程去实现目标机 N 个 CPU 核心的逻辑,相较于串行仿真,理论性能提升约 N 倍,串并行仿真逻辑详见下图。

▲SkyEye 串并行仿真逻辑


在 CPU 的指令仿真方面,SkyEye 使用了动态二进制翻译技术。该技术主要由 Tag 和 Translation 两个步骤组成,Tag 步骤和仿真 CPU 执行指令在同一线程,而 Translation 步骤可以运行在另一线程中,当 Translation 步骤完成后,即可运行原生平台的指令块等价实现目标机 CPU 指令块的功能,进一步提高 CPU 仿真性能。


天目全数字实时仿真软件 SkyEye 是基于可视化建模的硬件行为级仿真平台,支持用户通过拖拽的方式对硬件进行行为级别的仿真和建模。


基于 SkyEye 搭建的嵌入式系统虚拟化运行环境,工程师可不受物理硬件限制,随时访问目标系统,快速搭建虚拟硬件模型并提前进行开发、测试和验证工作,实现高效率、高质量的软件交付。SkyEye 支持主流的嵌入式硬件平台,可运行国内外主流的操作系统,对国产生态的支持尤为出色。通过利用基于 LLVM 的动态二进制翻译技术,SkyEye 可使虚拟处理器在典型的桌面计算机上运行速度达到 2000MIPS 以上。


SkyEye 有效解决了嵌入式软件研发时过分依赖硬件资源的问题,填补了国内嵌入式虚拟仿真领域的空白,为嵌入式软件研发模式带来了革新式的变化。

▲SkyEye 界面图:基于可视化图形的硬件建模


原文链接:https://mp.weixin.qq.com/s/Tid8mJwIr8lyB1iK-jC1SQ


发布于: 刚刚阅读数: 2
用户头像

还未添加个人签名 2023-07-03 加入

还未添加个人简介

评论

发布
暂无评论
科普:嵌入式多核并行仿真_仿真建模_DevOps和数字孪生_InfoQ写作社区