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?
Respuestas:
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.
fuente
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!
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.
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.
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?
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.
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.
fuente
Descripción general del diseño de CPU de AMD
La versión de Intel
Ninguno de estos proporciona muchos detalles, pero de todos modos es interesante. No aceptes esto como respuesta. Otros han considerado su pregunta en detalle y han hecho un mayor esfuerzo al intentar responder en detalle.
fuente