高带宽存储器和少故障差分异或的制作方法

文档序号:10552846阅读:251来源:国知局
高带宽存储器和少故障差分异或的制作方法
【专利摘要】本发明涉及高带宽存储器和少故障差分异或,提供了一种高带宽多读存储设备,包括多个存储块、多个地址输入总线和多个输出数据总线。存储块包括辅助性存储块,且每个存储块包括几个包括辅助性存储子块的存储子块。输出数据总线输出与地址相对应的数据,该地址在多读操作期间与地址输入总线相对应。地址与存储块的存储子块的单个存储子块相对应。本发明还提供了包括选择逻辑电路、预充电路和多路复用器的差分异或电路。该选择逻辑电路提供与单端输入信号相对应的互补输出信号。在评估阶段,多路复用器提供差分输出信号。
【专利说明】高带宽存储器和少故障差分异或
[0001]相关申请的交叉引用
[0002]依据《美国法典》第三十五章,第一百--h九条,本申请要求于2015年2月19日提交的美国临时专利申请62/118,454优先权的权益,此处通过引用将其全部内容结合与此。
技术领域
[0003]本描述一般涉及存储器电路,并且更具体而言,但非排外地,涉及高带宽存储器和少故障差分异或(Exclusive 0R,X0R)。
【背景技术】
[0004]需要高存储器带宽的网络处理器可使用相当大且实现昂贵的多端口存储器位单元。例如,基于多端口存储器位单元的寄存器文件存储器可使用4端口存储器位单元(每个使用4组通门)或4读端口存储器位单元(使用4组串行晶体管(例如NFET)为读端口和通门为写端口)。但是,这些位单元大体面积昂贵,且最常被用于小容量寄存器文件应用。现有的位单元和相关的存储器架构不适用于网络处理器所需要的大容量存储器。

【发明内容】

[0005]根据本发明示例性实施例,提供了一种高带宽多读存储设备,设备包括:多个存储块,多个存储块中的每个存储块包括多个存储子块,其中,多个存储块包括辅助性存储块,多个存储子块包括辅助性存储子块;多个地址输入总线:以及多个输出数据总线,配置为输出与多个地址相对应的数据,其中,在多读操作期间,多个地址与多个地址输入总线相对应;其中,多个地址与多个存储块中的一个存储块的多个存储子块中的单个存储子块相对应。
[0006]多个输出数据总线中的至少部分输出数据总线配置为通过一个或多个异或门耦合至除单个存储子块外的至少两个存储子块。
[0007]多个输出数据总线的第一输出数据总线配置为输出与多个地址的第一地址相对应的数据,第一地址在多读操作期间与多个地址输入总线的第一地址输入总线相对应,其中,辅助性存储子块中的不是所述辅助性存储块的一部分的各个辅助性存储子块配置为包含主要辅助性数据,并且其中,至少一个异或门配置为提供主要辅助性数据,且配置为在写操作期间,接收来自多个存储块中的不同块的多个存储子块中的至少两个存储子块的输入数据,多个存储子块中的至少两个存储子块包括各辅助性存储子块。
[0008]作为辅助性存储块的一部分的每个辅助性存储子块配置为包含次级辅助性数据,其中至少一个异或门配置为提供次级辅助性数据,且配置为在写操作期间,接收来自多个存储块中的至少两个存储块的多个存储子块中的至少两个存储子块的输入数据。
[0009]辅助性存储块的最后一个辅助性存储子块配置为包含三级辅助性数据,其中,至少一个异或门配置为提供三级辅助性数据,且配置为在写操作期间,接收来自辅助性存储块的至少两个存储子块的输入数据。
[0010]第二输出数据总线配置为输出与多个地址的第二地址相对应的数据,第二地址在多读操作期间与第二地址输入总线相对应,其中,第二输出数据总线耦合至第一读异或门,第一读异或门配置为接收来自多个存储块中的第一存储块的一个存储子块的数据和多个存储块中的第一存储块的一个辅助性存储子块的数据,其中,第一存储块的一个存储子块和第一存储块的一个辅助性存储子块不同。
[0011]多个输出数据总线的第三输出数据总线配置为输出与多个地址的第三地址相对应的数据,第三地址在多读操作期间与多个地址输入总线的第三地址输入总线相对应,其中,第三输出数据总线耦合至第二读异或门,第二读异或门配置为接收来自多个存储块中的第二存储块的一个存储子块的数据和第二存储块的一个辅助性存储子块的数据,其中,第二存储块的一个存储子块和第二存储块的一个辅助性存储子块不同。
[0012]该设备进一步包括与多个存储子块的每个存储子块相对应的数据输出路径,其中,数据输出路径包括耦合至输出异或门的多路复用器,其中,多个输出异或门连接形成菊花链异或树,并且其中,存储子块的感测放大器配置为将数据传至菊花链异或树的一个异或门中。
[0013]根据本发明示例性实施例,提供了一种差分异或电路,电路包括:选择逻辑电路,配置为接收单端输入信号和时钟信号,以及提供与单端输入信号相对应的互补输出信号;预充电路,配置为在预充电阶段,为输出节点预充电;以及多路复用器,配置为接收差分输入信号和互补输出信号,以及在评估阶段,在输出节点提供差分输出信号。
[0014]差分输出信号配置为依赖于单端输入信号,并且其中,差分输出信号包括差分输入信号或差分输入信号的互补中的一个。
[0015]预充阶段和评估阶段基于时钟信号的不同状态,并且其中,电路在多个异或阶段实现。
[0016]选择逻辑电路包括两个反相器和一个或多个包括NAND或NOR门的逻辑门,其中,多路复用器包括两个交叉耦合MOS通门,并且其中,预充电路包括至少两个MOS晶体管,至少两个MOS晶体管在至少两个MOS晶体管的共栅节点接收时钟信号。
[0017]根据本发明示例性实施例,提供了一种用于提供高带宽多读存储设备的方法,方法包括:将存储设备分割为多个存储块,多个存储块的每个存储块包括多个存储子块,其中,多个存储块包括辅助性存储块,多个存储子块包括辅助性存储子块;以及配置存储设备的多个输出数据总线以输出与多个地址相对应的数据,其中,多个地址在多读操作期间与多个地址输入总线相对应;其中,多个地址与多个存储块中的一个存储块的多个存储子块中的单个存储子块相对应。
[0018]该方法进一步包括通过一个或多个异或门将多个输出数据总线中的至少部分输出数据总线配置为耦合至除单个存储子块外的多个存储子块中的至少两个存储子块。
[0019]该方法进一步包括:配置多个输出数据总线的第一输出数据总线以输出与多个地址的第一地址相对应的数据,其中,第一地址在多读操作期间与多个地址输入总线的第一地址输入总线相对应;在写操作期间,向不是辅助性存储块的一部分的各辅助性存储子块内写入主要辅助性数据;以及配置至少一个异或门,以提供主要辅助性数据且在写操作期间接收来自包括各辅助性存储子块的各自存储块的多个存储子块中的至少两个存储子块的输入数据。
[0020]该方法进一步包括:在写操作期间,向作为辅助性存储块的一部分的每个辅助性存储子块内写入次级辅助性数据;配置至少一个异或门,以提供次级辅助性数据,且在写操作期间,接收来自多个存储块中的至少两个存储块的多个存储子块中的至少两个存储子块的输入数据。
[0021 ]该方法进一步包括:在写操作期间,向辅助性存储块的最后一个辅助性存储子块内写入三级辅助性数据;以及配置至少一个异或门,以提供三级辅助性数据,且在写操作期间,接收来自辅助性存储块的至少两个存储子块的数据。
[0022]该方法进一步包括:配置多个输出数据总线的第二输出数据总线,以通过将多个输出数据总线的第二输出数据总线耦合至第一读异或门,输出与多个地址的第二地址相对应的数据,第二地址在多读操作期间与多个地址输入总线的第二地址输入总线相对应,其中,第一读异或门配置为接收来自多个存储块中的第一存储块的一个存储子块的数据和第一存储块的一个辅助性存储子块的数据,其中,第一存储块的一个存储子块与第一存储块的一个辅助性存储子块不同。
[0023]该方法进一步包括:配置第三输出数据总线,以通过将第三输出地址总线耦合至第二读异或门,输出与多个地址的第三地址相对应的数据,第三地址在多读操作期间与第三地址输入总线相对应,其中,第二读异或门配置为接收来自多个存储块中的第二存储块的一个存储子块的数据和第二存储块的一个辅助性存储子块的数据,其中,第二存储块的一个存储子块与第二存储块的一个辅助性存储子块不同。
[0024]该方法进一步包括:通过将多路复用器耦合至一个输出异或门、并连接多个输出异或门形成菊花链异或树,提供与多个存储子块的每个存储子块相对应的数据输出路径,并且其中,多个存储子块的一个存储子块的感测放大器配置为将数据传入菊花链异或树的多个输出异或门之一。
【附图说明】
[0025]该主题技术的某些特征在所附权利说明中阐明。但是,为了更好的解释该技术,在以下图中详尽地解释了该主题技术的几个实施方式。
[0026]图1是根据一个或多个实施方式的高带宽多读存储设备的示例;
[0027]图2是根据一个或多个实施方式的图1中高带宽多读存储设备的写电路的示例;
[0028]图3A-图3B是根据一个或多个实施方式的图1中高带宽多读存储设备的读电路和数据输出路径的示例;
[0029]图4是根据一个或多个实施方式的进行多读操作的示例性算法的流程图;
[0030]图5是根据一个或多个实施方式的高带宽多读存储设备的方法的示例;
[0031 ]图6A-图6B是根据一个或多个实施方式的差分异或(XOR)电路和相应真值表的不例;
[0032]图7是根据一个或多个实施方式的多级差分XOR电路的示例;
[0033]图8是根据一个或多个实施方式的应用该主题技术的通信设备的示例。
【具体实施方式】
[0034]下文所阐明的详细描述旨在作为该主题技术的各种配置的描述,而不是旨在表示该主题技术可实现的唯一配置。所示附图被结合与此,且构成说明书的一部分。详细描述包括出于提供该主题技术透彻理解的目的的具体细节。但是,对于本领域的那些技术人员将清晰且显而易见的是,该主题技术不限于此处所阐明的具体细节,且可使用一个或多个实施方式实现。在一个或多个实例中,为了避免模糊化该主题技术的概念,众所周知的结构和部件以方框图的形式表示。
[0035]根据该主题技术的一个或多个方面,描述了提供高带宽存储器的方法和配置。进一步地,公开了一种动态少故障差分XOR树,可被利用于实现该主题技术的高带宽存储器。该主题技术可被应用在需要高带宽存储器(例如,1-2GHZ)或多端口存储器的任何半导体设备中。公开的高带宽存储器在电路、系统和产品层面上具有许多优势特点。例如,在电路层面上,与现有两端口算法XOR存储器相比,该主题技术可导致密度(每平方毫米读端口)的显著(例如,?50%)提高。系统优势包括每单位面积的额外读带宽或相等读带宽的更小面积。在产品层面上,由于减小模区导致的成本节省和由于额外读带宽导致的性能提高在所述优势特点之中。该主题技术的差分XOR树,不仅免于额外过渡(例如,故障),而且可大体上减少XOR外围逻辑(例如,通过?80 % )和XOR外围面积(例如,通过?20 % )的动态功率,且可导致可预测最坏情况延迟路径。
[0036]图1是根据该主题技术的一个或多个实施方式的高带宽多读存储设备100的示例。该存储设备100被分割成多个(例如,3个或更多)包括辅助性存储块(以下称“辅助性块”)120的存储块(以下称“块”)110。存储块110和120中的每个包括多个包括辅助性存储子块(以下称“辅助性子块”)114(例如,AX和BX)的存储子块(以下称“子块”)112(例如,A1、A0、B1和BO)。辅助性块120的子块(X1、XO和XX)的个数与其他块(例如,110)的子块的个数相同。存储设备100可为任何类型的存储器,例,由6晶体管(6-T)存储单元或其他存储单元形成的SRAM存储器。
[0037]存储设备100包括多个地址输入总线130,该地址输入总线130包括,例如,与四个输入地址addrA、addrB、addrC和addrD相对应的四个地址输入总线。存储设备100还包括多个输出数据总线140,例,doutA、doutB、doutC和douD,以输出与多个地址相对应的数据,该多个地址在多读操作期间与地址输入总线130相对应。如此处所描述的,地址输入总线130上的地址可与多个块110中的一个块的单个存储子块(例如,A1、AO、BI或BO)相对应,其中,多个块110在写操作中被写入输入数据(例如,Din)。该主题技术的高带宽、高容量存储设备可在多读单写实施方式中实现。为简便起见,此处描述四读单写实施方式。应当理解,如果待读取的多个地址属于(例如,多行)单一子块(例如,A1、A0、B1或B0),多读操作可导致地址冲突。该主题技术解决了此处所详细描述的地址冲突的问题。
[0038]多读(例如,四读)操作的实施方式背后的概念是以下布尔方程:如果A?B? C? D=n 并且 B ? C ? D = m,鉴于已知方程 A ?A = 0,给出:n?m=(A? (B ? B) ? (C ? C) ? (D ? D))= Aeoeoe 0 = A,其中符号e表示XOR操作。换言之,如果我们有“n”,在我们有“m”的情况下,我们可重建A。这个概念此处被用来实现储器设备100的多读(例如,四读)操作,而无任何地址冲突。为了实现多读操作,该主题技术使用辅助性子块AX和BX,以解决第一和第二地址冲突,并使用辅助性块120的子块(例如,Xl、X0和XX)以解决第三和第四地址冲突。该辅助性子块AX、BX、X1、X0和XX不是指任何真实地址,并且包含可用于多读地址冲突解决的辅助性数据。应当理解,该主题解决方法可通过不同地分割存储设备(例如,成为具有超出四个子块的块)而扩展至超出4地址冲突。此处讨论的四地址冲突实施方式,辅助性子块的数据内容通过以下布尔方程规定:
[0039]AX=AO ? Al(方程I)
[0040]BX = BO ? BI (方程2)
[0041]Π =Al ? BI(方程3)
[0042]XO=AO ? BO(方程4)
[0043]ΧΧ=Π?Χ0(方程 5)
[0044]换言之,不是辅助性存储块120—部分的每个辅助性存储子块(例如,AX或BX)包括主要辅助性数据。主要辅助性数据由至少一个XOR门提供,该XOR门在写操作期间接收来自包含那种辅助性存储子块的不同存储块的至少两个存储子块(例如,AO e Al或BO e BI)的输入数据。与辅助性存储块120相对应的每个辅助性存储子块(例如,Xl、Χ0或XX)包含次级辅助性数据。次级辅助性数据由至少一个XOR门提供,该XOR门在写操作期间接收来自至少两个存储块(例如,110或120)的至少两个存储子块(例如,Al ? BUAO ? BO或Al ? BI ? AO ? BO)的输入数据。正如下文所述,上述方程的XOR操作使用双向XOR门实现。
[0045]图2是根据该主题技术的一个或多个实施方式的图1中高带宽多读存储设备100的写电路200的示例。如图2所示,为了能够进行多读(例如,四读)操作而无任何地址冲突,该主题技术使用分层XOR架构。图2所示的分层XOR架构,为简便起见使用了双向XOR门。在一些实施方式中,XOR门的输入的个数取决于块110的子块的个数。例如,如果每个块110的子块的数量为四,使用三输入XOR门。
[0046]在图2所示的写电路200中,描述了对与子块Al的第10行相对应的地址的写入。第一管路时段(例如,时段I)执行子块Al的行10的数据(例如,Din)的实际写入(例如,W10)。同时,读操作在子块A0、B1和XO的行10中执行。第二管路时段(例如,时段2)执行至AX、X1和XX的写入操作。XOR门210被用于执行方程I的布尔操作,即提供Al和AO的XOR JOR门220执行方程3的布尔操作,即提供Al和BI的X0R,该XOR被写入辅助性块120的子块XI。最后,XOR 230执行方程5的布尔操作,S卩提供XI和XO的XOR。需要注意的是,XOR 230使用XOR 220的输出作为它的输入之一,XOR 220的输出被写入子块XI,且与子块XI的内容相同。如此处所述,根据上文所讨论的写操作,辅助性子块AX、X1和XX的内容,可被用来读取来自子块A的四个不同地址的数据。
[0047]图3A-图3B是根据该主题技术的一个或多个实施方式的图1中高带宽多读存储设备100的读电路300A和数据输出路径300B的示例。该主题技术的读操作由示例性读电路300A执行。图3A所示的读操作描述四向地址冲突的解决,其中地址端口 A、B、C和D(例如,AddrA、AddrB、AddrC和AddrD)分别从同一子块(例如,块110的AI)访问行1、11、12和13。换句话说,地址A从与子块Al的行1相对应的地址中访问数据;地址B从与子块Al的行11相对应的地址中访问数据;地址C从与子块Al的行12相对应的地址中访问数据;地址D从与子块Al的行13相对应的地址中访问数据。需要注意的是,地址A、B、C和D并非访问子块A的同一行,但是由于地址A、B、C和D都与同一物理子块Al的行相对应,因此这仍然是地址冲突。需要注意的是,所有地址访问相同地址的情况以同样的方式处理。
[0048]读操作按如下的方式进行。地址端口A访问子块Al的行10并在DOUTA上输出数据。地址端口B无法同时使用子块Al,所以读取子块AO和AX的行11(例如,Rll),数据输出为DOUTB。需要注意的是,使用XOR门310,通过执行AO ? AX = AO ? (Al ? AO) =Al,通过先前所描述的方法再造端口 B的数据。地址端口 C无法同时使用子块Al或AO或AX,所以读取子块BI和Xl的行12,数据被XOR门312所异或并传至如DOUTC的各自输出端口。地址端口 D无法同时使用已被访问的子块,所以由XOR门314和316读取子块BO、BX、XO和XX的行13,XOR门314和316输出的数据一同被XOR门318所异或,且传至如DOUTD的各自输出端口。为简便起见,示出如DOUTD的被发送的数据的异或在两个平行阶段被进行。在一些实施方式中,异或可串行进行,以提供相同的逻辑结果。
[0049 ]图3B是一些关键数据输出路径电路的电路示意图。该示意图表示由SRAM块320、感测放大器330和每个数据端口的不相同的数据输出路径所描绘的SRAM核心单元。每个数据路径包括两输入多路复用器(例如,340A、340B、340C或340D),紧随其后为各个XOR门(例如,350A、350B、350C或350D)。图3B的电路示意图代表图1中存储设备100的每个子块的列线电路。进入电路顶部的输入RDA_IN、RDB_IN、RDC_IN和RDD_IN来自耦合(例如,直接上方)至数据输出路径300B的子块中的相似数据输出路径电路的输出。
[0050]当读操作被进行时,传至每个输出端口的数据或是来自于感测放大器的数据的缓冲版本,或通过异或数据而再造,其中,异或数据来自于各种子块的感测放大器。XOR门350A、350B、350C和350D以菊花链方连接,来自子块的感测放大器(例如,330)的数据332可传入菊花链XOR树中的之一,其中,菊花链XOR树由多路复用器(例如,340A)和相对应的XOR门(例如,350A)形成。端口选取信号PSA、PSB、PSC和PSD来控制来自感测放大器330的数据是否被传入XOR树(例如,对于给定端口 )或O是否被传入那个XOR树。传O进入XOR树,表示来自当前子块的数据未被用来生成进入给定端口的数据。
[0051]在一些实施方式中,数据输出路径300B的操作如下所述。如果存储器组中的WL被激发,至那个存储器组的端口选择输入也被激发。端口选择信号PSA、PSB、PSC和PSD是对于每个组都不相同的独热信号(one-hot signal)。从感测放大器332传导数据332,意味着数据332是需要一同被异或的数据集的一部分,以生成端口的数据(例如,RDA)。传导O指示数据332不与该端口相对应。为特定端口设置除一个PS信号(例如,PSA)之外的其他所有PS信号为O,意味着不存在地址冲突,且来自那个组的数据332使用XOR门(例如,350A)进行缓冲并传导至输出。由于每个子块的XOR门350A、350B、350C和350D被一同菊花式链接,对于每个端口适合的数据出现在菊花链的结束端。
[0052]图4是根据该主题技术的一个或多个实施方式的进行多读操作的示例性算法400的流程图。此处所描述的多读操作应用于,例如图3A的读电路。算法开始于控制操作方框410,在方框410中,检测主端口上(例如,图3A的Al端口)是否被请求进行读操作。如果回答为否,执行控制操作方框430。否则,如果回答为是,该控制传至操作方框420,其中读操作在主端口进行,且各个地址中的内容在主端口(例如,如D0UTA)被输出,且控制传至控制操作方框430。在控制操作方框430中,检测下一端口是否被请求进行读操作。如果回答为否,不进行读操作。但是,如果回答为是,控制传至控制操作方框440。在控制方框440中,检测是否与先前端口存在冲突(例如,地址属于单个存储子块)。如果无冲突发生,在操作方框450中,实行常规读操作而无异或,该输出传至适当端口,且控制传至操作方框430。否则,如果回答为是,在操作方框460中,读取无冲突的最低层子块(例如,图3A的A0)的相同行(例如,图3A的Rll)并与各自的辅助性子块(例如,AX)异或,该结果被输出至相应输出端口,且控制传至控制操作方框430。
[0053]在一些实施方式中,算法400由本地处理器执行,例如,网络交换机或路由器的处理器或控制器,或远程处理器,如云处理器。在一个或多个实施方式中,算法400可以在诸如现场可编程门阵列(FPGA)的固件或硬件中实现。
[0054]图5是根据该主题技术的一个或多个实施方式的提供高带宽多读存储设备的方法500的示例。出于解释性的目的,此处描述的示例性方法500的方框是串行或线性发生。但是,该示例性方法500的多个方框可并行发生。此外,示例性方法500的方框不需要以示出顺序执行,和/或,示例性方法500的一个或多个方框不需要被执行。
[0055]根据方法500,存储设备(例如,图1的100)被分割为包括辅助性存储块(例如图1的120)的多个存储块(例如图1的110),每个存储块包括几个存储子块(例如,图1的Al、AO、B1、BO) (510),其中,存储子块包括辅助性存储子块(例如,图1的Ax或BX)。在多读操作期间,存储设备的多个输出数据总线(例如,图1的140)输出与地址(例如,图1的Addr A、AddrB、AddrC或AddrD)相对应的数据,其中,该地址与地址输入总线(例如,图1的130)相对应(520)。
[0056]图6A-图6B是根据该主题技术的一个或多个实施方式的差分异或(XOR)电路600A和相应的真值表600B的示例。在一个或多个实施方式中,差分XOR电路600A包括选择逻辑电路610、多路复用器620和预充电路630。选择逻辑电路610接收单端输入信号602和时钟信号604,且提供与单端输入信号602相对应的互补输出信号606和608。在一些实施方式中,选择逻辑电路610包括反相器612和614,以及与非门616和618。与非门616接收来自反相器614的输出信号(类似于信号602)和时钟信号604作为输入,且提供输出信号606。与非门618接收来自反相器612的输出信号(例如,信号6 O 2的反相形式)和时钟信号作为输入,且提供输出信号608。在一个或多个方面,选择逻辑电路610可使用NOR门实现。
[0057]多路复用器620接收差分输入信号BT和BF以及互补输出信号606和608,且在评估阶段(例如,当时钟信号604为高时),在输出节点632和634提供差分输出信号(例如OUTT和0UTF)。在一个或多个实施方式中,多路复用器620可通过交叉耦合的两个MOS通门实现,其中,两个MOS通门可由例如PMOS晶体管对T1-T2和T3-T4形成。在评估阶段期间,输入信号602(例如,A)需要稳定至下一预充阶段,其中,下一预充阶段在时钟信号604过渡至低时开始。在一些实施方式中,多路复用器620可另外的方式实现,例如,通过NMOS通门或在其他配置中。
[0058]在预充阶段期间,预充电路630给输出节点632和634预充电至高水平(逻辑I)。预充电路630通过晶体管T5和T6以及选择性晶体管T7来实现。晶体管T5-T7是PMOS晶体管,但也可通过NMOS晶体管来实现。时钟信号604控制晶体管T5-T7的共栅极,并且当晶体管T5-T7为低时,允许晶体管T5和T6给输出节点632和634预充电至电源电压VDD水平。如真值表600b所不,差分输出信号OUTT和OUTF取决于单端输入信号602(例如,A),并且可与差分输入信号(BT和BF)相同或可与差分输入信号的互补相同。例如,当A为逻辑O时,OUTT和OUTF与BT和BF分别相同。但是,当A为逻辑I时,OUTT和OUTF分别为BT和BF的互补。当在评估阶段时,真值表600b与输入信号BT和BF的差分XOR真值表一致,该真值表确认电路600A的操作为差分X0R。XOR电路600A的少故障本质可从真值表600b中看出,该真值表表示在评估阶段,只有BT和BF其中之一可变低或为低,且作为其结果,随后只有一路输出(0UTT或0UTF)可变低。但是,在现有的XOR电路中,依照输入的到达时间,可在输出上看出多个过渡。
[0059]在一些实施方式中,少故障和低动态功率XOR电路600A可被应用以实现图2、3A和3B的XOR门,以消除额外过渡、减少XOR外围逻辑(例如,通过?80 % )和XOR外围面积(例如,通过?20%)的动态功率,以及实现可预测最坏情况延迟路径。
[0060]如此处所解释的,在一些实施方式中,X0R电路600A可在多个XOR时段实现。
[0061]图7是根据该主题技术的一个或多个实施方式的多阶段差分XOR电路700的示例。多阶段差分XOR电路700所示的是如何连接上文所描述的XOR电路当中的四个(例如,710-1至710-4)以构成5输入XOR功能,其中,5输入XOR功能可对输入A0、Al、A2、A3和B上实现XOR功能AO e Al e A2 e A3 e B A输入为单端输入,由反相器704转换为差分。在一些应用中,XOR功能间的物理距离可很大,因为它需要跨越长线,如图7所示,电阻器720-1至720-4用于表示XOR电路710-1至710-4所跨越的长线。感测放大器740用于感测XOR树差分输出的小差分信号,以在感测放大器740的输出节点742给出最终单端输出信号(OUT)。每个XOR电路710的结构与XOR电路600A相似,且每个阶段(例如,710-3)的BT和BF输入是已通过长线(例如,由电阻器720-2标示)的前一个阶段(例如,710-2)的OUTT和0UTF。该4阶段差分XOR电路700仅为示例,更多阶段可以以相似方式耦合,以形成更大的XOR树。
[0062]图8是根据该主题技术的一个或多个实施方式的应用该主题技术特征的通信设备800的示例。通信设备800的示例包括以太网络的以太网交换机,如包括数据中心网络、企业网络或其他专用网络的专用网络。通信设备800包括若干输入端口 IPl-1Pn和多个输出端口EPl-EPm。在一个或多个实施方式中,一个或多个输入端口 IPl-1Pn可从另一交换机和网络的端点设备接收数据包。通信设备800进一步包括硬件部件,例如应用型特定用途集成电路(ASIC)810(在一些实施方式中,可作为现场可编程门阵列(FPGA)来实现)、缓冲器820、处理器830、存储器840和软件模块850。
[0063]在一些实施方式中,ASIC810可包括可操作以实行PHY电路的功能的合适的逻辑、电路、接口和/或代码。缓冲器820包括合适的逻辑、电路系统、代码和/或接口,可操作上述逻辑、电路系统、代码和/或接口以接收和存储和/或延迟用于通过一个或多个输出端口EPl-EPm通信的数据块。处理器830包括可保证通信设备800的处理数据和/或控制操作的合适的逻辑、电路系统和/或代码。在这点上,处理器830可保证提供控制信号至通信设备800的各种其他部分。处理器830还控制通信设备800的各种部分之间的数据传送。此外,处理器830可保证操作系统或以其他方式执行代码的的实现以管理通信设备800的操作。处理器830还可执行图4的算法400,以进行存储器840的多读操作。
[0064]存储器840包括合适的逻辑、电路系统和/或代码,上述逻辑、电路系统和/或代码可保证各种不同类型的信息(例如,接收数据、生成数据、代码和/或配置信息)的存储。存储器840包括,例如RAM、R0M、闪存和/或磁存储器。在该主题技术的各种实施方式中,存储器840可包括RAM、DRAM、SRAM、T-RAM、Z-RAM、TTRAM或任何其他存储介质。存储器840可包括软件模块850,该软件模块850当由处理器(例如,处理器830)执行时,可执行ASIC 810的一些或全部功能。在一些实施方式中,软件模块850包括代码,该代码当由处理器执行时,可实行如通信设备800的配置的功能。
[0065]在一些实施方式中,存储器840是宽带多端口存储器,如图1的存储设备100,且存储器840包括该主题技术的少故障XOR树(例如,图6A的600A)。这可导致与现有的两端口算法XOR存储器相比的密度显著(例如,约50 % )的提高、由于减小模区的成本节省和由于附加同步读操作能力的性能提高。使用本主题技术的差分XOR树,可大体上减少XOR外围逻辑(例如,通过80 % )和XOR外围面积(例如,通过约20 % )的动态功率,且可导致可预测最坏情况延迟路径。
[0066]本领域的那些技术人员应当理解,此处所描述的各种示意性方框、模块、元件、部件和方法可作为电子硬件、计算机软件或二者的结合实现。为了示出硬件和软件的这个可互换性,各种示意性方框、模块、元件、部件和方法在上文中一般从功能角度而言来描述。此类功能是否作为硬件或软件实现取决于施加于整个系统的特定应用和设计限制。技术工人可以不同的方法对每个特定应用实现所描述的功能。各种部件和方框可不同地安排(例如,以不同的顺序安排或以不同的方法分割),而全部不脱离该主题技术的范围。
[0067]如此处所使用,位于一系列项之前的短语“至少其一”,以及术语“和”或“或”来区分所述多项的任意一个,更改整个列表而非列表的每个部分(即,每个项)。短语“至少其一”不要求所列每项的至少其一的选择;而是,该短语允许包括所述多项的任何一个的至少其一和/或所述多项的任意组合的至少其一和/或每项的至少其一。通过示例的方法,短语“A、B和C的至少其一”或“A、B或C的至少其一”每个指代仅A、仅B或仅C;A、B和C的任意组合;和/或每个A、B和C的至少其一。
[0068]诸如方面、该方面、另一方面、一些方面、一个或多个方面、实现方式、该实现方式、另一实现方式、一些实现方式、一个或多个实现方式、实施方式、该实施方式、另一实施方式、一些实施方式、一个或多个实施方式、配置、该配置、另一配置、一些配置、一个或多个配置、该主题技术、该公开内容、本公开内容、其其他变体等是为方便,而非意味着涉及此类短语的实施方式对该主题技术是至关重要的,或此类公开内容适用于该主题技术的所有配置。涉及此类短语(多个短语)的公开内容可适用于所有配置或一个或多个配置。涉及此类短语(多个短语)的公开内容可提供一个或多个实例。诸如方面或一些方面的短语可指代一个或多个方面,反之亦然,且这类似地适用于其他前述的短语。
[0069]此处,单词“示例性”被用来意指“充当实例、例子或示出”。此处描述为“示例性”或“实例”的任何实施方式并不一定诠释为比其他实施方式优选的或有优势的。并且,在术语“包含”、“具有”等被用于描述或权利说明的程度上,此类术语旨在以与术语“包括”类似的方式而有包含性,因为当应用时,“包括”在权利说明中被阐释为过渡词。
[0070]贯穿这个公开内容(对本领域的那些普通技术人员而言已知或之后将要被知)所描述的各种方面的元件的所有结构和功能对等物,此处明确通过引用将其结合与此,并且旨在被权利说明所囊括。并且,此处所公开的事物中,没有旨在不考虑是否此类公开内容是否在权利说明中明确叙述而贡献于公众的。没有权利说明元件将依据《美国法典》第三十五章,第一百一十二条,第六段而诠释,除非所述元件使用短语“用于……的方法”明确叙述,或在方法权利说明的情况下所述元件使用短语“用于......的步骤”叙述。
[0071]提供先前描述,以保证本领域的任何技术人员实践此处所描述的各种方面。对这些方面的各种更改对应本领域的那些技术人员而言将是显而易见的,且此处所规定的一般原则可被运用于其他方面。因此,权利说明并非旨在限于此处所示的方面,但被给予与该语言权利要求一致的整个范围,除非明确如此陈述,其中对单数元件的指代并非旨在意指“一个和只有一个”,而是“一个或多个”。除非另外明确陈述,术语“一些”指代一个或多个。阳性代词(例如,他的)包括阴性和中性(例如,她的和它的),并且反之亦然。标题和副标题,如果存在,是仅为方便使用而非限制该主题技术。
【主权项】
1.一种高带宽多读存储设备,所述设备包括: 多个存储块,所述多个存储块中的每个存储块包括多个存储子块,其中,所述多个存储块包括辅助性存储块,所述多个存储子块包括辅助性存储子块; 多个地址输入总线:以及 多个输出数据总线,配置为输出与多个地址相对应的数据,其中,在多读操作期间,所述多个地址与所述多个地址输入总线相对应; 其中,所述多个地址与所述多个存储块中的一个存储块的所述多个存储子块中的单个存储子块相对应。2.根据权利要求1所述的设备,其中,所述多个输出数据总线中的至少部分输出数据总线配置为通过一个或多个异或门耦合至除所述单个存储子块外的至少两个存储子块。3.根据权利要求1所述的设备,其中,所述多个输出数据总线的第一输出数据总线配置为输出与所述多个地址的第一地址相对应的数据,所述第一地址在所述多读操作期间与所述多个地址输入总线的第一地址输入总线相对应,其中,所述辅助性存储子块中的不是所述辅助性存储块的一部分的各辅助性存储子块配置为包含主要辅助性数据,并且其中,至少一个异或门配置为提供所述主要辅助性数据,且配置为在写操作期间,接收来自所述多个存储块中的不同块的所述多个存储子块中的至少两个存储子块的输入数据,所述多个存储子块中的所述至少两个存储子块包括所述各辅助性存储子块。4.根据权利要求1所述的设备,其中,作为所述辅助性存储块的一部分的每个辅助性存储子块配置为包含次级辅助性数据,其中至少一个异或门配置为提供所述次级辅助性数据,且配置为在写操作期间,接收来自所述多个存储块中的至少两个存储块的所述多个存储子块中的至少两个存储子块的输入数据。5.根据权利要求1所述的设备,其中,所述辅助性存储块的最后一个辅助性存储子块配置为包含三级辅助性数据,其中,至少一个异或门配置为提供所述三级辅助性数据,且配置为在写操作期间,接收来自所述辅助性存储块的至少两个存储子块的输入数据。6.根据权利要求1所述的设备,其中,第二输出数据总线配置为输出与所述多个地址的第二地址相对应的数据,所述第二地址在所述多读操作期间与第二地址输入总线相对应,其中,所述第二输出数据总线耦合至第一读异或门,所述第一读异或门配置为接收来自所述多个存储块中的第一存储块的一个存储子块的数据和所述多个存储块中的所述第一存储块的一个辅助性存储子块的数据,其中,所述第一存储块的所述一个存储子块和所述第一存储块的所述一个辅助性存储子块不同。7.根据权利要求1所述的设备,其中,所述多个输出数据总线的第三输出数据总线配置为输出与所述多个地址的第三地址相对应的数据,所述第三地址在所述多读操作期间与所述多个地址输入总线的第三地址输入总线相对应,其中,所述第三输出数据总线耦合至第二读异或门,所述第二读异或门配置为接收来自所述多个存储块中的第二存储块的一个存储子块的数据和所述第二存储块的一个辅助性存储子块的数据,其中,所述第二存储块的所述一个存储子块和所述第二存储块的所述一个辅助性存储子块不同。8.根据权利要求1所述的设备,进一步包括与所述多个存储子块的每个存储子块相对应的数据输出路径,其中,所述数据输出路径包括耦合至输出异或门的多路复用器,其中,多个输出异或门连接形成菊花链异或树,并且其中,存储子块的感测放大器配置为将数据传至所述菊花链异或树的一个异或门中。9.一种差分异或电路,所述电路包括: 选择逻辑电路,配置为接收单端输入信号和时钟信号,以及提供与所述单端输入信号相对应的互补输出信号; 预充电路,配置为在预充电阶段,为输出节点预充电;以及 多路复用器,配置为接收差分输入信号和所述互补输出信号,以及在评估阶段,在所述输出节点提供差分输出信号。10.—种用于提供高带宽多读存储设备的方法,所述方法包括: 将存储设备分割为多个存储块,所述多个存储块的每个存储块包括多个存储子块,其中,所述多个存储块包括辅助性存储块,所述多个存储子块包括辅助性存储子块;以及配置所述存储设备的多个输出数据总线以输出与多个地址相对应的数据,其中,所述多个地址在多读操作期间与多个地址输入总线相对应; 其中, 所述多个地址与所述多个存储块中的一个存储块的所述多个存储子块中的单个存储子块相对应。
【文档编号】G06F13/16GK105912484SQ201610090389
【公开日】2016年8月31日
【申请日】2016年2月18日
【发明人】特拉维斯·黑比希, 米龙·比埃, 卡尔·蒙策尔, 理查德·约翰·斯特凡妮
【申请人】美国博通公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1