|
|
7.4.6.2.1. Конвейеризация адресов
Фактически исполнение команды разделяется на
четыре этапа. Во-первых, команда считывается из памяти. Во-вторых, она
интерпретируется или декодируется. В-третьих, из памяти считываются операнд или
операнды. Наконец, команды выполняются. Если все эти операции выполняются друг
за другом для последовательных команд (как на сборочной линии), то следующая
команда выбирается из памяти в то время, когда первая команда декодируется и
т.д. Можно добиться 100%-ной эффективности конвейера, так что дополнительное
время для завершения исполнения команды может быть уменьшено почти только до
времени исполнения команды.
Конвейер адресов увеличивает время, которое
отводится памяти для отклика на один такт CLK без затягивания цикла магистрали. Этот дополнительный такт CLK исключает выходную задержку на выходах адреса
и состояния МП 80386. С точки зрения устройства памяти, к которому
осуществляется доступ, конвейер адресов перекрывает по времени момент выдачи
адреса и сигналов состояния следующего цикла магистрали. Обращение к памяти,
которое требует двух состояний ожидания без конвейера адресов, с конвейером адресов
требует только одного состояния ожидания.
Конвейер адресов является преимуществом для
большинства циклов магистрали, но, если следующий адрес не известен до окончания
текущего цикла, МП 80386 не может его обрабатывать в режиме конвейера. В этом случае
последовательность
событий на магистрали идентична циклу магистрали без конвейера. Точно так же первый
цикл после занятого состояния магистрали не включается в конвейер потому, что
нет предыдущего цикла, в котором ранее был бы сформирован адрес. Если
следующий цикл должен быть конвейеризован, то первый цикл необходимо удлинить
по крайней мере на одно состояние ожидания для того, чтобы на шину можно было
выдать новый адрес до окончания этого цикла.
Конвейер адресов менее эффективен для УВВ,
требующих нескольких состояний ожидания. Чем больше требуется состояний
ожидания, тем менее существенным становится сокращение на одно состояние
ожидания в конвейере адресов. Этот факт вместе с относительно нечастыми обращениями
УВВ означает, что конвейер адресов для УВВ оказывает незначительное влияние на
производительность системы.
В МП 80386 возможны как конвейеризированные, так и не конвейеризированные
магистральные циклы. Если выбирается
конвейер адресов, МП 80386 перекрывает по
времени циклы магистрали, что позволяет получить большее время доступа.
Поскольку обращение к кэш-памяти не требует состояний ожидания, то часто
предпочитают не конвейеризированные циклы. Использование таких циклов
минимизирует время между запросом процессором информации из внешнего мира и получением достоверных данных на выводах МП 80386.
Так как выигрыш в производительности из-за применения кэш-памяти происходит
благодаря ее способности обеспечивать
передачу 32-разрядного двойного слова за 2 такта генератора, то применение конвейера адресов рекомендуется
только для систем с медленными устройствами
памяти, которые в противном случае потребовали бы одного или нескольких состояний ожидания.