Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АрхЭВМ.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
770.44 Кб
Скачать

2. Конвейерная обработка. Организация. Конфликты и основные пути их минимизации.

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

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

Выполнение любой команды можно разделить на 5 этапов:

1) IF – выборка команды. По адресу заданному счетчиком команд из памяти выбирается определенная команда. 2) ID – декодирование. На этом этапе происходит декодирование команды и выборка операндов из регистра общего назначения. 3) EX – выполнение операции. 4) MEM – обращение к памяти. 5) WB – запись результата.

Однако возникают ситуации, когда невозможно одновременно выполнить все команды – конфликты. Конфликты бывают 3-х видов: структурные конфликты, конфликты по данным, конфликты по управлению.

1) Структурные конфликты – возникают из-за конфликтов с ресурсами. Конфликты по ресурсам возникают тогда, когда аппаратные средства не могут поддерживать все комбинации команд в режиме одновременного выполнения. Причины появления:

а) машины с не полностью конвейерным функциональным устройством. В таких машинах невозможно одновременное выполнение некоторых команд.

б) ограничение доступа к РОНам. К регистру обращаются 2 и более команд.

в) обращение к памяти более одной команды в одном такте.

Способы решения структурных конфликтов:

а) stall – конвейерный пузырь, выполняет задержку выполнения команды на 1 такт.

б) использование своих портов доступа для обращения к регистровому файлу.

в) использование различных КЭШей для команд и данных.

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

2) Конфликты по данным – возникают, когда выполнение одной команды зависит от результата выполнения предыдущей команды. Эти типы конфликтов вызывают большую потерю производительности, чем структурные конфликты. Виды:

а) конфликт типа RAW – чтение после записи. Самый простой способ борьбы – метод обходов или метод закоротки.

б) WAR – запись после чтения. Не возникает в централизованных системах управления потоком команд, но возникает в тех системах, которые допускают выполнение команд не в том порядке, в котором они располагаются в прогр. коде.

в) WAW – запись после записи.

Для более сложных систем используются другие методы минимизации:

- Планирование загрузки конвейера; - Методы динамической оптимизации; - Метод переименования регистров.

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