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

2256
Nithin Jose

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

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

0

2 ответа на вопрос

3
Ayan

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

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

enter image description here

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

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

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

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

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

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

Процессор обрабатывает инструкции в сборочном режиме, при этом разные инструкции существуют на разных этапах выполнения по мере их продвижения по линии. Например, каждая инструкция на оригинальном 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 и так далее. Обратите внимание, что МПК будет 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 приводит к увеличению работы за такт и, следовательно, к снижению максимальной тактовой частоты.

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

Похожие вопросы