El diseño del procesador es la tarea de ingeniería de diseño de crear un procesador , un componente clave del hardware de la computadora . Es un subcampo de la ingeniería informática (diseño, desarrollo e implementación) y la ingeniería electrónica (fabricación). El proceso de diseño implica elegir 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 microprocesadordiseño, 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 adhiere a un soporte de chip . Luego, este portador de chips se suelda o se inserta en un zócalo de una placa de circuito impreso (PCB).
El modo de funcionamiento de cualquier procesador es la ejecución de listas de instrucciones. Las instrucciones generalmente incluyen aquellas para calcular o manipular valores de datos usando 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 un FPGA antes de enviar el diseño del procesador a una fundición para la fabricación de semiconductores . [1]
Detalles
Lo esencial
El diseño de la CPU se divide en el diseño de los siguientes componentes:
- rutas de datos (como ALU y canalizaciones )
- unidad de control : lógica que controla las rutas de datos
- Componentes de memoria como archivos de registro , cachés
- Reloj de los circuitos como los conductores de reloj, PLL , redes de distribución de reloj
- Circuito transceptor de almohadilla
- Biblioteca de celdas de puerta lógica que se utiliza para implementar la lógica
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 los objetivos de frecuencia, disipación de energía y área de chip, mientras que las CPU diseñadas para mercados de menor rendimiento pueden reducir la implementación. carga adquiriendo algunos de estos artículos comprándolos como propiedad intelectual . Las técnicas de implementación de la lógica de control ( síntesis lógica mediante herramientas CAD) se pueden utilizar para implementar rutas de datos, registrar archivos 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 (común en la década de 1980, ya no es común).
Lógica de implementación
Los tipos de dispositivos utilizados para implementar la lógica incluyen:
- Lógica de transistor-transistor Chips lógicos de integración a pequeña escala : ya no se utilizan para CPU
- Lógica de matriz programable y dispositivos lógicos programables : ya no se utilizan para CPU
- Arreglos de puertas de lógica acoplada por emisor (ECL) : ya no son comunes
- Arreglos de puertas CMOS : ya no se usan para CPU
- Circuitos integrados CMOS de producción masiva : la gran mayoría de las CPU por volumen
- CMOS ASIC : solo para una minoría de aplicaciones especiales debido a los gastos
- Arreglos de puertas programables en campo (FPGA): comunes para microprocesadores suaves y más o menos requeridos para computación reconfigurable
Un proyecto de diseño de CPU generalmente tiene estas tareas principales:
- Arquitectura de conjunto de instrucciones visible para el programador , que puede implementarse mediante una variedad de microarquitecturas
- Estudio arquitectónico y modelado de rendimiento en ANSI C / C ++ o SystemC [ aclaración necesaria ]
- Implementación de síntesis de alto nivel (HLS) o nivel de transferencia de registro (RTL, por ejemplo, lógica)
- Verificación RTL
- Diseño de circuitos de componentes críticos de velocidad (cachés, registros, ALU)
- Síntesis lógica o diseño a nivel de puerta lógica
- Análisis de tiempo para confirmar que toda la lógica y los circuitos funcionarán a la frecuencia de operación especificada.
- Diseño físico que incluye la planificación del piso , el lugar y la ruta de las puertas lógicas.
- Comprobación de que las representaciones de RTL, nivel de puerta, nivel de transistor y nivel físico son equivalentes
- Comprueba la integridad de la señal y la capacidad de fabricación del chip.
Rediseñar un núcleo de CPU a un área de matriz más pequeña ayuda a encoger todo (un " encogimiento de fotomáscara "), lo que resulta en la misma cantidad de transistores en una matriz más pequeña. Mejora el rendimiento (los transistores más pequeños cambian más rápido), reduce la energía (los cables más pequeños tienen menos capacitancia parásita ) y reduce el costo (más CPU caben en la misma oblea de silicio). La liberación de una CPU en el mismo tamaño, pero con un núcleo de CPU más pequeño, mantiene el costo casi igual pero permite niveles más altos de integración dentro de un chip de integración a muy gran escala (caché adicional, múltiples CPU u otros componentes), mejorando el rendimiento y reducir el costo general del sistema.
Al igual que con la mayoría de los diseños electrónicos complejos, el esfuerzo de verificación lógica (que demuestra que el diseño no tiene errores) ahora domina el cronograma del proyecto de una CPU.
Las innovaciones arquitectónicas clave de la CPU incluyen registro de índice , caché , memoria virtual , canalización de instrucciones , superescalar , CISC , RISC , máquina virtual , emuladores , microprograma y pila .
Conceptos de microarquitectura
Tópicos de investigación
Se ha propuesto una variedad de nuevas ideas de diseño de CPU , que incluyen lógica reconfigurable , CPU sin reloj , RAM computacional y computación óptica .
Análisis de rendimiento y evaluación comparativa
La evaluación comparativa es una forma de probar la velocidad de la CPU. Los ejemplos incluyen SPECint y SPECfp , desarrollados por Standard Performance Evaluation Corporation , y ConsumerMark desarrollado por Embedded Microprocessor Benchmark Consortium EEMBC .
Algunas de las métricas de uso común incluyen:
- Instrucciones por segundo : la mayoría de los consumidores eligen una arquitectura de computadora (normalmente arquitectura Intel IA32 ) para poder ejecutar una gran base de software precompilado preexistente. Al estar relativamente desinformados sobre los puntos de referencia de las computadoras, algunos de ellos eligen una CPU en particular en función de la frecuencia de funcionamiento (consulte el mito de los megahercios ).
- FLOPS : el número de operaciones de punto flotante por segundo suele ser importante al seleccionar computadoras para cálculos científicos.
- Rendimiento por vatio : los diseñadores de sistemas que construyen computadoras paralelas , como Google , eligen las CPU en función de su velocidad por vatio de potencia, porque el costo de alimentar la CPU supera el costo de la propia CPU. [2] [3]
- Algunos diseñadores de sistemas que construyen computadoras en paralelo eligen las CPU en función de la velocidad por dólar.
- Los diseñadores de sistemas que crean sistemas informáticos en tiempo real quieren garantizar una respuesta en el peor de los casos. Eso es más fácil de hacer cuando la CPU tiene una latencia de interrupción baja y cuando tiene una respuesta determinista. ( DSP )
- Los programadores de computadoras que programan directamente en lenguaje ensamblador quieren una CPU que admita un conjunto de instrucciones completo .
- Baja potencia: para sistemas con fuentes de energía limitadas (por ejemplo, solar, baterías, energía humana).
- Tamaño pequeño o peso reducido: para sistemas integrados portátiles, sistemas para naves espaciales.
- Impacto medioambiental: minimiza el impacto medioambiental de las computadoras durante la fabricación y el reciclaje, así como durante su uso. Reducción de residuos, reducción de materiales peligrosos. (ver Computación verde ).
Puede haber compensaciones en la optimización de algunas de estas métricas. En particular, muchas técnicas de diseño que hacen que una CPU funcione más rápido hacen que el "rendimiento por vatio", el "rendimiento por dólar" y la "respuesta determinista" sean mucho peores, y viceversa.
Mercados
Hay varios mercados diferentes en los que se utilizan CPU. Dado que cada uno de estos mercados difiere en sus requisitos de CPU, los dispositivos diseñados para un mercado son en la mayoría de los casos inapropiados para los otros mercados.
Computación de propósito general
La gran mayoría de los ingresos generados por las ventas de CPU son para computación de propósito general [ cita requerida ] , es decir, computadoras de escritorio, portátiles y servidores que se usan comúnmente en empresas y hogares. En este mercado, la arquitectura Intel IA-32 y la versión de 64 bits x86-64 dominan el mercado, y sus rivales PowerPC y SPARC mantienen bases de clientes mucho más pequeñas. Este mercado utiliza anualmente cientos de millones de CPU con arquitectura IA-32. Un porcentaje creciente de estos procesadores son para implementaciones móviles como netbooks y laptops. [4]
Dado que estos dispositivos se utilizan para ejecutar innumerables tipos diferentes de programas, estos diseños de CPU no están dirigidos específicamente a un tipo de aplicación o función. Las demandas de poder ejecutar una amplia gama de programas de manera eficiente han hecho que estos diseños de CPU estén entre los más avanzados técnicamente, junto con algunas desventajas de ser relativamente costosos y tener un alto consumo de energía.
Economía de procesador de gama alta
En 1984, la mayoría de las CPU de alto rendimiento requerían de cuatro a cinco años para desarrollarse. [5]
Computación científica
La informática científica es un nicho de mercado mucho más pequeño (en ingresos y unidades enviadas). 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 de mercado masivo organizadas en grandes clústeres han demostrado ser más asequibles. El área principal restante del diseño de hardware activo y la investigación para la computación científica son los sistemas de transmisión de datos de alta velocidad para conectar las CPU del mercado masivo.
Diseño incrustado
Según lo medido por las unidades enviadas, la mayoría de las CPU están integradas en otra maquinaria, como teléfonos, relojes, electrodomésticos, vehículos e infraestructura. Sin embargo, los procesadores integrados se venden en el volumen de muchos miles de millones de unidades por año, principalmente a precios mucho más bajos que los de los procesadores de propósito general.
Estos dispositivos de función única se diferencian de las CPU de uso general más familiares en varios aspectos:
- El bajo costo es de gran importancia.
- Es importante mantener una disipación de energía baja, ya que los dispositivos integrados a menudo tienen una duración de batería limitada y, a menudo, no es práctico incluir ventiladores de refrigeración.
- Para reducir el costo del sistema, los periféricos se integran con el procesador en el mismo chip de silicio.
- Mantener los periféricos en el chip también reduce el consumo de energía, ya que los puertos GPIO externos generalmente requieren almacenamiento en búfer para que puedan generar o absorber las cargas de corriente relativamente altas que se requieren para mantener una señal fuerte fuera del chip.
- Muchas aplicaciones integradas tienen una cantidad limitada de espacio físico para circuitos; mantener los periféricos en el chip reducirá el espacio requerido para la placa de circuito.
- El programa y las memorias de datos suelen estar integrados en el mismo chip. Cuando la única memoria de programa permitida es la ROM , el dispositivo se conoce como microcontrolador .
- Para muchas aplicaciones integradas, la latencia de interrupción será más crítica que en algunos procesadores de propósito general.
Economía del procesador integrado
La familia de CPU integradas con el mayor número total de unidades enviadas es la 8051 , con un promedio de casi mil millones de unidades por año. [6] El 8051 se utiliza mucho porque es muy económico. El tiempo de diseño es ahora aproximadamente cero, porque está ampliamente disponible como propiedad intelectual comercial. En la actualidad, a menudo está integrado como una pequeña parte de un sistema más grande en un chip. El costo de silicio de un 8051 es ahora tan bajo como US $ 0,001, porque algunas implementaciones usan tan solo 2200 puertas lógicas y toman 0,0127 milímetros cuadrados de silicio. [7] [8]
A partir de 2009, se producen más CPU utilizando el conjunto de instrucciones de la arquitectura ARM que cualquier otro conjunto de instrucciones de 32 bits. [9] [10] La arquitectura ARM y el primer chip ARM se diseñaron en aproximadamente un año y medio y 5 años humanos de tiempo de trabajo. [11]
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. [12]
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 6502 de MOS Technology fueron diseñados en 13 meses por un grupo de aproximadamente 9 personas. [13]
Diseño de CPU para investigación y educación
La arquitectura Berkeley RISC I y RISC II de 32 bits y los primeros chips fueron diseñados principalmente por una serie de estudiantes como parte de una secuencia de cuatro trimestres de cursos de posgrado. [14] Este diseño se convirtió en la base del diseño del procesador comercial SPARC .
Durante aproximadamente una década, todos los estudiantes que tomaron la clase 6.004 en el MIT fueron 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. [15]
Algunos cursos de pregrado requieren un equipo de 2 a 5 estudiantes para diseñar, implementar y probar una CPU simple en una FPGA en un solo semestre de 15 semanas. [dieciséis]
La CPU MultiTitan se diseñó con 2,5 años-hombre de esfuerzo, lo que se consideraba "un esfuerzo de diseño relativamente pequeño" en ese momento. [17] 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. [18]
Núcleos de microprocesador blandos
Para los sistemas integrados, a menudo no se necesitan ni se desean los niveles de rendimiento más altos debido a los requisitos de consumo de energía. Esto permite el uso de procesadores que pueden implementarse totalmente mediante técnicas de síntesis lógica . Estos procesadores sintetizados se pueden implementar en un período de tiempo mucho más corto, lo que permite una comercialización más rápida .
Ver también
- Ley de amdahl
- Unidad Central de procesamiento
- Comparación de arquitecturas de conjuntos de instrucciones
- Equipo conjunto de instrucciones complejas
- Automatización de diseño electrónico
- Síntesis de alto nivel
- Historia de las CPU de uso general
- Microarquitectura
- Microprocesador
- Ordenador con conjunto de instrucciones mínimo
- Ley de moore
- Grupo reducido de instrucciones para computadoras
- Sistema en un chip
- Kit de diseño de procesos : un conjunto de documentos creados o acumulados para un proceso de producción de dispositivos semiconductores.
Referencias
- ^ Cutress, Ian (27 de agosto de 2019). "Xilinx anuncia FPGA más grande del mundo: Virtex Ultrascale + VU19P con células de 9 m" . AnandTech .
- ^ "EEMBC ConsumerMark" . Archivado desde el original el 27 de marzo de 2005.
- ^ Stephen Shankland (9 de diciembre de 2005). "La energía podría costar más que los servidores, advierte Google" .
- ^ Kerr, Justin. "AMD pierde cuota de mercado debido a que las ventas de CPU móviles superan las ventas de las computadoras de escritorio por primera vez". PC máximo. Publicado 2010-10-26.
- ^ "El nuevo sistema gestiona cientos de transacciones por segundo", artículo de Robert Horst y Sandra Metz, de Tandem Computers Inc., revista "Electronics", 19 de abril de 1984: "Si bien la mayoría de las CPU de alto rendimiento requieren de cuatro a cinco años para desarrollarse, el El procesador NonStop TXP tomó solo 2 + 1/2 años: seis meses para desarrollar una especificación escrita completa, un año para construir un prototipo funcional y otro año para alcanzar el volumen de producción ".
- ^ Curtis A. Nelson. "Descripción general del 8051" (PDF) . Archivado desde el original (PDF) el 2011-10-09 . Consultado el 10 de julio de 2011 .
- ^ Milímetros cuadrados por 8051, 0,013 en anchos de línea de 45 nm; ver
- ^ Para calcular los dólares por milímetro cuadrado, consulte [1] y observe que un componente SOC no tiene costos de clavija o empaque.
- ^ "Los núcleos de ARM trepan al territorio de 3G" por Mark Hachman, 2002.
- ^ "La solución del dos por ciento" por Jim Turley 2002.
- ^ "El camino de ARM" 1998
- ^ "Por qué funciona la hélice" por Chip Gracey
- ^ "Entrevista a William Mensch" . Archivado desde el original el 4 de marzo de 2016 . Consultado el 1 de febrero de 2009 .
- ^ CH Séquin ; DA Patterson . "Diseño e Implementación de RISC I" (PDF) .
- ^ "el VHS" . Archivado desde el original el 27 de febrero de 2010.
- ^ Jan Gray. "Enseñanza del Diseño Informático con FPGAs" .
- ^ Norman P. Jouppi ; Jeffrey YF Tang (1989). "Un microprocesador CMOS de 32 bits sostenido de 20 MIPS con una alta relación de rendimiento sostenido a máximo": i. CiteSeerX 10.1.1.85.988 . Cite journal requiere
|journal=
( ayuda ) - ^ "MultiTitan: Cuatro documentos de arquitectura" (PDF) . 1988. págs. 4-5.
Referencias generales
- Hwang, Enoch (2006). Diseño de microprocesador y lógica digital con VHDL . Thomson. ISBN 0-534-46593-5.
- Diseño de procesador: una introducción