Está en la página 1de 16

Unidad central de procesamiento

Ir a la navegaci�n
Ir a la b�squeda
Para otros usos de este t�rmino, v�ase Procesador.
Vista superior de una CPU Intel 80486DX2 en un paquete PGA de cer�mica.
Vista posterior de una Intel 80486DX2.
Procesador moderno con capacidades de hasta 8 n�cleos y 16 hilos de procesamiento.

La unidad central de procesamiento o unidad de procesamiento central (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.1? 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.

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.

No todos los sistemas computacionales se basan en una unidad central de


procesamiento. Una matriz de procesador o procesador vectorial tiene m�ltiples
elementos de c�mputo paralelo, sin una unidad considerada el "centro". En el modelo
de computaci�n distribuido, se resuelven problemas mediante un conjunto
interconectado y distribuido de procesadores.
�ndice

1 Historia
1.1 CPU de transistores y de circuitos integrados discretos
1.2 Microprocesadores
2 Operaci�n
2.1 Fetch
2.2 Decode
2.3 Execute
2.4 Writeback
3 Dise�o e implementaci�n
3.1 Rango de enteros
3.2 Frecuencia de reloj
3.3 Paralelismo
3.3.1 ILP: Segmentaci�n y arquitectura superescalar
3.3.2 Paralelismo a nivel de hilos
3.3.3 Paralelismo de datos
4 Desempe�o
5 V�ase tambi�n
6 Notas
7 Referencias
8 Bibliograf�a
9 Enlaces externos
9.1 Dise�os de microprocesador
9.2 Lectura adicional

Historia
Art�culo principal: Anexo:Historia de la computaci�n
El EDVAC, una de las primeras computadoras de programas almacenados
electr�nicamente.

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 1948.3? Su sucesora, la
Manchester Mark I, ejecut� su primer programa en la noche del 16 al 17 junio de
1949.

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.
CPU de transistores y de circuitos integrados discretos
CPU, memoria de n�cleo e interfaz de bus externo de un MSI PDP-8/I. Hecho de
circuitos integrados de mediana escala.

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.

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.
Microprocesadores
Art�culo principal: Microprocesador
Oblea de un microprocesador Intel 80486DX2 (tama�o: 12�6,75 mm) en su empaquetado.
CPU Intel Core i5 en una placa madre del ordenador port�til Vaio serie E (a la
derecha, debajo del tubo termosif�n bif�sico.

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 exclusivamentenota 1? 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. Esto ha permitido que los microprocesadores
s�ncronos tengan tiempos de reloj con un rango de decenas de megahercios a varios
gigahercios. Adicionalmente, como ha aumentado la capacidad de construir
transistores excesivamente peque�os en un IC, la complejidad y el n�mero de
transistores en un simple CPU tambi�n se ha incrementado dram�ticamente. Esta
tendencia ampliamente observada es descrita por la ley de Moore, que ha demostrado
hasta la fecha, ser una predicci�n bastante exacta del crecimiento de la
complejidad de los CPUs y otros IC.6?

Mientras que, en los pasados sesenta a�os han cambiado dr�sticamente, la


complejidad, el tama�o, la construcci�n y la forma general de la CPU, es notable
que el dise�o y el funcionamiento b�sico no ha cambiado demasiado. Casi todos los
CPU comunes de hoy se pueden describir con precisi�n como m�quinas de programa
almacenado de von Neumann.nota 2? A medida que la ya mencionada ley del Moore
contin�a manteni�ndose verdadera,6? se han presentado preocupaciones sobre los
l�mites de la tecnolog�a de transistor del circuito integrado. La miniaturizaci�n
extrema de puertas electr�nicas est� causando los efectos de fen�menos que se
vuelven mucho m�s significativos, como la electromigraci�n y el subumbral de
p�rdida. Estas nuevas preocupaciones est�n entre los muchos factores que hacen a
investigadores estudiar nuevos m�todos de computaci�n como la computaci�n cu�ntica,
as� como ampliar el uso de paralelismo y otros m�todos que extienden la utilidad
del modelo cl�sico de von Neumann.
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).
Diagrama mostrando como es decodificada una instrucci�n del MIPS32. (MIPS
Technologies 2005)
Fetch

El 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.nota
3? 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.nota 4? 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.
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.nota 5? 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. Esta secci�n describe lo que es referido generalmente
como el "entubado RISC cl�sico" (Classic RISC pipeline), que de hecho es bastante
com�n entre los CPU simples usados en muchos dispositivos electr�nicos, a menudo
llamados microcontroladores.nota 6?
Dise�o e implementaci�n
V�anse tambi�n: Arquitectura de computadoras y Circuito digital.
Rango de enteros

La manera en que un CPU representa los n�meros es una opci�n de dise�o que afecta
las m�s b�sicas formas en que el dispositivo funciona. Algunas de las primeras
calculadoras digitales usaron, para representar n�meros internamente, un modelo
el�ctrico del sistema de numeraci�n decimal com�n (base diez). Algunas otras
computadoras han usado sistemas de numeraci�n m�s ex�ticos como el ternario (base
tres). Casi todos los CPU modernos representan los n�meros en forma binaria, en
donde cada d�gito es representado por una cierta cantidad f�sica de dos valores,
como un voltaje "alto" o "bajo".nota 7?
Microprocesador MOS 6502 en un dual in-line package (encapasulado en doble l�nea),
un dise�o extremadamente popular de 8 bits.

Con la representaci�n num�rica est�n relacionados el tama�o y la precisi�n de los


n�meros que un CPU puede representar. En el caso de un CPU binario, un bit se
refiere a una posici�n significativa en los n�meros con que trabaja un CPU. El
n�mero de bits (o de posiciones num�ricas, o d�gitos) que un CPU usa para
representar los n�meros, a menudo se llama "tama�o de la palabra", "ancho de bits",
"ancho de ruta de datos", o "precisi�n del n�mero entero" cuando se ocupa
estrictamente de n�meros enteros (en oposici�n a n�meros de coma flotante). Este
n�mero difiere entre las arquitecturas, y a menudo dentro de diferentes unidades
del mismo CPU. Por ejemplo, un CPU de 8 bits maneja un rango de n�meros que pueden
ser representados por ocho d�gitos binarios, cada d�gito teniendo dos valores
posibles, y en combinaci�n los 8 bits teniendo 28 o 256 n�meros discretos. En
efecto, el tama�o del n�mero entero fija un l�mite de hardware en el rango de
n�meros enteros que el software corre y que el CPU puede usar directamente.nota 8?

El rango del n�mero entero tambi�n puede afectar el n�mero de posiciones en memoria
que el CPU puede direccionar (localizar). Por ejemplo, si un CPU binario utiliza 32
bits para representar una direcci�n de memoria, y cada direcci�n de memoria
representa a un octeto (8 bits), la cantidad m�xima de memoria que el CPU puede
direccionar es 232 octetos, o 4 GB. Esta es una vista muy simple del espacio de
direcci�n del CPU, y muchos dise�os modernos usan m�todos de direcci�n mucho m�s
complejos como paginaci�n para localizar m�s memoria que su rango entero permitir�a
con un espacio de direcci�n plano.

Niveles m�s altos del rango de n�meros enteros requieren m�s estructuras para
manejar los d�gitos adicionales, y por lo tanto, m�s complejidad, tama�o, uso de
energ�a, y generalmente costo. Por ello, no es del todo infrecuente, ver
microcontroladores de 4 y 8 bits usados en aplicaciones modernas, aun cuando est�n
disponibles CPU con un rango mucho m�s alto (de 16, 32, 64, e incluso 128 bits).
Los microcontroladores m�s simples son generalmente m�s baratos, usan menos
energ�a, y por lo tanto disipan menos calor. Todo esto pueden ser consideraciones
de dise�o importantes para los dispositivos electr�nicos. 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. Para ganar algunas de las ventajas
proporcionadas por las longitudes de bits tanto m�s bajas, como m�s altas, muchas
CPUs est�n dise�adas con anchos de bit diferentes para diferentes unidades del
dispositivo. Por ejemplo, el IBM System/370 us� un CPU que fue sobre todo de 32
bits, pero us� precisi�n de 128 bits dentro de sus unidades de coma flotante para
facilitar mayor exactitud y rango de n�meros de coma flotante.4? Muchos dise�os
posteriores de CPU usan una mezcla de ancho de bits similar, especialmente cuando
el procesador est� dise�ado para usos de prop�sito general donde se requiere un
razonable equilibrio entre la capacidad de n�meros enteros y de coma flotante.
Frecuencia de reloj
Art�culo principal: Frecuencia de reloj

La mayor�a de los CPU, y de hecho, la mayor�a de los dispositivos de l�gica


secuencial, son de naturaleza s�ncrona.nota 9? Es decir, est�n dise�ados y operan
en funci�n de una se�al de sincronizaci�n. Esta se�al, conocida como se�al de
reloj, usualmente toma la forma de una onda cuadrada peri�dica. Calculando el
tiempo m�ximo en que las se�ales el�ctricas pueden moverse en las varias
bifurcaciones de los muchos circuitos de un CPU, los dise�adores pueden seleccionar
un per�odo apropiado para la se�al del reloj.

Este per�odo debe ser m�s largo que la cantidad de tiempo que toma a una se�al
moverse, o propagarse en el peor de los casos. Al fijar el per�odo del reloj a un
valor bastante mayor sobre el retardo de la propagaci�n del peor caso, es posible
dise�ar todo el CPU y la manera que mueve los datos alrededor de los "bordes" de la
subida y bajada de la se�al del reloj. Esto tiene la ventaja de simplificar el CPU
significativamente, tanto en una perspectiva de dise�o, como en una perspectiva de
cantidad de componentes. Sin embargo, esto tambi�n tiene la desventaja que todo el
CPU debe esperar por sus elementos m�s lentos, aun cuando algunas unidades de la
misma son mucho m�s r�pidas. Esta limitaci�n ha sido compensada en gran parte por
varios m�todos de aumentar el paralelismo del CPU (ver abajo).

Sin embargo, las mejoras arquitect�nicas por s� solas, no solucionan todas las
desventajas de CPUs globalmente s�ncronas. Por ejemplo, una se�al de reloj est�
sujeta a los retardos de cualquier otra se�al el�ctrica. Velocidades de reloj m�s
altas en CPUs cada vez m�s complejas hacen m�s dif�cil de mantener la se�al del
reloj en fase (sincronizada) a trav�s de toda la unidad. Esto ha conducido que
muchos CPU modernos 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 al CPU
funcionar incorrectamente. Otro importante problema cuando la velocidad del reloj
aumenta dram�ticamente, es la cantidad de calor que es disipado por el CPU. La
se�al del reloj cambia constantemente, provocando la conmutaci�n de muchos
componentes (cambio de estado) sin importar si est�n siendo usados en ese momento.
En general, un componente que est� cambiando de estado, usa m�s energ�a que un
elemento en un estado est�tico. Por lo tanto, a medida que la velocidad del reloj
aumenta, as� lo hace tambi�n la disipaci�n de calor, causando que el CPU requiera
soluciones de enfriamiento m�s efectivas.

Un m�todo de tratar la conmutaci�n de componentes innecesarios se llama el clock


gating, que implica apagar la se�al del reloj a los componentes innecesarios,
efectivamente desactiv�ndolos. Sin embargo, esto es frecuentemente considerado como
dif�cil de implementar y por lo tanto no ve uso com�n fuera de dise�os de muy baja
potencia. Un notable dise�o de CPU tard�o que utiliza una amplia compuerta del
reloj para reducir los requisitos de potencia de la consola de videojuegos es la de
la Xbox 360 basada en la PowerPC de IBM.7? Otro m�todo de tratar algunos de los
problemas de una se�al global de reloj es la completa remoci�n de la misma.
Mientras que quitar la se�al global del reloj hace, de muchas maneras,
considerablemente m�s complejo el proceso del dise�o, en comparaci�n con dise�os
s�ncronos similares, los dise�os asincr�nicos (o sin reloj) tienen marcadas
ventajas en el consumo de energ�a y la disipaci�n de calor. Aunque se trate de algo
infrecuente, las CPUs completas se han construido sin utilizar una se�al global de
reloj. Dos notables ejemplos de esto son el AMULET, que implementa la arquitectura
del ARM, y el MiniMIPS, compatible con el MIPS R3000. 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.
Mientras que no est� completamente claro si los dise�os totalmente asincr�nicos
pueden desempe�arse a un nivel comparable o mejor que sus contrapartes s�ncronas,
es evidente que por lo menos sobresalen en las operaciones matem�ticas m�s simples.
Esto, combinado con sus excelentes caracter�sticas de consumo de energ�a y
disipaci�n de calor, los hace muy adecuados para sistemas embebidos.8?
Paralelismo
Art�culo principal: Computaci�n paralela
Modelo de un CPU subescalar. Note que toma quince ciclos para terminar tres
instrucciones.

La descripci�n de la operaci�n b�sica de un CPU ofrecida en la secci�n anterior


describe la forma m�s simple que puede tomar un CPU. Este tipo de CPU, usualmente
referido como subescalar, opera sobre y ejecuta una sola instrucci�n con una o dos
piezas de datos a la vez.

Este proceso da lugar a una ineficacia inherente en CPU subescalares. Puesto que
solamente una instrucci�n es ejecutada a la vez, todo el CPU debe esperar que esa
instrucci�n se complete antes de proceder a la siguiente instrucci�n. Como
resultado, la CPU subescalar queda "paralizado" en instrucciones que toman m�s de
un ciclo de reloj para completar su ejecuci�n. Incluso la adici�n de una segunda
unidad de ejecuci�n (ver abajo) no mejora mucho el desempe�o. En lugar de un camino
quedando congelado, ahora dos caminos se paralizan y aumenta el n�mero de
transistores no usados. Este dise�o, en donde los recursos de ejecuci�n de la CPU
pueden operar con solamente una instrucci�n a la vez, solo puede, posiblemente,
alcanzar el desempe�o escalar (una instrucci�n por ciclo de reloj). Sin embargo, el
desempe�o casi siempre es subescalar (menos de una instrucci�n por ciclo).

Las tentativas de alcanzar un desempe�o escalar y mejor, han resultado en una


variedad de metodolog�as de dise�o que hacen comportarse al CPU menos linealmente y
m�s en paralelo. Cuando se refiere al paralelismo en los CPU, generalmente son
usados dos t�rminos para clasificar estas t�cnicas de dise�o.
El paralelismo a nivel de instrucci�n, en ingl�s instruction level parallelism
(ILP), busca aumentar la tasa en la cual las instrucciones son ejecutadas dentro de
un CPU, es decir, aumentar la utilizaci�n de los recursos de ejecuci�n en la
pastilla.
El paralelismo a nivel de hilo de ejecuci�n, en ingl�s thread level parallelism
(TLP), que se propone incrementar el n�mero de hilos (efectivamente programas
individuales) que un CPU pueda ejecutar simult�neamente.

Cada metodolog�a se diferencia tanto en las maneras en las que est�n implementadas,
como en la efectividad relativa que producen en el aumento del desempe�o de la CPU
para una aplicaci�n.nota 10?
ILP: Segmentaci�n y arquitectura superescalar
Art�culos principales: Segmentaci�n (electr�nica) y Superescalar.
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.

Uno de los m�todos m�s simples para lograr incrementar el paralelismo es comenzar
los primeros pasos de leer y decodificar la instrucci�n antes de que la instrucci�n
anterior haya terminado de ejecutarse. Esta es la forma m�s simple de una t�cnica
conocida como segmentaci�n (instruction pipelining en ingl�s), y es utilizada en
casi todas los CPU de prop�sito general modernos. Al dividir la ruta de ejecuci�n
en etapas discretas, la tuber�a permite que m�s de una instrucci�n sea ejecutada en
cualquier tiempo. Esta separaci�n puede ser comparada a una l�nea de ensamblaje, en
la cual una instrucci�n es hecha m�s completa en cada etapa hasta que sale de la
tuber�a de ejecuci�n y es retirada del mismo.

Sin embargo, la tuber�a introduce la posibilidad de una situaci�n donde es


necesario terminar el resultado de la operaci�n anterior para completar la
operaci�n siguiente; una condici�n llamada a menudo como conflicto de dependencia
de datos. Para hacer frente a esto, debe ser tomado un cuidado adicional para
comprobar estas clases de condiciones, y si esto ocurre, se debe retrasar una
porci�n de la tuber�a de instrucci�n. Naturalmente, lograr esto requiere
circuiter�a adicional, los procesadores entubados son m�s complejos que los
subescalares, pero no mucho. Un procesador entubado puede llegar a ser casi
completamente escalar, solamente inhibido por las abruptas paradas de la tuber�a
(una instrucci�n durando m�s de un ciclo de reloj en una etapa).
Segmentaci�n superescalar simple. Al leer y despachar dos instrucciones a la vez,
un m�ximo de dos instrucciones por ciclo pueden ser completadas.

Una mejora adicional sobre la idea del entubado de instrucci�n (instruction


pipelining) condujo al desarrollo de un m�todo que disminuye incluso m�s el tiempo
ocioso de los componentes del CPU. Dise�os que se dice que son superescalares
incluyen una larga tuber�a de instrucci�n y m�ltiples unidades de ejecuci�n
id�nticas.9? En una tuber�a superescalar, m�ltiples instrucciones son le�das y
pasadas a un despachador, que decide si las instrucciones se pueden o no ejecutar
en paralelo (simult�neamente). De ser as�, son despachadas a las unidades de
ejecuci�n disponibles, dando por resultado la capacidad para que varias
instrucciones sean ejecutadas simult�neamente. En general, cuanto m�s instrucciones
un CPU superescalar es capaz de despachar simult�neamente a las unidades de
ejecuci�n en espera, m�s instrucciones ser�n completadas en un ciclo dado.

La mayor parte de la dificultad en el dise�o de una arquitectura superescalar de


CPU descansa en crear un despachador eficaz. 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. Esto requiere que la tuber�a de instrucci�n
sea llenada tan a menudo como sea posible y se incrementa la necesidad, en las
arquitecturas superescalares, de cantidades significativas de cach� de CPU. Esto
tambi�n crea t�cnicas para evitar peligros como la predicci�n de bifurcaci�n,
ejecuci�n especulativa, y la ejecuci�n fuera de orden, cruciales para mantener
altos niveles de desempe�o. Tratando de predecir qu� rama (o trayectoria) tomar�
una instrucci�n condicional, la CPU puede minimizar el n�mero de veces que todo el
canal debe esperar hasta que se complete una instrucci�n condicional.
Frecuentemente, la ejecuci�n especulativa proporciona aumentos modestos del
desempe�o al ejecutar porciones de c�digo que no puede ser necesario despu�s de
completarse una operaci�n condicional. Fuera de la orden de ejecuci�n cambia de
alg�n modo el orden en que se ejecutan las instrucciones para reducir retardos
debido a las dependencias de datos. Tambi�n en el caso de instrucciones
individuales de datos m�ltiples � los procesadores modernos, en caso de que se
hayan procesado una gran cantidad de datos del mismo tipo, pueden desactivar partes
de la tuber�a de manera que cuando se ejecuta una sola sentencia muchas veces, la
CPU salta la captaci�n y decodifica fases y por lo tanto aumenta considerablemente
el rendimiento en ciertas ocasiones, sobre todo en los motores de programas
altamente mon�tonos como el software de creaci�n de video y procesamiento de
fotograf�as.

En el caso donde una porci�n de la CPU es superescalar y una parte no lo es, la


parte que no es superescalar sufre en el desempe�o debido a las paradas de horario.
El Intel Pentium original (P5) ten�a dos ALUs superescalares que pod�an aceptar,
cada una, una instrucci�n por ciclo de reloj, pero su FPU no pod�a aceptar una
instrucci�n por ciclo de reloj. As� el P5 era superescalar en la parte de n�meros
enteros pero no era superescalar de n�meros de coma (o punto [decimal]) flotante.
El sucesor a la arquitectura del Pentium de Intel, el P6, agreg� capacidades
superescalares a sus funciones de coma flotante, y por lo tanto produjo un
significativo aumento en el desempe�o de este tipo de instrucciones.

Tanto el dise�o superescalar como el entubado simple aumentan el ILP de una CPU al
permitir a un solo procesador completar la ejecuci�n de instrucciones en ratios que
sobrepasan una instrucci�n por ciclo (IPC).nota 11? La mayor�a de los modernos
dise�os de CPU son por lo menos algo superescalares, y en la �ltima d�cada, casi
todos los dise�os de CPU de prop�sito general son superescalares. En los �ltimos
a�os algo del �nfasis en el dise�o de computadores de alto ILP se ha movido del
hardware del CPU hacia su interfaz de software, o ISA. 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 el CPU debe realizar para darle un
empuje significativo al ILP y por lo tanto reducir la complejidad del dise�o.
Paralelismo a nivel de hilos

Otra estrategia para lograr el rendimiento es ejecutar varios programas o hilos en


paralelo. Esta �rea de investigaci�n se conoce como computaci�n paralela. En la
taxonom�a de Flynn, esta estrategia se conoce como m�ltiples instrucciones de
varios datos o MIMD.

Una tecnolog�a utilizada para este prop�sito fue el multiprocesamiento (MP). El


puntapi� inicial de esta tecnolog�a se conoce como multiprocesamiento sim�trico
(SMP), donde un peque�o n�mero de CPU comparten una visi�n coherente de su sistema
de memoria. En este esquema, cada CPU tiene un hardware adicional para mantener una
visi�n constantemente actualizada de la memoria. Para evitar visitas rancias de la
memoria, las CPU pueden cooperar en el mismo programa y los programas pueden migrar
desde una CPU a otra. Para aumentar el n�mero de CPUs que cooperan m�s all� de unas
pocas, se introdujeron en 1990, los esquemas tales como el non-uniform memory
Access (acceso no uniforme a memoria) (NUMA) y los protocolos de coherencia basados
en directorios. Los sistemas SMP se limitan a un peque�o n�mero de CPU mientras que
los sistemas NUMA se han construido con miles de procesadores. Inicialmente, el
multiprocesamiento se construy� usando m�ltiples CPUs discretas y tableros para
implementar la interconexi�n entre los procesadores. Cuando los procesadores y su
interconexi�n hayan sido implementadas en un �nico chip de silicio, la tecnolog�a
se conoce como un procesador multin�cleo.
Posteriormente, se reconoci� que exist�a un paralelismo muy estrecho con un �nico
programa. Un �nico programa podr�a tener varios hilos (o funciones) que podr�an ser
ejecutadas por separado o en paralelo. Algunos de los primeros ejemplos de esta
tecnolog�a implementaba procesamiento de entrada/salida tales como el acceso
directo a memoria como un hilo separado del hilo computado. En la d�cada de 1970,
se introdujo un enfoque m�s general a esta tecnolog�a, cuando se dise�aron sistemas
para ejecutar m�ltiples hilos de computaci�n en paralelo. Esta tecnolog�a se conoce
como multihilo (MT).

Este enfoque se considera m�s rentable que la del multiprocesamiento, ya que solo
se replica un peque�o n�mero de componentes dentro de una CPU para soportar MT en
oposici�n a la totalidad de la CPU en el caso de MP. En MT, las unidades de
ejecuci�n y el sistema de memoria incluyendo los cach�s son compartidos entre
varios hilos. La desventaja de MT es que el soporte de hardware para multihilo es
m�s visible para el software que la de MP y por lo tanto el software supervisor
como el de los sistemas operativos tienen que someterse a los cambios m�s grandes
para apoyar MT. Un tipo de MT que se implement� es conocido como bloque multihilo,
donde se ejecuta un hilo hasta que se paralice esperando que regresen los datos
desde la memoria externa. 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. Otro tipo de MT
se denomina multihilo simult�neo, en donde las instrucciones de m�ltiples hilos se
ejecutan en paralelo dentro de un ciclo de reloj de la CPU.
Paralelismo de datos
Art�culos principales: Procesador vectorial y SIMD.

Un menos com�n pero cada vez m�s importante paradigma de CPU (y de hecho, de
computaci�n en general) trata con vectores. Los procesadores de los que se ha
hablado anteriormente son todos referidos como cierto tipo de dispositivo
escalar.nota 12? Como implica su nombre, los procesadores vectoriales se ocupan de
m�ltiples piezas de datos en el contexto de una instrucci�n, esto contrasta con los
procesadores escalares, que tratan una pieza de dato por cada instrucci�n. Estos
dos esquemas de ocuparse de los datos son generalmente referidos respectivamente
como SISD (single instruction, single data) y SIMD (single instruction, multiple
data). La gran utilidad en crear CPU que se ocupen de vectores de datos radica en
la optimizaci�n de tareas que tienden a requerir la misma operaci�n, por ejemplo,
una suma, o un producto escalar, a ser realizado en un gran conjunto de datos.
Algunos ejemplos cl�sicos de este tipo de tareas son las aplicaciones multimedia
(im�genes, v�deo, y sonido), as� como muchos tipos de tareas cient�ficas y de
ingenier�a. Mientras que una CPU escalar debe completar todo el proceso de leer,
decodificar, y ejecutar cada instrucci�n y valor en un conjunto de datos, una CPU
vectorial puede realizar una simple operaci�n en un comparativamente grande
conjunto de datos con una sola instrucci�n. Por supuesto, esto es solamente posible
cuando la aplicaci�n tiende a requerir muchos pasos que apliquen una operaci�n a un
conjunto grande de datos.

La mayor�a de las primeras CPU vectoriales, como el Cray-1, se asociaron casi


exclusivamente a aplicaciones de investigaci�n cient�fica y criptograf�a. Sin
embargo, a medida que la multimedia se desplaz� en gran parte a medios digitales,
ha llegado a ser significativa la necesidad de una cierta forma de SIMD en CPUs de
prop�sito general. Poco despu�s de que comenzara a ser com�n incluir unidades de
coma flotante en procesadores de uso general, tambi�n comenzaron a aparecer
especificaciones e implementaciones de unidades de ejecuci�n SIMD para las CPU de
uso general. Algunas de estas primeras especificaciones SIMD, como el MMX de Intel,
fueron solamente para n�meros enteros. Esto demostr� ser un impedimento
significativo para algunos desarrolladores de software, ya que muchas de las
aplicaciones que se beneficiaban del SIMD trataban sobre todo con n�meros de coma
flotante. 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. Algunos ejemplos modernos notables son el SSE de Intel y el
AltiVec relacionado con el PowerPC (tambi�n conocido como VMX).nota 13?
Desempe�o
V�ase tambi�n: Benchmark (inform�tica)

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.10? 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%, 12? debido a la implementaci�n de algoritmos
imperfectos de software.13? 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.14?
V�ase tambi�n

Accelerated processing unit


Modos de direccionamiento
Complex instruction set computing (CISC)
Bus (inform�tica)
Ingenier�a en computaci�n
Voltaje del n�cleo de la CPU

Z�calo de CPU
Refrigeraci�n l�quida (inform�tica)
Procesador digital de se�al
HyperThreading
Microprocesador
Procesador multin�cleo
Anillo de seguridad
Reduced instruction set computing (RISC)

Notas

Integrated circuits are now used to implement all CPUs, except for a few machines
designed to withstand large electromagnetic pulses, say from a nuclear weapon.
The so-called 'von Neumann' memo expounded the idea of stored programs, stored say,
on punch cards, paper tape, or magnetic tape
Since the program counter counts memory addresses and not instructions, it is
incremented by the number of memory units that the instruction word contains. In
the case of simple fixed-length instruction word ISAs, this is always the same
number. For example, a fixed-length 32-bit instruction word ISA that uses 8-bit
memory words would always increment the PC by 4 (except in the case of jumps). ISAs
that use variable length instruction words increment the PC by the number of memory
words corresponding to the last instruction's length.
Because the instruction set architecture of a CPU is fundamental to its interface
and usage, it is often used as a classification of the "type" of CPU. For example,
a "PowerPC CPU" uses some variant of the PowerPC ISA. A system can execute a
different ISA by running an emulator.
Some early computers like the Harvard Mark I did not support any kind of "jump"
instruction, effectively limiting the complexity of the programs they could run. It
is largely for this reason that these computers are often not considered to contain
a CPU proper, despite their close similarity as stored program computers.
This description is, in fact, a simplified view even of the Classic RISC pipeline.
It largely ignores the important role of CPU cache, and therefore the access stage
of the pipeline. See the respective articles for more details.
The physical concept of voltage is an analog one by its nature, practically having
an infinite range of possible values. For the purpose of physical representation of
binary numbers, set ranges of voltages are defined as one or zero. These ranges are
usually influenced by the operational parameters of the switching elements used to
create the CPU, such as a transistor's threshold level.
While a CPU's integer size sets a limit on integer ranges, this can (and often is)
overcome using a combination of software and hardware techniques. By using
additional memory, software can represent integers many magnitudes larger than the
CPU can. Sometimes the CPU's ISA will even facilitate operations on integers larger
that it can natively represent by providing instructions to make large integer
arithmetic relatively quick. While this method of dealing with large integers is
somewhat slower than utilizing a CPU with higher integer size, it is a reasonable
trade-off in cases where natively supporting the full integer range needed would be
cost-prohibitive. See Arbitrary-precision arithmetic for more details on purely
software-supported arbitrary-sized integers.
In fact, all synchronous CPU use a combination of sequential logic and
combinatorial logic. (See boolean logic)
Neither ILP nor TLP is inherently superior over the other; they are simply
different means by which to increase CPU parallelism. As such, they both have
advantages and disadvantages, which are often determined by the type of software
that the processor is intended to run. High-TLP CPUs are often used in applications
that lend themselves well to being split up into numerous smaller applications, so-
called "embarrassingly parallel problems". Frequently, a computational problem that
can be solved quickly with high TLP design strategies like SMP take significantly
more time on high ILP devices like superscalar CPUs, and vice versa.
Best-case scenario (or peak) IPC rates in very superscalar architectures are
difficult to maintain since it is impossible to keep the instruction pipeline
filled all the time. Therefore, in highly superscalar CPU, average sustained IPC is
often discussed rather than peak IPC.
Earlier the term scalar was used to compare most the IPC (instructions per cycle)
count afforded by various ILP methods. Here the term is used in the strictly
mathematical sense to contrast with vectors. See scalar (mathematics) and vector
(spatial).

Although SSE/SSE2/SSE3 have superseded MMX in Intel's general purpose CPU,


later IA-32 designs still support MMX. This is usually accomplished by providing
most of the MMX functionality with the same hardware that supports the much more
expansive SSE instruction sets.

Referencias

Weik, Martin H. (1961). A Third Survey of Domestic Electronic Digital Computing


Systems (en ingl�s). Ballistic Research Laboratories.
First Draft of a Report on the EDVAC (en ingl�s). Moore School of Electrical
Engineering, Universidad de Pennsylvania. 1945. Archivado desde el original el 23
de abril de 2004.
Enticknap, Nicholas (Verano de 1998), �Computing's Golden Jubilee� [Jubileo de Oro
de la computaci�n], Resurrection (en ingl�s) (The Computer Conservation Society)
20, ISSN 0958-7403, consultado el 19 de abril de 2008
Amdahl, G. M., Blaauw, G. A., & Brooks, F. P. Jr. (1964). Architecture of the IBM
System/360 (en ingl�s). IBM Research. Archivado desde el original el 5 de febrero
de 2007.
Digital Equipment Corporation (noviembre de 1975). �LSI-11 Module Descriptions�.
LSI-11, PDP-11/03 user's manual (en ingl�s) (2da edici�n). Maynard, Massachusetts:
Digital Equipment Corporation. pp. 4-3. Archivado desde el original el 24 de mayo
de 2006.
Excerpts from A Conversation with Gordon Moore: Moore's Law (PDF) (en ingl�s).
Intel. 2005. Archivado desde el original el 29 de octubre de 2012. Consultado el 25
de julio de 2012.
Brown, Jeffery (2005). �Application-customized CPU design� (en ingl�s). IBM
developerWorks. Consultado el 17 de diciembre de 2005.
Garside, J. D., Furber, S. B., & Chung, S-H (1999). AMULET3 Revealed (en ingl�s).
University of Manchester Computer Science Department. Archivado desde el original
el 10 de diciembre de 2005.
Huynh, Jack (2003). �The AMD Athlon XP Processor with 512KB L2 Cache� (en ingl�s).
University of Illinois � Urbana-Champaign. pp. 6-11. Archivado desde el original el
28 de noviembre de 2007. Consultado el 6 de octubre de 2007.
�CPU Frequency�. CPU World Glossary (en ingl�s). CPU World. 25 de marzo de 2008.
Consultado el 1 de enero de 2010.
�What is (a) multi-core processor?�. Data Center Definitions (en ingl�s).
SearchDataCenter.com. 27 de marzo de 2007. Consultado el 1 de enero de 2010.
�Gu�a para configurar y montar un PC Gaming por piezas�. Consultado el 9 de mayo de
2018.
�Quad Core Vs. Dual Core�. http://www.buzzle.com/. Consultado el 26 de noviembre de
2014.

Thomas Willhalm; Roman Dementiev; Patrick Fay (18 de diciembre de 2014). �Intel
Performance Counter Monitor A better way to measure CPU utilization� (en ingl�s).
Consultado el 17 de febrero de 2015.

Bibliograf�a

Amdahl, G. M., Blaauw, G. A., & Brooks, F. P. Jr. (1964). Architecture of the
IBM System/360. IBM Research.
Brown, Jeffery (2005). �Application-customized CPU design�. IBM developerWorks.
Consultado el 17 de diciembre de 2005.
Digital Equipment Corporation (noviembre de 1975). �LSI-11 Module
Descriptions�. LSI-11, PDP-11/03 user's manual (2da edici�n edici�n). Maynard,
Massachusetts: Digital Equipment Corporation. pp. 4-3.
Garside, J. D., Furber, S. B., & Chung, S-H (1999). AMULET3 Revealed.
University of Manchester Computer Science Department.
Hennessy, John A.; Goldberg, David (1996). Computer Architecture: A
Quantitative Approach. Morgan Kaufmann Publishers. ISBN 1-55860-329-8.
MIPS Technologies, Inc. (2005). MIPS32� Architecture For Programmers Volume II:
The MIPS32� Instruction Set. MIPS Technologies, Inc. Archivado desde el original el
18 de marzo de 2006.
Smotherman, Mark (2005). �History of Multithreading�. Consultado el 19 de
diciembre de 2005.
von Neumann, John (1945). First Draft of a Report on the EDVAC. Moore School of
Electrical Engineering, University of Pennsylvania. Archivado desde el original el
23 de abril de 2004.
Weik, Martin H. (1961). A Third Survey of Domestic Electronic Digital Computing
Systems. Ballistic Research Laboratories.

Enlaces externos

Wikimedia Commons alberga una categor�a multimedia sobre Unidad central de


procesamiento.

Dise�os de microprocesador

Wikiversidad alberga proyectos de aprendizaje sobre Unidad central de


procesamiento. (en ingl�s)
Como trabajan los microprocesadores en HowStuffWorks. (en ingl�s)
25 Microchips que sacudieron al mundo � un art�culo del Instituto de Ingenier�a
El�ctrica y Electr�nica. (en ingl�s)
Advanced Micro Devices - Advanced Micro Devices, un dise�ador de principalmente
CPU de la computadora personal compatible con x86. (en ingl�s)
ARM Ltd - ARM Ltd, uno de los pocos dise�adores de CPU que se benefician
�nicamente por licenciar sus dise�os en lugar de fabricarlos. Los microprocesadores
de arquitectura ARM se encuentran entre los m�s populares en el mundo para
aplicaciones embebidas. (en ingl�s)
Freescale Semiconductor (antes de Motorola) - Freescale Semiconductor,
dise�ador de varios procesadores embebidos basados en PowerPC y SoC. (en ingl�s)
IBM Microelectronics - Divisi�n de Microelectr�nica de IBM, que es responsable
de mucho en dise�os basados en POWER y PowerPC, incluyendo muchas de las CPU
utilizada en las �ltimas consolas de videojuegos de 2012. (en ingl�s)
Intel Corp - un fabricante de varias l�neas de CPU notables, incluyendo IA-32,
IA-64, y XScale. Tambi�n es un fabricante de chips de diferentes perif�ricos para
su uso con su CPU. (en ingl�s)
MIPS Technologies - MIPS Technologies, desarrolladores de la arquitectura MIPS,
pionero en dise�os RISC. (en ingl�s)
Sun Microsystems - Sun Microsystems, desarrolladores de la arquitectura SPARC,
un dise�o RISC. (en ingl�s)
Texas Instruments - Texas Instruments divisi�n semiconductores. Dise�a y
fabrica varios tipos de microcontroladores de bajo consumo entre sus muchos otros
productos semiconductores. (en ingl�s)
Transmeta - Transmeta Corporation. Creadores de x86 de baja potencia
compatibles, como Crusoe y Efficeon. (en ingl�s)

Lectura adicional

Dise�o del procesador: Una introducci�n - Introducci�n detallada al dise�o de


microprocesadores. (en ingl�s)
C�mo trabajan los microprocesadores. (en ingl�s)
Pipelining: An Overview - Buena introducci�n y visi�n general acerca de las
t�cnicas de tuber�as de CPU por el personal de Ars Technica. (en ingl�s)
SIMD Architectures - Introducci�n y explicaci�n de SIMD, sobre todo c�mo se
relaciona con las computadoras personales. Tambi�n por Ars Technica. (en ingl�s)
Listado de procesadores - Nombres de CPUs y principales caracter�sticas. (en
ingl�s)
Esta obra contiene una traducci�n total derivada de Central processing unit de
Wikipedia en ingl�s, concretamente de esta versi�n, publicada por sus editores bajo
la Licencia de documentaci�n libre de GNU y la Licencia Creative Commons
Atribuci�n-CompartirIgual 3.0 Unported.

También podría gustarte