El software es cada vez más responsable de la mayoría de los costos de ingeniería a lo largo del ciclo de vida del SoC. Si desea que su producto tenga éxito, debe tener el software correcto. Esto significa desarrollar código de mayor calidad, corregir más errores e implementar más optimizaciones. Para lograr esto, es fundamental contar con las mejores opciones de depuración y rastreo. CoreSight es el estándar de facto para depurar y rastrear SoC basados en ARM.
prólogo
Los costos de desarrollo de software están superando rápidamente los costos de desarrollo de hardware. Los datos publicados por la agencia International Business Strategies (IBS) muestran que las empresas de semiconductores gastarán más en software que en hardware en el nodo de proceso de 65 nm, y el primero representará el 75 % de los costos totales de desarrollo en el aumento de 22 nm.
El informe International Technology Roadmap for Semiconductors (ITRS) 2007 analiza tendencias muy importantes en la proporción de ingeniería de hardware y software y costos de herramientas para diseños de SoC de gama alta, como se resume en la Figura 1.El diseño de circuitos integrados ahora representa más del 80 % del desarrollo de sistemas integrados [engineering] costo”.
El éxito del producto está indisolublemente ligado a la calidad del software
Las soluciones modernas de sistema en chip pueden ser muy complejas, con muchos motores de procesamiento, matrices de bus jerárquicas, funciones de administración de energía, etc., y el software que habilita dichos dispositivos es inherentemente complejo. Se espera que los proveedores de semiconductores de hoy en día proporcionen plataformas completas, no solo controladores de dispositivos básicos. Los OEM/ODM necesitan integrar, validar y optimizar rápidamente las pilas de software de varios niveles. Para que el producto final tenga éxito, el software debe funcionar bien y a tiempo. Esto se aplica durante todo el ciclo de vida del diseño y en todos los niveles de la pila.
Si la calidad y la optimización del software son fundamentales para garantizar el éxito del producto, la tecnología de depuración y rastreo es fundamental para lograrlo. Las técnicas tradicionales de depuración y rastreo basadas en software suelen ser inaceptablemente invasivas, onerosas y poco prácticas. Las técnicas actuales de rastreo asistido por hardware son útiles, pero aún tienen muchas limitaciones. Además, se requiere un enfoque de todo el sistema para analizar la interoperación entre muchos agentes de procesamiento e infraestructuras complejas en SoC. ARM aborda este problema ampliando la omnipresente arquitectura CoreSight con dos nuevos componentes: System Trace Macrocell (STM) y Trace Memory Controller (TMC).
rastro de hoy
Las herramientas y técnicas de depuración y rastreo juegan un papel muy importante en todas las etapas del ciclo de diseño. Esto afecta la arquitectura del sistema y el software de bajo nivel, la portabilidad del sistema operativo, el desarrollo de aplicaciones, la integración, la verificación posterior, el mantenimiento de campo y el análisis de fallas. El propósito de la depuración y el seguimiento se extiende más allá de la corrección de errores para generar perfiles y analizar el rendimiento del comportamiento del sistema con el objetivo de mejorar la eficiencia general del sistema.
Las actividades de depuración interactivas, como detener y reanudar, el acceso directo y la manipulación de la memoria y los registros periféricos, y los pasos de instrucciones, son muy invasivos y pueden cambiar el estado del sistema y los patrones de ejecución. Los agentes de depuración tradicionales tienen efectos secundarios desagradables, como la activación de interrupciones y otros eventos del sistema, como vaciados de caché. Muchos tipos de errores e instancias de comportamiento erróneo requieren la observación y el análisis de un sistema en ejecución. Esto es especialmente cierto para los sistemas multiprocesador. Las técnicas de rastreo son un excelente complemento para la depuración interactiva al seguir la información en tiempo de ejecución que se puede ver en tiempo de ejecución y guardar para un análisis posterior.