System and method for rate adaptation based on total number of spatial streams in MU-MIMO transmissions

Wireless node selects modulation coding schemes (MCS) and number of spatial streams for transmitting data to devices via a MU-MIMO transmission based on the total number of spatial streams. In one implementation, a wireless node selects first MCS, first number of spatial stream(s) for a first device, and total number of spatial streams to be used in the MU-MIMO transmission so as to maximize the data rate to the first device, then selects a second MCS and a second number of spatial stream(s) for a second device based on the selected total number of spatial streams. In another implementation, the wireless node toggles the first selection of the MCS and spatial stream(s) between the first and second devices for fairness purposes. In another implementation, a wireless selects the MCS and the spatial streams for the receiving nodes so as to maximize the aggregate data rate for the MU-MIMO transmission.

FIELD

Certain aspects of the present disclosure generally relate to wireless communications and, more particularly, to a system and method for rate adaptation (e.g., selecting the modulation coding scheme (MCS) and number of spatial stream Nss for each receiving device) based on total number of spatial streams in multi-user multiple-input-multiple-output (MU-MIMO) transmissions.

BACKGROUND

A transmitting wireless node, such as an access point or a user device, having multi-user multiple-input-multiple-output (MU-MIMO) transmission capability is able to simultaneously transmit data (e.g., data frame) to multiple receiving wireless nodes via a set of spatial streams. In such MU-MIMO transmission, there may be one or more spatial streams for transmitting data to each of the receiving wireless nodes.

The transmitting wireless node performs rate adaptation by selecting a particular modulation coding scheme (MCS) and a particular number of spatial streams (Nss) used for transmitting data to each of the receiving wireless nodes via a MU-MIMO transmission. Typically, the selection of the particular MCS for a receiving wireless node is from among a set of available MCSs (e.g., MCS-1to MCS-9). Similarly, the selection of the particular number of spatial streams for a receiving wireless node is from among a set of available numbers of spatial streams (e.g., Nss=1, 2, 3, or 4 (or other number of available spatial streams)).

Typically, the transmitting wireless node selects an MCS-Nss combination for transmitting data to a receiving wireless node based on the maximum expected data rates associated with the available set of MCSs and statistically-determined expected data error rates associated with the available MCS-Nss combinations, respectively. The transmitting wireless node typically selects a particular MCS-Nss combination in order to maximize the effective data rate (e.g., goodput) for transmitting data to each receiving wireless node via the MU-MIMO transmission. Accordingly, the disclosure herein relates to improvements in selecting the MCS-Nss combination for each receiving wireless node of an MU-MIMO transmission.

SUMMARY

Certain aspects of the present disclosure provide an apparatus for wireless communications. The apparatus includes a processing system configured to determine a first modulation coding scheme (MCS) for transmitting data to a first wireless node via a multiple-user multiple-input-multiple-output (MU-MIMO) transmission based on a total number of spatial streams to be used in the MU-MIMO transmission; and generate a first frame for transmission to the first wireless node, wherein the first frame includes a first data payload modulated and coded using the first MCS; and an interface configured to output the first frame for transmission to the first wireless node via the MU-MIMO transmission.

Certain aspects of the present disclosure provide a method for wireless communications. The method includes determining a first modulation coding scheme (MCS) for transmitting data to a first wireless node via a multiple-user multiple-input-multiple-output (MU-MIMO) transmission based on a total number of spatial streams to be used in the MU-MIMO transmission; generating a first frame for transmission to the first wireless node, wherein the first frame includes a first data payload modulated and coded using the first MCS; and outputting the first frame for transmission to the first wireless node via the MU-MIMO transmission.

Certain aspects of the present disclosure provide an apparatus for wireless communications. The apparatus includes means for determining a first modulation coding scheme (MCS) for transmitting data to a first wireless node via a multiple-user multiple-input-multiple-output (MU-MIMO) transmission based on a total number of spatial streams to be used in the MU-MIMO transmission; means for generating a first frame for transmission to the first wireless node, wherein the first frame includes a first data payload modulated and coded using the first MCS; and means for outputting the first frame for transmission to the first wireless node via the MU-MIMO transmission.

Certain aspects of the present disclosure provide a computer readable medium having instructions stored thereon for determining a first modulation coding scheme (MCS) for transmitting data to a first device via a multiple-user multiple-input-multiple-output (MU-MIMO) transmission based on a total number of spatial streams used in the MU-MIMO transmission; generating a first frame for transmission to a first device, wherein the first frame includes a first data payload modulated and coded using the first MCS; and outputting the first frame for transmission to the first device via the MU-MIMO transmission.

Aspects of the present disclosure also provide various methods, means, and computer program products corresponding to the apparatuses and operations described above.

DETAILED DESCRIPTION

An Example Wireless Communications System

The techniques described herein may be used for various broadband wireless communications systems, including communication systems that are based on an orthogonal multiplexing scheme. Examples of such communication systems include Spatial Division Multiple Access (SDMA), Time Division Multiple Access (TDMA), Orthogonal Frequency Division Multiple Access (OFDMA) systems, Single-Carrier Frequency Division Multiple Access (SC-FDMA) systems, and so forth. An SDMA system may utilize sufficiently different directions to simultaneously transmit data belonging to multiple user terminals. A TDMA system may allow multiple user terminals to share the same frequency channel by dividing the transmission signal into different time slots, each time slot being assigned to different user terminal. An OFDMA system utilizes orthogonal frequency division multiplexing (OFDM), which is a modulation technique that partitions the overall system bandwidth into multiple orthogonal sub-carriers. These sub-carriers may also be called tones, bins, etc. With OFDM, each sub-carrier may be independently modulated with data. An SC-FDMA system may utilize interleaved FDMA (IFDMA) to transmit on sub-carriers that are distributed across the system bandwidth, localized FDMA (LFDMA) to transmit on a block of adjacent sub-carriers, or enhanced FDMA (EFDMA) to transmit on multiple blocks of adjacent sub-carriers. In general, modulation symbols are sent in the frequency domain with OFDM and in the time domain with SC-FDMA.

An access point (“AP”), generally a wireless node, may comprise, be implemented as, or known as a Node B, a Radio Network Controller (“RNC”), an evolved Node B (eNB), a Base Station Controller (“BSC”), a Base Transceiver Station (“BTS”), a Base Station (“BS”), a Transceiver Function (“TF”), a Radio Router, a Radio Transceiver, a Basic Service Set (“BSS”), an Extended Service Set (“ESS”), a Radio Base Station (“RBS”), or some other terminology.

With reference to the following description, it shall be understood that not only communications between access points and user devices are allowed, but also direct (e.g., peer-to-peer) communications between respective user devices are allowed. Furthermore, a device (e.g., an access point or user device) may change its behavior between a user device and an access point according to various conditions. Also, one physical device may play multiple roles: user device and access point, multiple user devices, multiple access points, for example, on different channels, different time slots, or both.

FIG. 1illustrates a block diagram of an exemplary wireless communications system100. The communications system100comprises an access point102(generally a wireless node), a backbone network104, a user device106(generally a wireless node), and another user device110(generally a wireless node).

The access point102, which may be configured for wireless local area network (LAN) and/or wireless wide area network (WAN) applications, may facilitate data communications between the user devices106and110. The access point102may further facilitate data communications between devices (not shown) coupled to the backbone network104and any one or more of the user devices106and110.

As discussed in more detail herein, the access point102may simultaneously transmit data to the user devices106and110via a multi-user multiple-input-multiple-output (MU-MIMO) transmission. In accordance with the MU-MIMO transmission, the access point102transmits data to the user device106via a number of one or more spatial streams Nss1. Similarly, the access point102transmits data to the user device110via a number of one or more spatial streams Nss2.

FIG. 2illustrates a block diagram of a wireless communications system200including an access point210(generally, a first wireless node) and a user device250(generally, a second wireless node). The access point210is a transmitting entity for the downlink and a receiving entity for the uplink. The user device250is a transmitting entity for the uplink and a receiving entity for the downlink. As used herein, a “transmitting entity” is an independently operated apparatus or device capable of transmitting data via a wireless channel, and a “receiving entity” is an independently operated apparatus or device capable of receiving data via a wireless channel.

For transmitting data, the access point210comprises a transmit data processor220, a frame builder222, a transmit processor224, a plurality of transceivers226-1to226-N, and a plurality of antennas230-1to230-N. The access point210also comprises a controller234for controlling operations of the access point210.

In operation, the transmit data processor220receives data (e.g., data bits) from a data source215, and processes the data for transmission. For example, the transmit data processor220may encode the data (e.g., data bits) into encoded data, and modulate the encoded data into data symbols. The transmit data processor220may support different modulation and coding schemes (MCSs). For example, the transmit data processor220may encode the data (e.g., using low-density parity check (LDPC) encoding) at any one of a plurality of different coding rates. Also, the transmit data processor220may modulate the encoded data using any one of a plurality of different modulation schemes, including, but not limited to, BPSK, QPSK, 16 QAM, 64 QAM, 64 APSK, 128 APSK, 256 QAM, and 256 APSK.

In certain aspects, the controller234may send a command to the transmit data processor220specifying which modulation and coding scheme (MCS) to use (e.g., based on channel conditions of the downlink as measured by an expected data error rate and/or expected data transmission rate), and the transmit data processor220may encode and modulate data from the data source215according to the specified MCS. It is to be appreciated that the transmit data processor220may perform additional processing on the data such as data scrambling, and/or other processing. The transmit data processor220outputs the data symbols to the frame builder222.

The frame builder222constructs a frame (also referred to as a packet), and inserts the data symbols into a payload data of the frame. The frame may include a preamble with specific sequences for automatic gain control (AGC) at the transmitter and/or receiver, timing and phase adjustment at the receiver for properly decoding the frame, and channel estimation and equalization at the receiver. Additionally, the frame may include a header that provides information pertaining to the frame (e.g., the specific MCS for the data payload, number of spatial streams, etc.). The frame builder222outputs the frame to the transmit processor224.

The transmit processor224processes the frame for transmission on the downlink. For example, the transmit processor224may support different transmission modes, such as orthogonal frequency-division multiplexing (OFDM) transmission mode, single-carrier (SC) transmission mode, wideband single carrier (WB SC) transmission mode, aggregate single carrier (SC) transmission mode, etc. In this example, the controller234may send a command to the transmit processor224specifying which transmission mode to use, and the transmit processor224may process the frame for transmission according to the specified transmission mode.

In certain aspects, the transmit processor224may support multiple-output-multiple-input (MIMO) transmission, including single-user MIMO (also known as SU-MIMO) and multi-user MIMO (also known as MU-MIMO). In these aspects, the access point210may include multiple antennas230-1to230-N and multiple transceivers226-1to226-N (e.g., one for each antenna). The transmit processor224may perform spatial processing on the incoming frame and provide a plurality of transmit streams for the plurality of antennas. In this example, the controller234may send a command to the transmit processor224specifying the number of one or more spatial streams for transmitting data to each receiving device of an MU-MIMO transmission (e.g., based on channel conditions of the downlink as measured by an expected data error rate and/or expected data transmission rate).

The transceivers226-1to226-N receive and processes (e.g., converts to analog, amplifies, filters, and frequency up-converts) the respective transmit frame streams to generate distinct spatially-diverse transmit signals for transmission via the antennas230-1to230-N, respectively. For example, the transceivers226-1to226-M may up-convert the output of the transmit processor224to a transmit signal having a frequency in the 60 GHz range.

For transmitting data, the user device250comprises a transmit data processor260, a frame builder262, a transmit processor264, a plurality of transceivers266-1to266-M, and a plurality of antennas270-1to270-M (e.g., one antenna per transceiver). The user device250may transmit data to the access point210on the uplink, and/or transmit data to another user device (e.g., for peer-to-peer communication). The user device250also comprises a controller274for controlling operations of the user device250.

In operation, the transmit data processor260receives data (e.g., data bits) from a data source255, and processes (e.g., encodes and modulates) the data for transmission. The transmit data processor260may support different MCSs. For example, the transmit data processor260may encode the data (e.g., using LDPC encoding) at any one of a plurality of different coding rates, and modulate the encoded data using any one of a plurality of different modulation schemes, including, but not limited to, BPSK, QPSK, 16 QAM, 64 QAM, 64 APSK, 128 APSK, 256 QAM, and 256 APSK. In certain aspects, the controller274may send a command to the transmit data processor260specifying which MCS to use (e.g., based on channel conditions of the uplink as measured by an expected data error rate and/or expected data transmission rate), and the transmit data processor260may encode and modulate data from the data source255according to the specified MCS. It is to be appreciated that the transmit data processor260may perform additional processing on the data. The transmit data processor260outputs the data symbols to the frame builder262.

The frame builder262constructs a frame, and inserts the received data symbols into a payload data of the frame. The frame may include a preamble with specific sequences for automatic gain control (AGC) at the transmitter and/or receiver, timing and phase adjustment at the receiver for properly decoding the frame, and channel estimation and equalization at the receiver. Additionally, the frame may include a header that provides information pertaining to the frame (e.g., the specific MCS for the data payload, number of spatial streams, etc.). The frame builder262outputs the frame to the transmit processor264.

The transmit processor264processes the frame for transmission. For example, the transmit processor264may support different transmission modes such as an OFDM transmission mode, SC transmission mode, WB SC transmission mode, aggregate SC transmission mode, etc. In this example, the controller274may send a command to the transmit processor264specifying which transmission mode to use, and the transmit processor264may process the frame for transmission according to the specified transmission mode.

In certain aspects, the transmit processor264may support MIMO transmission, including SU-MIMO and MU-MIMO transmissions. In these aspects, the user device250may include multiple antennas270-1to270-M and multiple transceivers266-1to266-M (e.g., one for each antenna). The transmit processor264may perform spatial processing on the incoming frame and provide a plurality of transmit frame streams for the plurality of antennas270-1to270-M. The transceivers266-1to266-M receive and process (e.g., converts to analog, amplifies, filters, and frequency up-converts) the respective transmit frame streams to generate distinct spatially-diverse transmit signals for transmission via the antennas270-1to270-M. In this example, the controller274may send a command to the transmit processor264specifying the number of one or more spatial streams for transmitting data to each receiving device of an MU-MIMO transmission (e.g., based on channel conditions of the uplink as measured by an expected data error rate and/or expected data transmission rate).

The transceivers266-1to266-M receive and processes (e.g., converts to analog, amplifies, filters, and frequency up-converts) the output of the transmit processor264for transmission via the one or more antennas270-1to270-M. For example, the transceivers266-1to266-M may up-convert the output of the transmit processor264to a transmit signal having a frequency in the 60 GHz range.

For receiving data, the access point210comprises a receive processor242, and a receive data processor244. In operation, the transceivers226-1to226-N receive a signal (e.g., from the user device250), and spatially process (e.g., frequency down-converts, amplifies, filters and converts to digital) the received signal.

The receive processor242receives the outputs of the transceivers226-1to226-N, and processes the outputs to recover data symbols. For example, the access point210may receive data (e.g., from the user device250) in a frame. In this example, the receive processor242may detect the start of the frame using a preamble sequence of the frame. Using the preamble sequence, the receiver processor242may perform automatic gain control (AGC), timing, and phase adjustments. The receive processor242may also perform channel estimation and channel equalization on the received signal based on the channel estimation.

Further, the receiver processor242may estimate phase noise using a guard intervals (GIs) in the payload, and reduce the phase noise in the received signal based on the estimated phase noise. The phase noise may be due to noise from a local oscillator in the user device250and/or noise from a local oscillator in the access point210used for frequency conversion. The phase noise may also include noise from the channel. The receive processor242may also recover information (e.g., MCS scheme and number of spatial stream(s)) from the header of the frame, and send the information to the controller234. After performing channel equalization and/or phase noise reduction, the receive processor242may recover data symbols from the frame, and output the recovered data symbols to the receive data processor244for further processing.

The receive data processor244receives the data symbols from the receive processor242and an indication of the corresponding MSC scheme from the controller234. The receive data processor244demodulates and decodes the data symbols to recover the data according to the indicated MSC scheme, and outputs the recovered data (e.g., data bits) to a data sink246for storage and/or further processing.

Also, as discussed above, the transmit processor264may support multiple-output-multiple-input (MIMO) transmission, including SU-MIMO and MU-MIMO. In this case, the access point210includes multiple antennas230-1to230-N and multiple transceivers226-1to226-N (e.g., one for each antenna). Each transceiver receives and processes (e.g., frequency down-converts, amplifies, filters, converts to digital) the signal from the respective antenna. The receive processor242may perform spatial processing on the outputs of the transceivers226-1to226-N to recover the data symbols. The controller234may provide an indication of the number of spatial streams to the receive processor242for performing the spatial processing of the received signal.

For receiving data, the user device250comprises a receive processor282, and a receive data processor284. In operation, the transceivers266-1to266-M receive a signal (e.g., from the access point210or another user device) via the respective antennas270-1to270-M, and process (e.g., frequency down-converts, amplifies, filters and converts to digital) the received signal.

The receive processor282receives the outputs of the transceivers266-1to266-M, and processes the outputs to recover data symbols. For example, the user device250may receive data (e.g., from the access point210or another user device) in a frame, as discussed above. In this example, the receive processor282may detect the start of the frame using the preamble of the frame. Using the preamble sequence, the receive processor282may perform automatic gain control (AGC), timing, and phase adjustments. The receive processor282may also perform channel estimation and channel equalization on the received signal based on the channel estimation.

Further, the receive processor282may estimate phase noise using the guard intervals (GIs) in the payload, and reduce the phase noise in the received signal based on the estimated phase noise. The receive processor282may also recover information (e.g., MCS scheme, number of spatial streams, etc.) from the header of the frame, and send the information to the controller274. After performing channel equalization and/or phase noise reduction, the receive processor282may recover data symbols from the frame, and output the recovered data symbols to the receive data processor284for further processing.

The receive data processor284receives the data symbols from the receive processor282and an indication of the corresponding MSC scheme from the controller274. The receive data processor284demodulates and decodes the data symbols to recover the data according to the indicated MSC scheme, and outputs the recovered data (e.g., data bits) to a data sink286for storage and/or further processing.

Also, as discussed above, the transmit processor224may support multiple-output-multiple-input (MIMO) transmission, including SU-MIMO and MU-MIMO. In this case, the user device250may include multiple antennas and multiple transceivers (e.g., one for each antenna). Each transceiver receives and processes (e.g., frequency down-converts, amplifies, filters, convert to digital) the signal from the respective antennas. The receive processor282may perform spatial processing on the outputs of the transceivers to recover the data symbols. The controller274may provide an indication of the number of spatial streams to the receive processor282for performing the spatial processing of the received signal.

As shown inFIG. 2, the access point210also comprises a memory236coupled to the controller234. The memory236may store instructions that, when executed by the controller234, cause the controller234to perform one or more of the operations described herein. Similarly, the user device250also comprises a memory276coupled to the controller274. The memory276may store instructions that, when executed by the controller274, cause the controller274to perform the one or more of the operations described herein.

FIG. 3Aillustrates a block diagram of an exemplary communications system300including an access point310and a user device STA-A320. As the access point310has SU-MIMO capability, the access point310may perform an SU-MIMO transmission of data (e.g., one or more data frames) to STA-A320via one or more spatial streams NssA, where integer k represents the number of spatial stream(s).

FIG. 3Billustrates a block diagram of another exemplary communication system350including the access point310and the user device STA-A320, and another user device STA-B330in accordance with certain aspects of the disclosure. Similarly, as the access point310has MU-MIMO capability, the access point310may perform an MU-MIMO (simultaneous) transmission of a set of one or more data frames f to STA-A320via one or more spatial streams NssAand STA-B330via one or more spatial streams NssB, respectively; where integer l represents the number of spatial stream(s) for STA-B330. As an example, the access point310may limit each integer k or l to a certain number (e.g., no more than two (2)) when there are two stations communicating with the access point. It shall be understood that this limitation may be implementation specific, and other implementations that incorporate the concepts described herein need not have such limitation.

FIG. 3Cillustrates a block diagram of yet another exemplary communication system360including the access point310and the user devices STA-A320and STA-B330, and yet another user device STA-C340. Similarly, as the access point310has MU-MIMO capability, the access point310may perform an MU-MIMO (simultaneous) transmission of a set of one or more data frames to STA-A320via one or more spatial streams NssA, STA-B330via one or more spatial streams NssB, and STA-C340via one or more spatial streams NssC, respectively; where the integer m represents the number of spatial stream(s) for STA-C340. In this example, the access point310may limit each integer k, l, or m to a certain number (e.g., no more than one (1)) when there are three stations communicating with the access point. It shall be understood that this limitation may be implementation specific, and other implementations that incorporate the concepts described herein need not have such limitation.

Although in the examples provided herein, the number of receiving wireless nodes per a MU-MIMO transmission is two (2) or three (3), it shall be understood that the number of receiving wireless nodes may be more than two (2) or three (3). Similarly, although in the examples provided herein, the number of spatial streams for each receiving wireless node is one (1) or two (2), it shall be understood that the number of spatial streams for each receiving wireless node may be more than one (1) or two (2).

In wireless communications system300, the access point310determines a modulation coding scheme (MCSA) and the number k of spatial stream(s) NssAfor transmitting data to STA-A320so as to maximize the data rate (e.g., the goodput or the application-level data rate). In this case, the access point310selects MCSAand NssAbased on a determined estimated data error rate (e.g., a packet error rate (PER)) for a SU-MIMO transmission since the access point310is only communicating with a single user.

Similarly, in wireless communications system350, the access point310determines the MCSAand NssAfor transmitting data to STA-A320so as to maximize the goodput for STA-A320, and determines the MCSBand NssBfor transmitting data to STA-B330so as to maximize the goodput for STA-B330. In this case, the access point310selects MCSAand NssAbased on a determined estimated PER associated with STA-A320for a two-user MU-MIMO transmission (MU-2) since the access point310is transmitting to two user devices. Similarly, the access point310selects MCSBand NssBbased on a determined estimated PER associated with STA-B330for a two-user MU-MIMO transmission (MU-2).

In a like manner, in wireless communications system360, the access point310determines the MCSAand NssAfor transmitting data to STA-A320so as to maximize the goodput for STA-A320, determines the MCSBand NssBfor transmitting data to STA-B330so as to maximize the goodput for STA-B330, and determines the MCSCand NssCfor transmitting data to STA-C340so as to maximize the goodput for STA-C340. In this case, the access point310selects MCSAand NssAbased on a determined estimated PER associated with STA-A320for a three-user MU-MIMO transmission (MU-3) since the access point310is communicating with three user devices. Similarly, the access point310selects MCSBand NssBbased on a determined estimated PER associated with STA-B330for the three-user MU-MIMO transmission (MU-3). And, in a like manner, the access point310selects MCSCand NssCbased on a determined estimated PER associated with STA-C340for the three-user MU-MIMO transmission (MU-3).

FIGS. 4A-4Billustrate a pair of tables or sets of information that the access point310may consult in selecting the MCSAand NssAfor STA-A320. The access point310may consult similar pairs of tables or sets of information for each of STA-B330and STA-340for selecting MCSBand NssBand MCSCand NssC, respectively.

Table4A pertains to the case where the access point310is transmitting data to STA-A320using a single spatial stream. The left-column represents the available MCSs for communicating with STA-A320. In this example, there are 9 available MCSs (MCS-1to MCS-9). It shall be understood that 9 is an example, and the number of available MCSs may be more or less than 9.

The second and third columns (from the left) indicate the estimated PERs and goodputs for the corresponding MCS-1to MCS-9for the case where the access point310is transmitting data to STA-A320via an SU-MIMO transmission. For example, PERA(1,1,1) is the estimated PER for transmitting data to STA-A using MCS-1, where the first number in the parenthesis represents the MCS index (1 in this case), the second number represents the number of devices receiving data pursuant to the transmission (for SU-MIMO, it is one (1)), and the third number represents the number of spatial stream NssAused to transmit data to STA-A320(it is one (1) in this case as TABLE4A pertains to only the case where NssA=1). The RATEA(1,1,1) is the estimated goodput corresponding to MCS-1and PERA(1,1,1). The estimated goodput RATEA(1,1,1) may be determined as follows:
RATEA(1,1,1)=MAX_RATE(1,1,1)*(1−PERA(1,1,1))
where MAX_RATE(1,1,1) is the goodput that can be achieved if the PERA(1,1,1) is equal to zero (0). Similarly, PERA(9,1,1) and RATEA(9,1,1) pertains to the case of MCS-9for SU-MIMO and NssA=1.

The fourth and fifth columns (from the left) indicate the estimated PERs and goodputs for the corresponding MCS-1to MCS-9for the case where the access point310is transmitting data to STA-A320via a two-user MU-MIMO (MU-2) transmission. Similarly, the sixth and seventh columns (from the left) indicate the estimated PERs and goodputs for the corresponding MCS-1to MCS-9for the case where the access point310is transmitting data to STA-A320via a three-user MU-MIMO (MU-3) transmission.

Table4B is for the case where the access point310is transmitting data to STA-A320using two spatial streams (NssA=2). Table4B is organized in the same manner as Table4A, but the entries pertain to the case where two spatial streams are used to transmit data to STA-A320(as indicated by the third number in the entry parenthesis). Note, in this example, the access point310may not support more than one spatial stream per receiving user device for an MU-3transmission. However, this may be a specific implementation restriction, which may not apply to other implementations that employ the concepts described herein.

FIG. 5illustrates a flow diagram of an exemplary method500of transmitting data to STA-A320. According to the method500, the access point310determines whether there is data in the queue to be transmitted to STA-A320(block502). If no, the access point310continues (e.g., periodically or in some other manner) to determine whether there is data in the queue for transmission to STA-A320.

If, in block502, the access point310determines that there is data in the queue to be transmitted to STA-A320, the access point then determines the type of MIMO transmission (e.g., SU, MU-2, or MU-3) (block504). Based on the determined type of MIMO transmission, the access point310consults the appropriate entries in Tables4A-4B to determine the MCSAand NssAthat maximizes the goodput for STA-A320(block506).

For example, if the MIMO transmission type is SU, the access point310consults the respective second and third columns of Tables4A-4B to determine which entry (MCSAand NssA) provides the maximum goodput. If the MIMO transmission type is MU-2, the access point310consults the respective fourth and fifth columns of Tables4A-4B to determine which entry (MCSAand NssA) provides the maximum goodput. If the MIMO transmission type is MU-3, the access point310consults the sixth and seventh fifth columns of Table4A to determine which entry (MCSAand NssA=1) provides the maximum goodput (as NssA=2 (Table4B) may not be available for MU-3).

After consulting the Tables4A-4B, the access point310selects the MCSAand NssAfor transmitting data to STA-A320(block508), and then performs the determined-type of MIMO transmission of a set of data frames (e.g., PPDUs) to STA-A320with the selected MCSAand NssA(block510). The access point310then receives a block acknowledgement (Block_Ack) from STA-A320, which includes information indicating the current PER for the data transmission pursuant to block510(block512). The access point310then updates the PER-Goodput entries in Table4A or4B corresponding to the selected MCSAand NssAand the MIMO-type transmission based on the current PER indicated in the Block_Ack (block514). For example, the updated estimated PER may be equal to a first weight (e.g., ⅞) multiplied by the previous estimated PER plus a second weight (e.g., ⅛) multiplied by the current PER.

The access point310continues to perform the operations of method500as the system environment changes (e.g., between systems300,350, and360), and updates the corresponding PER-Goodput entries based on the current PER information received via Block_Acks.

An issue with the aforementioned method500of selecting the MCS and Nss for transmitting data to a corresponding user device is that it does not take into account the total number of spatial streams being transmitted via an MU-MIMO transmission. As previously discussed, it only takes into account the number of receiving devices in the MU-MIMO transmission (e.g., MU-2and MU-3). However, it has been noted that the PER rate associated with a MU-MIMO transmission for a user device is also affected by the total number of spatial streams in the transmission. This is explained with reference to the following examples.

FIG. 6Aillustrates a block diagram of an exemplary communications system600where the access point310has assigned k spatial streams to STA-A320and a single spatial stream to STA-B330.FIG. 6Billustrates a block diagram of a communications system650where the access point310has assigned k spatial streams to STA-A320and two spatial streams for STA-B330.

In the previous method500, the access point310treats the two systems600and650the same. That is, in both systems600and650, the access point310selects the MCSAand NssAbased on two-user MU-MIMO transmission (MU-2), and does not take into account that the total number of spatial streams Nss_tot is 3 in system600and the total number of spatial streams Nss_tot is 4 in system650.

However, the PER for the MU-MIMO transmission for STA-A320in system600may be different than the PER for the MU-MIMO transmission for STA-320in system650. Thus, there is a need to take into account the total number of spatial streams in a MU-MIMO transmission in selecting MCSs and Nss for the user devices involved in MU-MIMO transmissions.

As discussed above, an aspect of the disclosure is to take into account the total number of spatial streams involved in an MU-MIMO transmission in selecting an MCS and Nss for a particular user device. This concept is explained with reference to the following examples.

FIGS. 7A-7Dillustrate exemplary tables or sets of information that an access point may consult in selecting an MCS and Nss for transmitting data to a particular station (e.g., STA-A320) pursuant to an MU-MIMO transmission. The tables7A-7D are configured similar to tables4A-4B previously discussed, except tables7A-7D consider the additional dimension of the total number of spatial streams Nss_tot involved in the MU-MIMO transmission.

For example, Table7A applies to the case where a single spatial stream is used for transmitting data to STA-A320and the number of spatial streams for the transmission is one per each receiving device. The total number of spatial streams Nss_tot is indicated by the fourth number in the parenthesis of each entry. For SU transmission, Nss_tot=1. For MU-2, Nss_tot=2. For MU-3, Nss_tot=3.

Table7B applies to the case where two spatial streams are used for transmitting data to STA-A320and the number of spatial streams for the transmission is one per each of the other receiving devices. Accordingly, for SU transmission, Nss_tot=2. For MU-2, Nss_tot=3. In this example, the access point110may not support two spatial streams for STA-A120in an MU-3transmission. However, as previously discussed, this is a specific implementation restriction, and need not apply to other implementations that incorporate the concepts described herein.

Table7C applies to the case where one spatial stream is used for transmitting data to STA-A320and two spatial streams are used for transmitting data to another user, such as STA-B330. Accordingly, for SU transmission, Nss_tot=1. For MU-2, Nss_tot=3. In this example, the access point310may not support two spatial streams for a receiving device for an MU-3transmission. Again, as previously discussed, this is a specific implementation restriction, and need not apply to other implementations that incorporate the concepts described herein.

Table7D applies to the case where two spatial streams are used for transmitting data to STA-A320and two spatial streams are used for transmitting data to another user, such as STA-B330. Accordingly, for SU transmission, Nss_tot=2. For MU-2, Nss_tot=4. In this example, the access point310may not support an MU-3transmission. Similarly, as previously discussed, this is a specific implementation restriction, and need not apply to other implementations that incorporate the concepts described herein.

Thus, using these tables7A-7D, the access point310is able to distinguish between the different systems600and650for selecting the MCSAand NssAfor STA-A320. For example, tables7A-7B apply to MU-MIMO transmission600, and tables7C-7D apply to MU-MIMO transmission650. By taking into account the total number of spatial streams Nss_tot involved in an MU-MIMO transmission, the measured PERs more accurately reflect the MU-MIMO transmission.

The access point310may include a set of tables7A-7D for each user assigned to the access point. For example, the access point310maintains tables8A-8D for STA-B330, which is used to exemplify the following methods of transmitting data to STA-A320and STA-B330considering the total number of spatial streams Nss_tot involved in MU-MIMO transmissions.

FIG. 9illustrates a flow diagram of an exemplary method900of transmitting data to a pair of user devices via a MU-MIMO transmission according to another aspect of the disclosure. The method900may be performed by the access point310in transmitting data to STA-A320and STA-B330via a MU-MIMO transmission. In method900, the access point310favors STA-A320as it first selects the MCSAand NssAfor maximizing the goodput for STA-A320, and then selects the MCSBand NssBfor maximizing the goodput for STA-B330based on the selected MCSAand NssAfor STA-A320.

According to the method900, the access point310determines whether is data in queue for transmission to both STA-A and STA-B (block902). If the access point310determines that there is no data for transmission for both STA-A and STA-B, the access point310may perform other operations (block918) (e.g., send data to only STA-A via an SU transmission if there is data queued for only STA-A, or similarly send data to only STA-B via an SU transmission if there is data queued for only STA-B, or other operations, or return back to block902).

If, in block902, the access point310determines that there is data queued for both STA-A320and STA-B330, the access point consults the PER-Goodput tables7A-7D to determine the MCSAand NssAthat maximizes the goodput for STA-A320(block904). Based on consulting the tables7A-7D, the access point110selects the MCSAand NssAfor transmitting data to STA-A320via an MU-2transmission (block906).

Then, the access point310consults the PER-Goodput tables8A-8B or8C-8D to determine the MCSBand NssBthat maximizes the goodput for STA-B330based on the selected NssAfor STA-A320(block908). For example, if NssA=1 is selected, the access point310consults Tables8A and8B (and not Tables8C and8D) to select MCSBand NssB. If NssA=2 is selected, the access point310consults Tables8C and8D (and not Tables8A and8B) to select MCSBand NssB. Based on consulting the tables8A-8B or8C-8D, the access point310selects the MCSBand NssBfor transmitting data to STA-B330via an MU-2transmission (block910).

The access point310then simultaneously transmits a set of data frames to STA-A320and STA-B330via an MU-2transmission, wherein each of the data frames includes a first data payload for STA-A320transmitted using the selected MCSAand NssAand a second data payload for STA-B330transmitted using the selected MCSBand NssB(block912). Then, the access point receives Block_ACKAand Block_ACKBfrom STA-A320and STA-B330, respectively (block914). As previously discussed, the Block_ACKAprovides information regarding the current PER associated with the first set of data frames to STA-A320, and the Block_ACKBprovides information regarding the current PER associated with the second set of data frames to STA-B330.

Then, the access point310updates the PER-Goodput entries corresponding to the selected MCSAand NssAof STA-A320based on the current PER information received via the Block_ACKA, and updates the PER-Goodput entries corresponding to the selected MCSBand NssBof STA-B330based on the current PER information received via the Block_ACKB(block916). As previously discussed, the updated PER may be equal to a first weight (e.g., ⅞) multiplied by the previous PER plus a second weight (e.g., ⅛) multiplied by the current PER. The access point310then returns to block902to repeat the process for next transmittal of data to STA-A320and/or STA-B330.

The method900favors STA-A120since MCSAand NssAare selected without considering the optimal MCSBand NSSBfor STA-B330. The selection of the MCSBand NSSBis based on the selected NssA. The method900favoring a particular station may be implemented for many reasons, such as the user of STA-A320subscribing for premium services as compared to the services subscribed by the user of STA-B330. The following describes a method that toggles the favoritism between STA-A320and STA-B330for fairness or other purposes.

FIG. 10illustrates a flow diagram of an exemplary method1000of transmitting data to a pair of user devices via a MU-MIMO transmission according to another aspect of the disclosure. The method1000may be performed by the access point310in transmitting data to STA-A320and STA-B330via a MU-MIMO transmission. In method1000, the access point310toggles the favoritism between STA-A320and STA-B330in performing a plurality of consecutive MU-2transmissions to the devices.

According to the method1000, the access point310initially assigns fairness variable i to STA-A320and fairness variable j to STA-B (block1001). Variable i represents the favored station for the current transmission and variable j represents the unfavored station for the current transmission.

The access point310determines whether there is data in queue for transmission to both STA-A320and STA-B330(block1002). If the access point310determines that there no data for transmission for both STA-A320and STA-B330, the access point310may perform other operations (block1018) (e.g., send data to only STA-A via an SU transmission if there is data queued for only STA-A, or similarly send data to only STA-B via an SU transmission if there is data queued for only STA-B, or other operations, or return back to block1002).

If, in block1002, the access point310determines that there is data queued for both STA-A320and STA-B330, the access point consults the PER-Goodput tables associated with the favored STA-i to determine the MCSiand Nssithat maximizes the goodput for STA-i (block1004). Based on consulting the PER-Goodput tables, the access point310selects the MCSiand Nssifor transmitting data to STA-i via an MU-2transmission (block1006).

Then, the access point310consults the PER-Goodput tables to determine the MCSjand Nssjthat maximizes the goodput for the unfavored STA-j based on the selected Nssifor the favored STA-i (block1008). Based on consulting the tables, the access point310selects the MCSjand Nssjfor transmitting data to STA-j via an MU-2transmission (block1010).

The access point310then simultaneously transmits a set of data frames to STA-i and STA-j via an MU-2transmission, wherein each of the data frames includes a first data payload for STA-i transmitted using the selected MCSiand Nssiand a second data payload for STA-j transmitted using the selected MCSjand Nssj(block1012). Then, the access point310receives Block_ACKiand Block_ACKjfrom STA-i and STA-j, respectively (block1014).

Then, the access point310updates the PER-Goodput entries corresponding to the selected MCSiand Nssiof STA-i based on the current PER information received via the Block_ACKi, and updates the PER-Goodput entries corresponding to the selected MCSjand Nssjof STA-j based on the current PER information received via the Block_ACKj(block1016). As previously discussed, the updated PER may be equal to a first weight (e.g., ⅞) multiplied by the previous PER plus a second weight (e.g., ⅛) multiplied by the current PER.

The access point310then sets the new fairness variable i to the previous fairness variable j and sets the new fairness variable j to the previous fairness variable i (block1017). In other words, the access point310will favor the unfavored station in the current transmission in the following transmission (and will not favor the favored station in the current transmission in the following transmission). The access point310then returns to block1002to repeat the process for next transmittal of data to STA-A320and STA-B330.

In method900, the access point310favored one of the user devices (e.g., STA-A320) over another (e.g., STA-B330). In method1000, the access point310toggled the favoritism of the user devices. In the following method1100, the access point310sets the MCSAand NssAfor STA-A320and MCSBand NssBfor STA-B330to maximize the aggregate goodput for STA-A320and STA-B330.

FIG. 11illustrates a flow diagram of another exemplary method1100of transmitting data to a pair of stations via a MU-MIMO transmission according to another aspect of the disclosure. The method1100may be performed by the access point310in transmitting data to STA-A320and STA-B330via a MU-MIMO transmission. In method1100, the access point310selects the MCSAand NssAfor STA-A320and the MCSBand NssBSTA-B330to maximize the aggregate goodput for STA-A320and STA-B330.

According to the method1100, the access point310determines whether data is queued for transmission to both STA-A320and STA-B330(block1102). If the access point310determines that there is no data for transmission for both STA-A320and STA-B330, the access point may perform other operations (block1118) (e.g., send data to only STA-A if there is data queued for only STA-A, or send data to only STA-B if there is data queued for only STA-B, or other operations, or return back to block1102).

If, in block1102, the access point310determines that there is data queued for both STA-A320and STA-B330, the access point consults the PER-Goodput tables7A-7D for STA-A320and the PER-Goodput tables8A-8D for STA-B330to determine the MCSAand NssAfor STA-A320and MCSBand NssBfor STA-B330that achieves a maximum estimated aggregate goodput for both STA-A320and STA-B330(block1104). Because there is interplay between the individual estimated goodputs for STA-A and STA-B330, the maximum aggregate goodput need not coincide with either or both the maximum goodput for STA-A320and the maximum goodput for STA-B330.

For example, the maximum aggregate goodput may coincide with the maximum goodput for STA-A320, but may not coincide with the maximum goodput for STA-B330. This may be the case where the maximum goodput for STA-A320may be RateA(9, 2, 3, 3) indicated in Table ofFIG. 7B. But this Table applies to the case where the total number of spatial streams for STA-B330is one (e.g., NssB=1). However, the maximum estimated goodput rate for STA-B330may pertain to the case where the total number of spatial streams for STA-B330is two (e.g., NssB=2), as may be indicated in the Table ofFIG. 8B.

Similarly, the maximum aggregate goodput may coincide with the maximum goodput for STA-B330, but may not coincide with the maximum goodput for STA-A320. This may be the case where the maximum goodput for STA-B330may be RateB(9, 2, 3, 3) indicated in Table ofFIG. 8B. But this Table applies to the case where the total number of spatial streams for STA-A320is one (e.g., NssA=1). However, the maximum estimated goodput rate for STA-A320may pertain to the case where the total number of spatial streams for STA-A320is two (e.g., NssA=2), as may be indicated in the Table ofFIG. 7B.

Further, in this regard, the maximum aggregate goodput may not coincide with neither the maximum goodput for STA-A320nor the maximum goodput for STA-B330. In particular, the maximum aggregate goodput may coincide with an intermediate goodput for STA-A320and an intermediate goodput for STA-B330. As an example, the maximum aggregate goodput may coincide with MCS-6and two spatial streams NssA=2 for STA-A320as may be indicated in Table ofFIG. 7D, and MCS-6and two spatial streams NssB=2 for STA-B330as may be indicated in Table ofFIG. 8D. However, the individual maximum aggregate goodput for STA-A320may be MCS-9with two spatial streams NssA=2 for STA-A320with one spatial stream NssB=1 for STA-B330as indicated in TableFIG. 7B; and the individual maximum aggregate goodput for STA-B330may be MCS-9with two spatial streams NssB=2 for STA-B330with one spatial stream NssA=1 for STA-A320as indicated in TableFIG. 8B. Both these individual maximum goodputs may be mutually exclusive.

Based on consulting the tables7A-7D and8A-8D, the access point310selects MCSAand NssAthe MCSBand NssBfor STA-A320and STA-B330, respectively (block1106). The access point310then simultaneously transmits a set of data frames to STA-A320and STA-B330via an MU-2transmission, wherein each of the frames includes a first data payload for STA-A320transmitted using the selected MCSAand NssAand a second data payload for STA-B330transmitted using the selected MCSBand NssB(block1108). Then, the access point310receives Block_ACKAand Block_ACKBfrom STA-A320and STA-B330, respectively (block1110).

Then, the access point310updates the PER-Goodput entries corresponding to the selected MCSAand NssAof STA-A320based on the current PER information received via the Block_ACKA, and updates the PER-Goodput entries corresponding to the selected MCSBand NssBof STA-B330based on the current PER information received via the Block_ACKB(block1112). As previously discussed, the updated PER may be equal to a first weight (e.g., ⅞) multiplied by the previous PER plus a second weight (e.g., ⅛) multiplied by the current PER. The access point310then returns to block1102to repeat the process for next transmission of data to STA-A320and/or STA-B330.

The access point310may dynamically change which method900,1000, or1100to implement based on one or more conditions.

FIG. 12illustrates an example device1200according to certain aspects of the present disclosure. The device1200may be configured to operate in an access point or a user device to perform the one or more of the operations described herein. The device1200includes a processing system1220, and a memory1210coupled to the processing system1220. The memory1210may store instructions that, when executed by the processing system1220, cause the processing system1220to perform one or more of the operations described herein. Exemplary implementations of the processing system1220are provided below. The device1200also comprises a transmit/receiver interface1230coupled to the processing system1220. The interface1230(e.g., interface bus) may be configured to interface the processing system1220to a radio frequency (RF) front end (e.g., transceivers226-1to226-N or266-1to226-M), as discussed further below.

In certain aspects, the processing system1220may include one or more of the following: a transmit data processor (e.g., transmit data processor220or260), a frame builder (e.g., frame builder222or262), a transmit processor (e.g., transmit processor224or264) and/or a controller (e.g., controller234or274) for performing one or more of the operations described herein. In these aspects, the processing system1220may generate a frame and output the frame to an RF front end (e.g., transceivers226-1to226-N or266-1to266-M) via the interface1230for wireless transmission (e.g., to an access point or a user device).

In certain aspects, the processing system1220may include one or more of the following: a receive processor (e.g., receive processor242or282), a receive data processor (e.g., receive data processor244or284) and/or a controller (e.g., controller234and274) for performing one or more of the operations described herein. In these aspects, the processing system1220may receive a frame from an RF front end (e.g., transceivers226-1to226-N or266-1to266-M) via the interface1230and process the frame according to any one or more of the aspects discussed above.

In the case of a user device, the device1200may include a user interface1240coupled to the processing system1220. The user interface1240may be configured to receive data from a user (e.g., via keypad, mouse, joystick, etc.) and provide the data to the processing system1220. The user interface1240may also be configured to output data from the processing system1220to the user (e.g., via a display, speaker, etc.). In this case, the data may undergo additional processing before being output to the user. In the case of an access point210, the user interface1240may be omitted.

For instance, some examples of means for determining a first modulation coding scheme (MCS) for transmitting data to a first wireless node via a multi-user multiple-input-multiple-output (MU-MIMO) transmission based on a total number of spatial streams to be used in the MU-MIMO transmission include the processing system1220, controller234, and controller274. Some examples of means for generating a first frame for transmission to the first wireless node, wherein the first frame includes a first data payload modulated and coded using the first MCS include the processing system1220, transmit data processors220and260, and frame builders222and262. Some examples of means for outputting the first frame for transmission to the first wireless node via the MU-MIMO transmission include the transmit/receive interface1230, transmit processor224, and transmit processor264.

Some examples of means for determining the first MCS based on a total number of wireless nodes expected to receive data via the MU-MIMO transmission include the processing system1220, controller234, and controller274. Some examples of means for determining a number of one or more spatial streams based on an expected data rate selected from a set of expected data rates corresponding to different numbers of one or more spatial streams for transmitting data to the first wireless node via the MU-MIMO transmission include the processing system1220, controller234, and controller274. Some examples of means for outputting the first frame for transmission to the first wireless node via the one or more spatial streams include the transmit/receive interface1230, transmit processor224, and transmit processor264.

Some examples of means for obtaining information related to a data error rate associated with the transmission of the first frame to the first wireless node via the MU-MIMO transmission include the processing system1220, controller234, and controller274. Some examples of means for determining an expected data rate corresponding to a set including the first MCS and the total number of spatial streams based on the data error rate information include the processing system1220, controller234, and controller274. Some examples of means for determining a second MCS for transmitting data to the first wireless node via another MU-MIMO transmission based on the expected data rate include the processing system1220, controller234, and controller274. Some examples of means for generating a second frame for transmission to the first wireless node, wherein the second frame includes a second data payload modulated and coded using the second MCS include the processing system1220, transmit data processors220and260, and frame builders222and262. Some examples of means for outputting the second frame for transmission to the first wireless node via the another MU-MIMO transmission include the transmit/receive interface1230, transmit processor224, and transmit processor264.

Some examples of means for determining a second MCS for transmitting data to a second wireless node via the MU-MIMO transmission based on the total number of spatial streams to be used in the MU-MIMO transmission include the processing system1220, controller234, and controller274. Some examples of means for configuring the first frame for transmission to the second wireless node, wherein the first frame includes a second data payload modulated and coded using the second MCS include the processing system1220, transmit data processors220and260, and frame builders222and262. Some examples of means for outputting the second frame for transmission to the second wireless node via the MU-MIMO transmission include the transmit/receive interface1230, transmit processor224, and transmit processor264.

Some examples of means for selecting a first expected data rate from a first set of expected data rates corresponding to different MCSs for transmitting data to the first wireless node include the processing system1220, controller234, and controller274. Some examples of means for selecting a second expected data rate from a second set of expected data rates corresponding to different MCSs for transmitting data to the second wireless node include the processing system1220, controller234, and controller274.

Some examples of means for determining a first number of one or more spatial streams based on a first selected expected data rate for transmitting data to the first wireless node include the processing system1220, controller234, and controller274. Some examples of means for determining the second MCS and a second number of one or more spatial streams based on the first number of one or more spatial streams include the processing system1220, controller234, and controller274. Some examples of means for outputting the first frame for transmission to the first wireless node via the one or more spatial streams and to the second wireless device via the second number of one or more spatial streams include the transmit/receive interface1230, transmit processor224, and transmit processor264.

Some examples of means for determining a third MCS for transmitting data to the second wireless node via another MU-MIMO transmission based on a total number of spatial streams to be used in the another MU-MIMO transmission include the processing system1220, controller234, and controller274. Some examples of means for determining a third number of one or more spatial streams for transmitting data to the second wireless node via the another MU-MIMO transmission include the processing system1220, controller234, and controller274. Some examples of means for determining a fourth MCS and a fourth number of one or more spatial streams for transmitting data to the first wireless node via the another MU-MIMO transmission based the second number of one or more spatial streams include the processing system1220, controller234, and controller274.

Some examples of means for generating a second frame for transmission to the second wireless node, wherein the second frame includes a third data payload modulated and coded using the third MCS and a fourth data payload modulated and coded using the fourth MCS include the processing system1220, transmit data processors220and260, and frame builders222and262Some examples of means for outputting the second frame for transmission to the second wireless node and the first wireless node via the third number of one or more spatial streams and the fourth number of one or more spatial streams of the another MU-MIMO transmission, respectively, include the transmit/receive interface1230, transmit processor224, and transmit processor264.

In some cases, rather than actually transmitting a frame a device may have an interface to output a frame for transmission (a means for outputting). For example, a processor may output a frame, via a bus interface, to a radio frequency (RF) front end for transmission. Similarly, rather than actually receiving a frame, a device may have an interface to obtain a frame received from another device (a means for obtaining). For example, a processor may obtain (or receive) a frame, via a bus interface, from an RF front end for reception.

It shall be understood that the processing as described herein may be performed by any digital means as discussed above, and or any analog means or circuitry.

In a hardware implementation, the machine-readable media may be part of the processing system separate from the processor. However, as those skilled in the art will readily appreciate, the machine-readable media, or any portion thereof, may be external to the processing system. By way of example, the machine-readable media may include a transmission line, a carrier wave modulated by data, and/or a computer product separate from the wireless node, all which may be accessed by the processor through the bus interface. Alternatively, or in addition, the machine-readable media, or any portion thereof, may be integrated into the processor, such as the case may be with cache and/or general register files.