CN1304520A - 用于环路初始化和响应的专用帧缓存器及其方法 - Google Patents
用于环路初始化和响应的专用帧缓存器及其方法 Download PDFInfo
- Publication number
- CN1304520A CN1304520A CN98811240.XA CN98811240A CN1304520A CN 1304520 A CN1304520 A CN 1304520A CN 98811240 A CN98811240 A CN 98811240A CN 1304520 A CN1304520 A CN 1304520A
- Authority
- CN
- China
- Prior art keywords
- port
- frame
- data
- buffer
- frame buffer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/368—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/24—Testing correct operation
- H04L1/245—Testing correct operation by using the properties of transmission codes
- H04L1/246—Testing correct operation by using the properties of transmission codes two-level transmission codes, e.g. binary
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/42—Loop networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/48—Routing tree calculation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9031—Wraparound memory, e.g. overrun or underrun detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
- H04L49/9068—Intermediate storage in different physical parts of a node or terminal in the network interface card
- H04L49/9073—Early interruption upon arrival of a fraction of a packet
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2002—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
- G06F11/2007—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0038—System on Chip
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B5/00—Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
- G11B5/012—Recording on, or reproducing or erasing from, magnetic disks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Small-Scale Networks (AREA)
- Information Transfer Systems (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Multi Processors (AREA)
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
- Computer And Data Communications (AREA)
- Time-Division Multiplex Systems (AREA)
Abstract
一种包括用于环路初始化和响应(“响应”是指响应于来自其他节点的命令或询问而送出的非数据帧)的专用发送帧缓存器的纤通道环路接口电路。由于具有专用发送帧缓存器,因此允许双端口节点的一个端口发送初始化帧或响应帧,而另一个端口发送数据帧、响应帧或初始化帧。任一端口或两个端口可同时接收帧。此系统包括具有两个端口的通道节点以及该节点内用于环路初始化和响应的专用帧缓存器,每个端口支持一纤通道仲裁环路串行通信通道。有些实施例中,专用帧缓存器构造成在片缓存器并包括耦合至两个端口的两个入口非数据缓存器(53,53’)、耦合至两个端口的一个数据帧缓存器(55)和至少耦合至一个端口的出口发送帧缓存器。此外,还描述了用专用缓存器进行环路初始化和响应的方法。
Description
发明领域
本发明涉及海量存储器领域。具体而言,本发明涉及具有用于环路初始化和响应的专用缓存器的改进纤通道仲裁环路(“FC-AL”)装置及其方法。
发明背景
任何计算机系统的一个关键部件是存储数据的设备。计算机系统有许多不同的设备可存储数据。该系统中存储大量数据的公共处所是在磁盘驱动器上。磁盘驱动器的最基本部件有旋转的磁盘、使传感器在磁盘上移动至不同位置的执行机构,以及用于对磁盘写入和读出数据的电路。磁盘驱动器还包括对数据进行编码的电路,通过编码可成功地对磁盘表面检索和写入数据。除将数据传回请求的计算机和从请求的计算机取数据存到磁盘外,微处理器还控制磁盘驱动的大多数操作。
磁盘驱动器与计算机系统其余部分之间传送数据的接口通常是总线或通道,诸如“小型计算机系统接口”(SCSI)或“纤通道”。往往将该接口的某些方面标准化,以便来自不同厂家的各种设备能互换,从而都能连接共同的接口。通常由美国国家标准学会(ANSI)之类组织的某个标准委员会规定该标准。
各存储设备与各计算机之间交换数据的一种标准接口是纤通道。有些实施例中,纤通道标准包括仲裁环路(后文详述)。有些实施例中,纤通道标准支持SCSI类协议,以控制数据传送。
纤通道显著优于小型计算机标准接口(SCSI)设计。与传统SCSI设计的2-20兆字节/秒相比,纤通道提供目前高达106兆字节/秒的显著较大的带宽。与典型SCSI环境最多连接7或15套设备相比,纤通道提供可连接多达126套设备(包括主机)的较高连接性。纤通道能用单个连接器连接,无需交换器。与SCSI环境最大总长25米相比,采用同轴电导体的纤通道工作,设备间距离达30米,整达30米,整个通道采用光纤的则长达10公里。SCSI环境中,通过采用奇偶校验检测数据传输差错,而纤通道中,由运行不一致性和循环冗余码校验(CRC校验)信息识别差错。在5,802,080号美国专利(题为“多端口设计中采用CRC发生器的CRC校验”)和5,663,724号美国专利(题为“16B/20B编码器”)中,可看到更多的信息。此两专利均属于本发明者Westby,并都转让给本受让者Seagate Technology Inc.。
纤通道仲裁环路(FC-AL)是一种工业标准系统,其中利用面向字节直流均衡(0,4)游程受限8B/10B划分块传输码方案。FC-AL以106.25MHz时钟频率工作。1984年12月4日授权给Franaszek等人的“面向字节直流均衡(0,4)8B/10B划分块传输码”批准的4,486,739号美国专利中,讲述一种8B/10B编码器/译码器。
纤通道仲裁环路(FC-AL)使每个称为“节点”的多个设备可连接在一起。节点可为计算机系统中具有可连接纤通道“拓扑”(下面马上定义)的接口的任何设备(计算机、工作站、打印机、磁盘驱动器、扫描器等)。每一节点至少有一个称为NL端口(“节点环路端口”)的端口,以接入其他节点。把两个或多个端口连接在一起的部件被合称为“拓扑”或“环路”。每一节点与所设拓扑或环路中的所有其他节点通信。
端口是纤通道节点中的连结,虽然其中的数据可经纤通道传到其他节点的端口(外界)。典型的纤通道驱动器具有装在驱动器节点内的两个端口。每一端口包括一对“纤”,一根将信息载入端口,一根将信息载出端口。每一根“纤”为一串行数据连接,在一实施例中,每一根纤实际上是同轴线(例如,当各节点相互邻近时用的同轴铜导体);其他实施例中,纤至少在其某些路径以光纤来实现(例如,当节点隔开有明显的距离,诸如在不同的机箱,尤其是不同建筑物时)。连接各节点的纤对(一根将数据载入端口,一根将数据载出端口)称为“链路”,是每一拓扑的一部分。链路在节点间载送接“帧”组装的信息或信号。每一链路能处理多种帧(例如,初始化、数据和控制帧)。
由于每一纤仅沿一个方向载送数据,因而节点沿环路相互连接,其中节点在其有数据传送时,必对环路控制作仲裁。“仲裁”是协调节点以判决哪一个节点控制环路的过程。纤通道经仲裁的环路在环路中连接多个节点,无需集线器或交换器。节点端口用仲裁操作建立点对点数据传输电路。FC-AL是一种分布拓扑,其中每一端口至少包含建立电路最低需要的功能。仲裁环路拓扑用于连接2-126个端口节点间任意数量的节点。
有些实施例中,每一节点包含两个端口(每个端口连接一分开的环路),以提供冗余度,从而若一环路失效,另一环路能完成环路任务。双端口还使两个主机(例如两个主计算机)可共用一驱动器。
典型的第一代和第二代FC-AL驱动器中,两个端口共用帧验证和帧生成逻辑。这意味着如果一个端口在接收或发送帧,则另一端口实际上也忙(因为它不能同时使用帧验证和帧生成逻辑),因而迫使另一端口拒绝其主机总线适配器允许发送帧。有些主机总线适配器必须连接仲裁,并试图不断发送帧,直到主端口关闭为止。同样,驱动器也每次只能在一个端口上发送。有些情况下,必须暂停给定端口上的出口数据传输,以在另一端口上发送响应或执行环路初始化。CRC背景
数据传输操作大多利用差错校验,从而根据传输的首部和有效负载数据来校验差错码,以证实所接收的首部和有效负载数据的完整性。一种这样的差错校验方案利用循环冗余码(CRC)信息。利用CRC差错校验的典型电路将包含CRC校验器和CRC发生器,前者用于验证接收到的数字字的完整性,后者用于产生正在发送的数字字的CRC信息。在多端口设计中,每一端口必须有CRC校验器和CRC发生器,以处理每一接收导弹数字字的验证和产生每一正在发送的数字字的CRC信息。许多应用中,电路或环路接口模块每次只在一个端口上发送,例如,通过多端口接口模块与计算机网络通信的磁盘驱动器子系统在任何时候只通过一个端口准备和发送数据。然而,环路接口模块在给定时刻都会试图通过多个端口接收数据。
通过多个端口接收数据的一种途径只是当一个端口已经在接收数据时,禁止通过其他端口接收数据。这种途径使多个端口之间可共用公共资源,诸如CRC校验器或帧验证逻辑。接收数据的第一端口取得公共资源的应用,以排除其他端口,从而禁止其他端口接收数据。因此,在其他端口上不能接收输入数据。从而其他端口受到限制,只有发送数据的功能。此途径导致其他端口响应请求发送数据时,收到“忙”状态,因而需要反复请求发送数据的序列,至到第一端口完成其操作,并释放公共资源。环路初始化背景
在多环路网络中,在检测到差错状态后以及当环路接口模块接入通道或纤通道上电时,需要使环路“初始化”。通常通过在环路上发送环路初始化数据完成初始化。然而,如果连接到环路的环路接口模块已经通过连接另一环路的端口在接收数据,则该环路接口模块就不能接收环路初始化数据。在这种环境下,通常暂停数据传输,允许先进行环路初始化。其他情况下,环路初始化序列将停止,并进入连续重发模式,直到其他环路(双环路节点中的)完成数据接收。此外,如果环路接口模块一次只能在一环路上接收,则环路初始化出现在一通道上时,这些模块不能通过其他端口接收数据。
在计算机网络不同设备之间传输数据方面,纤链路颇受重视。具体而言,在频宽大、连接性高、连接模块方便、传输距离远,以及其他方面,纤通道比小型计算机系统接口(SCSI)总线有显著的优点。例如,典型的SCSI总线能在总距离长达约25米时处理多达15个模块,而纤通道能处理多达126个模块,用电的方式传输时,其模块间距离约30米,而用光传输时,可长达10公里。因此,为了达到例如太字节(terrabyte)/秒峰值的数据传输速率,需要多达70条SCSI总线,但只需约10条纤通道。
重要的是通道尽快投入运行(即“初始化”),以减小数据业务量负载,否则该负载会加到其他通道上。
因此,需要一种布局,以允许多端口环路接口模块在多条通道上同时接收数据和非数据帧,或者在一通道上发送帧,同时在另一通道上接收数据,或者在多条通道上同时发送初始化和响应帧。对于存储于在片(on-chip)缓存器中的数据也需要提高的较佳的数据校验性能。
发明概要
一种用于环路初始化和响应的方法和专用帧缓存器。描述一种纤通道环路接口电路,其中包括用于环路初始化和响应的专用发送帧缓存器(“响应”是指响应于其他节点来的命令或询问而发送的非数据帧)。具有这种专用发送帧缓存器可使双端口节点的一个端口发送初始化帧或响应帧,同时另一端口发送数据帧、响应帧或初始化帧,并在一个实施例中,一个或两个端口也能同时接收帧。
本发明提供一种改进的通信通道系统,其中包括第一通道节点以及第一通道节点中的专用帧缓存器,前者具有分别支持纤通道仲裁环路串行通信通道的两个端口,后者用于环路初始化和响应,它包含一个或多个专用分量帧缓存器。在一些实施例中,该专用帧缓存器做成在片缓存器,其中包括耦合到第一端口的第一入口非数据缓存器、耦合到第二端口的第二入口非数据缓存器以及耦合第一和第二端口中至少一个的出口发送帧缓存器。
作为任选项,此系统还包括利用发送帧缓存器的数据,在第一端口和第二端口上基本上同时执行环路初始化的环路初始化电路。有些实施例中,专用帧缓存器包括具有约80个字的发送帧缓存器(其中,在本情况下,每个“字”长度为36位一32个数据位加4个奇耦校验位)。在另一实施例中,专用帧缓存器包括耦合到第一和第二端口中至少一个,以进行环路初始化和响应的发送帧缓存器。
此系统的一些实施例中,发送帧缓存器在第一端口上发送环路初始化或响应,而且基本上同时在第二端口上发送数据。在一个这样的实施例中,此系统还包括利用发送帧缓存器中的数据,基本上同时在第一端口和第二端口上执行初始化的环路初始化电路。
此系统的一些实施例中,专用帧缓存器做成在片缓存器,其中包括耦合到第一和第二端口中至少一个,以进行环路初始化和响应的专用发送帧缓存器。在这样的一个实施例中,专用发送帧缓存器耦合到两个端口,保留约一半的缓存器空间用于第一端口,而另一半的缓存器空间用于第二端口,此系统还包括利用发送帧缓存器中的数据,基本上同时在第一端口和第二端口上执行环路初始化的环路初始化电路。作为任选项,此系统的任何这些实施例还包括耦合到第一节点的磁盘存储驱动器,以及连接到第二节点的计算机系统(或者,等价地,具有第二节点的计算机系统),其中,第二节点在通信通道与第1节点耦合,以便在第一和第二节点之间传输数据。本发明的另一方面提供一种方法,其中包括在第一通道节点的两个端口中的每个端口支持纤通道仲裁环路串行通信通道,并对位于第一通道节点的专用帧缓存器收发帧。
此方法的一些实施例中,专用帧缓存器包括耦合到第一端口的第一入口非数据缓存器、耦合到第二端口的第二入口非数据缓存器、耦合到第一端口和第二端口的数据帧缓存器,以及专用发送帧缓存器。此方法的有些版本提供利用专用发送帧缓存器中的数据,基本上同时在第一端口和第二端口执行环路初始化。作为任选项,专用帧缓存器包括具有约80字的发送帧缓存器,每个字长为36位一32位数据加4个奇偶校验位。有些实施例提供来自专用帧缓存器的发送帧,其中包括来自耦合到第一和第二端口中的至少1个的专用帧缓存器的环路初始化和响应帧,以进行环路初始化和响应。
此方法的其他实施例还提供在第一端口上发送数据时,也基本上同时在第二端口上接收数据。
此方法的一些实施例中,专用帧缓存器做成在片缓存器,并包括耦合到第一和第二端口中至少一个,以进行环路初始化和响应的专用发送帧缓存器。在这样的一个实施例中,专用发送帧缓存器耦合到两个端口,并保留约一半的缓存器空间用于第一端口,另一半的缓存器空间则用于第二端口,此方法还包括利用发送帧缓存器中的数据,基本上同时在第一端口和第二端口执行环路初始化。在另一个这样的实施例中,此方法还包括在耦合到第一节点的磁盘存储器驱动器与耦合到第二节点的计算机系统之间,或具有第二节点的计算机系统之间传输数据,其中,第二节点在通信通道与第一节点耦合,以便在第一和第二节点之间传输数据。
因此,本发明通过允许从可在双端口纤通道接口节点的一个或两个出口纤上进行发送的专用发送缓存器发送环路初始化帧和/或响应帧,提供显著的性能强化。有些实施例中,即使在一条入口纤上接收数据帧,和/或在一条或两条入口纤上同时接收非数据帧,也执行上述发送。即,在一个端口的纤上进行接收的同时,任选地执行该端口另一纤上的发送。
附图概述
图1为带有纤通道接口的磁盘驱动器100的方框图。
图2为具体体现本发明的信息处理系统1200的方框图。
图3为纤通道节点接口芯片110的方框图。
图4为纤通道环路端口电路20的方框图。
图5为一实施例中用于保持开环的比较器逻辑30的方框图。
图6为纤通道环路控制电路40的方框图。
图7为纤通道接收路径电路50的方框图。
图8为纤通道缓存器前(pre-buffer)接收路径电路51的方框图。
图9为纤通道接收帧非数据缓存器电路53的方框图。
图10为纤通道数据帧缓存器电路55的方框图。
图11为纤通道公共接收路径电路59的方框图。
图12为纤通道传输控制电路60的方框图。
图13为纤通道发送路径电路70的方框图。
图14为纤通道发送帧缓存器电路73的方框图。
图15为纤通道数据发送路径电路80的方框图。
详细描述
在下面的较佳实施例中详述中,参照构成实施例的一部分的附图,其中图解示出实践本发明的特定实施例。应理解可利用其他实施例,并可作结构性变化而不脱离本发明的范围。
本申请讲述的发明可用于各种磁盘驱动器,其中包括硬盘驱动器、ZIP驱动器、软盘驱动器、光盘驱动器、CD-ROM(小型光盘只读存储器)驱动器,以及任何其他类型的驱动器、驱动器系统(如“价廉/独立磁盘驱动器冗于阵列”或RAID配置)或其他设备,其中,在驱动器和其他设备或信息处理系统之间传送数据。有些实施例中,本发明可用于非磁盘设备的节点接口,诸如集线器和交换器(用于将多条纤通道环路相互连接)、工作站、打印机, 以及纤通道仲裁环路上连接的其他设备或信息处理系统。
以下为讲述本发明的四个相关部分:1)环路初始化和响应用的专用帧缓存器,2)接收帧用的专用帧缓存器,3)纤通道CRC用于在片存储器数据完整性,4)减少仲裁环路开销的装置和方法。第4部分是主要涉及本发明详况的部分。然而,其他部分提供有关本发明总体环境的相关信息。
图1示出带有纤通道节点接口的磁盘驱动设备100的方框图。
参阅图1和图2,纤通道环路接口电路1220包括用于环路初始化和响应的专用发送帧缓存器73。(“环路初始化”由发送1个或多个专用非数据帧组成的序列(并检测这些帧的响应)使纤通道环路初始化来完成。“响应”是指响应于命令或查询而从其他节点发来的非数据帧。)纤通道仲裁环路通信通道1250(也称为环路1250或纤通道环路1250)可用于在磁盘存储设备100与计算机1202或其他信息处理设备之间传送数据。一个实施例中,纤通道环路1250为串行通信通道;其他实施例中,用2条或多条并行线路(或“纤”)实现光通道环路1250。具有该专用发送帧缓存器73使得可以双端口接点1220的一个端口116发送初始化或响应帧,同时另一端口发送或接收数据帧。端口116为串行线路,一条线117用于入口数据,另一条线118用于出口数据,2条线117和118都连接到通信通道环路1250并形成其一部分。还对双端口节点的每一端口116提供专用接收缓存器(53、53’和55)。(注意,具有带撇参考号(如53’)的方框提供与不带撇的相应方框(如53)相同的功能,但用于分开的环路端口或通信通道)。将从纤通道1250收到的循环冗于码信息和帧存储在一个或多个帧缓存器(53、53’或55)中的一个,并校验该帧以确保在帧缓存器(53、53’或55)时数据的完整性。为了减少仲裁环路1250的控制所花费的总时间,维持环路1250的控制(即保持环路连接开放),直到获得可编程数量的数据用于传输为止。
有些实施例中,磁盘驱动器100包括磁存储头盘组合件(HDA)144,该组合件144具有一个或多个圆形磁盘片134、每一磁盘片上的一个或多个磁读/写传感器150,以及支架传动组合件126。传感器(或“磁头”)与HDA接口113之间的信号对圆形磁盘片134传送收、发数据。这样,有些实施例的磁盘驱动器(例如图1的磁盘驱动器1256)就包含HDA114和HDA接口113(如通常的SCSI驱动器),并将一个或多个这种通常的磁盘驱动器1256连接到外部节点接口1220,以便连接环路或纤通道拓扑(如图1所示)。其他实施例中,“磁盘驱动器”具有图2中磁盘驱动器100的特征,并包括在总磁盘驱动器100中与磁盘驱动器1256综合为一体的节点接口1220。一个实施例中,又对离片缓存器111传送收、发数据。本发明提供专用在片缓存器119。在实施例中示出该缓存器119包括每一端口(即缓存器53和53’)的接收非数据帧缓存器53(或称为“入口非数据缓存器53”)、在一实施例中2个端口可同时用的发送帧缓存器73(其他实施例中,一次仅一个端口用一个缓存器),以及共用数据帧缓存器,并带有CRC校验器596(见图11)。在下文将充分说明的一个实施例中,为端口A保留40字的发送帧缓存器,为端口B也保留40字,因而能同时使2个端口初始化。这样的实施例等效于具有2个分开的40字发送帧缓存器,每个端口一个,可同时使用。在这样一个实施例中,这些“字”每个长36位(32个数据位40个奇偶校验位)。
将从纤通道环路1250与数据帧一起收到的CRC有效性校验信息和该数据一起存储在数据帧缓存器55中,并在从数据帧缓存器55读出数据时进行校验,因而对数据帧驻留在数据帧缓存器55时或其前数据帧经过的任意处可能产生的数据差错提供校验。同样,从光通道环路120与非数据帧一起收到的CRC有效性校验信息和该数据一起存储在非数据帧缓存器53(或53’)中,并在从非数据帧缓存器53(或53’)读出数据时进行校验,因而对驻留在非数据帧缓存器53(或53’)的非数据帧或其前数据帧经过的任意处可能产生的数据差错,并用于在磁盘驱动器110内帮助控制全局数据传输、路由选择、信令、差错复原等。本发明中,纤通道接口芯片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内。其他实施例中在与芯片110分开的电路上实现收发机115和115’,其中包括并一串变换器/串一并变换器功能。
其他实施例中,收发机115仅为串行环路1250与芯片110之间的接口,其中,在芯片上产生并一串变换/串一并变换为长10位或20位的数据。
图2为计算机系统1200的示意图。
有利的是本发明很适用于计算机系统1220。计算机系统1220也称为电子系统或信息处理系统,其中包括中央处理器(CPU)、存储器和系统总线。计算机系统1200包括具有中央处理器1204、随机存取存储器(RAM)1232和耦合中央处理器1204和随机存取存储器1232进行通信的系统总线1230的CPU信息处理系统1202。此CPU信息处理系统1202包括纤通道节点接口1220。一个或多个磁盘存储信息处理系统100-100’的每一个包括一个或多个磁盘驱动设备1256和一个纤通道节上接口1220。
有些实施例中,将多个磁盘驱动器1256连接到一个节点接口1220,例为在RAID(价廉/独立磁盘驱动器冗余阵列)配置中,使设备100’为磁盘驱动器的RAID阵列。CPU信息处理系统1202也可包括输入/输出接口电路1209,该电路1209驱动内部输入/输出总线1210及其连接的若干外围设备,为1212、1214和平共处216。外围设备可包括硬盘驱动器、磁光驱动器、软盘驱动器、监视器、键盘和其他这类设备。任何类型的磁盘驱动器或其他外围设备都可用这里介绍的纤通道装置和方法(尤其是利用例如纤通道节点接口1220的改进)。每一设备可用端口A或端口B连接任何给定的环路1250。
系统1200的一实施例任选包括具有中央处理机1204’(等同于中央处理机1204)、随机存取存储器(RAM)1232’(等同于RAM1232)和耦合中央处理器1204’与随机存取存储器1232’进行通信的系统总线1230’(等同于系统总线1230)的第2CPU信息处理系统1202’(等同于系统1202)。CPU信息处理系统1202’包含其本身的纤通道节点接口1220’(等同于节点接口1220),但通过与环路1250分开并独立的第2纤通道环路1250’连接一个或多个磁盘驱动系统100(在此图例中,仅仅连接磁盘系统100’,但在其他例子中,通过100,连接全部设备或磁盘系统100)。此配置使2个CPU系统1202和1202’可用每一CPU系统1202的分立纤通道环路共同一个或多个磁盘系统100。在另外的实例中,全部的设备100-100’和全部的CPU系统1202-1202’都连接环路1250和1250’。
一实施例中,本发明不支持数据帧无序传输。按照本发明另一实施例,纤通道控制器也实现组织码字数据帧达到收发信目的的协议。该协议揭示于G.L.Rouse的5,260,933号美国专利,题为“无序传输串行数据网的确认协议”。建立本发明一实施例中用的纤通道规范包括以下ANSI标准:
纤通道FC-PH X3T 11/项目755D/Rev.4.3
物理和信令接口
纤通道FC-AL X3T11/项目960D/Rev.4.5
仲裁环路
纤通道FC-AL2 X3T11/项目1133D/Rev.6.3
仲裁环路
纤通道FCP X3T10/ Rev.0/2
SCSI协议 X3.2
69-199XI.环路初始化和响应用的专用帧缓存器
对本发明一实施例而言,已将帧缓存器加到第三代专用集成电路(ASIC)芯片(帧通道接口芯片100),使两个端口可用时工作。提供接收非数据帧的两个缓存器(也称为图1的“接收非数据帧缓存器”53和53’),可在节点的两个端口同时接收命令和FCP帧(纤通道协议帧)(也允许全双工运转,即在端口的一条纤接收,同时在该端口的另一条纤发送)。这使磁盘驱动器100(见图2)可在一个端口接收命令(或其他非数据帧)的同时,在同一端口和/或其他端口传送数据,而不是等待到传送暂停或结束才进行接收。由于比通常的方法提早具有命令,本发明允许在进行数据传送时分拣并优化命令,因而改善系统1200的性能。
发送帧缓存器73(见图13的说明)允许在一个端口发送响应帧,而在另一端口同时使数据传送工作。此发送帧缓存器73还允许在一个端口执行环路初始化,而不暂停滞不前其他端口上的传送或等待其完成。
双端口纤通道仲裁环路设计中,可用在片帧缓存器处理入口帧和出口帧。可用各种方法配置在片RAM,以达到性能与硅产之间均衡。本说明详述专用帧缓存器119和单帧发送路径70的应用,这两部分用于存储和发送纤通道环路初始化帧及单帧纤通道响应。
双端口设备中,一个端口可接收或发送数据,并用多数ASIC资源处理传输。可要求许多计数器和状态机处理这种多帧序列。
本发明中,无需每个端口双重设计或暂停数据传输,仅要求数量有限的逻辑电路为另一端口提供功能,使该端口可在主端口传输数据时收、发帧。本发明的有些实施例中,与单帧发送路径电路70一起,提供专用发送帧缓存器73(见图13),以便能在一个端口发送帧的同时,在其他端口传输数据。逻辑电路可动态配置,从而任何一个端口都有可传输出数据或使用发送帧缓存器73。
当在主端口进行数据传输,并在另一端口进行环路初始化时,数据传输可继续进行,无需中断。收到的环路初始化帧(非数据帧)在其写入帧缓存器(如发送帧缓存器73,见图13)之前,进行校验。微处理器112具有对发送帧缓和存器73的读/写口,可在允许发送出接收帧之前检查并修改该帧。在帧缓存器存放帧的“首部”和“有效负载”。(帧的“首部”包含诸如源标识符、序列计数和帧的始发端标识符。帧的“有效负载”是要发送的数据的主体)在微处理器112的控制下,单帧发送路径70(见图3)汇总帧,添入帧起始与帧终止的界符,并产生帧循不冗余码(CRC)信息。当在主端口进行数据帧传输,并要求发送纤通道协议(FCP)响应帧时,数据传输可继续进行,无需中断。参阅图3,微处理器112将响应帧的“首部”和“有效负载”的入发送帧缓和存器73。单帧发送电路70汇总帧,添入帧起始与帧终止的界符,并产生帧CRC信息。还提供一些附加的环路控制逻辑,以开放环路1250进行帧传输。
参阅图14,发送帧缓存器73要求读和写的指针(分别为734和733)。(虽然有时标为“单帧发送帧缓存器”或“发送帧缓存器”,缓存器73属于“发送帧缓存器”,在其他实施例中,缓存器73为一个或多个端口的每一个添入一个或多个发送帧;此时使用“发送帧缓存器”的术语以包括所有上述实施例。)单帧发送电路70(下文在图13中详述)需要增长计数器71、发送帧形成状态机72、CRC发生器76和发送多路开关选择器(MUX)74。纤通道接口介绍
图3为帧通道节点接口芯片110的方框图。本发明纤通道节点接口逻辑110负责纤通道协议,包括仲裁环路逻辑和成帧逻辑。一个实施的优化为按了类SCSI来实现(见上文注出的FC-AL规范),只使用纤通道协议(FCP)标准规定的SCSI高层协议。纤通道节点接口逻辑110包括四个在片帧缓存器(53、53’55和73),以协助双端口和全双2运转,并支持各种缓存器频宽。帧通道节点接口逻辑110还与微处理112接口,使微处理器112可配置纤通道节点接口逻辑110,并读出有关纤通道节点接口逻辑110的目前状态的状态信息。
纤通道节点接口逻辑110包括2个环路端口电路20(一个用于端口A,另一个用于端口B,每端口具有数据输入接口和数据输出接口,以支持环路通信)、环路控制电路40(也称为帧发送电路40)、接收路径逻辑50、传输控制逻辑60、单帧发送电路70、发送路径多路开关选择器(MUX)79、数据帧发送逻辑80微处理器接口90。这些组件支持诸职接收帧处理发送数据帧生成、单帧发送生成、传输控制和处理器接口等功能。
微处理器电路接口90提供微处理器112对纤通道节点接口逻辑110中寄存器和计数器的接入。(当讲述“微处理器”时应理解该术语包含任何合适的可编程逻辑器件。)在纤通道接口应答前,由外部微处理器110将接口寄存器初始化。通过此接口将输出传输的初始化,从而通过该接口可获得接收传输的状态。
图3的输入信号包括将纤通道16来的数据输入送入端口A的环路端口电路20的“A入”3201,以及将纤通道16来的数据输入送入端口B的环路端口电路20的“B入”3022。“离片缓存器来的数据”3051将离片缓存器111来的数据送到接收路径50。缓存器状态3061将状态提供给传输控制60。进入MPU接口90的“MPU地址”3091和“MPU数据”3095分别提供来自微处理器112的地址和数据。进入MPU接口90的“读出启动”3092和“写入启动”3092提供来自微处理器112的启动信号。信号MPU3076使微处理器具12可接入发送帧缓存器73。“A出”3023将数据从端口A的环路端口电路20送到纤通道16,“B出”3024将数据从端口B环路端口电路20送到纤通道16,“B出”3024将数据从端口B环路端口电路20送到纤通道16。环路端口电路20
图4为纤通道环路端口电路20的方框图。本发明一实施例的纤通道设计包括2个相同的环路端口电路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位数据加2个K字符(用于表示特殊排序的集合)放入仲裁环路逻辑26前,对其字有效性进行校验。仲裁环路逻辑26的输入对发送时钟进行再同步后,可传到接收成帧逻辑,或通过编码器27在环路1250上重新发送。一个实施例中,译码器在每次操作中将一个8位字符变换为一个10位字符;其他实施形态中在每次操作中将2个或多个8位字符变换为相应数量的10位字符。(见5,663,724号美国专利题为“16B/20B译码器”。)仲裁环路逻辑26包含环路状态机、有序机译码器,以及弹性插入和删除功能。环路端口电路20实现纤通道仲裁环路ANSI标准(即上述FC-AL和/或FC-AL2)规定的仲裁环路协议。
在一个实施例中,纤通道数据被串行发送并由收发机115,变换为10位并行数据。接收寄存器21利用收发机115中接收部分产生的时钟,辅获来自收发机115的10位数据(A_IN3021或B_IB3022)。该数据在传过8B/10B译码器22前,立即转换为20位的长度(即2个10位的字符长度)。虽然称为8B/10B“译码器”,在一实施例中,译码器22每次操作时将一个10位字符变换为一个8位字符;在其他实施例中,每次操作时将2个或多个10位字符交换为相应数量的8位字符。
8B/10B译码器逻辑22输入接收寄存器21捕获的编码数据。将2个10位字符地并行译码,以输出2个8位字符。校验输入字符的运行奇偶性并将差错状态传给字同步状态机23和仲裁环路逻辑26。随着运行不一致性差错,将负运行不一致性加到下一有序集。也校验编码规则违例并将编码违例状态传给字同步状态机24。
接收时钟丢失检测器24检测收发机115来的接收时钟何时停止。当检测到“接收时钟丢失”状态时,字同步状态机23复原,避免数据进入仲裁环路逻辑数FIFO(FIFO为先进先出存储器,通常用于使具有不同速率的总线或处理之间相互接口)。发送当前填充字(CFW,后文详述),直到再取得字同步为止。
字同步状态机23的逻辑为字同步监视输入数据流。当按照适当字节/控制字符定位检测到3个有效有序集,而且没有检测到交错无效字符时取得字同步。根据FC-PH(即FC-PH物理和信令接口X3T11/项目755D/Rev.43)标准定义“丢失字同步”。取得音同步时,将数据输入到仲裁环路逻辑26的FIFO。
丢失同步定时器25用于确定何时出现单同步丢失状态超过一个最长帧时间(因为要用1帧长的时间检测3个有效有序集)。此定时器一超过时间,就用丢失同步中断信号4025中断微处理器112,从而采取行动。
仲裁环路逻辑包含环路弹性FIFO环路FIFO控制逻辑、有序集译码逻辑、环路状态机逻辑、当前填充字选择逻辑、环路输出多路复用器逻辑和杂项功能。环路弹性FIFO提供使输入数据(由接收时钟定时)与发送时钟再同步所需的缓冲环路FIFO控制逻辑监视仲裁环路逻辑26的状态,以确定要求插入操作或要求删除操作。用有序集识别逻辑将有序集译码。这些有序集包括FC-PH定义的有序集(即FC-PH物理和信令接口X3T11/项目755D/Rev.43),其中包含帧界符和仲裁环路有序集。当前填充字选择逻辑监视环路状态,并将有序集译码,以确定当前填充字(CFW)。启动仲裁环路时,硬件状态机用有序集译码执行FC-AL标准(即纤通道FC-AL1仲裁环路标准X3T11/项目960D/Rev.4.5),或纤通道FC-AL2仲裁环路标准X3T11/项目1133D/Rev.6.3)所述的环路功能。输入信号“环路A发送控制输出”6425和环路B“发送控制输出”6427提供从图6的逻辑到仲裁环路逻辑26的输入。输出信号“环路A状态和控制”6422和“环路B状态和控制”6432控制各环路的输出,并将状态提供给环路控制逻辑,该逻辑又生成时环路状态集(见图6)的请求。输出信号“环路A数据”4026和“环路B数据”4027将数据提供给予相应的本地端口(分别提供给图7的的方框51和51’)。
一个实施例中,8B/10B编码器逻辑27受理来自仲裁环路逻辑26的16位数据和2个K字符(K常为0)。一个实施例中,将输入编码成2个分开的10位字符,一次输出一个给收发机115(见图1),由该收发机将数据变换为串行流。其他实施例中,将两个10位字符(即20位)并行输出给收发机115,由该收发机将数据变换为串行流。发送多路复用器79(见图3)也提供指示何时传送帧结束(EOF)界符的状态,使编码器27可根据当前的运行不一致性选择正确类形(或“特色”)的EOF。当端口进行发送(处于开环状态)或仲裁环路逻辑26发送基元时,也在各非EOF基元的始端迫近使运行不一致性为负。输出信号A_OUT3023和B_OUT3024将数据发送给各自的收发机115和115’。
图5示出比较器逻辑30。一实施例中,一旦仲裁到控制,就用该逻辑保持环路开放。比较器5010将片外可得数据5011的数量与预定值X-FRAMES5013(一实施例中,这是可编排的值,并按经验确定其最佳值)比较。比较器5012将可得数据帧数据5015的数量与预定值Y-WORDS5017(一实施例中,这是可编排队的值,并按经验确定其最佳值;一实施例中,此值设为半帧中的字数;一实施例中,约有2000字,Y-WORDS为约1000字)比较。与门5014确定何时上述两个条件都满足,并输出“保持环路开放”信号5019。
图6为环路控制电路40(也称为帧发送电路40)的方框图。环路控制电路40(见图3和图6)包含控制逻辑,以产生对适当的仲裁环路状态机(在端口A和端口B的仲裁环路逻辑26中)的请求,以及时发送成帧状态机72(见图13)和81(见图15)的请求从而开始发送帧或R_RDY。
发送数据是序器逻辑41包括微处理器112要求传送时激活的逻辑。发送数据定序器逻辑41用输入信号“发送状态输入”6411监视该传送,并为传送的每一级产生“启动”(即启动信号“发送控制输出”6413)。这使得可产生传送准备和FCP响应,无需微处理器112介入。
环路端口A/B开放状态机42(端口A)和42(端口B)处理由另一L端口开放端口的事例或开放环路1250以发送帧时的事例。此逻辑产生仲裁和关闭环路1250的请求,以及发送R_RDY和各种帧的请求,并可配置用于半双2或全双2运转。
要启动仲裁权请求必须满足下列条件:
-从微处理器112要求按照发送端口启动发送帧,
-发送端口处于监视状态,
-传送长度计数非零,
-微处理器112不要求暂停传送,
-“非数据传送,或满足数据门限而尚未发送传输准备的数据写入传输,或满足数据门限和数据帧缓存器门限的数据读出传送”。
配置端口用于半双2模式,若处于已开放状态,可只发送R_RDY。配置端口用于全双2模式时,在已开放状态或开放状态都可发送R_RDY。促使要发送R_RDY的条件包括“有缓存器对缓和存器借贷(BB_Credit)且R_RDY少于最大BB_Credit”。(缓存器对缓存器借贷控制逻辑603(下文将在图12中详述)时连接端口发布缓存器借贷,使帧可发送。通过送R_RDY发布此借贷)。
配置端口用于半双2模式时,若处于开放状态,可发送帧。配置端口用于全双2模式时,若帧收方已将端口开放对于全双2模式,可按已开放状态或开放状态发送帧。
满足下列条件时产生发送帧的要求:
-数据帧缓存器55具有可用数据
-可提供缓存器对缓存器借贷(收到R_RDY)
-非数据传送或数据读出传送和传送长度计数(见图12方框609)非零
使环路1250关闭的条件包括:
-进入已开放状态时无缓存器对缓存器借贷
-处于已开放状态时无未完成R_RDY而且不再有BB_Credit
-端口处于已开放状态时有处理器占用请求
-已完成传送
-没有数据读出传送操作和数据
-收到CLS基元,而且不再有BB_Credit
-微处理器暂停请求待决,而且逻辑处于帧之间
再次参阅图6,环路端口A/B开放初始化控制状态机46(端口A)和46’(端口B)处理环路1250处于开放初始状态时的事例。逻辑46和46’产生发送帧要求。每一端口有一状态集(分别为46和46’)。微处理器112要求发送帧时,这些状态集产生发送帧要求,并监视EOF的发送。当该发送完毕时,对微处理器112产生“发送完毕”。
方框40的输入信号包括“有端口BB_Credit发送R_RDY”6017和“有端口借贷发送帧”6020(见图12)、“环路A状态和控制”6422以及“环路B状态和控制6432”(见图4),以及“有数据”6019(见图12)。从方框40输出的信号包括“发送控制输出”6413、“环路A发送控制输出”6425和“环路B发送控制输出”6427。
在下文题为“单帧发送路径电路70”的部分有关于单帧发送路径的进一步信息。Ⅱ.接收帧用的专用帧缓存器
在双端口纤通道仲裁环路设计1200中,可用在片帧缓存器119中的缓存器管理入口帧和出口帧。接收和发送的帧通常以较低的传输速率存放在大的片外区(例如离片缓存器111)即使离片缓存器111对一个端口能有足够的速率,对双端口设计所需带宽也会较大,从而增加外成本。可用各种方法配置FC-ALASIC100中的在片帧缓存器119(见图1),已达到性能、硅产和成本核算之间的均衡。本说明详述应用专用帧缓存器53和53’(总在片帧缓存器199的元件)在每端口同时接收非数据帧,并提供专用大型数据帧缓存器55(也是总在片帧缓存器119的一个元件)。在根据本发明的双端口设计中,可同时在2个端口116接收帧。这些帧接收后,通常移支较大的离片存储器111加以存储。帧传送到片外前,必须验证每一帧,因而必须校验帧的循环冗余码(CRC)。为了避免接收帧验证和CRC校验器逻辑重复,提供个体的接收非数据帧缓存器53和53’,每一端口116有一个,使得可用全部的接口速率同时接收帧,然后每次读出一个,加以验证并传送到片外。还提供大型公用数据帧缓存器55由各帧共用,从而可在一个端口接收和发送数据,而在其他端口同时接收非数据帧。此外,因为在每一端口提供2条各自的单项纤,一个端口能同时进行发送和接收。
例如,端口A接受光纤117可将非数据帧接收到非数据接收缓存器中,而端口A发送纤118发送来自数据帧缓存器55的数据帧或发送来自发送帧缓存器的非数据帧,与此同时端口B可将非数据帧接收到非数据接收缓存器53’,并发送来自发送帧缓存器73的非数据帧或来自数据帧缓存器55的数据帧(在端口A发送非数据帧的情况下)。可以选择数据帧缓存器55或接收帧缓存器53和53’中的一个使用接收帧验证逻辑和CRC校验器。注意,本发明的一个实施例提供一个数据帧缓存器55,一次只能有一个端口116使用,并且任何一次将其用于发送或接收。其他实施例中,提供多个数据帧缓存器55,以去除上述限制。又注意本发明的一个实施例只提供一个发送帧缓存器,一次只能由一个端口116使用。其他实施例中提供多个发送帧缓存器73,以去除上述限制,可真正在2个端口同时进行环路初始化操作(或发送其他非数据响应)。
当入口数据传输工作时,可在主端口接收数据或非数据帧。与此同时,可在另一端口接收非数据帧。将数据帧(其中包括首部、有效负载、CRC和帧界符)放入大型数据帧缓存器55,而将非数据帧(其中也包括首部、有效负载、CRC和帧界符)放入小型接收帧缓存器53(或53’)。每一端口116有一个接收帧缓存器53。3个帧缓存器(53、53’或55)中的一个具有可用数据时,选择该缓存器使用接收验证逻辑595和CRC校验器逻辑596(见图11)。
当出口数据传输工作时,在主端口发送数据帧。与此同时,可在任何一个端口接收非数据帧。从片外读取数据有效负载,并写入数据帧缓存器55加以存储到能开始进行接口传输为止。(从帧缓存器读出帧后添加首部、CRC和帧界符)。与此同时,可在主端口或另一端口接收非数据帧。将非数据帧写入接收帧缓存器53或53’保持到帧缓存器提供对接收验证逻辑595和CRC校验器逻辑596的接入。
授予数据帧缓存器55优先权,以用最高性能提供数据传输。数据传输暂停或完成时,将处理非数据帧。如果接收帧缓存器53填满,使得不再有环路缓存器对缓存器借贷,则暂停数据帧缓存器55读写操作,空示接收帧缓存器存储位置,从而可再提供缓对器对缓存器借贷。这时,入口数据帧可在数据帧缓存器55中累积,因为短时间暂停停读出时,可将新帧写入数据帧RAM555。由于短时间暂停写入时,可从RAM555读出帧,这段时间可暂时减少接口可用的出口数据帧。
图7为纤通道接收路径和帧缓存器块50(见图3)的方框图。接收路径和帧缓存器块50处理接收的帧,并将该帧直接送出片外(送到离片缓存器111)或送到单帻发送电路70,或者将该帧存放到接收帧的3个帧缓存器(接收非数据帧缓存器53或53’和数据帧缓存器55)中的一个内。接收路径50包括预缓存接收帧处理(方框51和51’)。数据帧缓存多路复用器52、端口A和端口B接收非数据帧缓存器53和53’、数据帧缓存器55、数据帧缓存器传送长度计数器54、帧缓存控制器56、公用接收路径59和缓存器接口58。
方框51的输入包括来自图6的“环路A数据”4026,以及也输入到图6的“环路A状态和控制”6422。方框51’的输入包括来自图4的“环路B数据”4026,以及也输入到图4的“环路B状态和控制”6423。数据帧缓存器55的输入包括“离片缓存器数据”3051。信号“数据传输控制”7521控制数据帧缓存多路复用器52。信号“BUF_PAUSE”7561通知帧缓存控制器56要求暂停(通常由于缓存器不能跟随上传输速率的频宽)。信号“计数器加载”7541通知数据帧缓存器传送长度计数器54载入计数值。
输出信号“BXFR_CNT_ZERO”7542指示全部传输数据进入选择的帧缓存器。帧缓存控制器56提供读启动信号RD_ENABLE 7532给端口A接收非数据帧缓存器53,提供RD_ENABLE 7552给数据帧缓存器55,提供RD_ENABLE7533给端口B接收非数据帧缓存器53’。缓存器控制接口58为离片缓存器111提供选择、选通和/或启动信号“离片缓存器控制”7589。输出信号“至离片缓存器的数据”3052提供数据帧和非数据帧给离片缓存器111。
数据帧缓存多路复用器52从具有“数据传输控制”7521位组的端口选择数据和预缓存接收状态机512。此复用器52的输出提供数据和状态信号(分别为图10中的8511和8512)给数据帧缓存器55,从而数据可写入数据帧缓存器的RAM555(见图10)。
图8为纤通道预缓存接收帧处理路径电路51的方框图,该电路准备从纤通道1250收到的帧,以输入3个帧缓存器(53、53’或55)。预缓存接收路径块51包括预缓存接收成帧状态机512、预缓存接收帧长度计数器515(及其多路开关选择器514)和EOF修改逻辑513。由于可在2个端口同时接收帧,此电路51有双份以用于端口A和端口B(即每一端口有一个)。
预缓存接收成帧状态机512监视输入流,以确定何时接收帧和R_RDY。检测到SOF时,为首部、有效负载和帧界符数每个字产生信号。此状态机512校验在首部或有效负载期间收到的无效基元以及破坏最大帧长度的传输(可能由于EOF受损)。
根据接收帧首部的R_CTL字段,在帧的始端将命令数最大帧长度或接收帧对端的帧缓存器中数据缓存区的最大帧长度(由多路开关选择器516选择)载入预缓存接收帧长度计数器515。如果在检测到EOF前,计数器达到0,则检测出长度差错。此功能有助于防止帧缓和存器中所分配空间超限。
EOF修改逻辑513校验入口帧,以发现是否数据帧,而且生成帧缓存器启动信号。EOF修改逻辑513捕获预缓存接收帧长度计数器515要用的入口帧的路由控制字段。该逻辑513还修改EOF字段,从而可将更详细的状态信息通过帧缓存器传到公用接收路径59。
将来自图4的输入信号“环路A数据”4026和“环路B数据”4027耦合到EOF修改逻辑513。“环路A状态和控制”6422和“环路B状态和控制”6432(也从图6输入)提供有关环路1250状态信息给状态机512“最大帧规模”8517提供有关数据帧、控制帧和其他帧的最大帧规模的信息给多路开关选择器和计数器515。
输出信号“预缓存接收数据”8511和“预缓存接收状态”8512提供数据和状态信息给非数据缓存器53和53’(见图9)以及数据帧缓存器55。
图9为纤通道接收非数据帧缓存器电路53的方框图。此缓存器53包括接收帧缓存器写入控制533、接收帧缓存器读出控制534、接收帧缓存器RAM535、接收帧缓存器状态块536和接收帧,端口A和端口B分别做一个这种缓存器电路53。
接收帧缓存器写入控制块533为接收帧缓存器RAM535中的随机存取存储器(RAM)生成地址(WPTR9537)、数据(WDAT9536)、和写入启动信号(WE9539)。收到帧数据时,用来自预缓存接收状态机512的状态启动信号建立RAM535的写入启动信号(WE9539)。使地址递增,并提供换行位(WRAP9538),用于接收帧缓存器状态块536,以确定接收帧缓存器RAM535中有多少空间可用。将来自环路端口电路20的数据从16位长转换为32位长,并建立标记位指出SOF或EOF界符。来自接收帧的CRC传过非数据帧缓存器RAM535,以保护数据。即,从纤通道收到的CRC信息和数据一起存入非数据帧缓存器,并在从非数据帧缓存器53读出数据时(例如将该数据传送到离片缓存器111时),校验CRC,以便能检测出数据驻流在非数据帧缓存器53中时所发生的差错(当然,数据在纤通道环路1250上通过时产生的差错也能测出)。方框53的输入信号包括“预缓存接收数据”8511和“预缓存接收状态”8512(见图8),以及来自微处理器112的已寄存“MPU数据”9533和“MPU地址”9534(即定时输入寄存器供以后使用的信号版本)。
接收帧缓存读出控制块534产生接收帧缓存器RAM535的读出地址(RPTR9541),并捕获来自RAM535的数据。帧缓存控制器56(见图7)选择接收非数据帧缓存器53时,启动接收帧缓存器RAM535的读出。使地址递增,并提供换行位(WRAP9542),用于接收帧缓存器状态块536,以确定接收帧缓存器RAM535中有多少空间可用。将来自接收帧缓存器RAM535的数据捕入寄存器,并对其标记位进行监视,以确定帧的开始和结束。建立启动信号用于公用接收路径(见图7)指示何时数据有效。方框534的输入信号包括来自微处理器112的“已寄存读出启动信号”9535。方框534的输出信号包括接收“非数据缓存器数据”9543和“非数据有效读出”9546。
接收帧缓存器RAM535包括同步RAM。RAM具有33位长(32位数据值加SOF/EOF标记位)和304字长。将接收非数据帧的SOF、首部、有效负载、CRC和EOF写入到RAM535,以保持到有离片缓存器111和公用接收路径59的接入通道可用为止。一个实施例中,内装的自测试控制器使接收帧缓存器RAM535可用为该存储器物理布局专门建立的数据模式测试接收帧缓存器RAM535。
接收缓存器状态块536比较接收帧缓存器RAM535的读出和写入指针,以确定缓存器是否空,如果缓存器未空,则确定接收帧缓存器RAM535中有多少帧空间可用。帧缓存控制器56用此方框536的输出(“可用空间”9545)确定接收帧缓存器RAM535是否要求接入公用接收路径59。缓存器对缓存器借贷控制逻辑603(见图12)也用该输出确定借贷是否可用。
接收帧缓存器帧计数器块531对当前接收帧缓存器RAM535中的帧计数据。帧写入接收帧缓存器RAM535时,计数531递增,从该RAM535读出帧时,则递减。缓存器对缓存器腊贷控制603用该计数(“缓存器帧计数”9544)确定是否可用借贷。一个实施例中,除时钟信号外的所有进入RAM的输入都被延迟,以提供适当的保持时间。
图10为纤通道数据帧缓存器电路55的方框图。数据帧缓存器55包括数据帧缓存器写入控制553、数据帧缓存器读出控制554、数据帧缓存器RAM555、数据帧缓存器状态块556、数据帧缓存器帧计数器551和数据帧捕获块552。任何时间只允许进行一数据传输,因而端口A和端口B共同数据帧缓存器55。
数据帧缓存器写入控制块553生成数据帧缓存器RAM555的地址(WPTR9555)、数据(WDAT9554)和定入启动信号(WE9557)。对写入操作(将数据写入磁盘)而言,接收数据帧时,用来自预缓存接收状态机512的状态启动信号建立存储器555的写启动信号(WE9557)。对读出操作(从磁盘读出数据)而言,用来自帧缓存控制器56的启动信号建立存储器555的定入启动信号(WE9557)。使地址递增,并提供换行位(WRAP9556),用于数据帧缓存器状态块,以确定数据帧缓存器RAM555中有多少数据/空间可用。对写入操作而言,将来自环路端口电路20的数据从16位长度换为32位长,并建立标记位SOF或EOF界符。将来自接收帧CRC传过数据帧缓存器RAM555,以保护数据。即,从纤通道收到的CRC信息和数据一起存入数据帧缓存器55,并在从数据帧缓存器55读出数据时(例如将该数据传送到离片缓存器111时),校验该CRC信息,以便能检测数据驻流在数据帧缓存器55中时,产生的任何差错(当然,数据在纤通道环路1250上通过时产生的差错也测出)。一个实施例中,对读出操作而言,将来自离片缓存器111的数据从16位长变换为32位长,并产生奇偶校验位以保护数据。方框553的输入信号包括“预缓存接收状态”8512(见图8)和“来自离片缓存器的数据”3051(见图3)。
因此,在一个实施例中,如果数据从纤通道环路1250(见图2)通过数据帧缓存器RAM555传到离片缓存器111,则用CRC信息保护数据帧缓存器RAM555中的数据,但如果数据从离片缓存器传到RAM555以发送至纤通道环路1250,则用奇偶校验保护数据(后一种情况下,数据离开数据帧缓存器RAM555后,将CRC信息加到进入纤通道的数据上)。
数据帧缓存器读出控制块554生成数据帧缓存器RAM555的读出地址(RPTR9559),并捕获RAM555来的数据(RDAT9558)。对写入操作(将数据写入磁盘)而言,帧缓存控制器选择数据帧缓存器55,并启动存储器的读出。对读出操作(从磁盘读出数据)而言,发送帧状态机81(见图15)启动存储器的读出。使地址递增,并提供换行位(WRAP9560),用于数据帧缓存器状态块556,以确定帧缓存器中有多少数据/空间可用。对写入操作而言,将帧缓存器RAM来的数据捕入寄存器,并对其标记位进行监视,以确定帧的开始和结束,从而可为公区接收路径59建立启动信号指示何时数据有效。对读出操作而言将数据帧缓存器来的数据捕入寄存器,并校验奇偶位。方框554的输出信号包括“数据帧缓存器数据”9564、“数据有效读出”9563和“数据奇偶差错”9562。
数据帧缓存器RAM555包括同步RAM,在一实施例中还包括内装的自测控制器。一实施例中,RAM具有36位宽(32位数据值加4位SOF/EOF标记位或奇偶校验位)和3232字长。结写入操作而言(将数据写入磁盘),将接收数据帧的SOF、首部、有效负载、CRC和EOF写入RAM555保持到有时离片缓存器111和公区接收路径59的接入通道可用为止。对读出操作(从磁盘读出数据)而言,只将有效负载写入RAM555保持到环路1250能开放并发送数据为止。
数据帧缓存器状态块556比较数据帧缓存器RAM555的读出和写入指针以确定缓存器是否空,如果缓存器未空,则确定缓存器中有多少帧数据/空间可用。对写入操作而言,帧缓存控制器用此状态块556的输出(“可用空间”9561)确定数据帧缓存器55要求接入公区接收路径59。缓存器对缓存器借贷控制603(见图12)也用此输出确定是否可用借贷。对读出操作(从磁盘读出数据)而言,环路控制块40监视帧缓存器中的数据量,以确定是否能发送帧。为了仲裁开放环路1250,必须满足数据帧缓存器门限。也产生数据帧缓存器保持门限,以便在整个帧不可用但正在处理(正在数据帧缓存器55和/或离片缓存器111中累加)时,使环路1250可保持开放。
数据帧缓存帧计数器块551用信号“帧输出”9550对当前数据帧缓存器RAM555中的帧计数。帧写入RAM555时,计数器551递增,从RAM555读出帧时,则递减。缓存器对缓存器借贷控制603用此计数(信号“缓存器帧计数”9566)确定借贷是否可用。
当启用启动捕获模式时,数据帧捕获块552监视接收数据帧(用输入信号“启动数据写入检测”9551),并捕获帧首部各字段。然后,微处理器112可读出这些值(“数据捕获输出”)。
再次参阅图7,数据帧缓存器传递长度计数器54的控制包括控制如何将读出数据预先取入数据帧缓存器55的2个计数器。用一个数据帧缓存器长度计数器(在计数器块54中)确定从离片缓存器111取出多少数据用于纤通道传输。用一个数据帧缓存器发送长度计数器在计数器块54中(确定暂停前从离片缓存器取出多少数据用于控制器56重新评价那个帧缓存器应接入离片缓存器111(下节讲述此过程)。
帧缓存控制器56确定3个帧缓存器(即数据帧缓存器55、端口A接收非数据帧缓存器53和端口B接收非数据帧缓存器53’)中的那个缓存器可允许接入离片缓存器111的资源。如果一个端口处于环路初始化状态,而且该端口的接收非数据帧缓存器53(即53或53’)未空,则授予环路初始化帧最高优先权,从而环路初始化能进行。授予数据传输第2高优先权,因而数据传输将继续进行,直到接收非数据帧缓存器53填满为止。如果接收非数据帧缓存器53中的一个不在有帧的存储位置,就允许此特定接收非数据帧缓存器53接入离片缓存器111排放一些帧后,重新开始数据传输。
允许首先请求离片缓存器资源的帧缓存器(55、53或53’)接入离片缓存器111。如果2个端口同时接收帧,使端口A首先接入。一但帧缓存控制块让帧缓存器接入离片缓存器111,该控制块继续为帧缓存器服务。除非另一端口的接收非数据帧53填满,或启动初始化,或启动数据传输。给定端口的帧按对端口的传送顺序传输到离片缓存器111。
如果纤通道的数据速率不能支持离片缓存器111,缓存器接口控制逻辑58可暂停帧缓存控制器56与离片缓存器111之间的数据传输。
图11为公用接收路径59的方框图,该电路接收帧缓存器(53、53’或55)中的一个出来的帧,并准备给外缓存器111的帧。此逻辑59识别SOF,捕获接收首部的信息以验证有效性。校验CRC,并将帧送到离片缓存器111的适当缓存区。
接收缓存器译码块591将帧开始和帧结束界符(从输入数据信号“帧缓存器数据”9570和启动信号VAL-READ9571导出)译码,并生成公共接收路径59用于校验帧有效性的信号。EOF界符可嵌入变换后用于路径块的差错状态(帧长度差错或运行不一致性差错)。
接收成帧状态机监视输入流,以确定帧的编辑。检测到SOF时,产生信号,使得可捕获首部的每个字,并启动CRC校验器596、首部验证控制595以及缓存器控制598(连同5991、5992和5993)。状态机592校验在首部期间接收的无效基元,并校验破坏许可的最大帧长度的传输。由于公用接收路径59能临时暂停,状态机592的状态输出为有效和无效的脉冲,以便适当启动帧捕获和校验块。
在帧的始端,根据接收帧首部的R_CTL字段,用命令的最大帧长或数据帧(来自信与“最大规模输入”9572)最大帧长载入接收或帧长度计数器(MUX5931和计数器5932)。如果在检测到EOF之前计数器达到0,则测出帧长差错,并将该帧标为无效。此功能有助于防止离片缓存器111中分配给该帧的空间超限。
接收帧首部捕获块594用来自接收成帧状态机592的信号捕获接收首部的各字段。帧验证逻辑使用该捕获值。
接收到帧时,CRC校验器块596在帧末端校验CRC。若测出CRC差错(由“CRC状态”9596指出),将该帧标为无效。由接收成帧状态机592启动CRC校验器596。处理首部段、有效负载段和CRC字。Ⅲ.对于在片存储器中的数据完整性使用纤通道CRC
根据本发明的一个方面,暂时存储纤通道帧的帧缓存器允许可用最大纤通道接口传输速率接收帧。然后,可用比较容易掌握的低速率把帧传送到离片缓存器。在帧缓存器中存储数据时,可选地使用不同的机构(诸如奇偶校验码、CRC或其他冗余功能)加以保护。
在一个实施例中,利用让接收纤通道循环冗余码(CRC)和数据一起通过帧缓存器(即,将CRC和帧一起存入帧缓存器,并在以后和帧一起读出)强化数据完整性校验,可去除使RAM容量变大的外加奇偶校验位。(在各实施例中,帧缓存器为数据帧缓存器55和/或接收非数据帧缓存器53或53’)。在从RAM读出数据后,将该数据传送到片外(即,送到离片缓存器111)前,校验CRC。也能从对帧缓存器入口侧的接口和至CRC校验器596输入端口帧缓存器出口侧去除入口数据路径上的外加奇偶校验位。
由于对离片RAM的接口一次仅处理一路传输,比在片RAM慢,并且比纤通道传输速率低,非数据帧缓存器53和53’能共用公共接收路径逻辑59。因为在帧刚到片外(即,从在片缓存器53、53’或55传送到离片缓存器111)前校验CRC,所以只需要一个CRC校验器596。反之,若CRC和帧不存储在帧缓存器中,并在到离片缓存器111的途中校验(称为“将CRC传过在片帧缓存器”),则需要两个CRC校验器(即,放在预缓存路径51和51’内)。
一个实施例中,当把数据从离片缓存器111送出,暂时存储在帧缓存器中,并以最大数据传输速率在纤通道接口上发送时,将此机构用于相反方向。
在接收到帧时,路由控制译码块5933将R_CTL字段译码,以确定所接收帧的类型。R_CTL字段用于把帧送到离片缓存器111的适当区域,并确定对该帧进行哪些有效性校验。
首部校验逻辑595分析接收帧首部的内容。根据帧的R_CTL字段,检验各字段。若非数据帧上任何有效性校验不成功,则认为该帧无效。如果数据写入传输有效时,在数据帧上有效性校验失败,则通知微处理器112。
接收帧状态块597收集有关接收到的帧的信息,并阻止无效数据帧到片外,并产生信号“帧状态”9580。如果帧无效,则基本将其忽略(除非数据传输有效)。
命令计数器5992用于跟踪离片缓存器111的命令区中含有多少命令帧。当接收到有效命令时,此计数器5992递增。当微处理器112完成一命令时,必须使命令计数器5992递减(用从微处理器112发来的信号“MPU递减”9574)。计数器块5992输出中断请求CMD RCVD IRQ 9578。
“其他”空间计数器5991用于跟踪离片缓存器111的“其他”区域留有多少空间(用从微处理器112发来的信号“MPU递增”9575),以给出缓存器对缓存器借贷。当接收到有效帧(既不是命令帧,也不是数据帧)时,或离片缓存器111填满的情况下收到命令时,此计数器5991递减。微处理器112对一帧完成处理时,必须使“其他”空间计数器5991递增,以指出有另一帧用到空间。“其他”空间计数器5991指出(信号“其他计数”9576和中断请求“OTHER RCVD IRQ”9577)填入离片缓存器111的“其他”区域的帧数。
当接收到一个帧时,接收帧缓存器控制598(产生信号“递增”(INCR)/“递减”(DECR)9573使其他计数器5991递减,并使命令计数器5992递增)和最后4代(last-4-generation)逻辑5993产生信号(“离片缓存器控制”7589)送到离片缓存器111的逻辑,以将帧引导到适当的区域。
图12为纤通道传输控制电路60的方框图,其中包括接收和发送部分的控制逻辑。传输控制电路60包括传输控制和缓存器对缓存器借贷控制603。
可用数据/空间计数器块604依据操作时数据写入不是数据读出,提供有多少片外空间和数据可用的指示(“可用数据”6019)。在数据写入传输时,可用数据/空间计数器块604用于指出离片缓存器111的数据部分有多少空间(以帧为单位)可用来发出BB_Credit。在数据读出传输时,可用数据/空间计数器块604用于指出离片缓存器111中有多少数据帧可用。对照指出每帧字数的微处理器可载(即,可编程)值,比较缓存器指针差别。
缓存器对缓存器借贷控制逻辑603发布缓存器借贷(信号“可用端口BB_CREDIT以发送R_RDY”6017)给连接端口,使得可发送帧。通过发送R_RDY发布此借贷。由下列3点确定给任何端口的借贷量:
1)离片缓存器111中有多少接收空间可用于磁盘驱动器100;
2)接收非数据帧缓存器53和数据帧缓存器55中有多少接收空间可用于磁盘驱动器100;
3)如果有借贷,使驱动器100开放的端口是否有可能发送占用可用空间的帧。
对每一端口逐个确定缓存器对缓存器借贷。缓存器对缓存器借贷控制块603产生信号送到环路端口A/B开放控制块42和42’(见图6),以指出何时借贷可用。然后,环路控制块40将控制R_RDY的发送。
传输控制电路60的其余部分含有传输期间用的计数器。接收的R_RDY计数器606确定每一端口上从输入“端口接收的R_RDY”6010(端口A和端口B分别有一个)和“端口发送帧”6011(端口A和端口B分别有一个)已接收多少借贷的R_RDY,并输出信号“可用端口借贷以发送帧”6020。发送R_RDY计数器601确定每一端口从输入“端口发送R_RDY”6001(端口A和端口B分别有一个)和“端口接收帧”6002(端口A和端口B分别有一个)已发送多少借贷的R_RDY。对于数据写入传输使用序列计数器607以校验接收到的帧按顺序到达,而对于数据读出传输使用它,以产生数据帧首部中发送的“序列计数”6022。对于数据读出传输使用相对偏移计数器608,以产生数据帧首部中发送的“相对偏移计数”6023。传输长度计数器609用于确定传输多少数据,并在传输完成时提供指示(“传输长度计数”6024)。单帧发送路径电路70
图13为用于纤通道的单帧发送路径电路70的方框图。本发明一实施例提供包括专用发送帧缓存器43(用于环路初始化和响应)的纤通道环路接口电路。由于具有这种专用帧缓存器73,允许双端口节点的一个端口发送初始化帧或响应帧,而另一个端口发送或接收(即“传递”)数据帧。如果环路遇到丢失同步或其他问题,环路1250必须重新初始化,专用发送帧缓存器允许有这种功能而无需中断数据传输或双端口节点接口的其他端口所连接的别的环路上进行的其他功能。还可同时使两个端口初始化。此外,此专用发送帧缓存器73使一个端口可发送响应、认可或其他非数据传输,而其他端口同时在使用。因此,单帧发送电路70连同微处理器112一起工作,为节点接口1220提供环路初始化和响应功能。发送帧缓存器73受理输入“MPU可载”7002(来自微处理器112的数据)、“接收路径数据”7003和“接收路径控制”7004(来自接收路径50的帧)。发送帧缓存器73产生输出“MPU读出数据”3095,并通过块74和76产生“XMT_DPTH数据”7007(包括要发送的CRC的出口帧)。
单帧发送路径电路70受理来自环路控制电路40的请求,以发送单帧发送帧缓存器73中驻留的帧。此电路70产生适当的帧界符,从帧缓存器读取首部和有效负载,并用CRC发生器76产生适当的CRC。此电路70也产生送到环路端口电路20的信号用于发送当前填充字,并指出何时传送帧结束(EOF)信号,从而使译码器可根据当前运行不一致性产生EOF的第2个字符。
单帧发送状态机72受理来自环路控制电路40的请求(通过信号“发送帧”7001),以发送帧。当发送帧时,状态机72提供送到发送多路开关选择器74的帧的每一部分的选择信号,以便可在适当的时间传送帧界符、首部和有效负载。此状态机也产生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确定何时从单帧发送电路启动发送K字符、当前填充字和EOF界符。输出信号“发送控制”7010传到发送路径多路开关选择器79,该选择器确定哪一环路具有接入单帧发送路径电路70的通路。
图14为纤通道发送帧缓存器73的方框图。本实施例中,单帧发送帧缓存器73包括单帧缓存器写入控制733、单帧缓存器读出控制734和单帧发送帧缓存器RAM735。单帧发送帧缓存器73用于存储接收到的环路初始化帧、出口环路初始化帧和出口信号帧。一个实施例中,为端口A保留发送缓存器RAM735的40字,为端口B保留40字。
单帧缓存器写入控制块733产生单帧缓存器RAM735的地址(WPTR1411)、数据(WDAT2410)和写入启动信号(WE1412)。输入信号包括“来自接收路径的数据”1401、“端口A帧”1403、“端口B帧”1404、“寄存的MPU数据”9533和“寄存的MPU地址”9534。当接收到环路初始化帧时,将该帧先存入一个接收非数据帧缓存器(53和53’),直到该帧能通过公用接收路径59以进行验证为止。不是将该帧传送到离片缓存器111,而是将其写入单帧发送帧缓存器73。这样也可使离片缓存器更致力于另一端口的数据传输。将环路来的端口数据从16位宽变换为32位宽,并根据与该帧有关的端口确定帧的起始地址。
微处理器112也可对单帧发送帧缓存器73写入,以修改环路初始化帧或建立出口帧。产生奇偶校验位,以保护单帧发送缓存器73中的数据。
单帧发送缓存器读出控制块734产生单帧发送缓存器RAM735的读出地址(RPTR1414),并捕获RAM735来的数据(RDAT1413)。输入信号包括“发送帧”1407和“发送状态”1408。当单帧状态机72启动帧进行传输时,启动单帧发送缓存器RAM735的读出(输出“单帧发送缓存器数据”1415)。微处理器112也可读取此帧缓存器,以访问接收环路初始化帧。把来自发送帧缓存器RAM735的数据捕入寄存器,并校验奇偶位(产生输出“奇偶性差错”1416)。
单帧发送缓存器RAM735包括同步RAM,并在一实施例中,包括内装自测试控制器。RAM有36位宽(32位数据加4位奇偶校验)、80字长。将帧的首部和有效负载放入发送帧缓存器RAM735加以保持,以便微处理器检查或在环路1250上发送。一个实施例中,将所有进入RAM的输入信号(除时钟信号外)加以延迟,以提供适当的保持时间。
图15为数据发送路径电路80的方框图,该电路受理环路控制逻辑40发来的请求,以发送帧。电路80产生适当的帧界符,从微处理器可载寄存器建立首部,并产生CRC。电路80还产生送到环路端口电路20的信号,以发送当前填充字并指出何时传送EOF,从而使编码器可根据当前运行不一致性产生EOF第二字符。
数据发送成帧状态机81受理环路控制逻辑40发来的请求(信号“发送帧”8001),以发送帧。当发送帧时,此状态机81给发送多路开关选择器86提供帧中各部分的选择信号,使得可在适当的时间传送帧界符、首部和有效负载。状态机81还产生CRC发生器87的启动信号。当已传送帧时,产生信号,并送回环路控制逻辑40,使其可继续工作。
数据发送帧长度计数器82用于使硬件可确定帧长度,以便可在适当的时间产生CRC。在帧的始端,从发送帧长度寄存器对数据发送帧长度计数器82加载,并在发送帧时启动该计数器。数据发送帧长度计数器82由发送成帧状态机81启动,并将状态送回该状态机,以确定何时启动CRC发生器87。
数据帧发送输出多路开关选择器86的输出为CRC发生器87的输入,该发生器对数据发送路径多路开关选择器79馈送信号。数据发送成帧状态机81产生此选择器86的选择信号,使得可在适当的时间传送帧界符、首部和有效负载。输入信号包括“帧缓存器数据”8004、“首部寄存器”8005、“传输计数”8006和“传输就绪有效负载”8007。输出信号包括“帧缓存器读出控制状态”8009。选择器86中的界符发生器确定发送帧时用帧开始(SOF)和帧结束(EOF)的哪一基元。
通过CRC发生器87传送数据帧发送输出多路开关选择器86的输出,以确定EOF前包含的剩余字。CRC发生器87的启动信号来自数据发送成帧状态机81。还对8B/10B编码器27(见图4)提供控制,以确定何时发送EOF信号。CRC发生器87的输出为“XMT_DPTH数据“8008(包括要传送的CRC的出口帧)。
数据传输填充字符块85确定何时从数据发送路径电路80发送K字符、当前填充字和EOF界符。输出信号“发送输出”8010传到发送路径多路开关选择器79,该选择器确定哪一环路具有至数据发送路径电路80的入口。
发送路径多路开关选择器79(见图3)的输出为环路端口电路A和端口B仲裁环路逻辑26的输入。发送路径多路开关选择器79选择单帧路径70和数据路径80送来的数据和控制信号,以送到适当的端口。该选择器79还将送到各端口的R_RDY复接。这样就使两个端口可用时发送。Ⅵ.减少仲裁环路开销的装置和方法
在纤通道仲裁环路设计1200中,环路端口116的节点接口1220必须对环路1250的访问进行仲裁。采用优先权方式确定哪一端口获得环路1250的控制,并采用“公平性”方案确保端口不匮乏。作为目标设备,通常给予磁盘驱动器100比CPU 1202低的优先权,因此驱动器100必须等待赢得仲裁,直到高优先权设备完成接访问为止。当环路端口166的节点接口1220获得环路1250的控制时,在环路1250关闭前送出尽可能多的帧,以便免去不需要的仲裁周期。但不再有数据时,环路端口116的节点接口1220关闭环路1250,使其他端口可访问环路1250。这是某些其他控制器系统结构中用的方法。本发明通过根据端口的数据利用度,改变是否关闭环路1250的判决规则。提供一种强化环路性能的机构,从而减少总环路开销。
在某些其他控制器系统结构中,当发送帧结束界符时,端口确定是否有另一帧可用。如果不再有数据(例如,如果没有完整的帧传输)。则关闭环路1250。其后很快又可获得数据,因而端口必须再次仲裁,并在继续传输前作出裁决。如果在传输的末帧可用时出现这种情况,则传输延迟完成,导致延迟后才能处理下一命令。
本发明提供一种用于控制器系统结构设计的机构,如果端口短时间内有数据可用,可由该端口保持环路1250开放。这样,可以减少输出数据传输过程中,环路端口166的节点接口1220必须进行仲裁所花费的时间,因而可允许传输较快地完成。在一个实施例中,当满足下列两个条件时,预期端口可再获得足够的数据(证明该端口保持环路的控制),保持环路1250开放:
一至少片外可获得X帧;
一至少在数据缓存器中可获得Y字。
在一个这样的实施例中,X的值和Y的值可分别各自编程(例如通过微处理器112用固件(firmware)编程)。其中X代表为了使环路1250保持开放,需要在离片缓存器111中可得帧数;Y代表为了使环路1250保持开放,需要在在片缓存器中可得的字数。另一实施例中,当离片缓存器111可得预定量的数据(不必指定为帧数)时,保持环路1250开放(在这样的一个实施例中,离片缓存器111内可得的所需预定量的数据是可编程的)。另一实施例中,当在片缓存器119内可得预定量的数据(不必指定为字数)时,保持环路1250开放(在这样的一个实施例中,在片缓存器119内可获得的预定量的数据是可编程的)。一个实施例中,如果可获得预定量的数据(至少半帧可在在片缓存器中获得,至少一帧可在片外获得),则保持环路1250开放,但在在片缓存器内可获得全部帧之前,不开始传输帧。
例如,一个实施例中,在片数据帧缓存器55容量大到足以保持至少6帧数据(即,具有最大帧规模(2112字节)的6帧)。进行发送的数据先移入离片缓存器111(例如从园形磁盘片134),然后进入在片数据帧缓存器55。数据通常能以高达约106兆字节/秒的速率传送出数据帧缓存器55,而在一实施例中,从离片缓存器111到在片数据帧缓存器55的传输则速率较低。如果已将不到一个完整帧的数据移入在片数据帧缓存器55,也有可能起动帧传输,并且只要在需要那些数传出之前帧的最后部分移入在片数据帧缓存器55,就以约106兆字节/秒的全纤通道速率传送完整个帧。
因此,根据本发明的一个实施例,若在片数据帧缓存器55中含有至少半帧数据,离片缓存器111中含有至少一帧数据,则保持环路开放。在这样的一个实施例中,保持对环路1250的控制(保持环路开放)所需的这个数据量为在片缓存器55中有约1000字节数据(即2112字节帧的一半),离片缓存器111中有约2000字节数据(即一个2112字节帧),两个量都是由微处理器112设定的可编程值。一实施例中,若可获得预定量的数据,则保持环路1250开放,但刚讲述过,仅在在片缓存器中可获得全部帧之后,才开始传送帧。一个实施例中,在环路1250上发送CFW(当前填充字),直到全部帧在在片缓存器中并能开始传输帧时为止。
本发明一实施例的离片缓存器111中的控制器产生可获得传送出去的帧的计数。将固件可编程计数X帧(离片缓存器111中保持环路开放所需的帧数)与可获得传输的帧数比较,以确定是否有数据可传入数据帧缓存器。数据帧缓存器是用于暂时存储来自低速离片存储器的数据的在片RAM,因而能以全纤通道接口速率发送数据。用第二比较器比较数据帧缓存器内可获得数据的量与固件可编程计数Y字(在片缓存器55中保持环路开放所需的字数),以确定是否数据帧缓存器中已有足够的数据保持环路1250开放。X和Y的值是固件可编程的,使此逻辑可与各种离片随机存取存储器(RAM)解决方案和传输速率一起使用。
本发明的一个目的在是端口116短时间可获得数据时保持环路1250开放,并免除额外仲裁周期。如果等待是为了延长时间(例如,为了取得运行主交换器所需的时间),必须不保持环路1250开放等待数据变有,因为这样会妨碍环路1250上的其他端口进行传输。结论
描述了一种纤通道环路接口电路(110),其中包括用于环路初始化和响应的专用发送帧缓存器(73)。由于具有该专用发送帧缓存器(73),允许双端口节点(1220)的一个端口(116)发送初始化帧或响应帧,而另一个端口(116)同时发送或接收数据帧。还为双端口节点(1220)的每一端口(116)提供专用接收缓存器(53和55)。在这三个帧缓存器(53、53’和55)之一内存储从纤通道(1250)接收到的循环冗余码信息和帧。其后,校验这些数据和CRC,以确保数据在帧缓存器(53、53’和55)中的完整性。为了减少仲裁对环路的控制所花费的总时间,只要有最低量的数据可供传输,就维持对环路的控制(即保持环路连接开放),该最低量的数据可选地由编程决定(称为“可编程数据量”)。
一个实施例中,本发明提供一种改进的通信通道系统(1200),它包括具有第一端口(116)和第二端口(116)的第一通道节点(1220)。每一端口(116)支持一纤通道仲裁环路串行通信通道(1250)。此系统还包括第一通道节点(1220)中用于环路初始化和响应的专用帧缓存器。专用帧缓存器(119)包括各种专门的分量帧缓存器。
在一个这样的实施例中,专用帧缓存器(119)构造成在片缓存器并包括工作上耦合到第一端口(116)的第一入口非数据缓存器(53)、工作上耦合到第二端口(116)的第二入口非数据缓存器(53’)、工作上耦合到第一端口(116)和第二端口(116)的数据帧缓存器(55),以及工作上至少耦合到第一和第二端口(116)之一的出口发送帧缓存器(73)。作为可选,此系统还包括利用出口发送帧缓存器(73)中的数据,基本上同时在第一端口(116)和第二端口(116)上执行环路初始化的环路初始化电路(由方框70和112结合来实现)。
在一个实施例中,专用帧缓存器(119)包括具有约80字数据的专用发送帧缓存器(73)。另一实施例中,专用帧缓存器119包括工作上至少耦合到第一和第二端口(116)之一,以进行环路初始化和响应的专用发送帧缓存器(73)(其中非数据帧包括从环路初始化和响应信息中选出的信息)。在一个实施例中,发送帧缓存器(73)在第一端口(116)上发送环路初始化或响应,而第二端口(116)基本上同时传输(即,发送或接收)数据。
在一个这样的实施例中,此系统还包括利用发送帧缓存器(73)中的数据,基本上同时在第一端口和第二端口上进行环路初始化的环路初始化电路(由方框(70)和(112)结合来实现)。(在一个这样的实施例中,用两个端口(116)或每个端口(116)的独立部分实现发送帧缓存器(73),从而能同时发送初始化和响应。另一这样的实施例中,两个端口(116)共用一个发送帧缓存器(73),从而两个端口(116)能在时间上互相紧跟地送出环路初始化和响应,但不是严格同时)。
在一个实施例中,发送帧缓存器(119)构造成在片缓存器,其中包括工作上至少耦合到第一和第二端口(116)中之一,以进行环路初始化和响应的专用发送帧缓存器(73)。一个实施例中,此系统(1200)保留约一半的缓存器空间用于第一端口,而另一半的缓存器空间用于第二端口。在一个这样的实施例中,专用发送帧缓存器(73)工作上耦合到两个端口,并且还包括利用发送帧缓存器(73)中的数据,基本上同时在第一端口和第二端口上执行环路初始化的环路初始化电路(由方框(70)和(112)结合来实现)。
作为可选,任何这些系统的实施例还包括工作上耦合到第一通道节点(1220)的磁盘存储驱动器(1256),以及具有第二通道节点的计算机系统(1202),其中,第二通道节点(1220)在纤通道环路中工作上耦合到第一通道节点(1220),以便通过纤通道仲裁环路串行通信通道(1250)在第一和第二通道节点之间传输数据。
本发明的另一方面提供一种磁盘驱动器(100)。磁盘驱动器(100)包括可旋转的磁盘(134)、与旋转磁盘(134)有传感关系的传感器(150)、以及具有第一端口(116)和第二端口(116)的第一通道节点(1220),每个端口(116)支持一纤通道仲裁环路串行通信通道(1250)。第一通道节点工作上耦合到该传感器。磁盘驱动器(100)还包括第一通道节点内进行工作以发送非数据帧的专用发送帧缓存器(73),其中,非数据帧包括从环路初始化和响应信息中选出的信息,发送帧缓存器(73)在第一端口(116)上发送非数据帧,而第二端口(116)基本上同时传输数据。
本发明的又一方面提供一种方法,该方法包括:
(a)在第一通道节点的每个第一端口和第二端口上支持纤通道仲裁环路串行通信通道;
(b)在第一通道节点中实现专用帧缓存器;
(c)接收送到专用帧缓存器的帧;
(d)从专用帧缓存器发送帧,以进行环路初始化和响应。
此方法的一个实施例中,实现步骤(b)还包括:
(b)(ⅰ)在专用帧缓存器中实现专用发送帧缓存器;
(b)(ⅱ)将该专用发送帧缓存器工作上耦合到第一和第二端口中的至少一个;
而发送步骤(d)还包括:
(d)(ⅰ)从发送帧缓存器发送环路初始化帧和响应帧。
在此方法的这样一个实施例中,发送步骤(d)还包括:
(d)(ⅱ)在第一端口发送帧时,基本上同时在第二端口传输数据。
此方法的另一个这样的实施例中,发送步骤(d)还包括:
(d)(ⅲ)利用发送帧缓存器中的数据,基本上同时在第一端口和第二端口上发送环路初始化帧。
此方法的另一实施例中,实现步骤(b)还包括:
(b)(ⅲ)实现工作上耦合到第一端口的第一入口非数据缓存器;
(b)(ⅳ)实现工作上耦合到第二端口的第二入口非数据缓存器;
(b)(ⅴ)实现工作上耦合到第一端口和第二端口的数据帧缓存器;
(b)(ⅵ)实现专用发送帧缓存器;
接收步骤(c)还包括:
(c)(ⅰ)接收送到第一入口非数据缓存器和第二入口非数据缓存器的非数据帧;
(c)(ⅱ)接收送到数据帧缓存器的数据帧;
发送步骤(d)还包括:
(d)(ⅳ)从发送帧缓存器发送非数据帧。
在此方法的这样一个实施例中,发送步骤(d)还包括:
(d)(ⅴ)利用专用发送帧缓存器中的数据,基本上同时在第一端口和第二端口上执行环路初始化。
此方法的又一个实施例中,实现步骤(b)还包括:
(b)(ⅲ)将专用帧缓存器构造成包括专用在片发送帧缓存器的在片缓存器;
(b)(ⅳ)将该在片发送帧缓存器工作上耦合到第一和第二端口中的至少一个;
发送步骤(d)还包括:
(d)(ⅵ)从该在片发送帧缓存器发送环路初始化帧和响应帧。
在此方法的这样一个实施例中,实现步骤(b)还包括:
(b)(ⅴ)将专用发送帧缓存器工作上耦合到两个端口;
发送步骤(d)还包括:
(d)(ⅶ)利用发送帧缓存器中的数据,基本上同时在第一端口和第二端口上发送环路初始化帧。
有些实施例中,任何上述方法实施例的发送步骤(d)可选地包括:
(d)(ⅷ)通过工作上耦合到第一通道节点的磁盘存储驱动器与具有第二通道节点的计算机系统之间的纤通道仲裁环路串行通信通道传输数据,其中,第二通道节点由纤通道仲裁环路串行通信通道工作上耦合到第一通道节点。
本发明的再一方面,提供一种具有第一端口(116)和第二端口(116)的第一通道节点(1220)的通信通道系统(1220),每一端口(116)支持一纤通道仲裁环路串行通信通道(1250)。此系统还包括用于接收和发送帧的专用帧缓存器机构。将该机构定义为对于图1~图15所描述的机构及其等效机构。
因此,本发明通过允许从能实施在双端口纤接口节点(1220)的一条或或两条出口纤(118)上进行发送的专用发送缓存器(73)发送环路初始化帧和/或响应帧,而提供了显著强化的性能。有些实施例中,即使节点(1220)同时在一条入口纤(117)上接收数据帧和/或在一条或两条入口纤(117)上接收非数据帧,也执行该发送。即,在一个端口的其他纤(117)上进行接收的同时,可选地执行在相同端口的一条纤(118)上作发送。
应理解以上所述是说明性的,而不是限制性的。虽然以上说明中已讲述本发明各实施例的许多特征和优点,以及各实施例结构和功能的细节,但是通过回顾上述说明,本领域的技术人员会明白,还有许多其他实施例和细节变化。因此,本发明的范围取决于所附权利要求书和授予该权利要求书的全部等效范围。
Claims (20)
1.一种通信通道系统,其特征在于包括:
具有第一端口和第二端口的单一通道节点,每个端口支持纤通道仲裁环路串行通信通道;以及
第一通道点中用于环路初始化和响应的专用帧缓存器。
2.如权利要求1所述的系统,其特征在于,专用帧缓存器构造成在片缓存器并包括:
工作上耦合到第一端口的第一入口非数据缓存器;
工作上耦合到第二端口的第二入口非数据缓存器;
工作上耦合到第一端口和第二端口的数据帧缓存器;
工作上至少耦合到第一和第二端口之一的出口发送帧缓存器。
3.如权利要求2所述的系统,其特征在于,还包括:
利用出口发送帧缓存器中的数据,基本上同时在第一端口和第二端口上执行环路初始化的环路初始化电路。
4.如权利要求1所述的系统,其特征在于,所述专用帧缓存器包括:
在第一通道节点内进行工作,以发送非数据帧到第一和第二端口中的至少一个的专用发送帧缓存器,其中,非数据帧包括从环路初始化和响应信息选出的信息。
5.如权利要求4所述的系统,其特征在于,发送帧缓存器在第一端口上发送非数据帧,而第二端口基本上同时传输数据。
6.如权利要求4所述的系统,其特征在于,还包括:
利用发送帧缓存器中的数据,基本上同时在第一端口和第二端口上执行环路初始化的环路初始化电路。
7.如权利要求1所述的系统,其特征在于,专用帧缓存器构造成在片缓存器并包括:
工作上至少耦合到第一和第二端口之一,以进行环路初始化和响应的专用发送帧缓存器。
8.如权利要求7所述的系统,其特征在于,专用发送帧缓存器工作上耦合到两个端口,并且还包括:
利用发送帧缓存器中的数据,基本上同时在第一端口和第二端口上执行环路初始化的环路初始化电路。
9.如权利要求8所述的系统,其特征在于,还包括:
工作上耦合到第一通道节点的磁盘存储驱动器;
其有第二通道节点的计算机系统;其中,第二通道节点在纤通道环路中工作上耦合到第一通道节点,以便通过纤通道仲裁环路串行通信通道在第一和第二通道节点之间传输数据。
10.一种磁盘驱动器,其特征在于,包括:
可旋转的磁盘;
与该旋转磁盘有传感关系的传感器;
具有第一端口和第二端口的第一通道节点,其中每个端口支持一纤通道仲裁环路通信通道,第一通道节点工作上耦合到传感器;以及
在第一通道节点上进行工作,以发送非数据帧的专用发送帧缓存器;其中,非数据帧包括从环路初始化和响应信息中选出的信息,发送帧缓存器在第一端口上发送非数据帧,而第二端口基本上同时传输数据。
11.一种通信通道方法,其特征在于,包括下列步骤:
(a)在第一通道节点的每个第一端口和第二端口上支持纤通道仲裁环路串行通信通道;
(b)在第一通道节点中实现专用帧缓存器;
(c)接收送到专用帧缓存器的帧;以及
(d)从专用帧缓存器发送帧,以进行环路初始化和响应。
12.如权利要求11所述的方法,其特征在于,实现步骤(b)还包括下述步骤:
(b)(ⅰ)在专用帧缓存器中实现专用发送帧缓存器;
(b)(ⅱ)将该专用发送帧缓存器工作上耦合到第一和第二端口中的至少一个;
发送步骤(d)还包括下述步骤:
(d)(ⅰ)从发送帧缓存器发送环路初始化和响应帧。
13.如权利要求12所述的方法,其特征在于,发送步骤(d)还包括下述步骤:
(d)(ⅱ)在第一端口上发送帧时,基本上同时在第二端口传输数据。
14.如权利要求12所述的方法,其特征在于,发送步骤(d)还包括下述步骤:
(d)(ⅲ)利用发送帧缓存器中的数据,基本上同时在第一端口和第二端口上发送环路初始化帧。
15.如权利要求11所述的方法,其特征在于,实现步骤(d)还包括下述步骤:
(b)(ⅲ)实现工作上耦合到第一端口的第一入口非数据缓存器;
(b)(ⅳ)实现工作上耦合到第二端口的第二入口非数据缓存器;
(b)(ⅴ)实现工作上耦合到第一端口和第二端口的数据帧缓存器;以及
(b)(ⅵ)实现专用发送帧缓存器;
接收步骤(c)还包括下述步骤:
(c)(ⅰ)接收送到第一入口非数据缓存器和第二入口非数据缓存器的非数据帧;
(c)(ⅱ)接收送到数据帧缓存器的数据帧;
发送步骤(d)还包括下述步骤:
(d)(ⅳ)从发送帧缓存器发送非数据帧。
16.如权利要求15所述的方法,其特征在于,发送步骤(d)还包括下述步骤:
(d)(ⅴ)利用专用发送帧缓存器中的数据,基本上同时在第一端口和端口上执行环路初始化。
17.如权利要求11所述的方法,其特征在于,实现步骤(b)还包括下述步骤:
(b)(ⅲ)将专用帧缓存器构造成包括专用在片发送帧缓存器的在片缓存器;以及
(b)(ⅳ)将该在片发送帧缓存器工作上耦合到第一和第二端口中的至少一个;以及
发送步骤(d)还包括下述步骤:
(d)(ⅵ)从该在片发送帧缓存器发送环路初始化和响应帧。
18.如权利要求17所述的方法,其特征在于,实现步骤(b)还包括下述步骤:
(b)(v)将专用发送帧缓存器工作上耦合到两个端口;以及
发送步骤(d)还包括下述步骤:
(d)(ⅶ)利用发送帧缓存器中的数据,基本上同时在第一端口和第二端口上发送环路初始化帧。
19.如权利要求18所述的方法,其特征在于,发送步骤(d)还包括下述步骤:
(d)(ⅷ)通过工作上耦合到第一通道节点的磁盘存储驱动器与具有第二通道节点的计算机系统之间的纤通道仲裁环路串行通信通道传输数据,其中,第二通道节点由纤通道仲裁环路串行通信通道工作上耦合到第一通道节点。
20.一种通信通道系统,其特征在于,包括:
具有第一端口和第二端口的第一通道节点,每个第一端口和第二端口支持一纤通道仲裁环路串行通信通道;以及
用于进行环路初始化和响应的专用帧缓存器装置。
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US6591997P | 1997-11-17 | 1997-11-17 | |
US6592097P | 1997-11-17 | 1997-11-17 | |
US6592697P | 1997-11-17 | 1997-11-17 | |
US60/065,919 | 1997-11-17 | ||
US60/065,926 | 1997-11-17 | ||
US60/065,920 | 1997-11-17 | ||
US6721197P | 1997-12-01 | 1997-12-01 | |
US60/067,211 | 1997-12-01 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1304520A true CN1304520A (zh) | 2001-07-18 |
Family
ID=27490525
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN98811207.8A Expired - Lifetime CN1123832C (zh) | 1997-11-17 | 1998-11-17 | 接收帧的方法和专用帧缓冲器 |
CN98811240.XA Pending CN1304520A (zh) | 1997-11-17 | 1998-11-17 | 用于环路初始化和响应的专用帧缓存器及其方法 |
CNB988112086A Expired - Lifetime CN1158605C (zh) | 1997-11-17 | 1998-11-17 | 采用crc用于芯片上存储器中数据完整性的方法和装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN98811207.8A Expired - Lifetime CN1123832C (zh) | 1997-11-17 | 1998-11-17 | 接收帧的方法和专用帧缓冲器 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB988112086A Expired - Lifetime CN1158605C (zh) | 1997-11-17 | 1998-11-17 | 采用crc用于芯片上存储器中数据完整性的方法和装置 |
Country Status (7)
Country | Link |
---|---|
US (6) | US6317800B1 (zh) |
JP (4) | JP2001523861A (zh) |
KR (3) | KR100650818B1 (zh) |
CN (3) | CN1123832C (zh) |
DE (3) | DE19882830T1 (zh) |
GB (3) | GB2342021B (zh) |
WO (3) | WO1999026151A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100345125C (zh) * | 2001-07-24 | 2007-10-24 | 松下电器产业株式会社 | 总线最优化方法及其通信节点 |
CN113037428A (zh) * | 2019-12-09 | 2021-06-25 | 大唐移动通信设备有限公司 | 一种对数据流程的处理方法及装置 |
CN114578299A (zh) * | 2021-06-10 | 2022-06-03 | 中国人民解放军63698部队 | 一种无线远程控制信标设备产生射频信号的方法及系统 |
Families Citing this family (126)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6356560B1 (en) * | 1997-05-30 | 2002-03-12 | Adtran, Inc. | Arbitration mechanism for statistically multiplexed frame relay switching system |
DE69924475T2 (de) * | 1999-06-09 | 2006-02-16 | Texas Instruments Inc., Dallas | Multikanal-DMA mit Datenverkehrplanung auf die Ausgänge |
JP2001034427A (ja) * | 1999-07-23 | 2001-02-09 | Fujitsu Ltd | デバイス制御装置及び制御方法 |
US6529945B1 (en) * | 1999-07-26 | 2003-03-04 | International Business Machines Corporation | Data buffer management between two different systems |
US6574696B1 (en) * | 2000-03-07 | 2003-06-03 | Hewlett-Packard Development Company, L.P. | Methods and arrangements for providing bi-directional control between data storage drives and automation controllers |
US6571367B1 (en) * | 2000-03-15 | 2003-05-27 | Emc Corporation | Method and apparatus connecting between a fiber channel and a cache memory |
US6622183B1 (en) * | 2000-03-21 | 2003-09-16 | Lsi Logic Corporation | Data transmission buffer having frame counter feedback for re-transmitting aborted data frames |
FR2812116A1 (fr) * | 2000-07-19 | 2002-01-25 | Schlumberger Systems & Service | Procede et dispositif d'inscription securisee de donnees dans une memoire reinscriptible |
US7007097B1 (en) * | 2000-07-20 | 2006-02-28 | Silicon Graphics, Inc. | Method and system for covering multiple resourcces with a single credit in a computer system |
US6483843B1 (en) * | 2000-10-12 | 2002-11-19 | Emulex Corporation | Detecting and counting open ordered sets originating from an attached node port |
US6999460B1 (en) * | 2000-10-16 | 2006-02-14 | Storage Technology Corporation | Arbitrated loop port switching |
US6647528B1 (en) * | 2000-11-02 | 2003-11-11 | Computer Network Technology Corporation | Fiber channel CRC for internal error checking on a switching platform |
US6868516B1 (en) | 2000-12-21 | 2005-03-15 | Emc Corporation | Method for validating write data to a memory |
US6779150B1 (en) * | 2000-12-21 | 2004-08-17 | Emc Corporation | CRC error detection system and method |
US6934904B2 (en) * | 2001-04-30 | 2005-08-23 | Sun Microsystems, Inc. | Data integrity error handling in a redundant storage array |
US7016969B1 (en) * | 2001-05-11 | 2006-03-21 | Cisco Technology, Inc. | System using weighted fairness decisions in spatial reuse protocol forwarding block to determine allowed usage for servicing transmit and transit traffic in a node |
JP2002368768A (ja) * | 2001-06-05 | 2002-12-20 | Hitachi Ltd | ファイバチャネル調停ループ対応の電子装置及びファイバチャネル調停ループの障害検出方法 |
US6850410B2 (en) * | 2001-06-29 | 2005-02-01 | Emc Corporation | Advanced technology attachment disk drive module with fibre channel system characteristics |
US7065661B2 (en) * | 2002-12-16 | 2006-06-20 | Emc Corporation | Using request and grant signals to read revision information from an adapter board that interfaces a disk drive |
US7215680B2 (en) * | 2001-07-26 | 2007-05-08 | Nishan Systems, Inc. | Method and apparatus for scheduling packet flow on a fibre channel arbitrated loop |
US20030135577A1 (en) * | 2001-12-19 | 2003-07-17 | Weber Bret S. | Dual porting serial ATA disk drives for fault tolerant applications |
US7433948B2 (en) | 2002-01-23 | 2008-10-07 | Cisco Technology, Inc. | Methods and apparatus for implementing virtualization of storage within a storage area network |
US7391723B2 (en) * | 2002-04-22 | 2008-06-24 | Computer Network Technology Corporation | Frame-level fibre channel CRC on switching platform |
US7808924B2 (en) | 2002-05-24 | 2010-10-05 | Cisco Technology, Inc. | Apparatus and method for preventing disruption of fibre channel fabrics caused by ReConfigure Fabric (RCF) messages |
US7630300B2 (en) * | 2002-07-02 | 2009-12-08 | Emulex Design & Manufacturing Corporation | Methods and apparatus for trunking in fibre channel arbitrated loop systems |
US7397788B2 (en) * | 2002-07-02 | 2008-07-08 | Emulex Design & Manufacturing Corporation | Methods and apparatus for device zoning in fibre channel arbitrated loop systems |
US7660316B2 (en) * | 2002-07-02 | 2010-02-09 | Emulex Design & Manufacturing Corporation | Methods and apparatus for device access fairness in fibre channel arbitrated loop systems |
US7664018B2 (en) | 2002-07-02 | 2010-02-16 | Emulex Design & Manufacturing Corporation | Methods and apparatus for switching fibre channel arbitrated loop devices |
US7171525B1 (en) * | 2002-07-31 | 2007-01-30 | Silicon Image, Inc. | Method and system for arbitrating priority bids sent over serial links to a multi-port storage device |
KR100457046B1 (ko) * | 2002-08-07 | 2004-11-10 | 삼성전자주식회사 | 반도체 장치의 제조에서 콘택 형성 방법 |
DE60327329D1 (de) * | 2002-09-10 | 2009-06-04 | Exagrid Systems Inc | Primär- und ferndatensicherung mit knoten-failover |
US7397768B1 (en) | 2002-09-11 | 2008-07-08 | Qlogic, Corporation | Zone management in a multi-module fibre channel switch |
US7220908B2 (en) * | 2002-09-12 | 2007-05-22 | Yamaha Corporation | Waveform processing apparatus with versatile data bus |
US6961786B2 (en) * | 2002-09-25 | 2005-11-01 | Lsi Logic Corporation | Fiber loop linking/detecting |
US20040068591A1 (en) * | 2002-10-03 | 2004-04-08 | Workman Michael Lee | Systems and methods of multiple access paths to single ported storage devices |
US20040123027A1 (en) * | 2002-10-03 | 2004-06-24 | Workman Michael Lee | Systems and methods of multiple access paths to single ported storage devices |
US7327680B1 (en) * | 2002-11-05 | 2008-02-05 | Cisco Technology, Inc. | Methods and apparatus for network congestion control |
US6829658B2 (en) | 2002-12-16 | 2004-12-07 | Emc Corporation | Compatible signal-to-pin connector assignments for usage with fibre channel and advanced technology attachment disk drives |
US7194673B2 (en) * | 2002-12-20 | 2007-03-20 | Emc Corporation | Detecting intermittent losses of synchronization in a fibre channel loop |
US7782784B2 (en) * | 2003-01-10 | 2010-08-24 | Cisco Technology, Inc. | Port analyzer adapter |
US7899048B1 (en) | 2003-01-15 | 2011-03-01 | Cisco Technology, Inc. | Method and apparatus for remotely monitoring network traffic through a generic network |
US7516272B2 (en) | 2003-03-28 | 2009-04-07 | Emc Corporation | Midplane-independent implementations of data storage system enclosures |
US6961784B1 (en) * | 2003-04-17 | 2005-11-01 | Qlogic Corporation | Method and system for processing non-data frames in host bus adapters |
US7646767B2 (en) | 2003-07-21 | 2010-01-12 | Qlogic, Corporation | Method and system for programmable data dependant network routing |
JP4432388B2 (ja) | 2003-08-12 | 2010-03-17 | 株式会社日立製作所 | 入出力制御装置 |
US7234101B1 (en) | 2003-08-27 | 2007-06-19 | Qlogic, Corporation | Method and system for providing data integrity in storage systems |
US7474666B2 (en) | 2003-09-03 | 2009-01-06 | Cisco Technology, Inc. | Switch port analyzers |
US8165136B1 (en) | 2003-09-03 | 2012-04-24 | Cisco Technology, Inc. | Virtual port based SPAN |
US7134070B2 (en) * | 2003-09-08 | 2006-11-07 | Intel Corporation | Checksum determination |
US7573870B2 (en) * | 2003-09-25 | 2009-08-11 | Lsi Logic Corporation | Transmit prioritizer context prioritization scheme |
US7353448B1 (en) * | 2003-10-21 | 2008-04-01 | Marvell Semiconductor Israel Ltd. | Methods, architectures, circuits and systems for transmission error determination |
US7219263B1 (en) | 2003-10-29 | 2007-05-15 | Qlogic, Corporation | Method and system for minimizing memory corruption |
US20050114498A1 (en) * | 2003-11-06 | 2005-05-26 | International Business Machines Corporation | Method and apparatus for managing data transfer in a data processing system |
US7219325B1 (en) * | 2003-11-21 | 2007-05-15 | Xilinx, Inc. | Exploiting unused configuration memory cells |
JP4426261B2 (ja) * | 2003-11-25 | 2010-03-03 | 株式会社日立製作所 | チャネルアダプタ及びディスクアレイ装置 |
US7934023B2 (en) | 2003-12-01 | 2011-04-26 | Cisco Technology, Inc. | Apparatus and method for performing fast fibre channel write operations over relatively high latency networks |
US7236361B2 (en) * | 2003-12-22 | 2007-06-26 | Emc Corporation | Fan assembly for installing and removing fans individually and collectively |
US7145776B2 (en) * | 2003-12-22 | 2006-12-05 | Emc Corporation | Midplane-less data storage enclosure |
US7231581B2 (en) * | 2003-12-31 | 2007-06-12 | Intel Corporation | Communicating using a partial block in a frame |
US7986630B1 (en) * | 2004-02-09 | 2011-07-26 | Lsi Corporation | High performance architecture for fiber channel targets and target bridges |
US20050187979A1 (en) * | 2004-02-09 | 2005-08-25 | Microsoft Corporation | System and method for message-level connection management |
US7434150B1 (en) | 2004-03-03 | 2008-10-07 | Marvell Israel (M.I.S.L.) Ltd. | Methods, circuits, architectures, software and systems for determining a data transmission error and/or checking or confirming such error determinations |
US7360142B1 (en) | 2004-03-03 | 2008-04-15 | Marvell Semiconductor Israel Ltd. | Methods, architectures, circuits, software and systems for CRC determination |
US7930377B2 (en) | 2004-04-23 | 2011-04-19 | Qlogic, Corporation | Method and system for using boot servers in networks |
US7669190B2 (en) | 2004-05-18 | 2010-02-23 | Qlogic, Corporation | Method and system for efficiently recording processor events in host bus adapters |
US9201599B2 (en) * | 2004-07-19 | 2015-12-01 | Marvell International Ltd. | System and method for transmitting data in storage controllers |
US20060015659A1 (en) * | 2004-07-19 | 2006-01-19 | Krantz Leon A | System and method for transferring data using storage controllers |
US7719970B1 (en) * | 2004-08-20 | 2010-05-18 | Altera Corporation | Serial communications system with optional data path and control plane features |
US7577772B2 (en) | 2004-09-08 | 2009-08-18 | Qlogic, Corporation | Method and system for optimizing DMA channel selection |
US20060064531A1 (en) * | 2004-09-23 | 2006-03-23 | Alston Jerald K | Method and system for optimizing data transfer in networks |
US7676611B2 (en) | 2004-10-01 | 2010-03-09 | Qlogic, Corporation | Method and system for processing out of orders frames |
US7398335B2 (en) * | 2004-11-22 | 2008-07-08 | Qlogic, Corporation | Method and system for DMA optimization in host bus adapters |
US7164425B2 (en) * | 2004-12-21 | 2007-01-16 | Qlogic Corporation | Method and system for high speed network application |
US7392437B2 (en) | 2005-01-20 | 2008-06-24 | Qlogic, Corporation | Method and system for testing host bus adapters |
US7231480B2 (en) * | 2005-04-06 | 2007-06-12 | Qlogic, Corporation | Method and system for receiver detection in PCI-Express devices |
US7281077B2 (en) * | 2005-04-06 | 2007-10-09 | Qlogic, Corporation | Elastic buffer module for PCI express devices |
US7562284B2 (en) * | 2005-08-26 | 2009-07-14 | International Business Machines Corporation | Apparatus, system, and method for mandatory end to end integrity checking in a storage system |
KR100690274B1 (ko) * | 2005-09-12 | 2007-03-09 | 삼성전자주식회사 | 다중 채널 직렬 통신을 위한 순환 중복 검사 장치 및 이를구비한 통신 시스템 |
US7660926B2 (en) * | 2005-11-16 | 2010-02-09 | Sun Microsystems, Inc. | Apparatus and method for a core for implementing a communications port |
US7694204B2 (en) * | 2006-03-09 | 2010-04-06 | Silicon Image, Inc. | Error detection in physical interfaces for point-to-point communications between integrated circuits |
US7461195B1 (en) | 2006-03-17 | 2008-12-02 | Qlogic, Corporation | Method and system for dynamically adjusting data transfer rates in PCI-express devices |
US7933735B2 (en) * | 2007-01-31 | 2011-04-26 | Denso Corporation | Semiconductor integrated circuit |
KR100902051B1 (ko) * | 2007-07-12 | 2009-06-15 | 주식회사 하이닉스반도체 | 오류 검사 코드 생성장치 및 방법 |
US7751350B1 (en) * | 2007-08-03 | 2010-07-06 | William George Pabst | Full duplex network radio bridge with low latency and high throughput |
US7975027B2 (en) * | 2007-08-06 | 2011-07-05 | International Business Machines Corporation | Credit depletion notification for transmitting frames between a port pair |
US7787375B2 (en) * | 2007-08-06 | 2010-08-31 | International Business Machines Corporation | Performing a recovery action in response to a credit depletion notification |
US8111610B2 (en) * | 2008-01-25 | 2012-02-07 | Emulex Design & Manufacturing Corporation | Flagging of port conditions in high speed networks |
US8566688B2 (en) * | 2009-09-01 | 2013-10-22 | Ensequence, Inc. | Method of certifying multiple versions of an application |
KR101069725B1 (ko) * | 2009-12-24 | 2011-10-04 | 주식회사 하이닉스반도체 | 반도체 메모리 장치와 이를 위한 고장번지 제어 회로 및 방법 |
JP5651962B2 (ja) * | 2010-02-03 | 2015-01-14 | 富士通株式会社 | Raid装置、異常デバイス検出装置および異常デバイス検出方法 |
JP5678171B2 (ja) | 2010-04-12 | 2015-02-25 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | ネットワークにおける低オーバーヘッド通信のためのチャネル推定 |
JP4922442B2 (ja) | 2010-07-29 | 2012-04-25 | 株式会社東芝 | バッファ管理装置、同装置を備えた記憶装置、及びバッファ管理方法 |
US8504893B1 (en) * | 2010-09-30 | 2013-08-06 | Micron Technology, Inc. | Error detection or correction of a portion of a codeword in a memory device |
GB2484717B (en) * | 2010-10-21 | 2018-06-13 | Advanced Risc Mach Ltd | Security provision for a subject image displayed in a non-secure domain |
CN102468915B (zh) * | 2010-11-16 | 2014-07-02 | 北京中电华大电子设计有限责任公司 | 一种串口802.11n无线网卡芯片发送通路实现方法 |
CN102158400B (zh) * | 2011-03-03 | 2013-12-04 | 北京航空航天大学 | 天基路由交换系统的通信接口及天基路由交换系统 |
CN102999458A (zh) * | 2011-09-09 | 2013-03-27 | 中国航天科工集团第三研究院第八三五七研究所 | 高速智能串口芯片 |
CN102567276B (zh) * | 2011-12-19 | 2014-03-12 | 华为技术有限公司 | 基于多通道的数据传输方法、接收节点及跨节点互联系统 |
JP5937485B2 (ja) * | 2012-10-24 | 2016-06-22 | 富士通フロンテック株式会社 | 送信装置 |
US9395924B2 (en) * | 2013-01-22 | 2016-07-19 | Seagate Technology Llc | Management of and region selection for writes to non-volatile memory |
US9569618B2 (en) * | 2013-08-28 | 2017-02-14 | Korea University Research And Business Foundation | Server and method for attesting application in smart device using random executable code |
CN103593261B (zh) * | 2013-10-17 | 2015-09-23 | 北京控制工程研究所 | 一种中断服务程序中通信故障的快速恢复方法 |
US9467389B2 (en) | 2014-04-28 | 2016-10-11 | International Business Machines Corporation | Handling large frames in a virtualized fibre channel over ethernet (FCoE) data forwarder |
US10061734B2 (en) | 2015-05-20 | 2018-08-28 | International Business Machines Corporation | Adjustment of buffer credits and other parameters in a startup phase of communications between a plurality of channels and a control unit |
US9864716B2 (en) | 2015-05-20 | 2018-01-09 | International Business Machines Corporation | Receiving buffer credits by a plurality of channels of one or more host computational devices for transmitting data to a control unit |
US9892065B2 (en) * | 2015-05-20 | 2018-02-13 | International Business Machines Corporation | Adjustments of buffer credits for optimizing the number of retry operations and transfer ready operations |
CN106500739B (zh) * | 2016-11-18 | 2019-01-25 | 威科达(东莞)智能控制有限公司 | 一种与绝对值编码器通信的方法 |
CN108572883B (zh) * | 2017-04-19 | 2021-06-18 | 北京金山云网络技术有限公司 | 一种数据正确性校验方法及装置 |
EP3404546B1 (en) * | 2017-05-16 | 2019-09-11 | Melexis Technologies NV | Device for supervising and initializing ports |
CN107229858B (zh) * | 2017-05-19 | 2020-04-03 | 郑州云海信息技术有限公司 | 一种支持crc8校验的PECI总线主从机验证系统及验证方法 |
US11360934B1 (en) | 2017-09-15 | 2022-06-14 | Groq, Inc. | Tensor streaming processor architecture |
US11243880B1 (en) | 2017-09-15 | 2022-02-08 | Groq, Inc. | Processor architecture |
US11868804B1 (en) | 2019-11-18 | 2024-01-09 | Groq, Inc. | Processor instruction dispatch configuration |
US11114138B2 (en) | 2017-09-15 | 2021-09-07 | Groq, Inc. | Data structures with multiple read ports |
US11170307B1 (en) | 2017-09-21 | 2021-11-09 | Groq, Inc. | Predictive model compiler for generating a statically scheduled binary with known resource constraints |
CN107977284A (zh) * | 2017-11-30 | 2018-05-01 | 苏州麦迪斯顿医疗科技股份有限公司 | 一种数据处理方法、装置、服务器和介质 |
JP7192244B2 (ja) | 2018-05-15 | 2022-12-20 | 株式会社デンソー | 中継装置 |
US11537687B2 (en) | 2018-11-19 | 2022-12-27 | Groq, Inc. | Spatial locality transform of matrices |
US11115147B2 (en) * | 2019-01-09 | 2021-09-07 | Groq, Inc. | Multichip fault management |
CN110518978B (zh) * | 2019-07-23 | 2022-12-27 | 中国航空无线电电子研究所 | 基于光纤链路的混合数据传输组件 |
CN111966627B (zh) * | 2020-08-13 | 2023-06-30 | 北京中航通用科技有限公司 | 用于串行总线的8b/9b编解码方法 |
TWI778644B (zh) * | 2021-05-31 | 2022-09-21 | 新唐科技股份有限公司 | 系統單晶片和其資料燒入方法 |
US11855655B2 (en) * | 2021-09-28 | 2023-12-26 | Texas Instruments Incorporated | Serial communications module with CRC |
US12045121B2 (en) | 2021-11-12 | 2024-07-23 | Samsung Electronics Co., Ltd. | Security IC and operating method thereof |
CN114117980B (zh) * | 2022-01-25 | 2022-06-07 | 飞腾信息技术有限公司 | 芯片设计方法、芯片设计模块、电子设备和介质 |
US20230236756A1 (en) * | 2022-01-25 | 2023-07-27 | Infineon Technologies Ag | Buffer management in an ethernet switch |
Family Cites Families (84)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4486739A (en) | 1982-06-30 | 1984-12-04 | International Business Machines Corporation | Byte oriented DC balanced (0,4) 8B/10B partitioned block transmission code |
US4654654A (en) * | 1983-02-07 | 1987-03-31 | At&T Bell Laboratories | Data network acknowledgement arrangement |
GB8606217D0 (en) * | 1986-03-13 | 1986-04-16 | Univ Strathclyde | Local area network priority control system |
US4933785A (en) | 1988-03-01 | 1990-06-12 | Prairietek Corporation | Disk drive apparatus using dynamic loading/unloading |
US5168568A (en) | 1989-02-06 | 1992-12-01 | Compaq Computer Corporation | Delaying arbitration of bus access in digital computers |
US5187780A (en) * | 1989-04-07 | 1993-02-16 | Digital Equipment Corporation | Dual-path computer interconnect system with zone manager for packet memory |
US5170466A (en) * | 1989-10-10 | 1992-12-08 | Unisys Corporation | Storage/retrieval system for document |
US5235482A (en) | 1989-11-09 | 1993-08-10 | Rodime Plc | Magnetic disk drive incorporating a mechanically damped base |
US5034837A (en) | 1989-11-09 | 1991-07-23 | Rodime Plc | Magnetic disk drive incorporating a magnetic actuator lock and a very small form factor |
US5418716A (en) | 1990-07-26 | 1995-05-23 | Nec Corporation | System for recognizing sentence patterns and a system for recognizing sentence patterns and grammatical cases |
US5172538A (en) | 1991-09-05 | 1992-12-22 | Luger Linda S | Stirrup pad |
JP2624064B2 (ja) | 1991-11-29 | 1997-06-25 | 日本電気株式会社 | ロードアンロード機構 |
JPH05166322A (ja) | 1991-12-16 | 1993-07-02 | Nec Ibaraki Ltd | 磁気ヘッドのロードアンロード機構 |
JPH05244160A (ja) * | 1992-02-28 | 1993-09-21 | Toshiba Corp | フレーム削除機能を持つブリッジ装置 |
US5260933A (en) | 1992-05-15 | 1993-11-09 | International Business Machines Corporation | Acknowledgement protocol for serial data network with out-of-order delivery |
US5772597A (en) | 1992-09-14 | 1998-06-30 | Sextant Medical Corporation | Surgical tool end effector |
US5341260A (en) | 1992-12-04 | 1994-08-23 | Seagate Technology, Inc. | Reduced torque unloading ramp system for a hard disk drive |
WO1994018634A1 (en) | 1993-02-01 | 1994-08-18 | Lsc, Inc. | Archiving file system for data servers in a distributed network environment |
US5617425A (en) * | 1993-05-26 | 1997-04-01 | Seagate Technology, Inc. | Disc array having array supporting controllers and interface |
JP3264465B2 (ja) | 1993-06-30 | 2002-03-11 | 株式会社日立製作所 | 記憶システム |
JPH0728746A (ja) * | 1993-07-14 | 1995-01-31 | Fuji Xerox Co Ltd | データ転送装置 |
JPH0863920A (ja) | 1993-08-24 | 1996-03-08 | Sony Corp | ロード・アンロード装置及びその駆動制御回路 |
US5668809A (en) * | 1993-10-20 | 1997-09-16 | Lsi Logic Corporation | Single chip network hub with dynamic window filter |
US5448566A (en) | 1993-11-15 | 1995-09-05 | International Business Machines Corporation | Method and apparatus for facilitating communication in a multilayer communication architecture via a dynamic communication channel |
GB9401092D0 (en) * | 1994-01-21 | 1994-03-16 | Newbridge Networks Corp | A network management system |
FR2719552B1 (fr) * | 1994-05-04 | 1996-07-26 | Eurocopter France | Aube de redresseur pour dispositif anti-couple à rotor et stator redresseur carénés d'hélicoptère. |
US5455723A (en) | 1994-06-02 | 1995-10-03 | International Business Machines Corporation | Method and apparatus for ramp load and unload |
JPH0844649A (ja) * | 1994-07-26 | 1996-02-16 | Hitachi Ltd | データ処理装置 |
US5828522A (en) | 1994-09-13 | 1998-10-27 | International Business Machines Corporation | Velocity control of head load/unload mechanism in a disk drive using dither |
US5535035A (en) * | 1994-09-15 | 1996-07-09 | International Business Machines Corporation | Optical fiber ring communications system and communications method |
WO1996008766A1 (en) | 1994-09-16 | 1996-03-21 | Philips Electronics N.V. | Microcontroller having a page address mode |
JPH0897803A (ja) | 1994-09-26 | 1996-04-12 | Nec Eng Ltd | データ伝送方式 |
US5619647A (en) | 1994-09-30 | 1997-04-08 | Tandem Computers, Incorporated | System for multiplexing prioritized virtual channels onto physical channels where higher priority virtual will pre-empt a lower priority virtual or a lower priority will wait |
US5638518A (en) | 1994-10-24 | 1997-06-10 | Lsi Logic Corporation | Node loop core for implementing transmission protocol in fibre channel |
US5598541A (en) * | 1994-10-24 | 1997-01-28 | Lsi Logic Corporation | Node loop port communication interface super core for fibre channel |
US5617541A (en) * | 1994-12-21 | 1997-04-01 | International Computer Science Institute | System for packetizing data encoded corresponding to priority levels where reconstructed data corresponds to fractionalized priority level and received fractionalized packets |
US5619497A (en) | 1994-12-22 | 1997-04-08 | Emc Corporation | Method and apparatus for reordering frames |
US5590006A (en) | 1994-12-23 | 1996-12-31 | International Business Machines Corporation | One-sided, single platter hard disk with center parking features |
US5812564A (en) | 1995-05-08 | 1998-09-22 | Western Digital Corporation | Disk drive with embedded finite field processor for error correction |
US5831795A (en) | 1995-05-10 | 1998-11-03 | Iomega Corporation | Head loading mechanism for a disk drive |
US5694615A (en) * | 1995-06-26 | 1997-12-02 | Hewlett Packard Company | Storage system having storage units interconnected to form multiple loops to provide simultaneous access from multiple hosts |
US5815662A (en) | 1995-08-15 | 1998-09-29 | Ong; Lance | Predictive memory caching for media-on-demand systems |
JPH0955718A (ja) * | 1995-08-17 | 1997-02-25 | Nec Corp | データ通信装置 |
US5768623A (en) | 1995-09-19 | 1998-06-16 | International Business Machines Corporation | System and method for sharing multiple storage arrays by dedicating adapters as primary controller and secondary controller for arrays reside in different host computers |
CA2182539A1 (en) | 1995-09-29 | 1997-03-30 | Nandakumar Natarajan | Method and apparatus for buffer management |
EP0799473B1 (en) | 1995-10-10 | 2002-01-09 | Koninklijke Philips Electronics N.V. | Information storage unit with electromagnetic lifting device |
US5778426A (en) | 1995-10-23 | 1998-07-07 | Symbios, Inc. | Methods and structure to maintain a two level cache in a RAID controller and thereby selecting a preferred posting method |
US5864448A (en) | 1995-10-24 | 1999-01-26 | International Business Machines Corporation | Slider and suspension retention and retraction system for high capacity disk drive |
US5822782A (en) | 1995-10-27 | 1998-10-13 | Symbios, Inc. | Methods and structure to maintain raid configuration information on disks of the array |
US5805920A (en) | 1995-11-13 | 1998-09-08 | Tandem Computers Incorporated | Direct bulk data transfers |
JPH09149034A (ja) * | 1995-11-20 | 1997-06-06 | Nec Eng Ltd | Atmセルの生成方法及び通信制御装置 |
JPH09149067A (ja) | 1995-11-21 | 1997-06-06 | Hitachi Cable Ltd | スイッチングハブ |
US5758081A (en) | 1995-12-08 | 1998-05-26 | Aytac; Haluk M. | Computing and communications transmitting, receiving system, with a push button interface, that is continously on, that pairs up with a personal computer and carries out mainly communications related routine tasks |
US5781801A (en) | 1995-12-20 | 1998-07-14 | Emc Corporation | Method and apparatus for receive buffer management in multi-sender communication systems |
US5809328A (en) | 1995-12-21 | 1998-09-15 | Unisys Corp. | Apparatus for fibre channel transmission having interface logic, buffer memory, multiplexor/control device, fibre channel controller, gigabit link module, microprocessor, and bus control device |
US5768530A (en) | 1995-12-28 | 1998-06-16 | Emc Corporation | High speed integrated circuit interface for fibre channel communications |
US5790773A (en) | 1995-12-29 | 1998-08-04 | Symbios, Inc. | Method and apparatus for generating snapshot copies for data backup in a raid subsystem |
JP2689973B2 (ja) * | 1995-12-29 | 1997-12-10 | 日本電気株式会社 | スイッチングハブ装置 |
US5787242A (en) | 1995-12-29 | 1998-07-28 | Symbios Logic Inc. | Method and apparatus for treatment of deferred write data for a dead raid device |
US6115767A (en) * | 1996-03-04 | 2000-09-05 | Matsushita Electric Industrial Co., Ltd. | Apparatus and method of partially transferring data through bus and bus master control device |
US5819111A (en) | 1996-03-15 | 1998-10-06 | Adobe Systems, Inc. | System for managing transfer of data by delaying flow controlling of data through the interface controller until the run length encoded data transfer is complete |
US5802080A (en) * | 1996-03-28 | 1998-09-01 | Seagate Technology, Inc. | CRC checking using a CRC generator in a multi-port design |
US5663724A (en) | 1996-03-28 | 1997-09-02 | Seagate Technology, Inc. | 16B/20B encoder |
US5761705A (en) | 1996-04-04 | 1998-06-02 | Symbios, Inc. | Methods and structure for maintaining cache consistency in a RAID controller having redundant caches |
US5761534A (en) | 1996-05-20 | 1998-06-02 | Cray Research, Inc. | System for arbitrating packetized data from the network to the peripheral resources and prioritizing the dispatching of packets onto the network |
US5805788A (en) | 1996-05-20 | 1998-09-08 | Cray Research, Inc. | Raid-5 parity generation and data reconstruction |
US5787450A (en) | 1996-05-29 | 1998-07-28 | International Business Machines Corporation | Apparatus and method for constructing a non-linear data object from a common gateway interface |
US5764931A (en) | 1996-05-31 | 1998-06-09 | Sun Microsystems, Inc. | Method and apparatus for passing bus mastership between processors using predefined bus mastership states |
US5822143A (en) | 1996-06-11 | 1998-10-13 | Western Digital Corporation | Decision feedback equalization implementation of partial-response signaling in a magnetic recording channel |
US5790792A (en) | 1996-09-04 | 1998-08-04 | Radiant Systems, Inc. | Method and apparatus for transmitting multimedia data from and application logic server to interactive multimedia workstations |
JP2868080B2 (ja) | 1996-09-12 | 1999-03-10 | 三菱電機株式会社 | 通信監視制御装置及び通信監視制御方法 |
US5812754A (en) | 1996-09-18 | 1998-09-22 | Silicon Graphics, Inc. | Raid system with fibre channel arbitrated loop |
US5889949A (en) * | 1996-10-11 | 1999-03-30 | C-Cube Microsystems | Processing system with memory arbitrating between memory access requests in a set top box |
US5930483A (en) * | 1996-12-09 | 1999-07-27 | International Business Machines Corporation | Method and apparatus for communications control on a small computer system interface |
US5917828A (en) * | 1997-01-03 | 1999-06-29 | Ncr Corporation | ATM reassembly controller and method |
US5978379A (en) * | 1997-01-23 | 1999-11-02 | Gadzoox Networks, Inc. | Fiber channel learning bridge, learning half bridge, and protocol |
US6172990B1 (en) * | 1997-06-19 | 2001-01-09 | Xaqti Corporation | Media access control micro-RISC stream processor and method for implementing the same |
US6061351A (en) * | 1997-02-14 | 2000-05-09 | Advanced Micro Devices, Inc. | Multicopy queue structure with searchable cache area |
US5875074A (en) | 1997-04-18 | 1999-02-23 | Quinta Corporation | Adjustable head loading apparatus |
JPH10302421A (ja) | 1997-04-28 | 1998-11-13 | Internatl Business Mach Corp <Ibm> | サスペンション・アセンブリとランプ・ブロックおよびヘッド保持機構ならびにディスクドライブ装置 |
US6185207B1 (en) * | 1997-06-19 | 2001-02-06 | International Business Machines Corporation | Communication system having a local area network adapter for selectively deleting information and method therefor |
US6014380A (en) * | 1997-06-30 | 2000-01-11 | Sun Microsystems, Inc. | Mechanism for packet field replacement in a multi-layer distributed network element |
US6304910B1 (en) * | 1997-09-24 | 2001-10-16 | Emulex Corporation | Communication processor having buffer list modifier control bits |
US6226680B1 (en) * | 1997-10-14 | 2001-05-01 | Alacritech, Inc. | Intelligent network interface system method for protocol processing |
-
1998
- 1998-11-17 JP JP2000521448A patent/JP2001523861A/ja active Pending
- 1998-11-17 US US09/193,482 patent/US6317800B1/en not_active Ceased
- 1998-11-17 KR KR1020007005385A patent/KR100650818B1/ko active IP Right Grant
- 1998-11-17 WO PCT/US1998/024536 patent/WO1999026151A1/en active IP Right Grant
- 1998-11-17 WO PCT/US1998/024571 patent/WO1999026137A1/en active IP Right Grant
- 1998-11-17 DE DE19882830T patent/DE19882830T1/de not_active Withdrawn
- 1998-11-17 DE DE19882822T patent/DE19882822T1/de not_active Withdrawn
- 1998-11-17 CN CN98811207.8A patent/CN1123832C/zh not_active Expired - Lifetime
- 1998-11-17 WO PCT/US1998/024558 patent/WO1999026152A2/en active IP Right Grant
- 1998-11-17 US US09/193,446 patent/US6324669B1/en not_active Ceased
- 1998-11-17 US US09/193,681 patent/US6279057B1/en not_active Expired - Lifetime
- 1998-11-17 JP JP2000521449A patent/JP2001523862A/ja active Pending
- 1998-11-17 DE DE19882831T patent/DE19882831T1/de not_active Withdrawn
- 1998-11-17 CN CN98811240.XA patent/CN1304520A/zh active Pending
- 1998-11-17 KR KR1020007005387A patent/KR100564665B1/ko not_active IP Right Cessation
- 1998-11-17 JP JP2000521437A patent/JP4272813B2/ja not_active Expired - Fee Related
- 1998-11-17 GB GB9928812A patent/GB2342021B/en not_active Expired - Fee Related
- 1998-11-17 CN CNB988112086A patent/CN1158605C/zh not_active Expired - Lifetime
- 1998-11-17 US US09/193,387 patent/US6502189B1/en not_active Expired - Lifetime
- 1998-11-17 KR KR1020007005386A patent/KR100734649B1/ko not_active IP Right Cessation
- 1998-11-17 GB GB9928809A patent/GB2341526B/en not_active Expired - Fee Related
- 1998-11-17 GB GB0009935A patent/GB2346784B/en not_active Expired - Fee Related
-
2003
- 2003-11-13 US US10/714,478 patent/USRE40034E1/en not_active Expired - Lifetime
- 2003-11-26 US US10/723,963 patent/USRE42228E1/en not_active Expired - Lifetime
-
2008
- 2008-12-26 JP JP2008333587A patent/JP4547452B2/ja not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100345125C (zh) * | 2001-07-24 | 2007-10-24 | 松下电器产业株式会社 | 总线最优化方法及其通信节点 |
CN113037428A (zh) * | 2019-12-09 | 2021-06-25 | 大唐移动通信设备有限公司 | 一种对数据流程的处理方法及装置 |
CN114578299A (zh) * | 2021-06-10 | 2022-06-03 | 中国人民解放军63698部队 | 一种无线远程控制信标设备产生射频信号的方法及系统 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1304520A (zh) | 用于环路初始化和响应的专用帧缓存器及其方法 | |
CN1309849A (zh) | 采用动态半双工保持环路的公平 | |
US8364863B2 (en) | Method and apparatus for universal serial bus (USB) command queuing | |
EP2417527B1 (en) | Memory controllers, memory systems, solid state drivers and methods for processing a number of commands | |
US7676613B2 (en) | Methods and structure for assuring correct data order in SATA transmissions over a SAS wide port | |
US8700834B2 (en) | Systems and methods for an enhanced controller architecture in data storage systems | |
US7225326B2 (en) | Hardware assisted ATA command queuing | |
US7120705B2 (en) | Magnetic disk array device with processing offload function module | |
CN1237455C (zh) | 数据传输控制装置、电子设备、及数据传输控制方法 | |
CN1264119A (zh) | 阵列型记录装置 | |
CN1383511A (zh) | 通过重排序存储器请求提高总线利用率的存储器控制器 | |
CN1869914A (zh) | 存储系统及存储系统的运用方法 | |
CN101040271A (zh) | 用于优化dma信道选择的方法和系统 | |
CN1402845A (zh) | 多线程并行处理器结构中所用的微引擎的存储器引用指令 | |
CN1218567A (zh) | 多路并行数字数据流通道控制器体系结构 | |
CN1722107A (zh) | 计算机系统以及存储装置系统的迁移方法 | |
CN1912926A (zh) | 可中断图形处理单元处理多个程序的方法和图形处理单元 | |
CN1371495A (zh) | Vlsi网络处理器和方法 | |
CN1385791A (zh) | 数据传送控制装置、电子设备及数据传送控制方法 | |
CN1617160A (zh) | 用于识别标准卡以及非标准卡的卡识别系统 | |
CN1293456C (zh) | 集群型存储系统 | |
US20070255897A1 (en) | Apparatus, system, and method for facilitating physical disk request scheduling | |
CN110716691A (zh) | 调度方法、装置、闪存设备和系统 | |
CN101819562B (zh) | 通信方法及装置 | |
CN1311357C (zh) | 通用资源访问控制器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |