一种低功耗fifo的电路结构的制作方法

文档序号:10856181阅读:576来源:国知局
一种低功耗fifo的电路结构的制作方法
【专利摘要】本实用新型提供一种低功耗FIFO的电路结构,包括大容量的静态随机存储器、用于控制在静态随机存储器写入数据地址的写控制电路,和用于控制从静态随机存储器读出数据地址的读控制电路,其特征在于:所述的大容量的静态随机存储器由若干个小容量的静态随机存储器构成;本电路结构还包括用于控制每个小容量的静态随机存储器的工作模式的模式控制器,模式控制器的输入端分别与写控制电路和读控制电路连接,模式控制器的输出端数量与小容量的静态随机存储器相同,每个模式控制器的输出端与一个小容量的静态随机存储器连接。利用本实用新型结构极大地减小了功耗,节约了电能。
【专利说明】
一种低功耗FIFO的电路结构
技术领域
[0001]本实用新型涉及集成电路设计的技术领域,具体涉及一种低功耗FIFO(先入先出)的电路结构。
【背景技术】
[0002]FIFO是指先入先出(first in first out),它在当今集成电路中是广泛被使用的结构,尤其是大规模的复杂的SOC(系统级芯片)芯片中,应用领域较多,如远程通信、数字信号处理、大容量存储系统、图像处理、打印系统等等。其主要用途是用来缓冲数据,位于发送方和接收方之间,当发送方和接收方的数据率不一致的时候,或者发送出去的数据还没有被接收方读取走的时候,这些数据就必须要用FIFO来做一下数据缓冲,避免数据遗漏或丢失。在芯片设计过程中,如何来设计FIFO的容量或者深度,要根据应用需求来决定,一般FIFO的深度都是用最坏情况来考虑,倘若发送方在某个时间段内,突发地发送了大量数据,而接收方还来不及读取走的时候,这时候就必须要使用一个足够大的FIFO来存储这些数据。对于这样一种大容量的FIF0,就需要一块较大的存储空间。在当今芯片设计中,一般会用到一块容量较大的SRAM(静态随机存储器)来作为存储数据的空间,其结构如图1所示,FIFO内还需要有读写控制两个子模块,分别控制写入数据的地址和读出数据的地址。
[0003]在如今的芯片设计过程中,低功耗是个非常关注的方面,无论是大型芯片还是小型芯片,都对功耗指标有所要求。尤其是在一些移动设备或者小型设备上,低功耗方面的要求非常高。然而,对于一个大容量的FIF0,若其所搭配的是一整块大的SRAM来做数据存储空间的话,它在工作过程中,这一个大块SRAM的每一次读或写操作,其功耗都是较大的。因此,对于大容量FIFO的功耗较高的问题,必须要解决。
[0004]然而经过分析实际中的工作情况,对于这样一种大容量的FIFO来说,若在所有工作时间内,并不是总是真的要用得到最大的容量,仅仅在特殊情况或者最坏情况下才有可能用得到。若在多数情况下,FIFO内部其实并没有存储很多的数据,那么这块大的SRAM内,其实很多空间是没有真的被利用到的。
[0005]现代的低功耗的SRAM,其内部电路设计方面已经有所改进,有的可以有SD(shutdown)、DS(deep sleep)、LS(light sleep)等几种低功耗工作模式。根据实际工作情况和需要,当某一个SRAM不需要其工作的时候,可以把它至于合适的低功耗模式下。SD模式是指完全关闭,该块SRAM的内部电源整个被切断,以节省静态功耗,在SD模式下,内部存储的数据不能被保持,会完全丢失。DS模式是指深度睡眠,关闭SRAM内部的周边电路,并且把存储单元的内部核心电压降低,以节省一些静态功耗,但内部已经存储的数据,不会被丢失。LS模式是轻度睡眠,仅仅关闭掉SRAM的周边电路,存储单元的内部核心电压仍然保持,所以已经存储的数据,不会被丢失。
[0006]对于这样一种内部只有一整块大的SRAM的FIFO来说,若系统开始工作后,根据功能要求,它里面的这块大的SRAM是无法整个进入睡眠模式或关闭模式的,它就是需要一直在工作状态,即使没有读写的操作,因为它至少也要一直处于待命状态。在它的待命状态的静态功耗是比较大的。另一方面,当有数据写入和读出的时候,对于一块大的SRAM的读写操作,其功耗也是较大的。所以,这块大的SRAM,无论是整体待命状态,还是处于读写的工作状态,这两个方面功耗大的问题,需要用新方法来解决。
【实用新型内容】
[0007]本实用新型要解决的技术问题是:提供一种低功耗FIFO的电路结构,节约电能。
[0008]本实用新型为解决上述技术问题所采取的技术方案为:一种低功耗FIFO的电路结构,包括大容量的静态随机存储器、用于控制在静态随机存储器写入数据地址的写控制电路,和用于控制从静态随机存储器读出数据地址的读控制电路,其特征在于:所述的大容量的静态随机存储器由若干个小容量的静态随机存储器构成;本电路结构还包括用于控制每个小容量的静态随机存储器的工作模式的模式控制器,模式控制器的输入端分别与写控制电路和读控制电路连接,模式控制器的输出端数量与小容量的静态随机存储器相同,每个模式控制器的输出端与一个小容量的静态随机存储器连接。
[0009]按上述方案,所述的模式控制器包括计数器和唤醒信号发生装置,所述的计数器的输入端分别与写控制电路和读控制电路连接,计数器的输出端与唤醒信号发生装置连接,唤醒信号发生装置的输出端与小容量的静态随机存储器连接。
[0010]本实用新型的有益效果为:
[0011 ] 1、通过将原有的一整个大容量的静态随机存储器替换为若干个小容量的静态随机存储器,当读写数据量较少时,仅用其中I个或几个小容量的静态随机存储器,其它小容量的静态随机存储器处于关闭状态,当所用的小容量的静态随机存储器不足以存储写入的数据量时,智能的唤醒其中I个处于关闭状态的小容量的静态随机存储器;利用本实用新型结构极大地减小了功耗,节约了电能。
【附图说明】
[0012]图1为现有技术中FIFO的电路结构图。
[0013]图2为本实用新型一实施例的电路结构图。
【具体实施方式】
[0014]下面结合具体实例和附图对本实用新型做进一步说明。
[0015]本实用新型提供一种低功耗FIFO的电路结构,如图2所示,包括大容量的静态随机存储器、用于控制在静态随机存储器写入数据地址的写控制电路、用于控制从静态随机存储器读出数据地址的读控制电路、和用于控制每个小容量的静态随机存储器的工作模式的模式控制器,所述的大容量的静态随机存储器由若干个小容量的静态随机存储器构成;模式控制器的输入端分别与写控制电路和读控制电路连接,模式控制器的输出端数量与小容量的静态随机存储器相同,每个模式控制器的输出端与一个小容量的静态随机存储器连接。模式控制器输出唤醒信号,唤醒相应的小容量的静态随机存储器。
[0016]所述的模式控制器可以采取各种硬件结构,优选的,本实施例的模式控制器包括计数器和唤醒信号发生装置,所述的计数器的输入端分别与写控制电路和读控制电路连接,计数器的输出端与唤醒信号发生装置连接,唤醒信号发生装置的输出端与小容量的静态随机存储器连接。
[0017]读、写控制电路分别控制读写两个指针,写指针指向下一个需要写入的地址,读指针指向下一个需要读出的地址。在开始工作的时候,静态随机存储器内部没有存储任何数据,写指针和读指针都指向起始地址,第一块小容量的静态随机存储器处于工作状态,其它小容量的静态随机存储器处于关闭状态。当发送方有数据发过来的时候,每个数据依次地写入第一块小容量的静态随机存储器,并且写指针依次上移,指向下一个可用的地址。当接收方读取数据走的时候,读指针依次上移,读取走了的数据,其空间释放出来。当写指针写到第一块小容量的静态随机存储器的顶部的时候,可以循环回来,只要读取走了的空间,是可以继续使用的。
[0018]模式控制器能够根据读写指针的位置,按情况地去开启需要工作的小容量的静态随机存储器,并关闭掉完全不需要工作的其他小块,或者把它们置于睡眠模式,可以根据需要设置深度睡眠或浅度睡眠模式。通过这样的预测式地开启需要工作的部分,关闭不必要的部分,可以极大地节省动态功耗,同时也可以节省大量的静态功耗。
[0019]本实施例中将大块的SRAM分切成6块,分别是SRAM1-SRAM6。在FIFO刚开始工作的时候,只有SRAMl处于工作状态。因为在FIFO刚开始工作的时候,不确定什么时候发送方的写数据会过来,所以要随时待命准备写入数据,SRAMl必须处于工作状态,其他5块是可以置于关闭模式或睡眠模式。下面用睡眠模式和工作模式的切换方式来继续说明。
[0020]当有数据陆续写入FIFO内,写指针就会指向下一个地址。当写指针指向SRAMI的快要到达顶部地址的时候(可以通过模式控制器计数得到),这时候需要提前激活SRAM2。这个提前量,可以根据SRAM的电路的内部要求,比如一块SRAM的从浅度睡眠到唤醒模式,至少需要2ns的唤醒时间,若当前电路的工作频率是lGHz(写速度是每周期写一个数据),那么就需要提前两个周期,把SRAM2从浅度睡眠模式唤醒起来,当写指针指向SRAMl的顶部地址减去2的时候,(模式控制器发送唤醒信号)开始激活SRAM2,那么当写指针指向到SRAM2的第一个地址的时候,它已经完全激活可以工作了。若是SRAM2在初始态是置于深度睡眠模式的话,若其需要1ns的唤醒时间(深度睡眠模式的唤醒时间比浅度睡眠模式长一些),那么就需要当写指针到达SRAMl的顶地址减去10的位置的时候,(模式控制器发送唤醒信号)就开始唤醒SRAM2。即使在发出唤醒信号到写指针真的指向到SRAM2的这段时间内,若写数据并没有每个时钟都写入数据,看起来SRAM2的唤醒过早了,但是这样的提前量是为了满足最差情况的,若万一写数据不停地写入,SRAM2是必须要在写指针指向它的底部地址的那个时刻,能够被完全激活起来开始工作。这样就是预测式地激活的基本方法。
[0021]当读取操作将某一个小SRAM块内部的数据都读取完了之后,可以检查一下这个块是不是还在使用,是在被正在写入或者准备写入(提前激活),若不是,那么这个块就是就可以被关闭,可以将其置于睡眠模式(深度睡眠或浅度睡眠需要根据实际情况)。当读完SRAMl之后,写指针还没有指向到SRAMl或还没有逼近SRAMl的时候,这块SRAMl是可以立即置为睡眠模式,以节省功耗。若写指针循环一圈过来,读指针已经读取SRAM3完毕,指向SRAM4了,但是写指针已经指向了SRAM3,这时候是不能把SRAM3关闭的,它仍然是需要工作,在这种情况是写入数据较多,读取还没有来得及读取走这么多量的数据,这些数据都存储在FIFO内。
[0022]根据SRAM的内部电路所能够支持哪些低功耗模式,和该芯片在低功耗方面的要求,以及控制的复杂度,来灵活地实施本发明的想法。差别只是“预测式”激活的提前量的长短不同,基本原理相同。
[0023]实施例1,工作模式与LS(浅度睡眠)配合。因为LS到唤醒的时间较短,其控制方法也较简单。假如SRAM的从LS模式到工作模式的唤醒时间为2ns,那么预测式唤醒的方法,就需要留够至少2ns的时间用来唤醒下一个需要投入工作的小块。举例,假如FIFO工作在IGHz的频率,写入速度也是IG速度,每个时钟周期就是1ns,当写指针快要到达SRAMl的顶部,还差2个地址的时候,开始发送唤醒信号来激活SRAM2小块。那么当写指针指向SRAM2的底部的时候,它已经完成了激活,进入可以工作的状态。
[0024]实施例2,工作与DS(深度睡眠)配合。与实施例1稍有不同的是,激活所需要的提前量,是由于SRAM从DS模式到工作模式的唤醒时间较长一些。仍然按照上述假设条件,工作频率IGhz,写速度为也是1G。若SRAM内部电路的要求从DS到工作模式需要1ns时间,那么就需要在写指针在距离SRAMl的顶部还差10个地址的时候,开始发送唤醒信号来激活SRAM2小块。
[0025]实施例3,工作与LS(浅度睡眠)+DS(深度睡眠)一起配合。由于DS的唤醒时间长,但是它所节省的功耗比LS要多。可以将距离工作区域较远的小块,置于DS模式,接近快要开始使用的小块置于LS模式。当工作的小块为SRAMl时,把SRAM2从DS模式切换到LS模式。当前写入的块已经到达SRAM2时,可以把SRAM3提前的从DS模式切换到LS模式。激活SRAM3的条件,与实施例1相同,当写指针逼近SRAM3的时候,将它置入工作状态,这时候需要把SRAM4从DS模式切换到LS模式。这样阶梯式地切换和唤醒需要工作的下一个小块,可以更多地节省功耗,并可以较快速地把下一个小块从LS状态激活到工作状态。
[0026]实施例4,工作模式和SD、DS、LS—起配合使用。在实施例3的基础上,若更远处的没有需要用的小块,可以完全置于SD(Shutdown)的电源关闭模式,这样可以更多的节省功耗。根据指针所处的位置,预测式地把小块从SD模式置入DS模式,再进入LS模式,然后被激活进入工作模式来写入数据,存储数据或被读出数据。使用完了的小块,也根据它举例工作区域的远近,进入SD或DS、LS模式。这样的实施例,其工作状态较多,控制起来稍复杂,但是可以达到最大程度的节省功耗。
[0027]以上实施例的各模式的结合,在模式控制器中,以硬件的方式,根据小容量的静态随机存储器的地址数量,设置计数器的计数值,根据计数值来唤醒各小容量的静态随机存储器。
【主权项】
1.一种低功耗FIFO的电路结构,包括大容量的静态随机存储器、用于控制在静态随机存储器写入数据地址的写控制电路,和用于控制从静态随机存储器读出数据地址的读控制电路,其特征在于:所述的大容量的静态随机存储器由若干个小容量的静态随机存储器构成;本电路结构还包括用于控制每个小容量的静态随机存储器的工作模式的模式控制器,模式控制器的输入端分别与写控制电路和读控制电路连接,模式控制器的输出端数量与小容量的静态随机存储器相同,每个模式控制器的输出端与一个小容量的静态随机存储器连接。2.根据权利要求1所述的一种低功耗FIFO的电路结构,其特征在于:所述的模式控制器包括计数器和唤醒信号发生装置,所述的计数器的输入端分别与写控制电路和读控制电路连接,计数器的输出端与唤醒信号发生装置连接,唤醒信号发生装置的输出端与小容量的静态随机存储器连接。
【文档编号】G06F5/06GK205540689SQ201620095725
【公开日】2016年8月31日
【申请日】2016年1月29日
【发明人】李潇
【申请人】启芯瑞华科技(武汉)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1