接收帧的方法和专用帧缓冲器的制作方法

文档序号:6415896阅读:323来源:国知局
专利名称:接收帧的方法和专用帧缓冲器的制作方法
技术领域
本发明涉及海量存储装置领域。本发明尤其涉及一种改进的具有用来接收帧的专用帧缓冲器的光纤-信道仲裁环路(“FC-AL”)装置和方法。
背景技术
任何一种计算机系统的一个主要元件是存储数据的装置。计算机系统可以有许多种不同的可以存储数据的装置。在计算机系统中存储大量数据的一个公共地方是在磁盘驱动器。磁盘驱动器的最基本的部件是旋转的磁盘,它是将传感器移动到各个区域的致动器;以及在磁盘上写和读数据的电路。磁盘驱动器还包括对数据进行编码从而能够成功地在磁盘表面上检索和写数据的电路。除了将数据送回请求的计算机以及从请求计算机把数据在磁盘上进行存储以外,微处理器控制着磁盘驱动器的大多数操作。
用来在磁盘驱动器和其余的计算机系统部分之间传送数据的接口通常是一个总线或信道,如“小型计算机系统接口”(简称为“SCSI”),或光纤信道。这些接口的某些方面通常是标准化的,使得从不同厂家得到的各种装置是可以互换的,并且它们都可以与一个公共接口相连。这些标准通常由一个组织的某一标准委员会如美国国家标准协会(American National StandardsInstitute,简称“ANSI”)来规定。
在各个存储装置和各个计算机之间交换数据的一种标准化接口是光纤信道。在某些实施例中,光纤信道标准包括仲裁环路(将在后文中描述)。在某些实施例中,光纤信道标准支持类似于SCSI的协议控制数据传送。
光纤信道与“小型计算机标准接口”(简称为“SCSI”)设计相比,具有显著的优点。与传统的SCSI设计的每秒2与20兆字节之间相比,光纤信道具有明显高得多的带宽,目前可以达到每秒约106个兆字节。与典型SCSI环境中最大7个或15个装置相比,光纤信道具有更大的连接性,可以连接多达126个装置(包括主机)。光纤信道上可以附上一个单连接器,并且无需交换机(switch)。与SCSI环境下最大总长度达25米的情况相比,采用同轴导体的光纤信道可以在装置间达30米的距离下工作,而对于整个信道,采用光纤可以达10公里。在SCSI环境下,数据传输中的误差是通过一致性(parity)来检测的,而在光纤信道中,误差是通过不一致性和循环冗余码检验(“CRC检验”)信息来标识的。更详细的情况可参见标题为“在多端口设计中采用CRC发生器的CRC检验(CRC Checking Using a CRC Generator in a Multi-port Design)”的美国专利5,802,080,以及标题为“16B/20B编码器(16B/20B Encoder)”的美国专利5,663,724,这两项专利的发明人与本发明的发明人相同,均为Westby,都已转让给本受让人Seagate Technology,Inc.。
光纤信道仲裁环路(“FC-AL”)是一个工业标准系统,它采用按字节DC平衡(0,4)的、运行长度限制为8B/10B的分块传输码方案。FC-AL在106.25MHz的时钟频率下工作。一种形式的8B/10B编码器/译码器见发明人为Franaszek等人、授权日为1984年12月4日、标题为“按字节DC平衡的(0,4)8B/10B的分块传输码(Byte Oriented DC Balanced(0,4)8B/10B Partitioned BlockTransmission Code)”的美国专利4,486,739。
光纤信道仲裁环路(“FC-AL”)使得可以将多个装置连接起来。每一个装置称为一个“节点”。一个节点可以是计算机系统的任意一种装置(计算机、工作站、打印机、磁盘驱动器、扫描仪等),它们具有可以与光纤信道“拓扑结构”(其定义见下文)相连的接口。每一个节点至少具有一个端口,称为一个NL端口(“节点-环路端口”),用以与其他节点连接。将两个或更多个端口连接起来的元件统称为一个“拓扑结构”或一个“环路”。每一个节点与所给出的拓扑结构或环路中的所有其他节点进行通信。
端口是以光纤信道节点形式出现的连接点,当然,数据也可以跨越光纤信道传送到其他节点的端口(外部世界)。典型的光纤信道驱动器有两个在驱动器的节点内封装在一起(packaged)的端口。每一个端口包括一对“光纤”-一根光纤将信息送入端口,而另一根光纤将信息从端口中送出。每一根“光纤”是一个串行数据连接,并且在一种实施例中,每一根光纤实际上是一根同轴导线(例如,当节点相互靠近时所采用的同轴铜导线);在另一种实施例中,光纤至少相距一定距离(例如,当节点相隔相当的距离的时候,如不同房间尤其是不同建筑物内的节点)。与每一端口相连的光纤对(一根将数据送入端口,另一根将数据从端口送出)称为“链路”,是每一拓扑结构的一部分。链路携带有节点之间的“帧”中组合在一起(packaged)的信息或信号。每一链路能处理多种类型的帧(例如,初始化、数据和控制帧)。
由于每一根光纤仅沿一个方向传送数据,所以节点沿一个环路相互连接起来。其中,当节点具有要传送的数据时,必须仲裁环路控制。“仲裁”是一个协调决定以判断哪一个决定具有环路控制的过程。光纤信道仲裁环路在没有集线器(hub)或交换机(switch)的环路中附上多个节点。节点端口采用仲裁操作建立起点对点数据传输电路。FC-AL是一个分布式拓扑结构,其中的每一个端口至少包括用以建立电路所必须的最小值。仲裁环路拓扑结构用来在两个和126个节点端口之间将任意数量的节点连接起来。
在某些实施例中,每一节点包括两个端口(每一个端口都与一个单独的环路相连),从而具有冗余性,使得啊一个环路出故障时,另一根环路能够肩负起环路的责任。双端口还使得两个主机(例如两个主计算机)能够共享一个驱动器。
在典型的第一、第二代FC-AL驱动器中,两个端口共享帧确认和帧产生逻辑。这就是说,如果一个端口正接收或发送一个帧,另一个帧为忙(因为它不能同时使用帧确认和帧产生逻辑),并且该另一个帧就被迫使拒绝其主总线适配器发送帧的许可。某些主总线适配器会必须连续地进行仲裁,并不断地发送帧,直到主端口闭合为止。并且,驱动器一次只能在一个端口上进行发射。在某些情况下,必须暂停在一个给定端口上的输出数据传送,以便在另一个(交替)端口上发送应答或进行环路初始化。CRC背景大多数数据传输采用误差检验,根据传输的标题和有效载荷数据,检验错码,以验证接收的标题和有效载荷数据的完整性。一种这样的检错方案采用循环冗余码(“CRC”)信息。采用CRC检错的典型电路将包括检验接收的数据字的完整性的CRC检测器,和产生用于传送的数字字的CRC信息的CRC发生器。在多端口设计中,CRC检测器和CRC发生器必须是每一端口所具有的,用以处理每一接收的数字字的确认,以及产生传送的每一数字字的CRC信息。在许多应用中,电路或环路接口模块一次仅在一个端口上进行发送。例如,通过多端口模块与计算机网进行通信的磁盘驱动器子系统在任一给定的时间内,仅通过一个端口,进行准备和发送数据。然而,在一给定的时间内,环路-接口模块会尝试通过多个端口接收数据。
通过多个端口接收数据的方法简单是为了在一个端口已经在接收数据时禁止通过其他的端口接收数据。这种方法使得在几个端口之间能够共享公共资源,如CRC检测器或帧-确认逻辑。接收数据的第一个端口独占公共资源而不让其他端口占用,并且禁止其他的端口接收数据。所以,输入数据是不能在其他的端口上接收的,并且其他的端口被限制在数据传输功能。这种方法的结果是其他端口接收“忙”状态响应请求发送数据,并且需要重复该过程,反反覆覆地请求数据传输,直到第一端口完成它所执行的操作和释放(free-up)公共资源。环路初始化背景在多个环路网络中,必须在检测到差错状态以后,以及在将环路接口模块连接到信道内时,或者在使光纤信道通电时,使环路初始化。初始化通常是通过将环路初始化数据传送到环路上来完成的。但是,如果与环路相连的环路接口模块已经在通过与另一个环路相连的端口接收数据,那么,该环路接口模块就不能接收环路初始化数据了。通常在这种情况下,数据的传送中断,并允许首先进行环路初始化。而在另一些情况下,环路初始化程序将中断,而进入连续的再试模式,直到其他(双环路节点)环路完成接收数据。另外,如果环路接口一次只能在一个环路上进行接收,则模块就不能在一个信道上出现环路初始化的时候通过另一个端口接收数据。
因计算机网的各个装置之间的数据传输而使光纤链路受到了人们广泛的注意。在更高的带宽、更大的可连接能力(connectability)、更容易的模块安装能力、更大的传输距离以及其他一些因素方面,与小型计算机系统接口(“SCSI”)总线相比,光纤信道具有显著的优点。例如,典型的SCSI总线能够处理多达15个模块,总距离达约25米,而光纤信道能够处理多达126个模块,采用电传输时模块之间的距离约30米,而采用光传输时模块之间的距离达约10公里。所以,为了实现如每秒兆兆字节峰值的数据传送速率,需要有70个SCSI总线,但只需要约10个光纤信道。重要的是尽早地使信道进入操作(即初始化)状态,以减小其他信道上所承受的数据业务的负担。
所以,需要一种安排,使得多端口环路接口模块能够同时在多个信道上接收数据帧和非数据帧,或者在一个信道上接收数据的时候,在另一个信道上发送帧,或者在多个信道上同时发送初始化帧和应答帧。对于片内缓冲器上存储的数据,还需要更好的并且是提高了的数据检查能力。
发明概述一种接收帧的方法和专用的帧缓冲器。在仲裁环路光纤信道设计中,为二端口节点的每一个端口提供接收非数据帧的专用接收缓冲器。在一种实施例中,本发明提供了一种通信信道系统,它包括具有第一端口和第二端口的第一信道节点。每一个端口位于该信道节点内,并且每一个端口支持一个光纤-信道仲裁-环路通信信道。系统还包括一个位于该信道节点内用来从该信道接收帧的专用片内帧缓冲器。
在一种实施例中,专用片内帧缓冲器包括作为元件的与第一端口耦合用来从第一端口接收入站非数据帧的第一入站非数据缓冲器,和与第二端口耦合用来从第二端口接收入站非数据帧的第二入站非数据缓冲器。一种这样的实施例还包括一个片外缓冲器,其中,接收的非数据帧首先被接收到第一入站非数据帧缓冲器内,随后从第一非数据帧缓冲器传送到片外缓冲器。
在另一种实施例中,专用片内帧缓冲器还包括作为元件的与第一端口和第二端口耦合用来从第一端口和第二端口接收入站数据帧的数据帧缓冲器。一种这样的实施例还包括一个片外缓冲器,它与数据帧缓冲器耦合用来接收从数据帧缓冲器传送而来的入站数据帧,以及将出站数据帧(来自磁盘表面而将传送到通信信道的数据帧)从片外缓冲器移送到数据帧缓冲器。
在另一种实施例中,作为元件的专用片内帧缓冲器包括与第一端口耦合用来从第一端口接收入站非数据帧的第一入站非数据缓冲器,和与第二端口耦合用来从第二端口接收入站非数据帧的第二入站非数据缓冲器,以及与第一端口耦合用来从第一端口接收入站数据帧的数据帧缓冲器。一种这样的实施例还包括一个片外缓冲器,它与数据帧缓冲器耦合,用来接收从数据帧缓冲器传送而来的入站数据帧,以及将出站数据帧(来自磁盘表面而要传送到一通信信道的数据帧)从片外缓冲器移送到数据帧缓冲器。
在某些实施例中,系统还包括与第一信道节点耦合的磁盘存储驱动器,以及具有第二信道节点的计算机系统,其中,第二信道节点与光纤信道环路中的第一信道节点耦合,以便通过光纤-信道仲裁-环路通信信道在第一、第二信道节点之间传送数据。
本发明的另一个方面提供了一种磁盘驱动器,它包括一个可旋转的磁盘、与旋转磁盘呈传感关系的传感器,以及具有第一、第二端口的第一信道节点,每一个端口支持光纤-信道仲裁-环路通信信道。第一信道节点与传感器耦合。磁盘驱动器还包括一个位于信道节点内用来从通信信道接收帧的专用片内帧缓冲器。在一种实施例中,作为元件,片内缓冲器包括与第一端口耦合用来从第一端口接收入站非数据帧的第一入站非数据缓冲器,以及与第二端口耦合用来从第二端口接收入站非数据帧的第二入站非数据缓冲器。在一种这样的实施例中,磁盘还包括一个片外缓冲器,其中,接收的非数据帧首先接收到第一入站非数据帧缓冲器中,随后从第一非数据帧缓冲器传送到片外缓冲器。
本发明的另一个方面提供了一种通信信道方法。该方法包括下述步骤(a)支持在第一信道节点的第一、第二端口中的每一个上的光纤-信道仲裁-环路通信信道;(b)在第一信道节点内构成一专用的帧缓冲器;(c)将数据帧和非数据帧接收到专用帧缓冲器中;以及(d)传送来自专用帧缓冲器的帧。
在该方法的一种实施例中,实施步骤(b)还包括下述步骤(b)(ⅰ)构筑一个与第一端口耦合的第一入站非数据缓冲器、与第二端口耦合的第二入站非数据缓冲器;并且接收步骤(c)还包括下述步骤(c)(ⅰ)将入站非数据帧从第一端口接收到第一入站非数据缓冲器中;以及(c)(ⅰ)将入站非数据帧从第二端口接收到第二入站非数据缓冲器中。一种该方法的实施例还包括步骤(e)构成一个与第一信道节点耦合的片外缓冲器;并且接收步骤(c)还包括步骤(c)(ⅲ)将接收的非数据帧从非数据帧缓冲器传送到片外缓冲器。
在另一种实施例中,实施步骤(b)还包括下述步骤(b)(ⅱ)构成与第一端口耦合的第一入站非数据缓冲器、与第二端口耦合的第二入站非数据缓冲器以及与第一、第二端口耦合的数据帧缓冲器;并且接收步骤(c)还包括下述步骤(c)(ⅳ)将入站数据帧从第一端口接收到数据帧缓冲器中。这样一种方法的一个实施例还包括下述步骤(f)构成一个与第一信道节点耦合的片外缓冲器;接收步骤(c)还包括步骤(c)(ⅴ),将接收的数据帧接收到数据帧缓冲器内,随后将接收的数据帧从数据帧缓冲器传送到片外缓冲器;并且传送步骤(d)还包括步骤(d)(ⅰ)移动要传送的数据帧到片外缓冲器(例如,来自磁盘表面),并且随后将要传送的数据帧从片外缓冲器移动到数据帧缓冲器。
在本发明方法的另一个实施例中,实施步骤(b)还包括步骤(b)(ⅲ)构成与第一端口耦合的第一入站非数据缓冲器、与第二端口耦合的第二入站非数据缓冲器,以及同时与第一端口和第二端口耦合的数据帧缓冲器,并且接收步骤(c)还包括步骤(c)(ⅵ)将入站非数据帧从第一端口接收到第一入站非数据缓冲器中;(c)(ⅶ)将入站非数据帧从第二端口接收到第二入站非数据缓冲器中;(c)(ⅷ)将入站非数据帧从第一端口接收到数据帧缓冲器中;以及(c)(ⅸ)将接收的数据帧接收到数据帧缓冲器中,并且随后将接收的数据帧从数据帧缓冲器传送到片外缓冲器中。这一方法的一个实施例还包括步骤(g)构成一个与第一信道节点耦合的片外缓冲器;并且传送步骤(d)还包括步骤(d)(ⅱ)将要传送的数据帧移动到片外缓冲器中(例如来自磁盘表面),并且随后将要传送的数据帧从片外缓冲器传送到数据帧缓冲器中。该方法的某些实施例还包括通过与第一信道节点耦合的磁盘存储驱动器与具有第二信道节点的计算机系统之间的光纤信道仲裁环路通信传送数据,其中,第二信道节点通过光纤信道仲裁环路通信信道与第一信道耦合。
本发明的另一个方面提供了一种改进的通信信道系统,它包括具有第一、第二端口的信道节点,每一端口支持一个光纤信道仲裁环路的通信信道,以及一个用来接收帧的专用缓冲器机构。
本发明通过将非数据帧接收到一个或多个专用的非数据缓冲器以及/或者将数据帧接收到一个专用的发送缓冲器中而使性能显著提高。在某些实施例中,即使在节点是在一条或两条出站光纤上同时发送非数据帧,也进行这样的接收。即,在一个端口的一条光纤上的接收最好是与在同一端口的另一条光纤上的发送同时进行的。
附图简述

图1是具有光纤信道节点接口的磁盘驱动器100的方框图。
图2是采用本发明的信息处理系统1200的方框图。
图3是光纤信道节点接口芯片110的方框图。
图4是光纤信道环路端口电路20的方框图。
图5是用来保持使环路开路的比较器逻辑电路30的方框6是光纤信道环路控制电路40的方框图。
图7是光纤信道接收路径电路50的方框图。
图8是光纤信道前(pre)缓冲器接收路径电路51的方框图。
图9是光纤信道接收帧非数据缓冲器电路53的方框图。
图10是光纤信道数据帧缓冲器电路55的方框图。
图11是光纤信道公共接收路径电路59的方框图。
图12是光纤信道传送控制电路60的方框图。
图13是光纤信道发送路径电路70的方框图。
图14是光纤信道发送帧缓冲器电路73的方框图。
图15是光纤信道数据发送路径电路80的方框图。
详细描述下面参照附图详细描述本发明的较佳实施例,并且附图是详细描述的一部分。通过详细描述,可以了解本发明的特定实施例。应当理解,也可以采用其他的实施例,在不偏离本发明的范围的情况下,也可以对结构作出变更。
本说明书中描述的本发明可以用于各种类型的磁盘驱动器,包括硬盘驱动器、ZIP驱动器、软盘驱动器、光盘驱动器、CDROM(“紧致只读存储器”)驱动器,以及任何一种类型的驱动器、驱动器系统(如,“冗余阵列的廉价/独立磁盘驱动器”或RAID,配置)或其他装置,这里,数据是在驱动器与其他装置或信息处理系统之间交换的。在某些实施例中,本发明可以用于非磁盘装置的节点接口,如集线器(hub)和交换机(例如用于将多个光纤信道环路相互连接起来)、工作站、打印机和以及其他连接在光纤信道仲裁环路上的装置或信息处理系统。
下面是四个描述本发明的相关部分Ⅰ.环路初始化和应答的专用帧缓冲器;Ⅱ.接收帧的专用帧缓冲器;Ⅲ.采用用于片内存储器中数据完整性的光纤信道CRC;以及Ⅳ.减小仲裁环路费用的方法和装置。第Ⅳ部分是主要涉及本发明的细节的部分;然而,其他部分提供涉及本发明全部环境的相关信息。
图1是具有光纤信道节点接口的磁盘驱动装置100的方框图。
参见图2和图1,光纤信道环路接口电路1220包括用于环路初始化和应答的专用发送帧缓冲器73。(“环路初始化”是通过传送由一个或多个专门的非数据帧组成的序列(以及监视对这些帧的响应)来初始化光纤信道环路。“响应”,是根据来自其他节点的命令或查询而发送的非数据帧。)光纤信道仲裁的环路通信信道1250(也称为环路1250或光纤信道环路1250)可以用来在磁盘存储装置100和计算机1202或其他的信息处理装置之间交换数据。在一个实施例中,光纤信道环路1250是一个串行的通信信道;而在其他一些实施例中,用两个或更多个并行线路(或“光纤”)来构成光纤信道环路1250。采用这样的专用发送帧缓冲器73,使得双端口节点1220的一个端口116可以发送初始化帧或应答帧,而另一个端口传送或接收数据帧。端口116是串行线,一条线路117是入站数据,而另一条线路118用于出站数据,线路117和118与通信信道环路1250相连或形成其一部分。专用接收缓冲器(53,53’和55)也提供双端口节点的每一端口116。(注意,带撇的数字标号(例如53’)的每一个方框具有与不带撇的相应方框(例如53)相同的功能,用于分立的环路端口或通信信道。)从光纤信道1250接收的循环冗余码信息与一个帧一起存储在一个帧缓冲器中或存储在多个缓冲器(53,53’或55)中的一个中,并且随后进行检查,以确保在帧缓冲器(53,53’或55)中数据的完整性。只要有足够的可编程数据量用于传输,就保持对环路1250的控制,以便减少对环路1250的控制进行的仲裁所花的时间。
在某些实施例中,磁盘驱动器100包括一个具有一个或多个磁盘母板134的磁盘存储磁头-磁盘组件(“HDA”)114、每一个磁盘母板具有的一个或多个磁性读/写传感器150,以及臂传动器组件126。传感器(或“磁头”)与HDA接口113之间的信号将数据传送到磁盘母板134或传送来自磁盘母板134的数据。所以,某些实施例的“磁盘驱动器”(例如图1中的磁盘驱动器1256)包括HDA114和HDA接口113(例如传统的SCSI驱动器),并且一个或多个这种传统磁盘驱动器1256与一个外部节点接口1220相连,以便如图1所示,与回路或光纤信道拓扑结构相连。在其他的实施例中,“磁盘驱动器”通常是图2中所示的磁盘驱动器100,并且包括一个节点接口1220,它与磁盘驱动器1256一起组装成一个完整的磁盘驱动器100。在一个实施例中,数据轮流从片外缓冲器111传送出来,并传送到片外缓冲器111。本发明提供了一种专用的片内缓冲器119,在所示的实施例中,它包括一个用于每一端口的接收非数据帧缓冲器53(也称为“入站非数据缓冲器53”)(即,缓冲器53和53’)、发送帧缓冲器73以及一个带有CRC检验器596的共享数据帧缓冲器55,而发送帧缓冲器73在一个实施例中可以由两个端口同时使用(在其他的实施例中,一次仅使用一个缓冲器的一个端口)(见图11)。在下文中更全面描述的一个实施例中,保留四十字的发送帧缓冲器73用于端口A,保留四十字用于端口B,从而同时可以使两个端口初始化。这样的一个实施例等效于有两个分开的四十字的发送帧缓冲器,每个端口一个,可以同时使用。在一种这样的实施例中,这些“字”中的每一个字是36位宽(32个数字位,4个奇偶位)。
将从光纤信道环路1250接收的带有数据帧的CRC有效性检验信息与数据一起存储在数据帧缓冲器55中,并且随后在从数据帧缓冲器55中读出时进行检验,从而在数据帧停留在数据帧缓冲器55中或者在先前数据帧的传送时的任何地方可能检验数据差错。与此类似,将从光纤信道环路1250接收的带有非数据帧的CRC有效性检验信息与数据一起存储到非数据帧缓冲器53(或53’)内,并且随后在从非数据帧缓冲器53(或53’)中读出数据时进行检验,从而在非数据帧停留在非数据帧缓冲器53(或53’)内或者在数据帧先前传播的任何一个地方可能检验数据差错。微处理器112可以是任何一种合适的高速处理器,并且用来帮助控制磁盘驱动器100中的整个数据传送、路由选择、信令、差错恢复等。如下文中所描述的那样,光纤信道接口芯片110提供了一种改进的帧缓冲器、差错检验和环路仲裁。
在一种实施例中,环路端口收发器方框115(即115和115’)包括使通过端口A和端口B至与其相连的光纤信道环路1250(见图2)的数据传送串行化和并行化的端口收发器。在某些实施例中,收发器115是以外部收发器的形式构成的;在其他的一些实施例中,这些收发器位于方框110中所示的片内上。在一些实施例中,右侧的接口(即相对于图1中所示的收发器115或115’的右侧)是10位宽的并行输入-输出信号;在其他的一些实施例中,它们有20位宽。方框110、111、112,端口A收发器115和端口B收发器115’一起形成光纤信道节点接口1220。在某些实施例中,端口收发器115和115’组装在一个芯片110内。在其他的实施例中,收发器115和115’包括它们的串行器(serializer)和并行化器(deserializer)功能是在与芯片110分开的电路上实现的。
在其他的实施例中,收发器115仅仅是串行环路1250和芯片110之间的接口,其中,串行化/并行化至10位宽或20位宽的数据是在片内上发生的。
图2是计算机系统1200的示意图。本发明特别适用于用在计算机系统1200中。计算机系统1200也可以成为是一个电子系统或一个信息处理系统,并且包括中央处理单元(“CPU”)、存储器和系统总线。计算机系统1200包括有一个检验中央处理单元1204的CPU信息处理系统1202、随机存取存储器(“RAM”)1232,以及与中央处理器单元1204和随机存取存储器1232耦合的系统总线1230。CPU信息处理系统1202包括光纤信道节点接口1220。一个或多个磁盘存储信息处理系统100到100’中的每一个包括一个或多个磁盘驱动器装置1256以及光纤信道节点接口1220。
在一些实施例中,多个磁盘驱动器1256与单个节点接口1220相连,例如,以RAID(廉价/独立磁盘驱动器的冗余阵列(redundant array ofinexpensive/independent disc drive))结构相连,使得装置100’是一种RAID阵列的磁盘驱动器。CPU信息处理系统1202也可以包括一个输入/输出接口电路1209,该电路驱动一个内部输入/输出总线1210和几个外围装置,如1212、1214和1216,这些装置是可以附加在输入/输出总线1210上的。外围装置可以包括硬盘驱动器、磁性-光学驱动器,软盘驱动器、监视器、键盘和其他这样的外围设备。任何一种磁盘驱动器或其他的外围装置可以采用这里所描述的光纤信道方法和装置(特别是如光纤信道节点接口1220的改进形式)。对于每一种装置,A端口和B端口可以用来与任一给定的环路1250相连。
一种实施例的系统1200最好包括一个第二CPU信息处理系统1202’(它与系统1202相同或相似),具有中央处理单元1204’(它与中央处理单元1204相同)、随机存取存储器(“RAM”)1232’(它与RAM1232相同),以及系统总线1230’(它与系统总线1230相同)用来耦合中央处理单元1204’和随机存取存储器1232’。CPU信息处理系统1202’包括其自己的光纤信道节点接口1220’(它与节点接口1220相同),但通过一个第二光纤信道环路1250’(与环路1250分开和独立)与一个或多个磁盘系统100相连(本例中,它与磁盘系统100’相连,但在其他的例子中,它与所有的装置或磁盘系统100至100’相连)。这种配套使得两个CPU系统1202和1202’用与每一个CPU系统1202的分开的光纤信道环路共享一个或多个磁盘系统100。在其他的一些实施例中,所有的装置100至100’,以及所有CPU系统1202至1202’与环路1250和1250’相连。
在一个实施例中,本发明不支持次序混乱的数据帧传递的。按照本发明的另一个实施例,光纤信道控制器还构成一种组织码字的数据帧用于传送和接收目的的协议,该协议见G.L.Rouse的美国专利5,260,933,其标题是“无序传递串行数据网的确认协议(ACKNOWLEDGMENT PROTOCOL FOR SERIAL DATA NETWORKWITH OUT-OF-ORDER DELIVERY)”。构筑本发明的一个实施例的光纤信道技术参数包括下面的ANSI标准光纤信道FC-PHX3T11/Project 755D/Rev.4.3物理和信令接口光纤信道FC-ALX3T11/Project 960D/Rev.4.5仲裁环路光纤信道FC-AL2 X3T11/Project 1133D/Rev.6.3仲裁环路S光纤信道FCP X3T10/Rec.012SCSI的协议 X3.269-199XⅠ.环路初始化和响应的专用帧缓冲器对于本发明的一个实施例,帧缓冲器已经加到了第三代特定用途的集成电路(“ASIC”)芯片(光纤信道接口芯片110)上,使得两个端口能够同时工作。还有两个接收非数据帧的缓冲器(图1中也称为“接收非数据帧的缓冲器”53和53’),使得可以在节点的两个端口处同时接收命令和FCP帧(光纤信道协议帧),(并且也容许全双工操作,即在一个端口的一条光纤上进行接收,而在同一端口的另一条光纤上进行传送)。这就使得磁盘驱动器100(见图2)能够在相同的端口上以及/或者在另一个端口上进行数据传送期间,在一个端口上接收新的命令(或其他的非数据帧),而不是在停顿或传送结束前等待。与传统方法相比较早得到命令,本发明使得可以在处理数据传送的之前,对命令进行分类和优化,从而提高了系统1200的性能。
发送帧缓冲器73(见图13的描述)使得能够在一个端口上进行应答帧的传送,并且同时在另一个端口上进行数据传送。这一发送帧缓冲器73还使得能够在一个端口上进行环路的初始化,而无需停顿或等待在另一个端口上完成传送。
在双端口光纤信道仲裁环路设计中,片内帧缓冲器可以用来管理入站和出站帧。可以采用几种方法来配置片内RAM,用以在性能和硅不动产之间取得平衡。本说明书详细描述了专用帧缓冲器119和单个帧发送路径70的使用,用来存储和发送光纤信道环路初始化帧和单个帧光纤信道应答。
在双端口设计中,一个端口可以接收数据或发送数据,并用大多数的ASIC资源来处理传送。会需要许多计算器和状态机来处理这种类型的多帧序列。
本发明中无需复制对每一个端口的设计或使数据传送停顿,需要采用有限个逻辑电路,来提供用于另一个端口的功能,使之接收和发送帧,当主端口(Drimary port)传送数据时。在本发明的一些实施例中,有一个专用的发送帧缓冲器73(如图13所示),它与单个帧发送路径电路70一起,具有当另一个端口传送数据时在一个端口上发送帧的能力。可以动态配置该逻辑电路,从而随便哪一个端口能够传送数据或采用发送帧缓冲器73。
当数据在主端口上传送而环路初始化在另一个端口上进行时,可以连续不中断地进行数据的传送。在将帧写入帧缓冲器(例如发送帧缓冲器73;见图13)前,确认接收的环路初始化帧(为非数据帧)。微处理器112写/读存取到发送帧缓冲器73,使之在被允许传送出去前,能够检查和修改接收的帧。帧的“标题”和“有效负荷”被存储在帧缓冲器中。(帧的“标题”包括如帧的源标识符、顺序计数和发方标识符。帧的“有效负荷”是要传送的数据的主体。)在微处理器112的控制下,单帧发送路径70(见图3)将帧汇集起来,并包括帧头和帧尾定义符,和产生帧循环冗余码(“CRC”)信息。
当在主端口上传送数据帧并且需要传送光纤信道协议(FCP)应答帧时,可以连续不中断地进行数据传送。参见图3,微处理器112将应答帧的标题和有效负荷放入发送帧缓冲器73。单帧发送电路70将帧汇集起来,并且包括帧头和帧尾定义符,和产生帧CRC信息。还具有一些附加的环路控制逻辑,用以打开环路1250用于进行帧传输。
参见图4,发送帧缓冲器73需要写指针和读指针(分别为733和734)。(尽管有时表示为“单帧发送帧缓冲器”或“发送帧缓冲器”,但缓冲器73通常是一个“发送帧缓冲器”,并且在其他的实施例中,缓冲器73包括用于一个端口或多个端口中的一个端口的一个或多个发送帧;这里,术语“发送帧缓冲器”用来包括所有这样的实施例。)单帧发送电路70(下面图13中有其详述)需要帧长度计数器71、发送帧状态机72、CRC发生器76和发送多路复用器(“mux”)74。光纤信道接口描述图3是光纤信道节点接口芯片110的方框图。本发明中的光纤信道节点接口逻辑电路110响应光纤信道协议,包括仲裁环路逻辑和帧形成逻辑。仅用由光纤信道协议(“FCP”)标准定义的SCSI上级协议,有一个实施例对用于3-级的SCSI结构是最佳的(见上述FC AL技术参数说明)。光纤信道节点接口逻辑电路110包括四个片内帧缓冲器(53,53’55和73),用以帮助双端口和全双工操作,以及支持各种缓冲器带宽。光纤信道节点接口逻辑电路110还与微处理器112相连,它使得微处理器112配置光纤信道接口逻辑110,用以读取有关光纤信道接口逻辑110的当前状态的状态信息。
光纤信道节点接口逻辑110包括两个环路端口电路20(一个电路用于端口A,而另一个用于端口B,每一个端口有一个数据入接口和一个数据出接口,用以支持环路通信)、环路控制电路40(也称为帧发送电路40)、接收路径逻辑电路50、传送控制逻辑电路60、单帧发送电路70、发送路径多路复用器(“mux”)79、数据帧发送路径逻辑电路80和微处理器接口90。这些方框支持这样一些功能,如接收帧处理、发送数据帧产生、单帧发送产生、传送控制和处理器连接。
微处理器接口电路90提供在光纤信道节点接口逻辑电路110中存取寄存器和计数器。(在描述“微处理器”时,应当理解该术语包括任何一种合适的可编程逻辑装置。)在光纤信道接口的应答前,接口寄存器由外部微处理器112初始化。输出传送通过该接口初始化,而接收的传送状态通过该接口实现。
图3的输入信号包括传递从光纤信道16输入到用于端口A的环路端口电路20的数据的A_IN 3021,和传递从光纤信道16输入到用于端口B的环路端口电路20的数据的B_IN 3022。DATA FROM OFF-CHIP BUFFER 3052(来自片外缓冲器3051的数据)将数据从片外缓冲器111传送到接收路径50。TO OFF-CHIPBUFFER(至片外缓冲器)3052将来自接收路径50的数据传送到片外缓冲器111。BUFFER STATUS(缓冲器状态)3061向传送控制器60提供状态。进入接口90的MPU ADDRESS(MPU地址)和MPU DATA(MPU数据)3095分别提供来自微处理器112的地址和数据。进入MPU接口90的READ_ENABLE(读允许)3092和WRITE_ENABLE(写允许)3093提供来自微处理器112的允许信号。MPU3076信号使得微处理器112能够访问发送帧缓冲器73。A_OUT(A_出)3023将数据从用于端口A的环路端口电路20传送到光纤信道16,而B_OUT(B_出)3024将数据从用于端口B的环路端口电路20传送到光纤信道16。环路端口电路20图4是光纤信道环路端口电路20的方框图。本发明的一个实施例的光纤信道设计包括两个相同的环路端口电路20,用以支持进行外围设备直接附装的双端口光纤信道接口。在一个实施例中,光纤信道环路端口电路20包括接收寄存器21、8B/10B译码器逻辑电路22、字同步状态机23、接收时钟损耗检测器24、同步损耗定时器25、仲裁环路逻辑电路26和8B/10B编码器27。
在一种实施例中,每一个环路端口电路20用一个10位数据接口与外收发器115相连(见图1)。在这样的一个实施例中,收发器115使往返于并行接口(例如,一个10位宽或20位宽的接口)的串行数据串行化或并行化。在其他的实施例中,将这些收发器115集成在芯片110内。(从光纤信道输入的)并行数据用来自每一个收发器115的接收器部分的接收时钟捕获,并且在用并行8B/10B译码器进行译码前转换成20位宽的格式。随后,在将16位数据加上两个k-字符(用来表示特定顺序的集合)放入仲裁环路逻辑电路26内以前,检查字的有效性。使仲裁环路逻辑电路26的输出与发射器时钟重新同步,并传送到接收帧逻辑电路或通过编码器27在环路1250上重新传送。在一个实施例中,编码器27在每一次运行期间将一个8位字符转换成一个10位字符;在另一些实施例中,在每一次运行中,将两个或更多个8位字符转换成相应个10位的字符。(见标题为“16B/20B编码器”的美国专利5,663,724)。仲裁环路逻辑电路26包括一个环路状态机、一个顺序集合的译码器以及弹性插入和删除功能。环路端口电路20实施如光纤信道仲裁环路ANSI标准(即,上述FC-AL和/或FC-AL2)中所定义的仲裁环路协议。
在一个实施例中,串行传送光纤信道数据,并由收发器115将该数据转换成10位并行数据。接收寄存器21用由收发器115的接收器部分产生的时钟,从收发器115处捕获该10位数据(A_IN 3021或B_IN 3022)。数据在通过8B/10B译码器22被传送之前,被直接转换成20位宽(即,两个10位字符宽)。尽管译码器22被称为是一个“8B/10B译码器”,但在一个实施例中,它在每一次的操作期间将一个10位的字符转换成一个8位的字符;在另一些实施例中,两个或更多个10位字符在每一次操作中被转换成相应个8位的字符。
8B/10B译码器逻辑电路22输入由接收寄存器21捕获的编码数据。两个10位字符被并行译码,以输出两个8位的字符。检查输入字符的运行不一致,并将误差状态传送到字同步状态机23以及仲裁环路逻辑26。在运行不一致误差后,在下一个有序集上迫使具有非运行不一致。还检查是否违反了编码规则,并将编码违反状态传送到字同步状态机23。
接收时钟丢失检测器24检测从收发机115得到的接收时钟是什么时候停止的。当检测到“接收时钟丢失”状态时,使字同步状态机23复位,并防止数据进入仲裁环路逻辑电路26中的FIFO(FIFO是一种先进先出存储器,通常用作总线和具有不同速度的处理过程之间的接口)。传送当前填充字(“CFW”,将下面详述),直到重新得到字同步。
字同步状态机23的逻辑监视字同步的输入流。字同步是在用恰当的字节/控制字符对齐检测到三个有效的有序集并且没有检测到插入无效字符时实现的。“字同步丢失”是按照FC-PH(即,FC-PH物理和信令接口X3T11/项目755D/卷4.3)标准定义的。当实现了字同步的时候,数据被输入到仲裁环路逻辑电路26中的FIFO。
同步丢失定时器25用来确定在大于一个最大帧的时间内,字同步丢失状态是什么时候出现的(它可采用在一个帧时间检测3个有效有序集)。当该定时器超时时,微处理器112由LOSS-OF-SYNC(同步丢失)中断信号4025中断,从而它可以作进一步的动作。
仲裁环路逻辑电路26包括循环弹性FIFO、循环FIFO控制逻辑电路、有序集译码逻辑电路、循环状态机逻辑电路、当前填充字选择逻辑电路、循环输出多路复用器逻辑电路和杂项功能。循环弹性FIFO提供使输入数据(由接收时钟进行时钟控制)用发送时钟重新同步所需的缓冲。循环FIFO控制逻辑电路监视仲裁环路逻辑电路26的状态,以确定是否需要插入或删除操作。有序集由有序集确认逻辑电路进行译码。这些有序集包括FC-PH定义的有序集(即,FC-PH物理和信令接口X3T11/项目755D/卷4.3),它们包括帧定义符和仲裁有序集。当前填充字选择逻辑电路监视循环状态和经译码的有序集,以确定当前填充字(“CFW”)。当启动仲裁环路时,硬件状态机采用有序集译码,执行FC-AL标准中描述的循环功能(即,光纤信道FC-AL1仲裁环路标准X3T11/项目960D/REV 4.5或光纤信道FC-AL2仲裁环路标准X3T11/项目1133D/卷6.3)。输入LOOP A TRANSMIT CONTROL OUTPUTS(环路A发送控制输出)6425和LOOP BTRANSMIT CONTROL OUTPUTS(环路B发射控制输出)6427从图6所示的逻辑电路向仲裁环路逻辑电路26提供输入。输出LOOP A STATES AND CONTROL(环路A状态和控制)6422和LOOP B STATES AND CONTROL(环路B状态和控制)6432控制各个环路的输出,并向环路控制逻辑电路提供状态,它接着向环路状态机产生请求(见图6)。输出LOOP A DATA(环路A数据)4026和LOOP ADATA(环路B数据)4027向各个本地端口提供数据(即,分别向图7中的块51和51’)。
在一种实施例中,8B/10B编码器逻辑电路27从仲裁环路逻辑电路26接受16位的数据和2个k-字符(较低的k永远是0)。在一种实施例中,输入被编码成两个10位的字符,这两个10位的字符是分开的,并一次向收发机115输出一个(见图1),它将数据转换成串行流。在其他的实施例中,2个10位字符(即20位)被并行发送到收发机115,该收发机将数据转换成串行流。发送多路复用器79(见图3)也提供状态,指示帧末(“EOF”)定义符是什么时候传送的,使得编码器27能够根据当前运行不一致选择正确类型的(或“喜欢的”)EOF。同时,当传送该端口(开路状态)或当仲裁环路逻辑电路26发送一基元时,迫使具有运行不一致,从而在每一非EOF基元开头处为负。输出信号A_OUT3023和B_OUT 3024将数据发送到各个收发机115和115’。
图5描述的是一种实施例中用来在由仲裁实现控制时保持环路开路时使用的比较器逻辑电路30。由比较器5010将OFF-CHIP AVAILABLE DATA(片外有效数据)5011的量与预定值X-FRAMES(X-帧)5013(在一种实施例中,它是一个可编程值,并且由经验确定其最佳值;在一种实施例中,该值被设置成一个帧)比较。由比较器5012将DATA-FRAME DATA AVAILABLE(数据帧有效数据)5015与预定值Y-WORD5017比较(在一种实施例中,它是一个可编程值,并且由经验确定一最佳值;在一种实施例中,有约2000个字,并且Y-WORDS约为1,000)。与门5014确定什么时候两个条件都被满足,并输出HOLD LOOP OPEN(保持环路开路)信号5019。
图6是环路控制电路40(也称为帧发送(“XMIT”电路40))的方框图。环路控制电路40(见图3和图6)包括控制逻辑电路,它产生对合适的仲裁环路状态机(端口A和端口B的仲裁环路逻辑电路26)的请求,以及产生发送帧状态机72(见图13)和81(见图15)的请求,以开始发射帧或R_RDY’。
发射数据序列逻辑电路41包括在由微处理器112请求转发时启动的逻辑电路。发射数据序列逻辑电路41用输入信号TRANSMIT STATUS INPUTS(发送状态输入)6411监视转发,并为每一阶段的转发产生“允许”信号(即允许信号TRANSMIT CONTROL OUTPUTS(发送控制输出)6413)。这使得能够在没有微处理器112介入的情况下,产生转发准备和FCP响应。
环路端口A/B开路控制状态机42(端口A)和42’(端口B)处理端口由另一个L_端口打开或环路1250打开以发送帧时的情况。该逻辑电路产生仲裁或闭合环路1250的请求,以及发送R_RDY和各种帧的检索请求,并且可以配置用于半双工或全双工的操作。
开始请求进行仲裁时,必须满足下面的条件-来自微处理器112的请求,以发射具有xmit端口允许信号的帧,-发射端口为监视状态,-转发长度计数不为零,-没有来自微处理器112暂停转发的请求,以及
-(非数据转发,或数据写转发,具有还没有用满足的数据阈值发射的转发准备状态,或用满足的数据阈值和满足的数据帧缓冲阈值进行数据读转发)。
当该端口被配置用于半双工方式时,R_RDY可以是仅在已开路状态时发射的。当该端口被配置用于全双工方式时,R_RDY可以是已开路状态或开路状态发射的。引起R_RDY传送的条件包括“缓冲对缓冲器信任(BB_信用)和小于最大BB_Credit的显著的(outstanding)R_RDY”。(缓冲器对缓冲器信任控制逻辑电路603如图12中的描述,它向连接的端口发出缓冲信用,使得能够进行帧的发送。该信用是通过发送R_RDY来发出的。)当该端口是被配置用于半双工方式时,帧可以仅在开路状态时发射。当该端口被配置用于全双工方式时,如果端口是由帧接收方打开而处于全双工方式的时候,帧必须在开路状态或已开路状态下发射。
当满足下面的条件时,将产生发射一个帧的请求-数据帧缓冲器具有有效的数据-具有缓冲对缓冲信用(接收的R_RDY)-非数据转发,或数据读转发和转发长度计数器(方框609中;见图12)为非零引起环路1250闭合的条件包括-进入已开路状态时没有缓冲对缓冲的信用-当处于已开路状态时,没有当前R_RDY以及BB_信用-当端口在已开路状态,处理器请求激活-已经完成转发-没有数据读转发操作和数据-接收到CLS基元,并且没有更多的BB_信用-微处理器暂停请求处于等待状态,并且逻辑介于帧之间再参见图6,环路端口A/B开路-初始-控制(open-init-control)状态机46(端口A)和46’(端口B)处理环路1250处于开路-初始(openOinit)状态时的情况。该逻辑电路46和46’产生发射帧的请求。每一端口(分别为46和46’)有一个状态机。这些状态机将在微处理机112对其进行请求时产生发射一个帧的请求,并且将监视EOF的发射。当该发射完成时,向微处理机112产生一个转发完成。
块40的输入包括PORT BB_CREID AVAILABLE TO TRANSMIT R_RDY6017(对发射R_RDY 6017有效的端口_信用)以及PORT CREDIT AVAILABLE TO TRANSMITA FRAME 6020(发射一个帧6020有效的端口信用)(见图12),LOOP A STATES ANDCONTROL 6422(循环A状态和控制6422)和LOOP B STATES AND CONTROL 6432(循环B状态和控制6432)(见图4)以及DATA AVAILABLE 6019(数据有效6019)(见图12)。块40的输出包括TRANSMIT CONTROL OUTPUTS 6413(发射控制输出6413),LOOP A TRANSMIT CONTROL OUTPUT 6425(循环A发射控制输出6425)和LOOP B TRANSMIT CONTROL OUTPUT 6427(循环B发射控制输出6427)。
下面标题为单个帧发射路径电路70的部分中将见到有关单个帧发射路径的进一步的信息。
Ⅱ.接收帧的专用帧缓冲器在双端口的光纤信道仲裁环路设计1200中,片内帧缓冲器119上的缓冲器可以用来管理入站和出站帧。接收和发射的帧通常以更慢的转发速率存储在大的片外区域(如片外缓冲器111)中。即使当片外缓冲器111能够对于单个端口是全转发速率的,对于双端口设计来说,所要求的带宽将要大得多,从而增加了成本。FC-AL ASIC110中的片内帧缓冲器119可以用各种方式构成,以达到性能、硅厂房和成本之间的平衡。本说明书将详细说明专用帧缓冲器53和53’(整个片内帧缓冲器119的元件)的使用,以同时在每一端口上接收非数据类型的帧,以及提供专用的大数据帧缓冲器55(也是整个片内帧缓冲器119的元件)。
在按照本发明的双端口设计中,帧可以是在两个端口116上同时接收的。帧通常是在接收到以后移动到并存储在更大的片外存储器111内的。在转发片外帧前,必须确认每一个帧,并且必须检查帧循环冗余码(″CRC″)。为了避免重复接收帧确认和CRC检查逻辑,在每一端口116上提供各接收非数据帧缓冲器53和53’,使得在全接口速率下同时接收这些帧,并且随后一次一个地读帧、确认和进行向片外转发。还提供大的公共数据帧缓冲器55,以在端口之间共享,从而可以在一个端口上接收或发送数据,同时在另一个端口上接收非数据帧。另外,由于在每一个端口上提供有两个单向光纤,所以同时可以在一个端口上进行发射和接收。
例如,端口A接收光纤117可以将非数据帧接收到非数据接收缓冲器53内,而端口A发射光纤118或者从数据帧缓冲器55发射数据帧,或者从发射帧缓冲器73发射非数据帧;并且同时,端口B可以将非数据帧接收到非数据接收缓冲器53’内,而从发射帧缓冲器73发射非数据帧,或从数据帧缓冲器55发射数据帧(在端口A发射非数据帧的情况下)。数据帧缓冲器55或接收帧缓冲器53或53’中的一个可以选择采用接收帧确认逻辑电路和CRC检验器。注意,对于本发明的一个实施例,提供一个单数据帧缓冲器55,并且每次只用于一个端口116,并且一次用于发射或接收。在其他的实施例中,提供多个数据帧缓冲器55,去掉这样的限制。同时注意,对于本发明的一个实施例,提供一个发射帧缓冲器73,并且一次仅用于一个端口116。在其他的实施例中,提供多个发射帧缓冲器73,去掉这样的限制使得在两个端口上确实可以同时进行环路初始化操作(或发送其他的非数据响应)。
当进行入站数据转发时,在初级端口上可以接收数据或非数据帧。同时,在另一个端口上可以接收非数据帧。数据帧(包括标题、有效负载、CRC和帧定义符)被放置到大的数据帧缓冲器55中,同时,将非数据帧(也包括标题、有效负载、CRC和帧定义符)放置到减小的接收帧缓冲器53(或53’)内。每一端口116有一个接收帧缓冲器53。当三个帧缓冲器(53、53’或55)中的一个具有数据时,它将被选择采用接收确认逻辑电路595和CRC检验器逻辑电路596(见图11)。
当出站数据缓冲器转发时,在初级端口上发送数据帧。同时,在另一个端口上接收非数据帧。数据有效负载从片外读取,并写到数据帧缓冲器55上,存储起来,直到接口转发可以开始为止。(在从帧缓冲器读取帧以后,加上标题、CRC和帧定义符。)同时,非数据帧可以在初级或另一个端口上接收。将非数据帧写到要保持的接收帧缓冲器53或53’上直到帧缓冲器具有了进入接收确认逻辑电路595和CRC检验器逻辑电路596的通道为止。
向数据帧缓冲器55提供优先顺序(priority),以便向数据转发提供最高可能的性能。当数据转发暂停或完成时,将处理这些非数据帧。如果一个接收帧缓冲器53填满,使得不再具有循环缓冲对缓冲,则数据帧缓冲器55的写/读操作将被中断在释放接收帧缓冲器空间,从而将再次具有缓冲对缓冲信用能力。入站数据帧将在该时间内在数据帧缓冲器55内累加,这是因为新的帧将被写到数据帧RAM555上而同时将在短时间内中断读操作的缘故。在该时间内将暂时减少该接口的出站数据帧,这是因为这些帧可以从RAM555读出而同时写操作将在短时间内中断的缘故。
图7是光纤信道接收路径和帧缓冲器块50(见图3)的方框图。接收路径和帧缓冲器块50对接收帧进行处理,并直接向片外(或片外缓冲器111)发送这个(这些)帧或发送到单个帧发射电路70或将这个(或这些)帧存储在接收这些帧(接收非时间帧缓冲器53或53’或数据帧缓冲器55)的三个帧缓冲器。接收路径50包括预缓冲-接收帧处理(方框51和51’)、数据帧缓冲多路复用器52、端口A和端口B接收非数据帧缓冲器53和53’、数据帧缓冲器55、数据帧缓冲转发长度计数器54、帧缓冲控制器56、公共接收路径59和缓冲器接口58方框。
方框51的输入包括来自图4的LOOP A DATA(循环A数据)4026和LOOP ASTATE AND CONTROL(循环A状态和控制)4622(也输入到图6)。方框51’的输入包括来自图4的LOOP B DATA(循环B数据)4027,以及LOOP B STATES ANDCONTROL(循环B状态和控制)6432(也输入到图6),数据帧缓冲器55的输入包括OFF-CHIP BUFFER DATA(片外缓冲器数据)3051。信号DATA XFER CONTROL(数据XFER控制)7521控制数据帧缓冲器多路复用器52。信号BUF_PAUSE(缓冲器暂停)7561向帧缓冲控制器56发信号,即需要暂停(通常因为缓冲器不能够跟上转发速率带宽)。信号LD_COUNTERS 7541向数据帧缓冲转发长度计数器54发信号,装载计数器值。
输出信号BXFR_CNT_ZERO 7542指示所有转发的数据都在选择的帧缓冲器内。帧缓冲器控制器56向端口A接收非数据帧缓冲器53提供读允许信号RD ENABLE 7532,向数据帧缓冲器55提供RD_ENABLE 7552,以及向端口B接收非数据帧缓冲器53’提供RD_ENABLE 7533。缓冲控制接口58提供选择、选通和/或允许信号CONTROLS FOR OFF-CHIP BUFFER(片外缓冲器的控制)7589,用于片外缓冲器111。输出DATA TO OFF-CHIP BUFFER(片外缓冲器的数据)3052向片外缓冲器111提供接收的数据帧和非数据帧。
数据帧缓冲多路复用器52选择数据和从具有DATA XFER CTL(数据XFER控制)7521位集的端口的预缓冲接收状态机512的输出。该多路复用器52的输出向数据帧缓冲器55提供数据和状态信号(图10中分别是8511和8512),从而数据可以被写入数据帧缓冲器RAM 555(见图10)。
图8是光纤信道预缓冲接收帧处理路径电路51的方框图,它准备从光纤信道1250接收的要输入到三个帧缓冲器(53,53’或55)中的一个的帧。预缓冲接收路径方框51包括预缓冲接收帧形成状态机512、预缓冲接收帧长度计数器515(及其多路复用器514),以及EOF修改逻辑电路513。该方框51对端口A和端口B是重复的(即每一端口上一个),这是因为这些帧是可以同时在两个端口上接收的。
预缓冲接收帧形成状态机512监视输入流,以确定这些帧和R_RDY是什么时候接收的。当检测到一个SOF时,对于标题、有效负载和帧定义符的每一个字,产生这些信号。该状态机512检查在违反最大帧长度(可能是因为损坏的EOF)的标题或有效负载转发期间接收的无效基元。
根据接收帧的标题R_CRT字段,在将作为接收帧目的地的帧缓冲器的命令、其他或数据缓冲区域的最大帧长度(由多路复用器514选择)的帧开头处装载到预缓冲接收帧长度计数器515。如果计数器在检测到EOF之前达到零,则检测到一长度误差。这一功能有助于防止过度运行帧缓冲器中分配的空间。
EOF修改逻辑电路513检查入站帧,看看它是否是一个数据帧,并为该帧缓冲器产生一个允许信号。EOF修改逻辑电路513捕获要由预缓冲接收帧长度计数器515使用的入站帧的路由选择控制段。EOF修改路径513还修改EOF段,从而可以通过帧缓冲器将更详细的状态信息传送到公共接收路径59。
来自图4的输入信号LOOP A DATA(循环A数据)4026和LOOP A DATA(循环B数据)4027被耦合到EOF修改逻辑电路513。LOOP A STATES AND CONTROL(循环A状态和控制)6422和LOOP A STATES AND CONTROL(循环B状态和控制)6432(也是图6的输入)将有关环路1250的状态信息提供给状态机512。MAXFRAME SIZE(最大帧尺寸)8517向多路复用器514和计数器515提供有关数据帧、控制帧和其他帧的最大帧尺寸的信息。
输出信号PRE-BUFFER-RECEIVE DATA(预缓冲接收数据)8511和PRE-BUFFER-RECEIVE STATES 8512(预缓冲接收状态8512)将数据和状态信息提供给非数据缓冲器53和53’(见图9)和数据帧缓冲器55。
图9是光纤信道接收非数据帧缓冲电路53的方框图。接收非数据帧缓冲器53包括接收帧缓冲写控制器533、接收帧缓冲读控制器534、接收帧缓冲RAM535、接收帧缓冲状态块536和接收帧缓冲帧计数器531。端口A和端口B中的每一个有一个该电路53,这是因为这些帧可以同时在两个端口上接收的缘故。
接收帧缓冲写控制方框533产生用于接收帧缓冲RAM535中的随机存取存储器(“RAM”)的地址(WPTR 9537)、数据(WDAT 9536)和写允许循环(WE 9539)。在接收帧的数据时,来自预接收状态机512的状态允许信号被用来产生用于RAM 535的写允许信号。(wrap 9538)使该地址递增,并提供将由接收帧缓冲状态块536使用的环绕位(Wrap bit),以确定接收帧缓冲RAM 535中有多大的空间。将来自环路端口电路20的数据从16位宽变换到32位宽,并产生一个标记位表示SOF或EOF定义符。通过非数据帧缓冲RAM 535传送来自接收帧的CRC,以保护数据。即,将从光纤信道接收的CRC信息与数据一起存储到非数据帧缓冲器53中,并且随后经过检查,作为从非数据帧缓冲器53读出的数据(例如,它们被转发到片外缓冲器111),以便可以检测到非数据帧缓冲器53中停留的数据(当然,也检测光纤信道环路1250上发送的数据中的误差)的任何误差的发生。块53的输入信号包括PRE-BUFFER-RECEIVE DATA(预缓冲接收数据)8511和PRE-BUFFER-RECEIVE STATES(预缓冲接收状态)8512(见图8),和寄存的(即,时钟锁定到寄存器内用于以后使用的各种信号)来自微处理器112的MPU DATA(MPU数据)9533和MPU ADDRESS(MPU地址)9534。
接收帧缓冲读控制块534产生用于接收帧缓冲RAM 535的读地址(RPTR9541),并从RAM 535捕获数据(RDAT 9540)。当帧缓冲控制器56(见图7)选择接收非数据帧缓冲器53时,允许对接收帧缓冲RAM 535的读操作。递增该地址,并提供要由接收帧缓冲状态块536使用的环绕位(WRAP 9542),以确定接收帧缓冲RAM 535中有多少空间。将来自接收帧缓冲RAM 535的数据捕获到寄存器内,并监视标志位,以确定帧的开头和结尾。产生要由公共接收路径59(见图7)使用的允许信号,表示什么时候数据是有效的。块534的输入信号包括来自微处理器112的REGISTERED READ_ENABLE(寄存的读_允许信号)9535。来自块534的输出信号包括RECEIVE NON-DATA BUFFER DATA(接收非数据缓冲数据)9543和NON-DATA VALID READ(非数据有效读)9546。
接收帧缓冲RAM 535包括一个同步RAM。该RAM为33位宽(32位数据字加上一个SOF/EOF标志位)和304个字长。接收的非数据帧的SOF、标题、有效负载、CRC和EOF被写到要保持的RAM 535上直到能够存取片外缓冲器111和公共接收路径59。在一种实施例中,内建的自测试控制器使得能够用专门为存储器的物理布局设计的数据码型测试接收帧缓冲RAM 535。
接收缓冲状态块536比较接收帧缓冲RAM 535的写和读指针,以确定缓冲器是否是空的,并且,如果缓冲器不是空的,则确定接收帧缓冲RAM 535中有多少空间的帧。该块536的输出(AVAILABLE SPACE(有效空间)9545)由帧缓冲控制器56用来确定接收帧缓冲RAM 535是否需要存取公共接收路径59。该输出还由缓冲列缓冲信用量控制逻辑电路603(见图12)用来确定是否具有信用。
接收帧缓冲器帧计数块531对计数帧缓冲RAM 535中当前具有的帧数进行计数。计数器531在帧被写入计数帧缓冲RAM 535中时递增,而当帧从接收帧缓冲RAM 535中读出时递减。计数(COUNT OF FRAME IN BUFFER9544(缓冲器9544中的帧数))由缓冲列缓冲信用控制器603用来确定是否具有信用。在一种实施例中,进入RAM的所有输入(除块以外)被延迟,以提供合适的保持时间。
图10是光纤信道数据帧缓冲电路55的方框图。数据帧缓冲器55包括数据帧缓冲写控制器553、数据帧缓冲读控制器554、数据帧缓冲RAM 555、数据帧缓冲状态块556、数据帧缓冲帧计数器551和数据帧捕获块552。任何给定的时间内仅允许进行一次数据转发,从而数据帧缓冲器555由端口A和端口B共享。
数据帧缓冲写控制块553产生用于数据帧缓冲RAM 555的地址(WPTR9555)、数据(WDAT 9554)和写允许信号(WE 9557)。对于写操作(要写到磁盘中的数据),当接收到一个数据帧时,来自预缓冲接收状态机512的状态允许用来产生用于存储器555的写允许信号(WE 9557)。对于一读操作(从磁盘读取的数据),来自帧缓冲控制器56的允许信号用来产生用于存储器555的写允许信号。使地址递增,并提供要由数据帧缓冲状态块556使用的环绕位(环绕9556),以确定数据帧缓冲RAM 555中有多少数据/空间。对于写操作,将来自环路端口电路20的数据从16位宽变化成32位宽,并产生一个标志位,以指示SOF或EOF定义符。来自接收帧的CRC是通过数据帧缓冲RAM 555传送的,以保护数据。即,从光纤信道接收的CRC信息与数据一起被存储到数据帧缓冲器55,并且随后当数据从数据帧缓冲器55中读出时(例如当它们被转发到片外缓冲器111时)进行检查,以便可以检测到数据帧缓冲器55中停留的数据发生误差(当然,也可以检测光纤信道环路1250上发送数据中的误差)。在一种实施例中,对于读操作,来自片外缓冲器111的数据从16位宽变化成(转换成)32位宽,并产生奇偶位,以保护数据。块553的输入信号包括PRE-BUFFER-RECEIVEDATA(预缓冲接收数据)8511和PRE-BUFFER-RECEIVE STATE(预缓冲接收数据)8512(见图8),以及DATA FROM OFF-CHIP BUFFER(片外缓冲器的数据)3051(见图3)。
所以,在一种实施例中,如果数据是通过数据帧缓冲RAM 555从光纤信道环路1250(见图2)保护的,并且随后传送到片外缓冲器111,但如果它们已经是从片外缓冲器111传送到RAM 555用于传送到光纤信道环路1250(在后一种情况下,CRC信息在数据离开数据帧缓冲RAM 555以后,被加到进入光纤信道的数据上),则它们是受奇偶性保护的。
数据帧缓冲读控制块554产生用于数据帧缓冲RAM 555的读地址(RPTR9559),并从RAM 555捕获数据(RDAT 9558)。对于写操作(要写到磁盘上的数据),帧缓冲控制器56选择数据帧缓冲器55,并确定对存储器的读。对于一个读操作(从磁盘读取的数据),发送帧状态机81(见图15)确定存储器的读。使地址递增,并提供环绕位(WRAP 9560),由数据帧缓冲状态块556使用,以确定帧缓冲器中有多少数据/空间可用。对于写操作,将来自帧缓冲RAM的数据捕获到一寄存器中,并监视其标志位,以确定帧的开头和结尾,从而可以产生一允许信号,用于公共接收路径59,指示数据什么时候是有效的。对于读操作,将来自数据帧缓冲RAM 555的数据捕获到一寄存器内,并检查其奇偶性。来自块554的输出信号包括DADA FRAME BUFFER DATA(数据帧缓冲器数据)9564、DATAVALID READ(数据有效读)9563和DATA PARITY ERROR(数据奇偶性误差)9562。
数据帧缓冲RAM 555包括同步RAM,并且在一种实施例中,包括一内建的自测试控制器。在一种实施例中,RAM是36位宽(32位数据字加上4个SOF/EOF标志位或奇偶位),3,232字长。对于一写操作(要写入磁盘的数据),接收数据帧的SOF、标题、有效负载、CRC和EOF被写入要保持的RAM 555,直到能够存取片外缓冲器111和公共接收路径59为止。对于读操作(要从磁盘读取的数据),只有有效负载被写入要保持的RAM 555,直到环路1250可以被打开并传送数据为止。在一种实施例中,进入RAM的所有输入被延迟(除时钟以外),以提供合适的保持时间。
数据帧缓冲状态块556比较数据帧缓冲RAM 555的写和读指针,以判断缓冲器是否是不空的,并且如果缓冲器是空的,则判断缓冲器中有多少数据/空间的帧可用。对于一写操作,该块556的输出(AVAILABLE SPACE(有效空间)9561)由帧缓冲控制器56用来确定数据帧缓冲器55需要存取公共接收路径59。输出也由缓冲对缓冲信用控制603(见图12)用来确定是否有信用。对于一读操作(要从磁盘读取的数据),环路控制块40监视帧缓冲器中的数据,以确定是否可以传送一个帧。必须满足一数据帧缓冲阈值,以对使环路1250开路作出仲裁。还产生数据帧缓冲保持阈值,使得在整个帧无效但处于处理过程(在数据帧缓冲器55和/或片外缓冲器111中累加)时,保持环路1250开路。
数据帧缓冲帧计数器块551用输入信号FRAME_OUT(帧输出)9550,对数据帧缓冲RAM 555中当前的帧数进行计数。当帧被写入RAM 555时,计数器551递增,而当从RAM 555读取帧时,计数器551递减。计数值(信号COUNT OF FRAMEIN BUFFER(缓冲器中的帧计数)9566)由缓冲对缓冲信用控制器603用来确定是否具有信用。
数据帧捕获块552在允许允许捕获方式时监视接收的数据帧(用输入信号ENABLE DATA WRITE DETECT(允许数据写检测)9551),并捕获各个帧标题字段。这些值(DATA CAPTURE OUTPUT 9565)可以随后由微处理器112读取。
再参见图7,数据帧缓冲转发长度计数器54控制包括两个控制如何将读数据预取到数据帧缓冲器55中的计数器。数据帧缓冲转发长度计数器(在块54中)用来确定应当从片外缓冲器111汲取多少数据用于光纤信道转发。数据帧缓冲发送长度计数器(在块54中)用来确定应当在使控制器56暂停而重新估计应当使哪一个帧缓冲器存取片外缓冲器111(下面的段落中描述的过程)之前从片外缓冲器111汲取多少数据。
帧缓冲控制器56确定应当向三个帧缓冲器(即,数据帧缓冲器55、端口A接收非数据帧缓冲器53,或端口B接收非数据帧缓冲器53’)中的哪一个授权访问片外缓冲器111的资源。如果一端口处于环路初始化状态而该端口的接收非数据帧缓冲器53(即53或53’)不是空的,则给予该环路初始化帧最高的优先权,从而环路初始化可以进行下去。给予数据转发下一个最高的优先权,并且只要接收非数据帧缓冲器53没有填满,就继续进行下去。如果一个接收非数据帧缓冲器53不再有用于某一帧的空间,则特定的接收非数据帧缓冲器53将被授权访问片外缓冲器111,以消耗某些帧,并且随后恢复数据转发。
需要片外缓冲资源的第一帧缓冲器(55,53或53’)将被授权访问片外缓冲器111。如果两个端口同时接收一个帧,则端口A将被允许首先进行访问。一旦帧缓冲控制块56提供进入片外缓冲器111的帧缓冲的存取,则它将继续为该帧缓冲器提供服务,除非另一个端口的接收非数据帧缓冲器53填满,或启动初始化,或启动一数据转发。给定端口上的帧将以传送到端口的顺序被转发到片外缓冲器111。
如果来自光纤信道的数据速率不能被保留给片外缓冲器111,那么帧缓冲控制器56和片外缓冲器111之间的数据转发可以由缓冲控制接口逻辑58暂停。
图11是公共接收逻辑电路59的方框图,该逻辑电路取得来自一个帧缓冲器(53,53’或55)的帧,并准备用于片外缓冲器111的帧。该逻辑电路59识别SOF,并捕获来自接收的标题用于有效性检验的信息。检查CRC,并选择该帧通向片外缓冲器111合适的缓冲区域。
接收缓冲译码块591对(从输入数据信号FRM BUFFER DATA 9570和允许信号VAL_READ 9571得到的)帧开头和帧定义符结尾进行译码,并产生由公共接收路径59用于帧有效性检验的信号。EOF定义符可以具有嵌入的误差状态(帧长度误差或运行不一致误差),它被转换用于接收路径块。
接收帧形成状态机592监视输入流,以确定帧边界。当检测到一个SOF时,产生一些信号,使得能够获得标题的每一个字,并允许CRC检验器596、标题有效性控制器595和缓冲控制器598(带有5991、5992和5993)。状态机592检查标题期间接收的无效基元,并检查违反允许的最大帧长度的转发。由于公共接收路径59是可以暂停的,所以状态机592的状态输出可以是先是活动的随后变成是非活动的脉冲,以便能够恰当允许帧捕获和验证块(validationblock)。
根据来自接收帧的标题的R_CTL字段,在具有命令、其他或数据帧(来自信号MAX SIZE INPUTS(最大输入)9572)的最大帧长度的帧开头处装入接收帧形成长度计数器(多路复用器5931和计数器5932)。如果在检测到EOF前计数器达到零,则检测到了帧长度误差,并将该帧标记为无效。这一功能有助于防止过度运行用于该帧的片外缓冲器111的分配空间。
接收帧标题捕获块594用来自接收帧形成状态机592的信号捕获接收标题的各个字段。所获得的值由帧验证逻辑使用。
当接收到一个帧时,CRC检验器块596检验帧结尾处的CRC。如果检查到一个CRC误差(由CRC STATUS9596表示),则该帧被标记为无效的。由接收帧形成状态机592允许CRC检验器596。处理标题字段、运行负载字段和CRC字的内容。
Ⅲ.采用光纤信道CRC用于片内存储器上的数据完整性按照本发明的一个方面,暂时存储光纤信道帧的帧缓冲器使得能够在最大光纤信道接口数据转发速率下接收这些帧。帧可以随后在更慢、更容易控制的速率下转发到片外存储器。各种机构如奇偶性、CRC或其他的冗余性功能可以选择用来在数据存储在帧缓冲器内时保护数据。
在一种实施例中,用数据,通过帧缓冲器传送接收光纤信道循环冗余码(“CRC”)(即,CRC是以帧的形式存储在帧缓冲器内并随后以帧的形式读出的),增强数据完整性检验,额外奇偶位使RAM的宽度可能被消除。(在各种实施例中,帧缓冲器是数据帧缓冲器55和/或接收非数据帧缓冲器53或53’)。在从RAM读出数据之后以及被片外转发(即转发到片外缓冲器111)之前,检查CRC。入站数据路径上额外的奇偶位也可以从帧缓冲器入站侧的接口中以及从帧缓冲器出站测到CRC检验器596输入中去掉。
由于片外RAM的接口一次仅处理一个转发,并且比片内RAM更慢,也比光纤信道转发速率更慢,所以在非数据帧缓冲器53和53’与数据帧缓冲器55之间可以共享公共接收路径逻辑59。由于CRC检验是在帧进入片外(即,从片内缓冲器53、53’或55转发到片外缓冲器111)之前,所以只需要一个CRC检验器596。相反,如果CRC不是以帧的形式存储在帧缓冲器内并且随后在片外缓冲器111的路径上检验的(称为“通过片内帧缓冲器传送CRC”),则需要两个CRC检验器(即,放置在预缓冲路径51和51’内)。
在一种实施例中,该机构也用于相反的方向,即,用于数据是从更慢的片外缓冲器111转发、暂时存储在帧缓冲器中以及在光纤信道接口上以最大数据转发速率发送的时候。
当接收到一个帧时,通过路由控制译码块5933来对R_CTL字段进行译码,以确定正接收的帧的类型。用R_CTL字段来选择帧通向片外缓冲器111的合适的区域的路由,并确定要在帧上进行哪些有效性检验。
标题验证逻辑电路595分析接收帧标题的内容。根据帧的R_CTL字段,验证各个字段。如果在一个非数据帧上任何一种有效性验证失败,则该帧被认为是无效的。如果是在进行数据写转发时对数据帧的有效性检验是失败的,那么就通知微处理器112。
接收帧状态块597收集有关接收帧和来自进入片外的块无效数据帧的信息,并产生信号FRAME STATUS(帧状态)9580。如果某一帧不是有效的,则基本上将其忽略(除非是在进行数据转发)。
命令计数器5992用来跟踪片外缓冲器111的命令区域中含有多少命令帧。当接收到一有效命令时,该计数器5992递增。当微处理器112因某一命令而结束时,它必须使命令计数器5992递减(用来自微处理器112的信号MPUDECREMENTS(MPU递减)9574)。块5992输出中断请求CMD RCVD IRQ 9578。
“其他”空间计数器5991用来跟踪片外缓冲器111的“其他”区域中留有多少空间(用来自微处理器112的信号MPU INCREMENTS(MPU递增)9575),用于给出缓冲对缓冲信用。该计数器5991在接收到既不是命令也不是数据帧时,或者在片外缓冲器111是满时接收到一命令帧的时候递减。当微处理器112结束了某一帧时,它必须使“其他”的空间计数器5991递增,以指示具有用于另一帧的空间。“其他”空间计数器5991表示(OTHER COUNT(其他计数)9576和中断请求OTHER RCVD IRQ9577)帧数将填满片外缓冲器111的“其他”区域。
接收帧时,接收帧缓冲控制器598(产生使其他计数器5991递减和使命令计数器5992递增的信号INCR/DECR 9573)和最后4个发生逻辑电路5993产生用于片外缓冲器111的逻辑电路的信号(CONTROLS FOR OFF-CHIP BUFFER7589(片外缓冲器7589的控制)),使得将帧引导到恰当的区域。
图12是光纤信道转发控制电路60的方框图,它包括用于逻辑接收部分和发射部分的控制逻辑电路。转发控制电路60包括转发控制电路和缓冲对缓冲信用控制电路603。
数据有效/空间计数器块604根据是数据写操作还是数据读操作,提供有多少片外空间或数据的指示(DATA AVAILABLE(数据有效)6019)。在数据写转发时,数据有效/空间计数器块604用来指示使片外缓冲器111的数据部分中有多少空间(按照帧计算)使得能够发送BB_Credit。当数据读转发时,数据有效/空间计数器块604用来指示片外缓冲器111中有多少数据帧有效。将缓冲器指针中的差异与指示每一帧字数的微处理器可装载的(即可编程)值比较。
缓冲对缓冲信用控制逻辑电路603向连接的端口发出缓冲信用(信号PORTCREDIT AVAILABLE TO TRANSMIT R_RDY(端口BB_Credit有效至发送R_RDY)6017),使得能够进行帧的发送。该信用是通过发送R_RDY来发行的。提供给任一端口的信用值是由下述决定的1)片外缓冲器111中有多少接收空间用于磁盘驱动器1002)接收非数据帧缓冲器53和数据帧缓冲器55中有多少接收空间用于磁盘驱动器1003)给定信用,打开驱动器100的端口是否能够潜在地发送占据有效空间的帧缓冲对缓冲信用是根据每一端口决定的。缓冲对缓冲信用控制块603产生用于环路端口A/B开路控制块42和42’(见图6)的信号,指示何时信用是有效的。环路控制块40随后将控制R_RDY的传送。
转发控制电路60的其余部分含有在转发期间使用的计数器。接收的R_RDY计数器606决定在每一端口上从输入PORT R_RDY RECEIVED 6010(端口A和端口B中的每一个有一个)和PORT FRAME TRANSMITTED 6011(端口A和端口B中的每一个有一个)接收了多少R_RDY信用,并输出信号PORT CREDIT AVAILABLETO TRANSMIT A FRAME(对发送一帧有效的端口信用)6020。发送的R_RDY计数器601决定在每一端口上从输入PORT R_RDY TRANSMITTED 6001(端口A和端口B中的每一个有一个)和PORT FRAME RECEIVED 6002(端口A和端口B中的每一个有一个)已经发送了多少R_RDY信用。序列计数器607用来在数据写转发时检查依次到达的接收帧,和用来在数据读转发时产生在数据帧的标题中传送的SEQUENCE COUNT(序列计数)6022。相对偏移计数器608用来在数据读转发时产生在数据帧的标题中传送的RELATIVE-OFFSET COUNT(相对偏移计数)6023。转发长度计数器609用来确定要转发多少数据和在完成转发时提供指示(TRANSFER LENGTH COUNT(转发长度计数)6024)。
单个帧发射路径电路70图13是光纤信道的单个帧发射路径电路70的方框图。本发明的一个实施例提供光纤信道环路接口电路,它包括专用的发射帧缓冲器73用于环路初始化和响应。具有了这样一种专用的发射帧缓冲器73使得双端口节点中的一个端口能够传送初始化或响应帧,而另一个端口发送或接收(即“通信传递”)数据帧。如果环路经历同步丢失或其他的问题,那么必须使环路1250初始化,并且专用的发射帧缓冲器73使得允许这一功能出现,而不会中断与双端口节点接口另一端口相连的其他环路上可能正在进行的其他功能的数据传送。两个端口也可以是同时初始化的。另外,该专用的发射帧缓冲器73使得在一个端口上发送出响应、确认或其他的非数据转发,而同时另一端口也在使用中。所以,与微处理器112连接的单个帧发送路径电路70用来提供环路初始化和节点接口1220的响应功能。发送帧缓冲器73接受输入MPU LOADABLE(MPU可装载)7002(来自微处理器112的数据)、RECEIVE PATH DATA(接收路径数据)7003和RECEIVE PATH CONTROLS(接收路径控制)7004(来自接收路径50的帧)。发送帧缓冲器73产生输出MPU READ DATA(MPU读数据)3095和通过块74和76的XMT DPTH DATA 7007(包括要传送的CRC的出站帧)。
单个帧发送路径电路70接受来自环路控制电路40的请求,发送停留在单个帧发送帧缓冲器73中的帧。该电路70产生合适的帧定义符,从帧缓冲器读取标题和有效负载,并用CRC发生器76产生合适的CRC。该电路70还产生用于环路端口电路20的信号,用以产生当前填充字,和指示何时转发帧结尾(“EOF”),使得编码器能够根据当前运行不一致产生EOF的第二字符。
单个帧发送状态机72(通过信号SEND_FRAME(发送_帧)7001)接受来自环路控制电路40发送一个帧的请求。发送帧时,该状态机72提供发送到发射多路复用器74的帧的每一部分的选择(即选择信号),以便在恰当的时候能够转发帧定义符、标题和运行负载。该状态机72还产生用于CRC发生器76的允许信号。还向8B/10B编码器27提供控制(见图4),用以确定何时发送EOF信号。在已经发送了一个帧的时候,产生信号,并将这些信号发送回环路控制电路40,使之能够继续运行。
单个帧发送帧长度计数器71用来使硬件能够确定这一帧有多长,以便使最终的CRC能够在适当的时候被输出(CRC是一次一字重复计算的,并在输出帧的数据部分时累加起来)。计数器71是在帧开始时从发送帧长度寄存器装载的,并且在传送该帧时允许。计数器71是由单个帧发送状态机72允许,并向状态机72回送状态(即状态信息),以确定何时允许CRC发生器76。
单个帧发送输出多路复用器74的输出是CRC发生器76的输入,以确定EOF前的CRC遗留字,它通过多路复用器79向环路端口电路20馈送(见图3)。单个帧发送状态机72产生用于该多路复用器74的选择,使得能够在适当的时候转发帧定义符、标题和运行负载。
单个发送填充字符发生器块75确定何时从单个帧发送电路70发送K字符、当前填充字和EOF定义符。输出信号XMIT CONTROLS(发送控制)7010进入发送路径多路复用器79,由它确定哪一个环路能存取单个帧发送累加电路70。
图4是光纤信道发射帧缓冲器73的方框图。该实施例中,单个帧发送帧缓冲器73包括单个帧缓冲写控制733、单个帧缓冲读控制734和单个帧发送帧缓冲RAM 735。单个帧发送帧缓冲器73用于存储接收的环路初始化帧、出站环路初始化帧和出站单个帧。在一个实施例中,发送缓冲RAM 735的40个字保留用于端口A,而40个字用于端口B。
单个帧缓冲写控制块733产生用于单个帧缓冲RAM 735的地址(WPTR1411)、数据(WDAT 1410)和写允许信号(WE 1412)。输入包括DATA FROMRECEIVE PATH(来自接收路径的数据)1410、PORT A FRAME(端口A帧)1430、PORT B FRAME(端口B帧)1404、寄存的MPU DATA(MPU数据)9533和寄存的MPUADDRESS(MPU数据)9534。在接收到环路初始化帧时,该帧首先被存储在接收非数据帧缓冲器(53或53’)中的一个中,直到它可以通过公共接收路径59用于验证移动为止。该帧不是传送到片外缓冲器111上的,而是写到单个帧发送帧缓冲器73的。这使得片外缓冲器111能够更加专用于在另一端口上的数据转发。来自环路端口的数据从16位块变换成32位宽,并根据与该帧相关的端口决定该帧的开始地址。
微处理器112还可以写到单个帧发送帧缓冲器73上,以修改环路初始化帧或设立出站帧。产生奇偶性,以保护单个帧发送帧缓冲器73中的数据。
单个帧发送缓冲读控制块734产生用于单个帧发送缓冲RAM 735的读地址(RPTR 1414),并从RAM 735捕获数据(RDAT 1413)。输入包括SEND FRAME(发送帧)1407和XMIT STATES(发送状态)1408。当单个帧形成状态机72允许一个帧用于传送时,允许单个帧发送缓冲RAM 735的读(输出SINGLE_FRAMETRANSMIT BUFFER DATA(单个_帧发送缓冲数据)1415)。微处理器112还可以读该帧缓冲器,以访问接收的环路初始化帧。来自发送帧缓冲RAM 735的数据被捕获到一寄存器中,并检查其奇偶性(产生输出PARITY ERROR(奇偶性误差)1416)。
单个帧发送缓冲RAM 735包括一同步RAM,并且在一种实施例中是一种内建的自测试控制器。该RAM是36位宽(32位数据字加上4个奇偶位)和80个定位(location)长。帧的标题和运行负载被放入要保留用于微处理器112的发送帧缓冲RAM 735内,以检查或在环路1250上的传送。在一种实施例中,进入RAM的所有输入(除时钟以外)被延迟,以提供合适的保持时间。
图15是数据发送路径电路80的方框图,它从环路控制逻辑电路40接受发送帧的请求。电路80产生合适的帧定义符,从微处理器可装载的寄存器产生建立标题,并产生CRC。电路80还产生用于环路端口电路20的信号,以传送当前填充字,用以指示何时转发EOF,使得编码器能够根据当前运行不一致产生EOF的第二字符。
数据发送帧形成状态机81从环路控制逻辑电路40接受发送帧的请求(信号SEND-FRAME(发送帧)8001)。发送帧时,该状态机81向发送多路复用器86提供帧的每一部分的选择,使得能够在合适的时间内转发帧定义符、标题和运行负载。状态机81还产生用于CRC发生器87的允许信号。在已经传送了一个帧的时候,产生的信号被送回环路控制逻辑电路40使之能够继续。
数据发送帧长度计数器82用来使硬件能够确定该帧有多长,使得在合适的时候产生CRC。在帧的开头从发送帧长度寄存器装载数据发送帧长度计数器82,并在传送该帧时允许。数据发送帧长度计数器82由发送帧形成状态机81允许,并将状态送回状态机,以确定何时允许CRC发生器87。
数据帧发送输出多路复用器86的输出是CRC发生器87的输入,它向数据发送路径多路复用器79馈送。数据发送帧形成状态机81产生用于该多路复用器86的选择,使得能够在合适的时间内转发帧定义符、标题和运行负载。输入包括FRAME BUFFER DATA(帧保持数据)8004、HEADER REGISTERS(标题寄存器)8005、TRANSFER COUNTS(转发计数)8006,和TRANSFER-READY PAYLOAD(转发准备运行负载)8007。输出包括STATES TO FRAME BUFFER READ CONTROL(帧缓冲读控制的状态)8009。多路复用器86中的定义符发生器确定发送帧时要用哪一个帧开头(SOF)和帧结尾(EOF)基元。
通过CRC发生器87转发数据帧发射输出多路复用器86的输出,以确定EOF前包括的CRC剩余字。CRC发生器87的允许信号来自数据发射帧形成状态机81。还向8B/10B编码器27(见图4)提供控制,以确定何时发送EOF信号。CRC发生器87的输出是XMT_DPTH DATA 8008(包括要传送的出站帧)。
数据转发填充字符块85确定何时从数据发送路径电路80发送K-字符、当前填充字和EOF定义符。输出信号XMIT OUTPUTS 8010进入发送路径多路复用器79,由它判断哪一个环路能存取数据发送路径电路80。
发送路径多路复用器79(见图3)的输出是环路端口电路20中端口A和端口B仲裁环路逻辑电路26的输入。由发送路径多路复用器79选择来自单个帧路径70和数据路径80的数据和控制信号到合适端口。发送路径多路复用器79还将R_RDY基元多路复用到端口。这使得两个端口能够同时进行发送。
Ⅳ.减小仲裁环路开销的方法和装置在光纤信道仲裁环路设计1200中,环路端口116的节点接口1220必须仲裁存取环路1250。采用优先顺序系统来决定哪一个端口获得环路1250的控制,并采用一个“平均(fairness)”方案来确保端口不会是不足(starved)的。作为一个目标装置,磁盘驱动器100通常具有比CPU 1202更低的优先顺序,其结果是,驱动器100可能不得不等待赢得仲裁,直到更高优先顺序的装置完成了访问为止。当环路端口116的节点接口1220获得了环路1250的控制的时候,它在使环路1250闭合之前,发送尽可能多的帧,以便防止不必要的仲裁循环。但是,当数据不再有时,环路端口116的节点接口1220使环路1250闭合,使得其他的端口能够进入环路1250。这是某些其他的控制器结构中使用的方法。本发明提供了这样一种机构,它根据端口处有无数据,通过改变是否闭合环路1250的判断规则,增强环路的性能,以减小整个环路的开销。
在某些其他的控制器结构中,当传送帧结尾定义符时,端口决定是否有另一个帧有效。如果不再有数据有效了(例如,如果传送的不是一个完整的帧),那么环路1250就闭合。可能随后再次立即具有了数据,从而端口必须再次随后进行仲裁,并且在继续进行转发前赢得仲裁。如果这是在最后一个帧转发时发生的,那么就延迟这一转发的完成,这将导致在可以对下一个命令进行处理前出现延迟。
本发明提供了一种控制器结构设计机构,使得在端口上立即出现数据时环路1250能够由一端口保持打开。这可以减少环路端口116的节点接口1220必须在输出数据转发期间进行仲裁的次数,因而使得转发能够立即完成。在一种实施例中,在满足下述条件时,环路1250在期望端口具有充足的进一步的数据(验证端口对环路保持控制)时保持打开-至少X帧是片外的,以及-数据帧缓冲器55中具有至少Y个字的数据。在这样一种实施例中,X的值(这里,X代表片外缓冲器111中需要具有的帧数以便使环路1250保持打开)和Y的值(这里,Y代表片外缓冲器中需要具有的字数以便保持环路1250保持打开)中的每一个必须是单独可编程的(例如,通过微处理器112的硬件编码)。在另一种实施例中,当片外缓冲器111中具有预定的数据量(不必是用帧数来表示的)时,环路1250保持打开(在一种这样的实施例中,片外缓冲器111中所需的预定数据量是可编程的)。在另一种实施例中,当片内缓冲器119中具有预定的数据量(不必是用字数表示的)时,环路1250保持打开(在一种这样的实施例中,片内缓冲器119中所需的预定数据量是可编程的)。在一种实施例中,如果具有预定的数据量(至少二分之一帧片内,至少一个帧片外)时,环路1250保持打开,但帧的转发将不再开始,直到整个帧是片内的。
例如,在一种实施例中,片内数据帧缓冲器55足够大到保持至少六个数据帧(即,六个帧最大的帧规模是2112个字节)。发送的数据首先移动到片外缓冲器111内(例如来自磁盘母板),随后移动到片内数据帧缓冲器55。通常情况下,数据可以在高达每秒126兆字节的速率下从数据帧缓冲器55中转发出去,然而在一种实施例中,从片外缓冲器111到片内数据帧缓冲器55的转发是在较低的速率下进行的。如果己经有一个小于完整的帧移动到片内数据帧缓冲器55中,则它仍然可以开始帧转发,并且在(约)每秒126兆字节的全光纤信道速率下完成整个帧的发送,只要在数据需要转发出去之前将最后部分的帧移动到片内帧缓冲器55内。
所以,按照本发明的一个实施例,如果片内数据帧缓冲器55中含有至少二分之一的数据帧,则环路1250保持打开,并且片外缓冲器111中含有至少一个数据帧。在一种这样的实施例中,需要保持环路1250的控制(“保持环路开路”)的这一数据量在片内缓冲器55中约一千个数据字节(即2,112字节帧的二分之一),以及约片外缓冲器111中2千个字节(即,一个2,112字节的帧),二数据量是可以由微处理器112设置的可编程值。在一种实施例中,正象所描述的那样,如果具有预定的数据量,则环路1250保持开路,但仅在片内具有了整个帧以后,启动帧的转发;在一种这样的实施例中,CFW(当前填充字)信号被传送到环路1250,直到整个帧是片内的,并且帧的传送可以开始为止。
转发出去的帧数的计数是由本发明的一种实施例的片外缓冲器111中的控制器产生的。将固件可编程计数X帧(保持环路开路的片外缓冲器111中所需的帧数)与转发的帧数计数比较,以便决定数据是否转发到了数据帧缓冲器中。数据帧缓冲器是一个片内RAM,用来临时存储来自片外更低存储器的数据,从而可以在全光纤信道接口速率下传送数据。第二个比较器用来将数据帧缓冲器中具有的数据量与固件可编程计数,Y个字(保持环路开路的片内缓冲器55中需要的字数)比较,以确定数据帧缓冲器中保持环路1250开路已有的充足的数据。X和Y的值是固件可编程的,使得该逻辑电路可以用于各种各样的片外随机存取存储器(“RAM”)解决方案和转发速率。
本发明的一个目的是保持环路1250开路,并且在端口116上立即具有数据时避免额外的仲裁循环。环路1250不必保持开路,以等待数据,如果等待将是一个延长时间的话(例如进行标题切换所需的时间),这是因为这可以避免环路1250上其他的端口进行转发的缘故。
结论已经描述的光纤信道环路接口电路(1220)包括专用的发射帧缓冲器(73),用于环路初始化和响应。具有这样的专用发射帧缓冲器(73)使得双端口节点(1220)中的一个端口(116)能够传送初始化或应答帧,而另一个端口(116)传送或接收数据帧。专用接收缓冲器(53和55)也用于二端口节点(1220)的每一个端口(116)。从光纤信道(1250)接收的循环冗余码信息与一个帧一起存储在三个帧缓冲器(53,53’或55)中的一个中。随后,检验这些数据和CRC,以确保数据在帧缓冲器(53,53’或55)中的完整性。只要保持最少的数据量(它是由编程决定的,称为“可编程数据量”)用于传输,就保持环路的控制(即环路连接保持开路),以便减少仲裁环路(1250)的控制总的时间。
在一种实施例中,本发明提供了一种通信信道系统(1220)。系统(1200)包括具有第一端口(116)和第二端口(116)的第一信道节点(1220),每一端口(116)位于信道节点(1220)中,并且每一端口(116)支持光纤信道仲裁的环路通信信道(1200)。系统(1250)还包括位于信道节点(1220)中用来从信道接收帧的专用片内帧缓冲器(119)。
在一种实施例中,专用片内帧缓冲器(119)包括与第一端口(116)耦合用来从第一端口(116)接收非数据帧的第一入站非数据缓冲器(53),以及与第二端口(116)耦合用来从第二端口(116)接收入站非数据帧的第二入站非数据缓冲器(53’)。一种这样的实施例还包括一个片外缓冲器(111),其中,接收的非数据帧首先被接收到第一入站非数据帧缓冲器(53)中,随后从第一非数据帧缓冲器(53)转发到片外缓冲器(111)中。
在另一种实施例中,专用片内帧缓冲器(119)还包括作为组件的与第一端口(116)和第二端口(116)耦合用以从第一端口(116)和第二端口(116)接收入站数据帧的数据帧缓冲器(55)。一种这样的实施例还包括一个片外缓冲器(111),它与数据帧缓冲器(55)耦合,以接收从数据帧缓冲器(55)转发的入站数据帧,并将(来自磁盘表面(134)并进入通信信道(1250)的)出站数据帧从片外缓冲器(111)移动到数据帧缓冲器(55)。
在又一种实施例中,专用片内帧缓冲器(119)作为组件包括与第一端口(116)耦合用以从第一端口(116)接收入站非数据帧的第一入站非数据缓冲器(53),和与第二端口(116)耦合用以从第二端口(116)接收入站非数据帧的第二入站非数据缓冲器(53’),以及与第一端口(116)耦合用以从第一端口(116)接收入站数据帧的数据帧缓冲器(55)。一种这样的实施例还包括一片外缓冲器(111),它与数据帧缓冲器(55)耦合,用以接收从数据帧缓冲器(55)转发的入站数据帧,并将出站数据帧(来自磁盘表面(134)进入通信信道(1250)的数据帧)从片外缓冲器(111)移动到数据帧缓冲器(55)。
在某些实施例中,系统(1200)还包括一个与第一信道节点(1220)耦合的磁盘存储驱动器(1256),以及具有第二信道节点(1220)的计算机系统(1202),其中,第二信道节点(1220)与光纤信道环路(1250)中的第一信道节点(1220)耦合,以便通过光纤信道仲裁的环路通信信道(1250)在第一信道节点和第二信道节点(1220)之间转发数据。
本发明分另一个方面提供了一种磁盘驱动器(100),它包括一个可旋转磁盘(134)、与旋转磁盘(134)成传感关系的传感器(150),以及具有第一端口(116)和第二端口(116)的第一信道节点(1220),每一端口(116)支持一光纤信道仲裁的环路通信信道(1250)。第一信道节点(1220)与传感器(150)耦合。磁盘驱动器(100还包括一个位于信道节点(1220)中的专用片内帧缓冲器(119),用来从通信信道(1250)接收帧。在一种实施例中,片内缓冲器(119)作为组件包括与第一端口(116)耦合用以从第一端口(116)接收入站非数据帧的第一入站非数据缓冲器(53),和与第二端口(116)耦合用以从第二端口(116)接收入站非数据帧的第二入站非数据缓冲器(53’)。在一种这样的实施例中,磁盘驱动器(100)还包括一片外缓冲器(111),其中,接收的非数据帧首先被接收到第一入站非数据帧缓冲器(53)内,随后从第一非数据帧缓冲器(53)中转发到片外缓冲器(111)中。
本发明的另一个方面提供了一种通信信道方法。该方法包括下述步骤(a)在第一信道节点(1220)的第一端口(116)和第二端口(116)上支持一光纤信道仲裁的环路通信信道(1250);(b)在第一信道节点(1220)中构成一专用的帧缓冲器(119);(c)将数据帧和非数据帧接收到专用帧缓冲器(119)内;以及(d)从专用帧缓冲器(119)传送这些帧。
在该方法的一种实施例中,构成步骤(b)还包括下述步骤(b)(ⅰ)构成与第一端口(116)耦合的第一入站非数据缓冲器(53),和与第二端口(116)耦合的第二入站非数据缓冲器(53’);并且接收步骤(c)还包括下述步骤(c)(ⅰ)将入站非数据帧从第一端口(116)接收到第一入站非数据缓冲器(53)中;以及
(c)(ⅱ)将入站非数据帧从第二端口(116)接收到第二入站非数据缓冲器(53’)内。
该方法的一种这样的实施例包括步骤(e)构成与第一信道节点(1220)耦合的片外缓冲器(111);并且接收步骤(c)还包括下述步骤(c)(ⅲ)将接收的非数据帧从非数据帧缓冲器(53)传送到片外缓冲器(111)内。在另一种实施例中,构成步骤(b)还包括下述步骤(b)(ⅱ)构成与第一端口(116)耦合的第一入站非数据缓冲器(53),与第二端口(116)耦合的第二入站非数据缓冲器(53’),以及与第一端口(116)和第二端口(116)耦合的数据帧缓冲器(55);并且接收步骤(c)还包括下述步骤(c)(ⅳ)将入站数据帧从第一端口(116)接收到数据帧缓冲器(55)内。该方法的一种这样的实施例还包括步骤(f)构成与第一信道节点(1220)耦合的片外缓冲器(111);并且接收步骤(c)还包括下述步骤(c)(ⅴ)将接收的数据帧接收到数据帧缓冲器(55)中,随后将接收的数据帧从数据帧缓冲器(55)中转发到片外缓冲器(111)中;并且传送步骤(d)还包括下述步骤(d)(ⅰ)将要传送的数据帧移动到片外缓冲器(111)(例如来自磁盘表面(134)的数据帧),并且随后将要传送的数据帧从片外缓冲器(111)移动到数据帧缓冲器(55)中。在该方法的另一种实施例中,构成步骤(b)还包括下述步骤(b)(ⅲ)构成与第一端口(116)耦合的第一入站非数据缓冲器(53),与第二端口(116)耦合的第二入站非数据缓冲器(53’),以及与第一端口(116)和第二端口(116)耦合的数据帧缓冲器(55);并且接收步骤(c)还包括下述步骤(c)(ⅵ)将入站非数据帧从第一端口(116)接收到第一入站非数据缓冲器(53)内;(c)(ⅶ)将入站非数据帧从第二端口(116)接收到第二入站非数据缓冲器(53’)内;(c)(ⅷ)将入站数据帧从第一端口(116)接收到数据帧缓冲器(55)内;以及
(c)(ⅸ)将接收的数据帧接收到数据帧缓冲器(55)中,并且随后将接收的数据帧从数据帧缓冲器(55)转发到片外缓冲器(111)。本方法的一种这样的实施例还包括步骤(g)构成与第一信道节点(1220)耦合的片外缓冲器(111);并且传送步骤(d)还包括下述步骤(d)(ⅱ)将要传送的数据帧移动到片外缓冲器(111)中(例如来自磁盘表面(134)的数据帧),并且随后将要传送的数据帧从片外缓冲器(111)移动到数据帧缓冲器(55)。该方法的某些实施例还包括通过与第一信道节点(1220)耦合的磁盘存储驱动器(1256)与具有第二信道节点(1220)的计算机系统(1202)之间的光纤信道仲裁环路通信信道(1250)转发数据,其中,第二信道节点(1220)通过光纤信道仲裁的环路通信信道(1250)与第一信道节点(1220)耦合。
本发明的另一个方面提供了一种改进的通信信道系统(1200),它包括具有第一端口(116)和第二端口(116)的信道节点(1220),每一端口(116)支持光纤信道仲裁的环路通信信道(1250),该改进的通信信道系统(1220)还包括一个专用的缓冲器机构,用来接收帧。
所以,本发明使性能得到显著的增强,使得能够将非数据帧接收到一个或多个专用的非数据缓冲器(53)中和/或将数据帧接收到专用的数据缓冲器(55)中。在某些实施例中,有两个非数据缓冲器(53),并且它们同时接收双端口光纤信道接口节点(1220)的两个入站光纤(118)。在某些实施例中,提供一个数据缓冲器(55),用来在双端口光纤信道接口节点(1220)的入站光纤(118)上进行接收。在某些实施例中,这样的接收甚至是在节点(1220)同时在一个或两个出站光纤(118)上传送非数据帧时进行的。即,在端口的一个光纤(117)上的进行的接收也可以是在与同一端口另一光纤(118)上进行的传送同时进行的。
应当理解,上述描述仅是描述性的,并非是限定性的。尽管在上述描述中描述的本发明各种实施例的众多的优点和特征,以及各种实施例结构和功能的细节,但本领域中的普通技术人员能够理解,在上述描述的基础上,还可以有其他的许多种实施例。所以,本发明的全部范围应当由权利要求书来确定。
权利要求
1.一种通信信道系统,其特征在于,它包含具有第一端口和第二端口的第一信道节点,每一端口支持光纤信道仲裁的环路通信信道;以及位于信道节点内的专用片内帧缓冲器,用来从所述信道接收帧。
2.如权利要求1所述的系统,其特征在于,所述专用片内帧缓冲器包括与所述第一端口耦合用来从所述第一端口接收入站非数据帧的第一入站非数据缓冲器;以及与所述第二端口耦合用来从所述第二端口接收入站数据帧的第二入站非数据缓冲器。
3.如权利要求2所述的系统,其特征在于,它还包含一片外缓冲器,其中,首先将接收的非数据帧接收到第一入站非数据帧缓冲器中,随后,将其从所述第一非数据帧缓冲器传送到所述片外缓冲器。
4.如权利要求1所述的系统,其特征在于,所述专用片内帧缓冲器包括与所述第一和第二端口耦合的数据帧缓冲器,所述第二端口用来从所述第一端口和所述第二端口接收入站数据帧。
5.如权利要求4所述的系统,其特征在于,它还包含与所述数据帧缓冲器耦合的片外缓冲器,用来接收从所述数据帧缓冲器转发的入站数据帧,并且将出站数据帧从所述片外缓冲器移动到所述数据帧缓冲器。
6.如权利要求1所述的系统,其特征在于,所述专用片内帧缓冲器包括与所述第一端口耦合用来从所述第一端口接收入站非数据帧的第一入站非数据缓冲器;与所述第二端口耦合用来从所述第二端口接收入站非数据帧的第二入站非数据缓冲器;以及与所述第一端口耦合用来从所述第一端口接收入站数据帧的数据帧缓冲器。
7.如权利要求6所述的系统,其特征在于,它还包含一片外缓冲器,其中,首先将接收的数据帧接收到数据帧缓冲器内,随后将其从数据帧缓冲器转发到所述片外缓冲器,并且其中,首先将传送的数据帧移动到片外缓冲器,并随后从所述片外缓冲器移动到所述数据帧缓冲器。
8.如权利要求7所述的系统,其特征在于,它还包含与所述第一信道节点耦合的磁盘存储驱动器;以及具有第二信道节点的计算机系统,其中,所述第二信道节点与光纤信道环路中的第一信道节点耦合,以便通过所述光纤信道仲裁的环路通信信道在第一信道节点和第二信道节点之间转发数据。
9.一种磁盘驱动器,其特征在于,它包含可旋转磁盘;与所述旋转磁盘成传感关系的传感器;具有第一端口和第二端口的信道节点,每一所述端口支持一光纤信道仲裁的环路通信信道,所述信道节点与所述传感器耦合;以及专用片内帧缓冲器,它位于所述信道节点内,用来从所述信道接收帧。
10.如权利要求9所述的磁盘驱动器,其特征在于,所述专用片内帧缓冲器包括与所述第一端口耦合的第一入站非数据缓冲器,用以从所述第一端口接收入站非数据帧;以及与所述第二端口耦合的第二入站非数据缓冲器,用以从所述第二端口接收入站非数据帧。
11.如权利要求10所述的磁盘驱动器,其特征在于,它还包含一片外缓冲器,其中,首先将接收的非数据帧接收到所述第一入站非数据帧缓冲器中,随后从所述第一非数据帧缓冲器转发到所述片外缓冲器。
12.一种通信信道方法,其特征在于,它包含下述步骤(a)在第一信道节点的第一端口和第二端口的每一个端口上支持光纤信道仲裁的环路通信信道;(b)在所述第一信道节点内构成一专用的帧缓冲器;(c)将数据帧和非数据帧接收到所述专用帧缓冲器内;以及(d)从所述专用帧缓冲器传送帧。
13.如权利要求12所述的方法,其特征在于,所述构成步骤(b)还包括下述步骤(b)(ⅰ)构成与所述第一端口耦合的第一入站非数据缓冲器,和与第二端口耦合的第二入站非数据缓冲器;并且所述接收步骤(c)还包括下述步骤(c)(ⅰ)将入站非数据帧从所述第一端口接收到所述第一入站非数据缓冲器中;以及(c)(ⅱ)将入站非数据帧从所述第二端口接收到所述第二入站非数据缓冲器内。
14.如权利要求13所述的方法,其特征在于,它还包含下述步骤(e)构成与所述第一信道节点耦合的片外缓冲器;并且所述接收步骤(c)还包括下述步骤(c)(ⅲ)将所述接收的非数据帧从所述第一非数据帧缓冲器传送到所述片外缓冲器内。
15.如权利要求12所述的方法,其特征在于,所述构成步骤(b)还包括下述步骤(b)(ⅱ)构成与所述第一端口耦合的第一入站非数据缓冲器、与所述第二端口耦合的第二入站非数据缓冲器以及与所述第一、第二端口耦合的数据帧缓冲器;并且所述接收步骤(c)还包括下述步骤(c)(ⅳ)将入站数据帧从所述第一端口接收到所述数据帧缓冲器中。
16.如权利要求15所述的方法,其特征在于,它还包含下述步骤(f)构成与所述第一信道节点耦合的片外缓冲器;所述接收步骤(c)还包括步骤(c)(ⅴ)将接收的数据帧接收到所述数据帧缓冲器内,并且随后将接收的数据帧从所述数据帧缓冲器传送到所述片外缓冲器;并且所述传送步骤(d)还包括步骤(d)(ⅰ)移动要传送的数据帧到所述片外缓冲器,并且随后将要传送的数据帧从片外缓冲器移动到数据帧缓冲器。
17.如权利要求12所述的方法,其特征在于,所述构成步骤(b)还包括步骤(b)(ⅲ)构成与所述第一端口耦合的第一入站非数据缓冲器,与所述第二端口耦合的第二入站非数据缓冲器,以及与所述第一端口和所述第二端口都耦合的数据帧缓冲器;并且,所述接收步骤(c)还包括步骤(c)(ⅵ)将入站非数据帧从所述第一端口接收到所述第一入站非数据缓冲器中;(c)(ⅶ)将入站非数据帧从所述第二端口接收到所述第二入站非数据缓冲器中;(c)(ⅷ)将入站非数据帧从所述第一端口接收到数据帧缓冲器中;以及(c)(ⅸ)将接收的数据帧接收到所述数据帧缓冲器中,并且随后将接收的数据帧从所述数据帧缓冲器传送到所述片外缓冲器中。
18.如权利要求17所述的方法,其特征在于,它还包含步骤(g)构成一个与所述第一信道节点耦合的片外缓冲器;并且所述传送步骤(d)还包括步骤(d)(ⅱ)将要传送的数据帧移动到所述片外缓冲器中,并且随后将要传送的数据帧从所述片外缓冲器移动到所述数据帧缓冲器中。
19.如权利要求18所述的方法,其特征在于,它还包含步骤(h)通过与所述第一信道节点耦合的磁盘存储驱动器和具有第二信道节点的计算机系统之间的光纤信道仲裁环路通信信道转发数据,其中,所述第二信道节点通过所述光纤信道仲裁的环路通信信道与所述第一信道节点耦合。
20.一种通信信道系统,其特征在于,它包含具有第一端口和第二端口的第一信道节点,每一端口支持一光纤信道仲裁通信信道;以及用于接收帧的专用缓冲器装置。
全文摘要
一种用于光纤信道仲裁的环路串行通信信道设计中双端口节点中每一端口的接收非数据帧的专用接收缓冲器。这种改进的通信系统和方法包括具有双端口中每一端口支持通信信道的信道节点,两个端口从单个接口芯片连接,以及位于接收帧的芯片上的专用片内帧缓冲器。专用片内帧缓冲器包括两个入站非数据缓冲器(53,53’),两个端口中的每一个端口耦合一个,其中,来自每一端口的入站非数据帧被接收到各个入站非数据缓冲器内。该系统还包括一个片外缓冲器,其中,接收的非数据帧被接收到一个非数据帧缓冲器内,并从非数据帧缓冲器传送到片外缓冲器。数据帧缓冲器(55)与两个端口耦合,用来从端口接收数据帧,并将数据帧移动到片外缓冲器。另外,还描述了采用专用缓冲器接收帧的方法。
文档编号G06F13/368GK1290364SQ9881120
公开日2001年4月4日 申请日期1998年11月17日 优先权日1997年11月17日
发明者J·L·韦斯特比 申请人:西加特技术有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1