CN114781322B - Cpu芯片仿真加速中针对无mmu环境的内存状态恢复方法 - Google Patents

Cpu芯片仿真加速中针对无mmu环境的内存状态恢复方法 Download PDF

Info

Publication number
CN114781322B
CN114781322B CN202210435456.5A CN202210435456A CN114781322B CN 114781322 B CN114781322 B CN 114781322B CN 202210435456 A CN202210435456 A CN 202210435456A CN 114781322 B CN114781322 B CN 114781322B
Authority
CN
China
Prior art keywords
address
value
memory
virtual
virtual memory
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
CN202210435456.5A
Other languages
English (en)
Other versions
CN114781322A (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.)
Suzhou Ruixin Integrated Circuit Technology Co ltd
Original Assignee
Suzhou Ruixin Integrated Circuit Technology Co ltd
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 Suzhou Ruixin Integrated Circuit Technology Co ltd filed Critical Suzhou Ruixin Integrated Circuit Technology Co ltd
Priority to CN202210435456.5A priority Critical patent/CN114781322B/zh
Publication of CN114781322A publication Critical patent/CN114781322A/zh
Priority to PCT/CN2022/111684 priority patent/WO2023206859A1/zh
Application granted granted Critical
Publication of CN114781322B publication Critical patent/CN114781322B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • 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)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明涉及一种CPU芯片仿真加速中针对无MMU环境的内存状态恢复方法,该包括如下步骤:步骤S1:虚拟内存域重定位,在可用的物理内存空间中,为每个虚拟内存域进行重定位,将其虚拟地址表示的基址转换为物理地址,长度保持不变;步骤S2:恢复访存数据,每一条读访存记录,存放位置的恢复规则为,所属虚拟内存域重定位之后的基址+偏移量;步骤S3:恢复栈状态,对每一个栈帧,存放位置的恢复规则为,所属虚拟内存域重定位之后的基址+偏移量;步骤S4:恢复通用寄存器取值。本发明在无MMU的情况下,处理器使用的内存地址,就是内存的物理地址,与有MMU的情况相比更为简单。

Description

CPU芯片仿真加速中针对无MMU环境的内存状态恢复方法
技术领域
本发明涉及内存状态恢复方法,特别涉及一种CPU芯片仿真加速中针对无MMU环境的内存状态恢复方法及装置。
背景技术
如图1所示,在处理器设计领域,需要基于仿真平台分析评估特定应用在所设计处理器上的运行效果。
对应用程序切片,就是根据应用程序的运行情况,提取所占比重较高的指令片段,连同所需的运行状态,主要包括寄存器取值和内存状态。所得应用切片的用途是,置于仿真平台中特定处理器设计实例上运行,得到对该设计的评估结果,从而指导处理器设计。与运行完整的应用相比,运行应用切片可以在关注应用负载特性的前提下大幅缩短仿真时间,加快处理器设计速度。
如图2所示,对MMU进行简单介绍,内存管理单元MMU是介于处理器和片外存储器之间的中间层。提供对虚拟地址(VA)向物理地址(PA)的转换。一般封装于CPU芯片内部。因此虚拟地址一般只存在于CPU内部。
在不考虑TLB和多级页表的情况下,可以简单地如图3所示。
发明内容
发明所要解决的问题
本发明的主要目的是提供一种CPU芯片仿真加速中针对无MMU环境的内存状态恢复方法,解决无MMU环境的内存状态恢复问题。
用于解决问题的方案
为了达到上述目的,本发明提供一种CPU芯片仿真加速中针对无MMU环境的内存状态恢复方法,包括如下步骤:
步骤S1:虚拟内存域重定位,在可用的物理内存空间中,为每个虚拟内存域进行重定位,将其虚拟地址表示的基址转换为物理地址,长度保持不变;
步骤S2:恢复访存数据,每一条读访存记录,存放位置的恢复规则为,所属虚拟内存域重定位之后的基址+偏移量;
步骤S3:恢复栈状态,对每一个栈帧,存放位置的恢复规则为,所属虚拟内存域重定位之后的基址+偏移量;
步骤S4:恢复通用寄存器取值。
优选地,所述步骤S1包括:
步骤S11:确定目标系统环境物理内存的起始地址;
步骤S12:从起始地址开始,作为stack栈类型的区域;
步骤S13:随后,将前一区域的结束作为下一区域的开始,按顺序分配heap堆类型和normal一般类型。
优选地,所述步骤S2包括:
S21:若其取值属于某个原始虚拟内存域的范围,则判定为内存地址,取值为该虚拟内存域重定位之后的基址+偏移量;
S22:若其取值等于某个跳转地址,则判定为内存地址,取值为对应标号的地址;
S23:否则,判定为普通数据,取值不变。
优选地,所述步骤S3包括:
步骤S31:若处于RA位置,则判定为跳转地址,取值为对应标号的地址;
步骤S32:若处于FP位置,则判定为VMA0地址,取值为VMA0重定位之后的基址+偏移量;
步骤S33:若处于其他位置,且其取值属于某个原始虚拟内存域的范围,则判定为内存地址,取值为该虚拟内存域重定位之后的基址+偏移量;
步骤S34:若处于其他位置,且其取值等于某个跳转地址,则判定为内存地址,取值为对应标号的地址;
步骤S35:否则,判定为普通数据,取值不变。
优选地,所述步骤S4包括:
S41:若其取值属于某个原始VMA的范围,则判定为内存地址,取值为该VMA重定位之后的基址+偏移量;
S42:若其取值等于某个跳转地址,则判定为内存地址,取值为对应标号的地址;
S43:否则,判定为普通数据,取值不变。
为了达到上述目的,本发明还提供一种CPU芯片仿真加速中针对无MMU环境的内存状态恢复装置,包括:
虚拟内存域重定位单元,其用于在可用的物理内存空间中,为每个虚拟内存域进行重定位,将其虚拟地址表示的基址转换为物理地址,长度保持不变;
恢复访存数据单元,其用于恢复访存数据,对每一个栈帧,存放位置的恢复规则为,所属VMA重定位之后的基址+偏移量;
恢复栈状态单元,其用于恢复栈状态对每一个栈帧,存放位置的恢复规则为,所属VMA重定位之后的基址+偏移量;以及
恢复通用寄存器取值单元,其用于恢复通用寄存器取值。
为了达到上述目的,本发明还提供一种电子设备,所述电子设备存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
为了达到上述目的,本发明还提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述方法的步骤。
发明的效果
与现有技术相比,本发明具有如下有益效果:
应用切片得以运行涉及的关键技术之一就是内存状态的恢复。根据目标处理器是否具备MMU,采取不同的方法。本发明在无MMU的情况下,处理器使用的内存地址,就是内存的物理地址,与有MMU的情况相比更为简单。本发明的特征也就在于恢复后使用物理地址。
附图说明
图1是现有技术中的应用切片在处理器设计中的作用的示意图。
图2是现有技术中的内存管理单元MMU的功能的示意图。
图3是现有技术中的虚拟地址到物理地址的转换原理图。
图4是本发明的一种CPU芯片仿真加速中针对无MMU环境的内存状态恢复方法流程图。
图5是本发明为内存区域分配(重定位)方法示意图。
图6是本发明一种CPU芯片仿真加速中针对无MMU环境的内存状态恢复装置的框图。
图7是本申请实施例提供的一种电子设备的结构示意图。
图8是本申请实施例提供的一种用于内存状态恢复方法的程序产品的结构示意图。
具体实施方式
下面将结合本发明实施例中的图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。并且,在此处需要进一步强调的是,以下的具体实施例提供的优选的技术方案,各方案(实施例)之间是可以相互配合或结合使用的。
首先,对本发明的中的应用切片进行说明,应用切片由指令片段和检查点信息组成。
表1-5给出了某个应用切片的完整信息,也就是进行内存恢复前的已知条件。表1为示例的指令片段、表2为示例的程序跳转、表3为示例的寄存器状态、表4为示例的VMA列表、表5为示例的访存数据、表6为示例——栈。
表1:示例-指令片段
Figure BDA0003612595420000041
Figure BDA0003612595420000051
表2:示例——程序跳转
目标地址(虚拟地址) 对应标号
0x10588 towers_84
0x105ac towers_120
0x105dc towers_168
表3:示例-寄存器状态
Figure BDA0003612595420000052
Figure BDA0003612595420000061
其中:检查点信息具体包括:
1、VMA列表:类型,起始地址,长度
2、访存数据:地址,数据
3、栈内容:若干栈帧
4、程序跳转:目标地址,对应标号
5、通用寄存器:某些寄存器内容为内存地址
表4:示例——VMA列表
序号 类型 起始地址(虚拟地址) 长度
0 stack 0x7fffffffff800000 0x800000
1 heap 0x83000 0x1000
2 heap 0x84000 0x21000
3 normal 0x80000 0x1000
表5:示例——访存数据
原始地址(虚拟地址) 数据
0x80d58 0x7f
0x7ffffffffffffb30 0x7ffffffffffffb60
0x7ffffffffffffb38 0x105dc
表6:示例——栈
stack-base=0x7fffffffffffffff
stack-top=0x7ffffffffffffb20
frame-pointer=0x7ffffffffffffb40
Figure BDA0003612595420000062
Figure BDA0003612595420000071
如图4所示,为本发明一种CPU芯片仿真加速中针对无MMU环境的内存状态恢复方法流程图,本发明的一种CPU芯片仿真加速中针对无MMU环境的内存状态恢复方法包括如下步骤:
步骤S1:VMA(虚拟内存域)重定位,在可用的物理内存空间中,为每个虚拟内存域进行重定位,将其虚拟地址表示的基址转换为物理地址,长度保持不变;该步骤S1具体包括如下子步骤,如图5所示,为内存区域分配(重定位)方法:
步骤S11:确定目标系统环境物理内存的起始地址;
步骤S12:从起始地址开始,作为stack栈类型的区域;
步骤S13:随后,将前一区域的结束作为下一区域的开始,按顺序分配heap堆类型和normal一般类型。
该步骤的具体示例如下:
VMA列表重定位结果(物理内存起始地址=0x000000)
Figure BDA0003612595420000072
步骤S2:恢复访存数据。在此步骤S2中,对每一条读访存记录,存放位置的恢复规则为,所属VMA重定位之后的基址+偏移量,在此步骤中,内存值的恢复规则包括如下步骤:
S21:若其取值属于某个原始VMA的范围,则判定为内存地址,取值为该VMA重定位之后的基址+偏移量;
S22:若其取值等于某个跳转地址,则判定为内存地址,取值为对应标号的地址;
S23:否则,判定为普通数据,取值不变。
该步骤的示例如下:
示例——访存数据
Figure BDA0003612595420000081
步骤S3:恢复栈状态。在此步骤中,对每一个栈帧,存放位置的恢复规则为,所属VMA重定位之后的基址+偏移量;而内存值的恢复规则如下:
步骤S31:若处于RA位置(栈帧内最后一个64Byte),则判定为跳转地址,取值为对应标号的地址;
步骤S32:若处于FP位置(栈帧内倒数第二个64Byte),则判定为VMA0地址,取值为VMA0重定位之后的基址+偏移量;
步骤S33:若处于其他位置,且其取值属于某个原始VMA的范围,则判定为内存地址,取值为该VMA重定位之后的基址+偏移量;
步骤S34:若处于其他位置,且其取值等于某个跳转地址,则判定为内存地址,取值为对应标号的地址;
步骤S35:否则,判定为普通数据,取值不变。
上述步骤的示例如下:
示例——栈
stack-base=0x7fffffffffffffff重定位至0x800000-1
stack-top=0x7ffffffffffffb20重定位至0x7ffb20
frame-pointer=0x7ffffffffffffb40重定位至0x7ffb40
FP=frame-pointer,RA=return-address
Figure BDA0003612595420000082
Figure BDA0003612595420000091
步骤S4:恢复通用寄存器取值。
对每一个通用寄存器,取值的恢复规则,与S2中相同的规则,在此步骤中,内存值的恢复规则包括如下步骤:
步骤S41:若其取值属于某个原始VMA的范围,则判定为内存地址,取值为该VMA重定位之后的基址+偏移量;
步骤S42:若其取值等于某个跳转地址,则判定为内存地址,取值为对应标号的地址;
步骤S43:否则,判定为普通数据,取值不变。
上述步骤的示例如下:
示例-寄存器状态
Figure BDA0003612595420000092
Figure BDA0003612595420000101
如图6所示,为本发明的一种CPU芯片仿真加速中针对无MMU环境的内存状态恢复装置,该装置1具体包括:
虚拟内存域重定位单元11,其用于在可用的物理内存空间中,为每个虚拟内存域进行重定位,将其虚拟地址表示的基址转换为物理地址,长度保持不变;
恢复访存数据单元12,其用于恢复访存数据,对每一个栈帧,存放位置的恢复规则为,所属VMA重定位之后的基址+偏移量;
恢复栈状态单元13,其用于恢复栈状态对每一个栈帧,存放位置的恢复规则为,所属VMA重定位之后的基址+偏移量;以及
恢复通用寄存器取值单元14,其用于恢复通用寄存器取值。
其中:虚拟内存域重定位单元11包括:
用于确定目标系统环境物理内存的起始地址;从起始地址开始,作为stack栈类型的区域;将前一区域的结束作为下一区域的开始,按顺序分配heap堆类型和normal一般类型。
其中:恢复访存数据单元12具体包括:若其取值属于某个原始VMA的范围,则判定为内存地址,取值为该VMA重定位之后的基址+偏移量;若其取值等于某个跳转地址,则判定为内存地址,取值为对应标号的地址;否则,判定为普通数据,取值不变。
恢复栈状态单元13具体包括:若处于RA位置(栈帧内最后一个64Byte),则判定为跳转地址,取值为对应标号的地址;若处于FP位置(栈帧内倒数第二个64Byte),则判定为VMA0地址,取值为VMA0重定位之后的基址+偏移量;若处于其他位置,且其取值属于某个原始VMA的范围,则判定为内存地址,取值为该VMA重定位之后的基址+偏移量;若处于其他位置,且其取值等于某个跳转地址,则判定为内存地址,取值为对应标号的地址;否则,判定为普通数据,取值不变。
恢复通用寄存器取值单元14具体包括:若其取值属于某个原始VMA的范围,则判定为内存地址,取值为该VMA重定位之后的基址+偏移量;若其取值等于某个跳转地址,则判定为内存地址,取值为对应标号的地址;否则,判定为普通数据,取值不变。
与现有技术相比,本发明具有如下有益效果:
应用切片得以运行涉及的关键技术之一就是内存状态的恢复。根据目标处理器是否具备MMU,采取不同的方法。本发明在无MMU的情况下,处理器使用的内存地址,就是内存的物理地址,与有MMU的情况相比更为简单。本发明的特征也就在于恢复后使用物理地址。
参见图7,本申请实施例还提供了一种电子设备200,电子设备200包括至少一个存储器210、至少一个处理器220以及连接不同平台系统的总线230。
存储器210可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)211和/或高速缓存存储器212,还可以进一步包括只读存储器(ROM)213。
其中,存储器210还存储有计算机程序,计算机程序可以被处理器220执行,使得处理器220执行本申请实施例中内存状态恢复方法的步骤,其具体实现方式与上述内存状态恢复方法的实施例中记载的实施方式、所达到的技术效果一致,部分内容不再赘述。
存储器210还可以包括具有至少一个程序模块215的实用工具214,这样的程序模块215包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
相应的,处理器220可以执行上述计算机程序,以及可以执行实用工具214。
总线230可以为表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。
电子设备200也可以与一个或多个外部设备240例如键盘、指向设备、蓝牙设备等通信,还可与一个或者多个能够与该电子设备200交互的设备通信,和/或与使得该电子设备200能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等)通信。这种通信可以通过输入输出接口250进行。并且,电子设备200还可以通过网络适配器260与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器260可以通过总线230与电子设备200的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储平台等。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,所述计算机程序被执行时实现本申请实施例中内存状态恢复方法的步骤,其具体实现方式与上述内存状态恢复方法的实施例中记载的实施方式、所达到的技术效果一致,部分内容不再赘述。
图8示出了本实施例提供的用于实现上述内存状态恢复方法的程序产品300,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品300不限于此,在本申请中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。程序产品300可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言诸如Java、C++等,还包括常规的过程式程序设计语言诸如C语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本申请从使用目的上,效能上,进步及新颖性等观点进行阐述,已符合专利法所强调的功能增进及使用要件,本申请以上的说明书及说明书附图,仅为本申请的较佳实施例而已,并非以此局限本申请,因此,凡一切与本申请构造,装置,特征等近似、雷同的,即凡依本申请专利申请范围所作的等同替换或修饰等,皆应属本申请的专利申请保护的范围之内。

Claims (5)

1.一种CPU芯片仿真加速中针对无MMU环境的内存状态恢复方法,其特征在于,包括如下步骤:
步骤S1:虚拟内存域重定位,在可用的物理内存空间中,为每个虚拟内存域VMA进行重定位,将其虚拟地址表示的基址转换为物理地址,长度保持不变;
步骤S2:恢复访存数据,每一条读访存记录,存放位置的恢复规则为,所属虚拟内存域重定位之后的基址+偏移量;
步骤S3:恢复栈状态,对每一个栈帧,存放位置的恢复规则为,所属虚拟内存域重定位之后的基址+偏移量;
步骤S4:恢复通用寄存器取值,
所述步骤S2包括:
S21:若其取值属于某个原始虚拟内存域的范围,则判定为内存地址,取值为该虚拟内存域重定位之后的基址+偏移量;
S22:若其取值等于某个跳转地址,则判定为内存地址,取值为对应标号的地址;
S23:否则,判定为普通数据,取值不变;
所述步骤S3包括:
步骤S31:若处于RA位置,则判定为跳转地址,取值为对应标号的地址;
步骤S32:若处于FP位置,则判定为VMA0地址,取值为VMA0重定位之后的基址+偏移量;
步骤S33:若处于其他位置,且其取值属于某个原始虚拟内存域的范围,则判定为内存地址,取值为该虚拟内存域重定位之后的基址+偏移量;
步骤S34:若处于其他位置,且其取值等于某个跳转地址,则判定为内存地址,取值为对应标号的地址;
步骤S35:否则,判定为普通数据,取值不变;
所述步骤S4包括:
S41:若其取值属于某个原始VMA的范围,则判定为内存地址,取值为该VMA重定位之后的基址+偏移量;
S42:若其取值等于某个跳转地址,则判定为内存地址,取值为对应标号的地址;
S43:否则,判定为普通数据,取值不变。
2.根据权利要求1所述的CPU芯片仿真加速中针对无MMU环境的内存状态恢复方法,其特征在于,所述步骤S1包括:
步骤S11:确定目标系统环境物理内存的起始地址;
步骤S12:从起始地址开始,作为stack栈类型的区域;
步骤S13:随后,将前一区域的结束作为下一区域的开始,按顺序分配heap堆类型和normal一般类型。
3.一种CPU芯片仿真加速中针对无MMU环境的内存状态恢复装置,其特征在于,包括:
虚拟内存域重定位单元,其用于在可用的物理内存空间中,为每个虚拟内存域VMA进行重定位,将其虚拟地址表示的基址转换为物理地址,长度保持不变;
恢复访存数据单元,其用于恢复访存数据,对每一条读访存记录,存放位置的恢复规则为,所属VMA重定位之后的基址+偏移量;
恢复栈状态单元,其用于恢复栈状态,对每一个栈帧,存放位置的恢复规则为,所属VMA重定位之后的基址+偏移量;以及
恢复通用寄存器取值单元,其用于恢复通用寄存器取值,
恢复访存数据单元通过以下步骤恢复访存数据:
S21:若其取值属于某个原始虚拟内存域的范围,则判定为内存地址,取值为该虚拟内存域重定位之后的基址+偏移量;
S22:若其取值等于某个跳转地址,则判定为内存地址,取值为对应标号的地址;
S23:否则,判定为普通数据,取值不变;
恢复栈状态单元通过以下步骤恢复栈状态:
步骤S31:若处于RA位置,则判定为跳转地址,取值为对应标号的地址;
步骤S32:若处于FP位置,则判定为VMA0地址,取值为VMA0重定位之后的基址+偏移量;
步骤S33:若处于其他位置,且其取值属于某个原始虚拟内存域的范围,则判定为内存地址,取值为该虚拟内存域重定位之后的基址+偏移量;
步骤S34:若处于其他位置,且其取值等于某个跳转地址,则判定为内存地址,取值为对应标号的地址;
步骤S35:否则,判定为普通数据,取值不变;
恢复通用寄存器取值单元通过以下步骤恢复通用寄存器取值:
S41:若其取值属于某个原始VMA的范围,则判定为内存地址,取值为该VMA重定位之后的基址+偏移量;
S42:若其取值等于某个跳转地址,则判定为内存地址,取值为对应标号的地址;
S43:否则,判定为普通数据,取值不变。
4.一种电子设备,其特征在于,所述电子设备具有存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1-2任一项所述方法的步骤。
5.一种计算机可读存储介质,其特征在于,存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-2任一项所述方法的步骤。
CN202210435456.5A 2022-04-24 2022-04-24 Cpu芯片仿真加速中针对无mmu环境的内存状态恢复方法 Active CN114781322B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210435456.5A CN114781322B (zh) 2022-04-24 2022-04-24 Cpu芯片仿真加速中针对无mmu环境的内存状态恢复方法
PCT/CN2022/111684 WO2023206859A1 (zh) 2022-04-24 2022-08-11 Cpu芯片仿真加速中针对无mmu环境的内存状态恢复方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210435456.5A CN114781322B (zh) 2022-04-24 2022-04-24 Cpu芯片仿真加速中针对无mmu环境的内存状态恢复方法

Publications (2)

Publication Number Publication Date
CN114781322A CN114781322A (zh) 2022-07-22
CN114781322B true CN114781322B (zh) 2023-04-25

Family

ID=82432488

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210435456.5A Active CN114781322B (zh) 2022-04-24 2022-04-24 Cpu芯片仿真加速中针对无mmu环境的内存状态恢复方法

Country Status (2)

Country Link
CN (1) CN114781322B (zh)
WO (1) WO2023206859A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114781322B (zh) * 2022-04-24 2023-04-25 苏州睿芯集成电路科技有限公司 Cpu芯片仿真加速中针对无mmu环境的内存状态恢复方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100555222C (zh) * 2007-02-15 2009-10-28 凌阳科技股份有限公司 应用程序可重定位加载的方法及地址重定位装置
CN102169459B (zh) * 2010-11-29 2013-04-24 北京握奇数据系统有限公司 一种访问数据的方法、装置和智能卡
CN102567126B (zh) * 2010-12-10 2013-10-16 联芯科技有限公司 一种硬件现场复现的方法及装置
CN103870767B (zh) * 2014-03-19 2017-02-01 四川大学 基于ebp构造的栈栈帧内容保护方法
US11385926B2 (en) * 2017-02-17 2022-07-12 Intel Corporation Application and system fast launch by virtual address area container
CN107729085A (zh) * 2017-10-19 2018-02-23 北京空间飞行器总体设计部 一种支持地址重定向的星载软件动态加载方法
GB2570744B (en) * 2018-06-29 2020-08-26 Imagination Tech Ltd Virtual memory management
CN112035272A (zh) * 2019-06-03 2020-12-04 华为技术有限公司 进程间通信的方法、装置以及计算机设备
CN113849339B (zh) * 2020-06-28 2023-07-11 华为技术有限公司 恢复应用程序的运行状态的方法、装置及存储介质
CN114138689A (zh) * 2021-10-22 2022-03-04 佛山职业技术学院 一种内存地址处理方法、装置、设备及存储介质
CN114781322B (zh) * 2022-04-24 2023-04-25 苏州睿芯集成电路科技有限公司 Cpu芯片仿真加速中针对无mmu环境的内存状态恢复方法

Also Published As

Publication number Publication date
WO2023206859A1 (zh) 2023-11-02
CN114781322A (zh) 2022-07-22

Similar Documents

Publication Publication Date Title
CN111090628B (zh) 一种数据处理方法、装置、存储介质及电子设备
US9213623B2 (en) Memory allocation with identification of requesting loadable kernel module
US7360115B2 (en) Systems and methods for replicating virtual memory on a host computer and debugging using replicated memory
US8725984B2 (en) Performing memory accesses while omitting unnecessary address translations
CN109857556B (zh) 内存回收方法及装置、存储介质和电子设备
US11768757B2 (en) Kernel debugging system and method
US8954707B2 (en) Automatic use of large pages
US8887139B2 (en) Virtual system and method of analyzing operation of virtual system
US20130096908A1 (en) Employing native routines instead of emulated routines in an application being emulated
US11681806B2 (en) Protecting against out-of-bounds buffer references
US11983532B2 (en) Optimize bound information accesses in buffer protection
CN114765051A (zh) 内存测试方法及装置、可读存储介质、电子设备
CN114781322B (zh) Cpu芯片仿真加速中针对无mmu环境的内存状态恢复方法
CN111104347B (zh) 堆内存块查找方法、装置、设备及存储介质
US7685381B2 (en) Employing a data structure of readily accessible units of memory to facilitate memory access
CN111858393A (zh) 内存页面管理方法、内存页面管理装置、介质与电子设备
CN114781323B (zh) Cpu芯片仿真加速中针对有mmu环境的内存状态恢复方法
AU2013295686B2 (en) Lock free streaming of executable code data
CN112364268A (zh) 资源获取方法、装置、电子设备及存储介质
US11288207B2 (en) Apparatus and method for processing address translation and invalidation transactions
US20130132061A1 (en) Just-in-time static translation system for emulated computing environments
CN116432149A (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