降低数据类芯片外挂ddr功耗的方法及数据类芯片系统的制作方法

文档序号:6359094阅读:202来源:国知局
专利名称:降低数据类芯片外挂ddr功耗的方法及数据类芯片系统的制作方法
技术领域
本发明涉及芯片节能技术,尤其涉及一种降低数据类芯片外挂DDR功耗的方法及数据类芯片系统。
背景技术
随着数据业务的飞速发展,DDR(Double Data Rate,双倍速率同步动态随机存储器)由于成本较低缓存空间较大,通常通过外挂的方式被大量应用于各个数据类芯片,以保证大流量数据业务转发的流量管理和转发。通常,数据类芯片通过外部接口模块DDRCTRL外挂DDR。DDRCTRL模块内,利用三态内容寻址存储(ternary content addressable memory, TCAM)和外部DDR实现两级缓存。 由于TCAM资源开销的限制,实际上能够存储的信息量很小,通常是针对外部DDR读写延迟较大,出现未完成向DDR写入数据的操作,却需要从DDR读出该数据的情况,来完成这种情况下的读数据Bypass处理。上述数据类芯片在工作过程中,无论在什么应用场景下,DDR外挂都必须打开,并且随时有数据写入。实际上,在很多应用场合,如轻载条件下,或者无拥塞满带宽条件下,此时的DDR外挂实际上没有任何用处,但以目前这种结构将引入巨大的功耗开销。

发明内容
本发明实施例提出一种降低数据类芯片外挂DDR功耗的方法及数据类芯片系统, 以降低数据类芯片的外挂DDR功耗。本发明实施例提供了一种降低数据类芯片外挂DDR功耗的方法,包括在数据类芯片系统轻载或非拥塞的情况下将待写入的数据存入所述数据类芯片内增加的缓存模块;在所述数据类芯片系统重载或拥塞的情况下,启动所述外挂DDR,且当所述数据类芯片系统的外挂DDR中的数据全被读出后,关闭所述外挂DDR。本发明实施例还提供了一种数据类芯片系统,包括DDRCTRL模块、芯片以及与所述DDRCTRL模块相连的外挂DDR,其中,所述芯片中设有缓存模块及与所述缓存模块、所述 DDRCTRL模块相连的BUFCTRL模块,所述BUFCRTL模块包括缓存写入单元,用于在数据类芯片系统轻载或非拥塞的情况下,将待写入的数据存入所述缓存模块;关闭单元,用于在数据类芯片系统轻载或非拥塞的情况下,所述外挂DDR中的数据全被读出后,关闭所述外挂DDR ;启动单元,用于在所述数据类芯片系统重载或拥塞的情况下,启动所述外挂DDR。本发明实施例提供的降低数据类芯片外挂DDR功耗的方法及数据类芯片系统,通过在数据类芯片系统轻载或非拥塞的情况下关闭外挂DDR,并在述数据类芯片系统重载或拥塞的情况下启动所述外挂DDR,使得数据类芯片在能够正常运行的前提下尽可能地关闭外挂DDR,降低了数据类芯片的外挂DDR功耗。


为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的降低数据类芯片外挂DDR功耗的方法的流程图;图2为本发明实施例提供的降低数据类芯片外挂DDR功耗的方法中水线示意图;图3为本发明实施例提供的降低数据类芯片外挂DDR功耗的方法中外挂DDR中三个Bank的示意图;图4为本发明实施例提供的数据类芯片系统的结构示意图;图5为本发明实施例提供的数据类芯片系统中功耗控制模块的结构示意图;图6为通常情况下的数据类芯片外挂DDR时接口部分示意图;图7为外挂DDR中的Bank地址示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图1为本发明实施例提供的降低数据类芯片外挂DDR功耗的方法的流程图,包括步骤11、在数据类芯片系统轻载或非拥塞的情况下,将待写入的数据存入所述数据类芯片内增加的缓存模块;步骤12、在所述数据类芯片系统重载或拥塞的情况下,启动所述外挂DDR,且当所述数据类芯片系统的外挂DDR中的数据全被读出后,关闭所述外挂DDR。如在数据类芯片内设置一个二级共享式缓存RAM,在该数据类芯片系统轻载或是系统无拥塞缓存时间较短(缓存时间较短,则在一定带宽流量的条件下,需要的缓存空间越小,实际上和无拥塞条件类似)条件下,完全利用该数据类芯片内RAM进行数据缓存,此时可以将待写入的数据写入到芯片内设置的缓存模块RAM中,然后等到外挂DDR中的数据都被读出后,关闭外挂DDR的电源,极大地降低整个数据类芯片系统的功耗。当系统处于高负载或是拥塞条件下需要较大缓存空间时,由内部逻辑自动启动外挂DDR缓存,将片内缓存的部分数据转移到外挂DDR中,以保证数据类芯片继续正常进行数据存储及访问。在用于评估或预测系统拥塞或重载的算法的配合下,可考虑转移出负载大需要缓存空间较多的队列。例如,通过数据在缓存的停留时间、队列的深度等等判断系统是否拥塞或重载。一般情况下,队列深度越大表示该队列拥塞较严重。上述步骤11中,所述缓存模块可采用独立式队列管理或共享式队列管理的方式存储数据。
其中,共享式队列管理的方式有利于充分利用缓存模块的缓存空间,降低缓存模块的开销。具体地,由于共享式队列管理的方式用于与具体应用条件下和后续队列调度的对接,对于队列固有的先后顺序,采用共享式队列管理的方式可以在避免使用大的TCAM的条件下,实现大多数数据不需要写入到外挂DDR中而直接被Bypass调度出的功能,从而在正常应用场合也能很好地降低对外挂DDR的访问,降低系统整体功耗,特别适合应用于分布式路由芯片中上行数据带宽大但无拥塞的场景。换句话说,共享式片内缓存既降低了 DDR 的访问频率,甚至在轻载或无拥塞情况可以不访问DDR,也解决了普通的二级TCAM缓存由于资源的限制无法处理较大数据量的限制问题。也可在缓存模块中设置水线,以此作为数据类芯片系统轻载或重载、拥塞或非拥塞的判断依据,从而根据缓存模块中的数据存储量是否到达水线来决定是否关闭外挂DDR。具体地,如图2所示,设置第一水线、第二水线、第三水线及第四水线。在所述缓存模块中的数据存储量达到第一水线,将待写入的数据存入所述数据类芯片内增加的缓存模块。之后,等待外挂DDR中的数据都被读出。当外挂DDR中的数据都被读出后,关闭外挂DDR的电源。在所述缓存模块中的数据存储量达到第二水线的情况下,打开所述外挂DDR的电源,并进行初始化。启动所述外挂DDR之后还可包括在所述缓存模块中的数据存储量达到第三水线的情况下,从所述缓存模块中选择数据量缓存最多的队列;这样的队列也被称为恶劣队列。将选择的队列写入所述外挂DDR。将恶劣队列写入外挂DDR能够尽量降低写入外挂DDR中的队列数,使得数据类芯片内设置的缓存模块能够腾出足够的空间缓存其他缓存需求少且调度快的队列,可以使内部缓存最大地被其他低拥塞的队列所使用,有利于降低对外挂DDR的访问频率,也有利于进一步降低数据类芯片系统功耗。并且,对于同一个队列而言,在DDR中的缓存空间是Bank连续的,因而可以最大限度地利用DDR的带宽。启动所述外挂DDR之后还可包括在所述缓存模块中的数据存储量达到第四水线的情况下,执行反压操作,以避免上级模块继续写入数据。将选择的队列写入所述外挂DDR的过程,可包括将所述选择的队列中的数据按顺序平均分配到所述外挂DDR的Bank中。如图3所示,以3个队列第一队列、第二队列、第三队列及DDR中的3个Bank BankO,BankUBank2为例进行说明。将第一队列中的数据按顺序依次写到BankO的地址0、 1、6、7,Bankl的地址0、1、6、7及Bank2的地址0、1、6、7中;将第二队列中的数据按顺序依次写到BankO的地址2、3、8、9,Bankl的地址2、3、8、9及Bank2的地址2、3、8、9中;将第三队列中的数据按顺序依次写到BankO的地址4、5、10、ll,Bankl的地址4、5、10、11及Bank2的地址4、5、10、11中。这种方式不需要记录每个存储地址的Bank号信息,不会浪费外挂DDR 的缓存空间,同时也可以完全规避写入数据时外挂DDR的Bank冲突产生的带宽浪费。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。图4为本发明实施例提供的数据类芯片系统的结构示意图。如图4所示,数据类芯片系统包括DDRCTRL模块41、BUFCTRL模块42、芯片43及外挂DDR 44,BUFCTRL模块42 与所述DDRCTRL模块41相连,DDRCTRL模块41与外挂DDR 44相连。DDRCTRL模块41及 BUFCTRL模块42都设置在芯片43内,BUFCTRL模块42包括BUF_RAM及功耗控制模块423, BUF RAM包括缓存模块421及复用器(MUX 422)。写控制模块WR_CTRL及读控制模块RD_CTRL与BUF_RAM之间的接口 Wr_ddr 1、Rd_ ddr 1、TCAM与BUF_RAM之间的接口 Wr_ddr2、Rd_ddr2,类似已有的写控制模块WR_CTRL及读控制模块RD_CTRL与TCAM之间的接口。所述MUX 422及功耗控制模块423与所述缓存模块421相连。其中,功耗控制模块423与DDR接口及TCAM之间为prwd_ddr信号线,prwd_ddr信号是指触发DDR电源关闭 (PowerDown)的指示,主要用于控制系统功耗。图5为本发明实施例提供的数据类芯片系统中功耗控制模块的结构示意图,如图 5所示,功耗控制模块包括缓存写入单元51、关闭单元52及启动单元53。缓存写入单元51用于在数据类芯片系统轻载或非拥塞的情况下,将待写入的数据存入所述数据类芯片内增加的缓存模块;关闭单元52用于在数据类芯片系统轻载或非拥塞的情况下,所述数据类芯片系统的外挂DDR中的数据全被读出后,关闭外挂DDR ;启动单元53用于在所述数据类芯片系统重载或拥塞的情况下,启动所述外挂 DDR。所述关闭单元52可具体用于在所述缓存模块中的数据存储量达到第一水线的情况下,将待写入的数据存入所述数据类芯片内增加的缓存模块。所述启动单元53可具体用于在所述缓存模块中的数据存储量达到第二水线的情况下,打开所述外挂DDR的电源,并进行初始化。功耗控制模块还可包括队列选择单元,用于在所述启动单元启动所述外挂DDR之后,在所述缓存模块中的数据存储量达到第三水线的情况下,从所述缓存模块中选择数据量缓存最多的队列;DDR写入单元,用于将所述队列选择单元选择的队列写入所述外挂DDR。所述DDR写入单元可具体用于将所述选择的队列中的数据按顺序平均分配到所述外挂DDR的Bank中。功耗控制模块还可包括反压单元,用于在所述缓存模块中的数据存储量达到第四水线的情况下,执行反压操作。缓存模块421可为RAM。BUFCTRL模块42内的共享式缓存RAM即缓存模块421用于缓存接收到的数据信息。BUFCTRL模块42内的功耗控制模块423用于在数据类芯片系统轻载或非拥塞条件下, 由于需要缓存的数据量较少,关闭外挂DDR缓存。此时所有的数据都存入片内BUFCTRL模块42的缓存模块421中,调度发起的读操作直接从缓存模块421中读出。其中,写入缓存模块421的数据可采用上述方法实施例中提到的共享式队列管理的方式,详见上述方法实施例中的说明。可如图2所示,为BUFCTRL模块42中的缓存模块421设置水线,其中第四水线用于产生极端条件下的反压需求,第二水线用于触发BUFCTRL模块42启动外挂DDR,还可以再设置第三水线向外挂DDR发起写请求的水线。如在重载或是拥塞条件下,或者在缓存模块 421中的数据存储量达到第一水线的情况下,功耗控制模块423逻辑自动启动外挂DDR,准备将部分片内缓存的数据写入到外挂DDR中。当缓存模块421采用共享式队列管理的方式缓存数据时,功耗控制模块423可根据队列特点将数据按照外挂DDR的地址Bank访问特点的方式进行组合,如将每个队列中的数据按顺序排布到八个Bank中,则当从缓存模块移除出一个队列到外挂DDR时,可以不通过复制Bank存储地址空间的方式,即可完全规避DDR读写Bank冲突的问题。并且在一定程度上,有利于提高读带宽利用率。如详见上述图3所示实施例的说明。当外挂DDR中将所有队列的数据都按顺序平均连续地分配到8个Bank中时,对于每个队列连续的多个数据写入到DDR中,肯定属于多个Bank的连续写入。将每个队列连续写入DDR的粒度变大到一定程度时,如8个Cell连续一起写入,则可以完全规避写DDR的Bank冲突产生的带宽浪费。当被选择写入DDR的队列是数据类芯片内数据量缓存最多的队列时,可以尽量降低写入外挂DDR中的队列数,使得缓存模块421能够腾出足够的空间缓存其他缓存需求少调度快的队列,有利于降低对DDR外挂的访问频率,从而也有利于降低系统功耗。由于 BUFCTRL模块42的输入和输出带宽一致,所以正常情况下,数据类芯片系统完全可以限速, 而不会出现缓存模块421满反压的情况。当数据类芯片启动外挂DDR后经过一段时间再次处于轻载条件下时,系统将逐渐将外挂DDR缓存中的数据调度完,此时缓存模块421中的数据量又低于第一水线的条件下, 内部逻辑即功耗控制模块423触发关闭外挂DDR缓存,从而降低整个系统功耗。由于数据类芯片系统按照队列逐步将数据转移到外挂DDR,因此如果需要向片外 DDR请求数据,则读请求采用连续请求的概率增大很多,并且可以考虑通过预取的方式,人为制造同一队列连续请求的情况,从而有效地利用DDR的读访问带宽。通常,数据类芯片外挂DDR时接口部分如图6所示,通过DDRCTRL模块将数据写入或读出DDR接口连接的外挂DDR。为了解决DDR带宽利用率很低的问题,一般采用对外挂 DDR进行连读连写操作,以规避DDR在一段时间内不能连续两次访问同一个Bank的问题, 充分利用DDR缓存空间较大的特点,利用缓存空间换带宽。具体地,只使用外挂DDR中的一个Bank存储数据,其他7Bank用于备份BankO中存储的数据。这样,如图7所示,对于任何时候写入任何地址的数据都可以写入8个Bank中的任意一个Bank,从而保证数据写入DDR 中不会发生Bank冲突的问题。但是,为了记录数据最终被存储到哪一个Bank中,需要为每个地址空间记录一个Bank号地址导致了片内RAM需要使用一部分空间用于缓存Bank复制的记录信息而产生的浪费。读调度时根据相应地址有效的Bank号来选择Bank,读出有效数据。由于读数据的随机性,因而可能存在Bank冲突的问题,易造成外挂DDR的带宽损失。上述方法及芯片系统,通过增加的缓存模块实现了二级缓存,并在轻载条件下或拥塞情况较轻或非拥塞的条件下,关闭外挂DDR缓存,不仅有效地降低了系统功耗,而且避免了目前通过TCAM匹配做二级缓存导致的资源瓶颈。进一步地,缓存模块内采用共享式队列管理方式,极大地降低了对外部缓存DDR的访问频率。并且,通过接拼信息的方式即通过将每个队列中的数据按序连续存入DDR的8个Bank的方式提高DDR访问粒度,有效地提高了 DDR整体的读写带宽利用率,降低了极端情况下的带宽风险,提高了数据类芯片系统的稳定性,且原DDR存储空间备份所需要的纪录Bank信息的资源呈指数级降低,相对于DDR 中需要消耗一部分RAM用于缓存Bank复制的记录信息的Bank复制的方式,提高了片内RAM 资源利用率,指数级降低甚至消除现有技术中存在的DDR存储空间的浪费。
最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
权利要求
1.一种降低数据类芯片外挂DDR功耗的方法,其特征在于,包括在数据类芯片系统轻载或非拥塞的情况下,将待写入的数据存入所述数据类芯片内增加的缓存模块;在所述数据类芯片系统重载或拥塞的情况下,启动所述外挂DDR,且当所述数据类芯片系统的外挂DDR中的数据全被读出后,关闭所述外挂DDR。
2.根据权利要求1所述的降低数据类芯片外挂DDR功耗的方法,其特征在于,所述缓存模块采用共享式队列管理的方式存储数据。
3.根据权利要求1所述的降低数据类芯片外挂DDR功耗的方法,其特征在于,在数据类芯片系统轻载或非拥塞的情况下,将待写入的数据存入所述数据类芯片内增加的缓存模块的过程,包括在所述缓存模块中的数据存储量达到第一水线的情况下,将待写入的数据存入所述数据类芯片内增加的缓存模块。
4.根据权利要求1所述的降低数据类芯片外挂DDR功耗的方法,其特征在于,在所述数据类芯片系统重载或拥塞的情况下,启动所述外挂DDR的过程,包括在所述缓存模块中的数据存储量达到第二水线的情况下,打开所述外挂DDR的电源, 并进行初始化。
5.根据权利要求1-4任一项所述的降低数据类芯片外挂DDR功耗的方法,其特征在于, 启动所述外挂DDR之后还包括在所述缓存模块中的数据存储量达到第三水线的情况下,从所述缓存模块中选择数据量缓存最多的队列;将选择的队列写入所述外挂DDR。
6.根据权利要求5所述的降低数据类芯片外挂DDR功耗的方法,其特征在于,将选择的队列写入所述外挂DDR的过程,包括将所述选择的队列中的数据按顺序平均分配到所述外挂DDR的Bank中。
7.根据权利要求5所述的降低数据类芯片外挂DDR功耗的方法,其特征在于,启动所述外挂DDR之后还包括在所述缓存模块中的数据存储量达到第四水线的情况下,执行反压操作。
8.一种数据类芯片系统,包括DDRCTRL模块、芯片以及与所述DDRCTRL模块相连的外挂 DDR,其特征在于,所述芯片中设有与所述DDRCTRL模块相连的BUFCTRL模块,所述BUFCRTL 模块包括缓存模块及与所述缓存模块相连的功耗控制模块,所述功耗控制模块包括缓存写入单元,用于在数据类芯片系统轻载或非拥塞的情况下,将待写入的数据存入所述缓存模块;关闭单元,用于在数据类芯片系统轻载或非拥塞的情况下,所述外挂DDR中的数据全被读出后,关闭所述外挂DDR;启动单元,用于在所述数据类芯片系统重载或拥塞的情况下,启动所述外挂DDR。
9.根据权利要求8所述的数据类芯片系统,其特征在于,所述缓存模块为RAM。
10.根据权利要求8所述的数据类芯片系统,其特征在于,所述缓存写入单元具体用于在所述缓存模块中的数据存储量达到第一水线的情况下,将待写入的数据存入所述数据类芯片内增加的缓存模块。
11.根据权利要求8所述的数据类芯片系统,其特征在于,所述启动单元具体用于在所述缓存模块中的数据存储量达到第二水线的情况下,打开所述外挂DDR的电源,并进行初始化。
12.根据权利要求8-11任一项所述的数据类芯片系统,其特征在于,还包括队列选择单元,用于在所述启动单元启动所述外挂DDR之后,在所述缓存模块中的数据存储量达到第三水线的情况下,从所述缓存模块中选择数据量缓存最多的队列; DDR写入单元,用于将所述队列选择单元选择的队列写入所述外挂DDR。
13.根据权利要求12所述的数据类芯片系统,其特征在于,所述DDR写入单元具体用于将所述选择的队列中的数据按顺序平均分配到所述外挂DDR的Bank中。
14.根据权利要求12所述的数据类芯片系统,其特征在于,还包括反压单元,用于在所述缓存模块中的数据存储量达到第四水线的情况下,执行反压操
全文摘要
本发明涉及一种降低数据类芯片外挂DDR功耗的方法及数据类芯片系统,方法包括在数据类芯片系统轻载或非拥塞的情况下,将待写入的数据存入所述数据类芯片内增加的缓存模块;在所述数据类芯片系统重载或拥塞的情况下,启动所述外挂DDR,且当所述数据类芯片系统的外挂DDR中的数据全被读出后,关闭所述外挂DDR。使得数据类芯片在能够正常运行的前提下尽可能地关闭外挂DDR,降低了数据类芯片的外挂DDR功耗。
文档编号G06F1/32GK102439534SQ201180002329
公开日2012年5月2日 申请日期2011年10月25日 优先权日2011年10月25日
发明者张红标 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1