ВУЗ:
Составители:
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
- …
- следующая ›
- последняя »