基于策略图的cam条目强制无命中指示的制作方法

文档序号:6487311阅读:197来源:国知局
专利名称:基于策略图的cam条目强制无命中指示的制作方法
技术领域
本发明的一个实施例涉及计算机和通信系统,尤其是网络路由器和交换机;更具体而言,一个实施例涉及具有强制无命中(force no-hit)和优先级指示的关联存储器条目,所述指示对于实现通信设备中的策略图尤其有用,一个实施例涉及生成和合并查找结果以应用多个特征,一个实施例涉及基于访问控制列表条目生成计费数据。
背景技术
通信工业正在迅速变化以适应新兴的技术和不断增长的客户需求。这种对于新应用和现有应用的性能增长的客户需求正在驱动着通信网络和系统提供商采用具有更快速度和容量(即更大的带宽)的网络和系统。在实现这些目标时,许多通信提供商常用的方法是使用分组交换技术。公共和专用通信网络正被越来越多地用诸如因特网协议(IP)的各种分组技术来构建和扩展。
诸如交换机或路由器这样的网络设备通常基于一个或多个标准接收、处理和转发或丢弃分组,所述标准包括分组所使用的协议的类型、分组地址(源、目的地、群组)以及被请求的服务的类型或质量。此外,通常对每个分组执行一个或多个安全性操作。但是在执行这些操作之前,通常必须对分组执行分组分类操作。
除其他应用之外,访问控制列表(ACL)和转发判决所需的分组分类是交换机和路由器设计的高要求部分。由于分组速率和分组分类数目的不断增长,对接收到的分组进行分组分类变得越来越困难。例如,ACL要求利用通过ACL规则进行的顺序搜索的语义在分组流标签的字段的子集上匹配分组。IP转发要求最长前缀匹配。
已知的分组分类方法包括使用定制应用专用集成电路(ASIC)、定制电路、软件或固件控制的处理器以及关联存储器,其中关联存储器包括但不限于二元内容可寻址存储器(二元CAM)以及三元内容可寻址存储器(三元CAM或TCAM)。二元CAM的每个条目通常包括一个用于匹配的值,而每个TCAM条目通常包括一个值和一个掩码。关联存储器将查找字与所有条目并行比较,并且通常生成匹配查找字的最高优先级条目的指示。在二元CAM中,如果查找字和条目值相同,则该条目匹配查找字,而在TCAM中,如果查找字和条目值在未被掩码指示为与比较操作无关的比特中相同,则该条目匹配查找字。
关联存储器对于执行分组分类操作非常有用。在执行分组分类时,以下情况并不罕见基本上基于相同搜索关键字或其变体,利用多个关联存储器来并行或串行执行多个查找操作,这是因为一个查找操作可能与分组转发相关,而另一个可能与服务质量确定相关。需要关联存储器中的新功能、特征和机制来支持分组分类和其他应用。
此外,对于大多数无论什么样的系统,都可能发生差错。例如,由于半导体器件典型的时间故障(failure-in-time)差错,在某些内容可寻址存储器中可能发生阵列奇偶性差错。此外,可能发生通信和其他差错。已知现有系统会检测某些差错并且以信号方式通知已发生的某些差错状态,但通常在提供足够信息以识别和隔离差错方面是不足的。需要用于执行差错检测和识别的新功能。
执行分组分类的一个问题在于必需执行的速率,尤其是当有多个某种类型的特征待评定时。现有方法使用一系列查找来评价针对这些特征中的每一个要采取的动作。此方法太过缓慢,因此诸如二元判决图(BDD)或顺序相关合并(ODM)这样的技术被用于组合这些特征,以使它们能在单个查找操作中被评定。例如,如果有两个ACL A(具有条目A1和A2)和B(具有条目B1和B2),则ODM组合这些原始列表,以产生两个叉积等价有序列表之一,其中每一个有四个条目A1B1、A1B2、A2B1和A2B2;或者A1B1、A2B1、A1B2和A2B2。然后这四个条目可被编程到关联存储器中,并且与要采取的动作相对应的指示被放置在附属存储器中。然后可对关联和附属存储器执行查找操作,以识别用于被处理的特定分组的相应动作。也存在ODM和BDD的变体,这些变体可过滤掉不必要的条目,不必要的原因是因为它们的值将永远不会允许它们被匹配。但是,这些方法的一个问题是由这些算法产生的条目可能激增。典型最坏情况将会是每个特征中的项目数目彼此相乘。从而,两个各自具有一百个项目的特征中的每个特征可生成一千个条目,而如果考虑也具有一百个条目的第三特征,则可能生成一百万个条目。需要可以减少所需条目数目的用于高效执行查找操作的新机制。
已知的为区分分组优先级而识别流量流的方法使用CAM来识别和“记忆”流量流,从而允许网络交换机或路由器在无处理器干预的情况下识别在线速方面属于该流量流的分组。在一种方法中,学习新流是自动的。一旦流被识别,系统软件就将适当的优先级分配给新识别的流。在每个有必要进行学习(即添加新连接)的情况下,设备的下一个空闲地址被读出,以使系统软件可跟踪新添加条目的放置位置。通过这种方式,系统软件可在条目不再活动时高效地移除这些条目。如果未使用老化(aging),则系统软件将需要跟踪每个条目的位置,并且在会话结束时去除相应的条目。这不是实时问题,因此软件可提供足够的性能。此外,可能甚至需要在设备中存储时间戳信息以帮助不活动的流标识符的老化和清除。
对于与区分分组优先级不同的目的和上下文,需要收集关于流量流(也称为“网络流”)的统计信息。这些统计信息可为实时和处理后应用提供计量基础,所述实时和后处理应用包括用于服务提供商和企业客户两者的网络流量计费、基于使用的网络记账、网络规划、网络监控、对外营销和数据采掘能力。虽然此方法对于处理具有数千个流的较少量流量的系统效果良好,但是此方法对于处理较大量数据和流的系统效果就不那么好了,这是因为在原始流上收集数据一般产生太多不需要的数据,并且为了收集所有信息(如果可能的话),需要给系统施加沉重负担。需要用于收集计费和其他数据的新机制。

发明内容
公开了如下方法和装置,用于定义和使用具有对于实现通信设备中的策略图尤其有用的强制无命中和优先级指示的关联存储器条目,用于合并例如来自一个或多个关联存储器库和/或存储器设备的查找结果,并且用于基于访问控制列表或其他规格中所指示的并且通常使用一个或多个关联存储器库和/或存储器设备中的关联存储器条目来生成计费或其他数据。
在一个实施例中,基于策略图确定条目集合,并且强制无命中指示被与所述条目中的一个或多个相关联。此外,可编程的优先级指示可与所述条目中的一个或多个相关联,或者与关联存储器设备、关联存储器库等相关联。强制无命中指示通常是响应于访问控制列表或其他策略图中识别的拒绝指令而被使用的。然后对这些关联存储器条目执行查找操作,其中基于与条目相关联的或与关联存储器设备、关联存储器库等相关联的编程的和/或隐式的优先级等级来识别一个或多个最高匹配结果。
一个实施例识别包括多个访问控制列表条目的访问控制列表。与访问控制列表条目的第一特征相对应的访问控制列表条目的第一集合和与访问控制列表条目的第二特征相对应的访问控制列表条目的第二集合被识别。第一关联存储器库被编程以第一关联存储器条目,第二关联存储器库被编程以第二关联存储器条目,其中第一关联存储器条目的查找优先级高于第二关联存储器条目。然后例如基于分组或其他项目识别查找值。然后通常对于关联存储器条目的第一和第二集合基本上同时地执行查找操作,以生成多个查找结果,其中这些结果通常是直接识别的,或可能是经由附属存储器或其他存储机构中的查找操作来识别的。然后这些查找结果被组合以生成合并后的查找结果。
一个实施例识别包括多个访问控制列表条目的访问控制列表,其中这些访问控制列表条目的子集标识计费请求。例如但不限于计数器或数据结构的计数机构被与访问控制列表条目中标识计费请求的子集中的访问控制列表条目中的每一个相关联。一个项目被识别。计费机构中与该项目相对应的那个特定的计费机构被识别和更新。在一个实施例中,项目对应于接收到的分组的一个或多个字段。在一个实施例中,项目包括至少一个自治系统号码,所述至少一个自治系统号码标识在单个管理性权力机构下的一组通信设备。在一个实施例,所述计数机构中的至少一个与访问控制列表条目中标识计费请求的子集中的至少两个不同的访问控制列表条目相关联。


所附权利要求书具体阐述了本发明的特征。当联系附图参考以下详细描述时,可以最清楚地理解本发明及其优点图1A-1E是各种示例性系统的框图,其中包括用于利用关联存储器执行查找操作的一个或多个实施例;图2是关联存储器的框图,其中包括用于执行查找操作的一个或多个实施例;图3A-3D示出在用于执行查找操作的一个实施例中使用的控制的各种方面;图4A-4D示出在用于执行查找操作的一个实施例中使用的关联存储器块的各种方面;图5A-5C示出在用于执行查找操作的一个实施例中使用的输出选择器的各种方面;图6A-6B示出示例性策略图和所产生的关联存储器条目;图6C示出在一个实施例中使用的用于指示关联存储器、块或条目的优先级的数据结构;图7A示出在一个实施例中使用的用于对关联存储器条目编程的进程;图7B示出在一个实施例中使用的用于识别最高优先级结果的进程;图8A-8G示出采用了用于更新计数器或其他计费设备或用于执行其他功能的实施例的无限数目的系统中的某些系统的访问控制列表、进程、机构、数据结构和/或其他方面;以及图9A-9K示出采用了用于生成合并后的结果或用于执行其他功能的实施例的无限数目的系统中的某些系统的访问控制列表、进程、机构、数据结构和/或其他方面。
具体实施例方式
这里公开的方法和装置,用于定义和使用具有对于实现通信设备中的策略图尤其有用的强制无命中和优先级指示的关联存储器条目,用于生成和合并查找结果以应用多个特征,用于基于访问控制列表或其他规格中指示的信息生成计费或其他数据,以及用于利用关联存储器执行查找操作,其中包括但不限于基于修改映射修改关联存储器内的搜索关键字,响应于包含了强制无命中指示的最高优先级匹配条目而强制进入无命中状态,在确定查找结果时在各种关联存储器块或者关联存储器条目的集合或库中进行选择,以及检测和传播差错状态。
这里所描述的实施例包括各种元素和限制,其中没有一个元素或限制被视为关键的元素或限制。每项权利要求单独地完整陈述本发明的一个方面。此外,这里所描述的某些实施例可以包括但不限于(除其他外)系统、网络、集成电路芯片、嵌入式处理器、ASIC、方法和包含指令的计算机可读介质。一个或多个系统、设备、组件等可构成一个或多个实施例,这些实施例可包括由相同或不同的系统、设备、组件等执行的权利要求的某些元素或限制。下文中所描述的实施例体现了本发明的范围和精神内的各种方面和配置,其中附图示出了示例性而非限制性的配置。
这里所使用的术语“分组”是指任何类型的分组或任何其他信息和数据单元,包括但不限于固定长度信元和可变长度分组,其中每一个可以或不可以被划分成更小的分组或单元。这里所使用的术语“分组”还指分组本身或分组指示,例如但不限于分组的全部或部分或者分组头部、数据结构值、指针或索引或者分组的任何其他部分或标识。此外,这些分组可包含一种或多种类型的信息,包括但不限于语音、数据、视频和音频信息。这里一般使用的术语“项目”是指分组或其他信息或数据单元或片段、设备、组件、元件或任何其他实体。短语“处理分组”和“分组处理”通常是指基于分组内容(例如分组头部或其他字段)执行某些步骤或动作,这种步骤或动作可能包括或不包括修改、存储、丢弃和/或转发分组和/或相关联的数据。
这里一般使用的术语“系统”是用于描述任何数目的组件、元件、子系统、设备、分组交换元件、分组交换机、路由器、网络、计算机和/或通信设备或机构,或者其组件的组合。这里一般使用的术语“计算机”是用于描述任何数目的计算机,包括但不限于个人计算机、嵌入式处理元件和系统、控制逻辑、ASIC、芯片、工作站、大型机等。这里一般使用的术语“处理元件”是用于描述任何类型的处理机构或设备,例如处理器、ASIC、现场可编程门阵列、计算机等。这里一般使用的术语“设备”是用于描述任何类型的机构,包括计算机或系统或其组件。这里一般使用的术语“任务”和“进程”是用于描述任何类型的运行程序,包括但不限于计算机进程、任务、线程、执行应用程序、操作系统、用户进程、设备驱动器、原码、机器或其他语言等等,并且可以是交互式的和/或非交互式的、在本地和/或远程执行的、在前台和/或后台执行的、在用户和/或操作系统地址空间中执行的、程序库例程和/或独立应用程序,并且不限于任何特定的存储器分区技术。在附图(包括但不限于任何框图和流程图以及消息序列图)中示出的步骤、连接、信号和信息处理可以按相同或不同的串行或并行顺序来执行,和/或由不同的组件和/或进程、线程等来执行,和/或在不同连接上执行,并且可与其他实施例中的功能相组合,同时仍保持在本发明的范围和精神内。此外,这里一般使用的术语“识别”是用于描述任何直接或间接断定某件事的方式或机制,其中可包括但不限于接收、从存储器取回、确定、限定、计算、生成等等。
此外,这里一般使用的术语“网络”和“通信机构”是用于描述一个或多个网络、通信介质或通信系统,包括但不限于因特网,专用或公共电话、蜂窝、无线、卫星、有线、局域、城域和/或广域网络,有线、电连接,总线等等,以及诸如消息传递、进程间通信、共享存储器等内部通信机构。这里一般使用的术语“消息”是用于描述一段信息,它可能是也可能不是但通常是经由一个或多个任何类型的通信机构来传输的。
术语“存储机构”包括任何类型的存储器、存储设备或其他以任何格式保存指令或数据的机构。“计算机可读介质”是一个可扩展术语,它包括任何存储器、存储设备、存储机构,以及其他的其中包括了诸如网络接口卡和缓冲器这样的接口和设备的存储和信令机构,以及任何通信设备和接收和发送的信号,和计算机化的系统可解释、接收和/或发送的其他当前和正在发展中的技术。术语“存储器”包括任何随机访问存储器(RAM)、只读存储器(ROM)、闪存、集成电路和/或其他存储器组件或元件。术语“存储设备”包括任何固态存储介质、盘驱动器、软磁盘、网络化服务、磁带驱动器和其他存储设备。存储器和存储设备可存储将要由处理元件和/或控制逻辑执行的计算机可执行指令,以及由处理元件和/或控制逻辑所操纵的数据。术语“数据结构”是一个可扩展术语,它是指任何数据元素、变量、数据结构、数据库和/或可应用到数据以帮助解释数据或对其执行操作的一个或多个组织方案,例如但不限于存储器位置或设备、集合、队列、树、堆、列表、链表、阵列、表、指针等等。数据结构通常被保存在存储机构中。这里一般使用的术语“指针”和“链接”是指某些用于引用或标识另一元素、组件或其他实体的机制,这些机制可包括但不限于对存储器或其他存储机构或其中的位置的引用、数据结构中的索引、值等等。术语“关联存储器”是一个可扩展术语,是指任何类型的已知的或未来开发的关联存储器,包括但不限于二元和三元内容可寻址存储器、散列表、TRIE和其他数据结构等。此外,术语“关联存储器单元”可包括但不限于一个或多个关联存储器设备或其部件,包括但不限于条目的区域、段、库、页、块、集合等等。
这里所使用的术语“一个实施例”是指特定实施例,其中每次提到“一个实施例”可能是指不同的实施例,这里在描述相关联的特征、元素和/或限制时重复使用该术语并不确立每个和所有实施例必须包括的相关联的特征、元素和/或限制的累积集合,但是一个实施例通常可包括所有这些特征、元素和/或限制。此外,短语“用于xxx的装置”通常包括包含用于执行xxx的计算机可执行指令的计算机可读介质。
此外,这里使用的术语“第一”、“第二”等通常是用于表示不同单元(例如第一元件、第二元件)。这里使用这些术语不一定意味着诸如一个单元或事件发生或出现在另一个之前这样的顺序,但是提供一种区分特定单元的机制。此外,使用名词的单数时态是非限制性的,对其的使用通常包括一个或多个特定事物而不是只有一个(例如使用单词“存储器”通常是指一个或多个存储器而不是必须指定“一个存储器或多个存储器”或者“一个或多个存储器”或“至少一个存储器”等等)。此外,短语“基于x”和“响应于x”被用于指示从中导出或导致某件事的项目x的最小集合,其中“x”是可扩展的,并不一定描述了在其上执行了操作的项目的完整列表等等。此外,短语“被耦合到”用于指示两个元件或设备之间的某种级别的直接或间接连接,其中一个或多个耦合设备修改或不修改被耦合的信号或被传输的信息。术语“子集”用于指示集合的所有元素或部分元素的群组。术语“子树”用于指示树的全部或部分。此外,术语“或者”在这里是指对相联系的项目中的一个或多个(包括全部)的选择。
公开了用于定义和使用具有对于实现通信设备中的策略图尤其有用的强制无命中和优先级指示的关联存储器条目的方法和装置。在一个实施例中,利用与一个或多个条目相关联的强制无命中指示而基于策略图来确定条目集合。此外,可编程的优先级指示可与一个或多个条目相关联,或者与关联存储器设备、关联存储器库等相关联。强制无命中指示常常是响应于识别出的访问控制列表或其他策略图中的拒绝指令而被使用的。然后对这些关联存储器条目执行查找操作,其中一个或多个最高匹配结果是基于与条目或与关联存储器设备、关联存储器库等相关联的经编程的和/或隐式的优先等级来识别的。
公开了用于利用关联存储器执行查找操作的方法和装置,其中包括但不限于基于修改映射修改关联存储器内的搜索关键字,响应于包括了强制无命中指示的最高优先级匹配条目而强制进入无命中状态,在确定查找结果时在各种关联存储器块或者关联存储器条目的集合或库中进行选择,以及检测和传播差错状态。在一个实施例中,每个块从本地存储器中取回修改映射,并且基于该映射和接收到的修改数据修改接收到的搜索关联字。在一个实施例中,每个关联存储器条目包括用于指示该条目上的成功匹配应该或者不应该强制产生无命中结果的字段。在一个实施例中,从存储器中取回关于在特定查找操作中使用哪些关联存储器集合或库或条目的指示。
一个实施例通过识别、处理和传输差错来执行差错检测和处理,所述差错可包括但不限于关联存储器条目中的阵列奇偶性差错以及诸如输入端口上的协议差错和接口差错这样的通信差错。阵列奇偶性差错可能是由于半导体器件中典型的时间故障差错而发生的。一个实施例包括一个机构,该机构在后台扫描关联存储器条目,并将任何检测到的差错识别回控制处理器以便重写或更新有缺陷的条目。在一个实施例中,某些识别出的差错或接收到的差错状态是致命性质的,在这种情况下不应当执行处理。例如,在一个实施例中,致使差错导致异常中止状态。作为响应,设备停止正在进行的查找操作,只是转发差错,还可能转发无命中信号。通常,这些信号是在如果没有异常中止的情况下正在进行的查找操作将会生成其结果的时刻生成的,以便保持包括关联存储器在内的系统中的设备间的时序。
在一个包括级联的或连接的关联存储器设备的实施例中,指示任何差错类型及其相应的源的差错状态消息被传播,以向下一个设备和/或控制处理器指示差错状态。此外,被传输的信号可在接收设备中指示和生成异常中止状态。在一个实施例中,接收设备不执行其下一个操作或接收到的指令,或者它可能中止其当前操作或指令。此外,接收设备可以延迟或不延迟某个时间量,该时间量与其处理在执行或完成操作或指令时将会需要的时间量相对应,以便可以保持操作的事务序列的时序。
一个实施例基于访问控制列表或其他规格中指示的信息生成计费或其他数据,并且通常是用一个或多个关联存储器库和/或存储器设备中的关联存储器条目来生成的。一个实施例识别包括多个访问控制列表条目的访问控制列表,这些访问控制列表条目的子集标识计费请求。计费机构,例如但不限于计数器或数据结构,被与标识计费请求的访问控制列表条目的子集中的访问控制列表条目中的每一个相关联。项目被识别。计费机构中与项目相对应的特定的那个被识别和更新。在一个实施例中,项目对应于接收到的分组的一个或多个字段。在一个实施例中,项目包括至少一个自治系统号码,所述至少一个自治系统号码标识单个管理性权力机构下的一组通信设备。在一个实施例中,计费机构中的至少一个被与识别计费请求的访问控制列表条目的子集中的至少两个不同的访问控制列表条目相关联。
一个实施例合并查找结果,例如来自一个或多个关联存储器库和/或存储器设备的查找结果。一个实施例识别包括多个访问控制列表条目的访问控制列表。识别与访问控制列表条目的第一特征相对应的访问控制列表条目的第一集合以及与访问控制列表条目的第二特征相对应的访问控制列表条目的第二集合。第一关联存储器库被编程以第一关联存储器条目,第二关联存储器库被编程以第二关联存储器条目,其中第一关联存储器条目的查找优先级高于第二关联存储器条目。然后例如基于分组或其他项目识别查找值。然后通常对关联存储器条目的第一和第二集合几乎同时地执行查找操作,以生成多个查找结果,这些结果通常是直接识别的,或者是经由附属存储器或其他存储机构中的查找操作来识别的。然后这些查找结果被组合以生成合并后的查找结果。
图1A-E是各种示例性系统及其配置的框图,这些示例性系统包括用于利用关联存储器执行查找操作的一个或多个实施例。首先,图1示出用于执行查找操作以产生可用于分组处理的结果的系统的一个实施例,该系统可以是路由器或其他通信或计算机系统的一部分。在一个实施例中,控制逻辑110经由信号111对一个或多个关联存储器115进行编程和更新,所述一个或多个关联存储器115例如但不限于一个或多个关联存储器设备、库和/或可能作为也可能不作为同一关联存储器设备和/或库的一部分的关联存储器条目。在一个实施例中,控制逻辑110还经由信号123对存储器120进行编程。在一个实施例中,控制逻辑110包括定制电路,例如但不限于分立电路、ASIC、存储器设备、处理器等。
在一个实施例中,分组101被分组处理器105接收。除了其他操作(分组路由选择、安全性等)以外,分组处理器105通常基于接收到的分组101中的一个或多个的一个或多个字段,并且还可能根据存储在数据结构中或从其他源获取的信息,来生成一个或多个项目,包括但不限于一个或多个分组流标识符。分组处理器105通常生成查找值103,该查找值103被提供给用于向一个或多个关联存储器115提供控制和数据信息(例如查找字、修改数据、配置文件ID等)的控制逻辑110,一个或多个关联存储器115执行查找操作并生成一个或多个结果117。在一个实施例中,结果117被存储器120用来产生结果125。然后控制逻辑110基于结果117和/或结果125将结果107传递到分组处理器105。作为响应,接收到的分组中的一个或多个被分组处理器105操纵和转发,如分组109所示。注意,结果117、125和107可包括差错状态的指示。
图1B示出用于利用关联存储器执行查找操作的一个实施例,其中包括但不限于基于修改映射修改关联存储器内的搜索关键字,响应于包括了强制无命中指示的最高优先级匹配条目强制进入无命中状态,在确定查找结果时在各种关联存储器块或者关联存储器条目集合或库中进行选择,以及检测和传播差错状态。控制逻辑130经由信号132对一个或多个关联存储器136进行编程。此外,控制逻辑130向一个或多个关联存储器136提供控制和数据信息(例如查找字、修改数据、配置文件ID等),一个或多个关联存储器136执行查找操作以生成被控制逻辑130接收的结果和差错信号134。
图1C示出用于利用关联存储器执行查找操作的一个实施例,其中包括但不限于基于修改映射修改关联存储器内的搜索关键字,响应于包括了强制无命中指示的最高优先级匹配条目强制进入无命中状态,在确定查找结果时在各种关联存储器块或者关联存储器条目集合或库中进行选择,以及检测和传播差错状态。控制逻辑140经由信号141-143对关联存储器146-148进行编程。此外,控制逻辑140向关联存储器146-148提供控制和数据信号(例如查找字、修改数据、配置文件ID等),关联存储器146-148执行查找操作以生成结果和差错信号144-145。如图所示,每个渐进级将差错消息转发到下一个关联存储器级或者控制逻辑140。例如,关联存储器148经由信号145将经由信号144接收到的差错指示传递到控制逻辑140。
此外,在一个实施例中,设备140和146-148之间发送的消息141-145中包含了同步比特字段,其值被以预定的周期性间隔置位或更改,以便每个设备140、146-148预期到变化。一个实施例使用单个同步比特,并且如果在去到设备146-148的请求或输入数据141-145中此比特被置位,则设备146-148将在相应的回复或输出数据143-145中将此比特置位。例如,在一个实施例,控制处理器或逻辑140周期性地(比如说每八个请求)在其请求数据141中将同步比特置位。控制处理器或逻辑140还监视回复数据145中的同步比特。如果任何种类的差错改变了控制处理器或逻辑140和关联存储器146-148之间的请求-回复关联(或事务时序),则控制处理器或逻辑140可检测到这一点并从该差错中恢复(通过冲刷流水线等等)。
通过这种方式,设备尤其是那些作为事务序列的一部分的设备可以彼此同步。例如,如果发生差错状态,例如传输的指令信号中的未检测到的奇偶性差错(例如奇偶性差错的数目超过了差错检测机制),则设备的重新同步会变得很重要。有可能指令中的奇偶性差错未被检测到并且完全改变事务时序。此外,也可能存在能使控制处理器或逻辑和关联存储器链失去同步的其他类型的“未知”差错。
图1D示出用于利用关联存储器执行查找操作的一个实施例,其中包括但不限于基于修改映射修改关联存储器内的搜索关键字,响应于包括强制无命中指示的最高优先级匹配条目强制进入无命中状态,在确定查找结果时在各种关联存储器块或者关联存储器条目集合或库中进行选择,以及检测和传播差错状态。控制逻辑150经由信号151-153对关联存储器156-158进行编程。此外,控制逻辑150向关联存储器156-158提供控制和数据信号(例如查找字、修改数据、配置文件ID等),关联存储器156-158执行查找操作以生成被传输到控制逻辑150的结果和差错信号154-155。
图1E示出用于一个实施例中的系统180,该系统可能是路由器或其他通信或计算机系统的一部分,它用于在关联存储器单元之间分发条目并且在执行查找操作时选择性地使能部分,而非全部关联存储器单元。在一个实施例中,系统180包括经由一个或多个通信机构189(为示例性目的示为总线)耦合的处理元件181、存储器182、存储设备183、一个或多个关联存储器184以及用于连接到其他设备的接口185。
系统180的各种实施例可包括更多或更少元件。系统180的操作通常被处理元件181利用存储器182和存储设备183所控制,以执行一个或多个任务或进程,例如利用一个或多个关联存储器184进行编程和执行查找操作。存储器182是一种类型的计算机可读介质,通常包括随机访问存储器(RAM)、只读存储器(ROM)、闪存、集成电路和/或其他存储器组件。存储器182通常存储用于实现根据本发明的一个实施例的功能的将由处理元件181执行的计算机可执行指令和/或被处理元件181操纵的数据。存储设备183是另一种类型的计算机可读介质,通常包括固态存储介质、盘驱动器、软磁盘、网络化服务、磁带驱动器和其他存储设备。存储设备183通常存储用于实现根据本发明的一个实施例的功能的将由处理元件181执行的计算机可执行指令和/或被处理元件181操纵的数据。
在一个实施例中,处理元件181向一个或多个关联存储器184提供控制和数据信息(例如查找字、修改数据、配置文件ID等),一个或多个关联存储器184执行查找操作以生成查找结果,并且还可能生成差错指示,这些查找结果以及可能的差错指示被处理元件181所使用和/或经由接口185被传输到其他设备。
图2示出在用于利用关联存储器执行查找操作的一个实施例中使用的关联存储器200,该实施例包括但不限于基于修改映射修改关联存储器内的搜索关键字,响应于包括强制无命中指示的最高优先级匹配条目强制进入无命中状态,在确定查找结果时在各种关联存储器块或者关联存储器条目集合或库中进行选择,以及检测和传播差错状态。如图所示,控制逻辑210接收可包括编程信息的输入控制信号202。控制逻辑210又可以更新其自身内的信息和数据结构,对关联存储器块218-219进行编程/更新,和/或输出选择器231-232。注意,在一个实施例中,关联存储器块218-219中的每一个包括一个或多个关联存储器集合或关联存储器条目库,以及用于执行查找操作的逻辑或电路。
在一个实施例中,可以包括但不限于搜索关键字和修改数据的输入数据201被关联存储器200接收,并被分发到关联存储器块218-219,并且可能被转发到级联配置中的其他下游关联存储器。此外,包括但不限于配置文件ID(例如值)、指令、编程信息的输入控制信息202被控制逻辑210接收,并且可能被转发到级联配置中的其他下游关联存储器。此外,在一个实施例,前级查找结果和/或差错指示被控制逻辑210从级联配置中的前级关联存储器或从其他设备接收到。注意,在一个实施例中,输入数据201、输入控制202、前级结果和差错203和/或其某些部分被直接传输到关联存储器块218-219和/或输出选择器231-232。
控制逻辑210可能处理接收到的信息,和/或经由块控制信号211-212将接收到的信息转发到关联存储器块218-219,并经由选择器控制信号和前级结果215(其通常包括接收到的配置文件ID)将接收到信号转发到输出选择器231-232。此外,控制逻辑210可基于接收到的信息中检测到的差错或响应于接收到的差错状态指示来生成差错信号216。注意,在一个实施例中,控制逻辑210可将接收到的输入控制202和任选的前级结果和差错203信号的一部分或全部分割或重新生成为选择器控制信号和前级结果信号215和/或差错信号216。此外,控制逻辑210可启动中止操作,在该中止操作中由于检测到或接收到的差错状态通知,查找操作将不会发生。
在一个实施例中,控制逻辑210识别以下数据代表使能哪些关联存储器块218-219的数据,代表每个输出选择器231-232在确定其查找结果时应当考虑哪些关联存储器块218-219的数据,和/或代表每个关联存储器块218-219在修改输入搜索关键字时应当使用的修改映射的数据。在一个实施例中,此数据是基于接收到的输入控制信息202(例如配置文件ID或其他指示)从一个或多个存储器、数据结构和/或其他存储机构中接收到的。然后此信息根据需要经由块控制信号211-212被传输到关联存储器块218-219,和/或经由选择器控制信号和前级结果信号215被传输到输出选择器231-232。
在一个实施例中,关联存储器块218-219各自经由信号201接收搜索关键字以及可能的修改数据,并且可能经由块控制信号211-212接收控制信息。然后每个被使能了的关联存储器块218-219基于接收到的搜索关键字执行查找操作,其中可包括基于接收到的修改数据和/或修改映射通过修改搜索关键字的某些部分来生成查找字。每个关联存储器块218-219通常生成结果228-229,结果228-229各自被传输到输出选择器231-232中的每一个。在一个实施例中,每个未被使能的关联存储器块218-219生成无命中信号作为其相应的结果228-229。在一个实施例中,输出选择器231-232接收关于关联存储器块218-219未被使能的指示。
输出选择器231评估关联存储器结果228-229以产生结果240。在一个实施例,每个输出选择器在确定结果240时要评估关联存储器结果228-229的相应的识别出的静态或动态子集。在一个实施例中,此相应子集的标识经由选择器控制信号215被提供给每个输出选择器231-232。在一个实施例中,输出选择器231-232中的每一个经由选择器控制信号215接收配置文件ID,并且基于接收到的配置文件ID执行存储器查找操作,以取回特定关联存储器结果228-229的指示,以便在确定结果240时进行评估。
此外,在一个实施例中,结果240经由一个或多个输出总线240输出,所述一个或多个输出总线240中的每一个通常连接到关联存储器的芯片的一个或多个引脚的不同集合。在一个实施例中,所使用的输出总线的数目及其对输出选择器231-232的连接性是静态的,而在一个实施例中,所使用的输出总线的数目及其对输出选择器231-232的连接性是可配置的,例如,可在初始化时配置或对每次或多次查找配置。在一个实施例中,输出总线指示被输出选择器231-232接收,输出选择器231-232使用输出总线指示来确定使用哪个或哪些输出总线。例如,此确定可以包括但不限于对接收到的输出总线指示进行直接解释、基于接收到的输出总线指示执行存储器读操作等等。在一个实施例中,输出选择器231-232基于配置文件ID执行存储器访问操作,以确定对于特定查找操作使用哪个或哪些输出总线。从而,根据配置,单个或多个输出总线/引脚可被选择性地用于传输结果240,此决定通常是基于在同时接收多个结果和所需引脚数之间的权衡来做出的。
关联存储器200提供了许多用于同时产生一个或多个结果240的强大能力。例如,在一个实施例中,基于接收到的配置文件ID,控制逻辑210识别要使能一个或多个关联存储器块218-219中的哪些并使能它们,并且将配置文件ID提供给输出选择器231,以便在多个关联存储器块218-219之间选择查找结果。关联存储器块218-219中的每一个可基于配置文件ID接收/识别修改映射,此修改映射对于其自身可能是唯一的。然后此修改映射可结合接收到的修改数据用于更改接收到的搜索关键字的一部分,以产生查找操作中要使用的实际查找字。此外,万一相应的条目被识别为匹配查找字的最高优先级条目,则某些条目可被编程以强制无命中指示,以为相应的关联存储器块218-219生成无命中结果。这些使能了的关联存储器块218-219中的每一个通常生成一个结果(例如无命中、命中并识别出最高优先级匹配条目或其位置),该结果通常被传输到输出选择器231-232中的每一个。注意,在一个实施例中,结果只被传输到特定的输出选择器231-232,这个特定的输出选择器231-232在选择其各自的从关联存储器块218-219接收到的最高优先级结果以及可能的来自前级关联存储器的其他查找结果时,会考虑该特定的结果。此外,在某些配置中,多个关联存储器200被以其他方法级联或耦合,以使得来自一个或多个级的结果可能取决于前级结果,以便查找可被编程为被在多个关联存储器200上执行。关联存储器200所提供的这些和其他构造及其配置提供了利用每级包括N个关联存储器块218-219和M个输出选择器231-232的一级或多级关联存储器200的强大的可编程查找搜索能力和结果选择机制。在一个实施例中,N和M的实际值在不同关联存储器200间可能是不同的。
图3A示出在一个实施例中使用的关联存储器的控制300(可能对应于或也可能不对应于图2的控制逻辑210)。如图所示,控制300包括控制逻辑310和存储器311。在一个实施例中,编程信号303被接收到,作为响应,存储器311中的一个或多个数据结构被更新。此外,控制逻辑生成编程信号318。在一个实施例中,编程318与编程信号303相同,从而可使用物理连接而不是通过控制逻辑310传递。编程进程的一个实施例在图3C中示出,其中处理开始于进程块380。然后处理前进到进程块382,在这里编程信号被接收到。接下来,在进程块384中,数据结构和其他元素例如关联存储器块、输出选择器等)被更新。如进程块386所示,处理完成。
返回图3A,在执行查找操作时,输入数据301、输入控制302以及任选的前级结果和差错304(例如在级联关联存储器配置中)被控制逻辑310接收到。作为响应,存储器311中的一个或多个数据结构被参考。控制逻辑310生成输入数据314、块控制信号315、输出选择器控制信号和(任选地)前级结果316、并且还可能生成指示检测到的差错状态或接收到的差错指示符的差错信号319。在一个实施例中,输入数据314与输入数据301相同,因此可使用物理连接而不是通过控制逻辑310传递。
图3B示出在一个实施例中使用的一组数据结构。对于每个要使用的配置文件ID 321,使能阵列320被编程以关联存储器块使能指示符325。每个关联存储器块使能指示符325标识对于给定查找操作要使能哪个关联存储器块。在一个实施例中,关联存储器块使能指示符325包括可编程的优先等级指示,用于从来自多个块和/或前级的结果中识别哪个结果应当被使用。从而,基于经由输入控制302(图3A)接收到的配置文件ID 321,可从存储器311(图3A)中取回使能阵列320,然后该使能阵列320可用于生成包括在块控制信号315(图3A)中的关联存储器块使能信号(和优先级指示)。在一个实施例中,关联存储器块使能指示符325是位图数据结构,而在一个实施例中,关联存储器块使能指示符325是列表、集合、阵列或任何其他数据结构。
输出选择器阵列330被编程以输出选择器ID 335,该输出选择器ID335用于标识对于每个元组(配置文件ID 331,关联存储器块ID 332)使用哪个输出选择器,例如但不限于输出选择器231-232(图2)。从而,基于经由输入控制302(图3A)接收到的配置文件ID 331,可为每个关联存储器块ID 332识别输出选择器ID 335。在一个实施例中,输出选择器ID335是数值标识符,而在一个实施例中输出选择器ID 335是任何值或数据结构。
对于每个元组(配置文件ID 341,输出选择器ID 342),修改映射阵列340被编程以修改映射345。从而,基于经由输入控制302(图3A)接收到的配置文件ID 341,可为每个输出选择器ID 342识别修改映射345。在一个实施例中,每个修改映射是标识如何利用接收到的修改数据来修改接收到的搜索关键字的数据结构。
图3D示出一个实施例使用的用于发起查找操作的进程。处理开始于进程块360,并前进到进程块362,在这里接收到输入数据和控制信号。接下来,在进程块364中,接收到任何前级结果和差错指示。按照进程块360中所确定的,如果,例如但不限于响应于接收到的致命差错指示或识别出的致命差错状态,异常中止操作应该被执行,则处理前进到进程块374(在下文中论述)。否则,在进程块368中,基于配置文件ID接收到使能位图、输出选择器配置和修改映射。接下来,在进程块370中,基于取回的和接收到的信息的数据和控制信号被转发到关联存储器块和输出选择器。按照进程块372中所确定的,如果识别出或接收到差错状态,则在进程块374中,生成或转发差错指示,该指示通常包括关于差错类型及其源的指示。如进程块376所示,处理完成。
图4A示出在一个实施例中使用的关联存储器块400。关联存储器块400通常包括控制逻辑410和关联存储器条目、全局掩码寄存器、操作逻辑和优先级编码器412(例如用于对接收到的查找字执行关联存储器匹配操作的元件)。在一个实施例中,关联存储器条目集合被组合为关联存储器条目库。在一个实施例中,编程信号401被接收到,作为响应,块412中的一个或多个关联存储器条目和/或全局掩码寄存器被更新。在一个实施例中,关联存储器块400对应于关联存储器集合或库以及对关联存储器条目或库执行查找操作以产生一个或多个结果的机构。在一个实施例中,关联存储器块400中不包括掩码寄存器。
此外,关联存储器块400的一个实施例包括用于存储配置信息的存储器413,该存储器413可允许关联存储器块400从存储器取回信息,而不是从其他源接收信息。例如,在一个实施例中,修改映射数据(例如图3B的修改映射345)或其他信息被编程到存储器413中。然后,关联存储器块400例如基于接收到的配置文件ID来取回修改映射信息(例如不是接收修改映射信号404)。
此外,在一个实施例中,接收到搜索关键字402、修改数据403、修改映射404、使能信号405、全局掩码使能信号406和全局掩码选择信号407。响应于执行查找操作和/或检测到差错状态,例如关联存储器条目之一中的奇偶性错误,生成结果和差错指示411。在一个实施例中,在后台检查关联存储器条目以确定是否存在奇偶性差错。联系图4B-4G进一步描述一个实施例中对这些信号和信息的使用。
转到图4B,一个实施例包括多个全局掩码寄存器415,这些寄存器用于对关联存储器条目416执行的查找操作之中。全局掩码使能信号406使能全局掩码寄存器的使用,而全局掩码选择407标识对每个关联存储器条目应用多个掩码中的哪一个。查找字414被应用到关联存储器条目416,其中可能使用存储在全局掩码寄存器415中的全局掩码中的一个或多个,以生成命中/无命中指示417,并且还可能生成命中位置418和/或差错指示419,这些命中/无命中指示417以及可能的命中位置418和/或差错指示419被直接或间接结合到结果和差错指示411(图4A)中。
图4C示出在一个实施例中使用的差错指示420。如图所示,差错指示420包括差错指示421,用于标识其中是否包括任何差错指示,或者其中包括的差错指示的可能数目。对于任何识别出的差错状态或接收到的差错指示,在差错描述符422-423中的一个或多个中包括了每个差错的编码后的描述。在一个实施例中,位图被用于差错描述符422-423中的一个或多个中,其中每个比特代表一个可能的差错状态,比特的值指示相应的差错是否已被识别(包括从在前的组件或级接收到)。在一个实施例中,每个差错描述符422-423对应于不同的组件、接口或前级。在一个实施例中,差错指示420被其他组件用于传输差错状态或无差错状态。
图4D示出一个实施例中使用的关联存储器条目430。如图所示,关联存储器条目430包括值431、任选的掩码432、强制无命中指示433、有效/无效标记434和差错检测值435。差错检测值435可以是一个或多个奇偶校验比特、循环冗余校验和值或者与用于检测数据污损差错的任何其他机制相对应的值。在一个实施例中,值431是可配置的宽度。在一个实施例中,此可配置的宽度包括80比特、160比特和320比特。在一个实施例中,例如二元内容可寻址存储器的实施例中,没有包括掩码字段432。在一个实施例中,掩码字段432的宽度是可变的,并且通常(虽非必要)该宽度匹配值字段431的宽度。在一个实施例中,字段431-435被存储在单个物理存储器中;而在一个实施例中,字段431-435被存储在多个物理存储器中。
图4E示出在一个实施例中使用的用于基于修改映射和修改信息来修改搜索关键字的机制。如图所示,修改映射比特443被用于控制选择器440,选择器440选择搜索关键字单元(例如一个或多个比特、字节等)441或修改数据单元442作为查找单元445的值,查找单元445通常是查找操作中匹配关联存储器条目时要使用的实际查找字的一部分。
图4F示出在一个实施例中使用的用于基于修改映射450和修改数据454修改搜索关键字456的机制。在一个实施例中,修改映射450对应于修改映射345(图3B)。如图4F所示,修改映射450包括源部分451和目的地部分452。参见图4F的下半部分,修改数据454包括四个字节,搜索关键字456包括八个字节。修改映射450的源部分451标识在生成查找字458时要使用修改数据454中的哪些字节,修改映射450的目的地部分452标识修改数据454中要使用的相应字节要被放置在查找字458中的什么位置,其余的字节来自搜索关键字456。换言之,修改映射450和修改数据454被用于在产生匹配关联存储器条目时要使用的值时替换搜索关键字456中的指定数据单元。当然,各种实施例对于修改映射450和修改数据454使用不同数目的比特和字节。在一个实施例中,修改映射450包括关于搜索关键字456中要修改的部分的指示(例如一个实施例中的值J、高位字节、低位字节等)。
图4G示出一个实施例在执行查找操作时使用的关联存储器进程。处理开始于进程块470,并前进到进程块472。如果关联存储器未被使能,则处理前进到进程块490,在这里生成具有无命中指示的结果,并且处理继续到进程块484。否则,在进程块474中,通常基于搜索关键字、修改映射和修改数据确定查找字。注意,在一个实施例中,搜索关键字被用作查找字,而没有修改映射或修改数据的概念。接下来,在进程块476中,查找字被用于在考虑被选中并使能的全局掩码(如果存在的话)的情况下匹配关联存储器条目。注意,在一个实施例中,没有全局掩码的概念。
按照进程块478中所确定的,如果至少一个匹配已被识别出,则处理前进到进程块480,否则前进到进程块490,在这里生成无命中指示,并且处理前进到进程块484。否则,正如在进程块480中所确定的,如果最高优先级匹配条目包括强制无命中指示,则处理前进到进程块490,在这里生成具有无命中指示的结果,并且处理前进到进程块484。否则,在进程块482中,生成指示命中(即成功匹配)并且识别了最高优先级匹配条目的结果。
在进程块484中,结果至少被传输到一个或多个识别出的输出选择器。在一个实施例中,向其传输结果的输出选择器由输出选择器ID 335(图3B)标识。按照进程块486中所确定的,如果已识别出或接收到差错状态,则在进程块492中,生成指示差错类型和位置的信号。在一个实施例中,使用差错指示420(图4C)。如进程块499所示,处理完成。
图5A示出一个实施例中使用的输出选择器500(它可能对应于也可能不对应于图2的输出选择器231-232)。如图所示,输出选择器500包括控制逻辑510和存储器511。在一个实施例中,编程信号504被接收到,作为响应,存储器511中的一个或多个数据结构被更新。
图5B示出一个实施例中使用的一个数据结构。对于每个要使用的配置文件ID 521,可用阵列520被编程以关联存储器块以及任选的前级结果可用指示符525。每个指示符525标识在确定选择哪个匹配关联条目作为最终的最高优先级匹配关联存储器条目时要考虑哪些关联存储器块、条目集合或关联存储器库(如果存在的话)。在一个实施例中,指示符525还标识考虑哪些前级结果。在一个实施例中,优先等级被与每个库和/或前级结果相关联。从而,基于经由选择器控制信号501(图5A)接收到的配置文件ID 521,可从存储器511(图5A)取回可用阵列520。在一个实施例中,存在关联存储器块和任何前级结果的隐含优先级排序,而在一个实施例中,用于确定最终的最高优先级匹配条目的这一优先级排序对于每个查找操作是可编程的和/或可变的。在一个实施例中,关联存储器块可用指示符525是位图数据结构,而在一个实施例中,关联存储器块可用指示符525是列表、集合、阵列或任何其他数据结构。
返回图5A,在执行查找操作时,输出选择器500接收选择器控制信号501,该选择器控制信号501可包括配置文件ID。此外,输出选择器500从零个或多个关联存储器块中接收任何有关的前级结果502和结果503,从所述零个或多个关联存储器块中将选择出最高优先级条目,并且这些关联存储器块(如果存在的话)将在生成的结果515中标识。
此外,在一个实施例中,选择器控制信号501包括使能指示,该使能指示包括使能或不使能值,以便当接收到不使能值时,输出选择器500不被使能,并且不在来自块1-N的结果503或任选的前级结果502中进行选择。在一个实施例中,当未被使能时,输出选择器500生成结果515,该结果515指示无命中、未使能或某个其他的预定或浮动的值。
此外,在一个实施例中,结果515被经由固定输出总线传输,该结果515可能会也可能不会与其他输出选择器500生成的其他结果515复用。在一个实施例中,关联存储器可包括一个或多个输出总线,每个总线通常连接到关联存储器芯片的单个引脚,其中对特定输出总线的选择可能是被硬连线的或可配置的,配置可能是在每个查找的基础上进行的,例如根据接收到的值或从存储器取回(基于当前配置文件ID)的配置信息所确定。在这种配置中,控制逻辑510(或其他机构)通常选择对特定或全部结果515使用哪个总线(以及发送结果515的时序)。
图5C中示出在一个实施例中使用的用于接收和选择最高优先级关联存储器条目(如果存在的话)的进程。处理开始于进程块540,并且前进到进程块542,在这里接收到来自关联存储器块的结果和配置文件ID。在进程块544中,基于配置文件ID从数据结构/存储器取回确定结果时考虑的关联存储器块集合。在进程块546中,从耦合的关联存储器接收任何有关的前级结果。接下来,在进程块548中,基于与匹配条目和/或关联存储器、块等相关联的隐含的和/或编程的优先级值,识别来自可用关联存储器块和前级结果的最高优先级匹配(如果存在的话)。然后,在进程块550中,经由固定的或识别的输出总线引脚将结果传输到某个其他目的地,其中结果通常包括无命中指示或命中指示,以及最终的最高优先级匹配关联存储器条目的标识。如进程块552所示,处理完成。
图6A示出典型策略图600,其中包括拒绝和许可指令。注意,存在许多实施例应用,而并不是所有应用都使用许可和拒绝指令。图6B示出由一个实施例基于策略图600确定的关联存储器条目621和622。关联存储器条目621和622可被编程在相同或不同关联存储器或关联存储器块中。关联存储器条目621和622被示为在不同的分组中,以描述在一个实施例中如何任选地使用优先级和对其进行编程。如图所示,策略图600中的拒绝声明在条目621和622的相应条目中生成强制无命中指示(例如强制无命中=1)。
通过使用任选的优先级指示,条目621和622可被存储在不同的关联存储器和/或关联存储器库等中,以便在确定在何处存储条目时有可能进行考虑,从而高效地使用可用于条目的空间。通过将优先等级与每个条目相关联,相同关联存储器和/或关联存储器块等中的条目可具有不同的优先等级,这为对条目和可用于存储条目的空间进行编程和管理提供了巨大灵活性。
图6C示出了在一个实施例中使用的用于指示关联存储器、块或条目等的优先级的数据结构650。如图所示,优先级映射数据结构650为每个关联存储器、关联存储器块、关联存储器条目等(由索引651标识)提供了优先级指示652(例如值)。与编程后的优先级值相关联的关联存储器和/或块等可在有或没有与关联存储器条目本身相关联的编程后的优先级值的情况下被使用。
图7A示出在一个实施例中使用的用于对关联存储器条目编程的进程。处理开始于进程块700,并前进到进程块702,在这里策略图(例如所需动作的任何定义等)被识别。接下来,在进程块704中,基于策略图1识别相应的条目集合。在进程块706中,强制无命中指示被与条目中的一个或多个相关联(如果策略图相应地这样定义的话)。强制无命中指示对于实现拒绝操作尤其有用,但是不一定要以拒绝操作来识别。接下来,在进程块708中,任选地,优先级指示被与条目、关联存储器、关联存储器库等中的每一个相关联。在进程块710中,一个或多个关联存储器和/或库被编程以条目(以及根据需要更新后的数据结构)。如进程块712所示,处理完成。
图7B示出一个实施例中使用的用于识别最高优先级结果的进程。处理开始于进程块750,并前进到进程块752,在这里从关联存储器、块等(包括可能从前级)接收到结果。在进程块754中,优先级值被与结果相关联(基于条目、存储器、块等)。在进程块756中,基于固有的或编程的优先级值识别一个最高优先级结果(或在一个实施例中识别多个最高优先级结果)。优先级值的类型的层次结构(例如它们被考虑的顺序)在不同实施例之间甚至在各查找操作间都可能是不同的。在进程块758中,识别一个(或多个)最高优先级结果。如进程块759所示,处理完成。
图8A-G示出采用用于更新计数器或其他计费设备或用于执行其他功能的实施例的无限数目的系统中的某些系统的访问控制列表、进程、机构、数据结构或其他方面。图8A所示的是访问控制列表800,其通过用于访问控制列表条目803的声明801限定了计数机构一中要收集的计费信息,并通过用于访问控制列表条目804的声明802限定了计数机构二中要收集的计费信息。注意,存在将会导致同一计数机构被调整的多个访问控制条目。此外,特定计数器被调整的值可以是一个(例如对应于一个项目或分组)、一个字节计数(例如项目、分组、帧或数据图的大小)或任何其他值。
图8B示出在一个实施例使用的一个进程,该进程用于配置基于访问控制条目积累信息的机构。注意,此实施例可响应于计算机可读介质(例如软件、固件等)、定制硬件(例如电路、ASIC等)或任何其他装置或机构,例如但不限于这里所公开的那些,或者在例如但不限于这里所公开的那些计算机可读介质(例如软件、固件等)、定制硬件(例如电路、ASIC等)中或经由任何其他装置或机构实现。例如,一个实施例使用此处描述的和/或图1A-E、2、8D-8E、9A、9C-D和/或任何其他附图中示出的系统。
图8B所示的流程图的处理开始于进程块810,并前进到进程块812,在这里访问控制列表被识别。通常,访问控制列表包括多个访问控制列表条目,这些条目的子集标识计费请求。接下来,在进程块814中,计费机构被与指定计费请求的访问控制列表条目中的每一个相关联。通常但并不是始终,计费机构中的至少一个被与至少两个不同的访问控制列表条目相关联。如进程块816所示,处理完成。
图8C示出在一个实施例中使用的一个进程,该进程用于基于一个项目更新计费机构,该项目例如但不限于与分组相关联的一个或多个字段或值。处理开始于进程块820,并前进到进程块822,在这里项目被识别。项目的识别可包括识别与分组相对应的自治系统号码。注意,一个自治系统号码通常被与单个管理性权力机构下的一组通信设备相关联。例如,从一个因特网服务提供商发送来的所有分组通常被与同一个自治系统号码相关联。接下来,在进程块824中,计费机构中与项目相对应的特定的那个被识别,识别方式例如但不限于是通过数据结构、关联存储器中的查找操作或通过其他装置或机构。然后,在进程块826中,识别出的计费机构被更新。如进程块828所示,处理完成。
图8D示出用于基于由访问控制列表或其他机构所限定的来更新计费值的系统的一个实施例中。分组831被分组处理器832接收和处理,以生成分组839。在一个实施例中,分组处理器832在转发信息库(FIB)数据结构中执行查找操作,以识别与识别出的分组相关联的源和/或目的地自治系统号码。
基于识别出的分组、自治系统号码和/或其他信息,查找值833被识别。图9示出一个实施例中使用的查找值960。一个实施例使用字段960A-960I中的全部、部分或不使用字段960A-960I中的任何一个。
基于查找值833,在一个或多个关联存储器库和/或一个或多个关联存储器中的关联存储器条目834中执行查找操作,以生成计数器指示835。计数器和译码器/控制逻辑836内的相应计数机构被更新。计数器值837通常经由任何通信机构和/或技术被传输到分组处理器832或另一个设备,以便被转发或处理。
图8E示出用于基于访问控制列表或其他机构所限定的来更新计费值的系统的一个实施例中。分组840被分组处理器841接收和处理,以生成分组849。在一个实施例中,分组处理器841在转发信息库(FIB)数据结构中执行查找操作,以识别与识别出的分组相关联的源和/或目的地自治系统号码。
基于识别出的分组、自治系统号码和/或其他信息,查找值842被识别。图9示出一个实施例中使用的查找值960。一个实施例使用字段960A-960I中的全部、部分或不使用字段960A-960I中的任何一个。
基于查找值842,在一个或多个关联存储器库和/或一个或多个关联存储器中的关联存储器条目843中执行查找操作,以产生查找结果844,然后该查找结果844被用于在附属存储器845中执行查找操作,以生成计数器指示846,并且计数器和译码器/控制逻辑847内的相应计数机构被更新。在一个实施例中,附属存储器845存储用于关联存储器843中编程的访问控制列表条目的相应位置的计数器指示,并且这些计数器指示中的某些可能具有相同的值,以使得对于不同的匹配访问控制列表条目同一个计数机构被更新。计数器值848通常经由任何通信机构和/或技术被传输到分组处理器841或另一个设备,以便被转发或处理。
图8F示出关联存储器条目860和相应的附属存储器条目870的示例,所述关联存储器条目860和相应的附属存储器条目870例如是由一个实施例基于访问控制列表条目803和804(图8A)所生成的那些。如图所示,关联存储器条目861-863在附属存储器条目871-873中具有相同的计数器指示,而关联存储器条目864在附属存储器条目874中具有不同的相应的计数器指示。在一个实施例中,关联存储器条目包括用于源地址、目的地地址的字段,以及其他字段,例如但不限于自治系统号码(ASN)、协议类型、源和目的地端口信息等。在一个实施例,附属存储器条目870包括关于计数机构的指示和/或可用于其他目的(例如安全性、路由选择、策略制定、服务质量等)的其他值。
图8G示出在一个实施例中使用的用于处理分组的进程。处理开始于进程块880,并且前进到进程块822,在这里分组被识别。接下来,在进程块884中,执行一个或多个转发信息库(FIB)查找操作以识别与识别出的分组相对应的源和目的地自治系统号码。在进程块886中,通常基于识别出的分组中包含的信息以及源和目的地ASN来识别计费查找值。在进程块888中,在一个或多个关联存储器库中以及可能还在相应的一个或多个附属存储器中执行查找操作,以识别计数器指示。在进程块830中,通过某个静态或动态值更新与计数器指示相对应的计数器(如果存在的话)。如进程块892所示,处理完成。
图9A示出用于识别合并后的查找结果的系统的一个实施例。分组901被分组处理器902接收和处理,以生成分组909。在一个实施例中,分组处理器902在转发信息库(FIB)数据结构中执行查找操作,以识别与识别出的分组相关联的源和/或目的地自治系统号码。
基于识别出的分组、自治系统号码和/或其他信息,查找值903被识别。图9G示出一个实施例中使用的查找值960。一个实施例使用字段960A-960I中的全部、部分或不使用字段960A-960I中的任何一个。
基于查找值903,在多个关联存储器库和/或一个或多个关联存储器中的关联存储器条目904(例如访问控制列表、安全性、服务质量、计费条目)中执行查找操作,以生成结果905,基于该结果906,存储器906生成结果907。组合器机构910合并结果907,以产生一个或多个合并后的结果911,该合并后的结果911通常被分组处理器901用于处理分组。在一个实施例中,组合器机构910包括响应于计算机可读介质(例如软件、固件等)、定制硬件(例如电路、ASIC等)和/或经由任何其他装置或机构的处理元件。在一个实施例中,合并后的结果911包括计数器指示,该计数器指示被计数器和译码器/控制逻辑912用于更新值。累积的计费值913通常被传输到分组处理器902或其他设备。
图9B示出访问控制列表915,其中包括同一类型的多个特征的访问控制列表条目。例如,条目916对应于安全性条目,例如应该被丢弃或处理的分组,而条目917对应于应该或不应该被发送到某个机构以对其进行加密的分组。不同的关联存储器各自被编程以与不同特征相对应的关联存储器条目。然后对关联存储器条目的特征集合中的每一个基本上同时地执行查找操作以生成关联存储器结果,然后这些关联存储器结果被用于在附属存储器中基本上同时地执行查找操作,以产生查找结果,然后这些查找结果可被合并,以产生合并后的结果。查找结果各自的优先级可以基于与其各自的关联存储器库和/或附属存储器的优先级而是隐式的,或者可以是指定的,例如在关联存储器条目中指定,从另一个数据结构查找操作指定,或者使用其他方式或机制来识别。
例如,一个实施例包括用于支持一至四个特征的关联存储器库。关联存储器查找操作被在四个库上并行执行,然后在附属存储器(SRAM)中执行,其中附属存储器指示动作、条目类型(例如ASCL、QoS、计费)以及组合器机构的优先级。组合器机构合并结果以得到最终的合并后的结果。不在库中执行ACL查找被当作是具有最低优先级的许可。如果在多于一个库中存在在取回的附属存储器条目中具有相同的指定优先级的命中,则基于关联存储器库的隐式或指定优先级确定组合器机构所使用的优先级。如果所有库中都没有ACL查找,则使用来自全局寄存器的默认结果。对于QoS和计费查找结果执行类似的合并操作。
图9C示出一个实施例使用的查找和合并机构920。一个或多个关联存储器库921A-921C(可以有任何数目的库)被编程以具有同一访问控制列表类型的关联存储器条目,其中该类型的不同特征被编程到关联存储器库921A-921C中不同的一个。相应的附属存储器条目922A-922C被编程在一个或多个附属存储器中。从而,可对关联存储器库921A-C基本上同时地执行查找以生成结果,这些结果被用于识别来自附属存储器条目922A-922C的查找结果,然后这些相应的查找结果被组合器机构923合并,以生成合并后的结果924。
图9D与图9C基本上类似,只不过示出了与多个访问控制列表条目类型相对应的多个合并后的结果可被并行(例如基本上同时地)生成。如图所示,一个实施例所使用的查找和合并机构920被编程以在关联存储器库931A-931B(可以有任何数目的库)中具有相同类型并且在关联存储器库931C-931D(可以有任何数目的库)中具有不同类型的特征集合。相应的附属存储器条目932A-932D被编程到一个或多个附属存储器中。从而,可对关联存储器库921A-D基本上同时地执行查找操作以生成结果,这些结果被用于识别来自附属存储器条目922A-922D的查找结果,然后这些相应的查找结果被组合器机构933合并,以生成多个合并后的结果934(例如对于每个访问控制列表类型通常有一个或多个合并后的结果)。
图9E示出一个实施例中使用的用于对一个实施例中的关联和附属存储器编程的进程。处理开始于进程块940,并前进到进程块941,在这里包括多个访问控制列表条目的访问控制列表被识别。在进程块942中,与访问控制列表条目的第一特征相对应的访问控制列表条目的第一集合被识别。在进程块943中,第一关联存储器库和第一附属存储器被编程以与访问控制列表条目的第一集合相对应的条目。在进程块944中,与访问控制列表条目的第二特征相对应的访问控制列表条目的第二集合被识别。在进程块945中,第二关联存储器库和第二附属存储器被编程以与访问控制列表条目的第二集合相对应的条目。关联存储器条目的第一集合的查找优先级高于关联存储器条目的第二集合。如进程块946所示,处理完成。
图9F示出一个实施例所使用的用于执行查找操作和用于识别合并后的结果的进程。处理开始于进程块950,并且前进到进程块951,在这里查找值被识别。接下来,在进程块952中,在第一和第二关联存储器库和附属存储器中执行查找操作以生成第一和第一查找结果,所述第一和第二查找结果在进程块953中被合并,以识别合并后的结果。如进程块954所示,处理完成。
图9G示出一个实施例中使用的查找值960、结果值965和合并后的结果值967。如图所示,查找值960包括查找类型960A、源地址960B、目的地地址960C、源端口960D、目的地端口960E、协议类型960F、源ASN 960G、目的地ASN 960H,以及可能存在的其他字段960I。一个实施例使用字段960A-960I中的全部或部分,或不使用字段960A-960I中的任何一个。
如图所示,结果值965包括结果值965A、动作或计数器指示965B以及优先级指示965C。在一个实施例中,结果值965被编程在附属存储器中。一个实施例使用字段965A-965C中的全部或部分,或不使用字段965A-965C中的任何一个。
如图所示,合并后的结果值967包括结果值967A和动作或计数器指示967B。一个实施例使用字段967A-967B中的全部或部分,或不使用字段967A-967B中的任何一个。
图9H-9J示出用于生成合并后的结果的合并逻辑真值表970、972和974。在一个实施例中,安全性查找操作的合并结果在安全性组合器逻辑970中示出,并且是基于最多达四个基本上同时(或不同时)的具有列970A-970D中所示的不同的优先级的查找操作的结果的,相应的合并后的结果在列970E中示出。注意,字段中的“__”指示不关心状态,因为与更高优先级相对应的合并后的结果将会被选择。
在一个实施例中,服务质量(QoS)查找操作的合并结果在安全性组合器逻辑972中示出,并且是基于先前合并的安全性查找操作以及最多达四个基本上同时(或不同时)的具有列972A-970E中所示的不同优先级的查找操作的结果的,相应的合并后的结果在列972F中示出。
在一个实施例中,计费查找操作的合并结果在计费组合器逻辑972中示出,并且是基于先前合并的安全性查找操作以及最多达四个基本上同时(或不同时)的具有列974A-974E中所示的不同优先级的查找操作的结果的,相应的合并后的结果在列972F中示出,该结果可能标识要更新的计数器。
图9K示出一个实施例使用的用于生成合并后的安全性结果、合并后的QoS结果以及合并后的计费结果的进程。处理开始于进程块980,并且前进到进程块981,在这里分组被识别。接下来,在进程块982中,一个或多个FIB查找操作被执行,以识别源和目的地ASN。在进程块983中,安全性查找值被识别。在进程块984中,基于安全性查找值在多个关联存储器库和一个或多个附属存储器中执行查找操作,以识别多个安全性结果,这些安全性结果在进程块985中被合并,以识别合并后的安全性结果。此外,此合并后的安全性结果被存储在数据结构或其他机构中,以便用于识别合并后的QoS和计费结果。
在进程块986中,QoS查找值被识别。在进程块987中,基于QoS查找值在多个关联存储器库和一个或多个附属存储器中执行查找操作,以识别多个QoS结果,这些QoS结果在进程块988中被与先前确定的合并后的安全性结果合并,以识别合并后的QoS结果。
在进程块989中,计费查找值被识别。在进程块990中,基于计费查找值在多个关联存储器库和一个或多个附属存储器中执行查找操作,以识别多个计费结果,这些计费结果在进程块991中被与先前确定的合并后的安全性结果合并,以识别合并后的计费结果。此外,识别出的计数器或其他计费机构被更新。如进程块992所示,处理完成。
考虑到本发明的原理可应用到的许多可能的实施例,将会意识到这里参考附图所描述的其实施例和方面只是说明性的,而不应当被视为是限制本发明的范围的。例如,正如本领域的技术人员可明显看出的,许多进程块操作可被重新排序,以在其他操作之前、之后或与其他操作基本上同时被执行。此外,在各种实施例中可使用许多不同形式的数据结构。这里所描述的本发明预期了处于所附权利要求书及其等同物的范围之内的所有这种实施例。
权利要求
1.一种用于执行用于对一个或多个关联存储器编程的操作的方法,该方法包括识别指定的策略图;基于所述指定的策略图确定条目集合;并且将强制无命中指示与所述条目集合中的一个或多个条目相关联。
2.如权利要求1所述的方法,包括以所述条目集合对一个或多个关联存储器编程。
3.如权利要求1所述的方法,包括以所述条目集合对关联存储器的多个库编程。
4.如权利要求3所述的方法,包括将优先级指示与所述条目集合中的每个条目相关联。
5.如权利要求4所述的方法,包括以所述条目集合对关联存储器的多个库编程;以及将可编程的优先级等级与所述多个库中的每个库相关联。
6.如权利要求3所述的方法,包括将可编程的优先级等级与所述多个库中的每个库相关联。
8.一种关联存储器,包括多个关联存储器库;其中所述一个或多个关联存储器库中的每一个包括多个条目;并且其中所述多个条目中的每一个包括强制无命中值字段。
9.如权利要求8所述的关联存储器,其中所述多个条目中的每一个包括优先级指示字段。
10.如权利要求9所述的关联存储器,包括用于识别所述多个关联存储器库中的每一个的块最高优先级匹配条目的多个机构;以及优先级机构,用于基于所述多个关联存储器库中的每一个的块最高优先级匹配条目和与所述多个关联存储器库中的每一个的块最高优先级匹配条目相关联的优先级指示字段的值来识别所述关联存储器条目中优先级最高的那个关联存储器条目。
11.一种计算机可读介质,其中包含计算机可执行指令,所述指令用于执行如下步骤,所述步骤用于执行用于对一个或多个关联存储器编程的操作,所述步骤包括识别指定的策略图;基于所述指定的策略图确定条目集合;并且将强制无命中指示与所述条目集合中的一个或多个条目相关联。
12.如权利要求11所述的计算机可读介质,其中所述步骤包括以所述条目集合对一个或多个关联存储器编程。
13.如权利要求11所述的计算机可读介质,其中所述步骤包括以所述条目集合对关联存储器的多个库编程。
14.如权利要求13所述的计算机可读介质,其中所述步骤包括将优先级指示与所述条目集合中的每个条目相关联。
15.如权利要求14所述的计算机可读介质,其中所述步骤包括以所述条目集合对关联存储器的多个库编程;以及将可编程的优先级等级与所述多个库中的每个库相关联。
16.如权利要求13所述的计算机可读介质,其中所述步骤包括将可编程的优先级等级与所述多个库中的每个库相关联。
17.如权利要求11所述的计算机可读介质,其中所述一个或多个条目中的至少一个对应于拒绝操作。
18.一种用于识别合并后的查找结果的装置,该装置包括用于生成查找值的机构;一个或多个关联存储器,用于基于所述查找值生成多个关联存储器结果,所述多个关联存储器结果包括来自所述一个或多个关联存储器中的每一个的至少一个结果;被耦合到所述一个或多个关联存储器的一个或多个附属存储器,其用于对所述多个关联存储器结果执行查找操作,以生成多个查找结果;以及被耦合到所述一个或多个附属存储器的组合器,其用于合并所述多个查找结果,以生成所述合并后的查找结果。
19.如权利要求18所述的装置,其中所述多个查找结果各自与存储在所述一个或多个附属存储器中的优先级指示相关联,并且其中所述组合器基于所述多个查找结果的所述优先级值选择所述多个查找结果之一作为所述合并后的结果。
20.如权利要求19所述的装置,其中所述多个查找结果中的每一个对应于访问控制列表中定义的不同特征。
21.一种用于识别合并后的查找结果的方法,该方法包括识别包括多个访问控制列表条目的访问控制列表;识别与所述多个访问控制列表条目中的第一特征相对应的访问控制列表条目的第一集合;以与所述访问控制列表条目的第一集合相对应的第一关联存储器条目对第一关联存储器库和第一附属存储器编程;识别与所述多个访问控制列表条目中的第二特征相对应的访问控制列表条目的第二集合;并且以与所述访问控制列表条目的第二集合相对应的第二关联存储器条目对第二关联存储器库和第二附属存储器编程;其中所述第一关联存储器条目的查找优先级高于所述第二关联存储器条目。
22.如权利要求21所述的方法,包括识别查找值;在所述第一关联存储器库和所述第一附属存储器中执行查找操作以生成第一查找结果;在所述第二关联存储器库和所述第二附属存储器中执行查找操作以生成第二查找结果;并且合并所述第一和所述第二查找结果以识别合并后的结果。
23.如权利要求22所述的方法,其中所述在第一和第二关联存储器库中的查找操作是基本上同时执行的。
24.如权利要求22所述的方法,其中如果所述第一关联存储器结果对应于拒绝操作,则所述合并后的结果对应于丢弃分组操作。
25.如权利要求22所述的方法,其中如果所述第一关联存储器结果对应于许可操作并且所述第二关联存储器结果对应于许可操作,则所述合并后的结果对应于许可操作。
26.如权利要求22所述的方法,其中如果所述第一关联存储器结果对应于许可操作并且所述第二关联存储器结果对应于拒绝操作,则所述合并后的结果对应于丢弃分组操作。
27.一种用于识别合并后的查找结果的方法,该方法包括识别分组;识别第一查找值;在多个关联存储器和附属存储器中执行基本上同时的查找操作以生成多个第一查找结果;合并所述多个第一查找结果以识别合并后的第一结果;识别第二查找值;在所述多个关联存储器和附属存储器中执行基本上同时的查找操作以生成多个第二查找结果;以及将所述多个第二查找结果和所述合并后的第一结果合并在一起以识别合并后的第二结果。
28.如权利要求27所述的方法,所述多个第一查找结果中的每一个对应于访问控制列表中定义的第一类型的不同特征。
29.如权利要求28所述的方法,所述多个第二查找结果中的每一个对应于所述访问控制列表中定义的第二类型的不同特征。
30.如权利要求29所述的方法,其中所述第一类型包括安全性操作,所述第二类型包括服务质量操作。
31.如权利要求27所述的方法,其中所述第一查找值包括至少一个自治系统号码,所述至少一个自治系统号码标识在单个管理性权力机构之下的一组通信设备。
32.一种计算机可读介质,其中包含计算机可执行指令,所述指令用于执行用于识别合并后的查找结果的步骤,所述步骤包括识别包括多个访问控制列表条目的访问控制列表;识别与所述多个访问控制列表条目中的第一特征相对应的访问控制列表条目的第一集合;以与所述访问控制列表条目的第一集合相对应的第一关联存储器条目对第一关联存储器库和第一附属存储器编程;识别与所述多个访问控制列表条目中的第二特征相对应的访问控制列表条目的第二集合;并且以与所述访问控制列表条目的第二集合相对应的第二关联存储器条目对第二关联存储器库和第二附属存储器编程;其中所述第一关联存储器条目的查找优先级高于所述第二关联存储器条目。
33.如权利要求32所述的计算机可读介质,其中所述步骤包括识别查找值;在所述第一关联存储器库和所述第一附属存储器中执行查找操作以生成第一查找结果;在所述第二关联存储器库和所述第二附属存储器中执行查找操作以生成第二查找结果;并且合并所述第一和所述第二查找结果以识别合并后的结果。
34.如权利要求33所述的计算机可读介质,其中如果所述第一关联存储器结果对应于拒绝操作,则所述合并后的结果对应于丢弃分组操作。
35.如权利要求33所述的计算机可读介质,其中如果所述第一关联存储器结果对应于许可操作并且所述第二关联存储器结果对应于许可操作,则所述合并后的结果对应于许可操作。
36.如权利要求33所述的计算机可读介质,其中如果所述第一关联存储器结果对应于许可操作并且所述第二关联存储器结果对应于拒绝操作,则所述合并后的结果对应于丢弃分组操作。
37.一种用于生成计费数据的方法,该方法包括识别包括多个访问控制列表条目的访问控制列表,所述多个访问控制列表条目的子集标识计费请求;将计费机构与所述多个访问控制列表条目中标识计费请求的子集中的所述访问控制列表条目中的每一个相关联;识别一个项目;识别所述计费机构中与所述项目相对应的那个特定的计费机构;并且更新与所述项目相对应的所述计费机构。
38.权利要求37所述的方法,其中所述项目对应于接收到的分组的一个或多个字段。
39.如权利要求38所述的方法,其中所述项目还包括至少一个自治系统号码,所述至少一个自治系统号码标识在单个管理性权力机构下的一组通信设备。
40.如权利要求37所述的方法,其中所述计费机构中的至少一个与所述多个访问控制列表条目中标识计费请求的子集中的至少两个不同的访问控制列表条目相关联。
41.一种用于生成计费数据的方法,该方法包括识别查找值;基于所述查找值在关联存储器中执行查找操作,以识别关联存储器结果;基于所述关联存储器结果在附属存储器上执行查找操作,以识别计数器指示,其中所述附属存储器内的至少两个条目包括相同的计数器指示;并且基于所述计数器指示更新多个计数器之一。
42.如权利要求41所述的方法,其中所述至少两个条目是基于访问控制列表中的相应的规格来确定的。
43.如权利要求41所述的方法,其中所述查找值包括至少一个自治系统号码,所述至少一个自治系统号码标识在单个管理性权力机构下的一组通信设备。
44.一种用于生成计费数据的方法,该方法包括识别查找值,其中所述查找值包括至少一个自治系统号码,所述至少一个自治系统号码标识在单个管理性权力机构下的一组通信设备;基于所述查找值在关联存储器中执行查找操作,以识别关联存储器结果;基于所述关联存储器结果在附属存储器上执行查找操作,以识别计数器指示;并且基于所述计数器指示更新多个计数器之一。
45.如权利要求44所述的方法,其中所述至少两个条目是基于访问控制列表中的相应的规格来确定的。
46.一种用于生成计费数据的装置,该装置包括查找字生成机构,用于识别查找值;关联存储器,用于基于所述查找值生成关联存储器结果;附属存储器,用于基于所述关联存储器结果生成计数器指示,所述附属存储器的至少两个条目被配置为生成相同的计数器指示值;以及多个计数器,用于维持计数并且用于基于所述计数器指示更新所述多个计数器之一。
47.如权利要求46所述的装置,其中所述至少两个条目是基于访问控制列表中的相应的规格来确定的。
48.如权利要求46所述的装置,其中所述查找字生成机构识别至少一个自治系统号码,所述至少一个自治系统号码标识在单个管理性权力机构下的一组通信设备;并且其中所述查找字包括所述至少一个自治系统号码。
49.一种计算机可读介质,其中包含计算机可执行指令,所述指令用于执行用于生成计费数据的步骤,所述步骤包括识别包括多个访问控制列表条目的访问控制列表,所述多个访问控制列表条目的子集标识计费请求;将计费机构与所述多个访问控制列表条目中标识计费请求的子集中的所述访问控制列表条目中的每一个相关联;识别一个项目;识别所述计费机构中与所述项目相对应的那个特定的计费机构;并且更新与所述项目相对应的所述计费机构。
50.如权利要求49所述的计算机可读介质,其中所述项目对应于接收到的分组的一个或多个字段。
51.如权利要求50所述的计算机可读介质,其中所述项目还包括至少一个自治系统号码,所述至少一个自治系统号码标识在单个管理性权力机构下的一组通信设备。
全文摘要
基于策略图(702)确定条目集合(704),并且强制无命中指示被与所述条目中的一个或多个相关联(706)。可编程的优先级指示可与所述条目中的一个或多个相关联(708),或者与关联存储器设备、关联存储器库等相关联。强制无命中指示通常是响应于访问控制列表或其他策略图中识别出的拒绝指令而被使用的。
文档编号G06F12/00GK1813245SQ200480017851
公开日2006年8月2日 申请日期2004年5月26日 优先权日2003年7月29日
发明者文卡特斯瓦尔·拉奥·普莱拉, 迪利普·库马尔·德维锐迪, 布尚·曼格什·卡内卡尔, 斯蒂芬·弗朗西斯·斯凯德, 苏勒施·古拉亚普, 格雅那施瓦尔·S·萨哈里亚, 阿图尔·拉瓦特, 迪帕纳卡·巴塔查里亚, 陈启中 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1