Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este tema se describen las estructuras de datos usadas por el controlador del controlador de host USB 3.0. Understanding these data structures will help you use the USB 3.0 and RCDRKD debugger extension commands effectively. Las estructuras de datos presentadas aquí tienen nombres que son coherentes con la especificación USB 3.0. La familiaridad con la especificación USB 3.0 mejorará aún más la capacidad de usar los comandos de extensión para depurar controladores USB 3.0.
El controlador de controlador de host USB 3.0 forma parte de la pila de controladores de núcleo USB 3.0. Para obtener más información, consulte Arquitectura de pila de controladores USB.
Cada controlador de host USB 3.0 puede tener hasta 255 dispositivos y cada dispositivo puede tener hasta 31 puntos de conexión. En el diagrama siguiente se muestran algunas de las estructuras de datos que representan un controlador de host y los dispositivos conectados.
Matriz base de contexto de dispositivo
La matriz base de contexto de dispositivo es una matriz de punteros a estructuras de contexto de dispositivo. Hay una estructura de contexto de dispositivo para cada dispositivo conectado al controlador host. Los elementos de 1 a 255 apuntan a estructuras de contexto de dispositivo. El elemento 0 apunta a una estructura de contexto para el controlador host.
Contexto de dispositivo y contexto de ranura
Una estructura de contexto de dispositivo contiene una matriz de punteros a estructuras de contexto de punto de conexión. Hay una estructura de contexto de punto de conexión para cada punto de conexión del dispositivo. Los elementos de 1 a 31 apuntan a las estructuras de contexto del punto de conexión. El elemento 0 apunta a una estructura de contexto de ranura, que contiene información de contexto para el dispositivo.
Command Ring
El anillo de comandos lo usa el software para pasar comandos al controlador host. Algunos de estos comandos se dirigen al controlador host y algunos se dirigen a determinados dispositivos conectados al controlador host.
Event Ring
El controlador de host usa el anillo de eventos para pasar eventos al software. Es decir, el anillo de eventos es una estructura que usa el controlador host para informar a los controladores de que se ha completado una acción.
Matriz de registro de timbre
La matriz de registro doorbell es una matriz de registros de timbre, uno para cada dispositivo conectado al controlador host. Los elementos de 1 a 255 son registros de timbre. El elemento 0 indica si hay un comando pendiente en el anillo de comandos.
El software notifica al controlador de host que tiene trabajo relacionado con el dispositivo o relacionado con el punto de conexión para realizar escribiendo información de contexto en el registro de timbre para el dispositivo.
El diagrama siguiente continúa a la derecha del diagrama anterior. Muestra estructuras de datos adicionales que representan un único punto de conexión.
Transfer Ring
Cada punto de conexión tiene uno o varios anillos de transferencia. Un anillo de transferencia es una matriz de bloques de solicitud de transferencia (TRB). Cada TRB apunta a un bloque de datos contiguos (hasta 64 KB) que se transferirán entre hardware y memoria como una sola unidad.
Cuando la pila de núcleos USB 3.0 recibe una solicitud de transferencia de un controlador de cliente USB, identifica el contexto del punto de conexión de la transferencia y, a continuación, interrumpe la solicitud de transferencia en uno o varios descriptores de transferencia (TDs). Cada TD contiene uno o varios TRB.
Endpoint Context
Una estructura de contexto de punto de conexión contiene información de contexto para un único punto de conexión. 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.