METHODS AND APPARATUS TO REDUCE SIGNALING POWER
1. Field The present disclosure relates generally to high-speed data communications interfaces, and more particularly, to pulse amplitude modulation encoded data communication links. 2. Background Manufacturers of mobile devices, such as cellular phones, may deploy various electronic components in one or more integrated circuit (IC) devices and/or on one or more circuit boards. The electronic components may include processing devices, storage devices, communications transceivers, display drivers, and the like. In one example, a processing device may be provided on a printed circuit board (PCB) and may communicate with one or more memory devices on the same PCB and/or on a different PCB. The processor may communicate with the memory devices using a high-speed communications link that supports unidirectional and bidirectional channels for data and control signals. In a multi-wire interface, the power consumption associated with a communications link can be significant in relation to a power budget available in a mobile wireless device. The power consumed by the communications link may be determined to some extent by one or more of bus width, driver types used to transmit data on a transmission line, geometry and structure of the transmission line, encoding format, frequency of switching, logic states, which may be defined by voltage and current levels of an encoding scheme, and so on. Embodiments disclosed herein provide systems, methods and apparatus that can reduce power consumption in a data communications link. Power consumption may be reduced by limiting the number of occurrences of a high-power encoding state in a primary bit or a secondary bit of a multi-bit data symbol. The primary bit may be a bit of the multi-bit data symbol that has one or more signaling states which draw more power than the signaling states of other bits of the multi-bit data symbol, and the secondary bit may be another bit of the multi-bit data symbol which has signaling states that draw more power than the remaining bits of the multi-bit data symbol other than the primary bit. In some examples, the primary bit may be the most significant bit (MSB) or the least significant bit (LSB) of the multi-bit data symbol, and the secondary bit of the multi-bit data symbol may be any of a plurality of bits associated with the multi-bit data symbol, other than the primary bit. In an aspect of the disclosure, a method for data communications includes determining a first fraction corresponding to a proportion of primary bits of a plurality of input data symbols that are in a first logic state and a second fraction corresponding to a proportion of secondary bits of the plurality of input data symbols that are in the first logic state, generating transmission symbols from the plurality of input data symbols, and providing the transmission symbols to one or more multi-state encoders configured to encode the transmission symbols as multi-level transmission symbols for transmission on a communications link. More power may be required to transmit a primary bit in the first logic state than to transmit a secondary bit in the first logic state. Primary bits of the transmission symbols may be derived from the secondary bits of the plurality of input data symbols and secondary bits of the transmission symbols may be derived from the primary bits of the plurality of input data symbols when the second fraction is greater than a half and greater than the first fraction. In an aspect of the disclosure, generating transmission symbols from the plurality of input data symbols includes inverting the primary bits of the input data symbols when the first fraction is greater than a half, and inverting the secondary bits of the input data symbols when the second fraction is greater than a half. In an aspect of the disclosure, generating transmission symbols from the plurality of input data symbols includes inverting the primary bits of the transmission symbols when the first fraction is greater than a half or the second fraction is greater than a half. In an aspect of the disclosure, the primary bits and secondary bits are binary-encoded bits of a multi-bit data symbol, and wherein more power may be required to transmit a binary-encoded bit in the first logic state than to transmit a binary-encoded bit in a second logic state. In an aspect of the disclosure, a sequence of the transmission symbols may be transmitted on a connector of the communications link. The transmission symbols may be transmitted in parallel on the communications link. In an aspect of the disclosure, an encoding indicator signal may be provided to one of the one or more multi-state encoders to obtain a multi-level encoding indicator signal indicating whether the primary bits of the transmission symbols correspond to the secondary bits of the input data symbols and the secondary bits of the transmission symbols correspond to the primary bits of the input data symbols. The multi-level encoding indicator signal and the multi-level transmission symbols may be transmitted in parallel in one transmission clock cycle on the communications link. The multi-level encoding indicator signal may indicate whether the primary bits of the transmission symbols are inverted. The multi-level encoding indicator signal may indicate whether the secondary bits of the transmission symbols are inverted. The one or more multi-state encoders may encode each of the transmission symbols as one of at least three voltage or current levels. The one or more multi-state encoders may encode each of the transmission symbols for transmission on a pulse amplitude modulated communications link. In an aspect of the disclosure, an apparatus includes means for determining a fraction of primary bits of a plurality of multi-bit data symbols that are in a first logic state, and means for providing transmission symbols to a multi-state encoder. More power may be required to transmit a primary bit in the first logic state than a primary bit in a second logic state. More power may be required to transmit the primary bit in the first logic state than to transmit a secondary bit in any logic state. Each transmission symbol may include an inverted version of the primary bit of a corresponding one of the plurality of multi-bit data symbols when the fraction of primary bits is greater than a half. The multi-state encoder may be configured to encode each of the plurality of multi-bit data symbols as one of at least three voltage or current levels on a communications link. In an aspect of the disclosure, an apparatus, includes a multi-state encoder configured to encode each of a plurality of multi-bit data symbols as one of at least three voltage or current levels on a communications link, a plurality of multi-state transmitter circuits configured to receive a set of transmission symbols from the multi-state encoder, and a processing circuit. The processing circuit may be configured to determine a fraction of primary bits of a plurality of multi-bit data symbols that are in a first logic state, and provide the transmission symbols to the multi-state encoder. More power may be required to transmit a primary bit in the first logic state than a primary bit in a second logic state. More power may be required to transmit the primary bit in the first logic state than to transmit a secondary bit in any logic state. Each transmission symbol may include an inverted version of the primary bit of a corresponding one of the plurality of multi-bit data symbols when the fraction of primary bits is greater than a half. In an aspect of the disclosure, a processor-readable storage medium has one or more instructions. The instructions may be executed by one or more processing circuits and may cause the one or more processing circuits to determine a fraction of primary bits of a plurality of multi-bit data symbols that are in a first logic state, and provide transmission symbols to a multi-state encoder. More power may be required to transmit a primary bit in the first logic state than a primary bit in a second logic state. More power may be required to transmit the primary bit in the first logic state than to transmit a secondary bit in any logic state. Each transmission symbol may include an inverted version of the primary bit of a corresponding one of the plurality of multi-bit data symbols when the fraction of primary bits is greater than a half. The multi-state encoder may be configured to encode each of the plurality of multi-bit data symbols as one of at least three voltage or current levels on a communications link. In an aspect of the disclosure, a method includes decoding a multi-level encoding indicator signal received from a communications link to provide a plurality of control signals, selectively inverting a primary bit of data symbols decoded from one or more signals received from the communications link based on a first of the plurality of control signals, selectively inverting a secondary bit of the data symbols based on a second of the plurality of control signals, and selectively swapping the primary bit and the secondary bit based on a third of the plurality of control signals. More power may be required to transmit a primary bit or secondary bit in a first logic state than in a second logic state. In an aspect of the disclosure, an apparatus includes means for determining a first fraction corresponding to a proportion of primary bits of a plurality of input data symbols that are in a first logic state and a second fraction corresponding to a proportion of secondary bits of the plurality of input data symbols that are in the first logic state, means for generating transmission symbols from the plurality of input data symbols, and means for providing the transmission symbols to one or more multi-state encoders configured to encode the transmission symbols as multi-level transmission symbols for transmission on a communications link. More power may be required to transmit a primary bit in the first logic state than to transmit a secondary bit in the first logic state. Primary bits of the transmission symbols may be derived from the secondary bits of the plurality of input data symbols and secondary bits of the transmission symbols may be derived from the primary bits of the plurality of input data symbols when the second fraction is greater than a half and greater than the first fraction. In an aspect of the disclosure, transmission symbols may be generated from the plurality of input data symbols by inverting the primary bits of the input data symbols when the first fraction is greater than a half, and inverting the secondary bits of the input data symbols when the second fraction is greater than a half. In one example, the transmission symbols may be generated from the plurality of input data symbols by inverting the primary bits of the transmission symbols when the first fraction is greater than a half or the second fraction is greater than a half. In an aspect of the disclosure, an apparatus includes a multi-state decoder configured to decode a multi-level encoding indicator signal received from a communications link and to provide a plurality of control signals extracted from the encoding indicator signal, and a processing circuit. The processing circuit may be configured to determine a first fraction corresponding to a proportion of primary bits of a plurality of input data symbols that are in a first logic state and a second fraction corresponding to a proportion of secondary bits of the plurality of input data symbols that are in the first logic state, generate transmission symbols from the plurality of input data symbols, and provide the transmission symbols to one or more multi-state encoders configured to encode the transmission symbols as multi-level transmission symbols for transmission on a communications link. More power may be required to transmit a primary bit in the first logic state than to transmit a secondary bit in the first logic state. Primary bits of the transmission symbols may be derived from the secondary bits of the plurality of input data symbols and secondary bits of the transmission symbols may be derived from the primary bits of the plurality of input data symbols when the second fraction is greater than a half and greater than the first fraction. In an aspect of the disclosure, transmission symbols may be generated from the plurality of input data symbols by inverting the primary bits of the input data symbols when the first fraction is greater than a half, and inverting the secondary bits of the input data symbols when the second fraction is greater than a half. In one example, the transmission symbols may be generated from the plurality of input data symbols by inverting the primary bits of the transmission symbols when the first fraction is greater than a half or the second fraction is greater than a half. In an aspect of the disclosure, a processor-readable storage medium has or maintains one or more instructions. The one or more instructions may be executed by at least one processing circuit. The one or more instructions may cause the at least one processing circuit to determine a first fraction corresponding to a proportion of primary bits of a plurality of input data symbols that are in a first logic state and a second fraction corresponding to a proportion of secondary bits of the plurality of input data symbols that are in the first logic state, generate transmission symbols from the plurality of input data symbols, and provide the transmission symbols to one or more multi-state encoders configured to encode the transmission symbols as multi-level transmission symbols for transmission on a communications link. More power may be required to transmit a primary bit in the first logic state than to transmit a secondary bit in the first logic state. Primary bits of the transmission symbols may be derived from the secondary bits of the plurality of input data symbols and secondary bits of the transmission symbols may be derived from the primary bits of the plurality of input data symbols when the second fraction is greater than a half and greater than the first fraction. In an aspect of the disclosure, transmission symbols may be generated from the plurality of input data symbols by inverting the primary bits of the input data symbols when the first fraction is greater than a half, and inverting the secondary bits of the input data symbols when the second fraction is greater than a half. In one example, the transmission symbols may be generated from the plurality of input data symbols by inverting the primary bits of the transmission symbols when the first fraction is greater than a half or the second fraction is greater than a half. Various aspects are now described with reference to the drawings. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of one or more aspects. It may be evident, however, that such aspect(s) may be practiced without these specific details. As used in this application, the terms “component,” “module,” “system” and the like are intended to include a computer-related entity, such as, but not limited to hardware, firmware, a combination of hardware and software, software, or software in execution. For example, a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program and/or a computer. By way of illustration, both an application running on a computing device and the computing device can be a component. One or more components can reside within a process and/or thread of execution and a component may be localized on one computer and/or distributed between two or more computers. In addition, these components can execute from various computer readable media having various data structures stored thereon. The components may communicate by way of local and/or remote processes such as in accordance with a signal having one or more data packets, such as data from one component interacting with another component in a local system, distributed system, and/or across a network such as the Internet with other systems by way of the signal. Moreover, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or.” That is, unless specified otherwise, or clear from the context, the phrase “X employs A or B” is intended to mean any of the natural inclusive permutations. That is, the phrase “X employs A or B” is satisfied by any of the following instances: X employs A; X employs B; or X employs both A and B. In addition, the articles “a” and “an” as used in this application and the appended claims should generally be construed to mean “one or more” unless specified otherwise or clear from the context to be directed to a singular form. Certain aspects of the invention may be applicable to communications links deployed between electronic devices that may include subcomponents of an apparatus such as a telephone, a mobile computing device, an appliance, automobile electronics, avionics systems, etc. Various devices within the apparatus 100 may be interconnected using a communications link that includes a number of conductors. The communications link may include one or more of a cable, wires within a semiconductor package, metallization on an IC, and traces on a PCB or chip carrier. In some instances, data may be encoded on the communications link using multi-level signaling, such that multiple bits of data or control information may be transmitted in a single pulse or communications clock cycle. For example, pulse amplitude modulation (PAM) may be employed to connect memory devices such as double data rate synchronous dynamic random-access memory (DDR SDRAM) and other devices or circuits. Examples of PAM include 2-level PAM (2-PAM), 4-level PAM (4-PAM) and 8-level PAM (8-PAM), where the number of levels indicates the number of voltage or current levels available for encoding data or control information. The communications link 220 may comprise multiple individual data links 222, 224 and 226. One communications link 226 may include bidirectional connectors, and may operate in time division, half-duplex, full-duplex, or other modes. One or more communications links 222 and 224 may comprise unidirectional connectors. The communications link 220 may be asymmetrically configured, providing higher bandwidth in one direction and/or between different IC devices 202, 230. In one example, a first communications link 222 between two devices may be referred to as a forward link 222 while a second communications link 224 between the two devices may be referred to as a reverse link 224. In another example, a first IC device 202 may be designated as a host, manager, master and/or transmitter, while one or more other IC devices 230 may be designated as a client, slave and/or receiver, even if both IC devices 202 and 230 are configured to transmit and receive on the communications link 222. The IC devices 202 and 230 may each comprise or cooperate with a general-purpose processor or other processing and/or computing circuit or device 206, 236 adapted to cooperate with various circuits and modules in order to perform certain functions disclosed herein. The IC devices 202, 230 may perform different functions and/or support different operational aspects of the apparatus 200. A plurality of IC devices, including the devices 202 and 230 may include modems, transceivers, display controllers, user interface devices, memory devices, processing devices, and so on. In one example, the first IC device 202 may perform core functions of the apparatus 200, including maintaining wireless communications through a wireless transceiver 204 and an antenna 214, while the second IC device 230 may support a user interface that manages or operates a display controller 232, and may control operations of a camera or video input device using a camera controller 234. Other features supported by one or more of the IC devices 202 and 230 may include a keyboard, a voice-recognition component, and other input or output devices. Display controller 232 may comprise circuits and software drivers that support displays such as a liquid crystal display (LCD) panel, touch-screen display, indicators and so on. The storage media 208 and 238 may comprise transitory and/or non-transitory storage devices adapted to maintain instructions and data used by the respective processors 206 and 236, and/or other components of the IC devices 202 and 230. The storage media 208 and 238 may include or cooperate with DRAM devices and other devices provided as one of the IC devices and/or externally of the IC devices 202, 230 and connected using the communications link 220. Communication between each processor 206, 236 and corresponding internal, external and/or collocated storage media 208 and 238 and other modules and circuits may be facilitated by a bus 212, 242. Communication between each processor 206, 236 and its corresponding external storage media 208 and 238 and other modules and circuits may be facilitated by one or more communications links 222, 224, 226. Certain aspects disclosed herein are applicable to both the busses 212, 242 and the communications link 220. The communication link 220 and/or the busses 212, 242 may be operated to communicate control, command and other information between the first IC device 202 and the second IC device 230 in accordance with an industry or other standard. Industry standards may be application specific. According to certain aspects disclosed herein, a data inversion (DI) encoding technique may be employed to conserve power in binary signaling topologies involving the parallel transmission of n-bit data. In one example, DI encoding may be applied to reduce the number of transmitted non-zero multi-bit symbols (‘11’, ‘10’, or ‘01’) in a 4-PAM binary signaling topology. In some instances, such as in ground-referenced, terminated, single-ended communications data links, data inversion can be limited to symbols in which a primary bit is set to logic ‘1’ (e.g. ‘11’ or ‘10’ when the primary bit is the MSB to optimize power savings with minimal hardware complexity when the primary bit controls the higher levels of current or voltage. The primary bit may be a bit of a multi-bit symbol that has one or more signaling states that draw more power than the corresponding signaling states of other bits of the multi-bit symbol. In some examples, the primary bit may be the MSB or the LSB of the multi-bit symbol. The secondary bit may be the LSB when the primary bit is the MSB. The secondary bit may be the MSB when the primary bit is the LSB. The secondary bit may be another bit in the multi-bit symbol. In some instances, the secondary bit may have signaling states that draw more power than the corresponding signaling states in other, remaining bits in the multi-bit symbol (i.e. other than the primary bit). An encoding indicator 314, which may also be referred to as an inversion flag or DI signal, may be transmitted to the decoder 312 using a line driver 308 to drive one connector of the physical bus 310. The encoding indicator 314 may indicate when parallel data transmitted through line drivers 306 The effectiveness of the DI encoding scheme may be evaluated by calculating the totals 408 of logic state ‘1’s on the data lines of the bus 310. In the eight bytes of the raw data 402, a total of 31 logic ‘1’ states occur and, after inversion, a total of 17 logic ‘1’ states occur in the DI data 412. However, the savings in power consumption is offset by the total of logic ‘1’s transmitted in the DI signal 410. In the example, 5 logic ‘1’s are transmitted in the DI signal 410 and the reduction in logic state ‘1’s obtained by transmitting DI data 412 is 9 transmitted states, calculated as the difference between the number of logic ‘1’s in the raw data 402 and the combined number of logic ‘1’s in the DI data 412 and the DI signal 410. The reduction in power consumption may have a direct relationship with the number of transmitted logic ‘1’s. In some data encoding schemes, however, certain bits may be associated with greater power levels than other bits and variations of the DI encoding scheme may produce significant power reductions with limited increases in hardware complexity. According to certain aspects disclosed herein, a modified DI encoding scheme may be employed with multi-level data encoding. Data may be encoded in two bits, each bit controlling the state of one of the two switches 504, 506. In one example, each switch 504, 506 may be in an open state when its control bit is set to logic ‘1’ and in a closed state when its control bit is set to logic‘0’. In another example, each switch 504, 506 may be in a closed state when its control bit is set to logic ‘1’ and in an open state when its control bit is set to logic ‘0’. In the closed state, each switch 504, 506 enables current from an associated current source 514, 516 to flow through the transmission line 510 and termination resistance 512. A first current source 504 produces less current than a second current source 506. One switch 506 may be controlled by the primary bit because it causes a greater current level to flow (from the second current source 516) through the transmission line 510 when closed than the current level caused when the other secondary bit switch 504 is closed. Current flow in the transmission line 510 and termination resistance 512 determines the voltage level of the received signal 518 at a receiver. In the example depicted, the first current source 514 may source or sink a unit of current when connected to a load impedance while the second current source 516 sources or sinks two units of current when connected to the load impedance. The amperage corresponding to the unit of current may be determined by the application. The switches 508 may select between four current levels, including 0 units, 1 unit, 2 units and 3 units. For the purposes of this description, the first current source 514 may be used to encode a secondary bit of a multi-bit data symbol, while the second current source 516 may used to encode the primary bit of the multi-bit data symbol. In some instances, the voltage differences or current levels in a multi-state signal may not be uniform. In other words, the current sources may not be binary weighted or exact multiples of one another. The load impedance may include the combined resistance of the transmission line 510 and the terminating resistance 512, where the terminating resistance may include a resistor connected at the receiving end of a wire that may conduct current provided by the first current source 504 and the second current source 506. The voltage (Vout) of an output signal 514 at the receiver may be determined as the product of the current (Istate) flowing in the terminating resistor and the resistance (Rterm) of the terminating resistor. It will be appreciated that, in a 4-PAM configuration, a communications link consumes different amounts of power at each signal level 522, 524, 526 and 528. In a simple case where the terminating resistance 512 dissipates all or substantially all of the power consumed by the driver circuit 502, the power for each state may be calculated as (Istate)2×(Rterm). Nominally, no power is consumed for zero-state 2-bit data symbols and power consumed by the communications link increases with current flow because the currents associated with the primary bit and the secondary bit of the 2-bit data symbol are summed across the termination resistance 512 to produce the appropriate signal level. Accordingly, significantly greater power reductions may be obtained from inverting the primary bit of the 2-bit data symbol than the secondary bit of the 2-bit data symbol. The encoder 604 may be configured to implement a modified DI scheme in which fewer than all of the inputs are subject to inversion. In the simplified example of The multi-level encoding indicator signal 716 may encode the secondary bit encoding indicator 706 Other encoding indicator encoding schemes may be used based on the type of data transmitted and/or characteristics of the data that may affect the frequency of occurrence of ‘1’s or ‘0’s in the secondary bit 702 The average power consumption of an 8-bit parallel bus can be reduced by over 21.1% for a 4-PAM signal when DI is applied to the primary bit. When DI is used with both the primary bit and the secondary bit in 2-bit data symbols, reduction in power consumption for the 8-bit parallel bus can be reduced by more than 29.1%. In some configurations, a simple binary data encoding indicator may be employed for a primary bit inversion. In some instances, a trade-off is applied to balance the increased power consumption that may be experienced by a receiver when multi-level signaling is used. For example, the receiver power consumption may increase by a factor of 50% in a 4-PAM topology, although the receiver consumes only a small fraction of the overall signaling power. According to certain aspects disclosed herein, signaling power associated with a communications link may be further reduced by selectively swapping primary bit and secondary bit bits during encoding. The number of logic ‘1’s in the primary bits 902 If the output of the first comparator 908 indicates that the sum of the logic ‘1’ primary bits 902 If the output of first comparator 908 indicates that the sum of the logic ‘1’ primary bits 902 When the output primary bits 930 When DI encoding is performed 1020 without swapping primary bits 902 The encoding indicator signal 932 provides information that indicates to a receiver whether the primary bits 902 According to the multi-level encoding scheme illustrated in A DI+BS encoding circuit, such as the circuit 900 shown in Control logic 1218 may be configured to provide control signals 1220, 1222 and 1224 that determine whether the secondary bits 1206 In one example, the control logic 1218 may provide a primary bit inversion control signal 1220 that controls primary bit inversion logic 1208 Accordingly, a two-bit raw symbol may have values 00, 01, 10 or 11 that are encoded as 0, 1, 2 or 3 units of voltage or current respectively. Thus, for example, a portion of the sequence of raw data 1302 may include a sequence of states 1304 The sequence of raw encoded data 1302 may be processed by the DI+BS circuitry 900 to produce DI+BS data 1312 according to certain aspects described herein. The DI+BS data 1312 may then be used to encode corresponding transmission lines. The total number of units of current or voltage 1318 expended for the depicted example is 74 units, including the number of units (14) needed to encode a transmission line carrying an encoding indicator signal 1310. In the depicted example, a 41.2% power reduction is obtained through the use of DI+BS encoding. For example, the graph 1500 highlights an example (indicated generally at 1508) of percentage power savings for an 8-bit bus. In this example 1508, the DI primary bit encoding scheme 1502 produces a 22.1% power savings, the DI 2-level primary bit and secondary bit inversion encoding scheme 1504 produces an 29.1% power savings, while the primary bit/secondary bit inversion/swap encoding scheme 1506 produces a 30.9% power savings. The principles illustrated in At step 1604, the device may generate transmission symbols from the plurality of input data symbols. The primary bits of the transmission symbols may be derived from the secondary bits of the plurality of input data symbols when the second fraction is greater than a half and greater than the first fraction. The secondary bits of the transmission symbols may be derived from the primary bits of the plurality of input data symbols when the second fraction is greater than a half and greater than the first fraction. Transmission symbols may be generated from the plurality of input data symbols by inverting the primary bits of the input data symbols when the first fraction is greater than a half. Transmission symbols may be generated from the plurality of input data symbols by inverting the secondary bits of the input data symbols when the second fraction is greater than a half. Transmission symbols may be generated from the plurality of input data symbols by inverting the primary bits of the transmission symbols when the first fraction is greater than a half or the second fraction is greater than a half. At step 1606, the device may provide the transmission symbols to one or more multi-state encoders configured to encode the transmission symbols as multi-level transmission symbols for transmission on a communications link. In an aspect of the disclosure, a sequence of the transmission symbols may be transmitted on a connector of the communications link. The transmission symbols may be transmitted in parallel on the communications link. In an aspect of the disclosure, an encoding indicator signal may be provided to one of the multi-state encoders to obtain a multi-level encoding indicator signal indicating whether the primary bits of the transmission symbols correspond to the secondary bits of the input data symbols and whether the secondary bits of the transmission symbols correspond to the primary bits of the input data symbols. In an aspect of the disclosure, the multi-level encoding indicator signal and the multi-level transmission symbols may be transmitted in parallel in one transmission clock cycle on the communications link. The multi-level encoding indicator signal may indicate whether the primary bits of the transmission symbols are inverted. The multi-level encoding indicator signal may indicate whether the secondary bits of the transmission symbols are inverted. The one or more multi-state encoders may encode each of the transmission symbols as one of at least three voltage or current levels. The one or more multi-state encoders may encode each of the transmission symbols for transmission on a pulse amplitude modulated communications link. The processor 1716 may include a microprocessor, a controller, a digital signal processor, a sequencer, a state machine, etc. The processor 1716 is responsible for general processing, including the execution of software stored on the computer-readable storage medium 1716. The software, when executed by the processor 1716, causes the processing circuit 1702 to perform the various functions described supra for any particular apparatus. The computer-readable storage medium 1718 may also be used for storing data that is manipulated by the processor 1716 when executing software. The processing circuit 1702 further includes at least one of the modules 1704, 1706, 1708 and 1710. The modules 1704, 1706, 1708 and/or 1710 may include one or more software modules running in the processor 1716, resident/stored in the computer readable storage medium 1718, one or more hardware modules coupled to the processor 1716, or some combination thereof. In one configuration, the apparatus 1700 for wireless communication includes a module or circuit 1704 for determining a first fraction corresponding to a proportion of primary bits of a plurality of input data symbols that are in a first logic state and a second fraction corresponding to a proportion of secondary bits of the plurality of input data symbols that are in the first logic state, a module or circuit 1706, 1708 for generating transmission symbols from the plurality of input data symbols for transmission on the communications link 1714, a module or circuit 1712 for encoding the transmission symbols for transmission on a multi-state encoded communications link 1714, a module or circuit for generating an inversion encoding indicator as a multi-level transmission symbol to be transmitted on a communications link indicating whether the primary bits and/or secondary bits are inverted and/or swapped. The aforementioned means may be implemented, for example, using some combination of a processor 206 or 236, physical layer drivers 210 or 240 and storage media 208 and 238. It is understood that the specific order or hierarchy of steps in the processes disclosed is an illustration of exemplary approaches. Based upon design preferences, it is understood that the specific order or hierarchy of steps in the processes may be rearranged. The accompanying method claims present elements of the various steps in a sample order, and are not meant to be limited to the specific order or hierarchy presented. At step 1804, the device may selectively invert a primary bit of data symbols decoded from one or more signals received from the communications link based on a first of the plurality of control signals. The one or more signals may include 4-level PAM signals. At step 1806, the device may selectively invert a secondary bit of the data symbols based on a second of the plurality of control signals. At step 1808, the device may selectively swap the primary bit and the secondary bit based on a third of the plurality of control signals. More power may be required to transmit a primary bit or secondary bit in first logic state than in a second logic state. The first logic state and the second logic state may correspond to different boolean logic levels. Swapping the primary bit and the secondary bit may include providing a version of the primary bit of each symbol decoded from the one or more signals as a secondary bit of an output symbol, and providing a version of the secondary bit of each symbol decoded from the one or more signals as a primary bit of the output symbol. The processor 1916 may include a microprocessor, a controller, a digital signal processor, a sequencer, a state machine, etc. The processor 1916 is responsible for general processing, including the execution of software stored on the computer-readable storage medium 1916. The software, when executed by the processor 1916, causes the processing circuit 1902 to perform the various functions described supra for any particular apparatus. The computer-readable storage medium 1918 may also be used for storing data that is manipulated by the processor 1916 when executing software. The processing circuit 1902 further includes at least one of the modules 1904, 1906 and 1908. The modules 1904, 1906 and/or 1908 may include one or more software modules running in the processor 1916, resident/stored in the computer readable storage medium 1918, one or more hardware modules coupled to the processor 1916, or some combination thereof. In one configuration, the apparatus 1900 for wireless communication includes means 1904 for decoding a multi-level encoding indicator signal received from a communications link 1914 and configured to provide a plurality of control signals, means 1906 for inverting primary bits and/or secondary bits of data symbols decoded from one or more signals received from the communications link 1914 based on a first and/or second of the plurality of control signals, and means 1908 for swapping the primary bits and the secondary bits based on a third of the plurality of control signals. The aforementioned means may be implemented, for example, using some combination of a processor 206 or 236, physical layer drivers 210 or 240 and storage media 208 and 238. It is understood that the specific order or hierarchy of steps in the processes disclosed is an illustration of exemplary approaches. Based upon design preferences, it is understood that the specific order or hierarchy of steps in the processes may be rearranged. The accompanying method claims present elements of the various steps in a sample order, and are not meant to be limited to the specific order or hierarchy presented. The previous description is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects. Thus, the claims are not intended to be limited to the aspects shown herein, but is to be accorded the full scope consistent with the language claims, wherein reference to an element in the singular is not intended to mean “one and only one” unless specifically so stated, but rather “one or more.” Unless specifically stated otherwise, the term “some” refers to one or more. All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims. No claim element is to be construed as a means plus function unless the element is expressly recited using the phrase “means for.” System, methods and apparatus are described that reduce the power consumed by a multi-level encoded communications link. In one example, different logic states of a 4-level pulse amplitude modulation encoded transmission consume greater power than other logic states. The fraction of primary bits in a first logic state in multi-bit data symbols may determine whether the primary bits are inverted prior to transmission. The fraction of secondary bits in the first logic state in the multi-bit data symbols may determine whether the secondary bits are inverted prior to transmission. The primary bits may be swapped with the secondary bits is more secondary bits are in the first logic state than primary bits in the first logic state. 1. A data communications method, comprising:
determining a first fraction corresponding to a proportion of primary bits of a plurality of input data symbols that are in a first logic state and a second fraction corresponding to a proportion of secondary bits of the plurality of input data symbols that are in the first logic state, wherein more power is required to transmit a primary bit in the first logic state than to transmit a secondary bit in the first logic state; generating transmission symbols from the plurality of input data symbols, wherein primary bits of the transmission symbols are derived from the secondary bits of the plurality of input data symbols and secondary bits of the transmission symbols are derived from the primary bits of the plurality of input data symbols when the second fraction is greater than a half and greater than the first fraction; and providing the transmission symbols to one or more multi-state encoders configured to encode the transmission symbols as multi-level transmission symbols for transmission on a communications link. 2. The method of inverting the primary bits of the input data symbols when the first fraction is greater than a half; and inverting the secondary bits of the input data symbols when the second fraction is greater than a half. 3. The method of inverting the primary bits of the transmission symbols when the first fraction is greater than a half or the second fraction is greater than a half. 4. The method of 5. The method of transmitting a sequence of the transmission symbols on a connector of the communications link. 6. The method of transmitting the transmission symbols in parallel on the communications link. 7. The method of providing an encoding indicator signal to one of the one or more multi-state encoders to obtain a multi-level encoding indicator signal indicating whether the primary bits of the transmission symbols correspond to the secondary bits of the input data symbols and the secondary bits of the transmission symbols correspond to the primary bits of the input data symbols. 8. The method of transmitting the multi-level encoding indicator signal and the multi-level transmission symbols in parallel in one transmission clock cycle on the communications link. 9. The method of 10. The method of 11. The method of 12. The method of 13. An apparatus, comprising:
means for determining a first fraction corresponding to a proportion of primary bits of a plurality of input data symbols that are in a first logic state and a second fraction corresponding to a proportion of secondary bits of the plurality of input data symbols that are in the first logic state, wherein more power is required to transmit a primary bit in the first logic state than to transmit a secondary bit in the first logic state; means for generating transmission symbols from the plurality of input data symbols, wherein primary bits of the transmission symbols are derived from the secondary bits of the plurality of input data symbols and secondary bits of the transmission symbols are derived from the primary bits of the plurality of input data symbols when the second fraction is greater than a half and greater than the first fraction; and means for providing the transmission symbols to one or more multi-state encoders configured to encode the transmission symbols as multi-level transmission symbols for transmission on a communications link. 14. The apparatus of invert the primary bits of the input data symbols when the first fraction is greater than a half; and invert the secondary bits of the input data symbols when the second fraction is greater than a half. 15. The apparatus of invert the primary bits of the transmission symbols when the first fraction is greater than a half or the second fraction is greater than a half. 16. The apparatus of 17. The apparatus of means for transmitting a sequence of the transmission symbols on a connector of the communications link. 18. The apparatus of means for transmitting the transmission symbols in parallel on the communications link. 19. The apparatus of means for providing an encoding indicator signal to one of the one or more multi-state encoders to obtain a multi-level encoding indicator signal indicating whether the primary bits of the transmission symbols correspond to the secondary bits of the input data symbols and the secondary bits of the transmission symbols correspond to the primary bits of the input data symbols. 20. The apparatus of means for transmitting the multi-level encoding indicator signal and the multi-level transmission symbols in parallel in one transmission clock cycle on the communications link. 21. The apparatus of 22. The apparatus of 23. The apparatus of 24. The apparatus of 25. An apparatus, comprising:
one or more multi-state encoders configured to encode transmission symbols as multi-level transmission symbols for transmission on a pulse amplitude modulated communications link; a processing circuit configured to:
determine a first fraction corresponding to a proportion of primary bits of a plurality of input data symbols that are in a first logic state and a second fraction corresponding to a proportion of secondary bits of the plurality of input data symbols that are in the first logic state, wherein more power is required to transmit a primary bit in the first logic state than to transmit a secondary bit in the first logic state; generate the transmission symbols from the plurality of input data symbols, wherein primary bits of the transmission symbols are derived from the secondary bits of the plurality of input data symbols and secondary bits of the transmission symbols are derived from the primary bits of the plurality of input data symbols when the second fraction is greater than a half and greater than the first fraction; and provide the transmission symbols to the one or more multi-state encoders. 26. The apparatus of inverting the primary bits of the input data symbols when the first fraction is greater than a half; and inverting the secondary bits of the input data symbols when the second fraction is greater than a half. 27. The apparatus of inverting the primary bits of the transmission symbols when the first fraction is greater than a half or the second fraction is greater than a half. 28. The apparatus of 29. The apparatus of cause a sequence of the transmission symbols to be transmitted on a connector of the communications link. 30. The apparatus of cause the transmission symbols to be transmitted in parallel on the communications link. 31. The apparatus of provide an encoding indicator signal to one of the one or more multi-state encoders to obtain a multi-level encoding indicator signal indicating whether the primary bits of the transmission symbols correspond to the secondary bits of the input data symbols and the secondary bits of the transmission symbols correspond to the primary bits of the input data symbols. 32. The apparatus of cause the multi-level encoding indicator signal and the multi-level transmission symbols to be transmitted in parallel in one transmission clock cycle on the communications link. 33. The apparatus of 34. The apparatus of 35. The apparatus of 36. The apparatus of 37. A processor-readable storage medium having one or more instructions which, when executed by at least one processing circuit, cause the at least one processing circuit to:
determine a first fraction corresponding to a proportion of primary bits of a plurality of input data symbols that are in a first logic state and a second fraction corresponding to a proportion of secondary bits of the plurality of input data symbols that are in the first logic state, wherein more power is required to transmit a primary bit in the first logic state than to transmit a secondary bit in the first logic state; generate transmission symbols from the plurality of input data symbols, wherein primary bits of the transmission symbols are derived from the secondary bits of the plurality of input data symbols and secondary bits of the transmission symbols are derived from the primary bits of the plurality of input data symbols when the second fraction is greater than a half and greater than the first fraction; and provide the transmission symbols to one or more multi-state encoders configured to encode the transmission symbols as multi-level transmission symbols for transmission on a communications link. 38. The processor-readable storage medium of invert the primary bits of the transmission symbols when the first fraction is greater than a half or the second fraction is greater than a half. 39. The processor-readable storage medium of provide an encoding indicator signal to one of the one or more multi-state encoders to obtain a multi-level encoding indicator signal indicating whether the primary bits of the transmission symbols correspond to the secondary bits of the input data symbols and the secondary bits of the transmission symbols correspond to the primary bits of the input data symbols. 40. The processor-readable storage medium of 41. A method, comprising:
decoding a multi-level encoding indicator signal received from a communications link to provide a plurality of control signals; selectively inverting a primary bit of data symbols decoded from one or more signals received from the communications link based on a first of the plurality of control signals; selectively inverting a secondary bit of the data symbols based on a second of the plurality of control signals; and selectively swapping the primary bit and the secondary bit based on a third of the plurality of control signals, wherein more power is required to transmit a primary bit or a secondary bit in a first logic state than in a second logic state. 42. The method of providing a version of the primary bit of each symbol decoded from the one or more signals as a secondary bit of an output symbol; and providing a version of the secondary bit of each symbol decoded from the one or more signals as a primary bit of the output symbol. 43. The method of 44. The method of 45. An apparatus, comprising:
a multi-state decoder configured to decode a multi-level encoding indicator signal received from a communications link and to provide a plurality of control signals extracted from the encoding indicator signal; and a processing circuit configured to:
selectively invert a primary bit of data symbols decoded from one or more signals received from the communications link based on a first of the plurality of control signals; selectively invert a secondary bit of the data symbols based on a second of the plurality of control signals; and selectively swap the primary bit and the secondary bit based on a third of the plurality of control signals, wherein more power is required to transmit a primary bit or secondary bit in a first logic state than in a second logic state. 46. The apparatus of providing a version of a primary bit of each symbol decoded from the one or more signals as a secondary bit of an output symbol; and providing a version of a secondary bit of each symbol decoded from the one or more signals as a primary bit of the output symbol. 47. The apparatus of providing a version of the primary bit of each symbol decoded from the one or more signals as a secondary bit of an output symbol; and providing a version of the secondary bit of each symbol decoded from the one or more signals as a primary bit of the output symbol. 48. The apparatus of 49. The apparatus of BACKGROUND
SUMMARY
BRIEF DESCRIPTION OF THE DRAWINGS
DETAILED DESCRIPTION
1 1 3 Invert both bits 1206a, 1206b and swap 1 0 2 Invert primary bits 1206b and swap 0 1 1 Invert primary bits 1206b 0 0 0 No operation


















