CN115421861B - 一种通用的TMS320C55x处理器指令集虚拟化仿真方法 - Google Patents

一种通用的TMS320C55x处理器指令集虚拟化仿真方法 Download PDF

Info

Publication number
CN115421861B
CN115421861B CN202211114539.0A CN202211114539A CN115421861B CN 115421861 B CN115421861 B CN 115421861B CN 202211114539 A CN202211114539 A CN 202211114539A CN 115421861 B CN115421861 B CN 115421861B
Authority
CN
China
Prior art keywords
instruction
tms320c55x
architecture
simulation
processor
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
CN202211114539.0A
Other languages
English (en)
Other versions
CN115421861A (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 CN202211114539.0A priority Critical patent/CN115421861B/zh
Publication of CN115421861A publication Critical patent/CN115421861A/zh
Application granted granted Critical
Publication of CN115421861B publication Critical patent/CN115421861B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • 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

本发明涉及一种通用的TMS320C55x处理器指令集虚拟化仿真方法,属于虚拟仿真领域。本发明针对TMS320C54X系列、TMS320C5509a、TMS320C5515、TMS320VC5535等处理器,解决TMS320C54X系列、TMS320C5509a、TMS320C5515、TMS320VC5535等系列处理器的虚拟化仿真问题。TMS320C55X指令架构共计包含154条指令集,通过对154条指令集的仿真,提供TMS320C55X处理器嵌入式处理器软件的运行环境,为TMS320C55X处理器嵌入式处理器软件的开发提供支撑。本发明提出的方案,能够实现TMS320C55X指令架构处理器的指令集仿真,仿真精度高;本发明采用数组、链表等实现寄存器、内存的仿真,能够完成仿真TMS320C55X指令架构处理器。

Description

一种通用的TMS320C55x处理器指令集虚拟化仿真方法
技术领域
本发明属于虚拟仿真领域,具体涉及一种通用的TMS320C55x处理器指令集虚拟化仿真方法。
背景技术
指令集仿真是处理器虚拟化技术最重要的支撑技术,指令集仿真允许特定指令集上的软件运行在另一类异构的指令集上。在指令集层次上实现虚拟化,实际上就是将某个硬件平台上的二进制代码转换为另一个硬件平台上的二进制代码,从而实现不同指令集间的兼容,这一技术也被称为二进制翻译。虚拟化技术实现有2种主要方式:解释执行、动态二进制翻译。
解释器对源二进制代码逐条进行分析,根据译码结果即指令类型,分解相应的解释例程执行。解释例程在一个由软件维护的源体系结构(包括各种结构寄存器、内存状态等)上用等价的一条或多条目标指令来模拟源指令的执行,获得和源指令同样的执行效果。解释器工作过程主要包括“取指令—>分析指令—>完成指令所需的操作—>修改处理器状态”等步骤,如此循环。
基于解释执行的仿真器在主机中维护一个精确的处理器数据结构,具有很高的仿真精度,可以实现精确的寄存器、存储器、流水线,除了模拟源程序的功能外,可以得到精确的性能指标,如每条指令在流水线中的时钟周期,堆栈模拟等。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是如何提供一种通用的TMS320C55x处理器指令集虚拟化仿真方法,以解决TMS320C54X系列、TMS320C5509a、TMS320C5515、TMS320VC5535等系列处理器的虚拟化仿真问题。
(二)技术方案
为了解决上述技术问题,本发明提出一种通用的TMS320C55x处理器指令集虚拟化仿真方法,该方法包括如下步骤:
S1、TMS320C55X指令架构目标文件解析
打开TMS320C55X指令架构编译后的可执行文件*.exe,获取Program Header对应的代码段;
S2、TMS320C55X指令架构内存仿真及代码加载
采用链表结构对TMS320C55X指令架构处理器内存进行仿真,记为TMS320C55X-VMemory,并加载Program Header对应的代码段,模拟TMS320C55X指令架构的内存读写操作;
S3、TMS320C55X指令架构寄存器仿真
对TMS320C55X指令架构芯片65个主要寄存器进行仿真,分为4个浮点精度寄存器、8个辅助寄存器、8个外部扩展寄存器和45个特殊寄存器,通过数组模拟寄存器,通过数组操作模拟寄存器读写操作,实现寄存器的模拟;
S4、TMS320C55X指令架构指令描述
每条指令有一个唯一的表示,每条指令分为不同的段;采用将指令分段的方式进行描述,获取指令Instruction的操作码opcode信息,构建指令操作码信息数组TMS320C55X-InstructionDesp[154],对TMS320C55X架构指令集架构的154条指令进行描述,并存储到指令操作码信息数组TMS320C55X-InstructionDesp[154]中;
S5、TMS320C55X指令架构读取指令
根据程序计数器PC的值,从仿真内存TMS320C55X-VMemory中读取指令,获取当前PC对应的指令PC-Instruction;
S6、TMS320C55X指令架构指令译码
TMS320C55X指令架构共包含154条指令集,根据TMS320C55X指令架构指令描述,逐个计算PC-Instruction与TMS320C55X-InstructionDesp[154]的对应bit位是否相同,若PC-Instruction与TMS320C55X-InstructionDesp[154]中第k个指令描述对应的位置相同,则完成指令译码,记为Instruction_k;
S7、TMS320C55X指令架构指令翻译
对TMS320C55X指令架构指令集进行功能翻译,设计在虚拟仿真处理器运行的对每条指令进行操作模拟的函数,保证每一条指令和函数处理后,硬件处理器和虚拟仿真处理器的内存、寄存器保持一致;并将函数指针存储到TMS320C55X-InstructionInterp[154]数组中,存储顺序与TMS320C55X-InstructionDesp[154]的指令顺序保持一致;
S8、TMS320C55X指令架构Linux系统调用实现
解析系统调用,并根据系统调用的类型,对系统调用进行相应的处理,并对相应的寄存器进行置位操作;
S9、TMS320C55X指令架构指令执行
根据指令数量,进行循环取指、译码、指令翻译,并根据函数指针,执行指令操作;连续仿真,直到完成所有指令执行,实现针对TMS320C55X指令架构的处理器指令集仿真。
进一步地,所述步骤S1具体包括:
S11、打开TMS320C55X指令架构编译后的可执行文件*.exe,读取文件信息;
S12、按照TMS320C55X指令架构编译后的可执行文件的格式,读取文件信息中FileHeader、Section Header、Program Header信息,获取Program Header对应的代码段。
进一步地,所述步骤S2具体包括:
S21、采用链表结构对TMS320C55X指令架构处理器内存进行仿真,其中链表结构体TMS320C55X大小为256个字;
S22、将TMS320C55X指令架构内存记为TMS320C55X-VMemory;将S1获取的ProgramHeader对应的代码段,写入到TMS320C55X指令架构芯片仿真内存TMS320C55X-VMemory中,并根据代码段的大小,维护整个仿真内存结构。
进一步地,链表结构体包括:起始虚拟地址MemoryPageBeginAddress、结束虚拟地址MemoryPageEndAddress、内存块MemoryPage、下一个内存节点指针NEXT和前一个内存节点指针PRE。
进一步地,所述步骤S22中,如果代码段不大于256,创建一个MemoryPage,并将代码段写到对用的MemoryPage数组中去;如果代码段大于256,创建多个MemoryPage,并将代码段按顺序写到对应的MemoryPage数组中去,并维护各个节点的MemoryPageBeginAddress、MemoryPageEndAddress信息,保证链表结构信息的正确性。
进一步地,所述步骤S3具体包括:
S31、对TMS320C55X指令架构芯片65个寄存器进行仿真,分为4个浮点精度寄存器、8个辅助寄存器、8个外部扩展寄存器和45个特殊寄存器,通过数组TMS320C55X-Register模拟寄存器,实现寄存器的模拟;
S32、通过访问TMS320C55X-Register,对相应的数组中的元素进行操作模拟TMS320C55X指令架构的寄存器操作,实现对TMS320C55X指令架构的寄存器仿真。
进一步地,所述步骤S4具体包括:
S41、TMS320C55X指令架构共计报告154条指令,每条指令有一个唯一的表示,每条指令分为不同的段;采用将指令分段的方式进行描述,获取指令Instruction的操作码opcode信息,并设计指令操作码信息数组TMS320C55X-InstructionDesp的结构;
S42、构建指令操作码信息数组TMS320C55X-InstructionDesp[154],对TMS320C55X架构指令集架构的154条指令进行描述,并存储到指令操作码信息数组TMS320C55X-InstructionDesp[154]中。
进一步地,指令操作码信息数组TMS320C55X-InstructionDesp的结构包括:name、contentNumber和content,其中,name是指令名称,contentNumber指令分段数量,content用于存储opcode指令译码信息。
进一步地,所述步骤S5具体包括:
S51、根据程序计数器PC的值,从S2维护的TMS320C55X-VMemory中读取指令;
S52、根据TMS320C55X-MemoryPage中的MemoryPageBeginAddress、MemoryPageEndAddress的值,计算出PC属于TMS320C55X-MemoryPage,记为TMS320C55X-MemoryPage-i,地址偏移为PC-MemoryPageBeginAddress,指令内容为TMS320C55X-MemoryPage-i对应的MemoryPage[PC-MemoryPageBeginAddress],记为PC-Instruction。
进一步地,所述步骤S7具体包括:
S71、对TMS320C55X指令架构指令集的指令进行功能翻译,并设计在虚拟仿真处理器运行的对每条指令进行操作模拟的函数,保证每一条指令和函数处理后,硬件处理器和虚拟仿真处理器的内存、寄存器保持一致;
S72:翻译TMS320C55X指令架构的154条指令,并将函数指针存储到指令翻译译码数组TMS320C55X-InstructionInterp[154]数组中,存储顺序与TMS320C55X-InstructionDesp[154]的指令顺序保持一致;
S73、根据S6计算出的Instruction_k,获得该指令对应的函数中指针。
(三)有益效果
本发明提出一种通用的TMS320C55x处理器指令集虚拟化仿真方法,为嵌入式处理软件提供虚拟化的运行环境,本发明提出一种基于解释执行的TMS320C55X指令架构处理器虚拟化仿真技术方案,针对TMS320C54X系列、TMS320C5509a、TMS320C5515、TMS320VC5535等处理器,解决TMS320C54X系列、TMS320C5509a、TMS320C5515、TMS320VC5535等系列处理器的虚拟化仿真问题。TMS320C55X指令架构共计包含154条指令集,通过对154条指令集的仿真,提供TMS320C55X处理器嵌入式处理器软件的运行环境,为TMS320C55X处理器嵌入式处理器软件的开发提供支撑。
本发明提出的方案,能够实现TMS320C55X指令架构处理器的指令集仿真,仿真精度高;本发明采用数组、链表等实现寄存器、内存的仿真,能够完成仿真TMS320C55X指令架构处理器。
附图说明
图1为解释执行技术原理;
图2为指令示意图。
具体实施方式
为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
为嵌入式处理软件提供虚拟化的运行环境,本发明提出一种基于解释执行的TMS320C55X指令架构处理器虚拟化仿真技术方案,主要包含TMS320C54X系列、TMS320C5509a、TMS320C5515、TMS320VC5535等处理器,解决TMS320C54X系列、TMS320C5509a、TMS320C5515、TMS320VC5535等系列处理器的虚拟化仿真问题。TMS320C55X指令架构共计包含154条指令集,通过对154条指令集的仿真,提供TMS320C55X处理器嵌入式处理器软件的运行环境,为TMS320C55X处理器嵌入式处理器软件的开发提供支撑。
S1、TMS320C55X指令架构目标文件解析
打开TMS320C55X指令架构编译后的可执行文件*.exe,获取Program Header对应的代码段;
其中,TMS320C55X处理器文件格式为ELF,根据ELF文件格式文件信息,读取文件信息中的File Header、Section Header、Program Header等信息,获取Program Header对应的代码段;
S2、TMS320C55X指令架构内存仿真及代码加载
为提高内存仿真的可扩展性,采用链表结构对TMS320C55X指令架构处理器内存进行仿真,记为TMS320C55X-VMemory,并加载Program Header对应的代码段,模拟TMS320C55X指令架构的内存读写操作。
S3、TMS320C55X指令架构寄存器仿真
对TMS320C55X指令架构芯片65个主要寄存器进行仿真,分为4个浮点精度寄存器、8个辅助寄存器、8个外部扩展寄存器和45个特殊寄存器,通过数组模拟寄存器,通过数组操作模拟寄存器读写操作,实现寄存器的模拟。
S4、TMS320C55X指令架构指令描述
每条指令有一个唯一的表示,每条指令分为不同的段;为准确描述指令结构,本发明采用将指令分段的方式进行描述,获取指令Instruction的操作码opcode信息,构建指令操作码信息数组TMS320C55X-InstructionDesp[154],对TMS320C55X架构指令集架构的154条指令进行描述,并存储到指令操作码信息数组TMS320C55X-InstructionDesp[154]中。
S5、TMS320C55X指令架构读取指令
根据程序计数器PC(Program Count)的值,从仿真内存TMS320C55X-VMemory中读取指令,获取当前PC对应的指令PC-Instruction。
S6、TMS320C55X指令架构指令译码
TMS320C55X指令架构共包含154条指令集,根据TMS320C55X指令架构指令描述,逐个计算PC-Instruction与TMS320C55X-InstructionDesp[154]的对应bit位是否相同,若PC-Instruction与TMS320C55X-InstructionDesp[154]中第k个指令描述对应的位置相同,则完成指令译码,记为Instruction_k。
S7、TMS320C55X指令架构指令翻译
对TMS320C55X指令架构指令集进行功能翻译,设计在虚拟仿真处理器运行的对每条指令进行操作模拟的函数,保证每一条指令和函数处理后,硬件处理器和虚拟仿真处理器的内存、寄存器保持一致;并将函数指针存储到TMS320C55X-InstructionInterp[154]数组中,存储顺序与TMS320C55X-InstructionDesp[154]的指令顺序保持一致;
S8、TMS320C55X指令架构Linux系统调用实现
解析系统调用,并根据系统调用的类型,对系统调用进行相应的处理,并对相应的寄存器进行置位操作;
S9、TMS320C55X指令架构指令执行
根据指令数量,进行循环取指、译码、指令翻译,并根据函数指针,执行指令操作;连续仿真,直到完成所有指令执行,实现针对TMS320C55X指令架构的处理器指令集仿真。
实施例1:
本发明提出一种基于解释执行的TMS320C55X指令架构处理器虚拟化仿真技术方案,通过指令集仿真
S1、TMS320C55X指令架构目标文件解析
S11、打开TMS320C55X指令架构编译后的可执行文件*.exe,读取文件信息;
S12、按照TMS320C55X指令架构编译后的可执行文件的格式,读取文件信息中FileHeader、Section Header、Program Header等信息,获取Program Header对应的代码段;
S2、TMS320C55X指令架构内存仿真及代码加载
S21、为提高内存仿真的可扩展性,采用链表结构对TMS320C55X指令架构处理器内存进行仿真,其中链表结构体TMS320C55X大小为256个字(word),链表结构体包括:起始虚拟地址MemoryPageBeginAddress、结束虚拟地址MemoryPageEndAddress、内存块MemoryPage、下一个内存节点指针NEXT和前一个内存节点指针PRE;
链表结构体如下:
TMS320C55X-MemoryPage{
UnsignedintMemoryPageBeginAddress;//虚拟地址
UnsignedintMemoryPageEndAddress;//虚拟地址
MemoryPage[256];//内存块大小
TMS320C55X-MemoryPage NEXT;//指向下一个内存节点
TMS320C55X-MemoryPage PRE;//指向前一个内存节点
}
S22、将TMS320C55X指令架构内存记为TMS320C55X-VMemory;将S1获取的ProgramHeader对应的代码段,写入到TMS320C55X指令架构芯片仿真内存TMS320C55X-VMemory中,并根据代码段的大小,维护整个仿真内存结构。
如果代码段不大于256(一个MemoryPage的大小),创建一个MemoryPage,并将代码段写到对用的MemoryPage数组中去;
如果代码段大于256(一个MemoryPage的大小),创建多个MemoryPage,并将代码段按顺序写到对应的MemoryPage数组中去,并维护各个节点的MemoryPageBeginAddress、MemoryPageEndAddress等信息,保证链表结构信息的正确性;
S3、TMS320C55X指令架构寄存器仿真
S31、对TMS320C55X指令架构芯片65个主要寄存器进行仿真,分为4个浮点精度寄存器、8个辅助寄存器、8个外部扩展寄存器和45个特殊寄存器,通过数组TMS320C55X-Register模拟寄存器,通过数组操作模拟寄存器读写操作,实现寄存器的模拟。主要模拟结果如下:
S32、通过访问TMS320C55X-Register,对相应的数组中的元素进行操作模拟TMS320C55X指令架构的寄存器操作,实现对TMS320C55X指令架构的寄存器仿真。
S4、TMS320C55X指令架构指令描述
S41、TMS320C55X指令架构共计报告154条指令,每条指令有一个唯一的表示,每条指令分为不同的段;为准确描述指令结构,本发明采用将指令分段的方式进行描述,获取指令Instruction的操作码opcode信息,并设计指令操作码信息数组TMS320C55X-InstructionDesp的结构包括:name、contentNumber和content。
描述结构如下:
其中,name是指令名称,contentNumber指令分段数量,content用于存储opcode指令译码信息。
以ABDST指令为例,对指令结构进行描述,其中ABDST指令信息如图2所示(来自指令集参考手册)
Name为“ABDST”;该指令opcode(指令中固定不变的bit位)分为两段,第一段为bit4-bit7位,第二段为bit23-bit31位,contentNumber为“2”;content[21]存储opcode信息,content[21]为“4、7、0xf、23、31、0x86”。三个数字表示一个段,(4、7、0xf),bit4-bit7位,值为0xf;(23、31、0x86)表示bit23-bit31位,值为0x86。
S42、构建指令操作码信息数组TMS320C55X-InstructionDesp[154],对TMS320C55X架构指令集架构的154条指令进行描述,并存储到指令操作码信息数组TMS320C55X-InstructionDesp[154]中。
S5、TMS320C55X指令架构读取指令
S51、根据程序计数器PC(Program Count)的值,从S2维护的TMS320C55X-VMemory中读取指令;
S52、根据TMS320C55X-MemoryPage中的MemoryPageBeginAddress、MemoryPageEndAddress的值,计算出PC属于TMS320C55X-MemoryPage,记为TMS320C55X-MemoryPage-i,地址偏移为PC-MemoryPageBeginAddress,指令内容为TMS320C55X-MemoryPage-i对应的MemoryPage[PC-MemoryPageBeginAddress],记为PC-Instruction。
S6、TMS320C55X指令架构指令译码
S61、根据S52读取的PC-Instruction,逐个计算PC-Instruction与TMS320C55X-InstructionDesp[154]的对应bit位是否相同,若PC-Instruction与TMS320C55X-InstructionDesp[154]中第k个指令描述对应的位置相同,则该指令记为Instruction_k。
S7、TMS320C55X指令架构指令翻译
S71、对TMS320C55X指令架构指令集的指令进行功能翻译,并设计在虚拟仿真处理器运行的对每条指令进行操作模拟的函数,保证每一条指令和函数处理后,硬件处理器和虚拟仿真处理器的内存、寄存器保持一致;
S72:翻译TMS320C55X指令架构的154条指令,并将函数指针存储到指令翻译译码数组TMS320C55X-InstructionInterp[154]数组中,存储顺序与TMS320C55X-InstructionDesp[154]的指令顺序保持一致;
S73、根据S6计算出的Instruction_k,可获得该指令对应的函数中指针;
S8、PowerPC指令架构Linux系统调用实现
S81、定义Linux系统318种系统调用,并对系统调用的名称按照Linux系统调用的顺序进行标号,定义如下:
#define SYSCALL_restart_system 0
……
#define SYSCALL_dup2 63
……
#define SYSCALL_inotify_init1 318
S82、解析系统调用,并根据系统调用的类型,对系统调用进行相应的处理,并对相应的寄存器进行置位操作。
S9、TMS320C55X指令架构指令执行
S91、构建TMS320C55X指令架构的仿真框架,根据指令数量,进行循环取指、译码、指令翻译,并根据函数指针,执行指令操作;
S92、连续仿真,直到完成所有指令执行,并处理系统调用,实现针对TMS320C55X指令架构的处理器指令集仿真。
本发明提出的方案,能够实现TMS320C55X指令架构处理器的指令集仿真,仿真精度高;本发明采用数组、链表等实现寄存器、内存的仿真,能够完成仿真TMS320C55X指令架构处理器。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (10)

1.一种通用的TMS320C55x处理器指令集虚拟化仿真方法,其特征在于,该方法包括如下步骤:
S1、TMS320C55X指令架构目标文件解析
打开TMS320C55X指令架构编译后的可执行文件*.exe,获取Program Header对应的代码段;
S2、TMS320C55X指令架构内存仿真及代码加载
采用链表结构对TMS320C55X指令架构处理器内存进行仿真,记为TMS320C55X-VMemory,并加载Program Header对应的代码段,模拟TMS320C55X指令架构的内存读写操作;
S3、TMS320C55X指令架构寄存器仿真
对TMS320C55X指令架构芯片65个主要寄存器进行仿真,分为4个浮点精度寄存器、8个辅助寄存器、8个外部扩展寄存器和45个特殊寄存器,通过数组模拟寄存器,通过数组操作模拟寄存器读写操作,实现寄存器的模拟;
S4、TMS320C55X指令架构指令描述
每条指令有一个唯一的表示,每条指令分为不同的段;采用将指令分段的方式进行描述,获取指令Instruction的操作码opcode信息,构建指令操作码信息数组TMS320C55X-InstructionDesp[154],对TMS320C55X指令架构的154条指令进行描述,并存储到指令操作码信息数组TMS320C55X-InstructionDesp[154]中;
S5、TMS320C55X指令架构读取指令
根据程序计数器PC的值,从仿真内存TMS320C55X-VMemory中读取指令,获取当前PC对应的指令PC-Instruction;
S6、TMS320C55X指令架构指令译码
TMS320C55X指令架构共包含154条指令,根据TMS320C55X指令架构指令描述,逐个计算PC-Instruction与TMS320C55X-InstructionDesp[154]的对应bit位是否相同,若PC-Instruction与TMS320C55X-InstructionDesp[154]中第k个指令描述对应的位置相同,则完成指令译码,记为Instruction_k;
S7、TMS320C55X指令架构指令翻译
对TMS320C55X指令架构指令集进行功能翻译,设计在虚拟仿真处理器运行的对每条指令进行操作模拟的函数,保证每一条指令和函数处理后,硬件处理器和虚拟仿真处理器的内存、寄存器保持一致;并将函数指针存储到TMS320C55X-InstructionInterp[154]数组中,存储顺序与TMS320C55X-InstructionDesp[154]的指令顺序保持一致;
S8、TMS320C55X指令架构Linux系统调用实现
解析系统调用,并根据系统调用的类型,对系统调用进行相应的处理,并对相应的寄存器进行置位操作;
S9、TMS320C55X指令架构指令执行
根据指令数量,进行循环取指、译码、指令翻译,并根据函数指针,执行指令操作;连续仿真,直到完成所有指令执行,实现针对TMS320C55X指令架构的处理器指令集仿真。
2.如权利要求1所述的通用的TMS320C55x处理器指令集虚拟化仿真方法,其特征在于,所述步骤S1具体包括:
S11、打开TMS320C55X指令架构编译后的可执行文件*.exe,读取文件信息;
S12、按照TMS320C55X指令架构编译后的可执行文件的格式,读取文件信息中FileHeader、Section Header、Program Header信息,获取Program Header对应的代码段。
3.如权利要求2所述的通用的TMS320C55x处理器指令集虚拟化仿真方法,其特征在于,所述步骤S2具体包括:
S21、采用链表结构对TMS320C55X指令架构处理器内存进行仿真,其中链表结构体大小为256个字;
S22、将TMS320C55X指令架构的仿真内存记为TMS320C55X-VMemory;将S1获取的Program Header对应的代码段,写入到TMS320C55X指令架构的仿真内存TMS320C55X-VMemory中,并根据代码段的大小,维护整个仿真内存结构。
4.如权利要求3所述的通用的TMS320C55x处理器指令集虚拟化仿真方法,其特征在于,链表结构体包括:起始虚拟地址MemoryPageBeginAddress、结束虚拟地址MemoryPageEndAddress、内存块MemoryPage、下一个内存节点指针NEXT和前一个内存节点指针PRE。
5.如权利要求3所述的通用的TMS320C55x处理器指令集虚拟化仿真方法,其特征在于,所述步骤S22中,如果代码段不大于256个字,创建一个MemoryPage,并将代码段写到对应的MemoryPage数组中去;如果代码段大于256个字,创建多个MemoryPage,并将代码段按顺序写到对应的MemoryPage数组中去,并维护各个节点的MemoryPageBeginAddress、MemoryPageEndAddress信息,保证链表结构信息的正确性。
6.如权利要求3-5任一项所述的通用的TMS320C55x处理器指令集虚拟化仿真方法,其特征在于,所述步骤S3具体包括:
S31、对TMS320C55X指令架构芯片65个寄存器进行仿真,分为4个浮点精度寄存器、8个辅助寄存器、8个外部扩展寄存器和45个特殊寄存器,通过数组TMS320C55X-Register模拟寄存器,实现寄存器的模拟;
S32、通过访问TMS320C55X-Register,对相应的数组中的元素进行操作模拟TMS320C55X指令架构的寄存器操作,实现对TMS320C55X指令架构的寄存器仿真。
7.如权利要求6所述的通用的TMS320C55x处理器指令集虚拟化仿真方法,其特征在于,所述步骤S4具体包括:
S41、TMS320C55X指令架构共计包括154条指令,每条指令有一个唯一的表示,每条指令分为不同的段;采用将指令分段的方式进行描述,获取指令Instruction的操作码opcode信息,并设计指令操作码信息数组TMS320C55X-InstructionDesp的结构;
S42、构建指令操作码信息数组TMS320C55X-InstructionDesp[154],对TMS320C55X架构指令集架构的154条指令进行描述,并存储到指令操作码信息数组TMS320C55X-InstructionDesp[154]中。
8.如权利要求7所述的通用的TMS320C55x处理器指令集虚拟化仿真方法,其特征在于,指令操作码信息数组TMS320C55X-InstructionDesp的结构包括:name、contentNumber和content,其中,name是指令名称,contentNumber指令分段数量,content用于存储opcode指令译码信息。
9.如权利要求7所述的通用的TMS320C55x处理器指令集虚拟化仿真方法,其特征在于,所述步骤S5具体包括:
S51、根据程序计数器PC的值,从S2维护的TMS320C55X-VMemory中读取指令;
S52、根据TMS320C55X-MemoryPage中的MemoryPageBeginAddress、MemoryPageEndAddress的值,计算出PC属于TMS320C55X-MemoryPage,记为TMS320C55X-MemoryPage-i,地址偏移为PC-MemoryPageBeginAddress,指令内容为TMS320C55X-MemoryPage-i对应的MemoryPage[PC-MemoryPageBeginAddress],记为PC-Instruction。
10.如权利要求9所述的通用的TMS320C55x处理器指令集虚拟化仿真方法,其特征在于,所述步骤S7具体包括:
S71、对TMS320C55X指令架构指令集的指令进行功能翻译,并设计在虚拟仿真处理器运行的对每条指令进行操作模拟的函数,保证每一条指令和函数处理后,硬件处理器和虚拟仿真处理器的内存、寄存器保持一致;
S72:翻译TMS320C55X指令架构的154条指令,并将函数指针存储到指令翻译译码数组TMS320C55X-InstructionInterp[154]数组中,存储顺序与TMS320C55X-InstructionDesp[154]的指令顺序保持一致;
S73、根据S6计算出的Instruction_k,获得该指令对应的函数指针。
CN202211114539.0A 2022-09-14 2022-09-14 一种通用的TMS320C55x处理器指令集虚拟化仿真方法 Active CN115421861B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211114539.0A CN115421861B (zh) 2022-09-14 2022-09-14 一种通用的TMS320C55x处理器指令集虚拟化仿真方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211114539.0A CN115421861B (zh) 2022-09-14 2022-09-14 一种通用的TMS320C55x处理器指令集虚拟化仿真方法

Publications (2)

Publication Number Publication Date
CN115421861A CN115421861A (zh) 2022-12-02
CN115421861B true CN115421861B (zh) 2023-10-31

Family

ID=84201784

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211114539.0A Active CN115421861B (zh) 2022-09-14 2022-09-14 一种通用的TMS320C55x处理器指令集虚拟化仿真方法

Country Status (1)

Country Link
CN (1) CN115421861B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116662157B (zh) * 2023-04-26 2024-02-02 北京计算机技术及应用研究所 一种针对tms320 c28x指令集模拟器的虚拟化调试系统设计方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6212614B1 (en) * 1998-01-05 2001-04-03 Trw Inc. Legacy MIL-STD-1750A software emulator address translation using power PC memory management hardware
JP2009262172A (ja) * 2008-04-23 2009-11-12 Sodick Co Ltd 電子ビーム照射貫通孔内径表面改質装置
CN105701298A (zh) * 2016-01-15 2016-06-22 天津大学 基于PowerPC SoC架构的仿真平台设计方法
CN107145381A (zh) * 2017-04-05 2017-09-08 同济大学 面向实践教学的mips‑cpu测试工具
WO2018149495A1 (en) * 2017-02-16 2018-08-23 Huawei Technologies Co., Ltd. A method and system to fetch multicore instruction traces from a virtual platform emulator to a performance simulation model
CN113221318A (zh) * 2021-03-30 2021-08-06 北京计算机技术及应用研究所 一种基于dds的系统级仿真测试环境构建方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6212614B1 (en) * 1998-01-05 2001-04-03 Trw Inc. Legacy MIL-STD-1750A software emulator address translation using power PC memory management hardware
JP2009262172A (ja) * 2008-04-23 2009-11-12 Sodick Co Ltd 電子ビーム照射貫通孔内径表面改質装置
CN105701298A (zh) * 2016-01-15 2016-06-22 天津大学 基于PowerPC SoC架构的仿真平台设计方法
WO2018149495A1 (en) * 2017-02-16 2018-08-23 Huawei Technologies Co., Ltd. A method and system to fetch multicore instruction traces from a virtual platform emulator to a performance simulation model
CN107145381A (zh) * 2017-04-05 2017-09-08 同济大学 面向实践教学的mips‑cpu测试工具
CN113221318A (zh) * 2021-03-30 2021-08-06 北京计算机技术及应用研究所 一种基于dds的系统级仿真测试环境构建方法

Also Published As

Publication number Publication date
CN115421861A (zh) 2022-12-02

Similar Documents

Publication Publication Date Title
US7712092B2 (en) Binary translation using peephole translation rules
US6496922B1 (en) Method and apparatus for multiplatform stateless instruction set architecture (ISA) using ISA tags on-the-fly instruction translation
US10459707B2 (en) Instruction-set simulator and its simulator generation method
US11803387B2 (en) System for executing new instructions and method for executing new instructions
US9158566B2 (en) Page mapped spatially aware emulation of computer instruction set
US20060195680A1 (en) Computer instruction value field having an embedded sign
EP2659362A2 (en) Emulating pointers
CN115421861B (zh) 一种通用的TMS320C55x处理器指令集虚拟化仿真方法
US9183018B2 (en) Dynamic on/off just-in-time compilation in a dynamic translator using instruction code translation
CN115480871B (zh) 一种通用的tms320c3x处理器指令集虚拟化仿真方法
US6519768B1 (en) Instruction translation method
CN116775127A (zh) 一种基于RetroWrite框架的静态符号执行插桩方法
CN115421860B (zh) 一种通用的sparc处理器指令集虚拟化仿真方法
CN115421864B (zh) 一种通用的PowerPC架构处理器指令集虚拟化仿真方法
CN115480872B (zh) 一种dsp c2812处理器指令集虚拟化仿真方法
CN115421863B (zh) 一种通用的mips64处理器指令集虚拟化仿真方法
CN115421865B (zh) 一种dsp c6713处理器指令集虚拟化仿真方法
CN110709823A (zh) 使用jit编译器并绕过所选择目标代码块的转译的目标系统的仿真
CN117270967B (zh) 基于模型驱动的指令集架构模拟器自动生成方法及装置
JP3324542B2 (ja) 仮想マシン
Poplawski The unlimited resource machine (URM)
CN115421862B (zh) 一种51单片机处理器指令集虚拟化仿真方法
Wright Using EventB to create a virtual machine instruction set architecture
CN117008972B (zh) 一种指令分析方法、装置、计算设备及存储介质
CN117194271A (zh) 代码植入及指令构建方法、指令分析方法、设备及介质

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