|Publication number||US7930623 B2|
|Application number||US 11/517,985|
|Publication date||Apr 19, 2011|
|Filing date||Sep 8, 2006|
|Priority date||Mar 7, 2006|
|Also published as||US20070226601|
|Publication number||11517985, 517985, US 7930623 B2, US 7930623B2, US-B2-7930623, US7930623 B2, US7930623B2|
|Inventors||Eran Pisek, Yan Wang|
|Original Assignee||Samsung Electronics Co., Ltd.|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (5), Classifications (5), Legal Events (4)|
|External Links: USPTO, USPTO Assignment, Espacenet|
The present application is related to U.S. Provisional Patent No. 60/780,034, filed Mar. 7, 2006, titled “Parallel Code Generator” and U.S. Provisional Patent No. 60/795,716, filed Apr. 28, 2006, titled “Method and Apparatus for Multi-Code Correlation”. Provisional Patent Nos. 60/780,034 and 60/795,716 are assigned to the assignee of this application and are hereby incorporated by reference as if fully set forth herein. This application hereby claims priority under 35 U.S.C. §119(e) to U.S. Provisional Patent Nos. 60/780,034 and 60/795,716.
The present application is also related to U.S. patent application Ser. No. 11/501,577, filed Aug. 9, 2006, titled “Multi-Code Correlation Architecture for Use in Software-Defined Radio Systems.” U.S. patent application Ser. No. 11/501,577 is assigned to the assignee of the present application and is incorporated by reference into the present application as if fully set forth herein.
The present invention relates generally to wireless communication networks and, more specifically, to a method and system for generating parallel codes.
In current wireless communication networks, software-defined radio (SDR) devices may be implemented. SDR devices use reconfigurable hardware that may be programmed over the air to operate under different wireless protocols. For example, an SDR transceiver in a wireless laptop computer may be configured by a first software load to operate in a CDMA2000 wireless network and may be reconfigured by a second software load to operate in an HSDPA wireless network. SDR systems minimize cost (design time, TTM) and power consumption, while maximizing flexibility, thereby providing an optimized combination of scalability and modularity.
One such approach involves a re-configurable correlation unit that may be implemented in a context-based operation reconfigurable instruction set processor, as disclosed in U.S. patent application Ser. No. 11/501,577, incorporated by reference above. Such a correlation unit matches the architecture to the domain of application and optimizes the performance and power jointly. Thus, the real-time processing requirements and low-power requirements of wireless mobile stations are met simultaneously. The correlation unit is highly re-configurable and may be used for different functional blocks operating under different standards.
In these correlation units and other types of systems, including WCDMA and/or other pseudo-noise generating systems, scrambling code is widely used. In a WCDMA system, for example, the scrambling code sequences are constructed by combining two real sequences into a complex sequence. Each of the two real sequences is constructed as position wise modulo 2 sum of 38400 chip segments of two binary m-sequences. At the receiver side, the same scrambling code is generated and used to descramble the received signal.
Because the descrambling rate is high for a conventional WCDMA system, scrambling codes have to be processed at a high rate that forces the scrambling code generator either to run faster or to use parallel execution to make the descrambling processing faster. For example, for 4× parallelism, conventional systems provide for allowing the scrambling code generator to run four times faster, which increases the power consumption, or provide for duplication of the scrambling code generator four times, resulting in the consumption of at least four times more area. Other solutions use memory to store pre-calculated scrambling codes, which increases the memory usage and results in higher power consumption and increased die area. Furthermore, this solution makes support for changes in the scrambling code, such as during handover, difficult. Therefore, there is a need in the art for an improved method for generating codes.
A method for generating parallel codes is provided. According to an advantageous embodiment of the present disclosure, the method includes generating a plurality of pairs of outputs for each clock cycle using a single code generator and generating a code based on each pair of outputs using the single code generator.
According to another embodiment of the present disclosure, a system for generating parallel codes is provided that includes a feedforward block, a shift register, and a feedback block. The feedforward block is operable to generate a plurality of first outputs with each clock cycle. The shift register is coupled to the feedforward block and is operable to store a plurality of bits and to generate a corresponding second output for each first output with each clock cycle. Each first output and corresponding second output comprise a pair of outputs. The feedback block is coupled to the shift register and is operable to generate a feedback output for the shift register. The system is operable to generate parallel codes, each of which is generated based on one of the pairs of outputs.
According to yet another embodiment of the present disclosure, a correlation unit capable of processing data using parallel codes is provided that includes a single code generator, a plurality of add-subtract cells, and at least one processing unit. The single code generator is operable to generate parallel codes. The add-subtract cells are each operable to receive a plurality of cell inputs and to generate a plurality of cell outputs based on the cell inputs. The processing unit is coupled to the code generator and to the add-subtract cells and is operable to process the cell outputs and the parallel codes to generate a plurality of accumulated results.
Before undertaking the DETAILED DESCRIPTION OF THE INVENTION below, it may be advantageous to set forth definitions of certain words and phrases used throughout this patent document: the terms “include” and “comprise,” as well as derivatives thereof, mean inclusion without limitation; the term “or” is inclusive, meaning and/or; the term “each” means every one of at least a subset of the identified items; the phrases “associated with” and “associated therewith,” as well as derivatives thereof, may mean to include, be included within, interconnect with, contain, be contained within, connect to or with, couple to or with, be communicable with, cooperate with, interleave, juxtapose, be proximate to, be bound to or with, have, have a property of, or the like; and the term “controller” means any device, system or part thereof that controls at least one operation, such a device may be implemented in hardware, firmware or software, or some combination of at least two of the same. It should be noted that the functionality associated with any particular controller may be centralized or distributed, whether locally or remotely. Definitions for certain words and phrases are provided throughout this patent document, those of ordinary skill in the art should understand that in many, if not most instances, such definitions apply to prior, as well as future uses of such defined words and phrases.
For a more complete understanding of the present invention and its advantages, reference is now made to the following description taken in conjunction with the accompanying drawings, in which like reference numerals represent like parts:
The present disclosure is not limited to mobile devices. The present disclosure also encompasses other types of wireless access terminals, including fixed wireless terminals. For the sake of simplicity, only mobile stations are shown and discussed hereafter. However, it should be understood that the use of the term “mobile station” in the claims and in the description below is intended to encompass both truly mobile devices (e.g., cell phones, wireless laptops) and stationary wireless terminals (e.g., a machine monitor with wireless capability).
Dotted lines show the approximate boundaries of cells (or cell sites) 121-123 in which base stations 101-103 are located. It is noted that the terms “cells” and “cell sites” may be used interchangeably in common practice. For simplicity, the term “cell” will be used hereafter. The cells are shown approximately circular for the purposes of illustration and explanation only. It should be clearly understood that the cells may have other irregular shapes, depending on the cell configuration selected and variations in the radio environment associated with natural and man-made obstructions.
As is well known in the art, each of cells 121-123 is comprised of a plurality of sectors, where a directional antenna coupled to the base station illuminates each sector. The embodiment of
In one embodiment of the present disclosure, each of BS 101, BS 102 and BS 103 comprises a base station controller (BSC) and one or more base transceiver subsystem(s) (BTS). Base station controllers and base transceiver subsystems are well known to those skilled in the art. A base station controller is a device that manages wireless communications resources, including the base transceiver subsystems, for specified cells within a wireless communications network. A base transceiver subsystem comprises the RF transceivers, antennas, and other electrical equipment located in each cell. This equipment may include air conditioning units, heating units, electrical supplies, telephone line interfaces and RF transmitters and RF receivers. For the purpose of simplicity and clarity in explaining the operation of the present disclosure, the base transceiver subsystems in each of cells 121, 122 and 123 and the base station controller associated with each base transceiver subsystem are collectively represented by BS 101, BS 102 and BS 103, respectively.
BS 101, BS 102 and BS 103 transfer voice and data signals between each other and the public switched telephone network (PSTN) (not shown) via communication line 131 and mobile switching center (MSC) 140. BS 101, BS 102 and BS 103 also transfer data signals, such as packet data, with the Internet (not shown) via communication line 131 and packet data server node (PDSN) 150. Packet control function (PCF) unit 190 controls the flow of data packets between base stations 101-103 and PDSN 150. PCF unit 190 may be implemented as part of PDSN 150, as part of MSC 140, or as a stand-alone device that communicates with PDSN 150, as shown in
In accordance with the present disclosure, one or more of base stations 101-103 and one or more of mobile stations 111-114 are operable to generate parallel codes, such as scrambling codes for use in distinguishing between cells 121-123. As used herein, “parallel codes” means a plurality of codes generated in parallel with each other. As described in more detail below in connection with FIGS. 2 and 9-12, these base stations 101-103 and mobile stations 111-114 are operable to generate the parallel codes using a single code generator. As used herein, a “single code generator” means a code generator implemented without the use of duplicate code generators. Thus, a code generator that employs duplicate code generators for generating multiple codes at the same time is not a single code generator for purposes of this disclosure, even though it may be implemented as a single component.
To generate the parallel codes using a single code generator, the base stations 101-103 and the mobile stations 111-114 are operable to generate during each clock cycle a specified multiple of a standard number of outputs, with the standard number of outputs being the number of outputs typically used in generating a single code. The number of parallel codes generated is based on the specified multiple. For example, if four times as many outputs are generated during each clock cycle, four parallel codes may be generated.
Communication line 131 may be any suitable connection means, including a T1 line, a T3 line, a fiber optic link, a network packet data backbone connection, or any other type of data connection. Alternatively, communication line 131 may be replaced by a wireless backhaul system, such as microwave transceivers. Communication line 131 links each vocoder in the BSC with switch elements in MSC 140. The connections on communication line 131 may transmit analog voice signals or digital voice signals in pulse code modulated (PCM) format, Internet Protocol (IP) format, asynchronous transfer mode (ATM) format, or the like.
MSC 140 is a switching device that provides services and coordination between the mobile stations in a wireless network and external networks, such as the PSTN or Internet. MSC 140 is well known to those skilled in the art. In some embodiments, communication line 131 may be several different data links where each data link couples one of BS 101, BS 102, or BS 103 to MSC 140.
In exemplary wireless network 100, MS 111 is located in cell 121 and is in communication with BS 101. MS 112 is also located in cell 121 and is in communication with BS 101. MS 113 is located in cell 122 and is in communication with BS 102. MS 114 is located in cell 123 and is in communication with BS 103. MS 112 is also located close to the edge of cell 123 and is moving in the direction of cell site 123, as indicated by the direction arrow proximate MS 112. At some point, as MS 112 moves into cell site 123 and out of cell site 121, a hand-off will occur.
For the illustrated embodiment, transmitter 200 comprises parallel code generator 205, data signal generator 210, transmit signal generator 215 and antenna 220. It will be understood that transmitter 200 may comprise any other suitable components not illustrated in
Parallel code generator 205 may comprise a linear feedback shift register (LFSR)-based code generator, such as a scrambling code generator, or any suitable type of pseudo-noise generator. Parallel code generator 205 is operable to generate M parallel codes, as described in more detail below in connection with
Data signal generator 210 represents any number of components capable of generating data signals for transmission from transmitter 200 to a receiver, such as receiver 250 of
Transmit signal generator 215 is then operable to generate transmit signals for transmission over antenna 220 based on the parallel codes and the data signals. For example, transmit signal generator 215 may be operable to scramble a data signal based on parallel scrambling codes before transmitting the resulting transmit signal over antenna 220. It will be understood that transmit signal generator 215 may also be operable to perform other suitable processing, such as by XORing the parallel codes by Walsh codes to generate different keys for each channel in a cell.
For the illustrated embodiment, receiver 250 comprises parallel code generator 255, receive signal processing block 260 and antenna 265. It will be understood that receiver 250 may comprise any other suitable components not illustrated in
Parallel code generator 255 may comprise an LFSR-based code generator, such as a scrambling code generator, or any suitable type of pseudo-noise generator. Parallel code generator 255 corresponds to parallel code generator 205 such that a signal coded based on the parallel codes generated by parallel code generator 205 may be decoded based on the same parallel codes generated by parallel code generator 255. Parallel code generator 255 is operable to generate M parallel codes, as described in more detail below in connection with
Receive signal processing block 260 represents any number of components capable of processing signals received from a transmitter, such as transmitter 200, over antenna 265. Receive signal processing block 260 is coupled to parallel code generator 255 and is operable to receive the parallel codes from parallel code generator 255 and the received signals from antenna 265.
Receive signal processing block 260 is then operable to process the received signals, at least in part based on the parallel codes. For example, receive signal processing block 260 may be operable to descramble a received signal based on parallel scrambling codes in order to generate a recovered data signal that corresponds to a data signal scrambled with corresponding parallel scrambling codes in the transmitter that transmitted the signal, such as transmitter 200.
It is noted that, in bubble diagram 300, it is possible to group states according to contexts of execution units. For the purposes of this disclosure, a context is a group of operations and/or instructions that are related to the same function.
Each of the groupings of states in
The control domain is implemented by programmable finite state machine 530, which may comprise a DSP, an MCU or another suitable device. Programmable FSM 530 is configured by reconfiguration bits received from an external controller (not shown). Programmable FSM 530 may execute a program stored in associated optional program memory 540. The program may be stored in program memory 540 via the DATA line from an external controller (not shown). Memory 510 is used to store application data used by data path circuitry 520.
Programmable data path circuitry 520 is divided into a set of building blocks that perform particular functions (e.g., registers, multiplexers, multipliers, and the like). Each of the building blocks is both reconfigurable and programmable to allow maximum flexibility. The criteria for dividing programmable data path circuitry 520 into functional blocks depends on the level of reconfigurability and programmability required for a particular application.
Since each of the contexts C0-C4 in
A CRISP according to the principles of the present disclosure may be targeted to many applications, including, but not limited to, baseband applications in wireless devices and multimedia applications. In many applications, these contexts may be loosely-coupled independent contexts that may run concurrently with either minimum or no dependencies.
Reconfiguration bits may be loaded into CRISPs 500 a, 500 b, and 500 c from the CONTROL line via real-time sequencer 610 and buffer 640. A control program may also be loaded into sequence program memory 620 from the CONTROL line via buffer 640. Real-time sequencer 610 sequences the contexts to be executed by each one of CRISPs 500 a-c by retrieving program instructions from program memory 620 and sending reconfiguration bits to CRISPs 500 a-c. In one embodiment, real-time sequencer 610 may comprise a stack processor, which is suitable to operate as a real-time scheduler due to its low latency and simplicity.
Reconfigurable interconnect fabric 630 provides connectivity between each one of CRISPs 500 a-c and an external DATA bus via bi-directional buffer 645. In one embodiment of the present disclosure, each one of CRISPs 500 a-c may act as a master of reconfigurable interconnect fabric 630 and may initiate address access. The bus arbiter for reconfigurable interconnect fabric 630 may be internal to real-time sequencer 610.
In one embodiment, reconfigurable processing system 600 may be, for example, a cell phone or a similar wireless device or a data processor for use in a laptop computer. In a wireless device embodiment implemented according to software-defined radio (SDR) principles, each one of CRISPs 500 a-c is responsible for executing a subset of context-related instructions that are associated with a particular reconfigurable function. For example, CRISP 500 a may be configured to execute context-related instructions that process HSDPA baseband signals, CDMA baseband signals or OFDMA baseband signals. CRISP 500 b may be configured to execute context-related instructions that act as a memory controller. CRISP 500 c may be configured to execute context-related instructions that perform MPEG-4 processing for multimedia applications.
A CRISP according to the principles of the present disclosure provides a new way of implementing reconfigurable hardware acceleration techniques and also provides reconfigurability and programmability with minimal sacrifice of power efficiency. Since the CRISPs are largely independent and may be run simultaneously, the performance advantage of parallelism is provided without incurring the full power penalty associated with running parallel operations. The loose coupling and independence of CRISPs allows them to be configured for different systems and functions that may be shut down separately.
Multi-standard SDR system 700 comprises baseband subsystem 701, applications subsystem 702, memory interface (IF) and peripherals subsystem 765, main control unit (MCU) 770, memory 775, and interconnect 780. MCU 770 may comprise, for example, a conventional microcontroller or a microprocessor (e.g., x86, ARM, RISC, DSP, etc.). Memory IF and peripherals subsystem 765 may connect SDR system 700 to an external memory (not shown) and to external peripherals (not shown). Memory 775 stores data from other components in SDR system 700 and from external devices (not shown). For example, memory 775 may store a stream of incoming data samples received from an external antenna system and an RF down-converter associated with SDR system 700. Interconnect 780 provides data transfer between subsystems 701 and 702, memory IF and peripherals subsystem 765, MCU 770, and memory 775.
Baseband subsystem 701 comprises real-time (RT) sequencer 705, memory 710, baseband DSP subsystem 715, interconnect 725, and a plurality of special purpose context-based operation instruction set processors (CRISPs), including transform CRISP 500 d, chip rate CRISP 500 e, symbol rate CRISP 500 f, and bit manipulation unit (BMU) CRISP 500 g. By way of example, transform CRISP 500 d may implement a Fast Fourier Transform (FFT) function, chip rate CRISP 500 e may implement a correlation function for a CDMA or HSDPA signal, and symbol rate CRISP 500 f may implement a Viterbi decoder function.
In such an embodiment, transform CRISP 500 d may receive samples of an intermediate frequency (IF) signal stored in memory 775 and perform an FFT function that generates a sequence of chip samples at a baseband rate. Next, chip rate CRISP 500 e receives the chip samples from transform CRISP 500 d and performs a correlation function that generates a sequence of data symbols. Next, symbol rate CRISP 500 f receives the symbol data from chip rate CRISP 500 e and performs Viterbi decoding to recover the baseband user data. The baseband user data may then be used by applications subsystem 702.
In one embodiment of the present disclosure, symbol rate CRISP 500 f may comprise two or more CRISPs that operate in parallel. Also, by way of example, BMU CRISP 500 g may implement such functions as variable length coding, cyclic redundancy check (CRC), convolutional encoding, and the like. Interconnect 725 provides data transfer between RT sequencer 705, memory 710, baseband DSP subsystem 715 and CRISPs 500 d-500 g.
Applications subsystem 702 comprises real-time (RT) sequencer 730, memory 735, multimedia DSP subsystem 740, interconnect 745, and multimedia macro-CRISP 750. Multimedia macro-CRISP 750 comprises a plurality of special purpose CRISPs, including MPEG-4/H.264 CRISP 550 h, transform CRISP 550 i, and BMU CRISP 500 j. In one embodiment of the present disclosure, MPEG-4/H.264 CRISP 550 h performs motion estimation functions and transform CRISP 500 h performs a discrete cosine transform (DCT) function. Interconnect 745 provides data transfer between RT sequencer 730, memory 735, multimedia DSP subsystem 740, and multimedia macro-CRISP 750.
In the embodiment shown in
More particularly, the present disclosure provides a reconfigurable correlation unit that may be implemented in a context-based operation reconfigurable instruction set processor. Advantageously, a correlation unit according to the principles of the present disclosure is highly reconfigurable and may be used for different functional blocks operating under different standards, including CDMA de-spreading, IEEE-802.11b CCK demodulation, WCDMA de-spreading, cell search, HSDPA de-spreading, and the like.
In the illustrated embodiment, the processing unit is implemented as two substantially identical processing sub-blocks, namely lower processing unit 801 and upper processing unit 802. Correlation unit 800 further comprises code bus 840, data bus 845, and four add-subtract (±) cells 850 a-850 d.
Lower processing unit 801 comprises four sign select units 805 a-805 d, four first stage adders 810 a-810 d, multiplexers (MUXes) 815 a and 815 b, two second stage adders 820 a and 820 b, accumulators 825 a and 825 b, and output bus 830. Upper processing unit 802 comprises four sign select units 855 a-855 d, four first stage adders 860 a-860 d, multiplexers (MUXes) 865 a and 865 b, two second stage adders 870 a and 870 b, accumulators 875 a and 875 b, and output bus 880.
Lower processing unit 801 and upper processing unit 802 operate independently. According to one embodiment of the present disclosure, code bus 840, data bus 845, and output buses 830 and 880 are unidirectional buses. Furthermore, in an advantageous embodiment of the present disclosure, output bus 830 and output bus 880 may be the same bus. For this reason, output bus 830 and output bus 880 will hereafter be referred to only as “output bus 830.” Data bus 845 sends the chip sample data from data memory 831 to processing units 801 and 802 via cells 850 a-850 d. Output bus 830 writes output data from accumulators 825 a and 825 b and accumulators 875 a and 875 b to data memory 831. Code bus 840 conveys the code data generated in code generator 835 to processing units 801 and 802.
It should be noted that processing units 801 and 802, memory 831, code generator 835, and buses 830, 840, 845 and 880 may be configured for different standards and functions, including CDMA de-spreading, IEEE-802.11b CCK demodulation, WCDMA de-spreading, cell search, HSDPA de-spreading, and the like. Furthermore, each of the functional components and each of the buses may be shut down independently. The number of cells 850, the width of data memory 831, and the number of sign select units 805 and 855 illustrated and described in
Parallel code generator 900 comprises a single code generator and is operable to generate parallel codes. For one embodiment, parallel code generator 900 is operable to generate parallel scrambling codes. For the illustrated embodiment, parallel code generator 900 comprises a shift register 905, a feedback block 910 and a feedforward block 915. Also, for the illustrated embodiment, parallel code generator 900 is operable to generate two sets of M outputs during each clock cycle that may be used in generating M codes in parallel.
The portion of parallel code generator 900 illustrated in
Shift register 905 may comprise an N-bit shift register. For one embodiment, shift register 905 is operable to provide a first shift register output 920 a of N bits to feedback block 910 and a second shift register output 920 b of N bits to feedforward block 915. For the embodiment in which shift register 905 comprises an N-bit shift register, the first shift register output 920 a may be equivalent to the second shift register output 920 b. For this embodiment, each shift register output 920 a and 920 b comprises the N bits stored in shift register 905.
Based on the first shift register output 920 a received from shift register 905, feedback block 910 is operable to generate a feedback output 930, which may comprise M bits, and to provide the feedback output 930 back to shift register 905. Based on the second shift register output 920 b received from shift register 905, feedforward block 915 is operable to generate a first set of outputs 925 for parallel code generator 900. According to one embodiment, the first set of outputs 925 comprises M bits. Shift register 905 is operable to generate a second set of outputs 935 for parallel code generator 900. According to one embodiment, the second set of outputs 935 also comprises M bits.
For one example, shift register 905 may be shifted by M bits with each clock cycle. Thus, with each clock cycle, the M-bit feedback output 930 may be shifted into shift register 905, and another M bits may be shifted out of shift register 905 as the second set of outputs 935.
For one embodiment, feedback block 910 comprises one or more XOR selectors that are operable to generate the feedback output 930 by XORing predetermined bits in shift register 905 based on the first shift register output 920 a. For this embodiment, feedforward block 915 comprises one or more XOR selectors that are operable to generate the first set of outputs 925 by XORing predetermined bits in shift register 905 based on the second shift register output 920 b.
For a particular embodiment, parallel code generator 900 comprises a scrambling code generator. For this embodiment, the second set of outputs 935 provide x-values and the first set of outputs 925 provide corresponding z-values. The portion of parallel code generator 900 not illustrated in
For the embodiment in which parallel code generator 900 is implemented as code generator 835 of correlation unit 800, parallel code generator 900 may be operable to generate four codes in parallel based on the four cells 850 a-d, which are each operable to receive a different code generated by parallel code generator 900. However, it will be understood that parallel code generator 900 may be operable to generate any suitable number of codes in parallel without departing from the scope of this disclosure.
In operation, for one example, shift register 905 comprises N bits and provides those N bits to feedback block 910 as the first shift register output 920 a and to feedforward block 915 as the second shift register output 920 b. Feedback block 910 XORs predetermined bits of the N-bit first shift register output 920 a to generate the M-bit feedback output 930. Feedforward block 915 XORs predetermined bits of the N-bit second shift register output 920 b to generate the first set of M outputs 925. Shift register 905 shifts out M bits in the form of the second set of outputs 935 while shifting in the M-bit feedback output 930. In this way, parallel code generator 900 may generate M parallel codes using a single code generator and without storing pre-calculated codes.
For this embodiment, scrambling code generation 1000 is provided by shift register 1005, feedback block 1010 and feedforward block 1015. For generating a scrambling code for use in a WCDMA system, for example, the following equations are provided by the WCDMA standards:
As a result, for this example, the predetermined bits used by feedback block 1010 and feedforward block 1015 are defined by these equations. Thus, feedforward block 1015 generates first output 1025 by XORing x(i+4), x(i+6) and x(i+15). In addition, feedback output 1030 is shifted into shift register 1005 from feedback block 1010 and second output 1035 is shifted out of shift register 1005.
Using the equations for x-values and z-values for WCDMA systems defined above in connection with
The embodiment of
For this embodiment, shift register 905 comprises an eighteen-bit shift register, feedback block 910 comprises four XOR selectors, and feedforward block 915 comprises four XOR selectors. The connections shown between the components 905, 910 and 915 illustrate how the predetermined feedback bits and predetermined feedforward bits, which are determined by the above equations, may be used to generate the outputs 925 and 935.
Feedforward block 915 generates a first set of outputs 925 based on predetermined feedforward bits in shift register 905 (process step 1210). For example, feedforward block 915 may XOR M sets of predetermined bits to generate M first outputs 925. For a particular embodiment, M may comprise four; however, other values of M may be used.
Feedback block 910 generates a feedback output 930 based on predetermined feedback bits in shift register 905 (process step 1215). For example, feedback block 910 may XOR M sets of predetermined bits to generate an M-bit feedback output 930.
With the subsequent clock cycle, as described above, feedforward block 915 outputs the first set of outputs 925 (process step 1220). Meanwhile, the feedback output 930 is shifted into shift register 905 and a second set of M outputs 935 is shifted out of shift register 905 (process step 1225).
Also during this clock cycle, feedforward block 915 generates a subsequent first set of outputs 925 based on the predetermined feedforward bits in shift register 905, which have changed based on the shifting of shift register 905 (process step 1230). Feedback block 910 also generates a subsequent feedback output 930 based on the predetermined feedback bits in shift register 905, which have also changed based on the shifting of shift register 905 (process step 1235). At this point, the method returns to process step 1220 and parallel code generator 900 continues to output M first outputs 925 and M second outputs 935 for each subsequent clock cycle.
In addition, while subsequent sets of first and second outputs 925 and 935 are being generated, parallel code generator 900 is generating M codes in parallel based on the first and second sets of outputs 925 and 935 that are being generated (process step 1240). Therefore, for the example above with M=4, parallel code generator 900 generates four codes in parallel with each other, with each code generated based on a different one of the four pairs of outputs. For the embodiment described in connection with
In this way, parallel code generator 900 may be used to generate parallel codes based on parallel outputs 925 and 935 by determining future bit values for shift register 905. For example, using logic connections such as those illustrated in
Therefore, parallel code generator 900 is operable to generate parallel codes using a single code generator, resulting in reduced power consumption relative to code generators that generate codes faster by operating based on a faster clock and also resulting in decreased die area relative to systems employing duplicate code generators. In addition, memory is not wasted storing pre-calculated scrambling codes.
Although the present invention has been described with one embodiment, various changes and modifications may be suggested to one skilled in the art. It is intended that the present invention encompass such changes and modifications as fall within the scope of the appended claims.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US6389138 *||Nov 12, 1998||May 14, 2002||Lucent Technologies Inc.||Method and apparatus for generating a complex scrambling code sequence|
|US7308104 *||Aug 15, 2000||Dec 11, 2007||Lg Information & Communications, Ltd.||Forward multiple scrambling code generating method and apparatus|
|US7346165 *||May 28, 2002||Mar 18, 2008||Lg Electronics Inc.||Apparatus and method for generating scrambling code in mobile communication system|
|US7436963 *||Mar 7, 2003||Oct 14, 2008||Stmicroelectronics S.R.L.||Process for generating codes for CDMA communications, system and computer program product therefor|
|US7489722 *||Dec 16, 2004||Feb 10, 2009||Infineon Technologies Ag||Apparatus for production of scrambling codes and preambles|
|Cooperative Classification||H04J13/0074, H04J13/10|
|Sep 8, 2006||AS||Assignment|
Owner name: SAMSUNG ELECTRONICS CO., LTD., KOREA, REPUBLIC OF
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:PISEK, ERAN;WANG, YAN;REEL/FRAME:018292/0766
Effective date: 20060906
|Nov 28, 2014||REMI||Maintenance fee reminder mailed|
|Apr 19, 2015||LAPS||Lapse for failure to pay maintenance fees|
|Jun 9, 2015||FP||Expired due to failure to pay maintenance fee|
Effective date: 20150419