Почему сказано, что «чем длиннее конвейер, тем выше тактовая частота процессора» [дубликат]


0

Недавно я изучал технологию Hyper-Threading в Pentium 4. Число этапов конвейера в P4 велико, и говорят, что это увеличит скорость тактовой частоты. Как это возможно?

Мой справочный материал

Ответы:


3

Чтобы ответить на этот вопрос, нам нужно понять несколько вещей об базовой цифровой электронике.

Давайте начнем с рассмотрения типичного конвейера.

введите описание изображения здесь

Как мы видим, каждый этап конвейера сопровождается регистром хранения (зелеными прямоугольниками), который содержит выходные данные каждого этапа. Теперь каждый этап конвейера состоит из комбинационной схемы. Комбинационные схемы в основном представляют собой комбинацию различных логических элементов, таких как NAND, NOR и т. Д. Каждый из этих логических элементов имеет некоторую задержку, т. Е. Когда вы вводите какой-либо вход, для его вывода требуется некоторое время (от нескольких наносекунд до пикосекунд). Таким образом, максимальная задержка каждой стадии зависит от самой длинной последовательности логических элементов, присутствующих на этой стадии.

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

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


но если у меня есть типичные 5 этапов, которые длятся несколько пс (скажем, самый высокий из них - 300ps), и я делю эти этапы до точки, каждая из которых длится 1ps, почему частота увеличивается? Потому что мне нужно больше тактов, чтобы выполнить то же самое?
Анжеликсус

0

немного о нем, чтобы написать, чтобы понять, почему разные процессоры на разных тактовых частотах работают по-разному, позвольте мне рассказать вам, как процессор обрабатывает инструкции.

С сайта технологий

Процессор обрабатывает инструкции в сборочном режиме, при этом разные инструкции существуют на разных этапах выполнения по мере их продвижения по линии. Например, каждая инструкция в исходном Pentium проходит через следующий пятиступенчатый конвейер:

Prefetch / Fetch: инструкции извлекаются из кэша команд и выравниваются для декодирования. Decode1: инструкции декодируются во внутренний формат инструкции Pentium. Прогнозирование ветвей также имеет место на этом этапе. Decode2: то же, что и выше. Кроме того, адресные вычисления происходят на этом этапе. Выполнить: целочисленное оборудование выполняет инструкцию. Обратная запись: результаты вычислений записываются обратно в регистровый файл. Инструкция входит в конвейер на этапе 1 и покидает его на этапе 5. Поскольку поток инструкций, который поступает во внешний интерфейс ЦП, представляет собой упорядоченную последовательность команд, которые должны выполняться одна за другой, имеет смысл их кормить в трубопровод один за другим. Когда конвейер заполнен, на каждом этапе есть инструкция.

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

Однако большинство современных процессоров делят свои конвейеры на множество более мелких этапов, чем Pentium. Последующие версии Pentium 4 содержали около 21 этапа в своих конвейерах. Этот 21-этапный конвейер выполнил те же основные шаги (с некоторыми важными дополнениями для переупорядочения команд), что и конвейер Pentium выше, но он разбил каждый этап на множество маленьких этапов. Поскольку каждый этап конвейера был меньше и занимал меньше времени, тактовые циклы Pentium 4 были намного короче, а его тактовая частота намного выше.

Короче говоря, Pentium 4 потребовал гораздо больше тактов, чтобы выполнить тот же объем работы, что и оригинальный Pentium, поэтому его тактовая частота была намного выше для эквивалентного объема работы. Это одна из основных причин, по которой нет смысла сравнивать тактовые частоты для разных архитектур и семейств процессоров: объем работы, выполняемой за такт, отличается для каждой архитектуры, поэтому взаимосвязь между тактовой скоростью и производительностью (измеряется в инструкциях в секунду) различна.

Пример реального мира из квантовой нити :

Давайте возьмем ОЧЕНЬ простой процессор. Это просто программируемый калькулятор - доступны инструкции сложения a, b, c и вычитания a, b, c. (a, b, c - числа в памяти. нет способа загрузить эти числа из констант). Одним из способов сделать это было бы сделать следующее все за один такт:

  1. прочитайте инструкцию и выясните, что мы будем делать
  2. читать ячейку памяти
  3. читать ячейку памяти б
  4. выполнить сложение или вычитание
  5. записать результат в местоположение c

При такой настройке IPC равен ровно 1, потому что одна инструкция занимает один (ОЧЕНЬ длинный) тактовый цикл. Теперь давайте улучшим этот дизайн. У нас будет 5 тактов на инструкцию, и каждая из них будет выполнять одну из 5 вещей, описанных выше. Итак, в цикле 1 мы решаем, что делать, в цикле 2 мы читаем a, в цикле 3 мы читаем b и так далее. Обратите внимание, что IPC будет 1/5. Вы должны помнить, что в идеале каждый из этих шагов занимает 1/5 времени, поэтому конечный результат - это ОДНОВРЕМЕННАЯ производительность.

Более продвинутая реализация представляет собой конвейерный процессор - многоцикловый, как описано выше, но мы делаем одновременно несколько вещей: 1. читаем инструкцию i 2. читаем a (для инструкции i) и читаем инструкцию ii 3. читаем b ( для инструкции i), a (для инструкции ii) и инструкции iii 4. выполнить операцию для инструкции i, прочитать b для инструкции ii, прочитать a для инструкции iii и прочитать инструкцию iv 5. написать c для инструкции i, выполнить операцию для ii, читайте b для iii, читайте a для iv и читайте инструкцию v 6. сохраняйте c для ii, оперируйте для iii, читайте b для iv, читайте a для v и читайте vi

(обратите внимание, что для этого требуется способность делать 3 или 4 обращения к памяти за цикл, чего у меня не было в других 2, но для понимания концепций это можно игнорировать)

Картинка действительно помогла бы, но у меня нет ничего лишнего. Чтобы увидеть, как это выполняется, обратите внимание, что данная инструкция занимает 5 циклов от начала до конца, но в любое время обрабатывается несколько инструкций. Кроме того, каждый цикл завершается одной инструкцией (ну, начиная с 5-го цикла и далее). Таким образом, IPC равен 1, хотя каждая отдельная инструкция занимает несколько циклов, а фактическая производительность машины в 5 раз выше производительности оригинала, поскольку тактовая частота в 5 раз выше.

Теперь современный процессор НАМНОГО более продвинут, чем этот - множество конвейеров работают над несколькими инструкциями, инструкции выполняются не по порядку и т. Д., Поэтому вы не можете просто выполнить простой анализ, подобный этому, чтобы увидеть, как будет работать Athlon. против Р4. В целом, более длинный конвейер позволяет вам делать меньше на каждом этапе, чтобы вы могли быстрее планировать проект. 20-ступенчатый конвейер P4 позволяет ему работать на частоте до 3 ГГц, в то время как более короткий конвейер Athlon приводит к увеличению работы за такт и, следовательно, к снижению максимальной тактовой частоты.

Если вы искали информацию об оборудовании, найдите причину здесь

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.