CN101116063A - 具有高速缓存内存之系统及访问方法 - Google Patents
具有高速缓存内存之系统及访问方法 Download PDFInfo
- Publication number
- CN101116063A CN101116063A CNA2006800042239A CN200680004223A CN101116063A CN 101116063 A CN101116063 A CN 101116063A CN A2006800042239 A CNA2006800042239 A CN A2006800042239A CN 200680004223 A CN200680004223 A CN 200680004223A CN 101116063 A CN101116063 A CN 101116063A
- Authority
- CN
- China
- Prior art keywords
- cache
- requested
- data
- line
- victim
- 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
- 238000000034 method Methods 0.000 title claims description 19
- 230000004044 response Effects 0.000 claims description 13
- 238000010586 diagram Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 239000000758 substrate Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
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
-
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
- G06F12/124—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list being minimized, e.g. non MRU
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明揭露一种具有上级(upper-level)高速缓存与以牺牲模式运作的下级(lower-level)高速缓存的系统,该牺牲高速缓存包含近来最多使用的控制模块以识别近来最多已读取的高速缓存位置为近来最少使用的高速缓存位置。
Description
技术领域
本发明大体上是关于内存系统,尤指使用高速缓存内存的系统。
背景技术
利用牺牲高速缓存(victim cache)的系统通过传送于上级高速缓存被覆写的高速缓存线至下级牺牲高速缓存以供储存而以高速缓存写入模式运作。在读取作业期间,所请求的数据系从牺牲高速缓存传送至上级高速缓存以响应存在于该牺牲高速缓存之线之该所请求的数据,如由高速缓存命中(cache hit)所指示。使读取自该牺牲高速缓存之高速缓存线无效之写入发生作为部分的读取作业。使该读取高速缓存线无效允许该高速缓存线由高速缓存控制器识别为可用于接下来的写入作业。
发明内容
本发明的目的是提供一种具有上级高速缓存与以牺牲模式运作的下级高速缓存,并且识别近来最多已读取的高速缓存位置为近来最少使用的高速缓存位置的高速缓存内存系统及其访问方法。本发明的高速缓存内存系统包括:数据处理器,包含总线以访问高速缓存数据;第一高速缓存,包含耦合于该数据处理器的该总线端口的第一总线端口、以及第二总线端口;第二高速缓存,包含耦合于该数据处理器的该第二总线端口的总线端口,该第二高速缓存用以经由该第二高速缓存提供数据至该数据处理器,该第二高速缓存包含:近来最多使用的控制模块,以识别近来最多已读取的高速缓存位置为近来最少使用的高速缓存位置。
附图说明
通过参考附图可以更佳了解本发明,以及其数个特征及优点对在此技术领域之具有通常技艺者会变的显而易见。
图1是根据本发明的特定实施例以方块图形式例示包含高速缓存内存的系统;
图2是以先前技术对照本发明实施例所例示的时序图;
图3是根据本发明的特定实施例以方块图形式例示在共同的高速缓存列中的高速缓存线之状态上之读取命中与写入命中的影响;以及
图4至7是以流程图形式根据本发明例示的方法;
在不同的图式中使用的相同的组件符号指示类似或相同的项目。
具体实施方式
根据本发明之特定实施例,揭露了一种牺牲高速缓存(victimcache)系统。在一个实施例中,第一级(L1)与第二级(L2)高速缓存一起运作,使得L2高速缓存为牺牲高速缓存,该牺牲高速缓存储存从该L1高速缓存移出的数据。根据本发明之特定实施例,当数据从L1高速缓存写入至L2高速缓存时,被写入的高速缓存线在MRU阵列中系识别为在其高速缓存行中近来最多使用的(MRU)高速缓存线。然而,读取至牺牲高速缓存的数据造成从牺牲高速缓存读取高速缓存线因其被识别于MRU阵列中为在其高速缓存行中近来最少使用的(LRU)线。识别刚从高速缓存读取的高速缓存线为于该行中近来最少使用的线具有如同使卷标(TAG)阵列中的线无效之类似的效用,其中近来最多读取的高速缓存线在高速缓存行之任何其它有效线之前遭受被覆写。这种情况优于使用牺牲高速缓存的先前系统,因为如果需要的话,读取高速缓存线的数据保持可用于后续读取。举例来说,若中止牺牲高速缓存数据之最初读取传送,则高速缓存线能随后从该牺牲高速缓存读取,因为该高速缓存线尚未无效化。另一个优点是改善了牺牲高速缓存频宽,因为没有需要个别的写入周期来使该读取高速缓存线之TAG位置无效化。
如本文中所用的术语,行(或高速缓存行)系指依据目前地址的索引部分所选定的高速缓存线组,请看图1中的A(索引)。举例来说,组件符号141、142、以及143代表高速缓存行,各高速缓存行具有4条高速缓存线。参考本文的图1至7,将会更了解本发明之这些及其它具体实施例。
图1例示根据本发明的具体实施例之系统100。系统100包括请求装置110、第一级(L1)高速缓存120以及第二级(L2)牺牲高速缓存130。系统100可代表系统整合芯片(system-on-a-chip,SOC)的系统或多组件的系统。在多组件系统的情况下,装置110、高速缓存120以及高速缓存130的部分可存在于不同的半导体基材上。在一个实施例中,装置110以及高速缓存120系在共同的半导体基材上,而有些高速缓存130或没有高速缓存130系制造于不同的半导体基材上。当系统100包括多个组件时,可通过使用印刷电路板、多芯片模块或其它能够支撑与互连该等组件的基材而将组件互相连接。
在操作中,请求装置110具有总线端口,该总线端口系电性连接至L1高速缓存120之总线端口。在特定的实施例中,该请求装置110可以是微控制器的中央处理单元。在数据访问作业期间,该请求装置110将请求读取(收到)或写入(传送)的信息。任一读取或写入之访问作业可导致数据被写入至高速缓存120与130。
若命中(hit)发生在高速缓存模块120,则高速缓存模块120将提供由请求装置110所请求的数据。若失误(miss)发生在高速缓存模块120,亦即该所请求的数据并不存在,则数据将从牺牲高速缓存130或从例如系统内存之另一内存位置(未图标)被写入至高速缓存模块120。举例来说,若所请求的数据不存在于高速缓存120或高速缓存130,则该数据将会从不同的内存位置而被接收。若响应于从不同的内存位置接收数据而需在高速缓存120之高速缓存线覆写数据,则将要被覆写的数据将先从L1高速缓存120取出并且被写入至牺牲高速缓存130以供储存。牺牲高速缓存130识别接收取出数据的高速缓存线为近来最多使用的高速缓存线以响应其被写入。
若对由请求装置110所请求的数据之高速缓存命中发生在牺牲高速缓存130中,而非在外部内存或L1高速缓存120,则该所请求的数据系自牺牲高速缓存130提供给L1高速缓存120以供储存。这种位于牺牲高速缓存130内之高速缓存线的读取导致该读取高速缓存线被识别为近来最少使用者。
该牺牲高速缓存130系例示包括内存阵列140、卷标/有效位阵列135、高速缓存卷标控制部分165、高速缓存命中模块155、近来最多使用的(MRU)控制模块166、MRU阵列170以及路向选择模块部分(WaySelect Module Portion)150。
总线125将该L1高速缓存120耦合到牺牲高速缓存130以提供地址信息,该地址信息包括卷标(TAG)部分以及从该L1高速缓存120至该牺牲高速缓存130之索引(INDEX)部分。应该了解的是,存在着附加的数据及控制总线,且仅有地址总线系例示为了讨论的目的。传送用来识别内存阵列135的高速缓存线的特定组之地址信息的总线125的部分系标示为A(索引)且连接至高速缓存卷标控制165。用来选择高速缓存列的特定路向之地址信息系标示为A(卷标)且提供给高速缓存命中模块部分155。内存阵列部分140包含高速缓存行141至144,且例示以进一步包含四个路向(ways),路向146至149。路向选择模块150系连接至高速缓存内存阵列140,以接收信号而选择与内存阵列140之路向之其中一者相关联的数据以提供至L1高速缓存120并响应于牺牲高速缓存130中的命中(hit)。
高速缓存卷标控制器165选择高速缓存内存阵列140之高速缓存行之其中一者以及与该行相关联之阵列135中的卷标与有效位。若响应于接收特定地址而决定目前地址卷标(A(卷标))系储存于高速缓存卷标/有效位阵列135内,则讯号将由高速缓存命中模块155所判定(asserted),并且提供给MRU控制166以及路向选择模块150,其乃导致数据从牺牲高速缓存130提供至L1高速缓存120以及MRU寄存器的更新。
在写入作业期间,MRU控制模块166将更新MRU阵列170以指示该被写入的线是在其列内近来最多使用的线。
在读取作业期间,MRU控制模块166将更新MRU阵列170以指示该被读取的线在其行内是近来最少使用的高速缓存线。通过指示该读取线系近来最少使用的线,当该读取线实际上是近来最多访问过的时,则确定刚读取过的线在后续写入作业期间将有被覆写的最高可能性,同时在被覆写之前维持最近读取数据的可用性。这种情况优于先前系统(其中一旦读取高速缓存线数据,则该先前系统使线的牺牲高速缓存卷标无效),因此若后续需要原始数据系来自牺牲高速缓存,例如若高速缓存线的原始读取必须中止,则防止了高速缓存线之后续数据读取。
通过使用该揭露的系统也可实现改良的频宽,因为个别的写入卷标/有效阵列135以使高速缓存线无效是不需要的。参考图2,将会更佳了解。
图2是例示用于对先前牺牲之高速缓存的读取以及用于对根据本发明之牺牲高速缓存130之读取之时序图。讯号211代表对先前系统中牺牲高速缓存的卷标/有效位的访问,以及讯号212代表对先前系统的MRU阵列的MRU指针的访问。具体而言,在对先前牺牲阵列之读取的第一周期(C1)期间,所选定高速缓存行的该等卷标与无效位系读取如讯号211之脉冲RD1所表示。在同样的周期期间,用于该访问列之MRU指针系被读取与写入,如讯号212之脉冲RD1与W1所表示。因为该无效位是在用于访问储存于牺牲高速缓存中的数据的速度路径(speed path)中,且因为该卷标/无效阵列135远大于该MRU阵列,因此一般在同样的周期中写回至该阵列135之无效位是不可行的。反而是在同样的读取作业的第二周期期间,将有效位写入以指示于高速缓存行内之特定线的数据是无效的。该牺牲高速缓存之下一个读取不会发生直到第三个周期(C3)为止。
讯号213代表对该揭露的系统中的卷标之卷标/有效位的访问。讯号214代表对该MRU阵列之MRU指针的访问。具体而言,所选定高速缓存行之该卷标与无效位系读取于讯号213之脉冲RD1所代表的时间之C1期间。在同样的周期期间,用于访问行之MRU指针被读取与写入,如讯号214脉冲RD1与W1所表示。因为在C1期间写回该MRU阵列,所以第二读取作业可发生在周期C2,因而改善了该牺牲高速缓存130之读取频宽。
图3通过例示对牺牲高速缓存130之读取与写入作业如何达成高速缓存行之MRU及有效位来促进牺牲高速缓存130之了解。具体而言,图3例示阵列337,其具有行与列对应于图1的牺牲高速缓存130的行与路向。举例来说,行241至244对应于高速缓存行141至144,而列246至249对应于路向146至149。阵列337之各高速缓存线包含字母”i”或”v”,其中该字母”i”指示与该高速缓存线相关联的数据是无效的,以及该字母”v”指示与该高速缓存线相关联的数据是有效的。那些识别为含有有效数据的线也包含1至4的数字以指示其近来最多使用的状态,其中1代表近来最多使用的数据而4代表近来最少使用的数据。
图3的线242至线242A的路径代表与行241、列249相关联的线之数据读取,而线242至线242B的路径代表与行242、列249相关联之高速缓存线的数据写入。
在对行142、路向149之读取作业期间,与142之高速缓存列相关联的MRU值被修改,使得近来读取线含有值4,并且因此被识别为近来最少使用的线。在对行142、路向149之写入作业期间,该与高速缓存行142相关联的MRU值被修改,使得近来写入的线含有值1,而因此被识别为近来最多使用的线。
储存特定高速缓存线的使用状态之方式可以许多方式完成,举例来说,各高速缓存线可与内存位置相关联,该内存位置具有足够的大小以指示其目前使用的排名(ranking)。对具有四条高速缓存线的高速缓存行而言,此将需要四个2位的位置。或者,具有四条高速缓存线之高速缓存行可使用假排名架构(pseudo-ranking scheme),该架构只使用3个位。在此种架构中,有两个已识别之高速缓存线的非重叠组,各非重叠组代表四条高速缓存线的其中两条。用来实行假排名架构之三个位的第一位被判定以指示第一组含有近来最多使用的高速缓存线,并且被否定(negated)以指示第二组含有近来最多使用的高速缓存线。该假排名架构的其余两个位被判定或否定以指示位于个别组内的哪一个高速缓存线是近来最多被访问的。应该了解的是,此架构允许在列中之近来最多使用的与近来最少使用的高速缓存线的识别。
图4以流程图形式例示根据本发明的实施例的方法。于步骤311,作为读取作业的部分,进行判定请求的第一信息系储存于第一高速缓存位置,例如在牺牲高速缓存内的高速缓存线,亦即命中。
于步骤312,响应于步骤311中之成功的命中,促进从该第一高速缓存位置取得该请求的信息。请参考图1,响应于成功的卷标(TAG)命中,根据由高速缓存卷标控制165之高速缓存行选择模块所选定的高速缓存行,和由高速缓存命中模块155提供之选择讯号,透过路向选择模块150而选择该请求的信息。
于步骤313,响应于步骤311中的成功命中,访问该请求的信息的高速缓存位置将被识别为近来最少使用的高速缓存位置,以响应于读取该高速缓存位置。在此种方式中,数据保持为可访问的,但会于下一次信息需要储存在该高速缓存卷标位置时遭受被覆写。
图5例示本发明之又另一实施例。于步骤321,从牺牲高速缓存提供对信息的第一读取请求给牺牲高速缓存,其中该信息系将要提供给上级高速缓存。举例来说,作为部分的牺牲高速缓存系统,对数据的主要请求系作给上级高速缓存,并其次提供给牺牲高速缓存。请注意,此第二请求可由视为上级高速缓存本身的部分的内存控制或由视为与上级高速缓存分离的内存控制而达成。请参考图1,L1高速缓存120或未图标的内存控制器可对L2高速缓存130提供读取要求。
于步骤322,于第一高速缓存接收来自该牺牲高速缓存之该第一信息。举例来说,参考图1,L2高速缓存130(例如,牺牲高速缓存)将提供数据给L1高速缓存120(一旦选定了)。
于步骤323中,在牺牲高速缓存储存指针以促进在牺牲高速缓存覆写该第一信息。应该了解的是,一旦已发生从L2牺牲高速缓存130之信息的读取,则强烈推定该刚被读取的数据存在于L1高速缓存120内,该L1高速缓存120曾请求该信息。因此可应用指针,例如近来最少使用的指针,到先前储存该第一信息的位置以促进后续该数据的覆写。
于步骤324,对同样的信息之第二读取请求提供至L2高速缓存。如步骤325所示,在该第一信息已由该牺牲高速缓存覆写之前,响应于接收到此请求,可于第一高速缓存接收从该牺牲高速缓存来之信息。一旦牺牲高速缓存位置被读取,其数据不会无效化,此代表超越先前方法的一种改良。
图6以方块图的形式例示根据本发明的方法。于步骤326,第一读取请求发生在第一时间,该第一读取请求系由上级高速缓存在第一时间促进至牺牲高速缓存。应该了解的是,上级高速缓存促进对该牺牲高速缓存的读取请求,其乃根据该请求的数据是否存在于上级高速缓存中而预测该牺牲高速缓存读取的实际完成。于步骤327,由上级高速缓存促进在第二时间发生第二读取请求,而这也在介于第一读取的时间与没有发生有效指针修改的第二读取的时间之间的期间。更具体而言,第一读取所读取的数据不会通过插进写入(intervening write)至该卷标/无效(TAG/INVALID)寄存器而无效化。
图7以流程图形式例示根据本发明具体实施例的方法。执行步骤328以响应被写入至该牺牲高速缓存之高速缓存位置的数据,因此该高速缓存位置系识别为近来最多使用的高速缓存位置。执行步骤329以响应从该牺牲高速缓存之高速缓存位置所读取的数据,因此该高速缓存位置系识别为近来最少使用的高速缓存位置。
在先前详细的说明中,参考形成此部分的附图,且通过可实行于本发明之图标具体实施例显示于其中。这些实施例与其某些变化已经以充分的细节说明,以使在此技术领域熟悉该项技艺者能够实行本发明。举例来说,应该了解虽然不同的地址连接系例示连接装置110至装置120以及装置120至装置130,而共同组之地址连接可由三个装置分享。应该了解可运用其它适当的实施例。除此之外,还应了解,示于图中的功能部分可以一些方式更进一步结合或分割而不脱离本发明的精神或范畴。举例来说,牺牲高速缓存130的控制部分可与L1高速缓存120以及与内存阵列135分离的请求装置在共同的基材上形成。在此种实施例中,与各高速缓存线相关联的有效位可储存作为控制部位的部分或作为内存阵列135的部分。此外,应该了解的是,储存在所描述高速缓存区域内的数据可以是指令类型的数据或数据类型的数据(亦即非指令的数据)。因此,前面详细的说明不是要对本文所提出的特定形式做出限制,而相反地,其是为了涵盖各种的替代、修改或等同实施,而可合理地涵盖于附加的权利要求书的精神与范畴内。
Claims (10)
1.一种方法,包含以下步骤:
识别高速缓存位置为近来最多使用的高速缓存位置以响应被写入至该高速缓存位置的数据(328);以及
识别该高速缓存位置为近来最少使用的高速缓存位置以响应从该高速缓存位置读取的数据(324)。
2.如权利要求1所述的方法,其中,该第一高速缓存是牺牲高速缓存(130)。
3.一种方法,包含以下步骤:
决定请求的第一信息储存在第一高速缓存位置,该第一高速缓存位置与于第一高速缓存(311)的第一高速缓存行中的第一路向相关联;
促进从该第一高速缓存位置(312)的该请求的信息的获得;以及
识别该第一高速缓存位置为近来最少使用的位置以响应促进该请求的第一信息(313)的获得。
4.如权利要求3所述的方法,其中,该第一高速缓存是牺牲高速缓存(130)。
5.如权利要求4所述的方法,其中,该第一高速缓存是第二级牺牲高速缓存(130)。
6.如权利要求3所述的方法,还包含以下步骤:
决定该请求的第一信息在第二高速缓存(321)是无法取得的。
7.如权利要求6所述的方法,其中,决定该请求的信息是无法取得的还包含在促进该请求的第一信息的获得之前,决定该请求是无法取得的。
8.如权利要求7所述的方法,还包含以下步骤:
从中央处理单元(110)接收该请求的第一信息的请求。
9.一种系统,包括:
数据处理器,包含总线端口以访问高速缓存数据(110);
第一高速缓存,包含耦合于该数据处理器的该总线端口的第一总线端口、以及第二总线端口(120);以及
第二高速缓存,包含耦合于该数据处理器(130)的该第二总线端口的总线端口,其中该第二高速缓存经由该第二高速缓存以提供数据至数据处理器,该第二高速缓存包含:
近来最多使用的控制模块(166),以识别近来最多已读取的高速缓存位置为近来最少使用的高速缓存位置。
10.如权利要求9所述的系统,其中,该近来最多使用的控制模块进一步用以识别近来最多已写入的高速缓存位置为近来最多使用的高速缓存位置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/052,650 US20060179231A1 (en) | 2005-02-07 | 2005-02-07 | System having cache memory and method of accessing |
US11/052,650 | 2005-02-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101116063A true CN101116063A (zh) | 2008-01-30 |
Family
ID=36463365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006800042239A Pending CN101116063A (zh) | 2005-02-07 | 2006-01-17 | 具有高速缓存内存之系统及访问方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US20060179231A1 (zh) |
JP (1) | JP2008530657A (zh) |
KR (1) | KR20070104906A (zh) |
CN (1) | CN101116063A (zh) |
DE (1) | DE112006000341T5 (zh) |
GB (1) | GB2439851A (zh) |
TW (1) | TW200636481A (zh) |
WO (1) | WO2006086123A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107577617A (zh) * | 2011-09-30 | 2018-01-12 | 甲骨文国际公司 | 基于快速持久性存储器的回写储存器高速缓存 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8279886B2 (en) * | 2004-12-30 | 2012-10-02 | Intel Corporation | Dataport and methods thereof |
US20070094450A1 (en) * | 2005-10-26 | 2007-04-26 | International Business Machines Corporation | Multi-level cache architecture having a selective victim cache |
US7506119B2 (en) * | 2006-05-04 | 2009-03-17 | International Business Machines Corporation | Complier assisted victim cache bypassing |
US7921260B2 (en) * | 2007-10-24 | 2011-04-05 | International Business Machines Corporation | Preferred write-mostly data cache replacement policies |
US8966181B2 (en) * | 2008-12-11 | 2015-02-24 | Seagate Technology Llc | Memory hierarchy with non-volatile filter and victim caches |
US9465745B2 (en) | 2010-04-09 | 2016-10-11 | Seagate Technology, Llc | Managing access commands by multiple level caching |
TW201220048A (en) * | 2010-11-05 | 2012-05-16 | Realtek Semiconductor Corp | for enhancing access efficiency of cache memory |
KR101862785B1 (ko) * | 2011-10-17 | 2018-07-06 | 삼성전자주식회사 | 타일 기반 렌더링을 위한 캐쉬 메모리 시스템 및 캐슁 방법 |
US9811875B2 (en) * | 2014-09-10 | 2017-11-07 | Apple Inc. | Texture state cache |
CN107291630B (zh) * | 2016-03-30 | 2020-08-25 | 华为技术有限公司 | 一种高速缓冲存储器处理方法及装置 |
US11693790B2 (en) | 2019-05-24 | 2023-07-04 | Texas Instmments Incorporated | Methods and apparatus to facilitate write miss caching in cache system |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4181937A (en) * | 1976-11-10 | 1980-01-01 | Fujitsu Limited | Data processing system having an intermediate buffer memory |
US4513367A (en) * | 1981-03-23 | 1985-04-23 | International Business Machines Corporation | Cache locking controls in a multiprocessor |
US4464712A (en) * | 1981-07-06 | 1984-08-07 | International Business Machines Corporation | Second level cache replacement method and apparatus |
US4458310A (en) * | 1981-10-02 | 1984-07-03 | At&T Bell Laboratories | Cache memory using a lowest priority replacement circuit |
US4928239A (en) * | 1986-06-27 | 1990-05-22 | Hewlett-Packard Company | Cache memory with variable fetch and replacement schemes |
US5261066A (en) * | 1990-03-27 | 1993-11-09 | Digital Equipment Corporation | Data processing system and method with small fully-associative cache and prefetch buffers |
JP2822588B2 (ja) * | 1990-04-30 | 1998-11-11 | 日本電気株式会社 | キャッシュメモリ装置 |
JPH06110781A (ja) * | 1992-09-30 | 1994-04-22 | Nec Corp | キャッシュメモリ装置 |
US5539893A (en) * | 1993-11-16 | 1996-07-23 | Unisys Corporation | Multi-level memory and methods for allocating data most likely to be used to the fastest memory level |
US5623627A (en) * | 1993-12-09 | 1997-04-22 | Advanced Micro Devices, Inc. | Computer memory architecture including a replacement cache |
US5870599A (en) * | 1994-03-01 | 1999-02-09 | Intel Corporation | Computer system employing streaming buffer for instruction preetching |
US5687338A (en) * | 1994-03-01 | 1997-11-11 | Intel Corporation | Method and apparatus for maintaining a macro instruction for refetching in a pipelined processor |
US5809271A (en) * | 1994-03-01 | 1998-09-15 | Intel Corporation | Method and apparatus for changing flow of control in a processor |
US5752274A (en) * | 1994-11-08 | 1998-05-12 | Cyrix Corporation | Address translation unit employing a victim TLB |
US5729713A (en) * | 1995-03-27 | 1998-03-17 | Texas Instruments Incorporated | Data processing with first level cache bypassing after a data transfer becomes excessively long |
US5696947A (en) * | 1995-11-20 | 1997-12-09 | International Business Machines Corporation | Two dimensional frame buffer memory interface system and method of operation thereof |
US5778430A (en) * | 1996-04-19 | 1998-07-07 | Eccs, Inc. | Method and apparatus for computer disk cache management |
US6151662A (en) * | 1997-12-02 | 2000-11-21 | Advanced Micro Devices, Inc. | Data transaction typing for improved caching and prefetching characteristics |
US6078992A (en) * | 1997-12-05 | 2000-06-20 | Intel Corporation | Dirty line cache |
US6216206B1 (en) * | 1997-12-16 | 2001-04-10 | Intel Corporation | Trace victim cache |
US6105111A (en) * | 1998-03-31 | 2000-08-15 | Intel Corporation | Method and apparatus for providing a cache management technique |
US6591347B2 (en) * | 1998-10-09 | 2003-07-08 | National Semiconductor Corporation | Dynamic replacement technique in a shared cache |
US6370622B1 (en) * | 1998-11-20 | 2002-04-09 | Massachusetts Institute Of Technology | Method and apparatus for curious and column caching |
US6397296B1 (en) * | 1999-02-19 | 2002-05-28 | Hitachi Ltd. | Two-level instruction cache for embedded processors |
US6349365B1 (en) * | 1999-10-08 | 2002-02-19 | Advanced Micro Devices, Inc. | User-prioritized cache replacement |
US6370618B1 (en) * | 1999-11-09 | 2002-04-09 | International Business Machines Corporation | Method and system for allocating lower level cache entries for data castout from an upper level cache |
US6385695B1 (en) * | 1999-11-09 | 2002-05-07 | International Business Machines Corporation | Method and system for maintaining allocation information on data castout from an upper level cache |
CA2312444A1 (en) * | 2000-06-20 | 2001-12-20 | Ibm Canada Limited-Ibm Canada Limitee | Memory management of data buffers incorporating hierarchical victim selection |
US6889291B1 (en) * | 2000-06-30 | 2005-05-03 | Intel Corporation | Method and apparatus for cache replacement for a multiple variable-way associative cache |
US6728835B1 (en) * | 2000-08-30 | 2004-04-27 | Unisys Corporation | Leaky cache mechanism |
US6845432B2 (en) * | 2000-12-28 | 2005-01-18 | Intel Corporation | Low power cache architecture |
US6725337B1 (en) * | 2001-05-16 | 2004-04-20 | Advanced Micro Devices, Inc. | Method and system for speculatively invalidating lines in a cache |
US6801982B2 (en) * | 2002-01-24 | 2004-10-05 | International Business Machines Corporation | Read prediction algorithm to provide low latency reads with SDRAM cache |
US6901477B2 (en) * | 2002-04-01 | 2005-05-31 | Emc Corporation | Provision of a victim cache within a storage cache hierarchy |
US7103722B2 (en) * | 2002-07-22 | 2006-09-05 | International Business Machines Corporation | Cache configuration for compressed memory systems |
US6961821B2 (en) * | 2002-10-16 | 2005-11-01 | International Business Machines Corporation | Reconfigurable cache controller for nonuniform memory access computer systems |
US6996676B2 (en) * | 2002-11-14 | 2006-02-07 | International Business Machines Corporation | System and method for implementing an adaptive replacement cache policy |
US7103721B2 (en) * | 2003-04-28 | 2006-09-05 | International Business Machines Corporation | Cache allocation mechanism for biasing subsequent allocations based upon cache directory state |
US20040268099A1 (en) * | 2003-06-30 | 2004-12-30 | Smith Peter J | Look ahead LRU array update scheme to minimize clobber in sequentially accessed memory |
US7028144B2 (en) * | 2003-10-28 | 2006-04-11 | Intel Corporation | Method and apparatus for an in-situ victim cache |
US20050188158A1 (en) * | 2004-02-25 | 2005-08-25 | Schubert Richard P. | Cache memory with improved replacement policy |
-
2005
- 2005-02-07 US US11/052,650 patent/US20060179231A1/en not_active Abandoned
-
2006
- 2006-01-17 CN CNA2006800042239A patent/CN101116063A/zh active Pending
- 2006-01-17 JP JP2007554110A patent/JP2008530657A/ja not_active Withdrawn
- 2006-01-17 WO PCT/US2006/001604 patent/WO2006086123A2/en active Application Filing
- 2006-01-17 DE DE112006000341T patent/DE112006000341T5/de not_active Ceased
- 2006-01-17 KR KR1020077018173A patent/KR20070104906A/ko not_active Application Discontinuation
- 2006-01-17 GB GB0716977A patent/GB2439851A/en not_active Withdrawn
- 2006-01-27 TW TW095103406A patent/TW200636481A/zh unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107577617A (zh) * | 2011-09-30 | 2018-01-12 | 甲骨文国际公司 | 基于快速持久性存储器的回写储存器高速缓存 |
CN107577617B (zh) * | 2011-09-30 | 2020-11-03 | 甲骨文国际公司 | 基于快速持久性存储器的回写储存器高速缓存 |
Also Published As
Publication number | Publication date |
---|---|
WO2006086123A2 (en) | 2006-08-17 |
TW200636481A (en) | 2006-10-16 |
DE112006000341T5 (de) | 2007-12-20 |
GB2439851A (en) | 2008-01-09 |
KR20070104906A (ko) | 2007-10-29 |
JP2008530657A (ja) | 2008-08-07 |
US20060179231A1 (en) | 2006-08-10 |
GB0716977D0 (en) | 2007-10-10 |
WO2006086123A3 (en) | 2007-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101116063A (zh) | 具有高速缓存内存之系统及访问方法 | |
RU2212704C2 (ru) | Структура совместно используемого кэша для временных и невременных команд | |
CN101361049B (zh) | 用于高级高速缓存驱逐候选对象标识的巡查窥探 | |
US6449671B1 (en) | Method and apparatus for busing data elements | |
US5900011A (en) | Integrated processor/memory device with victim data cache | |
US7966444B2 (en) | Reconfigurable memory module and method | |
US6782454B1 (en) | System and method for pre-fetching for pointer linked data structures | |
US7975108B1 (en) | Request tracking data prefetcher apparatus | |
US6199142B1 (en) | Processor/memory device with integrated CPU, main memory, and full width cache and associated method | |
US5251310A (en) | Method and apparatus for exchanging blocks of information between a cache memory and a main memory | |
US6219765B1 (en) | Memory paging control apparatus | |
US6901500B1 (en) | Method and apparatus for prefetching information and storing the information in a stream buffer | |
US6836833B1 (en) | Apparatus and method for discovering a scratch pad memory configuration | |
US7360021B2 (en) | System and method for completing updates to entire cache lines with address-only bus operations | |
US6219764B1 (en) | Memory paging control method | |
US20080016282A1 (en) | Cache memory system | |
US6862663B1 (en) | Cache having a prioritized replacement technique and method therefor | |
US20070226382A1 (en) | Method for improving direct memory access performance | |
CN107783909B (zh) | 一种内存地址总线扩展方法及装置 | |
CN117609314A (zh) | 一种缓存数据处理方法、缓存控制器、芯片及电子设备 | |
JP2002007373A (ja) | 半導体装置 | |
EP3759606B1 (en) | An apparatus and method for accessing metadata when debugging a device | |
US8949545B2 (en) | Memory interface device and methods thereof | |
US6192459B1 (en) | Method and apparatus for retrieving data from a data storage device | |
CN111625411A (zh) | 半导体装置及调试系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |