The present invention relates to a packet processing device or a communication device provided between an upper layer device and a lower layer device. For example, the present invention is preferably applied to a wireless device (base station and mobile terminal) used for WiMAX, IEEE802.6, or the like.
There has been known a packet communication using an orthogonal frequency division multiples (OFDM) or an orthogonal frequency division multiple access (OFDMA). As an example, the packet communication is used in a device using a standard such as IEEE802.16, WiMAX.
The frame is constituted by a plurality of burst data besides control information of a PREAMBLE, a frame control header (FCH), and a downlink map (DL-MAP). Herein, The FCH is information that controls the frame of a downlink. The DL-MAP is information of time at which burst data is started for a time division multiplexing (TDM) and a time division multiple access on a downlink. The burst data includes a plurality of packets (control MAC-PDUs and data MAC-PDUs) in the frame that are integrated into one unit. The length of burst data is variable. Accordingly, there is no regularity in the time at which the burst data is ended. The FCH, the DL-MAP, and the burst data areas arranged in parallel in a plurality of subcarriers, and a plurality of burst data are arranged at the same reception timing (unit of symbol). For example, in the case of
A data processing of burst data in the frame received by a packet processing device or a communication device from a lower layer device is executed by a controller (CPU) that is an upper layer device. Timings of the data processing in the CPU are illustrated in
The case that the CPU executes a processing of data by the burst data unit is illustrated in
The case that the CPU executes a processing of data by the MAC-PDU unit is illustrated in
Japanese Laid-open Patent Publication No. 2000-115194 is known as a technique for controlling a packet.
Accordingly, it is an object of the present invention to provide a packet processing device or a communication device that receives a packet including control data required for a transmission control and a data block including another packet, and provides the packet obtained by a reception processing of the data block to an upper layer device. The communication device includes a reception data supply unit that changes the unit of data to be supplied to the upper layer device after the packet including the control data is supplied to the upper layer device.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed.
Hereinafter, embodiments of the invention will be described with reference to the drawings. The structures of the embodiments are examples, and the structures of the invention are not limited to the structures of the embodiments.
Before describing the embodiments, the structure of a frame that is processed by a packet processing device or a communication device will be defined in the following.
A frame has the structure of
In the embodiments, a control MAC-PDU shall include a DL-Map and a UL-Map. A data packet means a MAC-PDU except a control MAC-PDU. Burst data includes at least a data packet (there is a case that burst data does not include a control packet). The burst data are arranged in a plurality of data channels in parallel in a frame.
It is preferable that a first embodiment and a second embodiment be applied to a terminal that executes a communication with a wireless base station with the standard of WiMAX or the like. Hereinafter, the first embodiment will be described with reference to
In
The Bus 5 connects the CPU 1 and the packet processor 2, and transmits data from the packet processor 2 to the CPU 1. The wireless processing unit 3 demodulates a received wireless signal, converts into digital data, and transmits a frame to the packet processor 2. The packet processor 2 receives the data of the frame from the wireless processing unit 3, and stores the data of the frame in the memory 4 in the packet processor 2 as burst data. Further, the packet processor 2 transmits predetermined data to the CPU 1 via the bus 5 based on an order from the CPU 1. The CPU 1 controls the packet processor 2 to receive burst data from the packet processor 2 via the bus 5, and executes an analysis of the burst data.
The packet processor (broad band hardware: BB-HW) 2 is equipped in a packet processing device or a communication device. The packet processor 2 is equipped with a burst notification control register 6, a MAC-PDU notification control register 7, an IRQ output controller 8, a CPU interface 9, a data controller 10, and the memory 4.
The data controller 10 receives data of the frame form the wireless communication unit 3. Further, the data controller 10 writes the received data in the memory 4 and notifies the IRQ output controller 8 of a reception state of the data. The reception state of data herein means (1) start of reception of a frame, (2) completion of reception of a MAC-PDU, (3) completion of reception of burst data, (4) completion of reception of a frame.
The wireless signal processing unit 3 is a lower layer device of the packet processor 2. The wireless signal processing unit 3 receives a frame arranged in a frequency corresponding to the channel of
When a request is received from the CPU1, the CPU interface 9 sets a flag corresponding to the content of the request in the MAC-PDU notification control register 7 and the burst notification control register 6.
The IRQ output controller 8 receives a reception completion of burst data and a reception completion of a MAC-PDU from the data controller 10. Then, the IRQ output controller 8 transmits the reception state of the data of the aforementioned (1) to (4) to the CPU 1 via an interrupt request line based on the flags of the MAC-PDU notification control register 7 and the burst notification control register 6.
The CPU 1 is an upper layer device that executes a data processing of burst data. The CPU 1 is connected with the bus 5 and the IRQ output controller 8. The CPU 1 executes a processing of reading MAC-PDU data and burst data based on the notification from the interrupt request line. Further, the CPU 1 analyzes the read data, and transmits information for controlling the IRQ output controller 8 to the burst notification control register 6 and the MAC-PDU notification control register 7 via the CPU interface 9.
The burst notification control register 6, the MAC-PDU notification control register 7, the IRQ output controller 8, the CPU interface 9, the data controller 10 constitute a reception data supply part. The reception data supply part receives a packet including data and a data block including a packet from the wireless processing unit 3 that is a lower layer device, and provides the obtained packet by a reception processing of the data block to the CPU 1 that is an upper layer.
Transmission/reception of burst data between the CPU 1 and the packet processor 2 will be described below with reference to
As a step for an initialization, step S501 and step S502 are executed. In step S501, the CPU1 sets the packet processor 2 to execute a reception completion notification of data for every burst data (set a flag in burst notification control register 6). In step S502, the CPU 1 sets the packet processor 2 to execute a reception completion notification for every MAC-PDU (set a flag in MAC-PDU notification control register 7). By the setting of step S501 and S502, a notification that reception of data is completed is notified to the CPU 1 from the packet processor 2 by the both units of MAC-PDU and burst data.
Next, steps after reception of a frame are executed. In step S503, when data of a frame is received from the wireless signal processing unit 3, the packet processor 2 notifies the CPU 1 that the reception of the frame is started. In step S504, when the reception a unit of MAC-PDU in the burst data is finished, the packet processor 2 notifies the CPU 1 that reception of the data of MAC-PDU is completed. In step S505, when the notification in step S504 is confirmed, the CPU1 requests the packet processor 2 to read the data of the received MAC-PDU. In step S506, the packet processor 2 transmits the data of the MAC-PDU to correspond to the request from the CPU 1 in step S505. The packet processing device 2 repeats the processing of step S504 to S506 until the CPU 1 analyzes the data of the received MAC-PDU and receives data of a control MAC-PDU necessary for a data processing.
When the data of the received MAC-PDU is analyzed and data of a control MAC-PDU necessary for a data processing is received by the CPU 1, the operation goes to step S507. In step S507, the CPU 1 issues an order that the packet processor 2 stops executing notification of reception by the unit of MAC-PDU (erases the flag of MAC-PDU notification control register 7). When the order is received in step S507, the packet processor 2 stops executing reception completion notification to the CPU 1 by the unit of MAC-PDU, and the operation goes to step S508.
In step S508, when reception of the burst data is completed, the packet processor 2 notifies the CPU 1 that reception of the burst data is completed. In step S509, the CPU 1 requests transmission of the burst data to the packet processor 2. In step S510, the packet processor 2 transmits burst data to the CPU 1. The packet processing device repeats the processing of step S508 to step S510 till reception of the data in the frame is completed.
When reception of the data in the frame is completed, the packet processor 2 executes step S511. In step S511, the packet processor 2 notifies the CPU 1 that reception of the data in the frame is completed. In step S512, the CPU 1 sets the packet processor 2 to execute a reception completion notification for every MAC-PDU. By the step S512, when the next frame is received, the packet processor 2 can execute a reception completion notification of data to CPU 1 by the unit of MAC-PDU.
With the structure, it becomes possible to change the unit of the data supplied to the upper layer device after a packet including control data is supplied to the upper layer device. Herewith, it becomes possible for a packet processing device and a communication device to make consideration of the load of the upper layer generated by supplying data to the upper layer device, and to transmit control data fast to the upper layer.
Hereinafter a second embodiment will be described with reference to
The structure of a packet processing device of the second embodiment is illustrated in
In the second embodiment, a reception data supply part includes the data controller 10, the burst notification control register 6, the MAC-PDU notification control register 7, the IRQ output controller 8, the CPU interface 9, the valid MAC-PDU notification register 11, the valid burst notification register 12, the MAC-PDU information accumulation registers 131, 132, 13n, the frame end register 14, and the frame start register 15. The receive data supply part receives a packet including data and a data block including a packet from the wireless processing unit 3 that is a lower layer device, and provides the packet obtained by a reception processing of the data block to the CPU that is an upper layer device.
The bus 5 connects the CPU 1 and the packet processor 2, and transmits data from the packet processor 2 to the CPU 1.
The packet processor 2 is equipped with the memory 4, the burst notification control register 6, the MAC-PDU notification control register 7, the IRQ output controller 8, the CPU interface 9, the data controller 10, the valid MAC-PDU notification register 11, the valid burst notification register 12, the MAC-PDU information accumulation registers 131, 132, . . . 13n, the frame end register 14, and the frame start register 15.
The data controller 10 is connected with the memory 4, the burst notification control register 6, the MAC-PDU notification control register 7, the valid MAC-PDU notification register 11, the valid burst notification register 12, the MAC-PDU information accumulation registers 131, 132, . . . 13n, the frame end register 14, and the frame start register 15.
The data controller 10 receives the data of the frame from the wireless processing unit 3 (not illustrated), and stores the data in the memory 4. The data controller 10 receives the data of the frame and sets a flag indicative of which burst data includes a MAC-PDU that can be transferred to the valid MAC-PDU notification register 11. The data controller 10 receives the data of the frame and sets a flag indicative of which burst data can be transferred to the effective notification register 12.
The data controller 10 receives the data of the frame, and executes the writing processing of the following (1) to (4) to the MAC-PDU information accumulation registers 131, 132, . . . 13n corresponding to each burst in the frame.
(1) The data controller 10 executes writing of a reception state of MAC-PDU.
(2) The data controller 10 executes writing of a state of the burst notification control register 6.
(3) The data controller 10 executes writing of the cumulative number of the received MAC-PDU.
(4) The data controller 10 executes writing of the data length of the received burst data.
The data controller 10 receives the data of the frame, detects a cause of interrupt to the CPU 1, and writes various causes of interrupt to the burst notification control register 6, the MAC-PDU notification control register 7, the frame end register 14, and the frame start register 15. Specifically, the following operations of (1) to (4) are executed.
(1) When the packet processor 2 starts receiving of the frame, the data controller 10 executes writing to the frame start register 15.
(2) When the packet processor 2 finishes the reception of the frame, the data controller 10 executes writing to the frame end register 14.
(3) When the packet processor 2 completes the reception of MAC-PDU, the data controller 10 executes writing to the MAC-PDU notification control register 7.
(4) When the packet processor 2 completes the reception of the burst data, the data controller 10 executes writing to the burst notification control register 6.
The CPU interface 9 is connected with the bus 5, the burst notification control register 6, the MAC-PDU notification control register 7, the valid MAC-PDU notification register 11, the valid burst notification register 12, the MAC-PDU information accumulation registers 131, 132, . . . 13n, the frame end register 14, and the frame start register 15. The CPU interface 9 extracts data from the valid MAC-PDU notification register 11, the valid burst notification register 12, the MAC-PDU information accumulation registers 131, 132, . . . 13n, the frame end register 14, and the frame start register 15 corresponding to the request from the CPU 1, and transmits to the CPU 1 via the bus 5. Further, the CPU interface 9 receives interrupt mask requests from the CPU1, and writes control information for controlling the IRQ output controller 8 in the burst notification control register 6, the MAC-PDU notification control register 7, the frame end register 14, and the frame start register 15.
The IRQ output controller 8 is connected with the bus 5, the burst notification control register 6, the MAC-PDU notification control register 7, the frame end register 14, the frame start register 15, the valid MAC-PDU notification register 11, and the valid burst notification register 12. The IRQ output controller 8 monitors the burst notification control register 6, the MAC-PDU notification control register 7, the frame end register 14, the frame start register 15, the valid MAC-PDU notification register 11, and the valid burst notification register 12, and executes an interrupt notification to the CPU 1 by using an interrupt request line when the state of each register is changed. The interrupt notification is executed when a frame is started, when reception of a MAC-PDU is completed, when reception of burst data is completed, and when the frame is ended.
The CPU 1 is connected with the bus 5 and the IRQ output controller 8. The CPU 1 executes a reading processing of MAC-PDU data and burst data based on the notification from the interrupt request line. Further, the CPU 1 analyzes the read data, and transmits information for controlling the IRQ output controller 8 to the burst notification control register 6, the MAC-PDU notification control register 7, the frame end register 14, and the frame start register 15 via the CPU interface 9. Further, the CPI 1 reads out the data state of the frame described in the valid MAC-PDU notification register 11, the valid burst notification register 12, the MAC-PDU information accumulation registers 131, 132, . . . 13n via the CPU interface 9.
The data controller 10 writes information in the fields of R1 to R4 in accordance with the state of the data received from the wireless processing unit 3.
R1 indicates a valid field. The valid field is set by the data controller 10. The valid field is set to “1” when the data controllers 10 receives the initial MAC-PDU of burst data and is set to “0” at the end of the frame.
R2 indicates a state field of the burst notification control register 6 for indicating the state of the burst notification control register 6. The field is set to “1” by the data controller 10 when a notification of a Burst Available interrupt of the burst notification control register 6 is made. When a Burst Available interrupt of the burst notification control register 6 is masked, polling of the state field R2 of the burst notification control register 6 by the CPU 1 allows knowing a reception completion of burst data without an interrupt notification from the IRQ output controller 8.
R3 is a reception MAC-PDU number storage field for storing the cumulative number of the MAC-PDU that has been received. When a burst data has been received, the data processing unit 10 stores the total number of MAC-PDU whose reception is completed in the field of R3. After the packet processor 2 notifies the CPU 1 of MAC-PDU possible interrupt, the CPU 1 confirms the table. Since there is a possibility that the number of reception MAC-PDU is increased, the CPU 1 confirms the actual number of MAC-PDU that can be received with the field. When the IRQ output controller 8 executes notification by a Burst Available interrupt, the field indicates the total number of the MAC-PDUs in the burst data.
R4 is an accumulation burst length storage field for storing the data length of received data of the burst data. When burst data is received, the data processing unit 10 stores the data length of the burst data in the field of R4. After the packet processor 2 notifies the CPU 1 by MAC-PDU possible interrupt, the CPU 1 confirms the field of R4. Since there is a possibility that the number of received MAC-PDU (accumulation burst length) increases, the packet processor 2 notifies CPU 1 of the length of the burst data of MAC-PDU which can be received by the field. When notification is made by a Burst Available interrupt, the field indicates the length of burst data of the entire burst.
Burst Available field IR0a is a register for storing an interrupt factor of the burst notification control register 6 by the data controller 10. MAC-PDU Available field IR02a is a register for storing an interrupt factor of the MAC-PDU notification control register 7 by the data controller 10. The frame end filed IR03a is a register for storing an interrupt factor of the frame end register 14 by the data controller 10. The frame start field IR04a is a register for storing an interrupt factor of the frame start register 15 by the data controller 10.
Burst Available field IR01b is a register for storing an interrupt mask of the burst notification control register 6 by the data controller 10. MAC-PDU Available filed IR02b is a register for storing an interrupt mask of the MAC-PDU notification control register 7 by the data controller 10. Frame end field IR03b is a register for storing an interrupt mask of the frame end register 14 by the data controller 10. Frame start field IR04b is a register for storing an interrupt mask of the frame start register 14 by the data controller 10.
When the data controller 10 sets “1” in Burst Available field IR01a, the IRQ output controller 8 executes an interrupt to the CPU 1 by every burst. When the data controller 10 sets “1” in Burst Available field IR02a, the IRQ output controller 8 executes an interrupt to the CPU 1 by every MAC-PDU. When the data controller 10 sets “1” in frame end field IR03a, the IRQ output controller 8 executes an interrupt that the frame is ended to the CPU1. When the data controller 10 sets “1” in frame start field IR04a, the IRQ output controller 8 executes an interrupt that the frame is started to the CPU1.
When CPU 1 sets “1” in Burst Available mask field IR01b, the IRQ output controller 8 stops the interrupt by every burst to the CPU 1. When the CPU 1 sets “1” in MAC-PDU Available mask field IR02b, the IRQ output controller 8 stops the interrupt to the CPU 1 by every MAC-PDU. When CPU 1 sets “1” in frame end mask field IR03b, the IRQ output controller 8 stops the interrupt that the frame is ended to the CPU 1. When CPU 1 sets “1” in frame start mask field IR04b, the IRQ output controller 8 stops the interrupt that the frame is started to the CPU 1.
Transmission/reception of burst data between the CPU 1 and the packet processor 2 will be described below with reference to
In step S101, since the data controller 101 receives a frame and sets “1” in the field of IR04a, the IRQ output controller 8 issues an interrupt of frame start to the CPU 1. Further, since the data controller 10 sets “1” in the field of IR02a, the IRQ output controller 8 notifies the CPU 1 that a MAC-PDU can be received. In step S102, the CPU 1 confirms the content of the valid MAC-PDU notification register 11. Specifically, the CPU 1 confirms that a valid MAC-PDU exists in which burst data. In step S103, the CPU 1 reads MAC-PDU information accumulation register corresponding to the burst data confirmed in step S102, and confirms the number of valid MAC-PDU in the burst data or the received data size. In step S104, based on the order from the CPU 1, the packet processing device 2 transmits data to the CPU 1 from the memory 4 by the number of valid MAC-PDU or received data size. A DL-MAP is transferred to CPU 1 in the step S104 by the packet processor 2 as the first data of each frame, because the embodiment can handle the DL-MAP as a MAC-PDU as well.
In step S105, the data controller 10 sets “1” in the field of IR02a to notify the CPU 1 that the IRQ output controller 8 can receive a MAC-PDU. In step S106, the CPU 1 confirms the content of the valid MAC-PDU notification register 11. Specifically, the CPU 1 confirms that a valid MAC-PDU exists in which burst data. In step S107, the CPU 1 reads the MAC-PDU information accumulation register corresponding to the burst data confirmed in step S106, and confirms the number of valid MAC-PDU in the burst data or the received data size. In step S108, based on the order from the CPU 1, the packet processing device 2 transmits data to the CPU 1 by the number of the valid MAC-PDU or the received data size. The processing of step S105 to S108 is repeated until a UL-MAP which is a type of a control MAC-PDU is found in a MAC-PDU.
In step S109, the data controller 10 sets “1” in the field of IR02a to notify the CPU 1 that the IRQ output controller 8 can receive a MAC-PDU. In step S110, the CPU 1 confirms the content of the valid MAC-PDU notification register 11. Specifically, the CPU 1 confirms that a valid MAC-PDU exists in which burst data. In step S111, the CPU 1 reads the MAC-PDU information accumulation register corresponding to the burst data confirmed in step S110, and confirms the number of valid MAC-PDU in the burst data or the received data size. In step S112, based on the order from the CPU 1, the packet processing device 2 transmits data to the CPU 1 from the memory 4 by the number of valid MAC-PDU or the received data size. Herein, the data transmitted to the CPU 1 includes a UL-MAP.
In step S113, the CPU 1 sets “1” in the field of IR02b of the burst notification control register 6. Herewith, the IRQ output controller 8 stops executing an interrupt to the CPU 1 by the unit of MAC-PDU.
In step S114, since the data controller 10 sets “1” in the field of IR01a, the IRQ output controller 8 notifies the CPU 1 that burst data can be received. In step S115, the CPU 1 confirms the content of the valid burst notification register 12. Specifically, the CPU 1 confirms that a valid MAC-PDU exists in which burst data. In step S116, the CPU 1 reads the MAC-PDU information accumulation register corresponding to the burst data confirmed in step S115, and confirms the number of valid MAC-PDU in the burst data or the received data size. In step S117, based on the order from the CPU 1, the packet processing device 2 transmits data to the CPU 1 from the memory 4 by the number of valid MAC-PDU or the received data size. The processing of step S114 to step S117 is repeated for every burst data in the frame.
In step S118, when transmission of the last burst data to the CPU 1 is finished, the packet processing device 2 sets “1” in the field IR03a of the frame end register 14 in order to inform that the frame is finished. When “1” is set in the field IR03a of the frame end register 14, the IRQ output controller 8 issues a frame end interrupt to the CPU 1. In step S119, the CPU 1 sets the field of IR02b in the MAC-PDU notification control register 7 of the packet processing device 2 to “0”.
With the above structure, it becomes possible to change the unit of the data supplied to the upper layer device after a packet including control data is supplied to the upper layer device. Herewith, in the packet processing device or the communication device, it becomes possible to make consideration of the load of the upper layer device generated by supplying data to the upper layer device, and to transmit the control data fast to the upper layer device.
The above described embodiments disclose the following invention. The following invention can be arbitrarily combined as needed.
This is a continuation of Application PCT/JP2007/062285, filed on Jun. 19, 2007, the entire contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP2007/062285 | Jun 2007 | US |
Child | 12637178 | US |