CN113836054A - 用于gpu的内存页管理方法和内存页转换方法 - Google Patents

用于gpu的内存页管理方法和内存页转换方法 Download PDF

Info

Publication number
CN113836054A
CN113836054A CN202111004634.0A CN202111004634A CN113836054A CN 113836054 A CN113836054 A CN 113836054A CN 202111004634 A CN202111004634 A CN 202111004634A CN 113836054 A CN113836054 A CN 113836054A
Authority
CN
China
Prior art keywords
page
tlb
memory
table entry
nested
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
Application number
CN202111004634.0A
Other languages
English (en)
Other versions
CN113836054B (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.)
National Defense Technology Innovation Institute PLA Academy of Military Science
Original Assignee
National Defense Technology Innovation Institute PLA Academy of Military Science
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 National Defense Technology Innovation Institute PLA Academy of Military Science filed Critical National Defense Technology Innovation Institute PLA Academy of Military Science
Priority to CN202111004634.0A priority Critical patent/CN113836054B/zh
Publication of CN113836054A publication Critical patent/CN113836054A/zh
Application granted granted Critical
Publication of CN113836054B publication Critical patent/CN113836054B/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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • 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/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种用于GPU的内存页管理方法和内存页转换方法,该内存页管理方法包括:在至少一个物理页中嵌套一个小物理页,其中,小物理页的内存小于物理页;在TLB的页表项中增加预设内存大小的嵌套页标记位,其中,嵌套页标记位用于表示当前TLB的页表项对应的物理页是否嵌套有小物理页、以及用于表示虚拟地址是否命中当前TLB的页表项对应的物理页;根据调整后的TLB进行虚实地址转换。本发明的用于GPU的内存页管理方法和内存页转换方法能够提高内存空间的使用效率,降低存储成本,减少多任务GPU中内存碎片化问题。

Description

用于GPU的内存页管理方法和内存页转换方法
技术领域
本发明涉及GPU技术领域,具体涉及一种用于GPU的内存页管理方法和内存页转换方法。
背景技术
图形处理器(Graphics Processing Unit,GPU)是一种用于做图像和图形相关运算工作的微处理器,GPU因其强大的计算能力在云计算平台和数据中心被广泛应用,为用户提供所需要的计算,现代GPU通常采用虚拟内存技术对真实的物理内存进行抽象,为每个运行在GPU上的任务提供一个独占内存地址空间的假象。在虚拟内存技术下,执行GPU上某一任务的访存指令所产生的内存地址被称为虚拟地址或者逻辑地址,而访问真实物理内存的地址叫做物理地址,虚拟内存技术负责完成虚拟地址向物理地址的地址映射,因此在编写程序的时候可以不考虑程序在物理内存的所在位置和所占空间等问题。
目前,GPU的虚拟内存技术通常采用页式内存管理的方式对物理内存进行分配以及完成物理内存到虚拟内存的映射。具体地,在页式内存管理方式下,GPU上每一个任务的虚拟内存被划分成许多虚拟内存页(page),而物理内存同样被划分为与虚拟内存页相同大小的许多物理内存页(physical page),虚拟内存的某个地址的映射问题,在页式内存管理方式下就是虚拟内存页到物理内存页的映射再加上页内偏移的问题。为了优化对内存页的管理,现代GPU通常采用内存管理单元(Memory Management Unit,MMU)和转译后备缓冲器(Translation Lookaside Buffer,TLB)来快速完成虚拟地址到物理地址的映射,其中,TLB为高速的存储器,TLB存储了虚拟地址到物理地址映射的页表项。当虚拟地址到来时,MMU首先查找TLB,如果TLB命中,则直接可以返回该虚拟地址对应的物理地址;如果TLB失效,则通过页表查找器(Page Table Walker,PTW)访存GPU系统内存中存储的页表项来完成虚实地址的转换。附图1为示例提供的一种64KB内存页对应的虚实地址转换过程示意图;如附图1所示,在现有的页式内存管理方式下,虚拟地址根据内存页大小被分为两部分,其中,[31:16]位为虚拟页号,[15:0]位为页内偏移,进行虚实地址转化的访存请求使用虚拟页号去查找TLB,判断虚拟页号中的相应位与TLB页表项的tag位是否相同,如果相同则TLB命中,可以得到物理地址;如果都不相同,则TLB失效,通过PTW访问GPU系统内存中的页表进行虚实地址转换;当TLB命中时,通过将实页号与页内偏移拼接得到物理地址。
由于GPU的内存页大小一般是4KB,因此通常将4KB的内存页称为小页,将大于4KB的内存页称为大页。在GPU上使用小页可以有效降低CPU-GPU之间的内存页传输延迟,同时在GPU上使用大页可以有效降低TLB的失效率。不同的GPU任务由于程序特征的不同对大小页有不同的需求,因此现有的现代GPU系统普遍支持多种页大小的内存管理以便对存储空间进行更加高效的管理。
然而,在GPU上使用大页虽然能够有效提升TLB的命中率,提高程序的性能,但是也不可避免带来内存碎片化问题,其中,内存碎片化问题包括内部碎片和外部碎片。以64KB的内存页为例,如果当前任务无法完全使用64KB的物理内存空间,则可能产生较大的页内浪费,这种实际未使用的空间不能分配给其它任务,也不能分配给同一任务的不同虚拟内存区域,这种问题称为内部碎片。由于页对齐的要求,如果空闲小页散落在内存空间中,则会造成无法分配一大段地址连续的内存空间给一个大页,这种问题称为外部碎片。当出现内存碎片化问题时,均会造成空间的浪费,导致程序开销和存储成本增加。
发明内容
为解决上述现有技术中存在的部分或全部技术问题,本发明提供一种用于GPU的内存页管理方法和内存页转换方法。
本发明的技术方案如下:
第一方面,提供了一种用于GPU的内存页管理方法,包括:
在至少一个物理页中嵌套一个小物理页,其中,所述小物理页的内存小于所述物理页;
在TLB的页表项中增加预设内存大小的嵌套页标记位,其中,所述嵌套页标记位用于表示当前TLB的页表项对应的物理页是否嵌套有小物理页、以及用于表示虚拟地址是否命中当前TLB的页表项对应的物理页;
根据调整后的TLB进行虚实地址转换。
在一些可能的实现方式中,所述物理页的内存大小为64KB。
在一些可能的实现方式中,所述小物理页的内存大小为4KB、8KB、16KB和32KB中任一种。
在一些可能的实现方式中,所述嵌套页标记位的内存大小为4个比特位。
在一些可能的实现方式中,根据物理页是否嵌套有小物理页将嵌套页标记位的4个比特位配置为4’b0000、4’b0001、4’b0010、4’b0100或4’b1000,其中,当4个比特位配置为4’b0000时,表示物理页未嵌套小物理页,其中,当4个比特位配置为4’b0001时,表示物理页嵌套有内存大小为4KB的小物理页,其中,当4个比特位配置为4’b0010时,表示物理页嵌套有内存大小为8KB的小物理页,其中,当4个比特位配置为4’b0100时,表示物理页嵌套有内存大小为16KB的小物理页,其中,当4个比特位配置为4’b1000时,表示物理页嵌套有内存大小为32KB的小物理页。
在一些可能的实现方式中,所述根据调整后的TLB进行虚实地址转换,包括以下步骤:
S11,根据输入的虚拟地址以及内存页大小计算虚拟页号和页内偏移;
S12,利用虚拟页号查找TLB,判断TLB是否命中,若TLB没有命中,则进行步骤S13,若TLB命中,则进行步骤S14;
S13,利用PTW访问内存中存储的页表项,得到虚拟地址对应的页表项,并将得到的页表项放入TLB中,返回步骤S11;
S14,判断命中的TLB的页表项对应的物理页是否嵌套有小物理页,若没有,则进行步骤S15,若有,则进行步骤S16;
S15,将虚拟地址中的页内偏移地址与当前TLB的页表项包含的物理页号进行组合得到物理地址;
S16,将虚拟地址中的页内偏移的预设位与当前TLB的页表项包含的嵌套页标记位进行比较,确定虚拟地址是否落在嵌套的小物理页内;若虚拟地址落在嵌套的小物理页内,则利用PTW访问内存中存储的页表项,得到虚拟地址对应的页表项,并将得到的页表项放入TLB中,返回步骤S11;若虚拟地址落在嵌套的小物理页外,则将虚拟地址中的页内偏移地址与当前TLB的页表项包含的物理页号进行组合得到物理地址。
在一些可能的实现方式中,步骤S12中,判断TLB是否命中,包括:
若TLB为全相联映射,则将TLB中的每一个页表项与虚拟页号进行依次比较,判断TLB是否命中;
若TLB为组相联映射,则利用虚拟页号计算出TLB组号,依次将得到的TLB对应组中的每一个页表项与虚拟页号中的相应位比较,判断TLB是否命中。
在一些可能的实现方式中,当虚拟地址为32位,内存页大小为64KB时,虚拟页号为虚拟地址的[31:16]位,页内偏移为虚拟地址的[15:0]位。
在一些可能的实现方式中,当虚拟地址为32位,内存页大小为64KB时,步骤S15中的页内偏移的预设位为[15:12]位。
第二方面,提供了一种用于GPU的内存页转换方法,包括以下步骤:
S21,输入访存请求的虚拟地址;
S22,根据输入的虚拟地址以及内存页大小计算虚拟页号和页内偏移;
S23,利用虚拟页号查找TLB,判断TLB是否命中,若TLB没有命中,则进行步骤S24,若TLB命中,则进行步骤S25;
S24,利用PTW访问内存中存储的页表项,得到虚拟地址对应的页表项,并将得到的页表项放入TLB中,返回步骤S22;
S25,判断命中的TLB的页表项对应的物理页是否嵌套有小物理页,若没有,则进行步骤S26,若有,则进行步骤S27;
S26,将虚拟地址中的页内偏移地址与当前TLB的页表项包含的物理页号进行组合得到物理地址;
S27,将虚拟地址中的页内偏移的预设位与当前TLB的页表项包含的嵌套页标记位进行比较,确定虚拟地址是否落在嵌套的小物理页内;若虚拟地址落在嵌套的小物理页内,则利用PTW访问内存中存储的页表项,得到虚拟地址对应的页表项,并将得到的页表项放入TLB中,返回步骤S22;若虚拟地址落在嵌套的小物理页外,则将虚拟地址中的页内偏移地址与当前TLB的页表项包含的物理页号进行组合得到物理地址;
其中,GPU的至少一个物理页中嵌套有一个小物理页,小物理页的内存小于物理页,TLB的页表项中配置有预设内存大小的嵌套页标记位,嵌套页标记位用于表示当前TLB的页表项对应的物理页是否嵌套有小物理页、以及用于表示虚拟地址是否命中当前TLB的页表项对应的物理页。
本发明技术方案的主要优点如下:
本发明的用于GPU的内存页管理方法和内存页转换方法通过在内存较大的物理页中嵌套内存较小的小物理页,利用小物理页可以有效地利用内存较大的物理页中未被使用的空间,减少出现内部碎片的可能性,并且通过将内存较小的小物理页嵌套到内存较大的物理页中,能够有效避免大量空闲小页散落在内存空间中,减少出现外部碎片的可能性,提高内存空间的使用效率,降低存储成本;同时,在进行采用内存页嵌套的基础上,在TLB的页表项中增设嵌套页标记位,能够准确高效地判断访存请求是否命中TLB、以及物理页是否嵌套有小物理页,实现基于内存页嵌套的虚实地址转换。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为示例提供的一种64KB内存页对应的虚实地址转换过程示意图;
图2为本发明一实施例的用于GPU的内存页管理方法的流程图;
图3为本发明一实施例的虚实地址转换流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
以下结合附图,详细说明本发明一实施例提供的技术方案。
参见附图2,第一方面,本发明一实施例提供了一种用于GPU的内存页管理方法,该方法包括:
在至少一个物理页中嵌套一个小物理页,其中,小物理页的内存小于物理页;
在TLB的页表项中增加预设内存大小的嵌套页标记位,其中,嵌套页标记位用于表示当前TLB的页表项对应的物理页是否嵌套有小物理页、以及用于表示虚拟地址是否命中当前TLB的页表项对应的物理页;
根据调整后的TLB进行虚实地址转换。
本发明一实施例通过在内存较大的物理页中嵌套内存较小的小物理页,利用小物理页可以有效地利用内存较大的物理页中未被使用的空间,减少出现内部碎片的可能性,并且通过将内存较小的小物理页嵌套到内存较大的物理页中,能够有效避免大量空闲小页散落在内存空间中,减少出现外部碎片的可能性,提高内存空间的使用效率,降低存储成本;同时,在进行采用内存页嵌套的基础上,在TLB的页表项中增设嵌套页标记位,能够准确高效地判断访存请求是否命中TLB、以及物理页是否嵌套有小物理页,实现基于内存页嵌套的虚实地址转换。
进一步地,用于嵌套小物理页的物理页的内存大小可以为64KB,物理页的内存大小为64KB表示仅选择GPU系统内存中的内存大小为64KB的物理页来嵌套小物理页,其中,用于嵌套小物理页的物理页的数量可根据实际程序开销和内存使用需求进行确定。
由于小物理页的内存小于物理页,在采用内存大小为64KB的物理页嵌套小物理页的基础上,小物理页的内存大小可以为4KB、8KB、16KB和32KB中任一种。例如,物理页可以嵌套内存大小为4KB的小物理页,也可以嵌套其他内存大小的小物理页,不同物理页所嵌套的小物理页的内存大小可以不相同。
进一步地,在采用内存大小为64KB的物理页嵌套内存大小为4KB、8KB、16KB和32KB中任一项的小物理页的基础上,为了准确高效地判断访存请求是否命中TLB、以及判断物理页是否嵌套有小物理页,本申请中,嵌套页标记位的内存大小为4个比特位,4个比特位可以被配置为用于表示当前TLB的页表项对应的物理页是否嵌套有小物理页、以及用于表示虚拟地址是否命中当前TLB的页表项对应的物理页。
可选的,根据物理页是否嵌套有小物理页将嵌套页标记位的4个比特位配置为4’b0000、4’b0001、4’b0010、4’b0100或4’b1000,其中,当4个比特位配置为4’b0000时,表示物理页未嵌套小物理页,其中,当4个比特位配置为4’b0001时,表示物理页嵌套有内存大小为4KB的小物理页,其中,当4个比特位配置为4’b0010时,表示物理页嵌套有内存大小为8KB的小物理页,其中,当4个比特位配置为4’b0100时,表示物理页嵌套有内存大小为16KB的小物理页,其中,当4个比特位配置为4’b1000时,表示物理页嵌套有内存大小为32KB的小物理页。
进一步地,当一个虚拟内存地址到来时,该访存请求的虚拟地址访问TLB进行虚实地址转换,本发明一实施例中,当访存请求到来时,根据调整后的TLB进行虚实地址转换。
具体地,参见图3,根据调整后的TLB进行虚实地址转换,包括以下步骤:
S11,根据输入的虚拟地址以及内存页大小计算虚拟页号和页内偏移;
S12,利用虚拟页号查找TLB,判断TLB是否命中,若TLB没有命中,则进行步骤S13,若TLB命中,则进行步骤S14;
S13,利用PTW访问内存中存储的页表项,得到虚拟地址对应的页表项,并将得到的页表项放入TLB中,返回步骤S11;
S14,判断命中的TLB的页表项对应的物理页是否嵌套有小物理页,若没有,则进行步骤S15,若有,则进行步骤S16;
S15,将虚拟地址中的页内偏移地址与当前TLB的页表项包含的物理页号进行组合得到物理地址;
S16,将虚拟地址中的页内偏移的预设位与当前TLB的页表项包含的嵌套页标记位进行比较,确定虚拟地址是否落在嵌套的小物理页内;若虚拟地址落在嵌套的小物理页内,则利用PTW访问内存中存储的页表项,得到虚拟地址对应的页表项,并将得到的页表项放入TLB中,返回步骤S11;若虚拟地址落在嵌套的小物理页外,则将虚拟地址中的页内偏移地址与当前TLB的页表项包含的物理页号进行组合得到物理地址。
进一步地,步骤S12中,判断TLB是否命中,包括:
若TLB为全相联映射,则将TLB中的每一个页表项与虚拟页号进行依次比较,判断TLB是否命中;
若TLB为组相联映射,则利用虚拟页号计算出TLB组号,依次将得到的TLB对应组中的每一个页表项与虚拟页号中的相应位比较,判断TLB是否命中。
进一步地,当虚拟地址为32位,内存页大小为64KB时,虚拟页号为虚拟地址的[31:16]位,页内偏移为虚拟地址的[15:0]位,步骤S15中的页内偏移的预设位为[15:12]位。
进一步地,步骤S14中,可以通过TLB的页表项的嵌套页标记位来判断命中的TLB的页表项对应的物理页是否嵌套有小物理页。具体地,基于上述嵌套页标记位的4个比特位的具体配置,若嵌套页标记位全为0,则命中的TLB的页表项对应的物理页没有嵌套小物理页,若嵌套页标记位不全为0,则命中的TLB的页表项对应的物理页嵌套有小物理页。
第二方面,本申请一实施例还提供了一种用于GPU的内存页转换方法,该方法包括以下步骤:
S21,输入访存请求的虚拟地址;
S22,根据输入的虚拟地址以及内存页大小计算虚拟页号和页内偏移;
S23,利用虚拟页号查找TLB,判断TLB是否命中,若TLB没有命中,则进行步骤S24,若TLB命中,则进行步骤S25;
S24,利用PTW访问内存中存储的页表项,得到虚拟地址对应的页表项,并将得到的页表项放入TLB中,返回步骤S22;
S25,判断命中的TLB的页表项对应的物理页是否嵌套有小物理页,若没有,则进行步骤S26,若有,则进行步骤S27;
S26,将虚拟地址中的页内偏移地址与当前TLB的页表项包含的物理页号进行组合得到物理地址;
S27,将虚拟地址中的页内偏移的预设位与当前TLB的页表项包含的嵌套页标记位进行比较,确定虚拟地址是否落在嵌套的小物理页内;若虚拟地址落在嵌套的小物理页内,则利用PTW访问内存中存储的页表项,得到虚拟地址对应的页表项,并将得到的页表项放入TLB中,返回步骤S22;若虚拟地址落在嵌套的小物理页外,则将虚拟地址中的页内偏移地址与当前TLB的页表项包含的物理页号进行组合得到物理地址;
其中,GPU的至少一个物理页中嵌套有一个小物理页,小物理页的内存小于物理页,TLB的页表项中配置有预设内存大小的嵌套页标记位,嵌套页标记位用于表示当前TLB的页表项对应的物理页是否嵌套有小物理页、以及用于表示虚拟地址是否命中当前TLB的页表项对应的物理页。
本发明一实施例通过在内存较大的物理页中嵌套内存较小的小物理页,利用小物理页可以有效地利用内存较大的物理页中未被使用的空间,减少出现内部碎片的可能性,并且通过将内存较小的小物理页嵌套到内存较大的物理页中,能够有效避免大量空闲小页散落在内存空间中,减少出现外部碎片的可能性,提高内存空间的使用效率,降低存储成本;同时,在进行采用内存页嵌套的基础上,在TLB的页表项中增设嵌套页标记位,能够准确高效地判断访存请求是否命中TLB、以及物理页是否嵌套有小物理页,实现基于内存页嵌套的虚实地址转换。
可见,本发明一实施例提供的用于GPU的内存页管理方法和内存页转换方法,能够提高内存空间的使用效率,降低存储成本,减少多任务GPU中内存碎片化问题。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。此外,本文中“前”、“后”、“左”、“右”、“上”、“下”均以附图中表示的放置状态为参照。
最后应说明的是:以上实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种用于GPU的内存页管理方法,其特征在于,包括:
在至少一个物理页中嵌套一个小物理页,其中,所述小物理页的内存小于所述物理页;
在TLB的页表项中增加预设内存大小的嵌套页标记位,其中,所述嵌套页标记位用于表示当前TLB的页表项对应的物理页是否嵌套有小物理页、以及用于表示虚拟地址是否命中当前TLB的页表项对应的物理页;
根据调整后的TLB进行虚实地址转换。
2.根据权利要求1所述的用于GPU的内存页管理方法,其特征在于,所述物理页的内存大小为64KB。
3.根据权利要求2所述的用于GPU的内存页管理方法,其特征在于,所述小物理页的内存大小为4KB、8KB、16KB和32KB中任一种。
4.根据权利要求3所述的用于GPU的内存页管理方法,其特征在于,所述嵌套页标记位的内存大小为4个比特位。
5.根据权利要求4所述的用于GPU的内存页管理方法,其特征在于,根据物理页是否嵌套有小物理页将嵌套页标记位的4个比特位配置为4’b0000、4’b0001、4’b0010、4’b0100或4’b1000,其中,当4个比特位配置为4’b0000时,表示物理页未嵌套小物理页,其中,当4个比特位配置为4’b0001时,表示物理页嵌套有内存大小为4KB的小物理页,其中,当4个比特位配置为4’b0010时,表示物理页嵌套有内存大小为8KB的小物理页,其中,当4个比特位配置为4’b0100时,表示物理页嵌套有内存大小为16KB的小物理页,其中,当4个比特位配置为4’b1000时,表示物理页嵌套有内存大小为32KB的小物理页。
6.根据权利要求1至5中任一项所述的用于GPU的内存页管理方法,其特征在于,所述根据调整后的TLB进行虚实地址转换,包括以下步骤:
S11,根据输入的虚拟地址以及内存页大小计算虚拟页号和页内偏移;
S12,利用虚拟页号查找TLB,判断TLB是否命中,若TLB没有命中,则进行步骤S13,若TLB命中,则进行步骤S14;
S13,利用PTW访问内存中存储的页表项,得到虚拟地址对应的页表项,并将得到的页表项放入TLB中,返回步骤S11;
S14,判断命中的TLB的页表项对应的物理页是否嵌套有小物理页,若没有,则进行步骤S15,若有,则进行步骤S16;
S15,将虚拟地址中的页内偏移地址与当前TLB的页表项包含的物理页号进行组合得到物理地址;
S16,将虚拟地址中的页内偏移的预设位与当前TLB的页表项包含的嵌套页标记位进行比较,确定虚拟地址是否落在嵌套的小物理页内;若虚拟地址落在嵌套的小物理页内,则利用PTW访问内存中存储的页表项,得到虚拟地址对应的页表项,并将得到的页表项放入TLB中,返回步骤S11;若虚拟地址落在嵌套的小物理页外,则将虚拟地址中的页内偏移地址与当前TLB的页表项包含的物理页号进行组合得到物理地址。
7.根据权利要求6所述的用于GPU的内存页管理方法,其特征在于,步骤S12中,判断TLB是否命中,包括:
若TLB为全相联映射,则将TLB中的每一个页表项与虚拟页号进行依次比较,判断TLB是否命中;
若TLB为组相联映射,则利用虚拟页号计算出TLB组号,依次将得到的TLB对应组中的每一个页表项与虚拟页号中的相应位比较,判断TLB是否命中。
8.根据权利要求6所述的用于GPU的内存页管理方法,其特征在于,当虚拟地址为32位,内存页大小为64KB时,虚拟页号为虚拟地址的[31:16]位,页内偏移为虚拟地址的[15:0]位。
9.根据权利要求6所述的用于GPU的内存页管理方法,其特征在于,当虚拟地址为32位,内存页大小为64KB时,步骤S15中的页内偏移的预设位为[15:12]位。
10.一种用于GPU的内存页转换方法,其特征在于,包括以下步骤:
S21,输入访存请求的虚拟地址;
S22,根据输入的虚拟地址以及内存页大小计算虚拟页号和页内偏移;
S23,利用虚拟页号查找TLB,判断TLB是否命中,若TLB没有命中,则进行步骤S24,若TLB命中,则进行步骤S25;
S24,利用PTW访问内存中存储的页表项,得到虚拟地址对应的页表项,并将得到的页表项放入TLB中,返回步骤S22;
S25,判断命中的TLB的页表项对应的物理页是否嵌套有小物理页,若没有,则进行步骤S26,若有,则进行步骤S27;
S26,将虚拟地址中的页内偏移地址与当前TLB的页表项包含的物理页号进行组合得到物理地址;
S27,将虚拟地址中的页内偏移的预设位与当前TLB的页表项包含的嵌套页标记位进行比较,确定虚拟地址是否落在嵌套的小物理页内;若虚拟地址落在嵌套的小物理页内,则利用PTW访问内存中存储的页表项,得到虚拟地址对应的页表项,并将得到的页表项放入TLB中,返回步骤S22;若虚拟地址落在嵌套的小物理页外,则将虚拟地址中的页内偏移地址与当前TLB的页表项包含的物理页号进行组合得到物理地址;
其中,GPU的至少一个物理页中嵌套有一个小物理页,小物理页的内存小于物理页,TLB的页表项中配置有预设内存大小的嵌套页标记位,嵌套页标记位用于表示当前TLB的页表项对应的物理页是否嵌套有小物理页、以及用于表示虚拟地址是否命中当前TLB的页表项对应的物理页。
CN202111004634.0A 2021-08-30 2021-08-30 用于gpu的内存页管理方法和内存页转换方法 Active CN113836054B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111004634.0A CN113836054B (zh) 2021-08-30 2021-08-30 用于gpu的内存页管理方法和内存页转换方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111004634.0A CN113836054B (zh) 2021-08-30 2021-08-30 用于gpu的内存页管理方法和内存页转换方法

Publications (2)

Publication Number Publication Date
CN113836054A true CN113836054A (zh) 2021-12-24
CN113836054B CN113836054B (zh) 2023-08-22

Family

ID=78961656

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111004634.0A Active CN113836054B (zh) 2021-08-30 2021-08-30 用于gpu的内存页管理方法和内存页转换方法

Country Status (1)

Country Link
CN (1) CN113836054B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114185818A (zh) * 2022-02-15 2022-03-15 摩尔线程智能科技(北京)有限责任公司 基于扩展页表的gpu访存自适应优化方法及装置
CN115640241A (zh) * 2022-10-08 2023-01-24 中科驭数(北京)科技有限公司 基于地址池的内存转换表表项管理方法、查询方法及装置
CN116563089A (zh) * 2023-07-11 2023-08-08 南京砺算科技有限公司 一种图形处理器的内存管理方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120297139A1 (en) * 2011-05-20 2012-11-22 Samsung Electronics Co., Ltd. Memory management unit, apparatuses including the same, and method of operating the same
CN107766259A (zh) * 2016-08-23 2018-03-06 华为技术有限公司 页表缓存的访问方法、页表缓存、处理器芯片和存储单元
CN108139981A (zh) * 2016-08-11 2018-06-08 华为技术有限公司 一种页表缓存tlb中表项的访问方法,及处理芯片
CN111949572A (zh) * 2020-08-24 2020-11-17 海光信息技术有限公司 页表条目合并方法、装置及电子设备
CN112540939A (zh) * 2019-09-23 2021-03-23 阿里巴巴集团控股有限公司 存储管理装置、存储管理方法、处理器和计算机系统
US20210089468A1 (en) * 2019-09-24 2021-03-25 Alibaba Group Holding Limited Memory management unit, address translation method, and processor

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120297139A1 (en) * 2011-05-20 2012-11-22 Samsung Electronics Co., Ltd. Memory management unit, apparatuses including the same, and method of operating the same
CN108139981A (zh) * 2016-08-11 2018-06-08 华为技术有限公司 一种页表缓存tlb中表项的访问方法,及处理芯片
CN107766259A (zh) * 2016-08-23 2018-03-06 华为技术有限公司 页表缓存的访问方法、页表缓存、处理器芯片和存储单元
CN112540939A (zh) * 2019-09-23 2021-03-23 阿里巴巴集团控股有限公司 存储管理装置、存储管理方法、处理器和计算机系统
US20210089470A1 (en) * 2019-09-23 2021-03-25 Alibaba Group Holding Limited Address translation methods and systems
US20210089468A1 (en) * 2019-09-24 2021-03-25 Alibaba Group Holding Limited Memory management unit, address translation method, and processor
CN111949572A (zh) * 2020-08-24 2020-11-17 海光信息技术有限公司 页表条目合并方法、装置及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
郭锋;王宏伟;黄保垒;齐晓斌;: "嵌入式操作系统中基于MIPS处理器的内存管理机制实现", 无线互联科技, no. 11 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114185818A (zh) * 2022-02-15 2022-03-15 摩尔线程智能科技(北京)有限责任公司 基于扩展页表的gpu访存自适应优化方法及装置
CN114185818B (zh) * 2022-02-15 2022-08-02 摩尔线程智能科技(北京)有限责任公司 基于扩展页表的gpu访存自适应优化方法及装置
CN115640241A (zh) * 2022-10-08 2023-01-24 中科驭数(北京)科技有限公司 基于地址池的内存转换表表项管理方法、查询方法及装置
CN116563089A (zh) * 2023-07-11 2023-08-08 南京砺算科技有限公司 一种图形处理器的内存管理方法、装置、设备及存储介质
CN116563089B (zh) * 2023-07-11 2023-10-13 南京砺算科技有限公司 一种图形处理器的内存管理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN113836054B (zh) 2023-08-22

Similar Documents

Publication Publication Date Title
US10310987B2 (en) Systems and methods for accessing a unified translation lookaside buffer
US20210374069A1 (en) Method, system, and apparatus for page sizing extension
CN113836054B (zh) 用于gpu的内存页管理方法和内存页转换方法
US10474580B2 (en) Memory management supporting huge pages
KR102448124B1 (ko) 가상 주소들을 사용하여 액세스된 캐시
US8296547B2 (en) Loading entries into a TLB in hardware via indirect TLB entries
JP5580894B2 (ja) Tlbプリフェッチング
US9465748B2 (en) Instruction fetch translation lookaside buffer management to support host and guest O/S translations
CN110196757B (zh) 虚拟机的tlb填写方法、装置及存储介质
CN108139981B (zh) 一种页表缓存tlb中表项的访问方法,及处理芯片
US9772943B1 (en) Managing synonyms in virtual-address caches
US8335908B2 (en) Data processing apparatus for storing address translations
TW201411345A (zh) 用於階層式記憶體系統之記憶體管理
CN104991869B (zh) 一种微处理器存储管理方法
GB2508716A (en) Caching of virtual to physical address translations
JP6027562B2 (ja) キャッシュメモリシステムおよびプロセッサシステム
EP4227814A1 (en) Method and apparatus for solving address ambiguity problem of cache
TW201633144A (zh) 管理快取記憶體中的重用資訊
JP2015060571A (ja) キャッシュメモリシステムおよびプロセッサシステム
CN112840331A (zh) 分层缓存系统中的预取管理
EP3850492A1 (en) Caching streams of memory requests
CN112631962A (zh) 存储管理装置、存储管理方法、处理器和计算机系统
CN115617709A (zh) 缓存管理方法及装置、缓存装置、电子装置和介质
US7293157B1 (en) Logically partitioning different classes of TLB entries within a single caching structure

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