Abstract:
A method and arrangement for processing of CCTrCH data in a UMTS system, by: receiving CCTrCH data across a plurality of radio frames and timeslots ( 310 ); storing the received CCTrCH data ( 320 ); and upon receipt of complete data for a CCTrCH, processing the stored CCTrCH data through channel processing asynchronously to the received timeslot structure ( 360 ). Preferably, the received CCTrCH data is stored in a single RAM memory in link-list form, whereby each timeslot of received CCTrCH data can be independently accessed in the memory. This method of buffering the different parts of the received CCTrCH data, so that they can be recombined before the TrCH decoding and de-multiplexing, is both memory efficient and spreads out the processing load over time.

Description:
FIELD OF THE INVENTION  
         [0001]    This invention relates to Universal Mobile Telecommunication Systems (UMTS), and particularly to decoding and de-multiplexing in such systems.  
         BACKGROUND OF THE INVENTION  
         [0002]    In the field of this invention it is known that, in UMTS Terrestrial Radio Access (UTRA) Time Division Duplex (TDD) mode, Coded Composite Transport Channel (CCTrCH) data is can be split across multiple timeslots in consecutive Radio Frames. This is determined by the Transmission Time Interval (TTI), which is typically 10, 20, 40, 80 ms, or 1, 2, 4, 8 Radio Frames.  
           [0003]    As an UTRA system is packet based the data received which needs to be processed is non-deterministic in size and in frequency. Therefore to store and process the data efficiently a scheme is required that can buffer and process this data effectively.  
           [0004]    Heretofore, schemes used for CCTrCH processing have had the disadvantage of compromised efficiency since they do not efficiently store the data prior to processing and they do not take advantage of the fact that not all the timeslots in a radio frame are used to receive data.  
           [0005]    A need therefore exists for processing of CCTrCH data wherein the abovementioned disadvantage(s) may be alleviated.  
         STATEMENT OF INVENTION  
         [0006]    In accordance with a first aspect of the present invention there is provided a method for processing of CCTrCH data in a UMTS system, comprising the steps of:  
           [0007]    receiving CCTrCH data across a plurality of timeslots;  
           [0008]    storing the received CCTrCH data; and  
           [0009]    upon receipt of complete data for a CCTrCH, processing the stored CCTrCH data through channel processing asynchronously to individual received timeslots.  
           [0010]    In accordance with a second aspect of the present invention there is provided an arrangement for processing of CCTrCH data in a UMTS system, comprising:  
           [0011]    means for receiving CCTrCH data across a plurality of timeslots;  
           [0012]    means for storing the received CCTrCH data; and  
           [0013]    means for, upon receipt of complete data for a CCTrCH, processing the stored CCTrCH data through channel processing asynchronously to individual received timeslots.  
           [0014]    The arrangement may be comprised in user equipment for use in a UMTS system.  
           [0015]    The arrangement may alternatively be comprised in a base station for use in a UMTS system.  
           [0016]    In essence, the invention is based in part on the idea of processing the CCTrCH data asynchronously to the timeslot structure rather than processing each CCTrCH in the timeslot in which it was received. This has the advantage of increasing the amount of time available to process the CCTrCH as not all timeslots in a frame are receive timeslots (whereas if each CCTrCH is processed in the individual timeslot it is received then the processing time associated with transmit timeslots is not used). 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0017]    One method and arrangement for asynchronous processing of CCTrCH data incorporating the present invention will now be described, by way of example only, with reference to the accompanying drawing(s), in which:  
         [0018]    [0018]FIG. 1 shows a block schematic diagram illustrating time domain UTRA framing;  
         [0019]    [0019]FIG. 2 shows a block schematic diagram illustrating multiplexing and channel coding in UTRA;  
         [0020]    [0020]FIG. 3 shows a block schematic diagram illustrating an arrangement for buffering and control of CCTrCH incorporating the present invention;  
         [0021]    [0021]FIG. 4 shows a block schematic diagram illustrating a RAM arrangement split up into “slots” of data, as used in the arrangement of FIG. 3; and  
         [0022]    [0022]FIG. 5 shows a flowchart illustrating CCTrCH buffer controller flow, as used in the arrangement of FIG. 3; and  
         [0023]    [0023]FIG. 6 shows a block-schematic diagram of a UMTS system in which the invention is used. 
     
    
     DESCRIPTION OF PREFERRED EMBODIMENT  
       [0024]    In a UMTS Terrestrial Radio Access Network (UTRAN) there are two modes of operation: UTRA Frequency Division Duplex (FDD) and UTRA Time Division Duplex (TDD). In UTRA TDD users are separated in both the code domain and time domain. In the time domain employed in UTRA framing, illustrated in FIG. 1, 4096 radio frames make up a super frame with each radio frame consisting of 15 timeslots. A timeslot can be allocated to either Uplink (UL) or Downlink (DL) transmission.  
         [0025]    In a typical TDD system the UL and DL transmissions have to be synchronized to reduce interference. In addition DL broadcast signaling and UL random access signaling has to be supported. This leads to a possible partitioning of the radio frame as shown below:  
                                                                                           0   1   2   3   4   5   6   7   8   9   10   11   12   13   14       DL   DL   DL   DL   DL   DL   DL   DL   UL   UL   UL   UL   UL   UL   UL                  
 
         [0026]    UTRA specifies the processing that is applied to the Transport Channel (TrCH) data by Layer 1 (L1), as shown in FIG. 2.  
         [0027]    Transport Blocks (blocks of a defined number of bits) are submitted by the media access control (MAC) to L1 for processing. A Transport Block typically corresponds to a MAC protocol data unit (PDU) or corresponding unit. Layer 1 processes each Transport Block as shown in FIG. 2 to build up CCTrCHs. Firstly, cyclic redundancy check (CRC) attachment is performed at  205 ; then, transport block (TrBk) concatenation/code block segmentation is performed at  210 . Next, channel coding is performed at  215 ; then, radio frame equalisation is performed at  220 . Next, first interleaving is performed at  225 ; then, radio frame segmentation is performed at  230 , and rate matching is performed at  235 . A number of rate-matched data streams are multiplexed together on a single transport channel at  240 ; then, the resultant multiplexed data stream is processed by bit scrambling at  245 . The bit-scrambled data stream is segmented into a number of physical channels at  250 ; then, second interleaving is performed on each of the segmented physical channel data streams at  255 . Finally, physical channel mapping is performed at  260  to produce a number of CCTrCHs for physical channels such as PhCH#1 and PhCH#2. These CCTrCHs are mapped onto timeslots in known manner.  
         [0028]    Each CCTrCH can be split across multiple timeslots in consecutive Radio Frames. This is determined by the Transmission Time Interval (TTI), which is typically 10, 20, 40, 80 ms or 1, 2, 4, 8 Radio Frames.  
         [0029]    As a UTRA system is packet based the data received which needs to be processed is non-deterministic in size and in frequency. Therefore to store and process the data efficiently an architecture is required that can buffer and process this data effectively. The maximum throughput for the CCTrCH processing is fixed for a particular system; however the number, size and frequency of CCTrCHs that are processed are dynamically allocated. The storage and processing strategy must therefore be flexible to efficiently process the data.  
         [0030]    Since the CCTrCH received have different TTI periods and can be allocated to different timeslots in a Radio frame, timeslots of data for different CCTrCH are received interleaved with each other. This means that the receiver has to recombine and re-order the received data into the CCTrCHs that were sent, before they can be processed by the TrCH decoder and de-multiplexing process.  
         [0031]    Heretofore, schemes used for CCTrCH processing have had the disadvantage of compromised efficiency, such as by use of a dedicated buffer per CCTrCH (in this case each buffer needs to be sized for the largest CCTrCH that can be received, requiring a large amount of redundant memory).  
         [0032]    As referred to above, the present invention is based in part on the idea of processing the CCTrCH data asynchronously to the timeslot structure rather than processing each CCTrCH in the timeslot in which it was received. This has the advantage of increasing the amount of time available to process the CCTrCH as not all timeslots in a frame are receive timeslots (whereas if each CCTrCH is processed in the individual timeslot it is received then the processing time associated with transmit timeslots is not used).  
       Asynchronous Processing Overview  
       [0033]    [0033]FIG. 3 shows the block diagram of a proposed arrangement  300  to buffer and process the CCTrCH data with improved efficiency. Data is received from a radio unit as it is de-spread by the front end of the detection process  310 . This is synchronous to the timeslot and frame structure in a UTRA TDD system. The way the data for each CCTrCH is stored in buffer  320 , under control of a buffer controller  330 , will be described below in greater detail.  
         [0034]    The data for a CCTrCH can be split over Radio Frames and timeslots within the Radio Frame. As each ‘timeslot worth’ of data is received it is buffered in the RAM of the CCTrCH data buffer  320  in the order that it is received in such a way that the data for each CCTrCH is associated together; this is achieved by use of a ‘linked-list’ scheme, the start of each ‘linked-list’ in the data buffer  320  being added to the buffer list  340 . Once all the data for one CCTrCH has been received, an indication of this CCTrCH is added to a ‘CCTrCH to Process’ FIFO buffer  350 . The FIFO  350  acts as a queue of CCTrCHs that need to be processed by the TrCH decoding and de-multiplexing process  360 . The TrCH decoding and de-multiplexing process can then process the received CCTrCHs that are indicated in the FIFO asynchronously to the timeslot structure. Once the CCTrCH has been processed, the area in the buffer RAM that this CCTrCH occupied can be reused by another CCTrCH.  
       CCTrCH Buffer RAM Structure  
       [0035]    The CCTrCH data buffer RAM format must be flexible enough to allow different CCTrCHs of different sizes and different numbers of timeslots to be stored efficiently. For this reason a single RAM was chosen and the CCTrCH data is stored using a link-list format. Due to the packet based nature of the received CCTrCH data, the data associated with each CCTrCH will not be sequential in the CCTrCH buffer RAM. However, the link-list approach allows all the data in each CCTrCH to be linked together.  
         [0036]    The RAM is split up into “slots” of data of the format shown in FIG. 4. This consists of three header fields: address of next slot  410 , Number of bits in slot  420  and status  430 .  
         [0037]    The amount of data  440  in the slot is chosen to be a common multiple of the amount of data that could be received in a timeslot per CCTrCH. A CCTrCH with more data can be stored in the RAM by using multiple slots. The ‘number of bits in slot’ header field  420  allows for the fact that the amount of data in a CCTrCH might not be an integer multiple of the slot size.  
         [0038]    The status field  430  is used to store such information as whether or not the slot is available for use and whether or not it is the last slot in the ‘linked-list’ for the CCTrCH buffer.  
         [0039]    A separate list  340  is kept of the first slot in each CCTrCH that is stored in the RAM. This is termed the CCTrCH buffer list and is used to identify each CCTrCH that is in the CCTrCH buffer RAM. The CCTrCH buffer is assigned a CCTRCH ID at this point. This ID can be used to identify each CCTrCH in the CCTrCH buffer RAM  320 .  
         [0040]    CCTrCH data is added to the buffer RAM by finding the next available slot in the RAM. The address of the next slot in the RAM is updated dynamically as a link list to point to the next slot in the RAM for that CCTrCH. Thus by finding the first slot in the RAM for a CCTrCH from the CCTrCH buffer list it is possible to trace the slots for that CCTrCH through the CCTrCH buffer RAM.  
         [0041]    Referring now also to the flowchart of FIG. 5, which illustrates how the buffer controller works, CCTrCH data is added to the CCTrCH buffer RAM as follows:  
         [0042]    1. A new CCTrCH. If the data received is for a new CCTrCH then the address of the first available slot in the CCTrCH RAM is added to the CCTrCH buffer list as a new CCTrCH buffer and assigned a CCTrCH ID, as shown at  510 . The CCTrCH data received is added to slots one at a time, until all the data has been added to the buffer RAM. This is achieved by find the next available slot in the CCTrCH buffer RAM  320  (as shown at  520 ), and adding CCTrCH data to the slot (as shown at  530 ). As each slot is used the address of the next slot is added in the appropriate field (as shown at  540 ). This process is continued (as shown at  550 ) until all the data in the current received timeslot for the CCTrCH been copied. When all the data for the CCTrCH been received (as shown at  560 ), the CCTrCH ID and first slot address are added to the to ‘CCTrCH to Process’ FIFO  360  (as shown at  570 ).  
         [0043]    2. An existing CCTrCH. The first slot in the CCTrCH is found from the CCTrCH buffer list  340  (as shown at  580 ). The slots already received for the CCTrCH are traced through the CCTrCH buffer RAM to find the last slot in the RAM for this CCTrCH (as shown at  590 ). The next slot field can then be updated with the next available slot address (as shown at  520 ), and the CCTrCH data received is added to available slots one at a time until all the data has been added to the buffer RAM (as shown at  530 ). As each slot is used, the address of the next slot is added in the appropriate field (as shown at  540 ).  
         [0044]    An improvement would be in addition to store the address of the last slot in the ‘linked-list’ in the CCTrCH buffer list  340 . This means that to add new CCTrCH data to the ‘linked-list’ the last slot address of the data already in the ram can be read directly from the CCTrCH buffer list  340  and the ‘linked-list’ would not need to be traced through the RAM to find the last slot address.  
         [0045]    When all the data for a CCTrCH has been added to the CCTrCH buffer RAM, then the CCTrCH data can be processed by the TrCH decoder and de-multiplexing processing. This is indicated by adding the address of the first slot in the CCTrCH buffer RAM into the ‘CCTrCH to Process’ FIFO along with its CCTrCH ID (as shown at  570 ).  
         [0046]    When the CCTrCH has been processed, the slots in the RAM that are used to store the CCTrCH data can be de-allocated. This allows the slots to be reused for other CCTrCHs.  
       Asynchronous TrCH Processing  
       [0047]    Once all the data for a CCTrCH has been received, the TrCH decoding and de-multiplexing processing can begin. This processing can be carried out asynchronously to the timeslot structure. This has the advantage of spreading the processing over the whole of the radio frame and thus allowing more time for the data to be processed.  
         [0048]    The TrCH processing waits for a valid CCTrCH ID to be added by the buffer controller to the ‘CCTrCH to Process’ FIFO. This indicates that there is a complete CCTrCH of data to process.  
         [0049]    The TrCH processing can then read the CCTrCH slot by slot from the CCTrCH data buffer by following the link list through the RAM. When the data has been processed, the TrCH processor signals back to the buffer controller via another FIFO that the slots in the RAM that the CCTrCH uses can be freed up for use by another CCTrCH.  
         [0050]    Referring now also to FIG. 6, a UMTS system  600  includes a user terminal  610  (commonly referred to as ‘User Equipment’) which communicates over a CDMA radio link with a base station  630  (commonly referred to as a ‘Node B’). The Node B  630  is controlled by a radio network controller  640 , which communicates with other system infrastructure shown collectively as  650 . Such a system (insofar as it has been described up to this point) is well known and need not be described further. However, it will be understood that the arrangement  300  described above for buffering and control of CCTrCH may be advantageously implemented in either a UE  610  or a Node B  630  of the system as shown in the figure.  
         [0051]    It will be appreciated that the method described above for buffering and control of CCTrCH may be carried out in software running on a processor (not shown), and that the software may be provided as a computer program element carried on any suitable data carrier (also not shown) such as a magnetic or optical computer disc.  
         [0052]    It will be also be appreciated that the method described above for buffering and control of CCTrCH may alternatively be carried out in hardware, for example in the form of an integrated circuit (not shown) such as an FPGA (Field Programmable Gate Array) or ASIC (Application Specific Integrated Integrated Circuit).  
         [0053]    In conclusion, therefore, it will be understood that the asynchronous processing of CCTrCH data described above provides an efficient scheme for buffering the received data from the radio and asynchronously processing the CCTrCH in a way that is both memory efficient and spreads out the processing load over time.