具有高速缓存的分组存储器中的分组描述符存储制造技术

技术编号:20761298 阅读:22 留言:0更新日期:2019-04-03 13:33
第一存储器设备存储(i)FIFO队列的头部,所述FIFO队列被结构化为链表(LL)元素的LL,所述LL元素按照所述LL元素被添加到所述FIFO队列的顺序被布置,以及(ii)所述FIFO队列的尾部。第二存储器设备存储FIFO队列的中间部分,中间部分包括按照顺序在头部之后和按照顺序在尾部之前的LL元素。队列控制器从第一存储器设备取回头部中的LL元素,在头部变空之前将中间部分中的LL元素从第二存储器设备移动到第一存储器设备中的头部,并更新对应于移动的LL元素的LL参数,以指示移动的LL元素的存储从第二存储器设备改变到第一存储器设备。

【技术实现步骤摘要】
【国外来华专利技术】具有高速缓存的分组存储器中的分组描述符存储相关申请的交叉引用本申请要求2016年6月2日提交的题为“PacketDescriptorLinkedListCache”的美国临时专利申请No.62/344,604的权益,其公开内容通过引用整体明确地并入本文。
本公开一般涉及通信网络中的网络设备,并且更具体地涉及网络设备的存储器系统。
技术介绍
诸如网桥、路由器等的网络设备基于分组中的地址和/或其他信息通过网络转发分组。网络设备通常包括耦合到不同网络链路的多个端口。网络设备可以经由一个端口接收分组并且处理分组的报头中的地址信息(和/或其他信息)以决定网络交换机应当经由哪个或哪些其他端口来发送分组。然后,网络设备将分组转发到所确定的一个或多个其他端口。在接收到分组时,网络设备将分组存储在分组存储器(有时称为“分组缓冲器”)中。网络设备还生成分组描述符,该分组描述符包括关于分组的信息,诸如来自分组的报头和分组存储器中的分组的位置的信息。分组描述符通常比分组本身小得多。例如分组的长度通常超过1000个字节,而分组描述符的长度通常小于10个字节。处理分组描述符至少以确定向其转发分组的一个或多个端口,然后将分组描述符排队在与所确定的一个或多个端口相对应的一个或多个发送队列中。当分组描述符到达发送队列的头部时,从分组存储器中取回对应的分组以便转发到所确定的一个或多个端口。与用于存储分组描述符(诸如发送队列)的存储器相比,分组存储器通常更大并且被组织和/或配置用于处理更大的数据块。例如分组存储器被设计用于存储长度通常大于1000字节的分组,而发送队列被设计用于存储长度例如小于10字节的分组描述符。
技术实现思路
在一个实施例中,一种装置包括:第一存储器设备,被配置为存储:(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元素的存储从第二存储器设备改变到第一存储器设备。在另一实施例中,一种方法包括在第一存储器设备中存储:(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元素的存储从第二存储器设备改变到第一存储器设备。在又一个实施例中,一种装置包括:多个网络接口,被配置为耦合到多个网络链路;以及分组处理器,被配置为处理经由多个网络接口接收的分组,并确定要将所接收的分组转发到的网络接口。该装置还包括第一存储器设备,被配置为存储:(i)先进先出(FIFO)发送队列的头部,先进先出(FIFO)发送队列与网络接口中的至少一个网络接口相对应,该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参数,以指示移动的LL元素的存储从第二存储器设备改变到第一存储器设备。在又一个实施例中,一种方法包括经由网络设备的多个网络接口接收分组;在网络设备处确定接收到的分组要被转发到的网络接口;并且在第一存储器设备中存储:(i)与网络接口中的至少一个相对应的先进先出(FIFO)发送队列的头部,该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元素的存储从第二存储器设备改变到第一存储器设备。附图说明图1A是根据一个实施例的示例网络设备的框图,该网络设备利用存储i)分组数据和ii)排队分组描述符的存储器设备。图1B是根据一个实施例的图1A的网络设备的分组描述符高速缓存单元的框图。图2是根据一个实施例的用于处理诸如图1A的网络设备的网络设备中的分组的示例方法的流程图。图3A-C是根据一个实施例的当链表增长时存储在不同存储器中的例如分组描述符的示例链表的图。图4A-D是根据一本文档来自技高网
...

【技术保护点】
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

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

1