Временная организация и производительность конвейерных систем.



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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!