Method and apparatus for generating and using dynamic profile for cable transport system
By dynamically adjusting bit loading based on each micro-slot of the cable transmission system, dynamic configuration files are used to solve the problem of difficult to quickly adapt to channel damage in the prior art, achieving higher system throughput and faster configuration files Adjustment.
Patent Information
- Application Number
- CN202411393771.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2019-06-17
- Filing Date
- 2020-06-16
- Publication Date
- 2025-02-18
AI Technical Summary
The prior art is difficult to quickly adjust the bit loading of each microslot in a cable transmission system, resulting in the inability to quickly adapt when the channel is damaged, affecting the overall throughput of the system.
By dynamically adjusting bit loading on a per-microslot basis, dynamic profiles reflect channel damage in real time at the independent resource level, allowing the upstream scheduler to perform adjustments locally without communicating with the cable modem.
It realizes rapid response under dynamic noise conditions, improves the overall throughput of the system, and avoids the limitations of communication overhead and adjustment time in the existing configuration file management mechanism.
Smart Images

Figure CN119483869A_ABST
Abstract
Description
[0001] Divisional application
[0002] This application is a divisional application of application number 202080057756.3, application date June 16, 2020, and titled “Method and device for generating and using dynamic configuration files for cable transmission systems”.
[0003] CROSS-REFERENCE TO RELATED APPLICATIONS
[0004] This application is based on Priority is claimed to U.S. Provisional Application Serial No. 62 / 862,276, filed on June 17, 2019, with attorney docket number C1528.70005US00, entitled “METHODS AND APPARATUS FOR GENERATING AND USING DYNAMIC PROFILES FOR CABLE TRANSMISSION SYSTEMS,” which is incorporated herein by reference in its entirety. Technical Field
[0005] The techniques described herein generally relate to creating dynamic profiles for cable transmission systems, and utilizing such dynamic profiles during scheduling, and in particular to creating and utilizing Orthogonal Frequency Division Multiple Access (OFDMA) transmissions in cable systems. Background Art
[0006] Multiple generations of standards are used in the industry for cable data transmission. For example, the Cable Data Service Interface Specification (DOCSIS) 3.1 is a standard for data transmission in cable systems, which can affect the OFDMA technology of cable upstream data transmission. Different bit loadings can be used to transmit OFDM symbols. Bit loading refers to the modulation order in the Quadrature Amplitude Modulation (QAM) technology, such as Binary Phase Shift Keying (BPSK), Quadrature Phase Shift Keying (QPSK), 8-QAM, 16-QAM, and / or other bit loadings that can be used for OFDM transmission. Different bit loadings can allow different numbers of bits per OFDM symbol. For example, QPSK provides two bits per symbol, 16-QAM provides four bits per symbol, and 32-QAM provides five bits per symbol. Bit loading can include trade-offs. For example, while lower bit loading provides a smaller information rate in bits per second for the same symbol rate, the transmission is generally more reliable because it is more robust against channel impairments.
[0007] A profile may be used to specify a bit loading pattern that may be used by one or more cable modems (CMs). For example, DOCSIS 3.1 provides OFDMA upstream data profiles for upstream channels. Each such profile may specify a bit loading pattern that may be used by one or more CMs for a particular time period. Such profiles may include information such as an Interval Usage Code (IUC) number (or profile number, e.g., 5, 6, 9, 10, 11, 12, or 13), a bit loading number for each mini-slot or sequentially consecutive mini-slots in an OFDMA channel (e.g., where the bit loading number may range from 0 (no transmission) to 12 (4096-QAM)), and / or a pilot pattern index for each mini-slot or sequentially consecutive mini-slots in an OFDMA channel. Profile definitions may be communicated to a CM via an Upstream Channel Descriptor (UCD) message. The assignment of a profile to a CM may be communicated to the CM using a Transmit Channel Configuration (TCC) in a Registration Response (REG-RSP) or Dynamic Bonding Change (DBC) message. The CM supports only a limited number (eg, 2) of OFDMA data profiles. Summary of the invention
[0008] In accordance with the disclosed subject matter, devices, systems, and methods are provided for obtaining OFDMA channel performance metrics on a per-resource (e.g., per mini-slot) basis for a group of CMs, and for dynamically adjusting a bit loading pattern on a per-resource basis for a group of CMs, wherein the adjusted bit loading is then adopted by an upstream scheduler without the need to communicate with these CMs.
[0009] Some embodiments relate to a computerized method for scheduling independent orthogonal frequency division multiple access (OFDMA) resources on an upstream channel to service a data transmission request of a downstream device. The method includes generating a schedule of available resource groups on the upstream channel based on a dynamic bit loading profile to service the data transmission request, including generating, for a first pulse, data indicating a first bit loading profile for a first resource group from the available resource group, and generating, for a second pulse, data indicating a second bit loading profile for a second resource group from the available resource group. The method includes transmitting the schedule to a downstream device so that the downstream device is configured to encode the first pulse by encoding the first resource group using the first bit loading profile, and to encode the second pulse by encoding the second resource group using the second bit loading profile.
[0010] In some instances, the channel includes a group of time frames (such as an OFDMA frame group); each frame includes a related group of pulses, the related group including a first pulse, a second pulse, and one or more additional pulses, and generating the schedule includes generating data indicating a bit loading profile for each pulse of each frame from the frame group.
[0011] In some instances, the available resource groups include mini-slot groups, and generating the schedule includes, for a first pulse, generating data indicating a first bit loading profile for a first group of one or more mini-slots from the mini-slot group, and for a second pulse, generating data indicating a second bit loading profile for a second group of one or more mini-slots from the mini-slot group.
[0012] In some examples, the method includes independently testing the minislot groups of the channel using a single minislot grant for each minislot in the minislot group to generate performance data for each minislot of the minislot group; and generating a dynamic bit loading profile based on the performance data. Testing the minislot groups may include grouping the downstream devices into a plurality of device groups, and for each device group of the plurality of device groups, collecting performance data for the minislot group (including determining a plurality of minislot subgroups of the minislot group, and collecting performance data for each minislot subgroup using a frame of the channel that is different from a frame for other minislot subgroups).
[0013] In some instances, the method includes scheduling non-data transmission requests based on performance data of each mini-slot of the mini-slot group, thereby avoiding scheduling non-data transmission requests in one or more mini-slots of the mini-slot group with relevant performance data, the relevant performance data indicating impairment of the mini-slot. The non-data transmission request may include a ranging request. Scheduling the ranging request includes determining, based on the performance data of each mini-slot of the mini-slot group, that an existing ranging region is associated with one or more mini-slots having performance data indicating impairment; and determining a new ranging region based on the performance data.
[0014] Some embodiments relate to a device. The device is configured to schedule independent orthogonal frequency division multiple access (OFDMA) resources on an upstream channel to serve a data transmission request of a downstream device. The device includes a processor in communication with a memory. The processor is configured to execute instructions stored in the memory. The instructions cause the processor to generate a scheduling table of available resource groups on the upstream channel according to a dynamic bit loading profile to serve the data transmission request, including generating data indicating a first bit loading profile for a first resource group from the available resource group for a first pulse, and generating data indicating a second bit loading profile for a second resource group from the available resource group for a second pulse. The instructions also cause the processor to transmit the scheduling table to the downstream device, so that the downstream device is configured to encode the first pulse by encoding the first resource group using the first bit loading profile, and encode the second pulse by encoding the second resource group using the second bit loading profile.
[0015] In some instances, the channel includes a group of time frames (such as OFDMA frames); each frame includes a related group of pulses, the related group including a first pulse, a second pulse, and one or more additional pulses, and generating the schedule includes generating data indicating a bit loading profile for each pulse of each frame from the group of frames.
[0016] In some instances, the available resource groups include mini-slot groups, and generating the schedule includes, for a first pulse, generating data indicating a first bit loading profile for a first group of one or more mini-slots from the mini-slot group, and for a second pulse, generating data indicating a second bit loading profile for a second group of one or more mini-slots from the mini-slot group.
[0017] In some instances, the instructions are further configured to cause the processor to independently test the minislot group of the channel using a single minislot grant for each minislot in the minislot group to generate performance data for each minislot of the minislot group; and generate a dynamic bit loading profile based on the performance data. Testing the minislot group includes grouping the downstream devices into a plurality of device groups, and for each device group of the plurality of device groups, collecting performance data for the minislot group (including determining a plurality of minislot subgroups of the minislot group, and collecting performance data for each minislot subgroup using a frame of the channel that is different from a frame for other minislot subgroups).
[0018] In some instances, the instructions are further configured to cause the processor to schedule non-data transmission requests based on performance data of each mini-slot of the mini-slot group, thereby avoiding scheduling non-data transmission requests in one or more mini-slots of the mini-slot group with relevant performance data, the relevant performance data indicating impairment of the mini-slot. The non-data transmission request may include a ranging request. Scheduling the ranging request includes determining, based on the performance data of each mini-slot of the mini-slot group, that an existing ranging region is associated with one or more mini-slots having performance data indicating impairment; and determining a new ranging region based on the performance data.
[0019] Some embodiments relate to a non-transitory computer-readable medium including instructions. When executed by one or more processors on a computing device, the instructions are operable to cause the one or more processors to generate a schedule of available resource groups on an upstream channel based on a dynamic bitloading profile to service a data transmission request of a downstream device, including generating, for a first pulse, data indicating a first bitloading profile for a first resource group from the available resource group, and generating, for a second pulse, data indicating a second bitloading profile for a second resource group from the available resource group. The instructions are operable to cause the one or more processors to transmit the schedule to the downstream device, so that the downstream device is configured to encode the first pulse by encoding the first resource group using the first bitloading profile, and encode the second pulse by encoding the second resource group using the second bitloading profile.
[0020] In some instances, the channel includes a group of time frames (such as OFDMA frames); each frame includes a related group of pulses, the related group including a first pulse, a second pulse, and one or more additional pulses, and generating the schedule includes generating data indicating a bit loading profile for each pulse of each frame from the group of frames.
[0021] In some instances, the available resource groups include mini-slot groups, and generating the schedule includes, for a first pulse, generating data indicating a first bit loading profile for a first group of one or more mini-slots from the mini-slot group, and for a second pulse, generating data indicating a second bit loading profile for a second group of one or more mini-slots from the mini-slot group.
[0022] In some examples, the instructions are further operable to cause one or more processors to independently test the minislot group of the channel using a single minislot grant for each minislot in the minislot group to generate performance data for each minislot of the minislot group; and generate a dynamic bit loading profile based on the performance data. Testing the minislot group includes grouping the downstream devices into a plurality of device groups, and for each device group of the plurality of device groups, collecting performance data for the minislot group (including determining a plurality of minislot subgroups of the minislot group, and collecting performance data for each minislot subgroup using a frame of the channel that is different from a frame for other minislot subgroups).
[0023] In some instances, the instructions are further operable to cause the one or more processors to schedule non-data transmission requests based on performance data for each mini-slot of the mini-slot group, thereby avoiding scheduling non-data transmission requests in one or more mini-slots of the mini-slot group with associated performance data indicating impairment of the mini-slot. The non-data transmission request may include a ranging request. Scheduling the ranging request includes determining, based on performance data for each mini-slot of the mini-slot group, that an existing ranging region is associated with one or more mini-slots having performance data indicating impairment; and determining, based on the performance data, a new ranging region.
[0024] Therefore, in order that the following text and its specific embodiments may be better understood, and in order that the contribution to the art may be better appreciated, the features of the disclosed subject matter have been outlined rather broadly. There are, of course, additional features of the disclosed subject matter which will be described below and which will form the subject matter of the appended claims. It should be understood that the phrases and terms employed herein are for the purpose of description and should not be regarded as limiting. BRIEF DESCRIPTION OF THE DRAWINGS
[0025] In the accompanying drawings, each equivalent or nearly equivalent component shown in each figure is represented by a similar reference numeral. For the sake of clarity, each component may not be labeled in each figure. The accompanying drawings are not necessarily drawn to scale, but rather focus on illustrating various aspects of the techniques and devices described herein.
[0026] Figure 1A Example configurations of cable transmission systems are shown according to some embodiments.
[0027] Figure 1B Exemplary detailed configurations of cable transmission systems are shown according to some embodiments.
[0028] Figure 2A A diagram of constituent mini-slots of an OFDMA channel and constituent sub-carriers of the mini-slots is shown according to some embodiments.
[0029] Figure 2B A typical OFDMA frame structure is shown according to some examples.
[0030] Figure 3 A diagram of an OFDMA frame and designated mini-slots for independent mini-slot performance measurements is shown in accordance with some embodiments.
[0031] Figure 4 Typical bitloading profiles are shown according to some embodiments, including a high profile, a low profile, and a dynamic profile.
[0032] Figure 5 An exemplary computerized method for measuring upstream channel performance on a per mini-slot basis is shown in accordance with some embodiments.
[0033] Figure 6 A diagram illustrating retention opportunities for performance measurement using test data is shown in accordance with some embodiments.
[0034] Fig. 7A An example of a computerized process for generating bitloading for a resource (eg, mini-slot) is shown in accordance with some embodiments.
[0035] Figure 7B An example of using bitloading for a computerized process in an upstream scheduler is shown according to some embodiments.
[0036] Figure 8 FIG. 1 is a state transition diagram of a typical process for calculating the bit loading of each resource (eg, mini-slot) according to some embodiments.
[0037] Fig. 9 A typical illustration of the relationship between profile management intervals, performance measurement intervals, and dynamic profile intervals. DETAILED DESCRIPTION
[0038] The inventors have recognized and appreciated that performance information for OFDMA data transmissions may not be readily determined from the CMTS pulse receiver at a per-resource level (e.g., per mini-slot). Therefore, it is difficult to determine and / or identify problems associated with impairments of portions of a channel. The inventors have also recognized and appreciated that each CM supports only a limited number of bit loading profiles, and that continually changing and / or modifying these profiles may be time consuming and inefficient. Furthermore, when scheduling upstream, the same data profile is typically applied to the same CM across an entire channel, such that the bit loading of an individual resource (e.g., mini-slot) may not be adjusted quickly enough, such as to compensate for problems with only a portion of the channel.
[0039] The inventors have developed techniques for obtaining performance information such as forward error correction (FEC) and modulation error (MER) (also referred to as signal-to-noise ratio (SNR) in the cable industry) at a per-resource level, such as at a per-micro-slot granularity. The techniques may obtain such performance information by monitoring active data and / or test data, rather than relying solely on probe signals. In particular, the inventors have recognized limitations of probe signals, such as the fact that probe signals impose additional overhead in terms of channel bandwidth usage, may take considerable time to converge, and may not reflect impulse noise in real time.
[0040] These techniques may include obtaining performance measurements by scheduling a single resource burst (such as a single mini-slot burst) for real-time transmission of user traffic. For example, a single mini-slot burst may be scheduled with a small percentage of mini-slots per frame and in a rotating pattern across frames, while the remainder of the mini-slots in any frame may be used for a single mini-slot or multiple mini-slot bursts per normal scheduler, so that performance measurements for each mini-slot may be achieved over time, and there is little or no overhead (associated with fragmentation of a single mini-slot burst) in terms of channel utilization. Performance measurements may be obtained per CM group. For example, according to a predetermined CM profile designation mechanism, grouping may be determined based on CMs assigned the same one or more bit loading profiles. For example, such groups may reflect CMs with similar characteristics, such as location, CM type, etc. Performance measurement techniques may include ensuring that there is a guaranteed measurement opportunity for each mini-slot and each CM group in any measurement interval. In some embodiments, in addition to or in lieu of reserving individual mini-slots to measure real-time data, these techniques may include scheduling tests, such as OFDMA Upstream Data Profile (OUDP) tests for these individual mini-slots. For example, an OUDP test may be scheduled when a mini-slot is temporarily excluded from data transmission by a CM group. As another example, an OUDP test may be scheduled when a mini-slot is under-sampled with real-time data from a CM group. As another example, an OUDP test may be scheduled when a CM group is utilizing low bit loading and is attempting to increase to utilize higher bit loading on a mini-slot.
[0041] The inventors have also developed techniques for dynamically adjusting bit loading at a per-resource level. The techniques can affect the bit loading profiles that are currently assigned to a CM (e.g., high bit loading profiles, low bit loading profiles, and no (or NULL) bit loading, as a special case) with fast reaction time (e.g., as small as sub-seconds) to dynamically adapt to independent resource impairments (e.g., noise conditions). These techniques may include establishing dynamic profiles that provide different adaptability to utilize different bit loading profiles (e.g., different portions of high bit loading profiles, low bit loading profiles, and no (or NULL) bit loading) at different mini-slots. These techniques may include encoding different MAP data information elements (IEs) of the same CM with different IUC numbers if the IE falls into a mini-slot that requires a different profile (e.g., where the IE defines each pulse of the CM, and the MAP defines all IEs of all CMs transmitted on this channel during a specified time interval). Dynamic adaptation may be performed locally, for example, by an upstream scheduler, without requiring various messages (e.g., without requiring any MAC Management Message (MMM) delivery messages) to be sent to the CM, which may avoid the need for the CM to reprogram itself (such as its profile transfer unit). These techniques may allow a Cable Modem Termination System (CMTS) to temporarily exclude impaired areas (e.g., at a mini-slot level) for scheduling (e.g., scheduling upstream grants, scheduling initial ranging or fine ranging requests) while still utilizing other areas for transmission. The techniques may also allow the CMTS to dynamically move impaired initial ranging or fine ranging areas to different areas with better (or optimal) performance or fewer (or least) impairments based on per mini-slot performance measurements (such as per mini-slot MER / SNR measurements).
[0042] In some embodiments, the technology includes combining dynamic bit loading adjustment on a per mini-slot basis with an existing profile management mechanism that creates and updates CM profiles, such as its high and low profiles. Such profile management mechanisms may include, for example, algorithms (which are executed locally at the CMTS) or a Profile Management Architecture (PMA, which is typically calculated using an external server). For example, a high profile and a low profile may be created and assigned to the CM using an existing profile management mechanism, and a new technology may be used to create a dynamic profile that utilizes the existing high and low profiles without the need to utilize MMM messages to deliver dynamic profile information to the CM. As another example, the intervals at which dynamic bit loading adjustments are performed may be much smaller than the intervals used in the existing profile management mechanism because the dynamic bit loading adjustments are only local operations.
[0043] The dynamic profile adjustment base described herein can provide various improvements. For example, being able to adjust bit loading at each resource level during scheduling can react quickly to dynamic noise conditions, which can improve the overall throughput of the system. As further described herein, existing CM profile creation, modification and designation mechanisms do not provide the ability to switch between various profiles on a per-resource basis. In addition, changing CM profiles is time-consuming. The technology described herein can monitor real-time data measurements to determine how to dynamically adjust each resource, thereby utilizing the best bit loading profile. In addition, because existing MMM messaging is not required to implement dynamic profiles, dynamic bit loading techniques can operate more quickly than existing mechanisms and can coexist with existing mechanisms.
[0044] In the following description, many specific details about the systems and methods of the disclosed subject matter, as well as the environments in which such systems and methods can operate, are explained to provide a comprehensive understanding of the disclosed subject matter. In addition, it should be understood that the examples provided below are typical, and it is contemplated that there are other systems and methods within the scope of the disclosed subject matter.
[0045] Figure 1A An exemplary configuration of a cable transmission system 100 is shown according to some embodiments. The cable transmission system 100 includes a plurality of cable modems (CMs) 102A, 102B through 102N (collectively referred to as CMs 102), each of which communicates with a cable modem termination system (CMTS) 104. Transmissions from CMs 102 to CMTS 104 may be referred to as upstream transmissions, while transmissions from CMTS 104 to CMs 102 may be referred to as downstream transmissions. CMTS 104 includes a scheduler 106.
[0046] Figure 1B According to some embodiments, Figure 1A An exemplary detailed configuration of the cable transmission system 100 is shown. Figure 1A , the cable transmission system 100 includes a CM 102, a CMTS 104, and an upstream scheduler 106. Figure 1A CM 102 in FIG. 1 is shown as communicating directly with CMTS 104, but this is for illustration purposes only. It should be understood that intermediate connections may be included in the cable transmission system 100 between CM 102 and CMTS 104. For example, thousands or millions of CMs may communicate with the CMTS via hybrid fiber coax (HFC). Figure 1B CM 102 is shown communicating with CMTS 104 via HFC 150. Although not shown in the figure, it should be understood that CMTS 104 can be an integrated CMTS (I-CMTS) or a distributed system including a Converged Cable Access Platform (CCAP) core and multiple Remote PHY Devices (RPDs) utilizing a Distributed Access Architecture (DAA), wherein the CCAP core can be a physical entity or a virtual entity (i.e., vCCAP).
[0047] Each of the CMs 102 may be located at a customer location, such as in a customer's home or office building. The customer may have one or more Customer Premise Equipment (CPE) connected to its associated CM 102, such as a home router (e.g., a gateway router), a Multimedia Terminal Adapter (MTA), an Analog Telephone Adapter (ATA), and / or other devices that may be connected to the CM 102. Figure 1B CM 102B is shown connected to a typical CPE 152. CM 102 sends upstream data bursts to CMTS 104, shown as burst one 156A through burst N 156N, collectively referred to as bursts 156. CMTS 104 includes a burst receiver 158 that receives bursts 156 from CM 102.
[0048] CMTS 104 can be connected to various application systems in the background, including one or more provisioning systems 160 (such as DHCP server, NTP server, TFTP server, etc.), network management system 162 (Network Management System, NMS), profile management application (Profile Management Application, PMA) service (not shown), etc. CMTS 104 can be connected to various application systems through one or more networks 164.
[0049] CMTS scheduler 106 schedules upstream transmissions for all CMs 102. In some embodiments, CMTS scheduler 106 may generate a MAP that may be used to coordinate multiple access transmissions between CMs 102. For example, the MAP may specify a series of IEs, and each IE may specify information such as a service identifier, an IUC number, and frequency and time segment information (such as a starting mini-slot number and the number of mini-slots allocated to this IE, and one or more frames for this IE). Figure 1B As shown, the upstream scheduler 106 at the CMTS 104 schedules the upstream transmission opportunities of the service flow (SF) of each of the requesting CMs 102 and forms a MAP 154 composed of IEs. The CMTS transmits the MAP 154 downstream to the CMs 102. Therefore, the CMs 102 send upstream data bursts (e.g., burst one 156A to burst N 156N) to the CMTS according to the specifications contained in IEs 1 to IE N, respectively. The scheduler 106 may periodically send the MAP to the CMs 102 (e.g., every 2 milliseconds) to schedule the CMs 102 transmissions.
[0050] Figure 2A A diagram 200 of an upstream channel (portion) is shown according to some embodiments. An upstream frequency span 202 is divided into a plurality of micro-slots 204A, 204B, 204C to 204N, which are collectively referred to as micro-slots 204. Each micro-slot 204 has a set of dedicated subcarriers. As shown in the diagram 200, for example, the micro-slot 204A includes subcarriers 206A, 206B, 206C to 206N. Each subcarrier is one of a large number of closely spaced (or overlapping) orthogonal narrow bandwidth data signals within an OFDMA channel. A channel may refer to a portion of an electromagnetic spectrum used to convey one or more RF signals (e.g., which may be specified by parameters such as center frequency, bandwidth, or channel number). As an example, a channel may include up to 96MHz.
[0051] Figure 2B A typical OFDMA frame structure 250 is shown according to some examples. In particular, Figure 2BThe example shown is taken from the DOCSIS 3.1 physical layer specification CM-SP-PHYv3.1-I16-190121. Figure 4 . The specification explains that the upstream spectrum of an OFDMA channel is divided into groups of Q subcarriers. Upstream transmission times can be grouped into OFDMA frames, each of which can include K symbols. A minislot is a structure that spans Q subcarriers in the frequency domain and one frame (or K symbols) in the time domain. For example, depending on the configuration, Q can be 16 in the case of 25kHz subcarriers (4K FFT), or 8 in the case of 50kHz (2K FFT). Depending on the configuration, K can be 6 to 36 symbols. All subcarriers of a minislot have the same bit loading. A CM is assigned to one or more minislots that are transmitted in a transmit pulse (TX pulse). Several CMs can share the same OFDMA frame by transmitting on the allocated minislots of the OFDMA frame.
[0052] Figure 3 A diagram 300 of OFDMA frames and designated mini-slots for independent mini-slot performance measurements within each frame is shown according to some embodiments. Diagram 300 includes frames 302A, 302B, 302C, 302D, 302E, and 302F, which are collectively referred to as frames 302. As shown in this example, each frame 302 may include a column of mini-slots traversing the frequency spectrum of an OFDMA channel.
[0053] As described herein, DOCSIS 3.1 provides different bit loadings that can be used for upstream channels. The DOCSIS 3.1 physical layer specification is described in, for example, CM-SP-PHYv3.1-I16-190121, and the DOCSIS 3.1 MAC and upper layer protocol interface specifications are described in, for example, CM-SP-MULPIv3.1-I18-190422, which are hereby incorporated by reference in their entirety.
[0054] Figure 4 Typical bit loading profiles are shown according to some embodiments, including high profiles, low profiles, and dynamic profiles that utilize high profiles or low profiles for different mini-timeslots. The first profile (shown as IUC H) specifies the following bit loading: 8-bit QAM for mini-timeslot 1, 7-bit QAM for mini-timeslots 2 to 4, and 8-bit QAM for mini-timeslots 5 to 8. The second profile (shown as IUC L) specifies the following bit loading: 5-bit QAM for mini-timeslot 1, 4-bit QAM for mini-timeslots 2 to 4, and 5-bit QAM for mini-timeslots 5 to 8. Empty bit loading utilizes a constant 0 that traverses mini-timeslots 1 to 8 and can be considered a special profile. CM and / or CMTS can be configured to start with a higher bit loading to send more data, but if there is an error, the bit loading can be reduced or lowered to reliably send data.
[0055] There are various techniques for measuring the performance of the upstream channel. For example, one technique is a silent time probe that can be used to perform carrier-to-noise (CNR) measurements. The silent probe can be used as a baseline for generating an initial upstream profile, for example, before enabling the CM. The silent time probe technique requires all subcarriers (including excluded subcarriers) to be probed. As another example, another technique is an active probe that can be used to determine the receive modulation error ratio (Receive Modulation Error Ratio, RxMER). The active probe can be used periodically (e.g., at a configurable time interval) after the CM comes online. Because probes cannot capture impulse noise, they are usually used together with other measurement data. The probes can also take a lot of time to obtain the measurements.
[0056] As another example, modulation error (MER) and / or forward error correction (FEC) may be measured for data transmission. MER or FEC may be used to determine the real-time performance of a data channel. For example, a CMTS pulse receiver may determine one or more of the following for each received pulse: MER, FEC correctable error count, FEC uncorrectable error count, and / or total codeword count. Another example is the OFDMA Upstream Data Profile (OUDP) test procedure, which may test the currently used profile by providing a specific grant to the CM under test. The CM will transmit with a specific payload pattern, and the CMTS may use that transmission pattern for performance measurements, such as determining FEC errors, CRC errors, measuring MER, and the like.
[0057] The inventors have discovered and appreciated the deficiencies of existing performance measurement techniques. For example, while the MER and FEC obtained from a pulse receiver may be a quick indication of channel impairment, they do not indicate the precise location of the impairment. In addition, a data pulse may span multiple mini-slots, and therefore, the MER and FEC are measured for all mini-slots of a pulse because the symbols are interleaved. Therefore, the prior art is unable to obtain performance metrics on a per-resource level (such as on a per-mini-slot level).
[0058] The techniques described herein allow for performance measurements (including MER and / or FEC) to be obtained in a manner that can generate per-resource (e.g., per-mini-slot) measurements. The techniques may include providing a single resource grant for real-time data, which reception at a pulse receiver may be used for performance measurements. The techniques may also include supplementing the single resource data grant with other testing techniques to ensure that each resource is tested (e.g., the case of sending insufficient data on a particular channel to affect the mini-slot being examined). The per-resource measurements may be performed on a per-CM group basis. Thus, the techniques may derive per-mini-slot performance metrics for each CM group in real-time and with no or minimal overhead for bandwidth utilization.
[0059] Figure 5 According to some embodiments, a typical computerized method 500 for measuring the performance of an upstream channel on a per mini-slot basis is shown. Although the present example discusses mini-slots, it should be understood that other resources may be measured, such as multiple consecutive mini-slots. As a prerequisite, the CMTS may divide multiple CMs into multiple CM groups. In step 502, the method is initiated for a new measurement interval. In step 504, the CMTS begins a new scan cycle. In step 506, the CMTS moves to the next OFDMA frame. In step 508, the CMTS selects a subgroup of mini-slots to be measured in the current frame. In step 510, the CMTS allocates a single mini-slot grant on these mini-slots for multiple CMs with data to be transmitted, and records the CM groups to which these CMs belong. In step 512, the CMTS determines whether there are more subgroups of mini-slots to be measured. If so, then the method returns to step 506, otherwise, it proceeds to step 514. In step 514, the CMTS determines whether enough scan cycles have been used. If not, then the method returns to step 504, otherwise it proceeds to step 516. At step 516, the CMTS determines whether there are any CM groups for which at least one mini-timeslot performance measurement has not yet been obtained. If so, the method proceeds to step 518, otherwise, it ends the current measurement interval 528 (and if Figure 5 , method 500 returns to step 502 for a new measurement interval). In step 518, the CMTS begins a new scan cycle. In step 520, the CMTS moves to the next OFDMA frame. In step 522, the CMTS selects a mini-slot subgroup for which performance measurements for the CM group are not obtained. In step 524, the CMTS allocates a single mini-slot grant on these mini-slots for the OUDP test, where the test CM is from within the CM group. In step 526, the CMTS determines whether there are more mini-slot subgroups for which performance measurements have not been obtained for the CM group. If so, then the method returns to step 520, otherwise it returns to step 516.
[0060] As a precondition prior to step 502, the CMTS may group the plurality of CMs into a plurality of CM groups such that all CMs in a particular CM group have similar performance measurements, such as similar impairments in each sub-band of a channel, wherein differences in performance measurements between different CM groups may reflect different CM vendors and types, or due to different physical sections of the cable plant in which they are located. In some embodiments, the CMTS may be configured to group the CMs using various rules, depending on the deployment scenario and implementation specifics. For example, if the CMTS determines that there are only a few CMs connected to the CMTS, then the CMTS may classify each CM into a separate CM group. As another example, if the CMTS determines that all CMs on an upstream channel behave consistently (e.g., across mini-slots over time), then the CMTS may classify all CMs into the same CM group. As yet another example, the CMTS classifies CMs specified with the same high profile and low profile into the same group, because CMs specified with the same high and low profiles (according to an existing profile management mechanism) may indicate that the CMs have similar performance. If a CM in a particular group is reassigned with a different profile (eg, a different high or low profile according to existing mechanisms), then the CMTS may move the CM to a different CM group that includes CMs with different profiles.
[0061] Referring to steps 510 and 524, the CMTS allocates a single minislot grant on the selected minislot subset for data transmission and OUDP testing, respectively (as determined in the previous step). At the same time, the CMTS also attempts to allocate a single minislot or multiple minislot grant on the rest of the minislots of the current frame for the real-time data of the requesting CM according to the normal scheduling procedure. If there are still unallocated remaining minislots, the CMTS may also allocate a single minislot grant on these remaining minislots for OUDP testing. For the purpose of simplicity, such procedures are not shown in the figure.
[0062] Also refer to steps 504 to 514. As discussed herein, the CMTS pulse receiver may collect various performance information, such as FEC correctable counts, FEC uncorrectable counts, total codeword counts, and MER for each received pulse. However, when an error is detected in a received pulse and the pulse size is larger than a minislot, the CMTS cannot determine the minislot that caused the impairment. To allow the CMTS to obtain performance metrics at a per minislot granularity, the CMTS may designate a number of minislots in each frame to be used for a minislot grant. For example, the CMTS may indicate a predefined percentage of a minislot grant for each frame. Reference Figure 3 , the CMTS marks one mini-slot grant 304 out of every 100 mini-slots in each frame 302. Figure 3As shown, the position of the indicated mini-slots 304 may be rotated in each frame so that in frame 302A, the top-most mini-slot is permitted, in frame 302B, the next-highest mini-slot is permitted, and so on. By rotating the indicated mini-slots across the frame, each mini-slot may be scanned at the same frequency over time. For example, if the CMTS indicates that 1% of the mini-slots in a frame will be used for a single mini-slot permit, it takes 100 frames to scan each mini-slot (a scanning period of 100 frames). Depending on the frame size (e.g., 6 to 36 symbols) and the Cyclic Prefix (CP) value, there may be approximately 1000 to 8000 frames in one second. If, for example, there are 3000 frames in one second, any particular mini-slot will be scanned 30 times in one second, thereby including a single mini-slot permit at this position assigned to any one of the CM groups. 1 second may be selected as the measurement interval.
[0063] Thus, the CMTS can determine the real-time data performance metrics for each allocated mini-slot. For example, because the grant is a single mini-slot, the signal of this mini-slot is not interleaved with other mini-slots. Therefore, the CMTS can determine that the performance metrics known to the CMTS are only attributable to the specific mini-slot under the examination condition. Therefore, the technology can use real-time data for measurement by scheduling a single mini-slot grant, so that the CM transmits the data using a single mini-slot burst at the marked location. Except for these locations, the data is still scheduled with single or multiple mini-slot grants, which is still the same as before.
[0064] The CMTS may count mini-slot performance metrics per group. For example, when the CMTS receives a single mini-slot burst (a burst associated with a single mini-slot grant) from a CM, the CMTS may measure the burst and count the performance metric to the group to which the transmitting CM belongs. The CMTS may maintain each measured performance metric separately. For example, the CMTS may count the performance metrics on a per-group, per-mini-slot basis (e.g., uFEC_<group,minislot> 、cFEC_<group,minislot> etc.) to maintain correctable and / or uncorrectable FEC metrics, which may be based on a per-group, per-mini-slot basis (e.g., MER_<group,minislot> ) Maintain correctable and / or uncorrectable MER metrics, etc.
[0065] See steps 516 to 526. In some embodiments, the CMTS may be configured to avoid under-sampling of mini-slots for various CM groups. For example, in the case of multiple active CM groups (e.g., due to some randomness), the frequency with which a particular CM group may scan for each mini-slot may be unknown. Some CM groups may under-sample some mini-slots even if there is active data for the CM group. To avoid under-sampling of mini-slots, the CMTS may reserve some opportunities for testing permissions (e.g., some opportunities outside of all opportunities to scan each mini-slot within the measurement interval). For example, the CMTS may reserve some opportunities for OUDP testing.
[0066] Figure 6 An exemplary diagram 600 of reserved opportunities for testing a grant is shown according to some embodiments. In this example, there are a total of 5 CM groups. In addition, since 1% of the frame's mini-slots are marked for one mini-slot grant and there are 3000 frames per second, this will result in 30 opportunities per second for each mini-slot to be scanned, each separated by 100 frames. Figure 6 As shown, the CMTS has 30 opportunities to scan each mini-time slot within a one-second interval (one opportunity in each scanning cycle), including the 1st opportunity 602A in frame 604A, ..., the 25th opportunity 602B in frame 604B, the 26th opportunity 602C in frame 604C, the 27th opportunity 602D in frame 604D, the 28th opportunity 602E in frame 604E, the 29th opportunity 602F in frame 604F, and the 30th opportunity 602G in frame 604G. Figure 6 The CMTS in the example of is configured to utilize the first 25 opportunities for a single mini-slot data grant, as shown, the 1st opportunity 602A in frame 604A through the 25th opportunity 602B in frame 604B. The CMTS is configured to reserve the remaining 5 opportunities for OUDP testing, one opportunity per CM group, as shown, the 26th opportunity 602C in frame 604C, the 27th opportunity 602D in frame 604D, the 28th opportunity 602E in frame 604E, the 29th opportunity 602F in frame 604F, and the 30th opportunity 602G in frame 604G. Although the CMTS reserves these 5 opportunities, the CMTS need not use the reserved opportunities for OUDP testing (e.g., as opposed to data grants). For example, as described herein, the CMTS may only use opportunities for mini-slots that have not yet been scanned in the first 25 grants. Such a typical approach incurs at most 5 / 30 / 100 = 0.167% overhead to reserve slots for OUDP testing.By reserving one or more opportunities for test grants, the CMTS can ensure that, in each measurement interval, each mini-slot has at least one opportunity to measure each CM group.
[0067] In some embodiments, any unused mini-slots in a frame may be added to the OUDP test opportunity set for that mini-slot. For example, if there are unspecified mini-slots in a frame, the scheduler may use any of them for a single mini-slot OUDP test grant without being limited to the indicated position. Such mini-slots may be added to the reserved OUDP test opportunities of the mini-slot (e.g., the above example reserves five opportunities) to cycle through each CM group. An example of such a mini-slot is shown in frame 604H, which is the frame before frame 604F. Such unused mini-slots may provide more measurement opportunities without additional cost, since bandwidth would otherwise be wasted anyway.
[0068] The techniques for assigning OUDP test opportunities to CMs and / or for performing OUDP tests may be configured based on deployment scenarios and implementation specifics. For example, OUDP testing may require a specific service ID (SID) for each CM, which is assigned to the CM being tested. In some embodiments, based on the total number of SIDs required for a particular customer deployment of OUDP testing, the CMTS may be configured to use different techniques for SID assignment. For example, the CMTS may be configured to select unused SIDs and assign them to the CM being tested when necessary. As another example, the CMTS may be configured to pre-assign a unique OUDP test SID to each CM when the CM registers. As another example, the CMTS may pre-assign some OUDP test SIDs to a group of CMs and cycle through these SIDs to reuse them with another group of CMs when necessary.
[0069] There have been various discussions and approaches for OFDMA profile management. For example, DOCSIS 3.1, The Operational Support System Interface Specification CM-SP-CCAP-OSSI v3.1-I11-171220 describes a method for an operator to statically configure a set of OFDMA profiles used by a DOCSIS 3.1 CM on an OFDMA channel.
[0070] As other examples, there are mechanisms that allow the CMTS to create data profiles for use by DOCSIS 3.1 CMs on OFDMA channels based on performance measurements of those CMs (primarily, RxMER). There are also mechanisms that address how data profiles are assigned and periodically reassigned to CMs to account for channel impairments, with the CMTS constantly monitoring the performance metrics of the CMs.
[0071] 3.1 Profile Management Application Technical Report CM-TR-PMA-V01-180530 describes an architecture that uses an external PMA server. The PMA server continuously monitors the upstream spectrum by initiating RxMER measurements of upstream subcarriers (using silent or active probes) or triggering OUDP tests (both through the CMTS). The PMA can also use information from other tests, such as upstream captures from the PNM server, and historical information obtained at the factory. Using this information, the PMA server can evaluate the performance of the current upstream channel and generate a set of data profiles for the channel. At the same time, the PMA server can also mark one or both of these profiles to each CM on this channel.
[0072] The inventors have discovered and understood the deficiencies of existing profile management techniques, including existing bit loading profiles and their use. Although a CM may be configured with multiple bit loading profiles (also referred to herein as data IUCs), the CM is typically instructed by the CMTS to always utilize a specific bit loading profile for all data bursts for each channel in each scheduling period. For example, in each MAP interval, the CM will only use one profile for all mini-slots for all bursts of data transmission. In addition, although the CM may store a high profile and a low profile, the CM does not know when to utilize the high or low profile. Instead, the CMTS selects a high profile for the CM until it detects an erroneous measurement, and then the CMTS may switch to a low profile for the CM. After switching profiles, the CMTS selects a low profile for the CM for all data bursts of this channel.
[0073] The inventors have also discovered and understood that existing profile management techniques require changing the content of a profile (e.g., by changing the content of a specified profile, or changing the profile designation), and communicating the modified profile to the applicable CM. Such techniques require time to make profile changes to a CM, and the CM must typically receive the modified profile and perform multiple steps to be able to utilize the profile (such as reprogramming the hardware each time the CM receives the modified profile). Existing techniques also typically only support a limited number of profiles for OFDMA channels and each CM, such as only 1 or 2 IUCs per channel. In addition, one of the profiles is typically the lowest bit loading profile required for pre-registration (e.g., IUC 13). Therefore, the above mechanism requires the CMTS to constantly communicate with the corresponding CM using UCD and / or DBC messages, because if the CMTS expects to change the profile, then the CMTS needs to send a message, because each CM can only store two profiles. The communication overhead required for such profile management can adversely affect the system, such as limiting the speed at which profile management functions can operate, and / or limiting the speed at which the CMTS system can adapt to channel impairments. To limit overhead, a time interval may be configured or followed to set the frequency with which the CMTS (or Profile Management Application (PMA) server) evaluates the current profile assigned to each CM as needed and modifies or reassigns the profile. An operator may define a time interval that determines the frequency with which the CMTS (or PMA server) evaluates the current profile assigned to each CM as needed and performs modifications or reassignments of those profiles. These mechanisms are generally referred to herein as profile management mechanisms, and the intervals are generally referred to as profile management intervals.
[0074] The techniques described herein can be used to dynamically adjust the way in which the CM modulates its upstream transmissions on the OFDMA channel. These techniques may include dynamically switching the bit loading of the OFDMA channel using a locally coordinated bit loading profile. The profile may affect different bit loading profiles (e.g., parts of a high profile or a low profile (also referred to as IUC H and IUC F, respectively), or a null profile) at each micro-slot granularity. These techniques can create and / or adjust profiles in response to real-time noise in a faster manner than the prior art without notifying the CM of new or modified profiles. For example, when the CMTS determines that there is damage only within a sub-band of the channel, the CMTS may switch the bit loading on several micro-slots. These techniques may allow the CMTS to dynamically switch between profiles assigned to the CM. For example, in a smaller time interval (referred to as a dynamic profile interval) than the profile management interval, the CMTS scheduler may dynamically switch between IUC H, IUC F, and NULL bit loading at each resource (such as each micro-slot level). The CMTS scheduler may perform such dynamic switching without communicating to the CM via a traditional path (e.g., MMM message) such as used by the profile management mechanism. Therefore, the new technique is broadly referred to as a dynamic profile, or sometimes a dynamically scheduled profile (or dynamically scheduled IUC, or DS-IUC for short), because the profile can be generated and used locally, for example, by a CMTS scheduler.
[0075] Fig. 7A An example of a computerized process 700 for generating bit loading for a resource (e.g., a mini-slot) is shown in accordance with some embodiments. At step 702, the method is initiated for a new dynamic profile interval. At step 704, the CMTS selects a CM group to analyze bit loading. At step 706, the CMTS selects a resource (e.g., a mini-slot) to analyze bit loading. At step 708, the CMTS determines a new bit loading for the resource based on Profile H, Profile L, the latest performance measurements, and the previous dynamic scheduling profile (corresponding to the resource and CM group being analyzed). At step 710, the CMTS determines whether there are more resources to be analyzed. If so, then the method returns to step 706, otherwise, it proceeds to step 712. At step 712, the CMTS generates a new dynamic scheduling profile using the bit loading obtained for all resources. At step 714, the CMTS determines whether there are more CM groups to be analyzed. If so, then the method returns to step 704, otherwise, it ends the current dynamic profile interval 716 (and if Fig. 7A As shown, the method may return to step 702 for a new dynamic profile interval).
[0076] As a prerequisite before step 702, the CMTS may divide the plurality of CMs into a plurality of CM groups, as explained previously. As another prerequisite, the CMTS selects profile H and profile L for each CM group according to an existing profile management mechanism, as explained previously. As yet another prerequisite, the CMTS obtains performance measurements for each resource and each CM group, such as Figure 5 shown and explained previously.
[0077] Referring to step 708, the CMTS may determine new bit loading using per-resource (eg, per mini-slot) performance data, as described herein. Figure 8 The state transitions of an exemplary process 800 for calculating a new bit loading for each resource and each CM group are illustrated according to some embodiments. For this example, it will be assumed that there are three possible bit loading states for each mini-slot and each CM group: High (H) 802, Low (L) 804, and NULL 806. State H means that the bit loading at a particular mini-slot is assumed to be the bit loading of IUC H, i.e., bit-loading_<H,minislot> State L means that the bit loading at a particular mini-slot is assumed to be the bit loading of IUC L, i.e., bit-loading_<L,minislot> . State NULL means that the bit loading at a particular mini-slot is 0. In addition, there are four transitions: transition 808 (H 802->L 804), transition 810 (L 804->NULL 806), transition 812 (L 804->H 802), and transition 814 (NULL 806->L 804). As a general matter, the CMTS may start with H 802 bit loading until an error is detected, at which time the CMTS may transition to utilizing L 804 bit loading. The CMTS may analyze performance data, as further discussed herein, to determine when to transition from one state to another.
[0078] In some embodiments, the CMTS may be configured to utilize various techniques to evaluate the conditions that trigger a state transition. For example, when the uFEC of the mini-slot (e.g., determined on a group basis as described herein) exceeds a predetermined threshold, transition 808 may be triggered. The predetermined threshold may be, for example, an uncorrectable FEC error threshold in percentage units, exceeding which transition 808 will occur (e.g., when switching from a high profile to a low profile). For example, the predetermined threshold may be in the range of 0.1% to 1%, for example, based on the operator's decision. uFEC may be determined based on the performance measurement of IUC H in the previous measurement interval. In some embodiments, the CMTS may record the MER of the mini-slot at this moment as tSNR (e.g., where tSNR is the MER / SNR recorded for the mini-slot when transition 808 occurs). As another example, transition 810 may be triggered when the uFEC of the group of mini-slots exceeds a predetermined threshold. The predetermined threshold may be an uncorrectable FEC error threshold in percentage units, exceeding which transition 810 will occur (e.g., when switching from a low profile to NULL bit loading). uFEC may be determined based on the measured value of IUC L in the previous measurement interval. As another example, transition 812 may be triggered when there are no FEC errors and the MER is above a threshold (taking into account both the absolute baseline number and the previous transition history). For example, transition 812 may be triggered when all of the following conditions are true: (a) the MER of the group of mini-slots is higher than the sum of the tSNRs of the mini-slots and Mdb, (b) the MER is higher than the rSNR, and (c) the sum of cFEC and uFEC is 0. Mdb may be a margin DB that must be added to the tSNR in 808 to assess whether transition 808 is reversible (e.g., via transition 812). This choice of configurable margin may control how aggressively state transitions between H and L are allowed to occur. rSNR may be a value that is consistent with bit-loading_<H,minislot> The performance value for transition 812 may be determined based on the measured value of IUC L in the previous interval group. As another example, transition 814 may be triggered when the following conditions are all met: (a) uFEC is 0, (b) cFEC is below a predetermined threshold, and (c) MER exceeds rSNR. The predetermined threshold may be a correctable FEC error threshold in percentage, below which transition 814 occurs. rSNR may be a value that is consistent with bit-loading_<L,minislot> The associated baseline SNR. In some embodiments, the performance measure for transition 814 may be determined based on OUDP testing and IUC L in a previous interval group.
[0079] The standard allows an OUDP test grant to be configured to operate similarly to a data grant, but where the CM sends test data rather than real data at the identified mini-slot or mini-slots using a profile identified by the CMTS (which is assigned forward to the CM). In some embodiments, the CMTS may be configured to use OUDP testing in various ways. For example, the CMTS may be configured such that if a mini-slot is in the NULL state for a particular CM group, then the measurement opportunity for that group will be used for OUDP testing with a target low profile. This configuration can be used to test a roll-out condition of the NULL state, such as testing Figure 8 814 in the transition. As another example, if the mini-slot is in a state to utilize a particular profile (e.g., Profile H or Profile L) for a particular CM group, then the opportunity for that group will be used for OUDP testing with the current profile. As another example, if the mini-slot is in a state to utilize a particular profile (e.g., Profile L) for a particular CM group, then the CMTS may choose to utilize the opportunity for that group to perform OUDP testing with a higher profile (e.g., Profile H). This can be used to test a transition condition from a lower profile to a higher profile, such as testing Figure 8 Conversion 812 in.
[0080] Referring to step 712, to adjust the bit loading on a mini-slot basis, the CMTS may periodically generate a dynamic profile. For example, the CMTS may generate a Dynamic Scheduling IUC (DS-IUC, which is used to describe the technique but is not intended to be limiting as any profile name may be used without departing from the spirit of the techniques described herein). The DS-IUC may employ one of the available profiles (e.g., IUC H, IUC L, or NULL) at the CM on a mini-slot-by-mini-slot basis. Referring to step 713, the CMTS may periodically generate a dynamic profile. For example, the CMTS may generate a Dynamic Scheduling IUC (DS-IUC, which is used to describe the technique but is not intended to be limiting as any profile name may be used without departing from the spirit of the techniques described herein). Figure 4 For example, DS-IUC uses IUC H in mini-timeslots 1 to 4, but uses IUC L in mini-timeslots 5 and 6, and uses NULL bit loading in mini-timeslots 7 to 8. Therefore, the bit loading of DS-IUC is defined as: 8-bit QAM for mini-timeslot 1, 7-bit QAM for mini-timeslots 2 to 4, 5-bit QAM for mini-timeslots 5 to 6, and 0-bit QAM for mini-timeslots 7 to 8.
[0081] Figure 7B An example of a computerized process 750 for a CMTS to utilize a dynamic configuration file is shown. As a prerequisite prior to step 752, the CMTS may obtain a dynamic configuration file for each CM group, such as a DS-IUC, such as Fig. 7AAs shown and explained previously. In step 752, the CMTS starts a new MAP. In step 754, the CMTS obtains the next CM request (explicit request or implicit request, such as UGS grant). In step 756, the CMTS fills all available mini-slots using the bit loading corresponding to the current dynamic profile (e.g., DS-IUC) of the CM group to which the CM belongs. In step 758, the CMTS excludes all mini-slots in the NULL state according to the current dynamic profile (such as DS-IUC). In step 760, the CMTS allocates one or more data grants to service the CM request, wherein the mini-slots included in each grant share the same IUCH or IUC L state according to the composition of the current dynamic profile. In step 762, the CMTS encodes each data grant as an IE using IUC H or IUC L according to the composition of the current dynamic profile. In step 764, the CMTS determines whether there is more room in the current MAP. If so, then the method returns to step 754, otherwise, it proceeds to step 766. In step 766, the CMTS sends the MAP and all IEs.
[0082] Refer to step 760. In some embodiments, the scheduler may encode different data information elements (IEs) in the MAP (where each IE defines a pulse) of the same CM with different IUC numbers according to the current DS-IUC. Using such techniques, the bit loading value at a particular mini-slot may be assumed to be any of the available profiles. The collection of available profiles may provide hierarchical options to dynamically adapt the OFDM channel to noise. For example, in the case of the three profiles (IUC H, IUC L, and NULL) discussed in the example above, the three profiles may provide 3 layers of selection for dynamic adaptation without involving the CM, and such adaptation may be different on different subbands.
[0083] At each dynamic profile interval, the CMTS may evaluate the previous DS-IUC for the CM group and possibly update the bit loading of one or more mini-slots. In some embodiments, the dynamic profile interval may be related to the performance measurement interval discussed herein (e.g., it may be the same as the measurement interval, or it may be a multiple of the measurement interval, etc.). For an example of the relationship between the dynamic profile interval 906 and the performance measurement interval 904, refer to Fig. 9 .
[0084] In some embodiments, dynamic profile techniques may allow the CMTS to exclude data transmissions over severely impaired areas based on the bit loading for mini-slots. For example, the CMTS may avoid scheduling any data transmissions in certain areas, such as areas with NULL bit loading (e.g., because the allowed bit encoding is not present due to noise / interference), as shown in step 758. As another example, the CMTS may avoid scheduling initial ranging and fine ranging requests in certain areas, such as NULL areas. The scheduler may use DS-IUC to determine the appropriate mini-slots for data and / or ranging requests. For example, the scheduler may use DS-IUC to determine the mini-slots for ranging requests and program the corresponding IE using ranging IUC (e.g., IUC 3 or 4) instead of data IUC (e.g., HIUC or L IUC).
[0085] In some embodiments, the CMTS may also exclude non-data transmissions over severely impaired areas. For example, the CMTS may avoid scheduling initial ranging and fine ranging requests in severely impaired areas based on each mini-slot performance measurement. As another example, when the currently assigned initial ranging and / or fine ranging areas are severely impaired, the CMTS may select the area with the best overall performance or least impairment as the new initial ranging and / or fine ranging area, also based on each mini-slot performance measurement (e.g., each mini-slot MER / SNR measurement). The generation of each mini-slot performance measurement is, for example, combined with Figure 5 for discussion. The scheduler may program the corresponding IE with a ranging IUC (e.g., IUC 3 or 4) instead of a data IUC (e.g., H IUC or L IUC). This process (not shown in the figure) is called a dynamic ranging region. In some embodiments, the scheduler may determine that the performance data indicates one or more of the mini-slots with impairments, and may schedule non-data transmission requests based on the mini-slot performance data to avoid scheduling non-data transmission requests in the damaged mini-slots. The non-data transmission requests may include, for example, ranging requests. By determining that an existing ranging region is associated with one or more mini-slots with similar impairments based on the mini-slot performance data, the scheduler may schedule the ranging request and may determine a new ranging region based on the performance data.
[0086] In some embodiments, the CMTS may combine the dynamic adjustment of the bit loading of independent resources with the existing profile management mechanism, which is used to create and modify Profile H and Profile L. It is possible to combine the dynamic profile method with any of the profile management mechanisms. As described herein, the collection of profiles at the CM (e.g., IUC H, IUC L, and NULL) provides a hierarchical option for dynamic adaptation to noise conditions to a certain extent without involving the CM, and such adaptation may be different at different subbands. The creation and modification of DS-IUC based on the current profile (e.g., IUC H and IUC L) is performed at each dynamic profile interval, while the designation and re-designation of Profile H and Profile L is performed at each profile management interval. The dynamic profile interval may be selected so that it is smaller than the profile management interval. For example, the dynamic profile interval may be sub-second to multiple seconds, and the profile management interval may be sub-minute to several minutes. For an example of the relationship between the dynamic profile interval 906 and the profile management interval 902, refer to Fig. 9 .
[0087] In some embodiments, the profile management mechanism may be enhanced to provide greater flexibility. For example, the CM's lower profile may be set to a specific profile (e.g., a profile different from the generic lower profile 13) after the CM registers. Then, using some different strategies, the CMTS may select a pair of high and low profiles (profile H and profile L) for the CM at the same time. For example, the CMTS may first select profile H, and select profile L as the lowest profile (e.g., it is commonly used). As another example, the CMTS may first select profile H, and for each possible profile H, profile L may be selected as a pair of profile H (e.g., the profile L is 3DB lower than profile H). As another example, the CMTS may upgrade or downgrade profile H and profile L separately based on performance measurements and the current profiles H and L. As another example, the CMTS may select profile H and profile L based on a rule (at least a certain percentage of mini-timeslots can be satisfied by profile H, and at least another percentage of mini-timeslots can be satisfied by profile L).
[0088] The technology of operating according to the principles described herein can be implemented in any suitable manner. The processing boxes and decision boxes of the above-mentioned flow charts represent the steps and actions that may be included in the algorithms for performing these various processes. The algorithms derived from these processes can be implemented as software (the software is integrated with one or more single-purpose or multi-purpose processors and guides its operation), can be implemented as functional equivalent circuits (such as digital signal processing (DSP) circuits or application-specific integrated circuits (ASICs)), or can be implemented in any other suitable manner. It should be understood that the flowcharts included herein do not describe the syntax or operation of any specific circuit or any specific programming language or programming language type. On the contrary, the flow charts show functional information, and those skilled in the art use this functional information to manufacture circuits or implement computer software algorithms to perform the processing of specific devices (which perform the technology types described herein). It should also be understood that, unless otherwise specified herein, the specific sequence of steps and / or actions described in each flow chart is only an explanation of the algorithm, which can be implemented and can be changed in the implementation and embodiments of the principles described herein.
[0089] Thus, in some embodiments, the techniques described herein may be embodied in computer executable instructions implemented as software, including application software, system software, firmware, middleware, embedded code, or any other suitable type of computer code. Such computer executable instructions may be written using any of a variety of suitable programming languages and / or programming or scripting tools, and may also be compiled into executable machine language code or intermediate code (which is executed on a framework or virtual machine).
[0090] When the technology described herein is embodied as computer executable instructions, these computer executable instructions can be implemented in any suitable manner, including being implemented as multiple functional mechanisms, each functional mechanism provides one or more operations to complete the execution of the algorithm operated according to these technologies. However, "functional mechanism" (instantiation) is a structural component of a computer system, which, when integrated with one or more computers, causes one or more computers to perform a specific operation when executed by it. The functional mechanism can be a part of or the entire software element of a software element. For example, the functional mechanism can be implemented as a function of a process, or implemented as a discrete process, or implemented as any other suitable processing unit. If the technology described herein is implemented as a multifunctional mechanism, each functional mechanism can be implemented in its own way, and all functional mechanisms do not need to be implemented in the same way. In addition, these functional mechanisms can be executed in parallel and / or serially (when appropriate), and can transmit information (using a shared memory on one or more computers) between each other using a message passing protocol or in any other suitable manner.
[0091] Generally speaking, functional mechanisms include routes, programs, objects, objects, data structures, etc., which perform specific tasks or implement specific abstract data types. Typically, the functionality of functional mechanisms can be combined or distributed as needed in the system in which the functional mechanisms operate. In some embodiments, one or more functional mechanisms that perform the techniques herein can form a complete software package together. In alternative embodiments, these functional mechanisms can be adapted to interact with other unrelated functional mechanisms and / or processes to implement software applications.
[0092] Some exemplary functional mechanisms are described herein for performing one or more tasks. However, it should be understood that the functional mechanism and the subdivision of the described tasks are only the explanation of the functional mechanism type (which can implement the exemplary technology described herein), and the embodiment is not limited to implementing with the functional mechanism of any specific number, the subdivision of the functional mechanism or the type of the functional mechanism. In some embodiments, all functionality can be implemented with a single functional mechanism. It should also be understood that in some embodiments, some of the functional mechanisms described herein can be implemented together with other functional mechanisms or implemented individually (that is, implemented as a single unit or an independent unit), or some of these functional mechanisms may not be implemented.
[0093] In some embodiments, computer executable instructions implementing the technology described herein (when implemented as one or more functional mechanisms or implemented in any other way) can be encoded on one or more computer readable media to provide functionality to the medium. Computer readable media include magnetic media (such as hard drives), optical media (such as compact disks (CDs) or digital versatile disks (DVDs)), persistent or non-persistent solid-state memory (e.g., flash memory, magnetic RAM, etc.), or any other suitable storage medium. Such computer readable media can be implemented in any suitable manner. As used herein, "computer readable media" (also referred to as "computer readable storage media") refers to tangible storage media. Tangible storage media are non-transient and have at least one physical structural component. In "computer readable media" as used herein, at least one physical structural component has at least one physical property, which can be changed in some way during the process of creating a medium with embedded information, the process of recording information thereon, or any other process of encoding the medium with information. For example, the magnetization state of a part of the physical structure of a computer readable medium can be changed during the recording process.
[0094] In addition, some of the techniques described above include actions to store information (e.g., data and / or instructions) in certain ways that these techniques employ. In some embodiments of these techniques (such as embodiments in which these techniques are implemented as computer-executable instructions), the information may be encoded on a computer-readable storage medium. When a particular structure is described herein as a favorable format in which the information is stored, these structures may be used to impart physical organization to the information when encoded on a storage medium. These favorable structures may then provide functionality to the storage medium by affecting the operation of one or more processors that interact with the information (e.g., by increasing the efficiency of the computer operations performed by the one or more processors).
[0095] In some but not all embodiments in which these techniques may be implemented as computer-executable instructions, these instructions may be programmed to execute the computer-executable instructions in one or more suitable computing devices (operating in any computer system), or one or more computing devices (or one or more processors of one or more computing devices). When the instructions are stored in a manner accessible to the computing device or processor, such as in a data repository (e.g., an on-chip cache or instruction register, a computer-readable storage medium accessible via a bus, a computer-readable storage medium accessible via one or more networks and accessible by a device / processor, etc.), the computing device or processor may be programmed to execute the instructions. The functional facilities including these computer-executable instructions may be integrated with and direct the operation of a single multi-purpose programmable digital computing device, a coordinate system of two or more multi-purpose computing devices (which share processing power and jointly perform the techniques described herein), a coordinate system of a single computing device or computing devices dedicated to performing the techniques described herein (co-located or geographically distributed), one or more field programmable gate arrays (FPGAs) for performing the techniques described herein, or any other suitable system.
[0096] The computing device may include at least one processor, a network adapter, and a computer-readable storage medium. For example, the computing device may be a desktop or laptop personal computer, a personal digital assistant (PDA), a smart mobile phone, a server, or any other suitable computing device. The network adapter may be any suitable hardware and / or software to enable the computing device to communicate with any other suitable computing device wired and / or wirelessly on any suitable computing network. The computing network may include wireless access points, switches, routers, gateways, and / or other networking devices, as well as any suitable wired and / or wireless communication media or media (including the Internet) for exchanging data between two or more computers. The computer-readable medium may be suitable for storing data to be processed and / or instructions to be executed by the processor. The processor implements the processing of data and the execution of instructions. Data and instructions may be stored on a computer-readable storage medium.
[0097] The computing device may additionally have one or more components and peripherals, including input devices and output devices. These devices may be used to present a user interface, etc. Examples of output devices that can be used to provide a user interface include a printer or display screen (for visual presentation of output) and a speaker or other sound generating device (for auditory presentation of output). Examples of input devices that can be used for a user interface include a keyboard and a pointing device (such as a mouse, a touchpad, and a digitizing input tablet). As another example, a computing device may receive input information through speech recognition or in other auditory formats.
[0098] Embodiments have been described in which the techniques are implemented as circuits and / or computer-executable instructions. It should be appreciated that some embodiments may be in the form of methods, of which at least one example has been provided. The actions performed as part of the method may be ordered in any suitable manner. Thus, embodiments may be constructed in which the actions are performed in an order different from that shown, which may include performing some actions simultaneously, even though shown as sequential actions in the illustrative embodiments.
[0099] The various aspects of the embodiments described above may be used individually, in combination, or in various arrangements not explicitly discussed in the embodiments described in the foregoing, and are therefore not limited to their application to the details and arrangements of the components explained in the foregoing description or shown in the drawings. For example, aspects described in one embodiment may be combined in any manner with aspects described in other embodiments.
[0100] The use of ordinal terms (such as "first," "second," "third," etc.) in the claims to modify claim elements does not by itself imply any priority, precedence, or order of one claim element over another, or the instantaneous order in which the acts of a method are performed, but rather serves merely as a marker to distinguish one claim element having a particular name from another element having the same name (but using an ordinal term) to distinguish these claim elements.
[0101] Additionally, the phrases and terms used herein are for the purpose of description and should not be regarded as limiting. The use of "including," "containing," "having," "comprising," "involving," and variations thereof herein is intended to encompass the items listed below and equivalents thereof, as well as additional items.
[0102] The word "exemplary" is used herein to mean serving as an example, instance or illustration. Therefore, any embodiment, implementation, process, feature, etc. described herein as exemplary should be understood as an illustrative example and should not be understood as a preferred or advantageous example unless otherwise indicated.
[0103] Although some aspects of at least one embodiment have been described, it will be appreciated that various changes, modifications, and improvements will readily occur to those skilled in the art. Such changes, modifications, and improvements are intended to be part of this disclosure and are intended to fall within the spirit and scope of the principles described herein. Therefore, the foregoing description and accompanying drawings are by way of example only.
Claims
1. A computerized method for dynamically scheduling independent Orthogonal Frequency Division Multiple Access (OFDMA) resources on an upstream channel to serve data transmission requests of downstream devices, the method comprising: During a profile management interval, for a group of a plurality of available resources on the upstream channel, generating at least two bitloading profiles to service the data transmission request, comprising: a first bitloading profile specifying a first allocation of a plurality of bitloadings for each of a plurality of resources during the profile management interval; and a second bitloading profile specifying a second allocation of a plurality of bitloadings for each of the plurality of resources during the profile management interval, wherein the first allocation of bitloadings is different from the second allocation of bitloadings; transmitting the first allocation of bit loading and the second allocation of bit loading to the downstream device; determining performance data for each of the plurality of resources based on testing the set of the plurality of available resources during a performance measurement interval, wherein the performance measurement interval occurs within the profile management interval; and Based on the performance data, a dynamic schedule for each of the plurality of resources is determined, wherein the dynamic schedule indicates, for each of the plurality of available resources, whether to use the first bitloading profile or the second bitloading profile to service the data transmission request during at least a portion of the profile management interval.
2. The method of claim 1 , wherein the dynamic schedule indicates, for each of the plurality of available resources during a first portion of the profile management interval, whether to use the first bitloading profile or the second bitloading profile to service the data transmission request, and determining the dynamic schedule for each of the plurality of resources within the profile management interval further comprises: determining, during a subsequent portion of the profile management interval, second performance data for each of the plurality of resources based on testing the group of the plurality of available resources; and Based on the second performance data, a second dynamic scheduling table is determined, wherein the second dynamic scheduling table indicates whether to use the first bit loading profile or the second bit loading profile to service the data transmission request for each of the multiple resources during a subsequent part of the profile management interval, wherein the subsequent part is different from the first part.
3. The method according to claim 1, wherein: The first bitloading profile includes a high bitloading profile; The second bitloading profile comprises a low bitloading profile; and The dynamic schedule also includes a third bitloading profile, wherein the third bitloading profile includes a null allocation of a plurality of bitloadings for each of a plurality of resources.
4. The method according to claim 1, wherein: The upstream channel includes a group of frames, each frame including a related group of pulses, the related group including a first pulse, a second pulse, and one or more additional pulses; and Generating the schedule includes generating data indicative of a bitloading profile for each pulse of each frame from the set of frames.
5. The method according to claim 4, wherein: The plurality of groups of available resources include mini-slot groups; and Generating the schedule includes: generating, for the first pulse, data indicating the first bitloading profile for a first group of one or more mini-slots from the group of mini-slots; and For the second pulse, data indicative of the second bitloading profile is generated for a second group of one or more mini-slots from the group of mini-slots.
6. The method of claim 5, wherein testing the group of the plurality of available resources comprises: Grouping downstream devices into a plurality of device groups; and For each of the plurality of device groups, collecting performance data of the mini-timeslot group includes: Determining a plurality of mini-time slot subgroups of the mini-time slot group; and Performance data for each mini-slot subgroup is collected using a frame of the upstream channel that is different from frames used for other mini-slot subgroups.
7. The method according to claim 6 also includes scheduling non-data transmission requests based on the performance data of each micro-slot of the micro-slot group, thereby avoiding scheduling the non-data transmission requests in one or more micro-slots of the micro-slot group with relevant performance data, and the relevant performance data indicates damage to the micro-slot.
8. An apparatus configured to schedule independent orthogonal frequency division multiple access (OFDMA) resources on an upstream channel to service a data transmission request from a downstream device, the apparatus comprising a processor in communication with a memory, the processor configured to execute instructions stored in the memory, the instructions causing the processor to: During a profile management interval, for a set of a plurality of available resources on the upstream channel, generating a dynamic schedule to service the data transmission request, comprising generating: a first bitloading profile specifying a first allocation of a plurality of bitloadings for each of a plurality of resources during the profile management interval; and a second bitloading profile specifying a second allocation of a plurality of bitloadings for each of the plurality of resources during the profile management interval, wherein the first allocation of bitloadings is different from the second allocation of bitloadings; transmitting the bit-loaded first distribution and the bit-loaded second distribution to a downstream device; determining performance data for each of the plurality of resources based on testing the set of the plurality of available resources during a performance measurement interval, wherein the performance measurement interval occurs within the profile management interval; and Based on the performance data, a dynamic schedule for each of the plurality of resources is determined, wherein the dynamic schedule indicates, for each of the plurality of available resources, whether to use the first bitloading profile or the second bitloading profile to service the data transmission request during at least a portion of the profile management interval.
9. The apparatus of claim 8, wherein the dynamic schedule indicates, for each of the plurality of available resources during a first portion of the profile management interval, whether to use the first bitloading profile or the second bitloading profile to service the data transmission request, and determining the dynamic schedule for each of the plurality of resources within the profile management interval further comprises: determining, during a subsequent portion of the profile management interval, second performance data for each of the plurality of resources based on testing the group of the plurality of available resources; and Based on the second performance data, a second dynamic scheduling table is determined, wherein the second dynamic scheduling table indicates whether to use the first bit loading profile or the second bit loading profile to service the data transmission request for each of the multiple resources during a subsequent part of the profile management interval, wherein the subsequent part is different from the first part.
10. The apparatus of claim 8, wherein: The first bitloading profile includes a high bitloading profile; The second bitloading profile comprises a low bitloading profile; and The dynamic schedule also includes a third bitloading profile, wherein the third bitloading profile includes a null allocation of a plurality of bitloadings for each of a plurality of resources.
11. The apparatus of claim 8, wherein: The upstream channel includes a group of frames, each frame including a related group of pulses, the related group including a first pulse, a second pulse, and one or more additional pulses; and Generating the schedule includes generating data indicative of a bitloading profile for each pulse of each frame from the set of frames.
12. The apparatus of claim 11, wherein: The plurality of groups of available resources include mini-slot groups; and Generating the schedule includes: generating, for the first pulse, data indicating the first bitloading profile for a first group of one or more mini-slots from the group of mini-slots; and For the second pulse, data indicative of the second bitloading profile is generated for a second group of one or more mini-slots from the group of mini-slots.
13. The apparatus of claim 12, wherein testing the group of the plurality of available resources comprises: Grouping downstream devices into a plurality of device groups; and For each of the plurality of device groups, collecting performance data of the mini-timeslot group includes: Determining a plurality of mini-time slot subgroups of the mini-time slot group; and Performance data for each mini-slot subgroup is collected using a frame of the upstream channel that is different from frames used for other mini-slot subgroups.
14. A device according to claim 13, wherein the instruction is also configured to cause the processor to schedule non-data transmission requests based on performance data of each micro-slot of the micro-slot group, thereby avoiding scheduling the non-data transmission requests in one or more micro-slots of the micro-slot group with relevant performance data, and the relevant performance data indicates damage to the micro-slot.
15. A non-transitory computer-readable medium comprising instructions that, when executed by one or more processors on a computing device, are operable to cause the one or more processors to: During a profile management interval, for a group of a plurality of available resources on the upstream channel, generating a dynamic schedule to service data transmission requests from a downstream device, comprising generating: a first bitloading profile specifying a first allocation of a plurality of bitloadings for each of a plurality of resources during the profile management interval; and a second bitloading profile specifying a second allocation of a plurality of bitloadings for each of the plurality of resources during the profile management interval, wherein the first allocation of bitloadings is different from the second allocation of bitloadings; transmitting the bit-loaded first distribution and the bit-loaded second distribution to a downstream device; determining performance data for each of the plurality of resources based on testing the set of the plurality of available resources during a performance measurement interval, wherein the performance measurement interval occurs within the profile management interval; and Based on the performance data, a dynamic schedule for each of the plurality of resources is determined, wherein the dynamic schedule indicates, for each of the plurality of resources, whether to use the first bitloading profile or the second bitloading profile to service the data transmission request during at least a portion of the profile management interval.
16. The non-transitory computer readable medium of claim 15, wherein the dynamic schedule indicates, for each of the plurality of available resources during a first portion of the profile management interval, whether to use the first bitloading profile or the second bitloading profile to service the data transfer request, and determining the dynamic schedule for each of the plurality of resources within the profile management interval further comprises: determining, during a subsequent portion of the profile management interval, second performance data for each of the plurality of resources based on testing the group of the plurality of available resources; and Based on the second performance data, a second dynamic scheduling table is determined, wherein the second dynamic scheduling table indicates whether to use the first bit loading profile or the second bit loading profile to service the data transmission request for each of the multiple resources during a subsequent part of the profile management interval, wherein the subsequent part is different from the first part.
17. The non-transitory computer readable medium of claim 15, wherein: The first bitloading profile includes a high bitloading profile; The second bitloading profile comprises a low bitloading profile; and The dynamic schedule also includes a third bitloading profile, wherein the third bitloading profile includes a null allocation of a plurality of bitloadings for each of a plurality of resources.
18. The non-transitory computer readable medium of claim 15, wherein: The upstream channel includes a group of frames, each frame including a related group of pulses, the related group including a first pulse, a second pulse, and one or more additional pulses; and Generating the schedule includes generating data indicative of a bitloading profile for each pulse of each frame from the set of frames.
19. The non-transitory computer readable medium of claim 18, wherein: The groups of the plurality of resources include mini-slot groups; and Generating the schedule includes: generating, for the first pulse, data indicating the first bitloading profile for a first group of one or more mini-slots from the group of mini-slots; and For the second pulse, data indicative of the second bitloading profile is generated for a second group of one or more mini-slots from the group of mini-slots.
Citation Information
Patent Citations
Orthogonal frequency division multiplexing (OFDM) with variable bit loading and time and / or frequency interleaving
CN103873193A
Communications system and bit-loading method used in a communications system
CN103931132A
Method and apparatus for generating and using dynamic profile of cable transmission system
CN114556846A
Systems and methods for docsis profile management
US20180102868A1
Method for an adaptive bitloading in an OFDM-based communication system
WO2002023847A1