CN110941565B - 用于芯片存储访问的内存管理方法和装置 - Google Patents

用于芯片存储访问的内存管理方法和装置 Download PDF

Info

Publication number
CN110941565B
CN110941565B CN201811119736.5A CN201811119736A CN110941565B CN 110941565 B CN110941565 B CN 110941565B CN 201811119736 A CN201811119736 A CN 201811119736A CN 110941565 B CN110941565 B CN 110941565B
Authority
CN
China
Prior art keywords
page table
request
buffer unit
table buffer
page
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
CN201811119736.5A
Other languages
English (en)
Other versions
CN110941565A (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.)
Beijing Suneng Technology Co ltd
Original Assignee
Beijing Suneng Technology 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 Beijing Suneng Technology Co ltd filed Critical Beijing Suneng Technology Co ltd
Priority to CN201811119736.5A priority Critical patent/CN110941565B/zh
Publication of CN110941565A publication Critical patent/CN110941565A/zh
Application granted granted Critical
Publication of CN110941565B publication Critical patent/CN110941565B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

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)

Abstract

本发明实施例公开了一种用于芯片存储访问的内存管理方法和装置,其采用主页表缓冲单元和子页表缓冲单元结合的多级页表缓冲单元,并提供基于该多级页表缓冲单元的分级页表查找机制,提供三个层次的页表预取机制,能够有效地加快用于芯片存储访问的DMA访存请求的地址翻译过程中页表的读取速度,减少了***内存管理单元SMMU因为页表未命中造成的性能损失。

Description

用于芯片存储访问的内存管理方法和装置
技术领域
本发明涉及内存管理技术领域,特别是涉及一种用于芯片存储访问的内存管理方法和装置。
背景技术
在主机和芯片的数据传输中,***内存管理单元SMMU(System MemoryManagement Unit)负责DMA控制器搬运数据过程中,虚拟地址VA(Virtual Address)到物理地址PA(Physical Address)的翻译。
现有技术中,主机CPU将数据页表搬运到芯片存储中,并配置SMMU控制寄存器,包括使能SMMU和页表在芯片存储中的地址等;当DMA控制器需要访问芯片存储时,SMMU根据控制寄存器中的信息,从芯片存储中读取页表,并根据读取的页表对DMA访存请求中的访存虚拟地址进行地址翻译。
但是,这种方法存在一些缺点:
其一,当多个DMA请求任务同时进行时,SMMU需要在接收到后续的DMA访存请求后,才去芯片存储中读取页表,使得多个DMA访存请求无法连续完成;
其二,当单个DMA请求任务执行过程中,SMMU在接收到后续的DMA请求的访存地址后,才为该DMA访存请求读取页表,使得单个DMA请求任务出现停顿。
因此,现有方案在DMA访存请求的任务执行过程中,会导致SMMU因为页表缺失而造成性能损失,影响了主机和芯片间数据搬运的效率。
发明内容
为了解决上述问题,根据本发明的一方面,提出一种多级页表缓冲单元,包括:主页表缓冲单元、分别耦接至所述主页表缓冲单元的读请求子页表缓冲单元和写请求子页表缓冲单元;
其中,主页表缓冲单元用于存储DMA读写请求所需要的页表数据;读请求子页表缓冲单元用于存储DMA读请求所需要的页表数据;写请求子页表缓冲单元用于存储DMA写请求所需要的页表数据;所述读请求子页表缓冲单元和写请求子页表缓冲单元共享所述主页表缓冲单元的页表数据。
根据本发明的另一方面,提出一种内存管理方法,包括:
步骤S11,根据DMA访存请求的类型在对应的子页表缓冲单元中查找该请求需要的页表;
步骤S12,如果该请求需要的页表在对应的子页表缓冲单元中命中,则根据读取的页表对所述DMA访存请求的虚拟地址进行翻译;
步骤S13,如果该请求需要的页表在对应的子页表缓冲单元中没有命中,则去主页表缓冲单元中查找该请求需要的页表;
步骤S14,如果该请求需要的页表在主页表缓冲单元中命中,则根据读取的页表对所述DMA访存请求的虚拟地址进行翻译;
步骤S15,如果该请求需要的页表在主页表缓冲单元中没有命中,则去芯片存储中读取页表,保存在主页表缓冲单元和对应的子页表缓冲单元中,并根据读取的页表对所述DMA访存请求的虚拟地址进行翻译。
在一些实施方式中,所述根据DMA访存请求的类型在对应的子页表缓冲单元中查找该请求需要的页表包括:
如果所述DMA访存请求是读请求,则去读请求子页表缓冲单元中查找该请求需要的页表;如果所述DMA访存请求是写请求,则去写请求子页表缓冲单元中查找该请求需要的页表。
根据本发明的另一方面,提出一种内存管理方法,包括:
步骤S21,在当前DMA访存请求被***内存管理单元处理之前,预先查找页表缓冲单元中是否存在该请求需要的页表,如果不存在,则从芯片存储中预取该请求需要的页表,保存到页表缓冲单元中;
步骤S22,为当前DMA访存请求一次预取页表缓冲单元中的多项页表,所述多项页表包含当前DMA访存请求和后续DMA访存请求所需要的页表;
步骤S23,当***内存管理单元开始访问所述多项页表中最后若干个页表时,开始为后续的DMA访存请求预取页表缓冲单元中的多项页表。
在一些实施方式中,所述步骤S21包括当DMA访存请求开始进入***内存管理单元的请求队列时,预先查找页表缓冲单元是否存在该请求需要的页表。
在一些实施方式中,所述页表缓冲单元中的每个页表项包括多项页表,所述步骤S22为当前DMA访存请求一次预取页表缓冲单元中的多项页表包括:为当前DMA访存请求一次预取页表缓冲单元中的一个页表项。
在一些实施方式中,所述步骤S23包括:当***内存管理单元开始访问所述页表项中最后若干个页表时,开始为后续的DMA访存请求预取页表缓冲单元中的下一页表项。
在一些实施方式中,所述页表缓冲单元包括如前述实施例所述的多级页表缓冲单元。
根据本发明的另一方面,提出一种内存管理装置,包括如下模块:
第一页表查找模块,用于根据DMA访存请求的类型在对应的子页表缓冲单元中查找该请求需要的页表;
第二页表查找模块,用于在该请求需要的页表在对应的子页表缓冲单元中没有命中时,去主页表缓冲单元中查找该请求需要的页表;
页表读取更新模块,用于在该请求需要的页表在主页表缓冲单元中没有命中时,去芯片存储中读取页表,并保存在主页表缓冲单元和对应的子页表缓冲单元中;
地址翻译模块,用于根据读取的页表对所述DMA访存请求的虚拟地址进行翻译。
在一些实施方式中,所述根据DMA访存请求的类型在对应的子页表缓冲单元中查找该请求需要的页表包括:如果所述DMA访存请求是读请求,则去读请求子页表缓冲单元中查找该请求需要的页表;如果所述DMA访存请求是写请求,则去写请求子页表缓冲单元中查找该请求需要的页表。
根据本发明的另一方面,提出一种内存管理装置,包括如下模块:
第一预取模块,用于在当前DMA访存请求被***内存管理单元处理之前,预先查找页表缓冲单元中是否存在该请求需要的页表,如果不存在,则从芯片存储中预取该请求需要的页表,保存到页表缓冲单元中;
第二预取模块,用于为当前DMA访存请求一次预取页表缓冲单元中的多项页表,所述多项页表包含当前DMA访存请求和后续DMA访存请求所需要的页表;
第三预取模块,用于当***内存管理单元开始访问所述多项页表中最后若干个页表时,开始为后续的DMA访存请求预取页表缓冲单元中的多项页表。
在一些实施方式中,所述第一预取模块在当前DMA访存请求被***内存管理单元处理之前,预先查找页表缓冲单元中是否存在该请求需要的页表包括:在DMA访存请求开始进入***内存管理单元的请求队列时,预先查找页表缓冲单元是否存在该请求需要的页表。
在一些实施方式中,所述页表缓冲单元中的每个页表项包括多项页表,所述第二预取模块为当前DMA访存请求一次预取页表缓冲单元中的多项页表包括:为当前DMA访存请求一次预取页表缓冲单元中的一个页表项。
在一些实施方式中,所述第三预取模块还用于当***内存管理单元开始访问所述页表项中最后若干个页表时,开始为后续的DMA访存请求预取页表缓冲单元中的下一页表项。
在一些实施方式中,所述页表缓冲单元包括如权利要求1所述多级页表缓冲单元。
根据本发明的另一方面,提出一种***内存管理单元,包括如前述实施例所述的多级页表缓冲单元。
根据本发明的另一方面,提出一种***内存管理单元,包括如前述实施例所述的内存管理装置。
根据本发明的另一方面,提出一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行以实现如前述实施例所述的内存管理方法的步骤。
根据本发明的另一方面,提出一种计算机设备,其包括存储器和处理器,所述存储器上存储有可在处理器上运行的计算机程序,所述处理器执行所述计算程序以实现如前述实施例所述的内存管理方法的步骤。
本发明实施例的内存管理方法和装置采用基于多级页表缓冲单元的分级页表查找机制,提供三个层次的页表预取机制,有效地加快了DMA访存请求的地址翻译过程中页表的读取速度,减少了***内存管理单元SMMU因为页表未命中造成的性能损失。
附图说明
图1是根据本发明一实施例的多级页表缓冲单元的结构示意图;
图2是根据本发明一实施例的多级页表缓冲单元的数据结构示意图;
图3是根据本发明一实施例的内存管理方法的流程图;
图4是根据本发明另一实施例的内存管理方法的流程图;
图5是根据本发明一实施例的***内存管理单元的结构示意图;
图6是根据本发明一实施例的内存管理装置的结构示意图;
图7是根据本发明另一实施例的内存管理装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进行清楚、完整地说明。为了便于说明本发明实施例,本发明附图中仅示出用于说明本发明目的的必要部件。
图1是根据本发明一实施例的多级页表缓冲单元的结构示意图。如图1所示,本发明实施例在***内存管理单元SMMU中构建多级页表缓冲单元10,该多级页表缓冲单元10包括主页表缓冲单元11以及读请求子页表缓冲单元12和写请求子页表缓冲单元13。其中,读请求子页表缓冲单元12和写请求子页表缓冲单元13作为一级页表缓冲单元,分别为访问芯片存储的DMA读请求和写请求提供页表缓冲查找,二者共享主页表缓冲单元11中的页表数据。主页表缓冲单元11作为二级页表缓冲单元,其同时包含读请求和写请求所需要的页表数据。
图2是根据本发明一实施例的多级页表缓冲单元的数据结构示意图。如图2所示,主页表缓冲单元11用于存储访问芯片存储的DMA读写请求所需要的页表数据,该页表数据包括访存请求的虚拟地址111和对应的请求数据的物理地址112。读请求子页表缓冲单元12用于存储访问芯片存储的DMA读请求所需要的页表数据,该页表数据包括读请求的虚拟地址121和对应的请求数据的物理地址122。写请求子页表缓冲单元13用于存储访问芯片存储的DMA写请求所需要的页表数据,该页表数据包括写请求的虚拟地址131和对应的请求数据的物理地址132。***内存管理单元SMMU在接收到访问芯片存储的DMA访存请求时,根据上述多级页表缓冲单元中的页表数据对DMA访存请求中的虚拟地址进行翻译,将虚拟地址翻译为芯片存储中数据的物理地址,从而实现对芯片存储中数据的直接存取访问。
图3是根据本发明一实施例的内存管理方法的流程图。如图3所示,本发明实施例的内存管理方法,应用于***内存管理单元,包括如下步骤:
步骤S11,根据DMA访存请求的类型在对应的子页表缓冲单元中查找该请求需要的页表;
步骤S12,如果该请求需要的页表在对应的子页表缓冲单元中命中,则根据读取的页表对所述DMA访存请求的虚拟地址进行翻译;
步骤S13,如果该请求需要的页表在对应的子页表缓冲单元中没有命中,则去主页表缓冲单元中查找该请求需要的页表;
步骤S14,如果该请求需要的页表在主页表缓冲单元中命中,则根据读取的页表对所述DMA访存请求的虚拟地址进行翻译;
步骤S15,如果该请求需要的页表在主页表缓冲单元中没有命中,则去芯片存储中读取页表,保存在主页表缓冲单元和对应的子页表缓冲单元中,并根据读取的页表对所述DMA访存请求的虚拟地址进行翻译。
上述步骤S11中,根据所述DMA访存请求的类型在对应的子页表缓冲单元中查找该请求需要的页表包括:
如果所述DMA访存请求是读请求,则去读请求子页表缓冲单元中查找该请求需要的页表;
如果所述DMA访存请求是写请求,则去写请求子页表缓冲单元中查找该请求需要的页表。
本发明实施例的内存管理方法采用基于多级页表缓冲单元的分级页表查找机制,首先根据DMA访存请求的类型优先在子页表缓冲单元中查找,其次在主页表缓冲单元中查找,这种分级页表查找的方式有效地加快了页表的读取速度,减少了SMMU因为页表未命中造成的性能损失。
图4是根据本发明另一实施例的内存管理方法的流程图。如图4所示,本发明实施例的内存管理方法,应用于***内存管理单元,包括如下步骤:
步骤S21,在当前DMA访存请求被***内存管理单元处理之前,预先查找页表缓冲单元中是否存在该请求需要的页表,如果不存在,则从芯片存储中预取该请求需要的页表,保存到页表缓冲单元中;
步骤S22,为当前DMA访存请求一次预取页表缓冲单元中的多项页表,所述多项页表包含当前DMA访存请求和后续DMA访存请求所需要的页表;
步骤S23,当***内存管理单元开始访问所述多项页表中最后若干个页表时,开始为后续的DMA访存请求预取页表缓冲单元中的多项页表。
上述步骤S21中,当DMA访存请求开始进入***内存管理单元的请求队列时,预先查找页表缓冲单元是否存在该请求需要的页表。若页表缓冲单元中没有该请求需要的页表,则开始预取对应的页表到页表缓冲单元中,这相当于第一层次的页表预取。
上述步骤S22中,页表缓冲单元中的每个页表项可以包含多项页表,***内存管理单元为当前DMA访存请求一次读取一个页表项,即是取得了多项页表,相当于***内存管理单元每次提前取得后续DMA访存请求所需要的页表。举例来说,假设页表缓冲单元中的每个页表项包含16个页表,当前DMA访存请求需要的是页表0,而***内存管理单元取得一个页表项,就把页表0~15都预取过来,这样后续DMA访存请求需要用到页表1的时候就不用再去读取了,这相当于第二层次的页表预取。
上述步骤S23中,当***内存管理单元开始访问所读取的页表项中最后若干个页表时,开始为后续的DMA访存请求预取页表缓冲单元中的下一个页表项,也就是开始为后续的DMA请求任务预取页表,这相当于第三层次的页表预取。
在一些实施方式中,页表缓冲单元可以采用前述实施例中的多级页表缓冲单元10来实现。
本发明实施例的内存管理方法通过页表缓冲单元中页表项的存储模式以及三个层次的页表预取机制,有效地加快了页表的读取速度,减少了SMMU因为页表未命中造成的性能损失。
下面结合图5对图4所示方法进行进一步说明。图5是根据本发明一实施例的***内存管理单元100的结构示意图。本发明一实施例的***内存管理单元SMMU包括多级页表缓冲单元10、第一访问接口单元20、请求队列30、页表查找控制单元40、第二访问接口单元50。DMA访存请求通过第一访问接口单元20进入请求队列30,通过页表查找控制单元40在多级页表缓冲单元10里查找是否有该请求所需要的页表。如果有页表,则进行虚拟地址翻译,用页表中数据物理地址信息代替访存请求原始的虚拟地址信息。如果没有页表,则通过第二访问接口单元50从芯片存储200中读取所需要的页表,保存在多级页表缓冲单元10中,并进行虚拟地址翻译。随后,SMMU将完成地址翻译的DMA访存请求通过第二访问接口单元50发送给芯片存储200,进行直接存取访问。
其中,SMMU中采用图4中所述三个层次的页表预取机制,其中第一在DMA访存请求进入请求队列30时开始启动,对多级页表缓冲单元10进行页表预查找,如果多级页表缓冲单元10中没有该请求需要的页表,则通过第二访问接口单元50从芯片存储200中预取所需要的页表,保存在多级页表缓冲单元10中。第二和第三层次的页表预取通过多级页表缓冲单元10中页表项的存储和页表查找控制单元40对页表项的读取来实现。
图6是根据本发明一实施例的内存管理装置300的结构示意图。如图6所示,本发明实施例的内存管理装置300包括如下模块:
第一页表查找模块301,用于根据DMA访存请求的类型在对应的子页表缓冲单元中查找该请求需要的页表;
第二页表查找模块302,用于在该请求需要的页表在对应的子页表缓冲单元中没有命中时,去主页表缓冲单元中查找该请求需要的页表;
页表读取更新模块303,用于在该请求需要的页表在主页表缓冲单元中没有命中时,去芯片存储中读取页表,并保存在主页表缓冲单元和对应的子页表缓冲单元中;
地址翻译模块304,用于根据读取的页表对所述DMA访存请求的虚拟地址进行翻译。
本发明实施例中,所述第一页表查找模块根据DMA访存请求的类型在对应的子页表缓冲单元中查找该请求需要的页表包括:
如果所述DMA访存请求是读请求,则去读请求子页表缓冲单元中查找该请求需要的页表;
如果所述DMA访存请求是写请求,则去写请求子页表缓冲单元中查找该请求需要的页表。
本发明实施例的内存管理装置采用基于多级页表缓冲单元的分级页表查找机制,首先根据DMA访存请求的类型优先在子页表缓冲单元中查找,其次在主页表缓冲单元中查找,这种分级页表查找的方式有效地加快了页表的读取速度,减少了SMMU因为页表未命中造成的性能损失。
图7是根据本发明另一实施例的内存管理装置400的结构示意图。如图7所示,本发明实施例的内存管理装置400包括如下模块:
第一预取模块401,用于在当前DMA访存请求被***内存管理单元处理之前,预先查找页表缓冲单元中是否存在该请求需要的页表,如果不存在,则从芯片存储中预取该请求需要的页表,保存到页表缓冲单元中;
第二预取模块402,用于为当前DMA访存请求一次预取页表缓冲单元中的多项页表,所述多项页表包含当前DMA访存请求和后续DMA访存请求所需要的页表;
第三预取模块403,用于当***内存管理单元开始访问所述多项页表中最后若干个页表时,开始为后续的DMA访存请求预取页表缓冲单元中的多项页表。
在一些实施方式中,所述第一预取模块401当DMA访存请求开始进入***内存管理单元的请求队列时,预先查找页表缓冲单元是否存在该请求需要的页表。
在一些实施方式中,页表缓冲单元中的每个页表项可以包含多项页表,第二预取模块402为当前DMA访存请求一次读取一个页表项,即是取得了多项页表,相当于SMMU每次提前取得后续DMA访存请求所需要的页表。
在一些实施方式中,当***内存管理单元开始访问所读取的页表项中最后若干个页表时,***内存管理单元开始为后续的DMA访存请求预取页表缓冲单元中的下一个页表项。
在一些实施方式中,页表缓冲单元可以采用前述实施例中的多级页表缓冲单元10来实现。
发明实施例的内存管理方法通过页表缓冲单元中页表项的存储模式以及三个层次的页表预取机制,有效地加快了页表的读取速度,减少了SMMU因为页表未命中造成的性能损失。
根据本发明另一实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行以实现前述任一实施例所述的内存管理方法的步骤。
根据本发明另一实施例,还提供一种计算机设备,其包括存储器和处理器,所述存储器上存储有可在处理器上运行的计算机程序,所述处理器执行所述计算程序以实现前述任一实施例所述的内存管理方法的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (13)

1.一种内存管理方法,其特征在于,包括:
步骤S11,根据DMA访存请求的类型在对应的子页表缓冲单元中查找该请求需要的页表;
步骤S12,如果该请求需要的页表在对应的子页表缓冲单元中命中,则根据读取的页表对所述DMA访存请求的虚拟地址进行翻译;
步骤S13,如果该请求需要的页表在对应的子页表缓冲单元中没有命中,则去主页表缓冲单元中查找该请求需要的页表;
步骤S14,如果该请求需要的页表在主页表缓冲单元中命中,则根据读取的页表对所述DMA访存请求的虚拟地址进行翻译;
步骤S15,如果该请求需要的页表在主页表缓冲单元中没有命中,则去芯片存储中读取页表,保存在主页表缓冲单元和对应的子页表缓冲单元中,并根据读取的页表对所述DMA访存请求的虚拟地址进行翻译,
其中,所述根据DMA访存请求的类型在对应的子页表缓冲单元中查找该请求需要的页表包括:
如果所述DMA访存请求是读请求,则去读请求子页表缓冲单元中查找该请求需要的页表;如果所述DMA访存请求是写请求,则去写请求子页表缓冲单元中查找该请求需要的页表,
其中,所述主页表缓冲单元存储有DMA读写请求所需要的页表数据;所述读请求子页表缓冲单元存储有DMA读请求所需要的页表数据;所述写请求子页表缓冲单元存储有DMA写请求所需要的页表数据;其中,所述读请求子页表缓冲单元和写请求子页表缓冲单元共享所述主页表缓冲单元的页表数据。
2.一种内存管理方法,其特征在于,包括:
步骤S21,在当前DMA访存请求被***内存管理单元处理之前,预先查找页表缓冲单元中是否存在该请求需要的页表,如果不存在,则从芯片存储中预取该请求需要的页表,保存到页表缓冲单元中;
步骤S22,为当前DMA访存请求一次预取页表缓冲单元中的多项页表,所述多项页表包含当前DMA访存请求和后续DMA访存请求所需要的页表;
步骤S23,当***内存管理单元开始访问所述多项页表中最后若干个页表时,开始为后续的DMA访存请求预取页表缓冲单元中的多项页表,
其中,所述页表缓冲单元包括多级页表缓冲单元,所述多级页表缓冲单元包括主页表缓冲单元、读请求子页表缓冲单元和写请求子页表缓冲单元,
其中,所述主页表缓冲单元存储有DMA读写请求所需要的页表数据;所述读请求子页表缓冲单元存储有DMA读请求所需要的页表数据;所述写请求子页表缓冲单元存储有DMA写请求所需要的页表数据;其中,所述读请求子页表缓冲单元和写请求子页表缓冲单元共享所述主页表缓冲单元的页表数据。
3.根据权利要求2所述的内存管理方法,其特征在于,所述步骤S21包括当DMA访存请求开始进入***内存管理单元的请求队列时,预先查找页表缓冲单元是否存在该请求需要的页表。
4.根据权利要求2所述的内存管理方法,其特征在于,所述页表缓冲单元中的每个页表项包括多项页表,所述步骤S22为当前DMA访存请求一次预取页表缓冲单元中的多项页表包括:为当前DMA访存请求一次预取页表缓冲单元中的一个页表项。
5.根据权利要求4所述的内存管理方法,其特征在于,所述步骤S23包括:当***内存管理单元开始访问所述页表项中最后若干个页表时,开始为后续的DMA访存请求预取页表缓冲单元中的下一页表项。
6.一种内存管理装置,其特征在于,包括如下模块:
第一页表查找模块,用于根据DMA访存请求的类型在对应的子页表缓冲单元中查找该请求需要的页表;
第二页表查找模块,用于在该请求需要的页表在对应的子页表缓冲单元中没有命中时,去主页表缓冲单元中查找该请求需要的页表;
页表读取更新模块,用于在该请求需要的页表在主页表缓冲单元中没有命中时,去芯片存储中读取页表,并保存在主页表缓冲单元和对应的子页表缓冲单元中;
地址翻译模块,用于根据读取的页表对所述DMA访存请求的虚拟地址进行翻译,
其中,所述根据DMA访存请求的类型在对应的子页表缓冲单元中查找该请求需要的页表包括:如果所述DMA访存请求是读请求,则去读请求子页表缓冲单元中查找该请求需要的页表;如果所述DMA访存请求是写请求,则去写请求子页表缓冲单元中查找该请求需要的页表,
其中,所述主页表缓冲单元存储有DMA读写请求所需要的页表数据;所述读请求子页表缓冲单元存储有DMA读请求所需要的页表数据;所述写请求子页表缓冲单元存储有DMA写请求所需要的页表数据;其中,所述读请求子页表缓冲单元和写请求子页表缓冲单元共享所述主页表缓冲单元的页表数据。
7.一种内存管理装置,其特征在于,包括如下模块:
第一预取模块,用于在当前DMA访存请求被***内存管理单元处理之前,预先查找页表缓冲单元中是否存在该请求需要的页表,如果不存在,则从芯片存储中预取该请求需要的页表,保存到页表缓冲单元中;
第二预取模块,用于为当前DMA访存请求一次预取页表缓冲单元中的多项页表,所述多项页表包含当前DMA访存请求和后续DMA访存请求所需要的页表;
第三预取模块,用于当***内存管理单元开始访问所述多项页表中最后若干个页表时,开始为后续的DMA访存请求预取页表缓冲单元中的多项页表,
其中,所述页表缓冲单元包括多级页表缓冲单元,所述多级页表缓冲单元包括主页表缓冲单元、读请求子页表缓冲单元和写请求子页表缓冲单元,
其中,所述主页表缓冲单元存储有DMA读写请求所需要的页表数据;所述读请求子页表缓冲单元存储有DMA读请求所需要的页表数据;所述写请求子页表缓冲单元存储有DMA写请求所需要的页表数据;其中,所述读请求子页表缓冲单元和写请求子页表缓冲单元共享所述主页表缓冲单元的页表数据。
8.根据权利要求7所述的内存管理装置,其特征在于,所述第一预取模块在当前DMA访存请求被***内存管理单元处理之前,预先查找页表缓冲单元中是否存在该请求需要的页表包括:在DMA访存请求开始进入***内存管理单元的请求队列时,预先查找页表缓冲单元是否存在该请求需要的页表。
9.根据权利要求7所述的内存管理装置,其特征在于,所述页表缓冲单元中的每个页表项包括多项页表,所述第二预取模块为当前DMA访存请求一次预取页表缓冲单元中的多项页表包括:为当前DMA访存请求一次预取页表缓冲单元中的一个页表项。
10.根据权利要求9所述的内存管理装置,其特征在于,所述第三预取模块还用于当***内存管理单元开始访问所述页表项中最后若干个页表时,开始为后续的DMA访存请求预取页表缓冲单元中的下一页表项。
11.一种***内存管理单元,其特征在于,包括如权利要求6-10任一项所述的内存管理装置。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行以实现根据权利要求1-5任一项所述的内存管理方法的步骤。
13.一种计算机设备,其包括存储器和处理器,所述存储器上存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算程序以实现根据权利要求1-5任一项所述的内存管理方法的步骤。
CN201811119736.5A 2018-09-25 2018-09-25 用于芯片存储访问的内存管理方法和装置 Active CN110941565B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811119736.5A CN110941565B (zh) 2018-09-25 2018-09-25 用于芯片存储访问的内存管理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811119736.5A CN110941565B (zh) 2018-09-25 2018-09-25 用于芯片存储访问的内存管理方法和装置

Publications (2)

Publication Number Publication Date
CN110941565A CN110941565A (zh) 2020-03-31
CN110941565B true CN110941565B (zh) 2022-04-15

Family

ID=69904410

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811119736.5A Active CN110941565B (zh) 2018-09-25 2018-09-25 用于芯片存储访问的内存管理方法和装置

Country Status (1)

Country Link
CN (1) CN110941565B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111552653B (zh) * 2020-05-14 2021-01-29 上海燧原科技有限公司 页表的读取方法、装置、设备及计算机存储介质
US11455264B2 (en) * 2020-08-10 2022-09-27 International Business Machines Corporation Minimizing delay while migrating direct memory access (DMA) mapped pages

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101203838A (zh) * 2005-06-21 2008-06-18 英特尔公司 直接存储器存取转换的地址窗口支持
CN101326499A (zh) * 2005-10-20 2008-12-17 高通股份有限公司 更新多级翻译旁视缓冲器(tlb)字段
CN108268283A (zh) * 2016-12-31 2018-07-10 英特尔公司 用于利用约简操作来支持数据并行循环的计算引擎架构

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102262557B (zh) * 2010-05-25 2015-01-21 运软网络科技(上海)有限公司 通过总线架构构建虚拟机监控器的方法及性能服务框架
US8405668B2 (en) * 2010-11-19 2013-03-26 Apple Inc. Streaming translation in display pipe
KR20130076973A (ko) * 2011-12-29 2013-07-09 삼성전자주식회사 응용 프로세서 및 이를 포함하는 시스템
EP2885713A4 (en) * 2012-08-18 2016-03-23 Qualcomm Technologies Inc TRANSLATION LOOK ASIDE BUFFER STORE WITH ADVANCE
CN102929686A (zh) * 2012-09-28 2013-02-13 杭州中天微***有限公司 一种片上多核处理器功能验证方法
US9317444B2 (en) * 2013-03-15 2016-04-19 Vmware, Inc. Latency reduction for direct memory access operations involving address translation
GB2528842B (en) * 2014-07-29 2021-06-02 Advanced Risc Mach Ltd A data processing apparatus, and a method of handling address translation within a data processing apparatus
US9940129B2 (en) * 2015-04-24 2018-04-10 Optimum Semiconductor Technologies, Inc. Computer processor with register direct branches and employing an instruction preload structure

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101203838A (zh) * 2005-06-21 2008-06-18 英特尔公司 直接存储器存取转换的地址窗口支持
CN101326499A (zh) * 2005-10-20 2008-12-17 高通股份有限公司 更新多级翻译旁视缓冲器(tlb)字段
CN108268283A (zh) * 2016-12-31 2018-07-10 英特尔公司 用于利用约简操作来支持数据并行循环的计算引擎架构

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A virtual cache-based workstation architecture;C. R. Frink;《Proceedings. 2nd IEEE Conference on Computer Workstations》;20020806;80-87 *
一种TLB结构优化方法;何军;《计算机工程》;20121105;253-256 *

Also Published As

Publication number Publication date
CN110941565A (zh) 2020-03-31

Similar Documents

Publication Publication Date Title
TWI451334B (zh) 微處理器及縮短尋訪時間之方法
KR100562906B1 (ko) 시리얼 플래시 메모리에서의 xip를 위한 우선순위기반의 플래시 메모리 제어 장치 및 이를 이용한 메모리관리 방법, 이에 따른 플래시 메모리 칩
US8145876B2 (en) Address translation with multiple translation look aside buffers
US8924648B1 (en) Method and system for caching attribute data for matching attributes with physical addresses
US20080294867A1 (en) Arithmetic processor, information procesing apparatus and memory access method in arithmetic processor
US20150143045A1 (en) Cache control apparatus and method
US9612975B2 (en) Page cache device and method for efficient mapping
CN112416817B (zh) 预取方法、信息处理装置、设备以及存储介质
US20070094476A1 (en) Updating multiple levels of translation lookaside buffers (TLBs) field
US20070180158A1 (en) Method for command list ordering after multiple cache misses
JPH07325761A (ja) 仮想記憶システムに使用するための装置
JP2017516228A (ja) 自己書き換えコードのハードウェアサポートを提供する方法及び装置
US20200050558A1 (en) Modifying NVMe Physical Region Page List Pointers and Data Pointers to Facilitate Routing of PCIe Memory Requests
US20070180156A1 (en) Method for completing IO commands after an IO translation miss
CN110858181A (zh) 用于执行地址转换的装置和方法
CN108959125B (zh) 一种支持数据快速获取的存储访问方法和装置
CN110941565B (zh) 用于芯片存储访问的内存管理方法和装置
CN108874691B (zh) 数据预取方法和内存控制器
US8661169B2 (en) Copying data to a cache using direct memory access
US8850159B2 (en) Method and system for latency optimized ATS usage
US20070180157A1 (en) Method for cache hit under miss collision handling
US9158697B2 (en) Method for cleaning cache of processor and associated processor
JP5500274B1 (ja) キャッシュメモリ、キャッシュメモリの検索方法、情報処理装置、およびプログラム
CN109308270B (zh) 一种加速虚实地址转换的方法及装置
CN111198827B (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
TA01 Transfer of patent application right

Effective date of registration: 20211021

Address after: 100192 Building No. 25, No. 1 Hospital, Baosheng South Road, Haidian District, Beijing, No. 301

Applicant after: SUANFENG TECHNOLOGY (BEIJING) Co.,Ltd.

Address before: 100192 2nd Floor, Building 25, No. 1 Hospital, Baosheng South Road, Haidian District, Beijing

Applicant before: BITMAIN TECHNOLOGIES Inc.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220330

Address after: 100176 901, floor 9, building 8, courtyard 8, KEGU 1st Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing (Yizhuang group, high-end industrial area of Beijing Pilot Free Trade Zone)

Applicant after: Beijing suneng Technology Co.,Ltd.

Address before: 100192 Building No. 25, No. 1 Hospital, Baosheng South Road, Haidian District, Beijing, No. 301

Applicant before: SUANFENG TECHNOLOGY (BEIJING) CO.,LTD.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant