Está en la página 1de 6

El algoritmo de

Tomasulo

Integrantes:
Ravello Sanchez, Fabriccio Alessandro
Fernandez Cuadros. Alessandro Fabrizio
Torres Teodoro, Mercedes Beatriz
Ashcalla Urbana, Luz Estefani
Solano Miranda, Juan Felipe
Autor del algoritmo:
Robert Tomasulo fue un científico de la computación y el inventor del algoritmo
Tomasulo, que contribuye en el diseño del IBM 360, es decir uno de los
incursores en el diseño de las primeros ordenadores comerciales. Además,
desarrollando una técnica para acelerar las operaciones de coma flotante, que es
una forma de notación científica usada en las computadoras.Hoy en día casi
todas las computadores llevan incorporadas alguna variante de este algoritmo.
De que trata este algoritmo? (1969)
El algoritmo tomasulo es un algoritmo de planificación dinámica, ya que está
diseñado para permitir que el ordenador ejecute instrucciones fuera de orden.
Este algoritmo permite lanzar instrucciones WAR y WAW sin detener la ejecución,
del mismo modo utiliza un bus de datos común para enviar los valores
calculados a todos los puntos de recepción, esto permite una mejora en la
ejecución paralela en situaciones.

WAW: Dependencia de salida

WAR: Antidependencia
;
; Código ensamblador correspondiente a la operación
vectorial Z = a*X + Y
;
.text
C++: .data
; Vector x dadd r1, r0, x
x: .double 1, 2, 3, 4, 5, 6, 7, 8 dadd r2, r0, y
.double 11, 12, 13, 14, 15, 16, 17, 18 dadd r3, r0, z
.double 21, 22, 23, 24, 25, 26, 27, 28 dadd r4, r1, 512
.double 31, 32, 33, 34, 35, 36, 37, 38 l.d f0, a(r0)
.double 41, 42, 43, 44, 45, 46, 47, 48
.double 51, 52, 53, 54, 55, 56, 57, 58
loop:
.double 61, 62, 63, 64, 65, 66, 67, 68 l.d f1, 0(r1) ; Load X
.double 71, 72, 73, 74, 75, 76, 77, 78 l.d f2, 0(r2) ; Load Y
; Vector y mul.d f3, f1, f0 ; a*X
y: .double 100, 100, 100, 100, 100, 100, 100, 100 add.d f4, f2, f3 ; a*X +Y
.double 100, 100, 100, 100, 100, 100, 100, 100 s.d f4, 0(r3) ; Store Z
.double 100, 100, 100, 100, 100, 100, 100, 100
dadd r1, r1, 8
.double 100, 100, 100, 100, 100, 100, 100, 100
.double 100, 100, 100, 100, 100, 100, 100, 100 dadd r2, r2, 8
.double 100, 100, 100, 100, 100, 100, 100, 100 dadd r3, r3, 8
.double 100, 100, 100, 100, 100, 100, 100, 100 dsub r5, r4, r1
.double 100, 100, 100, 100, 100, 100, 100, 100 bnez r5, loop
; Vector z, 64*8 bytes/elem
z: .space 512
trap 0
a: .double 2
Se utiliza para:
Bus de dato común: Conocido también como CDB genera 2 acciones,la primera cualquier unidad
funcional puede acceder a cualquier resultado de una operacion para acceder a los puertos de
lectura de cualquier archivo y el segundo es que distribuyen la detección de peligros y la
ejecución del control.
Orden de instrucción:se emiten secuencialmente de modo que los efectos de una secuencia de
instrucciones y se produzcan en el mismo orden en que se producirían en un procesador en
orden.
Registrar cambio de nombre: Usa el cambio de nombre de registros para realizar una ejecución
correctamente fuera de orden.
Cabe añadir que su mayoría de uso se ve más empleado en el área de arquitectura.
Bibliografía
Petit Martí, S. V., López Rodríguez, P. J., & Sáez Barona, S. (2019). Algoritmo de
Tomasulo.Recuperado de :https://labvirtual.webs.upv.es/mips-ooo-objeto2.htm

También podría gustarte