Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1транспьютеры.pdf
Скачиваний:
44
Добавлен:
10.02.2016
Размер:
322.89 Кб
Скачать

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

Pipelining

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

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

Особенности архитектуры суперскалярных процессоров

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

Суперскалярная архитектура является развитием скалярной архитектуры SISD (Single Instruction Single Date) - один поток команд управляет одним потоком данных.

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

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

Что нужно для того, чтобы микропроцессор работал быстро на любых приложениях? Высокая тактовая частота, большое количество параллельно работающих функциональных исполнительных устройств (ФИУ); «умение» загрузить работой все эти устройства на самых разных приложениях; кэш-память большой емкости с высокой пропускной способностью (ПС) и низкими задержками при обращении, причем желательно, чтобы в нее помещалось рабочее множество страниц приложения; системная шина с высокой ПС и т.д.

Из-за ограничений современной технологии эти требования часто находятся в противоречии между собой и, конечно, с требованием получить достаточно высокий выход годных чипов при достаточно низкой цене. Если поднимается тактовая частота, то трудно выполнить сложные операции за 1 такт, поэтому конвейеры часто разбиваются на большее число ступеней (суперконвейерный подход, характерный, например, для Alpha 21064). Но при этом возрастает время, необходимое для заполнения длинных конвейеров.

Если увеличивается число ФИУ (суперскалярный подход), то возникает задача

обеспечения их загрузки, для чего используется, в частности, техника внеочередного (out-of- order) и «спекулятивного» (speculative) (на основе предсказания, в какую ветвь программы произойдет условный переход) выполнения команд. При этом возрастает сложность микропроцессора и соответственно его площадь, что чревато уменьшением выхода годных чипов. В качестве примеров такого подхода можно привести микропроцессоры IBM с архитектурой POWER/P2SC и SGI/MIPS R10000; сюда же относится и HP PA-8000.

1. Конвейерная обработка команд. Риски.

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

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

1.IF (Instruction Fetch) - считывание команды в процессор;

2.ID (Instruction Decoding) - декодирование команды;

3.OR (Operand Reading) - считывание операндов;

4.EX (Executing) - выполнение команды;

5.WB (Write Back) - запись результата.

Выполнение команд в таком конвейере представлено в табл. 11.1.

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

Таблица 11.1.

Такт

Команда

1 2 3 4 5 6 7 8 9

i IF ID OR EX WB i+1 IF ID OR EX WB i+2 IF ID OR EX WB i+3 IF ID OR EX WB

i+4 IF ID OR EX WB

Значительное преимущество конвейерной обработки перед последовательной имеет место в идеальном конвейере, в котором отсутствуют конфликты и все команды выполняются друг за другом без перезагрузки конвейера. Наличие конфликтов снижает реальную производительность конвейера по сравнению с идеальным случаем.

Конфликты - это такие ситуации в конвейерной обработке, которые препятствуют выполнению очередной команды в предназначенном для нее такте.

Конфликты делятся на три группы:

·структурные,

·по управлению,

·по данным.

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

Причины структурных конфликтов.

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

2.Недостаточное дублирование некоторых ресурсов. Одним из типичных примеров служит конфликт из-за доступа к запоминающим устройствам. Из табл. 11.1 видно, что в случае, когда операнды и команды находятся в одном запоминающем устройстве, начиная с такта 3, работу конвейера придется постоянно приостанавливать, поскольку различные команды в одном и том же такте обращаются к памяти на считывание команды, выборку операнда, запись результата.

Таблица 11.3.

Такт

Команда

1 2 3 4 5 6 7 8 9

iIF ID OR EX WB

i+1

IF ID OR EX EX

EX WB

i+2

IF ID OR O

O

EX WB

i+3

IF ID OR O

O

EX

i+4

IF ID OR O

O

 

3.Конфликты по управлению возникают при конвейеризации команд переходов и других команд, изменяющих значение счетчика команд.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]