Цикл обработки команды современного процессора
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

 

Процесс обработки отдельной команды принято называть циклом обработки. Основные операции:

• Вычисление адреса команды

• Извлечение команды

• Расшифровка кода операции

• Вычисление адреса операнда

• Извлечение операнда

• Обработка данных

• Сохранение результата

• Обработка прерываний

 

 

Поток данных на фазе извлечения машинной команды.

 

Операции, выполняемые в фазе извлечения команды и косвенного адреса, просты и легко прогнозируются. Этого нельзя сказать об операциях фазы выполнения команды, поскольку они зависят как от содержимого кода команды в регистре IR (регистр команды), так и от результатов выполнения предыдущей команды (а иногда и нескольких предыдущих команд). В этой фазе может выполняться передача данных между регистрами, чтение или запись в память или в модуль ввода-вывода и/или выполнение арифметических или логических операций с участием АЛУ.

 

Поток данных на фазе прерывания.

фаза прерывания — также достаточно проста и предсказуема. Если имеется запрос прерывания и обработка прерываний разрешена, сохраняется текущее содержимое счетчика команд, что позволяет в дальнейшем возобновить выполнение прерванной программы с той же точки. Для этого содержимое PC (счетчик команд) передается в регистр MBR (регистр данных памяти), чтобы его можно было записать в память. Адрес ячейки, выделенной с этой целью в памяти, "знает" устройство управления и передает его в регистр MAR (регистр адреса в памяти). Чаще всего для хранения содержимого счетчика команд используется системный стек и, таким образом, этот адрес содержится в регистре указателя стека. В PC вместо текущего адреса прерванной программы загружается начальный адрес подпрограммы обработки прерывания. В результате следующий цикл начнется с извлечения первой команды подпрограммы обработки прерывания.

 

 

Конвейерная организация. Что такое конвейерная обработка. Простейшая организация конвейера и оценка его производительности. Примеры.

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

 

Простейшая организация конвейера:

1. Выборка команды (чтение очередной команды из памяти и занесение ее в регистр команды)

2. Декодирование команды (определение кода операции и способов адресации операндов)

3. Вычисление адресов (вычисление адреса операнда)

4. Выборка операндов (извлечение операндов из памяти. Эта операция не нужна для операндов, находящихся в регистрах)

5. Исполнение команды (непосредственное выполнение команды)

6. Запись результата

Конвейеризация увеличивает пропускную способность процессора (количество команд, завершающихся в единицу времени), но она не сокращает время выполнения отдельной команды.

 

В качестве примера рассмотрим не конвейерную машину с пятью этапами выполнения операций, которые имеют длительность 50, 50, 60, 50 и 50 нс соответственно . Пусть накладные расходы на организацию конвейерной обработки составляют 5 нс. Тогда среднее время выполнения команды в не конвейерной машине будет равно 260 нс. Если же используется конвейерная организация, длительность такта будет равна длительности самого медленного этапа обработки плюс накладные расходы, т.е. 65 нс. Это время соответствует среднему времени выполнения команды в конвейере. Таким образом, ускорение, полученное в результате конвейеризации, будет равно отношению 260/65=4 (при выполнении трех команд)

 

 

Дата: 2019-07-24, просмотров: 670.