Superscalar Execution of adn chais - Presentation Transcript
Juan Carlos Sarango UTPL ECC 2008
Cadenas a Evaluar
El problema a resolver es la comparación de cadenas para encontrar similitudes y ordenarlas prioritariamente . Para lo cual se diseñara un algoritmo para su resolución y luego de esto se comprobara los resultados de ejecución superescalar utilizando dos y tres pipelines.
A T C T A G A T A T C A A G A T A C C A A G A T A T T T T C C T A C T T T C C A
Algoritmo en Pseudocodigo
inicio
cargar_cadena 1
cargar_cadena 2
cargar_cadena 3
cargar_cadena 4
cargar_cadena 5
prioridades[] //inicialmente en le orden de ingreso
para i = 0 hasta numero_cadenas hacer
para j = 0 hasta limite_cada_cadena hacer
si cadena_cargada[i] es_mas_parecida cadena_cargada[j] hacer
prioridades[i] = i
si_no
prioridades[i] = j
fin_si
fin_para
fin_para
reordenar_cadenas(prioridades)
Algoritmo en Ensamblador
load R1, @1000
load R2, @1002
load R3, @1004
loadR4, @1oo6
load R5, @1008
compare R1,R2
store R1, @1500
compare R1, R3
store R1, @1502
@1000 esta cadena 1 @1002 esta cadena 2 @1004 esta cadena 3 // registros de memoria en donde se encuentran las cadenas @1006 esta cadena 4 @1008 esta cadena 5
compare R1,R4
store R1, @1504
compare R1, R5
store R1, @1506
goto 6
Ejecucion con dos pipelines IF ID OF IF ID OF Load R2, @1002 Load R1, @1000 0 2 4 6 8 10 IF ID OF IF ID OF Load R4, @1006 Load R3, @1004 IF ID OF Load R5, @1008 IF ID OF Compare R1, R2 E IF ID NA Store R1, @1500 WB IF ID OF Compare R1, R3 E IF ID NA store R1, @1502 WB IF ID OF Compare R1, R4 E IF ID NA Store R1, @1504 WB IF ID OF Compare R1, R5 E IF ID NA store R1, @1506 WB IF ID OF Goto 6 E
Ejecucion con tres pipelines IF ID OF IF ID OF Load R2, @1002 Load R1, @1000 0 2 4 6 8 10 IF ID OF IF ID OF Load R4, @1006 Load R3, @1004 IF ID OF Load R5, @1008 IF ID OF Compare R1, R2 E IF ID NA Store R1, @1500 WB IF ID OF Compare R1, R3 E IF ID NA store R1, @1502 WB IF ID OF Compare R1, R4 E IF ID NA Store R1, @1504 WB IF ID OF Compare R1, R5 E IF ID NA store R1, @1506 WB IF ID OF Goto 6 E
Conclusiones
La ejecución con tres pipelines fue mas efectiva ya que se desarrollo en 8 ciclos comparados como los 10 con el uso de dos pipelines
El resultado de los tiempos de ejecución depende directamente de la estructura de las instrucciones escritas en el problema.
0 comments
Post a comment