Студопедия

КАТЕГОРИИ:


Архитектура-(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) взаимосвязью команд по данным (риск по данным);

3) неоднозначностью при выборке следующей команды в случае команд перехода (риск по управлению).

Структурный риск возникает тогда, когда несколько команд, находящихся на разных ступенях конвейера, пытаются одновременно использовать один и тот же ресурс, например, память. В рассмотренном примере сразу три этапа ВК, ВО, ЗР связаны с обращением к памяти, которые могут выполняться одновременно. Для устранения таких коллизий используется модульный принцип построения памяти. В этом случае оперативная память состоит из нескольких независимых модулей, обращение к которым может происходить одновременно. Для уменьшения структурного риска используется также и разделенная кэш- память, т.е. когда используются два КЭШа: кэш команд и кэш данных. В этом случае одновременно можно производить чтение команд и данных, которые находятся в разных КЭШах. В некоторых случаях конфликты из-за одновременного обращения к памяти могут и не возникать, поскольку некоторые команды не требуют этапов выборки операндов и записи результатов. В целом, влияние структурного риска на производительность конвейера по сравнению с другими видами риска невелико.

Риск по данным оказывает более существенное влияние на производительность конвейера, поскольку встречается достаточно часто и регулярно.

Пусть две команды на конвейере i -ая и j -ая предусматривают обращение к одной и той же переменной x, а команда i предшествует команде j. Тогда между этими командами возможны три типа конфликта по данным.

а) Чтение после записи (ЧПЗ). Для правильного выполнения программы команд j -ая должно прочитать переменную x после ее изменения предшествующей командой i. Если же команда j читает x до того, как команда i успела записать новое значение x, т.е. команда j ошибочно читает старое значение x вместо нового, то возникает конфликт, нарушающий правило: “Чтение после записи”.

Это наиболее частый тип конфликта по данным, поскольку операция чтения (этап ВО) предшествует операции записи (этап ЗР).

в) Запись после чтения (ЗПЧ). Конфликт такого типа возникает в том случае, если команда j записывает новое значение x раньше, чем предшествующая команда i успела прочитать старое значение x, т.е. команда i ошибочно получает новое значение переменной x вместо ее старого значения. Таким образом, возникает конфликт, нарушающий правило “Запись после чтения”.

Если команды на конвейере следуют в порядке, определенном программой, то конфликты такого типа не возможны, поскольку запись результата всегда идет после чтения операнда. Однако конфликты такого типа возникают в случае, если команды на конвейере выполняются не в том порядке, как это определено программой. Например, выполнение команды i приостановлено из-за какого-то конфликта, и в результате команда j будет выполнена раньше, чем команда i. Тогда и возможен конфликт типа ЗПЧ.

с) Запись после записи (ЗПЗ). Конфликт такого типа возникает в том случае, если команда j записывает новое значение переменной x прежде, чем команда i успела записать свое значение x. Тогда в памяти ЭВМ будет ошибочно содержаться старое значение переменной x вместо нового, поскольку команда i на место нового значения x записало старое значение.

Конфликты типа ЗПЗ в случае выполнения команд в порядке, определенном программой, не возможны, поскольку запись результата всегда производится на последнем этапе, а не раньше. В случае нарушения естественного порядка выполнения команд конфликты такого типа возможны, если одна команда догоняет другую из-за ее приостановки.

 




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


Дата добавления: 2013-12-12; Просмотров: 554; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.