CN115543532A - 缺页异常的处理方法、装置、电子设备以及存储介质 - Google Patents
缺页异常的处理方法、装置、电子设备以及存储介质 Download PDFInfo
- Publication number
- CN115543532A CN115543532A CN202211145194.5A CN202211145194A CN115543532A CN 115543532 A CN115543532 A CN 115543532A CN 202211145194 A CN202211145194 A CN 202211145194A CN 115543532 A CN115543532 A CN 115543532A
- Authority
- CN
- China
- Prior art keywords
- page
- memory
- accessed
- composite
- physical
- 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
Images
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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请公开了一种缺页异常的处理方法、装置、电子设备以及存储介质,涉及电子设备技术领域。该方法包括:在进程访问虚拟内存区域发生缺页异常的情况下,确定进程对应的待访问内存页,获取待访问内存页的页面大小,在物理内存中分配与待访问内存页的页面大小匹配的复合页面,其中,该复合页面由页表中多个连续的页表项对应的基准页面组成,该基准页面的页面大小小于待访问页面的页面大小,读取待访问内存页至物理内存中的复合页面。本申请通过页表中的多个连续的页表项对应的基准页面组成复合页面,以实现大页面的映射,极大地降低了缺页异常,以及提升了安卓应用的性能。
Description
技术领域
本申请涉及电子设备技术领域,更具体地,涉及一种缺页异常的处理方法、装置、电子设备以及存储介质。
背景技术
随着科学技术的发展,电子设备的使用越来越广泛,功能越来越多,已经成为人们日常生活中的必备之一。在电子设备的运行过程中,操作系统为了加快电子设备的运行速度,会将大量的数据缓存在电子设备的内存中,以便于快速读写缓存的数据。但是,电子设备的内存空间有限,将所有的数据都缓存在内存中会造成内存分配不足,导致电子设备的运行出现异常。
发明内容
鉴于上述问题,本申请提出了一种缺页异常的处理方法、装置、电子设备以及存储介质,以解决上述问题。
第一方面,本申请实施例提供了一种缺页异常的处理方法,所述方法包括:在进程访问虚拟内存区域发生缺页异常的情况下,确定所述进程对应的待访问内存页;获取所述待访问内存页的页面大小;在物理内存中分配与所述待访问内存页的页面大小匹配的复合页面,其中,所述复合页面由页表中多个连续的页表项对应的基准页面组成,所述基准页面的页面大小小于所述待访问内存页的页面大小;读取所述待访问内存页至所述物理内存中的所述复合页面。
第二方面,本申请实施例提供了一种缺页异常的处理装置,所述装置包括:待访问内存页确定模块,用于在进程访问虚拟内存区域发生缺页异常的情况下,确定所述进程对应的待访问内存页;页面大小获取模块,用于获取所述待访问内存页的页面大小;复合页面分配模块,用于在物理内存中分配与所述待访问内存页的页面大小匹配的复合页面,其中,所述复合页面由页表中多个连续的页表项对应的基准页面组成,所述基准页面的页面大小小于所述待访问内存页的页面大小;待访问内存页读取模块,用于读取所述待访问内存页至所述物理内存中的所述复合页面。
第三方面,本申请实施例提供了一种电子设备,包括存储器和处理器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时所述处理器执行上述方法。
第四方面,本申请实施例提供了一种计算机可读取存储介质,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行上述方法。
本申请实施例提供的缺页异常的处理方法、装置、电子设备以及存储介质,在进程访问虚拟内存区域发生缺页异常的情况下,确定进程对应的待访问内存页,获取待访问内存页的页面大小,在物理内存中分配与待访问内存页的页面大小匹配的复合页面,其中,该复合页面由页表中多个连续的页表项对应的基准页面组成,该基准页面的页面大小小于待访问页面的页面大小,读取待访问内存页至物理内存中的复合页面,从而通过页表中的多个连续的页表项对应的基准页面组成复合页面,以实现大页面的映射,极大地降低了缺页异常,以及提升了安卓应用的性能。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出了本申请一实施例提供的缺页异常的处理方法的流程示意图;
图2示出了本申请实施例提供的页面大小为64K的大页页表映射的示意图;
图3示出了本申请一实施例提供的缺页异常的处理方法的流程示意图;
图4示出了本申请一实施例提供的缺页异常的处理方法的流程示意图;
图5示出了本申请一实施例提供的缺页异常的处理方法的流程示意图;
图6示出了本申请的图5所示的缺页异常的处理方法的步骤S430的流程示意图;
图7示出了本申请一实施例提供的缺页异常的处理方法的流程示意图;
图8示出了本申请的图7所示的缺页异常的处理方法的步骤S550的一实施例的流程示意图;
图9示出了本申请的图7所示的缺页异常的处理方法的步骤S550的一实施例的流程示意图;
图10示出了本申请一实施例提供的缺页异常的处理装置的模块框图;
图11示出了本申请实施例用于执行根据本申请实施例的缺页异常的处理方法的电子设备的框图;
图12示出了本申请实施例的用于保存或者携带实现根据本申请实施例的缺页异常的处理方法的程序代码的存储单元。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
首先,对本申请实施例中涉及的名词进行介绍:
物理内存:是通过易失性存储器而获得的内存空间。当运行一个应用时,该应用对应的代码和数据存储于内存页中,物理内存用于存储该内存页。在应用运行时,中央处理器从物理内存中读取对应的内存页,实现代码和数据的运行,从而实现该应用的运行。
虚拟内存(Zram):是系统内存管理的一种技术,通过在非易失性存储器上划出一部分,并通过代码建立的一个内存空间。虚拟内存相对于物理内存,是物理内存的一个备用内存,运行一个应用,物理内存中没有存储或存储部分该应用对应的内存页,且物理内存剩余可用内存页达到物理内存规定的水位,由中央处理器根据预设条件确定需要放入虚拟内存中的内存页,即本次交换的内存页,中央处理器将本次交换的内存页从物理内存换入虚拟内存中,从而为新应用腾出物理内存空间,实现该应用的运行。其中,物理内存规定的水位是指物理内存设定剩余的可用内存页与物理内存总内存页之间的比率,如物理内存设定规定水位为40%,当物理内存剩余可用内存页的比率达到40%时,需要将物理内存中的一部分内存页放入虚拟内存中。
内存管理单元(memory management unit,MMU):处理器内部集成的用于将虚拟地址转换为物理地址的组件。
页:分页存储管理将进程的逻辑地址空间划分为若干页(面),并且对其编号,号数从0开始,每个页(面)的大小称为页面大小,且大小应为2的幂。
页表:内存中存放将虚拟地址转换为物理地址的转换表,还存放访问物理地址的权限。
物理块:将物理内存的物理地址空间划分为若干块,称为物理块,物理块与页(面)一一对应。
页表项:在页表中,一个页号与其对应的物理块号称之为一个页表项。
转换旁路缓存(translation lookaside buffer,TLB):转换旁路缓存,用于缓存最近使用的页表条目。
TLB miss:内存管理单元查找虚拟地址对应的物理地址的时候,首先从TLB中查找页表条目,如果TLB中没有查找到,则称为TLB miss。
缺页异常:是指在取指令或者数据的时候,内存管理单元需要将虚拟地址转换为物理地址,如果虚拟地址没有对应的物理地址或者没有访问权限,中央处理器将生成缺页异常。
大页面:安卓系统中使用4K的常规小页面,如果使用大于4K的页面粒度,如64K、2M等这些架构支持的粒度页面称为大页面。
匿名页:没有后备文件支持的物理页面叫做匿名页面,如程序的堆区和栈区等。
文件页:与磁盘文件存在映射关系的内存页(有文件背景的页面),例如进程代码段、文件的映射页等。
lru链表:Linux中的内存回收算法中,使用lru链表来存放最近最少使用的页面,加入页面的时候从链表头加入,回收页面的时候从链表尾删除。
其中,目前ARM服务器领域支持全栈64K分页。一方面,服务器领域采用大页预留技术hugetlbfs,为虚拟机和userspace驱动预留大块大页内存。另一方面,服务器也采用透明大页(THP)技术为page cache(页高速缓冲)和匿名页动态collapse(踏缩)大页。
在安卓系统中,内存资源有限,目前只支持4K的页粒度,如果使用4K粒度会导致较多的TLB miss和缺页异常,从而使得大内存的应用性能降低。如果直接使用64K的页粒度,需要安卓上层的各种应用生态都要支持,实现难度大。如果使用hugetlbfs技术开机预留大块内存,考虑大页对齐问题,会造成大量的内存浪费。如果使用透明大页(THP)技术,目前只支持2M的大页,而且大页会随时有可能被分裂为小页,从而造成较大的内存浪费和中央处理器的高负载。
针对上述问题,发明人经过长期的研究发现,并提出了本申请实施例提供的缺页异常的处理方法、装置、电子设备以及存储介质,通过页表中的多个连续的页表项对应的基准页面组成复合页面,以实现大页面的映射,极大地降低了缺页异常,以及提升了安卓应用的性能。其中,具体的缺页异常的处理方法在后续的实施例中进行详细的说明。
请参阅图1,图1示出了本申请一实施例提供的缺页异常的处理方法的流程示意图。该方法用于通过页表中的多个连续的页表项对应的基准页面组成复合页面,以实现大页面的映射,极大地降低了缺页异常,以及提升了安卓应用的性能。在具体的实施例中,该方法应用于如图8所示的缺页异常的处理装置200以及配置由缺页异常的处理装置200的电子设备100(图9)。下面将以电子设备为例,说明本实施例的具体流程,当然,可以理解的,本实施例所应用的电子设备可以包括智能手机、平板电脑、穿戴式电子设备等,在此不做限定。下面将针对图1所示的流程进行详细的阐述,所述缺页异常的处理方法具体可以包括以下步骤:
步骤S110:在进程访问虚拟内存区域发生缺页异常的情况下,确定所述进程对应的待访问内存页。
其中,当进程需要访问某一页时,操作系统通过查看页表核对此项是否在物理内存中,若不在物理内存中,就触发了缺页异常(Page Fault)。可以理解的是,进程在实际需要某个虚拟内存区(Virtual Memory Area,VMA)的数据之前,虚拟地址和物理内存之间的关联不会建立,也就是还没有建立虚拟地址与物理内存中页帧的关联映射,如果进程访问的虚拟地址尚未与物理内存中的页帧关联映射,会引发一次缺页异常。
在本实施例中,在进程访问虚拟内存区域发生缺页异常的情况下,则可以确定该进程对应需要访问的内存页,作为待访问内存页。在一些实施方式中,在进程访问虚拟内存区域的情况下,可以对是否发生缺页异常进行检测,若检测到发生缺页异常的情况下,则可以确定该进程对应的待访问内存页。作为一种可实施的方式,在进程访问虚拟内存区域的情况下,可以获取该进程需要访问的内存页,并通过查看页表的方式判断该内存页是否在物理内存中,若通过查看页表的方式确定该内存页不在物理内存中,则可以确定该进程访问虚拟内存区域发声缺页异常,可以确定该进程对应的待访问内存页。
在一些实施方式中,在进程访问虚拟内存区域发生缺页异常的情况下,可以判断该进程访问的虚拟地址是否为合法的虚拟地址,其中,若确定该进程访问的虚拟地址为合法的虚拟地址,则可以确定该进程对应的待访问内存页。
作为一种可实施的方式,进程可以包括电子设备欲运行的应用进程,待访问内存页可以包括该应用进程的代码。
步骤S120:获取所述待访问内存页的页面大小。
在本实施例中,在确定待访问内存页的情况下,则可以获取该待访问内存页的页面大小。作为一种可实施的方式,在确定该待访问内存页的情况下,则可以对该待访问内存页的页面结构进行分析,以获得该待访问内存页的页面大小。
在一些实施方式中,该待访问内存页可以为大页面,即,该待访问内存页的页面大小可以大于4K,例如,该待访问内存页的页面大小可以为64K,2M等,在此不做限定。
步骤S130:在物理内存中分配与所述待访问内存页的页面大小匹配的复合页面,其中,所述复合页面由页表中多个连续的页表项对应的基准页面组成,所述基准页面的页面大小小于所述待访问内存页的页面大小。
在一些实施方式中,在ARM平台上,可以通过最后一级页表(多级页表中包括访问权限、连续位等页表属性的页表)的多个连续的页表项来实现大页面,其中,该多个页表项需要设置连续位。当处理器的内存管理单元遍历内存中的页表的时候,访问到该多个页表项中的任何一个页表项,发现该页表项设置了连续标志位,便可以将该多个页表项合并后填充到一个TLB表项中,后面访问任何一个大页面中的基准页面均可以命中该TLB表项,从而可以提升TLB表项的命中率。其次,当发生缺页异常时也可以实现大页面的整体分配,根据内存局部性原理,处理器会大概率的访问这多个基准页面,相较于原来使用基准页面映射页表时需要发生多次缺页异常的情况,通过分配大页面的方式可以只发生一次缺页异常即可。
作为一种可实施的方式,对于安卓系统而言,安卓系统中使用的都是4K的常规小页面,因此,该基准页面可以为页面大小为4K的页面。那么,相应地,大页面可以是由多个连续的页表项对应的页面大小为4K的基准页面组成。例如,若大页面是由16个连续的页表项对应的页面大小为4K的基准页面组成,则该大页面可以为页面大小为64K的页面(如图2所示);若大页面是由256个连续的页表项对应的页面大小为4K的基准页面组成,则该大页面可以为页面大小为2M的页面等,在此不做限定。
在本实施例中,在确定该待访问内存页的页面大小的情况下,则可以在该物理内存中,分配与该待访问内存页的页面大小匹配的复合页面(大页面),其中,该复合页面由页表中多个连续的页表项对应的基准页面组成,该基准页面的页面大小小于该待访问内存页的页面大小。可以理解的是,多个连续的页表项对应的基准页面的块号(物理块的号)可以是连续的,也可以是不连续的,在此不做限定。
作为一种方式,与待访问内存页的页面大小匹配的复合页面可以包括:待访问内存页的页面大小与复合页面的页面大小一致。例如,假设待访问内存页的页面大小为64K,那么,复合页面的页面大小也为64K,此时,该复合页面可以由页表中16个连续的页表项对应的基准页面(页面大小为4K的页面)组成,例如,该复合页面可以由页表中页号为0~15的16个连续的页表项对应的基准页面组成。
作为又一种方式,与待访问内存页的页面大小匹配的复合页面可以包括:待访问内存页的页面大小小于复合页面的页面大小,且待访问内存页的页面大小与复合页面的页面大小的差值小于差值阈值。例如,假设待访问内存页的页面大小为64K,那么,复合页面的页面大小为128K,此时,该复合页面可以由页表中32个连续的页表项对应的基准页面(页面大小为4K的页面)组成,例如,该复合页面可以由页表中页号为0~31的32个连续的页表项对应的基准页面组成。
步骤S140:读取所述待访问内存页至所述物理内存中的所述复合页面。
在本实施例中,在物理内存中分配复合页面的情况下,则可以整体读取该待访问内存至该物理内存中的复合页面,以满足处理器在物理内存中查找该待访问内存页,保证进程的正常运行。并且,相较于使用小页(如4K粒度)的方式,可以极大地降低了TLB miss和缺页异常,提升了安卓应用的性能。相比于使用hugetlb的技术实现大页,避免了对齐和预留导致的内存浪费。相比于透明大页技术实现大页(目前只支持2M的大页),也避免了采用2M对齐导致的浪费,最主要的是降低了大页的分裂和踏缩导致的中央处理器的负载高。
例如,假设该待访问内存页的页面大小为64K,则在物理内存中分配匹配该64K页面大小的复合页面的情况下,则可以将页面大小为64K的复合页面整体读取到物理内存中。
本申请一实施例提供的缺页异常的处理方法,在进程访问虚拟内存区域发生缺页异常的情况下,确定进程对应的待访问内存页,获取待访问内存页的页面大小,在物理内存中分配与待访问内存页的页面大小匹配的复合页面,其中,该复合页面由页表中多个连续的页表项对应的基准页面组成,该基准页面的页面大小小于待访问页面的页面大小,读取待访问内存页至物理内存中的复合页面,从而通过页表中的多个连续的页表项对应的基准页面组成复合页面,以实现大页面的映射,极大地降低了缺页异常,以及提升了安卓应用的性能。
请参阅图3,图3示出了本申请一实施例提供的缺页异常的处理方法的流程示意图。下面将针对图3所示的流程进行详细的阐述,所述缺页异常的处理方法具体可以包括以下步骤:
步骤S210:在进程访问虚拟内存区域发生缺页异常的情况下,确定所述进程对应的待访问内存页。
步骤S220:获取所述待访问内存页的页面大小。
步骤S230:在物理内存中分配与所述待访问内存页的页面大小匹配的复合页面,其中,所述复合页面由页表中多个连续的页表项对应的基准页面组成,所述基准页面的页面大小小于所述待访问内存页的页面大小。
步骤S240:读取所述待访问内存页至所述物理内存中的所述复合页面。
其中,步骤S210-步骤S240的具体描述请参阅步骤S110-步骤S140,在此不再赘述。
步骤S250:确定所述待访问内存页在所述虚拟内存区域对应的虚拟地址,以及所述待访问内存页在所述物理内存对应的物理地址。
在本实施例中,在将待访问内存页添加至物理内存中的情况下,则可以确定该待访问内存页在虚拟内存区域对应的虚拟地址,以及确定该待访问内存页在该物理内存对应的物理地址。
在一些实施方式中,在将待访问内存页添加至物理内存中之后,可以先确定该待访问内存页在虚拟内存区域对应的虚拟地址,然后再确定待访问内存页在物理内存对应的物理地址;可以先确定该待访问内存页在物理内存对应的物理地址,然后再确定待访问内存页在虚拟内存区域对应的虚拟地址;可以同时确定该待访问内存页在物理内存对应的物理地址,以及待访问内存页在虚拟内存区域对应的虚拟地址。
步骤S260:建立所述虚拟地址和所述物理地址之间的页表映射。
在本实施例中,在确定待访问内存页的虚拟地址和待访问内存页的物理地址的情况下,则可以建立该虚拟地址和物理地址之间的页表映射,基于此,可以防止后续再次访问这段虚拟内存的时候由于没有映射而再次发生缺页异常的问题。
可以理解的是,在建立了虚拟地址和物理地址之间的页表映射的情况下,打开一个进程发一个指令,会生成一个虚拟地址,该虚拟地址中有虚拟页号和页偏移量,由虚拟页号和内存管理单元中的页表寄存器(表示页表在主存当中的起始位置)做一个偏移,就可以找到与这个虚拟页号对应的页表项在物理内存当中的物理地址。如果有效位为1的话,表示当前物理内存中有这个待访问内存页,那么可以将这个页表项取出来,也就是知道了物理页号,再用这个物理页号与虚拟地址中的页内偏移相拼接,这样就得到物理地址,从而实现了虚拟地址向物理地址转化的过程。如果有效位为0的话,表示当前物理内存中没有这个待访问内存页,这个时候产生一个缺页异常,请求操作系统将所需要的待访问内存页调换进物理内存。
本申请一实施例提供的缺页异常的处理方法,在进程访问虚拟内存区域发生缺页异常的情况下,确定进程对应的待访问内存页,获取待访问内存页的页面大小,在物理内存中分配与待访问内存页的页面大小匹配的复合页面,其中,该复合页面由页表中多个连续的页表项对应的基准页面组成,该基准页面的页面大小小于待访问页面的页面大小,读取待访问内存页至物理内存中的复合页面,确定待访问内存页在虚拟内存区域对应的虚拟地址,以及待访问内存页在物理内存对应的物理地址,建立虚拟地址和物理地址之间的页表映射。相较于图1所示的缺页异常的处理方法,本实施例还建立虚拟地址和物理地址的映射关系,防止后续再次访问该待访问内存页的时候,由于没有映射而再次发生缺页异常的情况。
请参阅图4,图4示出了本申请一实施例提供的缺页异常的处理方法的流程示意图。下面将针对图4所示的流程进行详细的阐述,所述缺页异常的处理方法具体可以包括以下步骤:
步骤S310:在进程访问虚拟内存区域发生缺页异常的情况下,确定所述进程对应的待访问内存页。
步骤S320:获取所述待访问内存页的页面大小。
步骤S330:在物理内存中分配与所述待访问内存页的页面大小匹配的复合页面,其中,所述复合页面由页表中多个连续的页表项对应的基准页面组成,所述基准页面的页面大小小于所述待访问内存页的页面大小。
步骤S340:读取所述待访问内存页至所述物理内存中的所述复合页面。
其中,步骤S310-步骤S340的具体描述请参阅步骤S110-步骤S140,在此不再赘述。
步骤S350:将所述待访问内存页加入所述物理内存的最近最少使用LRU链表。
在本实施例中,在将待访问内存页加入物理内存的情况下,则可以将待访问内存页加入该物理内存的最近最少使用LRU链表。
其中,虽然无法知道将来要使用的页面情况,但是可以知道过去使用页面的情况,LRU链表的设置可以将最近最久未使用的页面换出。作为一种方式,为了实现页面的合理缓存,需要在内存中维护一个所有页面的LRU链表,当一个页面被访问时,将这个页面移到LRU链表的表头,这样就能保证LRU链表表尾的页面是最近最久未访问的。
本申请一实施例提供的缺页异常的处理方法,在进程访问虚拟内存区域发生缺页异常的情况下,确定进程对应的待访问内存页,获取待访问内存页的页面大小,在物理内存中分配与待访问内存页的页面大小匹配的复合页面,其中,该复合页面由页表中多个连续的页表项对应的基准页面组成,该基准页面的页面大小小于待访问页面的页面大小,读取待访问内存页至物理内存中的复合页面,将待访问内存页加入物理内存的LRU链表,以保证后续电子设备的内存回收机制的正常进行。
请参阅图5,图5示出了本申请一实施例提供的缺页异常的处理方法的流程示意图。下面将针对图5所示的流程进行详细的阐述,所述缺页异常的处理方法具体可以包括以下步骤:
步骤S410:在进程访问虚拟内存区域发生缺页异常的情况下,确定所述进程对应的待访问内存页。
步骤S420:获取所述待访问内存页的页面大小。
其中,步骤S410-步骤S420的具体描述请参阅步骤S110-步骤S120,在此不再赘述。
步骤S430:确定与所述待访问内存页的页面大小对应的目标对齐条件。
在本实施例中,在获取到该待访问内存页的页面大小的情况下,则可以确定与该待访问内存页的页面大小对应的对齐条件,并将与该待访问内存页的页面大小对应的对齐条件作为目标对齐条件。
在一些实施方式中,电子设备可以预先设置并存储有第一映射关系,其中,该第一映射关系可以包括多个页面大小、多个对齐条件以及多个页面大小和多个对齐条件之间的对应关系,该多个页面大小和多个对齐条件之间的对应关系可以包括一个对齐条件对应一个页面大小。因此,在本实施例中,在获取到待访问内存页的页面大小的情况下,则可以基于该第一映射关系,确定与该待访问内存页的页面大小存在对应关系的对齐条件,作为目标对齐条件。
作为一种可实施的方式,假设待访问内存页的页面大小为64K,则可以确定的目标对齐条件可以为64K的对齐条件。假设待访问内存页的页面大小为128K,则可以确定目标对齐条件可以为128K对齐条件。
请参阅图6,图6示出了本申请的图5所示的缺页异常的处理方法的步骤S430的流程示意图。下面将针对图6所示的流程进行详细的阐述,所述方法具体可以包括以下步骤:
步骤S431:获取待访问内存页的页面类型,其中,所述页面类型包括文件页类型或者匿名页类型。
在本实施例中,在确定待访问内存页的情况下,则可以获取该待访问内存页的页面类型,其中,该待访问内存页的页面类型可以包括文件页类型或者匿名页类型。作为一种可实施的方式,在确定该待访问内存页的情况下,则可以对该待访问内存页的页面结构进行分析,以获得该待访问内存页的页面类型。
在一些实施方式中,该待访问内存页的页面类型可以为文件页类型,或者,该待访问内存页的页面类型可以为匿名页类型。因此,在确定待访问内存页的情况下,则可以判断该待访问内存页的页面类型是否与文件页类型的匹配,以及判断该待访问内存页的页面类型是否与匿名页类型匹配。其中,在确定该待访问内存页的页面类型与文件页类型匹配的情况下,可以确定该待访问内存页的页面类型为文件页类型,在确定该待访问内存页的页面类型与匿名页类型匹配的情况下,可以确定该待访问内存页的页面类型为匿名页类型。
步骤S432:确定与所述待访问内存页的页面大小和所述待访问内存页的页面类型对应的目标对齐条件。
在本实施例中,在获取到该待访问内存页的页面大小和该待访问内存页的页面类型的情况下,则可以确定与该待访问内存页的页面大小和该待访问内存页的页面类型对应的对齐条件,并将与待访问内存页的页面大小和该待访问内存页的页面类型对应的对齐条件作为目标对齐条件。
在一些实施方式中,电子设备可以预先设置并存储有第二映射关系,其中,该第二映射关系可以包括多个页面大小、多个页面类型、多个对齐条件以及多个页面大小、多个页面类型和多个对齐条件之间的对应关系,该多个页面大小、多个页面类型和多个对齐条件之间的对应关系可以包括一个对齐条件对应一个页面大小和一个页面类型。因此,在本实施例中,在获取到待访问内存页的页面大小和待访问内存页的页面类型的情况下,则可以基于该第二映射关系,确定与该待访问内存页的页面大小和该待访问内存页的页面类型存在对应关系的对齐条件,作为目标对齐条件。
作为一种可实施的方式,假设待访问内存页的页面大小为64K,待访问内存页的页面类型为文件页类型,则可以确定的目标对齐条件可以为针对文件页的64K的对齐条件。假设待访问内存页的页面大小为64K,待访问内存页的页面类型为匿名页类型,则可以确定的目标对齐条件可以为针对匿名页的64K的对齐条件。
作为一种可实施的方式,对于页面大小为64K的匿名页类型的待访问内存页,需要在发生缺页的地址对齐64K边界,且对齐之后的待访问内存页(大页)起始地址不能小于虚拟内存区域的起始地址,对齐之后的待访问内存页(大页)结束地址不能大于虚拟内存区域的结束地址。
作为又一种可实施的方式,对于页面大小为64K的文件页类型的待访问内存页,需要在发生缺页的地址对齐64K边界,且对齐之后的待访问内存页(大页)起始地址不能小于虚拟内存区域的起始地址,对齐之后的待访问内存页(大页)结束地址不能大于虚拟内存区域的结束地址,同时还需要映射文件的偏移也满足对齐条件。
步骤S440:若所述待访问内存页满足所述目标对齐条件,则在所述物理内存中分配与所述待访问内存页的页面大小匹配的复合页面,其中,所述复合页面由页表中多个连续的页表项对应的基准页面组成,所述基准页面的页面大小小于所述待访问内存页的页面大小。
在一些实施方式中,在确定目标对齐条件的情况下,则可以将该待访问内存页与目标对齐条件进行比较,以判断该待访问内存页是否满足目标对齐条件。其中,在确定该待访问内存页满足目标对齐条件的情况下,则可以在物理内存页中分配与待访问内存页的页面大小匹配的复合页面。其中,在确定该待访问内存页不满足目标对齐条件的情况下,则退回普通的基准页面(4K的页)粒度的缺页处理流程进行处理。
步骤S450:读取所述待访问内存页至所述物理内存中的所述复合页面。
其中,步骤S450的具体描述请参阅步骤S140,在此不再赘述。
本申请一实施例提供的缺页异常的处理方法,在进程访问虚拟内存区域发生缺页异常的情况下,确定进程对应的待访问内存页,获取待访问内存页的页面大小,确定与待访问内存页的页面大小对应的目标对齐条件,若待访问内存页满足目标对齐条件,则在物理内存中分配与待访问内存页的页面大小匹配的复合页面,其中,该复合页面由页表中多个连续的页表项对应的基准页面组成,该基准页面的页面大小小于待访问页面的页面大小,读取待访问内存页至物理内存中的复合页面。相较于图1所示的缺页异常的处理方法,本实施例还在待访问内存页满足对应的目标对齐条件的情况下分配复合页面,可以有效的降低缺页异常以及提升安卓系统的性能。
请参阅图7,图7示出了本申请一实施例提供的缺页异常的处理方法的流程示意图。下面将针对图7所示的流程进行详细的阐述,所述缺页异常的处理方法具体可以包括以下步骤:
步骤S510:在进程访问虚拟内存区域发生缺页异常的情况下,确定所述进程对应的待访问内存页。
步骤S520:获取所述待访问内存页的页面大小。
步骤S530:在物理内存中分配与所述待访问内存页的页面大小匹配的复合页面,其中,所述复合页面由页表中多个连续的页表项对应的基准页面组成,所述基准页面的页面大小小于所述待访问内存页的页面大小。
其中,步骤S510-步骤S530的具体描述请参阅步骤S110-步骤S130,在此不再赘述。
步骤S540:获取所述待访问内存页的页面类型,其中,所述页面类型包括文件页类型或者匿名页类型。
在本实施例中,在确定待访问内存页的情况下,则可以获取该待访问内存页的页面类型,其中,该待访问内存页的页面类型可以包括文件页类型或者匿名页类型。作为一种可实施的方式,在确定该待访问内存页的情况下,则可以对该待访问内存页的页面结构进行分析,以获得该待访问内存页的页面类型。
在一些实施方式中,该待访问内存页的页面类型可以为文件页类型,或者,该待访问内存页的页面类型可以为匿名页类型。因此,在确定待访问内存页的情况下,则可以判断该待访问内存页的页面类型是否与文件页类型的匹配,以及判断该待访问内存页的页面类型是否与匿名页类型匹配。其中,在确定该待访问内存页的页面类型与文件页类型匹配的情况下,可以确定该待访问内存页的页面类型为文件页类型,在确定该待访问内存页的页面类型与匿名页类型匹配的情况下,可以确定该待访问内存页的页面类型为匿名页类型。
步骤S550:基于所述待访问内存页的页面类型,读取所述待访问内存页至所述物理内存中的所述复合页面。
在本实施例中,在获取到待访问内存页的页面类型的情况下,则可以基于该待访问内存页的页面类型,读取该待访问内存页至物理内存中。
作为一种方式,若获取到的该待访问内存页的页面类型为文件页类型,则可以基于文件页类型,读取待访问内存页至物理内存中的复合页面。
作为又一种方式,若获取到的该待访问内存页的页面类型为匿名页类型,则可以基于匿名页类型,读取待访问内存页至物理内存中的复合页面。
请参阅图8,图8示出了本申请的图7所示的缺页异常的处理方法的步骤S550的一实施例的流程示意图。在本实施例中,待访问内存页的页面类型为文件页类型,下面将针对图8所示的流程进行详细的阐述,所述方法具体可以包括以下步骤:
步骤S551A:将所述复合页面加入所述物理内存中的页高速缓冲。
步骤S552A:读取所述待访问内存页至所述页高速缓冲。
在一些实施方式中,若待访问内存页的页面类型为文件页类型,则可以将复合页面加入物理内存中的页高速缓冲(page cache),读取待访问内存页至page cache,然后映射到虚拟内存区域。
作为一种可实施的方式,当待访问内存页的页面类型为文件页类型时,则在访问的虚拟内存区域时,可以首先查看物理内存的page cache中是否有需要的文件页面,如果有,则直接建立页表映射关系即可,如果没有,则发生IO操作读取文件的相关页面到物理内存中的page cache,然后和文件页面建立页表映射关系。
请参阅图9,图9示出了本申请的图7所示的缺页异常的处理方法的步骤S550的一实施例的流程示意图。在本实施例中,待访问内存页的页面类型为匿名页类型,下面将针对图9所示的流程进行详细的的阐述,所述方法具体可以包括以下步骤:
步骤S551B:将所述复合页面加入所述物理内存的交换高速缓冲。
步骤S552B:读取所述待访问内存页至所述交换高速缓冲。
在一些实施方式中,若待访问内存页的页面类型为匿名页类型,则可以将复合页面接入物理内存中的交换高速缓冲(swap cache),读取待访问内存页至swap cache,然后映射到虚拟内存区域。
作为一种可实施的方式,当待访问内存页的页面类型为匿名页类型时,则在访问虚拟内存区域时,可以首先查看物理内存中的swap cache中是否有虚拟的匿名页面,如果有,则直接建立页表映射关系即可,如果没有,则发生IO操作读取交换分区或者交换文件的相关页面到物理内存中的swap cache,然后和匿名页面建立页表映射关系。
本申请一实施例提供的缺页异常的处理方法,在进程访问虚拟内存区域发生缺页异常的情况下,确定进程对应的待访问内存页,获取待访问内存页的页面大小,在物理内存中分配与待访问内存页的页面大小匹配的复合页面,其中,该复合页面由页表中多个连续的页表项对应的基准页面组成,该基准页面的页面大小小于待访问页面的页面大小,获取待访问内存页的页面类型,其中,该页面类型包括文件页类型或者匿名页类型,基于该待访问内存页的页面类型,读取待访问内存页至物理内存中的复合页面。相较于图1所示的缺页异常的处理方法,本实施例还根据待访问内存页的页面类型,读取待访问内存页至物理内存中,以提升内存页读取的成功率。
请参阅图10,图10示出了本申请一实施例提供的缺页异常的处理装置的模块框图。下面将针对图10所示的框图进行阐述,所述缺页异常的处理装置200包括:待访问内存页确定模块210、页面大小获取模块220、复合页面分配模块230以及待访问内存页读取模块240,其中:
待访问内存页确定模块210,用于在进程访问虚拟内存区域发生缺页异常的情况下,确定所述进程对应的待访问内存页。
页面大小获取模块220,用于获取所述待访问内存页的页面大小。
复合页面分配模块230,用于在物理内存中分配与所述待访问内存页的页面大小匹配的复合页面,其中,所述复合页面由页表中多个连续的页表项对应的基准页面组成,所述基准页面的页面大小小于所述待访问内存页的页面大小。
进一步地,所述复合页面分配模块230包括:目标对齐条件确定子模块和复合页面分配子模块,其中:
目标对齐条件确定子模块,用于确定与所述待访问内存页的页面大小对应的目标对齐条件。
进一步地,所述目标对齐条件确定子模块包括:页面类型获取单元和目标对齐条件确定单元,其中:
页面类型获取单元,用于获取待访问内存页的页面类型,其中,所述页面类型包括文件页类型或者匿名页类型。
目标对齐条件确定单元,用于确定与所述待访问内存页的页面大小和所述待访问内存页的页面类型对应的目标对齐条件。
复合页面分配子模块,用于若所述待访问内存页满足所述目标对齐条件,则在所述物理内存中分配与所述待访问内存页的页面大小匹配的复合页面。
待访问内存页读取模块240,用于读取所述待访问内存页至所述物理内存中的所述复合页面。
进一步地,所述待访问内存页读取模块240包括:页面类型获取子模块和待访问内存页读取子模块,其中:
页面类型获取子模块,用于获取所述待访问内存页的页面类型,其中,所述页面类型包括文件页类型或者匿名页类型。
待访问内存页读取子模块,用于基于所述待访问内存页的页面类型,读取所述待访问内存页至所述物理内存中的所述复合页面。
进一步地,若所述待访问内存页的页面类型为所述文件页类型,所述待访问内存页读取子模块,包括:第一复合页面加入单元和第一待访问内存页读取单元,其中:
第一复合页面加入单元,用于将所述复合页面加入所述物理内存中的页高速缓冲。
第一待访问内存页读取单元,用于读取所述待访问内存页至所述页高速缓冲。
进一步地,若所述待访问内存页的页面类型为所述匿名页类型,所述待访问内存页读取子模块,包括:第二复合页面加入单元和第二待访问内存页读取单元,其中:
第二复合页面加入单元,用于将所述复合页面加入所述物理内存的交换高速缓冲。
第二待访问内存页读取单元,用于读取所述待访问内存页至所述交换高速缓冲。
进一步地,所述缺页异常的处理装置200还包括:地址确定模块和页表映射建立模块,其中:
地址确定模块,用于确定所述待访问内存页在所述虚拟内存区域对应的虚拟地址,以及所述待访问内存页在所述物理内存对应的物理地址。
页表映射建立模块,用于建立所述虚拟地址和所述物理地址之间的页表映射。
进一步地,所述缺页异常的处理装置200还包括:待访问内存页加入模块,其中:
待访问内存页加入模块,用于将所述待访问内存页加入所述物理内存的最近最少使用LRU链表。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,模块相互之间的耦合可以是电性,机械或其它形式的耦合。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参阅图11,其示出了本申请实施例提供的一种电子设备100的结构框图。该电子设备100可以是智能手机、平板电脑、电子书等能够运行应用程序的电子设备。本申请中的电子设备100可以包括一个或多个如下部件:处理器110、存储器120以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器120中并被配置为由一个或多个处理器110执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
其中,处理器110可以包括一个或者多个处理核。处理器110利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(ProgrammableLogic Array,PLA)中的至少一种硬件形式来实现。处理器110可集成中央处理器(CentralProcessing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责待显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。
存储器120可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储电子设备100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
请参阅图12,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质300中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质300可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质300包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质300具有执行上述方法中的任何方法步骤的程序代码310的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码310可以例如以适当形式进行压缩。
综上所述,本申请实施例提供的缺页异常的处理方法、装置、电子设备以及存储介质,在进程访问虚拟内存区域发生缺页异常的情况下,确定进程对应的待访问内存页,获取待访问内存页的页面大小,在物理内存中分配与待访问内存页的页面大小匹配的复合页面,其中,该复合页面由页表中多个连续的页表项对应的基准页面组成,该基准页面的页面大小小于待访问页面的页面大小,读取待访问内存页至物理内存中的复合页面,从而通过页表中的多个连续的页表项对应的基准页面组成复合页面,以实现大页面的映射,极大地降低了缺页异常,以及提升了安卓应用的性能。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (11)
1.一种缺页异常的处理方法,其特征在于,所述方法包括:
在进程访问虚拟内存区域发生缺页异常的情况下,确定所述进程对应的待访问内存页;
获取所述待访问内存页的页面大小;
在物理内存中分配与所述待访问内存页的页面大小匹配的复合页面,其中,所述复合页面由页表中多个连续的页表项对应的基准页面组成,所述基准页面的页面大小小于所述待访问内存页的页面大小;
读取所述待访问内存页至所述物理内存中的所述复合页面。
2.根据权利要求1所述的方法,其特征在于,在所述读取所述待访问内存页至所述物理内存中的所述复合页面之后,还包括:
确定所述待访问内存页在所述虚拟内存区域对应的虚拟地址,以及所述待访问内存页在所述物理内存对应的物理地址;
建立所述虚拟地址和所述物理地址之间的页表映射。
3.根据权利要求1所述的方法,其特征在于,在所述读取所述待访问内存页至所述物理内存中的所述复合页面之后,还包括:
将所述待访问内存页加入所述物理内存的最近最少使用LRU链表。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述在物理内存中分配与所述待访问内存页的页面大小匹配的复合页面,包括:
确定与所述待访问内存页的页面大小对应的目标对齐条件;
若所述待访问内存页满足所述目标对齐条件,则在所述物理内存中分配与所述待访问内存页的页面大小匹配的复合页面。
5.根据权利要求4所述的方法,其特征在于,所述确定与所述待访问内存页的页面大小对应的目标对齐条件,包括:
获取待访问内存页的页面类型,其中,所述页面类型包括文件页类型或者匿名页类型;
确定与所述待访问内存页的页面大小和所述待访问内存页的页面类型对应的目标对齐条件。
6.根据权利要求1-3任一项所述的方法,其特征在于,所述读取所述待访问内存页至所述物理内存中的所述复合页面,包括:
获取所述待访问内存页的页面类型,其中,所述页面类型包括文件页类型或者匿名页类型;
基于所述待访问内存页的页面类型,读取所述待访问内存页至所述物理内存中的所述复合页面。
7.根据权利要求6所述的方法,其特征在于,若所述待访问内存页的页面类型为所述文件页类型,所述基于所述待访问内存页的页面类型,读取所述待访问内存页至所述物理内存中的所述复合页面,包括:
将所述复合页面加入所述物理内存中的页高速缓冲;
读取所述待访问内存页至所述页高速缓冲。
8.根据权利要求6所述的方法,其特征在于,若所述待访问内存页的页面类型为所述匿名页类型,所述基于所述待访问内存页的页面类型,读取所述待访问内存页至所述物理内存中的所述复合页面,包括:
将所述复合页面加入所述物理内存的交换高速缓冲;
读取所述待访问内存页至所述交换高速缓冲。
9.一种缺页异常的处理装置,其特征在于,所述装置包括:
待访问内存页确定模块,用于在进程访问虚拟内存区域发生缺页异常的情况下,确定所述进程对应的待访问内存页;
页面大小获取模块,用于获取所述待访问内存页的页面大小;
复合页面分配模块,用于在物理内存中分配与所述待访问内存页的页面大小匹配的复合页面,其中,所述复合页面由页表中多个连续的页表项对应的基准页面组成,所述基准页面的页面大小小于所述待访问内存页的页面大小;
待访问内存页读取模块,用于读取所述待访问内存页至所述物理内存中的所述复合页面。
10.一种电子设备,其特征在于,包括存储器和处理器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时所述处理器执行如权利要求1-8任一项所述的方法。
11.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211145194.5A CN115543532A (zh) | 2022-09-20 | 2022-09-20 | 缺页异常的处理方法、装置、电子设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211145194.5A CN115543532A (zh) | 2022-09-20 | 2022-09-20 | 缺页异常的处理方法、装置、电子设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115543532A true CN115543532A (zh) | 2022-12-30 |
Family
ID=84727571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211145194.5A Pending CN115543532A (zh) | 2022-09-20 | 2022-09-20 | 缺页异常的处理方法、装置、电子设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115543532A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115718641A (zh) * | 2023-01-09 | 2023-02-28 | 苏州浪潮智能科技有限公司 | 存储器模拟方法及装置、存储介质及电子装置 |
CN115858046A (zh) * | 2023-02-28 | 2023-03-28 | 荣耀终端有限公司 | 一种预加载内存页的方法、电子设备及芯片系统 |
-
2022
- 2022-09-20 CN CN202211145194.5A patent/CN115543532A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115718641A (zh) * | 2023-01-09 | 2023-02-28 | 苏州浪潮智能科技有限公司 | 存储器模拟方法及装置、存储介质及电子装置 |
CN115858046A (zh) * | 2023-02-28 | 2023-03-28 | 荣耀终端有限公司 | 一种预加载内存页的方法、电子设备及芯片系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
USRE43483E1 (en) | System and method for managing compression and decompression of system memory in a computer system | |
US6795897B2 (en) | Selective memory controller access path for directory caching | |
CN107250991B (zh) | 透明硬件辅助存储器解压缩 | |
US8250254B2 (en) | Offloading input/output (I/O) virtualization operations to a processor | |
TWI684099B (zh) | 剖析快取替代 | |
CN115543532A (zh) | 缺页异常的处理方法、装置、电子设备以及存储介质 | |
US8037281B2 (en) | Miss-under-miss processing and cache flushing | |
US10997078B2 (en) | Method, apparatus, and non-transitory readable medium for accessing non-volatile memory | |
JPH1125033A (ja) | バスブリッジ | |
US8335908B2 (en) | Data processing apparatus for storing address translations | |
CN112596913B (zh) | 提高内存透明大页性能的方法、装置及用户设备、存储介质 | |
US20090282198A1 (en) | Systems and methods for optimizing buffer sharing between cache-incoherent cores | |
EP3163451B1 (en) | Memory management method and device, and memory controller | |
CN113039531B (zh) | 用于分配缓存资源的方法、系统和存储介质 | |
CN113039530A (zh) | 压缩式存储系统的空闲空间管理 | |
CN115357196A (zh) | 动态可扩展的组相联高速缓存方法、装置、设备及介质 | |
CN115481054A (zh) | 数据处理方法、装置及系统、系统级soc芯片及计算机设备 | |
CN114546898A (zh) | 一种tlb管理方法、装置、设备及存储介质 | |
CN116795740A (zh) | 数据存取方法、装置、处理器、计算机系统及存储介质 | |
CN116225693A (zh) | 元数据管理方法、装置、计算机设备及存储介质 | |
CN116383101A (zh) | 内存访问方法、内存管理单元、芯片、设备和存储介质 | |
CN115061955A (zh) | 处理器、电子设备、地址翻译方法以及缓存页表项方法 | |
JP2024527054A (ja) | 動的割当可能な物理的にアドレス指定されるメタデータストレージ | |
Jeong et al. | Transparently exploiting device-reserved memory for application performance in mobile systems | |
US10977176B2 (en) | Prefetching data to reduce cache misses |
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 |