仿真多端口存储器元件电路的制作方法

文档序号:13166667阅读:236来源:国知局
仿真多端口存储器元件电路的制作方法

本申请主张对提交于2016年6月6日的美国专利申请号15/174,460的优先权,藉此通过引用将其整体地并入到本文中。



背景技术:

集成电路常常包含存储器元件。存储器元件可以用于存储数据。存储器元件常常被布置在阵列中。在典型的阵列中,使用数据线来将数据写入到存储器元件中,并使用数据线来从加载有数据的存储器元件读取数据。

可以将存储器元件配置在双端口布置中。传统的双端口存储器元件存储通过写入端口接收的数据。通过读取端口从双端口存储器元件读取数据。这样的双端口存储器元件在给定时间处仅支持单个写入或读取操作。这限制了集成电路用其来执行存储器存取操作的总体带宽和速度。

集成电路的某些操作要求相对高的存储器存取带宽和速度能力,使用双端口存储器元件并不能容易地实现这点。例如,集成电路常常执行要求针对给定的数据包一次执行多个存储器读取和写入请求的复杂或高速操作。



技术实现要素:

集成电路可以包括存储器元件电路。存储器元件电路可以包括多个双端口存储器元件(例如,具有单个读取端口和单个写入端口的块随机存取存储器电路),其被布置并被控制以仿真或有效地形成具有多个读取和写入端口的多端口存储器元件。

所述存储器元件电路可以具有多个写入端口和多个读取端口。双端口存储器元件的各个组(bank)可以被耦合到所述写入端口中的每一个。可以通过所述写入端口中的一个或多个并行地接收写入数据。可以将所述写入数据的副本存储在对应组中的每个双端口存储器元件处。切换电路可以被耦合在所述存储器元件电路的组与读取端口之间。可以使用由基于逻辑异或(xor)的控制电路生成的读取控制信号来控制切换电路。所述读取控制信号可以控制所述切换电路以选择性地将读取数据(例如,先前存储的写入数据)从所述多组双端口存储器元件路由至对应的读取端口。例如,所述切换电路可以基于所述读取控制信号而选择性地将所述写入数据中的最近写入的部分从所述组路由至所述读取端口中的给定的一个。

基于逻辑xor的控制电路可以包括

逻辑xor门的第一集合,其接收与被提供给存储器元件的所述组的写入数据相关联的寻址控制信号。所述控制电路可以包括双端口存储器元件的分组,其具有被耦合到逻辑xor门的第一集合的输出端的写入端口,并且所述控制电路可以包括被耦合到双端口存储器元件的所述分组的读取端口的逻辑xor门的第二集合。逻辑xor门的第一集合可以基于接收到的寻址控制信号而生成经修改的寻址控制信号,并且可以将所述经修改的寻址控制信号输出到双端口存储器元件的所述分组以用于存储。逻辑xor门的第二集合可以基于存储在双端口存储器元件的所述分组上的经修改的寻址控制信号来生成所述读取控制信号。

附图说明

图1是根据实施例的具有存储器元件电路的例证性集成电路的图示。

图2是根据实施例的例证性双端口存储器元件的图示。

图3是根据实施例的使用多个双端口存储器元件形成的例证性多端口存储器元件的图示。

图4是根据实施例的示出例证性多端口存储器元件可以如何包括使用基于xor的控制电路控制的双端口存储器元件的数据部分的电路图。

图5是根据实施例的示出可以用于控制形成自多个双端口存储器元件的多端口存储器元件的例证性基于xor的控制电路的电路图。

图6是根据实施例的可以由集成电路执行以便将数据写入到在图3-5中所示的类型的多端口存储器元件的例证性步骤的流程图。

图7是根据实施例的可以由集成电路执行以便从在图3-5中所示的类型的多端口存储器元件中读取数据的例证性步骤的流程图。

具体实施方式

本发明的实施例涉及具有多个端口的集成电路存储器元件。存储器元件,其有时也称为单元,可以包含任何适当数量的晶体管。

存储器元件可以用在使用存储器的任何适当的集成电路中。这些集成电路可以是存储器芯片、具有存储器阵列的数字信号处理电路、微处理器、具有存储器阵列的专用集成电路、诸如其中使用存储器元件用于配置存储器的可编程逻辑器件集成电路之类的可编程集成电路或者任何其它适当的集成电路。在其上使用存储器元件的可编程集成电路可以包括例如可编程阵列逻辑(pal)、可编程逻辑阵列(pla)、现场可编程逻辑阵列(fpla)、电可编程逻辑器件(epld)、电可擦可编程逻辑器件(eepld)、逻辑单元阵列(lca)、复杂可编程逻辑器件(cpld)以及现场可编程门阵列(fpga),仅举几例。

在诸如存储器芯片或其它电路之类的其中需要存储器来存储处理数据的集成电路上,可以使用存储器元件来执行静态随机存取存储器(ram)单元的功能并且存储器元件有时也称为sram单元。在可编程逻辑器件集成电路的上下文中,可以使用存储器元件来存储配置数据,并且因此存储器元件在该上下文中有时也称为配置随机存取存储器(cram)单元。

图1示出可以包括存储器元件(单元或块)18的阵列的集成电路。任何适当的存储器阵列架构可以用于存储器单元18。在图1中示出一个适当布置。在图1的例证性阵列中,只有三行三列的存储器单元18,并且一般来说在存储器阵列17中可以有数百或数千的行和列。阵列17可以是在给定器件10上的数个阵列中的一个,可以是作为较大阵列的一部分的子阵列,或者可以是存储器单元18的任何其它适当的分组。在本文中有时通过示例描述的一个适当的布置中,存储器元件18每个都是块随机存取存储器元件(有时也称为bram或块ram元件或电路)。

集成电路10可以具有用于向存储器阵列17供应信号的控制电路12。控制电路12可以使用引脚14从外部源以及使用诸如路径16之类的路径从内部源接收电源电压、数据以及其它信号。控制电路12可以包括诸如寻址电路、数据寄存器电路、写入电路、读取电路、用于控制存储器元件18的逻辑或存储器电路等等之类的电路。控制电路12可以使用通过引脚14供应的电源电压来在诸如路径20和22之类的路径上产生期望的时变和固定信号。

一般来说,可以有与路径20和22相关联的任何适当数量的导线。例如,阵列17的每一行都可以在路径20中的相应一个中具有相关联的地址线(例如,真实和互补地址线)(作为示例)。阵列17的每一列都可以在路径22中的相应一个中具有相关联的数据线(例如,真实和互补数据线)。例如,地址线20有时也可以称为字线,而数据线有时也可以称为位线。控制电路12可以通过路径22提供要写入到存储器元件18上的写入数据,并且可以通过路径20将对应的写入寻址信号提供给存储器元件18(例如,所述寻址信号可以识别要在其上写入对应数据的存储器地址)。同样地,控制电路12可以通过路径20将读取寻址信号提供给存储器元件18以通过路径22从元件18读取对应数据。

图1的示例仅为例证性的。一般来说,任何期望数量的寻址和数据线可以以任何期望的方式被耦合到元件18的任何期望的集合。术语“行”和“列”仅表示指代存储器阵列17中的单元18的特定分组的一种方式,并且有时可以互换地使用。如果期望的话,可以在路径20和22中使用其它线模式。例如,可以使用不同数量的电源信号、数据信号和地址信号。

集成电路10中的存储器元件18可以是仅具有可以在其处将数据写入到存储器元件或从存储器元件读取数据的两个数据端口的双端口存储器元件。例如,给定的双端口存储器元件可以包括在其处从存储器元件读取数据的单个读取端口和在其处将数据写入到存储器元件的单个写入端口。在其它示例中,给定的双端口存储器元件可以包括两个读取端口而没有写入端口或者包括两个写入端口而没有读取端口。一些集成电路10可以仅包括双端口存储器元件18,而其它集成电路可以包括双端口存储器元件18和具有任何期望数量的端口的其它存储器元件的混合。

如图2中所示,给定的双端口存储器元件30(例如,具有两个数据端口的阵列17中的给定的存储器元件18)可以在诸如写入端口32之类的写入端口处接收数据。存储器元件30可以存储通过写入端口32接收的数据。例如,存储器元件30可以将接收到的数据存储到如通过由存储器元件接收的对应写入寻址信号(未示出)识别的存储器元件30上的期望的位置(地址)。双端口存储器元件30可以例如是双端口ram或块ram元件。当期望从存储器元件30读取所存储的数据时,可以从读取端口34读取所存储的数据。例如,可以从如通过由存储器元件接收的对应读取寻址信号(未示出)识别的双端口存储器元件30上的期望的位置(地址)读取数据。

诸如元件30的双端口ram元件在给定时间处仅支持单个写入或读取操作。这可能限制集成电路10用来访问存储器元件的总体带宽和速度。集成电路10的某些操作可能要求增加的存储器存取带宽/速度,仅使用双端口ram元件并不能容易地实现这点。例如,集成电路10可以执行要求针对给定的数据包一次执行多个读取和写入请求的复杂或高速操作。当使用仅具有单个读取和写入端口的ram元件时这样的操作可能是不可行的。虽然可以在集成电路10上形成具有多个读取和多个写入端口的ram元件,但是这样的存储器元件常常消耗集成电路上的过多资源。

如果期望的话,两个或更多个双端口ram元件30可以被布置并被控制以充当(例如,仿真或有效地形成)具有多于两个数据端口的多端口存储器。例如,多个双端口存储器元件30可以被布置并被控制以有效地通过两个或更多个写入端口接收写入数据并通过两个或更多个读取端口读取数据。图3是示出多端口存储器元件可以如何包括多个双端口ram元件的图示。

如图3中所示,多端口存储器电路37可以包括数个双端口存储器元件31(例如,诸如如图2中所示的具有单个读取端口和单个写入端口的元件30的双端口存储器元件)。多端口存储器电路37在本文中有时也可以称为多端口存储器元件、多端口存储器电路、仿真多端口存储器电路、仿真多端口存储器元件、多端口存储器单元、仿真多端口存储器单元、多端口存储器、仿真多端口ram或者仿真多端口存储器。电路37可以包括切换电路36,其被耦合到双端口存储器元件31。多端口存储器电路37可以具有数量m+1个写入端口40(例如,第一写入端口40-0、第二写入端口40-1、第三写入端口40-2等等),通过其向电路37写入数据(例如,可以通过如图1中所示的路径22将来自图1的电路12的数据写入到多端口存储器37的一个或多个写入端口40)。如果期望的话,电路37可以具有零个写入端口、一个写入端口、两个写入端口、三个写入端口、四个写入端口、多于四个写入端口或者任何其它期望数量的写入端口。

多端口存储器电路37可以具有数量n+1个读取端口42(例如,第一读取端口42-0、第二读取端口42-1、第三读取端口42-2等等),通过其从电路37读取数据(例如,可以通过一个或多个读取端口42从电路37读取数据并通过路径22将数据提供给电路12)。如果期望的话,电路37可以具有零个读取端口、一个读取端口、两个读取端口、三个读取端口、四个读取端口、多于四个读取端口或者任何其它期望数量的读取端口。读取端口的数量n+1可以等于写入端口的数量m+1,或者可以不同于写入端口的数量m+1。

多端口存储器元件37可以包括诸如控制电路46之类的控制电路。切换电路36和双端口存储器元件31有时在本文中也可以统称为多端口存储器元件37的数据部分38、数据存储部分38或数据存储电路38。控制电路46可以生成控制信号rctrl并且可以通过路径44将控制信号rctrl提供给数据部分37以用于控制数据部分38的操作。例如,控制信号rctrl可以控制切换电路36以选择性地将给定存储器元件31的读取端口耦合到多端口电路37的对应读取端口42。

多端口存储器37中的多个双端口存储器元件31可以被分组在一起成为组。每个组中的双端口存储器元件31可以各自被耦合到单个对应的写入端口40。存储器37可以针对每个写入端口40包括对应的一组双端口元件31(例如,多端口存储器38可以包括m+1组元件31)。在给定的组中的每个双端口存储器元件31可以通过切换电路36被耦合到对应的读取端口42(例如,每个组可以包括n+1个双端口存储器元件31)。

在存储器存取操作期间,控制电路12(图1)中的不同电路可以请求诸如数据读取或写入操作之类的存储器存取操作。多个请求电路可以用多端口存储器37执行并行存储器存取请求(例如,多个请求电路可以提供要写入到电路37的数据和/或可以从电路37读取数据)。为了适应多个并行的存储器存取请求,每个请求电路可以通过不同的写入端口40并行地向对应的组提供写入数据,和/或可以通过不同的读取端口42并行地读取数据。当执行存储器存取请求时,请求电路向多端口存储器电路37提供寻址控制信号。寻址控制信号指定存储器37上的要将数据写入到其处的位置(例如,当寻址控制信号是写入寻址信号时)或存储器37上的要从其处读取数据的位置(例如,当寻址控制信号是读取寻址信号时)。为了使用双端口存储器元件仿真多端口存储器,可以将要写入的数据的副本存储在给定组中的每个双端口存储器元件上。可以将写入数据写入在每个双端口存储器元件上在通过对应的寻址控制信号识别的存储器地址处。

可以将数据写入到跨不同写入端口或不同组的存储器元件的同一存储器地址。在该情景中,更近地写入的数据可以有效地覆写存储器电路37上的先前写入的数据,即使先前写入的数据仍存储在不同组的双端口存储器元件上。当请求存储器读取操作时,从存储器37中读出在给定存储器地址处的最近写入的数据(例如,如针对真正的多端口存储器元件将会期望的那样)。可以使用读取控制信号rctrl来控制切换电路36以将针对每个存储器地址的最近写入的数据路由至对应的读取端口42(例如,将数据从最近写入的组路由至读取端口)。

例如,当存储器存取请求电路从电路37请求存储器读取操作时,请求电路可以将对应的读取寻址信号提供给存储器37。控制电路46可以处理读取寻址信号以及先前接收到的写入寻址信号以生成将最近写入的数据路由至对应读取端口的读取控制信号rctrl。以这种方式,存储器存取请求电路可以如同电路37是真正的多端口存储器元件一样与电路37进行交互,即使电路37是使用双端口存储器元件形成的。仿真多端口存储器电路37从而可以使用多个读取和写入端口来并行地写入和/或读取数据。相比于其中仅使用双端口存储器元件30的情景,这可以极大地增加可以用以从集成电路10上的存储器写入和读取数据的带宽和速度。

图4是示出多端口存储器电路37可以如何包括多组双端口存储器元件以便支持并行读取和写入操作的电路图。如图4中所示,多端口存储器电路37包括双端口存储器元件31的组50(例如,诸如图2和3中所示的双端口块ram存储器元件30和31的存储器元件)。在图4的示例中,多端口存储器37包括m+1组双端口元件31(例如,第一组50-0、第二组50-1等)。每个组可以被耦合到对应的写入端口40。每个组50可以包括n+1个双端口存储器元件31(例如,针对每个读取端口42一个存储器元件31)。在给定的组50中的每个双端口存储器元件31的读取端口34可以经由切换电路36的对应的多路复用器52被耦合到多端口存储器38的不同的读取端口42。每个多路复用器52可以具有输入端,所述输入端每一个都被耦合到每个组50的对应列中的存储器元件31(例如,第一多路复用器52-0可以具有被耦合到每个组50中的第一双端口存储器元件31的读取端口34的m+1个输入端并且可以具有被耦合到电路38的读取端口42-0的输出端,第二多路复用器52-1可以具有被耦合到每个组50中的第二双端口存储器元件31的读取端口34的m+1个输入端以及被耦合到读取端口42-1的输出端,等等)。

其中切换电路36包括多路复用器电路的示例仅为例证性的。一般来说,切换电路36可以包括纵横切换电路、开关矩阵电路、切换构造或任何其它期望的切换电路。每个多路复用器电路52可以具有通过对应的控制路径44从控制电路46接收对应的读取控制信号rctrl的控制输入端(例如,第一多路复用器42-0可以通过路径44-0从控制电路46接收第一读取控制信号rctrl,第二多路复用器42-1可以通过路径44-1从控制电路46接收第二读取控制信号rctrl,等等)。读取控制信号rctrl可以控制多路复用器52以将信号从所选输入端路由至对应的读取端口42。

控制电路46可以包括逻辑异或(xor)电路,并且因而有时在本文中也可以称为基于xor的控制电路54。基于xor的控制电路54可以包含一个或多个逻辑xor门,并且如果期望的话,包括一个或多个双端口存储器元件,所述一个或多个双端口存储器元件基于诸如写入寻址控制信号wadd和读取寻址控制信号radd之类的寻址控制信号来生成控制信号rctrl。基于xor的控制电路54可以从正请求存储器存取操作的集成电路10上的电路(例如,控制电路12上的存储器存取请求电路)接收写入寻址控制信号wadd和读取寻址控制信号radd。基于xor的控制电路54可以通过对应的地址控制线56从正在请求存储器写入操作的不同存储器请求电路平行地接收多个写入寻址控制信号wadd(例如,电路54可以通过第一路径56-0从第一请求电路接收第一写入寻址信号wadd0,通过第二路径56-1从第二请求电路接收第二写入寻址信号wadd1,等等)。类似地,基于xor的控制电路54可以通过对应的地址控制线58从正在请求存储器读取操作的不同存储器请求电路平行地接收多个读取寻址控制信号radd(例如,电路54可以通过第一路径58-0从第一请求电路接收第一读取寻址信号radd0,通过第二路径58-1从第二请求电路接收第二读取寻址信号radd1,等等)。一般来说,电路54可以接收针对存储器37的每个写入端口的写入寻址信号,并且可以接收针对存储器37的每个读取端口的读取寻址信号(例如,电路54可以接收m+1个写入寻址信号wadd和n+1个读取寻址信号radd)。

当诸如集成电路10上的控制电路12之类的电路请求存储器存取操作(例如,存储器写入或读取操作)时,请求电路可以将对应的寻址信号wadd和/或radd以及要写入的任何对应数据提供给多端口存储器电路37。例如,请求电路可以通过多个写入端口40将写入数据wdata以及(例如,识别要访问的存储器37上的写入地址的)对应的寻址信号wadd提供给多端口存储器37。

每个请求电路可以通过不同的对应写入端口40来提供写入数据wdata(例如,相应的写入数据值)。例如,第一请求电路可以将写入数据wdata0提供给写入端口40-0以被存储在电路37上的第一存储器地址处。第一请求电路可以通过路径56-0将识别第一存储器地址的对应写入寻址信号wadd0提供给基于xor的控制电路54。同样地,第二请求电路可以将写入数据wdata1提供给写入端口40-1以被存储在电路37上的第二存储器地址处(例如,与第一请求电路提供写入数据wdata0并行地进行或者在不同时间处进行)。第二请求电路可以通过路径56-1将识别第二存储器地址的对应写入寻址信号wadd1提供给控制电路54。第二存储器地址在某些情景中可以与第一存储器地址不同。然而,在其中第二请求电路意图执行覆写操作(例如,以覆写存储器电路37上的数据wdata0)的情景中,第二存储器地址可以与第一存储器地址相同。在上文中出于例证的目的关于端口40-0和40-1描述了该过程,并且一般来说,可以针对写入端口的所有期望的组合来执行该过程。

可以将要写入的数据wdata的副本存储在对应的组50中的每个双端口存储器元件31处。例如,可以将由第一请求电路提供的数据wdata0复制到组50-0中的n+1个双端口存储器元件31中的每一个。组50-0中的每个双端口存储器元件31可以将数据wdata0存储在通过写入寻址信号wadd0识别的第一存储器地址处。同样地,可以将由第二请求电路提供的数据wdata1复制到组50-1中的n+1个双端口存储器元件31中的每一个。组50-1中的每个双端口存储器元件31可以将数据wdata1存储在通过写入寻址信号wadd1识别的第二存储器地址处。

当集成电路10上的电路12请求执行存储器读取操作时,请求电路可以将对应的读取地址信号radd提供给控制电路54(例如,从而识别要读取的存储器37上的读取地址)。每个请求电路例如可以被耦合到不同的对应读取端口42。基于xor的控制电路54可以处理读取地址信号(以及先前接收到的写入地址信号)以针对给定的存储器地址跨组50追踪最近写入的数据。电路54可以生成读取控制信号rctrl以控制多路复用器52针对给定的存储器位置将信号从最近写入的组50路由至存储器37的对应读取端口42。

例如,第三请求电路(例如,被耦合到第一读取端口42-0的请求电路)可以请求来自第一存储器地址的第一读取端口处的存储器读取操作。第三请求电路可以通过路径58-0将识别要从其处读取数据的第一存储器地址的读取地址信号radd0提供给控制电路54。控制电路54可以处理信号radd0以及先前接收到的写入地址信号wadd以生成对应的读取控制信号rctrl0。可以将读取控制信号rctrl0提供给多路复用器52-0以跨组50路由最近写入到第一存储器地址的数据。例如,控制信号rctrl0可以将第一组50-0中的第一双端口存储器元件31的输出路由至读取端口42-0,使得将对应的数据rdata0(例如,数据wdata0)从该双端口存储器元件上的第一存储器地址传送至读取端口42-0(并随后将其提供给第三请求电路)。

在其中第二存储器地址与第一存储器地址相同(例如,当第二请求电路在第一请求电路写入数据wdata0之后将数据wdata1写入到电路37、以便执行其中数据wdata1意图覆写电路37上的数据wdata0的覆写操作时)的情景中,控制信号rctrl0可以控制多路复用器42-0以将第二组50-1中的第一双端口存储器元件31的输出路由至读取端口42-0,使得将对应数据rdata0(例如,数据wdata1)从该双端口存储器元件上的第一存储器地址传送至读取端口42-0。以这种方式,从存储器电路37读取针对每个给定存储器地址的正确的(例如,最近写入的)数据,从而使用双端口存储器元件精确地仿真真正的多端口存储器元件的操作。

在上文中出于例证的目的关于写入端口40-0和40-1以及读取端口42-0描述了该过程,并且一般来说,可以针对写入和读取端口的任何期望的组合来执行该过程。以这种方式执行存储器存取操作可以允许从电路37的多个并行的读取和写入操作。例如,电路37可以具有共计四个端口(例如,两个读取和两个写入端口)以用于执行两个并行的读取和写入操作,可以具有共计八个端口以用于执行四个并行的读取和写入操作,等等。相比于单独的双端口存储器元件30,这可以极大地增加电路37的存储器存取带宽。

在一些情景中,使用针对每个存储器地址追踪最近写入的(例如,“活的”)数据的活值表(lvt)来控制数据部分38。使用通过使用器件10上的逻辑(例如,通过使用一个或多个自适应逻辑模块等)实现且其本身接收写入数据以便追踪最近写入的数据的多端口存储器元件来形成这样的lvt。然而,这样的lvt电路通常消耗器件10上的过多逻辑资源(即,如实现多端口存储器元件所需的那样以及如本身存储写入数据所需的那样)。相比于其中使用这样的基于多端口存储器的lvt的情景,基于xor的控制电路54可以极大地降低控制数据部分38所需的逻辑资源的量。例如,作为存储写入数据wdata其本身的替代,基于xor的控制电路54存储地址信号wadd的经处理的版本,其一般显著地小于写入数据wdata。

图5是示出基于xor的控制电路54可以如何包括多个逻辑xor门和双端口存储器元件以便控制数据部分38的电路图。如图5中所示,基于xor的控制电路54可以包括多个双端口存储器元件80(例如,诸如图2的双端口块ram元件30的双端口存储器元件)。双端口存储器元件80可以例如被布置在行和列中。存储器元件80中的每一行可以被耦合到单个对应的写入(输入)逻辑xor门74的输出端。例如,控制电路54的第一行(分组)中的每个双端口存储器元件80可以具有其被耦合到第一写入xor电路74-0的输出端的写入端口,电路54的第二行中的每个双端口存储器元件80可以具有其被耦合到第二写入xor电路74-1的输出端的写入端口,等等。

在图5的示例中,每个写入xor电路74的输入端被耦合到相应的写入地址控制线56(例如,可以有m+1个写入xor电路74和m+1行双端口存储器元件80)和来自电路54中除了xor电路位于其中的那行以外的每一行的给定的存储器元件80。例如,逻辑xor门74-0可以具有被耦合到控制线56-0和在除了第一行之外的每一行中的第一存储器元件80的输入端(例如,来自每一行中的对应元件80-1、80-2、80-m等),逻辑xor门74-1可以具有被耦合到控制线56-1和除了第二行之外的每一行中的单个元件80的输入端,等等。

每个写入xor门74可以对其输入执行逻辑xor运算以生成被提供给并被写入到元件80的对应行的输出。为了例证电路54的操作,考虑图5中示出的示例,其中,通过线56-0将写入地址信号wadd0的值a提供给第一xor门74-0。写入地址信号wadd0的值a例如可以是如图4中所示的由数据部分38通过写入端口40-0接收的对应数据wdata0的写入地址。

先前存储的值old可以被存储在每个存储器元件80上(例如,元件的第二行80-1可以各自存储值old1,存储器元件的最后一行80-m可以各自存储值oldm,等等)。值old可以例如是基于先前接收到的写入地址信号wadd生成的。xor门74-0可以对wadd0的值a与来自存储器元件80的每个其它行的先前存储的值old执行逻辑xor运算。例如,xor电路74-0可以输出等于(a)xor(old1)xor(old2)…xor(oldm)的值a'。输出值a'然后可以被存储在电路54的第一行中的每个存储器元件80-0上。可以执行类似运算以生成被存储在电路54的其它行上的值(例如,当接收到对应信号wadd时)。

也可以将写入寻址信号wadd直接提供给存储器元件80的寻址控制输入端以控制针对存储器元件80的写入寻址(例如,也可以将写入寻址控制信号wadd0直接提供给第一行中的存储器元件80-0中的每一个的寻址输入端(未示出)以控制经xor运算的值a'的写入,也可以将写入寻址控制信号wadd1直接提供给第二行中的存储器元件80-1中的每一个的寻址输入端以控制xor电路74-1的输出的写入,等等)。通过以此方式将经处理(例如,经xor运算的)寻址信号写入到存储器元件80,电路54可以针对存储器电路37的每个存储器地址追踪数据部分38中的哪个组50存储最近写入的数据。

电路54中的存储器元件80可以通过对应的控制线58(出于清楚的目的未在图5中图示出)接收读取地址控制信号radd。存储器元件80的每一列可以接收读取地址控制信号radd中的对应的一个。例如,电路54的部分72的第一列中的每个存储器元件80可以通过控制线58-0(如图4中所示)接收读取地址控制信号radd0,电路54的部分72的第二列中的每个存储器元件80可以通过控制线58-1接收读取地址控制信号radd1,电路54的部分72的最后一列中的每个存储器元件80可以通过控制线58-n接收读取地址控制信号raddm,等等。读取地址控制信号radd可以例如用于从存储器元件80读取被提供给写入xor门74的值(例如,作为在其期间将诸如数据a'之类的信息写入到存储器元件的写入操作的一部分)。

此外,读取地址控制信号radd可以用于生成读取控制信号rctrl。当从多端口存储器元件37请求数据读取操作时,对应的读取地址控制信号radd可以控制电路54的读取部分72内的存储器元件80生成对应的读取控制信号rctrl。在读取部分72的给定列内的每个元件80的读取端口可以被耦合到对应的读取(输出)逻辑xor门76。例如,部分72的第一列中的存储器元件80的读取端口可以被耦合到读取xor门76-0的输入端,部分72的第二列中的存储器元件80的读取端口可以被耦合到读取xor门76-1的输入端,等等。一般来说,在电路54的读取部分72中可以有n+1列存储器元件80(例如,读取部分72的列的数量可以等于电路38的列的数量或者电路38的读取端口的数量)。

读取xor门76可以对接收自电路54上的部分72的对应列中的每个存储器元件80的数据执行逻辑xor运算以生成对应的读取控制信号rctrl(例如,第一读取xor门76-0可以生成第一读取控制信号rctrl0,第二读取xor门76-1可以生成第二读取控制信号rctrl1,等等)。为了例证读取xor门76的操作,考虑图5中示出的示例,其中,值a'被存储在电路80的第一行中,值old1被存储在电路80的第二行中,等等。在该情景中,读取xor门76-0可以对值a'与存储在其列中的存储器元件80的每个其它行上的值old到oldm执行逻辑xor运算。例如,xor电路76-0可以执行逻辑运算(a')xor(old1)xor(old2)…xor(oldm),其将在逻辑上检索值a(例如,针对第一行的写入地址控制信号wadd0的原始存储的值)。以这种方式,电路54可以生成读取控制信号rctrl,其控制电路38中的多路复用器52输出针对每个存储器地址的最近写入的数据。

虽然电路54内的所有存储器元件80的写入端口被耦合到写入xor电路74,但是读取部分72内的存储器元件80的读取端口可能例如没有被耦合到写入xor门74。如果期望的话,电路54可以包括未被包括在读取部分72中且具有未被耦合到读取xor门76的读取端口的数列存储器元件80。例如,电路54可以包括存储器元件80的写入部分70,其具有被耦合到写入xor门74而未被耦合到读取xor门76的读取端口。一般来说,在写入部分70中可以有任何期望数量的列。在一个适当布置中,在写入部分70中可以有m列存储器元件80。通过形成与读取部分72分离的写入部分70,电路54可以执行写入操作(例如,将信号写入到存储器元件80)同时并行地执行读取操作(例如,生成读取控制信号rctrl)。相比于例如其中所有元件80的读取端口都被耦合到写入xor门74的情景,这可以增强电路54的操作的总体速度。

图6是可以由器件10处理以将数据写入到具有双端口存储器元件的多端口存储器电路37的例证性步骤的流程图。

在步骤90处,器件10上的控制电路12(图1)可以识别用于写入到多端口存储器电路37的写入数据wdata。控制电路12可以识别多端口存储器电路37上的对应写入地址以便写入所识别的写入数据,并且可以生成对应的写入地址控制信号wadd。

在步骤92处,控制电路12可以将所识别的写入数据wdata和对应的写入地址控制信号wadd提供给多端口存储器电路37。例如,电路12可以通过多端口存储器电路37的对应写入端口40将写入数据wdata提供给存储器电路37的数据部分38。电路12可以通过对应的控制路径56将写入地址控制信号wadd提供给基于xor的控制电路54。

在步骤94处,可以将写入数据wdata写入到被耦合到对应写入端口40的组50中的每个双端口存储器元件31。写入数据wdata可以例如被存储在该组中的每个存储器元件31上在通过控制信号wadd识别的写入地址处。

在步骤96处,基于xor的控制电路54可以处理接收到的写入地址控制信号wadd。例如,对应的写入xor电路74可以对接收到的信号wadd与来自被耦合到其它控制线56的存储器元件80的对应存储值执行逻辑xor运算。可以将该xor电路74的输出写入到对应行中的所有双端口存储器元件80。可以例如只要打算将数据wdata写入到多端口存储器元件37时就重复这些步骤。如果期望的话,可以针对被提供给多端口存储器电路37的不同端口和/或写入地址的写入数据wdata的多个值执行图6的步骤。如果期望的话,可以并行地执行步骤94和96,或者可以在执行步骤94之前执行步骤96。

图7是可以由器件10处理以从具有双端口存储器元件的多端口存储器电路37读取数据的例证性步骤的流程图。可以例如在已将数据写入到多端口存储器电路37之后(例如,在图6的处理步骤96之后)执行图7的步骤。

在步骤100处,器件10上的控制电路12(图1)可以识别要从多端口存储器电路37读取的数据。控制电路12可以识别多端口存储器电路37上的对应读取地址以便读取所识别的数据,并且可以生成对应的读取地址控制信号radd。

在步骤102处,控制电路12可以将读取地址控制信号radd提供给多端口存储器电路37。例如,电路12通过对应的控制路径58读取地址控制信号radd给基于xor的控制电路54。

在步骤104处,基于xor的控制电路54可以基于读取地址控制信号radd和存储在存储器元件80上的先前存储的经处理的写入地址控制信号wadd来生成读取控制信号rctrl。例如,基于xor的控制电路可以使用读取xor门76对所存储且经处理的写入地址控制信号执行逻辑xor运算以生成通过控制线44提供的读取控制信号rctrl。

在步骤106处,可以通过路径44将读取控制信号rctrl提供给切换电路52。控制信号rctrl可以控制开关42将最近写入的数据从双端口存储器元件31的对应列路由到对应的读取端口42上作为读取数据rdata。该读取数据rdata可以是控制电路12所请求的数据,并且可以随后将其提供给控制电路12。可以例如只要打算从多端口存储器元件37读取数据rdata时就重复这些步骤。如果期望的话,可以针对要从多端口存储器电路37的不同地址和读取端口读取的读取数据rdata的多个值并行地执行图7的步骤。以这种方式,可以从和向仿真多端口存储器电路37上的多个读取和写入地址并行地读取和写入数据,从而相比于其中仅使用双端口存储器元件来存储数据的情景而增加系统的总体存储器存取速度和带宽。

通过使用基于xor的控制电路54来控制数据部分38,相比于其中使用接收写入数据其自身的基于多端口存储器的lvt来控制数据部分38的情景,电路37可以要求更少的逻辑资源。例如,可以使用与其中基于多端口存储器的lvt控制数据部分38的情景中相比少于1%的器件10上的自适应逻辑模块(alm)来实现电路37。同样地,多端口存储器37的最大频率可以是其中使用lvt来控制数据部分38的情景的最大频率的差不多两倍。在其它情景中,在不控制对应数据部分38的情况下使用逻辑xor电路来仿真多端口存储器。在这些情景中,逻辑xor电路接收写入数据其本身并将其存储到双端口存储器元件上同时还输出读取数据。相比于此类情景,具有数据部分38和基于xor的控制电路54的多端口存储器37可以消耗少于一半的逻辑资源(例如,alm)、少差不多30%的存储器资源(例如,由于控制电路54仅需要存储寻址信号,其远小于写入数据信号),并且可以以多差不多25%的最大频率进行操作。

迄今为止,关于集成电路描述了实施例。本文中描述的方法和装置可以并入到任何适当的电路中。例如,它们可以被并入到众多类型的器件中,诸如可编程逻辑器件、专用标准产品(assp)以及专用集成电路(asic)。可编程逻辑器件的示例包括可编程阵列逻辑(pal)、可编程逻辑阵列(pla)、现场可编程逻辑阵列(fpla)、电可编程逻辑器件(epld)、电可擦可编程逻辑器件(eepld)、逻辑单元阵列(lca)、复杂可编程逻辑器件(cpld)以及现场可编程门阵列(fpga),仅举几例。

虽然以特定顺序描述了操作的方法,但是应理解的是,可以在所描述的操作之间执行其它操作,可以调整所描述的操作使得它们在稍微不同的时间处发生或者可以将所描述的操作分布在允许在与处理相关联的各间隔处发生处理操作的系统中,只要以期望的方式执行叠加操作的处理即可。

示例

以下示例涉及另外的实施例。

示例1是一种具有多个写入端口和多个读取端口的存储器元件电路,所述存储器元件电路包括:多组双端口存储器元件,其中,所述多组中的每个组被耦合到所述写入端口中的相应的一个;切换电路,其被耦合在所述多组双端口存储器元件与所述多个读取端口中的第一读取端口之间;以及逻辑异或(xor)门,其被耦合到所述切换电路的控制输入端,其中,所述逻辑xor门输出控制所述切换电路选择性地将读取数据从所述多组双端口存储器元件路由至所述第一读取端口的读取控制信号。

示例2是示例1的存储器元件电路,其中,所述切换电路具有多个输入端,并且所述多个输入端中的每个输入端被可选地耦合到所述多组双端口存储器元件中的不同的相应的组。

示例3是示例2的存储器元件电路,其中,所述切换电路具有可选地耦合到所述多组中的第一组中的第一双端口存储器元件的读取端口的第一输入端,并且其中,所述切换电路具有可选地耦合到所述多组中的第二组中的第二双端口存储器元件的读取端口的第二输入端。

示例4是示例1的存储器元件电路,其中,所述多个写入端口中的每个写入端口可选地将写入数据传送到所述多组双端口存储器元件中的不同相应组中的每个双端口存储器元件。

示例5是示例4的存储器元件电路,可选地还包括:控制电路,其接收与所述写入数据相关联的写入寻址控制信号,其中,所述逻辑xor门至少部分地基于由所述控制电路接收的所述写入寻址控制信号来生成所述读取控制信号。

示例6是示例5的存储器元件电路,其中,所述控制电路可选地包括:附加逻辑xor门,其具有接收所述写入寻址控制信号的输入端;以及被耦合在所述逻辑xor门的输入端与所述附加逻辑xor门的输出端之间的双端口存储器元件的分组。

示例7是示例6的存储器元件电路,其中,双端口存储器元件的所述分组可选地包括块随机存取存储器(ram)电路,其每一个都具有单个读取端口和单个写入端口。

示例8是示例1的存储器元件电路,可选地还包括:附加切换电路,其被耦合在所述多组双端口存储器元件与所述多个读取端口中的第二读取端口之间;以及附加逻辑xor门,其被耦合到所述附加切换电路的控制输入端,其中,所述附加逻辑xor门输出控制所述附加切换电路选择性地将附加读取数据从所述多组双端口存储器元件路由至所述第二读取端口的附加读取控制信号。

示例9是示例8的存储器元件电路,其中,所述切换电路可选地包括第一多路复用器,其具有被耦合到所述多组中的第一组中的第一双端口存储器元件的读取端口的第一输入端,并且具有被耦合到所述多组中的第二组中的第二双端口存储器元件的读取端口的第二输入端,并且其中,所述附加切换电路包括第二多路复用器,其具有被耦合到所述第一组中的第三双端口存储器元件的读取端口的第三输入端,并且具有被耦合到所述第二组中的第四双端口存储器元件的读取端口的第四输入端。

示例10是示例1的存储器元件电路,其中,所述双端口存储器元件可选地包括块随机存取存储器(ram)电路,其每一个都具有单个写入端口和单个读取端口。

示例11是一种存储器电路,其通过多个写入端口接收写入数据并且其具有多个读取端口,所述存储器电路包括:逻辑异或(xor)门的第一集合,其接收与所述写入数据相关联的寻址控制信号;逻辑xor门的第二集合,其不同于逻辑xor门的所述第一集合,并且其生成读取控制信号;双端口存储器元件的分组,其被耦合在逻辑xor门的所述第一和第二集合之间;数据存储电路,其存储所述写入数据;以及切换电路,其中,所述切换电路基于由逻辑xor门的所述第二集合生成的所述读取控制信号而选择性地将最近写入的写入数据值从所述数据存储电路路由至所述多个读取端口中的给定的读取端口。

示例12是示例11的存储器电路,其中,逻辑xor门的所述第一集合可选地基于接收到的寻址控制信号生成经修改的寻址控制信号,并且其中,双端口存储器元件的所述分组存储所述经修改的寻址控制信号。

示例13是示例12的存储器电路,其中,读取被存储在双端口存储器元件的所述分组上的被可选地修改的寻址控制信号并将其提供给逻辑xor门的所述第二集合的输入端,并且逻辑xor门的所述第二集合基于读取自双端口存储器元件的所述分组的所述经修改的寻址信号来生成所述读取控制信号。

示例14是示例11的存储器电路,其中,双端口存储器元件的所述分组可选地包括双端口存储器元件的第一集合,其具有被耦合到逻辑xor门的所述第一集合的输出端的写入端口并且具有被耦合到逻辑xor门的所述第二集合的输入端的读取端口。

示例15是示例14的存储器电路,其中,双端口存储器元件的所述分组可选地还包括双端口存储器元件的第二集合,其具有被耦合到逻辑xor门的所述第一集合的所述输出端的写入端口并且具有被耦合到逻辑xor门的所述第一集合的输入端的读取端口。

示例16是示例11的存储器电路,其中,双端口存储器元件的所述分组可选地包括:第一行双端口存储器元件,其具有被耦合到逻辑xor门的所述第一集合中的第一逻辑xor门的输出端的写入端口;以及第二行双端口存储器元件,其具有被耦合到逻辑xor门的所述第一集合中的第二逻辑xor门的输出端的写入端口,其中,所述第一逻辑xor门具有接收第一寻址控制信号的第一输入端和被耦合到所述第二行中的双端口存储器元件的输出端的第二输入端,并且其中,所述第二逻辑xor门具有接收第二寻址控制信号的第三输入端和被耦合到所述第一行中的双端口存储器元件的输出端的第四输入端。

示例17是示例11的存储器电路,其中,所述数据存储电路可选地包括多组双端口存储器元件,每个组接收相应的写入数据值,每个组中的每个双端口存储器元件存储由该组接收的相应的写入数据值的副本,并且所述切换电路基于所述读取控制信号选择性地将最近写入的写入数据值从双端口存储器元件的所述组中的给定的一个路由至给定的读取端口。

示例18是一种操作集成电路上的存储器电路的方法,所述方法包括:用双端口存储器元件的第一集合存储通过所述存储器电路的多个写入端口接收的写入数据;用控制电路接收与所述写入数据相关联的写入寻址信号,处理所述写入寻址信号,并且将经处理的写入寻址信号存储在不同于双端口存储器元件的所述第一集合的双端口存储器元件的第二集合上;以及用异或(xor)逻辑电路控制切换电路以基于存储在双端口存储器元件的所述第二集合上的所述经处理的写入寻址信号而选择性地将存储在双端口存储器元件的所述第一集合上的所述写入数据路由至所述存储器电路的多个读取端口。

示例19是示例18的方法,其中,所述切换电路可选地包括被耦合到所述多个读取端口中的读取端口中的每一个的相应的开关,并且其中,所述xor逻辑电路包括相应的xor逻辑门,其每个都将相应的读取控制信号提供给所述相应开关中的对应的一个。

示例20是示例18中定义的方法,可选地还包括:在双端口存储器元件的所述第一集合处通过所述多个写入端口中的每一个并行地接收所述写入数据,其中,控制所述切换电路包括控制所述切换电路以将存储在双端口存储器元件的所述第一集合上的所述写入数据并行地路由至所述多个读取端口中的每一个。

例如,也可以相对于本文中描述的方法或过程来实现上文中描述的装置的所有可选特征。前文仅为对本发明的原理的例证,并且本领域技术人员可以进行各种修改而不脱离本发明的范围和精神。可以单独地或以任何组合实现前述实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1