# US 8,543,746 B2 · Self-synchronizing data streaming between address-based producer and consumer circuits

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

- Number: US 8,543,746 B2
- Document ID: US8543746B2
- Status: Granted
- Kind: B2
- Application number: 11/917,624
- Filed: 2006-06-23
- Published: 2009-12-03
- Granted: 2013-09-24
- Earliest claimed: 2005-06-24
- Assignees: NXP B.V.
- Applicants: Jens Roever
- Inventors: Jens Roever
- Web page: https://patentgrep.com/patent/US8543746B2

## CPC

- G06F 13/4286: {using a handshaking protocol, e.g. RS232C link}
- H04N 21/2381: Adapting the multiplex stream to a specific network, e.g. an Internet Protocol [IP] network {(transmission of MPEG streams over ATM H04L12/5601)}
- H04N 21/4381: {Recovering the multiplex stream from a specific network, e.g. recovering MPEG packets from ATM cells (transmission of MPEG streams over ATM H04L12/5601)}
- H04N 21/64322: {IP}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A circuit arrangement and method facilitate the direct streaming of data between producer and consumer circuits (12P, 12C) that are otherwise configured to communicate over an address-based network (18). Sync signals (46, 56) are generated for each of producer and consumer circuits (12P, 12C) from the address information encoded into requests that communicate the data streams output by the producer circuit (12P) and expected by the consumer circuit (12C). The sync signals (46, 56) for the producer and consumer circuits (12C) are then used to selectively modify the data stream output by the producer circuit (12P) to a format expected by the consumer circuit (12C). Typically, such modification takes the form of inserting data into the data stream when the consumer circuit (12C) expects more data than output by the producer circuit (12P), and discarding data communicated by the producer circuit (12P) when the consumer expects less data than that output by the producer circuit (12P).

## Claims

### Claim 1

A method of communicating data between producer and consumer circuits, wherein each of the producer and consumer circuits is configured to communicate data over an address-based network using memory access requests that identify addresses in a memory address space, the method comprising:
receiving from the producer circuit a plurality of memory access requests associated with a data stream output by the producer circuit, wherein each of the plurality of memory access requests received from the producer circuit identifies an associated address;
receiving a plurality of memory access requests from the consumer circuit associated with a data stream expected by the consumer circuit, wherein each of the plurality of memory access requests received from the consumer circuit identifies an associated address;
responsive to a comparison of addresses for the plurality of memory access requests received from the producer circuit, generating a first sync signal from the addresses identified thereby;
responsive to a comparison of addresses for the plurality of memory access requests received from the consumer circuit, generating a second sync signal from the addresses identified thereby; and
communicating data from the data stream output by the producer circuit to the consumer circuit over a communications link, including selectively modifying the data stream output by the producer circuit to a format expected by the consumer circuit responsive to the first and second sync signals.

### Claim 2 (depends on 1)

The method of claim 1, wherein:
generating the first sync signal includes comparing an address identified by a current memory access request from the producer circuit with an address identified by a previous memory access request from the producer circuit and selectively asserting the first sync signal based upon such comparison;
generating the second sync signal includes comparing an address identified by a current memory access request from the consumer circuit with an address identified by a previous memory access request from the consumer circuit and selectively asserting the second sync signal based upon such comparison; and
selectively modifying the data stream output by the producer circuit includes:
if the first sync signal is asserted before assertion of the second sync signal, communicating padding data to the consumer circuit over the communications link in response to a memory access request received from the consumer circuit while the first sync signal is asserted; and
if the second sync signal is asserted before assertion of the first sync signal, discarding data associated with a memory access request received from the producer circuit while the second sync signal is asserted to inhibit communication of such data over the communications link.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
if the first sync signal is asserted before assertion of the second sync signal, temporarily stalling the producer circuit from issuing additional memory access requests; and
if the second sync signal is asserted before assertion of the first sync signal, temporarily stalling the consumer circuit from issuing additional memory access requests.

### Claim 4 (depends on 2)

The method of claim 2, wherein selectively asserting the first sync signal is based upon determining that the address identified by the current memory access request from the producer circuit is less than or equal to the address identified by the previous memory access requests from the producer circuit.

### Claim 5 (depends on 2)

The method of claim 2, wherein selectively asserting the second sync signal is based upon determining that the address identified by the current memory access request from the consumer circuit is less than or equal to the address identified by the previous memory access requests from the consumer circuit.

### Claim 6 (depends on 2)

The method of claim 2, further comprising generating a notification when one of the first and second sync signals is asserted before the other of the first and second sync signals.

### Claim 7 (depends on 6)

The method of claim 6, wherein the notification comprises an interrupt.

### Claim 8 (depends on 2)

The method of claim 2, wherein the padding data comprises data associated with a previous memory access request from the producer circuit.

### Claim 9 (depends on 2)

The method of claim 2, wherein the padding data comprises a default data value.

### Claim 10 (depends on 2)

The method of claim 2, wherein the padding data comprises a programmable default data value.

### Claim 11 (depends on 1)

The method of claim 1, wherein generating the first sync signal includes detecting from an address identified by a current memory access request from the producer circuit that the current memory access request is directed to a first address in a memory block being output by the producer circuit, and wherein generating the second sync signal includes detecting from an address identified by a current memory access request from the consumer circuit that the current memory access request is directed to a first address in a memory block being retrieved by the consumer circuit.

### Claim 12 (depends on 1)

The method of claim 1, wherein the producer and consumer circuits are disposed on the same integrated circuit device, wherein each of the producer and consumer circuits comprises an IP block configured to communicate data over an address-based network, and wherein the communications link is a non-address-based communications link.

### Claim 13 (depends on 1)

The method of claim 1, wherein each of the producer and consumer circuits comprises a video processing IP block, and wherein the memory access requests from the producer circuit are configured to communicate a video stream over the communications link.

### Claim 14 (depends on 1)

The method of claim 1, further comprising enabling a mode in each of the producer and consumer circuits to communicate data over the communications link instead of an address-based network.

### Claim 15 (depends on 1)

The method of claim 1, wherein the data is video data, wherein the first and second sync signals each comprise horizontal sync signals, wherein the method further comprises generating first and second vertical sync signals responsive to the memory access requests received from the producer and consumer circuits, and wherein selectively modifying the data stream output by the producer circuit to the format expected by the consumer circuit is further responsive to the first and second vertical sync signals.

### Claim 16 (depends on 1)

The method of claim 1, wherein the plurality of memory access requests received from the producer circuit each comprise a write request, and wherein the plurality of memory access requests received from the consumer circuit each comprise a read request.

### Claim 17

A circuit arrangement, comprising:
a communications link configured to communicate data received from a producer circuit to a consumer circuit, wherein each of the producer and consumer circuits is of the type that is capable of communicating data over an address-based network using memory access requests that identify addresses in a memory address space;
first sync signal generation logic configured to generate a first sync signal from a comparison of addresses for identifying a plurality of memory access requests received from the producer circuit and associated with a data stream output by the producer circuit;
second sync signal generation logic configured to generate a second sync signal from a comparison of addresses for identifying a plurality of memory access requests received from the consumer circuit and associated with a data stream expected by the consumer circuit; and
control logic configured to communicate data from the data stream output by the producer circuit to the consumer circuit over the communications link, wherein the control logic is further configured to selectively modify the data stream output by the producer circuit to a format expected by the consumer circuit responsive to the first and second sync signals.

### Claim 18 (depends on 17)

The circuit arrangement of claim 17, wherein the first sync signal generation logic is configured to generate the first sync signal by comparing the address identified by a current memory access request from the producer circuit with an address identified by a previous memory access request from the producer circuit and selectively asserting the first sync signal based upon such comparison, and wherein the second sync signal generation logic is configured to generate the second sync signal by comparing the address identified by a current memory access request from the consumer circuit with an address identified by a previous memory access request from the consumer circuit and selectively asserting the second sync signal based upon such comparison.

### Claim 19 (depends on 18)

The circuit arrangement of claim 18, wherein the control logic is configured to selectively modify the data stream output by the producer circuit by:
if the first sync signal is asserted before assertion of the second sync signal, communicating padding data to the consumer circuit over the communications link in response to a memory access request received from the consumer circuit while the first sync signal is asserted; and
if the second sync signal is asserted before assertion of the first sync signal, discarding data associated with a memory access request received from the producer circuit while the second sync signal is asserted to inhibit communication of such data over the communications link.

### Claim 20 (depends on 19)

The circuit arrangement of claim 19, wherein the control logic is further configured to temporarily stall the producer circuit from issuing additional memory access requests if the first sync signal is asserted before assertion of the second sync signal, and to temporarily stall the consumer circuit from issuing additional memory access requests if the second sync signal is asserted before assertion of the first sync signal.

### Claim 21 (depends on 19)

The circuit arrangement of claim 19, wherein the padding data comprises data associated with a previous memory access request from the producer circuit.

### Claim 22 (depends on 19)

The circuit arrangement of claim 19, wherein the padding data comprises a default data value.

### Claim 23 (depends on 19)

The circuit arrangement of claim 19, wherein the padding data comprises a programmable default data value.

### Claim 24 (depends on 18)

The circuit arrangement of claim 18, wherein the first sync signal generation logic is configured to selectively assert the first sync signal based upon determining that the address identified by the current memory access request from the producer circuit is less than or equal to the address identified by the previous memory access requests from the producer circuit.

### Claim 25 (depends on 18)

The circuit arrangement of claim 18, wherein the second sync signal generation logic is configured to selectively assert the second sync signal based upon determining that the address identified by the current memory access request from the consumer circuit is less than or equal to the address identified by the previous memory access requests from the consumer circuit.

### Claim 26 (depends on 18)

The circuit arrangement of claim 18, wherein the control logic is further configured to generate a notification when one of the first and second sync signals is asserted before the other of the first and second sync signals.

### Claim 27 (depends on 26)

The circuit arrangement of claim 26, wherein the notification comprises an interrupt.

### Claim 28 (depends on 18)

The circuit arrangement of claim 18, wherein the data is video data, wherein the first and second sync signals each comprise horizontal sync signals, wherein the circuit arrangement is further configured to generate first and second vertical sync signals responsive to the memory access requests received from the producer and consumer circuits, and wherein the control logic is further configured to selectively modify the data stream output by the producer circuit to the format expected by the consumer circuit responsive to the first and second vertical sync signals.

### Claim 29 (depends on 17)

The circuit arrangement of claim 17, wherein the first sync signal generation logic is configured to generate the first sync signal by detecting from an address identified by a current memory access request from the producer circuit that the current memory access request is directed to a first address in a memory block being output by the producer circuit, and wherein the second sync signal generation logic is configured to generate the second sync signal by detecting from an address identified by a current memory access request from the consumer circuit that the current memory access request is directed to a first address in a memory block being retrieved by the consumer circuit.

### Claim 30 (depends on 17)

The circuit arrangement of claim 17, wherein each of the producer and consumer circuits comprises an IP block configured to communicate data over an address-based network disposed on the same integrated circuit device as both of the producer and consumer circuits, and wherein the communications link is a non-address-based communications link.

### Claim 31 (depends on 17)

The circuit arrangement of claim 17, wherein each of the producer and consumer circuits comprises a video processing IP block, and wherein the memory access requests from the producer circuit are configured to communicate a video stream over the communications link.

### Claim 32 (depends on 17)

The circuit arrangement of claim 17, wherein the plurality of memory access requests received from the producer circuit each comprise a write request, and wherein the plurality of memory access requests received from the consumer circuit each comprise a read request.

### Claim 33 (depends on 17)

An integrated circuit device comprising the producer circuit, the consumer circuit and the circuit arrangement of claim 17.
