CN111512290B - 文件页表管理技术 - Google Patents

文件页表管理技术 Download PDF

Info

Publication number
CN111512290B
CN111512290B CN201780097945.1A CN201780097945A CN111512290B CN 111512290 B CN111512290 B CN 111512290B CN 201780097945 A CN201780097945 A CN 201780097945A CN 111512290 B CN111512290 B CN 111512290B
Authority
CN
China
Prior art keywords
file
page
page table
memory
access
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
Application number
CN201780097945.1A
Other languages
English (en)
Other versions
CN111512290A (zh
Inventor
张欢
徐君
朱冠宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN111512290A publication Critical patent/CN111512290A/zh
Application granted granted Critical
Publication of CN111512290B publication Critical patent/CN111512290B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种文件页表管理方法,所述文件页表管理方法应用于内存中建有文件***的存储***中。所述文件页表管理方法能够根据访问所述内存的访问请求的访问类型,动态调整所述文件页表的映射方式,从而能够提升内存访问效率,并节省内存空间。

Description

文件页表管理技术
技术领域
本发明涉及存储技术领域,尤其涉及一种文件页表管理技术。
背景技术
随着相变存储器(Phase Change Memory,PCM)、阻变存储器(Resistive RandomAccess Memory,RRAM)、磁性随机存储器(Magnetic Random Access Memory,MRAM)和铁电式随机存储器(Ferroelectric Random Access Memory,FRAM)为代表的下一代非易失性存储器(Non-Volatile Memory,NVM)技术的发展,下一代NVM的访问速度得到了很大的提升。并且由于下一代NVM能够按字节(byte)寻址,将数据以字节为单位写入非易失性存储器中。因此,可以将下一代NVM作为内存使用,并采用基于页面的方式对NVM存储介质进行管理,由CPU直接访问NVM。现有技术中也提出了基于NVM的内存文件***。在内存为NVM的情况下,需要将NVM的存储空间映射到操作***的虚拟地址空间,通过操作***的页表实现操作***虚拟地址到NVM中的物理地址的映射,从而处理器能够通过内存管理单元(memorymanagement unit,MMU)查找映射表实现虚拟地址到物理地址的转换,并根据转换后的物理地址访问NVM中的文件的页面。
发明内容
本发明实施例中提供的一种文件页表管理技术,能够根据对文件***的访问类型动态调整文件页表,可以提升内存访问效率。
第一方面,本发明实施例提供一种文件页表管理方法。所述方法应用于包括处理器以及内存的存储***中,所述存储***中包括基于所述内存建立的文件***。所述处理器统计第一时间段内对所述文件***中的第一文件的访问类型。当所述处理器确定在所述第一时间段内对所述第一文件的访问中第一访问类型的数量多于第二访问类型的数量且第一文件页表的映射方式为第一映射方式时,所述处理器将所述第一文件页表由第一映射方式调整为第二映射方式。其中,所述第一访问类型包括顺序访问和随机的大粒度访问,所述第二访问类型包括随机的小粒度访问。所述第一文件页表用于记录操作***的虚拟地址与内存中存储所述第一文件的数据的内存页面的映射关系,所述第一映射方式包括建立所述操作***的虚拟地址与所述内存中第一类页面的映射,其中,所述第一类页面中存储有所述第一文件的数据。所述第二映射方式包括建立所述操作***的虚拟地址与所述内存中的第二类页面的映射关系,所述第二类页面的大小大于所述第一类页面的大小。
本发明实施例提供的页表管理方法能够根据预设时间段内访问文件***的访问请求的访问类型,动态调整文件页表的映射方式。具体的,当对第一文件的访问请求中顺序访问和随机的大粒度访问类型的访问请求较多时,能够将第一文件页表的映射方式由映射到小页面的第一映射方式调整为映射到大页面的第二映射方式。从而采用调整后的页表处理后续的访问请求时,能够在地址转换的过程中提高转译后备缓冲器TLB的命中率。
在第一方面的第一种可能的实现方式中,所述将所述第一文件的页表由第一映射方式调整为第二映射方式包括:所述处理器为所述第一文件分配所述内存中的第二页面,所述第二页面属于第二类页面;所述处理器将所述页表指向的多个连续的第一类页面的数据拷贝到所述第二页面;所述处理器将所述页表中指向所述多个第一类页面的指针更新为指向所述第二页面。
结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述方法还包括所述处理器释放所述多个连续的第一类页面。
结合第一方面、第一方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述方法还包括所述处理器根据调整后的第一文件页表对后续访问所述第一文件的访问请求进行处理。
第二方面,本发明实施例提供了又一种文件页表的管理方法。所述方法应用于包括处理器以及内存的存储***中,所述存储***中包括基于所述内存建立的文件***。根据所述管理方法,所述处理器统计第一时间段内对所述文件***中的第二文件的访问类型。当所述处理器确定在所述第一时间段内对所述第二文件的访问中第一访问类型的数量不多于第二访问类型的数量且第二文件页表的映射方式为第二映射方式时,所述处理器将所述第二文件页表由所述第二映射方式调整为第一映射方式。其中,所述第一访问类型包括顺序访问和随机的大粒度访问,所述第二访问类型包括随机的小粒度访问。所述第二文件页表用于记录操作***的虚拟地址与内存中存储所述第二文件的数据的内存页面的映射关系,所述第二映射方式包括建立所述操作***的虚拟地址与所述内存中第二类页面的映射,所述第二类页面中存储有所述第二文件的数据。所述第一映射方式包括建立所述操作***的虚拟地址与所述内存中的第一类页面的映射关系,所述第一类页面的大小小于所述第二类页面的大小。
根据第二方面提供的文件页表管理方法,存储***中的处理器能够根据预设时间段内访问文件***的访问请求的访问类型,动态调整文件页表的映射方式。具体的,当对第二文件的访问请求中顺序访问和随机的大粒度访问类型的访问请求较少而随机的小粒度访问类型的访问请求较多时,所述处理器能够将第二文件页表的映射方式由映射到大页面的第二映射方式调整为映射到小页面的第一映射方式。从而能够释放因为采用大页面映射而预留的存储空间,节省存储***的存储空间。
在第二方面的第一种可能的实现方式中,所述处理器将所述第二文件页表由所述第二映射方式调整为第一映射方式包括:所述处理器为所述第二文件页表中的最后一级页目录分配下一级页表,所述下一级页表中包含有多个页表项,其中,所述最后一级页目录中的页目录项指向所述内存中的第二类页面;所述处理器将所述第二文件页表指向的所述第二类页面按照地址拆分成所述多个第一类页面;所述处理器将所述多个第一类页面的起始地址更新到所述下一级页表中的所述多个页表项中;所述处理器将所述第二文件页表中指向所述第二类页面的指针更新为指向所述下一级页表。
结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述方法还包括所述处理器根据调整后的第二文件页表对后续访问所述第二文件的访问请求进行处理。
第三方面,本发明实施例提供了一种文件页表管理装置,所述装置用于访问基于内存建立的文件***。所述装置包括用于实现上述第一方面以及第一方面的任意一种可能的实现方式中的页表管理方法的功能模块。
第四方面,本发明实施例提供了又一种文件页表管理装置,所述装置用于访问基于内存建立的文件***。所述装置包括用于实现上述第二方面以及第二方面的任意一种可能的实现方式中的页表管理方法的功能模块。
第五方面,本发明实施例提供一种存储***,包括处理器和内存非易失性内存NVM。所述NVM用于存储文件***和文件。所述处理器通过内存总线与所述NVM连接,所述处理器用于实现上述第一方面以及第一方面的任意一种可能的实现方式中所述的方法。
第六方面,本发明实施例提供了又一种存储***,包括处理器和非易失性内存NVM。所述NVM用于存储文件***和文件。所述处理器通过内存总线与所述NVM连接,所述处理器用于实现上述第二方面以及第二方面的任意一种可能的实现方式中所述的方法。
第七方面,本发明实施例提供了一种计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令用于执行前述第一方面以及第一方面的任意一种可能的实现方式中所述的方法。
第八方面,本发明实施例提供了又一种计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令用于执行前述第二方面以及第二方面的任意一种可能的实现方式中所述的方法。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。
图1为本发明实施例提供的一种应用场景示意图;
图2为本发明实施例提供的一种通过文件页表204实现操作***的虚拟空间与内存空间的映射的示意图;
图3A为本发明实施例提供的一种文件页表的示意图;
图3B为本发明实施例提供的又一种文件页表的示意图;
图4为本发明实施例提供的一种根据文件页表访问内存文件***的方法示意图;
图5为本发明实施例提供的一种文件页表管理方法的流程图;
图6为本发明实施例提供的一种确定访问类型的方法流程图;
图7为本发明实施例提供的一种记录表;
图8为本发明实施例提供的一种文件页表的调整示意图;
图9为本发明实施例提供的一种页表调整方法的流程图;
图10为本发明实施例提供的又一种文件页表管理方法的方法流程图;
图11为本发明实施例提供的又一种文件页表的调整示意图;
图12为本发明实施例提供的又一种页表调整方法的流程图;。
图13为本发明实施例提供的一种页表管理装置的结构示意图;
图14为本发明实施例提供的又一种页表管理装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。
图1为本发明实施例提供的下一代非易失存储器(NVM)的一种应用场景图。在图1所述的一种应用场景中,NVM 200作为内存使用。如图1所示,动态随机存储器(DynamieRandom Access Memory,DRAM)300通过内存总线与中央处理器(CPU)100连接。DRAM 300具有访问速度快的优点,CPU 100能够高速访问DRAM 300,对DRAM 300中的任一存储单元进行读或写操作,因此通常DRAM作为主内存使用。通常DRAM 300用来存放操作***中各种正在运行的软件、输入和输出数据以及与外存交换的信息等。然而,DRAM 300是易失性的,当计算机关闭电源后,DRAM 300中的信息将不再保存。
磁盘400可以作为外存,用于存储数据。当然,可以理解的是,作为外存的存储器除了可以是磁盘400外,还可以是固态硬盘(SSD)等非易失性存储器。通常,作为外存的存储介质需要具有非易失性的特点,当计算机关闭电源后,存储于外存的数据仍然会被保存。并且,外存的存储容量较大。
新型非易失性存储器(NVM)200可以同DRAM 300一样,直接挂在内存总线上。中央处理器(CPU)100可以通过内存管理单元(memory management unit,MMU)104访问NVM 200,向NVM 200中快速的存储数据或从NVM 200中读取数据。可以理解的是,当NVM 200直接挂在内存总线上使用时,能够与DRAM300一样,降低数据访问的等待时间(latency)。并且,与DRAM 300相比,由于NVM200具有非易失性,从而能够更好的保存数据。
需要说明的是,本发明实施例中所描述的能够挂在内存总线上的非易失性存储器可以包括:相变存储器(Phase Change Memory,PCM)、阻变存储器(Resistive RandomAccess Memory,RRAM)、磁性存储器(Magnetic Random Access Memory,MRAM)或铁电式存储器(Ferroelectric Random Access Memory,FRAM)等新型非易失性存储器。这些新型NVM都具有访问速度快且具有非易失性的特点,并且,这些新型NVM能够按字节(Byte)寻址,将数据以位(bit)为单位写入非易失性存储器中。在本发明实施例中,作为内存的非易失性存储器又被称为非易失性内存。如无特别说明,本发明实施例中的内存均指的是非易失性内存NVM。
本发明实施例涉及基于内存的文件***,这种基于内存建立的文件***也可以被称为内存文件***。具体的,在本发明实施例中,NVM 200中存储有文件***和文件。本领域技术人员可以知道,文件***是操作***中负责管理和存储文件信息的软件结构。从***角度来看,文件***是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的***。文件***由三部分组成:文件***的接口、对文件操纵和管理的软件集合、文件数据和属性。文件***的中心概念是超级块(superblock)、i节点(inode)、数据块(data block)、目录块(directory block)和间接块(indirectionblock)。超级块包括文件***的总体信息,比如文件***的大小。inode中包括除了文件名以外的一个文件的所有信息。文件名与inode数目一起存在目录块中,目录条目包括文件名和文件的inode数目。i节点中只有少量数据块的空间,如果需要更多,会动态分配指向数据块的指针空间,这些动态分配的块是间接块。在本发明实施例中,NVM 200中还可以存储文件的数据和元数据。
在中央处理器(CPU)100安装有操作***和其他软件程序,从而中央处理器(CPU)100能够实现对DRAM 300、磁盘400以及NVM 200的访问。CPU 100可以包括CPU执行单元102和内存管理单元MMU 104。其中,CPU执行单元102是CPU 100的执行器件,具体用于执行程序。MMU 104是一种负责处理CPU的内存访问请求的计算机硬件,是CPU 100中用来管理虚拟存储器、物理存储器的控制线路,同时也负责虚拟地址与物理地址的映射,提供硬件机制的内存访问授权。
可以理解的是,在本发明实施例中,中央处理器(CPU)100仅仅是处理器的一个示例。除了中央处理器(CPU)100外,处理器还可以是其他特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
可以理解的是,图1所示的应用场景可以包括基于内存建立文件***的存储设备。在本发明实施例中,存储设备可以包括计算机、服务器、存储阵列等在内存中建立文件***的设备。在此不对本发明实施例的应用场景进行限定。需要说明的是,在本发明实施例中,如无特别说明,所描述的内存均为非易失性内存NVM,具体的,可以指图1中的NVM 200。
为了能够更好的理解本发明实施例,下面将对MMU如何实现虚拟地址到内存的物理地址的映射做一个详细的介绍。先简单介绍一下虚拟存储器(virtual memory)的概念。本领域人员可以知道,程序要放到内存中运行。但随着程序规模的不断增大,内存容量很难容纳一个完整的程序,虚拟存储器的概念应运而生。虚拟存储器的基本思想是程序、数据和堆栈的总的大小可以超过物理存储器的大小,操作***把当前使用的部分保留在内存中,而把其他未被使用的部分保存在磁盘上。例如,若一个计算机只有4M内存,当该计算机需要运行一个16MB的程序时,操作***可以通过选择确定将4M的程序内容缓存在内存中运行,并在需要时在内存和磁盘之间交换程序片段,这样就可以在一个只具有4M内存的计算机上运行16M的程序了。
本领域人员可以知道,在计算机***中,虚拟地址空间是进程能够访问的一段虚拟地址范围。虚拟地址空间的大小通常是由计算机的指令集体系结构(instruction setarchitecture)来确定的。例如,一个32位的CPU,提供的虚拟地址空间为0-0xFFFFFFFF(4G)。虚拟地址空间中的某一个地址我们称之为虚拟地址。与虚拟地址空间和虚拟地址相对应的则是物理地址空间和物理地址。物理地址空间是指内存的物理地址范围。物理地址空间中的某一个地址我们称之为物理地址。通常,物理地址空间小于虚拟地址空间,物理地址空间可以映射到虚拟地址空间中。例如,对于一台内存为256M的32bit x86主机来说,它的虚拟地址空间范围是0-0xFFFFFFFF(4G),而物理地址空间范围是0x000000000-0x0FFFFFFF(256M)。
现有技术中,大多数机器均使用虚拟存储器,虚拟地址(或称线性地址)不是被直接送到内存地址总线上,而是送到MMU(Memory Management Unit,内存管理单元),MMU把虚拟地址转换为物理地址。也就是说,MMU用于实现程序的虚拟地址到内存的物理地址的映射。
为了实现程序的虚拟地址到内存的物理地址的映射,MMU引入分页(paging)机制。具体地,虚拟地址空间以页(page)为单位被划分,可以将虚拟地址空间中的页称为虚拟页。相应的,物理地址空间也以页为单位被划分,可以将物理地址空间的页称为物理页(或称物理页框),其中,虚拟页和物理页的大小相同。
在引入页这个概念的基础上,MMU采用多级页表的形式实现虚拟地址到内存的物理地址的映射。具体的,在二级管理模式下,这种映射方式依次包括对页目录和页表的查询。其中,页目录中存储有多个页表的基地址,每个页表中存储有多个页表项。页表项中记录有这个虚拟地址所对应物理页的物理基地址。
本领域人员可以知道,一个虚拟地址中包含着找到物理地址的信息。一个虚拟地址的大小为4个字节(32bit),通常该虚拟地址可以被分为3个部分:
第22位到第31位:这10位(最高10位)是页目录中的索引;
第12位到第21位:这10位是页表中的索引;
第0位到第11位:这12位(低12位)是页内偏移。
本领域人员可以知道,每个进程都有其各自专用的虚拟地址空间以及用于寻址的页目录,***内所有进程共享内核的虚拟地址空间以及内核的页目录,每个进程可以通过***调用进入内核。在CPU中存在一个用于保存页目录基地址的寄存器CR3。在进程调度时,寄存器CR3指向当前进程的页目录基地址。在进程切换时,寄存器CR3切换当前所指向的页目录基地址。对于一个要转换成物理地址的虚拟地址,CPU首先根据寄存器CR3中的值找到页目录所在的物理页。然后根据虚拟地址的第22位到第31位这10位(最高的10bit)的值作为索引,找到相应的页目录项(page directory entry,PDE),PDE中有这个虚拟地址所对应页表的物理地址。有了页表的物理地址,根据虚拟地址的第12位到第21位这10位的值作为索引,找到该页表中相应的页表项(page table entry,PTE)。页表项中就有这个虚拟地址所对应物理页的物理地址。最后用虚拟地址的最低12位,也就是页内偏移,加上这个物理页的物理地址,就得到了该虚拟地址所对应的物理地址。
通常,一个页目录有1024项,虚拟地址最高的10bit刚好可以索引1024项(2的10次方等于1024)。一个页表也有1024项,虚拟地址中间部分的10bit,刚好用于索引这1024个页表项。虚拟地址最低的12bit(2的12次方等于4096),作为页内偏移,刚好可以索引4KB,也就是一个物理页中的每个字节。
本领域人员可以知道,32bit的指针的寻址范围为0x00000000-0xFFFFFFFF(4GB)。也就是说,一个32bit的指针可以寻址整个4GB地址空间的每一个字节。一个页表项可以负责4K的地址空间和物理内存的映射。一个页表1024项,则一个页表可以负责1024*4k=4M的地址空间的映射。一个页目录项,对应一个页表。一个页目录有1024项,也就对应着1024个页表,每个页表负责4M地址空间的映射,则1024个页表负责1024*4M=4G的地址空间映射。一个进程有一个页目录。所以以页为单位,页目录和页表可以保证4G的地址空间中的每页和物理内存的映射。
每个进程都有自己的4G地址空间,从0x00000000-0xFFFFFFFF。通过每个进程自己的一套页目录和页表来实现进程的虚拟地址到内存的物理地址的映射。由于每个进程有自己的页目录和页表,所以每个进程的地址空间映射的物理内存是不一样的。两个进程的同一个虚拟地址处(如果都有物理内存映射)的值一般是不同的,因为不同的进程往往对应不同的物理页。
以上详细描述了MMU从程序的虚拟地址到内存的物理地址的映射过程。在本发明实施例中,由于将NVM 200作为内存使用,且由于NVM 200能够长久的存储数据,因此,可以在NVM 200中建立文件***,将文件***中的元数据和文件数据直接存储在内存NVM 200中。MMU 104可以实现虚拟地址与NVM 200中的物理地址的映射,从而处理器100可以直接访问NVM 200中的文件***。
图2为本发明实施例提供的一种通过文件页表实现操作***的虚拟空间与内存空间的映射的示意图。如图2所示,第一文件(File_1)被存储于内存200的内存空间206中,例如,存在图2所示的内存空间206中的4个不连续的物理页面中(见图2中阴影部分所示的4个物理页面)。为了表述方便,将存储第一文件的4个物理页面称为第一物理空间(图2中未示出)。第一虚拟空间是根据第一物理空间虚拟的一段连续的地址空间,可以理解的是,第一虚拟空间的大小不小于第一物理空间的大小。第一虚拟空间是操作***的虚拟空间202的一部分,例如,如图2所示,操作***的虚拟空间202包括用于管理第一文件(File_1)的第一虚拟空间,还包括用于管理第二文件(File_2)的第二虚拟空间以及用于管理其他文件的其他虚拟空间(图2中未示出)。为了描述方便,以下以第一虚拟空间为例进行描述。为了实现对第一文件(File_1)的管理,以第一虚拟空间的大小等于第一物理空间的大小为例。第一虚拟空间包括为4个虚拟页面,其中,每个虚拟页面的大小与内存中的物理页面的大小相同。例如,虚拟页面的大小和物理页面的大小均可以为4K。第一虚拟空间的4个虚拟页面分别用于虚拟存储第一文件File_1的数据(例如:File_1-1,File_1-2,File_1-3和File_1-4)的4个物理页面,并分别映射到内存中的4个物理页面。在本发明实施例中,通过文件页表204可以实现操作***的虚拟空间202的虚拟页面与内存的内存空间206中的物理页面的映射。
图3A为本发明实施例提供的一种文件页表的示意图。图3A所示的页表包括进程页表1046和文件页表1048。进程是操作***结构的基础,它是一个具有独立功能的程序关于某个数据集合的一次运行活动,可以认为是一次程序的执行。每个进程都有其各自专用的虚拟地址空间以及用于寻址的页目录。在本发明实施例中,进程页表1046用于实现除访问文件***之外的其他的执行程序中虚拟地址到物理地址的映射。MMU104可以访问CR3寄存器访问进程页表1046,以实现操作***的虚拟地址到DRAM内存物理地址的映射。换一种表达方式,进程页表1046也可以指传统的内存页表。文件页表1048是CPU 100访问文件***需要采用的页表。实际应用中,MMU 104可以访问不同的寄存器获得访问不同的页表。例如,如图3A所示,MMU104可以通过CR3寄存器1042访问进程页表,根据文件管理寄存器1044访问文件页表。
实际应用中,可以为整个文件***建立一个文件页表(也可以成为全局文件页表),也可以为文件***中的每个文件分别建立一个文件页表,在此不进行限定。根据这种方式,图3A所示的1048可以是一个全局文件页表也可以指一个文件的文件页表。在该页表为全局页表的情况下,在页目录的各目录项中可以指向文件***中的不同文件的页表。在该文件页表为一个文件的页表的情况下,页目录的各目录项可以指向该文件的不同部分。在此不进行限定。如图3A所示,CPU 100中的MMU 104可以通过访问寄存器访问文件页表(如图3A中的文件页表1048)。例如,MMU 104可以通过访问CR3寄存器1042访问进程页表1046,并且,MMU 104可以通过访问文件管理寄存器1044访问全局文件页表1048。CR3寄存器1042中保存有进程页表1046的页目录基地址,文件管理寄存器1044中保存有全局文件页表1048的页目录基地址。进程页表1046用于指向DRAM的空间1047中的物理页的物理地址。全局文件页表1048用于指向NVM的空间1049中的物理页的物理地址。进程页表1046和全局文件页表1048均可以是单级或多级页表。例如,如图3A所示,文件页表1048可以包括页目录(PageDirectory)、页上级目录(Page Upper Directory,PUD),页中间目录(Page MiddleDirectory,PMD)和页表(Page Table,PT)。页表PT中的每个页表项(page table entry,PTE)中存储有指向NVM 120中的内存页面(也可以称为物理页)的物理地址。
需要说明的是,在本发明各实施例中,每个文件的页表并不一定都是按照相同大小的内存页进行映射的。例如,如图3B所示,部分文件的文件页表可以按照大页面进行映射,另一部分文件的文件页表可以按照小页面进行映射。部分页表可以是单级页表,另一部分也可以是多级页表。并且,且各多级页表的级别也可以有区别。例如,如图3B所示,按照小页面(例如,4KB的页面)进行映射的文件页表可以是四级页表,而按照大页面(例如,2MB的页面)进行映射的页表可以按照三级页表进行映射。其中,四级页表中各级包括:PD、PUD、PMD和PT。三级页表的各级可以包括PD、PUD和PMD。
需要说明的是,为了描述清楚,在图3A和图3B中将进程页表和文件页表分开进行图示和描述。实际应用中,进程页表和文件页表在形式上也可以合二为一。在进程页表和文件页表合并的情况下,页表的一部分指向文件***,另一部分指向除文件***外的其他数据,MMU104可以通过同一个寄存器访问同一个页表,而无需通过两个寄存器分别访问不同的页表。
为了描述清楚,下面再结合图4对CPU 100如何根据访问请求中的虚拟访问内存中的文件***进行描述。为了描述简便,图4以访问地址为32位的虚拟地址,且以文件页表为两级页表为例进行描述。如图4所示,文件页表可以包括页目录(Page Directory)401、页表(Page Table)402。具体访问时,MMU104可以通过访问寄存器获得文件页表的页目录401的基地址,以页目录401的基地址为起始地址,根据所述访问请求中携带的访问地址的高10位(第22位至第31位)作为偏移量在页目录401中找到页目录项4011。在页目录项4011中包含有页表402的起始物理地址,以所述第一虚拟空间的访问地址的中间10位(第12位至第21位)作为偏移量,根据页表402的起始物理地址在页表402中查找到页表项4021。在页表项4021中保存有第一文件在内存(例如,图1所示的NVM 200)中的物理页403的起始物理地址。以所述访问地址的低11位(第0位至第11位)作为偏移量根据物理页403的起始物理地址在物理页403中查找到要访问行(line)4031。其中,行4031的地址即为要访问的数据在内存中的起始物理地址。
可以理解的是,由于内存访问可以以行(line)为粒度实现数据的读写,因此当确定了要访问的行(line)4031之后,可以根据本次访问的起始位置的物理地址对NVM200执行访问操作。例如,如果所述第一访问请求是读请求,则可以根据物理页403中的行4031的位置作为读数据的起始位置,根据所述读数据的起始位置的物理地址向内存控制器发送读数据指令,指示内存控制器对所述第一目标文件执行读操作。如果所述第一访问请求是写请求,则可以根据行4031的位置获得写入新数据的起始位置,根据所述写入新数据的起始位置的物理地址向内存控制器发送写数据指令,指示所述内存控制器对所述第一目标文件执行写操作,从而达到访问第一目标文件的目的。
上面对本发明实施例如何通过文件页表实现对内存文件***的访问进行了详细的描述。本领域技术人员可以知道,为了提高内存访问速度,在MMU104中还包括转译后备缓冲器(translation lookaside buffer,TLB)。TLB又可被称为页表缓存或转址旁路缓存。TLB是CPU的一种高速缓存,用于提高内存管理单元(MMU)进行虚拟地址到物理地址的转译速度。TLB中存放有部分用于将虚拟地址映射至物理地址的内存页表的条目。TLB的搜索关键字为虚拟内存地址,其搜索结果为物理地址。在内存访问过程中,如果请求的虚拟地址在TLB中存在(又称为TLB命中),则会很快得到与请求的虚拟地址匹配的物理地址,CPU就可以使用得到的物理地址访问内存。如果请求的虚拟地址不在TLB中(又称为TLB不命中或TLBmiss),MMU就会通过内存页表进行虚拟地址到物理地址转换,而内存页表的访问速度比TLB慢很多。在本发明实施例中,为了提高对内存文件***的访问速度,在MMU104中也包括TLB(图1中未示出),TLB中缓存有文件页表的一部分,MMU可以根据TLB中缓存的文件页表的一部分页表项快速访问内存中的文件***。
上面对本发明实施例如何根据文件页表访问内存文件***的方式进行了描述。如前所述,现有的内存文件***中,在建立操作***虚拟地址到内存的物理地址的映射时,文件页表通常固定的采用大页面或小页面映射的方式来实现。对于采用4KB的小页面来进行地址映射的映射方式,操作***能够根据页表寻址到内存中的一个4KB页面。然而,采用4KB的粒度来实现内存地址的映射时,产生的页表项会非常多,页表项的数量会远远大于MMU104中的TLB的最大容量,由于TLB中只能缓存部分页表项,因此,当页表中的页表项数量增多时,会导致在MMU实现地址转换的过程中,TLB的命中率降低。对于采用大页面(例如一个页的大小为2MB)来进行地址映射的映射方式,操作***能够根据页表寻址到内存中的一个2MB的页。采用大页面进行地址映射(例如,采用2MB的大页面进行地址映射)虽然能够减少页表中的页表项,提高TLB命中率,但这种大页面映射的映射方式,不能动态调整大页面的使用量,需要在初始化时预留大页面的存储空间,如果预留的存储空间不被使用,将造成存储空间的浪费,实现方式不够灵活。
为了解决上述问题,本申请实施例提供了一种文件页表管理方法,能够根据对文件***的访问方式,动态调整文件的页表的映射方式,在提升TLB命中率的基础上,降低存储空间的浪费。图5为本发明实施例提供的一种文件页表管理方法的流程图,该方法可以应用于图1所示的基于内存建立文件***的存储设备中。如前所述,在图1所示的存储设备中,文件***的所有数据可以存储在NVM200中。CPU 100可以将NVM 200的空间以物理页的形式进行管理。图5所示的方法可以由基于内存建立文件***的存储设备、计算机及服务器等设备中的处理器来执行,例如可以由图1中所示的CPU 100来执行。下面将结合图1对图5的方法进行详细描述。如图5所示,该方法可以包括下述步骤。
在步骤501中,处理器100统计第一时间段内对所述文件***中的第一文件的访问类型。在本发明实施例中,访问类型可以包括顺序访问和随机访问。其中,顺序访问包括顺序的小粒度访问和顺序的大粒度访问。随机访问包括随机的小粒度访问和随机的大粒度访问。其中,顺序访问是指T时刻的访问地址与T-1时刻的访问地址是连续的。随机访问是指T时刻的访问地址与T-1时刻的访问地址不连续。顺序的小粒度访问是指是指T时刻的访问与T-1时刻的访问地址是连续的,且在所述T时刻访问的数据的大小小于第一阈值。顺序的大粒度访问是指T时刻的访问地址与T-1时刻的访问地址是连续的,且在所述T时刻访问的数据的大小大于第二阈值。其中,所述第二阈值不小于所述第一阈值。T时刻为任意一个时刻。
实际应用中,可以将T时刻对所述第一文件进行访问的访问信息与T-1时刻的访问信息进行比较,以确定在所述T时刻对所述第一文件的访问类型。其中,所述访问信息包括访问地址和长度。下面将结合图6对具体如何确定访问类型进行描述。图6为本发明实施例提供的一种确定访问类型的方法流程图,如图6所示,该方法包括下述步骤。
在步骤602中,处理器100接收访问请求,所述访问请求中携带有待访问的文件的起始地址及访问长度。本发明实施例中,访问请求中携带的地址为操作***的虚拟地址。所述起始地址用于确定要访问的第一文件的数据的起始位置。可以理解的是,实际应用中,访问请求中还可以携带待访问的第一文件的标识,处理器100可以根据所述第一文件的标识获取所述文件***中的所述第一文件的索引节点。为描述方便,图6以T时刻接收的访问请求为例进行描述。
在步骤604中,处理器100判断所述访问请求的起始地址与前一次访问的结束地址是否相同。换一种表达方式,在本步骤中,处理器100判断所述访问请求(即T时刻的访问请求)的起始地址与T-1时刻的访问的结束地址是否相同。具体的,处理器可以根据记录的T-1时刻的访问请求中携带的起始地址和长度获得所述T-1时刻的访问的结束地址。从而可以将T时刻的所述访问请求中携带的起始地址与T-1时刻的访问的结束地址进行比较。当所述T时刻的访问请求的起始地址与所述T-1时刻的访问的结束地址相同时,该方法进入步骤606,所述处理器确定对本次访问为顺序访问。当所述T时刻的访问请求的起始地址与所述T-1时刻的访问的结束地址不相同时,该方法进入步骤608,所述处理器确定本次访问为随机访问。然后,该方法进入步骤610。
在步骤610中,所述处理器100判断所述访问请求的访问长度是否小于第一阈值。其中,所述第一阈值可以根据具体的应用场景进行设置,例如第一阈值可以设置为4KB或8KB等。若在步骤606中,处理器确定本次访问为顺序访问,且在步骤610中所述处理器进一步判断所述访问请求的访问长度小于所述第一阈值,则该方法进入步骤614,所述处理器确定本次访问为顺序的小粒度访问。若在若在步骤608中,处理器确定本次访问为随机访问,且在步骤610中所述处理器进一步判断所述访问请求的访问长度小于所述第一阈值,则该方法进入步骤616,所述处理器确定本次访问为随机的小粒度访问。
若在步骤610中,处理器判断所述访问请求的访问长度不小于所述第一阈值,则该方法进一步进入步骤612。在步骤612中,所述处理器判断所述访问请求的访问长度是否大于设置的第二阈值。其中,所述第二阈值不小于所述第一阈值。例如第二阈值与第一阈值均可以为4KB,或者第二阈值可以大于第一阈值,例如,第二阈值可以设置为64KB或128KB等。实际应用中,第二阈值的值可以具体设定,只要不小于第一阈值即可。
若在步骤612中,所述处理器判断所述访问请求的访问长度大于所述第二阈值,且结合步骤606,所述处理器判断所述访问为顺序访问,则该方法进入步骤618,所述处理器确定本次访问为顺序的大粒度访问。若在步骤612中,所述处理器判断所述访问请求的访问长度大于所述第二阈值,且结合步骤608,所述处理器判断所述访问为随机访问,则该方法进入步骤618,所述处理器确定本次访问为随机的大粒度访问。
若在步骤612中,所述处理器判断所述访问请求的访问长度不大于所述第二阈值,也就是说,在这种情况下,结合步骤606或608,处理器可判断本次访问请求为顺序的中等粒度的访问请求或随机的中等粒度的访问请求。为了描述方便,在本发明实施例中,将顺序的中等粒度的访问请求或随机的中等粒度的访问请求均称为其他访问类型。
可以理解的是,实际应用中,第二阈值并不是必须的。实际应用中,也可以只设置第一阈值。在只设置第一阈值的情况下,则访问类型可以只包括顺序的小粒度访问、顺序的大粒度访问、随机的小粒度访问和随机的大粒度访问。根据这种方式,处理器在判断访问请求的访问类型时,可以不必执行图6中的步骤612和步骤622。
实际应用中,处理器在确定了在T时刻对所述第一文件的访问的访问类型后,可以在更新设置的记录表中记录的相应的访问类型的访问次数。图7为本发明实施例提供的一种记录表。如图7所示,图7中记录有对文件***中的不同文件的不同地址在第一时间段内的访问情况。其中,所述第一时间段可以包括从预设的统计的起始时间至所述T时刻。“文件名”用于指示访问的文件的文件标识。“偏移地址”用于指示某个访问的起始地址与所述文件的起始地址的偏移量。换一种表达方式,“偏移地址”也用于指示本次访问的起始地址。访问类型可以根据设置的第一阈值和第二阈值进行确定。例如,图7中以第一阈值为4KB,第二阈值为64KB。则根据访问的地址以及长度可以将各访问的访问类型区分为顺序的小粒度访问、顺序的中等粒度的访问、顺序的大粒度访问、随机的小粒度访问、随机的中等粒度的访问以及随机的大粒度访问。例如,如图7所示,在所述第一时间段内,对第一文件FILE-1起始地址为2MB的数据的访问中,顺序的小粒度的访问共有388次,顺序的中等粒度的访问共有35次,顺序的大粒度访问共有13次,随机的小粒度访问有76次,随机的中等粒度的访问共有13次,随机的大粒度访问共有7次。
图6和图7是本发明实施例如何判断访问的访问类型并对所述文件的访问类型进行统计的一个示例。现在返回图5。在步骤502中,所述处理器确定在所述第一时间段内对所述第一文件的访问中第一访问类型的数量多于第二访问类型的数量。其中,所述第一访问类型包括顺序访问和随机的大粒度访问,所述第二访问类型包括随机的小粒度访问。具体的,在本步骤中,处理器可以根据图7所示的记录表中在第一时间段内对第一文件的访问类型的统计信息来判断对所述第一文件的第一访问类型的数量是否多于第二访问类型的数量。例如,在所述第一时间段内,对所述FILE-1起始地址为2MB的访问中,第一访问类型的访问共有388+35+13+7=443次,而第二访问类型的访问共有76次。则在本步骤中,所述处理器确定在所述第一时间段内对所述第一文件的起始地址为2MB的访问中第一访问类型的数量多于第二访问类型的数量。
在步骤504中,所述处理器确定第一文件页表的映射方式为第一映射方式。其中,所述第一文件页表用于记录操作***的虚拟地址与内存中存储所述第一文件的数据的内存页面的映射关系,所述第一映射方式包括建立所述操作***的虚拟地址与所述内存中第一类页面的映射,所述第一类页面中存储有所述第一文件的数据。
如前所述,在内存文件***中,可以将内存中的文件数据以页为单位进行记录,并通过文件页表的方式建立操作***的虚拟地址与内存中存储文件数据的内存页的物理地址之间的映射关系,从而处理器能够通过文件页表快速访问内存中的文件***。在本发明实施例中,将文件页表映射的内存页面为小页面的映射方式称为第一映射方式。例如,第一文件页表的映射方式如图8所示,页表PT的每个页表项指向NVM存储空间中的一个4KB大小的物理页面802。为了描述方便,本发明实施例中,将小页面(例如,4KB大小的页面)称为第一类页面。第一类页面可以如图8中的802所示。
在步骤206中,所述处理器将所述第一文件页表由第一映射方式调整为第二映射方式。其中,所述第二映射方式包括建立所述操作***的虚拟地址与所述内存中的第二类页面的映射关系,所述第二类页面的大小大于所述第一类页面的大小。在本发明实施例中,将大页面(例如,2MB大小的页面)称为第二类页面。可以理解的是,第一类页面和第二类页面的大小并不具体限定,只要第二类页面的大小大于第一类页面的大小。具体的,当所述处理器确定在所述第一时间段内对所述第一文件的访问中第一访问类型的数量多于第二访问类型的数量,且确定所述第一文件页表为映射到NVM中的第一类页面时,在本步骤中,所述处理器会将所述第一文件的文件页表由映射到第一类页面的第一映射方式调整为映射到第二类页面的第二映射方式。例如,如图8所示,在本步骤中,处理器会将指向第一类页面802的指针调整为指向第二类页面804。具体的,处理器可以按照图9所示的方法将第一文件的文件页表由第一映射方式调整为第二映射方式。
图9为本发明实施例提供的又一种页表调整方法的流程图。如图9所示。在步骤902中,所述处理器为所述第一文件分配所述内存中的第二页面,其中所述第二页面属于所述第二类页面。例如,如图8所示,处理器为所述第一文件分配第二页面804。第二页面804属于第二类页面。第二页面的大小可以为2MB。
在步骤904中,所述处理器将所述页表指向的多个连续的第一类页面的数据拷贝到所述第二页面。例如,如图8所示,第一文件页表800通过指针806和807指向NVM中的第一类页面802。在本步骤中,处理器可以将多个连续的第一类页面802(例如图8中的Data 1和Data 2所在的物理页面)中的数据(例如图8中的Data 1和Data 2)拷贝到分配的第二页面804。在将数据进行拷贝之后,第二页面804中包含有多个连续的第一类页面的数据。可以理解的是,本发明实施例中,连续的第一类页面是指地址连续的多个第一类页面。
在步骤906中,所述处理器将所述页表中指向所述多个第一类页面的指针更新为指向所述第二页面。例如,如图8所示,在对第一文件的文件页表进行调整前,第一文件的文件页表800本来通过指针806和807指向NVM中的第一类页面802。在本步骤中,所述处理器将指向页表的指针(如图8中的806所示)更新为指向NVM中的第二页面804(如图8中808所示)。根据这种方式,所述第一文件的更新后的页表可以从PMD直接指向内存中的第二页面。换一种表达方式,通过对第一文件页表的调整,所述第一文件的页表由四级页表调整为三级页表。
在步骤908中,所述处理器释放所述多个连续的第一类页面。具体的,更新了所述第一文件的页表的指针后,为了节省存储空间,所述处理器可以释放所述页表指向的页表PT。并且,由于被合并的多个第一类页面的数据已经存储于第二页面中,所述处理器可以指示所述NVM释放页表中的各页表项指向的所述多个连续的第一类页面802。
实际应用中,在调整了所述第一文件页表的映射方式后,处理器可以根据调整后的第一文件页表对后续用于访问所述第一文件的访问请求进行处理。具体的,处理器可以根据调整后的第一文件页表将后续访问所述第一文件的访问请求中的访问地址转换为物理地址。如前所述,为了提高访问速度,TLB中会加载部分页表项。因此,在本发明实施例中,在将所述第一文件的页表的映射方式由第一映射方式调整为第二映射方式后,所述处理器还用于加载所述更新后的第一文件页表到TLB中,以便MMU能够根据TLB中加载的更新后的第一文件页表将后续第一文件的访问请求中的虚拟地址转换为物理地址。
以上实施例对如何根据对第一文件的访问类型将第一文件页表的映射方式由第一映射方式调整为第二映射方式的方法进行了详细描述,其中,第一映射方式指的是通过文件页表将虚拟地址映射到内存中的小页面,第二映射方式是指通过文件页表将虚拟地址映射到内存中的大页面。换一种表达方式,上述实施例用于根据具体的访问类型将映射到小页面的文件页表动态调整为映射到大页面的文件页表,从而能够提高TLB的命中率。
本申请实施例还提供了另一种用于文件页表的管理方法,用于根据具体的访问类型还可以将映射到大页面的文件页表调整为映射到小页面的文件页表。下面将以第二文件页表为例,对如何根据对第二文件的访问类型调整第二文件页表的映射方式的方法进行描述。
图10为本发明实施例提供的又一种文件页表管理方法的方法流程图。图10所示的方法依然可以应用于图1所示的基于内存建立文件***的存储设备中。具体的,该方法可以由基于内存建立文件***的存储设备、计算机及服务器等设备中的处理器来执行,例如可以由图1中所示的CPU 100来执行。下面将结合图1对图10的方法进行详细描述。需要说明的是,为了与图5所示的实施例进行区分,在图10所示的实施例中以根据第一时间段内对第二文件的访问对第二文件页表进行调整为例进行描述。可以理解的是,第一文件和第二文件均是本发明实施例提供的内存文件***中的任意一个文件。如图10所示,该方法可以包括下述步骤。
在步骤1002中,所述处理器统计第一时间段内对所述文件***中的第二文件的访问类型。具体的,访问类型可以包括顺序访问和随机访问。其中,顺序访问包括顺序的小粒度访问和顺序的大粒度访问。随机访问包括随机的小粒度访问和随机的大粒度访问。图10所示的实施例中的访问类型可以参见图5所示实施例中的描述。所述处理器还可以根据图6所示的方法确定第一时间段内的访问所述第二文件的访问请求的访问类型。进一步的,在本发明实施例中,处理器也可以按照图7所示的记录表记录对文件***中的不同文件的不同地址在第一时间段内的访问情况。例如,如图7所示,在所述第一时间段内,对第二文件FILE-2起始地址为4MB的数据的访问中,顺序的小粒度的访问共有11次,顺序的中等粒度的访问共有8次,顺序的大粒度访问共有2次,随机的小粒度访问有133次,随机的中等粒度的访问共有17次,随机的大粒度访问共有6次。具体对访问类型的统计可以参见前述图6及图7的描述,在此不再赘述。
在步骤1004中,所述处理器确定在所述第一时间段内对所述第二文件的访问中第一访问类型的数量不多于第二访问类型的数量,其中,所述第一访问类型包括顺序访问和随机的大粒度访问,所述第二访问类型包括随机的小粒度访问。例如,在所述第一时间段内,对所述FILE-2起始地址为4MB的访问中,第一访问类型的访问共有11+8+2+6=27次,而第二访问类型的访问共有133次。则在本步骤中,所述处理器确定在所述第一时间段内对所述第一文件的起始地址为4MB的访问中第一访问类型的数量小于第二访问类型的数量。
可以理解的是,图7是以文件中的各访问地址为单位进行统计为例。在本发明实施例中,根据对第二文件中各访问地址的访问类型的统计,可以统计出所述第一时间段内对第二文件进行访问的访问请求的各访问类型的数量。例如,所述第一时间段内对所述第二文件进行访问的访问请求的顺序访问是所述第一时间段内对所述第二文件中各访问地址进行顺序的数量的总和。根据这种方式,处理器可以确定在所述第一时间段内对所述第二文件的访问中第一访问类型的数量不多于第二访问类型的数量。在另一种情况下,也可以直接以文件为单位记录对各文件的访问类型进行统计,在此不做限定。
在步骤1006中,所述处理器确定第二文件页表的映射方式为第二映射方式。其中,所述第二文件页表用于记录操作***的虚拟地址与内存中存储所述第二文件的数据的内存页面的映射关系,所述第二映射方式包括建立所述操作***的虚拟地址与所述内存中第二类页面的映射,所述第二类页面中存储有所述第二文件的数据。如图11所示,第二文件页表为映射到大页面的文件页表。具体的,第二文件页表中的PMD的指针指向NVM空间的第二类页面1104(参见图11所示1102)。其中,第二类页面1104为大页面,例如,第二类页面的大小可以为2MB。第二类页面1104中保存有所述第二文件的数据。
在步骤1008中,所述处理器将所述第二文件页表由所述第二映射方式调整为第一映射方式。其中,所述第一映射方式包括建立所述操作***的虚拟地址与所述内存中的第一类页面的映射关系,所述第一类页面的大小小于所述第二类页面的大小。具体的,当所述处理器经过步骤1104和步骤1106确定在所述第一时间段内对所述第二文件的访问中第一访问类型的数量不多于第二访问类型的数量,且确定所述第而文件页表为映射到NVM中的第二类页面(即大页面)时,在本步骤中,所述处理器会将所述第二文件页表由映射到第二类页面的第二映射方式调整为映射到第一类页面的第一映射方式。实际应用中,处理器可以按照图12所示的方法调整第二文件页表的映射方式。
图12为本发明实施例提供的另外一种调整页表的方法流程图,如图12所示。在步骤1202中,所述处理器为所述第二文件页表中最后一级页目录分配下一级页表。所述下一级页表中包含有多个页表项,其中,所述最后一级页目录中的页目录项指向所述NVM中的第二类页面。例如,如图11所示,所述第二文件页表1100的最后一级页目录PMD 1101中的页目录项分别指向NVM中的第二类页面1104,其中,第二类页面1104为大页面。在本步骤中,所述处理器可以建立所述最后一级页目录PMD 1101的下一级页表PT 1108,所述页表PT 1108中包含有多个页表项,例如,页表PT 1108中可以包括256个页表项。
在步骤1204中,所述处理器将所述第二文件页表指向的所述第二类页面按照地址拆分成所述多个第一类页面。如图11所示,可以将第二类页面1104按地址拆分成多个连续的第一类页面1106。其中,所述第一类页面1106的大小小于所述第二类页面1104的大小。例如,第一类页面1106的大小可以为4KB。
在步骤1206中,所述处理器将所述多个第一类页面的起始地址更新到所述下一级页表中的所述多个页表项中。具体的,所述处理器可以将拆分后的各个第一类页面1106的起始地址分别存储于所述页表PT的各个页表项中,以使所述PT 1108中的每个页表项分别包含指向一个第一类页面1106的指针,从而可以根据页表1108中的页表项寻址到NVM空间中的第一类页面1106。
在步骤1208中,所述处理器将所述第二文件页表中指向所述第二类页面的指针更新为指向所述下一级页表。具体的,所述处理器可以将指向第二类页面1104的指针(如图11中的箭头1102所示)调整为指向新建立的页表1108(如图11中的箭头1110所示),例如,可以执行页表1108的起始地址。从而根据PMD 1101的页目录项寻址到页表1108,进而,通过页表1108的页表项寻址到NVM中的第一类页面。
根据图12所述的方式,可以将映射到大页面的第二文件页表调整为映射到小页面。实际应用中,在调整了所述第二文件页表的映射方式后,处理器可以根据调整后的第二文件页表对后续访问所述第二文件的访问请求进行处理。具体的,处理器可以根据调整后的第二文件页表将后续访问所述第二文件的访问请求中的访问地址转换为物理地址。例如,在将所述第二文件页表的映射方式由第二映射方式调整为第一映射方式后,所述处理器还用于加载所述更新后的第二文件页表到TLB中,以便MMU能够根据TLB中加载的更新后的第二文件页表将后续访问第二文件的访问请求中的虚拟地址转换为内存中的物理地址。
从上述图10所示的实施例可以看出,当处理器确定在第一时间段内,对第二文件的访问中随机的小粒度的访问较多时,处理器可以对第二文件页表进行调整,将第二文件页表的映射方式从第二映射方式调整为第一映射方式,根据这种方式,将映射到大页面的第二文件页表调整为映射到小页面。进一步的,处理器可以根据调整后的第二文件页表对后续的文件访问请求进行处理。从而,减少了存储空间的浪费,并提高计算机***的处理效率。
需要说明的是,上述图5和图10所示的实施例可以应用在同一个计算机***中。例如,在一种情况下,对第一文件的文件页表在第一时间段内采用图5所示的方法进行调整,对第二文件的文件列表在第一时间段内采用图10所述的方法进行调整。在一种情况下,还可以根据第一时间段内对所述第一文件页表的访问类型,采用图5所示的方法对第一文件页表进行调整。而根据第二时间段内对所述第一文件页表的访问,对所述第一文件页表按照图10所示的方法进行调整。在又一种情况下,还可以对映射到第一文件的第一部分地址(例如1BM至4MB地址空间)的页表在第一时间段内按照图5所示的方法进行调整,而对映射到第一文件的第二部分地址的页表在第一时间段内按照图10的方法进行调整。在此不进行限定。
进一步的,上述实施例是以调整一个文件的文件页表为例进行描述。实际应用中,还可以只调整一个文件页表的一部分。例如,可以根据对第一文件中偏移地址为1-4MB的数据的访问类型,将第一文件页表中与偏移地址为1-4MB部分数据对应的页表项由映射到内存中的小页面调整为映射到内存中的大页面。根据这种方式,在一个文件页表中,部分页表项可以映射到内存中的大页面,部分页表项用于映射到内存中的小页面。在此不做限定。
图13为本发明实施例提供的一种文件页表管理装置的结构示意图。该装置可以用于访问基于内存建立的文件***,其中,内存可以为非易失性内存NVM。如图13所示,该文件页表管理装置1300可以包括第一统计模块1302、第一确定模块1304以及第一调整模块1306。实际应用中,所述第一统计模块1302用于统计第一时间段内对所述文件***中的第一文件的访问类型。第一确定模块1304用于确定在所述第一时间段内对所述第一文件的访问中第一访问类型的数量多于第二访问类型的数量。其中,所述第一访问类型包括顺序访问和随机的大粒度访问,所述第二访问类型包括随机的小粒度访问。所述第一确定模块1304还用于确定第一文件页表的映射方式为第一映射方式。其中,所述第一文件页表用于记录操作***的虚拟地址与内存中存储所述第一文件的数据的内存页面的映射关系,所述第一映射方式包括建立所述操作***的虚拟地址与所述内存中第一类页面的映射,其中,所述第一类页面中存储有所述第一文件的数据。所述第一调整模块1306用于将所述第一文件页表由第一映射方式调整为第二映射方式,其中,所述第二映射方式包括建立所述操作***的虚拟地址与所述内存中的第二类页面的映射关系,所述第二类页面的大小大于所述第一类页面的大小。
在将所述第一文件页表由第一映射方式调整为第二映射方式的过程中,所述第一调整模块1306具体用于为所述第一文件分配所述内存中的第二页面,所述第二页面属于第二类页面。在分配第二页面后,所述调整模块用于将所述页表指向的多个连续的第一类页面的数据拷贝到所述第二页面,并将所述页表中指向所述多个第一类页面的指针更新为指向所述第二页面。从而完成第一文件页表的映射方式的调整。
在又一种情况下,所述页表管理装置1300还可以包括第一处理模块1308,所述第一处理模块1308用于根据调整后的第一文件页表对后续访问所述第一文件的访问请求进行处理。
图14为本发明实施例提供的又一种文件页表管理装置的结构示意图。该装置可以用于访问基于内存建立的文件***,其中,内存可以为非易失性内存NVM。如图14所示,该文件页表管理装置1400可以包括第二统计模块1402、第二确定模块1404以及第二调整模块1406。
所述第二统计模块1402用于统计第一时间段内对所述文件***中的第二文件的访问类型。所述第二确定模块1404用于确定在所述第一时间段内对所述第二文件的访问中第一访问类型的数量不多于第二访问类型的数量。其中,所述第一访问类型包括顺序访问和随机的大粒度访问,所述第二访问类型包括随机的小粒度访问。所述第二确定模块1404还用于确定第二文件页表的映射方式为第二映射方式,其中,所述第二文件页表用于记录操作***的虚拟地址与内存中存储所述第二文件的数据的内存页面的映射关系,所述第二映射方式包括建立所述操作***的虚拟地址与所述内存中第二类页面的映射,所述第二类页面中存储有所述第二文件的数据。所述第二调整模块1404用于将所述第二文件页表由所述第二映射方式调整为第一映射方式。其中,所述第一映射方式包括建立所述操作***的虚拟地址与所述内存中的第一类页面的映射关系,所述第一类页面的大小小于所述第二类页面的大小。
本发明实施例所提供的页表管理装置1300可以执行图5所述实施例所描述的页表管理方法。本发明实施例所提供的页表管理装置1400可以执行图10所述实施例所描述的页表管理方法。各个模块功能的详细描述可参见方法实施例中的描述,在此不再赘述。需要说明的是,图13和图14所示的页表管理装置可以是一个装置,也就是说,图13所示的页表管理装置既可以用于执行前述图5所示的页表管理方法,也可以用于执行图10所示的页表管理方法。在本发明实施例中只是为了描述清楚而分开描述,并不对其进行限定。
可以理解的是,图13和14所示的实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个设备中,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部,模块来实现本实施例方案的目的。
本发明实施例还提供一种用于实现页表管理的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令用于执行前述任意一个方法实施例所述的方法流程。本领域普通技术人员可以理解,前述的存储介质包括:U盘、移动硬盘、磁碟、光盘、随机存储器(Random-Access Memory,RAM)、固态硬盘(Solid State Disk,SSD)或者非易失性存储器(non-volatile memory)等各种可以存储程序代码的非短暂性的(non-transitory)机器可读介质。
需要说明的是,本申请所提供的实施例仅仅是示意性的。所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本发明实施例、权利要求以及附图中揭示的特征可以独立存在也可以组合存在。在本发明实施例中以硬件形式描述的特征可以通过软件来执行,反之亦然。在此不做限定。

Claims (13)

1.一种文件页表管理方法,所述方法应用于包括处理器以及内存的存储***中,所述存储***中包括基于所述内存建立的文件***,其特征在于,包括:
所述处理器统计第一时间段内对所述文件***中的第一文件的访问类型;
所述处理器确定在所述第一时间段内对所述第一文件的访问中第一访问类型的数量多于第二访问类型的数量,其中,所述第一访问类型包括顺序访问和随机的大粒度访问,所述第二访问类型包括随机的小粒度访问;
所述处理器确定第一文件页表的映射方式为第一映射方式,其中,所述第一文件页表用于记录操作***的虚拟地址与内存中存储所述第一文件的数据的内存页面的映射关系,所述第一映射方式包括建立所述操作***的虚拟地址与所述内存中第一类页面的映射,其中,所述第一类页面中存储有所述第一文件的数据;
所述处理器将所述第一文件页表由第一映射方式调整为第二映射方式,其中,所述第二映射方式包括建立所述操作***的虚拟地址与所述内存中的第二类页面的映射关系,所述第二类页面的大小大于所述第一类页面的大小,其中,页为虚拟地址空间或者物理地址空间的划分单位。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一文件的页表由第一映射方式调整为第二映射方式包括:
所述处理器为所述第一文件分配所述内存中的第二页面,所述第二页面属于第二类页面;
所述处理器将所述页表指向的多个连续的第一类页面的数据拷贝到所述第二页面;
所述处理器将所述页表中指向所述多个第一类页面的指针更新为指向所述第二页面。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
所述处理器释放多个连续的第一类页面。
4.根据权利要求1或2所述的方法,其特征在于,还包括:
所述处理器根据调整后的第一文件页表对后续访问所述第一文件的访问请求进行处理。
5.一种文件页表的管理方法,所述方法应用于包括处理器以及内存的存储***中,所述存储***中包括基于所述内存建立的文件***,其特征在于,包括:
所述处理器统计第一时间段内对所述文件***中的第二文件的访问类型;
所述处理器确定在所述第一时间段内对所述第二文件的访问中第一访问类型的数量不多于第二访问类型的数量,其中,所述第一访问类型包括顺序访问和随机的大粒度访问,所述第二访问类型包括随机的小粒度访问;
所述处理器确定第二文件页表的映射方式为第二映射方式,其中,所述第二文件页表用于记录操作***的虚拟地址与内存中存储所述第二文件的数据的内存页面的映射关系,所述第二映射方式包括建立所述操作***的虚拟地址与所述内存中第二类页面的映射,所述第二类页面中存储有所述第二文件的数据;
所述处理器将所述第二文件页表由所述第二映射方式调整为第一映射方式,其中,所述第一映射方式包括建立所述操作***的虚拟地址与所述内存中的第一类页面的映射关系,所述第一类页面的大小小于所述第二类页面的大小,其中,页为虚拟地址空间或者物理地址空间的划分单位。
6.根据权利要求5所述的方法,其特征在于,所述处理器将所述第二文件页表由所述第二映射方式调整为第一映射方式包括:
所述处理器为所述第二文件页表中的最后一级页目录分配下一级页表,所述下一级页表中包含有多个页表项,其中,所述最后一级页目录中的页目录项指向所述内存中的第二类页面;
所述处理器将所述第二文件页表指向的所述第二类页面按照地址拆分成所述多个第一类页面;
所述处理器将所述多个第一类页面的起始地址更新到所述下一级页表中的所述多个页表项中;
所述处理器将所述第二文件页表中指向所述第二类页面的指针更新为指向所述下一级页表。
7.根据权利要求5或6所述的方法,其特征在于,还包括:
所述处理器根据调整后的第二文件页表对后续访问所述第二文件的访问请求进行处理。
8.一种文件页表管理装置,所述装置用于访问基于内存建立的文件***,其特征在于,包括:
第一统计模块,用于统计第一时间段内对所述文件***中的第一文件的访问类型;
第一确定模块,用于确定在所述第一时间段内对所述第一文件的访问中第一访问类型的数量多于第二访问类型的数量,其中,所述第一访问类型包括顺序访问和随机的大粒度访问,所述第二访问类型包括随机的小粒度访问;
所述第一确定模块,还用于确定第一文件页表的映射方式为第一映射方式,其中,所述第一文件页表用于记录操作***的虚拟地址与内存中存储所述第一文件的数据的内存页面的映射关系,所述第一映射方式包括建立所述操作***的虚拟地址与所述内存中第一类页面的映射,其中,所述第一类页面中存储有所述第一文件的数据;
第一调整模块,用于将所述第一文件页表由第一映射方式调整为第二映射方式,其中,所述第二映射方式包括建立所述操作***的虚拟地址与所述内存中的第二类页面的映射关系,所述第二类页面的大小大于所述第一类页面的大小,其中,页为虚拟地址空间或者物理地址空间的划分单位。
9.根据权利要求8所述的装置,其特征在于,所述第一调整模块具体用于:
为所述第一文件分配所述内存中的第二页面,所述第二页面属于第二类页面;
将所述页表指向的多个连续的第一类页面的数据拷贝到所述第二页面;
将所述页表中指向所述多个第一类页面的指针更新为指向所述第二页面。
10.根据权利要求8或9所述的装置,其特征在于,还包括:
第一处理模块,用于根据调整后的第一文件页表对后续访问所述第一文件的访问请求进行处理。
11.一种文件页表管理装置,所述装置用于访问基于内存建立的文件***,其特征在于,包括:
第二统计模块,用于统计第一时间段内对所述文件***中的第二文件的访问类型;
第二确定模块,用于确定在所述第一时间段内对所述第二文件的访问中第一访问类型的数量不多于第二访问类型的数量,其中,所述第一访问类型包括顺序访问和随机的大粒度访问,所述第二访问类型包括随机的小粒度访问;
所述第二确定模块,还用于确定第二文件页表的映射方式为第二映射方式,其中,所述第二文件页表用于记录操作***的虚拟地址与内存中存储所述第二文件的数据的内存页面的映射关系,所述第二映射方式包括建立所述操作***的虚拟地址与所述内存中第二类页面的映射,所述第二类页面中存储有所述第二文件的数据;
第二调整模块,用于将所述第二文件页表由所述第二映射方式调整为第一映射方式,其中,所述第一映射方式包括建立所述操作***的虚拟地址与所述内存中的第一类页面的映射关系,所述第一类页面的大小小于所述第二类页面的大小,其中,页为虚拟地址空间或者物理地址空间的划分单位。
12.根据权利要求11所述的装置,其特征在于,所述第二调整模块具体用于:
为所述第二文件页表中的最后一级页目录分配下一级页表,所述下一级页表中包含有多个页表项,其中,所述最后一级页目录中的页目录项指向所述内存中的第二类页面;
将所述第二文件页表指向的所述第二类页面按照地址拆分成所述多个第一类页面;
将所述多个第一类页面的起始地址更新到所述下一级页表中的所述多个页表项中;
将所述第二文件页表中指向所述第二类页面的指针更新为指向所述下一级页表。
13.根据权利要求11或12所述的装置,其特征在于,还包括:
第二处理模块,用于根据调整后的第二文件页表对后续访问所述第二文件的访问请求进行处理。
CN201780097945.1A 2017-12-27 2017-12-27 文件页表管理技术 Active CN111512290B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/119104 WO2019127135A1 (zh) 2017-12-27 2017-12-27 文件页表管理技术

Publications (2)

Publication Number Publication Date
CN111512290A CN111512290A (zh) 2020-08-07
CN111512290B true CN111512290B (zh) 2023-09-22

Family

ID=67064300

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780097945.1A Active CN111512290B (zh) 2017-12-27 2017-12-27 文件页表管理技术

Country Status (3)

Country Link
US (1) US11237980B2 (zh)
CN (1) CN111512290B (zh)
WO (1) WO2019127135A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11507533B2 (en) * 2018-02-05 2022-11-22 Huawei Technologies Co., Ltd. Data query method and apparatus
US20220198028A1 (en) * 2020-12-17 2022-06-23 The Toronto-Dominion Bank Secure resolution of email-based queries involving confidential third-party data
CN114968949A (zh) * 2022-05-23 2022-08-30 三星(中国)半导体有限公司 缓存数据的方法、主机设备和存储***
CN116185902B (zh) * 2023-04-13 2023-08-01 阿里云计算有限公司 一种表切分方法、***、电子设备及可读介质
CN116681578B (zh) * 2023-08-02 2023-12-19 南京砺算科技有限公司 内存管理方法、图形处理单元、存储介质、终端设备
CN116775512B (zh) * 2023-08-22 2023-12-05 摩尔线程智能科技(北京)有限责任公司 页表管理装置、方法、图形处理器及电子设备

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101937319A (zh) * 2009-06-29 2011-01-05 联发科技股份有限公司 存储器***及其映射方法
CN102609254A (zh) * 2012-01-19 2012-07-25 中国科学院计算技术研究所 获取对象级访存行为的方法及装置
CN103870412A (zh) * 2012-12-12 2014-06-18 辉达公司 降低dram访问的访问粒度的地址位重映射方案
JP2015121925A (ja) * 2013-12-24 2015-07-02 富士通セミコンダクター株式会社 ファイルアクセスプログラム、ファイルアクセス方法
CN105022696A (zh) * 2015-07-21 2015-11-04 浙江大学 一种基于内存访问热度的大内存页整合方法
CN105830022A (zh) * 2014-11-28 2016-08-03 华为技术有限公司 访问文件的方法和装置
CN105830059A (zh) * 2014-11-28 2016-08-03 华为技术有限公司 文件访问方法、装置及存储设备
CN106354890A (zh) * 2016-11-22 2017-01-25 中国科学院上海微***与信息技术研究所 一种基于N‑ary树结构的随机访问的文件***的实现方法
CN106548789A (zh) * 2015-09-17 2017-03-29 伊姆西公司 用于操作叠瓦式磁记录设备的方法和装置
CN107209715A (zh) * 2015-08-20 2017-09-26 华为技术有限公司 文件数据访问方法和计算机***

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110004720A1 (en) * 2009-07-02 2011-01-06 Chun-Ying Chiang Method and apparatus for performing full range random writing on a non-volatile memory
US8281105B2 (en) * 2010-01-20 2012-10-02 Hitachi, Ltd. I/O conversion method and apparatus for storage system
US8423727B2 (en) * 2010-03-16 2013-04-16 Hitachi, Ltd. I/O conversion method and apparatus for storage system
US9582431B2 (en) * 2010-03-22 2017-02-28 Seagate Technology Llc Storage address space to NVM address, span, and length mapping/converting
CN102486751A (zh) * 2010-12-01 2012-06-06 安凯(广州)微电子技术有限公司 一种在微内存***上实现小页nandflash虚拟大页的方法
US8930647B1 (en) * 2011-04-06 2015-01-06 P4tents1, LLC Multiple class memory systems
US20120297158A1 (en) * 2011-05-19 2012-11-22 Chih-Yao Hua Mass storage device capable of accessing a network storage
US9195594B2 (en) * 2013-01-22 2015-11-24 Seagate Technology Llc Locating data in non-volatile memory
KR102023351B1 (ko) * 2013-03-19 2019-11-04 삼성전자 주식회사 저장 장치 내 할당 촉진을 위한 데이터 분석 방법 및 장치
KR102061079B1 (ko) * 2014-03-07 2019-12-31 후아웨이 테크놀러지 컴퍼니 리미티드 파일 액세스 방법 및 관련 기기
CN106528453B (zh) * 2015-09-10 2019-10-18 中国航空工业第六一八研究所 基于复合尺度页的页表分区管理装置和方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101937319A (zh) * 2009-06-29 2011-01-05 联发科技股份有限公司 存储器***及其映射方法
CN102609254A (zh) * 2012-01-19 2012-07-25 中国科学院计算技术研究所 获取对象级访存行为的方法及装置
CN103870412A (zh) * 2012-12-12 2014-06-18 辉达公司 降低dram访问的访问粒度的地址位重映射方案
JP2015121925A (ja) * 2013-12-24 2015-07-02 富士通セミコンダクター株式会社 ファイルアクセスプログラム、ファイルアクセス方法
CN105830022A (zh) * 2014-11-28 2016-08-03 华为技术有限公司 访问文件的方法和装置
CN105830059A (zh) * 2014-11-28 2016-08-03 华为技术有限公司 文件访问方法、装置及存储设备
CN105022696A (zh) * 2015-07-21 2015-11-04 浙江大学 一种基于内存访问热度的大内存页整合方法
CN107209715A (zh) * 2015-08-20 2017-09-26 华为技术有限公司 文件数据访问方法和计算机***
CN106548789A (zh) * 2015-09-17 2017-03-29 伊姆西公司 用于操作叠瓦式磁记录设备的方法和装置
CN106354890A (zh) * 2016-11-22 2017-01-25 中国科学院上海微***与信息技术研究所 一种基于N‑ary树结构的随机访问的文件***的实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
针对嵌入式***的存储器管理单元设计;朱贺飞等;《计算机工程与应用》(第01期);全文 *

Also Published As

Publication number Publication date
WO2019127135A1 (zh) 2019-07-04
US11237980B2 (en) 2022-02-01
CN111512290A (zh) 2020-08-07
US20200334169A1 (en) 2020-10-22

Similar Documents

Publication Publication Date Title
US10067684B2 (en) File access method and apparatus, and storage device
CN111512290B (zh) 文件页表管理技术
US11119940B2 (en) Sequential-write-based partitions in a logical-to-physical table cache
US11042487B2 (en) Memory system and method for controlling nonvolatile memory
US10248576B2 (en) DRAM/NVM hierarchical heterogeneous memory access method and system with software-hardware cooperative management
US10915475B2 (en) Methods and apparatus for variable size logical page management based on hot and cold data
CN108804350B (zh) 一种内存访问方法及计算机***
US10628326B2 (en) Logical to physical mapping
EP2895958B1 (en) Address mapping
CN114402282B (zh) 存取存储的元数据以识别存储数据的存储器装置
CN108595349B (zh) 大容量存储设备的地址转换方法与装置
CN105740164A (zh) 支持缓存一致性的多核处理器、读写方法、装置及设备
KR20220041937A (ko) 메모리 유형에 대한 페이지 테이블 후크
WO2019128958A1 (zh) 缓存替换技术
US11734189B2 (en) Caching of logical-to-physical mapping information in a memory sub-system
US20230359568A1 (en) Storing a logical-to-physical mapping in nand memory
JP7077151B2 (ja) メモリシステム
US12038847B2 (en) A/D bit storage, processing, and modes
JP7204020B2 (ja) 制御方法
US20240104023A1 (en) A/D Bit Storage, Processing, and Modes
Liu et al. A novel independent channel addressing flash translation layer scheme
JP2023021450A (ja) メモリシステム
CN116225984A (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