# US 12,117,960 B2 · Approximate data bus inversion technique for latency sensitive applications

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,117,960 B2
- Document ID: US12117960B2
- Status: Granted
- Kind: B2
- Application number: 17/029,288
- Filed: 2020-09-23
- Published: 2021-01-07
- Granted: 2024-10-15
- Earliest claimed: 2020-09-23
- Assignees: Intel Corporation
- Applicants: Intel Corporation
- Inventors: Narasimha Lanka; Lakshmipriya Seshan; Gerald S. Pasdast; Zuoguo Wu
- Web page: https://patentgrep.com/patent/US12117960B2

## CPC

- G06F 13/4291: {using a clocked protocol}
- G06F 13/4068: {Electrical coupling}
- G06F 13/423: {with synchronous protocol}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems, methods, and apparatuses associated with an approximate majority based data bus inversion technique are disclosed. A method comprises obtaining, at a first device connected by a plurality of lanes to a second device, original data comprising first bits and second bits, where the first bits are to be transmitted in a new clock cycle via first lanes of the plurality of lanes, and the second bits are to be transmitted in the new clock cycle via second lanes of the plurality of lanes. The method further includes determining whether a first criterion associated with the first bits is met, determining whether a second criterion associated with the second bits is met, and transmitting an inverted version of the original data via the plurality of lanes based, at least in part, on determining that the first criterion and the second criterion are met.

## Claims

### Claim 1

A device comprising:
a link including multiple lanes to connect the device to a receiving device, the multiple lanes including first lanes and second lanes; and
circuitry coupled to the link, the circuitry to:
receive original data comprising first bits and second bits to be transmitted in a new clock cycle, wherein the first bits are to be transmitted via the first lanes, respectively, and the second bits are to be transmitted via the second lanes, respectively;
make a first determination as to whether a first criterion associated with the first bits is met based on whether a first majority of the first lanes has respective first bit values that are required to transition in the new clock cycle;
make a second determination as to whether a second criterion associated with the second bits is met based on whether a second majority of the second lanes has respective second bit values that are required to transition in the new clock cycle; and
make a third determination as to whether to transmit an inverted version of the original data via the multiple lanes in the new clock cycle.

### Claim 2 (depends on 1)

The device of claim 1, wherein:
making the first determination that the first criterion is met is to be based on the first majority of the first lanes having the respective first bit values that are required to transition in the new clock cycle; and
making the second determination that the second criterion is met is to be based on the second majority of the second lanes having the respective second bit values that are required to transition in the new clock cycle.

### Claim 3 (depends on 2)

The device of claim 2, wherein the respective first bit values of the first lanes are associated with a first clock cycle occurring prior to the new clock cycle, and wherein the respective second bit values of the second lanes are associated with the first clock cycle.

### Claim 4 (depends on 2)

The device of claim 2, wherein the circuitry is further to:
determine that the respective first bit values of the first majority of the first lanes are different than a corresponding majority of the first bits; and
determine that the respective second bit values of the second majority of the second lanes are different than a corresponding majority of the second bits.

### Claim 5 (depends on 1)

The device of claim 1, wherein the circuitry is further to:
in response to determining that the first criterion and the second criterion have been met, encode the original data into the inverted version to be transmitted via the multiple lanes.

### Claim 6 (depends on 1)

The device of claim 1, wherein:
making the first determination that the first criterion is not met is to be based on at least half of the first lanes having respective third bit values that are not required to transition in the new clock cycle, and
making the second determination that the second criterion is not met is to be based on at least half of the second lanes having respective fourth bit values that are not required to transition in the new clock cycle.

### Claim 7 (depends on 1)

The device of claim 1, wherein the circuitry is further to:
in response to making the first determination that the first criterion is not met and making the second determination that the second criterion is not met, transmit the original data on the multiple lanes.

### Claim 8 (depends on 1)

The device of claim 1, wherein the circuitry is further to:
make a fourth determination as to whether a third criterion associated with third bits of the original data is met,
wherein making the third determination as to whether to transmit the inverted version of the original data in the new clock cycle via the multiple lanes is to be based, in part, on the fourth determination as to whether the third criterion is met.

### Claim 9 (depends on 8)

The device of claim 8, wherein making the fourth determination that the third criterion is met is to be based on a third majority of third lanes of the multiple lanes having respective third bit values that are required to transition in the new clock cycle based on corresponding third bits of the original data.

### Claim 10 (depends on 1)

The device of claim 1, wherein a number of the first lanes is equal to a number of the second lanes.

### Claim 11 (depends on 1)

The device of claim 1, wherein the link is a multi-chip package link, and wherein the first lanes and the second lanes are data lanes.

### Claim 12

A system, comprising:
a processor;
a first device coupled to the processor; and
a plurality of lanes including first lanes and second lanes, the plurality of lanes to connect the first device to a second device, wherein the first device is to:
obtain original data comprising first bits and second bits to be transmitted in a new clock cycle, wherein the first bits are to be transmitted via the first lanes, respectively, and the second bits are to be transmitted via the second lanes, respectively;
make a first determination that a first criterion associated with the first bits is met based on a first majority of the first lanes having respective first bit values that are required to transition in the new clock cycle;
make a second determination that a second criterion associated with the second bits is met based on a second majority of the second lanes having respective second bit values that are required to transition in the new clock cycle; and
transmit an inverted version of the original data via the plurality of lanes in the new clock cycle in response to, at least in part, making the first determination that the first criterion is met and making the second determination that the second criterion is met.

### Claim 13 (depends on 12)

The system of claim 12, wherein:
making the first determination that the first criterion is met is to be based on the first majority of the first lanes having the respective first bit values that are required to transition in the new clock cycle; and
making the second determination that the second criterion is met is to be based on the second majority of the second lanes having the respective second bit values that are required to transition in the new clock cycle.

### Claim 14 (depends on 13)

The system of claim 13, wherein the respective first bit values of the first lanes are associated with a first clock cycle occurring prior to the new clock cycle, and wherein the respective second bit values of the second lanes are associated with the first clock cycle.

### Claim 15

A method comprising:
obtaining, at a first device connected by a plurality of lanes to a second device, original data comprising first bits and second bits, wherein the first bits are to be transmitted in a new clock cycle via first lanes of the plurality of lanes, respectively, and the second bits are to be transmitted in the new clock cycle via second lanes of the plurality of lanes, respectively;
making a first determination as to whether a first criterion associated with the first bits is met based on whether a first majority of the first lanes has respective first bit values that are required to transition in the new clock cycle;
making a second determination as to whether a second criterion associated with the second bits is met based on whether a second majority of the second lanes has respective second bit values that are required to transition in the new clock cycle; and
making a third determination as to whether to transmit an inverted version of the original data via the plurality of lanes in the new clock cycle based, at least in part, on the first determination and the second determination.

### Claim 16 (depends on 15)

The method of claim 15, wherein:
making the first determination that the first criterion is met is based on the first majority of the first lanes having the respective first bit values that are required to transition in the new clock cycle; and
making the second determination that the second criterion is not met is based on at least half of the second lanes having respective third bit values that are not required to transition in the new clock cycle.

### Claim 17 (depends on 16)

The method of claim 16, further comprising:
determining that the respective first bit values of the first majority of the first lanes are different than a corresponding majority of the first bits; and
determining that the respective third bit values of at least half of the second lanes are the same as a corresponding-at least half of the second bits.

### Claim 18 (depends on 12)

The system of claim 12, wherein the first device is further to:
make a third determination that a third criterion associated with third bits of the original data is met, wherein the inverted version of the original data is to be transmitted via the plurality of lanes in the new clock cycle in response to, in part, making the third determination that the third criterion is met.

### Claim 19 (depends on 18)

The system of claim 18, wherein making the third determination that the third criterion is met is based on a third majority of third lanes of the plurality of lanes having respective third bit values that are required to transition in the new clock cycle.

### Claim 20 (depends on 12)

The system of claim 12, wherein the plurality of lanes is a multi-chip package link, and wherein the first lanes and the second lanes are data lanes.
