CN103414658A - 查找表和报文缓存共享动态随机访问存储器的系统和方法 - Google Patents

查找表和报文缓存共享动态随机访问存储器的系统和方法 Download PDF

Info

Publication number
CN103414658A
CN103414658A CN2013103365614A CN201310336561A CN103414658A CN 103414658 A CN103414658 A CN 103414658A CN 2013103365614 A CN2013103365614 A CN 2013103365614A CN 201310336561 A CN201310336561 A CN 201310336561A CN 103414658 A CN103414658 A CN 103414658A
Authority
CN
China
Prior art keywords
read command
subcycle
command
scheduling
bank
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2013103365614A
Other languages
English (en)
Other versions
CN103414658B (zh
Inventor
任凯
王自雄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Huawei Digital Technologies Co Ltd
Original Assignee
Beijing Huawei Digital Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Huawei Digital Technologies Co Ltd filed Critical Beijing Huawei Digital Technologies Co Ltd
Priority to CN201310336561.4A priority Critical patent/CN103414658B/zh
Publication of CN103414658A publication Critical patent/CN103414658A/zh
Application granted granted Critical
Publication of CN103414658B publication Critical patent/CN103414658B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例提供一种查找表和报文缓存共享动态随机访问存储器的系统和方法,该系统包括:至少一个DRAM接口,其中该至少一个DRAM接口中的第一DRAM接口对应至少一个DRAM,该至少一个DRAM中的第一DRAM包括多个Bank,该多个Bank中的第一组Bank用于存储查找表,该多个Bank中的第二组Bank用于缓存报文;命令调度模块,用于交叉连续调度LT读命令和PB读命令,其中该LT读命令用于读取该第一组Bank中的查找表,该PB读命令用于读取该第二组Bank中缓存的报文。本发明实施例中,由于PB访问时的Cell配置可以根据tFAW参数而灵活设置,所以将PB读命令和LT读命令交叉调度,可以有效减少tFAW参数引起的大量空闲周期,提高了数据总线的利用率。

Description

查找表和报文缓存共享动态随机访问存储器的系统和方法
技术领域
本发明实施例涉及通信领域,并且更具体地,涉及一种查找表和报文缓存共享DRAM的系统和方法。
背景技术
在网络设备中,动态随机访问存储器(DRAM,Dynamic Random AccessMemory)主要用来实现查找表(LT,Lookup Tables)和报文缓存(PacketBuffer)功能。现有技术方案中,网络处理器的LT访问和PB访问的DRAM接口是分离的,例如可实现96B+(96Bytes及96Bytes以上)报文线速的、具有12个10GE接口的网络处理器,其带有两个专用的LT访问DRAM接口和6个专用的PB访问DRAM接口。
由于网络中的报文多种多样,网络处理器对外部DRAM的LT访问和PB访问的访问地址均是随机的。因此,DRAM的随机访问性能对于网络处理器的访问效率起着至关重要的作用。
在影响DRAM随机访问性能的众多参数中,以下几种尤为重要:
tRC:在一个Bank(行)内,不同Row的ACT-to-ACT时间间隔,该参数影响的是一个Bank的随机访问性能;
tRRD:不同Bank间,ACT-to-ACT时间间隔,该参数影响Bank交织时的随机访问性能;
tFAW:连续4个ACT命令(激活命令)窗口。
通常情况下,tRC参数对DRAM随机访问性能影响较大(即同一Bank不同Row之间ACT-to-ACT命令切换所需的时间间隔较长,以DDR3 SDRAM为例,该时间间隔为46.13ns)。现有技术通常采用多Bank轮转访问的方式,以LT访问为例,将一个查找表复制到DRAM的多个Bank中,每完成当前Bank的LT访问,切换至另一Bank进行下一次LT访问,以此规避tRC参数对DRAM随机访问性能的影响。
虽然通过上述方式规避了tRC参数对随机访问性能的影响,但是LT访问的表项粒度(每次LT访问的数据大小)较小,受到tFAW参数的影响较大会出现大量空闲周期,导致LT访问数据总线利用率低。以常用的120G接口96B+报文线速的网络处理器为例,每个查找表的表项粒度为128bit,相当于一个BL8操作,那么4个时钟周期即可完成一个LT访问,而tFAW参数要求连续4个ACT命令时间间隔为35ns,即38个时钟周期,由上可知,连续4个LT访问所用时长为38个时钟周期内,但其中有效的时钟周期数仅仅为4*4=16。
发明内容
本发明实施例提供一种查找表和报文缓存共享DRAM的系统和方法,以提高LT访问数据总线的利用率。
第一方面,提供一种查找表和报文缓存共享DRAM的系统,包括:至少一个DRAM接口,其中所述至少一个DRAM接口中的第一DRAM接口对应至少一个DRAM,所述至少一个DRAM中的第一DRAM包括多个Bank,所述多个Bank中的第一组Bank用于存储查找表,所述多个Bank中的第二组Bank用于缓存报文;命令调度模块,用于交叉连续调度LT读命令和PB读命令,其中所述LT读命令用于读取所述第一组Bank中的查找表,所述PB读命令用于读取所述第二组Bank中缓存的报文。
结合第一方面,在第一方面的一种实现方式中,所述命令调度模块具体用于根据第一参数,在PB读命令的执行周期内提前调度待执行的LT读命令中的ACT命令,其中所述第一参数用于指示LT读命令中ACT命令到RD命令之间间隔的周期数。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,所述命令调度模块具体用于在调度第一读子循环时,交叉调度LT读命令和PB读命令;所述命令调度模块还用于调度第一写子循环,所述第一写子循环包括多个PB写命令,且所述第一写子循环中连续两个PB写命令对应不同的Bank。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,所述系统还包括:第一缓存模块,用于缓存LT读命令;第二缓存模块,用于缓存PB访问命令,所述PB访问命令包括PB读命令和PB写命令;检测模块,用于检测所述第一缓存模块和所述第二缓存模块中的数据状态;所述命令调度模块具体用于当所述检测模块检测到所述第一缓存模块和所述第二缓存模块中均缓存了数据时,调度共享访问循环下的所述第一读子循环和所述第一写子循环。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,所述命令调度模块还用于:当所述检测模块检测到所述第一缓存模块中缓存了数据以及所述第二缓存模块中未缓存数据时,调度LT访问循环,其中所述LT访问循环包括多个LT读命令,且所述LT访问循环中连续两个LT读命令对应不同的Bank;当所述检测模块检测到所述第二缓存模块中缓存了数据以及所述第一缓存模块中未缓存数据时,调度PB访问循环,其中所述PB访问循环包括第二读子循环和第二写子循环,所述第二读子循环包括多个PB读命令,且所述第二读子循环中连续两个PB读命令对应不同的Bank,所述第二写子循环包括多个PB写命令,且所述第二写子循环中连续两个PB写命令对应不同的Bank。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,所述系统还包括:选择模块,根据接收到的用于PB访问的第一报文的长度,选择使得所述系统带宽加速比最高的Cell配置作为所述第一报文在PB访问时的Cell配置;所述命令调度模块根据所述选择模块选择的Cell配置调度所述第一报文对应的PB访问命令。
第二方面,提供一种查找表和报文缓存共享DRAM的方法,包括:生成LT读命令和PB读命令,其中所述LT读命令用于读取第一组Bank中存储的查找表,所述PB读命令用于读取第二组Bank中缓存的报文,所述第一组Bank和所述第二组Bank均属于第一DRAM;交叉连续调度LT读命令和PB读命令。
结合第二方面,在第二方面的一种实现方式中,所述交叉连续调度LT读命令和PB读命令包括:根据第一参数,在PB读命令的执行周期内提前调度待执行的LT读命令中的ACT命令,其中所述第一参数用于指示LT读命令中ACT命令到RD命令之间间隔的周期数。
结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,所述交叉连续调度LT读命令和PB读命令包括:在调度第一读子循环时,交叉调度LT读命令和PB读命令;所述方法还包括:调度第一写子循环,所述第一写子循环包括多个PB写命令,且所述第一写子循环中连续两个PB写命令对应不同的Bank。
结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,还包括:缓存LT读命令和PB访问命令,所述PB访问命令包括PB读命令和PB写命令;所述交叉连续调度LT读命令和PB读命令包括:当检测到同时缓存了LT读命令和PB访问命令时,在共享访问循环中交叉调度所述第一读子循环和所述第一写子循环。
结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,还包括:当检测到仅缓存了LT读命令时,调度LT访问循环,所述LT访问循环包括多个LT读命令,且所述LT访问循环中连续两个LT读命令对应不同的Bank;当检测到仅缓存了PB访问命令时,调度PB访问循环,其中所述PB访问循环包括第二读子循环和第二写子循环,所述第二读子循环包括多个PB读命令,且所述第二读子循环中连续两个PB读命令对应不同的Bank,所述第二写子循环包括多个PB写命令,且所述第二写子循环中连续两个PB写命令对应不同的Bank。
结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,还包括:根据接收到的用于PB访问的第一报文的长度,选择使得所述系统带宽加速比最高的Cell配置作为所述第一报文在PB访问时的Cell配置,以便根据所述Cell配置调度所述第一报文对应的PB访问命令。
本发明实施例中,由于PB访问时的Cell配置(每次PB访问的数据块的大小)可以根据tFAW参数而灵活设置,所以将PB读命令和LT读命令交叉调度,可以有效减少tFAW参数引起的大量空闲周期,提高了数据总线的利用率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的查找表和报文缓存共享DRAM的系统的示意性框图。
图2是本发明一个实施例的DRAM中Bank分组方式的示意图。
图3是本发明实施例的命令调度模块的访问循环示意图。
图4是本发明一个实施例的DRAM的命令时序图。
图5是本发明一个实施例的DRAM的命令时序图。
图6是本发明一个实施例的共享访问循环示意图。
图7是本发明一个实施例的PB访问循环示意图。
图8是本发明一个实施例的LT访问循环示意图。
图9是本发明一个实施例的在不同Cell配置下系统带宽加速比随报文长度的变化趋势图。
图10是本发明一个实施例的查找表和报文缓存共享DRAM的示意性框图。
图11是本发明一个实施例的命令调度模块的调度逻辑流程图。
图12是本发明一个实施例的查找表和报文缓存共享DRAM的方法的示意性流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
应理解,LT访问命令包括LT读命令(读取查找表)和LT写命令(更新查找表),但是由于LT写命令所占的比例很小,一般只占整个DRAM访问命令的5%,因此本发明实施例中的LT访问命令主要考虑LT读命令。需要说明的是LT读命令和PB读命令均包括ACT命令和RD命令(读命令),,其中ACT命令表示准备读取数据,而RD命令表示开始读取数据。
应理解,PB访问命令包括PB读命令和PB写命令,其中PB读命令用于读取缓存于Bank中的报文,PB写命令用于向Bank中写入报文。
图1是本发明实施例的查找表和报文缓存共享DRAM的系统的示意性框图。图1的系统中包括:
至少一个DRAM接口,其中所述至少一个DRAM接口中的第一DRAM接口110对应至少一个DRAM,所述至少一个DRAM中的第一DRAM120包括多个Bank,所述多个Bank中的第一组Bank 130用于存储查找表,所述多个Bank中的第二组Bank140用于缓存报文;
命令调度模块130,用于交叉连续调度LT读命令和PB读命令,其中所述LT读命令用于读取所述第一组Bank130中的查找表,所述PB读命令用于读取所述第二组Bank140中缓存的报文。
本发明实施例中,由于PB访问时的Cell配置可以根据tFAW参数而灵活设置,所以将PB读命令和LT读命令交叉调度,可以有效减少tFAW参数引起的大量空闲周期,提高了数据总线的利用率。
本发明实施例对第一DRAM接口110的接口类型不作具体限定,例如可以是DDR3 SDRAM接口,也可以是DDR4 SDRAM接口,或者其他类型的DRAM接口。
本发明实施例对第一DRAM接口110对应的DRAM的个数不作具体限定,例如,当第一DRAM接口110为DDR3 SDRAM接口时,可以对应2个X16 DDR3 SDRAM,上述第一DRAM可以为该2个X16 DDR3 SDRAM中的一个。
应理解,本发明实施例对第一DRAM120中所包括的Bank数不作具体限定,例如,当第一DRAM为X16 DDR3 SDRAM时,第一DRAM120包括8个Bank。
还应理解,本发明实施例对第一DRAM的多个Bank的分组方式不作具体限定,具体地,可以将一部分用于存储查找表,并将剩余的Bank都用于缓存报文;也可以将一部分用于存储查找表,剩余Bank中的一部分用于缓存报文。举例说明,如图2所示,对于X16 DDR3 SDRAM的8个Bank,可以将Bank0、Bank1和Bank2用于存储查找表,Bank3~Bank7用于缓存报文,其中,Bank0~Bank2可分配给相同或不同的查找表,Bank3~Bank7可分配给相同或不同的报文缓存。
上述命令调度模块130交叉连续调度LT读命令和PB读命令具体是指:命令调度模块130如果先调度LT读命令,那么下一次调度PB读命令,接着再调度LT读命令,如此循环往复;而且LT读命令和PB读命令之间的调度是连续的,即LT读命令调度结束,立即调度PB读命令,PB读命令调度结束,立即调度LT读命令,尽量减少LT读命令和PB读命令交叉调度时中间间隔的空闲周期。
应理解,本发明实施例对Bank的访问顺序不作具体限定,可选地,当采用图2所示的Bank分配方式,可以采用如图3所示的访问循环对Bank进行访问:LT1读命令(Bank0)→PB1读命令(Bank3)→LT2读命令(Bank1)→PB2读命令(Bank4)→LT3读命令(Bank2)→PB3读命令(Bank5)→LT1读命令(Bank0)→PB4读命令(Bank6)→LT2读命令(Bank1)→PB5读命令(Bank7)→LT3读命令(Bank2)→PB1读命令(Bank3)→LT1读命令(Bank0)→PB2读命令(Bank4)→LT2读命令(Bank1)→PB3读命令(Bank5)→LT3读命令(Bank2)→PB4读命令(Bank6)→LT1读命令(Bank0)→PB5读命令(Bank7)。
可选地,作为一个实施例,所述命令调度模块具体用于根据第一参数,在PB读命令的执行周期内提前调度待执行的LT读命令中的ACT命令,其中所述第一参数用于指示LT读命令中ACT命令到RD命令之间间隔的周期数。
具体地,当上述第一DRAM为X16 DDR3 SDRAM,LT访问的AL参数设置为CL-2(ACT命令到RD命令间隔1个周期),且该第一DRAM的Bank的分组采用图2的分组方式时,DRAM的命令时序可如图4所示:时钟周期33~49为PB读命令的执行周期,此时,可以在周期48提前调度LT读命令中的ACT命令,使得访问Bank3的PB读命令执行结束后立刻对Bank1执行LT读命令。
上述实施例保证了PB读命令向LT读命令过渡时数据读取的连续性,但是由于查找表表项粒度相当于一个BL8操作(即4个时钟周期即可完成),而受到tRRD参数的影响,两个ACT命令之间必须满足6ns(即7个时钟周期),再考虑到两片X16 DDR3 SDRAM时分复用一条数据总线,所以LT读命令与PB读命令之间会间隔4个空闲周期,如图4所示的时钟周期29~33为空闲周期。
为了进一步提高数据总线的利用率,并使得LT读命令与PB读命令之间数据调度的连续性,可以通过增加LT读命令的ACT命令与RD命令之间间隔的时钟周期数,并通过提前调度LT读命令的ACT命令来规避tRRD参数对LT读命令的影响。
具体地,如图5所示,可以将LT的ACT命令与RD命令之间的间隔的时钟周期数设置为6,在PB读命令的最后一个RD命令的前一个可用时钟周期提前调度LT读命令的ACT命令(如图5所示的时钟周期40),这样在PB读命令调度结束后可连续调度LT读命令的RD命令,并且在RD命令的下一个可用时钟周期(如图5中的时钟周期48)即可调度PB读命令的ACT命令,这样LT读命令的ACT命令与PB读命令的ACT命令之间间隔8个时钟周期,满足tRRD参数对于两个ACT命令相隔6ns的要求,从而避免了tRRD参数对LT读命令的影响,而且LT读命令与PB读命令数据调度可连续进行。
可选地,作为一个实施例,所述命令调度模块130具体用于在调度第一读子循环时,交叉调度LT读命令和PB读命令;所述命令调度模块130还用于调度第一写子循环,所述第一写子循环包括多个PB写命令,且所述第一写子循环中连续两个PB写命令对应不同的Bank。
具体地,当Bank的分布采用图2所示的方式,那么第一读子循环和第一写子循环可以采用如图6所示的调度方式:读子循环(见图5的描述)→写子循环→读子循环→写子循环,其中写子循环的循环方式可如下:PB1写命令(Bank3)→PB2写命令(Bank4)→PB3写命令(Bank5)→PB4写命令(Bank6)→PB5写命令(Bank7)→PB1写命令(Bank3)→PB2写命令(Bank4)→PB3写命令(Bank5)→PB4写命令(Bank6)→PB5写命令(Bank7)。
可选地,作为另一个实施例,所述系统还可包括:第一缓存模块160,用于缓存LT读命令;第二缓存模块170,用于缓存PB访问命令,所述PB访问命令包括PB读命令和PB写命令;检测模块180,用于检测所述第一缓存模块160和所述第二缓存模块170中的数据状态;所述命令调度模块130具体用于当所述检测模块180检测到所述第一缓存模块160和所述第二缓存模块170中均缓存了数据时,调度共享访问循环下的所述第一读子循环和所述第一写子循环。该共享访问循环的调度方式如图6所示。
可选地,作为另一个实施例,所述命令调度模块130还可用于:当所述检测模块180检测到所述第一缓存模块160中缓存了数据以及所述第二缓存模块170中未缓存数据时,调度LT访问循环,其中所述LT访问循环包括多个LT读命令,且所述LT访问循环中连续两个LT读命令对应不同的Bank;当所述检测模块180检测到所述第二缓存模块170中缓存了数据以及所述第一缓存模块160中未缓存数据时,调度PB访问循环,其中所述PB访问循环包括第二读子循环和第二写子循环,所述第二读子循环包括多个PB读命令,且所述第二读子循环中连续两个PB读命令对应不同的Bank,所述第二写子循环包括多个PB写命令,且所述第二写子循环中连续两个PB写命令对应不同的Bank。
具体地,当采用如图2所示的Bank分配方式时,PB访问循环的循环方式可如图7所示;LT访问循环的循环方式可如图8所示。
可选地,所述系统还可包括:选择模块,根据接收到的用于PB访问的第一报文的长度,选择使得所述系统带宽加速比最高的Cell配置作为所述第一报文在PB访问时的Cell配置;所述命令调度模块130根据所述选择模块选择的Cell配置调度所述第一报文对应的PB访问命令。
PB的Cell配置可以设置为3个BL8操作或者4个BL8操作,当设置为3个BL8操作时,会由于tFAW参数的限制引入空闲周期,例如采用于图5近似的DRAM的命令时序,不同的是将图5中PB的Cell配置设置为3个BL8操作,在这种情况下,LT读命令需要4个时钟周期,PB读命令需要12个时钟周期,那么连续4个ACT命令共需要32个时钟周期,而tFAW参数要求连续4个ACT命令最低要保证38个时钟周期,会引入6个空闲周期;如果采用如图5所示的DRAM的命令时序,此时将PB的Cell配置为4个BL8操作,在这种情况下,LT读命令需要4个时钟周期,PB读命令需要16个时钟周期,那么连续4个ACT命令需要40个时钟周期,这样可以避免tFAW参数的影响。但是PB的Cell配置设置的越高,小包N+1问题越严重,具体地,当Cell配置设置为4个BL8操作,那么每个Cell对应的数据块的长度为48Bytes,如果一个数据包的长度是96Bytes,那么需要2次PB访问即可完成(每次访问一个Cell大小的数据),且DRAM接口的带宽利用率为100%,但如果数据包的长度是97Bytes,那么需要3次PB访问,且DRAM接口的带宽利用率为67%,而DRAM接口的带宽利用率与整个系统的系统带宽加速比正相关,由此可知,在接口带宽一定的情况下,系统带宽加速比会随着报文长度增加呈现锯齿状分布。
举例说明,图9给出了Cell设置为3个BL8操作和4个BL8操作时,报文长度与系统带宽加速比之间的关系。如图9所示,总体来看,4BL8操作对应的Cell配置整体上带来的系统带宽加速比要高于3BL8操作对应的Cell配置,但是在曲线开始部分,3BL8操作对应的Cell配置所带来的系统带宽相对高一些,所以,为了得到最优的系统带宽加速比,可以通过上述选择模块根据报文长度,选择使得系统带宽加速比较高的Cell配置作为该报文PB访问时的Cell配置,这种动态配置Cell的方式可以在提高系统带宽加速比的情况下,有效降低小包N+1问题对系统效率的影响。
下面结合具体例子,更加详细地描述本发明实施例。应注意,图10至图11的例子仅仅是为了帮助本领域技术人员理解本发明实施例,而非要将本发明实施例限于所例示的具体数值或具体场景。本领域技术人员根据所给出的图10至图11的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本发明实施例的范围内。
图10是本发明实施例的查找表和报文缓存共享DRAM的系统的示意性框图。
图10的系统包括6个32位DDR3 SDRAM接口,每个DDR3 SDRAM接口控制两片X16 DDR3 SDRAM,且每个DDR3 SDRAM接口由一个DRAM控制器控制。X16 DDR3 SDRAM包括8个Bank,Bank的分配方式采用图2的分配方式,即Bank0~Bank2用于存储查找表,Bank3~Bank7用于缓存报文。
命令调度模块通过检测模块对缓存1和缓存2中的数据进行检测,根据检测的结果对共享访问循环、PB访问循环和LT访问循环进行调度,具体的调度逻辑流程图如图11所示。
具体地,当缓存1和缓存2均有数据,说明LT读命令与PB访问命令共存,此时可调度共享访问循环,共享访问循环的调度流程如图6所示;当缓存2中存在数据,缓存1中不存在数据,说明仅存在PB访问命令,此时调度PB访问循环,PB访问循环的调度流程如图7所示;当缓存1中存在数据,缓存2中不存在数据,说明仅存在LT读命令,不存在PB访问命令,此时调度LT访问循环,LT访问循环的调度流程如图8所示。
图10仅用了6个32位DDR3 SDRAM接口,可以实现与现有技术中120G接口、96Bytes+线速度的网络处理器(该网络处理器包括8个32为DDR3SDRAM接口,其中2个用于存储LT,6个用于缓存报文)相同的报文处理性能,从而大幅降低了系统的成本和功耗。
上文中结合图1至图11,详细描述了根据本发明实施例的查找表和报文缓存共享DRAM的系统,下面将结合图12,详细描述根据本发明实施例的查找表和报文缓存共享DRAM的方法。
应理解,图1的系统能够实现图12中的各个步骤,为避免重复,不再详细描述。
图12是本发明实施例的查找表和报文缓存共享DRAM的方法的示意性流程图。图12的方法的可以由图1的系统执行,例如可以是网络处理器。
1210、生成LT读命令和PB读命令,其中所述LT读命令用于读取第一组行中存储的查找表,所述PB读命令用于读取第二组行中缓存的报文,所述第一组行和所述第二组行均属于第一DRAM。
应理解,上述行可为BANK。
1220、交叉连续调度LT读命令和PB读命令。
本发明实施例中,由于PB访问时的Cell配置可以根据tFAW参数而灵活设置,所以将PB读命令和LT读命令交叉调度,可以有效减少tFAW参数引起的大量空闲周期,提高了数据总线的利用率。
可选地,作为一个实施例,所述交叉连续调度LT读命令和PB读命令可包括:根据第一参数,在PB读命令的执行周期内提前调度待执行的LT读命令中的ACT命令,其中所述第一参数用于指示LT读命令中ACT命令到RD命令之间间隔的周期数。
可选地,作为另一个实施例,所述交叉连续调度LT读命令和PB读命令可包括:在调度第一读子循环时,交叉调度LT读命令和PB读命令;所述方法还可包括:调度第一写子循环,所述第一写子循环包括多个PB写命令,且所述第一写子循环中连续两个PB写命令对应不同的Bank。
可选地,作为另一个实施例,缓存LT读命令和PB访问命令,所述PB访问命令包括PB读命令和PB写命令;所述交叉连续调度LT读命令和PB读命令包括:当检测到同时缓存了LT读命令和PB访问命令时,在共享访问循环中交叉调度所述第一读子循环和所述第一写子循环。
可选地,作为另一个实施例,图12的方法还可包括:当检测到仅缓存了LT读命令时,调度LT访问循环,所述LT访问循环包括多个LT读命令,且所述LT访问循环中连续两个LT读命令对应不同的Bank;当检测到仅缓存了PB访问命令时,调度PB访问循环,其中所述PB访问循环包括第二读子循环和第二写子循环,所述第二读子循环包括多个PB读命令,且所述第二读子循环中连续两个PB读命令对应不同的Bank,所述第二写子循环包括多个PB写命令,且所述第二写子循环中连续两个PB写命令对应不同的Bank。
可选地,作为另一个实施例,图12的方法还可包括:根据接收到的用于PB访问的第一报文的长度,选择使得所述系统带宽加速比最高的Cell配置作为所述第一报文在PB访问时的Cell配置,以便根据所述Cell配置调度所述第一报文对应的PB访问命令。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (12)

1.一种查找表和报文缓存共享动态随机访问存储器DRAM的系统,其特征在于,包括:
至少一个DRAM接口,其中所述至少一个DRAM接口中的第一DRAM接口对应至少一个DRAM,所述至少一个DRAM中的第一DRAM包括多个Bank,所述多个Bank中的第一组Bank用于存储查找表,所述多个Bank中的第二组Bank用于缓存报文;
命令调度模块,用于交叉连续调度查找表LT读命令和报文缓存PB读命令,其中所述LT读命令用于读取所述第一组Bank中的查找表,所述PB读命令用于读取所述第二组Bank中缓存的报文。
2.如权利要求1所述的系统,其特征在于,所述命令调度模块具体用于根据第一参数,在PB读命令的执行周期内提前调度待执行的LT读命令中的ACT命令,其中所述第一参数用于指示LT读命令中ACT命令到RD命令之间间隔的周期数。
3.如权利要求1或2所述的系统,其特征在于,
所述命令调度模块具体用于在调度第一读子循环时,交叉调度LT读命令和PB读命令;
所述命令调度模块还用于调度第一写子循环,所述第一写子循环包括多个PB写命令,且所述第一写子循环中连续两个PB写命令对应不同的Bank。
4.如权利要求3所述的系统,其特征在于,所述系统还包括:
第一缓存模块,用于缓存LT读命令;
第二缓存模块,用于缓存PB访问命令,所述PB访问命令包括PB读命令和PB写命令;
检测模块,用于检测所述第一缓存模块和所述第二缓存模块中的数据状态;
所述命令调度模块具体用于当所述检测模块检测到所述第一缓存模块和所述第二缓存模块中均缓存了数据时,调度共享访问循环下的所述第一读子循环和所述第一写子循环。
5.如权利要求4所述的系统,其特征在于,所述命令调度模块还用于:
当所述检测模块检测到所述第一缓存模块中缓存了数据以及所述第二缓存模块中未缓存数据时,调度LT访问循环,其中所述LT访问循环包括多个LT读命令,且所述LT访问循环中连续两个LT读命令对应不同的Bank;
当所述检测模块检测到所述第二缓存模块中缓存了数据以及所述第一缓存模块中未缓存数据时,调度PB访问循环,其中所述PB访问循环包括第二读子循环和第二写子循环,所述第二读子循环包括多个PB读命令,且所述第二读子循环中连续两个PB读命令对应不同的Bank,所述第二写子循环包括多个PB写命令,且所述第二写子循环中连续两个PB写命令对应不同的Bank。
6.如权利要求1-5中任一项所述的系统,其特征在于,所述系统还包括:
选择模块,根据接收到的用于PB访问的第一报文的长度,选择使得所述系统带宽加速比最高的Cell配置作为所述第一报文在PB访问时的Cell配置;
所述命令调度模块根据所述选择模块选择的Cell配置调度所述第一报文对应的PB访问命令。
7.一种查找表和报文缓存共享动态随机访问存储器DRAM的方法,其特征在于,包括:
生成查找表LT读命令和报文缓存PB读命令,其中所述LT读命令用于读取第一组Bank中存储的查找表,所述PB读命令用于读取第二组Bank中缓存的报文,所述第一组Bank和所述第二组Bank均属于第一DRAM;
交叉连续调度LT读命令和PB读命令。
8.如权利要求7所述的方法,其特征在于,所述交叉连续调度LT读命令和PB读命令包括:
根据第一参数,在PB读命令的执行周期内提前调度待执行的LT读命令中的ACT命令,其中所述第一参数用于指示LT读命令中ACT命令到RD命令之间间隔的周期数。
9.如权利要求7或8所述的方法,其特征在于,所述交叉连续调度LT读命令和PB读命令包括:
在调度第一读子循环时,交叉调度LT读命令和PB读命令;
所述方法还包括:
调度第一写子循环,所述第一写子循环包括多个PB写命令,且所述第一写子循环中连续两个PB写命令对应不同的Bank。
10.如权利要求9所述的方法,其特征在于,还包括:
缓存LT读命令和PB访问命令,所述PB访问命令包括PB读命令和PB写命令;
所述交叉连续调度LT读命令和PB读命令包括:
当检测到同时缓存了LT读命令和PB访问命令时,在共享访问循环中交叉调度所述第一读子循环和所述第一写子循环。
11.如权利要求10所述的方法,其特征在于,还包括:
当检测到仅缓存了LT读命令时,调度LT访问循环,所述LT访问循环包括多个LT读命令,且所述LT访问循环中连续两个LT读命令对应不同的Bank;
当检测到仅缓存了PB访问命令时,调度PB访问循环,其中所述PB访问循环包括第二读子循环和第二写子循环,所述第二读子循环包括多个PB读命令,且所述第二读子循环中连续两个PB读命令对应不同的Bank,所述第二写子循环包括多个PB写命令,且所述第二写子循环中连续两个PB写命令对应不同的Bank。
12.如权利要求7-11中任一项所述的方法,其特征在于,还包括:
根据接收到的用于PB访问的第一报文的长度,选择使得所述系统带宽加速比最高的Cell配置作为所述第一报文在PB访问时的Cell配置,以便根据所述Cell配置调度所述第一报文对应的PB访问命令。
CN201310336561.4A 2013-08-05 2013-08-05 查找表和报文缓存共享动态随机访问存储器的系统和方法 Expired - Fee Related CN103414658B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310336561.4A CN103414658B (zh) 2013-08-05 2013-08-05 查找表和报文缓存共享动态随机访问存储器的系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310336561.4A CN103414658B (zh) 2013-08-05 2013-08-05 查找表和报文缓存共享动态随机访问存储器的系统和方法

Publications (2)

Publication Number Publication Date
CN103414658A true CN103414658A (zh) 2013-11-27
CN103414658B CN103414658B (zh) 2016-08-10

Family

ID=49607644

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310336561.4A Expired - Fee Related CN103414658B (zh) 2013-08-05 2013-08-05 查找表和报文缓存共享动态随机访问存储器的系统和方法

Country Status (1)

Country Link
CN (1) CN103414658B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109558091A (zh) * 2018-12-11 2019-04-02 广东省新代通信与网络创新研究院 查找表存储方法、装置及计算机可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1154722A (ja) * 1997-07-29 1999-02-26 Toshiba Corp ダイナミック型半導体記憶装置
US6272594B1 (en) * 1998-07-31 2001-08-07 Hewlett-Packard Company Method and apparatus for determining interleaving schemes in a computer system that supports multiple interleaving schemes
CN1859282A (zh) * 2005-10-22 2006-11-08 华为技术有限公司 一种存储器的控制器及控制方法
CN101196856A (zh) * 2008-01-04 2008-06-11 太原理工大学 双端口访问单一动态存储器的接口
CN101587461A (zh) * 2008-05-20 2009-11-25 上海奇码数字信息有限公司 存储器访问调度装置、调度方法与存储器访问控制系统
CN102103548A (zh) * 2011-02-22 2011-06-22 中兴通讯股份有限公司 提高双倍数据速率同步随机存储器读写速率的方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1154722A (ja) * 1997-07-29 1999-02-26 Toshiba Corp ダイナミック型半導体記憶装置
US6272594B1 (en) * 1998-07-31 2001-08-07 Hewlett-Packard Company Method and apparatus for determining interleaving schemes in a computer system that supports multiple interleaving schemes
CN1859282A (zh) * 2005-10-22 2006-11-08 华为技术有限公司 一种存储器的控制器及控制方法
CN101196856A (zh) * 2008-01-04 2008-06-11 太原理工大学 双端口访问单一动态存储器的接口
CN101587461A (zh) * 2008-05-20 2009-11-25 上海奇码数字信息有限公司 存储器访问调度装置、调度方法与存储器访问控制系统
CN102103548A (zh) * 2011-02-22 2011-06-22 中兴通讯股份有限公司 提高双倍数据速率同步随机存储器读写速率的方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109558091A (zh) * 2018-12-11 2019-04-02 广东省新代通信与网络创新研究院 查找表存储方法、装置及计算机可读存储介质
WO2020119310A1 (zh) * 2018-12-11 2020-06-18 广东省新一代通信与网络创新研究院 查找表存储方法、装置及计算机可读存储介质

Also Published As

Publication number Publication date
CN103414658B (zh) 2016-08-10

Similar Documents

Publication Publication Date Title
US9418723B2 (en) Techniques to reduce memory cell refreshes for a memory device
US9336164B2 (en) Scheduling memory banks based on memory access patterns
US20100061153A1 (en) Refresh Method for a Non-volatile Memory
CN101620572B (zh) 非易失性内存及控制方法
CN105280215A (zh) 动态随机存取存储器dram的刷新方法、设备以及系统
CN102810050A (zh) 日志数据写入方法和日志系统
CN1839446A (zh) Dram部分刷新的方法和装置
CN102411982A (zh) 内存控制器及命令控制方法
CN103019974B (zh) 存储器访问处理方法及控制器
CN102016809A (zh) 存储器控制装置、存储器系统、半导体集成电路和存储器控制方法
CN103927268A (zh) 一种存储器的访问方法及装置
CN103065674A (zh) 实现综合局部阵列自刷新方案的半导体存储器件
US20140258606A1 (en) Storage control device, storage device, information processing system, and storage control method
US11216386B2 (en) Techniques for setting a 2-level auto-close timer to access a memory device
CN106325759A (zh) 一种可动态配置端口带宽的ddr控制方法及装置
CN101957729B (zh) 逻辑块变换方法及基于该方法兼容用户读写的方法和装置
CN104252420A (zh) 数据写入方法及内存系统
CN103414658A (zh) 查找表和报文缓存共享动态随机访问存储器的系统和方法
CN103019624A (zh) 一种相变内存装置
CN102780620B (zh) 一种网络处理器和报文处理方法
CN104461956A (zh) 访问同步动态随机访问存储器的方法、装置及系统
CN1988039A (zh) 闪存分散写入方法
JP6332756B2 (ja) データ処理方法、装置、およびシステム
CN100370436C (zh) 一种提高存储器访问效率的方法及存储器控制器
CN103365783A (zh) 存储控制装置、存储装置、信息处理系统和处理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information

Inventor after: Ren Kai

Inventor after: Wang Zixiong

Inventor before: Ren Kai

Inventor before: Wang Zixiong

CB03 Change of inventor or designer information
COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: DUAN MIN HAN ZICHEN TO: DUAN MIN SUN HONGXIA

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160810

Termination date: 20210805

CF01 Termination of patent right due to non-payment of annual fee