ARQUITECTURA DE COMPUTADORES Junio de 2010

Anuncio
FACULTAD DE INFORMATICA
ARQUITECTURA DE COMPUTADORES
ARQUITECTURA DE COMPUTADORES
Junio de 2010
EJERCICIO 1: (3 puntos)
Un procesador PR1 con 40 w de potencia media ejecuta en modo NORM una carga de trabajo CdT, con
productividad media de 380 MIPS, consumiendo una carga eléctrica de 160 A x s con alimentación de
2 v.
La CdT se compone de tres programas: P1, P2 y P3. El número de instrucciones al ejecutar P2 es igual
que al ejecutar P3, y son 800 millones cada uno.
El PR1 consigue 300 MIPS mientras ejecuta P2 y consigue 400 MIPS mientras ejecuta P3.
Cada vez que se produce un fallo de cache, PR1 ejecutando CdT se bloquea durante 15 ns. Mientras
ejecuta sin tener fallo de cache acaba una instrucción cada 1.25 ns. de media.
Mejoras en el compilador permiten generar otro código de la carga de trabajo, que ahora llamaremos
la NCdT, consiguiendo así que se produzcan la mitad de fallos de cache. El número de instrucciones
ejecutadas se mantiene.
PR1 también puede funcionar en modo ECOL, con alimentación de 1.92 v y la misma reducción relativa
(escalado dinámico) del valor de la frecuencia, en relación con el modo NORM.
PR1 tiene 6 etapas, pero puede tener conflictos (riesgos estructurales) porque en la última etapa solo
tiene un puerto de escritura y tiene que interpretar instrucciones de cualquiera de los dos tipos (A, B)
siguientes:
ciclos
instrucciones A
1
2
3
4
5
CP
B
DL
A
ES
ciclos
instrucciones B
1
2
3
4
5
6
CP
B
DL
A
M
ES
Pregunta a: Calcule la cantidad de MIPS que consigue PR1 mientras ejecuta P1 en modo NORM.
Pregunta b: Calcule la tasa de fallos por instrucción cuando PR1 ejecuta la CdT en modo NORM.
Pregunta c: Calcule la ganancia cuando PR1 ejecuta la NCdT en modo NORM.
Pregunta d: Cuando PR1 funciona en modo ECOL, calcule los valores aproximados de la potencia media (en w) y de la productividad media (en MIPS).
Pregunta e: Calcule la pérdida en ciclos por instrucción por riesgos estructurales cuando PR1 ejecuta
la CdT, sabiendo que este código repite indefinidamente la secuencia de instrucciones A B B A.
Pregunta f: Calcule la fracción de tiempo que se utilizan las etapas A, M y ES cuando PR1 ejecuta la
CdT, sabiendo que este código repite indefinidamente la secuencia de instrucciones A B B A.
Examen, junio de 2010
1
Dep. Arquitectura de Computadores
FACULTAD DE INFORMATICA
ARQUITECTURA DE COMPUTADORES
Pregunta g: Presente en un grafo todas las dependencias de datos de las instrucciones de una iteración del bucle siguiente:
1
2
3
4
5
6
7
8
9
10
11
r4 = M[r1 + 0]
r5 = M[r2 + 0]
r6 = r8 + r4
r7 = r9 - r5
r1 = r1 + 4
r2 = r2 + 4
r7 = r6 + r7
r0 = r0 - 1
M[r3 + 0] = r7
r3 = r3 + 4
si (r0 > 0) saltar a 1
El bucle anterior tiene 1000 iteraciones y lo ejecuta PSLIN6, que es un procesador segmentado lineal
de seis etapas:
ciclos
todas las instrucciones
1
2
3
4
5
6
CP
B
DL
A
M
ES
PSLIN6 no tiene riesgos estructurales, no tiene cortocircuitos y no hace predicción de saltos. Cualquier
riesgo de datos ocasiona bloqueo del procesador. Puede escribir y leer un registro en el mismo ciclo.
Las instrucciones de salto condicional modifican el valor del CP durante su cuarto ciclo de interpretación
y descartan las instrucciones aun no acabadas.
Pregunta h: Calcule la cantidad de ciclos que tarda PSLIN6 en ejecutar el bucle dado.
EJERCICIO 2: (3.5 puntos)
Un processador interpreta instruccions del següent repertori:
EN Rd = Ra op Rb
LD
Rd = M[Rb+d]
ST
M[Rb+d] = Ra
BC si cond (Ra) llavors CP = CP + d
altrament CP = CP + 4
El processador està segmentat linealment en 8 etapes:
CP
determinació adreça instrucció
B1
accés al banc d’etiquetes de la cache instruccions
B2
accés al banc de dades de la cache instruccions
DL
descodificació, lectura operants en Banc de registres
X1
càlcul adreça efectiva (LD, ST) o adreça destí de salt (BC)
X2
accés al banc d'etiquetes de la cache de dades (LD, ST)
X3
accés al banc de dades de la cache de dades (LD, ST), o operació aritmètico-lògica (EN), o avaluació condició (BC)
E
escriptura resultat en Banc de registres
El processador disposa de recursos suficients per interpretar qualsevol seqüència d'instruccions sense
riscs estructurals. Un mateix registre del Banc es pot escriure i llegir, en aquest ordre, en el mateix cicle
de rellotge. La cache d’instruccions i la cache de dades són de correspondència directa.
Per reduir la penalització en les instruccions de salt condicional, el processador utilitza predicció fixe No
Salta. En l’etapa X1 es calcula l’adreça de la instrucció destí de salt. En l’etapa X3 es comprova la predicció. Si es compleix la condició (error de predicció), es descarten del camí de dades les instruccions
buscades de la branca incorrecte i s’actualitza el comptador de programa amb l’adreça destí de salt.
NOTA: Les figures següents mostren esquemes incomplets del camí de dades. Per simplificar les respostes, en cada pregunta on es demani completar el camí de dades, s’ha de contestar tenint en compte
només la figura corresponent.
Examen, junio de 2010
2
Dep. Arquitectura de Computadores
FACULTAD DE INFORMATICA
ARQUITECTURA DE COMPUTADORES
Pregunta a: Afegeix les connexions que fan falta en el camí de dades per interpretar les instruccions
de salt condicional. Indica la penalització quan s’interpreta una instrucció de salt condicional.
CP
B1
B2
bET
(MI)
bD
(MI)
DL
X1
X2
X3
Sum
Sum
4
0
1
d
Banc
Ra
CP
RDB2
bD
(MD)
bET
(MD)
ALU
Reg.
RDDL
RDX1
RDX2
RDX3
RDE
AV
Error
El processador disposa de curtcircuits per reduir els cicles de penalització quan s’interpreten concurrentment instruccions amb dependències de dades.
Pregunta b: Completa el camí de dades i afegeix tots els curtcircuits que fan falta per minimitzar els
retards productor-us. Suposa que les transferències de dades es fan cap al final de cicle. El nombre de
curtcircuits ha de ser el mínim. Només cal afegir les connexions que transporten dades (o adreces de
dades en memòria) i els multiplexors dels curtcircuits.
DL
X1
Sum
Banc
0
1
bD
(MD)
bET
(MD)
0
1
ALU
Reg.
RDDL
E
X3
d
Rb
Ra
X2
RDX1
RDX2
RDE
RDX3
AV
Els riscs de dades es detecten en l'etapa DL. Quan es detecta un risc de dades, la lògica de control
bloqueja les instruccions que ocupen les etapes DL, B2, B1 i CP.
Pregunta c: Dissenya la lògica que detecta dependències que ocasionen riscs de dades. Suposa que,
a partir de DL, en cada etapa hi han senyals que indiquen el tipus d’instrucció (ENX, LDX, STX, BCX),
on x representa el nom de l’etapa.
El processador executa el següent bucle:
do
{
if (p->dat != 0)
x[++i] = p-> dat;
} while ((p = p->next) != NULL);
1$: Load
Beq
Add
Store
2$: Load
Bne
r1,0(r0)
r1,2$
r4,r4,r5
r1,0(r4)
r0,16(r0)
r0,1$
;r1 = M[r0+0]
;salta si (r1 == 0)
;r4 = r4 + r5
;M[r4+0] = r1
;r0 = M[r0+16]
;salta si (r0 != 0)
Valors inicials: r0=adreça primer element de la llista; r5=4; r4=adreça primer element del vector X
El 40% de les iteracions r1 !=0
Pregunta d: Mostra el cronograma d’execució d’una iteració completa i de la primera instrucció de la
següent iteració. Indica en el cronograma els curtcircuits utilitzats. Suposa que r1 != 0. Identifica els cicles perduts.
Pregunta e: Calcula el CPI mitjà. Suposa que el número d’iteracions del bucle és il•limitat.
Examen, junio de 2010
3
Dep. Arquitectura de Computadores
FACULTAD DE INFORMATICA
ARQUITECTURA DE COMPUTADORES
En una nova versió del processador s’utilitza predicció dinàmica del sentit. La microarquitectura disposa
d’una Taula d’Història (TH) que s’accedeix en l’etapa B1. Cada entrada de la TH conté 1 bit. La taula
s’actualitza quan l’etapa E processa una instrucció de salt amb el resultat de la condició.
Per reduir el retard de búsqueda, el processador inclou una Cache d’Adreces Destí de Salt (CADS).
Aquesta cache és de correspondència directa i s’accedeix en paral•lel a la TH. En cas de falla en la
CADS, el processador segueix buscant instruccions de la branca seqüencial (predicció No Trenca). La
CADS s’actualitza quan l’etapa E processa una instrucció de salt que ha trencat el seqüenciament implícit.
La TH i la CADS tenen un port de lectura i un d’escriptura.
En la figura es mostren els components del camí de dades que s’utilitzen per determinar el seqüenciament entre instruccions. També es mostren les connexions que transporten adreces d’instrucció que fan
falta per la recuperació en cas d’error de predicció.
CP
B1
B2
RDB2
0
1
4
DL
X1
RDDL
RDX1
X2
RDX2
X3
RDX3
bET
(MI)
0
1
2
Banc
bD
(MI)
Ra
RDE
0
1
Sum
Sum
E
d
Reg.
AV
Verif.
CP
TH
Error
CADS
Pregunta f: Afegeix les connexions necessàries per establir el seqüenciament utilitzant la TH i la
CADS, així com les connexions que fan falta per actualitzar-les quan s’interpreta una instrucció de seqüenciament.
Pregunta g: Dedueix les penalitzacions quan s’interpreta una instrucció de salt condicional.
Per reduir encara més la penalització en les instruccions de salt, s’incorpora al processador un segon
nivell de predicció. Aquest segon nivell fa servir un predictor de sentit més precís (TH2) i una cache
d’adreces destí de salt de més capacitat (CADS2). Aquestes dues noves estructures tenen latència
d’accés de 2 cicles i latència de repetició de 1 cicle. S’hi accedeix en paral•lel amb les estructures TH i
CADS, tal com mostra la figura. Anomenarem predicció de primer nivell a la informació subministrada
per la TH (sentit) i la CADS (encert/falla, adreça destí).
Suposarem que la CADS2 conté sempre el contingut de la CADS.
cicles
1
2
3
4
5
6
7
8
etapes
CP
B1
B2
DL
X1
X2
X3
E
predicció
nivell 1
TH
CADS
predicció
nivell 2
TH2
CADS2
9
comparar actualitzar
prediccions TH
nivells 1, 2 CADS
verificar
predicció
nivell 2
actualitzar
TH2
CADS2
En l’etapa DL es comparen les prediccions dels dos nivells. En cas de discrepància, es corregeix el seqüenciament i es descarten les instruccions que s’estan buscant. En l’etapa X1 s’actualitzen les estructures del primer nivell. En l’etapa X3 es comprova la predicció del segon nivell, iniciant la recuperació
en cas d’error. En l’etapa E s’actualitzen, si és el cas, les estructures del segon nivell.
Pregunta h: Suposant que el predictor de sentit TH2 no s’equivoca mai i que la CADS2 emmagatzema
les adreceses destí de totes les instruccions de salt del programa, dedueix les penalitzacions quan s’interpreta una instrucció de salt condicional.
Examen, junio de 2010
4
Dep. Arquitectura de Computadores
FACULTAD DE INFORMATICA
ARQUITECTURA DE COMPUTADORES
EJERCICIO 3: (3.5 puntos)
Un procesador segmentado multiciclo dispone de tres ramificaciones: a) aritmética entera, b) acceso a
memoria y c) aritmética en coma flotante. La segmentación de cada ramificación es la siguiente.
ciclos
1
2
3
etapas
CP
B
DL
4
5
ALU
ES
6
7
8
ENT, BR
EV
@
M1
M2
ES
X1
X2
X3
X4
MEM:
ES
Load, Store, FLoad, FStore
CF
La funcionalidad de las etapas es la siguiente:
ETAPA
CP
B
DL
FUNCIONALIDAD Y RECURSOS UTILIZADOS
determinar la dirección de la instrucción
búsqueda de la instrucción
decodificación, lectura de operandos en registros (enteros y coma flotante), cálculo de la dirección destino de salto.
ALU / EV operaciones aritmético-lógicas (ALU) / comprobación de la predicción de sentido (EV)
@
cálculo de la dirección efectiva
M1, M2 acceso a memoria. En M1 se accede al campo etiquetas de la cache y en M2 al campo datos de la cache
X1, ..., X4 cálculo en coma flotante
ES
escritura en el banco de registros de enteros o de coma flotante
La arquitectura del conjunto de instrucciones define un banco de registros para números representados
en coma flotante y otro banco para el resto. Las instrucciones tienen como máximo dos operandos fuente que se leen de los bancos de registros y producen como máximo un resultado que se almacena en
un registro de un banco de registros.
En el camino de datos se dispone de los recursos suficientes para que no se produzcan riesgos estructurales.
Pregunta a: Indique el número mínimo de caminos de lectura y escritura a cada uno de los bancos de
registros.
En cada banco de registros se puede escribir y leer, en este orden, un mismo registro en un ciclo de
reloj. El procesador sólo dispone de cortocircuitos cuya fuente son las etapas ALU y X4 y cuyo destino
es la etapa DL.
Pregunta b: Indique el número total mínimo de cortocircuitos de que dispone el procesador y el número
de comparadores necesarios para controlarlos. Indique la latencia productor-uso entre ramificaciones,
si es el caso. Así mismo indique los tipos de riesgos de datos debidos a registros que deben gestionarse.
Para gestionar los riesgos de datos debidos a registros se utilizan dos vectores de marcas (VM), uno
por banco de registros, que se leen en la etapa DL. La gestión de los riesgos de datos es en general
conservadora. El instante de actualización de los VM por una instrucción sólo depende de la propia instrucción. En la detección de un riesgo de datos se utiliza sólo la información leída de los VM. Una entrada de un vector VM se puede escribir y leer, en este orden, en un ciclo de reloj.
Cuando se detecta un riesgo de datos debido a registros las instrucciones en las etapas DL, B y CP se
retienen en las respectivas etapas hasta que desaparece el riesgo.
Pregunta c: Indique para cada ramificación, si es el caso, las etapas en que se actualiza (escribe) el
vector VM. Así mismo, indique el número mínimo de caminos de lectura y escritura en cada vector VM.
Como programa de prueba utilizaremos el bucle interno del siguiente código que evalua el producto de
dos matrices.
Examen, junio de 2010
5
Dep. Arquitectura de Computadores
FACULTAD DE INFORMATICA
do K = 1 , P
ARQUITECTURA DE COMPUTADORES
1$: FLoad F1, 0(r1)
do J = 1 , N
do I = 1, M
C( I, J) = C(I, J) + A(I, K ) x B(K, J)
enddo
enddo
enddo
;Bucle do I
FLoad F2, 0(r2)
; r3 se inicializa al valor M
Fmul F4, F3, F1
; F3 almacena B(K, J)
Fadd F2, F4, F2
FStore F2, 0(r2)
add r1, r1, #8
add r2, r2, #8
sub r3, r3, #1
El tamaño de un elemento de las matrices es 8 bytes.
bne r3, 1$
En un riesgo de secuenciamiento se descartan las instrucciones buscadas hasta que se establece la
dirección de la siguiente instrucción que debe interpretarse. El procesador utiliza predicción fija en instrucciones de secuenciamiento condicional. Predice seguir en secuencia si el literal es positivo. En caso
de error de predicción, en la etapa EV se establece el valor del CP para iniciar, en el mismo ciclo, la
recuperación.
Pregunta d: Muestre en un diagrama temporal la interpretación de la 1ª iteración del bucle y la 1ª instrucción de la 2ª iteración. Calcule las siguientes métricas: a) los ciclos perdidos por riesgos de datos y
secuenciamiento en una iteración del bucle, b) los ciclos por iteración, c) el número de operaciones en
coma flotante por ciclo y d) el IPC.
Pregunta e: Planificando las instrucciones del cuerpo de bucle y teniendo en cuenta que se puede modificar el campo literal en las instrucciones de acceso a memoria ¿Cuántos ciclos perdidos por riesgos
de datos se pueden reducir?.
En una nueva versión del procesador se añade la capacidad de planificación dinámica de instrucciones
utilizando el algoritmo de Tomasulo. La segmentación utilizada en la parte común (parte frontal) y en
cada ramificación es la misma que en el procesador multiciclo. El acrónimo DL se cambia por el acrónimo EL para indicar la acción de emisión de la instrucción.
En el algoritmo de Tomasulo se utilizan vectores de marcas (VM). Una entrada de VM indica si el identificador de ER, almacenado en VE (vector de etiquetas), asociado al registro o el valor almacenado en
el registro es válido. Esto es, se ha almacenado el valor que calcula la última instrucción emitida que
determina su valor.
Pregunta f: Indique para cada ramificación, si es el caso, los ciclos de interpretación en que se actualizan los vectores VM.
El retardo producto-uso en un procesador que difunde la etiqueta y el dato en el mismo ciclo (ES) puede
reducirse. Para ello en esta versión del procesador se desacopla, en algunas ramificaciones, la difusión
de la etiqueta de la difusión del dato. Ello permite reducir en un ciclo el retardo producto-uso.
En todas las ramificaciones, excepto en la ramificación de memoria, la etiqueta de la estación de reserva
(ER) se difunde en el último ciclo de ejecución. El dato producido por la ramificación se difunde en el
siguiente ciclo (ES). En la ramificación de memoria, tanto la etiqueta como el dato se difunden en la etapa de escritura. En la siguiente figura se muestra una parte del camino de datos. En un caso la difusión
de la etiqueta y la difusión del dato están desacopladas (BE1 y BD1) y en el otro caso están acopladas
(BE2 y BD2).
Debido a que la etiqueta se difunde un ciclo antes que el dato, los valores de las etiquetas deben almacenarse durante un ciclo (en la figura, registro PE). Hay un registro PE por cada bus de etiquetas desacoplado. Los valores de las etiquetas almacenadas en los registros PE son utilizadas por la instrucción
que ocupa la etapa EL para determinar si debe capturar alguno de los datos que se transmiten por los
buses de datos y cuyas etiquetas se han transmitido en el ciclo previo.
Examen, junio de 2010
6
Dep. Arquitectura de Computadores
FACULTAD DE INFORMATICA
ARQUITECTURA DE COMPUTADORES
EL
EJECUCION
Etiqueta del ciclo previo
PE
MUXInicio
0
1
2
0
R
...
BD: Bus de difusión de datos
BE:Bus de difusión de etiquetas
último
ciclo
BD1
1
BE1
MuxC
Estaciones
de reserva (ER)
BR
1º ciclo
ES
BD2
BE2
L
En cada ciclo de reloj se evalúa la señal de preparada en todas las ER (los datos fuente están disponibles). Esta señal se evalúa para cada ER utilizando la información transmitida por el bus de etiquetas,
las etiquetas almacenadas en la ER y los bits de disponibilidad. Cuando una ER activa la señal de preparada, en el mismo ciclo la ER compite por ser seleccionada para iniciar la ejecución.
Como en algunas ramificaciones los buses BE y BD se utilizan de forma desacoplada, la instrucción
seleccionada en cualquier ramificación puede necesitar capturar datos difundidos por los buses de datos en el primer ciclo de ejecución (multiplexor MuxC en la figura previa). Caso A en la siguiente figura.
A) Otras ramificaciones
último ciclo
ES
difunde difunde dato
etiqueta captura dato
cualquier
ramificación
C) Otras ramificaciones
B) Otras ramificaciones
último ciclo
difunde
etiqueta
ES
PE
último ciclo
difunde dato
captura dato
EL o ERL
1º ciclo Eje.
B
EL
preparada,
seleccionada
captura
almacena
etiqueta en
registro PE
captura
ES
difunde difunde dato
etiqueta captura dato
EL o ERL
D) Memoria
M2
difunde
etiqueta
ES
difunde dato
captura dato
ERL
EL o ERL
captura
captura,
preparada,
seleccionada
1º ciclo Eje.
Una instrucción en la etapa EL compara sus etiquetas con las difundidas por los buses de etiquetas y
las almacenadas en los registros PE. Si existe coincidencia con alguna etiqueta almacenada en los registros PE se captura, en el mismo ciclo, el dato difundido por el bus de datos asociado (Caso B).
Si existe coincidencia con etiquetas difundidas por los buses de etiquetas se captura, en el siguiente
ciclo, el dato del bus de datos asociado (Caso A o C). Esto es, si en el ciclo actual la instrucción es seleccionada para iniciar la ejecución, el dato se captura en el siguiente ciclo, que es el 1º ciclo de ejecución (Caso A). En caso contrario, la instrucción espera en la ER y en el siguiente ciclo captura el dato,
que se almacena en la ER (Caso C).
Si la etiqueta de la ER y el dato producido se difunden en el mismo ciclo, el dato difundido se almacena
en la ER si existe coincidencia en la comparación de etiquetas. Caso D en la figura previa.
En esta implementación del procesador las instrucciones Load o Fload pueden adelantar a las instrucciones Store o FStore si la dirección es no coincidente. Por otro lado, supondremos, igual que en el procesador multiciclo, predicción fija en la instrucciones de secuenciamiento condicional.
En un diagrama temporal, para indicar que una instrucción está esperando en la ER, utilice el acrónimo
ERL. Además, en lugar de utilizar el acrónimo DL en el tercer ciclo de interpretación de una instrucción,
utilice el acrónimo EL. Suponga que el número de ER es ilimitado.
Pregunta g: Muestre en un diagrama temporal la interpretación de la 1ª iteración del bucle y la 1ª instrucción de la 2ª iteración. Calcule las siguientes métricas: a) los ciclos por iteración, y b) el IPC. Muestre
cada uno de los ciclos en que se capturan datos e indique para cada instrucción si actualiza el banco
de registros. Para esta última pregunta analice dos iteraciones consecutivas.
Pregunta h: Indique el número mínimo de estaciones de reserva que son necesarias, para este código,
en cada una de las ramificaciones para que no se bloquee la emisión de instrucciones. Analice dos iteraciones consecutivas
Examen, junio de 2010
7
Dep. Arquitectura de Computadores
Descargar