3. Introducción
Los procesadores segmentados sirven
para mejorar el rendimiento sin necesidad
de duplicar excesivamente el hardware.
Se usaron por primera vez en los años 60 para
los grandes sistemas (mainframes) de altas
presentaciones, y fueron muy importantes en
los años 80 para el enfoqué RISC del diseño de
computadores (la mayoria de técnicas RISC se
relacionan con el objetivo de conseguir una
buena segmentación).
4. En la Actualidad…
La segmentación se utiliza
mucho actualmente para el
desarrollo de juegos de
instrucciones del procesador.
Actualmente, la tendencia es
lograr segmentaciones más
profundas para obtener
frecuencias de reloj muy altas.
Es un método muy eficaz para
obtener un mayor rendimiento.
5.
6. La segmentación (pipelining) es una técnica
de implementación por lo cual se solapa la
ejecucion de múltiples instrucciones.
Técnica clave para hacer CPU lapidas.
Ejem: Línea de montaje de automóviles
10. El procesamiento segmentado
aprovecha la misma filosofía de
trabajo de la fabricación en
cadena: cada etapa de la
segmentación (o segmento)
completa una parte (subtarea)
de la tarea total.
11. Los segmentos están conectados cada
uno con el siguiente, de forma que la
salida de uno pasa ser la entrada del
siguiente.
12.
13. La segmentación es como una
línea de ensamblaje cada etapa
de la segmentación completa una
parte de la instrucción.
Como en una línea de ensamblaje de
automóviles, el trabajo que va a realizar una
instrucción se descompone en partes más
pequeñas, cada una de las cuales necesita
una fracción del tiempo necesario para
completar la instrucción completa.
14. Cada uno de estos pasos se
define como etapa de la
segmentación o segmento.
Las etapas están conectadas, cada
una a la siguiente, para formar una
especie de cauce. Las instrucciones
entran por un extremo, son
procesadas a través de las etapas y
salen por el otro extremo.
15. El modelo de
segmentación
El modelo de segmentación más repetido
en la primera mitad de los años 90 es el
compuesto por las siguientes cinco etapas:
Búsqueda de la instrucción .
Decodificación.
Lectura de operandos.
Ejecución de la operación asociada.
Escritura de su resultado.
16. Importancia
Los mas importante de la segmentación es
que las diferentes subtarea se pueden
procesarse de forma simultanea, aunque se
sobre diferentes datos.
Una contribución clave de la segmentación es
la posibilidad de comenzar una nueva tarea
sin necesidad de que la anterior se haya
terminado.
17. Ejemplo
Considérese una tarea, compuesta por n
subtarea. Si estas subtarea se procesan de
forma totalmente, el tiempo necesario para
procesar la tarea total será la suma de los
tiempos necesarios para la terminación de cada
una de las subtarea
18. Si para procesar esa misma tarea, se emplea un
procesador segmentado, basta que se haya
terminado la primera subtarea para poder
empezar a procesar una nueva tarea.
20. Factores que reducen el rendimiento
Factores tecnológicos
Tiempo de carga de los registros
Desplazamiento del reloj (clock skew)
21. Clock skew:
El clock debería llegar a
todas las etapas en el
mismo instante pero
debido a diferentes
factores físicos
(cableado,carga,drivers....)
se produce un
desplazamiento temporal
en la llegada del clock a
cada etapa.
22. Factores de diseño y utilización
Participación en etapas inadecuadas
Riesgos por dependencia de datos, surgen cuando
una instrucción depende de los resultados de un
instrucción anterior de forma que ambas no
podrán ejecutarse de forma solapada.
23. Riesgos estructurales
Surgen del conflicto de los recursos, cuando
el hardware no puede soportar todas las
combinaciones posibles de instrucciones en
ejecuciones solapadas simultáneamente.
Ejemplo: pedir a una ALU que realice el
calculo de un dirección efectiva y una resta al
mismo tiempo.
25. Ejemplo...
Tenemos una máquina no segmentada con 5
pasos de ejecución cuya duraciones son 50ns,
50ns, 60ns y 50ns. Suponer que debido
al tiempo de preparación y al
desplazamiento del reloj (clock Skew),
segmentar la máquina añade 5ns de
gasto en cada etapa de ejecución. Calcular la
aceleración que conseguimos con la
segmentación en la frecuencia de
ejecución de las instrucciones.
26. Solución
No segmentada:
Tiempo medio de instrucción = 50 + 50 +60 +
50 +50 = 260ns
Segmentada:
El reloj debe ir a la velocidad de la etapa más
lenta y debe tener en
cuenta el gasto -----> 60 + 5 = 65ns
31. Conseguimos asi, que un procesador
compuesto por N unidades funcionales
que trabajan a la vez en circunstancias
ideales, incremente su rendimiento en
un factor de N.
32. Las instrucciones fluyen secuencialmente por
las distintas unidades funcionales del
procesador, de igual forma que el agua fluye
por el cauce de una tubería, de ahí que en la
jerga de la calle se les conozca como
procesadores pipeline que significa tubería en
inglés
33. Recordemos que…
El modelo de segmentación más repetido en
la primera mitad de los años 90 es el
compuesto por las siguientes cinco etapas:
Búsqueda de la instrucción
Decodificación
Lectura de operandos
Ejecución de la operación asociada
Escritura de su resultado.
34. Búsqueda de la instrucción
Decodificación de la instrucción y búsqueda de
registro (lectura)
Ejecución (y calculo de dirección efectiva)
Memoria (acceso): accede a memoria si es
necesario. Carga o almacena
Escritura (o pos escritura write-back): Escribe el
resultado en el registro destino.
35. CISC
Se pronuncia Sisk, y está a favor del conjunto
de instrucciones informáticas complejas. La
mayoría de los PC usan CPU basados en esta
arquitectura. Por ejemplo, Intel y AMD, la
CPU se basan en arquitecturas CISC.
Por lo general los chips CISC tienen una gran
cantidad de instrucciones diferentes y
complejos
36. CISC
La filosofía detrás de esto es que el hardware es
siempre más rápido que el software, por lo tanto,
uno debe hacer un conjunto de
instrucciones potente, que proporciona a los
programadores las instrucciones de montaje que
tiene que ver mucho con programas de corto
plazo.
En conjunto los chips CISC son relativamente
lentos (en comparación con los chips RISC) por
instrucción, pero usan menos instrucciones que
los RISC
37. RISC
Computadoras con un conjunto de instrucciones
reducido. Los Chips RICS desarrollados a
mediados de 1980 como una reacción a los Chips
CISC.
La filosofía detrás de esto es que casi nadie
utiliza complejas instrucciones en el lenguaje
ensamblador como el usado por CISC y las
personas utilizan compiladores que no utilizan
instrucciones complejas. Apple, por ejemplo
utiliza chips RICS
38. RISC
Por lo tanto, las instrucciones rápidas y simples
serian mejor que las instrucciones CISC grandes,
complejas y lentas. Sin embargo, son necesarias
más instrucciones para realizar una tarea.
Otra ventaja de RISC es que - en teoría – a causa
de las instrucciones más sencillas, los chips RISC
requieren menos transistores, los que los hace
más fáciles de diseñar y más baratos para
producir.
39. DLX
El DLX es un microprocesador de tipo RISC
diseñado por John L. Hennessy y David A.
Patterson presenta una ejecucion en cinco
etapas, similares a las del microprocesador
MIPS, también diseñado por John L.
Hennessy en la Universidad de Stanford,
buscando la filosofía de la segmentación.
41. Etapa IF
Se carga la instrucción en curso en el IR.
Se prepara el contador de programa para
apuntar a la siguiente instrucción.
IR ← Mem[PC]
NPC ← PC + 4
42. Etapa ID
Se decodifica la instrucción y se cargan los
diferentes campos en los registros especiales
A, B, Imm.
A ← Regs[IR6…10]
B ← Regs[IR11…15]
Imm ← ((IR16 )16## IR16…31)
43. Etapa Ex
Acceso a memoria (cálculo de la dirección
efectiva)
ALUOutput ← A + Imm
Reg-Reg ALU (operación especificada por func)
ALUOutput ← A func B
Reg-Imm ALU (operación especificada por op)
ALUOutput ← A op Imm
Salto (cálculo del PC destino y de la condición)
ALUOutput ← NPC + Imm
Cond ← (A op 0)
44. Etapa MEM
Acceso a memoria (lectura-Load o escritura-Store en
memoria)
LMD ← Mem[ALUOutput]
Mem[ALUOutput] ← B
Salto (carga de la dirección efectiva en el PC)
if (cond)
PC ← ALUOutput
else
PC ← NPC
46. Podemos observar en el siguiente grafico la
ejecucion simultánea de cinco instrucciones
distintas etapas en un procesador DLX
47. De esta manera, mientras el procesador
escribe una instrucción, ejecuta
simultáneamente las siguiente, busca
los operandos de una tercera,
decodifica una cuarta y busca en
memoria una quinta instrucción,
lográndose en un caso ideal una
aceleración de cinco para el
rendimiento del chip.
48.
49. En la ejecución monociclo:
El período del reloj lo establece la instrucción que
más demora en ejecutarse.
A la vez este período es la suma de los tiempos
asociados a cada etapa.
En el diagrama los tiempos de acceso a memoria
de instrucciones y de datos se asumen iguales y
levemente mayores que la operación de la
unidad aritmético lógica; la lectura y escritura de
registros, se asumen iguales y menores que el
tiempo de propagación en la alu.
50. En la ejecución multiciclo:
El período del reloj lo establece la etapa que
más demora en realizarse(acceso a memoria).
En el diagrama se aprecia que la instrucción
load word demora más en ejecutarse en la
máquina multiciclo.
Sin embargo la instrucción store word
demora menos y también es más rápida la
ejecución de la secuencia lw(load word),
sw(stored word), en el procesador multiciclo.
51. En la ejecución segmentada
(pipeline):
Asumiendo que cada instrucción ocupa las
cinco etapas, la realización individual de una
de ellas demora lo mismo que la más lenta en
la ejecución multiciclo.
Se aprecia que es más rápida la ejecución de
la secuencia lw, sw, en el procesador
segmentado que en el multiciclo.
52. Ejemplo:
Suponemos que se ejecutan 100 instrucciones:
Procesador monociclo
45 ns/ciclo x 1 CPI x 100 inst = 4500 ns
Procesador Multiciclo
10 ns/ciclo x 4.6 CPI (debido a la mezcla) x 100 inst = 4600 ns
Segmentada ideal
10 ns/ciclo x (1 CPI x 100 inst + 4 ciclos llenado) = 1040 ns
53.
54. Ventaja
La gran ventaja de la aplicación de la
segmentación en el diseño de los microprocesadores
es que el aumento del rendimiento se consigue con
solo reorganizar las unidades funcionales existentes,
por lo que no supone un incremento de coste para la
Unidad de Proceso
El diseño de la Unidad de Control sí se complica un
poco a medida que aumenta el número de etapas y el
grado de concurrencia en la ejecución de las
instrucciones pero es despreciable si lo comparamos
con el espectacular incremento del rendimiento.
55. Puntos importantes de
Procesamiento segmentado
• Se desea ejecutar varias instrucciones, al mismo tiempo.
• Cinco etapas, pueden ejecutarse simultáneamente cinco instrucciones.
• Es preciso que cada instrucción pase por las cinco etapas, y que cada etapa tenga
su propio control.
• Se comienza la próxima instrucción mientras se trabaja aun en otra.
• Se ejecutan varias instrucciones, que usan recursos diferentes en forma
simultanea
57. INTRODUCCION
La Supersegmentacion de los procesadores es una
técnica de implementación que busca el mencionado
paralelismo a nivel de instrucción.
Pero antes de explicarlo, conviene explicar otras
técnicas que también sirven para lograr el
paralelismo y que suelen combinarse todas juntas
como son la segmentación, Superescalaridad y
la combinación de ambas
58. SUPERESCALARIDAD
Consiste en la replicación de la circuitería de las
unidades funcionales de un microprocesador,
creando por lo tanto varios cauces (pipelines) de
manera que se puedan ejecutar varias instrucciones a
la vez
59. Procesador superescalar
Un procesador superescalar de factor N es
aquel que replica N veces la circuitería de alguna de
sus unidades funcionales con el fin de poder ejecutar
N instrucciones en sus respectivas etapas de
computación.
60. Sin embargo, el coste de incrementar el rendimiento
mediante la Superescalaridad es superior al de la
segmentación.
En el siguiente grafico se muestra la ejecucion en
paralelo de 5 instrucciones cada una en su cauce o
pipeline, lo que representa una Superescalaridad de
factor 5.
61.
62. COMBINACION DE SEGMENTACIO Y
SUPERESCALARIDAD
Como se puede observarse en la figura, las filosofías
de segmentación y Superescalaridad son
perfectamente compatibles.
63.
64. Sin embargo existen ciertos conflictos a la hora de
poner en práctica simultáneamente ambas ideas, y es
que cada técnica exige unos requisitos diferentes:
65. La segmentación La Superescalaridad
requiere una elevada por el contrario
frecuencia de forma necesita un ingente
que solo un periodo reloj número de
muy corto permitirá transistores para
descomponer cada poder ser implementada.
instrucción en un
número elevado de
etapas.
66. SUPERSEGMENTACION
La palabra Supersegmentacion nos lleva a la
tentación de aplicar la ecuación superescalar +
segmentado = supersegmentado, cuando en realidad
la ecuación correcta es segmento + segmento =
supersegmentado.
67. Microprocesadores supersegmentados
Todos los microprocesadores actuales se
encuentran supersegmentados, habiendo
aumentado el número de etapas con el paso de las
generaciones. Así, lo normal en la séptima
generación es encontrarnos con cauces de ejecución
entera de 20 etapas de segmentación en el caso del
Pentium IV (2003) de Intel o 31 etapas en los
procesadores Prescott (2004) también de Intel.
68. Control de colisiones en procesadores segmentados monofunción
1 2 3 4 5 6
A X X
B X X
C X
D X X
69. Control de colisiones en procesadores segmentados monofunción
1 2 3 4 5 6
A X
B X
C X
D X X
70. Control de colisiones en procesadores segmentados monofunción
1 2 3 4 5 6
A X X X
B X X X
C X X
D X X X
Vector de colisiones: (1 . . .
71. Control de colisiones en procesadores segmentados monofunción
1 2 3 4 5 6
A X X X
B X X X
C X X
D X X X
Vector de colisiones: (1 0 . . .
72. Control de colisiones en procesadores segmentados monofunción
1 2 3 4 5 6
A X X X
B X X X
C X X
D X X
Vector de colisiones: (1 0 0 . . .
73. Control de colisiones en procesadores segmentados monofunción
1 2 3 4 5 6
A X X X
B X X
C X
D X X
Vector de colisiones: (1 0 0 1 . . .
74. Control de colisiones en procesadores segmentados monofunción
1 2 3 4 5 6
A X X
B X X
C X
D X X
Vector de colisiones: (1 0 0 1 1)
75. Algoritmo de Patel-Davidson
1 2 3 4 5 6
A X X
B X X
C X
D X X
Según el diagrama anterior: MA ciclo avaro = 4, MAL = 3
Número máximo de marcas en la una fila de la tabla = 2
Cota mínima del MAL = 2
76. Algoritmo de Patel-Davidson
1 2 3 4 5 6 7 8
A X P P X P P
B X P R
P X P
C X P P
D X X P P P
Nuevo vector de colisiones: (10001)
78. Control de colisiones en procesadores segmentados multifunción
1 2 3 4 5 6 1 2 3 4 5 6
A X X A X X
B X X B X X
C X C X
D X X D X X
Tabla de reservas de la función x Tabla de reservas de la función y
79. Matrices de colisiones
v xx v xy
Mx My
v yx v yy
Que en nuestro caso serán:
v xx 10011 v xy 11110
Mx My
v yx 10011 v yy 01110
81. Conflictos de control: bifurcación retardada
Detención producida por una bifurcación (sin medidas correctoras)
Efecto de la reordenación de instrucciones efectuada por el compilador
en una máquina con bifurcación retardada
85. Comparación de las características de los procesadores
escalares, superescalares y supersegmentados
Superescalar
Tipo de Escalar con n Superescalar Supersegmentada
supersegmentada
máquina segmentos de grado N de grado M
de grado (N,M)
Ciclo máquina
básico 1 1 1/M 1/M
Instrucciones
por emisión 1 N 1 N
Ciclos entre
emisiones 1 1 1/M 1/M
consecutivas
ILP sin riesgos 1 N M MN
Ganancia de
velocidad 1 N M MN