CN104077237B - 缓冲存储器、缓冲存储器控制单元和缓冲存储器的控制方法 - Google Patents

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

Info

Publication number
CN104077237B
CN104077237B CN201410101367.2A CN201410101367A CN104077237B CN 104077237 B CN104077237 B CN 104077237B CN 201410101367 A CN201410101367 A CN 201410101367A CN 104077237 B CN104077237 B CN 104077237B
Authority
CN
China
Prior art keywords
address
pause
index
cache
write
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.)
Active
Application number
CN201410101367.2A
Other languages
English (en)
Other versions
CN104077237A (zh
Inventor
平尾太
平尾太一
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Publication of CN104077237A publication Critical patent/CN104077237A/zh
Application granted granted Critical
Publication of CN104077237B publication Critical patent/CN104077237B/zh
Active 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
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/314In storage network, e.g. network attached cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

缓冲存储器、缓冲存储器控制单元和缓冲存储器的控制方法
技术领域
本发明涉及缓冲存储器(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日提交的日本优先权专利申请JP2013-061360的权益,在此将该日本优先权申请的全部内容以引用的方式并入本文。

Claims (5)

1.一种缓冲存储器,其包括:
标记存储部,在所述标记存储部中由被访问地址的第一地址部分查找多个索引中的一个索引,每个索引包含多个标记地址和一个暂停表示部;
数据存储部,所述数据存储部用于存储与所述多个索引中的每个索引的所述多个标记地址相对应的各项数据;
标记控制部,当查找到的索引中包含的所述暂停表示部指示暂停时,所述标记控制部使与所述被访问地址相关的访问进行等待,并且当所述查找到的索引中包含的所述暂停表示部指示不暂停时,所述标记控制部将所述被访问地址的不同于所述第一地址部分的第二地址部分与所述查找到的索引中包含的所述多个标记地址中的各标记地址进行比较,并检测与所述第二地址部分相一致的标记地址;及
数据控制部,当所述查找到的索引中包含的所述暂停表示部指示不暂停时,所述数据控制部从所述数据存储部中选择与如下标记地址相对应的数据,该标记地址是所述查找到的索引中包含的所述多个标记地址之中的与所述第二地址部分相一致的标记地址。
2.如权利要求1所述的缓冲存储器,其中,
所述暂停表示部包括读取引起暂停表示部和写入引起暂停表示部,所述读取引起暂停表示部用于表示由读取处理引起的暂停,且所述写入引起暂停表示部用于表示由写入处理引起的暂停,且
当在所述查找到的索引中所述读取引起暂停表示部和所述写入引起暂停表示部中的一者或两者指示暂停时,所述标记控制部使与所述被访问地址相关的所述访问进行等待。
3.如权利要求1或2所述的缓冲存储器,其中,
所述缓冲存储器是由多个主机共用的公共缓冲存储器。
4.一种缓冲存储器控制单元,其包括:
标记存储部,在所述标记存储部中由被访问地址的第一地址部分查找多个索引中的一个索引,每个索引包含多个标记地址和一个暂停表示部;及
标记控制部,当查找到的索引中包含的所述暂停表示部指示暂停时,所述标记控制部使与所述被访问地址相关的访问进行等待,并且当所述查找到的索引中包含的所述暂停表示部指示不暂停时,所述标记控制部将所述被访问地址的不同于所述第一地址部分的第二地址部分与所述查找到的索引中包含的所述多个标记地址中的各标记地址进行比较,并检测与所述第二地址部分相一致的标记地址。
5.一种控制缓冲存储器的方法,其中所述缓冲存储器包括标记存储部,在所述标记存储部中由被访问地址的第一地址部分查找多个索引中的一个索引,每个索引包含多个标记地址和一个暂停表示部,所述方法包括如下步骤:
当查找到的索引中包含的所述暂停表示部指示暂停时,使与所述被访问地址相关的访问进行等待;及
当所述查找到的索引中包含的所述暂停表示部指示不暂停时,将所述被访问地址的不同于所述第一地址部分的第二地址部分与所述查找到的索引中包含的所述多个标记地址中的各标记地址进行比较,并检测与所述第二地址部分相一致的标记地址。
CN201410101367.2A 2013-03-25 2014-03-18 缓冲存储器、缓冲存储器控制单元和缓冲存储器的控制方法 Active CN104077237B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013-061360 2013-03-25
JP2013061360A JP2014186579A (ja) 2013-03-25 2013-03-25 キャッシュメモリ、キャッシュメモリ制御装置、および、そのキャッシュメモリ制御方法

Publications (2)

Publication Number Publication Date
CN104077237A CN104077237A (zh) 2014-10-01
CN104077237B true CN104077237B (zh) 2017-09-12

Family

ID=51570016

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410101367.2A Active CN104077237B (zh) 2013-03-25 2014-03-18 缓冲存储器、缓冲存储器控制单元和缓冲存储器的控制方法

Country Status (3)

Country Link
US (2) US9336148B2 (zh)
JP (1) JP2014186579A (zh)
CN (1) CN104077237B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10922230B2 (en) * 2016-07-15 2021-02-16 Advanced Micro Devices, Inc. System and method for identifying pendency of a memory access request at a cache entry
US9916246B1 (en) * 2016-08-16 2018-03-13 Advanced Micro Devices, Inc. Predictive multistage comparison for associative memory
GB2570299B (en) * 2018-01-17 2020-04-08 Advanced Risc Mach Ltd Increasing effective cache associativity
CN111124951B (zh) * 2018-10-31 2023-09-15 伊姆西Ip控股有限责任公司 管理数据访问的方法、设备和计算机程序产品

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102831111A (zh) * 2011-06-14 2012-12-19 腾讯科技(深圳)有限公司 一种图片显示方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010033480A (ja) * 2008-07-31 2010-02-12 Sony Corp キャッシュメモリおよびキャッシュメモリ制御装置
US8195884B2 (en) * 2008-09-18 2012-06-05 International Business Machines Corporation Network on chip with caching restrictions for pages of computer memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102831111A (zh) * 2011-06-14 2012-12-19 腾讯科技(深圳)有限公司 一种图片显示方法和装置

Also Published As

Publication number Publication date
US20140289473A1 (en) 2014-09-25
US20160217075A1 (en) 2016-07-28
US9747211B2 (en) 2017-08-29
CN104077237A (zh) 2014-10-01
US9336148B2 (en) 2016-05-10
JP2014186579A (ja) 2014-10-02

Similar Documents

Publication Publication Date Title
CN107066396B (zh) 用于操作虚拟索引的物理标记的缓存的装置及方法
US7917699B2 (en) Apparatus and method for controlling the exclusivity mode of a level-two cache
CN113853593A (zh) 支持清空写入未命中条目的受害者高速缓存
TWI526829B (zh) 電腦系統、用於存取儲存裝置之方法及電腦可讀儲存媒體
US10120750B2 (en) Cache memory, error correction circuitry, and processor system
US9489239B2 (en) Systems and methods to manage tiered cache data storage
US9645931B2 (en) Filtering snoop traffic in a multiprocessor computing system
US20110173393A1 (en) Cache memory, memory system, and control method therefor
US20140115297A1 (en) Detection of conflicts between transactions and page shootdowns
CN101639812B (zh) 高速缓冲存储器及高速缓冲存储器控制装置
US9720847B2 (en) Least recently used (LRU) cache replacement implementation using a FIFO storing indications of whether a way of the cache was most recently accessed
CN104077237B (zh) 缓冲存储器、缓冲存储器控制单元和缓冲存储器的控制方法
JP5338375B2 (ja) 演算処理装置、情報処理装置および演算処理装置の制御方法
US20170357596A1 (en) Dynamically adjustable inclusion bias for inclusive caches
US20140331013A1 (en) Arithmetic processing apparatus and control method of arithmetic processing apparatus
JP2015535631A (ja) 動的に割り振られたダーティマスク空間を用いるメモリ管理
WO2013084315A1 (ja) 演算処理装置、及び、演算処理装置の制御方法
US20200097407A1 (en) Producer/consumer data transfer within a data processing system having a cache
US7302530B2 (en) Method of updating cache state information where stores only read the cache state information upon entering the queue
JP2010128698A (ja) マルチプロセッサシステム
US9454488B2 (en) Systems and methods to manage cache data storage
US20120054439A1 (en) Method and apparatus for allocating cache bandwidth to multiple processors
CN110045921B (zh) 用于数据处理的装置和访问存储电路的方法
US20120102271A1 (en) Cache memory system and cache memory control method
EP3258383A1 (en) Dynamically adjustable inclusion bias for inclusive caches

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant