Sie sind auf Seite 1von 16

ARQUITECTURA E INGENIERA DE

COMPUTADORES




TEMA 1: DISEO DE PROCESADORES








DAVID RODRGUEZ HERNNDEZ
FECHA DE REVISIN: 17 Octubre - 2007
ZAMORA (CURSO 2007/2008)
david.rgh@gmail.com
Nota importante:

Este documento no pretende reemplazar al material propuesto por la UNED para la
asignatura Arquitectura e Ingeniera de Computadores.
Su finalidad es presentar de una forma esquematizada los contenidos de la asignatura,
para facilitar el estudio de la misma. Es conveniente disponer de la bibliografa
propuesta por la Universidad para su estudio completo.
Cualquier sugerencia, comentario o correccin sobre este documento, envelo a
david.rgh@gmail.com para poder realizar los cambios necesarios.

David Rguez. Hdez.
Alumno de 2 ciclo Ingeniera Informtica (UNED)
MICROPROCESADOR:
Un microprocesador es un Procesador de juego de instrucciones (ISP), que ejecuta
dichos juegos que definen su funcionalidad. Todos los programas software deben estar
codificados en ese juego.
El juego predeterminado se denomina tambin Arquitectura de juego de instrucciones
(ISA).

Evolucin del microprocesador:
70s 80s 90s 2000 2010
N Transistores 2K 100K 100K 1M 1M 100M 100M 2B
Frecuencia del
reloj
0.1 3 MHz 3 30 MHz 30 MHz 1GHz 1 15 GHz
Instrucciones
por ciclo
0.1 0.1 0.9 0.9 1.9 1.9 2.9

1971: Aparece el microprocesador de 4 bits.
En los 70s se ampla a 8 bits y se utiliza en diversos dispositivos (lavadoras, ascensores,
motores a reaccin). Aparece el Ordenador Personal (PC).
En los 80s aumenta a 32 bits y se convierten en estndar la segmentacin de
instrucciones y el uso de la memoria cach. Se construyen estaciones de trabajo
cientficas y de ingeniera.
En los 90s, el uso de los microprocesadores se vuelve ms habitual y eficaz. Se hacen
populares las mquinas supersegmentadas, capaces de ejecutar instrucciones fuera
de orden y mtodos predictivos, para reducir o evitar paradas de segmentacin.
En la dcada actual, se centra en ampliar el paralelismo a nivel de instruccin (IPL) a
los niveles de hebras (TLP) y de memoria (MLP).
Los microprocesadores evolucionan de acuerdo a la Ley de Moore (1965), que indica
que el nmero de dispositivos que se pueden integrar en una pieza de silicona se
duplicaran cada 18-24 meses.

DISEO DE SISTEMAS DIGITALES:
Existen dos fases:
Especificacin: Indica QU debe hacer el sistema. En sistemas digitales es una
fase rigurosa y se representa mediante funciones booleanas. En sistemas
secuenciales se representa mediante descripciones de mquinas de estado. En
microprocesadores corresponde a la ISA.
Implementacin: Indica CMO debe construirse el sistema. En sistemas
digitales son circuitos AND-OR (puertas lgicas) y su optimizacin se centra en
reducir el nmero de puertas lgicas y de niveles del circuito. En sistemas
secuenciales su optimizacin se centra en reducir el nmero de estados y en
simplificar el circuito. En microprocesadores se trata del diseo de hardware
actual, mediante un lenguaje HDL, cuyas primitivas van desde elementos
sencillos como puertas lgicas, hasta ms complejos como mdulos completos.
Este diseo es una organizacin interconectada o esquemtica de primitivas y
se compone de dos pasos:
o Diseo de la microarquitectura: Se trata de desarrollar y definir tcnicas
fundamentales para lograr la especificacin. Se realiza una descripcin
de alto nivel de la organizacin del microprocesador mediante un
lenguaje RTL.
o Diseo de la lgica: La descripcin en RTL se va refinando aadiendo
progresivamente detalles de implementacin. El resultado es la
descripcin en HDL. Tanto el RTL como el HDL pueden utilizar el mismo
lenguaje (ejemplo: Verilog).

MODELO CLSICO DE NIVELES:
En el modelo clsico existen 3 niveles en el diseo del microprocesador:
Arquitectura: Define el comportamiento funcional de un procesador.
Especifica el juego de instrucciones (todo debe estar programado en dicho
juego). Ejemplos: IBM 360, DEC VAX, Motorola 68K, Power PC, Intel IA32. Sus
atributos son el lenguaje ensamblador, el formato de instruccin, los modos de
direccionamiento y el modelo de programacin. Estos atributos forman parte
del ISA.
Implementacin: Es la organizacin o estructura lgica para cumplir con la
arquitectura. Tambin se denomina microarquitectura. Puede haber varias
implementaciones para una sola arquitectura. Ejemplos: IBM 360/91, VAX
11/780, Motorola 68040, Power PC 604, Intel P6. Sus atributos son el diseo de
segmentacin, la cach y los predictores de saltos. Se implementa en el
hardware y se oculta al software.
Realizacin: Es la implementacin en su modelo fsico. Suele ser un chip o un
paquete de chips. Para una sola implementacin puede haber varias
realizaciones, que difieren en aspectos tales como la frecuencia del reloj, la
capacidad de la cach, la interfaz del bus, la tecnologa de fabricacin, el
empaquetamiento Sus atributos son el tamao, el factor de forma fsica, la
energa, la ventilacin y la fiabilidad.


ARQUITECTURA DEL JUEGO DE INSTRUCCIONES (ISA):
El ISA es crucial en el microprocesador. Es el contacto entre el hardware (mquina) y el
software (programas), los cules son independientes entre s (se relacionan a travs del
ISA).
Un programa para una ISA sirve para todas las mquinas preparadas para ese ISA (es
vlido para todas sus implementaciones).
Tambin se utiliza como la especificacin para los diseadores de microprocesadores.
El diseo de un microprocesador comienza con la ISA y genera implementaciones.
Cada una de estas implementaciones debe validarse con la ISA para asegurar que
cumplan los requisitos.
La ISA especifica de forma unvoca un lenguaje ensamblador (cada instruccin de
dicho lenguaje consta de una operacin y uno o ms operandos).
Hay 3 formas de manejo de los operandos en los microprocesadores:
Acumulador: Lo utilizan algunos de los primeros ISA. Se utiliza tanto de fuente
implcita como de destino de la operacin.
LIFO: Lo utilizan otros de los primeros ISA. Es una pila (Last In, First Out) que
almacena los operandos. Las entradas y salidas se realizan por su parte
superior.
Registros: Los ms modernos utilizan un archivo de registro de varias entradas
para almacenar los operandos. Las operaciones aritmtico-lgicas de realizan
sobre dichos registros. Existen instrucciones especiales que permiten el
movimiento de datos entre los registros y la memoria principal (algunos ISA
tradicionales permiten incluso usar como fuente tanto los registros como la
memoria).

Los ISA evolucionan de una forma lenta, ya que realizar cambios significativos
significara recompilar todos los programas que usan dicho ISA, lo cual es costoso.
Puede durar ms de 10 aos hasta realizarse cambios. En cambio, las
implementaciones cambian ms frecuentemente, cada 3 o 5 aos.

INTERFAZ ESTTICA Y DINMICA:
La ISA tiene una tercera tarea adems de las mencionadas anteriormente. Tiene
asociada una definicin de interfaz que divide las tareas en compilacin (esttica) de
las tareas en ejecucin (dinmica). Se le denomina Dynamic-Static Interface (DSI) y es
una consecuencia directa del hecho de ser la ISA un contacto entre hardware y
software.
En otras palabras, independiza el desarrollo del software del desarrollo de la
microarquitectura (implementacin).
Puede haber varios niveles abstractos en el que situar el DSI. Por ejemplo, el CISC
propone colocarlo muy elevado, dejando la mayor parte a cargo de la
implementacin, mientras que el RISC propone todo lo contrario. Lo ptimo sera la
mejor combinacin de complejidades del compilador y del hardware.
Debido a la constante evolucin, es complicado establecer un nivel ideal, que puede
variar. Se debe mantener una separacin estricta para evitar problemas (por ejemplo,
si parte de la implementacin pasa a ser parte de la ISA, el resto debe mantener la
compatibilidad).
En teora, la ISA debe ser slo lo necesario para expresar la funcionalidad o semntica
del algoritmo del software, y la implementacin las caractersticas para mejorar el
rendimiento.
RENDIMIENTO DEL PROCESADOR:
El rendimiento es el objetivo de diseo principal del microprocesador.

Ecuacin del rendimiento (Ley de Hierro):
ciclo
tiempo
x
n instrucci
ciclos
x
programa
nes instruccio
programa
tiempo
iento ren
= =
dim
1

Tiempo/programa es el tiempo de ejecucin necesario para un programa.
Instrucciones/programa es el nmero de instrucciones para un programa.
Ciclos/instruccin es el promedio de ciclos de mquina por instruccin (CPI).
Tiempo/ciclo es el tiempo necesario para ejecutar un ciclo de mquina.

Optimizacin del rendimiento:
Para mejorar el rendimiento, hay que tratar de reducir el n de instrucciones, el CPI o el
tiempo de ciclo, pero no es tan sencillo como parece, pues la reduccin en uno
puede suponer un aumento en otros.
Reducir n de instrucciones:
o Aumentar complejidad de instrucciones (ej: RISC tiene el doble de
instrucciones que CISC, pero ste ltimo tiene instrucciones ms
complejas, lo que puede incrementar el tiempo de ciclo. Si para evitarlo
se usa una mayor segmentacin, puede aumentar el CPI).
o Deshacer bucles, lo que aumenta el cdigo esttico y puede afectar a
la tasa de aciertos de la cach de instrucciones (mayor CPI).
o Eliminar clculos redundantes mediante buffers. Aumenta la
complejidad del hardware, lo que se traduce en un mayor CPI y tiempo
de ciclo.
Reducir CPI:
o RISC -> Reducir complejidad de instrucciones para disminuir el CPI. Esto
implica un aumento del nmero de instrucciones.
o Segmentacin de instrucciones. Si son pocos segmentos se reduce el
CPI, pero aumenta el tiempo de ciclo.
o Uso de cach.
o Prediccin de saltos para bifurcaciones condicionales, que pueden
aumentar el tiempo de ciclo debido a la complejidad.
o Procesadores superescalares. Permiten ejecutar varias instrucciones en
una etapa de segmentacin. Disminuye el CPI pero puede aumentar el
tiempo de ciclo por la complejidad. Si la segmentacin es muy
profunda, puede aumentar el CPI en vez de disminuirlo.
Reducir tiempo de ciclo:
o La principal tcnica es la segmentacin, que divide el procesamiento
de instruccin en varias etapas. Si la segmentacin es profunda, se
reduce la latencia (demora de propagacin de la seal), lo que se
traduce en un menor tiempo de ciclo. La tcnica ms utilizada es una
segmentacin agresiva que permite aumentar la frecuencia de reloj,
pero a costa de aumentar el CPI por los siguientes motivos:
Al aumentar el nmero de etapas de segmentacin, aumenta el
n de ciclos que se producen cuando no se predicen los saltos
(aumenta CPI).
Si una primitiva de la ALU (unidad aritmtica-lgica) requiere
varios ciclos, aumenta la latencia entre dos instrucciones
dependientes.
Aumenta la latencia de memoria (n de ciclos de reloj), por lo
que tambin aumenta la latencia media en operaciones de
memoria y el CPI global. Se produce una sobre carga de
hardware y de latencia en la segmentacin.
o No se tiene bien claro an hasta dnde se puede forzar la
segmentacin sin que las penalizaciones sean de consideracin.

Como se puede ver, aumentar el rendimiento NO es una tarea tan sencilla como
pudiera parecer. Requiere un equilibrio que suele implicar obstculos y problemas.


Evaluacin del rendimiento:
No suelen hacerse prototipos de hardware, pues es inviable; sino que se usan
simuladores. Pueden ser de dos tipos:
Funcionales: se modelan mquinas a nivel de arquitectura (ISA). Se usan para
comprobar la correcta ejecucin de un programa.
De rendimiento: se modela la microarquitectura de un diseo. Comprueba el
nmero de ciclos de mquina necesarios para la ejecucin de un programa.
Dentro de estos, hay 2 subtipos:
Orientado a trazas: Se generan trazas que capturan la secuencia
dinmica de las instrucciones ejecutadas, y las procesan para medir el
nmero de ciclos. stas se pueden generar por:
1. Instrumentalizacin de software: Introduce antes de la ejecucin
instrucciones especiales para la generacin de trazas. Esto
puede incrementar mucho el tamao del cdigo.
2. Instrumentalizacin de hardware: Realiza pruebas especiales de
hardware para supervisar el bus del sistema y registrar la traza de
ejecucin actual cuando se ejecuta un programa. Exige
supervisar el hardware, por lo que est restringido por la
capacidad de almacenamiento del buffer de dicho hardware.
3. Simulador funcional: Simula la ejecucin de un programa.
Incrusta enlaces en el simulador para registrar la traza de
ejecucin dinmica.
Las trazas se pueden almacenar para su uso repetido por los
simuladores.
Orientado a la ejecucin: Reduce algunas de las limitaciones del
orientado a trazas. Usa un simulador funcional para crear una interfaz
que ejecuta las instrucciones y la informacin de dicha ejecucin la
pasa al otro simulador (el orientado a la ejecucin). ste hace un
seguimiento del tiempo y su movimiento por las etapas de
segmentacin. Permite pasar al simulador funcional directivas de
control para, por ejemplo, los predictores de saltos. Permite simular los
errores (los anteriores tienen trazas reales, pero no especulativas, por lo
que no pueden simular los errores). Tambin evita tener que almacenar
trazas largas.
Actualmente se utilizan simuladores de rendimiento orientados a la ejecucin.

La microarquitectura en el simulador puede variar mucho en cuanto a la cantidad y a
los detalles de recursos (puede ir desde simples contadores de ciclos hasta diseos
explcitos de la organizacin de la mquina.
La comprobacin de la precisin del simulador es una tarea complicada. Se disea al
principio para los ajustes iniciales de la microarquitectura. As pues, no hay referencias
para validar el modelo de rendimiento. Segn se avanza en el RLT, se puede usar
como referencia, pero su simulacin es lenta.
Es importante realizar la validacin del modelo de rendimiento cuando ya est
integrado en silicio para que pueda servir como referencia para futuras generaciones.
Los simuladores, en general, son complejos y pueden tener errores difciles de corregir.
Otro problema que nos encontramos es el tiempo necesario para la simulacin. Por
ejemplo, simular un solo ciclo puede implicar entre 10000 y 100000 ciclos en el
simulador. Simular un conjunto de ejecuciones puede llevar varios das.

PROCESAMIENTO PARALELO A NIVEL DE INSTRUCCIN (ILP):
El ILP (o PNI en sus siglas en espaol) es el procesamiento concurrente de varias
instrucciones, al contrario que el procesamiento secuencial, que solo puede ejecutar
una cada vez.
La segmentacin de instrucciones permite realizar en cierta medida dicho PNI,
solapando los segmentos.
Ej:
CISC (secuencial): CPI = 10
RISC (segmentado): Esa segmentacin reduce el CPI (casi hasta 1).

Procesador escalar: Solo permite ejecutar una instruccin a la vez. El IPC (instrucciones
por ciclo) puede ser de 1 como mximo.
Procesador superescalar: Permite ejecutar varias instrucciones simultneamente, con
lo que el IPC puede subir por encima del 1.

Rendimiento del procesador:
Se puede reescribir la Ley de Hierro para introducir otros parmetros:
( )
nes instruccio N
reloj frecuencia IPC
ciclo T ciclo
nes instruccio
nes instruccio n
R

_
.
1

1
= =
Para aumentar el rendimiento, habra que aumentar el IPC o la frecuencia del reloj.
En procesadores escalares se utilizaba como medida el CPI, pero en los
superescalares, la medida de importancia es el IPC, del que se intenta que sea mayor
que 1.
Las tcnicas de microarquitectura de esta materia se centran en mejorar el IPC. Para
ello, se podra ampliar la segmentacin, de forma que se permitan solapar y obtener
ms instrucciones por ciclo. Sin embargo, incrementa la complejidad de hardware y la
latencia (demora de propagacin de seal entre las etapas de segmentacin).

RENDIMIENTO DEL PROCESAOR PARALELO:
En las computadoras tradicionales, los procesadores paralelos pueden realizar clculos
escalares y vectoriales.
Escalar: Es ejecutado solamente por un procesador.
Vectorial: El clculo es realizado por varios procesadores en conjunto.

Ley de Amdahl: La mejora obtenida en el rendimiento de un sistema debido a la
alteracin de uno de sus componentes est limitada por la fraccin de tiempo que se
utiliza dicho componente.
( )

=
+
=
+
=
N
h
N
Nh N h
N
h N h
E
1
1 1
1

E = Eficacia del cambio.
N = Nmero de procesadores
h = Fraccin de tiempo para clculos escalares.
1-h = Fraccin de tiempo para clculos vectoriales.
Si N aumenta, E se va acercando a (1-h). Es decir, se reduce el tiempo dedicado a
clculos vectoriales (al haber ms procesadores trabajando conjuntamente, el tiempo
se reduce). Por cada procesador aadido, la reduccin es cada vez menor; y llega un
momento en que no es lo suficientemente efectivo.
Otra forma de representar esta ley es la siguiente:
( )

+
= =
N
f
f
T
S
1
1 1

S = Aceleracin relativa.
T = Tiempo total necesario para la ejecucin del programa.
f = Fraccin del programa que se puede paralelizar.
1-f = Fraccin del programa que no se puede paralelizar (secuencial).
f/N = Tiempo necesario para ejecutar la parte pararelizable.
Si N aumenta, el tiempo necesario para ejecutar la parte paralelizable tiende a 0, por
lo que el tiempo total tiende al tiempo necesario para la parte secuencial; lo que se
conoce como Cuello de Botella Secuencial. Por tanto, el tiempo necesario para la
parte secuencial es una limitacin.
Por tanto, la eficacia de los procesadores paralelos disminuye a medida que aumenta
el nmero de procesadores. La mejora del rendimiento global est ligada a la
capacidad de vectorizacin; es decir, la aceleracin global est vinculada por la
parte secuencial cuando aumenta el paralelismo.

RENDIMIENTO DEL PROCESADOR SEGMENTADO:
Harold Stones indic que sera posible realizar un modelo similar al de rendimiento para
procesadores paralelos, pero adaptado para procesadores segmentados.
Aqu, el parmetro N sera la profundidad de segmentacin (nmero de etapas de la
segmentacin) y el modelo tendra tres fases de ejecucin:
1. Rellenado de la segmentacin: Se produce mientras entra la primera
sentencia de N instrucciones.
2. Segmentacin completa: Es el estado estable de la ejecucin (suponiendo
que no hay interrupciones). Hay N instrucciones en ejecucin.
3. Descarga de la segmentacin: No se introducen instrucciones nuevas, por lo
que van finalizando y descargando las instrucciones en curso.
Para crear un modelo se modifica la entrada escalonada por una ms abrupta, de
forma que en el rellenado hay 1 instruccin y en la completa estn todas (el trabajo es
el mismo). Denominaremos g a la fraccin con solapacin y 1-g a la fraccin sin
solapacin.
En la realidad existen detenciones de la segmentacin. Cada ciclo de detencin
supone una etapa de descarga y una nueva etapa de rellenado. Al igual que en los
modelos anteriores, tambin ste se puede adaptar y convertir la fase escalonada en
una abrupta.
As pues, redefinimos la Ley de Amdahl para obtener un modelo de rendimiento
sencillo para procesadores segmentados:
( )

+
=
N
g
g
S
1
1
, siendo S el rendimiento, N el nmero de etapas de segmentacin,
g el tiempo de segmentacin durante la fase completa y (1-g) el tiempo de
segmentacin durante la fase de rellenado.
A medida que g disminuye ligeramente de 1 (100%), el rendimiento puede disminuir
rpidamente; es decir, los ciclos de parada hacen disminuir el rendimiento de una
forma drstica. Cuanto mayor sea N, ms ciclos de parada habr.
Las paradas tienen el mismo efecto que los cuellos de botella de los secuenciales,
pero en los procesadores segmentados.
Se supone que cuando se produce una detencin, slo hay una instruccin en la
segmentacin, o se convierte en procesador secuencial no segmentado (es decir, no
hay solapacin).
Podemos hacer una generalizacin de la anterior frmula as:
N
g g g
S
n
+ + +
=
...
2 1
1
2 1
siendo cada una de las g la fraccin de tiempo cuando hay el
nmero de instrucciones que marca el subndice (i) en segmentacin, siendo la ltima
la fraccin de tiempo en segmentacin completa.
Este modelo se ilustra aplicndolo a la segmentacin de TYP (tema 2) de 6 etapas.

LA PROPUESTA SUPERESCALAR:
La Ley de Amdahl vista anteriormente nos indica que existe un excesivo predominio de
la fraccin del programa no vectorizable (escalar) en el rendimiento global. Su
secuencialidad resulta pesimista e innecesaria, y si se lograse conseguir algo de
paralelismo, el efecto del cuello de botella sera notablemente menor.
En el grfico 1.8 (pgina 23) se muestra la diferencia para N=6, entre dejar la parte no
vectorizable de forma secuencia, y conseguir un grado de paralelismo de 2.
( )
6
1
1
f
f
S
+
=
( )
6 2
1
1
f f
S
+

= Ambos comienzan con S=6 cuando f=1 (es


decir, en un 100%), pero en el segundo caso, S disminuye ms lentamente que en el
primero, segn f va bajando; incluso dicha disminucin es ms lenta que si N=100.
f es una funcin compleja. Implica a los algoritmos de las aplicaciones, el lenguaje de
programacin, el compilador y la arquitectura.
Los programas de propsito general suelen tener un valor de f igual o menor a 0.75
(75%).
La principal motivacin para el desarrollo de procesadores superescalares es alcanzar
un nivel de paralelismo a nivel de instruccin (ILP) para todas las partes del programa
(se reduce el cuello de botella).
El objetivo es lograr un paralelismo a nivel de instruccin generalizado (implica una
aceleracin para todo tipo de programas de aplicacin, incluidos los que no tienen
por qu ser vectorizables).

LMITES DEL PARALELISMO A NIVEL DE INSTRUCCIN:
Tomando el ejemplo de tener un paralelismo de grado 6 para f y un paralelismo de
grado 2 para (f-1), tenemos el siguiente resultado, y teniendo f=0.5 (50%):
( )
3
6
5 . 0
2
5 . 0
1
6 2
1
1
=
+
=
+

=
f f
S
Aplicndolo, se podran ejecutar 3 instrucciones a la vez. Pero qu lmite de ILP
podemos llegar a tener? Distintas investigaciones han lanzado resultados muy diversos
y, hoy en da, no se tiene an muy claro.

CUELLO DE BOTELLA DE FLYNN:
Uno de los primeros informes (Tjaden y Flynn, 1970) lleg a la conclusin de que para la
mayora de programas, el ILP era menor que 2. Este lmite es conocido como el cuello
de botella de Flynn. El estudio se centr en el ILP dentro de los lmites del bloque
bsico. Cruzar ese lmite implica tener fuertes dependencias de control cruzadas (que
pueden depender de los datos) y esos bloques bsicos deben ser secuenciales. Como
los bloques son pequeos, normalmente el grado de paralelismo es menor que 2.
Otros estudios confirmaron estos resultados; entre ellos, los de Riseman y Foster; pero
fueron ampliados. Riseman y Foster buscaron el ILP si se logran evitar algunas
dependencias de control. Si se logran evitar ilimitadas dependencias, el ILP sera
aproximadamente de 51.

OPTIMISMO DE FISHER:
Por el contrario, el estudio de Nicolau y Fisher (1984) aboga por ILP casi ilimitadas en
muchos programas. Las pruebas de este estudio suelen ser numricas. A este supuesto
lmite se le denomina Optimismo de Fisher.
Al principio fue acogido con escepticismo, pero sucesos posteriores justificaron el
estudio (por ejemplo, el desarrollo de modelos de mquinas prototipo: procesador
VLIW (Very Long Instruction Word), que ms tarde se plasmaron en la realidad:
Computador Multiflow TRACE, que usaba esquemas de trazas).
Fueron los primeros uniprocesadores de propsito general con un IPC (instruccin por
ciclo) mayor de 1. En realidad, el ILP resultante es menor que el lmite propuesto por
Fisher, pero demostr que puede ser superior a 2.

FACTORES QUE CONTRIBUYEN:
Existen 3 factores para explicar el amplio abanico de resultados:
1. Pruebas comparativas utilizadas: Cada estudio us sus propias pruebas.
Supone una elevada dependencia. Recientemente se han utilizado las
pruebas del SPEC (Standard Performance Evaluation Corporation). Los
principales fabricantes de procesadores y sistemas ofrecen valoraciones SPEC
para sus sistemas. Sin embargo, su uso an no es uniforme. Existen indicios que
indican que solo son importantes para estaciones de trabajo de aplicaciones
cientficas o de ingeniera y no tanto para otros sistemas.
2. Modelos supuestos: Contribuye a la confusin acerca del lmite de ILP. Se
realizan suposiciones acerca del modelo de mquina. La mayora suponen
modelos de mquina ideales y no tienen en cuenta la cach. Otros suponen
mquinas de tamao infinito con archivos de registro infinitos. Otros suponen
mquinas ms realistas (resultados ms pesimistas). Existe poca uniformidad en
las ASI utilizadas (algunas no son reales mientras que otras s). Tiene una gran
influencia.
3. Tcnicas de compilacin utilizadas: Existen diversas tcnicas. Muchos estudios
no consideran el compilador, mientras que otros los asumen infinitamente
eficaces. Normalmente estos estudios se basan en trazas dinmicas
recopiladas en mquinas reales. Su contribucin an est siendo investigada.
Probablemente, la conclusin ms segura es que el lmite real de ILP es mayor que el
alcanzado en mquinas actuales y necesita una mayor investigacin. Pero cualquier
suposicin resulta prematura.

MQUINAS CON PARALELISMO A NIVEL DE INSTRUCCIN:
El ILP tambin se conoce como paralelismo denso. Las mquinas diseadas para
aprovecharlo se llaman mquinas ILP. Suelen ser uniprocesadores con paralelismo de
recursos de mquina a nivel de la unidad funcional.
Los parmetros para su clasificacin [Jouppi and Wall, 1989] son:
Latencia de Operacin (OL): Ciclos mquina necesarios hasta que el resultado
de una instruccin est disponible para la siguiente.
Paralelismo de mquina (MP): Nmero mximo de instrucciones simultneas
admitidas.
Latencia de emisin (IL): Ciclos mquina necesarios entre la emisin de dos
instrucciones consecutivas (inicio de una instruccin nueva en la
segmentacin).
Paralelismo de emisin (IP): Nmero mximo de instrucciones que se pueden
emitir en cada ciclo mquina.
Segn Jouppi, el procesador escalar segmentado se utiliza como la mquina base. La
clasificacin tambin utiliza como ejemplo una segmentacin genrica en 4 etapas:
1. IF (Instruction Fetch, Lectura de instruccin)
2. DE (Instruction Decode, Decodificacin de instruccin)
3. EX (Execute, Ejecucin)
4. WB (Write Back, Escritura Posterior)
La EX es utilizada como referencia para determinar la OL. El procesador escalar
segmentado se define como una mquina con OL = 1 ciclo e IL = 1 ciclo; es decir,
puede emitir una instruccin cada ciclo (una instruccin tpica dura un ciclo mquina).
El MP es el nmero de etapas de segmentacin (k) e IP es 1 IPC.
Esta es la mquina bsica tomada como referencia para el rendimiento.

MQUINAS SUPERSEGMENTADAS:
Mquina con mayor grado de segmentacin que la mquina bsica. El tiempo de
ciclo mquina es menor que en la bsica y se denomina tiempo de ciclo menor. El
tiempo de ciclo mquina de la supersegmentada equivale a 1/m de la bsica (m
ciclos menos que en el ciclo bsico), siendo m el grado.
OL = 1 ciclo = m ciclos menores IL = 1 ciclo menor Una instruccin sencilla
requiere 1 ciclo bsico (m ciclos menores), pero se puede emitir 1 instruccin por cada
ciclo menor.
Una mquina supersegmentada es una mquina segmentada con un grado mayor al
indicado por OL de instrucciones sencillas; es decir, emite instrucciones ms
rpidamente que su ejecucin (en segmentadas no).
La definicin de supersegmentada es subjetiva, ya que depende de lo que se defina
como instruccin sencilla y los ciclos mquina bsicos. El resultado de las instrucciones
no est disponible a las m-1 instrucciones siguientes.
En las supersegmentadas, las instrucciones que requieren varios ciclos menores son
algunas primitivas y no pueden interrumpirse para el reenvo de datos.
Uno de las primeras mquinas supersegmentadas es el 64 bits MIPS R4000, con 8
etapas fsicas de segmentacin.

MQUINAS SUPERESCALARES:
Son extensiones de mquinas escalares segmentadas bsicas.
OL = 1 ciclo IL = 1 ciclo IP = n IPC MP = n*(m*k) (siendo n el grado superescalar, m el
grado supersegmentado y k el grado de segmentacin de la mquina bsica).
El grado superescalar se determina con el paralelismo de emisin (n) (mximo nmero
de instrucciones que puede emitir por ciclo). Decir que tiene grado n puede
considerarse que dispone de n segmentaciones o una segmentacin n veces ms
amplia (n instrucciones en cada etapa).
Las mquinas superescalares tambin pueden ser supersegmentadas. Se puede
considerar tambin como un procesador ms segmentado con grado superescalar de
n.

MQUINA DE PALABRA DE INSTRUCCIN MUY LARGA (VLIW):
Llamada as por Josh Fisher, es muy parecida a la superescalar, ya que su propsito y
objetivo es similar (lograr un elevado rendimiento del procesador mediante
procesadores paralelos) y existe una fuerte motivacin para intentar una integracin
enre ellas.
La diferencia entre ambas es la ubicacin de la Interfaz Esttica y Dinmica (DSI)
(particin entre ejecucin mediante hardware y compilacin mediante software). En
esta no hace falta duplicar las fases IF y DE para el procesamiento simultneo (captura
y decodificacin de n instrucciones independientes).
En la superescalar, durante la ejecucin se decide qu n instrucciones se procesarn.
En la VLIW, es la compilacin quien toma esa decisin y las emite simultneamente.

Das könnte Ihnen auch gefallen