Si bien las arquitecturas de código abierto han hecho que los nuevos diseños de microprocesadores sean económicamente viables, las pruebas y la validación siguen siendo un obstáculo importante.
A medida que el diseño de chips se democratiza con el advenimiento de las arquitecturas de procesadores de código abierto como RISC-V, cada vez más organizaciones trabajan en diseños de procesadores que incluyen inteligencia artificial, desde microcontroladores integrados hasta CPU de grado servidor y de escritorio de gama alta. (IA) y diseño de aprendizaje automático (ML).
Desafíos de verificación
Aunque los nuevos diseños de microprocesadores se han vuelto económicamente viables con arquitecturas de código abierto, la parte de prueba y verificación del ciclo de desarrollo sigue siendo un obstáculo importante, ya que estas actividades representan aproximadamente el 70 % del costo total del desarrollo del chip. Además, esto no tiene en cuenta el costo de errores perdidos o re-giros si resulta que el chip tiene fallas funcionales (errores) que no se descubrieron antes de la fabricación. Solo mire el impacto de los errores de seguridad como Spectre y Meltdown, que han afectado prácticamente a todos los procesadores del planeta, independientemente de quién sea el proveedor, incluidos los grandes nombres como Arm, Intel y AMD.
Entonces, ¿cómo podemos esperar que los futuros diseños de chips estén a salvo de estos errores maliciosos que los hacen vulnerables a la piratería?¿Cómo puede estar seguro de que seguirá funcionando y no funcionará mal debido a errores intencionales o no intencionales que no se descubrieron durante las pruebas y la validación ?
La respuesta está en considerar la verificación formal. Es la única técnica de verificación que puede proporcionar “pruebas” de que no existen errores y proporcionar evidencia comprobable de errores de diseño y especificación.
Axiomatización de la corrección del procesador RISC-V
y axioma, desarrolló un nuevo kit de prueba formal utilizando aserciones de SystemVerilog (SVA) no patentadas y estándar de la industria para establecer el cumplimiento de ISA en función de la RISC-V ISA publicada. Esto se usó para determinar si una implementación de procesador en particular se ajusta a la semántica ISA.
Kit de pruebas formales Axiomise RISC-V (Fuente: Axiomise.com)
Nuestra solución es independiente del proveedor de herramientas formales, no requiere cambios de diseño y requiere que el usuario final esté familiarizado con Verilog/VHDL. Además, nuestra metodología es reutilizable en otros procesadores RISC-V. Nuestra metodología de “axiomización” se construye utilizando estándares abiertos para las afirmaciones de SystemVerilog, y el rendimiento se mejora utilizando abstracciones y kits de herramientas de reducción de problemas. De hecho, hemos implementado nuestra metodología para poder garantizar que todos los requisitos funcionales, de seguridad y de energía del procesador se traduzcan en axiomas (propiedades) comprobables y válidos de la implementación del diseño.
metodología
Una estrategia común para verificar se basa en observar la ruta de cada instrucción desde el punto de emisión hasta el punto de finalización utilizando un modelo de observación. El no determinismo permite intercalar otras instrucciones entre la emisión y la finalización de una instrucción en particular. ya revisado. Esto asegurará que detecte todo tipo de errores donde el control y la concurrencia dominan y pueden conducir a resultados erróneos.
Es importante enfatizar que se debe usar el no determinismo para verificar cada instrucción de principio a fin. Permita que otras instrucciones interfieran.
La mayoría de las instrucciones por lo general escriben un solo cheque construido alrededor de la observación de la causalidad. Se verifican todas las variantes de CARGAS y ALMACENAMIENTOS (BYTE, WORD, HALF-WORD, alineado, desalineado) porque las verificaciones de CARGAS y ALMACENAMIENTOS están construidas con una interfaz completa a la memoria. Esto le permite explorar todas las dependencias posibles entre CARGAS y TIENDAS de diferentes sabores. Especialmente si estas secuencias apuntan a la misma dirección.
En algunos casos, durante el desarrollo, también descubrimos errores que se introdujeron durante la etapa de desarrollo de prueba. La mayoría de estos se deben a un malentendido de RISC-V ISA. Afortunadamente, los comentarios de nuestros diseñadores nos permitieron alinear esto con nuestros mandatos de ISA. haga clic aquí Los detalles sobre el rendimiento, los errores encontrados, la cantidad de pruebas obtenidas, el tiempo de ejecución requerido y cómo cerrar la sesión para completar la verificación se pueden encontrar aquí.
resumen
Descubrimos que (a) el trabajo se realizó lejos del diseñador con acceso limitado, (b) no teníamos conocimiento previo de la microarquitectura del diseño y (c) la interfaz y el estado interno No había especificaciones completas y detalladas que describieran la máquina .
En muchos sentidos, nuestro trabajo representa la realidad de la verificación del diseño moderno. Los diseñadores ocupados a menudo no documentan las especificaciones microarquitectónicas detalladas, y la verificación inicial a menudo la realiza el propio diseñador localmente mediante la simulación o el conocimiento de la especificación. Se pasó de boca en boca a los ingenieros de validación que validaron el diseño de forma independiente.
Hasta donde sabemos, esta es la primera herramienta de verificación formal independiente del proveedor, utiliza un estándar abierto para SVA que todas las herramientas admiten y garantiza una convergencia >99 % con una configuración mínima. Solución de verificación formal. .
Obtenga su kit de prueba hoy y use su herramienta de verificación formal favorita para encontrar errores en sus diseños RISC-V y crear pruebas de que no existen.
por favor haga clic aquí Descubra en qué se diferencian nuestras soluciones de otras y nuestra historia de 30 años de verificación de microprocesadores.Además, siéntete libre de consulta Solicite una demostración.