Documentos de Académico
Documentos de Profesional
Documentos de Cultura
wryhgorjnnknviewgrnhg
grjeoigvifaqerhgv
rghferbfivgebrigv
rgiherfjvgerhoigvifdkgv
klafggbjebrghifverrfvgreguhbfvgrewoih
r
gvb
af
h
b
rh
hiuhghwaeirhgwr
rfkregjowlrhasmndfknkfdnsaknsdflknds
dsnfksnfbkdnsgfknbdlamsbfd
}asndkfnkngmalsdjjbg
asdfkdasgbasbdkngfasdb fgmadslfg
adsknladnadpkgfeopsjf
fdadsgfpsdjfgpepñfgv
dnldasmngpsdpñkdgfs
dsgfapsmgñsdm
dgfmjdñfgfdg
adfgoplmjgdfs
dnfikgnikgikvndfg
dfgjosaejofgeqsjng
gvdgfvpojgpd
dfndkjbgjkbndsgf
+dfknjgndfkn,afmnlknbohjnd
ansdknfklndsfg ñlsndifn jdnsf
jdfdnslfmdjnsnmfdknafl
gwlreglnjtrlgw
rgnnrkngg
gorngojreogjre
gkiownergohtr
nikrhfigheog
ihrgihewqihnrgore
ihqeirkhgihreg
+herihgkegfnihnfdegv
dbfibdfihfg
gfviigfvhnokg
b
trjftgj
tjh
<rtf
hj<erjhntjk<fdngfhjykj
fg
hj
h
gj
hj
tszj
g
j
f
bd fgh
gh
g
j
gfmj
g
fkjz
fjzcc,.
,
.
.
,
thswtryh
g5
e65
6
54
6ty
546
45
6t
yt
g45
6
643t..
65
56
6
5
5
6
5
5
5
64
yt
mnnbg
thbtgkhbnekltmghnbtegh
nbtgyjn
hb
tghjnb
tg}jhnb
tgnj
g
nj
y
jn
yhjku
yhhh
yjh
y
yt
jh
556y6,,k
uj
ukj
j
h
jm
f
j
fd
yj
y
jh
k
f
yj
f
y
666
7yh
j
yg
h
n
hg,.,mvfgnmgkjdfrufd
.,.vmnjf,.fgn56474
mnb6yd6dgudfgjkhdgfjhbvsg.-vg,cvfbjbdfwsjngufyvbjef
mngnvb,v.mrfurnd,xmdcnhng,.fmgg
ghmfknh
bmbfgnhnf
,bjtghngkgkgjgmmbmb,gkhj
,c,c.v,vb
vb,gm
gbmvbmd,dkedbhfnfkfbdme,wodenfnv
,m,mkh,bnvk
b,b,bjgng,v
,n,nmh
cmg
hstyyhtyrh
rt
hy
reyhg
rgghmszdmg,bmfgjamrgn
,n.bngvbmnfmbnr,g
rt46
46
6
57
m,.j
l
78i
768
m,
8
e
5
76
5
7
786
6
ui
6
ui
8
8
89
8
m
,87
8,
7,
,
8,
8
7
m
chj
mdc
kdj
ytik
e
8i
dyi
k
u
ui
6iu
k
k,.,
fuk
7yik
y7ui
7e6
65
sfhbshdgagagsg
serhUndgjndgjidad central de procesamiento
Ir a j
jnn dg
sjs
dtfj
sj
kjstmuj
dysedr
kl
jdetuyudiltye
i
stysy
kdujts
iuj
jmnt
skiuj
sety
ik
kkdyiyy
yed
yt
j5
7
j,
d,,ujjgsn
j
6
srgh
6
77
7fgh
7hg6
76h
7
7
6th
7h
w
767
hw
6
7h
77 hw
7ht
hw
7t
htw
sh
nst
trh
s
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 dentro del almacenamiento el 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, 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.
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).
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 al 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.
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.
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.10Muchos 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.
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, archivado desde el original el 9 de enero de 2012, 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/. Archivado desde el original el
25 de julio de 2015. 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 (enlace roto disponible en Internet Archive; véase el historial y
la última versión). - 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 la
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.
Control de autoridades
Proyectos WikimediaWd Datos: Q5300Commonscat Multimedia: Microprocessors
Diccionarios y enciclopediasBritannica: url
[1] - cyber security software, software developer . (en inglés)
Categoría: Unidad central de procesamiento
Menú de navegación
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
ArtículoDiscusión
LeerEditarVer historialBuscar
Buscar en Wikipedia
Portada
Portal de la comunidad
Actualidad
Cambios recientes
Páginas nuevas
Página aleatoria
Ayuda
Donaciones
Notificar un error
Herramientas
Lo que enlaza aquí
Cambios en enlazadas
Subir archivo
Páginas especiales
Enlace permanente
Información de la página
Citar esta página
Elemento de Wikidata
Imprimir/exportar
Crear un libro
Descargar como PDF
Versión para imprimir
En otros proyectos
Wikimedia Commons
En otros idiomas
العربية
English
हिन्दी
Bahasa Indonesia
Bahasa Melayu
Русский
Татарча/tatarça
اردو
中文
102 más
Editar enlaces
Esta página se editó por última vez el 2 nov 2020 a las 22:15.
El texto está disponible bajo la Licencia Creative Commons Atribución Compartir
Igual 3.0; pueden aplicarse cláusulas adicionales. Al usar este sitio, usted acepta
nuestros términos de uso y nuestra política de privacidad.
Wikipedia® es una marca registrada de la Fundación Wikimedia, Inc., una
organización sin ánimo de lucro.