存储器配置装置以及方法.pdf

上传人:b*** 文档编号:4576906 上传时间:2018-10-21 格式:PDF 页数:13 大小:516.90KB
返回 下载 相关 举报
摘要
申请专利号:

CN201010256669.9

申请日:

2010.08.17

公开号:

CN101916232A

公开日:

2010.12.15

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 12/12申请日:20100817|||公开

IPC分类号:

G06F12/12

主分类号:

G06F12/12

申请人:

威盛电子股份有限公司

发明人:

柯林·艾迪; 罗德尼·E·虎克

地址:

中国台湾台北县

优先权:

2009.08.26 US 61/236,951; 2010.07.06 US 12/830,588

专利代理机构:

北京市柳沈律师事务所 11105

代理人:

钱大勇

PDF下载: PDF下载
内容摘要

存储器配置装置以及方法。该存储器配置装置,适用于在集合关联式快取存储器中配置项目,包括:阵列,该阵列根据来自第一功能单元的第一配置请求提供第一PLRU向量。第一PLRU向量从快取存储器的集合指定第一项目,该集合由第一配置请求所指定。第一PLRU向量是包括多层的位树。反转逻辑单元接收第一PLRU向量并反转多个既定位并根据自第二功能单元的第二配置请求以产生第二PLRU向量,而第二配置请求和第一配置请求同时产生,并指定快取存储器的相同集合,而相同集合由第一配置请求所指定。第二PLRU向量指定第二项目,该第二项目有别于来自相同集合的第一项目。既定位包括多层位树的一既定层的所有位。

权利要求书

1: 一种存储器配置装置, 适用于在集合关联式的一快取存储器中配置项目, 包括 : 一阵列, 用以根据来自一第一功能单元的一第一配置请求提供一第一 PLRU 向量, 其中 上述第一 PLRU 向量指定来自上述快取存储器的一集合的一第一项目, 上述集合由上述第 一配置请求所指定, 其中上述第一 PLRU 向量是包括多层的一位树 ; 以及 一反转逻辑单元, 用以接收上述第一 PLRU 向量, 并反转多个既定位以根据来自一第二 功能单元的一第二配置请求产生一第二 PLRU 向量, 而上述第二配置请求和上述第一配置 请求同时产生, 并指定上述快取存储器的相同集合, 而上述相同集合由上述第一配置请求 所指定, 其中上述既定位包括上述位树的多层中的一既定层的所有位。
2: 如权利要求 1 所述的存储器配置装置, 其中上述第一 PLRU 向量指定上述集合的一第 一项目, 其中上述第二 PLRU 向量指定上述集合的一第二项目, 上述第二项目有别于上述第 一项目。
3: 如权利要求 1 所述的存储器配置装置, 其中上述位树的多层中的上述既定层为上述 位树的其中一层。
4: 如权利要求 1 所述的存储器配置装置, 其中上述快取存储器是 8 路集合关联式, 其中 上述位树包括三层, 其中上述位树的多层中的上述既定层是上述位树的一第二层。
5: 如权利要求 1 所述的存储器配置装置, 其中上述快取存储器是 16 路集合关联式, 其 中上述位树包括四层, 其中上述位树的多层中的上述既定层是上述位树的一第二层。
6: 如权利要求 1 所述的存储器配置装置, 其中上述快取存储器是 16 路集合关联式, 其 中上述位树包括四层, 其中上述位树的多层中的上述既定层是上述位树的一第三层。
7: 如权利要求 1 所述的存储器配置装置, 还包括 : 一 PLRU 向量产生器, 用以根据具有反转既定位的上述第二 PLRU 向量, 产生一新 PLRU 向量, 并用以更新具有上述新 PLRU 向量的上述阵列。
8: 一种存储器配置方法, 适用于在集合关联式的一快取存储器中配置项目, 包括 : 根据一第一功能单元请求配置来自上述快取存储器的一集合的一项目, 从上述快取存 储器的一阵列提供一第一 PLRU 向量, 其中上述第一 PLRU 向量是包括多层的一位树 ; 以及 根据一第二功能单元同时请求配置来自上述快取存储器的相同集合的一项目, 反转上 述第一 PLRU 向量的既定位以产生一第二 PLRU 向量, 其中上述既定位包括上述位树的多层 中的一既定层的所有位。
9: 如权利要求 8 所述的存储器配置方法, 其中上述第一 PLRU 向量指定上述集合的一第 一项目, 其中上述第二 PLRU 向量指定上述集合的一第二项目, 而上述第二项目有别于第一 项目。
10: 如权利要求 8 所述的存储器配置方法, 其中上述位树的多层中的上述既定层为上 述位树的其中一层。
11: 如权利要求 8 所述的存储器配置方法, 其中上述快取存储器是 8 路集合关联式, 其 中上述位树包括三层, 其中上述位树的多层中的上述既定层是上述位树的一第二层。
12: 如权利要求 8 所述的存储器配置方法, 其中上述快取存储器是 16 路集合关联式, 其 中上述位树包括四层, 其中上述位树的多层中的上述既定层是上述位树的一第二层。
13: 如权利要求 8 所述的存储器配置方法, 其中上述快取存储器是 16 路集合关联式, 其 中上述位树包括四层, 其中上述位树的多层中的上述既定层是上述位树的一第三层。 2
14: 如权利要求 8 所述的存储器配置方法, 还包括 : 根据具有上述既定反转位的上述第二 PLRU 向量产生一新 PLRU 向量 ; 以及 更新具有上述新 PLRU 向量的上述阵列。

说明书


存储器配置装置以及方法

    【技术领域】
     本发明涉及快取存储器的领域, 特别涉及快取存储器的项目的配置。背景技术 当一单元 (unit)( 例如 : 载入单元 (load unit) 或存储单元 (store unit)), 在集 合关联式 (set-associative) 快取 (cache) 中未命中 (miss) 时, 它从上述快取中选择的 集合的其中一路 (way), 配置 (allocate) 一项目 (entry)。上述快取配置由一向量指定的 路, 该向量指定一取代方案 (replacement scheme), 而该向量通常是一虚拟最近最少使用 (pseudo-least recently used, PLRU, 以下皆简称 PLRU) 向量。上述快取须更新该 PLRU 向 量, 否则下一次快取执行配置时, 将会配置到相同的路。 有时候, 两单元 ( 例如 : 载入单元和 存储单元 ) 在该快取中皆未命中, 且同时初始化配置。 在此情形下有三个问题必须解决。 首 先, 必须确定相同的路未被配置给两个单元, 否则一个单元会踢掉 (kick out) 另一个刚配 置的单元, 这对执行效果不好。第二, 为了避免降低执行效能, 最好将 PLRU 向量更新至不会 很快被配置的路。 第三, 必须以较快的逻辑解决前两个问题以避免产生时序的问题 (timing problem)。
     发明内容 在一方面, 本发明提供一装置, 用于在集合关联式的一快取存储器中配置项目。 该 装置包括一阵列, 根据来自第一功能单元 (functional units) 的第一配置请求以提供一 第一 PLRU 向量。该第一 PLRU 向量从快取存储器的一集合中, 指定一第一项目, 该集合由 第一配置请求所指定。该第一 PLRU 向量是包括多层的一位树。该装置也包括一反转逻辑 (toggling logic) 单元, 该反转逻辑用以接收上述第一 PLRU 向量, 并根据来自第二功能单 元的第二配置请求反转既定位以产生一第二 PLRU 向量, 而该第二配置请求和上述第一配 置请求同时产生, 并指定由上述第一配置请求指定的相同快取存储器集合。上述既定位包 括上述位树的多层中的一既定层的所有位。
     在另一方面, 本发明提供一方法, 适用于在集合关联式的一快取存储器中配置项 目。 该方法包括 : 根据一第一功能单元请求配置来自上述快取存储器集合的一项目, 从该快 取存储器的一阵列提供第一 PLRU 向量。该第一 PLRU 向量是包括多层的一位树。该方法也 包括 : 根据一第二功能单元同时请求配置来自上述快取存储器相同集合的一项目, 反转第 一 PLRU 向量的既定位以产生第二 PLRU 向量。上述既定位包括上述位树的多层中的一既定 层的所有位。
     附图说明
     图 1 为说明一微处理器的方块图 ; 图 2 为说明图 1 微处理器的数据快取的方块图 ; 图 3 为说明图 2 操作数据快取的流程图 ; 以及图 4、 图 5 是根据图 3 的流程图, 说明图 2 操作数据快取的示例。 【主要元件符号说明】 100 ~微处理器 ; 106 ~指令快取 ; 108 ~指令解码器 ; 134 ~寄存器别名表 ; 136 ~保留站 ; 138 ~执行单元 ; 152 ~重排序缓冲器 ; 162 ~寄存器集 ; 172 ~载入单元 ; 174 ~存储单元 ; 182 ~存储器子系统 186 ~数据快取 ; 202 ~ PLRU 阵列 ; 204 ~输入索引 ; 206 ~反相器 ; 208 ~新 PLRU 产生器 ; 212 ~第一向量 ; 214 ~第二向量 ; 216 ~新 PLRU 向量 ; 222 ~ PLRU 向量。具体实施方式
     在此所述的快取存储器的实施例, 将目前的 PLRU 向量所指定的路, 配置给二功能 单元 ( 例如 : 载入单元和存储单元 ) 的第一个功能单元。 该实施例也切换 (toggle) 在 PLRU 树 (tree) 低阶 (low level) 的向量位, 并将切换向量 (toggled vector) 所指定的路, 配置 给二功能单元的第二个功能单元。该实施例也根据上述的切换向量, 产生新的 PLRU 向量, 该切换向量为快速且可扩展到一包括大量路的设计。
     如 图 1 所 示, 图 1 说 明 一 微 处 理 器 100 的 方 块 图。 该 微 处 理 器 100 包 括 : 指 令 快 取 (instruction cache)102、 指 令 解 码 器 (instruction decoder)108、 寄存器别 名 表 (register alias table, RAT)134、 保 留 站 (reservation stations)136、 寄存器 集 (register set)162、 重排序缓冲器 (recorder buffer, ROB)152、 以及多个执行单元 (execution units)138。执行单元 138 包括一存储器子系统 (memorysubsystem)182, 该 存储器子系统又包括一载入单元 172 和一存储单元 174, 分别用来从存储器载入数据, 和 存储数据到存储器。特别是, 载入单元 172 和存储单元 174 存取微处理器 100 的数据快取 (data cache)186。有利的是, 数据快取 186 利用一快而有效率的 PLRU 方案, 以解决冲突尝 试 (conflictingattempt), 该冲突尝试因由载入单元 172 和存储单元 174 欲配置一快取项 目于相同的集合 (set), 将会在以下作详细讨论。参阅图 2, 图 2 说明图 1 所示的微处理器 100 的数据快取 186 的方块图。该数据快 取 186 包括一 PLRU 阵列 202, 该 PLRU 阵列 202 又包括一 PLRU 向量 222 的阵列。在一实施 例中, PLRU 阵列 202 可被纳入数据快取 186 的标签阵列 (tag array)( 未图示 ), 该标签阵 列存储地址标签 (address tag) 且 / 或快取线 (cache line) 情况 ( 例如 : MESI 状态 ) 信 息。该数据快取 186 也包括一数据阵列 (data array)( 未图示 ), 存储实际的快取线数据。 各标签阵列和数据阵列是集合关联式的 (set-associative)。 也就是说, 上述的标签阵列和 数据阵列各有多条路, 这是快取存储器设计的技术领域中为人熟知的。
     当 PLRU 阵列 202 被存取时, 输入索引 (index)204 选择上述 PLRU 向量 222 的其中 之一, 该输入索引 204 包括由操作 ( 例如 : 载入或存储 ) 存取数据快取 186 所指定的存储器 地址 (memory address) 的较低位 (lower bits)。 在对相同集合同时载入和存储的操作中, 发生快取中未命中且要配置一项目于数据快取 186 的情形下, 该输入索引 204 的值是相同 的。该 PLRU 阵列 202, 在输出端输出所选择的 PLRU 向量 222 给两操作的第一个 ( 第一操 作 )。
     数据快取 186 也包括一组反相器 (inverter)206, 反相器 206 接收 PLRU 阵列 202 输出的第一向量 212, 并反转 ( 反相 )(invert) 第一向量 212 的一部分位, 以产生第二向 量 214, 提供给两操作的第二者 ( 第二操作 )。该反转的位是第一向量 212 在 PLRU 树的 同一层级 (level) 中的所有位 ( 如图 4 与图 5 所示 )。不同的层级选择对于 PLRU 取代 方案 (replacement scheme) 产生不同的影响, 设计者可选择特定层级以获取需要的特性 (characteristics)。 在一实施例中, 第一向量 212 提供给载入单元 172, 而第二向量 214 提 供给存储单元 174。
     即使图 2 只有图示单一输入索引 204, 要注意的是, 载入单元 172 和存储单元 174 有各自的输入索引 204, 以及比较器 (comparator)( 未图示 ) 比较上述两个输入索引 204, 以检测 (detect) 在同时载入和存储的操作中, 上述两索引相等的情况。此外, 虽然图示来 自 PLRU 阵列 202 只有单一输出, 要注意的是, PLRU 阵列 202 的输出包括第一输出和第二输 出, 该第一输出提供由载入单元 172 的输入索引 204 所选择的 PLRU 向量 222, 而该第二输 出提供由存储单元 174 的输入索引 204 所选择 PLRU 向量 222。第一输出总是提供给载入 单元 172。当载入单元 172 的输入索引 204 和存储单元 174 的输入索引 204 不相符合的时 候, 第二输出提供给存储单元 174。然而, 当载入单元 172 的输入索引 204 和存储单元 174 的输入索引 204 相符合的时候, 反相器 206 的输出提供给存储单元 174。
     数据快取 186 也包括一新 PLRU 产生器 208。该新 PLRU 产生器 208 接收第二向量 214, 并产生一新 PLRU 向量 216, 以更新在该 PLRU 阵列 202 中的选择 PLRU 向量 222。该新 PLRU 产生器 208, 根据众所皆知的 PLRU 产生方案, 产生新 PLRU 向量 216, 也就是反转在 PLRU 树探访 (visited) 的各位, 以到达 (reach) 指定的叶 (leaf)、 路、 或树。 要注意的是, 选择第 0 层反转会产生一潜在非期望的新 PLRU 向量 216, 因为该新 PLRU 向量 216 指向和第一向量 212 相同的路, 这导致几乎即刻配置的路与刚配置给第一操作的路相同。即使在图 2 图示 只有单一个新 PLRU 产生器 208, 要注意的是, 数据快取 186 也包括第二新 PLRU 产生器 208。 正常情况下, 第一新 PLRU 产生器 208 接收提供给载入单元 172 的输出, 而第一新 PLRU 产生 器 208 的输出 216 用来更新 PLRU 向量 222, 该 PLRU 向量 222 在由载入单元 172 的输入索引 204 所选择 PLRU 阵列 202 之中。另外, 第二新 PLRU 产生器 208 接收提供给存储单元 174 的输出, 而第二新 PLRU 产生器 208 的输出 216 用来更新 PLRU 向量 222, 该 PLRU 向量 222 在由 存储单元 174 的输入索引 204 所选择 PLRU 阵列 202 之中。然而, 当载入单元 172 的输入索 引 204 和存储单元 174 的输入索引 204 相符合时, 反相器 206 的输出提供给第二新 PLRU 产 生器 208( 如图示 ), 且第二新 PLRU 产生器 208 的输出 216, 以更新相同的 PLRU 向量 222, 该 PLRU 向量 222 在由载入单元 172 和存储单元 174 共同选择 PLRU 阵列 202 之中。
     如图 3 所示, 图 3 说明图 2 所示的数据快取 186 操作的流程图。流程从方块 302 开始。
     在方块 302, 二个操作 ( 例如 : 载入和存储操作 ) 同时存取在数据快取 186 中相同 的集合, 也就是说, 它们指定相同的输入索引 204 的值。流程往方块 304 进行。
     在方块 304, PLRU 阵列 202 输出所选择的 PLRU 向量 222, 并提供被选择的向量 212 或第一向量 212 给第一操作。流程往方块 306 进行。
     在方块 306, 反相器 206 反转在第一 PLRU 向量树的其中一层 (at onelevel) 的所 有位以产生第二向量 214。流程往方块 308 进行。
     在方块 308, 反相器 206 提供第二向量 214 给第二操作。流程往方块 312 进行。
     在方块 312, 新 PLRU 产生器 208 从第二向量 214 的值, 产生新 PLRU 向量 216, 流程 往方块 314 进行。 在方块 314, 数据快取 186 写入新 PLRU 向量 216 给 PLRU 阵列 202 中的 PLRU 向量 222。流程终止于方块 314。
     图 4 是显示图 2 的数据快取 186 根据图 3 所示的流程操作的实施例。在图 4 的示 例中, 数据快取 186 是一 8 路 (8-way) 集合关联式的快取 ; 因此, 各 PLRU 向量 222 是 7 位, 如图所示。图 4 亦显示一 8 路 PLRU 向量 222 的 PLRU 树, 此为众所皆知的。特别的是, 节点 0 在第 0 层 ; 节点 1、 节点 2 在第 1 层 ; 节点 3 到节点 6 在第 2 层。图 4 所示的第一个示例, 反相器 206 反转上述 PLRU 树的第 1 层的位, 而第二个示例, 反相器 206 反转上述 PLRU 树的 第 2 层的位。
     图 5 是显示图 2 的数据快取 186 根据图 3 所示的流程操作的实施例。在图 5 的示 例中, 数据快取 186 是一 16 路集合关联式的快取。因此, 各 PLRU 向量 222 是 15 位, 如图所 示。图 5 亦显示一 16 路 PLRU 向量 222 的 PLRU 树, 此为众所皆知的。特别的是, 节点 0 在第 0层; 节点 1、 节点 2 在第 1 层 ; 节点 3 到节点 6 在第 2 层 ; 节点 7 到节点 14 在第 3 层。图 5 所示的第一个示例, 反相器 206 反转上述 PLRU 树的第 1 层的位, 第二个示例, 反相器 206 反 转上述 PLRU 树的第 2 层的位, 而第三个示例, 反相器 206 反转上述 PLRU 树的第 3 层的位。 即使在所示的实施例中, 一 8 路快取包括 3 层、 7 位 PLRU 向量, 以及一 16 路快取包括 4 层、 15 位 PLRU 向量, 其他实施例可考虑用不同数目的路 ( 例如 : 4 或 32), 和不同层数 ( 例如 : 2 或 5)。如同观察到的, 有利的地方是用来执行上述 PLRU 方案的电路很快速, 也就是说, 不 太可能引发时间的问题, 并且可扩展到一个大型 PLRU 向量, 以容纳多种快取的设计。
     进一步来说, 即使实施例是关于数据快取 186, 上述 PLRU 方案可用于指令快取、 合 并式快取 (unified caches)、 分支目标地址快取 (branch targetaddress caches)、 或任何 有多个请求者 (requestors) 同时要求配置一快取项目的快取。再进一步来说, 即使实施例 是关于快取存储器, 上述 PLRU 方案可用在其他应用上, 该应用中, 一配置方案 (allocation scheme) 是必须的, 且适用于具有多个请求者的来源 (resource)。
     必须了解到的是, 虽然本发明在此叙述了各式各样的实施例, 它们仅被当成示例 的方法, 而不是限制。对于熟知计算机领域技术的人士而言, 很明显的是, 各种形式和细节 的改变, 并不脱离本发明的范围。例如, 软件可实现例如 : 功能、 制造、 建模、 仿真、 叙述且 / 或测试这里上述的装置和方法。这可以用一般程序语言 ( 例如 C、 C++) 及硬件描述语言 (hardware descriptionlanguage, HDL)( 包含 Verilog HDL, VHDL 等等 ), 或其他可获得的 程序来完成。 上述的软件可以用于任何熟知的计算机可用媒介, 例如磁带、 半导体、 磁盘、 或 光盘 ( 例如 CD-ROM、 DVD-ROM 等等 )、 网络、 有线、 无线或其他通信媒介。 这里所叙述的装置和 方法的实施例, 可包含在一半导体知识产权内核 (semiconductor intellectual property core), 例如微处理器内核 ( 例如 : 实施在 HDL 上 ), 以及转为在生产集成电路的硬件。另 外, 其中所述的装置和方法可被实施于一硬件和软件的结合。 因此, 本发明不应被任何这里 所述的示例实施例所限制, 而应该只根据接下来的申请专利范围和其同等事物所定义。特 别的是, 本发明可实施在一微处理器装置中, 该微处理器装置可用于一般用途的计算机。 最 后, 本领域技术人员应可了解 : 他们可以用上述公开的概念和说明的实施例为基础, 以设计 或修改成其他结构, 来实现和本发明相同的目的, 而不脱离权利要求书所定义的范围。

存储器配置装置以及方法.pdf_第1页
第1页 / 共13页
存储器配置装置以及方法.pdf_第2页
第2页 / 共13页
存储器配置装置以及方法.pdf_第3页
第3页 / 共13页
点击查看更多>>
资源描述

《存储器配置装置以及方法.pdf》由会员分享,可在线阅读,更多相关《存储器配置装置以及方法.pdf(13页珍藏版)》请在专利查询网上搜索。

存储器配置装置以及方法。该存储器配置装置,适用于在集合关联式快取存储器中配置项目,包括:阵列,该阵列根据来自第一功能单元的第一配置请求提供第一PLRU向量。第一PLRU向量从快取存储器的集合指定第一项目,该集合由第一配置请求所指定。第一PLRU向量是包括多层的位树。反转逻辑单元接收第一PLRU向量并反转多个既定位并根据自第二功能单元的第二配置请求以产生第二PLRU向量,而第二配置请求和第一配置请求。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1