El documento describe la unidad central de procesamiento (CPU), que es el hardware dentro de un ordenador u otros dispositivos programables que interpreta las instrucciones de un programa informático. Explica que aunque el diseño y forma de las CPU han cambiado drásticamente, su función básica de procesar instrucciones sigue siendo la misma. También resume brevemente la evolución histórica de las CPU, desde los primeros ordenadores con cables hasta los modernos microprocesadores integrados en un solo chip.
2. Conocida por las siglas CPU, del inglés: central processing unit), es el hardware dentro de un ordenador u otros dispositivos
programables, que interpreta las instrucciones de un programa informático mediante la realizació n de las operaciones básicas
aritméticas, ló gicas y de entrada/salida del sistema. El término, y su acró nimo, han estado en uso en la industria de la Informática
por lo menos desde el principio de los añ os 1960
La forma, el diseñ o de CPU y la implementació n de las CPU ha cambiado drásticamente desde los primeros ejemplos, pero su
operació n fundamental sigue siendo la misma.
La forma, el diseñ o de CPU y la implementació n de las CPU ha cambiado drásticamente desde los primeros ejemplos, pero su
operació n fundamental sigue siendo la misma.
La forma, el diseñ o de CPU y la implementació n de las CPU ha cambiado drásticamente desde los primeros ejemplos, pero su
operació n fundamental sigue siendo la misma.
QUE ES?
3. DISEÑO
• Un ordenador puede tener más de una CPU; esto se llama multiprocesamiento. Todas las CPU modernas son
microprocesadores, lo que significa que contienen un solo circuito integrado (chip). Algunos circuitos integrados pueden
contener varias CPU en un solo chip; estos son denominados procesadores multinúcleo. Un circuito integrado que
contiene una CPU también puede contener los dispositivos periféricos, y otros componentes de un sistema informático;
a esto se llama un sistema en un chip (SoC).
Dos componentes típicos de una CPU son la unidad aritmético ló gica (ALU), que realiza operaciones aritméticas y ló gicas, y
la unidad de control (CU), que extrae instrucciones de la memoria, las decodifica y las ejecuta, llamando a la ALU
cuando sea necesario.
4.
5. Historia del CPU
• Los primeros ordenadores, como el ENIAC, tenían que ser físicamente recableados para realizar diferentes tareas, lo
que hizo que estas máquinas se denominaran "ordenadores de programa fijo". Dado que el término "CPU"
generalmente se define como un dispositivo para la ejecució n de software (programa informático), los primeros
dispositivos que con razó n podríamos llamar CPU vinieron con el advenimiento del
ordenador con programa almacenado.
La idea de un ordenador con programa almacenado ya estaba presente en el diseñ o de John Presper Eckert y en el ENIAC
de John William Mauchly, pero esta característica se omitió inicialmente para que el aparato pudiera estar listo antes.
El 30 de junio de 1945, antes de que se construyera la ENIAC, el matemático John von Neumann distribuyó el trabajo
titulado First Draft of a Report on the EDVAC (Primer Borrador de un Reporte sobre el EDVAC). Fue el esbozo de un
ordenador de programa almacenado, que se terminó en agosto de 1949.2
EDVAC fue diseñ ado para realizar un cierto
número de instrucciones (u operaciones) de varios tipos. Significativamente, los programas escritos para el EDVAC se
crearon para ser almacenados en la memoria de alta velocidad del ordenador y no para que los especificara el
cableado físico del ordenador. Esto superó una severa limitació n del ENIAC, que era el importante tiempo y esfuerzo
requerido para volver a configurar el equipo para realizar una nueva tarea. Con el diseñ o de von Neumann, el
programa o software que corría EDVAC podría ser cambiado simplemente cambiando el contenido de la memoria. Sin
embargo, EDVAC no fue el primer ordenador de programa almacenado; la
Máquina Experimental de Pequeñ a Escala de Mánchester, un pequeñ o prototipo de ordenador de programa
almacenado, ejecutó su primer programa el 21 de junio de 19483
y la Manchester Mark I ejecutó su primer programa en
la noche del 16 al 17 junio de 1949.
6. Historia del CPU
• Las primeras CPU fueron diseñ adas a medida como parte de un ordenador más grande, generalmente un ordenador
único en su especie. Sin embargo, este método de diseñ ar las CPU a medida, para una aplicació n particular, ha
desaparecido en gran parte y se ha sustituido por el desarrollo de clases de procesadores baratos y estandarizados
adaptados para uno o varios propó sitos. Esta tendencia de estandarizació n comenzó generalmente en la era de los
transistores discretos, computadoras centrales y microcomputadoras y fue acelerada rápidamente con la popularizació n
del circuito integrado (IC), este ha permitido que sean diseñ ados y fabricados CPU más complejas en espacios
pequeñ os en la orden de nanó metros. Tanto la miniaturizació n como la estandarizació n de las CPU han aumentado la
presencia de estos dispositivos digitales en la vida moderna mucho más alláde las aplicaciones limitadas de máquinas de
computació n dedicadas. Los microprocesadores modernos aparecen en todo, desde automó viles hasta
teléfonos mó viles o celulares y juguetes de niñ os.
Si bien von Neumann muchas veces acreditado por el diseñ o de la computadora con programa almacenado debido a su
diseñ o del EDVAC, otros antes que él, como Konrad Zuse, habían sugerido y aplicado ideas similares. La denominada
arquitectura Harvard del Harvard Mark I, que se completó antes de EDVAC, también utilizó un diseñ o de programa
almacenado usando cinta de papel perforada en vez de memoria electró nica. La diferencia clave entre las arquitecturas
de von Neumann y la de Harvard es que la última separa el almacenamiento y tratamiento de instrucciones de la CPU y
los datos, mientras que el primero utiliza el mismo espacio de memoria para ambos. La mayoría de los CPU modernos
son de diseñ o von Neumann, pero los CPU con arquitectura Harvard se ven así, sobre todo en aplicaciones embebidas;
por ejemplo, los microcontroladores Atmel AVR son procesadores de arquitectura Harvard.
Los relés eléctricos y los tubos de vacío (válvulas termoió nicas) eran usados comúnmente como elementos de conmutació n; un
ordenador útil requiere miles o decenas de miles de dispositivos de conmutació n. La velocidad global de un sistema
depende de la velocidad de los conmutadores. Los ordenadores de tubo, como el EDVAC, tendieron en tener un
promedio de ocho horas entre fallos, mientras que los ordenadores de relés, (anteriores y más lentos), como el
Harvard Mark I, fallaban muy raramente.1
Al final, los CPU basados en tubo llegaron a ser dominantes porque las
significativas ventajas de velocidad producidas generalmente pesaban más que los problemas de confiabilidad. La mayor
parte de estas tempranas CPU síncronas corrían en frecuencias de reloj bajas comparadas con los modernos diseñ os
microelectró nicos. Eran muy comunes en este tiempo las frecuencias de la señ al del reloj con un rango desde 100 kHz
hasta 4 MHz, limitado en gran parte por la velocidad de los dispositivos de conmutació n con los que fueron construidos.
7. CPU DE TRANSMISORESY DE
CIRCUITOS
• La complejidad del diseñ o de las CPU aumentó junto con la facilidad de la construcció n de dispositivos electró nicos
más pequeñ os y confiables. La primera de esas mejoras vino con el advenimiento del transistor. Las CPU
transistorizadas durante los añ os 1950 y los añ os 1960 no tuvieron que ser construidos con elementos de
conmutació n abultados, no fiables y frágiles, como los tubos de vacío y los relés eléctricos. Con esta mejora, fueron
construidas CPU más complejas y más confiables sobre una o varias tarjetas de circuito impreso que contenían
componentes discretos (individuales).
Durante este período, ganó popularidad un método de fabricar muchos transistores en un espacio compacto. El
circuito integrado (IC) permitió que una gran cantidad de transistores fueran fabricados en una simple oblea basada en
semiconductor o "chip". Al principio, solamente circuitos digitales muy básicos, no especializados, como las
puertas NOR fueron miniaturizados en IC. Las CPU basadas en estos IC de "bloques de construcció n" generalmente
son referidos como dispositivos de pequeñ a escala de integració n "small-scale integration" (SSI). Los circuitos
integrados SSI, como los usados en el computador guía del Apollo (Apollo Guidance Computer), usualmente contenían
transistores que se contaban en números de múltiplos de diez. Construir un CPU completo usando IC SSI requería miles
de chips individuales, pero todavía consumía mucho menos espacio y energía que diseñ os anteriores de transistores
discretos. A medida que la tecnología microelectró nica avanzó , en los IC fue colocado un número creciente de
transistores, disminuyendo así la cantidad de IC individuales necesarios para una CPU completa. Los circuitos
integrados MSI y el LSI (de mediana y gran escala de integració n) aumentaron el número de transistores a cientos y
luego a miles.
8. CPU DE TRANSMISORESY DE
CIRCUITOS
• En 1964, IBM introdujo su arquitectura de ordenador System/360, que fue usada en una serie de ordenadores que
podían ejecutar los mismos programas con velocidades y desempeñ os diferentes. Esto fue significativo en un tiempo
en que la mayoría de los ordenadores electró nicos eran incompatibles entre sí, incluso las hechas por el 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.4
La arquitectura System/360 era tan popular que dominó el mercado del
mainframe durante las siguientes décadas y dejó una herencia que todavía aún perdura en los ordenadores modernos,
como el IBM zSeries. En el mismo añ o de 1964, Digital Equipment Corporation (DEC) introdujo otro ordenador que
sería muy influyente, dirigido a los mercados científicos y de investigació n, el PDP-8. DEC introduciría más adelante la
muy popular línea del PDP-11, que originalmente fue construido con IC SSI pero eventualmente fue implementado con
componentes LSI cuando se convirtieron en prácticos. En fuerte contraste con sus precursores hechos con tecnología
SSI y MSI, la primera implementació n LSI del PDP-11 contenía una CPU integrada únicamente por cuatro circuitos
integrados LSI.5
Los ordenadores basados en transistores tenían varias ventajas frente a sus predecesores. Aparte de facilitar una creciente
fiabilidad y un menor consumo de energía, los transistores también permitían que CPU operara a velocidades mucho
más altas debido al corto tiempo de conmutació n de un transistor en comparació n a un tubo o relé. Gracias tanto a
esta creciente fiabilidad como al dramático incremento de velocidad de los elementos de conmutació n que por este
tiempo eran casi exclusivamente transistores, se fueron alcanzando frecuencias de reloj de la CPU de decenas de
megahercios. Además, mientras que las CPU de transistores discretos y circuitos integrados se usaban comúnmente,
comenzaron a aparecer los nuevos diseñ os de alto rendimiento como procesadores vectoriales SIMD (single
instruction multiple data – instrucció n única, datos múltiples). Estos primeros diseñ os experimentales dieron lugar más
adelante a la era de los superordenadores especializados, como los hechos por Cray Inc.
9. Microprocesador
es
• En la década de 1970 los inventos fundamentales de Federico Faggin (ICs Silicon Gate MOS con
puertas autoalineadas junto con su nueva metodología de diseñ o de ló gica aleatoria) cambió el diseñ o e
implementació n de las CPU para siempre. Desde la introducció n del primer microprocesador comercialmente
disponible, el Intel 4004, en 1970 y del primer microprocesador ampliamente usado, el Intel 8080, en 1974, esta clase
de CPU ha desplazado casi totalmente el resto de los métodos de implementació n de la Unidad Central de
procesamiento. Los fabricantes de mainframes y miniordenadores de ese tiempo lanzaron programas de desarrollo de
IC propietarios para actualizar sus arquitecturas de computadoras más viejas y eventualmente producir
microprocesadores con conjuntos de instrucciones que eran retrocompatibles con sus hardwares y softwares más
viejos. Combinado con el advenimiento y el eventual vasto éxito de la ahora ubicua computadora personal, el término
"CPU" es aplicado ahora casi exclusivamentenota1
a los microprocesadores.
Las generaciones previas de CPU fueron implementadas como componentes discretos y numerosos circuitos integrados de
pequeñ a escala de integració n en una o más tarjetas de circuitos. Por otro lado, los microprocesadores son CPU
fabricados con un número muy pequeñ o de IC; usualmente solo uno. El tamañ o más pequeñ o del CPU, como
resultado de estar implementado en una simple pastilla, significa tiempos de conmutació n más rápidos debido a factores
físicos como el decrecimiento de la capacitancia parásita de las puertas.
10. Operación
• La operació n fundamental de la mayoría de las CPU es ejecutar una secuencia de instrucciones almacenadas llamadas
«programa». El programa es representado por una serie de números que se mantienen en una cierta clase de memoria de
ordenador. Hay cuatro pasos que casi todos las CPU de arquitectura de von Neumann usan en su operació n: fetch,
decode, execute, y writeback, (leer, decodificar, ejecutar y escribir).
• FetchEl primer paso, leer, implica el recuperar una instrucció n, (que es representada por un número o una secuencia de
números), de la memoria de programa. La localizació n en la memoria del programa es determinada por un
contador de programa (PC), que almacena un número que identifica la direcció n de la siguiente instrucció n que se debe
buscar. Después se lee una instrucció n, el PC es incrementado por la longitud de la instrucció n en términos de unidades
de memoria de modo que contendrála direcció n de la siguiente instrucció n en la secuencia.nota3
Frecuentemente, la
instrucció n a ser leída debe ser recuperada de memoria relativamente lenta, haciendo detener al CPU mientras espera que
la instrucció n sea devuelta. Esta cuestió n se trata en gran medida en los procesadores modernos por los cachés y las
arquitecturas pipeline (ver abajo).
Decode
En el paso de decodificació n, la instrucció n es dividida en partes que tienen significado para otras unidades de la CPU. La
manera en que el valor de la instrucció n numérica es interpretado estádefinida por la arquitectura del
conjunto de instrucciones (el ISA) de la CPU.nota4
A menudo, un grupo de números en la instrucció n, llamados opcode, indica
qué operació n realizar. Las partes restantes del número usualmente proporcionan informació n requerida para esa
instrucció n, como por ejemplo, operandos para una operació n de adició n. Tales operandos se pueden dar como un valor
constante (llamado valor inmediato), o como un lugar para localizar un valor, que según lo determinado por algún
modo de direcció n, puede ser un registro o una direcció n de memoria. En diseñ os más viejos las unidades del CPU
responsables de decodificar la instrucció n eran dispositivos de hardware fijos. Sin embargo, en CPUs e ISAs más abstractos
y complicados, es frecuentemente usado un microprograma para ayudar a traducir instrucciones en varias señ ales de
configuració n para el CPU. Este microprograma es a veces reescribible de tal manera que puede ser modificado para
cambiar la manera en que el CPU decodifica instrucciones incluso después de que haya sido fabricado.
11. OPERACION• Execute
• Diagrama de bloques de un CPU simple.
Después de los pasos de lectura y decodificació n, es llevado a cabo el paso de la ejecució n de la instrucció n. Durante este
paso, varias unidades del CPU son conectadas de tal manera que ellas pueden realizar la operació n deseada. Si, por
ejemplo, una operació n de adició n fue solicitada, una unidad aritmético ló gica (ALU) seráconectada a un conjunto de
entradas y un conjunto de salidas. Las entradas proporcionan los números a ser sumados, y las salidas contendrán la
suma final. La ALU contiene la circuitería para realizar operaciones simples de aritmética y ló gica en las entradas, como
adició n y operaciones de bits (bitwise). Si la operació n de adició n produce un resultado demasiado grande para poder
ser manejado por el CPU, también puede ser ajustada una bandera (flag) de desbordamiento aritmético localizada en
un registro de banderas (ver abajo la secció n sobre rango de números enteros).
Writeback
El paso final, la escritura, simplemente «escribe»los resultados del paso de ejecució n a una cierta forma de memoria. Muy a
menudo, los resultados son escritos a algún registro interno del CPU para acceso rápido por subsecuentes instrucciones.
En otros casos los resultados pueden ser escritos a una memoria principal más lenta pero más barata y más grande.
Algunos tipos de instrucciones manipulan el contador de programa en lugar de directamente producir datos de
resultado. Estas son llamadas generalmente "saltos" (jumps) y facilitan comportamientos como bucles, la ejecució n
condicional de programas (con el uso de saltos condicionales), y funciones en programas.nota5
Muchas instrucciones
también cambiarán el estado de dígitos en un registro de "banderas". Estas banderas pueden ser usadas para
influenciar có mo se comporta un programa, puesto que a menudo indican el resultado de varias operaciones. Por
ejemplo, un tipo de instrucció n de "comparació n" considera dos valores y fija un número, en el registro de banderas, de
acuerdo a cuál es el mayor. Entonces, esta bandera puede ser usada por una posterior instrucció n de salto para
determinar el flujo de programa.
Después de la ejecució n de la instrucció n y la escritura de los datos resultantes, el proceso entero se repite con el siguiente
ciclo de instrucció n, normalmente leyendo la siguiente instrucció n en secuencia debido al valor incrementado en el
contador de programa. Si la instrucció n completada era un salto, el contador de programa serámodificado para contener
la direcció n de la instrucció n a la cual se saltó , y la ejecució n del programa continúa normalmente. En CPUs más
complejos que el descrito aquí, múltiples instrucciones pueden ser leídas, decodificadas, y ejecutadas simultáneamente.
13. Desempeño
• El "desempeñ o" (performance) o la velocidad de un procesador depende de, entre muchos otros factores, la velocidad
del reloj (generalmente dada en múltiplos de hertz) y las instrucciones por ciclo de reloj (IPC), que juntos son los
factores para las instrucciones por segundo (IPS) que el CPU puede rendir. Muchos reportes de valores IPS han
representado tasas de ejecució n "pico" en secuencias de instrucciones artificiales con pocas ramas, mientras que las
cargas de trabajo realistas consisten en una combinació n de instrucciones y de aplicaciones, algunas de las cuales
requieren más tiempo para ejecutar que otras. El rendimiento de la jerarquía de memoria también afecta en gran
medida al rendimiento del procesador, un tema muy poco tenido en cuenta en los cálculos de MIPS. Debido a estos
problemas, para este fin, se han desarrollado varios exámenes estandarizados, tales como SPECint muchas veces
llamados "puntos de referencia" - para tratar de medir el rendimiento real efectivo en aplicaciones de uso cotidiano.
El desempeñ o de procesamiento de las computadoras se incrementa utilizando procesadores multinúcleo, que en esencia es
conectar dos o más procesadores individuales (llamados núcleos en este sentido) en un solo circuito integrado.11
Idealmente, un procesador de doble núcleo sería casi dos veces tan potente como un procesador de núcleo único. En la
práctica, la ganancia de desempeñ o es mucho menor, solo alrededor del 50%, [cita requerida]
debido a la implementació n de
algoritmos imperfectos de software.12
El aumento del número de núcleos en un procesador (es decir, dual-core, quad-
core, etc) aumenta la carga de trabajo que se puede manejar. Esto significa que el procesador ahora puede manejar
numerosos eventos asíncronos, interrupciones, etc que pueden tomar un "peaje" en la CPU (Central Processing Unit)
cuando se abruma. Estos núcleos pueden considerarse como diferentes plantas en una planta de procesamiento, con
el manejo de cada piso una tarea diferente. En ocasiones, estos núcleos se manejan las mismas tareas que los núcleos
adyacentes a ellos si un solo núcleo no es suficiente para manejar la informació n.
Debido a las capacidades específicas de las CPU modernas, como Hyper-Threading y Uncore, que implican el intercambio de
recursos reales de la CPU mientras que el objetivo de una mayor utilizació n, supervisar los niveles de rendimiento y la
utilizació n del hardware se fue convirtiendo gradualmente en una tarea más compleja. Como respuesta, algunas CPUs
implementan ló gica de hardware adicional que controla la utilizació n real de las diversas partes de una CPU y
proporciona varios contadores accesibles a software; un ejemplo es la tecnología Performance Counter Monitor
("Monitor de contador de rendimiento") de Intel.