PUERTA | PUERTA CS 2011 | Pregunta 28

En un procesador secuencial no segmentado, se proporciona un segmento de programa, que forma parte de la rutina de servicio de interrupción, para transferir 500 bytes desde un dispositivo de E/S a la memoria.


              Initialize the address register
              Initialize the count to 500
        LOOP: Load a byte from device
              Store in memory at address given by address register
              Increment the address register
              Decrement the count
              If count != 0 go to LOOP 

Suponga que cada declaración en este programa es equivalente a una instrucción de máquina que toma un ciclo de reloj para ejecutarse si es una instrucción sin carga/almacenamiento. Las instrucciones de carga y almacenamiento tardan dos ciclos de reloj en ejecutarse.

El diseñador del sistema también tiene un enfoque alternativo de usar el controlador DMA para implementar la misma transferencia. El controlador DMA requiere 20 ciclos de reloj para la inicialización y otros gastos generales. Cada ciclo de transferencia de DMA toma dos ciclos de reloj para transferir un byte de datos del dispositivo a la memoria.
¿Cuál es la aceleración aproximada cuando se usa el diseño basado en el controlador DMA en lugar de la entrada-salida basada en el programa controlado por interrupción?
(A) 3.4
(B) 4.4
(C) 5.1
(D) 6.7

Respuesta: (A)
Explicación:

 Explanation:
                        STATEMENT                                           CLOCK CYCLE(S) NEEDED
              Initialize the address register                                        1
              Initialize the count to 500                                            1
        LOOP: Load a byte from device                                                2
              Store in memory at address given by address register                   2
              Increment the address register                                         1
              Decrement the count                                                    1
              If count != 0 go to LOOP                                               1

        Interrrupt driven transfer time = 1+1+500×(2+2+1+1+1) = 3502
        DMA based transfer time = 20+500*2 = 1020
        Speedup = 3502/1020 ≈ 3.4

Source: http://clweb.csa.iisc.ernet.in/rahulsharma/gate2011key.html

Cuestionario de esta pregunta

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *