用于基于计数器的应用和其他应用的存储器子系统的制作方法

文档序号:6361991阅读:262来源:国知局
专利名称:用于基于计数器的应用和其他应用的存储器子系统的制作方法
技术领域
本发明大体上涉及可用于下述应用的存储器子系统:这些应用要求大量的计数和类似的计算操作。
背景技术
在有线和无线网络环境中,网络的性能是利用网络分析仪设备来监视的。网络分析仪设备使用计数器来储存与网络流有关的信息以及与网络中的流量(traffic)相关的其他统计量度。这些计数器被用在流量管理、故障调试、网络监视以及各种其他分析和测量功能中。当设备中的计数器的数量很大时,在片上(on-chip)储存计数器的成本和管芯面积变得无法接受。具有缓存算法的片下(ofT-chip)动态随机存取存储器(DRAM)设备可以用来解决这个问题,使得能够以线速率(line-rate)更新这些计数器。但是,使用标准的DRAM设备需要更高的输入/输出(I/O)带宽,需要更高功率来支持更大带宽,并需要更长的读取-更改-写入延时(read-modify-write latency)来支持在储存这些计数器的存储器设备与对这些计数器进行更新的主机设备之间进行的交换。


图1是存储器设备的框图示例,该设备被配置成:响应于从外部主机设备接收的命令,在内部对该存储器设备中储存的数据执行更改操作,作为读取-更改-写入操作序列的一部分。图2是存储器设备中的控制电路的框图示例,该控制电路被配置来为读取-更改-写入操作序列生成控制信号。图3是用于控制信号的信号定时图的示例,这些控制信号被对于读取-更改-写入操作序列而生成,以访问存储器设备中的存储器单元。图4是图示了读取-更改-写入操作序列期间信号和数据流的图表示例。图5是图示了读取-更改-写入操作序列的流程图的示例。图6是图1所示存储器设备中使用的更改电路的框图示例。图7和图8是定时图的示例,这些定时示了更改电路在读取-更改-写入操作序列期间的操作。图9是网络分析器设备的框图示例,该网络分析仪设备包括图1所示的存储器设备。
具体实施例方式MM这里提供了存储器设备和相关技术来对存储器设备中储存的数据进行更改而无需向外部设备发送该数据。该存储器设备可用作独立的存储器,并可用作网络计数器缓存。在该存储器设备处接收命令,以对存储器设备的存储器阵列中的存储器位置处储存的数据进行更改。该命令包括要用来更改该数据的值。该存储器设备从该存储器位置读取数据。从该存储器位置读取的数据由存储器设备中的更改电路基于从该命令获得的值而更改,以产生结果数据。由更改电路产生的结果数据被写入回该存储器位置。由于存储器设备不需要向另一设备(在本中请中称为主机设备)发送从片下存储器阵列读取的数据来更新该数据,所以大大减小了带宽中的输入/输出带宽,允许低功率的存储器设备操作和更低的延时。示例件实施例首先参考图1,标号10示出了存储器设备,该设备被配置来执行读取-更改-写入(Read-Modify-Write)操作。存储器设备10被配置成与主机设备12进行接口,并从主机设备12接收命令以访间存储器设备10中储存的数据。具体而言,存储器设备10被配置成内部地对所储存的数据执行操作(否则这些操作将由主机设备12执行),因而减少存储器设备10需要向主机设备12供应回的数据的量。这降低了存储器设备10与主机设备12之间的输入/输出带宽要求。为此,存储器设备10包括输入/输出接口 13、控制电路14⑴和14 (2)、存储器阵列接口 16以及一个或多个存储器阵列18,存储器阵列18包括被配置来储存数据的多个存储器单元。存储器阵列19作为在多个存储器单元中储存数据的装置。在一种形式中,存储器阵列18包括嵌入式动态随机存取存储器(eDRAM)阵列。存储器阵列18可以是任何DRAM,例如同步DRAM(SRAM)或者当前已知或今后开发的其他类型的存储器储存阵列。存储器阵列18包括存储器单元,这些存储器单元储存存储器设备10中的数据。输入/输出接口 13被配置来通过由标号19所示的总线或其他合适连接件,从主机设备12接收命令,并从存储器设备10向主机设备12供应数据或应答。这样,输入/输出接口 13作为用于接收对存储器阵列19中的数据进行访问的命令的装置。输入/输出接口 13可以在单独的设备上位于存储器设备10自身的外部,也可以与存储器设备10实现在同一个集成电路中。控制电路14(1)和14(2)各自被配置来生成存储器控制信号,以通过存储器阵列接口 16来访问存储器阵列18。图1示出了存储器设备10包括两个控制电路,但这仅仅是一种示例;可以只有一个控制电路,也可以有多于两个控制电路。输入/输出接口 13例如由合适的数字逻辑电路(以及任何支持逻辑电路)来实现,以接收输入的命令和相关联的数据,并输出来自存储器设备10的响应和数据。同样,存储器阵列接口例如由数字逻辑电路(以及任何支持逻辑电路)来实现,以向(一个或多个)存储器阵列18发送命令和接收储存在(一个或多个)存储器阵列18中的数据。每个控制电路14(1)和14(2)被配置成对从主机设备12接收的命令进行解释,并生成存储器控制信号以执行至少一个(更一般地说,K个)交互(transaction),这些交互涉及读取、寻址(Addr)和写入信号,以取回存储器阵列18中的K个存储器位置处的数据和向存储器阵列18中的K个存储器位置写入回由对该数据进行更改操作所得的结果数据。这样,控制电路14⑴被配置来生成K*(读取、寻址、写入)信号,以访问存储器阵列18中的K个存储器位置来取回存储器阵列18中的K个不同存储器位置处的K*(数据)。控制电路14(2)与控制电路14(1)进行同样的工作。在存储器设备10的操作过程中可以有两个控制电路14(1)和14(2)同时对存储器阵列18进行操作的时间,以及这些控制电路之一可以被禁用的时间。如下文中说明的,每个控制电路作为控制装置,该控制装置被配置成从要向存储器阵列18供应的、从存储器阵列18读取数据和向这些存储器阵列写入回数据的命令生成存储器控制信号,并包括用于更改的装置,所述用于更改的装置基于该命令中包含的值来对从存储器阵列18读取的数据进行更改以产生结果数据并把解雇数据写入回存储器阵列18。根据本中请中描述的一种示例,主机设备12供应命令,这些命令包括递增(increment)值以对由相应的存储器位置中储存的数据所表示的一个或多个计数器进行递增。这仅仅是存储器设备10可以执行的多种操作中的一个示例。存储器设备10可以执行的其他操作的非限制性示例包括乘法、除法、减法等。存储器设备10可以被实现为专用集成电路(ASIC)设备。主机设备12可以包括一个或多个ASIC、处理器、以及数字电路和模拟电路的任意组合,这些组合被配置来利用存储器设备10执行所需的功能或应用。取决于主机设备12向存储器设备10请求的操作,存储器设备10用应答(ACK)和/或存储器设备10中储存的数据来作出响应,所述应答例如是一个或多个计数器已被递增。现在参考图2。图2图示了控制电路14⑴和14⑵的框图示例。控制电路14⑴和14⑵具有相同的结构。每个控制电路14⑴和14⑵包括串行-并行转换器电路20、命令缓冲电路22、存储器信号生成器电路24、存储器信号接收器电路26、更改电路28、延迟缓冲电路30以及并行-串行转换器电路32。被图示为控制电路14⑴和14⑵组成部分的所有这些电路例如都由数字逻辑门、寄存器、计数器等,以及任何支持逻辑电路实现,以执行本申请中描述的操作。数字逻辑门包括与门、与非门、或门、异或门,并可用于生成具有所需定时的控制信号以实现读取和写入操作以及对从存储器取回的数据执行操作(例如加法、乘法、减法、除法等)。如下文中说明的,更改电路28作为前述用于更改的装置,基于作为对存储器设备的输入而接收的命令中所包含的值来对从存储器阵列18读取的数据进行更改以产生结果数据。缓冲电路30作为用于缓冲的装置,对由从该命令获得的值所表示的数据进行缓冲。串行-并行转换器电路20在标号21所示的多条线上以串行形式接收比特,其中图中所示的每条线自身的宽度是多个比特。这些比特作为对于串行-并行转换器20的输入,表示从主机设备12向存储器设备10供应的至少一个命令(但是在实际应用中是多个命令)。这些命令可以用于对存储器位置进行访问以取回数据,以及针对相应的存储器位置中储存的数据同时执行多个读取-更改-写入操作。串行-并行转换器对这些命令中的比特进行汇编并把它们储存在命令缓冲电路22中。命令缓冲电路22是储存缓冲器,它耦合到串行-并行转换器20的输出端,并储存由串行-并行转换器20所汇编的比特。命令缓冲器22中储存的比特中的一些表示所要执行的操作(读取、写入、读取-更改-写入等)以及命令中包含的值,这些值要用来对存储器阵列18中的一个或多个存储器位置中储存的数据进行更改操作。命令缓冲器22可以实现成先入先出(FIFO)电路。存储器信号生成器电路24耦合到命令缓冲电路22,并被配置来生成要向存储器阵列18供应的存储器控制信号,这些信号包括读取信号、写入信号、寻址信号等。另外,存储器信号生成器电路24还获得缓冲器22中的命令中所包含的、要用于这些更改操作的任何值(例如用于计数器的递增数据值),并向延迟缓冲电路30供应表示这些值的比特。存储器信号接收器电路26接收从存储器阵列18读取的数据并对其进行临时储存,以用于进一步的处理或者从存储器设备10向主机设备12输出。另外,在完成某些操作(例如读取-更改-写入操作)时,存储器信号接收器电路26向主机设备生成ACK。ACK用来向主机设备12通知:所需的操作已被执行,例如一个或多个计数器已被递增。更改电路28被配置成耦合到存储器信号生成器电路24和存储器信号接收器电路26。更改电路28包括数字逻辑门,这些数字逻辑门被配置来使用表示值的数据对从存储器读取的数据执行各种更改操作中的任意操作,所述值包含于从主机设备12作为向存储器设备10的输入而接收的命令中。例如,更改电路28被配置成执行加法操作。在其他示例中,更改电路28被配置成执行乘法、除法、减法或其他操作。更改电路28通过其执行的更改操作来生成并输出结果数据,并向存储器信号生成器电路24供应结果数据,以将结果数据写入回(一个或多个)存储器位置(上述数据是从该位置读取来的)。延迟缓冲器30是被配置成储存数据比特的储存电路,这些数据比特表示要在作为读取-更改-写入操作的一部分的更改操作中所用的值。另外,在一种示例中,这些比特表示递增值,但是这些比特也可以表示其他值,例如乘数、除数、递减值等。延迟缓冲器30以FIFO设备的形式实现,以向存储器信号接收器电路26输出所储存的值,存储器信号接收器电路然后把从存储器位置读取的数据与数据比特(这些数据比特表示要在更改操作中使用的值)一起向更改电路28输出。具体而言,如根据下文的描述可以理解的,延迟缓冲电路30用来使比特(这些比特表示要在更改操作中使用的值)的输中被延迟,使得更改电路28能够用数据(该数据表示由缓冲器30中储存的值)对从存储器位置读取的数据进行更改,并向存储器信号生成器电路24输出结果数据,以写入回相对于写入信号进行了同步的存储器位置。并行-串行转换器电路32对从存储器设备10作为输出而向主机设备12供应的数据执行串行-并行转换器电路20的逆操作。在标号34所示的多条线中的每一者上承载串行形式的比特,其中,图中所示的每条线自身的宽度是多个比特。尽管对于图2中的存储器设备10的配置示出了使用串行/解串行的输入/输出,但是这仅仅是示例。也可以给输入和输出使用完全并行的接口。本申请中描述的读取-更改-写入技术完全独立于所用的具体输入/输出接口。此外,串行-并行转换器20和并行-串行转换器32也可以在输入/输出接口电路13中而不是控制电路中实现。例如,输入/输出接口电路13可以包括串行器/解串行器电路,该电路对于去往存储器设备10的输入命令以及来自存储器设备10的输出响应和/或数据执行(串行-并行转换器20和并行-串行转换器32的)串行化/解串行化功能。此外,如上文所述,输入/输出接口电路13可以实现在与控制电路和存储器阵列同一集成电路芯片上,也可以实现在分开的集成电路芯片中。现在参考图3,继续参考图1和图2,来描述与存储器设备10内部的读取-更改-写入操作相关联的主要信号的信号定时图。时钟(CLK)信号由标号50示出,并用来对由存储器新哈生成器电路24生成的各种信号进行同步。时钟信号50可以由耦合到存储器设备10 (例如在主机设备12中)的时钟电路芯片生成,或者由存储器设备10由所供应的时钟信号在本地得到。
主机设备12例如在其发送加法命令时发起读取-更改-写入操作,该命令使由存储器设备10中的存储器位置中储存的数据表示的一个或多个计数器递增所指定的递增值。信号55用来表示在存储器设备10处从主机设备12接收了加法命令。图3所示的寻址、读取、写入和数据信号由存储器信号生成器电路24生成。加法操作涉及对存储器设备10中的存储器阵列访问两次:第一次从一个或多个存储器位置读取数据,第二次向这一个或多个存储器位置写入回加法操作的结果。如上文所述,存储器设备10可以对于存储器设备的存储器阵列中的K个不同的存储器位置处储存的数据执行K个同时的/并行的读取-更改-写入操作。例如,时钟信号55速度的速率是250MHz,意味着存储器设备10每个周期能够执行250百万次存储器操作。这样,存储器设备10每个周期能够执行的加法操作的总数是125 X K百万个操作。在一种示例中,加法命令包括地址、循环冗余比特、以及控制信息比特,这些控制信息比特表示要被加到由存储器中储存的数据所表示的值的值,例如递增值。存储器设备中能够储存的计数器的数目取决于存储器阵列18中所用的存储器阵列尺寸。在一种示例中,存储器设备可以储存几百万个64位计数器。正在被寻址的存储器位置的地址Addr由标号60和62示出。该地址第一次被供应给存储器阵列18是在执行读取周期的时候。读取周期是在如标号70所示供应读取脉冲或选通脉冲(strobe)的时候,该地址的供应相对于读取脉冲70进行了所需的时间同步。此时,与标号60处所供应的地址相对应的存储器位置处的数据被从存储器阵列18取回,并在存储器信号接收器电路26处接收。延迟缓冲器30然后向存储器信号接收器电路26输出表示递增值的比特,存储器信号接收器电路接着把从由标号60处供应的地址所指定的存储器位置取回的数据以及来自延迟缓冲器30的值都向更改电路28供应。更改电路28用从该命令获得的值对从该存储器位置读取的数据执行计算以生成结果数据。写入周期是在生成写入脉冲或选通脉冲的时候发生的。该地址也在标号62处以相对于写入脉冲80进行了所需的时间同步被供应给存储器阵列18。结果数据在标号90处被供应给存储器阵列18,以把结果数据写入回存储器位置(数据是在标号60和70所示的读取周期期间从该位置读取的)。存储器信号接收器电路26从存储器阵列18接收通知(数据已被写入回存储器位置),并在标号95处发送ACK信号,该信号将要作为输出而向主机设备12供应。ACK用来向主机通知加法操作(例如计数器递增操作)完成了。存储器信号接收器电路26被配置成:在由存储器信号生成器电路24生成的写入信号发生之前以充分的时间向更改电路28输出从存储器位置读取的数据,使得更改电路28能够用数据(该数据表示延迟缓冲电路30中储存的值)对从该存储器位置读取的数据进行更改,并向存储器信号生成器电路24输出结果数据以写入回相对于该写入信号进行了同步的存储器位置。如上所述,在图3中,对寻址、读取、写入和数据的发信号(signaling)是对于K个不同的存储器位置并行地/同时地执行的,从而使存储器设备10能够在同一时钟周期的时段期间并行地更新K个不同的计数器。在一种示例中,执行读取-更改-写入操作序列所需的时钟周期的数目约为6-10个时钟周期。相比之下,如果主机设备12要执行对存储器设备10中储存的计数器进行更新所需的数学运算,则所需的时钟周期的数目约为30-40。因此,本申请中描述的技术节省了大量时间,以及存储器设备10与主机设备12之间的输入/输出带宽。 另外,由于一些原因,这些技术还降低了存储器设备10的功率消耗。首先,存储器设备的输入/输出执行相同数目的数据更新操作所用的串行器/解串行器(SerDes)的数目减少了。第二,存储器芯片上的更改(例如加法)操作不需要把功率既用于对计数器进行读取又用于将其内容向主机设备输出,因而将经过更新的结果写入回存储器位置。大体上,采用片上更改能力的存储器设备能够把功率消耗降低大约50%,并把对输入/输出端口的带宽要求降低大约60%。对于存储器更新操作,与存储器更新操作(该操作需要把所储存的数据发送到存储器芯片外以由外部设备更新,然后把结果写入回存储器芯片)相比,存储器设备10在延迟方面实现了至少两倍的改进。此外,主机设备无需对于开始读取-更改-写入操作的计数器读取(其中,只发出了读取操作,而尚未提交写入)保持追踪。去往主机设备的接口在这个意义上是完全“干净的”,并在完成了读取-更改-写入之后发送ACK。 现在参考图4,该图以图形方式表示了 K个存储器位置,这些存储器位置的内容由存储器设备10以内部的方式更改。这K个存储器位置(例如储存了表示K个计数器的数据)由标号100(1)-100⑷示出。对于K个存储器位置并行地执行读取周期,从而向存储器阵列18供应K个不同的地址。来自这K个存储器阵列的数据被取回,然后被供应给更改电路以并行地执行K个加法操作,并输出K个结果数据。例如,计数器100(1)是储存了比特图案(pattern) 011011...1ll的存储器位置,该比特图案表示计数器100 (I)的当前计数器值或状态;计数器100 (2)是储存了比特图案111110...101的存储器位置,该比特图案表示计数器100 (2)的当前计数器值或状态,计数器IOO(K)是储存了比特图案101011...011的存储器位置,该比特图案表示计数器IOO(K)的当前计数器值或状态。然后在存储器设备10处接收命令,把5加到存储器位置I处储存的计数器1,把20加到存储器位置处储存的计数器2...并把30加到存储器位置K处储存的计数器K。更改电路28把相应的递增值加到表示相应的计数器的数据,该数据来自这K个存储器位置中的相应一个。来自该加法操作的结果数据然后被写入回针对计数器IOO(I)-1OO(K)的这些存储器位置。转向图5,现在对于执行读取-更改-写入操作序列时由存储器设备10执行的操作200描述流程图。为简单起见,该流程图参照的是对单一存储器位置处的内容进行更改所执行的操作(例如对计数器进行更新),但是应当明白,与结合图4所述一样,若干个这些操作并行地更改多个存储器位置处储存的内容。在步骤210,在存储器设备处接收命令,以对存储器设备的存储器阵列中的存储器位置处的数据进行更改,该命令包括值,该值要被用来对该数据进行更改。该命令包括多个比特,并可以采取多种格式中的任意格式。该命令包括地址和数据,该地址指定所要更新的存储器位置(例如所要更新的具体计数器),该数据被用在对该存储器位置的更新中(例如递增值)。在一种示例中,该命令中的、被称为“数据有效比特”的比特被用来表明该命令承载了更改操作中所要使用的数据。对于正常的写入命令设定该比特,并在控制电路发出相应的写入响应以把更改操作的结果储存回存储器时由控制电路清除(unset)该比特。此夕卜,如果以菊花链配置来使用图1所示类型的多个存储器设备,则该命令的比特还受到分配以标识对于读取-更改-写入操作,要访问这些存储器设备中的哪一个。
在步骤220,该命令中包含的数据被储存在延迟缓冲器中,该数据表示更改操作中所要使用的值(例如递增值)。在步骤230,与该命令中包含的地址相对应的存储器位置处的数据被读取以取回所储存的数据。存储器信号生成器电路24生成读取信号并向存储器阵列18供应该地址以执行读取操作。在步骤240,从该存储器位置读取的数据被基于从该命令获得的值而更改,以产生结果数据。具体而言,在存储器信号接收器电路26处接收从该存储器位置读取的数据。然后,所读取的数据和来自延迟缓冲器的经过缓冲的值被供应到更改电路28,该电路使用该经过缓冲的值来更改从存储器阵列读取的数据。在步骤250,由更改电路28产生的结果数据被写入回该存储器位置。为此,结果数据从更改电路28供应回存储器信号生成器电路24。存储器信号生成器电路24生成写入信号并供应针对该存储器位置的地址以把结果数据写入回该存储器位置。如上所述,操作210-250可以对于多个存储器位置同时执行。在此情形下,接收操作210包括:接收用相应的值同时地对多个存储器位置中的每一者处储存的数据进行更改的命令。缓冲操作220涉及对于对这些存储器位置中相应的存储器位置处储存的东西进行更改所用的多个值进行缓冲。读取操作230涉及从存储器阵列18的多个存储器位置读取数据。更改操作涉及把来自这些存储器位置的数据与从该命令获得的相应的值一起供应给更改电路,并由更改电路用该命令中包含的相应的值对来自这些存储器位置的数据进行更改以产生相应的多个结果数据。在加法操作的情况下,更改操作涉及把从该命令获得的这些值中的一个加到从这些存储器位置中的相应一个所读取的数据。然后,写入操作250涉及把由更改电路输出的这些结果数据写入到这些存储器位置。现在转向图6,现在描述更改电路28的框图示例。更改电路28被配置成处理一些定时管理,这些管理与把更改操作(例如加法运算)的结果递送回对于写入脉冲或选通脉冲进行了同步的存储器阵列相关联。在一种示例中,更改电路28包括更改电路控制器260、寄存器排(bank) 270、275和280、以及一排加法器285。寄存器排270被配置来储存与待决(pending)的读取-更改-写入交互相关联的地址,以及所要执行的新交互(例如读取操作、写入操作等)的地址。例如,寄存器272(1)-272(K)被配置来储存与待决并且尚未完成的这K个读取-更改-写入交互相关联的地址,而寄存器274 (I)-274 (K)被配置来储存新接收但还没有执行的一组交互的地址。寄存器排275包括寄存器276 (I)-276 (K),它们被配置来储存命令中接收到的运算值,例如与所要更新的K个寄存器中的每一者相关联的K个递增值。寄存器排280包括寄存器282 (1)-282 (K),它们被配置来储存从存储器阵列读取的、要用寄存器排275中储存的运算值来更新的数据。这排加法器285包括加法器电路287 (I) -287 (K),它们被配置来把寄存器276 (I) -276 (K)的数据分别加上寄存器282 (I)-282 (K)的数据以产生结果数据,在一种示例中,结果数据被写入回寄存器282 (I)-282 (K),此后被输出到存储器信号生成器电路24以写入回存储器阵列。图6所示的这些寄存器和加法器可以用目前已知的或者此后开发的适于其功能的任何数字逻辑电路来实现。更改电路控制器260由针对图6所示部件之间的数据流和控制操作的合适的数字逻辑电路来构造。下文结合图7和图8来描述信号的定时图,这些信号被生成来对流入和流出更改电路26的数据流进行控制。更改电路28除了读取-更改-写入操作序列之外还执行的一个附加功能是对访问存储器位置的新的交互请求进行处理,这些存储器位置与待决和未完成的读取-更改-写入操作相关联。这样,无论何时从主机设备12接收到命令并由命令缓冲器22转换成一系列交互,与这些新的交互相关联的存储器位置的地址都储存在寄存器274 (I)-274 (K)中。更改电路控制器260把寄存器274 (I)-274 (K)中储存的这些新的交互的地址与寄存器272 (I) -272 (K)中储存的待决读取-更改-写入操作的地址进行比较。当寄存器272 (I)-272 (K)中任一者的地址与寄存器274 (I)-274 (K)中任一者的地址匹配时,控制器260判定为这些新的交互需要被略微延迟,以允许待决的读取-更改-写入操作序列完成并把结果数据写入回存储器阵列。因此,这些新的交互(它们中的至少一项涉及对读取-更改-写入操作序列中也涉及到的存储器位置进行访问)不会过早地访问该存储器位置(也可能是多个位置)并获得非法或过时的数据。这在下述时候尤其有用:当对于一个或多个存储器位置接收了读取命令,而涉及与该读取命令中相同的存储器位置中至少一个位置的读取-更改-写入操作仍然待决的时候。这对于写入命令也成立:该写入命令可能由存储器设备接收,而涉及与该写入命令中相同的存储器位置中至少一个位置的读取-更改-写入操作仍然待决。这种操作特性实现了去往主机设备的前述“清洁”接口,使得主机设备完全独立于(并且不了解)当读取-更改-写入操作序列正被执行的时候对于多个存储器位置的潜在冲突。现在转向图7和图8,现在对更详细地描述了更改电路28的操作的定时图进行说明。在结合图7和图8的说明中也参考了图6。图7图示了读取-更改-写入操作序列期间在更改电路28的输入和输出阶段期间的信号定时。在输入阶段,当地址60的第一实例发生时(如图3所示),在步骤292,从存储器读取数据并储存在寄存器282 (I) -282 (K)中(在图7中标记为数据1),在步骤294,来自主机设备命令的运算数据(例如递增数据)值(在图7中标记为数据2)也被计时(clock)到寄存器276 (I)-276 (K)中。然后,更改电路28中的控制器260生成标号296所示的更改脉冲;在更改脉冲296的下降沿,来自寄存器282 (I)-282 (K)的数据和来自寄存器276 (I)-276 (K)的数据被供应到加法器287⑴-287⑷。来自寄存器282 (I)的数据由加法器287 (I)加到来自寄存器276 (I)的数据,来自寄存器282(2)的数据由加法器287(2)加到来自寄存器276 (2)的数据,等等。现在说明输出阶段。当地址62的第二实例和写入选通脉冲80发生时,结果数据(被储存回寄存器282 (I)-282 (K)中)被计时出去,以写入回存储器阵列。图7示出了输入和输出阶段之间存在一个周期的延时,但这只是示例。输入和输出阶段也可以发生在相同的时钟周期中。图8图示了使用由标号298所示的去/不去(Go/No_Go)控制信号来处理当对于读取-更改-写入操作序列中当前涉及的至少一个存储器位置接收到输入交互时的情形。当更改电路控制器260把寄存器272 (I)-272 (K)的内容与寄存器274 (I)-274 (K)进行比较并且未发现匹配(表明新接收的交互中不存在与待决并且还没完成的读取-更改-写入操作中的存储器位置相重叠的存储器位置)时,它生成关于去/不去信号298的脉冲(表明“去”)。另一方面,当控制器260发现至少一个匹配时,它不生成关于信号298的脉冲,以把下述存储器访问延迟:改访问是对与仍在进行读取-更改-写入操作序列的存储器位置相符的存储器位置进行的。
现在参考图9。图9图示了存储器设备10的应用示例。基于eDRAM的存储器ASIC中的板上的或者内置的读取-更改-写入操作在网络统计收集应用(要求更高密度的片下储存设备)中具有很大价值。因此,在这种应用中,存储器设备10和主机设备12是网络分析仪设备300的一部分。网络分析仪设备300与由标号310所示的网络介质进行接口,该网络介质可以是有线的网络介质、光学的或者无线的。网络分析仪设备300被配置成基于在网络介质310上检测到的流量和其他信号来执行各种测量和统计收集。网络分析仪设备300被配置来对存储器设备10中储存的计数器进行更新。该计数器更新处理是由存储器设备10执行的,该设备使用本申请中描述的读取-更改-写入技术来降低主机设备12与存储器设备10之间的输入/输出带宽要求。存储器设备10的其他应用是在网络路由器设备、交换机设备、网络接口设备、网关设备、桥接设备和在有线或无线网络中转发和切换流量所直接或间接涉及到的任何其他装备中。这样,图9图示了一种组合或者系统(例如由设备300表示),包括在与主机设备12分开的集成电路芯片上实现的存储器设备10 (包括至少一个或多个存储器阵列以及一个或多个控制电路,例如控制电路14(1)/14(2))。主机设备12发送对存储器中的值进行更新(例如把计数器递增)的命令,使得分开的集成电路芯片中的存储器设备10进行更新而无需向主机设备12返回从存储器读取的任何数据以执行更新。总的来说,提供了一种方法,包括:在存储器设备处,接收对数据进行更改的命令,所述数据储存在所述存储器设备的存储器阵列中的存储器位置处,所述命令包括用来对所述数据进行更改的值;在所述存储器设备中,从所述存储器位置读取数据;基于从所述命令获得的值,由所述存储器设备中的更改电路对从所述存储器位置读取的数据进行更改,以产生结果数据;把由所述更改电路产生的结果数据写入回所述存储器位置。另外,还提供了一种设备,包括:存储器阵列,包括被配置来储存数据的多个存储器单元;输入/输出接口电路,被配置来接收命令以访问所述存储器阵列中储存的数据;控制电路,被配置成耦合到所述输入/输出接口电路,并被配置成从所述命令生成存储器控制信号,这些存储器控制信号要被供应到所述存储器阵列以从所述存储器阵列读取数据和向所述存储器阵列写入回数据,所述控制电路包括更改电路,所述更改电路被配置成基于所述命令中包含的值来更改从所述存储器阵列读取的数据以产生结果数据并将所述结果数据写入回所述存储器阵列。此外,还提供了一种设备,包括:用于储存的装置,用于在多个存储器单元中储存数据;用于接收的装置,用于接收对所述用于储存的装置中的数据进行访问的命令;控制装置,用于从要向所述用于储存的装置供应的命令生成存储器控制信号以从所述用于储存的装置读取数据和向所述用于储存的装置写入回数据,所述控制装置包括用于更改的装置,所述用于更改的装置用于基于所述命令中包含的值来更改从所述用于储存的装置读取的数据,以产生结果数据并把所述结果数据写入回所述用于储存的装置。上述说明仅应当认为是示例方式。
权利要求
1.一种方法,包括: 在存储器设备处,接收对数据进行更改的命令,所述数据储存在所述存储器设备的存储器阵列中的存储器位置处,所述命令包括用来对所述数据进行更改的值; 在所述存储器设备中,从所述存储器位置读取数据; 基于从所述命令获得的值,由所述存储器设备中的更改电路对从所述存储器位置读取的数据进行更改,以产生结果数据;以及 把由所述更改电路产生的结果数据写入回所述存储器位置。
2.根据权利要求1所述的方法,其中,接收所述命令的步骤包括:接收被配置成用所述命令中包含的值来使所述存储器设备把表示所述存储器位置处储存的数据的值递增的命令,其中,所述命令中包含的值包括递增值。
3.根据权利要求2所述的方法,还包括:把从所述存储器位置读取的数据与所述递增值一起供应给所述更改电路 ,其中,进行所述更改的步骤包括:把所述递增值加到由从所述存储器位置读取的数据所表示的值,从而用所述递增值来递增由所述存储器位置处储存的数据所表示的计数器。
4.根据权利要求1所述的方法,其中,进行所述接收的步骤包括:与对多个存储器位置中的每一者处储存的数据进行更改的命令同时地接收相应的值,其中,进行所述读取的步骤包括:从所述存储器阵列中的多个存储器位置读取数据。
5.根据权利要求4所述的方法,其中,进行所述供应的步骤包括:把来自所述多个存储器位置的数据与从所述命令获得的相应的值一起供应给所述更改电路,其中,进行所述更改的步骤包括:用所述命令中包含的相应的值来更改来自所述多个存储器位置的数据,以产生相应的多个结果数据。
6.根据权利要求5所述的方法,其中,进行所述写入的步骤包括由所述更改电路向所述多个存储器位置的所述多个结果数据。
7.根据权利要求6所述的方法,其中,进行所述更改的步骤包括:把从所述命令获得的所述多个值中的一者加到来自所述多个存储器位置中相应一者的数据。
8.根据权利要求1所述的方法,还包括:把表示从所述命令获得的值的数据储存在缓冲器中,并在从所述存储器位置读取所述数据之后向所述更改电路供应表示所述值的所述数据,进行所述写入的步骤包括:把所述结果数据供应回相对于写入信号进行了同步的存储器位置。
9.一种设备,包括: 存储器阵列,包括被配置来储存数据的多个存储器单元; 输入/输出接口电路,被配置来接收命令以访问所述存储器阵列中储存的数据;以及 控制电路,被配置成耦合到所述输入/输出接口电路,并被配置成从所述命令生成存储器控制信号,这些存储器控制信号要被供应到所述存储器阵列以从所述存储器阵列读取数据和向所述存储器阵列写入回数据,所述控制电路包括更改电路,所述更改电路被配置成基于所述命令中包含的值来更改从所述存储器阵列读取的数据以产生结果数据并将所述结果数据写入回所述存储器阵列。
10.根据权利要求9所述的设备,其中,控制电路包括存储器信号生成器电路和存储器信号接收器电路,所述存储器信号生成器电路被配置来生成要向所述存储器阵列供应的存储器控制信号,所述存储器信号接收器电路被配置来接收从所述存储器阵列读取的数据,所述存储器控制信号包括读取信号、写入信号和地址。
11.根据权利要求10所述的设备,还包括缓冲器电路,所述缓冲器电路被配置来储存表示从所述命令获得的值的数据,其中,所述更改电路被配置来用表示所述值的所述数据更改从所述存储器阵列读取的数据以产生所述结果数据。
12.根据权利要求11所述的设备,其中,所述更改电路被配置来把从所述命令获得的值加到由从所述存储器阵列读取的数据所表示的值,以产生所述结果数据。
13.根据权利要求11所述的设备,其中,所述缓冲器电路被配置成耦合到所述存储器信号生成器电路和所述存储器信号接收器电路,其中,所述存储器信号接收器电路被配置来在由所述存储器信号生成器电路生成的写入信号发生之前以充分的时间向所述更改电路输出从所述存储器位置读取的数据,使得所述更改电路能够用表示所述缓冲器中储存的值的数据来更改从所述存储器位置读取的数据并向所述存储器信号生成器电路输出所述结果数据以写入回相对于所述写入信号进行了同步的存储器位置。
14.根据权利要求9所述的设备,其中,所述存储器阵列的存储器位置中储存的数据表示计数器的状态,其中,所述更改电路被配置来把由所述存储器位置中储存的数据所表示的值递增从所述命令获得的值。
15.根据权利要求9所述的设备,其中,所述输入/输出接口电路被配置来对于进入的命令和发出的响应和/或数据执行串行化/解串行操作。
16.根据权利要求9所述的设备与被配置来供应所述命令的主机设备的组合,其中,所述存储器阵列和控制电路在与所述主机设备分开的集成电路芯片中实现。
17.—种设备,包括: 用于储存的装置,用于在多个存储器单元中储存数据; 用于接收的装置,用于接收对所述用于储存的装置中的数据进行访问的命令;以及 控制装置,用于从要向所述用于储存的装置供应的命令生成存储器控制信号以从所述用于储存的装置读取数据和向所述用于储存的装置写入回数据,所述控制装置包括用于更改的装置,所述用于更改的装置用于基于所述命令中包含的值来更改从所述用于储存的装置读取的数据,以产生结果数据并把所述结果数据写入回所述用于储存的装置。
18.根据权利要求17所述的设备,其中,所述控制装置包括用于缓冲的装置,所述用于缓冲的装置用于对表示从所述命令获得的值的数据进行缓冲,所述用于更改的装置被配置来用表示所述值的所述数据对从所述存储器阵列读取的数据进行更改以产生所述结果数据。
19.根据权利要求18所述的设备,所述控制装置包括存储器信号生成器电路和存储器信号接收器电路,所述存储器信号生成器电路被配置来生成要向所述用于储存的装置供应的存储器控制信号,所述存储器信号接收器电路被配置来接收从所述存储器阵列读取的数据,所述存储器控制信号包括读取信号、写入信号和地址。
20.根据权利要求19所述的设备,其中,所述用于缓冲的装置被配置成耦合到所述存储器信号生成器电路和所述存储器信号接收器电路,其中,所述存储器信号接收器电路被配置来在由所述存储器信号生成器电路生成的写入信号发生之前以充分的时间向所述更改电路输出从所述存储器位置读取 的数据,使得所述更改电路能够用表示所述缓冲器中储存的值的数据来更改从所述存储器位置读取的数据并向所述存储器信号生成器电路输出所述结果数据以写入回相对于所述写入信号进行了同步的存储器位置。
21.根据权利要求17所述的设备,其中,所述用于更改的装置包括下述电路:该电路被配置来把从所述命令获得的值加到由从所述存储器阵列读取的数据所表示的值,以产生所述结果数据。
22.根据权利要求17所述的设备,其中,所述用于储存的装置的存储器位置中储存的数据表示计数器的状态,其中,所述用于更改的装置被配置来把由所述存储器位置中储存的数据所表示的值 递增从所述命令获得的值。
全文摘要
本发明提供了存储器设备和有关技术来对存储器设备中储存的数据进行更改而无需向外部设备发送改数据。在存储器设备处接收对存储器设备的存储器阵列中的存储器位置处储存的数据进行更改的命令。改命令包括要用来更改该数据的值。存储器设备从存储器位置读取数据。从存储器位置读取的数据由存储器设备中的更改电路基于从该命令获得的值而更改以产生结果数据。由更改电路产生的结果数据被写入回存储器位置。由于存储器设备不需要在片下向本申请中称为主机设备的另一设备发送从存储器阵列读取的数据,大大减小了带宽的输入/输出带宽,允许有更小功率的存储器设备操作和降低延时。
文档编号G06F12/00GK103155041SQ201180049025
公开日2013年6月12日 申请日期2011年4月11日 优先权日2010年10月11日
发明者莎达博·纳扎, 麦纳克·森, 温·L·胡, 阿南达·沙赫 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1