• Portada
    • Recientes
    • Usuarios
    • Registrarse
    • Conectarse

    Necesito ayuda

    Programado Fijo Cerrado Movido
    Procesadores, placas base y memorias
    3
    3
    458
    Cargando más mensajes
    • Más antiguo a más nuevo
    • Más nuevo a más antiguo
    • Mayor número de Votos
    Responder
    • Responder como tema
    Accede para responder
    Este tema ha sido borrado. Solo los usuarios que tengan privilegios de administración de temas pueden verlo.
    • D
      danadaniel
      Última edición por

      Hola buenos días.

      En la facultad me han realizado la siguiente pregunta y no me doy cuenta la respuesta.

      " Out of order engine (motor de ejecución fuera de orden): los recursos que están siendo utilizados en una ejecución estén ocupados el mayor tiempo posible y en todo momento, esto es, cuando una instrucción se retrasa en ser ejecutada si las que le siguen no están dependiendo de esta, se ejecutan. Cuando estas últimas terminen de ejecutarse la que estaba retrasada ya tiene los operadnos que la retrasaban, se ejecuta y todo sigue de manera normal y fluida. Luego se vuelven a ordenar de modo original.
      Este bloque permite ejecutar las instrucciones que no dependan unas de otras en el tiempo en que se encuentren listas y con los operandos necesario para ser ejecutadas."

      ¿Se les ocurre un ejemplo de dos instrucciones (en Assembler) que sean independientes como para poder ejecutarse fuera de orden? ¿Y un par que no lo sean?

      Si pueden tirarme una ayuda, muchas gracias.

      1 Respuesta Última respuesta Responder Citar 0
      • NOLDORN
        NOLDOR
        Última edición por

        El tema no es que instrucción, sino el orden. Por ejemplo, si tu tienes un add con dos registros, pero el valor no va a estar disponible, y en las que siguen el resultado de esa operación no se utiliza para nada, pues el procesador continua la ejecución de las instrucciones en el pipe.

        Esto no es del todo asi, pero para que te hagas una idea

        cdbularC 1 Respuesta Última respuesta Responder Citar 0
        • cdbularC
          cdbular @NOLDOR
          Última edición por

          Pues dos instrucciones independientes es facil, dos operaciones aritmeticas cuyos operandos no presenten dependencias. En general dos operaciones cuyos operandos no presenten dependencias pueden ser ejecutadas fuera de orden.
          Por ejemplo los dos siguientes no presenten dependencia:
          ADD A, B, B ;Esto es sumo a y b lo guardo en B
          ADD A, C, C ; Sumo A y C y lo guardo en C.

          Dos instrucciones que presenten dependencia como por ejemplo:
          1. LD **, A ; Cargo desde la localidad de memoria a la que apunta B y lo guardo en A
          2. ADD A, C, A; Sumo A con C y ,lo almaceno en A

          Las instrucciones anteriores no se pueden ejecutar fuera de orden, pues la instruccion 2 debe esperar a que el valor de la instruccion 1 este listo y que ademas avanace en el pipeline lo suficiente como para que el valor sea escrito en en el registro A y no se presente un hazard, aunque el hardware es el que se encarga de evitar estos hazards en las CPUs actuales.**

          1 Respuesta Última respuesta Responder Citar 0
          • 1 / 1
          • First post
            Last post

          Foreros conectados [Conectados hoy]

          0 usuarios activos (0 miembros e 0 invitados).
          febesin, pAtO,

          Estadísticas de Hardlimit

          Los hardlimitianos han creado un total de 543.3k posts en 62.8k hilos.
          Somos un total de 34.8k miembros registrados.
          mathiasberg ha sido nuestro último fichaje.