[发明专利]基于MPU的内存访问方法、装置、电子设备及存储介质在审
申请号: | 202210437892.6 | 申请日: | 2022-04-25 |
公开(公告)号: | CN114780446A | 公开(公告)日: | 2022-07-22 |
发明(设计)人: | 彭志航;隋平礼 | 申请(专利权)人: | 四川凝思软件有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02;G06F12/06;G06F9/50 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 610021 四川省成都市锦江区工*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 mpu 内存 访问 方法 装置 电子设备 存储 介质 | ||
1.一种基于MPU的内存访问方法,多个MPU域与多个内存池一一对应,其特征在于,所述内存访问方法包括:
根据线程实际所需访问的内存段建立灵活页表,所述灵活页表中包括若干个灵活页,每个灵活页对应内存池组中的一个内存块,线程所需访问的内存段由一个或多个内存块组成;
根据线程实际所需访问的内存段,从所述灵活页表中获取对应的一个或多个灵活页放到所述线程的地址空间;
建立所述线程的使用灵活页链表,用于建立所述线程的地址空间与内存池映射关系;
所述线程通过获取所述地址空间中的一个或多个灵活页,并通过所述使用灵活页链表映射获取到所述内存池中的对应的内存段,实现对所述内存段的访问。
2.根据权利要求1所述的一种基于MPU的内存访问方法,其特征在于,所述根据线程实际所需访问的内存段建立灵活页表,包括:
为每个线程分配对应的MPU域,并设置相应的属性;
对于每一个MPU域对应的内存池,确定每一个线程需访问内存段;
将每个线程需访问的内存段映射分成若干个灵活页,每个灵活页对应一个内存块,多个内存块刚好组成内存段;
建立灵活页表,映射内存池组中的每一个内存块。
3.根据权利要求1所述的一种基于MPU的内存访问方法,所述灵活页包括对应内存块的基地址、对应内存块的长度,其特征在于,所述根据线程实际所需访问的内存段,从所述灵活页表中获取对应的一个或多个灵活页放到所述线程的地址空间,包括:
通过某个线程实际所述访问的内存段的基地址和长度,计算得到所述内存段对应的地址区间;
遍历所述灵活页表中每个灵活页的基地址和长度,将位于所述地址区间内的灵活页的基地址和长度存放在所述线程的地址空间。
4.根据权利要求1所述的一种基于MPU的内存访问方法,其特征在于,所述内存访问方法还包括:
线程工作完毕后,将所述地址空间中的灵活页清除,使得新线程可使用所述线程使用过的内存块。
5.根据权利要求1所述的一种基于MPU的内存访问方法,其特征在于,若在低优先级线程访问内存池的途中切换高优先级线程工作,所述内存访问方法还包括:
暂停低优先级线程继续访问内存段A,并保存所述低优先级线程通过灵活页访问内存池中对应内存段A的信息;
高优先级线程通过获取地址空间中的灵活页,通过使用灵活页链表映射访问内存池中内存段B;
其中,若内存段A和内存段B处于同一个内存池,使得高优先级线程访问内存段B不影响低优先级线程后续继续访问内存段A。
6.根据权利要求1所述的一种基于MPU的内存访问方法,其特征在于,所述内存访问方法还包括:
根据所述线程的所有MPU域对应的多个内存池,从所述灵活页表中获取对应于多个所述内存池的所有灵活页,建立总灵活页链表,用以映射所有域对应的内存池;
根据所述线程的使用的MPU域对应的内存池,从所述灵活页表中获取对应于所述内存池的所有灵活页,建立域灵活页链表,用以映射所述内存池;
根据权利要求6所述的一种基于MPU的内存访问方法,其特征在于,若因线程访问的内存段B超出所述线程的MPU域而导致处理器生成MemMangeFault故障,所述内存访问方法还包括:
若所述内存段B的地址存在于所述线程的总灵活页链表中,则查找对应的灵活页,并更新所述灵活页到所述线程对应的域灵活页链表中,以清除故障。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川凝思软件有限公司,未经四川凝思软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210437892.6/1.html,转载请声明来源钻瓜专利网。