Method and apparatus for implementing a MAC coprocessor in a communication system
DCFirst Claim
1. A system for building a downlink portion of a data frame having a predetermined period, for use in a wireless communication system having a base station coupled to a network backhaul and a plurality of Customer Premises Equipment'"'"'s (“
- CPE”
), each of said plurality of CPE'"'"'s being coupled to a plurality of end user connections, and for transmitting data packets from the base station to specified CPE'"'"'s, the system comprising;
a first processor including a Media Access Controller (“
MAC”
) configured to establish and maintain connections with said plurality of CPE'"'"'s ;
a MAC Co-Processor (“
MCP”
) having a Look-Up Table (“
LUT”
) operable to retrieve and store CPE settings for said specific CPE, a buffer operable to store data packets according to a sort criteria, a decision module operable to determine if said buffer contains data to fill said downlink portion of said data frame or if said predetermined period has occurred, said MCP is configured to output said data stored in said buffer when said decision module determines that said buffer contains data to fill said downlink portion of said data frame or when the timeout of said predetermined period has occured; and
modem coupled to receive said data outputted by said MCP.
8 Assignments
Litigations
0 Petitions
Accused Products
Abstract
Disclosed is a novel method and system for efficiently synchronizing, transmitting, and receiving data between a base station and a plurality of customer premises. A MAC coprocessor (MCP) is implemented, which works in conjunction with the MAC in order to produce a robust, high throughput communication system. The MAC coprocessor performs many of the tasks typically performed by prior art MAC'"'"'s, including: during a downlink, storing a data frame, sorting the data frame according to modulation type or other criteria, determining when the data frame is full, and appending a set of CPE settings to the data frame. During an uplink, the MAC coprocessor receives all data and routes the data either to the MAC or a network backhaul. A MAC coprocessor may be used in both the base station and Customer Premises. In both the downlink and uplink processes, having a MAC coprocessor working in conjunction with the MAC may significantly increase the communication system'"'"'s throughput.
-
Citations
71 Claims
-
1. A system for building a downlink portion of a data frame having a predetermined period, for use in a wireless communication system having a base station coupled to a network backhaul and a plurality of Customer Premises Equipment'"'"'s (“
- CPE”
), each of said plurality of CPE'"'"'s being coupled to a plurality of end user connections, and for transmitting data packets from the base station to specified CPE'"'"'s, the system comprising;a first processor including a Media Access Controller (“
MAC”
) configured to establish and maintain connections with said plurality of CPE'"'"'s ;
a MAC Co-Processor (“
MCP”
) havinga Look-Up Table (“
LUT”
) operable to retrieve and store CPE settings for said specific CPE,a buffer operable to store data packets according to a sort criteria, a decision module operable to determine if said buffer contains data to fill said downlink portion of said data frame or if said predetermined period has occurred, said MCP is configured to output said data stored in said buffer when said decision module determines that said buffer contains data to fill said downlink portion of said data frame or when the timeout of said predetermined period has occured; and
modem coupled to receive said data outputted by said MCP. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
said MAC is configured to determine a TDD split, wherein said TDD split is a division of said predetermined period between said uplink portion and said downlink portion.
- CPE”
-
3. The system of claim 2, wherein said downlink portion is transmitted on a first channel and said uplink portion is received on said first channel within said predetermined period.
-
4. The system of claim 1, wherein said data frame further comprises an uplink portion;
said downlink portion is equal to said predetermined period, and said uplink portion is equal to said predetermined period.
-
5. The system of claim 4, wherein said downlink portion is transmitted on a first channel within said predetermined period and said uplink portion is received on a second channel within said predetermined period.
-
6. The system of claim 4, wherein said downlink portion is transmitted on a first channel within a first predetermined period and said uplink portion is received on a second channel within a second predetermined period, wherein said first predetermined period and said second predetermined period do not overlap.
-
7. The system of claim 4, wherein said system further comprises a Quality of Service module (“
- QoS”
) connected to said network backhaul and configured to receive a data packet associated with a specific CPE and to assign a priority level to said data packet.
- QoS”
-
8. The system of claim 1, wherein said predetermined period is five hundred microseconds.
-
9. The system of claim 1, wherein said predetermined period is one millisecond.
-
10. The system of claim 1, wherein said predetermined period is two milliseconds.
-
11. The system of claim 1, wherein said predetermined period is between 250 microseconds and 20 milliseconds.
-
12. The system of claim 1, wherein said sort criteria is a modulation type.
-
13. The system of claim 1, wherein said sort criteria is a forward error correction type.
-
14. The system of claim 1, wherein said sort criteria is a CPE index, wherein said CPE index indicates the specific CPE to which said data packet is destined.
-
15. The system of claim 1, wherein each of said plurality of end user connections has a specific connection ID and said sort criteria is said specific connection ID.
-
16. The system of claim 1, wherein said decision module determines if said buffer contains data to fill said downlink portion of said data frame by iteratively subtracting an amount of downlink bandwidth required by each of said received data packets, at each of said CPE'"'"'s specific modulation type, from a total amount of downlink bandwidth available.
-
17. The system of claim 1, wherein said decision module determines if said buffer contains data to fill said downlink portion of said data frame by iteratively subtracting an amount of downlink bandwidth required by each of said received data packets, at each of said CPE'"'"'s specific FEC type, from a total amount of downlink bandwidth available.
-
18. The system of claim 1, wherein said decision module determines if said buffer contains data to fill said downlink portion of said data frame by iteratively subtracting an amount of downlink bandwidth required by each of said received data packets, at each of said CPE'"'"'s specific modulation and FEC type, from a total amount of downlink bandwidth available.
-
19. The system of claim 2, wherein during said uplink portion of said data frame, said MCP receives a plurality of uplink data packets and routes each of said plurality of uplink data packets to either the MAC or to the network backhaul.
-
20. The system of claim 4, wherein during said uplink portion of said data frame, said MCP receives a plurality of uplink data packets and routes each of said plurality of uplink data packets to either the MAC or to the network backhaul.
-
21. The system of claim 1, wherein said MCP may perform any combination of packing, payload header compression, and fragmentation on said downlink portion of said data frame.
-
22. The system of claim 1, wherein said MCP adds control settings to said data stored in said buffer, wherein said control settings may include a modulation type, a FEC type, an encryption ON/OFF flag, an encryption key, a key number, and modem control information specific to each of said plurality of CPE'"'"'s .
-
23. The system of claim 1, wherein said first processor further comprises:
an uplink bandwidth module configured to allocate available uplink bandwidth according to uplink bandwidth requests from said plurality of CPE'"'"'s .
-
24. A system for building a TDD data frame with a plurality of data packets, said data frame having a predetermined period and comprising a downlink portion and an uplink portion, for use in a communication system having a base station and a plurality of Customer Premises Equipment'"'"'s (“
- CPE”
), each of said plurality of CPE'"'"'s being coupled to a plurality of end user connections, the system comprising;a first processor configured to divide said predetermined period into said downlink portion and said uplink portion;
a coprocessor including a buffer storage module configured to receive and sort said plurality of data packets in a buffer, a buffer update module configured to add control settings to said plurality of data packets in said buffer, an interface module configured to transmit said plurality of data packets in said buffer to an output, wherein said transmission occurs at the end of said predetermined period. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37)
a downlink utilization message module configured to receive a downlink utilization message from said interface module, said downlink utilization message is usable by said first processor to determine said uplink portion and said downlink portion of said predetermined period.
- CPE”
-
34. The system of claim 24, wherein said first processor further comprises:
an uplink bandwidth module configured to allocate available uplink bandwidth according to uplink bandwidth requests from said plurality of CPE'"'"'s .
-
35. The system of claim 24, wherein said system further comprises:
-
a Quality of Service module (“
QoS”
) configured to send said plurality of data packets to said coprocessor, wherein said coprocessor requests each of said data packets from said QoS;
said QoS prioritizes said plurality of data packets according to a predetermined criteria before sending each of said data packets to said coprocessor.
-
-
36. The system of claim 24, wherein said system further comprises a decision module configured to determine if said buffer contains data to fill said downlink portion of said data frame by iteratively subtracting an amount of downlink bandwidth required by each of said incoming data packets, at each of said CPE'"'"'s specific burst type, from a total amount of downlink bandwidth available, wherein a burst type is any combination of a modulation type and a FEC type.
-
37. The system of claim 24, wherein said first processor further comprises:
an uplink bandwidth module configured to allocate available uplink bandwidth according to uplink bandwidth requests from said plurality of CPE'"'"'s.
-
38. A system for building a downlink portion of a FDD data frame having a predetermined period with a plurality of data packets, for use in a communication system having a base station and a plurality of Customer Premises Equipment'"'"'s (“
- CPE”
), each of said plurality of CPE'"'"'s being coupled to a plurality of end user connections, the system comprising;a processor including a Media Access Controller (“
MAC”
) configured to route said data packets to specified end user connections;
a coprocessor including a buffer storage module configured to receive and sort said plurality of data packets in a buffer, a buffer update module configured to add control settings to said plurality of data packets in said buffer, an interface module configured to transmit said plurality of data packets in said buffer to a modem, wherein said transmission occurs during said predetermined period. - View Dependent Claims (39, 40, 41, 42, 43, 44, 45, 46, 47, 48)
a Quality of Service module (“
QoS”
) configured to send said plurality of data packets to said coprocessor, wherein said coprocessor requests each of said data packets from said QoS;
said QoS prioritizes said plurality of data packets according to a predetermined criteria before sending each of said data packets to said coprocessor.
- CPE”
-
48. The system of claim 38, wherein said system further comprises a decision module configured to determine if said buffer contains data to fill said downlink portion of said data frame by iteratively subtracting an amount of downlink bandwidth required by each of said incoming data packets, at each of said CPE'"'"'s specific burst type, from a total amount of downlink bandwidth available, wherein a burst type is any combination of a modulation type and a FEC type.
-
49. A method of building a data frame with a plurality of data packets, said data frame comprising a downlink portion and an uplink portion and having a predetermined period, for use in a communication system having a base station and a plurality of Customer Premises Equipment'"'"'s (“
- CPE”
), each of said plurality of CPE'"'"'s being coupled to a plurality of end user connections, said base station including a MAC processor and a MAC coprocessor, said MAC coprocessor performing the steps of;(a) arranging incoming data packets according to a predetermined priority order, (b) receiving at said MAC coprocessor one of said plurality of data packets corresponding to one of said plurality of CPE'"'"'s , according to said predetermined priority order, (c) sorting said plurality of data packets according to a burst type and storing said one of said plurality of data packets in a buffer, (d) determining if the timeout of said predetermined period has occured, wherein in response to said determination that the timeout of said predetermined period has occurred, skipping step (e) and going directly to step (f), (e) determining if said buffer contains enough of said plurality of data packets to fill said downlink portion of said data frame, wherein in response to said determination that said buffer does not contain enough of said plurality of data packets to fill said downlink portion of said data frame, repeating the process from step (a), otherwise continuing to step (f), (f) transferring contents of said buffer to a modem. - View Dependent Claims (50, 51, 52, 53, 54, 55)
- CPE”
-
56. A system for transmitting at least a portion of an uplink data frame in a wireless communication system, said data frame having a plurality of data packets and having a predetermined period, said communication system having a base station and a plurality of Customer Premises Equipment'"'"'s (“
- CPE”
), each of said plurality of CPE'"'"'s being coupled to a plurality of end user connections, the system comprising;a processor disposed in said base station including a Media Access Controller (“
MAC”
) configured to allot a specific portion of an uplink portion of said data frame to a specific CPE and to transmit an uplink map indicating said allotment to said specific CPE;
an uplink data buffer configured to store uplink data received from said plurality of end user connections coupled to said specific CPE, a coprocessor disposed in said specific CPE configured to allocate said allotted portion of said data frame amongst a plurality of end user connections coupled to said specific CPE, said coprocessor comprising a look-up table configured to store priority parameters corresponding to each of said plurality of end user connections coupled to said specific CPE, a prioritizing module configured to prioritize said uplink data in said uplink data buffer according to said priority parameters corresponding to each of said plurality of end user connections connected to said specific CPE, a decision module configured to receive said uplink map from said processor and determine, according to said received uplink map, when a data burst should be sent to said base station, wherein said data burst contains data pulled from said uplink data buffer in an order determined by said prioritizing module. - View Dependent Claims (57, 58, 59, 60, 61, 62, 63)
said poll-me bit is set such that said MAC will poll said specific CPE with a bandwidth inquiry.
- CPE”
-
62. The system of claim 56, wherein said coprocessor may perform any combination of packing, payload header compression, and fragmentation on said data burst.
-
63. The system of claim 56, wherein said decision module determines how much data will fit in said data burst such that said data burst may be transmitted during said allotted portion of said uplink data frame;
said determination is made with respect to a modulation type of said specific CPE.
-
64. A method of transmitting at least a portion of an uplink data frame in a wireless communication system, said data frame having a plurality of data packets and having a predetermined period, said communication system having a base station and a plurality of Customer Premises Equipment'"'"'s (“
- CPE”
), each of said plurality of CPE'"'"'s being coupled to a plurality of end user connections, the method comprising;transmitting from said base station to a specific CPE an uplink map indicating an allotted portion of said uplink data frame allotted to said specific CPE;
said CPE performing the steps of storing a plurality of uplink data received from said plurality of end user connections coupled to said specific CPE in an uplink data buffer, receiving said uplink map from said base station, prioritizing said uplink data in said uplink data buffer according to a priority parameter corresponding to each of said plurality of end user connections, allocating said allotted portion of said data frame amongst a plurality of end user connections coupled to said specific CPE, determining a transmit time, according to said received uplink map, when a data burst should be sent to said base station, wherein said data burst contains data pulled from said uplink data buffer in an order determined by said prioritizing, transmitting said data burst at said transmit time. - View Dependent Claims (65, 66, 67, 68, 69, 70, 71)
said poll-me bit is set, such that said MAC will poll said specific CPE with a bandwidth inquiry.
- CPE”
-
70. The method of claim 64, wherein said coprocessor may perform any combination of packing, payload header compression, and fragmentation on said data burst.
-
71. The method of claim 64, further comprising the step of
determining how much data will fit in said data burst such that said data burst may be transmitted during said allotted portion of said uplink data frame; said determination is made with respect to a modulation type of said specific CPE.
Specification