您的位置 首页 电源

根据X86渠道的ARM指令集模拟器的规划

随着嵌入式系统软件的发展,以及嵌入式应用在各个行业的普及,嵌入式系统开发已经被越来越多的人所关注。目前,嵌入式软件更新频率快,因此要求开发者在短期内能开发出具有针对型的应用程序,然而嵌入式系统运行环境

摘要:跟着嵌入式体系软件的开展,以及嵌入式使用在各个职业的遍及,嵌入式体系开发现已被越来越多的人所重视。现在,嵌入式软件更新频率快,因而要求开发者在短期内能开宣布具有针对型的使用程序,但是嵌入式体系运转环境往往是用户拟定,而且运转在特定的硬件环境中。惯例的软件开发办法往往导致嵌入式体系开发功率低下,一起大幅进步了开发本钱。因而,完结对嵌入式体系硬件环境的仿真能有用进步嵌入式体系开发功率。本文针对此问题,结合现有ARM体系架构和指令集模仿器完结原理,提出了一套根据X86渠道的ARM指令集模仿器的规划方案。
关键词:嵌入式体系开发;ARM体系架构;指令集模仿技能;ARM指令集模仿器

现在,仿真技能和虚拟技能被广泛使用各个领域,特别在嵌入式体系的开发进程中,因为在不同使用领域中,嵌入式开发要求的硬件体系不同很大,用软件进行体系仿真或虚拟硬件十分必要。软件仿真的要点是微控制器的仿真,而对微控制器的仿真要点又在指令仿真上,因而本文给出一种根据解说型仿真战略的指令仿真器的完结。指令集仿真器(Instruction Set Simulator,ISS)是用来在宿主机仿真另一种方针机上程序运转进程的软件东西。它通过仿真每条指令在方针处理器上的履行作用来仿真方针机程序,是方针处理器的软件仿真器。在嵌入式软硬件的并行开发中,指令仿真器是必不可少的东西之一,在方针机可用之前,通过它就能够完结软件的仿真调试,实在做到了软硬件的并行开发。

1 ARM体系架构及指令集模仿技能
1.1 ARM体系架构
到现在为止,ARM微处理器以其体积小、低功耗、低本钱、高功用、指令履行速度快、寻址方法灵敏简略、履行功率高、指令长度固定等长处简直现已深化到各个领域。ARM处理器完结加载/存储(load/store)体系结构,是典型的RISC处理器。只要加载和存储指令能够拜访存储器。数据处理指令支队寄存器的内容进行操作,传统的CISC(Complex Instruction Set Computer,杂乱指令集计算机)技能的指令集跟着计算机的开展引入了各式各样的杂乱指令,现已不堪重负。图1描绘了ARM微处理器的体系架构。

a.JPG

1.2 指令集模仿技能
1.2.1 指令集模仿解说型模仿技能
解说型模仿器的模仿流程是参照硬件环境中的指令履行,并不进行任何履行信息的服用,故履行起来功用不高,爱现在干流装备的主机上的运转功用能一般从几十到几百个KIPS(Kilo-Instructions Per-Second)。因为解说型模仿器完结较为简略,一起能够供给满足的模仿精度以及灵敏性,但解说型模仿器的模仿功用低下,故在关于模仿功用没有特别高的要求下,选用这种模仿技能是十分优胜的。现在绝大部分商用的模仿器是解说型模仿器。这类模仿器的典型代表是SimpleScalar。
1.2.2 指令集模仿器动态翻译模仿技能
动态翻译模仿是在解说型模仿技能基础上的一种优化,因为使用了缓存技能尽可能大的复用已解析的信息,进步了模仿的功率。模仿器的作业流程是:模仿一条指令,先核对这条指令是否存在于缓冲页,假如是,则调用存储中已有的解码成果,完结模仿;假如没有,则翻译该指令并将成果缓存页中备用,一起依照解说型模仿的形式,继续进行。因为发动模仿编译器的体系开支较大,为了进步功用,每次发动模仿编译器完结若干条指令的翻译,为了处理便利,每次编译的指令数是固定的,称为一个“翻译页”。在动态翻译模仿技能中,翻译和模仿的进程耦合度较低,能够分配给不同的线程完结,或结合多核技能,将代码的履行作业分配给几个CPU一起来履行,来进步模仿速度。现在选用动态翻译技能的使用的较好的模仿器有Intel IA-32 Execution Layer等。

2 ARM指令集模仿器的规划
2.1 ARM指令集模仿器体系整体结构规划
本模仿器的首要功用是模仿ARM处理器对指令集的处理才能,当把内容为ARM指令的二进制BIN文件输入时,能够模仿在实在ARM处理器上的运转作用。由图2指令集模仿器的整体架构图能够看出一个使用程序在运转的时分和指令集模仿器之间的联系。一个使用程序在通过ARM穿插编译器编译生成根据ARM指令集的二进制可履行文件,可履行文件进入ARM指令集模仿器内核被解说履行,最终得到运转后的成果。

b.JPG

其间模仿器内核是整个模仿器的中心部分,也是本文即将要点规划和完结的部分。它首要包括一下功用:对可履行文件的加载,履行取指令、指令译码、指令模仿履行的三级流水和解析成果的展现。在模仿器内核规划部分,模仿指令履行的进程是内核的中心部分,在本模仿器规划中,学习CPU模型中的指令流水规划内核翻译程序的取指、译码和指令履行3个进程。图3描绘了指令集模仿器内核的整体架构。如图所示,整个内核包括程序加载模块、指令译码模块、取指模块、指令调度与模仿模块、寄存器模仿模块和数据存储模块。在此模仿器中,存储模块不做完结,调用gdb中的相应模块。

c.JPG

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/297212.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部