WO2001055866A1 - A wireless spread spectrum communication platform using dynamically reconfigurable logic - Google Patents

A wireless spread spectrum communication platform using dynamically reconfigurable logic Download PDF

Info

Publication number
WO2001055866A1
WO2001055866A1 PCT/US2001/003069 US0103069W WO0155866A1 WO 2001055866 A1 WO2001055866 A1 WO 2001055866A1 US 0103069 W US0103069 W US 0103069W WO 0155866 A1 WO0155866 A1 WO 0155866A1
Authority
WO
WIPO (PCT)
Prior art keywords
recited
computing element
reconfigurable
electronic device
configurable
Prior art date
Application number
PCT/US2001/003069
Other languages
French (fr)
Inventor
Ravi Subramanian
Uma Jha
Joel D. Medlock
Original Assignee
Morphics Technolgoy Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Morphics Technolgoy Inc. filed Critical Morphics Technolgoy Inc.
Priority to AU2001233150A priority Critical patent/AU2001233150A1/en
Publication of WO2001055866A1 publication Critical patent/WO2001055866A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/69Spread spectrum techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/0003Software-defined radio [SDR] systems, i.e. systems wherein components typically implemented in hardware, e.g. filters or modulators/demodulators, are implented using software, e.g. by involving an AD or DA conversion stage such that at least part of the signal processing is performed in the digital domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/69Spread spectrum techniques
    • H04B1/707Spread spectrum techniques using direct sequence modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B2201/00Indexing scheme relating to details of transmission systems not covered by a single group of H04B3/00 - H04B13/00
    • H04B2201/69Orthogonal indexing scheme relating to spread spectrum techniques in general
    • H04B2201/707Orthogonal indexing scheme relating to spread spectrum techniques in general relating to direct sequence modulation
    • H04B2201/70707Efficiency-related aspects
    • H04B2201/7071Efficiency-related aspects with dynamic control of receiver resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B2201/00Indexing scheme relating to details of transmission systems not covered by a single group of H04B3/00 - H04B13/00
    • H04B2201/69Orthogonal indexing scheme relating to spread spectrum techniques in general
    • H04B2201/707Orthogonal indexing scheme relating to spread spectrum techniques in general relating to direct sequence modulation
    • H04B2201/70707Efficiency-related aspects
    • H04B2201/7071Efficiency-related aspects with dynamic control of receiver resources
    • H04B2201/70711Efficiency-related aspects with dynamic control of receiver resources with modular structure

Definitions

  • microfiche appendix entitled “Appendix B, Computer Program Instructions,” is included in the present application.
  • the microfiche appendix includes 1 microfiche card.
  • the present claimed invention relates to the field of wireless communication.
  • the present claimed invention relates to an apparatus and a method for processing digital signals in a wireless spread spectrum communication system.
  • Wireless communication has extensive applications in consumer and business markets.
  • spread spectrum communication applications/systems are: fixed wireless, unlicensed (FCC) wireless, local area network (LAN), cordless telephony, personal base station, telemetry, mobile wireless, and other digital data processing applications.
  • FCC unlicensed
  • LAN local area network
  • cordless telephony personal base station
  • telemetry mobile wireless
  • mobile wireless and other digital data processing applications.
  • each of these applications utilizes spread spectrum communications, they generally utilize unique and incompatible protocols for various signal processing operations, e.g., encoding, modulation, demodulation, and decoding, etc.
  • These unique and incompatible protocols may require unique hardware, software, and methodologies for the communication protocol. This practice can be costly in terms of design, testing, manufacturing, and infrastructure resources.
  • CDMA code division multiple access
  • Changes in performance level or versions of a communication protocol can also affect the network services and coverage, and hence the survival of a wireless service provider or a hardware manufacturer.
  • ASIC application specific integrated circuit
  • a future but uncertain specification can be a tremendous risk. This is especially so with an application specific integrated circuit (ASIC) device whose configuration is defined primarily by fixed hardware.
  • market rewards may be significant for the service provider or manufacture that is able to realize the new protocol in the shortest possible time.
  • a risk versus reward tradeoff exists with implementing new communication protocols. Given the degree of the risks and promise of rewards, a need arises to overcome the limitations of the long lead-time and the investment required for implementing a new specification.
  • power consumption With the increased sophistication of each new generation of communication device, power consumption remains a significant issue. Among other things, power consumption affects: battery life for handheld devices; cooling systems required for base stations; durability and reliability of semiconductor devices and integrated circuits; and other performance criteria. Conventional alternatives to hardwired ASICs have significant power consumption issues that offset their benefits. Consequently, a need arises to overcome the limitations in power consumption for a communication device.
  • the present invention provides a method and apparatus that can effectively accommodate the increases in the quantity of users and the quantity of data transferred using the limited frequency bandwidth. Furthermore the present invention provides a solution that overcomes the limitations of protocol non- uniformity and proliferation in the wireless communications. The limitations of cost and burden associated with changes in versions or performance levels of a communication protocol are also resolved by the present invention. In an effort to minimize the risks and maximize the rewards, the present invention substantially shortens the lead-time and the investment required for implementing a new specification. Finally, the present invention provides reasonable power consumption for the communication device.
  • the present invention provides an apparatus and method that can flexibly and efficiently process data.
  • One embodiment of the present invention is a processor with an architecture that includes a first computing element, a second computing element, and a reconfigurable interconnect.
  • the first computing element is coupled to the second computing element via the reconfigurable interconnect.
  • the first computing element performs a discrete operation, or portion thereof in an application, while the second computing element performs another discrete operation, or portion thereof for the application.
  • the reconfigurable interconnect has an uncommitted architecture, thereby allowing it to be configured by an outside source to couple portions of the first reconfigurable interconnect with portions of the second reconfigurable interconnect in any combination.
  • the first computing element, the second computing element, and the reconfigurable interconnect operable to perform a class of functions suitable for processing the communication signal.
  • a second embodiment of the present invention provides a convenient method for operating the functional kernels having reconfigurable hardware to a configuration for implementing wireless communication.
  • a signal to be processed is received at a reconfigurable modem platform having a heterogeneous multiprocessor architecture.
  • the signal is assigned to a data pump path in the reconfigurable modem platform.
  • design configuration information for the reconfigurable modem platform is received.
  • the data portion of the signal undergoes digital signal processing using the reconfigurable modem platform.
  • Figure 1 A is a block diagram of the interface functions accommodated by the electronic spread spectrum communication device, in accordance with one embodiment of the present invention.
  • Figure 1 B is a block diagram of an electronic spread spectrum communication device having heterogeneous multiprocessor components, in accordance with one embodiment of the present invention.
  • Figure 1 C is a block diagram of another configuration of an electronic spread spectrum communication device having heterogeneous multiprocessor components, in accordance with one embodiment of the present invention.
  • Figure 1 D is a block diagram of an electronic system used to interface a user with a configurable multiprocessor device, in accordance with one embodiment of the present invention.
  • FIG. 2A is a block diagram of a processor having multiple configurable hardware kernel planes used in the electronic spread spectrum communication device, in accordance with one embodiment of the present invention.
  • Figure 2B is a block diagram of multiple possible architecture techniques used in the algorithmic satellite kernel portion of the hardware kernel, in accordance with one embodiment of the present invention.
  • Figure 2C is a block diagram of a configurable hardware kernel plane, in accordance with one embodiment of the present invention.
  • Figure 2D is a block diagram of a kernel portion of a hardware kernel plane, in accordance with one embodiment of the present invention.
  • FIG. 2E is a block diagram of a hardware kernel containing a subcomponent hardware kernel, in accordance with one embodiment of the present invention.
  • Figure 2F is a block diagram of the inputs, outputs, and functions accommodated by the algorithmic satellite kernel in the electronic spread spectrum communication device, in accorcance with one embodiment of the present invention.
  • Figure 3A is a functional c ata flow diagram for configurable multiprocessors in a modem application, in accordance with one embodiment of the present invention.
  • Figure 3B is an alternative functional data flow diagram for configurable multiprocessors in a modem application, in accordance with one embodiment of the present invention.
  • Figure 3C is a block diagram of the codec functions accommodated by the electronic spread spectrum communication device, in accordance with one embodiment of the present invention.
  • Figure 3D is a block diagram of the modem functions accommodated by the electronic spread spectrum communication device, in accordance with one embodiment of the present invention.
  • FIG. 4 is a block diagram of several user-defined modes of operations performed for modem signal processing functions in the electronic communication device, in accordance with one embodiment of the present invention.
  • Figure 5 is a diagram of the separation and combining process of a single thread into multiple concurrent threads to be accommodated on the communication device, in accordance with one embodiment of the present invention.
  • Figure 6A is a flowchart of the process used to implement a design configuration onto a configurable spread spectrum electronic communication device, in accordance with one embodiment of the present invention.
  • Figure 6B is a flowchart of the process used to operate a configurable spread spectrum electronic communication device, in accordance with one embodiment of the present invention.
  • the present invention can be implemented in a wide variety of digital spread- spectrum wireless communication systems or techniques that utilize code sequences. Code sequences are utilized in wireless communications for many functions including, but not limited to: filtering, searching, modulation, and demodulation.
  • the systems or techniques which utilize code sequences include, but are not limited to, fixed wireless, unlicensed Federal Communications Commission (FCC) wireless systems, wireless local area network (W-LAN), cordless telephony, cellular telephony, personal base station, telemetry, and other digital data processing applications.
  • FCC Federal Communications Commission
  • WLAN wireless local area network
  • cordless telephony cellular telephony
  • personal base station personal base station
  • telemetry personal base station
  • the present invention can be applied to both transmitters, e.g., a base station, and to receivers, e.g., a terminal, for fixed wireless, W-LAN, cellular telephony, and personal base station applications.
  • one fixed wireless application to which the present invention may be applied is a metropolitan multipoint distribution system (MMDS).
  • MMDS metropolitan multipoint distribution system
  • WLL wireless local loop
  • Some examples of a W-LAN, that can communicates digitized audio and data packets, for which the present invention can be applied include Open Air, and the Institute of Electrical and Electronics Engineers (IEEE) specification 802.11 b.
  • IEEE Institute of Electrical and Electronics Engineers
  • a specific example of unlicensed FCC applications to which the present invention may be applied includes the Industrial, Scientific, and Medical band (ISM) devices, which can include cordless telephony products.
  • ISM Industrial, Scientific, and Medical band
  • Personal base stations can utilize either cordless or cellular telephony wireless communication standards.
  • the cellular telephony systems in which the present invention can be applied includes, but is not limited to, IS-95, IS2000, ARIB, 3GPP-FDD, 3GPP- TDD, 3GPP2, IXtreme, or other user-defined protocols.
  • the range of code sequences utilized in the exemplary spread spectrum applications disclosed herein, are useful to define the class of functions for which the present configurable code generator unit is applicable.
  • FIG. 1A A functional block diagram of a configurable hardware kernel is presented in Figure 2F.
  • FIGS 3A through 3D the functional layout of hardware kernels in a configurable modem processor for the exemplary spread-spectrum communication device is provided in Figures 3A through 3D for modem functions, and in Figures 4 for codec functions.
  • Figure 5 provides a diagram of function management technique utilized by processors with configurable hardware kernels.
  • various processes associated with the communication device and the hardware kernels are described in Figures 6A through 6C.
  • FIG. 1A a block diagram 10 of the interface functions accommodated by the electronic spread spectrum communication device are shown, in accordance with one embodiment of the present invention.
  • the signal processing functions 16 shown have a configurable architecture in one embodiment that enables an electronic spread spectrum communication device to operate using a wide variety of communication protocols, including CDMA, 3GPP, TDMA, as well as anticipated future protocols.
  • Block diagram 10 provides a macro level description of the interface functions. A more detailed description of the specific sub-functions and operations, and the hardware that implements them are provided in subsequent figures herein.
  • the signal processing function block 16 of a communication device is responsible for performing the data processing steps needed to convert a received signal into meaningful data for an end user and to convert an input from a user and convert it to a transmittable signal.
  • signal processing function block 16 a wide variety of functions, sub functions, and operations are performed to satiate the requirements of the specific communication protocol chosen for a communication device.
  • signal-processing functions can include demodulation and/or decoding for received in-phase and quadrature-phase (l/Q) samples 12, and include encoding and/or modulation for transmitted l/Q samples 14.
  • Control data 20 provides the necessary control information, e.g., flags, handshakes, addressing, status, etc., to components such that signal processing functions 16 can be accomplished.
  • Signal processing function block 16 also communicates with a traffic interface 18, to accommodate the allocation of respective signals to each of the many different wireless users operating within a given communication system.
  • the traffic interface is a mobile telephone switching office (MTSO) for a cellular spread spectrum communication application.
  • MTSO mobile telephone switching office
  • another spread spectrum communication application may not require a traffic interface, e.g., a cordless telephony spread spectrum application.
  • Processing function block 16 receives l/Q samples 12 upon which known data processing protocols are implemented. Similarly, processing function block 16 transmits desired data as l/Q samples 14 to another communication device (not shown). Configuration data 11 inputs provides the necessary information to configure the hardware and software components used to implement signal-processing function block 16.
  • Electronic spread spectrum communication device 100 includes subcomponents and configurations that are illustrated and described in more detail in subsequent figures. Additionally, electronic spread spectrum communication device 100 also employs methodology for design, configuration, and operation that will be described in subsequent flowchart figures. While electronic spread spectrum communication device 100 is a base transceiver station (BTS) in the present embodiment, the present invention is well suited to electronic spread spectrum communication device 100 beinc a mobile handset or a test equipment platform.
  • BTS base transceiver station
  • Electronic spread spectrum communication device 100 includes an interface conversion block 116, a modulator/demodulator (modem) processor 102a, an optional configurable modem processor 102b, memory 106 and 118, a processor 112, a channel coder/decoder (codec) processor 104, a base transceiver station (BTS) card controller 110a, and an ATM Utopia/HDLC 108.
  • Processor 112 can either be a digital signal processor (DSP) or general-purpose microprocessor (GP uP).
  • External memory 106 used for interleaving meets the following requirements for the present embodiment: 1 ) 8 Mb SRAM; 2) 18 MHz Performance; 3) Minimum 512K x 16 configuration; 4) Byte write-enables.
  • configurable modem processor 102a optional configurable modem processor 102b, and configurable channel codec processor 104 have a configurable heterogeneous multiprocessor architecture.
  • configurable modem processor block 102a and configurable codec processor 104 can be configured to operate a wide range of spread spectrum communication protocols, e.g., the exemplary spread spectrum protocols described hereinabove. To do so, configurable modem processor 102a and configurable codec processor 104 are designed with a sufficiently wide scope to accommodate the common and unique requirements of these varied spread spectrum communication protocols.
  • the configurable modem processor 102a and the configurable codec processor 104 are provided with the instructions and data necessary to configure them, e.g., configuration input 121 , to a single desired spread spectrum protocol.
  • the configurable modem processor 102a and the configurable codec processor 104 can subsequently be reconfigured to another spread spectrum protocol within the design scope.
  • the hardware, software, and processes used to implement this configuration are described in subsequent figures. The specific structure, components, functions, and processes utilized for the present invention will be described in more detail if subsequent hardware, function, and flowchart diagrams.
  • This architecture provides electronic spread spectrum communication device 100 with a flexible configuration that can accommodate a wide range of spread spectrum communication applications while simultaneously providing energy efficient operation.
  • Configurable modem processor block 102a includes at least one hardware kernel plane in the present embodiment.
  • the hardware kernel plane described in subsequent figures, is a reconfigurable collection of multiple algorithmic-specific processors.
  • the hardware kernel plane can implement the sub functions of a functional kernel plane, described in a subsequent figure.
  • Configurable modem processor block 102a can be designed to accommodate multiple channels of data, the specific number depending upon the needs of a specific application.
  • Channel codec functions are implemented by exemplary CODEC signal processor 104 of Figure 1B, which is a reconfigurable multi-channel digital channel encoder-decoder chip that performs convolution, iterative turbo decoding, rate- detection, and rate matching functions for a wide range of quantities of voice channels.
  • Channel codec functions also implemented by channel codec signal processor 104 for transmission encoding include convolution and turbo coder functions, puncturing, rate-matching, and interleaving on the transmit path, in the present embodiment.
  • Codec Signal Processor 104 of Figure 1 B provides a very high level of integration, while allowing the communication systems designer to employ proprietary techniques to improve decoder performance in each of the stages described above.
  • the architecture of the Channel Codec Signal Processor 104 enables the system designer to program the chip at many levels, including control of specific datapaths to realize different algorithms. Details on the architecture and operation of codec processor are given in subsequent block diagram figures and in flowchart figures.
  • Interface conversion block 116 is coupled to the antenna bus 129, which is in turn coupled to an antenna, e.g., a BTS antenna 120, which can include multiple antennae in one embodiment.
  • Interface conversion block 116 is also coupled to configurable modem processor 102a and to optional configurable modem processor 102b via bus 122, respectively.
  • Bus 122 can be separate independent non-shared buses, or a single shared bus.
  • Interface conversion block 116 includes components (not shown) such as a radio frequency (RF) transceiver and an analog to digital (A/D) converter coupled to each other in series, whose subcomponents and functions are known to those skilled in the art.
  • RF radio frequency
  • A/D analog to digital
  • Configurable modem processor 102a and optional configurable modem processor 102b are coupled to a processor 112 and to memory 106, which is random access memory (RAM) in the present embodiment.
  • Memory 106 is coupled to channel codec processor 104, which in turn is coupled to ATM Utopia/HDLC 108 via bus 124.
  • An internal data/control bus 126 is coupled to interface conversion block 116, memory 118, processor 112, BTS card controller 110a, and to ATM Utopia/HDLC 108 in order to pass data and control instructions between these components.
  • ATM Utopia/HDLC 108 is a conventional asynchronous transfer mode (ATM) networking interface in the present embodiment.
  • uP 112 is a general-purpose microprocessor capable of performing the functions of BTS card controller 110a.
  • An external BTS cell controller 114 is coupled to internal bus 126 and to a mobile telephone switching office bus 128.
  • ATM Utopia/HDLC 108 provides signal formatting, memory, and interface circuits for Operations and Maintenance (OAM)
  • Controller 114 determines the personality (or radio configuration) of each channel element by loading specific configuration software into specific control registers in BTS Channel Card Controller 110a, processor 112, configurable modem processor 102a, and codec processor 104. Interface configurations and protocols are described in Figure 1C.
  • the present invention provides the ability to use existing digital signal processing resources, while upgrading other processing resources to more flexible and efficient hardware, e.g., configurable modem processor 102a.
  • functions that were performed on general-purpose processors are performed by the present invention on operation-specific, or algorithmic-specific, processors that are interconnected to realize a modem or codec function.
  • the operation-specific processors possess the appropriate amount of configurabiltiy for protocol variations, thereby providing robustness for future developments.
  • the present invention provides a communication device with the flexibility to operate under a wide range of communication protocols, such as IS-95, CDMA-2000, 3GPP, and time-division multiple access (TDMA), to name a few.
  • communication protocols such as IS-95, CDMA-2000, 3GPP, and time-division multiple access (TDMA), to name a few.
  • TDMA time-division multiple access
  • BTS card controller 110a provides a number of interfaces.
  • BTS card controller 110a provides: 1 ) antenna receive (RX) Bus 129 to receive the uplink digitized signal samples; 2) BTS Cell Controller for sending and receiving control information associated with call setup, teardown, and handoff; and 3) Operations and Maintenance (OAM) Monitor for performance analysis, reconfiguration over the network based on system planning, and troubleshooting.
  • RX antenna receive
  • OAM Operations and Maintenance
  • bus 126 provides an exemplary coupling configuration of components in electronic spread spectrum communication device 100. It is appreciated by those skilled in the art that bus 126 can include subcomponents of specific control/status/data lines for communication between appropriate devices. It is further appreciated by those skilled in the art that bus 126 can be a parallel configuration or serial configuration with multiplexing. Furthermore, bus 126 can have interconnects and translators, as appropriate for a given application. These alternatives are also suitable for buses 129, 128, 127, 130, 122, and 122a, and other buses that can be used to couple components in communication devices 100 and 101 of Figures 1 B and 1 C, respectively.
  • communication device 100 is well suited to alternative components and coupling configurations of memory 106.
  • memory 106 is located between configurable modem processor 102a, and channel codec processor 104 in the present embodiment
  • the present invention is well suited to coupling configurable modem processor 102a directly to channel codec processor 104 and to locating memory 106 directly adjacent to channel codec processor 104.
  • memory 106 and 118 are specified as RAM in the present embodiment
  • the present invention is well suited to a wide range of memory configurations, such as ROM, registers, flash memory, etc.
  • antenna 120 is shown as a BTS antenna having multiple individual antennae arranged in sectors, the present invention is well suited to antenna 120 be a singla or dual antennae for a mobile handset or a test platform application.
  • the present invention provides both a configurable modem processor 102a and a configurable codec processor 104 in communication device 100
  • the present invention is well suited to an alternative configuration that uses a configurable modem processor 102a with a conventional codec processor (e.g., a digital signal processor), and to using a configurable codec processor 104 with a conventional configurable modem processor.
  • a conventional codec processor e.g., a digital signal processor
  • the present invention provides a single modem processor, with a single optional configurable modem processor 102b
  • the present invention is modular, and thus is well suited to using a wide range of processor types and quantities, as appropriate for a given spread spectrum application.
  • Communication device can also include a configuration that accommodates multiple communication standards.
  • the present invention can be applied to communication protocols such as orthogonal frequency division multiplexing (OFDM). More detail is provided in a commonly assigned and related application, which is incorporated herein by reference and entitled “METHOD AND APPARATUS TO SUPPORT MULTI STANDARD, MULTI SERVICE BASE- STATIONS FOR WIRELESS VOICE AND DATA NETWORKS," Attorney Docket No. 9824-0035-999, US patent application serial number , filed on December 28, 2000.
  • OFDM orthogonal frequency division multiplexing
  • Second configuration 101 of electronic spread spectrum communication device has many components and configurations that are similar to those shown in Figure 1 B. Thus, components and coupling configurations different from Figure 1C are primarily discussed hereinafter.
  • Communication device 101 includes a BTS card controller 110b that can be a state machine or an optional microprocessor.
  • Bus 127 couples memory 118 and BTS card controller 110b to channel codec processor 104 and configurable modem processor 102a. This provides a more direct data route between memory 118 and configurable modem processor 102a and channel codec processor 104.
  • memory 106 is located adjacent to channel codec processor 104, and coupled to BTS card controller 110b, and provides improved communication and processing to channel codec processor 104. It also provides improved communication and processing between channel codec processor 104 and modem processor 102a. While only one configurable modem processor 102a is shown in Figure 1 C, communication device 101 is well suited to using more than one configurable modem processor, as appropriate by a given application.
  • Communication device 101 does not have a separate conventional DSP chip like communication device 100. Rather, communication device 101 utilizes either an external general purpose microprocessor 103 or utilizes computing elements within configurable modem processor 102a and channel codec processor 104 to perform functions traditionally provided by a conventional DSP chip. The alternative configurations and components discussed for communication device 100 are likewise applicable to communication device 101.
  • Interface configurations and protocol are utilized between components within communication device 100 and 101 as well as between components within and outside of communication device 100 and 101.
  • a bus interface 130a and 131 of communication device 100 and 101 is provided for streaming the received, coded symbols from the modem Signal Processor 102a and/or 102b to the Channel Codec Signal Processor 104.
  • bus interface 131 is provided for streaming the encoded transmit data from Channel Codec Signal Processor 104 into the modem signal processor 102a-102b (assumed to be interleaved on Channel Codec Signal Processor).
  • Busses 130a and 130b of Figure 1 B and bus 131 of Figure 1C combine a hand-shaking mechanism with a well- defined data stream in order to provide necessary flexibility in programming.
  • Interface conversion/ sector combining block 116 provides a high-speed parallel interface for communicating digitized l/Q samples between the Modem Signal processors 102a and 102b, and antenna 120, for an uplink or downlink embodiment.
  • Two parallel ports 122 are provided for multiplexed interface to multiple antennae, e.g. in antenna array 120 for a base station in the present embodiment.
  • Memory interface 132 is provided for interfacing to an external SRAM 106 for support of necessary deinterieaving required for high data rate support.
  • the interface assumes that a single memory resource may be shared across multiple modem signal processor implementations 102a (up to three modem signal processor's per memory), so that semaphores are required for coordinating, via input 134 from BTS card controller 110b, the necessary memory writes and establishing a single modem signal processor as the Burst Controller for frame bursts out of the Deinterleaver memory.
  • a well-defined memory map within memory 106 is used to avoid fragmentation across external memory 106.
  • received l/Q samples 12 are provided to signal processing function block 16, via bus 129 of Figure 1 B in the present embodiment.
  • signal processing functions required for an application are performed by communication device 100 of Figure 1 B or device 101 of Figure 1 C.
  • transmitted l/Q samples 14 and received l/Q samples can be communicated via bus 129 to/from antenna 120.
  • Traffic interface 18 is accommodated via bus 128, and control data 20 is accommodated via bus 126, in one embodiment.
  • BTS base transceiver station
  • the present invention is well suited to implementing the functions and appropriate interfaces on a mobile handset.
  • a mobile handset would not have an MTSO traffic interface, but would include the balance of the interfaces and functionality of Figure 1A.
  • the present embodiment only describes configurable processors for two function types, e.g., modem and codec functions, and applies them to a wireless communication application, the present invention is well suited to accommodating other functions for other applications in a similar manner.
  • FIG. 1 D a functional block diagram 150 of a system used to interface a host-processor containing a user's program of configurations with a configurable multiprocessor device is shown, in accordance with one embodiment of the present invention.
  • the configurable components e.g., hardware kernels and interconnect of Figure 2C, for communication device 100 can be programmed by user-defined configurations.
  • the user-defined configurations can be generated by a user from a host microprocessor, e.g., a workstation, which implements a programming interface (API).
  • API programming interface
  • Processor hardware (HW) model 160 is a block diagram representing the interaction of hardware, e.g., a processor 112, with software and data such as library functions, instructions, and configuration data, that in stored in memory.
  • Processor software model can be programmed with a virtual machine interface (VMI) in one embodiment.
  • processor 112 can be mod led as a software model consisting of user's C-language code (or software) 164 and I/O device drivers 166.
  • the user provided C-language software 164 in order to configure configurable processes 170 of the configurable modem 102a and 102b, and of the configurable coded 104.
  • C-language software 164 includes resident user-implemented C language block of instructions and functions that interface with input/output (I/O) driver block 166.
  • C language block 164 is coupled to receive C-based application programming interface (API) programming guide data 171 , which includes a library of functions for programming configuration inputs 121a through 121e to appropriate configuration mappings.
  • API application programming interface
  • processor software model 162 is coupled to receive input 172 of API functions mapped to instruction set 171 and 172.
  • Each API function of input 172 includes a set of instructions which will: 1 ) map the API function to a specific hardware kernel and reconfigurable interconnect (e.g. DRL) process; 2) describe the DRL process as a set of data structures/configuration signals that are passed via hardware interfaces 168 by host processor 112.
  • API Programming Guide 171 serves as a reference to access the modes of flexibility in the modem signal processor.
  • Hardware interfaces block 168 is coupled to processor 112 to receive device driver information appropriate for the configuration input 121a through 121e. In turn, hardware interfaces block 168 is coupled to provide configuration instructions and data, e.g., driver information, to dynamically reconfigurable logic (DRL) block 170.
  • DRL processes block 170 represents the ultimate desired processes (or functions) to be implemented by the configurable communication device, e.g., device 100 of Figure 1 B.
  • DRL processes block can communicate configuration mapping data 174 to appropriate configurable components, described in subsequent Figures 2A through 2G, of configurable communication device 100, which can store and transmit instruction sets of mapped API functions.
  • User-implemented C-language block 164 provides a user with the ability to control the configuration of a hardware kernel, described in subsequent Figures 2C through 2E.
  • the programmer/user can provide the following inputs to define the configuration of a configurable hardware kernel: 1 ) inputs, as shown by input 121a; 2) outputs, as shown by input 121 b; 3) operation(s) to be performed, as shown by input 121c; 4) parameters, as shown by input 121d; 5) a type of arithmetic in a processing unit (e.g., dataflow process); and 6) type of state machines controlling the dataflow process (e.g., controlflow process) as shown by input 121e.
  • 1 inputs, as shown by input 121a
  • outputs as shown by input 121 b
  • operation(s) to be performed as shown by input 121c
  • parameters as shown by input 121d
  • 5) a type of arithmetic in a processing unit e.g., dataflow
  • input 121e includes user-specified interconnect configurations (i.e. interconnect reconfigurability).
  • the present invention is well suited to using less inputs and control or providing additional inputs or control for a user to configure a configurable device.
  • Interconnect configuration input 121e specifies the configuration of reconfigurable interconnect such that a cluster(s) of kernels may be built. This level of control with individual kernels and the interconnect offers substantially greater flexibility than that of hardwired or parameterized application specific integrated circuit (ASIC) solutions. By using kernels that are focused to the specific types of data processing found in terrestrial and wireless communication applications, the computational efficiency, in millions of operations per milliwatt (MOPS/mW) of this architecture approaches that of an ASIC.
  • Functional block diagram 150 shows the hierarchy with which a user may interface DRL processes block 170.
  • the hierarchy includes: a) a first level with a C-based interface 164 with a user; b) a second level with an I/O device driver 166 interface between the C-language and the hardware interfaces; c) a third level with hardware interface block 168 that interfaces between the DRL process 170 and the processor HW model 160.
  • the present embodiment utilizes a hierarchical Application Programming Interface (API) that supports several levels of user control for programming a Channel Codec Signal Processor, e.g., codec processor 104, or a configurable modem processor 102a, as shown in Figure 1 B.
  • Dashed box 176 includes the API functions mapped to instruction set data 172, and the configuration mappings data 174.
  • Dashed block 176 indicates the control software, which includes a subset of functions defined by the API.
  • the control software block 176 enables the function of the configurable communication device, e.g., device 100 of Figure 1B.
  • C-based API programming guide 171 utilizes a mechanism referred to as Extensible Data Types (EDT), described in more detail in a subsequent flowchart.
  • EDT Extensible Data Types
  • the use of EDT effectively embeds a mechanism in the API that allows additional functionality to be transparently added, the API is able to add new hardware services without the need to modify existing software. This mechanism must also provide this abstraction without significant performance overhead. By the use of pointer access to data types and inline functions, this effect is minimized.
  • the API allows the hardware and software development processes to be decoupled from one another. This significantly reduces development time, as each hardware upgrade or modification does not require changes to the software. Modes of configurations are specified in the API programmer's guide 171 for hardware kernel blocks.
  • API programmer's guide 171 describes the allowed dataflow configurations (i.e. hierarchical interconnect configurations) of the machine.
  • Appendix A provides an exemplary sequencing of the modem and codec functions described therein to realize a variety of transceiver signal paths by configuring the kernels and interconnect according to the types of operations and dataflow desired.
  • a hardware configuration can be constructed to support various WCDMA standards. Furthermore, the types can be configured to support various performance requirements for the system as a whole, for a set of mobiles, or for a particular mobile.
  • Hardware configurations are realized through an API that allows a programmer to manipulate the relationships between various extensible data types.
  • the resources available in an extensible data type directly map to available hardware resources.
  • a programmer using the API can configure the hardware resources from a conceptual viewpoint.
  • the programmer's model and API (or VMI) of Figure 1 D defines and provides a mechanism for a user to systematically and efficiently develop software that controls the function and operation of the configurable communication device, e.g., 100 of Figure 1 B.
  • the API allows the programmer to manage the hardware resources without the need to write complex low-level hardware-target-dependent code. This provides many advantages including ease of adoption and integration of the configurable communication device. Subsequent flowcharts provide more detailed description of the process for developing the software to control the configurable communication device.
  • the hardware utilization, scheduling, and maintenance are under the control of the API.
  • the present embodiment of Figure 1 D can include additional features for individual versions of the software. Examples of this would be an input data formatter to deal with the incoming data format on a particular test rig, or the creation of a software version that performs function profiling or debugging on a particular section of the software, without having the attendant performance degradation on other blocks. Both of these alternatives are dealt with efficiently by the use of extensible data types, which allow a user to rapidly modify the functionality of the software by modifying the data types and recompiling.
  • Appendix B hereinafter provides several exemplary computer programs that can be implemented in functional block diagram 150 in order to provide an interface between a user and a configurable processor.
  • Appendix B provides the specific application of a wireless base transceiver station for an exemplary CDMA spread spectrum application.
  • the present invention is well suited to a wide range of spread spectrum communication applications. It is appreciated that one skilled in the art can interpret the computer language specific syntax provided in these examples.
  • FIG. 2A a block diagram of a configurable modem processor 102a having multiple configurable hardware kernel planes used in an electronic spread spectrum communication device is shown, in accordance with one embodiment of the present invention.
  • Codec processor 104 of Figure 1 B can have a configuration similar to that of Figure 2A in one embodiment.
  • Figure 2A illustrates how the multiple hardware kernel planes interconnect and shows what device controls and coordinates them.
  • Processor 102a can be configured to operate as a configurable modem processor 102a and 102b or as a configurable codec processor 104, as shown in Figures 1 B and 1 C, in the present embodiment.
  • two hardware kernel planes e.g., plane [1] 201a and plane [i] and 201 i
  • an allocator 219 via a reconfiguration bus, e.g., 206a and 206i, respectively.
  • Each hardware kernel plane is assigned to a given channel in a communication system in the present embodiment.
  • allocator 219 is coupled to a general-purpose (GP) microprocessor or signal processor 112.
  • GP general-purpose
  • the architecture utilizes distributed control and configuration.
  • the communication mechanism between each kernel is dataflow driven.
  • Allocator 219 performs controller operations for each of the kernel planes 201 a and 201 i, such that they can operate independent of each other, e.g., in parallel.
  • allocator 219 includes memory and state machine components.
  • allocator 219 is configurable such that it can manage the desired type of functions implemented in the hardware kernel planes 201a through 201 i.
  • allocator 219 can be configured such that hardware kernel planes 201a through 201 i perform modem functions, or alternatively codec functions. While the present embodiment shows only two hardware kernel planes 201a and 201 i, the present invention is well suited to using any quantity of hardware kernel planes in processor 102a.
  • Hardware kernel planes 201a and 201 i include a configurable heterogeneous multiprocessor architecture that will be described in more detail hereinafter.
  • Data bus 122 provides data to and from configurable modem processor 102a, as does data line 130a, as shown in Figure 1 B.
  • Processor 112 performs higher-level management operations for the allocator. In this manner, multiple instances of processor 102a can be accommodated in a communication device, and can operate in varying degrees of parallel processing.
  • processor 112 is a system processor of the parent communication device 100 Figure 1B.
  • configurable processor 102a can have a dedicated local microprocessor in lieu of system processor 112.
  • FIG. 2B a block diagram 200b of multiple possible architecture formats used in a hardware kernel portion of a spread spectrum communication device is shown, in accordance with one embodiment of the present invention.
  • the communication device possesses a wide breadth of efficient programmability.
  • efficient programmability translates into accommodating of multiple non-uniform specifications by a communication device.
  • each level of granularity having its own preferred target for a given application.
  • a systematic and hierarchical method to exploit the flexibility of incorporating these different architectures into hardware is described in a subsequent flowchart figure.
  • Figure 2B shows the four main levels of programmable or reconfigurable granularity used in a hardware kernel in the present embodiment.
  • the difference in the various computational models shown in Figure 2B lies in the granularity of the composing modules, the distribution of the program storage, and the interconnect structure.
  • the computing elements in a hardware kernel can exploit any combination of the four types of reconfigurability, in an architecture referred to as Dynamically Reconfigurable Logic (DRL), described in more detail hereinafter.
  • DDL Dynamically Reconfigurable Logic
  • the present invention is well suited to incorporating other types of computational models that have different levels of granularity or different applications of granularity.
  • a first architecture format is referred to as reconfigurable logic 211.
  • Reconfigurable logic 211 uses multiple processing islands, also referred to as a configurable logic block (CLB), e.g., 210a coupled by an interconnect 214 with reconfigurability, via bus lines, e.g., 212a, 212b, 213a, and 213b.
  • CLB configurable logic block
  • the reconfigurable logic type of engine relies almost exclusively on bit-level mesh networks in the present embodiment.
  • interconnect 214 provides all possible coupling arrangements between the bus of data liens 212a and 212b. In this manner, independent blocks 210a - 210d can communicate with one another in any desired manner. That is, they are not restricted to communicating with less than all existing kernels due to limited hardware wiring.
  • interconnect 214 can provide only a limited amount of interconnectabiltiy, based upon perceived needs and capabilities of each kernel for a given application.
  • Reconfigurable logic 211 uses bit-level operations such as encoding. By itself, reconfigurable logic provides significant benefits of flexibility. However, the flexibility comes at a trade-off of inefficiency in chip area and in power consumption. In one embodiment processing islands have unrestricted reconfigurability of its component logic devices.
  • a second architecture format is referred to as reconfigurable datapath 221.
  • the interconnect network of the reconfigurable datapath exploits the bit-sliced structure and predominantly one-dimensional flow of data by using an asymmetric network-reconfigurable buses in one direction and bit-level mesh in the other direction. That is, reconfigurable datapath 221 uses dedicated datapaths to transmit data between electronic components, such as mux 220 and adder 226.
  • multiplex (Mux) block 220 can multiplex data from multiple data lines onto a single data line, thus changing the data path.
  • data may be directed along one of multiple paths to an appropriate storage register, e.g., register 0 (RegO) or register 1 (Reg1 ).
  • data may be directed along a path to a given function block, e.g., adder 226 or buffer 228.
  • Reconfigurable datapath 221 can efficiently move data, but it lacks flexibility that is not built into the original architecture. Thus, for example, the data path is limited to the data lines built between components, e.g., 220 through 228.
  • a third architecture format is referred to as reconfigurable dataflow 231.
  • the reconfigurable dataflow architecture uses a program and data bus that feeds data and control instructions to a computation unit.
  • block 232a and 232b generate addresses to get data from memory, e.g. 234a and 234b, to be sent to a multiply -accumulate (MAC) block 236 for processing.
  • MAC multiply -accumulate
  • a fourth architecture format is referred to as reconfigurable logic 241.
  • Reconfigurable logic 241 refers to a real-time operating system (RTOS) where the outside source controls the type of state machines that control the dataflow process (i.e. controlflow process). With reconfigurable logic 241 , the stored-instruction engines rely on shared buses for the transfer of data and instructions.
  • Block 240 is the data memory storage of data to be processed, while block 242 is the program memory for storing program instructions used to run on instruction decoder and controller 246.
  • Block 394 is the datapath block, which contains the arithmetic operations for processing the data.
  • Memory block 390b is a second bank of data memory for interfacing data with data path block 394.
  • the present invention provides a hybrid architecture and system.
  • This hybrid architecture and system provides substantial improvements in performance over previously irreconcilable tradeoffs of speed, flexibility, and efficiency.
  • Hardware kernel plane 201a provides the capability of reconfigurability for a range of protocols in an application, or within a range of applications, with an efficiency that challenges conventional circuits. Additionally, hardware kernel plane 201a is modular, and thus may be designed to operate in groups.
  • Kernel plane 201a includes multiple hardware kernels K1 261a through K6 266a that are coupled to a reconfigurable interconnect 204a. Data is passed between kernels K1 261a through K6 266a via reconfigurable interconnect 204a. Control information, such as handshake protocol signals, can also be routed through reconfigurable interconnect 204a.
  • Hardware kernel e.g., K1 261a, is described in detail in a following figure. Interconnect architecture supports sufficient concurrency within each of the hardware kernels K1 261a through K6 266a.
  • reconfigurable interconnect 204a utilizes a hierarchical structure that can support the required interconnect patterns (as described by the dataflow in following flowchart figures), as well as provide good performance and energy efficiency for every configuration. While the present embodiment uses six hardware kernels, the present invention is well suited to using any quantity of kernels in kernel plane 201a.
  • hardware kernels K1 261a through K6 266a kernels are specific to the types of data processing found in wireless communication applications, such as CDMA. However, at the same time, hardware kernels K1 261a through K6 266a are heterogeneous with respect to one or more of each other, in terms of programmability, algorithmic-capability, performance-level, and/or math- logic.
  • two or more kernels within kernel plane 201a can be homogeneous with respect to each in another embodiment.
  • the specific composition and relationship between hardware kernels depends upon the specific application. Examples of these levels of programmability are provided in a subsequent figure.
  • One or more of hardware kernels K1 261a through K6 266a are also autonomous with respect to each other, thus allowing parallel processing of data, on a kernel-by- kernel basis, or on a kernel-group by kernel-group basis. Because of this autonomy, and local control, the individual hardware kernels as well as the hardware kernel plane is data-rate scalable to a range of system clock rates.
  • Kernels K1 261a, K4 264a, and K5 265a are grouped together in hardware kernel group A 268a.
  • hardware kernel K3 263a is identified as a sole kernel within hardware kernel group B 268b.
  • Hardware kernels, e.g., kernel K1 261a are coupled to a configuration (or reconfiguration) bus 206a, e.g., via line 274. Configuration, status, and control information are passed to kernels K1 261a through K6 266a via reconfiguration bus 206a, in the present embodiment.
  • the present invention is well suited to passing different types of data and information using a wide variety of data lines and data bus configurations.
  • Reconfigurable interconnect 204a has an architecture that is primarily a reconfigurable logic 211 , as described in Figure 2B.
  • reconfigurable interconnect 204a provides connectivity between input/output lines of multiple kernels, or between input/output lines of a kernel with components outside of kernel plane, e.g., allocator 219, processor 112 shown in Figure 2A, or other data buses (not shown).
  • Data is pass 3d between kernel plane 201a and the host communication device via an inp jt/output line, e.g., line 122, that is coupled to reconfigurable interconnect 204a.
  • reconfigurable interconnect 204a has only a limited amount of reconfigurability based upon the specific needs identified for a class of protocols in a given application, or for a class of applications. That is, based on an application, algorithm, function, operation, or class thereof, not all kernels will be required to have full interconnectabiltiy with all other kernels. Consequently, the present embodiment provides limited reconfigurability of interconnect 204a between kernels depending upon the needs of the application, function, algorithm, etc. for which a kernel is designed. The limitation on interconnectabiltiy provides the benefit of reconfigurability where it is needed, and restricts interconnectabiltiy where it is not needed.
  • the inefficiently of a totally reconfigurable interconnect is tempered by identifying strategic scenarios where reconfigurability is appropriate.
  • the strategic scenarios involve the class of functions to be performed, the design of individual kernels K1 261a through K6 266a to accommodate the class of functions, and the level of programmability provided for outside control.
  • the common ground between the class of functions, operations, or algorithms is a case-by-case basis requiring analysis of variables such as mathematical basis, signal processing operations, algorithmic patterns, and silicon implementation.
  • Data is provided and received from kernel plane via data bus 122 or data line 130a.
  • an input data line portion of data bus 122 is coupled to one side of reconfigurable interconnect 204a to provide data input to kernel plane 201a.
  • an output data line portion of data bus 122 is coupled to the other side of reconfigurable interconnect 204a to receive data from kernel plane 201a.
  • Data that is provided to reconfigurable interconnect 204a is then routed to appropriate kernels K1 261a through K6 266a per configuration information provided to communication device.
  • an input line portion of data bus 122 can be directly coupled to one or more of kernels K1 261 a through K6 266a, e.g., if this functionality of a particular kernel is consistent across a range of spread spectrum applications. For example, if a kernel plane for a modem operation always initially performs an interpolation filter operation on input data regardless of the applications within a class of spread spectrum communications, then input data line may be routed directly to the kernel responsible for this function.
  • the same coupling arrangement can be provided for data line 130a with respect to reconfigurable interconnect 204a and kernels K1 261a through K6 266a.
  • the modem signal processor is one instance of the heterogeneous reconfigurable architecture, which can be configured to provide a complete signal path for multichannel operation of a CDMA base-station.
  • the hardware kernel processors were designed with a strong focus on applying the flexibility vs. computational efficiency trade-off to the specific needs of an application. As such, a rank ordering of the dominant computation-intensive kernels found in the algorithms is identified.
  • the dominant computations are centered around five major signal processing functions: chip matched filtering, code-epoch search, chip demodulation/despreading, channel decoding, and inter-path (IPI) equalization (optional).
  • chip matched filtering code-epoch search
  • chip demodulation/despreading chip demodulation/despreading
  • channel decoding channel decoding
  • IPI inter-path
  • Bus 206a of Figure 2C is selectively reconfigurable to provide only the needed amount of interconnectivity to a kernel based upon the application, function, and/or algorithm, for which a kernel is designed. For example, in one embodiment, kernel K3 263a does not require a status flag because the operation it performs requires no feedback and is run to completion. Thus, reconfiguration bus 206a provides no bus capability to kernel K3. In another embodiment, however, interconnectivity to provide communication of status information between a hardware kernel with another hardware kernel or allocator can be provided.
  • Kernel K1 261a provides one embodiment of many possible embodiments, which any of multiple hardware kernels in a kernel plane may use.
  • Kernel K1 261a includes a configuration information block 272 and a satellite kernel block 270, coupled to each other by interconnect 276.
  • Satellite kernel 270 has an input/output data line 278, which is a bus in the present embodiment, that provides communication with reconfigurable interconnect 204a of Figure 2C.
  • configuration information block 272 is coupled with reconfiguration bus 206a of Figure 2C, via configuration line 274.
  • configuration line 274 is a bus into configuration information block 272, or can be a single line with multiplexed data. The amount of data the bus or single line can handle can vary widely, depending upon the needs of an existing or projected application.
  • Satellite kernel 270 is an electronic device, which is algorithmic specific in the present embodiment.
  • Configuration information block 272 is random access memory (RAM) in the present embodiment.
  • RAM random access memory
  • configuration information block 272 can be registers, flash memory, or a state machine, e.g., using reconfigurable logic, that provides bit stream of states to satellite kernel block 270.
  • configuration information block 272 By having configuration information block 272 as a local dedicated source, that can also be controlled local to satellite kernel 270. This arrangement provides a very quick and efficient changing of configuration data for algorithmic satellite kernel 270. Consequently, time-sharing of a hardware kernel is feasible and practical in the present embodiment.
  • hardware kernels e.g., K1 261a through K6 266a of Figure 2C, have been designed to fit into one of multiple categories of data processing applicable to wireless communication.
  • the category of data processing refers to the operational speed of the hardware kernel, which includes an energy- flexibility tradeoff.
  • the specific category for which a hardware kernel is designed is determined from the number and type of operations per sample of data processed in the hardware kernels.
  • the present embodiment utilizes five domains of signal processing categories for a wireless communication system.
  • the kernel processors cover the multi-standard CDMA signal processing requirements, and can be categorized corresponding to classes of MOPS.
  • signal processing for a wirelesi communication application includes the following classes of MOPS: 1 ) Code Demodulation/Dechannelization; 2) Code Generation; 3) Parameter Estimation; 4) Sequence Alignment and Combining; 5) Equalization (optional); and 6) Front-end Processing.
  • Satellite kernel 270 includes a controller 271 and a configurable computation kernel (or algorithmic-specific computing element) 273a, coupled to each other via a clock line 279 and a control line 284.
  • Configurable computation kernel 273a is also referred to as a computing element or a processing engine.
  • Controller 271 includes a state machine with memory, in the present embodiment, that is capable of controlling configurable computing element 273a. In another embodiment, controller 271 includes only memory that is capable of preserving state conditions of at least one configuration of configurable computing kernel 273a.
  • kernel K1 261a is equipped with an interface that enables it to exchange data streams with other kernels efficiently, without the help of a global controller.
  • Hardware kernel K1 261 a uses a distributed control and configuration via local controller 271 , which effectively reduces overhead in terms of instruction fetch and global control.
  • Kernel K1 261a also includes an interface, e.g., in configurable computation kernel 273a, that enables it to exchange data streams, e.g., data line 278, with other kernels efficiently, without the help of a global controller.
  • the communication mechanism between each kernel is dataflow driven in the present embodiment.
  • Local controller 271 can provide local control signals for initiation, reset, and interrupt for configurable computation kernel 273a, as well as scaled clock rates.
  • configurable computation kernel 273a is designed specifically to perform a given algorithm, function, operation, or class thereof. Therefore, satellite kernel 270 has flexibility, e.g., reconfigurability, within the class of functions, operations, or algorithms to which it has been designed. By virtue of the fact that configurable computation kernel 273a is designed for a relatively narrow application in the present embodiment, it is consequently very energy efficient. Thus, it meets the needs of a wide range of communication protocols within a spread spectrum category, while being very efficient. Additionally, because satellite kernel 270 has its own local controller 271 , it operates autonomously with respect to the balance of the kernels in a hardware kernel plane, and to the balance of the communication device.
  • satellite kernel 270 can be activated or bypassed for a given function of an application, depending on the needs and protocol chosen for the application.
  • a description of the configuration and operation of a satellite kernel 270 is presented in a subsequent flowchart.
  • the present architecture is well suite d to a wide range of data processing functions, operations, and applications besides spread spectrum communication applications.
  • computing element 273a includes an architecture of electronic devices with coupling arrangements, from one or more of the possible techniques described in Figure 2B.
  • computing element 270 can include any combination of the techniques for device choice and configuration, including reconfigurable logic 211 , reconfigurable datapath 221 , reconfigurable dataflow 231 , or reconfigurable logic 241.
  • the computing element in a hardware kernel e.g., computing element 273a of K1 261a
  • DRL Dynamically Reconfigurable Logic
  • the present invention is well suited to incorporating other types of computational models that have different levels of granularity or different applications of granularity.
  • the techniques of Figure 2B used in configurable hardware kernel can be chosen depending upon the uncertainty of a design or function within the communication device.
  • the present invention frugally allocates the most flexible reconfiguration resources.
  • the present invention is well suited to complementing these enumerated techniques with other configuration and architecture techniques.
  • the computing element 273a is function (or algorithmic) specific each of the techniques used is subsequently function specific.
  • the electronic devices and their interconnections can utilize function-specific reconfigurable logic 211 , function specific reconfigurable datapath 221 , function-specific reconfigurable dataflow 231 and/or function specific reconfigurable logic 241 techniques as shown in Figure 2B in one embodiment.
  • the function-specific aspect of the devices and their interconnects means that the device is only effective and useful for the intended function, sub function, or classes thereof, in this embodiment. By doing so, this architecture efficiently delivers a class of MOPS with flexibility in the configuration of these MOPS and scalability across data rates and channel densities.
  • Electronic devices refer to the basic building blocks of electronic circuits such as transistors, diodes, resistors, conductors, and other elements that are well known in the art.
  • the collection of electronic devices and interconnects can be figuratively divided into a fixed grouping 275a and a flexible grouping 275b, intercoupled to each other on a device level, as required by the function implemented therein.
  • flexible architecture can be used to selectively group and couple registers to implement a class of functions whose math operations vary by their bit length, depending on the protocol used.
  • each of the multiple hardware kernels described in Figure 2C have an architecture that is tuned to its intended function.
  • the combination of architecture in a computing element is dependant upon the functions, or class of functions, to be performed by the hardware kernel.
  • Other variables such as performance requirements, user preferences, future expandability into undefined protocols are also included as inputs in the choice of architectures.
  • the hardware kernels each have a discrete function, operation, or class thereof, they can be evaluated as true object-oriented hardware.
  • a channel element can be built-up from the set of configurable hardware kernels to realize a reconfigurable multi-channel digital base band modem signal path that performs all the digital modulation-demodulation as well as channel encoding-decoding required per logical channel for all narrowband and wideband telecommunication standards.
  • kernel plane can form a modem card in a systematic and modular fashion in modules of multiple channels per card, depending on their radio (cell-site) system planning.
  • the present invention can be adapted to accommodate a wide range of channels.
  • two or more types of configurable architecture techniques are used in a given hardware kernel.
  • the present invention is well suited to using a single type of configurable architecture is used in a given hardware kernel.
  • the kernel compositions can vary within a hardware kernel plane, and between hardware kernel planes. Multiple types of architecture can be strategically located and coupled within a hardware kernel to accommodate the particular variation in the function/sub function desired. For example, if the variation for sample select sub function over IS2000, and 3GPP, 3GPP-FDD, 3GPP- TDD, and IXtreme protocols includes the number of bits selected, then the hardware kernel includes a reconfigurable logic for the interconnect bus and the storage location associated with the range of bits and a reconfigurable datapath for the balance of the circuit.
  • the present invention is well suited to using a wide range of architectural techniques shown in Figure 2B, and combinations thereof, from which individual hardware kernels are designed, constructed, and operated. These hardware kernels are capable of performing a wide range of functions within a class that spans a wide range of spread spectrum applications. Exemplary functions, for which kernels can be configured, are shown in Figures 2B, 2C, and 5, and are described hereinafter in Appendix A, entitled "Data Kernel Specification List.”
  • Several exemplary hardware kernels have been defined in related co-pending patent applications and are applicable in the present communication device, e.g., 100 of Figure 1 b. While these related patent applications provide a specific function for hardware kernels, the present invention is well suited to a wide range of data processing functions for electronic devices, such as a spread spectrum communication device.
  • the term architecture describes the electronic devices and coupling arrangements used in configurable hardware kernel plane 201a of Figure 2C, Kernel K1 261a and configurable computation kernel 273a of Figure 2D, reconfigurable interconnect 204a of Figure 2C, and the specific exemolary hardware kernels provided in the aforementioned applications.
  • the coupling arrangements include interconnect routing, grouping, and hierarchy.
  • the various combinations of reconfiguration techniques 211 , 221 , 231 and 241 of Figure 2B also describe the architecture of the configurable computation kernel 273a, the reconfigurable interconnect 204a, and the specific exemplary hardware kernels.
  • Devices can include components such as gates, selective interconnects, memory, lines, buses, and a wide range of conventional devices that are chosen and coupled in order to satisfy the functional requirements of a given application. More information on architecture of configurable devices can be found in the text "Software Radio Architecture,” by Joseph Mitola III, which is hereby incorporated by reference.
  • FIG 2E a block diagram of a hardware kernel containing a subcomponent hardware kernel is shown, accordance with one embodiment of the present invention.
  • Hierarchical block diagram 120b has many components and coupling arrangements that are similar to those presented in Figure 2D.
  • Satellite kernel 270a includes a hierarchy of hardware kernels, wherein another hardware kernel K7 317a is included therein. Kernel K7 317a, having an exemplary configuration as K1 261a of Figure 2D, provides a dedicated support kernel function to its parent kernel K1 311a. An additional control line 284a and clock line 279a is provided to dedicated hardware kernel K7 317a.
  • dedicated hardware kernel K7 317a can step up a clock rate another level for its own functions if needed for a given application.
  • Different configurations of a hardware kernel within a hardware kernel can exist depending on the needs for a given function in a given application.
  • an exemplary cellular telephony function can tailor parent kernel K1 311a for performing a demodulation operation or a matched filter operation. Either of these functions can benefit from a dedicated hardware kernel, e.g. K7 317a, providing dedicated code generator functions.
  • K7 317a providing dedicated code generator functions.
  • hardware kernel K7 317a can run autonomously under the control of its parent kernel K1 311a.
  • This configuration and architecture provides local control and operation, which consequently reduces traffic on a system processor or controller.
  • the present inventior is well suited to a variety of hierarchical levels or parent hardware kernels having different quantities of dedicated kernels therein.
  • FIG. 2f a block diagram 200f of the inputs, outputs, and functions accommodated by a hardware kernel in an electronic spread spectrum communication device is shown, in accordance with one embodiment of the present invention.
  • Functions described in block diagram 200f represent operation of exemplary hardware kemel(s) of Figures 2C through 2F.
  • Handshake input 280 is a signal from a source outside of a hardware kernel that initiates the operation of the hardware kernel, via a control signal generation block 284.
  • Input flags 282 alter the data, states, or functions of a hardware kernel.
  • a handshake input 280 can enable the hardware kernel functions (or algorithmic computations) 292 to proceed, while an input flag 282 will enable an appropriate communication of a previous state condition for hardware kernel functions 292.
  • the specific conditions, uses, and quantity of input flags can vary widely according to the needs of a particular function in a particular application, and the capacity of the hardware kernel functions.
  • Configuration input 281 provides information on how to configure hardware in a hardware kernel so as to perform the desired algorithm computation function.
  • Configuration input 281 includes information specifying: 1 ) type of operations to be performed; 2) inputs; 3) outputs; and 4) parameters of the configurable hardware kernel.
  • Configuration input 281 can also include information regarding the interconnect configuration used to build a cluster, or group, of kernels for implementing a function or sub function.
  • Control signal generation block 284 includes sub functions of preserving e.g., recording, and transmitting a state or a configuration of a hardware kernel as directed by handshake input 280 and configuration input 281.
  • Control signal generation block 284 also includes a sub function of clock scaling.
  • control signal generation block 284 generates output flags 296 and a handshake output 298 to components outside of the hardware kernel.
  • control signal generation block 284 provides a control signal, via a bus or a multiplexed line, to algorithm computation function block 292 that includes an enabling/status signal 295c, a state condition signal 295b, and configuration information signal 295d.
  • Control signal generation block 284 also provides an adapted clock signal 295a to algorithm computation block 292.
  • Clock scaling sub function can speed up, slow down, or preserve the rate of the system clock signal 288 received at control signal generation block 284.
  • the specific rate of the adapted clock signal 295a depends upon the rate of data processing for which algorithm computation block 292 is designed.
  • Clock signal input 288 is a system clock of the communication device in the present embodiment.
  • handshake output 298 and output flags 296 indicate the status of a hardware kernel or of data processed by algorithmic computation block 292.
  • handshake output 298 or output flags 296 include information such as successful execution, error rate, state condition, etc.
  • Algorithmic computation block 292 performs a desired algorithm for a set of data, received as input data 290. Inputs 295b, 295c, and 295d from control signal generation block 284 allows algorithmic computation block 292 to essentially perform its algorithmic-specific function autonomously from the balance of the communication device. During or after the completion of its function, algorithmic computation block 292 provides output data 294 to sources outside of hardware block, and provides status information 295 to control signal generation block 284 for subsequent handshake or flag setting. Algorithmic computation block can be figuratively divided in to a fixed portion of the algorithm 292a and a flexible portion of the algorithm 292b, communicating information to each other.
  • the fixed portion block 292a of the algorithm computation is the portion whose algorithmic functions essentially do not change for different communication protocols, e.g., the core functions or the common math that can be extracted from the different algorithms required for each protocol.
  • the flexible portion 292b of the algorithm computation is the portion that does change for different communication protocols.
  • the fixed portion 292a and flexible portion 292b of the algorithmic computation corresponds to the fixed portion 275a and flexible portion 275b of configurable computation kernel 273a shown in Figure 2D.
  • function blocks in block diagram 200f are implemented by hardware components described in Figures 2A through 2F.
  • one embodiment implements algorithmic computation function 292 of Figure 2F via computing element 273a of Figure 2D, and implements control signal generation block 284 in controller 271 and configuration information block 272.
  • Clock signal input 288, handshake input 280, and input flags 282 are provided to control signal generation block 284 via configuration line 274, and are communicated between components in hardware kernel 261a via an interconnect line 276, clock line 279, and control line 284.
  • Handshake output 298 and output flags 296 are transmitted on configuration line 274.
  • Input and output flags, and handshake input and output can be provided to/from another hardware kernel in the hardware kernel plane or to/from components outside of hardware plane 201a, via reconfiguration bus 206a. While the present embodiment provides specific hardware components and configurations for implementing hardware kernel functions 200f, the present invention is well suited to using a wide variety of hardware components and configurations for accommodating locally controlled algorithmic specific function blocks.
  • the present embodiment of components, configuration and functionality of hardware kernels shown in Figures 2B through 2G are capable of providing an operating efficiency from greater than 10 to several hundred (100) MOPS/mW in the present embodiment. This rate is well ahead of what is achievable from a programmable digital signal processor. Yet the present embodiment also provides a level of flexibility over a wide range of functions and a level of user control that is well beyond that of a traditional ASIC. The present invention is well suited to deliver a wide range of computation power and computational efficiency, depending upon the semiconductor process technology, VLSI integration/physical design method.
  • Block diagram 300a includes a chip-rate processor block 302 coupled to a symbol-sequence processor block 306 and parameter-estimation processor block 308. Both symbol-sequence processor block 306 and a parameter-estimation processor block 308 are coupled to each other and to ci channel-element processor block 310. Data input is first received in chip-rate procossor block 302 and is output from channel element processor block 310. Specific configurations of hardware kernels that can be categorized within each of the processor groups of Figure 3A, according to their processing rate are described hereinafter.
  • Chip-rate processor block 302 performs operations at a chip-rate, e.g., at 1.2288 Mega chips per second (Mcps) as required for an exemplary communication protocol.
  • the chip rate implicitly refers to the bit-rate at which data is received at a communication device, e.g., via an analog to digital (A-D) converter.
  • Chip rate processor block 302 includes a segregated component of a code generator unit (CGU) block 304.
  • CGU block 304 is explicitly delineated from the chip-rate processor block 302 because it can be spatially and temporally shared among multiple chip-rate processing realizations. That is, CGU block 304 can be shared among multiple instances of configurable modem processor 102a of Figure 1B. While the present embodiment refers to a specific numeric rate, the present invention is well suited to using any number rate, assuming a relative relationship between the blocks as indicated in Figure 3A.
  • Symbol-sequence processor block 306 communicates information between chip-rate processor block 302, parameter estimation processor block 308, and channel-element processor block 310. Similarly, parameter-estimation processor communicates information from chip-rate processor block 302 and channel-element processor block 310.
  • Hardware kernels can be organized into five classes of signal processing units, as described in the iist below.
  • sample-epoch refers to a kernel capable of performing sample-epoch calculations, and because the specification requires this operation be performed at a chip-rate, it is categorized in the chip-rate processor group.
  • the first group is a chip-rate processor group, which includes the following functions: Sample-epoch Selector; Multi-standard despreader; Multi- standard Dechannelizer; Code Generation Unit; Integrate and Dump Unit; and Multi- standard Searcher Control.
  • the second group is a Symbol-Sequence Processor Group, which includes the following functions: Transport Format Decoder; Dynamic Spreading Factor Computer; Fast Hadamard Transform; and Rotator/Squarer.
  • the third group is a Parameter-Estimation Processor Group, which includes the following functions: Energy Estimator; Timing Parameter Estimator; and Channel Estimator.
  • the fourth group is a Channel-Element (multi-finger) Processor Group which includes the following functions: Alignment/Deskewer; Combiner; Soft-decision Computer; Interpath Interference Equalizer; and Receive Antenna Diversity Combiner.
  • the fifth and final gnup is a Front-End Group, which includes the following functions: Data Switcl Selector; and Sample Interpolator.
  • Appendix A The specifications for each of the hardware kernel capabilities are provided in Appendix A, hereinafter. It is appreciated that one skilled in the art understands the references to CDMA and communication signal variables and protocols described in Appendix A. Additionally, Appendix A also provides an exemplary sequencing of the modem and codec functions described therein to realize a variety of transceiver signal paths by configuring the kernels and interconnect according to the types of operations and dataflow desired.
  • the present invention provides for the aforementioned specific kernel designations, functions, input, outputs, and parameters
  • the present invention is well suited to including alternative or additional kernel designations, functions, inputs, outputs, and parameters.
  • the present invention is well suited to different communication protocols such as time division multiple access (TDMA), or to future CDMA communication protocols, that are as yet, unspecified.
  • TDMA time division multiple access
  • CDMA code division multiple access
  • the present embodiment provides for specific levels of processor rates
  • the present invention is well suited to using different processor rates, or different relative levels of processor rates.
  • FIG. 3B an alterative functional data flow diagram 300b for configurable multiprocessors in a modem application is shown, in accordance with one embodiment of the present invention.
  • Receive path 354 includes a front-end processing and storage group 301 coupled to provide data to finger(s) function block 301b, to searcher(s) function block 301c, and to matched filter(s) function block 301 d.
  • Finger(s) block 301b is coupled to provide data to symbol processor block 301 e and to parameter estimator(s) block 301 f.
  • Symbol Processor block 301 e is coupled to provide data to channel-element processor block 301 g.
  • Searcher block 301c and matched filter block 301 d provide feedback to finger(s) block 301b via internal software control of communication device 100 of Figure 1 B.
  • Parameter estimator(s) block 301f provides control information to power control lop block 305 which then is coupled to forward processed control information to data mapping block 307c for regulating data on the transmit path 352.
  • transmit path 352 provides a more linear data flow starting with a transmit diversity method selection block 307d coupled to provide data to data mapping block 307c.
  • data mapping block processes data with the input from the power control ioop(s) block 305 and forwards it to code modulator block 307b.
  • code modulator block 307b is coupled to communicate modulated data to channel summer 307a.
  • Functional kernels such as those shown in the subsequent figure, are used to enable each of the functional groups in Figure 3B.
  • hardware kernels similar to those in Figure 2C and 2D are used to implement the functional kernels.
  • An example of functional kernel operation is provided in Appendix A, included herein.
  • This group of hardware groups allows flexibility in the architecture of the interface to the antenna bus, e .g., bus 129 of Figure 1B.
  • the interface is designed to support both new and legacy equipment via multirate filtering supporting operation over multiple chip rate inputs
  • FIG. 3C a block diagram 300c of several user-defined modes of operations performed for modem signal processing functions in the electronic spread spectrum communication device, in accordance with one embodiment of the present invention.
  • the functions are arranged in a time- sequence manner where the output of one function is provided as the input to the adjacent function.
  • These three modes are exemplary, and the present invention is well suited to using a wide variety of function sequence modes.
  • Block diagram 300c includes three separate and distinct user-defined modes of operation, e.g., a first mode, mode (1 ) 311 , a second mode (2) 312, and a third mode (3) 313.
  • first mode 311 corresponds to an exemplary legacy protocol
  • user mode (2) 312 corresponds to a CDMA 2000 protocol
  • user mode (3) 313 corresponds to a 3GPP protocol.
  • Interpolation filters 311a, 312a, and 313a are common to all three modes.
  • other functions are unique and separate for a given mode.
  • rotate function 312g and 313g are not included in mode (1 ) 311.
  • the explicit functions shown in Figure 3C are as follows:
  • -User Mode (1 ) 311 includes: an interpolation filter 311 a, a sample select function 311 b, a short/long code 311c, an integrate and dump (l&D) function 311d, all of which can be grouped as a chip-rate functions 314.
  • User mode includes: an interpolation filter 311 a, a sample select function 311 b, a short/long code 311c, an integrate and dump (l&D) function 311d, all of which can be grouped as a chip-rate functions 314.
  • (1 ) 311 also includes: a scale function 311 e, a fast Hadamard transform (FHD) 311f, a magnitude (MAG) function 311g, a deskew function 311h, all of which can be grouped as symbol-sequence functions 315.
  • user mode (1 ) 311 includes a combine function 311 i, which is a channel-element processor function 318. All the functions listed for user mode (1 ) 311 are coupled to each other in a serial manner.
  • -User Mode (2) 312 includes: an interpolation filter 312a, a sample select function 312b, a short/long code 312c, a Walsh/Orthogonal Variable Spreading Factor (OVSF) code function 312d, an l&D function 312e, a scale function 312f, a rotate function 312g, a deskew function 312h, a combine function 312i, all coupled to each other sequentially.
  • OVSF Walsh/Orthogonal Variable Spreading Factor
  • 313 includes: an interpolation filter 313a, a sample select function 313b, a short/long code block 313c, a Walsh/OVSF function 313d, an l&D function 313e, a scale function 313f, a rotate function 313g, an inter- path interference (IPI) equalize function 313h, and a combine function 313i.
  • an interpolation filter 313a a sample select function 313b
  • a short/long code block 313c includes: a short/long code block 313c, a Walsh/OVSF function 313d, an l&D function 313e, a scale function 313f, a rotate function 313g, an inter- path interference (IPI) equalize function 313h, and a combine function 313i.
  • IPI inter- path interference
  • Figure 3D a block diagram of the modulation/demodulation (modem) functions accommodated by an electronic spread spectrum communication device is shown, in accordance with one embodiment of the present invention.
  • Figure 3D illustrates a configurable functional plane with serial and parallel functional capabilities that provide the flexibility, speed and efficiency required accommodating a wide range of modem functions for different communication protocols.
  • Figure 3D also illustrates the concept of parallel processing in multiple functional planes to accommodate high channel density in a communication system.
  • Exemplary modem functions, for which hardware kernels can be configured, are described hereinafter in Appendix A, entitled “Data Kernel Specification List.”
  • Figure 3D provides function groups for a Receive path 354 only.
  • modem function block 320 includes multiple functional planes, e.g., functional kernel planes [1] 330a and [i] 330i that represent the functions required and performed by kernels for a given application.
  • the functions provided are for an exemplary cellular spread spectrum application.
  • Each functional plane represents the capabilities of a configurable demodulating finger hardware kernel plane. While the present embodiment shows only two functional planes, the present invention is well suited to using any number of functional planes, as appropriate for a given application.
  • functional planes [1] 330a through [i] 330i perform modem functions for any one of a multitude of different communication protocols, e.g., IS2000, 3GPP, as well as anticipated future protocols.
  • Functional kernel plane 330a includes a sequential arrangement 356d of sub functions of the modem function that are common to multiple communication protocols to be accommodated by a communication device.
  • Functional plane [1] 330a also includes a parallel arrangement, 356a through 356c, of sub functions that are unique to one or more of the multiple communication protocols. By using this arrangement, the present invention can accommodate any of the multiple communication protocols efficiently, and can quickly change between different protocols.
  • Sequential arrangement 356d of sub-functions in functional plane [1] 330a includes the following sub function blocks: 1 ) interpolation filter block 331a; 2) sample select block 332a; 3) short/long code block 334a; 4) Walsh/orthogonal variable spreading factor (OVSF) block 336a; 5) integrate and dump (l&D) block 338a; and 6) scale block 339a.
  • Sequential arrangement 356d of sub-functions represents the common functions that are used in multiple communication protocols.
  • WCDMA anc some other 3-GPP applications can use the sub- functions listed in sequential ar ngement 356d.
  • a first grouping 356a includes a fast Hadamard transform (FHT) block 340a followed by a magnitude calculation block 342a and a deskew/align block 344a, as required for an exemplary communication protocol.
  • a second grouping 356b includes a rotate block 346a followed by a deskew and align block 347a (that is common between path 356c and 356b), as required by 3GPP and CDMA-2000 communication protocol.
  • FHT fast Hadamard transform
  • a second grouping 356b includes a rotate block 346a followed by a deskew and align block 347a (that is common between path 356c and 356b), as required by 3GPP and CDMA-2000 communication protocol.
  • a third grouping 356c includes a rotate 346a block (that is common for path 356b and 356a) followed by an inter-path interference (IPI) block 349a, as required by the 3GPP communication protocol.
  • IPI inter-path interference
  • Function blocks 331a through 339a of sequential arrangement 356d are common to the extent of their functional category; each function has parameters that can be varied for different protocols that use that function and for changes over time for a given protocol.
  • sequential arrangement 356d and parallel arrangement 356a through 356c provides a specific type, quantity, and sequence of functions for a given range of communication protocols
  • the present invention is well suited to using a wide range of functions in each arrangement.
  • the present invention is well suited to narrowing or expanding the scope, application, and protocols accommodated by the functions.
  • additional functional planes e.g., functional plane [1] 330a through plane [i] 330i, include the same functions, e.g., interpolating filter block 331a and 331 i.
  • every functional plane in modem function block 320 is equally configurable with the full flexibility to accommodate each of the communication protocols.
  • one or more functional planes have functional capabilities that are different from each other.
  • each functional plane in modem function block 320 has the ability to handle different subsets of the superset of communication protocols accommodated by the overall communication device.
  • one functional plane can be configured to accommodate IS2000 and CDMA-2000 communication protocols, while another functional plane is configured to accommodate a legacy communication protocol.
  • a functional plane can accommodate multiple communication protocols, it is configurable to a desired protocol.
  • each of the multiple functional planes can be configured to accommodate the same communication protocols at a given time, or to accommodate different communication protocols at a given time.
  • functional planes [1] 330a and [i] 330i can be configured to both perform a CDMA-2000 protocol at a given point in time.
  • functional planes [1] 330a and [i] 330i can be configured to perform different communication protocols at a given point in time, e.g., functional plane [1] 330a is configured to perform CDMA-2000 protocol while functional plane [i] 330i is configured for a legacy communication protocol.
  • One aspect of the configurabiltiy of a functional plane of Figure 3D is that the configuration itself can change, e.g., it can be reconfigured.
  • the independent variable associated with the change can be time, a channel designation, or some other user-defined variable.
  • the time variable can be a long or short temporal designation, e.g., years, months, or even milliseconds.
  • the reconfigurability of the functional planes is dynamic in one embodiment, e.g., the reconfiguration occurs while other functional planes are operating.
  • the configuration data used to designate the functions and protocol accommodated may be communicated via wireless transmission of configuration data along with the data, or by loading pre-stored configuration data on communication device. In this manner, the present invention provides a temporal and functional range of granularity for the functional planes of the communication device that are definable by a user.
  • Receive path 354 shows the direction of data flow through functional blocks 329 through 349 in a modem function plane 330a.
  • the modem function block 320 can accommodate both directions of data traffic, by time-sharing the functional resources.
  • function group A 316a which includes FHT function 340a and Mag function 342a
  • function group B 316b which includes interpolation filter 331a, sample select block 332a, short/long code 334a, Walsh/OVSF block 336a, and I & D block 338a
  • function group A 316a which includes FHT function 340a and Mag function 342a
  • function group B 316b which includes interpolation filter 331a, sample select block 332a, short/long code 334a, Walsh/OVSF block 336a, and I & D block 338a
  • specific subcomponents e.g., algorithmic-specific kernels
  • a channel element can be built-up by the user from the set of reconfigurable kernels to realize a reconfigurable multi-channel CDMA digital base band modem signal path that performs all the digital modulation-demodulation as well as channel encoding-decoding required per logical channel for all narrowband and wideband CDMA standards.
  • the present modem functional block diagram 320 can be realized by providing parallel identical channel elements, where each channel element one or more fingers, for a total number of fingers appropriate for a given application (e.g., user density, etc.). With each channel element in receive path 354 consisting of configurable and programmable kernel engines for despreading, demodulating, parameter estimation, and combining. Modem signal processor function block 320 offers a communication system with many effective fingers, allowing a very high level of channel integration, while allowing the communication system to employ proprietary algorithms to improve radio link performance, as will be described hereinafter. Each channel element, including its definition and structure, is completely under the communication system's control using the mixed programming granularity to control dataflow, controlflow, and interconnect. This process is discussed in more detail for a subsequent flowchart figure.
  • Transmit path 352 is configured with multiple channel elements in the present embodiment, thus enabling maximal use of forward-link capacity per sector in multicarrier systems.
  • the architecture of the modem signal processor 102a of Figure 1 B is such that it enables the system designer to program the chip at many levels, including control of specific datapaths to realize different algorithms.
  • a hierarchical Application Programming Interface (API) that supports several levels of user control for the modem signal processor is described in co-pending patent application entitled "A METHOD FOR DESIGINING A CONFIGURATION FOR A CONFIGURABLE SPREAD SPECTURM COMMUNICATION DEVICE.”
  • the design of configurable hardware kernels can be determined, as described in a subsequent flowchart figure.
  • all three of these modes can be configured to run on a single communication device, e.g. device 100 of Figure 1b.
  • all three user-modes may appear to exist independent of each other.
  • a functional implementation of the three different modes can selectively exist on each of the multiple functional planes, e.g., function planes [1] 330a through [i] 220i, of Figure 3D.
  • the similar aspects of all three user modes are included in sequential function block 356d of Figure 3D, with the non-similar functional aspects of the three user modes provided in the three parallel function blocks 356a through 356c.
  • the three parallel function blocks (or paths) 356a through 356c of Figure 3D can be intermittently selected to provide a sequentially varying configuration protocol within a given functional kernel plane, e.g., time-sharing the resources.
  • different functional kernel planes can be configured to different communication protocols depending upon the communication traffic or user needs.
  • different functional kernel planes can be configured to perform different portions of the functions.
  • functional kernel plane 330a can be used to handle all the sequential communication functions 356d for all three different modes, while functional kernel plane 330i can perform one or more of the sequential functional blocks 356a through 356c. With all these scenarios, hardware kernels are used to implement these functional sequential and parallel blocks, as described in a subsequent figure.
  • Figure 4 a block diagram of encode/decode (codec) functions accommodated by the electronic spread spectrum communication device is shown, in accordance with one embodiment of the present invention.
  • Figure 3C illustrates a configurable functional plane with functional capabilities that provides the flexibility, speed and efficiency required to accommodate a wide range of codec functions for different communication protocols.
  • Figure 3C also illustrates the concept of parallel processing in multiple functional planes to accommodate high channel density in a communication system.
  • Functions in Figure 4 relate to an exemplary spread spectrum communication system of cellular telephony.
  • Codec function block 400 includes an address generator block 401 coupled to an allocator function block 402, in turn coupled to dynamically assignable scratch/buffer memory 404, such as random access memory (RAM), in the present embodiment.
  • Dynamically assignable scratch/buffer memory 404 is coupled to each of the multiple possible configurable decoder functional planes.
  • Allocator function block is implemented by allocator hardware block 219 of Figure 2A, which includes state machine components and memory that is chosen and coupled in a manner to manage multiple functional planes, e.g., planes 406 and 410.
  • the configuration of the allocator components can vary depending upon the protocol implemented in the multiple functional planes, e.g., planes 406 and 410.
  • Dynamically, a single scratch/buffer memory 404 is operational to provide configuration and state information as required for configuring and sharing resources in the multiple functional planes 406 and 410.
  • codec function block 400 includes a single functional kernel plane for a given data flow direction, e.g., decode functional plane 410 for decode data path 258, and encode function plane 406 for encode data path 259.
  • Each functional plane utilizes configurable codec hardware kernels to accommodate their different functions, which are described hereinafter.
  • decode functional plane 410 includes an exemplary arrangement of sub functions for a decode path 408 to translate encoded received data into a data signal, per an appropriate communication protocol for the desired application.
  • the arrangement of functions includes, in one embodiment, a bit field extraction block 410 coupled to a memory block 412, which is then coupled to deinterleaver block 414, which is in turn coupled to rate matching block 416.
  • Rate matching block 416 is coupled in parallel to Viterbi block 418 and to Turbo decoder block 420, both of which are then coupled to provide data to cyclic redundancy checker (CRC) block 422.
  • CRC block 422 is coupled to buffer 424.
  • Decode function kernel plane 410 includes other user-configurable decoder functions, described hereinafter, for convolution decoding and turbo decoding. The basic function of convolution decoding and turbo decoding is known by those skilled in the art.
  • encode functional plane 406 includes a sequential arrangement of functions, or sub functions, (not shown for clarity) for an encode path 409 to translate data into an encoded signal, per an appropriate communication protocol of the desired application.
  • Encode path 409 shows a data path direction through codec function block 400 that is opposite that of decode path 408.
  • the codec function block 400 can accommodate both directions of data traffic, by time-sharing the functional resources.
  • a wide range of common functions, implemented serially, and a wide range of diverse functions, implemented parallely, for the wide range of spread spectrum applications can be obtained from the operating specifications for these different protocols.
  • transmit encoder path 409 of Figure 4 includes user-configurable encoder kernels for convolution encoding and turbo encoding.
  • the specific function block descriptions implemented by reconfigurable decoder plane 406 include deinterleaver controller, turbo decoder, and convolution decoder. Appendix A, provided hereinafter, describes the specifications for the decode and encode functions implemented in the hardware kernels. It is appreciated that one skilled in the art understands the references to CDMA and communication signal variables and protocols within Appendix A.
  • the Channel Codec function plane 400 as implemented in Channel Codec Signal Processor 104 of Figure 1 B, operates under the following criteria, in one embodiment:
  • a configuration as defined as a radio channel configuration, maps directly onto one thread of processing on the Channel Codec Signal Processor • Type of channel specified by BTS channel card controller.
  • Radio Configurations 1-6 All radio configuration characteristics for the reverse channel in derivative systems (Radio Configurations 1-6) as well as ARIB and 3GPP Direct- Spread FDD (Radio Configurations based on Service Class and Associated User Data Rate).
  • BTS Channel Card Controller will interface to the BTS Cell Controller for sending and receiving control information associated with call setup, teardown, and handoff.
  • the logical channel assignments for a physical channel can be changed during the course of a call at any FRAME boundary.
  • Physical channels may request a larger bandwidth or smaller bandwidth for the same assignment during the course of a call.
  • functional planes 406 and 410 can be configured to perform codec functions for a wide range of spread spectrum communication applications, as described hereinabove.
  • multiple functional planes (not shown) for both encoding and/or decoding can exist.
  • additional functional planes for a given data flow, e.g., decoding path 408, include the same functions for decoding.
  • every functional plane in codec functions is equally configurable with the full flexibility to accommodate each of the communication protocols.
  • one or more functional planes have functional capabilities that are different from each other.
  • each functional plane in codec function block 400 has the ability to handle different subsets of the superset of communication protocols accommodated by the overall communication device.
  • one functional plane can be configured to accommodate IS-95 and CDMA- 2000 communication protocols, while another functional plane is configured to accommodate WCDMA and 3GPP.
  • All the functional planes can be physically implemented in a single codec hardware processor block, e.g., block 104 of Figure 1 B, in the present embodiment.
  • the present invention is well suited to a wide variety of physical implementations.
  • the configurabiltiy and dynamic reconfigurability of codec functional planes is also described in subsequent flowcharts. Referring now to Figure 5, a diagram of the separating and combining process of a single thread into multiple concurrent threads to be accommodated on the communication device is shown, in accordance with one embodiment of the present invention.
  • the model for computation using the reconfigurable multiprocessor architecture of the present invention starts from the model of a single thread representing Function A 504, which is initialized on a microprocessor or digital signal processor, e.g., processor 112 of Figure 1 B.
  • a microprocessor or digital signal processor e.g., processor 112 of Figure 1 B.
  • application-specific processing threads e.g., thread 1 501 through thread 3 503, are split off in the pre-processing stage.
  • function A 504 is a modem function within a given application, e.g., a wireless communication protocol such as CDMA IS-95.
  • Function A 504 includes multiple sub functions that can be performed in series or in parallel.
  • the sub functions that are performed concurrently, e.g., in parallel, are referred to as a threads, e.g., thread 1 501 , thread 2 502, and thread 3 503, for the modem function A 504.
  • the number of threads can vary in different embodiments, according to the operations required by a given function or sub function, and their need to be performed concurrently, e.g., defined by a communication protocol in the present embodiment.
  • Concurrent operations 508 are performed on each of the respective threads 501-403 in a communication device, according to the sub function requirements. Thereafter, the threads are terminated with the provision of data and control is returned the microprocessor.
  • Each thread can be implemented on an autonomous configurable kernel in the present embodiment.
  • a processor 112 along with an optional allocator 219, as shown in Figure 2A, can initiate or manage the separating and combining operations.
  • the chronological sequence of events for the function of separating and combining functions/sub functions is provided in a subsequent flowchart figure.
  • a modulation function can be broken down into concurrent sub function on data, such as interpolation filter, sample select, short/long code generation, etc.
  • each sub functions can be broken down into multiple concurrent operations. For example, a filter interpolation requires operations such as data fetch, addition, decision logic, etc.
  • FIG. 6A a flowchart 6100 of the process used to implement a design configuration onto a configurable spread spectrum electronic spread spectrum communication device is shown, in accordance with one embodiment of the present invention.
  • a configurable electronic device can be configured to a user- specific design configuration. In this manner a significant amount of control over the operation and function of the configurable device is provided to the user.
  • the implementation of the design into the device is direct and convenient, thus providing timely flexibility in a field where protocols can change quickly and frequently.
  • Flowchart 6100 is implemented, in general, by communication device 100 of Figure 1 B and VMI 150 of Figure 1 D, as well as diagrams of components as shown in Figures 2A through 2G.
  • Flowchart 6100 begins with step 6102.
  • a design configuration is received at a configurable device.
  • a design configuration for a configurable communication device can be a 3GPP-specific configuration, implemented by user-specified proprietary algorithms, in one embodiment.
  • Step 6102 is implemented, in one embodiment, by providing design configuration data, e.g., from configuration mappings input 174 of Figure 1 D, to configuration information block 272 of a hardware kernel K1 261a via reconfiguration bus 206a. More than one configuration can be provided in one embodiment. In this case, a configurable device can be partitioned to perform multiple protocols, having a unique configuration for one or more functions, within a single communication device.
  • the partitioning can be static amongst the hardware, or can be dynamic, e.g., in the case of time-shared configurable hardware kernels.
  • the configuration information can also contain information to provide options, e.g., quality of service (QOS) when implementing the function for a given user or channel in the communication device.
  • QOS quality of service
  • the transmission of the design configuration can either be via wired or wireless coupling.
  • step 6102 provides a specific location of configuration information block 272 and a specific route, e.g., reconfiguration bus 206a, in which it is downloaded to a hardware kernel
  • the present invention is well suited to using alternative components and interconnects to implement step 6102.
  • the configuration information at a level that is local, e.g., in terms of spatial and control aspects, to the individual hardware kernel
  • the present embodiment provides effective local processing that is autonomous, in varying degrees, to the balance of the host device. In this manner, the present invention is able to provide efficient and flexible parallel processing of data.
  • Step 6102 can be implemented by receiving desired configurations for hardware kernels, e.g., kernel 261a of Figures 2C through 2F, in communication device 100 of Figure 1B, via a variety of embodiments.
  • configuration information is received via wired communications with a computing device, e.g., a workstation.
  • configuration information can be provided by an electronic storage medium, e.g., CD-ROM.
  • configuration information is received by wireless transmission from another communication device via antenna 120.
  • configuration information is provided at the time communication device 100 is manufactured and/or initially programmed for operation in the field, in the present embodiment.
  • configuration information is dynamically implemented at a time communication device 100 is in operation in the field.
  • Configuration information is received, processed, and implemented via system processor 112 (or BTS card controller 110a) and system memory 118, which then communicates the information and instructions via bus, e.g., bus 127 of Figure 1C, to configurable processors, e.g., configurable modem processors 102a and 102b and configurable codec processor 104.
  • configurable processors e.g., configurable modem processors 102a and 102b and configurable codec processor 104.
  • local memory e.g., configuration memory 272
  • local controller e.g., controller 271 of Figures 2D and 2E
  • flowchart 6100 proceeds to step 6104.
  • de ⁇ ijn configuration software (s/w) is loaded into control registers.
  • Step 6104 is implemented, in one embodiment, by storing design configuration data in configuration information block 272 of the appropriate hardware kernel.
  • Card controller 110a or processor 112 of communication device 100 in Figure 1 B can direct the configuration information to the appropriate control register addresses within configuration information block 272 of Figure 2D as identified by an off-line mapping operation, e.g., a programming interface (or programming tools) on a separate workstation.
  • an off-line mapping operation e.g., a programming interface (or programming tools) on a separate workstation.
  • a hardware kernel designed for integrate and dump functions will receive the configuration software information related to integrate and dump functions.
  • Steps 6104 and 6102 can be implemented by receiving a computer program with data and instructions for configuring the configurable spread spectrum electronic communication device.
  • Exemplary computer programs for configuring modem and codec functions in the configurable spread spectrum electronic communication are provided in Appendix B hereinafter.
  • the exemplary computer programs provide an implementation file that defines a modem finger function by defining: the sequence of operations; the parameters that control the dataflow; and the parameters that control the initiation or termination of the function.
  • a specific finger behavior is realized below by building the finger using the principle of an extensible data type.
  • the sequence of operations that define a finger are determined by the user, and then declared as the finger type. The user then declares the parameters that will control the dataflow and then define the initiation and termination conditions.
  • the configuration data and computer program having instructions to implement the configuration data are implemented by a virtual machine interface (VMI), in the present embodiment, that quickly and efficiently translates the computer language information to the appropriate configuration mappings.
  • VMI virtual machine interface
  • FIG. 1 D provides an exemplary VMI 150 for interfacing configurable components, e.g., configurable modem processor 120a and configurable codec processor 140 of configurable communication device 100, as shown in Figure 1B.
  • I/O device driver block 166 contains the respective drivers for the algorithmic-specific hardware kernels (or satellite kenels) described in Figures 2C through 2G.
  • hardware kernel bloc k K1 261a through K6 266a of Figure 2C have architectures that are designed lor demodulation functions, then the necessary drivers for each of these hardware kernel blocks will exist in I/O device drivers block 166. These drivers will be used to configure the hardware kernels and implement the desired functions.
  • Device drivers can exist for all the functions covered by a given application, e.g., for communication device 100 of Figure 1 B.
  • Figure 1D provides additional description of the VMI operation. Following step 6104, flowchart 6100 proceeds to step 6106.
  • an operating system interface is loaded into a controller.
  • Step 6106 is implemented, in one embodiment, by receiving the operating system interface, as determined by a configuration design process.
  • the controller receiving this information can range from: BTS card controller 110a of Figure 1 B; BTS cell controller 114 of Figure 1C; allocator
  • controller 219 of Figure 2A controls the individual hardware kernel controllers, e.g., controller 271 of Figure 2D, in each of the hardware kernel planes, e.g., plane [1] 201a through plane [i] 201 i.
  • BTS Channel Card Controller 110a hosts the software stack developed by the user, e.g., per a configuration design process for a configurable device, that includes a standards-driven OSI Layer 1 Modem software stack.
  • This software controls the operation of a modem signal processor, e.g. configurable modem processor 102a, and a Channel Codec Signal Processor, e.g., codec processor 104.
  • This software stack exploits the full power of an Application Programming Interface (API) for the wireless spread spectrum communication platform to realize efficient radio link performance for each channel via a user's proprietary signal processing techniques.
  • API Application Programming Interface
  • the present embodiment effectively employs a hierarchy of controllers for providing configuration information and control information that will allow the autonomous operation of the individual hardware kernels. This allows for efficient parallel processing, with the benefit of reconfigurability.
  • flowchart 6100 proceeds to step 6108.
  • step 6108 of the present embodiment the operating system (OS) interface is linked with the API.
  • Step 6108 is implemented, in one embodiment, by linking the appropriate set of interfaces from the API, e.g., from API inputs 172 of Figure 1 D.
  • the OS interface data and the API inputs can be stored in memory 118 on communication device.
  • Step 6108 effectively reconciles the two interfaces such that the OS of the communication device can implement the functions desired on the appropriate hardware kernels, as provided in a configuration design process.
  • flowchart 6100 ends.
  • FIG. 6B a flowchart 6200 of the process used to operate a configurable spread spectrum electronic spread spectrum communication device is shown, in accordance with one embodiment of the present invention.
  • an application with different protocols can be provided for in a configurable electronic device. Consequently, the present invention provides a method for designing efficient and intelligent flexibility into a configurable device to accommodate current differences and protocol as well as future protocol changes.
  • Flowchart 6200 is implemented, in general, using the functional block diagram of Figure 1 D and the hardware block diagrams of Figures 1 A through 1 C, and figures 2A through 2F.
  • Flowchart 6200 begins with step 6202.
  • a signal is received at a configurable electronic device for processing.
  • Step 6202 is implemented, in an uplink transmission from a mobile to a BTS, by a communication device, e.g., device 100 of Figure 1 B, receiving a signal via wireless radio frequency (RF) transmission.
  • the signal can be a continuous signal, as appropriate for CDMA systems, or a signal having time-divided packets therein, as appropriate for TDMA systems.
  • the sending and the receiving devices could be a base transceiver station (BTS), a mobile unit, or a test platform.
  • the signal can include data information, control information, configuration information, and options for implementing configuration information.
  • step 6202 is implemented in one embodiment by receiving signal on antenna 120 and communicated by bus 129 to communication device 100, as shown in Figure 1B.
  • a MTSO traffic interface sends voice, data, and control data packets, via bus 128 to the transmit-data-pump path in CDMA BTS Modem Platform communication device 100 according to the configuration specified by the BTS Cell Controller 114 for that specific payload, as shown in Figure 1 B.
  • the communication device 100 under control from the BTS Card Controller 110a, assigns a signal source to a receive-data-pump path in the modem signal processor.
  • flowchart 6200 proceeds to step 6204.
  • step 6204 of the present embodiment the signal is preprocessed.
  • Step 6204 is implemented, in one embodiment, by performing preprocessing steps that prepare a signal for the core processing to be performed by the reconfigurable hardware kernels of the communication device.
  • preprocessing steps such as disassembly of the signal and synchronization of signal with over the air timing. Preprocessing can also include demuxing and sector-by-sector combining in the cases where channels from different sectors arrive from different modem signal processor transmit paths.
  • step 6204 includes parallel steps of synchronizing the signal and providing different types of data for the subsequent processing and transmission. By preprocessing the signal, it is prepared for the scope of processing available to a given hardware design kernel. Following step 6204, flowchart 6200 proceeds to step 6206.
  • a configuration for a configurable element is determined for a given user/channel.
  • the configuration can be user/channel specific.
  • the configuration can include inputs such as radio type 6207a or quality of service (QOS) level 6207b, to determine the appropriate configuration of the user/channel, or to determine the specific option within an appropriate configuration.
  • Radio type of service 6207a can include IS-95B, IS-95C, and IS-2000 as described in TIA/EIA IS2000.2. This input can also include the choice of 3GPP x3.84 MHz Direct-Spread Mode frequency division duplex (FDD) communication protocol.
  • QOS level 6207b can be a contracted level of reception quality or optional service features. While specific input types and choices are provided in the present embodiment, the present invention is well suited to using any type of input, and choice therein, as is supported by the design of the configurable device.
  • Step 6206 is implemented in one embodiment using memory 118, BTS card controller 110b of communication device 101 in Figure 1C, or by using allocator 219 of Figure 2A and configuration information block 272 of Figure 2D.
  • a physical channel can be tied to a specified configuration, and thus established a priori.
  • the data to be pro essed by the configurable device can contain header information that indicates a protocol, and hence an appropriate configuration for the hardware kernels assigned to process that protocol Following step 6206, flowchart 6200 proceeds to step 6208
  • the signal is assigned a data pump path on one or more independent processors
  • Step 6208 is implemented, in one embodiment, by allocator 219 and/or microprocessor 1 12 of Figure 2A, in conjunction with memory Microprocessor 1 12 and allocator 219 use a unique set of communication primitives to indicate the data pump path between multiple hardware kernels of which the data is required to flow for data processing that will satiate the desired functions
  • the information needed for a data pump path includes the hardware kernel addresses from which, and to which, data flows for the required data processing operation
  • the information also includes any configuration data necessary for the reconfigurable interconnect, e g , interconnect 204a of Figure 2C, to realize the interconnection of the two or more hardware kernels
  • the address, instructions, and configuration information (such as reconfigurable interconnect configuration) are stored in memory 1 18 of communication device 100 of Figure 1 B and/or memory portion of configuration information block 272 or in controller block 271 of a given hardware kernel as shown in Figures 2D and 2E
  • step 6208 several function blocks, e g , for function group B 316b of Figure 3D, can be implemented on hardware kernel plane 201 a of Figure 2C
  • hardware kernel group A 268a of Figure 2C can utilize hardware kernels K1 261 a, K4 264a, and K5 265a, with the appropriate interconnects between them being established by reconfigurable interconnect 204a to implement a given function, or group of functions
  • the data pump path refers to the hardware kernels used to implement the functions, and the sequence of data flow between these appropriate kernels Following step 6208, flowchart 6200 proceeds to step 6210
  • step 6210 of the present embodiment design configuration information is received at a configurable hardware kernel for processing a respective portion of the signal
  • Step 6210 is implemented, in one embodiment, by receiving design configuration information from configuration information block 272 at satellite kernel 270, within the hardware kernel 261 a, as shown in Figure 2D
  • the memory location of the information can be provided elsewhere, such as a memory portion of allocator 219
  • This information is downloaded in the present embodiment at start up of the device, following an off-power condition that cleared memory in satellite kernel 270.
  • this information can be reloaded for an interrupt or fault condition, as preset or determined by a user. New configuration information can be received while the device is powered up, thus overriding the previous configuration.
  • Functional block diagram 200f shows that control signal generation block 284 provides a configuration information function via communicating the configuration to algorithmic computation block 292 via line 295d.
  • flowchart 6200 proceeds to step 6212.
  • step 6212 of the present embodiment an inquiry determines if time-sharing is occurring. If time-sharing is occurring, then flowchart 6200 proceeds to step 6214. However, if time-sharing is not occurring, then flowchart 6200 skips to step 6216.
  • Step 6212 provides the logic to determine whether a configurable device has a time- share set up or not. The time-share set up requires additional management and memory storage steps, as indicated hereinafter.
  • a configuration input 121 to a communication device can indicate whether time-sharing is used or not, and to what extent it is used.
  • Step 6212 is implemented, in one embodiment, via allocator 219 or processor 112 of Figure 2A.
  • allocator 219 or processor 112 can be used to determine whether time-sharing exists, e.g., via pre-programmed time-share configuration of a channel ID or some other identifier. Furthermore, a configuration design process provides the necessary configuration information and management logistics to implement a time-sharing set up.
  • Time-sharing can exist on a wide range of hardware levels.
  • time-sharing can exist on a hardware kernel by hardware kernel basis, e.g., K1 261a, or on a hardware plane by hardware plane basis, e.g. hardware kernel plane 201a.
  • time-sharing can occur intermittently on a device, as programmed by a user.
  • a device can time-share in terms of temporal variation, e.g., different parts of the day require more or less resources, or spatial diversity, and e.g., some sectors of a base station having higher resource requirements than other sectors.
  • the present invention provides effective scalability without significant changes to the architecture. Additional information on timesharing apparatus and processes is described in co-pending patent application entitled “IMPROVED APPARATUS AND METHOD FOR MULTI-THREADED SIGNAL PROCESSING," Serial No. 09/492,634, and filed on January 27, 2000. This related application is commonly assigned, and is hereby incorporated by reference.
  • Step 6214 arises if time-sharing is desired, per step 6212.
  • the state information for the applicable time slice is received.
  • Step 6214 is implemented, in one embodiment, by retrieving a stored state of configurable computation kernel (or configurable satellite element) 273a in a memory portion of controller 271 , or in configuration information block 272, of Figures 2E or 2D respectively.
  • the state of the reconfigurable interconnect 204a of Figure 2C can be stored in memory in allocator 219, as shown in Figure 2A, or in memory 118 of communication device 100, in another embodiment.
  • the state information is provided to configurable computing element 273a.
  • the type of state information is that required for performing the operation for a given function.
  • the states in registers used for filtering can be stored.
  • the state of the data being processed can be stored, if the operation was not complete.
  • flowchart 6200 proceeds to step 6216.
  • step 6216 of the present embodiment the signal is processed by the appropriate configurable elements, e.g., the hardware plane or hardware kernel, etc., as shown in Figures 2A through 2F.
  • control is transferred, e.g., via a handshake protocol, to the pool of reconfigurable kernels, e.g., K1 261a through K6 266a of Figure 2C.
  • the pool of reconfigurable kernels e.g., K1 261a through K6 266a of Figure 2C.
  • Step 6216 is implemented in the present embodiment on one or more hardware kernels, e.g., kernel K1 261a, which has autonomous localized control to control an operation to completion.
  • the present embodiment provides a data processing island that conserves system resources by performing its operations locally, in a reconfigurable and/or time-share manner.
  • Step 6216 is enabled, in one embodiment, by allocator 219 of Figure 2A directing the appropriate data signal and control signal to the configurable computation kernel, e.g., configurable computation kernel 273a, as described in 'data pump assignment' step 6208.
  • Figure 2f shows the input/output interfaces and functions that enable step 6216.
  • input data 290 is received at algorithmic computation block 292, along with state information 295b, and other types of data such as adapted clock signal 295a and enable/status 295c that enable the algorithmic computation block.
  • state information 295b e.g., state information 295b
  • other types of data e.g., adapted clock signal 295a and enable/status 295c that enable the algorithmic computation block.
  • the interfaces and functions described in Figure 2f are implemented in hardware in Figures 2A through 2F.
  • the functions implemented in step 6216 for communication device 100 of Figure 1 B are the modem functions 6216a and the codec functions 6217b.
  • modem functions for a downlink scenario include encoding, interleaving, channelization code mixing, l/Q scrambling code mixing, transmit diversity processing, filtering, and rate-dependent scaling.
  • Modem functions for uplink include: despreading, dechannelization, demodulation, and combining, as programmed by the Layer 1 software stack, including facilities to perform multipath and antenna diversity combining.
  • the codec functions implemented for step 6216 for a downlink scenario include: encoding, interleaving, channelization code mixing, and l/Q scrambling code mixing, transmit diversity processing, filtering, and rate-dependent scaling.
  • the codec functions for uplink scenario include despreading, deinterieaving, channel decoding, assembly of payload data and control information for MTSO.
  • the Data Kernel Specification List described in Appendix A, provides a more technical description of exemplary discrete sub functions needed to accomplish the modem and codec functions.
  • the present invention is well suited to implementing a wide range of functions in a hardware kernel, suitable for a given application.
  • the modem signal processor under control from the BTS Card Controller, assigns a signal source to a receive-data-pump path in the modem signal processor.
  • the modem signal processor under control from the BTS Card Controller, assigns a signal source to a receive-data-pump path in the modem signal processor.
  • flowchart 6200 proceeds to step 6218.
  • step 6218 of the present embodiment the signal is post processed.
  • the pool of reconfigurable kernels e.g., K1 261a through K6 266a of Figure 2C
  • control, or computations are returned back to the processor. Consequently, this completes the circle of hierarchical controls implemented by a return handshake.
  • Step 6218 is implemented, in one embodiment, providing signal to subsequent downstream or upstream functions and devices that prepare the signal for the application, e.g., transmission of a signal via antenna, amplification of a signal for reception, etc.
  • post processing for a downlink scenario from a BTS can include generating multiplexed l/Q digital base band waveforms identified with a channel, sector, and/or antenna tag.
  • Another post processing step includes formatting the composite signal, consisting of all the signals on a per-carrier and per-sector, as necessary and sent from the channel card to other signal conditioning circuits in the base-station for digital to analog (D/A) conversion and for radio frequency (RF) transmission.
  • D/A digital to analog
  • RF radio frequency
  • the present embodiment applies flowcharts 6100 and 6200 to a digital wireless communication system.
  • the present invention can be applied to a wide range of applications and a wide range of device configurations.
  • the present invention is applicable to mobile units, base stations, and test platforms.
  • flowcharts 6100 and 6200 of the present embodiment show a specific sequence and quantity of steps
  • the present invention is suitable to alternative embodiments.
  • steps 5212 and 5214 for a time-share scenario for hardware kernels.
  • the time- scenario is optional for the present invention, and thus, these steps may be omitted in one embodiment.
  • other steps may be omitted depending upon the application.
  • the present invention is well suited to incorporating additional steps to those presented, as required by an application, or as desired for permutations in the process.
  • flowcharts 6100, and 6200 can be modified depending upon the application.
  • flowcharts 6100 and 6200 are shown as a single serial process, they can also be implemented as a continuous or parallel process.
  • flowchart 6100 can be repeated for the multiple hardware kernel planes, e.g., plane 201a of Figure 2C, in the multiple processors, e.g., processors 102a and 102b of Figure 1 B, within a communication device, e.g., device 100.
  • the instructions for the steps, and the data input and output from the steps, of flowcharts 6100, and 6200 utilize memory and processor hardware components, e.g., memory 118 processor 112 of Figure 1 B.
  • the memory storage used to implement the flowchart steps in the present embodiment can either be permanent, such as read only memory (ROM), or temporary memory such as random access memory (RAM).
  • Memory storage can also be any other type of memory storage, capable of containing program instructions, such as a hard drive, a CD ROM, or flash memory.
  • the processor used to implement the flowchart steps can either be a dedicated controller, an existing system processor, or it can be a dedicated digital signal processing (DSP) processor, as appropriate for the type of step.
  • the instructions may be implemented using some form of a state machine.
  • the data is represented as physical (electronic) quantities within the communication devices components, or the computer system's registers and memories, and is transformed into other data similarly represented as physical quantities within the communication device components, or computer system memories or registers, or other such information storage, transmission or display devices.
  • the present invention effectively provides a method and apparatus that can effectively accommodate the increases in the quantity of users and the quantity of data transferred using the limited frequency bandwidth. Furthermore the present invention provides a solution that overcomes the limitations of protocol non-uniformity and proliferation in the wireless communications. The limitations of cost and burden associated with changes in versions or performance levels of a communication protocol are also resolved by the present invention. In an effort to minimize the risks and maximize the rewards, the present invention substantially shortens the lead-time and the investment required for implementing a new specification. Finally, the present invention provides very reasonable power consumption for the communication device.

Abstract

A wireless spread spectrum communication platform (10) for processing a communication signal is disclosed herein. The wireless communication platform includes a first computing element (106), a second computing element (108), and a reconfigurable interconnect (104). The first computing element is coupled to the second computing element via the reconfigurable interconnect. A design configuration of the first computing element is heterogeneous with respect to a design configuration of the second computing element. The reconfigurable interconnect has an uncommitted architecture, thereby allowing it to be configured by an outside source to couple portions of the first reconfigurable interconnect with portions of the second reconfigurable interconnect in a variety of combinations. The first computing element, the second computing element, and the reconfigurable interconnect operable to perform discrete functions suitable for processing of the communication signal.

Description

A WIRELESS SPREAD SPECTRUM COMMUNICATION PLATFORM USING DYNAMICALLY RECONFIGURABLE LOGIC
CROSS-REFERENCE TO RELATED APPLICATIONS This application claims priority to the provisional patent application with the following Serial Number: 60/178,828 filed on January 28, 2000.
MICROFICHE APPENDIX
A microfiche appendix entitled "Appendix B, Computer Program Instructions," is included in the present application. The microfiche appendix includes 1 microfiche card.
TECHNICAL FIELD
The present claimed invention relates to the field of wireless communication. In particular, the present claimed invention relates to an apparatus and a method for processing digital signals in a wireless spread spectrum communication system.
BACKGROUND ART
Wireless communication has extensive applications in consumer and business markets. Among the many spread spectrum communication applications/systems are: fixed wireless, unlicensed (FCC) wireless, local area network (LAN), cordless telephony, personal base station, telemetry, mobile wireless, and other digital data processing applications. While each of these applications utilizes spread spectrum communications, they generally utilize unique and incompatible protocols for various signal processing operations, e.g., encoding, modulation, demodulation, and decoding, etc. These unique and incompatible protocols may require unique hardware, software, and methodologies for the communication protocol. This practice can be costly in terms of design, testing, manufacturing, and infrastructure resources. As a result, a need arises to overcome the limitations associated with the varied hardware, software, and methodology for processing digital signals in each of the varied spread spectrum wireless applications.
In contrast to the hardware and algorithmic variations in the spread spectrum wireless applications, they all share a common deman i for increased capacity to accommodate new users that continues to grow at an enormous rate. Compounding this problem is the demand for new and more data-intensive forms of wireless communication, such as data transfer with networks, e.g., Internet data transmission. In contrast, the resources available to accommodate these demands, e.g., frequency bandwidth, are substantially limited. Consequently, a need arises for an apparatus and a method to effectively accommodate the increases in the quantity of users and the increase in the quantity of data transferred while using a limited frequency bandwidth.
Besides the variation between spread spectrum communication applications, substantial variations occur over time within a given spread spectrum communication application. For example, within the code division multiple access (CDMA) cellular spread spectrum wireless application, significant changes have occurred over time. These changes take the form of a proliferation of different versions and performance levels, e.g., Telecommunication Industry Association (TIA) Interim Standard-95 (IS-95), IS54B, IS36, CDMA TIA IS2000 and TIA IS
2000A, European Telecommunication Standards Institute (ETSI) wideband CDMA (WCDMA), Global System for mobile communications (GSM), ARIB WCDMA, IXtreme, GPRS, EDGE, etc. And the pace at which improvements and new standards arise is increasing as more industry resources are focused on the needs and opportunities in this wireless communication. Unfortunately, all these factors result in minimal uniformity around the world at any one given point in time. For example, different countries and different service providers frequently use systems that are uniquely dedicated to their specific version of a communication protocol. Consequently, a need arises for overcoming the limitations of protocol non- uniformity and proliferation within each of the spread spectrum wireless communication applications.
The proliferation of communication protocols generates yet other problems. For example, the cost of changing communication protocols or upgrading versions or performance levels within a communication protocol can be significant. That is, handset and base station designers frequently improve the signal processing algorithms and processes to improve service. Given the high quantity of base stations, as well as user handsets, even a small unit cost for a change can multiply into a very large cost for the entire system. These costs are most pronounced when a hardware change or when on-site field reprogramming is required. Furthermore, a software or hardware change fcr a new version or performance level may hinder the efficiency of the existing device configuration due to incompatibility, etc. Consequently, a need arises to overcome the limitations of cost and resource- intensive changes in versions or performance levels of a communication protocol. Changes in performance level or versions of a communication protocol can also affect the network services and coverage, and hence the survival of a wireless service provider or a hardware manufacturer. For example, given the long lead time and the investment required for designing, manufacturing, and installing an infrastructure for a given communication protocol, a future but uncertain specification can be a tremendous risk. This is especially so with an application specific integrated circuit (ASIC) device whose configuration is defined primarily by fixed hardware. However, market rewards may be significant for the service provider or manufacture that is able to realize the new protocol in the shortest possible time. Thus, a risk versus reward tradeoff exists with implementing new communication protocols. Given the degree of the risks and promise of rewards, a need arises to overcome the limitations of the long lead-time and the investment required for implementing a new specification.
With the increased sophistication of each new generation of communication device, power consumption remains a significant issue. Among other things, power consumption affects: battery life for handheld devices; cooling systems required for base stations; durability and reliability of semiconductor devices and integrated circuits; and other performance criteria. Conventional alternatives to hardwired ASICs have significant power consumption issues that offset their benefits. Consequently, a need arises to overcome the limitations in power consumption for a communication device.
SUMMARY OF THE INVENTION
The present invention provides a method and apparatus that can effectively accommodate the increases in the quantity of users and the quantity of data transferred using the limited frequency bandwidth. Furthermore the present invention provides a solution that overcomes the limitations of protocol non- uniformity and proliferation in the wireless communications. The limitations of cost and burden associated with changes in versions or performance levels of a communication protocol are also resolved by the present invention. In an effort to minimize the risks and maximize the rewards, the present invention substantially shortens the lead-time and the investment required for implementing a new specification. Finally, the present invention provides reasonable power consumption for the communication device.
In particular, the present invention provides an apparatus and method that can flexibly and efficiently process data. One embodiment of the present invention is a processor with an architecture that includes a first computing element, a second computing element, and a reconfigurable interconnect. The first computing element is coupled to the second computing element via the reconfigurable interconnect. The first computing element performs a discrete operation, or portion thereof in an application, while the second computing element performs another discrete operation, or portion thereof for the application. The reconfigurable interconnect has an uncommitted architecture, thereby allowing it to be configured by an outside source to couple portions of the first reconfigurable interconnect with portions of the second reconfigurable interconnect in any combination. The first computing element, the second computing element, and the reconfigurable interconnect operable to perform a class of functions suitable for processing the communication signal.
A second embodiment of the present invention provides a convenient method for operating the functional kernels having reconfigurable hardware to a configuration for implementing wireless communication. In a first step of the process, a signal to be processed is received at a reconfigurable modem platform having a heterogeneous multiprocessor architecture. Next, the signal is assigned to a data pump path in the reconfigurable modem platform. Then, design configuration information for the reconfigurable modem platform is received. Finally, the data portion of the signal undergoes digital signal processing using the reconfigurable modem platform.
These and other objects and advantages of the present invention will become apparent to those of ordinary skill in the art after having read the following detailed description of the preferred embodiments, which are also illustrated in the various drawing figures.
BRIEF DESCRIPTION OF THE DRAWINGS
The drawings included herewith are incorporated in and form a part of this specification. The drawings illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention. It should be understood that the drawings referred to in this description are not drawn to scale unless specifically noted as such.
Figure 1 A is a block diagram of the interface functions accommodated by the electronic spread spectrum communication device, in accordance with one embodiment of the present invention. Figure 1 B is a block diagram of an electronic spread spectrum communication device having heterogeneous multiprocessor components, in accordance with one embodiment of the present invention.
Figure 1 C is a block diagram of another configuration of an electronic spread spectrum communication device having heterogeneous multiprocessor components, in accordance with one embodiment of the present invention.
Figure 1 D is a block diagram of an electronic system used to interface a user with a configurable multiprocessor device, in accordance with one embodiment of the present invention.
Figure 2A is a block diagram of a processor having multiple configurable hardware kernel planes used in the electronic spread spectrum communication device, in accordance with one embodiment of the present invention.
Figure 2B is a block diagram of multiple possible architecture techniques used in the algorithmic satellite kernel portion of the hardware kernel, in accordance with one embodiment of the present invention. Figure 2C is a block diagram of a configurable hardware kernel plane, in accordance with one embodiment of the present invention.
Figure 2D is a block diagram of a kernel portion of a hardware kernel plane, in accordance with one embodiment of the present invention.
Figure 2E is a block diagram of a hardware kernel containing a subcomponent hardware kernel, in accordance with one embodiment of the present invention.
Figure 2F is a block diagram of the inputs, outputs, and functions accommodated by the algorithmic satellite kernel in the electronic spread spectrum communication device, in accorcance with one embodiment of the present invention.
Figure 3A is a functional c ata flow diagram for configurable multiprocessors in a modem application, in accordance with one embodiment of the present invention. Figure 3B is an alternative functional data flow diagram for configurable multiprocessors in a modem application, in accordance with one embodiment of the present invention.
Figure 3C is a block diagram of the codec functions accommodated by the electronic spread spectrum communication device, in accordance with one embodiment of the present invention.
Figure 3D is a block diagram of the modem functions accommodated by the electronic spread spectrum communication device, in accordance with one embodiment of the present invention.
Figure 4 is a block diagram of several user-defined modes of operations performed for modem signal processing functions in the electronic communication device, in accordance with one embodiment of the present invention.
Figure 5 is a diagram of the separation and combining process of a single thread into multiple concurrent threads to be accommodated on the communication device, in accordance with one embodiment of the present invention. Figure 6A is a flowchart of the process used to implement a design configuration onto a configurable spread spectrum electronic communication device, in accordance with one embodiment of the present invention.
Figure 6B is a flowchart of the process used to operate a configurable spread spectrum electronic communication device, in accordance with one embodiment of the present invention.
DETAILED DESCRIPTION OF THE INVENTION
Reference will now be made in detail to the preferred embodiments of the invention. Examples of the preferred embodiment are illustrated in the accompanying drawings. While the invention will be described in conjunction with the preferred embodiments, it is understood that they are not intended to limit the invention to these embodiments. Rather, the invention is intended to cover alternatives, modifications and equivalents, which may be included within the spirit and scope of the invention, as defined by the appended claims. Additionally, in the following detailed description of the present invention, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to one of ordinary skill in the art that the present invention may be practiced without these specific details. In other instances, well- known methods, procedures, components, and circuits have not been described in detail so as not to unnecessarily obscure aspects of the present invention. The present invention can be implemented in a wide variety of digital spread- spectrum wireless communication systems or techniques that utilize code sequences. Code sequences are utilized in wireless communications for many functions including, but not limited to: filtering, searching, modulation, and demodulation. The systems or techniques which utilize code sequences include, but are not limited to, fixed wireless, unlicensed Federal Communications Commission (FCC) wireless systems, wireless local area network (W-LAN), cordless telephony, cellular telephony, personal base station, telemetry, and other digital data processing applications. The present invention can be applied to both transmitters, e.g., a base station, and to receivers, e.g., a terminal, for fixed wireless, W-LAN, cellular telephony, and personal base station applications.
In particular, one fixed wireless application to which the present invention may be applied is a metropolitan multipoint distribution system (MMDS). Examples include wireless cable broadcast, or two-way wireless local loop (WLL) systems. Some examples of a W-LAN, that can communicates digitized audio and data packets, for which the present invention can be applied include Open Air, and the Institute of Electrical and Electronics Engineers (IEEE) specification 802.11 b. In yet another application, a specific example of unlicensed FCC applications to which the present invention may be applied includes the Industrial, Scientific, and Medical band (ISM) devices, which can include cordless telephony products. Personal base stations can utilize either cordless or cellular telephony wireless communication standards. Lastly, the cellular telephony systems in which the present invention can be applied includes, but is not limited to, IS-95, IS2000, ARIB, 3GPP-FDD, 3GPP- TDD, 3GPP2, IXtreme, or other user-defined protocols. The range of code sequences utilized in the exemplary spread spectrum applications disclosed herein, are useful to define the class of functions for which the present configurable code generator unit is applicable.
The detailed description of the present invention begins with a description of an exemplary application, a spread-spectrum communication device, in Figures 1A through 1D. In particular, spread spectrum communication device is described in Figure 1A in terms of a functional block diagram, in Figures 1 B and 1 C in terms of hardware block diagrams, and in Figure 1 D as a block diagram of a virtual machine interface (VMI) that translates user-desired functions to device-level instructions using resident hardware and software. Next, Figures 2A through 2F describe a configurable processor, and its configurable hardware kernel components, in an increasingly detailed manner. A functional block diagram of a configurable hardware kernel is presented in Figure 2F. Thereafter, the functional layout of hardware kernels in a configurable modem processor for the exemplary spread-spectrum communication device is provided in Figures 3A through 3D for modem functions, and in Figures 4 for codec functions. Figure 5 provides a diagram of function management technique utilized by processors with configurable hardware kernels. Lastly, various processes associated with the communication device and the hardware kernels are described in Figures 6A through 6C.
COMMUNICATION DEVICE
Referring now to Figure 1A, a block diagram 10 of the interface functions accommodated by the electronic spread spectrum communication device are shown, in accordance with one embodiment of the present invention. The signal processing functions 16 shown have a configurable architecture in one embodiment that enables an electronic spread spectrum communication device to operate using a wide variety of communication protocols, including CDMA, 3GPP, TDMA, as well as anticipated future protocols. Block diagram 10 provides a macro level description of the interface functions. A more detailed description of the specific sub-functions and operations, and the hardware that implements them are provided in subsequent figures herein.
The signal processing function block 16 of a communication device is responsible for performing the data processing steps needed to convert a received signal into meaningful data for an end user and to convert an input from a user and convert it to a transmittable signal. Within signal processing function block 16, a wide variety of functions, sub functions, and operations are performed to satiate the requirements of the specific communication protocol chosen for a communication device. For example signal-processing functions can include demodulation and/or decoding for received in-phase and quadrature-phase (l/Q) samples 12, and include encoding and/or modulation for transmitted l/Q samples 14. Control data 20 provides the necessary control information, e.g., flags, handshakes, addressing, status, etc., to components such that signal processing functions 16 can be accomplished. Signal processing function block 16 also communicates with a traffic interface 18, to accommodate the allocation of respective signals to each of the many different wireless users operating within a given communication system. In the present embodiment, the traffic interface is a mobile telephone switching office (MTSO) for a cellular spread spectrum communication application. However, another spread spectrum communication application may not require a traffic interface, e.g., a cordless telephony spread spectrum application. Processing function block 16 receives l/Q samples 12 upon which known data processing protocols are implemented. Similarly, processing function block 16 transmits desired data as l/Q samples 14 to another communication device (not shown). Configuration data 11 inputs provides the necessary information to configure the hardware and software components used to implement signal-processing function block 16.
Referring now to Figure 1 B, a block diagram of an electronic spread spectrum communication device having heterogeneous multiprocessor components for processing data is shown, in accordance with one embodiment of the present invention. Electronic spread spectrum communication device 100 includes subcomponents and configurations that are illustrated and described in more detail in subsequent figures. Additionally, electronic spread spectrum communication device 100 also employs methodology for design, configuration, and operation that will be described in subsequent flowchart figures. While electronic spread spectrum communication device 100 is a base transceiver station (BTS) in the present embodiment, the present invention is well suited to electronic spread spectrum communication device 100 beinc a mobile handset or a test equipment platform.
Electronic spread spectrum communication device 100 includes an interface conversion block 116, a modulator/demodulator (modem) processor 102a, an optional configurable modem processor 102b, memory 106 and 118, a processor 112, a channel coder/decoder (codec) processor 104, a base transceiver station (BTS) card controller 110a, and an ATM Utopia/HDLC 108. Processor 112 can either be a digital signal processor (DSP) or general-purpose microprocessor (GP uP). External memory 106 used for interleaving meets the following requirements for the present embodiment: 1 ) 8 Mb SRAM; 2) 18 MHz Performance; 3) Minimum 512K x 16 configuration; 4) Byte write-enables. However the present invention is well suited to alternative memory configurations, tailored for a given spread spectrum application. In the present embodiment, configurable modem processor 102a, optional configurable modem processor 102b, and configurable channel codec processor 104 have a configurable heterogeneous multiprocessor architecture. Thus, configurable modem processor block 102a and configurable codec processor 104 can be configured to operate a wide range of spread spectrum communication protocols, e.g., the exemplary spread spectrum protocols described hereinabove. To do so, configurable modem processor 102a and configurable codec processor 104 are designed with a sufficiently wide scope to accommodate the common and unique requirements of these varied spread spectrum communication protocols. Subsequently, the configurable modem processor 102a and the configurable codec processor 104 are provided with the instructions and data necessary to configure them, e.g., configuration input 121 , to a single desired spread spectrum protocol. Notably, the configurable modem processor 102a and the configurable codec processor 104 can subsequently be reconfigured to another spread spectrum protocol within the design scope. The hardware, software, and processes used to implement this configuration are described in subsequent figures. The specific structure, components, functions, and processes utilized for the present invention will be described in more detail if subsequent hardware, function, and flowchart diagrams. This architecture provides electronic spread spectrum communication device 100 with a flexible configuration that can accommodate a wide range of spread spectrum communication applications while simultaneously providing energy efficient operation. Thus the present invention overcomes the trade-offs associated with prior art configurations, wherein a device was flexible but energy inefficient, or the device was energy inefficient but inflexible. Configurable modem processor block 102a includes at least one hardware kernel plane in the present embodiment. The hardware kernel plane, described in subsequent figures, is a reconfigurable collection of multiple algorithmic-specific processors. The hardware kernel plane can implement the sub functions of a functional kernel plane, described in a subsequent figure. In the present embodiment, Configurable modem processor block 102a can be designed to accommodate multiple channels of data, the specific number depending upon the needs of a specific application.
Channel codec functions are implemented by exemplary CODEC signal processor 104 of Figure 1B, which is a reconfigurable multi-channel digital channel encoder-decoder chip that performs convolution, iterative turbo decoding, rate- detection, and rate matching functions for a wide range of quantities of voice channels. Channel codec functions also implemented by channel codec signal processor 104 for transmission encoding include convolution and turbo coder functions, puncturing, rate-matching, and interleaving on the transmit path, in the present embodiment.
By using a heterogeneous reconfigurable architecture together with application-specific kernels, as described hereinafter, a programmable and configurable signal-processing platform is realized. These configurations are completely under the control of the communication systems designer, and are described in detail in a subsequent flowchart. The architecture of the Channel
Codec Signal Processor 104 of Figure 1 B provides a very high level of integration, while allowing the communication systems designer to employ proprietary techniques to improve decoder performance in each of the stages described above. The architecture of the Channel Codec Signal Processor 104 enables the system designer to program the chip at many levels, including control of specific datapaths to realize different algorithms. Details on the architecture and operation of codec processor are given in subsequent block diagram figures and in flowchart figures.
Interface conversion block 116 is coupled to the antenna bus 129, which is in turn coupled to an antenna, e.g., a BTS antenna 120, which can include multiple antennae in one embodiment. Interface conversion block 116 is also coupled to configurable modem processor 102a and to optional configurable modem processor 102b via bus 122, respectively. Bus 122 can be separate independent non-shared buses, or a single shared bus. Interface conversion block 116 includes components (not shown) such as a radio frequency (RF) transceiver and an analog to digital (A/D) converter coupled to each other in series, whose subcomponents and functions are known to those skilled in the art. Configurable modem processor 102a and optional configurable modem processor 102b are coupled to a processor 112 and to memory 106, which is random access memory (RAM) in the present embodiment. Memory 106 is coupled to channel codec processor 104, which in turn is coupled to ATM Utopia/HDLC 108 via bus 124. An internal data/control bus 126 is coupled to interface conversion block 116, memory 118, processor 112, BTS card controller 110a, and to ATM Utopia/HDLC 108 in order to pass data and control instructions between these components. ATM Utopia/HDLC 108 is a conventional asynchronous transfer mode (ATM) networking interface in the present embodiment. In one embodiment, uP 112 is a general-purpose microprocessor capable of performing the functions of BTS card controller 110a. An external BTS cell controller 114 is coupled to internal bus 126 and to a mobile telephone switching office bus 128. ATM Utopia/HDLC 108 provides signal formatting, memory, and interface circuits for Operations and Maintenance (OAM) control. BTS Cell
Controller 114 determines the personality (or radio configuration) of each channel element by loading specific configuration software into specific control registers in BTS Channel Card Controller 110a, processor 112, configurable modem processor 102a, and codec processor 104. Interface configurations and protocols are described in Figure 1C.
By using processor 112 in communication device 100, the present invention provides the ability to use existing digital signal processing resources, while upgrading other processing resources to more flexible and efficient hardware, e.g., configurable modem processor 102a. In particular, functions that were performed on general-purpose processors are performed by the present invention on operation-specific, or algorithmic-specific, processors that are interconnected to realize a modem or codec function. Furthermore, the operation-specific processors possess the appropriate amount of configurabiltiy for protocol variations, thereby providing robustness for future developments. By prov ding configurabiltiy, the present invention provides a communication device with the flexibility to operate under a wide range of communication protocols, such as IS-95, CDMA-2000, 3GPP, and time-division multiple access (TDMA), to name a few.
Electronic spread spectrum communication device 100 is responsible for processing voice, data, and control signals in a transmission and reception mode. In pursuit of these functions, BTS card controller 110a provides a number of interfaces. In the present embodiment, BTS card controller 110a provides: 1 ) antenna receive (RX) Bus 129 to receive the uplink digitized signal samples; 2) BTS Cell Controller for sending and receiving control information associated with call setup, teardown, and handoff; and 3) Operations and Maintenance (OAM) Monitor for performance analysis, reconfiguration over the network based on system planning, and troubleshooting.
Alternative components and configurations to communication device 100 are compatible with the present invention. For example, bus 126 provides an exemplary coupling configuration of components in electronic spread spectrum communication device 100. It is appreciated by those skilled in the art that bus 126 can include subcomponents of specific control/status/data lines for communication between appropriate devices. It is further appreciated by those skilled in the art that bus 126 can be a parallel configuration or serial configuration with multiplexing. Furthermore, bus 126 can have interconnects and translators, as appropriate for a given application. These alternatives are also suitable for buses 129, 128, 127, 130, 122, and 122a, and other buses that can be used to couple components in communication devices 100 and 101 of Figures 1 B and 1 C, respectively. Additionally, communication device 100 is well suited to alternative components and coupling configurations of memory 106. For example, while memory 106 is located between configurable modem processor 102a, and channel codec processor 104 in the present embodiment, the present invention is well suited to coupling configurable modem processor 102a directly to channel codec processor 104 and to locating memory 106 directly adjacent to channel codec processor 104. While memory 106 and 118 are specified as RAM in the present embodiment, the present invention is well suited to a wide range of memory configurations, such as ROM, registers, flash memory, etc. While antenna 120 is shown as a BTS antenna having multiple individual antennae arranged in sectors, the present invention is well suited to antenna 120 be a singla or dual antennae for a mobile handset or a test platform application.
While the present embod ment provides both a configurable modem processor 102a and a configurable codec processor 104 in communication device 100, the present invention is well suited to an alternative configuration that uses a configurable modem processor 102a with a conventional codec processor (e.g., a digital signal processor), and to using a configurable codec processor 104 with a conventional configurable modem processor. Lastly, while the present invention provides a single modem processor, with a single optional configurable modem processor 102b, the present invention is modular, and thus is well suited to using a wide range of processor types and quantities, as appropriate for a given spread spectrum application. Communication device can also include a configuration that accommodates multiple communication standards. For example, the present invention can be applied to communication protocols such as orthogonal frequency division multiplexing (OFDM). More detail is provided in a commonly assigned and related application, which is incorporated herein by reference and entitled "METHOD AND APPARATUS TO SUPPORT MULTI STANDARD, MULTI SERVICE BASE- STATIONS FOR WIRELESS VOICE AND DATA NETWORKS," Attorney Docket No. 9824-0035-999, US patent application serial number , filed on December 28, 2000.
Referring now to Figure 1C, a block diagram of another configuration of an electronic spread spectrum communication device having heterogeneous multiprocessor components is shown, in accordance with one embodiment of the present invention. Second configuration 101 of electronic spread spectrum communication device has many components and configurations that are similar to those shown in Figure 1 B. Thus, components and coupling configurations different from Figure 1C are primarily discussed hereinafter.
Communication device 101 includes a BTS card controller 110b that can be a state machine or an optional microprocessor. Bus 127 couples memory 118 and BTS card controller 110b to channel codec processor 104 and configurable modem processor 102a. This provides a more direct data route between memory 118 and configurable modem processor 102a and channel codec processor 104. Additionally, memory 106 is located adjacent to channel codec processor 104, and coupled to BTS card controller 110b, and provides improved communication and processing to channel codec processor 104. It also provides improved communication and processing between channel codec processor 104 and modem processor 102a. While only one configurable modem processor 102a is shown in Figure 1 C, communication device 101 is well suited to using more than one configurable modem processor, as appropriate by a given application.
Communication device 101 does not have a separate conventional DSP chip like communication device 100. Rather, communication device 101 utilizes either an external general purpose microprocessor 103 or utilizes computing elements within configurable modem processor 102a and channel codec processor 104 to perform functions traditionally provided by a conventional DSP chip. The alternative configurations and components discussed for communication device 100 are likewise applicable to communication device 101.
Interface configurations and protocol are utilized between components within communication device 100 and 101 as well as between components within and outside of communication device 100 and 101. For example, a bus interface 130a and 131 of communication device 100 and 101 , respectively, is provided for streaming the received, coded symbols from the modem Signal Processor 102a and/or 102b to the Channel Codec Signal Processor 104. Similarly, bus interface 131 is provided for streaming the encoded transmit data from Channel Codec Signal Processor 104 into the modem signal processor 102a-102b (assumed to be interleaved on Channel Codec Signal Processor). Busses 130a and 130b of Figure 1 B and bus 131 of Figure 1C combine a hand-shaking mechanism with a well- defined data stream in order to provide necessary flexibility in programming. Interface conversion/ sector combining block 116 provides a high-speed parallel interface for communicating digitized l/Q samples between the Modem Signal processors 102a and 102b, and antenna 120, for an uplink or downlink embodiment. Two parallel ports 122 (one for l/Q uplink, one for l/Q downlink) are provided for multiplexed interface to multiple antennae, e.g. in antenna array 120 for a base station in the present embodiment. Memory interface 132 is provided for interfacing to an external SRAM 106 for support of necessary deinterieaving required for high data rate support. The interface assumes that a single memory resource may be shared across multiple modem signal processor implementations 102a (up to three modem signal processor's per memory), so that semaphores are required for coordinating, via input 134 from BTS card controller 110b, the necessary memory writes and establishing a single modem signal processor as the Burst Controller for frame bursts out of the Deinterleaver memory. A well-defined memory map within memory 106 is used to avoid fragmentation across external memory 106.
The functions and interfaces shown in Figure 1 A are implemented, in one embodiment, using hardware shown in Figures 1 B-1 C, and using subcomponents described in subsequent figures. For example, received l/Q samples 12 are provided to signal processing function block 16, via bus 129 of Figure 1 B in the present embodiment. Similarly, the signal processing functions required for an application are performed by communication device 100 of Figure 1 B or device 101 of Figure 1 C. Thus, for example, transmitted l/Q samples 14 and received l/Q samples can be communicated via bus 129 to/from antenna 120. Traffic interface 18 is accommodated via bus 128, and control data 20 is accommodated via bus 126, in one embodiment. While the functions described are attributed to a base transceiver station (BTS), the present invention is well suited to implementing the functions and appropriate interfaces on a mobile handset. For example, a mobile handset would not have an MTSO traffic interface, but would include the balance of the interfaces and functionality of Figure 1A. While the present embodiment only describes configurable processors for two function types, e.g., modem and codec functions, and applies them to a wireless communication application, the present invention is well suited to accommodating other functions for other applications in a similar manner.
Referring now to Figure 1 D, a functional block diagram 150 of a system used to interface a host-processor containing a user's program of configurations with a configurable multiprocessor device is shown, in accordance with one embodiment of the present invention. The configurable components, e.g., hardware kernels and interconnect of Figure 2C, for communication device 100 can be programmed by user-defined configurations. The user-defined configurations can be generated by a user from a host microprocessor, e.g., a workstation, which implements a programming interface (API). Processor hardware (HW) model 160 is a block diagram representing the interaction of hardware, e.g., a processor 112, with software and data such as library functions, instructions, and configuration data, that in stored in memory. Processor software model can be programmed with a virtual machine interface (VMI) in one embodiment. Specifically, processor 112 can be mod led as a software model consisting of user's C-language code (or software) 164 and I/O device drivers 166. The user provided C-language software 164 in order to configure configurable processes 170 of the configurable modem 102a and 102b, and of the configurable coded 104. C-language software 164 includes resident user-implemented C language block of instructions and functions that interface with input/output (I/O) driver block 166. C language block 164 is coupled to receive C-based application programming interface (API) programming guide data 171 , which includes a library of functions for programming configuration inputs 121a through 121e to appropriate configuration mappings. Similarly, processor software model 162 is coupled to receive input 172 of API functions mapped to instruction set 171 and 172. Each API function of input 172 includes a set of instructions which will: 1 ) map the API function to a specific hardware kernel and reconfigurable interconnect (e.g. DRL) process; 2) describe the DRL process as a set of data structures/configuration signals that are passed via hardware interfaces 168 by host processor 112. API Programming Guide 171 serves as a reference to access the modes of flexibility in the modem signal processor.
Hardware interfaces block 168 is coupled to processor 112 to receive device driver information appropriate for the configuration input 121a through 121e. In turn, hardware interfaces block 168 is coupled to provide configuration instructions and data, e.g., driver information, to dynamically reconfigurable logic (DRL) block 170. DRL processes block 170 represents the ultimate desired processes (or functions) to be implemented by the configurable communication device, e.g., device 100 of Figure 1 B. DRL processes block can communicate configuration mapping data 174 to appropriate configurable components, described in subsequent Figures 2A through 2G, of configurable communication device 100, which can store and transmit instruction sets of mapped API functions.
User-implemented C-language block 164 provides a user with the ability to control the configuration of a hardware kernel, described in subsequent Figures 2C through 2E. In particular, the programmer/user can provide the following inputs to define the configuration of a configurable hardware kernel: 1 ) inputs, as shown by input 121a; 2) outputs, as shown by input 121 b; 3) operation(s) to be performed, as shown by input 121c; 4) parameters, as shown by input 121d; 5) a type of arithmetic in a processing unit (e.g., dataflow process); and 6) type of state machines controlling the dataflow process (e.g., controlflow process) as shown by input 121e. In addition, user-implemented C-'anguage block 164 provides a user with the ability to control the reconfigurable intei connect that link multiple hardware kernels within a kernel plane. Thus, input 121e includes user-specified interconnect configurations (i.e. interconnect reconfigurability). The present invention is well suited to using less inputs and control or providing additional inputs or control for a user to configure a configurable device.
Interconnect configuration input 121e specifies the configuration of reconfigurable interconnect such that a cluster(s) of kernels may be built. This level of control with individual kernels and the interconnect offers substantially greater flexibility than that of hardwired or parameterized application specific integrated circuit (ASIC) solutions. By using kernels that are focused to the specific types of data processing found in terrestrial and wireless communication applications, the computational efficiency, in millions of operations per milliwatt (MOPS/mW) of this architecture approaches that of an ASIC. Functional block diagram 150 shows the hierarchy with which a user may interface DRL processes block 170. That is, the hierarchy includes: a) a first level with a C-based interface 164 with a user; b) a second level with an I/O device driver 166 interface between the C-language and the hardware interfaces; c) a third level with hardware interface block 168 that interfaces between the DRL process 170 and the processor HW model 160. Thus, the present embodiment utilizes a hierarchical Application Programming Interface (API) that supports several levels of user control for programming a Channel Codec Signal Processor, e.g., codec processor 104, or a configurable modem processor 102a, as shown in Figure 1 B. Dashed box 176 includes the API functions mapped to instruction set data 172, and the configuration mappings data 174. Dashed block 176 indicates the control software, which includes a subset of functions defined by the API. The control software block 176 enables the function of the configurable communication device, e.g., device 100 of Figure 1B.
C-based API programming guide 171 utilizes a mechanism referred to as Extensible Data Types (EDT), described in more detail in a subsequent flowchart. The use of EDT effectively embeds a mechanism in the API that allows additional functionality to be transparently added, the API is able to add new hardware services without the need to modify existing software. This mechanism must also provide this abstraction without significant performance overhead. By the use of pointer access to data types and inline functions, this effect is minimized. By abstracting the hardware from the software, the API allows the hardware and software development processes to be decoupled from one another. This significantly reduces development time, as each hardware upgrade or modification does not require changes to the software. Modes of configurations are specified in the API programmer's guide 171 for hardware kernel blocks. API programmer's guide 171 describes the allowed dataflow configurations (i.e. hierarchical interconnect configurations) of the machine. Appendix A provides an exemplary sequencing of the modem and codec functions described therein to realize a variety of transceiver signal paths by configuring the kernels and interconnect according to the types of operations and dataflow desired.
Through the use of extensible data types, a hardware configuration can be constructed to support various WCDMA standards. Furthermore, the types can be configured to support various performance requirements for the system as a whole, for a set of mobiles, or for a particular mobile. Hardware configurations are realized through an API that allows a programmer to manipulate the relationships between various extensible data types. The resources available in an extensible data type directly map to available hardware resources. A programmer using the API can configure the hardware resources from a conceptual viewpoint. The programmer's model and API (or VMI) of Figure 1 D defines and provides a mechanism for a user to systematically and efficiently develop software that controls the function and operation of the configurable communication device, e.g., 100 of Figure 1 B. The API allows the programmer to manage the hardware resources without the need to write complex low-level hardware-target-dependent code. This provides many advantages including ease of adoption and integration of the configurable communication device. Subsequent flowcharts provide more detailed description of the process for developing the software to control the configurable communication device.
By providing a high level API, a user can design their software in a top-down fashion. This enables top-level system problems to be rapidly identified and corrected before the low-level code is written. Additionally, this approach saves a significant amount of development time as is removes the need to rework low-level software to match high level changes. The programmers model and API of Figure 1 D also provides efficient use of hardware parallelism. Thus, the present invention provides a method and architecture that overcomes the challenging task of scheduling the many hardware resources in the complete system. This requires an efficient mechanism for communication between the hardware resources, both within a configurable processor, e.g., within configurable modem processor 102a of Figure 1 B, and between the configurable processors (e.g., between configurable modem processor 102a/codec processor 104 and the controlling processors, e.g., processor 112, BTS card controller 110a or 110b, and BTS cell controller 114 as shown in Figures 1 B and 1C). The hardware utilization, scheduling, and maintenance are under the control of the API. By embedding these mechanisms in the API, a process can be designed in isolation, with the synchronization issues handled at only one level within the software hierarchy. This produces a system that is considerably quicker to build and more efficient in the use of hardware than one that uses many synchronization techniques within the design. RAVI: WRONG: Additional description on the process for providing C-based API programming guide 171 and API functions mapped to instruction set 172 is provided in co-pending patent application entitled "A METHOD FOR DESIGINING A CONFIGURATION FOR A CONFIGURABLE SPREAD SPECTURM COMMUNICATION DEVICE," Attorney Docket No. 9824- 083-999, US patent application serial number , filed on January 29, 2001. This related application is commonly assigned, and is hereby incorporated by reference.
The present embodiment of Figure 1 D can include additional features for individual versions of the software. Examples of this would be an input data formatter to deal with the incoming data format on a particular test rig, or the creation of a software version that performs function profiling or debugging on a particular section of the software, without having the attendant performance degradation on other blocks. Both of these alternatives are dealt with efficiently by the use of extensible data types, which allow a user to rapidly modify the functionality of the software by modifying the data types and recompiling.
Appendix B hereinafter provides several exemplary computer programs that can be implemented in functional block diagram 150 in order to provide an interface between a user and a configurable processor. In narticular, Appendix B provides the specific application of a wireless base transceiver station for an exemplary CDMA spread spectrum application. However, the present invention is well suited to a wide range of spread spectrum communication applications. It is appreciated that one skilled in the art can interpret the computer language specific syntax provided in these examples.
HARDWARE KERNELS Referring now to Figure 2A, a block diagram of a configurable modem processor 102a having multiple configurable hardware kernel planes used in an electronic spread spectrum communication device is shown, in accordance with one embodiment of the present invention. Codec processor 104 of Figure 1 B can have a configuration similar to that of Figure 2A in one embodiment. Figure 2A illustrates how the multiple hardware kernel planes interconnect and shows what device controls and coordinates them. Processor 102a can be configured to operate as a configurable modem processor 102a and 102b or as a configurable codec processor 104, as shown in Figures 1 B and 1 C, in the present embodiment.
In the present embodiment, two hardware kernel planes, e.g., plane [1] 201a and plane [i] and 201 i, are coupled to an allocator 219 via a reconfiguration bus, e.g., 206a and 206i, respectively. Each hardware kernel plane is assigned to a given channel in a communication system in the present embodiment. In turn, allocator 219 is coupled to a general-purpose (GP) microprocessor or signal processor 112. To reduce overhead in terms of instruction fetch and global control, the architecture utilizes distributed control and configuration. The communication mechanism between each kernel is dataflow driven. Allocator 219 performs controller operations for each of the kernel planes 201 a and 201 i, such that they can operate independent of each other, e.g., in parallel.
To perform these functions, allocator 219 includes memory and state machine components. In one embodiment, allocator 219 is configurable such that it can manage the desired type of functions implemented in the hardware kernel planes 201a through 201 i. For example, allocator 219 can be configured such that hardware kernel planes 201a through 201 i perform modem functions, or alternatively codec functions. While the present embodiment shows only two hardware kernel planes 201a and 201 i, the present invention is well suited to using any quantity of hardware kernel planes in processor 102a. Hardware kernel planes 201a and 201 i include a configurable heterogeneous multiprocessor architecture that will be described in more detail hereinafter. Data bus 122 provides data to and from configurable modem processor 102a, as does data line 130a, as shown in Figure 1 B. Processor 112 performs higher-level management operations for the allocator. In this manner, multiple instances of processor 102a can be accommodated in a communication device, and can operate in varying degrees of parallel processing. In the present embodiment, processor 112 is a system processor of the parent communication device 100 Figure 1B. However, configurable processor 102a can have a dedicated local microprocessor in lieu of system processor 112.
Referring now to Figure 2B, a block diagram 200b of multiple possible architecture formats used in a hardware kernel portion of a spread spectrum communication device is shown, in accordance with one embodiment of the present invention. By using multiple levels of granularity in its components, the communication device possesses a wide breadth of efficient programmability. And efficient programmability translates into accommodating of multiple non-uniform specifications by a communication device. With each level of granularity having its own preferred target for a given application. A systematic and hierarchical method to exploit the flexibility of incorporating these different architectures into hardware is described in a subsequent flowchart figure.
Figure 2B shows the four main levels of programmable or reconfigurable granularity used in a hardware kernel in the present embodiment. The difference in the various computational models shown in Figure 2B lies in the granularity of the composing modules, the distribution of the program storage, and the interconnect structure. In one embodiment, the computing elements in a hardware kernel can exploit any combination of the four types of reconfigurability, in an architecture referred to as Dynamically Reconfigurable Logic (DRL), described in more detail hereinafter. However, the present invention is well suited to incorporating other types of computational models that have different levels of granularity or different applications of granularity.
A first architecture format is referred to as reconfigurable logic 211. Reconfigurable logic 211 uses multiple processing islands, also referred to as a configurable logic block (CLB), e.g., 210a coupled by an interconnect 214 with reconfigurability, via bus lines, e.g., 212a, 212b, 213a, and 213b. The reconfigurable logic type of engine relies almost exclusively on bit-level mesh networks in the present embodiment. In the present embodiment, interconnect 214 provides all possible coupling arrangements between the bus of data liens 212a and 212b. In this manner, independent blocks 210a - 210d can communicate with one another in any desired manner. That is, they are not restricted to communicating with less than all existing kernels due to limited hardware wiring. In another embodiment, interconnect 214 can provide only a limited amount of interconnectabiltiy, based upon perceived needs and capabilities of each kernel for a given application. Reconfigurable logic 211 uses bit-level operations such as encoding. By itself, reconfigurable logic provides significant benefits of flexibility. However, the flexibility comes at a trade-off of inefficiency in chip area and in power consumption. In one embodiment processing islands have unrestricted reconfigurability of its component logic devices. A second architecture format is referred to as reconfigurable datapath 221.
The interconnect network of the reconfigurable datapath exploits the bit-sliced structure and predominantly one-dimensional flow of data by using an asymmetric network-reconfigurable buses in one direction and bit-level mesh in the other direction. That is, reconfigurable datapath 221 uses dedicated datapaths to transmit data between electronic components, such as mux 220 and adder 226. For example, multiplex (Mux) block 220 can multiplex data from multiple data lines onto a single data line, thus changing the data path. Additionally, data may be directed along one of multiple paths to an appropriate storage register, e.g., register 0 (RegO) or register 1 (Reg1 ). From an appropriate storage register, data may be directed along a path to a given function block, e.g., adder 226 or buffer 228. Reconfigurable datapath 221 can efficiently move data, but it lacks flexibility that is not built into the original architecture. Thus, for example, the data path is limited to the data lines built between components, e.g., 220 through 228.
A third architecture format is referred to as reconfigurable dataflow 231. With reconfigurable dataflow, control exists over the type of arithmetic used in a processing unit (i.e. dataflow process). The reconfigurable dataflow architecture uses a program and data bus that feeds data and control instructions to a computation unit. In particular, block 232a and 232b generate addresses to get data from memory, e.g. 234a and 234b, to be sent to a multiply -accumulate (MAC) block 236 for processing.
A fourth architecture format is referred to as reconfigurable logic 241. Reconfigurable logic 241 refers to a real-time operating system (RTOS) where the outside source controls the type of state machines that control the dataflow process (i.e. controlflow process). With reconfigurable logic 241 , the stored-instruction engines rely on shared buses for the transfer of data and instructions. Block 240 is the data memory storage of data to be processed, while block 242 is the program memory for storing program instructions used to run on instruction decoder and controller 246. Block 394 is the datapath block, which contains the arithmetic operations for processing the data. Memory block 390b is a second bank of data memory for interfacing data with data path block 394.
By combining these four types of architecture, as described hereinafter, in a manner that matches the programming, function, or temporal granularity needed for a given algorithm, function, application, and/or classes thereof, the present invention provides a hybrid architecture and system. This hybrid architecture and system provides substantial improvements in performance over previously irreconcilable tradeoffs of speed, flexibility, and efficiency.
Referring now to Figure 2C, a block diagram of a hardware kernel plane used in the electronic spread spectrum communication device is shown, in accordance with one embodiment of the present invention. Hardware kernel plane 201a provides the capability of reconfigurability for a range of protocols in an application, or within a range of applications, with an efficiency that challenges conventional circuits. Additionally, hardware kernel plane 201a is modular, and thus may be designed to operate in groups.
Kernel plane 201a includes multiple hardware kernels K1 261a through K6 266a that are coupled to a reconfigurable interconnect 204a. Data is passed between kernels K1 261a through K6 266a via reconfigurable interconnect 204a. Control information, such as handshake protocol signals, can also be routed through reconfigurable interconnect 204a. Hardware kernel, e.g., K1 261a, is described in detail in a following figure. Interconnect architecture supports sufficient concurrency within each of the hardware kernels K1 261a through K6 266a. In the present embodiment, reconfigurable interconnect 204a utilizes a hierarchical structure that can support the required interconnect patterns (as described by the dataflow in following flowchart figures), as well as provide good performance and energy efficiency for every configuration. While the present embodiment uses six hardware kernels, the present invention is well suited to using any quantity of kernels in kernel plane 201a. In the present embodiment, hardware kernels K1 261a through K6 266a kernels are specific to the types of data processing found in wireless communication applications, such as CDMA. However, at the same time, hardware kernels K1 261a through K6 266a are heterogeneous with respect to one or more of each other, in terms of programmability, algorithmic-capability, performance-level, and/or math- logic. However, two or more kernels within kernel plane 201a can be homogeneous with respect to each in another embodiment. The specific composition and relationship between hardware kernels depends upon the specific application. Examples of these levels of programmability are provided in a subsequent figure. One or more of hardware kernels K1 261a through K6 266a are also autonomous with respect to each other, thus allowing parallel processing of data, on a kernel-by- kernel basis, or on a kernel-group by kernel-group basis. Because of this autonomy, and local control, the individual hardware kernels as well as the hardware kernel plane is data-rate scalable to a range of system clock rates.
Kernels K1 261a, K4 264a, and K5 265a are grouped together in hardware kernel group A 268a. Similarly, hardware kernel K3 263a is identified as a sole kernel within hardware kernel group B 268b. These two exemplary kernel groupings provide a class of functions for the present host communication device which applies them to a wireless communication protocol application, as will be described in a subsequent flowchart figure. Hardware kernels, e.g., kernel K1 261a are coupled to a configuration (or reconfiguration) bus 206a, e.g., via line 274. Configuration, status, and control information are passed to kernels K1 261a through K6 266a via reconfiguration bus 206a, in the present embodiment. However, the present invention is well suited to passing different types of data and information using a wide variety of data lines and data bus configurations.
Reconfigurable interconnect 204a has an architecture that is primarily a reconfigurable logic 211 , as described in Figure 2B. In this embodiment, reconfigurable interconnect 204a provides connectivity between input/output lines of multiple kernels, or between input/output lines of a kernel with components outside of kernel plane, e.g., allocator 219, processor 112 shown in Figure 2A, or other data buses (not shown). Data is pass 3d between kernel plane 201a and the host communication device via an inp jt/output line, e.g., line 122, that is coupled to reconfigurable interconnect 204a. In one embodiment, reconfigurable interconnect 204a has only a limited amount of reconfigurability based upon the specific needs identified for a class of protocols in a given application, or for a class of applications. That is, based on an application, algorithm, function, operation, or class thereof, not all kernels will be required to have full interconnectabiltiy with all other kernels. Consequently, the present embodiment provides limited reconfigurability of interconnect 204a between kernels depending upon the needs of the application, function, algorithm, etc. for which a kernel is designed. The limitation on interconnectabiltiy provides the benefit of reconfigurability where it is needed, and restricts interconnectabiltiy where it is not needed. Thus, the inefficiently of a totally reconfigurable interconnect is tempered by identifying strategic scenarios where reconfigurability is appropriate. The strategic scenarios involve the class of functions to be performed, the design of individual kernels K1 261a through K6 266a to accommodate the class of functions, and the level of programmability provided for outside control. The common ground between the class of functions, operations, or algorithms is a case-by-case basis requiring analysis of variables such as mathematical basis, signal processing operations, algorithmic patterns, and silicon implementation.
Data is provided and received from kernel plane via data bus 122 or data line 130a. In the present embodiment, an input data line portion of data bus 122 is coupled to one side of reconfigurable interconnect 204a to provide data input to kernel plane 201a. Similarly, an output data line portion of data bus 122 is coupled to the other side of reconfigurable interconnect 204a to receive data from kernel plane 201a. Data that is provided to reconfigurable interconnect 204a is then routed to appropriate kernels K1 261a through K6 266a per configuration information provided to communication device. Alternatively, an input line portion of data bus 122 can be directly coupled to one or more of kernels K1 261 a through K6 266a, e.g., if this functionality of a particular kernel is consistent across a range of spread spectrum applications. For example, if a kernel plane for a modem operation always initially performs an interpolation filter operation on input data regardless of the applications within a class of spread spectrum communications, then input data line may be routed directly to the kernel responsible for this function. The same coupling arrangement can be provided for data line 130a with respect to reconfigurable interconnect 204a and kernels K1 261a through K6 266a. While the present embodiment provides for less than full interconnectabiltiy, the present invention is well suited to providing the full interconnectabiltiy between all kernels. The modem signal processor is one instance of the heterogeneous reconfigurable architecture, which can be configured to provide a complete signal path for multichannel operation of a CDMA base-station. The hardware kernel processors were designed with a strong focus on applying the flexibility vs. computational efficiency trade-off to the specific needs of an application. As such, a rank ordering of the dominant computation-intensive kernels found in the algorithms is identified. For example, in a typical WCDMA application, the dominant computations are centered around five major signal processing functions: chip matched filtering, code-epoch search, chip demodulation/despreading, channel decoding, and inter-path (IPI) equalization (optional). While the present invention provides an enumerated list of computational categories for a hardware kernel, the present invention is well suited to using specific quantities and types of categories as is appropriate for a given application.
Bus 206a of Figure 2C is selectively reconfigurable to provide only the needed amount of interconnectivity to a kernel based upon the application, function, and/or algorithm, for which a kernel is designed. For example, in one embodiment, kernel K3 263a does not require a status flag because the operation it performs requires no feedback and is run to completion. Thus, reconfiguration bus 206a provides no bus capability to kernel K3. In another embodiment, however, interconnectivity to provide communication of status information between a hardware kernel with another hardware kernel or allocator can be provided.
Referring now to Figure 2D, a block diagram of a kernel portion of a hardware kernel plane is shown, in accordance with one embodiment of the present invention. Kernel K1 261a provides one embodiment of many possible embodiments, which any of multiple hardware kernels in a kernel plane may use.
Kernel K1 261a includes a configuration information block 272 and a satellite kernel block 270, coupled to each other by interconnect 276. Satellite kernel 270 has an input/output data line 278, which is a bus in the present embodiment, that provides communication with reconfigurable interconnect 204a of Figure 2C. Similarly, configuration information block 272 is coupled with reconfiguration bus 206a of Figure 2C, via configuration line 274. In one embodiment, configuration line 274 is a bus into configuration information block 272, or can be a single line with multiplexed data. The amount of data the bus or single line can handle can vary widely, depending upon the needs of an existing or projected application. Satellite kernel 270 is an electronic device, which is algorithmic specific in the present embodiment.
Configuration information block 272 is random access memory (RAM) in the present embodiment. However, the present invention is well suited to using any medium for configuration information block 272 that can preserve and communicate a state condition for electronic devices. For example, configuration information block 272 can be registers, flash memory, or a state machine, e.g., using reconfigurable logic, that provides bit stream of states to satellite kernel block 270. By having configuration information block 272 as a local dedicated source, that can also be controlled local to satellite kernel 270. This arrangement provides a very quick and efficient changing of configuration data for algorithmic satellite kernel 270. Consequently, time-sharing of a hardware kernel is feasible and practical in the present embodiment.
In the present embodiment, hardware kernels e.g., K1 261a through K6 266a of Figure 2C, have been designed to fit into one of multiple categories of data processing applicable to wireless communication. The category of data processing refers to the operational speed of the hardware kernel, which includes an energy- flexibility tradeoff. The specific category for which a hardware kernel is designed is determined from the number and type of operations per sample of data processed in the hardware kernels. The present embodiment utilizes five domains of signal processing categories for a wireless communication system. They include: 1 ) Sub- chip-rate (M times chip-rate= Mfc); 2) Chip-rate (chip-rate = fc); 3) Sub-symbol rate (fc/L, with multiple chips per processing period, which is less than one symbol interval); 4) Symbol-rate (fc/N= fs = symbol rate); and 5) Multi-symbol rate (fs*K, with multiple symbols per processing period, which spans more than one symbol). The kernel processors cover the multi-standard CDMA signal processing requirements, and can be categorized corresponding to classes of MOPS. In the present embodiment, signal processing for a wirelesi communication application includes the following classes of MOPS: 1 ) Code Demodulation/Dechannelization; 2) Code Generation; 3) Parameter Estimation; 4) Sequence Alignment and Combining; 5) Equalization (optional); and 6) Front-end Processing.
Satellite kernel 270 includes a controller 271 and a configurable computation kernel (or algorithmic-specific computing element) 273a, coupled to each other via a clock line 279 and a control line 284. Configurable computation kernel 273a is also referred to as a computing element or a processing engine.
Controller 271 includes a state machine with memory, in the present embodiment, that is capable of controlling configurable computing element 273a. In another embodiment, controller 271 includes only memory that is capable of preserving state conditions of at least one configuration of configurable computing kernel 273a. To achieve distributed control, kernel K1 261a is equipped with an interface that enables it to exchange data streams with other kernels efficiently, without the help of a global controller. Hardware kernel K1 261 a uses a distributed control and configuration via local controller 271 , which effectively reduces overhead in terms of instruction fetch and global control. Kernel K1 261a also includes an interface, e.g., in configurable computation kernel 273a, that enables it to exchange data streams, e.g., data line 278, with other kernels efficiently, without the help of a global controller. The communication mechanism between each kernel is dataflow driven in the present embodiment. Local controller 271 can provide local control signals for initiation, reset, and interrupt for configurable computation kernel 273a, as well as scaled clock rates.
In the present embodiment, configurable computation kernel 273a is designed specifically to perform a given algorithm, function, operation, or class thereof. Therefore, satellite kernel 270 has flexibility, e.g., reconfigurability, within the class of functions, operations, or algorithms to which it has been designed. By virtue of the fact that configurable computation kernel 273a is designed for a relatively narrow application in the present embodiment, it is consequently very energy efficient. Thus, it meets the needs of a wide range of communication protocols within a spread spectrum category, while being very efficient. Additionally, because satellite kernel 270 has its own local controller 271 , it operates autonomously with respect to the balance of the kernels in a hardware kernel plane, and to the balance of the communication device. Thus, satellite kernel 270 can be activated or bypassed for a given function of an application, depending on the needs and protocol chosen for the application. A description of the configuration and operation of a satellite kernel 270 is presented in a subsequent flowchart. The present architecture is well suite d to a wide range of data processing functions, operations, and applications besides spread spectrum communication applications. In the present embodiment, computing element 273a includes an architecture of electronic devices with coupling arrangements, from one or more of the possible techniques described in Figure 2B. That is, depending upon the function, algorithm, operation, or class thereof, being implemented by the hardware kernel, computing element 270 can include any combination of the techniques for device choice and configuration, including reconfigurable logic 211 , reconfigurable datapath 221 , reconfigurable dataflow 231 , or reconfigurable logic 241. In the present embodiment, the computing element in a hardware kernel, e.g., computing element 273a of K1 261a, can exploit any combination of the four types of reconfigurability, in an architecture referred to as Dynamically Reconfigurable Logic (DRL). However, the present invention is well suited to incorporating other types of computational models that have different levels of granularity or different applications of granularity.
Additionally, the techniques of Figure 2B used in configurable hardware kernel can be chosen depending upon the uncertainty of a design or function within the communication device. Thus, by providing a very flexible architecture to an autonomously controlled configurable hardware kernel for the narrow scope of an uncertain function or algorithmic technique, the present invention frugally allocates the most flexible reconfiguration resources. However, the present invention is well suited to complementing these enumerated techniques with other configuration and architecture techniques.
Because the computing element 273a is function (or algorithmic) specific each of the techniques used is subsequently function specific. Thus, the electronic devices and their interconnections can utilize function-specific reconfigurable logic 211 , function specific reconfigurable datapath 221 , function-specific reconfigurable dataflow 231 and/or function specific reconfigurable logic 241 techniques as shown in Figure 2B in one embodiment. The function-specific aspect of the devices and their interconnects means that the device is only effective and useful for the intended function, sub function, or classes thereof, in this embodiment. By doing so, this architecture efficiently delivers a class of MOPS with flexibility in the configuration of these MOPS and scalability across data rates and channel densities. Electronic devices refer to the basic building blocks of electronic circuits such as transistors, diodes, resistors, conductors, and other elements that are well known in the art. The collection of electronic devices and interconnects can be figuratively divided into a fixed grouping 275a and a flexible grouping 275b, intercoupled to each other on a device level, as required by the function implemented therein. For example, in one embodiment, flexible architecture can be used to selectively group and couple registers to implement a class of functions whose math operations vary by their bit length, depending on the protocol used.
Thus, each of the multiple hardware kernels described in Figure 2C have an architecture that is tuned to its intended function. In the present embodiment, the combination of architecture in a computing element is dependant upon the functions, or class of functions, to be performed by the hardware kernel. Other variables, such as performance requirements, user preferences, future expandability into undefined protocols are also included as inputs in the choice of architectures. Because the hardware kernels each have a discrete function, operation, or class thereof, they can be evaluated as true object-oriented hardware.
Thus, a channel element can be built-up from the set of configurable hardware kernels to realize a reconfigurable multi-channel digital base band modem signal path that performs all the digital modulation-demodulation as well as channel encoding-decoding required per logical channel for all narrowband and wideband telecommunication standards. In the present embodiment, kernel plane can form a modem card in a systematic and modular fashion in modules of multiple channels per card, depending on their radio (cell-site) system planning. The present invention can be adapted to accommodate a wide range of channels. In the present embodiment, two or more types of configurable architecture techniques are used in a given hardware kernel. However, the present invention is well suited to using a single type of configurable architecture is used in a given hardware kernel. Additionally, the kernel compositions can vary within a hardware kernel plane, and between hardware kernel planes. Multiple types of architecture can be strategically located and coupled within a hardware kernel to accommodate the particular variation in the function/sub function desired. For example, if the variation for sample select sub function over IS2000, and 3GPP, 3GPP-FDD, 3GPP- TDD, and IXtreme protocols includes the number of bits selected, then the hardware kernel includes a reconfigurable logic for the interconnect bus and the storage location associated with the range of bits and a reconfigurable datapath for the balance of the circuit.
The present invention is well suited to using a wide range of architectural techniques shown in Figure 2B, and combinations thereof, from which individual hardware kernels are designed, constructed, and operated. These hardware kernels are capable of performing a wide range of functions within a class that spans a wide range of spread spectrum applications. Exemplary functions, for which kernels can be configured, are shown in Figures 2B, 2C, and 5, and are described hereinafter in Appendix A, entitled "Data Kernel Specification List." Several exemplary hardware kernels have been defined in related co-pending patent applications and are applicable in the present communication device, e.g., 100 of Figure 1 b. While these related patent applications provide a specific function for hardware kernels, the present invention is well suited to a wide range of data processing functions for electronic devices, such as a spread spectrum communication device. These commonly assigned and related applications, which are incorporated herein by reference, include:
1 ) "A CONFIGURABLE CODE GENERATOR SYSTEM FOR SPREAD SPECTRUM APPLICATIONS," Attorney Docket No. 9824-0029-888, US patent application serial number , filed on December 28, 2000; 2) "A CONFIGURABLE MULTIMODE DESPREADER FOR SPREAD SPECTRUM APPLICATIONS," Attorney Docket No. 9824-0036-999, US patent application serial number , filed on December 28, 2000;
3) "A CONFIGURABLE ALL-DIGITAL COHERENT DEMODULATOR SYSTEM FOR SPREAD SPECTRUM APPLICATIONS," Attorney Docket No. 9824-0037-999, US patent application serial number , filed on December 28, 2000; and
4) "METHOD AND APPARATUS FOR PROCESSING A SECONDARY SYNCHRONIZATION CHANNEL IN A SPREAD SPECTRUM SYSTEM," Attorney
Docket No. 9824-0034-999, US patent application serial number , filed on January 29, 2001 , filed herewith. The term architecture describes the electronic devices and coupling arrangements used in configurable hardware kernel plane 201a of Figure 2C, Kernel K1 261a and configurable computation kernel 273a of Figure 2D, reconfigurable interconnect 204a of Figure 2C, and the specific exemolary hardware kernels provided in the aforementioned applications. The coupling arrangements include interconnect routing, grouping, and hierarchy. The various combinations of reconfiguration techniques 211 , 221 , 231 and 241 of Figure 2B also describe the architecture of the configurable computation kernel 273a, the reconfigurable interconnect 204a, and the specific exemplary hardware kernels. Devices can include components such as gates, selective interconnects, memory, lines, buses, and a wide range of conventional devices that are chosen and coupled in order to satisfy the functional requirements of a given application. More information on architecture of configurable devices can be found in the text "Software Radio Architecture," by Joseph Mitola III, which is hereby incorporated by reference. Referring now to Figure 2E, a block diagram of a hardware kernel containing a subcomponent hardware kernel is shown, accordance with one embodiment of the present invention. Hierarchical block diagram 120b has many components and coupling arrangements that are similar to those presented in Figure 2D. For purposes of clarity, only a description of components, coupling arrangements, and alternative embodiments for Figure 2E that are different from Figure 2D will be provided herein; otherwise, the description of components, coupling arrangements and alternatives provided in Figure 2D will apply similarly to the present figure. Satellite kernel 270a includes a hierarchy of hardware kernels, wherein another hardware kernel K7 317a is included therein. Kernel K7 317a, having an exemplary configuration as K1 261a of Figure 2D, provides a dedicated support kernel function to its parent kernel K1 311a. An additional control line 284a and clock line 279a is provided to dedicated hardware kernel K7 317a. Due to the hierarchy, dedicated hardware kernel K7 317a can step up a clock rate another level for its own functions if needed for a given application. Different configurations of a hardware kernel within a hardware kernel can exist depending on the needs for a given function in a given application. For example, in a spread spectrum application, an exemplary cellular telephony function can tailor parent kernel K1 311a for performing a demodulation operation or a matched filter operation. Either of these functions can benefit from a dedicated hardware kernel, e.g. K7 317a, providing dedicated code generator functions. In this manner, hardware kernel K7 317a can run autonomously under the control of its parent kernel K1 311a. This configuration and architecture provides local control and operation, which consequently reduces traffic on a system processor or controller. The present inventior is well suited to a variety of hierarchical levels or parent hardware kernels having different quantities of dedicated kernels therein.
Referring now to Figure 2f:, a block diagram 200f of the inputs, outputs, and functions accommodated by a hardware kernel in an electronic spread spectrum communication device is shown, in accordance with one embodiment of the present invention. Functions described in block diagram 200f represent operation of exemplary hardware kemel(s) of Figures 2C through 2F.
Handshake input 280, input flags 282, and configuration information 281 is received at control signal generation block 284. Handshake input 280 is a signal from a source outside of a hardware kernel that initiates the operation of the hardware kernel, via a control signal generation block 284. Input flags 282 alter the data, states, or functions of a hardware kernel. For example, a handshake input 280 can enable the hardware kernel functions (or algorithmic computations) 292 to proceed, while an input flag 282 will enable an appropriate communication of a previous state condition for hardware kernel functions 292. Note that the specific conditions, uses, and quantity of input flags can vary widely according to the needs of a particular function in a particular application, and the capacity of the hardware kernel functions. Configuration input 281 provides information on how to configure hardware in a hardware kernel so as to perform the desired algorithm computation function. Configuration input 281 includes information specifying: 1 ) type of operations to be performed; 2) inputs; 3) outputs; and 4) parameters of the configurable hardware kernel. Configuration input 281 can also include information regarding the interconnect configuration used to build a cluster, or group, of kernels for implementing a function or sub function. Control signal generation block 284 includes sub functions of preserving e.g., recording, and transmitting a state or a configuration of a hardware kernel as directed by handshake input 280 and configuration input 281. Control signal generation block 284 also includes a sub function of clock scaling. Lastly, control signal generation block 284 generates output flags 296 and a handshake output 298 to components outside of the hardware kernel. Thus, in the present embodiment, control signal generation block 284 provides a control signal, via a bus or a multiplexed line, to algorithm computation function block 292 that includes an enabling/status signal 295c, a state condition signal 295b, and configuration information signal 295d. Control signal generation block 284 also provides an adapted clock signal 295a to algorithm computation block 292.
Clock scaling sub function can speed up, slow down, or preserve the rate of the system clock signal 288 received at control signal generation block 284. The specific rate of the adapted clock signal 295a depends upon the rate of data processing for which algorithm computation block 292 is designed. Clock signal input 288 is a system clock of the communication device in the present embodiment. In one embodiment, handshake output 298 and output flags 296 indicate the status of a hardware kernel or of data processed by algorithmic computation block 292. For example handshake output 298 or output flags 296 include information such as successful execution, error rate, state condition, etc.
Algorithmic computation block 292 performs a desired algorithm for a set of data, received as input data 290. Inputs 295b, 295c, and 295d from control signal generation block 284 allows algorithmic computation block 292 to essentially perform its algorithmic-specific function autonomously from the balance of the communication device. During or after the completion of its function, algorithmic computation block 292 provides output data 294 to sources outside of hardware block, and provides status information 295 to control signal generation block 284 for subsequent handshake or flag setting. Algorithmic computation block can be figuratively divided in to a fixed portion of the algorithm 292a and a flexible portion of the algorithm 292b, communicating information to each other. The fixed portion block 292a of the algorithm computation is the portion whose algorithmic functions essentially do not change for different communication protocols, e.g., the core functions or the common math that can be extracted from the different algorithms required for each protocol. In contrast, the flexible portion 292b of the algorithm computation is the portion that does change for different communication protocols. In one embodiment, the fixed portion 292a and flexible portion 292b of the algorithmic computation corresponds to the fixed portion 275a and flexible portion 275b of configurable computation kernel 273a shown in Figure 2D.
In the present embodiment, function blocks in block diagram 200f are implemented by hardware components described in Figures 2A through 2F. For example, one embodiment implements algorithmic computation function 292 of Figure 2F via computing element 273a of Figure 2D, and implements control signal generation block 284 in controller 271 and configuration information block 272. Clock signal input 288, handshake input 280, and input flags 282 are provided to control signal generation block 284 via configuration line 274, and are communicated between components in hardware kernel 261a via an interconnect line 276, clock line 279, and control line 284. Handshake output 298 and output flags 296 are transmitted on configuration line 274. Input and output flags, and handshake input and output, can be provided to/from another hardware kernel in the hardware kernel plane or to/from components outside of hardware plane 201a, via reconfiguration bus 206a. While the present embodiment provides specific hardware components and configurations for implementing hardware kernel functions 200f, the present invention is well suited to using a wide variety of hardware components and configurations for accommodating locally controlled algorithmic specific function blocks.
The present embodiment of components, configuration and functionality of hardware kernels shown in Figures 2B through 2G are capable of providing an operating efficiency from greater than 10 to several hundred (100) MOPS/mW in the present embodiment. This rate is well ahead of what is achievable from a programmable digital signal processor. Yet the present embodiment also provides a level of flexibility over a wide range of functions and a level of user control that is well beyond that of a traditional ASIC. The present invention is well suited to deliver a wide range of computation power and computational efficiency, depending upon the semiconductor process technology, VLSI integration/physical design method.
FUNCTION PLANES Referring now to Figure 3A, a functional data flow diagram 300a for configurable multiprocessors in a modem application is shown, in accordance with one embodiment of the present invention. The connections between the blocks indicate the spatial connectivity between the groups, while the general layout from left to right is indicative of the hierarchy of operation sequence. Block diagram 300a includes a chip-rate processor block 302 coupled to a symbol-sequence processor block 306 and parameter-estimation processor block 308. Both symbol-sequence processor block 306 and a parameter-estimation processor block 308 are coupled to each other and to ci channel-element processor block 310. Data input is first received in chip-rate procossor block 302 and is output from channel element processor block 310. Specific configurations of hardware kernels that can be categorized within each of the processor groups of Figure 3A, according to their processing rate are described hereinafter.
Chip-rate processor block 302 performs operations at a chip-rate, e.g., at 1.2288 Mega chips per second (Mcps) as required for an exemplary communication protocol. The chip rate implicitly refers to the bit-rate at which data is received at a communication device, e.g., via an analog to digital (A-D) converter. Chip rate processor block 302 includes a segregated component of a code generator unit (CGU) block 304. CGU block 304 is explicitly delineated from the chip-rate processor block 302 because it can be spatially and temporally shared among multiple chip-rate processing realizations. That is, CGU block 304 can be shared among multiple instances of configurable modem processor 102a of Figure 1B. While the present embodiment refers to a specific numeric rate, the present invention is well suited to using any number rate, assuming a relative relationship between the blocks as indicated in Figure 3A.
Symbol-sequence processor block 306 communicates information between chip-rate processor block 302, parameter estimation processor block 308, and channel-element processor block 310. Similarly, parameter-estimation processor communicates information from chip-rate processor block 302 and channel-element processor block 310.
Hardware kernels can be organized into five classes of signal processing units, as described in the iist below. For example, sample-epoch refers to a kernel capable of performing sample-epoch calculations, and because the specification requires this operation be performed at a chip-rate, it is categorized in the chip-rate processor group. The first group is a chip-rate processor group, which includes the following functions: Sample-epoch Selector; Multi-standard Despreader; Multi- standard Dechannelizer; Code Generation Unit; Integrate and Dump Unit; and Multi- standard Searcher Control. The second group is a Symbol-Sequence Processor Group, which includes the following functions: Transport Format Decoder; Dynamic Spreading Factor Computer; Fast Hadamard Transform; and Rotator/Squarer. The third group is a Parameter-Estimation Processor Group, which includes the following functions: Energy Estimator; Timing Parameter Estimator; and Channel Estimator. The fourth group is a Channel-Element (multi-finger) Processor Group which includes the following functions: Alignment/Deskewer; Combiner; Soft-decision Computer; Interpath Interference Equalizer; and Receive Antenna Diversity Combiner. The fifth and final gnup is a Front-End Group, which includes the following functions: Data Switcl Selector; and Sample Interpolator.
The specifications for each of the hardware kernel capabilities are provided in Appendix A, hereinafter. It is appreciated that one skilled in the art understands the references to CDMA and communication signal variables and protocols described in Appendix A. Additionally, Appendix A also provides an exemplary sequencing of the modem and codec functions described therein to realize a variety of transceiver signal paths by configuring the kernels and interconnect according to the types of operations and dataflow desired.
While the present embodiment provides for the aforementioned specific kernel designations, functions, input, outputs, and parameters, the present invention is well suited to including alternative or additional kernel designations, functions, inputs, outputs, and parameters. For example, the present invention is well suited to different communication protocols such as time division multiple access (TDMA), or to future CDMA communication protocols, that are as yet, unspecified. Furthermore, while the present embodiment provides for specific levels of processor rates, the present invention is well suited to using different processor rates, or different relative levels of processor rates. Referring now to Figure 3B, an alterative functional data flow diagram 300b for configurable multiprocessors in a modem application is shown, in accordance with one embodiment of the present invention. The blocks and their coupling represent an alternative embodiment to those presented in Figure 3A in which a communication device, e.g., device 100 of Figure 2, operates. Figure 3B provide function blocks (or groups) for both a receive path 354 as well as a transmit path 352. The general layout from left to right is indicative of the hierarchy of operation sequence and flow of data for the Receive path 354 direction. In particular, Receive path 354 includes a front-end processing and storage group 301 coupled to provide data to finger(s) function block 301b, to searcher(s) function block 301c, and to matched filter(s) function block 301 d. In turn, Finger(s) block 301b is coupled to provide data to symbol processor block 301 e and to parameter estimator(s) block 301 f. Symbol Processor block 301 e is coupled to provide data to channel-element processor block 301 g. Searcher block 301c and matched filter block 301 d provide feedback to finger(s) block 301b via internal software control of communication device 100 of Figure 1 B. Parameter estimator(s) block 301f provides control information to power control lop block 305 which then is coupled to forward processed control information to data mapping block 307c for regulating data on the transmit path 352. In contrast, transmit path 352 provides a more linear data flow starting with a transmit diversity method selection block 307d coupled to provide data to data mapping block 307c. In turn, data mapping block processes data with the input from the power control ioop(s) block 305 and forwards it to code modulator block 307b. Lastly, code modulator block 307b is coupled to communicate modulated data to channel summer 307a.
Functional kernels, such as those shown in the subsequent figure, are used to enable each of the functional groups in Figure 3B. In turn, hardware kernels similar to those in Figure 2C and 2D are used to implement the functional kernels. An example of functional kernel operation is provided in Appendix A, included herein. This group of hardware groups allows flexibility in the architecture of the interface to the antenna bus, e .g., bus 129 of Figure 1B. The interface is designed to support both new and legacy equipment via multirate filtering supporting operation over multiple chip rate inputs
Referring now to Figure 3C, a block diagram 300c of several user-defined modes of operations performed for modem signal processing functions in the electronic spread spectrum communication device, in accordance with one embodiment of the present invention. The functions are arranged in a time- sequence manner where the output of one function is provided as the input to the adjacent function. These three modes are exemplary, and the present invention is well suited to using a wide variety of function sequence modes.
Block diagram 300c includes three separate and distinct user-defined modes of operation, e.g., a first mode, mode (1 ) 311 , a second mode (2) 312, and a third mode (3) 313. In one embodiment, first mode 311 corresponds to an exemplary legacy protocol, while user mode (2) 312 corresponds to a CDMA 2000 protocol, and user mode (3) 313 corresponds to a 3GPP protocol.
Many functions are common to all three modes. For example, Interpolation filters 311a, 312a, and 313a are common to all three modes. However, other functions are unique and separate for a given mode. For example, rotate function 312g and 313g are not included in mode (1 ) 311. The explicit functions shown in Figure 3C are as follows:
-User Mode (1 ) 311 includes: an interpolation filter 311 a, a sample select function 311 b, a short/long code 311c, an integrate and dump (l&D) function 311d, all of which can be grouped as a chip-rate functions 314. User mode
(1 ) 311 also includes: a scale function 311 e, a fast Hadamard transform (FHD) 311f, a magnitude (MAG) function 311g, a deskew function 311h, all of which can be grouped as symbol-sequence functions 315. Lastly, user mode (1 ) 311 includes a combine function 311 i, which is a channel-element processor function 318. All the functions listed for user mode (1 ) 311 are coupled to each other in a serial manner.
-User Mode (2) 312 includes: an interpolation filter 312a, a sample select function 312b, a short/long code 312c, a Walsh/Orthogonal Variable Spreading Factor (OVSF) code function 312d, an l&D function 312e, a scale function 312f, a rotate function 312g, a deskew function 312h, a combine function 312i, all coupled to each other sequentially. -User mode (3) 313 includes: an interpolation filter 313a, a sample select function 313b, a short/long code block 313c, a Walsh/OVSF function 313d, an l&D function 313e, a scale function 313f, a rotate function 313g, an inter- path interference (IPI) equalize function 313h, and a combine function 313i.
Referring now to Figure 3D, a block diagram of the modulation/demodulation (modem) functions accommodated by an electronic spread spectrum communication device is shown, in accordance with one embodiment of the present invention. Figure 3D illustrates a configurable functional plane with serial and parallel functional capabilities that provide the flexibility, speed and efficiency required accommodating a wide range of modem functions for different communication protocols. Figure 3D also illustrates the concept of parallel processing in multiple functional planes to accommodate high channel density in a communication system. Exemplary modem functions, for which hardware kernels can be configured, are described hereinafter in Appendix A, entitled "Data Kernel Specification List." Figure 3D provides function groups for a Receive path 354 only.
The present embodiment of modem function block 320 includes multiple functional planes, e.g., functional kernel planes [1] 330a and [i] 330i that represent the functions required and performed by kernels for a given application. In the present embodiment, the functions provided are for an exemplary cellular spread spectrum application. Each functional plane represents the capabilities of a configurable demodulating finger hardware kernel plane. While the present embodiment shows only two functional planes, the present invention is well suited to using any number of functional planes, as appropriate for a given application. In the present embodiment, functional planes [1] 330a through [i] 330i perform modem functions for any one of a multitude of different communication protocols, e.g., IS2000, 3GPP, as well as anticipated future protocols. While the functions listed in the present embodiment are focused towards CDMA, the present invention is well suited to implementing functions that are applicable to time division multiple access (TDMA) protocol, whose functions are known by those skilled in the art. The specific communication protocol implemented in a functional plane depends upon how the functional plane was configured, which is described in a subsequent flowchart. Functional kernel plane 330a includes a sequential arrangement 356d of sub functions of the modem function that are common to multiple communication protocols to be accommodated by a communication device. Functional plane [1] 330a also includes a parallel arrangement, 356a through 356c, of sub functions that are unique to one or more of the multiple communication protocols. By using this arrangement, the present invention can accommodate any of the multiple communication protocols efficiently, and can quickly change between different protocols. Note that the specific choice of which functions of the multiple communication protocols to include in sequential arrangement and which functions to include in parallel arrangement is a complex task that evaluates the trade-offs between flexibility, speed, and efficiency of the overall architecture of the communication device. In an alternative embodiment, some functions that are common to different protocols may be included in a parallel functional block arrangement.
Sequential arrangement 356d of sub-functions in functional plane [1] 330a includes the following sub function blocks: 1 ) interpolation filter block 331a; 2) sample select block 332a; 3) short/long code block 334a; 4) Walsh/orthogonal variable spreading factor (OVSF) block 336a; 5) integrate and dump (l&D) block 338a; and 6) scale block 339a. Sequential arrangement 356d of sub-functions represents the common functions that are used in multiple communication protocols. Thus, for example, WCDMA anc some other 3-GPP applications can use the sub- functions listed in sequential ar ngement 356d.
Following scale block 33£a of sequential arrangement 356d, three groupings of possible parallel arrangements of functional blocks can be chosen, by flexible coupling 347. Each grouping represents a unique configuration of functions required by one of multiple communication protocols accommodated by the present embodiment. A first grouping 356a includes a fast Hadamard transform (FHT) block 340a followed by a magnitude calculation block 342a and a deskew/align block 344a, as required for an exemplary communication protocol. A second grouping 356b includes a rotate block 346a followed by a deskew and align block 347a (that is common between path 356c and 356b), as required by 3GPP and CDMA-2000 communication protocol. Finally, a third grouping 356c includes a rotate 346a block (that is common for path 356b and 356a) followed by an inter-path interference (IPI) block 349a, as required by the 3GPP communication protocol. Each of the three possible groupings, 356a through 356c, transmits its results to a combining block 350a associated with each functional plane. Function blocks 331a through 339a of sequential arrangement 356d are common to the extent of their functional category; each function has parameters that can be varied for different protocols that use that function and for changes over time for a given protocol. While the present embodiment of sequential arrangement 356d and parallel arrangement 356a through 356c provides a specific type, quantity, and sequence of functions for a given range of communication protocols, the present invention is well suited to using a wide range of functions in each arrangement. Furthermore, the present invention is well suited to narrowing or expanding the scope, application, and protocols accommodated by the functions.
In the present embodiment, additional functional planes, e.g., functional plane [1] 330a through plane [i] 330i, include the same functions, e.g., interpolating filter block 331a and 331 i. Thus, every functional plane in modem function block 320 is equally configurable with the full flexibility to accommodate each of the communication protocols. In another embodiment, one or more functional planes have functional capabilities that are different from each other. For example, in one embodiment, each functional plane in modem function block 320 has the ability to handle different subsets of the superset of communication protocols accommodated by the overall communication device. Thus, one functional plane can be configured to accommodate IS2000 and CDMA-2000 communication protocols, while another functional plane is configured to accommodate a legacy communication protocol.
Because a functional plane can accommodate multiple communication protocols, it is configurable to a desired protocol. On a larger scale, each of the multiple functional planes can be configured to accommodate the same communication protocols at a given time, or to accommodate different communication protocols at a given time. Thus, for example, functional planes [1] 330a and [i] 330i can be configured to both perform a CDMA-2000 protocol at a given point in time. Alternatively, functional planes [1] 330a and [i] 330i can be configured to perform different communication protocols at a given point in time, e.g., functional plane [1] 330a is configured to perform CDMA-2000 protocol while functional plane [i] 330i is configured for a legacy communication protocol.
One aspect of the configurabiltiy of a functional plane of Figure 3D, is that the configuration itself can change, e.g., it can be reconfigured. The independent variable associated with the change can be time, a channel designation, or some other user-defined variable. The time variable can be a long or short temporal designation, e.g., years, months, or even milliseconds. Furthermore, the reconfigurability of the functional planes is dynamic in one embodiment, e.g., the reconfiguration occurs while other functional planes are operating. The configuration data used to designate the functions and protocol accommodated may be communicated via wireless transmission of configuration data along with the data, or by loading pre-stored configuration data on communication device. In this manner, the present invention provides a temporal and functional range of granularity for the functional planes of the communication device that are definable by a user.
Receive path 354 shows the direction of data flow through functional blocks 329 through 349 in a modem function plane 330a. In this manner, the modem function block 320 can accommodate both directions of data traffic, by time-sharing the functional resources. In the present embodiment, multiple functional planes, e.g., 330a through
330i, are physically implemented in a single configurable modem processor block, e.g., block 102a of Figure 1 B. As an example, function group A 316a, which includes FHT function 340a and Mag function 342a, and function group B 316b, which includes interpolation filter 331a, sample select block 332a, short/long code 334a, Walsh/OVSF block 336a, and I & D block 338a, are implemented in specific subcomponents, e.g., algorithmic-specific kernels, of modem kernel plane 102a of Figure 1 B, as described in subsequent figures. Furthermore, the methods of configuring, selecting, and arranging functions in modem block 320 are described in subsequent flowchart figures. However, the present invention is well suited to a wide variety of physical implementations via a wide range of methods.
Thus, a channel element can be built-up by the user from the set of reconfigurable kernels to realize a reconfigurable multi-channel CDMA digital base band modem signal path that performs all the digital modulation-demodulation as well as channel encoding-decoding required per logical channel for all narrowband and wideband CDMA standards. Some possible configurations that a user can realize by configuring the hardware kernels and the configurable interconnect in the communication device are summarized below, for the forward (downlink) and reverse (uplink) links: • Forward Link
• 1xRTT evolution (IS-2000)- all radio configurations as described in TIA/EIA IS2000.2
• 3xRTT multicarrier mode
• 3GPP 3.84 MHz Direct-Spread Mode (FDD) • ARIB 4.096 Mcps WCDMA
• Reverse Link
• 1xRTT evolution (IS-2000)- all radio configurations as described in TIA/EIA IS2000.2
3GPP 3.84 MHz Direct-Spread Mode (FDD) • ARIB 4.096 Mcps WCDMA
The present modem functional block diagram 320 can be realized by providing parallel identical channel elements, where each channel element one or more fingers, for a total number of fingers appropriate for a given application (e.g., user density, etc.). With each channel element in receive path 354 consisting of configurable and programmable kernel engines for despreading, demodulating, parameter estimation, and combining. Modem signal processor function block 320 offers a communication system with many effective fingers, allowing a very high level of channel integration, while allowing the communication system to employ proprietary algorithms to improve radio link performance, as will be described hereinafter. Each channel element, including its definition and structure, is completely under the communication system's control using the mixed programming granularity to control dataflow, controlflow, and interconnect. This process is discussed in more detail for a subsequent flowchart figure.
Transmit path 352 is configured with multiple channel elements in the present embodiment, thus enabling maximal use of forward-link capacity per sector in multicarrier systems. The architecture of the modem signal processor 102a of Figure 1 B is such that it enables the system designer to program the chip at many levels, including control of specific datapaths to realize different algorithms. A hierarchical Application Programming Interface (API) that supports several levels of user control for the modem signal processor is described in co-pending patent application entitled "A METHOD FOR DESIGINING A CONFIGURATION FOR A CONFIGURABLE SPREAD SPECTURM COMMUNICATION DEVICE."
Based on the similarity of the functions across different user-defined modes in Figure 3C, the design of configurable hardware kernels can be determined, as described in a subsequent flowchart figure. For example, all three of these modes can be configured to run on a single communication device, e.g. device 100 of Figure 1b. In the present embodiment, all three user-modes may appear to exist independent of each other. However, in reality, a functional implementation of the three different modes can selectively exist on each of the multiple functional planes, e.g., function planes [1] 330a through [i] 220i, of Figure 3D. In this embodiment, the similar aspects of all three user modes are included in sequential function block 356d of Figure 3D, with the non-similar functional aspects of the three user modes provided in the three parallel function blocks 356a through 356c.
The three parallel function blocks (or paths) 356a through 356c of Figure 3D can be intermittently selected to provide a sequentially varying configuration protocol within a given functional kernel plane, e.g., time-sharing the resources. Alternatively, different functional kernel planes can be configured to different communication protocols depending upon the communication traffic or user needs. Additionally, different functional kernel planes can be configured to perform different portions of the functions. For example, functional kernel plane 330a can be used to handle all the sequential communication functions 356d for all three different modes, while functional kernel plane 330i can perform one or more of the sequential functional blocks 356a through 356c. With all these scenarios, hardware kernels are used to implement these functional sequential and parallel blocks, as described in a subsequent figure. Referring now to Figure 4, a block diagram of encode/decode (codec) functions accommodated by the electronic spread spectrum communication device is shown, in accordance with one embodiment of the present invention. Figure 3C illustrates a configurable functional plane with functional capabilities that provides the flexibility, speed and efficiency required to accommodate a wide range of codec functions for different communication protocols. Figure 3C also illustrates the concept of parallel processing in multiple functional planes to accommodate high channel density in a communication system. Functions in Figure 4 relate to an exemplary spread spectrum communication system of cellular telephony.
Codec function block 400 includes an address generator block 401 coupled to an allocator function block 402, in turn coupled to dynamically assignable scratch/buffer memory 404, such as random access memory (RAM), in the present embodiment. Dynamically assignable scratch/buffer memory 404 is coupled to each of the multiple possible configurable decoder functional planes. Allocator function block is implemented by allocator hardware block 219 of Figure 2A, which includes state machine components and memory that is chosen and coupled in a manner to manage multiple functional planes, e.g., planes 406 and 410. The configuration of the allocator components can vary depending upon the protocol implemented in the multiple functional planes, e.g., planes 406 and 410. Dynamically, a single scratch/buffer memory 404 is operational to provide configuration and state information as required for configuring and sharing resources in the multiple functional planes 406 and 410.
The present embodiment of codec function block 400 includes a single functional kernel plane for a given data flow direction, e.g., decode functional plane 410 for decode data path 258, and encode function plane 406 for encode data path 259. Each functional plane utilizes configurable codec hardware kernels to accommodate their different functions, which are described hereinafter.
As an illustration, decode functional plane 410 includes an exemplary arrangement of sub functions for a decode path 408 to translate encoded received data into a data signal, per an appropriate communication protocol for the desired application. The arrangement of functions includes, in one embodiment, a bit field extraction block 410 coupled to a memory block 412, which is then coupled to deinterleaver block 414, which is in turn coupled to rate matching block 416. Rate matching block 416 is coupled in parallel to Viterbi block 418 and to Turbo decoder block 420, both of which are then coupled to provide data to cyclic redundancy checker (CRC) block 422. Lastly, CRC block 422 is coupled to buffer 424. A similar, complementally coupled arrangement of sub-functions exists on encode functional kernel plane 406, but is omitted for clarity.
The function blocks provided in Figure 4 can be implemented on corresponding individual hardware kernels, e.g., kernel K1 261a through K6 266a. However, some functions may share a common hardware kernel if the types of operations (e.g., math operations) and the processing rate (e.g., symbol rate) are similar enough and if scheduling of the hardware kernel and the data flow through the hardware kernel are satisfactory. Decode function kernel plane 410 includes other user-configurable decoder functions, described hereinafter, for convolution decoding and turbo decoding. The basic function of convolution decoding and turbo decoding is known by those skilled in the art. The convolution decoder function has the following user-programmable (or user-configurable) parameters: code polynomial; code (R, K), with K=5-9, data rate; blind rate-detection for voice channels; rate matching. Convolution decoder function also has user-programmable depuncturing pattern, traceback method, and soft-decision output. Turbo decoder function has user-programmable: code polynomials (K=3,4); data rate; block size (up to 6120); number of iterations; termination conditions; decoding metric (max-log-MAP, user-specified correction table); input scaling; traceback method; and depuncturing pattern.
In contrast, encode functional plane 406 includes a sequential arrangement of functions, or sub functions, (not shown for clarity) for an encode path 409 to translate data into an encoded signal, per an appropriate communication protocol of the desired application. Encode path 409 shows a data path direction through codec function block 400 that is opposite that of decode path 408. In this manner, the codec function block 400 can accommodate both directions of data traffic, by time-sharing the functional resources. A wide range of common functions, implemented serially, and a wide range of diverse functions, implemented parallely, for the wide range of spread spectrum applications can be obtained from the operating specifications for these different protocols. In particular, transmit encoder path 409 of Figure 4 includes user-configurable encoder kernels for convolution encoding and turbo encoding. The following functions make up the encoding kernels: Convolution Encoder function and turbo encoder function; convolution encoder includes the following user-programmable parameters: code polynomial (R, K), with K=5-9; rate matching; puncturing pattern. Turbo encoder includes user- programmable: code polynomials (K=3,4); data rate; block size; rate matching; puncturing pattern. The specific function block descriptions implemented by reconfigurable decoder plane 406 include deinterleaver controller, turbo decoder, and convolution decoder. Appendix A, provided hereinafter, describes the specifications for the decode and encode functions implemented in the hardware kernels. It is appreciated that one skilled in the art understands the references to CDMA and communication signal variables and protocols within Appendix A.
The Channel Codec function plane 400, as implemented in Channel Codec Signal Processor 104 of Figure 1 B, operates under the following criteria, in one embodiment:
• A maximum of 32 logical channels are available per carrier per configuration
• A configuration, as defined as a radio channel configuration, maps directly onto one thread of processing on the Channel Codec Signal Processor • Type of channel specified by BTS channel card controller.
• Multiple radio channel configurations must be supported across a multiple standards, including all radio configuration characteristics for the reverse channel in derivative systems (Radio Configurations 1-6) as well as ARIB and 3GPP Direct- Spread FDD (Radio Configurations based on Service Class and Associated User Data Rate).
• BTS Channel Card Controller will interface to the BTS Cell Controller for sending and receiving control information associated with call setup, teardown, and handoff.
• The BTS Cell Controller will not demand a grand total of channel bandwidth beyond the capacity of the Channel Codec Signal Processor(s). If this cannot be guaranteed, then a protocol on dropping channels beyond the capacity limit must be specified. • Assignments for radio configurations for specific channels will be made prior to the arrival of the frame; i.e. assignments for FRAME (N) will be sent prior to the arrival of FRAME (N).
• The logical channel assignments for a physical channel (for the BTS) can be changed during the course of a call at any FRAME boundary.
• Physical channels may request a larger bandwidth or smaller bandwidth for the same assignment during the course of a call.
• Logical channel assignments will be maintained so there are no holes in the assignment table. This provides the capability for adding the largest (widest) new channel assignment within the remaining capacity.
• Channel assignments and deassignments require one time slot (only one assignment or deassignment per time slot). This assumes cleanup occurs upon every assignment/deassignment.
• Resource consolidation/defragmentation will be performed immediately after a deassignment or assignment.
While the present embodiment shows only two functional planes, the present invention is well suited to using any number of functional planes, as appropriate for a given application. In the present embodiment, functional planes 406 and 410 can be configured to perform codec functions for a wide range of spread spectrum communication applications, as described hereinabove. For example, in one embodiment, multiple functional planes (not shown) for both encoding and/or decoding can exist. In the present embodiment, additional functional planes for a given data flow, e.g., decoding path 408, include the same functions for decoding. Thus, every functional plane in codec functions is equally configurable with the full flexibility to accommodate each of the communication protocols. In another embodiment, one or more functional planes have functional capabilities that are different from each other. For example, in one embodiment, each functional plane in codec function block 400 has the ability to handle different subsets of the superset of communication protocols accommodated by the overall communication device. Thus, one functional plane can be configured to accommodate IS-95 and CDMA- 2000 communication protocols, while another functional plane is configured to accommodate WCDMA and 3GPP. All the functional planes can be physically implemented in a single codec hardware processor block, e.g., block 104 of Figure 1 B, in the present embodiment. However, the present invention is well suited to a wide variety of physical implementations. The configurabiltiy and dynamic reconfigurability of codec functional planes is also described in subsequent flowcharts. Referring now to Figure 5, a diagram of the separating and combining process of a single thread into multiple concurrent threads to be accommodated on the communication device is shown, in accordance with one embodiment of the present invention.
The model for computation using the reconfigurable multiprocessor architecture of the present invention starts from the model of a single thread representing Function A 504, which is initialized on a microprocessor or digital signal processor, e.g., processor 112 of Figure 1 B. Several application-specific processing threads, e.g., thread 1 501 through thread 3 503, are split off in the pre-processing stage. For example, in one embodiment, function A 504 is a modem function within a given application, e.g., a wireless communication protocol such as CDMA IS-95. Function A 504 includes multiple sub functions that can be performed in series or in parallel.
The sub functions that are performed concurrently, e.g., in parallel, are referred to as a threads, e.g., thread 1 501 , thread 2 502, and thread 3 503, for the modem function A 504. The number of threads can vary in different embodiments, according to the operations required by a given function or sub function, and their need to be performed concurrently, e.g., defined by a communication protocol in the present embodiment. Concurrent operations 508 are performed on each of the respective threads 501-403 in a communication device, according to the sub function requirements. Thereafter, the threads are terminated with the provision of data and control is returned the microprocessor. Each thread can be implemented on an autonomous configurable kernel in the present embodiment. A processor 112 along with an optional allocator 219, as shown in Figure 2A, can initiate or manage the separating and combining operations. The chronological sequence of events for the function of separating and combining functions/sub functions is provided in a subsequent flowchart figure. In one embodiment, a modulation function can be broken down into concurrent sub function on data, such as interpolation filter, sample select, short/long code generation, etc. Similarly, each sub functions can be broken down into multiple concurrent operations. For example, a filter interpolation requires operations such as data fetch, addition, decision logic, etc.
FLOWCHART IMPLEMENTATION OF PROCESSES Referring now to Figure 6A, a flowchart 6100 of the process used to implement a design configuration onto a configurable spread spectrum electronic spread spectrum communication device is shown, in accordance with one embodiment of the present invention. By using the flowchart embodiment of the present invention, a configurable electronic device can be configured to a user- specific design configuration. In this manner a significant amount of control over the operation and function of the configurable device is provided to the user. The implementation of the design into the device is direct and convenient, thus providing timely flexibility in a field where protocols can change quickly and frequently. Flowchart 6100 is implemented, in general, by communication device 100 of Figure 1 B and VMI 150 of Figure 1 D, as well as diagrams of components as shown in Figures 2A through 2G.
Flowchart 6100 begins with step 6102. In step 6102 of the present embodiment, a design configuration is received at a configurable device. For example, a design configuration for a configurable communication device can be a 3GPP-specific configuration, implemented by user-specified proprietary algorithms, in one embodiment. Additional description on the process for designing a configuration for a configurable device is provided in co-pending patent application entitled "A METHOD FOR DESIGINING A CONFIGURATION FOR A CONFIGURABLE SPREAD SPECTURM COMMUNICATION DEVICE." Step 6102 is implemented, in one embodiment, by providing design configuration data, e.g., from configuration mappings input 174 of Figure 1 D, to configuration information block 272 of a hardware kernel K1 261a via reconfiguration bus 206a. More than one configuration can be provided in one embodiment. In this case, a configurable device can be partitioned to perform multiple protocols, having a unique configuration for one or more functions, within a single communication device. The partitioning can be static amongst the hardware, or can be dynamic, e.g., in the case of time-shared configurable hardware kernels. The configuration information can also contain information to provide options, e.g., quality of service (QOS) when implementing the function for a given user or channel in the communication device. The transmission of the design configuration can either be via wired or wireless coupling.
While the present embodiment for step 6102 provides a specific location of configuration information block 272 and a specific route, e.g., reconfiguration bus 206a, in which it is downloaded to a hardware kernel, the present invention is well suited to using alternative components and interconnects to implement step 6102. By providing the configuration information at a level that is local, e.g., in terms of spatial and control aspects, to the individual hardware kernel, the present embodiment provides effective local processing that is autonomous, in varying degrees, to the balance of the host device. In this manner, the present invention is able to provide efficient and flexible parallel processing of data.
Step 6102 can be implemented by receiving desired configurations for hardware kernels, e.g., kernel 261a of Figures 2C through 2F, in communication device 100 of Figure 1B, via a variety of embodiments. For example, in one embodiment, configuration information is received via wired communications with a computing device, e.g., a workstation. In another embodiment, configuration information can be provided by an electronic storage medium, e.g., CD-ROM. In yet another embodiment, configuration information is received by wireless transmission from another communication device via antenna 120. Furthermore, configuration information is provided at the time communication device 100 is manufactured and/or initially programmed for operation in the field, in the present embodiment. However, in another embodiment, configuration information is dynamically implemented at a time communication device 100 is in operation in the field. Configuration information is received, processed, and implemented via system processor 112 (or BTS card controller 110a) and system memory 118, which then communicates the information and instructions via bus, e.g., bus 127 of Figure 1C, to configurable processors, e.g., configurable modem processors 102a and 102b and configurable codec processor 104. Within the configurable processors, local memory, e.g., configuration memory 272, and local controller, e.g., controller 271 of Figures 2D and 2E, can control implementation of configuration information to, and operation of, hardware satellite kernels, e.g., satellite kernel 270, in the present embodiment. Following step 6102, flowchart 6100 proceeds to step 6104.
In step 6104 of the present embodiment, deεijn configuration software (s/w) is loaded into control registers. Step 6104 is implemented, in one embodiment, by storing design configuration data in configuration information block 272 of the appropriate hardware kernel. Card controller 110a or processor 112 of communication device 100 in Figure 1 B can direct the configuration information to the appropriate control register addresses within configuration information block 272 of Figure 2D as identified by an off-line mapping operation, e.g., a programming interface (or programming tools) on a separate workstation. In this manner, a hardware kernel designed for integrate and dump functions will receive the configuration software information related to integrate and dump functions.
Steps 6104 and 6102 can be implemented by receiving a computer program with data and instructions for configuring the configurable spread spectrum electronic communication device. Exemplary computer programs for configuring modem and codec functions in the configurable spread spectrum electronic communication are provided in Appendix B hereinafter. The exemplary computer programs provide an implementation file that defines a modem finger function by defining: the sequence of operations; the parameters that control the dataflow; and the parameters that control the initiation or termination of the function. Thus, a specific finger behavior is realized below by building the finger using the principle of an extensible data type. The sequence of operations that define a finger are determined by the user, and then declared as the finger type. The user then declares the parameters that will control the dataflow and then define the initiation and termination conditions. It is appreciated that one skilled in the art can interpret the computer language specific syntax provided in this examples of Appendix B. This example demonstrates how a user can realize a specific level of control over the functional operation of the hardware kernels. Thus, controllability, observability, and new configurations and behaviors can be realized via using the extensible data types of the present invention. Thus the present invention overcomes limitations associated with the static prior art configuration for communication devices. The configuration data and computer program having instructions to implement the configuration data are implemented by a virtual machine interface (VMI), in the present embodiment, that quickly and efficiently translates the computer language information to the appropriate configuration mappings. Figure 1 D provides an exemplary VMI 150 for interfacing configurable components, e.g., configurable modem processor 120a and configurable codec processor 140 of configurable communication device 100, as shown in Figure 1B. In particular, I/O device driver block 166 contains the respective drivers for the algorithmic-specific hardware kernels (or satellite kenels) described in Figures 2C through 2G. For example, if hardware kernel bloc k K1 261a through K6 266a of Figure 2C have architectures that are designed lor demodulation functions, then the necessary drivers for each of these hardware kernel blocks will exist in I/O device drivers block 166. These drivers will be used to configure the hardware kernels and implement the desired functions. Device drivers can exist for all the functions covered by a given application, e.g., for communication device 100 of Figure 1 B. Figure 1D provides additional description of the VMI operation. Following step 6104, flowchart 6100 proceeds to step 6106.
In step 6106 of the present embodiment, an operating system interface is loaded into a controller. Step 6106 is implemented, in one embodiment, by receiving the operating system interface, as determined by a configuration design process. The controller receiving this information can range from: BTS card controller 110a of Figure 1 B; BTS cell controller 114 of Figure 1C; allocator
(controller) 219 of Figure 2A; and the individual hardware kernel controllers, e.g., controller 271 of Figure 2D, in each of the hardware kernel planes, e.g., plane [1] 201a through plane [i] 201 i.
In particular, BTS Channel Card Controller 110a (or an optional DSP) hosts the software stack developed by the user, e.g., per a configuration design process for a configurable device, that includes a standards-driven OSI Layer 1 Modem software stack. This software controls the operation of a modem signal processor, e.g. configurable modem processor 102a, and a Channel Codec Signal Processor, e.g., codec processor 104. This software stack exploits the full power of an Application Programming Interface (API) for the wireless spread spectrum communication platform to realize efficient radio link performance for each channel via a user's proprietary signal processing techniques. In this manner, the present embodiment effectively employs a hierarchy of controllers for providing configuration information and control information that will allow the autonomous operation of the individual hardware kernels. This allows for efficient parallel processing, with the benefit of reconfigurability. Following step 6106, flowchart 6100 proceeds to step 6108.
In step 6108 of the present embodiment, the operating system (OS) interface is linked with the API. Step 6108 is implemented, in one embodiment, by linking the appropriate set of interfaces from the API, e.g., from API inputs 172 of Figure 1 D. The OS interface data and the API inputs can be stored in memory 118 on communication device. Step 6108 effectively reconciles the two interfaces such that the OS of the communication device can implement the functions desired on the appropriate hardware kernels, as provided in a configuration design process. Following step 6108, flowchart 6100 ends.
Referring now to Figure 6B, a flowchart 6200 of the process used to operate a configurable spread spectrum electronic spread spectrum communication device is shown, in accordance with one embodiment of the present invention. By using the flowchart embodiment of the present invention, an application with different protocols can be provided for in a configurable electronic device. Consequently, the present invention provides a method for designing efficient and intelligent flexibility into a configurable device to accommodate current differences and protocol as well as future protocol changes. Flowchart 6200 is implemented, in general, using the functional block diagram of Figure 1 D and the hardware block diagrams of Figures 1 A through 1 C, and figures 2A through 2F.
Flowchart 6200 begins with step 6202. In step 6202 of the present embodiment, a signal is received at a configurable electronic device for processing. Step 6202 is implemented, in an uplink transmission from a mobile to a BTS, by a communication device, e.g., device 100 of Figure 1 B, receiving a signal via wireless radio frequency (RF) transmission. The signal can be a continuous signal, as appropriate for CDMA systems, or a signal having time-divided packets therein, as appropriate for TDMA systems. And the sending and the receiving devices could be a base transceiver station (BTS), a mobile unit, or a test platform. Furthermore, the signal can include data information, control information, configuration information, and options for implementing configuration information. In particular step 6202 is implemented in one embodiment by receiving signal on antenna 120 and communicated by bus 129 to communication device 100, as shown in Figure 1B. In a downlink embodiment for step 6202, a MTSO traffic interface sends voice, data, and control data packets, via bus 128 to the transmit-data-pump path in CDMA BTS Modem Platform communication device 100 according to the configuration specified by the BTS Cell Controller 114 for that specific payload, as shown in Figure 1 B. In an uplink embodiment for step 6202, the communication device 100, under control from the BTS Card Controller 110a, assigns a signal source to a receive-data-pump path in the modem signal processor. Following step 6202, flowchart 6200 proceeds to step 6204.
In step 6204 of the present embodiment, the signal is preprocessed. Step 6204 is implemented, in one embodiment, by performing preprocessing steps that prepare a signal for the core processing to be performed by the reconfigurable hardware kernels of the communication device. For example, in a downlink scenario, one embodiment of step 6204 includes preprocessing steps such as disassembly of the signal and synchronization of signal with over the air timing. Preprocessing can also include demuxing and sector-by-sector combining in the cases where channels from different sectors arrive from different modem signal processor transmit paths. In an uplink scenario, one embodiment of step 6204 includes parallel steps of synchronizing the signal and providing different types of data for the subsequent processing and transmission. By preprocessing the signal, it is prepared for the scope of processing available to a given hardware design kernel. Following step 6204, flowchart 6200 proceeds to step 6206.
In step 6206 of the present embodiment, a configuration for a configurable element is determined for a given user/channel. As mentioned in step 6104, the configuration can be user/channel specific. Thus, the configuration can include inputs such as radio type 6207a or quality of service (QOS) level 6207b, to determine the appropriate configuration of the user/channel, or to determine the specific option within an appropriate configuration. Radio type of service 6207a can include IS-95B, IS-95C, and IS-2000 as described in TIA/EIA IS2000.2. This input can also include the choice of 3GPP x3.84 MHz Direct-Spread Mode frequency division duplex (FDD) communication protocol. QOS level 6207b can be a contracted level of reception quality or optional service features. While specific input types and choices are provided in the present embodiment, the present invention is well suited to using any type of input, and choice therein, as is supported by the design of the configurable device.
Step 6206 is implemented in one embodiment using memory 118, BTS card controller 110b of communication device 101 in Figure 1C, or by using allocator 219 of Figure 2A and configuration information block 272 of Figure 2D. In one embodiment, a physical channel can be tied to a specified configuration, and thus established a priori. Alternatively, the data to be pro essed by the configurable device can contain header information that indicates a protocol, and hence an appropriate configuration for the hardware kernels assigned to process that protocol Following step 6206, flowchart 6200 proceeds to step 6208
In step 6208 of the present embodiment, the signal is assigned a data pump path on one or more independent processors Step 6208 is implemented, in one embodiment, by allocator 219 and/or microprocessor 1 12 of Figure 2A, in conjunction with memory Microprocessor 1 12 and allocator 219 use a unique set of communication primitives to indicate the data pump path between multiple hardware kernels of which the data is required to flow for data processing that will satiate the desired functions The information needed for a data pump path includes the hardware kernel addresses from which, and to which, data flows for the required data processing operation The information also includes any configuration data necessary for the reconfigurable interconnect, e g , interconnect 204a of Figure 2C, to realize the interconnection of the two or more hardware kernels The address, instructions, and configuration information (such as reconfigurable interconnect configuration) are stored in memory 1 18 of communication device 100 of Figure 1 B and/or memory portion of configuration information block 272 or in controller block 271 of a given hardware kernel as shown in Figures 2D and 2E
As an example related to step 6208, several function blocks, e g , for function group B 316b of Figure 3D, can be implemented on hardware kernel plane 201 a of Figure 2C In particular, hardware kernel group A 268a of Figure 2C can utilize hardware kernels K1 261 a, K4 264a, and K5 265a, with the appropriate interconnects between them being established by reconfigurable interconnect 204a to implement a given function, or group of functions The data pump path refers to the hardware kernels used to implement the functions, and the sequence of data flow between these appropriate kernels Following step 6208, flowchart 6200 proceeds to step 6210
In step 6210 of the present embodiment, design configuration information is received at a configurable hardware kernel for processing a respective portion of the signal Step 6210 is implemented, in one embodiment, by receiving design configuration information from configuration information block 272 at satellite kernel 270, within the hardware kernel 261 a, as shown in Figure 2D Alternatively, the memory location of the information can be provided elsewhere, such as a memory portion of allocator 219 This information is downloaded in the present embodiment at start up of the device, following an off-power condition that cleared memory in satellite kernel 270. Alternatively, this information can be reloaded for an interrupt or fault condition, as preset or determined by a user. New configuration information can be received while the device is powered up, thus overriding the previous configuration. Functional block diagram 200f shows that control signal generation block 284 provides a configuration information function via communicating the configuration to algorithmic computation block 292 via line 295d. Following step 6210, flowchart 6200 proceeds to step 6212.
In step 6212 of the present embodiment, an inquiry determines if time-sharing is occurring. If time-sharing is occurring, then flowchart 6200 proceeds to step 6214. However, if time-sharing is not occurring, then flowchart 6200 skips to step 6216. Step 6212 provides the logic to determine whether a configurable device has a time- share set up or not. The time-share set up requires additional management and memory storage steps, as indicated hereinafter. A configuration input 121 to a communication device can indicate whether time-sharing is used or not, and to what extent it is used. Step 6212 is implemented, in one embodiment, via allocator 219 or processor 112 of Figure 2A. in particular, allocator 219 or processor 112 can be used to determine whether time-sharing exists, e.g., via pre-programmed time-share configuration of a channel ID or some other identifier. Furthermore, a configuration design process provides the necessary configuration information and management logistics to implement a time-sharing set up.
Time-sharing, per step 6212, can exist on a wide range of hardware levels. For example, time-sharing can exist on a hardware kernel by hardware kernel basis, e.g., K1 261a, or on a hardware plane by hardware plane basis, e.g. hardware kernel plane 201a. Furthermore, time-sharing can occur intermittently on a device, as programmed by a user. For example, a device can time-share in terms of temporal variation, e.g., different parts of the day require more or less resources, or spatial diversity, and e.g., some sectors of a base station having higher resource requirements than other sectors. By providing scaled clock speeds to discrete hardware, e.g., hardware kernels, and by providing a selectable quantity of resources, e.g., hardware kernels, the present invention provides effective scalability without significant changes to the architecture. Additional information on timesharing apparatus and processes is described in co-pending patent application entitled "IMPROVED APPARATUS AND METHOD FOR MULTI-THREADED SIGNAL PROCESSING," Serial No. 09/492,634, and filed on January 27, 2000. This related application is commonly assigned, and is hereby incorporated by reference.
Step 6214 arises if time-sharing is desired, per step 6212. In step 6214 of the present embodiment, the state information for the applicable time slice is received. Step 6214 is implemented, in one embodiment, by retrieving a stored state of configurable computation kernel (or configurable satellite element) 273a in a memory portion of controller 271 , or in configuration information block 272, of Figures 2E or 2D respectively. Furthermore, the state of the reconfigurable interconnect 204a of Figure 2C can be stored in memory in allocator 219, as shown in Figure 2A, or in memory 118 of communication device 100, in another embodiment. The state information is provided to configurable computing element 273a. In particular, the type of state information is that required for performing the operation for a given function. Thus, in one embodiment, the states in registers used for filtering can be stored. Likewise, the state of the data being processed can be stored, if the operation was not complete. Following step 6214, flowchart 6200 proceeds to step 6216.
In step 6216 of the present embodiment, the signal is processed by the appropriate configurable elements, e.g., the hardware plane or hardware kernel, etc., as shown in Figures 2A through 2F. In practice, after the API functions are executed on the processor per step 6204, control is transferred, e.g., via a handshake protocol, to the pool of reconfigurable kernels, e.g., K1 261a through K6 266a of Figure 2C. By transferring control, a lower level of controller now has control within the controller hierarchy system.
Step 6216 is implemented in the present embodiment on one or more hardware kernels, e.g., kernel K1 261a, which has autonomous localized control to control an operation to completion. In this manner, the present embodiment provides a data processing island that conserves system resources by performing its operations locally, in a reconfigurable and/or time-share manner. Step 6216 is enabled, in one embodiment, by allocator 219 of Figure 2A directing the appropriate data signal and control signal to the configurable computation kernel, e.g., configurable computation kernel 273a, as described in 'data pump assignment' step 6208. Figure 2f shows the input/output interfaces and functions that enable step 6216. For example, input data 290 is received at algorithmic computation block 292, along with state information 295b, and other types of data such as adapted clock signal 295a and enable/status 295c that enable the algorithmic computation block. The interfaces and functions described in Figure 2f are implemented in hardware in Figures 2A through 2F.
In the present embodiment, the functions implemented in step 6216 for communication device 100 of Figure 1 B are the modem functions 6216a and the codec functions 6217b. In particular, modem functions for a downlink scenario include encoding, interleaving, channelization code mixing, l/Q scrambling code mixing, transmit diversity processing, filtering, and rate-dependent scaling. Modem functions for uplink include: despreading, dechannelization, demodulation, and combining, as programmed by the Layer 1 software stack, including facilities to perform multipath and antenna diversity combining.
In contrast, the codec functions implemented for step 6216 for a downlink scenario include: encoding, interleaving, channelization code mixing, and l/Q scrambling code mixing, transmit diversity processing, filtering, and rate-dependent scaling. The codec functions for uplink scenario include despreading, deinterieaving, channel decoding, assembly of payload data and control information for MTSO. The Data Kernel Specification List, described in Appendix A, provides a more technical description of exemplary discrete sub functions needed to accomplish the modem and codec functions. However, the present invention is well suited to implementing a wide range of functions in a hardware kernel, suitable for a given application. The modem signal processor, under control from the BTS Card Controller, assigns a signal source to a receive-data-pump path in the modem signal processor. The modem signal processor, under control from the BTS Card Controller, assigns a signal source to a receive-data-pump path in the modem signal processor. Following step 6216, flowchart 6200 proceeds to step 6218.
In step 6218 of the present embodiment, the signal is post processed. Thus, after the pool of reconfigurable kernels, e.g., K1 261a through K6 266a of Figure 2C, have completed their operations on the data, then control, or computations, are returned back to the processor. Consequently, this completes the circle of hierarchical controls implemented by a return handshake. Step 6218 is implemented, in one embodiment, providing signal to subsequent downstream or upstream functions and devices that prepare the signal for the application, e.g., transmission of a signal via antenna, amplification of a signal for reception, etc. In particular, post processing for a downlink scenario from a BTS can include generating multiplexed l/Q digital base band waveforms identified with a channel, sector, and/or antenna tag. Another post processing step includes formatting the composite signal, consisting of all the signals on a per-carrier and per-sector, as necessary and sent from the channel card to other signal conditioning circuits in the base-station for digital to analog (D/A) conversion and for radio frequency (RF) transmission. Following step 6218, flowchart 6200 ends.
The present embodiment applies flowcharts 6100 and 6200 to a digital wireless communication system. However, the present invention can be applied to a wide range of applications and a wide range of device configurations. Within the wireless communication system described in the present embodiment, the present invention is applicable to mobile units, base stations, and test platforms.
While flowcharts 6100 and 6200 of the present embodiment show a specific sequence and quantity of steps, the present invention is suitable to alternative embodiments. For example, not all the steps provided in flowcharts 6100 and 6200 are required for the present invention. In particular, flowchart 5200 provides steps 5212 and 5214 for a time-share scenario for hardware kernels. However, the time- scenario is optional for the present invention, and thus, these steps may be omitted in one embodiment. Similarly, other steps may be omitted depending upon the application. In contrast, the present invention is well suited to incorporating additional steps to those presented, as required by an application, or as desired for permutations in the process.
Lastly, the sequence of the steps for flowcharts 6100, and 6200 can be modified depending upon the application. Thus, while flowcharts 6100 and 6200 are shown as a single serial process, they can also be implemented as a continuous or parallel process. For example, is appreciated that flowchart 6100 can be repeated for the multiple hardware kernel planes, e.g., plane 201a of Figure 2C, in the multiple processors, e.g., processors 102a and 102b of Figure 1 B, within a communication device, e.g., device 100.
Many of the instructions for the steps, and the data input and output from the steps, of flowcharts 6100, and 6200 utilize memory and processor hardware components, e.g., memory 118 processor 112 of Figure 1 B. The memory storage used to implement the flowchart steps in the present embodiment can either be permanent, such as read only memory (ROM), or temporary memory such as random access memory (RAM). Memory storage can also be any other type of memory storage, capable of containing program instructions, such as a hard drive, a CD ROM, or flash memory. Similarly, the processor used to implement the flowchart steps can either be a dedicated controller, an existing system processor, or it can be a dedicated digital signal processing (DSP) processor, as appropriate for the type of step. Alternatively, the instructions may be implemented using some form of a state machine.
Some portions of the detailed description, e.g., the processes, are presented in terms of procedures, logic blocks, processing, and other symbolic representations of operations on data bits within a computer or digital system memory or on signals within a communication device. These descriptions and representations are the means used by those skilled in the digital communication arts to most effectively convey the substance of their work to others skilled in the art. A procedure, logic block, process, etc., is herein, and generally, conceived to be a self-consistent sequence of steps or instructions leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these physical manipulations take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated in a communication device or a processor. For reasons of convenience, and with reference to common usage, these signals are referred to as bits, values, elements, symbols, characters, terms, numbers, or the like with reference to the present invention.
It should be borne in mind, however, that all of these terms are to be interpreted as referencing physical manipulations and quantities and are merely convenient labels to be interpreted further in view of terms commonly used in the art. Unless specifically stated otherwise as apparent from the following discussions, it is understood that throughout discussions of the present invention, terms such as "receiving," "generating," "mapping," "repeating," "identifying," "translating," "dividing," "decoding," "defining," "time-sharing," "scheduling," "assigning," "creating," "categorizing," "loading," "interfacing," "disassembling," "performing," "synchronizing," "demuxing," "transmitting," "combining," "formatting," "assembling," or the like, refer to the action and processes of a communication device or a similar electronic computing device, that manipulates and transforms data. The data is represented as physical (electronic) quantities within the communication devices components, or the computer system's registers and memories, and is transformed into other data similarly represented as physical quantities within the communication device components, or computer system memories or registers, or other such information storage, transmission or display devices.
In view of the embodiments presented herein, the present invention effectively provides a method and apparatus that can effectively accommodate the increases in the quantity of users and the quantity of data transferred using the limited frequency bandwidth. Furthermore the present invention provides a solution that overcomes the limitations of protocol non-uniformity and proliferation in the wireless communications. The limitations of cost and burden associated with changes in versions or performance levels of a communication protocol are also resolved by the present invention. In an effort to minimize the risks and maximize the rewards, the present invention substantially shortens the lead-time and the investment required for implementing a new specification. Finally, the present invention provides very reasonable power consumption for the communication device.
The foregoing descriptions of specific embodiments of the present invention have been presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed, and naturally, many modifications and variations are feasible in light of the above teaching. The embodiments were chosen and described in order to best explain the principles of the invention and its practical application, to thereby enable those skilled in the art to best utilize the invention and various embodiments with various modifications as is suitable to the particular use contemplated. It is intended that the scope of the invention be defined by the Claims appended hereto and their equivalents.

Claims

I Claim:
1. A computing element for processing data in a communication device, the computing element comprising: an interface adapted to receive and transmit information from the computing element; a local controller coupled to the interface, the local controller for autonomously operating the computing element; and a satellite kernel coupled to the local controller and the interface, the satellite kernel performing a discrete class of operations within a communications application.
2. The computing element recited in Claim 1 wherein the satellite kernel is configurable to perform a specific sub function within the class of sub functions.
3. The computing element recited in Claim 1 wherein the satellite kernel is reconfigurable from a first sub function to perform a second sub function within the discrete class of operations.
4. The computing element recited in Claim 1 wherein the satellite kernel is reconfigurable only within the class of operations.
5. The computing element recited in Claim 1 wherein the satellite kernel includes a plurality of electronic devices for performing arithmetic, logic, and storage operations, the plurality of electronic device coupled to each other and to the local controller in a fixed manner for implementing functions common to the class of operations, the plurality of electronic devices coupled to each other in a reconfigurable manner for implementing functions unique within the class of operations.
6. The computing element recited in Claim 5 wherein the electronic devices are coupled to each other using a reconfigurable logic technique, a reconfigurable datapath technique, a reconfigurable dataflow technique, or a reconfigurable control technique for the discrete class of operations performed by the satellite kernel.
7. The computing element recited in Claim 6 wherein the electronic devices are coupled to each other using a heterogeneous combination of the reconfigurable logic technique, the reconfigurable datapath technique, the reconfigurable dataflow technique, or the reconfigurable control technique.
8. The computing element recited in Claim 4 wherein the reconfigurability of the computing element is established on a temporal basis, a logical basis, or a functional basis.
9. The computing element recited in Claim 8, wherein the class of operations is based upon a desired level of performance for the application.
10. The computing element recited in Claim 1 wherein the discrete operation is an algorithm.
11. The computing element recited in Claim 1 , wherein the class of operations is limited to a class of mathematical field operations.
12. The computing element recited in Claim 1 , wherein the application within which the operations are used is a wireless communications application.
13. The computing element recited in Claim 12, wherein the operations used in the wireless communications application include modem operations and codec operations.
14. The computing element recited in Claim 1 , wherein the local controller manages the kernel autonomously from circuitry outside of the computing element.
15. The computing element recited in Claim 1 wherein the satellite kernel includes a computing element at a lower hierarchical level than the satellite kernel.
16. The computing element recited in Claim 5 wherein the satellite kernel includes a plurality of selective interconnects coupling the plurality of electronic devices.
17. An electronic device naving a discrete processor architecture, the communication device comprisir g: a first computing element for performing a first discrete operation, or portion thereof, in an application; a second computing element for performing a second discrete operation, or portion thereof, in the application; and a reconfigurable interconnect coupled to the first computing element and the second computing element, wherein the first computing element, the second computing element, and the reconfigurable interconnect are operable to perform a class of functions within an application.
18. The electronic device recited in Claim 17, wherein the first computing element and the second computing element are heterogeneous with respect to each other in terms of programming granularity.
19. The electronic device recited in Claim 17 wherein the first computing element and the second computing element are heterogeneous in terms of levels of millions of operations (MOPs) capacity.
20. The electronic device recited in Claim 17 further comprising a scheduler state machine coupled to the first computing element and to the second configurable element, the scheduler state machine sequencing the first discrete operation of the first computing element and the second discrete operation of the second computing element in parallel or in series to implement the function.
21. The electronic device recited in Claim 17 wherein the reconfigurable interconnect has an uncommitted architecture.
22. The electronic device recited in Claim 17 wherein the reconfigurable interconnect has a restricted amount of interconnections between the first computing element and the second computing element, the restricted amount of interconnections proportional to a variation within the class of functions in the application.
23. The electronic device recited in Claim 17 wherein the reconfigurable interconnect couples a quantity of input/output lines from the first computing element with a quantity of input/output lines from the second computing element in a manner that is defined by a rule set, the rule set representing a communication processing function.
24. The electronic device recited in Claim 17 wherein the reconfigurable interconnect is a programmable bus channel.
25. The electronic device recited in Claim 17 wherein the reconfigurable interconnect has a reconfigurable logic configuration.
26. The electronic device recited in Claim 17 wherein the reconfigurable interconnect is reconfigurable on a temporal basis, a logical basis, or a functional basis.
27. The electronic device recited in Claim 26 wherein the reconfigurable interconnect has a plurality of configurations that couple the first computing element and the second computing element, the plurality of configurations of the reconfigurable interconnect varying in time.
28. The electronic device recited in Claim 17 wherein the first computing element and the second computing element can operate in a plurality of modes.
29. The electronic device recited in Claim 17 wherein the class of functions is for a modem function in a wireless communication application.
30. The electronic device recited in Claim 17 wherein the class of functions is for a codec function in a wireless communication application.
31. The electronic device recited in Claim 18 wherein the first computing element, the second computing element, and the reconfigurable interconnect are configurable to perform a specific function defined within the class of functions of the application.
32. The electronic device recited in Claim 17 further comprising a plurality of computing elements, wherein each of the plurality of elements have at least one line selectively coupled to the reconfigurable interconnect .
33. The electronic device recited in Claim 31 , wherein the class of functions is based upon a level of performance for the application.
34. The electronic device recited in Claim 33, wherein the level of performance is a symbol-based level of performance.
35. The electronic device recited in Claim 33, wherein the level of performance is based on millions of operations per second (MOPS).
36. The electronic device recited in Claim 33, wherein the level of performance is based on a type of mathematics for the application.
37. An electronic spread spectrum communication device for processing data, the electronic spread spectrum communication device comprising: a channel card having a plurality of autonomous computing elements coupled to each other via a configurable interconnect; a processor coupled to the channel card, the processor operable to convey instructions and data to the channel card; and a computer readable memory unit coupled to the processor and to the channel card, the computer readable memory unit operable to store reconfiguration data.
38. The electronic spread spectrum communication device recited in Claim 37 wherein the channel card performs a modem function
39. The electronic spread spectrum communication device recited in Claim 37 wherein the channel card performs a codec function.
40. The electronic spread spectrum communication device recited in Claim 37 wherein the channel card is reconfigurable to perform functions for any one of a plurality of communication protocols.
41. The electronic spread spectrum communication device recited in Claim 37 wherein each of the autonomous computing elements is operable only within a class of communication functions for which they were designed.
42. The electronic spread spectrum communication device recited in Ciaim
37 further comprising an additional channel card having multiple levels of programming granularity, the additional channel card operable to perform a modem function.
43. The electronic spread spectrum communication device recited in Claim
37 further comprising a channel card controller, the controller card operable to enable configuration of portions of the channel card.
44. The electronic spread spectrum communication device recited in Claim 37 further comprising an antenra interface, the antenna interface operable to provide a signal from each of a Dlurality of antennas to the channel card.
45. The electronic spread spectrum communication device recited in Claim 37 further comprising a digital signal processor (DSP) coupled to the channel card.
46. The electronic spread spectrum communication device recited in Claim 37 further comprising a programmable digital signal processor (DSP).
47. The electronic spread spectrum communication device recited in Claim 37 wherein the electronic spread spectrum communication device is a base transceiver station.
48. The electronic spread spectrum communication device recited in Claim
37 wherein the electronic spread spectrum communication device is a cellular handset.
49. The electronic spread spectrum communication device recited in Claim 37 wherein the electronic spread spectrum communication device is a cellular system test platform.
50. The electronic spread spectrum communication device recited in Claim 37 further comprising a base transceiver station cell controller.
51. A computer readable medium containing therein computer readable codes that enable an electronic device to access a computing element architecture, the method comprising: reading an interface architecture, the interface architecture adapted to receive and transmit information from the computing element; reading a local controller architecture, the local controller architecture coupled to the interface architecture, the local controller architecture for autonomously operating the computing element architecture; and reading a satellite kernel architecture, the satellite kernel architecture coupled to the local controller architecture and the interface architecture, the satellite kernel architecture performing a discrete class of operations within a communications application.
52. The computer readable medium recited in Claim 51 wherein the satellite kernel is configurable to perform a specific sub function within the class of sub functions.
53. The computer readable medium recited in Claim 51 wherein the satellite kernel is reconfigurable from a first sub function to perform a second sub function within the discrete class of operations.
54. The computer readable medium recited in Claim 51 wherein the satellite kernel is reconfigurable only within the class of operations.
55. The computer readable medium recited in Claim 51 wherein the satellite kernel architecture includes a plurality of electronic devices for performing arithmetic, logic, and storage operations, the plurality of electronic device coupled to each other and to the local controller architecture in a fixed manner for implementing functions common to the class of operations, the plurality of electronic devices coupled to each other in a reconfigurable manner for implementing functions unique within the class of operations.
56. The computer readable medium recited in Claim 55 wherein the electronic devices are coupled to each other using a reconfigurable logic technique, a reconfigurable datapath technique, a reconfigurable dataflow technique, or a reconfigurable control technique for the discrete class of operations performed by the satellite kernel.
57. The computer readable medium recited in Claim 56 wherein the electronic devices are coupled to each other using a heterogeneous combination of the reconfigurable logic technique, the reconfigurable datapath technique, the reconfigurable dataflow technique, or the reconfigurable control technique.
58. The computer readable medium recited in Claim 54 wherein the reconfigurability of the computing element is established on a temporal basis, a logical basis, or a functional basis.
59. The computer readable medium recited in Claim 51 wherein the class of operations is based upon a desired level of performance for the application.
60. The computer readable medium recited in Claim 51 wherein the discrete operation is an algorithm.
61. The computer readable medium recited in Claim 51 wherein the class of operations is limited to a class of mathematical field operations.
62. The computer readable medium recited in Claim 51 , wherein the application within which the operations are used is a wireless communications application.
63. The computer readable medium recited in Claim 62, wherein the operations used in the wireless communications application include modem operations and codec operations.
64. The computer readable medium recited in Claim 51 , wherein the local controller manages the kernel autonomously from circuitry outside of the computing element.
65. The computer readable medium recited in Claim 51 wherein the satellite kernel includes a computing element at a lower hierarchical level than the satellite kernel.
66. The computing element recited in Claim 55 wherein the satellite kernel includes a plurality of selective interconnects coupling the plurality of electronic devices.
67. A computer readable medium containing therein computer readable codes that enable an electronic device to access an electronic circuit architecture, the method comprising:: reading a first computing element architecture, the first computing element architecture for performing a first discrete operation, or portion thereof, in an application; reading a second computing element architecture for performing a second discrete operation, or portion thereof, in the application; and reading a reconfigurable interconnect coupled to the first computing element and the second computing element, wherein the first computing element, the second computing element, and the reconfigurable interconnect are operable to perform a class of functions within an application.
68. The computer readable medium recited in Claim 67, wherein the first computing element and the second computing element are heterogeneous with respect to each other in terms of programming granularity.
69. The computer readable medium recited in Claim 67 wherein the first computing element and the second computing element are heterogeneous in terms of levels of millions of operations (MOPs) capacity.
70. The computer readable medium recited in Claim 67 wherein the hardware kernel architecture further comprises: a scheduler state machine coupled to the first computing element and to the second configurable element, the scheduler state machine sequencing the first discrete operation of the first computing element and the second discrete operation of the second computing eleme it in parallel or in series to implement the function.
71. The computer readaole medium recited in Claim 67 wherein the reconfigurable interconnect has an uncommitted architecture.
72. The computer readable medium recited in Claim 67 wherein the reconfigurable interconnect has a restricted amount of interconnections between the first computing element and the second computing element, the restricted amount of interconnections proportional to a variation within the class of functions in the application.
73. The computer readable medium recited in Claim 67 wherein the reconfigurable interconnect couples a quantity of input/output lines from the first computing element with a quantity of input/output lines from the second computing element in a manner that is defined by a rule set, the rule set representing a communication processing function.
74. The computer readable medium recited in Claim 67 wherein the reconfigurable interconnect is a programmable bus channel.
75. The computer readable medium recited in Claim 67 wherein the reconfigurable interconnect has a reconfigurable logic configuration.
76. The computer readable medium recited in Claim 67 wherein the reconfigurable interconnect is reconfigurable on a temporal basis, a logical basis, or a functional basis.
77. The electronic device recited in Claim 67 wherein the class of functions is for a modem function in a wireless communication application.
78. The electronic device recited in Claim 68 wherein the class of functions is for a codec function in a wireless communication application.
79. The electronic device recited in Claim 69 wherein the first computing element, the second computing element, and the reconfigurable interconnect are configurable to perform a specific function defined within the class of functions of the application.
80. The electronic device recited in Claim 70 further comprising a plurality of computing elements, wherein each of the plurality of elements have at least one line selectively coupled to the reconfigurable interconnect .
81. The electronic device recited in Claim 79, wherein the class of functions is based upon a level of performance for the application.
82. The electronic device recited in Claim 81 , wherein the level of performance is a symbol-based level of performance.
83. The electronic device recited in Claim 81 , wherein the level of performance is based on millions of operations per second (MOPS).
84. The electronic device recited in Claim 81 , wherein the level of performance is based on a type of mathematics for the application.
85. A method of implementing a design configuration on a configurable electronic device having a plurality of function-specific computing elements, the method comprising the steps of: a) receiving the design configuration at the configurable electronic device; b) determining a radio configuration desired for a channel element to be processed on the configurable electronic device; and c) loading the design configuration software into control registers for the configurable electronic device.
86. The method recited in Claim 85 further comprising the step of: d) loading an OSI software stack in the controller for the configurable electronic device.
87. The method recited in Claim 86 further comprising the step of: d) interfacing the OSI software stack with an application programming software interface (API) to enhance signal processing of reconfigurable electronic device.
88. The method recited in Claim 86 further comprising the step of: d) loading a specific configuration for each channel element into a digital signal processing (DSP).
89. The method recited in Claim 85 wherein steps a) through c) are accomplished dynamically on the configurable electronic device.
90. The method recited in Claim 85 wherein steps a) through c) are accomplished in parallel for time-sharing components of the configurable electronic device.
91. A method of operating a configurable electronic device with function- specific computing elements to communicate with another electronic device, the method comprising the steps of: a) receiving a signal at the configurable electronic device; b) assigning a data pump path for the signal in a configurable modem portion of the configurable electronic device; c) receiving design configuration information for the configurable modem platform that is applicable communicafion protocol for the signal; and d) performing digital signal processing of the data portion of the signal, using the reconfigurable modem platform, wherein the reconfigurable modem platform having a heterogeneous structure.
92. The method recited in Claim 91 further comprising the step of: e) disassembling the signal into a data portion and a control portion using an interface section.
93. The method recited in Claim 91 further comprising the step of: e) synchronizing the reconfigurable modem device with over the air timing.
94. The method recited in Claim 91 further comprising the following steps: e) demuxing the signal processed by the reconfigurable modem platform; and f) transmitting the signal from the modem platform for subsequent processing.
95. The method recited in Claim 91 further comprising the following steps of: e) combining the signals to create composite signals on a per-sector and per- carrier basis using an interface section; and f) formatting the composite signal using the interface section.
96. The method recited in Claim 91 wherein the digital signal processing in step d) includes performing codec funcfions using a reconfigurable codec chip having a heterogeneous structure.
97. The method recited in Claim 91 wherein the digital signal processing in step d) includes performing mociem function using a reconfigurable modem chip having a heterogeneous structure.
98. The method recited in Claim 91 further comprising the steps of: e) assembling payload data with control information; and f) transmitting the payload data and control information to a mobile telephone switching office (MTSO).
PCT/US2001/003069 2000-01-28 2001-01-29 A wireless spread spectrum communication platform using dynamically reconfigurable logic WO2001055866A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001233150A AU2001233150A1 (en) 2000-01-28 2001-01-29 A wireless spread spectrum communication platform using dynamically reconfigurable logic

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17882800P 2000-01-28 2000-01-28
US60/178,828 2000-01-28

Publications (1)

Publication Number Publication Date
WO2001055866A1 true WO2001055866A1 (en) 2001-08-02

Family

ID=22654084

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/US2001/003020 WO2001055864A1 (en) 2000-01-28 2001-01-29 A method of generating a configuration for a configurable spread spectrum communication device
PCT/US2001/003069 WO2001055866A1 (en) 2000-01-28 2001-01-29 A wireless spread spectrum communication platform using dynamically reconfigurable logic

Family Applications Before (1)

Application Number Title Priority Date Filing Date
PCT/US2001/003020 WO2001055864A1 (en) 2000-01-28 2001-01-29 A method of generating a configuration for a configurable spread spectrum communication device

Country Status (6)

Country Link
US (4) US20020031166A1 (en)
JP (1) JP5075313B2 (en)
KR (1) KR100682736B1 (en)
AU (2) AU2001231244A1 (en)
DE (1) DE10195203B3 (en)
WO (2) WO2001055864A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107807547A (en) * 2017-09-22 2018-03-16 上海卫星工程研究所 Satellite service cell controller
CN114442529A (en) * 2022-01-18 2022-05-06 深圳市显控科技股份有限公司 I/O port expansion circuit and industrial control system

Families Citing this family (146)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
DE19651075A1 (en) 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Unit for processing numerical and logical operations, for use in processors (CPU's), multi-computer systems, data flow processors (DFP's), digital signal processors (DSP's) or the like
US6338106B1 (en) * 1996-12-20 2002-01-08 Pact Gmbh I/O and memory bus system for DFPS and units with two or multi-dimensional programmable cell architectures
DE19654595A1 (en) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0 and memory bus system for DFPs as well as building blocks with two- or multi-dimensional programmable cell structures
ATE243390T1 (en) 1996-12-27 2003-07-15 Pact Inf Tech Gmbh METHOD FOR INDEPENDENT DYNAMIC LOADING OF DATA FLOW PROCESSORS (DFPS) AND COMPONENTS WITH TWO- OR MULTI-DIMENSIONAL PROGRAMMABLE CELL STRUCTURES (FPGAS, DPGAS, O.L.)
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
DE19861088A1 (en) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Repairing integrated circuits by replacing subassemblies with substitutes
US6226318B1 (en) * 1998-03-31 2001-05-01 Zenith Electronics Corporation Detection of code vectors in single frequency, multiple transmitter networks
US8230411B1 (en) 1999-06-10 2012-07-24 Martin Vorbach Method for interleaving a program over a plurality of cells
US6484025B1 (en) * 2000-01-07 2002-11-19 Conexant Systems, Inc. Method and apparatus for establishing compatibility between cordless telephone applications and physical hardware of the cordless telephone
US6965960B2 (en) 2000-03-01 2005-11-15 Realtek Semiconductor Corporation xDSL symbol processor and method of operating same
GB2360674A (en) * 2000-03-21 2001-09-26 Inmarsat Ltd Concurrent use of multiple TDMA Protocols
US20010025363A1 (en) * 2000-03-24 2001-09-27 Cary Ussery Designer configurable multi-processor system
US8020176B2 (en) * 2000-04-06 2011-09-13 Infineon Technologies Ag Virtual machine interface for hardware reconfigurable and software programmable processors
EP2226732A3 (en) 2000-06-13 2016-04-06 PACT XPP Technologies AG Cache hierarchy for a multicore processor
US6990548B1 (en) * 2000-06-15 2006-01-24 Hewlett-Packard Development Company, L.P. Methods and arrangements for configuring a printer over a wireless communication link using a wireless communication device
US7233810B2 (en) 2000-08-03 2007-06-19 Infineon Technologies Ag Dynamically reconfigurable universal transmitter system
ATE422739T1 (en) 2000-08-03 2009-02-15 Infineon Technologies Ag FLEXIBLE TDMA SYSTEM ARCHITECTURE
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
DE10052392A1 (en) * 2000-10-20 2002-05-02 Alcatel Sa Base station of a radio-operated communication system
EP2627008A3 (en) * 2000-12-29 2013-09-11 Intel Mobile Communications GmbH Channel codec processor configurable for multiple wireless communications standards
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7142882B2 (en) * 2001-03-09 2006-11-28 Schmidt Dominik J Single chip wireless communication integrated circuit
US7210062B2 (en) * 2001-03-14 2007-04-24 Mercury Computer Systems, Inc. Wireless communications systems and methods for nonvolatile storage of operating parameters for multiple processor based multiple user detection
US6836839B2 (en) 2001-03-22 2004-12-28 Quicksilver Technology, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US7752419B1 (en) 2001-03-22 2010-07-06 Qst Holdings, Llc Method and system for managing hardware resources to implement system functions using an adaptive computing architecture
US7249242B2 (en) 2002-10-28 2007-07-24 Nvidia Corporation Input pipeline registers for a node in an adaptive computing engine
US7653710B2 (en) 2002-06-25 2010-01-26 Qst Holdings, Llc. Hardware task manager
US7962716B2 (en) 2001-03-22 2011-06-14 Qst Holdings, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US7400668B2 (en) * 2001-03-22 2008-07-15 Qst Holdings, Llc Method and system for implementing a system acquisition function for use with a communication device
US6577678B2 (en) 2001-05-08 2003-06-10 Quicksilver Technology Method and system for reconfigurable channel coding
US7245725B1 (en) * 2001-05-17 2007-07-17 Cypress Semiconductor Corp. Dual processor framer
EP1402382B1 (en) 2001-06-20 2010-08-18 Richter, Thomas Data processing method
US20030026237A1 (en) * 2001-08-06 2003-02-06 Mohebbi Behzad Barjesteh Cellular base station architecture with soft partitioning
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
US7187663B2 (en) * 2001-10-09 2007-03-06 Schmidt Dominik J Flexible processing system
US7433389B2 (en) 2001-11-20 2008-10-07 Mediatek Inc. Methods and apparatus for spread spectrum signal processing using a reconfigurable coprocessor
US7046635B2 (en) 2001-11-28 2006-05-16 Quicksilver Technology, Inc. System for authorizing functionality in adaptable hardware devices
US6986021B2 (en) 2001-11-30 2006-01-10 Quick Silver Technology, Inc. Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements
US8412915B2 (en) * 2001-11-30 2013-04-02 Altera Corporation Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements
US7215701B2 (en) 2001-12-12 2007-05-08 Sharad Sambhwani Low I/O bandwidth method and system for implementing detection and identification of scrambling codes
US7403981B2 (en) 2002-01-04 2008-07-22 Quicksilver Technology, Inc. Apparatus and method for adaptive multimedia reception and transmission in communication environments
AU2003208266A1 (en) 2002-01-19 2003-07-30 Pact Xpp Technologies Ag Reconfigurable processor
GB2385498A (en) * 2002-02-13 2003-08-20 Pa Consulting Services Adjustable baseband processing of telecommunications signals
WO2003071432A2 (en) 2002-02-18 2003-08-28 Pact Xpp Technologies Ag Bus systems and method for reconfiguration
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
EP1347581A3 (en) * 2002-03-22 2004-11-17 Kabushiki Kaisha Toshiba Radio communication apparatus and method
TW590340U (en) * 2002-04-15 2004-06-01 Interdigital Tech Corp User equipment capable of operating in both time division duplex and frequency division modes of wideband code division multiple access
US7493375B2 (en) * 2002-04-29 2009-02-17 Qst Holding, Llc Storage and delivery of device features
US7103091B2 (en) * 2002-05-07 2006-09-05 Stmicroelectronics, Inc. Common data path rake receiver for a CDMA demodulator circuit
US7660984B1 (en) 2003-05-13 2010-02-09 Quicksilver Technology Method and system for achieving individualized protected space in an operating system
US7328414B1 (en) 2003-05-13 2008-02-05 Qst Holdings, Llc Method and system for creating and programming an adaptive computing engine
US8090928B2 (en) * 2002-06-28 2012-01-03 Intellectual Ventures I Llc Methods and apparatus for processing scalar and vector instructions
AU2003286131A1 (en) 2002-08-07 2004-03-19 Pact Xpp Technologies Ag Method and device for processing data
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
US8108656B2 (en) 2002-08-29 2012-01-31 Qst Holdings, Llc Task definition for specifying resource requirements
US7394284B2 (en) 2002-09-06 2008-07-01 Pact Xpp Technologies Ag Reconfigurable sequencer structure
KR100504804B1 (en) * 2002-09-28 2005-08-01 엘지전자 주식회사 De-channelization method of wcdma system
US7937591B1 (en) * 2002-10-25 2011-05-03 Qst Holdings, Llc Method and system for providing a device which can be adapted on an ongoing basis
US8276135B2 (en) 2002-11-07 2012-09-25 Qst Holdings Llc Profiling of software and circuit designs utilizing data operation analyses
US8005918B2 (en) 2002-11-12 2011-08-23 Rateze Remote Mgmt. L.L.C. Data storage devices having IP capable partitions
EP1561159A4 (en) 2002-11-12 2007-08-29 Zetera Corp Electrical devices with improved communication
US7649880B2 (en) 2002-11-12 2010-01-19 Mark Adams Systems and methods for deriving storage area commands
US7170890B2 (en) * 2002-12-16 2007-01-30 Zetera Corporation Electrical devices with improved communication
US7372928B1 (en) 2002-11-15 2008-05-13 Cypress Semiconductor Corporation Method and system of cycle slip framing in a deserializer
US7225301B2 (en) 2002-11-22 2007-05-29 Quicksilver Technologies External memory controller node
US7088950B2 (en) 2002-11-26 2006-08-08 Nokia Corporation Method and apparatus for controlling integrated receiver operation in a communications terminal
US7380151B1 (en) 2002-12-11 2008-05-27 National Semiconductor Corporation Apparatus and method for asynchronously clocking the processing of a wireless communication signal by multiple processors
US7016695B1 (en) 2002-12-11 2006-03-21 National Semiconductor Corporation Apparatus and method for processing a deterministic data flow associated with a wireless communication signal
US20040160975A1 (en) * 2003-01-21 2004-08-19 Charles Frank Multicast communication protocols, systems and methods
KR20040083872A (en) * 2003-03-25 2004-10-06 유티스타콤코리아 유한회사 W-CDMA ATM switch
EP1471524A1 (en) * 2003-04-22 2004-10-27 Thomson Licensing S.A. Method for decoding data received from a data source using hardware configuration data received from the same data source
EP1471520A1 (en) * 2003-04-22 2004-10-27 Deutsche Thomson-Brandt Gmbh Method for decoding data received from a data source using hardware configuration data received from the same data source
US20040255230A1 (en) * 2003-06-10 2004-12-16 Inching Chen Configurable decoder
EP1676208A2 (en) 2003-08-28 2006-07-05 PACT XPP Technologies AG Data processing device and method
US7328033B2 (en) * 2003-10-01 2008-02-05 Rappaport Theodore S Wireless network system and method
US8423007B2 (en) * 2004-03-19 2013-04-16 Brightpoint, Inc. Multi-phone programming application
KR100621571B1 (en) * 2004-06-25 2006-09-14 삼성전자주식회사 Apparatus and method for interconnecting networks using different protocols
US7568059B2 (en) * 2004-07-08 2009-07-28 Asocs Ltd. Low-power reconfigurable architecture for simultaneous implementation of distinct communication standards
US7483963B2 (en) * 2004-08-20 2009-01-27 Research In Motion Limited Method and system for configuring a client on host devices by utilizing an interface between a configuration application and host device drivers on a configuring device
US20060095732A1 (en) * 2004-08-30 2006-05-04 Tran Thang M Processes, circuits, devices, and systems for scoreboard and other processor improvements
US7752426B2 (en) * 2004-08-30 2010-07-06 Texas Instruments Incorporated Processes, circuits, devices, and systems for branch prediction and other processor improvements
US7890735B2 (en) * 2004-08-30 2011-02-15 Texas Instruments Incorporated Multi-threading processors, integrated circuit devices, systems, and processes of operation and manufacture
US7328332B2 (en) * 2004-08-30 2008-02-05 Texas Instruments Incorporated Branch prediction and other processor improvements using FIFO for bypassing certain processor pipeline stages
US8612772B1 (en) * 2004-09-10 2013-12-17 Altera Corporation Security core using soft key
US8566616B1 (en) * 2004-09-10 2013-10-22 Altera Corporation Method and apparatus for protecting designs in SRAM-based programmable logic devices and the like
CN101052976A (en) * 2004-11-03 2007-10-10 皇家飞利浦电子股份有限公司 Configuring spectrum agile devices by means of labels storing spektrum opportunity parameters
US7545764B1 (en) 2004-11-19 2009-06-09 Cypress Semiconductor Corporation Synchronized code recognition
KR100594943B1 (en) * 2004-11-30 2006-06-30 리전츠 오브 더 유니버스티 오브 미네소타 Metheod for data modulation and demodulation in SoC
US8408459B1 (en) 2005-01-14 2013-04-02 Brightpoint, Inc. 4PL system and method
US7769912B2 (en) * 2005-02-17 2010-08-03 Samsung Electronics Co., Ltd. Multistandard SDR architecture using context-based operation reconfigurable instruction set processors
US20090327546A1 (en) * 2005-03-03 2009-12-31 Gaby Guri System for and method of hand-off between different communication standards
US7702850B2 (en) 2005-03-14 2010-04-20 Thomas Earl Ludwig Topology independent storage arrays and methods
US8565721B2 (en) 2006-10-20 2013-10-22 T-Mobile Usa, Inc. System and method for rating an IP-based wireless telecommunications based on access point
US7886311B2 (en) 2005-03-29 2011-02-08 Microsoft Corporation Synchronous RIL proxy
US7821974B2 (en) * 2005-03-29 2010-10-26 Microsoft Corporation UMTS RIL extension
US7620981B2 (en) 2005-05-26 2009-11-17 Charles William Frank Virtual devices and virtual bus tunnels, modules and methods
US7797610B1 (en) * 2005-07-19 2010-09-14 Xilinx, Inc. Method and apparatus for virtual quad-port random access memory
US7725609B2 (en) * 2005-08-05 2010-05-25 Qimonda Ag System memory device having a dual port
US7743214B2 (en) * 2005-08-16 2010-06-22 Mark Adams Generating storage system commands
US8819092B2 (en) 2005-08-16 2014-08-26 Rateze Remote Mgmt. L.L.C. Disaggregated resources and access methods
US9270532B2 (en) 2005-10-06 2016-02-23 Rateze Remote Mgmt. L.L.C. Resource command messages and methods
CA2619639C (en) * 2005-10-12 2014-12-30 T-Mobile Usa, Inc. System and method for billing ip-based wireless telecommunications in a converged network
JP4870088B2 (en) * 2005-11-11 2012-02-08 株式会社エヌ・ティ・ティ・ドコモ Mobile communication system, mobile station, base station, and control channel allocation method
US7698543B2 (en) * 2005-11-15 2010-04-13 Microsoft Corporation User interface for specifying desired configurations
EP1974265A1 (en) 2006-01-18 2008-10-01 PACT XPP Technologies AG Hardware definition method
JP4685682B2 (en) * 2006-03-31 2011-05-18 富士通株式会社 Semiconductor device
US7924881B2 (en) 2006-04-10 2011-04-12 Rateze Remote Mgmt. L.L.C. Datagram identifier management
US8755675B2 (en) * 2006-04-20 2014-06-17 Texas Instruments Incorporated Flexible and efficient memory utilization for high bandwidth receivers, integrated circuits, systems, methods and processes of manufacture
US8136102B2 (en) 2006-06-20 2012-03-13 Google Inc. Systems and methods for compiling an application for a parallel-processing computer system
US8375368B2 (en) * 2006-06-20 2013-02-12 Google Inc. Systems and methods for profiling an application running on a parallel-processing computer system
US7814486B2 (en) * 2006-06-20 2010-10-12 Google Inc. Multi-thread runtime system
US8146066B2 (en) 2006-06-20 2012-03-27 Google Inc. Systems and methods for caching compute kernels for an application running on a parallel-processing computer system
US8024708B2 (en) 2006-06-20 2011-09-20 Google Inc. Systems and methods for debugging an application running on a parallel-processing computer system
US8261270B2 (en) 2006-06-20 2012-09-04 Google Inc. Systems and methods for generating reference results using a parallel-processing computer system
US8443348B2 (en) * 2006-06-20 2013-05-14 Google Inc. Application program interface of a parallel-processing computer system that supports multiple programming languages
US8136104B2 (en) 2006-06-20 2012-03-13 Google Inc. Systems and methods for determining compute kernels for an application in a parallel-processing computer system
US8381202B2 (en) * 2006-06-20 2013-02-19 Google Inc. Runtime system for executing an application in a parallel-processing computer system
US8108844B2 (en) 2006-06-20 2012-01-31 Google Inc. Systems and methods for dynamically choosing a processing element for a compute kernel
EP1881661A1 (en) * 2006-07-20 2008-01-23 Abilis Systems Sarl Method and device to process a received analog signal and to extract digital data there from according to a plurality of protocols
US7788471B2 (en) * 2006-09-18 2010-08-31 Freescale Semiconductor, Inc. Data processor and methods thereof
US8351420B2 (en) * 2006-10-23 2013-01-08 T-Mobile Usa, Inc. Maintenance of subscriber history for service support applications in an IP-based telecommunications system
US7786996B2 (en) 2006-10-24 2010-08-31 Sony Corporation System and method for object oriented hardware including cross-point switch interconnecting modules with I/O
US8050708B2 (en) * 2007-04-12 2011-11-01 Harris Corporation Option management in a software-defined radio
US8131387B2 (en) * 2007-08-09 2012-03-06 Teradyne, Inc. Integrated high-efficiency microwave sourcing control process
US20090119441A1 (en) * 2007-11-06 2009-05-07 Hewlett-Packard Development Company, L.P. Heterogeneous Parallel Bus Switch
US20090161647A1 (en) * 2007-12-20 2009-06-25 Russ Mestechkin Td-scdma uplink processing
US8094641B2 (en) * 2007-12-20 2012-01-10 Mediatek Inc. TD-SCDMA uplink processing
US8391267B2 (en) * 2007-12-20 2013-03-05 Mediatek Inc. TD-SCDMA uplink processing for synchronization of signals at base station receiver
US8078326B2 (en) * 2008-09-19 2011-12-13 Johnson Controls Technology Company HVAC system controller configuration
US20110058518A1 (en) * 2009-09-09 2011-03-10 Comtech Ef Data Corp. Multi-Channel Single Carrier Per Channel (SCPC) Systems and Related Methods
EP2526494B1 (en) 2010-01-21 2020-01-15 SVIRAL, Inc. A method and apparatus for a general-purpose, multiple-core system for implementing stream-based computations
RU2010111027A (en) * 2010-03-24 2011-09-27 ЭлЭсАй Корпорейшн (US) DEVICE AND METHOD FOR HIGH-SPEED CALCULATION OF MOVEMENT TABLES FOR MULTIPLE WIRELESS COMMUNICATION STANDARDS
WO2012154612A1 (en) * 2011-05-06 2012-11-15 Xcelemor, Inc. Computing system with hardware scheduled reconfiguration mechanism and method of operation thereof
US8799750B1 (en) * 2011-05-09 2014-08-05 Xilinx, Inc. Convolutional interleaver for bursty memory access
US8693601B2 (en) 2012-01-03 2014-04-08 Intel Corporation Self-correcting multirate filter
CN104124987B (en) * 2013-04-28 2016-06-08 国际商业机器公司 For method and the device of parallel data processing
WO2014190512A1 (en) * 2013-05-29 2014-12-04 华为技术有限公司 Data transmission method, device, apparatus and base station
EP3376691B1 (en) * 2017-03-14 2019-05-08 Rohde & Schwarz GmbH & Co. KG Test device and test method
WO2018195120A1 (en) * 2017-04-17 2018-10-25 Oshea Timothy James Placement and scheduling of radio signal processing dataflow operations
US20230026248A1 (en) * 2021-07-20 2023-01-26 EdgeQ, Inc. Systems and methods for hybrid hardware and software implementation of multiple wireless standards

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5483647A (en) * 1992-12-17 1996-01-09 Bull Hn Information Systems Inc. System for switching between two different operating systems by invoking the server to determine physical conditions to initiate a physical connection transparent to the user
US6058114A (en) * 1996-05-20 2000-05-02 Cisco Systems, Inc. Unified network cell scheduler and flow controller
US6067008A (en) * 1993-05-25 2000-05-23 Intellectual Property Development Associates Of Connecticut, Inc. Methods and apparatus for inputting messages, including advertisements, to a vehicle
US6072490A (en) * 1997-08-15 2000-06-06 International Business Machines Corporation Multi-node user interface component and method thereof for use in accessing a plurality of linked records
US6128639A (en) * 1996-06-28 2000-10-03 Cray Research, Inc. Array address and loop alignment calculations
US6148006A (en) * 1997-11-12 2000-11-14 Nortel Networks Limited Communication system architecture, exchange having a plurality of broadband modems and method of supporting broadband operation on a one to one basis
US6167525A (en) * 1997-02-26 2000-12-26 Pirelli Cavi E Sistemi S.P.A. Method and system for analysis of electric power transmission link status

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4096732A (en) * 1977-08-19 1978-06-27 Springer Barry R Camera testing methods and apparatus
US4481583A (en) * 1981-10-30 1984-11-06 At&T Bell Laboratories Method for distributing resources in a time-shared system
JP3323950B2 (en) * 1992-03-17 2002-09-09 サン・マイクロシステムズ・インコーポレーテッド Method of performing IDCT in a digital image processing system and IDCT processor therefor
AU671781B2 (en) 1993-10-28 1996-09-05 Motorola, Inc. Demodulator logic unit adaptable to multiple data protocols
US5621705A (en) * 1994-05-02 1997-04-15 Colorado Seminary Programmable timing unit for generating multiple coherent timing signals
US5568475A (en) 1994-12-21 1996-10-22 Lucent Technologies Inc. ATM network architecture employing an out-of-band signaling network
US6072994A (en) * 1995-08-31 2000-06-06 Northrop Grumman Corporation Digitally programmable multifunction radio system architecture
US5872810A (en) * 1996-01-26 1999-02-16 Imec Co. Programmable modem apparatus for transmitting and receiving digital data, design method and use method for said modem
US5790880A (en) * 1996-01-04 1998-08-04 Advanced Micro Devices Microprocessor configured to dynamically connect processing elements according to data dependencies
CA2257996A1 (en) * 1996-06-10 1997-12-18 Mark R. Cummings Method and apparatus for compiling one circuit in a sequence of circuits within a programmable gate array
US5907580A (en) * 1996-06-10 1999-05-25 Morphics Technology, Inc Method and apparatus for communicating information
US5940438A (en) * 1997-02-18 1999-08-17 Mitsubishi Electric Information Technology Center America, Inc (Ita) Universal modem for digital video, audio and data communications
US5974049A (en) * 1997-08-29 1999-10-26 International Business Machines Corporation Internet protocol assists for high performance LAN connections
US6026117A (en) * 1997-10-23 2000-02-15 Interdigital Technology Corporation Method and apparatus for generating complex four-phase sequences for a CDMA communication system
WO1999023760A1 (en) * 1997-11-03 1999-05-14 Harris Corporation Receiver for a reconfigurable radio system and method therefor
US6185418B1 (en) * 1997-11-07 2001-02-06 Lucent Technologies Inc. Adaptive digital radio communication system
US5999990A (en) * 1998-05-18 1999-12-07 Motorola, Inc. Communicator having reconfigurable resources
US6237054B1 (en) * 1998-09-14 2001-05-22 Advanced Micro Devices, Inc. Network interface unit including a microcontroller having multiple configurable logic blocks, with a test/program bus for performing a plurality of selected functions
US6052600A (en) * 1998-11-23 2000-04-18 Motorola, Inc. Software programmable radio and method for configuring
US6456611B1 (en) * 1998-12-04 2002-09-24 Nortel Networks Limited CDMA modem using common block architecture
WO2000069086A1 (en) * 1999-05-10 2000-11-16 Sirius Communications N.V. Method and apparatus for high-speed software reconfigurable code division multiple access communication
US6587448B1 (en) * 1999-10-18 2003-07-01 Lucent Technologies Inc. Reconfigurable wireless system base station

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5483647A (en) * 1992-12-17 1996-01-09 Bull Hn Information Systems Inc. System for switching between two different operating systems by invoking the server to determine physical conditions to initiate a physical connection transparent to the user
US6067008A (en) * 1993-05-25 2000-05-23 Intellectual Property Development Associates Of Connecticut, Inc. Methods and apparatus for inputting messages, including advertisements, to a vehicle
US6058114A (en) * 1996-05-20 2000-05-02 Cisco Systems, Inc. Unified network cell scheduler and flow controller
US6128639A (en) * 1996-06-28 2000-10-03 Cray Research, Inc. Array address and loop alignment calculations
US6167525A (en) * 1997-02-26 2000-12-26 Pirelli Cavi E Sistemi S.P.A. Method and system for analysis of electric power transmission link status
US6072490A (en) * 1997-08-15 2000-06-06 International Business Machines Corporation Multi-node user interface component and method thereof for use in accessing a plurality of linked records
US6148006A (en) * 1997-11-12 2000-11-14 Nortel Networks Limited Communication system architecture, exchange having a plurality of broadband modems and method of supporting broadband operation on a one to one basis

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107807547A (en) * 2017-09-22 2018-03-16 上海卫星工程研究所 Satellite service cell controller
CN114442529A (en) * 2022-01-18 2022-05-06 深圳市显控科技股份有限公司 I/O port expansion circuit and industrial control system

Also Published As

Publication number Publication date
JP2003521203A (en) 2003-07-08
DE10195203B3 (en) 2014-01-02
US20020031166A1 (en) 2002-03-14
US6701431B2 (en) 2004-03-02
AU2001231244A1 (en) 2001-08-07
US7254649B2 (en) 2007-08-07
KR20020079813A (en) 2002-10-19
JP5075313B2 (en) 2012-11-21
US20050282534A1 (en) 2005-12-22
KR100682736B1 (en) 2007-02-15
US20060003757A1 (en) 2006-01-05
US20010034227A1 (en) 2001-10-25
DE10195203T1 (en) 2002-12-19
AU2001233150A1 (en) 2001-08-07
WO2001055864A1 (en) 2001-08-02

Similar Documents

Publication Publication Date Title
US7254649B2 (en) Wireless spread spectrum communication platform using dynamically reconfigurable logic
EP1540848B1 (en) Flexible tdma system architecture
US6967999B2 (en) Method and apparatus to support multi standard, multi service base-stations for wireless voice and data networks
US8078703B2 (en) Efficient software download to configurable communication device
US7703107B2 (en) Virtual machine interface for hardware reconfigurable and software programmable processors
Alsolaim et al. Architecture and application of a dynamically reconfigurable hardware array for future mobile communication systems
US7233810B2 (en) Dynamically reconfigurable universal transmitter system
US5867400A (en) Application specific processor and design method for same
US9002998B2 (en) Apparatus and method for adaptive multimedia reception and transmission in communication environments
US8020176B2 (en) Virtual machine interface for hardware reconfigurable and software programmable processors
EP0760128A1 (en) Application specific processor and design method for same
US20030033411A1 (en) Method and apparatus for software-based allocation and scheduling of hardware resources in an electronic device
US7433389B2 (en) Methods and apparatus for spread spectrum signal processing using a reconfigurable coprocessor
WO2001077779A2 (en) Virtual machine interface for hardware reconfigurable and software programmable processors
Chou et al. Adaptive Computing as the
Chou et al. Adaptive Computing as the Enabling Technology for SDR
Srikanteswara et al. Designing soft radios for high data rate systems and integrated global services
Lund et al. Reconfiguration Principles for Adaptive Baseband
Bertini et al. Radio Access Definition Language (RADL): high level language for Software Radio terminal reconfiguration

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP