Hola de nuevo a todos, hoy os traemos una nueva traducción del blog Engineering Windows 7 en el que se muestran algunos detalles curiosos, como este que nos habla de las mejoras que se han realizado para recuperarse de fallos en el sistema de audio de Windows 7.
Podéis encontrar la entrada original en este enlace.
Conseguir una reproducción de audio excelente en un PC es uno de esos desafíos técnicos “mucho mas difíciles de lo que parecen”. Al contrario que los dispositivos de audio/video dedicados, los PCs tienen un montón de “interrupciones” mientras reproducen algo, que se reproduce en una increíble cadena de hardware y software. La mayoría habréis experimentado pequeños fallos que ocurren de vez en cuando. En este post Kristin Carr, un gestor del equipo de Dispositivos y Media, describe algunas de técnicas utilizadas en Windows 7 para mejorar este área, representando el trabajo de sus compañeros de equipo. Una lección que aprendí pronto en el ciclo de producto es que no se dice “libre de errores” y espero que esto tenga sentido cuando leáis esto. --Steven
¿Alguna vez habéis usado el PC para reproducir un MP3 o un DVD? Si habéis contestado que si, estáis entre la ingente cantidad de gente que utilizan el PC para aplicaciones de video y audio, incluyendo todo, desde ver una película hasta jugar a un juego, pasando por ver un video en YouTube. Pero también habréis tenido experiencias en las que el audio o el video no eran todo lo buenos que deberían – puede que el video diera pequeños saltos, o que el audio se atascase. Llamamos a esto ‘glitch’ (pequeño error) – una discontinuidad perceptible en tus dispositivos de audio o video que interrumpe la reproducción. En este post, nos vamos a centrar en los errores de audio: examinaremos los desafíos del ecosistema que pueden causar glitches, y explicaremos el trabajo que hemos estado haciendo para mejorar la experiencia de Windows 7.
¿Que causa el Glitching?
En posts anteriores, hemos tocad una variedad de iniciativas de ecosistema y desafíos que hemos tomado para Windows 7, incluyendo la compatibilidad de aplicaciones, accesibilidad, y rendimiento del sistema, entre otras. Rastreando la causa raíz de los errores de audio nos ha llevado un lugar similar: porque Windows se ejecuta en una inmensa cantidad de variaciones de hardware y ejecuta docenas de aplicaciones a la vez, es un desafío asegurar que todos los programas y drivers que se ejecutan en vuestro PC trabajaran juntos exactamente como esperáis.
El audio es especialmente sensible. Para que podáis escuchar música por los altavoces, los datos tienen que ser enviados al hardware de audio, aproximadamente cada 10 milisegundos, o ¡30 veces en un parpadeo! El desafío es que vuestro PC habitualmente está haciendo un montón de cosas a la vez que escucháis música, como streaming de un video de YouTube, o descargar una nueva canción, y muchas de esas tareas tienen requisitos de tiempo complejos también. Como os podéis imaginar, no lleva mucho trabajo – un driver de red lento o un driver gráfico que requiere toda la CPU – conseguir que el audio llegue a vuestros oídos de forma continua.
Así que, ¿que vamos a hacer para superar el desafío? La respuesta es ‘un monton de cosas’ – y las vamos a explicar a continuación:
- Recoger datos para caracterizar el problema
- Desarrollar un método sistemático para detectar y analizar glitches
- Desplegar ampliamente esos test y herramientas, tanto en Microsoft como por nuestros partners de Windows.
- Comprometerse con los partners para detectar, diagnosticar y arreglar las incidencias de glitching.
¿Quién experimenta el Glitching?
Estudiando esto durante el ciclo de desarrollo de Windows 7, nuestra primer actuación fue recoger información. Habíamos escuchado informes de fallos de audio, pero no sabíamos el ámbito exacto del problema. ¿Cómo de frecuente es el audio glitching? ¿Hay maquinas peores que otras? Con estas preguntas en mente, nos dispusimos a entender el problema algo mejor.
Recogimos información utilizando la infraestructura de telemetría de Windows, que permite a los usuarios informar a Microsoft con datos de rendimiento y otras estadísticas que nos ayudan a mejorar el SO. Para cada máquina que decidió contribuir con información con Microsoft, medimos el número de veces que el hardware de audio subyacente se había quedado sin datos (p.e., cuando el usuario puede sufrir un glitch). Esta información se agrupó en “sesiones”, cada una de las cuales representaba los datos recogidos de una máquina en un único día, o la información recogida entre reinicios de máquina, la que fuera mas corta.
Entremos en algunos de los resultados. Primero miremos al valor general del glitching de audio:

Figura 1: Distribución del número de glitches por sesión
El gráfico superior muestra datos de usuarios externos (no Microsoft) de la versión RC. Aproximadamente el 80% de la sesiones no mostraron glitching, pero el 4.3% mostró 10 o mas glitches, lo que indica que los errores de audio afectan a un número significativo de usuarios.
Una vez que sabemos la frecuencia con la que ocurren los glitches, comenzamos a fijarnos en porque ocurren. Primero separamos los datos por el factor portátil/sobremesa:
Figura 2: Glitching separado por factor.
Con estos datos, nos dimos cuenta de que los portátiles tenían casi el doble de posibilidades de sufrir un glitch. Debido a esto, nos aseguramos de incluir PCs portátiles y todo tipo de escenarios móviles (por ejemplo, reproducir música sólo con alimentación de batería) para mejorar la cobertura de los tests y herramientas de diagnóstico.
A continuación, observamos el glitching por fabricante:
Figura 3: Glitching por fabricante
Estos datos mostraron que algunos fabricantes eran mas susceptibles de sufrir glitch de audio que otros. Debido a ello, nos aseguramos de repartir las pruebas entre un amplio espectro de máquinas y fabricantes. Además, estamos usando estos datos para trabajar con los fabricantes para ver si podemos identificar componentes o causas específicas que puedan resultar en un incremento de los glitches.
Finalmente, nos fijamos en el glitching en una amplia variedad de modelos de PC:
Figure 4: Resumen de todas las sesiones de glitch por modelo de PC
En el gráfico de arriba, examinamos todas las sesiones que habían tenido al menos un glitch, y buscamos cualquier correlación con la marca y el modelo de PC como se ve en la tabla (los nombres de máquinas se han anonimizado). Lo primero que hay que tener en cuenta es que la Machine A es responsable de mas del triple de glitches de audio que el resto de los modelos de la tabla. Estos datos confirmaron informes previos de glitching de audio en esta máquina en particular, que comprobamos que eran debidos a una tarjeta gráfica enviada en una configuración con fallos. Como resultado, pudimos trabajar con el fabricante para mejorar la configuración.
Este gráfico también ayuda a mostrar como de imprevisible es la incidencia. Había cientos de modelos de PC que mostraron pruebas de glitching – de hecho, fue dificil encontrar un único modelo de PC para el que no hubiera ocurrido nunca un glitch. Por otro lado, la mayoría de las máquinas individuales no mostro ningún problema. La conclusión que obtuvimos de todo esto es que los errores de audio no eran causados por una configuración de hardware, y para mejorar la experiencia, íbamos a tener que buscar –alcance, sistema- una solución amplia para este problema.
Desarrollando herramientas para diagnosticar el glitching
Una vez que teníamos los datos de como y porque ocurren los errores, el equipo de Windows Devices & Media Performance desarrolló una exhaustiva suite de pruebas que se centraban en los escenarios de reproducción y que se diseño para determinar lo bien que un PC se comportaba en ese escenario. Durante una reproducción multimedia, estas pruebas grabaron miles de estadísticas sobre el rendimiento del sistema, incluyendo carga de CPU, actividad de todos los componentes del sistema y sus correspondientes interacciones, y cuando ocurría un glitch, entre otras cosas. Cubrimos un amplio rango de escenarios y configuraciones, incluyendo portátiles sólo con batería, hardware bajo estrés, cientos de tipos de contenidos multimedia, y mucho más. El objetivo era probar cada PC en una gran variedad de escenarios para descubrir y aislar los errores de audio.
Adicionalmente, el equipo de Devices & Media Performance creó una herramienta gráfica para marcar los glitches así como las actividades de la CPU que ocurrieron antes y durante el error, lo que nos permitía diagnosticar rápidamente cualquier problema de glitching que descubríamos. Por ejemplo, en la figura que se muestra a continuación, podemos ver una representación visual de cuando ocurre un glitch, y podemos mostrar medidas relacionadas que ocurrieron a la vez que el glitch para así marcar cualquier comportamiento sospechoso.
Figura 5: Vista gráfica de ejemplo de resolución de problemas en errores de audio.
En este caso, podéis ver cuatro errores de audio (mostrados por las líneas rojas verticales en el panel superior). Dos paneles mas abajo, hemos mostrado llamadas a la CPU que aparentan ser más largas de 3ms (llamadas long ISRs/DPCs). En este ejemplo, podéis ver una correlación directa entre los errores de audio y ISRs y DPCs largas, que son llamadas a procedimientos ejecutadas por el sistema operativo, que tienen la posibilidad de monopolizar la CPU y producir errores de audio. Desde este punto, podíamos rastrear los componentes resposables de estas llamadas, para así reducir o eliminar los errores. Esta figura muestra información adicional a la que usamos para diagnosticar el problema anteriormente expuesto; de todas maneras, esta información y la mayoría del resto de medidas están disponibles para diagnosticar otros errores e incidencias de rendimiento de un gran rango de fuentes.
Poniendo las herramientas a trabajar
Armados con estas pruebas y herramientas, nuestro siguiente paso fue desplegarlas en tantos sistemas como era posible. Como parte de esta tarea, estamos participando en una iniciativa para ayudar a los OEMs a probar sus PCs antes o durante el transporte. Cientos de máquinas OEM se enviaron a Microsoft para ser usadas en nuestros laboratorios donde ejecutamos miles de pruebas para validar y asegurar la mejor experiencia de usuario. Lo que esto significa es que si nos damos cuenta de que la configuración de una máquina en particular puede ser susceptible de sufrir errores de audio, podemos trabajar con el OEM para arreglar el problema antes de que el consumidor pueda ver el nuevo PC.
Ejecutando estas pruebas y analizando los resultados con nuestras nuevas herramientas, hemos sido capaces de encontrar cientos de incidencias potenciales que han resultado en errores de audio. En algunos casos, este análisis resultó en cambios al código de Windows. En otros casos, hemos identificado componentes desarrollados por nuestros partners que pueden llevar a errores de audio.
Comprometiéndonos con los partners de Windows
Como las incidencias que identificamos con estas herramientas habitualmente afectan componentes de muchos partners, un aspecto importante de este trabajo es comprometernos con estos partners. Hasta ahora, ha sido imposible para os fabricantes saber como afectan sus componentes al sistema como un todo, pero poniendo esta pruebas y herramientas a su disposición, estamos intentando capacitarlos para ver como sus componentes interactúan y cual será el impacto final en los usuarios.
Como parte del esfuerzo, hemos estado trabajando para asegurar que nuestros partners pueden aprovechar estas nuevas herramientas y pruebas. Hemos hablado con OEMs, ODMs (original design manufacturers, que tradicionalmente ensamblan los PC para los OEM), fabricantes de hardware, y proveedores de software. Hemos hecho presentaciones y tutoriales, escrito whitepapers, y mantenido workshops por videoconferencia. Nuestro objetivo ha sido hacer tan fácil como sea posible, crear un hardware y software tolerante a errores.
En resumen, este esfuerzo incluye:
- Compartir datos de telemetría de errores de audio con nuestros partners. Nuestros partners han tenido muy pocos datos concretos para resolver los errores de audio. Con los datos que estamos recogiendo ahora, podemos ayudarles a diagnosticar problemas y mejorar sus productos.
- Ejecutar nuestra suite de pruebas de rendimiento de audio y video en cientos de máquinas que los OEMs nos enviaron y comunicar los resultados a nuestros partners. Probando tantos sistemas como sea posible y proporcionando estos resultados, comenzamos a combatir las causas de los errores de audio.
- Proporcionar las herramientas y el soporte que permita a nuestros partners comprender como interactúan sus componentes con todo lo demás en un PC y capacitarlos para descubrir mas fácilmente las posibles incidencias que pueden resultar en errores de audio.
Que sigue
Finalmente, nosotros y todos nuestros partners tenemos un cliente común (¡tú!); trabajando con nuestros partners, llamando la atención de estas incidencias, y proporcionando mejor visión sobre las causas raíz de los errores de audio, estamos continuamente mejorando la experiencia de audio para todo el mundo.
Y esto es todo, espero que esta traducción sirva para ver, entre otras cosas, como trabaja un equipo de desarrollo de Windows y los retos que ellos mismos se marcan. Y esperemos que no se nos corten las canciones muy a menudo con Windows 7.
Un saludo,
Enviado
ago 13 2009, 09:38
por
Matias Cordero