首页> 中国专利> 使用虚拟地址到物理地址跨页缓冲器的推测性寻址

使用虚拟地址到物理地址跨页缓冲器的推测性寻址

摘要

本发明提供一种方法,其包含接收将由处理器执行的指令。所述方法进一步包含在包含一或多个条目的跨页缓冲器中执行查找来确定所述指令是否具有在所述跨页缓冲器中的条目。所述条目中的每一个包含物理地址。所述方法进一步包含当所述跨页缓冲器具有在所述跨页缓冲器中的所述条目时从在所述跨页缓冲器中的所述条目检索特定物理地址。

著录项

  • 公开/公告号CN104871144A

    专利类型发明专利

  • 公开/公告日2015-08-26

    原文格式PDF

  • 申请/专利权人 高通股份有限公司;

    申请/专利号CN201380066209.1

  • 申请日2013-12-20

  • 分类号G06F12/10(20060101);G06F9/38(20060101);

  • 代理机构11287 北京律盟知识产权代理有限责任公司;

  • 代理人宋献涛

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-18 10:45:37

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-12-02

    未缴年费专利权终止 IPC(主分类):G06F12/1027 专利号:ZL2013800662091 申请日:20131220 授权公告日:20180309

    专利权的终止

  • 2018-03-09

    授权

    授权

  • 2015-09-23

    实质审查的生效 IPC(主分类):G06F12/10 申请日:20131220

    实质审查的生效

  • 2015-08-26

    公开

    公开

说明书

技术领域

本发明大体上涉及用于指令处理的计算机架构。

背景技术

当存取一系列指令(例如,第一指令,接着第二指令)时,处理系统可将指令的虚拟 地址转换成指令的物理地址。所述处理系统可包含使处理器能够将虚拟地址转换成物理 地址的指令转换旁视缓冲器(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中的条目时从跨页缓冲器的所述条目检索特定物理地址。从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、MUX 140和指令高速缓存标记阵列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。尽管将ITLB 270说明为具有两个输出214、218,但ITLB可配置成产生对应于针对一或多个额外指 令执行ITLB操作的结果的一或多个额外输出(未展示)。尽管图2将ITLB 270描绘为执 行地址转换,但在其它实施例中,可通过页表存取、地址计算或一或多种其它技术执行 虚拟到物理地址转换。

比较器260配置成执行物理地址(例如,输出218)(对应于第二指令212的由ITLB 270 进行的转换的输出218)与第二指令212的推测性物理地址142的比较来确定推测性物理 地址142是否匹配第二指令212的正确物理地址。比较器260可配置成接收第一输入264, 所述第一输入对应于由ITLB 270针对第二指令212执行的ITLB操作的输出218(第二 指令的物理地址)。比较器260可配置成接收第二输入266,所述第二输入对应于由MUX 140输出的推测性第二指令物理地址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之后的第二指令的处理期间是否可出现预测的延迟。可存取PCB 120来确定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的输出(例如,上一PA 148))作为对标记阵列操作的输出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是否具有PCB 120内的条目。

在364处,当PCB并不具有对应于第三指令316的条目时,从上一物理地址缓冲器 选择物理地址。举例来说,当PCB 120并不具有对应于第三指令314的条目时,设备100 可从上一PA缓冲器130选择第三指令316的物理地址。设备100可控制MUX 140来从 上一PA缓冲器130选择物理地址。当已预测将在第三指令316之后处理的第四指令引 起处理延迟时,PCB 120可具有带有第三指令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的结果来更新所述PCB 120。举例来说,可更新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的MUX 140图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的MUX 140、配置成选择地址的另一装置,或其组合。将用于选择地址的装 置的输出提供到用于执行标记阵列操作的装置。用于执行标记阵列操作的装置可配置成 使用从用于存储的装置检索的特定物理地址执行推测性标记阵列操作。举例来说,用于 执行标记阵列操作的装置可为图1或图2的指令高速缓存标记阵列150或配置成执行标 记阵列操作的任何其它装置。

所属领域的技术人员将进一步了解,结合本文所公开的实施例描述的各种说明性逻 辑区块、配置、模块、电路和算法步骤可以实施为电子硬件、计算机软件或两者的组合。 上文已大体在其功能性方面描述各种说明性组件、区块、配置、模块、电路和步骤。此 功能性是实施为硬件还是软件取决于特定应用和外加于整个系统的设计约束。所属领域 的技术人员可针对每个特定应用以不同方式实施所描述的功能性,但此类实施决策不应 被解释为引起偏离本发明的范围。

结合本文中所公开的实施例而描述的方法或算法的步骤可直接体现于硬件、由处理 器执行的软件模块或其两者的组合中。软件模块可驻留在随机存取存储器(RAM)、闪存、 只读闪存(ROM)、可编程只读闪存(PROM)、可擦除可编程只读闪存(EPROM)、电可擦 除可编程只读闪存(EEPROM)、寄存器、硬盘、可移动磁盘、压缩光盘只读存储器 (CD-ROM)或所属领域中已知的任何其它形式的非暂时性存储媒体中。示例性存储媒体 耦合到处理器,使得处理器可从存储媒体读取信息及将信息写入到存储媒体。在替代方 案中,存储媒体可与处理器成一体式。处理器和存储媒体可驻留于ASIC中。ASIC可以 驻留在计算装置或用户终端(例如,移动电话或PDA)中。在替代方案中,处理器和存储 媒体可作为离散组件驻留在计算装置或用户终端中。

提供对所公开实施例的先前描述以使得所属领域的技术人员能够制造或使用所公 开的实施例。所属领域的技术人员将容易对这些实施例的各种修改显而易见,并且可将 本文定义的原理应用到其它实施例而不偏离本发明的范围。因此,本发明并不希望限于 本文所公开的实施例,而应符合与如由所附权利要求书由定义的原理和新颖特征一致的 可能最宽范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号