Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
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.
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.
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 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.
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
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.
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).
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.
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
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.
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).
Referencias
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
Dise�os de microprocesador
Lectura adicional