Coded data generation or conversion – Digital code to digital code converters – Coding by table look-up techniques
Reexamination Certificate
1998-12-22
2001-05-01
Young, Brian (Department: 2819)
Coded data generation or conversion
Digital code to digital code converters
Coding by table look-up techniques
C341S095000, C340S398100
Reexamination Certificate
active
06225924
ABSTRACT:
FIELD OF THE INVENTION
The present invention relates to data communications in general, and in particular to a system for transforming data octets into ten-bit code groups in accordance with the ANSI fiber channel transmission code.
BACKGROUND OF THE INVENTION
It is well known in the art of data communications that many data communications systems are designed in layers, with each layer depending on the layer below to provide defined services. It is also well known that, in sending a particular data communication, data transformation may be necessary during data transmission when data moves from one layer to another. One particular simple example of such a transformation is the transformation of data from an internal format suitable for use in a computer to a transmission format suitable for transmission on a given medium.
In many cases, published standards define the way in which data is to be carried in a given layer and may also define data transformations which are necessary for entering that layer. For example, ANSI standard X3.230-1994 (FC-PH) defines, at clause
11
, a transformation from data octets, having 8 bits, to 10-bit code groups for transmission over a fiber connection; this is also known as the ANSI Fiber Channel Transmission Code, and is also referred to herein as the “transmission code”. The transmission code is used not only over fiber channels, but also in certain Asynchronous Transfer Mode (ATM) and high-speed Gigabit Ethernet communications systems, as are known in the art. Encoding of data octets to 10-bit code groups is referred to herein as “8B/10B encoding”.
The transmission code is known to improve the transmission characteristics of information to be transmitted across the link. For example, the transmission code ensures that sufficient transitions are present in the bit stream to make clock recovery possible at a receiver. The coding is also known to increase the likelihood of detecting any single or multiple bit errors that may occur during transmission and reception of information.
A high level view of a typical prior art system for performing 8B/10B encoding is shown in FIG.
1
. In the prior art system of
FIG. 1
, an 8-bit input represented as HGFEDCBA and a current running disparity value are input to an 8B/10B table-lookup-based encoder. The 8B/10B table-lookup-based encoder is operative to look in a table comprising a large number of entries to determine the correct 10-bit code value and the new value for the running disparity.
A lookup table used by a prior art 8B/10B table-lookup-based encoder may comprise 512 entries, the 512 entries comprising one entry for each of the two possible running disparity values, for each of the 256 possible 8-bit input values. Alternatively, such a lookup table may comprise 256 double entries, each of the 256 double entries being associated with one of the 256 possible 8-bit input values, and each of the double entries comprising two sub-entries corresponding respectively to each of the two possible running disparity values. In either case, the prior art teaches building and using such a lookup table to perform 8B/10B encoding. Building and using such a lookup table based on ANSI standard X3.230-1994 (FC-PH), referred to above, is well known in the art. The prior art method used by an 8B/10B table-lookup-based encoder is referred to throughout the present specification and claims as an “8B-10B table lookup”.
The following general discussion of running disparity may be helpful in understanding the state of the art.
Running disparity for a ten bit code-group is calculated on the basis of sub-blocks, where the first six bits (abcdei) form one sub-block (six-bit sub-block) and the second four bits (fghj) form the other sub-block (four-bit sub-block). Running disparity at the beginning of the six-bit sub-block is the running disparity at the end of the last code-group. Running disparity at the beginning of the four-bit sub-block is the running disparity at the end of the six-bit sub-block. Running disparity at the end of the code-group is the running disparity at the end of the four-bit sub-block.
Running disparity for the sub-blocks is calculated as follows:
a) Running disparity at the end of any sub-block is positive if the sub-block contains more ones than zeros. It is also positive at the end of the six-bit sub-block if the six-bit sub-block is 000111, and it is positive at the end of the four-bit sub-block if the four-bit sub-block is 0011;
b) Running disparity at the end of any sub-block is negative if the sub-block contains more zeros than ones. It is also negative at the end of the six-bit sub-block if the six-bit sub-block is 111000, and it is negative at the end of the four-bit sub-block if the four-bit sub-block is 1100;
c) Otherwise, running disparity at the end of the sub-block is the same as at the beginning of the sub-block.
U.S. Pat. No. 4,486,739, to Franaszek et al, describes a binary 8B/10B code and an encoder circuit for generating the code, for use in transmission over electromagnetic or optical transmission lines. U.S. Pat. No. 4,486,739 is presently assigned to the assignee of the instant application. Each 8-bit input block is partitioned into two sub-blocks consisting of 5 and 3 contiguous bits, respectively. Certain individual bits in each sub-block are altered to produce an alternate code pattern. A running disparity is determined and is used in generating the coded output.
In U.S. Pat. No. 4,486,739 it will be appreciated, particularly from FIG. 9 and the description thereof, that both rising and falling edges of a single clock are used in timing the operation of different components of the apparatus described therein. Thus, the apparatus of U.S. Pat. 4,486,739 is not capable of performing 8B/10B encoding in a single clock cycle.
It is further noted that U.S. Pat. No. 4,486,739 describes use of a control variable K based on an unencoded information octet. Since the encoder function described by U.S. Pat. No. 4,486,739 does not receive any control information when receiving an unencoded octet, it must be that the physical coding sublayer, in which an encoder would reside, would need to encode incoming control information twice:
1. In the form of an unencoded octet and asserted control variable K, in certain cases.
2. In the encoder itself.
The disclosures of all references mentioned above and throughout the present specification are hereby incorporated herein by reference.
SUMMARY OF THE INVENTION
The present invention seeks to provide an improved data communications method, and in particular an improved method for transforming data octets into ten-bit code groups in accordance with the ANSI fiber channel transmission code. The present invention seeks to overcome drawbacks in the prior art, including drawbacks mentioned above with respect to the discussion of U.S. Pat. No. 4,486,739.
In the present invention, data octets are transformed into ten-bit code groups without performing an 8B-10B table lookup. In a preferred embodiment of the present invention the data octet is divided into a first bit portion and a second bit portion, the first bit portion preferably comprising 5 bits and the second bit portion preferably comprising 3 bits. Intermediate results are computed from each of the first bit portion and the second bit portion, each intermediate result typically comprising more bits than the portion from which it was computed.
Preferably, the present invention is implemented in dedicated hardware. Further preferably, the dedicated hardware comprises a dedicated processor controlled by a clock having a clock cycle, and the dedicated processor is designed to compute an 8B/10B encoding of one data octet in a single clock cycle.
It is appreciated that a ten-bit code group produced by the present invention is preferably provided to a fiber communication system and is transmitted thereby.
There is thus provided, in accordance with a preferred embodiment of the present invention, a method for transforming a data octet (8B) including eight bits into a ten-bit code group (10B) including ten b
Bokshtein Eli
Epshtein Mark
Mesh Alexander
Darby & Darby
International Business Machines - Corporation
Nguyen John
Young Brian
LandOfFree
Transmission coding method and device does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Transmission coding method and device, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Transmission coding method and device will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2563845