• 沒有找到結果。

Wake-up Time Schedule without Pre-Delay

Dealing with Energy-Saving Issue Induced from Error-Recovery

6.2 The Proposed Power Saving Scheme for TSMP

6.2.1 Wake-up Time Schedule without Pre-Delay

W1,1 W2,1 W3,1 WN,1

Figure 6.1: The TSMP scheme and the proposed wake-up time schedule for error-free con-dition.

should fall back to the Doze state until the delay expires. Since there could be error recovery during the new sleep period, it can determine whether or not to sleep again after it wakes up at the renewed wake-up time. Let Wi,k denote the kth wake-up time of STA i in a single polling round. Note that the time value mentioned hereafter represents the time relative to the receiving time of the DTMP frame. In the following, the derivation of wake-up time schedules and the distributed renewal algorithm are presented.

6.2.1 Wake-up Time Schedule without Pre-Delay

If transmission error is not considered, the wake-up time schedule can be easily derived from the obtained buffer status and PHY rate. Assume that there are N STAs and, without loss of generality, the STA scheduled to access the medium in the ith order is called STA i. Let Ti denote the required TXOP for STA i, 1 ≤ i ≤ N . To avoid overhearing, the initial wake-up

time for STA i is set as D denotes the total hardware delay of switchovers from the Awake state to the Doze state and back to the Awake state. We assume that a STA can access the channel immediately after it wakes up if the channel is sensed idle. This situation happens if there is no transmission error before the STA wakes up. After the frame exchange process of a STA is finished, it can fall back to the Doze state till the time the next SRMP frame is scheduled to be transmitted.

Under the given schedule, STA i, i > 1, may overhear others’ transmissions when it wakes up at time Wi,1 and there are frame retransmissions before Wi,1. Obviously, the expected duration of overhearing for STA j is longer than that for STA i if j > i. The energy consumed in overhearing could be significant if STAs are heavily loaded. Therefore, it is necessary for a STA to fall back to sleep because energy can be saved by doing so. To help STAs go back to the Doze state if the channel is still occupied when they wake up, we let the AP keep recording and announcing the accumulated delay caused by unsuccessful transmissions.

It is denoted by A(t) at time t and will be reset to zero when the next DTMP frame is transmitted. This information is piggybacked on all downlink frames including ACKs which are sure to be read by awake STAs in the Basic Service Set. Clearly, A(t) is a nondecreasing function of t within a polling round. Besides, A(t1) = A(t2) if the medium is busy and there is no transmission error during [t1, t2].

As for STAs, they should keep separate records of cumulative consumed delay caused by error recovery. The consumed delay of STA i is the time STA i spent on waiting since Pi−1

m=1Tm, i.e., its access start time under error-free condition. Let Ci(t) denote the consumed delay of STA i at time t. The initial value of Ci(t) in each polling round is set as

Ci(Wi,1) =

Each time when a new DTMP frame is received, Ci(t) is reset to its initial value. Therefore,

the frame format of the DTMP frame should be incorporated with the wake-up time field for each polled STA. The suggested format for the DTMP frame is shown in Figure 6.2.

Octets: 2 2 6 1 7 × RecordCount 4

Figure 6.2: The suggested format of DTMP.

To maintain the access order and avoid collision, STA i keeps a variable Ei which repre-sents its expected access start time. The initial value of Ei is set as

Ei = max

and is recalculated each time a valid A(t) is received. The updated Ei can be derived from the announced A(t) and the kept Ci(t). The details are shown in the following algorithm.

Renewal Algorithm for Wake-up Time and Expected Access Start Time

Assume that the AP assigns the initial wake-up time schedule W1,1 ≤ W2,1 ≤ W3,1 ≤ ... ≤ WN,1< ∞ to STAs 1 to N with the DTMP frame and each STA wakes up at its designated time. According to the setting of initial value for Ei given above, we have E1 < E2 < E3 <

... < EN.

The idea is as follows. Consider STA i and assume that it wakes up for the kth time at Wi,k. Let Ri,k, a random variable, represent the time duration for STA i to receive the nearest valid accumulated delay after Wi,k. The basic idea of updating the wake-up time and the expected access start time is as follows. If the channel is sensed idle at Wi,k, then STA i starts to transmit right away. On the other hand, if the channel is sensed busy at Wi,k, then a new wake-up time is updated at time Wi,k+ Ri,k. In case the updated wake-up time is smaller than Wi,k + Ri,k + D, then Ei is set to the updated wake-up time, which is then set to ∞ to indicate the situation for STA i to remain awake till its frame exchange

process is finished. If the updated wake-up time is greater than Wi,k+ Ri,k + D, then STA i falls back to sleep and wakes up again at the updated wake-up time. In this case, Ei is set to the updated wake-up time and the consumed delay is updated accordingly.

————————————————————————————————————

Initialization:

STA i maintains the following variables:

1. Ci(t) : consumed delay (It is set to Ci(Wi,1) given in equation (6.2) after the DTMP frame is received.)

2. Ei : expected access start time (It is set as equation (6.3) after the DTMP frame is received.)

3. Wi : wake-up time (It is set to Wi,1 announced in the DTMP frame.)

Updating:

while Wi < ∞ do

/* When the ith STA wakes up for the kth time at time Wi = Wi,k < ∞, its consumed delay is Ci(Wi,k). Assume that the medium is still occupied and the nearest valid accumulated delay is received at time Wi,k + Ri,k with value A(Wi,k + Ri,k) .*/

temp = Wi; /* a temporary variable */

Ci(temp + Ri,k) = Ci(temp) + Ri,k;

Wi = temp + Ri,k+ A(temp + Ri,k) − Ci(temp + Ri,k);

Ei = Wi;

if Wi < temp + Ri,k + D Wi = ∞;

/* Do NOT update the Wi in this polling round and stay in the Awake state. */

else

Ci(Wi) = Ci(temp + Ri,k) + [A(temp + Ri,k − Ci(temp + Ri,k))]

= A(temp + Ri,k);

/* Enter the Doze state and wake up again at time Wi = Wi,k+1.*/

end if end while

————————————————————————————————————

The condition for STA i to start its transmission in case it stays in the Awake state since Wi,k (stored in the temp variable) is described below.

————————————————————————————————————

while Ei is not reached do

Upon receiving a valid A(τ ) at time τ : Ci(τ ) = Ci(temp) + τ − temp;

Ei = τ + A(τ ) − Ci(τ );

if τ = Ei

Start to transmit ; else

Do nothing ;

/* Stay in the Awake state. */

end if end while

————————————————————————————————————

Note that, according to the above updating algorithm, the condition for STA i to wake up at Wi,k and sense the channel idle is the same as the condition that the wake-up time Wi,k is equal to the expected access start time Ei. Consequently, STA i starts to transmit if and only if the current time is equal to Ei . Moreover, even with the above updating algorithm, STAs still access the medium in the order scheduled by AP. We sketch the proof in the following.

Proof:

Assume that we already have Wi,k < Wi+1,j < Wi,k+1 < ∞. All we need to show is that either

1. Wi,k+1 < Wi+1,j+1 < ∞, i.e., there exists the (j + 1)th wake-up time for STA i + 1 which is still larger than the (k + 1)th wake-up time of STA i, or

2. Wi+1,j+1 = ∞ and Ei < Ei+1, i.e., STA i + 1 would remain awake but its expected access start time is still later than that of STA i.

According to the definitions of A(t) , Ci(t), and the fact that Wi,k < Wi+1,j < Wi,k+1 < ∞, for the value of Ei updated by STA i at time Wi,k+ Ri,k, we have

Ei = Wi,k+1 (6.4)

= Wi,k+ Ri,k + A(Wi,k + Ri,k) − Ci(Wi,k+ Ri,k)

= Wi,k+ Ri,k + A(Wi,k + Ri,k) − Ci(Wi,k) − Ri,k

= Wi,k−1+ A(Wi,k+ Ri,k) − Ci(Wi,k−1)

= ... = Wi,1+ A(Wi,k + Ri,k) − Ci(Wi,1)

= Xi−1 m=1

Tm+ A(Wi,k + Ri,k).

The above equation can be derived iteratively using the following properties:

1. Wi,k = Wi,k−1+ A(Wi,k−1+ Ri,k−1) − Ci(Wi,k−1), 2. Ci(Wi,k) = A(Wi,k−1+ Ri,k−1),

3. Ci(Wi,1) = Wi,1Pi−1

m=1Tm.

Similarly, for the value of Ei+1 updated by STA i + 1 at time Wi+1,j + Ri+1,j, it holds that

Ei+1 = Wi+1,j + Ri+1,j + A(Wi+1,j + Ri+1,j) − Ci+1(Wi+1,j + Ri+1,j) (6.5)

= Wi+1,j + Ri+1,j + A(Wi+1,j + Ri+1,j) − Ci+1(Wi+1,j) − Ri+1,j

= Wi+1,j + A(Wi+1,j + Ri+1,j) − Ci+1(Wi+1,j)

= Wi+1,j−1+ A(Wi+1,j+ Ri+1,j) − Ci+1(Wi+1,j−1)

= ... = Wi+1,1+ A(Wi+1,j + Ri+1,j) − Ci+1(Wi+1,1)

= Xi m=1

Tm+ A(Wi+1,j+ Ri+1,j).

Since A(t) is a non-decreasing function of t and the fact that Wi,k + Ri,k ≤ Wi+1,j + Ri+1,j, we have A(Wi,k + Ri,k) ≤ A(Wi+1,j+ Ri+1,j). Consequently, it is true that

Ei+1 Pi

m=1Tm+ A(Wi,k + Ri,k) > Pi−1

m=1Tm+ A(Wi,k + Ri,k) = Wi,k+1 = Ei.

If A(Wi+1,j+ Ri+1,j) − Ci+1(Wi+1,j+ Ri+1,j) > D, we get Wi,k+1 < Wi+1,j+1 = Ei+1< ∞, i.e., STA i + 1 would wake up at Wi+1,j+1 which is later than Wi,k+1. Therefore, the access order is maintained in this case.

Otherwise, if A(Wi+1,j+Ri+1,j)−Ci+1(Wi+1,j+Ri+1,j) ≤ D, we have Wi+1,j+1 = ∞ > Ei+1 and STA i + 1 keeps awake since time Wi+1,j. Based on the above result that Ei = Wi,k+1 <

Ei+1 where Ei+1 is calculated by STA i + 1 at time Wi+1,j + Ri+1,j, what we need to prove is the following: If STA i cannot access the medium immediately when it wakes up at Wi,k+1 and both STA i and STA i + 1 remain awake and receive A(Wi,k+1+ Ri,k+1) at time Wi,k+1+ Ri,k+1, the updated Ei and Ei+1 keep the relationship that Ei < Ei+1.

Again, at time Wi,k+1+ Ri,k+1, for the value of Ei updated by STA i, we have

m=1Tm. Consequently, the access order is still maintained for the case when Wi+1,j+1 = ∞. This completes the sketched proof.

2