• Non ci sono risultati.

Capitolo V Il sistema multi-cella

N/A
N/A
Protected

Academic year: 2021

Condividi "Capitolo V Il sistema multi-cella"

Copied!
34
0
0

Testo completo

(1)

Il sistema multi-cella

In questo capitolo si affronta il problema dell’allocazione delle risorse radio in un sistema multicellulare.

(2)

V.1 - Introduzione

In una rete cellulare, il territorio viene suddiviso in tante porzioni relativamente piccole dette celle. Ogni cella è completamente autonoma dal resto della rete, in quanto è servita da una BS che ha il compito di gestire i canali disponibili.

Un cluster è un insieme di celle al cui interno si suddividono i canali fisici disponibili assegnati al sistema. Uno dei principali problemi per le reti cellulari è costituito dall’interferenza inter-cella (Inter Cell Interference, ICI): utenti che appartengono a celle distinte utilizzano lo stesso canale fisico e quindi interferiscono l’uno con l’altro. Se il cluster di celle è costituito da una cella soltanto, ogni cella utilizza lo stesso insieme di canali e quindi l’interferenza inter-cella è particolarmente elevata. Nel caso in cui il cluster sia formato da due o più celle, gli utenti che utilizzano lo stesso canale si possono trovare anche in celle non adiacenti, per cui l’ICI ha un impatto minore.

(3)

Faremo riferimento ad un sistema multicellulare in cui ogni cella utilizza lo stesso insieme di frequenze, ovvero con riuso universale di frequenza, con l’obiettivo di massimizzare l’efficienza spettrale di ogni utente nella rete. Poiché si tratta di un sistema caratterizzato da forte interferenza, è necessario introdurre un meccanismo di gestione ed allocazione delle risorse disponibili: tale meccanismo viene realizzato mediante l’uso dell’allocatore di risorse radio basato sul linear programming (LP), già analizzato nel capitolo III, che tenga di conto dell’interferenza nella funzione di costo di ciascun utente.

Il problema dell’allocazione è formulato con l’obiettivo di minimizzare la potenza complessivamente consumata, con il vincolo di mantenere il bit rate costante. L’algoritmo di allocazione risolve il problema dell’assegnazione delle risorse in maniera distribuita, andando a cercare la soluzione ottima per ogni cella, sulla base di quelle che sono le caratteristiche di canale per ciascun utente. Nel dettaglio, l’assegnazione delle risorse per utente viene effettuata secondo una procedura denominata Gauss-Seidl: sequenzialmente, in un certo ordine prefissato, ciascuna cella aggiorna la propria allocazione sulla base dell’interferenza generata da tutte le altre.

Per effetto dell’elevata interferenza nel sistema può accadere che le allocazioni nelle varie celle non convergano ad un punto di equilibrio. In questo scenario, si definisce equilibrio quella particolare distribuzione di risorse agli utenti per cui ciascuna cella del sistema non tragga alcun vantaggio dal cambiare la propria allocazione.

In assenza di equilibrio, l’assegnazione delle risorse in una cella provocherà una variazione nell’interferenza delle altre celle e così anche queste dovranno

(4)

interferenza sperimentata dagli utenti nelle celle adiacenti. Si creerà un meccanismo per cui il sistema diventerà instabile, poiché ciascuna cella modificherà la propria allocazione a seguito dei cambiamenti di interferenza nelle altre celle.

In questo capitolo, si propone un’architettura di sistema progettata per gestire questa condizione di instabilità: a livello di allocatore si introduce sia una strategia di controllo di potenza, che mantenga la precedente allocazione se il consumo di potenza risulta troppo elevato ed una di controllo del carico delle celle, al fine di raggiungere una soluzione stabile.

A livello di scheduler si definiscono delle procedure per massimizzare la fairness del sistema. Infatti, la conseguenza di un’eventuale riduzione del carico di una cella nell’allocatore sarà quella di peggiorare la fairness del sistema, poiché non è più possibile servire tutti gli utenti all’interno della cella cui è stato ridotto il carico con lo stesso numero di risorse. Per questo motivo sarà necessario inserire uno scheduler di pacchetti, che dia la possibilità anche agli utenti che si trovano in condizioni di canale di propagazione non buone, di avere un equo numero di risorse, con l’obiettivo di rendere massima la fairness nel sistema.

V.2 – Lo scenario multicellulare

Si consideri un sistema multi-cella OFDMA, costituito da Ncells celle aventi ciascunauna BS e K MS. Assumiamo che il collegamento sia in downlink. Il canale di propagazione è assunto statico e selettivo in frequenza, tuttavia la banda di coerenza risulta maggiore della larghezza di ogni sottoportante. La struttura di ogni singola cella

(5)

rispetta il modello del sistema precedentemente analizzato (cap. III): in ogni BS, quindi, sono presenti uno scheduler ed un allocatore di risorse radio che, in una struttura cross-layer, interagiscono tra loro provvedendo all’assegnazione delle risorse agli utenti per ciascuna cella.

La presenza di ICI determina un certo transitorio anche quando esiste un punto di equilibrio per il sistema, per cui la procedura di allocazione dovrà essere iterata per un determinato numero di volte prima di diventare stabile. Per questo motivo, rispetto al caso singola cella, nel sistema multicellulare le procedure di scheduling e allocazione avvengono su due diverse scale temporali. Lo scheduler interviene ogni S slot, la cui durata è pari a S =Nit*Ts, dove Nit =M *Ncells rappresenta il numero di slot che compongono una trama e M è un opportuno parametro di progetto. L’allocatore, invece, lavora a tempo di slot e quindi, ad ogni iterazione, decide su quali sottoportanti far trasmettere le BS verso ciascun utente e con quale potenza. In questo modo, l’allocatore, superato l’iniziale transitorio determinato dall’intervento dello scheduler, ogni volta ha il tempo necessario per raggiungere una configurazione stabile tra una azione dello scheduler ed un’altra.

t

Frame

(6)

Algoritmo 4 Scheduling e Allocazione Multi Cella

1: while iter < iterNumber do 2: iter← iter+1

3: for n = 1 to Ncells do

4: if mod(iter, frame) = 0

5: SchedList(n) allocate(SchedList(n), Creq(n))

6: end if

7: AllocationList(n)← allocate(SchedList(n), Creq(n))

8: if mod (iter, frame) = 0

9: updateCredits(AllocationList(n))

10: end if

11: end for

12: end while

Lo pseudo-codice (Algoritmo 4) mostra il funzionamento del sistema. Lo scheduler applica la propria strategia a ciascuna cella: l’allocatore di risorse riceve in ingresso i valori di rate massimo per ciascun utente, con i quali andrà a risolvere il problema di allocazione. Tale problema è quello incontrato nel capitolo IV, ovvero l’assegnazione delle sottoportanti agli utenti della cella in esame e il calcolo della potenza con cui la BS debba trasmettere su ciascuna sottoportante verso gli utenti. Tuttavia, lo scenario analizzato è molto differente dal caso singola cella poiché ora, come abbiamo visto, la presenza dell’ICI crea notevoli problemi per la convergenza del sistema.

Siano ora η, Pk(n), Gi,k(n), Ik,i(n) rispettivamente l’efficienza spettrale per utente, la potenza trasmessa dalla BS i verso l’utente k sulla sottoportante n, il guadagno tra la BS i e l’utente k sulla sottoportante n e l’interferenza sperimentata dall’utente k nella cella i date dalle (III.4.1), (III.4.5), (III.4.7) e si definisca R(k) il rate massimo che ciascun utente, di una generica cella, può raggiungere a seguito della

(7)

procedura di scheduling. L’allocatore di risorse, sulla base dei valori di rate massimo passati dallo scheduler e dai costi di utilizzo Pk(n) di ciascuna risorsa, determina in ogni cella l’allocazione delle sottoportanti per ciascun utente: la somma delle risorse effettivamente allocate è pari al fattore di carico Creq.

La formulazione del problema è ancora:

∑∑

= = = N n K k k k b n b n P b 1 1 ) ( ) (

min

arg

(V.2.5)

con i seguenti vincoli da rispettare

= ≤ K k k n b 1 1 ) ( n=1,...,N (V.2.6)

= ≤ N n k n r k b 1 ) ( ) ( k =1,...K (V.2.7)

∑∑

= = = K k N n req k n C b 1 1 ) ( bk(n)∈

{ }

0,1 n=1,...,N k =1,...K (V.2.8)

La (V.2.5) è il problema di minimizzazione che abbiamo già incontrato nel capitolo IV e che deve essere risolto per ogni cella; i vincoli sono espressi nelle (V.2.6)-(V.2.8) e sono identici alle (IV.2.4)-(IV.2.6) per ogni cella. Negli slot in cui lo scheduler non interviene, l’allocatore decide l’assegnazione delle varie sottoportanti mantenendo fissati i vincoli sul rate massimo per utente R(k): ciò che cambia sono le potenze Pk(n) che vengono aggiornate a tempo di slot in virtù delle diverse caratteristiche del canale e

(8)

Lo scenario multicellulare è, come abbiamo già detto, totalmente diverso dal caso singola cella, poiché l’interferenza dovuta alla presenza di altre celle gioca un ruolo fondamentale nella formulazione del problema. L’interferenza ad ogni time slot cambia la sua fisionomia a seguito delle allocazioni effettuate, lo scheduler interviene con lo scopo di garantire che gli utenti con un canale peggiore non risultano penalizzati dalle scelte dell’allocatore.

In altre parole, lo scheduler, attraverso l’indicazione dei rate massimi per utente forza l’allocatore a dare un numero equo di sottoportanti a tutti gli utenti.

V.3 - Algoritmi di controllo della potenza e del carico

Come abbiamo visto, l’allocatore, senza alcun tipo di meccanismo di controllo, ad ogni iterazione, decide, sotto il vincolo di rendere minima la potenza, l’assegnazione ottima delle sottoportanti agli utenti. Tuttavia, questa architettura non porta ad una soluzione stabile, in quanto in molti casi in alcune celle l’allocazione oscilla fra più valori. Si verifica il cosiddetto effetto “ping-pong”, per cui il sistema oscilla all’infinito tra due allocazioni con valori di potenza molto simili che si alternano ad ogni iterazione. Per evitare questo fenomeno si introduce un controllo per il quale una cella cambia allocazione se vi è un guadagno effettivo di prestazioni.

(9)

V.3.1 – Controllo di potenza

Algoritmo 5 Gestione dell’allocazione

1: xOldAllOld

2: xNewAllNew

3: totPowOldxOld×powerVect

4: totPowNewxNew×powerVect

5: if totPowOldtotPowNew

ε

*totPowOld <0do

6: bxOld

7: else

8: bxNew

9: end if

_____________________________________________________________________________________

In questo algoritmo (Algoritmo 5) xOLd e xNew indicano rispettivamente il vettore delle allocazioni allo slot precedente e a quello attuale per una cella generica, mentre

powerVect è il vettore in cui sono memorizzati i valori di potenza consumata su ogni sottoportante dalla cella in esame: se il valore di potenza complessivamente speso dalla cella con l’allocazione precedente risulta più basso di quello ottenuto con l’allocazione attuale, allora il vettore b, ovvero la soluzione del problema (V.2.5), viene posto uguale a xOLd, altrimenti viceversa.

Questa soluzione da sola, non risulta sufficiente al raggiungimento della stabilità del sistema per tutti i possibili casi, per cui viene implementato anche un meccanismo di controllo del carico delle celle, necessario se queste presentano un’oscillazione eccessiva tra un’iterazione ed un’altra.

(10)

V.3.2 – Controllo sul carico delle celle

Algoritmo 6 checkAlloc 1: for n = 1 to Ncells do 2: for i = 1 to K do 3: allOldpow(k) 4: allNewpowNew(k) 5:

= − − ← N n k pow k powNew k pow diff 1 ) ( * ) ( ) ( ε 6: if

= N n k diff 1 ) ( > 0 & allocFlag = 0 do 7: count ← count+1 8: allocFlag← allocFlag+1 8: end if 9: end for 10: end for

Questo procedimento viene ripetuto ad ogni time slot e serve ad individuare se nella rete è presente almeno un utente la cui allocazione presenta un’oscillazione. Un’oscillazione si individua quando, da un’iterazione all’altra, le sottoportanti assegnate risultano diverse e questa variazione, rapportata al consumo di potenza nell’allocazione precedente, supera una soglia prefissata. Se ciò accade, viene incrementato un contatore

count che viene resettato non appena l’allocazione nel sistema risulta stabile; quando invece, il contatore viene incrementato consecutivamente per counLim volte, dove

countLim = Nit*Ts, si attiva un meccanismo di riduzione del carico delle celle, che va a decrementare di un’unità il fattore di carico Creq di una cella secondo un criterio prestabilito.

(11)

Da quanto visto finora, è necessario ridurre il carico di una cella esclusivamente in quei casi in cui non è possibile trovare un’allocazione in grado di gestire l’ICI. Abbassare il Creq riduce la banda complessiva a disposizione della cella, ma ha il grande vantaggio di garantire la stabilità dell’allocazione e quindi una corretta trasmissione dei dati. Un effetto della riduzione del Creq è che è necessario introdurre dei meccanismi di gestione delle risorse, in modo da garantire la massimizzazione della fairness nel sistema.

(12)

Fig. V.4 – Potenza per cella con cancellazione delle sottoportanti

Come si vede dalla fig. V.3, la potenza oscilla a causa del fatto che nel sistema è presente una forte componente di interferenza che impedisce all’allocatore di trovare una configurazione costante delle allocazioni. Nella fig. V.4, invece, la stabilità viene raggiunta dopo un certo tempo, necessario al sistema per ridurre il carico delle celle che hanno oscillazioni nell’allocazione. La cella cui viene tolta una sottoportante è quella che consuma anche più potenza (curva rossa), mentre la cella ad essa vicina (individuata in figura dalla curva verde) riduce il proprio consumo di potenza a seguito della cancellazione. Si nota, inoltre, che è necessaria una sola riduzione in tutta la simulazione, per portare il sistema alla stabilità.

(13)

V.4 – Algoritmi di scheduling

Il modello del sistema adottato finora non prevedeva alcun tipo di meccanismo di gestione del traffico con l’obiettivo di massimizzare la fairness. In questo senso, lo scheduler è fondamentale per consentire a tutti gli utenti di avere un equo numero di risorse. Senza di esso, l’allocatore, per effetto delle procedure di riduzione del carico delle celle che presentavano un’oscillazione, darebbe un più risorse agli utenti che appartengono alle celle il cui carico è stato ridotto, che ‘vedono’ un canale migliore.

Per ogni cella, lo scheduler determina la lista dei pacchetti che deve essere passata all’allocatore, il quale decide, sotto il vincolo di mantenere il bit rate costante per tutti gli utenti della cella, quali sottoportanti assegnare a ciascun utente e con quale potenza la BS può trasmettere verso di essi. Come abbiamo già notato, le scale temporali su cui lavorano rispettivamente scheduler e allocatore sono differenti: l’allocatore interviene ad ogni time slot, di durata Ts, mentre lo scheduling di pacchetti ha una temporizzazione più lunga, pari ad una trama, la cui durata è pari a S = Nit*Ts.

Il meccanismo di allocazione e di riduzione del carico delle celle è ancora quello analizzato nel paragrafo, di conseguenza il modello di funzionamento del sistema è il seguente:

(14)

Algoritmo 7 Scheduling e Allocazione Multi Cella con CheckAlloc

1: while iter < iterNumber do 2: iter← iter+1

3: for n = 1 to Ncells do

4: if mod(iter, frame) = 0

5: SchedList(n) allocate(SchedList(n), Creq(n))

6: end if

7: AllocationList(n)← allocate(SchedList(n), Creq(n))

8: if mod(iter, frame) = 0 9: updateCredits(AllocationList(n)) 10: end if 11: powerFlag checkAlloc(AllocationList(n)) 12: end for 13: if powerFlag = 1 14: switch reduxMethod 15: case powerMax 16: cellPowerMaxRedux 17: end case 18: case roundRobin 19: cellRoundRobinRedux 20: end case 21: end switch 22: end if 23: end while

Lo pseudo-codice (Algoritmo 7) evidenzia lo schema di funzionamento del sistema. Si noti che esistono due modalità di aggiornamento dei crediti, che seguono la procedura di scheduling per ogni cella. Questi due modi tengono conto, in un caso, soltanto dell’ultimo slot, mentre nell’altro di tutta la trama.

(15)

Algoritmo 8 updateCredits(creditsMatrix) 1: for n =1 to N do 2: for k = 1 to K do 3: c creditsMatrix(n,k) 4: if c > 0 5: for j = 1 to K do 6: if j k 7: if updateMethod = Int 8: KjKj + j k k K φ φ ⋅ − ) 0 , 1 max(

9: elseif updateMethod = Fraz

10: KjKj + j k k K c φ φ ⋅ − ) 0 , max( 11: end if 12: end if 13: end for 14: if updateMethod = Int 15: Kk ←max(0,Kk −1) 16: elseif updateMethod = Fraz

17: Kk ←max(0,Kkc)

18: end if

19: end for

20: end for

Una volta che le allocazioni sono state effettuate per ogni cella, si va ad aggiornare i crediti degli utenti con il seguente criterio: per ogni sottoportante assegnata, si va a decrementare di una certa quantità il credito dell’utente che ha ricevuto quella sottoportante mentre si incrementano della stessa quantità i crediti degli altri utenti nella cella in esame. La quantità con cui si incrementano e decrementano i crediti dipende dal tipo di metodo utilizzato: se si tratta di un aggiornamento di tipo “intero”, con

(16)

pari all’unità. Se invece il metodo di aggiornamento è di tipo “frazionario”, allora si tiene conto della percentuale di tempo, rispetto alla durata della trama, durante il quale la sottoportante è stata assegnata a un determinato utente ed è utilizzando questo valore

frazionario che si aggiornano i crediti di ciascun utente. Da una parte, si tiene conto soltanto dell’allocazione effettuata nello slot precedente, supponendo che durante la trama l’allocazione abbia raggiunto una configurazione stabile. Dall’altra, invece, si vuole enfatizzare il fatto che l’azione dell’allocatore è continua durante tutta la trama e questo può portare a variazioni significative nelle allocazioni.

Analizziamo ora i due metodi di riduzione del carico delle celle: abbiamo già visto qual è l’algoritmo che svolge la funzione di verifica dell’oscillazione delle allocazioni (Algoritmo 6), se questo dà esito positivo, si avvia una delle due procedure di cancellazione delle sottoportanti. Nella modalità powerMax, si toglie la sottoportante a quella cella che presenta un consumo di potenza maggiore tra tutte quelle che presentano un oscillazione di allocazione durante l’evoluzione del transitorio dell’algoritmo di verifica. Nella modalità roundRobin, si procede cancellando le sottoportanti a rotazione tra tutte le celle, ogni volta che l’algoritmo di verifica delle oscillazioni lo impone. Quest’ultima ha come obiettivo quello di non andare a diminuire il carico soltanto di quelle celle che consumano più potenza, che potrebbero essere sempre le stesse. D’altra parte, lo scopo è quello di rendere stabile il sistema, per cui è giustificato anche un approccio che penalizzi le celle che affliggono maggiormente la rete.

(17)

V.5 – Simulazioni

Lo scenario fin qui esposto è stato simulato tramite calcolatore in cui abbiamo fissato i seguenti parametri di lavoro validi per ogni cella: il fattore di carico Cmax dello scheduler è stato posto pari a 32, il numero di sottoportanti N uguale a 16, e infine il numero di utenti K in ogni cella pari a 4.

V.5.1 – Canale di propagazione

Il canale radiomobile, caratterizzato da una selettività in frequenza (fading di Rayleigh), è stato modellato attraverso una serie di campioni aventi un profilo esponenziale: il delay spread è stato preso pari a

σ

τ= 0.5 µs (modello urbano). La potenza del j-esimo cammino è dato da

) / exp( 2 2 n h j

σ

j

σ

σ

= − , j = 1,…,Nj (V.5.1)

dove

σ

h2 è un fattore di normalizzazione scelto in modo tale che la potenza media del canale sia normalizzata al valore della path loss, mentre

σ

n =

σ

τ /Ts è il delay spread normalizzato (Ts = 200 ns è il tempo di campionamento del segnale OFDM) e

n

j

(18)

V.6 - Risultati

Qui di seguito si riportano i risultati relativi alle simulazioni realizzate, facendo particolare attenzione a indici prestazionali, quali la fairness, la potenza consumata per cella e il confronto tra la capacità nominale e quella misurata per ciascuna cella. Per quanto riguarda il calcolo della fairness, abbiamo utilizzato due modi per valutarla: con riferimento alla (IV.5.1), in un primo caso si prende come valore di ingresso xi il rate medio per utente calcolato su base trama, mentre nell’altro il valore d’ingresso è dato dal fattore di carico di ogni cella Creq ed è ancora valutato su base trama.

La misura della capacità nominale e di quella effettiva ha come obiettivo la verifica che le simulazioni effettuate al calcolatore abbiano dato risultati coerenti con quelli calcolati per via teorica: in particolare, si è misurato la capacità nominale per utente data da B k N k Cnom( )=η* ( )* (V.6.1)

mentre quella effettiva è data da

= + = N n eff B SIR k n C 1 2(1 ( , )) log * (V.6.2)

dove η è l’efficienza spettrale per l’utente k, N(k) è il numero di sottoportanti assegnate all’utente k dall’allocatore e B è la banda di ogni sottoportante. Nella (V.6.2) il SIR osservato dall’utente k sulla sottoportante n è dato dalla (III.4.4), mentre B è ancora la banda di ogni sottoportante. Una volta a disposizione queste due quantità per ciascun utente, ad ogni iterazione si misura la differenza tra le due capacità e si sommano i valori ottenuti per utente, ottenendo così degli indicatori validi per cella.

(19)

V.6.1 – PowerMax con aggiornamento dei crediti intero

Fig. V.5 – Evoluzione temporale della potenza totale per cella

La fig. V.5 mostra la potenza consumata per cella nel caso in cui si lavori in modalità

PowerMax con aggiornamento “intero” dei crediti per utente. Come si nota, dopo che è stata effettuata la cancellazione delle sottoportanti al fine di rendere stabile il sistema, la potenza delle celle hanno un andamento costante nel tempo: in particolare, le celle a cui sono state tolte le sottoportanti sono soltanto la numero 2 e 3. Tali celle presentano una continua alternanza di valori, dovuta alla presenza dello scheduler, che continua a far cambiare le allocazioni per effetto della cancellazione delle sottoportanti. Ciò rende il sistema meno fair poiché il numero di risorse non è più uguale per tutti gli utenti. In

(20)

particolare, nella cella 2 (curva verde), si toglie una sottoportante, il fattore di carico passa a 15, l’allocatore è obbligato a dare più risorse ad un utente rispetto ad un altro e di conseguenza, allo slot successivo, sarà costretto a modificare la propria allocazione, garantendo a tutti un numero equo di risorse. Questo peggioramento delle prestazioni del sistema è tuttavia accettabile a fronte della stabilità del sistema raggiunta.

(21)

Nella figura V.6 si vede la fairness per cella, calcolata sulla base dei rate medi per utente. Per il motivo appena spiegato, vale a dire la suddivisione non più equa delle sottoportanti in quelle celle in cui si va a cancellare, solo in queste si nota un lieve abbassamento della fairness, in quanto il numero di risorse non è più uguale per tutti.

Fig.V.7 – Fairness media calcolata sul Creq

La figura V.7 mostra il calcolo della fairness media (calcolata su base trama) avente come valore di ingresso i Creq delle celle: si nota come tale valore sia molto prossimo all’unità, poiché il numero di sottoportanti cancellate è molto basso e di conseguenza i valori dei fattori di carico si mantengono simili tra di loro.

(22)

Fig. V.8 – Capacity Verfiy

La figura V.8 rappresenta la verifica sulla capacità nella modalità che abbiamo analizzato in precedenza: si notano solo differenze di valori tra la capacità misurata e quella nominale per quanto riguarda la cella 2, in prossimità degli istanti in cui interviene lo scheduler. Questo fatto si giustifica ammettendo che l’intervento da parte dello schedluer perturba la condizione di equilibrio garantita dall’allocatore, ma dopo poche iterazioni si vede subito che la capacità misurata torna ad essere uguale a quella nominale.

(23)

V.6.2 – PowerMax con aggiornamento dei crediti frazionario

Fig. V.9 – Evoluzione temporale della potenza per cella

La figura V.9 riporta il grafico della potenza per cella nella modalità PowerMax con aggiornamento dei crediti frazionario: l’andamento delle potenza è stabile, cioè fissato attorno ad una certa configurazione, dopo che è stata effettuata la cancellazione delle sottoportanti. Rispetto al caso con aggiornamento intero, il numero di sottoportanti cancellate risulta maggiore, infatti alla cella 3 vengono tolte 4 sottoportanti, fissando il proprio fattore di carico a 12. Questo fatto è dovuto al diverso modo di aggiornare i crediti di ciascun utente. In questo caso, si sperimenta una maggiore oscillazione delle

(24)

di un maggior numero di sottoportanti. Per questo motivo, la potenza consumata da tale cella risulta più bassa, come si nota dalla figura.

Fig. V.10 – Fairness media per cella

In figura V.10 si riporta la fairness media per cella e si vede come la cella più penalizzata dal punto di vista della fairness sia la cella numero 3 (curva rossa), cioè quella cui vengono tolte più sottoportanti. Nonostante questo, i valori sperimentati durante l’evoluzione della simulazione sono accettabili, fin quando non si torna a valori di fairness pari a uno anche per questa cella, poiché il numero di risorse viene nuovamente equamente suddiviso tra gli utenti nella cella. Per quanto riguarda le altre celle, si nota come l’unica cella la cui fairness scende sotto l’unità, che però continua a

(25)

mantenersi su valori alti, è la numero 2 (curva verde), che è l’altra cella, oltre alla 3, cui viene tolta una sottoportante per cui il numero di risorse non è ugualmente divisibile tra gli utenti.

Fig. V.11 – Fairness media calcolata sul Creq

Anche in questo caso, la fairness media calcolata sui Creq delle celle è molto vicina all’unità, sebbene rispetto al caso con aggiornamento intero il valore su cui tale parametro si attesta è leggermente inferiore a causa del maggior numero di sottoportanti cancellate.

(26)

Fig. V.11 – Capacity Verify

La figura V.11 mostra il calcolo della verifica della capacità per questa modalità di lavoro. Come già visto anche nel precedente caso, gli istanti in cui si nota una marcata differenza tra la capacità nominale e quella misurata sono quelli in cui interviene lo scheduler; ora però ci sono maggiori fluttuazioni dovute alle oscillazioni di allocazione sperimentate dal sistema nella prima parte. Tuttavia queste differenze vengono abbattute dopo che il sistema raggiunge la stabilità e infatti i picchi che si notano nella prima parte del grafico non si notano più.

(27)

V.6.3 – RoundRobin con aggiornamento dei crediti intero

Fig. V.12 - Evoluzione temporale della potenza per cella

Nella fig. V.12 si riporta il grafico della potenza consumata da ogni cella nella modalità

RoundRobin con aggiornamento dei crediti intero. Come già fatto notare in precedenza, questa modalità di cancellazione delle sottoportanti ha come scopo quello di evitare che sia ridotto il carico solo a quelle il cui consumo di potenza risulti eccessivo. Per questo motivo si nota come, rispetto alla modalità PowerMax, le potenze delle celle abbiano tutte un andamento molto più variabile nel tempo, a causa delle cancellazioni effettuate in modalità round-robin appunto. Inoltre, in quelle celle dove il consumo di potenza è maggiore, questo sistema di controllo del carico peggiora i consumi di potenza, per

(28)

effetto della continua variazione delle allocazioni anche nelle altre celle. La scelta di utilizzare un metodo di riduzione del carico che coinvolga tutte le celle, dunque, penalizza il sistema rispetto a quello in cui si va a colpire soltanto le celle che danneggiano maggiormente la rete.

Fig. V.13 – Fairness media per cella

In questa figura si mostra la fairness del sistema nello scenario che stiamo analizzando. Anche in questo caso è evidente il fatto che la riduzione del carico di tutte le celle e non solo di quelle il cui consumo di potenza risulti eccessivo, comporta una riduzione della fairness anche di queste celle. Gli indici continuano però a rimanere su valori molto prossimi all’unità.

(29)

Fig. V.14 – Fairness media Creq

La fig. V.14 mostra la fairness calcolata utilizzando come valore di ingresso i fattori di carico delle celle. Il valore di questo indice risulta molto prossimo all’unità a causa del fatto che a ciascuna cella è stata tolto lo stesso numero di sottoportanti.

(30)

Fig. V.15 – Capacity Verify

La fig. V.15 mostra la verifica sulla capacità. Si nota ancora una volta la correttezza di tale verifica, a parte gli slot in cui interviene lo scheduler che provoca una perturbazione dell’equilibrio.

(31)

V.6.4- RoundRobin con aggiornamento dei crediti frazionario

Fig. V.16 – Evoluzione temporale della potenza per cella

La fig. V.16 mostra il consumo di potenza per cella nella modalità RoundRobin con aggiornamento dei crediti frazionario. Valgono le stesse considerazioni fatte in precedenza, con l’aggiornamento dei crediti intero, solo che ora si nota una maggiore instabilità del sistema. Questo fatto è dovuto al meccanismo di aggiornamento dei crediti, che si basa sull’osservazione delle allocazioni su tutta la trama. Durante questo periodo, l’allocazione subisce forti variazioni da un’iterazione ad un’altra, per cui i crediti degli utenti vengono di volta in volta aggiornati in maniera diversa. Lo scheduler

(32)

è dunque costretto a cambiare sempre le richieste da passare all’allocatore, provocando continue modifiche all’allocazione.

Fig. V.17 – Fairness media per cella

la fairness del sistema, riportata in fig. V.17, risulta molto vicina all’unità per ciascuna cella. Gli istanti in cui si osserva una perdita consistente sono quelli in cui avviene l’intervento dello scheduler che, come abbiamo già osservato, tende a modificare la situazione di equilibrio garantita dall’allocatore.

(33)

Fig. V.18 – Fairness media Creq

Il valore della fairness media calcolata sui Creq delle celle è mostrato in fig. V.18. Ancora una volta si vede come tale indice sia vicinissimo all’unità, poiché i fattori di carico delle celle sono tutti molto simili tra loro; al termine della simulazione, infatti, risultano tutti pari a 15, a parte quelli della cella numero 2 e 3, che risulta pari a 14. Da questo punto di vista, il metodo RoundRobin garantisce una maggiore fairness rispetto al caso PowerMax, in quanto il controllo del carico coinvolge tutte le celle.

(34)

Fig. V. 19 – Capacity Verify

In fig. V.19 è rappresentata il controllo sulla verifica della capacità effettiva rispetto a quella nominale. Si nota ancora una volta una certa differenza tra le due quantità soltanto negli slot in cui interviene lo scheduler, mentre negli altri la verifica risulta corretta.

Figura

Fig. V.1 – Cluster di sette celle
Fig. V.3 – Potenza per cella senza cancellazione delle sottoportanti
Fig. V.4 – Potenza per cella con cancellazione delle sottoportanti
Fig. V.5 – Evoluzione temporale della potenza totale per cella
+7

Riferimenti

Documenti correlati

Tuttavia, la colorazione arancio, blu o rossa (a seconda che i mezzi fossero urbani, interurbani a concessione regionale o statale) o gialla (scuolabus) aveva ormai un suo

Tra mille contraddizioni, l’atteggiamento dei servizi pubblici cominciò a mutare; e anche quello del privato sociale più aggiornato e meno ideologico iniziò a

E’ indispensabile che la relazione alla proposta di nuova legge regionale (ddl) contenga un quadro conoscitivo dello stato della pianificazione sovracomunale e comunale, riferito

Processo di ossido-riduzione in cui la stessa sostanza si ossida e si riduce.. Il numero di ossidazione degli atomi in un qualsiasi elemento libero non combinato è zero... 2. Il

In generale una reazione di ossido-riduzione è definita come una reazione in cui si ha trasferimento di elettroni fra le specie reagenti o in cui gli atomi variano il loro numero di

Data la mole di dati da trattare si preferisce allora utilizzare l’insieme dei valori dei pixel come rappresentativi delle diverse misure alla stessa illumi- nazione. Tuttavia

Da quanto visto, nella direttrice B, la generazione distribuita, inserita nella rete di distribuzione tramite i generatori asincroni, per i livelli di carico minimo e medio, causa

Obiettivo dei metodi per la riduzione di dimensionalità (dimensionality reduction) è quello di eseguire un mapping dallo spazio iniziale