CN101621474B - 一种实现小包访问内存高速线速的方法及装置 - Google Patents

一种实现小包访问内存高速线速的方法及装置 Download PDF

Info

Publication number
CN101621474B
CN101621474B CN2009101628619A CN200910162861A CN101621474B CN 101621474 B CN101621474 B CN 101621474B CN 2009101628619 A CN2009101628619 A CN 2009101628619A CN 200910162861 A CN200910162861 A CN 200910162861A CN 101621474 B CN101621474 B CN 101621474B
Authority
CN
China
Prior art keywords
bag
group
memory
parcel
packet
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.)
Active
Application number
CN2009101628619A
Other languages
English (en)
Other versions
CN101621474A (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.)
New H3C Semiconductor Technology Co Ltd
Original Assignee
Hangzhou H3C 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 Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN2009101628619A priority Critical patent/CN101621474B/zh
Publication of CN101621474A publication Critical patent/CN101621474A/zh
Application granted granted Critical
Publication of CN101621474B publication Critical patent/CN101621474B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种实现小包访问内存高速线速的方法,包括:所述内存控制器对需要写入的小包进行组包,并判断组合后的小包是否大于等于第一组包阈值,如果达到所述组合后的小包写入内存区域;在所述内存区域中的包处理后,所述内存控制器对需要读出的包进行组包,当所述组包大于等于第二组包阈值时从所述内存区域中读出,并通过所述报文发送模块转发所述组包;第一组包阈值为写入时需要达到的高速线速的组包长度,第二组包阈值为读出时需要达到的高速线速的组包长度。本发明中,在读、写访问内存过程中基于内存的Bank Interleave特性采用组包方法,并可以在读访问内存时采用报文调序,达到提高内存的带宽利用率。

Description

一种实现小包访问内存高速线速的方法及装置
技术领域
本发明涉及通信技术领域,尤其涉及一种实现小包访问内存高速线速的方法及装置。
背景技术
路由器是一种连接多个不同网络或网段的数据通讯设备,提供数据包的转发和传输路径的选择,通过转发数据包来实现不同网络或网段的互连。在路由器实现中,通常利用内存缓存报文,例如,DDR SDRAM(Double DataRate Synchronous Dynamic RAM,双倍速率同步动态随机存储器)或DDR2SDRAM (Double Data Rate 2Synchronous Dynamic RAM,第二代双倍速率同步动态随机存储器),其中,报文处理示例如图1所示,包括以下步骤:
步骤101,线卡板0的GE(Gigabit Ethernet,千兆比特以太网)控制器从外部接收报文,通过内存控制器将报文存放到指定的内存区域中等待被处理;
步骤102,在内存区域中进行报文处理;
步骤103,报文处理完毕后,内存控制器将报文从内存区域中取出,并从相应的接口发出,通过背板到达其他线卡板,例如线卡板1。
内存控制器对内存区域的访问为一写、一读两次操作,由此可知,如果FPGA (Field Programmable Gate Array,现场可编程门阵列)处理足够快,则内存读写速度将成为***性能的核心。
现有设计中,对于内存的读写没有做特殊的处理,即只是简单的实现收发报文过程中对于内存的读写操作。对于64字节小包(通常小于256字节的包称为小包)内存访问时序如图2所示,一次读操作为12个时钟周期,而其中真正的有用数据为4个时钟周期,即带宽利用率为1/3。对于64字节小包总带宽为400M(数据速率)x64(内存数据位宽)=25G,有效利用带宽为8G;由于对该有效利用带宽包括读写两次操作,因此,其中一次操作只能达到4G左右的性能。
因此,现有技术中,由于内存利用率低,导致路由器性能较低,无法实现小包高速线速。
发明内容
本发明提供了一种实现小包访问内存高速线速的方法及装置,提高内存利用率,实现小包高速线速。
本发明提供了一种实现小包访问内存高速线速的方法,应用于包括接收模块、内存区域、内存控制器和发送模块的装置中,所述方法包括以下步骤:
所述内存控制器对需要写入的小包进行组包,并判断组合后的小包是否大于等于第一组包阈值,如果达到所述组合后的小包写入内存区域;
在所述内存区域中的包处理后,所述内存控制器对需要读出的包进行组包,当所述组包大于等于第二组包阈值时从所述内存区域中读出,并通过所述报文发送模块转发所述组包;
第一组包阈值为写入时需要达到的高速线速的组包长度,第二组包阈值为读出时需要达到的高速线速的组包长度。
所述从所述内存区域中读出,之前还包括:
判断所述组包中的相邻小包是否属于同一Bank,如果属于同一Bank,则通过缓存FIFO将后续相同Bank的小包进行调序,使其远离前一个相同Bank的小包。
所述对需要写入的小包进行组包,之后还包括:
检测到若干小包的组包长度达到包长门限,将所述组包发出,并启动超时判断;
如果后续又发生组包,结束上次超时判断,并开始新的超时判断;如果所述超时判断时间达到预设超时阀值而没发生组包,则自动触发内存写操作,将没有达到包长门限且待写入的小包组包写入到内存。
所述第一组包阈值和所述第二组包阈值根据内存时钟频率确定。
本发明还提供了一种实现小包访问内存高速线速的装置,包括:
接收模块,用于接收外部发送的小包报文;
内存控制模块,与所述接收模块连接,用于对需要写入的小包进行组包,并判断组合后的小包是否大于等于第一组包阈值,如果达到所述组合后的小包写入内存区域;在所述内存区域中的包处理后,对需要读出的包进行组包,当所述组包大于等于第二组包阈值时从所述内存区域中读出,并通过所述报文发送模块转发所述组包;第一组包阈值为写入时需要达到的高速线速的组包长度,第二组包阈值为读出时需要达到的高速线速的组包长度;
发送模块,与所述内存控制模块连接,用于将所述内存控制模块读取的组包发送到外部。
所述内存控制模块,还用于在读取组包时,判断所述组包中的相邻小包是否属于同一Bank,如果属于同一Bank,则通过缓存FIFO将后续相同Bank的小包进行调序,使其尽量远离前一个相同Bank的小包。
所述内存控制模块,还用于检测到若干小包的组包长度达到包长门限,将所述组包发出,并启动超时判断;如果后续又发生组包,结束上次超时判断,并开始新的超时判断;如果所述超时判断时间达到预设超时阀值而没发生组包,则自动触发内存写操作,将没有达到包长门限且待写入的小包组包写入到内存。
所述第一组包阈值和所述第二组包阈值根据内存时钟频率确定。
与现有技术相比,本发明具有以下优点:
本发明中,在读、写访问内存过程中基于内存的Bank Interleave特性采用组包方法,并可以在读访问内存时采用报文调序,达到提高内存的带宽利用率。
附图说明
图1是现有技术中路由器报文处理示意图;
图2是现有技术中无特殊处理的64字节小包内存访问时序图;
图3是本发明中DDR2SDRAM采用Bank interleave进行连续的读操作时序图;
图4是本发明中一种报文写访问内存高速线速流程图;
图5是本发明中图4所示内存写操作示意图;
图6是本发明中将报文从内存中取出发往目的出接口流程图;
图7是本发明中图6所示内存读操作示意图;
图8是本发明中读操作中调整报文顺序示意图;
图9是本发明中一种实现小包访问内存高速线速的装置结构图。
具体实施方式
SDRAM采用的是时钟驱动方式,其指令与数据输出之间的延时是可编程的。在SDRAM的内部有一个模式储存器可以设定一次存取的数据量及存取方式(Sequential或Interleave)以及CAS延时时间,因此,所有的SDRAM都能够以Interleave方式工作。
内存数据是以位(bit)为单位,以行(Row)、列(Column)方式储存在内存区域中,这样的数据阵称为Bank,目前的内存芯片规格有2~4个Bank。在内存区域中选定数据的方法是先选行再选列,进而准确地找到数据位置。在一个内存访问周期内包括Bank的预充电(Precharge,因为SDRAM需要恒电流以保存信息,一旦断电信息即丢失)、RAS(Row Address Strobe,行地址选通脉冲)、CAS(Column Address Strobe,列地址选通脉冲)三个周期。访问过程首先是对Bank进行充电,预充电周期是tRP;充电完成后使Bank行地址有效,由于在选择了Bank的同时也选择了相应的行,所以Bank有效和行地址有效是同一个意思。Bank行地址有效的周期是tRCD,指在经过tRCD的周期后就进入了列地址选通阶段。CAS有效后还要经过一定的周期才能开始数据的传输,这个周期就是CL(CAS Latency),经过CL的周期后,被选中的行与列的交叉格开始进行读取或写入的操作。
图3所示为DDR2SDRAM采用Bank interleave(分级交错)进行连续的读操作时序图,DDR2SDRAM每次的读、写操作配置为Burst 8模式(突发传输是指在一个限定的周期次数内,批量传输数据,只需对第一个数据位置进行定位,其后的数据可以依次自动进行操作,这样大幅提高了传输效率。)。图3中所示在时钟周期0发送读取Bank[0]的ACT(激活)和RD(读取,包括Auto precharge预冲电压)命令,周期4发送读取Bank[1]的ACT和RD(包括Auto precharge)命令,周期8发送读取Bank[2]的ACT和RD(包括Autoprecharge)命令,周期12发送读取Bank[3]的ACT和RD(包括Auto precharge)命令,在周期16又重新发送读取Bank[0]的ACT和RD(包括Auto precharge)命令,利用这种方法在时钟周期8以后数据连续不断的从DDR2SDRAM读出数据,总线效率为100%。在周期0发送读取Bank[0]的ACT和RD(包括Auto precharge)命令,同周期16发送读取Bank[0]的ACT和RD(包括Autoprecharge)命令,可以为分别读取Bank[0]任意Row的数据,Bank[1]、Bank[2]、Bank[3]同理。
本发明为实现访问内存小包高速线速处理,需要尽可能提高内存的带宽利用率,下面以64字节的包作为小包为例进行说明,高速线速以10G为例说明,实际应用中,小包可以为小于256字节的包,例如128字节小包等,高速线速也可以是其他速率,例如20G或40G等。
本发明在读、写访问内存过程中基于内存的Bank Interleave特性采用组包方法,并可以在读访问内存时采用报文调序,达到提高内存的带宽利用率。本发明中报文写访问内存过程如图4所示,包括以下步骤:
步骤401,根据内存时钟频率确定第一组包阈值;
对于任意报文都需要对内存进行两次操作,即收到报文后将报文写入内存中,当准备发送报文时将报文从内存中读出。比如64字节的小包,由于该小包速率为15Mpps(每秒15,000,000个包)时线速为10G,则每个包满足10G线速的读写处理时间为1/15Mpps=66ns,因此处理一个包的时间为66ns,即只有读写操作在66ns之内完成,才能实现10G线速。
由于接收报文的速度要小于内存的处理速率,将使得内存中的BIU(BusInterface Unit,总线接口单元,用于同外部联系,负责所有涉及外部总线的操作,包括取指令、读操作数、写操作数、地址转换和总线控制等)极快地处理完一个写操作后发现没有后续的写操作,而去进行读操作,且读写操作之间会产生切换时间,因此,无法利用上述Bank Interleave特性,使得内存带宽利用率下降,为此,需要能够一次处理几个小包的写操作以提高效率。
本发明通过将几次写操作进行组合的方式将几个小包组合,能够发起连续的Bank Interleave写操作。这种报文组合其实类似于收到了一个大包时的处理,节省了每个小包从写入到读出的切换时间,从而达到10G线速,就可以知道要组合多长的报文进行合并操作,该值和内存的时钟频率有关,以时钟为250M的DDR2SDRAM为例,选择组合包长大于等于256B作为组合条件,对于256B报文,满足10G线速的条件是读写内存的时间小于217ns,推导方式如下:
选定长度的组包实际读操作时间+写操作时间<=定长度的报文10G线速的时间;                                              (公式1)
以太网的报文长度=以太网的IPG(Inter Packet Gap,帧间间隙)+前导码共20Bytes;                                         (公式2)
64字节的小包长度=64字节+20字节;                 (公式3)
64字节的小包只有读写操作在66ns之内完成,才能实现10G线速;
因此,对于256字节的以太网报文,根据公式1实现定长度的报文10G线速的时间=(256+20)/(64+20)*66=217ns;
实际发起一次读或写操作在最坏情况下(在同一个BANK中):
读操作时间=tRCD(Time of RAS to CAS Delay,Bank/行有效的周期)+CL(column arrange select延迟)+256B读数据时间+tRP(Time of Row Precharge,预充电周期)
=15ns+16ns+64ns+4ns=99ns;                       (公式4)
写操作时间=tRCD(ACTIVE到READ或WRITE的延迟)+(CL-1)+256B写数据时间+写命令恢复时间(tWR+tRP)
=15ns+12ns+64ns+15ns+15ns=121ns;                (公式5)
根据公式4和公式5,读写内存操作时间共需要220ns,略大于定长度的报文10G线速的时间217ns,但由于通常情况大部分情况下读写不会在同一个BANK,所以对于256字节的报文通常可以满足10G线速,所以当收到大于256B的报文,不需要在进行报文组合。
对于其他频率的DDR2SDRAM,tRCD、tWR(写恢复时间)和tRP(Timeof Row Precharge,预充电周期)参数值和略微不同,只需要按照上面的公式计算即可。
步骤402,所述内存控制器对需要写入的小包进行组包,并判断组合后的小包是否大于等于第一组包阈值,如果是则将所述组合后的小包写入内存区域。上述的小包通常情况下为相同大小的小包,此时每个组包的长度达到第一组包阈值时,可以作为一个大包写入内存区域;当小包的大小不同时,组包后长度有可能超出第一组包阈值,此时,可以作为一个大包写入内存区域。
以太网控制器接收到的报文,处理单元会向内存控制器申请空闲内存地址,然后向该内存地址发起内存写操作,将报文分级存放到内存中,如图5所示,向DDR2SDRAM中存储时是按BANK顺序存储的(Bank0、Bank1、Bank2、Bank3),这样可以基于图3所示的Bank Interleave特性大幅提高内存的带宽利用率。
另外,上述步骤401中还可以通过超时判断机制防止由于包长不够组包门限,导致长时间不能被发出。还是以5个小包为例,前四个小包的组包长度到达包长门限,将该组包发出,此操作结束后超时判断机制即时开始(一般通过计数器实现),如果后续又有组包发生,则结束上次超时判断,并开始新的一次超时判断(超时计数器清零后开始重新计数),如果一直没有后续组包的发生,像此例中的第五个包,由于包长不够门限且后续没有报文,在达到设定的超时阀值后会自动触发一次内存写操作,将这个最后一包写入到内存中,这里提到的超时阀值通常情况下是可以设置的,比如可以定为1ms,即前4个包组包完成后,过了1ms,第五个包在超时机制的帮助下写入到内存中。
本发明中,将组包写入内存区域后,FPGA对报文解析处理,随后会根据处理结果,将报文从内存中取出发往目的出接口,如图6所示,包括以下步骤:
步骤601,根据内存时钟频率确定第二组包阈值;在小包的情况下需要进行组包的操作,这样能够充分利用Bank Interleave特性,并能够减小读写的切换次数。
步骤602,在所述内存区域中的包处理后,所述内存控制器对需要读出的包进行组包,当所述组包大于第二组包阈值时从所述内存区域中读出,并通过所述报文发送模块转发所述组包。与写操作同理,读出的小包长度可以相同,也可以不同。
以太网控制器向该内存地址发起内存读操作,将报文分级读出,如图7所示,每次将内存中读出一个组包(Bank0、Bank1、Bank2、Bank3),这样可以基于图3所示的Bank Interleave特性大幅提高内存的带宽利用率。
还是以64字节小包的10G线速为例,任何包长的报文都会对内存进行一次读、一次写操作,为达到线速,这两次操作需要在66ns内完成操作。对于写操作,由于都能够实现Bank Interleave特性,使得写的效率很高,理论上在64ns可以完成256B的写操作,每个64字节的小包只需要16ns的时间(不考虑前后BANK相撞的问题)。对于读操作,由于出队的任意性,使得即使在组包的情况下,也无法完全实现Bank Interleave特性,比如连着到来的4个报文分别在1、1、2、3上,这样还是存在两次操作发生在相同BANK上,导致precharge时间无法被隐藏,使得性能下降,根据调度的随机性,可以简单的分成四种情况,4个小包均在同一个BANK上(最恶劣情况,每个64字节的小包需要64ns),3个小包在同一个BANK上(较恶劣情况,每个64字节的小包需要48ns),2个小包在同一个BANK上(每个64字节的小包需要32ns),4个小包均不在同一个BANK上(最好情况,每个64字节的小包需要16ns),按照概率分配,可以得到每个64字节的小包需要的平均时间为40ns。另外还要考虑读到写和写到读的切换时间,大致为(24+8)/4=8ns。由此可以得到一个64字节的小包需要的平均读、写时间为16+40+8=62ns,该值小于66ns,由此理论上可以达到线速。
上述第一组包阈值与第二组包阈值可以设置相同,也可以设置不同。
另外,在读操作时,可以调整报文的顺序,以增加Bank Interleave特性的效果,具体实现如图8所示:
图8中1、2、3、4为来包顺序,横条代表位于Bank0、竖条代表Bank1、左斜条代表Bank2、右斜条代表Bank3。如果两个相邻报文的BANK号相同,则后面那个先放入到缓存FIFO中,将该报文调序到远离BANK号相同的报文;否则入命令FIFO,直接读出。这种实现的基本初衷就是尽量在本次操作中岔开两次对相同BANK的操作。比如四次操作(报文顺序1、2、3、4)的BANK为“B0、B0、B2、B3”(图8中示例2),将调整为“B0、B2、B3、B0”这样大大减少第二次对BANK1操作的等待时间(precharge)。
本发明提供了一种实现小包访问内存高速线速的装置,如图9所示,包括:
接收模块910,用于接收外部发送的小包报文;
内存控制模块920,与接收模块910连接,用于对需要写入的小包进行组包,并判断组合后的小包是否大于等于第一组包阈值,如果达到所述组合后的小包写入内存区域。当接收模块910接收到的报文,向内存控制器申请空闲内存地址,然后向该内存地址发起内存写操作,将报文分级存放到内存中,向DDR2SDRAM中存储时是按BANK顺序存储的(Bank0、Bank1、Bank2、Bank3),这样可以基于Bank Interleave特性大幅提高内存的带宽利用率。
通过将几次写操作进行组合的方式将几个小包组合,能够发起连续的Bank Interleave写操作。这种报文组合其实类似于收到了一个大包时的处理,节省了每个小包从写入到读出的切换时间,从而达到10G线速,就可以知道要组合多长的报文进行合并操作,该值和内存的时钟频率有关,以时钟为250M的DDR2SDRAM为例,选择组合包长大于等于256B作为组合条件。
内存控制模块920在所述内存区域中的包处理后,对需要读出的包进行组包,当所述组包大于等于第二组包阈值时从所述内存区域中读出,并通过所述报文发送模块转发所述组包;第一组包阈值为写入时需要达到的高速线速的组包长度,第二组包阈值为读出时需要达到的高速线速的组包长度;内存控制模块920向该内存地址发起内存读操作,将报文分级读出,每次将内存中读出一个组包(Bank0、Bank1、Bank2、Bank3),这样可以基于BankInterleave特性大幅提高内存的带宽利用率。
发送模块930,与内存控制模块920连接,用于将所述内存控制模块读取的组包发送到外部。
其中,内存控制模块920,还用于在读取组包时,判断所述组包中的相邻小包是否属于同一Bank,如果属于同一Bank,则通过缓存FIFO将后续相同Bank的小包进行调序,使其尽量远离前一个相同Bank的小包。
其中,每次组合小包时除了判断包长以外,在每次发送完本次组包,如果还有小包没有发送,就启动定时。因此,内存控制模块920,还用于检测到若干小包的组包长度达到包长门限,将所述组包发出,并启动超时判断;如果后续又发生组包,结束上次超时判断,并开始新的超时判断;如果所述超时判断时间达到预设超时阀值而没达到包长门限,则自动触发内存写操作,将没有达到包长门限且待写入的小包组包写入到内存。
其中,内存控制模块920中所述第一组包阈值和所述第二组包阈值根据内存时钟频率确定。
本发明中,在读、写访问内存过程中基于内存的Bank Interleave特性采用组包方法,并可以在读访问内存时采用报文调序,达到提高内存的带宽利用率。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

Claims (8)

1.一种实现小包访问内存高速线速的方法,应用于包括接收模块、内存区域、内存控制器和发送模块的装置中,其特征在于,所述方法包括以下步骤:
所述内存控制器对需要写入的小包进行组包,并判断组合后的小包是否大于等于第一组包阈值,如果是,则将所述组合后的小包写入内存区域;
在所述内存区域中的包处理后,所述内存控制器对需要读出的包进行组包,当所述组包大于等于第二组包阈值时从所述内存区域中读出,并通过发送模块转发所述组包;
第一组包阈值为写入时需要达到的高速线速的组包长度,第二组包阈值为读出时需要达到的高速线速的组包长度。
2.如权利要求1所述的方法,其特征在于,所述从所述内存区域中读出,之前还包括:
判断所述组包中的相邻小包是否属于同一Bank,如果属于同一Bank,则通过缓存FIFO将后续相同Bank的小包进行调序,使其远离前一个相同Bank的小包。
3.如权利要求1所述的方法,其特征在于,所述对需要写入的小包进行组包,之后还包括:
检测到若干小包的组包长度达到包长门限,将所述组包发出,并启动超时判断;
如果后续又发生组包,结束上次超时判断,并开始新的超时判断;如果所述超时判断时间达到预设超时阈值而没发生组包,则自动触发内存写操作,将没有达到包长门限且待写入的小包组包写入到内存。
4.如权利要求1所述的方法,其特征在于,所述第一组包阈值和所述第二组包阈值根据内存时钟频率确定。
5.一种实现小包访问内存高速线速的装置,其特征在于,包括:
接收模块,用于接收外部发送的小包报文;
内存控制模块,与所述接收模块连接,用于对需要写入的小包进行组包,并判断组合后的小包是否大于等于第一组包阈值,如果是,则将所述组合后的小包写入内存区域;在所述内存区域中的包处理后,对需要读出的包进行组包,当所述组包大于等于第二组包阈值时从所述内存区域中读出,并通过发送模块转发所述组包;第一组包阈值为写入时需要达到的高速线速的组包长度,第二组包阈值为读出时需要达到的高速线速的组包长度;
发送模块,与所述内存控制模块连接,用于将所述内存控制模块读取的组包发送到外部。
6.如权利要求5所述的装置,其特征在于,
所述内存控制模块,还用于在读取组包时,判断所述组包中的相邻小包是否属于同一Bank,如果属于同一Bank,则通过缓存FIFO将后续相同Bank的小包进行调序,使其尽量远离前一个相同Bank的小包。
7.如权利要求5所述的装置,其特征在于,
所述内存控制模块,还用于检测到若干小包的组包长度达到包长门限,将所述组包发出,并启动超时判断;如果后续又发生组包,结束上次超时判断,并开始新的超时判断;如果所述超时判断时间达到预设超时阈值而没发生组包,则自动触发内存写操作,将没有达到包长门限且待写入的小包组包写入到内存。
8.如权利要求5所述的装置,其特征在于,所述第一组包阈值和所述第二组包阈值根据内存时钟频率确定。
CN2009101628619A 2009-08-11 2009-08-11 一种实现小包访问内存高速线速的方法及装置 Active CN101621474B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009101628619A CN101621474B (zh) 2009-08-11 2009-08-11 一种实现小包访问内存高速线速的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009101628619A CN101621474B (zh) 2009-08-11 2009-08-11 一种实现小包访问内存高速线速的方法及装置

Publications (2)

Publication Number Publication Date
CN101621474A CN101621474A (zh) 2010-01-06
CN101621474B true CN101621474B (zh) 2011-11-16

Family

ID=41514525

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009101628619A Active CN101621474B (zh) 2009-08-11 2009-08-11 一种实现小包访问内存高速线速的方法及装置

Country Status (1)

Country Link
CN (1) CN101621474B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102833145A (zh) * 2011-06-16 2012-12-19 中兴通讯股份有限公司 一种自适应动态调整带宽的装置及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6571325B1 (en) * 1999-09-23 2003-05-27 Rambus Inc. Pipelined memory controller and method of controlling access to memory devices in a memory system
CN1859282A (zh) * 2005-10-22 2006-11-08 华为技术有限公司 一种存储器的控制器及控制方法
CN101499956A (zh) * 2008-01-31 2009-08-05 中兴通讯股份有限公司 分级缓冲区管理***及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6571325B1 (en) * 1999-09-23 2003-05-27 Rambus Inc. Pipelined memory controller and method of controlling access to memory devices in a memory system
CN1859282A (zh) * 2005-10-22 2006-11-08 华为技术有限公司 一种存储器的控制器及控制方法
CN101499956A (zh) * 2008-01-31 2009-08-05 中兴通讯股份有限公司 分级缓冲区管理***及方法

Also Published As

Publication number Publication date
CN101621474A (zh) 2010-01-06

Similar Documents

Publication Publication Date Title
US8225026B2 (en) Data packet access control apparatus and method thereof
US10592121B2 (en) Quasi-synchronous protocol for large bandwidth memory systems
US20130111122A1 (en) Method and apparatus for network table lookups
US8032676B2 (en) Methods and apparatuses to manage bandwidth mismatches between a sending device and a receiving device
CN110569204B (zh) 基于fpga和ddr3 sdram的可配置图像数据缓存***
CN102103548A (zh) 提高双倍数据速率同步随机存储器读写速率的方法及装置
CN103780506A (zh) 一种用于以太网设备的数据缓存***及方法
CN102347902B (zh) 发送间隔调整方法、装置和网络设备
CN106537858A (zh) 一种队列管理的方法和装置
US20090002864A1 (en) Memory Controller for Packet Applications
CN110362516B (zh) 一种提高ddr存储总线利用率的方法和装置
CN105335323A (zh) 一种数据突发的缓存装置和方法
CN100517498C (zh) 一种无读取延迟的先进先出存储器
CN101621474B (zh) 一种实现小包访问内存高速线速的方法及装置
CN104052676A (zh) 一种发送通路及发送通路的数据处理方法
CN101118524A (zh) 直接存储器存取传输控制装置
JP2012522311A (ja) マージドメモリコマンドプロトコルをサポートするメモリシステム、コントローラ、およびデバイス
CN105516023A (zh) 一种报文转发方法和装置
US10031884B2 (en) Storage apparatus and method for processing plurality of pieces of client data
CN101854259A (zh) 一种数据包的计数方法及***
CN103442091A (zh) 一种数据传输方法及装置
CN111723027B (zh) 一种基于电力边缘网关的动态存储缓冲区读取控制方法
CN113868166B (zh) 自适应请求应答***、方法、设备和计算机介质
CN102571535B (zh) 一种数据延迟装置、方法及通信***
KR102338872B1 (ko) 다수의 클라이언트 데이터를 처리하는 저장 장치 및 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Patentee after: Xinhua three Technology Co., Ltd.

Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base

Patentee before: Huasan Communication Technology Co., Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190828

Address after: 610041 Chengdu City, Sichuan Province, China (Sichuan) Free Trade Pilot Area

Patentee after: Xinhua San Semiconductor Technology Co., Ltd.

Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Patentee before: Xinhua three Technology Co., Ltd.