Resource allocation for configurable bandwidths
11743776 · 2023-08-29
Assignee
Inventors
Cpc classification
H04W72/23
ELECTRICITY
Y02D30/70
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
International classification
Abstract
Disclosed are methods, apparatus and systems for resource allocation when configurable bandwidths are available. One method includes performing a first transmission using a first set of resources in a first bandwidth, and subsequently performing a second transmission using a second set of resources in a second bandwidth, where the first bandwidth is greater than the second bandwidth, where the first and second set of resources are identified by a first and second value, respectively, and where a bit representation of the first value is a zero-padded version of a bit representation of the second value on either the most significant bit (MSB) or the least significant bit (LSB).
Claims
1. A method for wireless communication, comprising: performing a first transmission using a first set of resources in a bandwidth; and performing, subsequent to the first transmission, a second transmission using a second set of resources in the bandwidth, wherein the first set of resources is identified by a first plurality of values, wherein the second set of resources is identified by a second plurality of values, wherein the first plurality of values is based on the second plurality of values, and wherein a third value of the second plurality of values is greater than a fourth value of the second plurality of values, and (a) a length corresponding to the third value is greater than or equal to another length corresponding to the fourth value or (b) a starting index corresponding to the third value is greater than or equal to another starting index corresponding to the fourth value.
2. The method of claim 1, wherein the first and second plurality of values correspond to a first plurality and a second plurality of resource indication values (RIVs), respectively, wherein the first and second set of resources correspond to a first number and a second number of resource blocks, respectively, and wherein the bandwidth corresponds to a bandwidth part (BWP).
3. The method of claim 2, wherein the first plurality of values (RIV.sub.new) is determined based on If (m==0)
RIV.sub.new=RIV Else If (RIV>(mN−1)) & (RIV<(m+1)N−m)
RIV.sub.new=RIV−m(m+1)/2 Else
RIV.sub.new=max(RIV)−((m−2N)(m+1)/2+RIV) End End wherein max(RIV) is a maximum value of a first value, wherein N is the bandwidth, and wherein m=floor(N/2).
4. An apparatus comprising a processor configured to: perform a first transmission using a first set of resources in a bandwidth; and perform, subsequent to the first transmission, a second transmission using a second set of resources in the bandwidth, wherein the first set of resources is identified by a first plurality of values, wherein the second set of resources is identified by a second plurality of values, wherein the first plurality of values is based on the second plurality of values, and wherein a third value of the second plurality of values is greater than a fourth value of the second plurality of values, and (a) a length corresponding to the third value is greater than or equal to another length corresponding to the fourth value or (b) a starting index corresponding to the third value is greater than or equal to another starting index corresponding to the fourth value.
5. The apparatus of claim 4, wherein the first and second plurality of values correspond to a first plurality and a second plurality of resource indication values (RIVs), respectively, wherein the first and second set of resources correspond to a first number and a second number of resource blocks, respectively, and wherein the bandwidth corresponds to a bandwidth part (BWP).
6. The apparatus of claim 5, wherein the first plurality of values (RIVnew) is determined based on If (m==0)
RIV.sub.new=RIV Else If (RIV>(mN−1)) & (RIV<(m+1)N−m)
RIV.sub.new=RIV−m(m+1)/2 Else
RIV.sub.new=max(RIV)−((m−2N)(m+1)/2+RIV) End End wherein max(RIV) is a maximum value of a first value, wherein N is the bandwidth, and wherein m=floor(N/2).
7. A computer program product comprising a non-transitory computer-readable media that includes code stored thereupon, the code, when executed by a processor, causing the processor to implement a method, comprising: performing a first transmission using a first set of resources in a bandwidth; and performing, subsequent to the first transmission, a second transmission using a second set of resources in the bandwidth, wherein the first set of resources is identified by a first plurality of values, wherein the second set of resources is identified by a second plurality of values, wherein the first plurality of values is based on the second plurality of values, and wherein a third value of the second plurality of values is greater than a fourth value of the second plurality of values, and (a) a length corresponding to the third value is greater than or equal to another length corresponding to the fourth value or (b) a starting index corresponding to the third value is greater than or equal to another starting index corresponding to the fourth value.
8. The computer program product of claim 7, wherein the first and second plurality of values correspond to a first plurality and a second plurality of resource indication values (RIVs), respectively, wherein the first and second set of resources correspond to a first number and a second number of resource blocks, respectively, and wherein the bandwidth corresponds to a bandwidth part (BWP).
9. The computer program product of claim 8, wherein the first plurality of values (RIVnew) is determined based on If (m==0)
RIV.sub.new=RIV Else If (RIV>(mN−1)) & (RIV<(m+1)N−m)
RIV.sub.new=RIV−m(m+1)/2 Else
RIV.sub.new=max(RIV)−((m−2N)(m+1)/2+RIV) End End wherein max(RIV) is a maximum value of a first value, wherein N is the bandwidth, and wherein m=floor(N/2).
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
DETAILED DESCRIPTION
(8) The New Radio (NR) system, which is designed to use a much wider bandwidth than the existing Long Term Evolution (LTE) system, enables more efficient use of resources with lower control overhead. Furthermore, the introduction of the new bandwidth part (BWP) concept allows to flexibly and dynamically configure User Equipment's (UE's) operating bandwidth, which will make NR an energy efficient solution despite the support of wide bandwidth.
(9) The concept of BWP for NR provides a means of operating UEs with smaller BW than the configured channel bandwidth (CBW), which makes NR an energy efficient solution despite the support of wideband operation. Operation using BWPs involves the UE is not being required to transmit or receive outside of the configured frequency range of the active BWP, which results in power savings.
(10) In an example, switching from one BWP to another BWP may include specifying PDSCH or PUSCH resource allocation. This may be accomplished using a resource indication value (RIV). In general, two values (e.g. number or length of resource blocks and a starting resource block) may be used to specify a resource allocation. The RIV enables representing both these values using a single value, thereby simplifying the overhead required to communicate the resource allocation specification.
(11)
(12) Examples of Resource Allocation (RA) in Existing Systems
(13) In an existing NR system, a BWP index may be used to change the BWP being used by a UE. The downlink control information (DCI) is related to the BWP indicated by the index, but the interpretation of the DCI (number of bits) is determined by the current BWP. Currently, an operation that maps the DCI to a new BWP (different from the current BWP) does not exist.
(14) In some existing systems, sizes of all DCI bitfields in DCI formats 0-1 and 1-1 in UE-specific search space (USS) are determined by the current BWP. Data may be transmitted on the BWP indicated by the BWP index. If the BWP index activates another BWP, the following transformation rules are implemented: (1) zero-pad small bitfields to match the new BWP, and (2) truncate large bitfields to match the new BWP.
(15) In existing NR resource allocation of type 1, the DCI frequency domain resource allocation field needs ┌log.sub.2(N.sub.RB(N.sub.RB+1)/2)┐ bits, where N.sub.RB is the number of resource blocks (RBs, which may also be referred to as physical resource blocks or PRBs). In an example, if a smaller BWP (e.g. 50 RBs which needs 11 bits) needs to switch to a larger BWP (e.g. 200 RBs which needs 15 bits), the current NR system algorithm zero-pads the smaller bitfield to match the new BWP (4 zero bits are padded). The NR system defines two schemes: (1) zero-pad on the most significant bit (MSB) of the smaller bitfield, or (2) zero-pad on the least significant bit (LSB) of the smaller bitfield.
(16) According to the mathematical definition of the RIV, zero-padding on the MSB of the bitfield implies that the RIV may only take on very small values, and therefore the length of the RBs may only take on very small values. Similarly, zero-padding on the LSB of the bitfield implies that the RIV can only take on very large values, and thus the length of the RBs may take on only very large values.
(17) In an example, and in the case that the BWP is switching to a larger BWP, zero- padding on the LSB of the bitfield may seem more reasonable. However, if the network node (e.g. gNB) has other UEs scheduled on the RBs that occupy the part of the frequency that corresponds to RBs with high-valued indices, then zero-padding on the LSB will result in scheduling conflicts, and thus, zero-padding on the MSB might be preferable.
(18) As discussed, the RIV may depend on number/length of resource blocks (denoted L.sub.RBs) and a starting resource block (denoted RB.sub.start). According to the mathematical definition of the RIV in NR, the RIVs are generated by keeping the value of L.sub.RBs constant and increasing the value of RB.sub.start, which may result in a limit on the length of the RBs that may be scheduled by the UE, and which may cause resource blocking.
(19) Numerical Example. In an example for resource allocation (RA) type 1, BWP1 uses 24 RBs (which needs 9 bits), and BWP2 uses 275 RBs (which needs 16 bits). If a UE needs to switch from BWP1 to BWP2, it needs to zero-pad 7 bits.
(20) Assume the BWP1 bitfield is configured as 001101101.
(21) Zero-padding on the MSB of the bitfield for BWP2 results in 0000000001101101, which is RIV=107. According to the mathematical definition of RIV, this implies that L.sub.RBs is 1 RB and RB.sub.start is the 107th RB. Alternatively, zero-padding on the LSB of the bitfield for BWP2 results in 0011011010000000, which is RIV=13952. According to the mathematical definition of RIV, this implies that L.sub.RBs is 51 RBs and RB.sub.start is the 107th RB.
(22) Mathematical Definition. The mathematical definition of the RIV, according to the existing NR specification, cannot guarantee the monotonicity of the RIV.
if (L.sub.RBs−1)≤└N.sub.BWP.sup.size/2┘then
RIV=N.sub.BWP.sup.size(L.sub.RBs−1)+RB.sub.start
else
RIV=N.sub.BWP.sup.size(N.sub.BWP.sup.size−L.sub.RBs+1)+(N.sub.BWP.sup.size−1−RB.sub.start)
(23) where L.sub.RBs≥1 and shall not exceed N.sub.BWP.sup.size−RB.sub.start.
(24) In particular, the “else” condition cannot guarantee the monotonicity of the RIV.
(25) In the NR (new RAT) resource allocation of type 1, similar to the LTE resource allocation of type 2, the resource block assignment information to a UE indicates a set of contiguously allocated resource blocks within the active carrier bandwidth part of size N.sub.BWP.sup.size PRBs. However, when DCI format 1-0 is decoded in the common search space in CORESET 0, the indication is interpreted as being for the initial bandwidth part of size N.sub.BWP.sup.size PRBs to be used.
(26) For NR resource allocation type 1, the ┌log.sub.2(N.sub.BWP.sup.size(N.sub.BWP.sup.size+1)/2) ┐ LSBs provide the resource allocation in DCI format frequency domain resource allocation field ,and the resource allocation field consists of a resource indication value (RIV) corresponding to a starting resource block (RB.sub.start) and a length in terms of contiguously allocated resource blocks (L.sub.RBs).
(27) Typically, these two values (RB.sub.start and L.sub.RBs) may be used to specify resource allocation, but using the RIV enables the representation of these two values using a single value, which would have some advantage in terms of number of bits to carry the information.
(28) The mathematical definition for the RIV, depending on the DCI format, is given as:
if (L.sub.RBs−1)≤└N.sub.BWP.sup.size/2┘then
RIV=N.sub.BWP.sup.size(L.sub.RBs−1)+RB.sub.start
(29) else
RIV=N.sub.BWP.sup.size(N.sub.BWP.sup.size−L.sub.RBs+1)+(N.sub.BWP.sup.size−1−RB.sub.start)
(30) where L.sub.Rbs≥1 and shall not exceed N.sub.BWP.sup.size−RB.sub.start.
(31) The above definition shows that sorting order of the RIV value includes initially keeping L.sub.RBs constant and increasing RB.sub.start. For example, and using the notation (RB.sub.start,L.sub.RBs),
RIV=0 is equivalent to (0,1)
RIV=1 is equivalent to (1,1)
RIV=2 is equivalent to (2,1)
RIV=N.sub.BWP.sup.size is equivalent to (0,2)
(32) . . .
(33) BWP Background. A UE configured for operation in bandwidth parts (BWPs) of a serving cell, is configured by higher layers for the serving cell to use a set of at most four bandwidth parts (BWPs) for receptions by the UE (DL BWP set) in a DL bandwidth by parameter DL-BWP and a set of at most four BWPs for transmissions by the UE (UL BWP set) in an UL bandwidth by parameter UL-BWP for the serving cell.
(34) If a bandwidth path indicator field is configured in DCI format 1-1, the bandwidth path indicator field value indicates the active DL BWP, from the configured DL BWP set, for DL receptions. If a bandwidth path indicator field is configured in DCI format 0-1, the bandwidth path indicator field value indicates the active UL BWP, from the configured UL BWP set, for UL transmissions.
(35) Example Embodiments for RA Based on RIV Zero-Padding with Bit Indication
(36) As shown in
(37) In some embodiments, the indication bit is in the frequency domain resource allocation field, e.g. an MSB of the field or a second significant bit of the field. In other embodiments, the indication bit may be an implied indication through bandwidth path indicator field, when the BWP index is different from the current BWP index.
(38) In some embodiments, where both resource allocation type 0 and type 1 are configured, the indication bit may be used to select between a resource allocation type (e.g. dynamic switching between RA type 0 and RA type 1). In some embodiments, the network node (e.g. eNB) may select whether the zero-padding is on the MSB or on the LSB.
(39) Example Embodiments for RA Based on New RIV Mathematical Definition
(40) Embodiments of the disclosed technology may use a new mathematical definition of RIV to ensure that resource blocking is eliminated. As described in the context of existing NR systems and as shown in
(41) In contrast, and as shown in
(42) In an example, and using the notation (RB.sub.start,L.sub.RBs), a plurality of RIVs may be determined as follows:
RIV=0 is equivalent to (0,1)
RIV=1 is equivalent to (0,2)
RIV=2 is equivalent to (0,3)
(43) . . .
RIV=N.sub.BWP.sup.size−2 is equivalent to (0,N.sub.BWP.sup.size−1)
RIV=N.sub.BWP.sup.size−1 is equivalent to (1,1)
(44) . . .
RIV=max_value is equivalent to (N.sub.BWP.sup.size−1,1)
(45) In some embodiments, and applicable to the above scenario, the following first alternate mathematical definition for the RIV may be defined as:
if RB.sub.start≤└N.sub.BWP.sup.size/2┘then
RIV=N.sub.BWP.sup.sizeRB.sub.start+(L.sub.RBs−1)
(46) else
RIV=N.sub.BWP.sup.size(N.sub.BWP.sup.size−RB.sub.start)+(N.sub.BWP.sup.size−L.sub.RBs)
(47) where L.sub.RBs≥1 and shall not exceed N.sub.BWP.sup.size−RB.sub.start.
(48) In other embodiments, an arbitrary starting point for the resource block index, or a maximum value of the resource block index may be used. In this scenario, a plurality of RIVs may be determined as follows:
RIV=1 is equivalent to (N.sub.BWP.sup.size−1,1)
RIV=2 is equivalent to (N.sub.BWP.sup.size−2,1)
RIV=3 is equivalent to (N.sub.BWP.sup.size−2,2)
RIV=4 is equivalent to (N.sub.BWP.sup.size−3,1)
RIV=5 is equivalent to (N.sub.BWP.sup.size−3,2)
RIV=6 is equivalent to (N.sub.BWP.sup.size−3,3)
(49) . . .
RIV=max_value is equivalent to (0,N.sub.BWP.sup.size)
(50) wherein RIVtarget=abs(RIVmax−RIV).
(51) In some embodiments, and applicable to the above scenario, the following second alternate mathematical definition for the RIV may be defined as:
if RB.sub.start≤└N.sub.BWP.sup.size/2┘then
RIV.sub.temp=N.sub.BWP.sup.sizeRB.sub.start+(L.sub.RBs−1)
(52) else
RIV.sub.temp=N.sub.BWP.sup.size−RB.sub.start)+(N.sub.BWP.sup.size−L.sub.RBs)
RIV=RIV.sub.Max−RIV.sub.temp
(53) where L.sub.RBs≥1 and shall not exceed N.sub.BWP.sup.size−RB.sub.start.
(54) In some embodiments, the first or second alternate mathematical definitions for the RIV may be selected based on an indication bit. In an example, the indication bit is in the frequency domain resource allocation field, e.g. an MSB of the field or a second significant bit of the field. In another example, the indication bit may be an implied indication through bandwidth path indicator field, when the BWP index is different from the current BWP index.
(55) As is seen and described in this patent documents, the various embodiments of the disclosed technology may be combined unless the implementations expressly prohibit it. For example, the zero-padding approach may be used in conjunction with the new mathematical definitions for the RIV as seen in the following numerical example.
(56) Numerical Example. Continuing the example described in the context of an existing NR system for resource allocation (RA) type 1, in which BWP1 uses 24 RBs and BWP2 uses 275 RBs, and the UE needs to switch from BWP1 to BWP2, it was assumed that the BWP1 bitfield is configured as 001101101.
(57) Zero-padding on the MSB of the bitfield for BWP2 results in 0000000001101101, which is RIV=107. According to the mathematical definition of RIV, this implies that L.sub.RBs is 1 RB and RB.sub.start is the 107th RB. If the new mathematical definition for RIV is employed, this results in L.sub.RBs being 107 RBs and RB.sub.start start being the 0th RB.
(58) Zero-padding on the LSB of the bitfield for BWP2 results in 0011011010000000, which is RIV=13952. According to the mathematical definition of RIV, this implies that L.sub.RBs is 51 RBs and RB.sub.start is the 107th RB. If the new mathematical definition for RIV is employed, this results in L.sub.RBs being 107 RBs and RB.sub.start being the 51st RB.
(59) Example Embodiments for RA Based on RIV Sampling
(60) Embodiments of the disclosed technology may sample (more specifically, downsample) a set of RIVs to generate an alternate set of RIVs that may prevent resource blocking. In an example, and as shown in
(61) In some embodiments, and as shown in
(62) In other embodiments, and as shown in
(63) In yet other embodiments, and as shown in
(64) Numerical Example. In an example, the bitfield of a large BWP (e.g. 200 RBs which needs 15 bits) uses 2∧15 states, whereas the bitfield of a smaller BWP (e.g. 50 RBs which needs 11 bits) only use 2∧11 states. For this scenario, sampling represented by (1:2∧(15-11):2∧15) may be used, in either equal or unequal intervals, and with or without an offset.
(65) In some embodiments, the sampling may be from a larger ceil(log2(N)) set of RIV values to a smaller ceil(log2(M)) set of RIV values as shown in
(66) Example Embodiments for RA Based on RIV Monotonicity
(67) Embodiments of the disclosed technology may modify the monotonicity of the definition in order eliminate resource blocking. The original definition of the RIV for an LTE system, and as described in the context of existing systems, the RIV value sorting order is to first keep the L.sub.RBs constant while increasing RB.sub.start. However, this results in a lack of monotonicity, as shown in
(68) For monotonicity, an increase in the RIV value should correspond to RB.sub.start increasing when L.sub.RBs=1, and the RIV value increasing should correspond to RB.sub.start increasing when L.sub.RBs=2, and so forth. However, the restriction of L.sub.RBs≥1 and this parameter not exceeding N.sub.BWP.sup.size−RB.sub.start results in RB.sub.start not being able to iterate through all values when L.sub.RBs>1. Thus, the RIV value does not always indicate the combination of RB.sub.start and L.sub.RBs that are iterated through. As shown in Table 1, the bolded/highlighted entries correspond to RIV values that do not correspond to the combination of RB.sub.start and L.sub.RBs not changing monotonically.
(69) TABLE-US-00001 TABLE 1 Example of a lack of monotonicity in RIV value generation RIV (RB.sub.start, L.sub.RBs) RIV (RB.sub.start, L.sub.RBs) RIV (RB.sub.start, L.sub.RBs) 0 (0, 1) 2N + 1 (1, 3) 3N − 2 (1, N − 1) 1 (1, 1) . . 3N − 1 (0, N − 1) . . . . 2 (2, 1) 3N − 3 (N − 3, 3) 3N (0, 4) 3 (3, 1) 3N − 2 (1, N − 1) 3N + 1 (1, 4) . . 3N − 1 (0, N − 1) . . . . . . . . . . N − 1 (N − 1, 1) 3N (0, 4) 4N − 4 (N − 4, 4) N (0, 2) 3N + 1 (1, 4) 4N − 3 (2, N − 2) N + 1 (1, 2) . . 4N − 2 (1, N − 2) . . . . . . 4N − 4 (N − 4, 4) 4N − 1 (0, N − 2) . . . . 2N − 2 (N − 2, 2) 4N − 3 (2, N − 2) 4N (0, 5) 2N − 1 (0, N) 4N − 2 (1, N − 2) 4N + 1 (1, 5) 2N (0, 3) . . . . . . . . . . . . 2N + 1 (1, 3) 3N − 3 (N − 3, 3) . . . . . .
(70) In some embodiments, the monotonicity of the RIV may be corrected using the following formula given by:
(71) TABLE-US-00002 If m == 0 RIV.sub.new = RIV else If (RIV > mN − 1) & (RIV < (m + 1)N − m) RIV.sub.new = RIV − m(m + 1) / 2 else RIV.sub.new = max(RIV) − ((m − 2N)(m + 1) / 2 + RIV) end end
(72) where max(RIV)=the max state of the RIV, where m=└N/2┘, and where N is the bandwidth of BWP N.sub.BWP.sup.size.
(73) Different embodiments of the disclosed technology, e.g. zero-padding with bit indication, new mathematical definitions, sampling and monotonicity, may be combined to provide embodiments that prevent resource blocking, and provide efficient resource allocation methods when configurable bandwidths are available.
(74)
(75) The method 500 includes, at step 520, performing, subsequent to the first transmission, a second transmission using a second set of resources in a second bandwidth. The first set of resources are identified by a first value (or a first plurality of values) and the second set of resources are identified by a second value (or a second plurality of values), and correspond to a UE switching from using the first set of resources for the first transmission to using the second set of resources for the second transmission.
(76) In some embodiments, and as described in the context of the “Embodiments for RA Based on RIV Zero-Padding with Bit Indication” section, the bit representation of the first value is a zero-padded version of a bit representation of the second value, with the bit representation of the second value being zero-padded on an MSB or an LSB.
(77) In some embodiments, and as described in the context of the “Embodiments for RA Based on RIV Sampling” section, the first plurality of values may be determined by selecting a subset of the second plurality of values based on relative sizes of the first and second set of resources. For example, the sampling equal or unequal, and with or without an offset.
(78) In some embodiments, and as described in the context of the “Embodiments for RA Based on RIV Monotonicity” section, the second value is based on a first value, and is computed using a monotonic function where the first value being greater than the second value, implies that (a) a length of the first set of resources is greater than or equal to a length of the second set of resource or (b) a starting index of the first set of resources is greater than or equal to a starting index of the second set of resources.
(79) In some embodiments, and as described in the context of the “Embodiments for RA Based on New RIV Mathematical Definition” section, the first value is of a first type that is generated by keeping a value of a first variable, e.g. L.sub.RBs, constant and increasing a value of a second variable, e.g. RB.sub.start, and the second value is of a second type that is generated by keeping the value of the second variable constant and increasing the value of the first variable.
(80)
(81) It is intended that the specification, together with the drawings, be considered exemplary only, where exemplary means an example and, unless otherwise stated, does not imply an ideal or a preferred embodiment. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. Additionally, the use of “or” is intended to include “and/or”, unless the context clearly indicates otherwise.
(82) Some of the embodiments described herein are described in the general context of methods or processes, which may be implemented in one embodiment by a computer program product, embodied in a computer-readable medium, including computer-executable instructions, such as program code, executed by computers in networked environments. A computer-readable medium may include removable and non-removable storage devices including, but not limited to, Read Only Memory (ROM), Random Access Memory (RAM), compact discs (CDs), digital versatile discs (DVD), etc. Therefore, the computer-readable media can include a non-transitory storage media. Generally, program modules may include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Computer- or processor-executable instructions, associated data structures, and program modules represent examples of program code for executing steps of the methods disclosed herein. The particular sequence of such executable instructions or associated data structures represents examples of corresponding acts for implementing the functions described in such steps or processes.
(83) Some of the disclosed embodiments can be implemented as devices or modules using hardware circuits, software, or combinations thereof. For example, a hardware circuit implementation can include discrete analog and/or digital components that are, for example, integrated as part of a printed circuit board. Alternatively, or additionally, the disclosed components or modules can be implemented as an Application Specific Integrated Circuit (ASIC) and/or as a Field Programmable Gate Array (FPGA) device. Some implementations may additionally or alternatively include a digital signal processor (DSP) that is a specialized microprocessor with an architecture optimized for the operational needs of digital signal processing associated with the disclosed functionalities of this application. Similarly, the various components or sub-components within each module may be implemented in software, hardware or firmware. The connectivity between the modules and/or components within the modules may be provided using any one of the connectivity methods and media that is known in the art, including, but not limited to, communications over the Internet, wired, or wireless networks using the appropriate protocols.
(84) While this document contains many specifics, these should not be construed as limitations on the scope of an invention that is claimed or of what may be claimed, but rather as descriptions of features specific to particular embodiments. Certain features that are described in this document in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable sub-combination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a sub-combination or a variation of a sub-combination. Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results.
(85) Only a few implementations and examples are described and other implementations, enhancements and variations can be made based on what is described and illustrated in this disclosure.