WO2010050957A1 - Bit inversion for communication interface - Google Patents

Bit inversion for communication interface Download PDF

Info

Publication number
WO2010050957A1
WO2010050957A1 PCT/US2008/081853 US2008081853W WO2010050957A1 WO 2010050957 A1 WO2010050957 A1 WO 2010050957A1 US 2008081853 W US2008081853 W US 2008081853W WO 2010050957 A1 WO2010050957 A1 WO 2010050957A1
Authority
WO
WIPO (PCT)
Prior art keywords
bit inversion
communication packet
component
communication
identifier
Prior art date
Application number
PCT/US2008/081853
Other languages
French (fr)
Inventor
Siamak Tavallaei
Original Assignee
Hewlett-Packard Development Company, L.P.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett-Packard Development Company, L.P. filed Critical Hewlett-Packard Development Company, L.P.
Priority to KR1020117009958A priority Critical patent/KR101520141B1/en
Priority to EP08877873A priority patent/EP2351304A4/en
Priority to PCT/US2008/081853 priority patent/WO2010050957A1/en
Priority to US13/126,032 priority patent/US20110200059A1/en
Priority to JP2011534472A priority patent/JP5341198B2/en
Priority to CN2008801317897A priority patent/CN102204199A/en
Publication of WO2010050957A1 publication Critical patent/WO2010050957A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/38Synchronous or start-stop systems, e.g. for Baudot code
    • H04L25/40Transmitting circuits; Receiving circuits
    • H04L25/49Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level

Definitions

  • Selective data bit inversion can reduce power consumption in various circumstances. In general, the power consumption is reduced by reducing the occurrences of forcing a default voltage level to another state (either high or low). For example, selective bit inversion can be used to reduce the power consumption of storing data in volatile memory. Selective bit inversion can also be used to reduce power consumption of transmitting data over a communication interface.
  • bit inversion In order to correctly interpret inverted bits and/or restore the original data, it is necessary to provide notification regarding the occurrence of bit inversion. For example, a pin and corresponding logic can be added to electronic components in order to signal when bit inversion has occurred. Unfortunately, adding such a pin undesirably increases the cost of employing bit inversion techniques.
  • FIG. 1 A illustrates a system in accordance with various embodiments
  • Fig. 1 B illustrates another system in accordance with various embodiments
  • FIG. 2 illustrates a communication packet in accordance with various embodiments
  • FIG. 3A and 3B illustrate communication packet groups in accordance with various embodiments
  • Fig. 4 illustrates a method in accordance with various embodiments
  • Fig. 5 illustrates a computer system in accordance with various embodiments.
  • system refers to a collection of two or more hardware and/or software components, and may be used to refer to an electronic device or devices or a sub-system thereof.
  • software includes any executable code capable of running on a processor, regardless of the media used to store the software.
  • code stored in non-volatile memory and sometimes referred to as “embedded firmware,” is included within the definition of software.
  • a communication packet includes a bit inversion indicator associated with inverted bits of the communication packet and/or inverted bits of at least one subsequent communication packet.
  • Components receiving the communication packets are configured to check for the bit inversion indicator (in a predetermined location of a communication packet) and to handle inverted bits accordingly.
  • Fig. 1 A illustrates a system 100A in accordance with embodiments.
  • a first component 120 couples to a second component 140 via a communication interface 130.
  • the first component 120 is a processor and the second component 140 is a dynamic random access memory (DRAM).
  • the first component 120 is a transmitter (or transceiver) and the second component 140 is a receiver (or transceiver).
  • first and second component groups include, but are not limited to, a memory controller paired with a memory device, an input/output (I/O) bus controller paired with an I/O device, a link initiator paired with an end-device, and a link responder paired with a link initiator.
  • the first component 120 comprises communication packet logic 124 and bit inversion logic 128.
  • the communication packet logic 124 prepares communication packets to be transmitted from the first component 120 to the second component 140.
  • communication packets may correspond to write packets.
  • bit inversion logic 128 receives the communication packets (or information regarding the communication packets) and determines if bit inversion is appropriate. For example, bit inversion appropriateness may be based on whether bit inversion reduces power consumption, enhances signal integrity, increases security and/or reduces error probability. If bit inversion is not appropriate, communication packets are transmitted from the first component 120 to the second component 140 without inversion of bits and without a bit inversion indicator. Alternatively, the communication packets could be transmitted with a bit inversion indicator that signals bit inversion is not being used.
  • bit inversion logic 128 modifies communication packets by inverting bits or directs the communication packet logic 124 to modify communication packets by inverting bits based on a predetermined algorithm. Embodiments are not limited to any particular bit inversion algorithm as there are many algorithms now known, or that may later be developed, that could be used.
  • the bit inversion logic 128 also causes corresponding bit inversion indicators to be included within communication packets. For example, in some embodiments, each communication packet having inverted bits may include its own bit inversion indicator. Additionally or alternatively, a communication packet may include a bit inversion indicator for at least one subsequent communication packet.
  • the second component 140 comprises packet interpretation logic 142 to support interpretation and handling of communication packets received via the communication interface 130.
  • the packet interpretation logic 142 checks received communication packets for the existence and/or value of bit inversion indicators. Upon detecting the existence of a bit inversion indicator, the packet interpretation logic 142 operates to interpret and/or restore the corresponding inverted bits based on the bit inversion algorithm being used. Alternatively, upon detecting a predetermined bit inversion indicator value, the packet interpretation logic 142 operates to interpret and/or restore the corresponding inverted bits based on the bit inversion algorithm being used.
  • Fig. 1 B illustrates another system 100B in accordance with embodiments.
  • the communication packet logic 124 comprises a pipeline 126.
  • the process of preparing and transmitting communication packets involves several processing stages.
  • the bit inversion logic 128 receives communication packets (or information regarding the communication packets) that will not be transmitted until several cycles have passed. Accordingly, the bit inversion logic 128 can determine if bit inversion is appropriate for pending communication packets in the pipeline. As an example, if the pipeline 126 has ten stages, the bit inversion logic 128 can determine if bit inversion is appropriate for up to a threshold number (ten being the highest possible amount in this example) of communication packets in the pipeline.
  • a threshold number ten being the highest possible amount in this example
  • bit inversion logic 128 modifies communication packets by inverting bits or directs the communication packet logic 124 to modify communication packets by inverting bits.
  • the bit inversion logic 128 also causes corresponding bit inversion indicators to be included within communication packets.
  • each communication packet may have its own bit inversion indicator and/or a bit inversion indicator for at least one subsequent communication packet.
  • Fig. 2 illustrates a communication packet 200A in accordance with embodiments.
  • the communication packet 200A comprises a first section 202 having non-inverted bits and a second section 204 having inverted bits (represented by diagonal stripes).
  • the first section 202 comprises a bit inversion indicator 206 associated with the second section 204.
  • the bit inversion indicator 206 is used to signal that the second section 204 has inverted bits.
  • the first section 202 corresponds to at least part of a command field of the communication packet 200A.
  • the command field may indicate a write operation, a management operation, a snoop operation, a directory update operation, or other commands.
  • the second section 204 corresponds to part of a command field, a data field and/or an address field.
  • the second section 204 may be any section that follows the bit inversion indicator 206 and that allows sufficient time for the second component 140 to interpret the bit inversion indicator 206 and to configure itself to handle inverted bits rather than non-inverted bits.
  • Fig. 3A illustrates a communication packet group 300A in accordance with embodiments. In Fig.
  • the communication packet group 300A comprises the communication packet 200A followed by at least one subsequent communication packet 200B.
  • at least one subsequent communication packet 200B has inverted bits signaled by the bit inversion indicator 206 of the communication packet 200A.
  • the subsequent communication packet 200B may comprise a first section 202B having non- inverted bits and a second section 204B having inverted bits.
  • other subsequent communication packet embodiments may vary. For example, some subsequent communication packets may have no inverted bits or all inverted bits. Also, the placement of inverted bits may vary ⁇ e.g., the first section 202B may have inverted bits and the second section 204B may have non-inverted bits).
  • bit inversion signaling should be minimized to facilitate processing requirements and/or placement of the bit inversion indicator 206 into communication packets.
  • many communication protocols do not currently use all the bits in the command field and/or define special use bits that are not often used.
  • Such bits can be used as the bit inversion indicator 206.
  • the location of the bit inversion indicator 206 within the first section 202 corresponds to the available bit(s) that are not being used.
  • bit inversion signaling can be simple or complex. A simple example of bit inversion signaling could employ a single bit.
  • bit inversion signaling may employ four bits (bits 0-3).
  • bit 0 signals the existence (or not) of bit inversion and bits 1 -3 signal which of three communication packets have inverted bits ⁇ e.g., the current communication packet and two subsequent communication packets) in a predetermined section ⁇ e.g., a data field).
  • bit 0 signals the existence of bit inversion and bits 1 -3 signal which predetermined fields ⁇ e.g., part of a command field, an address field, or a data field) of a communication packet are inverted.
  • predetermined fields ⁇ e.g., part of a command field, an address field, or a data field
  • bit inversion indicator e.g., bit 0
  • bit 1 -3 signal which predetermined fields ⁇ e.g., part of a command field, an address field, or a data field
  • bit 1 -3 signals the existence of bit inversion
  • bits 1 -3 which predetermined fields ⁇ e.g., part of a command field, an address field, or a data field
  • At least one subsequent communication packet 200B has inverted bits signaled by the bit inversion indicator 206 of the communication packet 200C.
  • the subsequent communication packet 200B may have a first section 202B with non-inverted bits and a second section 204B with inverted bits.
  • Bit inversion signaling also may vary and may be based on available bits in a command field as previously discussed for Fig. 3A.
  • the selective bit inversion may be used to reduce power consumption of transmitting data over the communication interface 130 by reducing the occurrences of forcing a default voltage level of the communication interface 130 to another state (either high or low).
  • FIG. 4 illustrates a method 400 in accordance with embodiments.
  • the method 400 starts at block 402 and continues by selectively inverting bits of a communication packet for transmission over a communication interface (block 404).
  • an associated bit inversion identifier is provided in at least one of the communication packet and a previous communication packet and the method 400 ends at block 408.
  • providing the associated bit inversion identifier may comprise preparing a communication packet command field having the bit inversion identifier.
  • the method 400 may also comprise determining if a length of time needed for bit inversion signaling is less than a predetermined threshold and, if so, providing the associated bit inversion identifier in the communication packet having inverted bits. If the length of time needed for bit inversion signaling is greater than a predetermined threshold, the method 400 involves providing the associated bit inversion identifier in a previous communication packet.
  • the method 400 also may comprise analyzing information in a pipeline and determining whether to invert bits of the communication packet based on said information. In some cases, the method 400 involves analyzing information in a pipeline and determining to invert bits in a plurality of communication packets based on said information.
  • FIG. 5 illustrates a computer system 500 in accordance with embodiments.
  • the computer system 500 includes a processor 502.
  • processor 502 may be at least one of a variety of processors such as, for example, a microprocessor, a microcontroller, a central processor unit (CPU), a main processing unit (MPU), a digital signal processor (DSP), an advanced reduced instruction set computing (RISC) machine, an (ARM) processor, etc.
  • the processor 502 executes coded instructions which may be present in a main memory of the processor 502 ⁇ e.g., within random-access memory (RAM) 508) and/or within an on-board memory of the processor 502.
  • RAM 508 may be correspond to dynamic RAM (DRAM), synchronous dynamic RAM (SDRAM), and/or any other type of RAM device.
  • the processor 502 also communicates with a secondary storage 504 and a read-only memory (ROM) 506 as needed.
  • ROM read-only memory
  • the processor 502 couples to an input/output (I/O) interface 510 and a network interface 512.
  • I/O input/output
  • the I/O interface 510 can be used to interface with devices such as a keyboard, a touchpad, buttons, a keypad, switches, dials, a mouse, a track-ball, a card reader, a liquid crystal display (LCD), a printer, a touch screen display, a light-emitting diode (LED), or other devices.
  • the network interface 512 may support medium access controller (MAC) layer functions and physical (PHY) layer functions.
  • MAC medium access controller
  • PHY physical
  • the secondary storage 504 is typically comprised of one or more disk drives or tape drives and is used for non-volatile storage of data and as an overflow data storage device if RAM 508 is not large enough to hold all working data. Secondary storage 504 may be used to store programs that are loaded into RAM 508 when such programs are selected for execution.
  • the ROM 506 is used to store instructions and perhaps data that are read during program execution. ROM 506 is a non-volatile memory device that typically has a small memory capacity relative to the larger memory capacity of secondary storage 504.
  • the RAM 508 is used to store volatile data and perhaps to store instructions. Access to both ROM 506 and RAM 508 is typically faster than to secondary storage 504.
  • the computer system 500 implements at least one component of Fig. 1 ⁇ e.g., the first component 120, the second component 140, or both).
  • the first component 120 of Fig. 1 may be representative of the processor 502 and the second component 140 of Fig. 1 may be representative of RAM 508.
  • the first component 120 and second component 140 of Fig. 1 are representative of a transmitter, receiver, transceiver, or other PHY layer components of the network interface 512.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

In accordance with embodiments, a system includes a first component and a second component. The system also includes a communication interface between the first and second components. A communication packet transmitted from the first component to the second component comprises a bit inversion identifier.

Description

BIT INVERSION FOR COMMUNCIATION INTERFACE
BACKGROUND
[0001] Selective data bit inversion can reduce power consumption in various circumstances. In general, the power consumption is reduced by reducing the occurrences of forcing a default voltage level to another state (either high or low). For example, selective bit inversion can be used to reduce the power consumption of storing data in volatile memory. Selective bit inversion can also be used to reduce power consumption of transmitting data over a communication interface.
[0002] In order to correctly interpret inverted bits and/or restore the original data, it is necessary to provide notification regarding the occurrence of bit inversion. For example, a pin and corresponding logic can be added to electronic components in order to signal when bit inversion has occurred. Unfortunately, adding such a pin undesirably increases the cost of employing bit inversion techniques.
BRIEF DESCRIPTION OF THE DRAWINGS
[0003] For a detailed description of exemplary embodiments of the invention, reference will now be made to the accompanying drawings in which: [0004] Fig. 1 A illustrates a system in accordance with various embodiments; [0005] Fig. 1 B illustrates another system in accordance with various embodiments;
[0006] Fig. 2 illustrates a communication packet in accordance with various embodiments;
[0007] Figs. 3A and 3B illustrate communication packet groups in accordance with various embodiments; [0008] Fig. 4 illustrates a method in accordance with various embodiments; and [0009] Fig. 5 illustrates a computer system in accordance with various embodiments.
NOTATION AND NOMENCLATURE
[0010] Certain terms are used throughout the following description and claims to refer to particular system components. As one skilled in the art will appreciate, computer companies may refer to a component by different names. This document does not intend to distinguish between components that differ in name but not function. In the following discussion and in the claims, the terms "including" and "comprising" are used in an open-ended fashion, and thus should be interpreted to mean "including, but not limited to... ." Also, the term "couple" or "couples" is intended to mean either an indirect, direct, optical or wireless electrical connection. Thus, if a first device couples to a second device, that connection may be through a direct electrical connection, through an indirect electrical connection via other devices and connections, through an optical electrical connection, or through a wireless electrical connection. The term "system" refers to a collection of two or more hardware and/or software components, and may be used to refer to an electronic device or devices or a sub-system thereof. Further, the term "software" includes any executable code capable of running on a processor, regardless of the media used to store the software. Thus, code stored in non-volatile memory, and sometimes referred to as "embedded firmware," is included within the definition of software.
DETAILED DESCRIPTION
[0011] The following discussion is directed to various embodiments of the invention. Although one or more of these embodiments may be preferred, the embodiments disclosed should not be interpreted, or otherwise used, as limiting the scope of the disclosure, including the claims. In addition, one skilled in the art will understand that the following description has broad application, and the discussion of any embodiment is meant only to be exemplary of that embodiment, and not intended to intimate that the scope of the disclosure, including the claims, is limited to that embodiment. [0012] Embodiments disclosed herein are directed to methods and systems for bit inversion. In at least some embodiments, a communication packet includes a bit inversion indicator associated with inverted bits of the communication packet and/or inverted bits of at least one subsequent communication packet. Components receiving the communication packets are configured to check for the bit inversion indicator (in a predetermined location of a communication packet) and to handle inverted bits accordingly.
[0013] Fig. 1 A illustrates a system 100A in accordance with embodiments. In the system 100A, a first component 120 couples to a second component 140 via a communication interface 130. For example, in some embodiments, the first component 120 is a processor and the second component 140 is a dynamic random access memory (DRAM). In alternative embodiments, the first component 120 is a transmitter (or transceiver) and the second component 140 is a receiver (or transceiver). Other examples of first and second component groups include, but are not limited to, a memory controller paired with a memory device, an input/output (I/O) bus controller paired with an I/O device, a link initiator paired with an end-device, and a link responder paired with a link initiator. [0014] As shown, the first component 120 comprises communication packet logic 124 and bit inversion logic 128. The communication packet logic 124 prepares communication packets to be transmitted from the first component 120 to the second component 140. As an example, if the first component 120 corresponds to a processor and the second component 140 corresponds to DRAM, then communication packets may correspond to write packets. As another example, if the first component 120 corresponds to a transmitter and the second component 140 corresponds to a receiver, then communication packets may correspond to management or data inquiries, snoops, or directory updates. [0015] The bit inversion logic 128 receives the communication packets (or information regarding the communication packets) and determines if bit inversion is appropriate. For example, bit inversion appropriateness may be based on whether bit inversion reduces power consumption, enhances signal integrity, increases security and/or reduces error probability. If bit inversion is not appropriate, communication packets are transmitted from the first component 120 to the second component 140 without inversion of bits and without a bit inversion indicator. Alternatively, the communication packets could be transmitted with a bit inversion indicator that signals bit inversion is not being used. [0016] If bit inversion is appropriate, the bit inversion logic 128 modifies communication packets by inverting bits or directs the communication packet logic 124 to modify communication packets by inverting bits based on a predetermined algorithm. Embodiments are not limited to any particular bit inversion algorithm as there are many algorithms now known, or that may later be developed, that could be used. The bit inversion logic 128 also causes corresponding bit inversion indicators to be included within communication packets. For example, in some embodiments, each communication packet having inverted bits may include its own bit inversion indicator. Additionally or alternatively, a communication packet may include a bit inversion indicator for at least one subsequent communication packet.
[0017] As shown, the second component 140 comprises packet interpretation logic 142 to support interpretation and handling of communication packets received via the communication interface 130. In accordance with embodiments, the packet interpretation logic 142 checks received communication packets for the existence and/or value of bit inversion indicators. Upon detecting the existence of a bit inversion indicator, the packet interpretation logic 142 operates to interpret and/or restore the corresponding inverted bits based on the bit inversion algorithm being used. Alternatively, upon detecting a predetermined bit inversion indicator value, the packet interpretation logic 142 operates to interpret and/or restore the corresponding inverted bits based on the bit inversion algorithm being used.
[0018] Fig. 1 B illustrates another system 100B in accordance with embodiments. In Fig. 1 B, the communication packet logic 124 comprises a pipeline 126. In other words, the process of preparing and transmitting communication packets involves several processing stages. By accessing the pipeline 126, the bit inversion logic 128 receives communication packets (or information regarding the communication packets) that will not be transmitted until several cycles have passed. Accordingly, the bit inversion logic 128 can determine if bit inversion is appropriate for pending communication packets in the pipeline. As an example, if the pipeline 126 has ten stages, the bit inversion logic 128 can determine if bit inversion is appropriate for up to a threshold number (ten being the highest possible amount in this example) of communication packets in the pipeline.
[0019] Again, if bit inversion is appropriate, the bit inversion logic 128 modifies communication packets by inverting bits or directs the communication packet logic 124 to modify communication packets by inverting bits. The bit inversion logic 128 also causes corresponding bit inversion indicators to be included within communication packets. As previously described, each communication packet may have its own bit inversion indicator and/or a bit inversion indicator for at least one subsequent communication packet.
[0020] Fig. 2 illustrates a communication packet 200A in accordance with embodiments. As shown, the communication packet 200A comprises a first section 202 having non-inverted bits and a second section 204 having inverted bits (represented by diagonal stripes). The first section 202 comprises a bit inversion indicator 206 associated with the second section 204. In other words, the bit inversion indicator 206 is used to signal that the second section 204 has inverted bits.
[0021] In at least some embodiments, the first section 202 corresponds to at least part of a command field of the communication packet 200A. For example, the command field may indicate a write operation, a management operation, a snoop operation, a directory update operation, or other commands. In such embodiments, the second section 204 corresponds to part of a command field, a data field and/or an address field. In general, the second section 204 may be any section that follows the bit inversion indicator 206 and that allows sufficient time for the second component 140 to interpret the bit inversion indicator 206 and to configure itself to handle inverted bits rather than non-inverted bits. [0022] Fig. 3A illustrates a communication packet group 300A in accordance with embodiments. In Fig. 3A, the communication packet group 300A comprises the communication packet 200A followed by at least one subsequent communication packet 200B. As shown, at least one subsequent communication packet 200B has inverted bits signaled by the bit inversion indicator 206 of the communication packet 200A. In accordance with embodiments, the subsequent communication packet 200B may comprise a first section 202B having non- inverted bits and a second section 204B having inverted bits. However, other subsequent communication packet embodiments may vary. For example, some subsequent communication packets may have no inverted bits or all inverted bits. Also, the placement of inverted bits may vary {e.g., the first section 202B may have inverted bits and the second section 204B may have non-inverted bits). [0023] In general, the complexity of bit inversion signaling should be minimized to facilitate processing requirements and/or placement of the bit inversion indicator 206 into communication packets. For example, many communication protocols do not currently use all the bits in the command field and/or define special use bits that are not often used. Such bits (individually or together) can be used as the bit inversion indicator 206. In these embodiments, the location of the bit inversion indicator 206 within the first section 202 corresponds to the available bit(s) that are not being used. Depending on the number of available bits in the command field and the amount of detail desired, bit inversion signaling can be simple or complex. A simple example of bit inversion signaling could employ a single bit. If the bit is asserted, a predetermined section of the same communication packet or a subsequent communication packet will be interpreted {e.g., by the second component 140) to have inverted bits. A complex example of bit inversion signaling may employ four bits (bits 0-3). As an example, bit 0 signals the existence (or not) of bit inversion and bits 1 -3 signal which of three communication packets have inverted bits {e.g., the current communication packet and two subsequent communication packets) in a predetermined section {e.g., a data field). As another example, bit 0 signals the existence of bit inversion and bits 1 -3 signal which predetermined fields {e.g., part of a command field, an address field, or a data field) of a communication packet are inverted. Other embodiments are possible as well without limitation to the number of bits being used or without limitation to the placement of bit inversion indicator. [0024] Fig. 3B illustrates a communication packet group 300B in accordance with embodiments. As shown, the communication packet group 300B comprises a communication packet 200C followed by at least one subsequent communication packet 200B. In Fig. 3B, the communication packet 200C comprises the bit inversion indicator 206, but does not have inverted bits. However, at least one subsequent communication packet 200B has inverted bits signaled by the bit inversion indicator 206 of the communication packet 200C. As previously discussed, embodiments of the subsequent communication packet 200B vary. As is shown, the subsequent communication packet 200B may have a first section 202B with non-inverted bits and a second section 204B with inverted bits. Bit inversion signaling also may vary and may be based on available bits in a command field as previously discussed for Fig. 3A. [0025] In accordance with embodiments, the selective bit inversion may be used to reduce power consumption of transmitting data over the communication interface 130 by reducing the occurrences of forcing a default voltage level of the communication interface 130 to another state (either high or low). Fig. 4 illustrates a method 400 in accordance with embodiments. As shown, the method 400 starts at block 402 and continues by selectively inverting bits of a communication packet for transmission over a communication interface (block 404). At block 406, an associated bit inversion identifier is provided in at least one of the communication packet and a previous communication packet and the method 400 ends at block 408. As an example, providing the associated bit inversion identifier (as in block 406) may comprise preparing a communication packet command field having the bit inversion identifier.
[0026] In accordance with some embodiments, the method 400 may also comprise determining if a length of time needed for bit inversion signaling is less than a predetermined threshold and, if so, providing the associated bit inversion identifier in the communication packet having inverted bits. If the length of time needed for bit inversion signaling is greater than a predetermined threshold, the method 400 involves providing the associated bit inversion identifier in a previous communication packet. The method 400 also may comprise analyzing information in a pipeline and determining whether to invert bits of the communication packet based on said information. In some cases, the method 400 involves analyzing information in a pipeline and determining to invert bits in a plurality of communication packets based on said information. In such case, the bit inversion identifier is associated with the plurality of communication packets. [0027] Without limitation to other embodiments, the components and methods described above may be implemented on a general-purpose computer or server. Figure 5 illustrates a computer system 500 in accordance with embodiments. The computer system 500 includes a processor 502. It should be appreciated that processor 502 may be at least one of a variety of processors such as, for example, a microprocessor, a microcontroller, a central processor unit (CPU), a main processing unit (MPU), a digital signal processor (DSP), an advanced reduced instruction set computing (RISC) machine, an (ARM) processor, etc. The processor 502 executes coded instructions which may be present in a main memory of the processor 502 {e.g., within random-access memory (RAM) 508) and/or within an on-board memory of the processor 502. RAM 508 may be correspond to dynamic RAM (DRAM), synchronous dynamic RAM (SDRAM), and/or any other type of RAM device. The processor 502 also communicates with a secondary storage 504 and a read-only memory (ROM) 506 as needed. [0028] To facilitate communication with other devices the processor 502 couples to an input/output (I/O) interface 510 and a network interface 512. As an example, the I/O interface 510 can be used to interface with devices such as a keyboard, a touchpad, buttons, a keypad, switches, dials, a mouse, a track-ball, a card reader, a liquid crystal display (LCD), a printer, a touch screen display, a light-emitting diode (LED), or other devices. Meanwhile, the network interface 512 may support medium access controller (MAC) layer functions and physical (PHY) layer functions. The network interface 512 supports wired and/or wireless communications.
[0029] The secondary storage 504 is typically comprised of one or more disk drives or tape drives and is used for non-volatile storage of data and as an overflow data storage device if RAM 508 is not large enough to hold all working data. Secondary storage 504 may be used to store programs that are loaded into RAM 508 when such programs are selected for execution. The ROM 506 is used to store instructions and perhaps data that are read during program execution. ROM 506 is a non-volatile memory device that typically has a small memory capacity relative to the larger memory capacity of secondary storage 504. The RAM 508 is used to store volatile data and perhaps to store instructions. Access to both ROM 506 and RAM 508 is typically faster than to secondary storage 504. [0030] In accordance with embodiments, the computer system 500 implements at least one component of Fig. 1 {e.g., the first component 120, the second component 140, or both). For example, the first component 120 of Fig. 1 may be representative of the processor 502 and the second component 140 of Fig. 1 may be representative of RAM 508. In alternative embodiments, the first component 120 and second component 140 of Fig. 1 are representative of a transmitter, receiver, transceiver, or other PHY layer components of the network interface 512.
[0031] The above discussion is meant to be illustrative of the principles and various embodiments of the present invention. Numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. It is intended that the following claims be interpreted to embrace all such variations and modifications.

Claims

CLAIMS What is claimed is:
1. A system, comprising: a first component; a second component; and a communication interface between the first and second components, wherein a communication packet transmitted from the first component to the second component comprises a bit inversion identifier.
2. The system of claim 1 wherein the bit inversion identifier is located in a first section of the communication packet and indicates bit inversion for a second section of the communication packet.
3. The system of claim 2 wherein the first section comprises a first part of a command field and the second section comprises a second part of the command field.
4. The system of claim 2 wherein the first section comprises a command field and the second section comprises at least one of an address field and a data field.
5. The system of claim 1 wherein the bit inversion identifier indicates bit inversion for at least one subsequent communication packet.
6. The system of claim 1 wherein the bit inversion identifier indicates bit inversion for at least part of the communication packet and at least one subsequent communication packet.
7. The system of claim 1 wherein the second component comprises Dynamic Random Access Memory (DRAM) and the communication packet comprises a write packet.
8. An apparatus, comprising: a receive component that is adapted to receive communication packets from a source component, wherein at least one communication packet with a bit inversion indicator is transmitted from the source component to the receive component, wherein the receive component is selectively configured to interpret a predetermined communication packet section as having inverted bits based on the bit inversion indicator.
9. The apparatus of claim 8 wherein the predetermined communication packet section is part of the communication packet with the bit inversion indicator.
10. A method, comprising: selectively inverting bits of a communication packet for transmission over a communication interface; and providing an associated bit inversion identifier in at least one of the communication packet and a previous communication packet.
1 1. The method of claim 10 wherein providing the associated bit inversion identifier comprises preparing a communication packet command field having the bit inversion identifier.
12. The method of claim 10 further comprising determining if a time period for bit inversion signaling is less than a predetermined threshold and, if so, providing the associated bit inversion identifier in the communication packet.
13. The method of claim 10 further comprising determining if a time period for bit inversion signaling is greater than a predetermined threshold and, if so, providing the associated bit inversion identifier in the previous communication packet within a pipeline.
14. The method of claim 10 further comprising analyzing information in a pipeline and determining whether to invert bits of the communication packet based on said information.
15. The method of claim 10 further comprising analyzing information in a pipeline and determining to invert bits in a plurality of communication packets based on said information, wherein said bit inversion identifier is associated with the plurality of communication packets.
PCT/US2008/081853 2008-10-30 2008-10-30 Bit inversion for communication interface WO2010050957A1 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020117009958A KR101520141B1 (en) 2008-10-30 2008-10-30 Bit inversion for communication interface
EP08877873A EP2351304A4 (en) 2008-10-30 2008-10-30 Bit inversion for communication interface
PCT/US2008/081853 WO2010050957A1 (en) 2008-10-30 2008-10-30 Bit inversion for communication interface
US13/126,032 US20110200059A1 (en) 2008-10-30 2008-10-30 BIT Inversion For Communication Interface
JP2011534472A JP5341198B2 (en) 2008-10-30 2008-10-30 Bit inversion in communication interface
CN2008801317897A CN102204199A (en) 2008-10-30 2008-10-30 Bit inversion for communication interface

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2008/081853 WO2010050957A1 (en) 2008-10-30 2008-10-30 Bit inversion for communication interface

Publications (1)

Publication Number Publication Date
WO2010050957A1 true WO2010050957A1 (en) 2010-05-06

Family

ID=42129112

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2008/081853 WO2010050957A1 (en) 2008-10-30 2008-10-30 Bit inversion for communication interface

Country Status (6)

Country Link
US (1) US20110200059A1 (en)
EP (1) EP2351304A4 (en)
JP (1) JP5341198B2 (en)
KR (1) KR101520141B1 (en)
CN (1) CN102204199A (en)
WO (1) WO2010050957A1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104115462B (en) * 2011-11-01 2018-05-08 英特尔公司 Method and apparatus for traffic indication map in wireless network
US9019896B2 (en) * 2012-04-23 2015-04-28 Qualcomm Incorporated Systems and methods for low overhead paging
KR102238176B1 (en) 2014-04-16 2021-04-12 삼성전자주식회사 Data communicating method for use in single wire protocol communication and therefore system
CN108337724A (en) * 2018-03-15 2018-07-27 浙江工业大学 Method for reducing transmitting energy consumption in passive reflection communication

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5617417A (en) * 1994-09-07 1997-04-01 Stratacom, Inc. Asynchronous transfer mode communication in inverse multiplexing over multiple communication links
US20010029580A1 (en) * 1996-07-02 2001-10-11 Moskowitz Scott A. Optimization methods for the insertion, protection, and detection of digital watermarks in digital data
US20050185442A1 (en) 2004-02-19 2005-08-25 Micron Technology, Inc. Memory device having terminals for transferring multiple types of data

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6342548A (en) * 1986-08-08 1988-02-23 Fuji Electric Co Ltd Optical transmission equipment
JPH03242026A (en) * 1990-02-20 1991-10-29 Nippon Telegr & Teleph Corp <Ntt> Dc suppression system, for code string
JPH04111259A (en) * 1990-08-31 1992-04-13 Sony Corp Information transmission equipment
JPH0983581A (en) * 1995-09-20 1997-03-28 Toshiba Corp Data transmission processor
JP3334121B2 (en) * 1996-08-30 2002-10-15 オムロン株式会社 Transceiver
US6535217B1 (en) * 1999-01-20 2003-03-18 Ati International Srl Integrated circuit for graphics processing including configurable display interface and method therefore
US20020159552A1 (en) * 2000-11-22 2002-10-31 Yeshik Shin Method and system for plesiosynchronous communications with null insertion and removal
JP2003249919A (en) * 2001-12-17 2003-09-05 Fujitsu Ltd Two-way communication method
US6898648B2 (en) * 2002-02-21 2005-05-24 Micron Technology, Inc. Memory bus polarity indicator system and method for reducing the affects of simultaneous switching outputs (SSO) on memory bus timing
JP2005033519A (en) * 2003-07-14 2005-02-03 Aica Kogyo Co Ltd Signal transmission system
US20070075838A1 (en) * 2005-10-04 2007-04-05 Symbol Technologies, Inc. Method and apparatus for avoiding radio frequency identification (RFID) tag response collisions
KR100845141B1 (en) * 2007-01-17 2008-07-10 삼성전자주식회사 Single rate interface device, dual rate interface device and dual rate interfacing method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5617417A (en) * 1994-09-07 1997-04-01 Stratacom, Inc. Asynchronous transfer mode communication in inverse multiplexing over multiple communication links
US20010029580A1 (en) * 1996-07-02 2001-10-11 Moskowitz Scott A. Optimization methods for the insertion, protection, and detection of digital watermarks in digital data
US20050185442A1 (en) 2004-02-19 2005-08-25 Micron Technology, Inc. Memory device having terminals for transferring multiple types of data

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2351304A4

Also Published As

Publication number Publication date
EP2351304A4 (en) 2012-12-05
KR101520141B1 (en) 2015-05-21
JP2012507927A (en) 2012-03-29
CN102204199A (en) 2011-09-28
EP2351304A1 (en) 2011-08-03
US20110200059A1 (en) 2011-08-18
JP5341198B2 (en) 2013-11-13
KR20110089129A (en) 2011-08-04

Similar Documents

Publication Publication Date Title
US20170286323A1 (en) Memory access protection apparatus and methods
US8171192B2 (en) Hardware-assisted device configuration detection
US7185148B2 (en) Read access and storage circuitry read allocation applicable to a cache
EP1723532B1 (en) Multiple burst protocol device controller
US20040093454A1 (en) USB endpoint controller flexible memory management
TW200842593A (en) Content-terminated DMA
US9128811B2 (en) Assigning addresses to devices on an interconnect
WO2016127600A1 (en) Exception handling method and apparatus
US20110200059A1 (en) BIT Inversion For Communication Interface
US10656952B2 (en) System on chip (SOC) and method for handling interrupts while executing multiple store instructions
JP3995883B2 (en) Memory protection system for multitasking systems
CN111427806A (en) Method for sharing serial port by dual-core AMP system, storage medium and intelligent terminal
CN115129509B (en) Data transmission method, device and medium
CN116089124A (en) Communication method, device and medium of simulation system
US20090204665A1 (en) System and methods for communicating between serial communications protocol enabled devices
US10832132B2 (en) Data transmission method and calculation apparatus for neural network, electronic apparatus, computer-readable storage medium and computer program product
US20050204185A1 (en) Detecting and identifying data loss
CN111490919A (en) Master-slave machine system, equipment terminal and communication verification method thereof
CN115617732B (en) APB bus structure, system on chip, vehicle and access method
US6526496B1 (en) Burst instruction alignment method apparatus and method therefor
CN112988638B (en) Keyboard interface multiplexing method and electronic equipment
CN115378756B (en) Monitoring Controller Area Network (CAN) XL node
CN113364564A (en) Data transmission method, microprocessor, data transmission device and storage medium
CN107741962B (en) Data caching method and server
CN116225409A (en) Cross-application object dragging method and device, terminal equipment and storage medium

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200880131789.7

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08877873

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2503/CHENP/2011

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 2011534472

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 13126032

Country of ref document: US

ENP Entry into the national phase

Ref document number: 20117009958

Country of ref document: KR

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

REEP Request for entry into the european phase

Ref document number: 2008877873

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2008877873

Country of ref document: EP