Принципы конвейерной организации в вычислительных системах . Извозчикова В.В. - 9 стр.

UptoLike

Составители: 

9
2 Лабораторная работа 2
2.1 Исследование конфликтов при работе конвейера
2.1.1 Основные вопросы теории
Одним из основных способов построения высокопроизводительных систем,
как известно, является распараллеливание процессов, которое используется в кон-
вейерной обработке. Типичную арифметическую команду, как предлагалось в ла-
бораторной работе 1, можно разделить на следующие микрооперации:
1) выборка команд из памяти (по адресу в счётчике команд);
2) декодирование кода операции;
3) выборка операндов из регистров;
4) выполнение операции в АЛУ;
5) запоминание результата в регистре.
Если в системе имеется пять обрабатывающих устройств, каждое из которых
обеспечивает выполнение одной из перечисленных микроопераций, то имеется
возможность реализовать конвейерную обработку. Известно, что наиболее эффек-
тивным является режим работы конвейера, при котором:
- все микрокоманды имеют одинаковую длительность;
- обрабатывающие устройства располагаются в порядке, соответствующем
порядку следования микрокоманд.
Если одно из указанных условий нарушается, то некоторые устройства бу-
дут простаивать, а эффективность снизится. Ситуации, которые препятствуют
очередной команде из потока выполняться в предназначенном для нее такте, на-
зываются конфликтами в конвейере. Очевидно, что конфликты снижают произво-
дительность конвейера. Существует три типа конфликтов:
- структурные, которые возникают из-за занятости отдельных ресурсов (ко-
гда аппаратные средства не могут поддерживать выполнение команд в режиме с
совмещением);
- конфликты по данным, появляющиеся, когда выполнение одной команды
зависит от результата предыдущей;
- конфликты по управлению, которые возникают при наличии команд пере-
ходов и других команд, изменяющих значение счетчика команд.
Все конфликты приводят к необходимости приостановки выполнения ко-
манд (pipeline stall). Обычно в простейших конвейерах, если приостанавливается
какая-либо команда, то все следующие за ней команды также приостанавливают-
ся. Эта ситуация называется "конвейерным пузырем" (pipeline bubble). Пузырь
проходит по конвейеру, не выполняя никакой работы.
Примером структурных конфликтов являются конфликты при одновремен-
ном обращении к памяти за очередной командой и данными; при необходимости
выполнения записей в два или более регистров регистрового файла в течение од-
     2 Лабораторная работа №2

     2.1 Исследование конфликтов при работе конвейера
     2.1.1 Основные вопросы теории

      Одним из основных способов построения высокопроизводительных систем,
как известно, является распараллеливание процессов, которое используется в кон-
вейерной обработке. Типичную арифметическую команду, как предлагалось в ла-
бораторной работе 1, можно разделить на следующие микрооперации:
      1) выборка команд из памяти (по адресу в счётчике команд);
      2) декодирование кода операции;
      3) выборка операндов из регистров;
      4) выполнение операции в АЛУ;
      5) запоминание результата в регистре.
     Если в системе имеется пять обрабатывающих устройств, каждое из которых
обеспечивает выполнение одной из перечисленных микроопераций, то имеется
возможность реализовать конвейерную обработку. Известно, что наиболее эффек-
тивным является режим работы конвейера, при котором:
      - все микрокоманды имеют одинаковую длительность;
      - обрабатывающие устройства располагаются в порядке, соответствующем
порядку следования микрокоманд.
      Если одно из указанных условий нарушается, то некоторые устройства бу-
дут простаивать, а эффективность снизится. Ситуации, которые препятствуют
очередной команде из потока выполняться в предназначенном для нее такте, на-
зываются конфликтами в конвейере. Очевидно, что конфликты снижают произво-
дительность конвейера. Существует три типа конфликтов:
      - структурные, которые возникают из-за занятости отдельных ресурсов (ко-
гда аппаратные средства не могут поддерживать выполнение команд в режиме с
совмещением);
      - конфликты по данным, появляющиеся, когда выполнение одной команды
зависит от результата предыдущей;
      - конфликты по управлению, которые возникают при наличии команд пере-
ходов и других команд, изменяющих значение счетчика команд.
      Все конфликты приводят к необходимости приостановки выполнения ко-
манд (pipeline stall). Обычно в простейших конвейерах, если приостанавливается
какая-либо команда, то все следующие за ней команды также приостанавливают-
ся. Эта ситуация называется "конвейерным пузырем" (pipeline bubble). Пузырь
проходит по конвейеру, не выполняя никакой работы.
      Примером структурных конфликтов являются конфликты при одновремен-
ном обращении к памяти за очередной командой и данными; при необходимости
выполнения записей в два или более регистров регистрового файла в течение од-

                                                                              9