Вы находитесь на странице: 1из 18

1.

Un circuito que implementaba una operación en T = 450 ns se ha segmentado mediante un cauce lineal con cuatro etapas de duración t1 = 100 ns,
t2 = 125 ns, t3 = 125 ns, y t4 = 100 ns respectivamente, separadas por un registro de acoplo que introduce un retardo d = 25 ns.

a) ¿Cuál es la máxima ganancia de velocidad posible?

b) ¿Cuál es la productividad máxima del cauce?

c) ¿A partir de qué número de operaciones ejecutadas se consigue una productividad igual al 90% de la productividad máxima?

Solución
A) máxima ganancia de velocidad posible

2. Supongamos que las etapas de una unidad funcional segmentada S1, S2, S3, S4 y S5 se utilizan en el orden S1, S3,
S5, S1, S3, S4, S1, S3, S2, S5, S4, S2. ¿Cuál es el tiempo (número de ciclos) de latencia de inicio del cauce?
3. Considere un procesador con arquitectura DLX que implementa un cauce segmentado en cinco etapas (IF, ID, EX, MEM, WB). Para los
números en coma flotante se añaden además un sumador con una latencia de 2 ciclos y un multiplicador con una latencia de 3 ciclos. Existen
caminos de bypass desde la salida de las unidades de ejecución y desde la etapa de memoria a las entradas de la ALU. Las instrucciones de salto se
procesan en la etapa de decodificación, por lo que la nueva dirección a la que se ha de acceder si se produce el salto estará disponible al final de
dicha etapa. Se implementa salto retardado en el que no se anula nunca la siguiente instrucción que se haya podido introducir en el cauce tras un
salto (el salto se resuelve en la etapa de decodificación). Considerando el código siguiente:

add r1, r0, r0 ; Inicializamos el índice i a 0


subd f0, f0, f0 ; Inicializamos el acumulador a 0
bucle: ld f2, X(r1) ; Cargamos X[i]
multd f6, f2, f4 ; Multiplicamos X[i] por a (en f4)
addd f0, f0, f6 ; Acumulamos el resultado
addi r1, r1, #8 ; Incrementamos el contador del índice
subi r3, r3, #8 ; Comprobamos si hemos acabado
bnez r3, bucle ; Saltamos si quedan elementos
sd R, f0 ; Guardamos el resultado

a) ¿Se ejecutaría el programa correctamente tal y como está? ¿Qué cambios haría para aprovechar el salto retardado?

b) ¿Cuál es la productividad del cauce en función del número de iteraciones N?

Solución
El programa se ejecuta correctamente, ya que en cada iteración se ejecutará la instrucción de almacenamiento que hay detrás del salto y el efecto que
tendrá será simplemente el de almacenar la suma parcial acumulada en f0.

add r1, r0, r0 ; Inicializamos el índice i a 0


subd f0, f0, f0 ; Inicializamos el acumulador a 0
bucle: ld f2, X(r1) ; Cargamos X(i)
subi r3, r3, #8 ; Comprobamos si hemos acabado
multd f6, f2, f4 ; Multiplicamos X(i) por a (en f4)
addd f0, f0, f6 ; Acumulamos el resultado
bnez r3, bucle ; Saltamos si quedan elementos
addi r1, r1, #8 ; Incrementamos el contador del índice
sd R, f0 ; Guardamos el resultado

En este caso, la instrucción de después del salto retardado se utiliza para incrementar el puntero al siguiente elemento de X, instrucción que hay que
realizar de todas formas, con lo que el cuerpo del bucle pasa a tener una instrucción menos que antes. Además, la instrucción de resta se ha colocado
detrás la instrucción de carga para ocultar su retardo carga-uso.

B) Para obtener la productividad del cauce primero tenemos que calcular cuánto tiempo tarda en ejecutarse el programa para un vector de N
elementos.

Para ello es necesario realizar una traza de su ejecución, tal y como muestra la Figura 1.

Por tanto, el tiempo de ejecución del programa es de: T N   2  9 N  5  9 N  7

INSTRUCCIÓN 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
add r1, r0, r0 IF ID EX MEM WB
subd f0, f0, f0 IF ID EX EX MEM WB
ld f2, X(r1) IF ID EX Stall MEM WB
subi r3, r3, #8 IF ID Stall EX MEM WB
multd f6, f2, f4 IF Stall ID EX EX EX MEM WB
addd f0, f0, f6 Stall IF ID Stall EX EX MEM WB
bnez r3, bucle IF Stall ID
addi r1, r1, #8 Stall IF ID EX MEM WB
sd R, f0 IF ID EX MEM WB

Figura 1. Traza de la ejecución del código del problema 0.

Sabiendo el tiempo de ejecución, la productividad del cauce se puede expresar en términos de resultados por ciclo:
Nº instrucciones 6N  3
WN   instr./ciclo
Tiempo 9N  8

Nº resultados N
o de instrucciones por ciclo: WN   resultados/ciclo
Tiempo 9N  8
5. Considere el procesador segmentado que simula WINDLX y considere que implementa un salto retardado en el que la instrucción
situada a continuación de la instrucción de salto condicional no se anula nunca. Escriba el programa DLX que permite ejecutar:

for (i = 0 ; i < n ; i++)


d[i] = a[i] + b[i] + c[i];

a) Realice las transformaciones necesarias para obtener un código eficiente en el que se aproveche la instrucción ubicada
tras la instrucción de salto condicional.

b) ¿Cómo sería el código si el procesador implementara la opción de anular si no se salta?

c) ¿Y si la opción es anular siempre?

Solución
Para el caso en que el procesador no anule nunca la instrucción situada a continuación del salto, el código del programa sería el siguiente:

add r1, r0, r0 ; r1 = 0 (desplazamiento del dato actual en los vectores)


lw r2, n ; r2 = n (número de elementos en los vectores)
inicio: lw r3, a(r1) ; r3 = a[i]
lw r4, b(r1) ; r4 = b[i]
lw r5, c(r1) ; r5 = c[i]
add r6, r3, r4 ; r6 = a[i] + b[i]
add r6, r5, r6 ; r6 = r6 + c[i]
sw d(r1), r6 ; d[i] = r6
subi r2, r2, #1 ;n=n–1
bnez r2, inicio ; saltamos si n != 0
addi r1, r1, #4 ; r1 apunta a a[i+1]

Como el código utiliza la ALU para hacer todas las operaciones aritméticas, la latencia de todas las operaciones es de un ciclo, con lo que suponiendo
que existen caminos de bypass, no existirían atascos en el cauce. Para aprovechar el salto retardado se ha retrasado la instrucción que incrementa r1,
que se ejecutará tanto si se salta como si no.

Para el caso de que el procesador anule la instrucción a continuación del salto si no se salta (se supone que siempre se va a saltar), el código anterior
funcionaría sin problemas, ya que sólo se anularía el incremento de r1 en la última iteración, cuando ya no hace falta volver a usarlo. Por último, si
el procesador anulara siempre la instrucción que está situada a continuación del salto, habría que subir el incremento de r1 antes del salto y colocar
tras el salto una instrucción nop, para que su anulación no nos cause ningún problema.
7. Suponga que en el siguiente programa N = 108, a y c son dos vectores de números en coma flotante, y b es un escalar en coma flotante.

for (i = 0 ; i < N ; i++)


a[i + 2] = (a[i + 1] + a[i]) * b;

c[0] = a[N + 1];

a) Si el programa anterior se implementa en un procesador segmentado con salto retardado y un hueco para instrucciones tras la instrucción de salto, indique si
hay algún problema en la ejecución del código anterior si el salto: (1) se anula siempre; (2) no se anula nunca; (3) se anula si se salta; (4) se anula si no se salta.

b) ¿Qué cambios haría en el código en el caso en que hay problemas y para que, si es posible, se mejoren las prestaciones?

Solución
Una posible codificación del bucle anterior podría ser:

ld f1, b ; cargar en f1 el valor de b


add r1, r0, a ; apuntar r1 donde empieza a[ ]
ld r2, N ; cargar en r2 el número de iteraciones
loop: ld f2, 0(r1) ; cargar f2 con a[i]
ld f3, 4(r1) ; cargar f3 con a[i + 1]
addf f4, f3, f2 ; f4=a[i + 1]+a[i]
mulf f4, f4, f1 ; f4=f4*b
sf 8(r1), f4 ; almacenar f4 en a[i + 2]
add r1, r1, #4 ; apuntar a a[i + 1]
sub r2, r2, #1 ; queda una iteración menos
bnez r2, loop
add r5, r0, c ; apuntar r5 donde empieza c[ ]
sf 0(r5), f4 ; almacenar f4 (a[N + 1]) en c[0]

Dependiendo de la implementación del salto retardado, puede que sea necesario cambiar el código del programa para asegurar su correcto
funcionamiento:

1. En el caso en el que la instrucción que entra en el cauce tras el salto se anule siempre, sería necesario insertar una instrucción nop
entre el salto y la suma, ya que en la última iteración, en la que no se debe saltar, se anularía la siguiente instrucción al salto y la
operación de almacenamiento final no accedería a la dirección correcta.

2. Si la instrucción siguiente al salto no se anula nunca, el programa podría fallar si dicha instrucción afecta a los registros que se
usan en el bucle. En este ejemplo concreto, como dicha instrucción afecta a r5, que no se usa en el bucle, el programa funcionaría
correctamente, aunque ejecutaría la instrucción siguiente al salto en todas las iteraciones, desperdiciando un tiempo de
computación que podría usarse en algún cálculo útil.

3. Si la siguiente instrucción al salto se anula sólo si se toma el salto, el programa se puede dejar tal y como está, ya que sólo se
ejecutará cuando se termine el bucle.

4. Por último, si la siguiente instrucción al salto se anula sólo si no se salta, ocurre igual que en el caso 2, el programa podría fallar si
dicha instrucción afecta a los registros que se usan en el bucle. Pero en este ejemplo concreto el programa funcionaría
correctamente si el bucle itera más de una vez, ya que se fijaría en r5 el valor del puntero donde empieza la matriz c en todas las
iteraciones menos en la última, por lo que en el almacenamiento se accedería a la dirección correcta. En este caso, también sería
conveniente modificar el programa para ejecutar la instrucción siguiente al salta una sola vez tras la última iteración y aprovechar
el slot del salto para realizar algún cálculo útil. B) La Error! Reference source not found. muestran las modificaciones
que serían necesarias para optimizar el programa en cada caso. Cualquiera de las soluciones de los casos 2 y 4 son
intercambiables para ambos casos.

SE ANULA SIEMPRE NO SE ANULA NUNCA SE ANULA SI SE SALTA SE ANULA SI NO SE SALTA


ld f1, b ld f1, b ld f1, b ld f1, b
add r1, r0, a add r1, r0, a add r1, r0, a add r1, r0, a
ld r2, N ld r2, N ld r2, N ld r2, N
loop: ld f2, 0(r1) loop: ld f2, 0(r1) loop: ld f2, 0(r1) ld f2, 0(r1)
ld f3, 4(r1) ld f3, 4(r1) ld f3, 4(r1) loop: ld f3, 4(r1)
addf f4, f3, f2 addf f4, f3, f2 addf f4, f3, f2 addf f4, f3, f2
mulf f4, f4, f1 mulf f4, f4, f1 mulf f4, f4, f1 mulf f4, f4, f1
sf 8(r1), f4 sf 8(r1), f4 sf 8(r1), f4 sf 8(r1), f4
add r1, r1, #4 sub r2, r2, #1 add r1, r1, #4 add r1, r1, #4
sub r2, r2, #1 bnez r2, loop sub r2, r2, #1 sub r2, r2, #1
bnez r2, loop add r1, r1, #4 bnez r2, loop bnez r2, loop
nop add r5, r0, c add r5, r0, c ld f2, 0(r1)
add r5, r0, c sf 0(r5), f4 sf 0(r5), f4 add r5, r0, c
sf 0(r5), f4 sf 0(r5), f4
9. Una función F se va a implementar en un cauce con 5 etapas S1, S2, S3, S4, S5 de forma que visita las etapas según la secuencia:
S1 S5 S1 S4 S3 S2 S1 S4. Obtenga la ganancia en velocidad con respecto a la ejecución sin cauce para 200 operaciones, teniendo en
cuenta que sin cauce la función requiere un tiempo de 16 ns y que las etapas del cauce suponen unos tiempos de ejecución de 4 ns para
S1, S4 y S5, 5 ns para S2, y 3 ns para S3 (incluyendo los retardos de los registros de acoplo). ¿Cuál es la productividad en función del
número de operaciones? Determine los valores de la productividad máxima y la ganancia máxima

Con ayuda de la Tabla 1, podemos obtener sus latencias prohibidas F = {2, 4, 6}, y su vector de colisiones C = (101010):
53
MLM   4 ciclos
2

ETAPA 1 2 3 4 5 6 7 8

S1 X X X
S2 X
S3 X
S4 X X
S5 X

Tabla 1. Tabla de reservas del cauce del problema 0.

7+
7+
7+ 101010
3
7+ 5 1

5
101111 101011 111111

3 5

Figura 2. Diagrama de estados del cauce del problema 0.

t  max t1 , t2 , t3 , t4 , t5   d  max 3,4,5  5 ns

Tseg n   k  n  1  MLM   t  8  n  1  4  5  20n  1 ns

En cuanto al circuito original, el tiempo de operación para n operaciones sería: Torig n   n  T  16n ns

Torig n 
S n  
16n 4n
Por tanto, la ganancia en velocidad S(n) del cauce será:  
Tseg n  20n  1 5n  1

4  200
La ganancia obtenida para 200 operaciones : S 200   0.799
5200  1

n  109
W n 
n n
La productividad :  operacione s/ns  operacione s/s
Tseg n 20n  1 20n  1

Por último, la ganancia y la productividad máximas del cauce se obtienen aplicando el límite cuando n → ∞ a la ganancia y a la productividad
respectivamente:

S max  lim S n   lim


4n 4

n  n   5n  1 5
n  10 9
Wmax  lim W n   lim  50  106 operacione s/s
n  n   20n  1
11. Las cuatro etapas de un cauce multifuncional, S1, S2, S3 y S4, se utilizan por las instrucciones del tipo A de la forma
S1 S2 S1 S3 S1 S4 S1 y por las instrucciones del tipo B de la forma S1 S4 S1 S3 S1 S2 S1. Escriba las matrices de colisiones
cruzadas y determine cuál es la productividad máxima del cauce para una secuencia de instrucciones del tipo A (es decir A,
A, A,…) teniendo en cuenta que la frecuencia de reloj es de 500 MHz.

Solución
12. Se pretende utilizar un cauce con cuatro etapas, A, B, C, D, para aumentar el rendimiento en la ejecución de una unidad
funcional F. Las etapas se pueden utilizar según una de las dos secuencias S1 y S2 siguientes:

S1: ABACACABD
S2: ADBCCABD

Si la duración de cada etapa (incluyendo el registro de acoplo) es de 50ns, y la operación que implementa la unidad funcional F sin
pipeline tarda 350ns en ejecutarse ¿Cuál de las dos posibilidades es mejor?
13. Se han encontrado dos posibles alternativas para la ejecución de una función F en un cauce con 4 etapas S1, S2, S3, S4.
La alternativa 1 visita las etapas según la secuencia S1 S3 S1 S3 S2 S4 S4, y la alternativa 2 en el orden S1 S2 S3 S2 S3 S4 S2.

a) ¿Cuál de las dos alternativas permite ejecutar un número mayor de funciones por unidad de tiempo? Demuestre
razonadamente su respuesta.

b) Obtenga además la ganancia en velocidad que ofrecen cada una de las alternativas con respecto a su ejecución sin
cauce para 1000 operaciones, teniendo en cuenta que sin cauce la función requiere un tiempo de 15 ns; que las etapas
del cauce suponen unos tiempos de ejecución de: 4ns para S1, 4 ns para S2, 3 ns S3 y 4 ns para S4; y que los registros
introducen retardos de 0.1 ns.

Solución
A partir de estas tablas se pueden obtener las latencias prohibidas y los vectores de colisiones de los dos cauces:

 F1 = {1, 2}, C1 = (11)

 F2 = {2, 3, 5}, C2 = (10110)

ETAPA 1 2 3 4 5 6 7
S1 X X
S2 X
S3 X X
S4 X X

Tabla 2. Tabla de reservas para la primera alternativa del cauce del problema 13.

ETAPA 1 2 3 4 5 6 7
S1 X
S2 X X X
S3 X X
S4 X

Tabla 3. Tabla de reservas para la segunda alternativa del cauce del problema 13.

11
MLM 1  3 3
Para determinar qué alternativa tiene la máxima productividad. 1 6
MLM 2   3.5
2

Figura 3. Diagrama de estados para la primera alternativa del cauce del problema 13.

1011
1 4

6 6
1111 1011

Figura 4. Diagrama de estados para la primera alternativa del cauce del problema 13.

Una vez calculadas las MLM de los dos cauces, sus tiempos de ejecución se calculan mediante:

Tseg1 n   k1  n  1  MLM 1   t  7  n  1  3  t


Tseg 2 n   k 2  n  1  MLM 2   t  7  n  1  3.5  t
6. La Tabla 4 muestra la tabla de reservas de un cauce multifuncional. ¿Cuál es el tiempo mínimo (en ciclos) que tardaría en
ejecutarse la secuencia de seis instrucciones A B C B A C si se utiliza una estrategia de tipo avaricioso?

ETAPA 1 2 3 4

S1 A, C B, C
S2 A, B, C A A
S3 B C

Tabla 4. Tabla de reservas para el problema 6.

Solución
A partir de la tabla de reservas del enunciado se pueden obtener las latencias prohibidas del cauce:

 FAA = {1, 2}, FBA = {1, 2}, FCA = {1, 2}

 FAB = {2}, FBB = {}, FCB = {2}

 FAC = {2}, FBC = {2}, FCC = {2}

y las matrices de colisiones para las tres operaciones:

11  10  10 
     
M A  11, M B   00 , M C  10 
11  10  10 
     
Siguiendo una planificación avariciosa del cauce, se pasarían por los estados que muestra la Figura 5, por lo que el tiempo total de ejecución de la
secuencia sería de 16 ciclos, como si indica en el diagrama de tiempos de la Figura 6.

1 1
A3
1 1
1 0
C3
B1

B3
1 1 1
C1
0 0 1
1 0 1

Figura 5. Diagrama de estados para el cauce del problema 6.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
A
B
C
B
A
C

Figura 6. Traza de la ejecución de la secuencia de instrucciones del problema 6.


9. Se tiene un cauce multifuncional con 4 etapas, S1, S2, S3, S4, que puede ejecutar dos tipos de operaciones, X, e Y. Las operaciones
del tipo X recorren el cauce según la secuencia S2 S4 S3 S1 S1 S2, mientras que las de tipo Y lo hacen en el orden S1 S2 S1 S2 S3 S4.
Si el bucle interno de un programa realiza intensivamente la secuencia de operaciones X Y Y X X Y Y Y, ¿cuánto tiempo tardaría en
ejecutarse el cuerpo del bucle si la frecuencia de reloj es de 1 GHz?, ¿Cuál es la productividad máxima del cauce para esa
secuencia?Solución

Para calcular la productividad máxima para esta secuencia tenemos que tener en cuenta que la siguiente iteración:

TLI  n  1  MLM 28  n  1  27
T n     27n  1 ns
F 109
Y la productividad máxima:

n  109
Wmax  lim W n   lim
n
 lim  37.04  106 iteracione s/s
n  n   T n  n   28  n  1  27 
2. Un procesador segmentado tiene 5 etapas S1, S2, S3, S4, S5 y todas tardan un ciclo excepto la etapa S3 (etapa de ejecución)
que, según las instrucciones puede tardar 2 o 3 ciclos. ¿Cuál es la velocidad pico de ese procesador si funciona a 500 MHz?
¿Qué mejora podría implementar para mejorar esa velocidad pico? ¿Qué valor alcanzaría entonces?

Solución
Teniendo en cuenta que una etapa dura dos ciclos para un tipo de instrucciones y tres ciclos para otro tipo, en el mejor de los casos, si todas las
instrucciones del programa son de aquellas en las que la etapa S3 duran dos ciclos, se puede terminar una instrucción cada dos ciclos.

Por tanto, la velocidad pico se puede estima a partir de:

F 500  106
Rpico    250  106 instruccio nes/s
CPI 2
 FAA = {1}, FBA = {1}

 FAB = {1, 2}, FBB = {1, 2}

ETAPA 1 2 3 4 5 6 7
S1 A, B
S2 A, B
S3 A, B A, B B
S4 A B
S5 A B

Tabla 5. Tabla de reservas para cauce del problema 2.

A2+ B2 B3+

0 1
1 1

A3

Figura 7. Diagrama de estados para el cauce del problema 2.

A) velocidad pico

n F 500  106
Wmax  lim W n   lim
n F
 lim    250  106 instruccio nes/s
n  n   T n  n   k  n  1  MLM  MLM 2

B) Para mejorar la velocidad del procesador, una posible mejora consiste en añadir otras dos etapas S3 que puedan funcionar simultáneamente.

S3

S1 S2 S3 S4 S5

S3

Figura 8. Primera alternativa para la optimización del cauce del problema 2.

C) Con estas modificaciones, el tiempo de latencia inicial de cualquier instrucción sería de 7 ciclos, y cada ciclo terminaría de ejecutarse una
instrucción. De esta forma, la velocidad pico sería:

F 500  106
Rpico    500  106 instruccio nes/s
CPI 1
10.La Tabla 6 muestra la tabla de reservas de un sumador segmentado con cuatro etapas S1, S2, S3, S4. Indique cuál es la
productividad máxima de este cauce si se utiliza un reloj con una frecuencia de 2 GHz. ¿A partir de qué número de sumas
segmentadas consecutivas se alcanza el 90% de la productividad máxima? ¿Qué cambios haría en la etapa S3 para mejorar el
rendimiento del cauce?

ETAPA 1 2 3 4 5

S1 X X
S2 X
S3 X X
S4 X

Tabla 6. Tabla de reservas para cauce del problema 10.

Solución
latencias prohibidas del cauce es F = {1, 4}, su vector de colisiones es C = (1001). MLM = 2.5.
A) La productividad del cauce es:

n F n  2  109
W n  
n 8n
    108 operacione s/s
T n  TLI  n  1  MLM  5  n  1  2.5 n  1

Por tanto, la productividad máxima es:

Wmax  lim W n   lim


8n
 108  8  108 operacione s/s
n  n  n  1

3,

100

3, 5+ 2

101

Figura 9. Diagrama de estados para el cauce del problema 11.

Para determinar el valor de n con el que se alcanza el 90% de la productividad máxima se despeja n de la igualdad:


0.9  Wmax  0.9  8  108   8n
n 1
 108

obteniéndose n = 9.

B) Para mejorar las prestaciones del cauce, se podría segmentar la etapa S3 en dos nuevas etapas de la mitad de duración,

lugar de 4 se tendrían 5 etapas y la única latencia prohibida sería F = {4}. Si se hace el diagrama de estados partiendo de C = (1000) se
observa que la mínima latencia media que se obtiene en este caso es menor que 2.5.

ETAPA 1 2 3 4 5

S1 X X
S2 X
S31 X
S32 X
S4 X

Tabla 7. Tabla de reservas para cauce optimizado del problema 10.


8. La operación de multiplicación de números en punto flotante en un determinado procesador tiene una latencia de 25ns. Tras
aplicar una serie de benchmarks se ha observado que esta operación se utiliza en un número muy significativo de ocasiones, con lo que
el equipo de arquitectos se ha planteado desarrollar una implementación de multiplicación segmentada de 4 etapas que siga la siguiente
secuencia de operación: S1 S2 S3 S1 S2 S4 S4 S3. Si la latencia de las etapas S1, S2, S3, S4 son de 6ns, 5ns, 4ns, 5ns respectivamente y
los registros de acoplo entre las etapas necesitan 1ns para cargarse ¿Cuál es la ganancia y la productividad máxima que se puede obtener
con esta nueva implementación?
sus productividades:

W1 n  
n n
 operacione s/s
Tseg1 n  7  n  1  3  t
W2 n  
n n
 operacione s/s
Tseg 2 n  7  n  1  3.5  t

y sus productividades máximas:

Wmax 1  lim W1 n   lim


n 1 1
  operacione s/s
n  k1  n  1  MLM 1   t MLM 1  t 3  t
n

 lim W2 n   lim
n 1 1
Wmax 2   operacione s/s
n  n   k  n  1  MLM   t MLM 2  t 3.5  t
2 2

De estas expresiones se puede concluir que la productividad de la primera alternativa es mayor que la de la segunda.

Para responder a la segunda cuestión, primero debemos calcular el tiempo de ejecución secuencial para n operaciones:

Torig n   n  15  15n ns
y el tiempo de ciclo de los circuitos segmentados:

t  max t1, t2 , t3 , t4  d  max 4,4,3,4 0.1  4.1 ns


Una vez calculados estos dos tiempos, la ganancia en velocidad de cada alternativa se define como:

Torig n 
S1 n  
15n 15n
 
Tseg1 n  7  n  1  3  4.1 12.3n  16.4
Torig n 
S 2 n  
15n 15n
 
Tseg 2 n  7  n  1  3.5  4.1 14.35n  1
Así que para obtener la ganancia obtenida al procesar 1000 operaciones, sólo hay que sustituir n = 1000 en las ecuaciones anteriores:

Torig 1000
S1 1000   1.22
Tseg1 1000
Torig 1000
S 2 1000   1.04
Tseg 2 1000

Вам также может понравиться