CN104903851A - 数据高速缓存通路预测 - Google Patents

数据高速缓存通路预测 Download PDF

Info

Publication number
CN104903851A
CN104903851A CN201480003975.8A CN201480003975A CN104903851A CN 104903851 A CN104903851 A CN 104903851A CN 201480003975 A CN201480003975 A CN 201480003975A CN 104903851 A CN104903851 A CN 104903851A
Authority
CN
China
Prior art keywords
instruction
path
entry
prediction
cache
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
Application number
CN201480003975.8A
Other languages
English (en)
Other versions
CN104903851B (zh
Inventor
彼得·G·萨索内
苏雷什·K·文库马汉提
其他发明人请求不公开姓名
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN104903851A publication Critical patent/CN104903851A/zh
Application granted granted Critical
Publication of CN104903851B publication Critical patent/CN104903851B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • G06F9/3455Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results using stride
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • G06F9/3832Value prediction for operands; operand history buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping
    • G06F2212/6082Way prediction in set-associative cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

在特定实施例中,方法包含识别指令的一或多个通路预测特性。所述方法还包含基于所述一或多个通路预测特性的识别选择性地读取表以识别所述表的与所述指令相关联的识别数据高速缓存的通路的条目。所述方法进一步包含作出基于所述指令对所述数据高速缓存的下一访问是否将访问所述通路的预测。

Description

数据高速缓存通路预测
主张优先权
本申请案主张2013年1月15日提交的发明名称为“数据高速缓存通路预测(DATACACHE WAY PREDICTION)”的第13/741,917号美国非临时专利申请案的优先权,该申请案的内容以全文引用的方式并入本文本中。
技术领域
本发明大体上涉及一种数据高速缓冲存储器系统。
背景技术
技术的进步已产生更小且更强大的计算装置。举例来说,当前存在多种便携式个人计算装置,包含无线计算装置,例如便携式无线电话、个人数字助理(PDA)及寻呼装置,其体积小,重量轻且易于由用户携带。更具体来说,例如蜂窝电话及因特网协议(IP)电话等便携式无线电话可以经由无线网络传送语音及数据包。此外,多个此类无线电话包含并入其中的其它类型的装置。举例来说,无线电话还可以包含数字静物相机、数码摄像机、数字记录器及音频文件播放器。此外,此类无线电话包含可以处理可执行指令的处理器,包含软件应用程序,例如,可以用于上网的网络浏览器应用程序。因此,这些无线电话可以包含显著的计算能力。
访问处理器的数据高速缓存会消耗大量功率。数据高速缓存在常规上包含具有多个组的数据阵列,其各自包含多个高速缓存线(例如,存储位置)。数据高速缓存在常规上还包含多个通路,其自包含对应于数据高速缓存的至少一个高速缓存线(例如,高速缓存块)的驱动器。响应于用以访问存储在数据高速缓存中的数据的指令,启用(例如,激活)所有驱动器以(经由多个数据线)驱动数据阵列的特定集合到多路复用器的通路。
与被启用的所有驱动器并行(例如,同时地),执行标记查找操作以识别数据阵列内的特定高速缓存线。基于标记查找操作的结果,经由单个驱动器(对应于单个高速缓存线)提供的数据选择作为输出。考虑到从仅单个高速缓存线产生的数据基于指令输出,驱动集合的所有通路及执行标记查找操作会导致功率耗尽并且引起功率低效率。
关于访问处理器的指令高速缓存存在类似的功率消耗问题。对指令高速缓存的访问经常是可预测的并且利用可预测的指令序列的预测方法可以用于识别待驱动的指令高速缓存的特定通路。然而,访问数据高速缓存更复杂并且与访问指令高速缓存相比较不可预测。因此,用于指令高速缓存访问的预测技术可能不适用于预测数据高速缓存访问。另外,如果预测技术应用于数据高速缓存,那么性能损失(例如,处理的延迟)及能量损失将由待访问通路的每一误预测(例如,作出不正确预测)产生。
发明内容
用于处理器的数据高速缓存的通路预测技术利用预测表(例如,通路预测表)来追踪(例如,监视)及预测用于指令的待驱动数据高速缓存的通路(例如,与一或多个高速缓存线相关联的通路)。在特定实施例中,经预测通路基于所述指令的先前执行(例如,作为所述指令的所述先前执行驱动的相同通路)。对于通过所述处理器执行的每一指令,控制逻辑可以监视及追踪每一指令的执行以填入、保持及/或利用所述预测表来识别所述经预测通路。举例来说,所述数据高速缓存的所述控制逻辑可以基于指示(例如,识别)特定指令的程序计数器(PC)标识符、针对所述特定指令访问的通路及通过所述特定指令修改的寄存器组的基址寄存器位置使用所述预测表追踪一或多个指令的执行。
当执行具有一或多个通路预测特性(例如,所述指令的寻址模式、所述指令的指令类型、所述指令包含在环路中的指示等)的指令时,控制逻辑可以读取预测表来确定是否可以识别经预测通路。举例来说,通路预测特性可以是指示所述指令可以具有可预测下一地址(例如,指示基于所述指令的下一执行检索到的有效地址将可获自同一高速缓存线(例如,经由同一通路)的可预测访问模式)的所述指令的特征(例如,模式、指令类型、环路内的位置等)或组成(例如,操作码、操作数、位值等)。所述控制逻辑可以确定在所述预测表中是否存在对应于所述指令的条目。在特定实施例中,所述一或多个通路预测特性可以包括模式(例如,寻址模式),例如,自动递增寻址模式或基址加上偏移寻址模式。所述经预测通路可以是在所述指令的先前执行(例如,在环路的先前重复期间所述指令的先前执行)期间此前访问的通路。
当所述预测表指示用于指令的预测通路时,所述控制逻辑可以选择性地启用(例如,打开)对应于所述经预测通路的驱动器并且可以选择性地停用(例如,关闭)对应于除所述经预测通路以外的通路的一或多个其它驱动器。当所述预测表指示用于所述指令的所述经预测通路时,所述控制逻辑还可以选择性地停用(例如,使用开关)标记阵列的标记查找操作。通过选择性地停用一或多个驱动器及/或选择性地停用所述标记查找操作,由所述处理器实现电力节省。
在特定实施例中,方法包含识别指令的一或多个通路预测特性。所述方法还包含基于所述一或多个通路预测特性的识别选择性地读取表以识别所述表的与指令相关联的识别数据高速缓存的通路的条目。所述方法进一步包含作出基于所述指令对所述数据高速缓存的下一访问是否将访问所述通路的预测。
在另一个特定实施例中,处理器包含经配置以识别指令的一或多个通路预测特性的解码逻辑。所述处理器还包含耦合到所述解码逻辑的控制逻辑。所述控制逻辑经配置以基于所述一或多个通路预测特性选择性地读取表以识别所述表的与所述指令相关联的识别数据高速缓存的通路的条目。所述控制逻辑进一步经配置以作出基于所述指令对所述数据高速缓存的下一访问是否将访问所述通路的预测。
在另一特定实施例中,设备包含用于识别指令的一或多个通路预测特性的装置。所述设备还包含用于基于所述一或多个通路预测特性的识别选择性地读取表以识别所述表的与所述指令相关联的识别数据高速缓存的通路的条目的装置。所述设备进一步包含用于作出基于所述指令对所述数据高速缓存的下一访问是否将访问所述通路的预测的装置。
在另一个特定实施例中,非暂时性计算机可读媒体包含当由处理器执行时致使所述处理器识别指令的一或多个通路预测特性的指令。所述非暂时性计算机可读媒体进一步包含致使所述处理器基于所述一或多个通路预测特性的识别选择性地读取表以识别所述表的与所述指令相关联的识别数据高速缓存的通路的条目的指令。所述非暂时性计算机可读媒体进一步包含致使所述处理器作出基于所述指令对所述数据高速缓存的下一访问是否将访问所述通路的预测的指令。
在另一个特定实施例中,方法包含识别在指令的第一执行期间的递增值及识别在基于所述指令的所述第一执行期间访问的数据高速缓存的通路。所述方法进一步包含将所述递增值添加到与所述指令相关联的地址值以确定第一经递增地址值。所述方法还包含确定所述第一经递增地址值是否位于所述数据高速缓存的所述通路中。所述方法进一步包含响应于确定所述第一经递增地址位于所述数据高速缓存的所述通路中而填入对应于表中的所述指令的条目。
通过所揭示实施例提供的一个特定优点是保持用于一或多个指令的预测表的通路预测技术(例如,基于指令类型、指令寻址模式、在环路中的指令的识别,或其组合)。所述通路预测表可以用于基于通路预测选择性地启用及/或停用一或多个驱动器。通过选择性地启用及/或停用一或多个驱动器,可以在所述数据高速缓存的数据访问期间实现电力节省。另外,通过监视、追踪及存储与所述通路预测表中的每一条目相关联的寄存器位置,可以避免当除对应于所述条目的所述指令以外的指令更改在所述寄存器位置处的数据(例如,内容)时将引起的潜在误预测。通过在所述条目(例如,所述通路预测)已验证为有效的之后选择性地停用所述标记查找操作,可以实现额外的电力效益。
本发明的其它方面、优点及特征将在审阅申请案之后变得显而易见,所述申请案包含以下部分:附图说明、具体实施方式及权利要求书。
附图说明
图1是利用数据高速缓存的通路预测的处理器系统的元件的第一说明性实施例的图式;
图2是执行数据高速缓存的通路预测的方法的第一说明性实施例的流程图;
图3是执行数据高速缓存的通路预测的方法的第二说明性实施例的流程图;
图4是用于通路预测的数据高速缓存的数据阵列的方框图及包含环路中的指令的程序代码的说明性实施例;
图5是执行数据高速缓存的通路预测的方法的第三说明性实施例的流程图;及
图6是包含执行通路预测的数据高速缓存及逻辑的无线通信装置的具体实施例的方块图。
具体实施方式
图1说明利用通路预测表152的处理器系统100的元件的第一特定实施例。处理器系统100包含数据高速缓存102、控制逻辑150、程序计数器170、标记阵列180及解码逻辑190。数据高速缓存102包含数据阵列110,所述数据阵列包含多个高速缓存线120a-d。在特定实施例中,数据高速缓存102包括组相联数据高速缓存。
处理器系统100经配置以执行(例如,处理)包含在程序中的指令(例如,一系列指令)。所述程序可以包含一环路或多个环路,其中一或多次执行一系列指令。所述程序可以包含一或多个指令,例如,具有为所述指令可以具有可预测下一地址(例如,指示用于待执行的下一指令的有效地址将可获自同一高速缓存线(例如,经由同一通路)的可预测访问模式)的指示的一或多个通路预测特性(例如,所述指令的寻址模式、所述指令的指令类型、所述指令包含在环路中的指示等)的指令。举例来说,所述指令的所述寻址模式可以包含自动递增寻址模式及/或基址加上偏移寻址模式,其致使数据高速缓存(例如,数据高速缓存102)的数据阵列的高速缓存线的操作。使用自动递增寻址模式的指令(例如,自动递增指令)可以识别寄存器组(未展示)的寄存器位置(例如,基址寄存器)并且可以递增量(例如,1或2等的整数值)修改(例如,递增)存储在寄存器位置处的内容(例如,地址数据)。使用基址加上偏移寻址模式的指令(例如,基址加上偏移指令)可以在所述指令的每一执行期间访问寄存器位置(例如,基址寄存器位置)并且可以通过所述指令的每一连续执行将偏移量添加到基址寄存器位置处的数据。
当使用自动递增寻址模式及/或基址加上偏移寻址模式的指令被执行为环路的一部分(例如,被执行若干次)时,所述指令可以各自包含指示基于所述指令的下一执行检索到的有效地址将可获自数据阵列110的同一高速缓存线120a-d(例如,同一通路)的可预测访问模式。因此,在指令的执行期间(例如,在环路的一或多个重复期间),可以识别针对使用自动递增寻址模式或基址加上偏移寻址模式的指令访问的数据高速缓存102的特定通路。由于使用自动递增寻址模式或基址加上偏移寻址模式的指令在同一寄存器上操作,因此有可能确定(例如,验证)经后递增地址或偏移地址可以访问与所述指令的前一执行相同的数据高速缓存102的高速缓存线(例如,同一通路)。因此,处理器系统100可以产生、保持及使用如下文所描述的预测表152以预测用于一或多个指令的通路访问。
数据高速缓存102可以包含数据阵列110及多路复用器160。数据高速缓存102可以经配置以存储(在高速缓存线中)近来使用或频繁使用的数据。与从主存储器(未展示)等的另一位置访问的数据相比,存储在数据高速缓存102中的数据可能访问起来更快。在特定实施例中,数据高速缓存102是组相联高速缓存,例如,四通组相联高速缓存。另外地或可替代地,数据高速缓存102可以包含控制逻辑150、程序计数器170、标记阵列180、解码逻辑190,或其组合。
可以在指令(通过处理器系统100执行)的执行期间访问数据阵列110。所述指令可以包含在程序(例如,一系列指令)中并且可以或可以不包含在所述程序的环路(例如,软件环路)中。数据阵列110包含多个组(例如,行),其各自包含多个通路(例如,列),例如,如图1中所描绘的第一通路、第二通路、第三通路及第四通路。所述通路中的每一者可以与数据高速缓存102的列内的多个高速缓存线相关联并且与每一组数据高速缓存102的对应高速缓存线120a-d(例如,单个高速缓存线)相关联。可以在程序的执行期间访问多个通路。多个通路中每一通路可以包含驱动器140a-d(例如,线驱动器)及对应于数据阵列110的列内的多个高速缓存线(例如,存储位置)的数据线130a-d。举例来说,第一通路可以与高速缓存线A 120a相关联且包含第一驱动器140a及第一数据线130a,第二通路可以与高速缓存线B 120b相关联且包含第二驱动器140b及第二数据线130b,第三通路可以与高速缓存线C 120c相关联且包含第三驱动器140c及第三数据线130c,且第四通路可以与高速缓存线D 120d相关联且包含第四驱动器140d及第四数据线130d。
每一驱动器140a-d可以启用存储在对应高速缓存线120a-d(例如,对应高速缓存块)中的数据,所述数据将经由对应数据线130a-d从数据阵列110读取(例如,驱动)且提供到多路复用器160。存储在高速缓存线120a-d的特定高速缓存线中的内容可以包含多个字节(例如,三十二个(32)字节或六十四个(64)字节)。在特定实施例中,特定高速缓存线可以对应于依序寻址的存储器位置的块。举例来说,特定高速缓存线可以对应于8个依序寻址的存储器位置(例如,8个4字节区段)的块。
解码逻辑190可以接收将由处理器系统100执行的一或多个指令(例如,一系列指令)。解码逻辑190可以包含解码器,其经配置以对一或多个指令的特定指令进行解码并且将经解码指令(包含索引部分172、标记部分174,或其组合)提供到程序计数器170。解码逻辑190还可以经配置以例如通过发送数据或修改一或多个控制寄存器将与特定指令相关联的指令数据提供到控制逻辑150。举例来说,所述指令数据可以包含经解码指令(例如,索引部分172及/或标记部分174)、一或多个通路预测特性、特定指令的指令类型(例如,加载类型、存储类型等)、特定指令的模式(例如,寻址模式)、与特定指令相关联的寄存器组(未展示)的一或多个寄存器位置、与特定指令相关联的递增值(及/或偏移值)、与特定指令相关联的地址值、特定指令是否起始环路(例如,软件环路)、是否终止所述环路或是否包含在所述环路中,或其组合。一或多个通路预测特性可以指示所述特定指令具有可预测下一地址(例如,指示用于待执行的下一指令的有效地址将可获自同一高速缓存线(例如,经由同一通路)的可预测访问模式)。举例来说,一或多个通路预测特性可以包括特定指令的特征(例如,寻址模式、指令类型、环路内的位置等)、特定指令的组成(例如,操作码、操作数、位值、递增值、寄存器值等),或其组合。特定指令的寻址模式可以包含自动递增寻址模式或基址加上偏移寻址模式。特定指令的指令类型可以包含加载类型一种存储类型。
程序计数器170可以基于从解码逻辑190接收到的经解码指令识别待执行指令。程序计数器170可以包含可以用于在指令的执行期间访问数据高速缓存102的索引部分172(例如,组索引部分)及标记部分174。每当执行指令时,程序计数器170可以经调节(例如,递增)以识别待执行的下一指令。
控制逻辑150可以包含通路预测表152、标记阵列启用154及驱动器启用156。控制逻辑150可以经配置以从解码逻辑190接收指令数据并且基于所述指令数据的至少一部分访问通路预测表152,如下文中进一步描述。举例来说,控制逻辑150可以基于从解码逻辑190接收到的一或多个通路预测特性选择性地访问通路预测表152。
通路预测表152可以包含一或多个条目153,所述条目各自包含一或多个字段。每一条目153可以对应于不同指令且包含程序计数器(PC)字段、经预测通路(WAY)字段、寄存器位置标识符(REG)字段、有效/无效字段(V/I),或其组合。对于特定条目,PC字段可以识别由处理器系统100执行的对应指令。WAY字段(例如,经预测通路字段)可以包含识别在上一次执行对应指令时此前访问的(数据阵列110的)通路(例如,访问的“上一个通路”)的值(例如,通路字段标识符)。REG字段可以识别在上一次执行对应指令时修改的寄存器组(未展示)的寄存器位置。举例来说,寄存器位置可以是基于作为后递增操作的一部分的指令的执行而修改的指令的基址寄存器位置。V/I字段可以识别WAY字段的值是有效的还是无效的。举例来说,V/I字段可以指示WAY字段的值是否可以用作经预测通路。可替代地和/或另外地,V/I字段可以指示条目是有效的还是无效的。通路预测表152可以保持(例如,存储)在处理器系统100的处理器核心处及/或可以包含在数据高速缓存102的预取表中或与所述预取表相关联。在特定实施例中,通路预测表152中的每一条目包含程序计数器标识符(例如,PC字段)、特定寄存器位置标识符(例如,REG字段)及特定经预测通路标识符(例如,WAY字段)。
控制逻辑150可以经配置以访问通过解码逻辑190提供的指令数据(例如,对应于待执行指令的指令数据)。基于指令数据的至少一部分,例如,一或多个通路预测特性,控制逻辑150可以确定通路预测表152是否包含对应于所述指令的条目。举例来说,控制逻辑150可以响应于接收指令的指令类型是加载类型或存储类型的指示而选择性地读取通路预测表152。在特定实施例中,控制逻辑150并不读取通路预测表,除非指令类型是加载类型或存储类型。控制逻辑150可以基于通路预测表152的PC字段确定通路预测表152是否包含对应于指令的条目153。在另一个特定实施例中,控制逻辑150响应于接收指令的寻址模式是自动递增寻址模式或基址加上偏移寻址模式的指示而选择性地读取通路预测表152。在另一个特定实施例中,控制逻辑150响应于接收指令包含在环路中的指示而选择性地读取通路预测表152。
基于通路预测表152并不包含对应于指令的条目153的确定及基于指令与通路预测可用于(例如,具有自动递增地址模式)的一或多个通路预测特性相关联的确定,控制逻辑150可以产生(例如,填入)通路预测表152中的与指令相关联的新条目153。控制逻辑150可以识别包含在指令中(例如,通过指令识别)的寄存器位置及基于所述指令访问的数据阵列110的通路。控制逻辑150可以分别基于所识别的寄存器位置及所识别的通路填入新条目153的WAY字段及REG字段。因此,在下一次执行指令时(例如,在环路的下一重复期间),控制逻辑150可以基于WAY字段识别在指令的前一执行期间访问的通路。具体而言,当产生条目时,WAY字段的值可以设定为指示基于致使条目产生的指令的执行而访问的通路。REG字段可以由控制逻辑150用来保持通路预测表152,如本文进一步描述。
控制逻辑150还可以预测指令的随后(例如,下一)执行是否将访问与致使条目产生的指令的执行相同的通路。举例来说,如关于图1进一步详细描述,控制逻辑150可以执行算术运算来预测(例如,验证)指令的下一执行是否将访问与例如根据自动递增寻址模式指令或基址加上偏移寻址模式指令的执行相同的高速缓存线,及因此是否将访问同一通路。当作出经递增地址将不处于在指令的执行期间访问的同一高速缓存线中的确定(例如,预测)时,控制逻辑150可以将新条目的V/I字段(例如,有效性位)设定为无效的以指示可以不依赖于WAY字段的值来指示将在指令的随后执行期间使用的经预测通路。当作出经递增地址将处于在指令的执行期间访问的同一高速缓存线中(例如,指令的执行访问高速缓存线A 120a且与经递增地址相关联的值位于高速缓存线A 120a中)的确定(例如,预测)时,控制逻辑150可以将新条目的V/I字段(例如,有效性位)设定为有效的以指示WAY字段的值指示将在指令的随后执行期间使用的经预测通路。
控制逻辑150可以使用通路预测表152来预测用于待执行的指令的通路。控制逻辑150可以选择性地读取通路预测表152以基于每一条目153的PC字段识别对应于指令的通路预测表152的条目153。当控制逻辑150识别对应条目153时且如果条目153指示为有效的,控制逻辑150可以通过将WAY字段的值提供到驱动器启用156(或使其可用)而将用于条目153的WAY字段的值用作通路预测并且可以将V/I字段的值提供到标记阵列启用154(或使其可用)。
驱动器启用156可以经配置以基于在通路预测表152中所识别的经预测通路选择性地激活(例如,打开)或去激活(例如,关闭)驱动器140a-d中的一或多者。在特定实施例中,当提供到驱动器启用156的WAY字段的值是空值(例如,零值)时,驱动器启用156启用所有驱动器140a-d。在另一个特定实施例中,当条目153的V/I字段的值指示条目153的WAY字段的值可以用作通路预测时,驱动器启用156可以使用来自所识别(例如,对应)条目153的经预测通路。另外,驱动器启用156可以选择性地停用并不是通过WAY字段指示的经预测通路的一或多个通路的至少一个驱动器140a-d。在特定实施例中,WAY字段可以包含指示经预测通路的一或多个位(例如,位掩码),且驱动器启用156可以将位掩码应用到多个驱动器140a-d以选择性地启用或停用多个驱动器140a-d中的每一驱动器。
标记阵列启用154可以经配置以经由开关176(或其它机制)选择性地激活(例如,启用)或去激活(例如,停用)标记阵列180处的标记查找操作以基于指令识别待选择的通路(例如,高速缓存线120a-d)。当标记启用部分154确定V/I字段的值指示WAY字段的值可以用作通路预测时,标记启用部分154可以经由开关176的操作选择性地停用标记查找操作。当V/I字段的值指示WAY字段的值不可以用作通路预测时,标记阵列启用154可以选择性地启用开关176,使得与启用驱动器140a-d并行(例如,同时)执行标记查找操作。
提供到驱动器启用156的WAY字段的值及提供到标记阵列启用154的V/I字段的值的多个组合可以提供到驱动器启用156及/或标记阵列启用154的直接操作。举例来说,WAY字段的值可以是致使驱动器启用156激活(例如,打开)所有驱动器140a-d而不管WAY字段的值的空值(例如,零值),且在这种情况下标记阵列启用154可以选择性地启用或选择性地停用开关176。作为另一个实例,当V/I字段的值指示WAY字段的值不可以被用来作为通路预测时,驱动器启用156可以打开所有驱动器140a-d且标记阵列启用154可以选择性地启用开关176。作为另一实例,当V/I字段的值指示WAY字段的值可以被用来作为(例如,用作)通路预测时,驱动器启用156可以激活(例如,打开)多个驱动器140a-d中的单个线驱动器且标记阵列启用154可以选择性地启用或选择性地停用开关176。可替代地或另外地,标记阵列启用154可以基于寄存器组是否被跟踪(例如,监视)、与提供WAY字段的值及V/I字段的值的条目相对应的指令是否被标识为包含在环路中(例如,基于在控制逻辑150处接收到的指令数据),或其组合而选择性地启用或停用开关176。
控制逻辑150或耦合到控制逻辑150的其它逻辑可以包含追踪逻辑,所述追踪逻辑追踪(例如,监视)是否任何指令修改(例如,改变)在通路预测表152中所识别的寄存器位置处的数据。追踪逻辑可以识别被修改的寄存器位置的值且将寄存器位置的识别提供到控制逻辑150。控制逻辑150可以读取通路预测表152以确定特定条目153是否包含具有对应于寄存器位置的值的REG字段。基于特定条目153包含此REG字段的确定,控制逻辑150可以确定特定条目153的PC字段是否对应于修改寄存器位置的特定指令,并且当特定条目153不对应于特定指令时,控制逻辑150可以将特定条目153的V/I字段(例如,无效的)的值设定为指示特定条目的WAY字段的值不可以被用来作为(例如,用作)通路预测或可以清除(例如,删除)特定条目153。
在处理器系统100的操作期间,解码逻辑190及/或控制逻辑150可以确定通路预测表152是否包含对应于待执行指令的条目。当通路预测表152并不包含所述条目时,控制逻辑150可以在通路预测表152中产生新条目。当通路预测表152包含所述条目时,控制逻辑150可以识别所述条目的一或多个字段的一或多个值。当一或多个字段指示所述条目不是有效的(例如,所述条目可以不用于通路预测)时,控制逻辑150可以启用数据阵列110的所有多个驱动器140a-d且启用将基于标记阵列180的输出提供到多路复用器160的通路选择信号。当一或多个字段指示所述条目是有效的时,控制逻辑150可以使用所述条目的WAY字段的值来选择性地启用及/或停用多个驱动器140a-d中的一或多者且通过多路复用器160控制选择。控制逻辑150可以基于经递增地址将访问对应于与通过WAY字段指示的通路不同的通路的高速缓存线的预测或基于将修改识别到在通路预测表152中所识别的寄存器位置而更新通路预测表152的一或多个条目。下文参考图4描述处理器系统100的操作的实例。
通过保持用于由处理器系统100执行的指令的通路预测表152,数据高速缓存102的数据阵列110的一或多个驱动器140a-d可以基于通路预测选择性地停用且在数据高速缓存102的数据访问期间可以实现电力效益。另外,通过追踪及存储与每一条目153相关联的寄存器位置(例如,REG字段),控制逻辑150可以在除对应于条目的指令以外的指令修改在通过通路预测表152中的任何条目的REG字段识别的特定寄存器位置处的数据时避免潜在误预测。可以通过选择性地停用标记查找操作来实现额外的电力效益。
参考图2,说明执行与数据高速缓存相关联的通路预测的方法200的第一说明性实施例的流程图。举例来说,数据高速缓存可以包含图1的数据高速缓存102。在特定实施例中,方法200可以通过图1的控制逻辑150执行。
在202处,在指令的第一执行期间识别递增值。递增值可以使用自动递增寻址模式与指令相关联。递增值可以通过例如图1的解码逻辑190等的解码逻辑确定(例如,识别)。递增值可以包含在从解码逻辑提供到例如图1的控制逻辑150等的控制逻辑的指令数据中。控制逻辑可以接收指令数据且识别递增值。控制逻辑还可以确定指令是否与指示指令可以具有可预测访问模式的一或多个通路预测特性相关联。在特定实施例中,在确定指令与一或多个通路预测特性相关联之后,控制逻辑识别指令的递增值。
在204处,识别在指令的第一执行期间基于指令访问的数据高速缓存的通路。举例来说,数据高速缓存可以是图1的数据高速缓存102。控制逻辑可以识别在指令的第一执行期间访问的通路。
在206处,将递增值添加到与指令相关联的地址值以确定经递增地址值。控制逻辑可以将递增值添加到与指令相关联的地址值以确定经递增地址。在特定实施例中,地址值可以是存储在通过指令识别的寄存器位置处的地址值。可以基于由解码逻辑提供的指令数据通过控制逻辑识别寄存器位置。
在208处,作出经递增地址值是否位于数据高速缓存的通路中的确定。控制逻辑可以确定是否预测指令的随后(例如,下一)执行以访问与指令的执行(即,第一执行)相同的通路。
在210处,将对应于指令的条目填入表中。响应于确定经递增地址位于数据高速缓存的通路中,所述条目可以填入表中。控制逻辑可以填入(例如,产生)与例如图1的通路预测表152等的通路预测表中的指令相对应的条目。在特定实施例中,表中的条目的产生(例如,填入)取决于与在产生(例如,填入)条目之前满足的指令相关联的一或多个条件(例如,自动递增寻址模式、指令的类型、环路中的指令)。控制逻辑可以填入所述条目的一或多个字段,使得所述条目识别指令(例如,PC字段值)、在指令的第一执行期间访问的数据高速缓存的通路(例如,WAY字段值)、寄存器位置(例如,REG字段值)、是否预测指令的随后(例如,下一)执行以访问同一高速缓存线(例如,V/I字段值),或其组合。
通过在通路预测表中产生(例如,填入)用于指令的条目,可以记录及跟踪基于所述指令访问的通路。经记录通路可以在指令的一或多个随后执行期间由控制逻辑用作通路预测以选择性地启用及/或停用数据高速缓存的一或多个驱动器(例如,不是所有的驱动器都被打开)以在数据高速缓存的数据访问期间实现电力效益。
参考图3,说明执行与数据高速缓存相关联的通路预测的方法300的第二说明性实施例的流程图。举例来说,数据高速缓存可以包含图1的数据高速缓存102。在特定实施例中,方法300可以通过图1的控制逻辑150执行。
在302处,识别指令的寻址模式。在特定实施例中,指令的寻址模式被标识为自动递增寻址模式。具有自动递增寻址模式的指令可以识别递增值及存储与指令相关联的地址的寄存器位置。寻址模式可以基于从例如解码逻辑190等的解码逻辑接收到的指令数据由例如图1的控制逻辑150等的控制逻辑确定(例如,识别)。另外,可以确定与指令相关联的类型(例如,指令类型)。举例来说,所述类型可以确定为加载类型或存储类型。所述类型可以通过控制逻辑确定(例如,识别)。
在304处,基于指令的识别读取表以识别表的与指令相关联的识别数据高速缓存的通路的条目。控制逻辑可以确定所述表是否包含与识别数据高速缓存的通路的指令相关联的条目。举例来说,控制逻辑可以访问表且基于指令从所述表中读取条目。所述表可以包含图1的通路预测表152。当作出所述表包含所述条目的确定时,控制逻辑可以基于包含在与所述条目相关联的V/I字段中的有效性位的值来确定所述条目是否被识别为有效的或无效的。V/I字段可以包含在所述条目中或存储在寄存器位置处或不同于所述表的缓冲区处。有效性位的值可以启用控制逻辑来确定所述条目或所述条目的一部分(例如,至少一个字段)是否有效以提供用于指令的通路预测。基于所述条目,控制逻辑可以使用包含在所述条目中的通路预测来选择性地启用及/或停用数据高速缓存的一或多个驱动器(例如,不是所有的驱动器都被打开)。通过选择性地停用数据高速缓存的一或多个驱动器,在数据高速缓存的数据访问期间实现电力效益。
在306处,作出基于指令对数据高速缓存的下一访问是否将访问同一通路的预测。举例来说,控制逻辑可以预测基于指令的数据高速缓存的下一访问是否将访问通过所述条目识别的通路。控制逻辑可以通过将与指令相关联的递增值添加到与指令相关联的寄存器位置(例如,存储在所述寄存器位置处)的地址以确定经递增地址及通过确定经递增地址是否位于与所述地址相同的数据阵列的高速缓存线中来作出预测。
当作出数据高速缓存的下一访问将不访问通路的预测时,处理前进到308,其中表中的条目被无效化或删除(例如,清除)。举例来说,控制逻辑可以基于经递增地址将处于与包含地址(例如,地址经递增以产生经递增地址)的高速缓存线不同的数据高速缓存的高速缓存线中的确定而清除条目或指示表的所述条目是无效的。可替代地,当作出数据高速缓存的下一访问将访问通路的预测时,处理前进到310,其中保持在表中的条目。举例来说,控制逻辑可以将表的条目保持为有效的以基于经递增地址处于与所述地址相同的数据阵列的高速缓存线中的确定(例如,预测)提供通路预测。控制逻辑或除控制逻辑以外的逻辑可以监视(例如,追踪)寄存器组,包含寄存器位置。作为监视(例如,追踪)寄存器组的结果,控制逻辑可以响应于寄存器位置的内容被改变而无效化或删除所述条目。寄存器位置的内容可以通过另一指令改变。
通过访问表,基于指令访问的数据高速缓存的前一通路可以用作用于所述指令的执行的通路预测。另外,控制逻辑可以确定(例如,预测)指令的随后(例如,下一)执行是否将访问与指令的执行相同的高速缓存线。基于随后执行是否将访问同一高速缓存线的确定,控制逻辑可以清除条目、更新所述条目的一或多个字段及/或保持所述条目的一或多个字段。通过更新及保持表的条目,可以使用及依赖所述表来作出一或多个通路预测且避免误预测。
参考图4,展示数据高速缓存的行400的特定说明性实施例。举例来说,数据高速缓存可以包含图1的数据高速缓存102。行400可以包含第一高速缓存线A 402、第二高速缓存线B 404、第三高速缓存线C 406及第四高速缓存线D 408,每一者通过高速缓存线边界410-414分离。举例来说,四个高速缓存线402-408可以对应于图1的高速缓存线120a-d。尽管展示四个代表性高速缓存线A-D,但应理解,行400可以包含四个以上高速缓存线或四个以下高速缓存线。高速缓存线402-408中的每一者可以包含多个区段。举例来说,第一高速缓存线A 402包含第一区段402a、第二区段402b、第三区段402c及第四区段402d。在特定实施例中,每一高速缓存线402-408包含相同数目的区段。高速缓存线402-408中的每一者可以与对应通路相关联。
为了说明行400的操作及使用,在图4中展示包含代表性程序环路(例如,环路代码430)的代表性计算机指令的说明性实施例。所述指令包含开始于环路顶部标识符440的环路代码430。所述环路包含三个指令442、444及446。所述环路终止于终止环路标志符448。出于提供简化实例的目的,并不展示程序环路的所有方面。举例来说,出于简洁目的已省略环路重复的次数及环路终止条件。
第一指令442是包含自动递增寻址模式的说明性加载类型指令(例如,后递增加载)。在特定实施例中,第一指令442是存储器写入指令,所述存储器写入指令访问存储存储器地址的寄存器位置R9及使用寄存器位置R9中的存储器地址来将对应于存储器地址的内容(例如,数据)从数据高速缓存加载到寄存器位置R1中。寄存器组(未展示)可以包含多个寄存器位置。在通过寄存器位置R9识别的内容被加载到寄存器位置R1中之后,寄存器位置R9的存储器地址的值以2自动递增(例如,2的后递增)。因此,第一指令442可以被视为具有递增值2且在基址寄存器R9上操作。为了将寄存器位置R9的内容加载到寄存器位置R1中,可以访问数据高速缓存的特定高速缓存线。特定高速缓存线与特定通路及数据阵列的特定驱动器相关联。
第二指令444是代表性算术指令。在特定实施例中,第二指令444是识别存储第一存储器地址(具有对应第一内容(例如,数据))的寄存器位置R4及存储第二存储器地址(具有对应第二内容)的寄存器位置R5的添加指令。对应于寄存器位置R4的第一存储器地址的第一内容及对应于寄存器位置R5的第二存储器地址的第二内容可以添加在一起且总和可以存储为与基于第二指令444存储在寄存器位置R9中的第三存储器地址相对应的内容(例如,数据)。
第三指令446可以包含另一加载类型指令,所述指令包含自动递增寻址模式。举例来说,第三指令446的执行可以访问存储存储器地址的寄存器位置R10(例如,第三指令446的基址寄存器)且使用寄存器位置R10中的存储器地址来将对应于存储器地址的加载内容(例如,数据)从数据高速缓存加载到寄存器位置R2中。在所述内容加载到寄存器位置R2中之后,寄存器位置R10的存储器地址的值可以1递增(例如,1的后递增)。
执行环路代码430包含一或多次(例如,一或多个重复)执行指令442、444及446。在环路代码430的第一次重复期间,执行第一指令442。由于第一指令442包含一或多个通路预测特性,例如,自动递增寻址模式,因此控制逻辑(未展示)可以产生对应于通路预测表中的第一指令442的条目。举例来说,图1的控制逻辑150或未说明的其它控制逻辑可以在通路预测表152中产生条目。在特定实施例中,在确定通路预测并不包含对应于第一指令442的条目时,控制逻辑可以在通路预测表中产生所述条目。
由于第一指令442包含自动递增寻址模式,因此控制逻辑可以识别递增值2。由于递增值2小于高速缓存线402-408的大小(例如,4的大小),因此控制逻辑可以预测访问的下一通路将对应于同一高速缓存线(例如,保持在同一高速缓存线内)。基于将在下一重复(例如,第一指令442的下一执行)期间访问同一通路的预测,通路可以被标识为用于第一指令442的下一执行的通路预测。
在450处,举例说明,在环路代码430的第一次重复期间,寄存器位置R9的内容可以指出第三高速缓存线C 406的第一(依序)区段406a。举例来说,第三高速缓存线C406可以包括四个区段,例如,第一区段406a、第二区段406b、第三区段406c及第四区段406d。因此,在452处,以递增值2递增寄存器位置R9的内容将导致寄存器位置R9的内容指出第三高速缓存线C 406的第三(依序)区段406c。因此,在环路代码430的第一次重复期间,用于第一指令442的通路预测将识别在第一指令442的执行期间使用的通路(对应于第三高速缓存线C 406)。因此,如关于图1所描述,通过控制逻辑150将用于第一指令442的新条目添加到通路预测表152。举例来说,可以产生特定条目以包含以下字段中的一或多者:PC=0x10148(例如,对应于第一指令442);WAY=3;REG=R9;及V/I=有效的(例如,数据值“1”)。
控制逻辑可以基于指令的随后执行将访问同一高速缓存线的确定来设定条目的V/I字段的有效性位(例如,以指示有效的)。在另一实施例中,可以仅填入新条目的WAY字段以识别在作出随后执行将访问同一高速缓存线的确定(例如,预测)时访问的通路。当作出随后执行将不访问同一高速缓存线的预测时,控制逻辑可以将新条目的WAY字段设定为空值(例如,零值)。在另一个特定实施例中,当作出随后执行将访问同一高速缓存线的预测时仅在通路预测表中产生所述条目。
基于指令的新条目的产生可以进一步取决于(例如,基于)所识别的一或多个额外通路预测特性(例如,基于指令数据由图1的控制逻辑150作出的一或多个额外确定)。举例来说,当指令与自动递增寻址模式及/或基址加上偏移寻址模式相关联时,可以仅产生(例如,填入)新条目。作为另一实例,当指令包含在环路中时可以仅产生(例如,填入)新条目。具体而言,当指令是在环路中的指令的第一实例时可以产生新条目。在特定实施例中,当指令不包含在环路中时不产生条目。
当指令使用基址加上偏移寻址模式时,控制逻辑150可能不可操作以基于指令的第一执行作出指令的随后执行是否将访问同一高速缓存线的预测。举例来说,与自动递增寻址模式不同,在指令的每一连续执行(例如,环路的每一连续重复)期间执行基址加上偏移寻址模式可以不以预定值(例如,常量)递增地址位置。可能需要指令的至少两次执行来使用基址加上偏移寻址模式确定指令的步幅(例如,偏移)。因此,当指令使用基址加上偏移寻址模式时,在指令的第一执行期间可以产生新条目,但是新条目的V/I字段的值可能不能够设定为指示WAY字段的值可以用作经预测通路直到指令的第二执行(例如,在初始执行之后的下一执行)为止。在替代实施例中,当指令使用基址加上偏移寻址模式时,基于指令的第一执行可能不在通路预测表152中产生条目。相反地,基于指令的第一执行,与PC字段相关联的值及与WAY字段相关联的值可以识别用于与指令相关联的潜在新条目并且与PC字段相关联的值及与WAY字段相关联的值可以保持在不同于通路预测表152的位置(及/或结构)中。举例来说,所述位置可以包含与例如控制逻辑150等的控制逻辑相关联的缓冲区或寄存器。可以基于在第一执行之后的指令的执行产生使用基址加上偏移寻址模式的与指令相关联的条目。
在特定实施例中,控制逻辑150或其它控制逻辑可以包含追踪逻辑,所述追踪逻辑追踪被标识为例如通路预测表152等的通路预测表内的(例如,在REG字段中所识别的)寄存器的寄存器组(未展示)的每一寄存器位置。在特定实施例中,控制逻辑150或其它控制逻辑仅追踪在有效条目的对应REG字段中识别的寄存器组的寄存器位置。举例来说,由于寄存器位置R9由第一指令442使用且由于寄存器位置R9与添加到通路预测表152的条目相关联,因此追踪逻辑将监视修改寄存器位置R9的值的任何指令。在特定说明性实例中,第二指令444改变(例如,修改)寄存器位置R9的值。因此,追踪逻辑可以监视一或多个指令,例如,第二指令444且响应于检测到寄存器位置R9的值已通过第二指令444改变而无效化(例如,将V/I字段设定为无效的)或删除(例如,清除)通路预测表152中的对应于第一指令442的条目。因此,在第一指令442的随后执行(例如,下一执行)之后,通路预测表152将不包含与第一指令442相关联的有效条目(或任何条目),可以通过所述第一指令作出通路预测。
继续进行环路代码430,第三指令446可以包含自动递增寻址模式。控制逻辑可以识别递增值1及第三指令446的寄存器位置R10(例如,基址寄存器)。在420处,在环路代码430的第一次重复期间,寄存器位置R10的内容可以指出第一高速缓存线A 402的第一(依序)区段402a。由于递增值1小于第一高速缓存线A 402的大小(例如,第一高速缓存线A 402包含4的大小),因此在422处控制逻辑可以预测下一通路将在第二(依序)区段402b处保持在同一高速缓存线402内。基于将访问同一通路的预测,所述通路可以被标识为用于第三指令446的下一执行的通路预测。因此,如关于图1所描述,通过控制逻辑150将用于第三指令446的新条目添加到通路预测表152。环路的第一次重复在终止环路标志符448处终止。
在环路代码430的第二次重复期间,再次执行第一指令442。控制逻辑150可以搜索用于对应于第一指令442的有效条目的通路预测表152。由于在环路代码430的第一次重复期间条目产生且存储在通路预测表152内,因此通路预测表152具有包含PC字段值的条目,所述PC字段值与对应于第一指令442的程序计数器值相关联。然而,由于追踪逻辑无效化所述条目,因此基于第一指令442查询通路预测表152(例如,读取所述通路预测表的条目)的结果将是无效条目的指示。无效条目将指示控制逻辑150无法仅依赖于由通路预测表152中的条目指示的WAY字段的值(例如,通路预测)。因此,控制逻辑150将基于存储在寄存器位置R9中的存储器地址选择性地激活(例如,启用)标记阵列180的搜索(例如,标记查找操作)。
在特定实施例中,控制逻辑使用由通路预测表152中的条目指示的WAY字段的值,同时(例如,并行地)启用标记查找操作。同时,启用标记查找操作使控制逻辑能够基于WAY字段的值确定是否发生误预测(例如,预测不正确通路)。在另一实施例中,控制逻辑同时(例如,并行地)启用所有通路的驱动器,由此启用标记查找操作以确保作为依赖于用于无效条目的WAY字段的值的结果不会发生由误预测引起的性能损失。
通过环路代码430继续执行,再次执行对应于第二指令444的添加操作且随后处理继续执行第三指令446。由于第三指令446包含自动递增寻址模式,因此控制逻辑150访问(例如,读取)通路预测表152且识别与第三指令446(对应于寄存器位置R10)相关联的此前存储的条目。在这种情况下,与第三指令446相关联的条目是有效的并且控制逻辑150可以产生通路选择信号且产生来自驱动器启用156的信号以激活选定(例如,经预测)通路(不需要激活其它通路中的任一者)。以此方式,涉及第三指令446的第二执行的环路代码430的第二次重复有益地选择在环路代码430中的第三指令446的第一执行期间使用的此前存储的通路(对应于此前访问的第一高速缓存线A 402)。因此,此前存储的通路可以用作通路预测并且控制逻辑150可以基于所述通路预测启用(例如,选择性地启用)多个驱动器中的单个驱动器,所述多个驱动器例如,图1的多个驱动器140a-d。通过选择性地启用单个驱动器(例如,不是所有多个驱动器140a-d),可以在例如图1的数据高速缓存102等的数据高速缓存的数据访问期间实现电力效益。
在422处,在环路代码430的第二次重复期间,寄存器位置R10的内容可以指出第一高速缓存线A 402的第二(依序)区段402b。在424处,在环路代码430的第三次重复期间,通过计算出寄存器位置R10的内容在以递增值1递增时将导致寄存器位置R10的内容指出第一高速缓存线A 402的第三(依序)区段402c,控制逻辑可以预测与第三指令446相关联的下一通路将保持在同一高速缓存线402内。由于在环路代码430的第三次重复期间的第三指令446的经预测通路保持在第一高速缓存线A 402内,因此与第三指令446相关联的条目的WAY字段的值可以保持相同(例如,对应于第一高速缓存线A402的通路)且与第三指令446相关联的条目保持有效的。终止环路标志符448的处理(例如,执行)终止环路代码430的第二次重复。
如上文所描述可以继续通过额外的重复处理环路代码430。举例来说,环路代码430可以经受第三次重复及第四次重复。在424处,在环路代码430的第三次重复中的第三指令446的执行期间,寄存器位置R10可以指出第一高速缓存线A 402的第三(依序)区段402c。在426处,在环路代码430的第四次重复中的第三指令446的执行期间,寄存器位置R10可以指出第一高速缓存线A 402的第四(依序)区段402d。在428处,在环路代码430的第四次重复中的第三指令446的执行期间,通过计算出寄存器位置R10的内容在以递增值1递增时将导致寄存器位置R10的内容指出第二高速缓存线B 404,控制逻辑可以预测与第三指令446相关联的下一通路(例如,在环路代码430的第五次重复期间)将不保持在同一高速缓存线A 402内(例如,跨越边界410)。由于第三指令446的经预测地址(与第三指令446的下一执行相关联)在第一高速缓存线A 402之外,因此控制逻辑可以无效化条目的通路预测或从通路预测表中删除与第三指令446相关联的条目。当控制逻辑无效化条目时,在环路代码430的第五次重复期间所述条目可以通过新的(有效的)通路预测更新。可替代地,当控制逻辑删除条目时,可以在第五次重复期间产生新条目。
通过产生(例如,填入)及保持通路预测表中用于一或多个指令的条目,可以启用处理器系统以在数据高速缓存上实施(例如,执行)通路预测(例如,通路预测技术)。在数据高速缓存上执行通路预测使处理器系统能够在数据高速缓存的某些数据访问期间实现电力效益。举例来说,当一或多个指令具有作为环路的一部分执行的(例如,执行若干次)可预测访问模式时可以利用通路预测技术。此类指令可以包含使用自动递增寻址模式或基址加上偏移寻址模式的指令。
参考图5,说明执行与数据高速缓存相关联的通路预测的方法500的第三说明性实施例的流程图。举例来说,数据高速缓存可以包含图1的数据高速缓存102。在特定实施例中,方法500可以通过图1的控制逻辑150执行。
在502处,识别指令的一或多个通路预测特性。一或多个通路预测特性可以包含指令的寻址模式、指令的指令类型、指令是否包含在环路中的指示,或其组合。举例来说,一或多个通路预测特性可以通过例如图1的控制逻辑150等的控制逻辑或通过例如图1的解码逻辑190等的解码逻辑识别。在特定实施例中,作出指令的寻址模式是自动递增寻址模式还是基址加上偏移寻址模式的确定。在另一个特定实施例中,作出指令的指令类型是加载类型还是存储类型的确定。在另一个特定实施例中,作出指令是否包含在一或多个指令的环路中的确定。解码逻辑可以向控制逻辑提供指令类型、寻址模式或指令是否包含在环路中的指示。
在504处,基于一或多个通路预测特性的识别选择性地读取表以识别表的与指令相关联的识别数据高速缓存的通路的条目。控制逻辑可以读取表以确定所述表是否包含对应于指令的条目。举例来说,图1的控制逻辑150可以选择性地读取通路预测表152。表中的对应条目可以基于包含在条目中的一或多个位的值(例如,条目的WAY字段的值)指示通路(例如,经预测通路)。一或多个位可以作为掩模应用到多个驱动器以选择性地启用或停用多个驱动器中的每一驱动器。控制逻辑还可以确定条目是否有效。在特定实施例中,经预测通路是与基于指令的先前执行此前访问的通路相同的通路。举例来说,控制逻辑可以从表中识别及检索经预测通路并且当条目是有效的时选择性地启用及/或停用一或多个驱动器。例如驱动器140a-d等的一或多个驱动器可以包含例如在图1的数据高速缓存102等的数据高速缓存中。
在506处,作出基于指令对数据高速缓存的下一访问是否将访问通路的预测。举例来说,控制逻辑可以执行算术运算以预测(例如,验证)指令的下一执行是否将访问与所述执行相同的高速缓存线且是否由此访问同一通路。当作出经递增地址将不处于在指令的执行期间访问的同一高速缓存线中的确定(例如,预测)时,条目的V/I字段(例如,有效性位)可以被设定为指示WAY字段的值是无效的并且可以不依赖于WAY字段的值来指示将在指令的随后执行期间使用的经预测通路。当作出经递增地址将处于同一高速缓存线中的确定时,条目的V/I字段可以被设定为指示WAY字段的值是有效的并且可以依赖于WAY字段的值。
通过访问表,基于指令访问的数据高速缓存的前一通路可以用作用于所述指令的执行的通路预测。此前存储的通路可以用作通路预测并且可以基于所述通路预测选择性地停用(例如,关闭)一或多个驱动器。通过选择性地停用一或多个驱动器,不是所有的驱动器都被激活(例如,打开)并且可以在数据高速缓存的数据访问期间实现电力效益。
图2的方法200、图3的方法300、图5的方法500,或其任何组合可以通过现场可编程门阵列(FPGA)装置、专用集成电路(ASIC)、例如中央处理单元(CPU)等的处理单元、数字信号处理器(DSP)、控制器、另一硬件装置、固件装置,或其任何组合实施或以其它方式执行。作为一个实例,图2的方法200、图3的方法300、图5的方法500,或其任何组合中的任一者的至少一部分可以通过执行存储于存储器632中的指令的处理器610实施,如关于图6所描述。
图6是包含利用多位通路预测掩模的高速缓冲存储器系统的装置600(例如,通信装置)的特定实施例的方框图。装置600可以是无线电子装置且可以包含耦合到存储器632的处理器610,例如数字信号处理器(DSP)。
处理器610可以经配置以执行存储于存储器632中的软件660(例如,一或多个指令的程序)。处理器610可以包含数据高速缓存680及控制逻辑686。举例来说,数据高速缓存680可以包含或对应于图1的数据高速缓存102,且控制逻辑686可以包含或对应于图1的控制逻辑150。数据高速缓存680可以包含数据阵列682及标记阵列684。数据阵列682及标记阵列684可以分别对应于图1的数据阵列110及标记阵列180。数据阵列682可以包含多个线驱动器,例如,图1的线驱动器140a-d。控制逻辑686可以包含通路预测表688。通路预测表688可以包含或对应于图1的通路预测表152。在说明性实例中,处理器610包含或对应于图1的处理器系统100或其组件,并且根据图1-5的实施例中的任一者或其任何组合操作。
在特定实施例中,处理器610可以经配置以执行存储在例如存储器632等的非暂时性计算机可读媒体处的计算机可执行指令660,所述计算机可执行指令可执行以致使计算机,例如,处理器610执行图2的方法200、图3的方法300、图5的方法500,或其任何组合中的任一者的至少一部分。举例来说,计算机可执行指令660可以可执行以致使处理器610识别指令的一或多个通路预测特性。计算机可执行指令660进一步可执行以致使处理器610基于一或多个通路预测特性的识别选择性地读取表以识别表的与指令相关联的识别数据高速缓存的通路的条目。计算机可执行指令660进一步可执行以致使处理器610作出基于指令对数据高速缓存的下一访问是否将访问通路的预测。
相机接口668耦合到处理器610,且还耦合到相机,例如,摄像机670。显示器控制器626耦合到处理器610及显示装置628。编码器/解码器(编解码器)634也可以耦合到处理器610。扬声器636及麦克风638可以耦合到编解码器634。无线接口640可以耦合到处理器610及天线642,使得经由天线642及无线接口640接收到的无线数据可以提供到处理器610。在特定实施例中,处理器610、显示器控制器626、存储器632、编解码器634、无线接口640及相机接口668包含在封装中系统或片上系统装置622中。在特定实施例中,输入装置630及电力供应器644耦合到片上系统装置622。此外,在特定实施例中,如图6中所说明,显示装置628、输入装置630、扬声器636、麦克风638、无线天线642、摄像机670及电力供应器644在片上系统装置622外部。然而,显示装置628、输入装置630、扬声器636、麦克风638、无线天线642、摄像机670及电源供应器644中的每一者可以耦合到片上系统装置622的组件,例如接口或控制器。
结合所描述实施例中的一或多者,揭示包含用于识别指令的一或多个通路预测特性的装置的设备。用于识别的装置可以包含控制逻辑150、图1的解码逻辑190、处理器610、图6的控制逻辑686、经配置以识别一或多个通路预测特性的一或多个其它装置或电路,或其任何组合。
所述设备还可以包含用于基于一或多个通路预测特性的识别选择性地读取表以识别表的与指令相关联的识别数据高速缓存的通路的条目的装置。用于选择性地读取表的装置可以包含图1的控制逻辑150、图6的控制逻辑686、经配置以选择性地读取表的一或多个其它设备或电路,或其任何组合。
所述设备还可以包含用于作出基于指令对数据高速缓存的下一访问是否将访问通路的预测的装置。用于作出预测的装置可以包含图1的控制逻辑150、图6的控制逻辑686、经配置以作出预测的一或多个其它设备或电路,或其任何组合。
所述设备还可以包含用于对指令进行解码的装置,其中所述指令包含寄存器标识符且具有可预测下一地址。用于解码的装置可以包含图1的解码逻辑190、图6的处理器610、经配置以对待执行指令进行解码的一或多个其它装置或电路,或其任何组合。
所述设备还可以包含用于基于通路选择性地驱动数据高速缓存线的装置。用于选择性地驱动数据高速缓存线的装置可以包含图1的线驱动器140a-c、图6的数据阵列682、经配置以选择性地驱动器数据高速缓存线的一或多个其它装置或电路,或其任何组合。
所揭示实施例中的一或多者可以在例如装置600等的系统或设备中实施,所述系统或设备可以包含移动电话、蜂窝电话、卫星电话、计算机、机顶盒、娱乐单元、导航装置、通信装置、个人数字助理(PDA)、固定位置数据单元、移动位置数据单元、平板计算机、便携式计算机、桌上型计算机、监视器、计算机监视器、电视机、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、视频播放器、数字视频播放器、数字视频光盘(DVD)播放器、便携式数字视频播放器,或其组合。作为另一说明性非限制性实例,所述系统或设备可以包含远程单元,例如移动电话、手持式个人通信系统(PCS)单元、例如个人数据助理等的便携式数据单元、具备全球定位系统(GPS)功能的装置、导航装置、例如仪表读取设备等的固定位置数据单元,或存储或检索数据或计算机指令的任何其它装置,或其任何组合。
虽然图1至图6中的一或多者可以说明根据本发明的教示内容的系统、设备及/或方法,但本发明不限于这些所说明的系统、设备及/或方法。本发明的实施例可以适当地用于包含集成电路的任何装置中,所述集成电路包含处理器及存储器。
所属领域的技术人员将进一步了解,结合本文所揭示的实施例所描述的各种说明性逻辑块、配置、模块、电路及算法步骤可以实施为通过处理器执行的电子硬件、计算机软件或其组合。上文已大体在其功能性方面描述各种说明性组件、块、配置、模块、电路及步骤。此功能性是实施为硬件还是处理器可执行指令取决于特定应用及强加于整个系统的设计约束。熟练的技术人员可以针对每一特定应用以不同方式实施所描述的功能性,但此类实施决策不应被解释为引起对本发明的范围的偏离。
结合本文中所揭示的实施例而描述的方法或算法的步骤可以直接体现于硬件、由处理器执行的软件模块或其两者的组合中。软件模块可以驻留在随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、寄存器、硬盘、可移除式磁盘、压缩光盘只读存储器(CD-ROM)或此项技术中已知的任何其它形式的非暂时性储存媒体中。说明性存储媒体耦合到处理器,使得处理器可以从存储媒体读取信息和将信息写入到存储媒体。在替代方案中,存储媒体可以与处理器成一体式。处理器及存储媒体可以驻留在专用集成电路(ASIC)中。ASIC可以驻留在计算装置或用户终端中。在替代方案中,处理器及存储媒体可以作为离散组件驻留在计算装置或用户终端中。
提供对所揭示实施例的先前描述以使得所属领域的技术人员能够制造或使用所揭示的实施例。对这些实施例的各种修改对所属领域的技术人员将是显而易见的,并且可以将本文定义的原理应用到其它实施例而不偏离本发明的范围。因此,本发明并不既定限于本文展示的实施例,而应被赋予与如由所附权利要求书界定的原理及新颖特征一致的可能最宽范围。

Claims (30)

1.一种方法,其包括:
识别指令的一或多个通路预测特性;
基于所述一或多个通路预测特性的识别选择性地读取表以识别所述表的与所述指令相关联的识别数据高速缓存的通路的条目;及
作出基于所述指令对所述数据高速缓存的下一访问是否将访问所述通路的预测。
2.根据权利要求1所述的方法,其中所述一或多个通路预测特性包括所述指令的寻址模式、所述指令的指令类型、所述指令是否包含在环路中的指示,或其组合。
3.根据权利要求2所述的方法,其进一步包括确定所述指令的所述寻址模式是自动递增寻址模式还是基址加上偏移寻址模式。
4.根据权利要求3所述的方法,其进一步包括响应于所述指令的所述寻址模式包括所述自动递增寻址模式的确定而设定所述条目的经预测通路字段以识别所述数据高速缓存的特定通路,其中在产生所述条目后设定所述经预测通路字段。
5.根据权利要求3所述的方法,其进一步包括响应于所述指令的所述寻址模式包括所述基址加上偏移寻址模式的确定而设定所述条目的经预测通路字段以识别所述数据高速缓存的特定通路,其中所述条目是结合所述指令的第一执行产生,并且其中基于在所述第一执行之后的所述指令的第二执行设定所述经预测通路字段。
6.根据权利要求2所述的方法,其进一步包括确定所述指令的所述指令类型是加载类型还是存储类型。
7.根据权利要求2所述的方法,其中响应于所述指令包含在特定环路中的所述指示选择性地读取所述表。
8.根据权利要求1所述的方法,其进一步包括:
确定所述表是否包含所述条目;
确定所述条目是否有效以提供通路预测;及
响应于确定所述条目指示有效经预测通路,从所述条目检索所述经预测通路且选择性地驱动所述数据高速缓存的所述经预测通路。
9.根据权利要求1所述的方法,其进一步包括:
识别修改寄存器位置的数据的特定指令;
确定所述表中的特定条目是否包含对应于所述寄存器位置的寄存器标识符;
确定所述特定条目是否对应于所述特定指令;及
当所述特定条目不对应于所述特定指令时清除或无效化所述特定条目。
10.一种处理器,其包括:
解码逻辑,其经配置以识别指令的一或多个通路预测特性;及
控制逻辑,其耦合到所述解码逻辑,所述控制逻辑经配置以:
基于所述一或多个通路预测特性选择性地读取表以识别所述表的与所述指令相关联的识别数据高速缓存的通路的条目;及
作出基于所述指令对所述数据高速缓存的下一访问是否将访问所述通路的预测。
11.根据权利要求10所述的处理器,其进一步包括:
多个线驱动器,其中基于所述预测选择性地启用或停用所述多个线驱动器中的至少一个线驱动器;
标记阵列,其经配置以基于所述指令执行标记查找操作;
多路复用器,其响应于所述多个线驱动器且响应于从所述标记阵列或所述控制逻辑接收到的通路选择信号;及
开关,其经配置以选择性地启用或停用所述标记查找操作。
12.根据权利要求11所述的处理器,其中所述指令与递增值及地址相关联,并且其中所述控制逻辑进一步经配置以:
通过将所述递增值添加到所述地址确定所述指令的经递增地址;及
确定所述经递增地址是否位于所述数据高速缓存的与所述地址相同的高速缓存线中。
13.根据权利要求11所述的处理器,其中所述控制逻辑进一步经配置以:
基于所述经递增地址位于所述同一高速缓存线中的确定选择性地停用所述标记查找操作;及
当停用所述标记查找操作时向所述多路复用器提供通路选择信号。
14.根据权利要求12所述的处理器,其中所述控制逻辑进一步经配置以基于所述经递增地址与不同于与所述地址相关联的高速缓存线的高速缓存线相关联的确定而清除所述条目或指示所述表的所述条目是无效的。
15.一种设备,其包括:
用于识别指令的一或多个通路预测特性的装置;
用于基于所述一或多个通路预测特性的识别选择性地读取表以识别所述表的与所述指令相关联的识别数据高速缓存的通路的条目的装置;及
用于作出基于所述指令对所述数据高速缓存的下一访问是否将访问所述通路的预测的装置。
16.根据权利要求15所述的设备,其进一步包括:
用于对所述指令进行解码的装置,其中所述指令包含寄存器标识符且具有可预测下一地址;及
用于基于所述通路选择性地驱动数据高速缓存线的装置。
17.根据权利要求15所述的设备,其中所述表中的特定条目基于一或多个位的值指示经预测通路,并且其中所述一或多个位作为掩模应用到多个驱动器以选择性地启用或停用所述多个驱动器中的每一驱动器。
18.一种非暂时性计算机可读媒体,其包括在由处理器执行时致使所述处理器进行以下操作的指令:
识别指令的一或多个通路预测特性;
基于所述一或多个通路预测特性的识别选择性地读取表以识别所述表的与所述指令相关联的识别数据高速缓存的通路的条目;及
作出基于所述指令对所述数据高速缓存的下一访问是否将访问所述通路的预测。
19.根据权利要求18所述的非暂时性计算机可读媒体,其进一步包括在由所述处理器执行时致使所述处理器进行以下操作的指令:
识别与所述指令相关联的递增值;
识别在所述指令的执行期间访问的所述数据高速缓存的特定通路;
将所述递增值添加到与所述指令相关联的地址值以确定经递增地址值;及
确定所述经递增地址值是否与所述特定通路相关联。
20.根据权利要求18所述的非暂时性计算机可读媒体,其进一步包括在由所述处理器执行时致使所述处理器填入所述表中的所述条目的指令,其中所述表中的每一条目包含程序计数器标识符、寄存器标识符及经预测通路标识符。
21.根据权利要求18所述的非暂时性计算机可读媒体,其中在作出所述指令包含在一或多个指令的环路中的确定之后产生所述条目。
22.根据权利要求18所述的非暂时性计算机可读媒体,其进一步包括在由所述处理器执行时致使所述处理器进行以下操作的指令:
监视多个寄存器位置;
确定是否修改在所述多个寄存器位置中的特定寄存器位置处的数据;及
读取所述表以确定特定条目是否包含对应于所述特定寄存器位置的寄存器标识符。
23.一种方法,其包括:
在指令的第一执行期间识别递增值;
识别在基于所述指令的所述第一执行期间访问的数据高速缓存的通路;
将所述递增值添加到与所述指令相关联的地址值以确定第一经递增地址值;
确定所述第一经递增地址值是否位于所述数据高速缓存的所述通路中;及
响应于确定所述第一经递增地址位于所述数据高速缓存的所述通路中而填入表中的对应于所述指令的条目。
24.根据权利要求23所述的方法,其中所述表中的每一条目包含程序计数器标识符、寄存器标识符、经预测通路标识符、有效性位,或其组合。
25.根据权利要求23所述的方法,其进一步包括确定所述指令是包括自动递增指令还是基址加上偏移指令。
26.根据权利要求23所述的方法,其中所述条目识别访问的所述数据高速缓存的所述通路,其中结合所述指令的所述第一执行填入所述条目,且所述方法进一步包括在所述指令的第二执行期间执行以下操作:
从所述表中读取所述条目;
计算第二经递增地址值;及
在所述第二执行期间作为通路预测应用所述通路。
27.根据权利要求26所述的方法,其中应用所述通路包括:
从所述条目的通路字段检索所述通路;及
选择性地启用所述数据高速缓存的对应于所述经检索通路的驱动器。
28.根据权利要求23所述的方法,其进一步包括响应于确定所述指令的随后执行的经递增地址值位于与所述通路不同的通路中而更新所述表,其中所述指令的所述随后执行在所述第一执行之后。
29.根据权利要求23所述的方法,其进一步包括基于所述经递增地址与不同于与所述地址相关联的高速缓存线的高速缓存线相关联的确定而清除所述条目或指示所述表的所述条目是无效的。
30.根据权利要求23所述的方法,其进一步包括:
识别修改寄存器位置的数据的特定指令;
读取所述表以确定特定条目是否包含对应于所述特定寄存器位置的寄存器标识符;
确定所述特定条目是否对应于所述特定指令;及
当所述特定条目不对应于所述特定指令时清除或无效化所述特定条目。
CN201480003975.8A 2013-01-15 2014-01-10 数据高速缓存通路预测 Expired - Fee Related CN104903851B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/741,917 US9367468B2 (en) 2013-01-15 2013-01-15 Data cache way prediction
US13/741,917 2013-01-15
PCT/US2014/011051 WO2014113288A1 (en) 2013-01-15 2014-01-10 Data cache way prediction

Publications (2)

Publication Number Publication Date
CN104903851A true CN104903851A (zh) 2015-09-09
CN104903851B CN104903851B (zh) 2018-04-20

Family

ID=50029280

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480003975.8A Expired - Fee Related CN104903851B (zh) 2013-01-15 2014-01-10 数据高速缓存通路预测

Country Status (6)

Country Link
US (1) US9367468B2 (zh)
EP (1) EP2946285B1 (zh)
JP (2) JP6151377B2 (zh)
KR (1) KR101710438B1 (zh)
CN (1) CN104903851B (zh)
WO (1) WO2014113288A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108780398A (zh) * 2016-03-31 2018-11-09 高通股份有限公司 在基于处理器系统中基于负载路径历史使用地址预测表以提供负载地址预测
CN109716292A (zh) * 2016-09-19 2019-05-03 高通股份有限公司 在块原子数据流架构中提供存储器相依性预测
US11720365B2 (en) * 2019-09-25 2023-08-08 Alibaba Group Holding Limited Path prediction method used for instruction cache, access control unit, and instruction processing apparatus

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10157137B1 (en) 2015-09-22 2018-12-18 Apple Inc. Cache way prediction
US20180081815A1 (en) * 2016-09-22 2018-03-22 Qualcomm Incorporated Way storage of next cache line
CN206485775U (zh) 2017-01-19 2017-09-12 科丝美诗(中国)化妆品有限公司 一种盖子及具有该盖子的包装
US11281586B2 (en) 2017-05-09 2022-03-22 Andes Technology Corporation Processor and way prediction method thereof
US10877894B2 (en) * 2019-05-16 2020-12-29 Micron Technology, Inc. Memory-side transaction context memory interface systems and methods, wherein first context and first address are communicated on plural wires during different clock cycles and second context (of block of the first context) is communicated on additional wire during one of the different clock cycles
KR20210097345A (ko) 2020-01-30 2021-08-09 삼성전자주식회사 캐시 메모리 장치, 이를 포함하는 시스템 및 캐시 메모리 장치의 동작 방법
US11397685B1 (en) * 2021-02-24 2022-07-26 Arm Limited Storing prediction entries and stream entries where each stream entry includes a stream identifier and a plurality of sequential way predictions
US11487667B1 (en) 2021-08-09 2022-11-01 Apple Inc. Prediction confirmation for cache subsystem
CN114816032B (zh) * 2022-06-30 2022-09-23 飞腾信息技术有限公司 一种数据处理方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6055622A (en) * 1997-02-03 2000-04-25 Intel Corporation Global stride prefetching apparatus and method for a high-performance processor
CN1343331A (zh) * 1999-03-09 2002-04-03 艾利森公司 高效微处理器体系结构
US20100049912A1 (en) * 2008-08-20 2010-02-25 Mips Technologies, Inc. Data cache way prediction
US8151084B2 (en) * 2008-01-23 2012-04-03 Oracle America, Inc. Using address and non-address information for improved index generation for cache memories

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5640532A (en) 1994-10-14 1997-06-17 Compaq Computer Corporation Microprocessor cache memory way prediction based on the way of previous memory read
US5752069A (en) 1995-08-31 1998-05-12 Advanced Micro Devices, Inc. Superscalar microprocessor employing away prediction structure
US6401193B1 (en) 1998-10-26 2002-06-04 Infineon Technologies North America Corp. Dynamic data prefetching based on program counter and addressing mode
US6643739B2 (en) * 2001-03-13 2003-11-04 Koninklijke Philips Electronics N.V. Cache way prediction based on instruction base register
US6678792B2 (en) * 2001-06-22 2004-01-13 Koninklijke Philips Electronics N.V. Fast and accurate cache way selection
US7406569B2 (en) * 2002-08-12 2008-07-29 Nxp B.V. Instruction cache way prediction for jump targets
US7117290B2 (en) 2003-09-03 2006-10-03 Advanced Micro Devices, Inc. MicroTLB and micro tag for reducing power in a processor
US20050050278A1 (en) 2003-09-03 2005-03-03 Advanced Micro Devices, Inc. Low power way-predicted cache
US7594223B2 (en) * 2005-06-27 2009-09-22 Hewlett-Packard Development Company, L.P. Straight-line post-increment optimization for memory access instructions
US7657708B2 (en) 2006-08-18 2010-02-02 Mips Technologies, Inc. Methods for reducing data cache access power in a processor using way selection bits
US7917702B2 (en) 2007-07-10 2011-03-29 Qualcomm Incorporated Data prefetch throttle
US7827356B2 (en) 2007-09-10 2010-11-02 Qualcomm Incorporated System and method of using an N-way cache
US8145874B2 (en) * 2008-02-26 2012-03-27 Qualcomm Incorporated System and method of data forwarding within an execution unit
US8151096B2 (en) 2008-08-06 2012-04-03 Intel Corporation Method to improve branch prediction latency
US8327121B2 (en) 2008-08-20 2012-12-04 Mips Technologies, Inc. Data cache receive flop bypass
JP2011257800A (ja) * 2010-06-04 2011-12-22 Panasonic Corp キャッシュメモリ装置、プログラム変換装置、キャッシュメモリ制御方法及びプログラム変換方法
US8533422B2 (en) 2010-09-30 2013-09-10 Intel Corporation Instruction prefetching using cache line history
US8635408B2 (en) 2011-01-04 2014-01-21 International Business Machines Corporation Controlling power of a cache based on predicting the instruction cache way for high power applications

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6055622A (en) * 1997-02-03 2000-04-25 Intel Corporation Global stride prefetching apparatus and method for a high-performance processor
CN1343331A (zh) * 1999-03-09 2002-04-03 艾利森公司 高效微处理器体系结构
US8151084B2 (en) * 2008-01-23 2012-04-03 Oracle America, Inc. Using address and non-address information for improved index generation for cache memories
US20100049912A1 (en) * 2008-08-20 2010-02-25 Mips Technologies, Inc. Data cache way prediction

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108780398A (zh) * 2016-03-31 2018-11-09 高通股份有限公司 在基于处理器系统中基于负载路径历史使用地址预测表以提供负载地址预测
CN108780398B (zh) * 2016-03-31 2022-06-07 高通股份有限公司 在基于处理器系统中基于负载路径历史使用地址预测表以提供负载地址预测
CN109716292A (zh) * 2016-09-19 2019-05-03 高通股份有限公司 在块原子数据流架构中提供存储器相依性预测
CN109716292B (zh) * 2016-09-19 2023-01-24 高通股份有限公司 在块原子数据流架构中提供存储器相依性预测
US11720365B2 (en) * 2019-09-25 2023-08-08 Alibaba Group Holding Limited Path prediction method used for instruction cache, access control unit, and instruction processing apparatus

Also Published As

Publication number Publication date
JP6151377B2 (ja) 2017-06-21
JP2017152001A (ja) 2017-08-31
KR20150106881A (ko) 2015-09-22
EP2946285A1 (en) 2015-11-25
US9367468B2 (en) 2016-06-14
US20140201449A1 (en) 2014-07-17
WO2014113288A1 (en) 2014-07-24
KR101710438B1 (ko) 2017-02-27
CN104903851B (zh) 2018-04-20
EP2946285B1 (en) 2017-11-29
JP6342537B2 (ja) 2018-06-13
JP2016507097A (ja) 2016-03-07

Similar Documents

Publication Publication Date Title
CN104903851A (zh) 数据高速缓存通路预测
US12033056B2 (en) Multi-task recurrent neural networks
US8065488B2 (en) Mechanism for effectively caching streaming and non-streaming data patterns
CN100501739C (zh) 利用流预取历史来改进数据预取性能的方法和系统
CN103488461B (zh) 使用快速索引树实现加速分支预测的系统和方法
CN1725175A (zh) 分支目标缓冲器及其使用方法
JP5622155B2 (ja) キャッシュメモリおよびその制御方法
US20190155739A1 (en) Instruction Cache Management Based on Temporal Locality
KR101095204B1 (ko) 낮은-복잡도 명령 프리패치 시스템을 위한 방법 및 장치
CN103198026A (zh) 指令高速缓存功耗降低
CN101809547A (zh) 使用n路高速缓冲存储器的系统和方法
CN113448881A (zh) 用于动态地启用和/或禁用预取器的方法和设备
CN104854557A (zh) 具有多位通路预测掩码的指令高速缓存
CN102893260A (zh) 用以作为指令评估数据值的系统和方法
KR101449732B1 (ko) 계층적인 매우 긴 명령 패킷들을 프로세싱하는 시스템 및 방법
CN201556199U (zh) 用于实时Java处理器的字节码高速缓存装置
CN117971731A (zh) Lru近似算法的硬件实现装置、lru值的更新方法及装置
JP2006134351A (ja) Jitコンパイラを備えた仮想計算機

Legal Events

Date Code Title Description
PB01 Publication
C10 Entry into 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: 20180420

Termination date: 20190110