存储器仲裁电路的制作方法

文档序号:6376590阅读:204来源:国知局
专利名称:存储器仲裁电路的制作方法
存储器仲裁电路本申请要求2011年9月16日提交的美国专利申请US 13/234,925的优先权,其全部内容通过引用合并于此。
背景技术
诸如可编程集成电路这样的集成电路可以包含静态随机存取存储器(SRAM)单元形式的易失性存储器单元。诸如SRAM单元这样的易失性存储器单元通常是基于交叉耦合的反相器(即,锁存器)。存储器单元通常按照阵列排列。在通常的阵列中,数据线用于写入数据到存储器单元中和从存储器单元读出数据。地址线可以用于选择哪个存储器单元被存取。特定应用要求存储器单元具有双端口能力(即,包括两个端口的存储器单元,每一个端口用于进行读/写操作)。为了支持双端口操作,通常按照八晶体管构造形成存储器单元。双端口存储器单元包括两个交叉耦合的反相器。第一对存取晶体管耦合到交叉耦合 的反相器以用作第一读/写端口,并且第二对存取晶体管耦合到交叉耦合的反相器以用作第二读/写端口。然而,按此方式排列的现有的八晶体管(8T)双端口存储器单元占据超过现有的六晶体管(6T)单端口存储器单元的双倍面积。在减少双端口存储器电路到的面积的努力中,开发了允许使用6T存储器单元来提供同步的双端口功能(即,使用单个时钟控制两个端口两者)的技术。例如,双时钟技术涉及在高时钟相位期间(以执行与第一端口相关联的请求)和在低时钟相位期间(以执行与第二端口相关联的请求)存取存储器单元。然而,双时钟存储器存取限制存储器性能并且不能够用于支持异步双端口操作(即,涉及使用具有不同时钟频率和/或相位的两个单独的时钟信号来控制两个端口的操作)。

发明内容
提供具有存储器单元的集成电路。该存储器单元可以包括阵列排列的单端口存储器单元。该存储器单元可以配置为与提供多端口存储器功能的外围存储器控制电路接口。例如,存储器电路可以包括控制电路,其指引行寻址电路和列驱动器/感测电路来进行在存储器阵列中的特定位置读和写存取。该存储器电路还可以包括数据寄存器和逻辑电路,该数据寄存器和逻辑电路配置为分别经过第一和第二端口从至少第一处理电路和第二处理电路产生存储器存取请求。该存储器电路可以包括可操作用于接收与第一端口相关联的存储器请求的第一请求产生器和可操作用于接收与第二端口相关联的存储器请求的第二请求产生器。第一请求产生器和第二请求产生器中的每一个可以包括存储电路,当存在未决请求时该存储电路锁存高电平并且当不存在未决请求时锁存低电平。该存储器电路还可以包括耦合在第一请求产生器和第二请求产生器以及控制电路之间的仲裁电路。该仲裁电路可以配置为从第一请求产生器和第二请求产生器接收存储器存取请求并且处理执行与第一端口和第二端口相关联的存储器存取请求的顺序。在本发明的一个适当实施方式中,该仲裁电路可以可在同步模式下操作(S卩,使用单个时钟控制来自第一端口和第二端口的请求的模式)。如果在给定的时钟周期期间仅仅在两个端口中的第一个端口接收到一个存储器请求,则与第一端口相关联的该一个存储器请求可以被执行。如果分别在第一端口和第二端口同时接收到不同类型的存储器请求(即,如果一个端口接收到读而另一个端口接收到写),则仲裁电路可以配置为提供读优先级(即,仲裁电路可以首先执行读操作)或者写优先级(即,仲裁电路可以首先执行写操作)。如果分别在第一端口和第二端口同时接收到相同类型的存储器请求(即,如果两个端口均接收到读或者两个端口均接收到写),则仲裁电路可以配置为提供第一端口优先级(即,该仲裁电路可以首先执行与第一端口相关联的操作)或者第二端口优先级(即,该仲裁电路可以首先执行与第二端口相关联的操作)。在本发明的另一个适当实施方式中,仲裁电路可以可在异步模式下操作(S卩,使用具有不同频率和/或相位的第一时钟信号和第二时钟信号控制来自第一端口和第二端口的请求的模式)。在异步模式下,仲裁电路将在接收到时立即执行存储器存取请求。例如,如果仲裁电路在第一端口检测到给定的存储器请求,则该仲裁电路将指引控制电路执行给定的存储器请求。如果在给定的存储器执行完成之前在第二端口接收到第二存储器请求, 则第二存储器请求将被挂起直至给定的存储器请求执行完成为止。当检测到给定的存储器请求已经执行完成时,该仲裁电路将指引控制电路执行第二存储器请求。从所附的附图和以下详细描述中,本发明的其它特征、实质和各种优点将变得更明显。


图1是具有根据本发明的一个实施方式的具有仲裁电路的多端口存储器电路的图。图2是根据本发明的一个实施方式的耦合到相关联的列复用电路的存储器单元电路的图。图3是根据本发明的一个实施方式的示例性的请求产生器的电路图。图4是根据本发明的一个实施方式的用于确定在同步双端口存储器操作期间哪个端口被选择的表。图5是根据本发明的一个实施方式的可操作用于支持同步双端口存储器操作的不例性的仲裁电路的电路图。图6是根据本发明的一个实施方式的用于同步双端口模式中的处理未决存储器存取请求的示例性步骤的流程图。图7是根据本发明的一个实施方式的可操作用于支持异步双端口存储器操作的不例性的仲裁电路的电路图。图8是根据本发明的一个实施方式的用于异步双端口模式中的处理未决存储器存取请求的示例性步骤的流程图。图9是例示根据本发明的一个实施方式的在异步双端口模式期间不同的存储器存取序列的时序图。
具体实施方式
本发明的实施方式涉及静态随机存取存储器电路。本发明的存储器电路可以用于任何适合的集成电路。例如,该存储器电路可以用于集成电路存储器装置或者专用集成电路(ASIC)。图1是包括配置成支持同步和异步多端口存储器操作的具有仲裁电路的存储器电路的集成电路10的图。存储器电路可以包含至少一个存储器阵列22。如图1所示,存储器阵列22可以包括按照行和列排列的存储器单元(有时称为存储器单元)100。存储器单元100可以包括单端口存储器单元。例如,存储器单元100可以是具有六个晶体管的单端口差分存储器单元(例如,具有用作存储器单元的单个端口的一对存取晶体管的存储器单元)。使用单端口存储器单元来提供双端口存储器功能可以帮助增加晶片产量,提供降低的最小要求电源电压(即,降低的功耗)并且节省集成电路体积。存储器单元100的每一个行可以经过相关联的字线80而被耦合到字线(WL)驱动器电路32。例如,存储器单元100的第一行可以经过第一字线80而被耦合到WL驱动器电路32,存储器单元100的第二行可以经过第二字线80而被耦合到WL驱动器电路32,等等。WL驱动器电路32可以用于在被选择的一个字线80上使字线信号有效来选择存储器单元·100的行。字线信号和字线80有时分别被称为地址信号和地址线。存储器单元100的每一个列可以经过相关联的位线(BL) 82耦合到诸如写位线复用电路34和读位线复用电路这样的复用(MUX)电路。位线82有时可以被称为数据线。例如,存储器单元100的第一列可以经过第一对位线而被耦合到电路34和36,存储器单元100的第二列可以经过第二对位线而被耦合到电路34和36,等等。位线82可以被提供适当电压以从所选择的存储器单元100读取数据和写入数据到存储器单元100中。此处描述的术语行和列仅仅是示例性的,并且可以互换地使用或者可以用于指代存储器单元的任何组/集合。写BL复用电路34可以配置为以选择位线82的子集以被写驱动器电路38驱动(例如,电路34可以配置为将数据线的所选择的部分耦合到写驱动器电路38)。例如,考虑存储器阵列22包括存储器单元100的128个列并且写驱动器电路38仅仅包括32个差分写驱动器的情形。在此示例中,写BL复用电路34可以包括4 I复用电路,该复用电路用于将四对位线的每一个组中的所选择的位线的对耦合到电路38中相应的写驱动器(即,在写操作期间,复用电路34可以用于将每第四对位线耦合到相应的写驱动器)。读BL复用电路36可以配置为将位线82的子集合耦合到感测放大器电路40 (例如,电路36可以配置为将数据线的所选择的部分耦合到感测放大器电路38)。例如,考虑存储器阵列22包括存储器单元100的128个列并且感测放大器电路40仅仅包括32个差分感测放大器的情形。在此示例中,读BL复用电路36可以包括4 I复用电路,该复用电路用于将四对位线的每一个组中的所选择的位线的对耦合到电路40中相应的感测放大器(即,在读操作期间,复用电路36可以用于将每第四对位线耦合到相应的感测放大器)。一般地,复用电路34和36的复杂性(B卩,电路34和36是否提供2 I复用、4 I复用、8 I复用等)可以依赖于存储器阵列22中存在的存储器列的数量和可用的用于驱动信号到位线对82并且从位线对82接收信号的写驱动器和感测放大器的数量。通过使用周边存储器电路,阵列22中的6T单端口存储器单元100可以提供双端口功能。例如,字线驱动电路32可以通过复用器46从第一地址解码器42-A和第二地址解码器42-B中的一个接收行地址信号WL_ADDR。复用器46可以具有耦合地址解码器42-A的第一输入端、耦合到地址解码器42-B的第二输入端和耦合到字线驱动电路32的输出端。位线复用电路34和36还可以经过复用器46从地址解码器42-A和42-B中的一个接收列地址信号BL_ADDR。地址解码器42-A可以接收地址信号A_ADDR (即,与第一存储器端口相关联的行地址信号和列地址信号),并且地址解码器42-B可以接收地址信号B_ADDR (即,与第二存储器端口相关联的行地址信号和列地址信号)。复用器46可以被用于选择性地将信号A_ADDR和B_ADDR中的一个引导到其输出端(即,从而字线驱动器32从两个存储器端口中的所选择的一个存储器端口接收行信号WL_ADDR并且复用电路34和36从所选择的存储器端口接收列信号BL_ADDR)。写驱动器电路38可以被在复用器48的输出端产生的字节使能信号BYTE_EN控制。复用器48可以具有耦合到第一字节使能电路44-A的第一输入端和耦合到第二字节使能电路44-B的第二输入端。字节使能电路44-A可以接收与第一存储器端口相关联的使能信号A_BE,并且字节使能电路44-B可以接收与第二存储器端口相关联的使能信号B_BE。复用器48可以被用于选择性地将使能信号A_BE和B_BE中的一个引导到其输出端。信号BYTE_EN可以被用于导通写驱动器电路38的期望部分。例如,考虑写驱动器电路38包括32个写驱动器的情形。信号BYTE_EN可以被用于导通32个写驱动器中的仅仅八个并且禁止剩余24个写驱动器,从而仅仅八个列被同时加载(即,每次仅仅一个字节的数据被写入)。如果期望,则信号BYTE_EN可以被用于选择写驱动器电路38的任意适当子集合。写驱动器电路38和WL驱动器电路32可以被诸如控制电路30这样的控制电路控制。例如,控制电路30在读/写操作期间可以通过路径31向WL驱动器电路32提供字线使能信号WL_EN以导通电路32。控制电路30还可以在写操作期间通过路径37提供写使能信号WD_EN以导通写驱动器电路38,并且在读操作期间通过路径39提供读使能信号SA_EN以导通感测放大器电路40。 感测放大器电路40可以通过复用器52耦合到与第一存储器端口相关联的第一输出锁存器54-A和与第二存储器端口相关联的第二输出锁存器54-B。复用器52可以配置为将读信号引导到两个输出锁存器54-A和54-B中的所选择的一个。输出锁存器54-A还可以在针对第一端口的读出期间(作为示例),接收将锁存器54-A使能的使能信号A_0UTEN以选择性地捕捉来自感测放大器电路40的32个输出数据信号中的八比特。类似地,输出锁存器54-B还可以在针对第二端口的读出期间(作为示例),接收将锁存器54-B使能的使能信号B_0UTEN以选择性地捕捉来自感测放大器电路40的总共输出数据比特的子集合。信号A_0UTEN和B_0UTEN可以将对应于被信号BYTE_EN使能的列的相同的比特使能。一般地,输出锁存器54-A和54-B可以配置为捕捉来自感测放大器电路40的输出比特的任何期望部分。写驱动器电路38可以从复用器50的输出端接收写数据。复用器50可以具有接收与第一存储器端口相关联的写数据々_0爪的第一输入端和接收与第二存储器端口相关联的写数据B_DIN的第二输入端。复用器50可以配置为将信号A_DIN和B_DIN中的一个引导到写驱动器电路的输入端。如图1所示,可以使用数据寄存器和逻辑电路72提供地址信号A_ADDR和B_ADDR、使能信号A_BE和B_BE、输入数据信号A_DIN和B_DIN和其它控制信号。电路72可以接收与第一存储器端口相关联的第一时钟信号A_CLK和与第二存储器端口相关联的第二时钟信号B_CLK。存储器电路从数据寄存器和逻辑电路72的基准点看去是双端口存储器,因为存储器电路能够处理来自使用不同的时钟信号A_CLK和、或B_CLK控制的第一端口和第二端口的读和写请求。电路72可以具有产生与第一端口相关联的第一写请求信号A_WREQ和第一读请求信号A_RREQ的第一对输出端和产生与第二端口相关联的第二写请求信号B_WREQ和第二读请求信号B_RREQ的第二输出端。可以使用第一请求产生器60-A接收信号A_WREQ和A_RREQ,可以使用第二请求产生器60-B接收B_WREQ和B_RREQ。第一请求产生器和第二请求产生器可以均包含锁存器电路62,锁存器电路62在存在未决的未完成的请求的情况下锁存高电平并且在不存在存储器请求的情况下锁存低电平。请求产生器可以配置为作为对接收到读或者写请求的响应在其输出端产生脉冲。例如,如果请求产生器60-A接收写请求,则信针对预定时间段将被升为高电平。作为另一个示例,如果请求产生器60-B接收读请求,则信号B_REQ针对预定时间段将被升为高电平。可以使用诸如仲裁电路64这样的仲裁电路接收信号仲裁电路64还可以直接从数据寄存器和逻辑电路72 (如虚线指示)接收读请求信号A_RREQ和B_RREQ。仲裁电路64可以用于确定处理来自第一端口和第二端口的请求的顺序。仲裁电路64可以通过输出路径70输出端口选择信号P0RT_SEL。信号P0RT_SEL可以被通过路径70馈送到复用器46、48、50和52的控制输入端,以将与所选择的端口相关联的电路引导到存储器阵列22。例如,低P0RT_SEL可以指示来自第一端口的请求被当前选择用于处理,高P0RT_SEL可以指示来自第二端口的请求被当前选择用于处理。当仲裁电路64决定执行请求时,电路64将临时使输出信号START有效以指导控制电路30启动期望的读/写操作。当当前的存储器请求被执行完成时(即,当对期望的存储器位置的存储器阵列22的读/写操作完成时),仲裁电路64可以从控制电路30接收有效的信号END。信号END可以通过逻辑AND门66耦合回到请求产生器60-A,并且可以通过逻辑AND门68耦合回到请求产生器60-B。具体地,逻辑AND门66可以具有接收信号END的第一输入端、接收信号P0RT_SEL的第二反相输入端和耦合到被提供信号A_END的产生器60-A的输出端。逻辑AND门68可以具有接收信号END的第一输入端、接收信号P0RT_SEL的第二输入端和耦合到被提供信号E_END的产生器60-B的输出端。作为对接收到高A_END的响应,请求产生器60-A中的锁存器62可以被清除,并且作为对接收到高B_END的响应,请求产生器60-B中的锁存器62可以被清除。结合图1描述的存储器架构仅仅是示例性的,不旨在限制本发明的范围。如果期望,则仲裁电路64可以配置为处理来自任意期望数量的端口的存储器请求以支持三端口存储器模式、四端口存储器模式等。图2是例示4 I列复用的图(即,在写期间四个列中的一个被共享的差分写驱动器34’驱动,并且在读期间四个列中的一个被耦合到共享差分感测放大器40’)。如图2所示,每个列可以包括耦合到位线对82-1和82-2的多个存储器单元。例如,存储器单元100可以包括由交叉耦合的反相器对102和104形成的双稳态单元。反相器104可以具有用作针对单元100的第一数据存储节点的输出端,并且反相器102可以具有用于针对单元100的第二数据存储节点的输出端。在第一数据存储节点和第一位线82-1之间可以耦合第一存取晶体管106,并且在第二数据存储节点和第二位线82-2之间可以耦合第二存取晶体管108。存取晶体管106和108 (有时称为地址晶体管)可以被通过字线80提供的字线信号WL控制。在此示例中,信号WL可以有效以选择存储器单元100的行,并且每四个相邻的单元中的一个在数据加载操作期间可以被耦合到相关联的写驱动器34’或者在数据感测操作期间耦合到相关联的感测放大器40’。图2的存储器单元仅仅是示例性的,不旨在限制本发明的范围。如果期望,则存储器单兀10可以是单端部单端口存储器单兀(single-ended single-port memory cell),可以包括超过两个交叉耦合的反相电路,或者可以使用任意适当的单端口存储器构造实施。
图3是请求产生器60(8卩,请求产生器604或者603)的电路图。如图3所示,请求产生器60可以具有可以在其接收写请求信号WREQ的第一输入端、可以在其接收读请求信号RREQ的第二输入端以及可以在其接收信号END的第三输入端。请求产生器60可以包括逻辑OR门110具有用作产生器60的第一和第二输入端的第一和第二输入端(即,产生器110的第一输入端可以接收WREQ,并且产生器110的第二输入端可以接收RREQ)。逻辑门110可以具有耦合到单发脉冲产生器112的输出端。单发脉冲产生器112可以配置为作为对检测到WREQ和/或RREQ中的上升沿的响应产生具有给定脉冲宽度的脉冲。产生器112产生的脉冲可以被通过反相器114馈送到锁存电路62的第一输入端。电路62可以是包含交叉耦合的逻辑NAND门116和118 (作为示例)的置位-复位(SR)锁存器。给定的脉冲宽度可以足够宽以提供充分时间来置位或者复位锁存器62的状态。锁存电路62可以具有被配置为通过反相器119接收信号END的第二输入端和在其上提供信号REQ的输出端。作为检测到信号WREQ和/或RREQ中的上升沿的响应,信号REQ可以被升高(即,锁存器62将被设置在高状态),因为单发脉冲产生器112被耦合到SR锁存器62的“置位”输入端。作为对检测到有效的信号END的响应,锁存器62可以被设置在低状态(即,信号REQ将被驱动为低),因为信号END被引导到SR锁存器62的“复位”输入端。仲裁电路64可以按照同步模式或者异步模式操作。在同步模式中,可以使用单个时钟源控制来自多个端口的请求。结果,来自多个端口的存储器存取请求可以在单个时钟信号的上升沿同时到达。同步模式仲裁电路64可以例如基于图4的表确定选择多个端口中的哪一个。在两个端口的仅仅一个上存在未决请求的情形中,与未决请求相关联的端口可以被选择用于处理(参见,例如,多个行120)。在一个端口接收到写请求并且另一个端口接收到读请求的情形下,接收到读请求的端口可以被选择用于处理(即,仲裁电路64可以配置为实施读端口优先,如多个行122指示)。如果期望,则仲裁电路64还可以配置为实施写端口优先(即,接收到写请求的端口可以被选择用于处理)。在两个端口均接收到写请求或者两个端口均接收到读请求的情形中,第二端口 B可以被给予优先级(即,在端口 B的请求将在端口 A的请求之前处理),如多个行124例示的。如果期望,则仲裁电路64还可以配置为当两个端口均接收相同类型的存储器请求时实施端口 A优先(S卩,当端口 A和端口 B均接收到读请求或者端口 A和端口 B均接收到写请求时端口 A处的请求将在端口 B处的请求之前处理)。
图5是配置为提供结合图4的表描述的端口选择功能的仲裁电路64的电路图。如图5所示,仲裁电路64可以包括逻辑NAND门132和134和逻辑NOR门136和140。逻辑NAND门132可以具有从请求产生器60-A接收信的第一输入端、从请求产生器60-B接收信号B_REQ的第二输入端、通过反相器130从控制电路30接收信号END的第三输入端以及在其上产生信号START的输出端。逻辑NAND门134可以具有接收信号A_REQ的第一输入端、从数据寄存器和逻辑电路72接收A_RREQ的第二输入端以及输出端。逻辑NAND门136可以具有耦合到门134的输出端的第一输入端、从数据寄存器和逻辑电路72接收信号B.RREQ的第二输入端以及输出端。逻辑NOR门140可以具有耦合到门136的输出端的第一输入端、通过反相器138从请求产生器60-B接收信号B_REQ的第二输入端以及其上产生信号P0RT_SEL的输出端。图5的示例性电路图仅仅是示例性的,不旨在限制本发明的范围。可以使用配置为提供期望的端口选择能力的任意适当的设置形成仲裁电路64。图6是涉及同步模式下的存储器电路的操作的示例性步骤的流程图。在步骤150,仲裁电路64可以检测是否存在未决请求。如果检测到至少一个未决请求,则与所选择的端口相关联的请求(即,与基于结合图4描述的类型的逻辑表选择的端口相关联的请求)将被执行。在执行所选择的请求时,仲裁电路64可以使信号START有效以指引控制电路30启动存储器阵列22的存取(步骤154)。在步骤156,信号P0RT_SEL可以基于仲裁电路64的逻辑而被设定到期望值。在步骤158,可以在期望的存储器地址进行与所选择的端口相关联的读或者写操作。当完成存储器存取时,控制电路30可以将信号END升为高以清除与所选择的端口相关联的请求产生器以用信号通知当前请求的完成(步骤160)。处理可以按环路回到步骤150以处理后续的请求,如路径162指示的。此时,与未选择的端口相关联的先前未决的请求(即,与被选择的端口相关联的请求并行接收到的请求)如果存在,则可以在处理来自被选择的端口的另一个请求之前被处理。如果不存在未决的请求,则仲裁电路64将等待并且针对新到达的存储器请求监视其输入(步骤150)。在本发明的另一个实施方式中,仲裁电路64可以配置为在异步模式下操作(例如,这样的模式,其中,使用不同相位和/或频率的时钟控制来自多个端口的请求)。在异步双端口操作中,来自不同存储器端口的请求经常在不同时间到达。结果,仲裁电路64可以配置为当被电路64接收到时就处理第一到达的存储器请求,并且当第一到达的存储器请求已经被执行完成时处理第二(之后)到达的存储器请求。图7是在异步模式下操作的仲裁电路64的一个适当排列的示例性电路图。如图7所示,仲裁电路64可以包括逻辑NAND门172、174、176、178和180,每一个逻辑NAND门具有多个输入端和输出端。逻辑NAND门176可以具有从请求产生器60-A接收信号A_REQ的第一输入端、I禹合到门172的输出端的第二输入端、I禹合到门178的输出端的第三输入端,并且可以在其输出端产生信号nA_GRANT。逻辑NAND门178可以具有从请求产生器60-B接收信号B_REQ的第一输入端、稱合到门174的输出端的第二输入端、I禹合到门176的输出端的第三输入端,并且可以在其输出端产生信号nB_GRANT。当来自产生器60-A的请求被选择时信号nA_GRANT可以被驱动为低,并且当来自产生器60-B的请求被选择时信号nB_GRANT可以被驱动为低。
仲裁电路64还可以包括反相器182,具有耦合到门178的输出端的输入端和在其上提供信号P0RT_SEL的输出端。逻辑NAND门180可以具有耦合到门176的输出端的第一输入端、耦合到门178的输出端的第二输入端、以及可以在其输出端产生信号START。逻辑NAND门172可以具有耦合到反相器182的输出端的第一输入端和从控制电路30接收信号END的第二输入端,并且逻辑NAND门174可以具有通过另一个反相器170耦合到反相器182的输出端的第一输入端和接收信号END的第二输入端。按此方式交叉耦合的NAND门176和178可以用于提供针对仲裁电路64的锁存和门选功能。例如,门176和178将仅仅使信号nA_GRANT和nB_GRANT中的一个有效,并且仅当检测到信号END中的上升沿时翻转P0RT_SEL。图7的示例性电路图仅仅是示例性的,不旨在限制本发明的范围。图8是用于在异步模式下操作图1的存储器电路的示例性步骤的流程图。在步骤200,仲裁电路64可以等待来自请求产生器60-A(端口 A)和60-B(端口 B)的请求。如果在检测到端口 B处的请求之前检测到端口 A处的请求,则来自端口 A的请求可以被执行(步骤202)。如果在检测到端口 A处的请求之前检测到端口 B处的请求,则来自端口 B的请求可以被执行(步骤216)。在步骤202,信号START可以被升高,信号P0RT_SEL可以被设定为“O”并且可以在特定的地址位置进行期望的读/写操作。在步骤210,信号END可以被升为高以清除请求产生器60-A并且将信号START拉低以用信号通知当前存储器存取的完成。如果没有未决的请求,则处理可以环路返回步骤200,如路径212所指示。如果检测到端口 B处的未决请求(即,在步骤202被进行时接收到的未决请求),则处理可以环路返回步骤216,如路径214所指示。在步骤216,来自端口 B的请求可以被执行。例如,信号START可以被升高,信号P0RT_SEL可以被设定为“I”并且可以在特定的地址位置进行期望的读/写操作。在步骤224,信号END可以被升为高以清除请求产生器60-B并且将信号START拉低以用信号通知当前存储器存取的完成。如果没有未决的请求,则处理可以环路返回步骤200,如路径226所指示。如果检测到端口 A处的未决请求(即,在步骤216被进行时接收到的未决请求),则处理可以环路返回步骤202,如路径228所指示。一般地,如果来自端口 A和B的存储器请求将同时到达,则这两个请求中的随机一个将被选择用于处理。无论从端口 A和端口 B同时到达的存储器请求被执行的顺序,仲裁电路64将确保两个存储器请求均被执行。图9是示出在异步模式下的仲裁电路64的操作的时序图。如图9所示,端口 A时钟信号A_CLK和端口 B时钟信号B_CLK可以具有不同的时钟频率和相位。在时间tl,信号A_REQ被升高并且信保持低(即,从端口 A接收到单个请求)。作为对A_REQ升高的响应,信号START可以被驱动为高并且信号nA_GRANT可以被驱动为低。在时间t2,信号END可以被临时升为高以用信号通知端口 A请求的完成(以清除产生器60-A中的锁存器62),使得A_REQ和START被驱动为低并且nA_GRANT被驱动为闻。在时间t3,信号B_REQ被升高并且信号A_REQ保持低(即,从端口 B接收到单个请求)。作为对B_REQ升高的响应,信号P0RT_SEL可以被驱动为高,信号START可以被驱动为高并且信号nB_GRANT可以被驱动为低。在时间t4,信号END可以被临时升为高以用信号通知端口 B请求的完成(以清除产生器60-B中的锁存器62),使得B_REQ、START和PORT_SEL被驱动为低并且nB_GRANT被驱动为高。时间tl到t4因此示出仲裁电路64从两个不同端口接收第一请求和第二请求的情形,其中在第一请求被执行之后接收到第二请求。仲裁电路64还能够在处理来自端口 A的存储器请求时从端口 B接收存储器请求,如时间t5到t9例示的。在时间t5,信号A_REQ被升高并且B_REQ保持低。作为对A_REQ升高的响应,信号START可以被驱动为高并且信号nA_GRANT可以被驱动为低。在时间t6,信号B_REQ被升高并且A_REQ仍然高(即,在与端口 A相关联的存取完成之前在端口 B接收到了请求)。B_REQ的这个改变将不影响控制信号(即信号nA_GRANT、nB_GRANT、START、P0RT_SEL和END),因为来自端口 A的请求还未完成。在时间t6短暂之后(在时间t7),信号END可以被升为高并以用信号通知端口 A请求的完成,使得信号A_REQ和START被驱动为低并且nA_GRANT被驱动为高。因为B_REQ仍然高,仲裁电路64通过将信号P0RT_SEL驱动为高,将信号START驱动为高并且将信号nB_GRANT驱动为低来立即执行来自端口 B的未决请求(在时间t8)。在时间t9,信号END可以被临时升为高以用信号通知端口 B请求的完成,使得B_REQ、START和P0RT_SEL被驱动为低并且nB_GRANT被驱动为高。时间t5到t9因此示出仲裁电路64从两个不同端口接收第一请求和第二请求的情形,其中在第一请求被执行完成之前接收到第二请求。仲裁电路64还能够在处理来自端口 B的存储器请求时从端口 A接收存储器请求,如时间tlO到tl4例示的。在时间tlO,信号B_REQ被升高并且A_REQ保持低。作为对B_REQ升高的响应,信号P0RT_SEL可以被驱动为高,信号START可以被驱动为高并且信号nB_GRANT可以被驱动为低。在时间tll,信号A_REQ被升高并且B_REQ仍然高(即,在与端口B相关联的存取完成之前在端口 A接收到了请求)。A_REQ的这个改变将不影响控制信号nA_GRANT、nB_GRANT、START、P0RT_SEL 和 END),因为来自端 口 B 的请求还未完成。在时间tll短暂之后(在时间tl2),信号END可以被升为高并以用信号通知端口B请求的完成,使得信号B_REQ、START和P0RT_SEL被驱动为低并且nB_GRANT被驱动为高。因为A_REQ仍然高,仲裁电路64将通过(在时间tl3)将信号START驱动为高并且将信号nA_GRANT驱动为低来立即执行来自端口 A的未决请求。在时间tl4,信号END可以被临时升为高以用信号通知端口 A请求的完成,使得A_REQ和START被驱动为低并且nA_GRANT被驱动为闻。结合图1到图9描述的存储器架构的双端口功能仅仅是示例性的,不旨在限制本发明的范围。仲裁电路64可以配置为按照用户期望在同步模式或者异步模式下操作(例如,依赖于当前订制应用,仲裁电路64可以在同步模式和异步模式之间切换)。如果期望,则此处描述的实施方式可应用于其它类型的存储器单元并且可以配置为支持同步模式和异步模式下的多端口存储器操作。附加实施方式附加实施方式1、一种具有第一端口和第二端口的双端口存储器,所述双端口存储器包括单端口存储器单元的阵列;控制电路,所述控制电路耦合到所述阵列并且可操作用于从所述阵列读数据以及写数据到所述阵列中;第一请求产生器,所述第一请求产生器可操作用于从所述第一端口接收第一存储器存取请求;第二请求产生器,所述第二请求产生器可操作用于从所述第二端口接收第二存储器存取请求;以及仲裁电路,所述仲裁电路耦合到所述控制电路以及所述第一请求产生器和所述第二请求产生器,其中,所述仲裁电路可在同步模式下操作,在所述同步模式中使用具有相同频率的至少两个时钟信号控制所述第一请求产生器和所述第二请求产生器,以及可操作用于指引所述控制电路在所述至少两个时钟信号的每一个时钟周期中执行第一存储器存取请求和第二存储器存取请求中的单个。附加实施方式2、根据附加实施方式I所述的双端口存储器,其中,所述第一请求产生器和所述第二请求产生器中的至少一个包括脉冲产生器和锁存电路,其中,所述脉冲产生器可操作以响应于接收到存储器存取请求而产生脉冲,以及其中,所述锁存电路可操作用于当所述存储器存取请求未被执行时存储第一逻辑值,并且可操作用于当已经使用所述控制电路执行完成了存储器存取请求时存储不同于所述第一逻辑值的第二逻辑值。附加实施方式3、根据附加实施方式I所述的双端口存储器,其中,所述仲裁电路可操作用于基于预定的逻辑表选择第一存储器存取请求和第二存储器存取请求中的单个以便执行。附加实施方式4、根据附加实施方式I所述的双端口存储器,其中,所述仲裁电路包括逻辑门,所述逻辑门具有可操作用于从所述第一请求产生器接收第一输出信号的第一输入端、可操作用于从所述第二请求产生器接收第二输出信号的第二输入端、可操作用于从所述控制电路接收控制信号的第三输入端以及提供输出信号的输出端,并且其中,在所述控制电路存取所述阵列时所述输出信号有效。附加实施方式5、根据附加实施方式I所述的双端口存储器,其中,所述仲裁电路包括逻辑门,所述逻辑门具有耦合到所述第二请求产生器的第一输入端、耦合到第一请求产生器和第二请求产生器的第二输入端以及提供输出信号的输出端的,并且其中,当执行第一存储器存取请求时所述输出信号具有第一逻辑值,并且当执行第二存储器存取请求时具有不同于所述第一逻辑值的第二逻辑值。附加实施方式6、根据附加实施方式I所述的双端口存储器,其中,所述仲裁电路还可在异步模式下操作,在所述异步模式下使用具有不同频率的至少两个时钟信号控制所述第一请求产生器和所述第二请求产生器。附加实施方式7、根据附加实施方式6所述的双端口存储器,其中,所述第一请求产生器和所述第二请求产生器中的至少一个包括脉冲产生器和锁存电路,其中,所述脉冲产生器可操作以响应于接收到存储器存取请求而产生脉冲,并且其中,所述锁存电路可操作用于当所述存储器存取请求未被执行时存储第一逻辑值,并且可操作用于当已经使用所述控制电路执行完成了存储器存取请求时存储不同于所述第一逻辑值的第二逻辑值。附加实施方式8、根据附加实施方式6所述的双端口存储器,其中,所述仲裁电路可操作用于当在异步模式下操作时基于预定的逻辑表选择第一存储器存取请求和第二存储器存取请求中的单个以便执行。附加实施方式9、根据附加实施方式6所述的双端口存储器,其中,所述第一存储器存取请求和所述第二存储器存取请求在不同时间到达,以及其中,当在异步模式下操作时所述仲裁电路可操作用于选择第一存储器存取请求和第二存储器存取请求中的较早到达的一个存储器存取请求以便执行。附加实施方式10、根据附加实施方式6所述的双端口存储器,其中,所述仲裁电路可操作用于使输出信号有效以指引所述控制电路执行第一存储器存取请求和第二存储器存取请求中的被选择的一个存储器存取请求,以及响应于完成所选择的存储器存取请求而使输出信号无效。附加实施方式11、一种具有第一端口和第二端口的双端口存储器,所述双端口存储器包括单端口存储器单元的阵列;控制电路,所述控制电路耦合到所述阵列并且可操作用于从所述阵列读数据以及写数据到所述阵列中;第一请求产生器,所述第一请求产生器可操作用于从所述第一端口接收第一存储器存取请求;第二请求产生器,所述第二请求产生器可操作用于从所述第二端口接收第二存储器存取请求;以及仲裁电路,所述仲裁电路耦合到所述控制电路以及所述第一请求产生器和所述第二请求产生器,其中,所述仲裁电路可在异步模式下操作,在所述异步模式下使用具有各自不同频率的两个时钟信号控制所述第一请求产生器和所述第二请求产生器。附加实施方式12、根据附加实施方式11所述的双端口存储器,其中,所述第一请求产生器和所述第二请求产生器中的至少一个包括脉冲产生器和锁存电路,其中,所述脉冲产生器可操作以响应于接收到存储器存取请求而产生脉冲,并且其中,所述锁存电路可操作用于当所述存储器存取请求未被执行时存储第一逻辑值,并且可操作用于当已经使用所述控制电路执行完成了存储器存取请求时存储不同于所述第一逻辑值的第二逻辑值。附加实施方式13、根据附加实施方式11所述的双端口存储器,其中,控制所述第一请求产生器和所述第二请求产生器的所述至少两个时钟信号具有各自不同相位。附加实施方式14、根据附加实施方式11所述的双端口存储器,其中,所述第一存储器存取请求和所述第二存储器存取请求在不同时间到达,并且其中,当在异步模式下操作时所述仲裁电路可操作用于选择第一存储器存取请求和第二存储器存取请求中的较早到达的一个存储器存取请求以便执行。附加实施方式15、根据附加实施方式11所述的双端口存储器,其中,所述仲裁电路包括具有交叉耦合的第一逻辑门和第二逻辑门的锁存电路,其中,所述第一逻辑门可操作用于从所述第一请求产生器接收第一输出信号并且可操作用于产生具有第一逻辑值的第一控制信号,并且其中,所述第二逻辑门可操作用于从所述第二请求产生器接收第二输出信号并且可操作用于产生具有不同于所述第一逻辑值的第二逻辑值的第二控制信号。附加实施方式16、一种使用包括单端口存储器单元阵列以及第一端口和第二端口的双端口存储器的方法,所述方法包括用控制电路存取单端口存储器单元阵列;用第一请求产生器从所述第一端口接收第一存储器存取请求;用第二请求产生器从所述第二端口接收第二存储器存取请求;以及用仲裁电路指引所述控制电路通过使输出信号有效来执行第一存储器存取请求和第二存储器存取请求中的所选择的一个存储器存取请求。附加实施方式17、根据附加实施方式16所述的方法,所述方法还包括响应于执行完成所选择的存储器存取请求而使所述输出信号无效。附加实施方式18、根据附加实施方式16所述的方法,所述方法还包括在同步模式下操作所述双端口存储器,在所述同步模式中使用具有相同频率的至少两个时钟信号控制所述第一请求产生器和所述第二请求产生器。附加实施方式19、根据附加实施方式16所述的方法,所述方法还包括在异步步模式下操作所述双端口存储器,在所述异步模式中使用具有不同频率的至少两个时钟信号控制所述第一请求产生器和所述第二请求产生器。附加实施方式20、根据附加实施方式16所述的方法,所述方法还包括在同步模式下操作所述双端口存储器,在所述同步模式中使用具有相同频率的至少两个时钟信号控制所述第一请求产生器和所述第二请求产生器;以及在异步步模式下操作所述双端口存储器,在所述异步模式中使用具有不同频率的至少两个时钟信号控制所述第一请求产生器和所述第二请求产生器。附加实施方式21、根据附加实施方式16所述的方法,所述方法还包括用所述控制电路,作为对所选择的存储器存取请求的执行的响应使控制信号有效;以及以及用所述第一请求产生器和所述第二请求产生器接收控制信号。附加实施方式22、根据附加实施方式14所述的方法,其中,所述第一请求产生器和所述第二请求产生器中的至少一个包括脉冲产生器和锁存电路,所述方法还包括响应于检测到存储器存取请求到达第一请求产生器和第二请求产生器中的至少一个请求产生器,用所述脉冲产生器产生脉冲;以及当所述存储器存取请求未被执行时,用所述锁存电路存储第一逻辑值,并且当已经使用所述控制电路执行完成了存储器存取请求时,用所述锁存电路存储不同于所述第一逻辑值的第二逻辑值。以上仅仅是本发明的原理的例示,并且不背离本发明的范围和实质下本领域技术人员可以进行各种修改。上述实施方式可以单独实施或者任意组合实施。
权利要求
1.一种具有第一端口和第二端口的双端口存储器,所述双端口存储器包括单端口存储器单元的阵列;控制电路,所述控制电路耦合到所述阵列并且可操作用于从所述阵列读数据以及写数据到所述阵列中;第一请求产生器,所述第一请求产生器可操作用于从所述第一端口接收第一存储器存取请求;第二请求产生器,所述第二请求产生器可操作用于从所述第二端口接收第二存储器存取请求;以及仲裁电路,所述仲裁电路耦合到所述控制电路以及所述第一请求产生器和所述第二请求产生器,其中,所述仲裁电路可在同步模式下操作,在所述同步模式中使用具有相同频率的至少两个时钟信号控制所述第一请求产生器和所述第二请求产生器,以及可操作用于指引所述控制电路在所述至少两个时钟信号的每一个时钟周期中执行第一存储器存取请求和第二存储器存取请求中的单个。
2.根据权利要求1所述的双端口存储器,其中,所述第一请求产生器和所述第二请求产生器中的至少一个包括脉冲产生器和锁存电路,其中,所述脉冲产生器可操作以响应于接收到存储器存取请求而产生脉冲,以及其中,所述锁存电路可操作用于当所述存储器存取请求未被执行时存储第一逻辑值,并且可操作用于当已经使用所述控制电路执行完成了存储器存取请求时存储不同于所述第一逻辑值的第二逻辑值。
3.根据权利要求1所述的双端口存储器,其中,所述仲裁电路可操作用于基于预定的逻辑表选择第一存储器存取请求和第二存储器存取请求中的单个以便执行。
4.根据权利要求1所述的双端口存储器,其中,所述仲裁电路包括逻辑门,所述逻辑门具有可操作用于从所述第一请求产生器接收第一输出信号的第一输入端、可操作用于从所述第二请求产生器接收第二输出信号的第二输入端、可操作用于从所述控制电路接收控制信号的第三输入端以及提供输出信号的输出端,并且其中,在所述控制电路存取所述阵列时所述输出信号有效。
5.根据权利要求1所述的双端口存储器,其中,所述仲裁电路包括逻辑门,所述逻辑门具有耦合到所述第二请求产生器的第一输入端、耦合到第一请求产生器和第二请求产生器的第二输入端以及提供输出信号的输出端的,并且其中,当执行第一存储器存取请求时所述输出信号具有第一逻辑值,并且当执行第二存储器存取请求时具有不同于所述第一逻辑值的第二逻辑值。
6.根据权利要求1所述的双端口存储器,其中,所述仲裁电路还可在异步模式下操作, 在所述异步模式下使用具有不同频率的至少两个时钟信号控制所述第一请求产生器和所述第二请求产生器。
7.根据权利要求6所述的双端口存储器,其中,所述第一请求产生器和所述第二请求产生器中的至少一个包括脉冲产生器和锁存电路,其中,所述脉冲产生器可操作以响应于接收到存储器存取请求而产生脉冲,并且其中,所述锁存电路可操作用于当所述存储器存取请求未被执行时存储第一逻辑值,并且可操作用于当已经使用所述控制电路执行完成了存储器存取请求时存储不同于所述第一逻辑值的第二逻辑值。
8.根据权利要求6所述的双端口存储器,其中,所述仲裁电路可操作用于当在同步模式下操作时基于预定的逻辑表选择第一存储器存取请求和第二存储器存取请求中的单个以便执行。
9.根据权利要求6所述的双端口存储器,其中,所述第一存储器存取请求和所述第二存储器存取请求在不同时间到达,以及其中,当在异步模式下操作时所述仲裁电路可操作用于选择第一存储器存取请求和第二存储器存取请求中的较早到达的一个存储器存取请求以便执行。
10.根据权利要求6所述的双端口存储器,其中,所述仲裁电路可操作用于使输出信号有效以指引所述控制电路执行第一存储器存取请求和第二存储器存取请求中的被选择的一个存储器存取请求,以及响应于完成所选择的存储器存取请求而使输出信号无效。
11.一种具有第一端口和第二端口的双端口存储器,所述双端口存储器包括单端口存储器单元的阵列;控制电路,所述控制电路耦合到所述阵列并且可操作用于从所述阵列读数据以及写数据到所述阵列中;第一请求产生器,所述第一请求产生器可操作用于从所述第一端口接收第一存储器存取请求;第二请求产生器,所述第二请求产生器可操作用于从所述第二端口接收第二存储器存取请求;以及仲裁电路,所述仲裁电路耦合到所述控制电路以及所述第一请求产生器和所述第二请求产生器,其中,所述仲裁电路可在异步模式下操作,在所述异步模式下使用具有各自不同频率的两个时钟信号控制所述第一请求产生器和所述第二请求产生器。
12.根据权利要求11所述的双端口存储器,其中,所述第一请求产生器和所述第二请求产生器中的至少一个包括脉冲产生器和锁存电路,其中,所述脉冲产生器可操作以响应于接收到存储器存取请求而产生脉冲,并且其中,所述锁存电路可操作用于当所述存储器存取请求未被执行时存储第一逻辑值,并且可操作用于当已经使用所述控制电路执行完成了存储器存取请求时存储不同于所述第一逻辑值的第二逻辑值。
13.根据权利要求11所述的双端口存储器,其中,控制所述第一请求产生器和所述第二请求产生器的所述至少两个时钟信号具有各自不同相位。
14.根据权利要求11所述的双端口存储器,其中,所述第一存储器存取请求和所述第二存储器存取请求在不同时间到达,并且其中,当在异步模式下操作时所述仲裁电路可操作用于选择第一存储器存取请求和第二存储器存取请求中的较早到达的一个存储器存取请求以便执行。
15.根据权利要求11所述的双端口存储器,其中,所述仲裁电路包括具有交叉耦合的第一逻辑门和第二逻辑门的锁存电路,其中,所述第一逻辑门可操作用于从所述第一请求产生器接收第一输出信号并且可操作用于产生具有第一逻辑值的第一控制信号,并且其中,所述第二逻辑门可操作用于从所述第二请求产生器接收第二输出信号并且可操作用于产生具有不同于所述第一逻辑值的第二逻辑值的第二控制信号。
16.一种使用包括单端口存储器单元阵列以及第一端口和第二端口的双端口存储器的方法,所述方法包括用控制电路存取单端口存储器单元阵列;用第一请求产生器从所述第一端口接收第一存储器存取请求;用第二请求产生器从所述第二端口接收第二存储器存取请求;以及用仲裁电路指引所述控制电路通过使输出信号有效来执行第一存储器存取请求和第二存储器存取请求中的所选择的一个存储器存取请求。
17.根据权利要求16所述的方法,所述方法还包括响应于执行完成所选择的存储器存取请求而使所述输出信号无效。
18.根据权利要求16所述的方法,所述方法还包括在同步模式下操作所述双端口存储器,在所述同步模式中使用具有相同频率的至少两个时钟信号控制所述第一请求产生器和所述第二请求产生器。
19.根据权利要求16所述的方法,所述方法还包括在异步步模式下操作所述双端口存储器,在所述异步模式中使用具有不同频率的至少两个时钟信号控制所述第一请求产生器和所述第二请求产生器。
20.根据权利要求16所述的方法,所述方法还包括在同步模式下操作所述双端口存储器,在所述同步模式中使用具有相同频率的至少两个时钟信号控制所述第一请求产生器和所述第二请求产生器;以及在异步步模式下操作所述双端口存储器,在所述异步模式中使用具有不同频率的至少两个时钟信号控制所述第一请求产生器和所述第二请求产生器。
21.根据权利要求16所述的方法,所述方法还包括用所述控制电路,作为对所选择的存储器存取请求的执行的响应使控制信号有效;以及以及用所述第一请求产生器和所述第二请求产生器接收控制信号。
22.根据权利要求16所述的方法,其中,所述第一请求产生器和所述第二请求产生器中的至少一个包括脉冲产生器和锁存电路,所述方法还包括响应于检测到存储器存取请求到达第一请求产生器和第二请求产生器中的至少一个请求产生器,用所述脉冲产生器产生脉冲;以及当所述存储器存取请求未被执行时,用所述锁存电路存储第一逻辑值,并且当已经使用所述控制电路执行完成了存储器存取请求时,用所述锁存电路存储不同于所述第一逻辑值的第二逻辑值。
全文摘要
本发明提供一种具有存储器单元的集成电路。该存储器单元可以是用于提供多端口存储器功能的单端口存储器单元。该集成电路可以包括仲裁电路,该仲裁电路可操作用于从至少第一请求产生器和第二请求产生器接收存储器存取请求。该仲裁电路可以配置为在同步模式和异步模式下操作。在同步模式下操作的仲裁电路可以基于预定的逻辑表进行端口选择。在异步模式下操作的仲裁电路可以在存储器请求被仲裁电路接收到时立即执行存储器请求。在当前存储器存取被进行时接收的请求可以被挂起直至当前存储器存取完成为止。
文档编号G06F13/18GK102999455SQ201210331469
公开日2013年3月27日 申请日期2012年9月7日 优先权日2011年9月16日
发明者R·R-H·胡, 俞海明, H-Y·H·周 申请人:阿尔特拉公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1