Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
24879.rtf
Скачиваний:
31
Добавлен:
24.11.2019
Размер:
2.83 Mб
Скачать

1.4.3.3) Конвейерная обработка команд в cpu

Шесть автономных блоков микропроцессора i386 составляют систему конвейерного выполнения команд.

Исполнение команды, в общем виде, состоит из 6 тактов:

ФАК──>ВК──>ФАО──>ВО──>ОП──>ЗпРез

здесь:

ФАК – формирование адреса команды,

ВК – выборка команды,

ФАО – формирование адреса операнда,

ВО – выборка операнда,

ОП – выполнение текущей операции,

ЗпРез – запись результата операции.

Конвейерное выполнение программы – это когда в разных автономных блоках микропроцессора одновременно выполняются разные такты нескольких смежных команд. Например, ЗпРез команды n-1, собственно ОП команды n, ФАК команды n+1, ВК команды n+2 и ФАК команды n+3.

Обработка команды в CPU i386, в свою очередь, состоит из четырех этапов:

1) преобразование адресов при сегментированной или страничной организации памяти (выполняется в блоке MMU);

2) выборка полей команды из ОЗУ и накопление их в стеке очереди команд (выполняется в PU);

3) дешифрация команд из очереди и накопление дешифрованных кодов операций в стеке декодированных команд (выполняется в блоке IDU);

4) выполнение операции в EU, под микропрограммным управлением, и формирование статусных флагов.

Для ускорения выполнения команд в CPU, моделей i386 и старше, организован конвейер команд:

- каждая из команд в свое время находится в стадии выборки, хранения, дешифрации, формирования адреса и – выполнения;

- для смежных команд эти стадии (такты выполнения) обычно выполняются разными узлами CPU одновременно, в режиме совмещения, если соответствующие узлы микропроцессора в это время свободны;

- работа CPU, по отношению к системной магистрали, синхронна, а между узлами BIU, PU, IDU, EU – асинхронна.

Счетчик команд EIP в EU автоматически модифицирует адрес следующей команды по словам или двойным словам, в зависимости от длины команды, задаваемой входом /BS16. Информация в EIP, системных и сегментных регистрах блока MMU используется при формировании физического адреса для выборки следующей команды.

Одновременно с адресным формированием в EU, в работе находится одна из команд очереди в IDU, в которое, в свой черед, подгружается команда из PU.

Обмен данными между CPU и системой осуществляет BIU по запросу от EU, либо при наличии свободного места в очереди команд.

Если EU выполняет длинную команду, не требующую новых данных из системы, а узлы очередей заполнены, то BIU может находиться в, так называемом, холостом цикле.

В многопроцессорных системах, когда шина передается от одного ведущего модуля другому, отключаемые модули переводят свои шины в состояние высокого импеданса – Z-состояние. В это время отключенный от шины CPU, или контроллер имеет возможность автономно выполнять все команды, находящиеся в стеках, до тех пор, пока CPU не потребуется шина для обмена. Если же в это время шина все еще занята, то CPU прекращает работу, находясь в состоянии ожидания (Time-Out), пока шина не освободится (линия /READY=H, т. е. пассивна).

Контрольные вопросы.

1. Из каких тактов состоит выполнение команды в CPU?

2. Что такое цикл шины в РС?

3. В чем смысл сигнала HOLD?

4. В чем смысл сигнала HLDA?

5. Как реагирует микропроцессор на сигнал INTR?

6. В чем особенность сигнала NMI?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]