首页> 中国专利> 缓冲存储器、缓冲存储器控制单元和缓冲存储器的控制方法

缓冲存储器、缓冲存储器控制单元和缓冲存储器的控制方法

摘要

本发明涉及缓冲存储器及其控制方法以及缓冲存储器控制单元。所述缓冲存储器包括:标记存储部,在该标记存储部中由被访问地址的第一地址部分查找多个索引中的一个索引,各索引包括多个标记地址和一个暂停表示部;数据存储部;标记控制部,当查找到的索引中包含的所述暂停表示部指示暂停时,所述标记控制部使与所述被访问地址相关的访问进行等待,并且当所述查找到的索引中包含的所述暂停表示部指示不暂停时,将所述被访问地址中的不同于所述第一地址部分的第二地址部分与所述查找到的索引中包含的所述多个标记地址中的各标记地址进行比较,并检测出与所述第二地址部分相一致的标记地址;及数据控制部。根据本发明,能够以简单构造实现访问暂停。

著录项

  • 公开/公告号CN104077237A

    专利类型发明专利

  • 公开/公告日2014-10-01

    原文格式PDF

  • 申请/专利权人 索尼公司;

    申请/专利号CN201410101367.2

  • 发明设计人 平尾太一;

    申请日2014-03-18

  • 分类号G06F12/08;

  • 代理机构北京信慧永光知识产权代理有限责任公司;

  • 代理人陈桂香

  • 地址 日本东京

  • 入库时间 2023-12-17 01:49:17

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-09-12

    授权

    授权

  • 2015-03-11

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

    实质审查的生效

  • 2014-10-01

    公开

    公开

说明书

技术领域

本发明涉及缓冲存储器(cache memory)。特别地,本发明涉及能 够在不等待先前对存储器的访问的响应情况下发出后续的访问的成组相 联型缓冲存储器、缓冲存储器控制单元及该缓冲存储器的控制方法。

背景技术

缓冲存储器已被用作减少从处理器到主存储器的访问频率的措施。 由于对主存储器的访问的完成时间的减少程度小于处理器的处理速度的 增加程度,所以对缓冲存储器的这类使用进行了研究。主存储器的单位 容量的成本相对较低,但是访问完成时间相对较长。相反地,缓冲存储 器的单位容量的成本相对较高,但是访问完成时间相对较短。通过在处 理器和主存储器之间设置具有缓冲存储器的等级化存储机制,能够实现 成本的降低和访问完成时间的缩短。

近来,在各种包含处理器的系统中,包含多个处理器的系统正在成 为主流系统。上述存储机制的等级化的发展导致了使用二级缓存或三级 缓存,二级缓存或三级缓存可以是由多个处理器共用的存储器件。

当处理器访问缓冲存储器时,所期望的数据优选地存在于缓冲存储 器中。然而,所期望的数据实际上可能不存在于缓冲存储器上,这导致 了缓存缺失(cache miss)。在这样的情况下,当缓冲存储器是比主存储 器更靠近处理器的一级时,发生了从缓冲存储器到主存储器的访问。

在多个处理器共用缓冲存储器的情况下,出现了这样的问题:在对 主存储器的这样的访问期间,整个系统如何高效地进行处理直到完成访 问而不中断操作。可采用下列途径来解决上述问题。

(1)当对该缓冲存储器的后续访问导致缓存命中(cache hit)时, 继续此处理(缺失命中,hit under miss)。

(2)除(1)之外,当对该缓冲存储器的后续访问导致缓存缺失时, 也继续此处理(缺失下缺失,miss under miss)。

当试图实现这样的缺失命中或缺失下缺失时,必须暂停对该缓存线 的访问直到完成因缓存缺失而产生的填充或回写处理。因而,在先前提 出的缓冲存储器中,为了使缓存线暂停直到完成填充处理,为各缓存线 设置有例如用于表明访问是否暂停的标记(例如,日本待审查专利申请 H6-149673和2010-033480)。

发明内容

在上述现有的方式中,通过为各缓冲线设置标记来暂停对相关缓存 线的访问。然而,当组合提供这样的标记、有效和脏管理以及缓存线选 择控制时,电路规模增大,且这类功能的校验不利地变得复杂。

因此,期望以简单构造实现缓冲存储器中的访问暂停。

本发明的实施例提供了一种缓冲存储器,其包括:标记存储部,在 所述标记存储部中由被访问地址的第一地址部分查找多个索引中的一个 索引,每个索引包含多个标记地址和一个暂停表示部;数据存储部,所 述数据存储部用于存储与所述多个索引中的每个索引的所述多个标记地 址相对应的各项数据;标记控制部,当查找到的索引中包含的所述暂停 表示部指示暂停时,所述标记控制部使与所述被访问地址相关的访问进 行等待,并且当所述查找到的索引中包含的所述暂停表示部指示不暂停 时,所述标记控制部将所述被访问地址的不同于所述第一地址部分的第 二地址部分与所述查找到的索引中包含的所述多个标记地址中的各标记 地址进行比较,并检测与所述第二地址部分相一致的标记地址;以及数 据控制部,当所述查找到的索引中包含的所述暂停表示部指示不暂停时, 所述数据控制部从所述数据存储部中选择与如下标记地址相对应的数 据,该标记地址是所述查找到的索引中包含的所述多个标记地址之中的 与所述第二地址部分相一致的标记地址。因此,提供了通过参照所述查 找到的索引中包含的所述暂停表示部来确定是否使所述缓冲存储器的处 理进行等待的功能。

有利地,所述暂停表示部可以包括读取引起暂停表示部和写入引起 暂停表示部,所述读取引起暂停表示部用于表示由读取处理引起的暂停, 且所述写入引起暂停表示部用于表示由写入处理引起的暂停,且当在所 述查找到的索引中所述读取引起暂停表示部和所述写入引起暂停表示部 中的一者或两者指示暂停时,所述标记控制部使与所述被访问地址相关 的所述访问进行等待。因此,提供了将引起暂停的处理分离的功能。

有利地,所述缓冲存储器可以是由多个主机共用的公用缓冲存储器。

本发明的实施例提供了一种缓冲存储器控制单元,其包括:标记存 储部,在所述标记存储部中由被访问地址的第一地址部分查找多个索引 中的一个索引,每个索引包含多个标记地址和一个暂停表示部;及标记 控制部,当查找到的索引中包含的所述暂停表示部指示暂停时,所述标 记控制部使与所述被访问地址相关的访问进行等待,并且当所述查找到 的索引中包含的所述暂停表示部指示不暂停时,所述标记控制部将所述 被访问地址的不同于所述第一地址部分的第二地址部分与所述查找到的 索引中包含的所述多个标记地址中的各标记地址进行比较,并检测与所 述第二地址部分相一致的标记地址。因此,提供了通过参照所述查找到 的索引中包含的所述暂停表示部来确定是否使访问进行等待的功能。

本发明的实施例提供了一种控制缓冲存储器的方法,所述缓冲存储 器标包括记存储部,在所述标记存储部中由被访问地址的第一地址部分 查找多个索引中的一个索引,每个索引包含多个标记地址和一个暂停表 示部,所述方法包括:当查找到的索引中包含的所述暂停表示部指示暂 停时,使与所述被访问地址相关的访问进行等待;及当所述查找到的索 引中包含的所述暂停表示部指示不暂停时,将所述被访问地址的不同于 所述第一地址部分的第二地址部分与所述查找到的索引中包含的所述多 个标记地址中的各标记地址进行比较,并检测与所述第二地址部分相一 致的标记地址。因此,提供了通过参照所述查找到的索引中包含的所述 暂停表示部来确定是否使访问进行等待的功能。

根据上述实施例中的任何实施例,提供了以简单构造在所述缓冲存 储器中实现访问暂停的出色效果。

应当理解,前面的一般性说明和下面的详细说明都是示例性的,且 旨在提供对所要求保护的发明的进一步说明。

附图说明

所包含的附图提供了对本发明的进一步理解,并被合并到说明书中 以作为说明书的一部分。附图图示了本发明的实施例,并与说明书一起 用于说明本发明的技术原理。

图1图示了本发明实施例中的信息处理系统的构造示例。

图2图示了本发明实施例中的二级缓存200的功能构造示例。

图3图示了本发明实施例中的二级缓存200的电路构造示例。

图4图示了本发明实施例中的标记存储部220的构造示例。

图5图示了本发明实施例中的二级缓存200的处理过程示例。

图6图示了本发明实施例中的二级缓存200响应于读取指令的状态 转换示例。

图7图示了本发明实施例中的二级缓存200响应于写入指令的状态 转换示例。

图8图示了本发明实施例中的二级缓存200响应于填充指令的状态 转换示例。

图9图示了本发明实施例中的二级缓存200响应于刷新指令地址型 的状态转换示例。

图10图示了本发明实施例中的二级缓存200响应于刷新指令索引型 的状态转换示例。

图11图示了本发明实施例中的二级缓存200响应于无效指令地址型 的状态转换示例。

图12图示了本发明实施例中的二级缓存200响应于无效指令索引型 的状态转换示例。

图13图示了本发明实施例中的二级缓存200响应于刷新和无效指令 地址型的状态转换示例。

图14图示了本发明实施例中的二级缓存200响应于刷新和无效指令 索引型的状态转换示例。

图15图示了本发明实施例中的二级缓存200响应于分配指令的状态 转换示例。

图16是图示了本发明实施例中的读取指令的执行的第一示例的时 序图。

图17是图示了本发明实施例中的读取指令的执行的第二示例的时 序图。

图18是图示了本发明实施例中的读取指令的执行的第三示例的时 序图。

图19是图示了本发明实施例中的读取指令的执行的第四示例的时 序图。

图20是图示了本发明实施例中的读取指令的执行的第五示例的时 序图。

图21图示了本发明实施例的变形例中的标记存储部220的构造示 例。

图22是图示了本发明实施例的变形例中的二级缓存200的处理过程 示例的流程图。

具体实施形式

在下文中对本发明的实施例进行了说明。按照下列顺序进行说明。

1.实施例(读取和写入被分离时的未完成管理(outstanding  management)的示例)。

2.变形例(不分离读取和写入时的未完成管理的示例)。

1.实施例

信息处理系统的构造

图1图示了本发明实施例中的信息处理系统的构造示例。该信息处 理系统包括p(p是1以上的整数)个处理器100-1~100-p(在下文中, 这类处理器被统称为处理器100)、二级缓存200和主存储器300。

各个处理器100内部包括一级缓存110-1~110-p(在下文中,这类 缓存被统称为一级缓存110)。因此,只要一级缓存110被命中,处理器 100使用一级缓存100来进行数据访问。当一级缓存100脱靶(miss-hit) 时,处理器100访问二级缓存200。当一级缓存110脱靶时,只要二级缓 存200命中时,处理器100使用二级缓存200来进行数据访问。另一方 面,当二级缓存200脱靶时,处理器100访问主存储器300。

以此方式,本发明的实施例具有三级存储结构,该三级存储结构由 各个处理器100的一级缓存110、各处理器100共用的二级缓存200以及 主存储器300构成。当将处理器100看作主机时,二级缓存200用作由 多个主机共用的公共缓冲存储器。

二级缓存的构造

图2是图示了本发明实施例中的二级缓存200的功能构造示例的图。 二级缓存200包括仲裁部210、标记存储部220、标记控制部230、数据 存储部240、数据控制部250及响应部260。

仲裁部210对来自处理器100-1~100-p中的各者和主存储器300的 访问进行仲裁,并给予他们中的一者访问权限。在仲裁部210做出的可 能的仲裁中,例如,可按循环的方式顺序地将访问权限分配给处理器 100-1~100-p和主存储器300。将被允许的访问提供至标记控制部230。

标记存储部220是由多个条目构成的存储器,并在各条目中保持标 记地址等。如稍后所述,标记地址表示访问地址的一部分。通过访问地 址的另一部分来查找标记存储部220的各条目。

标记控制部230根据访问地址来选择和控制标记存储部220将被访 问的条目。标记控制部230选择的条目被通知给数据控制部250。

数据存储部240存储与标记存储部220的每个条目相对应的数据。 各缓存线的数据在被管理的同时被存储在数据存储部240中。此外,各 缓存线的数据被传输至主存储器300或各处理器100,或者从主存储器 300或各处理器100传输来各缓存线的数据。

数据控制部250根据由标记控制部230选择的条目来访问存储在数 据存储部240中的数据。在读取访问或回写操作的情况下,将从数据存 储部240读取的数据提供至响应部260。在写入访问的情况下,将写入数 据埋于从数据存储部240读取的数据中的对应位置处并再次将其存储在 数据存储部240中。

响应部260将从数据控制部250提供的数据输出至处理器100-1~ 100-p中的一者或主存储器300。在响应于处理器100的读取访问的情况 下,数据被输出至已进行了该访问的处理器100。在主存储器300的回写 操作的情况下,数据被输出至主存储器300。

图3图示了本发明实施例中的二级缓存200的电路构造示例。这里, 假定二级缓存200是线数为128且线尺寸为64字节(B)的四路组相联 缓存。具体地,相同的索引地址能够存储多达四条缓存线,且与各缓存 线相对应的数据大小为64B。

当主存储器300的区域是256MB时,必要的地址包括28位。由于 块大小为64B,所以将访问地址的第零位至第五位,即总共六位分配给 线内地址(in-line address)。由于线数为128,所以将用于查找标记存储 部220的条目的索引地址分配至访问地址的第六位至第十二位,即总共 七位。因此,将标记地址分配至访问地址的第十三位至第二十七位,即 总共十五位。通过信号线201、信号线202和信号线203分别将访问地址 的标记地址、索引地址和线内地址提供至二级缓存200。

标记存储部220包括分别由128个条目构成的四条路径,即路径#0~ 路径#3。通过经由信号线202提供的索引地址来查找标记存储部220的 各路径。因此,在此示例中查找出了四个条目。

标记控制部230包括比较器231~234以及逻辑和运算器235,并且 对标记存储部220中的所查找的条目之中的具有一致的标记地址的条目 进行检测。比较器231将在标记存储部220的路径#0中查找到的条目中 包含的标记地址与通过信号线201提供的标记地址进行比较,并检测这 两个标记地址之间的一致。比较器232将在标记存储部220的路径#1中 查找到的条目中包含的标记地址与通过信号线201提供的标记地址进行 比较,并检测这两个标记地址之间的一致。类似地,比较器233应对标 记存储部220的路径#2,且比较器234应对标记存储部220的路径#3。 将这类比较器231~234的比较结果提供至逻辑和运算器235和数据控制 部250。当比较器231~234中的一者检测到一致时,逻辑和运算器235 通过信号线298输出命中的通知。然而,如稍后所述,在对应的条目的 有效位指示无效的情况下,比较结果被确定为脱靶。

数据存储部240包括分别由128个缓存线构成的四个路径,即路径 #0~路径#3,并存储与标记存储部220的每个条目相对应的数据。与标 记存储部220一样,数据存储部240是通过经由信号线202提供的索引 地址来进行查找的。因此,将四个64B的线数据提供至数据控制部250。

数据控制部250包括选择器251和252。选择器251选择从数据存 储部240提供的四个64B的数据中的一个数据。具体地,当比较器231 检测到一致时,选择数据存储部240的路径#0的线数据。当比较器232 检测到一致时,选择数据存储部240的路径#1的线数据。当比较器233 检测到一致时,选择数据存储部240的路径#2的线数据。当比较器234 检测到一致时,选择数据存储部240的路径#3的线数据。然而,如稍后 所述,在其中检测到一致的条目的有效位表示无效的情况下,不选择该 缓存线的数据。当比较器231和232均未检测到一致时,不选择任何缓 存线的数据。

选择器252选择在所选择的线数据中被指定为线内地址的位置处的 数据。通过信号线203来提供线内地址。然而,选择器252的这类功能 可以设置在处理器100中。在每种情况下,通过信号线299将整个或部 分线数据输出至响应部260。

图4图示了本发明实施例中的标记存储部220的构造示例。标记存 储部220在四条路径中的每个缓存线中包括标记地址221、有效222和脏 223的字段。标记存储部220在每个索引中还包括读取未完成255、写入 未完成226和替换算法227的字段。

标记地址221存储与该条目相对应的缓存线的标记地址(地址的高 15位)。在附图中,标记地址221被缩写为“TAG”。

有效222存储用于表示该条目的有效性的有效位(Valid)。当有效 222指示“1”时,与该条目相对应的缓存线的数据有效。当有效222指 示“0”时,即使比较器231~234中的一者检测到一致,也不作出命中 的判定。在附图中,有效222被缩写为“V”。

脏223存储用于表示与该条目相对应的缓存线的数据与主存储器 300的数据失配的脏位(Dirty)。如果脏223指示“1”,那么与该条目 相对应的缓存线的数据不与主存储器300的数据一致,即二级缓存200 的数据是最新数据。另一方面,如果脏223指示“0”,那么与该条目相 对应的缓存线的数据与主存储器300的数据一致。在附图中,脏223被 缩写为“D”。

读取未完成225存储读取未完成位(Read_Outstanding),该读取未 完成位用于表示与该索引相对应的一个缓存线处于从主存储器300读取 的等待状态。如果读取未完成225指示“1”,那么与该索引相对应的一 个缓存线处于从主存储器300读取的等待状态。另一方面,如果读取未 完成225指示“0”,那么在与该索引相对应的任何缓存线中都不会发生 从主存储器300读取的等待状态。这样的读取的等待状态出现在缓存线 的填充处理期间。当从主存储器300读取适当的数据并将其写入至适当 的缓存线时,填充处理完成并且读取未完成(ROS)被清零。在附图中, 将读取未完成225缩写为“ROS”。应当注意的是,读取未完成225对 应于根据本发明所附的权利要求的暂停表示部的示例。

写入未完成226存储写入未完成位(Write_Outstanding),该写入 未完成位用于表示与该索引相对应的一个缓存线处于写入至主存储器 300的等待状态。如果写入未完成226指示“1”,那么与该索引相对应 的一个缓存线处于写入至主存储器300的等待状态。另一方面,如果写 入未完成226指示“0”,那么在与该索引相对应的任何缓存线中都不会 发生写入至主存储器300的等待状态。这样的写入的等待状态出现在缓 存线的回写处理期间。当收到响应于写入至主存储器300的写入指令完 成写入的通知时,回写处理完成,且写入未完成(WOS)被清零。在附 图中,将写入未完成226缩写为“WOS”。应当注意的是,写入未完成 226对应于根据本发明所附的权利要求的暂停表示部的示例。

替换算法227存储用于确定当各索引存储新缓存线时将被替换的路 径的信息。虽然在此实施例中可以使用任何类型的替换算法,但是假定 这里使用如下方法:在该方法中,不是最近最少使用(LRU)的缓存线 被排除。在附图中,将替换算法227缩写为“LRU”。

因此,分别管理读取未完成225和写入未完成226,从而在完成写 入操作之后确实能够进行随后的填充操作。这使得能够保持相同地址的 某回写操作以及后续的填充操作的顺序。例如,如本实施例中假设的那 样,可将AXI总线列为具有表示写入操作完成的响应的协议。

二级缓存的操作

图5是图示了本发明实施例中的二级缓存200的处理过程示例的流 程图。

首先,当处理器100访问二级缓存200时(步骤S911:是),仲裁 部210判定多个处理器100-1~100-p中的哪一个处理器被许可访问(步 骤S912)。根据被许可的处理器100访问的地址来查找标记存储部220, 且读取标记和其它类型的信息(步骤S913)。

此时,当读取的索引的读取未完成位或写入未完成位指示“1”时(步 骤S914:是),暂停该访问,且处理返回至仲裁处理(步骤S912)。另 一方面,当读取未完成位和写入未完成位均指示“0”时(步骤S914: 否),该访问被许可,并且进行标记的比较,且参照有效位等(步骤S915)。 因此,确定了缓存操作(步骤S916)。随后,对标记地址221、有效222 和脏223的字段进行更新。

从此流程图中看出,在本实施例中,由于在标记比较等之前的阶段 中检查读取未完成位和写入未完成位,所以能够将处理大致分为两个阶 段,这使得控制得到简化。

当主存储器300不依赖此顺序流程图而进行响应时,目标缓存线的 读取未完成位或写入未完成位被清零。在填充处理的情况下,将来自主 存储器300的数据存储在二级缓存200中。

二级缓存的状态转换

现在,在各处理中分别说明二级缓存200的状态转换。在本发明的 实施例中,当V为“0”时,D在任何情况下也都为“0”,而不会出现 V=0且D=1等情况。此外,ROS/WOS=0意味着读取未完成位和写入未 完成位均为“0”。另一方面,ROS/WOS=1意味着读取未完成位和写入 未完成位中的一者或两者为“1”。在各项中,“*”意味着值或状态没 有被指定。

图6图示了本发明实施例中的二级缓存200响应于读取指令的状态 转换示例。为了从主存储器300读取数据,从处理器100发出读取指令。 二级缓存200连接在处理器100和主存储器300之间,并在接收到从处 理器100发出的读取指令时进行下列操作。

当ROS和WOS中的一者或两者为“1”时,读取处理暂停并等待直 至ROS和WOS均变为“0”。在这样的等待期间,可接收根据其它指令 对二级缓存200的访问。在此情况下,V、D、ROS和WOS的状态均不 发生变化。

如果比较器231~234中的一个比较器在一个条目中检测到标记地 址一致,且如果V为1,那么基本上做出命中判定,且从对应的缓存线 中读取数据。此时,即使D为1,也不进行向主存储器300的回写。在 此情况下,V、D、ROS和WOS的状态均不发生变化。

如果比较器231~234均没有检测到标记地址一致,或者如果即使检 测到这样的一致但V为0,那么基本上做出脱靶判定。因此,当没有检 测到标记地址一致时,通过LRU法等来确定将被替换的路径,且从主存 储器300进行适当的缓存线的填充操作。此时,如果D为1,那么在替 换之前还进行主存储器300的回写。如果即使检测到这样的一致但如果 V为0,那么新路径可能无法确定,因此,可以从主存储器300进行该缓 存线的填充操作。在这类情况下,当填充操作的指令被发送至主存储器 300时,状态被转换成ROS=1的状态。当发出回写操作的指令时,状态 被转换成WOS=1的状态。

图7图示了本发明实施例中的二级缓存200响应于写入指令的状态 转换示例。为了将数据写入主存储器300,从处理器100发出此写入指令。 二级缓存200连接在处理器100和主存储器300之间,并在接收到从处 理器100发出的写入指令时执行下列操作。

当ROS和WOS中的一者或两者为“1”时,写入处理程暂停并等待 直至ROS和WOS均变为“0”。在这样的等待期间,可接收根据其它指 令对二级缓存200的访问。在此情况下,V、D、ROS和WOS的状态均 不发生变化。

如果比较器231~234中的一个比较器在一个条目中检测到标记地 址一致,且如果V为1,那么基本上做出命中判定,且将数据写入至对 应的缓存线。此时,即使D为1,也不进行对主存储器300的回写。在 进行写入之后,状态变成D=1的状态。

如果比较器231~234都没有检测到标记地址一致,或者即使检测到 这样的一致但V为0,那么基本上做出脱靶判定。因此,当没有检测到 标记地址一致时,通过LRU法等来确定将被替换的路径,且从主存储器 300进行适当的缓存线的填充操作,然后写入数据。此时,如果D为1, 那么在替换之前还进行向主存储器300的回写。如果即使检测到这样的 一致但V为0,那么新路径可能无法确定;因此,可从主存储器300进 行该缓存线的填充操作。在这类情况下,当填充操作的指令被发送至主 存储器300时,状态被转换成ROS=1的状态。当发出回写操作的指令时, 状态被转换成WOS=1的状态。

图8图示了本发明实施例中的二级缓存200响应于填充指令的状态 转换示例。填充指令是用于从主存储器300读取缓存线至二级缓存200 的指令。然而,当二级缓存200命中时,可直接使用缓存线,因此,不 进行操作。

当ROS和WOS中的一者或两者为“1”时,填充处理暂停并等待直 至ROS和WOS均变成“0”。在这样的等待期间,可接收根据其它指令 的对二级缓存200的访问。在此情况下,V、D、ROS和WOS的状态均 不发生变化。

如果比较器231~234中的一个比较器在一个条目中检测到标记地 址一致,且如果V为1,那么基本上做出命中判定,且不进行任何操作。 在此情况下,V、D、ROS和WOS的状态均不发生变化。

如果比较器231~234均没有检测到标记地址一致,或者如果即使检 测到这样的一致但V为0,那么基本上做出脱靶判定。因此,当没有检 测到标记地址一致时,通过LRU法等来确定将被替换的路径,且从主存 储器300执行适当的缓存线的填充操作。此时,如果D为1,那么在替 换之前还进行向主存储器300的回写。在这样的情况下,当填充操作的 指令被发送至主存储器300时,状态被转换成ROS=1的状态。当发出回 写操作的指令时,状态被转换成WOS=1的状态。

图9图示了本发明实施例中的二级缓存200响应于刷新指令地址型 的状态转换示例。刷新指令是用于将缓存线写回至主存储器300的指令。 在刷新指令地址型的情况下,目标缓存线由地址指定。

当ROS和WOS中的一者或两者为“1”时,刷新处理暂停并等待直 至ROS和WOS均变成“0”。在这样的等待期间,可接收根据其它指令 对二级缓存200的访问。在此情况下,V、D、ROS和WOS的状态均不 发生变化。

如果比较器231~234中的一个比较器在一个条目中检测到标记地 址一致,且如果V为1,那么基本上做出命中判定。此时,如果D为1, 那么进行回写。当发出回写操作的指令时,状态被转换成WOS=1的状态。

如果比较器231~234均没有检测到标记地址一致,或者如果即使检 测到这样的一致但V为0,那么基本上做出脱靶判定,且不进行操作。 在此情况下,V、D、ROS和WOS的状态均不发生变化。

图10是图示了本发明实施例中的二级缓存200响应于刷新指令索引 型的状态转换示例。在刷新指令索引型的情况下,目标缓存线是由索引 值和路径值指定的。因此,不依赖于比较器231~234的比较结果来进行 处理。

当ROS和WOS中的一者或两者为“1”时,刷新处理暂停并等待直 至ROS和WOS均变成“0”。在这样的等待期间,可接收根据其它指令 对二级缓存200的访问。在此情况下,V、D、ROS和WOS的状态均不 发生变化。

与指定的索引值和路径值相对应的条目显示V=1和D=1,进行回写 操作。当发出回写操作的指令时,状态被转换成WOS=1的状态。

与指定的索引值和路径值相对应的条目显示D=0,可以不进行刷新, 因此,不进行操作。在此情况下,V、D、ROS和WOS的状态均不发生 变化。

图11图示了本发明实施例中的二级缓存200响应于无效指令地址型 的状态转换示例。无效指令是用于缓存线的无效化的指令。在无效指令 地址型的情况下,目标缓存线由地址指定。

当ROS和WOS中的一者或两者为“1”时,刷新处理暂停并等待直 至ROS和WOS均变为“0”。在这样的等待期间,可接收根据其它指令 对二级缓存200的访问。在此情况下,V、D、ROS和WOS的状态均不 发生变化。

如果比较器231~234中的一个比较器在一个条目中检测到标记地 址一致,且如果V为1,那么基本上做出命中判定,且相关缓存线被无 效化。因此,V、D、ROS和WOS的状态均被清零。在此情况下,即使 D为1,也不进行回写。

如果比较器231~234均没有检测到标记地址一致,或者如果即使检 测到这样的一致但V为0,那么基本上做出脱靶判定,且不进行操作。 在此情况下,V、D、ROS和WOS的状态均不发生变化。

图12图示了本发明实施例中的二级缓存200响应于无效指令索引型 的状态转换示例。在无效指令索引型的情况下,目标缓存线由索引值和 路径值指定。因此,不依赖于比较器231~234的比较结果来进行处理。

当ROS和WOS中的一者或两者为“1”时,无效处理暂停并等待直 至ROS和WOS均变为“0”。在这样的等待期间,可以接收根据其它指 令对二级缓存200的访问。在此情况下,V、D、ROS和WOS的状态均 不发生变化。

与指定的索引值和路径值相对应的条目显示V=1,相关缓存线被无 效化。因此,V、D、ROS和WOS的状态均被清零。在此情况下,即使 D为1,也不进行回写。

与指定的索引值和路径值相对应的条目显示V=0,缓存线可能未被 无效化,因此,不进行操作。在此情况下,V、D、ROS和WOS的状态 均不发生变化。

图13图示了本发明实施例中的二级缓存200响应于刷新与无效指令 地址型的状态转换示例。刷新与无效指令是用于在缓存线被回写至主存 储器300之后将缓存线无效化的指令。在刷新与无效指令地址型的情况 下,目标缓存线由地址指定。

当ROS和WOS中的一者或两者为“1”时,刷新与无效处理暂停并 等待直至ROS和WOS均变为“0”。在这样的等待期间,可接收根据其 它指令对二级缓存200的访问。在此情况下,V、D、ROS和WOS的状 态均不发生变化。

如果比较器231~234中的一个比较器在一个条目中检测到标记地 址一致,且如果V为1,那么基本上做出命中判定,且相关缓存线被无 效化。此时,如果D为1,那么在无效化之间先进行回写。当发出回写 操作的指令时,状态被转换成WOS=1的状态。

如果比较器231~234均没有检测到标记地址一致,或者如果即使检 测到这样的一致但V为0,那么基本上做出脱靶判定,且不进行操作。 在此情况下,V、D、ROS和WOS的状态均不发生变化。

图14图示了本发明实施例中的二级缓存200响应于刷新与无效指令 索引型的状态转换示例。在刷新与无效指令索引型中,目标缓存线是由 索引值和路径值指定的。因此,不依赖于比较器231~234的比较结果来 进行处理。

当ROS和WOS中的一者或两者为“1”时,刷新与无效处理暂停并 等待直至ROS和WOS均变为“0”。在这样的等待期间,可接收根据其 它指令对二级缓存200的访问。在此情况下,V、D、ROS和WOS的状 态均不发生变化。

与指定的索引值和路径值相对应的条目显示V=1,相关缓存线被无 效化。此时,如果D为1,那么在无效化之前先进行回写。当发出回写 操作的指令时,状态被转换成WOS=1的状态。

与指定的索引值和路径值相对应的条目显示V=0,缓存线可能未被 无效化,因此,不进行操作。在此情况下,V、D、ROS和WOS的状态 均不发生变化。

图15图示了本发明实施例中的二级缓存200响应于分配指令的状态 转换示例。分配指令是用于保留二级缓存200中的与指定的地址相对应 的缓存线的指令。然而,当二级缓存200命中时,可直接使用该缓存线, 因此,不进行操作。与填充指令不同,不从主存储器300读取数据。

当ROS和WOS中的一者或两者为“1”时,分配处理暂停并等待直 至ROS和WOS均变为“0”。在这样的等待期间,可接收根据其它指令 对二级缓存200的访问。在此情况下,V、D、ROS和WOS的状态均不 发生变化。

如果比较器231~234中的一个比较器在一个条目中检测到标记地 址一致,且如果V为1,那么基本上做出命中判定,且不进行操作。在 此情况下,V、D、ROS和WOS的状态均不发生变化。

如果比较器231~234均没有检测到标记地址一致,或者如果即使检 测到这样的一致但V为0,那么基本上做出脱靶判定。因此,当没有检 测到标记地址一致时,通过LRU法等来确定将被替换的路径。此时,如 果D为1,那么在保留路径之前还进行向主存储器300的回写。当发出 回写操作的指令时,状态被转换成WOS=1的状态。

二级缓存的操作时序

现在说明在各情况下二级缓存200的操作时序示例。

图16是图示了本发明实施例中的读取指令的执行的第一示例的时 序图。该示例性情况假设:在前面的访问中进行填充处理并且暂停后续 的访问。

假定处理器#1(100-1)发出读取指令(711),且二级缓存200的 标记控制部230做出脱靶判定(712)。此时,二级缓存200的响应部260 向主存储器300发出填充缓存线的指令(713)。因此,ROS在对应的缓 存索引中变成1。

随后,处理器#2(100-2)向相同的缓存索引发出读取指令(714), 且二级缓存200的标记控制部230检测到ROS=1。因此,暂停根据来自 处理器#2的读取指令的读取处理(715)。

当完成根据来自处理器#1的读取指令的填充处理时(717),ROS 在对应的缓存索引中变成0,且关于来自处理器#1的读取指令进行从二 级缓存200的读取操作(718)。此外,还关于来自处理器#2的读取指令 进行从二级缓存200的读取操作(719)。

图17是图示了本发明实施例中的读取指令的执行的第二示例的时 序图。该示例性情况假设:在前面的访问中进行填充处理和回写处理, 且暂停后续的访问。

假定处理器#1发出读取指令(721),且二级缓存200的标记控制 部230做出脱靶和脏的判定(722)。此时,二级缓存200的响应部260 向主存储器300发出缓存线的填充和回写的指令(723)。因此,ROS 和WOS在对应的缓存索引中均变成1。

接着,处理器#2向相同的缓存索引发出读取指令(724),且二级 缓存200的标记控制部230检测到ROS=1和WOS=1。因此,暂停根据 来自处理器#2的读取指令的读取处理(725)。

虽然同时发出填充处理的指令和回写处理的指令,但是先完成的处 理根据二级缓存200的外部状态而变化。这里,假定先完成填充处理(726 和727)。当填充处理和回写处理都完成时,ROS和WOS在对应的缓存 索引中均变成0,且关于来自处理器#1的读取指令进行从二级缓存200 的读取操作(728)。此外,还关于来自处理器#2的读取指令进行从二级 缓存200的读取操作(729)。

图18是图示了本发明实施例中的读取指令的执行的第三示例的时 序图。此示例性情况假设:在前面的访问中进行填充处理和回写处理, 并且完成了填充处理之后的后续访问暂停。

假定处理器#1发出读取指令(731),且二级缓存200的标记控制 部230做出脱靶和脏的判定(732)。此时,二级缓存200的响应部260 向主存储器300发出缓存线的填充指令和回写指令(733)。因此,ROS 和WOS在对应的缓存索引中均变成1。虽然同时发出填充处理的指令和 回写处理的指令,但是先完成的处理根据二级缓存200的外部状态而变 化。这里,假定先完成填充处理(736)。当完成填充处理时,ROS变成 “0”,但是WOS仍为“1”。

在完成填充处理之后,处理器#2向相同的缓存索引发出读取指令 (734),且二级缓存200的标记控制部230检测到ROS=0和WOS=1。 因此,基于来自处理器#2的读取指令的读取处理暂停(735)。

随后,当完成回写处理时(737),ROS和WOS在对应的缓存索引 中均变成0,且关于来自处理器#1的读取指令进行从二级缓存200的读 取操作(738)。此外,还关于来自处理器#2的读取指令进行从二级缓存 200的读取操作(739)。

图19是图示了本发明实施例中的读取指令的执行的第四示例的时 序图。本示例性情况假设:前面的访问的索引地址与后续的访问的索引 地址不同。

假定处理器#1发出读取指令(741),且二级缓存200的标记控制 部230做出脱靶和脏的判定(742)。此时,二级缓存200的响应部260 向主存储器300发出缓存线的填充指令和回写指令(743)。因此,ROS 和WOS在对应的缓存索引中均变成1。

另一方面,当处理器#2发出读取指令(744)时,假定将被访问的 缓存索引不同。在此情况下,二级缓存200的标记控制部230在该缓存 索引中检测到ROS=0和WOS=0。当标记控制部230检测到缓存命中时 (745),关于来自处理器#2的读取指令进行从二级缓存200的读取操作 (749)。

当完成基于来自处理器#1的读取指令的填充处理和回写处理时(746 和747),ROS和WOS在对应的缓存索引中均变成0。因此,关于来自 处理器#1的读取指令进行从二级缓存200的读取操作(748)。

图20是图示了本发明实施例中的读取指令的执行的第五示例的时 序图。该示例性情况假设:前面的访问的索引地址与后续的访问的索引 地址不同,并且在各访问操作中进行填充处理和回写处理。

假定处理器#1发出读取指令(751),且二级缓存200的标记控制 部230做出脱靶和脏的判定(752)。此时,二级缓存200的响应部260 向主存储部300发出缓存线的填充指令和回写指令(753)。因此,ROS 和WOS在对应的缓存索引中均变成1。

另一方面,当处理器#2发出读取指令(762)时,假定将被访问的 缓存索引不同。在此情况下,二级缓存200的标记控制部230在该缓存 索引中检测到ROS=0和WOS=0。假定标记控制部230做出脱靶和脏的 判定(762)。此时,二级缓存200的响应部260向主存储器300发出缓 存线的填充指令和回写指令(763)。因此,ROS和WOS在对应的缓存 索引中均变成1。

因此,当前面的访问的索引地址与后续的访问的索引地址不同时, 可为这两个访问操作发出填充指令和回写指令。在此情况下,在填充处 理和回写处理之中先完成的那个处理也根据二级缓存200的外部状态而 变化。在此示例中,对于来自处理器#1的读取指令而言,先完成填充处 理(754),然后完成回写处理(755)。因此,ROS和WOS在对应的 缓存索引中均变成0,且关于来自处理器#1的读取指令进行从二级缓存 200的读取操作(756)。另一方面,在此示例中,对于来自处理器#2的 读取指令而言,先完成回写处理(765),然后完成填充处理(764)。 因此,ROS和WOS在对应的缓存索引中均变成0,且关于来自处理器#2 的读取指令进行二级缓存200的读取操作(766)。

因此,根据本发明的实施例,在各缓存索引中设置有读取未完成225 和写入未完成226,从而能够以简单的构造在二级缓存200中实现访问暂 停。具体地,能够在对无效或脏状态进行处理或者进行标记比较之前的 阶段中判断是否暂停访问,因此能够避免复杂的处理。在典型的缓冲存 储器电路中,对于保证操作时序而言最困难的部分是:根据来自标记存 储部的读取信息来判定操作。在本发明的实施例中,电路被简化,因此, 即使进行诸如缺失下缺失等复杂操作,在电路合成时也能够容易地实现 时序一致。

2.变形例

虽然在上述实施例中,在各缓存索引中单独地设置读取未完成225 和写入未完成226,但是它们也可以共同设置。这样,难以将由读取处理 引起的暂停与由写入处理引起的暂停区分开,但是硬件构造及其控制更 加简化。应当注意的是,由于基本构造类似于上述实施例中的构造,所 以省略了对该基本构造的详细说明。

标记存储部的构造

图21图示了根据本发明实施例的变形例的标记存储部220的构造示 例。标记存储部220与上述实施例中的标记存储部220类似之处在于, 标记地址221、有效222和脏223的字段设置在四个路径中的各缓存线中。 在此变形例中,在各索引中设置有未完成224和替换算法227的字段。 替换算法227类似于上述实施例中的替换算法227。

未完成224存储未完成位(Outstanding),该未完成位用于表示与 该索引相对应的一个缓存线处于从主存储器300读取的等待状态或向主 存储器300写入的等待状态。如果未完成224指示“1”,与该索引相对 应的一个缓存线处于从主存储器300读取的等待状态或向主存储器300 写入的等待状态。另一方面,如果未完成224指示“0”,在与该索引相 对应的任何缓存线中都不发生从主存储器300读取的等待状态或向主存 储器300写入的等待状态。在附图中,将未完成224缩写为“OS”。应 当注意的是,未完成224对应于根据本发明所附的权利要求的暂停表示 部的示例。

此变形例中的未完成224被认为是上述实施例中的读取未完成225 和写入未完成226的逻辑和(OR)。因此,当发出缓存线的填充或回写 指令时,未完成224被设定为1(OS=1)。随后,当完成填充处理和回 写处理时,且当该缓存线的读取或写入的所有等待状态都消除时,未完 成224被清为0(OS=0)。

二级缓存的操作

图22是图示了本发明实施例的变形例的第二缓存200的处理过程示 例的流程图。虽然在上述实施例中的步骤S914中,在读取未完成位225 和写入未完成位226都指示“0”的条件下处理前进至后续的处理,但是 在此变形例中仅涉及未完成224。具体地,如果未完成224为“1”,就 暂停访问(步骤S924:是)。如果未完成224为“0”,就进行标记比 较等(步骤S924:否)。

因此,根据本发明实施例的变形例,硬件构造及其控制更加简化。

应当注意的是,上述实施例示出了本发明的示例性实施例。上述实 施例中的各主题与由所附的权利要求中的发明所指定的各主题具有对应 关系。类似的,用于说明所要保护的发明的各事项与和本发明的上述实 施例中的主题的设计相同的主题具有对应关系。然而,本发明不限于上 述实施例,并可以在不偏离本发明的精神的范围内通过这样的实施例的 各种修改或改变来实现。

根据本发明的上述实施例,能够实现至少下列构造。

(1)一种缓冲存储器,其包括:

标记存储部,在所述标记存储部中由被访问地址的第一地址部分查 找多个索引中的一个索引,每个索引包含多个标记地址和一个暂停表示 部;

数据存储部,所述数据存储部用于存储与所述多个索引中的每个索 引的所述多个标记地址相对应的各项数据;

标记控制部,当查找到的索引中包含的所述暂停表示部指示暂停时, 所述标记控制部使与所述被访问地址相关的访问进行等待,并且当所述 查找到的索引中包含的所述暂停表示部指示不暂停时,所述标记控制部 将所述被访问地址的不同于所述第一地址部分的第二地址部分与所述查 找到的索引中包含的所述多个标记地址中的各标记地址进行比较,并检 测与所述第二地址部分相一致的标记地址;及

数据控制部,当所述查找到的索引中包含的所述暂停表示部指示不 暂停时,所述数据控制部从所述数据存储部中选择与如下标记地址相对 应的数据,该标记地址是所述查找到的索引中包含的所述多个标记地址 之中的与所述第二地址部分相一致的标记地址。

(2)根据(1)所述的缓冲存储器,其中,

所述暂停表示部包括读取引起暂停表示部和写入引起暂停表示部, 所述读取引起暂停表示部用于表示由读取处理引起的暂停,且所述写入 引起暂停表示部用于表示由写入处理引起的暂停,且

当在所述查找到的索引中所述读取引起暂停表示部和所述写入引起 暂停表示部中的一者或两者指示暂停时,所述标记控制部使与所述被访 问地址相关的所述访问进行等待。

(3)根据(1)或(2)所述的缓冲存储器,其中,

所述缓冲存储器是由多个主机共用的公共缓冲存储器。

(4)一种缓冲存储器控制单元,其包括:

标记存储部,在所述标记存储部中由被访问地址的第一地址部分查 找多个索引中的一个索引,每个索引包含多个标记地址和一个暂停表示 部;及

标记控制部,当查找到的索引中包含的所述暂停表示部指示暂停时, 所述标记控制部使与所述被访问地址相关的访问进行等待,并且当所述 查找到的索引中包含的所述暂停表示部指示不暂停时,所述标记控制部 将所述被访问地址的不同于所述第一地址部分的第二地址部分与所述查 找到的索引中包含的所述多个标记地址中的各标记地址进行比较,并检 测与所述第二地址部分相一致的标记地址。

(5)一种控制缓冲存储器的方法,其中所述缓冲存储器包括标记存 储部,在所述标记存储部中由被访问地址的第一地址部分查找多个索引 中的一个索引,每个索引包含多个标记地址和一个暂停表示部,所述方 法包括如下步骤:

当查找到的索引中包含的所述暂停表示部指示暂停时,使与所述被 访问地址相关的访问进行等待;及

当所述查找到的索引中包含的所述暂停表示部指示不暂停时,将所 述被访问地址的不同于所述第一地址部分的第二地址部分与所述查找到 的索引中包含的所述多个标记地址中的各标记地址进行比较,并检测与 所述第二地址部分相一致的标记地址。

本领域技术人员应当理解,依据设计要求和其他因素,可以在本发 明所附的权利要求或其等同物的范围内,进行不同的修改,合成,次合 成及改变。

本申请要求2013年3月25日提交的日本优先权专利申请JP 2013-061360的权益,在此将该日本优先权申请的全部内容以引用的方式 并入本文。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号