throbber
(12) United States Patent
`ROever
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 8,543,746 B2
`Sep. 24, 2013
`
`USOO8543746B2
`
`(54) SELF-SYNCHRONIZING DATA STREAMING
`BETWEEN ADDRESS-BASED PRODUCER
`AND CONSUMERCIRCUITS
`
`(75)
`(73)
`(*)
`
`Inventor:
`Assignee:
`Notice:
`
`Jens Roever, Los Gatos, CA (US)
`NXP B.V., Eindhoven (NL)
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 748 days.
`
`(21)
`(22)
`(86)
`
`(87)
`
`(65)
`
`(60)
`
`(51)
`
`(52)
`
`Appl. No.:
`PCT Fled:
`
`11/917,624
`Jun. 23, 2006
`PCT/B2O06/052O68
`
`PCT NO.:
`S371 (c)(1),
`Jul. 7, 2009
`(2), (4) Date:
`PCT Pub. No.: WO2OO6/137044
`PCT Pub. Date: Dec. 28, 2006
`Prior Publication Data
`US 2009/O3OO256A1
`Dec. 3, 2009
`
`Related U.S. Application Data
`Provisional application No. 60/694,113, filed on Jun.
`24, 2005.
`Int. C.
`G06F I3/00
`G06F 3/00
`G06F5/00
`G06F I3/36
`G06F L/04
`G06F L/2
`G06F 15/16
`G06F 3/42
`H04L 5/00
`H04L 700
`U.S. C.
`USPC ................. 710/100; 710/29: 710/58; 710/60;
`710/61; 710/306; 710/308; 7.10/310; 713/375;
`713/400; 713/401
`
`(2006.01)
`(2006.01)
`(2006.01)
`(2006.01)
`(2006.01)
`(2006.01)
`(2006.01)
`(2006.01)
`(2006.01)
`(2006.01)
`
`(58) Field of Classification Search
`USPC ................. 710/29, 58, 60, 61, 100, 306, 308,
`710/310; 713/375,400, 401
`See application file for complete search history.
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`3,810,114. A * 5/1974 Yamada et al. ............... T10,306
`4,232,294. A * 1 1/1980 Burke et al. .................. 370,444
`(Continued)
`FOREIGN PATENT DOCUMENTS
`63184962 A * 7, 1988
`O2228141 A * 11, 1990
`(Continued)
`OTHER PUBLICATIONS
`“NA901158: Address Compare Synchronization”, Nov. 1, 1990,
`IBM, IBM Technical Disclosure Bulletin, vol. 33, Iss. 6A, pp.
`58-60.
`
`JP
`JP
`
`(Continued)
`Primary Examiner — Faisal M Zaman
`(57)
`ABSTRACT
`A circuit arrangement and method facilitate the direct stream
`ing 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 gener
`ated for each of producer and consumer circuits (12P, 12C)
`from the address information encoded into requests that com
`municate 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 con
`Sumer 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 pro
`ducer circuit (12P) when the consumer expects less data than
`that output by the producer circuit (12P).
`33 Claims, 7 Drawing Sheets
`
`
`
`SATUS, RO
`
`PATENT OWNER DIRECTSTREAM, LLC
`EX. 2173, p. 1
`
`

`

`US 8,543,746 B2
`Page 2
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`4,320,452 A
`3/1982 Kempfet al.
`4.328,559 A * 5/1982 Markhasin et al. ............. 71 Of 58
`4.413,341 A * 1 1/1983 Markhasin et al.
`714f699
`4,494,192 A *
`1/1985 Lew et al. ......
`710/112
`5,185,680 A * 2/1993 Kakubo ....................... 360, 72.2
`5,390,103 A * 2/1995 Sakakibara ................... 7 13/375
`5,537.416 A * 7/1996 MacDonald et al. .
`714f748
`5,592,684. A *
`1/1997 Gaskins et al. ...
`... T10/52
`5,603,016 A * 2/1997 Davies ........
`713/400
`5,796,996 A * 8/1998 Temma et al.
`712,225
`5,859,986 A *
`1/1999 Marenin ...
`713/401
`5,923,855 A * 7/1999 Yamazaki ...
`709/248
`5,978,831 A * 1 1/1999 Ahamed et al.
`T18, 105
`6,134,155. A * 10/2000 Wen ......................... 365,189,04
`6,240,458 B1* 5/2001 Gilbertson .................... 709,232
`OTHER PUBLICATIONS
`6,247,072 B1* 6/2001 Firestone ...
`... T10/53
`6,275,878 B1* 8/2001 Yashima et al. ...
`... 710,61
`“NN771 12382: Programmable Storage Address Compare”, Nov. 1,
`2.89. R ck '?39 Shahi st al. ............ T13/400
`ww.
`unaga et al.
`1977, IBM, IBM Technical Disclosure Bulletin, vol. 20, Iss. 6, pp.
`6,611,889 B1* 8/2003 Otsuka .......................... T10/100
`2382-2390.*
`6,665,751 B1* 12/2003 Chen et al.
`710/52
`“NN77091562: Address Controlled Clocking of Recirculating
`6,718.449 B2 * 4/2004 Phi .................
`711, 167
`Memories”, Sep. 1, 1977, IBM, IBM Technical Disclosure Bulletin,
`7,120,761 B2 * 10/2006 Matsuzaki et al. ............ T11 149
`vol. 20, Iss. 4, pp. 1562-1564.*
`7,197.581 B2 * 3/2007 Kohashi .......................... T10/28
`7585 R: S388. free al"
`785 “NN71122172: Memory Address Sync and Stop Controller”, Dec. 1,
`7,694,061 B2 * 4/2010 Franchuk et al. ..
`710,310
`1971, IBM, IBM Technical Disclosure Bulletin, vol. 14, Iss. 7, pp.
`2002/0026599 A1
`2/2002 Kanazashi et al. .
`713/400
`2172-2173.
`2003. O156220 A1* 8, 2003 Narita ............
`348,571
`2003.0185325 A1 * 10, 2003 Wahl ............................. 375.362
`
`2003/0233513 A1* 12/2003 EZoe ............................. T11 103
`2004/OOO6666 A1* 1 2004 MOSS ....
`T11 5
`2005/0280650 A1* 12/2005 Komagata
`345,531
`2007/0130395 A1
`6/2007 Hsu ................................. T10.61
`2007/0162168 A1* 7/2007 Thompson ...................... TOO.94
`2008/O122976 A1* 5, 2008 Kubota ....
`348,530
`2009,0172456 A1* 7, 2009 Seo et al.
`... 713/400
`2011/0167292 A1* 7, 2011 Bohino .......................... T13/400
`
`
`
`FOREIGN PATENT DOCUMENTS
`ck
`8.6 A ck
`2.
`O8149121 A * 6, 1996
`11016346 A * 1, 1999
`2012O58973 A * 3, 2012
`2004O63836 A2
`T 2004
`2004O9.9995 A2 11/2004
`2005O10759 A1
`2, 2005
`
`E.
`JP
`JP
`JP
`WO
`WO
`WO
`
`* cited by examiner
`
`PATENT OWNER DIRECTSTREAM, LLC
`EX. 2173, p. 2
`
`

`

`U.S. Patent
`
`Sep. 24, 2013
`
`Sheet 1 of 7
`
`US 8,543,746 B2
`
`|PBLOCK
`
`MEMORY F.
`
`
`
`
`
`
`
`2.
`2P
`
`
`
`
`
`
`
`PBLOCK
`(PRODUCER)
`
`-22
`
`
`
`
`
`-
`20
`sistan
`CRCU
`
`
`
`
`
`
`
`AS k-SE
`NEWORK
`MEMORY
`
`
`
`PATENT OWNER DIRECTSTREAM, LLC
`EX. 2173, p. 3
`
`

`

`US 8,543,746 B2
`
`U.S. Patent
`
`
`
`
`
`
`
`
`
`Sep. 24, 2013
`
`Sheet 2 of 7
`
`
`
`WñSN00}}}
`|º»,|JENIHON | HVIS
`×|-| –
`
`PATENT OWNER DIRECTSTREAM, LLC
`EX. 2173, p. 4
`
`

`

`U.S. Patent
`
`Sep. 24, 2013
`
`Sheet 3 of 7
`
`US 8,543,746 B2
`
`
`
`7 FILLY
`AONGOING)
`
`(SYNCN==SYNCOUT)
`FIG. 4
`
`PATENT OWNER DIRECTSTREAM, LLC
`EX. 2173, p. 5
`
`

`

`U.S. Patent
`US. Patent
`
`Sep. 24, 2013
`Sep. 24, 2013
`
`Sheet 4 of 7
`Sheet 4 of7
`
`US 8,543,746 B2
`US 8,543,746 B2
`
`
`
`
`
`
`
`PATENT OWNER DIRECTSTREAM, LLC
`EX. 2173, p. 6
`
`PATENT OWNER DIRECTSTREAM, LLC
`EX. 2173, p. 6
`
`

`

`U.S. Patent
`
`Sep. 24
`
`2013
`
`Sheet 5 Of 7
`
`US 8,543,746 B2
`
`
`
`di
`
`|HDISMO) | }}]]}
`
`PATENT OWNER DIRECTSTREAM, LLC
`EX. 2173, p. 7
`
`

`

`U.S. Patent
`US. Patent
`
`Sep. 24, 2013
`Sep. 24, 2013
`
`Sheet 6 of 7
`Sheet 6 of7
`
`US 8,543,746 B2
`US 8,543,746 B2
`
`
`
`
`
`PATENT OWNER DIRECTSTREAM, LLC
`EX. 2173, p. 8
`
`PATENT OWNER DIRECTSTREAM, LLC
`EX. 2173, p. 8
`
`

`

`U.S. Patent
`
`Sep. 24, 2013
`
`Sheet 7 Of 7
`
`US 8,543,746 B2
`
`
`
`(0N 0ONDÝ \ TIH A
`
`(100H º NIH)í
`(100) ºg NN
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`PATENT OWNER DIRECTSTREAM, LLC
`EX. 2173, p. 9
`
`

`

`US 8,543,746 B2
`
`1.
`SELF-SYNCHRONIZING DATA STREAMING
`BETWEEN ADDRESS-BASED PRODUCER
`AND CONSUMER CIRCUITS
`
`2
`throughput. With a dedicated connection, however, address
`information is not used, and strict synchronization is required
`to ensure that the data being communicated by a producer is
`properly received by the consumer, typically by ensuring that
`the amount of data produced is the same as the amount of data
`consumed. In the case of video data, for example, strict Syn
`chronization is often required to ensure that each frame of
`Video data sent by a producer is recognized as a complete
`frame of video data by a consumer. If, for example, a producer
`transmitted more or less data in a frame than was expected by
`a consumer, data intended for one frame of video data may be
`interpreted by the consumer as being incorporated into an
`adjacent frame of video data. Once frames become unaligned,
`spurious artifacts, or even a moving picture may result in the
`displayed video picture.
`IP blocks with dedicated connections tend to have more
`limited applicability in a narrower set of end use applications.
`Moreover, producer and consumer IP blocks that communi
`cate over a dedicated connection typically must be specifi
`cally configured to ensure that the proper alignment of pro
`duced and consumed data streams is ensured. On the other
`hand, it would be desirable in many circumstances to simply
`be able to adapt existing IP blocks configured for address
`based communications to communicate overa dedicated con
`nection. Prior attempts to adapt such IP blocks to use dedi
`cated connections have simply discarded address
`information, and have required strict control over the amount
`of data communicated to ensure continued alignment and
`synchronization of the producer and consumer data streams.
`Often, once data streams lose synchronization and become
`unaligned, a reset is required to restore synchronization of the
`data streams. Therefore, a need continues to exist in the art for
`a manner of enabling IP blocks that support address-based
`communications to communicate over dedicated connec
`tions.
`The invention addresses these and other problems associ
`ated with the prior art by providing a circuit arrangement and
`method that facilitate the direct streaming of data between
`producer and consumer circuits that are otherwise configured
`to communicate overan address-based network. In particular,
`embodiments consistent with the invention generate sync
`signals for each of producer and consumer circuits from the
`address information encoded into requests that communicate
`the data streams output by the producer circuit and expected
`by the consumercircuit. The sync signals for the producer and
`consumer circuits are then used to selectively modify the data
`stream output by the producer circuit to a format expected by
`the consumer circuit. Typically, Such modification takes the
`form of inserting data into the data stream when the consumer
`circuit expects more data than output by the producer circuit,
`and discarding data communicated by the producer circuit
`when the consumer expects less data than that output by the
`producer circuit.
`These and other advantages and features, which character
`ize the invention, are set forth in the claims annexed hereto
`and forming a further parthereof. However, for a better under
`standing of the invention, and of the advantages and objec
`tives attained through its use, reference should be made to the
`Drawings, and to the accompanying descriptive matter, in
`which there is described exemplary embodiments of the
`invention.
`FIG. 1 illustrates an example block diagram of an inte
`grated circuit incorporating multiple circuits coupled to one
`another over an address-based network, and incorporating
`self-synchronizing data streaming consistent with the inven
`tion.
`
`5
`
`10
`
`15
`
`25
`
`30
`
`This invention relates to the field of electronic design, and
`in particular to a memory access system and method for
`streaming data between circuits in an electronic design.
`The communication of data between circuits in an elec
`tronic design is often a significant factor in the overall per
`formance of the electronic design. Particularly in complex,
`high performance integrated circuits such as System On Chip
`(SOC) designs, the communication of data between circuits
`Such as IP blocks often plays a significant role in the process
`ing capability of Such designs.
`In many instances, IP blocks rely on address-based net
`works to communicate data to and from other IP blocks. In an
`address-based network, data packets are associated with spe
`cific addresses in a memory address space, which effectively
`serve to identify each data packet in a manner that is recog
`nizable both to producer circuits that transmit data and con
`Sumer circuits that receive data. In some instances, push-type
`communications can be used, where a producer of data acts as
`a master, and pushes data to a consumer of data acting as a
`slave. In other instances, pull-type communications can be
`used, where a consumer of data acts as a master, and polls data
`from a producer acting as a slave.
`In still other instances, a shared memory may be used
`facilitate the communication of data between IP blocks. To
`communicate data between IP blocks coupled to a shared
`memory, one IP block, serving as a producer of the data,
`writes the data to the shared memory over an address-based
`network using address-based communications. Then, another
`IP block, serving as a consumer of the data, reads the now
`stored data from the shared memory over the same address
`based network, again using address-based communications.
`35
`Shared memory-based communications offer a number of
`benefits in terms of design flexibility and reuse. Since each
`data packet is associated with a specific address, the data
`packet is easier to correlate between the producer and con
`Sumer IP blocks. Furthermore, specific IP blocks can be
`40
`designed to utilize a standardized interface, which reduces the
`amount of customization required to utilize an IP block in a
`specific design.
`In addition, the operations of producer and consumer IP
`blocks in a shared memory architecture typically need not be
`tightly coordinated or synchronized. Due to this flexibility,
`shared memory architectures are particularly useful in con
`nection with processing data streams such as video data
`streams. Often, a producer IP block will write a frame of
`video data to a shared memory, while a consumer IP block
`50
`will read the frame of video data and perform additional
`processing on the data. Furthermore, in some instances the
`consumer IP block may not even be required to read all of a
`video frame stored by a producer IP block, e.g., when it is
`desirable to display only a portion of a video frame.
`One drawback with the use of a shared memory architec
`ture, however, is that bandwidth to and from a shared memory
`is a limited resource. Producer and consumer IP blocks, as
`well as potentially other IP blocks in a circuit design, are
`required to share access to the memory. Should too many IP
`blocks attempt to access the shared memory at the same time,
`the throughput of each block can suffer.
`Due to these limitations, therefore, it may be desirable or
`even necessary in Some designs to utilize dedicated, negoti
`ated connections between some IP blocks. By doing so, con
`tention over access to a shared memory is reduced, thus
`enabling higher communication rates and greater data
`
`45
`
`55
`
`60
`
`65
`
`PATENT OWNER DIRECTSTREAM, LLC
`EX. 2173, p. 10
`
`

`

`US 8,543,746 B2
`
`5
`
`10
`
`15
`
`25
`
`3
`FIG. 2 illustrates an example block diagram of an exem
`plary implementation of the stream interface circuit of FIG.1.
`FIG.3 illustrates an example state diagram of the operation
`of the producer and consumer sync circuits of FIG. 2.
`FIG. 4 illustrates an example state diagram of the operation
`of the state machine in the stream control circuit of FIG. 2.
`FIG. 5 illustrates an example block diagram of an exem
`plary implementation of the memory interface circuits of
`FIG 1.
`FIG. 6 illustrates an example block diagram of an alternate
`exemplary implementation of the memory interface circuits
`of FIG. 1.
`FIG. 7 illustrates an example block diagram of another
`exemplary implementation of the stream interface circuit of
`FIG. 1, suitable for use with horizontal and vertical syncing.
`FIG. 8 illustrates an example state diagram of the operation
`of the producer and consumer sync circuits of FIG. 7.
`FIG. 9 illustrates an example state diagram of the operation
`of the state machine in the stream control circuit of FIG. 7.
`The embodiments discussed hereinafter utilize self-syn
`chronization to facilitate the direct streaming of data between
`producer and consumer circuits in an electronic design. In
`particular, the address information encoded into memory
`access requests generated by producer and consumer circuits
`in connection with respectively outputting and receiving data
`streams is used to generate producer and consumer Sync
`signals. These signals are used, in turn, to self-synchronize
`the data stream output by the producer circuit with that
`expected by the consumer circuit.
`Such self-synchronization incorporates selectively modi
`fying the data stream output by the producer circuit to a
`format expected by the consumer circuit. Typically, Such
`modification takes the form of inserting data into the data
`stream when the consumer circuit expects more data than
`35
`output by the producer circuit, and discarding data commu
`nicated by the producer circuit when the consumer expects
`less data than that output by the producer circuit.
`Often, the generation of sync signals is based upon detec
`tion of boundaries between blocks of data incorporated into a
`data stream. As such, a sync signal may be asserted, for
`example, in response to detecting the first address in a
`memory block being output by a producer circuit or received
`by a consumer circuit. As will be discussed in greater detail
`below, for example, it may be assumed in some environments
`that a memory block is a contiguous range of memory
`addresses, such that a sync signal may be asserted whenever
`an address for a current request is found to be less than or
`equal to (i.e., not greater than), that of the previous request.
`Moreover, in video streaming applications, it may be desir
`able to detect the end of a line of video data, as well as the end
`of a frame of video data, and provide two dimensional (i.e.,
`horizontal and vertical) self-synchronization. Other manners
`of deriving a sync signal from address information will be
`appreciated by one of ordinary skill in the art having the
`benefit of the instant disclosure.
`A producer circuit consistent with the invention may be any
`circuit capable of outputting a data stream, while a consumer
`circuit consistent with the invention may be any circuit
`capable of receiving a data stream. It will be appreciated that
`producer circuits may also function as consumer circuits, and
`Vice versa. In the illustrated embodiments, producer and con
`Sumer circuits are implemented as IP blocks suitable for
`incorporation into the same integrated circuit design such as
`a SOC design. However, it will be appreciated that such
`circuits need not be implemented as modular blocks, nor do
`Such circuits need to be disposed on the same integrated
`
`4
`circuit device. The invention is therefore not limited to the
`particular embodiments discussed herein.
`As noted above, each producer and consumer circuit is
`configured to communicate over an address-based network,
`typically through the issuance of read or write requests that
`incorporate address information associated with the data that
`is to be read or written as a result of the requests. It will be
`appreciated that address information may be provided on
`dedicated interconnect wires, or may be communicated over
`the same interconnect wires as the request and/or data to be
`communicated. Moreover, a producer or consumer circuit
`may still be able to communicate over an address-based net
`work concurrently with communicating with another circuit
`via a self-synchronized dedicated connection as described
`herein.
`Now turning to the drawings, wherein like numbers denote
`like parts throughout the several views, FIG. 1 illustrates an
`integrated circuit 10 incorporating a plurality of circuits 12,
`e.g., IP blocks, each having a dedicated address-based
`memory interface 14 that is used to couple the associated
`circuit 12 to a shared memory 16 via an address-based net
`work 18. Address-based network 18 may be implemented, for
`example, as a Pipelined Memory Access Network (PMAN)
`such as is disclosed in PCT Publication No. WO20040.99995,
`the disclosure of which is incorporated by reference herein. In
`the alternative, other types of address-based networks, e.g.,
`pull-type architectures, push-type architectures, multi-drop
`bus architectures, etc., may be used in the alternative.
`As noted above, each circuit, or IP block, 12 is typically
`configured to communicate over an address-based network.
`In general, it will be appreciated that any circuit that generates
`requests to transmit and/or receive data, where the data is
`associated with and identified by address information, may be
`considered to be configured to communicate over an address
`based network. To this extent, each memory interface 14 is
`configured to output memory access requests including com
`mand and address information (and for write requests, write
`data) over network 18. Furthermore, in the case of read
`requests, each memory interface 14 is configured to receive
`read data from network 18 responsive to requests issued
`thereby.
`As also noted above, it may be desirable to provide self
`synchronized direct data streaming between IP blocks, and
`thus bypass the need to utilize a shared memory to commu
`nicate data between the IP blocks, e.g., a producer IP block
`identified at 12P and a consumer IP block identified at 12C.
`To implement such functionality, a stream interface circuit
`20, coupled intermediate IP blocks 12P, 12C, provides a
`direct communication link configured in a manner described
`in greater detail below. When so configured, IP blocks 12P
`and 12C are capable of communicating a data stream from IP
`block 12P to IP block 12C by respectively issuing series of
`write memory access requests and read memory access
`requests to stream interface circuit 20.
`In the illustrated embodiment, stream interface circuit 20 is
`coupled to additional ports defined in the memory interface
`circuits 14 for IP blocks 12P, 12C. Such ports may be pro
`vided along with ports for coupling to address-based network
`18, thus enable both address-based communication and direct
`data streaming to be utilized by each such IP block. In other
`embodiments, however, an IP block configured for commu
`nication over an address-based network may not actually be
`coupled to any address-based network in integrated circuit
`design. Thus, it will be appreciated that an IP block config
`ured for communication over an address-based network need
`not necessarily actively communicate over Such a network
`when incorporated into a working design.
`
`30
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`PATENT OWNER DIRECTSTREAM, LLC
`EX. 2173, p. 11
`
`

`

`5
`Now turning to FIG. 2, an exemplary implementation of
`stream interface circuit 20 is illustrated in greater detail. Cir
`cuit 20 incorporates a pair of sync generation circuits, a
`producer sync generation circuit 24 and a consumer Sync
`generation circuit 26, coupled to a stream control circuit 28.
`Producer Sync generation circuit 24 is coupled to a producer
`IP block 12P and is configured to receive a data stream over a
`data interconnect 30, with packets of data in the data stream
`correlated via associated address information received over
`an address interconnect32. Likewise, consumer Sync genera
`tion circuit 26 is coupled to a consumer IP block 12C and is
`configured to output a data stream over a data interconnect 34
`responsive to address information received over an address
`interconnect 36. It will be appreciated that additional request
`information, e.g., command information, read/write informa
`tion, priority information, etc. may also be received, con
`veyed and/or utilized by circuit 20 consistent with the inven
`tion.
`Producer Sync generation circuit 24 is configured to selec
`tively assert a sync signal that indicates the beginning of a
`memory block of data in a data stream. In this embodiment, it
`is assumed that a memory block communicated by IP block
`12P includes a set of requests addressed to a contiguous range
`of memory addresses in a memory address space. As such, the
`beginning of a memory block of data can be detected by
`comparing the address associated with each request output by
`IP block 12P with the address associated with the prior
`request output by the IP block.
`As a result, for each request received from IP block 12P.
`circuit 24 passes the data for Such request unchanged over
`interconnect 38 and to stream control circuit 28 via a data
`interconnect 40. However, for the address associated with
`each request, the address is passed to a last address register 42
`and a comparator 44. Register 42 stores the address associ
`ated with a previous request for use by comparator 44 in
`comparing the previous, or last address, with that of the
`current request. By passing the address of the current request
`to register 42, the address will be stored in the register for use
`in comparing with the next request received by circuit 24.
`Comparator 44 selectively asserts a producer Sync signal 46
`responsive to the address associated with the current request
`being less than or equal to that of the last request, and thus
`indicates when the current request is directed to a first address
`in a new memory block.
`Consumer sync generation circuit 26 is likewise config
`ured to selectively assert a sync signal that indicates the
`beginning of a memory block of data in a data stream
`expected by the consumer IP block 12C. For each request
`received from IP block 12C, circuit 26 passes the data for such
`request from stream control circuit 28 over interconnects 48.
`50 and along to IP block 12C. However, for the address
`associated with each request, the address is passed to a last
`address register 52 and a comparator 54, which operate in a
`similar manner to register 42 and comparator 44 to selectively
`assert a consumer sync signal 56 responsive to the address
`associated with the current request being less than or equal to
`that of the last request, and thus indicates when the current
`request is directed to a first address in a new memory block.
`The manner in which each sync circuit 24, 26 operates is
`further explained in connection with the state diagram 70 of
`FIG. 3. State diagram 70 includes a reset state 72 to which
`each circuit 24, 26 is initially set. Reset state 72 transitions to
`a sync state 74 during which the respective sync signal 46,56
`is asserted. A transition to a data state 76, where the sync
`signal 46, 56 is not asserted, occurs once a request is received
`having an address (AT) that represents the next sequential
`address relative to that of the previous request (stored in
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 8,543,746 B2
`
`10
`
`15
`
`6
`register 42, 52, and represented as AT-1). Then, once a request
`is received having an address that is less than or equal to that
`of the previous request, a transition occurs to state 74 to
`reassert the sync signal 46, 56, indicating the start of a new
`memory block. In addition, upon a reset, each of states 74,76
`transitions to state 72.
`Returning to FIG. 2, the configuration of stream control
`circuit 28, which receives data from a producer data stream
`over interconnect 40 and outputs data to a consumer data
`stream over interconnect 50, is further illustrated. Circuit 28
`includes a state machine 58 that is responsive to sync signals
`46, 56 to control a drain/fill circuit 60 that selectively modifies
`the consumer data stream output to consumer IP block 12C
`relative to the producer data stream received from producer IP
`block 12P. Specifically, drain/fill circuit 60 may be configured
`to selectively drain, or discard, data from the producer data
`stream and/or fill or insert data into the producer data stream
`to align the producer and consumer data streams. In addition,
`state machine 58 may optionally be configured to output a
`status or interrupt signal 62 whenever a misalignment occurs,
`to notify other circuitry in the design (e.g., an interrupt con
`troller 22 as shown in FIG. 1).
`With reference to FIG.4, the operation of state machine 58
`is further illustrated by state diagram 80. Initially, state
`machine 58 begins in a reset state 82, and then transitions to
`a pass data on state 84. Based upon whether the producer Sync
`signal 46 (SYNCIN) and the consumer sync signal 56 (SYN
`COUT) are asserted during each communication cycle, the
`state machine either remains in state 84 or transitions to one of
`a drainincoming state 86 and a fill outgoing state 88. Specifi
`cally, if sync signals 46.56 are in the same state, state machine
`58 remains in state 84, whereby data forwarded from the
`producer data stream is passed unchanged to the consumer
`data stream.
`However, if consumer sync signal 56 is asserted before
`producer sync signal 46, a transition occurs to state 86, which
`results in state machine 58 controlling drain/fill circuit 60 to
`discard data from the producer IP block 12P, and thus prevent
`such data from being passed on to the consumer IP block 12C.
`In addition, it may be desirable at this time to stall the con
`Sumer IP block 12C from issuing any further requests, using
`any number of manners known in the art (e.g., via handshak
`ing). State machine 58 remains in this state until sync signals
`46, 56 are once again equal, which results in a transition back
`to state 84.
`If producer Sync signal 46 is asserted before consumer Sync
`signal 56, a transition occurs to state 88, which results in state
`machine 58 controlling drain/fill circuit 60 to insert padding
`data into the consumer data stream. In addition, it may be
`desirable at this time to stall the producer IP block 12P from
`issuing any further requests. State machine 58 remains in this
`state until sync signals 46, 56 are once again equal, which
`results in a transition back to state 84. In addition, upon a
`reset, each of states 84, 86, 88 transitions to state 82.
`The padding data to be inserted into a data stream by circuit
`60 may vary in different embodiments. For example, a con
`stant value may be used for the padding data, or in the alter
`native, the last data value passed from the producer IP block
`may simply be repeated. In addition, it may be desirable in
`Some embodiments to allow the padding data to be program
`mable. For example, in a video processing application, it may
`be desirable to enable padding data representative of a black
`or grey pixel to be used.
`Therefore, it may be seen that through the operation of state
`machine 58 responsive to sync signals 46,56, the amount of
`data communicated in a data stream by producer IP block 12P
`is selectively modified if necessary to match the amount of
`
`PATENT OWNER DIRECTSTREAM, LLC
`EX. 2173, p. 12
`
`

`

`US 8,543,746 B2
`
`10
`
`15
`
`25
`
`35
`
`7
`data expected by consumer IP block 12C. Furthermore,
`through this self-synchronization, the respective producer
`and consumer data streams are effectively aligned at each
`memory block boundary. Of note, the address information
`associated with each request from the producer and consumer
`IP blocks is never passed to the other block. Rather, other than
`being used to generate the respective sync signals, the address
`information is effectively discarded, thus enabling address
`based protocols to effectively be used to communicate a data
`stream over a direct connection between IP blocks.
`Now turning to FIGS. 5 & 6, as noted above, the manner in
`which an IP block may be configured to utilize self-synchro
`nized data streaming, while still being configured to commu
`nicate over an address-based network, may differ in various
`embodiments. FIG. 5, for example, illustrates one exemplary
`implementation of the memory interface circuit 14 of an IP
`block 12, wherein a request communication link 90, which
`communicates command and address information, as well as
`data, associated with access requests, is coupled to a pair of
`communication links 92, 94 through a multiplexer/demulti
`plexer96. In the illustrated embodiment, for example, com
`munication link 92 may be used to communicate over an
`address-based network, while communication link94 may be
`used to communicate via self-synchronized data streaming
`through coupling with a stream interface circuit 20. It will
`also be appreciated that memory interface 14 may also incor
`porate functionality for providing handshaking as well as
`ensuring that requests and data transmissions comply with
`any necessary communication protocols.
`In the embodiment of FIG. 5, it is assumed that multi
`plexer/demultiplexer 96 is responsive to a mode signal 98
`generated by IP block 12, which is used to effectively select
`one of the two communication links 92.94 for use by IP block
`12. It will be appr

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket