分组处理器转发数据库缓存的制作方法

文档序号:11133972阅读:182来源:国知局
分组处理器转发数据库缓存的制造方法与工艺

本发明涉及联网(networking)的领域。



背景技术:

缓存(cache)是一种组件,其透明地存储数据以使得未来针对该数据的请求能够更快地被服务。被存储在缓存内的数据可以是早先已经被计算的值或者被存储在其他地方的原始值的副本。如果所请求的数据被包含在缓存中(缓存命中),则这个请求能够通过简单地读取缓存而被服务,这相比较而言是较快的。否则(缓存未命中),该数据必须被重新计算或者从它的原始存储位置取来,这相比较而言是较慢的。因此,能够从缓存被服务的请求的数目越大,总体系统性能就变得越快。



技术实现要素:

本文描述了一种转发数据库缓存系统。该转发数据库缓存系统包括主转发数据库以及一个或多个转发数据库缓存。当接收到分组时,首先搜索缓存以寻找信息,诸如地址信息,并且如果找到,则该分组被转发到适当的目的地。如果在缓存中没有找到该地址信息,则搜索主转发数据库,并且基于主转发数据库中的信息,该分组被转发到适当的目的地。

在一个方面中,一种方法包括:接收包含信息的分组,搜索包含第一可搜索信息集合的缓存以寻找该信息的匹配,如果在缓存中没有找到该信息的匹配,则搜索包含第二可搜索信息集合的存储器以寻找该信息,以及基于该信息的匹配将该分组发送到目的地。第一信息集合被存储在缓存中的第一转发数据库中,并且第二信息集合被存储在 存储器中的第二转发数据库中。第一信息集合被存储在缓存中的多个第一转发数据库中,并且第二信息集合被存储在存储器中的第二转发数据库中。缓存和存储器在相同的物理存储器中。缓存和存储器在不同的物理存储器中。缓存包括多个第一物理存储器,并且存储器是单独的物理存储器。目的地包括虚拟接口或者端口。缓存内的第一可搜索信息集合包含相比于存储器内的第二可搜索信息集合而言较少的可搜索信息,另外其中第一可搜索信息集合能够从第二可搜索信息集合取回可搜索信息。该信息包括地址信息。

在另一方面中,一种系统包括:分组处理元件,被配置用于处理包括信息的分组;主存储器,被配置用于存储用以搜索寻找信息的可搜索信息;以及缓存存储器,被配置用于存储相比于用以搜索寻找信息的全部可搜索信息而言较少的可搜索信息的子集。可搜索信息被存储在缓存中的第一转发数据库中以及存储器中的第二转发数据库中。可搜索信息被存储在缓存中的多个第一转发数据库中以及存储器中的第二转发数据库中。缓存存储器和主存储器在相同的物理存储器中。缓存存储器和主存储器在不同的物理存储器中。缓存存储器包括多个第一物理存储器,并且主存储器是单独的物理存储器。处理该分组包括:将该分组转发到包括虚拟接口或端口的目的地。该信息包括地址信息。

在又另一方面中,一种设备包括:用于存储应用的存储器,该应用被配置用于:接收包含信息的分组,搜索包含第一可搜索信息集合的缓存以寻找该信息的匹配,如果在缓存中没有找到该信息的匹配,则搜索包含第二可搜索信息集合的存储器以寻找该信息,以及基于该信息的匹配将该分组发送到目的地;以及耦合到存储器的处理组件,该处理组件被配置用于处理该应用。第一信息集合被存储在缓存中的第一转发数据库中,并且第二信息集合被存储在存储器中的第二转发数据库中。第一信息集合被存储在缓存中的多个第一转发数据库中,并且第二信息集合被存储在存储器中的第二转发数据库中。缓存和存储器在相同的物理存储器中。缓存和存储器在不同的物理存储器中。 缓存包括多个第一物理存储器,并且存储器是单独的物理存储器。目的地包括虚拟接口或者端口。缓存内的第一可搜索信息集合包含相比于存储器内的第二可搜索信息集合而言较少的可搜索信息,另外其中第一可搜索信息集合能够从第二可搜索信息集合取回可搜索信息。该信息包括地址信息。

附图说明

从以下的对如附图中所图示的本发明的示例实施例的更特别的描述来看,前述内容将是明显的,在附图中,相似的参考字符贯穿不同的视图指代相同的部分。这些附图不一定按比例绘制,替代地,重点被放在说明实施例上。

图1图示了根据一些实施例的实施转发数据库缓存的设备的示图。

图2图示了根据一些实施例的具有主存储器和辅存储器的实施转发数据库缓存的设备的示图。

图3图示了根据一些实施例的具有主存储器和多个辅存储器的实施转发数据库缓存的设备的示图。

图4图示了根据一些实施例的利用缓存的资源分配的示图。

图5图示了根据一些实施例的实施转发数据库缓存的流程图。

图6图示了根据一些实施例的被配置为实施转发数据库缓存方法的示例性计算设备的框图。

具体实施方式

转发数据库确定输入接口应当向其转发分组的恰当接口。转发数据库被使用在联网中,诸如在桥接器和路由器中。

图1图示了根据一些实施例的实施转发数据库缓存的设备的示图。设备100包括存储器102,存储器102存储主转发数据库104以及一个或多个较小转发数据库106。设备100还包括一个或多个分组处理元件120,一个或多个分组处理元件120用于处理所接收的分组, 包括搜索主转发数据库104以及一个或多个较小转发数据库106或者触发对这些数据库的搜索,以及基于搜索结果来发送这些分组。在一些实施例中,存在多个主转发数据库。主转发数据库104是存储所有数据(例如,MAC地址的完整集合)的完整数据库,而一个或多个较小转发数据库106仅存储数据的部分或子集(例如,最新近被使用的信息或者基于任何其他缓存方案的信息)。一个或多个较小转发数据库106能够从主转发数据库104取回数据(例如,在缓存未命中之后)。该数据能够是任何数据,诸如地址信息(例如,MAC地址或IPv6地址)。

例如,主转发数据库104以及一个或多个较小转发数据库106存储地址信息,以使得在设备100接收到分组之后,设备100能够通过搜索一个或多个较小转发数据库106或者主转发数据库104以寻找适当的目的地,而将这些分组恰当地转发到它们应当去往的地方(例如,端口1或端口87)。

当接收到分组时,首先搜索较小转发数据库106以寻找地址,并且如果没有找到该地址,则搜索主转发数据库104。在找到该地址之后,该分组相应地被转发。在一些实施例中,诸如在系统能够承受得起略微较慢的搜索时,不同于在缓存未命中时而是不时地搜索主转发数据库。

图2图示了根据一些实施例的具有主存储器和辅存储器的实施转发数据库缓存的设备的示图。设备200包括存储主转发数据库204的主存储器202、以及存储一个或多个较小转发数据库206的辅存储器208。设备200还包括一个或多个分组处理元件220,一个或多个分组处理元件220用于处理所接收的分组,包括搜索主转发数据库204以及一个或多个较小转发数据库206或者触发对这些数据库的搜索,以及基于搜索结果来发送这些分组。在一些实施例中,存在多个主转发数据库。主转发数据库204是存储所有数据的完整数据库,而一个或多个较小转发数据库206仅存储数据的部分或子集(例如,最新近被使用的信息或者基于任何其他缓存方案的信息)。一个或多个较小转 发数据库206能够从主转发数据库204取回数据(例如,在缓存未命中之后)。该数据能够是任何数据,诸如地址信息(例如,MAC地址或IPv6地址)。

例如,主转发数据库204以及一个或多个较小转发数据库206存储地址信息,以使得在设备200接收到分组之后,设备200能够通过搜索一个或多个较小转发数据库206或者主转发数据库204以寻找适当的目的地,而将这些分组恰当地转发到它们应当去往的地方(例如,端口1或端口87)。

当接收到分组时,首先搜索较小转发数据库206以寻找地址,并且如果没有找到该地址,则搜索主转发数据库204。在找到该地址之后,该分组相应地被转发。在一些实施例中,诸如在系统能够承受得起略微较慢的搜索时,不同于在缓存未命中时而是不时地搜索主转发数据库。

在一些实施例中,主存储器202和辅存储器208是物理分离的。在一些实施例中,主存储器202和辅存储器208具有不同的速度(例如,辅存储器208快于主存储器202)。

图3图示了根据一些实施例的具有主存储器和多个辅存储器的实施转发数据库缓存的设备的示图。设备300包括存储主转发数据库304的主存储器302、以及每个都分别存储一个或多个较小转发数据库306、310、314的多个辅存储器308、312、316。设备300还包括一个或多个分组处理元件320,一个或多个分组处理元件320用于处理所接收的分组,包括搜索主转发数据库304以及一个或多个较小转发数据库306、310、314或者触发对这些数据库的搜索,以及基于搜索结果来发送这些分组。在一些实施例中,存在多个主转发数据库。主转发数据库304是存储所有数据的完整数据库,而一个或多个较小转发数据库306、310、314仅存储数据的部分或子集(例如,最新近被使用的信息或者基于任何其他缓存方案的信息)。一个或多个较小转发数据库306、310、314能够从主转发数据库304取回数据(例如,在缓存未命中之后)。该数据能够是任何数据,诸如地址信息(例如, MAC地址或IPv6地址)。

例如,主转发数据库304以及一个或多个较小转发数据库306、310、314存储地址信息,以使得在设备300接收到分组之后,设备300能够通过搜索一个或多个较小转发数据库306、310、314或者主转发数据库304以寻找适当的目的地,而将这些分组恰当地转发到它们应当去往的地方(例如,端口1或端口87)。

当接收到分组时,首先搜索较小转发数据库306、310、314以寻找地址,并且如果没有找到该地址,则搜索主转发数据库304。在找到该地址之后,该分组相应地被转发。在一些实施例中,诸如在系统能够承受得起略微较慢的搜索时,不同于在缓存未命中时而是不时地搜索主转发数据库。在一些实施例中,主存储器可以用比这些较小数据库更高的时延进行操作,并且尽管具有更高的时延但是仍然维持转发速率。

在一些实施例中,主存储器302和多个辅存储器308、312、316是物理分离的,并且在一些实施例中,这些存储器中的一些存储器是物理分离的并且一些存储器是在一起的。在一些实施例中,主存储器302和多个辅存储器308、312、316具有不同的速度(例如,辅存储器308、312、316快于主存储器302,或者辅存储器308快于辅存储器312,辅存储器312快于辅存储器316,辅存储器316快于主存储器302)。

图1、2和3的设备能够实施任何缓存方案。在一种示例性缓存方案中,当首先启动时(例如,当接收到第一分组时),系统在较小转发数据库中的一个较小转发数据库中搜索以寻找特定的MAC地址,但是该MAC地址将会没有找到,所以搜索主转发数据库,该MAC地址被找到,并且然后该MAC地址被存储在较小转发数据库中的一个较小转发数据库中(例如,直写式(write-through)缓存)。在一些实施例中,该信息能够推测性地从主转发数据库发送给较小转发数据库中的一个较小转发数据库。在一些实施例中,如果找到命中,则删除任何推测性的条目(entry)。在一些实施例中,实施推测性读 取和回写式(write-back)缓存的组合。另外,能够使用老化(aging)元件来确定哪些数据应当被移除。

能够使用删除陈旧条目的任何实施方式,以及能够使用任何类型的缓存(直写式、回写式、绕写式(write-around))。能够实施任何变量和实施方式,诸如哪些数据将从缓存中移除(例如,近期最少被使用的)、以及命中比特的使用。

在一些实施例中,较小转发数据库独立于彼此和/或主转发数据库进行操作。

在一些实施例中,这些数据库包括与数据相关联的标签或者标识符,从而如果存在冲突标签,则缓存能够被清除。

在一些实施例中,主转发数据库和较小转发数据库被存储在相同的物理存储器上,并且在一些实施例中,它们被存储在单独的物理存储器上。例如,较小转发数据库被存储在比存储主转发数据库的物理存储器更快的物理存储器上。在一些实施例中,小转发数据库每个都被存储在单独的物理存储器上。在一些实施例中,存在比主转发数据库更大的转发数据库。数据库的任何层级结构能够被实施(例如,具有多个小数据库的一个大数据库,具有多个小数据库的多个大数据库,或者第一级数据库、第二级数据库到第n级数据库)。

在一些实施例中,能够利用任何数据结构(诸如数据库、表格、或者任何其他数据结构)来存储信息并且被搜索。

图4图示了根据一些实施例的利用缓存的资源分配的示图。分组在分组处理元件400处被接收,并且分组处理元件400在第一级缓存402中搜索以寻找地址信息。如果在第一级缓存402中找到该地址,则分组处理元件400能够将该分组转发到恰当的位置。如果在第一级缓存402中没有找到该地址(例如,存在第一级缓存存储器未命中),则读取(或搜索)第二级主存储器404。然后,分组处理元件400基于第二级主存储器读取,将该分组转发到恰当的位置。作为从第二级主存储器404的读取的结果,利用新的值来更新第一级缓存402,并且其他第一级缓存402存储器可以被无效或者被更新。

图5图示了根据一些实施例的实施转发数据库缓存的流程图。在步骤500中,设备接收到数据分组。该数据分组包括目的地信息(例如,该分组应该去往哪个接口)。在一些实施例中,该分组由分组处理元件来处理。在步骤502中,搜索缓存中的一个或多个缓存以寻找该目的地信息。这些缓存包含转发数据库或表格。如果在缓存中找到该目的地信息,则在步骤504中,该分组被发送到与该目的地信息相关联的目的地(例如,端口/流/接口/“虚拟接口”,诸如LAG、ECMP或隧道接口)。如果在缓存中没有找到该目的地信息,则在步骤506中,搜索主转发数据库。当在主转发数据库中找到该信息时,在步骤504中,该分组被发送到与该目的地信息相关联的目的地。在一些实施例中,在将该分组转发到目的地之前或者期间,该分组被修改(例如,分组格式/内容被修改以在目的地处恰当地被接收)。在一些实施例中,搜索寻找的信息是目的地地址,并且在一些实施例中,搜索寻找不同于目的地地址的信息。在一些实施例中,更少的步骤或者附加的步骤被实施。在一些实施例中,这些步骤的顺序被修改。

图6图示了根据一些实施例的被配置为实施转发数据库缓存方法的示例性计算设备的框图。计算设备600能够被用来获取、存储、计算、处理、通信、接收、发送、和/或显示信息,诸如数据分组。一般而言,适合用于实施计算设备600的硬件结构包括网络接口602、存储器604、处理器606、(多个)I/O设备608、总线610、以及存储设备612。只要选取了具有足够速度的(多个)适合的处理器,对(多个)处理器的选取并不是关键的。存储器604能够是本领域中已知的任何常规的计算机存储器。存储设备612能够包括存储器、硬驱动器、CDROM、CDRW、DVD、DVDRW、高清晰度盘/驱动器、超HD驱动器、闪存卡、或者任何其他存储设备。计算设备600能够包括一个或多个网络接口602。网络接口的示例包括网络接口控制器或者连接到以太网或其他类型的局域网(LAN)的网卡。(多个)I/O设备608能够包括以下一项或多项:键盘、鼠标、监视器、屏幕、打印机、调制解调器、触摸屏、按钮接口、以及其他设备。被用来执行转发数据 库缓存方法的(多个)转发数据库缓存应用630可以被存储在存储设备612和存储器604中,并且如应用通常被处理的那样被处理。图6中所示出的更多或更少的组件能够被包括在计算设备600中。在一些实施例中,转发数据库缓存硬件620被包括。尽管图6中的计算设备600包括用于转发数据库缓存方法的应用630和硬件620,但是转发数据库缓存方法能够以硬件、固件、软件、或它们的任何组合被实施在计算设备上。例如,在一些实施例中,转发数据库缓存应用630被编程在存储器中并且使用处理器被执行。在另一示例中,在一些实施例中,转发数据库缓存硬件620是包括门的经编程的硬件逻辑,这些门专门被设计为实施转发数据库缓存方法。

在一些实施例中,(多个)转发数据库缓存应用630包括若干应用和/或模块。在一些实施例中,这些模块也包括一个或多个子模块。在一些实施例中,能够包括更少的模块或附加的模块。

适合的计算设备的示例包括服务器、个人计算机、膝上型计算机、移动设备(例如,智能电话)、网络交换机、路由器、集线器、任何其他联网装备、以及任何其他计算设备。

为了利用转发数据库缓存,交换机或者其他设备被配置为实施包括主转发数据库的转发数据库缓存、以及一个或多个转发数据库缓存。当接收到分组时,首先搜索缓存以寻找信息,诸如地址信息,并且如果找到,则该分组被转发到适当的目的地。如果在缓存中没有找到该地址信息,则搜索主转发数据库,并且基于主转发数据库中的信息,该分组被转发到适当的目的地。

在操作中,数据库的性能和大小通过转发数据库缓存来进行平衡。每秒可能存在数十亿的搜索,并且比率将保持上升。改进性能是一个目标,但是使得能够伸缩(例如,允许数据库的大小增长)也是重要的。还存在要应对的物理约束(例如,裸片(die)的大小)。转发数据库缓存化解了拥塞。数据的局部化帮助缓解了一些拥塞问题。

完全分布式/局部化的存储器架构在基于转发数据的伸缩上具有限制。混合转发缓存架构能够帮助减轻(如果没有解决的话)这些问 题中的许多问题。如所描述的,任何缓存方案都能够被实施,诸如在级别1缓存中缓存最新近使用或最繁忙使用的条目,并且缓存在污浊时(on dirty)被清除或者从级别2主存储器写入。

通过实施转发数据库缓存,最新近的转发条目被局部化在对分组处理引擎而言为本地的级别1缓存中。搜索在级别1缓存中以高速率被执行。如果发生未命中,则在主级别2存储器上执行搜索。读取发生在具有变化的代替策略的直写时。级别2存储器读取有更大的时延,但是这可以利用推测性读取来减少。其他级别1存储器检查污浊条目并且将它们标记为无效。

已经按照具体的实施例描述了本发明,这些具体的实施例并入了用以促进理解本发明的构造和操作的原理的细节。本文中对具体实施例和它们的细节的这种参考不意图为将所附权利要求的范围限制于此。对本领域的技术人员将容易明显的是,不偏离如由权利要求所定义的本发明的精神和范围,可以在被选取用于说明的实施例中作出其他各种修改。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1