Thomas Delaye, director técnico de marketing de la división de emulación de Mentor, una empresa de Siemens, investigó recientemente formas de utilizar los datos de forma más eficaz en herramientas de verificación de diseño de chips, como la emulación de hardware. Descubrió que la emulación de hardware tenía un problema de datos, especialmente porque generaba una gran cantidad de datos, lo cual era un gran desafío. A continuación se muestra una entrevista con Delaye realizada por Lauro Rizzatti sobre si la IA puede administrar datos para la verificación de SoC.
Lauro Rizzatti (LR): Gracias por acompañarnos hoy, Thomas.Escuché que lo hiciste Análisis de grandes datos. ¿Puede hablar sobre los criterios para su análisis y los resultados hasta ahora?
Retraso de Thomas (TD): Bueno, en realidad no se trataba de análisis de grandes datos. Era más un proyecto que buscaba datos para ingeniería en lugar de big data. Para mí, big data es el desafío de crear grandes cantidades de información y la capacidad de procesarla de manera eficiente para un propósito específico.
LR: Estaba buscando formas de usar los datos para mejorar o hacer que mi verificación de diseño de SoC sea más efectiva. Especialmente la emulación de hardware.
TD: Eso es correcto. Hay dos causas específicas para los problemas de datos de emulación de hardware. El primero es muy simple. Demasiados datos generados por la emulación de hardware. Digamos que tiene un diseño de mil millones de puertas y desea ejecutar mil millones de ciclos de verificación. La cantidad de datos obtenidos es demasiado grande para procesar y posiblemente incluso registrar. Los métodos tradicionales, como las formas de onda que todo el mundo ha estado usando durante mucho tiempo, solo obtener 1 millón de relojes en formas de onda es desalentador e inútil. Además de grandes conjuntos de datos, tenemos toda la infraestructura para recuperar y almacenar esos datos del emulador. Como puedes imaginar, no es una tarea fácil.
¿qué es lo que tú? Ahora pasemos al segundo problema. En otras palabras, no queremos recopilar más datos de los que necesitamos. Obtenga una cantidad significativa de información para validar su diseño mediante la gestión de la recopilación de datos. Es en esta área más compleja donde la IA puede desempeñar un papel.
Las técnicas de aprendizaje profundo y los algoritmos de aprendizaje automático se pueden utilizar para explorar diseños en función de los resultados de verificación o el comportamiento del diseño. La IA puede ayudar a determinar cuánto y qué tipo de datos mirar para comprender lo que está sucediendo. A partir de ese momento, el ingeniero de validación puede identificar qué investigar más a fondo. Puede iniciar una ejecución de seguimiento o profundizar en la ejecución actual examinando solo bloques específicos en lugar de todo el diseño. De repente, esta enorme cantidad de datos se convierte en una cantidad de datos mucho más razonable.
Este camino de obtener solo la cantidad utilizable de datos de conjuntos de datos masivos es clave para las plataformas de validación de próxima generación. Esto permite a los ingenieros de verificación lidiar con el aumento del tamaño y la complejidad del diseño y el aumento del contenido de software de una manera más precisa.
LR: ¿Qué busca para trasladar su emulación a esta plataforma de verificación de última generación?
TD: La emulación tiene la capacidad de ejecutarse durante mucho tiempo y la capacidad de “manejar” todo el diseño. Por ejemplo, Veloce Strato de Mentor le brinda visibilidad de todo cuando lo necesite. Es fácil capturar todo lo que quieres, pero no mucha gente lo quiere. Lo que se necesita es un mecanismo que brinde orientación al usuario sobre cuándo y qué capturar.
Esto es un poco más difícil debido a la gran variedad de datos que pueden proporcionar los emuladores. Algo así como información básica de ejecución donde la información no tiene nada que ver con el diseño en sí. Por ejemplo, el número de ciclos de reloj ejecutados, el tipo de transacción ejecutada, etc. Todos estos datos se denominan detalles generales. Solo tenga una plataforma rápida con visibilidad completa para ejecutar su diseño completo y tendrá acceso a él.
Otro tipo de información básica es comprender el comportamiento del diseño. Por ejemplo, esta información le dice que su diseño se está restableciendo actualmente. La secuencia de reinicio solo reinicia todo, por lo que no necesita capturar nada. Solo quiero esperar hasta la siguiente fase.
Este tipo de recopilación de datos requiere un “cerebro” que indica un reinicio, acceso a una memoria específica o activación de una estructura de reloj específica. Todo esto requiere conocimientos de diseño. Lograr esto es muy complicado. Esto se debe a que el emulador debe observar lo que sucede en el diseño y aplicar inteligencia al proceso. Y eso no suele ser lo que hacen los emuladores. Los motores de simulación y emulación son motores puros. Están ingiriendo datos, procesando esos datos y recuperando datos. Pero con Veloce Strato, crea un entorno en el que los datos se capturan y analizan para un propósito específico. El siguiente paso es extender este tipo de funcionalidad para reducir el esfuerzo de verificación de diseños grandes con grandes cantidades de datos a nivel de sistema completo. Ese es el desafío.
LR: ¿Puede dar un ejemplo concreto de cómo estos dos aspectos del problema de los datos se desarrollan en la práctica?
TD: Sí. Este es un ejemplo muy simple. Imagine una ejecución de validación muy larga en un entorno basado en transacciones. Obtenga un informe que muestre cuándo se produjeron las llamadas de transacciones o DPI. Según la marca de tiempo, intenta correlacionar ese evento con el software que se ejecuta en el procesador integrado en el diseño. En última instancia, quiero asegurarme de que estaba ejecutando este código en este momento.
Los usuarios llegan a esta conclusión basándose en los informes, pero el entorno de emulación no proporciona información de correlación real. Solo que la transacción se está produciendo en un momento específico. Entonces podría decir que en este punto estaba ejecutando y ejecutando este bloque en particular, por ejemplo, mi DDR.
Los usuarios quieren incluir punteros e información sobre lo que está pasando en sus diseños. Y como saben dónde buscar, saben con qué equipo de diseño trabajar para resolver el problema. A veces, el problema de la validación es simplemente una cuestión de no saber dónde buscar o qué equipo de diseñadores consultar. Podría deberse a una secuencia incorrecta, algún código cargando incorrectamente o algo más. En un diseño de 10 mil millones de puertas, ¿qué y dónde debo mirar primero? Esa es la primera pregunta.
Luego, quieren ayuda con los datos que pueden proporcionar para centrarse en problemas específicos. No tienes que decirme cuál es el problema. Por supuesto que sería aún mejor. Ser capaz de proporcionar datos enfocados basados en todos los datos recopilados facilita la realización de correlaciones entre los diversos registros proporcionados.
Otro aspecto es algún tipo de metodología de validación que crea una interfaz estándar o una forma central de proporcionar datos a las herramientas que identifican los bloques problemáticos, tipos de señales o tipos de comportamiento más comunes. investigado. Todos estos se pueden proporcionar al emulador si se desea, como si proporcionaran afirmaciones, pero es vago y no quiero dedicar mucho tiempo a eso. Si ve algo en la línea eléctrica que no sigue la secuencia correcta, debe marcarlo. Puede proporcionar datos para refinar su análisis.
LR: de En este proceso de pensar y buscar, ¿ha encontrado literatura, artículos, blogs, etc. que considere puntos de datos importantes?
TD: No que yo pueda pensar. No creo que nadie haya abordado este tema desde una perspectiva académica o incluso pública. Creo que este problema es el siguiente paso en la verificación. Este es ciertamente un problema global que actualmente no tiene una respuesta adecuada. Todo el mundo está buscando ayuda en la IA.
AI también plantea preocupaciones particulares para todos los usuarios, ya que el uso eficiente de AI hace que sea casi posible aplicar ingeniería inversa al código. También estamos seguros de que muchas empresas estarán dispuestas a proporcionar detalles, proporcionar diseños, proporcionar registros, etc. por motivos de confidencialidad y seguridad. Creo que será difícil. En ese caso, necesitamos encontrar un enfoque diferente a la IA que tenga mucho más sentido que simplemente proporcionar formas de onda.
Gracias por la interesante conversación y perspicacia, Thomas. Es posible que podamos hacer un seguimiento en el futuro para ver cómo está progresando este trabajo.