专利摘要
专利摘要
本发明公开了一种多读单写片内存储器,包括一个写地址译码器、d(d>1)个门控时钟逻辑电路、第一级d个主锁存器、n个d输入级间传输电路、第二级n个从锁存器、读数据输出通路、以及一个读地址译码及相同地址判断模块,其中,如果所述第一级d个主锁存器为负锁存器,则所述第二级n个从锁存器为正锁存器;如果所述第一级d个主锁存器为正锁存器,则所述第二级n个从锁存器为负锁存器。利用本发明,实现了接近锁存器的存储单元面积,同时保持寄存器文件的读写特点,即任一读端口可以和写端口在同一个时钟周期内访问同一个存储单元。
说明书
技术领域
本发明涉及集成电路设计技术领域,特别是一种多读单写片内存储器。
背景技术
在大规模集成电路设计中,几乎所有的芯片都具有片内存储器,以提供快速访问的片内数据存储空间。片内存储器最重要的两个要素是速度和成本(面积)。常见的片内存储器有SRAM、锁存器阵列和寄存器文件3种。依据速度和成本的考虑,随着存储容量的减少,所采用的存储器依次为SRAM、锁存器阵列和寄存器文件。
在数据通路中,通常需要大量的小容量缓存存储器,该小容量缓存存储器一般都用锁存器阵列或寄存器文件实现。比如CPU内的寄存器文件。这些缓存存储器一般支持多端口读写,特别是一读一写(1R1W)的双端口类型。
虽然单个缓存存储器的面积较小,但是由于它们的数量众多,在整个芯片面积中占据了可观的比例。又由于它们被使用在数据通路中直接参与核心运算,它们的速度对芯片的性能有重大影响。在存储容量不是特别小时,锁存器阵列通常比寄存器文件面积更小,但是它们速度较慢,并且不能像寄存器那样支持同一个存储单元的同时读写。相反,寄存器文件的存储单元为单个寄存器,至少在存储单元上消耗比锁存器更大的面积,这也是导致当容量增大时,寄存器文件不再有吸引力的一个重要原因。
发明内容
(一)要解决的技术问题
有鉴于此,本发明的主要目的在于提供一种多读单写片内存储器,以实现接近锁存器的存储单元面积,同时保持寄存器文件的读写特点,即任一读端口可以和写端口在同一个时钟周期内访问同一个存储单元。
(二)技术方案
为达到上述目的,本发明提供了一种多读单写片内存储器,包括一个写地址译码器、d(d>1)个门控时钟逻辑电路、第一级d个主锁存器、n个d输入级间传输电路、第二级n个从锁存器、读数据输出通路、以及一个读地址译码及相同地址判断模块,其中,如果所述第一级d个主锁存器为负锁存器,则所述第二级n个从锁存器为正锁存器;如果所述第一级d个主锁存器为正锁存器,则所述第二级n个从锁存器为负锁存器。
上述方案中,所述写地址译码器根据写地址和写使能输入产生d位的独热码信号,作为所述d个门控时钟逻辑电路的使能输入端。
上述方案中,所述d个门控时钟逻辑电路的时钟输入端连接于该多读单写片内存储器的输入时钟,其输出的门控时钟分别作为所述第一级d个主锁存器的时钟输入。
上述方案中,所述第一级d个主锁存器的输入为该多读单写片内存储器的写数据输入,每一个主锁存器的输出都分别连接到每一个级间传输电路的相同位置的输入端口。
上述方案中,对于所述n个d输入级间传输电路中的任意一个,其每一个输入端都有一个可控的开关,开关打开时,输入信号导通;开关关闭时,输入信号关断。
上述方案中,所述n个d输入级间传输电路的输出分别连接到所述第二级n个从锁存器的数据输入端。
上述方案中,所述第二级n个从锁存器的输入时钟是该多读单写片内存储器输入时钟,其输出都连接到所述读数据输出通路。
上述方案中,所述读数据输出通路有n个输出分别连接到n个1比特读数据输出端口。
上述方案中,所述读地址译码及相同地址判断模块的输入为n个读地址,产生d个选通信号,其中仅有x(x<=n)个选通信号为有效电平,当有多个读地址相同时,只产生1个有效选通信号,d个选通信号分别连接到每一个级间传输电路的d个输入端的可控开关上;同时产生输出控制信号,输入到所述读数据输出通路。
上述方案中,在所述读地址译码及相同地址判断模块的控制下,读地址不与其它读地址相同的读数据端口的输出来自相应的从锁存器输出,读地址与其它读地址相同但相应选通信号有效的读数据端口的输出来自相应的从锁存器输出,读地址与其它读地址相同但相应选通信号无效的读数据端口的输出来自相同地址的选通信号有效的端口相应的从锁存器输出。
(三)有益效果
从上述技术方案可以看出,本发明具有以下有益效果:
1、本发明提供的多读单写片内存储器,存储器的面积由主锁存器主导。当d较大时,从锁存器的面积可以忽略。当使用二维结构构成位宽为w的存储器时,w个一维1-bit存储器共享写地址译码器、读地址译码及相同地址判断模块、以及门控时钟逻辑。因此,其面积和锁存器阵列相当,比寄存器文件小,实现了接近锁存器的存储单元面积,同时保持寄存器文件的读写特点,即任一读端口可以和写端口在同一个时钟周期内访问同一个存储单元。
2、本发明提供的多读单写片内存储器,具有类似于寄存器文件的读些时序,因此允许同一个存储单元同时被读取和写入,从而在某些计算中节省时钟周期。
3、本发明提供的多读单写片内存储器,由于使用了较少的晶体管,以及内嵌的门控时钟,存储器的功耗应比未采用低功耗设计的锁存器阵列和寄存器文件都低。
附图说明
图1是本发明提供的深度为d数据位宽为1bit的nR1W多读单写片内存储器的结构示意图;
图2是依照本发明第一实施例的深度为4数据位宽为1bit的1R1W存储器的结构示意图;
图3是依照本发明第一实施例的1R1W存储器的读写时序图;
图4是依照本发明第二实施例的1R1W存储器的读写时序图;
图5是依照本发明第三实施例的深度为4数据位宽为1bit的2R1W存储器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
本发明提供的多读单写片内存储器,是一种nR1W(n>=1)多端口存储器,该nR1W多端口存储器的结构如图1所示,其深度为d(d>=2),宽度为1bit,该nR1W多端口存储器的输入包括:一个输入时钟、一个写地址、一个1bit写数据、一个写使能信号、n个读地址;该nR1W多端口存储器的输出包括:n个1bit读数据。
参照图1,该nR1W多端口存储器由两级构成,第一级的核心部件是d个主锁存器,第二级的核心部件是n个从锁存器。两级共用同一个输入时钟,在两级之间存在n个级间传输电路。每一个级间传输电路有d个输入,分别通过一个可控开关电连接到一个主锁存器的输出。每一个级间传输电路有一个输出,分别连接到一个从锁存器的输入。
如果主锁存器为负锁存器,则从锁存器为正锁存器。如果主锁存器为正锁存器,则从锁存器为负锁存器。由于两种主从锁存器搭配产生的是对偶的结构,为方便起见,下面只叙述主锁存器为负锁存器的情形。另外,电平的0和1也是对偶的,以下只叙述1为有效的情况。
第一级还包括写地址译码器和门控时钟电路。写地址译码器根据写地址和写使能输入产生d位的独热码信号,作为d个门控时钟逻辑电路的使能输入端,这d个门控时钟逻辑电路的时钟输入是存储器输入时钟,所输出的门控时钟信号分别作为第一级主锁存器的时钟信号输入。而主锁存器的数据输入则为存储器的写数据。
第一级负责完成数据的写入过程。其过程如下:
1、写地址译码器根据写地址和写使能进行写地址解码。如果写使能信号为0,所有的输出都为0。如果写使能信号为1,只有和写地址对应的输出为1。
2、门控时钟电路在得到写地址译码器输出后,产生门控时钟输入信号。当门控时钟电路的使能输入为0时,输出始终为1,时钟被关闭。当门控时钟电路的使能输入为1时,门控时钟的输出复制输入时钟信号,时钟被打开。
3、主锁存器采样。门控时钟输入被打开的那个主锁存器在它的输入时钟为0时,采样输入数据。在时钟的上升沿将输入锁存。其它主锁存器始终保持在锁存状态。
写地址应至少维持一个时钟周期后再发生变化。写地址改变导致的门控时钟使能输入的改变应该发生在存储器输入时钟为1时。这样,门控时钟的输出不会发生变化。并且,所有主锁存器都在此时处于锁存状态。写数据需要满足建立时间和保持时间的要求。为了满足上述要求,写地址和写数据应和存储器输入时钟的上升沿同步。
第二级还包括读数据输出通路和读地址译码及相同地址判断模块。读地址译码及相同地址判断模块的输入为n个读地址,产生选通信号和输出控制信号。其中,d个选通信号控制n个级间传输电路的输入开关。第i个选通信号,控制所有级间传输电路的第i各输入,对应第一级第i个主锁存器。除此之外,输出控制信号控制n个从锁存器的输出到n个读数据输出端口的数据输出通路。
第二级负责完成数据的读出过程。对于n=1的情况,只存在一个读数据端口,其过程为:
1、读地址译码及相同地址判断模块解码输入的读地址,并产生选通控制信号。只有和读地址对应的一个选通控制信号输出为1,其余为0。
2、选通信号为1会使得所控制的开关打开,与之对应的第一级主锁存器的输出将通过级间传输电路到达第二级从锁存器的输入端。
a)如果选通信号在时钟为0时到达(应接近上一个下降沿),从锁存器处于保持状态,主锁存器的输出到达从锁存器后不能立刻到达从锁存器的输出端,要等到始终上升沿到来后,从锁存器对输入采样,其输出才能发生变化。由存储器外部来看,读数据在读地址发出后的下一个时钟周期才开始更新。等效于读地址延迟一个时钟周期起作用。这种情况下,读数据传播延迟较小,允许较高的时钟频率,但读地址要提前给出。
b)如果选通信号在时钟为1时到达(应接近上一个上升沿),从锁存器处于采样状态,主锁存器的输出经过一段传播后最终到达读数据端口。由存储器外部来看,读数据在读地址发出后的同一个时钟周期开始更新。这种情况下,读数据传播延迟较大,允许的时钟频率不高,但只要一个时钟周期完成一个读操作。
对于n>1的情况,当一个读端口所对应的读地址不与其它读地址冲突时,数据读出过程和上述过程相同。当有m个读地址相同时,只有一个读端口所对应的级间传输电路被选通。输出控制信号控制其它读端口的输出来自那个被选通的端口所对应的从锁存器。这样避免了相同读地址导致同一个主锁存器同时驱动多个级间传输电路的情况,保证一致的产播延时。
当读地址和写地址相同时,所涉及的主从锁存器构成一般的边沿触发寄存器,新的数据在时钟上升沿写入主锁存器,在此之前,因为从锁存器的锁存,读端口输出的是旧的数据。这样允许在同一个时钟周期对同一个存储单元同时读写而不产生时序错误。
除了上述时序要求,最重要的是级间传输电路的设计。当d较大时,应采用多级逻辑电路以降低电容负载,从而降低延迟和功耗。比如采用多级多路选通器(multiplexer)。还可以采用上拉和下拉电路等等。
实施例1:
一个实施例是一个数据端口位宽为1-bit,存储容量为4bit的1R1W双端口存储器,如附图2所示。
该存储器的输入输出端口如下:
该存储器第一级包含一个写地址译码器、4个门控时钟电路、和4个负锁存器。写地址译码器的输入是clk、wena和waddr,产生4个解码后的和clk上升沿同步的地址控制输出信号w1,w2,w3,w4。其逻辑关系如下面真值表所示:
4个相同的门控时钟,分别接受w1,w2,w3,和w4作为使能输入,都以clk作为输入时钟,产生4个门控时钟gclk1,gclk2,gclk3,和gclk4。以gclk1为例,其逻辑关系为:当w1=1,gclk1=clk。当w1=0,gclk1=1。
4个门控时钟分别输入到4个负锁存器的时钟输入端。每个负锁存器的数据输入端连接wdata。他们的输出分别是q1,q2,q3,q4。
第一级完成写入过程,附图3给出了数据写入的时序图,其中只显示了q1和q2的变化。以q1和q2的变化为例,其过程如下:
时钟周期0:wena=1,waddr=3,waddr选择负锁存器4。因此w1为0,w2为0。q1和q2不变。
时钟周期1:wena=1,waddr=0,waddr选择负锁存器1。因此w1为1,w2为0。gclk1=clk,gclk2=1。前半个时钟周期,gclk1和gclk2都为1,负锁存器1和负锁存器2都处于锁存状态。后半个时钟周期,gclk1变为0,负锁存器1开始采样输入wdata,q1发生变化。
时钟周期2:在这个时钟周期的上升沿,gclk1跟着上升,负锁存器1进入锁存状态。稍后,waddr选择负锁存器2。因此w1为0,w2为1。gclk1=1,gclk2=clk。前半个时钟周期,gclk1和gclk2都为1,负锁存器1和负锁存器2都处于锁存状态。后半个时钟周期,gclk2变为0,负锁存器2开始采样输入wdata,q2发生变化。
时钟周期3:在这个时钟周期的上升沿,gclk2跟着上升,负锁存器2进入锁存状态。稍后,wena=0,w1和w2均为0,gclk1和gclk2均为1,锁存器都在锁存状态。q1和q2不变。
存储器的第二级包括读地址译码器(因为只有一个读端口,相同地址判断功能被省略)、级间传输电路、一个正锁存器、和读数据输出通路(简化为直接的连线)。
第一级负锁存器的输出q1,q2,q3,q4分别连接到级间传输电路的4个输入端口。级间传输电路输入端的开关用传输门实现,以获得稳定的特性。因为存储器深度很小,级间传输电路本身简化为直接的连线,其输出节点为dm,连接到正锁存器的数据输入端口。正锁存器的时钟输入是clk。它的输出直接连接到rdata。
读地址译码器的输入是clk和raddr。它解码地址产生和clk上升沿同步的4个选通控制信号r1,r2,r3,r4和它们的相反信号~r1,~r2,~r3,~r4。这些选通信号连接到级间传输电路的输入端传输门,控制其开关。r1,r2,r3,r4和raddr之间的逻辑关系为:
第二级负责完成数据读取过程,如附图3所示。只显示了r1和r2。以r1和r2为例,读数据的过程是:
时钟周期0:raddr选择负锁存器3,rdata是负锁存器3存储的数值1。
时钟周期1:raddr选择负锁存器1,dm=q1。在前半个时钟周期,正锁存器是透明的,输出q1。在时钟的下降沿,正锁存器锁存当时的值。因此在后半个时钟周期,虽然q1的值发生了变化,rdata保持不变。
时钟周期2:raddr选择负锁存器2,dm=q2。在前半个时钟周期,正锁存器是透明的,输出q2。在时钟的下降沿,正锁存器锁存当时的值。因此在后半个时钟周期,虽然q2的值发生了变化,rdata保持不变。
时钟周期3:raddr仍然选择负锁存器2,这时上一个时钟周期负锁存器2被写入的值更新到rdata。
实施例2:
实施例2和实施例1的唯一区别是:读地址译码器的输出r1,r2,r3,r4和它们的相反信号~r1,~r2,~r3,~r4和clk的下降沿同步。因此,改变的只是读数据的时序。附图4给出了时序图,以r1和r2为例,读数据的过程是:
时钟周期0:raddr选择负锁存器3,rdata是负锁存器3存储的数值1。
时钟周期1:raddr在时钟周期内的下降沿发生变化,选择负锁存器1。之后r1=1,dm=q1。但是,正锁存器已处于锁存状态,rdata的值仍然是之前负锁存器3对应的值1。
时钟周期2:上升沿到来后,正锁存器开始采样dm,这时rdata=q1。raddr在时钟周期内的下降沿发生变化,选择负锁存器2。之后r2=1,dm=q2。但是,正锁存器已处于锁存状态,rdata的值仍然是之前负锁存器1对应的值0。
时钟周期3:上升沿到来后,正锁存器开始采样dm,这时rdata=q2。
实施例3:
这个实施例是一个数据端口位宽为1-bit,存储容量为4bit的2R1W多端口存储器,见附图5。
和实施例1相比,该实施例的第一级和实施例1的第一级完全相同。所不同的是:
有两组级间传输电路、正锁存器。每一组级间传输电路,正锁存器,以及它们同第一级之间的连接关系是相同的,并且等同于实施例1。
读地址译码及相同地址判断模块要解码两个读地址输入raddr1,raddr2,分别产生选通信号r1_1,r1_2,r1_3,r1_4,和r2_1,r2_2,r2_3,r2_4及它们的相反信号。当raddr1和raddr2不相同时,raddr1和r1_1,r1_2,r1_3,r1_4之间的逻辑关系同raddr2和r2_1,r2_2,r2_3,r2_4之间的逻辑关系相同,并且等同于实施例1中raddr和r1,r2,r3,r4的逻辑关系。当raddr1和raddr2相同时,r1_1,r1_2,r1_3,r1_4的产生逻辑不变,r2_1,r2_2,r2_3,r2_4全部为0。r1_1,r1_2,r1_3,r1_4和r2_1,r2_2,r2_3,r2_4及它们的相反信号分别控制两组级间传输电路的输入端传输门。
读地址译码及相同地址判断模块要产生输出控制信号s。当raddr1=raddr2时,s=1。否则,s=0。s控制读数据输出通路,也就是两个存储器输出端口rdata1和rdata2同两个正锁存器的输出rd1和rd2之间的关系。任何时候,rdata1=rd1。当s=0时,rdata2=rd2,否则,rdata2=rd1。
对写端口或任一个读端口,该实施例的时序图和实施例1的读写时序图完全相同。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
一种多读单写片内存储器专利购买费用说明
Q:办理专利转让的流程及所需资料
A:专利权人变更需要办理著录项目变更手续,有代理机构的,变更手续应当由代理机构办理。
1:专利变更应当使用专利局统一制作的“著录项目变更申报书”提出。
2:按规定缴纳著录项目变更手续费。
3:同时提交相关证明文件原件。
4:专利权转移的,变更后的专利权人委托新专利代理机构的,应当提交变更后的全体专利申请人签字或者盖章的委托书。
Q:专利著录项目变更费用如何缴交
A:(1)直接到国家知识产权局受理大厅收费窗口缴纳,(2)通过代办处缴纳,(3)通过邮局或者银行汇款,更多缴纳方式
Q:专利转让变更,多久能出结果
A:著录项目变更请求书递交后,一般1-2个月左右就会收到通知,国家知识产权局会下达《转让手续合格通知书》。
动态评分
0.0