- •Федеральное агентство по образованию
- •Организация эвм и систем часть 2
- •Конвейерная обработка информации
- •Анализ загрузки устройств эвм при последовательной обработке команд
- •Общие вопросы организации конвейеров
- •1.2.1.Классификация конвейеров
- •1.2.2. Структура синхронного конвейера
- •1.2.3. Структура асинхронного конвейера.
- •1.2.4. Многофункциональные конвейеры.
- •Конвейер команд.
- •1.3.1. Общие положения
- •1.3.2. Структурные конфликты
- •1.3.3. Конфликт по данным.
- •1.3.4.Конфликт по управлению
- •2. Организация устройства управления.
- •2.1. Назначение устройства управления.
- •2.2. Способы организации уу.
- •2.3 Микропрограммные автоматы с жесткой логикой
- •2.3.1 Мпа на базе управляющего автомата Мили.
- •2.4 Микропрограммные автоматы с программируемой логикой
- •2.5 Микропрограммные автоматы с принудительной адресацией мк
- •2.6 Микропрограммные автоматы с естественной адресацией микрокоманд
Конвейер команд.
1.3.1. Общие положения
Любая команда процессора выполняется в несколько этапов. Такими этапами могут быть следующие: выборка команды, дешифрация кода операции, формирование исполнительных адресов и выборка операндов, выполнение операции и запись результата. В зависимости от форматов команд, типов команд и способов адресации, принятых в данном процессоре, количество этапов и их насыщенность микрооперациями может меняться. Поскольку за выполнением каждого этапа команды закрепляется своя ступень, то для команд одного типа могут работать все ступени, а для команд другого типа часть ступеней может постаивать. Например, команды арифметических операций могут использовать все ступени конвейера, а при выполнении команд условного и безусловного переходов не требуются ступени, обеспечивающие выборку операндов, их обработку и размещение результата, т.е. эти ступени, будут простаивать.
При работе конвейера команд могут возникнуть три типа конфликтов [л 2, л 3, л4]:
структурный,
конфликт по данным,
конфликт по управлению.
Структурный конфликт связан с обращением различных ступеней конвейера к одному и тому же устройству. Его еще называют конфликтом по ресурсам.
Конфликт по данным заключается в том, что следующая команда может требовать операнд, который еще не вычислен предыдущей командой.
Конфликт по управлению возникает, когда на вход конвейера загружается какая-либо из команд управления и следующей исполняемой командой должна быть команда, определяемая адресом перехода. Это изменяет последовательность загрузки на вход конвейера команд программы и нарушает работу ступеней конвейера.
При появлении любого типа конфликта в конвейере появляется «пузырь», который связан с не использованием очередного такта работы конвейера. Этот «пузырь» проходит по всему конвейеру. В зависимости от типа конфликта может занимать от 1 и более тактов, что приводит к общей потере производительности конвейера.
Рассмотрим их по порядку.
1.3.2. Структурные конфликты
Структурные конфликты чаще всего возникает при обращении различных ступеней к памяти.Предположим, что процессор работает с одноадресными командами. Тогда структуру цикла исполнения команды можно представить как последовательность трех этапов (рис.12а): выборка команды из ОЗУ и дешифрация КОП, выборка операнда и выполнение операции. Напомним, что при данной адресности команд второй операнд берется из регистра-аккумулятора и в него же записывается результат арифметической операции.
Закрепим за каждым этапом ступень конвейера. В результате получим следующую временную диаграмму работы конвейера (рис.12б). Очевидно, что для выполнения команд арифметики и ряда логических операций необходимы все 3 ступени конвейера. Для команд управления первая ступень выбирает команду, а третья ступень должна занести на программный счетчик адрес перехода. Вторая ступень в этих случаях простаивает.
Рис.12, а
-
Т
ступ
1
2
3
4
1 Выборка
команды
К1
К2
К3
К4
Обращение
к ОЗУ
2 Выборка
операнда
К1
К2
К3
Обращение
к ОЗУ
3 Выполн.
операции
К1
К2
Рис.12, б
Способы борьбы с конфликтами по обращению к памяти.
Известны два классических способа уменьшения конфликтов при одновременном обращении различных ступеней к памяти:
расслоение памяти по информации;
расслоение памяти по адресам.
Расслоение памяти (в данном случае имеется в виду ОЗУ) по информации заключается в том, что для команд и данных в состав ядра ЭВМ вводятся два ОЗУ: ОЗУ команд и ОЗУ данных (рис.13). Конфликта между 1-й и 2-й ступенями не возникает т.к. они одновременно обращаются к различным ОЗУ. Однако, при увеличении адресности команды данного типа конфликт может возникнуть при обращении к ОЗУ данных.
Рис. 13
Предположим, что процессор работает с 3-х адресными командами. Цикл исполнения команды можно разделить на 5 следующих этапов (рис.14):
выборка команды и дешифрация КОП,
выборка 1-го операнда,
выборка 2-го операнда,
вычисление результата (для команд арифметических и логических операций),
запись результата в память.
Рис.14
Закрепив данные этапы за ступенями конвейера, получим следующую временную диаграмму работы конвейера (рис. 15).
Рис. 15
При использовании схемы (рис.13) расслоения ОЗУ по информации конфликты будут иметь место при обращении 2-й, 3-й и 5-й ступеней к ОЗУ данных при выборке операндов и записи результата.
Для ликвидации конфликта обращения к памяти различных ступеней конвейера наиболее общей является расслоение памяти поадресам.Этот тип расслоения базируется на связности информации. Под этим термином понимается следующее: все команды программы и элементы массива данных размещаются в памяти по нарастанию адресов.
Для реализации этого способа ОЗУ должно иметь многомодульную структуру. В том случае, если адреса будут принадлежать различным модулям памяти, к которым может быть осуществлено индивидуальное обращение, то тогда вероятность конфликта по обращению к памяти может быть существенно меньше, т.к. следующая команда или следующий элемент массива данных может принадлежать следующему модулю.
Принцип расслоения ОЗУ.
Предположим, что ОЗУ состоит из 4-х модулей: М0,М1, М2, и М3 (рис.16). Адресованы начальные ячейки модулей (адреса показаны в 16-ричной системе счисления); 0-й адрес соответствует 0-й ячейке модуля М0, 1-й адрес 0-й ячейке модуля М1и т.д.
В этом случае, если адреса команды или данных принадлежат разным модулям, то в 5-м такте конфликт разрешается.
Рис.16
Чем больше модулей в составе ОЗУ, тем меньше вероятность конфликта.
Конфликты могут возникнуть, когда в одном и том же такте различные ступени обращается за командой или данными к одному модулю. В этом случае конвейер приостанавливает свою работу и появляется «пузырь».
Аналогичные конфликты возникают при одновременном обращении различных ступеней конвейера к регистровой памяти. Это имеет место в RISC- процессорах при выполнении команд обработки данных.
Прежде всего, напомним основные особенности процессоров с ограниченным набором команд [л 5]:
все команды имеют одинаковую длину;
команды подразделяются на 2 группы; к первой группе отнесены команды обработки данных, ко второй - все остальные команды;
команды первой группы выполняют только короткие операции; команды длинных операций выносятся на программный уровень;
в командах первой группы используются самые простые способы адресации и относятся к регистровой памяти (РОН).
Чаще всего используется 3-х адресный формат (рис.17).
Рис.17
Такой формат позволяет на основной массе команд в цикле исполнения команды иметь большую экономию времени по обращению за операндами, поскольку время обращения к регистровой памяти много меньше времени обращения к ОЗУ и соизмеримо с тактом работы процессора.
В командах обмена между ОЗУ и РОН, а так же в командах управления в третьем адресе может стоять смещение или косвенный адрес ОЗУ.
С целью уменьшения количества команд обмена в теле программы в RISC процессорах существенно расширяется регистровая память (сотни байт, Кбайты).
В тех случаях, когда команды имеют одинаковую длину, простейшие способы адресации, реализуют только короткие операции и могут выполняться за один и тот же интервал времени, можно строить быстрые синхронные конвейеры.
На рис.18 представлена временная диаграмма такого конвейера.
За ступенями конвейера закреплены следующие функции:
1-я – ступень выбирает команды из ОЗУ,
2-я – дешифрирует код операции,
3-я – осуществляет одновременное обращение за операндами к РОН (другое название – регистровый файл),
4-я – ступень выполняет процедуры, указанные в КОП,
5-я – записывает результат в регистровый файл(РФ).
Рис. 18
Структурный конфликт имеет место при обращениях к РФ: в режиме стационарной работы конвейера, когда все ступени работают одновременно, при выборке 3-й ступенью сразу 2-х операндов и 5-й ступенью при записи в РФ результата.
Этот конфликт ликвидируется с использованием аппаратных средств, а именно трех портового РФ, который позволяет одновременно обработать два адреса в режиме чтения и один адрес в режиме записи.