stringtranslate.com

Colocación (automatización del diseño electrónico)

La colocación es un paso esencial en la automatización del diseño electrónico : la parte del flujo de diseño físico que asigna ubicaciones exactas para varios componentes del circuito dentro del área central del chip. Una asignación de ubicación inferior no solo afectará el rendimiento del chip , sino que también podría hacer que no se pueda fabricar al producir una longitud de cable excesiva, que está más allá de los recursos de enrutamiento disponibles . En consecuencia, un colocador debe realizar la asignación mientras optimiza una serie de objetivos para garantizar que un circuito cumpla con sus demandas de rendimiento. En conjunto, los pasos de colocación y enrutamiento del diseño de CI se conocen como colocación y ruta .

Un colocador toma una lista de conexiones de circuitos sintetizados dada junto con una biblioteca de tecnología y produce un diseño de colocación válido. El diseño se optimiza de acuerdo con los objetivos antes mencionados y está listo para el redimensionamiento de celdas y el almacenamiento en búfer, un paso esencial para la satisfacción de la integridad de la señal y el tiempo . A continuación, se realiza la síntesis del árbol de reloj y el enrutamiento , lo que completa el proceso de diseño físico. En muchos casos, partes o todo el flujo de diseño físico se iteran varias veces hasta que se logra el cierre del diseño .

Especificaciones de la aplicación

En el caso de los circuitos integrados de aplicación específica , o ASIC, el área de diseño del núcleo del chip comprende una serie de filas de altura fija, con algún espacio o sin espacio entre ellas. Cada fila consta de una serie de sitios que pueden ser ocupados por los componentes del circuito. Un sitio libre es un sitio que no está ocupado por ningún componente. Los componentes del circuito son celdas estándar, macrobloques o pads de E/S. [1] Las celdas estándar tienen una altura fija igual a la altura de una fila, pero tienen anchos variables. El ancho de una celda es un número entero de sitios.

Por otro lado, los bloques suelen ser más grandes que las celdas y tienen alturas variables que pueden extenderse por varias filas. [1] Algunos bloques pueden tener ubicaciones preasignadas (por ejemplo, de un proceso de planificación de piso anterior), lo que limita la tarea del colocador a asignar ubicaciones solo para las celdas. En este caso, los bloques suelen tener referencias fijas. Alternativamente, algunos o todos los bloques pueden no tener ubicaciones preasignadas. En este caso, deben colocarse con las celdas en lo que comúnmente se conoce como colocación en modo mixto.

Además de los ASIC, la colocación conserva su importancia primordial en las estructuras de matriz de puertas, como las matrices de puertas programables en campo (FPGA). Aquí, los transistores prefabricados suelen estar dispuestos en filas (o "matrices") que están separadas por canales de enrutamiento. [2] La colocación asigna los subcircuitos del circuito a bloques lógicos FPGA programables de una manera que garantiza la finalización de la etapa posterior de enrutamiento.

Objetivos y limitaciones

La colocación se formula como una optimización restringida . En particular, el ciclo de reloj de un chip está determinado por el retraso de su ruta más larga, generalmente denominada ruta crítica. Dada una especificación de rendimiento, un colocador debe asegurarse de que no exista ninguna ruta con un retraso que exceda el retraso máximo especificado.

Otras limitaciones clave incluyen:

Generalmente existen múltiples objetivos de optimización, entre ellos:

Además, es deseable finalizar el proceso de colocación rápidamente.

La longitud total del cable es típicamente el objetivo principal de la mayoría de los colocadores existentes y sirve como precursor de otras optimizaciones porque, por ejemplo, la potencia y el retardo tienden a crecer con la longitud del cable. La longitud total del cable determina la demanda de enrutamiento y si puede ser satisfecha por el suministro de enrutamiento definido por las vías de enrutamiento disponibles. Sin embargo, hacer cables muy cortos a veces lleva a que la demanda de enrutamiento local exceda el suministro de enrutamiento local. Tales situaciones a menudo requieren desvíos de enrutamiento, que aumentan las longitudes de los cables y los retrasos de la señal. Por lo tanto, después de la optimización preliminar de la longitud total del cable, también es importante manejar la congestión del enrutamiento.

La minimización de potencia generalmente toma en cuenta los cables con mayores factores de actividad de conmutación y asigna mayor prioridad a hacerlos más cortos. Cuando se colocan muchos componentes "calientes" cerca, puede surgir un punto caliente y generar gradientes de temperatura perjudiciales. En tales casos, los componentes pueden distribuirse.

Técnicas básicas

La colocación se divide en colocación global y colocación detallada. La colocación global introduce cambios drásticos al distribuir todas las instancias en ubicaciones adecuadas en la escala global, permitiendo superposiciones menores. La colocación detallada desplaza cada instancia a una ubicación legal cercana con un cambio de diseño muy moderado. La colocación y la calidad general del diseño dependen en gran medida del rendimiento de la colocación global.

Las primeras técnicas para la colocación de circuitos integrados se pueden clasificar como optimización combinatoria . Para diseños de CI con miles o decenas de miles de componentes, las metodologías de recocido simulado [3] como TimberWolf [4] exhiben los mejores resultados. Cuando los diseños de CI crecieron a millones de componentes, la colocación aprovechó la partición de hipergrafos [5] utilizando marcos de partición anidada como Capo. [6] Los métodos combinatorios previenen directamente las superposiciones de componentes pero tienen dificultades con la optimización de interconexión a gran escala. Por lo general, son estocásticos y pueden producir resultados muy diferentes para la misma entrada cuando se lanzan varias veces.

Los métodos analíticos para el modelo de posicionamiento global interconectan la longitud mediante una función continua y minimizan esta función directamente sujeta a las restricciones de densidad de componentes. Estos métodos se ejecutan más rápido y escalan mejor que los métodos combinatorios, pero no evitan las superposiciones de componentes y deben posprocesarse mediante métodos combinatorios para lograr un posicionamiento detallado. El posicionamiento cuadrático es un método analítico temprano que modela la longitud de interconexión mediante una función cuadrática y utiliza técnicas de optimización cuadrática de alto rendimiento. Cuando se desarrolló, demostró una calidad competitiva de resultados y también estabilidad, a diferencia de los métodos combinatorios. GORDIAN [7] formula el costo de la longitud del cable como una función cuadrática mientras aún separa las celdas mediante particiones recursivas. El algoritmo [8] modela la densidad de posicionamiento como un término lineal en la función de costo cuadrático y resuelve el problema de posicionamiento mediante programación cuadrática pura. Una mejora común es ponderar cada red por la inversa de su longitud en la iteración anterior. Siempre que el proceso converja, esto minimiza un objetivo lineal en la longitud del cable. [9] La mayoría de los colocadores cuadráticos modernos (KraftWerk, [10] FastPlace, [11] SimPL [12] ) siguen este marco, cada uno con diferentes heurísticas sobre cómo determinar la fuerza de densidad lineal.

Modelos de posicionamiento no lineales de longitud de cable mediante funciones exponenciales (no lineales) y densidad mediante funciones cuadráticas locales por partes, con el fin de lograr una mayor precisión y, por lo tanto, una mejora de la calidad. [13] Los trabajos académicos de seguimiento incluyen APlace [14] y NTUplace. [15]

ePlace [16] es un algoritmo de posicionamiento global de última generación. Separa las instancias mediante la simulación de un campo electrostático, lo que minimiza la sobrecarga de calidad y, por lo tanto, logra un buen rendimiento.

En 2021, Google Brain informó de buenos resultados del uso de técnicas de IA (en particular, aprendizaje por refuerzo) para el problema de la colocación. [17] Sin embargo, este resultado es bastante controvertido, [18] [19] [20] ya que el artículo no contiene comparaciones directas con colocadores existentes y es difícil de replicar debido al contenido exclusivo. Al menos un comentario inicialmente favorable se ha retractado tras una revisión más profunda. [21]

Véase también

Referencias

  1. ^ ab A. Kahng, J. Lienig, I. Markov, J. Hu: "Diseño físico VLSI: desde la partición de gráficos hasta el cierre temporal", Springer (2022), doi :10.1007/978-90-481-9591-6, ISBN 978-3-030-96414-6 , págs. 10-13. 
  2. ^ A. Kahng, J. Lienig, I. Markov, J. Hu: "Diseño físico VLSI: desde la partición de gráficos hasta el cierre temporal", Springer (2022), doi :10.1007/978-90-481-9591-6, ISBN 978-3-030-96414-6 , págs. 14-15. 
  3. ^ S. Kirkpatrick, CDG Jr. y MP Vecchi (1983). "Optimización mediante recocido simulado". Science . 220 (4598): 671–680. Bibcode :1983Sci...220..671K. doi :10.1126/science.220.4598.671. PMID  17813860.{{cite journal}}: CS1 maint: varios nombres: lista de autores ( enlace )
  4. ^ C. Sechen y A. Sangiovanni-Vincentelli (1986). "TimberWolf3.2: Un nuevo paquete estándar de ubicación de celdas y enrutamiento global". Actas de la Conferencia de Automatización del Diseño . ACM. págs. 432–439.
  5. ^ George Karypis, Rajat Aggarwal, Vipin Kumar y Shashi Shekhar (1997). "Particionamiento de hipergrafos multinivel: aplicaciones en el dominio VLSI". Actas de la Conferencia de automatización del diseño . ACM. págs. 526–529.{{cite conference}}: CS1 maint: varios nombres: lista de autores ( enlace )
  6. ^ Caldwell, AE; Kahng, AB; Markov, IL (junio de 2000). "¿Puede la bisección recursiva producir por sí sola ubicaciones enrutables?". Actas de la 37.ª Conferencia de Automatización del Diseño . págs. 477–482. doi :10.1109/DAC.2000.855358.
  7. ^ Kleinhans, JM; Sigl, G.; Johannes, FM; Antreich, KJ (marzo de 1991). "GORDIAN: Colocación de VLSI mediante programación cuadrática y optimización de cortes". IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems . 10 (3): 356–365. doi :10.1109/43.67789. S2CID  15274014.
  8. ^ H. Eisenmann y FM Johannes (1998). "Ubicación global genérica y planificación de espacios". Actas de la Conferencia sobre automatización del diseño . ACM. págs. 269–274.
  9. ^ Sigl, Georg, Konrad Doll y Frank M. Johannes (1991). "Colocación analítica: ¿una función objetivo lineal o cuadrática?". Actas de la 28.ª conferencia sobre automatización del diseño ACM/IEEE . ACM. págs. 427–432.{{cite conference}}: CS1 maint: varios nombres: lista de autores ( enlace )
  10. ^ P. Spindler, U. Schlichtmann y FM Johannes (2008). "Kraftwerk2: un enfoque rápido de colocación cuadrática dirigida por fuerza utilizando un modelo de red preciso". IEEE Transactions on Computer-Aided Design . 27 (8): 1398–1411. doi :10.1109/TCAD.2008.925783. S2CID  16054185.{{cite journal}}: CS1 maint: varios nombres: lista de autores ( enlace )
  11. ^ N. Viswanathan, M. Pan y C. Chu (2007). "FastPlace3.0: Un algoritmo de colocación cuadrático multinivel rápido con control de congestión de colocación". Actas de la Conferencia de automatización del diseño de Asia y el Pacífico Sur . págs. 135–140.{{cite conference}}: CS1 maint: varios nombres: lista de autores ( enlace )
  12. ^ Kim, M.-C.; Lee D.-J.; Markov IL (enero de 2011). "SimPL: un algoritmo de colocación eficaz". IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems . 31 (1): 50–60. CiteSeerX 10.1.1.187.1292 . doi :10.1109/TCAD.2011.2170567. S2CID  47293399. 
  13. ^ USA 6301693, WC Naylor, R. Donelly y L. Sha, "Sistema de optimización no lineal y método para optimizar la longitud y el retardo de los cables para un colocador automático de circuitos eléctricos" 
  14. ^ AB Kahng, S. Reda y Q. Wang (2005). "Arquitectura y detalles de un placer analítico de gran escala y alta calidad". Actas de la Conferencia internacional sobre diseño asistido por ordenador . págs. 891–898.
  15. ^ T.-C. Chen, Z.-W. Jiang, T.-C. Hsu, H.-C. Chen y Y.-W. Chang (2008). "NTUPlace3: un colocador analítico para diseños de tamaño mixto a gran escala con bloques precolocados y restricción de densidad" (PDF) . IEEE Transactions on Computer-Aided Design . 27 (7): 1228–1240. doi :10.1109/TCAD.2008.923063. S2CID  11912537.{{cite journal}}: CS1 maint: varios nombres: lista de autores ( enlace )
  16. ^ J. Lu, P. Chen, C.-C. Chang, L. Sha, DJ-S. Huang, C.-C. Teng y C.-K. Cheng (2014). "ePlace: Colocación basada en electrostática utilizando el método de Nesterov". Actas de la Conferencia de automatización del diseño . ACM. págs. 1–6.{{cite conference}}: CS1 maint: varios nombres: lista de autores ( enlace )
  17. ^ Azalia Mirhoseini, Anna Goldie, Mustafa Yazgan (2021). "Una metodología de colocación de grafos para el diseño rápido de chips". Nature . 594 (7862): 207–212. arXiv : 2004.10746 . Código Bibliográfico :2021Natur.594..207M. doi :10.1038/s41586-021-03544-w. PMID  34108699. S2CID  235395490.{{cite journal}}: CS1 maint: varios nombres: lista de autores ( enlace )
  18. ^ Cheng, Chung-Kuan, Andrew B. Kahng, Sayak Kundu, Yucheng Wang y Zhiang Wang (marzo de 2023). "Evaluación del aprendizaje por refuerzo para la colocación macro". Actas del Simposio internacional sobre diseño físico de 2023. págs. 158-166. arXiv : 2302.11014 . doi :10.1145/3569052.3578926. ISBN 978-1-4503-9978-4.{{cite book}}: CS1 maint: varios nombres: lista de autores ( enlace )
  19. ^ Igor L. Markov. "El falso amanecer: reevaluación del aprendizaje por refuerzo de Google para la colocación de macrochips". arXiv : 2306.09633 .
  20. ^ Agam Shah (3 de octubre de 2023). "El controvertido artículo sobre el chip de inteligencia artificial de Google vuelve a estar bajo escrutinio".
  21. ^ Kahng, Andrew B. (2021). "ARTÍCULO RETRACTIVO: Un sistema de IA supera a los humanos en el diseño de planos de planta para microchips". Nature . 594 (7862): 183–185. Bibcode :2021Natur.594..183K. doi :10.1038/d41586-021-01515-9. PMID  34108693. S2CID  235394411.

Lectura adicional/Enlaces externos