Способы повышения производительности процессора




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

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

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

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

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

1. запрос в некоторых комбинациях команд одних и тех же ресурсов, что препятствует совмещению соответствующих действий во времени;

2. наличие зависимости по данным, возникающее, если операнд очередной команды зависит от результата выполнения предыдущей;

3. наличие зависимости по управлению, приводящее к неоднозначности предсказания дальнейших действий из-за команд условного перехода.

Наиболее существенны задержки конвейера из-за зависимостей по управлению, поэтому принимаются различные меры по уменьшению отрицательного влияния этого фактора. Так, например, можно осуществлять подготовку конвейера в расчете на один из альтернативных результатов перехода, тогда задержки не будет в случае угадывания перехода. Можно за счет увеличения аппаратурных затрат параллельно обрабатывать оба альтернативных пути продолжения вычислений после перехода. Например, в процессоре Power4+ используется гиперконвейер с 17 ступенями, а в процессоре Pentium 4 — c 20 ступенями, предсказание переходов в циклах основано на информации, полученной на первом витке.

В микропроцессорах компании Intel применена суперскалярная структура, характеризуемая наличием двух конвейеров.

В настоящее время для дальнейшего повышения производительности используют несколько подходов.

Во-первых, реализация двух или более процессоров в одной СБИС (так называемое "мультипроцессирование на уровне микросхем" — CMP). Благодаря малым расстояниям между основными регистрами и кэш-памятью удается заметно снизить задержки при параллельном выполнении операций в процессорах. Пример реализации СМР — микросхемы Power4 и Power4+.

Во-вторых, архитектура сверхбольшого командного слова EPIC, используемая в IA-64 и предполагающая программирование с высоким уровнем параллелизма на уровне команд. Примерами процессоров такой архитектуры могут служить Itanium 2, а также отечественная разработка Elbrus 3M.

В-третьих, многонитиевая организация вычислений или мультитредовость, заключающаяся в многопотоковой обработке информации на основе параллелизма на уровне нитей (TLP — Thread Level Parallelism). Суть TLP заключается в загрузке конвейера более чем одним заданием. Если в обычном конвейере одно задание (нить) не в состоянии загрузить конвейер и ряд функциональных блоков в течение некоторых тактов остаются свободными, то в технологии TLP эти блоки загружаются операциями из других нитей. Технология TLP реализуется с помощью многонитевой архитектуры (MTA — MultiThreading Architecture). В MTA имеются специальные программные и аппаратные средства, следящие за правильным распределением ресурсов между нитями. Переключение с одной нити на другую происходит или при наступлении определенного события (например, прерывание или необходимость обращения в медленную память), или поочередно.

В соответствии со способом одновременного выполнения нитей (SMT — Simultaneous Multi-Threading) на каждом новом такте на выполнение в каждый функциональный блок может направляться команда из любой нити. Возможен и более простой способ, при котором в любой момент времени работает только одна нить, которая заменяется на другую при возникновении прерывания.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-05-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: