CN104133780A - 一种跨页预取方法、装置及系统 - Google Patents
一种跨页预取方法、装置及系统 Download PDFInfo
- Publication number
- CN104133780A CN104133780A CN201310159064.1A CN201310159064A CN104133780A CN 104133780 A CN104133780 A CN 104133780A CN 201310159064 A CN201310159064 A CN 201310159064A CN 104133780 A CN104133780 A CN 104133780A
- Authority
- CN
- China
- Prior art keywords
- page
- physical
- address
- virtual
- physical 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1021—Hit rate improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/602—Details relating to cache prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6026—Prefetching based on access pattern detection, e.g. stride based prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
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
本发明实施例提供一种跨页预取方法、装置及系统,能够提高预取设备的预取命中率,进而使得访问内存的效率提高。其中,所述方法包括:接收高速缓存寄存器发送的物理地址缺失的指示消息,所述指示消息携带被映射的第一物理地址、所述第一物理地址所属的第一物理页的连续信息;根据所述第一物理地址和预取设备中存储的步长,获取预取地址;若所述预取地址所属的物理页与所述第一物理页的页号不同,且根据所述第一物理页的连续信息确定所述第一物理页连续,预取所述预取地址中的数据。本发明适用于计算机领域。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种跨页预取方法、装置及系统。
背景技术
随着时代的发展,CPU(Central Processing Unit,中央处理器)和内存的性能差异越来越多,很多技术被开发出来以试图减小访问内存所带来的延迟,比如使用流水线,多线程等等,其中数据预取也是其中的一个技术。
数据预取是在处理器访问内存前,将后续需要的数据A提前从内存中取出来存储到Cache(高速缓冲寄存器)中的一种方法,这样当CPU访问A时,因为A已经在Cache中,所以可以直接进行访问,减少了CPU访问内存查找A所带来的延迟。
应用程序在执行过程中调用的指令或数据中使用的地址都是虚拟地址。为了能够从内存中访问对应的指令或数据,该虚拟地址需要映射为对应的物理地址。但是,虚拟地址和物理地址转换的过程中,连续的虚拟页可能被映射到连续的物理页,也可能被映射到不连续的物理页。
现有的预取设备在判断出需要跨页预取时,便停止预取,这样便会阻止连续的虚拟页被映射到不连续的物理时跨页预取无效的情况。但是实际上,有50%-70%的虚拟页映射的物理页实际上是连续的,即确定的预取地址是有效的。基于现有技术的方法,在阻止跨页预取无效时,同时会阻止跨页预取有效的情况,导致预取设备的预取命中率低,进而会使得访问内存的效率降低。
发明内容
本发明的实施例提供一种跨页预取方法、装置及系统,能够提高预取设备的预取命中率,进而使得访问内存的效率提高。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种跨页预取方法,所述方法包括:
接收高速缓冲寄存器发送的物理地址缺失的指示消息,所述指示消息携带被映射的第一物理地址、所述第一物理地址所属的第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
根据所述第一物理地址和预取设备中存储的步长,获取预取地址;
若所述预取地址所属的物理页与所述第一物理页的页号不同,且根据所述第一物理页的连续信息确定所述第一物理页连续,则
预取所述预取地址中的数据。
在第一种可能的实现方式中,根据所述第一方面,在所述接收高速缓存寄存器发送的物理地址缺失的指示消息之后,所述方法还包括:
将所述指示消息携带的所述第一物理地址所属的第一物理页的连续信息存储在预取信息表中第一物理地址对应的表项中,其中,所述预取信息表存储在所述预取设备中。
在第二种可能的实现方式中,根据所述第一方面,在所述根据所述第一物理地址和预取设备中存储的步长,获取预取地址之前,所述方法还包括:
根据压缩算法和所述第一物理地址,获取所述第一物理地址的第一索引信息;
若预取信息表中第一索引信息对应的表项中包含的物理页的页号与所述第一物理页的页号匹配,判断所述预取设备的预取机制是否训练完成,其中,所述预取信息表存储在所述预取设备中;
若所述预取机制训练完成,执行获取预取地址的步骤;
若预取信息表中第一索引信息对应的表项中包含的物理页的页号与所述第一物理页的页号不匹配,将所述第一物理页的页号、所述第一物理页的连续信息存储在所述预取信息表中第一索引信息对应的表项中。
在第三种可能的实现方式中,根据所述第二种可能的实现方式,所述第一物理地址的第一索引信息具体包括下列信息中的至少之一:
所述第一物理地址所属的第一物理页的页号、
所述第一物理地址所属的第一物理页的页号的压缩值、
所述第一物理地址所属的第一物理页的页号的哈希值。
第二方面,提供了一种跨页预取方法,所述方法包括:
接收申请内存空间的第一指示消息,其中,所述第一指示消息携带所述内存空间的容量信息;
根据所述内存空间的容量信息,分配物理内存空间和虚拟内存空间;
建立所述虚拟内存空间与所述物理内存空间的映射关系,其中,所述映射关系中包含所述虚拟内存空间包括的第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
发送所述映射关系至存储器,以使得所述存储器存储所述映射关系。
第三方面,提供了一种跨页预取方法,所述方法包括:
发送第二指示消息给存储器,其中,所述第二指示消息携带第一虚拟地址,以使得所述存储器根据所述第一虚拟地址,发送所述第一虚拟地址对应的映射关系给所述旁路转换缓冲器TLB,所述映射关系中包含所述第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
接收所述存储器发送的所述映射关系;
根据所述映射关系,获取所述第一虚拟地址对应的第一物理地址;
发送所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息至高速缓冲寄存器。
第四方面,提供了一种跨页预取的方法,所述方法包括:
接收旁路转换缓冲器TLB发送的第一物理地址、所述第一物理地址所属的第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
若高速缓冲寄存器未存储所述第一物理地址的数据,发送所述第一物理地址至存储器,以使得处理器从所述存储器获取所述第一物理地址的数据;
发送物理地址缺失的指示消息至预取设备,所述指示消息携带所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息。
第五方面,提供了一种预取设备,所述预取设备包括接收单元、获取单元、预取单元;
所述接收单元,用于接收高速缓冲寄存器发送的物理地址缺失的指示消息,所述指示消息携带被映射的第一物理地址、所述第一物理地址所属的第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
所述获取单元,用于根据所述第一物理地址和预取设备中存储的步长,获取预取地址;
所述预取单元,用于若所述预取地址所属的物理页与所述第一物理页的页号不同,且根据所述第一物理页的连续信息确定所述第一物理页连续,则
预取所述预取地址中的数据。
在第一种可能的实现方式中,根据所述第五方面,所述预取设备还包括存储单元;
所述存储单元,用于在所述接收单元接收高速缓存寄存器发送的物理地址缺失的指示消息之后,将所述指示消息携带的所述第一物理地址所属的第一物理页的连续信息存储在预取信息表中第一物理地址对应的表项中,其中,所述预取信息表存储在所述预取设备中。
在第二种可能的实现方式中,根据所述第五方面,所述预取设备还包括判断单元、执行单元、存储单元;
所述获取单元,用于在所述根据所述第一物理地址和预取设备中存储的步长,获取预取地址之前,根据压缩算法和所述第一物理地址,获取所述第一物理地址的第一索引信息;
所述判断单元,用于若预取信息表中第一索引信息对应的表项中包含的物理页的页号与所述第一物理页的页号匹配,判断所述预取设备的预取机制是否训练完成,其中,所述预取信息表存储在所述预取设备中;
所述执行单元,用于若所述预取机制训练完成,执行获取预取地址的步骤;
所述存储单元,用于若预取信息表中第一索引信息对应的表项中包含的物理页的页号与所述第一物理页的页号不匹配,将所述第一物理页的页号、所述第一物理页的连续信息存储在所述预取信息表中第一索引信息对应的表项中。
在第三种可能的实现方式中,所述第一物理地址的第一索引信息具体包括下列信息中的至少之一:
所述第一物理地址所属的第一物理页的页号、
所述第一物理地址所属的第一物理页的页号的压缩值、
所述第一物理地址所属的第一物理页的页号的哈希值。
第六方面,提供了一种处理器,所述处理器包括接收单元、分配单元、建立单元、发送单元;
所述接收单元,用于接收申请内存空间的第一指示消息,其中,所述第一指示消息携带所述内存空间的容量信息;
所述分配单元,用于根据所述内存空间的容量信息,分配物理内存空间和虚拟内存空间;
所述建立单元,用于建立所述虚拟内存空间与所述物理内存空间的映射关系,其中,所述映射关系中包含所述虚拟内存空间包括的第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
所述发送单元,用于发送所述映射关系至存储器,以使得所述存储器存储所述映射关系。
第七方面,提供了一种旁路转换缓冲器TLB,所述TLB包括第一发送单元、接收单元、获取单元、第二发送单元;
所述第一发送单元,用于发送第二指示消息给存储器,其中,所述第二指示消息携带第一虚拟地址,以使得所述存储器根据所述第一虚拟地址,发送所述第一虚拟地址对应的映射关系给所述旁路转换缓冲器TLB,所述映射关系中包含所述第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
所述接收单元,用于接收所述存储器发送的所述映射关系;
所述获取单元,用于根据所述映射关系,获取所述第一虚拟地址对应的第一物理地址;
所述第二发送单元,用于发送所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息至高速缓冲寄存器。
第八方面,提供了一种高速缓冲寄存器,所述高速缓冲寄存器包括接收单元、第一发送单元、第二发送单元;
所述接收单元,用于接收旁路转换缓冲器TLB发送的第一物理地址、所述第一物理地址所属的第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
所述第一发送单元,用于若高速缓冲寄存器未存储所述第一物理地址的数据,发送所述第一物理地址至存储器,以使得处理器从所述存储器获取所述第一物理地址的数据;
所述第二发送单元,用于发送物理地址缺失的指示消息至预取设备,所述指示消息携带所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息。
第九方面,提供了一种跨页预取系统,所述跨页预取系统包括存储器、第五方面所述的预取设备、第六方面所述的处理器、第七方面所述的旁路转换缓冲器TLB以及第八方面所述的高速缓冲寄存器。
本发明实施例提供一种跨页预取方法、装置及系统。所述方法包括:处理器接收申请内存空间的第一指示消息;然后所述处理器根据所述第一指示消息携带的所述内存空间的容量信息,分配物理内存空间和虚拟内存空间,接着所述处理器建立所述虚拟内存空间与所述物理内存空间的映射关系,其中,所述映射关系中包含所述虚拟内存空间包括的第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;最后所述处理器发送所述映射关系至存储器。这样,当旁路转换缓冲器TLB发送第一虚拟地址对应的映射关系缺失的第二指示消息给存储器时,存储器可以将所述第一虚拟地址对应的包含第一物理页的连续信息的映射关系发送给所述TLB,以使得所述TLB接收所述包含第一物理页的连续信息的映射关系,并在第一虚拟地址和第一物理地址转换完成后,将所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息发送给高速缓冲寄存器。这样,在高速缓冲寄存器发生物理地址缺失时,所述连续信息可以跟随数据流进入预取设备,使得所述预取设备在预取机制训练完成,获取预取地址后,若所述预取地址所属的物理页与所述第一物理页的页号不同,且根据所述第一物理页的连续信息确定所述第一物理页连续,则预取所述预取地址中的数据,因此本发明解决了现有技术中在判断出跨页预取后,便停止预取导致的预取设备命中率低的问题,提升了预取设备的预取命中率,进而提升了访问内存的效率。
附图说明
图1为预取设备中的预取结构示意图;
图2为本发明实施例提供的一种跨页预取方法;
图3为本发明实施例提供的一种预取机制训练的方法;
图4为本发明实施例提供的另一种跨页预取方法;
图5为本发明实施例提供的又一种跨页预取方法;
图6为本发明实施例提供的又一种跨页预取方法;
图7为本发明实施例提供的一种跨页预取系统;
图8为本发明实施例提供的一种跨页预取系统中处理器与存储器的工作交互图;
图9为本发明实施例提供的一种跨页预取系统中存储器、旁路转换缓冲、高速缓冲寄存器、预取设备的工作交互图;
图10为本发明实施例提供的一种跨页预取系统中预取设备的工作流程图;
图11为一种跨页预取的实例示意图;
图12为本发明实施例提供的一种预取设备;
图13为本发明实施例提供的另一种预取设备;
图14为本发明实施例提供的又一种预取设备;
图15为本发明实施例提供的一种处理器;
图16为本发明实施例提供的一种旁路转换缓冲;
图17为本发明实施例提供的一种高速缓冲寄存器;
图18为本发明实施例提供的一种跨页预取系统。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了提高处理器执行指令或获取数据的速度,现有技术中通常采用预取技术提前将处理器要执行的指令或要获取的数据从存储器中预取到高速缓冲寄存器中。其中预取技术可以分为软件预取和硬件预取。
通过软件进行数据预取时,需要在程序代码中显式的添加预取指令,将后面要使用的数据,显式的进行预取。
通过硬件预取时,则会由专门的硬件实现,该硬件会根据当前访存地址的情况,和之前的访存地址的情况,训练出一套“预取机制”,然后预取设备会利用该“预取机制”,结合当前访存地址计算出预取地址,从而将预取地址处的数据提前从内存预取到高速缓冲寄存器cache中,该过程对于程序员或者编译器是透明的,图1即为一个常用的预取结构:
从图1可以看出,该预取结构中包含三个地址,分别是:当前访存地址、之前的访存地址、预取地址,另外该预取结构还存储了步长和预取设备的预取状态的信息。在获取预取地址时,首先将当前访存地址和之前的访存地址进行比较,得到步长,同时将计算出来的步长和之前保存在步长单元中的步长进行对比,若所述计算出来的步长和之前保存在步长单元中的步长一致,根据预取地址=当前访存地址+步长的关系计算出预取地址;若所述计算出来的步长和之前保存在步长单元中的步长不一致,适当更新步长和状态。
需要说明的是,预取分为基于物理地址的预取和基于虚拟地址的预取,若预取设备是基于虚拟地址的预取,考虑到虚拟地址的连续性,跨页预取是有效的,可是基于虚拟地址的预取,需要查找TLB(Translation lookaside buffer,旁路转换缓冲器),进行虚实转换,这需要以性能为代价,另外,某些预取设备访问不到TLB,所以文中所涉及的预取均是基于物理地址的硬件预取,基于虚拟地址的预取本文不加讨论。
实施例一、
本发明实施例提供一种跨页预取方法,具体如图2所示,所述方法包括:
201、接收高速缓冲寄存器发送的物理地址缺失的指示消息,所述指示消息携带被映射的第一物理地址、所述第一物理地址所属的第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址。
需要说明的是,通常在处理器没有从高速缓冲寄存器中命中指令或数据时,为了提高读取指令或数据的速度,高速缓冲寄存器通常会根据处理器访问的指令或数据的存储地址,从内存中获取对应的命令或数据,同时会向预取设备发送物理地址缺失的指示消息,指示预取设备从内存中预取处理器要访问的下一指令或数据,并存储到高速缓冲寄存器中。
其中,预取设备可以将所述指示消息携带的所述第一物理地址所属的第一物理页的连续信息存储在预取信息表中第一物理地址对应的表项中,其中,所述预取信息表存储在所述预取设备中。
当然,为了减少表项,所述第一物理地址可能是以某种索引形式存储在预取设备的预取信息表中,预取设备在接收到物理地址缺失的指示消息后,首先应该按照预取设备的预取信息表中存储的物理地址的索引形式,根据索引算法,获取所述第一物理地址对应的第一索引信息,然后查找所述预取设备中存储的预取信息表中包含的第一索引信息,进而获取所述第一物理地址的相关表项。其中,所述第一索引信息具体可以包括下列信息中的至少之一:
所述第一物理地址所属的第一物理页的页号、所述第一物理地址所属的第一物理页的页号的压缩值、所述第一物理地址所属的第一物理页的页号的哈希值。
例如A、所述第一索引信息为所述第一物理地址所属的第一物理页的页号的压缩值:
假设访存地址有32位,一个页大小为4kb,即该访存地址的高20位为页号,而低12位页内偏移,如第一物理地址(二进制表示)为:
1010,1010,1010,1010,1010,0011,0011,0011,
其中,页号为1010,1010,1010,1010,1010,
业内偏移为0011,0011,0011,
若以页号为第一索引信息,则预取设备中存储的索引信息2^20项;
此时,可以用压缩算法取出页号的几位作为索引信息,比如若要预取设备中存储的索引信息仅有128项,则可用压缩算法,将页号中的前7位作为索引值,即,此时取1010101作为索引信息。
例如B、所述第一索引信息为所述第一物理地址所属的第一物理页的页号的哈希值:
假设按公式(1)计算哈希值:
index=物理页号%128, (公式1)
其中,%表示取余。
当访存地址(二进制表示)为:
1010,1010,1010,1010,1010,0011,0011,0011时,
页号为1010,1010,1010,1010,1010,转化为十进制为699050,
根据公式(1)可得
index=699050%128=42,
即索引信息为42,用二进制表示为101010。
本发明实施例仅是示例性的给出几种第一索引信息的表示方法,当然,所述第一索引信息还可能存储其它的形式,本发明实施例对此不作具体限定。
具体的,所述预取信息表中第一索引信息对应的表项中包含的物理页的页号与所述第一物理页的页号可能不匹配,此时预取设备将在所述表项中存储所述第一物理页的页号、所述第一物理页的连续信息,并重新进行预取机制的训练。
举例来说,假设当前接收到的物理地址缺失的指示消息中携带的第一物理地址是A+B(其中,A为物理页号,B为页内偏移量),在根据索引算法,获取第一索引信息M后,发现M中对应的表项中的物理页的页号与A不匹配,此时将M中对应的表项中的物理页的页号更新为A,同时更新物理页的连续信息、步长配置为0,预取状态为初始化状态,将A+B写入之前的访存地址项,重新进行预取机制的训练。
但是,若所述预取信息表中第一索引信息对应的表项中的物理页的页号与所述第一物理页的页号匹配,但可能未完成预取机制的训练,此时仅需继续进行预取机制的训练,包括对该预取设备的步长、预取状态、之前的访存地址等信息进行更新,本发明在此不一一列举。
举例来说,接上例,假设预取设备又接收到的物理地址缺失的指示消息中携带的第一物理地址是A+B+1(其中,A为物理页号,B+1为页内偏移量),在根据索引算法,获取第一索引信息M后,发现M中对应的第一表项中的物理页号与A匹配,此时计算出步长为1,预取状态更新为准备状态,之前的访存地址更新为A+B+1,继续进行预取机制的训练。
202、根据所述第一物理地址和预取设备中存储的步长,获取预取地址。
具体的,结合步骤301的说明部分,若所述预取信息表中第一索引信息对应的表项中的物理页的页号与所述第一物理页的页号匹配,且完成预取机制的训练,预取设备可以根据所述第一物理地址和预取设备中存储的步长,获取预取地址。
其中,预取机制的训练过程可以如图3所示,包括:
S301、接收高速缓冲寄存器发送的物理地址缺失的指示消息,所述指示消息携带被映射的第一物理地址、所述第一物理地址所属的第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址。
S302、根据压缩算法和所述第一物理地址,获取所述第一物理地址的第一索引信息。
S303、若预取信息表中第一索引信息对应的表项中包含的物理页的页号与所述第一物理页的页号不匹配,将所述第一物理页的页号、所述第一物理页的连续信息存储在所述预取信息表中第一索引信息对应的表项中。
具体的,所述预取信息表存储在所述预取设备中。
此时,因为预取设备的预取机制刚开始训练,所以转去执行步骤S301,即再次接收物理地址缺失的指示消息,进行预取机制的训练。
S304、若预取信息表中第一索引信息对应的表项中包含的物理页的页号与所述第一物理页的页号匹配,判断预取设备的预取机制是否训练完成。
S305、若预取机制训练完成,根据所述第一物理地址和预取设备中存储的步长,获取预取地址。
当然,若预取机制未训练完成,转去执行步骤S301,继续接收物理地址缺失的指示消息,以使得继续进行预取机制的训练,直到预取机制训练完成。
需要说明的是,对于步骤201的说明部分所涉及的两种预取机制未训练完成的情况,预取设备无法产生预取地址,不属于本发明实施例讨论的范围。
需要说明的是,上述的根据所述第一物理地址和预取设备中存储的步长,产生预取地址的方法仅是示例性的说明,现有技术中可能还存在其它的获取预取地址的方法。可以理解的是,作为本领域的技术人员应该了解现有技术中其它的获取预取地址的方法,本发明实施例对此不一一进行描述。
203、若所述预取地址所属的物理页与所述第一物理页的页号不同,且根据所述第一物理页的连续信息确定所述第一物理页连续,则预取所述预取地址中的数据。
具体的,若所述预取地址所属的物理页与所述第一物理页的页号不同,说明所述预取地址跨页,在根据所述第一物理页的连续信息确定所述第一物理页连续后,可以预取所述预取地址中的数据。
需要说明的是,本方法为一种跨页预取的方法,故仅讨论预取地址跨页的情况,而对于预取地址不跨页的预取方法本发明实施例在此不作讨论。
本发明实施例在预取地址跨页时,还对当前访存地址的物理页连续的跨页情况,执行跨页预取,解决了现有技术中在判断出跨页预取后,便停止预取导致的预取设备命中率低的问题,提升了预取设备的预取命中率,进而提升了访问内存的效率。
本发明实施例还提供一种跨页预取方法,具体如图4所示,所述方法包括:
401、接收申请物理内存空间的第一指示消息,其中,所述第一指示消息携带所述内存空间的容量信息。
402、根据所述内存空间的容量信息,分配物理内存空间和虚拟内存空间。
具体的,在应用程序加载时,处理器会首先接收到应用程序申请内存空间的第一指示消息,所述第一指示消息携带所述内存空间的容量信息。然后处理器会根据所述内存空间的容量信息,分配相应的物理内存空间和虚拟内存空间。在分配物理内存空间和虚拟内存空间时,如果所述第一指示消息中携带虚拟地址的信息,根据该虚拟地址开辟相应大小的虚拟内存空间,否则所述处理器会随机分配合适的虚拟内存空间;相应的,所述处理器会随机分配合适的物理内存空间。
需要说明的是,内存空间的分配问题属于现有技术的问题,本发明实施例对此不作具体限定,仅示例性的提供一种实施的方案。
403、建立所述虚拟内存空间与所述物理内存空间的映射关系,其中,所述映射关系中包含所述虚拟内存空间包括的第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址。
具体的,现有技术中建立的所述虚拟内存空间与所述物理内存空间的映射关系中,仅含有所述虚拟内存空间包括的第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号信息,本发明实施例中,处理器建立的所述映射关系中,还存储所述第一物理页的连续信息,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址,该连续信息和所述第一物理页的页号共同存在于映射关系中。
具体的,所述虚拟内存空间与所述物理内存空间的映射关系可以通过映射关系页表表示。其中,所述第一物理页的连续信息可以由页表的一bit确定,也可以是由页表的多bit确定的,本发明实施例对此不作具体限定。
404、发送所述映射关系至存储器,以使得所述存储器存储所述映射关系。
本发明实施例还提供一种跨页预取方法,具体如图5所示,所述方法包括:
501、发送第二指示消息给存储器,其中,所述第二指示消息携带第一虚拟地址,以使得所述存储器根据所述第一虚拟地址,发送所述第一虚拟地址对应的映射关系给旁路转换缓冲器TLB,所述映射关系中包含所述第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址。
具体的,映射关系一般存放于存储器的内存中,但是,为了提高虚拟地址和物理地址转换的速度,会将少数几个常用的或者近期会用到的映射关系存放在旁路转换缓冲器TLB中。
这样,在访问内存时,所述TLB会首先接收处理器访问内存的指示消息,所述指示消息携带第一虚拟地址,然后TLB根据存储的映射关系,进行虚拟地址和物理地址的转换。但是,在所述TLB接收到处理器访问内存的指示消息后,若TLB不存在所述第一虚拟地址对应的映射关系,则发送映射关系缺失的第二指示消息给存储器,向存储器申请所述第一虚拟地址对应的映射关系。存储器则根据所述第一虚拟地址,查找存储的映射关系,并将所述第一虚拟地址对应的映射关系发送给所述TLB。
具体的,若上述所述虚拟内存空间与所述物理内存空间的映射关系可以通过映射关系页表表示,则此处所述第一虚拟地址和第一物理地址的映射关系可以通过页表中的页表项来表征。
502、接收所述存储器发送的所述映射关系。
503、根据所述映射关系,获取所述第一虚拟地址对应的第一物理地址。
504、发送所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息至高速缓存寄存器。
具体的,TLB发送所述第一物理地址所属的第一物理页的连续信息至高速缓存寄存器。这样,在高速缓冲寄存器发生物理地址缺失时,所述连续信息可以跟随数据流进入预取设备,使得所述预取设备在预取机制训练完成,确定预取地址跨页后,且根据所述连续信息,确定当前访存地址所属的物理页连续时执行跨页预取,解决了现有技术中在判断出跨页预取后,便停止预取导致的预取设备命中率低的问题,提升了预取设备的预取命中率,进而提升了访问内存的效率。
本发明实施例还提供一种跨页预取的方法,具体如图6所示,所述方法包括:
601、接收旁路转换缓冲器TLB发送的第一物理地址、所述第一物理地址所属的第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址。
602、若高速缓冲寄存器未存储所述第一物理地址的数据,发送所述第一物理地址至存储器,以使得处理器从所述存储器的内存中获取所述第一物理地址的数据。
603、发送物理地址缺失的指示消息至预取设备,所述指示消息携带所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息。
需要说明的是,通常在处理器没有从高速缓冲寄存器中命中指令或数据时,为了提高处理读取指令或数据的速度,高速缓冲寄存器通常会根据处理器访问的指令或数据的存储地址,从内存中获取对应的命令或数据,同时会向预取设备发送物理地址缺失的指示消息,指示预取设备从内存中预取处理器要访问的下一指令或数据,存储到高速缓存中。
需要说明的是,步骤602中发送所述第一物理地址至存储器和步骤603中发送物理地址缺失的指示消息至预取设备没有固定的先后顺序,二者均是在判断若未存储所述第一物理地址的数据后执行的动作,本发明实施例对二者的顺序不作具体限定。
本发明实施例提供一种跨页预取的方法,所述方法包括:处理器接收申请内存空间的第一指示消息;然后所述处理器根据所述第一指示消息携带的所述内存空间的容量信息,分配物理内存空间和虚拟内存空间,接着所述处理器建立所述虚拟内存空间与所述物理内存空间的映射关系,其中,所述映射关系中包含所述虚拟内存空间包括的第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;最后所述处理器发送所述映射关系至存储器。这样,当旁路转换缓冲器TLB发送第一虚拟地址对应的映射关系缺失的第二指示消息给存储器时,存储器可以将所述第一虚拟地址对应的包含第一物理页的连续信息的映射关系发送给所述TLB,以使得所述TLB接收所述包含第一物理页的连续信息的映射关系,并在第一虚拟地址和第一物理地址转换完成后,将所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息发送给高速缓冲寄存器。这样,在高速缓冲寄存器发生物理地址缺失时,所述连续信息可以跟随数据流进入预取设备,使得所述预取设备在预取机制训练完成,获取预取地址后,若所述预取地址所属的物理页与所述第一物理页的页号不同,且根据所述第一物理页的连续信息确定所述第一物理页连续,则预取所述预取地址中的数据,解决了现有技术中在判断出跨页预取后,便停止预取导致的预取设备命中率低的问题,提升了预取设备的预取命中率,进而提升了访问内存的效率。
实施例二、
本发明实施例提供一种跨页预取方法,具体在如图7所示的跨页预取系统下进行说明,所述跨页预取系统包括处理器、存储器、高速缓冲寄存器、旁路转换缓冲器、预取设备。
为了实现跨页预取,首先,在应用程序加载时,处理器在内存中为应用程序分配程序的指令和数据的存储空间,具体如图8所示,包括:
801、处理器接收申请物理内存空间的第一指示消息,其中,所述第一指示消息携带所述内存空间的容量信息。
802、处理器根据所述内存空间的容量信息,分配物理内存空间和虚拟内存空间。
具体的,在应用程序加载时,处理器会首先接收到应用程序申请内存空间的第一指示消息,所述第一指示消息携带所述内存空间的容量信息。然后处理器会根据所述内存空间的容量信息,分配相应的物理内存空间和虚拟内存空间。在分配物理内存空间和虚拟内存空间时,如果所述第一指示消息中携带虚拟地址的信息,根据该虚拟地址开辟相应大小的虚拟内存空间,否则所述处理器会随机分配合适的虚拟内存空间;相应的,所述处理器会随机分配合适的物理内存空间。
需要说明的是,内存空间的分配问题属于现有技术的问题,本发明实施例对此不作具体限定,仅示例性的提供一种实施的方案。
803、处理器建立所述虚拟内存空间与所述物理内存空间的映射关系,其中,所述映射关系中包含所述虚拟内存空间包括的第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址。
具体的,现有技术中建立的所述虚拟内存空间与所述物理内存空间的映射关系中,仅含有所述虚拟内存空间包括的第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号信息,本发明实施例中,处理器建立的所述映射关系中,还存储所述第一物理页的连续信息,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址,该连续信息和所述第一物理页的页号共同存在于映射关系中。
具体的,所述虚拟内存空间与所述物理内存空间的映射关系可以通过映射关系页表表示。其中,所述第一物理页的连续信息可以由页表的一bit确定,也可以是由页表的多bit确定的,本发明实施例对此不作具体限定。
804、处理器发送所述映射关系至存储器。
805、存储器接收所述处理器发送的所述映射关系。
806、存储器存储所述映射关系。
当然,在程序加载完成,处理器在内存中为应用程序分配程序的指令和数据的存储空间之后,处理器为了提高虚拟地址和物理地址转换的速度,会将少数几个常用的或者近期会用到的映射关系存放在旁路转换缓冲器TLB中。这样,在访问内存时,所述TLB会首先接收处理器访问内存的指示消息,下面具体以所述TLB接收到处理器访问第一内存的指示消息后,所述TLB与存储器、高速缓存寄存器的交互、所述高速缓冲寄存器与所述预取设备的交互为例继续说明,具体如图9所示,包括:
901、TLB接收访问第一内存的指示消息,所述指示消息携带第一虚拟地址。
需要说明的是,所述第一内存中的“第一”不具有任何特殊的含义,仅指代所述第一虚拟地址对应的第一物理地址所指向的内存。
902、TLB根据所述第一虚拟地址,查找将所述第一虚拟地址映射成第一物理地址的映射关系。
903、若不存在所述映射关系,发送第二指示消息给存储器,其中,所述第二指示消息携带第一虚拟地址,以使得所述存储器根据所述第一虚拟地址,发送所述第一虚拟地址对应的映射关系给旁路转换缓冲器TLB,所述映射关系中包含所述第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址。
904、存储器接收所述第二指示消息。
905、存储器根据所述第一虚拟地址,查找所述映射关系。
906、存储器发送所述映射关系给所述TLB。
907、TLB接收所述存储器发送的所述映射关系。
当然,在所述TLB接收所述存储器发送的所述映射关系后,所述TLB中将存在所述第一虚拟地址与所述第一物理地址的映射关系。
908、TLB根据所述映射关系,获取所述第一虚拟地址对应的第一物理地址。
909、TLB发送所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息至高速缓存寄存器。
910、高速缓冲寄存器接收所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息。
911、若所述高速缓冲寄存器未存储所述第一物理地址的数据,发送所述第一物理地址至存储器,以使得处理器从所述存储器的内存中获取所述第一物理地址的数据。
912、存储器接收所述高速缓冲寄存器发送的所述第一物理地址。
913、TLB发送物理地址缺失的指示消息至预取设备,所述指示消息携带所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息。
具体的,在高速缓冲寄存器发生物理地址缺失时,所述连续信息可以跟随数据流进入预取设备,使得所述预取设备在预取机制训练完成后,若所述预取地址所属的物理页与所述第一物理页的页号不同,且根据所述第一物理页的连续信息确定所述第一物理页连续,则预取所述预取地址中的数据,解决了现有技术中在判断出跨页预取后,便停止预取导致的预取设备命中率低的问题,提升了预取设备的预取命中率,进而提升了访问内存的效率。
需要说明的是,步骤911中发送所述第一物理地址至存储器和步骤913中发送物理地址缺失的指示消息至预取设备没有固定的先后顺序,二者均是在判断若未存储所述物理地址的数据后执行的动作,本发明实施例对二者的顺序不作具体限定。
914、预取设备接收所述高速缓冲寄存器发送的所述物理地址缺失的指示消息。
具体的,当所述预取设备接收所述高速缓冲寄存器发送的所述物理地址缺失的指示消息后,预取设备侧的跨页预取的方法具体如图10所示,包括:
1001、预取设备接收高速缓冲寄存器发送的物理地址缺失的指示消息,所述指示消息携带被映射的第一物理地址、所述第一物理地址所属的第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址。
1002、根据压缩算法和所述第一物理地址,获取所述第一物理地址的第一索引信息。
1003、若预取信息表中所述第一索引信息对应的表项中包含的物理页的页号与所述第一物理页的页号不匹配,将所述第一物理页的页号、所述第一物理页的连续信息存储在所述预取信息表中第一索引信息对应的表项中。
1004、若预取信息表中第一索引信息对应的表项中包含的物理页的页号与所述第一物理页的页号匹配,判断预取设备的预取机制是否训练完成。
1005、若预取机制训练完成,根据所述第一物理地址和预取设备中存储的步长,获取预取地址。
1006、若所述预取地址所属的物理页与所述第一物理页的页号不同,且根据所述第一物理页的连续信息确定所述第一物理页连续,则预取所述预取地址中的数据。
具体的,通过所述预取设备进行跨页预取的方法可参考实施例一的描述,本发明实施例对此不再赘述。
综上所述,实施例二在如图7所述的跨页预取系统下详述了一种跨页预取的方法,下面将给出一个示例性的操作,说明跨页预取的整个流程,具体如图11所示:
图11中,虚拟内存中相邻的4个虚拟页分别被映射到物理内存的物理页1、2、3、5中,其中,物理页的连续信息用“1”和“0”表征,“1”表征物理页连续,“0”表征物理页不连续,从图11显然可以看出,页号为1和2的物理页连续,页号为3的物理页不连续。
首先,操作系统将物理页的连续信息保存在物理内存中,接着,TLB将物理页的连续信息保存在TLB表项中,最后,预取设备将物理页的连续信息保存在预取设备中,然后预取设备根据该物理页的连续信息,确定是否跨页预取。
本发明实施例提供一种跨页预取方法,所述方法包括:处理器接收申请内存空间的第一指示消息;然后所述处理器根据所述第一指示消息携带的所述内存空间的容量信息,分配物理内存空间和虚拟内存空间,接着所述处理器建立所述虚拟内存空间与所述物理内存空间的映射关系,其中,所述映射关系中包含所述虚拟内存空间包括的第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;最后所述处理器发送所述映射关系至存储器。这样,当旁路转换缓冲器TLB发送第一虚拟地址对应的映射关系缺失的第二指示消息给存储器时,存储器可以将所述第一虚拟地址对应的包含第一物理页的连续信息的映射关系发送给所述TLB,以使得所述TLB接收所述包含第一物理页的连续信息的映射关系,并在第一虚拟地址和第一物理地址转换完成后,将所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息发送给高速缓冲寄存器。这样,在高速缓冲寄存器发生物理地址缺失时,所述连续信息可以跟随数据流进入预取设备,使得所述预取设备在预取机制训练完成,获取预取地址后,若所述预取地址所属的物理页与所述第一物理页的页号不同,且根据所述第一物理页的连续信息确定所述第一物理页连续,则预取所述预取地址中的数据,解决了现有技术中在判断出跨页预取后,便停止预取导致的预取设备命中率低的问题,提升了预取设备的预取命中率,进而提升了访问内存的效率。
实施例三、
本发明实施例提供一种预取设备1200,具体如图12所示,所述预取设备1200包括接收单元1201、获取单元1202、预取单元1203。
所述接收单元1201,用于接收高速缓冲寄存器发送的物理地址缺失的指示消息,所述指示消息携带被映射的第一物理地址、所述第一物理地址所属的第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址。
所述获取单元1202,用于根据所述第一物理地址和预取设备中存储的步长,获取预取地址。
所述预取单元1203,用于若所述预取地址所属的物理页与所述第一物理页的页号不同,且根据所述第一物理页的连续信息确定所述第一物理页连续,则
预取所述预取地址中的数据。
进一步的,如图13所示,所述预取设备还包括存储单元1204。
所述存储单元1204,用于在所述接收单元1201接收高速缓存寄存器发送的物理地址缺失的指示消息之后,将所述指示消息携带的所述第一物理地址所属的第一物理页的连续信息存储在预取信息表中第一物理地址对应的表项中,其中,所述预取信息表存储在所述预取设备中。
可选的,如图14所示,所述预取设备还包括判断单元1205、执行单元1206、存储单元1204。
所述获取单元1202,用于在所述根据所述第一物理地址和预取设备中存储的步长,获取预取地址之前,根据压缩算法和所述第一物理地址,获取所述第一物理地址的第一索引信息。
所述判断单元1205,用于若预取信息表中第一索引信息对应的表项中包含的物理页的页号与所述第一物理页的页号匹配,判断所述预取设备的预取机制是否训练完成,其中,所述预取信息表存储在所述预取设备中。
所述执行单元1206,用于若所述预取机制训练完成,执行获取预取地址的步骤
所述存储单元1204,用于若预取信息表中第一索引信息对应的表项中包含的物理页的页号与所述第一物理页的页号不匹配,将所述第一物理页的页号、所述第一物理页的连续信息存储在所述预取信息表中第一索引信息对应的表项中。
进一步的,所述第一物理地址的第一索引信息具体包括下列信息中的至少之一:
所述第一物理地址所属的第一物理页的页号、
所述第一物理地址所属的第一物理页的页号的压缩值、
所述第一物理地址所属的第一物理页的页号的哈希值。
具体的,在跨页预取时预取设备工作的过程可参考实施例一和实施例二的描述,本发明实施例对此不再赘述。
本发明实施例提供一种预取设备,所述预取设备包括接收单元、获取单元、预取单元。所述接收单元,用于接收高速缓冲寄存器发送的物理地址缺失的指示消息,所述指示消息携带被映射的第一物理地址、所述第一物理地址所属的第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;所述获取单元,用于根据所述第一物理地址和预取设备中存储的步长,获取预取地址;所述预取单元,用于若所述预取地址所属的物理页与所述第一物理页的页号不同,且根据所述第一物理页的连续信息确定所述第一物理页连续,则预取所述预取地址中的数据。
因为所述预取设备在预取地址跨页时,还根据所述第一物理页的连续信息,确定所述第一物理页连续后,预取所述预取地址中的数据,解决了现有技术中在判断出跨页预取后,便停止预取导致的预取设备命中率低的问题,提升了预取设备的预取命中率,进而提升了访问内存的效率。
实施例四、
本发明实施例提供一种处理器1500,具体如图15所示,所述处理器1500包括接收单元1501、分配单元1502、建立单元1503、发送单元1504。
所述接收单元1501,用于接收申请内存空间的第一指示消息,其中,所述第一指示消息携带所述内存空间的容量信息。
所述分配单元1502,用于根据所述内存空间的容量信息,分配物理内存空间和虚拟内存空间。
所述建立单元1503,用于建立所述虚拟内存空间与所述物理内存空间的映射关系,其中,所述映射关系中包含所述虚拟内存空间包括的第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址。
所述发送单元1504,用于发送所述映射关系至存储器,以使得所述存储器存储所述映射关系。
具体的,在跨页预取时,处理器工作的过程可参考实施例一和实施例二的描述,本发明实施例对此不再赘述。
基于本发明实施例提供的处理器,因为所述处理器建立的所述映射关系中包含被映射的第一物理页的连续信息,故在所述处理器发送所述映射关系至存储器后,所述存储器中的映射关系中也包含所述第一物理页的连续信息,这样旁路转换缓冲器TLB从存储器获取的映射关系中也包含所述第一物理页的连续信息,进而在高速缓冲寄存器发生物理地址缺失时,所述连续信息可以跟随数据流进入预取设备,使得所述预取设备在预取机制训练完成,获取预取地址,并确定预取地址跨页,且根据所述第一物理页的连续信息,确定当前访存地址所属的第一物理页连续后,预取所述预取地址中的数据,解决了现有技术中在判断出跨页预取后,便停止预取导致的预取设备命中率低的问题,提升了预取设备的预取命中率,进而提升了访问内存的效率。
实施例五、
本发明实施例提供一种旁路转换缓冲器TLB1600,具体如图16所示,所述TLB1600包括第一发送单元1601、接收单元1602、获取单元1603、第二发送单元1604。
所述第一发送单元1601,用于发送第二指示消息给存储器,其中,所述第二指示消息携带第一虚拟地址,以使得所述存储器根据所述第一虚拟地址,发送所述第一虚拟地址对应的映射关系给所述旁路转换缓冲器TLB,所述映射关系中包含所述第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址。
所述接收单元1602,用于接收所述存储器发送的所述映射关系。
所述获取单元1603,用于根据所述映射关系,获取所述第一虚拟地址对应的第一物理地址。
所述第二发送单元1604,用于发送所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息至高速缓冲寄存器。
具体的,在跨页预取时,旁路转换缓冲器工作的过程可参考实施例一和实施例二的描述,本发明实施例对此不再赘述。
本发明实施例提供的旁路转换缓冲器TLB,由于在映射关系缺失时,从存储器中获取的映射关系中包含第一物理页的连续信息,因此在所述TLB根据所述映射关系完成虚拟地址和物理地址的转换后,将所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息发送给高速缓冲寄存器。这样,在高速缓冲寄存器发生物理地址缺失时,所述连续信息可以跟随数据流进入预取设备,使得所述预取设备在预取机制训练完成,获取预取地址,并确定预取地址跨页,且根据所述第一物理页的连续信息,确定当前访存地址所属的第一物理页连续后,预取所述预取地址中的数据,解决了现有技术中在判断出跨页预取后,便停止预取导致的预取设备命中率低的问题,提升了预取设备的预取命中率,进而提升了访问内存的效率。
实施例六、
本发明实施例提供一种高速缓冲寄存器1700,具体如图17所示,所述高速缓冲寄存器1700包括接收单元1701、第一发送单元1702、第二发送单元1703。
所述接收单元1701,用于接收旁路转换缓冲器TLB发送的第一物理地址、所述第一物理地址所属的第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址。
所述第一发送单元1702,用于若高速缓冲寄存器未存储所述第一物理地址的数据,发送所述第一物理地址至存储器,以使得处理器从所述存储器获取所述第一物理地址的数据。
所述第二发送单元1703,用于发送物理地址缺失的指示消息至预取设备,所述指示消息携带所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息。
具体的,在跨页预取时,高速缓冲寄存器工作的过程可参考实施例一和实施例二的描述,本发明实施例对此不再赘述。
本发明实施例提供的高速缓冲寄存器,在发生物理地址缺失时,一方面可以发送所述第一物理地址至存储器,以使得处理器从所述存储器的内存中获取所述第一物理地址的数据;另一方面,发送物理地址缺失的指示消息给预取设备,其中,所述连续信息可以跟随数据流进入预取设备,使得所述预取设备在预取机制训练完成,获取预取地址,并确定预取地址跨页,且根据所述第一物理页的连续信息,确定当前访存地址所属的第一物理页连续后,预取所述预取地址中的数据,解决了现有技术中在判断出跨页预取后,便停止预取导致的预取设备命中率低的问题,提升了预取设备的预取命中率,进而提升了访问内存的效率。
实施例七、
本发明实施例提供一种跨页预取系统1800,具体如图18所示,所述跨页预取系统包括存储器1801、预取设备1200、处理器1500、旁路转换缓冲器TLB1600和高速缓冲寄存器1700。
当所述处理器1500发送包含第一物理页的连续信息的映射关系至所述存储器1801后,所述存储器1801存储所述映射关系。当所述旁路转换缓冲器TLB1600中查找不到将第一虚拟地址映射成第一物理地址的映射关系后,将从所述存储器中获取所述映射关系,然后所述TLB1600将所述第一物理地址、所述映射关系中的所述第一物理页的连续信息发送给所述高速缓冲寄存器1700,若所述高速缓冲寄存器1700中未存储所述第一物理地址的数据,所述高速缓冲寄存器1700发送所述第一物理地址至存储器1801,以使得在所述存储器1801的内存中获取所述第一物理地址的数据,另外所述高速缓冲寄存器1700还发送物理地址缺失的指示消息给所述预取设备1200,所述指示消息携带被映射的第一物理地址、所述第一物理地址所属的第一物理页的连续信息。其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址。
具体的所述预取设备、所述处理器、所述旁路转换缓冲器TLB、所述高速缓冲寄存器的工作过程可参考实施例一和实施例二的描述,本发明实施例对此不再赘述。
本发明实施例提供一种跨页预取系统,所述跨页预取系统包括:存储器、实施例三所述的预取设备、实施例四所述的处理器、实施例五所述的旁路转换缓冲器TLB、实施例六所述的高速缓冲寄存器。因为所述处理器建立的所述映射关系中包含被映射的第一物理页的连续信息,故在所述处理器发送所述映射关系至存储器后,所述存储器中的映射关系中也包含被映射的第一物理页的连续信息,这样旁路转换缓冲器器TLB从存储器获取的映射关系中也包含所述第一物理页的连续信息,进而在高速缓冲寄存器发生物理地址缺失时,所述第一物理页的连续信息可以跟随数据流进入预取设备,使得所述预取设备在预取机制训练完成,获取预取地址,并确定预取地址跨页,且根据所述第一物理页的连续信息,确定当前访存地址所属的第一物理页连续后,预取所述预取地址中的数据,解决了现有技术中在判断出跨页预取后,便停止预取导致的预取设备命中率低的问题,提升了预取设备的预取命中率,进而提升了访问内存的效率。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (15)
1.一种跨页预取方法,其特征在于,所述方法包括:
接收高速缓冲寄存器发送的物理地址缺失的指示消息,所述指示消息携带被映射的第一物理地址、所述第一物理地址所属的第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
根据所述第一物理地址和预取设备中存储的步长,获取预取地址;
若所述预取地址所属的物理页与所述第一物理页的页号不同,且根据所述第一物理页的连续信息确定所述第一物理页连续,则
预取所述预取地址中的数据。
2.根据权利要求1所述的方法,其特征在于,在所述接收高速缓存寄存器发送的物理地址缺失的指示消息之后,所述方法还包括:
将所述指示消息携带的所述第一物理地址所属的第一物理页的连续信息存储在预取信息表中第一物理地址对应的表项中,其中,所述预取信息表存储在所述预取设备中。
3.根据权利要求1所述的方法,其特征在于,在所述根据所述第一物理地址和预取设备中存储的步长,获取预取地址之前,所述方法还包括:
根据压缩算法和所述第一物理地址,获取所述第一物理地址的第一索引信息;
若预取信息表中第一索引信息对应的表项中包含的物理页的页号与所述第一物理页的页号匹配,判断所述预取设备的预取机制是否训练完成,其中,所述预取信息表存储在所述预取设备中;
若所述预取机制训练完成,执行获取预取地址的步骤;
若预取信息表中第一索引信息对应的表项中包含的物理页的页号与所述第一物理页的页号不匹配,将所述第一物理页的页号、所述第一物理页的连续信息存储在所述预取信息表中第一索引信息对应的表项中。
4.根据权利要求3所述的方法,其特征在于,所述第一物理地址的第一索引信息具体包括下列信息中的至少之一:
所述第一物理地址所属的第一物理页的页号、
所述第一物理地址所属的第一物理页的页号的压缩值、
所述第一物理地址所属的第一物理页的页号的哈希值。
5.一种跨页预取方法,其特征在于,所述方法包括:
接收申请内存空间的第一指示消息,其中,所述第一指示消息携带所述内存空间的容量信息;
根据所述内存空间的容量信息,分配物理内存空间和虚拟内存空间;
建立所述虚拟内存空间与所述物理内存空间的映射关系,其中,所述映射关系中包含所述虚拟内存空间包括的第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
发送所述映射关系至存储器,以使得所述存储器存储所述映射关系。
6.一种跨页预取方法,其特征在于,所述方法包括:
发送第二指示消息给存储器,其中,所述第二指示消息携带第一虚拟地址,以使得所述存储器根据所述第一虚拟地址,发送所述第一虚拟地址对应的映射关系给所述旁路转换缓冲器TLB,所述映射关系中包含所述第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
接收所述存储器发送的所述映射关系;
根据所述映射关系,获取所述第一虚拟地址对应的第一物理地址;
发送所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息至高速缓冲寄存器。
7.一种跨页预取方法,其特征在于,所述方法包括:
接收旁路转换缓冲器TLB发送的第一物理地址、所述第一物理地址所属的第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
若高速缓冲寄存器未存储所述第一物理地址的数据,发送所述第一物理地址至存储器,以使得处理器从所述存储器获取所述第一物理地址的数据;
发送物理地址缺失的指示消息至预取设备,所述指示消息携带所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息。
8.一种预取设备,其特征在于,所述预取设备包括接收单元、获取单元、预取单元;
所述接收单元,用于接收高速缓冲寄存器发送的物理地址缺失的指示消息,所述指示消息携带被映射的第一物理地址、所述第一物理地址所属的第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
所述获取单元,用于根据所述第一物理地址和预取设备中存储的步长,获取预取地址;
所述预取单元,用于若所述预取地址所属的物理页与所述第一物理页的页号不同,且根据所述第一物理页的连续信息确定所述第一物理页连续,则
预取所述预取地址中的数据。
9.根据权利要求8所述的预取设备,其特征在于,所述预取设备还包括存储单元;
所述存储单元,用于在所述接收单元接收高速缓存寄存器发送的物理地址缺失的指示消息之后,将所述指示消息携带的所述第一物理地址所属的第一物理页的连续信息存储在预取信息表中第一物理地址对应的表项中,其中,所述预取信息表存储在所述预取设备中。
10.根据权利要求8所述的预取设备,其特征在于,所述预取设备还包括判断单元、执行单元、存储单元;
所述获取单元,用于在所述根据所述第一物理地址和预取设备中存储的步长,获取预取地址之前,根据压缩算法和所述第一物理地址,获取所述第一物理地址的第一索引信息;
所述判断单元,用于若预取信息表中第一索引信息对应的表项中包含的物理页的页号与所述第一物理页的页号匹配,判断所述预取设备的预取机制是否训练完成,其中,所述预取信息表存储在所述预取设备中;
所述执行单元,用于若所述预取机制训练完成,执行获取预取地址的步骤;
所述存储单元,用于若预取信息表中第一索引信息对应的表项中包含的物理页的页号与所述第一物理页的页号不匹配,将所述第一物理页的页号、所述第一物理页的连续信息存储在所述预取信息表中第一索引信息对应的表项中。
11.根据权利要求10所述的预取设备,其特征在于,所述第一物理地址的第一索引信息具体包括下列信息中的至少之一:
所述第一物理地址所属的第一物理页的页号、
所述第一物理地址所属的第一物理页的页号的压缩值、
所述第一物理地址所属的第一物理页的页号的哈希值。
12.一种处理器,其特征在于,所述处理器包括接收单元、分配单元、建立单元、发送单元;
所述接收单元,用于接收申请内存空间的第一指示消息,其中,所述第一指示消息携带所述内存空间的容量信息;
所述分配单元,用于根据所述内存空间的容量信息,分配物理内存空间和虚拟内存空间;
所述建立单元,用于建立所述虚拟内存空间与所述物理内存空间的映射关系,其中,所述映射关系中包含所述虚拟内存空间包括的第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
所述发送单元,用于发送所述映射关系至存储器,以使得所述存储器存储所述映射关系。
13.一种旁路转换缓冲器TLB,其特征在于,所述TLB包括第一发送单元、接收单元、获取单元、第二发送单元;
所述第一发送单元,用于发送第二指示消息给存储器,其中,所述第二指示消息携带第一虚拟地址,以使得所述存储器根据所述第一虚拟地址,发送所述第一虚拟地址对应的映射关系给所述旁路转换缓冲器TLB,所述映射关系中包含所述第一虚拟地址对应的被映射的第一物理地址所属的第一物理页的页号、所述第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
所述接收单元,用于接收所述存储器发送的所述映射关系;
所述获取单元,用于根据所述映射关系,获取所述第一虚拟地址对应的第一物理地址;
所述第二发送单元,用于发送所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息至高速缓冲寄存器。
14.一种高速缓冲寄存器,其特征在于,所述高速缓冲寄存器包括接收单元、第一发送单元、第二发送单元;
所述接收单元,用于接收旁路转换缓冲器TLB发送的第一物理地址、所述第一物理地址所属的第一物理页的连续信息,其中,所述第一物理页的连续信息用于表示第一虚拟页映射的物理页和与所述第一虚拟页连续的下一虚拟页映射的物理页是否连续,所述第一虚拟页包含所述第一物理地址映射的第一虚拟地址;
所述第一发送单元,用于若高速缓冲寄存器未存储所述第一物理地址的数据,发送所述第一物理地址至存储器,以使得处理器从所述存储器获取所述第一物理地址的数据;
所述第二发送单元,用于发送物理地址缺失的指示消息至预取设备,所述指示消息携带所述第一物理地址、所述第一物理地址所属的第一物理页的连续信息。
15.一种跨页预取系统,其特征在于,所述跨页预取系统包括存储器、权利要求8-11任一项所述的预取设备、权利要求12所述的处理器以及权利要求13所述的旁路转换缓冲器TLB、权利要求14所述的高速缓冲寄存器。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310159064.1A CN104133780B (zh) | 2013-05-02 | 2013-05-02 | 一种跨页预取方法、装置及系统 |
KR1020157034158A KR101844521B1 (ko) | 2013-05-02 | 2014-04-17 | 크로스-페이지 프리페칭 방법, 장치, 및 시스템 |
PCT/CN2014/075588 WO2014176981A1 (zh) | 2013-05-02 | 2014-04-17 | 一种跨页预取方法、装置及系统 |
EP14791035.0A EP2993586A4 (en) | 2013-05-02 | 2014-04-17 | SIDE-SIDED PREFETCHING METHOD AND DEVICE AND SYSTEM |
JP2016510923A JP6134962B2 (ja) | 2013-05-02 | 2014-04-17 | クロスページプリフェッチングの方法、装置、およびシステム |
US14/928,635 US9858192B2 (en) | 2013-05-02 | 2015-10-30 | Cross-page prefetching method, apparatus, and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310159064.1A CN104133780B (zh) | 2013-05-02 | 2013-05-02 | 一种跨页预取方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104133780A true CN104133780A (zh) | 2014-11-05 |
CN104133780B CN104133780B (zh) | 2017-04-05 |
Family
ID=51806463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310159064.1A Active CN104133780B (zh) | 2013-05-02 | 2013-05-02 | 一种跨页预取方法、装置及系统 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9858192B2 (zh) |
EP (1) | EP2993586A4 (zh) |
JP (1) | JP6134962B2 (zh) |
KR (1) | KR101844521B1 (zh) |
CN (1) | CN104133780B (zh) |
WO (1) | WO2014176981A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107636626A (zh) * | 2015-05-29 | 2018-01-26 | 高通股份有限公司 | 用于存储器管理单元(mmu)的转换的推测性预取 |
CN110704107A (zh) * | 2019-09-30 | 2020-01-17 | 上海兆芯集成电路有限公司 | 预取器、预取器的运作方法及处理器 |
CN111143242A (zh) * | 2018-11-02 | 2020-05-12 | 华为技术有限公司 | 一种缓存预取方法和装置 |
CN112199400A (zh) * | 2020-10-28 | 2021-01-08 | 支付宝(杭州)信息技术有限公司 | 用于数据处理的方法和装置 |
CN112416817A (zh) * | 2020-12-02 | 2021-02-26 | 海光信息技术股份有限公司 | 预取方法、信息处理装置、设备以及存储介质 |
CN112416436A (zh) * | 2020-12-02 | 2021-02-26 | 海光信息技术股份有限公司 | 信息处理方法、信息处理装置和电子设备 |
CN112416437A (zh) * | 2020-12-02 | 2021-02-26 | 海光信息技术股份有限公司 | 信息处理方法、信息处理装置和电子设备 |
CN112948149A (zh) * | 2021-03-29 | 2021-06-11 | 江苏为是科技有限公司 | 一种远端内存共享方法、装置、电子设备及存储介质 |
CN114253458A (zh) * | 2020-09-21 | 2022-03-29 | 华为技术有限公司 | 内存缺页异常的处理方法、装置、设备及存储介质 |
CN114546488A (zh) * | 2022-04-25 | 2022-05-27 | 超验信息科技(长沙)有限公司 | 一种向量跨步指令的实现方法、装置、设备及存储介质 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11126559B2 (en) * | 2013-12-30 | 2021-09-21 | Michael Henry Kass | Translation look-aside buffer and prefetch indicator |
US10838862B2 (en) | 2014-05-21 | 2020-11-17 | Qualcomm Incorporated | Memory controllers employing memory capacity compression, and related processor-based systems and methods |
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 |
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 |
US9710392B2 (en) * | 2014-08-15 | 2017-07-18 | Advanced Micro Devices, Inc. | Virtual memory mapping for improved DRAM page locality |
US9792224B2 (en) * | 2015-10-23 | 2017-10-17 | Intel Corporation | Reducing latency by persisting data relationships in relation to corresponding data in persistent memory |
US10191850B2 (en) | 2016-03-31 | 2019-01-29 | Qualcomm Incorporated | Providing memory bandwidth compression using multiple last-level cache (LLC) lines in a central processing unit (CPU)-based system |
US9946654B2 (en) * | 2016-09-09 | 2018-04-17 | Cray Inc. | High-bandwidth prefetcher for high-bandwidth memory |
US10176090B2 (en) * | 2016-09-15 | 2019-01-08 | Qualcomm Incorporated | Providing memory bandwidth compression using adaptive compression in central processing unit (CPU)-based systems |
US20190163642A1 (en) | 2017-11-27 | 2019-05-30 | Intel Corporation | Management of the untranslated to translated code steering logic in a dynamic binary translation based processor |
US11099995B2 (en) | 2018-03-28 | 2021-08-24 | Intel Corporation | Techniques for prefetching data to a first level of memory of a hierarchical arrangement of memory |
EP4038508A4 (en) * | 2019-10-02 | 2023-07-12 | Telefonaktiebolaget Lm Ericsson (Publ) | ENTITIES, SYSTEMS AND METHODS IMPLEMENTED THEREEN FOR MANAGING MEMORY OPERATIONS OF AN APPLICATION IN A COMPUTER ENVIRONMENT |
US11294808B2 (en) | 2020-05-21 | 2022-04-05 | Micron Technology, Inc. | Adaptive cache |
US11409657B2 (en) | 2020-07-14 | 2022-08-09 | Micron Technology, Inc. | Adaptive address tracking |
US11422934B2 (en) | 2020-07-14 | 2022-08-23 | Micron Technology, Inc. | Adaptive address tracking |
JP2022159714A (ja) * | 2021-04-05 | 2022-10-18 | 富士通株式会社 | 情報処理装置及び情報処理方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060179236A1 (en) * | 2005-01-13 | 2006-08-10 | Hazim Shafi | System and method to improve hardware pre-fetching using translation hints |
US20060248281A1 (en) * | 2005-05-02 | 2006-11-02 | Al-Sukhni Hassan F | Prefetching using hashed program counter |
CN101300555A (zh) * | 2005-10-31 | 2008-11-05 | 富士通株式会社 | 运算处理装置、信息处理装置、以及运算处理装置的存储器访问方法 |
CN101495962A (zh) * | 2006-08-02 | 2009-07-29 | 高通股份有限公司 | 用于预取不连续指令地址的方法和设备 |
US20090198909A1 (en) * | 2008-02-01 | 2009-08-06 | Speight William E | Jump Starting Prefetch Streams Across Page Boundaries |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001084216A (ja) * | 1999-09-16 | 2001-03-30 | Nec Eng Ltd | データプリフェッチシステム、プリフェッチ方法、記録媒体 |
US8438547B2 (en) | 2009-05-05 | 2013-05-07 | Freescale Semiconductor, Inc. | Address translation trace message generation for debug |
TWI574155B (zh) * | 2010-03-29 | 2017-03-11 | 威盛電子股份有限公司 | 資料預取方法、電腦程式產品以及微處理器 |
US8433852B2 (en) | 2010-08-30 | 2013-04-30 | Intel Corporation | Method and apparatus for fuzzy stride prefetch |
CN102737037A (zh) * | 2011-04-07 | 2012-10-17 | 北京搜狗科技发展有限公司 | 一种网页预读取的方法、装置及一种浏览器 |
US9804969B2 (en) | 2012-12-20 | 2017-10-31 | Qualcomm Incorporated | Speculative addressing using a virtual address-to-physical address page crossing buffer |
-
2013
- 2013-05-02 CN CN201310159064.1A patent/CN104133780B/zh active Active
-
2014
- 2014-04-17 KR KR1020157034158A patent/KR101844521B1/ko active IP Right Grant
- 2014-04-17 WO PCT/CN2014/075588 patent/WO2014176981A1/zh active Application Filing
- 2014-04-17 JP JP2016510923A patent/JP6134962B2/ja active Active
- 2014-04-17 EP EP14791035.0A patent/EP2993586A4/en not_active Withdrawn
-
2015
- 2015-10-30 US US14/928,635 patent/US9858192B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060179236A1 (en) * | 2005-01-13 | 2006-08-10 | Hazim Shafi | System and method to improve hardware pre-fetching using translation hints |
US20060248281A1 (en) * | 2005-05-02 | 2006-11-02 | Al-Sukhni Hassan F | Prefetching using hashed program counter |
CN101300555A (zh) * | 2005-10-31 | 2008-11-05 | 富士通株式会社 | 运算处理装置、信息处理装置、以及运算处理装置的存储器访问方法 |
CN101495962A (zh) * | 2006-08-02 | 2009-07-29 | 高通股份有限公司 | 用于预取不连续指令地址的方法和设备 |
US20090198909A1 (en) * | 2008-02-01 | 2009-08-06 | Speight William E | Jump Starting Prefetch Streams Across Page Boundaries |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107636626A (zh) * | 2015-05-29 | 2018-01-26 | 高通股份有限公司 | 用于存储器管理单元(mmu)的转换的推测性预取 |
CN111143242A (zh) * | 2018-11-02 | 2020-05-12 | 华为技术有限公司 | 一种缓存预取方法和装置 |
CN110704107B (zh) * | 2019-09-30 | 2022-03-22 | 上海兆芯集成电路有限公司 | 预取器、预取器的运作方法及处理器 |
CN110704107A (zh) * | 2019-09-30 | 2020-01-17 | 上海兆芯集成电路有限公司 | 预取器、预取器的运作方法及处理器 |
US11403225B2 (en) | 2019-09-30 | 2022-08-02 | Shanghai Zhaoxin Semiconductor Co., Ltd. | Prefetcher, operating method of prefetcher, and processor operated based on updated offset amount |
CN114253458B (zh) * | 2020-09-21 | 2024-04-26 | 华为技术有限公司 | 内存缺页异常的处理方法、装置、设备及存储介质 |
CN114253458A (zh) * | 2020-09-21 | 2022-03-29 | 华为技术有限公司 | 内存缺页异常的处理方法、装置、设备及存储介质 |
CN112199400A (zh) * | 2020-10-28 | 2021-01-08 | 支付宝(杭州)信息技术有限公司 | 用于数据处理的方法和装置 |
CN112416817A (zh) * | 2020-12-02 | 2021-02-26 | 海光信息技术股份有限公司 | 预取方法、信息处理装置、设备以及存储介质 |
CN112416437A (zh) * | 2020-12-02 | 2021-02-26 | 海光信息技术股份有限公司 | 信息处理方法、信息处理装置和电子设备 |
CN112416817B (zh) * | 2020-12-02 | 2023-02-17 | 海光信息技术股份有限公司 | 预取方法、信息处理装置、设备以及存储介质 |
CN112416437B (zh) * | 2020-12-02 | 2023-04-21 | 海光信息技术股份有限公司 | 信息处理方法、信息处理装置和电子设备 |
CN112416436B (zh) * | 2020-12-02 | 2023-05-09 | 海光信息技术股份有限公司 | 信息处理方法、信息处理装置和电子设备 |
CN112416436A (zh) * | 2020-12-02 | 2021-02-26 | 海光信息技术股份有限公司 | 信息处理方法、信息处理装置和电子设备 |
CN112948149A (zh) * | 2021-03-29 | 2021-06-11 | 江苏为是科技有限公司 | 一种远端内存共享方法、装置、电子设备及存储介质 |
CN114546488A (zh) * | 2022-04-25 | 2022-05-27 | 超验信息科技(长沙)有限公司 | 一种向量跨步指令的实现方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104133780B (zh) | 2017-04-05 |
EP2993586A4 (en) | 2016-04-06 |
WO2014176981A1 (zh) | 2014-11-06 |
JP6134962B2 (ja) | 2017-05-31 |
US20160055088A1 (en) | 2016-02-25 |
KR20160008217A (ko) | 2016-01-21 |
JP2016520916A (ja) | 2016-07-14 |
EP2993586A1 (en) | 2016-03-09 |
US9858192B2 (en) | 2018-01-02 |
KR101844521B1 (ko) | 2018-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104133780A (zh) | 一种跨页预取方法、装置及系统 | |
US20210374069A1 (en) | Method, system, and apparatus for page sizing extension | |
CN108804350B (zh) | 一种内存访问方法及计算机系统 | |
KR101626533B1 (ko) | 가비지 콜렉션을 위한 gpu 서포트 | |
KR101359813B1 (ko) | 프로세서 주 메모리용 영구 메모리 | |
CN108139981B (zh) | 一种页表缓存tlb中表项的访问方法,及处理芯片 | |
CN104462225B (zh) | 一种数据读取的方法、装置及系统 | |
US20120054468A1 (en) | Processor, apparatus, and method for memory management | |
US9612975B2 (en) | Page cache device and method for efficient mapping | |
CN104252392A (zh) | 一种访问数据缓存的方法和处理器 | |
CN104487953A (zh) | 用于层次型存储器系统的存储器管理 | |
CN103049392B (zh) | 缓存目录的实现方法及装置 | |
KR20190052546A (ko) | 키-밸류 스토리지 장치 및 상기 키-밸류 스토리지 장치의 동작 방법 | |
US9569381B2 (en) | Scheduler for memory | |
CN104516822A (zh) | 一种内存访问方法和设备 | |
KR20060023963A (ko) | 멀티쓰레디드 컴퓨터 프로세싱을 제공하는 방법, 장치 및시스템 | |
CN116383101A (zh) | 内存访问方法、内存管理单元、芯片、设备和存储介质 | |
CN115269454A (zh) | 数据访问方法、电子设备和存储介质 | |
CN114637700A (zh) | 针对目标虚拟地址的地址转换方法、处理器及电子设备 | |
CN111708715B (zh) | 内存分配方法、内存分配装置及终端设备 | |
CN111126619A (zh) | 一种机器学习方法与装置 | |
CN103049395A (zh) | 缓存存储设备数据的方法及其系统 | |
CN100359491C (zh) | 基于mcs-51架构的16m字节数据存储器寻址空间扩充方法 | |
CN103207844A (zh) | 缓存系统及缓存访问方法 | |
US11847074B2 (en) | Input/output device operational modes for a system with memory pools |
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 |