El diseño de procesadores es un subcampo de la informática y la ingeniería informática (fabricación) que se ocupa de la creación de un procesador , un componente clave del hardware de la computadora .
El proceso de diseño implica la elección de un conjunto de instrucciones y un determinado paradigma de ejecución (por ejemplo, VLIW o RISC ) y da como resultado una microarquitectura , que podría describirse en, por ejemplo, VHDL o Verilog . Para el diseño de microprocesadores , esta descripción se fabrica empleando algunos de los diversos procesos de fabricación de dispositivos semiconductores , lo que da como resultado una matriz que se une a un soporte de chip . Luego, este soporte de chip se suelda o se inserta en un zócalo en una placa de circuito impreso (PCB).
El modo de funcionamiento de cualquier procesador es la ejecución de listas de instrucciones. Las instrucciones suelen incluir aquellas para calcular o manipular valores de datos mediante registros , cambiar o recuperar valores en la memoria de lectura/escritura, realizar pruebas relacionales entre valores de datos y controlar el flujo del programa.
Los diseños de procesadores a menudo se prueban y validan en uno o varios FPGA antes de enviar el diseño del procesador a una fundición para la fabricación de semiconductores . [1]
El diseño de la CPU se divide en múltiples componentes. La información se transfiere a través de rutas de datos (como ALU y pipelines ). Estas rutas de datos están controladas a través de la lógica por unidades de control . Los componentes de memoria incluyen archivos de registro y cachés para retener información o ciertas acciones. Los circuitos de reloj mantienen los ritmos internos y la sincronización a través de controladores de reloj, PLL y redes de distribución de reloj . Los circuitos transceptores de almohadilla permiten recibir y enviar señales y una biblioteca de celdas de compuerta lógica que se utiliza para implementar la lógica. Las compuertas lógicas son la base del diseño del procesador, ya que se utilizan para implementar la mayoría de los componentes del procesador. [2]
Las CPU diseñadas para mercados de alto rendimiento pueden requerir diseños personalizados (optimizados o específicos de la aplicación (ver más abajo)) para cada uno de estos elementos para lograr objetivos de frecuencia, disipación de potencia y área de chip, mientras que las CPU diseñadas para mercados de menor rendimiento pueden reducir la carga de implementación adquiriendo algunos de estos elementos comprándolos como propiedad intelectual . Las técnicas de implementación de lógica de control ( síntesis lógica mediante herramientas CAD) se pueden utilizar para implementar rutas de datos, archivos de registro y relojes. Los estilos lógicos comunes utilizados en el diseño de CPU incluyen lógica aleatoria no estructurada, máquinas de estados finitos , microprogramación (común de 1965 a 1985) y matrices lógicas programables (comunes en la década de 1980, ya no son comunes).
Los tipos de dispositivos utilizados para implementar la lógica incluyen:
Un proyecto de diseño de CPU generalmente tiene estas tareas principales:
Rediseñar un núcleo de CPU para que tenga un área de chip más pequeña ayuda a reducir todo (una " reducción de la fotomáscara "), lo que da como resultado la misma cantidad de transistores en un chip más pequeño. Mejora el rendimiento (los transistores más pequeños cambian más rápido), reduce el consumo (los cables más pequeños tienen menos capacidad parásita ) y reduce el costo (más CPU caben en la misma oblea de silicio). Lanzar una CPU en el mismo tamaño de chip, pero con un núcleo de CPU más pequeño, mantiene el costo más o menos igual, pero permite mayores niveles de integración dentro de un chip de integración a gran escala (caché adicional, múltiples CPU u otros componentes), lo que mejora el rendimiento y reduce el costo general del sistema.
Como ocurre con la mayoría de los diseños electrónicos complejos, el esfuerzo de verificación lógica (probar que el diseño no tiene errores) ahora domina el cronograma del proyecto de una CPU.
Las principales innovaciones arquitectónicas de la CPU incluyen registro de índice , caché , memoria virtual , canalización de instrucciones , superescalar , CISC , RISC , máquina virtual , emuladores , microprograma y pila .
Se han propuesto diversas ideas nuevas de diseño de CPU , incluidas lógica reconfigurable , CPU sin reloj , RAM computacional y computación óptica .
La evaluación comparativa es una forma de probar la velocidad de la CPU. Algunos ejemplos son SPECint y SPECfp , desarrollados por Standard Performance Evaluation Corporation , y ConsumerMark, desarrollado por el Embedded Microprocessor Benchmark Consortium EEMBC .
Algunas de las métricas comúnmente utilizadas incluyen:
Puede haber desventajas a la hora de optimizar algunas de estas métricas. En particular, muchas técnicas de diseño que hacen que una CPU funcione más rápido empeoran mucho el "rendimiento por vatio", el "rendimiento por dólar" y la "respuesta determinista", y viceversa.
Existen varios mercados diferentes en los que se utilizan CPU. Dado que cada uno de estos mercados difiere en sus requisitos para CPU, los dispositivos diseñados para un mercado en la mayoría de los casos son inadecuados para los demás mercados.
A partir de 2010 [update], en el mercado de la informática de uso general, es decir, ordenadores de sobremesa, portátiles y servidores de uso común en empresas y hogares, la arquitectura Intel IA-32 y la versión de 64 bits x86-64 dominan el mercado, mientras que sus rivales PowerPC y SPARC mantienen bases de clientes mucho más pequeñas. Anualmente, este mercado utiliza cientos de millones de CPU de arquitectura IA-32. Un porcentaje cada vez mayor de estos procesadores se destinan a implementaciones móviles, como netbooks y portátiles. [5]
Dado que estos dispositivos se utilizan para ejecutar innumerables tipos de programas diferentes, estos diseños de CPU no están específicamente destinados a un tipo de aplicación o una función. Las exigencias de poder ejecutar una amplia gama de programas de manera eficiente han hecho que estos diseños de CPU se encuentren entre los más avanzados técnicamente, junto con algunas desventajas como ser relativamente costosos y tener un alto consumo de energía.
En 1984, la mayoría de las CPU de alto rendimiento requerían de cuatro a cinco años para su desarrollo. [6]
La informática científica es un nicho de mercado mucho más pequeño (en términos de ingresos y unidades vendidas). Se utiliza en laboratorios de investigación gubernamentales y universidades. Antes de 1990, el diseño de CPU se hacía a menudo para este mercado, pero las CPU para el mercado masivo organizadas en grandes grupos han demostrado ser más asequibles. El principal ámbito restante de diseño e investigación de hardware activo para la informática científica es el de los sistemas de transmisión de datos de alta velocidad para conectar las CPU para el mercado masivo.
Si se mide por unidades vendidas, la mayoría de las CPU están integradas en otras máquinas, como teléfonos, relojes, electrodomésticos, vehículos e infraestructura. Sin embargo, los procesadores integrados se venden en un volumen de miles de millones de unidades por año, en su mayoría a precios mucho más bajos que los procesadores de uso general.
Estos dispositivos de función única se diferencian de las CPU de propósito general más conocidas en varios aspectos:
La familia de CPU integradas con la mayor cantidad de unidades totales vendidas es la 8051 , con un promedio de casi mil millones de unidades por año. [7] El 8051 se usa ampliamente porque es muy económico. El tiempo de diseño ahora es aproximadamente cero, porque está ampliamente disponible como propiedad intelectual comercial. Ahora se integra a menudo como una pequeña parte de un sistema más grande en un chip. El costo de silicio de un 8051 ahora es tan bajo como US$0,001, porque algunas implementaciones usan tan solo 2200 puertas lógicas y ocupan 0,4730 milímetros cuadrados de silicio. [8] [9]
A partir de 2009, se produjeron más CPU que utilizan los conjuntos de instrucciones de la familia de arquitectura ARM que cualquier otro conjunto de instrucciones de 32 bits. [10] [11] La arquitectura ARM y el primer chip ARM se diseñaron en aproximadamente un año y medio y 5 años de tiempo de trabajo humano. [12]
La arquitectura del microcontrolador Parallax Propeller de 32 bits y el primer chip fueron diseñados por dos personas en aproximadamente 10 años humanos de tiempo de trabajo. [13]
La arquitectura AVR de 8 bits y el primer microcontrolador AVR fueron concebidos y diseñados por dos estudiantes del Instituto Noruego de Tecnología.
La arquitectura 6502 de 8 bits y el primer chip MOS Technology 6502 fueron diseñados en 13 meses por un grupo de aproximadamente 9 personas. [14]
Los procesadores Berkeley RISC I y RISC II de 32 bits fueron diseñados principalmente por una serie de estudiantes como parte de una secuencia de cuatro trimestres de cursos de posgrado. [15] Este diseño se convirtió en la base del diseño del procesador comercial SPARC .
Durante aproximadamente una década, cada estudiante que tomaba la clase 6.004 en el MIT formaba parte de un equipo: cada equipo tenía un semestre para diseñar y construir una CPU simple de 8 bits a partir de circuitos integrados de la serie 7400. Un equipo de 4 estudiantes diseñó y construyó una CPU simple de 32 bits durante ese semestre. [16]
Algunos cursos de pregrado requieren un equipo de 2 a 5 estudiantes para diseñar, implementar y probar una CPU simple en un FPGA en un solo semestre de 15 semanas. [17]
La CPU MultiTitan fue diseñada con 2,5 años de esfuerzo, lo que se consideró "relativamente poco esfuerzo de diseño" en ese momento. [18] 24 personas contribuyeron al proyecto de investigación MultiTitan de 3,5 años, que incluyó el diseño y la construcción de un prototipo de CPU. [19]
En el caso de los sistemas integrados, los niveles de rendimiento más altos no suelen ser necesarios ni deseables debido a los requisitos de consumo de energía. Esto permite el uso de procesadores que se pueden implementar totalmente mediante técnicas de síntesis lógica . Estos procesadores sintetizados se pueden implementar en un tiempo mucho menor, lo que permite una comercialización más rápida .