[发明专利]基于链表的交换网络中队列缓冲管理方法有效
申请号: | 200910084278.0 | 申请日: | 2009-05-20 |
公开(公告)号: | CN101594299A | 公开(公告)日: | 2009-12-02 |
发明(设计)人: | 林栋;刘斌 | 申请(专利权)人: | 清华大学 |
主分类号: | H04L12/56 | 分类号: | H04L12/56;G06F17/30 |
代理公司: | 北京众合诚成知识产权代理有限公司 | 代理人: | 朱 琨 |
地址: | 100084北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 基于链表的交换网络中队列缓冲管理方法,属于计算机网络技术领域,其特征在于:同时采用DRAM以及SRAM构造数据与控制分离的链表单元结构,通过链表方式对外存空间进行管理,实现多队列结构;利用队列操作以数据包为单位这个特点,压缩存储链表单元中的控制信息,提高了链表单元的存储效率;通过流水线设计实现多个链表单元的并发处理,克服了存储器延迟的不利影响,提高了链表的操作效率。它的特点在于吞吐率高,扩展性好。 | ||
搜索关键词: | 基于 交换 网络 队列 缓冲 管理 方法 | ||
【主权项】:
1.基于链表的交换网络中队列缓冲管理方法,其特征在于,所述方法是一种基于链表的交换网络中多队列缓冲管理的方法,是在一种队列缓冲管理系统中依次按以下步骤实现的:步骤(1).构建一个用于所述交换网络中多队列缓冲管理的队列管理系统,所述系统含有:FPGA芯片、缓存数据包DRAM和缓存数据包描述控制信息用的SRAM,其中:FPGA芯片含有:队列管理模块和片内存储器,其中队列管理模块设有:数据包输入端口和数据包输出端口,片内存储器MRAM,与所述队列管理模块互连,缓存数据包DRAM,与所述队列管理模块互连,所述缓存数据包DRAM是一种延迟压缩式的RLDRAM,以16个周期为读写操作的最小时间单位,实际配置为64B×512K,拥有读/写分离的数据总线,但读写复用一套地址及控制总线,缓存数据包描述控制信息用的SRAM,型号为CYTC1370C,拥有一套读写复用的数据和控制总线,实际配置为32bits×512K;步骤(2).把所选RLDRAM和SRAM共同组成一个“数据域和控制域分离”的链表单元,所述的每个链表单元包含一个64B的数据域和一个32bits的控制域,由拥有相同高位地址的所述RLDRAM和SRAM组成,步骤(3).在所述FPGA中建立一个链表空间管理结构实现的512K个所述链表单元的管理:在该FPGA的片内存储器MRAM中额外维护每个逻辑队列的头尾指针,以对应于头尾链表单元对应的外存地址,再通过一个存有空闲链表头尾指针的独立队列Freelist,实现对空闲链表单元的管理,步骤(4).把所述交换网络中多队列缓冲的控制信息进行最大限度的压缩后得到:流号Flow No,占16bits,分段信息Seg.Info占2bits,信元长度length占5bits,数据包总长度Total Length占9bits,其中:流号Flow No,高位表示目的线卡号Card No,分段信息Seg.Info,其中包括:四种状态:“01”表示数据包头,“00”表示数据包中段,“10”表示数据包尾,“11”表示独立数据包,然后,在第一个链表单元中存储所述16bits流号和9bits数据包总长度信息,在后继链表单元的后继信元中存储所述分段信息Seg.Info,以便在对所述DRAM进行操作的同时读取所述SRAM中下一链表单元的控制信息,步骤(5).按以下步骤对到达的4个信元A、B、C、D依次进行流水线操作以便等效于在16个周期内处理一个信元:步骤(5.1).所述队列管理模块在4个周期内读取入队信元A,并获取该信元A的流号信息,步骤(5.2).所述队列管理模块在4个周期内,对所述片内存储器MRAM进行一次读操作,查询步骤步骤(5.1)中获取的流号所属当前队列的队尾指针,同时,在8个周期内对所述的SRAM进行一次读操作,以查询当前空闲链表,申请一个新链表单元,获取当前空闲链表的下一跳指针,用来更新空闲链表,再在发出所述查询当前空闲链表一个周期后,用5个周期的时间对所述SRAM进行一次写操作,修改所述当前队列队尾链表的下一跳指针,使它指向所述新申请的链表,同时读取到达信元B的流号信息,在该步骤(5.2)中所执行的所有操作在16个周期内完成,去处理所述A和B两个信元,步骤(5.3).所述队列管理模块对所述MRAM进行一次写操作,修改所述信元A中的队尾指针信息,同时,在11个周期内对所述RLDRAM进行一次写操作,所述信元A写入到对应所述RLDRAM的链表单元的数据域,与此同时,获取所述信元C的流号信息,在该步骤(5.3)中所执行的所有操作在16个周期内完成,同时处理所述A、B、C三个信元,步骤(5.4).在每个所述的链表单元为64B的情况下,所述队列管理模块再耗时16个周期,结束所述信元A的写入,同时对所述信元B,在4个周期内执行对所述MRAM的写操作,修改队列的队尾指针信息,在11个周期内,对所述的RLDRAM执行写操作,写入所述信元B,同时获取所述信元D的流号信息,在该步骤(5.4)中的执行的所有操作在16个周期内完成,去处理所述A、B、C、D共4个信元,步骤(5.5).把所述信元C的RLDRAM写入操作、所述信元D的查询当前流号所述当前队列的队尾指针的对所述MRAM的读操作,以及查询当前空闲链表的对所述SRAM的读操作、移入到下一阶段4个16周期内E、F、G、H四个信元来临时的第一个16周期内进行,以此类推。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/200910084278.0/,转载请声明来源钻瓜专利网。