Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Арх.ЭВМ.лекции.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
11.25 Mб
Скачать

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

Современные ЭВМ развиваются в нескольких направлениях. Повышение производительности ЭВМ заключается в первую очередь в повышении скорости выполнения операций.

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

Следующий путь – повышение разрядности процессора, но здесь тоже достигнут уровень 64 разрядов, и пока остановка. В больших ЭВМ процессоры применяют 128 и 256 разрядные, видимо по этому пути пойдут и ПК.

Большой сдвиг в повышении скорости дало кэширование, в современных ПК кэш размещается прямо на кристалле процессора. Но наибольший выигрыш в производительности дают архитектурные изменения в ЭВМ.

Конвейерная обработка команд.

Если вспомнить, как ЭВМ выполняет команду, то обработка каманды или цикл процессора, может быть разделен на несколько основных этапов, которых известно 5 основных типов: выборка команды; расшифровка кода операции; генерация адреса и выборка данных из памяти; выполнение операции; запись результата в память. Все этапы выполнения команды задействуются один раз и всегда в одном и том же порядке, одна за другой. Конвейеризация осуществляет многопоточную параллельную обработку команд, так что в каждый момент времени, одна из команд считывается , другая декодируется, третья выполняется и всего в обработке одновременно находятся несколько команд. Таким образом на выходе конвейера в каждом такте процессора появляется результат обработки одной команды. Для устройства конвейера необходимо разбиение процессора на части (ступени). Общее количество ступеней называется длиной конвейера. С ростом числа линий конвейера и увеличением числа ступеней увеличивается пропускная способность процессора при неизменной тактовой частоте. Процессоры с несколькими линиями конвейера получили название суперскалярных. Pentium – первый суперскалярный процессор фирмы Интел.Здесь имеются две линии, что позволяет при одинаковых частотах быть вдвое производительнее, выполняя две инструкции за такт.

Рассмотрим компьютер Pentium 4.

Рис.2.4.1.Структурная схема процессора Pentium -4

Конвейер процессора Pentium 4 состоит из трех частей (рис.2.4.1): 1) устройства предварительной обработки команд в порядке их следования в программе; 2) исполнительного ядра, исполняющего микрооперации в удобном для него порядке; 3) блока упорядоченного завершения, отражающего результаты выполнения микроопераций в правильный порядок. В свою очередь каждая часть конвейера делится на 20 ступеней. Это позволяет выпускать с конвейера за один такт до з инструкций.

Динамическое исполнение. Помимо конвейера операций в процессоре Pentium 4 применяется динамическое исполнение. Это новая технология обработки данных, которая представляет комбинацию трех методов обработки:

  • множественное предсказание ветвлений;

  • анализ потока данных;

  • спекулятивное (по предположению) исполнение.

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

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

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

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

Первое отличие процессора Pentium 4 от первых МП – отсутствие первичного КЭШа команд, в котором у МП хранились копии фрагментов ОЗУ, и вторичного КЭШа, содержащего ранее исполненные команды и следующие за ним строки. Остались КЭШ данных L1 и вторичный КЭШ данных L2, которые размещены непосредственно в микросхеме.

Появился КЭШ трасс исполнение, в которых хранятся трассы (последовательности микроопераций, в которых были декодированные команды)

КЭШ трасс совместно с блоками выборки и декодирования образуют устройство предварительной обработки, которая выполняет следующие функции:

- предварительную выборку команд, которые предполагается исполнить;

- декодирование команд в микрооперации;

- генерацию микрокодов для сложных команд;

- доставку декодированных команд из КЭШа трасс;

- предсказание переходов.

КЭШ трасс способен хранить до 12 Кбайт микроопераций и за каждый такт доставляет ядру до 3 микроопераций.

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

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

Еще более полно динамическое исполнение представлено в 64-разрядных процессорах. Эти процессоры имеют мощные вычислительные ресурсы, включая 128 регистров целых чисел, 128 регистров действительных чисел, 64 предикационных регистра и ряд специальных регистров.

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

Опережающее чтение данных, т.е. загрузка данных в регистры с опережением, до того, как определилось реальное ветвление программы.

Эти возможности осуществляются комбинированно – при компиляции и выполнении программы.

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

Затем компилятор группирует машинные коды в 128 битовые связки по 3 команды в каждой. Это трассы исполнения.

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

Опережающее чтение разделяет загрузку данных в регистры и их реальное использование, избегая ожиданий. Прежде всего, компилятор анализирует программу, определяя команды, которые требуют приема данных из оперативной памяти. Там, где это возможно, он вставляет команды опережающего чтения, и переставляет команды так, чтобы процессор мог их обрабоатывать параллельно. В процессе работы процессор, встречая команду опережающего чтения, пытается выбрать данные из памяти. Если данные не все готовы, обработка продолжается до тех пор пока все данные не считаны. Если к моменту прихода в точку «команда проверки опережающего чтения» не все данные готовы, вырабатывается сигнал прерывания.

Все перечисленные методы повышения производительности относятся к однопроцессорным системам, т.е. ЭВМ.