WO2018036486A1 - 页表缓存的访问方法、页表缓存、处理器芯片和存储单元 - Google Patents

页表缓存的访问方法、页表缓存、处理器芯片和存储单元 Download PDF

Info

Publication number
WO2018036486A1
WO2018036486A1 PCT/CN2017/098494 CN2017098494W WO2018036486A1 WO 2018036486 A1 WO2018036486 A1 WO 2018036486A1 CN 2017098494 W CN2017098494 W CN 2017098494W WO 2018036486 A1 WO2018036486 A1 WO 2018036486A1
Authority
WO
WIPO (PCT)
Prior art keywords
page
virtual
entry
physical
virtual page
Prior art date
Application number
PCT/CN2017/098494
Other languages
English (en)
French (fr)
Inventor
蔡卫光
郑礼炳
张惠敏
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2018036486A1 publication Critical patent/WO2018036486A1/zh

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
    • 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/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/109Address translation for multiple virtual address spaces, e.g. segmentation

Definitions

  • the present invention relates to the field of information technology, and more particularly to an access method of a page table cache, a page table cache, a processor chip, and a storage unit.
  • the addresses in the program are virtual addresses.
  • the operating system loads a program into memory, the program is allocated an available physical memory address space.
  • the operating system maps the virtual address of the program to a specific physical address based on the actual physical address. This mapping is in pages, and a page is usually 4KB.
  • the operating system performs memory management, it divides the physical address space into consecutive pages.
  • the program's own virtual address space is also divided into consecutive pages. Mapping is the mapping of a virtual page to a physical page.
  • the page size (which may also be referred to as size) is 4 KB, in which case 12 bits are used to represent the offset within the 4 KB page.
  • the lower 12 bits of the address remain unchanged, ie the lower 12 bits of the virtual address and the lower 12 bits of the physical address are identical. That is to say, in the mapping process from the virtual address to the physical address, the offset does not change, and only the upper bits of the virtual address need to be replaced with the upper bits of the physical address.
  • the high-order part of the address is called the virtual page number (VPN) in the virtual address, the physical frame number (PFN) in the physical address, and the virtual page corresponding to the virtual address of the VPN.
  • the PFN identifies the physical page corresponding to the physical address.
  • the lower part of the address is called the page offset (Offset) part.
  • the Offset portion of the address remains unchanged, that is, the mapping process is the process of finding the physical frame number based on the virtual page number.
  • the CPU In the address mapping, the CPU first accesses the page table cache, or the address bypass buffer, and the English name is (Translation Lookaside Buffer, TLB).
  • TLB stores a mapping relationship between a part of the virtual page number and the physical frame number. If a TLB miss occurs (TLB Miss), the page table in memory is accessed, and the complete mapping from the virtual address to the physical address is stored in the page table.
  • TLB Miss When a TLB miss occurs (TLB Miss), the page table in memory is accessed, and the complete mapping from the virtual address to the physical address is stored in the page table.
  • the capacity of the TLB is very limited, which is much smaller than the size of the page table. Therefore, TLB Miss often occurs, and TLB Miss increases the running time of the program. Therefore, improving the effective capacity of the TLB and reducing the probability of TLB Miss has become a technical problem to be solved.
  • the embodiment of the invention provides a page table cache access method, a page table cache, a processor chip and a storage unit, which can improve the effective capacity of the page table cache.
  • the first aspect provides a method for accessing a page table cache, where the table table cache stores an entry set, where the entry in the set includes a large virtual page number field, a large physical frame number field, and a valid indication field. And an index field, wherein the large virtual page number in the large virtual page number field identifies a large virtual page, the large virtual page includes a plurality of virtual pages, and the large physical frame number in the large physical frame number field identifies a large physical page,
  • the large physical page includes multiple physical pages
  • the valid indication field is used to indicate whether each virtual page of the plurality of virtual pages is mapped by the entry, and the index field is used to indicate each virtual page when the virtual page is mapped by the entry. The position of the corresponding physical page in the large physical page identified by the large physical frame number;
  • the method includes:
  • the first physical frame number is sent to the processor.
  • the technical solution of the embodiment of the present invention can record multiple mapping relationships by using fewer entries, thereby improving the effective capacity of the TLB and further reducing the probability of TLB Miss.
  • the method further includes:
  • the first page table cache miss information is sent to the processor.
  • the method further includes:
  • the second physical page corresponding to the second virtual page is not in the second largest physical page of the second large physical frame number, creating a third in the set of the entry Entry, where The large virtual page number in the large virtual page number field of the third entry is the second largest virtual page number, and the large physical frame number in the large physical frame number field of the third entry is to identify the second physical page.
  • the large physical frame number of the large physical page where the value of the bit corresponding to the third location in the valid indication field in the third entry indicates that the second virtual page is mapped by the third entry, the third table
  • the value of the element corresponding to the third location in the index field in the entry indicates the location of the second physical page in the large physical page in which it resides.
  • the method further includes:
  • a page table cache including:
  • FIG. 3 is a schematic diagram of the structure of an entry in a TLB.
  • FIG. 13 is a schematic diagram of a new entry in another embodiment of the present invention.
  • the processor needs to search the PFN corresponding to the VPN from the page table, and then store the VPN and PFN information (that is, the mapping relationship) into the TLB (usually overwriting an existing table). Item), the process is called Page Table Walk. This way, the next time you encounter the VPN, TLB Miss will not happen.
  • the large virtual page number in the large virtual page number field 510 identifies a large virtual page that includes multiple virtual pages.
  • the large virtual page in FIG. 5 includes four virtual page examples.
  • VPN0 ⁇ VPN3 are the same, that is, the same as Large_VPN0.
  • VPN0 to VPN3 can be expressed as follows.
  • VPN0 is ⁇ Large_VPN0, 2'b00 ⁇ , that is, Large_VPN0 ⁇ 4+0;
  • VPN1 is ⁇ Large_VPN0, 2'b01 ⁇ , that is, Large_VPN0 ⁇ 4+1;
  • VPN2 is ⁇ Large_VPN0, 2'b10 ⁇ , that is, Large_VPN0 ⁇ 4+2;
  • VPN3 is ⁇ Large_VPN0, 2'b11 ⁇ , that is, Large_VPN0x4+3.
  • each bit indicates whether the mapping relationship of the corresponding page (VPN0 to VPN3) is valid, that is, whether it is mapped by the TLB entry, as shown below.
  • VldVec[0] indicates whether VPN0 is mapped by the TLB entry. For example, if the value is 1, it indicates that IdxVec[1:0] is available. If the value is 0, it indicates that IdxVec[1:0] is unavailable, as follows;
  • VldVec[2] indicates whether VPN2 is mapped by the TLB entry, that is, whether IdxVec[5:4] is available;
  • VldVec[3] indicates whether VPN3 is mapped by the TLB entry, that is, whether IdxVec[7:6] is available.
  • IdxVec[1:0] indicates which PFN is mapped between PFN0 and PFN3, and optionally, when VldVec[0] is 1, the field is unavailable. When VldVec[0] is 0, the field is unavailable. VPN0 is not mapped by the TLB entry. The same applies.
  • a table item set is stored in the page table cache, and the table item in the table item set is the entry of the foregoing embodiment of the present invention.
  • the table item in the table item set is the entry of the foregoing embodiment of the present invention.
  • the first request may carry the first virtual page number corresponding to the first virtual address, that is, request the PFN by using the VPN.
  • VPN virAddr/pageSize (1)
  • VPN represents the virtual page number
  • virAddr represents the virtual address
  • pageSize represents the page size. For example, when the page size is 4KB, the address is n, the Offset is virAddr[11:0], and the VPN is virAddr[n:12]. .
  • the first request may also carry the first virtual address, which is not limited by the present invention.
  • Large_VPN represents a large virtual page number
  • the first position can be determined according to the following formula.
  • This provides the first large virtual page number and the first virtual page is the first virtual page within the first large virtual page.
  • the first large virtual page number can be obtained as Large_VPN0, and pageIdx is 0.
  • the page table cache searches the table entries in the table item set according to the first large virtual page number, and the first large virtual page number and the large virtual page number in the large virtual page number field of each entry The matching is performed, and the matching can be obtained.
  • the large virtual page number in the large virtual page number field is the first entry of the first large virtual page number.
  • the first entry can be obtained as the entry shown in FIG. 5, and the large virtual page number in the large virtual page number field of the entry is Large_VPN0, and The large physical frame number in the large physical frame number field of the entry is Large_PFN0.
  • the bit corresponding to the first location in the valid indication field in the entry is VldVec[pageIdx], the pageIdx corresponding to VPN0 is 0, that is, the first location is location 0, and the location in the valid indication field VldVec field is The value of bit VldVec[0] of 0 is 1, so that it can be determined that the first virtual page is mapped by the entry.
  • an element corresponding to the first location in the index field in the first entry is IdxVec[pageIdx], and when pageIdx is 0, that is, when the first location is location 0, the value of IdxVec[0] is 3. . Therefore, the corresponding first physical page is the physical page 3 in the first large physical page identified by the Large_PFN0.
  • the first physical frame number may be determined.
  • the first physical page is the physical page 3 in the first large physical page identified by the Large_PFN0, that is, the second location is the location 3, indicating that the mapping is to the PFN3, that is, the first physical frame number is PFN3.
  • the physical frame number can be determined according to the following formula.
  • the physical frame number PFN corresponding to virAddr can be divided into two parts, one part is the base address, and its value is Large_PFN*4; the other part is the offset in the large physical page, that is, offset to 4 Which physical page of the physical pages is IdxVec[pageIdx].
  • the page table cache sends the obtained first physical frame number corresponding to the first virtual address to the processor.
  • the physical address corresponding to the first virtual address may be further obtained by the first physical frame number and the Offset portion of the first virtual address.
  • mapping relationship of existing virtual addresses in the page table cache The following is not virtual in the page table cache. The case of the mapping relationship of the intended address is described.
  • FIG. 8 is a schematic flowchart of a method for accessing a page table cache according to another embodiment of the present invention. This method can be performed by the page table cache.
  • the second entry can be obtained as the entry shown in FIG. 5, and the large virtual page number in the large virtual page number field of the entry is Large_VPN0, and The large physical frame number in the large physical frame number field of the entry is Large_PFN0.
  • the bit corresponding to the third location in the valid indication field in the entry is VldVec[pageIdx]
  • the pageIdx corresponding to VPN3 is 3 that is, the third location is location 3
  • the location in the valid indication field VldVec field is The value of the bit VldVec[3] of 3 is 0, so that it can be determined that the second virtual page is not mapped by the entry, that is, TLB Miss.
  • step 840 is for all of the second entries. That is, if the entries in the page table cache are matched to multiple entries with a large virtual page number of Large_VPN0, if the mapping relationship is not hit in the previous entry, the mapping relationship is continued for the next entry. If the mapping is not matched in the multiple entries, it is TLB Miss; as long as the mapping is hit in one entry, it is TLB Hit, and the search is no longer continued.
  • the page table cache sends missing information to the processor due to a missed mapping.
  • the processor then obtains the mapping relationship of the second virtual address from the page table.
  • mapping relationship of the second virtual address may also be sent to the page table cache, so that the page table cache adds the mapping relationship.
  • the second physical page corresponding to the second virtual page is determined to be in the second largest physical page of the second large physical frame number, update the second entry according to the mapping relationship of the second virtual address.
  • the value of the bit corresponding to the third location in the valid indication field in the second entry indicates that the second virtual page is mapped by the second entry, and the index field in the second entry is related to the first entry.
  • the value of the element corresponding to the three locations indicates the location of the second physical page in the second largest physical page.
  • the mapping is added to the second entry. relationship. That is, the value of the bit corresponding to the third location in the valid indication field in the second entry is updated to indicate that the second virtual page is mapped by the second entry, and the index field in the second entry is The value of the element corresponding to the third position is updated to the indication The location of the second physical page in the second largest physical page.
  • VPN3 is mapped to PFN0
  • the corresponding physical page is in the first large physical page identified by Large_PFN0, and the position is 0, so the value of VldVec[3] in the valid indication field is updated to 1, and update the value of IdxVec[3] in the index field to 0.
  • a third entry where a large virtual page number in the large virtual page number field of the third entry is the second largest virtual page number, and a large physical frame number in the large physical frame number field of the third entry.
  • a value of a bit corresponding to the third location in the valid indication field in the third entry indicates that the second virtual page is used by the third table
  • the item mapping, the value of the element corresponding to the third location in the index field in the third entry indicates the location of the second physical page in the large physical page.
  • the third entry is newly created, and the mapping relationship is added to the third entry. That is, the large virtual page number in the third entry is the second largest virtual page number, and the large physical frame number in the third entry is a large physical frame number that identifies the new large physical page, the third The value of the bit corresponding to the third location in the valid indication field in the entry indicates that the second virtual page is mapped by the third entry, and the element corresponding to the third location in the index field in the third entry The value indicates the location of the second physical page in the new large physical page.
  • the VPN3 is mapped to the PFN6, the corresponding physical page is in the new large physical page identified by the Large_PFN1, and the location is 2, so the new entry is created, and the large virtual page number of the new entry is Large_VPN0, the large physical frame number is Large_PFN1, the value of VldVec[3] in the valid indication field is 1, and the value of IdxVec[3] in the index field is 2.
  • FIG. 11 is a schematic flowchart of a method for accessing a page table cache according to still another embodiment of the present invention. This method can be performed by the page table cache.
  • the third virtual page number of the third virtual page is VPN4
  • the third largest virtual page number can be obtained as Large_VPN1
  • the fourth position pageIdx is 0.
  • the page table cache searches for the entry in the set of the entry according to the third largest virtual page number, and does not find the entry whose large virtual page number is the third largest virtual page number, that is, the page table cache does not have The third largest virtual page number matches the entry, so TLB Miss occurs.
  • the page table cache sends missing information to the processor due to a missed mapping.
  • the processor then gets the from the page table The mapping relationship of the third virtual address.
  • a large virtual page number in the large virtual page number field of the fourth entry is the third largest virtual page.
  • the large physical frame number in the large physical frame number field of the fourth entry is a large physical frame number of the third largest physical page where the third physical page corresponding to the third virtual page is located, and the third entry is The value of the bit corresponding to the fourth location in the valid indication field indicates that the third virtual page is mapped by the fourth entry, and the value of the element corresponding to the fourth location in the index field in the fourth entry Indicates the location of the third physical page in the third largest physical page.
  • the technical solution of the embodiment of the present invention can record multiple mapping relationships by using fewer entries, thereby improving the effective capacity of the TLB and further reducing the probability of TLB Miss.
  • the storage unit 1410 is configured to store a set of entries, where the entries in the set of entries include a large virtual page number field, a large physical frame number field, a valid indication field, and an index field, wherein the large virtual page number field is a large virtual
  • the page number identifies a large virtual page
  • the large virtual page includes a plurality of virtual pages
  • the large physical frame number in the large physical frame number field identifies a large physical page
  • the large physical page includes a plurality of physical pages
  • the valid indication field is used for Instructing each of the plurality of virtual pages to be mapped by the entry
  • the index field is configured to indicate, when the virtual page is mapped by the entry, the physical page corresponding to each virtual page in the large physics The location in the large physical page identified by the frame number.
  • the management unit 1420 is configured to:
  • the first table The large physical frame number in the large physical frame number field of the item is the first large physical frame number
  • a fourth entry in the set of entries where a large virtual page number in the large virtual page number field of the fourth entry is the third largest virtual page number,
  • the large physical frame number in the large physical frame number field of the fourth entry is a large physical frame number that identifies the third largest physical page where the third physical page corresponding to the third virtual page is located, and the third physical record
  • the value of the bit corresponding to the fourth location in the valid indication field indicates that the third virtual page is mapped by the fourth entry, and the value of the element corresponding to the fourth location in the index field in the fourth entry indicates the The location of the third physical page in the third largest physical page.
  • the large virtual page includes 2 N virtual pages
  • the large physical page includes 2 N physical pages
  • the valid indication field includes 2 N bits
  • the index field includes 2 N An element, where each element includes N bits, and N is a positive integer.
  • the entries stored in the storage unit 1410 in the page table cache 1400 of the embodiment of the present invention may be the entries in the foregoing embodiments of the present invention.
  • the management unit 1420 may perform the processes in the foregoing method embodiments, and the corresponding specific description may be referred to. The foregoing embodiments are not described herein for brevity.
  • the embodiment of the invention further provides a processor chip.
  • the processor chip 1500 may include a processor 1510 and the page table cache 1400 in the foregoing embodiment of the present invention.
  • FIG. 15 is merely an example and should not be construed as limiting the invention.
  • the disclosed systems, devices, and methods may be implemented in other manners.
  • the device embodiments described above are merely illustrative.
  • the division of the unit is only a logical function division, and the actual implementation may have another division manner, such as multiple units.
  • components may be combined or integrated into another system, or some features may be omitted or not performed.
  • the mutual coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection through some interface, device or unit, or an electrical, mechanical or other form of connection.
  • the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the embodiments of the present invention.
  • each functional unit in each embodiment of the present invention may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
  • the above integrated unit can be implemented in the form of hardware or in the form of a software functional unit.
  • the integrated unit if implemented in the form of a software functional unit and sold or used as a standalone product, may be stored in a computer readable storage medium.
  • the technical solution of the present invention contributes in essence or to the prior art, or all or part of the technical solution may be embodied in the form of a software product stored in a storage medium.
  • a number of instructions are included to cause a computer device (which may be a personal computer, server, or network device, etc.) to perform all or part of the steps of the methods described in various embodiments of the present invention.
  • the foregoing storage medium includes: a U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk, and the like. .

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

一种页表缓存的访问方法、页表缓存、处理器芯片和存储单元。该方法包括:接收处理器发送的第一请求,该第一请求用于请求第一虚拟地址对应的第一物理帧号(710);确定第一虚拟地址对应的第一大虚拟页号,以及第一虚拟地址对应的第一虚拟页面在第一大虚拟页面中的第一位置(720);确定表项集合中存在与第一大虚拟页号对应的第一表项(730);根据第一表项中的有效指示字段中与第一位置对应的比特的值,确定第一虚拟页面被第一表项映射(740);根据第一表项中的索引字段中与第一位置对应的元素的值,确定第一虚拟页面对应的第一物理页面在第一大物理帧号标识的第一大物理页面中的第二位置(750);根据第一大物理帧号和第二位置,确定第一物理帧号(760);向处理器发送第一物理帧号(770)。本方法能够提升页表缓存的有效容量。

Description

页表缓存的访问方法、页表缓存、处理器芯片和存储单元 技术领域
本发明涉及信息技术领域,并且更具体地,涉及一种页表缓存的访问方法、页表缓存、处理器芯片和存储单元。
背景技术
在中央处理器(Central Processing Unit,CPU)执行程序时,程序中的地址均为虚拟地址。当操作***将一个程序载入内存时,会为该程序分配可用的物理内存地址空间。此时,操作***会根据实际的物理地址,将程序的虚拟地址映射到具体的物理地址。这种映射,以页面(Page)为单位,一个页面通常为4KB。操作***在进行内存管理时,会将物理地址空间划分成连续的页面。同样,程序自己的虚拟地址空间也会被划分成连续的页面。映射,是将一个虚拟页面映射到一个物理页面。以页面大小(也可以称为尺寸)为4KB为例,在这种情况下,12个比特用来表示在4KB页面内的偏移量。在映射过程中,地址的低12位比特保持不变,即虚拟地址的低12位比特和物理地址的低12位比特是相同的。也就是说,在虚拟地址到物理地址的映射过程中,偏移量是不会改变的,只需要将虚拟地址的高位比特替换成物理地址的高位比特即可。
地址的高位部分,在虚拟地址中称之为虚拟页号(Virtual Page Number,VPN),在物理地址中称之为物理帧号(Physical Frame Number,PFN),VPN标识虚拟地址对应的虚拟页面,PFN标识物理地址对应的物理页面。地址的低位部分,称之为页偏移(Offset)部分。在映射过程中,地址的Offset部分保持不变,即映射过程是根据虚拟页号找到物理帧号的过程。
在地址映射时,CPU先访问页表缓存,或称为转址旁路缓存,英文名称为(Translation Lookaside Buffer,TLB),TLB中存储有一部分虚拟页号到物理帧号之间的映射关系,若发生TLB缺失(TLB Miss),则再访问内存中的页表,该页表中存储有完整的从虚拟地址到物理地址的映射关系。TLB的容量是非常有限的,要远远小于页表的大小,因此经常会发生TLB Miss,TLB Miss会增加程序运行时间。因此,提升TLB的有效容量,减少TLB Miss的几率,成为一个亟待解决的技术问题。
发明内容
本发明实施例提供了一种页表缓存的访问方法、页表缓存、处理器芯片和存储单元,能够提升页表缓存的有效容量。
第一方面,提供了一种页表缓存的访问方法,该页表缓存中存储有表项集合,该表项集合中的表项包括大虚拟页号字段,大物理帧号字段,有效指示字段和索引字段,其中,该大虚拟页号字段中的大虚拟页号标识大虚拟页面,该大虚拟页面包括多个虚拟页面,该大物理帧号字段中的大物理帧号标识大物理页面,该大物理页面包括多个物理页 面,该有效指示字段用于指示该多个虚拟页面中的每个虚拟页面是否被该表项映射,该索引字段用于在该每个虚拟页面被该表项映射时指示该每个虚拟页面对应的物理页面在该大物理帧号标识的大物理页面中的位置;
该方法包括:
接收处理器发送的第一请求,该第一请求用于请求第一虚拟地址对应的第一物理帧号;
确定该第一虚拟地址对应的第一大虚拟页号,以及该第一虚拟地址对应的第一虚拟页面在该第一大虚拟页号标识的第一大虚拟页面中的第一位置;
根据该第一大虚拟页号,确定该表项集合中存在与该第一大虚拟页号对应的第一表项,其中该第一表项的大虚拟页号字段中的大虚拟页号为该第一大虚拟页号,该第一表项的大物理帧号字段中的大物理帧号为第一大物理帧号;
根据该第一表项中的有效指示字段中与该第一位置对应的比特的值,确定该第一虚拟页面被该第一表项映射;
根据该第一表项中的索引字段中与该第一位置对应的元素的值,确定该第一虚拟页面对应的第一物理页面在该第一大物理帧号标识的第一大物理页面中的第二位置;
根据该第一大物理帧号和该第二位置,确定该第一物理帧号;
向该处理器发送该第一物理帧号。
本发明实施例的技术方案,可以通过较少的表项记录多个映射关系,从而能够提升TLB的有效容量,并进一步达到减少TLB Miss几率的效果。
在一些可能的实现方式中,该方法还包括:
接收该处理器发送的第二请求,该第二请求用于请求第二虚拟地址对应的第二物理帧号;
确定该第二虚拟地址对应的第二大虚拟页号,以及该第二虚拟地址对应的第二虚拟页面在该第二大虚拟页号标识的第二大虚拟页面中的第三位置;
根据该第二大虚拟页号,确定该表项集合中存在与该第二大虚拟页号对应的第二表项,其中该第二表项的大虚拟页号字段中的大虚拟页号为该第二大虚拟页号,该第二表项的大物理帧号字段中的大物理帧号为第二大物理帧号;
根据该第二表项中的有效指示字段中与该第三位置对应的比特的值,确定该第二虚拟页面未被该第二表项映射;
向该处理器发送第一页表缓存缺失信息。
在一些可能的实现方式中,该方法还包括:
接收该处理器发送的该第二虚拟地址的映射关系;
若根据该第二虚拟地址的映射关系,确定该第二虚拟页面对应的第二物理页面在该第二大物理帧号标识的第二大物理页面中,则更新该第二表项,以使该第二表项中的有效指示字段中与该第三位置对应的比特的值指示该第二虚拟页面被该第二表项映射,该第二表项中的索引字段中与该第三位置对应的元素的值指示该第二物理页面在该第二大物理页面中的位置;或者,
若根据该第二虚拟地址的映射关系,确定该第二虚拟页面对应的第二物理页面不在该第二大物理帧号标识的第二大物理页面中,则在该表项集合中新建第三表项,其中, 该第三表项的大虚拟页号字段中的大虚拟页号为该第二大虚拟页号,该第三表项的大物理帧号字段中的大物理帧号为标识该第二物理页面所在的大物理页面的大物理帧号,该第三表项中的有效指示字段中与该第三位置对应的比特的值指示该第二虚拟页面被该第三表项映射,该第三表项中的索引字段中与该第三位置对应的元素的值指示该第二物理页面在所在的大物理页面中的位置。
在一些可能的实现方式中,该方法还包括:
接收该处理器发送的第三请求,该第三请求用于请求第三虚拟地址对应的第三物理帧号;
确定该第三虚拟地址对应的第三大虚拟页号,以及该第三虚拟地址对应的第三虚拟页面在该第三大虚拟页号标识的第三大虚拟页面中的第四位置;
根据该第三大虚拟页号,确定该表项集合中不存在与该第三大虚拟页号对应的表项;
向该处理器发送第二页表缓存缺失信息。
在一些可能的实现方式中,该方法还包括:
接收该处理器发送的该第三虚拟地址的映射关系;
根据该第三虚拟地址的映射关系,在该表项集合中新建第四表项,其中,该第四表项的大虚拟页号字段中的大虚拟页号为该第三大虚拟页号,该第四表项的大物理帧号字段中的大物理帧号为标识该第三虚拟页面对应的第三物理页面所在的第三大物理页面的大物理帧号,该第三表项中的有效指示字段中与该第四位置对应的比特的值指示该第三虚拟页面被该第四表项映射,该第四表项中的索引字段中与该第四位置对应的元素的值指示该第三物理页面在该第三大物理页面中的位置。
通过上述方式可以在页表缓存中添加新的映射关系。
在一些可能的实现方式中,该大虚拟页面包括2N个虚拟页面,该大物理页面包括2N个物理页面,该有效指示字段包括2N个比特,该索引字段包括2N个元素,其中每个元素包括N个比特,N为正整数。
在一些可能的实现方式中,该有效指示字段的2N个比特中的第i个比特用于指示该大虚拟页面的2N个虚拟页面中的第i个虚拟页面是否被该表项映射,该索引字段的2N个元素中的第i个元素用于在该第i个虚拟页面被该表项映射时指示该第i个虚拟页面对应的物理页面在该大物理帧号标识的大物理页面中的位置,i为小于或等于2N的正整数。
在一些可能的实现方式中,N为2,VPN对应的PFN可以根据以下公式确定,
Large_VPN=VPN/4,
pageIdx=VPN%4,
若VldVec[pageIdx]=1,则PFN=Large_PFN*4+IdxVec[pageIdx]。
第二方面,提供了一种表项,该表项包括大虚拟页号字段,大物理帧号字段,有效指示字段和索引字段,其中,该大虚拟页号字段中的大虚拟页号标识大虚拟页面,该大虚拟页面包括多个虚拟页面,该大物理帧号字段中的大物理帧号标识大物理页面,该大物理页面包括多个物理页面,该有效指示字段用于指示该多个虚拟页面中的每个虚拟页面是否被该表项映射,该索引字段用于在该每个虚拟页面被该表项映射时指示该每个虚拟页面对应的物理页面在该大物理帧号标识的大物理页面中的位置。
在一些可能的实现方式中,该大虚拟页面包括2N个虚拟页面,该大物理页面包括2N 个物理页面,该有效指示字段包括2N个比特,该索引字段包括2N个元素,其中每个元素包括N个比特,N为正整数。
在一些可能的实现方式中,该有效指示字段的2N个比特中的第i个比特用于指示该大虚拟页面的2N个虚拟页面中的第i个虚拟页面是否被该表项映射,该索引字段的2N个元素中的第i个元素用于在该第i个虚拟页面被该表项映射时指示该第i个虚拟页面对应的物理页面在该大物理帧号标识的大物理页面中的位置,i为小于或等于2N的正整数。
第三方面,提供了一种页表缓存,包括:
存储单元,用于存储表项集合,该表项集合中的表项为上述第二方面或第二方面的任一种可能的实现方式中的表项;
管理单元,用于执行上述第一方面或第一方面的任一种可能的实现方式中的方法。
第四方面,提供了一种处理器芯片,包括:处理器和上述第三方面或第三方面的任一种可能的实现方式中的页表缓存。
第五方面,提供了一种存储单元,用于存储上述第二方面或第二方面的任一种可能的实现方式中的表项。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是虚拟地址到物理地址的映射的示意图。
图2是本发明实施例技术方案的应用场景的示意图。
图3是TLB中表项的结构的示意图。
图4是地址转换过程的示意图。
图5是本发明一个实施例的表项的示意图。
图6是本发明另一个实施例的表项的示意图。
图7是本发明一个实施例的页表缓存的访问方法的示意性流程图。
图8是本发明另一个实施例的页表缓存的访问方法的示意性流程图。
图9是本发明实施例的更新表项的示意图。
图10是本发明一个实施例的新建表项的示意图。
图11是本发明又一个实施例的页表缓存的访问方法的示意性流程图。
图12是本发明又一个实施例的表项的示意图。
图13是本发明另一个实施例的新建表项的示意图。
图14是本发明实施例的页表缓存的示意性框图。
图15是本发明实施例的处理器芯片的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地 描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
在本发明的各种实施例中,术语“虚拟地址”可以为用户程序中的地址。术语“物理地址”可以为虚拟地址在物理内存地址空间中对应的实际地址。
采用虚拟地址技术后,程序员在编写程序的时候,所看到的都是虚拟地址。此时,任何一个程序的代码段起始地址和数据段起始地址都是一个固定的数值。即,一个程序的代码段起始地址和另一个程序的代码段起始地址可以是相同的;同理,一个程序的数据段起始地址和另一个程序的数据段起始地址也可以是相同的。因此,程序员无需自己去约定或决定它们的取值。而在程序真正开始执行的时候,操作***会寻找当前可用的物理地址空间,并将程序所用的虚拟地址空间映射到这些物理地址空间。操作***会根据实际的物理地址,将程序的虚地址映射到具体的物理地址。多个程序同时执行时,它们实际上处于不同的物理地址空间,从而保证了程序的正常执行。
操作***在进行内存管理时,会将物理地址空间划分成连续的页面。同样,程序自己的虚拟地址空间也会被划分成连续的页面。
在本发明的各种实施例中,术语“VPN”标识虚拟地址对应的虚拟页面,术语“PFN”标识物理地址对应的物理页面。术语“页偏移(Offset)”为虚拟地址在页面内的偏移量。在映射过程中,地址的Offset部分保持不变,即映射过程是根据VPN找到PFN的过程。
假设页面大小为4KB,地址为64位,则虚拟地址到物理地址的映射可以如图1所示,其中,地址的低位部分,即[11:0]字段,为Offset;地址的高位部分,即[63:12]字段,在虚拟地址中为VPN,在物理地址中为PFN。
在本发明的各种实施例中,术语“大虚拟页面”也可以称为“超级虚拟页面”,其包括多个虚拟页面;相应地,术语“大物理页面”也可以称为“超级物理页面”,其包括多个物理页面。一个大虚拟页面包括的虚拟页面的数量与一个大物理页面包括的物理页面的数量相同。可选地,该数量可以为2N,N为正整数。一个大虚拟页面包括的多个虚拟页面是连续的,即这些虚拟页面的虚拟地址是连续的。一个大物理页面包括的多个物理页面可以是连续的,也可以是不连续的。
在本发明的各种实施例中,术语“大虚拟页号(Large_VPN)”标识大虚拟页面;术语“大物理帧号(Large_PFN)”标识大物理页面。由于大页面包括多个页面,因此,大虚拟页号和大物理帧号可以取VPN和PFN的高位部分,即大虚拟页号和大物理帧号的位数要比VPN和PFN的位数少。
图2是本发明实施例技术方案的应用场景的示意图。
如图2所示,在处理器210,例如CPU内,通过TLB 220进行地址映射。TLB 220采用缓存的形式存储表项,该表项可以称为TLB表项。该表项记录虚拟页号到物理帧号之间的映射关系。TLB 220的容量是非常有限的,因此,TLB 220可存储的表项的数量较少。在程序运行过程中,操作***会为该程序建立完整的从虚拟地址到物理地址的映射关系,这个映射关系保存到内存中的页表230中,即页表230中包括了该程序对应的所有表项。页表230中的每个表项可以包括相应的VPN信息和PFN信息。
在地址映射时,处理器210先访问TLB 220,若TLB 220中存储了虚拟地址对应的表 项,则能够得到虚拟地址对应的物理地址,即发生TLB命中(TLB Hit);若TLB 220中没有该虚拟地址对应的表项,则发生TLB缺失(TLB Miss),处理器210再访问内存中的页表230。
图3示出了目前TLB中表项的结构。如图3所示,每个表项可以分为VPN部分和PFN部分。
在需要进行地址映射时,TLB使用从虚拟地址中截取出的VPN和TLB内的各个表项进行对比。如果和其中某一个表项内的VPN相同,则输出该表项内的PFN字段,这被认为是发生了TLB Hit。如果没有一个表项的VPN和该待转换的VPN(即从该虚拟地址中截取出的VPN)相同,则被认为是发生了TLB Miss。
当TLB发生了Miss的时候,处理器需要从页表内搜索和该VPN对应的PFN,然后将这一VPN和PFN信息(即映射关系)存储到TLB内(通常会覆盖某个现有的表项),该过程被称之为Page Table Walk。这样,下次遇到该VPN时,就不会发生TLB Miss了。
地址转换过程可如图4所示。
首先,从虚拟地址中截取出高位的VPN字段;
然后,将该VPN字段输入到TLB内,TLB会使用该VPN字段在其内部进行匹配操作,当TLB Hit的时候,TLB会输出一个有效的PFN字段;
将该PFN字段与原先虚拟地址中的低位字段拼接起来,即可以生成相应的物理地址。
为了提升TLB的有效容量,减少TLB Miss的几率,本发明实施例提供了一种新的TLB表项结构。在本发明实施例的描述中,术语“TLB表项”与“表项”通用。
图5示出了根据本发明实施例的表项的示意图。
如图5所示,表项500包括大虚拟页号字段510,大物理帧号字段520,有效指示字段530和索引字段540。
该大虚拟页号字段510中的大虚拟页号标识大虚拟页面,该大虚拟页面包括多个虚拟页面。例如,图5中以该大虚拟页面包括4个虚拟页面示例。
该大物理帧号字段520中的大物理帧号标识大物理页面,该大物理页面包括多个物理页面。大物理页面与大虚拟页面对应,例如,大虚拟页面包括4个虚拟页面时,大物理页面也包括4个物理页面。
该有效指示字段530用于指示该多个虚拟页面中的每个虚拟页面是否被该表项500映射。例如,在图5中,该有效指示字段530的4个比特分别指示4个虚拟页面是否被该表项500映射。可选地,比特值为1时,指示被映射,比特值为0时,指示未被映射,但本发明对此并不限定。
该索引字段540用于在该每个虚拟页面被该表项500映射时,指示该每个虚拟页面对应的物理页面在该大物理帧号标识的大物理页面中的位置。例如,在图5中,该索引字段540的4个元素(每个元素包括2个比特)可用于分别指示4个虚拟页面对应的物理页面在该大物理帧号字段520中的大物理帧号标识的大物理页面中的位置。例如,该有效指示字段530中的第一个比特值为1,指示该大虚拟页号字段510中的大虚拟页号(Large_VPN0)标识大虚拟页面中的第一个虚拟页面被该表项500映射;该索引字段540中的第一个元素的值为3,指示第一个虚拟页面对应的物理页面在该大物理帧号字段520中的大物理帧号(Large_PFN0)标识的大物理页面中的位置为第三个物理页面。这样, 可以得到第一个虚拟页面对应的物理帧号为Large_PFN0*4+3。
采用本发明实施例的表项,可以将多个页面的映射包括在一个表项内,而且,即使该映射之间有交织,例如图5中VPN0不是映射到PFN0而是PFN3,仍然可以被一个表项所包括。
因此,本发明实施例的技术方案,能够提升TLB的有效容量;由于TLB的有效容量提升,可进一步减少TLB Miss的几率。
应理解,图5中以大虚拟页面包括4个虚拟页面示例,但本发明对此并不限定。
可选地,该大虚拟页面可以包括2N个虚拟页面,该大物理页面可以包括2N个物理页面,该有效指示字段可以包括2N个比特,该索引字段可以包括2N个元素,其中每个元素可以包括N个比特,N为正整数。
可选地,该有效指示字段的2N个比特中的第i个比特用于指示该大虚拟页面的2N个虚拟页面中的第i个虚拟页面是否被该表项映射,该索引字段的2N个元素中的第i个元素用于在该第i个虚拟页面被该表项映射时指示该第i个虚拟页面对应的物理页面在该大物理帧号标识的大物理页面中的位置,i为小于或等于2N的正整数。
例如,图6为大虚拟页面包括8个虚拟页面时,本发明实施例的表项的示意图。在这种情况下,1个表项最多可以映射8个页面。
为了描述方便,以下以大虚拟页面包括4个虚拟页面,页面大小为4KB为例进行描述。
当页面大小为4KB时,4个页面(VPN0/VPN1/VPN2/VPN3)位于1个16KB的大页面内。即,VPN0处于16KB地址对齐的位置。类似地,若页面大小为8KB时,VPN0位于32KB地址对齐的位置。当页面为其它大小时,以此类推。
仍以图5为例,大虚拟页面包括4个虚拟页面时,在每个表项内,除了大虚拟页号字段510(Large_VPN0)和大物理帧号字段520(Large_PFN0)外,还有4比特位宽的有效指示字段530(VldVec)),和8比特位宽的索引字段540(IdxVec),其中IdxVec字段包括4个元素,每个元素为2比特位宽。
VPN0~VPN3是地址连续的虚拟页面,所以它们仅最低2个比特互不相同,分别为2’b00、2’b01、2’b10和2’b11。
除了最低2个比特之外,VPN0~VPN3的高位是相同的,即同为Large_VPN0。
于是,VPN0~VPN3可以表示成如下方式。
VPN0为{Large_VPN0,2’b00},即Large_VPN0×4+0;
VPN1为{Large_VPN0,2’b01},即Large_VPN0×4+1;
VPN2为{Large_VPN0,2’b10},即Large_VPN0×4+2;
VPN3为{Large_VPN0,2’b11},即Large_VPN0×4+3。
VldVec字段中,每个比特表示相应的页面(VPN0~VPN3)的映射关系是否有效,即是否被该TLB表项映射,如下所示。
VldVec[0]表示VPN0是否被该TLB表项映射,例如,取值为1,则表示IdxVec[1:0]可用,取值为0,则表示IdxVec[1:0]不可用,如下类似;
VldVec[1]表示VPN1是否被该TLB表项映射,即IdxVec[3:2]是否可用;
VldVec[2]表示VPN2是否被该TLB表项映射,即IdxVec[5:4]是否可用;
VldVec[3]表示VPN3是否被该TLB表项映射,即IdxVec[7:6]是否可用。
IdxVec字段中,共有4个元素,其中每个元素为2比特位宽,即两个比特标识一个元素的状态(值),表示与相应的VPN所对应的是哪一个PFN,也即是所对应物理页面在大物理页面中的位置,如下所示。
IdxVec[1:0]表示VPN0映射到了PFN0~PFN3之间的哪一个PFN,可选地,当VldVec[0]为1时该字段可用,当VldVec[0]为0时该字段不可用,即VPN0没有被该TLB表项所映射,下同;
IdxVec[3:2]表示VPN1映射到了PFN0~PFN3之间的哪一个PFN,当VldVec[1]为1时该字段可用;
IdxVec[5:4]表示VPN2映射到了PFN0~PFN3之间的哪一个PFN,当VldVec[2]为1时该字段可用;
IdxVec[7:6]表示VPN3映射到了PFN0~PFN3之间的哪一个PFN,当VldVec[3]为1时该字段可用。
例如,在图5中,在VldVec[3:0]中的比特0,1,2取值均为1,比特3取值为0,这就表示VPN0,VPN1以及VPN2在该TLB表项中能够找到映射,VPN3在该TLB中无法找到映射。而从IdxVec[7:0]可以看出,元素[1:0],[3:2],[5:4]分别取值为3,1,2,则表示VPN0对应的是PFN3,VPN1对应的是PFN1,VPN2对应的是PFN2。
图7示出了根据本发明实施例的页表缓存的访问方法的示意性流程图。该方法可以由页表缓存执行。
该页表缓存中存储有表项集合,该表项集合中的表项为前述本发明实施例的表项。该表项的具体描述可以参考前述各实施例,为了简洁,在此不再赘述。
710,接收处理器发送的第一请求,该第一请求用于请求第一虚拟地址对应的第一物理帧号。
由于在映射过程中,地址的Offset部分保持不变,因此,该第一请求可以携带第一虚拟地址对应的第一虚拟页号,即,以VPN请求PFN。
应理解,虚拟地址与虚拟页号的关系是确定的,即,
VPN=virAddr/pageSize                (1)
其中,VPN表示虚拟页号,virAddr表示虚拟地址,pageSize表示页面大小,例如,在页面大小pageSize为4KB,地址为n位时,Offset为virAddr[11:0],VPN为virAddr[n:12]。
因此,该第一请求也可以携带第一虚拟地址,本发明对此并不限定。
720,确定该第一虚拟地址对应的第一大虚拟页号,以及该第一虚拟地址对应的第一虚拟页面在该第一大虚拟页号标识的第一大虚拟页面中的第一位置。
例如,假设大虚拟页面包括4个虚拟页面,则大虚拟页号可以为,
Large_VPN=VPN/4                (2)
其中,Large_VPN表示大虚拟页号;
该第一位置可以根据下式确定,
pageIdx=VPN%4                (3)
其中,%表示取余,pageIdx的四个可能的取值0,1,2,3分别对应虚拟页面0,1,2,3,即分别表示位置0,1,2,3。
在VPN为virAddr[n:12]时,Large_VPN为virAddr[n:14],pageIdx为virAddr[13:12]。
这样可得到第一大虚拟页号以及第一虚拟页面是第一大虚拟页面内的第几个虚拟页面。
结合图5,假设第一虚拟页面的第一虚拟页号为VPN0,则可以得到第一大虚拟页号为Large_VPN0,pageIdx为0。
730,根据该第一大虚拟页号,确定表项集合中存在与该第一大虚拟页号对应的第一表项,其中该第一表项的大虚拟页号字段中的大虚拟页号为该第一大虚拟页号,该第一表项的大物理帧号字段中的大物理帧号为第一大物理帧号。
具体而言,页表缓存根据该第一大虚拟页号,查找表项集合中的表项,将该第一大虚拟页号与每个表项的大虚拟页号字段中的大虚拟页号进行匹配,通过匹配可以得到,大虚拟页号字段中的大虚拟页号为该第一大虚拟页号的第一表项。结合图5,根据第一大虚拟页号Large_VPN0,可以得到第一表项为如图5中所示的表项,该表项的大虚拟页号字段中的大虚拟页号为Large_VPN0,另外,该表项的大物理帧号字段中的大物理帧号为Large_PFN0。
740,根据该第一表项中的有效指示字段中与该第一位置对应的比特的值,确定该第一虚拟页面被该第一表项映射。
结合图5,该表项中的有效指示字段中与该第一位置对应的比特为VldVec[pageIdx],VPN0对应的pageIdx为0,即第一位置为位置0,而有效指示字段VldVec字段中位置0的比特VldVec[0]的值为1,从而可确定该第一虚拟页面被该表项映射。
750,根据该第一表项中的索引字段中与该第一位置对应的元素的值,确定该第一虚拟页面对应的第一物理页面在该第一大物理帧号标识的第一大物理页面中的第二位置。
结合图5,该第一表项中的索引字段中与该第一位置对应的元素为IdxVec[pageIdx],在pageIdx为0,即第一位置为位置0时,IdxVec[0]的值为3。从而可得到相应的第一物理页面是Large_PFN0标识的第一大物理页面内的物理页面3。
760,根据该第一大物理帧号和该第二位置,确定该第一物理帧号。
在确定了第一物理页面是该第一大物理帧号标识的第一大物理页面中的第几个物理页面后,可以确定第一物理帧号。
结合图5,第一物理页面是Large_PFN0标识的第一大物理页面内的物理页面3,即第二位置为位置3,表示映射到PFN3,即第一物理帧号为PFN3。
具体地,物理帧号可根据下式确定,
PFN=Large_PFN*4+IdxVec[pageIdx]          (4)
可以看到,与virAddr所对应的物理帧号PFN可以分为两部分,一部分是基地址,它的值为Large_PFN*4;另一部分是在大物理页面内的偏移量,即偏移到4个物理页面中的哪一个物理页面,即IdxVec[pageIdx]。
由式(4)可以得到第一物理帧号为Large_PFN0*4+3,即PFN3。
770,向该处理器发送该第一物理帧号。
页表缓存将得到的第一虚拟地址对应的第一物理帧号发送给处理器。由第一物理帧号和第一虚拟地址的Offset部分可以进一步得到第一虚拟地址对应的物理地址。
以上描述了页表缓存中已有虚拟地址的映射关系的情况,下面对页表缓存中没有虚 拟地址的映射关系的情况进行描述。
图8示出了根据本发明另一实施例的页表缓存的访问方法的示意性流程图。该方法可以由页表缓存执行。
810,接收处理器发送的第二请求,该第二请求用于请求第二虚拟地址对应的第二物理帧号。
820,确定该第二虚拟地址对应的第二大虚拟页号,以及该第二虚拟地址对应的第二虚拟页面在该第二大虚拟页号标识的第二大虚拟页面中的第三位置。
结合图5,假设第二虚拟页面的第二虚拟页号为VPN3,则可以得到第二大虚拟页号为Large_VPN0,第三位置pageIdx为3。
830,根据该第二大虚拟页号,确定该表项集合中存在与该第二大虚拟页号对应的第二表项,其中该第二表项的大虚拟页号字段中的大虚拟页号为该第二大虚拟页号,该第二表项的大物理帧号字段中的大物理帧号为第二大物理帧号。
结合图5,根据第二大虚拟页号Large_VPN0,可以得到第二表项为如图5中所示的表项,该表项的大虚拟页号字段中的大虚拟页号为Large_VPN0,另外,该表项的大物理帧号字段中的大物理帧号为Large_PFN0。
840,根据该第二表项中的有效指示字段中与该第三位置对应的比特的值,确定该第二虚拟页面未被该第二表项映射。
结合图5,该表项中的有效指示字段中与该第三位置对应的比特为VldVec[pageIdx],VPN3对应的pageIdx为3,即第三位置为位置3,而有效指示字段VldVec字段中位置3的比特VldVec[3]的值为0,从而可确定该第二虚拟页面未被该表项映射,即为TLB Miss。
应理解,若第二表项有多个,则步骤840针对所有第二表项。也就是说,若在页表缓存的表项集合中匹配到多个大虚拟页号为Large_VPN0的表项,则在前一个表项中未命中映射关系时,继续针对下一个表项查找映射关系;若在该多个表项中都未命中映射关系,则为TLB Miss;只要在一个表项中命中映射关系,则为TLB Hit,不再继续查找。
850,向该处理器发送第一页表缓存缺失信息。
由于未命中映射关系,页表缓存向处理器发送缺失信息。处理器再从页表中获取该第二虚拟地址的映射关系。
860,接收该处理器发送的该第二虚拟地址的映射关系。
处理器从页表中获取该第二虚拟地址的映射关系后,还可将该第二虚拟地址的映射关系发送给页表缓存,以便于页表缓存添加该映射关系。
870,若根据该第二虚拟地址的映射关系,确定该第二虚拟页面对应的第二物理页面在该第二大物理帧号标识的第二大物理页面中,则更新该第二表项,以使该第二表项中的有效指示字段中与该第三位置对应的比特的值指示该第二虚拟页面被该第二表项映射,该第二表项中的索引字段中与该第三位置对应的元素的值指示该第二物理页面在该第二大物理页面中的位置。
具体而言,若根据该映射关系,确定第二虚拟页面被映射到了第二表项中的第二大物理帧号标识的第二大物理页面中,则在该第二表项中添加该映射关系。即,将该第二表项中的有效指示字段中与该第三位置对应的比特的值更新为指示该第二虚拟页面被该第二表项映射,将该第二表项中的索引字段中与该第三位置对应的元素的值更新为指示 该第二物理页面在该第二大物理页面中的位置。
例如,如图9所示,若VPN3被映射到PFN0,对应的物理页面在Large_PFN0标识的第一大物理页面中,且位置为0,因此将有效指示字段中的VldVec[3]的值更新为1,并将索引字段中的IdxVec[3]的值更新为0。
或者,
880,若根据该第二虚拟地址的映射关系,确定该第二虚拟页面对应的第二物理页面不在该第二大物理帧号标识的第二大物理页面中,则在该表项集合中新建第三表项,其中,该第三表项的大虚拟页号字段中的大虚拟页号为该第二大虚拟页号,该第三表项的大物理帧号字段中的大物理帧号为标识该第二物理页面所在的大物理页面的大物理帧号,该第三表项中的有效指示字段中与该第三位置对应的比特的值指示该第二虚拟页面被该第三表项映射,该第三表项中的索引字段中与该第三位置对应的元素的值指示该第二物理页面在所在的大物理页面中的位置。
具体而言,若根据该映射关系,确定第二虚拟页面被映射到了新的大物理页面中的第二物理页面,则新建第三表项,并在该第三表项中添加该映射关系。即,该第三表项中的大虚拟页号为该第二大虚拟页号,该第三表项中的大物理帧号为标识该新的大物理页面的大物理帧号,该第三表项中的有效指示字段中与该第三位置对应的比特的值指示该第二虚拟页面被该第三表项映射,该第三表项中的索引字段中与该第三位置对应的元素的值指示该第二物理页面在该新的大物理页面中的位置。
例如,如图10所示,若VPN3被映射到PFN6,对应的物理页面在Large_PFN1标识的新的大物理页面中,且位置为2,因此新建表项,该新建表项的大虚拟页号为Large_VPN0,大物理帧号为Large_PFN1,有效指示字段中的VldVec[3]的值为1,索引字段中的IdxVec[3]的值为2。
图11示出了根据本发明又一实施例的页表缓存的访问方法的示意性流程图。该方法可以由页表缓存执行。
1110,接收该处理器发送的第三请求,该第三请求用于请求第三虚拟地址对应的第三物理帧号。
1120,确定该第三虚拟地址对应的第三大虚拟页号,以及该第三虚拟地址对应的第三虚拟页面在该第三大虚拟页号标识的第三大虚拟页面中的第四位置。
结合图12,假设第三虚拟页面的第三虚拟页号为VPN4,可以得到第三大虚拟页号为Large_VPN1,第四位置pageIdx为0。
1130,根据该第三大虚拟页号,确定该表项集合中不存在与该第三大虚拟页号对应的表项。
具体而言,页表缓存根据该第三大虚拟页号,查找表项集合中的表项,未找到大虚拟页号为该第三大虚拟页号的表项,即页表缓存中没有与该第三大虚拟页号匹配的表项,因此发生TLB Miss。
例如,结合图12,页表缓存中没有大虚拟页号为Large_VPN1的表项,因此发生TLB Miss。
1140,向该处理器发送第二页表缓存缺失信息。
由于未命中映射关系,页表缓存向处理器发送缺失信息。处理器再从页表中获取该 第三虚拟地址的映射关系。
1150,接收该处理器发送的该第三虚拟地址的映射关系。
处理器从页表中获取该第三虚拟地址的映射关系后,还可将该第三虚拟地址的映射关系发送给页表缓存,以便于页表缓存添加该映射关系。
1160,根据该第三虚拟地址的映射关系,在该表项集合中新建第四表项,其中,该第四表项的大虚拟页号字段中的大虚拟页号为该第三大虚拟页号,该第四表项的大物理帧号字段中的大物理帧号为标识该第三虚拟页面对应的第三物理页面所在的第三大物理页面的大物理帧号,该第三表项中的有效指示字段中与该第四位置对应的比特的值指示该第三虚拟页面被该第四表项映射,该第四表项中的索引字段中与该第四位置对应的元素的值指示该第三物理页面在该第三大物理页面中的位置。
具体而言,页表缓存根据该映射关系,新建第四表项,在该第四表项中添加该映射关系。即,该第四表项中的大虚拟页号为该第三大虚拟页号,该第四表项中的大物理帧号为标识该第三大物理页面的大物理帧号,该第四表项中的有效指示字段中与该第四位置对应的比特的值指示该第三虚拟页面被该第四表项映射,该第四表项中的索引字段中与该第四位置对应的元素的值指示该第三物理页面在该第三大物理页面中的位置。
例如,如图13所示,若VPN4被映射到PFN7,对应的物理页面在Large_PFN1标识的大物理页面中,且位置为3,因此新建表项,该新建表项的大虚拟页号为Large_VPN1,大物理帧号为Large_PFN1,有效指示字段中的VldVec[0]的值为1,索引字段中的IdxVec[0]的值为3。
本发明实施例的技术方案,可以通过较少的表项记录多个映射关系,从而能够提升TLB的有效容量,并进一步达到减少TLB Miss几率的效果。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
图14示出了根据本发明实施例的页表缓存1400的示意性框图。如图10所示,该页表缓存1400包括存储单元1410和管理单元1420。
存储单元1410用于存储表项集合,该表项集合中的表项包括大虚拟页号字段,大物理帧号字段,有效指示字段和索引字段,其中,该大虚拟页号字段中的大虚拟页号标识大虚拟页面,该大虚拟页面包括多个虚拟页面,该大物理帧号字段中的大物理帧号标识大物理页面,该大物理页面包括多个物理页面,该有效指示字段用于指示该多个虚拟页面中的每个虚拟页面是否被该表项映射,该索引字段用于在该每个虚拟页面被该表项映射时指示该每个虚拟页面对应的物理页面在该大物理帧号标识的大物理页面中的位置。
管理单元1420用于:
接收处理器发送的第一请求,该第一请求用于请求第一虚拟地址对应的第一物理帧号;
确定该第一虚拟地址对应的第一大虚拟页号,以及该第一虚拟地址对应的第一虚拟页面在该第一大虚拟页号标识的第一大虚拟页面中的第一位置;
根据该第一大虚拟页号,确定该表项集合中存在与该第一大虚拟页号对应的第一表项,其中该第一表项的大虚拟页号字段中的大虚拟页号为该第一大虚拟页号,该第一表 项的大物理帧号字段中的大物理帧号为第一大物理帧号;
根据该第一表项中的有效指示字段中与该第一位置对应的比特的值,确定该第一虚拟页面被该第一表项映射;
根据该第一表项中的索引字段中与该第一位置对应的元素的值,确定该第一虚拟页面对应的第一物理页面在该第一大物理帧号标识的第一大物理页面中的第二位置;
根据该第一大物理帧号和该第二位置,确定该第一物理帧号;
向该处理器发送该第一物理帧号。
本发明实施例的页表缓存,可以将多个页面的映射包括在一个表项内,而且,即使该映射之间有交织,仍然可以被一个表项所包括,因此,能够提升页表缓存的有效容量,并进一步减少TLB Miss的几率。
在本发明实施例中,可选地,该管理单元1420还用于:
接收该处理器发送的第二请求,该第二请求用于请求第二虚拟地址对应的第二物理帧号;
确定该第二虚拟地址对应的第二大虚拟页号,以及该第二虚拟地址对应的第二虚拟页面在该第二大虚拟页号标识的第二大虚拟页面中的第三位置;
根据该第二大虚拟页号,确定该表项集合中存在与该第二大虚拟页号对应的第二表项,其中该第二表项的大虚拟页号字段中的大虚拟页号为该第二大虚拟页号,该第二表项的大物理帧号字段中的大物理帧号为第二大物理帧号;
根据该第二表项中的有效指示字段中与该第三位置对应的比特的值,确定该第二虚拟页面未被该第二表项映射;
向该处理器发送第一页表缓存缺失信息。
在本发明实施例中,可选地,该管理单元1420还用于:
接收该处理器发送的该第二虚拟地址的映射关系;
若根据该第二虚拟地址的映射关系,确定该第二虚拟页面对应的第二物理页面在该第二大物理帧号标识的第二大物理页面中,则更新该第二表项,以使该第二表项中的有效指示字段中与该第三位置对应的比特的值指示该第二虚拟页面被该第二表项映射,该第二表项中的索引字段中与该第三位置对应的元素的值指示该第二物理页面在该第二大物理页面中的位置;或者,
若根据该第二虚拟地址的映射关系,确定该第二虚拟页面对应的第二物理页面不在该第二大物理帧号标识的第二大物理页面中,则在该表项集合中新建第三表项,其中,该第三表项的大虚拟页号字段中的大虚拟页号为该第二大虚拟页号,该第三表项的大物理帧号字段中的大物理帧号为标识该第二物理页面所在的大物理页面的大物理帧号,该第三表项中的有效指示字段中与该第三位置对应的比特的值指示该第二虚拟页面被该第三表项映射,该第三表项中的索引字段中与该第三位置对应的元素的值指示该第二物理页面在所在的大物理页面中的位置。
在本发明实施例中,可选地,该管理单元1420还用于:
接收该处理器发送的第三请求,该第三请求用于请求第三虚拟地址对应的第三物理帧号;
根据该第三虚拟地址确定该第三虚拟地址对应的第三大虚拟页号,以及该第三虚拟 地址对应的第三虚拟页面在该第三大虚拟页号标识的第三大虚拟页面中的第四位置;
根据该第三大虚拟页号,确定该表项集合中不存在与该第三大虚拟页号对应的表项;
向该处理器发送第二页表缓存缺失信息。
在本发明实施例中,可选地,该管理单元1420还用于:
接收该处理器发送的该第三虚拟地址的映射关系;
根据该第三虚拟地址的映射关系,在该表项集合中新建第四表项,其中,该第四表项的大虚拟页号字段中的大虚拟页号为该第三大虚拟页号,该第四表项的大物理帧号字段中的大物理帧号为标识该第三虚拟页面对应的第三物理页面所在的第三大物理页面的大物理帧号,该第三表项中的有效指示字段中与该第四位置对应的比特的值指示该第三虚拟页面被该第四表项映射,该第四表项中的索引字段中与该第四位置对应的元素的值指示该第三物理页面在该第三大物理页面中的位置。
在本发明实施例中,可选地,该大虚拟页面包括2N个虚拟页面,该大物理页面包括2N个物理页面,该有效指示字段包括2N个比特,该索引字段包括2N个元素,其中每个元素包括N个比特,N为正整数。
在本发明实施例中,可选地,该有效指示字段的2N个比特中的第i个比特用于指示该大虚拟页面的2N个虚拟页面中的第i个虚拟页面是否被该表项映射,该索引字段的2N个元素中的第i个元素用于在该第i个虚拟页面被该表项映射时指示该第i个虚拟页面对应的物理页面在该大物理帧号标识的大物理页面中的位置,i为小于或等于2N的正整数。
本发明实施例的页表缓存1400中的存储单元1410存储的表项可以为前述本发明实施例中的表项,管理单元1420可以执行前述方法实施例中的各个流程,相应的具体描述可参考前述各实施例,为了简洁,在此不再赘述。
本发明实施例还提供了一种处理器芯片。如图15所示,处理器芯片1500可以包括:处理器1510和前述本发明实施例中的页表缓存1400。
应理解,本发明实施例对处理器1510和页表缓存1400的位置关系不作限定。页表缓存1400既可以设置于处理器1510内,也可以设置于处理器1510外。换句话说,图15仅仅是示例,不应理解为对本发明的限制。
应理解,本发明实施例中的具体的例子只是为了帮助本领域技术人员更好地理解本发明实施例,而非限制本发明实施例的范围。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元 或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (18)

  1. 一种页表缓存的访问方法,其特征在于,所述页表缓存中存储有表项集合,所述表项集合中的表项包括大虚拟页号字段,大物理帧号字段,有效指示字段和索引字段,其中,所述大虚拟页号字段中的大虚拟页号标识大虚拟页面,所述大虚拟页面包括多个虚拟页面,所述大物理帧号字段中的大物理帧号标识大物理页面,所述大物理页面包括多个物理页面,所述有效指示字段用于指示所述多个虚拟页面中的每个虚拟页面是否被所述表项映射,所述索引字段用于在所述每个虚拟页面被所述表项映射时指示所述每个虚拟页面对应的物理页面在所述大物理帧号标识的大物理页面中的位置;
    所述方法包括:
    接收处理器发送的第一请求,所述第一请求用于请求第一虚拟地址对应的第一物理帧号;
    确定所述第一虚拟地址对应的第一大虚拟页号,以及所述第一虚拟地址对应的第一虚拟页面在所述第一大虚拟页号标识的第一大虚拟页面中的第一位置;
    根据所述第一大虚拟页号,确定所述表项集合中存在与所述第一大虚拟页号对应的第一表项,其中所述第一表项的大虚拟页号字段中的大虚拟页号为所述第一大虚拟页号,所述第一表项的大物理帧号字段中的大物理帧号为第一大物理帧号;
    根据所述第一表项中的有效指示字段中与所述第一位置对应的比特的值,确定所述第一虚拟页面被所述第一表项映射;
    根据所述第一表项中的索引字段中与所述第一位置对应的元素的值,确定所述第一虚拟页面对应的第一物理页面在所述第一大物理帧号标识的第一大物理页面中的第二位置;
    根据所述第一大物理帧号和所述第二位置,确定所述第一物理帧号;
    向所述处理器发送所述第一物理帧号。
  2. 根据权利要求1所述的方法,其特征在于,所述方法还包括:
    接收所述处理器发送的第二请求,所述第二请求用于请求第二虚拟地址对应的第二物理帧号;
    确定所述第二虚拟地址对应的第二大虚拟页号,以及所述第二虚拟地址对应的第二虚拟页面在所述第二大虚拟页号标识的第二大虚拟页面中的第三位置;
    根据所述第二大虚拟页号,确定所述表项集合中存在与所述第二大虚拟页号对应的第二表项,其中所述第二表项的大虚拟页号字段中的大虚拟页号为所述第二大虚拟页号,所述第二表项的大物理帧号字段中的大物理帧号为第二大物理帧号;
    根据所述第二表项中的有效指示字段中与所述第三位置对应的比特的值,确定所述第二虚拟页面未被所述第二表项映射;
    向所述处理器发送第一页表缓存缺失信息。
  3. 根据权利要求2所述的方法,其特征在于,所述方法还包括:
    接收所述处理器发送的所述第二虚拟地址的映射关系;
    若根据所述第二虚拟地址的映射关系,确定所述第二虚拟页面对应的第二物理页面在所述第二大物理帧号标识的第二大物理页面中,则更新所述第二表项,以使所述第二 表项中的有效指示字段中与所述第三位置对应的比特的值指示所述第二虚拟页面被所述第二表项映射,所述第二表项中的索引字段中与所述第三位置对应的元素的值指示所述第二物理页面在所述第二大物理页面中的位置;或者,
    若根据所述第二虚拟地址的映射关系,确定所述第二虚拟页面对应的第二物理页面不在所述第二大物理帧号标识的第二大物理页面中,则在所述表项集合中新建第三表项,其中,所述第三表项的大虚拟页号字段中的大虚拟页号为所述第二大虚拟页号,所述第三表项的大物理帧号字段中的大物理帧号为标识所述第二物理页面所在的大物理页面的大物理帧号,所述第三表项中的有效指示字段中与所述第三位置对应的比特的值指示所述第二虚拟页面被所述第三表项映射,所述第三表项中的索引字段中与所述第三位置对应的元素的值指示所述第二物理页面在所在的大物理页面中的位置。
  4. 根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
    接收所述处理器发送的第三请求,所述第三请求用于请求第三虚拟地址对应的第三物理帧号;
    确定所述第三虚拟地址对应的第三大虚拟页号,以及所述第三虚拟地址对应的第三虚拟页面在所述第三大虚拟页号标识的第三大虚拟页面中的第四位置;
    根据所述第三大虚拟页号,确定所述表项集合中不存在与所述第三大虚拟页号对应的表项;
    向所述处理器发送第二页表缓存缺失信息。
  5. 根据权利要求4所述的方法,其特征在于,所述方法还包括:
    接收所述处理器发送的所述第三虚拟地址的映射关系;
    根据所述第三虚拟地址的映射关系,在所述表项集合中新建第四表项,其中,所述第四表项的大虚拟页号字段中的大虚拟页号为所述第三大虚拟页号,所述第四表项的大物理帧号字段中的大物理帧号为标识所述第三虚拟页面对应的第三物理页面所在的第三大物理页面的大物理帧号,所述第三表项中的有效指示字段中与所述第四位置对应的比特的值指示所述第三虚拟页面被所述第四表项映射,所述第四表项中的索引字段中与所述第四位置对应的元素的值指示所述第三物理页面在所述第三大物理页面中的位置。
  6. 根据权利要求1至5中任一项所述的方法,其特征在于,所述大虚拟页面包括2N个虚拟页面,所述大物理页面包括2N个物理页面,所述有效指示字段包括2N个比特,所述索引字段包括2N个元素,其中每个元素包括N个比特,N为正整数。
  7. 根据权利要求6所述的方法,其特征在于,所述有效指示字段的2N个比特中的第i个比特用于指示所述大虚拟页面的2N个虚拟页面中的第i个虚拟页面是否被所述表项映射,所述索引字段的2N个元素中的第i个元素用于在所述第i个虚拟页面被所述表项映射时指示所述第i个虚拟页面对应的物理页面在所述大物理帧号标识的大物理页面中的位置,i为小于或等于2N的正整数。
  8. 一种页表缓存,其特征在于,包括:
    存储单元,用于存储表项集合,所述表项集合中的表项包括大虚拟页号字段,大物理帧号字段,有效指示字段和索引字段,其中,所述大虚拟页号字段中的大虚拟页号标识大虚拟页面,所述大虚拟页面包括多个虚拟页面,所述大物理帧号字段中的大物理帧号标识大物理页面,所述大物理页面包括多个物理页面,所述有效指示字段用于指示所述多个虚拟页面中的每个虚拟页面是否被所述表项映射,所述索引字段用于在所述每个 虚拟页面被所述表项映射时指示所述每个虚拟页面对应的物理页面在所述大物理帧号标识的大物理页面中的位置;
    管理单元,用于:
    接收处理器发送的第一请求,所述第一请求用于请求第一虚拟地址对应的第一物理帧号;
    确定所述第一虚拟地址对应的第一大虚拟页号,以及所述第一虚拟地址对应的第一虚拟页面在所述第一大虚拟页号标识的第一大虚拟页面中的第一位置;
    根据所述第一大虚拟页号,确定所述表项集合中存在与所述第一大虚拟页号对应的第一表项,其中所述第一表项的大虚拟页号字段中的大虚拟页号为所述第一大虚拟页号,所述第一表项的大物理帧号字段中的大物理帧号为第一大物理帧号;
    根据所述第一表项中的有效指示字段中与所述第一位置对应的比特的值,确定所述第一虚拟页面被所述第一表项映射;
    根据所述第一表项中的索引字段中与所述第一位置对应的元素的值,确定所述第一虚拟页面对应的第一物理页面在所述第一大物理帧号标识的第一大物理页面中的第二位置;
    根据所述第一大物理帧号和所述第二位置,确定所述第一物理帧号;
    向所述处理器发送所述第一物理帧号。
  9. 根据权利要求8所述的页表缓存,其特征在于,所述管理单元还用于:
    接收所述处理器发送的第二请求,所述第二请求用于请求第二虚拟地址对应的第二物理帧号;
    确定所述第二虚拟地址对应的第二大虚拟页号,以及所述第二虚拟地址对应的第二虚拟页面在所述第二大虚拟页号标识的第二大虚拟页面中的第三位置;
    根据所述第二大虚拟页号,确定所述表项集合中存在与所述第二大虚拟页号对应的第二表项,其中所述第二表项的大虚拟页号字段中的大虚拟页号为所述第二大虚拟页号,所述第二表项的大物理帧号字段中的大物理帧号为第二大物理帧号;
    根据所述第二表项中的有效指示字段中与所述第三位置对应的比特的值,确定所述第二虚拟页面未被所述第二表项映射;
    向所述处理器发送第一页表缓存缺失信息。
  10. 根据权利要求9所述的页表缓存,其特征在于,所述管理单元还用于:
    接收所述处理器发送的所述第二虚拟地址的映射关系;
    若根据所述第二虚拟地址的映射关系,确定所述第二虚拟页面对应的第二物理页面在所述第二大物理帧号标识的第二大物理页面中,则更新所述第二表项,以使所述第二表项中的有效指示字段中与所述第三位置对应的比特的值指示所述第二虚拟页面被所述第二表项映射,所述第二表项中的索引字段中与所述第三位置对应的元素的值指示所述第二物理页面在所述第二大物理页面中的位置;或者,
    若根据所述第二虚拟地址的映射关系,确定所述第二虚拟页面对应的第二物理页面不在所述第二大物理帧号标识的第二大物理页面中,则在所述表项集合中新建第三表项,其中,所述第三表项的大虚拟页号字段中的大虚拟页号为所述第二大虚拟页号,所述第三表项的大物理帧号字段中的大物理帧号为标识所述第二物理页面所在的大物理页面的大物理帧号,所述第三表项中的有效指示字段中与所述第三位置对应的比特的值 指示所述第二虚拟页面被所述第三表项映射,所述第三表项中的索引字段中与所述第三位置对应的元素的值指示所述第二物理页面在所在的大物理页面中的位置。
  11. 根据权利要求8至10中任一项所述的页表缓存,其特征在于,所述管理单元还用于:
    接收所述处理器发送的第三请求,所述第三请求用于请求第三虚拟地址对应的第三物理帧号;
    根据所述第三虚拟地址确定所述第三虚拟地址对应的第三大虚拟页号,以及所述第三虚拟地址对应的第三虚拟页面在所述第三大虚拟页号标识的第三大虚拟页面中的第四位置;
    根据所述第三大虚拟页号,确定所述表项集合中不存在与所述第三大虚拟页号对应的表项;
    向所述处理器发送第二页表缓存缺失信息。
  12. 根据权利要求11所述的页表缓存,其特征在于,所述管理单元还用于:
    接收所述处理器发送的所述第三虚拟地址的映射关系;
    根据所述第三虚拟地址的映射关系,在所述表项集合中新建第四表项,其中,所述第四表项的大虚拟页号字段中的大虚拟页号为所述第三大虚拟页号,所述第四表项的大物理帧号字段中的大物理帧号为标识所述第三虚拟页面对应的第三物理页面所在的第三大物理页面的大物理帧号,所述第三表项中的有效指示字段中与所述第四位置对应的比特的值指示所述第三虚拟页面被所述第四表项映射,所述第四表项中的索引字段中与所述第四位置对应的元素的值指示所述第三物理页面在所述第三大物理页面中的位置。
  13. 根据权利要求8至12中任一项所述的页表缓存,其特征在于,所述大虚拟页面包括2N个虚拟页面,所述大物理页面包括2N个物理页面,所述有效指示字段包括2N个比特,所述索引字段包括2N个元素,其中每个元素包括N个比特,N为正整数。
  14. 根据权利要求13所述的页表缓存,其特征在于,所述有效指示字段的2N个比特中的第i个比特用于指示所述大虚拟页面的2N个虚拟页面中的第i个虚拟页面是否被所述表项映射,所述索引字段的2N个元素中的第i个元素用于在所述第i个虚拟页面被所述表项映射时指示所述第i个虚拟页面对应的物理页面在所述大物理帧号标识的大物理页面中的位置,i为小于或等于2N的正整数。
  15. 一种处理器芯片,其特征在于,包括:处理器和根据权利要求8至14中任一项所述的页表缓存。
  16. 一种存储单元,其特征在于,用于存储表项集合,所述表项集合中的表项包括大虚拟页号字段,大物理帧号字段,有效指示字段和索引字段,其中,所述大虚拟页号字段中的大虚拟页号标识大虚拟页面,所述大虚拟页面包括多个虚拟页面,所述大物理帧号字段中的大物理帧号标识大物理页面,所述大物理页面包括多个物理页面,所述有效指示字段用于指示所述多个虚拟页面中的每个虚拟页面是否被所述表项映射,所述索引字段用于在所述每个虚拟页面被所述表项映射时指示所述每个虚拟页面对应的物理页面在所述大物理帧号标识的大物理页面中的位置。
  17. 根据权利要求16所述的存储单元,其特征在于,所述大虚拟页面包括2N个虚拟页面,所述大物理页面包括2N个物理页面,所述有效指示字段包括2N个比特,所述索引字段包括2N个元素,其中每个元素包括N个比特,N为正整数。
  18. 根据权利要求17所述的存储单元,其特征在于,所述有效指示字段的2N个比特中的第i个比特用于指示所述大虚拟页面的2N个虚拟页面中的第i个虚拟页面是否被所述表项映射,所述索引字段的2N个元素中的第i个元素用于在所述第i个虚拟页面被所述表项映射时指示所述第i个虚拟页面对应的物理页面在所述大物理帧号标识的大物理页面中的位置,i为小于或等于2N的正整数。
PCT/CN2017/098494 2016-08-23 2017-08-22 页表缓存的访问方法、页表缓存、处理器芯片和存储单元 WO2018036486A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610708009.7 2016-08-23
CN201610708009.7A CN107766259B (zh) 2016-08-23 2016-08-23 页表缓存的访问方法、页表缓存、处理器芯片和存储单元

Publications (1)

Publication Number Publication Date
WO2018036486A1 true WO2018036486A1 (zh) 2018-03-01

Family

ID=61246423

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/098494 WO2018036486A1 (zh) 2016-08-23 2017-08-22 页表缓存的访问方法、页表缓存、处理器芯片和存储单元

Country Status (2)

Country Link
CN (1) CN107766259B (zh)
WO (1) WO2018036486A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113836054B (zh) * 2021-08-30 2023-08-22 中国人民解放军军事科学院国防科技创新研究院 用于gpu的内存页管理方法和内存页转换方法
CN114116540B (zh) * 2022-01-26 2022-04-12 广东省新一代通信与网络创新研究院 一种用于提高处理器页表缓冲性能的方法及***

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102184142A (zh) * 2011-04-19 2011-09-14 中兴通讯股份有限公司 一种利用巨页映射降低cpu资源消耗的方法和装置
US8327187B1 (en) * 2009-09-21 2012-12-04 Tilera Corporation Low-overhead operating systems
CN104216833A (zh) * 2013-05-29 2014-12-17 华为技术有限公司 一种确定物理地址的方法及装置
CN104899159A (zh) * 2014-03-06 2015-09-09 华为技术有限公司 高速缓冲存储器Cache地址的映射处理方法和装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6804766B1 (en) * 1997-11-12 2004-10-12 Hewlett-Packard Development Company, L.P. Method for managing pages of a designated memory object according to selected memory management policies
CN1280735C (zh) * 2003-12-04 2006-10-18 中国科学院计算技术研究所 一种发起方触发的远程内存访问操作虚实地址转换方法
CN101681308B (zh) * 2007-06-20 2014-08-13 富士通株式会社 计算机及tlb控制方法
US20090006803A1 (en) * 2007-06-28 2009-01-01 David Arnold Luick L2 Cache/Nest Address Translation
JP2013097671A (ja) * 2011-11-02 2013-05-20 Fujitsu Ltd アドレス変換装置、アドレス変換装置の制御方法及び演算処理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8327187B1 (en) * 2009-09-21 2012-12-04 Tilera Corporation Low-overhead operating systems
CN102184142A (zh) * 2011-04-19 2011-09-14 中兴通讯股份有限公司 一种利用巨页映射降低cpu资源消耗的方法和装置
CN104216833A (zh) * 2013-05-29 2014-12-17 华为技术有限公司 一种确定物理地址的方法及装置
CN104899159A (zh) * 2014-03-06 2015-09-09 华为技术有限公司 高速缓冲存储器Cache地址的映射处理方法和装置

Also Published As

Publication number Publication date
CN107766259B (zh) 2021-08-20
CN107766259A (zh) 2018-03-06

Similar Documents

Publication Publication Date Title
US10042778B2 (en) Collapsed address translation with multiple page sizes
CN109710544B (zh) 内存访问方法、计算机***以及处理装置
JP3640978B2 (ja) ページテーブル中のハッシュアドレスタグを用いたメモリアドレス制御装置
JP4268332B2 (ja) 仮想アドレスからページ・テーブル・インデックスを計算する方法および装置
US9858192B2 (en) Cross-page prefetching method, apparatus, and system
US9208103B2 (en) Translation bypass in multi-stage address translation
US9639476B2 (en) Merged TLB structure for multiple sequential address translations
CN107273522B (zh) 面向多应用的数据存储***和数据调用方法
JP4242905B2 (ja) キャッシュ効率的なオブジェクトローダ
US7917723B2 (en) Address translation table synchronization
US8185692B2 (en) Unified cache structure that facilitates accessing translation table entries
JP2012532381A (ja) 凝集された小さいページを用いて拡張されたページサイズ
US9268694B2 (en) Maintenance of cache and tags in a translation lookaside buffer
CN108139981B (zh) 一种页表缓存tlb中表项的访问方法,及处理芯片
EP2472412B1 (en) Explicitly regioned memory organization in a network element
US20160140042A1 (en) Instruction cache translation management
US10997078B2 (en) Method, apparatus, and non-transitory readable medium for accessing non-volatile memory
EP3276494B1 (en) Memory space management
CN103052945A (zh) 管理计算机存储器的方法、程序产品及数据存储设备
CN113934655B (zh) 解决高速缓冲存储器地址二义性问题的方法和装置
WO2018036486A1 (zh) 页表缓存的访问方法、页表缓存、处理器芯片和存储单元
US10372622B2 (en) Software controlled cache line replacement within a data property dependent cache segment of a cache using a cache segmentation enablement bit and cache segment selection bits
CN104702508A (zh) 表项动态更新方法及***
JP2010244327A (ja) キャッシュシステム
US20070101044A1 (en) Virtually indexed cache system

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17842908

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17842908

Country of ref document: EP

Kind code of ref document: A1