CN103218250A - 一种处理器模拟方法 - Google Patents
一种处理器模拟方法 Download PDFInfo
- Publication number
- CN103218250A CN103218250A CN2013101085375A CN201310108537A CN103218250A CN 103218250 A CN103218250 A CN 103218250A CN 2013101085375 A CN2013101085375 A CN 2013101085375A CN 201310108537 A CN201310108537 A CN 201310108537A CN 103218250 A CN103218250 A CN 103218250A
- Authority
- CN
- China
- Prior art keywords
- processor
- module
- simulation
- instruction
- 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.)
- Granted
Links
Images
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体系结构寄存器值及寄存器名称接口。
步骤二:根据处理器指令信息建立SPARC V7指令集模拟层,所述SPARC V7指令集模拟层由处理器指令译码模块和处理器指令执行模块组成。TSC695F处理器指令译码模块由目标二进制指令译码函数接口实现,将SPARC V7指令集指令从二进制形式翻译为操作码、操作数形式;TSC695F处理器指令执行模块由指令模拟执行函数接口实现,根据翻译出的SPARC V7指令操作码,对操作数进行相应操作。
步骤三:建立TSC695F处理器模拟层,所述处TSC695F处理器模拟层由处理器存储模块和处理器片内设备模块组成。TSC695F处理器存储模块由存储接口实现,定义了处理器可访问的内存区域大小、IO空间范围等信息。如表2所示,根据TSC695F处理器ROM/RAM/IO空间的起始地址及实际配置的存储空间大小,定义处理器的存储访问区域。
表2航天常用两种处理器存储空间分配表
如表1所示,TSC695F处理器片内设备模块包括并口、串口等设备,并口和串口设备分别定义了字节的读/写操作接口,以完成与TSC695F的数据交互操作。
步骤四:将TSC695F处理器配置文件模块、指令译码模块、处指令执行模块、存储模块和片内设备模块,在本地计算机上进行编译,形成独立的动态库文件。
步骤五:通过框架程序对各个模块的动态库文件进行加载,搭建TSC695F处理器模拟的运行平台。所述框架程序连接各个模块,实现对目标二进制文件加载及人机交互等操作功能。
扩展性特征示例:针对本发明的扩展性特征,在TSC695F处理器模拟 的运行平台上,描述AT697处理器模拟的快速搭建方法。如表1所示,AT697处理器属于SPARC体系结构,支持SPARC V8指令集规范
(1)扩展性操作一:由于AT697处理器与TSC695F处理器同属SPARC体系结构,所以针对TSC695F处理器模拟,AT697处理器模拟在体系结构模拟层不用更改。
(2)扩展性操作二:如表1所示,AT697处理器支持SPARC V8指令集规范,相对于TSC695F处理器支持的SPARC V7指令集体系结构规范,增加了乘、除法操作等若干条指令。在建立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所述的一种处理器模拟方法,其特征在于,
所述步骤五通过框架程序对各个模块的动态库文件进行加载,所述框架程序连接各个模块,实现对目标二进制文件加载及人机交互等操作功能。
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 true CN103218250A (zh) | 2013-07-24 |
CN103218250B 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) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106250308A (zh) * | 2016-07-22 | 2016-12-21 | 北京赛博智通信息技术有限责任公司 | 一种基于仿真数据模型的模拟器系统及方法 |
CN107665281A (zh) * | 2017-09-27 | 2018-02-06 | 浙江大学 | 一种基于fpga的处理器模拟方法 |
CN107766602A (zh) * | 2016-08-18 | 2018-03-06 | 帝斯贝思数字信号处理和控制工程有限公司 | 技术系统的运行软件的修正和仿真 |
CN112308222A (zh) * | 2020-10-27 | 2021-02-02 | 之江实验室 | 一种基于rram存算一体全系统模拟器及其设计方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101256502A (zh) * | 2007-02-27 | 2008-09-03 | 国际商业机器公司 | 模拟多处理器系统的系统和方法 |
CN102681941A (zh) * | 2012-05-15 | 2012-09-19 | 北京理工大学 | 一种可扩展的嵌入式仿真测试系统 |
-
2013
- 2013-03-29 CN CN201310108537.5A patent/CN103218250B/zh active Active
Patent Citations (2)
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)
Title |
---|
关小川,陈朝晖,党纪红: "快速SPARC V7指令集模拟器的设计方法", 《计算机工程与设计》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106250308A (zh) * | 2016-07-22 | 2016-12-21 | 北京赛博智通信息技术有限责任公司 | 一种基于仿真数据模型的模拟器系统及方法 |
CN106250308B (zh) * | 2016-07-22 | 2019-06-04 | 北京赛博智通信息技术有限责任公司 | 一种基于仿真数据模型的模拟器系统及方法 |
CN107766602A (zh) * | 2016-08-18 | 2018-03-06 | 帝斯贝思数字信号处理和控制工程有限公司 | 技术系统的运行软件的修正和仿真 |
CN107665281A (zh) * | 2017-09-27 | 2018-02-06 | 浙江大学 | 一种基于fpga的处理器模拟方法 |
CN107665281B (zh) * | 2017-09-27 | 2020-12-08 | 浙江大学 | 一种基于fpga的处理器模拟方法 |
CN112308222A (zh) * | 2020-10-27 | 2021-02-02 | 之江实验室 | 一种基于rram存算一体全系统模拟器及其设计方法 |
CN112308222B (zh) * | 2020-10-27 | 2023-06-23 | 之江实验室 | 一种基于rram存算一体全系统模拟器及其设计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103218250B (zh) | 2016-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105051680B (zh) | 用于在处理器内部的硬件并行执行道上处理指令的处理器及方法 | |
US9053278B1 (en) | System and method for hybrid cloud computing for electronic design automation | |
CN103218250A (zh) | 一种处理器模拟方法 | |
CN103440373A (zh) | 一种多dsp系统的互联配置模拟方法 | |
US9286427B1 (en) | System and method for netlist extraction and circuit simulation | |
CN105260177A (zh) | 基于SiPESC平台的Python扩展模块开发方法 | |
Farhan et al. | SolidWorks secondary development with Visual Basic 6 for an automated modular fixture assembly approach | |
CN102722382A (zh) | 仿真过程中加载表项的方法及仿真设备 | |
US20150379172A1 (en) | Device and method for accelerating the update phase of a simulation kernel | |
CN105335203A (zh) | 共享库的二进制翻译执行方法和装置 | |
US20030093258A1 (en) | Method and apparatus for efficient simulation of memory mapped device access | |
CN113805848B (zh) | 目标机控制软件集成方法和系统 | |
CN102508697B (zh) | 一种Java实现8位嵌入式CPU仿真运行环境的方法 | |
CN113536717B (zh) | 一种基于增量编译的电路仿真方法 | |
US6813751B2 (en) | Creating standard VHDL test environments | |
CN117667655A (zh) | 验证系统、验证方法、电子设备以及存储介质 | |
Uzedhe et al. | Microcontroller Based Real-Time Emulator for Logic Gate and Structured Logic Devices | |
KR102457183B1 (ko) | 공유 번역 블록 캐시 기반의 멀티-코어 시뮬레이션 시스템 및 방법 | |
CN203812434U (zh) | 面向计算机组成原理课程教学的模拟器 | |
Gordon et al. | Porting the Kitten Lightweight Kernel Operating System to RISC-V | |
Furukawa et al. | A hardware/software cosimulator with RTOS supports for multiprocessor embedded systems | |
CN101763300A (zh) | Sata端口测试信号生成方法 | |
Gao et al. | Work-in-Progress: HeteroRW: A Generalized and Efficient Framework for Random Walks in Graph Analysis | |
Leupers et al. | Programming MPSoC platforms: Road works ahead! | |
Azuma et al. | Distributed memory architecture for high-level synthesis of embedded controllers from Erlang |
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 |