¿Cómo se diseñan las CPU?


21

Hace un tiempo comencé a jugar con la electrónica y a hacer puertas lógicas simples con transistores. Sé que los circuitos integrados modernos usan CMOS en lugar de la lógica transistor-transistor. Lo que no puedo dejar de preguntarme es cómo están diseñadas las CPU.

¿El diseño todavía se realiza a un nivel de (sub) lógica, o ya no hay mucha innovación en esa área y hemos pasado a un nivel más alto de abstracción? Entiendo cómo se construye una ALU, pero hay mucho más en las CPU que eso.

¿De dónde vienen los diseños para los miles de millones de transistores? ¿Son generados principalmente por software o todavía hay mucha optimización manual?


2
Yo diría Verilog o VHDL.
avakar

3
Si bien estos temas son fascinantes, parece que estamos muy lejos de las "preguntas prácticas y respondibles basadas en los problemas reales que enfrenta" . También puedo imaginar un libro completo que responde a esta pregunta.
Martin

1
@Overv, todavía hay mucho trabajo en el que te aseguras de que tus bloques base que estás conectando estén optimizados en el nivel de la puerta, ¡luego solo enchufas esos bloques optimizados de manera optimizada!
Kortuk

13
Voté para volver a abrir, aunque estoy de acuerdo en que una respuesta completa que diga "todo lo que necesita saber para construir una CPU completa desde cero" no es una buena combinación para este sitio, creo que una breve descripción general y algunos enlaces serían Una buena respuesta aquí.
davidcary

1
Me sorprende que no tengamos personas que trabajen en la industria de semiconductores que puedan comentar aquí sobre el diseño ASIC más complejo. Como no soy un experto, esto es solo algo que he escuchado: hay muchas licencias en los núcleos IP y el campo por el que se integra se llama VLSI. Creo que el diseño se realiza en VHDL / Verilog con herramientas de sintetización altamente optimizadas: cómo esto se reduce al nivel de oblea y se fabrica está más allá de mi conocimiento.
Jon L

Respuestas:


10

Es muy probable que los lenguajes de descripción de hardware como Verilog y VHDL (dos jugadores principales) utilicen CPU y SoC.

Estos lenguajes permiten diferentes niveles de abstracciones. En VHDL, puede definir bloques lógicos como entidades; Contiene entradas y puertos de salida. Dentro del bloque puede definir la lógica requerida. Digamos que define un bloque con la entrada A, la entrada B y la salida C. Podría escribir fácilmente C = A y B ;, y básicamente creó un bloque de puerto AND. Este es posiblemente el bloque más simple que puedas imaginar.

Los sistemas digitales suelen estar diseñados con una fuerte jerarquía. Uno puede comenzar 'de nivel superior' con las funciones principales que requiere una CPU: memoria de proceso (¿múltiple?), PCI-express y otros buses. Dentro de este nivel, los buses y las señales de comunicación entre la memoria y el procesador ya pueden estar definidos.

Cuando bajas un nivel, definirá el funcionamiento interno de hacer que algo "funcione". Tomado un ejemplo de un microcontrolador, puede contener una interfaz UART. La lógica real requerida para hacer un UART funcional se define un nivel por debajo. Aquí, se puede requerir mucha otra lógica para generar y dividir el reloj requerido, los datos del búfer (búferes FIFO), los datos del informe a la CPU (algún tipo de bus sistema).

Lo interesante de VHDL y el diseño digital es la reutilización de bloques. Podría, por ejemplo, simplemente copiar y pegar el bloque UART en su nivel superior para crear 2 UART (bueno, tal vez no sea tan fácil, ¡solo si el bloque UART es capaz de direccionarse de alguna manera!).

Este diseño no es ningún tipo de diseño de nivel de puerta. El VHDL también se puede 'compilar' de una manera que finalmente se traduzca a puertas lógicas. Una máquina puede optimizar esto mucho mejor que un humano (y más rápido también). Por ejemplo; Las partes internas del bloque A requieren un inversor antes de emitir la señal. El bloque B toma esta señal de salida y la invierte una vez más. Bueno, 2 inversores en serie no hacen mucho ¿verdad? Correcto, así que también puedes dejarlos fuera. Sin embargo, en el diseño de 'nivel superior' no podrá detectar los dos inversores en serie ... solo verá dos puertos conectados. Un compilador puede optimizar esto mucho más rápido que un humano.

Básicamente, lo que contiene el diseño del sistema digital es la descripción de cómo debe "comportarse" la lógica, y la computadora se utiliza para descubrir cuál es la forma más eficiente de diseñar las puertas lógicas individuales.


Así como todavía hay un lugar para el código de ensamblaje en el software, el diseño de hardware de nivel inferior puede ser rentable en algunos casos. Por ejemplo, las células SRAM a menudo se usan con tanta frecuencia que se desarrollan diseños altamente optimizados para optimizar la densidad (caché de último nivel), la latencia de acceso (caché L1) u otras características, especialmente en un fabricante de diseño integrado como Intel.
Paul A. Clayton

@Paul la pregunta intrigante que me plantea es cuánto invierte Intel en optimizar sus diseños a mano en lugar de escribir pases de optimización de software que logren las mismas mejoras de rendimiento de forma dinámica y más general.
Ponkadoodle

6

Permítanme simplificar y expandir mis comentarios anteriores y conectar los puntos para aquellos que parecen necesitarlo.

¿El diseño todavía se realiza en un nivel de (sub) lógica de puerta?

El diseño se realiza en muchos niveles, el nivel sublógico siempre es diferente . Cada reducción de fabricación exige la experiencia más brillante en física, química y procesos litográficos a medida que la estructura de un transistor cambia y la geometría también cambia para compensar las compensaciones, ya que se reduce a niveles atómicos y cuesta ~ $ miles de millones cada paso binario. tamaño. ¡Para lograr una geometría de 14 nm es una tarea enorme en I + D, control y gestión de procesos y eso sigue siendo una subestimación!ingrese la descripción de la imagen aquí

Por ejemplo, las habilidades laborales requeridas para hacer esto incluyen; - "Diseños personalizados de nivel de bloque, celda y FET, planos de planta de nivel FUB, generación de vista abstracta, extracción de RC y verificación y depuración de esquema a diseño utilizando fases de desarrollo de diseño físico que incluyen extracción parasitaria, sincronización estática, carga de alambre modelos, generación de reloj, edición personalizada de polígonos, algoritmos de colocación automática y ruta, planificación de piso, montaje de chip completo, empaque y verificación ". *

- ¿Ya no hay mucha innovación en esa área? - INCORRECTO - Existe una innovación significativa y fuertemente financiada en Física de semiconductores, a juzgar por la Ley de Moore y el número de patentes, nunca se detendrá. Los ahorros en energía, calor y, por lo tanto, la cuadruplicación de la capacidad se pagan cada vez.

- ¿Hemos pasado a un nivel superior de abstracción? - Nunca dejó de moverse. - Con la demanda de más núcleos, haciendo más en una instrucción como CPU ARM RISC, µC o MCU integrados más potentes, RAM inteligente con DDR4 que tiene ECC de forma predeterminada y sectores como flash con bits de prioridad para búsquedas de memoria urgentes. - La evolución de la CPU y los cambios arquitectónicos nunca se detendrán. ingrese la descripción de la imagen aquí

Déjame darte una pista. Haga una búsqueda de trabajo en Intel, AMD, TI o AD para ingenieros y vea las descripciones de los trabajos.

- ¿De dónde vienen los diseños para los miles de millones de transistores? - Vino de agregar más bloques de hardware de 64 bits. pero ahora que hay fallas en los nanotubos, el pensamiento tiene que cambiar del enfoque de arriba hacia abajo de los bloques al enfoque de abajo hacia arriba de los nanotubos para que funcione.

  • ¿Son en su mayoría autogenerados por software? con lengua firmemente plantada en la mejilla ...
  • En realidad, todavía están extrayendo diseños de Area51 de naves espaciales y tienen un camino por recorrer ... hasta que cumplamos con el tubo nano-nano. Un ingeniero ingresa a la biblioteca y le dice a nVidia que nos gustaría que te unas a nosotros aquí en este chip y se convierte en una parte, que entra en un macrobloque . El diseño se puede replicar como las hormigas en Toystory, pero el control explícito de todas las conexiones se debe enrutar / retirar manualmente, así como usar DRC y enrutamiento automático para la comparación. Sí, las herramientas de automatización se actualizan constantemente para eliminar la duplicación y la pérdida de tiempo.

    - ¿Todavía hay mucha optimización manual?

  • Teniendo en cuenta que una aerolínea ahorró suficiente dinero para pagar su salario al eliminar solo 1 aceituna de la cena en Primera Clase, Intel buscará formas de eliminar tantos átomos como sea posible dentro del marco de tiempo. Cualquier exceso de capacitancia significa un desperdicio de calor, rendimiento y más ruido, no tan rápido ...

Pero realmente las CPU crecen como Tokio, no es de la noche a la mañana, pero decenas de millones viven allí ahora con una mejora constante. No aprendí a diseñar en la Univ. pero al leer y tratar de entender cómo funcionan las cosas, pude ponerme al día en la industria bastante rápido. Tengo 10 años de experiencia en mis primeros 5 años en el sector aeroespacial, diseño de instrumentos nucleares, diseño SCADA, monitoreo de procesos, diseño de antenas, diseño y depuración de estaciones meteorológicas automatizadas, VLF Rx de PLX de OCXO, control remoto bidireccional de cohetes Black Brandt ... y ese fue solo mi primer trabajo. No tenía idea de lo que podía hacer.

No se preocupe por miles de millones de transistores ni tenga miedo de qué aprender o cuánto necesita saber. Simplemente siga su pasión y lea los diarios de comercio entre sus horas de sueño, luego no se verá tan verde en el trabajo y ya no se sentirá como un trabajo.

Recuerdo que tuve que diseñar un amplificador operacional 741 "like" como parte de un examen una vez, en 20 minutos. Nunca lo he usado realmente, pero puedo reconocer lo bueno de los grandes diseños. Pero entonces solo tenía 20 transistores.ingrese la descripción de la imagen aquí

Pero cómo diseñar una CPU debe comenzar con una especificación, a saber; ¿Por qué diseñar una CPU y hacer puntos de referencia medibles para lograr tales como; - Instrucciones de macro por segundo (MIPS) (más importante que el reloj de la CPU), por ejemplo; - El chip Itanium de Intel se basa en lo que ellos llaman un diseño de Computación de instrucción paralela explícita (EPIC). - Diseño de CPU patentado por Transmeta con microprocesadores de transformación de código de palabra de instrucciones muy largos (VLIWCMM). Demandaron a Intel en 2006, cerraron el taller y se conformaron con ~ $ 200 millones en 2007. - Rendimiento por vatio (PPW), cuando los costos de energía> costo del chip (para servidores) - Punto de flotación Ops por segundo (FLOPS) para el rendimiento matemático.

Hay muchas más métricas, pero nunca bases la calidad de diseño de una CPU en su velocidad de GHz (ver mito)

Entonces, ¿qué herramientas de viaje se necesitan para diseñar las CPU? La lista no encajaría en esta página, desde el diseño físico a nivel atómico hasta el diseño físico EMC / EMC de malla dinámica hasta el ingeniero de pruebas de verificación de diseño front-end, donde las habilidades requeridas incluyen; - Simulación de RTL de front-end - conocimiento de IA y arquitectura de computadora y diseño de nivel de sistema - Verificación lógica y simulación lógica usando VHDL o Verilog. - Programación orientada a objetos y varios CPU, bus / interconexión, protocolos de coherencia.


66
"Verilog" y "VHDL" solo rascan la superficie de todas estas preguntas ingenuas pero inspiradoras. El mundo real es mucho más analógico que digital de lo que crees.
Tony Stewart Sunnyskyguy EE75

¿Tiene una explicación del circuito del amplificador operacional en alguna parte? Todo lo que puedo ver es una OTA con casco, el resto es circuito Voodoo.
CyberMen

3
Guau. Lástima que sea sobre todo irrelevante para la pregunta.
Dave Tweed

3
Debo decir que esta fue una lectura muy divertida. El cambio gradual desde el escritor jugando con la pregunta original hacia él haciendo un intento de volar la mente del lector con números y vocabulario y luego brindando autoayuda seguido de una reminiscencia de sus días de niño de escuela con solo un toque de arrogancia y finalmente moviéndose al cliché "es tan complicado que nunca podría resumirlo aquí". Absolutamente hermoso.
Ponkadoodle

Y a pesar de que ese comentario mío fue algo satírico, espero que lo tomes alegremente. Sinceramente disfruté la lectura.
Ponkadoodle

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.