Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1транспьютеры.pdf
Скачиваний:
44
Добавлен:
10.02.2016
Размер:
322.89 Кб
Скачать

4.1 Конфликты типа RAW (Read After Write): команда j пытается прочитать операнд прежде, чем команда i запишет на это место свой результат. При этом команда j может получить некорректное старое значение операнда.

4.2Конфликты типа WAR (Write After Read): команда j пытается записать результат в приемник, прежде чем он считается оттуда командой i, При этом команда i может получить некорректное новое значение операнда:

4.3Конфликты типа WAW (Write After Write): команда j пытается записать результат в приемник, прежде чем в этот же приемник будет записан результат выполнения команды i, то есть запись заканчивается в неверном порядке, оставляя в приемнике результата значение, записанное командой i:

12. Конвейерная обработка команд. Производительность конвейерной обработки команд.

Оценка производительности идеального конвейера

Поскольку в каждом такте могут выполняться различные стадии обработки команд, длительность такта выбирается исходя из максимального времени выполнения всех стадий. Кроме того, следует учитывать, что для передачи команды с одной стадии обработки на другую

требуется дополнительное время ( t), связанное с записью промежуточных результатов обработки в буферные регистры.

Пусть для выполнения отдельных стадий обработки требуются следующие затраты времени (в некоторых условных единицах):

TIF = 20, TID = 15, TOR = 20, TEX = 25, TWB = 20.

Тогда, предполагая, что дополнительные расходы времени составляют t = 5 единиц, получим время такта:

Оценим время выполнения одной команды и некоторой группы команд при последовательной и конвейерной обработке.

При последовательной обработке время выполнения N команд составит:

Анализ табл. 9.1 п показывает, что при конвейерной обработке после того, как получен результат выполнения первой команды, результат очередной команды появляется в следующем такте работы процессора. Следовательно:

Примеры длительности выполнения некоторого количества команд при последовательной и конвейерной обработке приведены в табл. 9.2.

Очевидно, что при достаточно длительной работе конвейера его быстродействие будет существенно превышать быстродействие, достигаемое при последовательной обработке команд. Это увеличение будет тем больше, чем меньше длительность такта конвейера и чем больше количество выполненных за рассматриваемый период команд. Сокращение длительности такта может достигаться разбиением выполнения команды на большое число этапов, каждый из которых включает в себя относительно простые операции и поэтому будет выполняться за более короткий промежуток времени. Так, если в микропроцессоре Pentium длина конвейера составляла 5 ступеней (при максимальной тактовой частоте 200 МГц), то в процессорах Pentium 4 на ядре Northwood длина конвейера составляла 20 ступеней, а на ядре Prescott она увеличена до 31 ступени при максимальной тактовой частоте 3,8 ГГц.

Таблица 9.2. Оценка эффективности конвейерной обработки

Время

Количество команд

при последовательном выполнении при конвейерном выполнении

1

100

150

2

200

240

10

1000

420

100

10000

3120

Значительное преимущество конвейерной обработки перед последовательной имеет место в идеальном конвейере, в котором отсутствуют конфликты и все команды выполняются друг за другом в установившемся режиме, то есть без перезагрузки конвейера. Наличие конфликтов в конвейере и его перезагрузки снижают реальную производительность конвейера по сравнению с идеальным случаем.

4.4

35.Конвейерная обработка (КО)

КО позаоляет совместить во времени отдельные операции рабочего цикла процессора и яв. Одним из способов организации параллельных процессов выч-ных систем. Для КО рабочий цикл процессора разбивается на отдельные этапы каждый из которых выполняется отдельным автономным устр-вом в составе процессора ЭВМ. Совмещая во времени работу этих устройств можно обеспечить повышение производительности процессора. Основными этапами выполнения команды в раб. Цикле процессора:

--выборка команды (ВК) --дешифрация --||-- (ДК) --выборка операндов (ВО) --исполнение команды (ИК)

Указанные этапы выполняются послед. Во времени [ВК][ДК][ВО][ИК]

В случае обычного процессора в нём в любой заданный момент времени обрабатывается только одна команда, для кот. выполняется последовательность этапов, представленная выше. После выполнения донной команды это повторяется дальше и т. д. Временная диаграмма выполнния команды для обычного процессора имеет вид:(см. рис.).

tпос=tвк+tдк+tво+tис

4tT=tпос - длительность такта (один этап выполняется за один такт) P=1/tпос=1/4tТ (операций / с) производительность

КО позволяет совместить различные этапы когда одна команда выбирается, др. декодируется, для 3-ей выбираются операнды, а 4-ая исполняется. Для реализации такого порядка обработки в составе процессора имеются спец. устр-ва, функционирование во времени к-ых совмещается. Операционное устройство исполняет первую команду, реализуя этап ИК, устр-во ВО обеспечивает этап ВО для 2-ой команды, устр-во декодирования обеспечивает этап ДК для 3-ей команды и устр-во ВК обеспечивает этап для 4-ой команды. В этом случае временная диаграмма исполнения после-сти команд имеет вид:(см. рис.)

Как видно из временной диаграммы, начиная с момента t0 конвейер полностью заполнен и в каждом последующем такте выполняется одна команда программы. Это означает, что время выполнения команды : tконв=tT , а pконв=1/tT (1)

Видно, что pконв> pпост

На самом деле производительность процессора при конвейерной обработке не строго определяется соотношением (1). Это связано с простоями конвейера, к-ые возникают при выполнении команд условного перехода и прерываниях. Наиболее негативное влияние на

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]