23 votos

¿Cómo se diseñan las CPU?

Hace tiempo que empecé a jugar con la electrónica y a hacer puertas lógicas sencillas utilizando transistores. Sé que los circuitos integrados modernos utilizan CMOS en lugar de lógica transistor-transistor. Lo que no puedo evitar preguntarme es cómo se diseñan las CPU.

¿Se sigue diseñando a nivel de puertas (sub)lógicas, o ya no hay mucha innovación en ese campo y hemos pasado a un nivel de abstracción superior? Entiendo cómo se construye una ALU, pero las CPU son mucho más que eso.

¿De dónde proceden los diseños de los miles de millones de transistores? ¿Son en su mayoría autogenerados por software o sigue habiendo mucha optimización manual?

11voto

Avner Puntos 2065

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

Estos lenguajes permiten distintos niveles de abstracción. En VHDL, se pueden definir bloques lógicos como entidades; contiene puertos de entrada y salida. Dentro del bloque puedes definir la lógica necesaria. Digamos que defines un bloque con entrada A, entrada B y salida C. Podrías escribir fácilmente C = A y B;, y básicamente has creado un bloque de puerto AND. Posiblemente sea el bloque más sencillo que se pueda imaginar.

Los sistemas digitales suelen diseñarse con una fuerte jerarquía. Se puede empezar por el "nivel superior", con las principales funciones que requiere una CPU: procesador (¿múltiple?), memoria, PCI-express y otros buses. Dentro de este nivel, es posible que ya estén definidos los buses y las señales de comunicación entre la memoria y el procesador.

Cuando se desciende un nivel, se definen los entresijos de hacer que algo "funcione". Tomando como ejemplo un microcontrolador, puede contener una interfaz UART. La lógica real requerida para hacer una UART funcional se define un nivel por debajo.. Aquí, mucha otra lógica puede ser necesaria para generar y dividir el reloj necesario, almacenar datos (búferes FIFO), informar de los datos a la CPU (algún tipo de sistema de bus).

Lo interesante de VHDL y el diseño digital es la reutilización de bloques. Por ejemplo, puedes copiar y pegar el bloque UART en tu nivel superior para crear 2 UARTs (bueno, quizás no sea tan fácil, sólo si el bloque UART es capaz de algún tipo de direccionamiento).

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

Básicamente, lo que contiene el diseño de sistemas digitales es la descripción de cómo debe "comportarse" la lógica, y el ordenador se utiliza para averiguar cuál es la forma más eficiente de disponer las puertas lógicas individuales.

5voto

ozmank Puntos 127

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

¿Se sigue diseñando a nivel de (sub)puerta lógica?

El diseño se realiza a muchos niveles, el el nivel sublógico es siempre diferente . Cada contracción de fabricación exige la más brillante experiencia en física, química y procesos litográficos, ya que la estructura de un transistor cambia y la geometría también cambia para compensar las compensaciones, ya que se reduce hasta niveles atómicos y coste ~millones de dólares cada paso binario hacia abajo en tamaño. Alcanzar una geometría de 14 nm supone una ingente labor de I+D, control y gestión de procesos, ¡y eso es quedarse corto! enter image description here

Por ejemplo, las competencias laborales necesarias para ello incluyen; - Diseños personalizados a nivel de FET, celda y bloque, planos de planta a nivel de FUB, generación de vistas abstractas, extracción de RC y verificación y depuración de esquemático a plano utilizando fases de desarrollo de diseño físico, incluida la extracción de parásitos, temporización estática, modelos de carga de cables, generación de relojes, edición de polígonos personalizados, algoritmos de autocolocación y enrutamiento, planificación de planta, ensamblaje de chip completo, empaquetado y verificación".

- ¿ya no hay mucha innovación en ese ámbito? - INCORRECTO - La innovación en el campo de la física de semiconductores es considerable y está muy bien financiada. A juzgar por la Ley de Moore y el número de patentes, nunca se detendrá.

- ¿hemos pasado a un nivel superior de abstracción? - Nunca dejó de moverse. - Con la demanda de más núcleos, que hagan más en una sola instrucción como las CPU ARM RISC, µC o MCU integradas más potentes, RAM inteligente con DDR4 que tiene ECC por defecto y sectores como flash con bits de prioridad para las consultas urgentes de memoria. - La evolución de las CPU y los cambios arquitectónicos nunca se detendrán. enter image description here

Déjame darte una pista. Haz una búsqueda de empleo en Intel, AMD, TI o AD para ingenieros y mira las descripciones de los puestos.

- ¿De dónde proceden los diseños de los miles de millones de transistores? - Se trataba de añadir más bloques de hardware de 64 bits. pero ahora que los nanotubos fallan, la forma de pensar tiene que cambiar del enfoque descendente de los bloques al enfoque ascendente de los nanotubos. nanotubos para hacerlo funcionar.

  • ¿Son en su mayoría autogenerados por software? con la lengua bien plantada en la mejilla...

  • En realidad, todavía están extrayendo diseños de Area51 de naves espaciales y tienen un camino que recorrer .... hasta que seamos totalmente compatibles con los nanotubos. Un ingeniero entra en la biblioteca y dice nVidia nos gustaría que se uniera a nosotros aquí en este chip y se convierte en una parte, que entra en un macrobloque . El diseño puede reproducirse como las hormigas en Toystory pero el control explícito sobre todas las conexiones debe ser manualmente enrutado / comprobado a cabo, así como el uso de DRC y auto-enrutamiento para la comparación. Sí Las herramientas de automatización se actualizan constantemente para eliminar duplicidades y pérdidas de tiempo.

    - ¿sigue habiendo mucha optimización manual?

  • Teniendo en cuenta que una aerolínea ahorró dinero suficiente para pagar su sueldo eliminando sólo 1 aceituna de la cena en Primera Clase, Intel buscará la forma de eliminar tantos átomos como sea posible dentro del plazo previsto. Cualquier exceso de capacitancia significa calor desperdiciado, rendimiento y oops también más ruido, no tan rápido...

Pero en realidad las CPU crecen como Tokio, no 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 universidad, pero leyendo y tratando de entender cómo funcionan las cosas, pude ponerme al día en la industria bastante rápido. Obtuve 10 años de experiencia en mis primeros 5 años en el sector aeroespacial, diseño de instrumentos nucleares, diseño de SCADA, monitorización de procesos, diseño de antenas, diseño y depuración de estaciones meteorológicas automatizadas, OCXO's PLL's VLF Rx's, control remoto bidireccional de cohetes Black Brandt... y eso fue sólo mi primer trabajo. No tenía ni idea de lo que podía hacer.

No te preocupes por miles de millones de transistores ni tengas miedo de lo que tienes que aprender o de cuánto necesitas saber. Limítate a seguir tu pasión y a leer revistas especializadas entre sueño y sueño; entonces no te verás tan verde en el trabajo y ya no te parecerá trabajo.

Recuerdo que una vez tuve que diseñar un Op Amp 741 "parecido" como parte de un examen, en 20 minutos. Nunca lo he usado realmente, pero puedo reconocer lo bueno de los grandes diseños. Pero entonces sólo tenía 20 transistores. enter image description here

Pero la forma de diseñar una CPU debe empezar por una especificación, a saber; ¿Por qué el diseño de una CPU y hacer puntos de referencia mensurables para lograr tales como; - Macroinstrucciones 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 denominan diseño EPIC (Explicitly Parallel Instruction Computing). - Diseño de CPU patentado por Transmeta con microprocesadores de morphing de código de palabra de instrucción muy larga (VLIWCMM). Demandaron a Intel en 2006, cerraron el negocio y llegaron a un acuerdo por unos 200 millones de dólares en 2007. - Rendimiento por vatio (PPW) , cuando los costes de energía > coste del chip (para servidores). - Ops por segundo (FLOPS) para el rendimiento matemático.

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

¿Qué herramientas se necesitan para diseñar CPU? La lista no cabría en esta página, desde el diseño físico a nivel atómico hasta el diseño físico EM/RF de malla dinámica, pasando por el ingeniero de pruebas de verificación de diseño front-end, para el que se requieren habilidades como; - Simulación RTL Front-end - Conocimientos de IA y arquitectura informática y diseño a nivel de sistema - Verificación lógica y simulación lógica utilizando VHDL o Verilog. - Programación orientada a objetos y diversos protocolos de CPU, bus/interconexión y coherencia.

2voto

t.dubrownik Puntos 156

Visión general del diseño de CPU de AMD

Versión de Intel

Ninguna de ellas aporta muchos detalles, pero no por ello dejan de ser interesantes. No acepte esto como respuesta. Otros han estudiado tu pregunta en detalle y se han esforzado más en intentar responder con detalle.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X