ITMI20002800A1 - Procedimento di schedulazione dei permessi di trasmissione dei dati apecchetto sui canali radio condivisi dalle stazioni mobili in sistemi - Google Patents
Procedimento di schedulazione dei permessi di trasmissione dei dati apecchetto sui canali radio condivisi dalle stazioni mobili in sistemi Download PDFInfo
- Publication number
- ITMI20002800A1 ITMI20002800A1 IT2000MI002800A ITMI20002800A ITMI20002800A1 IT MI20002800 A1 ITMI20002800 A1 IT MI20002800A1 IT 2000MI002800 A IT2000MI002800 A IT 2000MI002800A IT MI20002800 A ITMI20002800 A IT MI20002800A IT MI20002800 A1 ITMI20002800 A1 IT MI20002800A1
- Authority
- IT
- Italy
- Prior art keywords
- buffer
- transmission
- tbf
- scheduling
- tfi
- Prior art date
Links
- 230000005540 biological transmission Effects 0.000 title claims description 146
- 238000000034 method Methods 0.000 title claims description 111
- VJYFKVYYMZPMAB-UHFFFAOYSA-N ethoprophos Chemical compound CCCSP(=O)(OCC)SCCC VJYFKVYYMZPMAB-UHFFFAOYSA-N 0.000 title 1
- 239000000872 buffer Substances 0.000 claims description 175
- 230000011664 signaling Effects 0.000 claims description 21
- 238000009826 distribution Methods 0.000 claims description 8
- 230000003247 decreasing effect Effects 0.000 claims description 4
- 230000002123 temporal effect Effects 0.000 claims description 4
- 238000003780 insertion Methods 0.000 claims description 3
- 230000037431 insertion Effects 0.000 claims description 3
- 230000001413 cellular effect Effects 0.000 claims 1
- 238000010187 selection method Methods 0.000 claims 1
- 230000001360 synchronised effect Effects 0.000 claims 1
- 238000012546 transfer Methods 0.000 description 40
- 230000008569 process Effects 0.000 description 28
- 101150005271 TBF-1 gene Proteins 0.000 description 24
- 230000006870 function Effects 0.000 description 23
- 230000007246 mechanism Effects 0.000 description 17
- 238000007726 management method Methods 0.000 description 15
- 238000012360 testing method Methods 0.000 description 13
- 238000004422 calculation algorithm Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 8
- 230000014509 gene expression Effects 0.000 description 8
- 108700026140 MAC combination Proteins 0.000 description 7
- 238000007616 round robin method Methods 0.000 description 7
- 238000000605 extraction Methods 0.000 description 6
- 101000741965 Homo sapiens Inactive tyrosine-protein kinase PRAG1 Proteins 0.000 description 5
- 102100038659 Inactive tyrosine-protein kinase PRAG1 Human genes 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 238000012384 transportation and delivery Methods 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 238000009795 derivation Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000002045 lasting effect Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 230000005641 tunneling Effects 0.000 description 3
- 206010003830 Automatism Diseases 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000005352 clarification Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 230000009849 deactivation Effects 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000010363 phase shift Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000002269 spontaneous effect Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/10—Flow control between communication endpoints
- H04W28/14—Flow control between communication endpoints using intermediate storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2425—Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
- H04L47/2433—Allocation of priorities to traffic types
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6215—Individual queue per QOS, rate or priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6255—Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Description
DESCRIZIONE della domanda di brevetto per invenzione industriale
Campo di applicazione dell'invenzione
La presente invenzione si riferisce al campo delle reti telefoniche radiomobili e più precisamente ad un procedimento di schedulazione dei permessi di trasmissione dei dati a pacchetto sui canali radio condivisi dai mobili in sistemi GSM-GPRS.
Rassegna dell'arte nota
I sistemi telefonici radiomobili PLMN (Public Land Mobile Network) sono in fase di evoluzione verso una cosiddetta terza generazione sotto la spinta di una sempre maggiore richiesta di servizi nel campo della trasmissione dati, come ad esempio per le connessioni alla rete Internet. L’entrata in servizio dei sistemi UMTS (Universal Mobile Telephony System) di terza generazione richiederà tuttavia ancora del tempo prima dell'uscita definitiva dalla fase di prototipizzazione ed il raggiungimento di una efficiente copertura territoriale. Nel contempo c'è spazio per un potenziamento del servizio di trasmissione dati attraverso gli esistenti sistemi radiomobili di seconda generazione, i quali, essendo basati sulla commutazione di circuito, sfruttano le risorse radio in modo prevalentemente orientato verso la fonia piuttosto che verso la trasmissione dati. Quest'ultima risulta penalizzata nella massima bit-rate raggiungibile. Queste esigenze sono particolarmente sentite in ambito GSM (Global System for Mobile Communications), anche perché non tutti gli attuali gestori del servizio GSM potranno beneficiare di una licenza UMTS. Nel caso di un potenziamento del servizio dati, gli esclusi potranno comunque confidare in una utenza in grado di apprezzare i miglioramenti introdotti nel GSM. La necessità di un potenziamento del servizio di trasmissione dati nel sistema GSM era comunque già stata prevista in ambito ETS1 (European Telecommunications Standards Institute). Questo ha condotto alla definizione ed alla pubblicazione di nuove specifiche tecniche a riguardo di un servizio a commutazione di pacchetto sulle reti GSM esistenti. Il servizio è noto con l’acronimo GPRS (General Packet Radio Service); nel seguito il termine GPRS verrà anche utilizzato per definire il sistema o la rete in cui il servizio è svolto. L'instradamento a commutazione di pacchetto è per sua natura “connectionless”, ovvero non richiede l'impegno costante di risorse fisiche per tutta la durata della sessione attiva; di conseguenza le risorse disponibili si rendono condivisibili tra più utenti, che le utilizzano a turno solo quando queste effettivamente servono. Il vantaggio che il sistema GPRS consegue nella trasmissione dati rispetto al sistema GSM tradizionale è duplice; per il gestore è quello di poter servire più utenti a parità di risorse disponibili, per gli utenti è quello di dover pagare per il solo tempo di effettivo sfruttamento delle risorse, e quindi non anche per i tempi morti.
La presente invenzione si innesta nel sistema GSM/GPRS, ragion per cui la sua descrizione necessita di una presentazione del servizio GPRS principalmente per quanto concerne l'architettura e le interfacce di rete, il formato dei segnali, e la struttura del protocolli di funzionamento. Verrà dato opportuno risalto agli aspetti che hanno maggior impatto sulla descrizione dell'esempio non limitativo di realizzazione dell'invenzione. Successivamente verranno presi in considerazione dei documenti di arte nota che hanno attinenza con il sistema GPRS. Questi articoli, unitamente alla presentazione del sistema GPRS, aiuteranno a formulare il problema tecnico che l’invenzione in oggetto intende risolvere. La presentazione del sistema GPRS si avvale delle numerose specìfiche tecniche finora pubblicate in merito, ed in particolare dei seguenti documenti GSM nella fase 2+:
- Service description; Stage 1 (GSM 02.60 versione 7.2.0, Release 1998);
- Service description; Stage 2 (GSM 03.60 versione 7,1.0, Release 1998);
- Overall description of thè GPRS radio interface; Stage 2 (GSM 03.64 versione 8.3.0, Release 1999);
- Mobile Station (MS) - Base Station System (BSS) interface; Radio Link Control/ Medium Access Control (RLC/MAC) protocol (GSM 04.60 versione 8.0.0, Release 1999);
- Mobile Station - Serving GPRS Support Node (MS-SGSN); Logicai Link Control (LLC) layer specification (GSM 04.64 version 8.0.0 Release 1999);
La fig.1 della presente domanda (corrispondente alla fig.1 dello standard GSM 03.60) mostra l’architettura funzionale di una rete telefonica integrata che evidenzia le interfacce d’accesso al servizio GPRS ai cosiddetti Reference Points. In figura si può notare una stazione mobile MS (Mobile Station) connessa ad una porta di accesso di una rete GPRS 1 per il tramite di un’interfaccia radio Um. La rete GPRS 1 è a sua volta connessa ad una seconda rete GPRS 2 per il tramite di un'interfaccia Gp, e ad una rete pubblica PDN (Public Data Network) mediante una connessione indicata da un Reference point Gi. La stazione mobile MS include un primo blocco funzionale TE (Terminal Equipment) connesso ad un secondo blocco funzionale MT (Mobile Terminated) mediante una connessione indicata da un Reference point R, che tipicamente sopporta un’interfaccia seriale standard. Il blocco MT è connesso all’interfaccia Um che fornisce servizi di dati a pacchetto sui canali radio.
La fig.2 della presente domanda (corrispondente alla fig.2 del medesimo standard GSM 03.60) mostra l’architettura funzionale di una rete GSM che sopporta il servizio GPRS. Rispetto alla precedente fig.1 la rete GPRS 1 viene dettagliata nei suoi blocchi funzionali di cui i seguenti: SGSN (Service GPRS Support Node), GGSN (Gateway GSN), ed EIR (Equipment Identity Register) sono nuovi rispetto al sistema GSM tradizionale, mentre i restanti blocchi: BSS (Base Station System), MSC/VLR (Message Switching Centre / Visitor Location Register), HLR (Home Location Register), SMS-GMSC (Short Message Service - Gateway MSC) e SMS-IWMSC (SMS - InterWorking MSC), ed infine SM-SC (Short Message - Service Centre) sono degli upgrade per il servizio GPRS degli omonimi blocchi del sistema GSM tradizionale. Rispetto alla fig.1 sono previste le seguenti nuove interfacce: Gb, Gn, Gp, Gf, Gs, Gr, Gd, D, E, C, le cui connettività tra i rispettivi blocchi sono visibili direttamente in figura. In particolare, l'interfaccia Gn connette due nodi GSN entro lo stesso sistema PLMN, mentre l’interfaccia Gp connette due nodi GSN appartenenti a differenti sistemi PLMN.
Come si può notare dalla fig.2, già nella struttura di rete si notano delle diversità tra il sistema GPRS ed il GSM tradizionale, principalmente a causa dei due nuovi nodi SGSN e GGSN e delle relative interfacce. Il nuovo nodo SGSN si trova allo stesso livello gerarchico di un centro MSC, esso tiene traccia delle locazioni individuali dei mobili ed esegue le funzioni di sicurezza ed il controllo dell'accesso. A questo scopo il registro HLR viene arricchito con le informazione dell’utente GPRS. Il nuovo nodo GGSN provvede alla funzione di interworking con le reti esterne a commutazione di pacchetto, ed è connesso con altri nodi SGSN tramite una rete dorsale GPRS basata sul protocollo IP.
Nel funzionamento, un mobile MS che intende accedere ai servizi GPRS, deve dapprima far conoscere la propria presenza alla rete eseguendo un’operazione di attacco GPRS. Questa operazione stabilisce un link logico tra il mobile MS ed il nodo SGSN, e rende il mobile MS disponibile per il servizio SMS via GPRS, per il paging tramite il nodo SGSN, e la notifica di dati GPRS entranti. Per poter inviare e ricevere dati GPRS il mobile MS deve attivare l'indirizzo dei dati a pacchetto che vuole usare; questa operazione lo rende noto al corrispondente nodo GGSN e l’interworking con le reti dati esterne può cominciare. I dati a pacchetto generati da un utente sono trasferiti in modo trasparente tra il mobile MS e le reti dati esterne, con un metodo noto come incapsulamento e tunnelling. Il metodo consiste nel fatto che i dati a pacchetto vengono integrati da informazioni dì protocollo GPRS specifiche e quindi trasferiti tra il mobile MS ed il nodo GGSN. Questo metodo di trasferimento trasparente solleva il sistema GPRS PLMN dall’esigenza di interpretare protocolli dati esterni e facilita l’introduzione di futuri protocolli di interworking addizionali. I dati generati da un utente possono essere compressi e protetti con protocolli di ritrasmissione per ottenere una maggior efficienza ed affidabilità.
Ulteriori caratteristiche tecniche del sistema GPRS sono elencate al punto 4 (Main Concepts) del medesimo standard GSM 03.60 che si sta considerando, e vengono qui riproposte per meglio inquadrare l'invenzione che verrà descritta. In particolare, al punto 4 viene detto che il sistema GPRS usa una tecnica packet-mode per trasferire in maniera efficiente dati e segnalazione sia ad alta sia a bassa velocità, ottimizzando l’uso delle risorse radio e di rete. Viene mantenuta una stretta separazione tra il sottosistema radio ed il sottosistema dì rete, consentendo il riutilizzo del sottosistema di rete con altre tecnologie di accesso radio. Il sistema GPRS non impone cambiamenti ad un MSC di base già installato.
Nuovi canali radio GPRS sono stati definiti e l’allocazione di questi canali è flessibile, ad esempio: da 1 a 8 time-slots dell’interfaccia radio possono essere allocati entro la trama TDMA (Time Division Multiple Access), i time-slots sono condivisi dagli utenti attivi e sono allocati separatamente in up e downlink. Le risorse dell'interfaccia radio possono essere condivise dinamicamente tra i servizi di fonia e dati, in funzione del carico di servizio e delle preferenze dell’operatore. Sono previsti quattro schemi di codifica del segnale radio modulato GMSK (Gaussian Minimum Shift Keying) per consentire bit-rates comprese tra 9 e più di 150 kbit/s per utente (la bit-rate più alta è ovviamente riferita all’utilizzo esclusivo degli otto time-slots disponibili sulla trama TDMA, ed in completa assenza di ridondanza). È anche specificata una versione arricchita del servìzio GPRS, detta Enhanced GPRS (EGPRS), in cui la tradizionale modulazione GMSK è sostituita da una modulazione fino a 8-PSK (Phase Shift Keying). In tal caso gli schemi di modulazione e codifica sono portati a nove e la massima bit-rate per utente aumenta di conseguenza fin a circa 570 kbit/s sugli 8 timeslots.
Sono supportate applicazioni basate su protocolli dati di tipo standard, e l'interworking è definita con reti IP (Internet Protocol) e X.25. Sono supportati servizi specifici punto-a-punto e punto-a-multipunto. È consentito il trasferimento del servizio SMS (Short Message Service) sui canali radio GPRS.
Il sistema GPRS è progettato per sopportare un trasferimento dati che spazia dall'intermittente e di tipo burst, fino alla trasmissione occasionale di un grande volume di dati. Sono previsti diversi profili della qualità di servizio. La tassazione dovrebbe essere basata sull'ammontare dei dati trasferiti.
Il sistema GPRS sopporta tre modalità operative dei mobili MS: un mobile nella modalità in classe A opera con i servizi GPRS e GSM simultaneamente. Un mobile in classe B osserva i canali di controllo per i servizi GPRS e GSM simultaneamente, ma può operare solo un set di servizi alla volta. Un mobile in classe C, infine, opera esclusivamente con i servizi GPRS.
Per quanto concerne il servizio SMS, alcune funzioni del centro MSC subiscono un upgrade per dare supporto alla trasmissione di messaggi SMS via il nodo SGSN.
sopra e soto. Una entità di livello N svolge funzioni entro il livello N di appartenenza. Per la comunicazione tra entità N di pari livello (peer entities) si utilizza un protocollo detto peer-to-peer. L’unità di informazione che viene scambiata mediante un protocollo peer-to-peer è deta N-PDU (N-Protocol Data Unii), essa comprende i dati ed una informazione di controllo N-PCI (N-Protocol Control Information). Le entità di uguale livello N comunicano tra loro usando i servizi forniti dal layer sottostante. Similmente, i servizi del layer N vengono forniti al layer N+1 ad un punto di accesso detto N-SAP (N-Service Access Point). Per la descrizione dell’interfaccia tra layers adiacenti N ed N+1 vengono introdotte delle primitive di livello N. Una primitiva di livello N insieme ad un’associata unità di servizio dati N-SDU (N-Service Data Unit) vengono inviate dal layer N al layer N+1, e viceversa, utilizzando allo scopo un protocollo di servizio di livello N. Le primitive e le unità SDU consentono quindi la bidirezionalità del flusso informativo lungo uno stack.
Le funzioni che verranno specificate per i diversi layers di fig.3 necessitano di ulteriori funzioni di supporto e controllo, descrite in ulteriori stacks di protocollo atinenti a "Signalling Planes” operativi alle diverse interfacce di fìg.2. In seguito, quando ciò non ingenera confusione, il termine layer viene considerato sinonimo di protocollo. N.B. Le connessioni tra layers omonimi di fig.3 appartenenti a stacks di protocollo diversi, sono ovviamente di tipo logico. L’informazione trasferita da un layer di partenza ad uno di arrivo è sempre convogliata dai canali fisici usati alle varie interfacce: Gb, Abis, Um, presenti sul percorso effetuato dai paccheti per discendere lo stack di protocollo di partenza, subendo le trasformazioni imposte dai layers atraversati, atraversare il livello fisico, e quindi risalire lo stack di arrivo.
In flg.3 sono visibili nell’ordine i blocchi funzionali MS, BSS, SGSN, e GGSN; per ciascun blocco funzionale è raffigurato lo stack di protocollo utilizzato ad un lato del blocco. Come si può notare, ciascuno dei blocchi BSS e SGSN include due diverse interfacce e comprende quindi due diversi stacks dì protocollo, in tal caso in cima a ciascuna coppia di stacks è necessaria una funzionalità di Relay che rende agibile il livello immediatamente superiore del protocollo alle interfacce poste ai due lati di ciascun blocco. Vengono di seguito elencati i protocolli visibili in fìg.3, commentando brevemente quelli che maggiormente interessano l'invenzione che verrà descritta: - GTP (GPRS Tunneling Protocol): è specificato in GSM 09.60.
- TCP (Transmission Control Protocol): è definito in RFC (Radio Frequency Channel) 793.
- UDP (User Datagram Protocol): è definito in RFC 768.
- IP (Internet Protocol): è il ben noto protocollo di tipo PDP (Packet Data Protocol) utilizzato nella rete dorsale GPRS per instradare j dati e la segnalazione.
- SNDCP (Subnetwork Dependent Convergence Protocol): questa funzionalità di trasmissione mappa le caratteristiche a livello di rete entro le caratteristiche della rete sottostante. Il protocollo SNDCP è funzionalmente descritto in GSM 03.60 e specificato in GSM 04.65.
- LLC (Logicai Link Control): questo layer fornisce un link logico cifrato altamente affidabile per trasportare informazioni tra entità di livello 3 nel mobile MS e nel nodo SGSN. Il protocollo LLC è specificato in GSM 04.64 e verrà meglio dettagliato con riferimento alla fig.4.
- Relay: questa funzione, nella stazione BSS, scambia le unità di protocollo LLC PDU (LLC Protocol Data Unit) tra le interfacce Um e Gb.
- RLC/MAC: la funzione RLC (Radio Link Control) fornisce un link radio affidabile e mappa le trame LLC entro il canale fìsico GSM. La funzione MAC (Medium Access Control) controlla le procedure di segnalazione di accesso (request and grant) per fi canale radio. Il protocollo RLC/MAC è definito in GSM 04.60 e verrà meglio dettagliato con riferimento alla fig.4.
- GSM RF: è attinente al canale radio all'interfaccia Um, definito nella serie di specifiche GSM 05.
- BSSGP (Base Station System GPRS Protocol): questo layer trasporta informazioni relative all’instradamento ed alla qualità del servizio scambiate tra i sottosistemi BSS e SGSN. Il protocollo BSSGP non esegue la correzione degli errori. Esso è specificato in GSM 08.18.
Per quanto concerne il “Signalling Piane" MS-SGSN, che meglio interessa la presente invenzione, ci si può rifare alla fig.3 in cui nei blocchi MS e SGSN sopra al layer LLC è indicato un layer denominato GMM/SM (GPRS Mobility Management and Session Management), che verrà descritto in seguito.
La fìg.4 della presente domanda corrisponde alla fìg.1 dello standard GSM 04.60 in cui il layer LLC, genericamente indicato con un blocco nella figura dello standard, viene invece qui rappresentato con il dettaglio che risulta dalla fig.2 dello standard GSM 04.64. La fig.4 della presente domanda fornisce una rappresentazione dell'architettura dei protocolli del Transmission Piane di fig.3, particolarmente orientata alla comunicazione tra i mobili MS ed il nodo SGSN, che passa ovviamente per il sottosistema BSS. Occorre rimarcare che le connessioni tra i vari blocchi raffigurati sono di tipo logico, cioè funzionale, a dispetto dell'impressione circuitale ingenerata dal contesto in figura. Rispetto alla rappresentazione di fig.3, il layer 3 risulta arricchito dei seguenti ulteriori protocolli: GMM, SMS, e TOM (Tunnelling Of Messages), di cui:
- Il protocollo GMM (GPRS Mobility Management) usa i servizi del layer LLC per trasferire messaggi tra il mobile MS ed il nodo SGSN. L’interazione tra i layers GMM e LLC è definita in termini di servizio e primitive, e viene governata da procedure definite in GSM 04.08. Il protocollo GMM sopporta inoltre le funzionalità per il governo della mobilità, come ad esempio quelle di attacco GPRS, distacco GPRS, sicurezza, aggiornamento dell’area d’instradamento, aggiornamento della locazione, attivazione del contesto operativo del protocollo PDP per i dati a pacchetto, e la disattivazione del suddetto contesto PDP. Le numerose funzionalità del protocollo GMM sono descritte al capitolo 6 dello standard GSM 03.60.
- Il protocollo SNDCP controlla il trasferimento delle unità di protocollo di rete N-PDU (Network-PDU) tra un mobile MS ed il nodo SGSN. Le principali funzioni del protocollo SNDCP sono:
- Multiplexing dei protocolli packet data, ad esempio IP.
- Compressione / decompressione dei pacchetti dati dell’utente.
- Compressione / decompressione delle informazioni di controllo del protocollo. - Segmentazione delle unità di protocollo di rete (N-PDU) entro unità di protocollo LLC (LL-PDU) e riassemblaggio delle unità di protocollo LL-PDU entro le unità di protocollo N-PDU.
Per esplicare le funzioni di cui sopra, il protocollo SNDCP si avvale di un identificatore NSAPI (Network layer Service Access Point Identifier) che identifica nel mobile MS il punto d’accesso ad un protocollo packet data PDP, mentre nei nodi SGSN e GGSN identifica il contesto associato ad un indirizzo del suddetto protocollo PDP.
- Il protocollo TOM è usato per scambiare delle buste delFomonimo protocollo tra un mobile MS ed il nodo SGSN. Le procedure TOM sono definite nell'Annex B dello standard GSM 04.64.
- Il protocollo SMS usa i servizi dei layer LLC per trasferire i messaggi SM (Short Messages) tra un mobile MS ed il nodo SGSN. Le procedure SMS sono definite in GSM 03.40.
Con riferimento alla fig.4 nella parte superiore sono raffigurati i seguenti blocchi di livello 3: SNDCP, TOM, SMS, ed un blocco a tratteggio MM sublayer che include il blocco GMM. Il blocco a tratteggio MM sublayer è connesso a due punti di accesso RR e GMMRR (GMM to Radio Resource) al servizio fornito da un sublayer RR (Radio Resource) di livello 2. I restanti blocchi GMM, SNDCP, TOM, e SMS sono nell’ordine connessi ai seguenti punti di accesso al servizio fornito dal layer LLC: 2xLLGMM (LLC to GPRS Mobility Management); LLx (Logicai Link x); TOM2,8; e LLSMS. Tutti i punti d’accesso SAP (Service Access Points) sopra indicati sono posti sulla linea che divide il layer di livello 3 dai layers LLC ed RR sottostanti. Il layer LLC è funzionalmente schematizzato da un blocco LLC che include un blocco LLME (Logicai Link Management Entity), connesso ad uno dei due punti d’accesso LLGMM ed a tanti blocchi LLE (Logicai Link Entity) quanti sono i rimanenti punti d’accesso al servizio. I blocchi LLE includono altrettanti identificatori SAPI (Service Access Point Identifier), numerati in modo congruente con i rispettivi punti SAP, a cui sono individualmente associati. Ciascun blocco LLE è connesso ad un rispettivo punto d'accesso di un blocco denominato Multiplexer Procedure. Quest’ultimo ha due ulteriori punti d'accesso GRR (GPRS Radio Resources) e BSSGP posti a cavallo di una linea che delimita inferiormente il Layer 2. Al punto d'accesso GRR pervengono i servizi forniti dal sublayer RLC/MAC pertinente al mobile MS, mentre al punto d’accesso BSSGP pervengono i servizi forniti dall’omonimo sublayer di pertinenza del nodo SGSN.
Il blocco RR sublayer include i seguenti blocchi: RR Management, RLC/MAC (Radio Link Control / Medium Access Control), e PD (Protocol Discriminator). Il blocco RR Management è connesso ai punti d'accesso GMMRR e GRR, ed inoltre, al blocco PD mediante una prima via indicata con RR, ed al blocco RLC/MAC mediante una seconda via pure indicata con RR, ed una terza via denominata upper layers PDUs. Il blocco PD è ulteriormente connesso al punto d’accesso RR posto a cavallo del Layer 3, mediante una via denominata non-RR. Il blocco PD genera in uscita tutta la varietà dei canali GSM, denominati GSM channels. Il blocco RLC/MAC genera in uscita t seguenti canali GPRS: PBCCH {Packet Broadcast Control Channel), PCCCH (Packet Common Control Channel), PACCH (Packet Associated Control Channel), e PDTCH (Packet Data Trafile Channel). I canali generati dal blocco RLC/MAC sono convogliati all’uscita del blocco RR sublayer entro il canale fisico PDCH (Packet Data Channel) che raggiunge un blocco a tratteggio Physical Link Layer rappresentante il livello fìsico. La pluralità di canali GSM channels attraversa un blocco a tratteggio Data Link layer (signalling layer 2) e raggiunge anch’essa il blocco Physical Link Layer.
Nel funzionamento, il blocco MM sublayer svolge le funzioni di Mobility Management previste per il sistema GSM, operando in sintonia con il blocco GMM che svolge analoghe funzioni per il servizio GPRS. L’interazione tra i due sistemi, per quanto concerne l’allocazione delle reciproche risorse radio, è gestita dal protocollo RR Management. La schematizzazione di fig.4 mostra il servizio GPRS entro il sistema GSM, fornendo un quadro del sistema complessivo GSM-GPRS. La presente invenzione è tuttavia collocata nell’ambito GPRS e, come si vedrà, impatta maggiormente il blocco RLC/MAC. Pertanto, della schematizzazione di fig.4 è necessario approfondire la descrizione funzionale di questo solo blocco. Tuttavia, per maggior chiarezza, verranno fomiti brevi cenni sulla funzionalità del blocco RR Management e verrà descritto funzionalmente anche il blocco LLC, perché le funzionalità di questi blocchi hanno un ovvio impatto sulla funzionalità del blocco RLC/MAC. È doveroso far notare come i punti d’accesso GRR e BSSGP posti a cavallo della linea divisoria del Layer 2, forniscano al layer LLC la possibilità di sostenere il dialogo tra il mobile MS ed il nodo SGSN, con l'ulteriore supporto del protocollo BSSGP che sostiene il dialogo attraverso il sottosistema BSS (fig.3).
Il blocco RR Management esegue le procedure di gestione delle risorse radio per il sistema GSM-GPRS, come descritto in GSM 04.07. Le modalità operative di queste procedure, riferite per brevità al solo servizio GPRS, sono sostanzialmente le due seguenti: Packet idle mode, e Packet transfer mode, come descritto in GSM 04.08. Nella modalità idle il mobile MS ascolta il sottocanale di paging del canale PBCCH per monitorare il paging group a cui esso appartiene, ed eventualmente commutare in dedicated mode. Nella modalità Packet transfer il mobile MS chiede alla rete l'allocazione delle risorse fisiche necessarie al trasferimento dei pacchetti, venendo in tal modo ad interagire con le funzionalità dei blocchi RLC/MAC che saranno descritte in seguito.
Per quanto concerne il blocco LLC, al suo interno i blocchi LLE rappresentano delle macchine a stati che controllano un link logico di connessione al tipo di servizio indirizzato dal corrispondente identificatore SAPI. li blocco LLME è pure una macchina a stati che governa le risorse che hanno impatto sulle connessioni logiche individuali al layer LLC. Proseguendo nell’illustrazione del funzionamento, occorre dapprima introdurre un identificatore di connessione DLCI (Data Link Connection Identifier) che viene utilizzato dal layer LLC per l'instradamento (routeing) dei pacchetti al layer di rete; occorre anche definire la costituzione della trama seriale LLC. L’identificatore DLCI è costituito da due identificatori, un primo dei quali è l’identificatore NSAPI, di cui si è già parlato, ed un secondo è un identificatore temporaneo TLLI (Temporary Logicai Link Identifier) che identifica senza ambiguità il link tra un mobile MS ed il nodo SGSN durante una connessione attiva. Per quanto invece concerne la costituzione della trama seriale LLC, la fìg.5 della presente domanda (corrispondente alla fig.3 dello standard GSM 04.64 citato) ne fornisce una rappresentazione. La trama LLC di fig.5 procede temporalmente dall’alto verso il basso e comprende una intestazione FH (Frame Header), seguita da un campo “Information Field” di lunghezza variabile, riservato ai dati che devono essere instradati, seguito a sua volta da una coda FCS (Frame Check Sequence) che contiene l’esito di un checksum sui campi precedenti. L’intestazione FH include un campo indirizzo per l'identificazione del frame ed un campo di controllo che include un opportuno identificatore SAPI.
Con le precisazioni fatte è possibile illustrare il funzionamento del blocco Multiplexer Procedure. Questo blocco, nella modalità di trasmissione trame (ovvero di consegna di una trama LLC ai layers RLC/MAC o BSSGP) genera ed inserisce il campo FCS in coda alle trame LLC, esegue la funzione di cifratura, e provvede a risolvere la contesa del layer LLC tra i diversi blocchi LLE sulla base degli identificatori SAPI. Nella modalità di ricezione trame il blocco Multiplexer Procedure esegue la funzione di decifrazione delle trame LLC avute dal protocollo MAC, assemblando opportunamente l’informazione pacchettizzata, e verificando inoltre la validità del campo FCS: se la trama passa la verifica, essa viene consegnata al blocco LLE appropriato sulla base dell'identificatore DLCI.
Per quanto concerne il controllo del flusso informativo, le procedure LLC, e di conseguenza le procedure RLC/MAC sottostanti, sono modellate sui noti concetti etichettati come HDLC (High level Data Link Control), vedi ISO 4335. Il controllo HDLC utilizza uno schema dì numerazione ciclica per garantire l’integrità della sequenza dei dati trasmessi. Schemi di numerazione indipendenti sono usati per ciascun link logico. Le procedure LLC per il trasferimento dati sono basate su due modalità operative, rispettivamente: Acknowledged ed Unacknowledged. Nella modalità Acknowledged sono coinvolte due entità (peers) partecipanti ad una connessione dati bilanciata, dove ciascuna entità assume la responsabilità per l'organizzazione del suo flusso dati e per le procedure di ricupero degli errori associati alle trasmissioni che essa origina. Ciascuna entità opera sia come sorgente sia come terminazione dei dati, in un link che risulta in tal modo bilanciato consentendo all'informazione di fluire in ambedue le direzioni. Questo modo di operare è conosciuto con l’acronimo ABM (Asynchronous Balanced Mode) e fornisce un servizio affidabile con una consegna ordinata dei pacchetti. Nella modalità Unacknowledged è coinvolta una entità logica che può iniziare le trasmissioni verso una seconda entità (peer) senza che sia stata prima stabilita una connessione logica tra le due entità. In questo caso il layer LLC non garantisce la consegna ordinata dei pacchetti. Gli errori nelle trame ricevute vengono rivelati e le trame errate posso essere scartate o altrimenti consegnate dal layer LLC, che non attiva però alcuna procedura di ricupero degli errori.
Occorre ora esaminare il funzionamento del blocco RLC/MAC, anteponendo un cenno al blocco Physical Link Layer, a proposito del quale occorre ricordare che l’impostazione progettuale del sistema GPRS ha mantenuto come obiettivo la compatibilità con lo standard GSM esistente, in modo da potersi facilmente integrare sfruttando lo stesso canale fisico all’interfaccia Um. Le risorse necessarie al servizio GPRS prevedono un numero aggiuntivo di canali logici che sopportano il trasferimento dei blocchi radio attraverso il canale fisico PDCH. I canali logici GPRS hanno denominazioni e caratteristiche funzionali che ricalcano in grande misura quelle dei canali del GSM tradizionale, pur essendo riferite ai pacchetti. La trasformazione che subisce l'informazione pacchettizzata (dati e segnalazione) nel passaggio da una trama LLC al rivallo fisico, e viceversa, è mostrata in fig.8. Questa figura è fondata sugli insegnamenti delle figure 6 e 7.
La fig.6 (corrispondente alla fig.2 del GSM 3.64) mostra una multitrama di 52 trame GSM, divisa in 12 blocchi radio di quattro trame ciascuno, più due trame T usate per la sincronizzazione e due trame X idle. La multitrama di fig.6 serve a multiplare nel tempo i canali logici GPRS e GSM. Per i blocchi radio sono previste differenti strutture, di cui una per il trasferimento dei dati a pacchetto è visibile in fig.7.
Con riferimento alla fig.7 (corrispondente alla fig.4 del GSM 3.64) si vede che il blocco radio GPRS indicato include i seguenti campi:
- MAC header di 8 bits, contiene campi di controllo che sono differenti per le direzioni uplink e downlink.
- RLC header di lunghezza variabile, idem come sopra.
- RLC data, contiene ottetti relativi ad una o più unità del protocollo LLC.
- BCS (Block Check Sequence), usato per la rivelazione degli errori .
Un blocco simile al precedente, ma con la sola intestazione di MAC header, è previsto per il trasferimento dei messaggi di controllo. Per il servizio GPRS il dettaglio dei diversi campi appartenenti ai blocchi dati RLC uplink/downlink è indicato al punto 10.2 del GSM 4.60, mentre per i blocchi di controllo RLC/MAC il dettaglio è indicato al punto 10.3. Ulteriori indicazioni sono forniti per il dettaglio dei blocchi RLC/MAC attinenti al servizio EGPRS.
La flg.8 (corrispondente alla fig.20 del GSM 3.64) mostra la segmentazione delle trame del layer LLC entro i blocchi radio del layer RLC/MAC. Come si può notare, ciascun blocco radio viene trasportato da quattro Normal bursts consecutivi della multitrama GSM di fig.7. I quattro Normal bursts devono intendersi interleaved su quattro trame TDMA consecutive da 4,615 ms. Il significato dei vari campi è già stato illustrato, eccetto per il campo BH (Block Header) che è un’intestazione di blocco. In figura si può notare un Primary block che, a differenza dei successivi Following blocks, include il campo FH della trama LLC.
Tornando alla fig.4, viene ora accennato il funzionamento del blocco Physical Link Layer. Questo blocco opera al di sopra del layer GSM RF (fig.3) e fornisce il canale fisico PDCH per il trasporto dell'informazione a pacchetto attraverso l'interfaccia radio GSM, rendendo con ciò possibile la comunicazione tra i mobili MS e la rete. Un importante servizio fornito dal suddetto blocco è quello di rendere fisicamente possìbile la condivisione del medesimo canale fisico PDCH (una frequenza ed un time-slot) da parte di più mobili. Il blocco Physical Link Layer è responsabile per:
- La codifica di canale per attuare la cosiddetta Forward Errar Correction (FEC), consentendo la rivelazione e la correzione degli errori nelle parole di codice trasmesse (ricevute) e l'indicazione di parole non correggibili. Vengono ricalcati i passi di codifica GSM ma con una maggiore ridondanza, sono allo scopo previsti per il GPRS quattro schemi di codifica convoluzionale (CS-1....CS4), e nove schemi di modulazione e codifica (CS-1,...CS9) per l’EGPRS, che generano differenti bit-rates.
- L’interleaving di un Blocco Radio su quattro bursts in trame TDMA consecutive. - Le procedure per la rivelazione di una congestione della connessione fisica.
- Il monitoraggio del campo BCS dei blocchi RLC per la rivelazione degli errori.
- Le procedure di sincronizzazione, incluse quelle per l’aggiustamento del Timing Advance nei mobili.
- Le procedure per il monitoraggio della qualità del link radio.
- Le procedure di Celi selection and reselection.
- Le procedure di Power Control dei trasmettitori.
Per quanto concerne i servizi offerti dal blocco RLC/MAC di fig.4, la parte RLC definisce le procedure per una ritrasmissione dei blocchi RLC la cui consegna non ha avuto successo, in accordo ad uno schema selettivo detto ARQ (Automatic Repeat reQuest). La parte MAC definisce le procedure che abilitano una molteplicità di mobili MS a condividere un mezzo comune di trasmissione, che può anche consistere di diversi canali fisici. La funzionalità MAC fornisce un arbitraggio tra la molteplicità di mobili che tentano di trasmettere simultaneamente, provvedendo ad evitare le collisioni. Il protocollo MAC consente ad un singolo mobile di poter usare diversi canali fisici in parallelo. Il blocco RLC/MAC possiede due modalità di funzionamento, rispettivamente dette unacknowledged e acknowledged, di cui si dirà.
Scendendo più nel dettaglio sulle funzioni del blocco RLC/MAC, la parte RLC svolge le seguenti funzioni:
- Esecuzione di primitive d'interfaccia che consentono il trasferimento delle unità di protocollo LLC (LLC-PDU) tra il layer LLC e la parte MAC.
- Segmentazione e riassemblaggio delle unità LLC-PDU entro i blocchi RLC (fig.8). - Esecuzione di procedure di Backward Errar Correction (BEC) che abilitano la ritrasmissione selettiva delle parole di codice incorreggibili.
- Procedure di link adaptation.
Per quanto invece concerne la parte MAC essa svolge le seguenti funzioni:
- Multiplexing efficiente dei dati e della segnalazione di controllo sia in uplink che in downlink, il controllo del multiplexing risiedendo sul lato rete. Il multiplexing essendo governato in downlink da un meccanismo di schedulazione, mentre in uplink dall’allocazione del mezzo a singoli utenti scelti di volta in volta (e.g. in risposta ad una richiesta di servizio).
- Risoluzione della contesa tra i tentativi di accesso al canale, inclusa la rivelazione ed il recupero delle collisioni, nel trasferimento dei pacchetti originato dal mobile. - Schedulazione dei tentativi d'accesso al mobile, incluso l’accodamento dei pacchetti d'accesso, nel trasferimento dei pacchetti terminato verso il mobile.
- Messa in atto dei meccanismi di priorità per l’accesso al canale fisico.
La descrizione del sistema GPRS finora svolta con l’ausilio delle figure da 1 a 8, ha fornito una spiegazione del contesto generale in cui si inserisce l’invenzione in oggetto; occorre ora restringere il contesto alle procedure del protocollo MAC che governano l'allocazione delle risorse, perché è proprio in concomitanza con l’allocazione dinamica delle risorse che l’invenzione in oggetto esplica i suoi effetti. Allocazione dinamica significa che una particolare risorsa trasmissiva, costituita ad esempio da un canale PDCH e da una rispettiva connessioni fisica, viene resa condivisibile a divisione di tempo tra più mobili MS, ciascuno di essi essendo impegnato in una sessione attiva di trasferimento dati, o di segnalazione, attraverso la stessa risorsa trasmissiva congiuntamente assegnata. Il protocollo MAC possiede anche delle procedure per un'allocazione fissa delle risorse, ma queste non hanno un impatto diretto con la presente invenzione. Nel sistema GPRS, come già era stato detto, la ragione primaria di un’allocazione dinamica delle risorse è quella di un utilizzo più esteso dell'interfaccia in aria, con la possibilità che ne deriva di offrire al singolo utente una bit-rate istantanea più elevata che in passato, rispettando i parametri di servizio contrattati. Ulteriori ragioni a favore dell’allocazione dinamica discendono dall’esigenza di esercitare un controllo del traffico allo scopo di saper gestire al meglio le situazioni di congestione e di ottimizzare l’utilizzo delle risorse di rete, accrescendone in entrambi i casi l’efficienza complessiva. Per le finalità di cui sopra il servizio GPRS sopporta la nozione di qualità di servizio QoS (Quality of Service), in termini di: precedenza del servizio (priorità), affidabilità, ritardo nel trasferimento di un pacchetto end-to-end (Gm-to-Gi), e throughput medio e di picco compatibilmente con la classe multi-slot. I parametri di QoS, insieme alla classe A, B, C di funzionamento, e la capacità multi-slot, entrano a far parte di un profilo d’utente reso noto alla rete in fase di attacco GPRS.
li sottoinsieme delle procedure MAC che governa l’allocazione dinamica delle risorse, predispone sul layer fisico delle connessioni temporanee, dette TBF (Temporary Block Flow), che includono dei buffers di memoria per accogliere le code dei blocchi RLC/MAC. Ciascuna connessione TBF consente il trasferimento unidirezionale punto-a-punto dei dati e della segnalazione d’utente entro una cella, tra la rete ed una stazione mobile MS, o viceversa. La messaggistica di controllo per la costituzione/abbattimento di una connessione e l’allocazione/disallocazione di relative risorse fisiche di sostegno, ad esempio dei buffers TBF, contempla diverse opportunità in grado di coprire tutta la casistica prevista nella modalità di packet transfer del sublayer RR. Per semplicità, viene qui di seguito illustrata una casistica molto ristretta di costituzione/abbattimento delle connessioni TBF e delle relative modalità di esercizio. Si può cominciare dalla costituzione di una connessione TBF uplink a seguito di un Packet Transfer originato dal mobile. In tal caso il mobile richiede l’assegnazione di un canale GPRS inviando un messaggio di PACKET CHANNEL REQUEST con incluse le risorse richieste per il trasferimento dei pacchetti alla rete. In caso di accoglienza, la rete risponde con un messaggio di PACKET UPLINK ASSIGNMENT sul canale di controllo che alloca al mobile le risorse richieste per il trasferimento uplink dei pacchetti. Le risorse comprendono uno o più canali PDCH e un valore di TFI (identificatore del TBF). La rete non assegna alcun buffer in direzione uplink (il buffer risiede nel mobile). Alla rete basta la semplice conoscenza del numero di blocchi che un mobile MS intende trasmettere. Si può ora proseguire esaminando la costituzione di una connessione TBF downlink a seguito di un Packet Transfer terminato verso il mobile. In tal caso al termine della procedura di paging, la rete invia al mobile nello stato di Ready un messaggio di PACKET DOWNLINK ASSIGNMENT sul canale di controllo, con acclusa la lista dei canali PDCH allocati per il trasferimento downlink. Un buffer, relativo al downlink TBF, viene appositamente allocato per contenere i blocchi RLC/MAC che devono essere inviati.
Un TBF viene mantenuto in vita solo per la durata del trasferimento di una o più unità di protocollo LLC al preciso scopo di trasferire i corrispondenti blocchi RLC/MAC. La rete assegna a ciascuna connessione TBF un proprio identificatore temporaneo, detto TFI (Temporary Flow Identity). Il mobile MS dovrà assumere che il valore di TFI è unico tra TBF concorrenti in ciascuna direzione, uplink o downlink. Un blocco di dati RLC/MAC si identifica al TBF a cui esso è associato mediante un proprio campo in cui è . scritto l'identificatore TFI, ed un altro campo per indicare la direzione uplink o downlink del blocco. Nel caso in cui il blocco RLC/MAC è riferito ad un messaggio di controllo, è previsto un campo per indicare la direzione di trasmissione del messaggio ed il tipo. Nel caso di allocazione dinamica, l’intestazione di ciascun blocco RLC/MAC trasmesso su di un canale PDCH in direzione “downlink” include un ulteriore campo denominato USF (Uplink State Flag), il quale viene usato dalla rete a guisa di flag per controllare la multiplazione a divisione di tempo di differenti stazioni mobili su di un canale fisico PDCH in direzione uplink. Si può adesso meglio qualificare il già menzionato messaggio di PACKET UPLINK ASSIGNMENT, inviato dalla rete verso i mobili, precisando che esso include: l'identificatore TFI del buffer downlink/TBF che contiene il blocco di controllo che porta questo messaggio, la lista del canali PDCH allocati (time slots), ed un corrispondente valore USF per ciascun canale allocato.
Sono previsti tre bits per il campo USF che consentono di discriminare in modo inequivocabile fino ad otto utenti che condividono un time-slot, pure nel caso limite in cui al singolo buffer TBF vengono associati tutti gli otto time slots di una trama FDMA. Un TBF può essere di tipo “open ended” oppure “closed ended”: nel primo caso l’allocazione avviene su una base temporale illimitata, mentre nel secondo caso l’allocazione è limitata ad un numero prefissato di blocchi RLC, questa seconda opportunità è in grado di offrire un accesso più equo al mezzo trasmissivo durante i più alti carichi del servizio.
La rete, ad ogni periodo di blocco RLC/MAC, itera un meccanismo di schedulazione, non standardizzato, per l’attivazione / disattivazione delle flags USF univocamente associate alle code trasmissive TBF allocate in uplink. Gli USF riservati per ogni POCH allocati a un TBFj uplink sono comunicati al mobile MS nel messaggio PACKET UPLINK ASSIGNMENT o PACKET TIMESLOT RECONFIGURE. Ovviamente l’associazione tra valori USFj e TBF/ sarà tale da evitare interferenze. Il mobile MS esegue il monitoraggio di tutti i blocchi radio RLC/MAC downlink sui PDCH assegnatigli in uplink. Quando rileva la presenza di un USF appartenente al set di quelli assegnatigli, il TBF uplink è abilitato alla trasmissione sul successivo blocco radio uplink del PDCH.
In entrambe le direzioni le risorse TBF sono concesse fin quando ci sono dati accodati sul layer RLC/MAC che devono essere trasmessi. Il rilascio delle risorse uplink viene normalmente iniziato dal mobile che conta a ritroso i blocchi RLC trasmessi, ma può anche essere iniziato dalla rete. Il mobile dopo aver spedito il suo ultimo blocco RLC si pone nell’aspettativa di un messaggio di PACKET UPLINK ACK/NACK da parte della rete. Questo messaggio include un campo RRBP (Relative Reserved Block Period) il cui valore specifica un ben preciso blocco uplink in cui il mobile deve rispondere alla rete inviando un messaggio di PACKET CONTROL ACKNOWLEDGEMENT, e quindi rilasciare la connessione TBF. Dopodiché la rete può riusare 1’identificatore TFI della connessione TBF e la flag USF per un altro mobile MS.
Il meccanismo messo in atto tramite la coppia di campi S/P (Supplementary/Polling) ed RRBP (Relative Reserved Block Period) costituisce una deroga al meccanismo delle flags USF, valida soprattutto per i messaggi dì controllo, nei casi in cui la risposta del mobile debba essere monltorata (polllng) dalla rete, o viceversa. Più precisamente, il campo S/P indica se il campo RRBP è valido o meno; in caso di validità il mobile deve trasmettere il blocco radio sulla trama uplink nel medesimo time-slot in cui è stato ricevuto il campo RRBP nella trama downlink, attendendo un numero di trame TDMA specificate dalla codifica del campo RRBP. Il ritardo è relativo alla prima trama TDMA (N) del blocco downlink che contiene il valore RRBP. Dopo aver ricevuto un blocco RLC/MAC contenente un valore valido per RRBP, il mobile non ha più la necessità di monitorare il campo USF nel blocco RLC/MAC trasmesso in downlink appena prima del blocco radio Uplink riservato al mobile.
Per quanto invece concerne la multiplazione delle stazioni mobili sui canali PDCH che questi condividono nella direzione “downlink", le procedure si semplificano in quanto, contrariamente a quanto avviene per il trasferimento in uplink, non è più necessaria l’intermediazione di apposite flags del tipo USF. La multiplazione viene infatti effettuata direttamente da uno scheduler che sceglie di volta in volta il downlink TBF che dovrà trasmettere un blocco RLC/MAC sul canale PDCH corrente. Lo scheduler utilizza allo scopo un algoritmo di schedulazione, non standardizzato, che assegna il permesso d’accesso ai singoli TBF sulle risorse fisiche (PDCH), identificando i TBF tramite il relativo TFI.
Il rilascio di una connessione TBF downlink è iniziato dalla rete che spedisce un blocco dati RLC con il campo FBI (Final Block Indicator) al valore logico vero, e con un valore valido nel campo RRBP. Ciò consente di avviare un polling del mobile per la ricezione di un messaggio finale di PACKET DOWNLINK ACK/NACK. Due appositi timers segnalano i differenti istanti in cui l'assegnazione del TBF corrente perde di validità, in modo indipendente per il mobile e la rete. Immediatamente dopo la perdita di validità il corrente identificatore TFI può essere riutilizzato dalla rete.
Problemi aperti nell'arte nota
La precedente carrellata sul sistema GPRS ha messo in luce l'assenza di una standardizzazione nel funzionamento dello scheduler che pianifica la trasmissione dei blocchi RLC/MAC (ma anche LLC) in entrambe le direzioni di trasmissione, sfruttando gli identificatori TFI nella schedulazione downlink e le flags USF nella schedulazione upllnk. La pianificazione dovendo inoltre tener conto del polling nelle due direzioni. Ciò significa che lo standard GSM lascia alla libera iniziativa dei costruttori la ricerca di un algoritmo proprietario meglio adatto allo scopo.
La schedulazione delle trasmissioni è solo uno degli elementi utili nel raggiungimento della QoS negoziata, gli altri elementi sono la procedura di controllo sul’ammissione delle connessioni (admission control), e la politica di sagomatura (shaping) del traffico. Le problematiche ingenerate dalla QoS sono state storicamente affrontate e diversamente risolte nelle reti fisse a commutazione di pacchetto. In questo settore la maggior parte degli studi riguarda le reti B-ISDN (Broadband Integrated Services Digital Network), largamente basate sulla tecnica ATM (Asynchronous Transfer Mode).
L’invenzione che verrà descritta non intende risolvere il problema di come soddisfare al meglio la qualità di servizio QoS negoziata dai diversi utenti attivi entro una cella, ma bensì si rivolge prevalentemente all’attività di schedulazione delle risorse sul livello fisico, con l’intento di correggere alcuni difetti di allocazione presenti nell'arte nota. La nuova schedulazione prescinde da considerazioni sulla QoS, anche se indirettamente può avere impatto su uno o più parametri di QoS. Ciò posto, l’attività di schedulazione, sia in ambito ATM sia GPRS, consiste nell’assegnazione di un ordine nel trasferimento dei dati a differenti utenti, con l’intento dì soddisfare il servizio contrattato. Nella fattispecie della presente invenzione, il servizio contrattato corrisponde al numero di time-slots della classe multi-slot. Questa limitazione fa si che l'invenzione impatti il solo protocollo RLC/MAC posto a diretto contatto con il livello fisico.
L’articolo di Jonathan Sau e Chris Sholefield, intitolato “Scheduling and Quality of Service in thè General Packet Radio Service”, pubblicato da IEEE nel Gennaio 1998, mette in luce alcune differenti problematiche che gli algoritmi di schedulazione incontrano in un contesto ATM e GPRS. Le differenti problematiche nascono dal fatto che nel GPRS, a differenza di ATM, la schedulazione è applicata al trasferimento full-duplex dei dati attraverso un'interfaccia in aria. Le caratteristiche dell’interfaccia in aria riflettono il particolare mezzo trasmissivo costituito dal canale radio. Il funzionamento di una siffatta interfaccia ha richiesto la specificazione di un protocollo ad hoc, precisamente il layer RLC/MAC, che non trova riscontro nelle interfacce delle reti ATM. È utile menzionare alcuni punti riportati al paragrafo 3.1 dell’articolo citato. Recitando testualmente: La schedulazione nel GPRS differisce da ATM in alcuni aspetti:
1. Sull’interfaccia in aria il protocollo MAC è impiegato sia per la risoluzione delle contese nell'accesso ad un canale a pacchetto, sia per l'allocazione delle risorse.
In aggiunta ai blocchi RLC/MAC per i dati è necessario anche schedulare i blocchi per i messaggi di segnalazione.
2. Questo punto riguarda la necessità di dover schedulare la trasmissione di alcuni messaggi MAC di segnalazione prima che sia nota la classe di ritardo, ciò significa che i suddetti messaggi devono godere della massima priorità.
3. Sussistono delle dipendenze tra la schedulazione dei messaggi MAC di segnalazione nella direzione uplink e downlink. (Questo fatto risulta da quanto già detto circa l'utilizzo dei campi S/P e RRBP).
4. La schedulazione deve tenere conto della capacità multi-slot di un mobile. Ad esempio, se otto blocchi radio RLC/MAC devono essere spediti ad un mobile che è capace di usare solo due time-slots di una singola trama TDMA, il sottosistema BSS deve spedire solo due blocchi alla volta nell’arco della block duration, anche se ci sono più time-slots disponibili.
La conclusione che si può trarre è che i metodi di schedulazione finora sviluppati per le reti ATM non sono immediatamente traslabili al sistema GPRS, avvalorando la sostanziale novità che riveste il servizio a commutazione di pacchetto nelle reti radiomobili. Un serio tentativo di adattare due metodi di schedulazione tipicamente ATM al nuovo contesto GPRS è descritto nell’articolo, già precedentemente menzionato, di Jonathan Sau e Chris Sholefield, Un primo dei due metodi è denominato SPS (Static Priority Scheduling) ed un secondo MED (Modified Earliest Deadline). Per brevità verrà esaminato solo il primo metodo, come rappresentativo delle problematiche che i numerosi metodi di schedulazione di derivazione ATM si trascinano. Il metodo SPS si prefigge di soddisfare al meglio i parametri QoS negoziati per il ritardo end-to-end. Per ciascuna direzione di trasmissione sono approntati quattro buffers per ospitare le code dei blocchi dati RLC/MAC, ogni coda è associata ad una delle quattro classi di ritardo previste nello standard GPRS, più basso è il numero assegnato alla coda e più piccolo è il ritardo associato. Alle quattro code ne viene aggiunta una quinta per i messaggi di segnalazione, a cui viene assegnato il numero più basso. A ciascuna coda viene assegnata una priorità fissa (statica), tanto maggiore quanto minore è il numero assegnato alla coda. I messaggi che pervengono allo scheduler sotto forma di blocchi RLC/MAC sono appesi alla coda che corrisponde alla loro classe di ritardo. Ciascun messaggio viene allocato fino al numero di time-slots specificati nella classe multi-slot del mobile che trasmette il messaggio. In ciascun passo di schedulazione, della durata di 4 trame TDMA, le code vengono servite in ordine di numero crescente, ed entro ciascuna coda i messaggi sono serviti in modalità FIFO (First-ln-First-Out). Quanto appena detto esige il seguente chiarimento: quando un successivo time-slot è disponibile, un buffer di classe / riceverà il servizio solo se tutti i buffers di classe j con (j < i) sono vuoti. I due metodi citati sono stati testati con dei modelli di traffico che comprendono una variegata casistica tipicamente Internet, in cui sono rappresentati pacchetti di varie dimensioni aventi differenti frequenze di trasmissione. I risultati comparativi di queste simulazioni non rivestono alcuna importanza per le finalità dell'invenzione, in quanto, diversamente dagli obiettivi dell'invenzione, i due metodi testati sfruttano due diverse modalità di schedulazione accomunate da un ordine di servizio delle code posto in relazione prioritaria con uno o più parametri QoS. Questi metodi di derivazione ATM ragionano in termini di messaggi e sembrano così ispirarsi a protocolli ben più alti del livello fisico. Gli stessi entrano inevitabilmente in crisi quando l'obiettivo della schedulazione è meno legato alla QoS e più vicino alla meccanica di assegnazione dei singoli time-slots. Prendendo come esempio lo scheduler SPS, quando il parametro QoS di ritardo end-to-end non viene considerato, tutte le code prioritarie degenerano in un’unica coda, e lo scheduler viene a funzionare come un semplice scheduler FIFO. È dimostrato che uno scheduler FIFO entra in crisi se il link è intensamente utilizzato, questo perché quando ci sono molti pacchetti di piccole dimensioni che attendono a lungo dietro pacchetti di grosse dimensioni il ritardo medio complessivo risulta statisticamente aumentato. L’analisi di come degenerino i diversi algoritmi di schedulazione di derivazione ATM una volta deprivati degli obiettivi sulla QoS è solo uno sterile esercizio, perché gli stessi sono stati pensati proprio per raggiungere gli obiettivi di qualità. Una simile analisi potrebbe tuttavia dimostrare l’inadeguatezza di questi algoritmi nel trattare in modo equo i diversi mobili MS nello sfruttamento delle risorse di livello fisico diversamente allocate. A tal fine è molto più producente analizzare il comportamento di un algoritmo di schedulazione largamente indipendente dagli obiettivi di qualità, e che è da annoverarsi storicamente tra i primi e tra i più utilizzati nei diversi settori delle applicazioni elettroniche, vale a dire l'algoritmo detto di Round Robin. Nella sua forma più semplice, uno scheduler Round Robin assegna a turno a ciascun utente il permesso di accedere ad una risorsa; una volta terminato il giro il permesso ritorna al primo utente, e cosi via. Il vantaggio che ne deriva è quello della semplicità e della garanzia di poter fornire un certo throughput a ciascun utente. Apparentemente lo scheduler Round Robin sembra dotato di equità, in quanto tratta tutti gli utenti allo stesso modo; questo può essere vero in alcuni contesti operativi delle reti fisse, ma gli esempi che seguono dimostreranno che in ambito GPRS l’equità non viene generalmente mantenuta.
La tabella in fig.9a mostra uno scenario semplificato in cui tre mobili MS identificati da altrettante connessioni TBF1, TBF2, e TBF3 condividono la risorsa radio assegnata al servizio GPRS costituita da 3 degli 8 time-slots TS numerati da 0 a 7. Al mobile TBF1 è assegnato il TS 1, al mobile TBF2 sono assegnato i TS 1 e 2, ed al mobile TBF3 sono assegnati i TS 1 , 2 e 3. La particolare allocazione di fig.9a non deve essere considerata eccezionale, essa rispecchia una situazione di ampia generalità in cui alcuni time-slots GPRS sono maggiormente sfruttati rispetto ad altri. Lo scheduler Round Robin assegna a ciascun TBF allocato ad un time-slot la stessa probabilità di accedere al canale radio, valendo la seguente relazione:
(1)
La tabella in fig.9b mostra appunto la probabilità (1) per ciascun TBF e per ciascun TS. Un parametro che meglio aiuta a comprendere l'equità dello scheduler nel garantire l'accesso alle risorse condivise è la frequenza relativa di schedulazione di ciascun TBF. Questo parametro, noto con l’acronimo RSF (Relative Scheduling Frequency), è fornito per lo scheduler Round Robin dalla seguente espressione:
(2)
La tabella in fig.9c ed il corrispondente grafico a torta di fig.9d mostrano l’andamento della (2) per ciascun TBFi. Come si può notare, il parametro RSF non è proporzionale al numero relativo di time-slots complessivamente allocati ad un TBFi, ma bensì è inferiore alla quota proporzionale per TBF1 e TBF2 e superiore per TBF3. Se ci fosse stata proporzionalità i valori di RSF sarebbero stati quelli indicati in fig.llc. Ciò significa che in un contesto multi-slot, in cui gli obiettivi di QoS non vengano inizialmente presi in considerazione, lo scheduler Round Robin penalizza I mobili che hanno a disposizione meno risorse condivise, a favore di quelli più abbienti.
Le tabelle delle figure 10a, 10b, 10c ed il grafico di fig.10d sono riferite ad uno scenario che differisce da quello delle figure 9a ÷ 9d per il fatto che due utenti hanno uguali risorse condivise mentre il terzo ne possiede il doppio. La precedente situazione penalizzante sul parametro RSF viene riconfermata in questo nuovo scenario per i due utenti meno abbienti.
La rete effettua solo un controllo che non venga superato un certo numero di utenti per time-slot allocato al servizio GPRS. La rete è quindi in grado di allocare al singolo mobile MS un numero di time-slots, compresi entro la sua capacità multi-slot, cercando di soddisfare una certa bit-rate di picco, ma non garantisce comunque al mobile una bit-rate media, benché il throughput medio sia un parametro previsto da un'apposita classe di QoS. La bit-rate media per una connessione TBFi è proporzionale al suo parametro RSFi.
L'arte nota costituita dallo scheduler Round Robin non aiuta di certo a risolvere questo problema, anzi, privilegiando la frequenza relativa di schedulazione (RSF) di quegli utenti che hanno più canali allocati, non fa che abbassare la bit-rate media degli utenti con poche risorse condivise a favore dei primi. Quanto detto trova conferma immediata dal confronto tra i grafici a torta delle figure 9d e 10d, in cui si può vedere come l’area cumulativa TBF1 TBF2 corrispondente ai parametri RSFi delle due connessioni meno abbienti, venga compressa allaumentare della disparità nella ripartizione dei time-slots. Avendo assunto il parametro RSFi come indicativo della bit-rate media (a parità di schema di codifica e di condizioni radio del canale), le considerazioni di cui sopra dimostrano che lo scheduler Round Robin, assegnando l'uso del canale radio in corrispondenza di un generico time-slot j in modo equiprobabile tra i TBF/ che condividono il time-slot j, non è affatto equo in un contesto GPRS, e di conseguenza appare inadeguato nel tentativo di garantire che il parametro RSF sia proporzionale al numero di TS allocati alla connessione TBF/.
Scopi dell'Invenzione
Pertanto scopo della presente invenzione è quello di superare gli inconvenienti dei metodi di schedulazione secondo l’arte nota, ove applicati ai time-slots di una trama radio TDMA, e di indicare un procedimento di schedulazione dei permessi di trasmissione avente caratteristiche di equità nello sfruttamento delle risorse condivise, nel tentativo di garantire una RSF ; proporzionale al numero di TS negoziati dalla connessione i con la rete, cioè una RSF; proporzionale alla velocità di trasmissione di picco negoziata.
Altro scopo dell'Invenzione è quello di indicare una variante di procedimento che, pur mantenendo le suddette caratteristiche di equità, cerca di garantire una RSF; proporzionale al numero di TS richiesti dal mobile alla rete al momento dell’instaurazione dalla connessione /, cioè una RSF / proporzionale alla velocità di trasmissione di picco richiesta e non altrimenti solo negoziata.
Sommario dell’invenzione
Per conseguire tali scopi la presente invenzione ha per oggetto un procedimento di schedulazione dei permessi di trasmissione, come descritto nella rivendicazione 1. Con questo insegnamento, risulta per il parametro RSF/:
(3)
Dalla rivendicazione 1 emerge una sostanziale differenza tra il procedimento dell'invenzione ed il metodo Round Robin, e precisamente: mentre la schedulazione secondo il metodo Round Robin utilizza un meccanismo rigidamente deterministico per assegnare alle code trasmissive i permessi per l’uso esclusivo dei time-slots, meccanismo che prevede di assegnare a rotazione tra le code trasmissive che condividono i time-slots i permessi disponibili in ciascun passo elementare di schedulazione, la schedulazione secondo il procedimento dell'invenzione si fonda sull'assegnazione di più permessi possibili tra quelli disponibili in ciascun passo elementare di schedulazione ad una coda trasmissiva scelta in modo del tutto casuale.
La diversità nei presupposti di base dei due metodi di schedulazione si riflette sulle caratteristiche di comportamento degli stessi. Più precisamente: il meccanismo di schedulazione del metodo Round Robin è talmente elementare da risultare insensibile a quei fattori che possono limitare il numero di permessi di trasmissione assegnati ad una coda trasmissiva; come ad esempio: la lunghezza della coda dei permessi di trasmissione, il numero massimo di permessi assegnabili, il numero di permessi già assegnati, il numero di pacchetti ancora da trasmettere, etc. Ma quello che in prima analisi potrebbe sembrare un vantaggio del metodo Round Robin, è in realtà il suo tallone d’Achille proprio perché la rigidità del meccanismo di schedulazione non contempla alcuna variazione delle probabilità di accesso ai time-slots in situazioni altrimenti penalizzanti. Non altrettanto risulta per il procedimento dell’invenzione, il quale, cercando di spingere al massimo l’assegnazione dei permessi alla coda scelta casualmente, viene presto a scontrarsi con le limitazioni fisiche imposte dal sistema. Ciononostante, il fatto di privilegiare l’intensità di schedulazione relativa costituisce, come si vedrà tra breve, il punto di forza del procedimento inventivo.
Ulteriore oggetto d’invenzione è una variante di procedimento, come descritto in una rivendicazione dipendente. Con l’insegnamento aggiuntivo fornito dalla variante, risulta per il parametro RSF/var:
(3')
Anche nel caso della variante il procedimento di schedulazìone cerca di rispettare il requisito di proporzionalità del parametro RSFivar con la velocità di trasmissione di picco, ma utilizza un peso Wi per dare al TBFi una maggiore priorità, onde soddisfare il requisito sulla velocità richiesta, solitamente più alta di quella negoziata.
Vantaggi dell’invenzione
Il procedimento di schedulazìone secondo l’invenzione, grazie alla scelta casuale delle code trasmissive unitamente alla particolare modalità di assegnazione dei permessi, non avvantaggia nessuna coda a discapito delle altre e consente ai mobili un accesso ai time-slots condivisi nella trama radio, assai più equo di quello ottenibile con i metodi dell’arte nota, proprio perché il numero di permessi assegnati a ciascuna coda trasmissiva risulta mediamente proporzionale secondo la (3) alla velocità di trasmissione di picco negoziata da a ciascun mobile con la rete. La media è da intendersi estesa su più passi di schedulazìone.
Il vantaggio di una maggior equità appare chiaramente dal confronto delle figure 9a 9d dello scheduler Round Robin con le corrispondenti figure 11a 11d di uno scheduler che funziona secondo il procedimento della presente invenzione, i due gruppi di figure riferendosi ad una comune tabella di allocazione rappresentata nelle figure 9a e 11a. Il confronto visivo dei due diagrammi a torta deile figure 9d e 11d mostra chiaramente come in fig.11d dello scheduler proposto le aree rappresentative dei valori di RSF dei TBF1 e 2 risultino più estese delle corrispondenti aree in fig.9d dello scheduler Round Robin, causando una diminuzione dell’area di TBF3. La tabella in fig.11c mostra che per lo scheduler proposto i valori di RSFi rappresentativi della frequenza di schedulazìone relativa calcolati secondo la (3) sono proporzionali al numero di time-slots allocati a ciascun TBFi, attraverso una costante di proporzionalità di 1/6. In parole equivalenti, ciò significa che i permessi di trasmissione vengono assegnati ai mobili in modo proporzionale alla velocità di trasmissione di picco negoziata da ciascun mobile, diversamente da quanto appare dalla tabella in fig.9c relativa allo scheduler Round Robin. La tabella in fig.9c mostra che per lo scheduler Round Robin i valori di RSFi sono invece proporzionali alla singola probabilità di accesso ai time-slots, attraverso una costante dì proporzionalità di 1/3. Ciò significa che i permessi di trasmissione vengono assegnati ai mobili senza rispettare il criterio della proporzionalità alla velocità di trasmissione di picco negoziata da ciascun mobile. La tabella in fìg.11b relativa allo scheduler proposto, mostra invece che in corrispondenza di ciascun time-slot TS la probabilità di accesso al TS non è ugualmente distribuita tra tutti i buffers TBFi allocati su quel TS, diversamente da quanto appare in fig.9b relativa allo scheduler Round Robin, li confronto tra queste due ultime tabelle mostra che nello scheduler dell'invenzione viene alzata la probabilità di accesso al time-slot 1 del TBF1, meno abbiente, a discapito della probabilità di accesso al medesimo time-slot da parte del TBF3, più abbiente. In pratica viene tolto qualcosa agli utenti “ricchi” per darla a quelli “poveri”. Identiche conclusione si possono trarre dal confronto delle figure 10a ÷ 10d dello scheduler Round Robin con le corrispondenti figure 12a ÷ 12d dello scheduler proposto.
Il comportamento evidenziato per il procedimento di schedulazione secondo l'invenzione, rimedia alla mancata accortezza della rete quando alloca inizialmente le risorse al singolo utente senza tener conto della situazione complessiva degli altri utenti sui diversi time-slots. Il procedimento dell’invenzione ha in sé un automatismo in grado di variare la probabilità di accesso ai time-slot condivisi, nella direzione di correggere allocazioni penalizzanti. Questo automatismo viene ulteriormente perfezionato dalla variante di procedimento, al fine di consentire una maggiore velocità di trasmissione di quei mobili sottoposti dalla rete ad una politica di allocazione delle risorse altrimenti penalizzante.
Breve descrizione delle figure
Ulteriori scopi e vantaggi della presente invenzione risulteranno chiari dalla descrizione particolareggiata che segue di un esempio di realizzazione della stessa e dai disegni annessi dati a puro titolo esplicativo e non limitativo, in cui:
- In fig.1 è indicata una schematizzazione molto generale di una rete telefonica integrata che include delle reti GPRS.
- In flg.2 è indicata l'architettura funzionale di una rete GSM che sopporta il servizio GPRS.
- In fig.3 è indicato un “Transmission Piane” che include gli stacks di protocollo previsti alle principali interfacce di fig.2.
- In fig.4 è rappresentata l'architettura dei protocolli previsti in alcuni layers del Transmission Piane di fig.3 impegnati nella comunicazione tra I mobili MS ed il nodo SGSN.
- Nelle figure da 5 a 8 sono indicati i formati di alcuni flussi informativi seriali che attraversano i layers di fig.4.
- Nelle figure 9a 9d e 10a 10d sono indicati due gruppi di tabelle inerenti al funzionamento di uno scheduler deH’arte nota.
- Nelle figure 11a 11d e 12a ÷ 12d sono indicati due gruppi di tabelle inerenti al funzionamento di uno scheduler secondo la presente invenzione.
- In fig.13 è indicata una schematizzazione a blocchi di un sottosistema BSS secondo la presente invenzione.
- in fig.14 è indicata una schematizzazione a blocchi del blocco BSC di fìg.13 con il dettaglio dei segnali scambiati tra i vari blocchi inclusi nel blocco BSC.
- In fig.15 è indicata la struttura dei buffers e dei registri compresi nel blocco TBF MANAGER di fig.14.
- In fig.16 è indicata la struttura dei buffers e dei registri compresi nel blocco Downlink Scheduler di fig.14.
- In fig.16a è indicato un registro utilizzato dal blocco Downlink Scheduler di fig.16. - In fìg.17 è indicata la struttura dei buffers e dei registri compresi nel blocco Uplink Scheduler di fig.14.
- In fig.18 è rappresentata una particolare modalità di riempimento di un generico buffer UL_Buffer TS{.) di fìg.17.
- Nelle figure 19a, 19b e 19c è rappresentato un diagramma di flusso molto generale del procedimento di schedulazione della presente invenzione.
- Nelle figure 20a e 20b è rappresentato un diagramma di flusso relativo al riempimento dei buffers inclusi nel blocco Downlink Scheduler di fìg.16.
- Nelle figure 21a e 21 b è rappresentato un diagramma di flusso relativo alle decisioni prese dal blocco Downlink Scheduler di fig.16.
- Nelle figure 22a e 22b è rappresentato un diagramma di flusso relativo al riempimento dei buffers inclusi nel blocco Uplink Scheduler di fìg.17, nel rispetto della modalità di riempimento indicata in fig.18.
- In fig.23 è rappresentato un diagramma di flusso relativo alle decisioni prese dal blocco Uplink Scheduler di fig.17.
- Nelle figure 24a e 24b è rappresentato un diagramma di flusso relativo alle decisioni prese dal blocco TBF MANAGER di fig.15.
- Nelle figure 25a, 25b, e 25c è visibile lo stato dei buffers e dei registri inclusi nei blocchi TBF MANAGER, Downlink Scheduler, e Uplink Scheduler delle figure 15, 16, e 17 in corrispondenza di un esempio pratico di attuazione del procedimento di schedulazione della presente invenzione.
- In fig.26 è riportata una sequenza di tabelle che mostra l’evoluzione temporale dello stato dei buffers e dei registri inclusi nei blocchi Downlink Scheduler, e Uplink Scheduler delle figure 25b e 25c dell'esempio pratico di attuazione.
Descrizione dettagliata di una forma preferita di realizzazione dell’Invenzione Le figure da 1 a 12 sono già state commentate. In fig.13 è visibile un blocco BSS connesso a dei blocchi MS. Il blocco BSS include un blocco BSC e dei blocchi BTS. Il blocco BSC include a sua volta un blocco denominato LLC Layer, un blocco Physical Layer, un blocco TBF MANAGER, ed un blocco Scheduler. I blocchi BTS (Base Transceiver Station) rappresentano delle stazioni radio base GSM-GPRS connesse mediante un’interfaccia in aria Um ad una pluralità di stazioni mobili MS (Mobile Station), e mediante un'interfaccia Abis al blocco controllore di stazione BSC (Base Station Controller). Quest’ultimo è connesso al blocco SGSN di fig.2 mediante un’interfaccia Gb. Il blocco LLC Layer ha una connessione bidirezionale con il blocco TBF MANAGER che, a sua volta ha una connessione bidirezionale con il blocco Scheduler e con il blocco Physical Layer. La schematizzazione di fig.13 è volutamente generale perché il suo scopo è quello di localizzare l’invenzione entro il sistema. Come si vedrà, l’invenzione è localizzata nel blocco Scheduler, ma anche il blocco TBF MANAGER è chiamato in causa. Per la descrizione del funzionamento degli altri blocchi e delle interfacce si rimanda alle relative specifiche del GSM nella fase 2+.
Con riferimento alla fig.14, si nota che il blocco LLC Layer invia al blocco TBF MANAGER la seguente informazione:
- dei trame LLC per delle connessioni bufferizzate DL_TBF allocate per il trasferimento downlink;
- dei valori di conteggio CV (Countdown Value) indicativi dello stato di connessioni bufferizzate UL_TBF allocate per il trasferimento uplink;
- degli identificatori TLLI e la classe multì-slot dei mobili ammessi al servizio GPRS.
A sua volta il blocco LLC Layer riceve dal blocco TBF MANAGER, i trame LLC per le connessioni uplink. Il blocco TBF Manager invia al blocco Physical Layer i blocchi radio RLC/MAC con l'USF associato multiplati per TDMA su ciascun time slot. Il blocco Physical Layer invia al blocco TBF Manager i blocchi radio RLC/MAC provenienti dalle connessioni uplink.
Il blocco TBF MANAGER trasmette al blocco Scheduler la seguente informazione: - un valore DL_NumBlocks_TBF_transmit per ciascuna connessione DL_TBF;
- un valore UL_NumBlocks_TBF_transmit per ciascuna connessione UL_TBF;
- Richieste specifiche, ad esempio per il polling o per l’invio di blocchi di controllo downlink;
- un'informazione tabellare con l’indicazione dei time-slots della classe multislot assegnati a ciascuna connessione DL_TBF e UL_TBF (indicate dal loro comune identificatore TFI), ed i valori delle flags USF da utilizzare in downlink.
Il blocco Scheduler comprende un blocco Downlink Scheduler ed un blocco Uplink Scheduler. Il blocco Downlink Scheduler ha una connessione con il blocco sottostante e genera un'Informazione di schedulazione DLJista che viene inviata al blocco TBF MANAGER per la schedulazione delle trasmissioni dei blocchi RLC/MAC in downlink. Similmente il blocco Uplink Scheduler genera un'informazione di schedulazione UPJista che viene inviata al blocco TBF MANAGER per la schedulazione delle trasmissioni dei blocchi RLC/MAC in uplink.
Con riferimento alla fig.15, si nota che il blocco TBF MANAGER include una memoria ALLOC_Array; n buffers DL_TBF1, DL_TBF2. DL_TBFn; n buffers UL TBF1, UL_TBF2. UL_TBFn; ed i seguenti registri: DL_NumBlocks_TBF_transmit, UL_NumBlocks_TBF_transmit, DL_ista)tstep-1), ed UL_lista(tstep - 1). La memoria ALLOC_Array contiene l'informazione tabellare che verrà fornita allo Scheduler downlink ed allo Scheduler uplink. Un buffer DL_TBFi con (i = 1. n) è allocato ad un mobile i che ottiene l'accesso al servizio GPRS nella sua capacità multi-slot, e serve per contenere la coda dei blocchi RLC/MAC, sia dati sia di controllo, che la rete intende trasmettere downlink verso il mobile /. Il registro DL_NumBlocks_TBF_transmit ha n posizioni quanti sono i buffers DL_TBF a cui esso è associato, in ciascuna posizione i di questo registro viene memorizzato il numero corrente di blocchi RLC contenuti nel buffer DL_TBFi. Un buffer UL_TBF/'con (/' = 1. n) è allocato ad un mobile i che ottiene l’accesso al servizio GPRS, e serve per contenere il numero C Vi dei blocchi RLC/MAC, sia dati sia di controllo, che il mobile i intende trasmettere in uplink verso la rete. Il registro UL_NumBlocks_TBF_transmit ha n posizioni quanti sono i buffers UL_TBF a cui esso è associato, in ciascuna posizione i di questo registro viene memorizzato il contenuto CVi del buffer UL_TBFi.
In fig.15 si nota una disparità di raffigurazione entro il blocco TBF MANAGER tra i buffers DL_TBFi ed i buffers UL_TBFi. Il buffer DL_TBFi contiene fisicamente i blocchi radio RLC/MAC che devono essere trasmessi quando il TBFi è schedulato. Il buffer UL_TBFi contiene invece un’indicazione del numero CVi di blocchi radio RLC/MAC, che l’uplink TBFi intende trasmettere. Tale informazione è necessaria all’uplink scheduler per poter operare.
I registri DL_ista)tstep-1) ed UL_ista)tstep-1) hanno ciascuno N_TS posizioni, quanti sono i time-slots per trama TDMA correntemente assegnati al servizio GPRS. In ciascuna posizione j del registro DL_ista)tstep-1) viene memorizzato il valore dell’identificatore TFIi della connessione DL_TBFi e/o UL_TBFi schedulata per la trasmissione in corrispondenza del time-slot attuale. In ciascuna posizione j l’identificatore TFI può essere accompagnato da un valore valido del campo RRBP utilizzato per il polling. In ciascuna posizione j del registro UL_ista)tstep- 1) viene memorizzato il valore della flag USF che verrà inserita nell’omonimo campo del blocco RLC/MAC di cui sopra. Le modalità di utilizzo delle informazioni contenute nei registri DL_ista)tstep- 1) ed UL_ista)tstep-1) da parte del blocco TBF MANAGER verranno illustrate sommariamente con riferimento alla fig.19c, ed in maggior dettaglio con riferimento alle figure 24a e 24b.
Con riferimento alla fìg.16, si nota che il blocco Downlink Scheduler include dei buffers e dei registri. I registri sono ì seguenti: DL_NumBlocks_TBF_transmìt, DL_NumBlocks_TBF_Scheduled, LEN_DL_Buffer_TS, LEN_DL_Buffer_sgn_TS, e DLJista. I registri DL_NumBlocks_TBF_transmlt e DL_NumBlocks_TBF_Scheduled hanno n posizioni; il primo di essi è già stato menzionato, la sua ripetizione serve per rendere indipendente il funzionamento del Downlink Scheduler dal blocco TBF MANAGER. I rimanenti registri hanno N_TS posizioni, quanti sono i time-slots per trama TDMA correntemente assegnati al servizio GPRS. I buffers inclusi sono i seguenti: un primo gruppo di buffers DL_Buffer_sgn_TS(1) . DL_Buffer_sgn_TS(N_TS); un secondo gruppo di buffers DL_Buffer_TS(1) . DL_Buffer_TS(N_TS); ed un buffer singolo MN_FIFO_Requests. Ciascun buffer del primo e del secondo gruppo è biunivocamente associato ad un time-slot correntemente allocato per il servizio GPRS. Il buffer MN_FIFO_Requests è un buffer che memorizza in ordine d’arrivo le richieste prioritarie pervenute dal blocco TBF MANAGER per una data connessione DL TBFi o UL_TBFi . Le richieste contengono l'identificatore TFI, eventualmente accompagnato da un valore valido del campo RRBP, dei blocchi di controllo contenenti messaggi di segnalazione. Le suddette richieste possono anche contenere degli identificatori TFI per dei blocchi di controllo di comodo, detti “Dummy", relativi ad un messaggio che la rete invia al mobile quando desidera impegnare la connessione downlink ma non ha blocchi effettivi da trasmettere. Il buffer MN_FIFO_Requests viene letto come una memoria FIFO e le richieste lette vengono man mano inserite nei buffers DL_Buffer_sgn_TS del primo gruppo, seguendo una strategia di riempimento che verrà indicata in dettaglio illustrando la fig.20a. Ciascun buffer DL_Buffer_TS(i) del secondo gruppo contiene le code degli identificatori TFI di uno, o più, buffers DL_TBF schedulati per la trasmissione downlink dei successivi blocchi RLC, seguendo una strategia di riempimento che verrà indicata in dettaglio illustrando la fig.20b. Ciascuna posizione j del registro DLJista contiene l'informazione entrata per prima nel buffer DL_Buffer_sgn_TS(i) o DL_Buffer_TS(i) quando la prima è mancante, come illustrato sommariamente con riferimento alla fig.19a, ed in maggior dettaglio con riferimento alle figure 21 a e 21 b. Ciascuna posizione /-esima del registro DL_NumBlocks_TBF_Scheduled contiene il numero di blocchi RLC che è già stato schedulato per il buffer DL_TBF/. Ciascuna posizione j del registro LEN_DL_Buffer_TS contiene il numero corrente di identificatori TFI contenuti nel buffer DL_Buffer_TS(i). Ciascuna posizione j del registro LEN_DL_Buffer_sgn_TS contiene il numero corrente di identificatori TFI contenuti nel buffer DL_Buffer_sgn_TS(i).
Con riferimento alla fig.16a, si nota un registro denominato MEM_command_DL_to_UL avente N_TS posizioni il cui scopo è quello di memorizzare l’occorrenza dei valori validi del campo RRBP prelevati al passo di schedulazione corrente dagli N_TS buffers DL_Buffer_sgn_TS. In corrispondenza di un valore valido di RRBP per una j-esima connessione TFI/<' >viene scritto un codice VALID/ nella /-esima posizione del registro MEM_command_DL_to_UL da utilizzarsi quale comando da trasferire allo Scheduler uplink per riservare una posizione libera nel corrispondente /-esimo buffer utilizzato per la schedulazione dei permessi di trasmissione uplink. In assenza di scrittura, la j-esima posizione del registro MEM_command_DL_to_UL rimane nella condizione di EMPTY. Il detaglio sul trattamento del registro in questione è illustrato con le figure 21 a e 23.
Con riferimento alla fig.17, si nota che il blocco Uplink Scheduler include dei buffers e dei registri. I registri sono i seguenti: UL_NumBlocks_TBF_transmit, UL_NumBlocks_TBF_Scheduled, LEN_UL_Buffer_TS, e UL_ista. I registri UL_NumBlocks_TBF_transmit ed UL_NumBlocks_TBF_Scheduled hanno n posizioni; il primo registro è già stato menzionato, la sua ripetizione serve per rendere indipendente il funzionamento dell’Uplink Scheduler dal blocco TBF MANAGER. I rimanenti registri hanno N_TS posizioni, quanti sono i time-slots per trama TDMA correntemente assegnati al servizio GPRS. I buffers inclusi sono quelli di un terzo gruppo UL_Buffer_TS{1) . UL_Buffer_TS(N_TS), ciascuno essendo biunivocamente associato ad un time-slot correntemente allocato per il servizio GPRS. Rispetto allo Scheduler downlink di fig.16 si nota l’assenza dei buffers per la schedulazione dei permessi di trasmissione dei blocchi di controllo, questo perché la gestione della segnalazione per il complesso delle stazioni mobili MS è ovviamente svolta dalla rete, che si avvale della tratta downlink per esercitare il controllo.
Ciascun buffer UL_Buffer_TS(i) del terzo gruppo contiene le code delle flags USFidi uno, o più, buffers UL_TBFi schedulati per la trasmissione uplink dei successivi blocchi RLC, seguendo una strategia di riempimento che verrà indicata in detaglio illustrando la flg.22b. Con riferimento alla fìg.18 si nota che un generico buffer UL_Buffer_TS comprende un elemento x che deve essere sempre lasciato vuoto per prenotare una posizione uplink in caso di polling, come verrà chiarito con riferimento alle figure da 21 a in poi. Al termine della fase di riempimento i buffers UL_Buffer_TS vengono scanditi e l'informazione entrata per prima in un buffer UL_Buffer_TS(j) viene scritta alla y-esima posizione del registro UL_lista, come illustrato sommariamente con riferimento alla fig.19b, ed In maggior dettaglio con riferimento alla fig.23.
Per quanto concerne i restanti registri, la i-esima posizione del registro UL_NumBlocks_TBF_Scheduled contiene il numero di blocchi RLC già schedulati per il buffer UL_TBFi. La y-esima posizione del registro LEN_UL_Buffer_TS contiene il numero corrente di elementi del buffer UL_Buffer_TS(i), vale a dire: le flags USFi valide per la schedulazione uplink, una flag USF codificata FREE da usarsi come permesso per inviare un burst PRACH per l'accesso random del mobile alla rete dati, l'elemento di comodo alla posizione x codificato EMPTY per evitare conflitti quando un blocco RLC uplink è allocato tramite il meccanismo di polling, ed eventuali elementi codificati NOT USED inseriti durante precedenti prenotazioni della posizione x per il polling.
Con riferimento alle figure 19a, 19b e 19c viene fornita una panoramica sul procedimento di schedulazione oggetto dell’invenzione. La fig.19a riguarda le operazioni in downlink, mentre la fig.19b le operazioni in uplink. La fig.19c riguarda operazioni comuni alle due direzioni. Nelle tre figure è indicata la dimensione temporale di un passo di schedulazione tstep della durata di 20 ms. La durata del passo di schedulazione è data dalla seguente espressione:
(5)
che corrisponde al tempo medio di trasmissione di un blocco RLC su quattro trame TDMA. Nelle figure 19a e 19b il passo di schedulazlone n-esimo è diviso in tre fasi sequenziali indicate con AD, BD, rD, per la direzione downlink e Au, Bu, Γυ, per ta direzione uplink. Le fasi AD e Au sono fasi di acquisizione di informazioni iniziali necessarie alle operazioni svolte durante il passo di schedulazione attuale. Le fasi BD e Bu sono fasi di riempimento delle code dei permessi di trasmissione appartenenti, la prima alla schedulazione in downlink e la seconda in uplink. Le fasi ΓD e Γu sono fasi in cui i due schedulers emettono le decisioni conseguenti alla strategia di schedulazione. Le due fasi non sono indipendenti, come si vedrà, è necessaria una loro sincronizzazione e l’eventuale trasferimento di un comando di prenotazione dallo Scheduler downlink allo Scheduler uplink. Le decisioni dei due schedulers vengono memorizzate nei due rispettivi registri DL_ista ed UL_ista ed emesse, cioè consegnate al blocco TBF MANAGER nel punti MD ed MU per la loro esecuzione al successivo passo di schedulazione n+1. La memorizzazione delle decisioni di schedulazione consente al blocco TBF MANAGER di operare in parallelo al blocco Scheduler, con un ritardo iniziale di 20 ms. Nella comune fase Δ, il blocco TBF MANAGER è pilotato dalle decisioni dei due Schedulers prese durante il precedente passo di schedulazione n-1 e memorizzate nei registri DL_lista(tstep - 1 ) ed UL_ista(tstep - 1 ). Durante il passo di schedulazione attuale queste informazioni vengono scandite sequenzialmente a cadenza di time-slot, ed eseguite le trasmissioni schedulate, come sarà meglio illustrato commentando le figure 24a e 24b. Il testo contenuto nei riquadri delle figg.19a, 19b e 19c descrive le fasi del procedimento elencate, mantenendo un certo grado di generalità; le successive figure 20a 24b entreranno invece nel giusto dettaglio utilizzando l'approccio descrittivo dei diagrammi di flusso degli elaboratori. Ciò è corretto in quanto il blocco Scheduler di fig.14 è incluso in una scheda PCU (Packet Control Unit) del controllore di stazione BSC, governata appunto da un microprocessore controllato da un programma che realizza il procedimento dell'invenzione.
Con riferimento alle figure 20a e 20b viene ora illustrata la fase di riempimento dei buffers DL_Buffer_sgn_TS e DL_Buffer_TS nell'ambito dell’attività di schedulazione downlink. La fìg.20a è riferita ai buffers DL_Buffer_sgn_TS e la fig.20b ai buffers DL_Buffer_TS. Con riferimento alla fig.20a, il programma parte da una fase iniziale INIZ in cui vengono allocati nella memoria del microprocessore le risorse necessarie in termini di buffers e registri per la schedulazione downlink; queste risorse verranno specificate illustrando la fig.20b. Il programma attraversa quindi un punto A e si porta al passo D1 dove viene inizializzato un indice s, usato per scandire le iterazioni di un ciclo di servizio delle richieste prioritarie inoltrate dal blocco TBF MANAGER per esigenze di segnalazione e controllo. Il ciclo di servizio è costituito dai passi da D2 a D14. Al passo D2 viene effettuata una lettura del buffer FIFO MN_FIFO_Request per acquisire quella richiesta di TBF MANAGER che più attende in coda. Al passo D3 il programma si chiede se la lettura effettuata indica che il buffer è vuoto, in tal caso il programma salta ad un punto B dove viene posta in atto una strategia di riempimento dei buffers DL_Buffer_TS. Se il buffer MN_FIFO_Request non è vuoto il programma entra nella fase D4 di decodifica dei campi informativi ietti. La decodifica può fornire una delle seguenti quattro informazioni: d/TFIi, d/TFIi & RRBP, ufTFIi, u/TFIi & RRBP. Le quattro possibilità danno origine ad una biforcazione della flow-chart in due rami distinti. Il primo ramo è costituito dai passi D5, D6, D7, e D8 e corrisponde alle condizioni d/TFli o d/TFIi & RRBP leggibili nel blocco D5. Il secondo ramo è costituito dai passi D11, D12, D13, e D14 e corrisponde alle condizioni u/TFI/ o u/TFI/ & RRBP leggibili nel blocco D11. I due rami si ricongiungono al passo D9. Percorrendo il primo ramo il programma incontra il passo D6, dove sceglie un time-slot di indice j per inserire, al passo D7, nella prima posizione lìbera del buffer DL_Buffer_sgn_TS(/) associato al time-slot di indice j, il campo informativo appena decodificato d/TFI/, o d/TFI/ & RRBP, da utilizzarsi come permesso di trasmissione di un blocco di controllo i. Il criterio adottato è quello di scegliere tra tutti i buffers DL_Buffer_sgn_TS associati ai time-slots inclusi nella classe multi-slot del mobile i, quello che contiene la coda di permessi TFIi più corta, considerando il fatto che alla lunghezza di una coda di permessi possono contribuire tutte le connessioni che condividono lo stesso time-slot che alloca la coda. Il buffer scelto DL_Buffer_sgn_TS(/) vincola la scelta del time-slot. Al passo D8 vengono incrementati i registri indicati. Al passo D9 viene compiuto un test sul valore dell'indice s per vedere se è stata svuotata la coda MN_FIFO_Requests o se altrimenti è giunto a scadenza il passo di schedulazione. Se una delle due condizioni si avvera, il programma si porta al punto B, altrimenti compie una seconda iterazione del ciclo s. Tornando al passo di decodifica D4, se la decodifica è riferita al secondo ramo D11 ÷ D14, il programma compie le azioni leggibili nei rispettivi blocchi.
L’attraversamento del punto B per l’esecuzione del passo D15 avviene quando lo scheduler ha servito tutte le richieste prioritarie pendenti. Dal passo D16 al passo D20 viene compiuta una iterazione di riempimento di un buffer DL_Buffer_TS(/) scelto secondo la strategia illustrata. Il passo finale D20 rimanda al passo D16 di verifica delle condizioni per una nuova iterazione; se il riempimento è finito il programma attraversa un punto C che introduce la gestione delle decisioni delio scheduler downlink. Le operazioni di riempimento svolte ai passi D16 -I- D20 necessitano dei seguenti parametri, alcuni dei quali assumono il nome del registro che li ospita:
PARAMETRI PER LE CODE DL TBF
DL_NumBlocks_TBF_transmit(i): introdotto illustrando la fig.15, è il numero di blocchi RLC che la coda DL_TBF(i) deve trasmettere. L’indice i, con 1 ≤ i < n sceglie una coda DL_TBF(i) tra le n correntemente allocate.
DL_NumBlocks_TBF_Scheduled(i): introdotto illustrando la fìg-16, è il numero di blocchi RLC che sono stati già schedulati per il DL_TBF(/).
Num_Scheduled_TBF: è il numero di code DL_TBF per cui è già stata effettuata una iterazione di schedulazione al passo di schedulazione corrente.
N_TBF: è il numero di code DL_TBF complessivo allocate al passo di schedulazione corrente.
PARAMETRI PER I BUFFERS DL_Buffer_TS
N_TS: è il numero di time-slots correntemente usati per il GPRS; vengono selezionati dal valore assunto da un indice j.
Len_DL_Buffer_TS(j): introdotto illustrando la fig.16, è il numero di blocchi RLC correntemente schedulati entro il buffer DL_Buffer_TS(i)· Max_Len_DL_Buffer_TS: è la massima lunghezza comune a ciascun buffer DL_Buffer_TS(/).
NumBlocks_TBF_to_TS: è il numero di blocchi RLC schedulati nel corrente passo di schedulazione fino al precedente istante di aggiornamento del numero di permessi. Max_NumBlocksTBF_to_TS: è il massimo numero di blocchi RLC che possono essere allocati ad ogni passo di schedulazione dalle code DL_TBF ai buffers DL_Buffer_TS. Corrisponde anche al massimo numero di permessi schedulabili in un passo di schedulazione tstep della durata di 20 ms. Questo numero è posto almeno uguale al valore N_TS+1 in modo da evitare di svuotare prematuramente l buffers dei permessi di trasmissione. Valori dell'indice s > N_TS+1 possono essere presi in considerazione, compatibilmente con la massima lunghezza prevista per i buffers dei permessi di trasmissione. Viene assunto un valore di default = N_TS 1.
Blocks_Single_TBF: è il numero di permessi di trasmissione per la coda DL_TBF(i) che possono essere inseriti in toto nel numero corrispondente di posizioni libere del buffer DL_Buffer_TS(i) associato al time-slot j selezionato per servire la coda di trasmissione DL_TBF(i).
Ciò posto, al passo D15 vengono azzerate le seguenti variabili: NumBlock_TBF_to_TS e Num_Scheduled_TBF. Nel successivo passo D16 il programma verifica il soddisfacimento simultaneo di tre condizioni a), b), c) per l'iterazione di riempimento dei buffers DL_Buffer_TS. Il passo D16 è il seguente: a) (DL_NumBlocks_TBF_transmit(i) > DL_NumBlocks_TBF_Scheduled(i) per qualunque valore dell'indice i ) AND
b) (NumBlocks_TBF_to_TS < Max_ NumBlocksTBF_to_TS) AND
c) (Num_Scheduled_TBF < N_TBF).
Per quanto concerne la condizione a), il valore qualunque dell'indice i è senz’altro applicabile senza restrizioni solo all'inizio del passo di schedulazione, per le successive iterazioni di riempimento il termine “qualunque” è limitato alle code DL_TBF(i) che devono ancora essere scelte casualmente. Se al passo D16 la risposta è “sì” il programma esegue il passo D17 per la selezione casuale con distribuzione di probabilità uniforme di una coda DL_TBF(i) non già precedentemente selezionata durante il corrente passo di schedulazione. Una regola che vale è la seguente: una coda DL_TBF(i) può essere selezionata solo una volta in un passo di schedulazione. Sempre restando nel passo D17, in corrispondenza della coda DL_TBF(i) selezionata il programma legge l'informazione presente alla posizione i-esima del registro DL_NumBlocks_TBF_transmit, il cui significato è già stato illustrato in corrispondenza dellomonimo parametro. Viene quindi eseguito il passo D18 di selezione del time-slot j e del relativo buffer DL_Buffer_TS(i) secondo le modalità leggibili in figura. Al successivo passo di D19 il programma calcola il parametro Blocks_Slngle_TBF per la coda DL_TBF(i) selezionata al passo precedente, scegliendo il valore minimo fornito dalle seguenti espressioni:
1) DL_NumBlocks_TBF_transmit(i) - DL_NumBlocks_TBF_Scheduled(i).
2) Max_NumBlocksTBF_to_TS - NumBlocks_TBF_to_TS .
3) Max_Len_DL_Buffer_TS - Len_DL_Buffer_TS(i).
L'espressione 1) fornisce il numero di blocchi RLC che la coda DL_TBF(i) deve trasmettere e che non sono ancora stati schedulati. L’espressione 2) fornisce il numero di blocchi RLC che possono ancora essere schedulati per il time-slot TS (i). L’espressione 3) fornisce il numero di blocchi RLC che possono ancora essere schedulati per la coda di trasmissione DL_TBF(/) al passo corrente di schedulazione. I valori forniti dalle espressioni 1), 2), e 3) costituiscono altrettanti fattori limitanti per il massimo numero di permessi che è possibile inserire nel buffer DL_Buffer_TS(/) selezionato. In corrispondenza della massima limitazione si ha il parametro Blocks_Single_TBF utilizzato per gli aggiornamenti compiuti al successivo passo D20.
Il passo D20 comprende i seguenti cinque aggiornamenti:
1. L’identificatore TFI (i) è scritto nelle prime Blocks_Single_TBF posizioni libere del buffer DL_Buffer_TS(i) selezionato.
2. DL_NumBlocks_TBF_Scheduled(i) = DL_NumBlocks_TBF_Scheduled(i) Blocks_Single_TBF.
3. NumBlocks_TBF_to_TS = NumBlocks_TBF_to_TS Blocks_Single_TBF.
4. Len_DL_Buffer_TS(i) = Len_DL_Buffer_TS(i) Blocks_Single_TBF.
5. Num Scheduled TBF = Num Scheduled TBF 1.
Il programma ritorna quindi alla fase di test D16 e, se le condizioni testate indicano che il riempimento dei buffers DL_Buffer_TS(i) è terminato, il programma attraversa il punto C e passa alla fase di emissione delle decisioni dello Scheduler downlink. Si dimostra che il modo di operare indicato ai passi D15 ÷ D20 della fig.20b consente di ottenere i valori di RSFi dell’espressione (2). Ciò significa che i permessi di trasmissione vengono assegnati ai mobili in modo mediamente proporzionale al numero di time-slots allocati a ciascuna coda di trasmissione DL_TBF(i), che equivale a dire in modo mediamente proporzionale alla velocità di trasmissione di picco negoziata da ciascun mobile con la rete.
L’obiettivo della fase di emissione delle decisioni è quello di trasferire in modo ordinato una parola di memoria, che da più tempo attende in coda, da ciascun buffer DL_Buffer_sgn_TS o DL_Buffer_TS al registro DLJista, per il suo trasferimento al blocco TBF MANAGER. Nella singola posizione k-esima del registro DLJista verrà inclusa l'informazione proveniente da uno solo dei due tipi di buffers, dando la precedenza al buffer DL_Buffer_sgn_TS. Con ciò, al passo D21 viene inizializzato un indice k che scandisce le iterazioni di due cicli annidati di scrittura del registro DLJista, di cui, il ciclo più esterno preleva l’informazione dai buffers DL_Buffer_TS e quello più interno dai buffers DL_Buffer_sgn_TS. Il programma si porta al successivo passo D22 attraversando un punto E che costituisce il punto d'arrivo di una iterazione del ciclo più esterno. Al passo D22 viene fatto un test per stabilire se il k-esimo buffer DL_Buffer_sgn_TS è vuoto o ha ancora informazione di controllo da trasferire. Qualora il suddetto buffer risulti vuoto, il programma attraversa un punto D di rimando all’inizio di una iterazione del ciclo più esterno. Nel caso in cui il buffer k-esimo in questione non è vuoto i successivi passi D23 e D24 completano il trasferimento alla corrispondente posizione del registro DLJista dei campi informativi letti (INF/) dal buffer DL_Buffer_sgn_TS, che vengono eliminati dal buffer. Segue una fase di analisi dei campi informativi INFi. Al successivo passo D25 il programma esegue un test per verificare la presenza di un valore valido del campo RRBP (Relative Reserved Block Period). In caso affermativo significa che durante la precedente fase di riempimento era stato percorso il ramo D5 ÷ D8 previsto per il polling, a tal fine viene eseguito il passo D26 in cui lo Scheduler downlink deve necessariamente interagire con lo Scheduler uplink mediante il trasferimento di un comando. Lo scopo del comando è quello di indurre lo Scheduler downlink a scrivere nel k-esimo buffer UL_Buffer_TS un codice NOT USED alla posizione di default: x = valore(RRBP) - 1 indicata in fìg.18. Per quanto detto nell'introduzione sul meccanismo delle flags USF per il controllo della trasmissione uplink, e sul differente meccanismo del campo RRBP, si può comprendere come l’accorgimento in D26 eviti interferenza tra i due meccanismi di prenotazione. Lasciando infatti libera da USF la posizione x si evita che, altrimenti, un qualunque mobile schedulato possa trasmettere un blocco RLC nell'intervallo temporale in cui è collocata la posizione x, sovrapponendosi alla trasmissione effettuata dal mobile impegnato in uplink dal meccanismo RRBP. L’interazione tra i due schedulers comporta la necessità di una loro sincronizzazione, che può essere risolta in diversi modi. Il modo non limitativo presentemente utilizzato prevede la memorizzazione del comando, sotto forma di un codice VALIDi, in una k-esima posizione del registro MEM_command_DL_to_UL di fig.16a. Il trattamento di questo comando verrà illustrato parlando dello Scheduler uplink. Al successivo passo D27, direttamente raggiunto anche per risposta negativa in D25, viene eseguito un secondo test sull'informazione INF i per verificare la presenza di un Identificatore downlink/TFIi, piuttosto che di uplink/TFI/. La discriminazione tra questi due identificatori, usati dal blocco TBF MANAGER per inviare un corrispondente blocco RLC/MAC di controllo, serve ad introdurre il successivo passo di decremento D28 nel solo caso di schedulazione downlink. L'iterazione interna viene quindi completata eseguendo i passi D29, D30, e D3. Se il test al passo D31 dice che la scrittura del registro DL_ista è stata completata, viene eseguito il passo D32 che comporta l'esecuzione delle tre operazioni indicate in figura. La prima operazione serve a liberare il registro DL_ista che riversa il suo contenuto nel registro DLJista(tstep - 1), onde poter accogliere i trasferimenti al successivo passo di schedulazione e consentire al blocco TBF MANAGER di poter operare in modo indipendente. La seconda operazione, consistente nell’attivazione di una flag End_command_DL_o_UL, serve per sincronizzare il funzionamento dello scheduier downlink. La terza operazione è di attesa della fine del corrente passo di schedulazione downlink, dopodiché il programma ritorna al punto A di fig.20a in cui subentra un nuovo passo di schedulazione downlink.
Tornando al test dei passo D22, se risulta vuoto il k-esimo buffer DL_Buffer_sgn_TS, il programma passa ad eseguire i passi D33 e D34 di una iterazione esterna per il trasferimento alla k-esima posizione del registro DLJista di una parola INFi letta nel k-esimo buffer DL_Buffer_TS. In questo caso la parola INFi è costituita dal solo identificatore downlink/TFIi utilizzato per la schedulazione downlink. L’iterazione esterna viene completata con l’esecuzione dei passi di decremento D35 e D36 e con i passi D37 e D38. Se il test al passo D31 dice che la scrittura del registro DLJista è stata completata, viene eseguito il passo D32 uguale al passo D32; ciò significa che i passi D32 e D39 sono alternativi, l’esecuzione dell’uno o dell'altro dipende da dove termina lo stadio di emissione delle decisioni.
Viene ora illustrato il processo di schedulazione uplink delle figure 22a, 22b e 23. Con riferimento alla fig.22a, il programma parte da una fase iniziale INIZ in cui vengono allocati nella memorìa del microprocessore le risorse necessarie in termini di buffers e registri per la schedulazione uplink, e letta l’informazione di associazione TFI/USF sui time-slots usati nella schedulazione uplink. Il processo uplink ha lo stesso istante d’inizio del corrente passo di schedulazione downlink. I passi che precedono il riempimento dei buffers UL_Buffer_TS sono del tutto simili a quelli corrispondenti del processo downlink, per cui la descrizione di una iterazione viene semplificata. In pratica la descrizione dei passi: U1, U2, U3, U4, U5 è riconducibile a quella dei passi D15, D16, D17, D18, D19 di fig.20b, con l’accorgimento di sostituire il prefisso DL con UL nell’indrcare buffers, registri, e singoli parametri utilizzati nei calcoli. Anche le conclusioni a riguardo del parametro RSF i sono le stesse.
Con riferimento alla fig.22b, i successivi passi da U6 ad U18 costituiscono un ciclo di riempimento del buffer UL_Buffer_TS(j) (fig.18) con un numero Blocks_Single_TBF di flags US Fi calcolato al passo U5, considerando inoltre che il parametro Max_Len_UL_Buffer_TS è quello che risulta al netto della posizione x. Il buffer UL_Buffer_TS(j) è quello selezionato con riferimento ai passi U1 ÷ U5.
Per la determinazione del valore di USFi al passo U8 bisogna considerare che al termine del passo U5 lo scheduler ha già scelto casualmente la coda trasmissiva UL_TBFi ed ha pure scelto il time-slot TSj ed il relativo buffer UL_ Buffer_TS(/) in cui inserire il numero di permessi Blocks_Single_TBF. A differenza del processo di schedulazione downlink, dove lo scheduler non fa che inserire il numero calcolato di identificatori TFI nel buffer dei permessi, senza alcuna necessità di dover trasmettere via radio i permessi ai mobili, nel caso della schedulazione uplink occorre invece trasmettere via radio i permessi ai mobili, e non è possibile utilizzare a guisa di permessi gli identificatori TFI dei blocchi RLC trasmessi in direzione downlink (perché già impegnati a scopo di Identificazione del buffer DL_TBFi trasmittente). La strategia GPRS è quella di utilizzare una seconda tipologia di identificatori, per l'appunto gli USF, affiancandoli ai TFI a guisa di permessi di trasmissione uplink. Come già era stato detto, un permesso USF viene inserito in un blocco RLC estratto da una coda DL_TBF e quindi trasmesso downlink sull'interfaccia in aria per scegliere la coda UL_TBF che dovrà trasmettere in uplink il successivo blocco RLC. Nell'assegnazione di un permesso USFi occorre evitare collisioni tra le code UL_TBFi che condividono il time-slot j. La scelta è vincolata ai criteri della tabella di allocazione TFI/USF del passo INIZ, della quale un esempio concreto è visibile nella parte superiore di fig.25a. I criteri tabellati consentono di determinare il corretto valore di USFi associato alia coda trasmissiva UL_TBFi in corrispondenza del time-slot j.
La modalità di riempimento del buffer UL_Buffer_TS(/) è tale da lasciare sempre vuota la posizione x di default, che deve essere lasciata a disposizione delle decisioni delio Scheduler downlink circa l'eventuale inserimento del codice USF = NOT USED. Il programma compie un test al passo U7 per considerare se il grado di riempimento del buffer UL_Buffer_TS(j) è tale da superare la posizione x, o eventualmente coincidere, perché in tal caso esso può scrivere in U8 sequenzialmente tutte le flags USF previste, senza interruzioni. Nel successivo passo U9 viene effettuato un aggiornamento cumulativo del registro Len_UL_Buffer_TS, e quindi compiuti in U10 gli aggiornamenti mancanti. Se invece il test eseguito al passo U7 mostra un grado di riempimento del buffer UL_Buffer_TS(j) inferiore alla posizione x, occorre seguire i rimanenti passi U11 ÷ U18, dove ad ogni scrittura nel buffer UL_Buffer_TS(j) la lunghezza del buffer viene dapprima incrementata modo unitario, dopodiché la nuova lunghezza viene testata per verificare l’occorrenza della posizione x, al fine di saltarla. Se nel test del passo U12 risulta che tutti i permessi sono stati scritti, il programma esegue l’ultimo Incremento di lunghezza e si porta al passo di aggiornamento finale U10. Dopodiché il programma ritorna al passo U2 per considerare l'eventualità di poter eseguire un'altra iterazione di riempimento di un buffer UL_Buffer_TS, che non sia già stato schedulato al passo corrente. Vale la stessa regola utilizzata nella schedulazione downlink che un buffer non può essere schedulato più di una volta nel medesimo passo di schedulazione. Se in U2 risulta che il riempimento è finito, il programma attraversa il punto F e si porta a considerare il processo di emissione delle decisioni dello scheduler uplink illustrato in fig.23.
Con riferimento alla fig.23, si può notare che durante il passo iniziale U19 viene introdotto un ciclo d’interrogazione della flag End_command_DL_to_UL per vedere se diventa attiva. L’esempio di sincronizzazione fornito è una soluzione non limitativa del problema di sincronizzazione tra due processi. Le modalità di sincronizzazione disponibili nella tecnica nota sono molteplici. É evidente che l’emissione delle decisioni deve essere posteriore all'acquisizione degli elementi sui quali le decisioni devono essere prese. La strategia qui adottata prevede che i comandi dello Scheduler downlink vengano resi disponibili in toto al termine del processo di emissione delle decisioni da parte del suddetto scheduler. Allo scopo, lo Scheduler downlink al passo D26 di fig.21a memorizza un comando nel registro MEM_command_DL_to_UL, ed attiva durante i passi terminali D32 o D39 la flag End_command_DL_to_UL per abilitare la lettura del suddetto registro. La strategia utilizzata Impone quindi allo Scheduler uplink di dover attendere il completamento dei comandi che dovrà acquisire, prima di poter emettere le proprie decisioni; ciò non toglie tuttavia che lo Scheduler uplink possa nel contempo essere ancora impegnato nel riempimento dei propri buffers. Una diversa strategia basata sui segnali di interrupt potrebbero evitare il ritardo.
Ciò posto, al successivo passo U20 viene inizializzato un indice k usato per scandire le iterazioni del processo di emissione, ed al successivo passo U21 viene letta la posizione k-esima del registro MEM_command_DL_to_UL. I successivi passi U22, U23, e U24 sono nell’ordine: di lettura del contenuto del campo USF / dalla posizione che più attende in coda in ciascun buffer UL_Buffer_TS(k), e di scrittura alla k-esima posizione del registro ULJista dell'informazione letta, che viene eliminata dal relativo buffer. Il passo separato dì cancellazione U24 evidenzia chiaramente che il buffer UL_Buffer_TS(k) non si comporta né come una FIFO né come un registro di scorrimento, dove in entrambi i casi la lettura provoca uno scorrimento automatico di una locazione di memoria di tutto il contenuto memorizzato e quindi la cancellazione deH’informazione letta. Nei casi prospettati ai passi U26 ed U29 lo scorrimento del contenuto del buffer UL_Buffer_TS(k) non è uniforme, perché deve preservare la non occupazione della posizione x di default e quindi, per quanto detto, la cancellazione dell'informazione letta non è automatica. Al passo U25 il programma compie un test sul comando letto al passo U21 per stabilire una di due differenti modalità di scorrimento del contenuto del buffer UL_Buffer_TS(k). Più precisamente, se dal test al passo U25 risulta che il codice letto precedentemente nel registro MEM_command_DL_to_UL corrisponde ad un codice RRBP = VALIDi, viene eseguito il passo U26, mentre in caso contrario, cioè quando viene letto un codice EMPTY, viene invece eseguito un passo U29. Nell'ipotesi di esecuzione del passo U26, la prima operazione consiste nell’inserzione di un codice NOT USED alla posizione x del k-esimo buffer UL_Buffer_TS, per i motivi più volte menzionati. Dopodiché vengono eseguite nell’ordine le operazioni indicate, il cui risultato è quello di far scorre di una posizione in direzione uscente l'elemento x = NOT USED, appena introdotto, insieme a tutti gli elementi che precedono temporalmente la posizione x. Il codice EMPTY reintrodotto alla posizione x rende l’elemento x nuovamente disponibile. Con le modalità indicate al passo U26 il grado di occupazione del buffer UL_Buffer_TS(k) rimane inalterato, perché la perdita di un elemento al precedente passo U24 viene compensata dall’inserzione dell’elemento codificato NOT USED nel flusso degli elementi che scorrono, non occorre quindi decrementare il contenuto della posizione k-esima del registro Len_UL_Buffer_TS. Al passo U27 II contenuto della posizione i-esima del registro UL_NumBlocks_TBF_Scheduled subisce un decremento unitario. Il fatto che al passo U26 il registro in questione abbia subito un incremento unitario alla i-esima posizione non significa che ai passi U26 ed U27 vengono fatte due operazioni uguali e contrarie, quindi superflue, perché l’indice i del passo U26 è sempre differente dall'Indice i al passo U27.
Nell’ipotesi di esecuzione del passo U30 significa che il codice NOT USED non viene inserito alla posizione x, non si viene quindi a creare un nuovo elemento nel buffer UL_Buffer_TS(k) a seguito dello scorrimento che mantiene vuota questa posizione, in tal caso la perdita di un elemento al precedente passo U24 è effettiva ed occorre decrementare di una unità il contenuto della k-esima posizione dei registri Len_ Buffer_TS ed UL_NumBlocks_TBF_Scheduled.
Al completamento del ciclo di scrittura del registro ULJista, il programma esegue il passo U32 che termina il processo di emissione delle decisioni dello Scheduler downlink. In questo passo di elaborazione viene disattivata la flag End_command_DL_to_UL, rendendola di nuovo disponibile allo Scheduler downlink; dopodiché all'esaurimento del passo di schedulazione attuale il programma si riporta al punto G di fig.22a per l’inizio di un nuovo passo di schedulazione.
Con riferimento alle figure 24a e 24 b viene da ultimo considerato il funzionamento del blocco TBF MANAGER delle figure 14 e 15.
Nel primo riquadro INIZI di fìg.24a sono riportate tutte quelle informazioni trasferite dalla rete al blocco TBF MANAGER, che consentono a questo blocco di poter a sua volta istruire i due Schedulers circa le elaborazioni che dovranno compiere nel successivo passo di schedulazione. Tra queste informazioni compare anche quella per la ritrasmissione di blocchi RLC ricevuti in modo errato. Quando il TBF MANAGER è informato che un blocco RLC trasmesso sulla connessione TBF/ non è stato ricevuto correttamente, esso reinserisce il blocco nella coda originaria dei blocchi RLC da trasmettere per quella connessione TBF/, ed incrementa in modo unitario la lunghezza della coda:
DL_NumBlocks_TBF_transmit(/) = DL_NumBlocks_TBF_transmit(/) 1 per un TBF downlink.
UL_NumBlocks_TBF_transmit(/) = UL_NumBlocks_TBF_transmit(/) 1 per un TBF uplink.
Nel secondo riquadro INIZ2 sono evidenziate tutte le informazioni passate dal blocco TBF MANAGER ai due Schedulers. Le informazioni indicate nei riquadri INIZI ed INIZ2 sono leggibili in fig.14. Il programma, esaurita la fase di preparazione, inizializza al passo M1 un indice k utilizzato per la scansione dei due registri DL_ista)tstep- 1) ed UL_ista)tstep-1) e relativa acquisizione delle informazioni di schedulazione memorizzate dagli schedulers. La scansione dei due registri può essere effettuata simultaneamente rispettando la sequenza di scrittura, che rispecchia l'ordine temporale dei time-slots GPRS. I due registri memorizzano il risultato della schedulazione per il controllo delle precedenze nelle trasmissioni dei blocchi RLC/MAC sull'interfaccia in aria. Il blocco TBF MANAGER, interpreta l'informazione ricevuta dagli schedulers, anch'essa visibile in fìg.14, e la rende effettiva verso la stazione radio base (BTS) di competenza, e verso le stazioni mobili MS ad essa connesse. Il programma decodifica al passo M3 i campi informativi letti al passo precedente. Può anche verificarsi il caso che un campo informativo sia vuoto, questa evenienza significa in downlink che ì k-esìmi buffers DL_Buffer_TS e DL_Buffer_sgn_TS sono vuoti, ed in uplink che il k-esimo buffer UL_Buffer_TS è vuoto. Il caso uplink non richiede particolari accorgimenti, viene trattato non inserendo alcun USF nel blocco RLC da trasmettere, mentre nel caso downlink il programma trasmette un blocco di controllo Dummy, eventualmente con USF inserita, e passa all'iterazione successiva.
Ad ogni iterazione dell’indice k, corrispondente ad un relativo time-slot GPRS, l'informazione letta nella k-esima posizione del registro UL_ista)tstep-1) riguarda il solo valore del campo USFi, che può risultare rispettivamene: effettivo, not used, o empty. Poiché la decodifica di USF/, subentra solo dopo che la decodifica della corrispondente informazione letta nella k-esima posizione del registro DLJista(tstep - 1) sia stata servita, il valore di USF/, viene momentaneamente memorizzato al passo M4. Con modalità alternativa il registro UL_ista)tstep-1) può essere letto, ed USF / decodificato, al solo momento dell’utilizzo effettivo.
L’informazione proveniente dalla decodifica della lettura effettuata in corrispondenza della k-esima posizione del registro DL_ista)tstep-1) è più articolata. Sono previsti i seguenti casi:
- u/TFI identificatore TFI (Temporary Flow Identity) di un buffer TBF i uplink (Temporary Block Flow). Corrisponde ad una situazione considerata nel ramo di destra di fig.20a ai passi D11 ÷ D14, e riguarda la schedulazione dei blocchi di controllo. Il caso prospettato è quello in cui la rete trasmette al mobile un blocco di controllo downlink che include un messaggio, ad esempio, di PACKET UPLINK ACK/NACK per un buffer TBF i uplink. Trattasi di una situazione in cui al mobile i non è stato allocato un buffer downlink TBF; concorrente.
- u/TFIi & RRBP: questo caso è riconducibile al precedente con l'aggiunta del trattamento del campo RRBP ricevuto dallo scheduler downlink. L’aggiunta del campo RRBP viene effettuata dalla rete per ordinare al mobile di riscontrare a sua volta un messaggio trasmesso downlink, ad esempio, il messaggio di PACKET UPLINK ACK/NACK prima menzionato. Il riscontro avverrà nel blocco indicato da RRBP (corrispondente alla posizione x di default in fig.18). Il caso corrisponde anch'esso alia situazione considerata nel ramo di destra di fig.20a ai passi D11 ÷ D14, è riguarda la schedulazione dei blocchi di controllo. Il trattamento della decodifica u/TFI & RRBP non viene indicata, per brevità, nelle figure 24a e 24 b.
- d/TFI/ & RRBP: identificatore TFI di un buffer TBF i downlink, ed un valore valido del campo RRBP. Corrisponde ad una situazione considerata nel ramo di sinistra di fìg.20a ai passi D5 D8, e riguarda la schedulazione dei blocchi di controllo. Il caso prospettato è quello in cui la rete trasmette al mobile un blocco di controllo downlink, contenente ad esempio un messaggio di PACKET DOWNLINK ACK/NACK, con inclusa una richiesta di riscontro uplink da effettuarsi mediante il meccanismo del polling.
- d/TFI/: identificatore TFI dì un buffer TBF i downlink, con assenza dì un valore valido del campo RRBP. Corrisponde a due diverse situazioni. Una prima situazione è considerata nel ramo di sinistra di fig.20a ai passi D5 ÷ D8, e riguarda la schedulazione dei blocchi di controllo. Una seconda situazione è quella considerata in fig.20b per la schedulazione dei blocchi RLC che contengono Dati e sono posti nelle code TBF non prioritarie.
I passi M5, M9, ed M15 descrivono le azioni intraprese dal blocco TBF MANAGER in corrispondenza dei campi informativi indicati. Per quanto concerne il passo mancante riferibile alla decodifica u/TFIi & RRBP, esso è riconducibile al passo M9 sostituendo il termine downlink con uplink. Le suddette azioni consistono in altrettante selezioni che il blocco TBF MANAGER effettua nelle code ad esso allocate (fìg.16). Per tutte le connessioni eccetto quelle marcate d/TFI, viene scelto il blocco caratterizzato dal maggior tempo di attesa nella propria coda, mentre per le connessioni marcate d/TFI, la selezione deve rispettare una priorità di trasmissione tra le diverse tipologie di blocchi che possono transitare su queste connessioni. Ovviamente le vie indicate dai passi M5, M9, ed M15 sono tra loro alternative, il programma una volta Imboccata una via la percorre fino al passo M8 incluso. Sulla via originata al passo M5, mancando il buffer TBF downlink, non è possibile mettere in atto il meccanismo USF. L’unica azione di conseguenza possibile è la trasmissione uplink del blocco di controllo selezionato. Le vie originate al passo M9 o M15 prevedono la decodifica del campo USFi memorizzato al passo M4 per agire come indicato in figura.
Con riferimento alle figure 25a, 25b, 25c, e 26 viene fornito un esempio pratico di attuazione del procedimento di schedulazione oggetto dell'invenzione. La fìg.25a riporta lo stato di riempimento dei buffers DL_TBF e dei relativi registri del TBF MANAGER. Nella parte superiore è riportata una tabella contenente l'informazione per l'allocazione dei time-slots e delle flags USF alle connessioni TBF. L’esempio è volutamente semplificato a tre soli TBF i ed a due soli time-slots. Nella parte inferiore è riportata la sequenza dei blocchi trasmessi sull'interfaccia in aria nella direzione downlink, ottenuta in base alla modalità di schedulazione delle figure 25b e 25c. Per brevità di raffigurazione vengono considerati tre soli periodi di blocco. Per ciascun periodo di blocco sono indicati i due time-slots GPRS TS1 e TS2. Per ciascun time-slot viene trasmesso un blocco RLC (interleaved su quattro trame base GSM).
Come si può notare, i permessi USF schedulati per la trasmissione in direzione uplink vengono trasmessi direttamente ai mobili MS insieme ai rispettivi blocchi RLC, diversamente da quanto succede per la trasmissione in direzione downlink. Il diverso grado di riempimento dei buffers DL_TBF1 , 2, e 3 appare dai valori memorizzati alle tre corrispondenti posizioni del registro DL_NumBlocks_TBF_transmit. Il registro UL_NumBlocks_TBF_transmit contiene l'informazione duale per i buffers UL_TBF. L’informazione riportata in questi registri viene trasferita ai rispettivi schedulers, unitamente ad una richiesta di polling relativamente al TBF1. Nei diversi buffers TBFi i blocchi si presentano in ordine di sequenza, ma anche se non lo fossero a causa di uno o più blocchi da ritrasmettere, il fatto non costituirebbe una limitazione alla presente invenzione perché come già era stato evidenziato, la trasmissione di una sequenza correttamente ordinata riguarda operazioni del TBF MANAGER a valle del procedimento di schedulazione. Le figure 25b e 25c mostrano lo stato di riempimento dei buffers dei permessi di trasmissione, rispettivamente: DL_Buffer_sgn_TS(i) per i blocchi di controllo e segnalazione, DL_Buffer_TS(i) per la schedulazione downlink, ed UL_Buffer_TS(i) per la schedulazione uplink. La schedulazione è un processo dinamico e come tale comporta una certa qual difficoltà di rappresentazione figurativa. Una corretta rappresentazione richiederebbe la ripetizione delle tre figure 25a, 25b, e 25c ad ogni nuovo passo di schedulazione, cancellando dai buffers TBFi dei blocchi trasmessi ed inserendo i nuovi blocchi da trasmettere. Adottando l’ipotesi semplificativa secondo la quale nessun nuovo blocco entri nelle code TBFi, e ricorrendo alle tabelle di fig.26 è possibile seguire la dinamica del processo di schedulazione pur mantenendo la semplificazione a tre sole figure. Detto questo, sotto l’ulteriore ipotesi che i blocchi RLC da trasmettere siano stati mantenuti entro i rispettivi buffers TBFi, lo stato dei buffers e dei registri nelle figure 25a, 25b, e 25c è quello che risulta dopo alcuni passi di schedulazione. Questa seconda ipotesi è congruente con la prima, in quanto se nessun nuovo blocco entra nei buffers TBFi, allora è sempre possibile seguire passo-passo l'evoluzione del processo di schedulazione sulla base dello stato iniziale dei suddetti buffers.
Con riferimento alla fig.26 viene ora esaminata la schedulazione downlink passo per passo, fino a raggiungere lo stato di riempimento dei buffers e dei registri visibile in fìg.25b. In testa alle tre tabelle sono riportati i tre fattori che concorrono nel determinare il numero massimo di permessi per coda TBF i che è possibile assegnare nel corrente passo di schedulazione, e le tre condizioni che qualora simultaneamente avverate consentono di assegnare permessi di trasmissione ad un’altra coda TBF/ nel corrente passo dì schedulazione. La prima tabella riguarda il primo passo di schedulazione, dove è vincolante l’inserimento di un identificatore TFI/TBF1 e del valore RRBP alla prima posizione in basso del buffer DL_Buffer_sgn_TS(1). Poiché è presente un valore valido di RRBP, occorre anche riservare una posizione x vuota (per ipotesi la terza) nel corrispondente buffer UL_Buffer_sgn_TS(1). Alla seconda iterazione viene scelta casualmente la coda TBF2 per l’assegnazione dei permessi. I due buffers dei permessi DL_Buffer_TS(1) e DL_Buffer_TS(2) sono ambedue vuoti, viene allora scelto casualmente il secondo per scrivere due identificatori TFI/TBF2, in accordo al secondo fattore limitante. Poiché il numero di blocchi finora schedulati è 3, la condizione b) non è più vera e termina il primo passo di schedulazione. Alla prima iterazione del secondo passo di schedulazione viene scelta casualmente la coda TBF2. Dei due time-slots assegnati a TBF2, quello il cui buffer dei permessi risulta più scarico è DL_Buffer_TS(1) che viene scelto per inserire l'ultimo identificatore TFI/TBF2, in accordo al primo fattore limitante. Alla seconda iterazione viene scelta casualmente la coda TBF1 per l’assegnazione dei permessi. La coda TBF1 dispone del solo time-slot TS1, per cui la scelta del buffer DL_Buffer_TS(1) è vincolante. È possibile introdurre due identificatori TFI/TBF1 in questo buffer, in accordo al secondo fattore limitante. Poiché il numero di blocchi finora schedulati è 3, la condizione b) non è più vera e termina il secondo passo di schedulazione. Alla prima iterazione del terzo passo di schedulazione viene scelta obbligatoriamente la coda TBF1, poiché è l’unica che ha ancora blocchi da trasmettere. Anche la scelta del buffer DL_Buffer_TS(1) è vincolante, perché è l’unico che ha ancora una posizione libera. Nel buffer DL_Buffer_TS(1) è possibile scrivere un solo identificatore TFI/TBF1, dopodiché questo buffer risulta pieno. Scatta la condizione c) che sancisce la fine del terzo passo di schedulazione. Ulteriori passi di schedulazione saranno possibili man mano che i buffers dei permessi vengono svuotati.
Viene a questo punto spontaneo calcolare i valori del parametro RSF (Relative Scheduling Frequency) per gli identificatori TFI/TBF1, TFI/TBF2, e TFI/TBF3 sulla base dello stato dei buffers DL_Buffer_TS(1) e DL_Buffer_TS(2) di fig.25b, per poi confrontare questi valori con analoghi valori che risulterebbero dal metodo Round Robin applicato alla tabella di allocazione di fig.25a. A conti fatti, per il metodo dell'invenzione risulta quanto segue: RSF/TBF1 - 0,375; RSF/TBF2 = 0,375; RSF/TBF1 = 0,250. Mentre per il metodo Round Robin risulterebbe: RSF/TBF1 = 0,25; RSF/TBF2 = 0,50; RSF/TBF1 = 0,25. L’esempio, pur nella sua semplicità, conferma quanto era stato già detto nell'introduzione sul comportamento dello scheduler proposto; in particolare si può notare come in termini di RSF la coda trasmissiva TBF2, con più risorse allocate, cede una parte di utilizzo delle risorse a favore della coda TBF1.
Con riferimento alla fig.25c dello Scheduler uplink, è possibile per analogia con gli argomenti sviluppati sullo Scheduler downlink di fig.25b, estendere allo Scheduler uplink la rappresentazione tabellare dei passi di schedulazione fino al raggiungimento dello stato di riempimento dei buffers e dei registri visibile in figura.
Viene ora descritta la variante di procedimento che introduce nella (3) quelle operazioni di pesatura che la conducono alla forma (3’). La variante viene posta in atto dall’entità di rete che assegna le risorse alle connessioni TBF. La suddetta entità cerca di assegnare ad ogni TBF un numero di time-slots TS che dipende dalla velocità di picco richiesta, piuttosto che semplicemente da quella negoziata. Secondo la variante il numero di time-slots TSi assegnati ad un TBFi dovrebbe essere uguale al numero di TS richiesti Tsreq, come di seguito indicato:
(6)
dove: TSi = Numero di TS assegnati dalla rete al mobile,
TSreqi = Numero di TS richiesti dal mobile alla rete,
PTiè la velocità di picco richiesta dal TBFi,
Nella (6) HCS è il più alto schema di codifica disponibile sulla portante. Se TSi è uguale a TSreqi per ogni TBFi allora lo Scheduler deve suddividere le risorse in modo proporzionale al numero di TS assegnati ad ogni TBF, ed il requisito di soddisfacimento della velocità di picco è comunque soddisfatto. Nel caso la procedura di allocazione delle risorse non riesca ad allocare il numero di TS richiesti a un dato TBFi, cioè TSi è minore Tsreqi, lo Scheduler ancora cerca di rispettare il requisito di proporzionalità alla velocità di picco, dando al TBFi una maggiore priorità. Il throughput del TBFi dipende dallo schema di codifica CS (Coding Scheme) adottato e dalle ritrasmissioni (BLER= BLock Erause Rate) dovuto alle condizioni radio:
(7)
Nella (7) TStot è il numero di TS che hanno allocato almeno un TBF per la stessa portante. Per otenere la (3’), l’algoritmo di schedulazione quando deve riempire con i permessi i buffer DL_Buffer_TS e UL_Buffer_TS sceglie casualmente un TBFi, non più con probabilità uniforme, ma con una probabilità pesata data da:
(8)
(9)
I pesi Wi sono parametri d'ingresso dell'algoritmo di scheduler e sono forniti dall’entità che assegna i TS al TBFi. Essi sono calcolati al momento dello stabilimento/riconfigurazione di un TBF.
Dal punto di vista operativo il problema che si pone allo Scheduler è quello di trasformare un processo per estrarre casualmente con probabilità uniforme un TBFi, in
un processo per estrarre casualmente con probabilità pesata il TBFi. Si supponga di dover selezionare un TBF fra n TBF disponibili. Sia Pi con i=1...n, la probabilità di selezionare il TBFi (con i=1...n). Siano le Pi espresse in punti percentuale, quindi
Si supponga di avere un processo casuale che estrae con probabilità
uniforme un numero x da 1 a 100. La probabilità di estrarre un numero x è quindi di 1/100. Dopo aver estrato x, si valuta il valore i tale per cui vale la condizione:
(10)
essendo la distribuzione delle Pi non uniforme, per ipotesi. Applicando la (10) il TBF estratto è l i-esimo e la probabilità percentuale di estrarre il TBFi è quindi pari a P|.
L’estrazione del TBF è perciò un processo casuale con probabilità di estrazione dei singoli TBF non uniforme.
Un esempio in merito potrà meglio chiarire quanto detto. Considerati tre TBF: TBF1, TBF2, TBF3, siano assegnate le seguenti corrispondenti probabilità percentuali di estrazione P1 , P2, P3 tali per cui:
Probabilità estrazione TBF1 , P1 =40%
Probabilità estrazione TBF2, P2=35%
Probabilità estrazione TBF3, P3=25%
Sia quindi:
Supponendo che il processo casuale che genera un numero da 1 a 100 estragga: • 25 allora il TBF1 sarà estratto perche' 0 ≤ 25 < 40
• 38 allora il TBF1 sarà estratto perche’ 0 ≤ 38 < 40
• 58 allora il TBF2 sarà estratto perche’ 40 ≤ 58 < 75
65 allora il TBF2 sarà estratto perche' 40 ≤ 65 < 75
Dal punto di vista operativo lo scheduler può scrìvere gli identificatori TFI dei TBF in una tabella in memoria, ciascun TFI sarà scritto in tante righe della tabella quanto è il valore della sua probabilità percentuale pesata secondo la (8). Dopodiché viene generato casualmente un indirizzo di lettura della tabella, considerando noto il meccanismo, hardware o software che sia, di generazione di sequenze di numeri casuali o pseudo-casuali.
Si può concludere cercando di cogliere appieno la generalità del procedimento di schedulazione oggetto d’invenzione, il quale potrebbe apparire limitato dal fatto che l'attuazione delle decisioni a valle della schedulazione uplink necessiti il supporto di una trasmissione in atto nella direzione downlink, su una connessione qualunque tra quelle che condividono il medesimo canale. D’altro canto un sistema radiomobile che scheduli le risorse tramite distribuzione di permessi di trasmissione, non può prescindere dalla trasmissione dei permessi ai mobili, poiché questi ultimi non hanno conoscenza alcuna delle richieste di trasmissione effettuate dagli altri mobili e non possono quindi pianificare le loro trasmissioni. La schedulazione uplink mediante trasmissione delle flags USF ben si addice alle connessioni IP, dove la tratta downlink è maggiormente sfruttata, ma entrerebbe in crisi rendendo di fatto impossibile la schedulazione uplink in un ipotetico contesto in cui le trasmissioni uplink prevalessero sulle trasmissioni downlink. In tal caso l’allocazione dinamica di un canale potrebbe essere diversamente realizzata, assegnando il canale alle stazioni mobili MS per tempi prefissati multipli della durata di un blocco RLC. Verrebbero allora a mancare le caratteristiche tecniche originali descrìtte nella rivendicazione 1, e si ritornerebbe al metodo Round Robin. Gli argomenti di cui sopra evidenziano delle limitazioni intrinseche del sistema GSM-GPRS, che si riproporrebbero tuttavia in qualunque sistema radiomobile che intendesse inglobare le metodiche della trasmissione a pacchetto. Queste limitazioni sono essenzialmente dovute alla centralità del controllo entro il sottosistema BSS, ed agiscono a valle del processo di schedulazione uplink senza influenzare le modalità di assegnazione dei permessi di trasmissione. In un ipotetico sistema elettronico, non necessariamente radiomobile, in cui due gruppi di apparati fissi posti alle due estremità di un canale full-duplex comunicano attraverso un'interfaccia TDMA a banda limitata, ciascun gruppo avendo un proprio controllore centralizzato che sfrutta un canale allocato in modo permanente per convogliare la segnalazione di tutti gli apparati, potrebbe applicare gli insegnamenti del procedimento di schedulazione della presente invenzione senza necessità di dover impegnare il canale per trasmettere i permessi schedulati e senza necessità di schedulare insieme ai dati anche la segnalazione.
Claims (12)
- RIVENDICAZIONI 1. Procedimento di schedulazione delle trasmissioni dei dati a pacchetto sui canali radio condivisi dalle stazioni mobili di un sistema di telefonia cellulare (GSM-GPRS), dove i canali corrispondono ad uguali intervalli di tempo di trasmissione, o time-slots, equispaziati entro una multitrama radio esistente in ciascuna direzione di trasmissione, ed uno o più canali essendo allocati a ciascuna connessione unidirezionale tra un mobile e la rete, o viceversa, in base alle capacità multi-slot del mobile, ciascuna connessione unidirezionale allocando una coda di trasmissione (DL_TBF, UL_TBF) per ospitare pacchetti di dati e pacchetti di controllo sincronizzati alla multitrama radio ed attinenti alla stazione mobile (MS) che identifica le proprie connessioni e code trasmissive concorrenti mediante almeno un identificatore (TFI, USF) inserito nei pacchetti; il procedimento essendo divisibile in passi di schedulazione di uguale durata ripetuti indefinitamente, caratterizzato dal fatto che; ciascun passo di schedulazione comprende i seguenti passi di esecuzione consistenti in; a) associare a ciascun canale assegnato al servizio di trasmissione dati un rispettivo primo buffer di memoria (DL_Buffer_TS, UL_Buffer_TS) per ospitare una coda di permessi di trasmissione esclusiva (TFI, USF) dei pacchetti di dati sui canali condivisi; b) scegliere casualmente una detta coda di trasmissione (DL_TBF/, UL_TBF/) tra quelle correntemente allocate sulle dette connessioni tra i mobili e la rete; c) scegliere un canale tra quelli allocati in corrispondenza della detta coda di trasmissione scelta casualmente, il cui buffer associato dei permessi di trasmissione (DL_Buffer_TSy, UL_BuffeM"Sy) risulta complessivamente più scarico, in caso di due o più buffers ugualmente scarichi sceglierne uno casualmente; d) riempire il massimo numero possibile di locazioni sequenziali libere entro il detto buffer dei permessi di trasmissione (DL_Buffer_TSj, UL_Buffer_TSj) che risulta più scarico con altrettanti identificatori (TFI i; USF i) della coda di trasmissione scelta casualmente, compatibilmente con un valore massimo di locazioni imposto da fattori limitanti il detto riempimento, ciascun identificatore costituendo un permesso per la trasmissione di un pacchetto sulla connessione indicata (DL_TBFi, UL_TBF i).
- 2. Procedimento di schedulazione secondo la rivendicazione 1, caratterizzato dal fatto che detta coda di trasmissione (DL_TBFi, UL__TBFi) scelta casualmente viene scelta mediante un procedimento di scelta casuale con distribuzione di probabilità non uniforme tendente a favorire la scelta di code di trasmissione in cui il rapporto tra la velocità di trasmissione di picco richiesta dalla relativa stazione mobile è superiore alla velocità di trasmissione negoziata con la rete, in misura proporzionale al detto rapporto.
- 3. Procedimento di schedulazione secondo la rivendicazione 1 o 2, caratterizzato dal fatto che il massimo numero di permessi che è possibile assegnare in un passo di schedulazione è maggiore o uguale al numero (N_TS) dei detti canali assegnati al servizio di trasmissione dati (GPRS).
- 4. Procedimento di schedulazione secondo una delle rivendicazioni precedenti, caratterizzato dal fatto che il detto passo di schedulazione include inoltre i seguenti passi di esecuzione consistenti in: e) associare a ciascun canale assegnato al servizio di trasmissione dati un rispettivo secondo buffer di memoria (DL_Buffer_sgn_TS) per ospitare una coda dei permessi di trasmissione esclusiva (d/TFI, u/TFi) dei pacchetti di controllo e segnalazione sui canali condivisi; f) leggere un'informazione di controllo prima entrata in una coda (MN_FIFO_Requests) di richieste prioritarie di trasmissione di un pacchetto di controllo, inoltrate dalla rete a supporto della segnalazione, ed estrarre da detta informazione di controllo l’identificatore (d/TFI, u/TFI) di una detta connessione (DL_TBF, UL TBF) ed un eventuale valore valido di un codice di prenotazione posizionale (RRBP); g) scegliere un canale tra quelli allocati in corrispondenza della connessione indicata dall'identificatore (d/TFI, u/TFI) estratto il cui associato detto secondo buffer dei permessi (DL_Buffer_sgn_TSj) risulta più scarico, ed in caso di due o più buffers ugualmente scarichi sceglierne uno casualmente; h) inserire il detto identificatore estratto (d/TFIi, u/TFIi) e l’eventuale detto codice di prenotazione posizionale (RRBP) entro la prima posizione libera del detto secondo buffer dei permessi più scarico (DL_Buffer_sgn_TS/); il detto identificatore inserito costituendo un permesso per la trasmissione prioritaria di un pacchetto di controllo sulla connessione indicata (DL_TBFi, UL_TBFi), ed il detto codice di prenotazione posizionale (RRBP) riservando una locazione priva di schedulazione in un detto primo buffer dei permessi (UL_Buffer_TSj, DL_Buffer_TSj) posto sulla connessione in direzione opposta rispetto a quella indicata (u/TFI, d/TFI) per consentire la trasmissione di un pacchetto di risposta sul medesimo canale dopo un numero di pacchetti prefissato a partire da quello ricevuto contenente il codice di prenotazione posizionale (RRBP); i) ripetere i passi da f) ad h) fino ad esaurire le dette richieste prioritarie o fino al termine del passo di schedulazione.
- 5. Procedimento di schedulazione secondo una delle rivendicazioni precedenti, caratterizzato dal fatto che i passi di esecuzione b), c), d) vengono ripetuti entro il passo di schedulazione corrente, scegliendo casualmente una detta coda di trasmissione (DL_TBFi, UL_TBFi) tra quelle non ancora beneficiate dell'assegnazione dei detti permessi (TFIi; USFi), quando le seguenti condizioni risultano simultaneamente vere: - il numero di pacchetti entro una coda di trasmissione da scegliere casualmente (DL_TBFi, UL_TBFi) risulta maggiore del numero di permessi finora assegnati a quella coda di trasmissione; - il numero di pacchetti che hanno finora ricevuto un permesso entro il corrente passo di schedulazione risulta inferiore al detto massimo numero di permessi che è possibile assegnare in un passo di schedulazione; - il numero di code di trasmissione (DL_TBFi, UL_TBFi) selezionate dall'inizio del passo di schedulazione risulta minore del numero complessivo di code di trasmissione..
- 6. Procedimento di schedulazione secondo una delle rivendicazioni precedenti, caratterizzato dal fatto che detto massimo numero possibile di locazioni per l'inserimento di detti identificatori (TFIi; USFi) corrisponde al valore minimo tra: - il numero di pacchetti entro la detta coda di trasmissione scelta casualmente (DL_TBFi, UL_TBFi) che risultano ancora privi di un permesso di trasmissione; - il numero di pacchetti che possono ancora ricevere un permesso di trasmissione sul canale selezionato; - il numero di pacchetti entro la detta coda di trasmissione scelta casualmente (DL_TBFi, UL_TBFi) per i quali è ancora possibile assegnare un permesso di trasmissione al passo corrente di schedulazione.
- 7. Procedimento di schedulazione secondo una delle rivendicazioni precedenti, caratterizzato dal fatto che: - un primo tipo di identificatori per entrambe le direzioni di trasmissione (d/TFI, u/TFI) viene utilizzato nei detti secondi buffers (DL_Buffer_sgn_TS) dei permessi di trasmissione per la distribuzione dei permessi di trasmissione di pacchetti di controllo dalle code di trasmissione (DL_TBF, UL_TBF) poste su l’una o l’altra direzione di trasmissione; - un detto primo tipo di identificatori (d/TFI) viene utilizzato nei detti primi buffers (DL_Buffer_TS) dei permessi di trasmissione per la distribuzione dei permessi di trasmissione di pacchetti di dati dalle code di trasmissione (DL__TBF) poste sulle connessioni in direzione downlink; - un secondo tipo di identificatori (USF) viene utilizzato nei detti primi buffers (UL_Buffer_TS) per la distribuzione dei permessi di trasmissione di pacchetti di dati dalle code di trasmissione poste sulle connessioni in direzione uplink (UL_TBF); un detto identificatore del secondo tipo (USF) essendo introdotto in un pacchetto trasmesso nella direzione downlink durante il periodo di trasmissione attuale, abilitando selettivamente i mobili in ascolto sul canale alla trasmissione di un pacchetto durante il periodo di trasmissione successivo.
- 8. Procedimento di schedulazione secondo la rivendicazione 7, caratterizzato dal fatto che durante il riempimento del massimo numero possibile di locazioni sequenziali libere entro i detti primi buffers (UL_Buffer_TS, DL_Buffer_TS) viene lasciata intenzionalmente vuota una locazione (elemento x) in una posizione di default (x) distante un numero di posizioni a partire dalla locazione il cui contenuto ha il maggior tempo d'attesa in coda uguale al detto codice di prenotazione posizionale (RRBP).
- 9. Procedimento di schedulazione secondo la rivendicazione 8, caratterizzato dal fatto che: - i detti primi buffers (DL_Buffer_TS) e secondi buffers (DL_Buffer_sgn_TS) dei permessi di trasmissione contenenti il primo tipo di identificatori (TFI) sono scanditi in successione rispettando l’ordine temporale dei canali, prelevando un detto identificatore (TFI) da una posizione in coda con il maggior tempo di attesa, dando precedenza ai detti secondi buffers (DL_Buffer_sgn_TS), ed abilitando selettivamente la coda di trasmissione di volta in volta identificata (DL__TBFi, UL_TBFi) affinché trasmetta un pacchetto sul canale scandito; prelevando inoltre un eventuale detto codice valido di prenotazione posizionale (RRBP) ed inserendo in corrispondenza di quest'ultimo un codice di non utilizzo (N.U.) nella detta locazione vuota in posizione di default (elemento x) di un detto primo buffer dei permessi di trasmissione (UL_Buffer_TS) contenente il secondo tipo di identificatori (USF); - i detti primi buffers (UL_Buffer_TS) contenenti il secondo tipo di identificatori (USF) sono scanditi in successione rispettando l'ordine temporale dei canali, prelevando un detto identificatore (USF) da una posizione in coda con il maggior tempo di attesa, ed abilitando selettivamente la coda di trasmissione di volta in volta identificata (UL_TBF/) affinché trasmetta un pacchetto sul canale scandito.
- 10. Procedimento di schedulazione secondo la rivendicazione 9, caratterizzato dal fatto che: - dopo aver prelevato un detto identificatore (TFI, USF) e l’eventuale codice di prenotazione posizionale (RRBP) dalla detta posizione in coda con il maggior tempo di attesa in uno di detti primi (DL_Buffer_TS, UL_Buffer_TS) e/o secondi buffers (DL_Buffer_sgn_TS) dei permessi di trasmissione, il contenuto di questa posizione viene azzerato nei rispettivi buffers - il contenuto alle rimanenti posizioni viene fatto scorrere di una posizione in direzione uscente; - il numero di permessi schedulati per la coda di trasmissione (DL_TBFi, UL_TBFi) indicata dall’indicatore prelevato (TFI, USF) viene decrementato di una unità; - il numero di permessi contenuti nella coda di trasmissione (DL_TBFi, UL_TBFi) indicata dall’indicatore prelevato viene decrementato di una unità.
- 11. Procedimento di schedulazione secondo la rivendicazione 10, caratterizzato dal fatto che quando un detto codice valido di prenotazione posizionale (RRBP) viene prelevato da un primo buffer dei permessi di trasmissione (DL_Buffer_TS) contenente il primo tipo di identificatori (TFI), il detto scorrimento del contenuto di un corrispondente primo buffer dei permessi di trasmissione (UL_Buffer_TS) contenente il secondo tipo di identificatori (USF) viene eseguito come segue: - gli elementi compresi tra la posizione che precede quella il cui contenuto è stato azzerato e la detta posizione di default (x), inclusa, vengono fatti scorrere di una posizione in direzione uscente; - gli elementi che seguono la detta posizione di default (x) non vengono fatti scorrere; - il contenuto della detta posizione di default (x) viene azzerato.
- 12. Procedimento di schedulazione secondo la rivendicazione 10, caratterizzato dal fatto che quando da un primo buffer dei permessi di trasmissione (DL_Buffer_TS) contenente il primo tipo di identificatori (TFI) viene prelevato solo un identificatore (TFI), il detto scorrimento del contenuto di un corrispondente primo buffer dei permessi di trasmissione (UL_Buffer_TS) contenente il secondo tipo di identificatori (USF) viene eseguito come segue: - gli elementi compresi tra la posizione che precede quella il cui contenuto è stato azzerato e la posizione che precede la detta posizione di default (x) vengono fatti scorrere di una posizione in direzione uscente; - l’elemento che segue la detta posizione di default (x) viene fatto scorrere di due posizioni in direzione uscente; - i restanti elementi che seguono la detta posizione di default (x) vengono fatti scorrere di una posizione in direzione uscente.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IT2000MI002800A IT1319611B1 (it) | 2000-12-22 | 2000-12-22 | Procedimento di schedulazione dei permessi di trasmissione dei dati apacchetto sui canali radio condivisi dalle stazioni mobili in sistemi |
EP01126856A EP1257096A3 (en) | 2000-12-22 | 2001-11-12 | Procedure for the scheduling of packet data transmission permits on radio channels shared by mobile stations in GSM-GPRS systems |
CN01133818A CN1360444A (zh) | 2000-12-22 | 2001-12-21 | 移动站共享的无线电信道上调度分组数据发送许可的过程 |
BR0106258-1A BR0106258A (pt) | 2000-12-22 | 2001-12-26 | Procedimento para programação de execução de permissões de transmissão de dados em pacote em canais de radio compartilhados por estações móveis em sistemas gsm-gprs |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IT2000MI002800A IT1319611B1 (it) | 2000-12-22 | 2000-12-22 | Procedimento di schedulazione dei permessi di trasmissione dei dati apacchetto sui canali radio condivisi dalle stazioni mobili in sistemi |
Publications (2)
Publication Number | Publication Date |
---|---|
ITMI20002800A1 true ITMI20002800A1 (it) | 2002-06-22 |
IT1319611B1 IT1319611B1 (it) | 2003-10-20 |
Family
ID=11446302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
IT2000MI002800A IT1319611B1 (it) | 2000-12-22 | 2000-12-22 | Procedimento di schedulazione dei permessi di trasmissione dei dati apacchetto sui canali radio condivisi dalle stazioni mobili in sistemi |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP1257096A3 (it) |
CN (1) | CN1360444A (it) |
BR (1) | BR0106258A (it) |
IT (1) | IT1319611B1 (it) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7447181B1 (en) * | 2001-12-05 | 2008-11-04 | Nokia Corporation | Method and apparatus for improving a mobile station cell change operation in the general packet radio system (GPRS) |
CA2398755A1 (en) * | 2002-08-19 | 2004-02-19 | Faisal Shad | Scheduler for a shared channel |
CN1708951B (zh) * | 2002-10-23 | 2012-05-30 | 夏普株式会社 | 通信管理方法、中央控制台、通信台、通信管理程序及记录媒体 |
DE10257630B3 (de) * | 2002-12-09 | 2004-08-26 | T-Mobile Deutschland Gmbh | Verfahren zur Detektierung des Multi-User-Verhaltens auf der Luftschnittstelle bei GPRS- und EGPRS-Mobilfunksystemen |
FI115189B (fi) | 2002-12-13 | 2005-03-15 | Nokia Corp | Menetelmä pakettikytkentäisen yhteyden muodostamiseksi ja menetelmää hyödyntävä solukkoverkko ja solukkoverkon päätelaite |
US7606238B2 (en) * | 2003-06-11 | 2009-10-20 | Ntt Docomo, Inc. | Packet communication method, controller and mobile station |
KR100542346B1 (ko) * | 2003-07-30 | 2006-01-11 | 삼성전자주식회사 | 무선 랜 액세스 포인트의 패킷 처리 장치 및 그 방법 |
WO2005048613A1 (fr) * | 2003-11-12 | 2005-05-26 | Utstarcom (China) Co., Ltd. | Procede et appareil permettant d'effectuer une repartition unie de donnees par paquet dans des canaux multiples de liaison descendante d'un systeme de communications mobiles |
US8488457B2 (en) | 2003-11-14 | 2013-07-16 | Interdigital Technology Corporation | Wireless communication method and apparatus for transferring buffered enhanced uplink data from a mobile station to a node-B |
US8040834B2 (en) | 2004-03-31 | 2011-10-18 | Interdigital Technology Corporation | Wireless communication method and apparatus for reporting traffic volume measurement information to support enhanced uplink data transmissions |
JP2005303827A (ja) * | 2004-04-14 | 2005-10-27 | Ntt Docomo Inc | 無線基地局、通信経路制御方法およびパケット転送方法 |
CN100387071C (zh) * | 2004-06-30 | 2008-05-07 | 华为技术有限公司 | 一种通过空中接口实现多媒体广播多播业务的方法 |
WO2006049537A1 (en) * | 2004-11-02 | 2006-05-11 | Telefonaktiebolaget Lm Ericsson (Publ) | A method and element for wireless uplink packet data communications |
JP4421459B2 (ja) * | 2004-11-30 | 2010-02-24 | 株式会社東芝 | 無線通信装置及び無線通信方法 |
CN100446504C (zh) * | 2005-05-23 | 2008-12-24 | 华为技术有限公司 | 宽带码分多址***下行帧协议数据共享存储转发装置及方法 |
KR100810225B1 (ko) | 2005-06-27 | 2008-03-07 | 삼성전자주식회사 | 다중채널 무선통신 시스템에서 데이터 패킷 전송을 위한스케줄링 장치 및 방법 |
CN100426878C (zh) * | 2005-08-09 | 2008-10-15 | 中兴通讯股份有限公司 | 动态分配相关保留块周期的方法 |
EP1758312A1 (en) | 2005-08-26 | 2007-02-28 | Matsushita Electric Industrial Co., Ltd. | Scheduling depending on quality of service and channel properties |
BRPI0520659B1 (pt) * | 2005-11-01 | 2019-01-15 | Telefonaktiebolaget Lm Ericsson (Publ) | métodos para agendar recursos de transmissão de enlace reverso em conexão com comunicação comutada por pacotes em uma rede de radiocomunicação e para transmissão de enlace reverso em conexão com comunicação comutada por pacotes em uma estação móvel, aparelho de controle, e, estação móvel |
EP1783963B1 (en) | 2005-11-02 | 2010-10-06 | Nokia Siemens Networks GmbH & Co. KG | Method for the early establishment of uplink TBFs |
US20070104132A1 (en) * | 2005-11-07 | 2007-05-10 | Bala Rajagopalan | Techniques capable of providing efficient scheduling of packet data traffic in wireless data networks |
CN101043299B (zh) * | 2006-04-05 | 2010-08-25 | 华为技术有限公司 | 一种ack/nack方法 |
CN100508455C (zh) * | 2006-04-07 | 2009-07-01 | 华为技术有限公司 | 一种提高分组传输性能的方法 |
US9179366B2 (en) * | 2006-08-31 | 2015-11-03 | Intel Corporation | Scheduling methods and apparatus based on adjusted channel capacity |
CN101170809B (zh) * | 2006-10-25 | 2010-12-08 | 华为技术有限公司 | 实现时延压缩的方法、网络实体及无线接入*** |
CN101174883B (zh) * | 2006-11-02 | 2011-09-21 | 中兴通讯股份有限公司 | 同步调度方法 |
KR101986757B1 (ko) | 2008-02-01 | 2019-06-10 | 옵티스 와이어리스 테크놀로지, 엘엘씨 | 통신 단말기 및 우선순위가 매겨진 제어 정보를 사용하는 방법 |
EP2258131B1 (de) | 2008-03-25 | 2012-05-30 | Siemens Aktiengesellschaft | Energie- und zeiteffizienter aufbau eines drahtlosen kommunikationssystems |
WO2016065581A1 (zh) * | 2014-10-30 | 2016-05-06 | 华为技术有限公司 | 上行调度方法及设备 |
CN109587725B (zh) * | 2017-09-29 | 2022-01-11 | 北京紫光展锐通信技术有限公司 | 信道质量状态信息更新方法及装置、计算机可读存储介质 |
EP3799374A1 (en) * | 2019-09-26 | 2021-03-31 | Mitsubishi Electric R&D Centre Europe B.V. | Method for transmitting data packets and apparatus for implementing the same |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3435293B2 (ja) * | 1996-09-10 | 2003-08-11 | 株式会社東芝 | パケットスケジューリング装置及びパケット転送方法 |
-
2000
- 2000-12-22 IT IT2000MI002800A patent/IT1319611B1/it active
-
2001
- 2001-11-12 EP EP01126856A patent/EP1257096A3/en not_active Withdrawn
- 2001-12-21 CN CN01133818A patent/CN1360444A/zh active Pending
- 2001-12-26 BR BR0106258-1A patent/BR0106258A/pt not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
BR0106258A (pt) | 2002-08-20 |
EP1257096A3 (en) | 2004-03-10 |
IT1319611B1 (it) | 2003-10-20 |
EP1257096A2 (en) | 2002-11-13 |
CN1360444A (zh) | 2002-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ITMI20002800A1 (it) | Procedimento di schedulazione dei permessi di trasmissione dei dati apecchetto sui canali radio condivisi dalle stazioni mobili in sistemi | |
CN100514907C (zh) | 通信设备、通信方法和通信*** | |
US7948936B2 (en) | Quality-of-service (QoS)-aware scheduling for uplink transmission on dedicated channels | |
EP1545040B1 (en) | HARQ protocol with synchronous retransmissions | |
KR101059627B1 (ko) | 스케줄링 모드에 따른 데이터 송신 | |
CN1123156C (zh) | 通信网络中的信道分配方法及相应的*** | |
CN102665286B (zh) | 触发暂存器状态报告及调度请求的方法及相关装置 | |
TWI501677B (zh) | 傳送無線電鏈路控制(rlc)資料區塊的系統及方法 | |
CN102202414B (zh) | 移动通信***中的上行链路资源分配 | |
RU2242090C2 (ru) | Устройство и способ передачи для мультимедийной услуги в системе мобильной связи | |
US7729665B2 (en) | Down-link data transmission and receiving system and method of ARQ in wireless communication system | |
TWI495291B (zh) | 在無線通信系統中用以維護連接之服務品質之技術 | |
US20030133408A1 (en) | Apparatus, and associated method, for communicating frame-formatted data at a selected QoS level in a radio communication system | |
JP5179589B2 (ja) | 移動通信システムにおける逆方向データ転送率調整方法及び装置 | |
US20040105386A1 (en) | Method for scheduling of plural packet data flows | |
CN101296480B (zh) | 增强上行链路调度信息的触发及数据分配方法和装置 | |
KR20070047720A (ko) | 이동통신 시스템의 패킷 스케줄링 방법, 그리고 그 장치 | |
IL174333A (en) | Scheduling transmission of information packet transmission | |
JP5791677B2 (ja) | Ueにおけるデータサイズ適応システム及び方法 | |
EP1376948A1 (en) | Quality of service scheduling for packet switched data services | |
JP4163698B2 (ja) | 無線通信装置、帯域割当方法及びプログラム | |
JP4343224B2 (ja) | 移動体パケット通信システ厶 | |
CN100429899C (zh) | 一种用于时分正交频分多址***中的随机接入方法 | |
EP1652342A2 (en) | Method, access point and program product for providing bandwidth and airtime fairness in wireless networks | |
KR100240634B1 (ko) | 코드분할 다중접속 네트워크에서 매체 접근 제어 프로토콜 |