EP1546864A4 - Virtuelle maschinenschnittstelle f r hardware-umkonfigurierbare und softwareprogrammierbare prozessoren - Google Patents

Virtuelle maschinenschnittstelle f r hardware-umkonfigurierbare und softwareprogrammierbare prozessoren

Info

Publication number
EP1546864A4
EP1546864A4 EP01924750A EP01924750A EP1546864A4 EP 1546864 A4 EP1546864 A4 EP 1546864A4 EP 01924750 A EP01924750 A EP 01924750A EP 01924750 A EP01924750 A EP 01924750A EP 1546864 A4 EP1546864 A4 EP 1546864A4
Authority
EP
European Patent Office
Prior art keywords
software
kernel
searcher
kernels
oriented
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
EP01924750A
Other languages
English (en)
French (fr)
Other versions
EP1546864A2 (de
Inventor
Song Chen
Kenneth M Hesky
Raju R Joag
Joel D Medlock
Christopher C Woodthorpe
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of EP1546864A2 publication Critical patent/EP1546864A2/de
Publication of EP1546864A4 publication Critical patent/EP1546864A4/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/02Arrangements for optimising operational condition
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/08Access point devices

Definitions

  • a CONFIGURABLE ALL-DIGITAL COHERENT DEMODULATOR SYSTEM FOR SPREAD SPECTRUM APPLICATIONS U.S. Patent Application No. 09/751,783, filed 12/29/2000.
  • a WIRELESS SPREAD SPECTRUM COMMUNICATION PLATFORM USING DYNAMICALLY RECONFIGURABLE LOGIC U.S. Patent Application No. 09/772,584, filed January 29, 2001.
  • This invention relates generally to application programming interfaces. More particularly, this invention relates to a virtual machine interface and/or application program interface.
  • a cellular communication system is a wireless communication network in which geographical areas are divided into a number of smaller areas or cells in order to provide scalability of coverage for multiple users with minimal intercell interference.
  • a mobile cellular communication system is a cellular communication network in which the terminal devices (users, mobiles) may be in motion from one location to another relative to a basestation. In a typical digital wireless communication system, multiple basestations are provided to perform switching and connection services between users or terminal devices.
  • FIG. 1 illustrates typical cellular wireless communication system architecture.
  • Basestation 105-1 provides wireless communication system to mobile stations 101 and 103.
  • basestation 105-2 provides wireless communication system to mobile stations 111 and 113.
  • Basestation 105-1 is connected to the basestation 105-2 via network 107.
  • a basestation provides basic connection service to terminal devices by terminating the radio path and connecting the terminal devices to network 107.
  • a mobile station (MS) terminates the radio path on the user side and enables the user to gain access to services from the network.
  • Network 107 typically comprises a mobile switching center (MSC).
  • the MSC is an automatic system that interfaces the user traffic from the wireless network with the wireline network or other wireless networks.
  • the basestations exchange messages with the MSC.
  • TDMA time division multiple access
  • CDMA code division multiple access
  • GSM Global System for Mobile Communication
  • GPRS General Packet Radio Service
  • ECSD Enhanced Circuit Switched Data
  • EDGE Enhanced Data rates for Global Evolution
  • the CDMA protocol is adopted by cdma2000, wideband CDMA (WCDMA), IS-95 CDMA, IS-95B CDMA, CDMA TIA IS2000, TIA IS 2000A, WIMS W-CDMA, ARIB WCDMA, lXtrem, 3GPP-FDD, 3GPP-TDD, TD/SCDMA, as well as several other multi-carrier CDMA systems. Additional 2G and/or 3G CDMA protocols may be found in WDCDMA for UMTS. Holma and Toskala eds., John Wiley & Sons. Inc., New York, (2000); and IS-95 CDMA and cdma2000. Garg ed., Prentice Hall PTR, Upper Saddle River, NJ, (2000).
  • TDMA and CDMA are the most widely used communication protocols, they each have unique system requirements.
  • the prior art has failed to provide a communication system that is capable of supporting several different protocols, including both TDMA and CDMA, in a satisfactory manner.
  • This failure is in part due to the fact that the hardware necessary to support TDMA is typically not compatible with the hardware necessary to support CDMA.
  • typical TDMA systems require maximum likelihood sequence estimation (MLSE) equalization whereas CDMA systems do not.
  • MSE maximum likelihood sequence estimation
  • CDMA systems require RAKE receivers whereas TDMA systems do not.
  • GPS and IS-95 are CDMA protocols
  • GPS and IS-95 have distinctly different hardware requirements.
  • an IS-95 system requires a convolutional decoder whereas GPS does not.
  • substantial expense is required to modify a basestation so that it supports a new communication protocol. Indeed, such a modification requires a complete or partial overhaul of a basestation.
  • the modification of a basestation to support a new communication protocol requires the installation of new equipment as well as significant modification of existing software throughout the network.
  • new terminal devices are required in order to be compatible with the modified basestation.
  • the present invention provides an object-oriented reconfigurable multi-protocol communication system comprising a virtual machine interface (VMI) and an application programming interface (API) for use in a wireless communication network.
  • the wireless communication network includes a reconfigurable wireless network communication apparatus having a plurality of hardware kernels and an interconnect structure.
  • the wireless network communication apparatus is configurable in accordance with a designated communication protocol.
  • the VMI is disposed between an application translation layer and a software virtual machine, and comprises a library of software procedures or objects.
  • the software objects of the VMI are hierarchically related.
  • Software objects of the VMI have static attributes and/or have dynamic attributes.
  • the static attributes are adjustable when the reconfigurable wireless network apparatus, or components thereof, is off-line.
  • the dynamic attributes are adjustable regardless of whether the reconfigurable wireless network apparatus is off-line or on-line.
  • the software objects of the VMI are associated with hardware kernels in the underlying reconfigurable wireless network communication apparatus, so that manipulation of VMI software objects regulate operations in the respective associated hardware kernels of the reconfigurable wireless network communication apparatus. Therefore, by appropriate manipulation or programming of the VMI software objects, a programmer can control essential functionality within the underlying reconfigurable wireless network communication apparatus without delving into the details and specifics of the reconfigurable wireless network communication apparatus.
  • a unique advantage of the present invention is that basestation conversion from one communication protocol to another is possible without expensive hardware changes. Rather, such changes are made by appropriate programming or manipulation of the VMI or API.
  • One embodiment of the invention is directed to CDMA (code division multiple access) applications.
  • the VMI provides the following software objects: a CDMA basestation engine, a searcher, a code generation unit (CGU), a finger, an uplink and a downlink.
  • the reconfigurable wireless network communication apparatus provides a searcher kernel, a CGU kernel, a finger kernel, an uplink kernel and a downlink kernel.
  • Each of these kernels are associated with corresponding software objects within the VMI. For example, a VMI finger object is associated with a finger kernel, a VMI searcher object is associated with a searcher kernel, and so forth.
  • the present invention further provides an application program interface (API) to manage utilization, scheduling, and resource allocation.
  • the API of the present invention comprises a library of higher-level software objects that further abstract the details and specifics of the VMI so that the application programmer can change the communication protocol used by a reconfigurable wireless network communication apparatus using very simple application programs. Indeed, in some embodiments, the API allows a programmer to change the communication protocol used by an apparatus by selecting an option in a simple menu of options. In one embodiment of the present invention, the API provides a standard uniform platform through which the programmer changes the wireless communication protocol used by a reconfigurable wireless network communication apparatus without having to understand the VMI, the details of the underlying hardware of the apparatus, or the requirements and specifications of the selected wireless communication protocol.
  • the API has (i) a parsing routine for parsing an application program that designates a communication protocol and (ii) a machine instruction generation routine for producing machine readable data capable of reconfiguring a wireless network communication apparatus in accordance with a communication protocol designated by the application program.
  • the machine readable data comprise VMI objects.
  • FIG. 1 illustrates a typical wireless communication system architecture
  • FIG. 2 illustrates one embodiment of the invention utilizing a VMI interface between the network and mobile station hardware
  • FIG. 3 illustrates one embodiment of the VMI and the API constructed in accordance with the invention
  • FIG. 4 illustrates one embodiment of VMI 307 software objects in accordance with the present invention
  • FIG. 5 illustrates examples of various VMI objects in accordance with one embodiment of the present invention
  • FIG. 6 illustrates the association between VMI software objects and hardware kernels in accordance with one embodiment of the invention
  • FIG. 7(A) is a flowchart illustrating the processing steps of one embodiment of a VMI software object in accordance with the invention.
  • FIG. 7(B) is a flowchart illustrating the processing steps of an alternate embodiment of a VMI software object in accordance with the invention.
  • FIG. 8 is a flowchart illustrating the instantiation and parameterization of various objects of the VMI to accommodate the system requirements of a communication protocol
  • FIG. 9 is an example of an object instantiation and parameterization routine performed by steps 703-713 of FIG. 7;
  • FIG. 10 is an example of a searcher VMI object receiving various parameters to optimize a search pattern with controlled search throughput
  • FIG. 11 is a flowchart illustrating the processing steps associated with a Fingerjnew object in accordance with one embodiment of the present invention
  • FIG. 12 is a flowchart illustrating the processing steps associated with a
  • FIG. 13 is a flowchart contrasting the layers used by various application programs in accordance with one embodiment of the present invention.
  • FIG. 14 is a flowchart illustrating the processing steps associated with an translation layer in accordance with one embodiment of the present invention.
  • FIG. 15 is a diagram illustrating parameters that are configured in a scan chain binary.
  • Representative reconfigurable wireless network communication apparatuses include, but are not limited to, fixed wireless, unlicenced (FCC) wireless, local area network (LAN), cordless telephony, cellular telephony, personal basestation, and telemetry.
  • FCC unlicenced
  • LAN local area network
  • cordless telephony cellular telephony
  • personal basestation and telemetry.
  • Other applications include navigation, encryption, and other digital data processing applications.
  • the present invention provides an application program interface (API) and a virtual machine interface (VMI) to abstract details of the underlying reconfigurable wireless network communication apparatus so that an application programmer can prepare and modify an application program without requiring knowledge about the configuration, control or management of the underlying communication hardware.
  • API application program interface
  • VMI virtual machine interface
  • the VMI gives a programmer the ability to adapt to the various communication protocols by invoking specific API and VMI software objects or programs without the need to directly program the hardware of the underlying reconfigurable wireless network communication apparatus.
  • a mobile station programmer can program a mobile station so that it communicates using a new or altered communication protocol by use of the VMI and API rather than directly accessing the registers of the mobile station hardware.
  • FIG. 2 illustrates one embodiment of the VMI and API of the present invention in conjunction with a reconfigurable wireless network communication apparatus.
  • basestation 105 communicates with a multi-protocol mobile station 205 via network 203.
  • the hardware of mobile station 205 can be configured to work with various communication protocols by changing the values of configurable parameters of table 207.
  • the underlying hardware is controlled by API/NMI 210.
  • Mobile station 205 has a reconfigurable hardware architecture.
  • the VMI and API of the present invention serves as an interface between the mobile station hardware and network 203 so that application programs can be developed and prepared independently of the details and specifics of mobile station hardware 205.
  • both the VMI and API are implemented as software procedures or objects. It will be apparent to one skilled in the art that in alternate embodiments of the invention, the VMI and API can also be implemented as hardware. For instance, VMI and API implementations can be implemented as logic on a programmable chip.
  • the VMI and API may be used in conjunction with a basestation and its base transceiver station (BTS) engine. Serving as an interface between the BTS engine and network 203, the VMI and API enable the programmer to manipulate the reconfigurable BTS hardware by manipulating the VMI and API instead of directly controlling and modifying the BTS hardware.
  • the BTS hardware comprises multiple hardware kernels, which are configurable into several modes of operation, and parameterizable according to the demands of particular communication protocols such as TDMA and CDMA (code division multiple access).
  • the BTS engine may comprise one or more searchers, fingers, code generation units (CGUs), searcher dwell state machines (DSMs), combiners, uplinks, matched filters, matched filter antennas, downlinks, and transmit multicode channel kernels .
  • Each of these kernels is interconnected by a reconfigurable interconnect structure having flexible bandwidth characteristics.
  • Such a reconfigurable BTS engine is described in U.S. Patent Application No. 09/772,584.
  • the methods of the present invention advantageously regulate the communication protocol(s) used by a base station or mobile
  • the VMI and/or API of the present invention may also be used in conjunction with hardware units other than a mobile station or basestation as long as the underlying hardware unit has a reconfigurable architecture.
  • the VMI and/or API of the present invention may be used with any reconfigurable wireless network communication apparatus.
  • FIG. 3 illustrates one embodiment of the VMI and the API constructed in accordance with the present invention.
  • API 303 is disposed between an application translation layer 305 and an application program 301.
  • VMI 307 is disposed between the application translation layer 305 and a virtual machine layer 309, which, in turn, is connected to a reconfigurable wireless network communication apparatus 311.
  • the reconfigurable wireless network communication apparatus 311 may comprise basestation hardware, mobile station hardware, or any other suitable hardware.
  • API 303 abstracts details and specifics of the lower level functionality and implementation of the communication system from the programmer. Such details and specifics include application translation layer 305, VMI 307, virtual machine 309 and reconfigurable wireless network communication apparatus 311. Thus, the programmer can prepare and modify a program without having to worry about the configuration, control or management of the underlying reconfigurable wireless network communication apparatus.
  • API 303 provides an interface for writing high level programs that are translated by application translation layer 305 into programs that may include VMI commands.
  • the translated programs affect the communication protocol used by reconfigurable wireless network communication apparatus 311.
  • API 303 abstracts information as to the types and numbers of VMI objects necessary to effect a given communication protocol as well as parameter values associated with VMI objects used to implement the given wireless communication protocol.
  • the programmer only has to provide application program 301 with information as to the type of communication protocol of interest.
  • An example of an application program in accordance with the embodiment is provided by illustrative code line 401.
  • the programmer sets the communication protocol for a reconfigurable wireless network communication apparatus to WCDMA.
  • Application programming interface 303 and application translation 305 are not used. Rather, a programmer writes a program in a language such as ANSI C that includes program calls to specific VMI objects. In this way, the programmer is able to modify or change the communication protocol or the usage of a communication protocol by reconfigurable wireless network communication apparatus 311.
  • API 303 provides a communication protocol-independent interface through which the programmer can control and operate the underlying reconfigurable wireless network communication apparatus 311. This convenience makes it possible to standardize the wireless communication architecture because an API can be developed as a uniform, standard platform on which the user can operate and control various wireless communication protocols.
  • VMI 307 abstracts from the user details and specifics of the lower level implementation - virtual machine 309 and reconfigurable wireless network communication apparatus 311.
  • VMI 307 provides a library of software calls for application program 301.
  • VMI 307 contains information as to the types and numbers of objects as well as the parameter values associated with the objects necessary to implement a selected wireless communication protocol.
  • VMI 307 gives the programmer complete access to and control of reconfigurable wireless network communication apparatus 311 without the need to directly control or access the apparatus.
  • VMI 307 when used to implement a CDMA basestation, VMI 307 provides a hierarchical command structure including commands that control mobile and sector allocation of resources of the underlying reconfigurable wireless network communication apparatus 311. VMI 307 also provides commands that control datapath interconnection, as well as hardware kernel parameters.
  • a particular communication protocol is selected, and the application program 301 makes the appropriate calls to software routines of API 303.
  • Application program 301 is then translated by application translation layer 305.
  • the software routines of application translation layer 305 have the information as to the types and numbers of the objects required to perform the particular communication protocol.
  • application program 301 makes calls to necessary software objects of VMI 307.
  • application program 301 makes calls directly to software objects in VMI 307.
  • the programmer can instantiate and use any object available from VMI 307 to perform necessary functions according to the selected communication protocol. After instantiating a particular object, the programmer assigns relevant parameter values to the instantiated objects in accordance with the particular communication protocols selected.
  • virtual machine 309 issues machine readable instructions and commands to the reconfigurable wireless network communication apparatus 311 for execution.
  • virtual machine 309 requires general knowledge and information associated with underlying reconfigurable wireless network communication apparatus 311. Using such knowledge, virtual machine 309 translates the application program into lower level machine code that is required to control the underlying reconfigurable wireless network communication apparatus 311.
  • virtual machine 309 comprises a memory manager, thread scheduler, interpreter, as well as a compiler in order to control and coordinate the performance and execution of the underlying reconfigurable wireless network communication apparatus 311.
  • the reconfigurable wireless network communication apparatus 311 includes a resource allocator that receives and processes instructions and commands from the virtual machine 309 to allocate and reconfigure the necessary hardware resources of the reconfigurable wireless network communication apparatus 311.
  • a resource allocator that receives and processes instructions and commands from the virtual machine 309 to allocate and reconfigure the necessary hardware resources of the reconfigurable wireless network communication apparatus 311.
  • the scheduling and resource allocation of the underlying hardware 311 are transparent to the user.
  • the resource allocation and hardware reconfiguration of the reconfigurable wireless network communication apparatus 311 is described in U.S. Patent Application No. 09/772,584.
  • VMI 307 between virtual machine 309 and any user program is to use the VMI to abstract details and specifics of the underlying hardware, such as registry values.
  • the specifics and details of the underlying reconfigurable wireless network communication apparatus 311 are handled by virtual machine 309.
  • the programmer can instantiate and use the Cellular Basestation Modem Engine (CBME), searcher, CGU, uplink, and matched filter objects available within VMI 307.
  • CBME Cellular Basestation Modem Engine
  • searcher searcher
  • CGU uplink
  • matched filter objects available within VMI 307.
  • the programmer does not have to handle any level lower than VMI 307 in order to program a particular reconfigurable wireless network communication apparatus.
  • the user can control the underlying reconfigurable wireless network communication apparatus 311 by manipulating the objects in VMI 307 instead of directly controlling and accessing the underlying hardware of the reconfigurable wireless network communication apparatus 311.
  • a hardware kernel assigned to reconfigurable wireless network communication apparatus 311 for each instantiated software object of VMI 307.
  • CBME, searcher, CGU, uplink, and matched filter objects are instantiated from VMI 307
  • This relationship between the VMI and the underlying hardware makes it easier for a user to prepare and analyze an application program, and shortens the time for the user to convert from one communication protocol to another. For example, in order to convert from
  • the user instantiates additional objects as necessary, deletes unnecessary objects, and assigns parameter values as appropriate for the new protocol, thereby effectively modifying the underlying reconfigurable wireless network communication apparatus 311.
  • FIG. 4 illustrates one embodiment of VMI 307 constructed in accordance with the present invention.
  • objects in VMI 307 have a hierarchical relationship.
  • the exemplary embodiment of FIG. 4 uses an object-oriented programming technique and provides various objects at different levels of the hierarchy: CDMA basestation modem engine (CBME) 401, uplink 403, searchers 413-1 and 413-2, searcher DSM 421-1 and 421-2, preamble detection engine (PDE) 533, "fingerl” 417-1, “fmger2” 417-2, combiner 411, and Downlink 567 with one or more Tx multicode channels 571.
  • CBME 401 is the highest level object and other objects lower in the hierarchy are associated, directly or indirectly, with CBME 401.
  • each object within VMI 307 may comprise one or more associated functions or objects.
  • Each of the objects within VMI 307 is associated with one or more hardware kernels so that changes in the object affect the state of the associate hardware kernel.
  • each object within VMI 307 is assigned to a unique or different hardware kernel.
  • one of skill in the art will appreciate that many other configurations are possible, including configurations where one or more VMI objects are assigned to the same hardware kernel, or the inverse configuration, in which one or more hardware kernels are assigned to the same VMI object.
  • Each of the software objects illustrated in FIG. 5 will now be described. In this description, both the purpose of the software object and the function of the underlying hardware to which the software object is associated are provided.
  • a cellular basestation modem engine (CBME) kernel is a reconfigurable wireless network communication apparatus which itself is composed of a plurality of kernels to facilitate wireless communication.
  • CBME is a Morphics cellular base transceiver system (BTS).
  • CBME object 401 is a software object within VMI 307 that regulates various aspects of the underlying CBME hardware.
  • CBME object 401 includes associated functions CBMEjtiew 503 and CBME_set_user-data 505.
  • CBME_new 503 is invoked to allocate a new CBME object.
  • CBME_set_user_data 505 is used to write user data to a CBME object.
  • the CBME kernel includes one or more code generation unit (CGU) kernels.
  • the on-chip CGU kernels are object-specific in that each on-chip CGU kernel only works with one type of VMI object.
  • a particular CGU kernel only works with an Uplink 403, Searcher 413, a preamble detection engine antenna object, or a downlink object 567.
  • Illustrative CGU kernels in accordance with various embodiments of the present invention are disclosed in "A configurable code generator system for spread spectrum applications," U.S. Patent Application No. 09/751 ,782, filed 12/29/2000; "Apparatus and method for calculating and implementing a Fibronacci mask for a code generator," U.S. Patent Application No.
  • the CGU unit kernel provides all required codes among a set of standards, including but not limited to IS-95, cdma2000, IS2000, ARIB, and 3GPP. Various codes are generated for both uplink and downlink requirements.
  • CGU kernels contain timing information for a modem and for each individual finger of a RAKE receiver.
  • the CGU contains a mask generation unit, which is used to transform a given code offset into a set of code dependent parameters. Such parameters are used in the reassignment of a code's phase.
  • the output of a CGU kernel is a pseudo-random noise code sequence for the downlink and each RAKE finger.
  • Code generation unit (CGU) object 507 includes functions such as CGUjnew 509 and CGU_set_user_data 511.
  • CGU_new 509 is invoked to allocate a new CGU object 507 and object CGU_set_user_data 511 is used to write user data to a CGU object 507.
  • pilot signal having a known sequence of binary digits to aid in communication of data signals.
  • pilot signals can have a wide variety of codes, as determined by a specific communication protocol. For example, in one protocol a pilot signal has a length of 2 15 (32,768) bits (or chips). This known sequence is referred to as a short pseudonoise (PN) sequence in IS-95 CDMA.
  • PN pseudonoise
  • a searcher kernel is designed to search for new multi-paths by correlating a received code sequence such as a short PN sequence having an unknown phase with a second code sequence that is a locally generated PN sequence with a known phase. Once a searcher kernel finds a multi-path, a finger kernel is assigned to the multipath.
  • Searcher kernels in accordance with the present invention are disclosed in "A Fast Initial Acquisition and Search Device for a Spread Spectrum Communication System," U.S. Patent Application No. 09/751,777, filed 12/29/2000; "A Configurable Multimode Despreader for Spread Spectrum Applications," U.S. Patent Application No. 09/751,785, filed 12/29/2000; "A Configurable All-Digital Coherent Demodulator System For Spread Spectrum Applications," U.S. Patent Application No. 09/751 ,783, filed 12/29/2000.
  • a Searcher object 413 provides a software object for controlling a searcher kernel.
  • a Searcher object 413 is associated with a searcher kernel and thereby processes correlation results, performs peak detection, threshold comparison, and controls a multi-standard multi-dwell search engine.
  • Searcher object class 413 includes Searcher_new 515.
  • Searcher_new 515 When Searcher_new 515 is called by VMI 307, a number of processing steps are automatically performed for the user programmer in order to look for conflicts and to properly initialize resources for the underlying searcher kernel.
  • Use of an object such as Searcherj ⁇ ew 515 is advantageous because it allows the programmer to request a Searcher kernel without painstaking hardware level programming, such as board and chip programming, and conflict management.
  • the processing steps that are performed for the programmer by Searcherjnew 515 in one embodiment in accordance with the present invention are illustrated in FIG. 12.
  • processing steps performed by one embodiment of Searcher_new 515 begin with processing step 1202.
  • processing step 1202 a particular searcher object 413 is identified. All subsequent processing steps either check to determine whether attributes of the searcher 413 identified in step 1202 are in the appropriate state and/or set particular attributes of the searcher 413 identified in processing step 1202.
  • processing step 1204 a check is made to see if error checking is enabled. If error checking is enabled (1204- Yes) then a number of checks are performed. It will be appreciated that the order of many of the checks that are performed is not important. Additionally, one of skill in the art will appreciate that several additional checks that are not disclosed in FIG. 12 could be performed and all such checks are within the scope of the preset invention.
  • searcher 413 that has been obtained by a call to Searcher_new 515 is not dedicated to finding new mobiles (1240-No) the process ends with return error 1240. If the searcher 413 is dedicated to finding new mobiles (1206- Yes) then check 1208 is performed. In processing step 1208, a check is performed to see whether a function call has been made to a routine that sets cellular basestation modem engine (CBME) mobile resources.
  • CBME cellular basestation modem engine
  • CBME 401 (FIG. 4) is not in the appropriate state and the process ends with return error 1240. If the routine has been called (1208-Yes) check 1210 is performed. In check 1210, a determination is made as to whether the time period for the searcher 413 identified in processing step 1202 has been set. Check 1210 returns an error if the time period for the searcher 413 has not been set (1210-No) and the process ends with error condition 1240. If a time period has been set for the searcher 413, the process continues with check 1212. In processing step 1212, a check is made to determine whether the function CGU_new has been called. CGU new 509 allocates a new CGU kernel. Illustrative CGU kernels in accordance with one embodiment of the present invention are disclosed in "A Configurable Code Generator System for spread spectrum applications," U.S. Patent Application No. 09/751 ,782, filed 12/29/2000. If
  • CGU_new 509 has not called (1212-No), the process ends with return error 1240. If a CGU_new 509 has been called (1212- Yes), a determination 1214 is made as to whether the CGU kernel fetched by CGU_new 509 is the right type. In one embodiment of the present invention there are four types of CGU kernels, a searcher CGU, an uplink CGU, a Preamble Detection Engine (PDE) Antenna CGU, and a downlink CGU. Check 1214 will return an error (1214-No; 1240) if the CGU type for Searcher 413 is any type other than a Searcher CGU.
  • PDE Preamble Detection Engine
  • check 1216 is performed to determine whether the CGU fetched by CGUjnew 509 and the Searcher are assigned to the same CBME 401 (FIG. 4). If the CGU and the searcher are not assigned to the same CBME 401 (1240-No) the process ends with error 1240. If the CGU and the searcher are assigned to the same CBME (1240- Yes), the process continues with check 1218. In check 1218, a determination is made as to whether the maximum number of Searchers have already been committed to CBME 401. If the maximum number of Searchers have already been committed to CBME 401
  • FIG. 12 refers to each error code as error 1240, one of skill in the art will appreciate that each error code 1240 could in fact be a unique error code. For example, a different return value for Searcherjnew 515 could be assigned for each different type of error encountered during processing steps 1206 through 1218. Attention now turns to processing steps 1220 through 1238 in FIG. 12. Processing step 1220 is reached if all error checks are performed satisfactorily
  • the searcher type of the searcher is designated as "NEW.”
  • VMI 307 flags Searcher 413 as new using illustrative code line 101.
  • pjsearcher is a pointer to the Searcher 413 identified in processing step 1202 (FIG. 12).
  • Searcher_type is the attribute of "pjsearcher” that tracks the type of "p searcher.” By assigning the attribute "searcher type” to "M_New_Mobile_Searcher,” “pjsearcher” is committed to type NEW.
  • processing step 1222 a CGU is attached to Searcher 413.
  • processing step 1224 an attribute that tracks the number of CGUs that have been attached to the searcher is incremented by " 1 ". In one embodiment in accordance with the present invention, this attribute is associated with the pointer to the CGU that has been associated with pjsearcher and the increment is performed using illustrative code line 102. >
  • p_cgu is a pointer to the CGU 507 that has been attached to pjsearcher
  • pjsearcher is the Searcher 413 identified in processing step 1202.
  • a mobile RAM index is assigned to Searcher 413.
  • a searcher finger context memory (SFCM) element is assigned to Searcher 413.
  • the SFCM element controls the scheduling and attributes of Searcher 413 such as the search window size of the code offset, dwell state number, a phase count for searches greater than Vz chip resolution, and a control flag that is used to start and stop Searcher 413.
  • SFCM element data structures and schemes are possible for controlling Searcher 413 and the associated Searcher kernel and all such data structures and schemes are within the scope of the present invention.
  • processing step 1230 the mobile random access memory (RAM) linear feedback shift register (LFSR) associated with Searcher 413 is zeroed out.
  • processing step 1232 the mobile RAM DSP memory is zeroed.
  • processing step 1234 the attribute that tracks the number of searchers assigned to CBME 401 is incremented by "1".
  • processing step 1236 Searcher 413 is added to the searcher list of CBME 401 using the SFCM element assigned to Searcher 413 as an index.
  • processing step 1236 is performed using illustrative code line 103.
  • processing step 1238 various searcher attributes are initialized. In one embodiment, processing step 1238 is performed using illustrative code lines 104 through 109.
  • the SFCM element that tracks the identity of Searcher 413 is assigned the value of pointer "pjsearcher.”
  • "Pjsearcher” is the pointer to Searcher 413 that was identified in processing step 1202 (FIG. 12).
  • the attribute "active" is set to M_FALSE.
  • virtual machine 309 FIG. 3
  • the attribute "pdpjread” is set to M_TRUE.
  • the power delay profile is a data structure that stores the search results of "pjsearcher.” Setting "pdpjread” to M_TRUE indicates that the most recent searcher results have been read by an application program 301 (FIG. 3). This is appropriate during searcher initialization because "pjsearcher" has in fact never stored search results to the PDP.
  • VMI 307 When “pjsearcher” performs a search at a later time, VMI 307 will set the attribute pdpjread to "M_FALSE" until application program 301 reads the PDP associated with "pjsearcher.”
  • VMI 307 programmer can use VMI 307 to request a Searcher 413 and associated Searcher kernels without need, for instance, to resolve complex hardware conflicts and board level programming.
  • Searcher 413 further includes functions such as Set jsearcher jstaticjattributes 517, Setjsearcher_dynamic jattributes 519, Searcher jstart 521, Searcherjstop 523, and Assign_DSM_tojsearcher 525.
  • Set jsearcher jstaticjattributes 517 is used to set searcher static attributes such as system parameters, antenna data port, and despread mode.
  • the function Setjsearcher_dynamic_attributes 519 is used to set searcher dynamic attributes such as channel type and number.
  • Searcherjstart 521 is used to start a Searcher 413.
  • Searcherjstop 523 is used to stop a Searcher 413.
  • Assign_DSM_to jsearcher 525 is used to assign a searcher DSM to a Searcher 413.
  • Searcher Dwell State Machine 421 Each Searcher 413 must be assigned to a dwell state machine (DSM).
  • a DSM is used to configure the Searcher algorithm.
  • Searcher_DSM 421 includes Searcher DSMjnew 529 and Set_DSM_state jattributes 531.
  • Searcher DSM new 529 is invoked to allocate a new DSM and Set_DSM_state_attributes 531 is used to set the integration length and threshold for a specific state of a searcher_DSM.
  • a searcher VMI object 413 is used to control the corresponding searcher kernel hardware for mobile channels, and a searcher_DSM 421 is used to configure the searcher algorithms. Further details of the searcher hardware kernel are found in U.S. Patent Application No. 09/751,777, filed December 29, 2000.
  • a searcher PDP power delay profile
  • each searcher has one DSM and one PDP.
  • a Preamble Detection Engine (PDE) kernel detects the presence of access bursts from new mobiles.
  • a PDE is associated with one or more antennas.
  • An access burst signal is used by a mobile to attempt access to a basestation, its time of transmission is random.
  • a PDE object 533 is associated with a PDE kernel.
  • the PDE object class 533 includes PDE_new 535, for allocating a new PDE, as well as PDEjaddjantenna 537, for adding an antenna to a PDE 533.
  • a finger kernel is a component of a RAKE receiver kernel.
  • Each finger kernel of the RAKE receiver kernel is used to track an individual multipath signal over time.
  • Multipath signals are caused when the signal emitted from a transmitter "bounces" off an object and arrives at the receiver through an alternate, delayed path.
  • a RAKE receiver kernel is used to collect echos (multipath signals), align them in time, then accumulate the energy to produce the best possible signal strength.
  • Each finger locks onto and tracks a particular multipath signal and demodulates the data associated with the signal for later combining with other multipaths.
  • each finger kernel is required to continually update an estimate of channel quality in order to test for a minimum level of quality across the channel. Further details of finger kernels that are associated with the finger object class 417 of the present invention may be found in U.S. Patent Application No. 09/772,584.
  • a finger object 417 is used to control the corresponding finger kernel.
  • each finger kernel used is associated with a different Finger object 417 using an association process such as the one described below in conjunction with FIG. 11.
  • the fingers can be combined using combiner object 411, or can remain independent.
  • Finger object class 417 includes Finger jnew 541.
  • Finger_new 541 is invoked to allocate a new finger.
  • FIG. 11 is a flowchart that illustrates one embodiment of Fingerjnew 541 in accordance with the present invention. The process begins at start 1102. In processing step 1104 a query is made as to whether error checking is to be performed. If error checking is to be performed (1104- Yes), a number of checks are performed before associating a new finger with a CBME.
  • VMI 307 determines whether an instance of CBMEjnew 503 has been called.
  • the purpose of CBME_new 503 is to create a CDMA basestation modem engine object 401.
  • check 1106 insures that fingers are not allocated to a nonexistent CDMA basestation modem engine object 401.
  • VMI 307 determines whether CBMEjset_mobile_resources has been called.
  • CBME jset_mobile_resoures configures the CDMA basestation modem engine object 401 for (a) the number of mobiles that can be supported and (b) the tracking finger block size for each mobile.
  • CBMEjset mobile resoures is called by VMI 307 after calling CBME_get_resource_attributes, which returns the maximum number of fingers (max_fingers) that may be associated with the CBME as well as the maximum number of tracking fingers supported by the CBME at its input clock rate. Using max_fingers, a determination can be made, based on system requirements, on how many mobiles to support, and for each mobile, what will be the initial number of tracking fingers available to it. By barring allocation of a finger unless
  • CBMEjset_mobile_resources been called (1108-No; 1140)
  • check 1108 insures that fingers are not allocated to a CDMA basestation modem engine object that has not been properly initialized.
  • CBME_set_mobile_resources and CBME_get_resource attributes have been called, the CBME is properly initialized. Therefore, the maximum number of fingers that may be associated with the CBME is determined. Check 1110 insures that this maximum is not exceeded. If a request is made to associate a finger to a CBME that already has the maximum number of fingers associated with it (1110- Yes), an error code 1140 is returned.
  • processing step 1120 If error checking is disabled (1104-No) or all error checks are satisfied (1106-Yes; 1108-Yes; 1110-No), then normal processing steps 1120 through 1126 are performed by Finger new 541.
  • processing step 1120 the CBME finger count is incremented. The CBME finger count tracks the number of fingers that have been associated with the CBME.
  • processing step 1122 the finger that is to be associated with the CBME ("parent CBME") is set a known default state. In one embodiment, processing step 1122 resets the state of the finger in accordance with lines (201) through (206) of the following exemplary code.
  • p_finger represents the finger that will ultimately be associated with the parent CBME in processing step 1126 (FIG. 11).
  • the entire finger kernel is zeroed.
  • the attribute "legal_static_attrib” is set to indicate that the finger kernel does not yet have a legal set of static or dynamic attribute data.
  • the attribute "toa_delay_valid” is set to "M_FALSE" to indicate that the fmger kernel does not have a valid time of arrival delay.
  • the attribute "state” is set to "M_FINGER_STOPPED" to indicate that the finger kernel is not running.
  • the attribute "p_comb” is set to "NULL” to indicate that the finger object 417 has not been added to a combiner.
  • the attribute "new_finger_called” is set to "M_FALSE” to indicate that a new finger has not been called.
  • the attribute " new_finger_called” is set to "M TRUE” to indicate that a new finger has been called.
  • processing step 1126 the finger object 417 is associated with a parent CBME.
  • processing step 1126 is performed by setting an attribute termed "p_cbme” to the address of the parent p_cbme. Such a command could be performed using line (207) of the exemplary code.
  • Exemplary code line (207) causes finger object 417 to become associated with CBME object 401.
  • exemplary code line 207 causes the finger kernel associated with p_f ⁇ nger (Finger 417) to become associated with the combiner kernel associated with p_cbme (CBME 401).
  • the Finger object class 417 further includes Finger_setjstaticjattributes 543, Finger_set_dynamic attributes 545, Fingerjstart 547, and Fingerjstop 549.
  • Set_fmger_dynamic_attributes 545 are used to set static and dynamic attributes for a finger, respectively.
  • Fingerjstart 547 and Fingerjstop 549 are used to start and stop a finger object 417, respectively.
  • a combiner kernel combines the outputs of one or more finger kernels and sums them in accordance with a combining rule.
  • a combiner kernel is associated with one to sixteen finger kernels.
  • each finger kernel is assumed to track a single multi-path and a set of finger kernels are set up for combining using VMI 307 (Fig. 3).
  • each finger kernel provides an estimate of instantaneous channel energy and each is selected for combining based on a sufficiently large SIR. In one embodiment, the largest and smallest instantaneous estimate is recorded for each finger kernel over a window of size K. The finger kernel is selected for combining if the following condition is true:
  • S over-bar is the energy estimate and ⁇ noise and ⁇ rake are design parameters.
  • Combiner objects 411 are used to combine the outputs of one or more fingers based on a combining rule.
  • a combiner object can be associated with 1 to N fingers.
  • the Combiner object class 411 includes Combiner iew 553, which is used to allocate a new combiner for a CBME 401.
  • the Combiner object class 411 also includes Add_finger_to_combiner 555 and Remove_finger_from_combiner 557 which are respectively used to add a finger 417 to or remove a finger 417 from a Combiner object 411.
  • the Combiner object class 411 also includes Combiner jstart 559 and Combiner jstop 561, which are respectively used to start and stop a Combiner object 411.
  • logical channels include the control and traffic channels.
  • the traffic channels are used to carry user information, along with signaling traffic, between the basestation and the mobile station.
  • the control channels comprise downlink channels and uplink channels. Accordingly, VMI 307 provides an uplink object 403 and a downlink object 567.
  • Uplink object 403 is used to group Combiners 411 along with their respective attached Fingers 417 as well as Searchers 413 that are common to a mobile uplink. Typically, Combiners 411 and Searchers 413 are added to an Uplink. In some embodiments of VMI 307, there is no limit to the number of Uplink objects 403 that can be declared.
  • Uplink object class 403 includes Uplink_new 565, which is used to allocate a new uplink.
  • Downlink object class 567 includes Downlink j ⁇ ew 569, which is used to allocate a new downlink.
  • Tx Multicode Channel 571 Transmit multicode channel object 571 includes MTX iew 573. MTXjnew
  • 573 is used to allocate a Transmitter channel.
  • objects Set jsearcher jstaticjattributes 517 and Set_finger jstaticjattributes 543 are called to set static attributes when the underlying hardware is not running or is off-line.
  • static attributes of a searcher object may be set by calling Set jsearcher jstaticjattributes 517 upon a power-up or reboot of the system or if the pertinent objects are not running.
  • objects Set_finger_dynamic jattributes 545 and Setjsearcher_dynamic jattributes 519 are called regardless of whether the underlying hardware is running or not, allowing the dynamic attributes to be set "on the fly.”
  • VMI 307 includes additional software objects such as a matched filter.
  • the matched filter VMI object is used to control the corresponding matched filter kernel.
  • the matched filter is a faster version of a searcher kernel, but the matched filter kernel is not as configurable as the searcher kernel.
  • the matched filter is used when the underlying reconfigurable wireless network communication apparatus 311 (FIG. 3) is configured for 3 GPP mode.
  • a matched filter may be used in either a multi-standard CDMA traffic channel receiver or a RACH-type receiver (3 GPP) and both coherent and noncoherent accumulation modes are allowed.
  • searcher and finger objects may be combined to form a single object.
  • searcher and finger may be further divided into multiple objects.
  • the VMI of the present invention is designed to synchronize respective hardware kernels with corresponding software objects so that a manipulation of VMI objects within the VMI causes an analogous change in the hardware.
  • each software object has one or more corresponding hardware components in the underlying hardware CBME.
  • CBME 401 corresponds to and controls a CBME (CDMA BTS engine).
  • Uplink 403 corresponds to and controls the uplink hardware components and searcher 413 corresponds to and controls a hardware searcher in the CBME.
  • one hardware kernel is configured to support multiple counterpart software objects in a time-sliced fashion.
  • one hardware searcher kernel may support many software searcher objects if the latter can be serviced by the hardware kernel in a time multiplexed fashion.
  • FIG. 6 illustrates the relationship between software objects and counterpart hardware kernels in accordance with one aspect of the present invention.
  • the programmer instantiates the following objects from the VMI library: searcherl 601, searcher2 603, CGU 605, combiner 607, matched filter 609, "fingerl” 611, and "finger2" 613 in order to enable a particular communication protocol.
  • the hardware configures the following kernels: searcher 615, CGU 617, combiner 619, matched filter 621, and finger 623.
  • FIG. 6 illustrates, there is a hierarchical relationship among VMI objects in one embodiment of the present invention.
  • hardware kernels, 615, 617, 619, 621 and 623 are coupled to each other via a reconfigurable interconnect 625.
  • the CGU 605, combiner 607, and matched filter 609 are each supported by hardware counterparts: CGU 617, combiner 619 and matched filter 621.
  • searcher objects 601 and 603 are supported by a single searcher kernel 615.
  • Such single-kernel-to-multiple-object correspondence is possible if searcher objects 601 and 603 can be serviced by the single searcher kernel 615 in a time multiplexed fashion.
  • the VMI objects illustrated in FIG. 6 are designed to synchronize the corresponding hardware kernels so that a manipulation of the VMI objects causes an analogous change in the hardware components. For example, if the user changes a parameter in a searcher object 601, for instance the sub-chip resolution value of the searcher object 601, that change will be reflected in the corresponding hardware kernel 615 within the appropriate time interval.
  • VMI objects can be instantiated, parameterized and reconfigured to accommodate and adapt to the unique requirements of various communication protocols. For example, when a CDMA protocol is used, a MPSK (multiple phase shift keying) demodulator object, a convolutional decoder object, and a rake receiver object are instantiated and parameterized to configure the corresponding hardware modules. On the other hand, when a TDMA protocol is used, an MPSK demodulator object, a convolutional decoder object, and an MLSE equalization object are instantiated and parameterized according to TDMA system specifications.
  • MPSK multiple phase shift keying
  • FIG. 7(A) is a flowchart illustrating one embodiment of a VMI software object in accordance with the invention.
  • an object for example a searcher object, allocates hardware resources of the reconfigurable wireless network communication apparatus 311 for implementing a searcher hardware kernel(s).
  • hardware memory resources and processing resources are secured and allocated to implement a searcher.
  • the object configures hardware resources allocated in step 701 to perform a function such as a searcher function.
  • the VMI software object generates and communicates messages to virtual machine 309 that incorporate information regarding allocation and configuration of the hardware resources performed in steps 701 and 703. The information regarding the allocation and configuration can be translated by the virtual machine 309 into machine-readable instructions and relayed to the reconfigurable wireless network communication apparatus 311.
  • the resource allocation and configuration are performed in steps 701 and
  • FIG. 7(B) is a flowchart illustrating an alternate embodiment of a VMI software object in accordance with the invention.
  • the flowchart in FIG. 7(B) represents a VMI software object that is protocol-dependent, i.e., one that requires protocol-specific information.
  • the steps performed in FIG. 7(B) are similar to the steps in FIG. 7(A) except for step 707.
  • the software object obtains protocol-specific information downloaded via a scan chain. The protocol-specific information is used to initialize the state of the reconfigurable wireless network communication apparatus 311.
  • a transmitter VMI object needs information as to what type of communication protocol is desired.
  • the transmitter VMI object obtains relevant information in step 707 in order to allocate and configure hardware resources in steps 709 and 711.
  • the VMI object generates and communicates messages to virtual machine 309 that incorporate information regarding allocation and configuration of the hardware resources performed in steps 709 and 711.
  • the information regarding the allocation and configuration can then be translated by the virtual machine 309 into machine-readable instructions and relayed to the reconfigurable wireless network communication apparatus 311.
  • FIG. 8 is a flowchart illustrating the instantiation and parameterization of various objects of the VMI to accommodate the system requirements of a communication protocol.
  • a program selects a communication protocol.
  • an initialization of the system may be performed prior to step 801.
  • Different embodiments may be used to initialize the system.
  • a scan chain technique is used to download initialization information into the reconfigurable wireless network communication apparatus. For example, if a CDMA communication protocol is used, CDMA-related data and parameters are downloaded into the memory of the reconfigurable wireless network communication apparatus 311 or into any memory device that the software virtual machine interface 307 can access.
  • the scan chain technique is well-known in the art, and not described in detail so as not to obscure important aspects of the present invention.
  • step 803 the programmer determines what objects to instantiate and use for the protocol determined in step 801.
  • step 805 the programmer instantiates an object, and continues until all necessary objects have been instantiated.
  • step 809 the programmer parameterizes each object instantiated according to the system specification of the protocol. When the parameterization is complete in step 811, the programmer continues to the next task.
  • the programmer may combine instantiation and parameterization in step 805.
  • the programmer may instantiate and parameterize each object in step 805, instead of performing a separate parameterization step in 809.
  • the present invention provides the ability to instantiate different VMI objects in steps 805 through 807 and to give different parameters to the instantiated objects in steps 809 through 811 in order to accommodate different protocols.
  • VMI objects control and coordinate functions of the corresponding hardware kernels in order to perform a given task. Reconfiguration and parameterization of corresponding hardware kernels are described in U.S. Patent Application No. 09/772,584.
  • FIG. 9 is an example of an object instantiation and parameterization routine performed by steps 803-811.
  • One or more CBME objects can be instantiated, provided there is one physical CBME hardware counterpart for every software CBME object.
  • a CBME object is created in step 901 by calling object GBME_new 503.
  • a new searcher object is created in step 903 by object Searcher iew 515.
  • the new searcher is parameterized by setting its static and dynamic attributes with object Setjsearcherjstatic attributes 517 as well as Setjsearcher_dynamic_attributes 519.
  • an uplink object is created by calling object Uplink _new 565. It will be apparent to one skilled in the art that other objects may be instantiated and parameterized in a similar fashion.
  • FIG. 10 is an example of a VMI searcher object 413 receiving various parameters to optimize a search pattern with controlled search throughput.
  • the programmer specifies the following parameters: the number of searchers, window size of searchers, sub-chip resolution for searchers, starting offset for searchers, and code generation parameters (1001).
  • the system may construct a single fast searcher, many slower searchers, or any combination thereof.
  • Block 1003 illustrates an abstraction of a searcher object.
  • a searcher can be optimized in different ways. For example, in order to minimize dropped phone calls in a wireless terminal application, a programmer may decide to allocate the majority of search resources to detecting new multi-paths for existing calls at the expense of detecting new calls.
  • the present invention allows such dynamic reallocation of search resources and parameterization at 1005 and 1007, performed by a searcher VMI object. For example, at a peak number of callers, the searchers can be prioritized for minimum dropped calls whereas at a lower number of callers, the searchers can be prioritized to minimize the detection time of new callers.
  • blocks 1003 through 1009 are implemented by a VMI searcher object 413.
  • Hardware/software interface 1009 provides an interface between the VMI searcher object 413 and BTS modem 1011.
  • a CBME 401 is created, a searcher 413 is created and associated with the CBME and then the searcher is started.
  • cgu_index cgu_list.cgujattributes[i].cgu_index;
  • CBME_Set_Searcher_Energy_Scaling(p_cbme, (360 M_SEARCHER_SCALE_19_8); (361 stat
  • Searcher_New(p_cbme, pjsearcher, (364 M_EXISTING_MOBILE_SEARCHER, NULL); (365 stat
  • Step 1 (lines 301 - 311)
  • Step 1 the procedure "DFS_Pre_Simulation_Hook” is defined. This procedure will create a CBME 401 and start a searcher 413. Further, in lines 301 through 311, various variables that are used by the procedure are defined. Finally, a file for writing out a power delay profile (PDP) is opened.
  • PDP power delay profile
  • Step 2 (lines 313 - 316) VMI 307 object CBME_new 503 is used create a CBME 401.
  • the mobile resources for the newly created CBME 401 are defined using the VMI 307 object CBMEjset_mobile_resources.
  • Step 3 (lines 317 - 318)
  • the VMI 307 object CBME_Perform_Self_Tests is executed to test the newly created CBME 401.
  • Step 4 (lines 319 - 334) VMI 307 objects are used to obtain a code generation unit 507 for an uplink.
  • the list of possible CGUs available is obtained.
  • a check is performed to insure that the CGU has the object type "M_UPLINK_CGU.”
  • a CGU having this attribute is found, it is initialized and assigned to the newly created CBME 401 using the VMI 307 object CGU iew 509.
  • Step 5 (lines 335 - 337) An uplink 403 is associated with the newly created CBME 401 using VMI 307 object Uplink new 565.
  • Step 6 (lines 338 - 342) A Combiner 411 is assigned to the newly created
  • Step 7 (lines 343 - 357) VMI 307 objects FingerjNew 541,
  • num_finger fingers can be created, added to the newly created CBME 401 and set to an appropriate position. In one embodiment, the value of num finger is set to "1" so that only one finger is added during step 7.
  • Step 8 (lines 358 - 367) A searcher is defined.
  • the VMI 307 object CBME_Setjsearcher_energyjscaling is run. Internally, CBME 401 generates a 32-bit search result value. However, in some embodiments of the present invention, only 12 bits are reported to the microprocessor.
  • CBME_setjsearcher_energy_scaling sets the range of energy bits to report to the microprocessor.
  • the VMI 307 object CBME_Set_Search_Time_Period is executed. This function sets the search period for all searchers under a CBME 401. The search period is nominally 50 milliseconds and is defined by the following formula:
  • timer_constant (mput_chipping_rate * search_period) / 256
  • the minimum duration for the timer setting should be such that it does not restart a new search before the completion of the previous search.
  • the VMI 307 command Searcher jNew 515 is used to assign a Searcher to the newly created CBME 401 and the static attributes of the searcher are defined using VMI 307 object Searcher _set_existing_mobilejstatic_ attributes.
  • the Searcher is set up as an 'existing mobile' searcher the following conditions must be satisfied before a Searcher is started: (i) Searcher jset existing_mobile jstaticjattributes must be called, (ii) the Searcher 413 must be added to an uplink 403, and (iii) a Combiner 411, with at least one Finger 417 must have been added to uplink 403 and the Combiner 411 must have been started.
  • Step 9 (lines 368 - 392)
  • a Searcher DSM 421 is created and assigned to the Searcher.
  • VMI 307 objects a Searcher DSM 421 is created and assigned to a Searcher in three stages (i) setting up the Searcher DSM 421 (lines 368 - 378), (ii) setting up the state of Searcher DSM 421 (lines 379 - 387), and (iii) assigning the Searcher DSM 421 to the Searcher 413 (lines 388-390). More specifically, in order to set up a Searcher DSM 421, the VMI 307 object CBME_set_DSM_subchip_phase is used to configure the DSM subchip phase.
  • the VMI 307 object SearcherJDSMjnew is used to obtain a searcher DSM 421 on lines 376 and 377 of the illustrative code.
  • Each state of the Searcher DSM 421 is then set up using the VMI 307 object Searcher_DSMjsetjstate attributes on lines 382 through 386 of the illustrative code.
  • the Searcher DSM is assigned to the searcher 413 that was defined in step 8. Further, in lined 392 of the illustrative code, the Searcher 413 is added to the Uplink 403 that was associated in step 5 with the newly created CBME 401.
  • Step 10 (lines 393-396)
  • Searcher 413 is started with VMI 307 object Searcherjstart 521.
  • the process ends on line 396 of the illustrative code with a return to the calling function.
  • VMI virtual machine interface
  • VMI 307 of the present invention facilitates the rapid adaptation of a reconfigurable wireless network communication apparatus from supporting one communication protocol, such as CDMA, to supporting another communication protocol, such as a different form of CDMA or, indeed, even TDMA.
  • the VMI 307 of the present invention is an example of an approach to providing high level programming support for a reconfigurable wireless network communication apparatus. Such high level programming frees a programmer from the intricacies of setting the appropriate state for each of the hardware kernels as otherwise necessary to support a given communication protocol. Referring to FIG. 13, a programmer uses VMI 307 by writing Application programs 1304 which include VMI function calls.
  • Application programs 1302 are in general higher level programs for configuring an apparatus 311 than Application programs 1304.
  • Application translation mechanism 1306 translates Application program 1302 into a language recognize by virtual machine 309.
  • Application Translation 1306 translates Application program 1302 into instructions that are recognized directly by reconfigurable wireless network communication apparatus 311 and a virtual machine 309 is not used.
  • Application Translation translates Application program 1032 into instructions that include VMI instructions.
  • Application program 1302 uses a limited instruction set to reconfigure the communication protocol used by the associated reconfigurable wireless network communication apparatus 311.
  • a representative Application program 1302 that requests a mobile to communicate using wideband CDMA (WCDMA) protocol has the form of illustrative code line 401 :
  • a comparison of illustrative code lines 301 through 396, which represents a program of format 1304 (FIG. 13), to the program represented by illustrative code line 401, which represents a program of format 1302, provides one example of how usage of an application translation 1306 layer can be used to simplify the task of a programmer who is reconfiguring a reconfigurable wireless network communication apparatus 311 to support a different communication protocol.
  • FIG. 13 distinguishes between an Application program 1302 and 1304, the present invention contemplates any number of variants of Application program * 1302 and 1304.
  • Application translation 1306 uses VMI objects 307 as well as a scan chain binary to support an Application program 1302.
  • Application translation 1306 uses VMI objects 307 and does not use a scan chain binary.
  • FIGS. 14 and 15 details the processing steps that are performed in response to the execution of an Application program 1302 such as the one provided by illustrative code line 401 above.
  • processing step 1402 application translation 1306 allocates a CBME object 401 using a software routine such as CBME_new 503.
  • processing step 1404 the RAM scan chain is sent to the basestation using a VMI 307 software routine such as CBMEjscan_chain_write.
  • Processing step 1404 is used to initialize a number of on-board CBME RAMs within the basestation. Each of these RAMs can be of a different bit width and word depth.
  • the RAM CBME scan chain is separated from writing from other scan chains because writing from the RAM scan chain corrupts the data from other scan chains.
  • processing step 1406 all other scan chains are written to the CBME.
  • CBME Config Tools 1514 are used to write a scan chain binary 1516 based on appropriate parameterization of ⁇ DSP parameters 1502, DLL early/late settings 1504, ⁇ DSP code 1506, types of code generation 1508, slot formats 1510, and antenna modes 1512.
  • Scan chain binary 1516 therefore consists of microcode for CBME processor elements and parameters for CBME RAM which set items such as decimator taps, interpolator taps, DLL taps, DLL microcode, rate selection, PDE vs. FHT, bypass decimator mode selection, enable/disable TFCI input, PDEs antenna selection, CGU polynomials, and CGU microcode as well as many other hardware settings.
  • processing step 1408 the resources available within reconfigurable wireless network apparatus are determined using a querying routine such as VMI 307 object CBMEjGet_Resource_Attributes.
  • Processing step 1408 will return the maximum number of fingers available to CBME 401 at the input clock rate supplied by the basestation.
  • processing step 1410 a determination is made on how many mobiles to support. This decision is based on the number of fingers available to CBME 401 that was calculated in processing step 1408. Further, in processing step 1410, for each mobile that will be supported by CBME 401, a decision is made on the initial number of tracking fingers available to the mobile.
  • processing step 1410 is executed using VMI 307 object CBME_set mobile jresources.
  • the search periodicity of each searcher that will support CBME 401 is set using a routine such as VMI 307 object
  • the energy range limits that each searcher will be allowed to report is defined using a routine such as VMI 307 object CBME jset jsearcher jenergyjscaling.
  • the subchip phase of the searcher DSM associated with each searcher that will support the CBME is set using a routine such as VMI 307 object CBMEjset_DSMjsubchi ⁇ phase.
  • PDE Preamble Detection Engine
  • the VMI 307 function CBME_Set_PDE_Num_Slots configures the total number of access slots for the specific communication standard requested by application program 1302 (FIG. 13) as well as the number of PDE time slots.
  • the number of CGUs that are available in the basestation is obtained using a command such as VMI 307 object CBME_get__CGU_list.
  • the list of downlink slot formats that are available on the CBME is retrieved.
  • the list of multiplexed transmission fields available within the basestation is retrieved using a routine such as VMI 307 object CBME_get_downlink_field_list.
  • the uplink slot formats that are available are retrieved using a routine such as VMI 307 object CBME_get_uplink_slot_format_list.
  • the VMI of the present invention may be implemented in conjunction with any suitable operating system: real time operating system (RTOS) or non-RTOS.
  • RTOS real time operating system
  • non-RTOS any suitable operating system
  • RTOS real time operating system
  • any preemptive, multi-tasking operating system that supports counting semaphores may be used to support the VMI.
  • non-RTOS integrated with the VMI of the present invention is a round robin based operating system.
  • VMI 307 may be used not only for changing or modifying the attributes of one or more communication protocols used by a basestations, but in fact, the communication protocol used by any reconfigurable wireless network communication apparatus including a mobile. Accordingly, in such alternative embodiments, parameters within the CBME object 401 may be modified, added or deleted in order to adopt to the specific hardware attributes of a particular reconfigurable wireless network communication apparatus. While VMI 307 objects were typically referred to as objects such as those found in an object oriented language, it will be appreciated that this representation serves merely as an example.
  • the VMI 307 software objects (objects) of the present invention are objects, object classes, sets of objects, sets of object classes, procedures, sets of procedures, functions, or sets of functions. What is common to all VMI 307 software objects of the present invention is that they run to a completed state when called. This feature is advantageous because it allow the software VMI 307 objects of the present invention to be operated in an operation system free environment.
  • a completed state is includes both a successful operation, such as the acquisition of a finger kernel by Finger new 541, or an error code upon failure to achieve a task.
  • a VMI and API have been described in conjunction with a reconfigurable wireless network communication apparatus. Unlike conventional wireless communication apparatuses, the present invention provides a flexible and efficient platform that can easily adapt to various wireless communication protocols. Also, the VMI and API of the present invention abstract the details and specifics of the underlying communication hardware so that a programmer can prepare an application program without having to change or know the specific configuration requirements of the underlying hardware.
  • the VMI of the present invention provides a programmer interface to the underlying CBME hardware kernel, providing reconf ⁇ gurability and flexibility necessary to take advantage of the reconfigurability and flexibility of the underlying CBME kernel.
  • the VMI of the present invention synchronizes the hardware kernels, which comprise the CBME, with corresponding software objects so that a manipulation of the VMI objects causes an analogous change in the hardware.
  • each software object has one or more corresponding hardware components in the underlying hardware CBME.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)
EP01924750A 2000-04-06 2001-04-05 Virtuelle maschinenschnittstelle f r hardware-umkonfigurierbare und softwareprogrammierbare prozessoren Withdrawn EP1546864A4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US19509600P 2000-04-06 2000-04-06
US195096P 2000-04-06
PCT/US2001/011184 WO2001077779A2 (en) 2000-04-06 2001-04-05 Virtual machine interface for hardware reconfigurable and software programmable processors

Publications (2)

Publication Number Publication Date
EP1546864A2 EP1546864A2 (de) 2005-06-29
EP1546864A4 true EP1546864A4 (de) 2005-12-28

Family

ID=22720034

Family Applications (1)

Application Number Title Priority Date Filing Date
EP01924750A Withdrawn EP1546864A4 (de) 2000-04-06 2001-04-05 Virtuelle maschinenschnittstelle f r hardware-umkonfigurierbare und softwareprogrammierbare prozessoren

Country Status (3)

Country Link
EP (1) EP1546864A4 (de)
AU (1) AU2001251375A1 (de)
WO (1) WO2001077779A2 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7088950B2 (en) 2002-11-26 2006-08-08 Nokia Corporation Method and apparatus for controlling integrated receiver operation in a communications terminal
US7917130B1 (en) 2003-03-21 2011-03-29 Stratosaudio, Inc. Broadcast response method and system
KR100548414B1 (ko) 2003-10-09 2006-02-02 엘지전자 주식회사 트리플 모드 기능을 구비한 이동통신단말기
EP2223556B1 (de) * 2007-12-05 2016-04-27 Telefonaktiebolaget LM Ericsson (publ) Vergabe von betriebsmitteln an betreiber eines gemeinsam benutzten spektrums
WO2009079417A1 (en) 2007-12-14 2009-06-25 Stratosaudio, Inc. Systems and methods for scheduling interactive media and events
US20090177736A1 (en) 2007-12-14 2009-07-09 Christensen Kelly M Systems and methods for outputting updated media
WO2009100240A1 (en) 2008-02-05 2009-08-13 Stratosaudio, Inc. System and method for advertisement transmission and display
US8875188B2 (en) 2008-02-05 2014-10-28 Stratosaudio, Inc. Systems, methods, and devices for scanning broadcasts

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845215A (en) * 1995-10-18 1998-12-01 Telefonaktiebolaget Lm Ericsson Operating mobile stations of wireless communication systems in multiple modes by external control
US5910180A (en) * 1995-11-21 1999-06-08 Diamond Multimedia Systems, Inc. Context virtualizing device driver architecture

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
No Search *

Also Published As

Publication number Publication date
WO2001077779A2 (en) 2001-10-18
AU2001251375A1 (en) 2001-10-23
EP1546864A2 (de) 2005-06-29
WO2001077779A3 (en) 2002-03-28

Similar Documents

Publication Publication Date Title
US7703107B2 (en) Virtual machine interface for hardware reconfigurable and software programmable processors
US8595753B2 (en) Virtual machine interface for hardware reconfigurable and software programmable processors
US6967999B2 (en) Method and apparatus to support multi standard, multi service base-stations for wireless voice and data networks
US7039915B2 (en) Method and apparatus for software-based allocation and scheduling of hardware resources in an electronic device
US7254649B2 (en) Wireless spread spectrum communication platform using dynamically reconfigurable logic
US8526965B2 (en) Distributed micro instructions set processor architecture for high-efficiency signal processing
US8078703B2 (en) Efficient software download to configurable communication device
US7536691B2 (en) Method and apparatus for software-based allocation and scheduling of hardware resources in a wireless communication 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
EP1317832B1 (de) Verfahren und einrichtung zur zeitscheiben- sowie vielfadendatenverarbeitung in einem vermittlungssystem
Lund et al. Reconfiguration Principles for Adaptive Baseband
Sengupta et al. The Role of Programmable DSPs in Dual Mode (2G and 3G) Handsets
Gatherer et al. Cost Effective Software Radio for CDMA Systems

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20031030

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE TR

RIC1 Information provided on ipc code assigned before grant

Ipc: 7G 06F 9/00 A

Ipc: 7G 06F 9/44 B

Ipc: 7G 06F 9/46 B

A4 Supplementary search report drawn up and despatched

Effective date: 20051111

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: INFINEON TECHNOLOGIES AG

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20171103

RIC1 Information provided on ipc code assigned before grant

Ipc: G06F 9/00 20060101AFI20050407BHEP

Ipc: G06F 9/46 20060101ALI20050907BHEP

Ipc: G06F 9/44 20180101ALI20050907BHEP