Unidad central de procesamiento

Los microprocesadores modernos aparecen en todo, desde automóviles hasta teléfonos móviles (celulares) y juguetes de niños.Si bien von Neumann ha sido muchas veces acreditado por el diseño del ordenador con programa almacenado debido a su diseño del EDVAC, otros antes que él, como Konrad Zuse, habían propuesto y aplicado ideas similares.Durante este período, ganó popularidad un método de fabricar muchos transistores en un espacio reducido.El circuito integrado (IC) permitió fabricar una gran cantidad de transistores en una simple oblea basada en semiconductor o «chip».Al principio, solamente se miniaturizaron en IC circuitos digitales muy básicos, no especializados, como las puertas NOR.Esto fue significativo en un tiempo en el que la mayoría de los ordenadores electrónicos eran incompatibles entre sí, incluso los hechas por un mismo fabricante.Para facilitar esta mejora, IBM utilizó el concepto de microprograma, a menudo llamado «microcódigo», ampliamente usado aún en las CPU modernas.Estos primeros diseños experimentales dieron lugar más adelante a la era de los superordenadores especializados, como los hechos por la Cray Inc.Este problema se trata en gran medida en los procesadores modernos por los cachés y las arquitecturas pipeline (ver abajo).A menudo, un grupo de números en la instrucción, llamados opcode, indica qué operación realizar.Muy a menudo, los resultados se escriben en algún registro interno del CPU para acceso rápido por las instrucciones siguientes.Estas banderas pueden usarse para influenciar cómo se comporta un programa, puesto que a menudo indican el resultado de varias operaciones.Entonces, una instrucción de salto posterior puede usar esta bandera para determinar el flujo del programa.En CPUs más complejas que la descrita aquí, pueden leerse, decodificarse y ejecutarse simultáneamente múltiples instrucciones.Otros ordenadores han usado sistemas de numeración más exóticos como el ternario (base tres).Sin embargo, en aplicaciones del extremo alto, los beneficios producidos por el rango adicional (más a menudo el espacio de dirección adicional) son más significativos y con frecuencia afectan las opciones del diseño.Sin embargo, las mejoras arquitectónicas por sí solas, no solucionan todas las desventajas de CPUs globalmente síncronas.Esto ha llevado a que muchas CPUs modernas requieran que se les proporcione múltiples señales de reloj idénticas, para evitar retardar una sola señal lo suficiente como para hacer a la CPU funcionar incorrectamente.Otro importante problema cuando la velocidad del reloj aumenta dramáticamente, es la cantidad de calor que es disipada por la CPU.En lugar de remover totalmente la señal del reloj, algunos diseños de CPU permiten que ciertas unidades del dispositivo sean asincrónicas, como por ejemplo, usando ALU en conjunción con pipelining superescalar para alcanzar algunas ganancias en el desempeño aritmético.Este tipo de CPU, comúnmente denominado "subescalar", opera sobre y ejecuta una sola instrucción con uno o dos datos a la vez.Cuando se refiere al paralelismo en las CPUs, generalmente son usados dos términos para clasificar estas técnicas de diseño.Naturalmente, lograr esto requiere circuitería adicional, los procesadores entubados son más complejos que los subescalares, pero no mucho.El despachador necesita poder determinar rápida y correctamente si las instrucciones pueden ejecutarse en paralelo, tan bien como despacharlas de una manera que mantenga ocupadas tantas unidades de ejecución como sea posible.La estrategia very long instruction word o VLIW, causa a algún ILP a ser implícito directamente por el software, reduciendo la cantidad de trabajo que la CPU debe realizar para darle un empuje significativo al ILP y por lo tanto reducir la complejidad del diseño.Otra estrategia para lograr el rendimiento es ejecutar varios programas o hilos en paralelo.En este esquema, cada CPU tiene un hardware adicional para mantener una visión constantemente actualizada de la memoria.Inicialmente, el multiprocesamiento se construyó usando múltiples CPUs discretas y tableros para implementar la interconexión entre los procesadores.En este esquema, la CPU tendría luego que cambiar rápidamente a otro hilo que está listo para funcionar, el interruptor muchas veces realiza un ciclo de reloj de la CPU, como la tecnología UltraSPARC.Progresivamente, estos primeros diseños fueron refinados y rehechos en alguna de las comunes, modernas especificaciones SIMD, que generalmente están asociadas a un ISA.
Procesador moderno con 8 núcleos y 16 hilos de procesamiento.
El ENIAC , una de los primeros ordenadores de programas almacenados electrónicamente.
CPU, memoria de núcleo e interfaz de bus externo de un MSI PDP-8 /I. Hecho de circuitos integrados de mediana escala.
Diagrama mostrando como es decodificada una instrucción del MIPS32 . (MIPS Technologies 2005)
Diagrama de bloques de un CPU simple.
Microprocesador MOS 6502 en un dual in-line package (encapsulado en doble línea), un diseño extremadamente popular de 8 bits.
Modelo de una CPU subescalar. Note que toma quince ciclos para terminar tres instrucciones.
Tubería básica de cinco etapas. En el mejor de los casos, esta tubería puede sostener un ratio de completado de una instrucción por ciclo.
Segmentación superescalar simple. Al leer y despachar dos instrucciones a la vez, un máximo de dos instrucciones por ciclo pueden ser completadas.
Intel Core i9 12900k Verkaufsverpackung