使用多端口存储器的体系结构、装置、系统及其使用方法 相关申请
本申请要求2003年3月13日申请的美国临时申请No.60/454,443的权益,在此将其整体结合作为参考资料。
【技术领域】
本发明一般涉及多端口存储器领域,更具体地说,本发明的实施例涉及使用多端口存储器在网络中进行数据通信的体系结构、系统和方法。
背景技术
为了能够迅速地从一个或多个数据源将数据传送到多个目的地中的任何一个,在网络中、通常是在交换装置中使用存储器。图1示出一种传统的多端口存储器体系结构10,包括存储阵列20、端口30-37、先进先出存储(FIFO)缓冲器40-47和多路复用器54。各个端口30-37从网络(例如一以太网设备)接收串行数据,并且将其转换为m位宽的并行数据。在一个例子中,m是8。在其被存储到存储阵列20之前,这一m位宽的并行数据被临时放置在一个相应的FIFO缓冲器40-47中,该相应的FIFO缓冲器40-47也起到时间域变更缓冲器的作用。存储阵列20具有一个写端口22和一个读端口24,数据经由这些端口而分别在该阵列20的各存储单元中往返传送。由于写总线50和读总线52环绕存储阵列20,每个FIFO缓冲器40-47可以独立地与存储阵列20交互作用。每一个FIFO缓冲器40-47也被配置用于将串行数据转换为并行数据,在一个例子中,其将字节串行数据转换为字节并行数据。由于每个FIFO缓冲器40-47有其自身对存储阵列20的专用写总线,而写总线50为(m*n)至(8m*n)位宽,故每个总线为m*n位宽,使得缓冲器40-47的其中之一能够与存储阵列20通信。由于存储器输入端口22也是m*n位宽,多路复用器50选择其中一个专用的FIFO到存储器写总线,以将数据从该FIFO写入存储器20中。读总线52从存储器20将m*n位宽的数据输出到所有的FIFO缓冲器40-47。传递给所有的FIFO缓冲器40-47的一个多位控制信号确定FIFO缓冲器40-47中的哪一个缓冲器将数据写入其存储单元中,以便随后经由相应的端口30-37对外传送。
端口30-37典型地以例如大约1GHz地网络速度工作。但是,存储阵列20典型地以例如100-200MHz的显著更慢的速度工作。因此,体系结构10需要用FIFO缓冲器临时存储要进入或者退出存储阵列20的数据。但是,FIFO缓冲器40-47典型地被设置在端口30-37附近,由于总线50和52的负载技术要求(例如必须克服或者控制总线50和52的固有电容、电阻和/或阻抗的电流和/或电压),使得FIFO缓冲器40-47和存储阵列20的有效运行速度受到了限制。因此,为了改善使用图1所示体系结构时的处理量,人们必须提高存储器速度,或者是提高带宽(即携带数据往返于存储阵列20的总线宽度)。
但是,对于体系结构10的最大处理量存在物理限制。在任何一种给定的处理技术中,存储器只能运行得这么快,而由于存储器控制信号的内负荷,提高存储器的宽度限制了其速度。增加存储器的外部宽度导致增加电路小片面积和电路小片成本。在图1的例子中,当所有的端口30-37以1Gbit/秒工作而m为8的时候,该8位字节的数据由FIFO40-47以125MHz的速度接收。该数据是全双向的,因此对于每个端口来说,需要在每个方向上以125MHz的速度处理8位数据。因此,存储器20必须能够每个周期以125MHz的速度处理(8个端口*8位*2个方向=)128位数据。在一个24端口的体系结构中,存储器20必须能够以125MHz的速度处理384位的数据。由于在存储器速度和/或存储器总线尺寸(宽度和/或长度)上有限制,制约了该标准存储阵列20的处理量,故希望有其他方案。
因此,需要提高多端口存储器的运行速度,以便满足对于提高网络速度和高度网络交换灵活性的不断增长的需求。
【发明内容】
本发明的实施例涉及多端口存储器体系结构、系统及其使用方法。该多端口存储器体系结构一般包括:(a)一个存储阵列;(b)多个端口,其被配置用于接收和/或传送数据;和(c)多个端口缓冲器,其各自被配置用于对一个或多个端口传送数据和/或从上述端口接收数据。而且上述各组件均被配置用于:(i)在第一公共总线上将数据传送到所述存储阵列,和(ii)在第二公共总线上从所述存储阵列接收数据。一般来说,所述系统和网络转换开关所包括的组件实际运用了此处公开的一个或多个本发明的概念。
所述写方法通常包括以下步骤:(1)将串行数据转换为n位宽的并行数据,n位数据构成一个字;(2)缓冲该n位宽并行数据的k个字长的数据块;和(3)大体上同时将该k*n位的数据写入存储器中。本发明还涉及从存储器读取数据的方法,包括步骤:(1′)大体上同时将k*n位的数据从存储器输出到k*n位宽的总线上;(2′)将该k*n位的数据转换为n位宽的并行数据;和(3′)将该n位宽的并行数据转换为要从存储器外部读取的串行数据。本发明还涉及一种在网络中传送数据的方法,其包括对存储器进行读取和写入的各种本发明的方法的一个或多个步骤的组合。
有利的是,本发明通过使端口缓冲器与主存储器紧密相连,降低了在数据通信时、尤其是在分组网交换时的等待时间,从而能够方便地:(1)经由相对长的存储器读和写路径段来使用点对点通信,和(2)在存储器读和写路径中排除FIFO(先入先出)存储器。因此,本发明总的来说还减少了路由拥塞并减小了电路小片尺寸,当使用标准的基于小区的设计技术时尤其如此。芯片内从结合区(bond pad)到端口缓冲器的点对点通信,更进一步减少了附加的相应线路,并且反之亦然。通过使端口缓冲器与主存储阵列紧密相连,本发明有利地降低了存储器读总线和写总线中的阻容(RC)成分,更进一步提高了数据传输速度和吞吐量。与此相反的是,图1所示的路由结构相对较为复杂,并且耗用了更大的芯片面积。
通过下面对优选实施例的详细描述,本发明的上述优点和其他优点将变得显而易见。
【附图说明】
图1是一个示意图,其展示出常规的多端口存储器体系结构。
图2是一个示意图,展示出本发明的多端口存储器体系结构的一个实施例。
图3是一个示意图,展示出本发明的多端口存储阵列的一个优选实施例。
图4是一个示范性的双重缓冲端口缓冲器的方框图。
图5是一个示范性的单重缓冲端口缓冲器的方框图。
图6是一个根据本发明的示范性端口缓冲器写操作的时序图。
图7是根据本发明的第二个示范性端口缓冲器写操作的时序图。
图8是一个根据本发明的示范性端口缓冲器读操作的时序图。
图9是本发明的示范性存储块写操作的时序图。
图10是根据本发明的示范性存储块读操作的时序图。
图11是根据本发明的第二个示范性存储块读操作的时序图。
图12是根据本发明的示范性并行写和读寄存器操作的时序图。
【具体实施方式】
现在将详细介绍本发明的优选实施例,其中例子以附图说明。虽然本发明将结合优选实施例描述,但应明白,这些实施例并非意在限制本发明。相反地,本发明意欲覆盖那些包括在由所附权利要求限定的处于本发明的精神和范围之内的替换、修改和等效方案。此外,在以下对本发明的详细描述中,会说明许多特定的细节,其目的是为了便于彻底理解本发明。但是,对于一个本领域技术人员来说显而易见的是,无需这些特定的细节即可以实施本发明。此外,本说明书未详细描述公知的方法、步骤、组成部分和电路,其目的是避免使本发明的各方面变得难以与之区分。
下面依据在计算机、处理器、控制器和/或存储器内的操作、步骤、逻辑块、功能块、处理,以及其他有关数据位、数据流或者波形操作的符号表示来给出某些部分的详细说明。这些描述和表示通常是由那些数据处理领域的技术人员使用的,借以有效地将他们的工作实质表达给其他本领域技术人员。在此处(并且也是在通常意义上)认为操作、步骤、逻辑块、功能、处理等等是一种步骤或者命令的自相一致的序列,产生想要的和/或预期的结果。这些步骤通常包括对物理参数的实际操作。尽管并非一定如此,但通常这些参数采用电、磁、光或者量子信号的形式,它们能够被存储、传送、组合、比较,及在计算机或者数据处理系统中受到其他操作。主要由于公共用途的原因,已经证明有时用位、波、波形、数据流、值、成分、码元、字符、项、数字等等表示这些信号是方便的。
但是应考虑到,所有上述术语和类似术语均与相应的物理参数有关,并且仅仅是施加于这些参数上的适宜标记。除非具体地指明和/或根据下面论述显而易见,否则应理解,在通篇本发明申请文件的讨论中,均利用诸如“处理”、“操作”、“估计”、“计算”、“确定”、“操作”、“变换”、“显示”等等术语指计算机或者数据处理系统、或者类似的处理设备(例如电子、光学、或量子计算或者处理设备)的动作和处理过程,其操纵和变换表现为物理(例如电子)量的数据。以上术语指的是处理设备的动作和过程,其将在一系统或者体系结构的组成部分内的物理参数操作或者说变换为其他数据,该其他数据类似地表示在相同或者不同的系统或者体系结构的其他组成部分内的物理参数。
此外,为方便和简明起见,术语“时钟”、“时间”、“速度”、“周期”和“频率”在本说明书中可在某种程度上互换使用,但是通常给出其本领域内公认的含义。此外,为方便和简明起见,术语“数据”、“数据流”、“信号”、“波形”和“信息”可以互换使用,同样,术语“连接到”、“耦合”、“与...相连”、“与...通信”(其可能涉及一个直接或者间接链路或者信号通路)可互换使用,但是这些术语通常也给出其本领域内公认的含义。
本发明涉及一种多端口存储器体系结构,和包括该体系结构的系统及其使用方法。所述多端口存储器体系结构通常包括:(a)一个存储阵列;(b)被配置用以接收和/或传送数据的多个端口;和(c)多个端口缓冲器,每个端口缓冲器被配置用以对一个或多个所述端口传送数据和/或从一个或多个所述端口接收数据,并且全部端口缓冲器被配置用于:(i)在第一公共总线上将数据到传送存储阵列,和(ii)在第二公共总线上从存储阵列接收数据。本发明的另一方面涉及网络交换机、系统和网络,它们通常包括本发明的体系结构和/或实施了在此处描述的一个或多个本发明的概念。
本发明的再进一步的方面涉及从存储器读取和/或对存储器写入的方法。所述写入方法通常包括以下步骤:(1)将串行数据转换为n位宽的并行数据,n位数据构成一个字;(2)缓冲由该n位宽的并行数据构成的k个字长的数据块;和(3)大体上同时将该k*n位的数据写入存储器之内。本发明还涉及从存储器读取数据的方法,其包括以下步骤:(1′)大体上同时将k*n位的数据从存储器输出到一个k*n位宽的总线上;(2′)将该k*n位的数据转换成n位宽的并行数据;和(3′)将该n位宽的并行数据转换成要从存储器外部读取的串行数据。本发明还涉及一种在网络中传送数据的方法,包括出自本发明的对存储器写入和从存储器读取的各方法的一个或多个步骤的组合。
以下将就示范性的实施例,从其各个不同的方面更详细地解释本发明。
一种示范性的存储器体系结构
在一个方面看,本发明涉及一种多端口存储器体系结构,其通常包括:(a)一个存储阵列;(b)多个端口,该多个端口被配置用于接收和/或传送数据;和(c)多个端口缓冲器,每个端口缓冲器均被配置用于对实施一个或多个端口传送数据和/或从该一个或多个端口缓冲器接收数据,并且全部端口缓冲器均被配置用于:(i)在第一公共总线上将数据块传送到所述存储阵列,和(ii)在第二公共总线上从该存储阵列接收该数据块。
图2展示了本发明的多端口存储器体系结构的第一个示范性的实施例100,其包括存储阵列110、端口缓冲器120-127、端口130-144、并行读和写寄存器141-142以及“窥探”寄存器140。其中明显的是没有图1中的FIFO存储器。端口缓冲器120-127通常包括一个或多个寄存器,或者成组的触发器、锁存器或者寄存器,它们被配置用于从端口和存储阵列110接收并行数据,以及将并行数据提供给端口和存储阵列110。数据是在公用存储器写总线150a和150b,以及在公用存储器读总线155a和155b上,在端口缓冲器120-127和存储阵列110之间交换的。
在本发明的体系结构中,存储阵列是常规的,并且可以包括多个存储器子阵列。这些子阵列可以包括存储器的一个或多个行、列、块或者页,页是一种优选的实施方案(即所谓“多端口页模式存储器”或称为MPPM)。每一个存储器行、列、块和/或页均可借助于唯一的对应于该行、列、块和/或页的存储器地址来识别和/或访问。在一个优选实施例中,传送于存储阵列110和端口缓冲器120-127之间的每个数据块包括一个数据页。典型地,存储阵列110的最小密度是256kb或者1Mb。而存储阵列110的最大密度没有限制,实际上,一般的最大密度大约是32Mb或者128Mb。
在存储阵列110中的存储单元的特性也没有特别的限制,并且可以包括锁存器、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、磁性随机存取存储器(MRAM)、电可擦可编程只读存储器(EEPROM)和闪速存储器,不过出于简单、速度和低功耗方面的考虑,锁存器是优选的。存储阵列110也可以是同步或者异步的,但是出于速度和定时方面的考虑,同步存储器是优选的。
在本发明的体系结构中,端口缓冲器120-127可以被认为与存储阵列110“紧密相连”。实质上,“紧密相连”的意思是端口缓冲器120-127对存储阵列110与它们对端口130-145相比更为接近,而且存储器总线150a、150b、155a和155b被设计成可降低RC成分或者将之减到最小,该RC成分诸如有总线长度(对应于电阻)和/或总线中相邻金属线之间的寄生电容。虽然端口缓冲器120-127被显示处于存储阵列110的不同侧,且端口130-144被显示处于端口缓冲器120-127的不同侧,但可将端口缓冲器120-127设置在阵列110的一侧(例如参见图3),并且可将端口130-144设置在端口缓冲器120-127的一侧。此外,在端口缓冲器120-127和存储阵列110之间的通信最好不要受到与存储阵列“紧密相连”的端口缓冲器内的时钟电路单元(除了例如在端口缓冲器本身或者存储阵列本身内的锁存器和/或寄存器之外)延迟。
在本发明的多端口存储器体系结构中,端口缓冲器的数目可以是2或2以上、3或3以上、或者4或4以上的任何整数。在某些实施例中,在体系结构中可能有(2x-d)个端口缓冲器,x为至少是3的整数,并且在x为从4至8(例如5或者6)的整数的各种实施例中,d为0或者是(2x-1-1)或者更小的整数。d的值可以通过与端口缓冲器配合的并行寄存器(例如其具有端口缓冲器的地址)的数目而确定,但是这些寄存器提供不同的功能,诸如“窥探”寄存器140和/或并行读和写寄存器141-142。独立地,相应端口的数目通常是2或3以上、3或3以上、或者4或4以上,并且在某些实施例中,可以是(2x-d),其中x和d均如上所述。在一个实施例中,有10个端口。端口和端口缓冲器最好是有1∶1的关系,虽然其不一定是这种情况:每个端口仅与单个端口缓冲器通信(或者反之亦然,即所谓的“专用”端口或者端口缓冲器)。
现在参考图4,端口缓冲器可以包括读取部分250i和写入部分240i。读取部分250i和写入部分240i各自可以包括多个输入242a-242o、244a-244o、252a-252o,以及254a-254o,它们可各自依次包括一个或多个数据存储单元。数据存储单元是一种常规的存储单元,其被配置用于存储一位数据,并且可以包括SRAM单元、DRAM单元、MRAM单元、EEPROM单元和/或闪速存储器单元,不过出于速度和低功耗方面的考虑,SRAM是优选的。
在优选的实施例中,读取部分250i和写入部分240i各自独立地包括a*(2y+b)个输入,这里a是线路的数目或者输入的行的数目(例如写入线242和/或244),2y是在一个线路或者一行中输入的数目,y是至少为3的整数,而b是0或者是(2y-1)或更小的整数。在某些实施例中,b是0而y是从4至8的整数,在特定的实施例中,y是5或者6。
返回参考图2,在本发明的体系结构中,存储器读和写总线150a、150b、155a和155b可以各自具有k*n位的宽度,这里k是在一个端口缓冲器线路或者行中的输入的数目,而n是在一个输入中数据位的数目。如上所述,k可以是(2y+b),其中y和b也是如上所述。因此,公用存储器总线可以具有n*(2y+b)位的宽度。在某些实施例中,n是(2p+c),这里p是从2至7的整数(例如从3至6),并且c是0或者(2p-1)或更小的整数。在一个实施例中,c是0。这实际上使整个数据块(这里数据块是在如图4所示的端口缓冲器线路222、224、226或者228中的数据)能够大体上同时被写入存储阵列110或者从存储阵列110读取。在优选实施例中,n也是总线的宽度,被配置用于在端口及其相应的端口缓冲器之间交换数据。上述的总线可以包括二个独立的单向总线(例如在图1中的m位宽的总线)。
返回再次参考图2,存储器读和写总线150a、150b、155a和155b可以被认为是“共用的”总线,因为它们是为多个端口缓冲器所共用的,并且在其整个长度上具有恒定的位宽。例如端口缓冲器120-123各自有相同数量的输出到存储器写入总线150a上,并有来自存储器读总线155a的相同数量的输入。因此,从存储阵列110读取到存储器读总线155a上的数据可以被锁存进任何一个端口缓冲器120-123中(或者甚至是全部端口缓冲器中)。
在本发明的体系结构中,端口缓冲器可以是单重缓冲的(例如参见图5),在此情况下,读取部分包括第一读出线而写入部分包括第一写入线;或者是多重缓冲的(例如参见图4的双重缓冲实施例),在此情况下,读取部分包括多个读出线而写入部分包括多个写入线。例如一个双重缓冲的体系结构包括第一和第二读出线以及第一和第二写入线;一个三重缓冲的体系结构包括第一、第二和第三读出线以及第一、第二和第三写入线;一个四重缓冲的体系结构包括第一、第二、第三和第四读出线以及第一、第二、第三和第四写入线,等等。在任何一种结构中,写入部分可以进一步包括:(i)一个多路分解器258,其被配置用于从相应的端口选择其中一个输入以便储存数据(例如244a-244o),和/或(ii)一个或多个控制信号,用以选择其中一个写入线以便从端口缓冲器将数据传送到存储阵列。现在仅参考图4,在多缓冲结构中(例如双重缓冲端口缓冲器220i),读取部分可以进一步包括:一个多路复用器256和/或一个或多个控制信号,它们被配置用于选择一个读出线以将数据输出到相应的端口。
本发明的体系结构能够以各种各样的速度和/或在时间域上处理和/或传送数据。例如,所述存储阵列可以工作于第一频率,而每个端口可以独立地工作于第二频率,第二频率大于或者小于第一频率。例如返回参考图2,在端口130-144中的接收机或者发射机可以以大约10MHz、100MHz、1GHz、大约2GHz、或者大约3.125GHz的速度接收或者传送数据。此外,每个端口可以工作在一个与其他端口的工作频率无关的频率上。但是,虽然端口缓冲器120-127不一定工作在与存储阵列110相同的频率上,但存储阵列110和端口缓冲器120-127通常工作在从100MHz至400MHz的频率上。此外,虽然存储阵列110和端口缓冲器120-127可以彼此相对同步地工作,但端口130-144中每一个相对于以下装置异步工作:(i)存储阵列110和端口缓冲器120-127,和(ii)其他端口。因此,端口缓冲器120-127在每个端口区(port domain)和存储区(memory domain)之间独立地起时间域缓冲器(或开关)的作用。
继续参考图2,在更进一步的实施例中,本发明的存储器体系结构更进一步包括:(i)并行读寄存器140和并行写寄存器141;和/或(ii)只读型“窥探”寄存器142。并行读寄存器140是一个冗余寄存器,其用作端口缓冲器的读取寄存器(例如在图4中的端口缓冲器读取部分250i)。如本领域技术人员所公知的,当原来的读取寄存器有硬件故障时,通常通过以冗余读取寄存器地址代替原来的读取寄存器地址,或者通过重新布设往返于原来的读取寄存器的总线(典型地通过切断保险丝),而使得冗余读取寄存器代替原来的读取寄存器。冗余读取寄存器可以在原来的读取寄存器中临时存储一份数据,以便在原来的读取寄存器的下游出现一个处理错误时,迅速地替换该数据。因此,并行读寄存器140(图2)具有一种通常与端口缓冲器读取部分250i(图4)类似或者相同的体系结构。同样,并行写寄存器141(图2)是一个冗余写寄存器,其用作端口缓冲器的写寄存器(例如在图4中的端口缓冲器读取部分240i),并且通常具有与之类似的体系结构和功能。由于并行的读和写寄存器140-141的数据宽度可以是存储阵列110的总宽度,该并行的读和写寄存器140-141可以起端口或者数据处理单元作用,从而可以得益于比使用标准端口(即由一个标准端口缓冲器120-127缓冲的)所能获得的更大带宽。在存储器的BIST(内置自检)期间,并行读和写寄存器140-141还可以被用于对存储器进行快速访问。
只读“窥探”寄存器142(图2)被配置用于存储一份要写入主存储器(例如存储器110)中的数据。为便于某些处理操作,窥探寄存器142可以更进一步包括处理逻辑,或者被连接到外部处理逻辑,诸如分组或者帧标题处理逻辑(例如目标地址,源地址,帧类型等等),从而可以对该数据进行后续修改和/或在包括该存储器的网络中交换判决。用于执行上述的修改和/或转换的附加逻辑可以被设置在一个包括本发明的多端口存储器的IC中的其他地方,或者可以被设置在一个紧邻该存储器的协处理器IC中(例如在一个共用的基底或者印制电路板上)。因此,窥探寄存器142有效地使多端口存储器100免于拥有多组各自对应于一个端口缓冲器的处理逻辑,在没有专用和/或冗余的寄存器用于上述操作的情况下,在涉及分组或者帧处理的应用中,这将是必要的。
一个示范性的分组网交换、系统和网络
就本发明的另一方面来看,网络交换机、系统和网络通常包括那些包含在此处公开的一个或多个本发明概念的体系结构。例如网络交换机即可以包括本发明的多端口存储器体系结构。在优选实施例中,所述网络交换机实现于单个集成电路上。
如上所述,本发明的一个优点是:在端口和主存储器之间的缓冲数据的FIFO缓冲器成为不必要的,从而减少了专用于FIFO主存储器路由的IC面积,且(理想地)提高了通过IC的数据传输速度。因此,本发明的网络交换机可以包括多个端口缓冲器,其各自:(i)沿着第一数据通路将数据传送到相应的端口,和(ii)沿着第二数据通路从该相应的端口接收该数据,其中所有这些数据通路均不包含先进先出(FIFO)存储器。
在进一步的实施例中,所述系统可以包括一种端口,其被配置用于将来自网络的串行数据转换为并行数据以便在网络交换机中处理,和/或将来自网络交换机的并行数据转换为串行数据以用于网络。在大多数实施例中,该系统端口是如上所述的存储器体系结构端口,但是在某些实施例中,该系统端口可以是一个独立的端口,其被配置用于将数据向外传送到一个集成电路(IC),该集成电路(IC)包括所述存储器体系结构和发射机。因此,所述系统可以进一步包括:(i)至少一个端口(并且最好是多个端口),包括一个发射机,该发射机被配置用于将串行数据传送到外部接收机;和(ii)至少一个端口(并且最好是多个端口),包括一个接收机,该接收机被配置用于接收外部产生的串行数据(例如来自一个外部发射机的串行数据)。
本发明进一步涉及一种网络,其包括至少一个本发明的系统,以及多个存储器或者数据通信装置,每个该装置均可通信地连接到所述系统。在其他实施例中,所述网络可以包括:(a)多个本发明的系统,其可以是可通信地彼此耦合和/或彼此级联;和(b)多个存储器或者通信装置,其中每个存储器或者通信装置可通信地耦合到至少一个所述系统。在一个实施例中,每个装置可通信地耦合到一个唯一的系统。所述网络可以是任何种类已知的网络,如一个分组交换网络。
示范性的方法
本发明进一步涉及将数据写到存储器的方法,包括以下步骤:(a)将串行数据转换为n位宽的并行数据,n位数据构成一个字;(b)缓冲该n位宽的并行数据构成的k个字长的块;和(c)大体上同时将该k*n位的数据写入存储器内。本发明还涉及从存储器读取数据的方法,包括以下步骤:(1)大体上同时从该存储器将k*n位的数据输出到k*n位宽的总线上;(2)将该k*n位的数据转换成n位宽的并行数据;和(3)将该n位宽的并行数据转换为要从该存储器外部读取的串行数据。本发明还涉及一种在网络中传送数据的方法,包括在上述写和读方法中的各步骤的组合。
在所述写方法的一个实施例中,缓冲可以包括将具有n位宽的并行数据的k个字顺序地写入k数据存储单元内。在所述读和/或写方法的进一步的实施例中,将串行数据转换为n位宽的并行数据的步骤可以在第一频率上实施,而缓冲步骤在第二频率上、且大体上同时写k*n位数据的步骤在第三频率上实施,第一频率与第二和第三频率两者相同或者不同。正如以上讨论的,第一频率可以大于或者小于第二和第三频率。但是,第三频率通常大体上等同于或者高于第二频率。
所述写数据的方法可以进一步包括步骤:(i)识别多个缓冲器地址中的一个缓冲器地址,其中该多个缓冲器地址用于缓冲n位宽的并行数据的k个字长的数据块;(ii)识别多个存储器地址中的一个存储器地址,该多个存储器地址用于大体上同时将所有k*n位的数据写入存储器内;(iii)接收串行数据。
本发明进一步包括一种在网络中传送数据的方法,包括:本发明的将数据写到存储器的方法,以及大体上同时从该存储器中读取k*n位数据的方法。如人们可能期望的,在一个优选实施例中,大体上同时读取k*n位数据的步骤包括:将该k*n位的数据缓冲为具有n位宽数据的k个字,并且可以进一步包括:将该n位宽的数据转换为要从该存储器外部读取的串行数据。
从存储器读取数据的所述方法通常包括以下步骤:(1)大体上同时从该存储器将k*n位的数据输出到一个k*n位宽的总线上;(2)将该k*n位的数据转换为n位宽的并行数据;和(3)将该n位宽的并行数据转换为要从存储器外部读取的串行数据。在优选实施例中,将k*n位的数据转换为n位宽并行数据的步骤包括:缓冲具有n位宽数据的k个字,并且该缓冲步骤可以包括:在k个寄存器中存储该具有n位宽数据的k个字,其中每个寄存器具有n个数据存储单元(其中k和n如上所述)。换句话说,在所述读取方法中,将k*n位的数据转换为n位宽的并行数据包括:将数据作为k个字加以缓冲,该k个字具有n位宽的数据。在一个优选实施例中,将k*n位的数据转换为n位宽的并行数据的步骤进一步包括:顺序地将具有n位宽数据的这k个字移动到一个n位宽的总线上。如上所述,将n位宽的并行数据转换为串行数据的步骤可以在第一频率上实施,将k*n位的数据转换为n位宽的并行数据的步骤可以在第二频率上实施,而大体上同时输出k*n位数据的步骤可以在第三频率上实施,第一、第二和第三频率均如上所述。
所述从存储器读取数据的方法可以进一步包括:(a)识别多个缓冲器地址中的一个缓冲器地址,该多个缓冲器地址用于缓冲具有n位宽的数据的k个字;和/或(b)识别多个存储器地址中的一个存储器地址,该多个存储器地址用于同时从存储器输出k*n位的数据。
一个示范性的实施例
现在参考图3,本发明的一个实施例涉及一种多端口页模式的存储器200。在下述实施例中,多端口页模式存储器200包括一个可扩展的多个端口存储块210,依据所需用途,每个存储块可以支持多个写端口(在一个特定的实施例中为16个)。所有端口可以同时工作,但是未必支持随机字存取。在页单元220a-220k中可实现对存储器210的访问。每个端口经由一个专用读页(read page)和一个专用写页(write page)访问存储器。每个页借助于二个存储线路得到双重缓冲,其中每个线路包括2y(在一个特定的实施例中为32)个8位输入。读和写端口数据宽度每个是8位。虽然在这个例子中每个线路实施为2y个8位输入,但在端口缓冲线路中可有任何数目的输入,并且输入可以包括任何数目的位。此外,读和写端口数据宽度可以是任何数目位宽。取决于配置,以页的形式对存储器进行的访问最多可达32字节。该存储器允许多达其总数的端口共享在公用存储器模块210中多达2y个页(在一个特定的实施例中为4096页)。存储块210可具有的密度从64kb至64Mb以上(例如从128kb至32Mb,或者从256kb至大约16Mb,而在一个实施例中大约为1Mb位)。虽然在这个例子中实施的是最大32字节的页尺寸和2z页的存储容量,但最大页尺寸可以是任何数目的字节,且存储器可以为任何容量(不过最好是存储器具有如上所述的最小密度)。此外,读和写端口数据宽度可以是任何数目的位宽。按照带宽和同时进行访问的需求也可以使用更多或更少的端口。
上述存储器包括二个主要的功能单元:端口页220a-k和存储块210。从一个端口通过端口页220i访问存储器(标识“i”意思是指在结构和/或功能上基本相同的多个单元中的任何一个单元),其起到在内部存储器模块接口(例如缓冲器230)和端口接口之间的桥接器的作用,使得在存储块带宽和独立端口的带宽之间的差值得到协调,同时允许有效地利用存储块的带宽。由于内部存储器块数据接口230相对较宽,而端口数据接口相对较窄,端口页起到临时存储器的作用,这与并-串行转换器和串-并行变换器相似。
对读和写访问两者均使用端口页的双重缓冲,就可以利用多个端口存储器200而使得在存储器210和所有的端口之间同时进行的无阻塞访问能够被无限地保持。对于端口写访问,经由一个专用8位端口写数据总线,以写数据顺序地填入相应的页输入。随后,在一个存储器写信号的提示下,页220i的整个内容被写入存储器210中的一个选定页中。
经由存储器控制接口和页控制接口(未示出),用户可以控制何时将页内容写入存储器210。现在参考图4,双重缓冲的端口页220i表明,端口写访问可以被引导至页220i的写缓冲部分240i的第二线路222,同时从第一线路224传送至存储器210(图4中未示)的数据等待存储器可用的指示。
端口读访问是通过首先从存储器210(高达32字节)中想要的页加载内容至端口页220i的读缓冲部分250i而实现的。接着,端口页220i的内容被顺序经由专用8位端口读总线RD[7:0]定时地输出。通过选择一个使用控制信号NRSEi的适当状态和多路复用器256的线路,则一旦第二读页线路226可以利用,就可将其用于来自存储器的下一页数据,同时端口从第一线路228传送数据。一旦数据被从第一线路228取尽,就可以从第二线路226传送数据,而第一线路228可用于来自存储器210的下一页数据。
通过存储器控制信号、接至端口页的专用读总线212和专用写总线214访问存储块210。数据总线的宽度是在一个页中的输入242a至242o、244a至244o、252a至252o或者254a至254o的数目乘以8。存储器读总线212和写总线214分别连接至端口读页250i和写页240i。每个存储器请求必须伴随有一个源地址和一个目标地址。对于写访问,源地址是端口页220i地址,而目的地地址是在存储器210中的页地址。对于读访问,源地址是在存储器210中的页地址,而目的地地址是端口页220i地址。用户按照数据在端口页220i和存储块210中的临时有效性,控制调度对于端口页220i和存储块210的写和读操作。
在大多数情况下,在被保持的同时无阻塞模式下进行的操作将要求每页220i的输入242i、244i、252i和254i的数目大于端口数目除以2,而且存储器带宽大于端口页220a-220k的所需要的总计带宽。
通过使用如上所述的多端口存储器系统的多个模块,可以提高端口数、存储容量和存储带宽。通过以本领域公知的方法级联两个多端口页模式(MPPM)的存储器体系结构200,可以用高达2*2x(在一个特定的实施例中为32)个读和/或写(R/W)端口而实现对最多达2*2z个页(在一个特定的实施例中为8192)保持同时存取,其中的页包括每个线路高达2y(在一个特定的实施例中为32)字节的数据。可以级联高达m个MPPM存储器200,从而通过高达m*2x(这里x例如为2至7)个R/W端口,能够支持最多m*2z(这里z例如为8至15)页的同时存取,其中的页包括每个线路2y(这里y例如为3至8)个字节的数据。端口的精确数目取决于想要的总计端口带宽和存储器工作频率。
多端口页模式的存储器200的应用包括那些可以使用高端口数目、高带宽的交换结构。存储器200的特点包括支持任意数目(例如在一个实施例中为10而在另一实施例中为16)的端口、用于每个端口的专用的读和写页模块、专用的双重缓冲读端口页、专用的双重缓冲写端口页、具有每个页的每个线路中任意数目的位(例如高达(2p+c)而在一个实施例中为8)的任意数目(例如高达2y和在一个实施例中为32)的输入、和任意数目(例如高达2z而在一个实施例中为4096)的页或者存储块、高达200 MHz(或者取决于所使用的技术更快的)的端口页操作频率、高达200 MHz(或者更快)的存储块操作频率、2周期存储器读取等待时间、2周期存储器写入等待时间、简单的接口、写窥探寄存器260、并行的读端口寄存器270、和并行的写端口寄存器280。无需以0.13或者0.15μmCMOS技术进行不相称的实验,就存在或者说可以提供存储器200的硬件描述。一个1Mb的9端口双重缓冲器结构的概略尺寸大约是1880μm×2870μm;一个2Mb的26端口单重缓冲器结构的概略尺寸大约是3800μm×3120μm(两者都是按照0.15μm技术估算的)。预测的功率损耗@_200MHz(页时钟和存储器时钟频率)小于1W。
在图3-14中使用了以下名称及其使用规定。信号名称从一个大写字母(例如CLK)开始。信号名称继之以一个包含在括弧内的范围表示一个逻辑上相关的信号、即一个总线的范围。在该范围中的第一个数字表示最高有效位(MSb),而最后的数字则表示最低有效位(LSb)。例如RD[15:0]是一个总线,其中RD[15]是RD总线的最高有效位(“MSb”)。在一个信号名称开始处的“N”表示当电压低时产生的信号的工作状态。例如NWR(输出启动高)是一个低电平有效信号。在RST上的下划线(“_”)表示当电压是低时产生的信号的工作状态。在图3至14中示出的端口接口信号的说明提供于下面表1中。
表1.端口接口信号说明 宽度 信号名称 类型文字说明 1 WPCK 输入端口写时钟脉冲。一个专用时钟应对应每个写端口以同步加载写数据至写入页输入内。若时序允许电源不重要则可对所有端口使用一个公共时钟。 1 NWSE0 输入写入线选择信号。当其为低时激活具有写双重缓冲器的0线路。当对整个线路写入时,NWSE0必须在32个WPCK周期保持为低。若NWSE0和NWSE1两者均得到认定(asserted),则将相同的数据写至两个线路。 1 NWSE1 输入写入线选择信号。当其为低时激活具有写双重缓冲器的1线路。当对整个线路写入时,NWSE1必须在32个WPCK周期保持为低。若NWSE0和NWSE1两者均得到认定,则将相同的数据写至两个线路。 1 WEPR 输入写输入选择指示器复位信号。该信号与NWSE结合使用且与WPCK同步。WEPR相对于WPCK的上升沿而认定,将选定的写输入选择指示器设为输入0。若NWSE0和NWSE1两者均得到认定,则写输入选择指示器对两个写入线均被复位到输入0。在认定WEPR之后,WPCK的各后续周期使选定写输入选择指示器前进。在输入选择指示器前进到最后的输入之后,所有后续的WPCK周期将产生空值指示字。当在WPCK的上升沿上接着认定了WEPR时,选定的写指示器将指向输入0 8 WD[7:0] 输入端口写8位数据总线。 宽度 信号名称类型文字说明 1 RPCK输入端口读时钟。该时钟选通数据从读输入缓冲器到端口读数据总线上。一个专用时钟可以伴随每个读端口去从读页输入同步读数据。 1 NRSE0输入读出线0选择信号。当其为低时激活具有读双重缓冲器的0线路。为移出32个输入的内容,在32个RPCK周期上认定NRSE0。 1 NRSE1输入读出线1选择信号。当其为低时激活具有读双重缓冲器的1线路。为移出32个输入的内容,在32个RPCK周期上认定NRSE1。 8 RD[7:0]输出端口读8位数据总线。 1 PWCK输入并行写端口时钟。 1 LPWR输入并行加载写寄存器。与PWCK同步。 N*8 PRD[N*8-1:0]输出用于并行读端口的读总线。与MCK同步。 N*8 PWD[N*8-1:0]输入用于并行写端口的写总线。与PWCK同步。 N*8 SBUS[N*8-1:0]输出用于窥探寄存器的读总线。与MCK同步。 1 SLD输入窥探寄存器加载信号。与MCK同步。 1 NRST输入端口逻辑复位信号。 1 NWR输入存储器写信号。低电平有效。与MCK时钟同步。当被认定时,存储器使用源(PA)和目标(MA)地址执行写操作。指定端口页的内容被写入指定的存储块页内。 1 NRD输入存储器读信号。低电平有效。与MCK同步。当被认定时,存储器使用源(MA)和目标(PA)地址执行读操作。内容被读进指定的端口页内。 5 PA[4:0]输入端口地址。最大30个端口(用于一个5位地址)。这是用于从端口页至主存储器的写操作的源地址,或者用于从主存储器到端口页的读操作的目的地地址。 1 PL输入指定从双重缓冲页的哪一个线路访问。“0”指定线路0。“1”指定线路1。不用于单重缓冲器结构。 12 MA[11:0]输入用于读或者写操作的存储页地址。最大4096页。这是用于写存储操作的端口页的目的地地址,以及用于读到端口页的存储页的源地址。
在图3至14中示出的存储器接口信号的说明提供于下面表2中。
表2.存储器接口信号说明 宽度 信号名称类型文字说明 1 MCK输入MCK是用于存储块的时钟。可以与PCK异步。所有存储块操作均与MCK同步。 1 FDINH输入在系统复位之后,从熔线盒(fuse block)经由本端口加载的用于存储器子模块H的冗余信息。 1 FDINL输入在系统复位之后,从熔线盒经由本端口加载的用于存储器子模块L的冗余信息。1 FSCKH输入根据FDINH用以由熔线盒锁存数据的时钟。宽度 信号名称类型文字说明1 FSCKL输入根据FDINH用以由熔线盒锁存数据的时钟。2(或更多) WTC输入用于设置内部的写入定时余量的代码。可以输入到可编程寄存器中。3(或更多) RTC输入用于设置内部的写入定时余量的代码。可以输入到可编程寄存器中。
功能说明
参考图3,每个端口220i包括一个专用读总线212和一个专用写总线214。因此,可以经每个端口220i同时发生读操作和写操作。端口接口包括8位读总线(RD)、8位写总线(WD)、写端口时钟(WPCK)、读端口时钟(RPCK)、写输入指示器复位(WEPR)、写双重缓冲器线路选择器(NWSE)、和用于每个线路的读双重缓冲器线路选择器(NRSE)。上述端口时钟中的任何一种或者两种可以与一个专用的或常规/通用的端口基准时钟(例如在图6至9中所示的信号ref pck)同步。在图4中展示了一个双重缓冲的读和写端口页220i的详细的方框图。对于一个使用两排或更多排MPPM的系统来说,端口页不必是双重缓冲的。由多排中的单重缓冲器所导致的双重缓冲可以被结合以实现一种或多种多重缓冲的功能。图5示出一个单重缓冲端口页220′的方框图,其类似于双重缓冲页,但是其中每个读和写缓冲器部分250和240分别包括一个单线的输入252i和242i,并且其中所示读部分不包括多路复用器256。
返回参考图4,在页220中的每个线路包括n个8位输入。在一个线路中对写输入的访问是使用一个访问指示器顺序进行的。这个访问指示器用相应的写入线选择信号NWSE激活。现在参考图6,在端口时钟(即用于写入线的WPCK,它可以与基准时钟ref pck相同、是其补充、或是其整数倍和/或一分数部分)的上升沿认定选定的输入指示器复位信号WEPR使得输入指示器复位而选择输入0,将WD[0:7]上的8位数据锁存到线路0中(NWSE0处于低电平有效状态)。其次的(n-1)时钟顺序地使选定指示器前进到输入N,在每个后继的时钟脉冲将WD[0:7]上的数据锁存到每个顺序的线路输入中。同样,在(n-1)个时钟周期之后,NWSE1可以转换到一个低电平有效状态,同时NWSE0转换到一个高电平无效状态。任意附加的端口时钟WPCK周期均使得输入指示器不在线路0中选择输入(空值指示字),并且线路0输入指示器将保持为空值状态,直到复位信号WEPR被再次认定、从而将其设置成选择输入0为止。WEPR可以被定时(例如使用计数器电路),使其每n个时钟周期就有1个时钟周期是激活的。在认定WEPR和NWSE1之后,数据被用与线路0相同的方式写入顺序的线路1输入内。为了节省电源,应在端口不工作时认定NWSE。
虽然图6示出在一个补充方案中的写入线选择信号NWSE0和NWSE1,这些信号不需要同时改变状态。例如在NWSE0的解除认定和NWSE1的认定之间可能有一定时间间隔,特别是在两个线路不需要连续写入的情况下。图7示出又一种情况,这里NWSE0和NWSE1以补充方式改变状态,但是在(n-1)个WPCK周期之后持续一段时间。例如可以通过一个或多个时钟周期使WEPR和NWSE的激活转换偏移,以确保定时和/或避免可能的数据损失。在这种情况下,在NWSE改变状态之前,可以通过WPCK的上升和下降转换来认定WEPR。
现在参考图8,对读线输入的访问是顺序地使用级联的触发器执行的。经由读线的数据移动是用相应的读线选择信号NRSE激活的。图8示出在一个双重缓冲的端口缓冲器(参见例如图4中的读页配置250i)中从两个页线路读取输入数据的RPCK、NRSE0和NRSE1信号的序列。
如图8中部分加以展示的,在端口读时钟RPCK(周期0)的下一个上升沿上,简单认定NRSE0而将在存储器读总线上的n*8位数据锁存进线路0、端口220i的n个输入。下面的(n-1)个读时钟顺序地从线路228(参见图4)将该n个输入移出到RD[0:7]上。不需要将输入指示器复位到输入0,当指示器复位信号WEPR被认定时,输入0是选定的输入,这是因为读缓冲器线路226和228(其例如为一种传统的移位寄存器)的体系结构在相继的上升时钟转换中自动地输出来自连续输入的数据。此外,在(n-1)个时钟周期之后,NWSE1可以转换为低电平有效状态,同时NWSE0转换为高电平无效状态。如果NRSE1不转换到有效状态,则附加的RPCK周期从线路0读到高阻抗或者空值状态,直到诸如其中一个NRSE信号的(最好是NRSE1)复位信号被认定、从而开始从端口220i进行另一个读操作为止。NRSE信号可以被定时(例如使用一个计数电路),从而每当其被一个适当的(并且通常是从外部产生的)读指令激活时,对于32个连续的时钟周期成为被激活的。在认定NRSE1之后(这也可以是在NRSE0转换为高以前、在周期N-1上前面最接近的上升RPCK边沿之后的任何时间),n*8位数据被以与线路0相同的方式写入n个线路1的输入中。为了节省电源,应在端口不工作的时候使NWSE解除认定。类似地,为了在写情况下节省电源,NWSE应在端口不工作的时候被解除认定。
存储器接口
返回去参考图3,存储器接口经过配置,用以控制在内部存储器模块210和端口页220a-k之间的数据传送。该接口包括专用的读总线和专用的写总线。存储器读和存储器写命令是在存储器时钟MCK的上升沿上被采样的,并且通常带有源地址和目标地址以及页线路编号(当被寻址的端口页是以双重缓冲器配置的时候)。有效的存储器接口命令包括读、写和空操作(当读和写两者都没有被认定的时候)。对于从一个端口页220i写到一个在存储器210中的页而言,在PA总线上被驱动的源地址是端口地址,而在MA总线上被驱动的目的地地址是存储页地址。对于从一个在存储器210中的页读到一个端口页220i而言,在MA总线上被驱动的源地址是存储页地址,而在PA总线上被驱动的目的地地址是端口页地址。每个MCK周期可以接受一个存储器命令。
写到存储器
在一个写页中装入的所有输入必须受到跟踪。这可以使用传统的逻辑(例如一个n位计数器,其响应一个适当的转换或者WEPR和/或NWSE的组合而复位)自动地进行。一旦在端口页中所有的输入被装入,即通过认定NWR、解除认定NRD和指定适当的源地址和目标地址,将该页的全部内容写入存储器210中。参考图4,为确保在写页线路224或者222的最后的输入242o或者244o中的数据被随着一个相关的记录写到存储器,在页时钟(PCK)的上升沿与MCK的上升沿之间的最小时间必须至少为0ns,最好大于0ns,其中在页时钟(PCK)的上升沿装入最后的输入242o/244o,而在MCK的上升沿则采样写指令。在写指令和数据被实际写入存储器之间通常有两个MCK周期的等待时间。
返回去参考图3,窥探缓冲器260被配置成在一个MCK周期中捕获要写入存储器210之内的数据。通过在一个存储写命令期间认定SLD而激活窥探缓冲器260。来自所有要写给存储器210的N个输入的数据也将写入窥探缓冲器中,并且驱动到N*8位宽的窥探总线上。
图9是一个示出从端口页240j以相关的定时限制将数据写到一个在存储块210中的页的时序图。触发特定写事件的存储器接口信号的各种各样的状态展示于从图9的上部开始的第二个信号波形。在MCK边沿301,来自端口240j、线路0的数据被写到存储器210,页地址X。将数据写入写页224j中最后一个输入244o内的端口时钟WPCK[j]的上升沿302在MCK边沿301之前必须存在一段时间,该时间至少为TLEMW。TLEMW是在上一次写输入的时钟脉冲和一个相关的写给存储块210的存储命令时钟脉冲之间的时间。TLEMW至少为0ns,优选大于0ns,最为优选则至少为1ns。
在MCK边沿303上,来自端口240k、线路1的数据被写给存储器210,页地址Z。就端口时钟WPCK[j]而论,将数据写入写页224k中上一次的输入之内的端口时钟WPCK[k]的上升沿,在MCK边沿303之前必须存在一段时间,该时间至少为TLEMW。来自端口240j,线路0的数据在MCK边沿303上被锁存到窥探寄存器260中。
在MCK边沿305上,来自端口240q、线路0的数据被写给存储器210,页地址X。因此,一旦到达两个时钟周期之后,第一模块或者数据页即被写入,本发明的体系结构允许在存储器210中的数据被覆盖。来自端口240k,线路1的数据在MCK边沿305上被锁存到窥探寄存器260中。
MPPM模块200也可以包括具有N*8个并行输入亦即PWD[N*8-1:0]的页280,以及对存储器写总线214的N*8个并行输出。当出现时,并行写端口页寄存器280可以具有一个端口地址31。这个寄存器的内容可以以并行写端口280作为源地址,而以在存储器210中的一个页作为目的地地址,用存储写入命令将其写给存储器210。
从存储器读取
现在参考图10,为从一个在存储器210中的页读出到端口页220i,一个读命令(NRD=0,NWR=1)连同存储页地址(MA)、端口页地址(PA)和线路编号(如果端口页220i是双重缓冲的话)一起被传送给MPPM200。如图10所示,在来自存储器210的数据被加载进端口页220i之前,有两个MCK周期(TMRL2)加上TMCO(从2周期等待时间的末尾到MCK的下一个上升转换的时间)等待时间。在存储器读命令之后,可以有两个或者三个MCK周期从端口页读数据。同时图10示出一种情况,其中有2或者3周期等待时间,等待时间取决于多个要素,如存储器工作频率、寄存器工作频率、端口工作频率、处理技术(例如线路电阻率)、电路布局(例如数据传送线的长度)等等。因此,这完全是可行的:在适当的设计和处理技术条件下一个周期的等待时间即足够,而在其他条件下三个以上的周期即可满足需要。
图10-12示出存储器读命令和端口线(地址)选择的交织,用以从双重缓冲的端口页220j的读部分250j获得连续数据流。为了确保适当的读取定时,在两个MCK周期之后存储器读命令NRSE得到认定,并且在该存储器读命令之后,读出数据开始移出三个MCK周期。例如当从一个读出线移出数据而距相应的存储器读命令仅有两个MCK周期的时候,可能有某种TPCO定时恶化(即从RPCK的上升沿到有效的RD)。
图10示出了从存储器210读到端口220j的等待时间为2个周期的情况。在MCK边沿311上,来自存储器210的数据即页X被读进端口220j,线路1,这是由于在地址/命令接口波形上的命令和信号312具有数值MA[X]、PA[j]、NRD=0、NWR=1和RPL=1。如在图10底部的RD波形所示,在MCK边沿311之后,在2个周期加上TMCO时,来自端口220j、线路1的数据被从体系结构/设备200读出。在MCK边沿313处,来自存储器210的数据即页Z被读进端口220q、线路1,这是由于在地址/命令接口波形上的命令和信号314具有值MA[Z]、PA[q]、NRD=0、NWR=1和RPL=1。在这个实施例中,当RPCK与MCK相同时,从存储器读命令NRD的认定到在RD[7:0]上的端口页线路输出的读等待时间可以低至2MCK周期加上TMCO。在适当的NRD边沿之后,来自端口读出线226/228的数据可以被驱动2个周期。在NRSE认定之后计时或者锁存输入读取的上升RPCK[x]边沿应不少于TMPCR(从TMRL2的末尾到RPCK[x]的下一个上升沿的时间,该时间必须至少为0ns,最好大于0ns)加上来自相关NRD边沿的TMRL2。
图11示出了从存储器210读到端口220i的等待时间是3个MCK周期的情况。在MCK边沿321上,来自存储器210的数据即页X被读进端口220j、线路1,这是由于在地址/命令接口波形上的命令和信号322具有值MA[X]、PA[j]、NRD=0、NWR=1和RPL=1。如在图11底部的RD波形所示,在MCK边沿321之后,来自端口220j和线路1的数据323,在3个MCK周期加上TMCO上被从体系结构/设备200中读出。在NRSE认定之后,计时或者锁存一个输入读取的上升RPCK[x]边沿可以是TMPCR(如上面所定义的)加上来自相关NRD边沿的TMRL3(3个MCK周期)或更长。在这个示范性实施例的制造处理技术和定时限制下,当RPCK与MCK不相同的时候,“3周期等待时间”的条件是优选的。在不同的处理和/或定时条件之下,可应用不同的等待时间周期数。
返回参考图3,MPPM模块200也可以包括页270,其具有由N*8位存储器读总线214驱动的(N*8)位并行输入和驱动PRD[N*8-1:0]的N*8并行输出总线。当出现时,并行读端口页寄存器270可以采取一个端口地址30。通过在一个存储器读命令中将并行读端口270地址用作目的地址,PRD总线内容可以用存储页的内容加以更新。
现在参考图12,在MCK边沿331上,数据可以从并联写端口280写到存储器210,即页X,这是因为在地址/命令接口波形上的命令和信号332具有值MA[X]、PA[31]、NRD=1和NWR=0。如图12中的PWD波形所示,来自并联写端口280的数据在一段时间是有效的,该段时间是(TLPWDS+TLPWDH)或者并联写寄存器(PWD)建立和保持的时间。典型地,在PWCK的上升沿之前,TLPWDS(PWD建立时间)为0ns至2ns(例如在0ns和大约1ns之间,而在一个实施例中大约为0.3ns),在PWCK的上升沿之后,TLPWDH(PWD持续时间)为从0.5ns至4ns(例如从0.5ns至2ns,而在一个实施例中大约为1.2ns)。在MCK边沿333,数据可以从存储器210即页Z读进并行读端口270,这是因为在地址/命令接口波形上的命令和信号334具有值MA[Z]、PA[30]、NRD=0和NWR=1。就上述的存储器读操作而论,在相应的读命令边沿333之后,在两个MCK周期加上一段时间TPRDO(即MCK边沿到并行读端口PRD有效)期间来自MA[Z]的数据337被读到并行读端口总线PRD上。
在MCK边沿335处,以如上所述的存储器读操作将数据从存储器210即页X读进端口缓冲器220q、线路0中,这是因为在地址/命令接口波形上的命令和信号336具有值MA[X]、PA[q]、NRD=0、NWR=1和RPL=0。在相应的读命令边沿333之后,在两个MCK周期加上一段时间TPRDO期间来自MA[Z]的数据337被读到并行读端口总线PRD上。在地址/命令接口波形上的命令和信号338具有值MA[Y]、PA[30]、NRD=0和NWR=1。因此,在MCK边沿339处,数据被从存储器210即页Y读进并行读端口270中。在相应的读命令边沿339之后,在两个MCK周期加上一段时间TPRDO期间数据338被读到并行读端口总线PRD上。
结论/总结
因此,本发明提供了一种多端口存储器体系结构,以及一种在这样的存储器中和/或在包括这样的存储器的网络或者网络装置中对数据进行操作的系统和方法。本发明通过使端口缓冲器与主存储器紧密相连,有利地降低了在数据通信设备中,尤其是在超高速网络交换机中的电路小片的尺寸,而且有利的是,使用从端口到端口缓冲器的窄带宽点对点通信,由此降低了在芯片有效面积上的路由阻塞,且得以在存储器读和写路径中去掉FIFO。通过排除FIFO,本发明提供了提高的数据传输速度和吞吐量。在使用点对点通信的某些实施例中,由于降低了存储器读和写总线的RC成分,本发明有利地提高了存储器频率,更进一步提高了数据传输速度和吞吐量。
为说明和描述起见,以上描述已经介绍了本发明特定的实施例。但它们并非是要穷举本发明被公开的特定形式或将本发明限制于此,显然,根据以上指导可能会有很多修改和变化。选择和说明这些实施例,是为了最好地解释本发明的原理及其实际用途,以便由此能使其他本领域技术人员借助于各种各样的修改以适用于所构想的特定应用,而最好地运用本发明和各个实施例。本发明的范围应由所附权利要求及其等效方案来限定。