📜  门| GATE CS 2011 |问题28

📅  最后修改于: 2021-06-28 18:58:04             🧑  作者: Mango

在非流水线顺序处理器上,程序段是中断服务程序的一部分,它的作用是将500个字节从I / O设备传输到内存。

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 

假定该程序中的每个语句等效于机器指令,如果它是非加载/存储指令,则需要一个时钟周期执行。加载存储指令需要两个时钟周期来执行。

该系统的设计者还具有使用DMA控制器来实现相同传输的另一种方法。 DMA控制器需要20个时钟周期来进行初始化和其他开销。每个DMA传输周期需要两个时钟周期才能将一个字节的数据从器件传输到存储器。
当使用基于DMA控制器的设计代替基于中断驱动的程序的输入输出时,近似的加速速度是多少?
(A) 3.4
(B) 4.4
(C) 5.1
(D) 6.7答案: (A)
解释:

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

这个问题的测验