High-frequency pipelined RLL decoder

Abstract: In a decoder for decoding a serial data stream, employing an extracted base clock signal, synchronous with an input, coded, serial data stream, a fractionary frequency clock signal for sampling a decoded output data stream and a second fractionary clock signal for synthesizing a pre-decoded value produced by a first combinative logic network within a second combinative logic network to produce a decoded value that is sent to an output sampling flip-flop, a pipelined operation is implemented by momentarily storing the bits that are processed in the second combinative logic network and by anticipating of two full cycles of the synchronous base clock the processing by said first combinative network of the n-number of bits handled by the decoder. Each one of the two combinative logic networks is permitted to complete its decoding process within a full clock cycle in advance of the raising front of the outpunt sampling clock signal. With the same fabrication technology and therefore with the same propagation delay of the two combinative logic networks, the maximum operating spead may be doubled. A limited number of additional components are required to implement the pipelined operation of the invention.

Description: The invention generally relates to a decoder for serial data transfer channels, for example from peripherals to a CPU and viceversa. The invention is particularly useful for read/write channels of a mass memory system, such as for example a hard disk system. In mass memory supports, such as for example hard disks, floppy disks, CD, tape streamers and similar, digital data are stored by physically recording on the support only the "1", spaced among each other along a magnetic track by segments, the length of which is proportional to the number of "0" present between two successive "1". Considerations on the dynamic characteristics of revolving or winding supports, impose a minimum distance between adjacent "1", because if any two successive "1" would be physically recorded one close to the other on the support, interference between the two recorded "peaks" could cause indeterminations and errors during reading due to a practical limitation of the discriminating capacity of reading pick-ups. Moreover, another peculiarity of these mass storing systems is represented by the fact that the sampling clock signal that is used in the write/read channels circuitry cannot be derived by a system's clock (e.g. by frequency division), but necessarily has to be a synchronous clock signal that is derived directly from the serial data stream, the "speed" of which may often vary. For example, in the case of a hard disk, data recorded on outer circular tracks may be written and read at a higher speed than data written and read on inner circular tracks. In general, in this as in many other applications, a variable frequency clock signal, synchronous with the serial streams of data, is generated by detecting the succession of transitions of a coded pulse stream that represents a succession of digital data, for example by employing a common phase-locked circuit (TLL), cooperating with a voltage controlled oscillator (VCO). Where there is the necessity of generating a variable frequency, synchronous time base signal (i.e. synchronous base clock signal), there may be also a practical limit to the maximum "distance" between any two successively recorded "1", because if a transition could occur after an excessively long period of time from a preceding transition, the synchronism of the self-generated clock frequency, "locked" to the pulse stream, could be lost, thus introducing, also in this case, indeterminations of the correct sampling instant and therefore errors during reading. These "dynamic" limitations are commonly overcome by implementing special codification of the data being transferred, capable of ensuring an established minimum number of "0" and an established maximum number of "0" between any successive "1" of a coded binary serial data stream. Several codifications of this type are known, for example in a so-called Run Length Limited system RLL(2,7), the digits 2 and 7 indicate a minimum number (2) and the maximum number (7), respectively, of "0" between any two "1". In the: RLL(1,7) system, the two numbers indicate the minimum number of "0" (in this case 1) and the maximum number of "0" (in this case 7), that may be present between any two successive "1" of a coded binary serial data stream. Of course, the adoption of a particular coding system of the serial data stream, for example from and to a rotating mass memory support, or also from and to a different type of peripheral having similar dynamic operation characteristics, implies the use of special coding and decoding circuits of the serial stream of digital data. A common peculiarity of these as well as of other coding/decoding systems is that the "frequency" of the input serial data stream and the "frequency" of the output serial data stream are different in view of the fact that to a certain number X of bits of a decoded serial data, commonly of the so-called NRZ type (an acronym of Non-Return-to-Zero), corresponds a layer number Y of bits of a coded serial data ( Y=X+z , z≥1). For example, two bits of a decoded NRZ of data signal may correspond to three bits of the coded data signal. This fact implies that during a reading phase, a certain time base frequency (clock) VCO, must be extracted from the sequence of transitions of the coded signal, for example by means of a PLL circuit. The derived VCO signal, synchronous with the incoming serial stream of coded data is employed as clock signal for controlling a shift register to which the coded signal is fed. If, for example, the ratio between the equivalent number of bits of the coded serial data and of the decoded serial data is equal to 3:2(1.5), from the base clock signal VCO, derived from the transitions of the coded input signal, a first fractionary frequency clock signal VCO/1.5 that is used for sampling the decoded output signal and a second fractionary frequency clock signal VCO/3 that is employed in the timing and synthesizing functions that are performed by the decoding circuitry of the decoder. For example, in case of an RLL(1,7) code, the respective coding and decoding tables are shown in Figures 1 and 2, respectively. A common architecture of a decoder is shown in Fig. 3, while the timing diagrams are shown in Fig. 4. The shift register SR that receives the serial stream of coded data, SYNDATA , is synchronized with the extracted base clock signal VCO, may be provided with a number of flip-flop (FF n ) greater than the number of bits handled by the decoder, which for example, in the case shown, is of 7 bits. The flip-flops in excess, relative to the Q⊘ and Q1 taps of the shift register SR, may be employed for other accessory functions, as is well known to a skilled person. A first combinative logic block RC1 processes the Q outputs of the seven flip-flops Q<2:8>, that is the taps relative to the seven bits handled by the decoder, and produces a first value ND⊘ which is fed to a first timing flip-flop A, sampled at a first fractionary clock frequency VCO/1.5. The Q output of the flip-flop A is fed to a second combinative logic block RC2, to be combined with the values of a second fractionary frequency clock signal VCO/3 and of a fractionary number of bits (the bits present at the taps Q5, Q6 and Q7 of the respective flip-flops of the shift register SR) of the total number of bits handled by the decoder. The second fractionary frequency clock signal VCO/3 is fed to the second combinative logic block RC2, in order to modify the logic function of the block, so that its output may assume alternatively the value NQ⊘, as produced by the first combinative block RC1 and timed by the first flip-flop A, or the value produced by RC2 by processing the relative Q5, Q6 and Q7 bits. In practice, RC2 "incorporates" a multiplexer, necessary for bringing to an output stage of the decoder a signal ND1, containing the decoded information, in the form of two decoded bits, which are then sampled at the fractionary frequency of the output clock signal VCO/1.5, in order to produce the serial output NRZ data stream. Therefore, the second combinative logic network RC2 produces a synthesized output value ND1 which is fed to a second output sampling flip-flop B, which is also controlled, as the first flip-flop A, at the fractionary clock frequency VCO/1.5. The output signal of the second flip-flop B represents the decoded NRZ stream having a "frequency" that is different (a fraction thereof) from the "frequency" of the input coded serial data stream. Generally, the logic functions necessary for decoding (specified in the respective decoding blocks in the figures), are defined as sums of products and they may be implemented with a two-level logic, a first AND level and a successive OR level. In a practical embodiment it is possible to employ two levels of NAND gates because they are notably more efficient in CMOS technology. Of course, logic circuits with more than two levels may also be employed for implementing different decodings, or for reducing the number of inputs of single logic gates, in case it may become excessively large. The two decoding combinative logic networks RC1 and RC2 may be both implemented by a two-level, NAND, gate array and, depending on the fabrication technology of the integrated circuit, they will have a precisely quantifiable delay of propagation. Such a propagation delay determines the maximum limit of the frequency of operation of the decoder. In the example taken into consideration, as visualized in the timing diagrams of Fig. 4, the operative limit of the circuit is given by a maximum "period" corresponding to two times the delay of propagation of the decoding combinative logic networks. This intrinsic speed limit of the circuit derives from the fact that alternately each of the two combinative logic networks RC1 and RC2 must complete its function (obviously with the propagation delay of the network) within a half-period of the extracted synchronous clock signal VCO. This limiting aspect is indicated by the arrows and labels placed on the timing diagrams of the circuit shown in Fig. 4. This- mechanism of limitation of the maximum operating frequency imposed by the fabrication technology used for realizing the decoding combinative logic networks, is intrinsic to decoders of the type in question, irrespectively of the particular coding that is used. The document US-A-4,538,189 discloses a decoder of digital data according to a run-length-limited, variable-length word code scheme. The encoder comprises three four-stage shift registers, two groups of logic gates and a final set of flip-flops for clocking the encoding at twice the incoming data frequency; one set of logic gates providing the decoding for the odd-numbered encoded bits and the other set decoding the even-numbered bits. SUMMARY OF THE INVENTION It has now been found and represents an object of the present invention a way to overcome this limitation of the maximum frequency of operation of a decoder, imposed by the particular fabrication technology that is used, and which is determined essentially by the delay of propagation through the combinative logic circuits that are employed for decoding. In practice, the solution that has now been found, permits to double the maximum operating frequency of the decoder for the same fabrication technology used. This important result is achieved by an architecture that may be defined as "pipelined", whereby specific circuit blocks perform parts of a whole logic function, simultaneously, and the partial results (signals) produced by the different blocks, are then "combined" for producing the overall result of the decoding function. In practice, the function of a first combinative logic decoding block is implemented in several steps and the partial results are stored in multiple registers and alternately fed, through a multiplexer to a second, synthesizing, combinative logic network. Basically, the architecture of the decoder is conceived so as to re-synchronize and re-synthesize the signals in order to allow the combinative logic networks (RC1 and RC2) to carry out and conclude their decoding function always within the interval of an entire period of an extracted base clock signal (synchronous with the coded serial stream which is fed to a shift register SR). In practice this is obtained by having the bits stored in the input shift register processed by a first combinative-logic, decoding network, two base clock cycles (VCO) in advance of the processing by a second combinative-logic, decoding network of certain bits stored in the shift register, by momentarily storing these bits that will be subsequently processed by the second combinative logic network, in order to maintain the necessary coherence of the values that eventually are synthesized in the second combinative logic network. The value produced by the first combinative logic network is sampled at the frequency of the base clock signal VCO a first time, in order to produce two signals, that are out of phase between each other by half period of the base clock signal VCO. The pair of signals thus obtained is fed to the respective inputs of a multiplexer. The multiplexer performs a selection, in function of a second clock signal having a frequency that is a fraction of the frequency of a first fractionary freqeuncy clock signal having a frequency that is a fraction of the frequency of the synchronous base clock signal VCO. Said first fractionary clock signal has a frequency ratio with the synchronous base clock signal that is congruent with the ratio between the corresponding number of bits of the incoming coded serial stream and of the output decoded serial stream. To the input of a first synchronization flip-flop of the basic structure of the decoder are alternatively fed one and the other of the two signals, out of phase by half period of the VCO clock signal between each other. In this way, availability at the input of the first synchronization flip-flop of a pre-decoded ND⊘ signal is ensured (by the selection of one or the other of the multiplexed signals: ND⊘' and ND⊘''), a full cycle of the synchronous VCO clock signal before the relative rising front of the sampling signal of the output serial stream (VCO/1.5). Therefore, to an input of the second combinative logic decoding network is brought a pre-decoded and synchronized signal that may be coherently combined with the momentarily stored bits and with the second fractionary frequency clock signal, thus performing a correct synthesization of signals in the second combinative logic network, the output value of which is brought to the input of a second sampling flip-flop of the decoded serial signal output by the decoder. The different aspects and advantages of the invention will become more evident through the following description of an important embodiment, herein incorporated by express reference, and by referring to the attached drawings, wherein: Figure 1 is a decoding table according to an RLL(1,7) code, as already described above; Figure 2 is a coding table according to the same protocol RLL(1,7), as already described above; Figures 3 and 4 are a block diagram and a time diagram, respectively, of a decoder made according to the prior art, as already described above; Figure 5 is a block diagram of a decoder made according to the present invention; Figure 6 is a block diagram of a decoder of the invention, according to an alternative embodiment thereof; Figure 7 is a timing diagram of the decoder of Fig. 6. For an immediate comparison with the prior art described in Figures 3 and 4, also the decoders described in the Figures 5, 6 and 7, relate to an RLL(1,7) coding, which is widely used in hard-disk, read/write channels. Nevertheless, it is clear that the "pipelined" decoder object of the present invention, is applicable also to other types of coding that employ fractionary frequency clock signals derived from a base clock signal, which is synchronous with the transitions of an input coded serial signal (the frequency of which as already pointed out above, may vary within certain limits) and wherein the coded input stream has a larger number of bits than the corresponding number of bits of the decoded output stream. By referring to the functional diagram of Fig. 5 and to the relative timing diagram of Fig. 7, the system of the present invention contemplates that a first combinative logic, decoding network RC1 process the values of the Q output taps (6:⊘) of the flip-flops that form the shift register SR, two full cycles of the synchronous clock signal VCO in advance of the processing by a second combinative logic network of the relative bits. This in order to ensure availability of a corresponding decoded value ND1 at the input D of an output register B (flip-flop) of the decoded NRZ output stream, a full cycle of the clock signal VCO, before a raising front of a first clock signal, having a fractionary frequency as compared with the frequency of the base synchronous clock signal VCO and in a frequency ratio congruent with the ratio between the numbers of corresponding bits of the coded input stream and of the decoded output stream, which, in the example shown, is equal to VCO/1.5. The base clock signal VCO, synchronous with the coded input stream SYNDATA , controls the shifting of the bits in the register SR, as well as the sampling instants of the three storing latches of the three bits: Q4', Q5' and Q6' that are eventually processed by the second combinative logic network RC2. The output value Z of the first combinative logic network RC1 is fed to the D input of a first flip-flop C, which is also sampled by the base clock signal VCO. The output value Q of the flip-flop C is stored in a latch L C beside being also fed to the input D of a second flip-flop DD, both sampled by the same base clock signal VCO. The Q output of the flip-flop DD and the Q output of the latch L C are connected to respective inputs of a selection multiplexer MUX(2x1), controlled by a second fractionary frequency clock signal VCO/3, having a fractionary frequency as compared with the frequency of the base synchronous clock signal VCO, and which is also input to the second combinative logic network RC2. As in a prior art decoder, the second fractionary clock signal VCO/3 is employed for varying the combinative function of the block RC2 so that its output may assume alternately the value NQ⊘, as produced by the first combinative logic network RC1 and synchronized by the flip-flop A, and the value that is produced by the second combinative logic network RC2 by processing the relative bits. In practice, RC2 incorporates a multiplexer, the function of which is necessary in order to alternately output two decoded NRZ bits (i.e. the signal ND1), which are then sampled at the frequency of the output fractionary clock signal VCO/1.5, in order to produce the output NRZ stream. The synchronization and multiplexing system of the value Z produced by the first combinative logic network RC1 is such that, at the D input of the first synchronization flip-flop A of the basic structure of the decoder, a pre-decoded value ND⊘ is present (coherently selected between the values ND⊘' and ND⊘'' by the multiplexer MUX), a full cycle of the base clock signal VCO in advance of the raising front of the output sampling clock signal VCO/1.5 (which produces the NQ⊘ value which is in turn synthesized with the stored bits by the second combinative logic network RC2). In other words, the anticipated processing by two VCO clock cycles performed by the first combinative logic network RC1, which is completed within a period of time corresponding to a full cycle of the clock VCO, and the subsequent multiplation and synchronization of the pre-decoded signal, permits also to the second combinative logic network RC2 to complete the logic processing of the values of the three stored bits Q4', Q5' and Q6', of the pre-decoded signal NQ⊘ and of the second fractionary clock signal VCO/3, within an interval of time corresponding to a full cycle of the VCO clock signal, while satisfying the condition of making available to the D input of the output flip-flop B, the decoded value ND1, a full cycle of the clock signal VCO in advance of the raising front of the output sampling clock signal VCO/1.5. In this way, the important result of doubling the operating frequency of the decoder for the same fabrication technology, in other words for the same propagation delays of the two decoding blocks RC1 and RC2, is achieved. Such an outstanding result is pointed out in the timing diagrams of the circuit, shown in Fig. 7. The logic functions performed by the decoding blocks are shown in Fig. 5, wherein, the additional circuit devices that are required by the circuit of the invention as compared with the functional devices that are normally required by a decoder made according to the prior art, are evidenced by tracing the additional devices with a thicker line than the line used for tracing the other (conventional) portions of the decoder. In practice, the novel architecture of the decoder of the invention requires the use of a 2x1 multiplexer, two flip-flops and four latches in addition to the components of a decoder of the prior art. Moreover, if the flip-flops are of the Master-Slave type, it is possible, according to an alternative embodiment of the decoder of the invention, to reduce the number of additional devices to just only two flip-flops and a 2x1 multiplexer. Such an embodiment is depicted in the circuit diagram of Fig. 6. Instead of employing three additional latches for storing the three bits Q4', Q5' and Q6', according to the functional diagram of Fig. 5, to the respective inputs of the second combinative logic network RC2 are fed the signals taken directly from the outputs of the Master latches of the relative flip-flops Q4, Q5 and Q6 of the shift register. Also the formation of the additional latch L C of the functional diagram of Fig. 5, necessary for storing the output Q of the flip-flop C may be avoided, by connecting to the respective input ⊘ of the multiplexer MUX the Q output of the Master latch of the DD flip-flop which produces the other pre-decoded signal ND⊘'', which is fed to the other input (1) of the multiplexer MUX. In this way, it is no longer necessary to integrate four additional latches, thus making outstandingly economical the implementation of the method of the invention, which therefore assumes an even greater value in terms of cost/benefits.

Claims: A decoder of a serial stream of coded digital data ( SYNDATA ) in a decoded serial stream of digital data (NRZ), comprising means for generating a base clock signal (VCO), synchronous with the transitions in said coded serial stream; means for deriving from said base clock signal (VCO) a first fractionary clock signal (VCO/1.5), having a frequency fractionary in respect to the frequency of said synchronous base clock signal (VCO) with a frequency ratio congruent with the ratio between the number of bits of said coded stream and the number of equivalent bits of said decoded stream, and at least a second fractionary clock signal (VCO/3) having a fractionary frequency with respect to said first fractionary frequency clock signal (VCO/1.5); a shift register (SR) composed of a plurality of flip-flops, receiving said input stream of coded data ( SYNDATA ), under control of said synchronous base clocks signal (VCO); a first combinative-logic, decoding network (RC1) for processing n bits stored in said shift register (SR) and producing a first pre-decoded value (ND⊘Z); a first synchronizing flip-flop (A), sampled by said first fractionary clock signal (VCO1.5), receiving said first pre-decoded value (ND⊘Z); a second combinative-logic, decoding network (RC2) for combining a fractionary number of said n bits, said first pre-decoded and synchronized value (ND⊘) and said second fractionary clock signal (VCO/3) and producing a second decoded value (ND1) at an output thereof; a second output flip-flop (B), sampled by said first fractionary clock signal (VCO/1.5), receiving said second decoded signal (ND1) and producing at an output thereof said decoded serial stream (NRZ), characterized by comprising further means for anticipating by two cycles of said synchronous base clock signal (VCO) the processing by said first combinative logic decoding network (RC1) of said n bits for producing said first pre-decoded value (Z); means for storing said fractionary number of said n bits that are processed by said second combinative logic network (RC2); said means for anticipating comprising synchronizing and multiplexing means for said first pre-decoded value (Z) produced by said first combinative logic network (RC1), comprising a third flip-flop (C), receiving said first pre-decoded value (Z) and having an output connected to an input of a fourth flip-flop (DD) and to an input of a latch (L C ), and a multiplexer (MUX), two inputs of which, selected by said second fractionary clock signal (VCO/3) are connected to the outputs of said fourth flip-flop (DD) and of said latch (L C ), respectively, and the output of which is connected to said first synchronization flip-flop (A); said third and fourth flip-flops (C, DD), said latch (L C ) and said storing means of said bits processed by said second combinative logic network (RC2) being sampled by said synchronous base clock signal (VCO). A decoder according to claim 1, characterized by the fact that said combinative logic networks (RC1 and RC2) are two level networks, having a first AND level and a second OR level. A decoder according to claim 1, wherein said combinative logic networks (RC1 and RC2) have two NAND levels. A decoder according to claim 1, wherein said flip-flops are of the Master-Slave type. A decoder according to claim 4, wherein said latches are functionally substituted by connections to the output node of the Master latch of the respective flip-flop of the Master-Slave type, the output of which contains the relevant processable bit. A decoder according to claim 1, wherein said coded serial stream is an RLL(x,y) stream. A decoder according to claim 1, capable of handling a number n of bits and characterized by the fact that said shift register (SR) is composed by a number n+K flip-flops, where K≠0. A decoder according to claim 1, characterized by the fact that said synchronous base clock signal (VCO) is extracted by said coded serial stream by means of a phase-locked ring circuit cooperating with a voltage controlled oscillator. A method for doubling the maximum operating frequency of a decoder capable of handling a number n of bits of a coded serial stream of data ( SYNDATA ) by converting them in a decoded serial stream of data (NRZ), for the same propagation delay of the combinative logic decoding networks (RC1, RC2) employed, characterized by comprising: a) anticipating by two cycles of a clock signal (VCO), synchronous with said coded stream, the processing by a first combinative logic decoding network (RC1) of n bits of said coded stream of data for producing a first signal (Z) and, simultaneously, b) storing a fractionary number of said n bits, to be processed by a second combinative logic decoding network (RC2); c) synchronizing and multiplexing said first signal (Z) produced by said first combinative logic network (RC1) making it available (ND⊘) to the input of a synchronizing flip-flop (A) a full cycle of said synchronous clock signal (VCO) in advance with respect to the raising front of a first fractionary clocks signal (VCO/1.5) sampling said decoded output stream (NRZ); d) synthesizing said first signal (Z), synchronized (ND⊘), multiplexed (ND⊘', ND⊘'') and re-synchronized (NQ⊘), with said stored bits and with a second fractionary clock signal (VCO/3) in said second combinative logic network (RC2) and producing a second signal (ND1) which is made available at the input of an output sampling flip-flop (B), a full cycle of said synchronous clock signal (VCO) in advance with respect to the raising front of said first fractionary clock signal (VCO=1.5) sampling said decoded output stream (NRZ).

Inventors: ALINI ROBERTO, BETTI GIORGIO, GADDUCCI PAOLO, MOLONEY DAVID, ALINI, ROBERTO, BETTI, GIORGIO, GADDUCCI, PAOLO, MOLONEY, DAVID
Applicants: ST MICROELECTRONICS SRL, STMICROELECTRONICS S.R.L.
Application year: 1993
Main classification: G11B20
IPC codes: G11B20, H03M5