Конвейерная обработка команд в 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?








Дата добавления: 2015-07-18; просмотров: 848;


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

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.