Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Ir a la navegaci�nIr a la b�squeda
Para otros usos de este t�rmino, v�ase Procesador.
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.
�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
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.
Microprocesadores
Art�culo principal: Microprocesador
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.
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).
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
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.
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?
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.