用于高带宽总线的端口适配器的制作方法

文档序号:6341319阅读:154来源:国知局
专利名称:用于高带宽总线的端口适配器的制作方法
技术领域
本发明一般地涉及数字计算机系统,更具体而言,涉及包括SPI-4总线的数字计 算机。
背景技术
该部分中描述的方法可以被执行,但是并不是先前已获知或执行的必要方法。因 此,除非这里明确指出,否则在该部分中描述的方法不是本申请中权利要求的现有技术,也 不认为因为包括在该部分中而成为现有技术。数字计算机使用输入/输出(1/0)总线来在外围设备和计算机中央处理单元以及 计算机存储器之间传送信息。在具有多个分布式处理器和多个分布式存储器的系统中也需 要1/0功能。多种1/0总线体系结构被用在这种计算机系统中,包括个人计算机接口(PCI)。系 统分组接口 -4总线是相对较新的高带宽总线,其通常用在用于计算机网络的数据分组处 理系统中,如高速路由器和交换机。SPI4. 2总线体系结构的特件在可以从誦.oiforum. com/public/impagreements. html获得的接口规范中有所描沭。在该文件中,术语“SPI-4” 等同于“SPI4. 2”,并且包括SPI4. 2总线体系结构的变体和等同物。尽管SPI-4总线提供了用于计算机系统内的分组数据的高速通信路径,但是 SPI-4总线并不适合于与外部网络或设备直接通信。将具有SPI-4总线的主机用接口连接 到网络通常要求提供耦合到其他设备或网络的逻辑或物理端口或接口。某些端口适配器构 造为服务适配器,其没有端口或接口,但是为主机提供了特定种类的分组处理服务,如压缩 或解压缩、加密或解密等。
用户和制造商尤其希望具有可以容纳使用不同技术的端口和接口的主机系统,这 些端口和接口例如是以太网、快速以太网、G比特以太网、光接口、串行或其他接口。在一种 方法中,主机路由器或交换机硬连线到多种不同的端口。然而,如果用户的端口需求改变, 则用户也不能重配置这种主机。这些用户和制造商希望具有一种适于改变端口和接口需求 的主机系统。热交换也可能损坏连接到SPI-4总线的某些器件,如使用互补金属氧化物半导体 (CMOS)技术的器件。当到CMOS接收器的输入在CMOS切换区域内时,CMOS器件被暴露于大 电流。某些CMOS接收器具有串联的两个场效应晶体管(FET),其中第一 FET连接到正电源 轨道(rail),第二 FET连接到负电源轨道。当到这两个FET的输入处于切换区域内时,这两 个FET可能被同时连续导通,从而创建了直接经过CMOS器件的DC电流路径。这两个FET 的连续导通状态可能散发出以损坏CMOS器件的功率量。当输入被驱动超过CMOS电源轨道之一时,CMOS器件还会经历锁存状况。在锁存 状况中,CMOS结构中的寄生晶体管散发出大量的功率,该功率可能损坏CMOS器件。上述的 这两种功率散发状况都可能来自于主机接口总线上的热交换。Quackenbush 等人的美国专利 No. 5,793,987 和美国专利 No. 6,163,824 公开了一 种具有分离的PCI本地总线和本地总线的端口适配器以及关联的处理方法。端口适配器 是一种提供一个或多个端口的电子器件,被插入到主机系统来向该主机提供附加特征或功 能。Quackenbush等人的技术已用在加州San Jose的思科系统公司的思科7200系列路由 器和思科7500系列路由器中的基于PCI总线的端口适配器内。然而,Quackenbush等人的 技术并不适于具有SPI-4总线体系结构的主机,这是因为PCI总线和SPI-4总线之间有巨 大的技术差别。例如,PCI总线不能处理从接口高速(如10G比特每秒((ibps))到达的数 据。现有端口适配器的另一个缺点是它们不与异种网络环境无缝地协同操作。例如, 具有多个端口适配器的主机可以利用大量网络技术中的任何一种与外部网络或设备进行 通信。结果,在端口适配器处接收到的数据分组可能具有大量不同格式中的任何一种。要 求主机系统理解并处理大量的不同分组格式将是复杂的,并且对新技术缺乏缩放性。另外, 在每种类型的端口适配器和主机系统之间使用通用分组格式是不实际的,这是因为在不同 技术的分组中携带的数据类型和量都不同。从而,需要这样一种端口适配器,其能够处理特定技术的特定分组格式,并且以单 一的一致分组格式向主机提供数据以用于内部处理。基于前述内容,在相关技术领域中明确需要这样一种端口适配器,其能够将具有 SPI-4总线体系结构的主机系统用接口连接到不同网络技术的设备。更宽广的说,需要这样 一种装置,其能够提供从主机的SPI-4总线到外部外围设备的可热插拔的适应性接口。


在附图中以示例方式图示而非限制方式图示了本发明,在附图中,相似的标号指 代类似的元件,在附图中图1的框示了具有一个或多个端口适配器的主机系统的概图;图2的框示了用于SPI-4总线的端口适配器的概图3是根据一个实施例的图2的端口适配器的更详细框图;图4A是用于基于端口适配器的能力适配主机系统的SPI-4总线的工作行为的处 理的流程图;图4B的流程示了变换接收的数据分组的处理的概图;图5是变换后的分组格式的框图。
具体实施例方式描述了一种用于高速总线的可热插拔端口适配器。在下面的描述中,出于说明目 的,给出了大量具体细节以提供对本发明的完整理解。然而,本领域技术人员应当清楚,没 有这些具体细节也可以实践本发明。在其他示例中,公知的结构和设备以框图形式示出,以 避免不必要地混淆本发明。实施例根据下面的大纲描述1. 0 概述2. 0结构和功能概述2.1端口适配器体系结构2. 2对不同SPI-4工作速度的适配2. 3扩展流控制总线2. 4利用端口适配器预处理分组3. 0实现机制一硬件概述4. 0扩展和替换1. 0 概述在本发明中实现了在前述背景技术中提到的需求以及将从下面的描述中变清楚 的其他需求和目的,本发明在一个方面包括一种用于经由SPI-4总线将网络接口连接到主 机系统的可热插拔端口适配器。该端口适配器经由包括SPI-4总线和控制总线的端口适配 器/主机接口与主机系统通信;可以提供扩展流控制总线。还提供了这样的方法,该方法用 于选择并使用用于各种联网技术的少数几种不同分组格式之一,以使得端口适配器可以隐 藏其从主机系统处理的技术的细节,并且基于端口适配器的带宽需求使主机系统的SPI-4 总线工作在若干速度之一处。根据一个方面,本发明提供了 一种用于将零个或多个网络接口耦合到具有SPI-4 总线的主机系统的端口适配器,所述端口适配器包括零个或多个网络接口 ;耦合到主机系 统以提供主机和网络接口之间的通信信道的SPI-4总线;耦合到主机系统用于控制和监控 端口适配器的控制总线;以及将SPI-4总线和控制总线用接口连接到网络接口的接口逻辑。根据一个特征,接口逻辑包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、 前两者和一个或多个其他硬件元件的组合,或者一个或多个其他硬件元件的组合。根据另 一个特征,标识总线耦合到主机系统以允许主机系统识别端口适配器。在另一个特征中,提 供了扩展流控制总线,在所述扩展流控制总线上,端口适配器可以在多个分离的逻辑信道 上将FIFO状态传送给主机系统。在另一个特征中,时钟总线在端口和主机系统之间传输网 络定时信息,以用于提供端口到另一个端口的同步、主机系统参考振荡器到端口的同步、或者端口到主机系统外部的参考时钟的同步。端口适配器还可以包括电源控制电路,其在主机系统保持加电的同时,在端口适 配器在线插入主机系统以及从主机系统移去的期间选择性地生成用于适配器的电源。根据 一个特征,标识库存储不同类型的端口适配器的唯一标识符。在相关特征中,标识库还存储 与端口适配器相关联的一个或多个配置参数值。在另一个相关特征中,标识库包括电可擦 可编程只读存储器。标识库可以存储这样的值,所述值允许主机确定端口适配器是否可由 主机系统支持。标识库还可以存储这样的值,所述值允许主机确定SPI-4总线的一个或多 个工作频率。在另一个特征中,扩展流控制总线耦合到主机系统,其使适配器能够利用SPI-4 总线使用多于传统上可用的256个逻辑信道在SPI-4总线上传输信息。在相关特征中,用 于流控制总线的流控制接口逻辑包括基于日历的机制,所述机制允许端口适配器将成千上 万个逻辑信道的缓冲器填充状态传送给主机系统。扩展流控制总线可以包括TDM日历帧同 步信号、流控制时钟信号、状态信号和奇偶校验信号。根据一个特征,适配器包括零个接口,并且接口逻辑被配置为从主机系统接收一 个或多个分组,根据指定功能变换分组,并将变换后的分组发送到主机系统。在相关特征 中,指定功能包括加密或解密。在另一个方面,本发明提供了一种选择性地确定使用端口适配器的主机计算机系 统的SPI-4总线的工作频率的方法,其中工作频率可以与传统的SPI-4总线的工作频率不 同,所述方法包括以下步骤从具有SPI-4总线的主机计算机系统向端口适配器发出查询, 所述端口适配器包括可以耦合到主机系统以用于主机和SPI-4设备之间的控制和数据的 SPI-4总线、与SPI-4总线平行耦合在主机系统和端口适配器之间与SPI-4总线独立的控制 总线、将SPI-4总线和控制总线用接口连接到多个线路接口之一的接口逻辑、以及标识库; 从标识库接收端口适配器的标识;基于从标识库接收的信息,确定主机系统SPI-4总线是 否可以工作在与端口适配器支持的SPI-4总线工作频率中的至少一个兼容的频率处;以及 将主机系统SPI-4总线的工作频率设为与从端口适配器支持的SPI-4总线工作频率中选定 那个相等。在该方面的一个特征中,设置步骤包括将主机系统SPI-4总线的工作频率设为与 端口适配器支持的SPI-4总线工作频率中最快那个相等。在另一个特征中,该方法包括只 有在主机系统SPI-4总线可以工作在与端口适配器支持的SPI-4总线工作频率中的至少 一个兼容的频率处时才给端口适配器加电。在相关特征中,该方法包括只有在满足一个或 多个因素时才给端口适配器加电,其中所述因素选自以下组合主机系统有用于端口适配 器所需的分组格式的软件支持;端口适配器散发的功率小于主机系统允许的最大功率散发 量;主机系统可以匹配端口适配器所需的带宽;或者与端口适配器相关联的许可授权要求 允许端口适配器运行在主机系统上。在另一个特征中,该方法还包括从标识库接收这样的值,所述值允许主机确定端 口适配器是否受主机系统的支持,以及SPI-4总线的一个或多个工作频率。该方法还可以 包括从标识库接收这样的值,所述值允许主机确定端口适配器经由SPI-4总线发送的数据 的分组格式。在相关特征中,该方法还可以包括从标识库接收指定端口适配器经由SPI-4 总线发送的数据的分组格式的一个或多个值。
在另一个方面,本发明提供了一种用于将零个或多个网络接口耦合到具有SPI-4 总线的主机系统的端口适配器,所述端口适配器包括零个或多个网络接口 ;耦合到主机 系统以提供主机和网络接口之间的通信信道的SPI-4总线;耦合到主机系统用于控制和监 控端口适配器的控制总线;将SPI-4总线和控制总线用接口连接到网络接口的接口逻辑; 以及用于通过执行以下步骤预处理接口上接收到的分组的分组处理逻辑,所述步骤包括 在端口适配器的入口接口上接收第一分组;创建遵从内部分组格式中的选定那个的第二分 组;将来自第一分组的一个或多个字段的数据变换为第二分组的一个或多个相应字段;将 第二分组提供给主机系统。在该方面的一个特征中,分组处理逻辑还包括将分组头部和分组主体中的剩余部 分从第一分组移到第二分组中的步骤。分组处理逻辑可被配置为执行选择多种内部分组格 式之一的步骤。入口接口例如可以是以太网接口、ATM接口、帧中继、串行接口、高度信道化 的接口、RPR接口或POS接口,或者任何其他现在已知的或以后开发出的接口。在其他方面中,本发明包含被配置为执行前述步骤的计算机装置和计算机可读介 质。2. 0结构和功能概述2.1端口适配器体系结构可插拔端口适配器被用来经由SPI-4总线将零个或多个端口或接口连接到主机 系统,以向主机系统添加功能。一般来说端口或接口是高带宽光端口或接口。端口适配器经 由端口适配器/主机接口与主机系统进行通信,端口适配器/主机接口包括SPI-4总线、控 制总线、扩展流控制总线以及其他信号和电源线。端口或接口被配置以正常方式通过SPI-4 总线通信,而端口适配器上的其他功能通过控制总线独立控制。在该文献中,术语“SPI-4”等同于“SPI4. 2”,并且包括SPI4. 2总线体系结构的变 体。从而,实施例可以使用严格遵守SPI-4规范的总线,或者可以使用SPI-4规范的变体、 增强、修改或改进。主机系统使用专用标识总线来确定端口适配器的标识,然后主机系统使用该标识 来确定需要何种编程和配置。主机系统使用控制总线来配置和控制端口适配器上的设备, 并更新端口适配器上的可编程电路,如现场可编程门阵列(FPGA)。或者,可以使用JTAG总 线来更新这种可编程器件。具有易失性程序存储器的FPGA必须在每次加电时被编程,并且 可以在现场被主机系统重新编程,以修补bug并增强性能和/或功能。在一个实施例中,端口适配器中的SPI-4总线耦合到SPI-4终端逻辑,该SPI-4终 端逻辑耦合到一个或多个网络接口,如成帧器、ATM SAR等。通过协同操作,SPI-4终端逻辑 和网络接口控制零个或多个端口,这零个或多个端口耦合到零个或多个通信线路、设备或 网络,如局域网(LAN)和广域网(WAN)。SPI-4终端逻辑和网络接口协同操作以从端口或接 口接收数据,然后以重新处理后的形式在SPI-4总线上重发数据,并从主机系统接收数据, 然后在端口上重发这种数据。控制总线可用于对端口适配器上的逻辑进行编程,端口上的逻辑例如是接口逻 辑、网络接口和通用寄存器或其他可编程元件。控制总线也可以提供接入以控制端口适配 器上的设备的接口。电源总线与软件结合使用来控制施加电源,以执行热交换操作,在热交 换操作中,在主机系统被加电并工作或者被去电时,从主机系统中拔出端口适配器或者将端口适配器插入到主机系统中。端口适配器可以包括具有一个或多个检测针脚的连接器, 检测针脚比连接器中的其他信号针脚和其他电源总线针脚的长度短。在一个实施例中,较 短的针脚在连接器的相对端。较短的检测针脚允许端口适配器和主机系统参与热交换状 况,并继而对热交换状况作出响应,这是通过只在端口适配器被完全插入时才给端口适配 器加电来实现的。较短的针脚还使主机系统能够确定所有针脚都正确插入。一旦移去端口 适配器,短针脚首先断开连接,并且使端口适配器向主机发送信号,这些信号被用来禁止向 端口适配器加电。当在热交换状况期间端口适配器连接到主机系统时,控制电路开始受控的加电序 列。当在热交换状况期间端口适配器断开与主机系统的连接时,控制电路开始受控的去电 序列。当端口适配器不处于工作电源水平时,端口适配器和主机系统之间的热交换协议 不再继续端口适配器中SPI-4总线上的数据通信。当端口适配器断开与主机系统的连接 时,来自主机电路的信号被改变为已知安全状态,以防止在在线插入工作期间可能的高电 流损坏设备。热交换协议还防止SPI-4总线上数据的损坏,并防止损坏主机中的逻辑状态。这里所公开的端口适配器可以处理以高至IOG比特每秒(Gbps)从用接口连接到 达的数据。在其他实施例中,可以采纳允许更快的数据速率的对SPI-4总线体系结构的改 进。图1的框示了具有端口适配器的主机系统的概图。通常,主机系统100包括中 央处理单元(CPU)101,CPU 101利用主机接口总线102A、102B、102N与一个或多个端口适配 器104A、104B、104N进行通信,这些主机接口总线经由主机接口总线集线器或复用器109进 行复用。每条主机接口总线102A、102B、102N包括SPI-4总线以及其他信号。CPU 101可以 利用一条或多条其他总线105(如地址总线、数据总线等)与其他电路和设备进行通信。为 了清楚起见,系统100的描述被极大地简化,实际系统可以包括存储器设备、I/O设备、路由 处理器、网络处理器、交换架构等。系统100可以实现为通用分组交换路由器或交换机。在 某些实施例中,系统100包括来自加州San Jose的思科系统公司的思科7300、7600、10000 或12000系列产品。主机系统100可以具有一个或多个可热插拔端口适配器104A、104B、104N。在实 际系统中可以具有任何数目的端口适配器。这里,端口适配器也被称为等同术语“共享端口 适配器”或SPA,或者“通用端口适配器”或VPA。每个端口适配器104A、104B、104N包括零 个或多个端口 106A、106B、106N。每个端口利用任何合适的网络通信技术(如以太网、快速 以太网、G比特以太网、光学、串行或其他接口 )通信地耦合到网络110A、110B、110N或者该 网络内的设备之一。实际系统中在端口适配器上可以有任何数目的端口。每个端口 106A、 106B、106N可以耦合到不同的网络110AUIOBUION0具有零个端口的实施例可以包括服务适配器,在服务适配器中,端口适配器提供 计算或分组处理服务,而不是接口功能。这里所描述的端口适配器可以具有零个端口,但是 例如可以为主机提供加密或压缩功能。另外,在另一个实施例中,可以提供服务适配器和端 口适配器的组合,其具有一个或多个端口,也提供分组处理服务。在图1的配置中,每个端口适配器提供用于分别使其端口用接口连接到主机接口 总线102A、102B、102N的机制。每个端口适配器104A、104B、104N是可热插拔的,这意味着在主机系统正运行的同时,端口适配器可以从主机系统100中移去,也可以安装到主机系 统100中。结果,主机系统100可以被用不同数目的端口或者使用不同网络技术的端口重 新配置,而同时保留SPI-4总线体系结构的优点。图2的框示了用于SPI-4总线的端口适配器的一个实施例的概图。在图2中 为了清楚起见而省略的主机系统100经由SPI-4总线201、控制总线206、扩展流控制总线 222、时钟总线224、电源控制总线2 和标识总线2 耦合到端口适配器104C。端口适配 器104C包括SPI-4终端逻辑202,SPI-4终端逻辑202通信地耦合到SPI-4总线201,并耦 合到网络接口 204。在端口 106A、106B、106N是以太网端口的实施例中,网络接口 204可以 是负责快速形成并处理数据帧的MAC(媒体访问控制器),并且可以临时存储数据到存储器 中。或者,网络接口 204可以包括ATMSAR等。网络接口 204通信地耦合到端口 106A、106B、 106N。在图2的示例中,示出了一个网络接口 204。在其他实施例中,可以提供多个网络 接口,并且每个这种网络接口耦合到SPI-4终端逻辑202。例如,对于每个端口 106A、106B、 106N可以有不同的网络接口 204。在具有零个端口的实施例中,省略了网络接口 204,并且在其位置处可以提供用于 执行分组处理服务的其他逻辑。例如,加密引擎或压缩引擎可以占据与网络接口 204相同 的逻辑位置。控制总线206连接到端口适配器104C中的本地控制逻辑208。标识总线2 连 接到标识元件212,标识元件212可以被主机系统100查询以确定端口适配器104C的硬件 布置和逻辑配置。端口适配器104C还可以包括分别耦合到电源控制总线2 和时钟总线 224的电源控制元件214和时钟分配电路216。扩展流控制总线222耦合到扩展流控制逻辑220。扩展流控制总线的细节将在下 面独立的部分进一步描述。端口适配器104C可以实现为多个集成电路,这多个集成电路安装在受保护的封 装内的一个或多个印刷电路板上。在一个实施例中,每个端口适配器安装在主机系统中处 理电路卡(“主机卡”)的插槽内。端口适配器封装可以具有多种封装形式中的任何一种,从 而提供模块化布置以使得多个不同的端口适配器可以在同一主机机架内相互交换。在一个 实施例中,基于端口适配器中提供的端口或接口的数目和类型、端口适配器散发的功率量、 或者端口适配器中电路所需的面积,端口适配器封装可以具有半高、全高、双宽或高功率封 装形式。为了清楚起见,本地控制逻辑208、扩展流控制逻辑220、时钟分配电路216、电源 控制电路214和标识元件212以简化的框图形式表示。具体而言,到每个这种元件的连接 被简化,并且在特定实施例中每个这种元件可以具有其他连接。另外,端口适配器104C还 可以包括除了图2中所示的特定元件外的其他电路元件。图3是根据一个实施例的图2的端口适配器的更详细框图。主机连接器302提供到主机系统100(为了清楚起见在图3中未示出)的物理连 接,并且传输时钟、数据、控制和电源信号。12V电源线226A耦合到电源转换模块304,电 源转换模块304提供处于端口适配器104D的其他元件所需的各种电压电平的多条输出电 源线308。在一个实施例中,电源转换模块提供3. 3V、2. 5V、1.8V和1. 5V的输出;在其他实施例中也可以提供其他的输出电压电平。另外,电源转换模块304可以提供电源排序 (sequencing)、加电/去电功能、电源监控、电源延长(margining)等。SPI-4总线332耦合到FPGA 330。SPI-4总线332 —般是传输数据总线信号、流控 制信号、时钟信号等的86针分组数据传送总线。在某些实施例中,所有这些信号的工作速 度都可以改变以与不同的主机和端口适配器兼容,这在下面将进一步描述。SPA总线206A 从主机系统100耦合到FPGA 330。SPA控制总线206A使主机系统能够控制端口适配器104D 的内部元件并与这些内部元件通信。JTAG总线307可以传输测试信号,测试信号被用于测 试和经由主机系统100和可编程组件之间的通信来进行PLD编程,可编程组件例如是实现 图2的SPI-4终端逻辑202和本地控制逻辑208的功能的FPGA 330。主机连接器302也可 以传输混合信号以支持在线插入和移去(OIR)操作、端口适配器复位功能等。FPGA 330通过PL3总线309、微处理器总线310和传输开销(TOH)路径312耦合 到成帧器204A。在一个实施例中,成帧器204A是来自加州Santa Clara的PMC-Sierra的 PM 5360S/UNI Multi_48S0NET/SDH成帧器,其提供可以在 0C-12/STM-4 和 0C-3/STM-1 带宽 之间选择的四个端口。成帧器204A耦合到提供网络端口和接口的一个或多个小封装形状的可插拔 (SFP)光学模块 314A、314B、314C、314D。FPGA 330 检测模块 314A、314B、314C、314D 插入到 端口适配器104D中或从端口适配器104D中取出。通常,FPGA 330用来对SPA总线206A的信号译码,并用接口连接到来自微处理器 总线310的信号。FPGA 330还提供与SFP 314A、314B、314C、314D有关的控制和状态信息。 另外,FPGA 330提供PL3总线309和SPI-4总线332之间通信的桥接、排队和调度,包括入 口和出口 FIFO队列的管理,并且FPGA 330可以包括在线插入和移去以及电源控制功能。 FPGA 330还被配置用于将SONET开销信息插入到分组和从分组中提取SONET开销信息,分 组是传输到成帧器204A的分组或来自成帧器204A的分组。在一个实施例中,FPGA 330利 用 Xilinx 2V1500 和 SPI4、PL3 和 HDLC IP 内核实现。端口适配器104D还可以包括各种其他功能元件,包括时钟生成/恢复模块216A、 标识电可擦可编程只读存储器(“ID EEPR0M”)212A、电压监管器228A、温度传感器320和 电压延长单元322。时钟生成/恢复模块216A经由主机连接器302从主机接收77. 76MHz SONET参考时钟224B,经由主机连接器302向主机提供恢复后的19. 44MHz时钟224A,向 成帧器204A提供77. 76MHz参考时钟224C,并从成帧器接收恢复后的77. 76MHz时钟信号 224D。使用恢复后的时钟能够使时钟生成/恢复模块216A从任何附接的SONET端口中导 出系统时钟。时钟生成/恢复模块216A还生成用于操作FPGA 330的IOOMHz时钟。温度传感器320可以具有用于检测和通知温度过高的问题的可编程温度范围。可选地,从主机系统100耦合到端口适配器104D的扩展流控制总线用来为具有极 大量物理或虚拟端口的端口适配器提供背压。例如,在ATM中,在一条物理链路上可以存在 大量的虚电路。从而,扩展流控制总线可用于高度信道化的端口适配器、ATM端口适配器等。在本文件的附录中提供了端口适配器的实施例的详细规范,这里通过引用并入其 全部内容。2. 2对不同SPI-4工作速率的适配主机系统100可以利用标识总线228A来查询ID EEPROM 212A,以确定端口适配器104D的配置并执行电源控制功能。在一个实施例中,总线228A遵从I2C信号格式。ID EEPROM 212A是标识库的示例。基于标识信息,由主机系统执行的软件确定指定端口适配器 的工作频率和经由SPI-4总线发送的数据格式的值。例如,主机系统软件可以包括查找表, 查找表将总线速度值、数据分组格式等映射到各种端口适配器标识符。在替换实施例中,标 识库存储总线速度值、数据分组格式和与该端口适配器或多个不同端口适配器的一个或多 个端口适配器标识符相关联的其他配置参数。标识库中的信息能够使主机系统将其工作行为与端口适配器或其端口的特定特 性相适配。例如,SPI-4总线的标准工作频率是350MHz (“全速率SPI-4”)。然而,并不是 所有的端口适配器都要求该频率。例如,在其接口上支持大于2. 4Gbps的聚集数据通信带 宽的端口适配器可能需要全速率SPI-4总线,而仅仅支持小于或等于2. 4Gbps的聚集数据 通信带宽的其他端口适配器可能利用小于350MHz的SPI-4总线信令就足以工作。因此,在一个实施例中,端口适配器104D的SPI-4总线可被配置为工作在 87. 5MHz (1/4速率)。在其他实施例中,端口适配器104D的SPI-4总线可被配置为工作在 任何其他速度,例如提供双速率的700MHz。端口适配器的标识库包含端口适配器类型标识 符。基于端口适配器类型标识符,由主机系统执行的软件可以确定端口适配器是否支持全 速率SPI-4总线速度、1/4速率、或其两者、或者某些其他速度。通常,在一个实施例中,1.在其接口上支持小于或等于2.4(ibpS的总带宽的端口适配器104D必须在其 SPI-4总线上支持1/4速率,还可以可选地支持全速率;2.在其接口上支持大于2. 4Gbps的总带宽的端口适配器必须在其SPI-4总线上支 持全速率,还可以可选地支持1/4速率。主机系统应当遵从类似的规则以确保SPI-4连接到端口适配器的兼容性。从而,3.在任何一个共享端口适配器插槽中支持小于或等于2. 4Gbps的带宽的主机系 统必须在用于该插槽的SPI-4总线上支持1/4速率,还可以可选地支持全速率;4.在任何一个插槽中支持大于2. 4Gbps的带宽的主机系统必须在用于该插槽的 SPI-4总线上支持全速率,还可以可选地支持1/4速率。利用该布置,主机系统可以查询标识库,并基于标识库中的信息来适配其工作行 为。图4A是基于端口适配器的能力来适配主机系统的SPI-4总线的工作行为的处理 的流程图。在方框402,向端口适配器中的标识库发出查询。例如,参考图3,主机系统100 可以在总线228A上发出信号以读取ID EEPROM 212A的内容。方框402可以在主机系统向 诸如端口适配器104D之类的端口适配器供电之前执行。诸如ID EEPROM 212A之类的标识 库可以从连接器302中的分离电源针脚接收电源,这使得即使在端口适配器掉电时,主机 系统100也能够从端口适配器中读取端口配置信息。在方框404,从端口适配器接收响应,该响应包括端口适配器的唯一标识符。例如, 读取ID EEPROM 212A导致端口适配器104D提供其唯一标识符值。在方框405,主机确定端 口适配器所支持的一个或多个SPI-4总线工作速率。例如,主机使用存储的查找表来将所 接收的唯一标识符值与端口适配器的一个或多个工作频率值相关联。另外,主机系统可以 确定端口适配器是否受主机系统的支持,以及由端口适配器在SPI-4总线上发送的数据格 式。或者,这些值和配置参数从端口适配器的标识库提供。
在方框406,主机系统确定其是否与其中一个支持速率兼容,该支持速率是主机基 于从端口适配器的标识库中接收的标识符来确定的。方框406可以包括应用上述的规则 1-4以确定端口适配器与主机是否兼容。例如,如果端口适配器仅支持1/4速率SPI-4,而 主机要求全速率,则主机与端口适配器不兼容。如果主机不兼容,则在方框407,主机不给端 口适配器加电,端口适配器不能被主机系统使用。上述的规则1-4可以实现在主机系统执 行的软件中。可选地,处理包括仅当满足一个或多个因素时才给端口适配器加电。例如,方框 406可以包括评估以下因素,如主机系统是否有对端口适配器所需的分组格式的软件支 持;主机系统是否有对端口适配器的软件支持;端口适配器散发的功率量是否小于主机系 统允许的最大功率散发量;主机系统是否可以匹配端口适配器所需的带宽;与端口适配器 相关联的许可授权要求是否允许端口适配器运行在主机系统上等等。如果主机与端口适配器兼容,则在方框408主机将其自身的SPI-4总线的工作速 率改变为最快的兼容支持速率。例如,如果端口适配器标识库指示端口适配器既支持1/4 速率SPI-4又支持全速率SPI-4,则主机将其SPI-4工作速率改变为全速率。在替换实施例 中,主机将其自身的SPI-4总线的工作速率改变为兼容支持速率中的任何一个。在方框410,主机通过发送适当的控制信号来给端口适配器加电;在图2的示例 中,这种信号可以在电源控制总线2 上发送。在方框412,主机将端口适配器设为主机使 用的相同兼容速率。对于图3的示例,主机系统100在SPA总线206A上发送控制信号,以 指示端口适配器使用特定速率。被设定的速率可以是最快兼容速率,或者任何选定的兼容 速率。可选地,在其他实施例中,执行步骤408、410、412的顺序可以改变,并且执行这些 步骤的顺序是不严格的。从而,利用图4的方法,主机可以查询端口适配器以获取关于端口适配器的工作 特性的信息,并且基于所接收的信息,主机系统确定是否兼容,是否给端口适配器加电,以 及使用哪一工作速率。另外,基于所接收的信息,主机系统可以确定运行SPI-4总线的工作频率。例如, 可以使用全速率SPI-4,可以使用1/4速率等等。主机系统还可以确定SPI-4总线上数据通信的特定格式,例如将在下面的2. 4部 分进一步描述的。2. 3扩展流控制总线传统的SPI-4总线最大寻址256个信道,并且在正常寻址模式中提供对256个信 道的FIFO队列状态指示的支持。然而,具有大量信道(例如,“高度信道化的”或ATM SPA) 的端口适配器可能需要1000个或更多个信道。因此,希望具有一种端口适配器流控制总 线,其可以在每端口适配器上支持多于256个信道。因此,提供了扩展流控制总线和相关联的方法以将端口适配器扩展到能够多于 256个信道。在该布置中,需要小于或等于256个信道的端口适配器可以使用传统的SPI-4 控制总线来进行流控制,也可以可选地使用这里定义的扩展流控制总线。如果端口适配器 使用这里定义的扩展流控制总线,则端口适配器还仍然使用传统的SPI-4流控制总线来进 行总的(而不是子信道或虚拟信道)流量聚集的流控制,如端口适配器级别或物理端口级别的流控制。在一个实施例中,扩展流控制总线222传输时域复用(TDM)日历帧同步信号、流控 制时钟信号、状态信号和奇偶校验信号。流控制时钟信号提供源时钟,源时钟被主机用来给 状态信号上的数据值提供时钟,并且由流控制数据的发送者(通常是端口适配器)发源。示 例性的时钟频率是50MHz,但是也可以使用任何其他合适的时钟频率。在一个实施例中,状态信号是1位信号,但是也可以使用其他形式的状态信令。状 态信号提供对信道FIFO状态是高于还是低于阈值的指示,阈值对应于针对TDM时隙编程的 信道。在各种实施例中,奇偶校验值提供用于特定时钟周期的状态信号和帧同步信号之间 的偶或奇校验。在各种实施例中,使用分离的奇偶校验信号允许灵活地将帧尺寸改变为任 意长度。可选地,端口适配器也可以不支持扩展流控制总线,这种情况下不连接前述信号。从而,在实施例中,扩展流控制总线使用基于TDM日历的机制,该机制在单个数据 位上传输每个信道的FIFO状态信息。当信道在端口适配器和主机处被配置并建立时,主机 系统100对日历编程。在一个实施例中,时隙被正比于信道带宽分配。实施例可以将信道 带宽近似为最接近的2的幂,并且可以以减少流控制时隙的总数的方式分配时隙。在一个 实施例中,日历包括这样的表,在表中,行对应于时隙,列携带信道号和FIFO状态信息。在 一个特定实施例中,有16584行,每行包括12位的信道号和一个状态位。端口适配器使用日历来确定轮询哪个信道以获取FIFO状态以及在特定时隙或时 钟周期中发送哪个信道。主机使用类似配置的日历来确定在特定时隙中传输哪个信道的 FIFO状态流控制信息。在一个实施例中,所支持信道的数目是可配置的,从而其可以适应特定主机的能 力。例如,主机卡仅可以支持IK的流可控实体,因此,某些端口适配器可能需要支持少于最 大数目的信道。在附录的2. 3部分中提供了扩展流控制总线的详细描述。2. 4利用端口适配器预处理分组在一个实施例中,每个端口适配器104A、104B、104N可以利用大量网络技术中的 任何一种与外部网络或设备进行通信。结果,在端口适配器处接收的数据分组可以具有大 量不同格式中的任何一种。在一个实施例中,每个端口适配器以少量基本分组格式中的一 种向主机提供数据,这些格式都是主机所理解的。例如,在一个特定实施例中,使用了四种 分组格式,并且端口适配器支持这四种格式中的一种或多种以与主机进行通信。在该方法 中,由于端口适配器是许多不同主机系统的目标,因此这些格式尽可能多地隐藏了与端口 适配器内的特定媒体类型相关联的细节和处理负荷,以帮助主机高速工作或者降低分组处 理的复杂度。另外,分组格式提供了尽可能小的头部字段,以减少SPI-4总线上采用的带 觅ο图4B的流程示了变换接收到的数据分组的处理的概图。在方框422,在端口适配器的入口接口上接收到分组。在一个实施例中,图4B的处 理由如图2所示的端口适配器执行。从而,图4B的步骤例如可以由SPI-4终端逻辑202执 行。根据端口适配器所支持的特定联网技术中的原有分组格式对在方框422接收到的分组 执行格式化。示例性技术包括以太网、ATM、帧中继等。在方框424,选择多种不同分组格式中的一种。方框4 一般包括选择多种分组格式中的一种,例如,除了原有格式外的其他格式,原有格式是接收到的分组的格式。在下面 进一步描述的一个特定实施例中,从以太网SPA 8字节垫片(shim)格式、ATM SPA 4字节 垫片格式、高度信道化的SPA 4字节垫片格式和无垫片格式中选择分组格式。所选的格式 可以包括比接收到的分组中的字段更多或更少的字段。执行方框4M可以包括仅仅选择与 曾有的端口适配器相关联的一种指定分组格式。另外,在支持以太网分组的端口适配器的 情形下,可以基于在分组中携带的VLAN标识符来选择特定的分组格式。在方框426,创建遵从所选格式的新分组。在方框428,来自接收到的分组的字段的数据被变换为新分组的一个或多个相应 字段。数据变换可以根据数据驱动的映射或规划规则来执行,该映射或规则指定特定入口 分组格式中的哪些字段被变换为目标分组格式中的哪些其他字段。另外,该映射或规则可 以指定从除分组以外的源获得的数据或值的变换,如接口标识符、分组长度、拥塞状态、分 组有效性检验等。在方框430,新分组被提供给主机系统。例如,在图2中,新分组被从SPI-4终端逻 辑202通过主机系统总线201被传输到主机系统100。实施例中所用的四种分组格式可以指定如下格式A 以太网SPA 8字节垫片格式格式B =ATM SPA 4字节垫片格式格式C 高度信道化的SPA 4字节垫片格式格式D 无垫片格式每种格式在附录中有详细描述。图5是通用的变换后的分组格式的框图。在图5的实施例中,分组500包括分类 位502、长度指示符504、源信道标记506和头部字段508。分类位502携带表达与接收到的 分组相关联的类别值的信息。分类信息可以最初从多个不同分组字段中的任何一个导出, 这些字段包括但不限于IP分组的服务类型(ToS)字段、802. Iq优先级信息、MAC地址过滤 信息等。长度指示符504可以指定对原始分组进行的长度调整,或者可以指定变换后的分 组的绝对长度。源信道标记506指定原始分组到达的逻辑或物理信道。头部字段508携带 从原始分组的头部字段中导出的信息。图5的一般化的格式可以以各种方式适用于进入分组的不同格式。例如,在以太 网SPA 8字节垫片格式,端口适配器从分组中完全剥离出第2层封装,并替代以8字节垫片 头部,该头部包括来自原始分组的用于使主机的转发引擎进行高效的转发判决的所有相关 信息。较低的4字节被以与帧中继头部相同的方式近似格式化,从而可以简化主机的转发 引擎的设计。剥离第2层头部可选地是在每分组基础上执行的,从而支持诸如MPLS上的以太网 之类的第2层隧道。如果第2层头部被留在分组中,则其也可以可选地被填充以两个或三 个字节以使第3层头部与4字节对齐,就像某些主机的可选最优化一样。填充的第一字节 例如指示存在的填充字节的数目。这种情况下,由于离开端口适配器的分组格式可以包括可选的剥离可变长度的第 2层封装,以及垫片头部的添加,因此长度指示符值504指示该分组比首次接收到时短的字 节数。主机系统100的第3层引擎可以通过将长度指示符值504的值加上从端口适配器接收的总字节数,来确定原始的第2层长度。头部字段508可以包括分组的第2层头部的协议ID( “PID”),并且端口适配器可 能已经转化了值。PID字段的某些特殊值指示主机必须对特定分组应用特殊处理;该特殊 值是软件可配置的。例如,特殊的PID可用来指示隧道发送的分组、异常分组、或其他特殊 特性。对于隧道发送的分组,当到达分组的VLAN ID和端口号被配置为进入第2层隧道时, 整个分组以及其原始第2层封装被带入主机系统。异常分组指示端口适配器已经检测到关 于分组的某些信息,其要求主机对分组执行特殊处理。可以定义多于一个的异常分组专用 PID0这例如可以允许将分组分类为不同优先级的CPU队列。可选地,作为将第一分组变换为特定的选定分组格式的一部分,原始分组的头部 510和/或主体512可以放置在变换后的分组500中。从而,主机和端口适配器内所用的分 组格式可以包括原始分组头部510和/或原始分组主体512。取决于被处理的流量的属性 或者处理其的上下文,也可以省略原始头部和主体。类似的变换技术可以应用到进入分组的其他不同的分组格式。另外或者可替换地,无需变换分组,而是可以丢弃分组。例如,如果端口适配器从 端口适配器或主机不感兴趣的第2层地址或VLAN接收到分组,则可以丢弃该分组。3.0扩展和替换在前述说明书中,参考本发明的特定实施例描述了本发明。然而很清楚的是,可以 对其进行各种修改和变化,而不脱离本发明的宽广的精神和范围。因此,说明书和附图是示 例性的,而非限制性的。例如,端口适配器可以将分组归类为高优先级的或低优先级的,并且在变换后的 分组格式中提供优先级信息以使主机能够确定首先处理哪些分组。作为在变换后的分组格 式中携带分组优先级信息的替换,两个或更多个逻辑SPI-4信道可以与一个物理端口相关 联,其中,第一逻辑信道携带与第一优先级级别相关联的端口流量,第二或附加的信道携带 与第二或其他的优先级级别相关联的流量。在该方法中,主机适配器可以经由软件被配置 为首先处理较高优先级信道上到达的所有分组,而不参考分组内的优先级信息。在上述体系结构的另一种变体中,逻辑SPI-4信道之一可用作控制路径,以作为 提供控制总线206(图2)或SPA总线206A(图3)上的控制信号的替换。在该替换中,指定 的逻辑信道携带控制分组,与此相分离的,关联的逻辑信道携带端口数据流量。控制信道可 被认为对于主机具有最高优先级。另外,该方法的优点是控制分组可以与关联数据分组的 发送在时间上同步或对齐。另外,用于逻辑信道(在该方法中用于控制)的SPI-4总线的 带宽一般比SPA总线206A或控制总线206的带宽要高,其可用于发送大量的控制数据、统 计流量等。在另一种变体中,指定的SPI-4逻辑信道可用来携带例如事件形式的流控制信 肩、ο
权利要求
1.一种用于将零个或多个网络接口耦合到具有SPI-4总线的主机系统的端口适配器, 所述端口适配器包括零个或多个网络接口;耦合到主机系统以提供所述主机和所述网络接口之间的通信信道的SPI-4总线; 耦合到所述主机系统用于控制和监控所述端口适配器的控制总线; 用于将所述SPI-4总线和所述控制总线用接口连接到所述网络接口的接口装置;以及 用于预处理所述接口上接收到的分组的装置,该用于预处理的装置包括 用于在所述端口适配器的入口接口上接收第一分组的装置; 用于创建遵循从内部分组格式中选定的格式的第二分组的装置; 用于将来自所述第一分组的一个或多个字段的数据变换为所述第二分组的一个或多 个相应字段的装置;用于将所述第二分组提供给主机系统的装置。
2.如权利要求1所述的适配器,其中用于预处理分组的装置还包括用于将分组头部和 分组主体中的剩余部分从所述第一分组移到所述第二分组中的装置。
3.如权利要求2所述的适配器,其中用于预处理分组的装置还包括用于选择多种内部 分组格式中的一种的装置。
4.如权利要求3所述的适配器,其中所述入口接口是以太网接口、ATM接口、帧中继、串 行接口、高度信道化的接口、RI3R接口或POS接口。
5.如权利要求2所述的适配器,其中所述入口接口是以太网接口、ATM接口、帧中继、串 行接口、高度信道化的接口、RI3R接口或POS接口。
6.如权利要求1所述的适配器,其中所述适配器包括零个接口,并且其中将所述SPI-4 总线用接口连接的装置包括用于从所述主机系统接收一个或多个分组、根据指定的功能转 换所述分组、并且将经转换的分组发送到所述主机系统的装置。
7.如权利要求6所述的适配器,其中所述指定的功能包括加密、解密、压缩或解压缩。
8.如权利要求1所述的适配器,还包括用于存储所述端口适配器的类型的唯一标识符 的装置。
9.如权利要求8所述的适配器,其中用于存储唯一标识符的装置还包括用于与所述端 口适配器相关联地存储一个或多个配置参数的装置。
10.如权利要求8所述的适配器,其中用于存储唯一标识符的装置包括用于存储允许 所述主机系统确定由所述端口适配器用来在所述SPI4总线上发送数据的一种或多种数据 格式的值的装置。
11.如权利要求8所述的适配器,其中用于存储唯一标识符的装置包括非易失性存储器ο
12.如权利要求8所述的适配器,其中用于存储唯一标识符的装置还包括存储允许主 机确定所述主机系统是否能支持所述端口适配器的值的装置。
13.如权利要求1所述的适配器,还包括耦合到所述主机系统以允许所述主机系统识 别所述端口适配器的装置。
14.一种用于处理在包括零个或多个网络接口的端口适配器处接收到的分组的方法, 所述方法包括在所述零个或多个网络接口处接收分组,其中所述网络接口经由SPI-4总线被耦合到 主机系统,以提供主机和所述网络接口之间的通信信道; 通过执行以下步骤预处理所述接口上接收到的分组 在所述端口适配器的入口接口上接收第一分组; 创建遵循从内部分组格式中选定的格式的第二分组;将来自所述第一分组的一个或多个字段的数据变换为所述第二分组的一个或多个相 应字段;以及将所述第二分组提供给所述主机系统。
15.如权利要求14所述的方法,还包括将分组头部和分组主体中的剩余部分从所述第 一分组移到所述第二分组中的步骤。
16.如权利要求15所述的方法,还包括选择多种内部分组格式之一的步骤。
17.如权利要求16所述的方法,其中所述入口接口是以太网接口、ATM接口、帧中继、串 行接口、高度信道化的接口、RI3R接口或POS接口。
18.如权利要求15所述的方法,其中所述入口接口是以太网接口、ATM接口、帧中继、串 行接口、高度信道化的接口、RI3R接口或POS接口。
19.如权利要求14所述的方法,其中所述适配器包括零个接口,并且还包括接口逻辑 的以下步骤从所述主机系统接收一个或多个分组, 根据指定的功能转换所述分组,以及 将经转换的分组发送到所述主机系统。
20.如权利要求19所述的方法,其中所述指定的功能包括加密、解密、压缩或解压缩。
21.如权利要求14所述的方法,还包括存储所述端口适配器的类型的唯一标识符的步马聚ο
22.如权利要求21所述的方法,还包括与所述端口适配器相关联地存储一个或多个配 置参数的步骤。
23.如权利要求21所述的方法,还包括存储允许所述主机确定由所述端口适配器用来 在所述SPI-4总线上发送数据的一种或多种数据格式的值的步骤。
24.如权利要求21所述的方法,其中标识库包括非易失性存储器。
25.如权利要求21所述的方法,还包括存储允许主机确定所述主机系统是否能支持所 述端口适配器的值的步骤。
26.如权利要求14所述的方法,还包括所述主机系统识别所述端口适配器的步骤。
全文摘要
本发明公开了用于高带宽总线的端口适配器。该端口适配器包括零个或多个网络接口;耦合到主机系统以提供主机和网络接口之间的通信信道的SPI-4总线;耦合到主机系统用于控制和监控端口适配器的控制总线;以及将SPI-4总线和控制总线用接口连接到网络接口的接口逻辑。还提供了这样的方法,该方法用于选择并使用用于各种联网技术的少数几种不同分组格式之一,以使得端口适配器可以向主机系统隐藏其处理的技术的细节,并且基于端口适配器的带宽需求使主机系统的SPI-4总线工作在若干速度之一处。
文档编号G06F3/00GK102064989SQ201010622659
公开日2011年5月18日 申请日期2003年11月20日 优先权日2003年10月6日
发明者兰德尔·约翰逊, 史蒂文·霍尔梅斯, 嘉里·艾普斯, 戴维·多克, 普罗莫迪·内杜恩加德, 盖伊·费杜尔克, 穆罕默德·塔塔尔, 约翰·普洛克皮克, 迈克尔·泰勒, 马克·古斯特林 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1