首页> 中国专利> 基于缓冲器充满度而向高速缓存进行预取

基于缓冲器充满度而向高速缓存进行预取

摘要

一种处理器(102)基于未命中地址缓冲器(MAB)(130)的充满度或者基于预取请求的信任级别,将预取请求从它们锁定为目标的高速缓存(104)传输至存储器层次结构中的另一高速缓存(105)。所述存储器层次结构中的每个高速缓存在所述MAB上分配有许多时隙。响应于在接收对高速缓存的预取请求(404)时,确定分配给所述高速缓存的时隙的充满度高于阈值,处理器便将所述预取请求传输至所述存储器层次结构中的下一更低级别高速缓存(410)。作为响应,被存取请求锁定为目标的数据会预取至所述存储器层次结构中的下一更低级别高速缓存,并且因此可用于随后提供给所述高速缓存。另外,处理器可基于预取请求的信任级别,将预取请求传输至更低级别的高速缓存。

著录项

  • 公开/公告号CN104769560A

    专利类型发明专利

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

    原文格式PDF

  • 申请/专利权人 先进微装置公司;

    申请/专利号CN201380058101.8

  • 申请日2013-11-05

  • 分类号

  • 代理机构北京戈程知识产权代理有限公司;

  • 代理人程伟

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-18 09:52:52

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-04-12

    授权

    授权

  • 2015-12-02

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

    实质审查的生效

  • 2015-07-08

    公开

    公开

说明书

背景

发明领域

本公开一般涉及处理器,并且更具体来说,涉及处理器上的预取。

现有技术描述

处理器架构通常采用存储器层次结构,在存储器层次结构的最低 级别上具有外部存储器,并且在存储器层次结构的每个更高级别上具 有高速缓存。处理器架构进一步采用从存储器层次结构中的最高级别 高速缓存请求数据(指令或操作数数据)的处理器核心。响应于确定与 存取请求相回应的信息并未存储在存储器层次结构中的特定高速缓 存上,所述高速缓存将发出针对来自层次结构中下一个更低级别上的 高速缓存的信息的存取请求。一些处理器架构采用非阻塞高速缓存, 据此,所述高速缓存能够在对朝向存储器层次结构中的更低级别的未 决存取请求的满足进行等待的同时,服务存取请求。此类架构可使用 未命中地址缓冲器(MAB)来存储用于每个未决存取请求的地址和其它 信息。存储器层次结构中的每个高速缓存分配有MAB时隙,以使得分 配至高速缓存的时隙数目决定针对高速缓存的未决存取请求的最大 允许数目。

存取请求可为至少两种类型:需求请求,其表示来自处理器核心 的、针对已知被处理器需要的指令或数据的请求,以及预取请求,所 述预取请求投机性地请求期望与被预测在稍后点处执行的指令或数 据参考相回应的指令或数据。通常给予需求请求较高优先级而便于保 留MAB上的存储位置。由于在MAB上缺乏可用存储位置,这个优先化 会对预取产生负面影响,从而降低处理器效率。

附图简述

通过参考附图,可更好地理解本公开,并且它的许多特征和优点 对本领域技术人员来说变得显而易见。

图1为根据一些实施方案的电子装置的方框图。

图2为根据一些实施方案的、在图1的电子装置的处理器上所使 用的预取请求信息的方框图。

图3为时间线图,其示出根据一些实施方案的、在图1的处理器 的存储器层次结构上进行的预取请求传输。

图4为根据一些实施方案的、基于MAB充满度而在图1的处理器 的存储器层次结构上传输预取请求的方法的流程图。

图5为根据一些实施方案的、基于预取信任级别而在图1的处理 器的存储器层次结构上传输预取请求的方法的流程图。

图6为流程图,其示出根据一些实施方案的、用以设计和制造实 施处理器部件的至少一部分的集成电路装置的方法。

在不同图示中相同参考符号的使用指示类似或相同的物件。

详细描述

图1至图6示出用以提升处理效率的技术,所述技术通过基于未 命中地址缓冲器(MAB)或基于预取请求的信任级别,将预取请求从其 目标高速缓存传输至存储器层次结构中的另一高速缓存来提升处理 效率。处理器保持MAB,以使得MAB上的每个时隙可存储与针对存储 器层次结构中的高速缓存的未决存取请求相关的信息。存储器层次结 构中的每个高速缓存在MAB上分配有一组时隙。响应于在接收对高速 缓存的预取请求时,确定分配至高速缓存的所述组时隙的充满度高于 阈值,处理器将预取请求传输至存储器层次结构中的下一个更低级别 高速缓存。作为响应,被存取请求锁定为目标的数据会预取至存储器 层次结构中的更低级别高速缓存,并且因此在后续需求请求的事件中 可用以提供给高速缓存。另外,处理器可基于预取请求的信任级别而 将预取请求传输至更低级别的高速缓存。这确保与低信任级别关联的 预取请求不会消耗MAB上更高级别高速缓存的时隙,所述时隙将用于 具有更高信任度的需求请求或预取请求。

图1示出根据一些实施方案的、具有处理器102和存储器150的 电子装置100。电子装置100可为采用处理器的任何装置,包括个人 计算机、服务器、便携式电子装置(如手机)、自动装置、游戏控制台 以及类似装置。处理器102一般被配置成执行布置为计算机程序并且 存储在存储器150上的多组指令。所述多组指令操纵处理器102,以 便执行与计算机程序关联的任务。

处理器102包括执行所述多组指令的处理器核心110。在一些实 施方案中,处理器核心110实施具有多个级的指令流水线,据此每个 级执行作为指令执行的一部分的特定操作。例如,指令流水线可包括: 获取级,用以按照程序顺序来获取下一指令;解码级,用以将所获取 的指令解码成微操作集;分派级,用以分派微操作而加以执行;具有 多个执行单元的执行级,用以执行所分派的微操作;以及引退级,用 以管理指令的引退。

处理器102也包括一组N个高速缓存,其中N为整数。在所示出 的实施例中,N个高速缓存包括高速缓存104、高速缓存105以及额 外高速缓存至第N个高速缓存106。出于论述目的,假定高速缓存104 至106存储由处理器102在指令执行期间所操纵的数据。处理器102 也可包括布置在层次结构中另一组高速缓存,其存储将要由处理器核 心110执行的指令。在一些实施方案中,高速缓存104至106中的一 个或多个高速缓存可存储指令和数据。尽管将在假定高速缓存104至 106存储数据的条件下来描述参照图1所述的技术,但是应理解,所 述技术也适用于存储指令的高速缓存。

高速缓存104至106和存储器150一起形成用于电子装置100的 存储器层次结构145。存储器150位于存储器层次结构145的最低级 别上,并且高速缓存104至106各自位于存储器层次结构145的不同 对应级别上。因此,在图1的所示实施例中,高速缓存104位于层次 结构的最高级别上,所以被称为L1(“一级”)高速缓存104。高速缓 存105位于存储器层次结构145中的下一更高级别上,并且被称为 L2(“二级”)高速缓存105。处理器102的其它高速缓存位于存储器 层次结构145的其它级别上,其中高速缓存106处于第N个级别上并 且称为LN高速缓存106。在一些实施方案中,存储器层次结构145 的每个相继更高的级别相继更小(具有更小的容量来存储数据)。从 而,例如,L1高速缓存104容量小于L2高速缓存105的容量。然而, 如下文进一步描述的,处理器102通常经由L1高速缓存104存储数 据以及从存储器层次结构145检索数据,并且不会直接存储数据或从 存储器层次结构145的其它级别检索数据。因此,通过使数据穿过存 储器层次结构145的每个级别直到其到达L1高速缓存104,将位于 存储器层次结构145的更低级别上的数据提供给处理器102。在存储 器层次结构145中数据所穿过的每个级别,响应于来自处理器102的 存取请求而引入额外延时。因此,处理器102请求的数据在存储器层 次结构145中所位于的级别越高,数据的处理效率便越高(并且处理 器102接收数据的延时便越低)。

高速缓存104至106中的每一个高速缓存包括控制器和存储阵 列。用于高速缓存104至106中的每个高速缓存的存储阵列为一组被 配置来存储数据的存储元件,如位单元。用于高速缓存104至106中 的每个高速缓存的控制器被配置来管理其对应存储阵列上的数据存 储和检索。在所示出的实施例中,L1高速缓存104包括控制器115 和存储阵列116,L2高速缓存105包括控制器125和存储列阵126, 并且LN高速缓存106包括控制器135和存储阵列136。

处理器核心110包括加载/存储单元111,以便响应于特定指令 而生成存储器存取请求。出于说明目的,在一些实施方案中,加载/ 存储单元111位于处理器核心110的指令流水线的执行级上。指令流 水线的解码级会解码特定指令来生成相应操作,以便从存储器层次结 构145检索数据(加载操作)或者将数据存储在存储器层次结构145上 (存储操作)。加载操作和存储操作在本文中共同称为存储器存取请 求。每个存储器存取请求包括识别由存储器存取请求所存取的数据的 位置的存储器地址。

响应于存储器存取请求,加载/存储单元111生成对存储器层次 结构145的请求,本文称为需求请求。需求请求被提供给L1高速缓 存104。控制器115分析用于需求请求的存储器地址,并且确定存储 阵列116是否存储与存储器地址关联的数据。如果确定存储阵列116 存储所述数据,那么在需求请求用于加载操作的情况下,控制器115 便会通过将与存储器地址关联的数据提供给加载/存储单元111来满 足需求请求,或者在需求请求为存储操作的情况下,控制器115便会 通过将新数据存储在对应于存储器地址的位置上来满足需求请求。如 果控制器115确定存储阵列116并未存储与存储器地址关联的数据, 那么其便指示高速缓存未命中并且将需求请求提供给L2高速缓存 105。

响应于需求请求,控制器125分析用于需求请求的存储器地址, 并且确定存储器阵列126是否存储与存储器地址关联的数据。如果确 定存储器阵列126存储所述数据,那么控制器125便将数据提供给 L1高速缓存104,以便存储在存储阵列116上。控制器115随后使用 存储在存储器阵列116上的数据来满足需求请求。如果控制器125确 定存储阵列126并未存储与存储器地址关联的存储数据,其便指示高 速缓存未命中并且将需求请求提供给处于存储器层次结构145的下 一更低级别上的高速缓存。处于存储器层次结构145的其它级别上的 控制器执行与控制器125类似的操作,以便确定其对应的存储阵列是 否存储与存储器地址关联的数据。如果确定其对应的存储阵列存储所 述数据,它们便将数据提供给处于层次结构中的下一更高级别上的高 速缓存,所述高速缓存又将所述数据提供给下一更高级别的高速缓 存,诸如此类,直到数据被提供给控制器115,以便存储在存储阵列 116上。如果高速缓存并未存储与存储器地址关联的数据,那么其便 指示高速缓存未命中,并且将需求请求提供给处于下一更高级别上的 高速缓存。需求请求因而穿过存储器层次结构145,直到数据被确定 位于高速缓存上,或者直到其到达LN高速缓存106。如果控制器135 确定存储阵列136并未存储与存储器地址关联的数据,其便将存储器 地址提供给存储器150。作为响应,存储器150将数据提供给控制器 135,以便沿存储器层次结构145向上穿到L1高速缓存104。

在一些实施方案中,高速缓存104至106中的每个高速缓存响应 于需求请求来存储从下一更高级别上的高速缓存提供的数据。一般来 说,更低级别高速缓存比更高级别高速缓存具有更高的容量(例如, 更多存储单元),并且因此可存储更多数据。在一些实施方案中,高 速缓存104至106的控制器可实施不同策略,据此高速缓存可将数据 提供给下一更高级别,而不将数据存储在其存储阵列上。例如,每个 需求请求可包括指示需求请求类型(如优先级级别)的字段,并且高速 缓存104至106的控制器可基于需求请求的优先级级别,确定存储阵 列中的哪个存储阵列将响应于需求请求来存储数据。

处理器核心110包括预取器112,所述预取器112分析由加载/ 存储单元111发出的需求请求,并且基于所述分析而发出用于数据的 预取请求。预取请求类似于需求请求,但基于期望将在稍后点上由处 理器核心110上执行的指令所请求的数据而生成为投机性操作。如本 文进一步描述的,预取请求使得被预取请求锁定为目标的数据沿着存 储器层次结构145向上移动。因此,如果按照期望方式来请求数据, 那么所述数据在层次结构中更靠近处理器核心110,从而减少存取延 时。

预取请求被提供给L1高速缓存104,并且可由存储器层次结构 145按照与需求请求类似的样式加以满足。出于说明目的,每个预取 请求包括指示被预取请求锁定为目标的数据的存储器位置的存储器 地址。预取请求可按照与需求请求类似的样式穿过存储器层次结构 145,据此被预取请求锁定为目标的数据沿着层次结构向上传输,直 到其存储在L1高速缓存104上。如下文进一步描述的,对于一些预 取请求来说,被预取请求锁定为目标的数据并不特地传输至L1高速 缓存,而是仅仅传输至存储器层次结构145的更低级别,如L2高速 缓存105。这允许处理器102在高速缓存资源缺乏时更为有效地管理 需求请求的满足,正如本文进一步描述的。

如果高速缓存等待来自层次结构中下一更低级别高速缓存的、对 需求请求或预取请求的响应,那么需求请求或预取请求相对于高速缓 存来说便称为“未决的”。因此,举例来说,如果L1高速缓存104等 待L2高速缓存105响应于需求请求来提供数据,那么需求请求便称 为在L1高速缓存上是未决的。应了解,给定的需求请求或预取请求 可在高速缓存104至106中的多个高速缓存上是未决的,这取决于响 应需求请求的数据在存储器层次结构145中所处的位置。高速缓存 104至106配置为非阻塞高速缓存,原因在于高速缓存104至106的 每个高速缓存可执行其它操作,包括响应于其它需求请求或预取请 求,而同时在高速缓存上仍然存在未决的需求请求或预取请求。

为实施高速缓存104至106的非阻塞属性,处理器102包括未命 中地址缓冲器(MAB)130。MAB 130包括多个时隙,如时隙165,据此 每个时隙可存储表示高速缓存104至106中的一个高速缓存上未决的 对应需求请求或预取请求的信息。处理器102给高速缓存104至106 中的每个高速缓存在MAB 130上分配一组对应的时隙,以使得高速缓 存可仅将用于未决需求请求或未决预取请求的信息存储在其分配时 隙中的一个时隙上。在图1的所示实施例中,每个时隙标记有其所分 配到的对应高速缓存。

出于说明目的,响应于确定存储器层次结构145的高速缓存上的 高速缓存未命中,高速缓存的控制器在其分配的组中找到任何可用的 时隙,以便存储针对导致高速缓存未命中的需求请求或预取请求的信 息。如果时隙并未存储用于高速缓存上未决的另一需求请求或预取请 求的信息,那么所述时隙便确定为可用的。高速缓存控制器将针对导 致高速缓存未命中的需求请求的信息存储在可用时隙上。一旦MAB 130上分配给高速缓存的最后一个可用时隙已填充有用于需求请求或 预取请求的信息,高速缓存便向存储器层次结构145的下一更高级别 上的高速缓存指示其无法接收额外的需求请求或预取请求。响应于与 提供给高速缓存的未决需求或预取请求相回应的数据,高速缓存的控 制器会使MAB 130上的对应时隙可用,并且向存储器层次结构145的 下一更高级别指示其可接收额外的需求请求或预取请求。

在一些情况下,允许MAB 130上高速缓存的分配时隙由过大数目 的未决预取请求使用,会降低处理器核心110上的处理效率。例如, 在一些情况下,如果比起预取请求的满足,需求请求的满足在高速缓 存104-106上被给予更高优先级,那么便会提高处理效率。因此,高 速缓存104至106可管理MAB 130,以便增加时隙将可用于存储针对 未决需求请求的信息的可能性。例如,在一些实施方案中,用于L1 高速缓存104的控制器115监控MAB 130上分配给高速缓存104的可 用时隙的充满度。如果时隙的充满度低于阈值,那么控制器115便实 施相应策略,据此L1高速缓存104上所接收的预取请求会传输至L2 高速缓存105。响应于传输预取请求,控制器115不会将表示预取请 求的信息存储在MAB 130上的其分配时隙中的一个时隙上。因而保留 更多数目的可用时隙以便用于所接收的需求请求,进而提高处理效 率。

如本文所使用的,处于缓冲器上的一组时隙的充满度是指识别或 以其它方式表示在所述组上存储的许多需求请求、在所述组上存储的 许多预取请求或其组合的任何参数。可按照许多方式来确定所述组时 隙的充满度。例如,可通过从一组时隙中的时隙总数中减去所述组的 可用时隙数目来确定充满度。在一些实施方案中,充满度等于或基于 所述组中存储表示预取请求的信息的时隙数目。在一些实施方案中, 充满度等于或基于所述组中存储表示需求请求的信息的时隙数目与 所述组中存储表示预取请求的信息的时隙数目之间的差异。在一些实 施方案中,充满度等于或基于存储预取请求信息的时隙与存储需求请 求信息的时隙的比率。

响应于接收所传输的预取请求,L2高速缓存105以与非传输预 取请求类似的方式来处理所传输的预取请求,但并不将响应于所传输 的预取请求的数据提供给L1高速缓存104。出于说明目的,响应于 接收所传输的预取请求,L2高速缓存105确定存储阵列126是否存 储与预取请求的存储器地址关联的数据。如果L2高速缓存105确定 存储阵列126存储所述数据,那么其便不会将数据提供给L1高速缓 存104,而是将它保持在存储阵列126上。如果存储阵列126并未存 储与预取请求存储器地址关联的数据,那么控制器125便将表示预取 请求的信息存储在MAB 130上。另外,控制器125将预取请求提供给 层次结构中下一更低级别上的高速缓存。作为响应,L2高速缓存105 最终从存储器层次结构145中的更低级别接收与预取请求存储器地 址关联的数据。控制器125将接收的数据存储在存储阵列126上,但 并不将其提供给L1高速缓存104。被预取请求锁定为目标的数据因 而在存储器层次结构145中移动至更靠近处理器核心110的地方,从 而在数据稍后为需求请求的主题的情况下减少延时。然而,预取数据 并不特地提供给L1高速缓存104,进而在L1高速缓存104上提供更 多空间用于满足需求请求。

在一些实施方案中,预取请求可继续沿着存储器层次结构145向 下传输,直到其到达在MAB 130上具有大于阈值级别数目的可用时隙 的高速缓存。例如,如果L2高速缓存105接收所传输的预取请求, 那么控制器125便可确定其在MAB 130上是否具有大于阈值级别数目 的可用时隙。如果不具有,其可将预取请求传输至L3高速缓存。存 储器层次结构145中的不同高速缓存可基于不同阈值数目的可用时 隙来传输预取请求。

在一些实施方案中,高速缓存104至106可基于预取请求的信任 级别来传输预取请求。具体来说,每个预取请求可具有信任值,所述 信任值指示在阈值量的时间内被预取请求锁定为目标的数据将由处 理器核心110请求的预测可能性。响应于预取请求低于阈值的信任级 别,高速缓存可将预取请求传输至存储器层次结构145中的下一更低 级别高速缓存。这确保预测为不太可能被请求的预取数据不会消耗存 储器层次结构145的更高级别上的空间。在一些实施方案中,高速缓 存104至106可基于预取请求的信任级别与MAB 130上高速缓存的对 应时隙的充满度的组合来传输预取请求。例如,高速缓存104可响应 于其在MAB 130上的时隙超过50%充满的情形和低于40%的预取请求 信任级别来传输预取请求,并且可响应于超过35%充满的MAB和低于 60%的预取请求信任级别来传输预取请求。

图2示出根据一些实施方案的、表示预取请求的预取信息200的 方框图。预取信息200包括下一级别预取(NLP)字段202、信任字段 204和地址字段206。地址字段206指示被预取信息200所表示的预 取请求锁定为目标的数据的存储器地址。NLP字段202指示预取请求 是否将要传输至存储器层次结构145(图1)中的不同高速缓存。NLP 字段由高速缓存控制器使用,以便确定预取请求是否已传输,并且因 此确定是否将响应于预取请求的数据传输至存储器层次结构145中 的下一更高级别高速缓存。出于说明目的,响应于接收预取请求,L2 高速缓存105的控制器125(图1)确定预取请求的NLP字段202是否 指示预取请求已传输。如果没有指示预取请求已传输,那么L2高速 缓存105便将响应于预取请求的数据(是否从存储阵列126检索或者 从存储器层次结构145中的另一高速缓存接收)提供给L1高速缓存 104。如果NLP字段202指示预取请求为所传输的预取请求,那么L2 高速缓存105便将响应于预取请求的数据存储在存储阵列126上,但 不会响应于预取请求而将数据提供给L1高速缓存104。预取请求的 NLP字段202被设置来指示请求是在响应于确定分配给L1高速缓存 104的时隙超过阈值充满度的情况下,由控制器115进行的传输。

预取信息200的信任字段204指示关联预取请求的信任级别。信 任字段204的值由预取器112在其发出预取请求时加以设置。预取器 112基于加载/存储单元111所发出的需求存取的型式来设置信任字 段204的值。出于说明目的,在一些实施方案中,预取器112响应于 第一次检测特定型式,将用于所述型式的信任级别设置成初始值。预 取器122每次当其又检测所述型式时,便会增加信任级别,直到最大 值,并且每次当其检测所述型式的一部分但是检测并不符合所述型式 的全部时,便降低信任级别。例如,预取器122可检测针对存储器地 址A上的数据的需求请求(称为“需求请求A”)后面紧跟着针对存储 器地址B上的数据的需求请求(称为“需求请求B”)。作为响应,预 取器122将用于存取型式(称为型式A-B)的信任级别设置成初始值 001。响应于检测型式A-B的另一实例,预取器122将信任级别增加 至010。预取器122响应于检测型式A-B的其它实例而继续增加信任 级别。然而,响应于检测需求请求A并且检测需求请求A后面并未紧 跟着需求请求B,预取器122便降低信任级别。

响应于存取型式的信任级别超过阈值,预取器112会针对被型式 中下一需求请求锁定为目标的数据而发出预取请求。因此,在以上的 实施例中,一旦用于型式A-B的信任级别超过阈值级别,预取器122 便会响应于检测需求请求A的实例而发出针对存储器地址B上的数据 的预取请求。对于预取请求来说,预取器122将信任字段204设置成 与存取型式关联的当前信任级别。因此,如果用于型式A-B的信任级 别为011,那么预取器便会将信任字段204设置成值011。

存储器层次结构145的控制器可使用信任字段204的值来确定是 否传输预取请求。出于说明目的,L1高速缓存104上的控制器115 可实施相应策略,据此与小于011的信任值关联的任何预取请求都将 传输至L2高速缓存105。因此,响应于接收具有值小于011的信任 字段204的预取请求,控制器115设置预取信息200的NLP字段202 来指示预取请求被传输,并且将预取请求提供给L2高速缓存105上 的控制器125。

图3为时间线300的图,其示出根据一些实施方案的、在图1的 处理器102的存储器层次结构145上进行的预取请求传输。时间线 300示出一组事件以及MAB 130上分配给L1高速缓存104的一组时 隙315的最终产生内容。出于图1实施例的目的,假定L1高速缓存 104的控制器115实施相应策略,据此,如果所述组315的可用时隙 数目小于2,那么预取请求便传输至L2高速缓存105。

在时间301上,控制器115从加载/存储单元111接收需求请求 (定名为“需求1”)。作为响应,控制器115检测高速缓存未命中, 并且因此将表示需求1的信息存储在MAB 130上的所述组时隙315处。 在时间302上,控制器115从预取器112接收预取请求(定名为“预 取1”),并且确定预取1导致高速缓存未命中。响应于高速缓存未 命中,控制器115确定所述组315的时隙数目等于2,并且因此将表 示预取1的信息存储在所述组315上。

在时间303上,控制器115从预取器112接收预取请求(定名为 “预取2”),并且确定预取2导致高速缓存未命中。响应于高速缓 存未命中,控制器115确定所述组315的时隙数目小于2。因此,控 制器115通过设置用于预取2的NLP字段(图2)来指示所传输的请求, 从而传输预取2,并且将预取2提供给L2高速缓存105。在时间304 上,控制器115从加载/存储单元111接收需求请求(定名为“需求2”)。 作为响应,控制器115检测高速缓存未命中,并且因此将表示需求2 的信息存储在所述组时隙315上。因此,如果预取2尚未被传输,所 述组315的最后一个时隙将由预取2填充,从而迫使加载/存储单元 111推延需求2或取消预取请求预取1或预取2。因此,通过传输预 取2,在组315上空间可用于需求2,从而防止推延,并且,响应于 预取2的数据会在存储器层次结构中移动到更靠近处理器102的地 方。

在时间305上,控制器115确定需求1和预取1已被满足,原因 在于被这些请求锁定为目标的数据已存储在存储阵列116上。作为响 应,控制器115从所述组时隙315移除来自需求1和预取1的信息, 从而使它们的两个时隙可用于后续需求请求或预取请求。在时间306 上,控制器115从预取器112接收预取请求(定名为“预取3”),并 且确定预取3导致高速缓存未命中。响应于高速缓存未命中,控制器 115确定所述组315的时隙数目为2,以使得在所述组315上存在可 用的空间来存储表示预取3的信息。然而,控制器115确定用于预取 3的信任级别低于阈值。因此,控制器115通过设置用于预取3的NLP 字段来指示所传输的请求,从而传输预取3,并且将预取2提供给L2 高速缓存105。控制器115因而不会用具有低信任值的预取请求来消 耗所述组315上的可用时隙。因此,时隙可用于后续需求请求或预取 请求,这些需求请求或预取请求被预测会更好地提高处理效率。

图4为根据一些实施方案的、基于MAB充满度而在存储器层次结 构上传输预取请求的方法400的流程图。为了便于论述,参照图1的 电子装置100上的例示性实施形式来描述方法400。在方框402上, L1高速缓存104处的控制器115接收预取请求。在方框404上,控 制器115确定MAB 130上分配给L1高速缓存104的时隙的充满度是 否超过用于L1高速缓存104的阈值。如果没有超过,所述方法流程 便进行到方框406,并且控制器115将表示预取请求的信息存储在MAB 130上的可用时隙处。

返回到方框404,如果控制器115确定MAB 130上分配给L1高 速缓存104的时隙的充满度超过用于L1高速缓存104的阈值,所述 方法流程便进行到方框408,其中控制器115确定其是否为存储器层 次结构145中的最低高速缓存。如果是最低高速缓存,那么所述方法 流程便移动到方框412,并且控制器向预取器122指示无法满足预取 请求。返回到方框408,如果尚未到达高速缓存N,那么所述方法流 程便进行到方框410,并且控制器115将预取请求传输至存储器层次 结构145中的下一更低级别高速缓存—在这种情况下,便是L2高速 缓存105。所述方法流程返回到方框404,并且存储器层次结构中的 下一更低级别高速缓存确定其在MAB 130上的分配时隙的充满度是否 超过对应阈值。

因此,在方法400下,预取请求继续传输至更低级别高速缓存, 直到其到达在MAB 130上所分配的时隙的充满度不超过对应阈值的高 速缓存,或者直到方法400在方框412上指示无法满足预取请求。如 果预取请求到达在MAB 130上所分配的时隙的充满度不超过对应阈值 的高速缓存,那么方法400的流程将到达方框406处,并且表示预取 请求的信息会存储在MAB 130中分配给高速缓存的时隙上。另外,高 速缓存的控制器确保被预取请求锁定为目标的数据会存储在其对应 存储阵列上,但并不提供给存储器层次结构145中的下一更高级别高 速缓存。

图5为根据一些实施方案的、基于预取信任级别而在图1的处理 器的存储器层次结构上传输预取请求的方法500的流程图。为了便于 论述,参照图1的电子装置100上的例示性实施形式来描述方法500。 在方框502上,L1高速缓存104上的控制器115接收预取请求。在 方框504上,控制器115确定预取请求的信任级别是否低于针对L1 高速缓存104的阈值。如果不低于所述阈值,那么所述方法流程便进 行到方框506,并且控制器115将表示预取请求的信息存储在MAB 130 上的可用时隙处。

返回到方框504,如果控制器115确定预取请求的信任级别高于 针对L1高速缓存104的阈值,那么所述方法流程便进行到方框508, 其中控制器115确定其是否为存储器层次结构145中的最低高速缓 存。如果是最低高速缓存,那么所述方法流程便移动到方框512,并 且控制器向预取器122指示无法满足预取请求。返回到方框508,如 果未到达高速缓存N,所述方法流程便进行到方框510,并且控制器 115将预取请求传输至存储器层次结构145中的下一更低级别高速缓 存—在这种情况下,便是L2高速缓存105。所述方法流程返回到方 框504,并且存储器层次结构中的下一更低级别高速缓存确定预取请 求的信任级别是否低于对应阈值。

因此,在方法500下,预取请求继续传输至更低级别高速缓存, 直到其到达预取请求的信任级别超过对应阈值的高速缓存,或者直到 方法500在方框512上指示无法满足预取请求。如果预取请求到达信 任级别不超过对应阈值的高速缓存,那么方法500的流程便将到达方 框506处,并且表示预取请求的信息会存储在MAB 130中分配给高速 缓存的时隙上。另外,高速缓存的控制器确保被预取请求锁定为目标 的数据会存储在其对应存储阵列上,但并不提供给存储器层次结构 145中的下一更高级别高速缓存。将了解的是,在图4和图5中示出 的方法可进行组合,以使得基于MAB 130上高速缓存的分配时隙的充 满度来传输一些预取请求,并且基于相应预取信任级别来传输其它预 取请求。

在一些实施方案中,上文所述功能中的至少一些功能可通过执行 切实地存储在计算机可读介质上的一个或多个软件程序的一个或多 个处理器来实施,并且据此所述一个或多个软件程序包括相应指令, 所述指令在执行时会操纵一个或多个处理器来执行上文所述的处理 系统的一个或多个功能。此外,在一些实施方案中,利用一个或多个 集成电路(IC)装置(也称为集成电路芯片)来实施上文所述的串行数 据接口。可在这些IC装置的设计和制造中使用电子设计自动化(EDA) 和计算机辅助设计(CAD)软件工具。这些设计工具通常呈现为一个或 多个软件程序。所述一个或多个软件程序包括可由计算机系统执行的 代码,以便操纵计算机系统来操作表示一个或多个IC装置的电路的 代码,从而执行相应过程的至少一部分来设计或改动加工系统,以便 制造电路。这个代码可包括指令、数据或指令和数据的结合。表示设 计工具或制造工具的软件指令通常存储在可由计算系统访问的计算 机可读存储介质中。同样地,表示IC装置设计和制造的一个或多个 阶段的代码可存储在同一计算机可读存储介质或不同计算机可读存 储介质中,以及从同一计算机可读存储介质或不同计算机可读存储介 质进行存取。

计算机可读存储介质可包括使用期间可由计算机系统存取的任 何存储介质或存储介质的组合,以便将指令和/或数据提供给计算机 系统。此类存储介质可包括但不限于光学介质(例如,压缩光盘(CD))、 数字多功能光盘((DVD)或蓝光光盘)、磁性介质(例如,软盘、磁带或 磁性硬盘驱动器)、易失性存储器(例如,随机存取存储器(RAM)或高 速缓存)、非易失性存储器(例如,只读存储器(ROM)或闪存)或基于微 电子机械系统(MEMS)的存储介质。计算机可读介质可嵌入在计算系统 中(例如,系统RAM或ROM)、固定地附接至计算系统(例如,磁性硬 盘驱动器)、可移除地附接至计算系统(例如,光盘或基于通用串行总 线(USB)的闪存)或经由有线或无线网络而连接至计算机系统(例如, 网络可存取储存器(NAS))。

图6为流程图,其示出用以设计和制造实施根据一些实施方案的 一个或多个方面的IC装置的例示性方法600。如上文所指出的,针 对下述过程中的每个过程所生成的代码会存储在计算机可读存储介 质中或者以其它方式嵌入在计算机可读存储介质中,以便由对应的设 计工具或制造工具来存取和使用。

在方框602上,生成用于IC装置的功能规格。功能规格(通常称 为微架构规格(MAS))可由各种编程语言或建模语言中的任何语言来 表示,包括C、C++、SystemC、Simulink或MATLAB。

在方框604上,使用功能规格来生成表示IC装置硬件的硬件描 述代码。在一些实施方案中,使用至少一个硬件描述语言(HDL)来表 示硬件描述代码,所述硬件描述语言(HDL)包括用于IC装置电路的形 式描述和设计的各种计算机语言、规格语言或建模语言中的任何语 言。生成的HDL编码通常表示IC装置电路的操作、所述电路的设计 和组织,以及用以通过模拟来验证IC装置的正确操作的测试。HDL 的示例包括模拟HDL(AHDL)、Verilog HDL、SystemVerilog HDL以及 VHDL。对于实施同步数字电路的IC装置来说,硬件描述符代码可包 括寄存器传输级(RTL)代码,以便提供同步数字电路的操作的抽象表 现形式。对于其它类型的电路,硬件描述符代码可包括行为级代码, 以便提供电路的操作的抽象表现形式。由硬件描述代码所表示的HDL 模型通常经受一轮或多轮的模拟和调试,以便通过设计验证。

在验证硬件描述代码所表示的设计之后,在方框606上使用合成 工具来合成硬件描述代码,以便生成表示或界定IC装置电路的初始 物理实施形式的代码。在一些实施方案中,合成工具生成包括电路装 置实例(例如,门极、晶体管、电阻器、电容器、电感器、二极管等) 和电路装置实例之间的网络或连接的一个或多个网络列表。或者,网 络列表的全部或一部分可手动生成,而不使用合成工具。正如与硬件 描述代码一样,在最终一组的一个或多个网络列表生成之前,网络列 表可经受一个或多个测试和验证过程。

或者,可使用原理图编辑工具来编制IC装置电路的原理图,并 且随后可使用原理图捕获工具来捕获最终产生的电路图以及生成表 示电路图的部件和连接性的一个或多个网络列表(存储在计算机可读 介质上)。所捕获的电路图随后可经受一轮或多轮的模拟而进行测试 和验证。

在方框608上,一个或多个EDA工具使用方框906上所产生的网 络列表,以便生成表示IC装置电路的物理布局的代码。这个过程可 包括(例如)放置工具使用网络列表来确定或固定IC装置电路的每个 元件的位置。此外,布线工具建立在放置过程的基础上,以便添加或 布放根据网络列表来连接电路元件所需要的线路。最终产生的代码表 示IC装置的三维模型。所述代码可以用数据库文件格式(例如像图形 数据库系统II(GDSII)格式)来表示。处于这个格式下的数据通常表 示几何形状、文本标签或关于呈层次形式的电路布局的其它信息。

在方框610上,将物理布局代码(例如,GDSII代码)提供给生产 设施,所述生产设施使用物理布局代码来配置或者以其它方式改动生 产设施的制造工具(例如,通过掩膜作业),从而制造IC装置。也就 是说,物理布局代码可被编程至一个或多个计算机系统中,所述一个 或多个计算机系统随后可整个或部分地控制生产设施的工具的运行 或其中所执行的生产操作。

在一些实施方案中,上文所述技术的某些方面可通过运行软件的 处理系统的一个或多个处理器来实施。所述软件包括一组或多组可执 行指令,当由所述一个或多个处理器执行时,所述一组或多组可执行 指令操纵所述一个或多个处理器来执行上文所述技术的一个或多个 方面。软件存储在或者以其它方式切实地嵌入在可由处理系统访问的 计算机可读存储介质上,并且可包括指令执行期间所利用的指令和某 些数据,以便执行对应方面。

如本文所公开的,在一些实施方案中,一种方法包括:将指示第 一高速缓存上高速缓存未命中的地址存储在缓冲器上的第一组时隙 处;并且响应于确定第一组时隙的充满度超过第一阈值,将定向到第 一高速缓存的第一预取请求传输至第二高速缓存。在一些实施形式 中,确定第一组时隙的充满度,包括确定第一组时隙上存储与未决存 储器存取请求关联的地址的时隙数目。在一些实施形式中,确定第一 组时隙的充满度,包括确定第一组时隙中存储预取请求的时隙数目。 在一些实施形式中,确定第一组时隙的充满度,包括确定第一组时隙 中存储预取请求的时隙数目与第一组时隙中存储需求请求的时隙数 目的比率。在一些实施形式中,所述方法包括响应于第二高速缓存上 的高速缓存未命中而将地址存储在缓冲器上的第二组时隙处。在一些 实施形式中,将第一预取请求传输至第二高速缓存,包括将与第一预 取请求关联的地址存储在第二组时隙上。在一些实施形式中,所述方 法包括响应于确定第二组时隙的充满度超过第二阈值,将第一预取请 求传输至第三高速缓存。在一些实施形式中,第一阈值不同于第二阈 值。在一些实施形式中,所述方法包括响应于确定与定向到第一高速 缓存的第二预取请求关联的信任级别低于第二阈值,将第二预取请求 从第一高速缓存传输至第二高速缓存。

在一些实施方案中,一种方法包括响应于确定与定向到第一高速 缓存的第一预取请求关联的第一信任级别低于第一阈值,将第一预取 请求从第一高速缓存传输至第二高速缓存。在一些实施形式中,所述 方法包括响应确定第一信任级别低于第二阈值,将第一预取请求从第 二高速缓存传输至第三高速缓存。在一些实施形式中,将第一预取请 求传输至第二高速缓存包括,响应于第一高速缓存上的高速缓存未命 中并且响应于第二高速缓存上的高速缓存未命中,将第一预取请求存 储在存储地址的缓冲器的第一组时隙上,其中所述第一组时隙分配给 第二组高速缓存。在一些实施形式中,所述方法包括响应于确定缓冲 器的第二组时隙的可用时隙数目低于第二阈值,将定向到第一高速缓 存的第二预取请求传输至第二高速缓存。

在一些实施方案中,一种处理器包括:处理器核心,其用以发出 存取请求;第一高速缓存;第二高速缓存;缓冲器,其用以基于针对 第一高速缓存的高速缓存未命中,将地址存储在分配给第一高速缓存 的第一组时隙上,所述高速缓存未命中是由存取请求导致的;预取器, 其用以向第一高速缓存发出预取请求;以及,控制器,其用以响应于 确定缓冲器上的第一组时隙的充满度高于第一阈值,将第一预取请求 从第一高速缓存传输至第二高速缓存。在一些实施形式中,控制器通 过确定第一组时隙的不可用时隙数目来确定第一组时隙的充满度。在 一些实施形式中,控制器通过确定第一组时隙中存储预取请求的时隙 数目来确定第一组时隙的充满度。在一些实施形式中,控制器通过确 定第一组时隙中存储预取请求的时隙数目与第一组时隙中存储需求 请求的时隙数目的比率,确定第一组时隙的充满度。在一些实施形式 中,缓冲器将会响应于确定第二高速缓存上的高速缓存未命中而将地 址存储在第二组时隙上。在一些实施形式中,控制器会通过将第一预 取请求存储在第二组时隙上而将第一预取请求传输至第二高速缓存。 在一些实施形式中,所述处理器包括第三高速缓存;并且,控制器会 响应于确定第二组时隙的充满度超过第二阈值,将第一预取请求传输 至第三高速缓存。在一些实施形式中,第一阈值不同于第二阈值。在 一些实施形式中,预取器会确定第二预取请求的信任级别;并且,控 制器会响应于确定信任级别低于第二阈值,将第二预取请求从第一高 速缓存传输至第二高速缓存。

在一些实施方案中,一种计算机可读介质存储相应代码,以便改 动至少一个计算机系统来执行相应过程的一部分,从而制造处理器的 至一少部分,所述处理器包括:处理器核心,其用以发出存取请求; 第一高速缓存;第二高速缓存;缓冲器,其用以基于响应存取请求的、 对第一高速缓存的高速缓存未命中,将地址存储在分配给第一高速缓 存的第一组时隙上;预取器,其用以向第一高速缓存发出预取请求; 以及控制器,其用以响应于确定缓冲器上的第一组时隙的充满度高于 第一阈值,将第一预取请求从第一高速缓存传输至第二高速缓存。在 一些实施形式中,预取器会确定第二预取请求的信任级别;并且,控 制器会响应于确定信任级别低于第二阈值,将第二预取请求从第一高 速缓存传输至第二高速缓存。在一些实施形式中,控制器通过确定第 一组时隙中存储预取请求的时隙数目与第一组时隙中存储需求请求 的时隙数目的比率,确定第一组时隙的充满度。

应注意,并非上文在一般说明中描述的所有活动或元件都是需要 的,具体活动或装置的一部分可能是不需要的,并且一个或多个其它 活动可加以执行,或者,除所描述的那些元件之外,还可包括其它元 件。更进一步来说,活动列出的顺序并非必须是它们所执行的顺序。

另外,已经参考具体实施方案描述了相应概念。然而,本领域中 的普通技术人员会了解,可在不背离所附权利要求书中所阐述的本公 开范围的情况下,做出各种修改和改变。因此,本说明书和附图将视 为说明性而非限制性的,并且所述此类修改意在包括于本公开的范围 内。

上文已经参照具体实施方案描述了相应益处、其它优点以及问题 的解决方案。然而,所述益处、优点、问题解决方案,以及可使得任 何益处、优点或问题解决方案出现或变得更为显著的任何特征,都不 应解释为是任何或所有权利要求的关键、必需或必要特征。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号