Технологии повышения производительности процессоров

Технологии повышения производительности процессоров

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

a) увеличением тактовой частоты;

b) расширение методов параллельной обработки данных;

c) совершенствование конвейеризации исполнения команд;

d) дублирование вычислительных средств процессора (переименование регистров);

e) предсказание переходов;

f) спекулятивное (опережающее) выполнение операций;

g) динамическое исполнение инструкций.

Второе достигается за счет:

a) иерархической организации памяти;

b) физического приближения буферной (кэш) памяти к вычислительному устройству процессора;

c) повышения тактовой частоты шины данных;

d) расширения разрядности шины данных;

e) совершенствование архитектуры (например, расслоение) основной памяти.

Аппаратура процессора ориентирована на естественный параллелизм вычислений целочисленных выражений и обработки данных в формате с плавающей точкой, привело к появлению процессоров с разнесенной архитектурой. Упрощенная структура такого процессора (рисунок 3.1), состоит из двух связанных подпроцессоров CPU и FPU, каждый из которых управляется собственным потоком команд.

CPU (Central Processing Unit) – предназначен для обработки целочисленных данных и управления всем вычислительным процессом. FPU (Floating Point Unit) – расширяет вычислительные возможности центрального процессора, выполняя арифметические операции над данными представленными в форме с плавающей точкой, вычисляя различные математические функции и т.д.

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

Конвейеризация (pipelining) предполагает разбивку выполнения каждой инструкции на микрооперации. Каждая микрооперация выполняется отдельным блоком конвейера, причем этап исполнение команды выполняется отдельным конвейером, состоящим из 5÷20 ступеней, в зависимости от модели процессора. При выполнении, инструкция продвигается по конвейеру по мере освобождения последующих ступеней. Таким образом, на конвейере одновременно может обрабатываться несколько десятков последовательных инструкций, и производительность процессора можно оценивать темпом выхода выполненных инструкций со всех его конвейеров. Конвейер «классического» процессора Pentium имеет пять ступеней (рисунок 3.2) Конвейеры процессоров с суперконвейерной архитектурой (superpipelined) имеют большее число ступеней, что позволяет упростить каждую из них и, следовательно, сократить время пребывания в них инструкций.

Суперскалярный (superscalar) процессор имеет более одного (Pentium — два) конвейера, способных обрабатывать инструкции параллельно. Pentium является двухпотоковым процессором (имеет два конвейера), Pentium Pro, Pentium 4–мультипотоковые.

Рисунок 3.2 – Конвейер суперскалярнрго процессора

Переименование регистров (register renaming)

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

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

Продвижение данных (data forwarding) подразумевает начало исполнения инструкции до готовности всех операндов. При этом выполняются все возможные действия, и декодированная инструкция с одним операндом помещается в исполнительное устройство, где дожидается готовности второго операнда, выходящего с другого конвейера.

Предсказание переходов (branch prediction) позволяет продолжать выборку и декодирование потока инструкций после выборки инструкции ветвления (условного перехода), не дожидаясь проверки самого условия. Предсказание переходов направляет поток выборки и декодирования по одной из ветвей.

Статический метод предсказания работает считая, что переходы по одним условиям, вероятнее всего, произойдут, а по другим — нет.

Читайте также:  Статусы значками и символами

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

Исполнение по предположению, называемое также спекулятивным (speculative execution), идет дальше — предсказанные после перехода инструкции не только декодируются, но и по возможности исполняются до проверки условия перехода. Если предсказание сбывается, то труд оказывается ненапрасным, если не сбывается — конвейер оказывается недогруженным и простаивает несколько тактов.

Динамическое исполнение (исполнение с изменением последовательности инструкций) свойственное RISC-архитектуре, теперь реализуется и для процессоров х86. При этом изменяется порядок внутренних манипуляций данными, а внешние (шинные) операции ввода/вывода и записи в память выполняются, конечно же, в порядке, предписанном программным кодом. Однако эта способность процессора в наибольшей степени может блокироваться несовершенством программного кода (особенно 16-битных приложений), если он генерируется без учета возможности изменения порядка.

Обработка команды, или цикл процессора, может быть разделена на несколько основных этапов, которые можно назвать микрокомандами. Каждая операция требует для своего выполнения времени, равного такту генератора процессора. Конвейеризация осуществляет многопоточную параллельную обработку команд, так что в каждый момент одна из команд считывается, другая декодируется и т. д., и всего в обработке одновременно находится пять команд. Таким образом, на выходе конвейера на каждом такте процессора появляется результат обработки одной команды (одна команда в один такт). Первая инструкция может считаться выполненной, когда завершат работу все пять микрокоманд. Такая технология обработки команд носит название конвейерной (pipeline) обработки. Каждая часть устройства называется ступенью конвейера, а общее число ступеней — длиной линии конвейера. С ростом числа линий конвейера и увеличением числа ступеней на линии увеличивается пропускная способность процессора при неизменной тактовой частоте.

Процессоры с несколькими линиями конвейера получили название суперскалярных . Pentium — первый суперскалярный процессор Intel. Здесь две линии, что позволяет ему при одинаковых частотах быть вдвое производительней i80486, выполняя сразу две команды за такт. Во многих вычислительных системах наряду с конвейером команд используются конвейеры данных . Сочетание этих двух конвейеров дает возможность достичь очень высокой производительности на определенных классах задач, особенно если используется несколько различных конвейерных процессоров, способных работать одновременно и независимо друг от друга.

Матричные и векторные процессоры. В отличие от скалярных и даже суперскалярных процессоров данные устройства манипулируют массивами данных и предназначены для обработки изображений, матриц и массивов данных. Частным случаем векторного процессора является процессор изображений, который служит для обработки сигналов, поступающих от датчиков—формирователей изображения.

Матричный процессор имеет архитектуру, рассчитанную на обработку числовых массивов, например матриц. Архитектура процессора включает в себя матрицу процессорных элементов, например 64×64, работающих одновременно. Постпроцессор предназначен для реализации некоторых специальных функций, например управления базой данных.

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

SIMD – команды. Г. Флинном в 1966 г. была предложена классификация ЭВМ и вычислительных систем (в основном суперкомпьютеров), основанная на совместном рассмотрении потоков команд и данных. В процессорах таких известных производителей, как Intel и AMD, все более полно используются некоторые из этих архитектурных наработок.

В общем случае архитектура SIMD (ОКМД) предполагает создание структур векторной или матричной обработки. Системы этого типа обычно строятся как однородные, т. е. процессорные элементы, входящие в систему, идентичны, и все они управляются одной и той же последовательностью команд. Однако каждый процессор обрабатывает свой поток данных. Под эту схему хорошо подходят задачи обработки матриц или векторов (массивов), задачи решения систем линейных и нелинейных, алгебраических и дифференциальных уравнений, задачи теории поля и др.

Читайте также:  Калькулятор комплексных чисел в тригонометрической форме

В процессоре Pentium MMX были применены элементы SIMD-команд для обработки мультимедийных данных (видеокодирование, шкалирование, экстраполяция). При этом достигалось общее повышение производительности на 10—20 %, а в программах обработки мультимедиа — до 60 %.

В процессорах Pentium II, III введено 50—70 новых команд, названных Streaming SIMD Extensions (SSE). Процессор содержит "битовые регистры”, позволяющие осуществлять за один такт до четырех операций с плавающей точкой.

В дальнейшем было введено еще 76 SIMD-команд и модернизированы 68 имеющихся команд, что получило название SSE2 (Pentium IV Northwood). Здесь 128-битовые регистры обеспечивали обработку как чисел. Таким образом, SSE2 более гибок, позволяя добиваться роста в производительности. Однако использование нового набора команд требует специальной оптимизации программ. AMD также реализует SSE2 в своем новом семействе процессоров Hammer. Процессор Pentium IV Prescott содержит еще на 13 SSE-команд больше (SSE3).

Динамическое исполнение (Dynamic execution technology). Технология обработки данных в процессоре, обеспечивающая более эффективную работу процессора за счет манипулирования данными, а не простого исполнения списка команд. Динамическое исполнение представляет собой комбинацию трех технологий обработки данных:

  1. множественное предсказание ветвлений;
  2. анализ потока данных;
  3. спекулятивное (по предположению) исполнение.

Множественное предсказание ветвлений. Предсказывает прохождение программы по нескольким ветвям. Процессор может предвидеть разделение потока команд, используя алгоритм множественного предсказания ветвлений. С большой точностью (более 90 %) он предсказывает, в какой области памяти можно найти следующие команды. Это оказывается возможным, поскольку в процессе исполнения команды процессор просматривает программу на несколько шагов вперед. Этот метод позволяет увеличить загруженность процессора.

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

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

Технология Hyper-Threading (HT). Эта архитектура реализует разделение времени на аппаратном уровне, разбивая физический процессор на два логических процессора, каждый из которых использует ресурсы чипа — ядро, кэш-память, шины, исполнительное устройство. Ядро процессора выполняет два процесса одновременно.

Специалисты Intel оценивают повышение эффективности в 30% при использовании на НТ-процессорах многопрограммных ОС и обычных прикладных программ.

Технология 3DNow! Улучшая возможности процессора обращаться с вычислениями с плавающей запятой, 3DNow! технология устранила растушую разницу в производительности процессора и графического акселератора и устранила узкое место в начале графического конвейера. Это очистило путь для быстрорастущей производительности 3D и мультимедиа.

Эти возможности впервые были реализованы в процессорах AMD K6-2 (май 1998 г.), и Intel Pentium III Katmai (первая половина 1999 г.). Технологии 3DNow! используются в широком диапазоне приложений — игры, Web-сайты VRML, автоматизированное проектирование, распознавание речи и программное обеспечение декодирования DVD. Производительность в дальнейшем была повышена за счет использования DirectX 6.0 Microsoft, представленного летом 1998 г. Последующие версии OpenGL API были также оптимизированы для 3DNow!. К концу марта 1999 г. ПЭВМ, основанные на технологии 3DNow!, достигли приблизительно 14 млн систем во всем мире.

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

  1. Новые технологии в архитектуре микропроцессора (ядерность)

Архитектура аппаратных средств

Тема 2.4

Тема 2.4. Технологии повышения производительности процессоров

Системы команд процессора. Регистры процессора: сущность, назначение, типы. Параллелизм вычислений. Конвейеризация вычислений. Суперскаляризация. Матричные и векторные процессоры. Динамическое исполнение. Технология Hyper-Threading. Режимы работы процессора: характеристики реального, защищенного и виртуального реального.

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

Каждая операция требует для своего выполнения времени, равного такту генератора процессора (tick of the internal clock). Отметим, что к длинным операциям (плавающая точка) это не имеет отношения. Все этапы команды задействуются только один раз и всегда в одном и том же порядке – одна за другой. Это, в частности, означает, что если логическая схема первой микрокоманды выполнила свою работу и передала результаты второй, то для выполнения текущей команды она больше не понадобится, и, следовательно, может приступить к выполнению следующей команды.

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

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

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

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

Суперскаляризация

Процессоры с несколькими линиями конвейера получили название суперскалярных. Pentium — первый суперскалярный процессор Intel. Здесь две линии, что позволяет ему при одинаковых частотах быть вдвое производительней i80486, выполняя сразу две инструкции за такт.

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

Операции над вещественными числами (с плавающей запятой)

Сопроцессоры. Для расширения вычислительных возможностей центрального процессора — выполнения арифметических операций, вычисления основных математических функции (тригонометрических, показательных, логарифмических) и т. д. — в состав ЭВМ добавляется математический сопроцессор. Применение сопроцессора повышает производительность вычислений в сотни раз. В разных поколениях процессоров он назывался по-разному — FPU (Floating Point Unit — блок чисел/операций с плавающей точкой — БПЗ) или NPX (Numeric Processor extension — числовое расширение процессора).

Для процессоров 386 и ниже сопроцессор был отдельной микросхемой, подключаемой к локальной нише основного процессора. В любом случае сопроцессор исполняет только свои специфические команды, а всю работу по декодированию инструкций и доставке данных осуществляет ЦП.

Блоки операций с плавающей запятой. С программной точки зрения сопроцессор и процессор выглядят как единое целое. В современных (486+) процессорах БПЗ располагается на одном кристалле с центральным процессором.

Ссылка на основную публикацию
Тест соловея штрассена c
Символ Якоби отличается от символа Лежандра тем, что в первом знаменатель – составное число, а во втором – простое. Алгоритм...
Стрим с камеры телефона
На сегодняшний день сервис YouTube прочно закрепился на позициях лидера мирового интернет медиарынка. Всего несколько лет назад вести свой канал...
Строки в pascal abc
Для обработки строковой информации в Турбо Паскаль введен строковый тип данных. Строкой в Паскале называется последовательность из определенного количества символов....
Тест стиральной машины bosch maxx 5
Самодиагностика – это очень важная функция, которая отличает современные стиральные машины с электронным управлением от старой аналоговой техники. Запустив сервисный...
Adblock detector