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

文档序号:7587729阅读:137来源:国知局
专利名称:用于高带宽总线的端口适配器的制作方法
技术领域
本发明一般地涉及数字计算机系统,更具体而言,涉及包括SPI-4总线的数字计算机。
背景技术
该部分中描述的方法可以被执行,但是并不是先前已获知或执行的必要方法。因此,除非这里明确指出,否则在该部分中描述的方法不是本申请中权利要求的现有技术,也不认为因为包括在该部分中而成为现有技术。
数字计算机使用输入/输出(I/O)总线来在外围设备和计算机中央处理单元以及计算机存储器之间传送信息。在具有多个分布式处理器和多个分布式存储器的系统中也需要I/O功能。
多种I/O总线体系结构被用在这种计算机系统中,包括个人计算机接口(PCI)。系统分组接口-4总线是相对较新的高带宽总线,其通常用在用于计算机网络的数据分组处理系统中,如高速路由器和交换机。SPI4.2总线体系结构的特性在可以从www.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比特每秒(Gbps))到达的数据。
现有端口适配器的另一个缺点是它们不与异种网络环境无缝地协同操作。例如,具有多个端口适配器的主机可以利用大量网络技术中的任何一种与外部网络或设备进行通信。结果,在端口适配器处接收到的数据分组可能具有大量不同格式中的任何一种。要求主机系统理解并处理大量的不同分组格式将是复杂的,并且对新技术缺乏缩放性。另外,在每种类型的端口适配器和主机系统之间使用通用分组格式是不实际的,这是因为在不同技术的分组中携带的数据类型和量都不同。
从而,需要这样一种端口适配器,其能够处理特定技术的特定分组格式,并且以单一的一致分组格式向主机提供数据以用于内部处理。
基于前述内容,在相关技术领域中明确需要这样一种端口适配器,其能够将具有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总线上数据的损坏,并防止损坏主机中的逻辑状态。
这里所公开的端口适配器可以处理以高至10G比特每秒(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可以耦合到不同的网络110A、110B、110N。
具有零个端口的实施例可以包括服务适配器,在服务适配器中,端口适配器提供计算或分组处理服务,而不是接口功能。这里所描述的端口适配器可以具有零个端口,但是例如可以为主机提供加密或压缩功能。另外,在另一个实施例中,可以提供服务适配器和端口适配器的组合,其具有一个或多个端口,也提供分组处理服务。
在图1的配置中,每个端口适配器提供用于分别使其端口用接口连接到主机接口总线102A、102B、102N的机制。每个端口适配器104A、104B、104N是可热插拔的,这意味着在主机系统正运行的同时,端口适配器可以从主机系统100中移去,也可以安装到主机系统100中。结果,主机系统100可以被用不同数目的端口或者使用不同网络技术的端口重新配置,而同时保留SPI-4总线体系结构的优点。
图2的框示了用于SPI-4总线的端口适配器的一个实施例的概图。在图2中为了清楚起见而省略的主机系统100经由SPI-4总线201、控制总线206、扩展流控制总线222、时钟总线224、电源控制总线226和标识总线228耦合到端口适配器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。标识总线228连接到标识元件212,标识元件212可以被主机系统100查询以确定端口适配器104C的硬件布置和逻辑配置。端口适配器104C还可以包括分别耦合到电源控制总线226和时钟总线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-48SONET/SDH成帧器,其提供可以在OC-12/STM-4和OC-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 EEPROM”)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的100MHz时钟。
温度传感器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速率、或其两者、或者某些其他速度。通常,在一个主机系统应当遵从类似的规则以确保SPI-4连接到端口适配器的兼容性。从而,3.在任何一个共享端口适配器插槽中支持小于或等于2.4Gbps的带宽的主机系统必须在用于该插槽的SPI-4总线上支持1/4速率,还可以可选地支持全速率;4.在任何一个插槽中支持大于2.4Gbps的带宽的主机系统必须在用于该插槽的SPI-4总线上支持全速率,还可以可选地支持1/4速率。
利用该布置,主机系统可以查询标识库,并基于标识库中的信息来适配其工作行为。
图4A是基于端口适配器的能力来适配主机系统的SPI-4总线的工作行为的处理的流程图。在方框402,向端口适配器中的标识库发出查询。例如,参考图3,主机系统100可以在总线228A上发出信号以读取IDEEPROM 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的示例中,这种信号可以在电源控制总线226上发送。在方框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状态流控制信息。
在一个实施例中,所支持信道的数目是可配置的,从而其可以适应特定主机的能力。例如,主机卡仅可以支持1K的流可控实体,因此,某些端口适配器可能需要支持少于最大数目的信道。
在附录的2.3部分中提供了扩展流控制总线的详细描述。
2.4利用端口适配器预处理分组在一个实施例中,每个端口适配器104A、104B、104N可以利用大量网络技术中的任何一种与外部网络或设备进行通信。结果,在端口适配器处接收的数据分组可以具有大量不同格式中的任何一种。在一个实施例中,每个端口适配器以少量基本分组格式中的一种向主机提供数据,这些格式都是主机所理解的。例如,在一个特定实施例中,使用了四种分组格式,并且端口适配器支持这四种格式中的一种或多种以与主机进行通信。在该方法中,由于端口适配器是许多不同主机系统的目标,因此这些格式尽可能多地隐藏了与端口适配器内的特定媒体类型相关联的细节和处理负荷,以帮助主机高速工作或者降低分组处理的复杂度。另外,分组格式提供了尽可能小的头部字段,以减少SPI-4总线上采用的带宽。
图4B的流程示了变换接收到的数据分组的处理的概图。
在方框422,在端口适配器的入口接口上接收到分组。在一个实施例中,图4B的处理由如图2所示的端口适配器执行。从而,图4B的步骤例如可以由SPI-4终端逻辑202执行。根据端口适配器所支持的特定联网技术中的原有分组格式对在方框422接收到的分组执行格式化。示例性技术包括以太网、ATM、帧中继等。
在方框424,选择多种不同分组格式中的一种。方框424一般包括选择多种分组格式中的一种,例如,除了原有格式外的其他格式,原有格式是接收到的分组的格式。在下面进一步描述的一个特定实施例中,从以太网SPA 8字节垫片(shim)格式、ATM SPA 4字节垫片格式、高度信道化的SPA 4字节垫片格式和无垫片格式中选择分组格式。所选的格式可以包括比接收到的分组中的字段更多或更少的字段。执行方框424可以包括仅仅选择与曾有的端口适配器相关联的一种指定分组格式。另外,在支持以太网分组的端口适配器的情形下,可以基于在分组中携带的VLAN标识符来选择特定的分组格式。
在方框426,创建遵从所选格式的新分组。
在方框428,来自接收到的分组的字段的数据被变换为新分组的一个或多个相应字段。数据变换可以根据数据驱动的映射或规划规则来执行,该映射或规则指定特定入口分组格式中的哪些字段被变换为目标分组格式中的哪些其他字段。另外,该映射或规则可以指定从除分组以外的源获得的数据或值的变换,如接口标识符、分组长度、拥塞状态、分组有效性检验等。
在方框430,新分组被提供给主机系统。例如,在图2中,新分组被从SPI-4终端逻辑202通过主机系统总线201被传输到主机系统100。
实施例中所用的四种分组格式可以指定如下格式A以太网SPA 8字节垫片格式格式BATM SPA 4字节垫片格式格式C高度信道化的SPA 4字节垫片格式格式D无垫片格式每种格式在附录中有详细描述。
图5是通用的变换后的分组格式的框图。在图5的实施例中,分组500包括分类位502、长度指示符504、源信道标记506和头部字段508。分类位502携带表达与接收到的分组相关联的类别值的信息。分类信息可以最初从多个不同分组字段中的任何一个导出,这些字段包括但不限于IP分组的服务类型(ToS)字段、802.1q优先级信息、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层封装被带入主机系统。异常分组指示端口适配器已经检测到关于分组的某些信息,其要求主机对分组执行特殊处理。可以定义多于一个的异常分组专用PID。这例如可以允许将分组分类为不同优先级的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所述的适配器,其中所述接口逻辑包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、前两者和一个或多个其他硬件元件的组合,或者一个或多个其他硬件元件的组合。
3.如权利要求1所述的适配器,还包括耦合到所述主机系统以允许所述主机系统识别所述端口适配器的标识总线。
4.如权利要求1所述的适配器,还包括扩展流控制总线,在所述扩展流控制总线上,所述端口适配器可以在多个分离的逻辑信道上将FIFO状态传送给所述主机系统。
5.如权利要求1所述的适配器,还包括在所述端口适配器和所述主机系统之间传输网络定时信息的时钟总线,用于提供一个端口到另一个端口的同步、主机系统参考振荡器到端口的同步、或者端口到所述主机系统外部的参考时钟的同步。
6.如权利要求1所述的适配器,还包括电源控制电路,其在所述主机系统保持加电时所述端口适配器在线插入所述主机系统以及从所述主机系统移去的期间,选择性地生成用于所述适配器的电源。
7.如权利要求1所述的适配器,还包括存储所述端口适配器的类型的唯一标识符的标识库。
8.如权利要求7所述的适配器,其中所述标识库还存储与所述端口适配器相关联的一个或多个配置参数值。
9.如权利要求7所述的适配器,其中所述标识库包括非易失性存储器。
10.如权利要求7所述的适配器,其中所述标识库存储允许所述主机确定所述端口适配器是否可由所述主机系统支持的值。
11.如权利要求7所述的适配器,其中所述标识库存储允许所述主机确定所述SPI-4总线的一个或多个工作频率的值。
12.如权利要求1所述的适配器,还包括耦合到所述主机系统的扩展流控制总线,其使所述适配器能够利用所述SPI-4总线使用多于传统上可用的256个逻辑信道在所述SPI-4总线上传输信息。
13.如权利要求12所述的适配器,还包括包含基于日历的机制的流控制接口逻辑,所述机制允许所述端口适配器利用所述SPI-4总线向所述主机系统传送多于传统上可用的256个逻辑信道的FIFO状态。
14.如权利要求12所述的适配器,其中所述扩展流控制总线携带TDM日历帧同步信号、流控制时钟信号、状态信号和奇偶校验信号。
15.如权利要求1所述的适配器,其中所述适配器包括零个接口,并且所述接口逻辑被配置为从所述主机系统接收一个或多个分组,根据指定功能变换所述分组,并将变换后的分组发送到所述主机系统。
16.如权利要求15所述的适配器,其中所述指定功能包括加密、解密、压缩或解压缩。
17.一种用于选择性地确定使用端口适配器的主机计算机系统的SPI-4总线的工作频率的方法,其中所述工作频率可以与传统的SPI-4总线的工作频率不同,所述方法包括以下步骤从具有SPI-4总线的主机计算机系统向端口适配器发出查询,所述端口适配器包括可以耦合到主机系统以用于所述主机和所述SPI-4设备之间的控制和数据的SPI-4总线、与所述SPI-4总线平行耦合在所述主机系统和所述端口适配器之间的控制总线、将所述SPI-4总线和所述控制总线用接口连接到多个线路接口之一的接口逻辑、以及标识库;从所述标识库接收所述端口适配器的标识;基于从所述标识库接收的信息,确定所述主机系统SPI-4总线是否可以工作在与所述端口适配器支持的所述SPI-4总线工作频率中的至少一个兼容的频率处;以及将所述主机系统SPI-4总线的工作频率设为与从所述端口适配器支持的所述SPI-4总线工作频率中选定的工作频率相等。
18.如权利要求17所述的方法,其中所述设置步骤还包括将所述端口适配器的工作频率设为从所述SPI-4总线工作频率中选定的工作频率。
19.如权利要求17所述的方法,其中所述设置步骤包括将所述主机系统SPI-4总线的工作频率设为与所述端口适配器支持的所述SPI-4总线工作频率中最快的工作频率相等。
20.如权利要求17所述的方法,还包括只有在所述主机系统SPI-4总线可以工作在与所述端口适配器支持的所述SPI-4总线工作频率中的至少一个兼容的频率处时才给所述端口适配器加电。
21.如权利要求17所述的方法,还包括只有在满足一个或多个因素时才给所述端口适配器加电,其中所述因素选自以下组合所述主机系统有对所述端口适配器所需的分组格式的软件支持;所述主机系统有对所述端口适配器的软件支持;所述端口适配器散发的功率量小于所述主机系统允许的最大功率散发量;所述主机系统可以匹配所述端口适配器所需的带宽;或者与所述端口适配器相关联的许可授权要求允许所述端口适配器运行在所述主机系统上。
22.如权利要求17所述的方法,还包括从所述标识库接收这样的值,所述值允许所述主机确定所述端口适配器是否可由所述主机系统支持,以及所述SPI-4总线的一个或多个工作频率。
23.如权利要求17所述的方法,还包括从所述标识库接收这样的值,所述值允许所述主机确定所述端口适配器发送过所述SPI-4总线的数据的分组格式。
24.如权利要求17所述的方法,还包括从所述标识库接收指定所述端口适配器发送过所述SPI-4总线的数据的分组格式的一个或多个值。
25.一种用于将零个或多个网络接口耦合到具有SPI-4总线的主机系统的端口适配器,所述端口适配器包括零个或多个网络接口;耦合到主机系统以提供所述主机和所述网络接口之间的通信信道的SPI-4总线;耦合到所述主机系统用于控制和监控所述端口适配器的控制总线;将所述SPI-4总线和所述控制总线用接口连接到所述网络接口的接口逻辑;以及用于通过执行以下步骤预处理所述接口上接收到的分组的分组处理逻辑,所述步骤包括在所述端口适配器的入口接口上接收第一分组;创建遵循从内部分组格式中选定的格式的第二分组;将来自所述第一分组的一个或多个字段的数据变换为所述第二分组的一个或多个相应字段;将所述第二分组提供给主机系统。
26.如权利要求25所述的适配器,其中所述分组处理逻辑还包括将分组头部和分组主体中的剩余部分从所述第一分组移到所述第二分组中的步骤。
27.如权利要求25所述的适配器,其中所述分组处理逻辑被配置为执行选择多种内部分组格式之一的步骤。
28.如权利要求26或27中任何一个所述的适配器,其中所述入口接口是以太网接口、ATM接口、帧中继、串行接口、高度信道化的接口、RPR接口或POS接口。
全文摘要
本发明公开了一种用于将零个或多个网络接口连接到具有SPI-4总线的主机系统的端口适配器。该端口适配器包括零个或多个网络接口;耦合到主机系统以提供主机和网络接口之间的通信信道的SPI-4总线;耦合到主机系统用于控制和监控端口适配器的控制总线;以及将SPI-4总线和控制总线用接口连接到网络接口的接口逻辑。还提供了这样的方法,该方法用于选择并使用用于各种联网技术的少数几种不同分组格式之一,以使得端口适配器可以向主机系统隐藏其处理的技术的细节,并且基于端口适配器的带宽需求使主机系统的SPI-4总线工作在若干速度之一处。
文档编号H04L12/28GK1839378SQ200380110451
公开日2006年9月27日 申请日期2003年11月20日 优先权日2003年10月6日
发明者戴维·多克, 嘉里·艾普斯, 盖伊·费杜尔克, 马克·古斯特林, 史蒂文·霍尔梅斯, 兰德尔·约翰逊, 普罗莫迪·内杜恩加德, 约翰·普洛克皮克, 穆罕默德·塔塔尔, 迈克尔·泰勒 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1