Рубрики

ВОРОТА | GATE CS 2011 | Вопрос 28

На нетранслируемом последовательном процессоре программный сегмент, который является частью подпрограммы обработки прерываний, передается для передачи 500 байтов из устройства ввода-вывода в память.


              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 используется вместо ввода-вывода на основе программ, управляемых прерываниями?
(А) 3.4
(Б) 4.4
(С) 5.1
(D) 6,7

Ответ: (А)
Объяснение:

 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

Тест на этот вопрос

Рекомендуемые посты:

ВОРОТА | GATE CS 2011 | Вопрос 28

0.00 (0%) 0 votes