Временная организация и производительность конвейерных систем.
RISC-идеалогия. История, основные принципы, тенденции развития, «пострисковые» архитектуры: концепция VLIW и EPIC.
П
RISC — reduced instruction set computer.
В конце 1970-х гг. IBM провела исследования, которые показали: 20% команд
занимают при выполнении 80% процессорного времени. Следовательно, некоторые
команды остаются практически невостребованными. Возникла идея свести набор
команд к минимуму (то есть, оставить эти самые 20%), фиксировать их длину (для
удобства декодирования), а непосредственный доступ к памяти разрешить лишь
некоторым из них. Остальные команды было предложено реализовать с помощью
механизмов микропрогамм.
Признаки:
1. Сокращённый набор команд
2. Большинство команд выполняется за 1 такт
3. Команды работают только с регистрами за исключением команд работы с ОП
4. Отказ от микропрограмм, “жёсткие” конвейеры, суперскалярность
5. Фиксированный, простой и одинаковый формат команд
6. Много регистров; большая кэш-память
7. Оптимизирующий компилятор; оптимизированные библиотеки команд-функций,
не входящих в набор команд
Достоинства:
● снижается стоимость разработки и производства процессоров,
● упрощается реализация схем конвейерной и параллельной обработки данных,
● упрощается реализация создания многопроцессорных систем.
Недостатки:
●RISC-процессорам необходимо более сложное программное обеспечение,
компенсирующее отсутствие сложных операций на аппаратном уровне.
|
|
Тенденции развития:
1) Многоядерность: на одном чипе >=2 ядер, работающих параллельно друг с
другом. Параметры таких МП: количество ядер; степень самостоятельности ядер.
Многоядерные процессоры можно классифицировать:
● По наличию или отсутствию поддержки когерентности кэшей между ядрами.
● По способу связи между ядрами: разделяемая шина, сеть на каналах точка-точка,
сеть с коммутатором, общие кэши.
● По внутренней архитектуре ядер.
2) Многопоточность (Multithreading) — выполняют до 8 (и больше) процессов
на МП. Признаки: увеличивается количество аппаратных ресурсов; существует
аппаратный планировщик, который может гибко перераспределять ресурсы во времени
между потоками.
VLIW и EPIC.
VLIW (very long instruction word) (256/512 бит). Характеризуется тем, что одна
инструкция процессора содержит несколько операций, которые должны выполняться
параллельно. В процессорах VLIW задача распределения решается во время
компиляции.
Достоинства:
· В течении одного такта выполняется группа коротких, «обычных» команд
· Подход VLIW сильно упрощает архитектуру процессора, перекладывая задачу распределения вычислительных устройств на компилятор.
|
|
· Отсутствуют большие и сложные узлы, сильно снижается энергопотребление.
Недостатки:
· Из-за большого количества пустых инструкций для простаивающих устройств программы для VLIW-процессоров могут быть гораздо длиннее, чем аналогичные программы для традиционных архитектур.
· Для программиста программирование на уровне машинных кодов для VLIW-архитектур является достаточно сложным.
· Наборы инструкций VLIW не являются обратно совместимыми между различными поколениями процессоров (в разных версиях разное количество исполнительных устройств).
· Задержки загрузки данных из иерархии памяти не являются полностью предсказуемыми. Из-за этого статическое планирование инструкций загрузки и использования данных становятся крайне сложными.
Примеры: Transmeta Crusoe
EPIC (explicitly parallel instruction computing) — микропроцессорная
архитектура с явным параллелизмом команд (поля жестко не приписываются
конвейерам, происходит организация очередей, планирование операций на нижнем
уровне осуществляется внутри кристалла). EPIC служит для переноса сложной логики
планирования инструкций из микропроцессора в компилятор, который бы планировал
инстр. статически, и для увеличения степени параллелизма инструкций за счет
|
|
больших возможностей компилятора по поиску независимых команд.
Особенности EPIC:
· В EPIC-архитектуре используется подход, базирующийся на применении
команд переменной длины. Команда состоит из слогов длиной 32 разряда. Число этих
слогов - от 2 до 16, данную архитектуру можно расширить — до 32. Любая команда
всегда включает 1 слог заголовка и от 1 до 15 слогов, указывающих на операции,
которые могут выполняться параллельно. Слог заголовка содержит инф. о структуре
команды и ее длине, что облегчает дешифрацию команды переменной длины.
Применение заголовка позволяет не проводить предварительного декодирования
команд перед помещением в кэш команд. Отрицательной стороной введения поля
заголовка является некоторое увеличение длины команды.
· Каждая группа из нескольких инструкций называется бандлом. Бандл может
иметь стоповый бит, обозначающий, что следующая группа зависит от результатов
работы данной.
· Для предподкачки данных используется инструкция программной подкачки
(software prefetch). Предподкачка увеличивает вероятность того, что к моменту
исполнения команды загрузки, данные уже будут в кэше.
· Предсказание ветвлений используется, чтобы снизить частоту переходов.
|
|
· Крайне большой регистровый файл, чтобы избежать необходимости в
переименовании регистров.
· Масштабируемость до большого количества устройств.
· Предикация (Predication). Команды из разных ветвей условного оператора
снабжаются предикатными полями (полями условий) и запускаются параллельно.
Примеры: Intel Itanium, E2K (МЦСТ)
2.2. Понятие конвейера. «Жадная» стратегия. Понятие MAL в теории конвейера.
Идея конвейера состоит в том, чтобы сложную операцию разбить на множество более простых, которые могут выполняться одновременно. При движении объектов по конвейеру на разных его участках выполняются разные операции, а при достижении каждым объектом конца конвейера он окажется полностью обработанным.
Временная организация и производительность конвейерных систем.
Любой конвейерной системой управляет алгоритм управления – процедура диспетчеризации. Инициация таблицы занятости происходит тогда, когда начинается вычисление, которое проследует по определенному её пути. Попытка инициаций, использующих одну и ту же ступень, называется столкновением.
Таблица занятости: горизонт – такты, вертикально – ступени, в ячейках – номера команд. Тпосл – среднее время выполнения команды на полностью последовательном процессоре. Тконв ~ Тпосл / ЧислоСтупенейКонвейера.
Считается, что оптимальное число ступеней для классических систем – порядка 10 штук.
К 80г. реальный конвейер оптимально работает с 10-12 ступеней. Если > нерационально из-за простаивающих операций. < - неполная конвейеризация.
Последнее время увеличилось из-за новых технологий (Р III – 14, P IV – 15). Накладные расходы при синхронизации конвейерных ступеней уменьшились.
Идеальный (явный) конвейеримеет место тогда, когда одновременно выполняется (определение конвейера):
1) вычисление каждой базовой функции независимо от предыдущих.
2) Вычисление каждой функции требует одной и той же цепочки подфункций.
3) Подфункции тесно связаны между собой: вход одной является выходом предыдущей.
4) Времена вычисления различных функций приблизительно равны.
Классификация конвейеров:
Однофункциональный конвейер способен выполнять базовую функцию только одного типа (например, умножение). Многофункциональный – разных типов (пример – любой процессор).
Конвейер имеет статическую конфигурацию, если система лишь сравнительно редко может изменять выполняемую функцию (например, векторные системы), т.е. настроили на сложение – много тактов сложения – потом настроили на умножение – много тактов умножения и т.д. Динамический же конвейер – такой, что функция может меняться часто, хоть каждый такт.
Любой конвейерной системой управляет алгоритм управления – процедура диспетчеризации. Инициация таблицы занятости происходит тогда, когда начинается вычисление, которое проследует по определенному ею пути. Попытка инициаций, использующих одну и ту же ступень, называется столкновением.
Цель стратегии диспетчеризации – выработка последовательности инициаций (или последовательности латентностей), которая минимизирует число столкновений и среднюю латентность.
Латентность
L – число единиц времени (тактов), разделяющих инициализацию 1 или различных таблиц занятости (всегда >0).
Средняя латентность:
1) Считается латентность для каждой пары, усредняется по количеству пар.
2) Грубая оценка (при большом количестве инструкций стремится к точной).
Целью выработки стратегии диспетчеризации является выработка моментов времени, в которые должна выполнятся инициализация или выработка такой последовательности инициализации при которой средняя латентность будет минимальной.
Жадная стратегия – стратегия, которая всегда между двумя инициал-ями вводит минимальную из латентностей, возможную в текущий момент времени.
Для статических конвейеров стратегия не очень важна. Для динамических – очень важна, она определяет простоту реализации. В реальных конвейерах используется именно жадная стратегия.
NB:
1) жадная стратегия не является оптимальной (самая простая).
2) Более или менее рациональна в большинстве случаев, ее берут за основу при реализации УУ реализуемыми стратегиями.
Рис 2.2 "Жадная" стратегия: таблица занятости для последовательности операций
Теория конвейера позволяет оценить теоретический предел производительности и предоставить алгоритмы для улучшения БД конвейера.
Коэффициент использования ступеней. Считается по таблице занятости работающего конвейера. Отношения чисел свободных/занятых тактов для этой ступени.
MAL– minimal average latency (минимальная средняя латентность)
Любой статический конвейер можно заставить работать максимально быстро.
MAL можно достичь на любой из допустимых последовательностей латентности. – теоретическая величина, которую можно найти с помощью теории конвейера.
Лемма 1: Для любого конвейера со статической конвейеризацией, реализующего некоторые таблицы занятости, величина MAL ≥ максимальному числу меток в любой строке этой таблицы.
Лемма применяется только для 1 операции.
Дата добавления: 2018-04-15; просмотров: 407; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!