ВУЗ:
Составители:
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
Страницы
- « первая
- ‹ предыдущая
- …
- 7
- 8
- 9
- 10
- 11
- …
- следующая ›
- последняя »
