Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Риски по данным: виды и «опасность» рисков по данным, оценка критичности («опасности») рисков каждого типа, методы предотвращения



Виды рисков по данным:

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

2)Запись после чтения(ЗПЧ/WAR) - командаj записывает данные х до того, как предшествующая команда i успела прочитать х, то естьi ошибочно прочитает новое значение х.

3)Запись после записи(ЗПЗ/WAW) - команда i перезаписывает данные х после того, как их записала последующая команда j, то есть осталось записано старое значение. Конфликты ЗПЧ и ЗПЗвозникают, если используется выполнение команд с нарушением порядка и в специальных случаях задержки предыдущей команды (например, из-за структ. конфликта) при продолжении исполнения последующей. Конфликты ЗПЧ и ЗПЗне встречаются при «естественной» работе конвейера.

4)Чтение после записи(ЧПЧ/RAR) - команда j считывает значение х прежде, чем команда i успела считать значение х. Хотя порядок обращения к данным и нарушен, но данные в обоих случаях считаны корректно и ОШИБКИ НЕ ПРОИЗОШЛО.

К методам предотвращения конфликтов по данным относят:

Программные (инструментальные):

1)возможность конфликта устраняется на этапе компиляции программ – компиляторы не допускают возникновения последовательностей конфликтующих команд или, если этого не избежать, вставляют между конфликтующими командами операции NOP, чтобы конвейер смог продвинуться на требуемое число шагов.

Аппаратные (архитектурные):

1)Используется механизм ускоренного продвижения данных (forwarding или bypassing или short-circuiting).

2)Автоматически вводятся задержки исполнения команд (stalls), которые приводят к появлению «пустых» стадий – «пузырьков» (bubble). Благодаря этому приостанавливают «последующие» стадии обращения к данным приостанавливаются до окончания «предыдущих». «Пузырьки» в конвейере приводят к снижению его производительности; приостановка отдельных команд и попытки «догонять» поток команд, могут привести к новым конфликтам.

 

Механизм ускоренного продвижения данных (data forwarding). Поддержка ускоренного продвижения в структуре процессора. Комбинация продвижения и простоя.

 

Механизм ускоренного продвижения данных -когда требуется операнд, уже вычисленный, но не сохраненный предыдущей командой, он может быть получен из промежуточного буферного регистра (например, на выходе АЛУ), минуя промежуточные ступени конвейера. Для поддержки данног механизма в конвейере должны быть предусмотрены дополнительные тракты пересылки информации между промежуточными буферными регистрами и функциональными блоками (тракты опережения/обхода), коммутируемые мультиплексорами.

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

Комбинация продвижения и простоя -если продвижение невозможно из-за сильного отставания последующей команды, то оно может быть устранено неполным (только 1-2 стадии) ожиданием.

Риски по управлению по причине задержки выборки команды перехода и по причине задержки проверки условия перехода.

Конфликты по управлению (Control Hazards) - возникают в результате изменения «естественного» порядка исполнения в результате переходов, вызовов подпрограмм, прерываний, приводят к приостановкам конвейера и снижению производительности, из-за:

1)Задержки выборки команды перехода: выявление команд переходов происходит только после стадии декодирования команды (ID), при этом в конвейер уже помещена минимум одна или две команды, выбранная «по порядку», которую придется откинуть.

 

2)Задержки проверки условия перехода: для условных переходов проверка условия осуществляется только на стадии исполнения (EX), при этом в конвейер уже помещены минимум две следующие команды, которые придется откинуть.

 

Устранение рисков по управлению по причине задержки выборки команды перехода: использование буфера адресов перехода, использование кэш-памяти команд в точке перехода, использование буфера цикла.

Способы устранения задержки выборки команд перехода

1)Вычисление адреса перехода на стадии декодирования команды ID;

В результате декодирования команды выясняется не только ее принадлежность к командам перехода, но также способ адресации и адресный код точки перехода. Это позволяет сразу же приступить к вычислению исполнительного адреса пере­хода, не дожидаясь передачи команды на следующую ступень конвейера, и тем самым сократить время остановки конвейера с двух тактов до одного. Для реализации этого метода в состав ступени декодирования вводятся дополнительные блоки, вычисляющие исполнительный адрес точки перехода.

2)Использование буфера адресов перехода;

BTB(Branch Target Buffer) - память для хранения адресов успешных переходов

Представляет собой кэш-­память небольшой емкости, в которой хранятся исполнительные адреса точек пе­рехода нескольких последних команд. Перед выборкой очередной ко­манды ее адрес (содержимое счетчика команд) сравнивается с адресами команд, представленных в ВТВ. Для команды, найденной в буфере адресов перехода, ис­полнительный адрес точки перехода не вычисляется, а берется из ВТВ, благодаря чему выборка команды из точки перехода может быть начата на один такт раньше. Команда, ссылка на которую в ВТВ отсутствует, обрабатывается стандартным образом. Если это команда перехода, то полученный при ее выполнении исполни­тельный адрес точки перехода заносится в ВТВ, при условии, что команда завер­шилась переходом. Применение ВТВ дает наибольший эффект, когда отдельные команды перехо­да в программе выполняются многократно, что типично для циклов.

 

3)Использование кэш-памяти хранения команд в точке перехода;

Кэш-память команд, расположенных в точке перехода (Branch Target Instruction Cache –BTIC), – это усовершенствованный вариант ВТВ, где в кэш-память помимо исполнительного адреса команды в точке перехода записывается также и код этой команды. За счет увеличения емкости кэш-памяти BTIC позволяет при повторном выполнении команды перехода исключить не только этап вычисления исполнительного адреса точки перехода, но и этап выборки расположенной там команды. Преимущества данного подхода в наибольшей степени проявляются при многократном исполнении одних и тех же команд перехода, главным образом при реализации программных циклов.

4)Использование буфера цикла.

Буфер цикла представляет собой быстродействующую память, вхо­дящую в состав первой ступени конвейера, где производится выборка команд. В этом буфере сохраняются коды нескольких последних команд в той последовательности, в ко­торой они выбирались. Когда имеет место переход, аппаратными средствами сначала проверяется, нет ли нужной команды в буфере, и если это так, то команда извлекается из буфера. Такой метод наиболее эффективен при реализации циклов и итераций, чем и объяс­няется название буфера. Если буфер достаточно велик, чтобы охватить все тело цикла, выборку команд из памяти достаточно выполнить только один раз в первой итерации, поскольку необходимые для последующих итераций команды уже на­ходятся в буфере. Буфер цикла принципиально близок к BTIC. Однако в буфере цикла сохраняется последовательность выполнения команд, что и отличает его от BTIC.

Устранение рисков по управлению по причине задержки проверки условия перехода: использование конвейеров с множественными потоками, статическое предсказание переходов, динамическое предсказание переходов.

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.