- •7. Принципы управления микропроцессора.
- •7.1. Классификация микропроцессоров.
- •7.2. Декомпозиция мп.
- •7.3. Принцип аппаратного управления ("жёсткой" логики).
- •7.4. Принцип микропрограммного управления (гибкой логики).
- •7.5. Способы формирования сигналов управления
- •Код номера
- •7.6. Операционное устройство мп.
- •7.7. Обобщённая структурная схема мп.
- •Адресный блок
- •8. Элементы архитектуры мп.
- •8.1. Структура команд.
- •8.2. Способы адресации, основанные на прямом использовании
- •Номера реги- стров
- •Число 4527
- •Адрес 1765
- •8.3. Способы адресации, основанные на преобразовании кода команды.
- •8.4. Понятие вектора состояния мп.
- •8.5. Понятие системы прерывания программ.
- •8.6. Характеристики системы прерывания.
- •8.7. Способы организации приоритетного обслуживания
- •Счётчик
- •Счётчик
- •Компаратор
- •Код маски
- •8.8. Процесс выполнения команд. Рабочий цикл мп.
- •8.9. Конвейерная обработка команд и данных.
- •8.10. Особенности risc-архитектуры.
- •Регистры глобальных переменных
8.9. Конвейерная обработка команд и данных.
Принцип конвейерной обработки начнём рассматривать с конвейера команд.
Пусть рабочий цикл МП состоит из k этапов, причём i-й этап имеет продолжительность ti. Тогда при последовательном выполнении этапов длительность цикла определяется суммой ТПОСЛ = , а общая производительность процессора РПОСЛ = 1/ операций/с.
Скорость работы МП может быть увеличена, если для выполнения каждого этапа ввести отдельный аппаратурный блок:
1
2
k-1
k
. . .
. . .
i
Позиции конвейера
Полученная таким образом обрабатывающая линия, и называется конвейером.
Конвейер называется синхронным, если он работает в принудительном темпе и для выполнения любого этапа выделено одно и то же время tТ (такт конвейера).
В этом случае разбиение цикла на этапы и выбор длительности такта производятся согласно условиям:
t Т = max{ti}, i = 1,…, k; (максимальная из длительностей этапов)
ti + ti+1 > tТ, i = 1,…, k.
Если для каких-либо смежных этапов второе условие не выполняется, то их следует объединить в один этап либо наиболее длинный этап разбить на несколько этапов. В последнем случае заново выбирается tТ и вновь проверяется первое условие.
После того как все позиции конвейера окажутся заполненными, параллельно во времени будет обрабатываться k команд.
Действительно, в момент заполнения конвейера в k-ой позиции обрабатывается k-й этап первой команды, в (k-1)-й позиции – (k-1)-й этап второй команды и т.д., в первой позиции – первый этап k-й команды.
Теоретически соотношение производительностей процессора при конвейерной обработке и при последовательном выполнении этапов рабочего циклаи имеет вид: k/2 < (PКОНВ/РПОСЛ) k.
В действительности рост производительности МП оказывается ниже из-за простоев конвейера.
Так, при выполнении команд пересылки данных отдельные этапы рабочего цикла отсутствуют и, следовательно, простаивают отдельные блоки конвейера. Для команд условного перехода несколько тактов простаивает весь конвейер, т.к. выборка следующей команды должна быть задержана, пока не будет сформирован признак результата предыдущей операции (формируется на более позднем этапе).
Таким образом, если pm – вероятность выборки команды, вызывающей задержку конвейера на m тактов (m = 1, 2,…, k), то действительная производительность конвейера будет в (1 + ) меньше теоретической.
При большой зависимости продолжительностей выполнения отдельных этапов от типа команды целесообразно применение асинхронного конвейера.
В асинхронном конвейере команд нет единого такта работы его блоков.
Информация передаётся с одного блока конвейера на следующий, когда данный и следующий блоки полностью закончат свои процедуры.
Управление передачей информации между соседними блоками асинхронного конвейера осуществляется с помощью двух триггеров – триггера готовности блока (сигнализирует о завершении операции в данном блоке) и триггера освобождения последующего блока.
В целях повышения производительности МП принцип конвейерной обработки широко используется и в АЛУ, которые строятся в виде арифметического конвейера, причём таких арифметических конвейерных линий в процессоре может быть несколько.
Подобные операционные устройства часто называют магистральными.
Пусть операционное устройство должно вычислять некоторую функцию Ф от входных данных.
Эту функцию можно представить в виде последовательности более простых подфункций: 12. . . k.
Результаты преобразования, выполняемые подфункцией i, используются в качестве входных данных при вычислении подфункции i+1.
Если при этом для каждой подфункции иметь реализующий её схемный блок, то получим арифметический конвейер, который может быть выполнен как синхронным, так и асинхронным.
При использовании арифметического конвейера для выполнения разных операций усложняется определение состава блоков конвейера и может потребоваться настройка с соответствующей коммутацией блоков на операцию, задаваемую текущей командой.
В ряде МП одновременно присутствуют конвейер команд и арифметический конвейер.