管理阵列中分层表格的方法和系统的制作方法

文档序号:6609697阅读:180来源:国知局
专利名称:管理阵列中分层表格的方法和系统的制作方法
技术领域
本发明涉及计算机设计,尤其涉及允许维护分层计算机表格中条目 相干性的翻译緩存的创建,而不影响表格请求的服务时间或需要过多空 间或逻辑的计算机中阵列的分层组织。
背景技术
在计算机中,与平面(单级)组织相对比,经常可以通过分层(多 级)组织来增强动态高速存取表格(阵列),例如翻译緩存的设计。多 级方案表征与特定级别相关联的、或许在不同表格中的条目,其中每个 较低级别条目与特定较高级别条目相关联。较高级别(父)条目的目的 在于它们对其所有相应较低级别(子)条目共享共同的信息。这不仅节 省空间(芯片面积可能是微处理器设计的最重要成分),而且它允许许 多共同的功能在单个父条目而不是许多子条目上执行,这可以提高性能 并简化设计。

发明内容
通过提供在IBM计算机和具有緩存条目的其他计算机系统中有用 的分层组织来克服现有技术的缺点并提供另外的优点,其中系统可以在 分层表格中维护条目的相干性。使用緩冲索引将较低级别表格中的多个 条目链接到较高级别表格中的单个条目,使得较高级别(父)条目可以 对它们相应的较低级别(子)条目共享共同的信息。每当层次级别条目 被替换或无效(invalidation)时,索引值递增。维护多个索引值的集合使 得当一个集合耗尽时,可以使用另一个集合继续处理。索引管理使得较 低级别条目具有包括索引集管理类型,特别是当前、脏和干净索引集的 索引值。这些索引集的使用允许当新的条目从新的集合构建时,具有来
自旧/脏的集合的索引值的相应较低级别条目被擦除(scrub)/无效。
因此,我们已经研制了 一种使用緩冲索引同步父条目和子条目并允 许子条目后台无效(也就是,如果阵列的新请求进入则中止无效,在满 足请求之后再继续无效)的具有分层组织的緩存设计。该緩存简单、节 省空间且可扩展到多种情况。緩存使用较低级别表格中的(多个)条目 到较高级别表格中的单个条目的通过緩冲索引值的链接。每当较高级别 条目被替换或无效(从而与它相应的较低级别条目解除关系)时,该索 引值递增。维护多个索引值集合,包括当前、脏和干净的索引集,使得 当一个集合耗尽时,可以使用其他集合继续处理。当新的条目从新(干 净)的集合构建时,则具有来自旧(脏)的集合的索引值的所有相应较 低级别条目被擦除(无效)。擦除防止将较低级别表格中的旧条目与较 高级别表格中的新条目相关联的相干性风险。该擦除可以在后台发生
(也就是,在处理表格的请求之间),并且可以在任意时间中止和再继 续以便不影响表格的请求服务时间。
这种维护条目相干性的方法具有如下优点,即它仅占用每个条目的
几位来实现,并且如果必要的话可以扩展它以满足使用中表格的特殊特 性。
另外的特征和优点通过本发明的技术而实现。在这里详细描述本发
明的其他实施方案和方面并将其看作请求保护的本发明的一部分。为了 更好地理解本发明的优点和特征,参考描述和附图。
技术效果
可以在表格中的父条目上执行的后台功能的实例是无效。不使用本 发明,与父条目相关联的每个子条目也都被无效。无效这些子条目的过 程可能是繁重的,例如在前台彻底搜索阵列的每个条目(也就是,延迟 阵列的所有新请求直到无效完成),或者需要在复杂度或芯片面积方面 都昂贵的专用硬件(例如CAM阵列)来实现,或者需要对于如同双向 链表的结构的足够空间和相关逻,以维护与相同父条目相关联的子条 目。 '
本发明解决维护分层计算机表格中条目相干性的问题,而不影响表 格的请求服务时间,也不需要过多的空间或逻辑。现有的解决方案在硅
芯片或功率方面是昂责的(例如CAM阵列)或者不必要地复杂(例如 双向錄)。


特别地指出并且在权利要求中作为说明书的结论而清楚地要求看作 本发明的主题。本发明的前述和其他目的、特征和优点将从下面结合附 随附图而进行的详细描述中显然,其中
图1A说明具有本发明的分层表格的计算机系统,而图IB说明分 层表格的一个实例,图1A的计算机中计算M存阵列的一个高级别H 与另一个低级别L具有使用分层表格设计的翻译緩存。
图2说明显示被扩展以包含每个条目的两位索引字段的图1中H 和L的本发明的索引设计。
图3说明已经添加并且用作索引字段的额外高位比特的新的索引集 字段。
图4说明一位索引集位的实现,其中索引集位已经作为高位比特合 并到索引字段中,并且其中高位H具有两个脏索引集, 一个用于B且 一个用于D。
详细描述参考附图经由实例结合优点和特征来说明本发明的优选实
施方案o
具体实施例方式
现在更详细地转向附图,将看到如图1A中所示,可以使用包含值 条目的分层表格的分层存储单元阵列来组织具有存储系统和微处理器、 经常包括緩存阵列的计算机系统。这里,为了简化,我们将假设两个表 格,H和L,其中H包括高级别条目而L包括低级别条目。实际上, 我们可以处理更多级别,或者更多表格,或者甚至一个表格(并且全部 条目共享它)。L中的每个(有效)条目指向H中的条目(也就是,它
的父条目)。为了使分层方案更具价值,可以进一步假设L中的多个子 条目可以指向H中的相同父条目。然后,查询L中的条目经常包括查 询H中它相应的父条目。这一部分可能是为了获得对于共享H中相同 父条目的L中所有子条目共同的信息,但是更重要地,如果它相应的父 条目无效则L中的条目可能不再有效。对于H和L的实例,参看图
在图IB中,H包含四个条目,A至D,而L包含八个条目,a至 h。每个条目包含有效位(1表示有效,0表示无效)。L中的每个条目 指向H中的父条目。例如,d指向B且g指向D (如所示)。H中的条 目是有效的,如果设置了它们的有效位(在该情况下,B和C是有效 的)。L中的条目是有效的,如果下面的两个条件都满足(i)设置了它 们的有效位,以及(ii)它们指向H中的有效条目。例如,a是无效的 (没有设置它的有效位),g同样无效(设置了它的有效位,但是它指 向无效的D),但是d是有效的(因为设置了它的有效位,并且它指向 有效的B)。
H中的条目O可以因自发(硬件或软件的直接动作)或非自发 (因不活动性而老去)原因而变得无效。 一个副作用是L中它相应的子 条目变得无效,因为它们不再指向H中的有效条目。但是,如果O被 一个新的有效条目N替换,问题将出现,即O的所有子条目现在指向 N,这不是它们的父条目。胜过手工地遍历并使得L中O的所有相应子 条目无效(我们称作擦除的过程),可以使用直接索引方案,其中将某 几个索引位,比方说I位,添加到H和L中的每个条目。这些索引位 可以编码2AI个不同的值。H中的每个条目可以从O开始它的索引,并 且随着新条目覆盖旧条目而递增到2AI-1。 L中的相应子条目将它们的 索引设置为相同的值,使得可以通过比较它们的索引与H中它们父条 目的索引来使这些子条目有效,确保这些索引设置为相同的值。图2说 明该索引方案。
在图2中,扩展H和L以每个条目包含两位索引字段。当条目建 立在L中时,它的索引值设置为H中它的父条目的索引值。当H中的
父条目被替换时,它相应的索引递增使得仍然指向它的L中的子条目不 再具有匹配的索引。这增加L中条目有效性的第三标准(Hi)它们的 索引值等于H中它们父条目的索引值。例如,c不再是有效条目,因为 虽然设置了它的有效位并且它指向H中的有效条目,但是它的索引不 同于它父条目的索引。另一方面,d仍然有效,因为它的索引值与它的 父条目B的索引值相同。
关于索引执行同步没有什么新的东西。 一种显著的实现细节是当所 有可能的索引值循环完时出现的相干性复杂化。这引入H中的新条目 与共享相同索引值的L中的旧条目相关联的风险(也就是,父条目的索 引循环一整轮,同时仍然存在来自先前父条目的仍然指向它的旧的子条 目)。实际上,这是每当H中的条目被无效并且不存在索引字段时我们 面对的相同现象。索引仅仅降低所需擦除的频率。
索引引入了基本的时间对空间的性能折衷。为了效率高(条目大小 方面),I (索引位数)需要尽可能地小。并且为了效率高(开销方 面),I需要尽可能地大以最小化擦除。 一般来说,动态阵列(例如緩 存)需要尽可能地大(条目方面)以便提高在它们中找到最近数据的概 率,但是它们需要尽可能地小(大小方面)以提高找到条目的访问时 间。通过最小化I来满足这两个目的,所以主要优化关注点是擦除开 销。
不损失一般性,我们将假设,对于H中的每个槽位,索引位形成 无符号二进制数,从0开始,每当新的条目在该特定槽位中建立(也就 是,以小一的索引值替换现有条目)时,逐一递增直到2AI-1,然后返 回到0。为了处理当索引回巻到0时的相干性风险,我们提出緩冲索引 方法(也就是,维护多个索引值集合)。参看图3,其中已经添加了用 于所有意图和目的的新的字段(索引集)作为索引字段的额外高位比 特。也就是,当索引字段回巻时,相应索引集字段递增。而且,对于L 中条目的有效性添加第四标准(iv)它们的索引集等于H中它们父条 目的索引集。例如,图3中,d是无效的(与它的父条目C不同的索引 集),e是无效的(与C不同的索引),但是f是有效的(与C相同的索
引集和索引)。
注意的最后细节是索引集管理。存在三种类型的索引集
1. 当前-当前索引集是当前由H中的条目使用的索引集。
2. 脏的-脏的索引集是未使用的并且可能在L中具有与其相关联 的且设置了有效位的条目的索引集。
3. 干净的-干净的索引集是未使用的并且在L中不具有与其相关 联的且设置了有效位的任何条目的索引集。
全部索引集都从干净的开始, 一个标识为当前集。 一旦当前集耗 尽,它变成脏的并且使用变成下一个当前集的干净的集合继续索引。未 使用时,脏的集合可以被擦除,从而将它们转换成干净的集合。只要该 擦除发生在不需要该脏的集合时(后台擦除),就可以维护相干性而没 有对系统的明显中断。但是,如果当前集耗尽且必须切换到新的集合, 并且所有其他集合都是脏的,那么擦除不能延迟。这会负面地影响性 能,在执行擦除(前台擦除)时悬挂请求。
为了简化,我们可以假设一位索引集位(也就是,两个索引集)。 如前所述,为了全部实践目的,索引字段可以包括索引集作为它的高位 比特。然后,我们需要H中每个条目的另外一位,也就是,其他索引 集(也就是,不是当前的集合)的状态,1表示脏的(且需要擦除),0 表示干净的(且当当前集耗尽时可以使用)。通常,对于具有更多索引 集位比方说S位的实现,将需要S位来跟踪脏的索引集。例如,该新的 字段可以标识第一个脏的索引集,该索引集与当前索引集(不包含)之 间的所有那些索引集假设是脏的。
图4说明一位索引集位实现,其中索引集位已经作为高位比特包含 到索引字段中。看H,存在两个脏的索引集, 一个用于B且一个用于 D。当B的当前索引集(0)仍然具有一些有效值(也就是10和11) 时,D的已经耗尽。当D被一个新条目替换时,完成在L中擦除具有 脏的索引集且仍然指向D的任何条目将是必需的。在该情况下,g刚好 是这种条目它的有效位是一,它指向D,它的索引集是O(这不是D 的当前索引集),并且它的索引集的状态是脏的。g将不得不在对D写
入新条目之前将它的有效位设置为0。相反地,可以对B写入新条目, 即使h指向B的脏索引集,因为在B的当前索引集中仍然存在空间。h 在B切换索引集之前将它的有效位设置为0是必需的。 实现考虑
索引位的数目以及索引集位的数目将取决于许多因素,包括擦除的 频率和效率以;JL4格的活动率。将任一字段增加一位将使得擦除之间所
需的时间量加倍(平均地),以父条目和子条目都增加一位为代价。另 外,将索引集字段增加一位将使得父条目增加额外的一位(以管理脏的 索引集),但是允许擦除过程的更大粒度,这可以实现更高效的擦除。
执行后台擦除的直接方法(以H和L表格作为实例)是,在不活 动期间,搜索H中具有脏索引集的条目。当找到一个时,则搜索L中 具有脏索引集的相应子条目,并且无效掉这种条目。 一旦L已经搜索完 成,并且所有适当子条目都已经被无效,则可以将脏索引集标记为干净 的,并且可以在H中继续搜索具有脏索引集的更多条目。在该后台擦 除期间到来的任何必需活动(H和/或L的请求)可以中止擦除,以便 以请求为先而不进行不必要的延迟,并且在已经满足请求之后擦除从它 停止的地方再继续。
本发明的能力可以在软件、固件、硬件或其某种组合中实现。
作为一个实例,本发明的一个或多个方面可以包括在具有例如计算 机可用介质的制品(例如一个或多个计算机程序产品)中。该介质具有 包括在其中例如用于提供和便于本发明能力的计算机可读程序代码。该 制品可以作为计算机系统的一部分而包括或者独立销售。
另外,可以提供可由机器读取、确实地包括可由机器执行的至少一 个指令程序以执行本发明能力的至少一个程序存储设备。
这里描绘的流程图仅仅是实例。可能存在对这里描述的这些图或步 骤(或操作)的许多变化而不背离^L发明的本质。例如,可以不同的顺 序执行步骤,或者可以添加、删除或修改步骤。所有这些变化认为是要 求保护的本发明的一部分。
虽然已经描述了本发明的优选实施方案,本领域技术人员将理解,
现在和未来,可以进行落入下面权利要求范围内的各种改进和增强。这 些权利要求应当解释为维护对首先描述的本发明的适当保护。
权利要求
1.一种管理阵列中分层表格的方法,包括维护值条目的分层表格的阵列,包括条目的较高级别表格和至少一个较低级别表格,并且使用具有所述条目的索引值的缓冲将较低级别表格中的多个条目链接到较高级别表格中的单个条目以维护所述分层表格中条目的相干性,所述索引值包括当前索引、脏的索引和干净的索引,以及每当较高级别条目被替换或无效时将索引值递增。
2. 根据权利要求1的方法,其中维护多个索引值集合,并且当一 个集合耗尽时,使用多个集合中的一个其他集合继续处理。
3. 根据权利要求1的方法,其中使用緩沖索引将较低级别表格中 的多个条目链接到较高级别表格中的单个条目,使得较高级别条目可以 对所有它们相应的较低级别条目共享共同的信息。
4. 根据权利要求1的方法,其中所述较高级别表格包含父条目且 所述较低级别表格包含子条目,并且使用緩冲索引将较低级别表格中的 多个条目链接到较高级别表格中的单个条目,使得较高级别父条目可以 对所有它们相应的较低级别子条目共享共同的信息。
5. 根据权利要求1的方法,其中每当分层级别条目被替换或无效 时索引值递增。
6. 根据权利要求5的方法,其中维护多个索引值集合,使得当一 个集^C尽时,可以使用另一个集合继续处理。
7. 根据权利要求6的方法,其中当从新的集合构建新的条目时, 所述索引集允许具有来自旧/脏的集合的索引值的相应较低级别条目被 擦除/无效。
8. 根据权利要求7的方法,其中如果表格的新请求出现,擦除/无 效作为后台无效而发生。
9. 根据权利要求4的方法,其中如果阵列的新请求出现,后台无 效在中止子条目的擦除/无效之后发生,并且其中擦除/无效在满足子条 目的请求之后再继续。
10. 根据权利要求l的方法,其中使用较低级别表格中多个条目到较高级别表格中单个条目的使用所述緩冲中所述索引值的链接,每当较 高级别条目被替换或无效并且与它相应较低级别条目的索引值集合解除 关系时所述索引值递增,以及当一个集合耗尽时,可以使用其他集合中 的一个集合继续处理,其中当从新的干净集合中构建新的条目时具有来 自旧的脏集合中的索引值的所有相应较低级别条目则可以被擦除/无 效,所述擦除防止将较低级别表格中的旧条目与较高级别表格中的新条 目相关联。
11. 根据权利要求10的方法,其中擦除可以在后台以及在处理表格的请求之间发生,并且可以在任意时间中止和再继续以便不影响表格 的请求服务时间。
12. —种计算机系统,包括存储系统和微处理器,并且包括具有包 含值条目的分层表格的分层存储单元阵列的緩存阵列,所述分层具有较 高级别表格和至少一个较低级别条目表格,并且使用具有所述条目的索 引值的緩冲将较低级别表格中的多个条目链接到较高级别表格中的单个 条目以维护所述分层表格中条目的相干性,所述索引值包括当前索引、 脏的索引和干净的索引,以及每当较高级别条目被替换或无效时所述计 算机系统将索引值递增。
13. 根据权利要求12的计算机系统,其中在所述阵列中维护多个 索引值集合,并且当一个集合*时,使用多个集合中的一个其他集合 继续处理。
14. 根据权利要求13的计算机系统,其中使用緩冲索引将较低级 别表格中所述阵列中的多个条目链接到较高级别表格中的单个条目,使 得较高级别条目可以对所有它们相应的较低级别条目共享共同的信息。
15. 根据权利要求14的计算机系统,其中当从新的集合构建新的 条目时,所述索引集允许具有来自旧/脏的集合的索引值的相应较低级 别条目被擦除/无效。
16. 根据权利要求15的计算机系统,其中如果表格的新请求出 现,擦除/无效作为后台无效而发生。
17. 根据权利要求16的计算机系统,其中如果阵列的新请求出 现,后台无效在中止子条目的擦除/无效之后发生,并且其中擦除/无效 在满足子条目的请求之后再继续。
18. 根据权利要求14的计算机系统,其中使用较低级别表格中多 个条目到较高级别表格中单个条目的使用所述緩冲中所述索引值的链接 来链接緩存阵列条目,每当较高级别条目被替换或无效并且与它相应较 低级别条目的索引值集合解除关系时所述索引值递增,以及当 一个集合 ^时,可以使用其他集合中的一个集合继续处理,其中当从新的干净 集合中构建新的条目时具有来自旧的脏集合中的索引值的所有相应较低 级别条目则可以被擦除/无效,所述擦除防止将较低级别表格中的旧条 目与较高级别表格中的新条目相关联。
19. 根据权利要求18的计算机系统,其中擦除可以在后台以及在 处理表格的请求之间发生,并且可以在任意时间中止和再继续以便不影 响表格的请求服务时间。120. 根据权利要求12的计算机系统,其中所述緩存阵列具有用于 索引集管理的緩沖,所述索引集包括集合a. 当前索引集,表示它是当前由较高级别条目使用的索引集,b. 脏的索引集,表示它是未使用的并且可能具有与其相关联的且 设置了有效位的较低级别条目的索引集,以及c. 干净的索引集,表示它是未使用的并且不具有与其相关联的且 设置了有效位的任何较低级别条目的索引集。
全文摘要
本发明涉及使用计算机阵列例如缓存的缓冲索引来同步父条目和子条目并且使子条目在后台无效(也就是,如果阵列的新请求进入则中止无效,在满足请求之后再继续无效)。同步方法使用较低级别表格中的(多个)条目到较高级别表格中的单个条目的通过缓冲索引值的链接。每当较高级别条目被替换或无效(从而与它相应的较低级别条目解除关系)时,该索引值递增。维护多个索引值集合,使得当一个集合耗尽时,可以使用其他集合中的一个集合继续处理。当新的条目从新(干净)的集合构建时,则具有来自旧(脏)的集合的索引值的所有相应较低级别条目被擦除(无效)。擦除可以在后台发生,并且可以在任意时间中止和再继续以便不影响表格的请求服务时间。
文档编号G06F17/30GK101101574SQ20071011023
公开日2008年1月9日 申请日期2007年6月5日 优先权日2006年7月6日
发明者尤特·加尔特纳, 布鲁斯·瓦加, 欧文·F.·菲弗 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1