CN104871144B - 使用虚拟地址到物理地址跨页缓冲器的推测性寻址 - Google Patents
使用虚拟地址到物理地址跨页缓冲器的推测性寻址 Download PDFInfo
- Publication number
- CN104871144B CN104871144B CN201380066209.1A CN201380066209A CN104871144B CN 104871144 B CN104871144 B CN 104871144B CN 201380066209 A CN201380066209 A CN 201380066209A CN 104871144 B CN104871144 B CN 104871144B
- Authority
- CN
- China
- Prior art keywords
- instruction
- physical address
- cross
- address
- entry
- 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.)
- Expired - Fee Related
Links
- 239000000872 buffer Substances 0.000 title claims abstract description 115
- 238000000034 method Methods 0.000 claims abstract description 43
- 238000012545 processing Methods 0.000 claims description 122
- 230000015654 memory Effects 0.000 claims description 67
- 238000000605 extraction Methods 0.000 claims description 41
- 238000003860 storage Methods 0.000 claims description 31
- 238000013519 translation Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 10
- 230000003139 buffering effect Effects 0.000 claims description 4
- ZLGYJAIAVPVCNF-UHFFFAOYSA-N 1,2,4-trichloro-5-(3,5-dichlorophenyl)benzene Chemical compound ClC1=CC(Cl)=CC(C=2C(=CC(Cl)=C(Cl)C=2)Cl)=C1 ZLGYJAIAVPVCNF-UHFFFAOYSA-N 0.000 description 52
- 238000006243 chemical reaction Methods 0.000 description 8
- 230000014616 translation Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012805 post-processing Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000000052 comparative effect Effects 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- MTCPZNVSDFCBBE-UHFFFAOYSA-N 1,3,5-trichloro-2-(2,6-dichlorophenyl)benzene Chemical compound ClC1=CC(Cl)=CC(Cl)=C1C1=C(Cl)C=CC=C1Cl MTCPZNVSDFCBBE-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- 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/10—Address translation
-
- 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/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3816—Instruction alignment, e.g. cache line crossing
-
- 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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1054—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
-
- 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/65—Details of virtual memory and virtual address translation
- G06F2212/654—Look-ahead translation
-
- 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/65—Details of virtual memory and virtual address translation
- G06F2212/655—Same page detection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明提供一种方法,其包含接收将由处理器执行的指令。所述方法进一步包含在包含一或多个条目的跨页缓冲器中执行查找来确定所述指令是否具有在所述跨页缓冲器中的条目。所述条目中的每一个包含物理地址。所述方法进一步包含当所述指令具有在所述跨页缓冲器中的所述条目时从在所述跨页缓冲器中的所述条目检索特定物理地址。
Description
技术领域
本发明大体上涉及用于指令处理的计算机架构。
背景技术
当存取一系列指令(例如,第一指令,接着第二指令)时,处理系统可将指令的虚拟地址转换成指令的物理地址。所述处理系统可包含使处理器能够将虚拟地址转换成物理地址的指令转换旁视缓冲器(ITLB)。所述处理系统可请求ITLB执行地址转换操作来将与所述指令相关联的虚拟地址转换成物理地址。针对指令转换的物理地址可用于从指令高速缓存存取指令(例如,提取指令)。所述处理系统可将物理地址发送到指令高速缓存来执行标记阵列操作,以确定所述指令是否存储在指令高速缓存的数据阵列中。所述指令高速缓存可基于标记阵列操作的结果执行数据阵列操作来检索指令。
所述处理系统可通过起始标记阵列操作来使用将存取(例如,提取)的下一指令(循序指令)的推测性地址执行指令的寻址。可在完成下一指令的ITLB地址转换之前执行所述标记阵列操作。所述处理系统可指定存储用作下一指令的推测性物理地址的先前指令的物理地址(由ITLB提供)的上一物理地址缓冲器。通过使用推测性物理地址针对下一指令执行标记阵列操作,可避开与由ITLB针对下一指令执行的地址转换操作相关联的延迟。但是,所述处理系统可由于使用推测性物理地址来存取下一指令而遇到延迟。举例来说,当第一指令为分支指令,并且第二指令为驻留在与第一指令不同的存储器页面处的分支指令的“目标”时,提供到标记阵列的第二指令的推测性地址可无效。作为另一个实例,当第一指令和第二指令在循序存储器地址处,但当前指令在一个存储器页面的上一地址处,并且第二指令在下一存储器页面的第一地址处时,第二指令的推测性物理地址(基于当前指令的物理地址)将无效。
由于第二地址的推测性地址无效,处理系统可能必须从ITLB检索第二指令的有效物理地址。处理系统随后重播所述指令,其可包含刷新处理系统指令提取管线和通过用第二指令的有效物理地址执行另一个标记阵列操作来重新起始指令提取。执行指令的重播引起处理延迟并消耗处理系统的资源。
发明内容
为缩短指令处理延迟(例如由于指令重播),处理系统可使用跨页缓冲器(PCB)执行推测性寻址。所述PCB可用于在特定指令(例如,第一指令)的处理阶段(例如,预提取阶段)期间执行推测性寻址,以避免将由处理系统处理的下一指令(例如,第二指令)的处理延迟。举例来说,可预测第二指令在第二指令位于与包含第一指令的存储器页面不同的存储器页面处时引起指令提取重播。处理系统可能必须由于存取第一存储器页面处的第一指令和随后存取不同于第一存储器页面的第二存储器页面处的第二指令而跨过存储器页面边界。
PCB的每个条目可对应于特定指令(例如,第一指令)的虚拟地址并且可包含对应于将在特定指令之后处理的下一指令(例如,第二指令)的物理地址(即“目标”物理地址)。目标物理地址可为识别下一指令的位置的有效物理地址。目标物理地址可对应于以下指令:预测所述指令(例如)由于位于与包含特定指令的存储器页面不同的存储器页面上而引起处理延迟,所述特定指令对应于特定PCB条目。
在特定实施例中,在处理系统使用PCB执行指令的推测性寻址之前,一或多个条目可存储在PCB内。可预定对应于存储在PCB中的所述条目中的每一个的目标物理地址引起处理延迟。在一个实例中,一或多个新条目对应于已识别为导致处理系统中的处理延迟的指令的目标物理地址。在另一个实例中,在将PCB中的一条目中的目标物理地址识别为指令的不正确物理地址之后,可在处理系统的操作期间更新所述条目。在此情况下,可用可从指令转换旁视缓冲器获得的指令的正确物理地址更新所述条目。
在第一指令的处理期间,处理系统可使用PCB执行推测性寻址来确定是否预测到将处理的第二指令(下一指令)引起处理延迟。处理系统可确定PCB是否具有对应于第一指令的虚拟地址的条目。当PCB具有对应于第一指令的条目时,可预测对应于所识别条目的目标物理地址引起处理延迟。也就是说,第二指令的目标物理地址可位于不同存储器页面上,使得处理系统可能必须跨过存储器页面边界来存取第二指令。在不使用PCB执行推测性寻址的情况下,处理系统可引发处理延迟,例如由与存取第二指令可遇到的存储器页面边界相关的指令提取重播导致的延迟。举例来说,处理系统可在尝试使用最近存取的指令(例如,第一指令)的上一物理地址存取第二指令时执行指令重播。因为最近存取的指令的上一物理地址无法用于确定对第二指令的可寻址能力,所以可执行指令提取重播,所述第二指令位于与最近存取的指令不同的存储器页面上。基于最近存取的指令的上一物理地址执行指令高速缓存标记阵列操作可不提供定位对应于第二指令的标记阵列的可寻址能力。因此,执行指令提取重播来提供正确的可寻址能力。
处理系统可通过使用PCB条目的目标物理地址存取第二指令来避免处理延迟。PCB条目的目标物理地址可对应于识别为在预测第一指令引起指令延迟之后出现的指令。因为目标地址可对应于预测为第二指令的正确物理地址的目标物理地址,所以处理系统可基于第二指令的正确物理地址执行标记阵列操作。举例来说,处理系统可使用目标物理地址来执行指令高速缓存标记阵列操作,以定位对应于第二指令的标记阵列条目。因此,当从标记阵列操作识别的标记阵列可以用于提取阶段以从指令高速缓存的数据阵列部分检索第二指令而不引发指令提取延迟时,指令高速缓存可能能够加载对应于第二指令的高速缓存线。因此,通过使用PCB条目存取第二指令,处理系统可避免必须重播第二指令,所述重播可包含刷新处理系统指令提取管线和用第二指令的有效物理地址执行另一个标记阵列操作。
在特定实施例中,一种方法包含接收由处理器执行的指令。所述方法进一步包含在包含一或多个条目的跨页缓冲器(PCB)中执行查找来确定指令是否具有在PCB中的条目。PCB中的所述条目中的每一个包含物理地址。所述方法进一步包含当指令具有在跨页缓冲器中的所述条目时从跨页缓冲器的所述条目检索特定物理地址。从PCB的条目检索的所述特定物理地址可用于执行第二指令的推测性寻址,例如基于特定物理地址对第二指令执行标记阵列操作。
在另一个特定实施例中,一种设备包含跨页缓冲器(PCB),其包含一或多个条目。所述一或多个条目中的每一个包含物理地址。所述设备进一步包含标记阵列。所述设备进一步包含多路复用器,其配置成选择回应于具有对应于特定指令的条目的跨页缓冲器而从跨页缓冲器检索的特定物理地址。将多路复用器的输出提供到标记阵列。
在另一个特定实施例中,一种非暂时性计算机可读媒体存储可在处理系统内执行以引起处理系统接收特定指令以用于执行的指令。所述指令进一步可执行以在包含一或多个条目的跨页缓冲器(PCB)中执行查找来确定特定指令是否具有在PCB中的条目。所述条目中的每一个包含物理地址。所述指令进一步可执行以在跨页缓冲器(PCB)具有在PCB中的条目时从跨页缓冲器的所述条目检索特定物理地址。从PCB的条目检索的所述特定物理地址可用于执行第二指令的推测性寻址,例如基于特定物理地址对第二指令执行标记阵列操作。
在另一个特定实施例中,一种设备包含用于存储一或多个条目的装置,所述一或多个条目中的每一个包含物理地址。所述设备包含用于执行标记阵列操作的装置。所述设备包含用于选择地址的装置,所述地址对应于回应于用于存储的装置具有对应于特定指令的条目而从用于存储的装置检索的特定物理地址。将用于选择地址的装置的输出提供到用于执行标记阵列操作的装置。
由所公开实施例中的至少一个提供的特定优点包含降低与存取将由处理器执行的指令(例如,由存储器页面边界分离的指令)相关联的处理延迟,所述存储器页面边界可引起处理器引发指令提取重播。另一个特定优点包含通过使用虚拟到物理地址跨页缓冲器确定是否可预测下一特定指令引起处理延迟来改良指令的推测性寻址。跨页缓冲器可提供物理地址,所述物理地址可用于执行已预测引起处理延迟的下一特定指令的推测性寻址。
本发明的其它方面、优点和特征将在审阅全部申请案之后变得显而易见,所述全部申请案包含以下部分:附图说明、具体实施方式和权利要求书。
附图说明
图1为使用跨页缓冲器来执行推测性寻址的设备的第一实施例的框图;
图2为使用跨页缓冲器来执行推测性寻址的设备的第二特定实施例的框图;
图3为说明针对指令集的管线化处理的特定实施例的实例的图,所述处理包含使用跨页缓冲器的推测性寻址;
图4为使用跨页缓冲器来执行推测性寻址的方法的第一特定实施例的流程图;
图5为使用跨页缓冲器来执行推测性寻址的方法的第二特定实施例的流程图;及
图6为无线电子装置的框图,所述无线电子装置包含可操作以使用跨页缓冲器执行推测性寻址的组件。
具体实施方式
下文参考图式描述本发明的特定实施例。在描述中,贯穿图式由常用参考数字指定常用元件。
参考图1,说明配置成使用跨页缓冲器执行推测性寻址的设备的第一实施例的框图,并且一般将其指定为100。在特定实施例中,设备100可包含在处理器中。在另一个特定实施例中,设备100可实施为或以操作方式连接到包含至少一个处理器的处理系统。
设备100可包含存储一或多个条目的跨页缓冲器(PCB)120。每个PCB条目(例如,第一PCB条目112、第二PCB条目114或第三PCB条目116)可对应于特定指令的虚拟地址并且可包含物理地址(例如,“目标”物理地址)。物理地址可对应于将处理的下一指令(例如,第二指令)。每个PCB条目中的虚拟地址和物理地址可对应于不同存储器页面。举例来说,第一PCB条目112包含虚拟地址(VA)122和物理地址(PA)132。类似地,第二PCB条目114包含虚拟地址124和对应的物理地址134。第三PCB条目116包含虚拟地址126和对应的物理地址136。
在特定实施例中,可在指令处理开始之前预先存储PCB 120中的一或多个条目112至116。可预定对应于存储在PCB 120中的条目112至116中的每一个的目标物理地址132至136引起处理延迟。举例来说,目标物理地址可能已识别为在存取与目标物理地址相关联的指令时的先前实例期间引起处理延迟。在其它特定实施例中,一或多个新条目可在指令的处理期间(例如在预提取阶段期间)存储或更新在PCB 120中。在一个实例中,一或多个新条目可对应于已识别为引起处理延迟的指令的目标物理地址。
在另一个实例中,在已将条目的目标物理地址识别为含有预测引起处理延迟的指令的不正确目标物理地址之后,可更新PCB 120中的条目112至116中的一个。可用可从指令转换旁视缓冲器获得的指令的正确物理地址更新所识别的条目。
在特定实施例中,PCB 120的使用可限于指令的推测性寻址,已预测所述指令由于涉及跨过存储器页面边界的指令的可存取性而引起指令提取重播。也就是说,在PCB 120的每个条目中,对应于条目的虚拟地址的指令可位于第一存储器页面上,并且对应于所述条目的物理地址的指令可位于不同于第一存储器页面的第二存储器页面上。可通过含有一系列指令的物理存储器页面(“存储器页面”)从物理存储器(例如,主存储器)存取指令。指令中的每一个可根据物理地址寻址。物理存储器页面对应于物理存储器中物理存储器页面的内容所定位的连续的长度固定的区块。在特定实施例中,PCB 120限于(例如,专用于)存储包含或识别对应于不同存储器页面的虚拟地址和目标物理地址的条目。
设备100可包含配置成存储指示上一物理地址(上一PA)148的信息的上一物理地址(上一PA)缓冲器130。上一PA 148可对应于最近存取的(例如,最近提取的)指令的物理地址。
多路复用器(MUX)140可包含在设备100中。MUX 140可配置成接收可对应于特定物理地址128的第一输入104。特定物理地址128可为对应于PCB条目112至116中的一个的物理地址132至136中的一个。MUX 140可配置成接收可对应于存储在上一PA缓冲器130中的上一PA物理地址148的第二输入102。MUX 140可配置成选择第一输入104(例如,特定物理地址128)或第二输入102(例如,上一PA 148)。MUX 140的输出可为对应于第二指令(例如可在第一指令110之后提取的指令)的推测性第二指令物理地址142。MUX 140可配置成基于由参考图2进一步描述的控制输入指定的值选择所接收输入102、104中的一个。
设备100可包含指令高速缓存标记阵列150。指令高速缓存阵列150可为指令高速缓存(未展示)的部分。指令高速缓存标记阵列150可以操作方式耦合到MUX 140并配置成接收从MUX 140输出的推测性第二物理地址142。指令高速缓存标记阵列150可含有包含于高速缓存中并通过指令高速缓存标记阵列150索引的一或多个指令的地址(或地址的部分)。指令高速缓存标记阵列150可执行标记阵列操作来确定所接收物理地址是否匹配标记阵列中的条目。指令高速缓存标记阵列150可配置成产生指示针对所接收输入(例如,推测性第二物理地址142)执行的标记阵列操作的命中或未命中的结果152(例如,逻辑值0或逻辑值1)。所述结果152可指示由使用从MUX 140输出的推测性第二指令物理地址142的标记阵列操作导致命中还是未命中。
操作期间,可接收第一指令110以由处理器执行。PCB 120可用于执行推测性寻址来确定是否可在将在第一指令110之后处理以供执行的第二指令(未展示)的处理期间出现预测的延迟。举例来说,预测的延迟可为在第二指令的指令提取期间发生的指令提取延迟,所述指令提取在处理时可涉及跨过到不同存储器页面的存储器页面边界来存取第二指令。可在第一指令110的处理期间(例如,在预提取阶段期间)通过使用PCB 120执行推测性寻址。
为确定是否可出现预测的延迟,可执行在PCB 120中的查找来确定PCB条目112至116中的一个是否具有对应于第一指令110的条目。识别对应于第一指令110的条目可指示第二指令与预测延迟相关联。确定PCB 120是否具有对应于第一指令的条目可包含确定第一指令110的虚拟地址是否匹配对应于条目112至116中的特定PCB条目的虚拟地址(例如,虚拟地址122、虚拟地址124或虚拟地址126)。当定位到对应于第一指令110的PCB条目时,从PCB 120输出对应于所述PCB条目的特定物理地址128。
特定物理地址128(例如,第二指令的物理地址)可对应于匹配第一指令110的虚拟地址的特定PCB条目的物理地址(例如,物理地址132、物理地址134或物理地址136)。物理地址132至136中的每一个可对应于特定指令(例如,第二指令),所述特定指令在特定指令的处理期间可遇到预测的处理延迟(例如,指令提取重播)。对应于所识别的匹配第一指令110的虚拟地址的特定PCB条目的特定物理地址128可用于执行针对第二指令的推测性寻址。
可选择推测性物理地址(例如,推测性第二指令物理地址142)来用于执行针对第二指令的推测性寻址。MUX 140可选择性地将输入102或输入104作为推测性第二指令物理地址142输出。推测性第二指令物理地址142可为对应于第二指令的物理地址。可如关于图2进一步详细描述的基于PCB 120的输出控制MUX 140。举例来说,当第一指令110并不具有在PCB 120中的条目时,MUX 140输出来自上一PA缓冲器130的上一PA 148。
将由MUX 140输出的推测性第二指令物理地址142提供到指令高速缓存标记阵列150来执行标记阵列操作。标记阵列操作可确定是否将对应于推测性第二指令物理地址142的指令载入指令高速缓存。标记阵列操作可为推测性标记阵列操作,因为第二指令的物理地址142为基于先前指令所识别的推测性物理地址(例如,上一PA 148或来自具有第一指令的PCB的特定PCB条目)。标记阵列操作可产生指示已在指令高速缓存标记阵列150中发生命中还是未命中的结果152。回应于未命中,可从存储器检索对应于物理地址的高速缓存线,并且可更新指令高速缓存以包含检索的高速缓存线。
通过基于第二指令的推测性物理地址(基于在PCB 120处的查找操作)识别位于标记阵列的条目,可避免指令处理延迟,例如指令提取重播。举例来说,与仅基于上一PA 148进行推测性预提取的系统相比,处理器可避免在第二指令位于与第一指令不同的存储器页面上时在第二指令的处理的提取阶段期间发生的指令提取重播。通过基于推测性第二指令物理地址142执行推测性标记阵列操作,可在预提取阶段期间检索对应于第二指令的推测性物理地址142的高速缓存线。在提取阶段之前检索对应于第二指令的物理地址的高速缓存线可引起避免提取阶段期间的重播,因为将更新指令高速缓存以包含用于第二指令的高速缓存线。使用推测性物理地址142执行的推测性标记阵列操作的标记阵列查找结果可用于提取阶段以从指令高速缓存(未展示)的数据阵列部分(未展示)检索第二指令而不引发指令提取延迟,因为用于第二指令的高速缓存线载入指令高速缓存中。
参考图2,说明配置成使用跨页缓冲器执行推测性寻址的设备的第二特定实施例的框图,并且一般将其指定为200。设备200包含图1的120、上一PA缓冲器130、MUX140和指令高速缓存标记阵列150。设备200还包含比较器260、指令表旁视缓冲器(ITLB)270和逻辑280。在特定实施例中,设备200可包含在处理器中。在另一个特定实施例中,设备200可实施为或以操作方式连接到包含至少一个处理器的处理系统。设备200可在指令(例如,第一指令110)的处理期间使用PCB 120执行推测性寻址。
设备200可包含或可配置成存取ITLB 270来执行操作,以将与指令相关联的虚拟地址转换成物理地址。ITLB 270的输出218可对应于执行ITLB操作来将与第二指令212相关联的虚拟地址转换成物理地址的结果。ITLB 270的输出214可对应于执行ITLB操作来将与第一指令110相关联的虚拟地址转换成物理地址的结果。尽管将ITLB 270说明为具有两个输出214、218,但ITLB 270可产生用于每个ITLB操作的单一输出。举例来说,可在循序转换操作(并非同时转换操作)中产生输出214和输出218。尽管将ITLB270说明为具有两个输出214、218,但ITLB可配置成产生对应于针对一或多个额外指令执行ITLB操作的结果的一或多个额外输出(未展示)。尽管图2将ITLB 270描绘为执行地址转换,但在其它实施例中,可通过页表存取、地址计算或一或多种其它技术执行虚拟到物理地址转换。
比较器260配置成执行物理地址(例如,输出218)(对应于第二指令212的由ITLB270进行的转换的输出218)与第二指令212的推测性物理地址142的比较来确定推测性物理地址142是否匹配第二指令212的正确物理地址。比较器260可配置成接收第一输入264,所述第一输入对应于由ITLB 270针对第二指令212执行的ITLB操作的输出218(第二指令的物理地址)。比较器260可配置成接收第二输入266,所述第二输入对应于由MUX140输出的推测性第二指令物理地址142。比较器260可配置成执行第一输入264(输出218)与第二输入266(推测性第二指令物理地址142)的比较以产生指示比较结果的输出268。举例来说,当第一输入264和第二输入266匹配时,比较器260可输出‘1’,否则可输出‘0’。
逻辑280配置成基于推测性第二指令142是否为第二指令212的正确物理地址来选择性地输出272第二指令212的正确物理地址。输出272可用作第二指令212的正确物理地址,其可用作最近存取的指令的上一物理地址来执行针对后续指令(例如,第三指令)的推测性寻址。逻辑280可配置成接收比较器的输出268和由输出218提供的第二指令的正确物理地址。回应于比较器的输出268,逻辑280配置成当输出268指示推测性第二指令物理地址142并不匹配输出218时选择第二指令212的由ITLB 270进行的转换的输出218作为输出272。逻辑280可包含或实施为“与”逻辑门。
在特定实施例中,可更新上一PA缓冲器130以在产生推测性第二指令物理地址142时存储推测性第二指令物理地址142。如果推测性第二指令物理地址不正确,可回应于逻辑280的输出272在上一PA缓冲器130中更新上一PA 148。在另一个实施例中,可基于ITLB 270的输出(例如,输出214)更新上一PA缓冲器130。
在特定实施例中,PCB 120可配置成用针对第二指令212执行的ITLB操作的结果(例如,输出218)更新。举例来说,可更新图1的PCB条目112至116中的一个,使得将ITLB操作的结果218作为对应于具有第一指令110的虚拟地址的PCB条目112至116中的一个的物理地址存储。在特定实施例中,当比较器260确定已发生误预测时,可用逻辑280的输出272所提供的针对第二指令212的ITLB操作的结果218更新PCB 120。用第二指令212的正确物理地址更新PCB 120中的条目可使得当在第一指令110之后再次提取第二指令212时能够用正确物理地址执行推测性寻址。当在第一指令110之后再次提取第二指令212时,可基于匹配第一指令110的PCB条目执行针对第二指令212的推测性寻址,所述PCB条目可含有第二指令212的最近更新物理地址。
操作期间,可接收第一指令110以由处理器执行,并且可执行推测性寻址来确定在预测在第一指令110之后的第二指令的处理期间是否可出现预测的延迟。可存取PCB120来确定PCB条目112至116中的一个是否具有对应于第一指令110的虚拟地址,所述虚拟地址可指示第二指令212与预测的延迟相关联。对应于具有第一指令110的虚拟地址的PCB条目112至116中的特定PCB条目的物理地址(例如,图1的特定物理地址128)可用于执行针对第二指令212的推测性寻址。
ITLB 270可执行ITLB操作来将第一指令110的虚拟地址转换成第一指令110的正确物理地址214。在特定实施例中,设备可使用上一PA缓冲器130来存储对应于接收以由处理器(如果存在)执行的上一指令的物理地址。因而,可用第一指令110的物理地址更新上一PA缓冲器130。在特定实施例中,上一PA缓冲器130可存储对应于针对第一指令110的ITLB操作的结果214的输出214。通过存储最近存取指令(例如,第一指令110)的正确物理地址,可在基于PCB 120预测下一指令未引起延迟时从上一PA缓冲器130选择下一指令(例如,第二指令212)。举例来说,当因为PCB 120并不具有匹配最近存取指令(例如,第一指令110)的条目而预测第二指令212未引起延迟时,MUX 140可选择上一PA 148作为输出142。输出142为最近存取指令的物理地址,所述物理地址可用于存取第二指令212。因为预测第二指令212未引起延迟,所以第二指令212的顺序在共享存储器页面上可位于第一指令110之后。因此,可基于输出142中的上一PA 148从共享存储器页面存取第二指令212。
MUX 140可回应于控制输入216来选择将第二输入102或第一输入104作为推测性第二指令物理地址142输出。举例来说,当控制输入216具有‘1’(所述‘1’指示第一指令具有PCB 120中的条目)时,MUX 140可选择第一输入104。在另一个实例中,当第一指令110并不具有PCB 120中的条目时,控制输入216具有‘0’。当控制输入216具有‘0’时,MUX 140并不选择第一输入104而是选择第二输入102(对应于上一PA缓冲器130的输出(例如,上一PA148))作为对标记阵列操作的输出142。
回应于由MUX 140输出的推测性第二指令物理地址142,指令高速缓存标记阵列150可执行标记阵列操作来确定是否将推测性第二指令物理地址142载入指令高速缓存。标记阵列操作可产生指示在指令高速缓存标记阵列150中已发生命中还是未命中的结果152。
当正使用推测性第二指令物理地址142针对第二指令212进行推测性预提取时,可接收第二指令212并且将其作为输入提供到ITLB 270,以执行ITLB操作来将第二指令212的虚拟地址转换成物理地址。可将对应于针对第二指令212的ITLB操作结果的输出218作为第一输入264提供到比较器260。针对第二指令212的ITLB操作的结果(例如,输出218)可用于确定推测性第二指令物理地址142是否正确。
比较器260可执行在比较器260的第一输入264处的第二指令的ITLB输出218与在比较器260的第二输入266处的第二指令的推测性第二指令物理地址142之间的比较。在比较器260处执行的比较结果(由输出268表示)可指示与第二输入266相关联的推测性第二指令物理地址142是否正确。基于输出268是否指示推测性第二指令142正确,可做出是否重播由指令高速缓存标记阵列150针对第二指令212执行的标记阵列操作的确定。当推测性第二指令物理地址142不正确时可重播针对第二指令212的标记阵列操作。
在特定实施例中,可基于逻辑280的输出272重播第二指令212。第二指令212的重播可包含刷新执行第二指令212的处理器的指令提取管线和通过用第二指令212的正确物理地址执行另一标记阵列操作重新起始第二指令212的指令提取。关于是否重播第二指令212的确定可基于输出272是否指示推测性第二指令物理地址142正确。当输出272指示推测性第二指令物理地址142不正确时,可重播第二指令212。举例来说,输出272可含有零值,并且当推测性第二指令物理地址142正确时可不重播第二指令212。当推测性第二指令物理地址142不正确时,可重播第二指令212,并且输出272可具有为对应于输出218的第二指令212的正确物理地址的值。
在特定实施例中,针对第二指令212的ITLB操作的结果(例如,输出218)可存储在上一PA缓冲器130。用第二指令212的有效地址更新上一PA缓冲器130可使得能够在通过输入102由MUX 140选择第二指令之后处理指令,以使用上一PA缓冲器130中的上一PA 148针对后一指令执行推测性寻址。替代地,基于确定推测性第二指令地址142无效,输出218可存储在上一PA缓冲器130中。将第二指令212的有效物理地址存储在上一PA缓冲器130中可允许使用上一PA缓冲器130在第二指令212的重播期间正确提取第二指令212。在特定实施例中,基于确定推测性第二指令142无效,逻辑280的输出272可存储在上一PA缓冲器130中。
在特定实施例中,针对第二指令212的ITLB操作的结果(例如,输出218)可存储在PCB 120的条目中。举例来说,可更新PCB条目112至116中的一个,使得将ITLB操作的结果作为对应于具有第一指令110的虚拟地址的PCB条目112至116中的一个的物理地址存储。在特定实施例中,可基于确定推测性第二指令142无效而用逻辑280的输出272(例如,针对第二指令212的ITLB操作的输出218)更新PCB 120。通过用基于ITLB操作结果确定的第二指令的物理地址更新PCB 120的特定条目,可用最近有效物理地址执行用于第二指令212的另一次出现的推测性寻址。
通过用预测引起处理延迟的指令的有效地址更新上一物理地址缓冲器,处理系统可至少缩短关于先前指令的不正确物理地址引发的处理延迟。执行PCB条目中所识别的指令的推测性物理地址与从ITLB获得的有效物理地址之间的比较可使得处理系统能够确定在比较指示推测性物理地址无效时是否更新PCB。因此,处理系统可更加肯定用于执行推测性寻址的PCB可使得处理系统能够成功地避免处理延迟。
参考图3,图300说明管线化处理的特定实施例的实例,所述管线化处理包含使用跨页缓冲器(PCB)针对指令集(例如,第一指令312、第二指令314和第三指令316)进行推测性寻址。图300说明多个时间段(T)中的每一个的预提取阶段310、提取阶段320和执行阶段330的状态,所述时间段包含第一时间段(T1)340、第二时间段(T2)350和第三时间段(T3)360。时间段T1 340、T2 350和T3 360中的每一个可对应于处理器的一或多个时钟循环或管线循环。可在指令处理的相应预提取阶段310期间执行用于推测性寻址指令312至316的集合中的每一个的方法。指令集中的特定指令在预提取阶段310中的处理可发生在已由处理器接收特定指令来处理以供执行之后。预提取阶段310在特定指令的管线处理中可早于提取阶段320和执行阶段330尽管图300中未说明,但当在预提取阶段310、提取阶段320或执行阶段330中处理指令312至316的集合时,可在时间段T1 340、T2 350和T3 360期间接收其它指令以用于处理。在特定实施例中,在预提取阶段310期间的处理包含针对指令312至316的集合的推测性寻址并且可由图1的设备100或图2的设备200执行。
在第一时间段(T1)340期间,提取阶段320和执行阶段330可闲置。在第一时间段(T1)340期间的处理的预提取阶段310中,可使用PCB执行用于执行针对第一指令312的推测性寻址的方法372。在342处做出第一指令312是否具有PCB内的条目的确定。举例来说,图1的设备100可确定第一指令312是否具有PCB 120内的条目。设备100可通过确定PCB条目112至116的虚拟地址122至126中的一个是否匹配第一指令312的虚拟地址来确定第一指令312是否具有条目。
当第一指令312具有PCB内的条目时,在344处从PCB选择特定物理地址。举例来说,图1的设备100可从PCB 120选择对应于PCB条目112至116中匹配第一指令312的一个的物理地址132至136中的一个。基于匹配第一指令312的PCB条目112至116中的特定PCB条目,设备100可控制MUX 140来选择对应于特定PCB条目的特定物理地址。当已预测将在第一指令312之后处理的第二指令314引起处理延迟(例如指令提取重播)时,PCB可具有匹配第一指令312的条目。为了说明,第二指令314可位于不同于第一指令312的存储器页面上,使得存储器页面边界分离第一指令312与第二指令314。指令提取重播可发生在存取第二指令314而不使用PCB执行推测性寻址时。因此,从PCB 120选择的特定物理地址可为第二指令314的推测性物理地址,所述第二指令可位于不同于第一指令312的存储器页面上。
在346处用所选择的物理地址执行标记阵列操作。所选择的物理地址对应于从具有第一指令的PCB的条目选择的物理地址。举例来说,指令高速缓存标记阵列150可回应于对应于从MUX 140输出的第二指令314的所选择物理地址执行标记阵列操作。因为所选择的物理地址可为推测性物理地址,所以标记阵列操作可为推测性的。基于第二指令314的推测性物理地址在预提取阶段310期间执行标记阵列操作可缩短与处理第二指令314相关联的延迟。举例来说,在第二时间段(T2)350期间,当在提取阶段320中处理第二指令314时,设备100可避免基于第二指令314的不正确物理地址的第二指令314的指令提取重播。在348处,可用所选择的物理地址更新上一PA。
在第二时间段(T2)350期间,提取阶段320执行第一指令312的提取。执行阶段330可保持闲置。提取阶段320中的处理可由于使用PCB在第一时间段(T1)340期间的预提取阶段310中执行的推测性寻址而加速。因为指令高速缓存标记阵列操作可不在第二时间段(T2)350期间执行,所以可发生加速。在第二时间段(T2)350期间的处理的预提取阶段310中,可根据方法382执行使用PCB的第二指令314的推测性寻址。
在352处做出第二指令314是否具有PCB内的条目的确定。举例来说,图1的设备100可确定第二指令314是否具有PCB 120内的条目。用于执行第二指令314的推测性寻址的PCB可对应于根据在第一时间段(T1)340期间的预提取阶段310中执行的方法372存取的PCB(例如,PCB 120)。设备100可通过确定PCB条目112至116的虚拟地址122至126中的一个是否匹配第二指令314的虚拟地址来确定第二指令314是否具有PCB 120内的条目。
在354处,当PCB并不具有对应于第二指令314的条目时,从上一物理地址缓冲器选择物理地址。当第三指令316位于与第二指令314相同的存储器页面内时,PCB可不具有对应于第二指令314的条目。换句话说,第二指令314可不通过存储器页面边界与第三指令316分离。因而,因为尚未预测下一指令(例如,第三指令316)引起由涉及跨越存储器页面边界的对第三指令316的可存取性导致的处理延迟,所以可不使用PCB执行推测性寻址。因此,当预测第三指令316未引起处理延迟时,从上一物理地址缓冲器选择物理地址。
在一个实例中,当PCB 120并不具有对应于第二指令314的条目时,图1的设备100可从上一PA缓冲器130选择第三指令316的物理地址。设备100可控制MUX 140来从上一PA缓冲器130选择第三指令316的物理地址。当已预测将在第二指令314之后处理的第三指令316引起处理延迟时,PCB 120可具有带有第二指令314的条目。
在356处用所选择的物理地址执行标记阵列操作。举例来说,指令高速缓存标记阵列150可用对应于从MUX 140输出的第三指令316的所选择物理地址执行标记阵列操作。所选择的物理地址可对应于存储在上一PA缓冲器130中的上一PA 148。所选择物理地址可用于定位对应于第三指令316的标记阵列。
在第三时间段(T3)360期间,提取阶段320执行第二指令314的提取。执行阶段330执行第一指令312。提取阶段320中的处理可由于使用PCB在第一时间段(T1)340期间的预提取阶段310中执行的推测性寻址而加速。因为使用从PCB获得的推测性物理地址在预提取阶段310中针对第二指令314执行指令高速缓存标记阵列操作,所以可发生加速。因此,在第三时间段(T3)360期间的提取阶段320中,可不针对第二指令314执行指令高速缓存标记阵列操作。在第三时间段(T3)360期间的处理的预提取阶段310中,可根据方法392执行使用PCB的第三指令316的推测性寻址。
在362处做出第三指令316是否具有PCB内的条目的确定。举例来说,图1的设备100可确定第三指令316是否具有PCB 120内的条目。用于执行第四指令的推测性寻址的PCB可对应于根据在第二时间段(T2)350期间在预提取阶段310中执行的方法382存取的PCB(例如,PCB 120)。设备100可通过确定PCB条目112至116的虚拟地址122至126中的一个是否匹配第三指令316的虚拟地址来确定第三指令316是否具有PCB120内的条目。
在364处,当PCB并不具有对应于第三指令316的条目时,从上一物理地址缓冲器选择物理地址。举例来说,当PCB 120并不具有对应于第三指令314的条目时,设备100可从上一PA缓冲器130选择第三指令316的物理地址。设备100可控制MUX 140来从上一PA缓冲器130选择物理地址。当已预测将在第三指令316之后处理的第四指令引起处理延迟时,PCB120可具有带有第三指令316的条目。
在366处用所选择的物理地址执行标记阵列操作。举例来说,指令高速缓存标记阵列150可用对应于从MUX 140输出的第四指令的所选择物理地址输出执行标记阵列操作。所选择的物理地址可对应于存储在上一PA缓冲器130中的上一PA 148。所选择物理地址可用于定位对应于第四指令的标记阵列。
参考图4,说明使用跨页缓冲器执行推测性寻址的方法400的第一特定实施例的流程图。作为示意性实例,方法400可由图1的设备100或图2的设备200执行。
在402处,接收指令以由处理器执行。举例来说,图1的设备100可接收第一指令110以由处理器执行。
在404处,在包含一或多个条目(所述条目中的每一个包含物理地址)的跨页缓冲器中执行查找来确定指令是否具有在跨页缓冲器中的条目。举例来说,图1的设备100可在PCB 120中执行查找来确定第一指令110是否具有在PCB 120中的条目(例如,第一PCB条目112、第二PCB条目114或第三PCB条目116)。设备100可通过确定第一指令110的虚拟地址是否匹配对应于PCB条目112至116中的一个的虚拟地址122至126中的一个来确定第一指令110是否具有在PCB 120中的条目。当第一指令110的虚拟地址匹配对应于PCB条目112至116中的一个的虚拟地址122至126中的一个时,第一指令110可具有条目。
在406处,当跨页缓冲器具有在跨页缓冲器中的条目时,从在跨页缓冲器中的所述条目检索特定物理地址。举例来说,当PCB条目112至116中的一个具有特定PCB条目(所述PCB条目具有匹配第一指令110的虚拟地址的虚拟地址(例如,虚拟地址122至126中的一个)时,图1的设备100控制MUX 140来从在PCB 120中的所述条目检索特定物理地址。
方法400通过存取跨页缓冲器来检索下一指令的物理地址使得能够缩短潜在延迟。相比仅基于上一物理地址,可更准确地执行推测性预提取。因此,可缩短处理延迟。
参考图5,说明使用跨页缓冲器来执行推测性寻址的方法500的第二特定实施例的流程图。作为一实例,可由图1的设备100或图2的设备200执行方法500。
在502处,接收指令以由处理器执行。举例来说,图2的设备200可接收第一指令110以由处理器执行。
在504处,在包含一或多个条目(所述条目中的每一个包含物理地址)的跨页缓冲器中执行查找来确定指令是否具有在跨页缓冲器中的条目。举例来说,图2的设备200可在PCB 120中执行查找来确定第一指令110是否具有在PCB 120中的条目(例如,第一PCB条目112、第二PCB条目114或第三PCB条目116)。设备200可通过确定第一指令110的虚拟地址是否匹配对应于PCB条目112至116中的一个的虚拟地址122至126中的一个来确定第一指令110是否具有在PCB 120中的条目。当第一指令110的虚拟地址匹配对应于PCB条目112至116中的一个的虚拟地址122至126中的一个时,第一指令110可具有条目。
在506处,当跨页缓冲器具有在跨页缓冲器中的条目时,从在跨页缓冲器中的所述条目检索特定物理地址。举例来说,当图2的PCB 104具有特定PCB条目(所述PCB条目具有匹配第一指令110的虚拟地址的虚拟地址(例如,虚拟地址122至126中的一个)时,图2的设备200可控制MUX 140来从在PCB 120中的所述条目检索特定物理地址128。
在508处,可通过使用从跨页缓冲器检索的特定物理地址执行推测性标记阵列操作。举例来说,指令高速缓存标记阵列150可使用从PCB 120检索的特定物理地址(例如,推测性第二指令物理地址142)执行推测性标记阵列操作。
在510处,可将特定物理地址与指令旁视缓冲器操作的结果进行比较来确定是否重播标记阵列操作。举例来说,比较器260可将特定物理地址与由ITLB 270执行的指令旁视缓冲器操作的结果进行比较来确定是否重播标记阵列操作。指令旁视缓冲器操作的结果可对应于将在第一指令110之后执行的第二指令212的有效物理地址。比较器260可执行输出218(对应于第二指令212的有效物理地址)与推测性第二指令物理地址142的比较。推测性第二指令物理地址142可对应于选自从PCB 120检索的条目的特定物理地址128。比较器的输出268可指示推测性第二指令物理地址142是否有效。基于输出268是否指示推测性第二指令物理地址142有效,设备200可确定是否重播通过指令高速缓存标记阵列150针对第二指令212执行的标记阵列操作。
在512处,可用指令转换旁视缓冲器操作的结果更新跨页缓冲器。举例来说,图2的设备200可用对应于针对第二指令212的ITLB操作的输出218的结果来更新所述PCB120。举例来说,可更新PCB条目112至116中的一个,使得将ITLB操作的结果作为对应于具有第一指令110的虚拟地址的PCB条目112至116中的一个的物理地址存储。
图6为无线电子装置600的框图,所述无线电子装置包含可操作以使用跨页缓冲器执行推测性寻址的组件。无线电子装置600包含耦合到存储器632的处理器610。在说明性实例中,无线电子装置600可包含图1的设备100、图2的设备200或其组件。无线电子装置600可根据参考图1至5描述的方法或功能操作。
处理器610可包含或实施图1的PCB 120、图1的上一PA 130、图1的MUX 140、图1的指令高速缓存标记阵列150或其组合。举例来说,模块可集成到处理器610中并且可包含专用电路或其它逻辑来执行参考图1至5描述的功能性的至少一部分。
存储器632可为存储指令620的非暂时性实体计算机可读和/或处理器可读存储装置。可由处理器610执行指令620来实施图1的PCB 120、图1的上一PA缓冲器130、图1的MUX140图1的指令高速缓存标记阵列150或其组合。举例来说,指令620可包含可由处理器610执行以执行关于图1的PCB 120、图1的上一PA缓冲器130、图1的MUX 140、图1的指令高速缓存标记阵列150或其组合描述的一或多种功能或方法的指令。指令620可包含可由处理器610执行来引起处理器610执行关于图1至2描述的一或多种功能或方法、图3的方法372、图3的方法382、图3的方法392、图4的方法400、图5的方法500或其组合的指令。为了说明,指令620可包含用来使用图1的120执行推测性寻址的代码。存储器632可包含图1的PCB 120。存储器632可包含图1的上一PA缓冲器130。在其它实施例中,本文中描述为由执行来自存储器632的指令的处理器610执行的一或多个功能可替代地通过专用硬件(例如,可编程逻辑阵列、FPGA装置、ASIC或编程为执行所识别功能的处理单元(例如,CPU、DSP、微处理器、ARM处理器、控制器、另一硬件装置或固件装置)或其任何组合)执行。
图6还展示耦合到处理器610并耦合到显示器628的显示控制器626。编码器/解码器(编解码器)634也可耦合到处理器610。扬声器636和麦克风638可耦合到编解码器634。
图6还指示无线控制器640可耦合到处理器610,其中无线控制器640通过收发器650与天线642通信。无线控制器640、收发器650和天线642可因此表示使得能够通过移动通信装置600无线通信的无线接口。无线电子装置600可包含众多无线接口,其中不同无线网络配置成支持不同联网技术或联网技术的组合。
在特定实施例中,处理器610、存储器632、显示控制器626、编解码器634、无线控制器640和收发器650包含在系统级封装或系统级芯片装置622中。在特定实施例中,输入装置630和电源644耦合到系统级芯片装置622。此外,在特定实施例中,如图6中所说明,输入装置630、扬声器636、麦克风638、天线642和电源644在系统级芯片装置622外部。然而,输入装置630、扬声器636、麦克风638、天线642和电源644中的每一个可耦合到系统级芯片装置622的组件,例如接口或控制器。
应注意,尽管图6描绘无线电子装置,但处理器610和存储器632可集成到其它装置中,例如多媒体、播放器、娱乐单元、导航装置、个人数字助理(PDA)、移动个人计算机、智能手机、固定位置数据单元、计算装置(例如,计算装置、平板计算装置、便携计算装置、台式计算装置等)、媒体装置或配置成处理图像数据的另一装置。
结合描述的系统和方法,公开使用跨页缓冲器执行推测性寻址的设备。所述设备包含用于存储一或多个条目的装置,所述一或多个条目中的每一个包含物理地址。举例来说,用于存储一或多个条目的装置可包含处理器610、存储器632、图1的PCB 120、配置成存储各包含物理地址的一或多个条目的另一装置、或其任何组合。所述设备包含用于选择地址的装置,所述地址对应于回应于用于存储的装置具有对应于特定指令的条目而从用于存储的装置检索的特定物理地址。举例来说,用于选择的装置可包含处理器610、图1的MUX140、配置成选择地址的另一装置,或其组合。将用于选择地址的装置的输出提供到用于执行标记阵列操作的装置。用于执行标记阵列操作的装置可配置成使用从用于存储的装置检索的特定物理地址执行推测性标记阵列操作。举例来说,用于执行标记阵列操作的装置可为图1或图2的指令高速缓存标记阵列150或配置成执行标记阵列操作的任何其它装置。
所属领域的技术人员将进一步了解,结合本文所公开的实施例描述的各种说明性逻辑区块、配置、模块、电路和算法步骤可以实施为电子硬件、计算机软件或两者的组合。上文已大体在其功能性方面描述各种说明性组件、区块、配置、模块、电路和步骤。此功能性是实施为硬件还是软件取决于特定应用和外加于整个系统的设计约束。所属领域的技术人员可针对每个特定应用以不同方式实施所描述的功能性,但此类实施决策不应被解释为引起偏离本发明的范围。
结合本文中所公开的实施例而描述的方法或算法的步骤可直接体现于硬件、由处理器执行的软件模块或其两者的组合中。软件模块可驻留在随机存取存储器(RAM)、闪存、只读闪存(ROM)、可编程只读闪存(PROM)、可擦除可编程只读闪存(EPROM)、电可擦除可编程只读闪存(EEPROM)、寄存器、硬盘、可移动磁盘、压缩光盘只读存储器(CD-ROM)或所属领域中已知的任何其它形式的非暂时性存储媒体中。示例性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息及将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成一体式。处理器和存储媒体可驻留于ASIC中。ASIC可以驻留在计算装置或用户终端(例如,移动电话或PDA)中。在替代方案中,处理器和存储媒体可作为离散组件驻留在计算装置或用户终端中。
提供对所公开实施例的先前描述以使得所属领域的技术人员能够制造或使用所公开的实施例。所属领域的技术人员将容易对这些实施例的各种修改显而易见,并且可将本文定义的原理应用到其它实施例而不偏离本发明的范围。因此,本发明并不希望限于本文所公开的实施例,而应符合与如由所附权利要求书由定义的原理和新颖特征一致的可能最宽范围。
Claims (24)
1.一种用于推测性寻址的方法,其包括:
接收将由处理器执行的一系列指令中的指令,所述指令的每一者存储于存储器中;
在跨页缓冲器中执行查找来确定所述跨页缓冲器是否具有对应于所述指令的关联条目,所述跨页缓冲器包括一个或多个条目,所述一个或多个条目中的每一个包含特定指令的指令地址和对应于下一循序指令的物理地址,所述下一循序指令在所述系列指令中的所述特定指令之后;及
基于具有对应于所述指令的关联条目的所述跨页缓冲器:
从所述跨页缓冲器中的所述关联条目检索第一物理地址,所述第一物理地址对应于在所述系列指令中的所述指令之后的第二指令;以及
基于所述第一物理地址来执行标记阵列操作以定位对应于所述第二指令的标记阵列条目。
2.根据权利要求1所述的方法,其中所述跨页缓冲器中的每个条目的所述指令地址和所述物理地址分别对应于第一存储器页面和不同于所述第一存储器页面的第二存储器页面。
3.根据权利要求1所述的方法,其中在所述跨页缓冲器中的每一条目的所述指令地址和所述物理地址分别识别第一对应的指令和第二对应的指令,并且其中所述第一对应的指令和所述第二对应的指令位于循序存储器地址处。
4.根据权利要求1所述的方法,其进一步包括将指令转换旁视缓冲器操作的结果存储在上一物理地址缓冲器中。
5.根据权利要求4所述的方法,其进一步包括基于确定所述跨页缓冲器不具有对应于所述指令的任一条目而从所述上一物理地址缓冲器选择上一物理地址。
6.根据权利要求1所述的方法,其进一步包括:在预提取阶段期间检索对应于所述第一物理地址的缓存线。
7.根据权利要求1所述的方法,其中所述特定指令的指令地址识别所述指令的虚拟地址,其中所述标记阵列操作包括在第一时间段期间在处理的预提取阶段处执行所述指令的推测性寻址,其中所述第一时间段在第二时间段之前,在所述第二时间段期间在处理的所述预提取阶段处执行所述第二指令的推测性寻址,并且所述操作还包括在所述第二时间段期间在处理的提取阶段处执行所述指令的提取。
8.根据权利要求7所述的方法,其进一步包括:
比较所述第一物理地址与指令转换旁视缓冲器操作的结果来确定是否重播所述标记阵列操作;及
用所述指令转换旁视缓冲器操作的所述结果更新所述跨页缓冲器。
9.根据权利要求1所述的方法,其中在处理管线的提取阶段之前从所述关联条目读取所述第一物理地址。
10.根据权利要求3所述的方法,其中所述第一对应的指令位于第一存储器页面的上一地址处,并且其中所述第二对应的指令位于下一存储器页面的第一地址处。
11.一种用于推测性寻址的设备,其包括:
跨页缓冲器,其包含一或多个条目,所述一或多个条目中的每一个包含特定指令的指令地址和对应于下一循序指令的物理地址,所述下一循序指令在存储于存储器中的一系列指令中的所述特定指令之后;
标记阵列,其经配置以基于来自所述一或多个条目中的关联条目的第一物理地址来执行标记阵列操作以定位对应于第二指令的标记阵列条目,其中所述第二指令在所述系列指令中的指令之后;及
多路复用器,其配置成响应于所述跨页缓冲器具有对应于所述指令的所述关联条目而选择所述关联条目的所述第一物理地址,其中将所述多路复用器的输出提供到所述标记阵列。
12.根据权利要求11所述的设备,其中指令转换旁视缓冲器操作的结果存储在上一物理地址缓冲器中,且其中所述多路复用器进一步配置成基于确定所述跨页缓冲器并不具有任何对应于所述指令的条目而选择所述上一物理地址缓冲器的输出。
13.根据权利要求12所述的设备,其中所述标记阵列配置成用由所述多路复用器选择的所述上一物理地址缓冲器的所述输出来执行标记阵列操作。
14.根据权利要求11所述的设备,其进一步包括比较器,所述比较器配置成比较所述第一物理地址与指令转换旁视缓冲器操作的结果来确定是否重播所述标记阵列操作。
15.根据权利要求14所述的设备,其中用所述指令转换旁视缓冲器操作的所述结果更新所述跨页缓冲器。
16.根据权利要求14所述的设备,其中当所述比较器的结果和所述指令转换旁视缓冲器操作的所述结果相同时,上一物理地址缓冲器存储所述第一物理地址。
17.根据权利要求16所述的设备,其中在所述跨页缓冲器中的每个条目中的所述指令地址和所述物理地址分别对应于第一存储页面和不同于所述第一存储页面的第二存储页面。
18.根据权利要求11所述的设备,其中所述标记阵列配置成在处理管线的提取阶段之前执行推测性标记阵列操作,所述标记阵列操作使用从所述跨页缓冲器检索的所述第一物理地址。
19.根据权利要求11所述的设备,其中所述关联条目的所述指令地址和所述物理地址分别识别第一指令和第二指令,并且其中所述第一指令和所述第二指令位于循序存储器地址处。
20.根据权利要求19所述的设备,其中所述第一指令位于第一存储器页面的上一地址处,并且其中所述第二指令位于下一存储器页面的第一地址处。
21.一种用于推测性寻址的设备,其包括:
用于存储一或多个条目的装置,所述一或多个条目中的每一个包含第一条目,所述第一条目包括与特定指令相关联的指令地址和对应于下一循序指令的物理地址,所述下一循序指令在存储于存储器中的一系列指令中的所述特定指令之后;及
用于响应于确定用于存储的所述装置包括对应于所述系列指令中的指令的关联条目而从用于存储的所述装置检索第一物理地址的装置;以及
用于基于从所述关联条目检索的所述第一物理地址来执行标记阵列操作以定位对应于第二指令的标记阵列条目的装置,其中所述第二指令在所述系列指令的所述指令之后。
22.根据权利要求21所述的设备,其中用于执行标记阵列操作的所述装置配置成在处理管线的提取阶段之前执行所述标记阵列操作,所述标记阵列操作使用从用于存储的所述装置检索的所述第一物理地址。
23.一种计算机可读存储媒体,其存储可在处理系统内执行以进行以下操作的指令:
接收将由处理器执行的一系列指令中的指令,所述指令的每一者存储于存储器中;
在跨页缓冲器中执行查找来确定所述跨页缓冲器是否具有对应于所述指令的关联条目,所述跨页缓冲器包括一个或多个条目,所述一个或多个条目中的每一个包含特定指令的指令地址和对应于下一循序指令的物理地址,所述下一循序指令在所述系列指令中的所述特定指令之后;及
基于具有对应于所述指令的关联条目的所述跨页缓冲器:
从所述跨页缓冲器中的所述关联条目检索第一物理地址,所述第一物理地址对应于在所述系列指令中的所述指令之后的第二指令;以及
基于所述第一物理地址来执行标记阵列操作以定位对应于所述第二指令的标记阵列条目。
24.根据权利要求23所述的计算机可读存储媒体,其中在所述跨页缓冲器中的每个条目的所述指令地址和所述物理地址分别对应于第一存储器页面和不同于所述第一存储器页面的第二存储器页面。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/721,442 US9804969B2 (en) | 2012-12-20 | 2012-12-20 | Speculative addressing using a virtual address-to-physical address page crossing buffer |
US13/721,442 | 2012-12-20 | ||
PCT/US2013/077068 WO2014100653A1 (en) | 2012-12-20 | 2013-12-20 | Speculative addressing using a virtual address-to-physical address page crossing buffer |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104871144A CN104871144A (zh) | 2015-08-26 |
CN104871144B true CN104871144B (zh) | 2018-03-09 |
Family
ID=49998682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380066209.1A Expired - Fee Related CN104871144B (zh) | 2012-12-20 | 2013-12-20 | 使用虚拟地址到物理地址跨页缓冲器的推测性寻址 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9804969B2 (zh) |
EP (1) | EP2936323B1 (zh) |
JP (1) | JP2016505972A (zh) |
CN (1) | CN104871144B (zh) |
WO (1) | WO2014100653A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140310500A1 (en) * | 2013-04-11 | 2014-10-16 | Advanced Micro Devices, Inc. | Page cross misalign buffer |
CN104133780B (zh) * | 2013-05-02 | 2017-04-05 | 华为技术有限公司 | 一种跨页预取方法、装置及系统 |
US9667754B2 (en) * | 2014-08-11 | 2017-05-30 | Oracle International Corporation | Data structure and associated management routines for TCP control block (TCB) table in network stacks |
US9570134B1 (en) | 2016-03-31 | 2017-02-14 | Altera Corporation | Reducing transactional latency in address decoding |
CN107077376B (zh) * | 2016-12-07 | 2020-10-16 | 深圳前海达闼云端智能科技有限公司 | 帧缓存实现方法、装置、电子设备和计算机程序产品 |
US11201811B2 (en) * | 2019-03-18 | 2021-12-14 | International Business Machines Corporation | Multiport network adapter loopback hardware |
US10990537B1 (en) | 2020-01-07 | 2021-04-27 | International Business Machines Corporation | Logical to virtual and virtual to physical translation in storage class memory |
US12111772B2 (en) | 2020-12-23 | 2024-10-08 | Intel Corporation | Device, system and method for selectively dropping software prefetch instructions |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101606134A (zh) * | 2007-02-07 | 2009-12-16 | 高通股份有限公司 | 地址转换方法和设备 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5148538A (en) * | 1989-10-20 | 1992-09-15 | International Business Machines Corporation | Translation look ahead based cache access |
US5278963A (en) | 1991-06-21 | 1994-01-11 | International Business Machines Corporation | Pretranslation of virtual addresses prior to page crossing |
JP2771374B2 (ja) * | 1991-12-27 | 1998-07-02 | 茨城日本電気株式会社 | プロセッサのページ越処理方式 |
US5548739A (en) * | 1993-11-04 | 1996-08-20 | Sun Microsystems, Inc. | Method and apparatus for rapidly retrieving data from a physically addressed data storage structure using address page crossing predictive annotations |
US6678815B1 (en) | 2000-06-27 | 2004-01-13 | Intel Corporation | Apparatus and method for reducing power consumption due to cache and TLB accesses in a processor front-end |
US8051301B2 (en) * | 2001-11-13 | 2011-11-01 | Advanced Micro Devices, Inc. | Memory management system and method providing linear address based memory access security |
US6745313B2 (en) | 2002-01-09 | 2004-06-01 | International Business Machines Corporation | Absolute address bits kept in branch history table |
US7263585B2 (en) * | 2002-09-19 | 2007-08-28 | Ip-First, Llc | Store-induced instruction coherency mechanism |
US20060248279A1 (en) * | 2005-05-02 | 2006-11-02 | Al-Sukhni Hassan F | Prefetching across a page boundary |
US20070005933A1 (en) * | 2005-06-29 | 2007-01-04 | Kopec Brian J | Preventing multiple translation lookaside buffer accesses for a same page in memory |
US7509472B2 (en) | 2006-02-01 | 2009-03-24 | Sun Microsystems, Inc. | Collapsible front-end translation for instruction fetch |
CN101246452B (zh) * | 2007-02-12 | 2010-12-15 | 国际商业机器公司 | 执行快速的mmu模拟的方法和装置、以及全系统模拟器 |
US8140768B2 (en) | 2008-02-01 | 2012-03-20 | International Business Machines Corporation | Jump starting prefetch streams across page boundaries |
US8145874B2 (en) * | 2008-02-26 | 2012-03-27 | Qualcomm Incorporated | System and method of data forwarding within an execution unit |
US8886920B2 (en) * | 2011-05-13 | 2014-11-11 | Oracle International Corporation | Associating tag to branch instruction to access array storing predicted target addresses for page crossing targets for comparison with resolved address at execution stage |
-
2012
- 2012-12-20 US US13/721,442 patent/US9804969B2/en not_active Expired - Fee Related
-
2013
- 2013-12-20 EP EP13822037.1A patent/EP2936323B1/en not_active Not-in-force
- 2013-12-20 CN CN201380066209.1A patent/CN104871144B/zh not_active Expired - Fee Related
- 2013-12-20 WO PCT/US2013/077068 patent/WO2014100653A1/en active Application Filing
- 2013-12-20 JP JP2015549797A patent/JP2016505972A/ja not_active Ceased
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101606134A (zh) * | 2007-02-07 | 2009-12-16 | 高通股份有限公司 | 地址转换方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
US20140181459A1 (en) | 2014-06-26 |
CN104871144A (zh) | 2015-08-26 |
JP2016505972A (ja) | 2016-02-25 |
WO2014100653A1 (en) | 2014-06-26 |
EP2936323A1 (en) | 2015-10-28 |
US9804969B2 (en) | 2017-10-31 |
EP2936323B1 (en) | 2017-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104871144B (zh) | 使用虚拟地址到物理地址跨页缓冲器的推测性寻址 | |
CN104636274B (zh) | 数据预取方法以及微处理器 | |
US11709679B2 (en) | Providing load address predictions using address prediction tables based on load path history in processor-based systems | |
TWI545435B (zh) | 於階層式快取處理器中之協調預取 | |
JP3542021B2 (ja) | セット予測によりセット連想キャッシュの遅延を少なくする方法及び装置 | |
US8291169B2 (en) | Cache line use history based done bit modification to D-cache replacement scheme | |
US8856447B2 (en) | Converting memory accesses near barriers into prefetches | |
TW201312461A (zh) | 微處理器及縮短尋訪時間之方法 | |
JPH07281895A (ja) | 分岐キャッシュ | |
US20100262750A1 (en) | Region prefetcher and methods thereof | |
TW201407348A (zh) | 微處理器的轉譯位址快取記憶體 | |
US8195889B2 (en) | Hybrid region CAM for region prefetcher and methods thereof | |
TW200525431A (en) | Microporcessor with variable latency stack cache | |
KR20040033029A (ko) | 캐시 메모리 내 태그 액세스 및 데이터 액세스의 분리방법 및 장치 | |
CN104603747B (zh) | 响应于分支预测表调换指令而调换分支方向历史及相关的系统和方法 | |
CN109643237A (zh) | 分支目标缓冲器压缩 | |
US20170371797A1 (en) | Pre-fetch mechanism for compressed memory lines in a processor-based system | |
TW200815981A (en) | Methods and apparatus for reducing lookups in a branch target address cache | |
CN103514107B (zh) | 高性能数据缓存系统和方法 | |
CN106605207A (zh) | 使用文字加载预测表预测文字加载值,以及相关电路、方法和计算机可读媒体 | |
CN107924310A (zh) | 使用避免转出表(pat)预测计算机处理器中的存储器指令转出 | |
CN104854557B (zh) | 存取高速缓存的设备和方法 | |
US20140115257A1 (en) | Prefetching using branch information from an instruction cache | |
TW200931443A (en) | Apparatus for predicting memory access and method thereof | |
CN108897699A (zh) | 一种基于函数调用栈的数据预取方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180309 Termination date: 20211220 |