CN117742791A - 一种指令的处理方法及装置 - Google Patents
一种指令的处理方法及装置 Download PDFInfo
- Publication number
- CN117742791A CN117742791A CN202311872779.1A CN202311872779A CN117742791A CN 117742791 A CN117742791 A CN 117742791A CN 202311872779 A CN202311872779 A CN 202311872779A CN 117742791 A CN117742791 A CN 117742791A
- Authority
- CN
- China
- Prior art keywords
- instruction
- registers
- target program
- state
- program instruction
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title description 5
- 238000013519 translation Methods 0.000 claims abstract description 100
- 238000000034 method Methods 0.000 claims abstract description 44
- 238000012545 processing Methods 0.000 claims abstract description 29
- 238000013507 mapping Methods 0.000 claims abstract description 20
- 238000004590 computer program Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 5
- 238000004088 simulation Methods 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
本申请实施例提供一种指令的处理方法及装置,应用在计算机技术领域,包括:当译码器对目标程序指令解析出错时,从用户态切换至指令翻译态,并在指令翻译态下识别目标程序指令;若识别成功,则对目标程序指令进行解析,获得目标程序指令指向的用户态的多个目标寄存器;将指令翻译态的可重映射寄存器分别映射至多个相应的目标寄存器;通过多个可重映射寄存器执行目标程序指令,获得执行结果。本申请通过将可重映射寄存器映射至既有的目标寄存器上,可以直接操作处理器内部的寄存器以执行目标程序指令,避免了向内存中存储和读取数据时出现的时间消耗与性能损失。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种指令的处理方法及装置。
背景技术
伴随着电子化信息时代的发展,半导体行业技术的也在不断进步,人们在广泛使用过程电子化设备的过程中,对性能需求也在不断提升,使得现代处理器的架构与指令集都在不断更新与迭代。
当在一个架构平台上运行二进制程序指令时,若执行过程中遇到了架构不支持的指令,该架构会触发异常,并由内核对该指令进行异常处理,内核将当前所有寄存器的状态与数据保存至内存中,用于后续恢复。由于内存为中央处理器(central processing unit,简称CPU)的外部设备,存储和读取所有寄存器的状态与数据,会导致很大的时间损失与性能损失。
发明内容
本申请实施例提供了一种指令的处理方法及装置,用于对处理器中的指令进行处理。
第一方面,本申请实施例提供了一种指令的处理方法,应用于计算机设备,包括:
当确定译码器对目标程序指令解析出错时,从用户态切换至指令翻译态,并在所述指令翻译态下识别所述目标程序指令;
若识别成功,则对所述目标程序指令进行解析,获得所述目标程序指令指向的所述用户态的多个目标寄存器;
将所述指令翻译态的可重映射寄存器分别映射至所述多个相应的目标寄存器;
通过所述多个可重映射寄存器执行所述目标程序指令,获得执行结果。
本申请通过将可重映射寄存器映射至既有的目标寄存器上,可以直接操作处理器内部的寄存器以执行目标程序指令,避免了向内存中存储和读取数据时出现的时间消耗与性能损失。
可选地,所述将所述指令翻译态的可重映射寄存器分别映射至所述多个相应的目标寄存器,包括:
在指令翻译态的寄存器重映射指令的触发下,基于所述目标程序指令的类型和定义,将所述可重映射寄存器分别映射至所述多个相应的目标寄存器。
可选地,所述通过所述多个寄存器执行所述目标程序指令,获得执行结果,包括:
通过指令翻译态的指令翻译子系统和多个可重映射寄存器执行所述运算过程,获得执行结果。
由于在指令翻译态下,对目标程序指令进行模拟的过程是静态的,在该实施例中,不需要选择执行域和执行该目标指令的寄存器,提高了对目标程序指令的执行效率。
可选地,若识别失败,从所述指令翻译态切换至内核态,由内核进行常规的异常处理。
可选地,所述内核态的权限等级大于所述指令翻译态的权限等级,所述指令翻译态的权限等级大于所述用户态的权限等级。
可选地,所述从用户态切换至指令翻译态,还包括:
从第一寄存器组切换至第二寄存器组,所述第一寄存器组为非指令翻译态下的通用寄存器;所述第二寄存器组为指令翻译态下的寄存器,第二寄存器组中部分或全部寄存器为可重映射寄存器。
可选地,所述通过所述多个寄存器执行所述目标程序指令,获得执行结果之后,还包括:
从所述指令翻译态切换至所述用户态,从第二寄存器组切换至第一寄存器组。
本实施例在指令翻译态执行完毕切换至用户态时,不需要通过内核栈中的结构体恢复之前暂存在内存中的所有通用寄存器及一些特殊寄存器的状态与数据,避免了时间消耗与性能损失。
第二方面,本申请实施例提供了一种指令的处理方法,应用于处理器,包括:
当译码器对目标程序指令解析出错时,从用户态切换至指令翻译态;
以使操作系统内核在所述指令翻译态下识别所述目标程序指令;
若识别成功,所述操作系统内核对所述目标程序指令进行解析,获得所述目标程序指令指向的所述用户态的多个目标寄存器;将所述指令翻译态的可重映射寄存器分别映射至所述多个相应的目标寄存器;通过所述多个可重映射寄存器执行所述目标程序指令,获得执行结果。
本申请通过将寄存器映射至既有的目标寄存器上,可以直接操作处理器内部的寄存器以执行目标程序指令,避免了向内存中存储和读取数据时出现的时间消耗与性能损失。
第三方面,本申请实施例提供了一种指令的处理方法,应用于操作系统内核,包括:
在指令翻译态下识别所述目标程序指令;若识别成功,则对所述目标程序指令进行解析,获得所述目标程序指令指向的所述用户态的多个目标寄存器;
将所述指令翻译态的可重映寄存器分别映射至所述多个相应的目标寄存器;
通过所述多个可重映射寄存器执行所述目标程序指令,获得执行结果;
所述指令翻译态是当译码器对目标程序指令解析出错时,处理器从用户态切换的。
本申请通过将寄存器映射至既有的目标寄存器上,可以直接操处理器内部的寄存器以执行目标程序指令,避免了向内存中存储和读取数据时出现的时间消耗与性能损失。
第四方面,本申请实施例提供了一种计算机设备,包括处理器和操作系统内核,包括:
所述处理器,用于当译码器对目标程序指令解析出错时,从用户态切换至指令翻译态;
所述操作系统内核,用于在所述指令翻译态下识别所述目标程序指令;若识别成功,所述操作系统内核对所述目标程序指令进行解析,获得所述目标程序指令指向的所述用户态的多个目标寄存器;将所述指令翻译态的可重映射寄存器分别映射至所述多个相应的目标寄存器;通过所述多个可重映射寄存器执行所述目标程序指令,获得执行结果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种指令处理方法的流程示意图;
图2为本申请实施例提供的一种指令处理方法的流程示意图;
图3本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了方便理解,下面对本发明实施例中涉及的名词进行解释。
MIPS架构(Microprocessor without interlocked piped stagesarchitecture)为一种采取精简指令集(Reduced Instruction Set Computer,简称为RISC)的处理器架构。
MIPS R6指令集平台:基于MIPS新版指令集MIPS Releases 6生产和制造的CPU。(下文统称为新架构)
MIPS Pre-R6指令集平台:基于MIPS既有的旧版指令集(即非MIPS Releases 6)生产和制造的CPU。(下文统称为旧架构)
指令集:是计算机体系结构中与程序设计有关的部分,包含了基本数据类型,指令集,寄存器,寻址模式,存储体系,中断,异常处理以及外部I/O。指令集是软件和硬件之间的接口,是一套标准规范(以文档的形式发布),并不具备实体。
寄存器:寄存器(Register)是CPU内部用来暂存指令、数据和地址的电脑存储器。寄存器的存贮容量有限,读写速度非常快。在计算机体系结构里,寄存器存储在已知时间点所作计算的中间结果,通过快速地访问数据来加速计算机程序的执行。
影子寄存器,又称为影子寄存器组/集合:根据不同特权态将同一个寄存器映射到不同的物理寄存器上,则该寄存器被称为影子寄存器。
内存:内存(Memory)是计算机的重要部件,也称内存储器和主存储器,它用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。
译码器:英文名称为Decoder,是CPU中解释和处理指令的一个硬件模块,负责将二进制代码翻译为特定的对象,能将存储在指令寄存器或微程序指令中的比特转换为能控制CPU其他部分的控制信号。
在MIPS架构下,应用程序皆在用户态下运行。在执行应用程序时,二进制应用程序所需执行的指令,被源源不断的送到CPU前端的译码器当中,进行译码、解析操作,并在处理完成后送往CPU后端进一步处理和执行。而当译码器遇到不支持或不正常的指令码时,会导致CPU产生异常,此时CPU运行状态从用户态切换至内核态,由内核对异常指令码进行处理,而在通常情况下,内核异常处理的结果就是终止该进程。
现有的实现新架构兼容旧架构的二进制程序运行的方法是,CPU产生异常后,切换至内核态时,需要将当前所有寄存器的状态与数据(包含程序计数器、通用寄存器等)保存至内存,内核对旧架构的二进制程序指令码执行模拟指令时,并非直接操作CPU内部的寄存器,而是通过一系列复杂的逻辑操作内存中保存的用户态寄存器数据,而对内存中的数据的存储和读取是相当耗时的,同时还带来了很大的性能的损失。内核处理完旧架构的二进制程序指令码后,还需要利用内核栈中的pt_regs的结构体恢复之前保存所有通用寄存器及一些特殊寄存器的状态与数据,这也会带来时间消耗与性能损失。
图1示例性的示出了一种指令的处理方法的流程,由处理器执行,包括以下步骤:
步骤S101,当确定译码器对目标程序指令解析出错时,从用户态切换至指令翻译态,并在指令翻译态下识别目标程序指令。
具体地,在用户态和内核态之间定义一个新的特权态,即指令翻译态。译码器解析目标程序指令,确定该指令对应的微架构行为,若译码器无法识别旧架构二进制的目标程序指令,则表示译码器对目标程序进行解析时出现错误,则处理器的状态会由用户态切换为指令翻译态,在该指令翻译态下对目标程序指令进行识别。
在一些实施例中,内核态的权限等级大于指令翻译态的权限等级,指令翻译态的权限等级大于用户态的权限等级。
具体地,指令翻译态的权限等级介于内核态和用户态之间,该指令翻译态的权限等级低于内核态权限等级,指令翻译态的权限等级高于用户态的权限等级。
步骤S102,若识别成功,则对目标程序指令进行解析,获得目标程序指令指向的用户态的多个目标寄存器。
具体地,若内核的指令翻译模块,即指令翻译子系统可以识别目标程序指令,说明内核对该目标程序指令识别成功,则对目标程序指令进行解析,获得该目标程序指令中所指向的多个目标寄存器。
步骤S103,将指令翻译态的可重映射寄存器分别映射至多个相应的目标寄存器。
具体地,以MIPS处理器架构为例,MIPS Pre-R6指令集平台和MIPS R6指令集平台的通用寄存器数量和定义完全相同,如以下表1所示:
表1
在上述架构上,为处理器新增一组寄存器,称为影子寄存器组,影子寄存器组随着特权态的切换而切换,影子寄存器组切换为整组切换,影子寄存器为指令模拟子系统提供运行条件。
该组影子寄存器共有32个,新增32个影子寄存器的编号和用途如下表2所示:
表2
在该组寄存器中28个寄存器用作指令翻译态下的影子寄存器,2个用作指令翻译态下模拟MIPS-Pre R6的Hi/Lo寄存器,2个寄存器进行预留。可重映射寄存器$24~$26默认不绑定任何物理寄存器,通过寄存器重映射指令将该3个可重映射寄存器与处理器既有的寄存器建立绑定。可重映射寄存器为指令模拟例程提供对用户态的寄存器数据的访问,方便指令模拟例程静态化,可重映射寄存器可被寄存器重映射指令任意修改映射。
另外,寄存器$27也可用于重定义映射,但在目前的映射约定中暂不使用;寄存器$0的读数始终为0。$0_t~$31_t的影子寄存器,都被固定绑定在专供指令翻译态使用的处理器中既有的物理寄存器(表1中对应编号)上。
在本实施例中,处理器在指令翻译态下,通过调用寄存器重映射指令,将可重映射寄存器$24~$26,依次映射到目标程序指令中rd,rt,rs域所指向的多个目标寄存器上,使得指令翻译态的可重映射寄存器与相应的目标寄存器中的数据内容和状态保持一致。
步骤S104,通过多个可重映射寄存器执行目标程序指令,获得执行结果。
具体地,可重映射寄存器通过映射后,操作这些可重映射寄存器就相当于操作目标寄存器,处理器直接操作这些可重映射寄存器,来执行目标程序指令,获得该目标程序指令的执行结果,处理器对该目标程序指令的处理结束。
本申请通过将可重映射寄存器映射至既有的目标寄存器上,可以直接操作处理器内部的寄存器以执行目标程序指令,避免了向内存中存储和读取数据时出现的时间消耗与性能损失。
在一些实施例中,将指令翻译态的可重映射寄存器分别映射至多个相应的目标寄存器,包括:
在指令翻译态的寄存器重映射指令的触发下,基于目标程序指令的类型和定义,将可重映射寄存器分别映射至多个相应的目标寄存器。
具体地,根据目标程序指令不同的类型和定义,将目标程序指令存放至对应的目标寄存器中。其中,目标程序指令按照指令的功能类型,可以分为传送类、算术运算类、位操作类、I/O类、串操作类、CPU控制类、转移类;按照操作数的个数可以将指令分为零地址指令、一地址指令、二地址指令、多地址指令,目标程序指令包括但不限于上述分类。根据目标程序指令的类型和定义,通过寄存器重映射指令将可重映射寄存器分别映射至相应的目标寄存器上;即通过执行寄存器重映射指令,CPU将可重映射寄存器$24~$26依次映射到目标程序指令的rd,rt,rs域所指向的目标寄存器上,这样可使得在指令翻译态下,CPU对可重映射寄存器寄存器$24-$26的读写就相当于对待所使用的CPU既有的目标寄存器的读写。
在一些实施例中,通过多个可重映射寄存器执行目标程序指令,获得执行结果,包括:通过指令翻译态的指令翻译子系统和多个可重映射寄存器执行运算过程,获得执行结果。
具体地,指令翻译子系统为内核中的对目标程序指令进行模拟的系统,指令翻译子系统中对目标程序指令进行模拟转化,获得目标程序指令的所需执行的运算,基于多个可重映射寄存器执行该运算的操作后,获得执行后的运算结果。
由于在指令翻译态下,对目标程序指令进行模拟的过程是静态的,在该实施例中,对目标程序指令进行模拟的是rd,rt,rs域指向的$24~$26可重映射寄存器,不需要选择执行域和执行该目标指令的寄存器,提高了对目标程序指令的执行效率。
在一些实施例中,若识别失败,从指令翻译态切换至内核态,由内核态基进行常规处理。
具体地,若处理器使用的系统架构不可以识别目标程序指令,说明处理器对该目标程序指令识别失败,则调用特权跳转指令,让处理器从指令翻译态切换至内核态,由内核态下的多个通用寄存器进行常规的异常指令处理流程,内核态下的多个通用寄存器为执行过寄存器重映射指令后,可重映射寄存器所指向的物理寄存器。当指令翻译态切换至内核态时,指令翻译态下的影子寄存器组失效。
在一些实施例中,通过多个可重映射寄存器执行目标程序指令,获得执行结果之后,还包括:从指令翻译态切换至用户态,从第一寄存器组切换至第二寄存器组,第一寄存器组为可重映射寄存器,第二寄存器组为非指令翻译态下的通用寄存器。
具体地,通过特权跳转指令,即可让处理器从指令翻译态切换至用户态,从可重映射寄存器切换至非指令翻译态下的通用寄存器,取消可重映射寄存器与对应的非指令翻译态下的通用寄存器之间的重映射。
本实施例在指令翻译态执行完毕切换至用户态时,不需要通过内核栈中的结构体恢复之前暂存在内存中的所有通用寄存器及一些特殊寄存器的状态与数据,避免了时间消耗与性能损失。
为了更好地介绍本申请实施例中的指令的处理方法,如图2所示,为本发明实施例提供的一种指令的处理流程示意图。该方法包括以下步骤:
步骤S201,译码器无法对目标程序指令进行解析,译码器出错;
具体地,目标程序指令属于旧架构的二进制程序指令码,译码器无法对目标程序指令进行解析,译码器报错。
步骤S202,处理器进入指令翻译态,并切换至指令翻译态的寄存器组;
步骤S203,判断该目标程序指令能否识别,若能识别,则进入步骤S204,若不能识别,则进入步骤S206;
步骤S204,对目标程序指令进行解析,并将指令翻译态的可重映射寄存器分别映射至目标程序指令指向的多个目标寄存器;
具体地,根据目标程序指令不同的类型和定义,将目标程序指令存放至对应的目标寄存器中,再根据目标程序指令的类型和定义,通过寄存器重映射指令将可重映射寄存器分别映射至相应的目标寄存器上。
步骤S205,通过指令翻译子系统和多个可重映射寄存器;通过多个可重映射寄存器执行运算过程,获得执行结果后,跳转至步骤S207;
具体地,通过多个可重映射寄存器和指令翻译子系统中对目标程序指令进行执行,获得目标程序指令的所需执行的运算,基于对多个可重映射寄存器中数据内容的访问,并执行该运算的操作后获得执行后的运算结果。
步骤S206,该目标程序指令不能被识别,则通过特权跳转指令,处理器状态由指令翻译态切换至内核态,从指令翻译态的寄存器组切换至非指令翻译态下的通用寄存器组,通过内核进行常规的异常处理;
步骤S207,对该目标程序指令处理完毕,返回用户态,从指令翻译态的寄存器组切换至非指令翻译态下的通用寄存器组。
具体地,若此时处理器处于指令翻译态,需要通过特权跳转指令,处理器状态由指令翻译态切换至用户态,从可重映射切换至非指令翻译态下的通用寄存器;若此时处理器处于内核态,则直接返回至用户态。
本申请通过将可重映射寄存器映射至既有的目标寄存器上,可以直接操处理器内部的寄存器以执行目标程序指令,避免了向内存中存储和读取数据时出现的时间消耗与性能损失。
基于相同的技术构思,本申请实施例提供了一种计算机设备,如图3所示,包括处理器301以及与操作系统内核302,本申请实施例中不限定处理器301与操作系统内核302之间的具体连接介质,图3中处理器301和操作系统内核302之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
其中,处理器301是计算机设备的控制中心,可以利用各种接口和线路连接计算机设备的各个部分,通过运行或执行存储在操作系统内核302内的指令以及调用存储在操作系统内核302内的数据,从而实现处理器对指令进行处理。可选的,处理器301可包括一个或多个处理单元,处理器301可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器301中。在一些实施例中,处理器301和操作系统内核302可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器301可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
操作系统内核302(Kernel)是一组应用软件,这个软件能够控制所有硬件及计算机活动。如硬盘访问、网卡传输和键盘开始工作等,开机后内核程序将会常驻受保护的内存中。硬件由内核管理后,操作系统将会提供一组系统调用接口,帮助完成诸如显示、读写设备等基本操作。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种指令的处理方法,应用于计算机设备,其特征在于,包括:
当译码器对目标程序指令解析出错时,从用户态切换至指令翻译态,并在所述指令翻译态下识别所述目标程序指令;
若识别成功,则对所述目标程序指令进行解析,获得所述目标程序指令指向的所述用户态的多个目标寄存器;
将所述指令翻译态的可重映射寄存器分别映射至所述多个相应的目标寄存器;
通过所述多个可重映射寄存器执行所述目标程序指令,获得执行结果。
2.如权利要求1所述的方法,其特征在于,所述将所述指令翻译态的可重映射寄存器分别映射至所述多个相应的目标寄存器,包括:
在指令翻译态的寄存器重映射指令的触发下,基于所述目标程序指令的类型和定义,将所述可重映射寄存器分别映射至所述多个相应的目标寄存器。
3.如权利要求1所述的方法,其特征在于,所述通过所述多个可重映射寄存器执行所述目标程序指令,获得执行结果,包括:
通过指令翻译态的指令翻译子系统和所述多个可重映射寄存器执行所述运算过程,获得执行结果。
4.如权利要求1所述的方法,其特征在于,还包括:
若识别失败,从所述指令翻译态切换至内核态,由内核进行常规的异常处理。
5.如权利要求4所述的方法,其特征在于,所述内核态的权限等级大于所述指令翻译态的权限等级,所述指令翻译态的权限等级大于所述用户态的权限等级。
6.如权利要求1所述的方法,其特征在于,所述从用户态切换至指令翻译态,还包括:
从第一寄存器组切换至第二寄存器组,所述第一寄存器组为非指令翻译态下的通用寄存器;所述第二寄存器组为指令翻译态下的寄存器,第二寄存器组中部分或全部寄存器为可重映射寄存器。
7.如权利要求6所述的方法,其特征在于,所述通过所述可重映射寄存器执行所述目标程序指令,获得执行结果之后,还包括:
从所述指令翻译态切换至所述用户态,从第二寄存器组切换至第一寄存器组。
8.一种指令的处理方法,应用于处理器,其特征在于,包括:
当译码器对目标程序指令解析出错时,从用户态切换至指令翻译态;
以使操作系统内核在所述指令翻译态下识别所述目标程序指令;
若识别成功,所述操作系统内核对所述目标程序指令进行解析,获得所述目标程序指令指向的所述用户态的多个目标寄存器;将所述指令翻译态的可重映射寄存器分别映射至所述多个相应的目标寄存器;通过所述多个可重映射寄存器执行所述目标程序指令,获得执行结果。
9.一种指令的处理方法,应用于操作系统内核,其特征在于,包括:
在指令翻译态下识别所述目标程序指令;若识别成功,则对所述目标程序指令进行解析,获得所述目标程序指令指向的所述用户态的多个目标寄存器;
将所述指令翻译态的可重映寄存器分别映射至所述多个相应的目标寄存器;
通过所述多个可重映射寄存器执行所述目标程序指令,获得执行结果;
所述指令翻译态是当译码器对目标程序指令解析出错时,处理器从用户态切换的。
10.一种计算机设备,包括处理器和操作系统内核,其特征在于,包括:
所述处理器,用于当译码器对目标程序指令解析出错时,从用户态切换至指令翻译态;
所述操作系统内核,用于在所述指令翻译态下识别所述目标程序指令;若识别成功,所述操作系统内核对所述目标程序指令进行解析,获得所述目标程序指令指向的所述用户态的多个目标寄存器;将所述指令翻译态的可重映射寄存器分别映射至所述多个相应的目标寄存器;通过所述多个可重映射寄存器执行所述目标程序指令,获得执行结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311872779.1A CN117742791A (zh) | 2023-12-29 | 2023-12-29 | 一种指令的处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311872779.1A CN117742791A (zh) | 2023-12-29 | 2023-12-29 | 一种指令的处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117742791A true CN117742791A (zh) | 2024-03-22 |
Family
ID=90283321
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311872779.1A Pending CN117742791A (zh) | 2023-12-29 | 2023-12-29 | 一种指令的处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117742791A (zh) |
-
2023
- 2023-12-29 CN CN202311872779.1A patent/CN117742791A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100737666B1 (ko) | 가상 기계 동작에서 기계 상태를 관리하는 방법 및 시스템 | |
US7783867B2 (en) | Controlling instruction execution in a processing environment | |
US6212625B1 (en) | General purpose dynamically programmable state engine for executing finite state machines | |
US8769504B2 (en) | Method and apparatus for dynamically instrumenting a program | |
US10185616B1 (en) | Computer system vulnerability analysis apparatus and method | |
CN114765051A (zh) | 内存测试方法及装置、可读存储介质、电子设备 | |
CN114721719A (zh) | 一种在集群中容器化部署异构应用的方法和系统 | |
CN102193804B (zh) | 一种单板驱动的加载方法和通信设备 | |
CN117573419B (zh) | 一种页面异常处理方法及装置 | |
EP2828747A1 (en) | Hybrid emulation and kernel function processing systems and methods | |
CN113778838B (zh) | 二进制程序动态污点分析方法及装置 | |
CN115840618B (zh) | 一种hypervisor中虚拟机模拟设备寄存器的访问方法及装置 | |
CN117742791A (zh) | 一种指令的处理方法及装置 | |
CN103235745B (zh) | 一种地址冲突检测方法及装置 | |
US11593113B2 (en) | Widening memory access to an aligned address for unaligned memory operations | |
CN115374017A (zh) | 一种仿真运行可执行文件时抓取现场的方法及计算设备 | |
CN115185638A (zh) | 一种仿真运行应用程序时获取调用栈的方法及计算设备 | |
US7882336B2 (en) | Employing a buffer to facilitate instruction execution | |
CN115292000A (zh) | 一种虚拟机动态迁移的方法、装置及电子设备 | |
CN112559336A (zh) | 自适应调试异构计算芯片的方法、装置、系统及主板芯片 | |
CN117008972B (zh) | 一种指令分析方法、装置、计算设备及存储介质 | |
US7406406B2 (en) | Instructions to load and store containing words in a computer system emulator with host word size larger than that of emulated machine | |
CN117873646A (zh) | 基于外设访问点引导的固件仿真方法及系统 | |
CN117931282A (zh) | 一种函数入口确定方法、计算设备及存储介质 | |
CN116302332A (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 |