CN104239237A - 一种tlb管理方法及装置 - Google Patents

一种tlb管理方法及装置 Download PDF

Info

Publication number
CN104239237A
CN104239237A CN201310246392.5A CN201310246392A CN104239237A CN 104239237 A CN104239237 A CN 104239237A CN 201310246392 A CN201310246392 A CN 201310246392A CN 104239237 A CN104239237 A CN 104239237A
Authority
CN
China
Prior art keywords
tlb
vcpu
entry
storage
vpid
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
CN201310246392.5A
Other languages
English (en)
Other versions
CN104239237B (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
Institute of Computing Technology of CAS
Original Assignee
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
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, Institute of Computing Technology of CAS filed Critical Huawei Technologies Co Ltd
Priority to CN201310246392.5A priority Critical patent/CN104239237B/zh
Priority to PCT/CN2014/080103 priority patent/WO2014201998A1/zh
Publication of CN104239237A publication Critical patent/CN104239237A/zh
Priority to US14/975,597 priority patent/US20160103768A1/en
Application granted granted Critical
Publication of CN104239237B publication Critical patent/CN104239237B/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/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]

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

本发明实施例提供了一种TLB管理方法及装置,涉及计算机技术领域,可以降低TLB miss率。所述方法包括:以VCPU的VPID为索引,查询TLB存储目录表,获得第一VCPU对应的TLB存储表在内存区的地址;然后根据所述第一VCPU对应的TLB存储表在内存区的地址访问所述第一VCPU对应的TLB存储表,将所述第一VCPU对应的TLB存储表中的有效的TLB表项依次读入物理TLB中,其中,所述TLB存储表存储有TLB表项以及各个TLB表项对应的效用标识,所述效用标识用来描述所述TLB表项是否有效。

Description

一种TLB管理方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种TLB(TranslationLookaside Buffer,旁路转换缓冲)管理方法及装置。
背景技术
现有技术中计算机是通过内存单元的物理地址来访问内存的,而现代的计算机大都支持分页内存管理,在分页内存管理条件下生成的内存单元的地址叫做逻辑地址,逻辑地址必须转换为物理地址才能访问内存。逻辑地址到物理地址的对应关系存储在计算机内存的页表内。如果每次逻辑地址到物理地址的转换都需要访问内存中的页表,则会花费很多的时间。因此,在计算机内设置物理TLB作为进行地址转换的高级缓存,所述物理TLB内存储有常用的部分页表表项,是页表的子集。这样在访问计算机内存单元时,可以先在所述物理TLB中查找匹配的TLB表项进行地址转换,若在所述物理TLB中查找不到即TLB miss(缺失),则到内存中的页表内查找相应表项,提高了地址转换的速度。
在虚拟化环境下,多个VCPU(virtual CPU,虚拟CPU)运行在一台计算机上,一个计算机的物理TLB就被多个VCPU共同使用。一VCPU不能使用另一个VCPU的页表表项进行逻辑地址到物理地址的转换,因此引入了VPID(Virtual-Processor Identifier,虚拟处理器标识)技术,VPID是一个16位的域,用于唯一标识一个VCPU,每个TLB表项与一个VPID相关联。当进行逻辑地址到物理地址转换的时候,只有一个TLB表项对应的VPID与当前正在运行的VCPU的VPID相同的时候,才可以用该TLB表项把对应的逻辑地址转换为物理地址。利用VPID可以区分一个TLB表项属于哪个VCPU。
一个计算机的物理TLB的容量是固定的,在虚拟化环境下,一台计算机上运行多个VCPU,这些VCPU共享计算机的物理TLB,所述物理TLB的容量被各个VCPU平分,现有的计算机中的物理TLB中存储的TLB表项包括各个VCPU的TLB表项,而计算机在同一时间只运行一个VCPU,其他VCPU的TLB表项对正在运行的VCPU并没有用处,但仍保存在所述物理TLB中,导致TLB miss率较大。
发明内容
本发明的实施例提供一种TLB管理方法及装置,可以降低TLB miss率。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,公开了一种TLB管理方法,包括:以第一VCPU的VPID为索引,查询TLB存储目录表,获得第一VCPU对应的TLB存储表在内存区的地址;所述TLB存储目录表的表项数等于VCPU数,所述TLB存储目录表存储有每个VCPU的VPID以及每个VPID对应的TLB存储表在内存区的地址;
根据所述第一VCPU对应的TLB存储表在内存区的地址访问所述第一VCPU对应的TLB存储表,将所述第一VCPU对应的TLB存储表中的有效的TLB表项依次读入物理TLB中;其中,每个VCPU对应一个TLB存储表,所述TLB存储表存储有TLB表项以及各个TLB表项对应的效用标识,所述效用标识用来描述所述TLB表项是否有效。
结合第一方面,在第一种可能的实现方式中,所述TLB存储目录表的地址存储在处理器中新加入的寄存器内;或,所述TLB存储目录表的地址存储在计算机操作系统内核的一个全局变量内;则,所述以第一VCPU的VPID为索引,查询TLB存储目录表,包括:根据所述TLB存储目录表的地址访问所述TLB存储目录表,并以第一VCPU的VPID为索引,查询所述TLB存储目录表。
结合第一方面,在第二种可能的实现方式中,所述TLB存储目录表还存储有用来表示每个VPID对应的TLB存储表表项数的标识。
结合第一方面或第一方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,所述将所述第一VCPU对应的TLB存储表中的有效的TLB表项依次读入物理TLB中,包括:
用所述第一VCPU对应的TLB存储表中的有效的TLB表项依次替换所述物理TLB中当前存储的原有TLB表项;
将被替换的所述物理TLB中当前存储的原有TLB表项保存到所述被替换的所述原有TLB表项对应的VPID所对应的TLB存储表中,并将第一VCPU对应的TLB存储表清空。
结合第三种可能的实现方式,在第四种可能的实现方式中,在将所述第一VCPU对应的TLB存储表中的有效的TLB表项依次读入物理TLB中后,所述方法还包括:
在运行第一VCPU时,若未在所述物理TLB中查找到与所述第一VCPU的内存指令的逻辑地址相匹配的TLB表项,则访问页表查找获得与所述第一VCPU的逻辑地址匹配的页表表项;
用所述匹配的页表表项替换所述物理TLB中的一个TLB表项,并将被替换的一个TLB表项保存到所述被替换的一个TLB表项对应的VPID所对应的TLB存储表中。
结合第四种可能的实现方式,在第五种可能的实现方式中,所述用所述匹配的页表表项替换所述物理TLB中的一个TLB表项,并将被替换的一个TLB表项保存到所述被替换的一个TLB表项对应的VPID所对应的TLB存储表中,包括:
当所述物理TLB中包含具有第一替换优先级的TLB表项时,用所述匹配的页表表项替换所述物理TLB中任意一个具有第一替换优先级的TLB表项;当所述物理TLB中不包含具有第一替换优先级的TLB表项时,用所述匹配的页表表项替换所述物理TLB中任意一个具有第二替换优先级的TLB表项;
在被替换的一个TLB表项为具有第一替换优先级的TLB表项时,将被替换的一个TLB表项保存到所述被替换的一个TLB表项对应的VPID所对应的TLB存储表中;
其中,在所述物理TLB中,具有第二替换优先级的TLB表项为所述第一VCPU的VPID对应的TLB表项,具有第一替换优先级的TLB表项为除第一VCPU之外的VCPU的VPID对应的TLB表项。
结合第五种可能的实现方式,在第六种可能的实现方式中,在用所述匹配的页表表项替换所述物理TLB中任意一个具有第一替换优先级的TLB表项,并将所述被替换的TLB表项保存到所述被替换的TLB表项对应的VPID所对应的TLB存储表中之后,所述方法还包括:
将所述TLB存储目录表中,所述被替换的TLB表项对应的VPID所对应的TLB存储表表项数的标识加1,且将保存在所述被替换的TLB表项对应的VPID所对应的TLB存储表中的所述被替换的TLB表项对应的效用标识设置为有效。
结合第一方面,在第七种可能的实现方式中,当页表内的所述第一VCPU的表项被修改,且被修改的所述第一VCPU的表项存储在所述第一VCPU对应的TLB存储表中时,将所述第一VCPU对应的TLB存储表中,所述被修改的所述第一VCPU的表项对应的所述效用标识设置为无效。
第二方面,还提供了一种TLB管理装置,包括:
查询获得单元,以第一VCPU的VPID为索引,查询TLB存储目录表,获得第一VCPU对应的TLB存储表在内存区的地址;所述TLB存储目录表的表项数等于VCPU数,所述TLB存储目录表存储有每个VCPU的VPID以及每个VPID对应的TLB存储表在内存区的地址;
表项读入单元,用于根据所述查询获得单元查询获得的所述第一VCPU对应的TLB存储表在内存区的地址,访问所述第一VCPU对应的TLB存储表,将所述第一VCPU对应的TLB存储表中的有效的TLB表项依次读入物理TLB中;其中,每个VCPU对应一个TLB存储表,所述TLB存储表存储有TLB表项以及各个TLB表项对应的效用标识,所述效用标识用来描述所述TLB表项是否有效。
结合第二方面,在第一种可能的实现方式中,所述TLB存储目录表的地址存储在处理器中新加入的寄存器内;或,所述TLB存储目录表的地址存储在计算机操作系统内核的一个全局变量内;
则,所述查询获得单元具体用于根据所述TLB存储目录表的地址访问所述TLB存储目录表,然后以第一VCPU的VPID为索引,查询所述TLB存储目录表。
结合第二方面,在第二种可能的实现方式中,所述表项读入单元具体包括:替换子单元和保存子单元;
所述替换子单元,用于根据所述第一VCPU对应的TLB存储表在内存区的地址访问所述第一VCPU对应的TLB存储表,并用所述第一VCPU对应的TLB存储表中的有效的TLB表项依次替换所述物理TLB中当前存储的原有TLB表项;
所述保存子单元,用于将被替换的所述物理TLB中当前存储的原有TLB表项保存到所述被替换的所述原有TLB表项对应的VPID所对应的TLB存储表中,并将第一VCPU对应的TLB存储表清空。
结合第二方面,在第三种可能的实现方式中,
所述TLB存储目录表还存储有用来表示每个VPID对应的TLB存储表表项数的标识。
结合第二方面或第一种可能的实现方式或第二种可能的实现方式,在第四种可能的实现方式中,所述装置还包括:查找匹配单元和替换保存单元;
所述查找匹配单元,用于在运行第一VCPU时,在通过所述表项读入单元读入TLB表项的所述物理TLB中查找与所述第一VCPU的内存指令的的逻辑地址相匹配的TLB表项,若未在所述物理TLB中查找到与所述第一VCPU的内存指令的的逻辑地址相匹配的TLB表项,则访问页表查找获得与所述第一VCPU的逻辑地址匹配的页表表项;
所述替换保存单元,用于用所述查找匹配单元查找到的匹配的页表表项替换所述物理TLB中的一个TLB表项,并将所述被替换的TLB表项保存到所述被替换的TLB表项对应的VPID所对应的TLB存储表中。
结合第四种可能的实现方式,在第五种可能的实现方式中,所述装置还包括:
所述替换保存单元具体用于当所述物理TLB中包含具有第一替换优先级的TLB表项时,用所述匹配的页表表项替换所述物理TLB中任意一个具有第一替换优先级的TLB表项;当所述物理TLB中不包含具有第一替换优先级的TLB表项时,用所述匹配的页表表项替换所述物理TLB中任意一个具有第二替换优先级的TLB表项;并在被替换的一个TLB表项为具有第一替换优先级的TLB表项时,将被替换的一个TLB表项保存到所述被替换的一个TLB表项对应的VPID所对应的TLB存储表中;其中,在所述物理TLB中,具有第二替换优先级的TLB表项为所述第一VCPU的VPID对应的TLB表项,具有第一替换优先级的TLB表项为除第一VCPU之外的VCPU的VPID对应的TLB表项设置。
结合第二方面,在第六种可能的实现方式中,所述装置还包括:更新单元;所述更新单元,用于将所述TLB存储目录表中,被所述替换保存单元替换的TLB表项对应的VPID所对应的TLB存储表表项数的标识加1,且将被所述替换保存单元保存在对应的TLB存储表中的所述被替换的TLB表项对应的效用标识设置为有效。
结合第二方面,在第七种可能的实现方式中,所述装置还包括设置单元,所述设置单元用于当页表内的所述第一VCPU的表项被修改,且被修改的所述第一VCPU的表项存储在所述第一VCPU对应的TLB存储表中时,将所述第一VCPU对应的TLB存储表中,所述被修改的所述第一VCPU的表项对应的所述效用标识设置为无效。
上述技术方案提供的TLB管理方法及装置,通过为每个VCPU分配一个TLB存储表存储在内存区,并将每个TLB存储表在内存区的地址存储在TLB存储目录表中,这样计算机就可以以第一VCPU的VPID为索引,查询TLB存储目录表,获得第一VCPU对应的TLB存储表在内存区的地址,进而根据所述第一VCPU对应的TLB存储表在内存区的地址访问所述第一VCPU对应的TLB存储表,将所述第一VCPU对应的TLB存储表中的有效的TLB表项依次读入物理TLB中;与现有技术中的物理TLB被所有VCPU共享相比,本发明中每个VCPU在进行地址转换时,所述物理TLB中都存储有该VCPU对应的TLB存储表中的全部有效的TLB表项,这样就大大降低了TLB的miss率。
附图说明
图1为本发明实施例提供的一种TLB管理方法的流程示意图;
图2为本发明实施例提供的另一种TLB管理方法的流程示意图;
图3为本发明实施例提供的一种TLB管理方法中的数据结构示意图;
图4为本发明实施例提供的一种TLB管理装置的结构框图;
图5为本发明实施例提供的另一种TLB管理装置的结构框图;
图6为本发明实施例提供的另一种TLB管理装置的结构框图。
具体实施方式
下面结合附图对本发明实施例提供的方法和装置进行详细描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
TLB(Translation lookaside buffer,即旁路转换缓冲,或称为页表缓冲),存放的是一些页表文件,页表指虚拟地址到物理地址的转换表。其中物理地址指内存单元所看到的地址;线性地址或逻辑地址指CPU所生成的地址。一般的,CPU产生的逻辑地址被分为:p(页号)它包含每个页在物理内存中的基址,用来作为页表的索引;d(页偏移),同基址相结合,用来确定送入内存设备的物理内存地址。
一个实施例中,TLB表项是由以下三部分组成:VPID,逻辑地址和物理地址。所述VPID可以区分一个TLB表项属于哪个VCPU,只有所述VPID和逻辑地址都匹配才可以进行正确的地址转换,获得相应的物理地址。
实施例1、
本发明实施例提供了一种TLB管理方法,如图1所示,所述方法包括以下步骤:
101、以第一VCPU的VPID为索引,查询TLB存储目录表,获得第一VCPU对应的TLB存储表在内存区的地址。
其中,所述TLB存储目录表的表项数等于VCPU数,所述TLB存储目录表存储有计算机中每个VCPU的VPID以及每个VPID对应的TLB存储表在内存区的地址。
102、根据所述第一VCPU对应的TLB存储表在内存区的地址访问所述第一VCPU对应的TLB存储表,将所述第一VCPU对应的TLB存储表中的有效的TLB表项依次读入物理TLB中。
其中,每个VCPU对应一个TLB存储表,所述计算机可以根据每个VCPU对应的TLB存储表的地址访问该TLB存储表,TLB存储表存储有TLB表项以及各个TLB表项对应的效用标识,所述效用标识用来描述所述TLB表项是否有效。当效用标识为有效时,表示该TLB表项是有效的。TLB存储表中的有效的TLB表项指该TLB表项的效用标识为有效的。
在本发明实施例中,每个VCPU都分配有一个TLB存储表,用来保存本VCPU的TLB表项。每个VCPU的TLB存储表在内存区的地址都存储在所述TLB存储目录表中,可以用各个VCPU的VPID为索引来查找。这样,计算机在将要进入第一VCPU之前,就可以VPID为索引查找获得第一VCPU对应的TLB存储表在内存区的地址,然后再根据第一VCPU对应的TLB存储表的地址访问该TLB存储表并将该TLB存储表中的有效的TLB表项依次读入物理TLB中。
本发明实施例提供了一种TLB管理方法,通过为每个VCPU分配一个TLB存储表存储在内存区,并将每个TLB存储表在内存区的地址存储在TLB存储目录表中,这样计算机就可以以第一VCPU的VPID为索引,查询TLB存储目录表,获得第一VCPU对应的TLB存储表在内存区的地址,进而根据所述第一VCPU对应的TLB存储表在内存区的地址访问所述第一VCPU对应的TLB存储表,将所述第一VCPU对应的TLB存储表中的有效的TLB表项依次读入物理TLB中;与现有技术中的物理TLB被所有VCPU共享相比,本发明中每个VCPU在进行地址转换时,所述物理TLB中都存储有该VCPU对应的TLB存储表中的全部有效的TLB表项,这样就大大降低了TLB的miss率。
实施例2、
本发明实施例提供了一种TLB管理方法,如图2所示,所述方法包括以下步骤:
201、以第一VCPU的VPID为索引,查询TLB存储目录表,获得第一VCPU对应的TLB存储表在内存区的地址。
其中,所述TLB存储目录表的地址可以存储在CPU中新加入的寄存器内;或者,所述TLB存储目录表的地址也可以存储在计算机操作系统内核的一个全局变量内。这样计算机在进行VCPU调度时,就可以根据所述TLB存储目录表的地址访问所述TLB存储目录表,然后以第一VCPU的VPID为索引,查询所述TLB存储目录表。
可选的,所述TLB存储目录表还存储有用来表示每个VPID对应的TLB存储表表项数的标识。
202、根据所述第一VCPU对应的TLB存储表在内存区的地址访问所述第一VCPU对应的TLB存储表,然后用所述第一VCPU对应的TLB存储表中的有效的TLB表项替换所述物理TLB中当前存储的原有TLB表项。
在这里需要说明的是,一个第一VCPU对应的TLB存储表中的TLB表项只能替换一个所述物理TLB中的原有的TLB表项。将所述物理TLB中当前存储的原有的TLB表项的数目记为M,将所述第一VCPU对应的TLB存储表中的TLB表项的数目记为N,当M大于N时,进行完步骤202后,所述物理TLB中除了存储有第一VCPU对应的TLB表项,还存储有所述物理TLB中原有的TLB表项;当M大于等于N时,进行完步骤202后,所述物理TLB中只存储有第一VCPU对应的TLB表项。
203、将被替换的所述物理TLB中当前存储的原有TLB表项保存到所述被替换的所述原有TLB表项对应的VPID所对应的TLB存储表中,并将第一VCPU对应的TLB存储表清空。
在进行步骤202的同时,还要将物理TLB中被替换下来的所述原有TLB表项保存到所述被替换的原有TLB表项对应的VPID所对应的TLB存储表中。
当所述第一VCPU对应的TLB存储表中的有效TLB表项都被读入了物理TLB中,需要将第一VCPU对应的TLB存储表清空。这样在计算机调度运行VCPU,将运行第一VCPU的状态切换到运行其他VCPU的状态的时候,就可以用其他VCPU对应的TLB存储表中的有效TLB表项替换物理TLB中原有的TLB表项,将物理TLB中原有的TLB表项保存到所述被替换的原有TLB表项对应的VPID所对应的TLB存储表中,这样就可以将所述物理TLB中所述第一VCPU对应的TLB表项保存在已被清空了的第一VCPU对应的TLB存储表中了。
优选的,所述TLB存储表中能存储的表项数等于所述物理TLB中的能存储表项数。
在这里需要说明的是,步骤201-203的实现可以通过两种形式,一种是通过硬件实现:当计算机进行VCPU调度时,需要执行进入VCPU的指令,在这里可以扩展进入VCPU的指令的功能,为进入VCPU的指令增加如下功能:根据将要运行的VCPU的VPID,查询所述TLB存储目录表,获得该VCPU对应的TLB存储表在内存区的地址,把内存区中存储的该VCPU对应的TLB存储表中的有效的TLB表项依次读入物理TLB中。这种硬件实现方法对于系统软件开发者来说是透明的,系统软件开发者只需要使用一条进入VCPU的指令。另一种是通过软件实现:可以在执行进入VCPU的指令之前,利用软件方法,把将要在计算机上运行的VCPU的TLB表项从内存区中的TLB存储表中读入所述物理TLB中。
204、在运行第一VCPU时,若未在所述物理TLB中查找到与所述第一VCPU的内存指令的的逻辑地址相匹配的TLB表项,则访问页表查找获得与所述第一VCPU的逻辑地址匹配的页表表项。
计算机在进入第一VCPU,运行第一VCPU时,会接收到所述VCPU的内存指令,需要通过内存单元的物理地址来访问计算机的内存,此时,所述计算机就会先在所述物理TLB中查找是否有与所述第一VCPU的内存指令的的逻辑地址相匹配的TLB表项,若查找到与第一VCPU的内存指令的逻辑地址相匹配的TLB表项,就根据该相匹配的TLB表项进行地址转换,获得与该内存指令对应的物理地址进而访问对应的内存单元。若未查找到与第一VCPU的内存指令的逻辑地址相匹配的TLB表项,则访问页表查找获得与所述第一VCPU的逻辑地址匹配的页表表项,进而根据该匹配的页表表项进行地址转换,获得与该内存指令对应的物理地址,访问对应的内存单元。
205、用所述匹配的页表表项替换所述物理TLB中的一个TLB表项,并将被替换的一个TLB表项保存到所述被替换的一个TLB表项对应的VPID所对应的TLB存储表中。
其中,在所述物理TLB中,所述第一VCPU的VPID对应的TLB表项为具有第二替换优先级的TLB表项,除第一VCPU之外的VCPU的VPID对应的TLB表项为具有第一替换优先级的TLB表项设置。当所述物理TLB中包含具有第一替换优先级的TLB表项时,用所述匹配的页表表项替换所述物理TLB中任意一个具有第一替换优先级的TLB表项;当所述物理TLB中不包含具有第一替换优先级的TLB表项时,用所述匹配的页表表项替换所述物理TLB中任意一个具有第二替换优先级的TLB表项。
在被替换的一个TLB表项为具有第一替换优先级的TLB表项时,将被替换的一个TLB表项保存到所述被替换的一个TLB表项对应的VPID所对应的TLB存储表中;
在这里需要说明的是,若被替换的TLB表项为具有第二替换优先级的TLB表项,则说明所述物理TLB中的所有TLB表项都是第一VCPU对应的TLB表项。由于所述第一VCPU的VPID对应的TLB存储表已被清空,而且替换与被替换的TLB表项都是第一VCPU对应的TLB表项,故不需要保存。若所述被替换的TLB表项为具有第一替换优先级的TLB表项,则被替换的TLB表项是其他VCPU对应的TLB表项,此时就需要将被替换的TLB表项保存到被替换的TLB表项对应的VPID所对应的TLB存储表中。物理TLB中的TLB表项被替换后,这些被替换的TLB表项不会像现有技术中一样丢失,而是保存在其对应的VPID所对应的TLB存储表中,这样在被替换的TLB表项对应的VCPU运行时,物理TLB仍然可以读入该被替换的TLB表项,进而可以使用该表项进行地址转换,可以进一步地降低TLB miss率。
206、将所述被替换的TLB表项对应的VPID所对应的TLB存储表表项数的标识加1,且将保存在所述被替换的TLB表项对应的VPID所对应的TLB存储表中的所述被替换的TLB表项对应的效用标识设置为有效。
当所述被替换的TLB表项为具有第一替换优先级的TLB表项时,所述被替换的TLB表项就会被保存到所述被替换的TLB表项对应的VPID所对应的TLB存储表中。此时,计算机就会将所述TLB存储目录表中,所述被替换的TLB表项对应的VPID所对应的TLB存储表表项数的标识加1,且将保存在所述被替换的TLB表项对应的VPID所对应的TLB存储表中的所述被替换的TLB表项对应的效用标识设置为有效。以便在下次运行该VPID对应的VCPU时,读入所述被替换的TLB表项。
207、当页表内的所述第一VCPU的表项被修改,且被修改的所述第一VCPU的表项存储在所述第一VCPU对应的TLB存储表中时,将所述第一VCPU对应的TLB存储表中,所述被修改的所述第一VCPU的表项对应的所述效用标识设置为无效。
若修改的所述第一VCPU的表项没有存储在所述第一VCPU对应的TLB存储表中时,就不需要对所述第一VCPU对应的TLB存储表进行更改。
如果计算机对某个VCPU的页表表项做出了修改,则需要进行步骤208来保证内存中TLB表项的一致性。当然页表中的某个TLB表项被修改后,若该TLB表项保存在物理TLB中,则需要刷新物理TLB。
示例的,以下以x86结构的计算机为例进行说明,如图3所示,为本发明实施例所提供的TLB管理方法的主要数据结构,该数据结构中主要包括所述TLB存储目录表、TLB存储表和物理TLB。其中,所述TLB存储目录表的地址存储在寄存器中,其表项数等于计算机上的VCPU数,所述TLB存储目录表由域tlb_space_p和域index构成,所述域tlb_space_p中存储每个VCPU对应TLB存储表在内存区的地址,所述域index中存储有存储有用来表示每个VPID对应的TLB存储表表项数的标识。所述TLB存储表由域tlb_entry和域valid组成,所述域tlb_entry标识中存储有所述TLB存储表对应的VCPU的TLB表项,所述域valid用来存储各个TLB表项对应的效用标识。在这里定义所述TLB存储表1中存储有第一VCPU对应的5个有效TLB表项;所述TLB存储表2中存储有第二VCPU对应的4个有效TLB表项,一个无效TLB表项;所述TLB存储表3中存储有第三VCPU对应的3个有效TLB表项。所述TLB存储表和所述物理TLB中都最多只能存储5个TLB表项。
在启动计算机的时候建立上述数据结构,在建立VCPU的时候为每一个VCPU在内存区建立TLB存储表各TLB存储表的地址被存储在TLB存储目录表中,增加寄存器用于保存TLB存储目录表的地址。
计算机在将要运行第一VCPU时,扩展x86的VCPU进入(VM-entry)指令,为该指令添加将第一VCPU对应的TLB存储表2中保存的5个有效TLB表项全部读入到物理TLB的功能。执行完该指令后,所述TLB存储表1被清空,所述物理TLB中存储的都是第一VCPU对应的TLB表项。这样在运行第一VCPU,在物理TLB中查找与所述第一VCPU的内存指令的逻辑地址匹配的TLB表项时,物理TLB中存储的都是第一VCPU对应的TLB表项,可以降低TLB miss率。
计算机将运行第一VCPU的状态切换到运行第VCPU的状态时,也要扩展x86的VCPU进入指令,为该指令添加将第二VCPU对应的TLB存储表2中保存的4个有效TLB表项全部读入到物理TLB的功能。在读入的过程中,替换下来的物理TLB中原先存储的任意4个第一VCPU对应的TLB表项就被存入第一VCPU对应的TLB存储表1中,以便在下次运行第一VCPU时应用这些TLB表项。在运行第二VCPU,在物理TLB中查找与所述第二VCPU的内存指令的逻辑地址匹配的TLB表项时,物理TLB中存储有TLB存储表2中存储的所有4个第二VCPU对应的TLB表项,可以降低TLB miss率。同时还保存有1个第一VCPU对应的TLB表项,这样物理TLB中未查找到所述第二VCPU的内存指令的逻辑地址对应的TLB表项时,就在页表中查找匹配的页表表项。并用该页表表项替换所述物理TLB中保存的第一VCPU对应的TLB表项,然后将被替换的第一VCPU对应的TLB表项保存入所述第一VCPU对应的TLB存储表1中。
在实际的应用过程中,也可以把x86的native linux(本地系统)的用户态也看做是一个VCPU,并为其建立TLB存储表,当计算机由其他VCPU进入native linux的用户态前,把native linux的用户态对应的TLB存储表中的有效TLB表项一次性读入物理TLB。此时,由于所述计算机的native linux的内核态应用最频繁,故可以将其对应的TLB表项设置为具有第二替换优先级的TLB表项,这样这些TLB表项就不会被替换掉。
本发明实施例提供了一种TLB管理方法,通过以第一VCPU的VPID为索引,查询TLB存储目录表,获得第一VCPU对应的TLB存储表在内存区的地址,进而根据所述第一VCPU对应的TLB存储表在内存区的地址访问所述第一VCPU对应的TLB存储表,将所述第一VCPU对应的TLB存储表中的有效的TLB表项依次读入物理TLB中;与现有技术中的物理TLB被所有VCPU共享相比,本发明中每个VCPU在进行地址转换时,所述物理TLB中都存储有该VCPU对应的TLB存储表中的全部有效的TLB表项,这样就大大降低了TLB的miss率。另外,物理TLB中的TLB表项被替换后,这些被替换的TLB表项不会像现有技术中一样丢失,而是保存在其对应的VPID所对应的TLB存储表中,这样在被替换的TLB表项对应的VCPU运行时,物理TLB仍然可以读入该被替换的TLB表项,进而可以使用该表项进行地址转换,可以进一步地降低TLB miss率。
实施例3、
本发明实施例进一步给出了实现上述方法实施例中各步骤的装置实施例,本发明实施例可应用于各种计算机,如图4所示,所述装置包括:查询获得单元401,表项读入单元402。
查询获得单元401,用于以第一VCPU的VPID为索引,查询TLB存储目录表,获得第一VCPU对应的TLB存储表在内存区的地址。
所述TLB存储目录表的地址存储在CPU中新加入的寄存器内;或,所述TLB存储目录表的地址存储在计算机操作系统内核的一个全局变量内;则,所述查询获得单元401具体用于根据所述TLB存储目录表的地址访问所述TLB存储目录表,然后以第一VCPU的VPID为索引,查询所述TLB存储目录表。
所述TLB存储目录表的表项数等于VCPU数,所述TLB存储目录表存储有每个VCPU的VPID以及每个VPID对应的TLB存储表在内存区的地址。
可选的,所述TLB存储表中能存储的表项数等于所述物理TLB中的能存储表项数。
可选的,所述TLB存储目录表还存储有用来表示每个VPID对应的TLB存储表表项数的标识。
表项读入单元402,用于根据所述查询获得单元401查询获得的所述第一VCPU对应的TLB存储表在内存区的地址,访问所述第一VCPU对应的TLB存储表,将所述第一VCPU对应的TLB存储表中的有效的TLB表项依次读入物理TLB中;其中,每个VCPU对应一个TLB存储表,所述TLB存储表存储有TLB表项以及各个TLB表项对应的效用标识,所述效用标识用来描述所述TLB表项是否有效。
可选的,如图5所示,所述表项读入单元402具体包括:替换子单元4021和保存子单元4022;所述替换子单元4021,用于根据所述第一VCPU对应的TLB存储表在内存区的地址访问所述第一VCPU对应的TLB存储表,然后用所述第一VCPU对应的TLB存储表中的有效的TLB表项依次替换所述物理TLB中当前存储的原有TLB表项;所述保存子单元4022,用于将被替换的所述物理TLB中当前存储的原有TLB表项保存到所述被替换的所述原有TLB表项对应的VPID所对应的TLB存储表中,并将第一VCPU对应的TLB存储表清空。
进一步的,如图5所示,所述装置还包括:查找匹配单元403和替换保存单元404。
所述查找匹配单元403,用于在运行第一VCPU时,在通过所述表项读入单元402读TLB表项的所述物理TLB中查找与所述第一VCPU的内存指令的逻辑地址相匹配的TLB表项,若未在所述物理TLB中查找到与所述第一VCPU的内存指令的的逻辑地址相匹配的TLB表项,则访问页表查找获得与所述第一VCPU的逻辑地址匹配的页表表项。
所述替换保存单元404,用于用所述查找匹配单元403查找到的匹配的页表表项替换所述物理TLB中的一个TLB表项,并将所述被替换的一个TLB表项保存到所述被替换的一个TLB表项对应的VPID所对应的TLB存储表中。
所述替换保存单元404具体用于当所述物理TLB中包含具有第一替换优先级的TLB表项时,用所述匹配的页表表项替换所述物理TLB中任意一个具有第一替换优先级的TLB表项;当所述物理TLB中不包含具有第一替换优先级的TLB表项时,用所述匹配的页表表项替换所述物理TLB中任意一个具有第二替换优先级的TLB表项;并在被替换的一个TLB表项为具有第一替换优先级的TLB表项时,将被替换的一个TLB表项保存到所述被替换的一个TLB表项对应的VPID所对应的TLB存储表中.
其中,在所述物理TLB中,具有第二替换优先级的TLB表项为所述第一VCPU的VPID对应的TLB表项,具有第一替换优先级的TLB表项为除第一VCPU之外的VCPU的VPID对应的TLB表项设置。
进一步的,如图5所示,所述装置还包括:更新单元405;所述更新单元405,用于将所述TLB存储目录表中,被所述替换保存单元404替换的TLB表项对应的VPID所对应的TLB存储表表项数的标识加1,且将被所述替换保存单元404保存在对应的TLB存储表中的所述被替换的TLB表项对应的效用标识设置为有效。
进一步的,如图5所示,所述装置还包括:设置单元406,所述设置单元406用于当页表内的所述第一VCPU的表项被修改,且被修改的所述第一VCPU的表项存储在所述第一VCPU对应的TLB存储表中时,将所述第一VCPU对应的TLB存储表中,所述被修改的所述第一VCPU的表项对应的所述效用标识设置为无效。
在硬件实现上,以上各种单元可以以硬件形式或软件形式内嵌于计算机的处理器中。该处理器可以为中央处理单元(CPU),也可以为单片机。
请参考图6,其为本发明实施例所提供的一种计算机的结构示意图。如图所示,该计算机包括存储器601以及与存储器601连接的处理器602。当然,计算机还可以包括各种接口、接收机、发射机、输入输出装置等通用部件,本发明实施例在此不再任何限制。
其中,存储器601中存储一组程序代码,所述处理器602用于调用存储器601中存储的程序代码,用于执行以下操作:
所述处理器602,用于以第一虚拟处理器VCPU的虚拟处理器标识VPID为索引,查询TLB存储目录表,获得第一VCPU对应的TLB存储表在内存区的地址;所述TLB存储目录表的表项数等于VCPU数,所述TLB存储目录表存储有每个VCPU的VPID以及每个VPID对应的TLB存储表在内存区的地址。
其中,所述TLB存储目录表还存储有用来表示每个VPID对应的TLB存储表表项数的标识。所述TLB存储表中能存储的表项数等于所述物理TLB中的能存储表项数。
所述TLB存储目录表的地址存储在CPU中新加入的寄存器内;或,所述TLB存储目录表的地址存储在计算机操作系统内核的一个全局变量内;此时,所述处理器602具体用于根据所述TLB存储目录表的地址访问所述TLB存储目录表,然后以第一VCPU的VPID为索引,查询所述TLB存储目录表。
所述处理器602,还用于所述第一VCPU对应的TLB存储表在内存区的地址,访问所述第一VCPU对应的TLB存储表,将所述第一VCPU对应的TLB存储表中的有效的TLB表项依次读入物理TLB中;其中,每个VCPU对应一个TLB存储表,所述TLB存储表存储有TLB表项以及各个TLB表项对应的效用标识,所述效用标识用来描述所述TLB表项是否有效。
可选的,所述处理器602具体用于根据所述第一VCPU对应的TLB存储表在内存区的地址访问所述第一VCPU对应的TLB存储表,然后用所述第一VCPU对应的TLB存储表中的有效的TLB表项依次替换所述物理TLB中当前存储的原有TLB表项;并将被替换的所述物理TLB中当前存储的原有TLB表项保存到所述被替换的所述原有TLB表项对应的VPID所对应的TLB存储表中,并将第一VCPU对应的TLB存储表清空。
进一步的,所述处理器602还用于在运行第一VCPU时,在所述TLB表项的所述物理TLB中查找与所述第一VCPU的内存指令的的逻辑地址相匹配的TLB表项,若未在所述物理TLB中查找到与所述第一VCPU的内存指令的的逻辑地址相匹配的TLB表项,则访问页表查找获得与所述第一VCPU的逻辑地址匹配的页表表项;然后用所述匹配的页表表项替换所述物理TLB中的一个TLB表项,并将所述被替换的TLB表项保存到所述被替换的TLB表项对应的VPID所对应的TLB存储表中。
可选的,所述处理器602具体用于当所述物理TLB中包含具有第一替换优先级的TLB表项时,用所述匹配的页表表项替换所述物理TLB中任意一个具有第一替换优先级的TLB表项;当所述物理TLB中不包含具有第一替换优先级的TLB表项时,用所述匹配的页表表项替换所述物理TLB中任意一个具有第二替换优先级的TLB表项;并在被替换的一个TLB表项为具有第一替换优先级的TLB表项时,将被替换的一个TLB表项保存到所述被替换的一个TLB表项对应的VPID所对应的TLB存储表中;其中,在所述物理TLB中,具有第二替换优先级的TLB表项为所述第一VCPU的VPID对应的TLB表项,具有第一替换优先级的TLB表项为除第一VCPU之外的VCPU的VPID对应的TLB表项设置。
进一步的,所述处理器602还用于将所述TLB存储目录表中,被替换的TLB表项对应的VPID所对应的TLB存储表表项数的标识加1,且将保存在对应的TLB存储表中的所述被替换的TLB表项对应的效用标识设置为有效。
所述处理器还用于当页表内的所述第一VCPU的表项被修改,且被修改的所述第一VCPU的表项存储在所述第一VCPU对应的TLB存储表中时,将所述第一VCPU对应的TLB存储表中,所述被修改的所述第一VCPU的表项对应的所述效用标识设置为无效。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (18)

1.一种旁路转换缓冲管理方法,其特征在于,包括:
以第一VCPU(virtual CPU,虚拟处理器)的虚拟处理器标识VPID(Virtual-Processor Identifier,虚拟处理器标识)为索引,查询TLB(Translation lookaside buffer,旁路转换缓冲)存储目录表,获得第一VCPU对应的TLB存储表在内存区的地址;所述TLB存储目录表的表项数等于VCPU数,所述TLB存储目录表存储有每个VCPU的VPID以及每个VPID对应的TLB存储表在内存区的地址;
根据所述第一VCPU对应的TLB存储表在内存区的地址访问所述第一VCPU对应的TLB存储表,将所述第一VCPU对应的TLB存储表中的有效的TLB表项读入物理TLB中;其中,每个VCPU对应一个TLB存储表,所述TLB存储表存储有TLB表项以及各个TLB表项对应的效用标识,所述效用标识用来描述所述TLB表项是否有效。
2.根据权利要求1所述的方法,其特征在于,所述TLB存储目录表的地址存储在处理器中新加入的寄存器内;或,所述TLB存储目录表的地址存储在计算机操作系统内核的一个全局变量内;
则,所述以第一VCPU的VPID为索引,查询TLB存储目录表,包括:
根据所述TLB存储目录表的地址访问所述TLB存储目录表,并以第一VCPU的VPID为索引,查询所述TLB存储目录表。
3.根据权利要求1所述的方法,其特征在于,所述TLB存储目录表还存储有用来表示每个VPID对应的TLB存储表表项数的标识。
4.根据权利要求1所述的方法,其特征在于,所述将所述第一VCPU对应的TLB存储表中的有效的TLB表项依次读入物理TLB中,包括:
用所述第一VCPU对应的TLB存储表中的有效的TLB表项依次替换所述物理TLB中当前存储的原有TLB表项;
将被替换的所述物理TLB中当前存储的原有TLB表项保存到所述被替换的所述原有TLB表项对应的VPID所对应的TLB存储表中,并将第一VCPU对应的TLB存储表清空。
5.根据权利要求1-4任一项所述的方法,其特征在于,在将所述第一VCPU对应的TLB存储表中的有效的TLB表项依次读入物理TLB中后,所述方法还包括:
在运行第一VCPU时,若未在所述物理TLB中查找到与所述第一VCPU的内存指令的逻辑地址相匹配的TLB表项,则访问页表查找获得与所述第一VCPU的逻辑地址匹配的页表表项;
用所述匹配的页表表项替换所述物理TLB中的一个TLB表项,并将被替换的一个TLB表项保存到所述被替换的一个TLB表项对应的VPID所对应的TLB存储表中。
6.根据权利要求5所述的方法,其特征在于,所述用所述匹配的页表表项替换所述物理TLB中的一个TLB表项,并将被替换的一个TLB表项保存到所述被替换的一个TLB表项对应的VPID所对应的TLB存储表中,包括:
当所述物理TLB中包含具有第一替换优先级的TLB表项时,用所述匹配的页表表项替换所述物理TLB中任意一个具有第一替换优先级的TLB表项;当所述物理TLB中不包含具有第一替换优先级的TLB表项时,用所述匹配的页表表项替换所述物理TLB中任意一个具有第二替换优先级的TLB表项;
在被替换的一个TLB表项为具有第一替换优先级的TLB表项时,将被替换的一个TLB表项保存到所述被替换的一个TLB表项对应的VPID所对应的TLB存储表中;
其中,在所述物理TLB中,具有第二替换优先级的TLB表项为所述第一VCPU的VPID对应的TLB表项,具有第一替换优先级的TLB表项为除第一VCPU之外的VCPU的VPID对应的TLB表项。
7.根据权利要求6所述的方法,其特征在于,在所述用所述匹配的页表表项替换所述物理TLB中任意一个具有第一替换优先级的TLB表项,并将所述被替换的TLB表项保存到所述被替换的TLB表项对应的VPID所对应的TLB存储表中之后,所述方法还包括:
将所述TLB存储目录表中,所述被替换的TLB表项对应的VPID所对应的TLB存储表表项数的标识加1,且将保存在所述被替换的TLB表项对应的VPID所对应的TLB存储表中的所述被替换的TLB表项对应的效用标识设置为有效。
8.根据权利要求1所述的方法,其特征在于,所述TLB存储表中能存储的表项数等于所述物理TLB中的能存储的表项数。
9.根据权利要求1所述的方法,其特征在于,当页表内的所述第一VCPU的表项被修改,且被修改的所述第一VCPU的表项存储在所述第一VCPU对应的TLB存储表中时,所述方法进一步包括:
将所述第一VCPU对应的TLB存储表中,所述被修改的所述第一VCPU的表项对应的所述效用标识设置为无效。
10.一种旁路转换缓冲管理装置,其特征在于,包括:
查询获得单元,以第一VCPU(virtual CPU,虚拟处理器)的VPID(Virtual-Processor Identifier,虚拟处理器标识)为索引,查询TLB(Translation lookaside buffer,旁路转换缓冲)存储目录表,获得第一VCPU对应的TLB存储表在内存区的地址;所述TLB存储目录表的表项数等于VCPU数,所述TLB存储目录表存储有每个VCPU的VPID以及每个VPID对应的TLB存储表在内存区的地址;
表项读入单元,用于根据所述查询获得单元查询获得的所述第一VCPU对应的TLB存储表在内存区的地址,访问所述第一VCPU对应的TLB存储表,将所述第一VCPU对应的TLB存储表中的有效的TLB表项读入物理TLB中;其中,每个VCPU对应一个TLB存储表,所述TLB存储表存储有TLB表项以及各个TLB表项对应的效用标识,所述效用标识用来描述所述TLB表项是否有效。
11.根据权利要求10所述的装置,其特征在于,所述TLB存储目录表的地址存储在处理器中新加入的寄存器内;或,所述TLB存储目录表的地址存储在计算机操作系统内核的一个全局变量内;
则,所述查询获得单元具体用于根据所述TLB存储目录表的地址访问所述TLB存储目录表,并以第一VCPU的VPID为索引,查询所述TLB存储目录表。
12.根据权利要求10所述的装置,其特征在于,所述TLB存储目录表还存储有用来表示每个VPID对应的TLB存储表表项数的标识。
13.根据权利要求10所述的装置,其特征在于,所述表项读入单元具体包括:替换子单元和保存子单元;
所述替换子单元,用于根据所述第一VCPU对应的TLB存储表在内存区的地址访问所述第一VCPU对应的TLB存储表,然后用所述第一VCPU对应的TLB存储表中的有效的TLB表项依次替换所述物理TLB中当前存储的原有TLB表项;
所述保存子单元,用于将被替换的所述物理TLB中当前存储的原有TLB表项保存到所述被替换的所述原有TLB表项对应的VPID所对应的TLB存储表中,并将第一VCPU对应的TLB存储表清空。
14.根据权利要求10-13任一项所述的装置,其特征在于,所述装置还包括:查找匹配单元和替换保存单元;
所述查找匹配单元,用于在运行第一VCPU时,在通过所述表项读入单元读入TLB表项的所述物理TLB中查找与所述第一VCPU的内存指令的的逻辑地址相匹配的TLB表项,若未在所述物理TLB中查找到与所述第一VCPU的内存指令的的逻辑地址相匹配的TLB表项,则访问页表查找获得与所述第一VCPU的逻辑地址匹配的页表表项;
所述替换保存单元,用于用所述查找匹配单元查找到的匹配的页表表项替换所述物理TLB中的一个TLB表项,并将所述被替换的TLB表项保存到所述被替换的TLB表项对应的VPID所对应的TLB存储表中。
15.根据权利要求14所述的装置,其特征在于,
所述替换保存单元具体用于当所述物理TLB中包含具有第一替换优先级的TLB表项时,用所述匹配的页表表项替换所述物理TLB中任意一个具有第一替换优先级的TLB表项;当所述物理TLB中不包含具有第一替换优先级的TLB表项时,用所述匹配的页表表项替换所述物理TLB中任意一个具有第二替换优先级的TLB表项;并在被替换的一个TLB表项为具有第一替换优先级的TLB表项时,将被替换的一个TLB表项保存到所述被替换的一个TLB表项对应的VPID所对应的TLB存储表中;
其中,在所述物理TLB中,具有第二替换优先级的TLB表项为所述第一VCPU的VPID对应的TLB表项,具有第一替换优先级的TLB表项为除第一VCPU之外的VCPU的VPID对应的TLB表项设置。
16.根据权利要求15所述的装置,其特征在于,所述装置还包括:更新单元;
所述更新单元,用于将所述TLB存储目录表中,被所述替换保存单元替换的TLB表项对应的VPID所对应的TLB存储表表项数的标识加1,且将被所述替换保存单元保存在对应的TLB存储表中的所述被替换的TLB表项对应的效用标识设置为有效。
17.根据权利要求10所述的装置,其特征在于,所述TLB存储表中能存储的表项数等于所述物理TLB中的能存储表项数。
18.根据权利要求10所述的装置,其特征在于,所述装置还包括:设置单元;
所述设置单元,用于当页表内的所述第一VCPU的表项被修改,且被修改的所述第一VCPU的表项存储在所述第一VCPU对应的TLB存储表中时,将所述第一VCPU对应的TLB存储表中,所述被修改的所述第一VCPU的表项对应的所述效用标识设置为无效。
CN201310246392.5A 2013-06-20 2013-06-20 一种tlb管理方法及装置 Active CN104239237B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201310246392.5A CN104239237B (zh) 2013-06-20 2013-06-20 一种tlb管理方法及装置
PCT/CN2014/080103 WO2014201998A1 (zh) 2013-06-20 2014-06-17 一种tlb管理方法及装置
US14/975,597 US20160103768A1 (en) 2013-06-20 2015-12-18 TLB Management Method and Computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310246392.5A CN104239237B (zh) 2013-06-20 2013-06-20 一种tlb管理方法及装置

Publications (2)

Publication Number Publication Date
CN104239237A true CN104239237A (zh) 2014-12-24
CN104239237B CN104239237B (zh) 2017-07-14

Family

ID=52103962

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310246392.5A Active CN104239237B (zh) 2013-06-20 2013-06-20 一种tlb管理方法及装置

Country Status (3)

Country Link
US (1) US20160103768A1 (zh)
CN (1) CN104239237B (zh)
WO (1) WO2014201998A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017070861A1 (zh) * 2015-10-28 2017-05-04 华为技术有限公司 一种中断响应方法、装置及基站
CN107479945A (zh) * 2017-08-15 2017-12-15 爱普(福建)科技有限公司 一种虚拟机资源调度方法及装置
CN107506313A (zh) * 2017-08-04 2017-12-22 致象尔微电子科技(上海)有限公司 一种管理和查找内存页框属性的方法
CN112965921A (zh) * 2021-02-07 2021-06-15 中国人民解放军军事科学院国防科技创新研究院 一种多任务gpu中tlb管理方法及系统
CN114676073A (zh) * 2022-05-18 2022-06-28 飞腾信息技术有限公司 一种tlb表项管理的方法、装置及存储介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018126546A1 (de) * 2017-12-22 2019-06-27 Odass Gbr Verfahren zur Reduzierung der Rechenzeit einer Datenverarbeitungseinrichtung
US11243891B2 (en) * 2018-09-25 2022-02-08 Ati Technologies Ulc External memory based translation lookaside buffer
US11507519B2 (en) 2019-01-24 2022-11-22 Advanced Micro Devices, Inc. Data compression and encryption based on translation lookaside buffer evictions
US11106600B2 (en) * 2019-01-24 2021-08-31 Advanced Micro Devices, Inc. Cache replacement based on translation lookaside buffer evictions

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090070545A1 (en) * 2007-09-11 2009-03-12 Brian Stecher Processing system implementing variable page size memory organization using a multiple page per entry translation lookaside buffer
CN102662860A (zh) * 2012-03-15 2012-09-12 天津国芯科技有限公司 用于进程切换的旁路转换缓冲器(tlb)及在其中地址匹配的方法
CN102725741A (zh) * 2011-12-31 2012-10-10 华为技术有限公司 高速缓冲存储器控制方法、装置和系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7089396B2 (en) * 2002-10-10 2006-08-08 International Business Machines Corporation Method and profiling cache for management of virtual memory
US7069413B1 (en) * 2003-01-29 2006-06-27 Vmware, Inc. Method and system for performing virtual to physical address translations in a virtual machine monitor
US7093100B2 (en) * 2003-11-14 2006-08-15 International Business Machines Corporation Translation look aside buffer (TLB) with increased translational capacity for multi-threaded computer processes
US7562179B2 (en) * 2004-07-30 2009-07-14 Intel Corporation Maintaining processor resources during architectural events
US20070094476A1 (en) * 2005-10-20 2007-04-26 Augsburg Victor R Updating multiple levels of translation lookaside buffers (TLBs) field
CN101477495B (zh) * 2008-10-28 2011-03-16 北京航空航天大学 分布式内存虚拟化技术的实现方法
CN102880426B (zh) * 2012-08-01 2015-05-27 龙芯中科技术有限公司 一种系统虚拟机减少tlb刷新的方法及系统虚拟机

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090070545A1 (en) * 2007-09-11 2009-03-12 Brian Stecher Processing system implementing variable page size memory organization using a multiple page per entry translation lookaside buffer
US20110125983A1 (en) * 2007-09-11 2011-05-26 Qnx Software Systems Gmbh & Co. Kg Processing System Implementing Variable Page Size Memory Organization Using a Multiple Page Per Entry Translation Lookaside Buffer
CN102725741A (zh) * 2011-12-31 2012-10-10 华为技术有限公司 高速缓冲存储器控制方法、装置和系统
CN102662860A (zh) * 2012-03-15 2012-09-12 天津国芯科技有限公司 用于进程切换的旁路转换缓冲器(tlb)及在其中地址匹配的方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017070861A1 (zh) * 2015-10-28 2017-05-04 华为技术有限公司 一种中断响应方法、装置及基站
CN107506313A (zh) * 2017-08-04 2017-12-22 致象尔微电子科技(上海)有限公司 一种管理和查找内存页框属性的方法
CN107479945A (zh) * 2017-08-15 2017-12-15 爱普(福建)科技有限公司 一种虚拟机资源调度方法及装置
CN112965921A (zh) * 2021-02-07 2021-06-15 中国人民解放军军事科学院国防科技创新研究院 一种多任务gpu中tlb管理方法及系统
CN112965921B (zh) * 2021-02-07 2024-04-02 中国人民解放军军事科学院国防科技创新研究院 一种多任务gpu中tlb管理方法及系统
CN114676073A (zh) * 2022-05-18 2022-06-28 飞腾信息技术有限公司 一种tlb表项管理的方法、装置及存储介质
CN114676073B (zh) * 2022-05-18 2022-09-23 飞腾信息技术有限公司 一种tlb表项管理的方法、装置及存储介质

Also Published As

Publication number Publication date
CN104239237B (zh) 2017-07-14
WO2014201998A1 (zh) 2014-12-24
US20160103768A1 (en) 2016-04-14

Similar Documents

Publication Publication Date Title
CN104239237A (zh) 一种tlb管理方法及装置
CN108804350B (zh) 一种内存访问方法及计算机系统
US8190827B2 (en) Memory sharing among computer programs
US9639476B2 (en) Merged TLB structure for multiple sequential address translations
US9208103B2 (en) Translation bypass in multi-stage address translation
US20170206171A1 (en) Collapsed Address Translation With Multiple Page Sizes
US7917725B2 (en) Processing system implementing variable page size memory organization using a multiple page per entry translation lookaside buffer
US8046521B2 (en) Computer virtualization apparatus and program and method therefor
US7783859B2 (en) Processing system implementing variable page size memory organization
US8190652B2 (en) Achieving coherence between dynamically optimized code and original code
US20140006681A1 (en) Memory management in a virtualization environment
US11403222B2 (en) Cache structure using a logical directory
US10810134B2 (en) Sharing virtual and real translations in a virtual cache
US11775445B2 (en) Translation support for a virtual cache
WO2015043376A1 (zh) 一种页的访问方法和页的访问装置、服务器
KR100895715B1 (ko) 메모리 관리 유닛, 메모리 관리 유닛을 포함하는 시스템 및어드레스 변환 방법
CN114741338B (zh) 旁路转换缓存器、数据更新方法、内存管理单元及芯片
US11474953B2 (en) Configuration cache for the ARM SMMUv3

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