2013-12-20 2 views
0

Я смотрю видео-учебник по конвейерной обработке по адресу link.Почему ускорение уменьшается с увеличением количества этапов трубопровода?

В течение 4:30 инструктор говорит, что с увеличением количества этапов нам также необходимо добавить регистры трубопроводов, что создает накладные расходы, и из-за этого ускорение не может превышать оптимальное значение с увеличением количества этапов ,

Может кто-нибудь прокомментировать это? Я сомневаюсь, что регистр трубопроводов может добавить некоторую задержку в отдельное время цикла, поэтому почему это становится проблемой, когда количество этапов велико по сравнению с несколькими?

Спасибо.

ответ

3

Защелки сами имеют небольшую задержку (они в конце концов «выполняют работу», то есть переключение). Само по себе это создало бы асимптотический подход к фиксированному значению пиковой производительности. Например, начиная с (уже нереалистично) крошечного фактического рабочего времени каждого этапа, равного задержке защелки, удвоение глубины трубопровода (исключая другие ограничения в реальном мире) сократит время цикла до задержки затвора плюс 1/2 задержки защелки (увеличение тактовая частота чуть более 33%), но удвоение глубины трубопровода приведет только к сокращению времени цикла до задержки затвора плюс 1/4 задержки защелки.

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

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

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

Помимо таких физических ограничений, ограничения зависимости, как правило, препятствуют повышению эффективности работы более глубокого трубопровода. Хотя контрольные зависимости (например, оценка состояния ветви) часто могут быть скрыты путем прогнозирования, как Gabe notes in his answer, неверное предсказание ветви может потребовать сброса конвейера. Даже при 99% точности прогноза и одной ветви каждых десяти инструкций (95% и одна ветвь каждые пять команд более вероятны), задержка в разрешении за тысячу ступеней (т. Е. Исключая этапы после разрешения ветвления и предполагая, что цель филиала доступна не позднее направление ветвления) означало бы, что половина производительности принимается неверными предсказаниями отрасли.

Ошибки кэша команд также будут проблемой. Если бы у вас был идеальный прогноз потока управления, можно было бы использовать предварительную выборку, чтобы скрыть задержку. Это фактически становится частью проблемы прогнозирования ветвлений. Также обратите внимание, что увеличение размера кеша для уменьшения частоты промаха (или размера предсказателя ветвления для уменьшения частоты ошибочного предсказания) увеличивает латентность доступа (счетчик конвейера).

Зависимости значений данных сложнее обрабатывать. Если выполнение занимает два цикла, тогда две последовательные инструкции с зависимостью данных не смогут выполнять обратную связь. Хотя теоретическое прогнозирование стоимости теоретически может помочь в некоторых случаях, оно наиболее полезно в относительно ограниченных случаях. Также возможно, что некоторые операции будут width-pipelined (например, добавлять, вычитать, побитовые логические операции и сдвиги влево). Однако такие трюки имеют ограничения.

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

This Google Scholar search содержит более подробные (и технические) показания по этому вопросу.

+1

Архитектура Intel NetBurst (http://en.wikipedia.org/wiki/NetBurst) - интересное тематическое исследование о том, почему длинные трубопроводы не помогают. – Gabe

+0

@Gabe Конечно, «длинный» относительный. MIPS R4000 назывался суперпипелином. NetBurst страдал от более чем очень длинных трубопроводов; Willamette была новаторской в ​​нескольких областях и (я думаю) страдала от поздней диеты. Хотя это частично связано с глубоким трубопроводом, были задействованы другие факторы. Отсутствие важности ноутбуков не помогло его репутации. Увеличение мощности утечки тоже не помогло. Требования RDRAM не помогли в раннем принятии. Для быстрого принятия x86-64 у Prescott, как полагают, меньше пользовательской логики, чем ранее Intel x86. Сложный отказ от сложности! –

+0

Это точно моя точка зрения. Сам трубопровод прекрасен, но вы не можете предсказать достаточное количество ветвей, чтобы постоянно поддерживать 31 этап, а ток утечки не позволял работать на частоте 7 ГГц или около того, чтобы действительно идти быстрее, чем конкурирующие архитектуры. – Gabe

1

Не смотря на часовое видео, я бы сказал, что реальная проблема, когда существует большое количество этапов, заключается в том, что конвейерные стойки хуже. Если у вас есть 14-этапный трубопровод и неверно предсказать ветку, это 14 этапов, которые вы должны заполнить снова, прежде чем выпустить другую инструкцию.

+0

Если вы можете, просто просмотрите время 4:00 - 5:00 видео, спасибо – Jake

+0

Почему стойла хуже? Я не понимаю, почему вы не можете просто очистить трубопровод и начать все сначала - зачем вам заполнять 14 этапов? – StackExploded

Смежные вопросы