- El Pentium de Intel, lanzado en 1993, es un chip complejo con 3.3 millones de transistores, pero a diferencia de los chips modernos, sus transistores pueden verse con un microscopio, lo que permite seguir directamente la implementación interna de sus compuertas
- El diseño con celdas estándar crea celdas reutilizables para circuitos de bajo nivel como compuertas y flip-flops, y las organiza en filas para adaptarse al place-and-route automático
- En el die del Pentium, el área de celdas estándar se ve como franjas regulares, mientras que bloques optimizados manualmente como la caché, el datapath y la ROM de microcódigo se distinguen por ser más densos y oscuros
- El Pentium de la familia P54C usa un proceso de 600 nm, 3.3 V y 4 capas de interconexión metálica, y además de compuertas CMOS también aprovecha ampliamente circuitos BiCMOS que reducen la demora de señal hasta en 35%
- El inversor, NAND, OR-NAND, latch, flip-flop y buffer BiCMOS son combinaciones de pequeños circuitos de transistores, y el Pentium es un caso que permite observar el diseño digital con celdas estándar y BiCMOS de los años 90
La estructura de celdas estándar visible en el die del Pentium
- Intel lanzó el procesador Pentium en 1993, y luego continuó con Pentium Pro, Pentium II y otros, manteniéndolo como marca de procesadores de alto rendimiento hasta que la línea Core reemplazó a la principal en 2006
- El Pentium original es un chip complejo con 3.3 millones de transistores, pero a diferencia de los chips modernos, sus transistores pueden verse con un microscopio
- En las fotos del die con las capas metálicas retiradas, quedan expuestos el silicio y los transistores individuales
- Los circuitos de celdas estándar están organizados en filas uniformes y muestran una forma de franjas
- Los bloques funcionales optimizados manualmente aparecen más densos, estructurados y oscuros
- Los ejemplos son la caché a la izquierda, el datapath al centro y la ROM de microcódigo a la derecha
Del layout manual a las celdas estándar
- Los primeros procesadores de los años 70 normalmente colocaban los transistores uno por uno de forma manual
- Este método podía lograr alta densidad, pero era lento, difícil y propenso a errores
- Federico Faggin, diseñador del Z80, tuvo que borrar tres semanas de trabajo y empezar de nuevo porque ya no cabían los últimos transistores
- Las celdas estándar consisten en crear una biblioteca de celdas reutilizables que implementan cada compuerta, flip-flop y componente de bajo nivel
- Cada celda tiene altura fija y un ancho que varía según la necesidad
- Las celdas pueden colocarse en filas, lo que las hace adecuadas para la automatización
- Las filas de celdas estándar CMOS normalmente se ven como dos bandas cercanas
- Una corresponde al área de transistores NMOS
- La otra corresponde al área de transistores PMOS
- El espacio entre filas se usa como canal de interconexión entre celdas
- La alimentación y tierra se colocan a lo largo de la parte superior e inferior de cada fila
Lo que hace el place-and-route automático
- La estructura fija de las celdas estándar facilita que el software de place-and-route automático genere el layout
- La etapa de placement busca una disposición de celdas que reduzca la distancia entre las celdas conectadas
- Las interconexiones largas desperdician área del die
- Los recorridos largos aumentan la capacitancia y hacen más lentas las señales
- La etapa de routing conecta las celdas ya colocadas mediante interconexiones metálicas reales
- Tanto placement como routing son problemas de optimización NP-complete
- Intel empezó a usar técnicas automáticas de place-and-route desde el procesador 386
- El placement se hacía con el programa Timberwolf, desarrollado por un estudiante de posgrado de Berkeley
- El routing usaba software personalizado de Intel basado en un método heurístico iterativo
- El diseño con celdas estándar sigue usándose en los procesadores actuales, aunque el software ha avanzado mucho
La estructura básica CMOS del Pentium
- Los procesadores modernos usan circuitos CMOS, que combinan dos tipos de transistores: NMOS y PMOS
- Los transistores NMOS se encienden cuando la compuerta está alta, y los PMOS se encienden cuando la compuerta está baja
- Los NMOS son adecuados para llevar la salida a un voltaje bajo
- Los PMOS son adecuados para llevar la salida a un voltaje alto
- La “C” de CMOS significa Complementary, porque NMOS y PMOS trabajan juntos para llevar la salida a nivel alto o bajo
- NMOS y PMOS no son completamente simétricos por las propiedades físicas de los semiconductores, y los PMOS normalmente deben ser más grandes que los NMOS
- Esa diferencia sirve como pista para distinguir PMOS y NMOS en las fotos del die
Interconexión formada por 4 capas metálicas
- La versión P54C del Pentium usa 4 capas de interconexión metálica
- Los primeros Pentium usaban 3 capas metálicas, pero desde el die P54C pasaron a un proceso de 4 capas
- En la superficie del silicio hay regiones dopadas, y sobre ellas se forman interconexiones de polisilicio
- Cuando el polisilicio cruza el silicio dopado, forma la compuerta de un transistor
- El polisilicio también se usa para interconexiones de corta distancia
- Las capas metálicas se numeran de M1 a M4
- M1 es la capa metálica más baja
- M4 es la capa superior y la más gruesa, por lo que se usa principalmente para alimentación, tierra y señales de reloj
- La conexión entre capas metálicas se hace con vias de tapón de tungsteno
- Solo M1 se conecta directamente al silicio o al polisilicio mediante contacts
- Las capas de interconexión suelen alternar localmente entre direcciones horizontal y vertical para que las señales puedan cruzarse entre sí
- El software de place-and-route automático debe generar cientos de miles de rutas de interconexión complejas con la mayor densidad posible
Inversores y compuertas NAND
- Un inversor CMOS está formado por 1 PMOS y 1 NMOS
- Si la entrada es 1, el NMOS se enciende y la salida baja a 0
- Si la entrada es 0, el PMOS se enciende y la salida sube a 1
- El inversor de celda estándar del Pentium tiene la misma estructura de dos transistores
- La entrada se conecta a las compuertas de polisilicio de ambos transistores
- La interconexión metálica de salida se conecta a los dos transistores
- El N-well dopado donde va el PMOS se mantiene a voltaje positivo mediante un well tap conectado a +3.3 V
- El Pentium fue fabricado con un proceso de 600 nm, y el ancho de línea del polisilicio también es de unos 600 nm
- Como es comparable a la longitud de onda visible de 400~700 nm, las fotos al microscopio se ven algo borrosas
- Una compuerta NAND CMOS está formada por 2 PMOS y 2 NMOS
- Si ambas entradas están altas, los dos NMOS se encienden y la salida baja
- Si cualquiera de las entradas está baja, el PMOS se enciende y la salida sube
- En la celda estándar NAND del Pentium, dos líneas de polisilicio cruzan el silicio dopado y forman cuatro transistores
- En el lado PMOS, la salida sale desde el centro y forma una conexión en paralelo
- En el lado NMOS, la salida sale por la derecha y forma una conexión en serie
- Incluso siendo la misma celda estándar NAND, el detalle de la interconexión y la longitud del polisilicio cambian según la posición de entrada, salida y alimentación
- Las celdas estándar no son simples copias idénticas, sino que se ajustan a cada ubicación
- Las celdas vecinas se compactan haciendo que los transistores PMOS queden en contacto, lo que mejora un poco la densidad
Compuertas compuestas y latches
- La biblioteca de celdas estándar incluye no solo compuertas simples sino también compuertas compuestas
- Una compuerta OR-NAND de 5 entradas calcula
~((A+B+C+D)⋅E)- En el circuito NMOS,
AaDestán en paralelo yEen serie - En el circuito PMOS, ocurre lo contrario:
AaDestán en serie yEen paralelo - Para proporcionar suficiente corriente, el lado PMOS tiene dos conjuntos de transistores
AaD, por lo que es mucho más grande que el bloque NMOS
- En el circuito NMOS,
- Un latch es uno de los componentes clave del circuito del Pentium y es un circuito de almacenamiento de 1 bit controlado por reloj
- Cuando el reloj está alto, entra en un estado transparente en el que la entrada aparece de inmediato en la salida
- Cuando el reloj está bajo, conserva el valor anterior
- El latch se implementa con un bucle de realimentación donde la salida vuelve hacia la entrada
- En el centro hay un multiplexor que selecciona entre la salida previa y la nueva entrada
- Los inversores amplifican la señal de realimentación para que no se debilite y para que la salida pueda manejar otros circuitos
Multiplexor con transistores de paso
- El multiplexor dentro del latch usa transistores de paso
- A diferencia de una compuerta lógica normal, no lleva la salida hacia alimentación o tierra, sino que deja pasar la señal de entrada hacia la salida
- Si la señal select está baja, se enciende el par de transistores conectado a la primera entrada y la segunda entrada queda bloqueada
- Si la señal select está alta, se enciende el par de transistores conectado a la segunda entrada y la primera entrada queda bloqueada
- La polaridad de las compuertas de los transistores del multiplexor es distinta a la de una compuerta lógica normal
- En una compuerta lógica, se usan señales de compuerta con la misma polaridad para que se encienda uno de los transistores NMOS o PMOS y la salida sea llevada a nivel bajo o alto
- En un multiplexor, el PMOS y el NMOS correspondientes deben encenderse al mismo tiempo para dejar pasar la señal, por lo que se necesita una señal de compuerta con polaridad opuesta
- Por eso el multiplexor incluye un inversor que genera la señal complementaria necesaria
Implementación del flip-flop
- El Pentium usa flip-flops de forma extensa
- Un flip-flop es parecido a un latch, pero responde al flanco del reloj y no al nivel del reloj
- Recuerda la entrada en el instante en que el reloj cambia de bajo a alto
- Y entrega ese valor en la salida
- Por esta diferencia, el flip-flop es más útil en contadores, máquinas de estados y otros circuitos síncronos
- El flip-flop del Pentium está formado por dos latches
- El primary latch deja pasar el valor cuando el reloj está bajo y lo retiene cuando el reloj está alto
- El secondary latch tiene el comportamiento opuesto respecto al reloj
- Cuando el reloj cambia de bajo a alto, el primary latch deja de actualizarse al mismo tiempo que el secondary latch deja pasar ese valor
- Algunas variantes tienen entradas de set o reset mediante pequeños cambios lógicos
- Set y reset evitan el reloj y fuerzan la salida al estado deseado
- Son útiles para inicializar los flip-flops al valor deseado cuando arranca el procesador
Buffer BiCMOS y las características del Pentium de los años 90
- El Pentium fue fabricado no solo con CMOS, sino también con un proceso BiCMOS
- Se añaden algunos pasos al proceso normal de fabricación CMOS para poder crear transistores bipolares NPN y PNP
- Los circuitos BiCMOS se usaron ampliamente en el Pentium y redujeron la demora de señal hasta en 35%
- Intel también usó BiCMOS en Pentium Pro, Pentium II, Pentium III y Xeon, pero no en Pentium MMX
- A medida que bajó el voltaje de los chips, también se redujeron las ventajas de los transistores bipolares, y BiCMOS terminó dejando de usarse en circuitos digitales
- El buffer BiCMOS de celda estándar del Pentium es más complejo que un buffer CMOS
- 2 inversores
- transistor NPN pull-up
- transistor NMOS pull-down
- transistor PMOS pull-up
- En las fotos del die, el transistor NPN se ve con una estructura circular y es mucho más grande, a diferencia de la estructura lineal de los NMOS y PMOS
- La interconexión metálica de salida también es más gruesa que una interconexión de señal normal, lo que indica una alta capacidad de manejo de corriente
Diferencias observadas en la versión P54C
- El análisis se hizo sobre la versión P54C del Pentium original
- El primer producto Pentium, el 80501 con nombre clave P5, funcionaba a 60 o 66 MHz, usaba 5 V y tenía un proceso de 800 nm y 3.1 millones de transistores
- Intel mejoró los problemas de consumo eléctrico y creó el 80502, con nombre clave P54C
- Usa 3.3 V
- Funciona entre 75 y 120 MHz
- Se agregó soporte para multiprocesamiento, por lo que el número de transistores aumentó a 3.3 millones
- Tiene un circuito de reloj más avanzado que permite elevar la frecuencia interna hasta 100 MHz mientras mantiene la velocidad del bus externo en 50~66 MHz
- Usa un proceso de 600 nm y 4 capas metálicas
- El die del P54C es visualmente casi igual al del P5, pero se agregó lógica de multiprocesamiento en la parte inferior y circuitería de reloj en la parte superior
- Es probable que las celdas estándar sean similares también en otras versiones del Pentium original
Circuitos simples que forman un procesador complejo
- El layout con celdas estándar sigue usándose ampliamente en los chips modernos
- Los procesadores actuales son demasiado pequeños para estudiarlos con microscopio debido a sus transistores a escala nanométrica, pero el Pentium todavía tiene rasgos lo bastante grandes como para observar sus circuitos y hacer ingeniería inversa
- La biblioteca completa de celdas estándar del Pentium es mucho más grande e incluye decenas o cientos de tipos de celdas
- Varias compuertas lógicas
- Varios tamaños
- Celdas con distintas fuerzas de manejo
- El uso de BiCMOS en el Pentium es una característica tecnológica propia de una época en la que esa técnica alcanzó su punto de popularidad en los años 90
- Aunque BiCMOS perdió practicidad en circuitos digitales por cambios en los trade-offs, sigue teniendo un papel importante en los IC analógicos, especialmente en aplicaciones de alta frecuencia
- Al observar de cerca el Pentium, se puede comprobar que incluso un procesador complejo está hecho a partir de combinaciones de circuitos de transistores simples
1 comentarios
Opiniones de Hacker News
Intel empezó a usar técnicas de ubicación y ruteo automáticos a partir del procesador 386, porque eran mucho más rápidas que el layout manual y reducían mucho los errores.
La ubicación se hizo con un programa llamado Timberwolf, desarrollado por Carl Sechen, estudiante de posgrado de Berkeley; su director era Alberto Sangiovanni-Vincentelli.
https://ieeexplore.ieee.org/document/1052337
https://archive.computerhistory.org/resources/text/Oral_Hist...
Según cuentan, dentro de Intel no había ni ubicación automática ni ruteo automático, así que les preocupaba si podrían terminar a tiempo y si el área del chip crecería tanto que ya no cabría. Recibieron de un estudiante de posgrado de Berkeley un programa de ubicación automática llamado Timberwolf, lo evaluaron y, al parecerles lo bastante utilizable, lo usaron.
Después de que ese estudiante se mudó a MIT por otro proyecto, mantuvo una terminal en su cuarto del campus y arreglaba los bugs cada vez que aparecían; dicen que a veces tenían que quedarse bloqueados esperando a que terminara sus correcciones. También se menciona que “si la gerencia hubiera sabido que estaban usando la herramienta de un estudiante de posgrado para una metodología clave, jamás lo habría permitido”.
Right-o también tenía un artículo sobre la ubicación y el ruteo con celdas estándar del i386, y junto con el enlace a la entrevista del panel muestra áreas concretas del die del i386 donde se usaron celdas estándar.
https://www.righto.com/2024/01/intel-386-standard-cells.html
No se ve ninguna imagen, y la causa parece ser Cloudflare.
Al entrar a la página se puede pasar la verificación “are you human” de CF, pero la misma verificación también se aplica a la carga de cada imagen, y esa pantalla de verificación no se muestra al usuario. Al final, en lugar de la imagen se devuelve una página HTML, así que las imágenes no cargan.
Era como si ya me hubieran rechazado antes del captcha y solo me estuvieran molestando por diversión. Lo más raro es que VirusTotal mostraba un segundo formulario de subida en la página del captcha, pero ese formulario en sí no tenía captcha.
En el panel tampoco aparece que Cloudflare esté involucrado.
Si “los procesadores modernos son demasiado pequeños para verlos con un microscopio debido a sus transistores a escala nanométrica”, me pregunto si no deberíamos hacer una colecta entre todos para comprarle a Ken un buen microscopio electrónico.
¿El software EDA moderno no se habrá vuelto lo bastante sofisticado como para ubicar transistores por sí solo sin depender de celdas estándar?
He estado trabajando en un proyecto para diseñar y crear mejor software EDA, y esta herramienta puede simular y optimizar cada transistor para darle forma y ubicarlo de modo que logre bajo consumo, alta velocidad y bajo costo.
La desventaja es que, como maneja unidades de transistores mucho más numerosas que el EDA existente, hay que ejecutarla en una minisupercomputadora de unos 100.000 dólares o en un clúster de FPGA. Aun así, creo que es más barato que el EDA existente y que puede crear chips y obleas más rápidos, mejores y más baratos con menos transistores.
La visión general del software la traté indirectamente en esta charla: https://vimeo.com/731037615
También me gustaría dar una charla sobre el software EDA en sí, así que agradecería una invitación.
Otros investigadores y empresas también han demostrado que se puede ir más allá de las bibliotecas de celdas estándar y los PDK para optimizar el diseño y la ubicación de transistores; por ejemplo, este caso se hizo con su propio software EDA: https://www.micromagic.com/news/Ultra-Low-Power_PressRelease...
Estoy muy seguro de que Apple usó este enfoque en los M1, M2, M3, M4, M5 y, en especial, en los chips M2 y M5 Ultra de gama alta, pero no tengo pruebas definitivas.
Creo que, con solo usar mejor software EDA (CAD=> SYM=> FAB) que el que se usa hoy, la humanidad podría diseñar chips de computadora entre 3 y 4 órdenes de magnitud más rápidos y fabricarlos mucho más baratos con al menos 2 órdenes de magnitud menos energía. La ley de Moore no terminó, y demostrarlo requiere más esfuerzo que un comentario en HN.
Incluso la ubicación de celdas estándar debe resolverse con heurísticas; si se baja del nivel de celdas al nivel de transistores, el tamaño del problema aumenta y se vuelve peor.
De todos modos, la lógica se compone de compuertas estándar y bloques lógicos como flip-flops, así que es probable que el overhead de usar celdas estándar que implementan esos bloques de construcción no sea tan grande.
Por eso, la complejidad del problema en relación con la capacidad de cómputo disponible se ha mantenido más o menos constante, y el diseño con celdas estándar sigue siendo una forma eficiente de reducir la complejidad del problema que las herramientas EDA deben resolver.
No veo que eso vaya a cambiar en la generación actual ni en la siguiente. Trabajo en EDA.
De lo contrario, el rendimiento podría volverse inestable o impredecible.
Una diferencia entre las celdas estándar mencionadas en el artículo y las celdas estándar actuales es que hoy hay más capas metálicas, así que desaparecieron los canales de cableado.
En esa época era difícil hacer que el metal cruzara las líneas de Vdd y tierra en la parte superior e inferior de la celda, así que extendían las líneas de polisilicio hasta los bordes superior e inferior. El cableado consistía en llevar el poli hacia dentro del canal y conectar las celdas con metal.
Por eso, en la foto las líneas de poli destapadas se ven como una sola, pero desde el punto de vista del diseño la parte interna de la celda es estándar y la parte dentro del canal es personalizada.
Este método funciona incluso con solo poli y una primera capa metálica, pero si hay suficientes capas metálicas se puede pasar el cableado por dentro de la celda. Eso sí, hay que evitar las vías que bajan las entradas y salidas hacia los transistores.
Si se invierte una fila sí y una no de celdas, los PMOS de dos filas comparten el riel de Vdd y los NMOS de dos filas comparten el riel de tierra, lo que también aporta una ganancia adicional.
Diseccionar un procesador de esta manera podría ser una actividad educativa divertida en la escuela, como diseccionar ranas.
Además tiene la ventaja de que no plantea problemas de derechos de los animales.
Si no es un chip cubierto de epoxi, no es difícil, y mirar su interior también es interesante. Para verlo en detalle hace falta un microscopio metalográfico, pero incluso a simple vista se pueden observar estructuras interesantes.
Si se maneja correctamente, un procesador dura mucho más que una rana y, a grandes rasgos, no se desgasta, así que puede reutilizarse muchas veces. Creo que el proceso de fabricar un procesador nuevo podría causar más sufrimiento a más ranas que matar una sola rana para disección.
Además, hoy tenemos reproductores de video en el bolsillo. Diseccionar una rana directamente puede ser más educativo que ver a otra persona hacerlo, pero dudo que sea más educativo que ver 20 videos de disecciones bien explicados. No creo que sea necesario hacer ambas cosas.
También hay celdas estándar de código abierto para quienes tengan interés.
https://www.vlsitechnology.org/html/libraries.html
https://opensource.googleblog.com/2022/07/SkyWater-and-Googl...