CN114020330B - Risc-v处理器验证中模式切换的方法、电子设备以及存储介质 - Google Patents
Risc-v处理器验证中模式切换的方法、电子设备以及存储介质 Download PDFInfo
- Publication number
- CN114020330B CN114020330B CN202111299500.6A CN202111299500A CN114020330B CN 114020330 B CN114020330 B CN 114020330B CN 202111299500 A CN202111299500 A CN 202111299500A CN 114020330 B CN114020330 B CN 114020330B
- Authority
- CN
- China
- Prior art keywords
- mode
- switching
- target
- current
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000012545 processing Methods 0.000 claims abstract description 12
- 238000013507 mapping Methods 0.000 claims description 24
- 230000009191 jumping Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 7
- 238000012795 verification Methods 0.000 abstract description 21
- 238000010586 diagram Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000005284 excitation Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30069—Instruction skipping instructions, e.g. SKIP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种RISC‑V处理器验证中模式切换的方法、电子设备以及存储介质,解决了现有技术中目前基于RISC‑V处理器芯片验证方法的验证效率低的技术问题。本发明根据切换参数确定当前模式和目标模式,能够减少后续步骤中处理的复杂度,且在进行模式切换时,根据参数选择不同的执行分支路径来切换模式,从而能够根据不同的分支路径针对性的从不同的方式完成从不同的当前模式到不同的目标模式的切换,提高了验证的效率。
Description
技术领域
本发明涉及芯片验证技术领域,具体涉及RISC-V处理器验证中 模式切换的方法、电子设备以及存储介质。
背景技术
RISC-V是一种新颖而先进的指令集,由于其前瞻性,精简性,扩 展性和开源的特征,在处理器设计中被广泛采用。
处理器的设计验证过程中,操作系统的启动和调试,是必不可少 的过程。
目前基于RISC-V(精简指令集计算机)处理器芯片验证方法主要 是先将RISC-V测试激励转成ELF文件,然后通过对比RISC-V参考模 型和RTL(Register Transfer Level,寄存器转换级电路)代码仿真 全流程log信息来验证芯片功能的正确性。在芯片验证工作过程中, 尤其是芯片压力测试和芯片性能测试中,RISC-V测试激励中的指令数 量巨大,仿真过程中的log文件容量也等比例的增加,模式切换不灵 活,使得测试用例大量增加。由此可知,目前基于RISC-V处理器芯片验证方法的验证效率低。
发明内容
针对现有技术的不足,本发明提出RISC-V处理器验证中模式切 换的方法、电子设备以及存储介质。具体而言,本发明提供了以下的 技术方案:
根据本发明的一个方面,本发明提供了一种RISC-V处理器验证 中模式切换的方法,包括:
设置切换参数,所述切换参数包括当前模式参数以及目标模式参 数;
通过切换模式跳转指令跳转至切换模式段,并保存所述当前模式 的返回地址;
根据所述切换参数,确定目标模式;
根据所述目标模式以及所述当前模式,确定模式切换指令;
根据所述模式切换指令,将所述当前模式切换至所述目标模式。
在本发明一实施例中,根据所述目标模式以及所述当前模式,确定 模式切换指令,包括:
根据所述当前模式和所述目标模式,判断所述目标模式是否为所述 当前模式的更高权限或者相等权限的模式;
当所述目标模式是所述当前模式的更高权限或者相等权限的模式 时,确定模式切换指令为陷入指令。
在本发明一实施例中,根据所述目标模式以及所述当前模式,确定 模式切换指令,还包括:
当所述目标模式不是所述当前模式的更高权限的模式,且不是所 述当前模式的相等权项的模式时,确定模式切换指令为mret/sret指 令。
在本发明一实施例中,根据所述模式切换指令,将所述当前模式 切换至所述目标模式,包括:
根据所述模式切换指令,设置所述目标模式;
判断是否分页处理;以及
当分页处理时,根据第一预设页表项和第二预设页表项,修改所述 当前模式的返回地址为所述目标模式的虚拟地址,以完成所述当前模 式与所述目标模式之间的映射,其中,所述第一预设页表项为所述当 前模式的虚拟地址与物理地址的映射,所述第二预设页表项为所述目 标模式的虚拟地址与物理地址的映射;
根据所述目标模式,设置所述目标模式的第一返回地址;以及
根据所述模式切换指令以及所述目标模式的第一返回地址,切换至 所述目标模式。
在本发明一实施例中,根据所述模式切换指令,将所述当前模式 切换至所述目标模式,还包括:
当不分页处理时,根据所述目标模式,设置所述目标模式的第二返 回地址;以及
根据所述模式切换指令以及所述目标模式的第二返回地址,切换至 所述目标模式。
在本发明一实施例中,模式包括机器模式、用户模式以及管理员模 式。
在本发明一实施例中,当所述第一预设页表项和所述第二预设页表 项的映射关时,所述当前模式的物理地址与所述目标模式的物理地址 相等;或
当所述当前模式为机器模式时,所述当前模式的物理地址和所述目 标模式的物理地址相等;或
当所述当前模式为管理员模式且所述第一预设页表项和所述第二 预设页表项的映射开时,所述当前模式的物理地址与所述目标模式的 物理地址相等,且所述当前模式的虚拟地址比所述目标模式的虚拟地 址向下偏移1G;或
当所述当前模式为用户模式且所述第一预设页表项和所述第二预 设页表项的映射开时,所述当前模式的物理地址与所述目标模式的物 理地址相等,且所述当前模式的虚拟地址比所述目标模式的虚拟地址 向下偏移2G。
在本发明一实施例中,所述切换模式跳转指令包括JAL指令或者 JALR指令。
作为本发明的第二方面,本发明提供了一种电子设备,所述电子 设备包括:
处理器;以及
用于存储所述处理器可执行信息的存储器;
其中,所述处理器用于执行上述所述的RISC-V处理器验证中模 式切换的方法。
作为本发明的第三方面,本发明提供了一种计算机可读存储介质, 所述存储介质存储有计算机程序,所述计算机程序用于执行上述所述 的RISC-V处理器验证中模式切换的方法。
本发明提供的一种RISC-V处理器验证中模式切换的方法,包括: 设置切换参数,所述切换参数包括当前模式参数以及目标模式参数; 通过切换模式跳转指令跳转至切换模式段,并保存所述当前模式的返 回地址;根据所述切换参数,确定目标模式;根据所述目标模式以及所述当前模式,确定模式切换指令;根据所述模式切换指令,将所述 当前模式切换至所述目标模式。本发明根据切换参数确定当前模式和 目标模式,能够减少后续步骤中处理的复杂度,且在进行模式切换时, 根据参数选择不同的执行分支路径来切换模式,从而能够根据不同的 分支路径针对性的从不同的方式完成从不同的当前模式到不同的目标模式的切换,提高了验证的效率。
附图说明
图1为本发明实施例的一种RISC-V处理器验证中模式切换的方法 的流程示意图;
图2所示为本发明实施例的一种RISC-V处理器验证中模式切换的 方法中,模式之间的参数对应关系图;
图3为本发明实施例的另一种RISC-V处理器验证中模式切换的方 法的流程示意图;
图4为本发明实施例的另一种RISC-V处理器验证中模式切换的方 法的流程示意图;
图5为本发明实施例的另一种RISC-V处理器验证中模式切换的方 法的流程示意图;
图6所示为本发明实施例的电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的图,对本发明实施例中的技术方案进行 清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例, 而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没 有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的 范围。
图1所示本发明提供的一种RISC-V处理器验证中模式切换的方法 的流程示意图,如图1所示,该一种RISC-V处理器验证中模式切换 的方法,包括如下步骤:
步骤S101:设置切换参数,切换参数包括当前模式参数以及目标 模式参数;
具体的,切换参数可以采用预设方式进行设置,例如,第一模式 采用第一字符来表示,第二模式采用第二字符来表示,第三模式采用 第三字符来表示,第四模式采用第四字符来表示,并采用字符规则作 为切换模式的规则,例如,切换参数的表现形式可以为:字符串+第一字符+字符串+第二字符,表示:从第一模式切换至第二模式。
具体的,当模式包括用户模式(User Mode,简称U),管理员模 式(SupervisorMode,简称S)和机器模式(Machine Mode,简称M) 时,用户模式(U)可以用数字“0”表示,管理员模式(S)可以用数 字“1”表示,机器模式(M)可以用数字“3”来表示。模式切换用字 符“0X”表示。如图2所示:
当从管理员模式(S)切换至用户模式(U)时,切换参数可以为 “0X120”;
当从管理员模式(S)切换至机器模式(M)时,切换参数可以为 “0X123”;
当从用户模式(U)切换至机器模式(M)时,切换参数可以为 “0X023”;
当从用户模式(U)切换至管理员模式(S)时,切换参数可以为 “0X021”;
当从机器模式(M)切换至管理员模式(S)时,切换参数可以为 “0X321”;
当从机器模式(M)切换至用户模式(U)时,切换参数可以为 “0X320”。
步骤S102:通过切换模式跳转指令跳转至切换模式段,并保存当前 模式的返回地址;
在步骤S102中,保存当前模式的返回地址,是调用“切换模式”子 函数的跳转指令之后的指令(PC+4),保存在ra寄存器里,本申请的方案只适用于未实现或未打开压缩指令扩展的场景。设置返回地址, 可以在任何测试代码段执行模式切换,且保证完成模式切换后能返回 调用模式切换代码的位置继续执行。
可选的,切换模式跳转指令包括JAL指令或者JALR指令。
步骤S103:根据切换参数,确定目标模式;
确定目标模式,可以减少后续步骤中处理的复杂度。
步骤S104:根据目标模式以及当前模式,确定模式切换指令;
步骤S104即为根据切换参数确定目标模式和当前模式后,根据目 标模式和当前模式确定执行不同的切换模式所执行的切换分支路径, 即不同模式互相切换采用不同的切换指令来完成从不同当前模式到不 同模式的切换。
例如,当当前模式为用户模式(U)时,当目标模式为管理员模式 (S),即由用户模式切换至管理员模式时,采用一个模式切换指令, 即采用一个模式切换分支路径;当目标模式为机器模式(M)时,即由 用户模式切换至机器模式时,采用另外一个模式切换指令,即采用另 外一个模式切换分支路径。
步骤S105:根据模式切换指令,将当前模式切换至目标模式。
本发明提供的一种RISC-V处理器验证中模式切换的方法,包括: 设置切换参数,所述切换参数包括当前模式参数以及目标模式参数; 通过切换模式跳转指令跳转至切换模式段,并保存所述当前模式的返回地址;根据所述切换参数,确定目标模式;根据所述目标模式以及 所述当前模式,确定模式切换指令;根据所述模式切换指令,将所述 当前模式切换至所述目标模式。本发明根据切换参数确定当前模式和 目标模式,能够减少后续步骤中处理的复杂度,且在进行模式切换时, 根据参数选择不同的执行分支路径来切换模式,从而能够根据不同的 分支路径针对性的从不同的方式完成从不同的当前模式到不同的目标模式的切换,提高了验证的效率。
在本发明一实施例中,图3所示为本发明另外一实施例提供的 RISC-V处理器验证中模式切换的方法的流程示意图,如图3所示,步 骤S103(根据目标模式以及当前模式,确定模式切换指令),具体包 括如下步骤:
步骤S1031:根据当前模式和目标模式,判断目标模式是否为当前 模式的更高权限或者相等权限的模式;
即判断切换的模式是否为当前模式的更高权限的模式或者相等权 限的模式,当步骤S1031中的判断结果为是时,即目标模式为当前模 式的更高权限的模式或者相等权限的模式时,执行对应的模式切换指 令,即执行对应的模式切换方式。
步骤S1032:当目标模式是当前模式的更高权限或者相等权限的模 式时,确定模式切换指令为陷入指令。
步骤S1032即为标模式为当前模式的更高权限的模式或者相等权限 的模式时,采用陷入指令,即陷入方式来进行模式切换。
例如,当前模式为用户模式(U)时,目标模式为管理员模式(S) 时,由于管理员模式的权项比用户模式的权项更高等级,因此,在将 用户模式(U)切换至管理员模式(S)时,需要采用陷入的方式进行 切换。
具体的,可以将用户模式(U)先切换至机器模式(M),然后再将 机器模式(M)切换至管理员模式(S),此时,机器模式(M)则为用 户模式(U)切换至管理员模式(S)的整个模式切换过程中的一个临 时模式。
在本发明实施例中,架构选择一种陷入方式,来完成从低权限模式 到高权限模式的转换。
但是当前异常已经委托给比目标模式低的模式来处理,则再次选择 能到达目标模式的陷入方式来升级当前处理器所处的模式。
在本发明一实施例中,如图3所示,当步骤S1031中的判断结果为 否时,即目标模式不是当前模式的更高权限的模式且也不是当前模式 相等权限的模式时,步骤S103还包括以下步骤:
步骤S1033:当目标模式不是当前模式的更高权限的模式,且不是 当前模式的相等权项的模式时,确定模式切换指令为mret/sret指令。
即当目标模式不是当前模式的更高权限的模式且也不是当前模式 相等权限的模式时,采用mret指令,即mret方式完成当前模式至目 标模式的切换。
在本发明一实施例中,如图4所示,步骤S104(根据模式切换指 令,将当前模式切换至目标模式),具体包括如下步骤:
步骤S1041:根据模式切换指令,设置目标模式;
步骤S1042:判断是否分页处理;
当步骤S1042结果为是时,即分页,执行步骤S1043。
步骤S1043:当分页处理时,根据第一预设页表项和第二预设页表 项,修改当前模式的返回地址为目标模式的虚拟地址,以完成当前模 式与目标模式之间的映射,其中,第一预设页表项为当前模式的虚拟地址与物理地址的映射,第二预设页表项为目标模式的虚拟地址与物 理地址的映射;
具体的,当分页处理时,修改当前模式的返回地址为目标模式的虚 拟地址。执行“模式切换”代码前,执行的是虚拟地址,模式切换后, 需要返回到这段代码的后续代码,类似子函数调用。执行切换模式前后, 后续指令还在CPU里,这些指令以物理地址保存的,为了让指令继续执行,在不改物理地址的情况下,需要修改虚拟地址。
步骤S1044:根据目标模式,设置目标模式的第一返回地址。
此时,步骤S105(根据模式切换指令,将当前模式切换至目标模式) 具体包括:
步骤S1051:根据模式切换指令以及目标模式的第一返回地址,切 换至目标模式。
在本发明实施例中,当分页时,使用第一预设页表项和第二预设页 表项的映射关系来修改返回地址,保证返回后的物理地址和调用模式切 换时的物理地址连续。另外,相比完成模式切换前搬移指令到目标模式 能访问的位置,本发明实施例设计的映射关系,即第一预设页表项和第 二预设页表项的映射关系,使得模式切换更高效。在验证过程中会执行的修改指令时,由于第一预设页表项和第二预设页表项的映射关系,来 完成用户模式和管理员模式的映射,修改虚拟地址时只需修改很少的 位,即只需要修改很少位,不需要搬移指令,从而不需要维护多份指令 之间的一致性。
在本发明一实施例中,如图4所示,当不分页时,即当步骤S1042 的判断结果为否时,步骤S104(根据模式切换指令,将当前模式切换 至目标模式),具体包括如下步骤:
步骤S1046:根据目标模式,设置目标模式的第二返回地址;
此时,步骤S105(根据模式切换指令,将当前模式切换至目标模式) 具体包括:
步骤S1052:根据模式切换指令以及目标模式的第二返回地址,切 换至目标模式。
即,无论分页还是不分页,均会设置目标模式的返回地址,只是分 页或者不分页时,均需要设置目标模式的返回地址,只是设置的目标 模式的返回地址的设置方式不一样。
在本发明一实施例中,如上述所述,模式可以包括机器模式、用户 模式以及管理员模式。当不同的应用场景,第一预设页表项和第二预 设页表项之间的虚拟地址、物理地址之间的关系可以包括如下4个方 式:
(1)场景1:当第一预设页表项和第二预设页表项的映射关时,当 前模式的物理地址与目标模式的物理地址相等;
即,场景1为:映射关时,处理器当前执行指令的地址和物理地址 相等;
(2)场景2:当当前模式为机器模式时,当前模式的物理地址和目 标模式的物理地址相等;
即场景2为:处理器处于机器模式下,当前执行指令的地址和物理 地址相等;
(3)当当前模式为管理员模式且第一预设页表项和第二预设页表 项的映射开时,当前模式的物理地址与目标模式的物理地址相等,且 当前模式的虚拟地址比目标模式的虚拟地址向下偏移1G;
即场景3为:处理器处于管理员模式且映射开时,当前执行指令的 地址段对应与场景1和场景2中的物理地址段,指令的地址段比物理地址段向下偏移1G;
(4)场景4:当当前模式为用户模式且第一预设页表项和第二预设 页表项的映射开时,当前模式的物理地址与目标模式的物理地址相等, 且当前模式的虚拟地址比目标模式的虚拟地址向下偏移2G。
即场景4为:处理器处于用户模式且映射开时,当前执行指令的地 址段对应与场景1和场景2中的物理地址段,指令的地址段比物理地 址段向下偏移2G。
为了进一步说明RISC-V处理器验证中模式切换的方法,下面以具 体的模式切换为例,进行详细介绍。
如图5所示,当前模式为机器模式(M),目标模式为管理员模式 (S),切换参数为0X321,即a0==OX321,该RISC-V处理器验证中, 由机器模式切换至管理员模式的模式切换的方法包括如下步骤:
步骤S201:设置切换参数为0X321,即a0==OX321,其中,切换 参数里的OX321中的“3”代表当前模式为机器模式(M),“1”代 表目标模式为管理员模式(S)。
步骤S202:判断输入的切换参数a0是否为0X021;
当步骤S202的判断结果为是时,即说明当前的切换参数中的当前 模式为用户模式(U),目标模式为管理员模式(S),即目前所执行的并不是设置好的切换参数,而是执行的另外一个切换参数,那么需 要将目前所执行的切换参数回归至步骤S201中输入的切换参数,即需 要采用陷入的方式将机器模式(M)切换至管理员模式(S),即执行步骤S203-步骤S2093。
当步骤S202中的判断结果为否时,即切换参数a0不为0X021时, 即说明当前的切换参数中的当前模式不是用户模式(U),目标模式是 管理员模式(S),那当前模式必然是机器模式(M),目标模式是管 理员模式(S),那么则执行步骤S301-步骤S306。
具体的,如图5所示,步骤S203-步骤S2093如下:
步骤S203:跳转至下一个指令,即ecall;
步骤S204:输入陷入指令,即MM_Trap_Vector;
步骤S205:判断输入的切换参数a0==0X021;
当步骤S205中的判断结果为是时,执行步骤S206,
步骤S206:设置目标模式,即设置目标模式为管理员模式(S); 即Target_SM;
步骤S207:确定目标模式,即Set Rturn Mode;
步骤S208:判断是否需要分页,即是否MMU on?
当步骤S208中的判断结果为是时,执行步骤S2091-步骤2093.当 步骤S208中的判断结果为否时,执行步骤S2094-S2095。
即:步骤S2091:更改返回地址;
步骤S2092:设置第一返回地址;
步骤S2093:根据第一返回地址,执行异常返回。
步骤S2094:设置第二返回地址;
步骤S2095:根据第二返回地址,执行异常返回。
如图5所示,步骤S301-步骤S306具体包括:
步骤S301:判断输入的切换参数a0==0X321;
当步骤S301中的判断结果为是时,执行步骤S302,
步骤S302:确定目标模式,即确定目标模式为管理员模式(S), 即Set RturnMode;
步骤S303:判断是否需要分页,即是否MMU on?
当步骤S303中的判断结果为是时,执行步骤S304-步骤S306.当步 骤S303中的判断结果为否时,执行步骤S307-步骤S308。
即:步骤S304:更改返回地址;
步骤S305:设置第三返回地址;
步骤S306:根据第三返回地址,执行返回。
步骤S307:设置第四返回地址;
步骤S308:根据第四返回地址,执行返回。
下面,参考图6来描述根据本发明实施例的电子设备。图6所示为本 发明一实施例提供的电子设备的结构示意图。
如图6所示,电子设备600包括一个或多个处理器601和存储器602。
处理器601可以是中央处理单元(CPU)或者具有数据处理能力和/或 信息执行能力的其他形式的处理单元,并且可以控制电子设备600中的其 他组件以执行期望的功能。
存储器601可以包括一个或多个计算机程序产品,所述计算机程序产 品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易 失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/ 或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个 或多个计算机程序信息,处理器601可以运行所述程序信息,以实现上文 所述的本发明的各个实施例的RISC-V处理器验证中模式切换的方法或者 其他期望的功能。
在一个示例中,电子设备600还可以包括:输入装置603和输出装置 604,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
该输入装置603可以包括例如键盘、鼠标等等。
该输出装置604可以向外部输出各种信息。该输出装置604可以包括 例如显示器、通信网络及其所连接的远程输出设备等等。
当然,为了简化,图6中仅示出了该电子设备600中与本发明有关的 组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外, 根据具体应用情况,电子设备600还可以包括任何其他适当的组件。
除了上述方法和设备以外,本发明的实施例还可以是计算机程序产品, 其包括计算机程序信息,所述计算机程序信息在被处理器运行时使得所述 处理器执行本说明书中描述的根据本发明各种实施例的RISC-V处理器验 证中模式切换的方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编 写用于执行本发明实施例操作的程序代码,所述程序设计语言包括面向对 象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计 算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、 部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算 设备或服务器上执行。
此外,本发明的实施例还可以是计算机可读存储介质,其上存储有计 算机程序信息,所述计算机程序信息在被处理器运行时使得所述处理器执 行本说明书根据本发明各种实施例的RISC-V处理器验证中模式切换的方 法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。 可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以 包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件, 或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包 括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、 只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、 便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上 述的任意合适的组合。
以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是, 在本发明中提及的优点、优势、效果等仅是示例而非限制,不能认为这些 优点、优势、效果等是本发明的各个实施例必须具备的。另外,上述公开 的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节 并不限制本发明为必须采用上述具体的细节来实现。
本发明中涉及的器件、装置、设备、系统的方框图仅作为例示性的例 子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配 置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这 些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的 词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下 文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”, 且可与其互换使用。
还需要指出的是,在本发明的装置、设备和方法中,各部件或各步骤 是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等 效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或 者使用本发明。对这些方面的各种修改对于本领域技术人员而言是非常显 而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本发明 的范围。因此,本发明不意图被限制到在此示出的方面,而是按照与在此 发明的原理和新颖的特征一致的最宽范围。
以上所述仅为本发明创造的较佳实施例而已,并不用以限制本发明创 造,凡在本发明创造的精神和原则之内,所作的任何修改、等同替换等, 均应包含在本发明创造的保护范围之内。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流 程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储 于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的 实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体 (Read-Only Memory,ROM)或随机存储记忆体(RandomAccess Memory, RAM)等。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对 其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改, 或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相 应技术方案的本质脱离本发明实施例技术方案的精神和范围。
Claims (7)
1.一种RISC-V处理器验证中模式切换的方法,其特征在于,包括:
设置切换参数,所述切换参数包括当前模式参数以及目标模式参数;
通过切换模式跳转指令跳转至切换模式段,并保存所述当前模式的返回地址;
根据所述切换参数,确定目标模式;
根据所述目标模式以及所述当前模式,确定模式切换指令;
根据所述模式切换指令,将所述当前模式切换至所述目标模式;
根据所述模式切换指令,将所述当前模式切换至所述目标模式,包括:
根据所述模式切换指令,设置所述目标模式;
判断是否分页处理;以及
当分页处理时,根据第一预设页表项和第二预设页表项,修改所述当前模式的返回地址为所述目标模式的虚拟地址,以完成所述当前模式与所述目标模式之间的映射,其中,所述第一预设页表项为所述当前模式的虚拟地址与物理地址的映射,所述第二预设页表项为所述目标模式的虚拟地址与物理地址的映射;
根据所述目标模式,设置所述目标模式的第一返回地址;以及
根据所述模式切换指令以及所述目标模式的第一返回地址,切换至所述目标模式。
2.根据权利要求1所述的RISC-V处理器验证中模式切换的方法,其特征在于,根据所述模式切换指令,将所述当前模式切换至所述目标模式,还包括:
当不分页处理时,根据所述目标模式,设置所述目标模式的第二返回地址;以及
根据所述模式切换指令以及所述目标模式的第二返回地址,切换至所述目标模式。
3.根据权利要求1所述的RISC-V处理器验证中模式切换的方法,其特征在于,模式包括机器模式、用户模式以及管理员模式。
4.根据权利要求3所述的RISC-V处理器验证中模式切换的方法,其特征在于,
当所述第一预设页表项和所述第二预设页表项的映射关时,所述当前模式的物理地址与所述目标模式的物理地址相等;或
当所述当前模式为机器模式时,所述当前模式的物理地址和所述目标模式的物理地址相等;或
当所述当前模式为管理员模式且所述第一预设页表项和所述第二预设页表项的映射开时,所述当前模式的物理地址与所述目标模式的物理地址相等,且所述当前模式的虚拟地址比所述目标模式的虚拟地址向下偏移1G;或
当所述当前模式为用户模式且所述第一预设页表项和所述第二预设页表项的映射开时,所述当前模式的物理地址与所述目标模式的物理地址相等,且所述当前模式的虚拟地址比所述目标模式的虚拟地址向下偏移2G。
5.根据权利要求1所述的RISC-V处理器验证中模式切换的方法,其特征在于,所述切换模式跳转指令包括JAL指令或者JALR指令。
6.一种电子设备,其特征在于,所述电子设备包括:
处理器;以及
用于存储所述处理器可执行信息的存储器;
其中,所述处理器用于执行上述权利要求1-5任一项所述的RISC-V处理器验证中模式切换的方法。
7.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-5任一项所述的RISC-V处理器验证中模式切换的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111299500.6A CN114020330B (zh) | 2021-11-04 | 2021-11-04 | Risc-v处理器验证中模式切换的方法、电子设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111299500.6A CN114020330B (zh) | 2021-11-04 | 2021-11-04 | Risc-v处理器验证中模式切换的方法、电子设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114020330A CN114020330A (zh) | 2022-02-08 |
CN114020330B true CN114020330B (zh) | 2023-11-03 |
Family
ID=80060961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111299500.6A Active CN114020330B (zh) | 2021-11-04 | 2021-11-04 | Risc-v处理器验证中模式切换的方法、电子设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114020330B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6093213A (en) * | 1995-10-06 | 2000-07-25 | Advanced Micro Devices, Inc. | Flexible implementation of a system management mode (SMM) in a processor |
CN104036185A (zh) * | 2014-06-23 | 2014-09-10 | 常熟理工学院 | 基于虚拟化的宏内核操作系统载入模块权能隔离方法 |
CN104106044A (zh) * | 2012-02-07 | 2014-10-15 | 高通股份有限公司 | 使用经调用函数的地址的最低有效位来切换处理器模式 |
US9164754B1 (en) * | 2013-12-18 | 2015-10-20 | Amazon Technologies, Inc. | Runtime patching of native-code programs |
CN106897121A (zh) * | 2017-03-01 | 2017-06-27 | 四川大学 | 一种基于虚拟化技术的无代理客户机进程防护方法 |
CN109857608A (zh) * | 2018-12-27 | 2019-06-07 | 深圳云天励飞技术有限公司 | 微处理器验证方法、装置、电子设备及计算机可读存储介质 |
CN112035272A (zh) * | 2019-06-03 | 2020-12-04 | 华为技术有限公司 | 进程间通信的方法、装置以及计算机设备 |
CN112182524A (zh) * | 2020-08-28 | 2021-01-05 | 苏州浪潮智能科技有限公司 | 一种基于云平台的资源权限管理方法及其系统 |
CN112965779A (zh) * | 2021-03-26 | 2021-06-15 | 网易(杭州)网络有限公司 | 页面模式切换方法、装置和设备 |
CN113064697A (zh) * | 2021-04-01 | 2021-07-02 | 上海交通大学 | 利用多硬件特性加速微内核进程间通信的方法 |
CN113238832A (zh) * | 2021-05-20 | 2021-08-10 | 元心信息科技集团有限公司 | 虚拟处理器的调度方法、装置、设备及计算机存储介质 |
CN113474754A (zh) * | 2019-02-28 | 2021-10-01 | Arm有限公司 | 有条件退让给管理程序指令 |
CN113490924A (zh) * | 2019-02-22 | 2021-10-08 | 英特尔公司 | 用于运行时处理器验证的ept和影子页表之间的动态切换 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004058288A1 (de) * | 2004-12-02 | 2006-06-08 | Robert Bosch Gmbh | Vorrichtung und Verfahren zur Behebung von Fehlern bei einem Prozessor mit zwei Ausführungseinheiten |
DE602007006215D1 (de) * | 2006-09-06 | 2010-06-10 | Silicon Hive Bv | Datenverarbeitungsschaltung mit mehreren anweisungchaltung und scheduling-verfahren für eine solche datenschaltung |
US20080244538A1 (en) * | 2007-03-26 | 2008-10-02 | Nair Sreekumar R | Multi-core processor virtualization based on dynamic binary translation |
-
2021
- 2021-11-04 CN CN202111299500.6A patent/CN114020330B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6093213A (en) * | 1995-10-06 | 2000-07-25 | Advanced Micro Devices, Inc. | Flexible implementation of a system management mode (SMM) in a processor |
CN104106044A (zh) * | 2012-02-07 | 2014-10-15 | 高通股份有限公司 | 使用经调用函数的地址的最低有效位来切换处理器模式 |
US9164754B1 (en) * | 2013-12-18 | 2015-10-20 | Amazon Technologies, Inc. | Runtime patching of native-code programs |
CN104036185A (zh) * | 2014-06-23 | 2014-09-10 | 常熟理工学院 | 基于虚拟化的宏内核操作系统载入模块权能隔离方法 |
CN106897121A (zh) * | 2017-03-01 | 2017-06-27 | 四川大学 | 一种基于虚拟化技术的无代理客户机进程防护方法 |
CN109857608A (zh) * | 2018-12-27 | 2019-06-07 | 深圳云天励飞技术有限公司 | 微处理器验证方法、装置、电子设备及计算机可读存储介质 |
CN113490924A (zh) * | 2019-02-22 | 2021-10-08 | 英特尔公司 | 用于运行时处理器验证的ept和影子页表之间的动态切换 |
CN113474754A (zh) * | 2019-02-28 | 2021-10-01 | Arm有限公司 | 有条件退让给管理程序指令 |
CN112035272A (zh) * | 2019-06-03 | 2020-12-04 | 华为技术有限公司 | 进程间通信的方法、装置以及计算机设备 |
CN112182524A (zh) * | 2020-08-28 | 2021-01-05 | 苏州浪潮智能科技有限公司 | 一种基于云平台的资源权限管理方法及其系统 |
CN112965779A (zh) * | 2021-03-26 | 2021-06-15 | 网易(杭州)网络有限公司 | 页面模式切换方法、装置和设备 |
CN113064697A (zh) * | 2021-04-01 | 2021-07-02 | 上海交通大学 | 利用多硬件特性加速微内核进程间通信的方法 |
CN113238832A (zh) * | 2021-05-20 | 2021-08-10 | 元心信息科技集团有限公司 | 虚拟处理器的调度方法、装置、设备及计算机存储介质 |
Non-Patent Citations (1)
Title |
---|
嵌入式处理器的TLB电路设计;凌青;高沁伟;杨军;;电气电子教学学报(第01期);第57-60页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114020330A (zh) | 2022-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2842041B1 (en) | Data processing system and method for operating a data processing system | |
CN109643346B (zh) | 控制流完整性 | |
US9626170B2 (en) | Method and computer program product for disassembling a mixed machine code | |
WO2019169723A1 (zh) | 测试用例选择方法、装置、设备以及计算机可读存储介质 | |
US10394998B2 (en) | Acceleration of memory walking sequences during simulation | |
CN111191243A (zh) | 一种漏洞检测方法、装置和存储介质 | |
US8966068B2 (en) | Selective logging of network requests based on subsets of the program that were executed | |
CN111124921A (zh) | 内存越界的检测方法、装置、设备和存储介质 | |
CN116049835A (zh) | 汽车固件的安全漏洞检测方法、设备和存储介质 | |
US10628188B2 (en) | Disabling just-in-time translation for application functions | |
CN114020330B (zh) | Risc-v处理器验证中模式切换的方法、电子设备以及存储介质 | |
CN106502707B (zh) | 代码生成方法及装置 | |
KR101995176B1 (ko) | 프로그램 실행 컨텍스트 기반의 빅데이터를 활용한 역공학 방법 및 시스템 | |
CN111385661A (zh) | 语音控制全屏播放的方法及终端 | |
CN109165509A (zh) | 软件实时可信度量的方法、设备、系统及存储介质 | |
CN115795462A (zh) | Linux内核模块执行进程的检测方法及装置 | |
CN109408057A (zh) | 自动生成代码的方法、装置、介质和计算设备 | |
KR102324950B1 (ko) | 취약점을 효율적으로 탐지할 수 있는 아키텍처로 구성된 힙 영역 메모리 관리 방법 및 그 장치 | |
CN113282363A (zh) | 一种优化混合app的方法及装置 | |
CN112100058A (zh) | 一种接口规范检测方法及其装置 | |
CN111625302A (zh) | 函数耗时跟踪方法、设备和存储介质 | |
CN111274554B (zh) | 小程序的api调用方法、装置、设备和介质 | |
CN108881585B (zh) | 内置应用程序测试处理方法、装置、电子设备及存储介质 | |
CN110765462B (zh) | 一种操作控制方法、装置、计算系统及电子设备 | |
CN114154153A (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 |