RISC-V架构下物理内存保护机制的动态调度方法及系统技术方案

技术编号:37255572 阅读:22 留言:0更新日期:2023-04-20 23:32
本发明专利技术提供了一种RISC

【技术实现步骤摘要】
RISC

V架构下物理内存保护机制的动态调度方法及系统


[0001]本专利技术涉及计算机
,具体地,涉及一种RISC

V架构下物理内存保护机制的动态调度方法及系统。

技术介绍

[0002]RISC

V是一个基于精简指令集原则的开源指令集架构(Instruction Set Architecture,ISA)。RISC

V架构提供了三种特权模式:机器模式(Machine,M)、监管者模式(Supervisor,S)和用户模式(User,U),机器模式可以访问所有的内存地址,为了限制不可信的应用只能访问属于自己的内存区域,RISC

V提供了物理内存保护功能(Physical Memory Protection,PMP)。
[0003]PMP的配置借助于两类寄存器:配置寄存器pmpcfg和地址寄存器pmpaddr,一个配置寄存器和一个地址寄存器组成一个PMP表项(PMP entry)。其中配置寄存器保存了内存访问权限(读/写/执行)、地址计算方式、以及表项是否锁定(锁定后对于该表项的更新将不再生效)等信息,地址寄存器则保存了此PMP表项控制的内存地址区段。RISC

V架构本身提供的PMP配置寄存器和地址寄存器的数量是有限的(一般为8

16个),为了突破这样的限制,使一个应用可以分配更多数量的内存区域,本专利技术提出了一种物理内存保护机制的动态调度方法。
专利技术内
[0004]针对现有技术中的缺陷,本专利技术提供一种RISC

V架构下物理内存保护机制的动态调度方法及系统。
[0005]根据本专利技术提供的一种RISC

V架构下物理内存保护机制的动态调度方法及系统,所述方案如下:
[0006]第一方面,提供了一种RISC

V架构下物理内存保护机制的动态调度方法,所述方法包括:
[0007]步骤S1:访问物理内存保护机制动态调度支持下的应用内存;
[0008]步骤S2:使用LRU算法对当前生效的应用内存访问权限配置进行维护。
[0009]优选地,所述步骤S1包括:
[0010]步骤S1.1:通过安全监控器遍历保存应用内存访问权限配置,查找配置中是否含有包含地址A的内存访问权限配置;
[0011]步骤S1.2:设应用内存访问权限配置中具有包含地址A的配置,在应用配置的内存区域全部范围内计算出一个满足设定条件并且覆盖地址A的最大范围,并创建一个与此范围相对应的配置R,将R插入到LRU缓存中;
[0012]步骤S1.3:根据LRU缓存中的配置重新计算PMP表项,同时通过修改控制和状态寄存器的方式更新PMP配置;
[0013]步骤S1.4:将机器模式异常程序计数器移至应用访问出错的位置,应用再次访问
地址A并得到正确的访问结果。
[0014]优选地,所述步骤S1.1中查找配置中是否含有包含地址A的内存访问权限配置,如果没有找到,说明应用对地址A的访问是不合法的,打印错误信息提示用户并结束该应用的执行。
[0015]优选地,所述步骤S2包括:
[0016]步骤S2.1:应用被首次加载时,设当前架构支持的PMP配置最大数量为N1,LRU缓存的初始化根据不同情况进行处理;
[0017]步骤S2.2:对于内存重叠的区域需要根据执行权限调整LRU缓存顺序,具有更高执行权限的区域放在相对靠前的位置;
[0018]步骤S2.3:设访问出错的地址为A,由安全监控器根据应用的配置计算出一个包含地址A的最大范围,设得到的配置为R;
[0019]步骤S2.4:从LRU缓存尾部查找最后一个没有执行权限的配置,如果所有节点都具有执行权限则选择缓存尾部的配置,删除所选配置,将新配置R插入到缓存中;
[0020]步骤S2.5:如果步骤S2.3得到的配置R区域与LRU缓存中其他配置设为R1,具有重叠部分并且权限不同,则需要将具有更高权限的配置节点放置于相对靠前的位置;
[0021]步骤S2.6:将LRU缓存中保存的配置依次写入到PMP寄存器中。
[0022]优选地,假设应用配置中的PMP表项数量为M,所述步骤S2.1中LRU缓存的初始化包括以下两种不同情况:
[0023]1)如果M<N1,则将具有执行权限的区域依次插入LRU缓存,然后将其他区域的前N1‑
M项插入LRU缓存;
[0024]2)如果M>=N1,则将具有执行权限的区域的前N1项插入到LRU缓存中。
[0025]第二方面,提供了一种RISC

V架构下物理内存保护机制的动态调度系统,所述系统包括:
[0026]模块M1:访问物理内存保护机制动态调度支持下的应用内存;
[0027]模块M2:使用LRU算法对当前生效的应用内存访问权限配置进行维护。
[0028]优选地,所述模块M1包括:
[0029]模块M1.1:通过安全监控器遍历保存应用内存访问权限配置,查找配置中是否含有包含地址A的内存访问权限配置;
[0030]模块M1.2:设应用内存访问权限配置中具有包含地址A的配置,在应用配置的内存区域全部范围内计算出一个满足设定条件并且覆盖地址A的最大范围,并创建一个与此范围相对应的配置R,将R插入到LRU缓存中;
[0031]模块M1.3:根据LRU缓存中的配置重新计算PMP表项,同时通过修改控制和状态寄存器的方式更新PMP配置;
[0032]模块M1.4:将机器模式异常程序计数器移至应用访问出错的位置,应用再次访问地址A并得到正确的访问结果。
[0033]优选地,所述模块M1.1中查找配置中是否含有包含地址A的内存访问权限配置,如果没有找到,说明应用对地址A的访问是不合法的,打印错误信息提示用户并结束该应用的执行。
[0034]优选地,所述模块M2包括:
[0035]模块M2.1:应用被首次加载时,设当前架构支持的PMP配置最大数量为N1,LRU缓存的初始化根据不同情况进行处理;
[0036]模块M2.2:对于内存重叠的区域需要根据执行权限调整LRU缓存顺序,具有更高执行权限的区域放在相对靠前的位置;
[0037]模块M2.3:设访问出错的地址为A,由安全监控器根据应用的配置计算出一个包含地址A的最大范围,设得到的配置为R;
[0038]模块M2.4:从LRU缓存尾部查找最后一个没有执行权限的配置,如果所有节点都具有执行权限则选择缓存尾部的配置,删除所选配置,将新配置R插入到缓存中;
[0039]模块M2.5:如果模块M2.3得到的配置R区域与LRU缓存中其他配置设为R1,具有重叠部分并且权限不同,则需要将具有更高权限的配置节点放置于相对靠前的位置;
[0040]模块M2.6:将LRU本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种RISC

V架构下物理内存保护机制的动态调度方法,其特征在于,包括:步骤S1:访问物理内存保护机制动态调度支持下的应用内存;步骤S2:使用LRU算法对当前生效的应用内存访问权限配置进行维护。2.根据权利要求1所述的RISC

V架构下物理内存保护机制的动态调度方法,其特征在于,所述步骤S1包括:步骤S1.1:通过安全监控器遍历保存应用内存访问权限配置,查找配置中是否含有包含地址A的内存访问权限配置;步骤S1.2:设应用内存访问权限配置中具有包含地址A的配置,在应用配置的内存区域全部范围内计算出一个满足设定条件并且覆盖地址A的最大范围,并创建一个与此范围相对应的配置R,将R插入到LRU缓存中;步骤S1.3:根据LRU缓存中的配置重新计算PMP表项,同时通过修改控制和状态寄存器的方式更新PMP配置;步骤S1.4:将机器模式异常程序计数器移至应用访问出错的位置,应用再次访问地址A并得到正确的访问结果。3.根据权利要求2所述的RISC

V架构下物理内存保护机制的动态调度方法,其特征在于,所述步骤S1.1中查找配置中是否含有包含地址A的内存访问权限配置,如果没有找到,说明应用对地址A的访问是不合法的,打印错误信息提示用户并结束该应用的执行。4.根据权利要求1所述的RISC

V架构下物理内存保护机制的动态调度方法,其特征在于,所述步骤S2包括:步骤S2.1:应用被首次加载时,设当前架构支持的PMP配置最大数量为N1,LRU缓存的初始化根据不同情况进行处理;步骤S2.2:对于内存重叠的区域需要根据执行权限调整LRU缓存顺序,具有更高执行权限的区域放在相对靠前的位置;步骤S2.3:设访问出错的地址为A,由安全监控器根据应用的配置计算出一个包含地址A的最大范围,设得到的配置为R;步骤S2.4:从LRU缓存尾部查找最后一个没有执行权限的配置,如果所有节点都具有执行权限则选择缓存尾部的配置,删除所选配置,将新配置R插入到缓存中;步骤S2.5:如果步骤S2.3得到的配置R区域与LRU缓存中其他配置设为R1,具有重叠部分并且权限不同,则需要将具有更高权限的配置节点放置于相对靠前的位置;步骤S2.6:将LRU缓存中保存的配置依次写入到PMP寄存器中。5.根据权利要求4所述的RISC

V架构下物理内存保护机制的动态调度方法,其特征在于,假设应用配置中的PMP表项数量为M,所述步骤S2.1中LRU缓存的初始化包括以下两种不同情况:1)如果M<N1,则将具有执行权限的区域依次插入LRU缓存,然后将其他区域的前N1‑
M项插入LRU缓存;2)如果M>=N1,则将具有执行权限的区域的前N1项插入到LRU缓存中。6.一种RIS...

【专利技术属性】
技术研发人员:梁凉赵旭棹利文浩
申请(专利权)人:上海瓶钵信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1