CN1498470B - Method and device for data alignment - Google Patents
Method and device for data alignment Download PDFInfo
- Publication number
- CN1498470B CN1498470B CN02807041.0A CN02807041A CN1498470B CN 1498470 B CN1498470 B CN 1498470B CN 02807041 A CN02807041 A CN 02807041A CN 1498470 B CN1498470 B CN 1498470B
- Authority
- CN
- China
- Prior art keywords
- group
- data
- input
- buffer
- output
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 239000000872 buffer Substances 0.000 claims description 307
- 230000005540 biological transmission Effects 0.000 claims description 15
- 230000003287 optical effect Effects 0.000 claims description 10
- 230000001360 synchronised effect Effects 0.000 claims description 10
- 238000012546 transfer Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 claims description 4
- 230000006855 networking Effects 0.000 claims description 3
- 230000001052 transient effect Effects 0.000 claims 24
- 238000013461 design Methods 0.000 abstract description 11
- 238000001514 detection method Methods 0.000 abstract description 8
- 238000012937 correction Methods 0.000 abstract description 4
- 230000001788 irregular Effects 0.000 abstract description 3
- 230000002829 reductive effect Effects 0.000 abstract description 2
- 230000015654 memory Effects 0.000 description 16
- 238000012545 processing Methods 0.000 description 14
- 230000036961 partial effect Effects 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 230000009471 action Effects 0.000 description 7
- 125000004122 cyclic group Chemical group 0.000 description 6
- 238000009432 framing Methods 0.000 description 6
- 238000013507 mapping Methods 0.000 description 6
- 239000013598 vector Substances 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 229910052802 copper Inorganic materials 0.000 description 2
- 239000010949 copper Substances 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- 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/9084—Reactions to storage capacity overflow
- H04L49/9089—Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
- H04L49/9094—Arrangements for simultaneous transmit and receive, e.g. simultaneous reading/writing from/to the storage element
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/04—Distributors combined with modulators or demodulators
- H04J3/047—Distributors with transistors or integrated circuits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0602—Systems characterised by the synchronising information used
- H04J3/0605—Special codes used as synchronising signal
- H04J3/0608—Detectors therefor, e.g. correlators, state machines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/062—Synchronisation of signals having the same nominal but fluctuating bit rates, e.g. using buffers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/16—Time-division multiplex systems in which the time allocation to individual channels within a transmission cycle is variable, e.g. to accommodate varying complexity of signals, to vary number of channels transmitted
- H04J3/1605—Fixed allocated frame structures
- H04J3/1611—Synchronous digital hierarchy [SDH] or SONET
- H04J3/1617—Synchronous digital hierarchy [SDH] or SONET carrying packets or ATM cells
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Detection And Correction Of Errors (AREA)
- Time-Division Multiplex Systems (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
在数据对准器(400,700)的多电路级(404,406,704,706)中,分配不规则数据流的数据操作的一种方法,藉以产生具有连续填满字节位置的规则数据流。在一特定实施例中,未对准数据情节的数目可以透过数据流组件映像的使用而予以降低。在这个数据对准器中仅需要加入多任务器(460,470,760,770,775)及简易逻辑电路,复杂数据流便可以映像(835)至简易数据流。与网络协议相关的硬件实施方式(其中,数据流编码及译码以达成错误检测及校正的目的)可以使检查器(checker)及产生器(generator)得到更有快速且更有效的流水线设计,进而适用于较高频率及较高频宽的设计。
A method of distributing data manipulation of irregular data streams in multiple circuit stages (404, 406, 704, 706) of a data aligner (400, 700) whereby regular data having consecutively filled byte positions is generated flow. In a particular embodiment, the number of misaligned data episodes can be reduced through the use of data flow element maps. Only multiplexers (460, 470, 760, 770, 775) and simple logic circuits need to be added to the data aligner, and complex data streams can be mapped (835) to simple data streams. Hardware implementations associated with network protocols (where data streams are encoded and decoded for error detection and correction) allow for faster and more efficient pipeline design of checkers and generators, Then it is suitable for the design of higher frequency and higher bandwidth.
Description
〔技术领域〕〔Technical field〕
本发明涉及网络系统领域。特别是,本发明涉及在网络系统中使用的数据对准器(data aligner)。The present invention relates to the field of network systems. In particular, the present invention relates to data aligners used in network systems.
〔背景技术〕〔Background technique〕
简单来说,互联(Internet)是经由网络(例如:传输线、交换器、路由器)进行互连的计算机系统集合,藉以在这些计算机系统间传输数据。一般而言,数据乃是利用数据封包(data package)的形式、在网络中沿着一个数据路径进行传输。数据路径的一个重要特征是位宽度(bit width)。位宽度(bit width)是这个数据路径上、同时处理或通过的位数目。数据路径的位宽度决定其频宽(bandwidth)及时脉速度(clock speed)。频宽(bandwidth)是数据能够在这个数据路径上流动多快的一个测量。在数字系统中,频宽可以利用每秒位数(bps)表示为数据速度(data speed)。Simply put, the Internet (Internet) is a collection of computer systems interconnected via a network (such as transmission lines, switches, routers), so as to transmit data between these computer systems. Generally speaking, data is transmitted along a data path in the network in the form of data packets. An important characteristic of the data path is the bit width (bit width). Bit width is the number of bits that are simultaneously processed or passed on this data path. The bit width of a data path determines its bandwidth and clock speed. Bandwidth is a measure of how fast data can flow on the data path. In digital systems, bandwidth can be expressed as data speed in bits per second (bps).
曾经,数据乃是利用具有有限频宽(bandwidth)能力的铜线传输线,排他性地承载在传统的简易老式电话系统(POTS)、或公共交换电话网络(PSTN)上。随后,其它类型的网络则是利用具有较高频宽(bandwidth)的传输线进行发展,举例来说:综合业务数字网(ISDN),其可以在给定的时间内传输更大的数据量(更高的每秒位数(bps))。综合业务数字网(ISDN)可以经由普通的公共交换电话网络(PSTN)铜线、在一个窄频区域回路(narrow band local loop)上提供数字传输。At one time, data was carried exclusively on the traditional Plain Old Telephone System (POTS), or the Public Switched Telephone Network (PSTN), using copper transmission lines with limited bandwidth capabilities. Subsequently, other types of networks were developed using transmission lines with higher bandwidth, for example: Integrated Services Digital Network (ISDN), which can transmit a larger amount of data (higher bandwidth) in a given time bits per second (bps). The Integrated Services Digital Network (ISDN) provides digital transmission over ordinary Public Switched Telephone Network (PSTN) copper wires over a narrow band local loop.
当互联网(Internet)呈现爆炸性成长、且数据流量呈现倍数增加时,目前最急迫需要的便是频宽的增加。一般而言,满足频宽增加的需要可以有两种方法,即:提高时脉速度(clock speed)及加宽数据路径(data path)。系统设计师在更高的时脉速率(clock speed)上执行数据路径(data path),藉以达成技术的进展。另外,系统设计师也会增加位宽度(bit width)以加宽数据路径(data path)。尽管已经具有加宽的数据路径(data path),这些系统却仍然需要支持遗留系统(legacy system),即:先前已经在较窄数据路径(datapath)上设计的老旧系统。因此,加宽数据路径(data path)的利用会导致数据流的不规则性。When the Internet (Internet) is experiencing explosive growth and data traffic is increasing exponentially, the most urgent need at present is the increase of bandwidth. Generally speaking, there are two ways to meet the requirement of increased bandwidth, namely: increasing the clock speed and widening the data path. System designers are advancing the technology by implementing data paths at higher clock speeds. In addition, system designers will also increase the bit width (bit width) to widen the data path (data path). Despite having widened data paths, these systems still need to support legacy systems, ie older systems that have previously been designed on narrower data paths. Therefore, the utilization of widened data paths can lead to irregularities in data flow.
与数据路径(data path)关连的其它参数还包括:网络的类型和在这个数据路径(data path)上传输数据的协议。计算机系统可以利用各种网络,诸如:互联网(Internet)和同步光学网络(SONET),藉以进行彼此间的通信。特别说明的是,同步光学网络(SONET)乃是在光学媒体上进行同步数据传输的美国标准。另外,同步光学网络(SONET)的对应国际标准则是同步数字体系(SDH)。同时,这两种标准必须确保数字网络能够进行国际互连、并且必须确保现有传统传输系统可以利用光学媒体。Other parameters associated with the data path (data path) include: the type of network and the protocol for transmitting data on this data path (data path). Computer systems can use various networks, such as: Internet (Internet) and Synchronous Optical Network (SONET), to communicate with each other. Specifically, Synchronous Optical Network (SONET) is an American standard for synchronous data transmission over optical media. In addition, the corresponding international standard of Synchronous Optical Network (SONET) is Synchronous Digital Hierarchy (SDH). At the same time, the two standards must ensure that digital networks can be interconnected internationally and that existing legacy transmission systems can utilize optical media.
另外,计算机系统会利用与网络协议相关的电路,诸如:网络适配器(adapter),藉以编码及译码网络传输的数据,进而用于错误检测及校正的目的。在各种协议实施方式及互连网络规格中,选择性的位移除及加入是普遍现象。这两个因素可能会导致任意排列的数据流的产生,由迄今得到的规则数据流,其必须要事先收集并对准以进行有效且方便地处理。规则的数据流的产生可以有效利用频宽,进而得到较快的数据传输时间。另外,规则的数据流更容易处理、更适合流水线操作、及更容易撷取及储存。在网络电路及系统中,这些因素均具有极高的重要性,因为其可能会影响到消费者及市场的主要区别参数。In addition, the computer system uses circuits related to network protocols, such as network adapters, to encode and decode data transmitted over the network for the purpose of error detection and correction. Selective bit removal and addition is common in various protocol implementations and interconnection network specifications. These two factors may lead to the generation of arbitrarily arranged data streams, from the heretofore obtained regular data streams, which must be collected and aligned in advance for efficient and convenient processing. The generation of regular data flow can effectively utilize the bandwidth, thereby obtaining faster data transmission time. In addition, the regular data flow is easier to process, more suitable for pipeline operation, and easier to capture and store. In networking circuits and systems, these factors are of utmost importance as they can affect key differentiating parameters for consumers and markets.
已知,将任意数据流映像至规则数据流的一类电路称为“数据对准器”。特别是,数据对准器会撷取各种字节大小的未对准数据、并将这个数据对准,藉以得到封装的字节大小。现有的部分数据对准器的一个问题是:这些对准器会在多电路级设计的第一级电路内包含大量的逻辑电路,藉以处理尽可能多的未对准数据情节。现有的部分数据对准器的另一个问题是:这些对准器会将输出选择多任务器的输出反馈至中间缓冲器,进而产生第一级电路设计的逻辑电路拥塞。这是因为:这类方法,当了解到特定封包中没有足够数据可通过作为输出时,可能会在这个中间缓冲器中保持连接数据,而非执行及恢复这个数据。这类手段不仅难以设计,并且也会在这个数据对准器的第一级电路设计中导致更多的处理时间,进而限制这类数据对准器可以操作的频率。A class of circuits that map arbitrary data streams to regular data streams is known as a "data aligner". In particular, the data aligner takes misaligned data of various byte sizes and aligns this data to get the packed byte size. One problem with existing partial data aligners is that these aligners contain a large amount of logic in the first stage of a multi-circuit level design to handle as many misaligned data instances as possible. Another problem with existing partial data aligners is that these aligners feed back the output of the output selection multiplexer to the intermediate buffer, thereby creating logic circuit congestion in the first stage circuit design. This is because such methods, upon knowing that there is not enough data in a particular packet to pass as output, may keep connection data in this intermediate buffer instead of executing and restoring it. Such approaches are not only difficult to design, but also lead to more processing time in the first-stage circuit design of the data aligner, thereby limiting the frequency at which such data aligners can operate.
〔发明内容〕[Content of invention]
本发明系涉及一种字节旋转的方法及装置。在一特定实施例中,这种方法可以包括:接收多个字节于第一缓冲器中,其大小为数个包含数据的该多个字节。另外,这种方法也包括:在旋转该多个字节前的至少一个时脉周期,利用控制器决定该多个字节的状态;以及基于该状态、预测在旋转器中旋转该多个字节的旋转量。The invention relates to a byte rotation method and device. In a particular embodiment, the method may include receiving a plurality of bytes in a first buffer having a size of the plurality of bytes containing data. Additionally, the method includes determining, with the controller, the state of the plurality of bytes at least one clock cycle prior to rotating the plurality of bytes; and based on the state, predictively rotating the plurality of words in a rotator. The amount of rotation of the knot.
在另一特定实施例中,这种方法可以包括:在后继时脉周期中,预测位于第一缓冲器中的第一数目字节。另外,这种方法还可以包括:基于该预测,计算第二缓冲器接收的第二数目字节的旋转量,且这个计算执行于目前时脉周期中。In another particular embodiment, the method may include predicting, in a subsequent clock cycle, the first number of bytes located in the first buffer. Additionally, the method may further include: based on the prediction, calculating a rotation amount for the second number of bytes received by the second buffer, and the calculation is performed in a current clock cycle.
在一个特定实施例中,这种装置包括第一缓冲器,其耦合以接收具有多个时脉周期的时脉信号;控制器;旋转器,其耦合至该控制器及该第一缓冲器。该旋转器可以包括第一旋转电路,耦合以接收输入、并产生第一输出。另外,这个旋转器还可以包括第一多任务器,其耦合以接收该输入及该旋转电路的该第一输出。该第一多任务器基于该控制器接收的第一旋转量控制信号,择一选择该输入或该第一输出。该第一旋转量控制信号可以在后继时脉周期中,通过预测位于该第一缓冲器中的数个字节来决定。In a particular embodiment, such an apparatus includes a first buffer coupled to receive a clock signal having a plurality of clock periods; a controller; and a rotator coupled to the controller and the first buffer. The rotator may include a first rotator circuit coupled to receive an input and generate a first output. Additionally, the rotator may also include a first multiplexer coupled to receive the input and the first output of the rotator circuit. The first multiplexer selects one of the input or the first output based on the first rotation amount control signal received by the controller. The first rotation amount control signal can be determined by predicting a number of bytes in the first buffer in subsequent clock cycles.
根据附图和后面的详细说明,本发明的其它特征和优点将是清楚的。Other features and advantages of the invention will be apparent from the accompanying drawings and the following detailed description.
本发明涉及数据对准的方法及装置。这种装置可以具有多个电路级,其耦合于多个缓冲器之间。后级电路及其对应缓冲器可以用来分配对准数据封包的产生,藉以降低前级电路的操作时间。The invention relates to a data alignment method and device. Such a device may have multiple circuit stages coupled between multiple buffers. The downstream circuits and their corresponding buffers can be used to distribute the generation of the alignment data packets, so as to reduce the operation time of the preceding circuits.
在一个特定实施例中,这种装置可以包括:第一级电路,其耦合至第一缓冲器。该第一级电路可以包括旋转器,其耦合至该第一缓冲器;控制器,其耦合至该旋转器;以及第一多任务器,其耦合至该控制器。另外,这种装置还可以包括:第二缓冲器,其耦合至该旋转器;以及第二级电路,其耦合至该第二缓冲器。该第二级电路可以包括第二多任务器。另外,第三缓冲器也可以耦合至该第二级电路。In a particular embodiment, such an apparatus may include a first stage circuit coupled to a first buffer. The first stage circuit may include a rotator coupled to the first buffer; a controller coupled to the rotator; and a first multiplexer coupled to the controller. Additionally, such an apparatus can further include: a second buffer coupled to the rotator; and a second stage circuit coupled to the second buffer. The second stage of circuitry may include a second multiplexer. Additionally, a third buffer may also be coupled to the second stage circuit.
在一个实施例中,这种方法可以包括:接收第一数据组件,其具有多个字节;并决定包含数据的第一数目字节。另外,这种方法还可以包括:无需操作第一数据组件地通过该第一数据组件(若所有字节均包含数据),以及保持该数据组件(若并非所有字节均包含数据)。In one embodiment, such a method may include: receiving a first data component having a plurality of bytes; and determining to contain a first number of bytes of data. Additionally, the method may include passing through the first data component without manipulating the first data component (if all bytes contain data), and maintaining the data component (if not all bytes contain data).
在另一实施例中,这种方法可以包括:接收标头组件,其在多个字节之外具有空白字节位置;以及接收第一后继主体组件。另外,这种方法还可以包括:组合该标头组件和该第一后继主体组件,以利用该第一后继主体组件的数据填满该标头组件的空白字节位置,藉以操作该标头组件来产生第一封包组件。该第一封包组件可以具有该多个字节位置。另外,这种方法还可以包括:传输该第一封包组件(若该第一封包组件的多个字节位置被该操作填满)。In another embodiment, such a method may include: receiving a header component having a blank byte position beyond a number of bytes; and receiving a first subsequent body component. In addition, the method may further include: combining the header element and the first successor body element to fill the empty byte positions of the header element with the data of the first successor body element, thereby operating the header element to generate the first packet component. The first packet element may have the plurality of byte locations. In addition, the method may further include: transmitting the first packet element (if multiple byte positions of the first packet element are filled by the operation).
在又一实施例中,这种方法可以包括:接收第一数目字节的非连续数据流,并将该第一数目字节通过第一及第二缓冲器而送达第三缓冲器。该第一数目字节可以小于预定数目字节。该第一缓冲器可以耦合至该第二缓冲器,且该第二缓冲器可以耦合至该第三缓冲器。另外,这种方法可以包括:接收第二数目字节,并将该第一数目字节由该第二缓冲器通过至该第三缓冲器。另外,这种方法还可以包括:反馈该第三缓冲器至该第二缓冲器(若该第一数目字节与该第二数目字节的总和小于该预定数字)。In yet another embodiment, the method may include receiving a discontinuous data stream of a first number of bytes, and passing the first number of bytes through the first and second buffers to a third buffer. The first number of bytes may be less than the predetermined number of bytes. The first buffer can be coupled to the second buffer, and the second buffer can be coupled to the third buffer. Additionally, the method can include receiving a second number of bytes and passing the first number of bytes from the second buffer to the third buffer. In addition, the method may further include: feeding back the third buffer to the second buffer (if the sum of the first number of bytes and the second number of bytes is less than the predetermined number).
根据附图和后面的详细说明,本发明的其它特征和优点将是清楚的。Other features and advantages of the invention will be apparent from the accompanying drawings and the following detailed description.
〔附图说明〕[Description of drawings]
本发明配合附图,利用示例加以介绍(而非限定),其中:The present invention is described (not limited) by way of examples in conjunction with the accompanying drawings, wherein:
第1图表示数字处理系统,其包括数据对准器的一个实施例;Figure 1 shows a digital processing system including an embodiment of a data aligner;
第2图表示网络接口装置,其包括数据对准器的一个实施例;Figure 2 shows a network interface device including an embodiment of a data aligner;
第3图表示封包结构的一个实施例及其对应的典型字节致能;Figure 3 represents an embodiment of the packet structure and its corresponding typical byte enabling;
第4图表示数据对准器的一个实施例;Figure 4 shows an embodiment of a data aligner;
第5图表示数据对准方法的一个实施例;Figure 5 shows an embodiment of a data alignment method;
第6图表示复杂数据流到简单数据流的映像方法的一个实施例;Figure 6 represents an embodiment of a method for mapping complex data streams to simple data streams;
第7图表示数据对准器的另一实施例;Figure 7 shows another embodiment of the data aligner;
第8图表示数据对准方法的另一实施例;Fig. 8 shows another embodiment of the data alignment method;
第9图表示旋转器的一个实施例;Figure 9 shows an embodiment of a spinner;
第10图表示旋转量与多任务器控制向量值之间关系的一个实施例;Fig. 10 shows an embodiment of the relationship between rotation amount and multiplexer control vector value;
第11图是表示旋转器基于输入及旋转量的输出的典型实施例。Fig. 11 shows an exemplary embodiment of the output of the rotator based on the input and the amount of rotation.
〔具体实施方式〕〔Detailed ways〕
在下列发明说明中,多个特定细节将会提出做为特定零件、装置、方法等等的范例,藉以协助提供本发明的彻底了解。然而,本领域技术人员应当明白,本发明并不见得要利用这些特定细节来完成实施。在其它例子中,已知的材料或方法将不再详细说明,藉以避免非必要地混淆本发明。In the following description of the invention, numerous specific details are set forth as examples of specific components, devices, methods, etc., in order to help provide a thorough understanding of the invention. However, it will be apparent to those skilled in the art that the present invention may not necessarily be practiced with these specific details. In other instances, well known materials or methods have not been described in detail to avoid unnecessarily obscuring the present invention.
一种方法,其在数据对准器的多电路级中,分配不规则数据流的数据操作,藉以产生具有连续填满字节的规则数据流。数据操作的分配可以利用后级电路执行部分数据操作,藉以释放前级电路执行其它数据字节的接收,进而使这个数据对准器能够操作于更高频率。A method of distributing data operations of irregular data streams in multiple circuit stages of a data aligner, thereby generating regular data streams with consecutive fill bytes. The allocation of data operations can use the downstream circuit to perform part of the data operation, so as to release the previous circuit to perform the reception of other data bytes, so that the data aligner can operate at a higher frequency.
在一特定实施例中,未对准数据情节的数目可以通过数据流组件映像的使用而予以降低。在这个数据对准器中仅需要加入多任务器和组合逻辑闸,复杂数据流便可以映像(835)到简单数据流。In a particular embodiment, the number of misaligned data episodes can be reduced through the use of dataflow component maps. In this data aligner, only a multiplexer and a combinational logic gate need to be added, and the complex data flow can be mapped (835) to a simple data flow.
应该注意的是,虽然本方法是根据十六字节的数据组件,但是,这种方法亦可以适用于数据组件的其它字节大小,诸如:三十二字节、八字节、及四字节。在另一实施例中,这种方法也可以利用可变数据宽度完成实施,其中,这个数据宽度为可架构参数。应该注意的是,在本发明中,连接各个零件的“线路”可以是单位线路、多位线路、或总线。It should be noted that although the method is based on sixteen-byte data elements, this method can also be applied to other byte sizes of data elements, such as: thirty-two bytes, eight bytes, and quadwords Festival. In another embodiment, this method can also be implemented with a variable data width, wherein the data width is a configurable parameter. It should be noted that, in the present invention, a "wire" connecting the respective components may be a single-bit wire, a multi-bit wire, or a bus.
第1图表示数字处理系统100的一个实施例,例如,工作站、个人计算机、或服务器等等,这个数字处理系统100实施数据对准器150。这个数字处理系统100包括传播信息的总线或其它通信装置105;以及诸如处理器110的处理装置,其耦合至这个总线105以处理信息及控制往返网络接口装置140的数据封包移动。处理器110可以表示一个或多个处理器,诸如:通用处理器(例如:摩托罗拉的强力计算机(PowerPC)处理器或英特尔的奔腾(Pentium)处理器)、特殊用途处理器(例如:数字信号处理器(DSP))、及控制器。FIG. 1 shows one embodiment of a
数字处理系统100更包括系统内存120,其可以包括随机存取内存(RAM)或其它的动态储存装置,耦合至总线105以储存信息(例来:封包)和处理器110要执行的指令。另外,系统内存120亦可以用来储存暂时变量或处理器110执行指令时的其它中间信息。系统内存120还可以包括只读存储器(ROM)和/或其它静态储存装置,耦合至总线105以储存静态信息和处理器110要执行的指令。
一个或更多个网络接口装置(例如:网络接口装置140到网络接口装置N)可以耦合至总线105。在另一实施例中,网络接口装置140可以位于数字处理系统100的外部。网络接口装置140可以包括与网络协议相关的电路,其编码及译码在网络160上传输的数据以做为错误检测和校正的用途。在一实施例中,网络接口装置140包括产生规则数据流的电路。网络接口装置140包括数据对准器150。数据对准器150操作以将任意数据流映像至规则数据流,如下文所述。One or more network interface devices (eg,
根据特定的设计环境实施方式,这个网络接口装置140可以是同步光学网络(SONET)卡、以太网络(Ethernet)卡、符记环(tokenring)卡、或其它类型的接口,藉以提供与网络160的通信连结。同步光学网络(SONET)和以太网络(Ethernet)在本领域是已知的,因此便不再详述。According to specific design environment implementation, this
应该了解的是,这个数字处理系统100仅是表示系统的一个范例,其可以具有许多不同的架构和结构、并且可以应用于本发明。举例来说,部分系统通常会具有多个总线,诸如:周边总线、专用快取总线等等。作为另一个示例,数字处理系统100还可以包括控制器(未示出),耦合至总线105以协助处理器110达成数据包往返网络接口装置140的移动。在另一实施例,数字处理系统可以是网络中的中间节点(例如:交换器或路由器),其提供网络对网络(network tonetwork)的接口。这类中间节点可以提供相似网络或不同网络间的接口。举例来说,这个网络媒体160可以是光纤媒体,且网络媒体N可以是传输线媒体。It should be appreciated that this
第2图表示网络接口装置的一个实施例,其包括数据对准器。网络接口装置210可以是第1图所示的网络接口装置140。数据,其呈现封包形式,会穿过网络接口装置210、并沿着数据路径从系统205传输至网络295。这个数据路径是这个网络接口装置210的结构部分,在控制的影响下,对数据进行处理、并将数据由一侧(例如:线路211)传送至另一侧(例如:线路236)。网络接口装置210会将数据格式化为封包协议结构,藉以方便在这个网络295上传输。这个封包协议用来指定封包内的信息排列。在一个实施例中,举例来说,这个系统205可以是客户端或服务器,且这个网络295可以是同步光学网络(SONET)或以太网络(Ethernet),如先前所述。Figure 2 shows one embodiment of a network interface device that includes a data aligner. The
另外,封包会根据一出口(egress)方向传输,其由系统205、经网络接口装置210、到网络295。另外,封包会根据一进入(ingress)方向接收,其由网络295、经网络接口装置210、到系统205。在一实施例中,网络接口装置210可以具有先进先出(FIFO)内存220及240、数据对准器230及250、封包检查产生器235、封包错误检查器245、封装器225、及解封装器255。In addition, the packets are transmitted according to an egress direction, which is from the
在线路211上,先进先出(FIFO)内存220接收系统205的封包。然而,大于网络接口装置210的处理能力的传输封包却可能会导致传输遗漏(transmission drop)。因此,先进先出(FIFO)内存220进行操作来缓冲由系统205侧边接收的数据流,藉以处理数据流的封包过载(overload)。同样地,先进先出(FIFO)内存240则会操作来缓冲经由网络295接收的数据流。在另一实施例中,缓冲也可以利用其它装置达成,举例来说,利用内存(例如:随机存取内存(RAM)、先进先出(FIFO)内存),其耦合至网络接口装置210或位于系统205内的内存(例如:图1所示的系统内存120)。On line 211 , first in first out (FIFO)
在线路224上,封包会经由先进先出(FIFO)内存220传输至封装器225。封装器225根据装帧(framing)规格,将封包装帧。这个装帧规格是“协议位”的规格,其环绕在“数据位”四周,藉以使数据能够“装帧”成数个段落。另外,这个装帧规格也可以使接收者能够沿着数据流的各点进行同步处理。On
在线路229上,这个数据流封包由封装器225输出到数据对准器230。数据对准器230进行操作来及时地收集任意时间到达的接收封包。数据对准器230会接收各种字节大小的未对准数据、并将这些数据对准以得到一封包字节。另外,在线路234上,数据对准器230会输出对准数据到封包检查产生器235。在封包内,由于封包操作的原因,输出到封包错误检查器的字节组件并不见得会具有正确的数据。因此,在线路233上,数据对准器230也需要传输控制信号到封包检查产生器235,藉以表示封包内的字节是正确的。另外,数据对准器230也需要传输其它控制信号到封包检查产生器235,诸如:封包起点(SOP)和封包终点(EOP)控制信号。数据对准器230的操作将会详细说明如下。This data stream packet is output by
在一实施例中,封包检查产生器235用以确认这个数据流的正确性。除了接收系统的封包错误检查器(例如:封包错误检查器245)可能使用的数据流以外,封包检查产生器235也会产生一输出,藉以决定封包是否良好、或这个数据流是否具有错误。在线路236上,这个数据流会传送至网络295。举例来说,部分封包(诸如:以太网络(Ethernet)封包)会具有三十二位的循环冗余检查(CRC)。在一实施例中,错误检测码(诸如:三十二位的循环冗余检查(CRC)码)可以附加在这个封包的结尾处,藉以提供自动错误检测的功能。应该注意的是,然而,这个三十二位循环冗余检查(CRC)数据可以放置在这个封包的任意位置。错误检测码(诸如:循环冗余检查(CRC)码)是由数据区块导出的数目,藉以检测错误(detect corruption)。在另一实施例中,不同于循环冗余检查(CRC)的错误检测码及方法可以使用。In one embodiment, the
利用封包错误检查,耦合至网络295的接收器系统(图中未示)便可以经由数据封包重新计算检查码,并将这个检查码与原始传输的检查数值比较,藉以检测传输错误。应该注意的是,封包错误产生器235并不需要放置在传输级电路的结尾处,也可以放置在数据流路径的任意位置。With packet error checking, a receiver system (not shown) coupled to
在线路256上,网络295的封包输入至解封装器255。解封装器255用来移除数据流封包的装帧数据。当数据流装帧数据被移除时,数据流便会变成不规则的(亦即:不连续的)。在线路251上,数据流会输入到数据对准器250。数据对准器250进行操作来收集接收数据流的不连续字节、并封装(或对准)这些封包的字节以得到连续数据流。The packets from
在线路246上,数据对准器250的输入提供给封包错误检查器245。封包错误检查器245可以用来确认这个数据流的正确性。封包错误检查器245利用这个接收数据流产生一码、并将这个产生的码与内嵌在数据流的接收码比较,藉以决定封包是否良好、或这个数据流是否具有错误。另外,在线路241上,封包错误检查器245的输出会传送至先进先出(FIFO)内存240。先进先出(FIFO)内存240进行操作来缓冲在线路242上、输出至这个系统205的数据流。The input to
先进先出(FIFO)内存、封包错误检查器、封装器、及解封装器均是已知技术,因此,有关这些装置的操作细节便不再提供。应该注意的是,在第2图中,虽然网络接口装置210的各个零件是以分离方式表示,但是,这种表示方式仅是用来介绍进入(ingress)及出口(egress)方向的数据流动操作。在另一实施例中,网络接口装置210的各个零件可以组合成一个或更多个集成电路(IC)。First-in-first-out (FIFO) memory, packet error checkers, encapsulators, and decapsulators are all known techniques, and therefore details of the operation of these devices are not provided. It should be noted that in Fig. 2, although each part of the
第3图表示封包结构的一实施例及其对应的范例字节致能。封包310可以具有一个或更多个组件320、330、340、及350。各个封包组件可以具有一个或更多个字节,举例来说,十六字节。虽然下列说明利用十六字节的封包组件大小做为范例,但是,其它封包组件字节大小也可以使用,举例来说,三十二字节、八字节、及四字节。FIG. 3 shows an embodiment of a packet structure and its corresponding example byte enables.
封包310包括单一标头组件320、单一结尾组件350、及主体335,其可以包括一个或更多个主体组件(例如:组件330及340)。标头组件320表示封包的起点、且其字节位置可以部分或全部填满数据位。标头320可以通过封包起点(SOP)控制信号325的确认来予以决定,其将数据位部分或全部填满标头组件320的字节。
结尾组件350表示封包的结尾、且其字节位置可以部分或全部填满数据位。结尾组件350可以透过封包结尾(EOP)控制信号355的确认来予以决定,其将数据位部分或全部填满这个结尾组件350的字节。主体组件的所有字节位置填满数据位(例如:主体组件340)。部分主体是指部分填满数据位的主体组件(例如:主体组件330),其并不是标头组件320、也不是结尾组件350。空洞(hole)是封包310内、或封包310及其它封包(图中未示)间的空白组件。
第3图还表示范例字节致能321、331、341、及351,其可以对应于这些封包组件。字节致能“1”表示:对应的字节位置具有数据。字节致能“0”表示:对应的字节位置没有数据。这些字节致能传送至缓冲器的控制部分,其将配合第4图及第7图说明如下。FIG. 3 also shows example byte enables 321, 331, 341, and 351, which may correspond to these packet elements. A byte enable of "1" indicates that the corresponding byte position has data. Byte enable "0" means: the corresponding byte position has no data. These bytes enable transfer to the control portion of the buffer, which will be described below in conjunction with FIGS. 4 and 7 .
第4图表示数据对准器的一实施例。在一实施例中,数据对准器400具有二级电路(第一级电路404及第二级电路406)流线,其利用中间缓冲器420分隔。中间缓冲器420进行操作来储存第一级电路404及第二级电路406间的所有未通过数据。数据对准器400还包括缓冲器410及430,其分别耦合至第一级电路404的输入及第二级电路406的输出。在一实施例中,缓冲器410、420、及430可以是缓存器。缓冲器410、420、及430进行操作来储存先前电路级接收的数据。另外,数据对准器400可以具有控制缓冲器415、425、及435,其进行操作来储存这些封包组件的字节致能,如下文所述。缓冲器及缓存器属于已知技术,因此,其详细说明将不再提供。Figure 4 shows an embodiment of a data aligner. In one embodiment, the
在一实施例中,举例来说,缓冲器410、420、及430具有十六字节的大小。在另一实施例中,缓冲器410、420、及430可以根据系统使用的特定字节方法,具有其它大小的字节数目,举例来说,三十二字节、八字节、及四字节。In one embodiment, buffers 410, 420, and 430 have a size of sixteen bytes, for example. In alternative embodiments,
缓冲器410、420、及430各自具有时脉输入,其耦合以经由线路481接收时脉信号。这个时脉信号可以经由这个数据信号恢复、或可以利用时脉产生器(图中未示)产生。这个时脉信号包括多个时脉周期,藉以执行数据对准器400的操作时序。
缓冲器410具有输入,其耦合以在线路411上接收数据封包。缓冲器410分别在线路412及413上,输出这些数据封包至旋转器440及控制器450。旋转器440的输出经由线路441耦合至中间缓冲器420及多任务器460。中间缓冲器420的输出在线路421上,耦合至多任务器470的数据输出。多任务器470的输出经由线路471耦合至缓冲器430。
控制器450可以用来控制多任务器460及470的操作,藉以通过字节数据、控制旋转器440的操作、产生外部控制信号,诸如:封包起点(SOP)及封包结尾(EOP)、以及产生字节致能控制信号(如第3图所示)。控制器450也具有控制输出,其分别在线路452及459上耦合至旋转器440及多任务器460的控制输入、及在线路453上耦合至多任务器470的控制输入。The
旋转器440进行操作以在这个控制器450的控制下,旋转一个或更多个字节至组件的不同字节时槽(或位置)。在一实施例中,控制器450可以在线路452上,施加旋转量控制信号至旋转器440。另外,旋转器440的输出经由多任务器480以做为缓冲器420的输入数据、及做为多任务器460的输入。这个旋转量控制信号的功能决定缓冲器410内容的旋转量,藉以连接缓冲器410的其余部分(若存在的话)及缓冲器420的其余部分(若存在的话)、并使缓冲420的内容可以适当地字节对准。为了决定这个旋转量,控制器450必须在发生实际旋转的一个时脉周期前,识别各种字节状态。
在第一字节状态中,缓冲器410的内容利用穿过方式写入缓冲器420。没有字节路线会发生交叉,藉以使缓冲器410的字节0前进至缓冲器420的字节O;缓冲器410的字节1前进至缓冲器420的字节1;且以此类推。这种字节状态可能会发生在控制器450确定缓冲器420为空白、或缓冲器420具有封包结尾(EOP)信号的时候,其中封包级粒度(packet level granularity)必须要进行维护。这种字节状态也可能会发生在缓冲器410具有封包起点(SOP)信号的时候,无论缓冲器420具有任何状态。如此,缓冲器410及缓冲器420便不会具有相关性。在任何情况中,没有数据字节需要进行对准,且字节数据利用穿过方式写入。下一个周期的旋转量可以预测为十六减去缓冲器410的字节数目。In the first byte state, the contents of
在第二字节状态中,缓冲器410的十六字节全部写入缓冲器420,其表示:缓冲器420在下一个周期中会完全填满。在这种情况中,这个旋转量可以预测为零,其也表示不会发生字节路线交叉。In the second byte state, all sixteen bytes of
在第三字节状态中,缓冲器410的字节将不会写入缓冲器420。这类状态表示:缓冲器410包含封包结尾(EOP)信号,且缓冲器410及420的状态表示:这个数据可以直接在缓冲器410及420间传送至缓冲器430,进而排除后续数据平移至缓冲器410的需要。在这个情况中,这个旋转量可以预测为零。In the third byte state, bytes from
在第四字节状态中,缓冲器410及缓冲器420的净正确字节数目超过十六、且缓冲器410的其余内容会利用适当的字节路线交叉而写入缓冲器420。在这个情况中,缓冲器410的后续输入必须进行预测。在这个情况中,这个旋转量系可以预测为三十二减去缓冲器410的净字节数目和缓冲器420的字节数目。In the fourth byte state, the net correct byte counts of
举例来说,缓冲器420可能具有十四个正确的(具有数据的)字节,且缓冲器410可能具有六个正确的字节。在下一个时脉周期中,十六字节会被传送至缓冲器430,而其余四个字节则会储存于缓冲器420中。如此,下一组输入的这个旋转量便可以预测为32-20=12。对于向量{15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0}而言,旋转量“12”将会得到向量{11,10,9,8,7,6,5,4,3,2,1,0,15,14,13,12},进而确保下一个输入会由左边第四个字节开始。另外,提前一个时脉周期则可以在前一个时脉周期中完成计算的功能。For example, buffer 420 may have fourteen correct bytes (with data), and buffer 410 may have six correct bytes. In the next clock cycle, sixteen bytes are transferred to the
多任务器460、470、480基于施加至其控制输入的控制信号,藉以在两个数据输入间选择一个数据输入。多任务器属于已知技术,因此,其详细说明将不再提供。多任务器460的输出在线路461上耦合至多任务器470的数据输入。多任务器470的输出在线路471上耦合至缓冲器430。多任务器480的输出耦合至缓冲器420。多任务器460、470、及480分别在线路452、453、及455上,接收控制器450的控制输入的控制信号。应该注意的是,这些多任务器与其它零件分隔以便于讨论。这些多任务器可以位于其它零件区块内,举例来说,多任务器480可以位于缓冲器420内。The
施加至多任务器460及470的这些控制信号的功能经由缓冲器420的内容及缓冲器410的旋转内容,选择这个多任务器的输出。在一实施例中,这个施加控制信号可以是十六位控制信号,其为这个旋转量的函数,其相关于十六字节的横跨操作(spanning operation),如第10图所示。具有“1”的位置表示:选择旋转器440的旋转量,而具有“0”的位置则表示:选择缓冲器420的输出。这个旋转量的数值表示由位置0开始的这个多任务器控制信号向量的数目“1”。The function of these control signals applied to
控制器450也具有控制输出,其经由线路459耦合至缓冲器420。在一实施例中,这个经由线路459的缓冲器420的控制信号输出可以是十六位宽、且可以在基于先前讨论的旋转量选择这个缓冲器的内容后,一个字节接着一个字节地写入缓冲器420。另外,缓冲器420的控制信号输出亦可以用来决定缓冲器420在下一时脉周期中的正确字节。为了达成缓冲器420写入致能的决定,控制器450亦可以在一目前时脉周期中识别各种状态。
在第一情况中,缓冲器410的内容可以利用穿过方式写入缓冲器420。这种情况会发生在缓冲器420为空白的时候、或缓冲器420具有封包结尾(SOP)信号的时候,其中,这个封包粒度(packetgranularity)需要进行维护。另外,这种情况亦可能会发生在缓冲器410具有封包起点(SOP)信号的时候,无论缓冲器420具有任何状态。在这类情况中,对应缓冲器410的字节致能会变成缓冲器420的写入致能。In a first case, the content of
在第二情况中,缓冲410的十六字节会全部写入缓冲器420,其表示:缓冲器420在下一个时脉周期中会完全填满。在这类情况中,缓冲器420的写入致能将会全部为”1”。In the second case, all sixteen bytes of
在第三情况中,缓冲器410的位均不会写入缓冲器420。缓冲器410会具有封包结尾(EOP)信号及缓冲器410及420的状态,藉以使数据可以直接传送至缓冲器430,进而排除后续输入的平移需要。在这类情况中,缓冲器420的写入致能将会全部为”0”。In the third case, none of the bits of
在第四情况中,缓冲器410及缓冲器420的净正确字节数目会超过十六、且缓冲器410的其余内容会利用适当的字节路径交叉,写入缓冲器420。在这种情况中,缓冲器420的写入致能可以计算为缓冲器410的正确字节数目加上缓冲器420的正确字节数目减去十六。In the fourth case, the net correct byte count of
先前所述的数据对准器400亦可以在线路411上接收各种字节大小的未对准数据、并对准这个数据以达成特定字节大小,其将配合第5图说明如下。数据对准器400可以支持数据封包,其可以具有标头组件、主体组件、及结尾组件。The previously described data aligner 400 can also receive unaligned data of various byte sizes on the
第5图表示一种数据对准方法的一个实施例。这种方法根据数据组件具有十六字节的数据方法进行说明。不过,类似的方法可以应用于其它字节封包方法,如先前所述。在一实施例中,数据对准器400可以启始为不具有任何数据。当数据封包的标头组件到达时,控制器450会决定这个标头组件是否具有少于十六字节的数据,如步骤510所示。若这个标头组件具有少于十六字节的数据,则这些字节传输到并保留在缓冲器420,藉以用于未来的封包步骤,如步骤520所示。若这个标头组件具有完整十六字节的数据,则这个数据会传送至缓冲器430以利用控制信号输出,如步骤530所示。Figure 5 shows an embodiment of a data alignment method. This method is described in terms of a data method with a data component having sixteen bytes. However, a similar approach can be applied to other byte packing methods, as previously described. In an embodiment,
这个标头组件可以跟随主体组件或结尾组件。若这个标头组件跟随主体组件,由于中间缓冲器420的数据字节数目及后续主体组件的字节数目会大于或等于十六字节,因此,全部十六字节,在及时处理后,将会随着控制器450产生的控制信号传送至缓冲器430,藉以表示封包起点(SOP),如步骤540所示。This header component can follow either a body component or an end component. If this header element follows the body element, since the number of data bytes in the
基于个别具有数据的字节数目,决定要选择中间缓冲器420的字节或缓冲器410的新输入字节。缓冲器410的新输入字节旋转先前由缓冲器4410直接传送的字节数目,藉以补偿净十六字节,如步骤550所示。这些旋转字节会写入中间缓冲器420。步骤540至550会重复进行,直到控制器450发现:结尾组件已经到达,如步骤560所示。Based on the number of bytes with data individually, the decision is made to select either the bytes of the
当结尾组件已经到达以后,缓冲器430的数据会在线路431上输出,无论这个净封包具有任何大小,藉以维护各个组件的封包边界,如步骤570所示。利用这种方法,数据对准器400便可以将标头组件、主体组件、及结尾组件(其中,这个标头组件和/或这个结尾组件可以部分填满数据)转换为连续封包,其具有一个或更多个主体组件及一个结尾组件。When the end component has arrived, the data of
举例来说,标头组件可以在缓存器410中接收、并利用控制器450决定为包含七字节数据。因此这个标头组件具有少于十六字节数据,因此,这七字节数据会传送并储存于中间缓冲器420。下一个接收组件是主体组件。这个主体组件利用控制器450决定为具有十六字节数据,且控制器450进行计算以决定总共收到二十三字节的数据。因为全部数据已超过数据对准器400的十六字节大小,因此,控制器450会选择这个具有十六字节数据的主体组件的最低九字节,藉以与这个标头组件的七字节数据一起输出为一封包的十六字节主体组件。为达此目的,控制器450会将这个选择的九字节传送至旋转器440,藉以做为多任务器460的输入。这九个旋转字节,连同缓冲器420的七个字节,随后用以做为多任务器470的输入。控制器450在线路453传送多任务器控制信号至多任务器470,藉以得到多任务器460的十六个连接字节并进行输出。For example, a header element may be received in
如此,数据对准器400在缓存器430中具有十六字节以供输出,并在缓存器410中具有其余七字节。因为这个十六字节主体组件的最低九字节已经输出,因此,缓冲器410的其余七字节便可以由旋转器440输出至低字节位置、并写入缓冲器420。随后,这些旋转字节会输入并储存于中间缓冲器420。当接收到下一个主体组件后,上述步骤便可以重复,藉以产生另一封包的十六字节组件以输出至这个缓存器430。As such,
当收到结尾组件以后(诸如:控制器450收到封包结束(EOP)信号后),这个结尾组件中具有数据的字节会与中间缓冲器420的字节组合、并输入至缓存器430,而不需要等待十六字节的封包字节大小。举例来说,若中间缓冲器420具有七个字节,且接收结尾组件具有一字节的位数据,则控制器450会传送这一个字节至旋转器440。随后,储存于中间缓冲器420的七个字节及这个一字节的旋转输出便会由控制器450传送至多任务器470,藉以在下一个时脉周期中输出。When the end component is received (such as: after the
如先前所述,第5图的方法可以处理相当规则的数据流,其会在封包内具有标头、主体、及结尾组件。在另一实施例中,网络协议中可能会遇到其它类型的数据流(以下称为复杂数据流,藉以与第4图及第5图所述的简易数据流区别),其中,这种规则性可能会受到任意致能或失能字节的影响,举例来说,在标准同步光学网络封包(PacketOver SONET,POS)协议的干序列(dry sequence)。在一实施例中,复杂数据流可能会具有空洞(hole)或部分主体组件,如先前第3图所述。这类复杂数据流可以透过将这些组件映像至简易数据流(如第4图及第5图所述)以进行处理。As previously mentioned, the method of FIG. 5 can handle fairly regular data streams, which will have header, body, and trailer elements within the packets. In another embodiment, other types of data streams may be encountered in network protocols (hereinafter referred to as complex data streams to distinguish them from the simple data streams described in Figures 4 and 5), wherein such rules Performance may be affected by any enable or disable byte, for example, in the dry sequence of the standard Packet Over SONET (POS) protocol. In one embodiment, complex data streams may have holes or partial body components, as previously described in FIG. 3 . Such complex data flows can be handled by mapping these components to simple data flows (as described in Figures 4 and 5).
第6图系表示在数据流中,一种处理空洞(hole)或部分主体组件的映像方法的一实施例。在一实施例中,复杂数据流的标头组件可以映像610至简易数据流的标头组件;复杂数据流的主体组件可以映像620至简易数据流的主体组件;且复杂数据流的结尾组件可以映像630至简易数据流的结尾组件。空洞(hole)可以透过保留状态640及不执行数据对准器动作而加以处理,其将配合第7图的数据对准器700说明如下。FIG. 6 shows an embodiment of a mapping method for handling holes or partial body components in a data stream. In one embodiment, the header component of the complex dataflow can be mapped 610 to the header component of the simple dataflow; the body component of the complex dataflow can be mapped 620 to the body component of the simple dataflow; and the end component of the complex dataflow can be Map 630 to the end component of the simple dataflow. Holes can be handled by leaving state 640 and not performing data aligner actions, which will be described below in conjunction with data aligner 700 of FIG. 7 .
部分主体功能可以映像650及660至简易数据流的结尾组件,其将结尾组件分类为两种不同的结尾组件:结尾组件A及结尾组件B。结尾组件A表示:第7图的部分主体及数据对准器700的中间缓冲器720具有数据位的净字节数目少于十六字节的结尾组件。结尾组件B表示:第7图的部分主体及数据对准器700的中间缓冲器720具有数据位的净字节数目大于或等于十六字节的结尾组件。Part of the body function can be mapped 650 and 660 to the end element of the simple data flow, which classifies the end element into two different end elements: end element A and end element B. End element A indicates that the partial body of FIG. 7 and the intermediate buffer 720 of the data aligner 700 have an end element with a net number of data bits less than sixteen bytes. The end element B indicates that the partial body of FIG. 7 and the intermediate buffer 720 of the data aligner 700 have an end element with a net byte number of data bits greater than or equal to sixteen bytes.
第7图表示数据对准器的另一实施例,其可以实施于复杂数据流。在一实施例中,数据对准器700可以具有两个流线电路级(第一级电路704及第二级电路706),其利用缓冲器720及730分隔。数据对准器700具有缓冲器730、旋转器740、控制器750、以及多任务器760、770、780、及790。旋转器740及控制器750的操作方式类似于第4图的旋转器440及控制器450,除非有另外指明。Figure 7 shows another embodiment of a data aligner that can be implemented for complex data streams. In one embodiment, data aligner 700 may have two streamlined stages (first stage 704 and second stage 706 ), which are separated by buffers 720 and 730 . Data aligner 700 has buffer 730 , rotator 740 , controller 750 , and multiplexers 760 , 770 , 780 , and 790 . The rotator 740 and controller 750 operate in a manner similar to the
缓冲器710、720、及730分别具有一时脉输入,其耦合以经由线路781接收时脉信号。这个时脉信号可以经由这个数据信号回复、或可以利用时脉产生器(图中未示)产生。另外,这个时脉信号可以包含多个时脉周期,藉以执行数据对准器700的操作时序。Buffers 710 , 720 , and 730 each have a clock input coupled to receive a clock signal via line 781 . The clock signal can be recovered via the data signal, or can be generated by a clock generator (not shown). In addition, the clock signal may include multiple clock periods, so as to implement the operation sequence of the data aligner 700 .
缓冲器720进行操作以储存第一电路级704及第二电路级706间的所有未通过数据。数据对准器700包括缓冲器710及缓冲器730,分别耦合至第一级电路704及第二级电路706的输入。在一实施例中,缓冲器710、720、及730可以是缓存器。控制缓冲器715、725、及735耦合至控制器750、并操作以储存字节致能。The buffer 720 operates to store all failed data between the first circuit stage 704 and the second circuit stage 706 . The data aligner 700 includes a buffer 710 and a buffer 730 coupled to the inputs of the first stage circuit 704 and the second stage circuit 706 respectively. In one embodiment, the buffers 710, 720, and 730 may be registers. Control buffers 715, 725, and 735 are coupled to controller 750 and operate to store byte enables.
缓冲器710具有输入,其耦合以在线路711接收数据封包、并分别在线路712及713上,将这些数据封包输出至旋转器740及控制器750。旋转器740的输出耦合至多任务器780的数据输入,而多任务器780的另一数据输入则是耦合以在线路776上接收多任务器775的输出。另外,旋转器740的输出还耦合以经由线路776接收多任务器775的输出。多任务器780的输出耦合至缓冲器720的输入。Buffer 710 has an input coupled to receive data packets on line 711 and output these data packets to rotator 740 and controller 750 on lines 712 and 713, respectively. The output of rotator 740 is coupled to a data input of multiplexer 780 , while another data input of multiplexer 780 is coupled to receive the output of multiplexer 775 on line 776 . Additionally, the output of rotator 740 is also coupled to receive the output of multiplexer 775 via line 776 . The output of multiplexer 780 is coupled to the input of buffer 720 .
旋转器740进行操作以在控制器750的控制下,将一个或更多个字节旋转至不同的字节时槽(或位置)。在一实施例中,控制器750可以经由线路758,施加旋转量控制信号至旋转器740。这个旋转量控制信号的功能决定缓冲器710内容的旋转量,藉以使缓冲器710的其余部分(若存在的话)及缓冲器720的其余部分(若存在的话)能够连接、且缓冲器720的内容可以适当地字节对准。Rotator 740 operates to rotate one or more bytes to different byte slots (or positions) under the control of controller 750 . In one embodiment, the controller 750 may apply a rotation amount control signal to the rotator 740 via a line 758 . The function of this rotation amount control signal determines the amount of rotation of the contents of buffer 710 so that the remainder of buffer 710 (if present) and the remainder of buffer 720 (if present) can be connected and the contents of buffer 720 May be properly byte-aligned.
为了决定这个旋转量,控制器750可以在发生实际旋转的一个时脉周期前,识别各种字节状态,如第4图的旋转器440所述。提前一个时脉周期的手段可以维持,且同时支持一部分主体组件的结构。在复杂数据流中,下一个时脉周期的缓冲器720字节数目进行预测、并取代为目前计算的净正确数目。在目前计算中,这个净正确数目乃是缓冲器710的字节数目加上缓冲器720的字节数目。在支持部分主体组件及预测后续输入的旋转量时,这个目前净正确字节计算会变成缓冲器720的字节数目。这个旋转量用以做为其它控制信号的控制及种子。To determine this amount of rotation, the controller 750 can identify various byte states one clock cycle before the actual rotation occurs, as described for the
控制器750具有控制输出,其分别经由线路752、753、754、及755耦合至旋转器740及多任务器760、770、775、及780的控制输入。控制750也具有控制输出,其经由线路759耦合至旋转器740;以及控制输入,其经由线路759耦接至缓冲器720。Controller 750 has control outputs coupled to control inputs of rotator 740 and multiplexers 760, 770, 775, and 780 via lines 752, 753, 754, and 755, respectively. Control 750 also has a control output coupled to rotator 740 via line 759 , and a control input coupled to buffer 720 via line 759 .
多任务器760的输出经由线路761耦合至多任务器770的数据输入。缓冲器720的输出经由线路耦合至多任务器770的另一数据输入及多任务器775的数据输入。多任务器770的输出经由线路771耦合至缓冲器730。缓冲器730包括数据输出及控制输入。缓冲器730的数据输出经由线路779耦合至多任务器775的数据输入。缓冲器730的控制输出在线路778上输出。The output of multiplexer 760 is coupled to the data input of multiplexer 770 via line 761 . The output of buffer 720 is coupled to another data input of multiplexer 770 and a data input of multiplexer 775 via lines. The output of multiplexer 770 is coupled to buffer 730 via line 771 . Buffer 730 includes data outputs and control inputs. The data output of buffer 730 is coupled to the data input of multiplexer 775 via line 779 . The control output of buffer 730 is output on line 778 .
控制器750具有控制输出,其经由线路759耦合至缓冲器720、及经由线路751耦合至这个缓冲器730。在一实施例中,分别经由线路759及751输出至缓冲器720及730的控制信号可以是十六位宽度。这个缓冲器720的控制信号在基于这个旋转量控制信号以选择这个择缓冲器的内容以后,一个字节接着一个字节地控制这个缓冲器的写入动作。另外,输出至缓冲器720的这个控制信号也可以决定下一个时脉周期的缓冲器720的正确字节。为了决定缓冲器720的写入致能,控制器750会在目前时脉周期内识别各种状态,如先前的第4图所述。空洞(hole)的接收可以利用状态保留方式予以处理。Controller 750 has a control output coupled to buffer 720 via line 759 and to this buffer 730 via line 751 . In one embodiment, the control signals output to buffers 720 and 730 via lines 759 and 751 respectively may be sixteen bits wide. The control signal of the buffer 720 controls the write operation of the buffer byte by byte after selecting the content of the select buffer based on the rotational amount control signal. In addition, the control signal output to the buffer 720 can also determine the correct byte of the buffer 720 for the next clock cycle. In order to determine the write enable of the buffer 720, the controller 750 recognizes various states during the current clock cycle, as previously described in FIG. 4 . Hole receptions can be handled in a state-preserving manner.
举例来说,部分主体组件的接收说明如下。假设在数据对准器700的激活时,相同封包内具有六字节跟随6字节跟随八字节的序列。则缓冲器710具有八字节、缓冲器720具有六字节、且缓冲器710不具有封包结尾(EOP)信号的情况将无法包含于先前第4图所述。在这种情况下,我们会想要将十四个字节一起传送至缓冲器730。在下一个时脉周期中,控制器750会决定:这是个部分主体组件的情况、并恢复缓冲器730的合并输出(控制及数据)至中间缓冲器720、并抑制利用控制器750产生输出致能以传送至缓冲器730。这个合并动作跳过一个时脉周期,并在下一个时脉周期中恢复,若没有得到新数据。否则,若收到新数据的话,这个跳过动作将会持续进行,直到通过结尾组件A的测试。As an example, the reception instructions for some of the main body components are as follows. Assume that upon activation of the data aligner 700, there is a sequence of six bytes followed by six bytes followed by eight bytes within the same packet. The case where buffer 710 has eight bytes, buffer 720 has six bytes, and buffer 710 does not have an end-of-packet (EOP) signal cannot be included in the previous description of FIG. 4 . In this case, we would want to transfer fourteen bytes to buffer 730 together. In the next clock cycle, the controller 750 will determine that this is a partial body condition and restore the combined output (control and data) of the buffer 730 to the intermediate buffer 720 and suppress the use of the controller 750 to generate an output enable to be sent to the buffer 730. This merge action skips one clock cycle and resumes in the next clock cycle if no new data is available. Otherwise, if new data is received, the skip action will continue until the test of the end component A is passed.
为了旋转量计算的目的,这个净正确数目的反馈已经处理了后续的计算。这个恢复动作显示:缓冲器720具有十四字节、且缓冲器710具有六字节。这表示先前第6图所述结尾组件A的情况。如此,我们便可以执行计算动作,其彷佛正在接收、计算、及恢复一个简易数据流。相对于十四字节,这个旋转量预测等于32-14=18字节旋转,其相当于二字节的旋转(仅仅四位)。因此,对于具有六字节的缓冲器710而言,旋转二字节是将字节0及字节1分别放置于位置14及位置15,其会与缓冲器720的十四字节进行合并。若这是一真实结尾组件,则这十六字节会传送至缓冲器730。这些写入致能是20-16,若左边四个字节会被写入缓冲器720。Feedback of this net correct number has been processed for subsequent calculations for the purposes of rotation calculations. This restore action shows that buffer 720 has fourteen bytes and buffer 710 has six bytes. This represents the case of ending component A as previously described in FIG. 6 . In this way, we can perform calculation actions as if we were receiving, calculating, and recovering a simple data stream. Relative to fourteen bytes, this amount of rotation is predicted to be equal to 32-14=18 bytes of rotation, which is equivalent to a rotation of two bytes (only four bits). Thus, for buffer 710 with six bytes, rotating two
对于缓冲器720具有十四字节、且缓冲器710具有六字节的情况而言,这个预测旋转量等于32-20=12。在这个情况中,缓冲器720的左边四个字节会维持其位置,且旋转十二字节会使新输入字节的字节0放置于位置4,藉以进行后续的连接动作等等。这个程序会无止境地重复执行。For the case where buffer 720 has fourteen bytes and buffer 710 has six bytes, this predicted rotation equals 32-20=12. In this case, the left four bytes of buffer 720 will maintain their positions, and a twelve-byte rotation will place
先前所述的数据对准器700可以在线路711上接收不同字节大小的未对准数据、并对准这些数据以得到一特定的字节大小,其将配合第8图详细说明如下。另外,数据对准器700亦可以支持具有空洞(hole)及部分主体组件的数据封包,除了一般的标头组件、主体组件、及结尾组件以外。The aforementioned data aligner 700 can receive unaligned data of different byte sizes on the line 711 and align the data to obtain a specific byte size, which will be described in detail with reference to FIG. 8 as follows. In addition, the data aligner 700 can also support data packets with holes and partial body elements, except for the general header element, body element, and trailer element.
这个旋转器740利用类似的提前一个时脉周期方式进行操作,如第4图所述的旋转器440,藉以支持部分主体组件结构。先前第6图所述的映像方式透过预测及取代下一个时脉周期的缓冲器720的字节数目以实现,藉以做为目前计算的净正确数目。在目前计算中,这个净正确计数乃是缓冲器710的字节数目加上缓冲器720的字节数目。在后续输入的部分主体组件支持及旋转量预测的情况中,目前净正确字节计算会变成缓冲器720的字节数目。这个旋转量为主要控制,且也可以用来做为其它控制信号的种子。The rotator 740 operates in a similar one-clock-cycle-advance manner as the
第8图表示复杂数据流的一种数据对准方式的另一实施例。在一实施例中,封包组件接收并进行分析以决定是那种类型的组件,如步骤810所示。若这个组件判定为标头组件、主体组件、或结尾组件,如步骤815所示,则这个组件便可以映像至简易数据流的对应组件类型、并根据第5图所述的方法进行处理,如步骤820所示。Fig. 8 shows another embodiment of a data alignment method for complex data streams. In one embodiment, the packet component receives and analyzes to determine the type of component, as shown in
若这个组件并不是标头组件、主体组件、或结尾组件,则这个组件将会进行分析以决定其是否为空洞(hole)或部分主体组件,如步骤825所示。若这个组件系判定为空洞(hole),则数据对准器700的缓冲器710、820、及730状态将会保持不变且不采取任何行动,如步骤830所示。然而,若这个组件判定为部分主体组件,则这个组件的部分主体功能将会映像至结尾组件,如步骤835所示。当执行此映像动作时,这个部分主体组件可以基于这个部分主体及这个中间缓冲器720具有数据的字节数目(净数目),分类为两种映像组件,亦即:结尾组件A及结尾组件B,如步骤840所示。If the component is not a header component, a body component, or an end component, the component will be analyzed to determine whether it is a hole or part of the body component, as shown in
若这个净数目少于十六字节,则先前第5图所示的结尾序列可以跟进,如步骤845再加上下列调整,其包括:抑制数据对准器700的控制输出,如步骤850所示(这基本上表示:表示位置1至16的字节正确性的控制信号会在第二电路级706产生、但却会在检测到结尾组件A时透过这个控制器750的逻辑电路被抑制);跳过这个中间缓冲器720,如步骤855所示;及利用中间缓冲器720的未通过结果,执行这个净数目的下一次计算,如步骤860所示。在特定实施方式中,目前时脉周期的净数目可以预测为下一个时脉周期的中间缓冲器730数目。随后,步骤850、855、及860会重复执行,直到这个净数目超过或等于十六。If this net number is less than sixteen bytes, then the previous ending sequence shown in FIG. 5 can be followed, as in
举例来说,若中间缓冲器720具有七字节、且缓冲器710接收一字节,则这八个字节会传送至缓冲器730。因此缓冲器730储存的字节数目少于十六字节,控制器750将会抑制控制输出778。在一实施例中,控制输出778会持续抑制,直到这个净数目等于或超过十六字节、或接收到封包结尾(EOP)信号。在另一实施例中,另一种逻辑架构及控制信号可以用来抑制数据对准器700的控制输出778。For example, if intermediate buffer 720 has seven bytes and buffer 710 receives one byte, then eight bytes are sent to buffer 730 . Therefore, the number of bytes stored in the buffer 730 is less than sixteen bytes, and the controller 750 will suppress the control output 778 . In one embodiment, the control output 778 remains inhibited until the net number equals or exceeds sixteen bytes, or an end-of-packet (EOP) signal is received. In another embodiment, another logic architecture and control signal may be used to suppress the control output 778 of the data aligner 700 .
随后,利用控制器750传输的控制信号,缓冲器730的输出便可以经由多任务器775、760、及770反馈,藉以在下一个时脉周期中输入至缓冲器730。利用这种方法,中间缓冲器720的输出便可以利用缓冲器730的内容而予以跳动。随后,利用先前第7图所述的预测方法,当这个缓冲器710收到额外字节时便可以执行净数目的计算动作。这些步骤会重复执行,直到缓冲器710及这个缓冲器720(包括缓冲器730发生的跳过字节)的净字节数目等于或超过十六字节。Then, using the control signal transmitted by the controller 750, the output of the buffer 730 can be fed back through the multiplexers 775, 760, and 770, so as to be input to the buffer 730 in the next clock cycle. In this way, the output of intermediate buffer 720 can be pulsed with the contents of buffer 730 . Then, using the predictive method previously described in FIG. 7, this buffer 710 can perform net number calculations when additional bytes are received. These steps are repeated until the net byte count of the buffer 710 and the buffer 720 (including the skipped bytes from the buffer 730) equals or exceeds sixteen bytes.
若这个净数目等于或大于十六字节,则先前第5图所述的结尾序列(如步骤865所示)将会加上下列调整,其包括:不抑制这些控制输出(包含封包起点(SOP)及字节致能),如步骤870所示;不产生封包结尾(EOP)控制信号,如步骤875所示;及不跳过这个中间缓冲器720,如步骤880所示,因为其已经适当地进行更新。If this net number is equal to or greater than sixteen bytes, the following adjustments will be added to the ending sequence (as shown in step 865) previously described in FIG. ) and byte enabling), as shown in
继续先前例子,若缓冲器720(包含缓冲器730的跳过字节)储存八字节的数据、并接收另外八个字节,则这八个字节会随着旋转器760的输出一起传送至多任务器760。因为这个总和等于十六,因此,这个连接输出会传送至多任务器770以在下一个时脉周期中进行输出。控制器750并不会产生任何封包结尾(EOP)控制信号。利用这种方式,在缓冲器710及720(包含缓冲器730的跳过字节)造成大于或等于十六字节的部分主体组件的处理方式便可以类似于简易数据流的结尾组件,而不需要产生封包结尾(EOP)控制信号。Continuing with the previous example, if buffer 720 (including the skipped byte of buffer 730) stores eight bytes of data, and receives another eight bytes, those eight bytes are sent along with the output of rotator 760 Up to multitasker 760. Since the sum is equal to sixteen, the output of this connection is sent to the multiplexer 770 for output in the next clock cycle. The controller 750 does not generate any end-of-packet (EOP) control signals. In this way, partial body elements that result in greater than or equal to sixteen bytes in buffers 710 and 720 (including the skipped byte of buffer 730) can be treated similarly to the end element of a simple data stream, instead of An end-of-packet (EOP) control signal needs to be generated.
上述方法是让复杂数据流能够映像至相对简易装置中,并且仅需要加入多任务器及组合逻辑电路即可。这种结构可以降低第一级电路的控制设计负担,其可能会具有相当严格的定时要求、并需要在两电路级间分配逻辑电路,而非仅是将第一级电路及逻辑电路进行封装而已。这类电路结构可能会得到更好的时序效果及更高的操作频率。The method described above allows complex data streams to be mapped to relatively simple devices, and only needs to add multiplexers and combinational logic circuits. This structure can reduce the control design burden of the first stage circuit, which may have quite strict timing requirements and need to distribute logic circuits between two circuit stages, rather than just packaging the first stage circuit and logic circuits . This kind of circuit structure may get better timing effect and higher operating frequency.
第9图表示旋转器的一实施例。在一实施例中,旋转器900可以用于第4图的旋转器440或第7图的旋转器740。旋转器900表示四级串连的字节旋转电路,其中,各个字节旋转电路981至984能够自行旋转一、二、四、八个字节。字节旋转电路属于已知技术,因此,其详细说明将不再提供。Figure 9 shows an embodiment of a spinner. In one embodiment, the
基于旋转输入功能,各个字节旋转电路981至984均可以跳过。在这种架构中,旋转器900可以基于控制信号971至974(其表示零字节至十五字节的字节旋转量),经由十六字节输入产生旋转输出979。第11图表示一实施例,其基于输入及旋转量,表示旋转器900的输出。Based on the rotation input function, each
控制信号971至974为各自作为多任务器991至994的控制输入。控制信号971至974分别在字节旋转电路981至984的输出961至964、及字节旋转电路981至984的输入951至954间进行选择。输入951至954分别做为多任务器991至994的数据输入。第10图表示基于这些输入数据951至954及这些旋转量的输出979。在另一实施例中,另一类型的旋转器可以使用,举例来说,桶状旋转器(barrelrotator)。Control signals 971 to 974 serve as control inputs to
本发明所述的方法及装置用来解决复杂数据路径设计的一般性及循环性问题。另外,与网络协议相关的硬件实施方式(其中,数据流可进行编码及译码以用于错误检测及校正)亦可能会得到更快速且更有效的检查器及产生器流水线设计,并进而得到更高频率及更大频宽的设计。The method and device described in the invention are used to solve the general and cyclic problems of complex data path design. In addition, hardware implementations associated with network protocols (where data streams can be encoded and decoded for error detection and correction) may also lead to faster and more efficient checker and generator pipeline designs, and thus to Design for higher frequency and wider bandwidth.
在另一实施例中,本发明所述的方法及装置可以用于其它类型的需要数据对准的系统及零件,举例来说,需要对准各种字节路线的未对准数据的处理器负载及储存引擎。举另一个例子来说,这种方法及装置可以应用于数据储存功能,其中,内部指令的多个字节宽度储存操作映像为外部总线的单一储存操作。In another embodiment, the method and apparatus described in the present invention can be used in other types of systems and components that require data alignment, for example, processors that require alignment of misaligned data in various byte lanes Load and storage engines. As another example, the method and apparatus can be applied to data storage functions, where multiple byte-wide store operations of an internal command are mapped to a single store operation on an external bus.
综上所述,本发明已参考特定实施例,详细说明如上。然而,很显然,在不违背在权利要求中列出的本发明的精神及范围的前提下,本发明实施例可以进行各种变动及调整。因此,本发明的说明书及附图仅用来介绍本发明的特征,而非用来限制本发明的范围。In summary, the present invention has been described in detail with reference to specific embodiments. However, it is obvious that various changes and adjustments can be made to the embodiments of the present invention without departing from the spirit and scope of the present invention listed in the claims. Therefore, the specification and drawings of the present invention are only used to describe the characteristics of the present invention, rather than to limit the scope of the present invention.
Claims (53)
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/771,173 US6813734B1 (en) | 2001-01-26 | 2001-01-26 | Method and apparatus for data alignment |
US09/771,172 | 2001-01-26 | ||
US09/771,173 | 2001-01-26 | ||
US09/771,172 US6965606B2 (en) | 2001-01-26 | 2001-01-26 | Method and apparatus for byte rotation |
PCT/US2002/002255 WO2002060101A2 (en) | 2001-01-26 | 2002-01-25 | Method and apparatus for data alignment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1498470A CN1498470A (en) | 2004-05-19 |
CN1498470B true CN1498470B (en) | 2011-06-15 |
Family
ID=27118415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN02807041.0A Expired - Fee Related CN1498470B (en) | 2001-01-26 | 2002-01-25 | Method and device for data alignment |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP1360786A2 (en) |
JP (1) | JP3775597B2 (en) |
CN (1) | CN1498470B (en) |
AU (1) | AU2002245320A1 (en) |
WO (1) | WO2002060101A2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104834476A (en) * | 2014-02-10 | 2015-08-12 | Lsi公司 | Data alignment system and method based on end-of-segment mark |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9707727B2 (en) | 2014-04-09 | 2017-07-18 | Nike, Inc. | Selectively applied adhesive particulate on nonmetallic substrates |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5410677A (en) * | 1991-12-30 | 1995-04-25 | Apple Computer, Inc. | Apparatus for translating data formats starting at an arbitrary byte position |
EP0752800B1 (en) * | 1995-07-07 | 2004-01-02 | Sun Microsystems, Inc. | Apparatus and method for data packing through addition |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05134848A (en) * | 1991-03-06 | 1993-06-01 | Fujitsu Ltd | Data shift circuit for central processing unit |
DE4238090C1 (en) * | 1992-11-11 | 1994-03-03 | Siemens Ag | Method and arrangement for recovering plesiochronous signals transmitted in function data blocks |
DE19903366A1 (en) * | 1999-01-28 | 2000-08-17 | Siemens Ag | Process for converting Nx-STM-1 signals into STM-N signals |
-
2002
- 2002-01-25 AU AU2002245320A patent/AU2002245320A1/en not_active Abandoned
- 2002-01-25 EP EP02713472A patent/EP1360786A2/en not_active Withdrawn
- 2002-01-25 CN CN02807041.0A patent/CN1498470B/en not_active Expired - Fee Related
- 2002-01-25 WO PCT/US2002/002255 patent/WO2002060101A2/en active Application Filing
- 2002-01-25 JP JP2002560316A patent/JP3775597B2/en not_active Expired - Lifetime
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5410677A (en) * | 1991-12-30 | 1995-04-25 | Apple Computer, Inc. | Apparatus for translating data formats starting at an arbitrary byte position |
EP0752800B1 (en) * | 1995-07-07 | 2004-01-02 | Sun Microsystems, Inc. | Apparatus and method for data packing through addition |
Non-Patent Citations (1)
Title |
---|
EP 0752800 A,第2页44-56行,第5页30-40行,第6页4-9行,权利要求1-3、6-8,突3、6A、6B、7. |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104834476A (en) * | 2014-02-10 | 2015-08-12 | Lsi公司 | Data alignment system and method based on end-of-segment mark |
CN104834476B (en) * | 2014-02-10 | 2016-10-19 | 安华高科技通用Ip(新加坡)公司 | The system and method for data alignment based on section end mark |
Also Published As
Publication number | Publication date |
---|---|
JP3775597B2 (en) | 2006-05-17 |
CN1498470A (en) | 2004-05-19 |
EP1360786A2 (en) | 2003-11-12 |
WO2002060101A3 (en) | 2003-09-18 |
WO2002060101A2 (en) | 2002-08-01 |
AU2002245320A1 (en) | 2002-08-06 |
JP2005504449A (en) | 2005-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9917787B2 (en) | Method and system for flexible credit exchange within high performance fabrics | |
US10305802B2 (en) | Reliable transport of ethernet packet data with wire-speed and packet data rate match | |
US7289434B2 (en) | Method for verifying function of redundant standby packet forwarder | |
US9648148B2 (en) | Method, apparatus, and system for QoS within high performance fabrics | |
US7616562B1 (en) | Systems and methods for handling packet fragmentation | |
US7782857B2 (en) | Logical separation and accessing of descriptor memories | |
US8085780B1 (en) | Optimized buffer loading for packet header processing | |
JP2003508954A (en) | Network switch, components and operation method | |
IL160997A (en) | Vertical instruction and data processing in a network processor architecture | |
JP2003508967A (en) | Network switch using network processor and method | |
US7079538B2 (en) | High-speed router | |
CN101692647A (en) | Tunnel forwarding system in which IPv4 packets are encapsulated by IPv6 head in router | |
US20030118022A1 (en) | Reconfigurable data packet header processor | |
US7272675B1 (en) | First-in-first-out (FIFO) memory for buffering packet fragments through use of read and write pointers incremented by a unit access and a fraction of the unit access | |
US6813734B1 (en) | Method and apparatus for data alignment | |
US7379467B1 (en) | Scheduling store-forwarding of back-to-back multi-channel packet fragments | |
TW565767B (en) | Packet switch and packet memory access method therefor | |
CN104618057A (en) | Packet transport network non-damage protection switching method and system | |
CN1498470B (en) | Method and device for data alignment | |
US7496109B1 (en) | Method of maximizing bandwidth efficiency in a protocol processor | |
US6965606B2 (en) | Method and apparatus for byte rotation | |
US6954466B1 (en) | Link-layer receiver | |
US11636061B2 (en) | On-demand packetization for a chip-to-chip interface | |
CN102394767B (en) | Data processing method and system based on optical transfer network | |
CN117914444B (en) | Hardware implementation method and device for CRC calculation of IB network data packet |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: ACSA CO., LTD. Free format text: FORMER OWNER: INFINEON TECHNOLOGIES NORTH AMERICA CORP Effective date: 20100618 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20100618 Address after: American California Applicant after: Infineon Technologies North America Corp. Address before: American California Applicant before: Infenion Tech. North America Corp. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110615 Termination date: 20140125 |