CN101292227B - 具有高访问存储带宽的高速缓冲存储器 - Google Patents

具有高访问存储带宽的高速缓冲存储器 Download PDF

Info

Publication number
CN101292227B
CN101292227B CN2006800385224A CN200680038522A CN101292227B CN 101292227 B CN101292227 B CN 101292227B CN 2006800385224 A CN2006800385224 A CN 2006800385224A CN 200680038522 A CN200680038522 A CN 200680038522A CN 101292227 B CN101292227 B CN 101292227B
Authority
CN
China
Prior art keywords
holding tank
cache memory
storage data
sram
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.)
Active
Application number
CN2006800385224A
Other languages
English (en)
Other versions
CN101292227A (zh
Inventor
扬-威廉·范德韦尔特
卡洛斯·H·M·V·巴斯托
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.)
Nytell Software LLC
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN101292227A publication Critical patent/CN101292227A/zh
Application granted granted Critical
Publication of CN101292227B publication Critical patent/CN101292227B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • 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/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0851Cache with interleaved addressing
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache

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

具有高访问存储带宽的高速缓冲存储器
技术领域
本发明涉及一种高速缓冲存储器以及用于在其上存储和载入数据的方法。更具体地说,本发明针对利用了具有位写功能的单端口SRAM的高速缓冲存储器装置和系统结构,该位写功能能够在支持多路存储操作或支持至少一个存储操作的同时还支持一个在高速缓冲数据存储器上的载入操作。
发明内容
本发明的实施例包括一种高速缓冲存储器系统。该高速缓冲存储器系统包括用于存储高速缓冲数据的高速缓冲数据存储器以及两个或更多个用于存储高速缓冲标记和有效位的高速缓冲标记存储器。存储槽(0)地址计算逻辑计算存储操作地址。存储槽(0)标记判别器接收来自存储槽(0)地址计算逻辑的地址信息,并且利用该信息来访问存储槽(0)标记SRAM。高速缓冲写缓冲区为高速缓冲数据存储器接收并存储待保存的数据。同样,存储槽(1)地址逻辑电路用来为存储槽(1)标记SRAM计算存储操作地址,并为高速缓冲数据载入操作地址。存储槽(1)标记判别器从存储槽(1)地址计算逻辑接收地址信息,并尝试访问该存储槽(1)标记SRAM。存储槽(0)标记SRAM、存储槽(1)标记SRAM和高速缓冲写缓冲区被组合用来向高速缓冲数据存储器执行两个几乎同时的存储操作。在本发明的其它实施例中,高速缓冲数据存储器由一个单端口SRAM存储器装置组成。同时,本发明的其它实施例允许分别通过存储槽(0)和存储槽(1)地址来在高速缓冲数据存储器中同时载入和存储数据。然而本发明的其它实施例提供一种使用多个SRAM装置的高速缓冲数据存储器。所述高速缓冲数据存储器内的所述多个SRAM装置提供了一种方式用于基于存储器地址的高速缓冲数据的交叉存取(interleaving)。这种交叉存取允许数据流带宽超过在高速缓冲数据存储器中未使用多分离单端口SRAM存储器装置的那些高速缓冲数据存储器。
本发明的另一实施例为一种高速缓冲存储器系统,该系统被认为是一种伪多端口(pseudo-multi-ported)高速缓冲存储器系统。这样一种高速缓冲存储器系统与类似的具有多端口SRAM存储器的高速缓冲存储器系统相比,需要较小的空间量。
同样在本发明的其它实施例中,多个标记SRAM存储器可以被添加到该高速缓冲存储器系统,由此允许在高速缓冲存储器中执行额外的同时存储功能。也就是说,两个或更多的标记SRAM存储器能允许两个或更多个存储槽(达到N个存储槽,其中N为正整数)同时进行对于每个存储槽将数据存储在高速缓冲存储器系统的高速缓冲数据存储器中。
本发明另一实施例提供了一种方法,该方法使用了一种伪多端口高速缓冲存储器系统,其中存储槽(0)存储数据被存储在一个高速缓冲数据存储器中,几乎同时,存储槽(1)存储数据也被完全同时存储在相同的高速缓冲数据存储器中。
本发明的以上总结并没有试图阐述每一个实施例或本发明的每一个方面。
附图说明
通过参考下面的详细说明并结合附图,可以获得对本发明的方法和装置更完整的了解。
图1是直接映射高速缓冲存储器设计的方框图;
图2是根据本发明的支持多个同时存储操作和一个同时载入操作的示意性的伪多端口高速缓冲存储器的方框图和流程图;以及
图3是根据本发明的增加向高速缓冲存储器结构的数据流的有效带宽的高速缓冲数据存储器的示意性实施例的方框图。
具体实施方式
高速缓冲存储器已经被使用很多年了。而且,使用了许多设计技术来开发存储器地址引用的时间和空间位置。在微处理器和其它处理器设计中频繁地使用高速缓冲存储器。现今的处理器典型地具有16、32或64位的存储器地址空间。这样的存储器地址空间导致在存储器空间中216、232或264的可独立寻址的数据单元。为了处理这样大量的地址空间,针对存储器地址引用的位置开发了一种存储器分层的数据存储结构,这种结构典型地支持这种处理器。通常,紧邻处理器的存储器存储结构(即,L1存储器)允许该结构内存储单元的快速访问。这样的紧邻处理器的存储结构通常具有相对小的存储容量。这种较小的存储容量通常不够大来捕获处理器地址空间内所有的可独立寻址的存储单元。位置距离处理器更远的存储结构(即L2存储器)通常具有与紧邻处理器的存储结构相比较慢的访问时间。距离处理器更远的存储结构通常具有与紧邻处理器的存储结构相比较大的存储容量。较好平衡的存储器层次试图提供对处理器所需的所有存储单元的快速访问。由于一种高速缓冲存储器结构试图开发存储器地址引用中的位置,所以通过处理器的快速访问可以通过将一种高速缓冲存储器设计应用到更靠近处理器的存储结构中来实现。
下面是对现有技术中直接映射高速缓冲存储器设计10的简短说明(尽管还存在相关的高速缓冲存储器,但其保护范围与本发明的实施例不同)。
现在参考图1,其中描述了现有技术中的直接映射高速缓冲存储器设计10。假设32位的存储器地址空间。32位的存储器地址空间可以独立寻址总共232或4G的数据单元。为了简化讨论,我们将讨论字节而不是数据单元。而且假设例如高速缓冲存储器装置10具有64K字节(216字节)的存储容量以及32字节的高速缓冲存储器模块尺寸(也称为线尺寸)。高速缓冲存储器模块12是在高速缓冲存储器10与分层存储器30中的其它存储结构之间的作为单个数据实体而被传输的一组连续的字节。为了使存储器地址引用地址空间中的一个字节,存储器地址被表示为32位值A[31:0],其中第31位是地址的最高有效位,而第0位是地址的最低有效位。使用地址A来访问高速缓冲存储器10。在图1的实例中,一个具有32字节模块尺寸的64K字节的高速缓冲存储器,其第31至第16位被用作一个标记,第15至第5位被用作模块地址(也被称为线或组地址),而第4至第0位被用作字节索引。模块地址被用来索引高速缓冲存储器结构16中的高速缓冲存储器的标记存储器20以及数据存储器18。将从标记存储器20获取的标记与作为地址A一部分的标记作比较。通过比较来决定引用的模块是否出现在高速缓冲存储器10中。来自数据存储器18的获取模块被用于选择引用字节单元。通过利用地址A的字节索引值来选择引用字节单元。
仍然参考图1,现有技术中的高速缓冲存储器设计10使用具有位写功能的单端口SRAM。换言之,存储器允许对存储器位置中某些位选择更新而像由位掩码识别一样。这一功能允许通过选择性的更新使一存储器位置的数据进行选择性的融合,而不需要首先获取该位置的数据。
仍然参考图1,提供通过高速缓冲存储器流水线的存储操作和载入操作的流程。在阶段A由地址计算电路22计算存储操作的地址。在阶段B,通过标记判别器26请求对标记存储器结构20的访问。根据存储操作相关的存储槽来访问标记存储器结构。应理解存储操作不需要访问数据存储器结构18,因为在存储操作期间不需要从高速缓冲存储器结构中获取数据。在阶段C,访问标记存储器结构16的标记存储器部分20。标记比较逻辑34分离出高速缓冲存储器命中信号(如果有命中的话),以及其它控制信息。在阶段D,操作控制状态机32按照由标记比较逻辑34提供的控制信息来运行。在高速缓冲存储器没有命中的情况下,分配一个高速缓冲存储器线(line)。在高速缓冲存储器命中的情况下,要存储在高速缓冲存储器结构16的高速缓冲存储器18部分中的数据(存储数据)被发送给高速缓冲存储器写缓冲区(CWB)28。一个周期之后,该存储数据出现在CWB 28,并且CWB 28请求访问数据存储器结构18。当允许访问高速缓冲数据存储器结构18时,该存储数据在接下来一个周期被放入高速缓冲数据存储器结构18中。当不允许访问高速缓冲数据存储器结构18时,该存储数据27更新为存储器结构16,更具体地说,更新为高速缓冲数据存储器18被推迟到CWB 28被允许访问该结构的另一个时间点。同时,存储数据27在CWB 28中保持待处理状态,CWB 28提供多达6个待处理存储的存储容量。
载入操作具有在阶段A中由地址计算电路22计算的地址。在阶段B中,分别通过标记访问判别器26和数据存储器访问判别器24请求对标记存储器结构20和数据存储器结构18的访问。在阶段C,访问存储器结构16。即访问高速缓冲数据存储器结构18以及标记存储器结构20。高速缓冲数据存储器18为数据线路(data way)12提供数据。而且,在载入对准器和符号扩展电路30中识别与之前的处于阶段D操作中或CWB 28中的存储操作冲突的载入地址。控制状态机32按照从标记比较逻辑34分离出的被提供的控制信息来进行操作。在高速缓冲存储器没有命中的情况下,通过重填(refill)单元线36(重填单元在图中没有示出)由一个重填单元从存储器获取高速缓冲存储器线。在地址与之前存储操作冲突的情况下,存储数据被放入数据存储器结构16,并且载入操作被再次执行。
正如从图1以及通过现有技术中高速缓冲存储器流水线10的存储和载入操作的流程说明中理解的那样,可以总结出只有载入操作要求数据存储器结构16的立即可用性。载入操作通常具有固定的操作延时(在该示例实施例中为4)。然而,存储操作不具有操作延时,并且它们的数据更新可被推迟到之后的数据结构16变得可用的时间点。
现有技术高速缓冲存储器流水线10系统的标记和存储器结构(18,20)典型地由单端口SRAM存储器来建立。即,数据SRAM 20和标记SRAM 18都由单端口SRAM存储器组成。使用这些单端口SRAM存储器是因为它们廉价、需要小量的电路面积、并被认为是快速存储器电路。然而,它们的单端口本质对它们的使用构成限制。确实现在已经可以使用多端口SRAM,但是多端口SRAM相对昂贵而且在硅片上需要较多的引脚或面积。而且,多端口SRAM比它们的对手单端口SRAM要慢。因此,由于需要的硅片面积的大小和它们运行的时钟频率较慢,支持具有多端口SRAM设计的多个同时载入和存储操作不被采用。现有技术中产生了替代的高速缓冲存储器方式。这些方式典型地使用“伪双端口”SRAM装置。这种由伪双端口SRAM装置制作的高速缓冲存储器系统可支持多个同时载入和存储操作,但是性能会降低,因为它们的“伪”本质不能支持不带有性能损失的同时操作。因此,需要这样的高速缓冲存储器,其可运行在高带宽,但不会在执行多个同时载入和/或存储操作时遭受性能降低。
在本发明的实施例中,提供的伪多端口高速缓冲存储器支持多个同时存储操作和单个载入操作,而只需要在硅片面积或引脚上付出很小的额外成本。图1的流程为通过使用利用了单端口或伪双端口SRAM结构的现有高速缓冲存储器流水线的现有技术存储和载入操作,在仔细回顾之后,注意到仅仅载入操作要求数据存储器结构的直接可用性。载入操作具有固定为4的操作延时,这是由编译器操作调度来决定的。然而,存储操作没有操作延时,并且它们的数据更新功能可以被推迟到数据存储器结构变得可用的稍后的时间点。
本发明的实施例能够通过仅仅将现有技术结构的标记存储器加倍来提供对两个不受限存储操作的支持。如果希望两个不受限载入操作,则必须加倍数据存储器的面积和存储器大小(与图1所示的现有技术高速缓冲存储器系统相比)。由于将数据存储器结构中的存储器加倍比将标记存储器结构中的存储器加倍更昂贵,并且由于高速缓冲存储器线标记入口与高速缓冲存储器数据线结构相比需要明显较少的位数,很明显,对于本发明的实施例加倍标记存储器更加有利。
现在参考图2,描述根据本发明实施例的高速缓冲存储器结构40。在这个示例实施例中为每个额外的发布存储槽(issue slot)增加了支持存储操作的额外的标记存储器结构。即,图2描述了支持两个同时存储操作或与一个载入操作同时的存储操作的示例高速缓冲存储器系统40的实例。两个存储操作都可使用两个发布存储槽,存储槽(0)42和存储槽(1)44。然而,载入操作只能在第二发布存储槽,即存储槽(1)44中被发布。
首先,讨论存储操作,在阶段A中,分别在地址计算盒46和48中为存储槽(0)42和存储槽(1)44计算地址。在阶段B,分别通过访问判别器50和52向标记存储器请求对标记存储器结构54和56的访问。记住,任何存储操作都不需要访问数据存储器结构58中的数据,因为没有从高速缓冲存储器结构58中获取任何数据。在阶段C,访问针对存储数据的合适存储槽(0或1)的标记结构。这样,对于存储槽0,标记存储器结构54被访问,并且如果完成一次命中的话,标记比较逻辑60分离出高速缓冲存储器命中信号以及其它控制信息。在高速缓冲存储器没有命中的情况下,一个高速缓冲存储器线被配置。在高速缓冲存储器命中的情况下,要被存储的数据被发送到高速缓冲存储器写缓冲区(CWB)64。一个写周期之后,数据出现在CWB 64中,并且该缓冲区要求访问数据存储器结构58。当允许CWB 64访问数据存储器结构时,在接下来一个周期存储数据被放入数据存储器结构58。当不允许访问数据存储器结构时,存储器结构中存储数据的更新被推迟到稍后的CWB 64被允许访问数据存储器结构58的时间点。同时,存储数据保持待处理状态。CWB 64提供多达6个待处理存储的存储容量。CWB可执行两个从CWB到数据存储器结构的同时存储数据的更新。该同时更新在一些情况受到限制,在这些情况中更新不与结构请求的SRAM存储器相冲突。具有同时存储能力的CWB 64具有对要存储在数据存储器58中的数据进行存储的较小的瓶颈,因为每个周期可以在数据存储器58中存储更多的存储数据。
同时,在存储槽(1)中可执行另一个存储功能,其中在地址计算电路模块48中执行地址计算并且进而使用计算得到的地址来通过存储槽(1)标记访问判别器52访问存储槽(1)标记存储器56。在模块62中进行标记比较,并且决定一个高速缓冲存储器命中或没有命中,这一信息连同额外的控制信息被提供给存储槽1控制状态机72。如果存储槽(0)中的一个高速缓冲存储器命中被提供,则要被存储进高速缓冲数据存储器58中的数据被发送到CWB 64。一个周期以后,要被存储的数据出现在CWB 64中,并且CWB 64请求访问数据存储器结构58。当对数据存储器结构58的访问被允许时,在下一个周期,要被存储的数据(存储数据)被放入数据存储器结构58。当访问不被允许时,对存储器结构58中的存储数据的更新被延迟到稍后CWB64被允许访问数据存储器结构58的时间点。同时,在CWB 64中的存储数据保持待处理状态。正如上面所讨论的,在这个实施例中CWB64提供多达大约6个待存储的存储容量。通过使用两个标记存储器,两个同时存储操作能够在同一时钟周期发生。
本发明的实施例也能在同一个时钟周期执行一个同时的存储和载入操作。在这个实施例中,载入操作只能在存储槽(1)44中执行。因此存储操作在存储槽(0)42中执行。如上面描述的,存储操作在存储槽(0)中执行。同时,在存储槽(1)中,载入操作将在阶段A中的地址计算逻辑电路48中计算它的地址。在阶段B,请求对标记和数据存储器结构56和58的访问。在阶段C,存储器结构被通过用于数据存储器的访问判别器66来访问,并通过存储槽(1)标记访问判别器52来访问存储槽(1)标记存储器56。数据存储器结构58提供位于块尺寸地址的高速缓冲存储器线。而且,还处于之前的阶段D或CWB 64中的存储操作的地址冲突被识别。用于存储槽(1)72的控制状态机按照所提供的控制信息进行操作,例如,该控制信息从标记比较逻辑62分离出。在高速缓冲存储器没有命中的情况下,高速缓冲存储器线通过重填单元从存储器获取。如果之前的或同时的存储操作有一个地址冲突,存储数据首先被放入数据存储器结构58,然后载入操作被再次执行。
从另一个方面来讨论,CWB 64能为两个从CWB 64到数据存储器结构58的同时(即在同一个时钟周期)存储数据更新提供存储数据。这一同时更新受到一些限制,在这些限制中,更新不与结构的请求SRAM存储器相冲突。由此,两个CWB数据存储入口在同一时间帧和/或在一个单一的周期访问中被移至数据存储器结构。这一方式称为存储组合,在高速缓冲存储器设计示例中,可以阻止CWB 64成为性能瓶颈。
当多组SRAM存储器装置被用来实现数据存储器结构58时,如图3所示,基于地址的高速缓冲存储器数据交叉存取允许从CWB 64到存储器结构58的同时访问,以及被发布的操作。交叉存取也增加了到存储器结构的有效带宽。例如,在图3中由四组SRAM 58A、58B、58C和58D来实现(也可以使用多于四组的分离SRAM装置)。在这个实施例中的SRAM分配是基于地址的第3和第2位。也就是说,所有共享相同地址第3和第2位(00,01,10,11)的字节单元存贮在相同的SRAM中。由此,高速缓冲存储器线字节在每四个字节单元的间隔尺寸进行SRAM交叉存取。因此,在对SRAM“00”58a进行CWB访问的同时,可以对SRAM“01”58b进行载入操作访问。当这种对存储器装置58的同时访问以实施例中使用SRAM配置的实现方式来提供时,访问裁决必须在单独SRAM的级别执行,而不是将数据存储器结构作为一个整体。如图3所示,四个访问判别器被用来使能单独SRAM的访问。
在本发明的另一个实施例中,在高速缓冲存储器系统和流水线中N个同时存储操作被执行。N是大于或等于2的整数。再参考图2,第n个存储槽80在阶段A将执行地址计算82,访问裁决将在阶段B执行。在阶段C,存储槽(N)标记86将被访问,并且将执行标记比较功能88来确定命中或没有命中。实质上,第n个存储槽80将以存储槽0或1的相同方式执行存储操作。因此,本发明的实施例将允许N个同时存储操作,或者在N-1个同时存储功能的同时进行一个载入功能。这一功能是通过增加高速缓冲存储器的标记存储器尺寸来完成的,这与增加高速缓冲存储器的高速缓冲数据存储器的尺寸相比占用较小的空间。
对于本领域的普通技术人员应该理解和评估在本发明具体实施方式中描述的与多个同时存储高速缓冲存储器或多个存储和载入高速缓冲存储器相关的多种变化。因此,本发明只描述了几种推荐的实施例。应该理解本发明并不限于公开的实施例,它可以进行额外的重组、修改和置换而不背离本发明说明书和权利要求书的内容。相应地,应该理解本发明的保护范围包括所有这些组合,而不仅限于权利要求书。

Claims (12)

1.一种高速缓冲存储器系统(40),包括:
高速缓冲存储器数据存储器(58),用于存储高速缓冲存储器数据;
第一存储槽地址计算逻辑电路(46),用于计算存储操作地址;
第一存储槽标记判别器(50),用于接收来自所述第一存储槽地址计算逻辑电路(46)的地址信息;
第一存储槽标记SRAM(54),其通过所述第一存储槽标记判别器(50)来访问;
第一存储槽标记比较逻辑(60),用于将来自所述第一存储槽地址计算逻辑电路(46)的地址信息与第一存储槽标记SRAM(54)内容进行比较,以确定高速缓冲存储器是否命中;
高速缓冲存储器写缓冲区(64),用于在高速缓冲存储器命中的情况下接收和保存将被存入所述高速缓冲存储器数据存储器(58)的待处理存储数据;
第二存储槽地址计算逻辑电路(48),用于计算存储操作地址;
第二存储槽标记判别器(52),用于从所述第二存储槽地址计算逻辑电路(48)接收地址信息;
第二存储槽标记SRAM(56),其通过所述第二存储槽标记判别器(52)来访问;
第二存储槽标记比较逻辑(62),用于将来自所述第二存储槽地址计算逻辑电路(48)的地址信息与第二存储槽标记SRAM(56)内容进行比较,以确定高速缓冲存储器是否命中;
所述第一存储槽标记SRAM(54)、所述第二存储槽标记SRAM(56)和所述高速缓冲存储器写缓冲区(64)的组合执行两个同时的存储操作,其中来自所述高速缓冲存储器写缓冲区(64)的第一存储槽存储数据和第二存储槽存储数据被提供到所述高速缓冲存储器数据存储器(58)。
2.如权利要求1所述的高速缓冲存储器系统,其中所述第一存储槽标记SRAM、所述第二存储槽标记SRAM和所述高速缓冲存储器写缓冲区的所述组合在相同的时间执行第一存储槽存储操作和第二存储槽载入操作。
3.如权利要求1所述的高速缓冲存储器系统,其中所述高速缓冲存储器数据存储器由多个SRAM装置(58a-58d)组成,并且使用基于存储器地址的高速缓冲存储器数据交叉存取来将存储数据存储在所述高速缓冲存储器数据存储器(58)中。
4.如权利要求3所述的高速缓冲存储器系统,其中所述高速缓冲存储器写缓冲区对所述高速缓冲存储器数据存储器的访问与对所述高速缓冲存储器数据存储器的一个载入操作同时进行。
5.如权利要求1所述的高速缓冲存储器系统,其中所述高速缓冲存储器系统不是多端口高速缓冲存储器系统。
6.如权利要求1所述的高速缓冲存储器系统,其中所述高速缓冲存储器系统是一种伪多端口高速缓冲存储器系统。
7.如权利要求1所述的高速缓冲存储器系统,还包括N个存储槽标记SRAM,其被连接以支持在所述的高速缓冲存储器数据存储器中的N个同时的存储操作。
8.如权利要求7所述的高速缓冲存储器系统,其中所述高速缓冲存储器系统在相同的时间在所述的高速缓冲存储器数据存储器中执行N-1个同时的存储操作和一个载入操作。
9.一种使用伪多端口高速缓冲存储器系统(40)的方法,所述方法包括:
第一存储操作:
计算第一存储槽存储操作地址;
接收所计算出的第一存储槽存储操作地址;
访问第一存储槽标记SRAM(54);
将所计算出的第一存储槽存储操作地址与第一存储槽标记SRAM内容进行比较,以确定高速缓冲存储器是否命中;
在高速缓冲存储器命中的情况下,接收和保存将被存入高速缓冲存储器数据存储器(58)的第一存储槽存储数据;以及
第二存储操作:
计算第二存储槽存储操作地址;
接收所计算出的第二存储槽存储操作地址;
访问第二存储槽标记SRAM(56);
将所计算出的第二存储槽存储操作地址与第二存储槽标记SRAM内容进行比较,以确定高速缓冲存储器是否命中;
在高速缓冲存储器命中的情况下,接收和保存将被存入高速缓冲存储器数据存储器(58)的第二存储槽存储数据;
其特征在于,在与将第一存储槽存储数据存储在高速缓冲存储器数据存储器(58)中的第一操作相同的时间,进行将第二存储槽存储数据存储在高速缓冲存储器数据存储器(58)中的第二操作。
10.如权利要求9所述的方法,进一步包括:在进行一个或多个所述存储步骤的同时,从所述高速缓冲存储器数据存储器(58)执行一个载入操作。
11.如权利要求9所述的方法,进一步包括:在相同的时间将N个存储槽存储数据存储在所述伪多端口高速缓冲存储器系统(40)中。
12.如权利要求9所述的方法,其中所述高速缓冲存储器数据存储器(58)包括多个独立SRAM(58a-58d),并且所述存储步骤是使用交叉存取存储方法来执行的。
CN2006800385224A 2005-10-19 2006-10-18 具有高访问存储带宽的高速缓冲存储器 Active CN101292227B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US72857605P 2005-10-19 2005-10-19
US60/728,576 2005-10-19
PCT/IB2006/053847 WO2007046066A1 (en) 2005-10-19 2006-10-18 Cache with high access store bandwidth

Publications (2)

Publication Number Publication Date
CN101292227A CN101292227A (zh) 2008-10-22
CN101292227B true CN101292227B (zh) 2010-11-03

Family

ID=37726995

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800385224A Active CN101292227B (zh) 2005-10-19 2006-10-18 具有高访问存储带宽的高速缓冲存储器

Country Status (5)

Country Link
US (1) US7975093B2 (zh)
EP (1) EP1941373A1 (zh)
JP (1) JP2009512933A (zh)
CN (1) CN101292227B (zh)
WO (1) WO2007046066A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8943273B1 (en) * 2008-08-14 2015-01-27 Marvell International Ltd. Method and apparatus for improving cache efficiency
US9904476B2 (en) 2010-08-27 2018-02-27 Cisco Technology, Inc. Performing multiple write operations to a memory using a pending write queue/cache
US8909860B2 (en) 2012-08-23 2014-12-09 Cisco Technology, Inc. Executing parallel operations to increase data access performance
GB2527087B (en) * 2014-06-11 2021-04-14 Advanced Risc Mach Ltd Parallel lookup in first and second value stores
US10866899B2 (en) * 2017-10-02 2020-12-15 Arm Ltd Method and apparatus for control of a tiered memory system
US10896141B2 (en) * 2019-03-26 2021-01-19 Intel Corporation Gather-scatter cache architecture having plurality of tag and data banks and arbiter for single program multiple data (SPMD) processor
US11243775B2 (en) 2019-03-26 2022-02-08 Intel Corporation System, apparatus and method for program order queue (POQ) to manage data dependencies in processor having multiple instruction queues
US11188341B2 (en) 2019-03-26 2021-11-30 Intel Corporation System, apparatus and method for symbolic store address generation for data-parallel processor

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0493960A2 (en) * 1991-01-02 1992-07-08 Compaq Computer Corporation A computer system employing fast buffer copying
US5907860A (en) * 1993-10-18 1999-05-25 National Semiconductor Corporation System and method of retiring store data from a write buffer
CN1591360A (zh) * 2003-09-02 2005-03-09 扬智科技股份有限公司 计算机系统中存取数据的方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0651331B1 (en) * 1993-10-18 2002-01-09 National Semiconductor Corporation A write buffer for a superpipelined, superscalar microprocessor
US5680572A (en) * 1994-02-28 1997-10-21 Intel Corporation Cache memory system having data and tag arrays and multi-purpose buffer assembly with multiple line buffers
US6138206A (en) * 1997-06-12 2000-10-24 International Business Machines Corporation Data register for multicycle data cache read
US7039756B2 (en) * 2003-04-28 2006-05-02 Lsi Logic Corporation Method for use of ternary CAM to implement software programmable cache policies

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0493960A2 (en) * 1991-01-02 1992-07-08 Compaq Computer Corporation A computer system employing fast buffer copying
US5907860A (en) * 1993-10-18 1999-05-25 National Semiconductor Corporation System and method of retiring store data from a write buffer
CN1591360A (zh) * 2003-09-02 2005-03-09 扬智科技股份有限公司 计算机系统中存取数据的方法

Also Published As

Publication number Publication date
US7975093B2 (en) 2011-07-05
EP1941373A1 (en) 2008-07-09
US20080209129A1 (en) 2008-08-28
JP2009512933A (ja) 2009-03-26
CN101292227A (zh) 2008-10-22
WO2007046066A1 (en) 2007-04-26

Similar Documents

Publication Publication Date Title
CN101292227B (zh) 具有高访问存储带宽的高速缓冲存储器
US7962695B2 (en) Method and system for integrating SRAM and DRAM architecture in set associative cache
US5835941A (en) Internally cached static random access memory architecture
US6070227A (en) Main memory bank indexing scheme that optimizes consecutive page hits by linking main memory bank address organization to cache memory address organization
US6353876B1 (en) Cache memory exchange optimized memory organization for a computer system
CN109582214B (zh) 数据访问方法以及计算机系统
CN101493796B (zh) 存储器内、页面内目录高速缓存一致性配置
EP1495407A1 (en) Non-uniform cache apparatus, systems, and methods
TWI393050B (zh) 促進多重處理器介面之板內建快取記憶體系統之記憶體裝置及方法及使用其之電腦系統
US20020194433A1 (en) Shared cache memory replacement control method and apparatus
CN109416656B (zh) 混合存储器模块
CN108959113A (zh) 用于闪存感知堆存储器管理的方法和系统
US6516387B1 (en) Set-associative cache having a configurable split and unified mode
WO2015041151A1 (ja) キャッシュメモリシステムおよびプロセッサシステム
US7493448B2 (en) Prevention of conflicting cache hits without an attendant increase in hardware
US11126573B1 (en) Systems and methods for managing variable size load units
JP3929872B2 (ja) キャッシュメモリ、プロセッサ及びキャッシュ制御方法
US20020019912A1 (en) Multi-port cache memory
US6324632B1 (en) Processing a data stream
US6862663B1 (en) Cache having a prioritized replacement technique and method therefor
CN103377141A (zh) 高速存储区的访问方法以及访问装置
US10366008B2 (en) Tag and data organization in large memory caches
US6901450B1 (en) Multiprocessor machine and cache control method for providing higher priority to shared cache that is accessed by multiprocessors
CN115168247B (zh) 用于并行处理器中动态共享存储空间的方法及相应处理器
JPH1165925A (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
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: NITAI SOFTWARE CO., LTD.

Free format text: FORMER OWNER: KONINKL PHILIPS ELECTRONICS NV

Effective date: 20120321

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120321

Address after: Delaware

Patentee after: Nytell Software LLC

Address before: Holland Ian Deho Finn

Patentee before: Koninkl Philips Electronics NV