CN107155306B - 文件页面管理单元、处理设备和文件页面管理方法 - Google Patents
文件页面管理单元、处理设备和文件页面管理方法 Download PDFInfo
- Publication number
- CN107155306B CN107155306B CN201480037175.8A CN201480037175A CN107155306B CN 107155306 B CN107155306 B CN 107155306B CN 201480037175 A CN201480037175 A CN 201480037175A CN 107155306 B CN107155306 B CN 107155306B
- Authority
- CN
- China
- Prior art keywords
- virtual address
- address
- file
- physical page
- target
- 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
Links
Images
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供一种文件页面管理单元、处理设备和文件页面管理方法,该文件页面管理单元(10)包括:寄存器(11),用于存储进程的文件页表,文件页表用于记录为目标文件分配的虚拟地址段的信息以及目标文件的物理页面基地址,其中目标文件以物理页面为单位存储在非易失性存储器中;处理电路(12),用于根据进程在访问目标文件时的目标虚拟地址查询寄存器存储的文件页表,以确定目标虚拟地址对应的物理页面基地址;处理电路,还用于根据物理页面基地址和目标虚拟地址确定目标文件的物理页面地址,并将物理页面地址发送至内存控制器。该文件页面管理单元能够提高文件管理性能。
Description
技术领域
本发明实施例涉及数据处理领域,并且更具体地,涉及文件页面管理单元、处理设备和文件页面管理方法。
背景技术
下一代NVM(Non-Volatile Memory,非易失性存储器)介质,如PCM(Phase ChangeMemory,相变存储器)、ReRAM(Resistive Random Access Memory,电阻式随机存取存储器)、MRAM(Magnetoresistive Random Access Memory,磁阻式随机存取存储器)等,具有按字节(byte)寻址和访问的能力,可以提供与DRAM(Dynamic Random Access Memory,动态随机存取存储器)相似的接口,并且可以通过类似与内存管理的方式,采用页面(Page)进行管理。
下一代NVM介质可以挂在内存总线上,因此提供了CPU(Central ProcessingUnit,中央处理单元)直接访问NVM介质的可能性。
传统文件系统对文件的访问采用遵循POSIX(可移植操作系统接口,PortableOperating System Interface)标准的接口,比如读(read)、写(write)等,来访问NVM上的文件数据。但是,该方法需要通过系统调用,产生中断及上下文切换,并将数据从NVM拷贝到用户空间的主存,开销比较大。
有些现有操作系统可以提供MMAP(Memory Map,存储器映射)的读写方式,其中通过将文件映射到进程的虚拟地址空间,然后将数据从硬盘读到高速缓存,提供了进程直接访问文件的能力。但是MMAP方式需要在内存中建立高速缓存,并将数据从NVM介质读到高速缓存中,开销比较大,文件管理性能较低。
发明内容
本发明实施例提供一种文件页面管理单元、处理设备和文件页面管理方法,能够提高文件管理性能。
第一方面,提供了一种文件页面管理单元(File Page Management Unit,FMU),包括:寄存器,用于存储进程的文件页表,所述文件页表用于记录为所述进程要访问的目标文件分配的虚拟地址段的信息以及所述目标文件的N个物理页面基地址,其中所述目标文件以物理页面为单位存储在非易失性存储器中,所述目标文件的N个物理页面基地址以一维线性数组的形式记录,所述虚拟地址段包括N个虚拟地址,所述N个虚拟地址和所述N个物理页面基地址一一对应,N为正整数;处理电路,用于根据所述进程在访问所述目标文件时的目标虚拟地址查询所述寄存器存储的文件页表,以确定所述目标虚拟地址对应的物理页面基地址,其中所述目标虚拟地址落入所述为目标文件分配的虚拟地址段;所述处理电路,还用于根据所述目标虚拟地址对应的物理页面基地址和所述目标虚拟地址确定所述目标文件的物理页面地址,并将所述物理页面地址发送至内存控制器。
结合第一方面在第一方面的第一种实现方式中,所述虚拟地址段的信息包括所述虚拟地址段的起始虚拟地址。
结合第一方面的第一种实现方式,在第一方面的第二种实现方式中,所述处理电路在根据所述目标虚拟地址对应的物理页面基地址和所述目标虚拟地址确定所述文件的物理页面地址时,具体用于:
根据所述目标虚拟地址Av1中除页面大小占据的位数之外的剩余高位获得虚拟地址Av2,根据所述起始虚拟地址As1中除页面大小占据的位数之外的剩余高位获得起始虚拟地址As2;
确定虚拟页面索引Iv=Av2-As2;
确定物理页面索引Ip=Iv;
确定物理页面地址指针Pp=Apb+Ip,其中Apb为所述目标虚拟地址对应的物理页面基地址;
根据所述物理页面地址指针Pp获取所述物理页面地址。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,所述FMU位于中央处理单元中或者位于内存管理单元MMU中。
第二方面,提供了一种处理设备,包括判断单元、文件页面管理单元FMU和内存控制器,所述判断单元,用于判断进程在访问目标文件时的目标虚拟地址是否落入文件虚拟地址空间,并且在所述目标虚拟地址落入所述文件虚拟地址空间时将所述目标虚拟地址发送至所述FMU,其中所述文件虚拟地址空间位于进程地址空间中,所述文件虚拟地址空间包括为所述目标文件分配的虚拟地址段,所述目标文件以物理页面为单位存储在非易失性存储器中,所述虚拟地址段包括N个虚拟地址,N为正整数;所述FMU,用于根据所述判断单元发送的目标虚拟地址查询所述FMU上存储的文件页表,以确定所述目标虚拟地址对应的物理页面基地址,其中所述文件页表用于记录为所述目标文件分配的虚拟地址段的信息以及所述目标文件的N个物理页面基地址,所述目标文件的N个物理页面基地址以一维线性数组的形式记录,所述目标虚拟地址落入所述为目标文件分配的虚拟地址段,所述N个虚拟地址和所述N个物理页面基地址一一对应;所述FMU,还用于根据所述目标虚拟地址对应的物理页面基地址和所述目标虚拟地址确定所述目标文件的物理页面地址,并将所述物理页面地址发送至所述内存控制器;内存控制器,用于根据所述物理页面地址对所述目标文件的物理页面进行处理。
结合第二方面,在第二方面的第一种实现方式中,所述虚拟地址段的信息包括所述虚拟地址段的起始虚拟地址。
结合第二方面的第一种实现方式,在第二方面的第二种实现方式中,所述FMU在根据所述目标虚拟地址对应的物理页面基地址和所述目标虚拟地址确定所述文件的物理页面地址时,具体用于:
根据所述目标虚拟地址Av1中除页面大小占据的位数之外的剩余高位获得虚拟地址Av2,根据所述起始虚拟地址As1中除页面大小占据的位数之外的剩余高位获得起始虚拟地址As2;
确定虚拟页面索引Iv=Av2-As2;
确定物理页面索引Ip=Iv;
确定物理页面地址指针Pp=Apb+Ip,其中Apb为所述目标虚拟地址对应的物理页面基地址;
根据所述物理页面地址指针Pp获取所述物理页面地址。
结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,所述判断单元和所述FMU位于所述处理设备的内存管理单元MMU中。
结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,所述处理设备还包括内存管理单元MMU,用于在所述判断单元判断所述目标虚拟地址未落入所述文件虚拟地址空间时,根据所述目标虚拟地址获取对应的物理页面地址。
第三方面,提供了一种文件页面管理方法,包括:确定进程在访问目标文件时的目标虚拟地址,所述目标文件以物理页面为单位存储在非易失性存储器中;根据所述虚拟地址,查询文件页表,以确定所述目标虚拟地址对应的物理页面基地址,其中所述文件页表用于记录为所述目标文件分配的虚拟地址段的信息以及所述目标文件的N个物理页面基地址,所述目标文件的N个物理页面基地址以一维线性数组的形式记录,所述虚拟地址段包括N个虚拟地址,所述N个虚拟地址和所述N个物理页面基地址一一对应,N为正整数,所述目标虚拟地址落入所述为目标文件分配的虚拟地址段;根据所述目标虚拟地址对应的物理页面基地址和所述目标虚拟地址确定所述目标文件的物理页面地址;根据所述物理页面地址对所述目标文件的物理页面进行处理。
结合第三方面,在第三方面的第一种实现方式中,所述虚拟地址段的信息包括所述虚拟地址段的起始虚拟地址。
结合第三方面的第一种实现方式,在第三方面的第二种实现方式中,所述根据所述目标虚拟地址对应的物理页面基地址和所述目标虚拟地址确定所述文件的物理页面地址,包括:
根据所述目标虚拟地址Av1中除页面大小占据的位数之外的剩余高位获得虚拟地址Av2,根据所述起始虚拟地址As1中除页面大小占据的位数之外的剩余高位获得起始虚拟地址As2;
确定虚拟页面索引Iv=Av2-As2;
确定物理页面索引Ip=Iv;
确定物理页面地址指针Pp=Apb+Ip,其中Apb为所述目标虚拟地址对应的物理页面基地址;
根据所述物理页面地址指针Pp获取所述物理页面地址。
结合第三方面及其上述实现方式,在第三方面的另一种实现方式中,在所述确定进程在访问文件时的目标虚拟地址之后,所述方法还包括:判断所述目标虚拟地址是否落入文件虚拟地址空间,其中所述文件虚拟地址空间位于进程地址空间中,所述文件虚拟地址空间包括为所述目标文件分配的虚拟地址段。
结合第三方面及其上述实现方式,在第三方面的另一种实现方式中,还包括:当所述目标虚拟地址落入所述文件虚拟地址空间中时,确定由FMU获取目标文件的物理页面地址;或者,当所述目标虚拟地址未落入所述文件虚拟地址空间中时,确定由内存管理单元MMU根据所述虚拟地址获取对应的物理页面地址。
本发明实施例提供一种文件页面管理单元FMU,可以在进程访问目标文件时,根据存储的文件页表实现目标文件的虚拟地址和物理地址的转换。由于文件页表中记录有目标文件的虚拟地址和对应的物理页面基地址,其中,物理页面的基地址采用一维线性数组形式,这种一维线性数组形式的物理页面基地址易于实现虚拟地址和物理页面的物理地址转换,从而提高了文件的访问速度。并且本发明实施例提供的FMU,用于实现文件系统的访问过程中的虚拟地址和存储文件的物理页面的物理地址的转换,提高了文件管理性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的文件页面管理单元的示意框图。
图2是本发明一个实施例的文件页表的示例结构的示意图。
图3是本发明一个实施例的处理设备的示意框图。
图4是本发明一个实施例的应用场景的示意图。
图5是本发明另一实施例的应用场景的示意图。
图6是本发明一个实施例的文件页面管理方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。本发明实施例提出一种文件页面管理单元(File Page Management Unit,FMU),通过FMU来实现文件系统的访问过程中的虚拟地址到文件物理页面的物理地址的转换,从而能够提高文件管理性能。
图1是本发明一个实施例的FMU的示意框图。图1的FMU 10包括寄存器(register)11和处理电路12。
寄存器11用于存储进程的文件页表。文件页表用于记录为进程要访问的目标文件分配的虚拟地址段的信息以及目标文件的N个物理页面(page)基地址。N为正整数。
在本发明实施例中,目标文件以物理页面为单位存储在NVM(例如PCM、ReRAM、MRAM等)中。这类NVM可以直接由处理设备(如CPU)直接访问。可以理解的是,目标文件通常可以被存储在N个物理页面中,每个物理页面都具有一个物理页面基地址,在本发明实施例中,目标文件的N个物理页面基地址可以以一维线性数组的形式记录于文件页表中。根据这种方式,在本发明实施例中,该一维线性数组的每个元素对应于一个物理页面基地址。另外,为目标文件分配的虚拟地址段包括连续的N个虚拟地址,并且该N个虚拟地址和一维线性数组的N个物理页面基地址一一对应。
处理电路12用于根据该进程在访问目标文件时的目标虚拟地址查询寄存器11存储的文件页表,以确定目标虚拟地址对应的物理页面基地址,其中该目标虚拟地址落入为目标文件分配的虚拟地址段。
处理电路12还用于根据目标虚拟地址对应的物理页面基地址和目标虚拟地址确定目标文件的物理页面地址,并将物理页面地址发送至内存控制器(memory controller)。
本发明实施例提供一种文件页面管理单元FMU,可以在进程访问目标文件时,根据存储的文件页表实现目标文件的虚拟地址和物理里页面的物理地址的转换。由于文件页表中记录有目标文件的虚拟地址和对应的物理页面基地址,其中,物理页面的基地址采用一维线性数组形式,这种一维线性数组形式的物理页面基地址易于实现虚拟地址和物理地址的转换,从而提高了文件的访问速度。并且本发明实施例提供的FMU,用于实现文件系统的访问过程中的虚拟地址和存储文件的物理页面的物理地址的转换,提高了文件管理性能。
具体地,传统的内存管理单元(Memory Management Unit,MMU)以多级页表的方式获取物理页面地址,这种方式需要多次读内存,而一维线性数组形式的物理页面基地址使得可以通过简单的运算就能够定位物理页面,只需要一次读内存操作即可,这样提高了文件的访问速度。
本发明实施例的FMU可以通过硬件实现,例如可以位于CPU中,作为独立于MMU的硬件单元。或者,作为另一实施例,FMU也可以位于MMU中,作为MMU内部的一个独立功能模块。MMU可以通过将文件的元数据转换成MMU兼容的页表结构并将转换后的页表结构加载到进程页表或内核页表中,实现虚拟页面到物理页面的寻址,但这种转换方式开销较大,并且会增加页表大小,导致页表命中率降低。而本发明实施例的FMU自身能够记录文件的虚拟地址和物理页面基地址的对应关系,无需转换元数据,且无需将页表加载到进程页表或内核页表中,能够减少转换开销,且不影响传输后备缓冲器(Translation Lookaside Buffer,TLB)的命中率。其中,TLB是内存管理单元用于改进虚拟地址到物理地址转换速度的缓存。
可选地,作为一个实施例,寄存器11所存储的文件页表还用于记录目标文件的文件句柄,作为目标文件的标识或索引。在此情况下,文件页表也可以称为文件句柄表。事实上,文件页表可以记录所有的当前打开文件的文件句柄、虚拟地址段及物理页面基地址,这样有利于提高进程访问文件的命中率。
图2是本发明一个实施例的文件页表的示例结构的示意图。图2的文件页表可以包括对应的多个字段:文件句柄、虚拟地址段、物理页面基地址。
文件句柄字段用于标识当前打开的文件。例如,每个打开的文件F都具有对应的文件句柄。
虚拟地址段字段用于记录该文件F所占用的虚拟地址段的信息。一般而言,对于每个打开的文件F,文件系统可以从文件虚拟地址空间分配一段未被占用的连续N个虚拟地址给该文件F。换句话说,每个文件F所占用的虚拟地址段一般由一段连续的N个虚拟地址构成。因此,作为一个可选的实施例,虚拟地址段的信息可以包括虚拟地址段的起始虚拟地址。作为其他实施例,虚拟地址段的信息还可以包括其他类型的信息,例如可以列举虚拟地址段所包括的全部虚拟地址(例如以一维线性数组的形式),或者包括虚拟地址段的最后一个虚拟地址,或者包括虚拟地址段的长度等。
物理页面基地址字段可采用一维线性数组的形式记录文件物理页面的基地址。这种方式使得目标虚拟地址到物理页面地址的转换运算比较简单,能够提高文件管理性能。可选地,作为一个转换运算的例子,假设虚拟地址段的信息包括虚拟地址段的起始虚拟地址,在得到目标虚拟地址对应的物理页面基地址之后,可按照如下方式获取文件的物理页面地址:
(S1)根据目标虚拟地址Av1中除页面大小占据的位数之外的剩余高位获得虚拟地址Av2,根据起始虚拟地址As1中除页面大小占据的位数之外的剩余高位获得起始虚拟地址As2;
(S2)确定虚拟页面索引Iv=Av2-As2;
(S3)确定物理页面索引Ip=Iv;
(S4)确定物理页面地址指针Pp=Apb+Ip,其中Apb为目标虚拟地址对应的物理页面基地址;
(S5)根据物理页面地址指针Pp获取物理页面地址。
举例来说,虚拟地址Av1和As1的长度一般取决于处理器的位数,例如可以是32位或64位。虚拟地址Av1和As1的低位部分用于页面内寻址,该低位部分的位数即为所述页面大小占据的位数,以4k的页面大小为例,需要占据12位的低位部分。在此情况下,如果虚拟地址Av1为32位,则虚拟地址Av1从高到低的各个位可以表示为{Av2,Av3},其中Av3是页面大小占据的位数12位,Av2为剩余(32-12=20)位的高位部分。Av2可以看作虚拟地址Av1所对应的虚拟页面的页面编号。
作为其他可选的实施例,可以以其他形式记录物理页面基地址,例如类似于进程页表的多级页表形式。
文件系统可以在进程打开一个目标文件时,在FMU的寄存器所存储的文件页表中创建该目标文件对应的文件句柄,并在文件页表中对应于该文件句柄的虚拟地址空间段字段中记录为该目标文件分配的虚拟地址段的信息,同时在对应于该文件句柄的物理页表基地址字段中记录目标文件的物理页表基地址。这样,当进程需要通过指针对目标文件进行读写访问时,FMU能够根据该指针指向的目标虚拟地址容易地确定目标文件的物理页面地址,提高文件管理性能。
图2中还给出了一个特定物理页面基地址至物理页面地址的转换实例。应注意,该实例仅仅是示例性的,而非限制本发明实施例的范围。在图2的例子中,对于文件句柄为F1的文件,其虚拟地址段为[A1,A2,A3],对应的物理页面基地址为一维线性数组[8,15,3],其中每个虚拟地址和物理页面基地址一一对应,例如,虚拟地址A1和物理页面基地址{8}对应、虚拟地址A2和物理页面基地址{15}对应,虚拟地址A1和物理页面基地址{3}对应。本发明实施例可按照上述步骤(S1)-(S5)得到NVM上存储该文件F1的物理页面3、8、15的物理页面地址,并将得到的物理页面地址返回至内存控制器,使得内存控制器能够访问对应的物理页面,实现文件F1的读写操作。
可选地,作为另一实施例,文件页表中还可以包括其他字段。例如Inode指针,指向当前打开的文件的元数据所在的物理页面,这样便于系统访问该文件的元数据。
图3是本发明一个实施例的处理设备的示意框图。图3的处理设备30的一个具体例子是中央处理单元CPU。
如图3所示,处理设备30包括判断单元31、FMU 32和内存控制器33。
判断单元31用于判断进程在访问目标文件时的目标虚拟地址是否落入文件虚拟地址空间,并且在目标虚拟地址落入文件虚拟地址空间时将目标虚拟地址发送至FMU 32,其中文件虚拟地址空间位于进程地址空间中,文件虚拟地址空间包括为目标文件分配的虚拟地址段。目标文件以物理页面为单位存储在NVM中。为目标文件分配的虚拟地址段包括连续的N个虚拟地址,N为正整数。
FMU 32用于根据判断单元31发送的目标虚拟地址查询FMU 32上存储的文件页表,以确定目标虚拟地址对应的物理页面基地址,其中文件页表用于记录为目标文件分配的虚拟地址段的信息以及目标文件的N个物理页面基地址。目标文件的N个物理页面基地址以一维线性数组的形式记录,并且该目标虚拟地址落入为目标文件分配的虚拟地址段。这里,上述N个虚拟地址和上述N个物理页面基地址一一对应。
FMU 32还用于根据目标虚拟地址对应的物理页面基地址和目标虚拟地址确定文件的物理页面地址,并将物理页面地址发送至内存控制器。
内存控制器33用于根据物理页面地址对目标文件的物理页面进行读写操作。
本发明实施例提供一种文件页面管理单元FMU,可以在进程访问目标文件时,根据存储的文件页表实现目标文件的虚拟地址和物理地址的转换。由于文件页表中记录有目标文件的虚拟地址和对应的物理页面基地址,其中,物理页面的基地址采用一维线性数组形式,这种一维线性数组形式的物理页面基地址易于实现虚拟地址和物理页面的地址转换,从而提高了文件的访问速度。并且本发明实施例提供的FMU,用于实现文件系统的访问过程中的虚拟地址和存储文件的物理页面的物理地址的转换,提高了文件管理性能。
FMU 32的一个具体例子可参照图1和图2所述,为避免重复,不再详细描述。
可选地,作为一个实施例,FMU 32所存储的文件页表还可以记录目标文件的文件句柄,例如图2的例子所述。
可选地,作为另一实施例,虚拟地址段的信息可以包括所述虚拟地址段的起始虚拟地址,例如图2的例子所述。
可选地,作为另一实施例,文件的物理页面基地址可以以一维线性数组的形式记录,FMU 32在根据目标虚拟地址对应的物理页面基地址和目标虚拟地址确定文件的物理页面地址时,具体用于:根据目标虚拟地址Av1中除页面大小占据的位数之外的剩余高位获得虚拟地址Av2,根据起始虚拟地址As1中除页面大小占据的位数之外的剩余高位获得起始虚拟地址As2;确定虚拟页面索引Iv=Av2-As2;确定物理页面索引Ip=Iv;确定物理页面地址指针Pp=Apb+Ip,其中Apb为目标虚拟地址对应的物理页面基地址;根据所述物理页面地址指针Pp获取所述物理页面地址。这种方式使得虚拟地址到物理页面地址的转换运算比较简单,能够提高文件管理性能。
在本发明实施例中,FMU 32可以是独立于MMU的硬件单元,也可以构成MMU内部的一个独立功能模块。
图4是本发明一个实施例的应用场景的示意图。在图4的实施例中,FMU是独立于MMU的硬件单元。在此情况下,图3的判断单元31可以由CPU中的硬件模块、软件模块或两者的组合来实现。可以理解的是,图4是对图3所示处理设备30的一种应用场景的示例,图4所示的CPU43中也包括图3所示的判断单元31,在图4中未对判断单元31进行图示。
如图4所示,整个虚拟地址空间可以包括内核所使用的空间段41和进程所使用的空间段42。进程所使用的空间段42可以称为进程地址空间,包括为当前打开的文件分配虚拟地址的文件虚拟地址空间421和为进程分配虚拟地址的进程虚拟地址空间422。
CPU 43中包括MMU 431、FMU 432和内存控制器433。内存控制器433分别连接至MMU431和FMU 432。作为一个可选的实施例,FMU 432主要用于执行文件页面的地址转换,MMU431主要用于执行除了文件之外的其他数据的地址转换。内存控制器433可以通过相应的端口直接访问存储器,如DRAM或NVM等。
FMU 432可以如图1-图3的实施例所示,存储进程的文件页表,并按照文件页表实现虚拟地址和物理地址的转换。
具体地,当进程打开一个文件时,文件系统可以在进程的文件页表中创建文件对应的文件句柄。
文件系统可以从文件虚拟地址空间421分配一段未被占用的连续地址空间给打开的文件,并且如图2所示,在文件页表中填写所分配的虚拟地址段的信息,例如虚拟地址段的起始虚拟地址等,另外文件系统将打开的文件的物理页表基地址填写到文件页表的物理页表基地址字段。
随后文件系统可以返回指向分配给文件的虚拟地址段的起始地址指针给进程。
当进程通过指针对文件进行读写访问时,CPU 43可根据指针指向的目标虚拟地址进行判断,如果虚拟地址位于文件虚拟地址空间421内,则CPU 43将虚拟地址交给FMU 432进行地址转换。
FMU 432可按照上述图1-图3所述的方式获得文件的物理页面地址,并将物理页面地址发送给内存控制器433,以便内存控制器433对文件的物理页面进行读写访问。
另一方面,如果判断单元31判断进程在访问目标文件时使用的指针指向的目标虚拟地址未落入文件虚拟地址空间421内,则CPU 43将目标虚拟地址交给MMU 431进行地址转换。MMU 431可通过内核页表或进程页表,根据目标虚拟地址获取对应的物理页面地址。然后,MMU 431将物理页面地址发送给内存控制器433,以便内存控制器433对物理页面进行读写访问。
这样,能够实现文件的虚拟地址到物理页面地址的转换,提高文件管理性能。
图5是本发明另一实施例的应用场景的示意图。在图5的实施例中,FMU是MMU内部的功能模块。在此情况下,图3的判断单元31可以由MMU中的硬件模块、软件模块或两者的组合来实现。可以理解的是,图5也是对图3所示处理设备30的一种应用场景的示例,图5所示的CPU 53中也包括图3所示的判断单元31,在图5中未对判断单元31进行图示。
如图5所示,整个虚拟地址空间可以包括内核所使用的空间段51和进程所使用的空间段52。进程所使用的空间段52可以称为进程地址空间段,包括为当前打开的文件分配虚拟地址的文件虚拟地址空间521和为进程分配虚拟地址的进程虚拟地址空间522。
CPU 53中包括MMU 531和内存控制器532。内存控制器532连接至MMU 531。
内存控制器532可以通过相应的端口直接访问存储器,如DRAM或NVM等。
MMU 531可包括FMU 5311和物理页面获取模块5312。物理页面获取模块5312可以是MMU 531内部的硬件模块、软件模块或者两者的组合。
FMU 5311可以如图1-图3的实施例所示,存储进程的文件页表,并按照文件页表实现目标虚拟地址和物理地址的转换。物理页面获取模块5312可以实现现有MMU的地址转换功能,例如通过多级页表的方式将指针所指向的目标虚拟地址转换为物理页面地址。
具体地,当进程打开一个文件时,文件系统可以在进程的文件页表中创建文件对应的文件句柄。
文件系统可以从文件虚拟地址空间521分配一段未被占用的连续地址空间给打开的文件,并且如图2所示,在文件页表中填写所分配的虚拟地址段的信息,例如虚拟地址段的起始虚拟地址等,另外文件系统将打开的文件的物理页表基地址填写到文件页表的物理页表基地址字段。
随后文件系统可以返回指向分配给文件的虚拟地址段的起始地址指针给进程。
当进程通过指针对文件进行读写访问时,MMU 531可根据指针指向的目标虚拟地址进行判断,如果目标虚拟地址位于文件虚拟地址空间521内,则MMU 531将目标虚拟地址交给FMU 5311进行地址转换。
FMU 5311可按照上述图1-图3所述的方式获得文件的物理页面地址,MMU 531可以将FMU 5311获得的物理页面地址发送给内存控制器532,以便内存控制器532对文件的物理页面进行读写访问。
另一方面,如果判断单元31判断进程在访问目标文件时的目标虚拟地址未落入文件虚拟地址空间521内,则MMU 531将目标虚拟地址交给物理页面获取模块5312进行地址转换。物理页面获取模块5312可通过内核页表或进程页表,根据虚拟地址获取对应的物理页面地址。然后,MMU 431将物理页面地址发送给内存控制器532,以便内存控制器532对物理页面进行读写访问。这样,能够实现虚拟地址到物理页面地址的转换,提高文件管理性能。
图6是本发明一个实施例的文件页面管理方法的流程图。图6的方法由CPU(例如图3的处理设备30、图4的CPU 43或图5的CPU 53等)执行。
601,确定进程在访问目标文件时的目标虚拟地址,该文件以物理页面为单位存储在NVM中。
602,根据目标虚拟地址,查询在CPU所包括的FMU(例如,如图1-图5所例示的FMU)中存储的进程的文件页表,以确定目标虚拟地址对应的物理页面基地址,其中文件页表用于记录为目标文件分配的虚拟地址段的信息以及目标文件的N个物理页面基地址。目标文件的N个物理页面基地址以一维线性数组的形式记录。为目标文件分配的虚拟地址段包括连续的N个虚拟地址,该N个虚拟地址和上述N个物理页面基地址一一对应,N为正整数。该目标虚拟地址落入为目标文件分配的虚拟地址段。
603,根据目标虚拟地址对应的物理页面基地址和目标虚拟地址确定文件的物理页面地址。
604,CPU的内存控制器(例如,如图4和图5所例示的内存控制器)根据物理页面地址对目标文件的物理页面进行读写操作。
本发明实施例提供一种文件页面管理单元FMU,可以在进程访问目标文件时,根据存储的文件页表实现目标文件的虚拟地址和物理地址的转换。由于文件页表中记录有目标文件的虚拟地址和对应的物理页面基地址,其中,物理页面的基地址采用一维线性数组形式,这种一维线性数组形式的物理页面基地址易于实现虚拟地址和物理页面的地址转换,从而提高了文件的访问速度。并且本发明实施例提供的FMU,用于实现文件系统的访问过程中的虚拟地址和存储文件的物理页面的物理地址的转换,提高了文件管理性能。
本发明实施例的方法的各个过程可以由图1-图5的各个装置执行,为避免重复,不再详细描述。
可选地,作为一个实施例,文件页表还可以记录目标文件的文件句柄,例如图2所示。
可选地,作为另一实施例,虚拟地址段的信息可包括虚拟地址段的起始虚拟地址,例如图2所示。
可选地,作为另一实施例,目标文件的物理页面基地址以一维线性数组的形式记录,例如图2所示。在此情况下,步骤603可包括:
(S1)根据目标虚拟地址Av1中除页面大小占据的位数之外的剩余高位获得虚拟地址Av2,根据起始虚拟地址As1中除页面大小占据的位数之外的剩余高位获得起始虚拟地址As2;
(S2)确定虚拟页面索引Iv=Av2-As2;
(S3)确定物理页面索引Ip=Iv;
(S4)确定物理页面地址指针Pp=Apb+Ip,其中Apb为目标虚拟地址对应的物理页面基地址;
(S5)根据物理页面地址指针Pp获取物理页面地址。
这种方式使得虚拟地址到物理页面地址的转换运算比较简单,能够提高文件管理性能。
作为其他可选的实施例,可以以其他形式记录物理页面基地址,例如类似于进程页表的多级页表形式。
可选地,作为另一实施例,在步骤601中确定目标文件的目标虚拟地址之后,还可以判断该目标虚拟地址是否落入文件虚拟地址空间,其中文件虚拟地址空间位于进程地址空间中,文件虚拟地址空间包括为目标文件分配的虚拟地址段。
可选地,作为另一实施例,当目标虚拟地址落入文件虚拟地址空间中时,可确定由FMU获取文件的物理页面地址;当目标虚拟地址未落入文件虚拟地址空间中时,可确定由MMU获取根据目标虚拟地址获取对应的物理页面地址。
这样,按照本发明实施例,能够实现文件的虚拟地址到物理页面地址的转换,提高文件管理性能。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (7)
1.一种处理设备,其特征在于,包括判断单元、文件页面管理单元FMU、内存管理单元MMU和内存控制器:
所述判断单元,用于判断进程在访问目标文件时的目标虚拟地址是否落入文件虚拟地址空间,并且在所述目标虚拟地址落入所述文件虚拟地址空间时将所述目标虚拟地址发送至所述FMU,其中所述文件虚拟地址空间位于进程地址空间中,所述文件虚拟地址空间包括为所述目标文件分配的虚拟地址段,所述目标文件以物理页面为单位存储在非易失性存储器中,所述虚拟地址段包括N个虚拟地址,N为正整数;
所述FMU,用于根据所述判断单元发送的目标虚拟地址查询所述FMU上存储的文件页表,以确定所述目标虚拟地址对应的物理页面基地址,其中所述文件页表用于记录为所述目标文件分配的虚拟地址段的信息以及所述目标文件的N个物理页面基地址,所述目标文件的N个物理页面基地址以一维线性数组的形式记录,所述目标虚拟地址落入所述为目标文件分配的虚拟地址段,所述N个虚拟地址和所述N个物理页面基地址一一对应;
所述FMU,还用于根据所述目标虚拟地址对应的物理页面基地址和所述目标虚拟地址确定所述目标文件的物理页面地址,并将所述物理页面地址发送至所述内存控制器;
所述MMU,用于在所述判断单元判断所述目标虚拟地址未落入所述文件虚拟地址空间时,根据所述目标虚拟地址获取对应的物理页面地址,并将所述物理页面地址发送至所述内存控制器;
内存控制器,用于根据所述物理页面地址对所述目标文件的物理页面进行处理。
2.如权利要求1所述的处理设备,其特征在于,所述虚拟地址段的信息包括所述虚拟地址段的起始虚拟地址。
3.如权利要求2所述的处理设备,其特征在于,所述FMU在根据所述目标虚拟地址对应的物理页面基地址和所述目标虚拟地址确定所述目标文件的物理页面地址时,具体用于:
根据所述目标虚拟地址Av1中除页面大小占据的位数之外的剩余高位获得虚拟地址Av2,根据所述起始虚拟地址As1中除页面大小占据的位数之外的剩余高位获得起始虚拟地址As2;
确定虚拟页面索引Iv=Av2-As2;
确定物理页面索引Ip=Iv;
确定物理页面地址指针Pp=Apb+Ip,其中Apb为所述目标虚拟地址对应的物理页面基地址;
根据所述物理页面地址指针Pp获取所述物理页面地址。
4.如权利要求1-3任一项所述的处理设备,其特征在于,所述判断单元和所述FMU位于所述处理设备的内存管理单元MMU中。
5.一种文件页面管理方法,其特征在于,包括:
确定进程在访问目标文件时的目标虚拟地址,所述目标文件以物理页面为单位存储在非易失性存储器中;
当所述目标虚拟地址落入为所述目标文件分配的虚拟地址段时,文件页面管理单元FMU根据所述虚拟地址,查询所述FMU中存储的文件页表,以确定所述目标虚拟地址对应的物理页面基地址,其中所述文件页表用于记录为所述目标文件分配的虚拟地址段的信息以及所述目标文件的N个物理页面基地址,所述目标文件的N个物理页面基地址以一维线性数组的形式记录,所述虚拟地址段包括连续的N个虚拟地址,所述N个虚拟地址和所述N个物理页面基地址一一对应,N为正整数;
根据所述目标虚拟地址对应的物理页面基地址和所述目标虚拟地址确定所述目标文件的物理页面地址;
当所述目标虚拟地址未落入为所述目标文件分配的虚拟地址段时,内存管理单元MMU根据所述虚拟地址,查询内核页表或进程页表,以确定所述目标虚拟地址对应的物理页面地址;
根据所述物理页面地址对所述目标文件的物理页面进行处理。
6.如权利要求5所述的方法,其特征在于,所述虚拟地址段的信息包括所述虚拟地址段的起始虚拟地址。
7.如权利要求6所述的方法,其特征在于,所述根据所述目标虚拟地址对应的物理页面基地址和所述目标虚拟地址确定所述目标文件的物理页面地址,包括:
根据所述目标虚拟地址Av1中除页面大小占据的位数之外的剩余高位获得虚拟地址Av2,根据所述起始虚拟地址As1中除页面大小占据的位数之外的剩余高位获得起始虚拟地址As2;
确定虚拟页面索引Iv=Av2-As2;
确定物理页面索引Ip=Iv;
确定物理页面地址指针Pp=Apb+Ip,其中Apb为所述目标虚拟地址对应的物理页面基地址;
根据所述物理页面地址指针Pp获取所述物理页面地址。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2014/088016 WO2016049893A1 (zh) | 2014-09-30 | 2014-09-30 | 文件页面管理单元、处理设备和文件页面管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107155306A CN107155306A (zh) | 2017-09-12 |
CN107155306B true CN107155306B (zh) | 2021-02-12 |
Family
ID=55629320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480037175.8A Active CN107155306B (zh) | 2014-09-30 | 2014-09-30 | 文件页面管理单元、处理设备和文件页面管理方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107155306B (zh) |
WO (1) | WO2016049893A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256598B (zh) * | 2020-10-27 | 2022-10-28 | 上海壁仞智能科技有限公司 | 一种内存分配的方法及装置、内存寻址的方法及装置 |
CN115098218B (zh) * | 2022-05-25 | 2024-03-19 | 西南科技大学 | Fmu模型到组态软件中功能块模型的描述和仿真方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218312A (zh) * | 2013-03-28 | 2013-07-24 | 中国科学院上海微系统与信息技术研究所 | 文件访问方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6970992B2 (en) * | 1999-10-04 | 2005-11-29 | Intel Corporation | Apparatus to map virtual pages to disparate-sized, non-contiguous real pages and methods relating thereto |
US20120331265A1 (en) * | 2011-06-24 | 2012-12-27 | Mips Technologies, Inc. | Apparatus and Method for Accelerated Hardware Page Table Walk |
-
2014
- 2014-09-30 WO PCT/CN2014/088016 patent/WO2016049893A1/zh active Application Filing
- 2014-09-30 CN CN201480037175.8A patent/CN107155306B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218312A (zh) * | 2013-03-28 | 2013-07-24 | 中国科学院上海微系统与信息技术研究所 | 文件访问方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107155306A (zh) | 2017-09-12 |
WO2016049893A1 (zh) | 2016-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10067684B2 (en) | File access method and apparatus, and storage device | |
US10157143B2 (en) | File access method and apparatus, and storage system | |
US10061711B2 (en) | File access method and apparatus, and storage system | |
US9298384B2 (en) | Method and device for storing data in a flash memory using address mapping for supporting various block sizes | |
US10891241B2 (en) | Cache memory that supports tagless addressing | |
CN105830022B (zh) | 访问文件的方法和装置 | |
CN111061655B (zh) | 存储设备的地址转换方法与设备 | |
KR20170097609A (ko) | 압축된 데이터 백그라운드를 캐싱하는 장치, 시스템 및 방법 | |
JP2014078248A (ja) | キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ | |
US11237980B2 (en) | File page table management technology | |
WO2015131403A1 (zh) | 访问文件的方法和相关设备 | |
KR20160060550A (ko) | 효율적인 맵핑을 위한 페이지 캐시 장치 및 방법 | |
US8347064B1 (en) | Memory access techniques in an aperture mapped memory space | |
CN113835639B (zh) | 一种i/o请求处理方法、装置、设备及可读存储介质 | |
CN107155306B (zh) | 文件页面管理单元、处理设备和文件页面管理方法 | |
CN112486861B (zh) | 固态硬盘映射表数据查询方法、装置、计算机设备及存储介质 | |
CN107766259A (zh) | 页表缓存的访问方法、页表缓存、处理器芯片和存储单元 | |
US10817417B1 (en) | Data storage efficiency using storage devices with variable-size internal data mapping | |
JP4664586B2 (ja) | キャッシュ制御装置、キャッシュ制御方法、コンピュータシステム | |
CN112748854A (zh) | 对快速存储设备的优化访问 | |
CN116643999A (zh) | 一种l2p加速器 |
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 |