Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


Ѕольшое число специализированных функциональных (исполнительных) устройств




√лава 31. ќсобенности структуры высокопроизводительных €дер процессоров дл€ персональных компьютеров

ќсновные особенности структуры €дер процессоров

ќсновные особенности структуры €дер процессоров следующие:

Ѕольша€ длина конвейера Ц до 12-16 ступеней.

¬ыполнение команд по предположению - Ђспекул€тивноеї выполнение.

»ерархическа€ структура подсистемы кэш-пам€ти.

Ѕольшое число специализированных функциональных (исполнительных) устройств.

Ѕуферирование на всех этапах конвейера.

—уперскал€рна€ организаци€. Ётоозначает, что на каждом этапе обрабатываютс€ сразу несколько потоков команд (операций) параллельно Ч от выборки из кэш-пам€ти команд до полного завершени€ (Ђотставкиї). —уперскал€рность нар€ду с частотой €вл€етс€ важнейшим показателем пропускной способности €дра процессора. ”ровень суперскал€рности (количество команд подготавливаемых к выполнению в одном такте) в современных высокопроизводительных €драх процессоров варьируетс€ от 3 до 4-5.

ѕредварительное преобразование архитектурных команд в промежуточные операции (микрооперации), более удобные дл€ обработки и выполнени€. »ногда такие операции называют RISC-подобными, исход€ из того, что архитектуры RISC разрабатывались как раз дл€ того, чтобы обеспечить простоту, удобство и эффективность обработки архитектурных команд. ѕреобразование команд €вл€етс€ необходимым дл€ архитектуры IA-32/64 с еЄ крайне нерегул€рной и запутанной системой команд. ќднако и дл€ достаточно регул€рной RISC-архитектуры такое преобразование также производитс€ Ч оно необходимо дл€ разбиени€ некоторых сложных команд на простые операции. ¬ англо€зычной литературе эти микрооперации называют Ђћќѕамиї (либо просто Ђопераци€миї).

¬неочередное выполнение команд. Ётоозначает, что команды не об€заны выполн€тьс€ в функциональных устройствах строго в том пор€дке, который определЄн в программе. Ѕолее поздние команды могут выполн€тьс€ перед более ранними командами, если не завис€т от порождаемых ими результатов. ядро процессора должно лишь гарантировать, что результаты Ђвнеочередногої выполнени€ команд совпадают с результатами Ђправильногої последовательного их выполнени€. ћеханизм внеочередного выполнени€ позвол€ет в значительной степени сгладить эффект от ожидани€ считывани€ данных из кэш-пам€тей верхних уровней и из оперативной пам€ти. ќжидание данных может длитьс€ дес€тки и сотни тактов. “акже он позвол€ет оптимизировать выполнение смежных операций, особенно при наличии сложных зависимостей между ними в услови€х длительных задержек выполнени€ в устройствах и недостаточного количества регистров.

ѕоскольку исходна€ программа подразумевает последовательную модель выполнени€, машинные команды должны считыватьс€ также последовательно.  роме того, есть такое пон€тие, как Ђотставкаї команды, которое подразумевает, что данна€ команда выполнена вместе со всеми командами, которые ей предшествовали в тексте программы. “аким образом, команды уход€т в Ђотставкуї строго последовательно, именно в том пор€дке, который задаЄтс€ программой.

ѕон€ти€ Ђотставкиї €вл€етс€ ключевым в отображении внеочередного выполнени€ команд внутри процессора в чисто последовательное выполнение в Ђмодели €дра процессораї, как она представл€етс€ пользователю. ћожет оказатьс€, что кака€-то команда уже выполнилась в своЄм функциональном устройстве Ч но при этом не должна была выполн€тьс€, так как было неправильно предсказано направление условного перехода либо были считаны данные с неправильного адреса. “акое выполнение называетс€ Ђспекул€тивнымї или Ђвыполнением по предположениюї.  огда будет правильно выполнена предшествующа€ ей команда перехода или чтени€ данных, така€ неверна€ Ђспекул€тивна€ї ветвь будет отменена, и при необходимости команда будет выполнена вновь (либо выполнитс€ друга€ ветвь). ѕроцедура Ђотставкиї команды гарантирует, что она была выполнена Ђправильної. Ћюбые прерывани€ программы (по вводу-выводу либо аварийному событию) могут происходить только в момент Ђотставкиї команды, к которой это прерывание относитс€.

ѕредсказание ветвлений. ¬ любой более-менее сложной программе присутствуют команды условного перехода: Ђ≈сли некое условие истинно Ч перейти к исполнению одного участка программы, если нет Ч другогої. — точки зрени€ скорости выполнени€ программы современным €дром процессора с большим числом подготовительных стадий и собственно выполнением (в подсистеме обработки данных в специализированных функциональных исполнительных устройствах), люба€ команда условного перехода Ч т€желое испытание. ¬едь до тех пор, пока не станет известно, какой участок программы после условного перехода окажетс€ Ђактуальнымї Ч его невозможно начать дешифрировать и выполн€ть. ƒл€ того чтобы как-то примирить концепцию Ђдлинныхї конвейеров с командами условного перехода, используетс€ блок предсказани€ ветвлений. ќн пытаетс€ предсказать, на какой участок программы укажет команда условного перехода, ещЄ до того, как она будет выполнена, и сработает ли переход вообще. ¬ соответствии с указани€ми блока предсказани€, €дром процессора производ€тс€ вполне реальные действи€:

если предсказанный участок программы уже продешифрирован и находитс€ в кэш-пам€ти продешифрированных команд (L0m Ц в терминологии фирмы Intel), то он читаетс€ из него и попадает в буфера подсистемы обработки данных;

если предсказанный участок программы находитс€ в кэш-пам€ти команд первого уровн€ (L1 ), то читаетс€ порци€ командной информации, дешифрируетс€ сначала предварительным дешифратором (предекодером), а затем несколькими (в зависимости от степени суперскал€рности) окончательными дешифраторами и попадает в буфера подсистемы обработки данных;

если предсказанный участок программы отсутствует в кэш-пам€т€х всех уровней, то:

требуема€ командна€ информаци€ загружаетс€ из оперативной пам€ти во все уровни кэш-пам€ти (в том числе и в кэш-пам€ть L1K);

читаетс€ из кэш-пам€ти L1K порци€ командной информации, дешифрируетс€ сначала предекодером, а затем несколькими (в зависимости от степени суперскал€рности) окончательными дешифраторами и попадает в буфера подсистемы обработки данных.

—реди выполн€емых команд могут содержатьс€ команды условного перехода, и их результаты тоже предсказываютс€, что порождает целую цепочку из пока не проверенных предсказаний. –азумеетс€, если блок предсказани€ ветвлений ошибс€, вс€ проделанна€ в соответствии с его предсказани€ми работа просто аннулируетс€.

јлгоритмы, по которым работает блок предсказани€ ветвлений, вовсе не €вл€ютс€ шедеврами искусственного интеллекта.  огда €дро процессора впервые встречает условный переход, оно пытаетс€ предсказать его поведение Ђпо одЄжкеї Ч какого типа команда, куда происходит переход (вперЄд по ходу выполнени€ программы или назад Ч это если он вообще произойдЄт) и пр. “очность такого предсказател€ (он называетс€ статическим) невелика. —амое интересное происходит, когда встречаетс€ уже знакомый переход. „тобы его узнать, у блока предсказани€ есть специальна€ таблица историй переходов, хран€ща€ описание поведени€ нескольких сотен или тыс€ч последних обнаруженных в программе команд ветвлени€ вместе с их адресами. ƒалее уже динамический предсказатель делает заключение о веро€тном поведении команды не Ђпо одЄжкеї, а основыва€сь на детальной накопленной статистике поведени€ и этой команды перехода, и предыдущих еЄ Ђколлегї, выполненных до неЄ. ƒл€ поддержки этой статистики каждый раз, когда команда перехода доходит до выполнени€, еЄ результат попадает в блок предсказани€, чтобы тот скорректировал свою таблицу Ч перешли или нет, угадали или нет.

Ќесмотр€ на достаточно высокую эффективность алгоритмов, механизмы предсказани€ ветвлений в €драх современных процессоров всЄ равно посто€нно совершенствуютс€ и усложн€ютс€ Ч но тут уже речь идЄт о борьбе за единицы процентов: например, за то, чтобы повысить эффективность работы блока предсказани€ ветвлений с 95 процентов до 97, или даже с 97 до 99.

 





ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2015-10-01; ћы поможем в написании ваших работ!; просмотров: 336 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

¬ы никогда не пересечете океан, если не наберетесь мужества потер€ть берег из виду. © ’ристофор  олумб
==> читать все изречени€...

1387 - | 1318 -


© 2015-2024 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.011 с.