Patent Publication Number: US-9407470-B2

Title: Elements to counter transmitter circuit performance limitations

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     This application is a divisional of U.S. application Ser. No. 13/984,018, filed on Aug. 6, 2013, which is a National Phase Entry of PCT App. No. PCT/IB2013/000409, filed on Mar. 14, 2013, both of which applications are incorporated in their entireties herein. 
    
    
     TECHNICAL FIELD 
     Embodiments of the invention generally relate to the field of data transmission, and, more particularly, to elements to counter transmitter circuit performance limitations. 
     BACKGROUND 
     Signal transmissions have continued to increase in speed as technology has advanced. However, in the transmission of signals between devices or elements, there are limitations on transmitter performance caused by certain circuit characteristics. 
     In a first example, inductances of device packages, generally caused by the bond wire connections, operate to cause variation in signal delay, and thus to create data jitter. The data jitter may limit the speed of operation of a transmitter. 
     In a second example, an RC (Resistor-Capacitor) time constant of a transmitter operates to limit performance, where the resistance is the terminal resistance of the connection and the capacitance is the mainly comprised of package capacitance and any board capacitance. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Embodiments of the invention are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings in which like reference numerals refer to similar elements. 
         FIG. 1  illustrates an embodiment of an apparatus or system including circuit elements to counter transmitter circuit effects; 
         FIG. 2  is an illustration of power connections of a chip; 
         FIG. 3  illustrates current flows for devices with signal transitions; 
         FIG. 4  illustrates current flows for a clocked digital device; 
         FIG. 5  illustrates signal timing for an apparatus or system; 
         FIG. 6  illustrates signal timing for an embodiment of an apparatus or system; 
         FIG. 7  illustrates signal timing for an embodiment of an apparatus or system utilizing current injection; 
         FIG. 8  illustrates signal timing for an embodiment of an apparatus or system utilizing current injection; 
         FIG. 9  illustrates an embodiment of an apparatus or system including current injection; 
         FIG. 9A  illustrates an example of complementary data for current injection according to an embodiment; 
         FIG. 9B  illustrates an embodiment of a system to generate complementary data for a given data; 
         FIG. 10  illustrates a system including a transmitter coupled with a receiver; 
         FIG. 11  illustrates an embodiment of an apparatus or system including reduction of effective capacitance of a driver; 
         FIG. 12  illustrates shows an embodiment of an apparatus or system during charging and discharging of nodes; 
         FIG. 13  illustrates an embodiment of an apparatus or system including a programmable internal resistance; 
         FIG. 13A  illustrates an embodiment of a system to update the states of programmable switches; and 
         FIG. 14  illustrates an embodiment of an electronic device. 
     
    
    
     SUMMARY 
     Embodiments of the invention are generally directed to elements to counter transmitter circuit performance limitations. In a first aspect of the invention, an embodiment of an apparatus for driving data on a differential channel includes a first output terminal and a second output terminal includes a differential driver circuit; and a first pre-driver and a second pre-driver, where each pre-driver has an output, wherein the first output terminal of the apparatus is coupled to the output of the first pre-driver, and the second output terminal of the apparatus is coupled to the output of the second pre-driver, where each pre-driver includes one or more capacitors, a first end of each capacitor being connected to the output of the pre-driver and a second end of each of the capacitors being connected to a sub-pre-driver circuit. 
     In a second aspect of the invention, an apparatus includes a transmit buffer and a complimentary buffer on an integrated circuit (IC) chip, wherein the transmit buffer is coupled to a electrical channel comprising two wires outside the integrated circuit, and the complimentary buffer is coupled to two banks of capacitors on the chip, and wherein an input of the transmit buffer is coupled to a data input on the chip, and an input of the complementary buffer is coupled to a generated data that is calculated using an algorithm from the data input to the transmit buffer. The algorithm includes, in a one bit per clock cycle operation, inverting every other bit in the data stream, and, in a multiple bits per cycle scenario, either inverting all even bits or inverting all odd bits of an input data word. 
     In a third aspect of the invention, a method includes obtaining a capacitance value for two banks of capacitors of an integrated circuit (IC) chip to provide current injection for a complementary driver for a differential data driver, wherein the IC chip includes a transmit buffer and a complementary buffer, the complementary buffer being coupled to the two banks of capacitors, each bank of capacitors including a plurality of capacitors, where each of one or more of the plurality of capacitors is coupled with a programmable device; and updating a state of each of the programmable devices to establish the capacitance of two banks of capacitors, wherein the state of each programmable either enables or disables a connection of an associated capacitor. The state of each of such programmable devices can be updated when the transmit buffer is functional and sending data; and the programmable devices can change states only when the transmit data contains at least two sequential bits of logic ‘0’ or two sequential bits of logic ‘1’. 
     DETAILED DESCRIPTION 
     Embodiments of the invention are generally directed to elements to counter transmitter circuit performance limitations. 
     As used here: 
     “Data jitter” or “jitter” means undesired deviation of timing of signals in an apparatus or system. 
     In some embodiments, an apparatus, system, or method circuit provides elements to counter transmitter circuit limitations. In some embodiments, the elements including programmable elements to adjust transmitter performance. 
     In data transmission systems, one of the factors that affects the BER (Bit Error Rate) of an apparatus or system is timing jitter, also referred to as data jitter, with a major cause of timing jitter being variation in power supply. The data jitter limits the operation of a transmitter. In addition, a transmitter is further limited by the RC time constant of a circuit. 
     In some embodiments, an apparatus, system, or method includes elements for current injection to offset current variation in a circuit as signals are toggled, and thus to reduce data dependent jitter. In some embodiments, the apparatus, system, or method reduces the rise and fall times of the output signal of a current mode driver, such as an HDMI™ (High-Definition Multi-Media Interface) driver, and thus increases the speed to which such a driver may be operated. 
     In some embodiments, an apparatus, system, or method includes the provision of internal capacitance to modify the effective capacitance seen at an output, and thus to affect the RC time constant of the circuit. In some embodiments, an apparatus, system, or method provides for reducing the effective capacitance seen at the output. In some embodiments, an internal capacitance (Cint) is utilized to provide charge to the external capacitance (C) when the output node should go high, and subtract charge when the output node should go low, the internal capacitance providing a significant portion of charge/discharge current. 
       FIG. 1  illustrates an embodiment of an apparatus or system including circuit elements to counter transmitter circuit effects. In some embodiments, an apparatus or system  100  includes transmitter  110 , where the apparatus or system  100  may be, for example, an audio visual data signal source and the transmitter  110  may be, for example, an HDMI compatible transmitter. In some embodiments, the apparatus or system  100  may be a computer chip. In some embodiments, the transmitter  110  includes one or more circuit offset elements  120  to affect circuit performance. The apparatus or system  100  further includes a power supply  160  to supply power for the apparatus or system and one or more other elements  165 , which may, for example, include a receiving element to receive data, which may include data to be transmitted by the transmitter  110 . The apparatus or system further includes one or more ports  170  for the transmission of data, reception of data, or both. The ports  170  may include one or ports for the transmission of data by the transmitter, such as, for example, an HDMI compatible port for the transmission of HDMI data by the transmitter  110 . 
     In some embodiments, the circuit offset elements  120  may include elements for current injection, as illustrated by a current injection module  130 , to offset current variation in a circuit as signals are toggled, and thus to reduce data dependent jitter. 
     In some embodiments, the circuit offset elements  120  may include elements for reduction of effective capacitance at an output of the transmitter  110 , as illustrated by the internal capacitance module  140 . In some embodiments, the internal capacitance operates to modify the effective capacitance seen at an output, and thus to affect the RC time constant of the circuit. In some embodiments, an apparatus, system, or method provided for reducing the effective capacitance seen at the output. In some embodiments, an internal capacitance (Cint) is utilized to provide charge to the external capacitance (C) when the output node should go high, and subtract charge when the output node should go low. 
       FIG. 2  is an illustration of power connections of a chip. A power supply on a chip  200 , which may provide Vd and Vs voltages, is connected to the outside world (such as supply voltages VDD and VSS) through connections that include certain inductance, illustrated as L 1   210  and L 2   220 . The chip includes a transmitter  205 . For example, a power supply inside a chip is connected to an outside power supply through bond wire, where the bond wire adds inductance to the path of the power supply. 
     Transient currents on a chip cause transient voltage drop across the inductance, such as the inductance added by the connection to the power supply. Variation in the supply voltage results in variation in delay of cells, which then results in jitter. The jitter may be reduced through a reduction of inductance, but the reduction of the inductance will increase the cost of manufacturing a device. Thus, there is a tradeoff between jitter (creating reduced performance) and bond pad wire inductance (in terms of increased cost of production). 
     In this illustration, various blocks on the chip  200  draw a transient current ‘Id(t)’ from the power supply, thus the supply voltage ‘Vd(t)’ also varies. In operation, delay of cells driven by ‘Vd−Vs’ also varies with the variation in supply voltage. This variation in the delay causes data jitter for the chip  200 , and the data jitter reduces the performance of the transmitter. In a digital circuit, current generally arrives in peaks, with each such peak resulting in transient current flows. 
       FIG. 3  illustrates current flows for devices with signal transitions. In a digital circuit, current arrives in bursts or peaks. In this example, a first inverter  305  receives current from VDD (iV DD1    325 ) on every rising edge of input CLK  315 , while the inverter  305  provides current into GND (iG ND1    330 ) at every falling edge of the input CLK  315 . Also illustrated is a second inverter  310  receives current from VDD (iV DD2    335 ) on every rising edge of input CLKb  320  (generated by the first inverter  305 ), while the second inverter  310  provides current into GND (iG ND2    340 ) at every falling edge of the input CLKb  320 . Overall the buffer shows a peak on both VDD current (iV DDtotal    345 ) and GND current (iV GNDtotal    350 ) every time there is a transition. 
       FIG. 4  illustrates current flows for a clocked digital device. As illustrated, a digital circuit  400  receives a clock signal CLK  405 , with connections to VDD  410  and GND  415 . Clocked digital circuits, such as digital circuit  400 , in general consume most of their power on rising edges on the clock. There is usually also minor activity on falling edges of the clock. As a result, every time the clock rises or falls, supply dip and ground bounce occurs inside the chip. The major reason for the supply dip and ground bounce is the inductance on the package of the digital circuit  400 . In the absence of inductance, there would be essentially no supply bounce as external power supplies could provide current instantly. 
       FIG. 5  illustrates signal timing for an apparatus or system. In this illustration, buffers  500  include clock buffers  510  and data buffers  515  coupled to voltage VDD  512 . In clocked data buffers driving large loads, most of the current actually flows when data  520  toggles. If a driver is a differential driver (such as, for example, HDMI drivers) each time data  520  toggles there is a current peak on both i VDD    525  and i GND    530 . These current peaks then result in supply noise that is closely dependent on data, as shown in Vdd  535  and GND  540 . As shown in  FIG. 5 , the effective supply voltage seen by a buffer  555  (receiving CLK  545  and producing CLKOUT  550 ) varies at each data transition. As a result, the delay  560  that is generated varies with the data toggling. This variation in delay generates data jitter  565 . 
     For HDMI transmitters and other similar differential current-mode transmitter circuits, the data drivers and pre-drivers constitute very large loads on a chip. For single ended drivers and for pseudo-differential drivers, off chip loads are also relevant. All drivers as a result suffer from data-activity induced supply noise and the resultant jitter. Even for fully differential drivers, significant noise is generated due to digital stages (such as serializers) to cause enough data-dependent supply noise that then causes heavy data jitter. 
     Conventional packages generally have parasitic inductance that is too high to allow current waveforms changing faster than 100 MHz. The supply/ground cutoff for most packages is generally approximately 100-200 MHz. For 3 Gbps links, an idealized cutoff would be at least 3 GHz to eliminate supply ripple. However, this is not possible with the existence of significant parasitic inductance. 
     Once a data rate is appreciably more than package&#39;s supply cut-off frequency, the supply induced jitter becomes essentially constant. For example, 1 Gbps will generate essentially the same amount of jitter as 3 Gbps with regular packages. However, at higher data rates the margin for jitter is smaller. 
     The variation in the supply voltage has an impact on the output of a driver. The output of the driver is connected to the pin through an inductance. 
       FIG. 6  illustrates signal timing for an embodiment of an apparatus or system. Because ‘Vd(t)−Vs(t)’ varies with ‘vd(t)’, delay of the driver also varies with ‘ΔT(t)’, which is correlated to ‘vd(t)’. Thus, the delay of the driver will be different at each transition, and the eye diagram of the output of the driver in this case will have jitter. If it can be assured that at every transition of a driver output, ‘Vd(t)−Vs(t)’  605  has a same value, then, in comparison to an ideal voltage  610 , each transition of actual voltage  615  would be delayed by same ‘ΔT 0 ’  620 . Under these circumstances, the period of the signal would still be ‘T’ at all transitions  622 , and thus jitter is largely reduced or eliminated  625 . 
     In some embodiments, in order to provide low jitter, a power supply across a driver provides a value of ‘Vd(t)−Vs(t)’ that has the same value at each transition, thus providing low jitter. While LdI/dT drop may not be eliminated, if the drop is same each time the inverter switched, then the delay of the inverter would remain essentially the same in each cycle. 
     In some embodiments, an apparatus or system allows reduction in timing jitter without requiring a low inductance bond wire package. In some embodiments, the maintenance of the drop is achieved by injecting an estimated amount of current at times when data (or other large loads) are not switching on to the supplies. 
     In some embodiments, a same ‘Vd(t)−Vs(t)’ may be achieved at all transitions by the following: 
     (1) The output driver may be made differential. With a differential output driver, when one driver is drawing power from ‘Vd’, the differential counterpart is sinking current to ‘Vs(t)’. Thus, if the inductance on Vd and Vs is the same, the change in Vd and Vs will be same, thus maintaining ‘Vd(t)−Vs(t)’ constant. 
     (2) Because (1) above requires both the drivers to be matched exactly, another pin would be needed, to provide the same load to the complementary driver. 
     (3) The extra pin may be eliminated by providing a bank of capacitors to the complementary driver. The exact value of capacitance to be switched may be made programmable. During testing, the capacitance that gives minimum jitter may be chosen. 
     (4) Instantaneous voltage on the power supply depends on the Data being driven. If the circuit ensures that at every clock edge, the same or similar amount of current is drawn form the supply, the supply will be nearly the same for every transition. 
     (5) To achieve (4), a complementary data path may be added that toggles when the main data path does not toggle. 
       FIG. 7  illustrates signal timing for an embodiment of an apparatus or system utilizing current injection. In some embodiments, the data  705  and resulting iVDD current  710  are addressed with an injected current  715  at points when there is no transition, resulting in a regular pattern for total current  720 . Comparing the  FIG. 7  with  FIG. 5 , while a circuit will still have a ripple on the supply voltage vdd  725  (and also on GND, which is not shown), each time the data toggles, the voltage seen by the inverter  755  (receiving CLK  745  and producing CLKOUT  750 ) will be essentially the same. As a result the inverter delay  760  (and other delays in the system) will not vary and jitter will be largely reduced or eliminated  765 . 
     It is noted that the injection of current exacts a certain power penalty in operation. However, complete or near complete elimination of jitter may not be required in all cases. For example, for a link that is designed to work at both 3 Gbps and 2 Gbps, a system may save power by intentionally providing imperfect cancellation of supply noise. 
       FIG. 8  illustrates signal timing for an embodiment of an apparatus or system utilizing current injection. In some embodiments, the data  805  and resulting iVDD current  810  is addressed with an injected current  815  at points when there is no transition, resulting in a regular pattern for total current  820 . However, as illustrated in  FIG. 8 , the injected current  815  may be less than the normally occurring pulses. The circuit will have a varying ripple on the supply voltage vdd  825  (and on GND, which is not shown), each time the data toggles. The voltage seen by the inverter  855  (receiving CLK  845  and producing CLKOUT  850 ) is not equalized as in  FIG. 7  and there is some variation in signal delay  760 , but the variation is reduced in comparison with a circumstance in which there is no current injection. While this may not completely cancel out the jitter  765 , it will reduce the jitter substantially compared to an uncompensated case. 
     In some embodiments, an implementation may include a “dummy driver” circuit running parallel to the normal circuits, but that is fed data that toggles when the normal data does not. In such circuit, it is certain that at least one of the drivers will toggle, and thus every cycle will have a signal edge. If the drivers and the loads were identical, then the current spike generated in each clock cycle would be same, irrespective of data, and delays will be same in each cycle, the essentially eliminating jitter. 
     In some embodiments, in practice, the current injection may be used in only a limited part of a circuit. For example, if a clean power supply (a supply having little noise) is available for clock distribution (such as, for example, by not sharing the package pins between clock circuits with other circuits), then the major jitter generating circuit portions may be identified and the current injection being used only on the identified paths. 
       FIG. 9  illustrates an embodiment of an apparatus or system including current injection.  FIG. 9  is a simplified illustration including a single driver. In practical operation, circuits are more complex than a single driver. In this illustration, data in is received at digital logic  905 , which includes a path for an actual data stream  910  (Data_A). In some embodiments, in order to achieve the same or similar current consumption for each cycle, a path for a complementary data stream  915  (Data_T) may be added, where the complementary data path toggles when the main data path does not toggle. 
     In some embodiments, if the current spikes are to match precisely, not only are the drivers required to be matched, but their loads would also be required to be matched. For circuits that are entirely on chip this is feasible, but for single-ended (or pseudo-differential) pad drivers, the load will depend on factors that are generally beyond a circuit designer&#39;s control, such as PCB (printed circuit board) components and similar elements. 
     In some embodiments, an apparatus or system includes a main driver  950  and a complementary driver  960  to provide current injection when the main driver  950  does not toggle. In some embodiments, an apparatus, system, or process provides a bank of capacitors  965  to the complementary driver  960 . In some embodiments, the value of capacitance to be switched may be made programmable. In some embodiments, during PCB (printed circuit board) testing, the capacitance that provides a minimum jitter value may be chosen. 
     In some embodiments, an additional benefit may be provided in that incomplete cancellation of supply noise may be provided at lower data-rates to adjust the power/speed tradeoff by reducing power consumption. In some embodiments, provision of current insertion may then reduce the size of on-chip D-cap (decoupling capacitance) needed. 
     In some embodiments, the inclusion of a complementary driver including a programmable load may in particular be useful for drivers that rely on single ended drivers, such as SPMT (Serial Port Memory Technology), high speed CBUS (Control Bus) implementation in MHL™ (Mobile High-definition Link), and others. 
     In some embodiments, a process allows for post PCB production optimization. Based on the package that customers actually utilize, the package can be selectively turned to optimize or adjust the jitter and power consumption. In some embodiments, a current injection circuit may be turned off at lower speeds to save power. 
     There may be other blocks on the chip that do not toggle at the frequency at which the data is being transmitted. If only the blocks that toggle at the frequency of transmission of data are driven from one supply, the supply variation will be periodic with the period determined by the frequency of data transmission. This will reduce jitter as explained above. There may or may not be any DC current drawn from this supply. 
     In some embodiments, an apparatus, such as an integrated circuit (IC) chip, includes a transmit buffer and a complimentary buffer, wherein the transmit buffer is coupled to a electrical channel comprising two wires outside the integrated circuit, and the complimentary buffer is coupled to two banks of capacitors on the chip. In some embodiments, an input of the transmit buffer is coupled to a data input on the chip, and an input of the complementary buffer is coupled to a generated data that is calculated using an algorithm from the data input to the transmit buffer, the algorithm including: 
     (1) In a one bit per clock cycle operation, the algorithm is operable to invert every other bit in the data stream, and 
     (2) In a multiple bits per cycle scenario, the algorithm is operable to either invert all even bits or invert all odd bits of an input data word. 
     In some embodiments, wherein each bank of the capacitors is a single capacitor, and in some embodiments each bank of the capacitors includes multiple capacitors. In some embodiments, wherein one node of each of one or more capacitors of the banks of capacitors is connected to switch, and in some embodiments, the switches connected to the one or more capacitors are programmable. In other embodiments, the one or more capacitors of the banks of capacitors are not connected to switches and remain coupled to the complementary buffer. In some embodiments, the capacitors of the banks of capacitors may include parasitic capacitance of a circuit. 
     In some embodiments, the data input to the chip may be a single bit or a word of data. In some embodiments, if the data input is a word, the transmit buffer includes a first serializer, and the complementary buffer includes a second serializer, wherein data inputs to the second serializer are defined by the algorithm. 
       FIG. 9A  illustrates an example of complementary data for current injection according to an embodiment. In this illustration, Data_A represents actual data and Data_T represents complementary data. In the relationship between actual data and the complementary data, each odd bit (the first bit, the third bit, etc.) of the complementary data matches the respective odd bit of actual data, and each even bit (the second bit, the fourth bit, etc.) of the complementary data is inverted from the respective bit of the actual data. In this manner, the generated Data_T will operate to remain constant when the actual data Data_A toggles between ‘0’ and ‘1’ or between ‘1’ and ‘0’ and to toggle when the actual data does not toggle. 
       FIG. 9B  illustrates an embodiment of a system to generate complementary data for a given data. In some embodiments,  FIG. 9B  illustrates a system for producing complementary data in a serializer, where such complementary data may be utilized to provide for current injection. In this illustration, parallel data  970 , illustrated as 10-bit parallel data in this example, is received by digital logic  975 . In some embodiments, the digital logic  975  is operable to direct via the upper set of lines an unaltered set of data to a first serializer referred to an actual serializer  980 , which produces the serial data stream of actual data Data_A  985 . In some embodiments, the digital logic  975  alters a second set of data via the lower set of lines, where every other line includes an inverter, to generate a complementary set of data which includes odd data bits that are unaltered and even data bits that are inverted. In some embodiments, the complementary set of data is provided to a second serializer referred to as a complementary serializer  990 , which will produce complementary data stream Data_T  995 , where the complementary data stream  995  thus will toggle when the actual data stream  985  does not toggle. 
     In some embodiments, an apparatus, system, or method further includes an element to improve an output transition time of a driver. The speed of a conventional transmitter, such as an HDMI transmitter, is limited by the RC time constant, where R is the total termination resistance and C is the capacitance at the output pin, the capacitance C being mainly comprised of package capacitance and any board capacitance, including the ESD (electrostatic discharge) diode capacitance. 
     In some embodiments, a method for updating a state of programmable elements for connecting capacitors for a pre-driver includes: 
     (1) Obtaining a capacitance value for two banks of capacitors of an integrated circuit (IC) chip to provide current injection for a complementary driver for a differential data driver, wherein the IC chip includes a transmit buffer and a complementary buffer, the complementary buffer being coupled to the two banks of capacitors, each bank of capacitors including a plurality of capacitors, where each of one or more of the plurality of capacitors is coupled with a programmable device; and 
     (2) Updating a state of each of the programmable devices to establish the capacitance of two banks of capacitors, wherein the state of each programmable either enables or disables a connection of an associated capacitor. 
     In some embodiments, the first and second pre-drivers are to drive data complimentary to each other. 
     In some embodiments, the status of such programmable devices can be updated when the transmit buffer is functional and sending data. In some embodiments, the programmable devices can change states only when the transmit data contains at least two bits of logic ‘0’ or two bits of logic ‘1’ in sequence. 
       FIG. 10  illustrates a system including a transmitter coupled with a receiver. The speed of a conventional transmitter  1010 , such as, for example, an HDMI transmitter, in transmitting to a receiver  1060  is limited by an RC time constant, where R is the total termination resistance (which is generally the same as the characteristic impedance of the transmission line, which is cable  1050  in this illustration) and C is the capacitance at the output pin. The capacitance C is mainly comprised of package capacitance and any board capacitance, including the ESD diode capacitance. If the total capacitance on the pin is high, the rise/fall time is high and the requirements for the driver may not be met. 
     Conventional approaches to addressing the RC limitation may include: 
     (1) Reducing the resistance R—For example, internal termination resistance is added to reduce the total differential impedance seen between the differential outputs. However, DC ground current then is required to be increased to maintain DC levels. In such conventional operations, the transmission speed is still limited by the RC time constant at the output pin. 
     In order to reduce the effective R (resistance), it is possible to, for example, provide a termination resistance at the driver between output terminals TP (positive) and TN (negative). The lower limit on the resistance in such cases will be set by signal swing and power specifications. In one example, for an HDMI system, the lower limit is approximately 250 Ohms, which leads to an effective R of roughly 40 Ohms. Attempting to provide a resistance of less than this value is not possible because the VH specification would be violated. 
     Placing a termination resistor into a system leads to more power consumption even when there is no data toggling. Further, in most standards there is a lower limit on resistance R. DC ground current has to be increased to maintain DC levels. The transmission speed is still limited by the RC time constant at the output pin. An effective mechanism would instead be required to reduce both rise time and fall time, without increasing DC currents 
     (2) Pre-emphasis—Another conventional approach to addressing RC limitation is pre-emphasis. However, there are practical limitations on pre-emphasis. In an example of the HDMI architecture, pre-emphasis reduces the fall time of a signal but does not affect the rise time. In such an architecture, because of the difference in rise and fall time, there is a large variation in common mode voltage. The difference in rise time and fall time also results in large skew between differential signals and can increase the EMI (electromagnetic interference). 
     Further, it is possible to momentarily increase the current at the time of transition, which is the commonly known as pre-emphasis/de-emphasis technique. However, pre-emphasis/de-emphasis results in certain difficulties. The technique may violate certain standards requirements, such as the VH/VL specifications for HDMI at transmitter output even though the receiver eye improves, or may move a signal into common mode. For this reason, pre-emphasis/de-emphasis technique is a difficult solution to implement for transmitters such as an HDMI transmitter. 
     (3) Reduction in C—A system may provide for reducing the effective lumped C (capacitance) of the driver. While the reduction of capacitance may be effective in addressing RC limitations, this process may be difficult and expensive to implement, particularly if ESD diodes are present on the link. Reducing capacitance generally will result in the package, board, and other components being more expensive to produce. The reduction of the capacitance may face excessive load due to protection devices, switches, and other elements present. Further, on multiplexed paths (where there are multiple drivers on the same connection) the reduction of capacitance C may not be feasible. 
     (4) Pre-charge Capacitors—Another method includes pre-charge capacitors dumping their charge into the output pads at rising/falling edges of the data. However, such circuits are complex and require large capacitances. In addition, momentarily the capacitance on the pads increases and switching transients are thus expected. 
     In some embodiments, an apparatus, system, or method addresses RC limitations by reducing the effective capacitance seen at the output. In some embodiments, a mechanism utilizes an internal capacitance (Cint) to provide charge to the external capacitance (C) when the output node is supposed to go high, and subtract charge when the output node is supposed to go low. Thus, this internal capacitance provides a considerable portion of charge/discharge current. 
       FIG. 11  illustrates an embodiment of an apparatus or system including reduction of effective capacitance of a driver. In this illustration, a transmitter  1110  is coupled with a receiver  1160  via a cable  1150  or other connection. The transmitter  1110  and receiver  1160  may, for example, be HDMI compatible devices. In some embodiments, an internal capacitance (Cint)  1125  coupled with a pre-driver  1120  is utilized to provide charge to the external capacitance (C) when the output node goes high, and subtract charge when the output node should go low. In some embodiments, the internal capacitance provides a significant portion of charge/discharge current, thereby by moderating the effective capacitance at the output of the transmitter  1110 . 
       FIG. 12  illustrates shows an embodiment of an apparatus or system during charging and discharging of nodes. In this illustration, the transmitter  1110  is again coupled with the receiver  1160  via the cable  1150  or other connection, and the internal capacitance Cint  1125  is coupled with a pre-driver  1120 . In some embodiments, the transmitter  1110  is illustrated as charging node TP  1130  and discharging node TN  1135 . In this illustration, nodes TP  1130  and TN  1135  may be, for example, the positive and negative nodes (or output terminals) of an HDMI port. In some embodiments, for the charging node (TP), Cint provides charge to C. For the discharging node, Cint comes in parallel with C, thus the charge on C gets distributed between C and Cint. 
     In some embodiments, because the effective capacitance at the output of the transmitter  1110  is now reduced, the transmitter  1110  is capable of transmitting data at higher rates than those otherwise limited by the RC time constant. 
       FIG. 13  illustrates an embodiment of an apparatus or system for driving data on a differential channel including a programmable internal resistance. In some embodiments, the internal capacitance ‘Cint’  1325  of a transmitter  1310  (where transmitter  1310  is a high speed differential driver circuit) may be programmable, and thus allows modification of the internal capacitance as needed. In some embodiments, depending on the total capacitance C obtained on TP/TN nodes (where TP is a first output terminal and TN is a second output terminal), ‘Cint’ may be selected for an optimized setting. 
     In some embodiments, a pre-driver for ‘Cint’  1325  may be constructed utilizing one or more inverters  1320 , where the inverters are enabled by appropriate enable signals. In this illustration, en 1  enables or disables the pre-driver for Cint 1 , en 2  enables or disables the pre-driver for Cint 2 , and en 3  enables or disables the pre-driver for Cint  3 . 
     In some embodiments, the inverters  1320  may be followed by resistances (which are not illustrated here) to control the rise time and fall time at the pre-driver output, and hence to control the HDMI (or other transmitter) output. In some embodiments, the resistances may be programmable to allow for adjustment of the circuit. In some embodiments, the programmability of internal capacitance may be achieved by tristating the pre-drivers driving the internal capacitance or by adding switches in series with the pre-driver resistances. 
     In an implementation, the programmable internal capacitance Cint  1325  may allow for a fast rise/fall time implementation with relatively large capacitive loads. In some embodiments, based on the board capacitance and other factors, optimization of rise time and fall time may be implemented after production, which is generally not possible in conventional designs. 
     In some embodiments, internal capacitance portion of a circuit may be turned off at lower speeds to save power, such as by disabling each of the pre-drivers  1320 . In some embodiments, addition of programmable internal capacitance on the transmitter pads allows for controlling rise times and fall times of a transmitted signal. In some embodiments, the internal capacitances are driven by inverters or inverters followed by resistances. 
     In some embodiments, the programmability of internal capacitance may be achieved by tristating the pre-drivers driving the internal capacitance or by adding switches in series with the pre-driver resistances. 
     In some embodiments, each pre-driver includes one or more capacitors, a first end of each capacitor being connected to the output of the pre-driver and a second end of each of the capacitors being connected to a sub-pre-driver circuit. In some embodiments, each sub-pre-driver circuit may output a logic ‘0’, a logic ‘1’, or a high-impedance state, wherein one or more of the sub-pre-driver circuits are operable to enter into the high-impedance state before a start of data communication and are prohibited to enter into the high-impedance state during data communication. In some embodiments, each sub-pre-driver circuit that is not in the high-impedance state outputs logic ‘1’ when the associated pre-driver is driving a logic ‘1’ and outputs logic ‘0’ when the associated pre-driver is driving logic ‘0’, and the transitions of sub-pre-driver circuits of a pre-driver from logic ‘0’ to logic ‘1’ and from ‘1’ to ‘0’ are synchronized with each other. In some embodiments, in a circuit in which a first pre-driver is coupled with a first output terminal and a second pre-driver is coupled with a second output terminal, the first pre-driver is to output a logic ‘1’ on the first terminal when the differential high speed driver circuit is driving a logic ‘1’ on the first terminal, and the first pre-driver is to output a logic ‘0’ on the first terminal when the differential high speed driver circuit is driving a logic ‘0’ of the first terminal. In some embodiments, the first pre-driver and the second pre-driver are to drive data complimentary to each other. 
       FIG. 13A  illustrates an embodiment of a system to update the states of programmable switches. In some embodiments, a system provides for updating the status, or settings, of programmable drivers or switches. In operation, an integrated circuit may need to change the status of programmable switches or drivers, including circumstances in which the device is in operation. In some embodiments, a system provides for a change in status of a programmable switch or driver in which transmitter data output does not become corrupted when such change in status takes place. 
     In some embodiments, a change in status for a programmable driver or switch of a system is implemented in the system when there is no transition in the transmitted data. In some embodiments, if a change in status of one or more programmable drivers or switches is requested, an update to the status of the drivers of switches occurs only when at least two ‘0’s or two ‘1’s (two of a first logical value or two of a second logical value) are present in sequence in a data stream. 
     In the illustration provided in  FIG. 13A , a stream of Transmit Data includes a series of ‘0’ and ‘1’ values. In some embodiments, upon two or more of a logical value occurring in sequence, an enable signal (en&lt;n:0&gt;)  1350  is generated, where the enable signal indicates a time when a change in status of a programmable switch or driver may occur. In some embodiments, data may be input into a system with a programmable input resistance  1360 , such as illustrated in  FIG. 13 , where a pre-driver for ‘Cint’  1325  includes a sub-pre-driver circuit utilizing one or more inverters  1320 , the inverters being enabled by appropriate enable signals. In some embodiments, the enable signal is provided to a complementary driver circuit  1370  including a complementary driver  960  coupled with a bank of capacitors  965 , wherein the complementary driver  960  provides provide current injection when a main driver does not toggle. 
       FIG. 14  illustrates an embodiment of an electronic device. In this illustration, certain standard and well-known components that are not germane to the present description are not shown. In some embodiments, a device  1400  may be a sink device compatible with a first protocol, such as an MHL sink device, that may receive a cable connection from another device. In some embodiments, the device  1400  may be a source device connected via cable to a device. 
     Under some embodiments, the device  1400  comprises an interconnect or crossbar  1405  or other communication means for transmission of data. The data may include various types of data, including, for example, audio-visual data and related control data. The device  1400  may include a processing means such as one or more processors  1410  coupled with the interconnect  1405  for processing information. The processors  1410  may comprise one or more physical processors and one or more logical processors. Further, each of the processors  1410  may include multiple processor cores. The interconnect  1405  is illustrated as a single interconnect for simplicity, but may represent multiple different interconnects or buses and the component connections to such interconnects may vary. The interconnect  1405  shown in  FIG. 14  is an abstraction that represents any one or more separate physical buses, point-to-point connections, or both connected by appropriate bridges, adapters, or controllers. The interconnect  1405  may include, for example, a system bus, a PCI or PCIe bus, a HyperTransport or industry standard architecture (ISA) bus, a small computer system interface (SCSI) bus, a TIC ( 12 C) bus, or an Institute of Electrical and Electronics Engineers (IEEE) standard 1394 bus, sometimes referred to as “Firewire”. (“Standard for a High Performance Serial Bus” 1394-1995, IEEE, published Aug. 30, 1996, and supplements) 
     In some embodiments, the device  1400  further comprises a random access memory (RAM) or other dynamic storage device as a main memory  1415  for storing information and instructions to be executed by the processors  1410 . Main memory  1415  also may be used for storing data for data streams or sub-streams. RAM memory includes dynamic random access memory (DRAM), which requires refreshing of memory contents, and static random access memory (SRAM), which does not require refreshing contents, but at increased cost. DRAM memory may include synchronous dynamic random access memory (SDRAM), which includes a clock signal to control signals, and extended data-out dynamic random access memory (EDO DRAM). In some embodiments, memory of the system may certain registers or other special purpose memory. The device  1400  also may comprise a read only memory (ROM)  1425  or other static storage device for storing static information and instructions for the processors  1410 . The device  1400  may include one or more non-volatile memory elements  1430  for the storage of certain elements. 
     Data storage  1420  may also be coupled to the interconnect  1405  of the device  1400  for storing information and instructions. The data storage  1420  may include a magnetic disk or other memory device. Such elements may be combined together or may be separate components, and utilize parts of other elements of the device  1400 . 
     The device  1400  may also be coupled via the interconnect  1405  to an output display or presentation device  1440 . In some embodiments, the display  1440  may include a liquid crystal display (LCD), plasma display, or any other display technology for displaying information or content to an end user. In some environments, the display  1440  may include a touch-screen that is also utilized as at least a part of an input device. In some environments, the display  1440  may be or may include an audio device, such as a speaker for providing audio information, including the audio portion of a television program. 
     One or more transmitters or receivers  1445  may also be coupled to the interconnect  1405 . In some embodiments, the device  1400  may include one or more ports  1450  for the reception or transmission of data 
     In some embodiments, a transmitter  1445  is a transmitter including circuit elements to counter transmitter circuit limitations, where the elements include programmable elements to adjust transmitter performance. In some embodiments, the transmitter  1445  includes elements for current injection to offset current variation in a circuit as signals are toggled, and thus to reduce data dependent jitter. In some embodiments, an apparatus, system, or method includes the provision of internal capacitance to modify the effective capacitance seen at an output, and thus to affect an RC time constant. 
     The device  1400  may further include one or more antennas  1455  for the reception of data via radio signals. The device  1400  may also comprise a power device or system  1460 , which may comprise a power supply, a battery, a solar cell, a fuel cell, or other system or device for providing or generating power. The power provided by the power device or system  1460  may be distributed as required to elements of the device  1400 . 
     In the description above, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without some of these specific details. In other instances, well-known structures and devices are shown in block diagram form. There may be intermediate structure between illustrated components. The components described or illustrated herein may have additional inputs or outputs that are not illustrated or described. The illustrated elements or components may also be arranged in different arrangements or orders, including the reordering of any fields or the modification of field sizes. 
     The present invention may include various processes. The processes of the present invention may be performed by hardware components or may be embodied in computer-readable instructions, which may be used to cause a general purpose or special purpose processor or logic circuits programmed with the instructions to perform the processes. Alternatively, the processes may be performed by a combination of hardware and software. 
     Portions of the present invention may be provided as a computer program product, which may include a computer-readable non-transitory storage medium having stored thereon computer program instructions, which may be used to program a computer (or other electronic devices) to perform a process according to the present invention. The computer-readable storage medium may include, but is not limited to, floppy diskettes, optical disks, CD-ROMs (compact disk read-only memory), and magneto-optical disks, ROMs (read-only memory), RAMs (random access memory), EPROMs (erasable programmable read-only memory), EEPROMs (electrically-erasable programmable read-only memory), magnet or optical cards, flash memory, or other type of media/computer-readable medium suitable for storing electronic instructions. Moreover, the present invention may also be downloaded as a computer program product, wherein the program may be transferred from a remote computer to a requesting computer. 
     Many of the methods are described in their most basic form, but processes may be added to or deleted from any of the methods and information may be added or subtracted from any of the described messages without departing from the basic scope of the present invention. It will be apparent to those skilled in the art that many further modifications and adaptations may be made. The particular embodiments are not provided to limit the invention but to illustrate it. 
     If it is said that an element “A” is coupled to or with element “B,” element A may be directly coupled to element B or be indirectly coupled through, for example, element C. When the specification states that a component, feature, structure, process, or characteristic A “causes” a component, feature, structure, process, or characteristic B, it means that “A” is at least a partial cause of “B” but that there may also be at least one other component, feature, structure, process, or characteristic that assists in causing “B.” If the specification indicates that a component, feature, structure, process, or characteristic “may”, “might”, or “could” be included, that particular component, feature, structure, process, or characteristic is not required to be included. If the specification refers to “a” or “an” element, this does not mean there is only one of the described elements. 
     An embodiment is an implementation or example of the invention. Reference in the specification to “an embodiment,” “one embodiment,” “some embodiments,” or “other embodiments” means that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least some embodiments, but not necessarily all embodiments. The various appearances of “an embodiment,” “one embodiment,” or “some embodiments” are not necessarily all referring to the same embodiments. It should be appreciated that in the foregoing description of exemplary embodiments of the invention, various features of the invention are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure and aiding in the understanding of one or more of the various inventive aspects. 
     In some embodiments, an apparatus for driving data on a differential channel includes a first output terminal and a second output terminal, the apparatus further including a differential driver circuit; and a first pre-driver and a second pre-driver, where each pre-driver has an output, wherein the first output terminal of the apparatus is coupled to the output of the first pre-driver, and the second output terminal of the apparatus is coupled to the output of the second pre-driver. In some embodiments: each pre-driver includes one or more capacitors, a first end of each capacitor being connected to the output of the pre-driver and a second end of each of the capacitors being connected to a sub-pre-driver circuit; each sub-pre-driver circuit may output a logic ‘0’, a logic ‘1’, or a high-impedance state; one or more of the sub-pre-driver circuits are operable to enter into the high-impedance state before a start of data communication and are prohibited from entering into the high-impedance state during data communication; each sub-pre-driver circuit that is not in the high-impedance state outputs logic ‘1’ when the associated pre-driver is driving a logic ‘1’ and outputs logic ‘0’ when the associated pre-driver is driving logic ‘0’, and the transitions of sub-pre-driver circuits of a pre-driver from logic ‘0’ to logic ‘1’ and from ‘1’ to ‘0’ are synchronized with each other; wherein the first pre-driver is to output a logic ‘1’ on the first terminal when the differential high speed driver circuit is driving a logic ‘1’ on the first terminal, and the first pre-driver is to output a logic ‘0’ on the first terminal when the differential high speed driver circuit is driving a logic ‘0’ of the first terminal; and the first and second pre-drivers are to drive data complimentary to each other. 
     In some embodiments, a transition from logic ‘0’ to logic ‘1’ of the first pre-driver and a transition from logic ‘0’ to logic ‘1’ of the differential high-speed driver circuit are synchronous. 
     In some embodiments, a transition from logic ‘1’ to logic ‘0’ of the first pre-driver and a transition from logic ‘1’ to logic ‘0’ of the differential high-speed driver circuit are synchronous. 
     In some embodiments, a transition from logic ‘0’ to logic ‘1’ of the first pre-driver and a transition from logic ‘1’ to logic ‘0’ of the second pre-driver are synchronous. 
     In some embodiments, a transition from logic ‘1’ to logic ‘0’ of the first pre-driver and a transition from logic ‘0’ to logic ‘1’ of the second pre-driver are synchronous. 
     In some embodiments, the first and second pre-drivers include the same number and size capacitors. In some embodiments, the first and second pre-drivers include the same type of sub-pre-driver circuits. 
     In some embodiments, the capacitors in the pre-driver circuits are equal in size and the sub-pre-drivers are equal in their drive strength. 
     In some embodiments, each capacitor of a pre-driver is coupled with a programmable switch. 
     In some embodiments, the first and second output terminals are: two pads of an integrated circuit (IC), two wires in a cable, or two printed circuit board (PCB) lines. 
     In some embodiments, the sub-pre-driver circuits are constructed using logic gates and CMOS (complementary metal-oxide semiconductor) buffers and wherein the differential driver is a CML (Current Mode Logic) driver. 
     In some embodiments, an apparatus includes: a transmit buffer and a complimentary buffer on an integrated circuit (IC) chip. In some embodiments: the transmit buffer is coupled to a electrical channel comprising two wires outside the integrated circuit, and the complimentary buffer is coupled to two banks of capacitors on the chip; an input of the transmit buffer is coupled to a data input on the chip, and an input of the complementary buffer is coupled to a generated data that is calculated using an algorithm from the data input to the transmit buffer. In some embodiments, the algorithm includes the following: in a one bit per clock cycle operation, the algorithm inverts every other bit in the data stream, and in a multiple bits per cycle scenario, the algorithm either inverts all even bits or it inverts all odd bits of an input data word. 
     In some embodiments, each bank of the capacitors is a single capacitor. 
     In some embodiments, each bank of the capacitors includes multiple capacitors. 
     In some embodiments, one node of each of one or more capacitors of the banks of capacitors is connected to a switch. In some embodiments, the switches connected to the one or more capacitors are programmable. In some embodiments, one or more other capacitors of the banks of capacitors are not connected to switches and remain coupled to the complementary buffer. 
     In some embodiments, data input to the chip may be a single bit or a word of data. In some embodiments, if the data input is a word, the transmit buffer includes a first serializer, and the complementary buffer includes a second serializer, wherein data inputs to the second serializer are defined by the algorithm. 
     In some embodiments, the capacitors of the banks of capacitors include capacitance implemented by parasitic capacitance. 
     In some embodiments, a method includes: obtaining a capacitance value for two banks of capacitors of an integrated circuit (IC) chip to provide current injection for a complementary driver for a differential data driver, wherein the IC chip includes a transmit buffer and a complementary buffer, the complementary buffer being coupled to the two banks of capacitors, each bank of capacitors including a plurality of capacitors, where each of one or more of the plurality of capacitors is coupled with a programmable device; and updating a state of each of the programmable devices to establish the capacitance of two banks of capacitors, wherein the state of each programmable device either enables or disables a connection of an associated capacitor. In some embodiments, the state of each of such programmable devices can be updated when the transmit buffer is functional and sending data; and the programmable devices can change states only when the transmit data contains at least two sequential bits of logic ‘0’ or two sequential bits of logic ‘1’. 
     In some embodiments, one or more other capacitors of the banks of capacitors are not connected to programmable device and remain coupled to the complementary buffer. 
     In some embodiments, the method further includes choosing a capacitance value to provides a minimum data jitter value.