Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Вопрос 21. Параллельная обработка. Конвейерная организация. Типы конфликтов



Конвейерная организация

Разработчики архитектуры команд компьютера часто прибегали к приему, известного под общем названием «совмещение операций». При этом компьютер выполняет более одной команды одновременно. Этот метод включает два понятия – параллелизм и конвейеризация. Параллелизм достигается путём совмещения операций за счет использования нескольких копий аппаратной структуры. Высокая производительность получается за счет осуществления решения различных частей задачи.

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

Конвейеризация эффективна только тогда, когда загрузка конвейера близка к полной (обычно 4-5 команд). Конвейерная организация используется как в ЦИСК, так и РИСК.

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

Существуют 3 класса конфликтов:

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

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

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

Известны три возможных конфликта по данным в зависимости от порядка операций чтения и записи. Рассмотрим две команды i и j, при этом i предшествует j. Возможны следующие конфликты:

· RAW (чтение после записи) - j пытается прочитать операнд-источник данных прежде, чем i туда запишет. Таким образом, j может некорректно получить старое значение. Это наиболее общий тип конфликтов, способ их преодоления с помощью механизма "обходов" рассмотрен ранее.

· WAR (запись после чтения) - j пытается записать результат в приемник прежде, чем он считывается оттуда командой i, так что i может некорректно получить новое значение. Этот тип конфликтов, как правило, не возникает в системах с централизованным управлением потоком команд, обеспечивающих выполнение команд в порядке их поступления, так как последующая запись всегда выполняется позже, чем предшествующее считывание. Особенно часто конфликты такого рода могут возникать в системах, допускающих выполнение команд не в порядке их расположения в программном коде.

· WAW (запись после записи) - j пытается записать операнд прежде, чем будет записан результат команды i, т.е. записи заканчиваются в неверном порядке, оставляя в приемнике значение, записанное командой i, а не j. Этот тип конфликтов присутствует только в конвейерах, которые выполняют запись со многих ступеней (или позволяют команде выполняться даже в случае, когда предыдущая приостановлена).

 

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

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

 

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.