CN102165424A - 高速缓冲存储器、存储器***及其控制方法 - Google Patents
高速缓冲存储器、存储器***及其控制方法 Download PDFInfo
- Publication number
- CN102165424A CN102165424A CN200980137449XA CN200980137449A CN102165424A CN 102165424 A CN102165424 A CN 102165424A CN 200980137449X A CN200980137449X A CN 200980137449XA CN 200980137449 A CN200980137449 A CN 200980137449A CN 102165424 A CN102165424 A CN 102165424A
- Authority
- CN
- China
- Prior art keywords
- port
- data
- instruction
- memory
- cache
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
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
本发明的L2高速缓存(202)具有:第1端口(211),来自CPU(201)的指令输入到该第1端口;第3端口(213),来自DMAC(205)的指令输入到该第3端口;命中判定部(71),在有指令输入到第3端口(213)时,判定L2高速缓存(202)是否存放有该指令所指定的地址的数据;以及DMAC访问控制部(63),在有指令输入到第3端口(213)并且由命中判定部(71)判定为存放有的情况下,进行用于保持该存放的数据和存放于存储器(204)的数据之间的一致性的处理,并且,将所述输入的指令作为从DMAC(205)输出的指令向存储器(204)输出。
Description
技术领域
本发明涉及一种高速缓冲存储器、存储器***及其控制方法,特别是,根据来自处理器的访问而存放主存储器中存放的数据的一部分的高速缓冲存储器以及包含该高速缓冲存储器的存储器***。
背景技术
在近年的存储器***中,例如,将由SRAM(静态随机存取存储器,Static Random Access Memory)等构成的小容量且高速的高速缓冲存储器配置在微处理器的内部或者其附近。在这样的存储器***中,通过将微处理器从主存储器读出的数据的一部分以及写入主存储器的数据的一部分存储在高速缓冲存储器(高速缓存)中,而使微处理器的存储器访问高速化。
图14是表示以往的存储器***100的结构的图。图14所示的存储器***100具有CPU101、高速缓冲存储器102、存储控制器103、作为主存储器的存储器104、DMAC(直接存储器存取控制器,Direct Memory AccessController)105。
在从CPU101向存储器104发生了访问的情况下,高速缓冲存储器102判定自身是否已经存放有该访问目的地的地址的数据,在存放有的情况下(以下称为命中(hit)),将该存放的数据向CPU101输出(读取时),或者,更新该数据(写入时)。另外,在没有存放该访问目的地的地址的数据的情况下(以下称为高速缓存未命中(cache miss)),高速缓冲存储器102存放从CPU101输出的该地址以及数据(写入时),或者,在从存储器104读出该地址的数据后予以存放,并且将读出的数据向CPU101输出(读取时)。
另外,在高速缓存未命中的情况下,高速缓冲存储器102判断在该高速缓冲存储器102内是否有存放新的地址以及数据的空着的区域,在没有空着的区域的情况下,进行行更换(替换(replace))以及根据需要回写(清除(purge))等的处理。
在这里,在以往的存储器***100中,在写入时临时在高速缓冲存储器102中存放写入数据。由此,产生存放在存储器104中的数据和存放在高速缓冲存储器102中的数据不同的状态。即,在该状态下,当DMAC105访问了存储器104时,产生不保持CPU101和DMAC105中的数据的一贯性(一致性(coherency))的问题。
为了保持该一致性,CPU101在向高速缓冲存储器102进行了写入后,需要指示高速缓冲存储器102进行回写(清除)。但是,CPU101在该清除处理结束之前,不能进行接下来的处理。即,存在CPU101的处理性能降低的问题。
另外,在具有二级高速缓存的存储器***中,由于需要对一级高速缓存以及二级高速缓存进行该清除处理,所以,CPU101的处理性能的降低进一步扩大。
对应于该问题,已知有将高速缓冲存储器102由CPU101和DMAC105共用的方法(例如,参照专利文献1)。
以下,对共享高速缓冲存储器102的以往的存储器***110进行说明。
图15是表示共享高速缓冲存储器102的以往的存储器***110的结构的图。
图15所示的存储器***110除了具有图14所示的结构之外,还具有总线106。由此,在CPU101和DMAC105使用存放于存储器104的相同的数据的情况下,DMAC105能够经由总线106与CPU101同样地访问高速缓冲存储器102。
图16是表示与来自DMAC105的访问相对应的高速缓冲存储器102的动作的概略的图。
如图16所示,在读取时并且命中的情况下,高速缓冲存储器102将命中的数据向DMAC105输出。另外,在写入时且命中的情况下,高速缓冲存储器102更新所命中的数据。
另外,在读取时且高速缓存未命中的情况下,高速缓冲存储器102在从存储器104读出数据后予以存放,并且,将读出的数据向DMAC105输出,或者,DMAC105从存储器104读出数据。另外,在写入时且高速缓存未命中的情况下,高速缓冲存储器102存放从DMAC105输出的地址以及数据,或者,DMAC105向存储器104写入数据。
通过以上的结构,即使CPU101更新了高速缓冲存储器102的数据,由于DMAC105读出更新后的高速缓冲存储器102的数据,所以,CPU101不需要进行上述的清除处理。由此,存储器***110在保持一致性的同时,能够抑制CPU101的处理性能的低下。
现有技术文献
专利文献
专利文献1:日本特开2002-278834号公报
发明概要
发明所要解决的课题
但是,图15所示的存储器***110由于需要具有总线106,所以,与图14所示的存储器***100相比,存在面积增加的问题。这个问题在存储器***110内包含多个DMAC105等主设备的情况下显得尤为突出。
另外,在作为DMAC105和存储器104之间的数据传送中使用的协议而使用多个总线协议的情况下,存在DMAC105和高速缓冲存储器102的接口复杂化的问题。
发明内容
因此,本发明的目的在于提供一种存储器***以及高速缓冲存储器,该存储器***以及高速缓冲存储器在抑制为了保持一致性而产生的CPU等的处理器的处理性能降低的问题的同时,能够抑制面积的增加以及高速缓冲存储器的接口的复杂化。
用于解决课题的手段
为了达成上述目的,本发明的高速缓冲存储器根据来自处理器的访问,存放主存储器的数据的一部分,具有:第1端口,来自所述处理器的指令输入到该第1端口;第2端口,来自所述处理器以外的主设备的指令输入到该第2端口;命中判定部,在有指令输入到所述第1端口以及所述第2端口时,该命中判定部判定该高速缓冲存储器是否存放有与该指令所指定的地址对应的数据;以及第1控制部,在所述指令输入到所述第2端口并且由所述命中判定部判定为存放有的情况下,该第1控制部进行用于保持与所述指令所指定的地址对应并由该高速缓冲存储器存放着的数据、和存放于所述主存储器的数据之间的一致性的处理,并且,将所述输入的指令作为从所述主设备输出的指令而向所述主存储器输出。
根据该结构,在来自DMAC等的主设备的访问命中了的情况下,本发明的高速缓冲存储器不将该命中的数据向主设备输出或者将该命中的数据更新,而是在进行了用于保持该命中的数据和存放于主存储器的数据之间的一致性的处理之后,向主存储器输出指令。
由此,即使在高速缓冲存储器的数据被CPU等处理器更新了的情况下,在从主设备向主存储器访问时,通过高速缓冲存储器进行用于保持一致性的处理。由此,在之后根据由高速缓冲存储器输出的指令而发生的向主存储器的访问中,保持高速缓冲存储器和主存储器的一致性。由此,CPU等处理器,不需要在进行写入处理后指示高速缓冲存储器进行清除处理等用于保持一致性的处理。这样,本发明的高速缓冲存储器由于能够削减清除处理,所以,能够抑制为了保持一致性而产生的处理器的处理性能降低。
另外,在本发明的高速缓冲存储器中,即使在来自主设备的访问命中了的情况下,也不需要在该高速缓冲存储器和主设备之间进行读取数据或者写入数据的传送。由此,不需要在该高速缓冲存储器和主设备之间形成用于传送读取数据或者写入数据的总线。由此,能够削减本发明的包含高速缓冲存储器的存储器***的面积。
另外,由于读取数据或者写入数据不经由高速缓冲存储器,所以,不需要增加用于主设备和高速缓冲存储器之间数据传送的新的控制。即,本发明能够抑制主设备和高速缓冲存储器的接口的复杂化。
另外,还可以为,所述第1控制部具有第1读取控制部,在将读取指令作为所述指令输入到所述第2端口,且由所述命中判定部判定为存放有,并且与所述读取指令所指定的地址对应并由该高速缓冲存储器存放着的数据为脏数据的情况下,所述第1读取控制部将该数据回写到所述主存储器中,在该回写结束之后,将所述输入的读取指令作为从所述主设备输出的读取指令而向所述主存储器输出。
根据该结构,在来自主设备的读取访问命中了的情况下,本发明的高速缓冲存储器不将该高速缓冲存储器存放的数据向主设备输出,而是在将该数据回写到主存储器中,向主存储器输出读取指令。由此,高速缓冲存储器的数据通过经由处理器的更新,即使在高速缓冲存储器的数据和主存储器的数据不一致的情况下,主设备也读出正确的数据(更新后的数据)。即,处理器不需要在进行写入处理后指示高速缓冲存储器进行清除处理。这样,本发明的高速缓冲存储器由于能够削减清除处理,所以能够抑制为了保持一致性而产生的处理器的处理性能降低。
另外,在本发明的高速缓冲存储器中,即使在来自于主设备的读取访问命中了的情况下,也不需要将该高速缓冲存储器存放的数据向主设备输出。由此,不需要在该高速缓冲存储器和主设备之间形成用于传送读取数据的总线。由此,能够削减本发明的包含高速缓冲存储器的存储器***的面积。
另外,由于读取数据不经由高速缓冲存储器,所以不需要增加用于主设备和高速缓冲存储器之间数据传送的新的控制。即,本发明能够抑制主设备和高速缓冲存储器的接口的复杂化。
另外,也可以为,在所述读取指令输入到所述第2端口并且由所述命中判定部判定为没有存放的情况下,所述第1读取控制部将所述输入的读取指令作为从所述主设备输出的读取指令而向所述主存储器输出。
根据该结构,即使在来自主设备的读取访问发生了高速缓存未命中的情况下,高速缓冲存储器也不需要将从主存储器读出的数据向主设备输出。由此,在该高速缓冲存储器和主设备之间不需要形成用于传送读取数据的总线。由此,能够削减本发明的包含高速缓冲存储器的存储器***的面积。另外,由于读取数据不经由高速缓冲存储器,所以不需要增加用于主设备和高速缓冲存储器之间数据传送的新的控制。即,本发明能够抑制主设备和高速缓冲存储器的接口的复杂化。
另外,本发明的存储器***包括:所述高速缓冲存储器、所述处理器、所述主设备、以及所述主存储器,所述主存储器将存放于由所述第1读取控制部输出的所述读取指令所指定的地址的数据,不经由所述高速缓冲存储器地向所述主设备输出。
根据该结构,读取数据不经由高速缓冲存储器,而从主存储器直接向主设备输出。由此,不需要在高速缓冲存储器和主设备之间形成用于传送读取数据的总线。由此,能够削减本发明的包含高速缓冲存储器的存储器***的面积。另外,本发明能够抑制主设备和高速缓冲存储器的接口的复杂化。
另外,也可以为,所述高速缓冲存储器还具有第2读取控制部,在所述读取指令输入到所述第1端口并且由所述命中判定部判定为存放有的情况下,所述第2读取控制部将与所述读取指令所指定的地址对应并由该高速缓冲存储器存放着的数据向所述处理器输出;在所述读取指令输入到所述第1端口并且由所述命中判定部判定为没有存放的情况下,所述第2读取控制部从所述主存储器读出所述读取指令所指定的地址的数据,将读出的数据存放到该高速缓冲存储器,并且向所述处理器输出。
根据该结构,本发明的高速缓冲存储器对于来自处理器的访问,能够作为通常的高速缓冲存储器发挥作用。
另外,也可以为,所述存储器***还具有存储控制器,该存储控制器对从所述高速缓冲存储器向所述主存储器的访问和从所述主设备向所述主存储器的访问进行仲裁,所述存储控制器具有:第3端口,由所述第1读取控制部输出的读取指令输入到该第3端口,并且该第3端口根据该读取指令将从所述主存储器输出的读取数据向所述主设备输出;以及第4端口,由所述第2读取控制部输出的读取指令输入到该第4端口,并且该第4端口根据该读取指令将从所述主存储器输出的读取数据向所述高速缓冲存储器输出,所述存储控制器对于输入到所述第3端口的读取指令和输入到所述第4端口的读取指令,根据该指令是输入到所述第3端口以及所述第4端口中的哪一方的读取指令而进行仲裁。
根据该结构,高速缓冲存储器根据来自主设备的读取访问而输出的读取指令,输入到存储控制器的第3端口,高速缓冲存储器根据来自处理器的读取访问而输出的读取指令,输入到存储控制器的第4端口。由此,即使在由主设备输出的读取指令经由高速缓冲存储器而输入到存储控制器的情况下,存储控制器通过对第3端口分配与主设备相对的带宽、对第4端口分配与处理器相对的带宽这样的容易的控制,能够实现对主设备以及处理器的带宽的分配。
另外,也可以为,所述存储器***还具有选择部,该选择部选择由所述第1读取控制部输出的读取指令和由所述主设备输出的读取指令中的一方,将所选择的读取指令向所述主存储器输出,所述主存储器将存放于由所述选择部输出的所述读取指令所指定的地址的数据,不经由所述高速缓冲存储器地向所述主设备输出。
根据该结构,在处理器和主设备不使用主存储器的同一数据的情况下,主设备能够直接访问主存储器。
另外,也可以为,在本发明的高速缓冲存储器中,所述第1控制部具有第1写入控制部,在将写入指令作为所述指令输入到所述第2端口并且通过所述命中判定部判定为存放有的情况下,所述第1写入控制部使与所述写入指令所指定的地址对应并由该高速缓冲存储器存放着的数据无效化,并且,将所述输入的写入指令作为从所述主设备输出的写入指令而向所述主存储器输出。
根据该结构,在来自主设备的访问中发生了写入命中的情况下,本发明的高速缓冲存储器使该高速缓冲存储器存放着的命中的数据无效化,并且向主存储器输出写入指令。由此,通过基于主设备的写入,能够防止高速缓冲存储器的数据和主存储器的数据变得不一致的情况。即,为了保持高速缓冲存储器和主存储器的一致性,处理器以及主设备不需要追加特殊的处理(清除处理等)。这样,本发明能够抑制为了保持一致性而产生的处理器的处理性能降低。
另外,在本发明的高速缓冲存储器中,即使在来自主设备的写入访问发生了命中的情况下,该高速缓冲存储器也不存放写入数据。由此,不需要在该高速缓冲存储器和主设备之间形成用于传送写入数据的总线。由此,能够削减本发明的包含高速缓冲存储器的存储器***的面积。
另外,由于写入数据不经由高速缓冲存储器,所以,不需要增加在主设备和高速缓冲存储器之间数据传送中使用的新的控制。即,本发明能够抑制主设备和高速缓冲存储器的接口的复杂化。
另外,也可以为,在所述写入指令输入到所述第2端口并且由所述命中判定部判定为没有存放的情况下,所述第1写入控制部将所述输入的写入指令作为从所述主设备输出的写入指令而向所述主存储器输出。
根据该结构,即使在来自主设备的写入访问发生了高速缓存未命中的情况下,高速缓冲存储器也不存放写入数据。由此,不需要用于在该高速缓冲存储器和主设备之间传送写入数据的总线。由此,能够削减本发明的包含高速缓冲存储器的存储器***的面积。另外,由于写入数据不经由高速缓冲存储器,所以不需要增加主设备和高速缓冲存储器之间数据传送中使用的新的控制。即,本发明能够抑制主设备和高速缓冲存储器的接口的复杂化。
另外,本发明的存储器***包含所述高速缓冲存储器、所述处理器、所述主设备、所述主存储器,所述主设备将写入数据不经由所述高速缓冲存储器地向所述主存储器输出,所述主存储器将由所述主设备输出的写入数据存放于由所述第1写入控制部输出的所述写入指令所指定的地址。
根据该结构,写入数据不经由高速缓冲存储器,而从主设备直接向主存储器输出。由此,不需要形成用于在高速缓冲存储器和主设备之间传送写入数据的总线。由此,能够削减本发明的包含高速缓冲存储器的存储器***的面积。另外,本发明能够抑制主设备和高速缓冲存储器的接口的复杂化。
另外,也可以为,所述高速缓冲存储器还具有第2写入控制部,在所述写入指令以及写入数据输入到所述第1端口并且由所述命中判定部判定为存放有的情况下,所述第2写入控制部将与所述写入指令所指定的地址对应并由该高速缓冲存储器存放着的数据更新为所述写入数据,所述第2写入控制部还将用于将该更新后的数据回写到所述主存储器中的写入指令以及写入数据向所述主存储器输出。
根据该结构,本发明的高速缓冲存储器对于来自处理器的访问,能过作为通常的高速缓冲存储器而发挥作用。
另外,也可以为,所述存储器***还具有存储控制器,该存储控制器对从所述高速缓冲存储器向所述主存储器的访问和从所述主设备向所述主存储器的访问进行仲裁,所述存储控制器具有:第3端口,由所述第1写入控制部输出的写入指令和由所述主设备输出的写入数据输入到该第3端口;以及第4端口,由所述第2写入控制部输出的写入指令以及写入数据输入到该第4端口,所述存储控制器对于输入到所述第3端口的写入指令和输入到所述第4端口的写入指令,根据该指令是输入到所述第3端口以及所述第4端口中的哪一方的写入指令而进行仲裁。
根据该结构,高速缓冲存储器根据来自主设备的写入访问而输出的写入指令,输入到存储控制器的第3端口,高速缓冲存储器根据来自处理器的写入访问而输出的写入指令,输入到存储控制器的第4端口。由此,即使在由主设备输出的写入指令经由高速缓冲存储器而输入到存储控制器的情况下,存储控制器通过对第3端口分配与主设备相对的带宽、对第4端口分配与处理器相对的带宽这样的容易的控制,也能够实现对主设备以及处理器的带宽的分配。
另外,也可以为,所述存储器***还具有选择部,该选择部选择由所述第1读取控制部输出的写入指令和由所述主设备输出的写入指令中的一方,将所选择的写入指令向所述主存储器输出,所述主存储器将由所述主设备输出的写入数据存放于由所述选择部输出的所述写入指令所指定的地址。
根据该结构,在处理器和主设备不使用主存储器的同一数据的情况下,主设备能够直接访问主存储器。
另外,也可以为,所述处理器具有一级高速缓存,所述高速缓冲存储器为二级高速缓存。
根据该结构,本发明的高速缓冲存储器适用于二级高速缓存。在这里,二级高速缓存对存储器***整体所产生的影响比一级高速缓存低。具体来说,在一级高速缓存命中的情况下的访问,对于处理器来说是最高速的访问。由此,当从主设备对一级高速缓存进行访问时,对影响最高速化的、从处理器向一级高速缓存的访问产生恶劣影响。由此,通过将本发明的高速缓冲存储器用于二级高速缓存,与将本发明的高速缓冲存储器用于一级高速缓存的情况相比,能够减小对处理器的高速化的恶劣影响。
另外,也可以为,所述存储器***包括含有所述处理器的多个处理器,所述多个处理器分别具有一级高速缓存,所述高速缓冲存储器由所述多个处理器共用。
根据该结构,本发明的高速缓冲存储器适用于由多个处理器共用的二级高速缓存。在这里,在二级高速缓存由多个处理器共用的情况下,为了保持多个一级高速缓存和二级高速缓存的一致性,多个处理器需要基于窥探(snoop)方式等算法进行控制。由此,除了该控制,当加上用于保持二级高速缓存和主存储器之间的一致性的控制时,控制变得更加复杂而难以实现。与之相对,通过将本发明的高速缓冲存储器用于二级高速缓存,能够削减用于保持二级高速缓存和主存储器之间的一致性的处理,所以,能够避免上述控制的复杂化。
另外,本发明不仅能够作为这样的高速缓冲存储器以及存储器***实现,还能够将高速缓冲存储器以及存储器***中含有的特征单元步骤化,以高速缓冲存储器的控制方法以及存储器***的控制方法来实现,或者作为将这样的特征步骤在计算机中执行的程序实现。而且,这样的程序能够经由CD-ROM等的记录媒体以及因特网等传送媒体流通,这是不言而喻的。
另外,本发明还可以作为具有这样的高速缓冲存储器以及存储器***的功能的一部分或者全部的半导体集成电路实现。
发明效果
如上所述,本发明能够提供一种存储器***以及高速缓冲存储器,该存储器***以及高速缓冲存储器抑制为了保持一致性而产生的CPU的处理性能低下,并能够抑制面积的增加以及高速缓冲存储器的接口的复杂化。
附图说明
图1是表示本发明的实施方式的存储器***的结构的框图。
图2是表示本发明的实施方式的高速缓冲存储器的结构的框图。
图3是表示本发明的实施方式的高速缓存存放部以及命中判定部的结构的图。
图4是表示本发明的实施方式的路的结构的图。
图5是表示本发明的实施方式的存储器***的连接关系的图。
图6是表示本发明的实施方式的高速缓冲存储器的与来自DMAC的访问相对应的动作的概略的图。
图7是表示本发明的实施方式的存储器***的读取命中时的动作的流程的图。
图8是表示本发明的实施方式的存储器***的读取未命中时的动作的流程的图。
图9是表示本发明的实施方式的存储器***的写入命中时的动作的流程的图。
图10是表示本发明的实施方式的存储器***的写入未命中时的动作的流程的图。
图11是表示本发明的实施方式的高速缓冲存储器的读取时的动作的流程的流程图。
图12是表示本发明的实施方式的高速缓冲存储器的写入时的动作的流程的流程图。
图13是表示本发明的实施方式的存储器***的变形例的结构的框图。
图14是表示以往的存储器***的结构的框图。
图15是表示以往的存储器***的结构的框图。
图16是表示以往的高速缓冲存储器的与来自DMAC的访问相对应的动作的概略的图。
具体实施方式
以下,参照附图对本发明的高速缓冲存储器的实施方式进行详细的说明。
(实施方式1)
本发明的实施方式的高速缓冲存储器在来自DMAC等的主设备的读取访问命中了的情况下,在将命中了的数据回写到主存储器中之后,向主存储器输出读取指令。另外,在来自主设备的写入访问命中了的情况下,使命中了的数据无效化,并且将写入指令输出到主存储器。
由此,即使CPU等处理器以及主设备不进行清除处理,也能够保持高速缓冲存储器和主存储器之间的一致性。由此,本发明的实施方式的高速缓冲存储器能够抑制为了保持高速缓冲存储器和主存储器之间的一致性而产生的处理器的处理性能降低。
另外,读取数据以及写入数据不经由高速缓冲存储器,而在主设备和主存储器之间直接传送。由此,没有必要形成用于在高速缓冲存储器和主设备之间传送读取数据以及写入数据的的总线,所以,能够减小存储器***的面积,并且能够抑制主设备和高速缓冲存储器的接口的复杂化。
首先,对包含本发明的实施方式的高速缓冲存储器的存储器***的结构进行说明。
图1是表示本发明的实施方式的存储器***的结构的图。
图1所示的存储器***200含有2个CPU201、L2(二级)高速缓存202、存储控制器203、存储器204、2个DMAC205、总线控制部206。另外,多个CPU201分别具有L1(一级)高速缓存207。
L1高速缓存207以及L2高速缓存202与存储器204相比,是高速且容量小的高速缓冲存储器。例如,L1高速缓存207以及L2高速缓存202是SRAM。另外,L1高速缓存207与L2高速缓存202相比靠近CPU201地配置即可,也可以配置在CPU201外。
该L1高速缓存207以及L2高速缓存202存储CPU201从存储器204读出的数据的一部分以及写入存储器204的数据的一部分,如此进行所谓的高速缓存动作。在这里,高速缓存动作是指如下动作,即,在从CPU201向存储器204发生了访问的情况下,L2高速缓存202判定自身是否已经存放有该访问目的地的地址的数据,在存放有的情况下(命中),将该存放着的数据输出到CPU201(读取时),或者,更新该数据(写入时)。另外,L2高速缓存202在没有存放该访问目的的地址的数据的情况下(高速缓存未命中),存放从CPU201输出的该地址以及数据(写入时),或者,在从存储器204读出该地址的数据后予以存放,并且将读出的数据输出到CPU201(读取时)。
另外,在高速缓存未命中的情况下,判断在该L1高速缓存207或者L2高速缓存202内是否存在存放新的地址以及数据的空着的区域,在不存在空着的区域的情况下,L1高速缓存207以及L2高速缓存202进行行更换(替换)以及根据需要进行回写(清除)等处理。
另外,L2高速缓存202由2个CPU201通用。
存储控制器203是存储器204的接口,对从L2高速缓存向存储器204的访问以及从多个DMAC205的每一个向存储器204的访问进行仲裁。
存储器204是SDRAM等大容量的主存储器。
DMAC205是进行外部的设备(外部装置以及外部存储器等)和存储器204之间的数据传送的主设备。
总线控制部206将由DMAC205输出的指令输出到L2高速缓存202或者存储控制器203。另外,总线控制部206将由L2高速缓存202输出的指令输出到存储控制器203。另外,总线控制部206将由DMAC205输出的写入数据不经由L2高速缓存202地输出到存储控制器203,将由存储控制器203输出的读取数据不经由L2高速缓存202地输出到DMAC205。
在这里,所谓指令,包含指定数据写入或者数据读出的信息和表示访问目的的地址的信息。另外,所谓写入数据是指将要写入存储器204的数据,所谓读取数据,是指从存储器204读出的数据或者存放于L2高速缓存202的数据。另外,将指示数据写入的指令称为写入指令,将指示数据读出的指令称为读取指令。另外,写入指令以及读取指令共同简单地称作“指令”。
另外,图1所示的各结构要素典型地以集成电路即LSI来实现。它们可以分别单片化,也可以包含一部分或者全部地单片化。另外,各结构要素也可以以多个芯片来实现。
以下,对将本发明的高速缓冲存储器用于L2高速缓存202的例子进行说明。
图2是表示L2高速缓存202的功能结构的框图。
如图2所示,L2高速缓存202具有控制部38、高速缓存存放部70、命中判定部71、第1端口211、第2端口212、第3端口213、第4端口214。
第1端口211与CPU201连接,被输入从CPU201输出的指令以及写入数据,并向CPU201输出读取数据。
第2端口212与存储控制器203连接,被输入由存储控制器203输出的读取数据,并向存储控制器203输出指令以及写入数据。换言之,第2端口212由存储器204被输入读取数据,并向存储器204输出指令以及写入数据。
第3端口213与总线控制部206连接,被输入由总线控制部206输出的指令。换言之,第3端口213被输入由DMAC205输出的指令。
第4端口214与总线控制部206连接,向总线控制部206输出指令。换言之,第4端口214向存储器204输出指令。
高速缓存存放部70存放受到CPU201的访问、并将要存放于存储器204的数据。
命中判定部71在由CPU201以及DMAC205输入了指令时,判断高速缓存存放部70是存放有该指令所指定的地址的数据(命中)还是没有存放(高速缓存未命中)。
控制部38进行L2高速缓存202整体的控制。具体来说,对存储CPU201从存储器204读出的数据的一部分以及写入存储器204的数据的一部分的、所谓的高速缓存动作进行控制。另外,控制部38根据是来自CPU201的访问还是来自DMAC205的访问,进行不同的处理。
该控制部38具有CPU访问控制部60和DMAC访问控制部63,上述CPU访问控制部60控制与来自CPU201的访问相对的L2高速缓存202的动作,上述DMAC访问控制部63控制与来自DMAC205的访问相对的L2高速缓存202的动作。
CPU访问控制部60具有CPU读取控制部61和CPU写入控制部62,上述CPU读取控制部61控制与来自CPU201的读取访问相对的L2高速缓存202的动作,上述CPU写入控制部62控制与来自CPU201的写入访问相对的L2高速缓存202的动作。
在向存储器204的读取指令从CPU201被输入第1端口211、并且通过命中判定部70判定为命中的情况下,CPU读取控制部61将命中了的数据从第1端口211向CPU201输出。另外,在向存储器204的读取指令从CPU201被输入第1端口211、并且通过命中判定部70判定为高速缓存未命中的情况下,CPU读取控制部61将输入的读取指令所指定的地址的数据经由第2端口212从存储器204读出,将该读出的数据存放到高速缓存存放部70中,并且将该读出的数据从第1端口211向CPU201输出。
在向存储器204的写入指令从CPU201被输入第1端口211、并且通过命中判定部71判定为命中的情况下,CPU写入控制部62将命中了的数据更新为从CPU201输入的写入数据。另外,在向存储器204的写入指令从CPU201被输入第1端口211、并且通过命中判定部71判定为高速缓存未命中的情况下,CPU写入控制部62在高速缓存存放部70中新存放写入数据。另外,CPU写入控制部62将如下的写入指令以及写入数据从第2端口212向存储器204输出,上述写入指令以及写入数据用于将高速缓存存放部70存放的数据写入存储器204。即,CPU写入控制部62根据来自CPU201的指示或者规定的定时,将更新了的写入数据写回到存储器204中(回写)。
在指令从DMAC205被输入第3端口213、并且通过命中判定部71判定为命中的情况下,DMAC访问控制部63进行用于保持命中了的数据和存放于存储器204中的数据的一致性的处理,并且,将被输入第3端口213的指令作为从DMAC205输出的指令,从第4端口214向存储器204输出。另外,在指令从DMAC205被输入第3端口213、并且通过命中判定部71判定为高速缓存未命中的情况下,DMAC访问控制部63将输入到第3端口213的指令作为从DMAC205输出的指令,从第4端口214向存储器204输出。
该DMAC访问控制部63具有DMAC读取控制部64和DMAC写入控制部65,上述DMAC读取控制部64控制与来自DMAC205的读取访问相对的L2高速缓存202的动作,上述DMAC写入控制部65控制与来自DMAC205的写入访问相对的L2高速缓存202的动作。
在向存储器204的读取指令从DMAC205被输入第3端口213、并且通过命中判定部70判定为命中的情况下,DMAC读取控制部64将命中了的数据经由第2端口212回写到存储器204中,在该回写结束后,将输入到第3端口213的读取指令作为从DMAC205输出的读取指令,从第4端口214向存储器204输出。
另外,在向存储器204的读取指令从DMAC205被输入第3端口213、并且通过命中判定部71判定为高速缓存未命中的情况下,DMAC读取控制部64将输入到第3端口213的读取指令作为从DMAC205输出的读取指令,从第4端口214向存储器204输出。
在向存储器204的写入指令从DMAC205被输入第3端口213、并且通过命中判定部71判定为命中的情况下,DMAC写入控制部65使命中了的数据无效化,并且将输入到第3端口213的写入指令作为从DMAC205输出的写入指令,从第4端口214向存储器204输出。
另外,在向存储器204的写入指令从DMAC205被输入第3端口213、并且通过命中判定部71判定为高速缓存未命中的情况下,DMAC写入控制部65将输入到第3端口213的写入指令作为从DMAC205输出的写入指令,从第4端口214向存储器204输出。
图3是表示高速缓存存放部70以及命中判定部71的结构例的框图。另外,作为L2高速缓存202的具体例子,对将本发明用于四路组关联方式的高速缓冲存储器的情况下的结构进行说明。如图3所示,高速缓存存放部70具有解码器30、4个路(way)31a~31d。另外,4个路31a~31d在没有特别区分的情况下,记作路31。
另外,命中判定部71具有4个比较器32a~32d、4个“与”电路33a~33d、“或”电路34。另外,L2高速缓存202还具有地址寄存器20、存储器I/F21、选择器35以及36、多路分配器37。
地址寄存器20是保持向存储器204的访问地址的寄存器。该访问地址为32比特。如图3所示,访问地址从最上位比特开始依次包含21比特的标签地址51、4比特的组索引(SI)52、5比特的字索引(WI)53。
在这里,标签地址51是指被映射在路31上的存储器204中的区域(其大小为组数×块)。该区域的大小为通过相比标签地址51位于下位的地址比特(A10~A0)确定的大小,即2k字节,也可以为1个路31的大小。
组索引52是指跨过路31a~31b的多个组的1个。该组数由于组索引52为4比特所以为16组。标签地址51以及组索引52确定的高速缓存条目为替换单位,在存放于高速缓冲存储器的情况下,称作行数据或者行。行数据的大小是通过相比组索引52位于下位的地址比特(A6~A0)确定的大小,即128字节。设1个字为4字节,则1个行数据为32个字。
字索引(WI)53是指构成行数据的多个字中的1个字。另外,地址寄存器20中的最下位2比特(A1、A0)在字访问时被忽略。
存储器I/F21是用于从L2高速缓存202访问存储器204的接口。具体来说,存储器I/F21进行从L2高速缓存202向存储器204的数据的回写以及从存储器204向L2高速缓存202的数据的加载等。
解码器30对组索引52的4比特进行解码,选择跨过4个路31a~31d的16个组中的1个。
4个路31a~31d具有相同的结构,各路31具有2k字节的容量。
图4是表示路31的结构的图。如图4所示,各路31具有16个高速缓存条目40。各高速缓存条目40具有21比特的标签41、有效标志42、脏标志43、128字节的行数据44。
标签41是存储器204上的地址的一部分,是21比特的标签地址51的拷贝。
行数据44是由标签地址51以及组索引52指定的块中的128字节数据的拷贝。
有效标志42表示该高速缓存条目40的数据是否有效。例如,在数据有效的情况下,有效标志42为“1”,在数据无效的情况下,有效标志42为“0”。另外,将使有效标志42成为“0”的情况称作使数据无效化。
脏标志43表示在该高速缓存条目40中是否有来自CPU201的写入,即,行数据44是否为被更新了的状态。换言之,虽然在该高速缓存条目40中存在被超高速缓冲存储的行数据44,但是,由于来自CPU201的写入使该行数据44与存储器204中的数据不同,所以,需要将该行数据44回写到存储器204中,该脏标志43即表示是否有这种需要。例如,在行数据44被更新的情况下,脏标志43为“1”,在行数据44没有被更新的情况下,脏标志43为“0”。另外,将使脏标志43成为“1”的情况称作设立脏标志。另外,将脏标志43为“1”的情况称作该数据为脏数据。
比较器32a比较地址寄存器20中的标签地址51和由组索引52选择的组中含有的4个标签41中的路31a的标签41是否一致。对于比较器32b~32c,除了与路31b~31d对应以外都相同。
“与”电路33a比较有效标志42和比较器32a的比较结果是否一致。设该比较结果为h0。在比较结果h0为“1”的情况下,意味着地址寄存器20中的标签地址51以及组索引52所对应的行数据44存在,即在路31a中命中。另外,在比较结果h0为“0”的情况下,意味着高速缓存未命中。对于“与”电路33b~33d,除了与路31b~31d对应以外,都相同。即,其比较结果h1~h3意味着在路31b~31d中是命中还是未命中。
“或”电路34取比较结果hO~h3的“或”。设该“或”的结果为hit。hit表示在高速缓冲存储器中是否命中。
选择器35选择被选择的组的路31a~31d的行数据44中的、命中了的路31的行数据44。
选择器36在由选择器35所选择的32个字的行数据44中,选择以字索引53表示的1个字。
在将数据写入高速缓存条目40时,多路分配器37将写入的数据输出到路31a~31d中的1个。该写入的数据可以以字为单位。
图5是表示总线控制部206的结构以及连接关系的图。另外,为了说明的简单化,以下,以CPU201为1个的情况为例进行说明。
如图5所示,总线控制部206具有2个第1端口221、2个第2端口222、第3端口223、第4端口224、仲裁部225、2个选择部226。
第1端口221、第2端口222以及选择部226按照每个DMAC205设置。第1端口221连接于对应的DMAC205,被输入从对应的DMAC205输出的指令以及写入数据,向对应的DMAC205输出读取数据。
第2端口222与存储控制器203连接,被输入由存储控制器203输出的读取数据,向存储控制器203输出指令以及写入数据。
第3端口223与L2高速缓存202的第3端口213连接,向L2高速缓存202输出指令。
第4端口224与L2高速缓存202的第4端口214连接,被输入由L2高速缓存202输出的指令。
仲裁部225,对被输入到多个第1端口221的指令进行仲裁,将仲裁了的指令向第3端口223输出。即,在有指令输入到多个第1端口221中的某一个的情况下,仲裁部225选择该输入了的指令,将所选择的指令向第3端口223输出。另外,在有指令同时输入多个第1端口221的情况下,仲裁部225根据预先确定的优先度,选择任意一个指令,将选择了的指令向第3端口223输出。
选择部226选择被输入到对应的第1端口221的指令以及被输入到第4端口的指令中的一方,将所选择的指令向对应的第2端口222输出。即,选择部226选择由DMAC读取控制部64输出的指令和由DMAC205输出的指令中的一方,将选择了的指令向存储器204输出。具体来说,选择部226在通常模式时,选择被输入到第4端口224的指令,在旁路模式时,选择被输入到第1端口221的指令。另外,以下,如果没有特别的记载,对通常模式进行说明。
在这里,所谓通常模式,是DMAC205经由L2高速缓存202访问存储器204的模式。另外,所谓旁路模式,是DMAC205不经由L2高速缓存202直接访问存储器204的模式。
另外,CPU201和DMAC205,在使用存储器204的相同地址的数据的情况下选择通常模式,在DMAC205和CPU201不使用相同地址的数据的情况下,即,在不进行特别的控制也保持一致性的情况下,选择旁路模式。另外,通常模式和旁路模式的切换通过CPU201等进行。
另外,在通常模式下,在被输入到第4端口224的指令为L2高速缓存202根据从对应的DMAC205输出的指令而输出的指令的情况下,选择部226将输入到第4端口224的指令向第2端口222输出,在被输入到第4端口224的指令为L2高速缓存202根据从不对应的其他的DMAC205输出的指令而输出的指令的情况下,选择部226不将输入到第4端口224的指令向第2端口222输出。
具体来说,在L2高速缓存202输出的指令中,包含有表示该指令是从2个DMAC205中的哪一个输出的指令的信息,根据该信息,选择部226决定将输入到第4端口224的指令是否向第2端口222输出。
另外,被输入到第1端口221的写入数据向对应的第2端口222直接输出,被输入到第2端口222的读取数据向对应的第1端口221直接输出。
另外,如图5所示,存储控制器203具有第1端口231、2个第2端口232。第1端口231根据L2高速缓存202,2个第2端口232分别与2个DMAC205一对一地对应。
第1端口231被输入由CPU读取控制部61输出的读取指令和由CPU写入控制部62输出的写入指令以及写入数据。另外,第1端口231将从存储器204输出的读取数据向L2高速缓存202输出。具体来说,第1端口231与L2高速缓存202的第2端口212连接。
第2端口232按照每个总线控制部206的第2端口222设置,与对应的第2端口222连接。该第2端口232被输入从总线控制部206的对应的第2端口222输出的指令以及写入数据,并向对应的第2端口222输出从存储器204输出的读取数据。
具体来说,在通常模式时,向第2端口232输入由DMAC读取控制部64输出的读取指令和由DMAC写入控制部65输出的写入指令。另外,在旁路模式时,向第2端口232输入由对应的DMAC205输出的读取指令以及写入指令。另外,在通常模式时以及旁路模式时的双方的情况下,第2端口232被输入由对应的DMAC205输出的写入数据,并将根据读取指令而从存储器204输出的读取数据向对应的DMAC205输出。
在这里,存储控制器203对于输入到第1端口231以及2个第2端口232的指令(读取指令以及写入指令),根据该指令是输入第1端口231以及2个第2端口232中的哪一方的指令而进行仲裁。具体来说,对各端口事先分配频带(带宽),存储控制器203以满足该频带的方式进行仲裁。例如,在对第1端口231以及2个第2端口232以2∶1∶1来分配频带的情况下,存储控制器203每当将输入到第1端口的指令执行两次时,将输入到各第2端口232的指令各执行一次。
接下来,说明本发明的实施方式的存储器***200的动作。
以下,对从DMAC205向存储器204发生了访问时的动作进行说明。
图6是表示从L2高速缓存202发生了访问时的、存储器***200的动作的概略的图。
如图6所示,在读取时且命中(以下称为读取命中)的情况下,L2高速缓存202对命中了的数据进行回写。之后,读出存储器204的数据,向DMAC205送出。
另外,在读取时且高速缓存未命中(以下称为读取未命中)的情况下,存储器204的数据被读出,并向DMAC205送出。
另外,在写入时且命中(以下称为写入命中)的情况下,L2高速缓存202使命中了的数据无效化。并且,向存储器204写入写入数据。
另外,在写入时且高速缓存未命中(以下称为写入未命中)的情况下,向存储器204写入写入数据。
以下,对各动作分别进行说明。首先,对读取命中时的动作进行说明。
图7是表示存储器***200的读取命中时的动作的流程的图。
如图7所示,首先,DMAC205将读取指令向L2高速缓存202输出(S101)。具体来说,DMAC205向总线控制部206的第1端口221输出读取指令。被输入到总线控制部206的第1端口221的读取指令依次经由仲裁部225以及第3端口223而被输入L2高速缓存202的第3端口213。
L2高速缓存202的命中判定部71判定高速缓存存放部70是否存放有由输入到第3端口213的读取指令所指定的地址的数据。在这里,命中判定部71判定为高速缓存存放部70存放有所指定的地址的数据(命中)(S102)。
接下来,L2高速缓存202的DMAC读取控制部64对命中了的数据进行回写(S103)。即,DMAC读取控制部64将命中了的数据回写到存储器204中。
在回写结束后,DMAC读取控制部64向存储器204输出读取指令(S104)。具体来说,DMAC读取控制部64向第4端口214输出读取指令。另外,该读取指令用于指定与在步骤S101中由DMAC205输出的读取指令相同的地址。
向第4端口214输出的读取指令依次经由总线控制部206的第4端口224、选择部226以及第2端口222,向存储控制器203的第2端口232输入。存储控制器203将输入到第2端口232的读取指令向存储器204输出。
接收了读取指令的存储器204将存放于由该读取指令所指定的地址的读取数据,不经由L2高速缓存202而直接向DMAC205输出(S105)。具体来说,存储器204将读取数据向存储控制器203输出,存储控制器203将由存储器204输出的读取数据向被输入了读取指令的第2端口232输出。向该第2端口232输出的读取数据依次经由总线控制部206的第2端口222以及第1端口221而向DMAC205输出。
如上所述,在来自DMAC205的访问中发生了读取命中的情况下,本发明的实施方式的存储器***200在将存放于L2高速缓存202的命中了的数据回写之后,从存储器204读出数据。
由此,L2高速缓存202的数据通过CPU201而被更新,由此,即使在L2高速缓存202的数据和存储器204的数据不一致的情况下,DMAC205也能够读出正确的数据(更新后的数据)。即,CPU201不需要在进行写入处理之后指示L2高速缓存202进行清除(回写)处理。这样,本发明的实施方式的存储器***200能够通过CPU201削减清除处理,所以,能够抑制为了保持一致性而产生的CPU201的处理性能降低。
另外,L2高速缓存202在回写结束之后,向第4端口214输出读取指令。由此,在回写结束之前,能够防止从存储器204读出数据。
接下来,对读取未命中时的动作进行说明。
图8是表示存储器***200的读取未命中时的动作的流程的图。
如图8所示,首先,DMAC205将读取指令向L2高速缓存202输出(S111)。另外,步骤S111、S114以及S115的动作与图7所示的S101、S104以及S105相同,省略详细的说明。
L2高速缓存202的命中判定部71判定高速缓存存放部70是否存放有由输入到第3端口213的读取指令所指定的地址的数据。在这里,命中判定部71判定为高速缓存存放部70没有存放所指定的地址的数据(高速缓存未命中)(S112)。
接下来,L2高速缓存202的DMAC读取控制部64向存储器204输出读取指令(S114)。具体来说,DMAC读取控制部64向第4端口214输出读取指令。另外,该读取指令用于指定与在步骤S101中由DMAC205输出的读取指令相同的地址。
向第4端口214输出的读取指令依次经由总线控制部206的第4端口224、选择部226以及第2端口222,被输入到存储控制器203的第2端口232。存储控制器203将输入到第2端口232的读取指令向存储器204输出。
接收了读取指令的存储器204将由该读取指令所指定的地址的读取数据向DMAC205输出(S115)。
如上所述,本发明的实施方式的存储器***200在来自DMAC205的访问中发生了读取未命中的情况下,从存储器204读出数据。
这样,本发明的实施方式的L2高速缓存202即使在读取命中的情况下,也不将命中了的数据向DMAC205输出。即,在来自DMAC205的读取访问时,在命中以及高速缓存未命中中的任意一种情况下,由存储器204输出的读取数据都不经由L2高速缓存202而直接向DMAC205输出。由此,在L2高速缓存202和DMAC205之间,不需要形成用于传送读取数据的总线。即,如图5所示,向L2高速缓存202的第3端口213仅输入读取指令,从第3端口213仅输出读取指令即可。由此,本发明的存储器***200与图15所示的存储器***110相比,能够削减面积。
另外,由于读取数据不经由L2高速缓存,所以,不需要增加用于DMAC205和L2高速缓存202之间数据传送的新的控制。即,本发明能够抑制DMAC205与L2高速缓存202的接口的复杂化。
另外,L2高速缓存202向第4端口214输出的读取指令,被输入存储控制器203的、与读取指令发行源的DMAC205对应的第2端口232。由此,存储控制器203将该读取指令作为DMAC205发行的指令予以处理。另一方面,在L2高速缓存202将读取指令向存储控制器203的第1端口231输出了的情况下,该读取指令作为由L2高速缓存202(CPU201)发行的指令而被处理,并使用分配给L2高速缓存202的频带。
这样,将由DMAC读取控制部64输出的指令向DMAC205所对应的第2端口232输入,由此,即使在从DMAC205输出的指令经由L2高速缓存202向存储器204被送出的情况下,存储控制器203也能够通过对第1端口231分配与CPU201相对的带宽、对第2端口232分配与DMAC205相对的带宽这样的容易的控制,实现与CPU201以及DMAC205相对的带宽的分配。另外,本发明的实施方式的存储器***200根据DMAC205不经由L2高速缓存202地访问存储器204的情况,能够不改变存储控制器203控制地实现其控制。
接下来,对写入命中时的动作进行说明。
图9是表示存储器***200的写入命中时的动作的流程的图。
如图9所示,首先,DMAC205将写入指令向L2高速缓存202输出(S121)。具体来说,DMAC205向总线控制部206的第1端口221输出写入指令。输入到总线控制部206的第1端口221的写入指令依次经由仲裁部225以及第3端口223,而输入到L2高速缓存202的第3端口213。
L2高速缓存202的命中判定部71判定高速缓存存放部70是否存放有由输入到第3端口213的读取指令所指定的地址的数据。在这里,命中判定部71判定为高速缓存存放部70存放有所指定的地址的数据(命中)(S122)。
接下来,L2高速缓存202的DMAC写入控制部65使命中了的数据无效化(S123)。具体来说,DMAC写入控制部65将命中了的数据的有效标志42设定为“0”。
然后,DMAC写入控制部65向存储器204输出写入指令(S124)。具体来说,DMAC写入控制部65向第4端口214输出写入指令。另外,该写入指令用于指定与在步骤S121中由DMAC205输出的写入指令相同的地址。
输入到第4端口214的写入指令依次经由总线控制部206的第4端口224、选择部226以及第2端口222,被输入到存储控制器203的第2端口232。
另一方面,DMAC205将写入数据不经由L2高速缓存202地向存储器204输出(S125)。具体来说,DMAC205向总线控制部206的第1端口221输出写入数据。输入到第1端口221的写入数据经由第2端口222,被输入到存储控制器203的第2端口232。
存储控制器203将输入到第2端口232的写入指令以及写入数据向存储器204输出。
接收了写入指令以及写入数据的存储器204在该写入指令所指定的地址中存放该写入数据(S126)。
如上所述,本发明的实施方式的存储器***200在来自DMAC205的访问中发生了写入命中的情况下,使存放在L2高速缓存202中的命中了的数据无效化,并且写回到存储器204中。
由此,通过基于DMAC205的写入,能够防止L2高速缓存202的数据和存储器204的数据变得不一致。即,为了保持L2高速缓存202和存储器204的一致性,CPU201以及DMAC不需要追加特别的处理(清除处理)。这样,本发明的实施方式的存储器***200能够抑制为了保持一致性而产生的CPU201的处理性能降低。
接下来,对写入未命中时的动作进行说明。
图10是表示存储器***200的写入未命中时的动作的流程的图。
如图10所示,首先,DMAC205将写入指令向L2高速缓存202输出(S131)。另外,步骤S131以及S134~S136的动作与图9所示的S121以及S124~S126相同,省略详细的说明。
L2高速缓存202的命中判定部71判定高速缓存存放部70是否存放有由输入到第3端口213的读取指令所指定的地址的数据。在这里,命中判定部71判定为高速缓存存放部70没有存放所指定的地址的数据(高速缓存未命中)(S132)。
接下来,L2高速缓存202的DMAC写入控制部65向存储器204输出写入指令(S134)。具体来说,DMAC写入控制部65向第4端口214输出写入指令。另外,该写入指令用于指定与在步骤S101中通过DMAC205输出的读取指令相同的地址。
输入到第4端口214的写入指令依次经由总线控制部206的第4端口224、选择部226以及第2端口222,被输入到存储控制器203的第2端口232。
另一方面,DMAC205将写入数据向存储器204输出(S135)。
接收写入指令以及写入数据的存储器204在由该写入指令所指定的地址存放该写入数据(S136)。
如上所述,本发明的实施方式的存储器***200在来自DMAC205的访问中发生了写入未命中的情况下,向存储器204写入写入数据。
这样,本发明的实施方式的L2高速缓存202即使在写入命中的情况下,也不存放写入数据。即,在来自DMAC205的写入访问时,在命中以及高速缓存未命中的任意一种情况下,由DMAC205输出的写入数据都不经由L2高速缓存202而直接向存储器204输出。由此,在L2高速缓存202和DMAC205之间,不需要形成用于写入数据的总线。即,如图5所示,向L2高速缓存202的第3端口213仅输入写入指令,从第3端口213仅输出写入指令即可。由此,本发明的存储器***200与图15所示的存储器***110相比,能够削减面积。
另外,由于写入数据不经由L2高速缓存,所以,不需要增加用于DMAC205和L2高速缓存202之间数据传送的新的控制。即,本发明能够抑制DMAC205与L2高速缓存202的接口的复杂化。
另外,L2高速缓存202向第4端口214输出的写入指令,被输入存储控制器203的、与写入指令发行源的DMAC205对应的第2端口232。由此,存储控制器203将该写入指令作为DMAC205发行的指令处理。即,与读取访问时同样地,存储控制器203通过对第1端口231分配与CPU201相对的带宽、对第2端口232分配与DMAC205相对的带宽这样的容易的控制,能够实现对CPU201以及DMAC205的带宽的分配。另外,本发明的实施方式的存储器***200,根据DMAC205不经由L2高速缓存202地访问存储器204的情况,能够不改变存储控制器203控制地实现其控制。
接下来,对L2高速缓存202的动作的流程进行说明。
首先,对读取访问时的L2高速缓存202的动作进行说明。
图11是表示被输入了读取指令时的、L2高速缓存202的动作的流程的流程图。
如图11所示,在由DMAC205发行了读取指令的情况下,即,向第3端口213输入了读取指令的情况下(S201中DMAC),命中判定部71判定高速缓存存放部70是否存放有该读取指令所指定的地址的数据(S202)。
在存放有的情况下(S202中命中),接下来,DMAC读取控制部64判定命中了的数据是否是脏数据,即,命中了的数据是否由CPU20更新了(S203)。具体来说,L2高速缓存202在命中了的数据的脏标志43为“1”的情况下,判定为脏数据,在该脏标志43为“0”的情况下,判定为不是脏数据。
在为脏数据的情况下(S203中的是),DMAC读取控制部64对命中了的数据进行回写(S204)。
在回写结束之后,DMAC读取控制部64将读取指令向第4端口214输出(S205)。
另外,在不是脏数据的情况下(S203中的否),或者,在步骤S202中高速缓存未命中的情况下(S202中未命中),DMAC读取控制部64不进行回写(S204),将读取指令向第4端口214输出(S205)。
另一方面,在由CPU201发行了读取指令的情况下,即,向第1端口211输入了读取指令的情况下(S201中CPU),命中判定部71判定高速缓存存放部70是否存放有该读取指令所指定的地址的数据(S206)。
在存放有的情况下(S206中命中),CPU读取控制部61将命中了的数据作为读取数据向CPU201(第1端口211)输出(S208)。
另一方面,在没有存放的情况下(S206中未命中),CPU读取控制部61将读取指令所指定的地址的数据从存储器204读出(S207)。具体来说,CPU读取控制部61将指定与由CPU201输入的读取指令相同的地址的读取指令向第2端口212输出。输出到第2端口212的读取指令经由存储控制器203的第1端口231向存储器204输出。接收了读取指令的存储器204将存放于该读取指令所指定的地址的数据作为读取数据向存储控制器203输出。存储控制器203将由存储器204输出的读取数据从第1端口231向L2高速缓存202的第2端口212输出。
CPU读取控制部61将输入到第2端口212的读取数据存放于高速缓存存放部70,并且将该读取数据从第1端口211向CPU201输出(S208)。
接下来,对写入访问时的L2高速缓存202的动作进行说明。
图12是表示输入有写入指令时的、L2高速缓存202的动作的流程的流程图。
如图12所示,在由DMAC205发行了写入指令的情况下,即,向第3端口213输入了写入指令的情况下(S211中DMAC),命中判定部71判定高速缓存存放部70是否存放有该读取指令所指定的地址的数据(S212)。
在存放有的情况下(S212中命中),接下来,L2高速缓存202使命中了的数据无效化(S213)。具体来说,L2高速缓存202将命中了的数据的有效标志42设定为“0”。
接下来,L2高速缓存202将写入指令向第4端口214输出(S214)。
另外,在步骤S212中,在高速缓存未命中的情况下(S212中未命中),L2高速缓存202不进行无效化(S213),而将写入指令向第4端口214输出(S214)。
另一方面,在由CPU201发行了写入指令的情况下,即,向第1端口211输入了写入指令以及写入数据的情况下(S211中CPU),命中判定部71判定高速缓存存放部70是否存放有该读取指令所指定的地址的数据(S215)。
在存放有的情况下(S215中命中),CPU写入控制部62将命中了的数据更新为输入到第1端口的写入数据(S216)。具体来说,CPU写入控制部62在将命中了的数据变更为写入数据之后,设立脏标志43。
另一方面,在没有存放的情况下(S215中未命中),CPU写入控制部62进行行更换。即,CPU写入控制部62选择新的高速缓存条目40,在所选择的高速缓存条目40中存放输入到第1端口的写入数据(S217)。并且,CPU写入控制部62设立该写入数据的脏标志。
如上所述,在本发明的实施方式的存储器***200中,在来自DMAC205的访问中发生了读取命中的情况下,将存放于L2高速缓存202中的命中了的数据回写,之后,从存储器204读出数据。
由此,L2高速缓存202的数据通过CPU201而被更新,由此,即使在L2高速缓存202的数据和存储器204的数据不一致的情况下,DMAC205也能读出正确的数据(更新后的数据)。即,CPU201不需要在进行写入处理后指示L2高速缓存202进行清除(回写)。这样,本发明的实施方式的存储器***200由于能够通过CPU201削减清除处理,所以能够抑制为了保持一致性而产生的CPU201的处理性能降低。
另外,在来自DMAC205的访问中发生了写入命中的情况下,本发明的实施方式的存储器***200使存放在L2高速缓存202中的命中了的数据无效化,并且向存储器204写入数据。
由此,通过基于DMAC205的写入,能够防止L2高速缓存202的数据和存储器204的数据变得不一致的情况。即,为了保持L2高速缓存202和存储器204的一致性,CPU201以及DMAC205不需要追加特别的处理(清除处理)。这样,本发明的实施方式的存储器***200能够抑制为了保持一致性而产生的CPU201的处理性能降低。
另外,在本发明的实施方式的存储器***200中,L2高速缓存202即使在来自DMAC205的读取访问命中了的情况下,也不将L2高速缓存202存放的数据向DMAC205输出。另外,L2高速缓存202即使在来自DMAC205的写入访问命中了的情况下,也不存放从DMAC205输出的写入数据。
由此,不需要在L2高速缓存202和DMAC205之间形成用于传送数据的总线。由此,本发明的存储器***200与图15所示的存储器***110相比,能够削减面积。另外,由于读取数据以及写入数据不经由L2高速缓存,所以,不需要增加用于DMAC205和L2高速缓存202之间数据传送的新的控制。即,本发明能够抑制DMAC205与L2高速缓存202的接口的复杂化。
另外,在本发明的实施方式的存储器***200中,L2高速缓存202向第4端口214输出的指令,被输入存储控制器203的、与指令发行源的DMAC205对应的第2端口232。由此,存储控制器203将该指令作为DMAC205发行的指令予以处理。即,本发明的实施方式的存储器***200,根据DMAC205不经由L2高速缓存202地访问存储器204的情况,能够不改变存储控制器203控制地实现其控制。另外,能够容易地实现与向存储器204的访问中的各主设备(CPU201以及DMAC205)所对应的带宽的分配控制。
另外,上述接口的复杂化在DMAC205等外部主设备和存储器204之间使用多个总线协议的情况下问题尤为突出。换言之,本发明的实施方式的存储器***200在DMAC205等外部主设备和存储器204之间使用多个总线协议的情况下特别有效。
例如,在使用环形总线的存储器***中,由于在DMAC205等外部主设备和存储器204之间使用多个总线协议,所以本发明特别有效。
图13是本发明的实施方式的存储器***200的变形例,是表示使用环形总线的存储器***210的结构的图。如图13所示,存储器***210具有环形总线241。另外,对于与图1相同的要素赋予相同的符号并省略说明。L2高速缓存202、总线控制部206以及存储控制器203经由环形总线241连接。
以上,对本发明的实施方式的高速缓冲存储器进行了说明,但是本发明不仅限定于该实施方式。
例如,在上述说明中,以具有L2高速缓存202以及L1高速缓存的存储器***为例进行了说明,但是,本发明也适用于仅具有L1高速缓存的存储器***。
另外,在存储器***具有一级高速缓存和二级高速缓存的情况下,本发明优选适合于二级高速缓存。其原因在于,二级高速缓存对存储器***整体所产生的影响比一级高速缓存低。具体来说,在一级高速缓存命中的情况下的访问,对于处理器来说是最高速的访问。由此,当从主设备对一级高速缓存进行访问时,对影响最高速化的、从处理器向一级高速缓存的访问产生恶劣影响。由此,通过将本发明的高速缓冲存储器用于二级高速缓存,与将本发明的高速缓冲存储器用于一级高速缓存的情况相比,能够减小对处理器的高速化的恶劣影响。
另外,本发明也可以适用于具有3级缓存以上的存储器***。在该情况下,基于上述理由,优选将本发明的高速缓冲存储器用于最大级别的高速缓存。
另外,在图1中,表示出2个CPU201、2个DMAC205,但是CPU201以及DMAC205的个数也可以为1个或者3个以上。另外,也可以包含DMAC205以外的主设备。
另外,如图1所示,特别优选以下情况,即,将本发明的高速缓冲存储器用于由分别具有L1高速缓存207的多个CPU201共用的L2高速缓存202。
其原因在于,在由分别具有L1高速缓存207的多个CPU201共用L2高速缓存202的情况下,为了保持多个L1高速缓存207和共用的L2高速缓存202之间的一致性,多个CPU201进行基于窥探方式等算法的控制。由此,当在该控制之外加上用于保持L2高速缓存202和存储器204之间的一致性的控制时,控制更加复杂而难以实现。与之相对,通过将本发明的高速缓冲存储器用于L2高速缓存202,能够削减用于保持L2高速缓存202和存储器204之间的一致性的处理(清除处理),所以,能够避免上述控制的复杂化。这样,特别优选如下情况,即,将本发明的高速缓冲存储器用于由分别具有L1高速缓存207的多个CPU201共用的L2高速缓存202的情况。
另外,上述说明以L2高速缓存202为四路组关联方式的高速缓冲存储器的情况为例进行了说明,但是,路31的个数还可以为4个以外。
另外,本发明也可以适用于全关联(full associative)方式的高速缓冲存储器或者直接映射方式的高速缓冲存储器。
工业实用性
本发明能够适用于具有高速缓冲存储器以及高速缓冲存储器的存储器***。
标号说明
20地址寄存器
21存储器I/F
30解码器
31,31a,31b,31c,31d路
32a,32b,32c,32d比较器
33a,33b,33c,33d“与”电路
34“或”电路
35、36选择器
37多路分配器
38控制部
40高速缓存条目
41标签
42有效标志
43脏标志
44行数据
51标签地址
52组索引
53字索引
60CPU访问控制部
61CPU读取控制部
62CPU写入控制部
63DMAC访问控制部
64DMAC读取控制部
65DMAC写入控制部
70高速缓存存放部
71命中判定部
100、110、200、210存储器***
101、201CPU
102高速缓冲存储器
103、203存储控制器
104、204存储器
105、205DMAC
106总线
202L2高速缓存
206总线控制部
207L1高速缓存
211、221、231第1端口
212、222、232第2端口
213、223第3端口
214、224第4端口
225仲裁部
226选择部
241环形总线
Claims (16)
1.一种高速缓冲存储器,该高速缓冲存储器根据来自处理器的访问,存放主存储器的数据的一部分,其特征在于,具有:
第1端口,来自所述处理器的指令输入到该第1端口;
第2端口,来自所述处理器以外的主设备的指令输入到该第2端口;
命中判定部,在有指令输入到所述第1端口以及所述第2端口时,该命中判定部判定该高速缓冲存储器是否存放有与该指令所指定的地址对应的数据;以及
第1控制部,在所述指令输入到所述第2端口并且由所述命中判定部判定为存放有的情况下,该第1控制部进行用于保持与所述指令所指定的地址对应并由该高速缓冲存储器存放着的数据、和存放于所述主存储器的数据之间的一致性的处理,并且,将所述输入的指令作为从所述主设备输出的指令而向所述主存储器输出。
2.如权利要求1所述的高速缓冲存储器,其特征在于,所述第1控制部具有第1读取控制部,
在将读取指令作为所述指令输入到所述第2端口,且由所述命中判定部判定为存放有,并且与所述读取指令所指定的地址对应并由该高速缓冲存储器存放着的数据为脏数据的情况下,所述第1读取控制部将该数据回写到所述主存储器中,在该回写结束之后,将所述输入的读取指令作为从所述主设备输出的读取指令而向所述主存储器输出。
3.如权利要求1或2所述的高速缓冲存储器,其特征在于,在所述读取指令输入到所述第2端口并且由所述命中判定部判定为没有存放的情况下,所述第1读取控制部将所述输入的读取指令作为从所述主设备输出的读取指令而向所述主存储器输出。
4.一种存储器***,包括权利要求2或3所述的高速缓冲存储器、所述处理器、所述主设备、以及所述主存储器,
所述主存储器将存放于由所述第1读取控制部输出的所述读取指令所指定的地址的数据,不经由所述高速缓冲存储器地向所述主设备输出。
5.如权利要求4所述的存储器***,其特征在于,所述高速缓冲存储器还具有第2读取控制部,
在所述读取指令输入到所述第1端口并且由所述命中判定部判定为存放有的情况下,所述第2读取控制部将与所述读取指令所指定的地址对应并由该高速缓冲存储器存放着的数据向所述处理器输出;
在所述读取指令输入到所述第1端口并且由所述命中判定部判定为没有存放的情况下,所述第2读取控制部从所述主存储器读出所述读取指令所指定的地址的数据,将读出的数据存放到该高速缓冲存储器,并且向所述处理器输出。
6.如权利要求5所述的存储器***,其特征在于,所述存储器***还具有存储控制器,该存储控制器对从所述高速缓冲存储器向所述主存储器的访问和从所述主设备向所述主存储器的访问进行仲裁,
所述存储控制器具有:
第3端口,由所述第1读取控制部输出的读取指令输入到该第3端口,并且该第3端口根据该读取指令将从所述主存储器输出的读取数据向所述主设备输出;以及
第4端口,由所述第2读取控制部输出的读取指令输入到该第4端口,并且该第4端口根据该读取指令将从所述主存储器输出的读取数据向所述高速缓冲存储器输出,
所述存储控制器对于输入到所述第3端口的读取指令和输入到所述第4端口的读取指令,根据该指令是输入到所述第3端口以及所述第4端口中的哪一方的读取指令而进行仲裁。
7.如权利要求4所述的存储器***,所述存储器***还具有选择部,该选择部选择由所述第1读取控制部输出的读取指令和由所述主设备输出的读取指令中的一方,将所选择的读取指令向所述主存储器输出,
所述主存储器将存放于由所述选择部输出的所述读取指令所指定的地址的数据,不经由所述高速缓冲存储器地向所述主设备输出。
8.如权利要求1~3中的任意一项所述的高速缓冲存储器,其特征在于,所述第1控制部具有第1写入控制部,
在将写入指令作为所述指令输入到所述第2端口并且通过所述命中判定部判定为存放有的情况下,所述第1写入控制部使与所述写入指令所指定的地址对应并由该高速缓冲存储器存放着的数据无效化,并且,将所述输入的写入指令作为从所述主设备输出的写入指令而向所述主存储器输出。
9.如权利要求8所述的高速缓冲存储器,其特征在于,在所述写入指令输入到所述第2端口并且由所述命中判定部判定为没有存放的情况下,所述第1写入控制部将所述输入的写入指令作为从所述主设备输出的写入指令而向所述主存储器输出。
10.一种存储器***,包含权利要求8或9所述的高速缓冲存储器、所述处理器、所述主设备、所述主存储器,
所述主设备将写入数据不经由所述高速缓冲存储器地向所述主存储器输出,
所述主存储器将由所述主设备输出的写入数据存放于由所述第1写入控制部输出的所述写入指令所指定的地址。
11.如权利要求10所述的存储器***,其特征在于,所述高速缓冲存储器还具有第2写入控制部,
在所述写入指令以及写入数据输入到所述第1端口并且由所述命中判定部判定为存放有的情况下,所述第2写入控制部将与所述写入指令所指定的地址对应并由该高速缓冲存储器存放着的数据更新为所述写入数据,
所述第2写入控制部还将用于将该更新后的数据回写到所述主存储器中的写入指令以及写入数据向所述主存储器输出。
12.如权利要求11所述的存储器***,其特征在于,所述存储器***还具有存储控制器,该存储控制器对从所述高速缓冲存储器向所述主存储器的访问和从所述主设备向所述主存储器的访问进行仲裁,
所述存储控制器具有:
第3端口,由所述第1写入控制部输出的写入指令和由所述主设备输出的写入数据输入到该第3端口;以及
第4端口,由所述第2写入控制部输出的写入指令以及写入数据输入到该第4端口,
所述存储控制器对于输入到所述第3端口的写入指令和输入到所述第4端口的写入指令,根据该指令是输入到所述第3端口以及所述第4端口中的哪一方的写入指令而进行仲裁。
13.如权利要求10所述的存储器***,其特征在于,所述存储器***还具有选择部,该选择部选择由所述第1读取控制部输出的写入指令和由所述主设备输出的写入指令中的一方,将所选择的写入指令向所述主存储器输出,
所述主存储器将由所述主设备输出的写入数据存放于由所述选择部输出的所述写入指令所指定的地址。
14.如权利要求4~7以及10~13中的任意一项所述的存储器***,其特征在于,所述处理器具有一级高速缓存,
所述高速缓冲存储器为二级高速缓存。
15.如权利要求14所述的存储器***,其特征在于,
所述存储器***包括含有所述处理器的多个处理器,
所述多个处理器分别具有一级高速缓存,
所述高速缓冲存储器由所述多个处理器共用。
16.一种高速缓冲存储器的控制方法,所述高速缓冲存储器具有被输入来自处理器的指令的第1端口、和被输入来自所述处理器以外的主设备的指令的第2端口,该高速缓冲存储器根据来自所述处理器的访问,存放主存储器的数据的一部分,
所述高速缓冲存储器的控制方法的特征在于,包含:
命中判定步骤,在有指令输入到所述第1端口以及所述第2端口时,判定该高速缓冲存储器是否存放有与该指令所指定的地址对应的数据;以及
第1控制步骤,在所述指令输入到所述第2端口并且在所述命中判定步骤中判定为存放有的情况下,进行用于保持与所述指令所指定的地址对应并由该高速缓冲存储器存放着的数据、和存放在主存储器中的数据之间的一致性的处理,并且,将所述输入的指令作为从所述主设备输出的指令向所述主存储器输出。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008-244963 | 2008-09-24 | ||
JP2008244963 | 2008-09-24 | ||
PCT/JP2009/004600 WO2010035425A1 (ja) | 2008-09-24 | 2009-09-15 | キャッシュメモリ、メモリシステム及びその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102165424A true CN102165424A (zh) | 2011-08-24 |
Family
ID=42059438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980137449XA Pending CN102165424A (zh) | 2008-09-24 | 2009-09-15 | 高速缓冲存储器、存储器***及其控制方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20110173393A1 (zh) |
JP (1) | JPWO2010035425A1 (zh) |
CN (1) | CN102165424A (zh) |
TW (1) | TW201017421A (zh) |
WO (1) | WO2010035425A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103138912A (zh) * | 2011-12-05 | 2013-06-05 | 阿里巴巴集团控股有限公司 | 数据同步方法及*** |
CN105630698A (zh) * | 2014-10-28 | 2016-06-01 | 华为技术有限公司 | 配置扩展缓存的方法、装置及扩展缓存 |
CN107038126A (zh) * | 2015-12-23 | 2017-08-11 | 爱思开海力士有限公司 | 存储*** |
WO2017148218A1 (zh) * | 2016-03-01 | 2017-09-08 | 中兴通讯股份有限公司 | 一种数据流处理芯片的表项访问方法及装置 |
CN107250995A (zh) * | 2014-11-25 | 2017-10-13 | 领特投资两合有限公司 | 存储器管理设备 |
CN109101439A (zh) * | 2017-06-21 | 2018-12-28 | 深圳市中兴微电子技术有限公司 | 一种报文处理的方法及装置 |
CN110058783A (zh) * | 2018-01-17 | 2019-07-26 | 瑞昱半导体股份有限公司 | 暂存存储器处理方法、暂存存储器程序与存储装置 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8694737B2 (en) | 2010-06-09 | 2014-04-08 | Micron Technology, Inc. | Persistent memory for processor main memory |
US9448938B2 (en) | 2010-06-09 | 2016-09-20 | Micron Technology, Inc. | Cache coherence protocol for persistent memories |
US8613074B2 (en) | 2010-09-30 | 2013-12-17 | Micron Technology, Inc. | Security protection for memory content of processor main memory |
US8719506B2 (en) | 2011-11-21 | 2014-05-06 | Apple Inc. | Push mechanism for quality of service (QoS) support in coherency port |
US9053058B2 (en) | 2012-12-20 | 2015-06-09 | Apple Inc. | QoS inband upgrade |
KR102149222B1 (ko) * | 2013-09-26 | 2020-10-14 | 삼성전자주식회사 | 캐시를 이용한 데이터 복사 방법 및 그 장치 |
US10108562B2 (en) * | 2015-10-01 | 2018-10-23 | Renesas Electronics Corporation | Semiconductor device including a request issuing controller |
JP7000748B2 (ja) | 2017-09-04 | 2022-01-19 | 富士フイルムビジネスイノベーション株式会社 | 画像処理装置、半導体装置及びプログラム |
JP6946168B2 (ja) * | 2017-12-22 | 2021-10-06 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US11080211B2 (en) * | 2018-12-12 | 2021-08-03 | Arm Limited | Storing data from low latency storage |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003345653A (ja) * | 2002-05-24 | 2003-12-05 | Hitachi Ltd | データ処理装置及びデータ処理システム |
CN1783033A (zh) * | 2004-11-19 | 2006-06-07 | 英特尔公司 | 共享公共高速缓存的异构处理器 |
CN1902598A (zh) * | 2003-12-31 | 2007-01-24 | 英特尔公司 | 基于动态性能监控的存储器管理方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4603380A (en) * | 1983-07-01 | 1986-07-29 | International Business Machines Corporation | DASD cache block staging |
JPH05257805A (ja) * | 1992-01-14 | 1993-10-08 | Hitachi Ltd | キャッシュメモリ制御方式 |
JPH0797352B2 (ja) * | 1992-07-02 | 1995-10-18 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータ・システム及び入出力コントローラ |
US6868472B1 (en) * | 1999-10-01 | 2005-03-15 | Fujitsu Limited | Method of Controlling and addressing a cache memory which acts as a random address memory to increase an access speed to a main memory |
WO2001077836A1 (en) * | 2000-04-12 | 2001-10-18 | Koninklijke Philips Electronics N.V. | Data processing circuit with a cache memory and apparatus containing such a circuit |
JP4822598B2 (ja) * | 2001-03-21 | 2011-11-24 | ルネサスエレクトロニクス株式会社 | キャッシュメモリ装置およびそれを含むデータ処理装置 |
JP2004258935A (ja) * | 2003-02-26 | 2004-09-16 | Matsushita Electric Ind Co Ltd | 半導体装置 |
US20070028055A1 (en) * | 2003-09-19 | 2007-02-01 | Matsushita Electric Industrial Co., Ltd | Cache memory and cache memory control method |
JP4008947B2 (ja) * | 2003-12-22 | 2007-11-14 | 松下電器産業株式会社 | キャッシュメモリ及びその制御方法 |
US7260688B1 (en) * | 2004-04-15 | 2007-08-21 | Xilinx, Inc. | Method and apparatus for controlling access to memory circuitry |
DE102005037219A1 (de) * | 2005-08-08 | 2007-02-15 | Robert Bosch Gmbh | Vorrichtung und Verfahren zur Speicherung von Daten und/oder Befehlen in einem Rechnersystem mit wenigstens zwei Verarbeitungseinheiten und wenigstens einem ersten Speicher oder Speicherbereich für Daten und/oder Befehle |
-
2009
- 2009-09-10 TW TW098130538A patent/TW201017421A/zh unknown
- 2009-09-15 JP JP2010530711A patent/JPWO2010035425A1/ja not_active Withdrawn
- 2009-09-15 CN CN200980137449XA patent/CN102165424A/zh active Pending
- 2009-09-15 WO PCT/JP2009/004600 patent/WO2010035425A1/ja active Application Filing
-
2011
- 2011-03-23 US US13/069,590 patent/US20110173393A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003345653A (ja) * | 2002-05-24 | 2003-12-05 | Hitachi Ltd | データ処理装置及びデータ処理システム |
CN1902598A (zh) * | 2003-12-31 | 2007-01-24 | 英特尔公司 | 基于动态性能监控的存储器管理方法 |
CN1783033A (zh) * | 2004-11-19 | 2006-06-07 | 英特尔公司 | 共享公共高速缓存的异构处理器 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103138912A (zh) * | 2011-12-05 | 2013-06-05 | 阿里巴巴集团控股有限公司 | 数据同步方法及*** |
CN103138912B (zh) * | 2011-12-05 | 2016-08-03 | 阿里巴巴集团控股有限公司 | 数据同步方法及*** |
CN105630698A (zh) * | 2014-10-28 | 2016-06-01 | 华为技术有限公司 | 配置扩展缓存的方法、装置及扩展缓存 |
CN107250995A (zh) * | 2014-11-25 | 2017-10-13 | 领特投资两合有限公司 | 存储器管理设备 |
CN107250995B (zh) * | 2014-11-25 | 2021-11-16 | 领特投资两合有限公司 | 存储器管理设备 |
CN107038126A (zh) * | 2015-12-23 | 2017-08-11 | 爱思开海力士有限公司 | 存储*** |
CN107038126B (zh) * | 2015-12-23 | 2021-03-16 | 爱思开海力士有限公司 | 存储*** |
WO2017148218A1 (zh) * | 2016-03-01 | 2017-09-08 | 中兴通讯股份有限公司 | 一种数据流处理芯片的表项访问方法及装置 |
CN109101439A (zh) * | 2017-06-21 | 2018-12-28 | 深圳市中兴微电子技术有限公司 | 一种报文处理的方法及装置 |
CN109101439B (zh) * | 2017-06-21 | 2024-01-09 | 深圳市中兴微电子技术有限公司 | 一种报文处理的方法及装置 |
CN110058783A (zh) * | 2018-01-17 | 2019-07-26 | 瑞昱半导体股份有限公司 | 暂存存储器处理方法、暂存存储器程序与存储装置 |
CN110058783B (zh) * | 2018-01-17 | 2022-04-12 | 瑞昱半导体股份有限公司 | 暂存存储器处理方法、暂存存储器程序与存储装置 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2010035425A1 (ja) | 2012-02-16 |
TW201017421A (en) | 2010-05-01 |
US20110173393A1 (en) | 2011-07-14 |
WO2010035425A1 (ja) | 2010-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102165424A (zh) | 高速缓冲存储器、存储器***及其控制方法 | |
EP2430551B1 (en) | Cache coherent support for flash in a memory hierarchy | |
CN100440177C (zh) | 用于软件可控动态可锁高速缓冲存储器线替换***的方法 | |
US9311246B2 (en) | Cache memory system | |
US7917699B2 (en) | Apparatus and method for controlling the exclusivity mode of a level-two cache | |
US6748501B2 (en) | Microprocessor reservation mechanism for a hashed address system | |
US8423715B2 (en) | Memory management among levels of cache in a memory hierarchy | |
US8001330B2 (en) | L2 cache controller with slice directory and unified cache structure | |
US8015358B2 (en) | System bus structure for large L2 cache array topology with different latency domains | |
US7284102B2 (en) | System and method of re-ordering store operations within a processor | |
US9075730B2 (en) | Mechanisms to bound the presence of cache blocks with specific properties in caches | |
CN100573477C (zh) | 管理锁定的高速缓冲存储器中的组替换的***和方法 | |
US7493446B2 (en) | System and method for completing full updates to entire cache lines stores with address-only bus operations | |
US7243194B2 (en) | Method to preserve ordering of read and write operations in a DMA system by delaying read access | |
US20070288694A1 (en) | Data processing system, processor and method of data processing having controllable store gather windows | |
US7287122B2 (en) | Data replication in multiprocessor NUCA systems to reduce horizontal cache thrashing | |
CN102160040A (zh) | 高速缓存存储器、存储器***、数据复制方法及数据改写方法 | |
CN100517273C (zh) | 高速缓冲存储器及其控制方法 | |
CN113826085A (zh) | 处理器中的写入流 | |
US7454580B2 (en) | Data processing system, processor and method of data processing that reduce store queue entry utilization for synchronizing operations | |
US7610458B2 (en) | Data processing system, processor and method of data processing that support memory access according to diverse memory models | |
CN104077237B (zh) | 缓冲存储器、缓冲存储器控制单元和缓冲存储器的控制方法 | |
GB2454810A (en) | Cache memory which evicts data which has been accessed in preference to data which has not been accessed | |
WO2007001257A1 (en) | Cache with flexible configuration, data processing system using same, and method therefor | |
JPH0289145A (ja) | キャッシュメモリ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110824 |
|
WD01 | Invention patent application deemed withdrawn after publication |