可掩码内容可寻址存储器的制作方法

文档序号:7950445阅读:166来源:国知局
专利名称:可掩码内容可寻址存储器的制作方法
可掩码内容可寻址存储器
背景
计算机网络通常涉及一组可以共享资源的互连的有线和/或无线媒体设备,诸 如膝上型计算机、台式机、移动电话、服务器、传真机、打印机等。可以在各端系 统之间提供诸如交换机和路由器等一个或多个中间设备以支持数据传送。每个中间 设备在接收到分组之后可以确定可在其上向前发送该分组的端口。中间设备的内容
可寻址存储器(CAM)可以确定端口。 附图简述
在此描述的本发明以示例而非限制性的方式在附图中示出。为了图示的简单 明了起见,在各图中示出的元素无需按比例绘出。例如,为了清楚起见可以相对于 其他元素夸大某些元素的尺寸。此外,在认为合适的情况下,各标号在各图中重复 以指示对应的或类似的元素。


图1示出了网络环境的一个实施例。
图2示出了具有可掩码内容可寻址存储器(MCAM)的图1的网络环境的路 由器的一个实施例。
图3示出了在图2的MCAM中存储地址前缀的一个实施例。 图4示出了在图2的MCAM中存储地址前缀的一个实施例。 图5示出了经由图2中描绘的路由器的一个实施例来路由分组。
详细描述
随后的说明描述了包含可掩码内容可寻址存储器(MCAM)的路由器。在随 后的描述中将阐明诸如逻辑实现、资源划分/共享/复制实现、系统组件的类型和相 互关系以及逻辑分区/集成选择之类的多个具体细节以提供对本发明的更为透彻的 理解。然而本领域普通技术人员将认识到无需这些具体细节就能实践在此描述的实 施例。在其它实例中,并未详细示出控制结构、门电平电路和完整的软件指令序列 以免混淆本发明。本领域普通技术人员使用所包含的描述无需过多的实验就能够实 现适当的功能。
说明书中对"一个实施例"、"某个实施例"以及"某个示例性实施例"等 的引用指的是所描述的实施例可以包括特定特征、结构或特性,但并不是每个实施 例都必须包括该特定特征、结构或特性。而且,这些短语并不必然涉及相同的实施 例。此外,当结合一实施例描述特定特征、结构或特性时,要提出的是可在本领域 的技术人员知识范围内结合其他实施例来实现这些特定特征、结构或特性,无论这 些实施例是否明确说明。
本发明的实施例可用硬件、固件、软件、或它们的任何组合来实现。本发明的 实施例也可以被实现为存储在机器可读的介质中、可由一个或多个处理器读取并执 行的指令。机器可读的介质可包括用于存储或传输机器(例如,计算设备)可读形 式的信息的任何介质。例如,机器可读介质可包括只读存储器(ROM)、随机存
取存储器(RAM)、磁盘存储介质、光盘存储介质、闪存设备、电、光、声或其
他形式的传播信号(例如,载波、红外线信号、数字信号等等)、以及其他介质。 而且,固件、软件、例程、指令此处可被描述为执行某些动作。然而,应该认识到, 这些描述只是为了方便起见,且这些动作实际上由计算设备、处理器、控制器、或 执行该固件、软件、例程、指令等等的其他设备产生。
在图1中示出了网络环境100的一个实施例。网络环境100可以包括诸如客 户机110和服务器190等端设备、诸如路由器142和路由器144等中间设备、以及 网络150。为了说明,网络环境100被示为具有每种类型的少量设备,然而典型的 网络环境可以包括每种类型的大量设备。
客户机110可以包括含有各种硬件、软件和固件组件的计算机系统,诸如台 式或膝上型计算机系统,用来生成数据分组并向诸如服务器190等目的地系统发送 该数据分组和/或从中接收分组。客户机110可以经由局域网(LAN)连接至诸如 路由器142等中间设备以发送/接收分组。客户机110可以支持各种协议,诸如超 文本传输协议(HTTP)、文件传输协议(FTP) 、 TCP/IP等。
服务器190可以包括能够向诸如客户机110等各客户机发送分组和/或从中接 收分组的计算机系统。服务器190可以响应于从客户机110中接收请求来生成分组, 并在随后将该分组发送给客户机110。服务器1卯可以经由另一个LAN耦合至路 由器144。服务器190可以包括web服务器、事务服务器、数据库服务器等。
网络150可以包括诸如交换机和路由器(未示出)等一个或多个中间设备,
这些设备可以从合适的中间设备接收、处理并向其发送分组。网络150使得诸如客
户机110和服务器190之类的端系统能够发送/接收数据。网络150的中间设备可 被配置成支持诸如TCP/IP等各类协议。
路由器142和144使得一个端系统能够接收来自另一个端系统的分组和/或向 另一个端系统发送分组。例如,路由器142可以在接收到来自客户机110的分组之 后确定在路径中提供的下一个路由器并可将该分组转发给下一个路由器。同样地, 接收自网络150的分组也可以被转发给客户机110。路由器142可以基于含有地址 前缀和端口标识符的各路由表项来确定下一个路由器。
图2中示出了路由器142的一个实施例。路由器142可以包括端口 210-A至 210-D、控制器220、以及可掩码内容可寻址存储器(MCAM) 250。网络环境100 中诸如路由器144等其他路由器也可按类似的方式实现。端口 210-A至210-D可 以提供物理的、电的和协议接口,用于向相邻的中间设备或端系统发送分组和/或 从中接收分组。在一个实施例中,每个端口210都由一端口标识符所标识,该端,口 标识符使路由器142能够标识各端口 210并在一特定的所标识的端口上发送分组。 例如,路由器142可以经由耦合至路径141-A的端口 210-A接收来自客户机110 的分组,并且在处理该分组之后,确定经由端口 210-D发送该分组。此外,路由 器142可以经由端口 210-D接收一分组,并在处理该分组之后在合适的端口上发 送该分组。
控制器220可以经由端口 210之一接收分组,从该分组中提取目的地地址, 并在随后将该目的地地址提供给MCAM 250。作为响应,控制器220可以接收要 在其上向前发送该分组的端口标识符或指示未找到匹配的信号。控制器220在接收 到该端口标识符之后可以使该分组在一路径上转发,该路径与由接收到的端口标识 符所标识的端口相耦合。 一旦接收到匹配未找到信号,控制器220就将该分组作为 无法投递的分组而丢弃,并且可以将诸如因特网控制消息协议(ICMP)通知之类 的消息发送至发送设备。继续上述示例,控制器220可以从在端口 210-A上接收 的分组中提取目的地地址,可以把该目的地地址发送至MCAM 250,可以接收对 应于端口 210-D的端口标识符,并且可以使该分组经由端口 210-D而在路径141-D 上转发。
控制器220可以基于诸如距离向量协议(例如,路由信息协议(RIP))等路 由协议、或者链接状态路由算法(例如,开放最短路径优先(OSPF))以及接收 自相邻路由器的路由表项来构造含有地址前缀和相应端口标识符的路由表。控制器
220可以向MCAM 250提供一组地址前缀和相应的端口标识符。控制器220可以 基于诸如距离、带宽等的各种度量动态更新地址前缀和端口标识符的任何改变。
在一个实施例中,MCAM 250可以被实现为硬件组件以便快速确定可在其上 向前转发传入分组的端口。可以基于控制器220提供的路由信息周期性地更新这些 地址前缀和相应的端口标识符。为此,MCAM 250可以包括用来存储地址前缀的 存储器252以及用来确定可在其上向前发送传入分组的端口标识符的MCAM逻辑 258。
存储器258可以包含用以存储一组地址前缀和相应端口标识符的一个或多个 存储单元。在一个实施例中,存储器252可以包含多个三态存储元件,每一个都能 够存储零、 一或无关(don't care)位(0、 1、 *)。然而,其它实施例中的存储器 252可以包含二进制存储元件对以实现该无关状态。在又一个实施例中,存储器252 可以包含多个二进制存储元件而无需跟踪各无关状态。在这一实施例中,地址前缀 可以是完整的网络地址,而掩码(将在以下描述)可用于将多个网络地址与单个端 口相关联。换言之,包含两个或多个网络地址的网络段可通过使用长度合适的掩码 由与单个端口相关联的单个地址前缀来表示。网络段例如可以包含与单个端口
210-C相关联的256个网络地址192.168.1.0至192.168.1.255。通过掩码,这256 个网络地址可以由单个网络地址来表示,例如与端口 210-C相关联的分别对应于 32位掩码和24位掩码的192.168丄1。可以认识到需要(256x32 + 256x3=) 8960 位的这256个地址于是就可以使用存储器252内的(1 x 32 + 2 x 3=) 39位来存储。
MCAM逻辑258例如可以接收新的地址前缀和相关联的端口标识符,并且可 以确定是存储还是丢弃这一新的地址前缀。如果这一新的地址前缀可由已经存储在 存储器252内的各地址前缀中的至少一个地址前缀所吸收,则丢弃该新的地址前 缀。MCAM逻辑258可在新地址前缀可被吸收的情况下丢弃该新地址前缀并且其 相对应的端口标识符可被存储在存储器252内。该新地址前缀(被吸收地址前缀) 的端口标识符可以与吸收该新地址前缀的地址前缀(吸收地址前缀)相关联。 MCAM逻辑258在新地址前缀不能被已经存储在存储器252内的任何地址前缀吸 收的情况下可以使该新地址前缀及其相关联的端口标识符被存储在存储器252内。
例如,存储器252可以包括十个地址前缀;MCAM逻辑258在接收第十一个 地址前缀之后可以确定此第十一个地址前缀是否可被这十个地址前缀中的至少一 个地址前缀所吸收。如果第十一个地址前缀的一部分与第五个地址前缀的相应部分 逐位匹配,则该第十一个地址前缀就可被第五个地址前缀吸收。地址前缀中逐位匹
配的那些部分可以基于掩码长度不同的一个或多个掩码。在一个实施例中,四位掩
码可用于逐位匹配或者用于将新地址前缀的最高四个有效位与MCAM 250的一个 或多个地址前缀的最高四个有效位进行比较。结果, 一个地址前缀可以与一个或多 个端口标识符相关联。如可以容易地认识到的,存储器252现在可以仅包括十个地 址,因为第十一个地址前缀被丢弃并被MCAM 250的十个地址前缀之一吸收。
在一个实施例中,存储在存储器252内的每个地址前缀都可如IPV4 (因特网 协议版本4)寻址方案中那样等于32位的长度,并且路由器142可以包含8个端 口。通过丢弃被吸收地址前缀(上述示例中的第十一个地址前缀)并用吸收地址前 缀(上述示例中的第五个地址前缀)存储相应的端口标识符就能够节省32位的存 储空间。然而,在使用3个掩码长度并具有8个端口的系统中,可利用3位来保存 与每个掩码长度相关联的端口标识符。于是在IPV4的情况下,对每个被吸收地址 前缀可以节省26位((32位地址+3位)-(3个掩码长度*每个掩码长度3位)) 的存储空间,而在IPV6的情况下,对每个被丢弃的(或被吸收的)地址前缀可以 节省119位((128位地址+3位)-(3个掩码长度*每个掩码长度3位))的存储 空间,
在一个实施例中,MCAM逻辑258可执行地址前缀的最长匹配搜索。为此, MCAM逻辑258可以接收来自控制器220的目的地地址,可以用相应的掩码来对 存储在存储器252内的各地址前缀进行掩码,并且可以在随后确定该目的地地址是 否与任何被掩码的地址前缀相匹配。该目的地地址中要比较的部分可以基于所使用 的掩码长度来选出。如果一个以上被掩码的地址前缀与该目的地地址相匹配,则 MCAM逻辑258可以选择最长匹配地址前缀。MCAM逻辑258可以向控制器220 提供与所选地址前缀和所用掩码相对应的端口标识符。
MCAM逻辑258可以生成掩码集S = (A, B...N),并且各掩码A, B...N的长度 可以分别等于La,Lb..丄n。长度La可以等于最长长度,而Ln可以等于最短长度。 在一个实施例中,MCAM逻辑258可以基于可周期性确定的所存储地址前缀的统 计数据来确定掩码的数目及相应长度。MCAM逻辑258首先可以用最长长度La 的掩码来对存储在存储器252内的每个地址前缀进行掩码,可以搜索匹配的地址前 缀,并在随后确定最长的匹配地址前缀。
在一个实施例中,最长长度(La)可以等于32位,Lb可以等于8位,而Lc 可以等于4位。MCAM逻辑258可以首先使用长度等于32位的掩码来对各地址前 缀进行掩码,可以将目的地地址的32位与每个地址前缀内的相应位进行比较,可
以确定各匹配的地址前缀,并可以在随后确定最长匹配地址前缀。如果最长匹配地 址前缀的长度大于Lb,则可以将与对应于长度La的掩码的最长匹配地址前缀相关
联的端口标识符提供给控制器220。 MCAM逻辑258通过以掩码长度递减的次序 反复对各地址前缀进行掩码,直到用尽掩码集S内的所有掩码或者直到确定令人 满意的匹配已经出现,来持续搜索最长的匹配地址前缀。
为了进一步减少存储地址前缀的存储空间,MCAM逻辑258可以标识其长度 M小于各掩码之一长度的地址前缀并且通过用合适的零和/或一来代替无关位就可 以将这些地址前缀扩展为几倍长的地址前缀。例如,地址前缀110*可以扩展为等 于1100*和1101* ('*'表示无关位),从而使得扩展的地址前缀的长度可以与最接 近的掩码长度相等。如果该扩展的地址前缀可被一个或多个地址前缀吸收,则可以 丢弃该扩展的地址前缀,并且可以与最长的吸收地址前缀相关联地存储相应的端口 标识符。这一在可吸收的情况下对扩展的地址前缀进行扩展、吸收、丢弃的方法可 以进一步减小存储器252的尺寸。
图3示出了一个样本路由表以及在MCAM250中存储该样本路由表的一种方 式。在示出的示例中,MCAM250支持长度分别为32位(例如,FFFF_FFFFh)、 8位(例如,FFOO—OOOOh)和4位(例如,F000一0000h)的3个掩码(La, Lb, Lc)。 在其它实施例中,MCAM 250可以支持不同数目的掩码并且可以支持长度不同和/ 或可动态配置的掩码。如图所示,该样本路由表中的地址前缀1011*和地址前缀 1011 1110*由MCAM 250的较长地址前缀1011 1110 01*吸收。更具体地,地址前 缀101P以4位掩码Lc与较长地址前缀1011 1110 01*相匹配,而地址前缀1011 111(^则以8位掩码Lb与该较长地址前缀1011 1110 01*相匹配。因此,地址前缀 1011 1110*和1101*的端口标识符被分别存储在地址前缀1011 1110 01*的掩码项 Lb和Lc内。与长度为X的被吸收地址前缀相对应的端口标识符可以与对应于长 度最接近X的掩码的吸收地址前缀相关联地储存。例如,对应于被吸收地址前缀 101"的端口标识符210-B可以与对应于与101"长度最接近的长度Lc (=4)的掩 码的较长地址前缀1011 1110 01*相关联。类似地,在扩展之后(将在以下描述) 与地址前缀1011 11* (未示出)相关联的端口标识符可以与对应于长度为Lb的掩 码的一个或多个吸收地址前缀相关联,因为长度为Lb (=8)的掩码是最接近的掩 码,并且其长度等于或大于地址前缀1011 11*的长度。然而,对应于未吸收前缀(例 如,10*)的端口标识符(例如,210-A)可以与等于或大于该未吸收地址前缀的 长度的最接近长度(=4)的掩码相对应地存储。
类似地,该样本路由表中的地址前缀1011 1101*也由MCAM250的较长地址 前缀1011 1110 01*吸收。更具体地,地址前缀1011 1110*以8位掩码0 与该较长 地址前缀1011 1110 01*相匹配。因此,地址前缀10U 1110*的端口标识符被存储 在地址前缀1011 1110 0"的掩码项Lb内。
图4示出了如何进一步吸收或縮减图3所示的MCAM 250的各项。MCAM逻 辑258可以通过用合适的零和/或一来代替无关位而将一个或多个地址前缀扩展为 几倍长的地址前缀。可以执行该扩展以扩展该地址前缀的长度,从而使得该扩展的 地址前缀的长度与下一个最接近掩码的长度相等。例如,地址前缀110*可以被扩 展为1100*和1101*以获得其长度与下一个最接近掩码Lc的四位长度相等的地址 前缀。
该样本路由表中的扩展的地址前缀1100*可由MCAM 250的较长地址前缀 1100 0000 11*吸收。类似地,扩展的地址前缀1101*可由较长地址前缀1011 1110 01*吸收。结果,原始地址前缀110*的端口标识符210-(:可以存储在两个地址前缀 1100 0000 11*和地址前缀1011 1110 0P的掩码项Lc内。
如可容易地认识到的,通过丢弃地址前缀110*并仅存储相应的端口标识符 210-C,存储器252可以保存存储空间。此外,使用更多掩码可以使得更多的地址 前缀可被其他地址前缀吸收,因而能够紧密存储各地址前缀。
图5示出了在图2中描绘的路由器142的一个实施例的搜索操作。在框505 中,路由器142可接收一分组。例如,路由器142可以经由端口 210-A接收来自 客户机110的分组并且控制器220可在随后从该分组中提取目的地地址。控制器 220可以将该目的地地址提供给MCAM 250。
在框510中,MCAM逻辑258可以定义一掩码集S,该掩码集S含有其次序 从最长到最短掩码的一个或多个掩码。掩码的数目可基于所配置的值、路由表项的 统计数据等动态确定。在框515中,MCAM逻辑258可以从该掩码集S中选择最 长掩码。在一个实施例中,该最长掩码的长度等于目的地地址的长度。在IPV4寻 址方案的情况下,该最长掩码的长度可以等于32位。
在框520中,MCAM逻辑258可以用所选掩码Lsel对存储在存储器252内的 各地址前缀进行掩码。在一个实施例中,所选掩码Lsel可以包含能够导致各地址 前缀的所有32位都与Ipv4目的地地址的32位进行比较的32位掩码(例如, FFFF—FFFFh)。在框530中,MCAM逻辑258可以搜索与所掩码的目的地地址相 匹配的最长掩码的地址前缀。更具体地,该MCAM逻辑258可以将所掩码的目的
地地址与所掩码的地址前缀进行逐位比较,并且可以选择最长的匹配地址前缀。在 一个实施例中,各地址前缀可以按最长地址前缀存储在顶部的排序顺序来存储。因
此,如果匹配项多于一个,则MCAM逻辑258可以选择最顶层的匹配地址前缀作 为最长地址前缀。在框535中,MCAM逻辑258可以确定是否找到匹配。
响应于确定找到匹配,MCAM逻辑258在框540中可确定该最长匹配地址前 缀的长度是否大于下一个掩码Lnext的长度。在一个实施例中,如果当前掩码是掩 码集S的最后一个掩码,则MCAM逻辑258随后就确定该最长匹配地址前缀的长 度大于下一个掩码Lnext的长度。响应于确定该最长匹配地址前缀的长度大于下一 个掩码Lnext的长度,MCAM逻辑258在框545中向控制器220提供存储在该最 长匹配地址前缀的适当掩码项内的端口标识符。控制器220随后通过由MCAM 250 所提ft的端口标识符标识的端口来向前转发该分组(框550)
响应于确定未找到匹配,MCAM逻辑258在框560中可确定MCAM逻辑258 是否用尽了掩码集S内的所有掩码(框580)。在一个实施例中,MCAM逻辑258 在当前掩码是掩码集S内的最短掩码时可以确定掩码集S被用尽。
在确定掩码集S未被用尽之后,MCAM逻辑258可选择掩码集S中的下一个 掩码。例如,在一个实施例中,MCAM逻辑258可以在已经使用了 32位的最长掩 码La之后选择8位的次长掩码Lb。 MCAM逻辑258随后可以返回到框520以使 用新选择的掩码来搜索最长的匹配地址前缀。
另一方面,如果掩码集S被用尽,则MCAM逻辑258可以在框590中通知控 制器220未找到匹配。控制器220随后可丢弃该接收到的分组并向发送该分组的设 备或端系统发送一 ICMP消息以指示分组发送失败。
本发明的某些特征已参考示例性实施例来描述。然而,该描述不应在限制的 意义上解释。本发明所属领域的技术人员可以清楚,示例性实施例的各种修改以及 本发明的其它实施例都被认为落入本发明的精神和范围之内。
权利要求
1.一种方法,包括用多个掩码中的第一掩码来对一分组的目的地地址以及一组地址前缀进行掩码,以获得第一经掩码的目的地地址和一组第一经掩码的地址前缀,以及基于所述第一经掩码的目的地地址是否与一个或多个第一经掩码的地址前缀相匹配来标识用于所述分组的端口。
2. 如权利要求l所述的方法,其特征在于,还包括 接收与第一目的地端口标识符相关联的第一地址前缀,如果所述第一地址前缀可被所述的一组地址前缀中的至少一个地址前缀吸 收,则丢弃所述第一地址前缀,以及将所述第一目的地端口标识符与所述一组地址前缀中相应的吸收地址前缀相 关联。
3. 如权利要求l所述的方法,其特征在于,还包括 接收与第一目的地端口标识符相关联的第一地址前缀;如果所述第一地址前缀可被所述一组地址前缀中的至少一个地址前缀吸收, 则丢弃所述第一地址前缀,以及将所述第一目的地端口标识符与所述一组地址前缀中最长的吸收地址前缀相 关联。
4. 如权利要求3所述的方法,其特征在于,相关联导致所述最长的吸收地址前缀具有一个以上的相关联端口标识符。
5. 如权利要求l所述的方法,其特征在于,还包括按照从最长地址前缀到最短地址前缀的排序顺序存储所述一组地址前缀。
6. 如权利要求l所述的方法,其特征在于,还包括 确定一扩展的地址前缀可被所述一组地址前缀吸收,将对应于所述扩展的地址前缀的目的地端口标识符与所述地址前缀中的吸收 地址前缀相关联,以及丢弃所述扩展的地址前缀。
7. 如权利要求l所述的方法,其特征在于,还包括通过用零和一替换一个或多个无关位而将一地址前缀扩展为多个扩展的地址 前缀,将所述多个扩展的地址前缀吸收到所述一组地址前缀中。
8. 如权利要求l所述的方法,其特征在于,还包括用多个掩码中的第二掩码来对所述目的地地址以及所述的一组地址前缀进行 掩码,以获得第二经掩码的目的地地址和一组第二经掩码的地址前缀,以及基于所述第二经掩码的目的地地址是否与一个或多个第二经掩码的地址前缀 相匹配来标识用于所述分组的端口。
9. 一种装置,包括-多个端口,可掩码内容可寻址存储器,用于存储一组地址前缀并通过对所述一组地址前 缀和一分组的目的地地址进行掩码来标识所述多个端口中要在其上发送所述分组 的端口,以及控制器,用于向所述可掩码内容可寻址存储器提供所述分组的目的地地址并 在由所述可掩码内容可寻址存储器所标识的端口上发送所述分组。
10. 如权利要求9所述的装置,其特征在于,所述可掩码内容可寻址存储器 为所述目的地地址确定所述一组地址前缀中最长匹配的经掩码的地址前缀。
11. 如权利要求9所述的装置,其特征在于,所述可掩码内容可寻址存储器确定第一地址前缀可被所述一组地址前缀中的至少一个地址前缀吸收,将对应于所 述第一地址前缀的第一 目的地端口与所述一组地址前缀中的吸收地址前缀相关联, 并丢弃所述第一地址前缀。
12. 如权利要求9所述的装置,其特征在于,所述可掩码内容可寻址存储器 确定第一地址前缀可被所述一组地址前缀中的至少一个地址前缀吸收,将对应于所 述第一地址前缀的第一目的地端口与所述一组地址前缀中的最长吸收地址前缀相 关联,并丢弃所述第一地址前缀。
13. 如权利要求9所述的装置,其特征在于,所述可掩码内容可寻址存储器 将一个以上目的地端口与所述一组地址前缀中的一地址前缀相关联。
14. 如权利要求9所述的装置,其特征在于,所述可掩码内容可寻址存储器 按照从最长地址前缀到最短地址前缀的排序顺序存储所述一组地址前缀。
15. 如权利要求9所述的装置,其特征在于,所述可掩码内容可寻址存储器 通过用零和一替换一个或多个无关位而将一地址前缀扩展为多个扩展的地址前缀。
16. 如权利要求15所述的装置,其特征在于,所述可掩码内容可寻址存储器将所述扩展的地址前缀中的一个或多个吸收到所述一组地址前缀中。
17. 如权利要求9所述的装置,其特征在于,所述可掩码内容可寻址存储器 按掩码长度递减的次序用多个掩码中的每一个掩码反复对所述一组地址前缀进行 掩码直到标识了最长的经掩码的地址前缀。
18. —种装置,包括存储器,用于存储一组地址前缀以及用于所述多个地址前缀中每一个地址前 缀的多个端口标识符,以及逻辑,用于基于向所述一组地址前缀和一分组的目的地地址应用多个掩码来 标识要在其上发送所述分组的端口 。
19. 如权利要求18所述的方法,其特征在于,所述存储器包括三态存储元件, 每个三态存储元件都能够存储零、 一和无关。
20. 如权利要求18所述的装置,其特征在于,所述逻辑为所述目的地地址确定所述一组地址前缀中最长匹配的经掩码的地址前缀。
21. 如权利要求18所述的装置,其特征在于,所述逻辑确定第一地址前缀可 被所述一组地址前缀中的至少一个地址前缀吸收,并且将对应于所述第一地址前缀 的第一目的地端口与所述一组地址前缀中的吸收地址前缀相关联。
22. 如权利要求18所述的装置,其特征在于,所述逻辑按照从最长地址前缀 到最短地址前缀的排序顺序在所述存储器中存储所述一组地址前缀,并且选择与所 述最长地址前缀最接近的匹配的经掩码的地址前缀。
23. 如权利要求18所述的装置,其特征在于,所述逻辑通过用零和一替换一 个或多个无关位而将一地址前缀扩展为多个扩展的地址前缀,并将所述扩展的地址 前缀中的一个或多个吸收到所述一组地址前缀中。
24. 如权利要求18所述的装置,其特征在于,所述逻辑按掩码长度的递减次 序用所述多个掩码中的每一个掩码反复对所述一组地址前缀进行掩码直到标识了 最长的经掩码的地址前缀。
全文摘要
一种可掩码内容可寻址存储器可以存储一个或多个地址前缀。通过经由对该地址前缀和接收分组的目的地地址进行掩码来比较该目的地地址,来确定要在其上发送该分组的端口。
文档编号H04L12/56GK101099347SQ200580046261
公开日2008年1月2日 申请日期2005年12月7日 优先权日2004年12月7日
发明者U·山卡拉 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1