This invention relates to packet communications devices and methods and, more particularly, to packet switching devices and methods.
Increasing demand for communications services have generally increased bandwidth requirements for network components. For example, the increased volume of wireless communications has been generally accompanied by an increase in the bandwidth requirements between wireless terminals and base stations. Users demanding more information and more services from their cell phones and other wireless devices can overwhelm available bandwidth. Wireless service providers are migrating to 2.5 G and 3 G technologies to mitigate this problem. These technologies generally enable more data per broadcast band than 2 G technologies, which can be used to give more bandwidth to individual users or to serve more users in the same cell area.
An important aspect of 3 G wireless communications systems is closed loop power control. For example, in wideband code division multiple access (WCDMA) systems, it is typically desirable that a base station be capable of telling a mobile terminal to adjust its transmission power within 5 milliseconds after receiving a packet from the terminal. This can be the most constraining limitation on total delay in the base station, as it includes the round-trip delay of received radio signal sample going from an RF card, to a baseband card, and on to a control card, and back to the baseband card, RF card, and antenna. Each base station may have several RF and baseband cards, and signal samples may be transferred between any given RF card and any given baseband card. Reducing latency in transferring data between these cards tends to be important.
Different architectures may be used to convey data between such cards. In a full-mesh architecture, each RF card is connected to each baseband card. A switched architecture provides a multiple-input multiple-output switch between the RF and baseband cards. The switched architecture can provide improved scalability and flexibility, but may add more latency than the full-mesh solution. Also, for smaller systems, a full-mesh architecture may be less expensive than a switched architecture.
Integrated circuits (ICs) have been developed that can support communications between base station components, such as RF cards and baseband cards. For example, Spectrum Signal Processing Inc. offers the ASIC-based Solano™ chip that can be used to interface processors, such as digital signal processors (DSPs), RISC processors, and FPGAs, and sources of data, such as RF cards. The chip includes eight high-speed FIFOs, with associated control logic, that are paired to form four full-duplex channels. Tundra Semiconductor Corporation offers Serial RapidIO® chips that include a switching fabric that can be used to provide a switched architecture between RF and baseband cards.
In some embodiments of the present invention, a packet processing integrated circuit chip includes a plurality of input ports configured to receive packets from respective external sources and a plurality of output ports configured to transmit packets to respective external recipients. The chip further includes a packet processor configurable to extract data from payloads of the received packets, to process the extracted data to produce new packets with payloads having formats compatible with data structures of the external recipients, and to convey the new packets to the output ports. The chip may further include a packet switching fabric configured to route selected packets from the input ports to selected ones of the output ports without payload modification.
According to some embodiments, the data structures may include, for example, processor data structures for processors at the external recipients. The packet processor may be configurable to perform, for example, bit extension, bit truncation, bit reordering and/or bit arithmetic operations on the extracted payloads to generate the payloads of the new packets.
In some embodiments of the present invention, the packet processor supports a plurality of packet processing scenarios. The packet processor may selectively apply the packet processing scenarios based on destination addresses in the packets. The packet processing scenarios may include individual packet processing scenarios and group packet processing scenarios that invoke concurrent processing by selected ones of the individual packet processing scenarios.
In additional embodiments, an interface circuit for conveying data between a first plurality of circuit cards and a second plurality of circuit cards includes a plurality of input ports configured to receive packets from respective ones of the first plurality of circuit cards and a plurality of output ports configured to transmit packets to respective ones of the second plurality of circuit cards. The interface circuit further includes a packet processor configurable to extract data from payloads of the received packets, to process the extracted data to produce new packets with payloads having formats compatible with data structures of the external recipients, and to convey the new packets to the output ports. The interface circuit may further include a packet switching fabric configured to route selected packets from the input ports to selected ones of the output ports without payload modification. In exemplary embodiments, the plurality of input ports are configured to receive packets from respective ones of a plurality of RF cards and the plurality of output ports are configured to transmit packets to respective ones of a plurality of baseband cards. The data structures may include data structures of baseband processors on the baseband cards.
Specific exemplary embodiments of the invention now will be described with reference to the accompanying drawings. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. In the drawings, like numbers refer to like elements. It will be understood that when an element is referred to as being “connected” or “coupled” to another element, it can be directly connected or coupled to the other element or intervening elements may be present. Furthermore, “connected” or “coupled” as used herein may include wirelessly connected or coupled. As used herein the term “and/or” includes any and all combinations of one or more of the associated listed items.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless expressly stated otherwise. It will be further understood that the terms “includes,” “comprises,” “including” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
The packet processor 130 synthesizes new packets with new payloads from selected packets received at the input ports 110 according to selected packet processing scenarios (PPScs) 132, with the synthesized packets being transmitted to external recipient devices via the output ports 120. As explained in detail below, the packet processing scenarios 132 may include various payload manipulations, such as bit extension, bit truncation, bit reordering (e.g., interleaving and/or flipping), and combining (e.g., summing or other arithmetic operations) of payloads from multiple received packets. Thus, for example, when used in a signal sample processing application such as in a wireless base station, the chip 100 can relieve the external recipient, e.g., a digital signal processor (DSP) or chip rate processor (CRP), of the burden of reformatting a received signal sample stream for downstream operations, such as baseband processing. In addition, the packet processing scenarios 132 may be user-configurable, allowing the chip to be used for a variety of different communications protocols and/or messaging formats.
In various embodiments of the present described herein, a packet processing chip, such as the chip 100 illustrated in
As shown in
An example of an input/output port configurability scheme is illustrated in
Referring again to
Assuming, for purposes of the illustrated embodiments, that the received packets are RapidIO™ packets that include priority fields therein, the received packets intended for the switching fabric 540 may be stored in input buffers 542 based on the priority information in the received packets, and provided to a packet switch 544 according to the priority structure of the input buffers 542. Respective groups of the input buffers 542 are associated with respective ones of the input ports 510. The priority structure of each group of input buffers 542 may be user-configurable. For example, certain buffers may be assigned (e.g., using configuration registers) to receive packets having different ones of RapidIO™ priority levels 0-3. The switch 544 routes the packets from the input buffers 542 to various ones of a plurality of priority-structured groups of output buffers 546, with respective ones of the groups of output buffers 546 being associated with respective ones of the output ports 520.
In the packet processor 530, received packets to be processed in packet processing scenarios 534 are stored in input buffers 532. The packet processing scenarios 534 synthesize packets from the stored received packets. The synthesized packets are stored in output buffers 536, respective groups of which are associated with respective ones of the output ports 520. The synthesized packets may include priority information recovered from the received packets. The packets stored in the output buffers 536, 546 may be routed to the output ports 520 using, for example, round robin scheduling algorithms.
According to certain embodiments of the present invention illustrated in
As shown in
A packet processing scenario may receive, for example, packets corresponding to M channels, with N signal samples per channel and R repetitions of this structure in each packet. After termination of the packet overhead, packet payloads stored in the packet processor input buffers may look as illustrated in
Beyond bit extension/truncation operations, the sample processing 810 may include reordering operations, such as rearranging the order of subsamples and /or the order of bits within samples. For example, assuming a sample is 4 bits I and 4-bits Q, the sample processing 810 may including flipping the I and Q subsamples individually as follows:
The sample processing 810 may also rearrange the order of subsamples in a sample as follows:
The sample processing 810 may also interleave I and Q bits as follows:
These and other operations in the sample processing 810 may need to be performed in a particular order to maintain sample integrity. For example, assuming that input samples have an IQ format, are IQ interleaved, and each I and Q subsample has 6 bits, to produce an interleaved, IQ-flipped, sign-extended output, operations may need to be performed as follows:
As shown in
A given packet processing scenario also may be set up to provide for summing or other arithmetic operations on payloads from multiple packets, as illustrated in
Exemplary use of a packet processing switch chip in a wireless base station environment according to some embodiments of the present invention will now be described with reference to
A typical wireless base station architecture is shown in
A first example of packet processing according to some embodiments of the present invention is illustrated in
A second example of packet processing according to further embodiments of the present invention is illustrated in
In some applications, a user may want to send different packets to different destination groups. To do this, the user may send the packet to a group packet processing scenario address using an addressing scheme along the lines described above with reference to
An example of such multiple-packet to multiple-destination packet processing according to further embodiments of the present invention is illustrated in
Referring again to
According to some embodiments of the present invention, a packet processor operates using a dynamic packet accumulation approach. Once all incoming packets needed to complete a particular scenario have been accumulated at the device, they are processed to form one or more output packets associated with the scenario. The output packet(s) is then transmitted out of the output port(s) associated with the scenario. In some embodiments, each packet processing scenario processes one input packet per port per processing interval, with all input packets being used by a particular scenario running at substantially the same data rate and having the same size and format.
In some embodiments, dynamic packet accumulation may be implemented using a state machine that transitions responsive to accumulation and processing events. Each scenario may be configured (e.g., via configuration registers, such as the configuration registers 250 in
A packet processing scenario may be initialized, for example, by a write to an initialization register or some other initialization signal. A succeeding received packet associated with the packet processing scenario (e.g., a packet addressed to the scenario's address) may then be considered as the first packet into the scenario.
Different scenarios may have different latencies associated with the size and packet processing needed. Generally, processing time is dependant on the amount of data sent to a scenario (size of packet and number of incoming ports), and the type of calculation (sample manipulation, addition, etc.).
The dynamic packet accumulation described above can provide significant flexibility in system synchronization. According to some embodiments of the present invention, packet processing scenarios wait for the first packet to arrive to begin the accumulation phase on a per scenario basis. This allows for initialization of the packet processor before bringing up the transmitters connected to the device, because each scenario begins operating after it begins receiving packets.
If a “standard” packet that is not intended for payload processing (e.g., a packet that is to be routed by a switching fabric, such as the switching fabric 130 of
Accumulation of packets may be limited to an accumulation window defined by arrival of a first packet. This requirement can tie the valid arrival window for packets going to the same scenario to the data rate of the links, as illustrated in
In further embodiments of the present invention, a time-division multiplexed (TDM) mode of operation may be achieved by sending packets at times dictated by the longest processing time of all the operative scenarios in the packet processor. Referring to
The FRCs 2920 access packets stored in the input buffers 2905 responsive to control signals generated by a sample counter and FRC control unit 2915. The sample counter and FRC control unit 2915 generates the control signals responsive to error and control information generated by the synchronization monitor module 2910, address information from a pointer table 2950, and packet processing scenario control information from configuration registers of an input/output sample configuration memory 2970. The FRCs 2920 transfer payload data from the input buffers 2905 to a set of first bit manipulators 2925, which perform de-interleaving, sign extension and/or bit deletion operations as specified by packet processing scenario control information stored in the input/output sample configuration memory 2970.
A data mux and summing unit 2930 performs summation operations as specified by packet processing scenario control information stored in the input/output sample configuration memory 2970, and may further perform dynamic/saturation ranging of the summation outputs. The output of the data mux and summing unit 2930 is provided to a bit manipulator 2935, which performs flipping (e.g., MSB/LSB), IQ ordering and/or IQ interleaving operations as specified by packet processing scenario control information stored in the input/output sample configuration memory 2970. The bit manipulator 2935 provides the processed data, along with an address and mask, to an output packet memory 2940. Data is transferred from the output packet memory 2940 to the packet framer 2965, which constructs new packets using header information from the sample counter and FRC control unit 2915 and an output packet destination memory 2960.
It will be appreciated that the packet processing switch architectures describe above are illustrative examples, and that other packet processing switch architectures fall within the scope of the present invention. More generally, in the drawings and specification, there have been disclosed exemplary embodiments of the invention. Although specific terms are employed, they are used in a generic and descriptive sense only and not for purposes of limitation, the scope of the invention being defined by the following claims.
The present application claims the benefit of U.S. Provisional Application Ser. No. 60/672,349, filed Apr. 18, 2005, the disclosure of which is hereby incorporated by reference herein in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
4473880 | Budde et al. | Sep 1984 | A |
4932028 | Katircioglu et al. | Jun 1990 | A |
4987529 | Craft et al. | Jan 1991 | A |
4991171 | Teraslinna | Feb 1991 | A |
5229991 | Turner | Jul 1993 | A |
5276684 | Pearson | Jan 1994 | A |
5305311 | Lyles | Apr 1994 | A |
5440546 | Bianchini, Jr. | Aug 1995 | A |
5710549 | Horst et al. | Jan 1998 | A |
5764927 | Murphy et al. | Jun 1998 | A |
5999981 | Willenz | Dec 1999 | A |
6044085 | Horlander | Mar 2000 | A |
6098110 | Witkowski et al. | Aug 2000 | A |
6134229 | Schwaller et al. | Oct 2000 | A |
6377782 | Bishop et al. | Apr 2002 | B1 |
6389479 | Boucher et al. | May 2002 | B1 |
6598179 | Chirashnya et al. | Jul 2003 | B1 |
6625121 | Lau et al. | Sep 2003 | B1 |
6633578 | Matsumaru et al. | Oct 2003 | B1 |
6661788 | Angle et al. | Dec 2003 | B2 |
6662339 | Laneman et al. | Dec 2003 | B1 |
6675325 | Garney et al. | Jan 2004 | B1 |
6678279 | Meredith | Jan 2004 | B1 |
6804237 | Luo | Oct 2004 | B1 |
6882649 | Gura et al. | Apr 2005 | B1 |
6937133 | Johnson et al. | Aug 2005 | B2 |
6954463 | Ma et al. | Oct 2005 | B1 |
6954811 | Vishnu | Oct 2005 | B2 |
6963576 | Lee | Nov 2005 | B1 |
6975651 | Ono et al. | Dec 2005 | B1 |
6988177 | Sokol | Jan 2006 | B2 |
7006501 | Gura et al. | Feb 2006 | B1 |
7020161 | Eberle et al. | Mar 2006 | B1 |
7023840 | Golla et al. | Apr 2006 | B2 |
7027443 | Nichols | Apr 2006 | B2 |
7058789 | Henderson et al. | Jun 2006 | B2 |
7106742 | Frisch et al. | Sep 2006 | B1 |
7224671 | Lee et al. | May 2007 | B2 |
7260120 | Kang et al. | Aug 2007 | B2 |
7274705 | Chang et al. | Sep 2007 | B2 |
20010014105 | Tezuka et al. | Aug 2001 | A1 |
20010020266 | Kojima et al. | Sep 2001 | A1 |
20020085550 | Rhodes | Jul 2002 | A1 |
20020141256 | Barri et al. | Oct 2002 | A1 |
20030110206 | Osokine | Jun 2003 | A1 |
20030147394 | Jennings et al. | Aug 2003 | A1 |
20040114587 | Huang et al. | Jun 2004 | A1 |
20040153835 | Song et al. | Aug 2004 | A1 |
20040184466 | Chang et al. | Sep 2004 | A1 |
20050058127 | Munter et al. | Mar 2005 | A1 |
20050111434 | Halen | May 2005 | A1 |
20050232201 | Bysted et al. | Oct 2005 | A1 |
20050249244 | McNamara et al. | Nov 2005 | A1 |
20060007885 | Pollack et al. | Jan 2006 | A1 |
20060050738 | Carr et al. | Mar 2006 | A1 |
20060075311 | Ranjan et al. | Apr 2006 | A1 |
20060128436 | Doi et al. | Jun 2006 | A1 |
20060248377 | Tezcan et al. | Nov 2006 | A1 |
20060251069 | Cathey et al. | Nov 2006 | A1 |
20070072646 | Kuwahara et al. | Mar 2007 | A1 |
20070124554 | Allen et al. | May 2007 | A1 |
20070242599 | Gorday et al. | Oct 2007 | A1 |
20080219235 | Ma et al. | Sep 2008 | A1 |
20080228871 | Sano | Sep 2008 | A1 |
20080275872 | Venkatachary et al. | Nov 2008 | A1 |
20080298492 | Hwang et al. | Dec 2008 | A1 |
Number | Date | Country |
---|---|---|
WO 0239667 | May 2002 | WO |
Number | Date | Country | |
---|---|---|---|
20060248376 A1 | Nov 2006 | US |
Number | Date | Country | |
---|---|---|---|
60672349 | Apr 2005 | US |