Con el desarrollo de la inteligencia artificial, la comunicación 5G, la computación en nube y otros campos de computación especiales, la arquitectura informática de dominio de computación Especial ha entrado en una nueva era dorada. Dos factores importantes que describen esta era dorada son el hardware de código abierto (chips) y el Desarrollo ágil: el código abierto puede reducir el umbral del diseño de chips, mientras que el diseño ágil puede acortar el ciclo de desarrollo.
Cuando se trata de chips de código abierto, RISC - V es un representante de código abierto. El año pasado, la Fundación Internacional RISC - V trasladó su sede a Suiza. Actualmente cuenta con más de 1.000 miembros y unas 200 organizaciones empresariales. China ocupa una posición muy importante en esta esfera, ya que las empresas chinas representan más del 20% y nueve de los 19 miembros de la Junta proceden de China.
Con el conjunto de instrucciones abiertas RISC - V siendo perseguido por la industria, el concepto de chip de código abierto ha entrado gradualmente en la visión de la gente, y atrajo la atención y la inversión de todo el mundo. A nivel internacional, muchos académicos de la Academia de ingeniería de los Estados Unidos, incluido el Profesor David Patterson, ganador del Premio Turing, as í como expertos del Instituto Tecnológico de Massachusetts, la Universidad de California, Berkeley, la Universidad de California, San Diego, la Universidad de Stanford y la Universidad de Google, asistieron al Simposio ISCA Vision de la Conferencia emblemática Internacional sobre arquitectura informática de 2019. NVIDIA y DARPA, entre otras empresas y organismos gubernamentales, se centran en los temas candentes de "hardware abierto ágil para la próxima generación de computación", como el conjunto de instrucciones, la cadena de herramientas EDA de código abierto, el proceso de diseño, la síntesis avanzada y la validación formal.
¿Cuáles son las oportunidades de innovación para chips de código abierto? Bao Yungang, Director Adjunto del Instituto de tecnología informática de la Academia China de Ciencias, dijo en el foro técnico que RISC - V pertenece a la colección de enseñanza abierta. De hecho, es un manual de instrucciones abierto. Por ejemplo, la CPU Intel tiene más de 5.000 páginas de manual de conjuntos de instrucciones, la CPU ARM tiene más de 2.000 páginas de manual de conjuntos de instrucciones, y RISC - V tiene más de 200 páginas de manual de conjuntos de instrucciones. Si el conjunto de instrucciones se convierte en una verdadera arquitectura, entonces un gran número de documentos de diseño se generan y luego se exponen; De acuerdo con el archivo de diseño se convierte en código fuente, el código fuente también puede ser abierto; La cadena de herramientas EDA puede convertir código abierto en diseños de chips, y luego las herramientas de diseño EDA pueden ser de código abierto.
Es bien sabido que el mercado mundial de la AED está dominado por los tres principales fabricantes Cadence, Synopsys y mentor (2021 renombrado Siemens EdA). Su línea de productos a gran escala y completa puede proporcionar una solución completa para todo el proceso. Por el contrario, los instrumentos nacionales de AED tienen menos del 5% de cuota de mercado en China y sólo el 0,2% en el mercado mundial. Además, las empresas nacionales de AED son pequeñas y tienen un solo producto, la mayoría de las cuales son herramientas puntuales, y sólo pueden proporcionar soluciones parciales. Una sola herramienta EDA es difícil de cumplir con los requisitos del diseñador para todo el proceso de diseño IC. Cambiar entre diferentes herramientas aumenta el riesgo de integridad de los datos. Por lo tanto, el mercado necesita cada vez más plataformas de código abierto.
El laboratorio Pengcheng y el Instituto de tecnología informática de la Academia China de Ciencias, Jay biwei, sostienen que la EDA de código abierto es una garantía importante para apoyar la ecología de chips abiertos. Muchas experiencias exitosas han demostrado que el código abierto y la apertura son la base necesaria para construir una ecología tecnológica e industrial próspera. Por ejemplo, el sistema operativo Linux soporta todo el ecosistema de código abierto; Otro ejemplo es el sistema operativo móvil Android. Aunque ahora es de código cerrado, comienza con código abierto y unifica todo el ecosistema de internet móvil excepto Ios. En el campo de la inteligencia artificial, Caffe, tensorflow, pythorch y Flying Paddle son las piedras angulares de todo el ecosistema tecnológico de la inteligencia artificial.
Las herramientas EDA de código abierto pueden reducir el umbral del diseño de chips, por ejemplo, reduciendo los costos de mano de obra, IP y EDA necesarios para el diseño de chips. También puede proporcionar buenas ideas para el desarrollo de la investigación científica básica y la formación de talentos en el campo de la AED, ya sea para empresas, universidades, institutos de investigación académica o entusiastas individuales en el campo de los chips y la AED. Si la AED de código abierto puede reunir muchas fuerzas, ayudará a nuestro país a ponerse al día con el nivel avanzado internacional.
Sin embargo, la base del software EDa en nuestro país sigue siendo débil, y está casi en blanco en el campo de código abierto. La AED de código abierto todavía se enfrenta a muchos desafíos: menos usuarios, menos contribuyentes, estructura marco poco clara; En el Foro también se examinaron varias soluciones. Los detalles son los siguientes:
Pocos usuarios: la calidad de las herramientas EDA de código abierto es mucho menor que la de las herramientas comerciales, y el número de usuarios es muy limitado. La solución es mejorar la calidad de las herramientas y hacer hincapié en la inspección de proyectos en el entorno de producción. En otras palabras, las herramientas de eda de código abierto no sólo deben permanecer en documentos académicos y Código de software, sino que también deben combinarse con otras herramientas de punto para formar una cadena de herramientas para apoyar la validación completa del CHIP y generar retroalimentación efectiva del usuario. Por ejemplo, Magic ha realizado varias verificaciones de salida de cinta en los Estados Unidos, y el documento tiene datos reales de prueba de chips.
Hay pocos contribuyentes: el ámbito de la AED es relativamente pequeño y su comunidad de código abierto es aún menor. La mayoría de los principales contribuyentes a herramientas de código abierto como yosys, ABC, Magic y openroad son alrededor de 10 personas. Debido a las características de la disciplina de la AED, los contribuyentes de la AED de código abierto necesitan tener el conocimiento de CS, Math, EE y microe al mismo tiempo. El desarrollo de cada herramienta EDA de código abierto no está abierto. Es básicamente el equipo interno de una escuela, institución de investigación y empresa. Los participantes externos son pocos y difíciles de participar. La solución consiste en descomponer, abstraer y describir completamente los problemas técnicos de la AED y clasificarlos como expresiones lingüísticas que pueden ser entendidas en matemáticas, algoritmos y áreas especializadas de alto rendimiento, y movilizar el poder de la comunidad multidisciplinaria.
La estructura del marco no está clara: la inconsistencia del Código y la baja tasa de reutilización son problemas comunes del software de código abierto. Sin embargo, la poderosa Unión de herramientas y algoritmos EDA de código abierto hace que este problema sea aún más prominente. El diseño de nuevos algoritmos a menudo requiere una gran cantidad de reescritura de código, lo que pierde el significado de código abierto. Hay dos soluciones. En primer lugar, el diseño modular, comenzando con el diseño del marco básico, luego a la capa de algoritmo, abstrae las operaciones comunes y el formato de datos, explora las reglas de reconstrucción iterativa del Código, y forma un marco básico racionalizado, eficiente y modular. Este diseño modular también ayuda a acelerar el proceso de diseño de la AED a través de la arquitectura de computación paralela distribuida. En segundo lugar, la abstracción normativa. Todo el proceso de diseño, especialmente el diseño frontal, se divide en varios niveles de abstracción utilizando conceptos de diseño de compiladores excelentes, como la representación intermedia Multinivel (mlir), para que los expertos en cada campo puedan centrarse en sus respectivos niveles de abstracción. Al mismo tiempo, la cadena de herramientas EDA se abre a través de la compilación de varios niveles para lograr una verificación flexible y conveniente de todo el proceso. De esta manera, incluso las herramientas Dot pueden conectarse de forma flexible a la cadena de herramientas EDA de código abierto a través de formatos de conversión estandarizados para verificar plenamente el rendimiento y la calidad de las herramientas que desarrollan. Esta tendencia está surgiendo en la industria y el mundo académico de América del Norte.
En el caso de los proyectos de AED de código abierto, desde procesos bajos (110 nm) hasta procesos altos (55 nm, 40 nm o incluso 28 nm). Desde la aplicación a nivel universitario hasta la aplicación a nivel de producto empresarial, desde el chip asic a gran escala hasta el proyecto SOC, debemos adherirnos a la estrategia de combinar la investigación y la aplicación, tomando la viabilidad como fuerza motriz, la investigación y la aplicación a la aplicación. La cadena de herramientas, las herramientas puntuales, el conjunto de benchmarks, las aplicaciones de demostración y las bibliotecas de procesos de código abierto de clase industrial se dividen en cinco aspectos.
Avances en la investigación industrial
Vale la pena mencionar que en la Conferencia asplos 2021, el Dr. Chris lattner (uno de los principales patrocinadores y autores del proyecto llvm, el autor del compilador clang), que acaba de pasar de Google Brain a Star RISC - V, completó la era dorada del diseño de compiladores en la era de la presentación de diseño conjunto de hardware / software, Se propone un nuevo marco unificado de EDA (automatización de diseño electrónico) basado en la tecnología de compilación mlir, y se diseña una cadena de herramientas para Eda, como el flujo de tiempo o pytorch en el software, que proporciona una infraestructura completa y flexible. El proyecto circt, al igual que el proyecto mlir, es fácil formar consistencia ecológica en el diseño de hardware y la programación de software.
En el camino del software EDA de código abierto, los académicos nacionales de eda y la industria están tratando de encontrar puestos adecuados para contribuir a la EDA de código abierto.
En el campo de los chips de código abierto, el Instituto de tecnología informática de la Academia China de Ciencias puso en marcha el chip de procesador RISC - V y el sistema operativo nativo RISC - V en 2019, y construyó el sistema de tecnología de chips de código abierto con ventajas de costo - beneficio en el proceso doméstico de 28 nm. Además, están explorando la EDA de código abierto para diseñar chips de código abierto. Sobre la base de las herramientas de código abierto existentes, construyeron un proceso de diseño de RTL a gds2 basado en Python. En agosto pasado, cinco estudiantes universitarios de la Universidad Nacional de Ciencia y tecnología utilizaron la herramienta EDA de código abierto durante dos años. El chip guohu 1 está diseñado e implementado.
La Academia China de Ciencias también ha desarrollado agileserve, una plataforma en la nube para el diseño ágil de chips, que integra elementos de código abierto para apoyar a los usuarios a personalizar rápidamente los chips de procesador y el desarrollo de software, reduciendo el umbral de diseño de chips. Para los estudiantes, el diseño de chips se puede hacer en cualquier momento y en cualquier lugar; Es posible que los profesores instruyan a los estudiantes en línea.
Chen, Director General Adjunto del Centro de innovación de la industria de servicios de diseño de circuitos integrados de Nanjing Co., Ltd. (en adelante, el Centro de innovación de la AED), introdujo el método de código abierto para crear la Biblioteca Nacional de la AED (Open EDI). Dado que los instrumentos nacionales de puntos de la AED son independientes y constituyen una base común para la ecología nacional, se prevé que los instrumentos de puntos se vinculen entre sí. El objetivo de la investigación y el desarrollo de la base común de la AED es apoyar todas las herramientas nacionales de la AED, reunir un conjunto completo de cadenas de herramientas de la AED y convertirse en la base común ecológica nacional. La siguiente figura muestra la infraestructura común de la AED. La parte inferior es la capa de datos, que alberga todas las bases de datos y modelos de datos EDa en memoria y disco, incluyendo varios módulos de analizador, módulos de interfaz de usuario, etc. la capa superior es la capa de algoritmo general y el marco informático.
Lin Yibo, de la Universidad de Beijing, presentó el famoso proyecto de optimización de rutas de aprendizaje en profundidad. Describió el uso del aprendizaje en profundidad para mejorar los algoritmos tradicionales de localización y enrutamiento. En este proceso, las herramientas de localización y ruta de código abierto deben ser usadas, de lo contrario será muy difícil. Es difícil obtener muestras de aprendizaje profundo. En el futuro, seguirán mejorando los algoritmos, aumentando la estabilidad y la capacidad de generalización. Se espera que se publique un conjunto de datos abierto de la AED, como imagenet, para atraer la competencia y el desarrollo entre el mundo académico y la industria.
Yan Hao, del Centro Nacional de investigación de ingeniería de sistemas asic de la Universidad del sureste, introdujo el método de diseño de umbral cercano de tensión ancha y el desarrollo de eda de código abierto. Dijo que el desafío técnico de las herramientas EDA es el desarrollo de algoritmos de modelado y optimización de desviaciones resultantes de la evolución de la tecnología y el tamaño del grabado. Señaló que el mayor desafío en la investigación era pasar mucho tiempo copiando el Código de otras personas, por lo que también estaban trabajando con empresas nacionales de Eda, como niiceda, e invirtiendo activamente en herramientas de análisis de tiempo de código abierto.
Zhu zhufei, de la Universidad de Ningbo, compartió el progreso de la investigación sobre la herramienta de síntesis automática de dominios lógicos múltiples. La síntesis lógica, dice, convierte todas las descripciones de nivel RTL de los circuitos digitales diseñados en conexiones de circuitos celulares en bibliotecas de procesos especificadas, siempre que se cumplan las limitaciones. La síntesis lógica incluye principalmente tres etapas: traducción, optimización y mapeo de procesos. Señaló que el método de síntesis basado en diferentes conjuntos lógicos completos era adecuado para diferentes escenarios. Las herramientas EDA existentes se basan en la lógica booleana tradicional. Los nuevos operadores pueden ofrecer más oportunidades, como la conversión de polaridad. Reed Muller, TB, RM dual Logic, etc. en el lado de código abierto de Eda, señaló la tendencia de desarrollo de la herramienta de composición lógica: 1. AI se utiliza en Eda, y el método de AI se utiliza para inferir el orden de transformación de optimización de la composición lógica para que los ingenieros sin experiencia puedan obtener scripts de optimización; 2. EDA se utiliza para AI, y la operación lógica se invierte en forma de tabla de búsqueda para lograr el mismo peso que la red neural. 3. Solución óptima, dado un circuito digital, los métodos existentes dependen en gran medida del Solucionador SAT para obtener el número mínimo de nodos, la profundidad lógica mínima, etc. excelente solución, pero el Solucionador SAT en sí es un algoritmo heurístico, la simulación del circuito digital puede ayudar a SAT a realizar una búsqueda más eficiente; 4. Habilitador de tecnología para desarrollar nuevas abstracciones lógicas y ayudar a evaluar nuevos procesos, como materiales bidimensionales y desarrollo. Cualquiera que sea el conjunto de entrenamiento, la optimización de la búsqueda y el nuevo modelo se beneficiarán del ecosistema de código abierto.
¿A dónde va la EDA de código abierto?
¿El ecosistema de eda de código abierto se enfrenta a muchas dificultades de 0 a 1. Cómo se puede lograr a través del bucle cerrado de eda de código abierto? ¿Cómo mantener el desarrollo sostenible de la ecología? ¿Cómo prevenir los riesgos ecológicos, como el fracaso de la retirada, la divulgación de la propiedad intelectual y las patentes? ¿Adónde deberíamos ir en el futuro? En cuanto a estas cuestiones, los académicos y expertos participantes tienen diferentes opiniones y han celebrado debates intensos y significativos.
De 0 a 1, la ecología de la AED de código abierto comienza en el mundo académico
A diferencia del software de código abierto tradicional, la estructura de datos, la calidad del Código y el algoritmo del software EDA de código abierto son muy profesionales, y el Grupo de usuarios es pequeño, lo que limita el tamaño de la comunidad de código abierto. A lo largo de la historia, las empresas de alta tecnología de Silicon Valley, como Xinghai, comenzaron con la innovación universitaria. La AED es la misma. En primer lugar, capacitar a los primeros usuarios de la AED universitaria de código abierto, tanto profesores como estudiantes, para que utilicen las herramientas de código abierto de manera innovadora, y luego mejorarlas continuamente e iterativamente para que estén disponibles en el futuro. Grado
Sin embargo, la promoción y el mantenimiento del ecosistema de la AED de circuito cerrado en el mundo académico también son difíciles. La cuestión más importante es la participación de la comunidad académica en el desarrollo de la AED de código abierto y el mantenimiento continuo de los proyectos de código abierto. Desde el punto de vista utilitario, cuando los investigadores universitarios transfieren sus intereses de investigación o terminan sus proyectos, la motivación para mantener proyectos de código abierto desaparece. Los estudiantes pasan años de experiencia aprendiendo y dominando herramientas de eda de código abierto, preferiblemente con herramientas de negocios más prácticas para buscar empleo; La alta calidad no es mucho trabajo de código abierto para los estudiantes, y los estudiantes a veces re - implementan algoritmos o herramientas más rápido que romper (o incluso depurar) El Código de un proyecto de código abierto. Después de que los estudiantes se gradúen, si no hay buena documentación y control de código de alta calidad, entonces la motivación de la comunidad académica posterior para continuar el Desarrollo iterativo no es suficiente.
Por lo tanto, el Foro recomienda que los criterios de evaluación académica de las universidades se guíen adecuadamente para que los proyectos de código abierto con alta calidad de código y documentación, as í como los proyectos estrella en plataformas de alojamiento y colaboración de código, como github / gitee, se conviertan en tarjetas de visita académicas para académicos universitarios, estudiantes y expertos empresariales. La puesta en marcha y el mantenimiento de un proyecto EDA de código abierto estimularán en gran medida el empleo de los estudiantes.
El establecimiento del ecosistema de la AED de código abierto también requiere un conjunto de pruebas de referencia, especialmente un conjunto de pruebas de referencia industrial que puede completar el proceso de extremo a extremo; Cómo pasar de un pequeño conjunto de datos académicos a un diseño avanzado a nivel industrial es un tema de discusión. Las empresas de diseño de chips más conocidas de la industria pueden proporcionar diseños de baja sensibilidad para que las comunidades de código abierto puedan utilizarlos como referencia para la investigación académica y los concursos de estudiantes, ampliando así el tamaño de las comunidades de código abierto. En particular, en la era actual, en la que la tecnología de aprendizaje profundo y la AED están estrechamente vinculadas, se necesita "imagenet" en el campo del diseño de chips para promover la prosperidad de la comunidad.