CN105830022A - 访问文件的方法和装置 - Google Patents
访问文件的方法和装置 Download PDFInfo
- Publication number
- CN105830022A CN105830022A CN201480037874.2A CN201480037874A CN105830022A CN 105830022 A CN105830022 A CN 105830022A CN 201480037874 A CN201480037874 A CN 201480037874A CN 105830022 A CN105830022 A CN 105830022A
- Authority
- CN
- China
- Prior art keywords
- file
- address
- virtual space
- virtual
- space
- 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.)
- Granted
Links
Abstract
本申请公开了一种访问文件的方法和装置,该方法应用于在内存中建立文件系统的存储设备,其中,内存是非易失性存储器NVM,该方法包括:接收访问文件的访问请求,该文件存储在内存的第一物理空间中;从文件的元数据中获取第一虚拟空间的信息,第一虚拟空间为根据内存的第一物理空间虚拟的连续的地址空间;建立第一虚拟空间和访问文件的进程的第二虚拟空间之间的映射关系;根据映射关系,将文件的文件页表链入进程的页表中;根据链入文件页表后的进程的页表访问文件在内存中的物理地址。本发明实施例方案与传统的BIO访问文件的方式相比,少了从磁盘向内存中拷贝数据块的过程,提高了文件访问效率。
Description
本发明涉及计算机领域,并且更具体地,涉及一种访问文件的方法和装置。
现有技术中,受到磁盘访问能力的限制,中央处理器(Central Processing Unit,CPU)直接从磁盘读取数据和存储数据的速度较慢,因此,CPU需要通过内存对磁盘中的数据进行访问。
在文件系统中,CPU通过BIO(Block Input Output,块输入输出)的方式访问磁盘中的文件。具体而言,当需要从磁盘中读取文件时,CPU需要先将待读取文件的数据以块为单位从磁盘拷贝到内存中,再从内存中读取数据。当需要向磁盘中的文件写入数据时,CPU需要先将接收的数据写入内存,再将内存中的数据以块为单位写入磁盘中。
随着NVM(non-volatile memory,非易失存储)技术的发展,下一代NVM,如PCM(Phase Change Memory,相变内存)、ReRAM(Resistive Random Access Memory,电阻式随机存取存储器)或MRAM(Magnetic RAM,磁性随机存取存储器)等,存取速度和访问能力具有很大程度的提升,使得NVM作为内存,由CPU直接访问成为可能。
如上所述,现有技术中,CPU对文件系统的访问采用传统的BIO方式进行,需要内存作为文件访问的桥梁。当下一代NVM介质作为内存时,由于NVM介质的非易失性,文件系统中的文件可以长久存储在内存中,并由CPU直接访问,如果仍沿用传统的BIO方式对文件进行访问,势必会导致文件系统访问效率低下。
发明内容
本发明实施例提供一种访问文件的方法和装置,以提高文件的访问效率。
第一方面,提供一种访问文件的方法,所述方法应用于在内存中建立文件系统的存储设备,其中,所述内存是非易失性存储器NVM,包括:接收
访问文件的访问请求,所述访问请求中携带有待访问文件的标识,所述文件系统中所有文件的数据存储于内存中,所述内存是非易失性存储介质,所述文件存储在所述内存的第一物理空间中;根据所述文件的标识从所述文件的元数据中获取第一虚拟空间的信息,所述第一虚拟空间为根据所述内存的第一物理空间虚拟的连续的地址空间;建立所述第一虚拟空间和访问所述文件的进程的第二虚拟空间之间的映射关系,其中,所述第二虚拟空间为所述进程的虚拟空间中的一段连续的地址空间;根据所述映射关系,将所述文件的文件页表链入所述进程的页表中,其中,所述文件页表用于将所述第一虚拟空间中的虚拟地址映射至所述第一物理空间中的物理地址;根据链入所述文件页表后的进程的页表访问所述文件在所述内存中的物理地址。
结合第一方面,在第一方面的一种实现方式中,所述根据所述映射关系,将所述文件的文件页表链入所述进程的页表中,包括:根据所述第一虚拟空间的起始地址以及所述映射关系,确定所述第二虚拟空间的起始地址;在所述进程的页表中确定与所述第二虚拟空间的起始地址对应的页目录项;在所述页目录项中记录所述文件页表的基地址。
结合第一方面或其上述实现方式的任一种,在第一方面的另一种实现方式中,所述建立所述第一虚拟空间和访问所述文件的进程的第二虚拟空间之间的映射关系,包括:记录所述第一虚拟空间的地址和所述第二虚拟空间的地址的位置偏移量。
结合第一方面或其上述实现方式的任一种,在第一方面的另一种实现方式中,所述第一虚拟空间的地址和所述第二虚拟空间的地址的位置偏移量为0。
结合第一方面或其上述实现方式的任一种,在第一方面的另一种实现方式中,还包括:根据所述内存的第一物理空间虚拟所述第一虚拟空间。
结合第一方面或其上述实现方式的任一种,在第一方面的另一种实现方式中,所述访问请求为写请求,所述访问请求中携带有待写入数据以及所述访问请求的起始地址,所述根据链入所述文件页表后的进程的页表访问所述文件在所述内存中的物理地址,包括:确定根据链入所述文件页表后的进程的页表无法获得所述访问请求的起始地址对应的物理地址;在所述内存中为所述文件分配新的物理地址;将所述待写入数据写入所述新的物理地址中。
结合第一方面或其上述实现方式的任一种,在第一方面的另一种实现方
式中,所述在所述内存中为所述文件分配新的物理地址之后,所述方法还包括:向所述第一虚拟空间添加新的虚拟地址,并在所述文件页表中建立所述新的虚拟地址和所述新的物理地址之间的映射关系。
第二方面,提供一种访问文件的装置,包括:接收模块,用于接收访问文件的访问请求,所述访问请求中携带有待访问文件的标识,所述文件为文件系统中的任意文件,所述文件系统中所有文件的数据存储于内存中,所述内存是非易失性存储介质,所述文件存储在所述内存的第一物理空间中;获取模块,用于根据所述文件的标识从所述文件的元数据中获取第一虚拟空间的信息,所述第一虚拟空间为根据所述内存的第一物理空间虚拟的连续的地址空间;建立模块,用于建立所述第一虚拟空间和访问所述文件的进程的第二虚拟空间之间的映射关系,其中,所述第二虚拟空间为所述进程的虚拟空间中的一段连续的地址空间;链入模块,用于根据所述映射关系,将所述文件的文件页表链入所述进程的页表中,其中,所述文件页表用于将所述第一虚拟空间中的虚拟地址映射至所述第一物理空间中的物理地址;访问模块,用于根据链入所述文件页表后的进程的页表访问所述文件在所述内存中的物理地址。
结合第二方面,在第二方面的一种实现方式中,所述链入模块具体用于:根据所述第一虚拟空间的起始地址以及所述映射关系,确定所述第二虚拟空间的起始地址;在所述进程的页表中确定与所述第二虚拟空间的起始地址对应的页目录项;在所述页目录项中记录所述文件页表的基地址。
结合第二方面或其上述实现方式的任一种,在第二方面的另一种实现方式中,所述建立模块具体用于记录所述第一虚拟空间的地址和所述第二虚拟空间的地址的位置偏移量。
结合第二方面或其上述实现方式的任一种,在第二方面的另一种实现方式中,所述第一虚拟空间的地址和所述第二虚拟空间的地址的位置偏移量为0。
结合第二方面或其上述实现方式的任一种,在第二方面的另一种实现方式中,所述装置还包括:虚拟模块,用于根据所述内存的第一物理空间虚拟所述第一虚拟空间。
结合第二方面或其上述实现方式的任一种,在第二方面的另一种实现方式中,所述访问请求为写请求,所述访问请求中携带有待写入数据以及所述
访问请求的起始地址,所述访问模块具体用于:确定根据链入所述文件页表后的进程的页表无法获得所述访问请求的起始地址对应的物理地址;在所述内存中为所述文件分配新的物理地址;将所述待写入数据写入所述新的物理地址中。
结合第二方面或其上述实现方式的任一种,在第二方面的另一种实现方式中,还包括:添加模块,用于向所述第一虚拟空间添加新的虚拟地址;所述建立模块还用于在所述文件页表中建立所述新的虚拟地址和所述新的物理地址之间的映射关系。
本发明实施例中,当进程访问文件时,建立根据存储文件的第一物理空间虚拟的第一虚拟空间和进程中的第二虚拟空间之间的映射关系,并基于该映射关系将该文件的文件页表链入该进程的页表中,由于该文件页表记录有第一虚拟空间中的虚拟地址和第一物理空间中的物理地址之间的映射关系,从而可以通过链入该文件页表后的进程的页表实现进程对文件的访问。这与传统的BIO访问文件的方式相比,少了从磁盘向内存中拷贝数据块的过程,提高了文件访问效率。
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例的附图。
图1是本发明实施例的访问文件的方法的示意性流程图。
图2是第一虚拟空间和第二虚拟空间映射关系的一个示例图。
图3是第一虚拟空间和第二虚拟空间映射关系的另一个示例图。
图4是本发明实施例的访问文件的装置的示意性框图。
图5是本发明实施例的访问文件的装置的示意性框图。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。
为了更好的描述本发明实施例,先简单介绍一下虚拟存储器(virtual
memory)的概念。众所周知,程序要放到内存中运行。但随着程序规模的不断增大,内存容量很难容纳一个完整的程序,虚拟存储器的概念应运而生。虚拟存储器的基本思想是程序,数据,堆栈的总的大小可以超过物理存储器的大小,操作系统把当前使用的部分保留在内存中,而把其他未被使用的部分保存在磁盘上。比如对一个16MB的程序和一个内存只有4MB的机器,操作系统通过选择,可以决定各个时刻将哪4M的内容保留在内存中,并在需要时在内存和磁盘间交换程序片段,这样就可以把这个16M的程序运行在一个只具有4M内存的机器上了。
本领域人员可以知道,在计算机系统中,虚拟地址空间是进程能够访问的一段虚拟地址范围。虚拟地址空间的大小通常是由计算机的指令集体系结构(instruction set architecture)来确定的。例如,一个32位的中央处理器(Central Processing Unit,CPU),提供的虚拟地址空间为0~0xFFFFFFFF(4G),。虚拟地址空间中的某一个地址我们称之为虚拟地址。与虚拟地址空间和虚拟地址相对应的则是物理地址空间和物理地址。物理地址空间是指内存的物理地址范围。物理地址空间中的某一个地址我们称之为物理地址。通常,物理地址空间小于虚拟地址空间,物理地址空间可以映射到虚拟地址空间中。例如,对于一台内存为256M的32bit x86主机来说,它的虚拟地址空间范围是0~0xFFFFFFFF(4G),而物理地址空间范围是0x000000000~0x0FFFFFFF(256M)。
现有技术中,大多数机器均使用虚拟存储器,虚拟地址(或称线性地址)不是被直接送到内存地址总线上,而是送到MMU(Memory Management Unit,内存管理单元)中,从而把虚拟地址映射为物理地址。也就是说,MMU用于实现程序的虚拟地址到内存的物理地址的映射。
为了实现程序的虚拟地址到内存的物理地址的映射,MMU引入分页(paging)机制。具体地,在分页中,为了效率起见,虚拟地址空间以页(page)为单位被划分,可以将虚拟地址空间中的页称为虚拟页,而相应的物理地址空间也以页为单位被划分,可以将物理地址空间的页称为物理页(或称物理页框),其中,虚拟页和物理页的大小相同。
在引入页这个概念的基础上,MMU采用多级页表的形式实现虚拟地址到物理地址的索引。具体而言,一个虚拟地址,大小4个字节(32bit),包含找到物理地址的信息,分为3个部分:
第22位到第31位这10位(最高10位)是页目录中的索引;
第12位到第21位这10位是页表中的索引;
第0位到第11位这12位(低12位)是页内偏移。
对于一个要转换成物理地址的虚拟地址,CPU首先根据控制寄存器CR3中的值,找到页目录所在的物理页。然后根据虚拟地址的第22位到第31位这10位(最高的10bit)的值作为索引,找到相应的PDE(page directory entry,页目录项),PDE中有这个虚拟地址所对应页表的物理地址。有了页表的物理地址,根据虚拟地址的第12位到第21位这10位的值作为索引,找到该页表中相应的PTE(page table entry,页表项)。页表项中就有这个虚拟地址所对应物理页的物理地址。最后用虚拟地址的最低12位,也就是页内偏移,加上这个物理页的物理地址,就得到了该虚拟地址所对应的物理地址。
一个页目录有1024项,虚拟地址最高的10bit刚好可以索引1024项(2的10次方等于1024)。一个页表也有1024项,虚拟地址中间部分的10bit,刚好索引1024项。虚拟地址最低的12bit(2的12次方等于4096),作为页内偏移,刚好可以索引4KB,也就是一个物理页中的每个字节。
一个虚拟地址转换成物理地址的计算过程就是,处理器通过CR3找到当前页目录所在物理页,取虚拟地址的高10bit,然后把这10bit左移2bit(因为每个页目录项4个字节长,左移2bit相当于乘4)得到在该页中的地址,取出该地址处的PDE(4个字节),就找到了该虚拟地址对应页表所在物理页,取虚拟地址第12位到第21位这10位,然后把这10bit左移2bit(因为每个页表项4个字节长,左移2bit相当于乘4)得到在该页中的地址,取出该地址处的PTE(4个字节),就找到了该虚拟地址对应物理页的地址,最后加上12bit的页内偏移得到了物理地址。
一个32bit的指针,可以寻址范围0x00000000-0xFFFFFFFF,4GB大小。也就是说一个32bit的指针可以寻址整个4GB地址空间的每一个字节。一个页表项负责4K的地址空间和物理内存的映射,一个页表1024项,也就是负责1024*4k=4M的地址空间的映射。一个页目录项,对应一个页表。一个页目录有1024项,也就对应着1024个页表,每个页表负责4M地址空间的映射。1024个页表负责1024*4M=4G的地址空间映射。一个进程有一个页目录。所以以页为单位,页目录和页表可以保证4G的地址空间中的每页和物理内存的映射。
每个进程都有自己的4G地址空间,从0x00000000-0xFFFFFFFF。通过每个进程自己的一套页目录和页表来实现。由于每个进程有自己的页目录和页表,所以每个进程的地址空间映射的物理内存是不一样的。两个进程的同一个虚拟地址处(如果都有物理内存映射)的值一般是不同的,因为他们往往对应不同的物理页。
以上详细描述了MMU从程序的虚拟地址到内存的物理地址的映射过程。在本发明实施例中,采用NVM介质作为内存,利用基于paging的MMU,实现程序对文件的直接访问。
下面结合图1,详细描述本发明实施例的访问文件的方法。需要说明的是,本发明实施例涉及基于内存的文件系统。在本发明实施例中,内存中存储有文件系统和文件。本领域技术人员可以知道,文件系统是操作系统中负责管理和存储文件信息的软件结构。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。文件系统由三部分组成:文件系统的接口、对文件操纵和管理的软件集合、文件数据和属性。文件系统的中心概念是超级块(superblock)、i节点(inode)、数据块(data block)、目录块(directory block)和间接块(indirection block)。超级块包括文件系统的总体信息,比如文件系统的大小。inode中包括除了文件名以外的一个文件的所有信息。文件名与inode数目一起存在目录块中,目录条目包括文件名和文件的inode数目。i节点中只有少量数据块数的空间,如果需要更多,会动态分配指向数据块的指针空间,这些动态分配的块是间接块。在本发明实施例中,内存中还可以存储文件的数据和元数据。需要说明的是,在本发明实施例中,内存为非易失性存储器NVM。
图1是本发明实施例的访问文件的方法的示意性流程图。图1的方法包括:
110、接收访问文件的访问请求,所述访问请求中携带有待访问的文件的标识。可以理解的是,所述文件可以为文件系统中的任意一个文件。在本发明实施例中,文件系统中所有文件的数据存储于内存中,内存是非易失性存储介质,该文件的数据存储在该内存的第一物理空间中。实际应用中,文件标识可以为文件名。例如,File_1.doc。文件标识为文件系统识别文件的唯一标识。
现有技术中,由于内存无法长久保存数据,将文件系统中文件的数据存储在磁盘中,内存作为CPU和磁盘之间的桥梁,实现文件的访问。本发明实施例中的内存采用的是NVM介质,该内存具有非易失性,能够长久存储数据,因此,可以将文件系统中的所有文件存储在该内存中,这样就可以省去将磁盘中存储的数据拷贝到内存的过程,CPU可以直接访问存储在内存中的文件数据。
120、根据所述文件标识从文件的元数据中获取第一虚拟空间的信息,第一虚拟空间为根据内存的第一物理空间虚拟的连续的地址空间。
应理解,文件的数据通常以物理页的形式存储于内存中,在本发明实施例中,第一物理空间是指由存储文件数据的所有物理页组成的物理空间。举例来说,存储文件数据的物理页通常是非连续的,为了方便文件的管理,本发明实施例中将第一物理空间虚拟成一段连续的地址空间,即上述第一虚拟空间,并将该第一虚拟空间的信息存储在文件的元数据中。第一虚拟空间的信息可用于指示第一虚拟空间的地址范围,第一虚拟空间的信息的呈现方式可以有多种,例如,可以存储第一虚拟空间的起始地址和该第一虚拟空间的大小,或者,也可以直接存储第一虚拟地址空间的地址范围。
实际应用中,可以在建立文件系统的过程中根据第一物理空间虚拟第一虚拟空间,也可以在接收请求后再根据接收的请求将第一物理空间虚拟为第一虚拟空间。在此不对虚拟第一虚拟空间的时间进行限制,也不对第一虚拟空间的虚拟方式进行限制。
130、建立第一虚拟空间和访问文件的进程的第二虚拟空间之间的映射关系,其中,第二虚拟空间为进程的虚拟空间中的一段连续的地址空间。
具体而言,第二虚拟空间可用来表示文件在进程的虚拟空间中所占的地址空间,也就是说,进程需要通过该第二虚拟空间来实现文件的访问。第一虚拟空间和第二虚拟空间之间的映射方式可以是平行映射,也可以是偏移映射。
所谓“平行映射”,是指第一虚拟空间和第二虚拟空间的地址范围相同,图2是平行映射的示意图,在图2中,假设文件的数据通过4个物理页存储,该4个物理页组成了上述第一物理空间,且该4个物理页离散分布在内存物理空间中。本发明实施例中,先基于该4个物理页,虚拟出连续的4个虚拟页,这4个虚拟页构成第一虚拟空间,然后通过该文件的文件页表,建立第
一虚拟空间中的虚拟页和第一物理空间中的物理页的映射关系,从而建立了第一虚拟地址空间中的虚拟地址和第一物理空间中的物理地址的映射关系。当进程要访问文件时,将第一虚拟空间平行地映射至进程的虚拟空间中,得到第二虚拟地址空间,从图2可以看出,第一虚拟空间和第二虚拟空间的起始地址和大小均相同。
所谓“偏移映射”,是指第一虚拟空间和第二虚拟空间的地址范围不同,图3是偏移映射的示意图,在图3中,假设文件的数据通过4个物理页存储,该4个物理页组成了上述第一物理空间,且该4个物理页离散分布在内存物理空间中。本发明实施例中,先基于该4个物理页,虚拟出连续的4个虚拟页,这4个虚拟页构成第一虚拟空间。然后通过该文件的文件页表,建立第一虚拟空间中的虚拟页和第一物理空间中的物理页的映射关系,从而建立了第一虚拟地址空间中的虚拟地址和第一物理空间中的物理地址的映射关系。当进程要访问文件时,将第一虚拟空间按照一定的偏移量映射至进程的虚拟空间中,得到第二虚拟地址空间,从图3可以看出,第一虚拟空间和第二虚拟空间的大小相同,但起始地址具有一定的偏移量。
步骤130可包括:记录第一虚拟空间的地址和第二虚拟空间的地址的位置偏移量。可以理解的是,当采用平行映射时,第一虚拟空间的地址和第二虚拟空间的地址的位置偏移量为0;当采用偏移映射时,第一虚拟空间的地址和第二虚拟空间的地址的位置偏移量大于0。
实际应用中,可以记录第一虚拟空间的大小、第一虚拟空间的起始地址和第二虚拟空间的起始地址的偏移量来确定第一虚拟空间和第二虚拟空间的映射关系。还可以记录第一虚拟空间的大小、记录第一虚拟空间的结束地址和第二虚拟空间的结束地址的偏移量来确定第一虚拟空间和第二虚拟空间的映射关系。还可以通过记录第一虚拟空间中的各个地址和对应的第二虚拟空间中的各个地址的偏移量来确定第一虚拟空间和第二虚拟空间的映射关系。
140、根据映射关系,将文件的文件页表链入进程的页表中,其中,文件页表用于将第一虚拟空间中的虚拟地址映射至第一物理空间中的物理地址。
可选地,作为一个实施例,步骤140可包括:根据第一虚拟空间的起始地址以及映射关系,确定第二虚拟空间的起始地址;在进程的页表中确定与
第二虚拟空间的起始地址对应的页目录项;在页目录项中记录文件页表的基地址。
应理解,虚拟存储器是基于MMU的映射机制实现虚拟地址到内存的物理地址转换的,而MMU映射机制的实现需要利用进程的页表。实际中,进程的虚拟空间中的一个虚拟地址对应进程页表的一个页目录项。当建立第一虚拟空间和第二虚拟空间之间的映射关系后,就可以根据第一虚拟空间的起始地址以及该映射关系得到第二虚拟空间的起始地址。例如,在图2所示的映射方式下,由于第一虚拟空间平行映射到第二虚拟空间,第一虚拟空间和第二虚拟空间的起始地址相同,且第一虚拟空间和第二虚拟空间的大小相同。在图3所示的偏移映射方式下,虽然第一虚拟空间和第二虚拟空间的大小相同,但第一虚拟空间的起始地址与第二虚拟空间的起始地址不同,两者的差为位置偏移量。因此,在图3所示的映射方式下,可以根据第一虚拟空间的起始地址以及位置偏移量获得第二虚拟空间的起始地址。
在获得第二虚拟空间的起始地址之后,可以基于该第二虚拟空间的起始地址,从进程页表中找到对应的页目录项。页目录项中可以存储地址的指针,将该指针指向文件页表的基地址,从而将文件页表链入了进程页表。
150、根据链入文件页表后的进程的页表访问文件在内存中的物理地址。
实际中,进程通过操作第二虚拟空间的起始地址实现对文件的访问。具体地,进程在访问文件时,MMU首先会找到第二虚拟空间起始地址对应的页目录项,由于该页目录项中记录了文件的文件页表的基地址,MMU就利用该文件页表,将第一虚拟空间中的虚拟地址映射至第一物理空间中的物理地址。
本发明实施例中,当进程访问文件时,建立根据存储文件的第一物理空间虚拟的第一虚拟空间和进程中的第二虚拟空间之间的映射关系,并基于该映射关系将该文件的文件页表链入该进程的页表中,由于该文件页表记录有第一虚拟空间中的虚拟地址和第一物理空间中的物理地址之间的映射关系,从而可以通过链入该文件页表后的进程的页表实现进程对文件的访问。这与传统的BIO访问文件的方式相比,少了从磁盘向内存中拷贝数据块的过程,提高了文件访问效率。
应理解,上述文件的访问请求可以是读请求,也可以是写请求。当该访问请求为读请求,或者该访问请求虽然为写请求,但该写请求的目的是利用
待写入数据覆盖文件中的原有数据时,第二虚拟空间和文件的文件页表可以保持不变。
当该访问请求为写请求,但该写请求的目的是在文件的原有数据基础上增添新数据时,需要相应地扩大第一虚拟空间,并更新文件页表。例如,访问请求为写请求,访问请求中携带有待写入数据以及访问请求的起始地址,步骤150可包括:确定根据链入所述文件页表后的进程的页表无法获得访问请求的起始地址对应的物理地址;在内存中为文件分配新的物理地址;将待写入数据写入新的物理地址中。访问请求的起始地址是进程虚拟空间中的虚拟地址,若确定根据进程的页表无法获得访问请求的起始地址对应的物理地址,则表示待写入数据写入的地址已经超出了第一虚拟空间的地址范围。换句话说,待写入数据并非对文件中原有数据的覆盖,而是向文件增添新的数据。实际应用中,一种情况下,随着文件的扩展,可能会发生为该文件已分配的内存物理空间不够的情况,需要新增存储该文件的内存空间。在另一种情况下,为了灵活分配内存物理空间,节约空闲的内存,提高系统的吞吐率,在创建新文件时,并不为文件预分配内存物理空间,而只是在该文件有数据写入的过程中,按照待写入数据的大小为文件分配内存物理空间。
在本发明实施例中,第一虚拟空间可以大于所述文件在内存的物理空间中的实际占用的物理空间,从而根据第一虚拟空间映射的第二虚拟空间也可以大于所述文件在内存的物理空间中实际占用的物理空间。换一种表达方式,在本发明实施例中,第一虚拟空间和第二虚拟空间都可以大于所述文件的大小。在这种情况下,若需要对所述文件进行新增写,则根据访问请求的起始地址查询所述链入文件页表后的进程页表时,可能找不到访问请求的起始地址对应的物理地址。在这种情况下,MMU会引起缺页中断,请求操作系统内核为所述访问所述文件的进程分配内存的物理地址。具体地,操作系统内核可以根据缺页中断请求从内存的空闲物理页中为所述文件分配物理页。
进一步地,在内存中为文件分配新的物理地址之后,图1的方法还可包括:向所述第一虚拟空间添加新的虚拟地址,并在文件页表中建立新的虚拟地址和新的物理地址之间的映射关系。由于第一虚拟空间是根据内存中存储文件的物理空间映射的虚拟空间,当在内存中为所述文件分配新的物理地址后,可以根据新分配的物理地址向所述第一虚拟空间添加新的虚拟地址,以
扩展第一虚拟空间。采用这种方案,在将新的数据添加至文件后,及时更新第一虚拟空间中的虚拟地址和文件页表,能够保证后续对文件访问和管理的准确性。
上文结合图1至图3,详细描述了本发明实施例的访问文件的方法,下文结合图4至图5,详细描述本发明实施例的访问文件的装置。
图4是本发明实施例的访问文件的装置的示意性框图。访问文件的装置400包括:
接收模块410,用于接收访问文件的访问请求,访问请求中携带有待访问文件的标识,文件为文件系统中的任意文件,文件系统中所有文件的数据存储于内存中,内存是非易失性存储介质,文件存储在内存的第一物理空间中;
获取模块420,用于根据文件的标识从文件的元数据中获取第一虚拟空间的信息,第一虚拟空间为根据内存的第一物理空间虚拟的连续的地址空间;
建立模块430,用于建立第一虚拟空间和访问文件的进程的第二虚拟空间之间的映射关系,其中,第二虚拟空间为进程的虚拟空间中的一段连续的地址空间;
链入模块440,用于根据映射关系,将文件的文件页表链入进程的页表中,其中,文件页表用于将第一虚拟空间中的虚拟地址映射至第一物理空间中的物理地址;
访问模块450,用于根据链入文件页表后的进程的页表访问文件在内存中的物理地址。
本发明实施例中,当进程访问文件时,建立根据存储文件的第一物理空间虚拟的第一虚拟空间和进程中的第二虚拟空间之间的映射关系,并基于该映射关系将该文件的文件页表链入该进程的页表中,由于该文件页表记录有第一虚拟空间中的虚拟地址和第一物理空间中的物理地址之间的映射关系,从而可以通过链入该文件页表后的进程的页表实现进程对文件的访问。这与传统的BIO访问文件的方式相比,少了从磁盘向内存中拷贝数据块的过程,提高了文件访问效率。
可选地,作为一个实施例,链入模块440具体用于:根据第一虚拟空间的起始地址以及映射关系,确定第二虚拟空间的起始地址;在进程的页表中
确定与第二虚拟空间的起始地址对应的页目录项;在页目录项中记录文件页表的基地址。
可选地,作为一个实施例,建立模块430具体用于记录第一虚拟空间的地址和第二虚拟空间的地址的位置偏移量。
可选地,作为一个实施例,第一虚拟空间的地址和第二虚拟空间的地址的位置偏移量可以为0。
可选地,作为一个实施例,装置400还可包括:虚拟模块,用于根据内存的第一物理空间虚拟第一虚拟空间。
可选地,作为一个实施例,访问请求为写请求,访问请求中携带有待写入数据以及访问请求的起始地址,访问模块450可具体用于:确定根据链入文件页表后的进程的页表无法获得访问请求的起始地址对应的物理地址;在内存中为文件分配新的物理地址;将待写入数据写入新的物理地址中。
可选地,作为一个实施例,装置400还可包括:添加模块,用于向第一虚拟空间添加新的虚拟地址;建立模块430还用于在文件页表中建立新的虚拟地址和新的物理地址之间的映射关系。
应理解,图4的访问文件的装置400能够实现图1中的各个步骤,关于各个模块的具体描述可以参见前面的方法实施例的描述,为避免重复,此处不再赘述。
图5是本发明实施例的存储设备的示意性框图。应理解,图5的存储设备500能够实现图1中的各个步骤,为避免重复,此处不再赘述。存储设备500可以包括:
存储器510,用于存储程序。具体地,存储器510可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。程序可以包括程序代码,所述程序代码包括计算机操作指令。
处理器520,用于执行程序,当所述程序被执行时,所述处理器520用于:
接收访问文件的访问请求,访问请求中携带有待访问文件的标识,文件为文件系统中的任意文件,文件系统中所有文件的数据存储于内存中,内存是非易失性存储介质,文件存储在内存的第一物理空间中;
根据文件的标识从文件的元数据中获取第一虚拟空间的信息,第一虚拟空间为根据内存的第一物理空间虚拟的连续的地址空间;
建立第一虚拟空间和访问文件的进程的第二虚拟空间之间的映射关系,其中,第二虚拟空间为进程的虚拟空间中的一段连续的地址空间;
根据映射关系,将文件的文件页表链入进程的页表中,其中,文件页表用于将第一虚拟空间中的虚拟地址映射至第一物理空间中的物理地址;
根据链入文件页表后的进程的页表访问文件在内存中的物理地址。
实际应用中,处理器520可能是一个CPU,或者是ASIC(Application Specific Integrated Circuit,应用特定集成电路),或者是被配置成实施本发明实施例的一个或多个集成电路。
本发明实施例中,当进程访问文件时,建立根据存储文件的第一物理空间虚拟的第一虚拟空间和进程中的第二虚拟空间之间的映射关系,并基于该映射关系将该文件的文件页表链入该进程的页表中,由于该文件页表记录有第一虚拟空间中的虚拟地址和第一物理空间中的物理地址之间的映射关系,从而可以通过链入该文件页表后的进程的页表实现进程对文件的访问。这与传统的BIO访问文件的方式相比,少了从磁盘向内存中拷贝数据块的过程,提高了文件访问效率。
可选地,作为一个实施例,处理器520具体用于根据第一虚拟空间的起始地址以及映射关系,确定第二虚拟空间的起始地址;在进程的页表中确定与第二虚拟空间的起始地址对应的页目录项;在页目录项中记录文件页表的基地址。
可选地,作为一个实施例,处理器520具体用于记录所述第一虚拟空间的地址和所述第二虚拟空间的地址的位置偏移量。
可选地,作为一个实施例,所述第一虚拟空间的地址和所述第二虚拟空间的地址的位置偏移量为0。
可选地,作为一个实施例,处理器520还可用于根据内存的第一物理空间虚拟第一虚拟空间。
可选地,作为一个实施例,所述访问请求为写请求,所述访问请求中携带有待写入数据以及所述访问请求的起始地址,处理器520具体用于确定根据链入文件页表后的进程的页表无法获得所述访问请求的起始地址对应的物理地址;在所述内存中为所述文件分配新的物理地址;将所述待写入数据写入所述新的物理地址中。
可选地,作为一个实施例,处理器520还用于向所述第一虚拟空间添加
新的虚拟地址;在所述文件页表中建立所述新的虚拟地址和所述新的物理地址之间的映射关系。
应理解,在本发明实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此。
Claims (14)
- 一种访问文件的方法,所述方法应用于在内存中建立文件系统的存储设备,其中,所述内存是非易失性存储器NVM,其特征在于,包括:接收访问文件的访问请求,所述访问请求中携带有待访问文件的标识,所述文件系统中所有文件的数据存储于内存中,所述内存是非易失性存储介质,所述文件存储在所述内存的第一物理空间中;根据所述文件的标识从所述文件的元数据中获取第一虚拟空间的信息,所述第一虚拟空间为根据所述内存的第一物理空间虚拟的连续的地址空间;建立所述第一虚拟空间和访问所述文件的进程的第二虚拟空间之间的映射关系,其中,所述第二虚拟空间为所述进程的虚拟空间中的一段连续的地址空间;根据所述映射关系,将所述文件的文件页表链入所述进程的页表中,其中,所述文件页表用于将所述第一虚拟空间中的虚拟地址映射至所述第一物理空间中的物理地址;根据链入所述文件页表后的进程的页表访问所述文件在所述内存中的物理地址。
- 如权利要求1所述的方法,其特征在于,所述根据所述映射关系,将所述文件的文件页表链入所述进程的页表中,包括:根据所述第一虚拟空间的起始地址以及所述映射关系,确定所述第二虚拟空间的起始地址;在所述进程的页表中确定与所述第二虚拟空间的起始地址对应的页目录项;在所述页目录项中记录所述文件页表的基地址。
- 如权利要求1或2所述的方法,其特征在于,所述建立所述第一虚拟空间和访问所述文件的进程的第二虚拟空间之间的映射关系,包括:记录所述第一虚拟空间的地址和所述第二虚拟空间的地址的位置偏移量。
- 如权利要求3所述的方法,其特征在于,所述第一虚拟空间的地址和所述第二虚拟空间的地址的位置偏移量为0。
- 如权利要求1-4中任意一项所述的方法,其特征在于,还包括:根据所述内存的第一物理空间虚拟所述第一虚拟空间。
- 如权利要求1-5中任一项所述的方法,其特征在于,所述访问请求为写请求,所述访问请求中携带有待写入数据以及所述访问请求的起始地址,所述根据链入所述文件页表后的进程的页表访问所述文件在所述内存中的物理地址,包括:确定根据链入所述文件页表后的进程的页表无法获得所述访问请求的起始地址对应的物理地址;在所述内存中为所述文件分配新的物理地址;将所述待写入数据写入所述新的物理地址中。
- 如权利要求6所述的方法,其特征在于,所述在所述内存中为所述文件分配新的物理地址之后,所述方法还包括:向所述第一虚拟空间添加新的虚拟地址,并在所述文件页表中建立所述新的虚拟地址和所述新的物理地址之间的映射关系。
- 一种访问文件的装置,其特征在于,包括:接收模块,用于接收访问文件的访问请求,所述访问请求中携带有待访问文件的标识,所述文件为文件系统中的任意文件,所述文件系统中所有文件的数据存储于内存中,所述内存是非易失性存储介质,所述文件存储在所述内存的第一物理空间中;获取模块,用于根据所述文件的标识从所述文件的元数据中获取第一虚拟空间的信息,所述第一虚拟空间为根据所述内存的第一物理空间虚拟的连续的地址空间;建立模块,用于建立所述第一虚拟空间和访问所述文件的进程的第二虚拟空间之间的映射关系,其中,所述第二虚拟空间为所述进程的虚拟空间中的一段连续的地址空间;链入模块,用于根据所述映射关系,将所述文件的文件页表链入所述进程的页表中,其中,所述文件页表用于将所述第一虚拟空间中的虚拟地址映射至所述第一物理空间中的物理地址;访问模块,用于根据链入所述文件页表后的进程的页表访问所述文件在所述内存中的物理地址。
- 如权利要求8所述的装置,其特征在于,所述链入模块具体用于:根据所述第一虚拟空间的起始地址以及所述映射关系,确定所述第二虚拟空间的起始地址;在所述进程的页表中确定与所述第二虚拟空间的起始地址对应的页目录项;在所述页目录项中记录所述文件页表的基地址。
- 如权利要求8或9所述的装置,其特征在于,所述建立模块具体用于记录所述第一虚拟空间的地址和所述第二虚拟空间的地址的位置偏移量。
- 如权利要求10所述的装置,其特征在于,所述第一虚拟空间的地址和所述第二虚拟空间的地址的位置偏移量为0。
- 如权利要求8-11中任意一项所述的装置,其特征在于,所述装置还包括:虚拟模块,用于根据所述内存的第一物理空间虚拟所述第一虚拟空间。
- 如权利要求8-12中任一项所述的装置,其特征在于,所述访问请求为写请求,所述访问请求中携带有待写入数据以及所述访问请求的起始地址,所述访问模块具体用于:确定根据链入所述文件页表后的进程的页表无法获得所述访问请求的起始地址对应的物理地址;在所述内存中为所述文件分配新的物理地址;将所述待写入数据写入所述新的物理地址中。
- 如权利要求13所述的装置,其特征在于,还包括:添加模块,用于向所述第一虚拟空间添加新的虚拟地址;所述建立模块还用于在所述文件页表中建立所述新的虚拟地址和所述新的物理地址之间的映射关系。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2014/092513 WO2016082191A1 (zh) | 2014-11-28 | 2014-11-28 | 访问文件的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105830022A true CN105830022A (zh) | 2016-08-03 |
CN105830022B CN105830022B (zh) | 2019-03-08 |
Family
ID=56073385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480037874.2A Active CN105830022B (zh) | 2014-11-28 | 2014-11-28 | 访问文件的方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105830022B (zh) |
WO (1) | WO2016082191A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110046106A (zh) * | 2019-03-29 | 2019-07-23 | 海光信息技术有限公司 | 一种地址转换方法、地址转换模块及系统 |
CN110764995A (zh) * | 2019-09-05 | 2020-02-07 | 北京字节跳动网络技术有限公司 | 一种检测文件访问异常的方法、装置、介质和电子设备 |
CN111414248A (zh) * | 2019-01-04 | 2020-07-14 | 阿里巴巴集团控股有限公司 | 内存管理方法、装置及计算设备 |
CN111512290A (zh) * | 2017-12-27 | 2020-08-07 | 华为技术有限公司 | 文件页表管理技术 |
CN112256598A (zh) * | 2020-10-27 | 2021-01-22 | 上海壁仞智能科技有限公司 | 一种内存分配的方法及装置、内存寻址的方法及装置 |
CN112650603A (zh) * | 2020-12-28 | 2021-04-13 | 北京天融信网络安全技术有限公司 | 内存管理方法、装置、电子设备及存储介质 |
CN112732269A (zh) * | 2021-01-15 | 2021-04-30 | 北京博雅慧视智能技术研究院有限公司 | 一种应用于avs2硬件编码器的物理地址的访问方法及装置 |
CN116069689A (zh) * | 2023-03-02 | 2023-05-05 | 北京象帝先计算技术有限公司 | 页表访问方法、系统、电子组件及页表配置方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110007869B (zh) * | 2019-04-12 | 2020-06-30 | 苏州浪潮智能科技有限公司 | 一种内存数据拷贝方法、装置、设备及计算机存储介质 |
CN111143241A (zh) * | 2019-12-30 | 2020-05-12 | 深圳Tcl数字技术有限公司 | 内存数据迁移方法、装置和存储介质 |
CN111966608B (zh) * | 2020-08-14 | 2023-06-06 | 苏州浪潮智能科技有限公司 | 一种外存储器的直接内存储器访问方法和装置 |
CN112099903B (zh) * | 2020-08-18 | 2023-01-31 | 海光信息技术股份有限公司 | 一种虚拟机的内存管理方法、装置、cpu芯片及服务器 |
CN115061954B (zh) * | 2022-08-18 | 2022-11-29 | 统信软件技术有限公司 | 一种缺页中断处理方法、计算设备及存储介质 |
CN116483738B (zh) * | 2023-06-20 | 2023-09-05 | 苏州浪潮智能科技有限公司 | 数据访问方法及装置、存储介质及电子装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN86108127A (zh) * | 1986-01-16 | 1987-07-29 | 国际商用机器公司 | 在多任务虚拟存储器虚拟计算机型数据处理系统中控制输入输出存取的方法 |
US8204871B1 (en) * | 2010-09-28 | 2012-06-19 | Emc Corporation | Extended file mapping cache for fast input-output |
CN102609254A (zh) * | 2012-01-19 | 2012-07-25 | 中国科学院计算技术研究所 | 获取对象级访存行为的方法及装置 |
CN102707966A (zh) * | 2012-04-12 | 2012-10-03 | 腾讯科技(深圳)有限公司 | 加速操作系统启动的方法及装置、预取信息生成方法及装置和终端 |
CN102831069A (zh) * | 2012-06-30 | 2012-12-19 | 华为技术有限公司 | 内存处理方法、内存管理设备 |
CN103218312A (zh) * | 2013-03-28 | 2013-07-24 | 中国科学院上海微系统与信息技术研究所 | 文件访问方法及系统 |
CN103257929A (zh) * | 2013-04-18 | 2013-08-21 | 中国科学院计算技术研究所 | 一种虚拟机内存映射方法及系统 |
CN103425502A (zh) * | 2012-05-15 | 2013-12-04 | 腾讯科技(深圳)有限公司 | 一种操作系统的预取启动方法和装置 |
WO2014025595A1 (en) * | 2012-08-04 | 2014-02-13 | Microsoft Corporation | Function evaluation using lightweight process snapshots |
-
2014
- 2014-11-28 CN CN201480037874.2A patent/CN105830022B/zh active Active
- 2014-11-28 WO PCT/CN2014/092513 patent/WO2016082191A1/zh active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN86108127A (zh) * | 1986-01-16 | 1987-07-29 | 国际商用机器公司 | 在多任务虚拟存储器虚拟计算机型数据处理系统中控制输入输出存取的方法 |
US8204871B1 (en) * | 2010-09-28 | 2012-06-19 | Emc Corporation | Extended file mapping cache for fast input-output |
CN102609254A (zh) * | 2012-01-19 | 2012-07-25 | 中国科学院计算技术研究所 | 获取对象级访存行为的方法及装置 |
CN102707966A (zh) * | 2012-04-12 | 2012-10-03 | 腾讯科技(深圳)有限公司 | 加速操作系统启动的方法及装置、预取信息生成方法及装置和终端 |
CN103425502A (zh) * | 2012-05-15 | 2013-12-04 | 腾讯科技(深圳)有限公司 | 一种操作系统的预取启动方法和装置 |
CN102831069A (zh) * | 2012-06-30 | 2012-12-19 | 华为技术有限公司 | 内存处理方法、内存管理设备 |
WO2014025595A1 (en) * | 2012-08-04 | 2014-02-13 | Microsoft Corporation | Function evaluation using lightweight process snapshots |
CN103218312A (zh) * | 2013-03-28 | 2013-07-24 | 中国科学院上海微系统与信息技术研究所 | 文件访问方法及系统 |
CN103257929A (zh) * | 2013-04-18 | 2013-08-21 | 中国科学院计算技术研究所 | 一种虚拟机内存映射方法及系统 |
Non-Patent Citations (1)
Title |
---|
XIAOJIAN WU等: "SCMFS : A File System for Storage Class Memory", 《SC "11: PROCEEDINGS OF 2011 INTERNATIONAL CONFERENCE FOR HIGH PERFORMANCE COMPUTING, NETWORKING, STORAGE AND ANALYSIS》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111512290A (zh) * | 2017-12-27 | 2020-08-07 | 华为技术有限公司 | 文件页表管理技术 |
CN111512290B (zh) * | 2017-12-27 | 2023-09-22 | 华为技术有限公司 | 文件页表管理技术 |
CN111414248A (zh) * | 2019-01-04 | 2020-07-14 | 阿里巴巴集团控股有限公司 | 内存管理方法、装置及计算设备 |
CN111414248B (zh) * | 2019-01-04 | 2023-03-21 | 阿里巴巴集团控股有限公司 | 内存管理方法、装置及计算设备 |
CN110046106A (zh) * | 2019-03-29 | 2019-07-23 | 海光信息技术有限公司 | 一种地址转换方法、地址转换模块及系统 |
CN110764995A (zh) * | 2019-09-05 | 2020-02-07 | 北京字节跳动网络技术有限公司 | 一种检测文件访问异常的方法、装置、介质和电子设备 |
CN112256598A (zh) * | 2020-10-27 | 2021-01-22 | 上海壁仞智能科技有限公司 | 一种内存分配的方法及装置、内存寻址的方法及装置 |
CN112650603A (zh) * | 2020-12-28 | 2021-04-13 | 北京天融信网络安全技术有限公司 | 内存管理方法、装置、电子设备及存储介质 |
CN112650603B (zh) * | 2020-12-28 | 2024-02-06 | 北京天融信网络安全技术有限公司 | 内存管理方法、装置、电子设备及存储介质 |
CN112732269A (zh) * | 2021-01-15 | 2021-04-30 | 北京博雅慧视智能技术研究院有限公司 | 一种应用于avs2硬件编码器的物理地址的访问方法及装置 |
CN116069689A (zh) * | 2023-03-02 | 2023-05-05 | 北京象帝先计算技术有限公司 | 页表访问方法、系统、电子组件及页表配置方法 |
CN116069689B (zh) * | 2023-03-02 | 2023-07-21 | 北京象帝先计算技术有限公司 | 页表访问方法、系统、电子组件及页表配置方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2016082191A1 (zh) | 2016-06-02 |
CN105830022B (zh) | 2019-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105830022A (zh) | 访问文件的方法和装置 | |
JP6460497B2 (ja) | ファイルアクセス方法およびファイルアクセス装置、ならびに記憶装置 | |
US20170364301A1 (en) | Data deduplication | |
US9514057B2 (en) | Storage module and method for managing logical-to-physical address mapping | |
US9058268B1 (en) | Apparatus, system and method for memory management | |
CN111414248B (zh) | 内存管理方法、装置及计算设备 | |
US9436751B1 (en) | System and method for live migration of guest | |
CN111512290B (zh) | 文件页表管理技术 | |
US11556466B2 (en) | Logical-to-physical data structures | |
CN108595349B (zh) | 大容量存储设备的地址转换方法与装置 | |
US20220237114A1 (en) | Memory system and non-transitory computer readable recording medium | |
CN113326216B (zh) | 存储器子系统控制器及相关方法和存储媒体 | |
CN104516822A (zh) | 一种内存访问方法和设备 | |
US20210124522A1 (en) | Address translation method and system for kv storage device | |
US11347637B2 (en) | Memory system and non-transitory computer readable recording medium | |
CN115079957B (zh) | 请求处理方法、装置、控制器、设备及存储介质 | |
CN108717395B (zh) | 一种降低动态块映射信息占用内存的方法及装置 | |
CN110597741B (zh) | 一种l2p表的读写、更新方法及l2p表 | |
CN107155306B (zh) | 文件页面管理单元、处理设备和文件页面管理方法 | |
CN110825658A (zh) | 闪存控制器及方法 | |
US20230195345A1 (en) | Multi-dimensional solid state drive block access | |
US11940925B2 (en) | Performing memory access operations with a logical-to-physical mapping table with reduced size | |
CN111198651B (zh) | 进行存储空间管理的方法以及数据存储装置及其控制器 | |
CN117420966A (zh) | 物理地址的编址方法及闪存设备 | |
CN115705298A (zh) | 一种存储设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |