Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In questo argomento vengono descritte le strutture di dati usate dal driver del controller host USB 3.0. Understanding these data structures will help you use the USB 3.0 and RCDRKD debugger extension commands effectively. Le strutture di dati presentate qui hanno nomi coerenti con la specifica USB 3.0. La familiarità con la specifica USB 3.0 migliorerà ulteriormente la possibilità di usare i comandi di estensione per eseguire il debug dei driver USB 3.0.
Il driver del controller host USB 3.0 fa parte dello stack di driver core USB 3.0. Per altre informazioni, vedere architettura dello stack di driver USB .
Ogni controller host USB 3.0 può avere fino a 255 dispositivi e ogni dispositivo può avere fino a 31 endpoint. Il diagramma seguente illustra alcune delle strutture di dati che rappresentano un controller host e i dispositivi connessi.
Matrice di base del contesto di dispositivo
La matrice di base del contesto di dispositivo è una matrice di puntatori alle strutture del contesto di dispositivo. Esiste una struttura del contesto di dispositivo per ogni dispositivo connesso al controller host. Gli elementi da 1 a 255 puntano alle strutture del contesto di dispositivo. L'elemento 0 punta a una struttura di contesto per il controller host.
Contesto di dispositivo e contesto slot
Una struttura Contesto di dispositivo contiene una matrice di puntatori alle strutture del contesto endpoint. Esiste una struttura del contesto endpoint per ogni endpoint nel dispositivo. Gli elementi da 1 a 31 puntano alle strutture del contesto endpoint. L'elemento 0 punta a una struttura di contesto slot, che contiene informazioni di contesto per il dispositivo.
Command Ring
L'anello di comando viene usato dal software per passare i comandi al controller host. Alcuni di questi comandi vengono indirizzati al controller host e alcuni vengono indirizzati a determinati dispositivi connessi al controller host.
Event Ring
L'anello di eventi viene usato dal controller host per passare eventi al software. Ovvero, l'anello eventi è una struttura usata dal controller host per informare i driver che un'azione è stata completata.
Matrice registro porta
Doorbell Register Array è una matrice di registri porta, uno per ogni dispositivo connesso al controller host. Gli elementi da 1 a 255 sono registri porta. L'elemento 0 indica se è presente un comando in sospeso nell'anello di comando.
Il software notifica al controller host che dispone di un lavoro correlato al dispositivo o correlato all'endpoint da eseguire scrivendo informazioni di contesto nel registro del campanello per il dispositivo.
Il diagramma seguente continua a destra del diagramma precedente. Mostra strutture di dati aggiuntive che rappresentano un singolo endpoint.
Transfer Ring
Ogni endpoint ha uno o più anelli di trasferimento. Un anello di trasferimento è una matrice di blocchi di richieste di trasferimento (TRB). Ogni TRB punta a un blocco di dati contigui (fino a 64 KB) che verranno trasferiti tra hardware e memoria come singola unità.
Quando lo stack di core USB 3.0 riceve una richiesta di trasferimento da un driver client USB, identifica il contesto dell'endpoint per il trasferimento e quindi suddivide la richiesta di trasferimento in uno o più descrittori di trasferimento (TD). Ogni TD contiene uno o più TRB.
Endpoint Context
Una struttura del contesto dell'endpoint contiene informazioni di contesto per un singolo endpoint. It also has Dequeue and Enqueue members, which are used to track where TRBs are being consumed by the hardware and where TRBs are being added by software.