CN115480872A - 一种dsp c2812处理器指令集虚拟化仿真方法 - Google Patents

一种dsp c2812处理器指令集虚拟化仿真方法 Download PDF

Info

Publication number
CN115480872A
CN115480872A CN202211114551.1A CN202211114551A CN115480872A CN 115480872 A CN115480872 A CN 115480872A CN 202211114551 A CN202211114551 A CN 202211114551A CN 115480872 A CN115480872 A CN 115480872A
Authority
CN
China
Prior art keywords
instruction
dsp
processor
simulation
instructions
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
Application number
CN202211114551.1A
Other languages
English (en)
Other versions
CN115480872B (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 Computer Technology and Applications
Original Assignee
Beijing Institute of Computer Technology and Applications
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 Computer Technology and Applications filed Critical Beijing Institute of Computer Technology and Applications
Priority to CN202211114551.1A priority Critical patent/CN115480872B/zh
Publication of CN115480872A publication Critical patent/CN115480872A/zh
Application granted granted Critical
Publication of CN115480872B publication Critical patent/CN115480872B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种DSP C2812处理器指令集虚拟化仿真方法,属于虚拟仿真领域。本本发明通过对123条指令集的仿真,提供DSP C2812嵌入式处理器软件的运行环境,为DSP C2812嵌入式处理器软件的开发提供支撑。本发明提出的方案,能够实现DSP C2812处理器的指令集仿真,仿真精度高,仿真执行效率高;本发明采用数组、链表等实现寄存器、内存的仿真,能够完成仿真DSP C2812处理器。

Description

一种DSP C2812处理器指令集虚拟化仿真方法
技术领域
本发明属于虚拟仿真领域,具体涉及一种DSP C2812处理器指令集虚拟化仿真方法。
背景技术
指令集仿真是处理器虚拟化技术最重要的支撑技术,指令集仿真允许特定指令集上的软件运行在另一类异构的指令集上。在指令集层次上实现虚拟化,实际上就是将某个硬件平台上的二进制代码转换为另一个硬件平台上的二进制代码,从而实现不同指令集间的兼容,这一技术也被称为二进制翻译。虚拟化技术实现有2种主要方式:解释执行、动态二进制翻译。
解释器对源二进制代码逐条进行分析,根据译码结果即指令类型,分解相应的解释例程执行。解释例程在一个由软件维护的源体系结构(包括各种结构寄存器、内存状态等)上用等价的一条或多条目标指令来模拟源指令的执行,获得和源指令同样的执行效果。解释器工作过程主要包括“取指令—>分析指令—>完成指令所需的操作—>修改处理器状态”等步骤,如此循环。
基于解释执行的仿真器在主机中维护一个精确的处理器数据结构,具有很高的仿真精度,可以实现精确的寄存器、存储器、流水线,除了模拟源程序的功能外,可以得到精确的性能指标,如每条指令在流水线中的时钟周期,堆栈模拟等。
但是精确的解释执行方案存在仿真效率低下的问题,本发明基于解释执行技术方案,提出了快速解释执行的仿真方案,实现仿真效率的提升。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是如何提供一种DSP C2812处理器指令集虚拟化仿真方法,以解决精确的解释执行方案存在仿真效率低下的问题。
(二)技术方案
为了解决上述技术问题,本发明提出一种DSP C2812处理器指令集虚拟化仿真方法,该方法包括如下步骤:
S1、DSP C2812目标文件解析
打开DSP C2812编译后的可执行文件*.out,获取Program Header对应的代码段;
S2、DSP C2812内存仿真及代码加载
采用链表结构对DSP C2812处理器内存进行仿真,记为DSP-C2812-Vmemory,并加载Program Header对应的代码段,模拟DSP C2812的内存读写操作;
S3、DSP C2812寄存器仿真
通过数组模拟寄存器,通过数组操作模拟寄存器读写操作,实现寄存器的模拟;
S4、DSP C2812指令描述
每条指令有一个唯一的表示,每条指令分为不同的段;将指令分段的方式进行描述,获取指令Instruction的操作码opcode信息;构建指令操作码信息数组C2812InstructionDesp[123],并将DSP C2812所有指令Instruction进行描述,并存储到指令操作码信息数组C2812InstructionDesp[123]中;
S5、DSP C2812读取指令
根据程序计数器PC(Program Count)的值,从DSP C2812仿真内存DSP-C2812-Vmemory中读取指令,获取当前PC对应的指令PC-Instruction;
S6、DSP C2812指令译码
根据DSP C2812指令描述,逐个计算指令PC-Instruction的操作码与C2812InstructionDesp[123]的对应bit位是否相同,若PC-Instruction与C2812InstructionDesp[123]中第k个指令描述对应的位置相同,则完成指令译码;
S7、DSP C2812指令翻译
对DSP C2812指令集进行功能翻译,并对每条指令的进行操作模拟,保证运行的内存、寄存器保持一致;并将每个指令对应的函数名称存储到指令翻译译码数组中,存储顺序与指令译码数组顺序保持一致;
S8、DSP C2812指令执行
根据指令数量,进行循环取指、译码、指令翻译,并根据函数指针,执行指令操作;连续仿真,直到完成所有指令执行,实现针对DSP C2812的处理器指令集仿真。
进一步地,所述步骤S1具体包括:
S11、打开DSP C2812编译后的可执行文件*.out,读取文件信息;
S12、按照DSP C2812编译后的可执行文件的格式,读取文件信息中的FileHeader、Section Header、Program Header信息,获取Program Header对应的代码段。
进一步地,所述步骤S2具体包括:
S21、采用链表结构对DSP C2812处理器内存进行仿真,其中链表结构体C2812MemoryPage大小为256个字,链表结构体C2812MemoryPage包括:起始虚拟地址MemoryPageBeginAddress、结束虚拟地址MemoryPageEndAddress、内存块MemoryPage、下一个内存节点指针NEXT和前一个内存节点指针PRE;
S22、将DSP C2812芯片仿真内存记为DSP-C2812-Vmemory;将S1获取的ProgramHeader对应的代码段,写入到DSP C2812芯片仿真内存中,并根据代码段的大小,维护整个仿真内存结构。
进一步地,如果代码段不大于256,创建一个C2812MemoryPage,并将代码段写到C2812MemoryPage中去;如果代码段大于256,创建多个C2812MemoryPage组成链表结构,并将代码段按顺序写到对应的C2812MemoryPage中去,并维护各个C2812MemoryPage的MemoryPageBeginAddress、MemoryPageEndAddress信息,保证链表结构信息的正确性。
进一步地,所述步骤S3具体包括:
S31、DSP C2812芯片共计包含34个32bit寄存器,分为16个通用寄存器、18个状态寄存器ACC、AH、AL、DP、IFR、IER、DBGIER、P、PH、PL、PC、RPC、SP、ST0、ST1、XT、T和TL,通过数组C2812Register模拟寄存器;
S32、通过访问C2812Register,对相应的数组中的元素进行操作模拟DSP C2812的寄存器操作,实现对DSP C2812的寄存器仿真。
进一步地,所述步骤S4具体包括:
S41、DSP C2812共计报告123条指令,每条指令有一个唯一的表示,每条指令分为不同的段;采用将指令分段的方式进行描述,获取指令Instruction的操作码opcode信息,并设计指令操作码信息数组C2812InstructionDesp的结构包括:name、contentNumber和content;其中,name是指令名称,contentNumber指令分段数量,content存储的是opcode指令译码信息;
S42、构建指令操作码信息数组C2812InstructionDesp[123],将DSP C2812所有指令进行描述,并存储到指令操作码信息数组C2812InstructionDesp[123]中。
进一步地,所述步骤S5具体包括:
S51、根据程序计数器PC(Program Count)的值,从S2维护的DSP-C2812-Vmemory中读取链表结构体C2812MemoryPage;
S52、根据C2812MemoryPage中的MemoryPageBeginAddress、MemoryPageEndAddress的值,获取指令内容为MemoryPage[MemoryPageBeginAddress],记为PC-Instruction。
进一步地,所述步骤S6具体包括:根据S5读取的PC-Instruction,逐个计算PC-Instruction与C2812InstructionDesp[123]的对应bit位是否相同,若PC-Instruction与C2812InstructionDesp[123]中第k个指令描述对应的位置相同,则该指令记为Instruction_k。
进一步地,所述步骤S7具体包括:
S71、对DSP C2812的123条指令构成的指令集进行功能翻译,并对每条指令的进行操作模拟,保证每一条指令处理后,DSP硬件处理器和虚拟仿真处理器的内存、寄存器保持一致;
S72:翻译DSP C2812的123条指令,并将每个指令对应的函数指针存储到指令翻译译码数组C2812InstructionInterp[123]数组中,存储顺序与C2812InstructionDesp[123]的指令顺序保持一致;
S73、根据S6计算出的Instruction_k,获得该指令对应的函数中指针。
进一步地,所述步骤S8具体包括:
S81、构建DSP C2812的仿真框架,根据指令数量,进行循环取指、译码、指令翻译,并根据函数指针,执行指令操作;
S82、连续仿真,直到完成所有指令执行,实现针对DSP C2812的处理器指令集仿真。
(三)有益效果
本发明提出一种DSP C2812处理器指令集虚拟化仿真方法,本发明通过对123条指令集的仿真,提供DSP C2812嵌入式处理器软件的运行环境,为DSP C2812嵌入式处理器软件的开发提供支撑。本发明提出的方案,能够实现DSP C2812处理器的指令集仿真,仿真精度高,仿真执行效率高;本发明采用数组、链表等实现寄存器、内存的仿真,能够完成仿真DSP C2812处理器。
附图说明
图1为现有的解释执行技术原理;
图2为ADD指令示意图。
具体实施方式
为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
为嵌入式处理软件提供虚拟化的运行环境,本发明提出一种基于解释执行的DSPC2812处理器虚拟化仿真技术方案,DSP C2812是德州仪器研制的一款嵌入式处理器,主频150MHz、闪存大小为256KB、RAM大小为36KB、执行效率150MIPS。DSP C2812共计包含123条指令集,通过对123条指令集的仿真,提供DSP C2812嵌入式处理器软件的运行环境,为DSPC2812嵌入式处理器软件的开发提供支撑。
S1、DSP C2812目标文件解析
打开DSP C2812编译后的可执行文件*.out,读取文件信息;读取文件信息中的File Header、Section Header、Program Header等信息,获取Program Header对应的代码段;
S2、DSP C2812内存仿真及代码加载
为提高内存仿真的可扩展性,采用链表结构对DSP C2812处理器内存进行仿真,记为DSP-C2812-Vmemory,并加载Program Header对应的代码段,模拟DSP C2812的内存读写操作。
S3、DSP C2812寄存器仿真
DSP C2812芯片共计包含34个32bit寄存器,分为16个通用寄存器、18个状态寄存器ACC、AH、AL、DP、IFR、IER、DBGIER、P、PH、PL、PC、RPC、SP、ST0、ST1、XT、T和TL,本发明通过数组模拟寄存器,通过数组操作模拟寄存器读写操作,实现寄存器的模拟。
S4、DSP C2812指令描述
每条指令有一个唯一的表示,每条指令分为不同的段;为准确描述指令结构,本发明采用将指令分段的方式进行描述,获取指令Instruction的操作码opcode信息;构建指令操作码信息数组C2812InstructionDesp[123],并将DSP C2812所有指令Instruction进行描述,并存储到指令操作码信息数组C2812InstructionDesp[123]中。
S5、DSP C2812读取指令
根据程序计数器PC(Program Count)的值,从DSP C2812仿真内存DSP-C2812-Vmemory中读取指令,获取当前PC对应的指令PC-Instruction;
S6、DSP C2812指令译码
根据DSP C2812指令描述,逐个计算指令PC-Instruction的操作码与C2812InstructionDesp[123]的对应bit位是否相同,若PC-Instruction与C2812InstructionDesp[123]中第k个指令描述对应的位置相同,则完成指令译码。
S7、DSP C2812指令翻译
对DSP C2812指令集进行功能翻译,并对每条指令的进行操作模拟,保证运行的内存、寄存器保持一致;并将每个指令对应的函数名称存储到指令翻译译码数组中,存储顺序与指令译码数组顺序保持一致;
S8、DSP C2812指令执行
根据指令数量,进行循环取指、译码、指令翻译,并根据函数指针,执行指令操作;连续仿真,直到完成所有指令执行,实现针对DSP C2812的处理器指令集仿真。
实施例1
本发明提出一种基于解释执行的DSP C2812处理器虚拟化仿真技术方案,DSPC2812是德州仪器研制的一款嵌入式处理器,主频150MHz、闪存大小为256KB、RAM大小为36KB、执行效率150MIPS,本发明通过指令集仿真,实现DSP C2812的虚拟化仿真。
S1、DSP C2812目标文件解析
S11、打开DSP C2812编译后的可执行文件*.out,读取文件信息;
S12、按照DSP C2812编译后的可执行文件的格式,读取文件信息中的FileHeader、Section Header、Program Header等信息,获取Program Header对应的代码段;
S2、DSP C2812内存仿真及代码加载
S21、DSP C2812芯片代码存储空间最大为7M,为提高内存仿真的可扩展性,采用链表结构对DSP C2812处理器内存进行仿真,其中链表结构体C2812MemoryPage大小为256个字(word),链表结构体C2812MemoryPage包括:起始虚拟地址MemoryPageBeginAddress、结束虚拟地址MemoryPageEndAddress、内存块MemoryPage、下一个内存节点指针NEXT和前一个内存节点指针PRE;
链表结构体如下:
Figure BDA0003844906290000071
S22、将DSP C2812芯片仿真内存记为DSP-C2812-Vmemory;将S1获取的ProgramHeader对应的代码段,写入到DSP C2812芯片仿真内存中,并根据代码段的大小,维护整个仿真内存结构;
如果代码段不大于256(一个MemoryPage的大小),创建一个C2812MemoryPage,并将代码段写到C2812MemoryPage中去;
如果代码段大于256(一个MemoryPage的大小),创建多个C2812MemoryPage组成链表结构,并将代码段按顺序写到对应的C2812MemoryPage中去,并维护各个C2812MemoryPage的MemoryPageBeginAddress、MemoryPageEndAddress等信息,保证链表结构信息的正确性。
S3、DSP C2812寄存器仿真
S31、DSP C2812芯片共计包含34个32bit寄存器,分为16个通用寄存器、18个状态寄存器ACC、AH、AL、DP、IFR、IER、DBGIER、P、PH、PL、PC、RPC、SP、ST0、ST1、XT、T和TL,本发明通过数组C2812Register模拟寄存器,通过数组操作模拟寄存器读写操作,实现寄存器的模拟,主要模拟结果如下:
Figure BDA0003844906290000081
S32、通过访问C2812Register,对相应的数组中的元素进行操作模拟DSP C2812的寄存器操作,实现对DSP C2812的寄存器仿真。
S4、DSP C2812指令描述
S41、DSP C2812共计包括123条指令,每条指令有一个唯一的表示,每条指令分为不同的段;为准确描述指令结构,本发明采用将指令分段的方式进行描述,获取指令Instruction的操作码opcode信息,并设计指令操作码信息数组C2812InstructionDesp的结构包括:name、contentNumber和content;
C2812InstructionDesp描述结构如下:
Figure BDA0003844906290000091
其中,name是指令名称,contentNumber指令分段数量,content存储的是opcode指令译码信息。
以ADD指令为例,对指令结构进行描述,其中ADD指令信息如图2所示(来自指令集参考手册)。
Name为“ADD ACC”;该指令opcode(指令中固定不变的bit位)分为一段,第一段为bit8-bit31位,contentNumber为“2”;content[21]存储opcode信息,content[21]为“8、31、0x562300”,三个数字表示一个段,(8、31、0x562300)表示bit8-bit31位,值位0x562300;
S42、构建指令操作码信息数组C2812InstructionDesp[123],将DSP C2812所有指令进行描述,并存储到指令操作码信息数组C2812InstructionDesp[123]中。
S5、DSP C2812读取指令
S51、根据程序计数器PC(Program Count)的值,从S2维护的DSP-C2812-Vmemory中读取链表结构体C2812MemoryPage;
S52、根据C2812MemoryPage中的MemoryPageBeginAddress、MemoryPageEndAddress的值,获取指令内容为MemoryPage[MemoryPageBeginAddress],记为PC-Instruction。
S6、DSP C2812指令译码
S61、根据S5读取的PC-Instruction,逐个计算PC-Instruction与C2812InstructionDesp[123]的对应bit位是否相同,若PC-Instruction与C2812InstructionDesp[123]中第k个指令描述对应的位置相同,则该指令记为Instruction_k。
S7、DSP C2812指令翻译
S71、对DSP C2812的123条指令构成的指令集进行功能翻译,并对每条指令进行操作模拟,保证每一条指令处理后,DSP硬件处理器和虚拟仿真处理器的内存、寄存器保持一致;
S72:翻译DSP C2812的123条指令,并将每个指令对应的函数指针存储到指令翻译译码数组C2812InstructionInterp[123]数组中,存储顺序与C2812InstructionDesp[123]的指令顺序保持一致;
S73、根据S6计算出的Instruction_k,可获得该指令对应的函数中指针。
S8、DSP C2812指令执行
S81、构建DSP C2812的仿真框架,根据指令数量,进行循环取指、译码、指令翻译,并根据函数指针,执行指令操作;
S82、连续仿真,直到完成所有指令执行,实现针对DSP C2812的处理器指令集仿真。
本发明提出的方案,能够实现DSP C2812处理器的指令集仿真,仿真精度高,仿真执行效率高;本发明采用数组、链表等实现寄存器、内存的仿真,能够完成仿真DSP C2812处理器。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (10)

1.一种DSP C2812处理器指令集虚拟化仿真方法,其特征在于,该方法包括如下步骤:
S1、DSP C2812目标文件解析
打开DSP C2812编译后的可执行文件*.out,获取Program Header对应的代码段;
S2、DSP C2812内存仿真及代码加载
采用链表结构对DSP C2812处理器内存进行仿真,记为DSP-C2812-Vmemory,并加载Program Header对应的代码段,模拟DSP C2812的内存读写操作;
S3、DSP C2812寄存器仿真
通过数组模拟寄存器,通过数组操作模拟寄存器读写操作,实现寄存器的模拟;
S4、DSP C2812指令描述
每条指令有一个唯一的表示,每条指令分为不同的段;将指令分段的方式进行描述,获取指令Instruction的操作码opcode信息;构建指令操作码信息数组C2812InstructionDesp[123],并将DSP C2812所有指令Instruction进行描述,并存储到指令操作码信息数组C2812InstructionDesp[123]中;
S5、DSP C2812读取指令
根据程序计数器PC(Program Count)的值,从DSP C2812仿真内存DSP-C2812-Vmemory中读取指令,获取当前PC对应的指令PC-Instruction;
S6、DSP C2812指令译码
根据DSP C2812指令描述,逐个计算指令PC-Instruction的操作码与C2812InstructionDesp[123]的对应bit位是否相同,若PC-Instruction与C2812InstructionDesp[123]中第k个指令描述对应的位置相同,则完成指令译码;
S7、DSP C2812指令翻译
对DSP C2812指令集进行功能翻译,并对每条指令的进行操作模拟,保证运行的内存、寄存器保持一致;并将每个指令对应的函数名称存储到指令翻译译码数组中,存储顺序与指令译码数组顺序保持一致;
S8、DSP C2812指令执行
根据指令数量,进行循环取指、译码、指令翻译,并根据函数指针,执行指令操作;连续仿真,直到完成所有指令执行,实现针对DSP C2812的处理器指令集仿真。
2.如权利要求1所述的DSP C2812处理器指令集虚拟化仿真方法,其特征在于,所述步骤S1具体包括:
S11、打开DSP C2812编译后的可执行文件*.out,读取文件信息;
S12、按照DSP C2812编译后的可执行文件的格式,读取文件信息中的File Header、Section Header、Program Header信息,获取Program Header对应的代码段。
3.如权利要求2所述的DSP C2812处理器指令集虚拟化仿真方法,其特征在于,所述步骤S2具体包括:
S21、采用链表结构对DSP C2812处理器内存进行仿真,其中链表结构体C2812MemoryPage大小为256个字,链表结构体C2812MemoryPage包括:起始虚拟地址MemoryPageBeginAddress、结束虚拟地址MemoryPageEndAddress、内存块MemoryPage、下一个内存节点指针NEXT和前一个内存节点指针PRE;
S22、将DSP C2812芯片仿真内存记为DSP-C2812-Vmemory;将S1获取的Program Header对应的代码段,写入到DSP C2812芯片仿真内存中,并根据代码段的大小,维护整个仿真内存结构。
4.如权利要求3所述的DSP C2812处理器指令集虚拟化仿真方法,其特征在于,如果代码段不大于256,创建一个C2812MemoryPage,并将代码段写到C2812MemoryPage中去;如果代码段大于256,创建多个C2812MemoryPage组成链表结构,并将代码段按顺序写到对应的C2812MemoryPage中去,并维护各个C2812MemoryPage的MemoryPageBeginAddress、MemoryPageEndAddress信息,保证链表结构信息的正确性。
5.如权利要求3或4所述的DSP C2812处理器指令集虚拟化仿真方法,其特征在于,所述步骤S3具体包括:
S31、DSP C2812芯片共计包含34个32bit寄存器,分为16个通用寄存器、18个状态寄存器ACC、AH、AL、DP、IFR、IER、DBGIER、P、PH、PL、PC、RPC、SP、ST0、ST1、XT、T和TL,通过数组C2812Register模拟寄存器;
S32、通过访问C2812Register,对相应的数组中的元素进行操作模拟DSP C2812的寄存器操作,实现对DSP C2812的寄存器仿真。
6.如权利要求5所述的DSP C2812处理器指令集虚拟化仿真方法,其特征在于,所述步骤S4具体包括:
S41、DSP C2812共计报告123条指令,每条指令有一个唯一的表示,每条指令分为不同的段;采用将指令分段的方式进行描述,获取指令Instruction的操作码opcode信息,并设计指令操作码信息数组C2812InstructionDesp的结构包括:name、contentNumber和content;其中,name是指令名称,contentNumber指令分段数量,content存储的是opcode指令译码信息;
S42、构建指令操作码信息数组C2812InstructionDesp[123],将DSP C2812所有指令进行描述,并存储到指令操作码信息数组C2812InstructionDesp[123]中。
7.如权利要求6所述的DSP C2812处理器指令集虚拟化仿真方法,其特征在于,所述步骤S5具体包括:
S51、根据程序计数器PC(Program Count)的值,从S2维护的DSP-C2812-Vmemory中读取链表结构体C2812MemoryPage;
S52、根据C2812MemoryPage中的MemoryPageBeginAddress、MemoryPageEndAddress的值,获取指令内容为MemoryPage[MemoryPageBeginAddress],记为PC-Instruction。
8.如权利要求7所述的DSP C2812处理器指令集虚拟化仿真方法,其特征在于,所述步骤S6具体包括:根据S5读取的PC-Instruction,逐个计算PC-Instruction与C2812InstructionDesp[123]的对应bit位是否相同,若PC-Instruction与C2812InstructionDesp[123]中第k个指令描述对应的位置相同,则该指令记为Instruction_k。
9.如权利要求8所述的DSP C2812处理器指令集虚拟化仿真方法,其特征在于,所述步骤S7具体包括:
S71、对DSP C2812的123条指令构成的指令集进行功能翻译,并对每条指令的进行操作模拟,保证每一条指令处理后,DSP硬件处理器和虚拟仿真处理器的内存、寄存器保持一致;
S72:翻译DSP C2812的123条指令,并将每个指令对应的函数指针存储到指令翻译译码数组C2812InstructionInterp[123]数组中,存储顺序与C2812InstructionDesp[123]的指令顺序保持一致;
S73、根据S6计算出的Instruction_k,获得该指令对应的函数中指针。
10.如权利要求9所述的DSP C2812处理器指令集虚拟化仿真方法,其特征在于,所述步骤S8具体包括:
S81、构建DSP C2812的仿真框架,根据指令数量,进行循环取指、译码、指令翻译,并根据函数指针,执行指令操作;
S82、连续仿真,直到完成所有指令执行,实现针对DSP C2812的处理器指令集仿真。
CN202211114551.1A 2022-09-14 2022-09-14 一种dsp c2812处理器指令集虚拟化仿真方法 Active CN115480872B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211114551.1A CN115480872B (zh) 2022-09-14 2022-09-14 一种dsp c2812处理器指令集虚拟化仿真方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211114551.1A CN115480872B (zh) 2022-09-14 2022-09-14 一种dsp c2812处理器指令集虚拟化仿真方法

Publications (2)

Publication Number Publication Date
CN115480872A true CN115480872A (zh) 2022-12-16
CN115480872B CN115480872B (zh) 2023-04-28

Family

ID=84423424

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211114551.1A Active CN115480872B (zh) 2022-09-14 2022-09-14 一种dsp c2812处理器指令集虚拟化仿真方法

Country Status (1)

Country Link
CN (1) CN115480872B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1382280A (zh) * 1999-02-05 2002-11-27 坦斯利卡公司 用于设计可配置的处理器的自动处理器产生系统及其方法
CN104049948A (zh) * 2013-03-16 2014-09-17 英特尔公司 指令仿真处理器、方法和系统
CN106406819A (zh) * 2016-09-30 2017-02-15 广州华多网络科技有限公司 一种cpu的指令集兼容方法及其终端

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1382280A (zh) * 1999-02-05 2002-11-27 坦斯利卡公司 用于设计可配置的处理器的自动处理器产生系统及其方法
CN104049948A (zh) * 2013-03-16 2014-09-17 英特尔公司 指令仿真处理器、方法和系统
CN106406819A (zh) * 2016-09-30 2017-02-15 广州华多网络科技有限公司 一种cpu的指令集兼容方法及其终端

Also Published As

Publication number Publication date
CN115480872B (zh) 2023-04-28

Similar Documents

Publication Publication Date Title
US20080172657A1 (en) Binary translation using peephole translation rules
US9158566B2 (en) Page mapped spatially aware emulation of computer instruction set
US10459707B2 (en) Instruction-set simulator and its simulator generation method
US8997066B2 (en) Emulating pointers
WO2014074759A1 (en) Optimization concerning address validation in a binary translation system
US20230315416A1 (en) Code translation method and apparatus, and device
CN115480871B (zh) 一种通用的tms320c3x处理器指令集虚拟化仿真方法
CN115421861B (zh) 一种通用的TMS320C55x处理器指令集虚拟化仿真方法
US6519768B1 (en) Instruction translation method
US7103754B2 (en) Computer instructions for having extended signed displacement fields for finding instruction operands
US10585647B2 (en) Program optimization by converting code portions to directly reference internal data representations
CN115480872B (zh) 一种dsp c2812处理器指令集虚拟化仿真方法
CN115421865B (zh) 一种dsp c6713处理器指令集虚拟化仿真方法
CN115421863B (zh) 一种通用的mips64处理器指令集虚拟化仿真方法
CN115421860B (zh) 一种通用的sparc处理器指令集虚拟化仿真方法
CN115421864B (zh) 一种通用的PowerPC架构处理器指令集虚拟化仿真方法
US11635947B2 (en) Instruction translation support method and information processing apparatus
CN110007962A (zh) 一种基于代码自动生成的指令集模拟方法
CN114816436A (zh) 一种基于反汇编的源码解析装置
CN115421862B (zh) 一种51单片机处理器指令集虚拟化仿真方法
US20040098708A1 (en) Simulator for software development and recording medium having simulation program recorded therein
CN117008972B (zh) 一种指令分析方法、装置、计算设备及存储介质
CN117270967A (zh) 基于模型驱动的指令集架构模拟器自动生成方法及装置
JP3324542B2 (ja) 仮想マシン
CN116775127A (zh) 一种基于RetroWrite框架的静态符号执行插桩方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant