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

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%. Команды перехода могут приводить к приостановке конвейера на несколько тактов. Это приводит к тому, что производительность процессора (и конвейера) снижается. Решение: Например, приостановка, связанная с командами перехода может быть частично сокращена за счёт использования: буферов предвыборки; множественных потоков; задержанного перехода; предсказания переходов.