Se aumentó la interrupción & tiempo de DPC a la transmisión de datos de Isoch a o desde un dispositivo IEEE 1394

Este artículo le ayuda a solucionar el problema en caso de un aumento significativo del uso del procesador (interrupción & tiempo de DPC) durante la transmisión de datos en forma de datos isocrónicos desde o hacia un dispositivo IEEE 1394.

Versión del producto original:   Windows 7, Windows Server 2008
Número de KB original:   2450963

Síntomas

Puede observar un aumento significativo de la utilización del procesador (tiempo de interrupción y de DPC) durante la transmisión de datos isocrónicos desde o hacia un dispositivo IEEE 1394 con controlador de bus de IEEE 1394 de Windows 7 en comparación con versiones anteriores del controlador de bus IEEE 1394 de Windows.

Causa

En determinadas circunstancias, el controlador de bus IEEE 1394 de Windows 7 (1394ohci.sys) programa la controladora de host IEEE 1394 para generar una interrupción y el DPC (llamada a procedimiento diferido) resultante para cada paquete isocrónico enviado o recibido. En condiciones similares, el controlador de bus de Windows IEEE 1394 heredado (ohci1394.sys y 1394bus.sys) programa la controladora de host IEEE 1394 para generar sólo una interrupción y DPC que se produzcan al final de cada transferencia isocrónica (trama), tal y como lo designó el controlador de dispositivo IEEE 1394 que inicia las transferencias isocrónicas.

Una transferencia de datos isocrónica suele requerir varios paquetes de datos isocrónicos para transferir una unidad de datos significativa, como un cuadro de vídeo o un ejemplo de audio. Se puede notificar a un controlador de dispositivo IEEE 1394 cuando se ha transferido una unidad de datos con significado especificando una rutina de devolución de llamada en la estructura de descriptores Isoch usada para describir el búfer usado para esta transferencia. Esta estructura de descriptor Isoch se envía al controlador de bus IEEE 1394 de Microsoft Windows a través de una REQUEST_ISOCH_ATTACH_BUFFERS solicitud de e/s y se usa para programar la controladora de host ieee 1394 para que realice la transferencia isocrónica solicitada.

El problema descrito en este artículo se produce cuando un controlador de dispositivos IEEE 1394 envía descriptores de Isoch que describen los datos de un único paquete de datos, en lugar de descriptores Isoch que describen varios paquetes de datos, como un frame de vídeo completo o un ejemplo de audio. En este escenario, hay varios descriptores Isoch adjuntos por el controlador de dispositivo IEEE 1394, uno por paquete, y una rutina de devolución de llamada solo se especifica en el último descriptor Isoch.

Como resultado, el controlador de bus IEEE 1394 de Windows 7 invoca la rutina de devolución de llamada especificada cuando se ha transferido el último paquete de datos, pero los programas la controladora de host IEEE 1394 para generar una interrupción una vez que se han transferido los datos descritos por cada descriptor Isoch. Cada interrupción hace que se invoque el controlador de interrupciones y las rutinas de DPC en el controlador de bus IEEE 1394 de Microsoft Windows 7, lo que da como resultado un aumento en el tiempo de interrupción y DPC, lo que puede observarse en las herramientas de supervisión de rendimiento y puede tener un impacto en el rendimiento general del sistema.

Solución alternativa

Es posible que se pueda evitar este problema cambiando el comportamiento del controlador de dispositivo IEEE 1394 afectado para enviar un solo descriptor Isoch para cada unidad de datos significativa, como un cuadro de vídeo o un ejemplo de audio, en lugar de enviar un descriptor Isoch para cada paquete de datos. Esto también reduciría el número total de descriptores de Isoch que se necesitan para transferir la misma cantidad de datos isocrónicos y, por lo general, se esperaría reducir la sobrecarga de procesamiento asociada a cada REQUEST_ISOCH_ATTACH_BUFFERS solicitud de e/s.

Más información

Para obtener más información acerca de cómo los controladores de cliente IEEE 1394 envían transferencias isocrónicas al controlador de bus Microsoft IEEE 1394, consulte los artículos siguientes:

Se aplica a

  • Windows 7 Ultimate
  • Windows 7 Enterprise
  • Windows 7 Professional
  • Windows 7 Home Premium
  • Windows 7 Home Basic
  • Windows 7 Starter
  • Windows Server 2008 R2 Standard
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 R2 Datacenter