Синхронные линейные конвейеры
Содержание
1.Введение
2.Определение понятия архитектура
3.Основные направления в архитектуре процессоров
3.1.Конвейеризация вычислений
3.1.1.Синхронные линейные конвейеры
3.1.2.Нелинейные конвейеры
3.1.3.Конвейер команд
3.1.4.Суперконвейерные процессоры
3.2.Суперскалярные процессоры
3.2.1.Особенности реализации суперскалярных процессоров
3.2.2.Аппаратная поддержка суперскалярных операций
4.Заключение
5.Список литературы
Определение понятия «архитектура»
Рассмотрение принципов построения и функционирования вычислительных машин и систем предварим определением термина архитектура.
Под архитектурой вычислительной машины обычно понимается логическое построение ВМ, то есть то, какой машина представляется программисту. Впервые термин «архитектура вычислительной машины» (computer architecture) был употреблен фирмой IBM при разработке машин семейства IBM 360 для описания тех средств, которыми может пользоваться программист, составляя программу на уровне машинных команд. Подобную трактовку называют «узкой», и охватывает она перечень и формат команд, формы представления данных, механизмы ввода/вывода, способы адресации памяти и т. п. Из рассмотрения выпадают вопросы физического построения вычислительных средств: состав устройств, число регистров процессора, емкость памяти, наличие специального блока для обработки вещественных чисел, тактовая частота центрального процессора и т. д. Этот круг вопросов принято определять понятием организация или структурная организация.
Архитектура (в узком смысле) и организация — это две стороны описания ВМ и ВС. Поскольку для наших целей, помимо теоретической строгости, такое деление не дает каких-либо преимуществ, то в дальнейшем будем пользоваться термином «архитектура», правда, в «широком» его толковании, объединяющем как архитектуру в узком смысле, так и организацию ВМ. Применительно к вычислительным системам термин «архитектура» дополнительно распространяется на вопросы распределения функций между составляющими ВС и взаимодействия этих составляющих.
Конвейеризация вычислений
Совершенствование элементарной базы уже не приводит к кардинальному росту производительности ВМ. Более перспективными в этом плане представляются архитектурные приемы, среди которых один из наиболее значимых – конвейеризация.
Обработка информации в)в конвейере с буферной памятью б)в конвейере с регистрами; а)в одиночном блоке |
На рисунке показан отдельный функциональный блок (ФБ). Исходные данные помещаются во входной регистр Рг(вх), обрабатываются в функциональном блоке, а результат обработки фиксируется в выходном регистре РГ(вых). Если максимальное время обработки в ФБ равно Т(max), то новые данные могут быть занесены во входной регистр Рг не ранее чем спустя Т(max). Теперь распределим функции, выполняемые на функциональном блоке ФБ(а), между тремя последовательными независимыми блоками: ФБ1, ФБ2, ФБ3, причем так, чтобы максимальное время обработки в каждом ФБi бфло одинаковым и равнялось Т(max)/3. Между блоками разместим буферные регистры Ргi(б), предназначенные для хранения результата обработки ФБi, на случай, если следующий за ним функциональный блок еще не готов использовать этот результат. В рассмотренной схеме данные на вход конвейера могут подаваться с интервалом Т(max)/3(втрое чаще), и хотя задержка от момента поступления первой единицы данных в Рг(вх) до момента появления результата ее обработки на выходе Рг(вых)по-прежнему составляет Т(max), последующие результаты появляются на выходе Рг(вых) уже с интервалом Т(max)/3.
На практике редко удается добиться того, чтобы задержки в каждом ФБ, были одинаковыми. Как следствие, производительность конвейера снижается, поскольку период поступления входных данных определяется максимальным временем их обработки в каждом функциональном блоке.
По способу синхронизации работы ступеней конвейеры могут быть синхронными и асинхронными. Для традиционных ВМ характерны синхронные конвейеры, так как ступени конвейеров в процессоре обычно располагаются близко друг от друга. Асинхронные конвейеры же оказываются полезными, если связь между ступенями не столь сильна, а длина сигнальных трактов между разными ступенями сильно разниться.
В архитектуре ВМ можно найти множество объектов, где конвейеризация обеспечивает ощутимый прирост производительности ВМ.
Синхронные линейные конвейеры
Эффективность синхронного конвейера во многом зависит от правильного выбора длительности трактового периода Tк. Минимально допустимую Тк можно определить как сумму наибольшего времени обработки на отдельной ступени конвейера Тcmax и времени записи результатов обработки в буферные регистры между ступенями конвейера Тбр:
Из-за вероятного вероятного «перекоса» в поступлении тактирующего сигнала в разные ступени конвейера предыдущую формулу следует дополнить еще одним элементом – максимальной величиной «перекоса» Тпк:
Каждая ступень может содержать может содержать множество логических трактов обработки. Тк определяется наиболее длинными трактами во всех ступенях конвейера. При разработке конвейера необходимо учитывать, что для двух последовательных элементов, обрабатываемых одной и той же ступенью, обработка первого элемента может проходить по тракту максимальной длины, а второго элемента – по минимальному тракту. Это может привести к тому, что результат обработки второго элемента может появиться на выходе ступени прежде, чем в выходном регистре ступени будет запомнен предыдущий результат.
Из формулы следует, что для того, чтобы избежать подобной ситуации сумма Тбр +Тпк должна быть меньше минимального времени обработки ступени.
Нелинейные конвейеры
Конвейер всегда представляет собой линейную цепочку этапов. В ряде ситуаций оказывается выгодным, когда функциональные блоки соединены между собой не последовательно, а в соответствии с логикой обработки, при этом одни блоки в цепочке могут пропускаться, а другие – образовывать циклические структуры. Это позволяет с помощью одного и того же конвейера одновременно вычислять более одной функции. Структура нелинейного конвейера, одновременно вычисляющего две функции X и Y представлена на рисунке:
Для того, что бы отследить возможность конфликта, связанного с одновременным обращением к одному и тому же функциональному блоку, и его предотвращения необходимо построить диаграмму.
Так, в ходе реализации функции X запуск очередного ее вычисления возможен после 1, 3 и 6 тактов. Запуск функции Y возможен после 2 и 4 тактов. При запуске функции Y очередной ее запуск позволен после тактов 1, 3 и 5, а параллельный запуск функции X допустим после 2 и 4 тактов.
Конвейер команд
Идея конвейера команд была предложена в 1956 году академиком С. А. Лебедевым. Как известно, цикл команды представляет собой последовательность этапов. Возложив реализацию каждого из них на самостоятельное устройство и последовательно соединив такие устройства, мы получим классическую схему конвейера команд. Для иллюстрации выделим в цикле команды 6 этапов:
1. Выбор команды (Чтение очередной команды, занесение ее в регистр команды)(ВК)
2. Декодирование команды (Определение кода операции и способа адресации операндов)(ДК)
3. Вычисление адреса операндов (Вычисление исполнительных адресов каждого из операндов в соответствии с указанным в команде способом их адресации)(ВА)
4. Выработка операндов (Извлечение операндов из памяти)(ВО)
5. Исполнение команды(ИК)
6. Запись результата(ЗР)
Предполагается, что каждая команда обязательно проходит все 6 ступеней, хотя этот случай не совсем типичен. Так, команда загрузки регистра не требует этапа ЗР. Кроме того, здесь принято, что все этапы могут выполняться одновременно. Без конвейеризации выполнение 9 команд заняло бы 54(9*6) единицы времени. Использование конвейера сокращает это число до 14.