Лекция: Конвейеризация

Конвейеризация.

 

Рассмотрим организацию конвейера на уровне исполнения машинной команды:

Конвейерная обработка: а) – структурная схема пятиступенчатого конвейера; б) – конвейерная обработка команд.

 

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

• IF (Instruction Fetch) – выборкакоманды;

• ID (Instruction Decode) – дешифрирование команды;

• RD (Read Data(Memory)) – чтениеоперандов;

• EX (Execute) – исполнение заданной в команде операции;

• WB (WriteBack) – запись результата.

В ходе выполнения команда продвигается по конвейеру, освобождая его очередную ступень для следующей команды. Для хранения информации, предаваемой с одной ступени на другую, используют внутренние промежуточные буферы. Содержимое буферов обновляется в каждом такте по завершению этапа исполнения очередной команды. Промежуточные буферы обеспечивают параллельную независимую работу блоков конвейерной цепочки. В то время, когда последующий блок начинает этап очередной команды, предыдущий блок может приступать к обработки следующей команды, благодаря этому в конвейере одновременно могут обрабатываться несколько следующих друг за другом команд. Следует отметить, что конвейерная обработка команды не уменьшает время выполнения отдельной команды. Однако, благодаря тому, что при конвейерной обработке большая часть вычислительного процесса проходит в режиме одновременного выполнения команд, скорость выдачи результата последовательно обрабатываемых команд увеличивается пропорционально числу ступеней конвейера. Продолжительность выполнения отдельных этапов исполнения команды в общем случае зависит от типов команды и места размещения операндов. Конвейеризация обработки команд наиболее эффективна если длительность выполнения всех фаз команды примерно одинакова. В противном случае быстродействующим блокам конвейера приходится простаивать в ожидании информации, поступающей от медленных блоков. Поскольку выполнение любой команды предполагает обязательный этап «выборка команды из оперативной памяти» и время обращения к ОП в несколько раз превышает длительность этапов конвейера внутри микропроцессора, то реализовать указанные условия без изменения состава типовой структуры микропроцессора практически невозможно. Проблемы доступа к памяти в конвейерном микропроцессоре решают с помощью внутренней кэш-памяти уровня L1, размещаемой на одном кристалле с микропроцессором. При наличии внутренней кэш-памяти для доступа к командам и их операндам требуется примерно такое же время, что и для выполнения базовых операций внутри микропроцессора. Это делает возможным разделить процесс выполнения команд на относительно равные этапы и, соответственно, достичь наибольшей эффективности конвейерной обработки.

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

Асинхронный конвейер реализован в старших моделях Pentium.

еще рефераты
Еще работы по информатике