CN103218250B - 一种处理器模拟方法 - Google Patents

一种处理器模拟方法 Download PDF

Info

Publication number
CN103218250B
CN103218250B CN201310108537.5A CN201310108537A CN103218250B CN 103218250 B CN103218250 B CN 103218250B CN 201310108537 A CN201310108537 A CN 201310108537A CN 103218250 B CN103218250 B CN 103218250B
Authority
CN
China
Prior art keywords
processor
instruction
module
simulation
interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310108537.5A
Other languages
English (en)
Other versions
CN103218250A (zh
Inventor
关小川
陈朝晖
杨孟飞
党纪红
杜建伟
张国峰
傅秀涛
郭向英
陈尧
刘建军
李振松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Institute of Control Engineering
Original Assignee
Beijing Institute of Control Engineering
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Institute of Control Engineering filed Critical Beijing Institute of Control Engineering
Priority to CN201310108537.5A priority Critical patent/CN103218250B/zh
Publication of CN103218250A publication Critical patent/CN103218250A/zh
Application granted granted Critical
Publication of CN103218250B publication Critical patent/CN103218250B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种处理器模拟方法,首先建立体系结构模拟层、指令集模拟层、和处理器模拟层;所述体系结构模拟层由处理器配置文件模块实现,所述指令集模拟层由处理器指令译码模块和处理器指令执行模块组成,所述处理器模拟层由处理器存储模块和处理器片内设备模块组成。本发明仅通过三个层次的模拟接口实现,便快速完成处理器的模拟,缩短了处理器模拟研发时间和周期,提升处理器模拟器研发效率,同时建立了处理器模拟平台统一性,可以使多个航天中常用的不同种类处理器模拟集成于相同模拟平台上,便于处理器模拟的集成、扩展及应用。

Description

一种处理器模拟方法
技术领域
本发明属于嵌入式软件模拟技术领域,涉及一种处理器模拟方法。
背景技术
通常嵌入式系统开发过程中,由于目标系统和宿主机使用的是不同体系结构的处理器,因此无法在宿主机上直接运行和测试目标程序,需要建立一个交叉编译环境,将编译后的目标二进制代码下载到目标系统上运行。这样就使得只有在目标系统设计完成之后,才能进行上层软件的调试和开发,导致软件开发与硬件开发无法并行展开,在航天嵌入式系统中,面临同样的问题。
因此,在航天器嵌入式系统中,在型号软件开发早期采用纯软件的全数字仿真软平台替代价格昂贵的目标硬件系统,以辅助软件开发,提高软件开发效率。全数字仿真软平台关键组成部分包括:处理器模拟、I/O接口的建模与仿真、软平台框架设计。由于处理器模拟核心是模拟目标处理器执行指令过程。
现有处理器模拟方法的基本原理是:对目标二进制文件的指令序列,逐条进行解释执行,修改处理器的相关寄存器状态,如目标程序指针值(PC)等,完成处理器执行指令时的功能特征模拟。不同体系结构的处理器,其寄存器定义、指令集定义均不相同。
现有处理器模拟主要存在的问题是:处理器种类繁多、所属体系结构和指令集特征各不相同,对一个全新处理器的模拟,往往耗时耗力且无法形成统一的模拟平台。
发明内容
本发明所要解决的技术问题是:提供一种处理器模拟方法,能够快速搭建一个全新的处理器模拟器,该方法具有较强适用性,不受处理器体系结构、指令集的影响。主要在星(船)载软件的全数字仿真软平台中使用,提供统一的模拟器开发方法和平台。
本发明的技术方案是:一种处理器模拟方法,步骤如下:
步骤一:建立体系结构模拟层,所述体系结构模拟层由处理器配置文件模块实现,该处理器配置文件模块由多个函数接口组成,所述多个函数接口包括体系结构信息接口、设置程序指针地址接口、获取程序指针地址接口、从起始地址启动指令模拟接口、获取寄存器值及寄存器名称接口;
步骤二:建立指令集模拟层,所述指令集模拟层由处理器指令译码模块和处理器指令执行模块组成;处理器指令译码模块由目标二进制指令译码函数接口实现,将处理器所支持的指令集指令翻译为操作码、操作数形式;处理器指令执行模块由指令模拟执行函数接口实现,根据翻译出的操作码,对操作数进行相应操作;所述处理器所支持的指令集指令为目标二进制指令,以二进制方式进行存储;
步骤三:建立处理器模拟层,所述处理器模拟层由处理器存储模块和处理器片内设备模块组成;处理器存储模块由存储接口实现,定义了处理器可访问的内存区域大小和IO空间范围;处理器片内设备模块由输入输出设备读写操作接口实现,定义了处理器对字节、双字节、四字节的读/写操作接口,以完成与输入输出设备的数据交互;
步骤四:将处理器配置文件模块、处理器指令译码模块、处理器指令执行模块、处理器存储模块和处理器片内设备模块,在本地计算机上进行编译,形成独立的动态库文件;
步骤五:对各个模块的动态库文件进行加载,搭建处理器模拟的运行平台,完成处理器模拟。
所述步骤五通过框架程序对各个模块的动态库文件进行加载,所述框架程序连接各个模块,实现对目标二进制文件加载及人机交互等操作功能。
本发明与现有技术相比的有益效果是:
(1)本发明提出了一种快速搭建处理器模拟器的方法,仅通过三个模拟层的模拟接口实现,便快速完成处理器的模拟,缩短了处理器模拟研发时间和周期,提升处理器模拟器研发效率;
(2)本发明建立了处理器模拟平台统一性,可以使多个航天中常用的不同种类处理器模拟集成于相同模拟平台上,便于处理器模拟的集成、扩展及应用。
附图说明
图1为本发明的实施过程的流程示意图。
具体实施方式
下面结合附图对本发明的具体实施方式进行进一步的详细描述。
如图1所示,本发明涉及一种处理器模拟方法,能够快速搭建一个全新处理器的模拟器;具体步骤如下:
以航天专用处理器TSC695F为例,描述TSC695F处理器模拟的搭建方法,如表1所示,TSC695F处理器属于SPARC体系结构,支持SPARCV7指令集规范。
表1航天常用两种处理器特征信息表
步骤一:根据TSC695F处理器特征信息,建立TSC695F处理器模拟的体系结构模拟层,实现TSC695F配置文件模块,该模块包括:SPARC体系结构信息接口、设置程序指针地址(PC)接口、获取程序指针地址接口、从起始地址启动指令模拟接口、获取SPARC体系结构寄存器值及寄存器名称接口。
步骤二:根据处理器指令信息建立SPARCV7指令集模拟层,所述SPARCV7指令集模拟层由处理器指令译码模块和处理器指令执行模块组成。TSC695F处理器指令译码模块由目标二进制指令译码函数接口实现,将SPARCV7指令集指令从二进制形式翻译为操作码、操作数形式;TSC695F处理器指令执行模块由指令模拟执行函数接口实现,根据翻译出的SPARCV7指令操作码,对操作数进行相应操作。
步骤三:建立TSC695F处理器模拟层,所述处TSC695F处理器模拟层由处理器存储模块和处理器片内设备模块组成。TSC695F处理器存储模块由存储接口实现,定义了处理器可访问的内存区域大小、IO空间范围等信息。如表2所示,根据TSC695F处理器ROM/RAM/IO空间的起始地址及实际配置的存储空间大小,定义处理器的存储访问区域。
表2航天常用两种处理器存储空间分配表
如表1所示,TSC695F处理器片内设备模块包括并口、串口等设备,并口和串口设备分别定义了字节的读/写操作接口,以完成与TSC695F的数据交互操作。
步骤四:将TSC695F处理器配置文件模块、指令译码模块、处指令执行模块、存储模块和片内设备模块,在本地计算机上进行编译,形成独立的动态库文件。
步骤五:通过框架程序对各个模块的动态库文件进行加载,搭建TSC695F处理器模拟的运行平台。所述框架程序连接各个模块,实现对目标二进制文件加载及人机交互等操作功能。
扩展性特征示例:针对本发明的扩展性特征,在TSC695F处理器模拟的运行平台上,描述AT697处理器模拟的快速搭建方法。如表1所示,AT697处理器属于SPARC体系结构,支持SPARCV8指令集规范
(1)扩展性操作一:由于AT697处理器与TSC695F处理器同属SPARC体系结构,所以针对TSC695F处理器模拟,AT697处理器模拟在体系结构模拟层不用更改。
(2)扩展性操作二:如表1所示,AT697处理器支持SPARCV8指令集规范,相对于TSC695F处理器支持的SPARCV7指令集体系结构规范,增加了乘、除法操作等若干条指令。在建立AT697处理器指令集模拟层时,仅需要增加新指令的指令模拟函数接口,即完成AT697处理器指令集模拟层建立。
(3)扩展性操作三:如表2所示,AT697处理器的存储访问空间与TSC695F处理器不同,在实现AT697处理器存储模块的存储接口时,需要重新定义ROM/RAM/IO空间的起始地址及实际配置的存储空间大小。
如表1所示,AT697处理器片内设备模块新增PCI控制相关操作,因此前TSC695F处理器模拟基础上,新增PCI读/写操作接口,完善了处理器片内设备模块操作。
(4)扩展性操作四:完成权利要求步骤四至步骤五进行的操作。
至此,便在TSC695F处理器模拟平台上,通过三个层次模拟模型接口的简单修改,即完成了AT697F处理器模拟,达到快速建立处理器模拟的目的。
工程应用示例:在嫦娥三期探月工程中,采用提出的处理器模拟方法,在现有TSC695F处理器模拟平台上,快速完成了AT697处理器的模拟,完成了型号目标程序的仿真分析、测试及验证过程,为探月工程目标软件的研制提供了有力技术支撑。
本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。

Claims (2)

1.一种处理器模拟方法,其特征在于,步骤如下:
步骤一:建立体系结构模拟层,所述体系结构模拟层由处理器配置文件模块实现,该处理器配置文件模块由多个函数接口组成,所述多个函数接口包括体系结构信息接口、设置程序指针地址接口、获取程序指针地址接口、从起始地址启动指令模拟接口、获取寄存器值及寄存器名称接口;
步骤二:建立指令集模拟层,所述指令集模拟层由处理器指令译码模块和处理器指令执行模块组成;处理器指令译码模块由目标二进制指令译码函数接口实现,将处理器所支持的指令集指令翻译为操作码、操作数形式;处理器指令执行模块由指令模拟执行函数接口实现,根据翻译出的操作码,对操作数进行相应操作;所述处理器所支持的指令集指令为目标二进制指令,以二进制方式进行存储;
步骤三:建立处理器模拟层,所述处理器模拟层由处理器存储模块和处理器片内设备模块组成;处理器存储模块由存储接口实现,定义了处理器可访问的内存区域大小和IO空间范围;处理器片内设备模块由输入输出设备读写操作接口实现,定义了处理器对字节、双字节、四字节的读/写操作接口,以完成与输入输出设备的数据交互;
步骤四:将处理器配置文件模块、处理器指令译码模块、处理器指令执行模块、处理器存储模块和处理器片内设备模块,在本地计算机上进行编译,形成独立的动态库文件;
步骤五:对各个模块的动态库文件进行加载,搭建处理器模拟的运行平台,完成处理器模拟。
2.根据权利要求1所述的一种处理器模拟方法,其特征在于,
所述步骤五通过框架程序对各个模块的动态库文件进行加载,所述框架程序连接各个模块,实现对目标二进制文件加载及人机交互操作功能。
CN201310108537.5A 2013-03-29 2013-03-29 一种处理器模拟方法 Active CN103218250B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310108537.5A CN103218250B (zh) 2013-03-29 2013-03-29 一种处理器模拟方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310108537.5A CN103218250B (zh) 2013-03-29 2013-03-29 一种处理器模拟方法

Publications (2)

Publication Number Publication Date
CN103218250A CN103218250A (zh) 2013-07-24
CN103218250B true CN103218250B (zh) 2016-01-13

Family

ID=48816075

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310108537.5A Active CN103218250B (zh) 2013-03-29 2013-03-29 一种处理器模拟方法

Country Status (1)

Country Link
CN (1) CN103218250B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106250308B (zh) * 2016-07-22 2019-06-04 北京赛博智通信息技术有限责任公司 一种基于仿真数据模型的模拟器系统及方法
EP3285165A1 (de) * 2016-08-18 2018-02-21 dSPACE digital signal processing and control engineering GmbH Modifizieren und simulieren der betriebssoftware eines technischen systems
CN107665281B (zh) * 2017-09-27 2020-12-08 浙江大学 一种基于fpga的处理器模拟方法
CN112308222B (zh) * 2020-10-27 2023-06-23 之江实验室 一种基于rram存算一体全系统模拟器及其设计方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101256502A (zh) * 2007-02-27 2008-09-03 国际商业机器公司 模拟多处理器系统的系统和方法
CN102681941A (zh) * 2012-05-15 2012-09-19 北京理工大学 一种可扩展的嵌入式仿真测试系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101256502A (zh) * 2007-02-27 2008-09-03 国际商业机器公司 模拟多处理器系统的系统和方法
CN102681941A (zh) * 2012-05-15 2012-09-19 北京理工大学 一种可扩展的嵌入式仿真测试系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
快速SPARC V7指令集模拟器的设计方法;关小川,陈朝晖,党纪红;《计算机工程与设计》;20111231;第32卷(第2期);全文 *

Also Published As

Publication number Publication date
CN103218250A (zh) 2013-07-24

Similar Documents

Publication Publication Date Title
US10360327B2 (en) Modifying a virtual processor model for hardware/software simulation
CN102650966B (zh) 一种面向复用的嵌入式软件测试方法及其测试系统
CN103218250B (zh) 一种处理器模拟方法
CN102480467B (zh) 一种基于网络通讯协议的soc软硬件协同仿真验证方法
CN104899076A (zh) 一种超大规模集成电路门级网表仿真的加速方法
CN102841837B (zh) 一种基于模拟器的软硬件协同验证方法及系统
CN105446841A (zh) 缓存一致性测试方法
CN105701294A (zh) 实现芯片复杂工程修改的方法及系统
CN103440373A (zh) 一种多dsp系统的互联配置模拟方法
Ahmadi-Pour et al. The MicroRV32 framework: An accessible and configurable open source RISC-V cross-level platform for education and research
CN117667655A (zh) 验证系统、验证方法、电子设备以及存储介质
CN102054088B (zh) 用于原型制作片上系统设计的虚拟平台
US20030093258A1 (en) Method and apparatus for efficient simulation of memory mapped device access
CN111597115A (zh) 一种嵌入式操作系统自动化闭环测试系统及测试方法
US6813751B2 (en) Creating standard VHDL test environments
CN115374017A (zh) 一种仿真运行可执行文件时抓取现场的方法及计算设备
CN102508697B (zh) 一种Java实现8位嵌入式CPU仿真运行环境的方法
CN115185638A (zh) 一种仿真运行应用程序时获取调用栈的方法及计算设备
CN107861795A (zh) 模拟物理tcm芯片的方法、系统、装置及可读存储介质
JP2013020425A (ja) オープンソースソフトウェアを利用したハードウェア・ソフトウェア協調検証方法
Gordon et al. Porting the Kitten Lightweight Kernel Operating System to RISC-V
CN114138589A (zh) 基于fpga的虚实结合仿真加速方法、系统及介质
EP3961389A1 (en) Virtual machine for developing and testing target code for hardware designs
CN112579169B (zh) 处理器追踪流的生成方法及装置
CN118171707A (zh) 一种基于卷积神经网络微处理器的虚拟原型平台

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant