Cascaded communication of serialized data streams through devices and their resulting operation
Summary by NHIP
Cascaded Data Stream Apparatus
The apparatus cascades unframed serialized data streams through integrated circuit devices while performing internal processing on framed sequences. It utilizes separate phase aligning and framing circuitry to output aligned streams without framing and distinct framed streams for associative memory lookups.
Claim Score by NHIP
Abstract
In one embodiment, an apparatus cascades groups of serialized data streams through devices, and performs operations based on information communicated therein. A received group of serialized data streams is aligned, but not framed, and forwarded to a next device (e.g., a next stage in a linear or tree cascaded formation of devices). Eliminating the framing and subsequent serialization operations performed on the received group of serialized data streams reduces the latency of communications through the cascaded devices, which can be significant when considered in relation to the high-speed communication rates. The received group of serialized data streams is also framed to create a sequence of data frames for processing (e.g., associative memory lookup operations, controlling multiplexing of received downstream serialized data streams, general or other processing) within the device.

Term
7.3 yearsleft in the term
Expires 9 January 2034, including 442 days of term adjustment.
- Priority and filed
- Granted
- Today
- Expires
18 claims: 4 independent, 14 dependent
- 1An apparatus, comprising:a first integrated circuit device, including: a first interface configured to receive a first plurality of serialized data streams from a source external to the first integrated circuit device;first framing circuitry, communicatively coupled to the first interface, configured to produce a first sequence of data frames from the first plurality of serialized data streams;processing circuitry configured to perform operations based on the first sequence of data frames and to generate a second sequence of data frames;first phase aligning circuitry, communicatively coupled to the first interface, configured to align, but not frame, the first plurality of serialized data streams to produce a first aligned plurality of serialized data streams;a second interface configured to produce the first aligned plurality of serialized data streams from the first integrated circuit device, with the first aligned plurality of serialized data streams not being framed within the first integrated circuit device;second framing circuitry configured to produce a second plurality of serialized data streams based on the second sequence of data frames;and a third interface configured to produce the second plurality of serialized data streams from the first integrated circuit device.
- 11An apparatus, comprising:a first integrated circuit device, including: a first interface configured to receive a first plurality of serialized data streams from a source external to the first integrated circuit device;first framing circuitry, communicatively coupled to the first interface, configured to produce a first sequence of data frames from the first plurality of serialized data streams;processing circuitry configured to perform operations based on the first sequence of data frames;first phase aligning circuitry, communicatively coupled to the first interface, configured to align, but not frame, the first plurality of serialized data streams to produce a first aligned plurality of serialized data streams;a second interface configured to produce the first aligned plurality of serialized data streams from the first integrated circuit device, with the first aligned plurality of serialized data streams not being framed within the first integrated circuit device;second phase aligning circuitry, communicatively coupled to the first interface, configured to align, but not frame, the first plurality of serialized data streams to produce a second aligned plurality of serialized data streams;and a fifth interface configured to produce the second aligned plurality of serialized data streams from the first integrated circuit device, with the second aligned plurality of serialized data streams not being framed within the first integrated circuit device.
- 12An integrated circuit device, comprising:an input interface configured to receive an input plurality of serialized data streams from a source external to the integrated circuit device;first phase aligning circuitry, communicatively coupled to the input interface, configured to align, but not frame, the input plurality of serialized data streams to produce a first aligned plurality of serialized data streams;a first interface configured to produce the first aligned plurality of serialized data streams from the integrated circuit device, with the first aligned plurality of serialized data streams not being framed within the integrated circuit device;second phase aligning circuitry, communicatively coupled to the input interface, configured to align, but not frame, the input plurality of serialized data streams to produce a second aligned plurality of serialized data streams;a second interface configured to produce the second aligned plurality of serialized data streams from the integrated circuit device, with the second aligned plurality of serialized data streams not being framed within the integrated circuit device;a third interface configured to receive a second plurality of serialized data streams from a source external to the integrated circuit device;first framing circuitry, communicatively coupled to the third interface, configured to produce a first sequence of data frames from the second plurality of serialized data streams;a fourth interface configured to receive a third plurality of serialized data streams from a source external to the integrated circuit device;second framing circuitry, communicatively coupled to the fourth interface, configured to produce a second sequence of data frames from the third plurality of serialized data streams;combining and framing circuitry configured to produce an output plurality of serialized data streams based on the first sequence of data frames and on the second sequence of data frames;and an output configured to produce the output plurality of serialized data streams from the integrated circuit device.
- 13Broadest claimClaim Score 51, average(NHIP)A method, comprising:receiving, by a device, a first plurality of serialized data streams from a source external to the first device;communicating, from the device, one or more copies of the first plurality of serialized data streams, each of said one or more copies of the first plurality of serialized data streams having been phase aligned by the device, but not framed by the device;framing, by the device, the first plurality of serialized data streams to produce a first sequence of data frames;processing, by the device, the first sequence of data frames, including generating a second sequence of data frames;framing, by the device, the second sequence of data frames to produce a second plurality of serialized data streams;and sending, from the device, the second plurality of serialized data streams.
Independent claims4
49 paragraphs in 4 sections, as filed
TECHNICAL FIELD
The present disclosure relates generally to communicating serialized data streams among devices, and their operation according to information communicated therein.
BACKGROUND
The communications industry is rapidly changing to adjust to emerging technologies and ever increasing customer demand. This customer demand for new applications and increased performance of existing applications is driving communications network and system providers to employ networks and systems having greater speed and capacity. In trying to achieve these goals, a common approach taken by many communications providers is to use packet switching technology.
The communication rates between devices affects the rate at which devices can operate in response to communicated information. As such, faster intercommunications techniques are continuously being developed and deployed. Interlaken is one example of a protocol that uses bundles of serial links to create a logical connection between two devices. Framed data is serialized and sent across the bundles of links. A receiving device reframes the serialized data to recover the original sequence of data frames.
BRIEF DESCRIPTION OF THE DRAWINGS
The appended claims set forth the features of one or more embodiments with particularity. The embodiment(s), together with its advantages, may be best understood from the following detailed description taken in conjunction with the accompanying drawings of which:
<figref idref="DRAWINGS">FIG. 1A</figref> illustrates a device operating according to one embodiment;
<figref idref="DRAWINGS">FIG. 1B</figref> illustrates a process according to one embodiment;
<figref idref="DRAWINGS">FIG. 2A</figref> illustrates a device operating according to one embodiment;
<figref idref="DRAWINGS">FIG. 2B</figref> illustrates a device operating according to one embodiment;
<figref idref="DRAWINGS">FIG. 2C</figref> illustrates a process according to one embodiment; and
<figref idref="DRAWINGS">FIG. 3</figref> illustrates a device operating according to one embodiment.
DESCRIPTION OF EXAMPLE EMBODIMENTS
1. Overview
Disclosed are, inter alia, methods, apparatus, computer-storage media, mechanisms, and means associated with cascaded communication of groups of serialized data streams through devices, and the operations of these devices based on information communicated therein.
One embodiment includes an apparatus, comprising a first integrated circuit device, which includes a first interface configured to receive a first plurality of serialized data streams from a source external to the first integrated circuit device; first framing circuitry, communicatively coupled to the first interface, configured to produce a first sequence of data frames from the first plurality of serialized data streams; processing circuitry configured to perform operations based on the first sequence of data frames; first phase aligning circuitry, communicatively coupled to the first interface, configured to align, but not frame, the first plurality of serialized data streams to produce a first aligned plurality of serialized data streams; and a second interface configured to produce the first aligned plurality of serialized data streams from the first integrated circuit device, with the first aligned plurality of serialized data streams not being framed within the first integrated circuit device. In one embodiment, said processing circuitry includes associative memory circuitry (e.g., content-addressable memory circuitry, ternary content-addressable memory circuitry). In one embodiment, said processing circuitry includes multiplexing circuitry.
One embodiment includes an integrated circuit device, comprising: an input interface configured to receive an input plurality of serialized data streams from a source external to the integrated circuit device; first phase aligning circuitry, communicatively coupled to the input interface, configured to align, but not frame, the input plurality of serialized data streams to produce a first aligned plurality of serialized data streams; a first interface configured to produce the first aligned plurality of serialized data streams from the integrated circuit device, with the first aligned plurality of serialized data streams not being framed within the integrated circuit device; second phase aligning circuitry, communicatively coupled to the input interface, configured to align, but not frame, the input plurality of serialized data streams to produce a second aligned plurality of serialized data streams; a second interface configured to produce the second aligned plurality of serialized data streams from the integrated circuit device, with the second aligned plurality of serialized data streams not being framed within the integrated circuit device; a third interface configured to receive a second plurality of serialized data streams from a source external to the integrated circuit device; first framing circuitry, communicatively coupled to the third interface, configured to produce a first sequence of data frames from the second plurality of serialized data streams; a fourth interface configured to receive a third plurality of serialized data streams from a source external to the integrated circuit device; second framing circuitry, communicatively coupled to the fourth interface, configured to produce a second sequence of data frames from the third plurality of serialized data streams; combining and framing circuitry configured to produce an output plurality of serialized data streams based on the first sequence of data frames and on the second sequence of data frames; and an output configured to produce the output plurality of serialized data streams from the integrated circuit device.
One embodiment comprises: receiving, by a device, a first plurality of serialized data streams from a source external to the first device; communicating, from the device, one or more copies of the first plurality of serialized data streams, each of said one or more copies of the first plurality of serialized data streams having been phase aligned by the device, but not framed by the device; framing each of one or more second plurality of serialized data streams received from a same or different source external to the first device to generate one or more sequences of data frames; producing a result based on said one or more sequences of data frames; generating an output plurality of serialized data streams including by framing the result; and sending, from the device, the output plurality of serialized data streams. In one embodiment, said producing the result includes: framing the first plurality of serialized data streams to generate an input sequence of data frames; processing, by the device, according to instructions or data received in the input sequences of data frames, to produce an intermediate result; and processing the intermediate result and information received in said one or more sequences of data frames resulting in the result.
2. Description
Disclosed are, inter alia, methods, apparatus, computer-storage media, mechanisms, and means associated with cascaded communication of groups of serialized data streams through devices, and the operations of these devices based on information communicated therein. Typically, a received group of serialized data streams is aligned, but not framed, and forwarded to a next device (e.g., a next stage in a linear or tree cascaded formation of devices). Eliminating the framing and subsequent serialization operations performed on the received group of serialized data streams reduces the latency of communications through the cascaded devices, which can be significant when considered in relation to the high-speed communication rates. The received group of serialized data streams is also framed to create a sequence of data frames for processing within the device.
Embodiments described herein include various elements and limitations, with no one element or limitation contemplated as being a critical element or limitation. Each of the claims individually recites an aspect of the embodiment in its entirety. Moreover, some embodiments described may include, but are not limited to, inter alia, systems, networks, integrated circuit chips, embedded processors, ASICs, methods, and computer-readable media containing instructions. One or multiple systems, devices, components, etc. may comprise one or more embodiments, which may include some elements or limitations of a claim being performed by the same or different systems, devices, components, etc. A processing element may be a general processor, task-specific processor, a core of one or more processors, or other co-located, resource-sharing implementation for performing the corresponding processing. The embodiments described hereinafter embody various aspects and configurations, with the figures illustrating exemplary and non-limiting configurations. Note, computer-readable media and means for performing methods and processing block operations (e.g., a processor and memory or other apparatus configured to perform such operations) are disclosed and are in keeping with the extensible scope and spirit of the embodiments. Note, the term “apparatus” is used consistently herein with its common definition of an appliance or device.
Note, the steps, connections, and processing of signals and information illustrated in the figures, including, but not limited to, any block and flow diagrams and message sequence charts, may typically be performed in the same or in a different serial or parallel ordering and/or by different components and/or processes, threads, etc., and/or over different connections and be combined with other functions in other embodiments, unless this disables the embodiment or a sequence is explicitly or implicitly required (e.g., for a sequence of read the value, process said read value—the value must be obtained prior to processing it, although some of the associated processing may be performed prior to, concurrently with, and/or after the read operation). Also note, nothing described or referenced in this document is admitted as prior art to this application unless explicitly so stated.
The term “one embodiment” is used herein to reference a particular embodiment, wherein each reference to “one embodiment” may refer to a different embodiment, and the use of the term repeatedly herein in describing associated features, elements and/or limitations does not establish a cumulative set of associated features, elements and/or limitations that each and every embodiment must include, although an embodiment typically may include all these features, elements and/or limitations. In addition, the terms “first,” “second,” etc. are typically used herein to denote different units (e.g., a first element, a second element). The use of these terms herein does not necessarily connote an ordering such as one unit or event occurring or coming before another, but rather provides a mechanism to distinguish between particular units. Moreover, the phrases “based on x” and “in response to x” are used to indicate a minimum set of items “x” from which something is derived or caused, wherein “x” is extensible and does not necessarily describe a complete list of items on which the operation is performed, etc. Additionally, the phrase “coupled to” is used to indicate some level of direct or indirect connection between two elements or devices, with the coupling device or devices modifying or not modifying the coupled signal or communicated information. Moreover, the term “or” is used herein to identify a selection of one or more, including all, of the conjunctive items. Additionally, the transitional term “comprising,” which is synonymous with “including,” “containing,” or “characterized by,” is inclusive or open-ended and does not exclude additional, unrecited elements or method steps. Finally, the term “particular machine,” when recited in a method claim for performing steps, refers to a particular machine within the 35 USC §101 machine statutory class.
One embodiment includes an apparatus, comprising a first integrated circuit device, which includes a first interface configured to receive a first plurality of serialized data streams from a source external to the first integrated circuit device; first framing circuitry, communicatively coupled to the first interface, configured to produce a first sequence of data frames from the first plurality of serialized data streams; processing circuitry configured to perform operations based on the first sequence of data frames; first phase aligning circuitry, communicatively coupled to the first interface, configured to align, but not frame, the first plurality of serialized data streams to produce a first aligned plurality of serialized data streams; and a second interface configured to produce the first aligned plurality of serialized data streams from the first integrated circuit device, with the first aligned plurality of serialized data streams not being framed within the first integrated circuit device.
In one embodiment, said processing circuitry is configured to generate a second sequence of data frames; and wherein the first integrated circuit device includes: second framing circuitry configured to produce a second plurality of serialized data streams based on the second sequence of data frames; and a third interface configured to produce the second plurality of serialized data streams from the first integrated circuit device. In one embodiment, said processing circuitry includes associative memory circuitry configured to perform a lookup operation, based on a lookup word generated from, or included in, the first sequence of data frames, to produce a first lookup result; wherein said processing circuitry is configured to include the first lookup result in the second sequence of data frames.
In one embodiment, the first integrated circuit device includes: a fourth interface configured to receive a third plurality of serialized data streams from a source external to the first integrated circuit device; and third framing circuitry, communicatively coupled to the fourth interface, configured to produce a third sequence of data frames from the third plurality of serialized data streams; and wherein said processing circuitry is configured to perform operations based on the first sequence of data frames and on the third sequence of data frames.
In one embodiment, said processing circuitry includes associative memory circuitry configured to perform a lookup operation, based on a lookup word generated from, or included in, the first sequence of data frames, to produce a first lookup result; wherein the third sequence of data frames includes a second lookup result corresponding to an associative memory lookup operation performed in response to an instruction included in the first aligned plurality of serialized data streams; and wherein said processing circuitry is configured to determine an integrated circuit device lookup result based on the first lookup result and the second lookup result, and to include the integrated lookup result in the second sequence of data frames. In one embodiment, the apparatus includes a second integrated circuit device communicatively coupled to receive the first aligned plurality of serialized data streams and to generate the third plurality of serialized data streams; and wherein the second integrated circuit device includes associative memory circuitry configured to perform a lookup operation, based on a lookup word generated from, or included in, the first aligned plurality of serialized data streams, to produce the second lookup result.
In one embodiment, the apparatus includes a second integrated circuit device communicatively coupled to receive the first aligned plurality of serialized data streams and to generate the third plurality of serialized data streams; wherein the second integrated circuit device includes associative memory circuitry configured to perform a lookup operation, based on a lookup word generated from, or included in, the first aligned plurality of serialized data streams, to produce a second lookup result included in the third plurality of serialized data streams; wherein said processing circuitry includes associative memory circuitry configured to perform a lookup operation, based on a lookup word generated from, or included in, the first sequence of data frames, to produce a first lookup result; wherein said associative memory circuitry of the first integrated circuit device has a higher priority than said associative memory circuitry of the second integrated circuit device; and wherein said processing circuitry is configured to determine an integrated circuit device lookup result based on the first lookup result and said higher priority of said associative memory circuitry of the first integrated circuit device prior to receiving the second lookup result, and to include the integrated lookup result in the second sequence of data frames.
In one embodiment, the apparatus includes a second integrated circuit device communicatively coupled to receive the first aligned plurality of serialized data streams and to generate the third plurality of serialized data streams; and wherein the second integrated circuit device includes general processing circuitry, without associative memory circuitry, configured to perform operations based on one or more instructions generated from, or included in, the first aligned plurality of serialized data streams, and to produce one or more results included in the third plurality of serialized data streams. In one embodiment, the first integrated circuit device is configured to include said one or more results in the second sequence of data frames and the second plurality of serialized data streams.
In one embodiment, said perform operations based on the first sequence of data frames and on the third sequence of data frames includes processing according to one or more instructions in the third sequence of data frames which were received in the third plurality of serialized data streams. In one embodiment, the first integrated circuit device includes: second phase aligning circuitry, communicatively coupled to the first interface, configured to align, but not frame, the first plurality of serialized data streams to produce a second aligned plurality of serialized data streams; a fifth interface configured to produce the second aligned plurality of serialized data streams from the first integrated circuit device, with the second aligned plurality of serialized data streams not being framed within the first integrated circuit device; a sixth interface configured to receive a fourth plurality of serialized data streams from a source external to the first integrated circuit device; and fourth framing circuitry, communicatively coupled to the sixth interface, configured to produce a fourth sequence of data frames from the fourth plurality of serialized data streams; and wherein said processing circuitry is configured to perform operations based on the first sequence of data frames, based on the third sequence of data frames, and based on the fourth sequence of data frames.
In one embodiment, the first integrated circuit device includes: second phase aligning circuitry, communicatively coupled to the first interface, configured to align, but not frame, the first plurality of serialized data streams to produce a second aligned plurality of serialized data streams; and a fifth interface configured to produce the second aligned plurality of serialized data streams from the first integrated circuit device, with the second aligned plurality of serialized data streams not being framed within the first integrated circuit device.
One embodiment includes an integrated circuit device, comprising: an input interface configured to receive an input plurality of serialized data streams from a source external to the integrated circuit device; first phase aligning circuitry, communicatively coupled to the input interface, configured to align, but not frame, the input plurality of serialized data streams to produce a first aligned plurality of serialized data streams; a first interface configured to produce the first aligned plurality of serialized data streams from the integrated circuit device, with the first aligned plurality of serialized data streams not being framed within the integrated circuit device; second phase aligning circuitry, communicatively coupled to the input interface, configured to align, but not frame, the input plurality of serialized data streams to produce a second aligned plurality of serialized data streams; a second interface configured to produce the second aligned plurality of serialized data streams from the integrated circuit device, with the second aligned plurality of serialized data streams not being framed within the integrated circuit device; a third interface configured to receive a second plurality of serialized data streams from a source external to the integrated circuit device; first framing circuitry, communicatively coupled to the third interface, configured to produce a first sequence of data frames from the second plurality of serialized data streams; a fourth interface configured to receive a third plurality of serialized data streams from a source external to the integrated circuit device; second framing circuitry, communicatively coupled to the fourth interface, configured to produce a second sequence of data frames from the third plurality of serialized data streams; combining and framing circuitry configured to produce an output plurality of serialized data streams based on the first sequence of data frames and on the second sequence of data frames; and an output configured to produce the output plurality of serialized data streams from the integrated circuit device.
One embodiment comprises: receiving, by a device, a first plurality of serialized data streams from a source external to the first device; communicating, from the device, one or more copies of the first plurality of serialized data streams, each of said one or more copies of the first plurality of serialized data streams having been phase aligned by the device, but not framed by the device; framing each of one or more second plurality of serialized data streams received from a same or different source external to the first device to generate one or more sequences of data frames; producing a result based on said one or more sequences of data frames; generating an output plurality of serialized data streams including by framing the result; and sending, from the device, the output plurality of serialized data streams.
In one embodiment, the device is an integrated circuit device in a cascade of a plurality of integrated circuit devices. In one embodiment, said producing the result includes multiplexing said one or more sequences of data frames. In one embodiment, said producing the result includes: framing the first plurality of serialized data streams to generate an input sequence of data frames; processing, by the device, according to instructions or data received in the input sequences of data frames, to produce an intermediate result; and processing the intermediate result and information received in said one or more sequences of data frames resulting in the result. In one embodiment, said processing according to said instructions or data received in the input sequences of data frames to produce the intermediate result includes performing an associative memory lookup operation in the device based on a lookup word generated from, or included in, the input sequences of data frames. In one embodiment, said information received in said one or more sequences of data frames includes a subsequent stage lookup result performed according to instructions or data included in at least one of said one or more copies of said serialized data streams said communicated from the device. In one embodiment, said one or more copies of the first plurality of serialized data streams consists of one copy of the first plurality of serialized data streams; and wherein said one or more second plurality of serialized data streams consists of one plurality of serialized data streams.
Expressly turning to the figures, <figref idref="DRAWINGS">FIG. 1A</figref> illustrates a device <b>100</b> (e.g., an integrated circuit device, component), which is in communication with other device(s) in a cascaded arrangement. In one embodiment, input serialized data streams <b>101</b> are received from, and output serialized data streams <b>107</b> are communicated to, a host device or other device in the cascaded arrangement. In one embodiment, downstream serialized data streams <b>103</b> are communicated to, and downstream serialized data streams <b>105</b> are received from, a host device or other device in the cascaded arrangement. In one embodiment, multiple copies of device <b>100</b> are accordingly communicatively coupled in a cascaded arrangement (e.g., downstream serialized data streams <b>103</b> of a first device corresponds to input serialized data streams <b>101</b> of a second device, and output serialized data streams <b>107</b> of the second device corresponds to downstream serialized data streams <b>105</b> of the first device). In one embodiment, an apparatus includes one or more copies of device <b>100</b> and one or more different devices.
In a manner such as that illustrated by <figref idref="DRAWINGS">FIG. 1A</figref>, input serialized data streams can be proliferated quickly and efficiently through an apparatus comprising multiple devices <b>100</b>, or variants thereof, without framing and serialization delays at each cascaded device <b>100</b> of an apparatus. As shown, input serialized data streams <b>101</b> are received on interface <b>110</b> of device <b>100</b> as serialized data streams <b>111</b>. For each of one or more downstream serialized data streams <b>103</b> to be send from device <b>100</b> via an interface <b>114</b>, a phase aligner <b>112</b> phase aligns a copy of serialized data streams <b>111</b>, with this aligned serialized data streams <b>113</b> provided to an output interface <b>114</b>. Note, downstream serialized data streams <b>103</b> is a phase aligned, with no framing, copy of input serialized data streams <b>101</b>. In one embodiment, information included in serialized data steams <b>101</b>, <b>103</b>, <b>105</b>, and/or <b>107</b> is channelized such that it can be addressed to a single device, multiple devices, or all devices so they can be provided same or different information (e.g., instructions, parameters, data) for performing operations.
Additionally, framer <b>122</b> frames a copy of serialized data streams <b>111</b> to produce a sequence of data frames <b>123</b> for internal processing. In particular, data frames <b>123</b> are received by processing circuitry <b>124</b>. In one embodiment, data frames <b>123</b> include instructions, parameters, lookup words, and/or other information for use by processing circuitry <b>124</b>. For example, such information may include an instruction and/or parameters to perform a lookup operation based on a particular lookup word in associative memory circuitry within processing circuitry <b>124</b>. In one embodiment, such information may include an instruction and/or parameters to perform some processing (e.g., packet processing, regular expression matching, any data manipulation, multiplexing of sequences of data frames).
Further, processing circuitry <b>124</b> may also operate, alone or in conjunction with sequence of data frames <b>123</b>, according to data and/or instructions in information received in one or more groups of downstream serialized data streams <b>105</b> received on interface(s) <b>130</b>. Each of these one or more serialized data streams <b>131</b> are processed by a framer <b>132</b> to produce a sequence of data frames <b>133</b> provided to processing circuitry <b>124</b>.
Processing circuitry <b>124</b> performs its operations independently, or also on data received from another cascaded device, and produces an output sequence of data frames <b>141</b>, which are processed by framer <b>142</b> to generate serialized data streams <b>143</b>, which are sent from interface <b>144</b> as output serialized data streams <b>107</b>.
In one embodiment, devices <b>100</b> operate asynchronously in that they do not need to wait for a result from a neighboring device to proceed, and may perform multiple operations independently of the other devices <b>100</b> in the apparatus. Further, typically in a cascade of devices there is one host device such as that communicatively coupled to a device <b>100</b> by input serialized data streams <b>101</b> and output serialized data streams <b>107</b>. However, in one embodiment, the same host device or another host device is communicatively coupled to a last stage of cascaded devices <b>100</b> through downstream serialized data streams <b>103</b> and <b>105</b>.
<figref idref="DRAWINGS">FIG. 1B</figref> illustrates a process performed in one embodiment of a device (e.g., device <b>100</b> of <figref idref="DRAWINGS">FIG. 1A</figref>). Processing begins with process block <b>160</b>. In process block <b>162</b>, input serial data streams are received. In process block <b>164</b>, one or more copies of the received input serial data streams are phase aligned and sent out (unless, in one embodiment, it is a last stage with no subsequent device to receive this information). In process block <b>166</b>, a copy of the received input serialized data streams is framed to produce an input sequence to data frames, which are provided to processing circuitry.
In process block <b>168</b>, one or more downstream serialized data streams are received from other connected devices. In process block <b>170</b>, each of these received downstream serialized data streams is framed to produce a downstream sequence of data frames provided to processing circuitry.
In process block <b>172</b>, processing circuitry processes the input and downstream sequences of data streams to produce an output sequence of data frames. In process block <b>174</b>, the output sequence of data frames is serialized to produce output serialized data streams, which are sent out of the device in process block <b>176</b>. Processing of the flow diagram of <figref idref="DRAWINGS">FIG. 1B</figref> is complete as indicated by process block <b>179</b>.
<figref idref="DRAWINGS">FIG. 2A</figref> illustrates device <b>200</b> of one embodiment (e.g., of device <b>100</b> of <figref idref="DRAWINGS">FIG. 1A</figref>) in which processing circuitry <b>224</b> includes associative memory circuitry. As shown, input serialized data streams <b>201</b> are received by device <b>200</b>, which phase aligns (by phase aligner <b>212</b>) the received serialized data streams and sends them out as downstream serialized data streams <b>203</b> if there is a downstream connected device or host. A copy of input serialized data streams <b>201</b> is also framed (by framer <b>222</b>) to produce sequence of data frames <b>223</b>. Additionally, downstream serialized data streams <b>205</b> are received and framed (by framer <b>232</b>) to produce a second sequence of data frames <b>233</b>.
Processing circuitry receives and processes sequences of data frames <b>223</b> and <b>233</b>, including typically performing one or more lookup operations in its associative memory circuitry. Processing circuitry <b>224</b> determines one or more results included in sequence of data frames <b>241</b>, which are serialized (by framer <b>242</b>) to generate output serialized data streams <b>207</b> sent from device <b>200</b> to another device (e.g., another device <b>200</b>, device <b>100</b> of <figref idref="DRAWINGS">FIG. 1A</figref>, host device).
For example, in one embodiment, each device <b>200</b> of a cascade of multiple devices <b>200</b> includes associative memory circuitry configured to perform lookup operations. Each of these devices <b>200</b> may be instructed to perform a lookup operation in its associative memory circuitry, which can be done in parallel as the instruction information is quickly proliferated to all cascaded devices <b>200</b> in the phase aligned, but not reframed, input serialized data streams <b>201</b>/downstream serialized data streams <b>203</b>. In this configuration, typically the highest priority associative memory entries are included in the first device <b>200</b> (e.g., the first associative memory device receiving instructions from a host device and sending instructions to other associative memory device(s) <b>200</b> in the cascade of devices), with priority decreasing in the sequence of devices <b>200</b> in the cascade of devices.
In one embodiment, devices <b>200</b> operate asynchronously in that they do not need to wait for a result from a neighboring device to proceed, and may perform multiple operations independently of the other devices <b>200</b> in the apparatus. Also, by structuring the priority of associative memory entries of devices <b>200</b> from highest to lowest, a device <b>200</b> in which its associative memory circuitry (<b>224</b>) identifies a match/hit, it can send out the result without waiting for a result in downstream serialized data streams <b>205</b> sent from its neighbor (which typically are subsequently dropped).
<figref idref="DRAWINGS">FIG. 2B</figref> illustrates device <b>270</b>, which is one embodiment of device <b>100</b> of <figref idref="DRAWINGS">FIG. 1A</figref>. Device <b>270</b> operates in a manner similar to device <b>200</b> of <figref idref="DRAWINGS">FIG. 2A</figref> with the explicit capability for communicatively coupling to multiple downstream devices in parallel. Input serialized data streams <b>261</b> are cascaded to each of these downstream devices after each copy has its phase aligned. Circuitry <b>271</b> is configured to communicate input serialized data streams <b>261</b>, aligned by device <b>270</b>, to each of n devices as downstream serialized data streams <b>262</b>-<b>263</b> (e.g., one to each of n devices). Circuitry <b>272</b> is configured to receive and frame each of downstream serialized data streams <b>264</b>-<b>265</b> (e.g., one from each of n devices) to provide n sequences of data frames <b>273</b> for processing by processing circuitry <b>274</b>. In one embodiment, processing circuitry <b>274</b> includes multiplexing circuitry in addition to the associative memory circuitry.
<figref idref="DRAWINGS">FIG. 2C</figref> illustrates a process performed by processing circuitry <b>224</b> of <figref idref="DRAWINGS">FIG. 2A</figref> and/or processing circuitry <b>274</b> of <figref idref="DRAWINGS">FIG. 2B</figref> in one embodiment. Processing begins with process block <b>280</b>. In process block <b>281</b>, processing circuitry acquires the information from the input serialized data streams (and/or possibly in downstream serialized data streams) received by the device including processing circuitry. As determined in process block <b>282</b>, if the information corresponds to an instruction to update the associative memory (e.g., program associative memory entries, profiles), then in process block <b>283</b>, the associative memory programming is updated accordingly. Processing of the flow diagram of <figref idref="DRAWINGS">FIG. 2C</figref> is complete as indicated by process block <b>290</b>.
Otherwise, as determined in process block <b>282</b>, the information corresponds to a lookup operation, which is performed in process block <b>284</b>. As determined in process block <b>285</b>, if the device does not need to wait from other result(s) from another device, then in process block <b>289</b>, the lookup result is sent out. For example, if the processing circuitry determines a match/hit and all downstream devices have a lower priority or there are no downstream devices, then the result can be sent out immediately. If, however, the device needs to wait for other results as determined in process block <b>285</b>, then the result determined by the processing circuitry is buffered and the processing circuitry operates on other tasks. In process block <b>287</b>, in response to receiving the other result(s), an output result is determined from all of the intermediate results (e.g., local and remotely determined). In process block <b>288</b>, the lookup result is sent out. Processing of the flow diagram of <figref idref="DRAWINGS">FIG. 2C</figref> is complete as indicated by process block <b>290</b>.
<figref idref="DRAWINGS">FIG. 3</figref> illustrates device <b>300</b>, which is one embodiment of device <b>100</b> of <figref idref="DRAWINGS">FIG. 1A</figref>. Similarly described in relation to <figref idref="DRAWINGS">FIG. 2B</figref>, device <b>300</b> includes the explicit capability for communicatively coupling to multiple downstream devices in parallel. Input serialized data streams <b>301</b> are cascaded to each of these downstream devices after each copy has its phase aligned. Circuitry <b>311</b> is configured to communicate input serialized data streams <b>301</b>, aligned by device <b>300</b>, to each of n devices as downstream serialized data streams <b>302</b>-<b>303</b> (e.g., one to each of n devices). Circuitry <b>321</b> is configured to receive and frame each of downstream serialized data streams <b>304</b>-<b>305</b> (e.g., one from each of n devices) to provide n sequences of data frames <b>325</b> for processing by processing circuitry <b>330</b>. Processing circuitry <b>330</b> includes multiplexing circuitry for multiplexing each of the n sequences of data frames <b>325</b> to produce a single output sequence of data frames <b>331</b>, which is serialized by framer <b>332</b>, resulting in output serialized data streams <b>306</b>.
In view of the many possible embodiments to which the principles of the disclosure may be applied, it will be appreciated that the embodiments and aspects thereof described herein with respect to the drawings/figures are only illustrative and should not be taken as limiting the scope of the disclosure. For example, and as would be apparent to one skilled in the art, many of the process block operations can be re-ordered to be performed before, after, or substantially concurrent with other operations. Also, many different forms of data structures could be used in various embodiments. The disclosure as described herein contemplates all such embodiments as may come within the scope of the following claims and equivalents thereof.
Contents4
7 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7
Every citation, both waysCites: the store holds 33 of 34
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2002075903A1 | Cites | United States of America | Search report |
| US2002097682A1 | Cites | United States of America | Search report |
| US2002154658A1 | Cites | United States of America | Search report |
| US2003035064A1 | Cites | United States of America | Search report |
| US2010002755A1 | Cites | United States of America | Search report |
| US2010008460A1 | Cites | United States of America | Search report |
| US2010026984A1 | Cites | United States of America | Search report |
| US5467347A | Cites | United States of America | Search report |
| US5546401A | Cites | United States of America | Search report |
| US6526474B1 | Cites | United States of America | Search report |
| US6763426B1 | Cites | United States of America | Search report |
| US6788683B1 | Cites | United States of America | Search report |
| US6804316B1 | Cites | United States of America | Search report |
| US6954823B1 | Cites | United States of America | Search report |
| US6961808B1 | Cites | United States of America | Search report |
| US6966009B1 | Cites | United States of America | Search report |
| US7013359B1 | Cites | United States of America | Search report |
| US7028136B1 | Cites | United States of America | Search report |
| US7065609B2 | Cites | United States of America | Search report |
| US7103708B2 | Cites | United States of America | Search report |
| US7237059B2 | Cites | United States of America | Search report |
| US7337267B1 | Cites | United States of America | Search report |
| US7478193B2 | Cites | United States of America | Search report |
| US7773590B2 | Cites | United States of America | Search report |
| US7941605B1 | Cites | United States of America | Search report |
| US7941606B1 | Cites | United States of America | Search report |
| US20020075903A1 | Cites | United States of America | Search report |
| US20020097682A1 | Cites | United States of America | Search report |
| US20020154658A1 | Cites | United States of America | Search report |
| US20030035064A1 | Cites | United States of America | Search report |
| US20100002755A1 | Cites | United States of America | Search report |
| US20100008460A1 | Cites | United States of America | Search report |
| US20100026984A1 | Cites | United States of America | Search report |
| Gustlin et al., "Interlaken Technology: New-Generation Packet Interconnect Protocol," White Paper, Cisco Systems, Inc. et al., San Jose, CA, Mar. 8, 2007 (sixteen pages). | Non-patent | – | Applicant |
| Gustlin et al., “Interlaken Technology: New-Generation Packet Interconnect Protocol,” White Paper, Cisco Systems, Inc. et al., San Jose, CA, Mar. 8, 2007 (sixteen pages). | Non-patent | – | Applicant |
2 members in 1 office
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 201213658960 | United States of America | A | |
| US201213658960 | – | – | – |
Members2
| Document | Office | Kind | |
|---|---|---|---|
| US2014112342A1 | United States of America | A1 | |
| US9270397B2This record | United States of America | B2 |
40 transactions on the USPTO file
Allowed after 1 non-final rejection.
- Non-final rejections
- 1
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Email NotificationEML_NTR | EML_NTR | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Correspondence Address ChangeC.AD | C.AD | |
| Payment of Maintenance Fee, 4th Year, Large EntityM1551 | M1551 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Filing Receipt - CorrectedFLRCPT.C | FLRCPT.C | |
| Miscellaneous Incoming LetterLET. | LET. | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Mail Interview Summary - Applicant Initiated - TelephonicMEXAT | MEXAT | |
| Response after Non-Final ActionA... | A... | |
| Interview Summary- Applicant InitiatedEXIA | EXIA | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Filing Receipt - ReplacementFLRCPT.R | FLRCPT.R | |
| Sent to Classification ContractorPGPC | PGPC | |
| Application Is Now CompleteCOMP | COMP | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Cleared by OIPE CSRL194 | L194 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Initial Exam Team nnIEXX | IEXX |
4 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Maintenance fee paymentMAFP | MAFP | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS |
Numbers
- Publication
- 09270397
- Publication, DOCDB
- 9270397
- Publication, EPODOC
- US9270397
- Application
- 13658960
- Application, DOCDB
- 201213658960
- Application, EPODOC
- US201213658960
Titles
- English
- Cascaded communication of serialized data streams through devices and their resulting operation
Patent term adjustment
- A delay
- +462 daysthe office missed an examination deadline
- B delay
- +122 dayspendency past three years
- Overlap
- −22 daysdelays counted once
- Applicant delay
- −120 days
- Net adjustment
- 442 days
Classification
- CPC, 2
- H04J3/0685
- H04J3/047
- IPC, 3
- H04J3 04
- H04J3 06
- H04L12 56
- USPC, 1
- 001001000