Автор работы: Пользователь скрыл имя, 06 Мая 2014 в 01:07, контрольная работа
Разработчики архитектуры компьютеров издавна прибегали к методам проектирования, известным под общим названием "совмещение операций", при котором аппаратура компьютера в любой момент времени выполняет одновременно более одной базовой операции. Этот общий метод включает два понятия: параллелизм и конвейеризацию. Хотя у них много общего и их зачастую трудно различать на практике, эти термины отражают два совершенно различных подхода.
ВВЕДЕНИЕ..................................................................................................................3
1. Использование конвейеризации вычислений……………………………...........4
2. Архитектурные особенности процессоров вычислительных машин: подходы к решению проблемы обработки команд переходов……………..……………….8
3. Методы предсказания переходов…………………………………………...…..10
ЗАКЛЮЧЕНИЕ .........................................................................................................12
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ..................................................13
СОДЕРЖАНИЕ
ВВЕДЕНИЕ......................
1. Использование
конвейеризации вычислений…………………………….........
2. Архитектурные особенности процессоров вычислительных машин: подходы к решению проблемы обработки команд переходов……………..……………….8
3. Методы предсказания переходов…………………………………………...….
ЗАКЛЮЧЕНИЕ ..............................
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ....................
ВВЕДЕНИЕ
Разработчики архитектуры компьютеров издавна прибегали к методам проектирования, известным под общим названием "совмещение операций", при котором аппаратура компьютера в любой момент времени выполняет одновременно более одной базовой операции. Этот общий метод включает два понятия: параллелизм и конвейеризацию. Хотя у них много общего и их зачастую трудно различать на практике, эти термины отражают два совершенно различных подхода. При параллелизме совмещение операций достигается путем воспроизведения в нескольких копиях аппаратной структуры. Высокая производительность достигается за счет одновременной работы всех элементов структур, осуществляющих решение различных частей задачи.
Конвейеризация (или конвейерная обработка) в общем случае основана на разделении подлежащей исполнению функции на более мелкие части, называемые ступенями, и выделении для каждой из них отдельного блока аппаратуры. Так обработку любой машинной команды можно разделить на несколько этапов (несколько ступеней), организовав передачу данных от одного этапа к следующему. При этом конвейерную обработку можно использовать для совмещения этапов выполнения разных команд. Производительность при этом возрастает благодаря тому, что одновременно на различных ступенях конвейера выполняются несколько команд. Конвейерная обработка такого рода широко применяется во всех современных быстродействующих процессорах.
Важным элементом архитектуры, появившимся в i486, является конвейер – специальное устройство, реализующее обработку команд внутри процессора в несколько этапов. Вышеупомянутый конвейер имеет 5-ти ступенчатый конвейер. Соответствующие этапы включают:
- выборку команд из
кэш-памяти или оперативной
- декодирование команды;
- генерацию адреса, в процессе которой определяются адреса операндов в памяти;
- выполнение операции с помощью АЛУ (арифметико-логического устройства);
- запись результатов (адрес
определяется конкретной
Каждому этапу соответствует своя схема в составе конвейера. Поэтому, когда после выборки команда поступает в блок декодирования, блок выборки оказывается свободным и может обрабатывать следующую команду. Таким образом, на конвейере могут находиться в разной стадии выполнения 5 команд, в результате чего возрастает скорость обработки отдельной команды.
В зависимости от типа команды и способа адресации, время выполнения команды сильно варьируется. Дольше всего выполняются этапы, связанные с обращением к памяти. На рисунке 1 показаны блоки и конвейер команд гипотетического процессора, имеющего пять блоков исполнения команд и, соответственно, пять этапов (ступеней). Изображены выполняемые команды, номера тактов и этапы выполнения команд. На первом такте считывается первая команда. На втором, пока декодируется первая команда, считывается вторая. На пятом такте в процессоре одновременно находятся пять команд, каждая в своем узле.
Рис. 1 Блоки прохождения команды в процессоре
Конвейеризация увеличивает пропускную способность процессора (количество команд, завершающихся в единицу времени), но она не сокращает время выполнения отдельной команды. Имеются некоторые накладные расходы на конвейеризацию, возникающие в результате несбалансированности задержки на каждой его ступени. Частота синхронизации (такт синхронизации) не может быть выше, чем время, необходимое для работы наиболее медленной ступени конвейера. Конвейер не всегда представляет собой линейную цепочку этапов. В ряде ситуаций оказывается выгодным, когда функциональные блоки соединены между собой не последовательно, а в соответствии с логикой обработки. Отдельные блоки в цепочке могут пропускаться, а другие - образовывать циклические процедуры. Это позволяет с помощью одного конвейера вычислять более одной функции.
Поток команд - естественная последовательность команд, проходящая по конвейеру процессора. Процессор может поддерживать несколько потоков команд (суперпроцессоры 5 и 6 поколения), если для каждого потока и каждого этапа есть исполнительные элементы.
Суперконвейер команд - разбиение каждой ступени на подступени при одновременном увеличении тактовой частоты внутри конвейера; включение в состав процессора многих конвейеров, работающих с перекрытием. Дробление ступеней позволяет поднять тактовые частоты процессора. К суперконвейерным относятся процессоры, в которых число ступеней больше шести (табл. 1).
Таблица 1
Суперконвейерные процессоры
Cуперконвейер ведет не только к увеличению скорости вычислений, но и к возникновению дополнительных сложностей. Возрастает вероятность конфликтов. Дороже встает ошибка предсказания перехода - приходится сбрасывать весь длинный конвейер, на что требуется дополнительное время. Усложняется логика взаимодействия ступеней. Однако за счет использования новых архитектур удается справиться с большинством проблем.
Микропроцессоры, имеющие один конвейер называются скалярными, а более одного – суперскалярными. Микропроцессор Pentium имеет два конвейера, и поэтому может выполнять 2 команды за машинный такт.
Конвейеризация – один из первых архитектурных приемов совершенствования процессов радикально отразившийся на производительности.
Конвейеризация вычислений заключается в следующем: каждая последующая команда начинает выполнение сразу же после прохождения 1-ой ступени конвейера предыдущей команды. Конвейерная работа процессора заключается в разбивке каждой команды на несколько ступеней. По очередности тактового импульса каждая команда перемещается на следующую ступень. Выполненная команда покидает процессор, а новая поступает в него.
Максимальное время выполнения самых продолжительных операций – Tmax. Очередная порция данных может поступать в входной регистр с интервалом не меньше Tmax. Если распределить функции выполняемые функциональным блоком между несколькими последовательными независимыми блоками ФБi с учетом того что каждый из них выполняет операции за временной интервал Tmax/n, где n – число блоков, можно получить заметный выигрыш в скорости появления (поступления) результатов на выходной регистр.
Распределение функций между блоками выполняется так, что время на их реализацию у всех блоков одинаковое и составляет Tmax/3. Между функциональными блоками размещаются буферные регистры, предназначенные для хранения результатов операций выполненных блоком ФБi в случае если следующий за ним блок ФБi+1 еще не завершил выполнение операций и не готов к использованию результата работы блока ФБi. При такой организации работы данные на входной регистр конвейера могут поступать втрое чаще (в общем случае в n раз). При этом общая задержка от момента поступления 1-ой единицы данных на входной регистр до момента появления результата в выходном регистре составляет Tmax, последующие результаты появляются в выходном регистре с интервалом Tmax/n. Поскольку на практике не удается достичь одинаковых задержек в работе всех ступеней конвейера, его суммарная производительность снижается и интервал поступления данных на конвейер определяется максимальным временем задержки какой либо из его ступеней. Поэтому на практике буферные регистры, а так же входные и выходные регистры заменяются буферной памятью, которая позволяет в значительной степени скомпенсировать издержки работы разных ступеней. Буферная память способна хранить некоторое множество машинных слов, поступление и выдача которых организована по принципу FIRST IN FIRST OUT.
Наибольшие издержки в работе процессорных конвейеров вызывает обработка команд условного перехода. Для сокращения издержек, а в некоторых случаях и устранения используются различные методы аппаратного характера, среди которых наиболее известны 4 подхода
1) Использование буфера предвыборки
Буфером предвыборки называется блок буферной памяти располагаемый между ступенью выборки команды и основной частью конвейера. В конвейере используется 2 буферных блока, работающих параллельно. Каждая извлеченная из памяти и помещенная в буфер команда анализируется блоком перехода. При обнаружении команды условного перехода блок перехода вычисляет исполнительный адрес точки перехода и параллельно с продолжением последовательной выборки команд в основной буфер блок перехода организует выборку команд в дополнительный буфер начиная с точки условного перехода. После этого блок перехода определяет исход команды условного перехода и в зависимости от результата подключает к оставшейся части конвейера либо основному либо дополнительному буферу. Основные недостатки данного метода связаны с необходимостью дублирования части схем, а главное с тем, что в случае когда команда условного перехода следует одна за другой или располагаются достаточно близко.
2) Организация параллельных потоков
Сущность этого метода сводится к дублированию начальных ступеней конвейера и созданию 2-х параллельных потоков команд. В одной из ветвей «раздвоенного» конвейера последовательность выборки и выполнения команд соответствует случаю выполнения условий перехода, а в другой – невыполнения. После проверки условного перехода оба потока сходятся в одной точке и дальнейшая обработка продолжается для правильной ветви конвейера. Основной недостаток связан с возникновением издержек в случае следования в команде подряд условных переходов.
3) Стратегия задерженного перехода
Суть метода заключается в продолжении обработки и выполнения команд программы не зависимо от исхода команды условного перехода. Речь только о командах, которые в любом случае должны быть выполнены независимо от исхода команды перехода и результат выполнения команды не влияет на исход перехода. Такие команды условно называются полезными. На этапе компиляции программы после каждой команды условного перехода вставляется команда «нет операции». Далее начинается оптимизация программы, в ходе которой делаются попытки замены каждой команды «нет операции» из числа полезных. В оптимизированной программе кол-во таких замен может достигать более 20%. Благодаря этому увеличивается ритмичность работы ступеней конвейера.
4) Предсказание переходов
Один из наиболее
распространенных методов
Модуль предсказания условных переходов (англ. Branch Prediction Unit) — устройство, входящее в состав микропроцессоров,
имеющих конвейерную архитектуру, определяющее
направление ветвлений (предсказывающее,
будет ли выполнен условный переход)
в исполняемой программе. Предсказание
ветвлений позволяет осуществлять предварительную
выборку инструкций и данных из памяти,
а также выполнять инструкции, находящиеся
после условного перехода, до того, как
он будет выполнен. Предсказатель переходов
является неотъемлемой частью всех современных
суперскалярных микропроцессоро
Существует два основных метода предсказания переходов: статический и динамический.
Статическое предсказание.
Статические методы предсказания ветвлений являются наиболее простыми. Суть этих методов состоит в том, что различные типы переходов либо выполняются всегда, либо не выполняются никогда. В современных процессорах статические методы используются лишь в том случае, когда невозможно использование динамического предсказания.
Примерами статического предсказания
могут служить тривиальное предсказание
переходов, применявшееся в ранних процессорах
архитектуры SPARC и MIPS(
Динамическое предсказание.