嵌入在光传输系统中的用于光纤通道距离扩展的装置和方法

文档序号:7949484阅读:256来源:国知局
专利名称:嵌入在光传输系统中的用于光纤通道距离扩展的装置和方法
技术领域
本发明涉及光传输设备中嵌入的计算机系统,其提供了不同的光纤通道数据流以本地模式(native mode)聚集的功能,本发明还涉及了一种方法,用来扩展光纤通道存储区域网络的连通性,所述光纤通道存储区域网络在具有前向纠错的高速数据通道上跨越很长地理距离。
背景技术
光纤通道(Fibre Channel)是当今用于连接存储区域网络(SAN)的主要协议。还有诸如FICON这样的其它协议,具有与光纤通道相同的物理层接口并能够利用这里描述的方法进行传输。光纤通道协议使信号在地理位置不分散的计算机和存储系统中高速传输。
通常,采用SCSI标准的具有大外部磁盘或者特大容量磁盘的文件服务器,用于需要大量数据存储的应用。随着应用的增加,对存储系统容量和带宽(数据传输速度)的要求也提高了。SCSI标准的局限性使规模化变得很难。服务器只能访问直接与其相连的装置上的数据。服务器或SCSI硬件故障能够导致访问故障。而且,SCSI只支持有限数量的装置,因此不能扩大规模。SCSI的并行结构造成了距离的局限性,即需要设备都在一起。
实施存储区域网络(SAN)来克服SCSI体系结构的局限性。所述SAN是服务器和存储装置之间的网络。SAN允许多台服务器访问任何存储装置。由于服务器和存储设备不必在一起,这就提高了容错性并克服了距离局限性。实施SAN的主要连网技术是光纤通道。
光纤通道技术[ANSI X3T11]被设计成能够在计算机系统和存储装置之间高速传送数据。其支持包括因特网协议和SCSI在内的公共传输协议。它支持标准速率为1Gbps、2Gbps、4Gbps、8Gbps以及10Gbps的高速数据传输。也支持长距离的通信,使公司能够具备离站(off-site)存储,由此实现诸如灾难恢复和商业连续这样的应用。
光纤通道数据由帧组成,帧被连成序列以允许块传输。帧的大小可以从36B到2KB之间变化。交换可以包括多个允许大量数据传输的序列。用单个命令能够传输多达128MB。在链路中传输的最大数据量取决于缓冲额度(buffer credit)。缓冲额度限定了万一数据链路上发生阻塞的话可用于存储数据的帧数量。如果接收设备压制数据流量,缓冲器必须存储传输中的数据,同时流量控制机制提供反向压力以停止业务。因此,所需缓冲量大于通信系统的往返时间。
距离能够延长的数量是能够安装在光传输系统中的缓冲存储器数量的函数。安装缓冲存储器的数量是尺寸、功耗、以及密度的函数。需要高速存储器以便其能够以系统带宽运行。所述存储器必须占用较小的物理空间,以便能够将其嵌入到传输设备中。而且功耗必须在系统限制的范围内。因此,在系统的物理限制范围内能够安装的存储器数量限定了能够延长的地理距离。
通常,SAN经由距离性能有限的光纤通道交换机彼此连接。大多光纤通道交换机的缓冲额度有限,把SAN距离限制在100km。光纤通道标准本身的限度是250km。大多设备都在250km内,标称性能在100km距离。此外,所述交换机能够被优化成相互通信,常进行专用业务。因此,经常想要一种数据透明的SAN扩展方法,用于与其它设备的互操作性。
在光传输系统中嵌入距离扩展降低了总成本,提高了安全性,提高了可靠性,并使吞吐量提高了。通常,距离扩展在以太网或SONET上的公用网络上进行。该方法导致性能降低、安全性降低并增加了费用。比特错误的累加能够降低网络的吞吐量。通过公用网络连接更易受到攻击的损害,或者由于需要加密装置以提供保密通信而增加了成本。
非零分组丢失率也能严重影响FC/FICON传输的吞吐量。基于IP的公共网络甚至SONET专用线路能够引入错误率,强制重要的用于丢失数据的端对端重传。随着数据中心之间距离的增加,由于FC/FICON上层协议(ULP)重传的影响,总吞吐量和同步降低。
利用共享的交换机或路由网络的IP光纤通道(FCIP)解决方案也承受着由于中间路由和交换站点而增加的等待时间。由于分组丢失造成的强制TCP层重传还需要分配大量的带宽,这是由于有效的吞吐量的显著降低造成的。在基于IP的公共网络中提出的安全性问题也需要专用网不需要的额外的安全措施。企业因此投入很多钱用来对其FCIP业务进行额外加密处理。使用很多不同的盒子来提供存储扩展功能和安全性,增加了费用、所需物理空间和功耗。
传统的FC-over-SONET扩展,利用了通道扩展器或者通过SONET访问链路访问传统载波网络的SAN扩展网关。端对端SONET连接通过城域载波(metro carrier)以及局间交换载波(IXC)网络上的多个SONET链路。不用任何错误纠错方案的话,诸如前向纠错(FEC),每个SONET链路都容易有一定的误码率(BER)。此外,端对端SONET连接的BER累计通过多个链路的比特错误。
所有的考虑表明需要一种光纤通道距离扩展解决方案以作为光传输系统的一部分。所述解决方案为传输金融和其它重要数据的机构提供了专有网络的安全性。对传统公共网络进行分流,也提高了通信可靠性并使吞吐量增加了。这种体系结构也消除了对用于SONET/Ethernet转换和数据加密/解密的额外设备的需求。这就降低了诸如灾难恢复和商业连续性的总成本。
所描述的设备利用高速存储器和专用流量控制将光纤通道扩展功能结合在光传输系统内。在应用中使用的QDR SRAM存储器密度高、功耗小、并提供了缓冲数据所需的速度,还提供了距离扩展。流量控制方法改善了光纤通道流量控制,并不需降低吞吐量就能有效利用用于所有分组大小的存储器。在传输设备中嵌入光纤通道数据的思路提供了专用网络的安全性。利用前向纠错(FEC)连接SAN提高了链路的整体可靠性,并使吞吐量提高了。
由于当前数据库规模很大,也需要在同一光纤上有多个高速数据通道,以便于提供可缩放的带宽。当前存储系统的容量也增加得超过了500兆兆字节。数据库可以存有金融和其它数据。多于10%的数据能够在营业日期间改变。如果50兆兆字节(400兆兆比特)的数据在8小时内改变,就需要14Gbps的带宽。这假定了数据以恒定的速率改变。然而,在营业日期间,可能会突然发生数据改变事件,以致于最大数据速率非常高。因此,设计网络时必须考虑最大数据速率,以便于能够适应通信量骤然增加的情况。最大值相对于平均值的准则根据通信类型而改变。平均值与最大值的比率可以在12.5%到50%之间变化。在这个例子中,恒定速率需要的1.4波长可以增加到2.8(50%)或者9.2(12.5%)。随着由于新的容量更高的系统进入市场或者增加了并行磁盘系统而导致的存储性能的增加,对带宽的要求也相应地增加了。随着更高数据速率光纤通道接口的开发,传输系统必须支持这些新标准。因此,需要接口灵活并且容量可缩放的光纤通道距离扩展解决方案。
所示出的装置和方法使光纤通道距离扩展超出了6000km。高密度、低功耗存储器技术被嵌入到光传输系统的每个通道中,以提供用于光纤通道数据的较大的缓冲器,并由此扩展了SAN的距离。使用了非侵入式光纤通道扩展方法,它可以提供数据透明度,而不需终止光纤通道通信。此外,传送设备对于终止SAN设备来说是透明的,因为不需要光纤通道LOGIN进入传输系统中。其实,端点装置可以彼此对话。不需转换为SONET或IP就能以本地模式用光纤通道实现距离扩展。灵活的光纤通道聚集和扩展体系结构用来允许灵活的接口和可缩放的带宽。这就使得多个低速光纤通道接口聚集成一个高速数据通道。
在Kim等人的NO.6,151,334的美国专利,Nicholson等人的No.2002/0080809的美国专利公开,以及Hind的No.2002/0075903的美国专利公开和Humphrey等人的No.6,396,853的美国专利中,教授了发送数据信号的方法。

发明内容
本发明提供了一种装置和方法,用来以其本地模式聚集各个光纤通道数据流,并在具有前向纠错功能的高速数据通道上扩展跨越很远地理距离的光纤通道存储区域网络的连通性。如表1所示,通过把光纤通道数据流的各个时钟域映射到一个时钟域,来实现数据聚集。如所示,数据流可以是不同的数据速率,具有不同的编码。通过根据FC标准在入口(发送终端)和出口(接收终端)接口处实施外部流量控制,以及适当的内部流量控制以及额度扩展方法,来实现距离扩展,所述方法在系统中结合足够缓冲存储器来使扩展后的链路的吞吐量最大并且没有数据丢失。
在下面给出了各种数据速率的各个光纤通道数据流被聚集为单个高速数据流所进行的处理。表1示出了多达8个千兆位光纤通道(GFC)数据流、4个2GFC数据流、2个4千兆位光纤通道数据流、1个10GFC数据流、或者1个8GFC数据流,在标称10.5Gbps(千兆位每秒)光学传输链路上的聚集。表1的第1、2和3列定义了输入数据的格式。在优选实施例中,如表1的前2行中所示出的,聚集4个千兆位光纤通道或4个2千兆位光纤通道数据流。在优选实施例中,各个端口支持1GFC和2GFC两种实施方式,可以根据SAN接口的要求进行选择。替换实施例能够提供4GFC、8GFC和10GFC的连通性。

在本发明中,根据通过空闲和状态位的“填充”,将多个基于分组的数据流(第4列)聚集在独立时钟源(第6列16位×622.08MHz=9.953Gbps)。选择独立的时钟以便于输出数据速率(第6列)大于所有单个数据流的复合输入数据速率(第5列)。独立时钟防止缓冲器溢出,并提供在数据中嵌入状态信息的机会。
在优选实施例中,输入到FEC装置的4个GFC或4个2GFC数据流被聚集成9.953Gbps数据链路。FEC之后,输入到传输系统的聚集数据速率是12.44Gbps。
在替换实施例中,如表1的第3行和4行所示,2个4GFC数据流或1个8GFC数据流被聚集成单个10G数据链路。
在替换实施例中(表1的第4行[10GFC]),单个10GFC数据流处于输入数据速率10.51875Gbps。10GFC不同于1GFC和2GFC,因为它在10.2Gbps原始数据速率上利用64b/66b编码,这就产生了更高的10.51875Gbps聚集数据速率。所述数据速率被增加400ppm,以便于使状态信息嵌入到数据流中。因此,输入FEC的数据速率是10.523Gbps。
生成的信号在传输接口用前向纠错(FEC)封装,在传输系统上被串行化以及被调制。FEC对由于在传输系统中数据受损所产生的差错进行纠正。在当前实施例中,对于GFC/2 GFC/4 GFC信号,FEC信号标称为12.44Gbps。然而,由于10GFC信号数据速率很高,所以FEC信号增加到13.154Gbps。利用使用不同的开销和编码增益的替换FEC装置,能够降低FEC之后的线路速率。
FEC也提供互易的16位SFI-4接口,允许把各个数据流映射到FEC接口的各个位上。例如,GFC数据流作为10位宽数据以106.25MHz或1.0625Gbps单数据速率到达,或以2.125Gbps双数据速率到达(在时钟的两沿之间的数据转变)。FEC具有622.08MHz时钟速率的16位接口,以适应9.953Gbps的数据速率。因此,每个GFC数据流都能被映射到FEC的8(GFC)或4位(2GFC)(#位=(FEC数据速率/GBE数据速率)×#位)。因此,多达8个数据流能够被映射到FEC。由于接口互易,所以在网络的远端,编码数据达到相同的两个位的位置。该方法使数据能够以其本地格式传输,而不需编码通道ID或其它包装。
传输系统的所述发送(入口模块)和接收终端(出口模块),利用内部和外部数据流控制机制协同工作,以便于在扩展距离上传送光纤通道数据,不会丢失数据。通过提供流量控制信号以指示何时准备好接收分组,近端FC端口控制数据流输入终端。标准光纤通道(FC)流量控制被用在该外部接口。从近端用户处接收的数据帧被发送到远端FC端口,在此被缓冲到高密度存储器中并且最终被发送到远端用户。根据依照光纤标准的出口(远端)流量控制机制,远端FC端口把数据帧发送到远端用户处。远端FC端口也把内部流量控制信息发送到近端FC端口。根据远端FC端口缓冲存储器的状态,所述近端FC端口控制进入到终端的数据流,以便于如果远端用户不能接收数据的话,存储器总能用于存储转发的数据。因此,吞吐量被最大化,而没有损失任何数据。用内部专用的流量控制算法来实现所述功能,稍后将描述其全部细节。
入口电路(近端)通过提供流量控制信号指示何时准备好接收分组来控制输入到终端的数据流量。在该接口处使用标准光纤通道流量控制。入口电路向远端传送数据帧,并确保未应答的发送数据帧的数目小于缓冲存储器大小。入口电路从远端接收缓冲存储器状态并利用它来确定有多少可用的存储器以及是继续还是停止数据流量。
接收端的出口电路恢复调制后的信号并将其输入到纠正传输错误的FEC电路。出口电路提取导致原始数据帧的返回的状态信息。输出定时来自固定的振荡器。然而,到远端SAN的数据传输受流量控制机制的控制,该机制能够根据可用性把分组转发到SAN。高密度缓冲存储器被用来存储输入的光纤通道数据,并根据流量控制协议将其转发到远端SAN。出口存储器状态被反馈到入口模块,并被用来启动-停止业务。出口电路通过空闲字符的添加/减少把数据映射到固定的输出时钟。以这种方式,在扩展的距离上传送光纤通道数据。


通过结合下列附图的对一个示范性实施例的下列详细描述,更能明白本发明图1是描述用于SAN扩展的传输系统的方框图。
图2是根据本发明优选实施例描述入口电路的方框图。
图3是根据本发明优选实施例描述入口现场可编程门阵列的方框图。
图4是描述20位管道线桶式数据轮询复用器(pipeline barrel dataroller MUX)的方框图。
图5是根据本发明优选实施例描述入口电路的方框图。
图6是根据本发明优选实施例描述入口现场可编程门阵列的方框图。
图7是描述根据本发明优选实施例的入口模块的前向纠错系统的方框图。
图8是描述根据本发明优选实施例描述20位调整器电路的方框图。
图9是描述根据本发明优选实施例的入口模块的前向纠错系统的方框图。
图10是描述用来在远地理距离上传送业务的内部和外部流量控制机制的方框图。
具体实施例方式
图1示出了传输系统100的方框图,用于跨越较远地理距离的两个存储区域网络(SAN)的聚集和距离扩展。系统100是全双工传输系统,用于在网络两端聚集和恢复的电路是彼此的镜像。SAN 102和165能够相距高达6000km。替换地,SAN 102和165可以是光纤通道交换机或光纤通道存储装置。在较短的距离上,例如1000km,本发明能支持光纤通道或FICON的同步备份。对于扩展的距离,本发明支持光纤通道或FICON异步备份。
在优选实施例中,信号105、110、115、120和146、150、155、160,可以是4个千兆位光纤通道接口(1.0625Gbps)或4个2GFC接口(2.125Gbps)的任意组合。在一个替换实施例中,只用其中的2个信号支持2个4GFC接口(4.25Gbps)。在又一个实施例中,实现了带有1个8GFC或1个10GFC接口(10.51875Gbps)的单个信号。
在优选实施例中,4个独立的10b编码GFC/2GFC数据流105、110、115和120由入口模块145聚集,并以复合流130的形式通过传输系统125传输。通过扩展已公开的部件,能够在替换实施例中提供较多(多达8)或较少的数据流。在入口模块145处,在从每个数据流接收到的标称GFC/2GFC信号中存在大约百万分之+/-100(ppm)的定时不准确。在入口模块145中跟踪并更正所述定时不准确。优选地,复合流130具有大于百万分之(ppm)400的较快的线路时钟速率,这比数据流的组合输入数据速率快。上面的表1给出了用于全部4种数据格式的线路速率比输入数据速率标称高400ppm。快速线路时钟速率防止缓冲器溢出,并确保分组之间有填充机会以便嵌入空闲字符以及状态信息。为了提高时钟速率,在入口模块145中数据字节被加到或“填充”到分组之间。结果,复合流130含有在串行化/去串行化器中(图2中的SERDES 254)被串行化的由16个数据位组成的串行流。在优选实施例中,每个GFC/2GFC通道都被映射到复合数据流130的16位中的4位。然而,也能把每个数据流映射到16位中的2位,由此聚集8GFC通道;或者对于4GFC,映射到16位中的8位;或者对于10GFC,映射到16位中的16位。
复合流130通过传输系统125传输到出口模块140。出口模块140从复合流130中移出填充的数据并分别对于每个GFC或2GFC数据流将数据映射成1.0625或2.125Gbps的固定时钟速率。实现出口模块140中的固定振荡器680(参照附图6详细描述),为每个数据流对收到的GFC通道计时。为数据流146、150、155和160的恢复数据与来自数据流105、110、115和120的入口路径接收数据相同。从而聚集多个GFC/2GFC流并经由传输系统125传输。
与入口模块145相连的上游处理器170能够把用户数据通过线路171添加到填充字上。下游处理器172通过连至出口模块140的线路173读取所述用户数据。
参照图2,更详细地示出了入口模块优选实施例的方框图。图2示出的入口模块为入口模块201。入口路径包括4个光收发器200、203、205和207,其中每个光收发器都能接收单个GFC/2GFC数据流202、204、206和208。在优选实施例中,每个光收发器都是小尺寸插入式(SFP)光收发器。或者,如果系统被配置成发送一个10GFC数据流,可以用XFP光部件代替SFP光收发器。用光收发器200、203、205和207把4个GFC/2GFC数据流转换成电输出信号210、212、214和216。电输出信号210、212、214和216被传输到串行化器/去串行化器(SerDes)218。SerDes 218从光收发器200、201、203和205中接收电输出信号210、212、214和216,并产生恢复的GFC/2GFC时钟信号220、222、224和226;以及用于GFC/2GFC的8b编码数据加一个控制位的数据信号228、230、232和234。
系统时钟266是GFC参考时钟,用于产生106.25MHz SERDES参考信号。SERDES 218利用时钟作为参考来恢复输入信号。
在用于GFC的单数据速率时钟和用于2GFC的双数据速率时钟下,具有标称频率106.25MHz的恢复的GFC时钟信号220、222,224和226以及8b编码数据信号加控制位228、230、232和234从SerDes218传输到入口现场可编程门阵列(FPGA)244,如下所述,在此处数据信号228、230、232和234被处理成复合信号246。入口FPGA通过信号262利用参考时钟264作为参考生成复合信号246。复合信号246由受线路时钟速率信号262控制的n×622.08MHz并行信号组成。在优选实施例中n是16,并且每个GFC或2GFC都被映射到16FEC通道中的4个。而且,n可以低至2,其中每个GFC都被映射到16FEC通道中的2个,由此实现了8GFC通道的聚集。在优选实施例中,622.08MHz时钟用于聚集各个数据流。而且,根据应用可以使用100MHz到810MHz中的备选时钟速率。唯一的限制是输出数据速率必须大于前面描述的聚集输入数据。入口FPGA还通过信号存在状态信号236、238、240和242与光收发器通信。在对图3的描述中将更详细地讨论这些信号。
复合信号246和相关的时钟262由入口FEC 248接收,并被处理成传输复合信号256。复合信号256以较快线路时钟速率263包含16个并行FEC输出信号。如本领域中已知的,FEC输出信号包含封装在FEC代码中的数据和输入时钟。当正在接收的FEC对信号执行纠错时,用本领域中已知的“通过定时(through timing)”的方法来恢复数据和时钟。
传输复合信号256被传送到SerDes 254。SerDes 254把传输复合信号256串行化成复合流250,复合流250由标称速度12.44Gbps的快时钟速率的单个位宽通道组成。SerDes 254把复合流250传送到传输系统252中进行传输。
图3更详细地示出了入口FPGA 244的优选实施例的一部分的框图。入口FPGA在图3中示出为入口FPGA 300。入口FPGA 300接收从SerDes 218传送的(图2)恢复的FC时钟信号220、222、224和226、数据信号228、230、232和234。入口FPGA 300接收从SFP 200、201、203和205(图2)传送的信号存在状态信号236、238、240和242。为了简化起见,只显示了每组中的一个,220、228和236。信号存在状态信号236被发送到FIFO写控制逻辑336。FC时钟信号220和数据信号228被发送到SerDes输入接口3001。在优选实施例中,数据信号228速率在106.25MHz双倍数据速率或DDR 9位宽(8位数据(8b)+1控制位)。每个FC时钟信号220、222、224和226彼此准同步(几乎同步)。
SerDes输入接口3001把用于2G FC 106.25MHz或用于1G FCDDR总线53.125MHz的9位宽数据流228扩展成18位宽106.25MHz或53.125MHz的单数据速率SDR数据流3002,并将其传送到FIFO写控制器336。FIFO写控制器336监视18位SDR数据流3002中是否有FC空闲字符和FC接收器就绪字符。FIFO写控制器336将移除所有FC空闲字符和FC接收器就绪字符,除非它被设置为旁路(by pass)缓冲模式。通过切断到FIFO电路354的写使能信号333,移除FC空闲字符和FC接收器就绪字符。如ANSI X3.230 FC-1中所定义的,FC空闲顺序集用(K28.5 D21.4 D21.5 D21.5 D21.5)表示。如ANSI X3.230FC-1中所定义的,FC接收器就绪顺序集用(K28.5 D21.4 D10.2 D10.2)表示。FIFO写控制器336在数据流中插入空闲开始的标志,以便于远端出口FPGA用来确定从何处开始插入FC空闲字符。在18位数据流中的第9位或更低的控制位被用作空闲开始的标志。根据ANSI X3.230FC-1,由于控制字符只在高位字节中有效,所以该位通常总是等于0。因此,其可以用作空闲开始的标志。FIFO写控制器336向先进/先出缓冲器(FIFO)354传送106.25MHz时钟信号332和数据流330。所述FIFO写控制器336向本地出口FPGA 600传送流量控制和状态数据流3005。在优选实施例中,根据通过引用而包含于此的ANSI INCITS373-2003光纤通道标准说明书中定义,所述流量控制和状态数据流3005包括下列4种信号-本地信号丢失进入入口的丢失信号-恒定本地入口NOS(不可操作序列),在光纤通道链路上升前最初发送出去的消息-接收到本地FC接收机就绪-接收到本地入口链路复位原语(primitive)在优选实施例中,流量控制和状态数据流3005也包括下列信号-接收的本地分组指示在入口侧已经收到的帧-本地入口坏同步通过SER/DES来自SAN的信号错误-本地入口速率指定1gig或2gig光纤标准输入-本地出口速率指定1gig或2gig光纤标准输出-增加本地入口接收块计数器发送到远端的字节数-自动检测的本地客户缓冲器至缓冲器额度在本地SAN中可用的缓冲器流量控制和状态数据流3005与图10中信号1014和1064相似。
时钟除法器320把FEC时钟的622.08MHz时钟信号262转换成155.52MHz时钟信号263输入到FIFO 354。
优选地,FIFO 354是1024×18(18位宽,1024深)的双端口,双时钟域FIFO。FIFO 354用来把多个较低速的数据流同步为单个高速数据流。FIFO 354把调整后的快速数据信号334输出到多路复用器(mux)370。调整后的快速数据信号334通过输出时钟速率信号263的时钟除法器电路320与更快速的线路时钟速率信号263同步。FIFO354以18位的最大速率106.25MHz或者1.9125M位/秒被写入。FIFO354以18位的最大速率155.52MHz或2.239488M位/秒的80%被读取。至少每5个时钟,FIFO读取就会被跳过,以便于允许桶式多路复用器(barrel mux)910把20位数据378转换成16位数据386。偶尔,会跳过更多的FIFO读取,以便于调整入口定时,进而防止FIFO下溢。
速率匹配控制器356协调在帧之间添加流量控制/状态字以及调整入口电路的定时所需的处理。速率匹配控制器356计算调整定时所需的控制/状态字的数目,并将所述控制/状态字的数目传送到多路复用器370。还计算桶式多路复用器910所需的进度以便于通过控制信号384适当调整输出信号。当FIFO深度状态信号360指示FIFO深度变得小于最小阈值时,速率匹配控制器356添加控制/状态字。优选的最小阈值是整个FIFO深度的50%或(1024×0.25=512)。速率匹配控制器356通过多路复用器选择信号374,从流量控制/状态数据流361中选择流量控制/状态数据流378来添加流量控制/状态字。多路选择信号374也控制FIFO电路354的读取。
出口FPGA 600向流量控制/状态逻辑372传送流量控制/状态数据流3006。流量控制/状态逻辑372向多路复用器370传送流量控制/状态数据流361。多路复用器370根据添加空闲控制器356传送的多路复用器选择信号374,通过20位数据信号378向桶式多路复用器910传出18位数据信号334加2个控制位或者18位数据信号361加2个控制位。远端600出口FPGA的20位调整器608(在图6中示出)用附加的2个控制位调整数据流。
图8示出的管道线桶式轮询多路复用器910。管道线桶式轮询多路复用器910用于将20位数据流378转换为16位数据流386。组合的字信号378进入管道线桶式轮询多路复用器910,并且它是155.52MHz的20位宽。信号378进入寄存器905,该寄存器是如省略号所示的20位宽的寄存器。信号378还被分流到管道线桶式轮询多路复用器382的输入端。寄存器905使信号378延迟一个时钟周期(tick),生成延迟的信号379。管道线桶式轮询器382允许来自寄存器905的数据根据来自填充控制器356的偏移信号384以4位增量在时间上移位0到20位。一旦被移位,就通过多路复用器382发出所述数据。例如,如果偏移信号384是0,数据就被移4位并且多路复用器382将信号378中的19到4位传递给信号386。如果偏移信号384被设为1,数据就被移8位。多路复用器382就从寄存器905放出3到0位以及信号378中的19到8位给信号386。如果偏移信号384被设为2,数据就被移12位。多路复用器382就从寄存器905放出7到0位和信号378的19到12位给信号386。如果偏移信号384被设为3,数据就被移16位。多路复用器382就从寄存器905放出11到0位和信号378的19到16位给信号386。如果偏移信号384被设为4,就不会发生偏移。来自寄存器905的数据位15到0不用偏移就被传给信号386。
回到图3,填充信号386是16位×155.52MHz信号,由管道线桶式轮询多路复用器910传送到串行化器388。第二组信号222、230和238,第三组信号224、232和240,第四组信号226、234和242,沿着类似的路径通过并行和重复的装置集(如省略号所示)进行,以获得和从第一组信号产生的信号386类似的信号。第二组信号产生信号390。第三组信号产生信号392。第四组信号产生信号394。信号386和信号390、392以及394被传送到串行化器388。串行化器388把16×155.52 MHz信号386、390、392和394串行化成4个4×622.08MHz信号,产生16×622.08MHz复合信号396。通过在需要时添加流量控制/状态字,速率匹配控制器356确保全部数据流以共同时钟速率输出。复合信号396作为复合信号246出现在图2中,并且在图2中作为16位×622.08MHz信号被传送到FEC 248。
图2中的FEC 248在图7中作为FEC 800被更详细地示出,其功能将参照图7进行描述。FEC 800把复合信号246中的每个输出数据流分配给4个FEC通路802、804、806、和808中的一个进行传输。FEC800具有以622.08MHz时钟速率运行的16位SFI-4接口,以便与入口FPGA 244的输出端相匹配。FEC 800中的端口842-872充当16个独立的串行数据端口。把4个FEC通路802、804、806和808分配给GBE或者FC流246能够把任何格式的映射数据映射到传输通道的任何组合中,以便于不需嵌入通道识别的控制代码就能实现串行通信。FEC 800把复合信号246中的数据封装起来,将其映射到信号874-904,提供了25%开销的纠错码,这就提供了高于9dB的编码增益。FEC 800接收信号262并将其传出线路侧振荡器908以便其作为信号263被复制和传送到SerDes 254。必须明白,在本发明的操作中,可以指定多个时钟速率以供使用,但是在优选实施例中,必须保持需要25%比率的时钟速率。例如,复合信号246的时钟速率能够高达825MHz,并且信号262的时钟速率能够高达650MHz。根据系统需求,可以使用开销比率高达25%的多个FEC算法。
图5是图1中所示的出口模块140优选实施例的更详细的框图。图1的出口模块140在图5中被示为500。输入的信号548是处于聚集传输速率的1位宽12.44千兆位每秒的光信号。SerDes 542把复合信号548去串行化为16位FEC编码数据信号550,时钟速率777.6MHz,并将去串行化后的信号550传送到FEC 502。SerDes 542也恢复速率为777.6MHz的时钟信号545,并将其传送到FEC 502。FEC 502对去串行化后的信号550执行纠错,并恢复复合数据信号544和复合622.08MHz时钟信号546。复合时钟信号546处于入口模块的622.08MHz时钟速率,16数据位宽。复合数据信号544和复合时钟信号546相互同步并被传送到用于数据流和定时提取的出口FPGA 504。
参照图9示出并描述FEC 502的结构和功能。FEC 502把复合信号550中的数据流的每一个输出分配给4个FEC通路1002、1004、1006和1008中的一个进行解码。FEC 502具有以622.08MHz时钟速率运行的16位SFI-4接口,以便与SerDes 542的输出端相匹配。FEC 502中的端口1002、1004、1006和1008起到了16个独立的串行数据端口1010-1040的作用,其中每个端口1002、1004、1006和1008都转换成4个端口。FEC 502的16个独立的串行端口1010-1040从复合信号550中的封装数据中去掉纠错,将其映射到信号1074-1104,提取25%开销的纠错码,以便获得9分贝的编码增益。FEC 502接收777.6MHz时钟信号545,将其传过振荡器1108以便重新产生622.08MHz时钟信号546。
再次参考图5,出口FPGA 504对信号进行重新计时,并传输4个同步GFC/2GFC通道506、508、510和512给SerDes 522作为用于GFC/2GFC的10位宽(10b)106.25MHz计时信号。
SerDes 522串行化同步GFC/2GFC通道506、508、510和512,其中每个通道都是106.25MHz,并传送4个同步GFC/2GFC数据流524、526、528和530,其中所述数据流分别是用于GFC/2GFC的1位宽1.0625/2.125GHz,并含有与输给SFP 532的4个输入同步数据流105、110、115和120(图1)相同的数据。SFP 532把电同步GBE或FC数据流524、526、528和530转换为光输出同步GFC/2GFC数据流534、536、538和540。
如所描述的,出口FPGA 504从存储器591-594读取和写入。在优选实施例中,存储器被分成4个段591-594,用于图1的4个入口数据通道105、110、115和120,其中4个入口数据通道105、110、115和120从出口模块504分别作为图1中的146、150、155和160出来(在图5中示为534、536、538和540)。出口FPGA 504通过信号581、582、583和584写入存储器的4个通道。出口FPGA 504通过信号585-588从4个通道1-4存储器读。将描述一个通道的数据流动,其对于所有通道来说都是一样的。
图6是更详细地示出出口FPGA 504的优选实施例的框图。FPGA504在图6中示为600。去串行化器602把复合信号544从4×622.08MHz信号去串行化为16×155.52MHz的去串行化信号606。去串行化信号606从去串行化器602传送到20位调整器电路608。复合时钟信号546以622.08MHz运行,并被连至时钟管理器603,在此处被转换成155.52MHz时钟信号604。时钟信号604被连至去串行化器602、20位调整器电路608、流量控制/状态滤波器控制器6001、缓冲器写控制器6010、缓冲器读控制器、缓冲器地址控制器、6020 FIFO写控制逻辑6030和FIFO 612的写时钟。
图4是更详细地示出20位调整器电路608的优选实施例的框图。20位调整器电路608用于把16位数据606转换成20位数据6002。时钟信号604被分发到寄存器405、4000、4010。时钟信号被用作寄存器405、4000、4010的参考,以便于延迟它们各自输入的信号。信号606输入20位调整器电路608,并且它是16位宽155.52MHz。信号606输入寄存器405,如省略号所示,它是16位宽。信号606也被分流到调整模式比较器415的输入端中。寄存器405把信号606延迟一个时钟周期,产生延迟信号410。信号410也被分流到调整模式比较器415的输入端。寄存器4000把信号410延迟一个时钟周期,产生延迟信号4001。信号4001也被分流到调整模式比较器415的输入端。寄存器4010把信号4001延迟一个时钟周期,产生延迟信号4011。信号4011也被分流到调整模式比较器415的输入端。20位调整器电路608允许4001和4010的组合32位数据流被多路复用器425多路复用为一个20位数据流6002。例如,当在信号4011的数据位3到0和信号4001的数据位15到8、信号410的数据位15到4以及信号606的数据位11到0上同时检测调整模式0xFFE时,重置偏移信号420。当偏移信号420等于0时,信号411 15-0和4001 15-12被传递给信号6002。当偏移信号420等于1时,信号411 11-0和4001 15-8被传递给信号6002。当偏移信号420等于2时,信号411 7-0和4001 15-4被传递给信号6002。当偏移信号420等于3时,信号411 3-0和4001 15-0被传递给信号6002。当偏移信号420等于4时,不变的填充值就被发送到信号6002,并且数据有效信号6004被置为无效。
除了在上述重置情形期间,每个时钟过后偏移信号420都会被增加。当偏移信号420小于4时,数据有效信号6004就会被置为激活。20位数据调整器608把数据有效信号6004传送到流量控制/状态滤波器逻辑6001。
返回图6,流量控制/状态滤波器逻辑6001从调整后的数据流6002中过滤远端流量控制和远端状态,并将其通过信号6003传送到添加FC空闲/FC接收器就绪逻辑624。当调整后的数据流6002的第20位等于1时,表示调整后的数据流6002的当前值是远端流量控制信息或远端状态信息。所述流量控制/状态滤波器逻辑6001通过切断输入到缓冲器写控制逻辑6010和FIFO写控制逻辑6030的数据有效信号6005,对远端流量控制和远端状态进行过滤。流量控制/状态滤波器逻辑6001去掉两个额外的调整位,将缓冲器数据流6011传送到缓冲器写控制逻辑6010和FIFO写控制逻辑6030,其中所述调整位在图3的入口FPGAFIFO写控制逻辑336被插入。
缓冲器写控制逻辑6010计算写地址6014,并将其传送到缓冲器地址控制6050以及缓冲器读控制6020。写地址从0开始,每写一次后就增加1。缓冲器写控制逻辑6010把18位宽SDR 155.52MHz输入数据流6011转换成9位宽DDR 155.52MHz数据流6012。缓冲器写控制逻辑6010把数据流6012传送到外部缓冲存储器6060。输入数据有效信号6005作为缓冲器写控制信号6013被传输到外部缓冲存储器6060。缓冲器写控制逻辑6010通过监视输入数据流6011的第9位,检测写入到缓冲存储器6060的空闲开始标志,并将输入的空闲开始标志信号6015传送到缓冲器读控制逻辑6020。输入数据6011的第9位设为1,激活的数据有效信号表示输入空闲开始的出现。缓冲器写控制逻辑6010把缓冲器时钟信号6016传送到外部缓冲存储器6060。
缓冲器读控制逻辑6020计算读地址6023并将其传送到缓冲器地址控制逻辑6050。读地址从0开始,每读一次就增加1。缓冲器读控制逻辑6020把9位宽155.52MHz DDR输入数据流6021转换成18位宽155.52MHz SDR输出数据流6031。数据流6031被传送到FIFO写控制逻辑6030。缓冲器读控制逻辑产生数据有效信号6035给速率调整逻辑6030。缓冲器读控制逻辑6020通过监视缓冲存储器6060中的可用缓冲器额度、缓冲器深度和当前的空闲开始标志数目来控制缓冲器读。通过来自添加FC空闲/接收器就绪逻辑624的缓冲器额度信号6026,接收最初可用的缓冲器到缓冲器额度。每次帧顺序集的FC起点被从缓冲存储器6060读出,并在数据流6021上被检测到,剩余缓冲器到缓冲器额度计数就被加1。帧顺序集的FC起点,用(K28.5 D21.5根据ANSI X3.230 FC-1中所定义的类别的2个字节)表示。每次通过来自添加FC空闲/接收器就绪逻辑624的本地FC接收器就绪信号6025检测到本地FC接收器就绪,就将可用的缓冲器到缓冲器额度减1。当当前缓冲器到缓冲器剩余额度大于可用额度时,就禁止启动缓冲器读。在优选实施例中,有2种情况,当有至少一个可用的缓冲器到缓冲器额度时就会启动一系列缓冲器读。第一种是当缓冲器深度被计算为大于1024时。第二种是当缓冲存储器6060中的当前空闲开始标志的数目大于0时。通过比较当前的读和写地址计算缓冲器深度。当设置来自缓冲器写控制逻辑6010的输入的空闲开始标志信号6015时,当前的空闲开始标志计数器增加1。每次从外部缓冲存储器6060读出并在数据流6021上检测到空闲开始标志时,当前的空闲开始标志计数器就减1。一旦开始一系列的缓冲器读,就会持续到3种事件中的一种发生。来自FIFO 612的FIFO深度数据流6034信号表示FIFO已经满了,从缓冲存储器6060读出空闲开始标志,或者缓冲器深度等于0。缓冲器读控制逻辑6020通过缓冲器读使能信号6024启动缓冲存储器读。缓冲器读控制逻辑6020把读缓冲器数据流6031和读缓冲器数据有效信号6035传送到FIFO写控制逻辑6030。
缓冲器地址逻辑6050从缓冲器写逻辑6010获得写地址流6014。缓冲器地址逻辑6050从缓冲器读逻辑6020获得读地址流6023。缓冲器地址逻辑6050把2个输入22位宽155.52MHz SDR地址总线转换成一个22位宽155.52MHz DDR地址总线6051。缓冲器地址逻辑6050把组合的缓冲器地址信号6051传送到外部缓冲存储器6060。在优选实施例中,外部缓冲存储器6060将利用缓冲器时钟信号6016的上升沿作为缓冲器读地址中的时钟,并且外部缓冲存储器6060将利用缓冲器时钟信号6016的下降沿作为缓冲器地址中的时钟。
FIFO写控制逻辑6030将在非缓冲数据流6011和相关的数据有效信号6005以及缓冲数据流6031和相关的数据有效信号6035之间进行选择,并通过输出数据流6032和写使能信号6033将其传送到FIFO612。在旁路缓冲模式中,非缓冲数据流和相关的数据有效信号6005被传输到FIFO 612。在正常操作中,缓冲数据流6031和相关的数据有效信号6035被传输到FIFO 612。FIFO写控制逻辑6030识别出原语序列。在优选实施例中,如果1024深18位宽FIFO 612的深度超过90%满,则FIFO写控制逻辑6030将移除原语序列中各个原语。FIFO深度信号6034就从FIFO 612获得。FIFO写控制逻辑6030将检测第9位上的空闲开始标志或者18位缓冲数据流6032的较低控制位,并通过空闲开始信号6045将其传送到添加FC空闲/FC接收器就绪逻辑624。
优选地,FIFO 612是1024深18位宽双端口,双时钟域FIFO。FIFO612把调整后的慢读数据信号638输出到多路复用器(mux)634。调整后的慢读数据信号638被同步至更慢的线路时钟106.25MHz速率信号680。FIFO 612写操作被同步至155.52MHz时钟604。由于读操作比写操作更慢,因此需要一种防止FIFO溢出的方法。FIFO写控制逻辑6030在FIFO 612开始填充时通过移除原语序列中的各个原语来防止FIFO 612溢出。这在ANSI INCITS 373-2003第7.3节中描述的FC链路恢复处理期间或在旁路缓冲器模式激活时可能是必须的。在优选实施例中,通过在FIFO 612深度超过90%满时暂停缓冲器读从而暂停FIFO写,缓冲器读控制逻辑6020将防止FIFO 612溢出。
添加FC空闲/FC接收器就绪逻辑624把FIFO读信号6044传送到FIFO 612,以便于控制FIFO读。通过经由信号6034监视FIFO 612的深度状态、来自FIFO写控制6030的输入空闲开始信号6045、经由第9位或者18位FIFO数据流638上较低控制位来自FIFO 612的输出空闲开始信号、当前用户可用缓冲器到缓冲器额度以及当前远端可用缓冲器计数,来控制FIFO读。在优选实施例中,有2种情况将会启动一系列的FIFO读。第一种是当根据FIFO深度状态信号6034所指示,FIFO612超过85%满时。第二种是当FIFO 612中的当前空闲开始标志的数目大于0时。当设置来自FIFO写控制逻辑6030的输入空闲开始标志信号6045时,当前的空闲开始标志计数器就加1。每次从FIFO读出和在数据流638上检测空闲开始标志时,当前的空闲开始标志计数器就减1。一旦开始一系列的FIFO读,它们就会持续到空闲开始标志在FIFO数据流638上被从FIFO 612读出。当FIFO 612被读取时,添加FC空闲/FC接收器就绪逻辑624就选择FIFO数据流638,并通过多路复用器634将其传给数据流6041。当FIFO 612没有被读取时,添加FC空闲/FC接收器就绪逻辑624就选择FC空闲模式6042给数据流6041。如果有多于0个当前挂起输出接收器就绪,同时FC空闲模式6042是当前所选中的并且估计的远端可用缓冲器空间大于图2的本地入口数据流202所需的最大潜在缓冲器空间,那么添加FC空闲/FC接收器就绪逻辑624就通过多路复用器634选择FC接收器就绪模式6043。添加FC空闲/FC接收器就绪逻辑624传送多路复用器选择信号625以便于控制多路复用器634的输出。当通过来自入口FPGA 300的流量控制/状态数据流3005设置本地入口接收分组标志时,当前挂起接收器就绪计数被加1。添加FC空闲/FC接收器就绪逻辑624无论何时通过多路复用器634选择FC接收器就绪模式6043,当前挂起接收器就绪计数都会减1。在图10流量控制描述部分描述计算远端可用缓冲器空间的方法。图2的本地入口数据流202所需的最大缓冲器空间用下列算法计算所需最大缓冲器字节=以字节为单位的最大分组长度*远端缓冲器到缓冲器额度。添加FC空闲/FC接收器就绪逻辑把本地接收器就绪信号6025和本地自动检测缓冲器到缓冲器额度信号6026传输到缓冲器读控制逻辑6020。添加FC空闲/FC接收器就绪逻辑624经由要被传输到远端出口FPGA的数据流3006把流量控制和状态数据流传送到入口FPGA 300。在优选实施例中,流量控制和状态数据流3006包括下列信号本地信号丢失、恒定本地入口NOS、本地入口坏同步、本地入口速率、FLOW_CONTROL.BufferSize或者以字节为单位的本地出口缓冲器大小,FLOW_CONTROL.BB_Credit或者自动检测的本地客户缓冲器至缓冲器额度或者,以及FLOW_CONTROL.Transmitted或者传输至本地出口客户的出口块总数。优选地,块被定义为4320字节或(2×(最大FC帧尺寸+12字节内部开销))。流量控制和状态数据流3006与图10的信号1016和1062相似。
多路复用器电路634将根据从添加FC空闲/FC接收器就绪逻辑624获得的选择控制信号625的值,传递FIFO 612的18位输出数据流638或者FC空闲模式6042或者FC接收器就绪输出信号6043。多路复用器电路634把生成的多路复用数据流6041传送到外部SerDes输出接口逻辑6040。
SerDes接口逻辑把18位宽106.25MHz SDR数据流6041转换为用于2G FC的9位宽106.25MHz DDR或者用于1G FC数据流640的106.25MHz SDR。数据流640被发送到SerDes 522(图5)并与信号506相似。
如用省略号示出的,参照信号544描述的元件的结构和功能与产生发送给SerDes 522的信号1200、1202和1204的信号545、547和548完全相同。信号1200、1202和1204与信号507、508和509(图5)类似。
参考信号544描述的元件的结构和功能与产生发送给SerDes 522的信号1200、1202、1204、1206、1208和1210的信号545、547和548完全相同。信号1200、1202、1204、1206、1208和1210与信号508-513类似。
图10描绘了分开很远地理距离的两个存储区域网络SAN A 1005和SAN Z 1080。为了简化起见,只详细描述来自SAN A 1005到SAN Z1080的四个独立的10b编码GFC/2GFC数据流中的一个的流量控制。描述的例子是从图1的105到146的数据路径。用于其它数据流的流量控制也相同。回到图10,数据路径1006、1012、1042和1072代表AZ方向上的数据流量。数据路径1074、1044、1022和1008表示ZA方向上的数据流量。在下列图表中只描述AZ方向上的流量控制。然而,为了完全明白流量控制,必须示出利用AZ数据流和ZA数据流的AZ流量控制。ZA流量控制与AZ流量控制相同,只是方向相反。
本地入口1010和出口模块1020协同工作,以便于在AZ方向上执行SAN A 1005的光纤通道流量控制。入口模块1010将非侵入地监视来自SAN A 1005的如FC ANSI X3T11所定义的FC注册,以便于确定SAN A 1005的缓冲器到缓冲器额度。所检测到的缓冲器到缓冲器额度值将通过信号1014被传输到出口模块1020,并根据标准FC方法用于外部FC流量控制。出口模块只有在SAN A 1005中的可用缓冲器到缓冲器额度大于0时传送帧。检测到的缓冲器到缓冲器额度值也通过信号1012、传输系统1040和信号1042被传送到出口模块1060,以控制ZA方向上的数据流。出口模块1060利用检测到的缓冲器到缓冲器额度值来分配一部分SRAM 1030用于专用内部流量控制。出口模块1060只有在缓冲器SRAM 1030具有足够可用的字节时才发送FC接收器就绪,以便于保持缓冲器到缓冲器额度的数目,由此控制从SAN Z1080进入到入口模块1070的ZA数据流1074。在由于加电、链路RESET协议或其它动作重启任何接口后,光纤通道入口1010和出口1060模块进入初始化程序。
表2示出了初始化。出口1020模块等待经由入口模块1070来自出口模块1060的流量控制消息。来自出口模块1060输入到出口模块1020的初始流量控制消息(称作FLOW_CONTROL Message)以字节为单位包含可用于在网络远端的SRAM 1050存储的缓冲器空间。这种估计由名为FAR_END_AVAILABE的变量定义。所述FLOW_CONTROL Message在用于AZ方向的出口1060和出口模块1020(1020和1060用于ZA方向)之间持续发送,并且保存最后收到的消息。

表2.近端FC端口初始化在表3中示出了出口模块1060的初始化过程。出口模块1060在变量FLOW_CONTROL_Buffer_Size中以字节为单位记录在SRAM1050可用的缓冲器尺寸。此外,入口模块1070将通过监听数据1074上的用户注册命令,检测在接收SAN Z 1080处可用的缓冲器额度的数目。通过识别注册帧来监听用户注册,该注册帧能够通过用于SAN通信的由ANSI INCITS定义的唯一的值来监视帧标头和服务参数块。所述值通过信号1064被传送到出口模块1060。出口模块将把所述值记录为变量BB_credit。最初,变量FLOW_CONROL.Transmitted_Bytes被设为0。由于没有发送过帧并且没有收到应答,因而BB_Credit_Count被设为0。

表3.出口模块初始化如表4所示,出口模块1020识别远端SRAM 1050缓冲器可用性状态作为从SAN A 1005收到的光纤通道帧的函数。从SAN A 1005输入终端A的入口模块1010的数据1006经由信号1012、传输系统1040和信号1042被传送到出口模块1060。终端A的入口模块1010,指示经由信号1014发送到出口模块1020的数据的字节数目。变量FAR_END_AVAILABLE数被减少所发出的字节数。

表4.本地出口模块1020响应于从SAN A 1005接收的数据帧跟踪远端SRAM 1050中的缓冲器可用性状态出口模块1020把SRAM 1050的可用性作为传送给SAN Z 1080的字节数的函数来更新。如表5所示,经由来自出口模块1060的FLOW_CONTROL消息接收所述信息。来自出口模块1060的FLOW_CONTROL消息经由信号1062到达入口模块1070。入口模块1070在ZA数据1074中插入FLOW_CONTROL消息,并将其经由1044发送到传输系统1040。所述消息经由信号1022到达出口模块1022。如果存储器可用性有变化,就利用该变化增加SRAM 1050的附加字节可用数目。根据传送到出口1060的字节数和从出口1060传送到SAN Z1080的字节数跟踪SRAM 1050的可用性。只要在远端有足够可用的缓冲器防止数据溢出,出口模块1020就允许SAN A 1005经由信号1006发送数据。该方法保证了远端缓冲器不会溢出。

表5.本地出口模块1020根据发送到SAN Z 1080的数据跟踪SRAM 1050中的缓冲器可用性SAN A 1005和入口模块1010之间的接口依照光纤通道标准协议。只要在系统的远端SRAM 1050内有足够的空间,出口模块1020就经由信号1008启用给SAN A 1005的R_RDY应答信号。当远端缓冲器不可用时,经由信号1008到SAN A 1005的R_RDY流量被停止,由此停止经由1006进入入口模块1010的业务。
出口模块1060经由信号1042经过传输系统1040从入口模块1010接收数据,并如表6所示经由信号1052将其存储在SRAM 1050中。出口模块1020根据收到的字节数目(在变量FLOW_CONTROL_available中),降低存储器的可用性。

表6.出口模块1060在SRAM 1050中跟踪缓冲器可用计数如表7中所示出的,出口模块1060经由信号1072与SAN Z 1080执行标准光纤通道协议,以便于把数据帧传送到SAN Z 1080。出口模块1060根据在初始化时记录在变量BB_credit_count中的缓冲器可用额度数目,向SAN Z 1080发送数据。所述计数定义了可发送至SAN Z而不会溢出其缓冲器的分组的数目。在收到初始计数之后,当从出口模块1060向SAN Z 1080传送分组时,所述数目就会被减少。当SAN Z1080经由信号1074通过入口模块1070和信号1064发送的R_RDY信号应答接收了分组时,额度计数就会被增加。该方法依照标准光纤通道协议,使出口模块1060持续跟踪SAN Z 1080中的缓冲器可用性,并且只在缓冲器可用时发送分组。只要缓冲器可用性(BB_credit_count)没有为0,数据就会继续从出口1060向SAN Z 1080流动。如果额度计数变为0,通过1042到达的输入数据帧就会开始填满SRAM 1050,并降低存储器的可用性。如之前描述的,当存储器可用性变为0时,输入到出口模块1020的流量控制消息发起暂停业务的反向压力。这就确保了SRAM 1050不会溢出。

表7.出口模块1060与SAN Z 1080之间执行光纤通道流量控制由于SAN A 1005和SAN Z 1080之间的传输延迟,SRAM 1050是必需的。SAN A 1005和终端A 1000可以相距最多100km。类似地,SAN Z 1080和终端Z也可以相距最多100km。两个终端可以相距3000km以上。因此,终端A到终端Z之间的数据流通过传输系统1040时都要延迟。从传输系统1040收到的信号1042相对于发送信号1012被延迟。所述延迟在光纤中大约每公里4.85微秒,并取决于2个终端之间的地理距离。类似地,从出口1060到入口1010的流量控制消息受到同样的延迟。为了使吞吐量最大以防止业务中断,缓冲存储器必须能够存储相当于传输系统往返时间的数据。因此,SRAM 1050的尺寸必须随着终端A和Z之间的地理距离的增加而增加。在优选实施例中,使用超过3000km的地理距离,并且所述距离可扩展到6000km。
SRAM 1050的尺寸确定在不降低SAN A 1005和SAN Z 1080之间的吞吐量的情况下的最大的地理距离。存储在SRAM 1050中的数据是1.7Gbps的8b编码数据速率加控制字符。在优选实施例中,为每个光纤通信端口分配可扩展到16MB的8MB的SRAM。在优选实施例中,有4个光纤通道端口和4个这种存储器体。下面示出了每个存储器体的距离的计算过程。
存储器=每光纤通道端口(图1的105、110、115、120)8MB或者6.711e7位数据速率=8b编码时1.7Gbps(10b编码时2.125Gbps)最大等待时间=存储器中的#位/8b编码位速率=39.476毫秒每公里的往返时间=每公里.01毫秒最大距离=等待时间/每公里的往返时间=3948km如所示,两个终端之间可以是大约3948km的距离。如果利用16MB版本的SRAM,则所述距离加倍,大约为7896km。
所述存储器体系结构为,SRAM 1050能被分为可以被单独寻址或作为整体寻址的4个体。支持之前描述的所有数据格式。例如,如表8中所示的,对于10GFC,存储器能够被组合为整体,并且最大距离是2552km,可扩展到5104km。该表示出了如何根据聚集哪个光纤通道标准分配存储器。

表8用来映射光纤通道数据的动态存储器分配另外一个设计特点是,它包括内置式延迟机制,其使在SAN之间(图10中的SAN A 1005和SAN Z 1080)用户可编程延迟。由于必须优化运行在光纤通道之上的应用,以便于解决传输中的延迟问题,该特点尤为重要。在传输设备中包括延迟的特点使用户不需额外的设备就能够优化其应用。
参照图5,在优选实施例中,通道2 SRAM 592具备用于通道1数据离开端口1(506和507)的延迟功能。通道1到4的复合数据544输入出口模块504,并被分为4个独立的通道。通道1的数据接着被经由582发送到通道2的SRAM 592。所述SRAM在4MB(4194304个地址)作为位16位宽地址寻址。数据从地址0开始连续写入地址4194304并转回(roll over back)地址0。从地址0开始在每个用户可编程延迟之后的时间读数据。写和读操作之间的时间偏移产生了延迟。所述延迟数据586被读入出口FPGA 504并被施加之前定义的常规流量控制操作。在该操作期间,Ch 1 SRAM根据之前定义被使用,以为流控制提供缓冲。类似地,通道4SRAM 594为通道3的数据离开端口3(508和509)提供延迟。
延迟量根据写和读操作之间的时间偏移计算。SRAM被配置为FIFO(先进现出)并且数据以155.52MHz的速率进行存储。因此,用于延迟的时间分辨率是6.43ns或1.286米。因此,总计可能的延迟是(4194304×6.43ns)26.969毫秒。单向传输时间大约为.005ms/km并且仿真的全部距离是5393.8km。计数器被用来以155.52MHz时钟建立用户可编程延迟。因此以6.43ns的增量编程该延迟。这就使得延迟的值以1.286米的增量介于0和5393.8km之间。
虽然参照一个或多个优选实施例描述了本发明,但是所述描述并不是用于限制的。例如所述方法和设备还能用来聚集并且透明地传输多种格式,并不局限于千兆以太网、光纤通道和FICON格式。对所公开实施例的修改以及本发明实施例的替换,对于本领域普通技术人员来说都是显而易见的,应该只根据下列权利要求所限定的来看待本发明。
权利要求
1.一种系统,用于聚集并传输基于分组的数据,包括存储区域网络,其中多个基于分组的数据流被发送;至少一个入口流模块,其中多个基于分组的数据流被接收并被处理成复合的基于分组的数据流;至少一个上游处理器,在功能上连接至入口流模块;传输装置,用来传输从入口流模块接收到的复合的基于分组的数据流;至少一个出口流模块,其中复合的基于分组的数据流被接收并被处理成多个基于分组的数据流;至少一个下游处理器,在功能上连接至出口流模块,用于读取用户数据;以及存储区域网络,其中多个基于分组的数据流被接收。
全文摘要
本发明提供了一种设备和方法,用来以本地模式聚集各个光纤通道数据流,并扩展光纤通道存储区域网络的连通性,所述光纤通道存储区域网络在具有前向纠错功能的高速数据通道上跨越很长地理距离。
文档编号H04L12/56GK101057458SQ200580038208
公开日2007年10月17日 申请日期2005年9月7日 优先权日2004年9月8日
发明者萨米尔·萨蒂什·塞特, 布赖恩·罗亚尔, 理查德·托马斯·休伊, 杰弗里·劳埃德·考克斯, 汤姆·摩尔, 凯利·霍金斯 申请人:皮沃塔尔决策股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1