System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于多片SDRAM流水的带宽提升方法和系统技术方案_技高网

一种基于多片SDRAM流水的带宽提升方法和系统技术方案

技术编号:40921495 阅读:4 留言:0更新日期:2024-04-18 14:46
本发明专利技术涉及数据中心的数据通信技术领域,是一种基于多片SDRAM流水的带宽提升方法和系统,具体方法包括:通过4片ddr接口控制器,根据带宽处理能力对报文分配合适的queue id数量;将一个完整报文拆分成若干个block,并把报文的queue id信息复制到拆分的这些block;通过存储器读取操作,进行报文管理及block的拆分处理;对Block信息和queue id进行队列管理,将每个queue id作为一个子链表把每个报文的若干block通过链表形式存储。本发明专利技术解决了现有技术中,缺少能处理多片SDRAM间的报文保序关系的方法,报文在主存储器的存取速度低的问题。

【技术实现步骤摘要】

本专利技术涉及数据中心的数据通信,是一种基于多片sdram流水的带宽提升方法和系统。


技术介绍

1、云端服务器需要存取大量的网络报文,为了提高云端服务器网络报文的处理效率需要提高主存储器的存取速度。提高主存储器存取速度的通常方法有:指令重排、多bank并行工作、动态的行缓冲策略,多片sdram流水方式存取。通常情况最大的网络报文长度有几十kb,每个bank每次存取最大为burstlen*dq_size(8*512b=4kb),存取该完整报文需要多片sdram。同一个报文内的数据是需要保序的,然而读取多片sdram时,sdram片间是没有保序关系的。如何处理多片sdram间的报文保序关系是能否使用多片sdram流水方式存取报文的关键。

2、在现有已公开的专利技术技术中,如申请公开号为cn1798091a的专利公开了一种提高sdram处理带宽的方法,所述方法包括以下步骤:a)采用简化的存储方案,将数据包的状态数据和净荷数据进行在sdram中进行交织存储,在处理写入的包头信号时,预留一个地址单元存放当前包的包长状态数据;b)在从sdram读出数据时,需要搜索状态数据标志进行定帧;一旦搜索到状态数据,进行包长减计数,当包长计数等于0时,当前包突发完毕,取出下一个数据包的状态数据,进行下一次包突发。

3、上述专利为了提高单片sdram带宽,而本专利技术使用多片sdram流水的方式提升带宽,通过管理多片sdram流水的方式,并处理片与片之间的保序关系,达到提升带宽的目的。


技术实现思路b>

1、本部分的目的在于概述本专利技术的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本申请的说明书摘要和专利技术名称中可能会做些简化或省略以避免使本部分、说明书摘要和专利技术名称的目的模糊,而这种简化或省略不能用于限制本专利技术的范围。

2、本专利技术所要解决的技术问题是针对现有技术中,缺少能处理多片sdram间的报文保序关系的方法,报文在主存储器的存取速度低的问题,提出了一种基于多片sdram流水的带宽提升方法和系统。

3、为了达到上述目的,本专利技术一种基于多片sdram流水的带宽提升方法的技术方案包括如下步骤:

4、s1:通过4片ddr接口控制器,根据带宽处理能力对报文分配合适的queueid数量;

5、s2:将一个完整报文拆分成若干个block,并把报文的queueid信息复制到拆分的这些block;

6、s3:通过存储器读取操作,进行报文管理及block的拆分处理;

7、s4:对block信息和queueid进行队列管理,将每个queueid作为一个子链表把每个报文的若干block通过链表形式存储。

8、具体地,所述复制到拆分的这些block报文的queueid信息包括8个queueid。

9、具体地,所述存储器的读取操作包括:先对queueid1-8做一遍轮询读操作,当再取到queueid1时,前一个queueid1指示的报文已经处理完成。

10、具体地,s3中,所述报文管理及block的拆分处理包括如下具体步骤:

11、s301:将packet存入sdram阵列,并将sdram物理空间的指针以block为单元送入qm模块;

12、s302:通过存储器进行读取操作;接收qm发送的block指针从sdram取出对应packet;

13、s303:将各片sdram属于同一packet的data重新排序后送出。

14、另外,本专利技术一种基于多片sdram流水的带宽提升系统包括如下模块:

15、ddr模块、blockmanagement模块、queuemanagement模块、ht_table模块、link_table模块;

16、所述ddr模块为4片ddr接口控制器;

17、所述blockmanagement模块用于管理报文及拆分的block;

18、所述queuemanagement模块用于报文存入sdram和取出时的指令管理;

19、所述httable模块为链表内各qid的头尾指针表;

20、所述link_table模块为block链表。

21、具体地,所述blockmanagement模块具体包括:block_eq_gen单元、write_mux单元、write_forward单元、free_list_ctrl单元、store_ctrl*4单元、ddr_intf*4单元、word_mux单元、bm_dq_ordering单元、rd_block_mux单元。

22、具体地,所述block_eq_gen单元包括:以block为单元拆分完整packet,block大小为burstlen*dq_size,其中,block_info包含每个block的大小,报文头、尾信息等,packet_info包含packet总长度和保序用的queueid;

23、所述write_mux单元包括:

24、基于blockinfo取出对应的data存入sdram,接收blockinfo和4片sdram的状态信息,其中,store_rdy代表每片sdram的待发送命令缓存buffer空间是否足够;pending_cnt代表每片sdram的待发送命令个数;

25、选出store_rdy且pending_cnt最小的那片sdram作为下次data存入的对象,同时将store_rdy且pending_cnt最小的那片sdram对应的freebid取出,并将blockinfo和freebid结合起来,指示data在sdram物理空间的存储位置;

26、所述write_forward单元包括:通过blockinfo根据不同的qid分别缓存在write_forward中,每个qid的blockinfo按顺序存入fifo中,在packetinfo到来时,根据packetinfo的qid取出对应数量的block info,packetinfo中的qid注入到每个blockinfo中,按照存入sdram的顺序将每个block对应的物理地址和长度信息及下个block对应的物理地址存入linktable,基于每个block的qid信息存入对应的qid子链。

27、具体地,所述free_list_ctrl单元包括:将sdram的物理空间以block为单元拆分,其中,每个blockid代表sdram内1个block大小的物理空间,初始化时记为freebid,将初始化和released的block id存入freepool,其中,releasedbid代表报文从sdram取出后释放空闲的空间,可以被循环利用。

28、具体地,所述rd_block_mux单元包括:从链表中调度出的block id包含欲发送的报文长度,对收到的block的长度信息累加可以得到从sdram取出的本文档来自技高网...

【技术保护点】

1.一种基于多片SDRAM流水的带宽提升方法,其特征在于:所述方法包括如下具体步骤:

2.根据权利要求1所述的一种基于多片SDRAM流水的带宽提升方法,其特征在于,所述复制到拆分的这些block报文的queue id信息包括8个queue id。

3.根据权利要求1所述的一种基于多片SDRAM流水的带宽提升方法,其特征在于,所述存储器的读取操作包括:先对queue id 1-8做一遍轮询读操作,当再取到queue id 1时,前一个queue id 1指示的报文已经处理完成。

4.根据权利要求1所述的一种基于多片SDRAM流水的带宽提升方法,其特征在于,S3中,所述报文管理及block的拆分处理包括如下具体步骤:

5.一种基于多片SDRAM流水的带宽提升系统,其基于如权利要求1-4任一项所述的一种基于多片SDRAM流水的带宽提升方法实现,其特征在于,所述系统包括以下模块:

6.根据权利要求5所述的一种基于多片SDRAM流水的带宽提升系统,其特征在于,所述Block Management模块具体包括:

7.根据权利要求6所述的一种基于多片SDRAM流水的带宽提升系统,其特征在于,所述Block_eq_gen单元包括:以block为单元拆分完整packet,Block大小为burstlen*dq_size,其中,Block_info包含每个block的大小,报文头、尾信息等,Packet_info包含packet总长度和保序用的queue id;

8.根据权利要求6所述的一种基于多片SDRAM流水的带宽提升系统,其特征在于,所述free_list_ctrl单元包括:将SDRAM的物理空间以Block为单元拆分,其中,每个block id代表SDRAM内1个block大小的物理空间,初始化时记为free bid,将初始化和released的block id存入free pool,其中,Releasedbid代表报文从SDRAM取出后释放空闲的空间,可以被循环利用。

9.根据权利要求6所述的一种基于多片SDRAM流水的带宽提升方法,其特征在于,所述rd_block_mux单元包括:从链表中调度出的block id包含欲发送的报文长度,对收到的block的长度信息累加可以得到从SDRAM取出的SDRAM的数据位宽数量,记为rsid;结合已发送的released rsid可以评估出将要从SDRAM取出的DQ数量,如果达到Bm_dq_ordering内缓存的阈值提前反压QM模块;

10.根据权利要求5所述的一种基于多片SDRAM流水的带宽提升系统,其特征在于,所述Ht_table模块包括:link_table内各qid的头尾指针表。写link_table时从ht_table获取链表尾指针,并将当前写入link_table的地址更新到ht_table,作为当前链表新的尾指针。读link_table时从ht_table获取链表头指针,将头指针指向的下个地址更新到ht_table作为新的头指针。

11.根据权利要求5所述的一种基于多片SDRAM流水的带宽提升系统,其特征在于,所述Link_table模块采用尾插头取法,以尾指针为地址存储的是下个node的地址和长度信息。

...

【技术特征摘要】

1.一种基于多片sdram流水的带宽提升方法,其特征在于:所述方法包括如下具体步骤:

2.根据权利要求1所述的一种基于多片sdram流水的带宽提升方法,其特征在于,所述复制到拆分的这些block报文的queue id信息包括8个queue id。

3.根据权利要求1所述的一种基于多片sdram流水的带宽提升方法,其特征在于,所述存储器的读取操作包括:先对queue id 1-8做一遍轮询读操作,当再取到queue id 1时,前一个queue id 1指示的报文已经处理完成。

4.根据权利要求1所述的一种基于多片sdram流水的带宽提升方法,其特征在于,s3中,所述报文管理及block的拆分处理包括如下具体步骤:

5.一种基于多片sdram流水的带宽提升系统,其基于如权利要求1-4任一项所述的一种基于多片sdram流水的带宽提升方法实现,其特征在于,所述系统包括以下模块:

6.根据权利要求5所述的一种基于多片sdram流水的带宽提升系统,其特征在于,所述block management模块具体包括:

7.根据权利要求6所述的一种基于多片sdram流水的带宽提升系统,其特征在于,所述block_eq_gen单元包括:以block为单元拆分完整packet,block大小为burstlen*dq_size,其中,block_info包含每个block的大小,报文头、尾信息等,packet_info包含packet总长度和保序用的queue id;

8.根据权利要求6所述的一种基于多片sdram流水的带宽提升系...

【专利技术属性】
技术研发人员:赵朋浩刘禄仁穆月飞黄子超巩书兰莫喜梁
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1