【技术实现步骤摘要】
【国外来华专利技术】具有高速缓存的分组存储器中的分组描述符存储相关申请的交叉引用本申请要求2016年6月2日提交的题为“PacketDescriptorLinkedListCache”的美国临时专利申请No.62/344,604的权益,其公开内容通过引用整体明确地并入本文。
本公开一般涉及通信网络中的网络设备,并且更具体地涉及网络设备的存储器系统。
技术介绍
诸如网桥、路由器等的网络设备基于分组中的地址和/或其他信息通过网络转发分组。网络设备通常包括耦合到不同网络链路的多个端口。网络设备可以经由一个端口接收分组并且处理分组的报头中的地址信息(和/或其他信息)以决定网络交换机应当经由哪个或哪些其他端口来发送分组。然后,网络设备将分组转发到所确定的一个或多个其他端口。在接收到分组时,网络设备将分组存储在分组存储器(有时称为“分组缓冲器”)中。网络设备还生成分组描述符,该分组描述符包括关于分组的信息,诸如来自分组的报头和分组存储器中的分组的位置的信息。分组描述符通常比分组本身小得多。例如分组的长度通常超过1000个字节,而分组描述符的长度通常小于10个字节。处理分组描述符至少以确定向其转发分组的一个或多个端口,然后将分组描述符排队在与所确定的一个或多个端口相对应的一个或多个发送队列中。当分组描述符到达发送队列的头部时,从分组存储器中取回对应的分组以便转发到所确定的一个或多个端口。与用于存储分组描述符(诸如发送队列)的存储器相比,分组存储器通常更大并且被组织和/或配置用于处理更大的数据块。例如分组存储器被设计用于存储长度通常大于1000字节的分组,而发送队列被设计用于存储长度例如小于 ...
【技术保护点】
1.一种装置包括:第一存储器设备,被配置为存储:(i)先进先出(FIFO)队列的头部,所述FIFO队列被结构化为链表(LL)元素的LL,所述LL元素按照所述LL元素被添加到所述FIFO队列的顺序被布置,所述头部包括第一多个LL元素,所述第一多个LL元素被布置为按照所述LL元素被添加到所述FIFO队列的顺序从所述FIFO队列中取回,以及(ii)所述FIFO队列的尾部,所述尾部包括第二多个LL元素,所述第二多个LL元素被布置为对应于所述第二多个LL元素被添加到所述FIFO队列的顺序;第二存储器设备,与所述第一存储器分离,所述第二存储器被配置为存储所述FIFO队列的中间部分,所述中间部分包括按照所述顺序在所述头部之后并且按照所述顺序在所述尾部之前的第三多个LL元素;以及队列控制器,被配置为:根据所述顺序,从所述第一存储器设备取回所述头部中的LL元素;在所述头部变空之前,将所述中间部分中的LL元素从所述第二存储器设备移动到所述第一存储器设备中的所述头部,以及更新对应于所移动的所述LL元素的LL参数,以指示所移动的所述LL元素的存储从所述第二存储器设备改变到所述第一存储器设备。
【技术特征摘要】
【国外来华专利技术】2016.06.02 US 62/344,6041.一种装置包括:第一存储器设备,被配置为存储:(i)先进先出(FIFO)队列的头部,所述FIFO队列被结构化为链表(LL)元素的LL,所述LL元素按照所述LL元素被添加到所述FIFO队列的顺序被布置,所述头部包括第一多个LL元素,所述第一多个LL元素被布置为按照所述LL元素被添加到所述FIFO队列的顺序从所述FIFO队列中取回,以及(ii)所述FIFO队列的尾部,所述尾部包括第二多个LL元素,所述第二多个LL元素被布置为对应于所述第二多个LL元素被添加到所述FIFO队列的顺序;第二存储器设备,与所述第一存储器分离,所述第二存储器被配置为存储所述FIFO队列的中间部分,所述中间部分包括按照所述顺序在所述头部之后并且按照所述顺序在所述尾部之前的第三多个LL元素;以及队列控制器,被配置为:根据所述顺序,从所述第一存储器设备取回所述头部中的LL元素;在所述头部变空之前,将所述中间部分中的LL元素从所述第二存储器设备移动到所述第一存储器设备中的所述头部,以及更新对应于所移动的所述LL元素的LL参数,以指示所移动的所述LL元素的存储从所述第二存储器设备改变到所述第一存储器设备。2.根据权利要求1所述的装置,其中所述队列控制器还被配置为:响应于所述头部中的LL元素的数目下降到阈值以下,将所述中间部分中的LL元素从所述第二存储器设备移动到所述第一存储器设备中的所述头部。3.根据权利要求1所述的装置,其中:所述LL参数包括到LL元素被存储的存储器位置的指针;以及所述队列控制器被配置为更新对应于从所述中间部分被移动到所述尾部的所述LL元素的指针,以指向所述第一存储器中的位置。4.根据权利要求1所述的装置,其中所述队列控制器还被配置为:将新LL元素存储到所述第一存储器设备中的所述尾部,更新对应于所述尾部的LL参数,以反映所述新LL元素到所述链表的添加,将所述尾部中的、按照所述顺序在所述新LL元素之前的LL元素从所述第一存储器设备移动到所述第二存储器设备中的所述中间部分,以及更新对应于从所述尾部被移动到所述中间部分的所述LL元素的LL参数,以指示从所述尾部被移动到所述中间部分的所述LL元素的存储已经从所述第一存储器设备改变到所述第二存储器设备。5.根据权利要求4所述的装置,其中所述队列控制器还被配置为:响应于i)所述尾部中的LL元素的数目满足第一阈值,以及ii)所述LL中的LL元素的数目满足第二阈值,将按照所述顺序在所述新LL元素之前的所述尾部中的LL元素从所述第一存储设备移动到所述第二存储设备中的所述中间部分。6.根据权利要求1所述的装置,其中:所述LL参数包括到LL元素被存储的存储器位置的指针;以及所述队列控制器被配置为更新对应于从所述尾部被移动到所述中间部分的所述LL元素的一个或多个指针,以指向所述第二存储器中的一个或多个位置。7.根据权利要求1所述的装置,其中所述队列控制器还被配置为:更新对应于所述头部的LL参数,以结合根据所述顺序从所述第一存储器设备中取回所述头部中的LL元素,来反映从所述链表移除所述LL元素。8.一种方法,包括:在第一存储器设备中存储:(i)先进先出(FIFO)队列的头部,所述FIFO队列被结构化为链表(LL)元素的LL,所述LL元素按照所述LL元素被添加到所述FIFO队列的顺序被布置,所述头部包括第一多个LL元素,所述第一多个LL元素被布置为按照所述LL元素被添加到所述FIFO队列的顺序从所述FIFO队列中取回,以及(ii)所述FIFO队列的尾部,所述尾部包括第二多个LL元素,所述第二多个LL元素被布置为对应于所述第二多个LL元素被添加到所述FIFO队列的顺序;在与所述第一存储器分离的第二存储器设备中存储所述FIFO队列的中间部分,所述中间部分包括按照所述顺序在所述头部之后并且按照所述顺序在所述尾部之前的第三多个LL元素;根据所述顺序从所述第一存储器设备取回所述头部中的LL元素;利用队列控制器,在所述头部变空之前,将所述中间部分中的LL元素从所述第二存储设备移动到所述第一存储设备中的所述头部;以及利用所述队列控制器,更新对应于所移动的所述LL元素的LL参数,以指示所移动的所述LL元素的存储从所述第二存储器设备改变到所述第一存储器设备。9.根据权利要求8所述的方法,其中将所述中间部分中的LL元素从所述第二存储器设备移动到所述第一存储器设备中的所述头部是响应于在所述队列控制器处确定所述头部中的LL元素的数目下降到阈值以下。10.根据权利要求8所述的方法,其中:所述LL参数包括到LL元素被存储的存储器位置的指针;以及所述方法还包括利用所述队列控制器来更新对应于从所述中间部分被移动到所述尾部的所述LL元素的指针,以指向所述第一存储器中的位置。11.根据权利要求8所述的方法,还包括:将新LL元素存储到所述第一存储器设备中的所述尾部;利用所述队列控制器更新对应于所述尾部的LL参数,以反映所述新LL元素到所述链表的添加;利用所述队列控制器,将所述尾部中的、按照所述顺序在所述新LL元素之前的LL元素从所述第一存储器设备移动到所述第二存储器设备中的所述中间部分;以及利用所述队列控制器,更新对应于从所述尾部被移动到所述中间部分的所述LL元素的LL参数,以指示从所述尾部被移动到所述中间部分的所述LL元素的存储已从所述第一存储器设备改变到所述第二存储器设备。12.根据权利要求11所述的方法,还包括:响应于i)所述尾部中的LL元素的数目满足第一阈值,以及ii)所述LL中的LL元素的数目满足第二阈值,利用所述队列控制器,将所述尾部中的、按照所述顺序在所述新LL元素之前的LL元素从所述第一存储设备移动到所述第二存储设备中的所述中间部分。13.根据权利要求8所述的方法,其中:所述LL参数包括到LL元素被存储的存储器位置的指针;以及所述方法还包括:利用所述队列控制器,更新对应于从所述尾部被移动到所述中间部分的所述LL元素的一个或多个指针,以指向所述第二存储器中的一个或多个位置。14.一种装置包括:多个网络接口,被配置为耦合到多个网络链路;分组处理器,被配置为处理经由所述多个网络接口接收的分组,并且确定所接收的分组要被转发到的网络接口;第一存储器设备,被配置为存储:(i)先进先出(FIFO)发送队列的头部,所述FIFO发送队列对应于所述网络接口中的至少一个网络接口,所述FIFO发送队列用于存储对应于要经由所述至少一个网络接口发送的分组的分组描述符,所述FIFO发送队列被结构化为链表(LL)元素的LL,所述LL元素按照所述LL元素被添加到所述FIFO队列的顺序被布置,...
【专利技术属性】
技术研发人员:R·泽马赫,D·布罗姆博格,
申请(专利权)人:马维尔以色列MISL有限公司,
类型:发明
国别省市:以色列,IL
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。