嵌入式系统的多样化格式论文

时间:2020-12-06 08:23:40 论文格式 我要投稿

嵌入式系统的多样化格式论文

  引 言:全系统仿真是指在宿主机的操作系统上运行一个模拟硬件的程序来仿真目标硬件,在其上可以运行真实的软件栈(包括操作系统和应用程序)。现有的仿真工具大多是基于单机架构的,在使用上,它们往往存在着配置复杂、对机器CPU、内存等配置要求较高,软/硬件逻辑改动无法同步等不足。为此,我们考虑到了嵌人式系统软/硬件开发人员位于分布式环境的特点,设计了一种基于B/s架构的分布式仿真平台。分布式的架构解决了上述单机架构的不足,此外它通过开发人员对子模块软硬件逻辑的局部更新,实现对系统全局仿真模型自动和增量式的更新。我们基于开源嵌入式全系统仿真工具SimSoCCaa实现了该仿真平台。

嵌入式系统的多样化格式论文

  同时,我们的工程经验也阐释了将单机架构的仿真工具改成了分布式架构的一般规律。本文首先讨论了嵌入式仿真工具从单机架构改成分布式带来的优点,然后给出了一种基于B/S架构的'仿真平台的设计与实现。最后通过两个典型的场景说明了该平台的应用。

  1 从单机架构到分布式在这一部分,我们将比较分布式的仿真平台和基于单机的仿真平台,讨论分布式架构可能带来的优点。

  考虑这样一种基于B/S架构的分布式仿真平台:软硬件开发人员位于分布式的环境中,即在不同的地方,使用不同的机器进行开发工作。开发者通过仿真平台的Browser端提交软硬件逻辑、提交仿真任务。仿真平台的Server端负责构建仿真模型,进行仿真计算。如图1所示。这样的一种分布式架构,相比基于单机的仿真工具,会带来一些显而易见的好处:①无需在本地搭建仿真环境,通过浏览器即可使用;② 将非常消耗计算资源的仿真计算从本地机器转移到了Server端;③开发者对软硬件逻辑的改动通过提交到Server可以及时反映给其他开发者;④对通常是命令行界面、较难上手的仿真工具进行了封装,只将有用的功能通过Browser端的GUI暴露给使用者。

  此外,相较于单机架构,分布式架构提供了更方便的构建仿真模型的方法。在使用基于单机架构的仿真工具时,最重要、也是工作量最大的任务是构建仿真模型。仿真模型的构建依赖于对于目标系统(尤其是软硬件逻辑及其接口)有全面和深刻的理解。在一些规模较大、逻辑较为复杂的嵌入式开发项目中,单人很难做到理解整个系统。因此,在实际项目开发中,往往有专职的仿真人员。这些仿真人员独立于软硬件开发人员,他们需要在整个开发周期里同开发人员沟通,了解开发人员的开发进度,跟进并理解最新的软硬件代码,搭建/更新仿真模型,将仿真结果反馈给开发人员。仿真人员的存在毫无疑问会增加人力成本和沟通成本。

  而在分布式的环境中,在待仿真系统完成了软硬件功能划分后,首先通过Browser端描述系统的架构。此后,在整个系统开发周期中,不同分工的软/硬件开发者只需通过Browser端提交子模块相应的代码逻辑,进行局部仿真模型的构建与更新,与此同时,整个系统的仿真模型会进行自动地、增量式的更新。在嵌入式系统开发中,不同开发者的分工不同。除了软硬件开发者之间的分工差异之外,不同的硬件开发人员可能分别负责FPGA硬件逻辑中不同的子模块。在分布式的架构中,不要求有专人对整个系统有全局性的理解以构建仿真模型,每个人可以专注于他所负责的子模块。

  2 分布式仿真平台设计与实现这个仿真平台的重点是分布式框架,而非工具本身。因此在实现上,我们希望尽可能地集成现有的仿真工具,而非重新开发一个仿真工具。

  我们选择将开源全系统仿真工具SimSoC变成从单机架构变成分布式。本节将讨论仿真平台实现的技术细节。

  2.1 B/S架构在实现上,我们决定使用FlexE来开发Browser端。

  Flex是Adobe公司发布的基于Flash平台开发富互联网应用(rich internet applications,RIA)的技术。Browser端允许用户通过GUI界面完成以下操作:编辑系统架构;提交/更新软硬件逻辑;提交仿真任务,查看仿真结果。

  Server端则起到了信息和控制中枢的作用。它负责:维护仿真资源库;运行用户提交的仿真任务;管理提交的软硬件逻辑。

  我们使用Java Servletlg 作为Browser端与Server端的中间层。Servlet由Tomcat服务器进行加载,运行在Server端,它可以将来自于Browser端的Http请求翻译成对Sim—Soc的调用命令。Java Servlet的存在,使得Browser端同Server端的仿真工具解耦,当使用非SimSoC的其它仿真工具时,只需要在Java Servlet重新定义Http请求到仿真工具调用命令的映射即可。

  2.2 配置系统架构用户在使用Browser端配置系统架构时,并不需要从零开始搭建,而是可以复用一些预定义的仿真资源模块。

  由于我们使用SimSoC作为Server端的仿真工具,因此这些仿真模块会分别对应SimSoC里一些已经实现的SystemC类。这些预定义的仿真模块包括各种体系架构的嵌入式处理器,内存、总线、各种外设等。当Browser端初始化时,会从Server获得一个描述仿真资源库的XML文件。在该文件里,定义了各个模块的描述、端口、属性等信息。