Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Организация ЭВМ лекция.docx
Скачиваний:
12
Добавлен:
30.08.2019
Размер:
2 Мб
Скачать
☆

06032012 Лекция 6 Обработка команд процессоров. Понятие конвейера команд. Виды конвейеров.

Выполнение команды, как правило, выполнение последовательности микроопераций. А выполнение одной микрооперации обычно занимает один такт. Основной задачей процессора является последовательное выполнение команд программы. В алгоритме работы процессора принято выделять основной цикл, который называется цикл выполнения команды.

Типовой цикл команд включает следующие этапы (группа арифметических и логических команд):

  1. Выборка команды и анализ кода операции команды (КОП). t1

  2. Формирование адресов операндов. t2

  3. Выборка операндов. t3

  4. Выполнение операции в АЛУ и формирование признаков. t4

  5. Сохранение/запись результата. t5

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

Согласно схемы можно определить время последовательного выполнения команды tпосл=t1+t2+t3+t4+t5.

Производительность процессора Pпосл= 1/tпосл.

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

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

Пример: Pentium

Такты/

Этапы

CLK0

CLK1

CLK2

CLK3

CLK4

CLK5

CLK6

CLK7

…

pf

i1,i2

i3,i4

i5,i6

i7,i8

i9,i10

i11,i12

i13,i14

d1

i1,i2

i3,i4

i5,i6

i7,i8

i9,i10

i11,i12

d2

i1,i2

i3,i4

i5,i6

i7,i8

i9,i10

ex

i1,i2

i3,i4

i5,i6

i7,i8

wb

i1,i2

i3,i4

i5,i6

CLK0-CLKn – последовательность процессорный тактов

Pf – стадия предвыборки

D1 - декодирование инструкции

D2 -генерация адреса

Ex - выполнение в АЛУ

Wb -запись результата

i1,i2,…- последовательность команд

Особенность Пентиумов: суперскалярные – то есть в них больше одного конвейера команд. В Pentium два конвейера команд. На одну стадию может быть подано две команды.

Увеличение длины конвейере за счёт разбиения этапов на более мелкие позволяет сократить в среднем длительность выполнения команды и увеличить производительность процессора. Мелкие выполняются быстрее, а это повышает частоту работы процессора.

Примеры:

K5(AMD) – 5 ступеней; Cyrix6x86 – 7 ступеней конвейера; VIACyrixIII – 12; Pentium4 – 20. 20 – максимальное число.

Pentium 4 – гиперконвейерная технология.

Конфликты в конвейере команд

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

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

  2. Риск по данным (взаимосвязь команд по данным) – типичная, часто встречающаяся ситуация. Например, две команды i и j в конвейере предусматривают обращение к одной переменной x , причем i предшествует j. 3 вида ситуации:

    1. Чтение после записи. Команда j читает х до того, как i успевает записать новое значение х. Это чаще.

    2. Запись после чтения. Команда j записывает новое значение х до того, как команда i успела прочитать х.

    3. Записи после записи. Команда j записывает новое значение х, прежде чем i успело записать своё х.

Борьба: своевременно обнаружение потенциального конфликта и устранение конфликта. Для этого задействованы как программные, так и аппаратные средства. Программные ориентированы на устранение самой возможности конфликта на стадии компиляции программ (вставляет между командами пустые операции). Аппаратные – остановка команды j на несколько тактов, чтобы команда i успела завершиться, ну или миновать ступень конвейера, где возможен конфликт.

  1. Риск по управлению (неоднозначность при выборке следующей команды в случае команд перехода). Например, команды: Условный и безусловный переход, вызов процедуры и возврат из процедуры. Доля подобных команд в программе примерно 10-20%. Команды перехода могут приводить к приостановке конвейера на несколько тактов. Это приводит к тому, что производительность процессора (и конвейера) снижается. Решение: Например, приостановка, связанная с командами перехода может быть частично сокращена за счёт использования: буферов предвыборки; множественных потоков; задержанного перехода; предсказания переходов.