CN104424117B - 内存物理地址查询方法和装置 - Google Patents

内存物理地址查询方法和装置 Download PDF

Info

Publication number
CN104424117B
CN104424117B CN201310364417.1A CN201310364417A CN104424117B CN 104424117 B CN104424117 B CN 104424117B CN 201310364417 A CN201310364417 A CN 201310364417A CN 104424117 B CN104424117 B CN 104424117B
Authority
CN
China
Prior art keywords
page table
table entry
stored
buffer
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310364417.1A
Other languages
English (en)
Other versions
CN104424117A (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
Priority to CN201310364417.1A priority Critical patent/CN104424117B/zh
Application filed by Huawei Technologies Co Ltd, Institute of Computing Technology of CAS filed Critical Huawei Technologies Co Ltd
Priority to CN201710708313.6A priority patent/CN107608912B/zh
Priority to JP2016535319A priority patent/JP6198952B2/ja
Priority to PCT/CN2014/083875 priority patent/WO2015024451A1/zh
Priority to KR1020167005743A priority patent/KR101768828B1/ko
Priority to EP14838503.2A priority patent/EP3023878B1/en
Publication of CN104424117A publication Critical patent/CN104424117A/zh
Priority to US15/047,938 priority patent/US10114762B2/en
Application granted granted Critical
Publication of CN104424117B publication Critical patent/CN104424117B/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]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache
    • 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/654Look-ahead translation
    • 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]
    • 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]
    • G06F2212/681Multi-level TLB, e.g. microTLB and main TLB

Abstract

本发明提供一种内存物理地址查询方法和装置。该方法包括:将备用缓存器中存储的待寻址的第二线程的页表项存储至预取缓存器中,备用缓存器中存储旁路转换缓存器中设定时间内未被查询的页表项;接收第二线程发送的携带虚拟地址的内存寻址请求消息;根据虚拟地址在旁路转换缓存器和预取缓存器中查询对应的物理地址。本发明提供的内存物理地址查询方法和装置,根据待寻址第二线程的虚拟地址在旁路转换缓存器和预取缓存器中同时进行查询,且预取缓存器中存储有旁路转换缓存器中设定时间内未被查询的第二线程的页表项,从而提高对虚拟地址对应的物理地址的查询命中几率,缩短寻址时间。

Description

内存物理地址查询方法和装置
技术领域
本发明涉及信息技术领域,尤其涉及一种内存物理地址查询方法和装置。
背景技术
目前,处理器大多采用虚拟地址(Virtual Address,简称VA)来进行内存寻址,使用虚拟地址技术可以创建比实际物理地址(Physical Address,简称PA)大得多的寻址空间。采用虚拟存储器的处理器大多采用一种分页(Paging)机制,虚拟地址空间以页(Page)为单位进行划分,相应的,物理地址空间也以页(Page)为单位进行划分。在采用虚拟地址进行内存寻址的过程中,处理器中的内存管理单元(Memory Management Unit,简称MMU)需要将接收到的虚拟地址转换为物理地址。目前处理器大多采用旁路转换缓存器来缓存包含有处理器最近访问的内存的虚拟地址和物理地址之间的映射关系的页表缓存(TranslationLookaside Buffer,简称TLB),TLB中缓存的数据和内存页表区存储的数据是一致的,在内存页表区中,每一条包含虚拟地址和物理地址映射关系的记录称为一个页表项(PageTable Entry,简称PTE),同样的,在TLB中也缓存了部分甚至全部的页表项PTE。
在采用虚拟地址进行内存寻址时,内存管理单元MMU接收到应用程序发来的虚拟地址后,首先在旁路转换缓存器的TLB中进行搜索,如果TLB中缓存有与该虚拟地址对应的页表项,即TLB命中(Hit),则通过该页表项中的物理地址到一级缓存(Level1Cache)进行数据存取,如果Level1Cache中与该物理地址对应的数据缺失,则到二级缓存(Level2Cache)进行数据存取,如果Level2Cache中与该物理地址对应的数据缺失,则到内存中进行数据存取;如果TLB中不包含与该虚拟地址对应的页表项,即TLB未命中(Miss),则需要软件或操作系统(Operating System,简称OS)搜索与该虚拟地址对应的物理地址,并将该虚拟地址与该物理地址的映射关系作为一个页表项存入TLB中,以供内存管理单元MMU进行后续搜索。
现有技术中,在内存管理单元MMU中设置有预取缓存器(Prefetch Buffer,简称PB),PB中存储有多个页表项。在进行内存物理地址寻址时,首先在TLB中搜索对应的物理地址,当TLB未命中后,继续在PB中搜索对应的物理地址,若PB中存在对应的物理地址,则通过该物理地址进行数据存取并将命中的页表项存储至TLB中,若PB中不存在对应的物理地址,则将内存中的多个页表项存储至PB中,并覆盖PB中的当前存储数据。
然而,对于多线程处理器,多个硬件线程共享一个TLB,由于TLB的容量有限,当硬件线程数目较多时,TLB中页表项的数目无法满足多线程需求,从而导致每个硬件线程在采用虚拟地址进行内存寻址时,TLB未命中率很高,且TLB未命中后才去内存获取并缓存与该虚拟地址对应的页表项,因此寻址时间较长。
发明内容
本发明提供一种内存物理地址查询方法和装置,用以解决现有技术中存在的寻址时间较长的问题。
第一方面,本发明提供了一种内存物理地址查询方法,包括:
根据预设的线程切换策略,确定未来设定时间内内存寻址操作由第一线程变更为第二线程;
将备用缓存器中存储的所述第二线程的页表项存储至预取缓存器中,所述备用缓存器中存储旁路转换缓存器存储的页表缓存TLB中设定时间内未被查询的页表项;
接收所述第二线程发送的内存寻址请求消息,所述内存寻址请求消息中携带虚拟地址;
根据所述虚拟地址在所述旁路转换缓存器和所述预取缓存器存储的页表项中查询所述虚拟地址对应的物理地址。
在第一方面的第一种可能的实现方式中,所述根据所述虚拟地址在所述旁路转换缓存器和所述预取缓存器存储的页表项中查询所述虚拟地址对应的物理地址,包括:
若所述旁路转换缓存器中存在与所述虚拟地址对应的第一物理地址,则通过所述第一物理地址访问内存进行数据存取;或者,
若所述旁路转换缓存器中不存在与所述虚拟地址对应的第一物理地址,且所述预取缓存器中存在与所述虚拟地址对应的第二物理地址,则通过所述第二物理地址访问所述内存进行数据存取。
根据第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述方法还包括:
若所述旁路转换缓存器中不存在与所述虚拟地址对应的第一物理地址,且所述预取缓存器中不存在与所述虚拟地址对应的第二物理地址,则在所述内存中查找与所述虚拟地址对应的第三物理地址。
根据第一方面的第一种可能的实现方式和第二种可能的实现方式,在第三种可能的实现方式中,若所述旁路转换缓存器中不存在与所述虚拟地址对应的第一物理地址,且所述预取缓存器中存在与所述虚拟地址对应的第二物理地址,则所述方法还包括:
将所述预取缓存器中存储的所述虚拟地址和所述第二物理地址对应的页表项存储至所述旁路转换缓存器中,并删除所述预取缓存器中存储的所述虚拟地址和所述第二物理地址对应的页表项。
根据第一方面的第二种可能的实现方式,在第四种可能的实现方式中,所述方法还包括:
将在内存中查找到的与所述虚拟地址和所述第三物理地址对应的页表项存储至所述旁路转换缓存器中。
根据第一方面的第一种可能的实现方式、第二种可能的实现方式、第三种可能的实现方式和第四种可能的实现方式,在第五种可能的实现方式中,所述将备用缓存器中存储的所述第二线程的页表项存储至预取缓存器中之前,所述方法还包括:
若所述旁路转换缓存器中存储的页表项的数目超过自身的存储容量,则将所述旁路转换缓存器中所述设定时间内未被查询的页表项存储至所述备用缓存器中,并删除所述旁路转换缓存器中所述设定时间内未被查询的页表项。
根据第一方面的第五种可能的实现方式,在第六种可能的实现方式中,所述将所述旁路转换缓存器中所述设定时间内未被查询的页表项存储至所述备用缓存器中之后,所述方法还包括:
若所述备用缓存器中存储的页表项的数目超过自身的存储容量,则删除所述备用缓存器中存储时间最长的页表项。
根据第一方面的第一种可能的实现方式、第二种可能的实现方式、第三种可能的实现方式、第四种可能的实现方式、第五种可能的实现方式和第六种可能的实现方式,在第七种可能的实现方式中,所述将备用缓存器中存储的所述第二线程的页表项存储至预取缓存器中,包括:
若所述备用缓存器中存储的所述第二线程的页表项的数目小于或等于所述预取缓存器的存储容量,则将所述备用缓存器中存储的所有所述第二线程的页表项存储至所述预取缓存器中,并覆盖所述预取缓存器的当前存储数据;或者,
若所述备用缓存器中存储的所述第二线程的页表项的数目大于所述预取缓存器的存储容量,则将所述备用缓存器中存储的与所述预取缓存器的存储容量相等数目的所述第二线程的页表项存储至所述预取缓存器中,并覆盖所述预取缓存器的当前存储数据。
根据第一方面的第七种可能的实现方式,在第八种可能的实现方式中,若所述备用缓存器中存储的所述第二线程的页表项的数目大于所述预取缓存器的存储容量,则所述方法还包括:
若所述旁路转换缓存器中不存在与所述虚拟地址对应的第一物理地址,且所述预取缓存器中存在与所述虚拟地址对应的第二物理地址,则将所述备用缓存器中存储的所述第二线程的页表项中除所述预取缓存器中存储的页表项之外的一个页表项存储至所述预取缓存器中。
第二方面,本发明提供了一种内存物理地址查询装置,包括:
确定模块,用于根据预设的线程切换策略,确定未来设定时间内内存寻址操作由第一线程变更为第二线程;
执行模块,用于将备用缓存器中存储的所述第二线程的页表项存储至预取缓存器中,所述备用缓存器中存储旁路转换缓存器存储的页表缓存TLB中设定时间内未被查询的页表项;
接收模块,接收所述第二线程发送的内存寻址请求消息,所述内存寻址请求消息中携带虚拟地址;
查询模块,根据所述虚拟地址在所述旁路转换缓存器和所述预取缓存器存储的页表项中查询所述虚拟地址对应的物理地址。
在第二方面的第一种可能的实现方式中,所述查询模块具体用于:
若所述旁路转换缓存器中存在与所述虚拟地址对应的第一物理地址,则通过所述第一物理地址访问内存进行数据存取;或者,
若所述旁路转换缓存器中不存在与所述虚拟地址对应的第一物理地址,且所述预取缓存器中存在与所述虚拟地址对应的第二物理地址,则通过所述第二物理地址访问所述内存进行数据存取。
根据第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述查询模块还用于:
若所述旁路转换缓存器中不存在与所述虚拟地址对应的第一物理地址,且所述预取缓存器中不存在与所述虚拟地址对应的第二物理地址,则在所述内存中查找与所述虚拟地址对应的第三物理地址。
根据第二方面的第一种可能的实现方式和第二种可能的实现方式,在第三种可能的实现方式中,所述查询模块还用于:
若所述旁路转换缓存器中不存在与所述虚拟地址对应的第一物理地址,且所述预取缓存器中存在与所述虚拟地址对应的第二物理地址,则将所述预取缓存器中存储的所述虚拟地址和所述第二物理地址对应的页表项存储至所述旁路转换缓存器中,并删除所述预取缓存器中存储的所述虚拟地址和所述第二物理地址对应的页表项。
根据第二方面的第二种可能的实现方式,在第四种可能的实现方式中,所述查询模块还用于:
将在内存中查找到的与所述虚拟地址和所述第三物理地址对应的页表项存储至所述旁路转换缓存器中。
根据第二方面的第一种可能的实现方式、第二种可能的实现方式、第三种可能的实现方式和第四种可能的实现方式,在第五种可能的实现方式中,所述执行模块还用于:
在所述将备用缓存器中存储的所述第二线程的页表项存储至预取缓存器中之前,若所述旁路转换缓存器中存储的页表项的数目超过自身的存储容量,则将所述旁路转换缓存器中所述设定时间内未被查询的页表项存储至所述备用缓存器中,并删除所述旁路转换缓存器中所述设定时间内未被查询的页表项。
根据第一方面的第五种可能的实现方式,在第六种可能的实现方式中,所述执行模块还用于:
在所述将所述旁路转换缓存器中所述设定时间内未被查询的页表项存储至所述备用缓存器中之后,若所述备用缓存器中存储的页表项的数目超过自身的存储容量,则删除所述备用缓存器中存储时间最长的页表项。
根据第二方面的第一种可能的实现方式、第二种可能的实现方式、第三种可能的实现方式、第四种可能的实现方式、第五种可能的实现方式和第六种可能的实现方式,在第七种可能的实现方式中,所述执行模块具体用于:
若所述备用缓存器中存储的所述第二线程的页表项的数目小于或等于所述预取缓存器的存储容量,则将所述备用缓存器中存储的所有所述第二线程的页表项存储至所述预取缓存器中,并覆盖所述预取缓存器的当前存储数据;或者,
若所述备用缓存器中存储的所述第二线程的页表项的数目大于所述预取缓存器的存储容量,则将所述备用缓存器中存储的与所述预取缓存器的存储容量相等数目的所述第二线程的页表项存储至所述预取缓存器中,并覆盖所述预取缓存器的当前存储数据。
根据第二方面的第七种可能的实现方式,在第八种可能的实现方式中,所述执行模块还用于:
若所述备用缓存器中存储的所述第二线程的页表项的数目大于所述预取缓存器的存储容量,且所述旁路转换缓存器中不存在与所述虚拟地址对应的第一物理地址,所述预取缓存器中存在与所述虚拟地址对应的第二物理地址,则将所述备用缓存器中存储的所述第二线程的页表项中除所述预取缓存器中存储的页表项之外的一个页表项存储至所述预取缓存器中。
第三方面,本发明提供了一种内存物理地址查询装置,包括:存储器、旁路转换缓存器、备用缓存器、预取缓存器和处理器;
所述存储器,用于存储指令;
所述旁路转换缓存器,用于存储页表缓存TLB;
所述备用缓存器,用于存储所述旁路转换缓存器存储的所述TLB中设定时间内未被查询的页表项;
所述预取缓存器,用于存储所述备用缓存器中存储的对应线程的页表项;
所述处理器,用于运行所述存储器中存储的所述指令以执行如第一方面所述的内存物理地址查询方法。
本发明提供的内存物理地址查询方法和装置,根据待寻址第二线程的虚拟地址在旁路转换缓存器和预取缓存器中同时进行查询,且预取缓存器中存储有旁路转换缓存器中设定时间内未被查询的第二线程的页表项,从而提高对虚拟地址对应的物理地址的查询命中几率,缩短寻址时间。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的内存物理地址查询方法一个实施例的流程示意图;
图2为本发明提供的内存物理地址查询方法又一个实施例的流程示意图;
图3为旁路转换缓存器的缓存页表TLB中设定时间内未被查询的页表项存储至对应线程的备用缓存器中的示意图;
图4为对应线程的备用缓存器中的页表项存储至预取缓存器PB中的示意图;
图5为根据虚拟地址VA进行内存物理地址寻址的示意图;
图6为本发明提供的内存物理地址查询装置一个实施例的结构示意图;
图7为本发明提供的内存物理地址查询装置又一个实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明提供的内存物理地址查询方法一个实施例的流程示意图。如图1所示,以下方法实施例提供的方法可以适用于各种类型的终端设备,例如:PC机,PAD,手机等。以下各步骤的执行主体可以为上述各种终端设备中的中央处理器(Central ProcessingUnit,简称CPU),具体可以为CPU中的内存管理单元MMU等。该方法具体可以包括:
S101,根据预设的线程切换策略,确定未来设定时间内内存寻址操作由第一线程变更为第二线程。
具体的,线程切换策略中包括了在终端设备运行的各时间段内,采用哪些线程来执行内存寻址操作。本发明实施例中,第一线程即为前一时间段内执行内存寻址操作的线程,第二线程为在第一线程之后执行内存寻址操作的线程,即待寻址线程。
S102,将备用缓存器中存储的第二线程的页表项存储至预取缓存器中,备用缓存器中存储旁路转换缓存器存储的页表缓存TLB中设定时间内未被查询的页表项。
具体的,根据S101确定的待寻址的线程,即第二线程,将备用缓存器中存储的第二线程的页表项存储至预取缓存器PB中,且该备用缓存器中存储的是旁路转换缓存器存储的页表缓存TLB中设定时间内未被查询的页表项。可选的,备用缓存器中存储的页表项具体可以包括:虚拟地址和物理地址的对应关系以及对应的各线程的标识;类似的,旁路转换缓存器中存储的页表项具体也可以包括:虚拟地址和物理地址的对应关系以及对应的各线程的标识;预取缓存器PB中存储的页表项可以包括:虚拟地址和物理地址的对应关系以及对应的待寻址线程的标识。
此处需要说明的是,备用缓存器的数量可以是一个或多个,例如:每个线程可以对应一个备用缓存器,用于存储缓存旁路转换缓存器中该线程设定时间内未被查询的页表项。类似的,旁路转换缓存器和预取缓存器的数量都可以是一个或多个,例如:可以每个线程对应一个旁路转换缓存器和一个预取缓存器。
S103,接收第二线程发送的内存寻址请求消息,内存寻址请求消息中携带虚拟地址。
具体的,接收待寻址线程,即第二线程,发送的内存寻址请求消息,该内存寻址请求消息中携带待寻址的虚拟地址VA。
S104,根据虚拟地址在旁路转换缓存器和预取缓存器存储的页表项中查询虚拟地址对应的物理地址。
具体的,根据虚拟地址VA,可以同时在旁路转换缓存器和预取缓存器PB存储的页表项中进行查询,若旁路转换缓存器和预取缓存器PB中存在与该虚拟地址VA对应的物理地址,则采用该物理地址进行数据存取,若旁路转换缓存器和预取缓存器PB中均不存在与该虚拟地址VA对应的物理地址,则到内存中进行查询,以获得与该虚拟地址VA对应的物理地址。
本实施例提供的内存物理地址查询方法,根据待寻址第二线程的虚拟地址在旁路转换缓存器和预取缓存器中同时进行查询,且预取缓存器中存储有旁路转换缓存器中设定时间内未被查询的第二线程的页表项,从而提高对虚拟地址对应的物理地址的查询命中几率,缩短寻址时间。
图2为本发明提供的内存物理地址查询方法又一个实施例的流程示意图。如图2所示,以下方法实施例提供的方法可以适用于各种类型的终端设备,例如:PC机,PAD,手机等。以下各步骤的执行主体可以为中央处理器CPU,具体可以为CPU中的内存管理单元MMU等。该方法具体可以包括:
S201,根据预设的线程切换策略,确定未来设定时间内内存寻址操作由第一线程变更为第二线程。
具体的,线程切换策略中包括了在终端设备运行的各时间段内,采用哪些线程来执行内存寻址操作。本发明实施例中,第一线程即为前一时间段内执行内存寻址操作的线程,第二线程为在第一线程之后执行内存寻址操作的线程,即待寻址线程。
S202,将备用缓存器中存储的第二线程的页表项存储至预取缓存器中,备用缓存器中存储旁路转换缓存器存储的页表缓存TLB中设定时间内未被查询的页表项。
这里根据备用缓存器中存储的第二线程的页表项的数目和预取缓存器PB的存储容量之间的关系,可以选择执行以下步骤S203或S204。
S203,若备用缓存器中存储的第二线程的页表项的数目小于或等于预取缓存器的存储容量,则将备用缓存器中存储的所有第二线程的页表项存储至预取缓存器中,并覆盖预取缓存器的当前存储数据。
S204:若备用缓存器中存储的第二线程的页表项的数目大于预取缓存器的存储容量,则将备用缓存器中存储的与预取缓存器的存储容量相等数目的第二线程的页表项存储至预取缓存器中,并覆盖预取缓存器的当前存储数据。
具体的,根据S201确定的待寻址的线程,即第二线程,将备用缓存器中存储的部分或全部第二线程的页表项存储至预取缓存器PB中,并删除PB中当前存储的数据。其中,该备用缓存器中存储的是旁路转换缓存器存储的页表缓存TLB中设定时间内未被查询的页表项。
作为一种可选的实施方式,每个线程可以对应一个备用缓存器,且每个备用缓存器中存储的页表项可以是TLB中设定时间内未被查询的对应线程的页表项。图3为旁路转换缓存器的缓存页表TLB中设定时间内未被查询的页表项存储至对应线程的备用缓存器中的示意图,如图3所示,旁路转换缓存器的缓存页表TLB中存储的页表项具体可以包括:虚拟地址和物理地址的对应关系以及对应的各线程的标识,每个线程对应的备用缓存器中存储的页表项具体可以包括:虚拟地址和物理地址的对应关系,备用缓存器选择单元接收TLB中存储的设定时间内未被查询的页表项以及对应的线程标识,并根据线程标识将该页表项存储至对应线程的备用缓存器中。
图4为对应线程的备用缓存器中的页表项存储至预取缓存器PB中的示意图,如图4所示,备用缓存器选择单元根据确定的待寻址的线程,将待寻址线程的备用缓存器中的部分或全部页表项以及对应的线程标识存储至预取缓存器PB中,从而使预取缓存器PB中存储有待寻址线程被替换出TLB的页表项。这些被替换出TLB的页表项,大都不是因为不需要而被替换的,而是由于TLB存储容量有限,而线程又多,使得一些线程的常用页表项被替换出去。
这里假设32个线程共享一个存储容量为128个页表项的旁路转换缓存器,则每个线程对应的备用缓存器的存储容量和预取缓存器PB的存储容量可以设置为32个页表项,在待寻址线程进行寻址之前,可将待寻址线程对应的备用缓存器中的全部页表项存储至预取缓存器PB中,并删除预取缓存器PB中当前存储的数据。其中,旁路转换缓存器和预取缓存器PB可采用内容可寻址的存储器(Content Addressable Memory,简称CAM)完成虚拟地址VA的比较,但由于增大预取缓存器PB的存储容量会增大芯片功耗,因此可选择存储容量较小的预取缓存器PB,例如存储容量为8个页表项的预取缓存器PB,则在待寻址线程进行寻址之前,可将待寻址线程对应的备用缓存器中存储时间最短的8个页表项存储至预取缓存器PB中,并删除预取缓存器PB中当前存储的数据。
S205,接收第二线程发送的内存寻址请求消息,内存寻址请求消息中携带虚拟地址。
具体的,接收待寻址线程,即第二线程,发送的内存寻址请求消息,该内存寻址请求消息中携带待寻址的虚拟地址VA。
S206,根据虚拟地址在旁路转换缓存器和预取缓存器存储的页表项中查询虚拟地址对应的物理地址。
这里根据在旁路转换缓存器和预取缓存器PB中的寻址结果,可以选择执行以下步骤S207、S208或S209。
S207:若旁路转换缓存器中存在与虚拟地址对应的第一物理地址,则通过第一物理地址访问内存进行数据存取。
S208:若旁路转换缓存器中不存在与虚拟地址对应的第一物理地址,且预取缓存器中存在与虚拟地址对应的第二物理地址,则通过第二物理地址访问内存进行数据存取,并将预取缓存器中存储的虚拟地址和第二物理地址对应的页表项存储至旁路转换缓存器中,并删除预取缓存器中存储的虚拟地址和第二物理地址对应的页表项。
其中,若备用缓存器中存储的第二线程的页表项的数目大于预取缓存器的存储容量,则将备用缓存器中存储的第二线程的页表项中除预取缓存器中存储的页表项之外的一个页表项存储至预取缓存器中。
S209:若旁路转换缓存器中不存在与虚拟地址对应的第一物理地址,且预取缓存器中不存在与虚拟地址对应的第二物理地址,则在内存中查找与虚拟地址对应的第三物理地址,并将在内存中查找到的与虚拟地址和第三物理地址对应的页表项存储至旁路转换缓存器中。
具体的,图5为根据虚拟地址VA进行内存物理地址寻址的示意图,如图5所示,根据虚拟地址VA,可以同时在旁路转换缓存器和预取缓存器PB存储的页表项中进行查询。
当旁路转换缓存器中存在与该虚拟地址VA对应的物理地址时,即当旁路转换缓存器中的TLB命中(TLB-Hit)时,不管预取缓存器PB中是否存在与该虚拟地址VA对应的物理地址,即预取缓存器PB命中(PB-Hit)或未命中(PB-Miss),都根据在旁路转换缓存器中查找到的物理地址,即第一物理地址PA1,进行数据存取。
当旁路转换缓存器中不存在与该虚拟地址VA对应的物理地址,即当旁路转换缓存器中的TLB未命中(TLB-Miss),但预取缓存器PB中存在与该虚拟地址VA对应的物理地址时,即预取缓存器PB命中(PB-Hit)时,则根据在预取缓存器PB中查找到的物理地址,即第二物理地址PA2,进行数据存取,并将查找到的页表项即命中的页表项存储至旁路转换缓存器的TLB中。其中,当预取缓存器PB只存储了备用缓存器中部分第二线程的页表项时,例如上面所述预取缓存器PB中只存储了备用缓存器中存储时间最短的8个第二线程的页表项,则在将预取缓存器PB中命中的页表项存储至TLB中后,可以从备用缓存器中取出下一个存储时间较短的第二线程的页表项存储至预取缓存器PB中。
当旁路转换缓存器和预取缓存器PB中均不存在与虚拟地址VA对应的物理地址时,即均未命中(TLB-Miss且PB-Miss)时,则根据该虚拟地址VA和对应的线程标识通过页表扫描单元到内存中查找与该虚拟地址VA对应的物理地址,即第三物理地址PA3,并根据查找到的第三物理地址PA3进行数据存取,同时将查找到的页表项即命中的页表项以及对应的线程标识存储至旁路转换缓存器的TLB中。
其中,对于步骤S208或S209:
若旁路转换缓存器中存储的页表项的数目超过自身的存储容量,则将旁路转换缓存器中设定时间内未被查询的页表项存储至备用缓存器中,并删除旁路转换缓存器中设定时间内未被查询的页表项。
具体的,当旁路转换缓存器中存储的页表项的数目超过自身的存储容量时,优先将命中率最低的页表项,即设定时间内未命中的页表项存储至备用缓存器中,并删除该设定时间内未命中的页表项。
若备用缓存器中存储的页表项的数目超过自身的存储容量,则删除备用缓存器中存储时间最长的页表项。
具体的,由于备用缓存器中的页表项存储时间越长,命中的几率越小,因此对备用缓存器可以采取“先入先出(First Input First Output,简称FIFO)”的存储模式,即当备用缓存器中存储的页表项的数目超过自身的存储容量时,优先删除存储时间最长的页表项。
本实施例提供的内存物理地址查询方法,根据待寻址第二线程的虚拟地址在旁路转换缓存器和预取缓存器中同时进行查询,且预取缓存器中存储有旁路转换缓存器中设定时间内未被查询的第二线程的页表项,从而提高对虚拟地址对应的物理地址的查询命中几率,缩短寻址时间。
图6为本发明提供的内存物理地址查询装置一个实施例的结构示意图。如图6所示,本实施例中的内存物理地址查询装置60为执行上述内存物理地址查询方法的特定主体,具体可以包括:确定模块61、执行模块62接收模块63和查询模块64,其中:
确定模块61,用于根据预设的线程切换策略,确定未来设定时间内内存寻址操作由第一线程变更为第二线程。
具体的,线程切换策略中包括了在终端设备运行的各时间段内,采用哪些线程来执行内存寻址操作。本发明实施例中,第一线程即为前一时间段内执行内存寻址操作的线程,第二线程为在第一线程之后执行内存寻址操作的线程,即待寻址线程。
执行模块62,用于将备用缓存器中存储的第二线程的页表项存储至预取缓存器中,备用缓存器中存储旁路转换缓存器存储的页表缓存TLB中设定时间内未被查询的页表项。
具体的,这里根据备用缓存器中存储的第二线程的页表项的数目和预取缓存器PB的存储容量之间的关系分为以下两种情况:
情况一:若备用缓存器中存储的第二线程的页表项的数目小于或等于预取缓存器的存储容量,则将备用缓存器中存储的所有第二线程的页表项存储至预取缓存器中,并覆盖预取缓存器的当前存储数据;
情况二:若备用缓存器中存储的第二线程的页表项的数目大于预取缓存器的存储容量,则将备用缓存器中存储的与预取缓存器的存储容量相等数目的第二线程的页表项存储至预取缓存器中,并覆盖预取缓存器的当前存储数据;
具体的,根据确定模块61确定的待寻址的线程,即第二线程,将备用缓存器中存储的第二线程的部分或全部页表项存储至预取缓存器PB中,且该备用缓存器中存储的是旁路转换缓存器存储的页表缓存TLB中设定时间内未被查询的页表项。可选的,备用缓存器中存储的页表项具体可以包括:虚拟地址和物理地址的对应关系以及对应的各线程的标识;类似的,旁路转换缓存器中存储的页表项具体也可以包括:虚拟地址和物理地址的对应关系以及对应的各线程的标识;预取缓存器PB中存储的页表项具体可以包括:虚拟地址和物理地址的对应关系以及对应的待寻址线程的标识。
此处需要说明的是,备用缓存器的数量可以是一个或多个,例如:每个线程可以对应一个备用缓存器,用于存储缓存旁路转换缓存器中该线程设定时间内未被查询的页表项。类似的,旁路转换缓存器和预取缓存器的数量都可以是一个或多个,例如:可以每个线程对应一个旁路转换缓存器和一个预取缓存器。
接收模块63,用于接收第二线程发送的内存寻址请求消息,内存寻址请求消息中携带虚拟地址。
具体的,接收待寻址线程,即第二线程,发送的内存寻址请求消息,该内存寻址请求消息中携带待寻址的虚拟地址VA。
查询模块64,用于根据虚拟地址在旁路转换缓存器和预取缓存器存储的页表项中查询虚拟地址对应的物理地址。
具体的,根据虚拟地址VA,可以同时在旁路转换缓存器和预取缓存器PB存储的页表项中进行查询,这里根据在旁路转换缓存器和预取缓存器PB中的寻址结果可以分为以下三种情况:
情况一:若旁路转换缓存器中存在与虚拟地址对应的第一物理地址,则通过第一物理地址访问内存进行数据存取。
具体的,当旁路转换缓存器中存在与该虚拟地址VA对应的物理地址时,不管预取缓存器PB中是否存在与该虚拟地址VA对应的物理地址,都根据在旁路转换缓存器中查找到的物理地址,即第一物理地址,进行数据存取。
情况二:若旁路转换缓存器中不存在与虚拟地址对应的第一物理地址,且预取缓存器中存在与虚拟地址对应的第二物理地址,则通过第二物理地址访问内存进行数据存取,并将预取缓存器中存储的虚拟地址和第二物理地址对应的页表项存储至旁路转换缓存器中,并删除预取缓存器中存储的虚拟地址和第二物理地址对应的页表项。
其中,若备用缓存器中存储的第二线程的页表项的数目大于预取缓存器的存储容量,且旁路转换缓存器中不存在与虚拟地址对应的第一物理地址,预取缓存器中存在与虚拟地址对应的第二物理地址,则将备用缓存器中存储的第二线程的页表项中除预取缓存器中存储的页表项之外的一个页表项存储至预取缓存器中。
具体的,当旁路转换缓存器中不存在与该虚拟地址VA对应的物理地址,但预取缓存器PB中存在与该虚拟地址VA对应的物理地址时,则根据在预取缓存器PB中查找到的物理地址,即第二物理地址,进行数据存取,并将查找到的页表项即命中的页表项存储至旁路转换缓存器的TLB中。当预取缓存器PB只存储了备用缓存器中部分第二线程的页表项时,在将预取缓存器PB中命中的页表项存储至TLB中后,可以从备用缓存器中取出一个页表项存储至预取缓存器PB中。
情况三:若旁路转换缓存器中不存在与虚拟地址对应的第一物理地址,且预取缓存器中不存在与虚拟地址对应的第二物理地址,则在内存中查找与虚拟地址对应的第三物理地址,并将在内存中查找到的与虚拟地址和第三物理地址对应的页表项存储至旁路转换缓存器中。
具体的,当旁路转换缓存器和预取缓存器PB中均不存在与虚拟地址VA对应的物理地址时,即均未命中时,则需到内存中查找与该虚拟地址VA对应的物理地址,即第三物理地址,并将查找到的页表项即命中的页表项存储至旁路转换缓存器的TLB中。
进一步的,执行模块62还可以用于:
在将备用缓存器中存储的第二线程的页表项存储至预取缓存器中之前,若旁路转换缓存器中存储的页表项的数目超过自身的存储容量,则将旁路转换缓存器中设定时间内未被查询的页表项存储至备用缓存器中,并删除旁路转换缓存器中设定时间内未被查询的页表项。
具体的,当旁路转换缓存器中存储的页表项的数目超过自身的存储容量时,优先将命中率最低的页表项,即设定时间内未命中的页表项存储至备用缓存器中,并删除该设定时间内未命中的页表项。
进一步的,执行模块62还可以用于:
在将旁路转换缓存器中设定时间内未被查询的页表项存储至备用缓存器中之后,若备用缓存器中存储的页表项的数目超过自身的存储容量,则删除备用缓存器中存储时间最长的页表项。
具体的,由于备用缓存器中的页表项存储时间越长,命中的几率越小,因此对备用缓存器可以采取“先入先出FIFO”的存储模式,即当备用缓存器中存储的页表项的数目超过自身的存储容量时,优先删除存储时间最长的页表项。
本实施例提供的内存物理地址查询装置,根据待寻址第二线程的虚拟地址在旁路转换缓存器和预取缓存器中同时进行查询,且预取缓存器中存储有旁路转换缓存器中设定时间内未被查询的第二线程的页表项,从而提高对虚拟地址对应的物理地址的查询命中几率,缩短寻址时间。
图7为本发明提供的内存物理地址查询装置又一个实施例的结构示意图。如图7所示,本实施例的内存物理地址查询装置包括:存储器71、旁路转换缓存器72、备用缓存器73、预取缓存器74和处理器75,其中:
存储器71,用于存储指令;
旁路转换缓存器72,用于存储页表缓存TLB;
备用缓存器73,用于存储旁路转换缓存器存储的TLB中设定时间内未被查询的页表项;
预取缓存器74,用于存储备用缓存器中存储的对应线程的页表项;
处理器75,用于运行存储器中存储的指令以执行如图1或图2所示的内存物理地址查询方法。
具体的,存储器71可能包含高速RAM存储器,也可能还包含非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器71可选的可以包含至少一个存储装置。存储器71存储了指令,当内存物理地址查询装置运行时,处理器75与存储器71之间通信,处理器75执行指令使得内存物理地址查询装置可以执行本发明各实施例所提供的内存物理地址查询方法。
备用缓存器73中可以存储有包括虚拟地址和物理地址的对应关系的页表项以及对应的各线程的标识,旁路转换缓存器72中可以存储有包括虚拟地址和物理地址的对应关系的页表项以及对应的各线程的标识,预取缓存器74中可以存储有包括虚拟地址和物理地址的对应关系的页表项以及对应的待寻址线程的标识。
此处需要说明的是,备用缓存器73的数量可以是一个或多个,例如:每个线程可以对应一个备用缓存器,用于存储缓存旁路转换缓存器中该线程设定时间内未被查询的页表项。类似的,旁路转换缓存器72和预取缓存器74的数量都可以是一个或多个,例如:可以每个线程对应一个旁路转换缓存器和一个预取缓存器。
本实施例中的处理器可能是一种集成电路芯片,具有信号处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。上述处理器可以是微处理器或者上述处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
本发明实施例还提供一种芯片,该芯片用于进行内存物理地址查询,该芯片可以包括上述的处理器。
本实施例提供的内存物理地址查询装置,通过处理器75执行存储器71存储的指令,根据待寻址第二线程的虚拟地址在旁路转换缓存器和预取缓存器中同时进行查询,且预取缓存器中存储有旁路转换缓存器中设定时间内未被查询的第二线程的页表项,从而提高对虚拟地址对应的物理地址的查询命中几率,缩短寻址时间。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (19)

1.一种内存物理地址查询方法,其特征在于,包括:
根据预设的线程切换策略,确定未来设定时间内内存寻址操作由第一线程变更为第二线程;
将备用缓存器中存储的所述第二线程的页表项存储至预取缓存器中,所述备用缓存器中存储旁路转换缓存器存储的页表缓存TLB中设定时间内未被查询的页表项;
接收所述第二线程发送的内存寻址请求消息,所述内存寻址请求消息中携带虚拟地址;
根据所述虚拟地址在所述旁路转换缓存器和所述预取缓存器存储的页表项中查询所述虚拟地址对应的物理地址。
2.根据权利要求1所述的方法,其特征在于,所述根据所述虚拟地址在所述旁路转换缓存器和所述预取缓存器存储的页表项中查询所述虚拟地址对应的物理地址,包括:
若所述旁路转换缓存器中存在与所述虚拟地址对应的第一物理地址,则通过所述第一物理地址访问内存进行数据存取;或者,
若所述旁路转换缓存器中不存在与所述虚拟地址对应的第一物理地址,且所述预取缓存器中存在与所述虚拟地址对应的第二物理地址,则通过所述第二物理地址访问所述内存进行数据存取。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述旁路转换缓存器中不存在与所述虚拟地址对应的第一物理地址,且所述预取缓存器中不存在与所述虚拟地址对应的第二物理地址,则在所述内存中查找与所述虚拟地址对应的第三物理地址。
4.根据权利要求2或3所述的方法,其特征在于,若所述旁路转换缓存器中不存在与所述虚拟地址对应的第一物理地址,且所述预取缓存器中存在与所述虚拟地址对应的第二物理地址,则所述方法还包括:
将所述预取缓存器中存储的所述虚拟地址和所述第二物理地址对应的页表项存储至所述旁路转换缓存器中,并删除所述预取缓存器中存储的所述虚拟地址和所述第二物理地址对应的页表项。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
将在内存中查找到的与所述虚拟地址和所述第三物理地址对应的页表项存储至所述旁路转换缓存器中。
6.根据权利要求1-3任一项所述的方法,其特征在于,所述将备用缓存器中存储的所述第二线程的页表项存储至预取缓存器中之前,所述方法还包括:
若所述旁路转换缓存器中存储的页表项的数目超过自身的存储容量,则将所述旁路转换缓存器中所述设定时间内未被查询的页表项存储至所述备用缓存器中,并删除所述旁路转换缓存器中所述设定时间内未被查询的页表项。
7.根据权利要求6所述的方法,其特征在于,所述将所述旁路转换缓存器中所述设定时间内未被查询的页表项存储至所述备用缓存器中之后,所述方法还包括:
若所述备用缓存器中存储的页表项的数目超过自身的存储容量,则删除所述备用缓存器中存储时间最长的页表项。
8.根据权利要求1-3任一项所述的方法,其特征在于,所述将备用缓存器中存储的所述第二线程的页表项存储至预取缓存器中,包括:
若所述备用缓存器中存储的所述第二线程的页表项的数目小于或等于所述预取缓存器的存储容量,则将所述备用缓存器中存储的所有所述第二线程的页表项存储至所述预取缓存器中,并覆盖所述预取缓存器的当前存储数据;或者,
若所述备用缓存器中存储的所述第二线程的页表项的数目大于所述预取缓存器的存储容量,则将所述备用缓存器中存储的与所述预取缓存器的存储容量相等数目的所述第二线程的页表项存储至所述预取缓存器中,并覆盖所述预取缓存器的当前存储数据。
9.根据权利要求8所述的方法,其特征在于,若所述备用缓存器中存储的所述第二线程的页表项的数目大于所述预取缓存器的存储容量,则所述方法还包括:
若所述旁路转换缓存器中不存在与所述虚拟地址对应的第一物理地址,且所述预取缓存器中存在与所述虚拟地址对应的第二物理地址,则将所述备用缓存器中存储的所述第二线程的页表项中除所述预取缓存器中存储的页表项之外的一个页表项存储至所述预取缓存器中。
10.一种内存物理地址查询装置,其特征在于,包括:
确定模块,用于根据预设的线程切换策略,确定未来设定时间内内存寻址操作由第一线程变更为第二线程;
执行模块,用于将备用缓存器中存储的所述第二线程的页表项存储至预取缓存器中,所述备用缓存器中存储旁路转换缓存器存储的页表缓存TLB中设定时间内未被查询的页表项;
接收模块,接收所述第二线程发送的内存寻址请求消息,所述内存寻址请求消息中携带虚拟地址;
查询模块,根据所述虚拟地址在所述旁路转换缓存器和所述预取缓存器存储的页表项中查询所述虚拟地址对应的物理地址。
11.根据权利要求10所述的装置,其特征在于,所述查询模块具体用于:
若所述旁路转换缓存器中存在与所述虚拟地址对应的第一物理地址,则通过所述第一物理地址访问内存进行数据存取;或者,
若所述旁路转换缓存器中不存在与所述虚拟地址对应的第一物理地址,且所述预取缓存器中存在与所述虚拟地址对应的第二物理地址,则通过所述第二物理地址访问所述内存进行数据存取。
12.根据权利要求11所述的装置,其特征在于,所述查询模块还用于:
若所述旁路转换缓存器中不存在与所述虚拟地址对应的第一物理地址,且所述预取缓存器中不存在与所述虚拟地址对应的第二物理地址,则在所述内存中查找与所述虚拟地址对应的第三物理地址。
13.根据权利要求11或12所述的装置,其特征在于,所述查询模块还用于:
若所述旁路转换缓存器中不存在与所述虚拟地址对应的第一物理地址,且所述预取缓存器中存在与所述虚拟地址对应的第二物理地址,则将所述预取缓存器中存储的所述虚拟地址和所述第二物理地址对应的页表项存储至所述旁路转换缓存器中,并删除所述预取缓存器中存储的所述虚拟地址和所述第二物理地址对应的页表项。
14.根据权利要求12所述的装置,其特征在于,所述查询模块还用于:
将在内存中查找到的与所述虚拟地址和所述第三物理地址对应的页表项存储至所述旁路转换缓存器中。
15.根据权利要求10-12任一项所述的装置,其特征在于,所述执行模块还用于:
在所述将备用缓存器中存储的所述第二线程的页表项存储至预取缓存器中之前,若所述旁路转换缓存器中存储的页表项的数目超过自身的存储容量,则将所述旁路转换缓存器中所述设定时间内未被查询的页表项存储至所述备用缓存器中,并删除所述旁路转换缓存器中所述设定时间内未被查询的页表项。
16.根据权利要求15所述的装置,其特征在于,所述执行模块还用于:
在所述将所述旁路转换缓存器中所述设定时间内未被查询的页表项存储至所述备用缓存器中之后,若所述备用缓存器中存储的页表项的数目超过自身的存储容量,则删除所述备用缓存器中存储时间最长的页表项。
17.根据权利要求10-12任一项所述的装置,其特征在于,所述执行模块具体用于:
若所述备用缓存器中存储的所述第二线程的页表项的数目小于或等于所述预取缓存器的存储容量,则将所述备用缓存器中存储的所有所述第二线程的页表项存储至所述预取缓存器中,并覆盖所述预取缓存器的当前存储数据;或者,
若所述备用缓存器中存储的所述第二线程的页表项的数目大于所述预取缓存器的存储容量,则将所述备用缓存器中存储的与所述预取缓存器的存储容量相等数目的所述第二线程的页表项存储至所述预取缓存器中,并覆盖所述预取缓存器的当前存储数据。
18.根据权利要求17所述的装置,其特征在于,所述执行模块还用于:
若所述备用缓存器中存储的所述第二线程的页表项的数目大于所述预取缓存器的存储容量,且所述旁路转换缓存器中不存在与所述虚拟地址对应的第一物理地址,所述预取缓存器中存在与所述虚拟地址对应的第二物理地址,则将所述备用缓存器中存储的所述第二线程的页表项中除所述预取缓存器中存储的页表项之外的一个页表项存储至所述预取缓存器中。
19.一种内存物理地址查询装置,其特征在于,包括:存储器、旁路转换缓存器、备用缓存器、预取缓存器和处理器;
所述存储器,用于存储指令;
所述旁路转换缓存器,用于存储页表缓存TLB;
所述备用缓存器,用于存储所述旁路转换缓存器存储的所述TLB中设定时间内未被查询的页表项;
所述预取缓存器,用于存储所述备用缓存器中存储的对应线程的页表项;
所述处理器,用于运行所述存储器中存储的所述指令以执行如权利要求1至9任一项所述的内存物理地址查询方法。
CN201310364417.1A 2013-08-20 2013-08-20 内存物理地址查询方法和装置 Active CN104424117B (zh)

Priority Applications (7)

Application Number Priority Date Filing Date Title
CN201710708313.6A CN107608912B (zh) 2013-08-20 2013-08-20 内存物理地址查询方法和装置
CN201310364417.1A CN104424117B (zh) 2013-08-20 2013-08-20 内存物理地址查询方法和装置
PCT/CN2014/083875 WO2015024451A1 (zh) 2013-08-20 2014-08-07 内存物理地址查询方法和装置
KR1020167005743A KR101768828B1 (ko) 2013-08-20 2014-08-07 메모리 물리 어드레스 조회 방법 및 장치
JP2016535319A JP6198952B2 (ja) 2013-08-20 2014-08-07 物理メモリアドレスを問い合わせる方法及び装置
EP14838503.2A EP3023878B1 (en) 2013-08-20 2014-08-07 Memory physical address query method and apparatus
US15/047,938 US10114762B2 (en) 2013-08-20 2016-02-19 Method and apparatus for querying physical memory address

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310364417.1A CN104424117B (zh) 2013-08-20 2013-08-20 内存物理地址查询方法和装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201710708313.6A Division CN107608912B (zh) 2013-08-20 2013-08-20 内存物理地址查询方法和装置

Publications (2)

Publication Number Publication Date
CN104424117A CN104424117A (zh) 2015-03-18
CN104424117B true CN104424117B (zh) 2017-09-05

Family

ID=52483060

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201710708313.6A Active CN107608912B (zh) 2013-08-20 2013-08-20 内存物理地址查询方法和装置
CN201310364417.1A Active CN104424117B (zh) 2013-08-20 2013-08-20 内存物理地址查询方法和装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201710708313.6A Active CN107608912B (zh) 2013-08-20 2013-08-20 内存物理地址查询方法和装置

Country Status (6)

Country Link
US (1) US10114762B2 (zh)
EP (1) EP3023878B1 (zh)
JP (1) JP6198952B2 (zh)
KR (1) KR101768828B1 (zh)
CN (2) CN107608912B (zh)
WO (1) WO2015024451A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10503661B2 (en) 2014-05-21 2019-12-10 Qualcomm Incorporated Providing memory bandwidth compression using compressed memory controllers (CMCs) in a central processing unit (CPU)-based system
US10838862B2 (en) 2014-05-21 2020-11-17 Qualcomm Incorporated Memory controllers employing memory capacity compression, and related processor-based systems and methods
US9740621B2 (en) * 2014-05-21 2017-08-22 Qualcomm Incorporated Memory controllers employing memory capacity and/or bandwidth compression with next read address prefetching, and related processor-based systems and methods
US9672159B2 (en) * 2015-07-02 2017-06-06 Arm Limited Translation buffer unit management
CN109684238A (zh) * 2018-12-19 2019-04-26 湖南国科微电子股份有限公司 一种固态硬盘映射关系的存储方法、读取方法及固态硬盘
CN111552653B (zh) * 2020-05-14 2021-01-29 上海燧原科技有限公司 页表的读取方法、装置、设备及计算机存储介质
CN114238167B (zh) * 2021-12-14 2022-09-09 海光信息技术股份有限公司 信息预取方法、处理器、电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101055533A (zh) * 2007-05-28 2007-10-17 中兴通讯股份有限公司 一种多线程处理器动态内存管理系统及方法
CN101833440A (zh) * 2010-04-30 2010-09-15 西安交通大学 编译器支持下的推测多线程内存数据同步执行方法及装置
CN102369520A (zh) * 2011-09-02 2012-03-07 华为技术有限公司 虚拟内存区域的查询、遍历方法及装置
CN102708211A (zh) * 2012-05-30 2012-10-03 福建星网视易信息系统有限公司 一种基于多线程检索并加载数据的方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5998367A (ja) * 1982-11-26 1984-06-06 Nec Corp アドレス変換バツフア方式
JPH0652058A (ja) * 1992-07-30 1994-02-25 Matsushita Electric Ind Co Ltd アドレス変換装置
US7181590B2 (en) * 2003-08-28 2007-02-20 Intel Corporation Method for page sharing in a processor with multiple threads and pre-validated caches
US7558939B2 (en) * 2005-03-08 2009-07-07 Mips Technologies, Inc. Three-tiered translation lookaside buffer hierarchy in a multithreading microprocessor
US8219780B2 (en) * 2005-09-16 2012-07-10 Hewlett-Packard Development Company, L.P. Mitigating context switch cache miss penalty
US8213393B2 (en) * 2006-08-21 2012-07-03 Citrix Systems, Inc. Methods for associating an IP address to a user via an appliance
US8868847B2 (en) * 2009-03-11 2014-10-21 Apple Inc. Multi-core processor snoop filtering
US8161246B2 (en) * 2009-03-30 2012-04-17 Via Technologies, Inc. Prefetching of next physically sequential cache line after cache line that includes loaded page table entry
US8397049B2 (en) * 2009-07-13 2013-03-12 Apple Inc. TLB prefetching
JP5428617B2 (ja) * 2009-07-28 2014-02-26 富士通株式会社 プロセッサ及び演算処理方法
US8880844B1 (en) * 2010-03-12 2014-11-04 Trustees Of Princeton University Inter-core cooperative TLB prefetchers
US20140108766A1 (en) * 2012-10-17 2014-04-17 Advanced Micro Devices, Inc. Prefetching tablewalk address translations
US9349386B2 (en) * 2013-03-07 2016-05-24 Analog Device Global System and method for processor wake-up based on sensor data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101055533A (zh) * 2007-05-28 2007-10-17 中兴通讯股份有限公司 一种多线程处理器动态内存管理系统及方法
CN101833440A (zh) * 2010-04-30 2010-09-15 西安交通大学 编译器支持下的推测多线程内存数据同步执行方法及装置
CN102369520A (zh) * 2011-09-02 2012-03-07 华为技术有限公司 虚拟内存区域的查询、遍历方法及装置
CN102708211A (zh) * 2012-05-30 2012-10-03 福建星网视易信息系统有限公司 一种基于多线程检索并加载数据的方法

Also Published As

Publication number Publication date
WO2015024451A1 (zh) 2015-02-26
EP3023878A1 (en) 2016-05-25
CN104424117A (zh) 2015-03-18
US10114762B2 (en) 2018-10-30
US20160170904A1 (en) 2016-06-16
JP2016528640A (ja) 2016-09-15
KR101768828B1 (ko) 2017-08-16
EP3023878B1 (en) 2019-01-30
CN107608912B (zh) 2020-10-16
EP3023878A4 (en) 2016-07-06
KR20160040665A (ko) 2016-04-14
JP6198952B2 (ja) 2017-09-20
CN107608912A (zh) 2018-01-19

Similar Documents

Publication Publication Date Title
CN104424117B (zh) 内存物理地址查询方法和装置
CN105095116B (zh) 缓存替换的方法、缓存控制器和处理器
US5537572A (en) Cache controller and method for dumping contents of a cache directory and cache data random access memory (RAM)
US9104327B2 (en) Fast translation indicator to reduce secondary address table checks in a memory device
US6430655B1 (en) Scratchpad RAM memory accessible in parallel to a primary cache
US20140304453A1 (en) Effective Caching for Demand-based Flash Translation Layers in Large-Scale Flash Memory Storage Systems
US7793070B2 (en) Processing system implementing multiple page size memory organization with multiple translation lookaside buffers having differing characteristics
US9063862B2 (en) Expandable data cache
CN107818052B (zh) 内存访问方法及装置
US9672161B2 (en) Configuring a cache management mechanism based on future accesses in a cache
CN104166634A (zh) 一种固态盘系统中的映射表缓存管理方法
CN103164346A (zh) Lba位图使用
US11226904B2 (en) Cache data location system
CN108459975B (zh) 用于有效使用地址转换缓存的技术
US10628318B2 (en) Cache sector usage prediction
JP6088951B2 (ja) キャッシュメモリシステムおよびプロセッサシステム
US20100011165A1 (en) Cache management systems and methods
US6948032B2 (en) Method and apparatus for reducing the effects of hot spots in cache memories
US8661169B2 (en) Copying data to a cache using direct memory access
JP3974131B2 (ja) キャッシュメモリを制御するための方法と装置
JP2001216195A (ja) 分数的二進寸法型キャッシュ
US9043557B1 (en) Heterogeneous memory system
US8756362B1 (en) Methods and systems for determining a cache address
Han Fast erase algorithm using flash translation layer in NAND-type flash memory
US20050243640A1 (en) Storing code in fragments

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