Multidrop data transfer
10230549 · 2019-03-12
Assignee
Inventors
Cpc classification
H04L25/0272
ELECTRICITY
International classification
H03D1/04
ELECTRICITY
H04L25/49
ELECTRICITY
H04L25/02
ELECTRICITY
Abstract
Multi-drop communications channels can have significantly deep notches in their frequency response causing a corresponding limitation of the effective data transmission rate. A special time-ordered coding method is described which results in the emitted spectrum of the data stream transmitted into the channel having a notch at the same frequency as the notch in the channel frequency response, permitting channel receivers to successfully decode the transmitted data stream. The described coding method may be applied at various multiples of the channel notch frequency to support different throughput rates, and may be combined with other coding techniques such as group or vector signaling codes.
Claims
1. A method comprising: receiving a frame of symbols via a wire of a multi-wire bus, the received frame of symbols comprising a plurality of partitions having an equal number of symbols, each data symbol in the frame of data symbols received at a rate of 2*M*f.sub.notch, wherein f.sub.notch is a notch frequency associated with the multi-wire bus, and wherein M is an integer indicative of a number of symbols in each partition of the plurality of partitions, M being an integer greater than 1; determining a first set of M data symbols from a first partition of the plurality of partitions, the first partition corresponding to a first channel-induced superposition of a first transmit frame of data symbols and a frame of initialization symbols; and determining a second set of M data symbols from a second partition of the plurality of partitions, the second partition corresponding to a second channel-induced superposition of a second transmit frame of data symbols and the first transmit frame of data symbols, wherein determining the second set of M data symbols is based at least on the first set of M data symbols.
2. The method of claim 1, wherein the symbols in the frame of initialization symbols have quiescent values.
3. The method of claim 1, wherein the frame of initialization symbols is a replicated copy of the first transmit frame of data symbols.
4. The method of claim 1, wherein the frame of initialization symbols is an inverted copy of the first transmit frame of data symbols.
5. The method of claim 1, wherein symbols of the second transmit frame of data symbols are pre-equalized according to symbols in the first transmit frame of data symbols.
6. The method of claim 1, wherein the symbols of the second transmit frame of data symbols are pre-equalized based on a measured depth of a notch at the notch frequency.
7. The method of claim 1, wherein each partition is received during a time period of t=1/(2*f.sub.notch).
8. The method of claim 1, wherein the frame of initialization symbols, the first transmit frame of data symbols, and the second transmit frame of data symbols are transmitted in a time frame of 1.5/f.sub.notch.
9. The method of claim 1, wherein an overall data throughput rate on the wire of the multi-wire bus is greater than M*f.sub.notch.
10. The method of claim 1, wherein the notch frequency is associated with an impedance anomaly associated with the multi-wire bus.
11. An apparatus comprising: a wire of a multi-wire bus configured to receive a frame of symbols, the received frame of symbols comprising a plurality of partitions having an equal number of symbols, each data symbol in the frame of data symbols received at a rate of 2*M*f.sub.notch, wherein f.sub.notch is a notch frequency associated with the multi-wire bus, and wherein M is an integer indicative of a number of symbols in each partition of the plurality of partitions, M being an integer greater than 1; a decoder configured to determine a plurality of sets of M data symbols, each set of M data symbols determined from a respective partition of the plurality of partitions, the plurality of sets of M data symbols comprising: a first set of M data symbols determined from a first partition of the plurality of partitions, the first partition corresponding to a first channel-induced superposition of a first transmit frame of data symbols and a frame of initialization symbols; and a second set of M data symbols determined from a second partition of the plurality of partitions, the second partition corresponding to a second channel-induced superposition of a second transmit frame of data symbols and the first transmit frame of data symbols, wherein the second set of M data symbols is determined based at least on the first set of M data symbols.
12. The apparatus of claim 11, wherein the symbols in the frame of initialization symbols have quiescent values.
13. The apparatus of claim 11, wherein the frame of initialization symbols is a replicated copy of the first transmit frame of data symbols.
14. The apparatus of claim 11, wherein the frame of initialization symbols is an inverted copy of the first frame of data symbols.
15. The apparatus of claim 11, further comprising a pre-equalization circuit configured to pre-equalize the second transmit frame of data symbols according to symbols in the first transmit frame of data symbols.
16. The apparatus of claim 11, wherein the pre-equalization circuit is configured to pre-equalize symbols in the second transmit frame of data symbols based on a measured depth of a notch at the notch frequency.
17. The apparatus of claim 11, wherein each partition is received during a time period of t=1/(2*f.sub.notch).
18. The apparatus of claim 11, wherein the frame of initialization symbols, the first transmit frame of data symbols, and the second transmit frame of data symbols are transmitted in a time frame of 1.5/f.sub.notch.
19. The apparatus of claim 11, wherein an overall data throughput rate on the wire of the multi-wire bus is greater than M*f.sub.notch.
20. The apparatus of claim 11, wherein the notch frequency is associated with an impedance anomaly associated with the multi-wire bus.
Description
BRIEF DESCRIPTION OF FIGURES
(1)
(2)
(3)
(4)
(5)
(6)
(7)
DETAILED DESCRIPTION
(8) It is well understood that at high data rates, communications channels must be treated as high-frequency transmission lines. As such, each connection anomaly in the communications signal path may introduce an impedance variation which causes some portion of the propagating transmit waveform to be reflected, both weakening the portion of the waveform continuing on, and producing a backwards-propagating waveform which may potentially be reflected from other impedance anomalies to produce delayed versions of the signal waveform which can distort or interfere with the primary waveform.
(9) Multidrop communications channels such as illustrated in
(10) One familiar with the art will note that such a multidrop configuration will typically be associated with a notch in the frequency response characteristics measured for the channel, as shown by the graph of
(11) Basic Concept
(12) If one attempted to transmit digital signals over such a communications medium at varying data rates, one would observe that the goodput (i.e. the rate at which good or non-disrupted data is received) over the medium varies significantly, with particularly poor transmission characteristics occurring at rates at or above the notch frequencies of the frequency response. In the time domain, this may be interpreted as the transmitted signal appearing at a receiver simultaneous with a delayed version of a previously transmitted signal, resulting in a marginal or corrupted detection result.
(13) Conversely, it is observed that if the transmission rate is set to an integer multiple of the notch frequency so as to create a frame of N data units D.sub.1, . . . , D.sub.N, the data unit transmission interfering with, as an example, data unit D.sub.N must be one of the earlier-transmitted data units D.sub.1, . . . , D.sub.N-1. Knowing the data to be transmitted in D.sub.N allows a value to be chosen for transmission in the earlier (e.g. interfering) time interval which will constructively interact with D.sub.N to facilitate its reception, one example being transmission of the same channel signal value during both the earlier and later time intervals. Alternatively, a value may be transmitted in the earlier time interval which will not impact reception of D.sub.N, an example being transmission of a quiescent or zero value on a channel where the data signals are +1 and 1, another example being the inverse of the data, if the delayed interfering signal is also inverted.
(14) Sequentially Transmitted Data Frame
(15) A first embodiment utilizes a data frame whose period T is equal to 1/f.sub.notch, where f.sub.notch is the frequency of the first notch in the channel's frequency response. The frame is divided into 2*M partitions of equal duration, where M is an integer typically greater than one, the sequence of partitions representing the consecutively transmitted signal unit intervals for the data stream. The first half of the frame may be herein referred to as the first transmit frame of M symbols. The second half of the frame may be herein referred to as the subsequent transmit frame of M symbols. The general form of this frame is:
(16) TABLE-US-00001 Time T = 0 T = 1/F.sub.notch Data D.sub.1 D.sub.2 D.sub.3 . . . D.sub.M D.sub.1 D.sub.2 D.sub.3 . . . D.sub.M
where D.sub.i represents the levels of the signaling scheme used for the transmission, e.g, 1 for binary data transmission, and each of the M data units D.sub.1, . . . , D.sub.M are transmitted twice, with the same sequence of M transmissions emitted in the first transmit frame being repeated in the same order in the subsequent transmit frame, resulting in an overall throughput equal to M**f.sub.notch. As one familiar with the art will observe, the frequency spectrum of such a periodically repeating message format has notches at frequencies (2K+1)*f.sub.notch and therefore, we can recover the data sequence D.sub.1, D.sub.2, D.sub.3, . . . , D.sub.M successfully at the receiver by sampling at (2*M)*f.sub.notch rate, discarding the first set of M samples (i.e. those in the first transmit frame,) and keeping the subsequent set of M samples as representing D.sub.1, . . . , D.sub.M.
(17) This data frame sequence is also illustrated in
(18) In the time domain, a multidrop channel with a notch at f.sub.notch adds a delayed and attenuated version of the input signal to itself where the delay is equal to t=1/(2*f.sub.notch). Looking at our data frame, it is obvious that while the data elements transmitted during the first transmit frame will interfere with data elements of the subsequent transmit, forming a channel-induced superposition. This channel-induced superposition may be made additive with the described timing and repetitive data transmission, thus providing an increased receiver eye opening.
(19) Alternative Embodiments
(20) An alternative embodiment transmits one half frame of zeroes or a comparable quiescent channel signal in the first transmit frame, and data in the subsequent transmit frame, thus damping out the interfering delayed signals. Thus, referring to
(21) A further alternative embodiment transmits one half frame of inverted data values in the first transmit frame, followed by one half frame of non-inverted data values in the subsequent transmit frame, providing a channel-induced superposition representing constructive interference in situations where the interfering delayed signal is inverted by reflection. Referring again to
(22) As will be apparent to one familiar with the art, equivalent patterns for the data frame include data followed by inverted data, data followed by zeroes, etc.
(23) Additional Variations
(24) It should be noted that the described embodiments are applied per-wire, thus may be combined with known multi-wire coding schemes in an obvious way, i.e. transmitting sequences of codewords of a vector signaling code on multiple wires rather than single bits on one wire, and repeating the sequence of codewords during the second half of the frame. Similarly, although the examples provided illustrate binary channel signaling for descriptive convenience, no limitation is implied as present embodiment are directly applicable to ternary, quaternary, and higher-order signaling as well.
(25) Because the transmission rate for the data frame is determined based on the channel notch frequency, the notch frequency will ideally be known at least approximately before-hand. For common configurations such as backplanes, stacked chips, etc. the physical dimensions and composition of the channel is fixed, and its expected characteristics are thus well known. Alternatively, other embodiments may measure the channel and set the communications data rate as part of a setup or initialization procedure for the circuit, the channel measurement either being performed directly as a signal strength vs. frequency plot, or indirectly by measuring pulse reflection times (i.e. as a time-domain reflectometer or TDR measurement.)
(26) Some embodiments may maintain individual channel compensation parameters per receiver or set of receivers, so as to optimize reception for the anticipated, calculated, or measured reflection combinations at those particular receiver locations. Other embodiments may use a consensus or average compensation parameters for all receivers. These compensation parameters may include the notch frequency, multiplication factor M, and format of the data frame, including polarity and type of corrective signals incorporated in it. The compensation parameters may differ for different transmitters; as one particular example, the characteristics of the channel and thus the preferred compensation parameters may not be symmetric in both directions.
(27) In practical embodiments, the transmission rate may merely approximate the optimal 2M*f.sub.notch rate with only modest reduction in received signal quality, determined in part by the depth and width of the channel notch.
(28) Illustrated Results
(29) An embodiment having a channel with a frequency response notch at approximately 900 MHz as shown in the graph of
(30)
(31) Further Embodiments
(32) The following descriptions use the term delta as a relative metric of the depth of the frequency response notch for the channel, with delta=1 for a very deep notch and delta=0 for no notch at all.
(33) In a further embodiment using single-ended NRZ coding, a previously-described example data frame of [d1 d2 d1 d2] is replaced by a data frame of [d1 d2 d1 d2 d3 d4]. Bits d1 and d2 (at positions 3 and 4) can be decided directly and bits d3 and d4 can be decided with known Decision Feedback Equalization (DFE) techniques at the receiver. Detection of d3 needs to know d1 (the earlier signal interfering with it) and, similarly, detecting d4 needs to know d2. DFE allows these earlier received signals to be subtracted from the present sample, leaving a disambiguated sample to be detected. In this embodiment, the frame length (the duration in time of [d1 d2 d1 d2 d3 d4]) is set to 1.5/f.sub.notch, allowing data transmission at the rate of 4/1.5*f.sub.notch=2.66*f.sub.notch. The DFE level depends on delta and can be set adaptively. The same technique works with a data frame structured as [0 0 d1 d2 d3 d4].
(34) A second further embodiment uses a 5-level driver, and sends the sequence [a b a b c-a d-b] in 1.5/f.sub.notch time. As one familiar with the art will note, the expected receive sequence will thus be [junk, junk, a*(1+delta), b*(1+delta), ca*(1-delta), db*(1-delta)]. If delta is close to 1 (e.g. 20 dB or so), then the vertical opening of ca*(1-delta), db*(1-delta) is slightly smaller than the normal vertical opening (same for the horizontal opening), and the symbols are principally binary (thus, according to the teachings of [Hormati I], ISI ratio=1.) This embodiment allows 4 bits to be sent in 1.5/f.sub.notch time, so in total 2.666*f.sub.notch bits/second/wire.
(35) A third further embodiment is applicable if the reflection is not so powerful, i.e. delta is, for example, on the order of 0.3. In this embodiment, a Tx FIR of [1 0-delta] is used to filter the transmitted data. On the receiver side, one obtains data in the form d2-delta.sup.2 d0=d2 and since delta is small, it will not close the eyes considerably. Prior knowledge or measurement of delta is needed by this embodiment.
(36) If delta is close to 1 (i.e. a deep notch), a fourth further embodiment uses frames like [d0 d1 d0 d1 (d0*d2) (d1*d3) (d0*d2*d4) (d1*d3*d5)] over 2/f.sub.notch, sending data at the rate of 6/2*f.sub.notch=3*f.sub.notch. On the receiver side, the first two UIs in this frame get corrupted by the previous frame. Bits d0 and d1 at positions 3 and 4 can be extracted by PAM2 detection. For the next bit we obtain d0*d2+delta*d0=d0*(delta+d2)=d0*(1+d2). One can extract d2 by performing a PAM3 detection to see if d0*(1+d2) is zero or not. If zero, d2=1 otherwise, d2=1. In the same way, one can obtain bits d3, d4 and d5. As a further advantage, this technique limits the error propagation.
EMBODIMENTS
(37) As shown in
(38) In at least one embodiment, first transmit frame of M symbols is equal to the subsequent transmit frame of M symbols.
(39) In at least one embodiment, the first transmit frame of M symbols comprises all quiescent symbols.
(40) In at least one embodiment, the first transmit frame of M symbols is an inverted version of the subsequent transmit frame of M symbols.
(41) In at least one embodiment, the first transmit frame of M symbols and the subsequent transmit frame of symbols are distinct. In at least one embodiment, the first transmit frame of M symbols comprises at least one prior decoded transmit symbol, and the decoding the M receive symbols comprises forming at least one output symbol based on the superposition of the at least one prior decoded transmit symbol and the corresponding transmit symbol of the subsequent transmit frame
(42) In at least one embodiment, the notch frequency is determined by an impedance anomaly.
(43) In at least one embodiment, the impedance anomaly is represented as multiple receivers connected to the multi-wire data bus.
(44) In at least one embodiment, the corresponding transmit symbol represents a combination of at least 2 distinct symbols.
(45) As shown in
(46) In at least one embodiment, an apparatus comprises a wire of a multi-wire bus configured to receive a frame of M receive symbols, the multi-wire bus having a notch frequency f.sub.notch, wherein each receive symbol of the received frame of M symbols comprises a channel-induced superposition of a transmit symbol of a first transmit frame of M symbols and a corresponding transmit symbol of a subsequent transmit frame of M symbols, wherein the first and subsequent transmit frames have a 2*M*f.sub.notch symbol rate, and, a decoder configured to form a set of output symbols by decoding the M receive symbols using at least one prior decoded transmit symbol.
(47) In at least one embodiment the first transmit frame of M symbols is equal to the subsequent transmit frame of M symbols.
(48) In at least one embodiment the first transmit frame of M symbols comprises all quiescent symbols.
(49) In at least one embodiment the first transmit frame of M symbols represents an inverted version of the subsequent transmit frame of M symbols.
(50) In at least one embodiment the first transmit frame of M symbols and the subsequent transmit frame of symbols are distinct.
(51) In at least one embodiment the first transmit frame of M symbols comprises at least one prior decoded transmit symbol, and the decoder is further configured to generate at least one output symbol based on the superposition of the at least one prior decoded transmit symbol and the corresponding transmit symbol of the subsequent transmit frame.
(52) In at least one embodiment the notch frequency is determined by an impedance anomaly.
(53) In at least one embodiment the impedance anomaly is represented as a plurality of receivers connected to the multi-wire data bus.
(54) In at least one embodiment the apparatus further comprises a set of input wires, each input wire configured to receive a set of input symbols, an encoder configured to generate a transmit data frame comprising M symbols and a subsequent transmit data frame comprising M symbols, and a driver configured to transmit the symbols of the transmit data frame on the wire of the multi-wire bus at a symbol rate of 2*M*f.sub.notch, wherein f.sub.notch is a notch frequency associated with the multi-wire bus and subsequently transmit the symbols of the subsequent transmit data frame at the symbol rate of 2*M*f.sub.notch.
(55) In at least one embodiment the corresponding transmit symbol represents a combination of at least 2 input symbols.
(56) The examples provided herein describe interconnection of a transmitting device and multiple receiving devices in a multi-drop networked configuration for descriptive simplicity. However, this should not be seen in any way as limiting the scope of the described embodiments. The methods disclosed in this application are equally applicable to other interconnection topologies having significant frequency response notches and other communications protocols including full-duplex as well as half-duplex and simplex communications. Similarly, wired communications are used as illustrative examples, the embodiments also being applicable to other communication media including optical, capacitive, inductive, and wireless communications. Thus, descriptive terms such as voltage or signal level should be considered to include equivalents in other measurement systems, such as optical intensity, RF modulation, etc. As used herein, the term physical signal includes any suitable behavior and/or attribute of a physical phenomenon configured to convey information. Physical signals may be tangible and non-transitory.