Явный конфликт по данным

Конфликты по ресурсам

Задержка работы устройств

Схема работы конвейера

Конвейер команд

Организация процессора

Развитие КС заставило внести изменения в конструкцию процессора:

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

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

Цель разбиения на шаги - построение конвейера команд. Процессор делится на отдельные блоки, каждый выполняет один шаг команды. Число шагов (ступеней конвейера) от 10 и более (Pentium 4-20 шагов).

Рассмотри четырехступенчатый конвейер:

F(Fetch)       D(decode)       E(execute)       W(write)
Выборка команд     Декодирование и выборка операндов     Выполнение операции     Запись результатов
           
           
    B1       B2       B3    

F,D,E,W – обрабатывающие блоки;

B1, B2, B3 – буфер

  F1 D1 F1 W1          
    F2 D2 E1 W2        
      F3 D3 E3 W3      
        F4 D4 E4 W4    
          F5 D5 E5 W5
Время такты

                   
                   

Очевидно, что конвейер увеличивает быстродействие процессора в 4 раза, если число ступеней равно четырем. Однако, есть проблемы, вызываемые задержками конвейера:

- Задержка работы устройств – выполнение некоторых шагов более, чем за один такт

- Конфликт по ресурсам

- Явный конфликт по данным

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

На время работы устройств (F, D, W) влияние оказывает полезное усовершенствование конвейера – увеличение размеров буфера и организация в нем очереди команд. Другие усовершенствования более сложные:

- Разработка параметров с несколькими конвейерами команд

- Разработка параметра с системой команд, в которой все выполняется за равное число тактов

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

Схема конфликта по устройствам:

Меры для уменьшения числа конфликтов:

1. Разделение КЭШ для данных и команд

2. Введение двухпортовых регистров(возможно одновременное обращение)

3. Расслоение память – одновременно обращение к ячейке разных блоков

Данные, полученные как результат команды, будут использованы как операнды для последующей команды. Если эта команда следует сразу за первой, то одновременное использование в конвейере приводит к ошибке – конфликту.

Конфликт типа “чтение после записи”, т.е программа рассчитана на последовательное выполнение команд. Сначала производиться запись, а потом чтение. Такая ошибка распознается на этапе трансляции. Имеет место в программе приема.

- Изменение порядка следования команд, т.е команды имеющие зависимость по данным, не ставят рядом

- Вставляют между зависимыми командами дну или более команд

Аппаратный метод борьбы с такими конфликтами – продвижение операндов.

Схема:

F(Fetch)       D(decode)       E(execute)       W(write)  
             
             
             
B1 B2 B3  


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: