КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Виды конвейеров операций
Конфликты в конвейере команд Реальная производительность конвейеров команды сильно отличается от потенциальной, и обусловлено это возникающими в конвейере конфликтными ситуациями (риски – hazard). Риски обусловлены тремя причинами: 1. Структурный риск (конфликт по ресурсам) имеет место, когда несколько команд, находящихся на различных ступенях конвейера пытаются использовать один и тот же ресурс (чаще всего это память, в одну и ту же ячейку памяти). Подобно конфликтов можно частично избежать за счёт: модульного построения памяти; использование кэш-памяти. Конфликты могут и не возникать, поскольку для многих команд ступени выборки операнда и записи результата не требуются. В целом, влияние структурного риска на производительность конвейера относительно невелико. 2. Риск по данным (взаимосвязь команд по данным) – типичная, часто встречающаяся ситуация. Например, две команды i и j в конвейере предусматривают обращение к одной переменной x, причем i предшествует j. 3 вида ситуации: a. Чтение после записи. Команда j читает х до того, как i успевает записать новое значение х. Это чаще. b. Запись после чтения. Команда j записывает новое значение х до того, как команда i успела прочитать х. c. Записи после записи. Команда j записывает новое значение х, прежде чем i успело записать своё х.
Борьба: своевременно обнаружение потенциального конфликта и устранение конфликта. Для этого задействованы как программные, так и аппаратные средства. Программные ориентированы на устранение самой возможности конфликта на стадии компиляции программ (вставляет между командами пустые операции). Аппаратные – остановка команды j на несколько тактов, чтобы команда i успела завершиться, ну или миновать ступень конвейера, где возможен конфликт. 3. Риск по управлению (неоднозначность при выборке следующей команды в случае команд перехода). Например, команды: Условный и безусловный переход, вызов процедуры и возврат из процедуры. Доля подобных команд в программе примерно 10-20%. Команды перехода могут приводить к приостановке конвейера на несколько тактов. Это приводит к тому, что производительность процессора (и конвейера) снижается. Решение: Например, приостановка, связанная с командами перехода может быть частично сокращена за счёт использования: буферов предвыборки; множественных потоков; задержанного перехода; предсказания переходов.
20032012 Лекция 7 Синхронный конвейер работает в принудительном режиме и для выполнения любого этапа выделено одинаковое время. Длительность такта выбирается по максимальному времени при выполнении все возможных команд. В асинхронном конвейере отсутствует единый такт работы. Следующий этап начинает работать, когда предыдущий закончит. Эффективное использование асинхронного конвейера будет в том случае, когда велика зависимость продолжительности выполнения отдельных этапов от типов и форматов команд.
Кроме конвейера операций, существует ещё арифметический конвейер, который тоже может быть синхронным и асинхронным, универсальным и специализированным. Суть его такая же, то есть выполнение функции разбирается на выполнение последовательности подфункций. Примером может служить сложение чисел (ТА) с фиксированной и плавающей запятыми. Тут же возможен простой конвейера при отсутствии некоторых операций. В современных процессорах применяется как конвейер операций, так и арифметический конвейер. Кроме увеличения производительности, разбиение на блоки упрощает разработку и анализ.
27032012 Лекция 8
Дата добавления: 2014-01-06; Просмотров: 1099; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |